@rebasepro/admin 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/{CollectionEditorDialog-BXIh2AXg.js → CollectionEditorDialog-CmGXXSY9.js} +6 -182
  2. package/dist/CollectionEditorDialog-CmGXXSY9.js.map +1 -0
  3. package/dist/{CollectionsStudioView-jR8iz_ja.js → CollectionsStudioView-DcLHT5bU.js} +4 -4
  4. package/dist/{CollectionsStudioView-jR8iz_ja.js.map → CollectionsStudioView-DcLHT5bU.js.map} +1 -1
  5. package/dist/{ContentHomePage-BQZWuOFb.js → ContentHomePage-C7vFqKSe.js} +2 -2
  6. package/dist/{ContentHomePage-BQZWuOFb.js.map → ContentHomePage-C7vFqKSe.js.map} +1 -1
  7. package/dist/{ExportCollectionAction-CMdiiv1L.js → ExportCollectionAction-BfN34eWX.js} +2 -2
  8. package/dist/{ExportCollectionAction-CMdiiv1L.js.map → ExportCollectionAction-BfN34eWX.js.map} +1 -1
  9. package/dist/{ImportCollectionAction-C05lE0IW.js → ImportCollectionAction-SZrInjhx.js} +2 -2
  10. package/dist/{ImportCollectionAction-C05lE0IW.js.map → ImportCollectionAction-SZrInjhx.js.map} +1 -1
  11. package/dist/{PropertyEditView-BB5xjnhZ.js → PropertyEditView-Cvryrb3B.js} +304 -326
  12. package/dist/PropertyEditView-Cvryrb3B.js.map +1 -0
  13. package/dist/{RolesView-CULIHWZ9.js → RolesView-BCb7qwWs.js} +2 -2
  14. package/dist/{RolesView-CULIHWZ9.js.map → RolesView-BCb7qwWs.js.map} +1 -1
  15. package/dist/{UsersView-D7_AtJ44.js → UsersView-Cex24r8H.js} +2 -2
  16. package/dist/{UsersView-D7_AtJ44.js.map → UsersView-Cex24r8H.js.map} +1 -1
  17. package/dist/collection_editor/ui/collection_editor/properties/RelationPropertyField.d.ts +1 -7
  18. package/dist/collection_editor_ui.js +3 -3
  19. package/dist/{index-D5OQhv-T.js → index-DjduZG1T.js} +3 -3
  20. package/dist/index-DjduZG1T.js.map +1 -0
  21. package/dist/{index-CoSNm3e3.js → index-MKPc70-v.js} +3 -3
  22. package/dist/index-MKPc70-v.js.map +1 -0
  23. package/dist/{index-BAM9KCmM.js → index-PLIQXpTt.js} +2 -2
  24. package/dist/{index-BAM9KCmM.js.map → index-PLIQXpTt.js.map} +1 -1
  25. package/dist/index.js +4 -4
  26. package/dist/{util-DtbWD7LF.js → util-DbWax_sV.js} +95 -15
  27. package/dist/{util-DtbWD7LF.js.map → util-DbWax_sV.js.map} +1 -1
  28. package/package.json +10 -9
  29. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +1 -10
  30. package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +37 -57
  31. package/src/collection_editor/validateCollectionJson.ts +88 -1
  32. package/dist/CollectionEditorDialog-BXIh2AXg.js.map +0 -1
  33. package/dist/PropertyEditView-BB5xjnhZ.js.map +0 -1
  34. package/dist/index-CoSNm3e3.js.map +0 -1
  35. package/dist/index-D5OQhv-T.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useSnackbarController, useUnsavedChangesDialog, UnsavedChangesDialog, IconForView } from "@rebasepro/core";
3
- import { bt as useUrlController } from "./util-DtbWD7LF.js";
3
+ import { bt as useUrlController } from "./util-DbWax_sV.js";
4
4
  import { useState, useEffect } from "react";
5
5
  import { c } from "react-compiler-runtime";
6
6
  import { Typography, Button, PlusIcon, ResizablePanels, Tooltip, IconButton, iconSize, cls, defaultBorderMixin } from "@rebasepro/ui";
@@ -20,8 +20,8 @@ import "exceljs";
20
20
  import "@rebasepro/schema-inference";
21
21
  import "date-fns";
