diff --git a/examples/example_pro/src/SampleApp/SampleApp.tsx b/examples/example_pro/src/SampleApp/SampleApp.tsx index f119bab2f..322861d32 100644 --- a/examples/example_pro/src/SampleApp/SampleApp.tsx +++ b/examples/example_pro/src/SampleApp/SampleApp.tsx @@ -7,8 +7,7 @@ import "@fontsource/roboto" import { getAnalytics, logEvent } from "firebase/analytics"; import { User as FirebaseUser } from "firebase/auth"; -import { CMSView, GitHubIcon, IconButton, Tooltip } from "@firecms/firebase_pro"; -import { Authenticator, FireCMSProApp, FirestoreIndexesBuilder, } from "@firecms/firebase_pro"; +import { CMSView, GitHubIcon, IconButton, Tooltip , Authenticator, FireCMSProApp, FirestoreIndexesBuilder } from "@firecms/firebase_pro"; import { useDataEnhancementPlugin } from "@firecms/data_enhancement"; import { useImportExportPlugin } from "@firecms/data_import_export"; @@ -22,7 +21,7 @@ import { localeCollectionGroup, productsCollection } from "./collections/product import { blogCollection } from "./collections/blog_collection"; import { showcaseCollection } from "./collections/showcase_collection"; -import { algoliaSearchControllerBuilder, pineconeSearchControllerBuilder } from "./text_search"; +import { algoliaSearchControllerBuilder } from "./text_search"; import { CustomLoginView } from "./CustomLoginView"; import { cryptoCollection } from "./collections/crypto_collection"; @@ -162,7 +161,7 @@ function SampleApp() { // 'microsoft.com', // 'apple.com' ]} - textSearchControllerBuilder={pineconeSearchControllerBuilder} + textSearchControllerBuilder={algoliaSearchControllerBuilder} firestoreIndexesBuilder={firestoreIndexesBuilder} logo={logo} collections={(params) => collections} diff --git a/examples/example_v3/package.json b/examples/example_v3/package.json index 2c999432b..28f34461f 100644 --- a/examples/example_v3/package.json +++ b/examples/example_v3/package.json @@ -7,7 +7,7 @@ "build": "vite build", "preview": "vite preview", "serve": "vite preview", - "deploy": "firecms deploy" + "deploy": "vite build && firecms deploy --project=firecms-demo-27150" }, "dependencies": { "firecms": "^3.0.0-beta.1", diff --git a/examples/example_v3/src/index.tsx b/examples/example_v3/src/index.tsx index 5bdc9728c..adf9c3952 100644 --- a/examples/example_v3/src/index.tsx +++ b/examples/example_v3/src/index.tsx @@ -5,7 +5,6 @@ import { SampleEntityView } from "./custom_entity_view/SampleEntityView"; import { colorPropertyConfig } from "./property_configs/color_property_config"; import { pricePropertyConfig } from "./property_configs/property_config_builder"; import { usersCollection } from "./collections/users_collection"; -import { pagesCollection } from "./collections/pages"; import { ExampleCMSView } from "./views/ExampleCMSView"; import { SampleCustomEntityCollection } from "./views/SampleCustomEntityCollection"; diff --git a/examples/example_v3/src/search.tsx b/examples/example_v3/src/search.tsx index c53bc09d9..c2639b000 100644 --- a/examples/example_v3/src/search.tsx +++ b/examples/example_v3/src/search.tsx @@ -19,3 +19,4 @@ export const pineconeSearchControllerBuilder = buildPineconeSearchController({ throw new Error("Path not supported"); } }); + diff --git a/packages/collection_editor/src/ui/collection_editor/EnumForm.tsx b/packages/collection_editor/src/ui/collection_editor/EnumForm.tsx index 8098fe1e4..60deccd17 100644 --- a/packages/collection_editor/src/ui/collection_editor/EnumForm.tsx +++ b/packages/collection_editor/src/ui/collection_editor/EnumForm.tsx @@ -1,11 +1,7 @@ import React, { useEffect } from "react"; import { FastField, Formik, getIn, useFormikContext } from "formik"; -import { - EnumValueConfig, - EnumValues, - FormikArrayContainer, -} from "@firecms/core"; +import { EnumValueConfig, EnumValues, FormikArrayContainer, } from "@firecms/core"; import { AutoAwesomeIcon, Button, diff --git a/packages/collection_editor/src/ui/collection_editor/GetCodeDialog.tsx b/packages/collection_editor/src/ui/collection_editor/GetCodeDialog.tsx index 80e12fb17..13a4c4257 100644 --- a/packages/collection_editor/src/ui/collection_editor/GetCodeDialog.tsx +++ b/packages/collection_editor/src/ui/collection_editor/GetCodeDialog.tsx @@ -1,15 +1,5 @@ -import { - EntityCollection, - useSnackbarController -} from "@firecms/core"; -import { - Button, - ContentCopyIcon, - Dialog, - DialogActions, - DialogContent, - Typography, -} from "@firecms/ui"; +import { EntityCollection, useSnackbarController } from "@firecms/core"; +import { Button, ContentCopyIcon, Dialog, DialogActions, DialogContent, Typography, } from "@firecms/ui"; import React from "react"; import JSON5 from "json5"; import { Highlight, themes } from "prism-react-renderer" diff --git a/packages/collection_editor/src/ui/collection_editor/import/CollectionEditorImportMapping.tsx b/packages/collection_editor/src/ui/collection_editor/import/CollectionEditorImportMapping.tsx index 9ecfeac70..562fedb6c 100644 --- a/packages/collection_editor/src/ui/collection_editor/import/CollectionEditorImportMapping.tsx +++ b/packages/collection_editor/src/ui/collection_editor/import/CollectionEditorImportMapping.tsx @@ -6,20 +6,8 @@ import { } from "@firecms/data_import_export"; import { getIn, useFormikContext } from "formik"; -import { - FieldConfigBadge, - getFieldConfig, - getFieldId, - Properties, - Property, - PropertyConfig, -} from "@firecms/core"; -import { - Container, - Select, - Tooltip, - Typography -} from "@firecms/ui"; +import { FieldConfigBadge, getFieldConfig, getFieldId, Properties, Property, PropertyConfig, } from "@firecms/core"; +import { Container, Select, Tooltip, Typography } from "@firecms/ui"; import React, { useState } from "react"; import { OnPropertyChangedParams, PropertyFormDialog, PropertyWithId } from "../PropertyEditView"; import { getFullId, idToPropertiesPath, namespaceToPropertiesOrderPath } from "../util"; diff --git a/packages/firebase_firecms/src/hooks/useInitialiseFirebase.ts b/packages/firebase_firecms/src/hooks/useInitialiseFirebase.ts index c7d7b770d..aee82d4b2 100644 --- a/packages/firebase_firecms/src/hooks/useInitialiseFirebase.ts +++ b/packages/firebase_firecms/src/hooks/useInitialiseFirebase.ts @@ -1,6 +1,6 @@ import { useCallback, useEffect, useState } from "react"; -import { FirebaseApp, initializeApp } from "firebase/app"; +import { deleteApp, FirebaseApp, getApps, initializeApp } from "firebase/app"; /** * @group Firebase @@ -56,7 +56,13 @@ export function useInitialiseFirebase({ const initFirebase = useCallback((config: Record) => { try { - const initialisedFirebaseApp = initializeApp(config, name ?? "[DEFAULT]"); + const targetName = name ?? "[DEFAULT]"; + const currentApps = getApps(); + const existingApp = currentApps.find(app => app.name === targetName); + if (existingApp) { + deleteApp(existingApp); + } + const initialisedFirebaseApp = initializeApp(config, targetName); setConfigError(undefined); setFirebaseConfigLoading(false); setFirebaseApp(initialisedFirebaseApp); diff --git a/packages/firebase_firecms/src/types/text_search.ts b/packages/firebase_firecms/src/types/text_search.ts index 4f684ba8a..aca9d11df 100644 --- a/packages/firebase_firecms/src/types/text_search.ts +++ b/packages/firebase_firecms/src/types/text_search.ts @@ -1,4 +1,3 @@ - import { User as FirebaseUser } from "firebase/auth"; import { FirebaseApp } from "firebase/app"; import { EntityCollection, ResolvedEntityCollection } from "@firecms/core"; @@ -32,4 +31,5 @@ export type FirestoreTextSearchController = { * @param props */ search: (props: { searchString: string, path: string, currentUser: FirebaseUser }) => (Promise | undefined), + }; diff --git a/packages/firebase_firecms/test/mocks/useBuildMockDataSource.tsx b/packages/firebase_firecms/test/mocks/useBuildMockDataSource.tsx index 8b4a01a06..5ccec5276 100644 --- a/packages/firebase_firecms/test/mocks/useBuildMockDataSource.tsx +++ b/packages/firebase_firecms/test/mocks/useBuildMockDataSource.tsx @@ -4,7 +4,6 @@ import { Entity, FetchCollectionProps, FetchEntityProps, - ResolvedProperty, SaveEntityProps } from "@firecms/core"; diff --git a/packages/firebase_firecms_pro/src/FireCMSProAppProps.tsx b/packages/firebase_firecms_pro/src/FireCMSProAppProps.tsx index a2cf69c35..2669bdec4 100644 --- a/packages/firebase_firecms_pro/src/FireCMSProAppProps.tsx +++ b/packages/firebase_firecms_pro/src/FireCMSProAppProps.tsx @@ -19,7 +19,7 @@ import { FirebaseSignInOption, FirebaseSignInProvider, FirestoreIndexesBuilder, - FirestoreTextSearchController, FirestoreTextSearchControllerBuilder + FirestoreTextSearchControllerBuilder } from "@firecms/firebase"; /** diff --git a/packages/firebase_firecms_pro/src/components/FirebaseLoginView.tsx b/packages/firebase_firecms_pro/src/components/FirebaseLoginView.tsx index 148f5e895..f9b7705d0 100644 --- a/packages/firebase_firecms_pro/src/components/FirebaseLoginView.tsx +++ b/packages/firebase_firecms_pro/src/components/FirebaseLoginView.tsx @@ -1,11 +1,7 @@ import React, { ReactNode, useCallback, useEffect, useRef, useState } from "react"; import { FirebaseApp, FirebaseError } from "firebase/app"; -import { - ErrorView, - FireCMSLogo, - useModeController, -} from "@firecms/core"; +import { ErrorView, FireCMSLogo, useModeController, } from "@firecms/core"; import { ArrowBackIcon, Button, diff --git a/packages/firecms/src/FireCMSApp.tsx b/packages/firecms/src/FireCMSApp.tsx index 34c84cb14..05a58468c 100644 --- a/packages/firecms/src/FireCMSApp.tsx +++ b/packages/firecms/src/FireCMSApp.tsx @@ -472,7 +472,8 @@ function FireCMSAppAuthenticated({ const saasPlugin = useSaasPlugin({ projectConfig, firestoreDelegate, - collectionConfigController + collectionConfigController, + appConfig }); const plugins: FireCMSPlugin[] = [importExportPlugin, collectionEditorPlugin, dataEnhancementPlugin, saasPlugin]; diff --git a/packages/firecms/src/components/subscriptions/TextSearchInfoDialog.tsx b/packages/firecms/src/components/subscriptions/TextSearchInfoDialog.tsx index 724cb44d5..7ba6b6989 100644 --- a/packages/firecms/src/components/subscriptions/TextSearchInfoDialog.tsx +++ b/packages/firecms/src/components/subscriptions/TextSearchInfoDialog.tsx @@ -20,14 +20,16 @@ export function TextSearchInfoDialog({ closeDialog, collection, collectionConfigController, - parentCollectionIds + parentCollectionIds, + hasOwnTextSearchImplementation }: { open: boolean, closeDialog: () => void, path: string, collection: EntityCollection, collectionConfigController: CollectionsConfigController, - parentCollectionIds?: string[] + parentCollectionIds?: string[], + hasOwnTextSearchImplementation: boolean }) { const snackbarController = useSnackbarController(); @@ -54,40 +56,51 @@ export function TextSearchInfoDialog({ - Enable local text search + Enable text search Upgrade to PLUS to use local search}/> - - - Local text search is the simplest way to enable text search in your - collection. It loads all documents in the collection in the browser - and performs the search locally. This is the recommended option for - small collections. - - -
- - Local text search is not recommended for large collections. - - - - Note that enabling local text search will need to fetch all documents - from your collection and store them in the browser. This can be inefficient - for large collections. It can also incur in additional costs. + message={<>Upgrade to PLUS to use text search}/> + + {!hasOwnTextSearchImplementation && <> + +
+ + Local text search is not recommended for large collections. + + + + Note that enabling local text search will need to fetch all documents + from your collection and store them in the browser. This can be inefficient + for large collections. It can also incur in additional costs. + + + + If you are using a paid plan, you are encouraged to use an external + search engine such as Algolia or Elastic Search. + +
+ + + Local text search is the simplest way to enable text search in your + collection. It loads all documents in the collection in the browser + and performs the search locally. This is the recommended option for + small collections. - - If you are using a paid plan, you are encouraged to use an external - search engine such as Algolia or Elastic Search. + } + + {hasOwnTextSearchImplementation && <> + + You have implemented your own text search controller. You enable text search + for your collection. -
+ }
- {projectConfig.localTextSearchEnabled && !collection.textSearchEnabled && + {(hasOwnTextSearchImplementation || projectConfig.localTextSearchEnabled) && !collection.textSearchEnabled && } - {!projectConfig.localTextSearchEnabled && + {!hasOwnTextSearchImplementation && !projectConfig.localTextSearchEnabled && ; diff --git a/packages/firecms_core/src/form/field_bindings/MarkdownFieldBinding.tsx b/packages/firecms_core/src/form/field_bindings/MarkdownFieldBinding.tsx index 03fe641c4..4f6ed62d0 100644 --- a/packages/firecms_core/src/form/field_bindings/MarkdownFieldBinding.tsx +++ b/packages/firecms_core/src/form/field_bindings/MarkdownFieldBinding.tsx @@ -13,9 +13,9 @@ import { fieldBackgroundDisabledMixin, fieldBackgroundHoverMixin, fieldBackgroundMixin, - Typography + Typography, + useInjectStyles } from "@firecms/ui"; -import { useInjectStyles } from "@firecms/ui"; const mdParser = new MarkdownIt(); try { diff --git a/packages/firecms_core/src/form/field_bindings/ReadOnlyFieldBinding.tsx b/packages/firecms_core/src/form/field_bindings/ReadOnlyFieldBinding.tsx index 67e99bd6f..d12ff329c 100644 --- a/packages/firecms_core/src/form/field_bindings/ReadOnlyFieldBinding.tsx +++ b/packages/firecms_core/src/form/field_bindings/ReadOnlyFieldBinding.tsx @@ -4,10 +4,9 @@ import { Entity, FieldProps } from "../../types"; import { PropertyPreview } from "../../preview"; import { FieldHelperText } from "../components"; -import { LabelWithIcon } from "../../components"; +import { ErrorBoundary, LabelWithIcon } from "../../components"; import { getIconForProperty } from "../../util"; import { cn, paperMixin } from "@firecms/ui"; -import { ErrorBoundary } from "../../components"; /** * diff --git a/packages/firecms_core/src/form/field_bindings/ReferenceFieldBinding.tsx b/packages/firecms_core/src/form/field_bindings/ReferenceFieldBinding.tsx index 6b784e1b9..a3f154e4f 100644 --- a/packages/firecms_core/src/form/field_bindings/ReferenceFieldBinding.tsx +++ b/packages/firecms_core/src/form/field_bindings/ReferenceFieldBinding.tsx @@ -4,11 +4,10 @@ import { Entity, EntityCollection, EntityReference, FieldProps } from "../../typ import { useClearRestoreValue, useNavigationController, useReferenceDialog } from "../../hooks"; import { ReadOnlyFieldBinding } from "./ReadOnlyFieldBinding"; import { FieldHelperText } from "../components"; -import { LabelWithIcon } from "../../components"; +import { ErrorView, LabelWithIcon } from "../../components"; import { ReferencePreview } from "../../preview"; import { getIconForProperty, getReferenceFrom } from "../../util"; import { Button } from "@firecms/ui"; -import { ErrorView } from "../../components"; /** * Field that opens a reference selection dialog. diff --git a/packages/firecms_core/src/preview/PropertyPreviewProps.tsx b/packages/firecms_core/src/preview/PropertyPreviewProps.tsx index 27f230dc5..ca57f5c68 100644 --- a/packages/firecms_core/src/preview/PropertyPreviewProps.tsx +++ b/packages/firecms_core/src/preview/PropertyPreviewProps.tsx @@ -1,4 +1,4 @@ -import { CMSType, Entity, Property, ResolvedProperty } from "../types"; +import { CMSType, Property, ResolvedProperty } from "../types"; /** * @group Preview components diff --git a/packages/firecms_core/src/util/strings.ts b/packages/firecms_core/src/util/strings.ts index 121597a90..51b290ee4 100644 --- a/packages/firecms_core/src/util/strings.ts +++ b/packages/firecms_core/src/util/strings.ts @@ -50,7 +50,8 @@ export function slugify(text?: string, separator = "_", lowercase = true) { : text; } -export function unslugify(slug: string): string { +export function unslugify(slug?: string): string { + if (!slug) return ""; if (slug.includes("-") || slug.includes("_") || !slug.includes(" ")) { const result = slug.replace(/[-_]/g, " "); return result.replace(/\w\S*/g, function (txt) { diff --git a/packages/schema_inference/src/collection_builder.ts b/packages/schema_inference/src/collection_builder.ts index da412e195..ddef9f31b 100644 --- a/packages/schema_inference/src/collection_builder.ts +++ b/packages/schema_inference/src/collection_builder.ts @@ -25,14 +25,16 @@ export type InferenceTypeBuilder = (value: any) => DataType; export async function buildEntityPropertiesFromData(data: object[], getType: InferenceTypeBuilder): Promise { const typesCount: TypesCountRecord = {}; const valuesCount: ValuesCountRecord = {}; - data.forEach((entry) => { - if (entry) { - Object.entries(entry).forEach(([key, value]) => { - increaseMapTypeCount(typesCount, key, value, getType); - increaseValuesCount(valuesCount, key, value, getType); - }) - } - }); + if (data) { + data.forEach((entry) => { + if (entry) { + Object.entries(entry).forEach(([key, value]) => { + increaseMapTypeCount(typesCount, key, value, getType); + increaseValuesCount(valuesCount, key, value, getType); + }) + } + }); + } // console.log(util.inspect({ typesCount }, { showHidden: false, depth: null, colors: true })); return buildPropertiesFromCount(data.length, typesCount, valuesCount); } @@ -40,10 +42,12 @@ export async function buildEntityPropertiesFromData(data: object[], getType: Inf export function buildPropertyFromData(data: any[], property: Property, getType: InferenceTypeBuilder): Property { const typesCount = {}; const valuesCount: ValuesCountRecord = {}; - data.forEach((entry) => { - increaseTypeCount(property.dataType, typesCount, entry, getType); - increaseValuesCount(valuesCount, "inferred_prop", entry, getType); - }); + if (data) { + data.forEach((entry) => { + increaseTypeCount(property.dataType, typesCount, entry, getType); + increaseValuesCount(valuesCount, "inferred_prop", entry, getType); + }); + } const enumValues = "enumValues" in property ? resolveEnumValues(property["enumValues"] as EnumValues) : undefined; if (enumValues) { const newEnumValues = extractEnumFromValues(Array.from(valuesCount["inferred_prop"].valuesCount.keys())); diff --git a/packages/ui/src/components/Spinner.tsx b/packages/ui/src/components/Spinner.tsx index cefe63c4b..18c60c8fb 100644 --- a/packages/ui/src/components/Spinner.tsx +++ b/packages/ui/src/components/Spinner.tsx @@ -1,4 +1,5 @@ import React from "react"; + export function Spinner() { return (
diff --git a/packages/ui/src/icons/GitHubIcon.tsx b/packages/ui/src/icons/GitHubIcon.tsx index 55e4c27cc..9d98208b8 100644 --- a/packages/ui/src/icons/GitHubIcon.tsx +++ b/packages/ui/src/icons/GitHubIcon.tsx @@ -1,6 +1,7 @@ import React from "react"; import { IconProps } from "./Icon"; + export function GitHubIcon(props: IconProps) { return + diff --git a/website/docs/components/intro.mdx b/website/docs/components.mdx similarity index 98% rename from website/docs/components/intro.mdx rename to website/docs/components.mdx index 5913c33f4..ae116ad15 100644 --- a/website/docs/components/intro.mdx +++ b/website/docs/components.mdx @@ -1,7 +1,7 @@ --- -id: components_intro +id: components title: Components -sidebar_label: Components +sidebar_label: Introduction --- :::note diff --git a/website/docs/custom_top_level_views.mdx b/website/docs/custom_top_level_views.mdx index 9a7762003..5c9c8fa7a 100644 --- a/website/docs/custom_top_level_views.mdx +++ b/website/docs/custom_top_level_views.mdx @@ -10,7 +10,7 @@ implementing custom dashboards, data visualizations, or any other custom functionality you need. You can use all the components and hooks provided by FireCMS. -Check the [components gallery](./components/intro) for more information. +Check the [components gallery](./components) for more information. You can also use all the hooks, including authentication, navigation, datasource (Firestore), storage, etc. diff --git a/website/docs/migrating_from_v2.mdx b/website/docs/migrating_from_v2.mdx index 76c354fb9..41ccab56d 100644 --- a/website/docs/migrating_from_v2.mdx +++ b/website/docs/migrating_from_v2.mdx @@ -140,12 +140,9 @@ const appConfig: FireCMSAppConfig = { ## No longer supported features: -Some features are no longer supported in FireCMS 3.0. Some of them might be added in future releases. - -- `Authenticator` - `Custom CMS implementations`. It is not currently possible to implement a custom CMS, using the internal FireCMS components. You also can't use the new version with custom data sources. -- `ExportMappingFunction` is not currently supported. +Highly custom implementations will be supported in the **PRO** version of FireCMS. Please reach out to us in our [Discord channel](https://discord.gg/fxy7xsQm3m) if you need any of these features. diff --git a/website/docs/what_is_new_v3.mdx b/website/docs/what_is_new_v3.mdx index b6933c3ff..988017a8d 100644 --- a/website/docs/what_is_new_v3.mdx +++ b/website/docs/what_is_new_v3.mdx @@ -109,7 +109,7 @@ yarn add @firecms/ui ``` (you only need to install it if you want to use it in a different project) -The components are fully typed and documented. You can find the documentation [here](/docs/components/intro). +The components are fully typed and documented. You can find the documentation [here](/docs/components). They are based in Tailwind CSS and Radix UI. They are easily customizable, and you can use them to build your own components. They are also accessible and responsive. @@ -118,7 +118,7 @@ use them to build your own components. They are also accessible and responsive. You can customise the icons in different parts of the CMS, such when selecting one for a collection. FireCMS UI now exports all the Material Icons, conveniently exported as React components. -We have also added an [icon search function](/docs/icons/icons) in the website to find the icon you need. +We have also added an [icon search function](/docs/icons) in the website to find the icon you need. It makes it easy to find the right icon key when defining configuration for your collections, or to find the right icon component when you want to use it in your own components. diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index cd01da05d..d5bc88ae0 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -19,7 +19,8 @@ module.exports = { docSearchApiKey: process.env.REACT_APP_DOC_SEARCH_KEY, docSearchAppId: process.env.REACT_APP_DOC_SEARCH_APP_ID, }, - webpack: {}, + webpack: { + }, plugins: [ "docusaurus-tailwindcss-loader", @@ -43,6 +44,9 @@ module.exports = { "@firecms/ui": path.resolve(__dirname, "../packages/ui/src"), }, }, + optimization: { + usedExports: true, // <- remove unused function + } }; }, }; @@ -232,10 +236,6 @@ module.exports = { // Label of the section of these links title: "Links", items: [ - { - to: "enterprise", - label: "Enterprise", - }, { to: "https://app.firecms.co/subscriptions", label: "Manage subscriptions", @@ -288,23 +288,23 @@ module.exports = { // } ] }, - { - // title: "Community", - items: [ - { - //Renders the html pass-through instead of a simple link - html: ` - - `, - }, - ] - } + // { + // // title: "Community", + // items: [ + // { + // //Renders the html pass-through instead of a simple link + // html: ` + // + // `, + // }, + // ] + // } ], copyright: `© ${new Date().getFullYear()} - FireCMS S.L.` }, diff --git a/website/package.json b/website/package.json index 4ee28e48a..6ba11b084 100644 --- a/website/package.json +++ b/website/package.json @@ -61,8 +61,8 @@ ] }, "devDependencies": { - "@docusaurus/module-type-aliases": "^3.1.0", - "@docusaurus/types": "3.1.0", + "@docusaurus/module-type-aliases": "^3.1.1", + "@docusaurus/types": "^3.1.1", "@tsconfig/docusaurus": "^1.0.7", "@types/react": "^18.2.33", "@types/react-helmet": "^6.1.6", diff --git a/website/sidebars.js b/website/sidebars.js index 60d45f6f7..c61930b73 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -101,7 +101,7 @@ module.exports = { "label": "Components", "collapsed": false, "items": [ - "components/components_intro", + "components", "components/alert", "components/avatar", "components/badge", diff --git a/website/src/CodeSample.tsx b/website/src/CodeSample.tsx index 5001e8c2f..3b56f60cb 100644 --- a/website/src/CodeSample.tsx +++ b/website/src/CodeSample.tsx @@ -1,5 +1,6 @@ -import React from "react"; +import React, { Suspense } from "react"; import { cn, Paper } from "@firecms/ui"; +import BrowserOnly from "@docusaurus/BrowserOnly"; export type CodeSampleProps = { children: React.ReactNode; @@ -11,10 +12,17 @@ export default function CodeSample({ className }: CodeSampleProps) { return ( - - {children} + }> + {() => ( + }> + {children} + + )} + ); } diff --git a/website/src/DocsIconsView.tsx b/website/src/DocsIconsView.tsx index e4932a568..17af7ed2a 100644 --- a/website/src/DocsIconsView.tsx +++ b/website/src/DocsIconsView.tsx @@ -1,6 +1,7 @@ import React, { Suspense } from "react"; import CodeBlock from "@theme/CodeBlock"; import { keyToIconComponent } from "@firecms/ui"; +import BrowserOnly from "@docusaurus/BrowserOnly"; const LazySearchIconsView = React.lazy(() => import("./DefaultSearchIconsView")); @@ -8,20 +9,26 @@ export function DocsIconsView() { const [selectedIcon, setSelectedIcon] = React.useState(undefined); const componentName = selectedIcon ? keyToIconComponent(selectedIcon) : undefined; return
+ }> + {() => ( - }> - - - {selectedIcon &&
-
- If you need to specify your icon as a key, you can use the following value: -
- {selectedIcon ?? "None"} - {componentName && - {`import { ${componentName} } from "@firecms/ui";\n<${componentName}/>`} - } -
} + }> + + + {selectedIcon &&
+
+ If you need to specify your icon as a key, you can use the following value: +
+ {selectedIcon ?? "None"} + {componentName && + {`import { ${componentName} } from "@firecms/ui";\n<${componentName}/>`} + } +
} +
+ )} +
; } diff --git a/website/src/css/custom.css b/website/src/css/custom.css index b2f45e8db..ad6a01844 100644 --- a/website/src/css/custom.css +++ b/website/src/css/custom.css @@ -185,7 +185,7 @@ a.btn { } h1, h2, h3 { - font-weight: 700; + font-weight: 600 !important; } h2 { @@ -268,18 +268,18 @@ article img, video { } .table-of-contents__left-border { - border-left: none !important; + /*border-left: none !important;*/ } -.table-of-contents.table-of-contents__left-border > * { - padding: 16px; +.table-of-contents.table-of-contents__left-border { + margin-top: 16px; z-index: 10; border-radius: 8px; background-color: var(--ifm-background-color); border: 1px solid var(--ifm-border-color); } -aside > * { +aside > nav { padding: 16px; z-index: 10; border-radius: 8px; diff --git a/website/src/partials/enterprise/EnterpriseHero.tsx b/website/src/partials/enterprise/EnterpriseHero.tsx index 883a726e6..5c65ec8a4 100644 --- a/website/src/partials/enterprise/EnterpriseHero.tsx +++ b/website/src/partials/enterprise/EnterpriseHero.tsx @@ -1,5 +1,4 @@ import React from "react"; -import { CTAOutlinedButtonWhiteMixin } from "../styles"; import { Hero } from "../general/Hero"; export function EnterpriseHero() { diff --git a/website/src/partials/pricing/FireCMSCloudVersions.tsx b/website/src/partials/pricing/FireCMSCloudVersions.tsx index c2f2a57b0..cbf99a8c0 100644 --- a/website/src/partials/pricing/FireCMSCloudVersions.tsx +++ b/website/src/partials/pricing/FireCMSCloudVersions.tsx @@ -4,7 +4,6 @@ import { ContainerPaddingMixin, CTAButtonMixin, CTACaret, CTAOutlinedButtonMixin, - CTAOutlinedButtonWhiteMixin, defaultBorderMixin } from "../styles"; import clsx from "clsx"; @@ -27,6 +26,8 @@ export function FireCMSCloudVersions() {
  • Unlimited projects
  • Unlimited collections
  • All available form fields
  • +
  • Custom fields and custom views
  • +
  • Access to a 40+ first class components library
  • Schema editor and inference from data
  • Advanced data import and export
  • Default roles
  • @@ -54,7 +55,6 @@ export function FireCMSCloudVersions() {
    • Everything in the free tier
    • Local text search
    • -
    • Custom fields and custom views
    • Unlimited users and roles
    • Unlimited data export
    • Theme and logo customization
    • diff --git a/website/src/partials/pricing/VersionsComparison.tsx b/website/src/partials/pricing/VersionsComparison.tsx index aa0518c61..f6e4d5ca0 100644 --- a/website/src/partials/pricing/VersionsComparison.tsx +++ b/website/src/partials/pricing/VersionsComparison.tsx @@ -69,43 +69,49 @@ const data = [{ cloudPlus: "Yes", cloudPro: "Yes" }, { - feature: "OpenAI data augmentation", - selfHosted: "With subscription", - cloud: "No", + feature: "Custom form fields", + selfHosted: "Yes", + cloud: "Yes", cloudPlus: "Yes", cloudPro: "Yes" }, { - feature: "Support", - selfHosted: "Enterprise", - cloud: "No", + feature: "Custom entity views", + selfHosted: "Yes", + cloud: "Yes", cloudPlus: "Yes", cloudPro: "Yes" }, { - feature: "Custom user roles", - selfHosted: "Dev managed", - cloud: "No", + feature: "Dynamic properties", + selfHosted: "Yes", + cloud: "Yes", cloudPlus: "Yes", cloudPro: "Yes" }, { - feature: "Unlimited users", + feature: "Custom routes", selfHosted: "Yes", + cloud: "Yes", + cloudPlus: "Yes", + cloudPro: "Yes" + }, { + feature: "OpenAI data augmentation", + selfHosted: "With subscription", cloud: "No", cloudPlus: "Yes", cloudPro: "Yes" }, { - feature: "Custom fields", - selfHosted: "Yes", + feature: "Support", + selfHosted: "Enterprise", cloud: "No", cloudPlus: "Yes", cloudPro: "Yes" }, { - feature: "Dynamic properties", - selfHosted: "Yes", + feature: "Custom user roles", + selfHosted: "Dev managed", cloud: "No", cloudPlus: "Yes", cloudPro: "Yes" }, { - feature: "Custom routes", + feature: "Unlimited users", selfHosted: "Yes", cloud: "No", cloudPlus: "Yes", diff --git a/website/src/partials/styles.tsx b/website/src/partials/styles.tsx index 9c75d9445..58f48c3f3 100644 --- a/website/src/partials/styles.tsx +++ b/website/src/partials/styles.tsx @@ -1,7 +1,7 @@ import React from "react"; export const CTAOutlinedButtonMixin = "btn px-10 py-4 md:px-12 border-1 border-solid border-gray-900 border-opacity-70 dark:border-gray-950 dark:border-opacity-80 uppercase rounded border-solid text-inherit dark:hover:text-gray-100 hover:bg-gray-100 dark:hover:bg-gray-900 h dark:hover:border-gray-800 text-center"; -export const CTAOutlinedButtonWhiteMixin = "btn px-10 py-4 md:px-12 border-1 border-white uppercase rounded border-solid dark:text-white hover:bg-gray-200 hover:border-gray-200 text-center"; +export const CTAOutlinedButtonWhiteMixin = "btn px-10 py-4 md:px-12 border-1 border-white uppercase rounded border-solid text-white dark:text-white hover:bg-gray-200 hover:border-gray-200 text-center"; export const CTAButtonMixin = "btn px-10 py-4 md:px-12 text-white bg-primary hover:text-white hover:bg-blue-700 hover:text-white uppercase border-solid rounded text-center"; export const CTAButtonDarkMixin = "btn px-10 py-4 md:px-12 border-1 border-gray-700 uppercase rounded border-solid text-white bg-gray-900 hover:text-gray-100 hover:border-gray-800 text-center"; diff --git a/website/tailwind.config.js b/website/tailwind.config.js index ad0f56a2c..764a72ca8 100644 --- a/website/tailwind.config.js +++ b/website/tailwind.config.js @@ -7,7 +7,7 @@ const fireCMSTailwindConfig = { "../**/node_modules/firecms/src/**/*.{js,ts,jsx,tsx}", "../**/node_modules/@firecms/**/src/**/*.{js,ts,jsx,tsx}", ], - corePlugins: { preflight: true }, + corePlugins: { preflight: false }, theme: { extend: { colors: { diff --git a/website/yarn.lock b/website/yarn.lock index a9af7dd10..5fa7c5156 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -249,7 +249,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.19.6, @babel/core@npm:^7.23.3": +"@babel/core@npm:^7.19.6": version: 7.23.7 resolution: "@babel/core@npm:7.23.7" dependencies: @@ -272,6 +272,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.23.3": + version: 7.23.9 + resolution: "@babel/core@npm:7.23.9" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.6 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helpers": ^7.23.9 + "@babel/parser": ^7.23.9 + "@babel/template": ^7.23.9 + "@babel/traverse": ^7.23.9 + "@babel/types": ^7.23.9 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: 634a511f74db52a5f5a283c1121f25e2227b006c095b84a02a40a9213842489cd82dc7d61cdc74e10b5bcd9bb0a4e28bab47635b54c7e2256d47ab57356e2a76 + languageName: node + linkType: hard + "@babel/generator@npm:^7.23.3, @babel/generator@npm:^7.23.6": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -548,6 +571,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/helpers@npm:7.23.9" + dependencies: + "@babel/template": ^7.23.9 + "@babel/traverse": ^7.23.9 + "@babel/types": ^7.23.9 + checksum: 2678231192c0471dbc2fc403fb19456cc46b1afefcfebf6bc0f48b2e938fdb0fef2e0fe90c8c8ae1f021dae5012b700372e4b5d15867f1d7764616532e4a6324 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.23.4": version: 7.23.4 resolution: "@babel/highlight@npm:7.23.4" @@ -568,6 +602,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/parser@npm:7.23.9" + bin: + parser: ./bin/babel-parser.js + checksum: e7cd4960ac8671774e13803349da88d512f9292d7baa952173260d3e8f15620a28a3701f14f709d769209022f9e7b79965256b8be204fc550cfe783cdcabe7c7 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" @@ -1675,6 +1718,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/template@npm:7.23.9" + dependencies: + "@babel/code-frame": ^7.23.5 + "@babel/parser": ^7.23.9 + "@babel/types": ^7.23.9 + checksum: 6e67414c0f7125d7ecaf20c11fab88085fa98a96c3ef10da0a61e962e04fdf3a18a496a66047005ddd1bb682a7cc7842d556d1db2f3f3f6ccfca97d5e445d342 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.23.7": version: 7.23.7 resolution: "@babel/traverse@npm:7.23.7" @@ -1693,6 +1747,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/traverse@npm:7.23.9" + dependencies: + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.6 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.23.9 + "@babel/types": ^7.23.9 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: a932f7aa850e158c00c97aad22f639d48c72805c687290f6a73e30c5c4957c07f5d28310c9bf59648e2980fe6c9d16adeb2ff92a9ca0f97fa75739c1328fc6c3 + languageName: node + linkType: hard + "@babel/types@npm:^7.20.0, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.23.6 resolution: "@babel/types@npm:7.23.6" @@ -1704,6 +1776,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/types@npm:7.23.9" + dependencies: + "@babel/helper-string-parser": ^7.23.4 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 0a9b008e9bfc89beb8c185e620fa0f8ed6c771f1e1b2e01e1596870969096fec7793898a1d64a035176abf1dd13e2668ee30bf699f2d92c210a8128f4b151e65 + languageName: node + linkType: hard + "@capsizecss/metrics@npm:^1.1.1": version: 1.3.0 resolution: "@capsizecss/metrics@npm:1.3.0" @@ -2170,9 +2253,9 @@ __metadata: languageName: node linkType: hard -"@docusaurus/core@npm:3.1.0, @docusaurus/core@npm:^3.1.0": - version: 3.1.0 - resolution: "@docusaurus/core@npm:3.1.0" +"@docusaurus/core@npm:3.1.1, @docusaurus/core@npm:^3.1.0": + version: 3.1.1 + resolution: "@docusaurus/core@npm:3.1.1" dependencies: "@babel/core": ^7.23.3 "@babel/generator": ^7.23.3 @@ -2184,13 +2267,13 @@ __metadata: "@babel/runtime": ^7.22.6 "@babel/runtime-corejs3": ^7.22.6 "@babel/traverse": ^7.22.8 - "@docusaurus/cssnano-preset": 3.1.0 - "@docusaurus/logger": 3.1.0 - "@docusaurus/mdx-loader": 3.1.0 + "@docusaurus/cssnano-preset": 3.1.1 + "@docusaurus/logger": 3.1.1 + "@docusaurus/mdx-loader": 3.1.1 "@docusaurus/react-loadable": 5.5.2 - "@docusaurus/utils": 3.1.0 - "@docusaurus/utils-common": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 + "@docusaurus/utils": 3.1.1 + "@docusaurus/utils-common": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 "@slorber/static-site-generator-webpack-plugin": ^4.0.7 "@svgr/webpack": ^6.5.1 autoprefixer: ^10.4.14 @@ -2248,41 +2331,41 @@ __metadata: react-dom: ^18.0.0 bin: docusaurus: bin/docusaurus.mjs - checksum: 18f894912298bfb5fe0cba15542d7f73ff199183bbfe7db5d1cf4e154b6275cbea21e424ef26f83d5af0df8386484b0e242daa3bb920566d64a82da15133f60a + checksum: a35851dd6dc5ff5d2c8a8efb36b9875dc33a9e067a4677e5c9437a8635970e55a3cf14bb6eba9c9e356f4189283fb401b39423d497eb17bb09a16dd0ed84b1da languageName: node linkType: hard -"@docusaurus/cssnano-preset@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/cssnano-preset@npm:3.1.0" +"@docusaurus/cssnano-preset@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/cssnano-preset@npm:3.1.1" dependencies: cssnano-preset-advanced: ^5.3.10 postcss: ^8.4.26 postcss-sort-media-queries: ^4.4.1 tslib: ^2.6.0 - checksum: 94b8bd2a6aba1b9be902ba053f548c2e7d7d050a4d7aa1156adf06b0cf43ddea46478c236b5e3ceaa1d5bf44a4bd3ba42e55a3a03e4ea459bf0b5e67a7f22fb3 + checksum: 562d96c2ff60826459c255831cd57b12393e6f41b3827c499d43d00ec1887fbeebfea7c68aa72d9e56a5d64419847d11a5d66021acb4f1e3ce4c87b781f33954 languageName: node linkType: hard -"@docusaurus/logger@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/logger@npm:3.1.0" +"@docusaurus/logger@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/logger@npm:3.1.1" dependencies: chalk: ^4.1.2 tslib: ^2.6.0 - checksum: d5e4b4ecf7764a8a9dd575ce14fd7dc61a79846a65dbc597f6715d369ca468082db2cb134bce904acf46b443217988338e28c70e213b4ebe933e25c6e8b42180 + checksum: d9673035a7eff14c1820b6c07a07e92a21e7f8e824305a784250d025c79bf9cfc51d0e6007b7660da4f810b78793572d382db48033201902c335c916d735433b languageName: node linkType: hard -"@docusaurus/mdx-loader@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/mdx-loader@npm:3.1.0" +"@docusaurus/mdx-loader@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/mdx-loader@npm:3.1.1" dependencies: "@babel/parser": ^7.22.7 "@babel/traverse": ^7.22.8 - "@docusaurus/logger": 3.1.0 - "@docusaurus/utils": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 + "@docusaurus/logger": 3.1.1 + "@docusaurus/utils": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 "@mdx-js/mdx": ^3.0.0 "@slorber/remark-comment": ^1.0.0 escape-html: ^1.0.3 @@ -2307,16 +2390,16 @@ __metadata: peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 9b0fec71f50e0ac3df2fdb66efaab2f054742c5c2423ce535ab7bd6a6d9121e2f6b82430dc10dd337d28b45cbcbee9fafb13aa678fd8feaceb6341ed58bc601e + checksum: e6b2483b20db41c8264c47edc42e2a738239fbad9b69eb520c7dab421dc2cde4f73f6ec871ccf277dfbc285ae9b202af892771ce800c4ce56739bff6c4c3c231 languageName: node linkType: hard -"@docusaurus/module-type-aliases@npm:3.1.0, @docusaurus/module-type-aliases@npm:^3.1.0": - version: 3.1.0 - resolution: "@docusaurus/module-type-aliases@npm:3.1.0" +"@docusaurus/module-type-aliases@npm:3.1.1, @docusaurus/module-type-aliases@npm:^3.1.1": + version: 3.1.1 + resolution: "@docusaurus/module-type-aliases@npm:3.1.1" dependencies: "@docusaurus/react-loadable": 5.5.2 - "@docusaurus/types": 3.1.0 + "@docusaurus/types": 3.1.1 "@types/history": ^4.7.11 "@types/react": "*" "@types/react-router-config": "*" @@ -2326,21 +2409,21 @@ __metadata: peerDependencies: react: "*" react-dom: "*" - checksum: 067814b4a7f2b5cae3280f184ed732b20c3460a8e4fbe1ab25bed7a6da6b0461cb71c1744bf689a6729cca4a48b07f1b5dd12ac8be2f324b8fbfcbd47d058705 + checksum: 937e52b57af5e459df26621dba57a1e399c48ebb1bc0fe10450c0238a79ef76d26a69ba9a42317e236d50bbd6c3e0fbb10fe97f8153373331947b90125aeee38 languageName: node linkType: hard -"@docusaurus/plugin-content-blog@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/plugin-content-blog@npm:3.1.0" - dependencies: - "@docusaurus/core": 3.1.0 - "@docusaurus/logger": 3.1.0 - "@docusaurus/mdx-loader": 3.1.0 - "@docusaurus/types": 3.1.0 - "@docusaurus/utils": 3.1.0 - "@docusaurus/utils-common": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 +"@docusaurus/plugin-content-blog@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/plugin-content-blog@npm:3.1.1" + dependencies: + "@docusaurus/core": 3.1.1 + "@docusaurus/logger": 3.1.1 + "@docusaurus/mdx-loader": 3.1.1 + "@docusaurus/types": 3.1.1 + "@docusaurus/utils": 3.1.1 + "@docusaurus/utils-common": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 cheerio: ^1.0.0-rc.12 feed: ^4.2.2 fs-extra: ^11.1.1 @@ -2354,21 +2437,21 @@ __metadata: peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: d8876e4052716cdeea8aeda473e1c52a1e3795af04b525509e75d8f95e0f34a2b37bae641e4bde676143462d2ec07845d0280eef8e9b2778740183e8ace6b7ab + checksum: 8680e47cc1250cd0c0987c7471e8679860d867de5bf3917e0088185cfa4f5abdb7a847f652cea7c61afbce9dad8bb3cd9f8924b13b064087eab4f9654a9de05d languageName: node linkType: hard -"@docusaurus/plugin-content-docs@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/plugin-content-docs@npm:3.1.0" - dependencies: - "@docusaurus/core": 3.1.0 - "@docusaurus/logger": 3.1.0 - "@docusaurus/mdx-loader": 3.1.0 - "@docusaurus/module-type-aliases": 3.1.0 - "@docusaurus/types": 3.1.0 - "@docusaurus/utils": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 +"@docusaurus/plugin-content-docs@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/plugin-content-docs@npm:3.1.1" + dependencies: + "@docusaurus/core": 3.1.1 + "@docusaurus/logger": 3.1.1 + "@docusaurus/mdx-loader": 3.1.1 + "@docusaurus/module-type-aliases": 3.1.1 + "@docusaurus/types": 3.1.1 + "@docusaurus/utils": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 "@types/react-router-config": ^5.0.7 combine-promises: ^1.1.0 fs-extra: ^11.1.1 @@ -2380,133 +2463,133 @@ __metadata: peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 88c25764dd7e573cfac405f729709766d75d6fa9a8c99581d2808f316067f29ccf2ff8c242b2d7177e77cd53286ae068ffdc3d287241d919040bbc1891071b2b + checksum: 1d96477ca575e01e3e2de080075f07a7f35da7a839632d2ad2d06bf3b651fbd91dd4e70861bb16e1ccb8b2a99f0602461f4c181c04557e0a98ece1b5e5ba61de languageName: node linkType: hard -"@docusaurus/plugin-content-pages@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/plugin-content-pages@npm:3.1.0" +"@docusaurus/plugin-content-pages@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/plugin-content-pages@npm:3.1.1" dependencies: - "@docusaurus/core": 3.1.0 - "@docusaurus/mdx-loader": 3.1.0 - "@docusaurus/types": 3.1.0 - "@docusaurus/utils": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 + "@docusaurus/core": 3.1.1 + "@docusaurus/mdx-loader": 3.1.1 + "@docusaurus/types": 3.1.1 + "@docusaurus/utils": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 fs-extra: ^11.1.1 tslib: ^2.6.0 webpack: ^5.88.1 peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 70ff37aab8c0ad684fea02452fc369a65669ea8d1cca331d471dbe501842daa6686df7866b21730cf36a4b20c13b1a726d0f975b7296896b80b77c7be4330e1b + checksum: ccb9c58802b56c79f2b9bc4445dad316e50438fea995c2a6543637c472c4c2ccfbe3984abb462a1359bce3e3dfad84fecf6e4faab8e242dac4182146043ea005 languageName: node linkType: hard -"@docusaurus/plugin-debug@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/plugin-debug@npm:3.1.0" +"@docusaurus/plugin-debug@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/plugin-debug@npm:3.1.1" dependencies: - "@docusaurus/core": 3.1.0 - "@docusaurus/types": 3.1.0 - "@docusaurus/utils": 3.1.0 + "@docusaurus/core": 3.1.1 + "@docusaurus/types": 3.1.1 + "@docusaurus/utils": 3.1.1 fs-extra: ^11.1.1 react-json-view-lite: ^1.2.0 tslib: ^2.6.0 peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: a2e3049c96e2b93f416ff44fb2be7a50014ac300854ce54d37778d4a822c122303bab9a428fd141ffa525475fb2f7bd6b435034c44332b2345e15969a046e099 + checksum: 843780bf7eb57d41d198832ad9a7a53e45302c2a10f0221a77c4340e3b1c1dd4e92f77f2ecae3fdb8eef0aed1b7314f2ce1c8323fe25eec759bcde10e0e50149 languageName: node linkType: hard -"@docusaurus/plugin-google-analytics@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/plugin-google-analytics@npm:3.1.0" +"@docusaurus/plugin-google-analytics@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/plugin-google-analytics@npm:3.1.1" dependencies: - "@docusaurus/core": 3.1.0 - "@docusaurus/types": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 + "@docusaurus/core": 3.1.1 + "@docusaurus/types": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 tslib: ^2.6.0 peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 7953e28cf6560a27e1f3de3a549ccb7cd4e0d278b9eb58dc1d4d84444376675427c613b6930af408981f35ec78567e5475739dd186e83b1007aebf30c435fff3 + checksum: 4efcaf9f95353485965e299a971e761b3dadac1370d6d8a6582d653535ce76e36b6788283aa1a6dfd7f55ac64fca3d7e97239f94a5163e4cf192a5c2854b1d61 languageName: node linkType: hard -"@docusaurus/plugin-google-gtag@npm:3.1.0, @docusaurus/plugin-google-gtag@npm:^3.1.0": - version: 3.1.0 - resolution: "@docusaurus/plugin-google-gtag@npm:3.1.0" +"@docusaurus/plugin-google-gtag@npm:3.1.1, @docusaurus/plugin-google-gtag@npm:^3.1.0": + version: 3.1.1 + resolution: "@docusaurus/plugin-google-gtag@npm:3.1.1" dependencies: - "@docusaurus/core": 3.1.0 - "@docusaurus/types": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 + "@docusaurus/core": 3.1.1 + "@docusaurus/types": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 "@types/gtag.js": ^0.0.12 tslib: ^2.6.0 peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: aebe3e90e3183f049360cab0863183bc8bf9b1d216922279da034b117499ead5bf464b414db40f255681be448ee8954068ef7a5315a61ab851bd670585e145a3 + checksum: 65ede5352fa16492b23ac37343eb62f4855c4e306ce07552f3257894ddc2329a6244d371bf989bd034cd685965ef8c667d87322497e475d1e54f014fa44225f1 languageName: node linkType: hard -"@docusaurus/plugin-google-tag-manager@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/plugin-google-tag-manager@npm:3.1.0" +"@docusaurus/plugin-google-tag-manager@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/plugin-google-tag-manager@npm:3.1.1" dependencies: - "@docusaurus/core": 3.1.0 - "@docusaurus/types": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 + "@docusaurus/core": 3.1.1 + "@docusaurus/types": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 tslib: ^2.6.0 peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 12eb03fd4f6e611ba68546412411ab4e2b5f25223ae4b2a1af2190c11059ef0ad627e6b9a642776567b949a7943847654b89b4106cd3bbaedf3f0497563f6ced + checksum: 9a1a014a39da0e5ef234c0eb427b7d97b59fd797152c24e05c13a6a11db4269a0223ad474d17714d02a3ad14a97a9072b6757554b3f274b5f0480d7409749a7c languageName: node linkType: hard -"@docusaurus/plugin-sitemap@npm:3.1.0, @docusaurus/plugin-sitemap@npm:^3.1.0": - version: 3.1.0 - resolution: "@docusaurus/plugin-sitemap@npm:3.1.0" - dependencies: - "@docusaurus/core": 3.1.0 - "@docusaurus/logger": 3.1.0 - "@docusaurus/types": 3.1.0 - "@docusaurus/utils": 3.1.0 - "@docusaurus/utils-common": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 +"@docusaurus/plugin-sitemap@npm:3.1.1, @docusaurus/plugin-sitemap@npm:^3.1.0": + version: 3.1.1 + resolution: "@docusaurus/plugin-sitemap@npm:3.1.1" + dependencies: + "@docusaurus/core": 3.1.1 + "@docusaurus/logger": 3.1.1 + "@docusaurus/types": 3.1.1 + "@docusaurus/utils": 3.1.1 + "@docusaurus/utils-common": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 fs-extra: ^11.1.1 sitemap: ^7.1.1 tslib: ^2.6.0 peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 0fa7f908247387ff5c13c981a4b35be848e77509861ccd2cf68d69ebab61f9f6719a0167a9414a0b3fe7f944615ad38603d3a28c2e1996535cbd756f9d06007d + checksum: 69b584dc9143b816a06eac7bbd13501c201c24dadd339dfd18179f7a7ddcabfe76640fd87ab14f73f624916e74b7192eee5f3aca7e745f2d6a92b5754c8d7bb3 languageName: node linkType: hard "@docusaurus/preset-classic@npm:^3.1.0": - version: 3.1.0 - resolution: "@docusaurus/preset-classic@npm:3.1.0" - dependencies: - "@docusaurus/core": 3.1.0 - "@docusaurus/plugin-content-blog": 3.1.0 - "@docusaurus/plugin-content-docs": 3.1.0 - "@docusaurus/plugin-content-pages": 3.1.0 - "@docusaurus/plugin-debug": 3.1.0 - "@docusaurus/plugin-google-analytics": 3.1.0 - "@docusaurus/plugin-google-gtag": 3.1.0 - "@docusaurus/plugin-google-tag-manager": 3.1.0 - "@docusaurus/plugin-sitemap": 3.1.0 - "@docusaurus/theme-classic": 3.1.0 - "@docusaurus/theme-common": 3.1.0 - "@docusaurus/theme-search-algolia": 3.1.0 - "@docusaurus/types": 3.1.0 + version: 3.1.1 + resolution: "@docusaurus/preset-classic@npm:3.1.1" + dependencies: + "@docusaurus/core": 3.1.1 + "@docusaurus/plugin-content-blog": 3.1.1 + "@docusaurus/plugin-content-docs": 3.1.1 + "@docusaurus/plugin-content-pages": 3.1.1 + "@docusaurus/plugin-debug": 3.1.1 + "@docusaurus/plugin-google-analytics": 3.1.1 + "@docusaurus/plugin-google-gtag": 3.1.1 + "@docusaurus/plugin-google-tag-manager": 3.1.1 + "@docusaurus/plugin-sitemap": 3.1.1 + "@docusaurus/theme-classic": 3.1.1 + "@docusaurus/theme-common": 3.1.1 + "@docusaurus/theme-search-algolia": 3.1.1 + "@docusaurus/types": 3.1.1 peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 6f01570fac940834be93b63592c757a5f76c97571150a11a7789c7d81d58201a29a9c1cdadfe206035216fd028f2ecd60763bedc09deb64ef1a414fd5a29c921 + checksum: c0fba593e9d1670ea21b6caefe297ee35ca22f6b8bc63037d8f3fa652d62516494d0a557f8949520424d01a4e92b563800599ec16a1a33655324b42d5f15c55a languageName: node linkType: hard @@ -2522,22 +2605,22 @@ __metadata: languageName: node linkType: hard -"@docusaurus/theme-classic@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/theme-classic@npm:3.1.0" - dependencies: - "@docusaurus/core": 3.1.0 - "@docusaurus/mdx-loader": 3.1.0 - "@docusaurus/module-type-aliases": 3.1.0 - "@docusaurus/plugin-content-blog": 3.1.0 - "@docusaurus/plugin-content-docs": 3.1.0 - "@docusaurus/plugin-content-pages": 3.1.0 - "@docusaurus/theme-common": 3.1.0 - "@docusaurus/theme-translations": 3.1.0 - "@docusaurus/types": 3.1.0 - "@docusaurus/utils": 3.1.0 - "@docusaurus/utils-common": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 +"@docusaurus/theme-classic@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/theme-classic@npm:3.1.1" + dependencies: + "@docusaurus/core": 3.1.1 + "@docusaurus/mdx-loader": 3.1.1 + "@docusaurus/module-type-aliases": 3.1.1 + "@docusaurus/plugin-content-blog": 3.1.1 + "@docusaurus/plugin-content-docs": 3.1.1 + "@docusaurus/plugin-content-pages": 3.1.1 + "@docusaurus/theme-common": 3.1.1 + "@docusaurus/theme-translations": 3.1.1 + "@docusaurus/types": 3.1.1 + "@docusaurus/utils": 3.1.1 + "@docusaurus/utils-common": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 "@mdx-js/react": ^3.0.0 clsx: ^2.0.0 copy-text-to-clipboard: ^3.2.0 @@ -2554,21 +2637,21 @@ __metadata: peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 82c0d31f5b22c7a12c021b6921f0afe65aaf66d1f6a5aa003beba1ae79c349e693547170415fa7993111937ecaf07358e433119c65e85c2a6f6cde984dc17b75 + checksum: 8d64676351408e0a378bf9b226cb9cc8f52c8b1f1e03811431de0c7af2aa80445a825267933a4c44ee92d6a975a549c47f4d28798d99cfc0b731f4c4e38f0ba3 languageName: node linkType: hard -"@docusaurus/theme-common@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/theme-common@npm:3.1.0" - dependencies: - "@docusaurus/mdx-loader": 3.1.0 - "@docusaurus/module-type-aliases": 3.1.0 - "@docusaurus/plugin-content-blog": 3.1.0 - "@docusaurus/plugin-content-docs": 3.1.0 - "@docusaurus/plugin-content-pages": 3.1.0 - "@docusaurus/utils": 3.1.0 - "@docusaurus/utils-common": 3.1.0 +"@docusaurus/theme-common@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/theme-common@npm:3.1.1" + dependencies: + "@docusaurus/mdx-loader": 3.1.1 + "@docusaurus/module-type-aliases": 3.1.1 + "@docusaurus/plugin-content-blog": 3.1.1 + "@docusaurus/plugin-content-docs": 3.1.1 + "@docusaurus/plugin-content-pages": 3.1.1 + "@docusaurus/utils": 3.1.1 + "@docusaurus/utils-common": 3.1.1 "@types/history": ^4.7.11 "@types/react": "*" "@types/react-router-config": "*" @@ -2580,22 +2663,22 @@ __metadata: peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: e979af32582d04a62584b9a25982293a228f3acb420f8b89cfec0b41aa7b336666fe48105ef57b962f17131821a4458c573968da2a148b89e22a9aaff9189a8b + checksum: ba7d2c4032c8d7f822e77bd39a77f712f258e9d4aa44aac75a72ad27c0eaa7400746025ba59e445c9c1b083d2ae02802a759361d67e80b9f7295521520ada1bc languageName: node linkType: hard -"@docusaurus/theme-search-algolia@npm:3.1.0, @docusaurus/theme-search-algolia@npm:^3.1.0": - version: 3.1.0 - resolution: "@docusaurus/theme-search-algolia@npm:3.1.0" +"@docusaurus/theme-search-algolia@npm:3.1.1, @docusaurus/theme-search-algolia@npm:^3.1.0": + version: 3.1.1 + resolution: "@docusaurus/theme-search-algolia@npm:3.1.1" dependencies: "@docsearch/react": ^3.5.2 - "@docusaurus/core": 3.1.0 - "@docusaurus/logger": 3.1.0 - "@docusaurus/plugin-content-docs": 3.1.0 - "@docusaurus/theme-common": 3.1.0 - "@docusaurus/theme-translations": 3.1.0 - "@docusaurus/utils": 3.1.0 - "@docusaurus/utils-validation": 3.1.0 + "@docusaurus/core": 3.1.1 + "@docusaurus/logger": 3.1.1 + "@docusaurus/plugin-content-docs": 3.1.1 + "@docusaurus/theme-common": 3.1.1 + "@docusaurus/theme-translations": 3.1.1 + "@docusaurus/utils": 3.1.1 + "@docusaurus/utils-validation": 3.1.1 algoliasearch: ^4.18.0 algoliasearch-helper: ^3.13.3 clsx: ^2.0.0 @@ -2607,23 +2690,23 @@ __metadata: peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 6aaeb153cfcac01112584c557ebf4dde5ba75f2f2c404fa146a875617ae26a487ac407b64e36e8af336c2bca83947a9376dd2c2fc035e75a07fe2eb708a30567 + checksum: 42686e29faf14c482161eb399b1bc9960322f61298b2e6694d1b89374b2f4c352147b2299cf830abb0db8a9eba0bf5d342adfd1ad71101d1aad17f0955856145 languageName: node linkType: hard -"@docusaurus/theme-translations@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/theme-translations@npm:3.1.0" +"@docusaurus/theme-translations@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/theme-translations@npm:3.1.1" dependencies: fs-extra: ^11.1.1 tslib: ^2.6.0 - checksum: ce3edda17bc9c802ecb09417187c349a399d6c9c23c2af86ec338136b72e5e7772fb014dd59d68f9ce61a26b2c6973d1350f7a787e1107b82d4388d9934ffc16 + checksum: 4fbf12aef4b6e49182b5fd6ee0c357b4cd1811490713a7cddeb7714eacebf1972dac10f3bb4ee56f6c5e62c297a9a7a17f4e3724e56ad28fa8125073e0c3258e languageName: node linkType: hard -"@docusaurus/types@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/types@npm:3.1.0" +"@docusaurus/types@npm:3.1.1, @docusaurus/types@npm:^3.1.1": + version: 3.1.1 + resolution: "@docusaurus/types@npm:3.1.1" dependencies: "@mdx-js/mdx": ^3.0.0 "@types/history": ^4.7.11 @@ -2637,13 +2720,13 @@ __metadata: peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 9aa554f2395031f974798b94bea8c8b32d3280d6512ae8f8052a14758507281d696b0ef7fd2c7daf7261f4216c1149ec6beeaa414745a248c83fa1b04bab3ff5 + checksum: 5041bca00cc887cc3ac8dd8c0895cc778dced2943b2d026fe7d1b8828756257093ad3df05706f344e91710b054f9df0e56d2d369a448472ec173bd81c4a8956f languageName: node linkType: hard -"@docusaurus/utils-common@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/utils-common@npm:3.1.0" +"@docusaurus/utils-common@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/utils-common@npm:3.1.1" dependencies: tslib: ^2.6.0 peerDependencies: @@ -2651,28 +2734,28 @@ __metadata: peerDependenciesMeta: "@docusaurus/types": optional: true - checksum: c9837e1bf78013239530958760825e55a509e9c4fbd6c3fd2812b7ebb187f13f7976f0e9c64bceff83444f696a6f0a58ba7e0d65fe9e493f3f31a7d1fbe8dd83 + checksum: 787d930456e4034f7f57186172ad5d214c2473d135ec8c12cf19af8fc64e87eb35a684137e8b813f61e224243c7e3d122c6c646cb20e12ef216048be6a817f44 languageName: node linkType: hard -"@docusaurus/utils-validation@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/utils-validation@npm:3.1.0" +"@docusaurus/utils-validation@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/utils-validation@npm:3.1.1" dependencies: - "@docusaurus/logger": 3.1.0 - "@docusaurus/utils": 3.1.0 + "@docusaurus/logger": 3.1.1 + "@docusaurus/utils": 3.1.1 joi: ^17.9.2 js-yaml: ^4.1.0 tslib: ^2.6.0 - checksum: 10b05b6903f07d31beddb19bd5a4c40bc65add2c17bff494876549cc40d05bdab3766fe50809cd2b3ded1ec37a2541f9c28a4ddb934566d06e06e3dd9f4c76ea + checksum: 57d348a4bb2ecac34d84676674c3dc78d6e2821487d5c8a0b9945cab7a4362db5ee2ad084e4bb031b5c4ea674c5136c35090abea2272f57f3b25473c3b1680de languageName: node linkType: hard -"@docusaurus/utils@npm:3.1.0": - version: 3.1.0 - resolution: "@docusaurus/utils@npm:3.1.0" +"@docusaurus/utils@npm:3.1.1": + version: 3.1.1 + resolution: "@docusaurus/utils@npm:3.1.1" dependencies: - "@docusaurus/logger": 3.1.0 + "@docusaurus/logger": 3.1.1 "@svgr/webpack": ^6.5.1 escape-string-regexp: ^4.0.0 file-loader: ^6.2.0 @@ -2694,7 +2777,7 @@ __metadata: peerDependenciesMeta: "@docusaurus/types": optional: true - checksum: 5e71e5fee219ba1999e62ef5a08940fb3475ce915fcf8c3f67bdeda07274da9e21024239e8cbaac762064c9a0129eb1c9d2440f646420c76fb776828750491ff + checksum: 45c39767d1adcc793515109edcb6cfbecd9cf5f979d5dda95a729809b9c30f6288fa5adba757ce131b91b3d77ff24bb7e06ad1b0011d37b45be0035b76ed7ba3 languageName: node linkType: hard @@ -13690,12 +13773,12 @@ __metadata: dependencies: "@docsearch/js": 3.3.3 "@docusaurus/core": ^3.1.0 - "@docusaurus/module-type-aliases": ^3.1.0 + "@docusaurus/module-type-aliases": ^3.1.1 "@docusaurus/plugin-google-gtag": ^3.1.0 "@docusaurus/plugin-sitemap": ^3.1.0 "@docusaurus/preset-classic": ^3.1.0 "@docusaurus/theme-search-algolia": ^3.1.0 - "@docusaurus/types": 3.1.0 + "@docusaurus/types": ^3.1.1 "@firecms/collection_editor": "link:../packages/collection_editor" "@firecms/core": "link:../packages/firecms_core" "@firecms/data_import_export": "link:../packages/data_import_export"