@webiny/app-admin 6.6.0-alpha.0 → 6.6.0-alpha.1

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 (293) hide show
  1. package/base/Admin.js +17 -2
  2. package/base/Admin.js.map +1 -1
  3. package/base/Base/DefaultFieldRenderers.js +17 -2
  4. package/base/Base/DefaultFieldRenderers.js.map +1 -1
  5. package/base/Base/FieldRenderers/AutoCompleteRenderer.d.ts +13 -0
  6. package/base/Base/FieldRenderers/AutoCompleteRenderer.js +29 -0
  7. package/base/Base/FieldRenderers/AutoCompleteRenderer.js.map +1 -0
  8. package/base/Base/FieldRenderers/HorizontalTabsRenderer.d.ts +2 -2
  9. package/base/Base/FieldRenderers/LexicalRenderer.js +10 -6
  10. package/base/Base/FieldRenderers/LexicalRenderer.js.map +1 -1
  11. package/base/Base/FieldRenderers/MultiFilePickerRenderer.js +8 -5
  12. package/base/Base/FieldRenderers/MultiFilePickerRenderer.js.map +1 -1
  13. package/base/Base/FieldRenderers/MultiSelectRenderer.d.ts +15 -0
  14. package/base/Base/FieldRenderers/MultiSelectRenderer.js +31 -0
  15. package/base/Base/FieldRenderers/MultiSelectRenderer.js.map +1 -0
  16. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.d.ts +2 -0
  17. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js +5 -2
  18. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js.map +1 -1
  19. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.d.ts +11 -0
  20. package/base/Base/FieldRenderers/ObjectRenderer/{MultiValueDynamicZone.js → MultiValueDynamicZone/MultiValueDynamicZone.js} +65 -14
  21. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.js.map +1 -0
  22. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.d.ts +13 -0
  23. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js +28 -0
  24. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js.map +1 -0
  25. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.d.ts +15 -0
  26. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js +5 -0
  27. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js.map +1 -0
  28. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.d.ts +1 -0
  29. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js +11 -0
  30. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js.map +1 -0
  31. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.d.ts +2 -0
  32. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.js +2 -0
  33. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.d.ts +1 -1
  34. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +19 -3
  35. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -1
  36. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +10 -8
  37. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +34 -3
  38. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
  39. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.d.ts +3 -2
  40. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +11 -5
  41. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -1
  42. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +1 -1
  43. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +1 -1
  44. package/base/Base/FieldRenderers/SelectRenderer.d.ts +6 -0
  45. package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
  46. package/base/Base/FieldRenderers/VerticalTabsRenderer.d.ts +2 -2
  47. package/base/Base/Menus.js +4 -4
  48. package/base/Base/Menus.js.map +1 -1
  49. package/base/createRootContainer.js +4 -2
  50. package/base/createRootContainer.js.map +1 -1
  51. package/components/Drawers/DrawerParamsContext.d.ts +6 -0
  52. package/components/Drawers/DrawerParamsContext.js +10 -0
  53. package/components/Drawers/DrawerParamsContext.js.map +1 -0
  54. package/components/Drawers/DrawersContext.d.ts +13 -0
  55. package/components/Drawers/DrawersContext.js +50 -0
  56. package/components/Drawers/DrawersContext.js.map +1 -0
  57. package/components/Drawers/useDrawers.d.ts +2 -0
  58. package/components/Drawers/useDrawers.js +10 -0
  59. package/components/Drawers/useDrawers.js.map +1 -0
  60. package/components/Filters/Filters.js +4 -3
  61. package/components/Filters/Filters.js.map +1 -1
  62. package/components/IconPicker/IconPickerComponent.d.ts +2 -2
  63. package/components/LexicalEditor/LexicalLinkForm.js +3 -0
  64. package/components/LexicalEditor/LexicalLinkForm.js.map +1 -1
  65. package/components/ListView/ListViewBulkActions.d.ts +2 -2
  66. package/components/ListView/ListViewContent.d.ts +2 -2
  67. package/components/ListView/ListViewFilters.d.ts +2 -2
  68. package/components/ListView/index.d.ts +6 -6
  69. package/components/OverlayLayout/OverlayLayout.js +4 -2
  70. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  71. package/components/OverlayLayout/components/OverlayContent.js +1 -0
  72. package/components/OverlayLayout/components/OverlayContent.js.map +1 -1
  73. package/components/RolesMultiAutocomplete/index.d.ts +4 -2
  74. package/components/SplitView/SplitView.js +1 -1
  75. package/components/SplitView/SplitView.js.map +1 -1
  76. package/components/Table/components/Table/TableInner.d.ts +2 -2
  77. package/components/TeamAutocomplete/index.d.ts +4 -2
  78. package/components/TeamsMultiAutocomplete/index.d.ts +4 -2
  79. package/components/index.d.ts +0 -1
  80. package/components/index.js +0 -1
  81. package/config/AdminConfig/Breadcrumbs.d.ts +42 -0
  82. package/config/AdminConfig/Breadcrumbs.js +24 -0
  83. package/config/AdminConfig/Breadcrumbs.js.map +1 -0
  84. package/config/AdminConfig/Drawer.d.ts +10 -0
  85. package/config/AdminConfig/Drawer.js +19 -0
  86. package/config/AdminConfig/Drawer.js.map +1 -0
  87. package/config/AdminConfig/LexicalTheme/AllowCustomColors.d.ts +5 -0
  88. package/config/AdminConfig/LexicalTheme/AllowCustomColors.js +18 -0
  89. package/config/AdminConfig/LexicalTheme/AllowCustomColors.js.map +1 -0
  90. package/config/AdminConfig/LexicalTheme.d.ts +2 -0
  91. package/config/AdminConfig/LexicalTheme.js +2 -0
  92. package/config/AdminConfig/LexicalTheme.js.map +1 -1
  93. package/config/AdminConfig.d.ts +8 -0
  94. package/config/AdminConfig.js +8 -1
  95. package/config/AdminConfig.js.map +1 -1
  96. package/exports/admin.d.ts +3 -0
  97. package/exports/admin.js +3 -0
  98. package/features/accessManagement/types.d.ts +3 -3
  99. package/features/aiChat/AiChatGateway.d.ts +30 -0
  100. package/features/aiChat/AiChatGateway.js +41 -0
  101. package/features/aiChat/AiChatGateway.js.map +1 -0
  102. package/features/aiChat/AiChatPresenter.d.ts +32 -0
  103. package/features/aiChat/AiChatPresenter.js +220 -0
  104. package/features/aiChat/AiChatPresenter.js.map +1 -0
  105. package/features/aiChat/abstractions.d.ts +124 -0
  106. package/features/aiChat/abstractions.js +6 -0
  107. package/features/aiChat/abstractions.js.map +1 -0
  108. package/features/aiChat/feature.d.ts +3 -0
  109. package/features/aiChat/feature.js +19 -0
  110. package/features/aiChat/feature.js.map +1 -0
  111. package/features/aiChat/index.d.ts +6 -0
  112. package/features/aiChat/index.js +3 -0
  113. package/features/dateFormatter/DefaultDateFormatter.d.ts +8 -0
  114. package/features/dateFormatter/DefaultDateFormatter.js +25 -0
  115. package/features/dateFormatter/DefaultDateFormatter.js.map +1 -0
  116. package/features/dateFormatter/abstractions.d.ts +13 -0
  117. package/features/dateFormatter/abstractions.js +5 -0
  118. package/features/dateFormatter/abstractions.js.map +1 -0
  119. package/features/dateFormatter/feature.d.ts +3 -0
  120. package/features/dateFormatter/feature.js +17 -0
  121. package/features/dateFormatter/feature.js.map +1 -0
  122. package/features/dateFormatter/index.d.ts +4 -0
  123. package/features/dateFormatter/index.js +4 -0
  124. package/features/dateFormatter/useDateFormatter.d.ts +5 -0
  125. package/features/dateFormatter/useDateFormatter.js +8 -0
  126. package/features/dateFormatter/useDateFormatter.js.map +1 -0
  127. package/features/featureFlags/FeatureFlagsGateway.d.ts +10 -0
  128. package/features/featureFlags/FeatureFlagsGateway.js +40 -0
  129. package/features/featureFlags/FeatureFlagsGateway.js.map +1 -0
  130. package/features/featureFlags/FeatureFlagsService.d.ts +16 -0
  131. package/features/featureFlags/FeatureFlagsService.js +64 -0
  132. package/features/featureFlags/FeatureFlagsService.js.map +1 -0
  133. package/features/featureFlags/abstractions.d.ts +19 -0
  134. package/features/featureFlags/abstractions.js +6 -0
  135. package/features/featureFlags/abstractions.js.map +1 -0
  136. package/features/featureFlags/feature.d.ts +3 -0
  137. package/features/featureFlags/feature.js +19 -0
  138. package/features/featureFlags/feature.js.map +1 -0
  139. package/features/formModel/Field.js +10 -0
  140. package/features/formModel/Field.js.map +1 -1
  141. package/features/formModel/FieldBuilder.js +1 -1
  142. package/features/formModel/FieldBuilder.js.map +1 -1
  143. package/features/formModel/FieldBuilder.test.js +4 -4
  144. package/features/formModel/FieldBuilder.test.js.map +1 -1
  145. package/features/formModel/FormErrors.d.ts +2 -2
  146. package/features/formModel/FormModel.test.js +50 -0
  147. package/features/formModel/FormModel.test.js.map +1 -1
  148. package/features/formModel/FormView.d.ts +8 -4
  149. package/features/formModel/PresenterErrors.d.ts +2 -2
  150. package/features/formModel/demo/FormModelDemo.d.ts +2 -2
  151. package/features/formModel/renderers.d.ts +1 -0
  152. package/features/formModel/renderers.js +1 -0
  153. package/features/notifications/NotificationsRenderer.d.ts +2 -2
  154. package/features/security/AuthenticationContext/ApiStreamClientDecorator.d.ts +22 -0
  155. package/features/security/AuthenticationContext/ApiStreamClientDecorator.js +32 -0
  156. package/features/security/AuthenticationContext/ApiStreamClientDecorator.js.map +1 -0
  157. package/features/security/AuthenticationContext/feature.js +2 -0
  158. package/features/security/AuthenticationContext/feature.js.map +1 -1
  159. package/features/slugify/DefaultSlugify.d.ts +8 -0
  160. package/features/slugify/DefaultSlugify.js +20 -0
  161. package/features/slugify/DefaultSlugify.js.map +1 -0
  162. package/features/slugify/abstractions.d.ts +12 -0
  163. package/features/slugify/abstractions.js +5 -0
  164. package/features/slugify/abstractions.js.map +1 -0
  165. package/features/slugify/feature.d.ts +1 -0
  166. package/features/slugify/feature.js +11 -0
  167. package/features/slugify/feature.js.map +1 -0
  168. package/features/slugify/index.d.ts +3 -0
  169. package/features/slugify/index.js +3 -0
  170. package/features/stringFormatter/DefaultStringFormatter.d.ts +17 -0
  171. package/features/stringFormatter/DefaultStringFormatter.js +19 -0
  172. package/features/stringFormatter/DefaultStringFormatter.js.map +1 -0
  173. package/features/stringFormatter/abstractions.d.ts +11 -0
  174. package/features/stringFormatter/abstractions.js +5 -0
  175. package/features/stringFormatter/abstractions.js.map +1 -0
  176. package/features/stringFormatter/feature.d.ts +3 -0
  177. package/features/stringFormatter/feature.js +19 -0
  178. package/features/stringFormatter/feature.js.map +1 -0
  179. package/features/stringFormatter/index.d.ts +4 -0
  180. package/features/stringFormatter/index.js +4 -0
  181. package/features/stringFormatter/useStringFormatter.d.ts +5 -0
  182. package/features/stringFormatter/useStringFormatter.js +8 -0
  183. package/features/stringFormatter/useStringFormatter.js.map +1 -0
  184. package/features/tenancy/ApiStreamClientDecorator.d.ts +16 -0
  185. package/features/tenancy/ApiStreamClientDecorator.js +30 -0
  186. package/features/tenancy/ApiStreamClientDecorator.js.map +1 -0
  187. package/features/tenancy/feature.js +2 -0
  188. package/features/tenancy/feature.js.map +1 -1
  189. package/features/wcp/ReactLicense.d.ts +6 -0
  190. package/features/wcp/ReactLicense.js +18 -0
  191. package/features/wcp/ReactLicense.js.map +1 -1
  192. package/features/wcp/WcpGateway.js +3 -0
  193. package/features/wcp/WcpGateway.js.map +1 -1
  194. package/hooks/index.d.ts +3 -0
  195. package/hooks/index.js +3 -0
  196. package/hooks/useDrawer.d.ts +9 -0
  197. package/hooks/useDrawer.js +19 -0
  198. package/hooks/useDrawer.js.map +1 -0
  199. package/hooks/useHotkeys.js +5 -3
  200. package/hooks/useHotkeys.js.map +1 -1
  201. package/hooks/useOpenDrawer.d.ts +7 -0
  202. package/hooks/useOpenDrawer.js +18 -0
  203. package/hooks/useOpenDrawer.js.map +1 -0
  204. package/hooks/useSnackbar.js.map +1 -1
  205. package/index.d.ts +18 -1
  206. package/index.js +23 -12
  207. package/modules/AccessManagementExtension.js +46 -22
  208. package/modules/AccessManagementExtension.js.map +1 -1
  209. package/package.json +31 -28
  210. package/presentation/accessManagement/SecurityPermissions.js +3 -3
  211. package/presentation/accessManagement/SecurityPermissions.js.map +1 -1
  212. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.d.ts +3 -1
  213. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js +13 -16
  214. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js.map +1 -1
  215. package/presentation/accessManagement/apiKeys/components/ApiKeysView.d.ts +2 -2
  216. package/presentation/accessManagement/apiKeys/components/ApiKeysView.js +13 -7
  217. package/presentation/accessManagement/apiKeys/components/ApiKeysView.js.map +1 -1
  218. package/presentation/accessManagement/roles/RolesPresenter.d.ts +3 -1
  219. package/presentation/accessManagement/roles/RolesPresenter.js +11 -14
  220. package/presentation/accessManagement/roles/RolesPresenter.js.map +1 -1
  221. package/presentation/accessManagement/roles/components/RolesView.d.ts +2 -2
  222. package/presentation/accessManagement/roles/components/RolesView.js +10 -6
  223. package/presentation/accessManagement/roles/components/RolesView.js.map +1 -1
  224. package/presentation/accessManagement/teams/TeamsPresenter.d.ts +3 -1
  225. package/presentation/accessManagement/teams/TeamsPresenter.js +11 -14
  226. package/presentation/accessManagement/teams/TeamsPresenter.js.map +1 -1
  227. package/presentation/accessManagement/teams/components/TeamsView.d.ts +2 -2
  228. package/presentation/accessManagement/teams/components/TeamsView.js +10 -6
  229. package/presentation/accessManagement/teams/components/TeamsView.js.map +1 -1
  230. package/presentation/commandPalette/CommandPalettePresenter.d.ts +21 -0
  231. package/presentation/commandPalette/CommandPalettePresenter.js +91 -0
  232. package/presentation/commandPalette/CommandPalettePresenter.js.map +1 -0
  233. package/presentation/commandPalette/abstractions.d.ts +76 -0
  234. package/presentation/commandPalette/abstractions.js +7 -0
  235. package/presentation/commandPalette/abstractions.js.map +1 -0
  236. package/presentation/commandPalette/commands/AskAiCommand.d.ts +25 -0
  237. package/presentation/commandPalette/commands/AskAiCommand.js +33 -0
  238. package/presentation/commandPalette/commands/AskAiCommand.js.map +1 -0
  239. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.d.ts +15 -0
  240. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js +33 -0
  241. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js.map +1 -0
  242. package/presentation/commandPalette/commands/SendMessageCommand.d.ts +23 -0
  243. package/presentation/commandPalette/commands/SendMessageCommand.js +66 -0
  244. package/presentation/commandPalette/commands/SendMessageCommand.js.map +1 -0
  245. package/presentation/commandPalette/commands/SignOutCommand.d.ts +18 -0
  246. package/presentation/commandPalette/commands/SignOutCommand.js +37 -0
  247. package/presentation/commandPalette/commands/SignOutCommand.js.map +1 -0
  248. package/presentation/commandPalette/commands/feature.d.ts +5 -0
  249. package/presentation/commandPalette/commands/feature.js +17 -0
  250. package/presentation/commandPalette/commands/feature.js.map +1 -0
  251. package/presentation/commandPalette/feature.d.ts +3 -0
  252. package/presentation/commandPalette/feature.js +17 -0
  253. package/presentation/commandPalette/feature.js.map +1 -0
  254. package/presentation/commandPalette/index.d.ts +3 -0
  255. package/presentation/commandPalette/index.js +2 -0
  256. package/presentation/featureFlags/FeatureFlagsProvider.d.ts +7 -0
  257. package/presentation/featureFlags/FeatureFlagsProvider.js +22 -0
  258. package/presentation/featureFlags/FeatureFlagsProvider.js.map +1 -0
  259. package/presentation/featureFlags/useFeatureFlags.d.ts +2 -0
  260. package/presentation/featureFlags/useFeatureFlags.js +17 -0
  261. package/presentation/featureFlags/useFeatureFlags.js.map +1 -0
  262. package/presentation/installation/components/SystemInstaller/SystemInstaller.d.ts +2 -2
  263. package/presentation/installation/components/SystemInstaller/steps/FinishSetup/handleStartUsing.js +0 -3
  264. package/presentation/installation/components/SystemInstaller/steps/FinishSetup/handleStartUsing.js.map +1 -1
  265. package/presentation/listPresenter/FolderAwareDataSource.js +4 -1
  266. package/presentation/listPresenter/FolderAwareDataSource.js.map +1 -1
  267. package/presentation/listPresenter/QueryMatcher.js +2 -2
  268. package/presentation/listPresenter/QueryMatcher.js.map +1 -1
  269. package/presentation/sortable/SortablePresenter.d.ts +23 -0
  270. package/presentation/sortable/SortablePresenter.js +175 -0
  271. package/presentation/sortable/SortablePresenter.js.map +1 -0
  272. package/presentation/sortable/abstractions.d.ts +24 -0
  273. package/presentation/sortable/abstractions.js +5 -0
  274. package/presentation/sortable/abstractions.js.map +1 -0
  275. package/presentation/sortable/feature.d.ts +1 -0
  276. package/presentation/sortable/feature.js +11 -0
  277. package/presentation/sortable/feature.js.map +1 -0
  278. package/presentation/sortable/index.d.ts +2 -0
  279. package/presentation/sortable/index.js +2 -0
  280. package/presentation/trashBin/components/BulkActions/DeleteItems.d.ts +2 -2
  281. package/presentation/trashBin/components/BulkActions/RestoreItems.d.ts +2 -2
  282. package/presentation/trashBin/components/TrashBinOverlay.d.ts +2 -2
  283. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.d.ts +0 -10
  284. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +0 -1
  285. package/base/Base/Menus/WebinyVersion.d.ts +0 -2
  286. package/base/Base/Menus/WebinyVersion.js +0 -23
  287. package/base/Base/Menus/WebinyVersion.js.map +0 -1
  288. package/base/WebinyVersion.d.ts +0 -2
  289. package/base/WebinyVersion.js +0 -23
  290. package/base/WebinyVersion.js.map +0 -1
  291. package/components/Wcp.d.ts +0 -19
  292. package/components/Wcp.js +0 -37
  293. package/components/Wcp.js.map +0 -1