22
22
  import "date-fns/locale";
23
- import { A as AIModifiedPathsProvider } from "./PropertyEditView-BB5xjnhZ.js";
24
- import { CollectionEditor } from "./CollectionEditorDialog-BXIh2AXg.js";
23
+ import { A as AIModifiedPathsProvider } from "./PropertyEditView-Cvryrb3B.js";
24
+ import { CollectionEditor } from "./CollectionEditorDialog-CmGXXSY9.js";
25
25
  function CollectionStudioView(t0) {
26
26
  const $ = c(30);
27
27
  let collectionId;
@@ -213,4 +213,4 @@ export {
213
213
  CollectionsStudioView as a,
214
214
  CollectionsStudioView$1 as b
215
215
  };
216
- //# sourceMappingURL=CollectionsStudioView-jR8iz_ja.js.map
216
+ //# sourceMappingURL=CollectionsStudioView-DcLHT5bU.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionsStudioView-jR8iz_ja.js","sources":["../src/collection_editor/ui/collection_editor/CollectionStudioView.tsx","../src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx"],"sourcesContent":["\nimport { useUnsavedChangesDialog, UnsavedChangesDialog } from \"@rebasepro/core\";\nimport { useUrlController } from \"../../_cms_internals\";\nimport * as React from \"react\";\nimport { useState, useMemo, useEffect } from \"react\";\nimport { Button, PlusIcon, Typography } from \"@rebasepro/ui\";\nimport { useSnackbarController } from \"@rebasepro/core\";\nimport { CollectionEditorDialogProps } from \"./CollectionEditorDialog\";\nimport { AIModifiedPathsProvider } from \"./AIModifiedPathsContext\";\nimport { CollectionEditor } from \"./CollectionEditorDialog\";\nimport { useNavigate } from \"react-router-dom\";\n\nexport type CollectionStudioViewProps = Omit<CollectionEditorDialogProps, \"open\" | \"isNewCollection\" | \"editedCollectionId\" | \"handleClose\" | \"handleCancel\"> & {\n collectionId?: string | \"new\";\n};\n\nexport function CollectionStudioView({ collectionId, ...props }: CollectionStudioViewProps) {\n const snackbarController = useSnackbarController();\n const navigate = useNavigate();\n const urlController = useUrlController();\n\n // Form state from the editor\n const [formDirty, setFormDirty] = useState<boolean>(false);\n const [cancelRequested, setCancelRequested] = useState<boolean>(false);\n\n const { dialogProps, triggerDialog } = useUnsavedChangesDialog(\n formDirty,\n () => setFormDirty(false)\n );\n\n // Map collectionId from URL params if missing? We can pass it directly.\n const activeCollectionId = collectionId;\n\n const handleCancelClick = () => {\n if (!formDirty) {\n navigate(urlController.buildAppUrlPath(\"/\"));\n } else {\n setCancelRequested(true);\n triggerDialog();\n }\n };\n\n return (\n <div className=\"flex-grow flex flex-col h-full w-full bg-white dark:bg-surface-950\">\n <AIModifiedPathsProvider>\n {activeCollectionId ? (\n <CollectionEditor\n key={activeCollectionId}\n {...props}\n fullScreen={true}\n open={true}\n isNewCollection={activeCollectionId === \"new\"}\n editedCollectionId={activeCollectionId !== \"new\" ? activeCollectionId : undefined}\n handleCancel={handleCancelClick}\n handleClose={(savedCollection) => {\n setFormDirty(false);\n if (savedCollection) {\n snackbarController.open({\n type: \"success\",\n message: `Collection ${savedCollection.name || savedCollection.slug} saved`\n });\n if (activeCollectionId === \"new\") {\n navigate(urlController.buildAppUrlPath(`s/schema/${savedCollection.slug}`));\n }\n }\n }}\n setFormDirty={setFormDirty}\n />\n ) : (\n <div className=\"flex-grow flex flex-col items-center justify-center h-full gap-4\">\n <Typography variant=\"label\">\n Select a collection or create a new one\n </Typography>\n <Button\n disabled={props.configController?.readOnly}\n onClick={() => navigate(urlController.buildAppUrlPath(\"schema/new\"))}\n >\n <PlusIcon/>\n Add new collection\n </Button>\n </div>\n )}\n\n <UnsavedChangesDialog\n {...dialogProps}\n handleOk={() => {\n dialogProps.handleOk();\n if (cancelRequested) {\n navigate(urlController.buildAppUrlPath(\"/\"));\n setCancelRequested(false);\n }\n }}\n handleCancel={() => {\n dialogProps.handleCancel();\n setCancelRequested(false);\n }}\n />\n </AIModifiedPathsProvider>\n </div>\n );\n}\n","\nimport { IconForView } from \"@rebasepro/core\";\n;\nimport { useUrlController } from \"../../_cms_internals\";\nimport React, { useState, useEffect } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport {\n Button,\n cls,\n defaultBorderMixin,\n IconButton,\n iconSize,\n PlusIcon,\n ResizablePanels,\n Tooltip,\n Typography\n} from \"@rebasepro/ui\";\n;\nimport { CollectionsConfigController } from \"../../types/config_controller\";\nimport { CollectionStudioView } from \"./CollectionStudioView\";\n\nexport interface CollectionsStudioViewProps {\n configController: CollectionsConfigController;\n}\n\nexport function CollectionsStudioView({ configController }: CollectionsStudioViewProps) {\n const navigate = useNavigate();\n const urlController = useUrlController();\n const location = useLocation();\n\n // Determine the active collection from the URL segment after \"schema/\"\n const basePath = urlController.buildAppUrlPath(\"schema\");\n const relativePath = location.pathname.replace(basePath, \"\").replace(/^\\//, \"\");\n\n // The collectionId could be \"new\", empty (no selection), or a collection slug\n const activeCollectionId = relativePath.split(\"/\")[0] || undefined;\n\n const [sidebarSize, setSidebarSize] = useState(() => {\n try {\n const saved = localStorage.getItem(\"rebase_collections_editor_sidebar_size\");\n return saved !== null ? parseFloat(saved) : 25;\n } catch (e) {\n return 25;\n }\n });\n\n useEffect(() => {\n try {\n localStorage.setItem(\"rebase_collections_editor_sidebar_size\", sidebarSize.toString());\n } catch (e) {\n // ignore local storage error\n }\n }, [sidebarSize]);\n\n const collections = configController.collections || [];\n\n return (\n <div className=\"flex h-full w-full bg-white dark:bg-surface-950 overflow-hidden text-text-primary dark:text-text-primary-dark\">\n <ResizablePanels\n orientation=\"horizontal\"\n panelSizePercent={sidebarSize}\n onPanelSizeChange={setSidebarSize}\n minPanelSizePx={220}\n firstPanel={\n <div className={cls(\"flex flex-col h-full w-full bg-white dark:bg-surface-950 border-r\", defaultBorderMixin)}>\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">\n Collections\n </Typography>\n <Tooltip title={configController.readOnly ? configController.readOnlyReason || \"Read only\" : \"Add collection\"}>\n <div>\n <IconButton\n size=\"small\"\n disabled={configController.readOnly}\n onClick={() => navigate(urlController.buildAppUrlPath(\"schema/new\"))}\n className={activeCollectionId === \"new\" ? \"text-primary dark:text-primary-dark\" : \"text-text-secondary dark:text-text-secondary-dark\"}\n >\n <PlusIcon size={iconSize.smallest}/>\n </IconButton>\n </div>\n </Tooltip>\n </div>\n\n <div className=\"flex-grow overflow-y-auto w-full no-scrollbar p-2 space-y-0.5\">\n {collections.length === 0 && (\n <div className=\"p-4 text-center\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark italic\">\n No collections yet.\n </Typography>\n </div>\n )}\n {collections.map((collection) => {\n const collectionKey = collection.slug;\n const isSelected = activeCollectionId === collectionKey;\n return (\n <div\n key={collectionKey}\n onClick={() => navigate(urlController.buildAppUrlPath(`schema/${collectionKey}`))}\n className={cls(\n \"flex items-center gap-3 px-3 py-2 cursor-pointer rounded-md text-sm transition-colors\",\n isSelected\n ? \"bg-primary/10 text-primary dark:bg-primary/20 dark:text-primary-light\"\n : \"hover:bg-surface-100 dark:hover:bg-surface-900 text-text-secondary dark:text-text-secondary-dark\"\n )}\n >\n <IconForView collectionOrView={collection} size={\"small\"} className={cls(\n isSelected\n ? \"text-primary dark:text-primary-light\"\n : \"text-text-secondary dark:text-text-secondary-dark\"\n )}/>\n <span className=\"truncate flex-1\">\n {collection.name || collection.slug}\n </span>\n </div>\n );\n })}\n </div>\n </div>\n }\n secondPanel={\n <div className=\"flex-grow flex flex-col min-w-0 h-full w-full\">\n {/* We use key to force unmount when switching collections, preventing stale state */}\n {activeCollectionId ? (\n <CollectionStudioView\n key={activeCollectionId}\n configController={configController}\n collectionId={activeCollectionId}\n />\n ) : (\n <div className=\"flex flex-col items-center justify-center h-full gap-4\">\n <Typography variant=\"label\">\n Select a collection or create a new one to start editing\n </Typography>\n <Button\n disabled={configController.readOnly}\n onClick={() => navigate(urlController.buildAppUrlPath(\"schema/new\"))}\n >\n <PlusIcon/>\n Add new collection\n </Button>\n </div>\n )}\n </div>\n }\n />\n </div>\n );\n}\n"],"names":["CollectionStudioView","t0","$","_c","collectionId","props","snackbarController","useSnackbarController","navigate","useNavigate","urlController","useUrlController","formDirty","setFormDirty","useState","cancelRequested","setCancelRequested","t1","Symbol","for","dialogProps","triggerDialog","useUnsavedChangesDialog","activeCollectionId","t2","buildAppUrlPath","handleCancelClick","t3","undefined","savedCollection","open","type","message","name","slug","configController","readOnly","t4","handleOk","t5","handleCancel","t6","t7","CollectionsStudioView","location","useLocation","basePath","relativePath","pathname","replace","split","sidebarSize","setSidebarSize","saved","localStorage","getItem","parseFloat","e","useEffect","setItem","toString","collections","cls","defaultBorderMixin","readOnlyReason","iconSize","smallest","length","map","collection","collectionKey","isSelected"],"mappings":"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"}
1
+ {"version":3,"file":"CollectionsStudioView-DcLHT5bU.js","sources":["../src/collection_editor/ui/collection_editor/CollectionStudioView.tsx","../src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx"],"sourcesContent":["\nimport { useUnsavedChangesDialog, UnsavedChangesDialog } from \"@rebasepro/core\";\nimport { useUrlController } from \"../../_cms_internals\";\nimport * as React from \"react\";\nimport { useState, useMemo, useEffect } from \"react\";\nimport { Button, PlusIcon, Typography } from \"@rebasepro/ui\";\nimport { useSnackbarController } from \"@rebasepro/core\";\nimport { CollectionEditorDialogProps } from \"./CollectionEditorDialog\";\nimport { AIModifiedPathsProvider } from \"./AIModifiedPathsContext\";\nimport { CollectionEditor } from \"./CollectionEditorDialog\";\nimport { useNavigate } from \"react-router-dom\";\n\nexport type CollectionStudioViewProps = Omit<CollectionEditorDialogProps, \"open\" | \"isNewCollection\" | \"editedCollectionId\" | \"handleClose\" | \"handleCancel\"> & {\n collectionId?: string | \"new\";\n};\n\nexport function CollectionStudioView({ collectionId, ...props }: CollectionStudioViewProps) {\n const snackbarController = useSnackbarController();\n const navigate = useNavigate();\n const urlController = useUrlController();\n\n // Form state from the editor\n const [formDirty, setFormDirty] = useState<boolean>(false);\n const [cancelRequested, setCancelRequested] = useState<boolean>(false);\n\n const { dialogProps, triggerDialog } = useUnsavedChangesDialog(\n formDirty,\n () => setFormDirty(false)\n );\n\n // Map collectionId from URL params if missing? We can pass it directly.\n const activeCollectionId = collectionId;\n\n const handleCancelClick = () => {\n if (!formDirty) {\n navigate(urlController.buildAppUrlPath(\"/\"));\n } else {\n setCancelRequested(true);\n triggerDialog();\n }\n };\n\n return (\n <div className=\"flex-grow flex flex-col h-full w-full bg-white dark:bg-surface-950\">\n <AIModifiedPathsProvider>\n {activeCollectionId ? (\n <CollectionEditor\n key={activeCollectionId}\n {...props}\n fullScreen={true}\n open={true}\n isNewCollection={activeCollectionId === \"new\"}\n editedCollectionId={activeCollectionId !== \"new\" ? activeCollectionId : undefined}\n handleCancel={handleCancelClick}\n handleClose={(savedCollection) => {\n setFormDirty(false);\n if (savedCollection) {\n snackbarController.open({\n type: \"success\",\n message: `Collection ${savedCollection.name || savedCollection.slug} saved`\n });\n if (activeCollectionId === \"new\") {\n navigate(urlController.buildAppUrlPath(`s/schema/${savedCollection.slug}`));\n }\n }\n }}\n setFormDirty={setFormDirty}\n />\n ) : (\n <div className=\"flex-grow flex flex-col items-center justify-center h-full gap-4\">\n <Typography variant=\"label\">\n Select a collection or create a new one\n </Typography>\n <Button\n disabled={props.configController?.readOnly}\n onClick={() => navigate(urlController.buildAppUrlPath(\"schema/new\"))}\n >\n <PlusIcon/>\n Add new collection\n </Button>\n </div>\n )}\n\n <UnsavedChangesDialog\n {...dialogProps}\n handleOk={() => {\n dialogProps.handleOk();\n if (cancelRequested) {\n navigate(urlController.buildAppUrlPath(\"/\"));\n setCancelRequested(false);\n }\n }}\n handleCancel={() => {\n dialogProps.handleCancel();\n setCancelRequested(false);\n }}\n />\n </AIModifiedPathsProvider>\n </div>\n );\n}\n","\nimport { IconForView } from \"@rebasepro/core\";\n;\nimport { useUrlController } from \"../../_cms_internals\";\nimport React, { useState, useEffect } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport {\n Button,\n cls,\n defaultBorderMixin,\n IconButton,\n iconSize,\n PlusIcon,\n ResizablePanels,\n Tooltip,\n Typography\n} from \"@rebasepro/ui\";\n;\nimport { CollectionsConfigController } from \"../../types/config_controller\";\nimport { CollectionStudioView } from \"./CollectionStudioView\";\n\nexport interface CollectionsStudioViewProps {\n configController: CollectionsConfigController;\n}\n\nexport function CollectionsStudioView({ configController }: CollectionsStudioViewProps) {\n const navigate = useNavigate();\n const urlController = useUrlController();\n const location = useLocation();\n\n // Determine the active collection from the URL segment after \"schema/\"\n const basePath = urlController.buildAppUrlPath(\"schema\");\n const relativePath = location.pathname.replace(basePath, \"\").replace(/^\\//, \"\");\n\n // The collectionId could be \"new\", empty (no selection), or a collection slug\n const activeCollectionId = relativePath.split(\"/\")[0] || undefined;\n\n const [sidebarSize, setSidebarSize] = useState(() => {\n try {\n const saved = localStorage.getItem(\"rebase_collections_editor_sidebar_size\");\n return saved !== null ? parseFloat(saved) : 25;\n } catch (e) {\n return 25;\n }\n });\n\n useEffect(() => {\n try {\n localStorage.setItem(\"rebase_collections_editor_sidebar_size\", sidebarSize.toString());\n } catch (e) {\n // ignore local storage error\n }\n }, [sidebarSize]);\n\n const collections = configController.collections || [];\n\n return (\n <div className=\"flex h-full w-full bg-white dark:bg-surface-950 overflow-hidden text-text-primary dark:text-text-primary-dark\">\n <ResizablePanels\n orientation=\"horizontal\"\n panelSizePercent={sidebarSize}\n onPanelSizeChange={setSidebarSize}\n minPanelSizePx={220}\n firstPanel={\n <div className={cls(\"flex flex-col h-full w-full bg-white dark:bg-surface-950 border-r\", defaultBorderMixin)}>\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">\n Collections\n </Typography>\n <Tooltip title={configController.readOnly ? configController.readOnlyReason || \"Read only\" : \"Add collection\"}>\n <div>\n <IconButton\n size=\"small\"\n disabled={configController.readOnly}\n onClick={() => navigate(urlController.buildAppUrlPath(\"schema/new\"))}\n className={activeCollectionId === \"new\" ? \"text-primary dark:text-primary-dark\" : \"text-text-secondary dark:text-text-secondary-dark\"}\n >\n <PlusIcon size={iconSize.smallest}/>\n </IconButton>\n </div>\n </Tooltip>\n </div>\n\n <div className=\"flex-grow overflow-y-auto w-full no-scrollbar p-2 space-y-0.5\">\n {collections.length === 0 && (\n <div className=\"p-4 text-center\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark italic\">\n No collections yet.\n </Typography>\n </div>\n )}\n {collections.map((collection) => {\n const collectionKey = collection.slug;\n const isSelected = activeCollectionId === collectionKey;\n return (\n <div\n key={collectionKey}\n onClick={() => navigate(urlController.buildAppUrlPath(`schema/${collectionKey}`))}\n className={cls(\n \"flex items-center gap-3 px-3 py-2 cursor-pointer rounded-md text-sm transition-colors\",\n isSelected\n ? \"bg-primary/10 text-primary dark:bg-primary/20 dark:text-primary-light\"\n : \"hover:bg-surface-100 dark:hover:bg-surface-900 text-text-secondary dark:text-text-secondary-dark\"\n )}\n >\n <IconForView collectionOrView={collection} size={\"small\"} className={cls(\n isSelected\n ? \"text-primary dark:text-primary-light\"\n : \"text-text-secondary dark:text-text-secondary-dark\"\n )}/>\n <span className=\"truncate flex-1\">\n {collection.name || collection.slug}\n </span>\n </div>\n );\n })}\n </div>\n </div>\n }\n secondPanel={\n <div className=\"flex-grow flex flex-col min-w-0 h-full w-full\">\n {/* We use key to force unmount when switching collections, preventing stale state */}\n {activeCollectionId ? (\n <CollectionStudioView\n key={activeCollectionId}\n configController={configController}\n collectionId={activeCollectionId}\n />\n ) : (\n <div className=\"flex flex-col items-center justify-center h-full gap-4\">\n <Typography variant=\"label\">\n Select a collection or create a new one to start editing\n </Typography>\n <Button\n disabled={configController.readOnly}\n onClick={() => navigate(urlController.buildAppUrlPath(\"schema/new\"))}\n >\n <PlusIcon/>\n Add new collection\n </Button>\n </div>\n )}\n </div>\n }\n />\n </div>\n );\n}\n"],"names":["CollectionStudioView","t0","$","_c","collectionId","props","snackbarController","useSnackbarController","navigate","useNavigate","urlController","useUrlController","formDirty","setFormDirty","useState","cancelRequested","setCancelRequested","t1","Symbol","for","dialogProps","triggerDialog","useUnsavedChangesDialog","activeCollectionId","t2","buildAppUrlPath","handleCancelClick","t3","undefined","savedCollection","open","type","message","name","slug","configController","readOnly","t4","handleOk","t5","handleCancel","t6","t7","CollectionsStudioView","location","useLocation","basePath","relativePath","pathname","replace","split","sidebarSize","setSidebarSize","saved","localStorage","getItem","parseFloat","e","useEffect","setItem","toString","collections","cls","defaultBorderMixin","readOnlyReason","iconSize","smallest","length","map","collection","collectionKey","isSelected"],"mappings":"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"}
@@ -10,7 +10,7 @@ import "@rebasepro/common";
10
10
  import "@rebasepro/formex";
11
11
  import "zod";
12
12
  import "@rebasepro/utils";
13
- import { bm as useNavigationStateController, be as useCMSContext, b9 as useBreadcrumbsController } from "./util-DtbWD7LF.js";
13
+ import { bm as useNavigationStateController, be as useCMSContext, b9 as useBreadcrumbsController } from "./util-DbWax_sV.js";
14
14
  import "date-fns";
15
15
  import "date-fns/locale";
16
16
  import "@rebasepro/types";
@@ -1781,4 +1781,4 @@ export {
1781
1781
  ContentHomePage,
1782
1782
  DEFAULT_GROUP_NAME
1783
1783
  };
1784
- //# sourceMappingURL=ContentHomePage-BQZWuOFb.js.map
1784
+ //# sourceMappingURL=ContentHomePage-C7vFqKSe.js.map