@webiny/app-admin 6.6.0-alpha.0 → 6.6.0-alpha.2
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.
- package/base/Admin.js +17 -2
- package/base/Admin.js.map +1 -1
- package/base/Base/DefaultFieldRenderers.js +17 -2
- package/base/Base/DefaultFieldRenderers.js.map +1 -1
- package/base/Base/FieldRenderers/AutoCompleteRenderer.d.ts +13 -0
- package/base/Base/FieldRenderers/AutoCompleteRenderer.js +29 -0
- package/base/Base/FieldRenderers/AutoCompleteRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/HorizontalTabsRenderer.d.ts +2 -2
- package/base/Base/FieldRenderers/LexicalRenderer.js +10 -6
- package/base/Base/FieldRenderers/LexicalRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/MultiFilePickerRenderer.js +8 -5
- package/base/Base/FieldRenderers/MultiFilePickerRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/MultiSelectRenderer.d.ts +15 -0
- package/base/Base/FieldRenderers/MultiSelectRenderer.js +31 -0
- package/base/Base/FieldRenderers/MultiSelectRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.d.ts +2 -0
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js +5 -2
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.d.ts +11 -0
- package/base/Base/FieldRenderers/ObjectRenderer/{MultiValueDynamicZone.js → MultiValueDynamicZone/MultiValueDynamicZone.js} +65 -14
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.d.ts +13 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js +28 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.d.ts +15 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js +5 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.d.ts +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js +11 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.d.ts +2 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.js +2 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.d.ts +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +19 -3
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +10 -8
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +34 -3
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.d.ts +3 -2
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +11 -5
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +1 -1
- package/base/Base/FieldRenderers/SelectRenderer.d.ts +6 -0
- package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/VerticalTabsRenderer.d.ts +2 -2
- package/base/Base/Menus.js +4 -4
- package/base/Base/Menus.js.map +1 -1
- package/base/createRootContainer.js +4 -2
- package/base/createRootContainer.js.map +1 -1
- package/components/Drawers/DrawerParamsContext.d.ts +6 -0
- package/components/Drawers/DrawerParamsContext.js +10 -0
- package/components/Drawers/DrawerParamsContext.js.map +1 -0
- package/components/Drawers/DrawersContext.d.ts +13 -0
- package/components/Drawers/DrawersContext.js +50 -0
- package/components/Drawers/DrawersContext.js.map +1 -0
- package/components/Drawers/useDrawers.d.ts +2 -0
- package/components/Drawers/useDrawers.js +10 -0
- package/components/Drawers/useDrawers.js.map +1 -0
- package/components/Filters/Filters.js +4 -3
- package/components/Filters/Filters.js.map +1 -1
- package/components/IconPicker/IconPickerComponent.d.ts +2 -2
- package/components/LexicalEditor/LexicalLinkForm.js +3 -0
- package/components/LexicalEditor/LexicalLinkForm.js.map +1 -1
- package/components/ListView/ListViewBulkActions.d.ts +2 -2
- package/components/ListView/ListViewContent.d.ts +2 -2
- package/components/ListView/ListViewFilters.d.ts +2 -2
- package/components/ListView/index.d.ts +6 -6
- package/components/OverlayLayout/OverlayLayout.js +4 -2
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/components/OverlayContent.js +1 -0
- package/components/OverlayLayout/components/OverlayContent.js.map +1 -1
- package/components/RolesMultiAutocomplete/index.d.ts +4 -2
- package/components/SplitView/SplitView.js +1 -1
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/Table/components/Table/TableInner.d.ts +2 -2
- package/components/TeamAutocomplete/index.d.ts +4 -2
- package/components/TeamsMultiAutocomplete/index.d.ts +4 -2
- package/components/index.d.ts +0 -1
- package/components/index.js +0 -1
- package/config/AdminConfig/Breadcrumbs.d.ts +42 -0
- package/config/AdminConfig/Breadcrumbs.js +24 -0
- package/config/AdminConfig/Breadcrumbs.js.map +1 -0
- package/config/AdminConfig/Drawer.d.ts +10 -0
- package/config/AdminConfig/Drawer.js +19 -0
- package/config/AdminConfig/Drawer.js.map +1 -0
- package/config/AdminConfig/LexicalTheme/AllowCustomColors.d.ts +5 -0
- package/config/AdminConfig/LexicalTheme/AllowCustomColors.js +18 -0
- package/config/AdminConfig/LexicalTheme/AllowCustomColors.js.map +1 -0
- package/config/AdminConfig/LexicalTheme.d.ts +2 -0
- package/config/AdminConfig/LexicalTheme.js +2 -0
- package/config/AdminConfig/LexicalTheme.js.map +1 -1
- package/config/AdminConfig.d.ts +8 -0
- package/config/AdminConfig.js +8 -1
- package/config/AdminConfig.js.map +1 -1
- package/exports/admin.d.ts +3 -0
- package/exports/admin.js +3 -0
- package/features/accessManagement/types.d.ts +3 -3
- package/features/aiChat/AiChatGateway.d.ts +30 -0
- package/features/aiChat/AiChatGateway.js +41 -0
- package/features/aiChat/AiChatGateway.js.map +1 -0
- package/features/aiChat/AiChatPresenter.d.ts +32 -0
- package/features/aiChat/AiChatPresenter.js +220 -0
- package/features/aiChat/AiChatPresenter.js.map +1 -0
- package/features/aiChat/abstractions.d.ts +124 -0
- package/features/aiChat/abstractions.js +6 -0
- package/features/aiChat/abstractions.js.map +1 -0
- package/features/aiChat/feature.d.ts +3 -0
- package/features/aiChat/feature.js +19 -0
- package/features/aiChat/feature.js.map +1 -0
- package/features/aiChat/index.d.ts +6 -0
- package/features/aiChat/index.js +3 -0
- package/features/dateFormatter/DefaultDateFormatter.d.ts +8 -0
- package/features/dateFormatter/DefaultDateFormatter.js +25 -0
- package/features/dateFormatter/DefaultDateFormatter.js.map +1 -0
- package/features/dateFormatter/abstractions.d.ts +13 -0
- package/features/dateFormatter/abstractions.js +5 -0
- package/features/dateFormatter/abstractions.js.map +1 -0
- package/features/dateFormatter/feature.d.ts +3 -0
- package/features/dateFormatter/feature.js +17 -0
- package/features/dateFormatter/feature.js.map +1 -0
- package/features/dateFormatter/index.d.ts +4 -0
- package/features/dateFormatter/index.js +4 -0
- package/features/dateFormatter/useDateFormatter.d.ts +5 -0
- package/features/dateFormatter/useDateFormatter.js +8 -0
- package/features/dateFormatter/useDateFormatter.js.map +1 -0
- package/features/featureFlags/FeatureFlagsGateway.d.ts +10 -0
- package/features/featureFlags/FeatureFlagsGateway.js +40 -0
- package/features/featureFlags/FeatureFlagsGateway.js.map +1 -0
- package/features/featureFlags/FeatureFlagsService.d.ts +16 -0
- package/features/featureFlags/FeatureFlagsService.js +64 -0
- package/features/featureFlags/FeatureFlagsService.js.map +1 -0
- package/features/featureFlags/abstractions.d.ts +19 -0
- package/features/featureFlags/abstractions.js +6 -0
- package/features/featureFlags/abstractions.js.map +1 -0
- package/features/featureFlags/feature.d.ts +3 -0
- package/features/featureFlags/feature.js +19 -0
- package/features/featureFlags/feature.js.map +1 -0
- package/features/formModel/Field.js +10 -0
- package/features/formModel/Field.js.map +1 -1
- package/features/formModel/FieldBuilder.js +1 -1
- package/features/formModel/FieldBuilder.js.map +1 -1
- package/features/formModel/FieldBuilder.test.js +4 -4
- package/features/formModel/FieldBuilder.test.js.map +1 -1
- package/features/formModel/FormErrors.d.ts +2 -2
- package/features/formModel/FormModel.test.js +50 -0
- package/features/formModel/FormModel.test.js.map +1 -1
- package/features/formModel/FormView.d.ts +8 -4
- package/features/formModel/PresenterErrors.d.ts +2 -2
- package/features/formModel/demo/FormModelDemo.d.ts +2 -2
- package/features/formModel/renderers.d.ts +1 -0
- package/features/formModel/renderers.js +1 -0
- package/features/notifications/NotificationsRenderer.d.ts +2 -2
- package/features/security/AuthenticationContext/ApiStreamClientDecorator.d.ts +22 -0
- package/features/security/AuthenticationContext/ApiStreamClientDecorator.js +32 -0
- package/features/security/AuthenticationContext/ApiStreamClientDecorator.js.map +1 -0
- package/features/security/AuthenticationContext/feature.js +2 -0
- package/features/security/AuthenticationContext/feature.js.map +1 -1
- package/features/slugify/DefaultSlugify.d.ts +8 -0
- package/features/slugify/DefaultSlugify.js +20 -0
- package/features/slugify/DefaultSlugify.js.map +1 -0
- package/features/slugify/abstractions.d.ts +12 -0
- package/features/slugify/abstractions.js +5 -0
- package/features/slugify/abstractions.js.map +1 -0
- package/features/slugify/feature.d.ts +1 -0
- package/features/slugify/feature.js +11 -0
- package/features/slugify/feature.js.map +1 -0
- package/features/slugify/index.d.ts +3 -0
- package/features/slugify/index.js +3 -0
- package/features/stringFormatter/DefaultStringFormatter.d.ts +17 -0
- package/features/stringFormatter/DefaultStringFormatter.js +19 -0
- package/features/stringFormatter/DefaultStringFormatter.js.map +1 -0
- package/features/stringFormatter/abstractions.d.ts +11 -0
- package/features/stringFormatter/abstractions.js +5 -0
- package/features/stringFormatter/abstractions.js.map +1 -0
- package/features/stringFormatter/feature.d.ts +3 -0
- package/features/stringFormatter/feature.js +19 -0
- package/features/stringFormatter/feature.js.map +1 -0
- package/features/stringFormatter/index.d.ts +4 -0
- package/features/stringFormatter/index.js +4 -0
- package/features/stringFormatter/useStringFormatter.d.ts +5 -0
- package/features/stringFormatter/useStringFormatter.js +8 -0
- package/features/stringFormatter/useStringFormatter.js.map +1 -0
- package/features/tenancy/ApiStreamClientDecorator.d.ts +16 -0
- package/features/tenancy/ApiStreamClientDecorator.js +30 -0
- package/features/tenancy/ApiStreamClientDecorator.js.map +1 -0
- package/features/tenancy/feature.js +2 -0
- package/features/tenancy/feature.js.map +1 -1
- package/features/wcp/ReactLicense.d.ts +6 -0
- package/features/wcp/ReactLicense.js +18 -0
- package/features/wcp/ReactLicense.js.map +1 -1
- package/features/wcp/WcpGateway.js +3 -0
- package/features/wcp/WcpGateway.js.map +1 -1
- package/hooks/index.d.ts +3 -0
- package/hooks/index.js +3 -0
- package/hooks/useDrawer.d.ts +9 -0
- package/hooks/useDrawer.js +19 -0
- package/hooks/useDrawer.js.map +1 -0
- package/hooks/useHotkeys.js +5 -3
- package/hooks/useHotkeys.js.map +1 -1
- package/hooks/useOpenDrawer.d.ts +7 -0
- package/hooks/useOpenDrawer.js +18 -0
- package/hooks/useOpenDrawer.js.map +1 -0
- package/hooks/useSnackbar.js.map +1 -1
- package/index.d.ts +18 -1
- package/index.js +23 -12
- package/modules/AccessManagementExtension.js +46 -22
- package/modules/AccessManagementExtension.js.map +1 -1
- package/package.json +31 -28
- package/presentation/accessManagement/SecurityPermissions.js +3 -3
- package/presentation/accessManagement/SecurityPermissions.js.map +1 -1
- package/presentation/accessManagement/apiKeys/ApiKeysPresenter.d.ts +3 -1
- package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js +13 -16
- package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js.map +1 -1
- package/presentation/accessManagement/apiKeys/components/ApiKeysView.d.ts +2 -2
- package/presentation/accessManagement/apiKeys/components/ApiKeysView.js +13 -7
- package/presentation/accessManagement/apiKeys/components/ApiKeysView.js.map +1 -1
- package/presentation/accessManagement/roles/RolesPresenter.d.ts +3 -1
- package/presentation/accessManagement/roles/RolesPresenter.js +11 -14
- package/presentation/accessManagement/roles/RolesPresenter.js.map +1 -1
- package/presentation/accessManagement/roles/components/RolesView.d.ts +2 -2
- package/presentation/accessManagement/roles/components/RolesView.js +10 -6
- package/presentation/accessManagement/roles/components/RolesView.js.map +1 -1
- package/presentation/accessManagement/teams/TeamsPresenter.d.ts +3 -1
- package/presentation/accessManagement/teams/TeamsPresenter.js +11 -14
- package/presentation/accessManagement/teams/TeamsPresenter.js.map +1 -1
- package/presentation/accessManagement/teams/components/TeamsView.d.ts +2 -2
- package/presentation/accessManagement/teams/components/TeamsView.js +10 -6
- package/presentation/accessManagement/teams/components/TeamsView.js.map +1 -1
- package/presentation/commandPalette/CommandPalettePresenter.d.ts +21 -0
- package/presentation/commandPalette/CommandPalettePresenter.js +91 -0
- package/presentation/commandPalette/CommandPalettePresenter.js.map +1 -0
- package/presentation/commandPalette/abstractions.d.ts +76 -0
- package/presentation/commandPalette/abstractions.js +7 -0
- package/presentation/commandPalette/abstractions.js.map +1 -0
- package/presentation/commandPalette/commands/AskAiCommand.d.ts +25 -0
- package/presentation/commandPalette/commands/AskAiCommand.js +33 -0
- package/presentation/commandPalette/commands/AskAiCommand.js.map +1 -0
- package/presentation/commandPalette/commands/CopyCurrentUrlCommand.d.ts +15 -0
- package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js +33 -0
- package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js.map +1 -0
- package/presentation/commandPalette/commands/SendMessageCommand.d.ts +23 -0
- package/presentation/commandPalette/commands/SendMessageCommand.js +66 -0
- package/presentation/commandPalette/commands/SendMessageCommand.js.map +1 -0
- package/presentation/commandPalette/commands/SignOutCommand.d.ts +18 -0
- package/presentation/commandPalette/commands/SignOutCommand.js +37 -0
- package/presentation/commandPalette/commands/SignOutCommand.js.map +1 -0
- package/presentation/commandPalette/commands/feature.d.ts +5 -0
- package/presentation/commandPalette/commands/feature.js +17 -0
- package/presentation/commandPalette/commands/feature.js.map +1 -0
- package/presentation/commandPalette/feature.d.ts +3 -0
- package/presentation/commandPalette/feature.js +17 -0
- package/presentation/commandPalette/feature.js.map +1 -0
- package/presentation/commandPalette/index.d.ts +3 -0
- package/presentation/commandPalette/index.js +2 -0
- package/presentation/featureFlags/FeatureFlagsProvider.d.ts +7 -0
- package/presentation/featureFlags/FeatureFlagsProvider.js +22 -0
- package/presentation/featureFlags/FeatureFlagsProvider.js.map +1 -0
- package/presentation/featureFlags/useFeatureFlags.d.ts +2 -0
- package/presentation/featureFlags/useFeatureFlags.js +17 -0
- package/presentation/featureFlags/useFeatureFlags.js.map +1 -0
- package/presentation/installation/components/SystemInstaller/SystemInstaller.d.ts +2 -2
- package/presentation/installation/components/SystemInstaller/steps/FinishSetup/handleStartUsing.js +0 -3
- package/presentation/installation/components/SystemInstaller/steps/FinishSetup/handleStartUsing.js.map +1 -1
- package/presentation/listPresenter/FolderAwareDataSource.js +4 -1
- package/presentation/listPresenter/FolderAwareDataSource.js.map +1 -1
- package/presentation/listPresenter/QueryMatcher.js +2 -2
- package/presentation/listPresenter/QueryMatcher.js.map +1 -1
- package/presentation/sortable/SortablePresenter.d.ts +23 -0
- package/presentation/sortable/SortablePresenter.js +175 -0
- package/presentation/sortable/SortablePresenter.js.map +1 -0
- package/presentation/sortable/abstractions.d.ts +24 -0
- package/presentation/sortable/abstractions.js +5 -0
- package/presentation/sortable/abstractions.js.map +1 -0
- package/presentation/sortable/feature.d.ts +1 -0
- package/presentation/sortable/feature.js +11 -0
- package/presentation/sortable/feature.js.map +1 -0
- package/presentation/sortable/index.d.ts +2 -0
- package/presentation/sortable/index.js +2 -0
- package/presentation/trashBin/components/BulkActions/DeleteItems.d.ts +2 -2
- package/presentation/trashBin/components/BulkActions/RestoreItems.d.ts +2 -2
- package/presentation/trashBin/components/TrashBinOverlay.d.ts +2 -2
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.d.ts +0 -10
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +0 -1
- package/base/Base/Menus/WebinyVersion.d.ts +0 -2
- package/base/Base/Menus/WebinyVersion.js +0 -23
- package/base/Base/Menus/WebinyVersion.js.map +0 -1
- package/base/WebinyVersion.d.ts +0 -2
- package/base/WebinyVersion.js +0 -23
- package/base/WebinyVersion.js.map +0 -1
- package/components/Wcp.d.ts +0 -19
- package/components/Wcp.js +0 -37
- package/components/Wcp.js.map +0 -1
package/base/Base/Menus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base/Base/Menus.js","sources":["../../../src/base/Base/Menus.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as DashboardIcon } from \"@webiny/icons/space_dashboard.svg\";\nimport { ReactComponent as SettingsIcon } from \"@webiny/icons/settings.svg\";\nimport { ReactComponent as UpgradeIcon } from \"@webiny/icons/electric_bolt.svg\";\nimport { AdminConfig } from \"~/config/AdminConfig.js\";\nimport { Menu } from \"~/config/AdminConfig/Menu.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"base/Base/Menus.js","sources":["../../../src/base/Base/Menus.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as DashboardIcon } from \"@webiny/icons/space_dashboard.svg\";\nimport { ReactComponent as SettingsIcon } from \"@webiny/icons/settings.svg\";\nimport { ReactComponent as UpgradeIcon } from \"@webiny/icons/electric_bolt.svg\";\nimport { AdminConfig } from \"~/config/AdminConfig.js\";\nimport { Menu } from \"~/config/AdminConfig/Menu.js\";\nimport { useFeatureFlags } from \"~/presentation/featureFlags/useFeatureFlags.js\";\n\nexport const Menus = React.memo(() => {\n const featureFlags = useFeatureFlags();\n const showUpgrade = !featureFlags.isEnabled(\"multiTenancy\");\n\n return (\n <AdminConfig>\n <Menu\n name={\"home\"}\n pin={\"start\"}\n element={\n <Menu.Link\n to={\"/\"}\n text={\"Home\"}\n icon={<Menu.Link.Icon label=\"Home\" element={<DashboardIcon />} />}\n />\n }\n />\n <Menu\n name={\"settings\"}\n hideIfEmpty={true}\n pin={\"end\"}\n element={\n <Menu.Item\n text={\"Settings\"}\n icon={<Menu.Link.Icon label=\"Settings\" element={<SettingsIcon />} />}\n />\n }\n />\n\n <Menu\n parent={\"settings\"}\n name=\"settings.system\"\n element={<Menu.Group text=\"System\" collapsible={false} />}\n />\n\n {showUpgrade && (\n <Menu.Footer\n name={\"upgrade\"}\n element={\n <Menu.Link\n text={\"Upgrade\"}\n icon={<Menu.Link.Icon label=\"Upgrade\" element={<UpgradeIcon />} />}\n to={\"https://www.webiny.com/pricing\"}\n rel={\"noopener noreferrer\"}\n target={\"_blank\"}\n className={\n \"[&_a]:text-accent-primary! [&_svg]:fill-accent-default! font-semibold\"\n }\n />\n }\n />\n )}\n </AdminConfig>\n );\n});\n\nMenus.displayName = \"Menus\";\n"],"names":["Menus","React","featureFlags","useFeatureFlags","showUpgrade","AdminConfig","Menu","DashboardIcon","SettingsIcon","UpgradeIcon"],"mappings":";;;;;;;AAQO,MAAMA,QAAQ,WAAHA,GAAGC,MAAAA,IAAU,CAAC;IAC5B,MAAMC,eAAeC;IACrB,MAAMC,cAAc,CAACF,aAAa,SAAS,CAAC;IAE5C,OAAO,WAAP,GACI,oBAACG,aAAWA,MAAAA,WAAAA,GACR,oBAACC,MAAIA;QACD,MAAM;QACN,KAAK;QACL,uBACI,oBAACA,KAAK,IAAI;YACN,IAAI;YACJ,MAAM;YACN,oBAAM,oBAACA,KAAK,IAAI,CAAC,IAAI;gBAAC,OAAM;gBAAO,uBAAS,oBAACC,gBAAaA;;;sBAItE,oBAACD,MAAIA;QACD,MAAM;QACN,aAAa;QACb,KAAK;QACL,uBACI,oBAACA,KAAK,IAAI;YACN,MAAM;YACN,oBAAM,oBAACA,KAAK,IAAI,CAAC,IAAI;gBAAC,OAAM;gBAAW,uBAAS,oBAACE,6BAAYA;;;sBAKzE,oBAACF,MAAIA;QACD,QAAQ;QACR,MAAK;QACL,uBAAS,oBAACA,KAAK,KAAK;YAAC,MAAK;YAAS,aAAa;;QAGnDF,eAAe,WAAfA,GACG,oBAACE,KAAK,MAAM;QACR,MAAM;QACN,uBACI,oBAACA,KAAK,IAAI;YACN,MAAM;YACN,oBAAM,oBAACA,KAAK,IAAI,CAAC,IAAI;gBAAC,OAAM;gBAAU,uBAAS,oBAACG,kCAAWA;;YAC3D,IAAI;YACJ,KAAK;YACL,QAAQ;YACR,WACI;;;AAQhC;AAEAT,MAAM,WAAW,GAAG"}
|
|
@@ -7,10 +7,11 @@ import { HistoryRouterGateway } from "@webiny/app/features/router/HistoryRouterG
|
|
|
7
7
|
import { EnvConfigFeature } from "@webiny/app/features/envConfig/feature.js";
|
|
8
8
|
import { GraphQLClientFeature } from "@webiny/app/features/graphqlClient/feature.js";
|
|
9
9
|
import { MainGraphQLClientFeature } from "@webiny/app/features/mainGraphQLClient/feature.js";
|
|
10
|
+
import { ApiStreamClientFeature } from "@webiny/app/features/apiStreamClient/feature.js";
|
|
10
11
|
import { LocalStorageFeature } from "@webiny/app/features/localStorage/feature.js";
|
|
11
12
|
import { EventPublisherFeature } from "@webiny/app/features/eventPublisher/feature.js";
|
|
12
13
|
import { NotificationsFeature } from "../features/notifications/feature.js";
|
|
13
|
-
import {
|
|
14
|
+
import { FeatureFlagsFeature } from "../features/featureFlags/feature.js";
|
|
14
15
|
import { TenancyFeature } from "../features/tenancy/feature.js";
|
|
15
16
|
import { SystemInstallerFeature } from "../presentation/installation/presenters/SystemInstaller/feature.js";
|
|
16
17
|
import { TelemetryFeature } from "../features/telemetry/feature.js";
|
|
@@ -51,11 +52,12 @@ function createRootContainer() {
|
|
|
51
52
|
retry: true
|
|
52
53
|
});
|
|
53
54
|
MainGraphQLClientFeature.register(container);
|
|
55
|
+
ApiStreamClientFeature.register(container);
|
|
54
56
|
LocalStorageFeature.register(container, {
|
|
55
57
|
prefix: `webiny/${deploymentId}`
|
|
56
58
|
});
|
|
57
59
|
TenancyFeature.register(container);
|
|
58
|
-
|
|
60
|
+
FeatureFlagsFeature.register(container);
|
|
59
61
|
SystemInstallerFeature.register(container);
|
|
60
62
|
TelemetryFeature.register(container);
|
|
61
63
|
container.register(ErrorOverlayNetworkErrorHandler).inSingletonScope();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base/createRootContainer.js","sources":["../../src/base/createRootContainer.ts"],"sourcesContent":["import { createBrowserHistory } from \"history\";\nimport { Container } from \"@webiny/di\";\nimport { DefaultRouteElementRegistry } from \"@webiny/app/presentation/router/RouteElementRegistry.js\";\nimport { RouterGateway } from \"@webiny/app/features/router/abstractions.js\";\nimport { RouterFeature } from \"@webiny/app/features/router/feature.js\";\nimport { HistoryRouterGateway } from \"@webiny/app/features/router/HistoryRouterGateway.js\";\nimport { EnvConfigFeature } from \"@webiny/app/features/envConfig/feature.js\";\nimport { GraphQLClientFeature } from \"@webiny/app/features/graphqlClient/feature.js\";\nimport { MainGraphQLClientFeature } from \"@webiny/app/features/mainGraphQLClient/feature.js\";\nimport { LocalStorageFeature } from \"@webiny/app/features/localStorage/feature.js\";\nimport { EventPublisherFeature } from \"@webiny/app/features/eventPublisher/feature.js\";\nimport { NotificationsFeature } from \"~/features/notifications/feature.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"base/createRootContainer.js","sources":["../../src/base/createRootContainer.ts"],"sourcesContent":["import { createBrowserHistory } from \"history\";\nimport { Container } from \"@webiny/di\";\nimport { DefaultRouteElementRegistry } from \"@webiny/app/presentation/router/RouteElementRegistry.js\";\nimport { RouterGateway } from \"@webiny/app/features/router/abstractions.js\";\nimport { RouterFeature } from \"@webiny/app/features/router/feature.js\";\nimport { HistoryRouterGateway } from \"@webiny/app/features/router/HistoryRouterGateway.js\";\nimport { EnvConfigFeature } from \"@webiny/app/features/envConfig/feature.js\";\nimport { GraphQLClientFeature } from \"@webiny/app/features/graphqlClient/feature.js\";\nimport { MainGraphQLClientFeature } from \"@webiny/app/features/mainGraphQLClient/feature.js\";\nimport { ApiStreamClientFeature } from \"@webiny/app/features/apiStreamClient/feature.js\";\nimport { LocalStorageFeature } from \"@webiny/app/features/localStorage/feature.js\";\nimport { EventPublisherFeature } from \"@webiny/app/features/eventPublisher/feature.js\";\nimport { NotificationsFeature } from \"~/features/notifications/feature.js\";\nimport { FeatureFlagsFeature } from \"~/features/featureFlags/feature.js\";\nimport { TenancyFeature } from \"~/features/tenancy/feature.js\";\nimport { SystemInstallerFeature } from \"~/presentation/installation/presenters/SystemInstaller/feature.js\";\nimport { TelemetryFeature } from \"~/features/telemetry/feature.js\";\nimport { ErrorOverlayNetworkErrorHandler } from \"~/errors/ErrorOverlayNetworkErrorHandler.js\";\nimport { ToolsFeature } from \"~/features/tools/feature.js\";\nimport { TextToLexicalToolFeature } from \"~/presentation/textToLexicalTool/feature.js\";\nimport { ConfirmationFeature } from \"~/features/confirmation/feature.js\";\nimport { ClipboardFeature } from \"~/features/clipboard/feature.js\";\nimport { resolveApiUrl, resolveGraphqlUrl, resolveWebsocketUrl } from \"./resolveApiUrl.js\";\n\nconst isUndefined = (value: any) => [undefined, \"undefined\"].includes(value);\n\nexport function createRootContainer() {\n const container = new Container();\n\n const trashBinEnv = process.env.WEBINY_ADMIN_TRASH_BIN_RETENTION_PERIOD_DAYS;\n const trashBinRetention = isUndefined(trashBinEnv) ? 60 : parseInt(trashBinEnv as string);\n const deploymentId = String(process.env.WEBINY_ADMIN_DEPLOYMENT_ID);\n\n EnvConfigFeature.register(container, {\n deploymentId,\n apiUrl: resolveApiUrl(),\n debug: process.env.WEBINY_ADMIN_DEBUG === \"true\",\n graphqlApiUrl: resolveGraphqlUrl(),\n telemetryEnabled: process.env.REACT_APP_WEBINY_TELEMETRY === \"true\",\n telemetryUserId: process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID,\n trashBinRetentionPeriodDays: trashBinRetention,\n wcpProjectId:\n process.env.REACT_APP_WEBINY_PROJECT_ID || process.env.REACT_APP_WCP_PROJECT_ID,\n websocketUrl: resolveWebsocketUrl()\n });\n\n // Router\n const history = createBrowserHistory();\n container.registerInstance(RouterGateway, new HistoryRouterGateway(history, \"\"));\n container.register(DefaultRouteElementRegistry).inSingletonScope();\n\n RouterFeature.register(container);\n\n EventPublisherFeature.register(container);\n\n NotificationsFeature.register(container);\n\n GraphQLClientFeature.register(container, { batching: true, retry: true });\n\n MainGraphQLClientFeature.register(container);\n\n // Registered before TenancyFeature / AuthenticationContextFeature, which decorate it to add the\n // tenant and auth headers.\n ApiStreamClientFeature.register(container);\n\n LocalStorageFeature.register(container, { prefix: `webiny/${deploymentId}` });\n\n TenancyFeature.register(container);\n\n FeatureFlagsFeature.register(container);\n\n SystemInstallerFeature.register(container);\n\n TelemetryFeature.register(container);\n\n container.register(ErrorOverlayNetworkErrorHandler).inSingletonScope();\n\n ToolsFeature.register(container);\n\n TextToLexicalToolFeature.register(container);\n\n ConfirmationFeature.register(container);\n\n ClipboardFeature.register(container);\n\n return container;\n}\n"],"names":["isUndefined","value","undefined","createRootContainer","container","Container","trashBinEnv","process","trashBinRetention","parseInt","deploymentId","String","EnvConfigFeature","resolveApiUrl","resolveGraphqlUrl","resolveWebsocketUrl","history","createBrowserHistory","RouterGateway","HistoryRouterGateway","DefaultRouteElementRegistry","RouterFeature","EventPublisherFeature","NotificationsFeature","GraphQLClientFeature","MainGraphQLClientFeature","ApiStreamClientFeature","LocalStorageFeature","TenancyFeature","FeatureFlagsFeature","SystemInstallerFeature","TelemetryFeature","ErrorOverlayNetworkErrorHandler","ToolsFeature","TextToLexicalToolFeature","ConfirmationFeature","ClipboardFeature"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,cAAc,CAACC,QAAe;QAACC;QAAW;KAAY,CAAC,QAAQ,CAACD;AAE/D,SAASE;IACZ,MAAMC,YAAY,IAAIC;IAEtB,MAAMC,cAAcC,QAAQ,GAAG,CAAC,4CAA4C;IAC5E,MAAMC,oBAAoBR,YAAYM,eAAe,KAAKG,SAASH;IACnE,MAAMI,eAAeC,OAAOJ,QAAQ,GAAG,CAAC,0BAA0B;IAElEK,iBAAiB,QAAQ,CAACR,WAAW;QACjCM;QACA,QAAQG;QACR,OAAON,AAAmC,WAAnCA,QAAQ,GAAG,CAAC,kBAAkB;QACrC,eAAeO;QACf,kBAAkBP,AAA2C,WAA3CA,QAAQ,GAAG,CAAC,0BAA0B;QACxD,iBAAiBA,QAAQ,GAAG,CAAC,kCAAkC;QAC/D,6BAA6BC;QAC7B,cACID,QAAQ,GAAG,CAAC,2BAA2B,IAAIA,QAAQ,GAAG,CAAC,wBAAwB;QACnF,cAAcQ;IAClB;IAGA,MAAMC,UAAUC;IAChBb,UAAU,gBAAgB,CAACc,eAAe,IAAIC,qBAAqBH,SAAS;IAC5EZ,UAAU,QAAQ,CAACgB,6BAA6B,gBAAgB;IAEhEC,cAAc,QAAQ,CAACjB;IAEvBkB,sBAAsB,QAAQ,CAAClB;IAE/BmB,qBAAqB,QAAQ,CAACnB;IAE9BoB,qBAAqB,QAAQ,CAACpB,WAAW;QAAE,UAAU;QAAM,OAAO;IAAK;IAEvEqB,yBAAyB,QAAQ,CAACrB;IAIlCsB,uBAAuB,QAAQ,CAACtB;IAEhCuB,oBAAoB,QAAQ,CAACvB,WAAW;QAAE,QAAQ,CAAC,OAAO,EAAEM,cAAc;IAAC;IAE3EkB,eAAe,QAAQ,CAACxB;IAExByB,oBAAoB,QAAQ,CAACzB;IAE7B0B,uBAAuB,QAAQ,CAAC1B;IAEhC2B,iBAAiB,QAAQ,CAAC3B;IAE1BA,UAAU,QAAQ,CAAC4B,iCAAiC,gBAAgB;IAEpEC,aAAa,QAAQ,CAAC7B;IAEtB8B,yBAAyB,QAAQ,CAAC9B;IAElC+B,oBAAoB,QAAQ,CAAC/B;IAE7BgC,iBAAiB,QAAQ,CAAChC;IAE1B,OAAOA;AACX"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface DrawerParamsContextValue {
|
|
2
|
+
params: Record<string, unknown>;
|
|
3
|
+
closeDrawer: () => void;
|
|
4
|
+
}
|
|
5
|
+
export declare const DrawerParamsContext: import("react").Context<DrawerParamsContextValue | undefined>;
|
|
6
|
+
export declare const useDrawerParamsContext: () => DrawerParamsContextValue;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
const DrawerParamsContext = /*#__PURE__*/ createContext(void 0);
|
|
3
|
+
const useDrawerParamsContext = ()=>{
|
|
4
|
+
const context = useContext(DrawerParamsContext);
|
|
5
|
+
if (!context) throw new Error("useDrawer must be used inside a named drawer registered via AdminConfig.Drawer");
|
|
6
|
+
return context;
|
|
7
|
+
};
|
|
8
|
+
export { DrawerParamsContext, useDrawerParamsContext };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=DrawerParamsContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components/Drawers/DrawerParamsContext.js","sources":["../../../src/components/Drawers/DrawerParamsContext.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport interface DrawerParamsContextValue {\n params: Record<string, unknown>;\n closeDrawer: () => void;\n}\n\nexport const DrawerParamsContext = createContext<DrawerParamsContextValue | undefined>(undefined);\n\nexport const useDrawerParamsContext = () => {\n const context = useContext(DrawerParamsContext);\n\n if (!context) {\n throw new Error(\n \"useDrawer must be used inside a named drawer registered via AdminConfig.Drawer\"\n );\n }\n\n return context;\n};\n"],"names":["DrawerParamsContext","createContext","undefined","useDrawerParamsContext","context","useContext","Error"],"mappings":";AAOO,MAAMA,sBAAsB,WAAHA,GAAGC,cAAoDC;AAEhF,MAAMC,yBAAyB;IAClC,MAAMC,UAAUC,WAAWL;IAE3B,IAAI,CAACI,SACD,MAAM,IAAIE,MACN;IAIR,OAAOF;AACX"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import React from "react";
|
|
3
|
+
export interface DrawersContext {
|
|
4
|
+
openNamedDrawer: (name: string, params?: Record<string, unknown>) => void;
|
|
5
|
+
closeNamedDrawer: (name?: string) => void;
|
|
6
|
+
}
|
|
7
|
+
interface DrawersProviderProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare const DrawersContext: React.Context<DrawersContext | undefined>;
|
|
11
|
+
export declare const DrawersProvider: ({ children }: DrawersProviderProps) => React.JSX.Element;
|
|
12
|
+
export declare const createDrawersProvider: () => import("@webiny/app").Decorator<import("@webiny/app").GenericComponent<import("@webiny/app").ChildrenProps>>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import react, { useCallback, useState } from "react";
|
|
2
|
+
import { createProvider } from "@webiny/app";
|
|
3
|
+
import { DrawerParamsContext } from "./DrawerParamsContext.js";
|
|
4
|
+
import { useAdminConfig } from "../../config/AdminConfig.js";
|
|
5
|
+
const DrawersContext = /*#__PURE__*/ react.createContext(void 0);
|
|
6
|
+
const DrawersProvider = ({ children })=>{
|
|
7
|
+
const [stack, setStack] = useState([]);
|
|
8
|
+
const { drawers: registeredDrawers } = useAdminConfig();
|
|
9
|
+
const openNamedDrawer = useCallback((name, params = {})=>{
|
|
10
|
+
setStack((prev)=>{
|
|
11
|
+
if (prev.some((entry)=>entry.name === name)) return prev;
|
|
12
|
+
return [
|
|
13
|
+
...prev,
|
|
14
|
+
{
|
|
15
|
+
name,
|
|
16
|
+
params
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
});
|
|
20
|
+
}, []);
|
|
21
|
+
const closeNamedDrawer = useCallback((name)=>{
|
|
22
|
+
setStack((prev)=>{
|
|
23
|
+
if (!name) return prev.slice(0, -1);
|
|
24
|
+
return prev.filter((entry)=>entry.name !== name);
|
|
25
|
+
});
|
|
26
|
+
}, []);
|
|
27
|
+
const context = {
|
|
28
|
+
openNamedDrawer,
|
|
29
|
+
closeNamedDrawer
|
|
30
|
+
};
|
|
31
|
+
return /*#__PURE__*/ react.createElement(DrawersContext.Provider, {
|
|
32
|
+
value: context
|
|
33
|
+
}, children, stack.map((entry)=>{
|
|
34
|
+
const registration = registeredDrawers.find((d)=>d.name === entry.name);
|
|
35
|
+
if (!registration) return null;
|
|
36
|
+
return /*#__PURE__*/ react.createElement(DrawerParamsContext.Provider, {
|
|
37
|
+
key: entry.name,
|
|
38
|
+
value: {
|
|
39
|
+
params: entry.params,
|
|
40
|
+
closeDrawer: ()=>closeNamedDrawer(entry.name)
|
|
41
|
+
}
|
|
42
|
+
}, registration.element);
|
|
43
|
+
}));
|
|
44
|
+
};
|
|
45
|
+
const createDrawersProvider = ()=>createProvider((Component)=>function({ children }) {
|
|
46
|
+
return /*#__PURE__*/ react.createElement(DrawersProvider, null, /*#__PURE__*/ react.createElement(Component, null, children));
|
|
47
|
+
});
|
|
48
|
+
export { DrawersContext, DrawersProvider, createDrawersProvider };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=DrawersContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components/Drawers/DrawersContext.js","sources":["../../../src/components/Drawers/DrawersContext.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport React, { useCallback, useState } from \"react\";\nimport { createProvider } from \"@webiny/app\";\nimport { DrawerParamsContext } from \"./DrawerParamsContext.js\";\nimport { useAdminConfig } from \"~/config/AdminConfig.js\";\n\ninterface OpenDrawerEntry {\n name: string;\n params: Record<string, unknown>;\n}\n\nexport interface DrawersContext {\n openNamedDrawer: (name: string, params?: Record<string, unknown>) => void;\n closeNamedDrawer: (name?: string) => void;\n}\n\ninterface DrawersProviderProps {\n children: ReactNode;\n}\n\nexport const DrawersContext = React.createContext<DrawersContext | undefined>(undefined);\n\nexport const DrawersProvider = ({ children }: DrawersProviderProps) => {\n const [stack, setStack] = useState<OpenDrawerEntry[]>([]);\n const { drawers: registeredDrawers } = useAdminConfig();\n\n const openNamedDrawer = useCallback((name: string, params: Record<string, unknown> = {}) => {\n setStack(prev => {\n if (prev.some(entry => entry.name === name)) {\n return prev;\n }\n return [...prev, { name, params }];\n });\n }, []);\n\n const closeNamedDrawer = useCallback((name?: string) => {\n setStack(prev => {\n if (!name) {\n return prev.slice(0, -1);\n }\n return prev.filter(entry => entry.name !== name);\n });\n }, []);\n\n const context: DrawersContext = {\n openNamedDrawer,\n closeNamedDrawer\n };\n\n return (\n <DrawersContext.Provider value={context}>\n {children}\n {stack.map(entry => {\n const registration = registeredDrawers.find(d => d.name === entry.name);\n if (!registration) {\n return null;\n }\n return (\n <DrawerParamsContext.Provider\n key={entry.name}\n value={{\n params: entry.params,\n closeDrawer: () => closeNamedDrawer(entry.name)\n }}\n >\n {registration.element}\n </DrawerParamsContext.Provider>\n );\n })}\n </DrawersContext.Provider>\n );\n};\n\nexport const createDrawersProvider = () => {\n return createProvider(Component => {\n return function DrawersProviderHOC({ children }: DrawersProviderProps) {\n return (\n <DrawersProvider>\n <Component>{children}</Component>\n </DrawersProvider>\n );\n };\n });\n};\n"],"names":["DrawersContext","React","undefined","DrawersProvider","children","stack","setStack","useState","registeredDrawers","useAdminConfig","openNamedDrawer","useCallback","name","params","prev","entry","closeNamedDrawer","context","registration","d","DrawerParamsContext","createDrawersProvider","createProvider","Component"],"mappings":";;;;AAoBO,MAAMA,iBAAiB,WAAHA,GAAGC,MAAAA,aAAmB,CAA6BC;AAEvE,MAAMC,kBAAkB,CAAC,EAAEC,QAAQ,EAAwB;IAC9D,MAAM,CAACC,OAAOC,SAAS,GAAGC,SAA4B,EAAE;IACxD,MAAM,EAAE,SAASC,iBAAiB,EAAE,GAAGC;IAEvC,MAAMC,kBAAkBC,YAAY,CAACC,MAAcC,SAAkC,CAAC,CAAC;QACnFP,SAASQ,CAAAA;YACL,IAAIA,KAAK,IAAI,CAACC,CAAAA,QAASA,MAAM,IAAI,KAAKH,OAClC,OAAOE;YAEX,OAAO;mBAAIA;gBAAM;oBAAEF;oBAAMC;gBAAO;aAAE;QACtC;IACJ,GAAG,EAAE;IAEL,MAAMG,mBAAmBL,YAAY,CAACC;QAClCN,SAASQ,CAAAA;YACL,IAAI,CAACF,MACD,OAAOE,KAAK,KAAK,CAAC,GAAG;YAEzB,OAAOA,KAAK,MAAM,CAACC,CAAAA,QAASA,MAAM,IAAI,KAAKH;QAC/C;IACJ,GAAG,EAAE;IAEL,MAAMK,UAA0B;QAC5BP;QACAM;IACJ;IAEA,OAAO,WAAP,GACI,oBAAChB,eAAe,QAAQ;QAAC,OAAOiB;OAC3Bb,UACAC,MAAM,GAAG,CAACU,CAAAA;QACP,MAAMG,eAAeV,kBAAkB,IAAI,CAACW,CAAAA,IAAKA,EAAE,IAAI,KAAKJ,MAAM,IAAI;QACtE,IAAI,CAACG,cACD,OAAO;QAEX,OAAO,WAAP,GACI,oBAACE,oBAAoB,QAAQ;YACzB,KAAKL,MAAM,IAAI;YACf,OAAO;gBACH,QAAQA,MAAM,MAAM;gBACpB,aAAa,IAAMC,iBAAiBD,MAAM,IAAI;YAClD;WAECG,aAAa,OAAO;IAGjC;AAGZ;AAEO,MAAMG,wBAAwB,IAC1BC,eAAeC,CAAAA,YACX,SAA4B,EAAEnB,QAAQ,EAAwB;YACjE,OAAO,WAAP,GACI,oBAACD,iBAAeA,MAAAA,WAAAA,GACZ,oBAACoB,WAAAA,MAAWnB;QAGxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { DrawersContext } from "./DrawersContext.js";
|
|
3
|
+
const useDrawers = ()=>{
|
|
4
|
+
const context = useContext(DrawersContext);
|
|
5
|
+
if (!context) throw new Error("useDrawers must be used within a DrawersContext.Provider");
|
|
6
|
+
return context;
|
|
7
|
+
};
|
|
8
|
+
export { useDrawers };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=useDrawers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components/Drawers/useDrawers.js","sources":["../../../src/components/Drawers/useDrawers.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { DrawersContext } from \"./DrawersContext.js\";\n\nexport const useDrawers = () => {\n const context = useContext(DrawersContext);\n\n if (!context) {\n throw new Error(\"useDrawers must be used within a DrawersContext.Provider\");\n }\n\n return context;\n};\n"],"names":["useDrawers","context","useContext","DrawersContext","Error"],"mappings":";;AAGO,MAAMA,aAAa;IACtB,MAAMC,UAAUC,WAAWC;IAE3B,IAAI,CAACF,SACD,MAAM,IAAIG,MAAM;IAGpB,OAAOH;AACX"}
|
|
@@ -10,10 +10,11 @@ const Filters = (props)=>{
|
|
|
10
10
|
data: props.data,
|
|
11
11
|
onChange: props.onChange
|
|
12
12
|
}, ()=>/*#__PURE__*/ react.createElement("div", {
|
|
13
|
-
className: "w-full
|
|
13
|
+
className: "w-full grid grid-cols-4 gap-sm items-center"
|
|
14
14
|
}, props.filters.map((filter)=>/*#__PURE__*/ react.createElement("div", {
|
|
15
|
-
key: filter.name
|
|
16
|
-
|
|
15
|
+
key: filter.name,
|
|
16
|
+
className: "empty:hidden min-w-0"
|
|
17
|
+
}, filter.element)), props.children && /*#__PURE__*/ react.createElement("div", null, props.children)))), /*#__PURE__*/ react.createElement(Separator, null));
|
|
17
18
|
};
|
|
18
19
|
export { Filters };
|
|
19
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Filters/Filters.js","sources":["../../../src/components/Filters/Filters.tsx"],"sourcesContent":["import React from \"react\";\nimport { Separator } from \"@webiny/admin-ui\";\nimport type { FormOnSubmit, FormProps, GenericFormData } from \"@webiny/form\";\nimport { Form } from \"@webiny/form\";\n\ntype Filter = {\n name: string;\n element: React.ReactElement;\n};\n\nexport type GenericFiltersData = GenericFormData;\n\nexport type FiltersOnSubmit<T extends GenericFiltersData = GenericFiltersData> = FormOnSubmit<T>;\n\nexport interface FiltersProps<T extends GenericFormData = GenericFormData> extends Pick<\n FormProps<T>,\n \"data\" | \"onChange\"\n> {\n filters: Filter[];\n show: boolean;\n children?: React.ReactNode;\n [\"data-testid\"]?: string;\n}\n\nexport const Filters = <T extends GenericFiltersData = GenericFiltersData>(\n props: FiltersProps<T>\n) => {\n if (!props.show || !props.filters.length) {\n return null;\n }\n\n return (\n <>\n <div\n className={\"w-full bg-neutral-base px-md my-sm\"}\n data-testid={props[\"data-testid\"] || \"filters-container\"}\n >\n <Form data={props.data} onChange={props.onChange}>\n {() => (\n <div className={\"w-full
|
|
1
|
+
{"version":3,"file":"components/Filters/Filters.js","sources":["../../../src/components/Filters/Filters.tsx"],"sourcesContent":["import React from \"react\";\nimport { Separator } from \"@webiny/admin-ui\";\nimport type { FormOnSubmit, FormProps, GenericFormData } from \"@webiny/form\";\nimport { Form } from \"@webiny/form\";\n\ntype Filter = {\n name: string;\n element: React.ReactElement;\n};\n\nexport type GenericFiltersData = GenericFormData;\n\nexport type FiltersOnSubmit<T extends GenericFiltersData = GenericFiltersData> = FormOnSubmit<T>;\n\nexport interface FiltersProps<T extends GenericFormData = GenericFormData> extends Pick<\n FormProps<T>,\n \"data\" | \"onChange\"\n> {\n filters: Filter[];\n show: boolean;\n children?: React.ReactNode;\n [\"data-testid\"]?: string;\n}\n\nexport const Filters = <T extends GenericFiltersData = GenericFiltersData>(\n props: FiltersProps<T>\n) => {\n if (!props.show || !props.filters.length) {\n return null;\n }\n\n return (\n <>\n <div\n className={\"w-full bg-neutral-base px-md my-sm\"}\n data-testid={props[\"data-testid\"] || \"filters-container\"}\n >\n <Form data={props.data} onChange={props.onChange}>\n {() => (\n <div className={\"w-full grid grid-cols-4 gap-sm items-center\"}>\n {props.filters.map(filter => (\n <div key={filter.name} className={\"empty:hidden min-w-0\"}>\n {filter.element}\n </div>\n ))}\n {props.children && <div>{props.children}</div>}\n </div>\n )}\n </Form>\n </div>\n <Separator />\n </>\n );\n};\n"],"names":["Filters","props","Form","filter","Separator"],"mappings":";;;AAwBO,MAAMA,UAAU,CACnBC;IAEA,IAAI,CAACA,MAAM,IAAI,IAAI,CAACA,MAAM,OAAO,CAAC,MAAM,EACpC,OAAO;IAGX,OAAO,WAAP,GACI,wDACI,oBAAC;QACG,WAAW;QACX,eAAaA,KAAK,CAAC,cAAc,IAAI;qBAErC,oBAACC,MAAIA;QAAC,MAAMD,MAAM,IAAI;QAAE,UAAUA,MAAM,QAAQ;OAC3C,kBACG,oBAAC;YAAI,WAAW;WACXA,MAAM,OAAO,CAAC,GAAG,CAACE,CAAAA,SAAAA,WAAAA,GACf,oBAAC;gBAAI,KAAKA,OAAO,IAAI;gBAAE,WAAW;eAC7BA,OAAO,OAAO,IAGtBF,MAAM,QAAQ,IAAI,WAAJ,GAAI,oBAAC,aAAKA,MAAM,QAAQ,oBAKvD,oBAACG,WAASA;AAGtB"}
|
|
@@ -12,6 +12,6 @@ export interface IconPickerProps extends FormComponentProps {
|
|
|
12
12
|
export interface IconPickerComponentProps extends IconPickerProps {
|
|
13
13
|
presenter: IconPickerPresenter;
|
|
14
14
|
}
|
|
15
|
-
export declare const IconPickerComponent: (({ presenter, label, description, removable, required, disabled, ...props }: IconPickerComponentProps) => React.JSX.Element) & {
|
|
16
|
-
|
|
15
|
+
export declare const IconPickerComponent: (({ presenter, label, description, removable, required, disabled, ...props }: IconPickerComponentProps) => React.JSX.Element) & React.NamedExoticComponent<IconPickerComponentProps> & {
|
|
16
|
+
readonly type: ({ presenter, label, description, removable, required, disabled, ...props }: IconPickerComponentProps) => React.JSX.Element;
|
|
17
17
|
};
|
|
@@ -24,6 +24,7 @@ const LexicalLinkForm = ({ linkData, onSave, removeLink })=>{
|
|
|
24
24
|
className: "flex w-full items-center justify-between mt-sm gap-sm"
|
|
25
25
|
}, /*#__PURE__*/ react.createElement(TargetSwitch, null), /*#__PURE__*/ react.createElement(Button, {
|
|
26
26
|
variant: "ghost",
|
|
27
|
+
size: "sm",
|
|
27
28
|
text: "Remove link",
|
|
28
29
|
className: "text-destructive-primary! [&_svg]:fill-destructive",
|
|
29
30
|
onClick: removeLink,
|
|
@@ -33,6 +34,7 @@ const LexicalLinkForm = ({ linkData, onSave, removeLink })=>{
|
|
|
33
34
|
})
|
|
34
35
|
}), /*#__PURE__*/ react.createElement(Button, {
|
|
35
36
|
variant: "primary",
|
|
37
|
+
size: "sm",
|
|
36
38
|
text: "Save",
|
|
37
39
|
onClick: form.submit
|
|
38
40
|
}))));
|
|
@@ -57,6 +59,7 @@ const UrlInput = ()=>{
|
|
|
57
59
|
inputRef.current = ref;
|
|
58
60
|
},
|
|
59
61
|
variant: "secondary",
|
|
62
|
+
size: "md",
|
|
60
63
|
placeholder: "Enter link",
|
|
61
64
|
autoFocus: true,
|
|
62
65
|
startIcon: /*#__PURE__*/ react.createElement(Icon, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/LexicalEditor/LexicalLinkForm.js","sources":["../../../src/components/LexicalEditor/LexicalLinkForm.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport type { FloatingLinkEditorPlugin } from \"@webiny/lexical-editor\";\nimport { Button, Grid, Icon, IconButton, Input, Switch } from \"@webiny/admin-ui\";\nimport { Form, useBind } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { ReactComponent as GlobeIcon } from \"@webiny/icons/language.svg\";\nimport { ReactComponent as OpenInNew } from \"@webiny/icons/open_in_new.svg\";\nimport { ReactComponent as RemoveLink } from \"@webiny/icons/link_off.svg\";\n\ntype LexicalLinkForm = NonNullable<\n React.ComponentProps<typeof FloatingLinkEditorPlugin>[\"LinkForm\"]\n>;\ntype LinkFormProps = React.ComponentProps<LexicalLinkForm>;\n\nexport const LexicalLinkForm = ({ linkData, onSave, removeLink }: LinkFormProps) => {\n const onSubmit = (data: LinkFormProps[\"linkData\"]) => {\n onSave(data);\n };\n\n return (\n <Form data={linkData} onSubmit={onSubmit} validateOnFirstSubmit submitOnEnter>\n {form => (\n <div className={\"p-md\"}>\n <Grid gap={\"small\"}>\n <Grid.Column span={12}>\n <UrlInput />\n </Grid.Column>\n </Grid>\n <div className={\"flex w-full items-center justify-between mt-sm gap-sm\"}>\n <TargetSwitch />\n <Button\n variant={\"ghost\"}\n text={`Remove link`}\n className={\"text-destructive-primary! [&_svg]:fill-destructive\"}\n onClick={removeLink}\n icon={<Icon label={\"Remove link\"} icon={<RemoveLink />} />}\n />\n <Button
|
|
1
|
+
{"version":3,"file":"components/LexicalEditor/LexicalLinkForm.js","sources":["../../../src/components/LexicalEditor/LexicalLinkForm.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport type { FloatingLinkEditorPlugin } from \"@webiny/lexical-editor\";\nimport { Button, Grid, Icon, IconButton, Input, Switch } from \"@webiny/admin-ui\";\nimport { Form, useBind } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { ReactComponent as GlobeIcon } from \"@webiny/icons/language.svg\";\nimport { ReactComponent as OpenInNew } from \"@webiny/icons/open_in_new.svg\";\nimport { ReactComponent as RemoveLink } from \"@webiny/icons/link_off.svg\";\n\ntype LexicalLinkForm = NonNullable<\n React.ComponentProps<typeof FloatingLinkEditorPlugin>[\"LinkForm\"]\n>;\ntype LinkFormProps = React.ComponentProps<LexicalLinkForm>;\n\nexport const LexicalLinkForm = ({ linkData, onSave, removeLink }: LinkFormProps) => {\n const onSubmit = (data: LinkFormProps[\"linkData\"]) => {\n onSave(data);\n };\n\n return (\n <Form data={linkData} onSubmit={onSubmit} validateOnFirstSubmit submitOnEnter>\n {form => (\n <div className={\"p-md\"}>\n <Grid gap={\"small\"}>\n <Grid.Column span={12}>\n <UrlInput />\n </Grid.Column>\n </Grid>\n <div className={\"flex w-full items-center justify-between mt-sm gap-sm\"}>\n <TargetSwitch />\n <Button\n variant={\"ghost\"}\n size={\"sm\"}\n text={`Remove link`}\n className={\"text-destructive-primary! [&_svg]:fill-destructive\"}\n onClick={removeLink}\n icon={<Icon label={\"Remove link\"} icon={<RemoveLink />} />}\n />\n <Button\n variant={\"primary\"}\n size={\"sm\"}\n text={`Save`}\n onClick={form.submit}\n />\n </div>\n </div>\n )}\n </Form>\n );\n};\n\nconst UrlInput = () => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const urlBind = useBind({\n name: \"url\",\n validators: validation.create(\"required,url:allowRelative:allowHref\")\n });\n\n useEffect(() => {\n if (inputRef.current) {\n setTimeout(() => {\n inputRef.current?.focus();\n }, 10);\n }\n }, []);\n\n const openInNewTab = () => {\n if (urlBind.validation.isValid !== false && urlBind.value) {\n window.open(urlBind.value, \"_blank\");\n }\n };\n\n return (\n <Input\n {...urlBind}\n inputRef={ref => {\n inputRef.current = ref;\n }}\n variant={\"secondary\"}\n size={\"md\"}\n placeholder={\"Enter link\"}\n autoFocus={true}\n startIcon={<Icon label=\"globe\" icon={<GlobeIcon />} />}\n endIcon={<IconButton variant=\"ghost\" icon={<OpenInNew />} onClick={openInNewTab} />}\n />\n );\n};\n\nconst TargetSwitch = () => {\n const targetBind = useBind({\n name: \"target\",\n defaultValue: \"_self\"\n });\n\n return (\n <Switch\n checked={targetBind.value === \"_blank\"}\n label={\"Open in new tab\"}\n onChange={value => {\n targetBind.onChange(value === true ? \"_blank\" : \"_self\");\n }}\n />\n );\n};\n"],"names":["LexicalLinkForm","linkData","onSave","removeLink","onSubmit","data","Form","form","Grid","UrlInput","TargetSwitch","Button","Icon","RemoveLink","inputRef","useRef","urlBind","useBind","validation","useEffect","setTimeout","openInNewTab","window","Input","ref","GlobeIcon","IconButton","OpenInNew","targetBind","Switch","value"],"mappings":";;;;;;;AAcO,MAAMA,kBAAkB,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,UAAU,EAAiB;IAC3E,MAAMC,WAAW,CAACC;QACdH,OAAOG;IACX;IAEA,OAAO,WAAP,GACI,oBAACC,MAAIA;QAAC,MAAML;QAAU,UAAUG;QAAU;QAAsB;OAC3DG,CAAAA,OAAAA,WAAAA,GACG,oBAAC;YAAI,WAAW;yBACZ,oBAACC,MAAIA;YAAC,KAAK;yBACP,oBAACA,KAAK,MAAM;YAAC,MAAM;yBACf,oBAACC,UAAQA,SAAAA,WAAAA,GAGjB,oBAAC;YAAI,WAAW;yBACZ,oBAACC,cAAYA,OAAAA,WAAAA,GACb,oBAACC,QAAMA;YACH,SAAS;YACT,MAAM;YACN,MAAM;YACN,WAAW;YACX,SAASR;YACT,oBAAM,oBAACS,MAAIA;gBAAC,OAAO;gBAAe,oBAAM,oBAACC,6BAAUA;;0BAEvD,oBAACF,QAAMA;YACH,SAAS;YACT,MAAM;YACN,MAAM;YACN,SAASJ,KAAK,MAAM;;AAOhD;AAEA,MAAME,WAAW;IACb,MAAMK,WAAWC,OAAgC;IAEjD,MAAMC,UAAUC,QAAQ;QACpB,MAAM;QACN,YAAYC,WAAW,MAAM,CAAC;IAClC;IAEAC,UAAU;QACN,IAAIL,SAAS,OAAO,EAChBM,WAAW;YACPN,SAAS,OAAO,EAAE;QACtB,GAAG;IAEX,GAAG,EAAE;IAEL,MAAMO,eAAe;QACjB,IAAIL,AAA+B,UAA/BA,QAAQ,UAAU,CAAC,OAAO,IAAcA,QAAQ,KAAK,EACrDM,OAAO,IAAI,CAACN,QAAQ,KAAK,EAAE;IAEnC;IAEA,OAAO,WAAP,GACI,oBAACO,OAAKA;QACD,GAAGP,OAAO;QACX,UAAUQ,CAAAA;YACNV,SAAS,OAAO,GAAGU;QACvB;QACA,SAAS;QACT,MAAM;QACN,aAAa;QACb,WAAW;QACX,yBAAW,oBAACZ,MAAIA;YAAC,OAAM;YAAQ,oBAAM,oBAACa,gBAASA;;QAC/C,uBAAS,oBAACC,YAAUA;YAAC,SAAQ;YAAQ,oBAAM,oBAACC,gCAASA;YAAK,SAASN;;;AAG/E;AAEA,MAAMX,eAAe;IACjB,MAAMkB,aAAaX,QAAQ;QACvB,MAAM;QACN,cAAc;IAClB;IAEA,OAAO,WAAP,GACI,oBAACY,QAAMA;QACH,SAASD,AAAqB,aAArBA,WAAW,KAAK;QACzB,OAAO;QACP,UAAUE,CAAAA;YACNF,WAAW,QAAQ,CAACE,AAAU,SAAVA,QAAiB,WAAW;QACpD;;AAGZ"}
|
|
@@ -5,7 +5,7 @@ export interface ListViewBulkActionsProps {
|
|
|
5
5
|
itemLabelPlural?: string;
|
|
6
6
|
actions: React.ComponentProps<typeof Buttons>["actions"];
|
|
7
7
|
}
|
|
8
|
-
declare const ListViewBulkActions: (({ itemLabel, itemLabelPlural, actions: bulkActions }: ListViewBulkActionsProps) => React.JSX.Element) & {
|
|
9
|
-
|
|
8
|
+
declare const ListViewBulkActions: (({ itemLabel, itemLabelPlural, actions: bulkActions }: ListViewBulkActionsProps) => React.JSX.Element) & React.NamedExoticComponent<ListViewBulkActionsProps> & {
|
|
9
|
+
readonly type: ({ itemLabel, itemLabelPlural, actions: bulkActions }: ListViewBulkActionsProps) => React.JSX.Element;
|
|
10
10
|
};
|
|
11
11
|
export { ListViewBulkActions };
|
|
@@ -6,7 +6,7 @@ export interface ListViewContentProps {
|
|
|
6
6
|
searchEmpty?: React.ReactNode;
|
|
7
7
|
children: React.ReactNode;
|
|
8
8
|
}
|
|
9
|
-
declare const ListViewContent: (({ loadMoreThreshold, loadMoreDebounceMs, empty, searchEmpty, children }: ListViewContentProps) => React.JSX.Element) & {
|
|
10
|
-
|
|
9
|
+
declare const ListViewContent: (({ loadMoreThreshold, loadMoreDebounceMs, empty, searchEmpty, children }: ListViewContentProps) => React.JSX.Element) & React.NamedExoticComponent<ListViewContentProps> & {
|
|
10
|
+
readonly type: ({ loadMoreThreshold, loadMoreDebounceMs, empty, searchEmpty, children }: ListViewContentProps) => React.JSX.Element;
|
|
11
11
|
};
|
|
12
12
|
export { ListViewContent };
|
|
@@ -9,7 +9,7 @@ export interface ListViewFiltersProps {
|
|
|
9
9
|
filtersToWhere?: FiltersToWhereConverter[];
|
|
10
10
|
children?: React.ReactNode;
|
|
11
11
|
}
|
|
12
|
-
declare const ListViewFilters: (({ filters, filtersToWhere, children }: ListViewFiltersProps) => React.JSX.Element) & {
|
|
13
|
-
|
|
12
|
+
declare const ListViewFilters: (({ filters, filtersToWhere, children }: ListViewFiltersProps) => React.JSX.Element) & React.NamedExoticComponent<ListViewFiltersProps> & {
|
|
13
|
+
readonly type: ({ filters, filtersToWhere, children }: ListViewFiltersProps) => React.JSX.Element;
|
|
14
14
|
};
|
|
15
15
|
export { ListViewFilters };
|
|
@@ -8,14 +8,14 @@ export declare const ListView: typeof ListViewBase & {
|
|
|
8
8
|
};
|
|
9
9
|
Header: typeof ListViewHeader;
|
|
10
10
|
BottomBar: typeof ListViewBottomBar;
|
|
11
|
-
BulkActions: (({ itemLabel, itemLabelPlural, actions: bulkActions }: import("./ListViewBulkActions.js").ListViewBulkActionsProps) => import("react").JSX.Element) & {
|
|
12
|
-
|
|
11
|
+
BulkActions: (({ itemLabel, itemLabelPlural, actions: bulkActions }: import("./ListViewBulkActions.js").ListViewBulkActionsProps) => import("react").JSX.Element) & import("react").NamedExoticComponent<import("./ListViewBulkActions.js").ListViewBulkActionsProps> & {
|
|
12
|
+
readonly type: ({ itemLabel, itemLabelPlural, actions: bulkActions }: import("./ListViewBulkActions.js").ListViewBulkActionsProps) => import("react").JSX.Element;
|
|
13
13
|
};
|
|
14
|
-
Filters: (({ filters, filtersToWhere, children }: import("./ListViewFilters.js").ListViewFiltersProps) => import("react").JSX.Element) & {
|
|
15
|
-
|
|
14
|
+
Filters: (({ filters, filtersToWhere, children }: import("./ListViewFilters.js").ListViewFiltersProps) => import("react").JSX.Element) & import("react").NamedExoticComponent<import("./ListViewFilters.js").ListViewFiltersProps> & {
|
|
15
|
+
readonly type: ({ filters, filtersToWhere, children }: import("./ListViewFilters.js").ListViewFiltersProps) => import("react").JSX.Element;
|
|
16
16
|
};
|
|
17
|
-
Content: (({ loadMoreThreshold, loadMoreDebounceMs, empty, searchEmpty, children }: import("./ListViewContent.js").ListViewContentProps) => import("react").JSX.Element) & {
|
|
18
|
-
|
|
17
|
+
Content: (({ loadMoreThreshold, loadMoreDebounceMs, empty, searchEmpty, children }: import("./ListViewContent.js").ListViewContentProps) => import("react").JSX.Element) & import("react").NamedExoticComponent<import("./ListViewContent.js").ListViewContentProps> & {
|
|
18
|
+
readonly type: ({ loadMoreThreshold, loadMoreDebounceMs, empty, searchEmpty, children }: import("./ListViewContent.js").ListViewContentProps) => import("react").JSX.Element;
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
21
|
export { useListView } from "./context.js";
|
|
@@ -28,13 +28,15 @@ const OverlayLayout = ({ barMiddle, barLeft, barRight, children, onExited = noop
|
|
|
28
28
|
hideOverlay: hideOverlay
|
|
29
29
|
}), /*#__PURE__*/ react.createElement(OverlayContent, {
|
|
30
30
|
visible: visible
|
|
31
|
-
}, /*#__PURE__*/ react.createElement(
|
|
31
|
+
}, /*#__PURE__*/ react.createElement(OverlayHeader, {
|
|
32
32
|
start: barLeft,
|
|
33
33
|
middle: barMiddle,
|
|
34
34
|
end: barRight,
|
|
35
35
|
variant: variant,
|
|
36
36
|
hideOverlay: hideOverlay
|
|
37
|
-
}),
|
|
37
|
+
}), /*#__PURE__*/ react.createElement("div", {
|
|
38
|
+
className: "flex-1 min-h-0 overflow-hidden"
|
|
39
|
+
}, children))));
|
|
38
40
|
};
|
|
39
41
|
export { OverlayLayout };
|
|
40
42
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/OverlayLayout/OverlayLayout.js","sources":["../../../src/components/OverlayLayout/OverlayLayout.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport noop from \"lodash/noop.js\";\nimport type { ExitHandler } from \"react-transition-group/Transition\";\nimport type { overlayHeaderVariants } from \"./components/index.js\";\nimport { OverlayBackdrop, OverlayContent, OverlayHeader, OverlayRoot } from \"./components/index.js\";\nimport { Portal, type VariantProps } from \"@webiny/admin-ui\";\n\nconst noScrollBodyClassNames = [\"overflow-hidden\", \"h-screen\"];\n\nexport interface OverlayLayoutProps extends VariantProps<typeof overlayHeaderVariants> {\n barMiddle?: React.ReactNode;\n barLeft?: React.ReactNode;\n barRight?: React.ReactNode;\n children: React.ReactNode;\n onExited?: ExitHandler<HTMLElement>;\n}\n\nexport const OverlayLayout: React.FC<OverlayLayoutProps> = ({\n barMiddle,\n barLeft,\n barRight,\n children,\n onExited = noop,\n variant\n}) => {\n const [visible, setVisible] = useState(true);\n\n const hideOverlay = useCallback(() => {\n setVisible(false);\n }, []);\n\n useEffect(() => {\n noScrollBodyClassNames.forEach(className => document.body.classList.add(className));\n\n return () => {\n noScrollBodyClassNames.forEach(className => document.body.classList.remove(className));\n };\n }, []);\n\n return (\n <Portal data-role=\"overlay-layout\" className={\"absolute z-overlay\"}>\n <OverlayRoot visible={visible} onExited={onExited}>\n <OverlayBackdrop visible={visible} hideOverlay={hideOverlay} />\n <OverlayContent visible={visible}>\n
|
|
1
|
+
{"version":3,"file":"components/OverlayLayout/OverlayLayout.js","sources":["../../../src/components/OverlayLayout/OverlayLayout.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport noop from \"lodash/noop.js\";\nimport type { ExitHandler } from \"react-transition-group/Transition\";\nimport type { overlayHeaderVariants } from \"./components/index.js\";\nimport { OverlayBackdrop, OverlayContent, OverlayHeader, OverlayRoot } from \"./components/index.js\";\nimport { Portal, type VariantProps } from \"@webiny/admin-ui\";\n\nconst noScrollBodyClassNames = [\"overflow-hidden\", \"h-screen\"];\n\nexport interface OverlayLayoutProps extends VariantProps<typeof overlayHeaderVariants> {\n barMiddle?: React.ReactNode;\n barLeft?: React.ReactNode;\n barRight?: React.ReactNode;\n children: React.ReactNode;\n onExited?: ExitHandler<HTMLElement>;\n}\n\nexport const OverlayLayout: React.FC<OverlayLayoutProps> = ({\n barMiddle,\n barLeft,\n barRight,\n children,\n onExited = noop,\n variant\n}) => {\n const [visible, setVisible] = useState(true);\n\n const hideOverlay = useCallback(() => {\n setVisible(false);\n }, []);\n\n useEffect(() => {\n noScrollBodyClassNames.forEach(className => document.body.classList.add(className));\n\n return () => {\n noScrollBodyClassNames.forEach(className => document.body.classList.remove(className));\n };\n }, []);\n\n return (\n <Portal data-role=\"overlay-layout\" className={\"absolute z-overlay\"}>\n <OverlayRoot visible={visible} onExited={onExited}>\n <OverlayBackdrop visible={visible} hideOverlay={hideOverlay} />\n <OverlayContent visible={visible}>\n <OverlayHeader\n start={barLeft}\n middle={barMiddle}\n end={barRight}\n variant={variant}\n hideOverlay={hideOverlay}\n />\n <div className={\"flex-1 min-h-0 overflow-hidden\"}>{children}</div>\n </OverlayContent>\n </OverlayRoot>\n </Portal>\n );\n};\n"],"names":["noScrollBodyClassNames","OverlayLayout","barMiddle","barLeft","barRight","children","onExited","noop","variant","visible","setVisible","useState","hideOverlay","useCallback","useEffect","className","document","Portal","OverlayRoot","OverlayBackdrop","OverlayContent","OverlayHeader"],"mappings":";;;;AAOA,MAAMA,yBAAyB;IAAC;IAAmB;CAAW;AAUvD,MAAMC,gBAA8C,CAAC,EACxDC,SAAS,EACTC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRC,WAAWC,IAAI,EACfC,OAAO,EACV;IACG,MAAM,CAACC,SAASC,WAAW,GAAGC,SAAS;IAEvC,MAAMC,cAAcC,YAAY;QAC5BH,WAAW;IACf,GAAG,EAAE;IAELI,UAAU;QACNd,uBAAuB,OAAO,CAACe,CAAAA,YAAaC,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAACD;QAExE,OAAO;YACHf,uBAAuB,OAAO,CAACe,CAAAA,YAAaC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAACD;QAC/E;IACJ,GAAG,EAAE;IAEL,OAAO,WAAP,GACI,oBAACE,QAAMA;QAAC,aAAU;QAAiB,WAAW;qBAC1C,oBAACC,aAAWA;QAAC,SAAST;QAAS,UAAUH;qBACrC,oBAACa,iBAAeA;QAAC,SAASV;QAAS,aAAaG;sBAChD,oBAACQ,gBAAcA;QAAC,SAASX;qBACrB,oBAACY,eAAaA;QACV,OAAOlB;QACP,QAAQD;QACR,KAAKE;QACL,SAASI;QACT,aAAaI;sBAEjB,oBAAC;QAAI,WAAW;OAAmCP;AAKvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/OverlayLayout/components/OverlayContent.js","sources":["../../../../src/components/OverlayLayout/components/OverlayContent.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn } from \"@webiny/admin-ui\";\n\ninterface OverlayContentProps extends React.HTMLAttributes<HTMLDivElement> {\n visible?: boolean;\n}\n\nconst OverlayContent = ({ visible, className, style, children, ...props }: OverlayContentProps) => {\n return (\n <div\n data-state={visible ? \"open\" : \"closed\"}\n className={cn(\n [\n \"fixed inset-x-0 top-lg z-overlay\",\n \"w-screen\",\n \"rounded-t-lg overflow-hidden\",\n \"bg-neutral-base\",\n \"transition ease-in-out\",\n \"data-[state=open]:animate-in data-[state=open]:slide-in-from-bottom data-[state=open]:fade-in data-[state=open]:duration-500\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:duration-150\"\n ],\n className\n )}\n style={{ ...style, height: \"calc(100vh - 24px)\" }}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport { OverlayContent, type OverlayContentProps };\n"],"names":["OverlayContent","visible","className","style","children","props","cn"],"mappings":";;AAOA,MAAMA,iBAAiB,CAAC,EAAEC,OAAO,EAAEC,SAAS,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGC,OAA4B,GACnF,WAAP,GACI,oBAAC;QACG,cAAYJ,UAAU,SAAS;QAC/B,WAAWK,GACP;YACI;YACA;YACA;YACA;YACA;YACA;YACA;SACH,EACDJ;QAEJ,OAAO;YAAE,GAAGC,KAAK;YAAE,QAAQ;QAAqB;QAC/C,GAAGE,KAAK;OAERD"}
|
|
1
|
+
{"version":3,"file":"components/OverlayLayout/components/OverlayContent.js","sources":["../../../../src/components/OverlayLayout/components/OverlayContent.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn } from \"@webiny/admin-ui\";\n\ninterface OverlayContentProps extends React.HTMLAttributes<HTMLDivElement> {\n visible?: boolean;\n}\n\nconst OverlayContent = ({ visible, className, style, children, ...props }: OverlayContentProps) => {\n return (\n <div\n data-state={visible ? \"open\" : \"closed\"}\n className={cn(\n [\n \"fixed inset-x-0 top-lg z-overlay\",\n \"w-screen\",\n \"flex flex-col\",\n \"rounded-t-lg overflow-hidden\",\n \"bg-neutral-base\",\n \"transition ease-in-out\",\n \"data-[state=open]:animate-in data-[state=open]:slide-in-from-bottom data-[state=open]:fade-in data-[state=open]:duration-500\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:duration-150\"\n ],\n className\n )}\n style={{ ...style, height: \"calc(100vh - 24px)\" }}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport { OverlayContent, type OverlayContentProps };\n"],"names":["OverlayContent","visible","className","style","children","props","cn"],"mappings":";;AAOA,MAAMA,iBAAiB,CAAC,EAAEC,OAAO,EAAEC,SAAS,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGC,OAA4B,GACnF,WAAP,GACI,oBAAC;QACG,cAAYJ,UAAU,SAAS;QAC/B,WAAWK,GACP;YACI;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACH,EACDJ;QAEJ,OAAO;YAAE,GAAGC,KAAK;YAAE,QAAQ;QAAqB;QAC/C,GAAGE,KAAK;OAERD"}
|
|
@@ -3,7 +3,9 @@ import { MultiAutoComplete } from "@webiny/admin-ui";
|
|
|
3
3
|
type RolesMultiAutocompleteProps = Omit<React.ComponentProps<typeof MultiAutoComplete>, "options" | "onValuesChange"> & {
|
|
4
4
|
onChange?: (values: string[]) => void;
|
|
5
5
|
};
|
|
6
|
-
export declare const RolesMultiAutocomplete: (({ onChange, ...props }: RolesMultiAutocompleteProps) => React.JSX.Element) & {
|
|
7
|
-
|
|
6
|
+
export declare const RolesMultiAutocomplete: (({ onChange, ...props }: RolesMultiAutocompleteProps) => React.JSX.Element) & React.NamedExoticComponent<Omit<import("@webiny/admin-ui/MultiAutoComplete/primitives").MultiAutoCompletePrimitiveProps & import("@webiny/admin-ui").FormComponentProps<any>, "onValuesChange" | "options"> & {
|
|
7
|
+
onChange?: (values: string[]) => void;
|
|
8
|
+
}> & {
|
|
9
|
+
readonly type: ({ onChange, ...props }: RolesMultiAutocompleteProps) => React.JSX.Element;
|
|
8
10
|
};
|
|
9
11
|
export {};
|
|
@@ -4,7 +4,7 @@ import { useLocalStorage, useLocalStorageValue } from "@webiny/app";
|
|
|
4
4
|
import * as __rspack_external_react from "react";
|
|
5
5
|
const SplitView = ({ children, className, namespace = "splitView", ...props })=>{
|
|
6
6
|
const localStorage = useLocalStorage();
|
|
7
|
-
const layout = useLocalStorageValue(namespace);
|
|
7
|
+
const layout = useLocalStorageValue(`${namespace}/panels`);
|
|
8
8
|
const saveLayout = (0, __rspack_external_react.useCallback)((layout)=>{
|
|
9
9
|
localStorage.set(`${namespace}/panels`, layout);
|
|
10
10
|
}, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/SplitView/SplitView.js","sources":["../../../src/components/SplitView/SplitView.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { ColumnProps } from \"@webiny/admin-ui\";\nimport { cn, Separator } from \"@webiny/admin-ui\";\nimport type { PanelProps, PanelGroupProps } from \"~/components/ResizablePanels/index.js\";\nimport {\n Panel,\n PanelGroup,\n PanelResizeHandle,\n type Layout\n} from \"~/components/ResizablePanels/index.js\";\nimport { useLocalStorage, useLocalStorageValue } from \"@webiny/app\";\nimport { useCallback } from \"react\";\n\ninterface SplitViewProps extends Omit<PanelGroupProps, \"id\"> {\n namespace?: string;\n}\n\nexport const SplitView = ({\n children,\n className,\n namespace = \"splitView\",\n ...props\n}: SplitViewProps) => {\n const localStorage = useLocalStorage();\n\n const layout = useLocalStorageValue<Layout>(namespace);\n\n const saveLayout = useCallback(\n (layout: Layout) => {\n localStorage.set(`${namespace}/panels`, layout);\n },\n [localStorage, namespace]\n );\n\n return (\n <PanelGroup\n id={namespace}\n defaultLayout={layout}\n className={cn(\"webiny-split-view\", className)}\n onLayoutChanged={saveLayout}\n {...props}\n >\n {children}\n </PanelGroup>\n );\n};\n\n// Get the default size for the panel:\nconst getDefaultSize = (span: ColumnProps[\"span\"]) => {\n const spanValue = typeof span === \"number\" && span > 0 && span <= 12 ? span : 6;\n return (spanValue / 12) * 100;\n};\n\ninterface SplitViewPanelProps extends Omit<PanelProps, \"id\"> {\n span?: ColumnProps[\"span\"];\n}\n\nexport const LeftPanel = ({ children, className, ...props }: SplitViewPanelProps) => {\n const defaultSize = props.defaultSize ?? getDefaultSize(props.span || 5);\n\n return (\n <>\n <Panel\n defaultSize={defaultSize}\n minSize={10}\n id=\"leftPanel\"\n className={cn(\"webiny-split-view__right-panel\", className)}\n {...props}\n >\n {children}\n </Panel>\n <PanelResizeHandle className={\"outline-0\"}>\n <Separator orientation={\"vertical\"} />\n </PanelResizeHandle>\n </>\n );\n};\n\nexport const RightPanel = ({ children, className, ...props }: SplitViewPanelProps) => {\n const defaultSize = props.defaultSize ?? getDefaultSize(props.span || 7);\n\n return (\n <Panel\n defaultSize={defaultSize}\n minSize={30}\n id=\"rightPanel\"\n className={cn(\"overflow-scroll! webiny-split-view__right-panel\", className)}\n {...props}\n style={{ overflowY: \"scroll\" }}\n >\n {children}\n </Panel>\n );\n};\n"],"names":["SplitView","children","className","namespace","props","localStorage","useLocalStorage","layout","useLocalStorageValue","saveLayout","useCallback","PanelGroup","cn","getDefaultSize","span","spanValue","LeftPanel","defaultSize","Panel","PanelResizeHandle","Separator","RightPanel"],"mappings":";;;;AAiBO,MAAMA,YAAY,CAAC,EACtBC,QAAQ,EACRC,SAAS,EACTC,YAAY,WAAW,EACvB,GAAGC,OACU;IACb,MAAMC,eAAeC;IAErB,MAAMC,SAASC,
|
|
1
|
+
{"version":3,"file":"components/SplitView/SplitView.js","sources":["../../../src/components/SplitView/SplitView.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { ColumnProps } from \"@webiny/admin-ui\";\nimport { cn, Separator } from \"@webiny/admin-ui\";\nimport type { PanelProps, PanelGroupProps } from \"~/components/ResizablePanels/index.js\";\nimport {\n Panel,\n PanelGroup,\n PanelResizeHandle,\n type Layout\n} from \"~/components/ResizablePanels/index.js\";\nimport { useLocalStorage, useLocalStorageValue } from \"@webiny/app\";\nimport { useCallback } from \"react\";\n\ninterface SplitViewProps extends Omit<PanelGroupProps, \"id\"> {\n namespace?: string;\n}\n\nexport const SplitView = ({\n children,\n className,\n namespace = \"splitView\",\n ...props\n}: SplitViewProps) => {\n const localStorage = useLocalStorage();\n\n const layout = useLocalStorageValue<Layout>(`${namespace}/panels`);\n\n const saveLayout = useCallback(\n (layout: Layout) => {\n localStorage.set(`${namespace}/panels`, layout);\n },\n [localStorage, namespace]\n );\n\n return (\n <PanelGroup\n id={namespace}\n defaultLayout={layout}\n className={cn(\"webiny-split-view\", className)}\n onLayoutChanged={saveLayout}\n {...props}\n >\n {children}\n </PanelGroup>\n );\n};\n\n// Get the default size for the panel:\nconst getDefaultSize = (span: ColumnProps[\"span\"]) => {\n const spanValue = typeof span === \"number\" && span > 0 && span <= 12 ? span : 6;\n return (spanValue / 12) * 100;\n};\n\ninterface SplitViewPanelProps extends Omit<PanelProps, \"id\"> {\n span?: ColumnProps[\"span\"];\n}\n\nexport const LeftPanel = ({ children, className, ...props }: SplitViewPanelProps) => {\n const defaultSize = props.defaultSize ?? getDefaultSize(props.span || 5);\n\n return (\n <>\n <Panel\n defaultSize={defaultSize}\n minSize={10}\n id=\"leftPanel\"\n className={cn(\"webiny-split-view__right-panel\", className)}\n {...props}\n >\n {children}\n </Panel>\n <PanelResizeHandle className={\"outline-0\"}>\n <Separator orientation={\"vertical\"} />\n </PanelResizeHandle>\n </>\n );\n};\n\nexport const RightPanel = ({ children, className, ...props }: SplitViewPanelProps) => {\n const defaultSize = props.defaultSize ?? getDefaultSize(props.span || 7);\n\n return (\n <Panel\n defaultSize={defaultSize}\n minSize={30}\n id=\"rightPanel\"\n className={cn(\"overflow-scroll! webiny-split-view__right-panel\", className)}\n {...props}\n style={{ overflowY: \"scroll\" }}\n >\n {children}\n </Panel>\n );\n};\n"],"names":["SplitView","children","className","namespace","props","localStorage","useLocalStorage","layout","useLocalStorageValue","saveLayout","useCallback","PanelGroup","cn","getDefaultSize","span","spanValue","LeftPanel","defaultSize","Panel","PanelResizeHandle","Separator","RightPanel"],"mappings":";;;;AAiBO,MAAMA,YAAY,CAAC,EACtBC,QAAQ,EACRC,SAAS,EACTC,YAAY,WAAW,EACvB,GAAGC,OACU;IACb,MAAMC,eAAeC;IAErB,MAAMC,SAASC,qBAA6B,GAAGL,UAAU,OAAO,CAAC;IAEjE,MAAMM,aAAaC,AAAAA,IAAAA,wBAAAA,WAAAA,AAAAA,EACf,CAACH;QACGF,aAAa,GAAG,CAAC,GAAGF,UAAU,OAAO,CAAC,EAAEI;IAC5C,GACA;QAACF;QAAcF;KAAU;IAG7B,OAAO,WAAP,GACI,sCAACQ,YAAUA;QACP,IAAIR;QACJ,eAAeI;QACf,WAAWK,GAAG,qBAAqBV;QACnC,iBAAiBO;QAChB,GAAGL,KAAK;OAERH;AAGb;AAGA,MAAMY,iBAAiB,CAACC;IACpB,MAAMC,YAAY,AAAgB,YAAhB,OAAOD,QAAqBA,OAAO,KAAKA,QAAQ,KAAKA,OAAO;IAC9E,OAAQC,YAAY,KAAM;AAC9B;AAMO,MAAMC,YAAY,CAAC,EAAEf,QAAQ,EAAEC,SAAS,EAAE,GAAGE,OAA4B;IAC5E,MAAMa,cAAcb,MAAM,WAAW,IAAIS,eAAeT,MAAM,IAAI,IAAI;IAEtE,OAAO,WAAP,GACI,4FACI,sCAACc,OAAKA;QACF,aAAaD;QACb,SAAS;QACT,IAAG;QACH,WAAWL,GAAG,kCAAkCV;QAC/C,GAAGE,KAAK;OAERH,WAAAA,WAAAA,GAEL,sCAACkB,mBAAiBA;QAAC,WAAW;qBAC1B,sCAACC,WAASA;QAAC,aAAa;;AAIxC;AAEO,MAAMC,aAAa,CAAC,EAAEpB,QAAQ,EAAEC,SAAS,EAAE,GAAGE,OAA4B;IAC7E,MAAMa,cAAcb,MAAM,WAAW,IAAIS,eAAeT,MAAM,IAAI,IAAI;IAEtE,OAAO,WAAP,GACI,sCAACc,OAAKA;QACF,aAAaD;QACb,SAAS;QACT,IAAG;QACH,WAAWL,GAAG,mDAAmDV;QAChE,GAAGE,KAAK;QACT,OAAO;YAAE,WAAW;QAAS;OAE5BH;AAGb"}
|
|
@@ -19,6 +19,6 @@ export interface TableInnerProps<T extends TableRow> {
|
|
|
19
19
|
sorting: DataTableSorting;
|
|
20
20
|
tablePresenter: TablePresenter;
|
|
21
21
|
}
|
|
22
|
-
export declare const TableInner: (<T extends TableRow>(props: TableInnerProps<T>) => React.JSX.Element) & {
|
|
23
|
-
|
|
22
|
+
export declare const TableInner: (<T extends TableRow>(props: TableInnerProps<T>) => React.JSX.Element) & React.NamedExoticComponent<TableInnerProps<TableRow<unknown>>> & {
|
|
23
|
+
readonly type: <T extends TableRow>(props: TableInnerProps<T>) => React.JSX.Element;
|
|
24
24
|
};
|
|
@@ -3,7 +3,9 @@ import { AutoComplete } from "@webiny/admin-ui";
|
|
|
3
3
|
type TeamAutocompleteProps = Omit<React.ComponentProps<typeof AutoComplete>, "options" | "onValueChange"> & {
|
|
4
4
|
onChange?: (value: string) => void;
|
|
5
5
|
};
|
|
6
|
-
export declare const TeamAutocomplete: (({ onChange, value, ...props }: TeamAutocompleteProps) => React.JSX.Element) & {
|
|
7
|
-
|
|
6
|
+
export declare const TeamAutocomplete: (({ onChange, value, ...props }: TeamAutocompleteProps) => React.JSX.Element) & React.NamedExoticComponent<Omit<import("@webiny/admin-ui").AutoCompletePrimitiveProps & import("@webiny/admin-ui").FormComponentProps<any>, "onValueChange" | "options"> & {
|
|
7
|
+
onChange?: (value: string) => void;
|
|
8
|
+
}> & {
|
|
9
|
+
readonly type: ({ onChange, value, ...props }: TeamAutocompleteProps) => React.JSX.Element;
|
|
8
10
|
};
|
|
9
11
|
export {};
|
|
@@ -3,7 +3,9 @@ import { MultiAutoComplete } from "@webiny/admin-ui";
|
|
|
3
3
|
type TeamsMultiAutocompleteProps = Omit<React.ComponentProps<typeof MultiAutoComplete>, "options" | "onValuesChange"> & {
|
|
4
4
|
onChange?: (values: string[]) => void;
|
|
5
5
|
};
|
|
6
|
-
export declare const TeamsMultiAutocomplete: (({ onChange, ...props }: TeamsMultiAutocompleteProps) => React.JSX.Element) & {
|
|
7
|
-
|
|
6
|
+
export declare const TeamsMultiAutocomplete: (({ onChange, ...props }: TeamsMultiAutocompleteProps) => React.JSX.Element) & React.NamedExoticComponent<Omit<import("@webiny/admin-ui/MultiAutoComplete/primitives").MultiAutoCompletePrimitiveProps & import("@webiny/admin-ui").FormComponentProps<any>, "onValuesChange" | "options"> & {
|
|
7
|
+
onChange?: (values: string[]) => void;
|
|
8
|
+
}> & {
|
|
9
|
+
readonly type: ({ onChange, ...props }: TeamsMultiAutocompleteProps) => React.JSX.Element;
|
|
8
10
|
};
|
|
9
11
|
export {};
|
package/components/index.d.ts
CHANGED
|
@@ -13,7 +13,6 @@ export { SingleImageUpload, type SingleImageUploadProps } from "../components/Si
|
|
|
13
13
|
export { LexicalEditor } from "../components/LexicalEditor/index.js";
|
|
14
14
|
export type { RichTextValueWithHtml } from "../components/LexicalEditor/index.js";
|
|
15
15
|
export { LexicalLinkForm } from "../components/LexicalEditor/index.js";
|
|
16
|
-
export { Wcp } from "../components/Wcp.js";
|
|
17
16
|
export * from "../components/IconPicker/index.js";
|
|
18
17
|
export * from "../components/SplitView/index.js";
|
|
19
18
|
export * from "../components/Permissions/index.js";
|
package/components/index.js
CHANGED
|
@@ -22,5 +22,4 @@ export { EmptyView } from "./EmptyView.js";
|
|
|
22
22
|
export { SimpleForm, SimpleFormContent, SimpleFormFooter, SimpleFormHeader } from "./SimpleForm/index.js";
|
|
23
23
|
export { SingleImageUpload } from "./SingleImageUpload.js";
|
|
24
24
|
export { LexicalEditor, LexicalLinkForm } from "./LexicalEditor/index.js";
|
|
25
|
-
export { Wcp } from "./Wcp.js";
|
|
26
25
|
export { RegisterFeature } from "./RegisterFeature.js";
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { Route } from "@webiny/app/features/router/Route.js";
|
|
3
|
+
/**
|
|
4
|
+
* Where a breadcrumb navigates: either a raw path string, or a `Route` (optionally with
|
|
5
|
+
* params) that the header resolves to a link via the router's `getLink`.
|
|
6
|
+
*/
|
|
7
|
+
export type BreadcrumbLink = string | {
|
|
8
|
+
route: Route<any>;
|
|
9
|
+
params?: Record<string, any>;
|
|
10
|
+
};
|
|
11
|
+
export interface BreadcrumbConfig {
|
|
12
|
+
name: string;
|
|
13
|
+
label: string;
|
|
14
|
+
to?: BreadcrumbLink;
|
|
15
|
+
icon?: React.ReactNode;
|
|
16
|
+
}
|
|
17
|
+
export interface BreadcrumbProps {
|
|
18
|
+
/** Stable id for ordering/diffing. Defaults to `label`. */
|
|
19
|
+
name?: string;
|
|
20
|
+
/** Text label shown for this location. */
|
|
21
|
+
label: string;
|
|
22
|
+
/** Where this item navigates — a path string or a `Route` (+ params). */
|
|
23
|
+
to?: BreadcrumbLink;
|
|
24
|
+
/** Optional leading icon. */
|
|
25
|
+
icon?: React.ReactNode;
|
|
26
|
+
/** Place this item before another (by name). */
|
|
27
|
+
before?: string;
|
|
28
|
+
/** Place this item after another (by name). */
|
|
29
|
+
after?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Declares a single breadcrumb. Drop it anywhere in a view or sub-view — the header renders
|
|
33
|
+
* every mounted `<Breadcrumb>` as the trail, in mount order, and clears each when it
|
|
34
|
+
* unmounts. Breadcrumbs are pure presentation, so this composes through the React Config API
|
|
35
|
+
* (like `AdminConfig.Menu` / `Dashboard.Widget`) rather than dependency injection.
|
|
36
|
+
*
|
|
37
|
+
* ```tsx
|
|
38
|
+
* <Breadcrumb label="File Manager" to={{ route: Routes.List }} />
|
|
39
|
+
* <Breadcrumb label={folder.title} to={{ route: Routes.List, params: { folderId } }} />
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare const Breadcrumb: ({ name, label, to, icon, before, after }: BreadcrumbProps) => React.JSX.Element;
|