@@ -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 { useWcp } from \"~/presentation/wcp/useWcp.js\";\n\nexport const Menus = React.memo(() => {\n const wcp = useWcp();\n const hasWcpLicense = Boolean(wcp.getProject());\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 {!hasWcpLicense && (\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","wcp","useWcp","hasWcpLicense","Boolean","AdminConfig","Menu","DashboardIcon","SettingsIcon","UpgradeIcon"],"mappings":";;;;;;;AAQO,MAAMA,QAAQ,WAAHA,GAAGC,MAAAA,IAAU,CAAC;IAC5B,MAAMC,MAAMC;IACZ,MAAMC,gBAAgBC,QAAQH,IAAI,UAAU;IAE5C,OAAO,WAAP,GACI,oBAACI,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;;QAGnD,CAACH,iBAAiB,WAAjBA,GACE,oBAACG,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;AAEAV,MAAM,WAAW,GAAG"}
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 { WcpFeature } from "../features/wcp/feature.js";
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
- WcpFeature.register(container);
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 { WcpFeature } from \"~/features/wcp/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 LocalStorageFeature.register(container, { prefix: `webiny/${deploymentId}` });\n\n TenancyFeature.register(container);\n\n WcpFeature.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","LocalStorageFeature","TenancyFeature","WcpFeature","SystemInstallerFeature","TelemetryFeature","ErrorOverlayNetworkErrorHandler","ToolsFeature","TextToLexicalToolFeature","ConfirmationFeature","ClipboardFeature"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,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;IAElCsB,oBAAoB,QAAQ,CAACtB,WAAW;QAAE,QAAQ,CAAC,OAAO,EAAEM,cAAc;IAAC;IAE3EiB,eAAe,QAAQ,CAACvB;IAExBwB,WAAW,QAAQ,CAACxB;IAEpByB,uBAAuB,QAAQ,CAACzB;IAEhC0B,iBAAiB,QAAQ,CAAC1B;IAE1BA,UAAU,QAAQ,CAAC2B,iCAAiC,gBAAgB;IAEpEC,aAAa,QAAQ,CAAC5B;IAEtB6B,yBAAyB,QAAQ,CAAC7B;IAElC8B,oBAAoB,QAAQ,CAAC9B;IAE7B+B,iBAAiB,QAAQ,CAAC/B;IAE1B,OAAOA;AACX"}
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,2 @@
1
+ import { DrawersContext } from "./DrawersContext.js";
2
+ export declare const useDrawers: () => DrawersContext;
@@ -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 flex gap-sm flex-wrap"
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
- }, filter.element)), props.children))), /*#__PURE__*/ react.createElement(Separator, null));
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 flex gap-sm flex-wrap\"}>\n {props.filters.map(filter => (\n <div key={filter.name}>{filter.element}</div>\n ))}\n {props.children}\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;eAAGA,OAAO,OAAO,IAEzCF,MAAM,QAAQ,mBAK/B,oBAACG,WAASA;AAGtB"}
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
- displayName: string;
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 variant={\"primary\"} text={`Save`} onClick={form.submit} />\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 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,WAAW;YACX,SAASR;YACT,oBAAM,oBAACS,MAAIA;gBAAC,OAAO;gBAAe,oBAAM,oBAACC,6BAAUA;;0BAEvD,oBAACF,QAAMA;YAAC,SAAS;YAAW,MAAM;YAAQ,SAASJ,KAAK,MAAM;;AAMtF;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,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"}
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
- displayName: string;
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
- displayName: string;
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
- displayName: string;
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
- displayName: string;
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
- displayName: string;
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
- displayName: string;
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(react.Fragment, null, /*#__PURE__*/ react.createElement(OverlayHeader, {
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
- }), children))));
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 <>\n <OverlayHeader\n start={barLeft}\n middle={barMiddle}\n end={barRight}\n variant={variant}\n hideOverlay={hideOverlay}\n />\n\n {children}\n </>\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,wDACI,oBAACY,eAAaA;QACV,OAAOlB;QACP,QAAQD;QACR,KAAKE;QACL,SAASI;QACT,aAAaI;QAGhBP;AAMzB"}
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"}
@@ -5,6 +5,7 @@ const OverlayContent = ({ visible, className, style, children, ...props })=>/*#_
5
5
  className: cn([
6
6
  "fixed inset-x-0 top-lg z-overlay",
7
7
  "w-screen",
8
+ "flex flex-col",
8
9
  "rounded-t-lg overflow-hidden",
9
10
  "bg-neutral-base",
10
11
  "transition ease-in-out",
@@ -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
- displayName: string;
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,qBAA6BL;IAE5C,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"}
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
- displayName: string;
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
- displayName: string;
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
- displayName: string;
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 {};
@@ -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";
@@ -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;