@multiplatform.one/backoffice 6.3.0
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/LICENSE +201 -0
- package/README.md +310 -0
- package/dist/cjs/chrome/BackofficeAwesomebar.cjs +95 -0
- package/dist/cjs/chrome/BackofficeAwesomebar.native.js +106 -0
- package/dist/cjs/chrome/BackofficeAwesomebar.native.js.map +1 -0
- package/dist/cjs/chrome/CommandPalette.cjs +453 -0
- package/dist/cjs/chrome/CommandPalette.native.js +505 -0
- package/dist/cjs/chrome/CommandPalette.native.js.map +1 -0
- package/dist/cjs/chrome/HelpMenu.cjs +131 -0
- package/dist/cjs/chrome/HelpMenu.native.js +145 -0
- package/dist/cjs/chrome/HelpMenu.native.js.map +1 -0
- package/dist/cjs/chrome/NotificationsButton.cjs +112 -0
- package/dist/cjs/chrome/NotificationsButton.native.js +115 -0
- package/dist/cjs/chrome/NotificationsButton.native.js.map +1 -0
- package/dist/cjs/chrome/UserMenu.cjs +158 -0
- package/dist/cjs/chrome/UserMenu.native.js +186 -0
- package/dist/cjs/chrome/UserMenu.native.js.map +1 -0
- package/dist/cjs/chrome/awesomebar-data.cjs +173 -0
- package/dist/cjs/chrome/awesomebar-data.native.js +233 -0
- package/dist/cjs/chrome/awesomebar-data.native.js.map +1 -0
- package/dist/cjs/chrome/command-palette-model.cjs +208 -0
- package/dist/cjs/chrome/command-palette-model.native.js +301 -0
- package/dist/cjs/chrome/command-palette-model.native.js.map +1 -0
- package/dist/cjs/chrome/help-about-dialog.cjs +136 -0
- package/dist/cjs/chrome/help-about-dialog.native.js +146 -0
- package/dist/cjs/chrome/help-about-dialog.native.js.map +1 -0
- package/dist/cjs/chrome/help-shortcuts-dialog.cjs +155 -0
- package/dist/cjs/chrome/help-shortcuts-dialog.native.js +168 -0
- package/dist/cjs/chrome/help-shortcuts-dialog.native.js.map +1 -0
- package/dist/cjs/chrome/notifications-data.cjs +190 -0
- package/dist/cjs/chrome/notifications-data.native.js +271 -0
- package/dist/cjs/chrome/notifications-data.native.js.map +1 -0
- package/dist/cjs/chrome/notifications-panel.cjs +171 -0
- package/dist/cjs/chrome/notifications-panel.native.js +189 -0
- package/dist/cjs/chrome/notifications-panel.native.js.map +1 -0
- package/dist/cjs/chrome/notifications-utils.cjs +43 -0
- package/dist/cjs/chrome/notifications-utils.native.js +46 -0
- package/dist/cjs/chrome/notifications-utils.native.js.map +1 -0
- package/dist/cjs/chrome/shortcuts.cjs +58 -0
- package/dist/cjs/chrome/shortcuts.native.js +72 -0
- package/dist/cjs/chrome/shortcuts.native.js.map +1 -0
- package/dist/cjs/chrome/user-session.cjs +100 -0
- package/dist/cjs/chrome/user-session.native.js +120 -0
- package/dist/cjs/chrome/user-session.native.js.map +1 -0
- package/dist/cjs/config/BackofficeProvider.cjs +164 -0
- package/dist/cjs/config/BackofficeProvider.native.js +217 -0
- package/dist/cjs/config/BackofficeProvider.native.js.map +1 -0
- package/dist/cjs/config/capabilities.cjs +123 -0
- package/dist/cjs/config/capabilities.native.js +155 -0
- package/dist/cjs/config/capabilities.native.js.map +1 -0
- package/dist/cjs/config/events.cjs +18 -0
- package/dist/cjs/config/events.native.js +21 -0
- package/dist/cjs/config/events.native.js.map +1 -0
- package/dist/cjs/config/slots.cjs +18 -0
- package/dist/cjs/config/slots.native.js +21 -0
- package/dist/cjs/config/slots.native.js.map +1 -0
- package/dist/cjs/i18n/en.cjs +101 -0
- package/dist/cjs/i18n/en.native.js +104 -0
- package/dist/cjs/i18n/en.native.js.map +1 -0
- package/dist/cjs/i18n/index.cjs +77 -0
- package/dist/cjs/i18n/index.native.js +102 -0
- package/dist/cjs/i18n/index.native.js.map +1 -0
- package/dist/cjs/index.cjs +109 -0
- package/dist/cjs/index.native.js +112 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/navigation/navigator.cjs +144 -0
- package/dist/cjs/navigation/navigator.native.js +307 -0
- package/dist/cjs/navigation/navigator.native.js.map +1 -0
- package/dist/cjs/navigation/paths.cjs +103 -0
- package/dist/cjs/navigation/paths.native.js +143 -0
- package/dist/cjs/navigation/paths.native.js.map +1 -0
- package/dist/cjs/oneAdapter/index.cjs +53 -0
- package/dist/cjs/oneAdapter/index.native.js +64 -0
- package/dist/cjs/oneAdapter/index.native.js.map +1 -0
- package/dist/cjs/shared/useFrappeApp.cjs +56 -0
- package/dist/cjs/shared/useFrappeApp.native.js +60 -0
- package/dist/cjs/shared/useFrappeApp.native.js.map +1 -0
- package/dist/cjs/shell/BackofficeShell.cjs +194 -0
- package/dist/cjs/shell/BackofficeShell.native.js +223 -0
- package/dist/cjs/shell/BackofficeShell.native.js.map +1 -0
- package/dist/cjs/shell/WorkspaceSidebar.cjs +115 -0
- package/dist/cjs/shell/WorkspaceSidebar.native.js +143 -0
- package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -0
- package/dist/cjs/shell/useWorkspaces.cjs +131 -0
- package/dist/cjs/shell/useWorkspaces.native.js +173 -0
- package/dist/cjs/shell/useWorkspaces.native.js.map +1 -0
- package/dist/cjs/shell/workspaceIcons.cjs +64 -0
- package/dist/cjs/shell/workspaceIcons.native.js +67 -0
- package/dist/cjs/shell/workspaceIcons.native.js.map +1 -0
- package/dist/esm/chrome/BackofficeAwesomebar.mjs +70 -0
- package/dist/esm/chrome/BackofficeAwesomebar.mjs.map +1 -0
- package/dist/esm/chrome/BackofficeAwesomebar.native.js +78 -0
- package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -0
- package/dist/esm/chrome/CommandPalette.mjs +428 -0
- package/dist/esm/chrome/CommandPalette.mjs.map +1 -0
- package/dist/esm/chrome/CommandPalette.native.js +477 -0
- package/dist/esm/chrome/CommandPalette.native.js.map +1 -0
- package/dist/esm/chrome/HelpMenu.mjs +106 -0
- package/dist/esm/chrome/HelpMenu.mjs.map +1 -0
- package/dist/esm/chrome/HelpMenu.native.js +117 -0
- package/dist/esm/chrome/HelpMenu.native.js.map +1 -0
- package/dist/esm/chrome/NotificationsButton.mjs +87 -0
- package/dist/esm/chrome/NotificationsButton.mjs.map +1 -0
- package/dist/esm/chrome/NotificationsButton.native.js +87 -0
- package/dist/esm/chrome/NotificationsButton.native.js.map +1 -0
- package/dist/esm/chrome/UserMenu.mjs +133 -0
- package/dist/esm/chrome/UserMenu.mjs.map +1 -0
- package/dist/esm/chrome/UserMenu.native.js +147 -0
- package/dist/esm/chrome/UserMenu.native.js.map +1 -0
- package/dist/esm/chrome/awesomebar-data.mjs +144 -0
- package/dist/esm/chrome/awesomebar-data.mjs.map +1 -0
- package/dist/esm/chrome/awesomebar-data.native.js +190 -0
- package/dist/esm/chrome/awesomebar-data.native.js.map +1 -0
- package/dist/esm/chrome/command-palette-model.mjs +183 -0
- package/dist/esm/chrome/command-palette-model.mjs.map +1 -0
- package/dist/esm/chrome/command-palette-model.native.js +273 -0
- package/dist/esm/chrome/command-palette-model.native.js.map +1 -0
- package/dist/esm/chrome/help-about-dialog.mjs +111 -0
- package/dist/esm/chrome/help-about-dialog.mjs.map +1 -0
- package/dist/esm/chrome/help-about-dialog.native.js +118 -0
- package/dist/esm/chrome/help-about-dialog.native.js.map +1 -0
- package/dist/esm/chrome/help-shortcuts-dialog.mjs +130 -0
- package/dist/esm/chrome/help-shortcuts-dialog.mjs.map +1 -0
- package/dist/esm/chrome/help-shortcuts-dialog.native.js +140 -0
- package/dist/esm/chrome/help-shortcuts-dialog.native.js.map +1 -0
- package/dist/esm/chrome/notifications-data.mjs +165 -0
- package/dist/esm/chrome/notifications-data.mjs.map +1 -0
- package/dist/esm/chrome/notifications-data.native.js +232 -0
- package/dist/esm/chrome/notifications-data.native.js.map +1 -0
- package/dist/esm/chrome/notifications-panel.mjs +146 -0
- package/dist/esm/chrome/notifications-panel.mjs.map +1 -0
- package/dist/esm/chrome/notifications-panel.native.js +161 -0
- package/dist/esm/chrome/notifications-panel.native.js.map +1 -0
- package/dist/esm/chrome/notifications-utils.mjs +17 -0
- package/dist/esm/chrome/notifications-utils.mjs.map +1 -0
- package/dist/esm/chrome/notifications-utils.native.js +17 -0
- package/dist/esm/chrome/notifications-utils.native.js.map +1 -0
- package/dist/esm/chrome/shortcuts.mjs +33 -0
- package/dist/esm/chrome/shortcuts.mjs.map +1 -0
- package/dist/esm/chrome/shortcuts.native.js +44 -0
- package/dist/esm/chrome/shortcuts.native.js.map +1 -0
- package/dist/esm/chrome/user-session.mjs +73 -0
- package/dist/esm/chrome/user-session.mjs.map +1 -0
- package/dist/esm/chrome/user-session.native.js +79 -0
- package/dist/esm/chrome/user-session.native.js.map +1 -0
- package/dist/esm/config/BackofficeProvider.mjs +132 -0
- package/dist/esm/config/BackofficeProvider.mjs.map +1 -0
- package/dist/esm/config/BackofficeProvider.native.js +171 -0
- package/dist/esm/config/BackofficeProvider.native.js.map +1 -0
- package/dist/esm/config/capabilities.mjs +97 -0
- package/dist/esm/config/capabilities.mjs.map +1 -0
- package/dist/esm/config/capabilities.native.js +126 -0
- package/dist/esm/config/capabilities.native.js.map +1 -0
- package/dist/esm/config/events.mjs +2 -0
- package/dist/esm/config/events.mjs.map +1 -0
- package/dist/esm/config/events.native.js +2 -0
- package/dist/esm/config/events.native.js.map +1 -0
- package/dist/esm/config/slots.mjs +2 -0
- package/dist/esm/config/slots.mjs.map +1 -0
- package/dist/esm/config/slots.native.js +2 -0
- package/dist/esm/config/slots.native.js.map +1 -0
- package/dist/esm/i18n/en.mjs +76 -0
- package/dist/esm/i18n/en.mjs.map +1 -0
- package/dist/esm/i18n/en.native.js +76 -0
- package/dist/esm/i18n/en.native.js.map +1 -0
- package/dist/esm/i18n/index.mjs +40 -0
- package/dist/esm/i18n/index.mjs.map +1 -0
- package/dist/esm/i18n/index.native.js +62 -0
- package/dist/esm/i18n/index.native.js.map +1 -0
- package/dist/esm/index.mjs +26 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +26 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/navigation/navigator.mjs +115 -0
- package/dist/esm/navigation/navigator.mjs.map +1 -0
- package/dist/esm/navigation/navigator.native.js +275 -0
- package/dist/esm/navigation/navigator.native.js.map +1 -0
- package/dist/esm/navigation/paths.mjs +66 -0
- package/dist/esm/navigation/paths.mjs.map +1 -0
- package/dist/esm/navigation/paths.native.js +103 -0
- package/dist/esm/navigation/paths.native.js.map +1 -0
- package/dist/esm/oneAdapter/index.mjs +28 -0
- package/dist/esm/oneAdapter/index.mjs.map +1 -0
- package/dist/esm/oneAdapter/index.native.js +36 -0
- package/dist/esm/oneAdapter/index.native.js.map +1 -0
- package/dist/esm/shared/useFrappeApp.mjs +31 -0
- package/dist/esm/shared/useFrappeApp.mjs.map +1 -0
- package/dist/esm/shared/useFrappeApp.native.js +32 -0
- package/dist/esm/shared/useFrappeApp.native.js.map +1 -0
- package/dist/esm/shell/BackofficeShell.mjs +169 -0
- package/dist/esm/shell/BackofficeShell.mjs.map +1 -0
- package/dist/esm/shell/BackofficeShell.native.js +195 -0
- package/dist/esm/shell/BackofficeShell.native.js.map +1 -0
- package/dist/esm/shell/WorkspaceSidebar.mjs +89 -0
- package/dist/esm/shell/WorkspaceSidebar.mjs.map +1 -0
- package/dist/esm/shell/WorkspaceSidebar.native.js +114 -0
- package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -0
- package/dist/esm/shell/useWorkspaces.mjs +104 -0
- package/dist/esm/shell/useWorkspaces.mjs.map +1 -0
- package/dist/esm/shell/useWorkspaces.native.js +143 -0
- package/dist/esm/shell/useWorkspaces.native.js.map +1 -0
- package/dist/esm/shell/workspaceIcons.mjs +39 -0
- package/dist/esm/shell/workspaceIcons.mjs.map +1 -0
- package/dist/esm/shell/workspaceIcons.native.js +39 -0
- package/dist/esm/shell/workspaceIcons.native.js.map +1 -0
- package/dist/jsx/chrome/BackofficeAwesomebar.mjs +70 -0
- package/dist/jsx/chrome/BackofficeAwesomebar.mjs.map +1 -0
- package/dist/jsx/chrome/BackofficeAwesomebar.native.js +106 -0
- package/dist/jsx/chrome/BackofficeAwesomebar.native.js.map +1 -0
- package/dist/jsx/chrome/CommandPalette.mjs +428 -0
- package/dist/jsx/chrome/CommandPalette.mjs.map +1 -0
- package/dist/jsx/chrome/CommandPalette.native.js +505 -0
- package/dist/jsx/chrome/CommandPalette.native.js.map +1 -0
- package/dist/jsx/chrome/HelpMenu.mjs +106 -0
- package/dist/jsx/chrome/HelpMenu.mjs.map +1 -0
- package/dist/jsx/chrome/HelpMenu.native.js +145 -0
- package/dist/jsx/chrome/HelpMenu.native.js.map +1 -0
- package/dist/jsx/chrome/NotificationsButton.mjs +87 -0
- package/dist/jsx/chrome/NotificationsButton.mjs.map +1 -0
- package/dist/jsx/chrome/NotificationsButton.native.js +115 -0
- package/dist/jsx/chrome/NotificationsButton.native.js.map +1 -0
- package/dist/jsx/chrome/UserMenu.mjs +133 -0
- package/dist/jsx/chrome/UserMenu.mjs.map +1 -0
- package/dist/jsx/chrome/UserMenu.native.js +186 -0
- package/dist/jsx/chrome/UserMenu.native.js.map +1 -0
- package/dist/jsx/chrome/awesomebar-data.mjs +144 -0
- package/dist/jsx/chrome/awesomebar-data.mjs.map +1 -0
- package/dist/jsx/chrome/awesomebar-data.native.js +233 -0
- package/dist/jsx/chrome/awesomebar-data.native.js.map +1 -0
- package/dist/jsx/chrome/command-palette-model.mjs +183 -0
- package/dist/jsx/chrome/command-palette-model.mjs.map +1 -0
- package/dist/jsx/chrome/command-palette-model.native.js +301 -0
- package/dist/jsx/chrome/command-palette-model.native.js.map +1 -0
- package/dist/jsx/chrome/help-about-dialog.mjs +111 -0
- package/dist/jsx/chrome/help-about-dialog.mjs.map +1 -0
- package/dist/jsx/chrome/help-about-dialog.native.js +146 -0
- package/dist/jsx/chrome/help-about-dialog.native.js.map +1 -0
- package/dist/jsx/chrome/help-shortcuts-dialog.mjs +130 -0
- package/dist/jsx/chrome/help-shortcuts-dialog.mjs.map +1 -0
- package/dist/jsx/chrome/help-shortcuts-dialog.native.js +168 -0
- package/dist/jsx/chrome/help-shortcuts-dialog.native.js.map +1 -0
- package/dist/jsx/chrome/notifications-data.mjs +165 -0
- package/dist/jsx/chrome/notifications-data.mjs.map +1 -0
- package/dist/jsx/chrome/notifications-data.native.js +271 -0
- package/dist/jsx/chrome/notifications-data.native.js.map +1 -0
- package/dist/jsx/chrome/notifications-panel.mjs +146 -0
- package/dist/jsx/chrome/notifications-panel.mjs.map +1 -0
- package/dist/jsx/chrome/notifications-panel.native.js +189 -0
- package/dist/jsx/chrome/notifications-panel.native.js.map +1 -0
- package/dist/jsx/chrome/notifications-utils.mjs +17 -0
- package/dist/jsx/chrome/notifications-utils.mjs.map +1 -0
- package/dist/jsx/chrome/notifications-utils.native.js +46 -0
- package/dist/jsx/chrome/notifications-utils.native.js.map +1 -0
- package/dist/jsx/chrome/shortcuts.mjs +33 -0
- package/dist/jsx/chrome/shortcuts.mjs.map +1 -0
- package/dist/jsx/chrome/shortcuts.native.js +72 -0
- package/dist/jsx/chrome/shortcuts.native.js.map +1 -0
- package/dist/jsx/chrome/user-session.mjs +73 -0
- package/dist/jsx/chrome/user-session.mjs.map +1 -0
- package/dist/jsx/chrome/user-session.native.js +120 -0
- package/dist/jsx/chrome/user-session.native.js.map +1 -0
- package/dist/jsx/config/BackofficeProvider.mjs +132 -0
- package/dist/jsx/config/BackofficeProvider.mjs.map +1 -0
- package/dist/jsx/config/BackofficeProvider.native.js +217 -0
- package/dist/jsx/config/BackofficeProvider.native.js.map +1 -0
- package/dist/jsx/config/capabilities.mjs +97 -0
- package/dist/jsx/config/capabilities.mjs.map +1 -0
- package/dist/jsx/config/capabilities.native.js +155 -0
- package/dist/jsx/config/capabilities.native.js.map +1 -0
- package/dist/jsx/config/events.mjs +2 -0
- package/dist/jsx/config/events.mjs.map +1 -0
- package/dist/jsx/config/events.native.js +21 -0
- package/dist/jsx/config/events.native.js.map +1 -0
- package/dist/jsx/config/slots.mjs +2 -0
- package/dist/jsx/config/slots.mjs.map +1 -0
- package/dist/jsx/config/slots.native.js +21 -0
- package/dist/jsx/config/slots.native.js.map +1 -0
- package/dist/jsx/i18n/en.mjs +76 -0
- package/dist/jsx/i18n/en.mjs.map +1 -0
- package/dist/jsx/i18n/en.native.js +104 -0
- package/dist/jsx/i18n/en.native.js.map +1 -0
- package/dist/jsx/i18n/index.mjs +40 -0
- package/dist/jsx/i18n/index.mjs.map +1 -0
- package/dist/jsx/i18n/index.native.js +102 -0
- package/dist/jsx/i18n/index.native.js.map +1 -0
- package/dist/jsx/index.js +26 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/index.mjs +26 -0
- package/dist/jsx/index.mjs.map +1 -0
- package/dist/jsx/index.native.js +112 -0
- package/dist/jsx/index.native.js.map +1 -0
- package/dist/jsx/navigation/navigator.mjs +115 -0
- package/dist/jsx/navigation/navigator.mjs.map +1 -0
- package/dist/jsx/navigation/navigator.native.js +307 -0
- package/dist/jsx/navigation/navigator.native.js.map +1 -0
- package/dist/jsx/navigation/paths.mjs +66 -0
- package/dist/jsx/navigation/paths.mjs.map +1 -0
- package/dist/jsx/navigation/paths.native.js +143 -0
- package/dist/jsx/navigation/paths.native.js.map +1 -0
- package/dist/jsx/oneAdapter/index.mjs +28 -0
- package/dist/jsx/oneAdapter/index.mjs.map +1 -0
- package/dist/jsx/oneAdapter/index.native.js +64 -0
- package/dist/jsx/oneAdapter/index.native.js.map +1 -0
- package/dist/jsx/shared/useFrappeApp.mjs +31 -0
- package/dist/jsx/shared/useFrappeApp.mjs.map +1 -0
- package/dist/jsx/shared/useFrappeApp.native.js +60 -0
- package/dist/jsx/shared/useFrappeApp.native.js.map +1 -0
- package/dist/jsx/shell/BackofficeShell.mjs +169 -0
- package/dist/jsx/shell/BackofficeShell.mjs.map +1 -0
- package/dist/jsx/shell/BackofficeShell.native.js +223 -0
- package/dist/jsx/shell/BackofficeShell.native.js.map +1 -0
- package/dist/jsx/shell/WorkspaceSidebar.mjs +89 -0
- package/dist/jsx/shell/WorkspaceSidebar.mjs.map +1 -0
- package/dist/jsx/shell/WorkspaceSidebar.native.js +143 -0
- package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -0
- package/dist/jsx/shell/useWorkspaces.mjs +104 -0
- package/dist/jsx/shell/useWorkspaces.mjs.map +1 -0
- package/dist/jsx/shell/useWorkspaces.native.js +173 -0
- package/dist/jsx/shell/useWorkspaces.native.js.map +1 -0
- package/dist/jsx/shell/workspaceIcons.mjs +39 -0
- package/dist/jsx/shell/workspaceIcons.mjs.map +1 -0
- package/dist/jsx/shell/workspaceIcons.native.js +67 -0
- package/dist/jsx/shell/workspaceIcons.native.js.map +1 -0
- package/package.json +123 -0
- package/src/chrome/BackofficeAwesomebar.tsx +89 -0
- package/src/chrome/CommandPalette.spec.tsx +252 -0
- package/src/chrome/CommandPalette.tsx +520 -0
- package/src/chrome/HelpMenu.tsx +119 -0
- package/src/chrome/NotificationsButton.tsx +87 -0
- package/src/chrome/UserMenu.tsx +173 -0
- package/src/chrome/awesomebar-data.tsx +252 -0
- package/src/chrome/command-palette-model.ts +291 -0
- package/src/chrome/help-about-dialog.tsx +130 -0
- package/src/chrome/help-shortcuts-dialog.tsx +144 -0
- package/src/chrome/notifications-data.tsx +287 -0
- package/src/chrome/notifications-panel.tsx +175 -0
- package/src/chrome/notifications-utils.tsx +44 -0
- package/src/chrome/shortcuts.ts +53 -0
- package/src/chrome/user-session.tsx +116 -0
- package/src/config/BackofficeProvider.spec.tsx +126 -0
- package/src/config/BackofficeProvider.tsx +315 -0
- package/src/config/capabilities.ts +172 -0
- package/src/config/events.ts +19 -0
- package/src/config/slots.ts +28 -0
- package/src/i18n/en.ts +83 -0
- package/src/i18n/index.ts +69 -0
- package/src/index.ts +150 -0
- package/src/navigation/navigator.spec.ts +106 -0
- package/src/navigation/navigator.ts +209 -0
- package/src/navigation/paths.ts +146 -0
- package/src/oneAdapter/index.tsx +61 -0
- package/src/shared/useFrappeApp.ts +39 -0
- package/src/shell/BackofficeShell.tsx +222 -0
- package/src/shell/WorkspaceSidebar.tsx +119 -0
- package/src/shell/useWorkspaces.ts +202 -0
- package/src/shell/workspaceIcons.ts +76 -0
- package/types/chrome/BackofficeAwesomebar.d.ts +12 -0
- package/types/chrome/BackofficeAwesomebar.d.ts.map +1 -0
- package/types/chrome/CommandPalette.d.ts +6 -0
- package/types/chrome/CommandPalette.d.ts.map +1 -0
- package/types/chrome/HelpMenu.d.ts +2 -0
- package/types/chrome/HelpMenu.d.ts.map +1 -0
- package/types/chrome/NotificationsButton.d.ts +2 -0
- package/types/chrome/NotificationsButton.d.ts.map +1 -0
- package/types/chrome/UserMenu.d.ts +6 -0
- package/types/chrome/UserMenu.d.ts.map +1 -0
- package/types/chrome/awesomebar-data.d.ts +52 -0
- package/types/chrome/awesomebar-data.d.ts.map +1 -0
- package/types/chrome/command-palette-model.d.ts +47 -0
- package/types/chrome/command-palette-model.d.ts.map +1 -0
- package/types/chrome/help-about-dialog.d.ts +12 -0
- package/types/chrome/help-about-dialog.d.ts.map +1 -0
- package/types/chrome/help-shortcuts-dialog.d.ts +6 -0
- package/types/chrome/help-shortcuts-dialog.d.ts.map +1 -0
- package/types/chrome/notifications-data.d.ts +34 -0
- package/types/chrome/notifications-data.d.ts.map +1 -0
- package/types/chrome/notifications-panel.d.ts +11 -0
- package/types/chrome/notifications-panel.d.ts.map +1 -0
- package/types/chrome/notifications-utils.d.ts +21 -0
- package/types/chrome/notifications-utils.d.ts.map +1 -0
- package/types/chrome/shortcuts.d.ts +6 -0
- package/types/chrome/shortcuts.d.ts.map +1 -0
- package/types/chrome/user-session.d.ts +19 -0
- package/types/chrome/user-session.d.ts.map +1 -0
- package/types/config/BackofficeProvider.d.ts +128 -0
- package/types/config/BackofficeProvider.d.ts.map +1 -0
- package/types/config/capabilities.d.ts +109 -0
- package/types/config/capabilities.d.ts.map +1 -0
- package/types/config/events.d.ts +39 -0
- package/types/config/events.d.ts.map +1 -0
- package/types/config/slots.d.ts +32 -0
- package/types/config/slots.d.ts.map +1 -0
- package/types/i18n/en.d.ts +83 -0
- package/types/i18n/en.d.ts.map +1 -0
- package/types/i18n/index.d.ts +27 -0
- package/types/i18n/index.d.ts.map +1 -0
- package/types/index.d.ts +55 -0
- package/types/index.d.ts.map +1 -0
- package/types/navigation/navigator.d.ts +98 -0
- package/types/navigation/navigator.d.ts.map +1 -0
- package/types/navigation/paths.d.ts +60 -0
- package/types/navigation/paths.d.ts.map +1 -0
- package/types/oneAdapter/index.d.ts +8 -0
- package/types/oneAdapter/index.d.ts.map +1 -0
- package/types/shared/useFrappeApp.d.ts +10 -0
- package/types/shared/useFrappeApp.d.ts.map +1 -0
- package/types/shell/BackofficeShell.d.ts +10 -0
- package/types/shell/BackofficeShell.d.ts.map +1 -0
- package/types/shell/WorkspaceSidebar.d.ts +9 -0
- package/types/shell/WorkspaceSidebar.d.ts.map +1 -0
- package/types/shell/useWorkspaces.d.ts +43 -0
- package/types/shell/useWorkspaces.d.ts.map +1 -0
- package/types/shell/workspaceIcons.d.ts +9 -0
- package/types/shell/workspaceIcons.d.ts.map +1 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { FrappeApp } from "@multiplatform.one/frappe";
|
|
2
|
+
import { useFrappeConfig } from "@multiplatform.one/frappe-ui";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
const appCache = /* @__PURE__ */new Map();
|
|
5
|
+
function useFrappeApp() {
|
|
6
|
+
const config = useFrappeConfig();
|
|
7
|
+
const baseURL = config?.baseURL;
|
|
8
|
+
const socketPort = config?.socketPort;
|
|
9
|
+
const useToken = config?.auth?.useToken;
|
|
10
|
+
const token = config?.auth?.token;
|
|
11
|
+
const type = config?.auth?.type;
|
|
12
|
+
return useMemo(() => {
|
|
13
|
+
if (!baseURL) return void 0;
|
|
14
|
+
const key = `${baseURL}|${socketPort ?? ""}|${useToken ? "t" : ""}|${token ?? ""}|${type ?? ""}`;
|
|
15
|
+
let app = appCache.get(key);
|
|
16
|
+
if (!app) {
|
|
17
|
+
app = new FrappeApp(baseURL, {
|
|
18
|
+
useToken,
|
|
19
|
+
token,
|
|
20
|
+
type: type === "Bearer" ? "Bearer" : type ? "token" : void 0,
|
|
21
|
+
realtimeOptions: socketPort ? {
|
|
22
|
+
socketPort
|
|
23
|
+
} : void 0
|
|
24
|
+
});
|
|
25
|
+
appCache.set(key, app);
|
|
26
|
+
}
|
|
27
|
+
return app;
|
|
28
|
+
}, [baseURL, socketPort, useToken, token, type]);
|
|
29
|
+
}
|
|
30
|
+
export { useFrappeApp };
|
|
31
|
+
//# sourceMappingURL=useFrappeApp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FrappeApp","useFrappeConfig","useMemo","appCache","Map","useFrappeApp","config","baseURL","socketPort","useToken","auth","token","type","key","app","get","realtimeOptions","set"],"sources":["../../../src/shared/useFrappeApp.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,QAAkC;AAC3C,SAASC,eAAA,QAAuB;AAChC,SAASC,OAAA,QAAe;AAExB,MAAMC,QAAA,GAAW,mBAAIC,GAAA,CAAuB;AASrC,SAASC,aAAA,EAAsC;EACpD,MAAMC,MAAA,GAASL,eAAA,CAAgB;EAC/B,MAAMM,OAAA,GAAUD,MAAA,EAAQC,OAAA;EAIxB,MAAMC,UAAA,GAAaF,MAAA,EAAQE,UAAA;EAC3B,MAAMC,QAAA,GAAWH,MAAA,EAAQI,IAAA,EAAMD,QAAA;EAC/B,MAAME,KAAA,GAAQL,MAAA,EAAQI,IAAA,EAAMC,KAAA;EAC5B,MAAMC,IAAA,GAAON,MAAA,EAAQI,IAAA,EAAME,IAAA;EAC3B,OAAOV,OAAA,CAAQ,MAAM;IACnB,IAAI,CAACK,OAAA,EAAS,OAAO;IACrB,MAAMM,GAAA,GAAM,GAAGN,OAAO,IAAIC,UAAA,IAAc,EAAE,IAAIC,QAAA,GAAW,MAAM,EAAE,IAAIE,KAAA,IAAS,EAAE,IAAIC,IAAA,IAAQ,EAAE;IAC9F,IAAIE,GAAA,GAAMX,QAAA,CAASY,GAAA,CAAIF,GAAG;IAC1B,IAAI,CAACC,GAAA,EAAK;MACRA,GAAA,GAAM,IAAId,SAAA,CAAUO,OAAA,EAAS;QAC3BE,QAAA;QACAE,KAAA;QACAC,IAAA,EAAOA,IAAA,KAAS,WAAW,WAAWA,IAAA,GAAO,UAAU;QACvDI,eAAA,EAAiBR,UAAA,GAAa;UAAEA;QAAW,IAAI;MACjD,CAAC;MACDL,QAAA,CAASc,GAAA,CAAIJ,GAAA,EAAKC,GAAG;IACvB;IACA,OAAOA,GAAA;EACT,GAAG,CAACP,OAAA,EAASC,UAAA,EAAYC,QAAA,EAAUE,KAAA,EAAOC,IAAI,CAAC;AACjD","ignoreList":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var useFrappeApp_exports = {};
|
|
26
|
+
__export(useFrappeApp_exports, {
|
|
27
|
+
useFrappeApp: () => useFrappeApp
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(useFrappeApp_exports);
|
|
30
|
+
var import_frappe = require("@multiplatform.one/frappe");
|
|
31
|
+
var import_frappe_ui = require("@multiplatform.one/frappe-ui");
|
|
32
|
+
var import_react = require("react");
|
|
33
|
+
var appCache = /* @__PURE__ */new Map();
|
|
34
|
+
function useFrappeApp() {
|
|
35
|
+
var _config_auth, _config_auth1, _config_auth2;
|
|
36
|
+
var config = (0, import_frappe_ui.useFrappeConfig)();
|
|
37
|
+
var baseURL = config === null || config === void 0 ? void 0 : config.baseURL;
|
|
38
|
+
var socketPort = config === null || config === void 0 ? void 0 : config.socketPort;
|
|
39
|
+
var useToken = config === null || config === void 0 ? void 0 : (_config_auth = config.auth) === null || _config_auth === void 0 ? void 0 : _config_auth.useToken;
|
|
40
|
+
var token = config === null || config === void 0 ? void 0 : (_config_auth1 = config.auth) === null || _config_auth1 === void 0 ? void 0 : _config_auth1.token;
|
|
41
|
+
var type = config === null || config === void 0 ? void 0 : (_config_auth2 = config.auth) === null || _config_auth2 === void 0 ? void 0 : _config_auth2.type;
|
|
42
|
+
return (0, import_react.useMemo)(function () {
|
|
43
|
+
if (!baseURL) return void 0;
|
|
44
|
+
var key = `${baseURL}|${socketPort !== null && socketPort !== void 0 ? socketPort : ""}|${useToken ? "t" : ""}|${token !== null && token !== void 0 ? token : ""}|${type !== null && type !== void 0 ? type : ""}`;
|
|
45
|
+
var app = appCache.get(key);
|
|
46
|
+
if (!app) {
|
|
47
|
+
app = new import_frappe.FrappeApp(baseURL, {
|
|
48
|
+
useToken,
|
|
49
|
+
token,
|
|
50
|
+
type: type === "Bearer" ? "Bearer" : type ? "token" : void 0,
|
|
51
|
+
realtimeOptions: socketPort ? {
|
|
52
|
+
socketPort
|
|
53
|
+
} : void 0
|
|
54
|
+
});
|
|
55
|
+
appCache.set(key, app);
|
|
56
|
+
}
|
|
57
|
+
return app;
|
|
58
|
+
}, [baseURL, socketPort, useToken, token, type]);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=useFrappeApp.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","useFrappeApp_exports","useFrappeApp","module","exports","import_frappe","require","import_frappe_ui","import_react","appCache","Map"],"sources":["../../../src/shared/useFrappeApp.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAuB;AAChC,IAAAC,gBAAS,GAAAF,MAAe,CAAAG,wBAAA;AAExB,IAAAC,iBAAiB,GAAAJ,MAAA,CAAAK,mBAA2B;AASrC,IAAAC,YAAS,GAAAN,MAAsC,CAAAO,SAAA,CAAAC,cAAA;AACpD,IAAAC,QAAM,GAAAA,CAAAC,MAAS,EAAAC,GAAA;EACf,SAAMC,IAAA,IAAUD,GAAA,EAIhBZ,SAAM,CAAAW,MAAA,EAAaE,IAAA;IAAQC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAC3B;AACA,IAAAC,WAAM,GAAQA,CAAAC,EAAA,EAAAC,IAAQ,EAAAC,MAAM,EAAAC,IAAA;EAC5B,IAAAF,IAAM,WAAOA,IAAQ,KAAM,mBAAAA,IAAA;IAC3B,KAAO,IAAAG,GAAA,IAAQhB,iBAAM,CAAAa,IAAA,GACnB,IAAK,CAAAX,YAAS,CAAAe,IAAO,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACrBnB,SAAY,CAAAiB,EAAG,EAAAI,GAAA,EAAO;MAAAP,GAAI,EAAAA,CAAA,KAAAI,IAAc,CAAAG,GAAE;MAAIN,UAAW,IAAAK,IAAQ,GAAAjB,gBAAmB,CAAAe,IAAA,EAAAG,GAAU,MAAAD,IAAA,CAAAL;IAAA;EAC9F;EACA,OAAKE,EAAA;AACH;AAA6B,IAAAM,YAC3B,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IAAAE,oBACA;AAAAhB,QACA,CAAAgB,oBAAgB;EAAuCC,YACvD,EAAAA,CAAA,KAAAA;AAA+C;AAEjDC,MAAA,CAAAC,OAAA,GAASN,YAAY,CAAAG,oBAAA;AAAA,IACvBI,aAAA,GAAAC,OAAA;AACA,IAAAC,gBAAO,GAAAD,OAAA;AAAA,IACTE,YAAa,GAAAF,OAAA,CAAY;AAC3B,IAAAG,QAAA,sBAAAC,GAAA","ignoreList":[]}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { Button, SizableText, XStack, YStack, isWeb } from "@multiplatform.one/components";
|
|
2
|
+
import { useLayoutSizeClass, useResolvedKnobs } from "@multiplatform.one/theme";
|
|
3
|
+
import { ListIcon, XIcon } from "@phosphor-icons/react";
|
|
4
|
+
import { useEffect, useRef, useState } from "react";
|
|
5
|
+
import { useTranslation } from "react-i18next";
|
|
6
|
+
import { BackofficeAwesomebar } from "../chrome/BackofficeAwesomebar.mjs";
|
|
7
|
+
import { HelpMenu } from "../chrome/HelpMenu.mjs";
|
|
8
|
+
import { NotificationsButton } from "../chrome/NotificationsButton.mjs";
|
|
9
|
+
import { useBackofficeShortcuts } from "../chrome/shortcuts.mjs";
|
|
10
|
+
import { UserMenu } from "../chrome/UserMenu.mjs";
|
|
11
|
+
import { useBackofficeCapabilities, useBackofficeLocation, useBackofficeNavigator, useBackofficePaths, useBackofficeSlots } from "../config/BackofficeProvider.mjs";
|
|
12
|
+
import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.mjs";
|
|
13
|
+
import { WorkspaceSidebar } from "./WorkspaceSidebar.mjs";
|
|
14
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
+
function useIsNarrow() {
|
|
16
|
+
return useLayoutSizeClass() === "compact";
|
|
17
|
+
}
|
|
18
|
+
function BackofficeShell({
|
|
19
|
+
children,
|
|
20
|
+
activePath,
|
|
21
|
+
onNavigate
|
|
22
|
+
}) {
|
|
23
|
+
const {
|
|
24
|
+
t
|
|
25
|
+
} = useTranslation(BACKOFFICE_I18N_NAMESPACE);
|
|
26
|
+
const {
|
|
27
|
+
knobProps
|
|
28
|
+
} = useResolvedKnobs();
|
|
29
|
+
const capabilities = useBackofficeCapabilities();
|
|
30
|
+
const slots = useBackofficeSlots();
|
|
31
|
+
const navigator = useBackofficeNavigator();
|
|
32
|
+
const location = useBackofficeLocation();
|
|
33
|
+
const paths = useBackofficePaths();
|
|
34
|
+
const isNarrow = useIsNarrow();
|
|
35
|
+
const [drawerOpen, setDrawerOpen] = useState(false);
|
|
36
|
+
const resolvedActivePath = activePath ?? location.path;
|
|
37
|
+
const navigate = onNavigate ?? navigator.navigate;
|
|
38
|
+
const sidebarEnabled = capabilities.sidebar.enabled;
|
|
39
|
+
const awesomebarRef = useRef(null);
|
|
40
|
+
useBackofficeShortcuts({
|
|
41
|
+
onFocusSearch: capabilities.awesomebar.enabled ? () => awesomebarRef.current?.focus() : void 0
|
|
42
|
+
});
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
if (!isNarrow) setDrawerOpen(false);
|
|
45
|
+
}, [isNarrow]);
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
if (!isWeb || typeof document === "undefined" || !drawerOpen) return;
|
|
48
|
+
const onKeyDown = event => {
|
|
49
|
+
if (event.key === "Escape") setDrawerOpen(false);
|
|
50
|
+
};
|
|
51
|
+
document.addEventListener("keydown", onKeyDown);
|
|
52
|
+
return () => document.removeEventListener("keydown", onKeyDown);
|
|
53
|
+
}, [drawerOpen]);
|
|
54
|
+
const handleNavigate = path => {
|
|
55
|
+
if (isNarrow) setDrawerOpen(false);
|
|
56
|
+
navigate(path);
|
|
57
|
+
};
|
|
58
|
+
const surfaceBorderWidth = knobProps.surface.borderWidth;
|
|
59
|
+
const sidebarContent = /* @__PURE__ */jsxs(Fragment, {
|
|
60
|
+
children: [/* @__PURE__ */jsx(WorkspaceSidebar, {
|
|
61
|
+
activePath: resolvedActivePath,
|
|
62
|
+
onNavigate: handleNavigate
|
|
63
|
+
}), slots.renderSidebarFooter?.()]
|
|
64
|
+
});
|
|
65
|
+
const headerContent = /* @__PURE__ */jsxs(Fragment, {
|
|
66
|
+
children: [isNarrow && sidebarEnabled && /* @__PURE__ */jsx(Button, {
|
|
67
|
+
chromeless: true,
|
|
68
|
+
circular: true,
|
|
69
|
+
size: "$3",
|
|
70
|
+
icon: drawerOpen ? XIcon : ListIcon,
|
|
71
|
+
"aria-label": t("shell.toggleSidebar", "Toggle sidebar"),
|
|
72
|
+
"aria-expanded": drawerOpen,
|
|
73
|
+
onPress: () => setDrawerOpen(open => !open),
|
|
74
|
+
"data-testid": "backoffice-sidebar-toggle"
|
|
75
|
+
}), /* @__PURE__ */jsx(Button, {
|
|
76
|
+
chromeless: true,
|
|
77
|
+
size: "$3",
|
|
78
|
+
paddingHorizontal: "$2",
|
|
79
|
+
onPress: () => handleNavigate(paths.home()),
|
|
80
|
+
"aria-label": t("shell.home", "Home"),
|
|
81
|
+
"data-testid": "backoffice-home",
|
|
82
|
+
children: /* @__PURE__ */jsx(SizableText, {
|
|
83
|
+
size: "$5",
|
|
84
|
+
fontWeight: "700",
|
|
85
|
+
children: t("shell.title", "Backoffice")
|
|
86
|
+
})
|
|
87
|
+
}), /* @__PURE__ */jsx(XStack, {
|
|
88
|
+
flex: 1,
|
|
89
|
+
minWidth: 0,
|
|
90
|
+
justifyContent: "center",
|
|
91
|
+
children: capabilities.awesomebar.enabled && /* @__PURE__ */jsx(XStack, {
|
|
92
|
+
flex: 1,
|
|
93
|
+
maxWidth: 560,
|
|
94
|
+
minWidth: 0,
|
|
95
|
+
children: /* @__PURE__ */jsx(BackofficeAwesomebar, {
|
|
96
|
+
focusRef: awesomebarRef
|
|
97
|
+
})
|
|
98
|
+
})
|
|
99
|
+
}), /* @__PURE__ */jsxs(XStack, {
|
|
100
|
+
alignItems: "center",
|
|
101
|
+
gap: "$1",
|
|
102
|
+
flexShrink: 0,
|
|
103
|
+
children: [capabilities.notifications.enabled && /* @__PURE__ */jsx(NotificationsButton, {}), capabilities.help.enabled && /* @__PURE__ */jsx(HelpMenu, {}), capabilities.userMenu.enabled && /* @__PURE__ */jsx(UserMenu, {})]
|
|
104
|
+
})]
|
|
105
|
+
});
|
|
106
|
+
return /* @__PURE__ */jsxs(YStack, {
|
|
107
|
+
flex: 1,
|
|
108
|
+
height: "100%",
|
|
109
|
+
width: "100%",
|
|
110
|
+
overflow: "hidden",
|
|
111
|
+
"data-testid": "backoffice-shell",
|
|
112
|
+
children: [/* @__PURE__ */jsx(XStack, {
|
|
113
|
+
role: "banner",
|
|
114
|
+
...knobProps.surface,
|
|
115
|
+
borderWidth: 0,
|
|
116
|
+
borderBottomWidth: surfaceBorderWidth,
|
|
117
|
+
borderBottomColor: knobProps.surface.borderColor,
|
|
118
|
+
alignItems: "center",
|
|
119
|
+
paddingHorizontal: "$3",
|
|
120
|
+
paddingVertical: "$2",
|
|
121
|
+
gap: "$2",
|
|
122
|
+
flexShrink: 0,
|
|
123
|
+
children: slots.renderShellHeader ? slots.renderShellHeader({
|
|
124
|
+
defaultContent: headerContent
|
|
125
|
+
}) : headerContent
|
|
126
|
+
}), /* @__PURE__ */jsxs(XStack, {
|
|
127
|
+
flex: 1,
|
|
128
|
+
minWidth: 0,
|
|
129
|
+
position: "relative",
|
|
130
|
+
overflow: "hidden",
|
|
131
|
+
children: [sidebarEnabled && !isNarrow && /* @__PURE__ */jsx(YStack, {
|
|
132
|
+
role: "navigation",
|
|
133
|
+
flexShrink: 0,
|
|
134
|
+
"data-testid": "backoffice-sidebar-rail",
|
|
135
|
+
children: sidebarContent
|
|
136
|
+
}), sidebarEnabled && isNarrow && drawerOpen && /* @__PURE__ */jsxs(Fragment, {
|
|
137
|
+
children: [/* @__PURE__ */jsx(YStack, {
|
|
138
|
+
position: "absolute",
|
|
139
|
+
top: 0,
|
|
140
|
+
left: 0,
|
|
141
|
+
right: 0,
|
|
142
|
+
bottom: 0,
|
|
143
|
+
backgroundColor: "$shadowColor",
|
|
144
|
+
opacity: 0.5,
|
|
145
|
+
zIndex: 10,
|
|
146
|
+
onPress: () => setDrawerOpen(false),
|
|
147
|
+
"data-testid": "backoffice-sidebar-scrim"
|
|
148
|
+
}), /* @__PURE__ */jsx(YStack, {
|
|
149
|
+
role: "navigation",
|
|
150
|
+
position: "absolute",
|
|
151
|
+
top: 0,
|
|
152
|
+
left: 0,
|
|
153
|
+
bottom: 0,
|
|
154
|
+
zIndex: 11,
|
|
155
|
+
backgroundColor: "$background",
|
|
156
|
+
"data-testid": "backoffice-sidebar-drawer",
|
|
157
|
+
children: sidebarContent
|
|
158
|
+
})]
|
|
159
|
+
}), /* @__PURE__ */jsx(YStack, {
|
|
160
|
+
role: "main",
|
|
161
|
+
flex: 1,
|
|
162
|
+
minWidth: 0,
|
|
163
|
+
children
|
|
164
|
+
})]
|
|
165
|
+
})]
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
export { BackofficeShell };
|
|
169
|
+
//# sourceMappingURL=BackofficeShell.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Button","SizableText","XStack","YStack","isWeb","useLayoutSizeClass","useResolvedKnobs","ListIcon","XIcon","useEffect","useRef","useState","useTranslation","BackofficeAwesomebar","HelpMenu","NotificationsButton","useBackofficeShortcuts","UserMenu","useBackofficeCapabilities","useBackofficeLocation","useBackofficeNavigator","useBackofficePaths","useBackofficeSlots","BACKOFFICE_I18N_NAMESPACE","WorkspaceSidebar","Fragment","jsx","jsxs","useIsNarrow","BackofficeShell","children","activePath","onNavigate","t","knobProps","capabilities","slots","navigator","location","paths","isNarrow","drawerOpen","setDrawerOpen","resolvedActivePath","path","navigate","sidebarEnabled","sidebar","enabled","awesomebarRef","onFocusSearch","awesomebar","current","focus","document","onKeyDown","event","key","addEventListener","removeEventListener","handleNavigate","surfaceBorderWidth","surface","borderWidth","sidebarContent","renderSidebarFooter","headerContent","chromeless","circular","size","icon","onPress","open","paddingHorizontal","home","fontWeight","flex","minWidth","justifyContent","maxWidth","focusRef","alignItems","gap","flexShrink","notifications","help","userMenu","height","width","overflow","role","borderBottomWidth","borderBottomColor","borderColor","paddingVertical","renderShellHeader","defaultContent","position","top","left","right","bottom","backgroundColor","opacity","zIndex"],"sources":["../../../src/shell/BackofficeShell.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var BackofficeShell_exports = {};
|
|
26
|
+
__export(BackofficeShell_exports, {
|
|
27
|
+
BackofficeShell: () => BackofficeShell
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(BackofficeShell_exports);
|
|
30
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
31
|
+
var import_components = require("@multiplatform.one/components");
|
|
32
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
33
|
+
var import_react = require("@phosphor-icons/react");
|
|
34
|
+
var import_react2 = require("react");
|
|
35
|
+
var import_react_i18next = require("react-i18next");
|
|
36
|
+
var import_BackofficeAwesomebar = require("../chrome/BackofficeAwesomebar.native.js");
|
|
37
|
+
var import_HelpMenu = require("../chrome/HelpMenu.native.js");
|
|
38
|
+
var import_NotificationsButton = require("../chrome/NotificationsButton.native.js");
|
|
39
|
+
var import_shortcuts = require("../chrome/shortcuts.native.js");
|
|
40
|
+
var import_UserMenu = require("../chrome/UserMenu.native.js");
|
|
41
|
+
var import_BackofficeProvider = require("../config/BackofficeProvider.native.js");
|
|
42
|
+
var import_i18n = require("../i18n/index.native.js");
|
|
43
|
+
var import_WorkspaceSidebar = require("./WorkspaceSidebar.native.js");
|
|
44
|
+
function useIsNarrow() {
|
|
45
|
+
return (0, import_theme.useLayoutSizeClass)() === "compact";
|
|
46
|
+
}
|
|
47
|
+
function BackofficeShell(param) {
|
|
48
|
+
var {
|
|
49
|
+
children,
|
|
50
|
+
activePath,
|
|
51
|
+
onNavigate
|
|
52
|
+
} = param;
|
|
53
|
+
var _slots_renderSidebarFooter;
|
|
54
|
+
var {
|
|
55
|
+
t
|
|
56
|
+
} = (0, import_react_i18next.useTranslation)(import_i18n.BACKOFFICE_I18N_NAMESPACE);
|
|
57
|
+
var {
|
|
58
|
+
knobProps
|
|
59
|
+
} = (0, import_theme.useResolvedKnobs)();
|
|
60
|
+
var capabilities = (0, import_BackofficeProvider.useBackofficeCapabilities)();
|
|
61
|
+
var slots = (0, import_BackofficeProvider.useBackofficeSlots)();
|
|
62
|
+
var navigator = (0, import_BackofficeProvider.useBackofficeNavigator)();
|
|
63
|
+
var location = (0, import_BackofficeProvider.useBackofficeLocation)();
|
|
64
|
+
var paths = (0, import_BackofficeProvider.useBackofficePaths)();
|
|
65
|
+
var isNarrow = useIsNarrow();
|
|
66
|
+
var [drawerOpen, setDrawerOpen] = (0, import_react2.useState)(false);
|
|
67
|
+
var resolvedActivePath = activePath !== null && activePath !== void 0 ? activePath : location.path;
|
|
68
|
+
var navigate = onNavigate !== null && onNavigate !== void 0 ? onNavigate : navigator.navigate;
|
|
69
|
+
var sidebarEnabled = capabilities.sidebar.enabled;
|
|
70
|
+
var awesomebarRef = (0, import_react2.useRef)(null);
|
|
71
|
+
(0, import_shortcuts.useBackofficeShortcuts)({
|
|
72
|
+
onFocusSearch: capabilities.awesomebar.enabled ? function () {
|
|
73
|
+
var _awesomebarRef_current;
|
|
74
|
+
return (_awesomebarRef_current = awesomebarRef.current) === null || _awesomebarRef_current === void 0 ? void 0 : _awesomebarRef_current.focus();
|
|
75
|
+
} : void 0
|
|
76
|
+
});
|
|
77
|
+
(0, import_react2.useEffect)(function () {
|
|
78
|
+
if (!isNarrow) setDrawerOpen(false);
|
|
79
|
+
}, [isNarrow]);
|
|
80
|
+
(0, import_react2.useEffect)(function () {
|
|
81
|
+
if (!import_components.isWeb || typeof document === "undefined" || !drawerOpen) return;
|
|
82
|
+
var onKeyDown = function onKeyDown2(event) {
|
|
83
|
+
if (event.key === "Escape") setDrawerOpen(false);
|
|
84
|
+
};
|
|
85
|
+
document.addEventListener("keydown", onKeyDown);
|
|
86
|
+
return function () {
|
|
87
|
+
return document.removeEventListener("keydown", onKeyDown);
|
|
88
|
+
};
|
|
89
|
+
}, [drawerOpen]);
|
|
90
|
+
var handleNavigate = function handleNavigate2(path) {
|
|
91
|
+
if (isNarrow) setDrawerOpen(false);
|
|
92
|
+
navigate(path);
|
|
93
|
+
};
|
|
94
|
+
var surfaceBorderWidth = knobProps.surface.borderWidth;
|
|
95
|
+
var sidebarContent = /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
96
|
+
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_WorkspaceSidebar.WorkspaceSidebar, {
|
|
97
|
+
activePath: resolvedActivePath,
|
|
98
|
+
onNavigate: handleNavigate
|
|
99
|
+
}), (_slots_renderSidebarFooter = slots.renderSidebarFooter) === null || _slots_renderSidebarFooter === void 0 ? void 0 : _slots_renderSidebarFooter.call(slots)]
|
|
100
|
+
});
|
|
101
|
+
var headerContent = /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
102
|
+
children: [isNarrow && sidebarEnabled && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Button, {
|
|
103
|
+
chromeless: true,
|
|
104
|
+
circular: true,
|
|
105
|
+
size: "$3",
|
|
106
|
+
icon: drawerOpen ? import_react.XIcon : import_react.ListIcon,
|
|
107
|
+
"aria-label": t("shell.toggleSidebar", "Toggle sidebar"),
|
|
108
|
+
"aria-expanded": drawerOpen,
|
|
109
|
+
onPress: function onPress() {
|
|
110
|
+
return setDrawerOpen(function (open) {
|
|
111
|
+
return !open;
|
|
112
|
+
});
|
|
113
|
+
},
|
|
114
|
+
"data-testid": "backoffice-sidebar-toggle"
|
|
115
|
+
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Button, {
|
|
116
|
+
chromeless: true,
|
|
117
|
+
size: "$3",
|
|
118
|
+
paddingHorizontal: "$2",
|
|
119
|
+
onPress: function onPress() {
|
|
120
|
+
return handleNavigate(paths.home());
|
|
121
|
+
},
|
|
122
|
+
"aria-label": t("shell.home", "Home"),
|
|
123
|
+
"data-testid": "backoffice-home",
|
|
124
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.SizableText, {
|
|
125
|
+
size: "$5",
|
|
126
|
+
fontWeight: "700",
|
|
127
|
+
children: t("shell.title", "Backoffice")
|
|
128
|
+
})
|
|
129
|
+
}),
|
|
130
|
+
/* Centered awesomebar (the flex spacer keeps the right chrome pinned
|
|
131
|
+
when the awesomebar capability is off) */
|
|
132
|
+
/* @__PURE__ */
|
|
133
|
+
(0, import_jsx_runtime.jsx)(import_components.XStack, {
|
|
134
|
+
flex: 1,
|
|
135
|
+
minWidth: 0,
|
|
136
|
+
justifyContent: "center",
|
|
137
|
+
children: capabilities.awesomebar.enabled && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
|
|
138
|
+
flex: 1,
|
|
139
|
+
maxWidth: 560,
|
|
140
|
+
minWidth: 0,
|
|
141
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_BackofficeAwesomebar.BackofficeAwesomebar, {
|
|
142
|
+
focusRef: awesomebarRef
|
|
143
|
+
})
|
|
144
|
+
})
|
|
145
|
+
}), /* Right chrome */
|
|
146
|
+
/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
|
|
147
|
+
alignItems: "center",
|
|
148
|
+
gap: "$1",
|
|
149
|
+
flexShrink: 0,
|
|
150
|
+
children: [capabilities.notifications.enabled && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_NotificationsButton.NotificationsButton, {}), capabilities.help.enabled && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_HelpMenu.HelpMenu, {}), capabilities.userMenu.enabled && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_UserMenu.UserMenu, {})]
|
|
151
|
+
})]
|
|
152
|
+
});
|
|
153
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
|
|
154
|
+
flex: 1,
|
|
155
|
+
height: "100%",
|
|
156
|
+
width: "100%",
|
|
157
|
+
overflow: "hidden",
|
|
158
|
+
"data-testid": "backoffice-shell",
|
|
159
|
+
children: [/* Top navbar */
|
|
160
|
+
/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
|
|
161
|
+
role: "banner",
|
|
162
|
+
...knobProps.surface,
|
|
163
|
+
// Surface knobs paint a full box border; keep only the bottom edge
|
|
164
|
+
// (DeskShell precedent, SB-M-1708).
|
|
165
|
+
borderWidth: 0,
|
|
166
|
+
borderBottomWidth: surfaceBorderWidth,
|
|
167
|
+
borderBottomColor: knobProps.surface.borderColor,
|
|
168
|
+
alignItems: "center",
|
|
169
|
+
paddingHorizontal: "$3",
|
|
170
|
+
paddingVertical: "$2",
|
|
171
|
+
gap: "$2",
|
|
172
|
+
flexShrink: 0,
|
|
173
|
+
children: slots.renderShellHeader ? slots.renderShellHeader({
|
|
174
|
+
defaultContent: headerContent
|
|
175
|
+
}) : headerContent
|
|
176
|
+
}), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
|
|
177
|
+
flex: 1,
|
|
178
|
+
minWidth: 0,
|
|
179
|
+
position: "relative",
|
|
180
|
+
overflow: "hidden",
|
|
181
|
+
children: [/* Desktop rail — in flow */
|
|
182
|
+
sidebarEnabled && !isNarrow && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
|
|
183
|
+
role: "navigation",
|
|
184
|
+
flexShrink: 0,
|
|
185
|
+
"data-testid": "backoffice-sidebar-rail",
|
|
186
|
+
children: sidebarContent
|
|
187
|
+
}), /* Narrow drawer + scrim */
|
|
188
|
+
sidebarEnabled && isNarrow && drawerOpen && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
189
|
+
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
|
|
190
|
+
position: "absolute",
|
|
191
|
+
top: 0,
|
|
192
|
+
left: 0,
|
|
193
|
+
right: 0,
|
|
194
|
+
bottom: 0,
|
|
195
|
+
backgroundColor: "$shadowColor",
|
|
196
|
+
opacity: 0.5,
|
|
197
|
+
zIndex: 10,
|
|
198
|
+
onPress: function onPress() {
|
|
199
|
+
return setDrawerOpen(false);
|
|
200
|
+
},
|
|
201
|
+
"data-testid": "backoffice-sidebar-scrim"
|
|
202
|
+
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
|
|
203
|
+
role: "navigation",
|
|
204
|
+
position: "absolute",
|
|
205
|
+
top: 0,
|
|
206
|
+
left: 0,
|
|
207
|
+
bottom: 0,
|
|
208
|
+
zIndex: 11,
|
|
209
|
+
backgroundColor: "$background",
|
|
210
|
+
"data-testid": "backoffice-sidebar-drawer",
|
|
211
|
+
children: sidebarContent
|
|
212
|
+
})]
|
|
213
|
+
}), /* Routed content — pages own their own headers/breadcrumbs */
|
|
214
|
+
/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
|
|
215
|
+
role: "main",
|
|
216
|
+
flex: 1,
|
|
217
|
+
minWidth: 0,
|
|
218
|
+
children
|
|
219
|
+
})]
|
|
220
|
+
})]
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=BackofficeShell.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","BackofficeShell_exports","BackofficeShell","module","exports","import_jsx_runtime","require","import_components","import_theme","import_react","import_react2","import_react_i18next","import_BackofficeAwesomebar","import_HelpMenu","import_NotificationsButton","import_shortcuts","import_UserMenu","import_BackofficeProvider","import_i18n","import_WorkspaceSidebar","useIsNarrow","useLayoutSizeClass","param","children","activePath","onNavigate","_slots_renderSidebarFooter","t","useTranslation","BACKOFFICE_I18N_NAMESPACE","knobProps","useResolvedKnobs","capabilities","useBackofficeCapabilities","slots","useBackofficeSlots","navigator","useBackofficeNavigator","location","useBackofficeLocation","paths","useBackofficePaths","isNarrow","drawerOpen","setDrawerOpen","useState","resolvedActivePath","path","navigate","sidebarEnabled","sidebar","enabled","awesomebarRef","useRef","useBackofficeShortcuts","onFocusSearch","awesomebar","_awesomebarRef_current","current","focus","useEffect","isWeb","document","onKeyDown","onKeyDown2","event","addEventListener","removeEventListener","handleNavigate","handleNavigate2","surfaceBorderWidth","surface","borderWidth","sidebarContent","jsxs","Fragment","jsx","WorkspaceSidebar","renderSidebarFooter","headerContent","Button","chromeless","circular","size","icon","XIcon","ListIcon","onPress","open","paddingHorizontal","home","SizableText","fontWeight","XStack","flex","minWidth","justifyContent","maxWidth","BackofficeAwesomebar","focusRef","alignItems","gap","flexShrink","notifications","NotificationsButton","help","HelpMenu","userMenu","UserMenu"],"sources":["../../../src/shell/BackofficeShell.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Sidebar, Spinner, XStack, YStack } from "@multiplatform.one/components";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import { useBackofficePaths } from "../config/BackofficeProvider.mjs";
|
|
5
|
+
import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.mjs";
|
|
6
|
+
import { useWorkspaces } from "./useWorkspaces.mjs";
|
|
7
|
+
import { workspaceIcon } from "./workspaceIcons.mjs";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
const WORKSPACE_SIDEBAR_WIDTH = 250;
|
|
10
|
+
function workspaceItem(workspace, depth, paths, activePath, onNavigate) {
|
|
11
|
+
const path = paths.workspace(workspace.name);
|
|
12
|
+
const IconComponent = workspaceIcon(workspace.icon);
|
|
13
|
+
const icon =
|
|
14
|
+
// Depth-based inset carried by the icon slot — the Sidebar row API has
|
|
15
|
+
// no nesting support, so children indent icon+label via this wrapper.
|
|
16
|
+
/* @__PURE__ */
|
|
17
|
+
jsx(XStack, {
|
|
18
|
+
paddingLeft: depth > 0 ? depth * 16 : 0,
|
|
19
|
+
children: /* @__PURE__ */jsx(IconComponent, {
|
|
20
|
+
size: 16
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
label: workspace.title || workspace.name,
|
|
25
|
+
value: path,
|
|
26
|
+
icon,
|
|
27
|
+
active: activePath === path,
|
|
28
|
+
onPress: onNavigate ? () => onNavigate(path) : void 0
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function flattenTree(roots, childrenByParent, paths, activePath, onNavigate, depth = 0) {
|
|
32
|
+
const items = [];
|
|
33
|
+
for (const workspace of roots) {
|
|
34
|
+
items.push(workspaceItem(workspace, depth, paths, activePath, onNavigate));
|
|
35
|
+
const children = childrenByParent.get(workspace.name);
|
|
36
|
+
if (children?.length) {
|
|
37
|
+
items.push(...flattenTree(children, childrenByParent, paths, activePath, onNavigate, depth + 1));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return items;
|
|
41
|
+
}
|
|
42
|
+
function WorkspaceSidebar({
|
|
43
|
+
activePath,
|
|
44
|
+
onNavigate
|
|
45
|
+
}) {
|
|
46
|
+
const {
|
|
47
|
+
t
|
|
48
|
+
} = useTranslation(BACKOFFICE_I18N_NAMESPACE);
|
|
49
|
+
const paths = useBackofficePaths();
|
|
50
|
+
const {
|
|
51
|
+
privateWorkspaces,
|
|
52
|
+
publicRoots,
|
|
53
|
+
childrenByParent,
|
|
54
|
+
isLoading
|
|
55
|
+
} = useWorkspaces();
|
|
56
|
+
const sections = useMemo(() => {
|
|
57
|
+
const result = [];
|
|
58
|
+
if (privateWorkspaces.length > 0) {
|
|
59
|
+
result.push({
|
|
60
|
+
title: t("sidebar.private", "Private"),
|
|
61
|
+
items: privateWorkspaces.map(workspace => workspaceItem(workspace, 0, paths, activePath, onNavigate))
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (publicRoots.length > 0) {
|
|
65
|
+
result.push({
|
|
66
|
+
title: t("sidebar.public", "Public"),
|
|
67
|
+
items: flattenTree(publicRoots, childrenByParent, paths, activePath, onNavigate)
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
}, [privateWorkspaces, publicRoots, childrenByParent, paths, activePath, onNavigate, t]);
|
|
72
|
+
if (isLoading && sections.length === 0) {
|
|
73
|
+
return /* @__PURE__ */jsx(YStack, {
|
|
74
|
+
width: WORKSPACE_SIDEBAR_WIDTH,
|
|
75
|
+
alignItems: "center",
|
|
76
|
+
paddingTop: "$6",
|
|
77
|
+
"aria-label": t("sidebar.loading", "Loading workspaces"),
|
|
78
|
+
children: /* @__PURE__ */jsx(Spinner, {
|
|
79
|
+
size: "small"
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return /* @__PURE__ */jsx(Sidebar, {
|
|
84
|
+
sections,
|
|
85
|
+
width: WORKSPACE_SIDEBAR_WIDTH
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
export { WORKSPACE_SIDEBAR_WIDTH, WorkspaceSidebar };
|
|
89
|
+
//# sourceMappingURL=WorkspaceSidebar.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Sidebar","Spinner","XStack","YStack","useMemo","useTranslation","useBackofficePaths","BACKOFFICE_I18N_NAMESPACE","useWorkspaces","workspaceIcon","jsx","WORKSPACE_SIDEBAR_WIDTH","workspaceItem","workspace","depth","paths","activePath","onNavigate","path","name","IconComponent","icon","paddingLeft","children","size","label","title","value","active","onPress","flattenTree","roots","childrenByParent","items","push","get","length","WorkspaceSidebar","t","privateWorkspaces","publicRoots","isLoading","sections","result","map","width","alignItems","paddingTop"],"sources":["../../../src/shell/WorkspaceSidebar.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|