@multiplatform.one/backoffice 6.7.0 → 7.1.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/dist/cjs/chrome/BackofficeAwesomebar.cjs +1 -0
- package/dist/cjs/chrome/BackofficeAwesomebar.native.js +1 -0
- package/dist/cjs/chrome/BackofficeAwesomebar.native.js.map +1 -1
- package/dist/cjs/chrome/CommandPalette.cjs +95 -18
- package/dist/cjs/chrome/CommandPalette.native.js +114 -31
- package/dist/cjs/chrome/CommandPalette.native.js.map +1 -1
- package/dist/cjs/chrome/HelpMenu.cjs +40 -55
- package/dist/cjs/chrome/HelpMenu.native.js +50 -66
- package/dist/cjs/chrome/HelpMenu.native.js.map +1 -1
- package/dist/cjs/chrome/awesomebar-data.cjs +51 -8
- package/dist/cjs/chrome/awesomebar-data.native.js +58 -10
- package/dist/cjs/chrome/awesomebar-data.native.js.map +1 -1
- package/dist/cjs/chrome/command-palette-model.cjs +1 -2
- package/dist/cjs/chrome/command-palette-model.native.js +1 -2
- package/dist/cjs/chrome/command-palette-model.native.js.map +1 -1
- package/dist/cjs/chrome/notifications-data.cjs +2 -0
- package/dist/cjs/chrome/notifications-data.native.js +2 -0
- package/dist/cjs/chrome/notifications-data.native.js.map +1 -1
- package/dist/cjs/chrome/notifications-panel.cjs +14 -4
- package/dist/cjs/chrome/notifications-panel.native.js +16 -4
- package/dist/cjs/chrome/notifications-panel.native.js.map +1 -1
- package/dist/cjs/chrome/shortcuts.native.js.map +1 -1
- package/dist/cjs/config/BackofficeProvider.cjs +2 -0
- package/dist/cjs/config/BackofficeProvider.native.js +2 -0
- package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
- package/dist/cjs/form/DocFormScreen.cjs +123 -14
- package/dist/cjs/form/DocFormScreen.native.js +147 -14
- package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
- package/dist/cjs/form/FormConnections.cjs +37 -5
- package/dist/cjs/form/FormConnections.native.js +36 -5
- package/dist/cjs/form/FormConnections.native.js.map +1 -1
- package/dist/cjs/form/FormDialogs.cjs +104 -0
- package/dist/cjs/form/FormDialogs.native.js +110 -0
- package/dist/cjs/form/FormDialogs.native.js.map +1 -1
- package/dist/cjs/form/FormErrorBoundary.cjs +26 -5
- package/dist/cjs/form/FormErrorBoundary.native.js +25 -5
- package/dist/cjs/form/FormErrorBoundary.native.js.map +1 -1
- package/dist/cjs/form/FormSidebarPanel.cjs +71 -22
- package/dist/cjs/form/FormSidebarPanel.native.js +70 -22
- package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
- package/dist/cjs/form/FormTimeline.cjs +133 -22
- package/dist/cjs/form/FormTimeline.native.js +171 -24
- package/dist/cjs/form/FormTimeline.native.js.map +1 -1
- package/dist/cjs/form/FormToolbar.cjs +50 -4
- package/dist/cjs/form/FormToolbar.native.js +50 -4
- package/dist/cjs/form/FormToolbar.native.js.map +1 -1
- package/dist/cjs/form/formActions.native.js.map +1 -1
- package/dist/cjs/form/formLayout.cjs +3 -13
- package/dist/cjs/form/formLayout.native.js +7 -13
- package/dist/cjs/form/formLayout.native.js.map +1 -1
- package/dist/cjs/form/platformHooks.cjs +48 -0
- package/dist/cjs/form/platformHooks.native.js +52 -0
- package/dist/cjs/form/platformHooks.native.js.map +1 -1
- package/dist/cjs/form/timeline-entries.cjs +56 -13
- package/dist/cjs/form/timeline-entries.native.js +58 -16
- package/dist/cjs/form/timeline-entries.native.js.map +1 -1
- package/dist/cjs/i18n/en.cjs +31 -9
- package/dist/cjs/i18n/en.native.js +31 -9
- package/dist/cjs/i18n/en.native.js.map +1 -1
- package/dist/cjs/index.cjs +13 -1
- package/dist/cjs/index.native.js +13 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/list/AddTagsDialog.cjs +12 -7
- package/dist/cjs/list/AddTagsDialog.native.js +12 -7
- package/dist/cjs/list/AddTagsDialog.native.js.map +1 -1
- package/dist/cjs/list/AssignToDialog.cjs +7 -4
- package/dist/cjs/list/AssignToDialog.native.js +7 -4
- package/dist/cjs/list/AssignToDialog.native.js.map +1 -1
- package/dist/cjs/list/DoctypeListScreen.cjs +124 -153
- package/dist/cjs/list/DoctypeListScreen.native.js +152 -198
- package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
- package/dist/cjs/list/ListFilterBar.cjs +60 -41
- package/dist/cjs/list/ListFilterBar.native.js +62 -41
- package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
- package/dist/cjs/list/ListSidebar.cjs +15 -13
- package/dist/cjs/list/ListSidebar.native.js +17 -17
- package/dist/cjs/list/ListSidebar.native.js.map +1 -1
- package/dist/cjs/list/bulk-edit-dialog.cjs +12 -7
- package/dist/cjs/list/bulk-edit-dialog.native.js +12 -7
- package/dist/cjs/list/bulk-edit-dialog.native.js.map +1 -1
- package/dist/cjs/list/filter-fields.cjs +23 -1
- package/dist/cjs/list/filter-fields.native.js +28 -1
- package/dist/cjs/list/filter-fields.native.js.map +1 -1
- package/dist/cjs/list/filter-saved.cjs +4 -4
- package/dist/cjs/list/filter-saved.native.js +4 -7
- package/dist/cjs/list/filter-saved.native.js.map +1 -1
- package/dist/cjs/list/filter-sort.cjs +2 -1
- package/dist/cjs/list/filter-sort.native.js +2 -1
- package/dist/cjs/list/filter-sort.native.js.map +1 -1
- package/dist/cjs/list/filter-standard.cjs +1 -1
- package/dist/cjs/list/filter-standard.native.js +1 -1
- package/dist/cjs/list/listColumns.cjs +258 -109
- package/dist/cjs/list/listColumns.native.js +263 -118
- package/dist/cjs/list/listColumns.native.js.map +1 -1
- package/dist/cjs/list/listFields.cjs +6 -1
- package/dist/cjs/list/listFields.native.js +8 -1
- package/dist/cjs/list/listFields.native.js.map +1 -1
- package/dist/cjs/list/sidebar-section.cjs +57 -19
- package/dist/cjs/list/sidebar-section.native.js +60 -19
- package/dist/cjs/list/sidebar-section.native.js.map +1 -1
- package/dist/cjs/oneAdapter/index.cjs +5 -1
- package/dist/cjs/oneAdapter/index.native.js +8 -1
- package/dist/cjs/oneAdapter/index.native.js.map +1 -1
- package/dist/cjs/quickEntry/quickEntryPlan.cjs +2 -6
- package/dist/cjs/quickEntry/quickEntryPlan.native.js +4 -6
- package/dist/cjs/quickEntry/quickEntryPlan.native.js.map +1 -1
- package/dist/cjs/report/QueryReportScreen.cjs +103 -94
- package/dist/cjs/report/QueryReportScreen.native.js +125 -143
- package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
- package/dist/cjs/report/queryReportColumns.cjs +10 -1
- package/dist/cjs/report/queryReportColumns.native.js +16 -1
- package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
- package/dist/cjs/report/queryReportFilterBar.cjs +274 -0
- package/dist/cjs/report/queryReportFilterBar.native.js +339 -0
- package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -0
- package/dist/cjs/report/queryReportUrlState.cjs +55 -0
- package/dist/cjs/report/queryReportUrlState.native.js +108 -0
- package/dist/cjs/report/queryReportUrlState.native.js.map +1 -0
- package/dist/cjs/report/report-grid.cjs +155 -50
- package/dist/cjs/report/report-grid.native.js +174 -54
- package/dist/cjs/report/report-grid.native.js.map +1 -1
- package/dist/cjs/report/report-toolbar.cjs +1 -6
- package/dist/cjs/report/report-toolbar.native.js +6 -6
- package/dist/cjs/report/report-toolbar.native.js.map +1 -1
- package/dist/cjs/report/reportShapes.cjs +269 -11
- package/dist/cjs/report/reportShapes.native.js +333 -11
- package/dist/cjs/report/reportShapes.native.js.map +1 -1
- package/dist/cjs/report/reportViewModel.cjs +13 -5
- package/dist/cjs/report/reportViewModel.native.js +38 -5
- package/dist/cjs/report/reportViewModel.native.js.map +1 -1
- package/dist/cjs/report/useQueryReport.cjs +48 -17
- package/dist/cjs/report/useQueryReport.native.js +56 -37
- package/dist/cjs/report/useQueryReport.native.js.map +1 -1
- package/dist/cjs/shared/deskLinks.cjs +39 -0
- package/dist/cjs/shared/deskLinks.native.js +43 -0
- package/dist/cjs/shared/deskLinks.native.js.map +1 -0
- package/dist/cjs/shared/listNavContext.cjs +102 -0
- package/dist/cjs/shared/listNavContext.native.js +130 -0
- package/dist/cjs/shared/listNavContext.native.js.map +1 -0
- package/dist/cjs/shared/useDocinfo.cjs +42 -2
- package/dist/cjs/shared/useDocinfo.native.js +82 -2
- package/dist/cjs/shared/useDocinfo.native.js.map +1 -1
- package/dist/cjs/shared/useDoctypeMeta.native.js.map +1 -1
- package/dist/cjs/shared/useFrappeApp.cjs +10 -5
- package/dist/cjs/shared/useFrappeApp.native.js +10 -5
- package/dist/cjs/shared/useFrappeApp.native.js.map +1 -1
- package/dist/cjs/shell/BackofficeShell.cjs +83 -20
- package/dist/cjs/shell/BackofficeShell.native.js +89 -24
- package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
- package/dist/cjs/shell/WorkspaceSidebar.cjs +113 -4
- package/dist/cjs/shell/WorkspaceSidebar.native.js +120 -4
- package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
- package/dist/cjs/shell/useWorkspaces.cjs +2 -0
- package/dist/cjs/shell/useWorkspaces.native.js +2 -0
- package/dist/cjs/shell/useWorkspaces.native.js.map +1 -1
- package/dist/cjs/shell/workspaceIcons.cjs +12 -2
- package/dist/cjs/shell/workspaceIcons.native.js +35 -2
- package/dist/cjs/shell/workspaceIcons.native.js.map +1 -1
- package/dist/cjs/views/CalendarView.cjs +1 -4
- package/dist/cjs/views/CalendarView.native.js +1 -6
- package/dist/cjs/views/CalendarView.native.js.map +1 -1
- package/dist/cjs/views/DoctypeViewScreen.cjs +7 -3
- package/dist/cjs/views/DoctypeViewScreen.native.js +7 -3
- package/dist/cjs/views/DoctypeViewScreen.native.js.map +1 -1
- package/dist/cjs/views/KanbanView.cjs +2 -0
- package/dist/cjs/views/KanbanView.native.js +2 -0
- package/dist/cjs/views/KanbanView.native.js.map +1 -1
- package/dist/cjs/views/ViewHeader.cjs +45 -74
- package/dist/cjs/views/ViewHeader.native.js +51 -78
- package/dist/cjs/views/ViewHeader.native.js.map +1 -1
- package/dist/cjs/views/ViewSwitcherMenu.cjs +95 -0
- package/dist/cjs/views/ViewSwitcherMenu.native.js +99 -0
- package/dist/cjs/views/ViewSwitcherMenu.native.js.map +1 -0
- package/dist/cjs/views/connection.cjs +5 -1
- package/dist/cjs/views/connection.native.js +5 -1
- package/dist/cjs/views/connection.native.js.map +1 -1
- package/dist/cjs/views/dashboard-data.cjs +1 -2
- package/dist/cjs/views/dashboard-data.native.js +1 -4
- package/dist/cjs/views/dashboard-data.native.js.map +1 -1
- package/dist/cjs/views/kanban-board-controls.cjs +4 -9
- package/dist/cjs/views/kanban-board-controls.native.js +9 -10
- package/dist/cjs/views/kanban-board-controls.native.js.map +1 -1
- package/dist/cjs/views/viewAvailability.cjs +59 -0
- package/dist/cjs/views/viewAvailability.native.js +63 -0
- package/dist/cjs/views/viewAvailability.native.js.map +1 -0
- package/dist/cjs/workspace/WorkspaceLinkCard.cjs +120 -25
- package/dist/cjs/workspace/WorkspaceLinkCard.native.js +126 -28
- package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceLinkDirectory.cjs +27 -21
- package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +32 -23
- package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceNumberCard.cjs +1 -1
- package/dist/cjs/workspace/WorkspaceNumberCard.native.js +1 -1
- package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceQuickList.cjs +61 -29
- package/dist/cjs/workspace/WorkspaceQuickList.native.js +65 -32
- package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceRecents.cjs +8 -0
- package/dist/cjs/workspace/WorkspaceRecents.native.js +8 -0
- package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
- package/dist/cjs/workspace/WorkspaceShortcut.cjs +10 -0
- package/dist/cjs/workspace/WorkspaceShortcut.native.js +10 -0
- package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
- package/dist/cjs/workspace/parseContent.cjs +22 -0
- package/dist/cjs/workspace/parseContent.native.js +24 -0
- package/dist/cjs/workspace/parseContent.native.js.map +1 -1
- package/dist/esm/chrome/BackofficeAwesomebar.mjs +1 -0
- package/dist/esm/chrome/BackofficeAwesomebar.mjs.map +1 -1
- package/dist/esm/chrome/BackofficeAwesomebar.native.js +1 -0
- package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -1
- package/dist/esm/chrome/CommandPalette.mjs +96 -19
- package/dist/esm/chrome/CommandPalette.mjs.map +1 -1
- package/dist/esm/chrome/CommandPalette.native.js +115 -32
- package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
- package/dist/esm/chrome/HelpMenu.mjs +41 -56
- package/dist/esm/chrome/HelpMenu.mjs.map +1 -1
- package/dist/esm/chrome/HelpMenu.native.js +51 -67
- package/dist/esm/chrome/HelpMenu.native.js.map +1 -1
- package/dist/esm/chrome/awesomebar-data.mjs +51 -9
- package/dist/esm/chrome/awesomebar-data.mjs.map +1 -1
- package/dist/esm/chrome/awesomebar-data.native.js +58 -11
- package/dist/esm/chrome/awesomebar-data.native.js.map +1 -1
- package/dist/esm/chrome/command-palette-model.mjs +2 -3
- package/dist/esm/chrome/command-palette-model.mjs.map +1 -1
- package/dist/esm/chrome/command-palette-model.native.js +2 -3
- package/dist/esm/chrome/command-palette-model.native.js.map +1 -1
- package/dist/esm/chrome/notifications-data.mjs +2 -0
- package/dist/esm/chrome/notifications-data.mjs.map +1 -1
- package/dist/esm/chrome/notifications-data.native.js +2 -0
- package/dist/esm/chrome/notifications-data.native.js.map +1 -1
- package/dist/esm/chrome/notifications-panel.mjs +15 -5
- package/dist/esm/chrome/notifications-panel.mjs.map +1 -1
- package/dist/esm/chrome/notifications-panel.native.js +17 -5
- package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
- package/dist/esm/chrome/shortcuts.mjs.map +1 -1
- package/dist/esm/chrome/shortcuts.native.js.map +1 -1
- package/dist/esm/config/BackofficeProvider.mjs +2 -0
- package/dist/esm/config/BackofficeProvider.mjs.map +1 -1
- package/dist/esm/config/BackofficeProvider.native.js +2 -0
- package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
- package/dist/esm/form/DocFormScreen.mjs +126 -17
- package/dist/esm/form/DocFormScreen.mjs.map +1 -1
- package/dist/esm/form/DocFormScreen.native.js +150 -17
- package/dist/esm/form/DocFormScreen.native.js.map +1 -1
- package/dist/esm/form/FormConnections.mjs +38 -6
- package/dist/esm/form/FormConnections.mjs.map +1 -1
- package/dist/esm/form/FormConnections.native.js +37 -6
- package/dist/esm/form/FormConnections.native.js.map +1 -1
- package/dist/esm/form/FormDialogs.mjs +107 -4
- package/dist/esm/form/FormDialogs.mjs.map +1 -1
- package/dist/esm/form/FormDialogs.native.js +113 -4
- package/dist/esm/form/FormDialogs.native.js.map +1 -1
- package/dist/esm/form/FormErrorBoundary.mjs +28 -7
- package/dist/esm/form/FormErrorBoundary.mjs.map +1 -1
- package/dist/esm/form/FormErrorBoundary.native.js +27 -7
- package/dist/esm/form/FormErrorBoundary.native.js.map +1 -1
- package/dist/esm/form/FormSidebarPanel.mjs +71 -23
- package/dist/esm/form/FormSidebarPanel.mjs.map +1 -1
- package/dist/esm/form/FormSidebarPanel.native.js +70 -23
- package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
- package/dist/esm/form/FormTimeline.mjs +136 -25
- package/dist/esm/form/FormTimeline.mjs.map +1 -1
- package/dist/esm/form/FormTimeline.native.js +174 -27
- package/dist/esm/form/FormTimeline.native.js.map +1 -1
- package/dist/esm/form/FormToolbar.mjs +51 -5
- package/dist/esm/form/FormToolbar.mjs.map +1 -1
- package/dist/esm/form/FormToolbar.native.js +51 -5
- package/dist/esm/form/FormToolbar.native.js.map +1 -1
- package/dist/esm/form/formActions.mjs.map +1 -1
- package/dist/esm/form/formActions.native.js.map +1 -1
- package/dist/esm/form/formLayout.mjs +3 -13
- package/dist/esm/form/formLayout.mjs.map +1 -1
- package/dist/esm/form/formLayout.native.js +7 -13
- package/dist/esm/form/formLayout.native.js.map +1 -1
- package/dist/esm/form/platformHooks.mjs +47 -1
- package/dist/esm/form/platformHooks.mjs.map +1 -1
- package/dist/esm/form/platformHooks.native.js +51 -1
- package/dist/esm/form/platformHooks.native.js.map +1 -1
- package/dist/esm/form/timeline-entries.mjs +56 -13
- package/dist/esm/form/timeline-entries.mjs.map +1 -1
- package/dist/esm/form/timeline-entries.native.js +58 -16
- package/dist/esm/form/timeline-entries.native.js.map +1 -1
- package/dist/esm/i18n/en.mjs +31 -9
- package/dist/esm/i18n/en.mjs.map +1 -1
- package/dist/esm/i18n/en.native.js +31 -9
- package/dist/esm/i18n/en.native.js.map +1 -1
- package/dist/esm/index.mjs +6 -3
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +6 -3
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/list/AddTagsDialog.mjs +12 -7
- package/dist/esm/list/AddTagsDialog.mjs.map +1 -1
- package/dist/esm/list/AddTagsDialog.native.js +12 -7
- package/dist/esm/list/AddTagsDialog.native.js.map +1 -1
- package/dist/esm/list/AssignToDialog.mjs +7 -4
- package/dist/esm/list/AssignToDialog.mjs.map +1 -1
- package/dist/esm/list/AssignToDialog.native.js +7 -4
- package/dist/esm/list/AssignToDialog.native.js.map +1 -1
- package/dist/esm/list/DoctypeListScreen.mjs +127 -156
- package/dist/esm/list/DoctypeListScreen.mjs.map +1 -1
- package/dist/esm/list/DoctypeListScreen.native.js +155 -201
- package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
- package/dist/esm/list/ListFilterBar.mjs +60 -41
- package/dist/esm/list/ListFilterBar.mjs.map +1 -1
- package/dist/esm/list/ListFilterBar.native.js +62 -41
- package/dist/esm/list/ListFilterBar.native.js.map +1 -1
- package/dist/esm/list/ListSidebar.mjs +16 -14
- package/dist/esm/list/ListSidebar.mjs.map +1 -1
- package/dist/esm/list/ListSidebar.native.js +18 -18
- package/dist/esm/list/ListSidebar.native.js.map +1 -1
- package/dist/esm/list/bulk-edit-dialog.mjs +12 -7
- package/dist/esm/list/bulk-edit-dialog.mjs.map +1 -1
- package/dist/esm/list/bulk-edit-dialog.native.js +12 -7
- package/dist/esm/list/bulk-edit-dialog.native.js.map +1 -1
- package/dist/esm/list/filter-fields.mjs +23 -1
- package/dist/esm/list/filter-fields.mjs.map +1 -1
- package/dist/esm/list/filter-fields.native.js +28 -1
- package/dist/esm/list/filter-fields.native.js.map +1 -1
- package/dist/esm/list/filter-saved.mjs +4 -4
- package/dist/esm/list/filter-saved.mjs.map +1 -1
- package/dist/esm/list/filter-saved.native.js +4 -7
- package/dist/esm/list/filter-saved.native.js.map +1 -1
- package/dist/esm/list/filter-sort.mjs +2 -1
- package/dist/esm/list/filter-sort.mjs.map +1 -1
- package/dist/esm/list/filter-sort.native.js +2 -1
- package/dist/esm/list/filter-sort.native.js.map +1 -1
- package/dist/esm/list/filter-standard.mjs +1 -1
- package/dist/esm/list/filter-standard.mjs.map +1 -1
- package/dist/esm/list/filter-standard.native.js +1 -1
- package/dist/esm/list/filter-standard.native.js.map +1 -1
- package/dist/esm/list/listColumns.mjs +261 -112
- package/dist/esm/list/listColumns.mjs.map +1 -1
- package/dist/esm/list/listColumns.native.js +266 -121
- package/dist/esm/list/listColumns.native.js.map +1 -1
- package/dist/esm/list/listFields.mjs +6 -2
- package/dist/esm/list/listFields.mjs.map +1 -1
- package/dist/esm/list/listFields.native.js +8 -2
- package/dist/esm/list/listFields.native.js.map +1 -1
- package/dist/esm/list/sidebar-section.mjs +58 -21
- package/dist/esm/list/sidebar-section.mjs.map +1 -1
- package/dist/esm/list/sidebar-section.native.js +61 -21
- package/dist/esm/list/sidebar-section.native.js.map +1 -1
- package/dist/esm/oneAdapter/index.mjs +5 -1
- package/dist/esm/oneAdapter/index.mjs.map +1 -1
- package/dist/esm/oneAdapter/index.native.js +8 -1
- package/dist/esm/oneAdapter/index.native.js.map +1 -1
- package/dist/esm/quickEntry/quickEntryPlan.mjs +2 -6
- package/dist/esm/quickEntry/quickEntryPlan.mjs.map +1 -1
- package/dist/esm/quickEntry/quickEntryPlan.native.js +4 -6
- package/dist/esm/quickEntry/quickEntryPlan.native.js.map +1 -1
- package/dist/esm/report/QueryReportScreen.mjs +103 -94
- package/dist/esm/report/QueryReportScreen.mjs.map +1 -1
- package/dist/esm/report/QueryReportScreen.native.js +125 -143
- package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
- package/dist/esm/report/queryReportColumns.mjs +9 -1
- package/dist/esm/report/queryReportColumns.mjs.map +1 -1
- package/dist/esm/report/queryReportColumns.native.js +15 -1
- package/dist/esm/report/queryReportColumns.native.js.map +1 -1
- package/dist/esm/report/queryReportFilterBar.mjs +246 -0
- package/dist/esm/report/queryReportFilterBar.mjs.map +1 -0
- package/dist/esm/report/queryReportFilterBar.native.js +308 -0
- package/dist/esm/report/queryReportFilterBar.native.js.map +1 -0
- package/dist/esm/report/queryReportUrlState.mjs +29 -0
- package/dist/esm/report/queryReportUrlState.mjs.map +1 -0
- package/dist/esm/report/queryReportUrlState.native.js +79 -0
- package/dist/esm/report/queryReportUrlState.native.js.map +1 -0
- package/dist/esm/report/report-grid.mjs +158 -53
- package/dist/esm/report/report-grid.mjs.map +1 -1
- package/dist/esm/report/report-grid.native.js +177 -57
- package/dist/esm/report/report-grid.native.js.map +1 -1
- package/dist/esm/report/report-toolbar.mjs +2 -7
- package/dist/esm/report/report-toolbar.mjs.map +1 -1
- package/dist/esm/report/report-toolbar.native.js +7 -7
- package/dist/esm/report/report-toolbar.native.js.map +1 -1
- package/dist/esm/report/reportShapes.mjs +266 -12
- package/dist/esm/report/reportShapes.mjs.map +1 -1
- package/dist/esm/report/reportShapes.native.js +330 -12
- package/dist/esm/report/reportShapes.native.js.map +1 -1
- package/dist/esm/report/reportViewModel.mjs +13 -5
- package/dist/esm/report/reportViewModel.mjs.map +1 -1
- package/dist/esm/report/reportViewModel.native.js +38 -5
- package/dist/esm/report/reportViewModel.native.js.map +1 -1
- package/dist/esm/report/useQueryReport.mjs +46 -20
- package/dist/esm/report/useQueryReport.mjs.map +1 -1
- package/dist/esm/report/useQueryReport.native.js +54 -40
- package/dist/esm/report/useQueryReport.native.js.map +1 -1
- package/dist/esm/shared/deskLinks.mjs +13 -0
- package/dist/esm/shared/deskLinks.mjs.map +1 -0
- package/dist/esm/shared/deskLinks.native.js +14 -0
- package/dist/esm/shared/deskLinks.native.js.map +1 -0
- package/dist/esm/shared/listNavContext.mjs +74 -0
- package/dist/esm/shared/listNavContext.mjs.map +1 -0
- package/dist/esm/shared/listNavContext.native.js +99 -0
- package/dist/esm/shared/listNavContext.native.js.map +1 -0
- package/dist/esm/shared/useDocinfo.mjs +40 -3
- package/dist/esm/shared/useDocinfo.mjs.map +1 -1
- package/dist/esm/shared/useDocinfo.native.js +80 -3
- package/dist/esm/shared/useDocinfo.native.js.map +1 -1
- package/dist/esm/shared/useDoctypeMeta.mjs.map +1 -1
- package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
- package/dist/esm/shared/useFrappeApp.mjs +10 -5
- package/dist/esm/shared/useFrappeApp.mjs.map +1 -1
- package/dist/esm/shared/useFrappeApp.native.js +10 -5
- package/dist/esm/shared/useFrappeApp.native.js.map +1 -1
- package/dist/esm/shell/BackofficeShell.mjs +75 -23
- package/dist/esm/shell/BackofficeShell.mjs.map +1 -1
- package/dist/esm/shell/BackofficeShell.native.js +81 -27
- package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
- package/dist/esm/shell/WorkspaceSidebar.mjs +115 -6
- package/dist/esm/shell/WorkspaceSidebar.mjs.map +1 -1
- package/dist/esm/shell/WorkspaceSidebar.native.js +122 -6
- package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
- package/dist/esm/shell/useWorkspaces.mjs +2 -0
- package/dist/esm/shell/useWorkspaces.mjs.map +1 -1
- package/dist/esm/shell/useWorkspaces.native.js +2 -0
- package/dist/esm/shell/useWorkspaces.native.js.map +1 -1
- package/dist/esm/shell/workspaceIcons.mjs +13 -3
- package/dist/esm/shell/workspaceIcons.mjs.map +1 -1
- package/dist/esm/shell/workspaceIcons.native.js +36 -3
- package/dist/esm/shell/workspaceIcons.native.js.map +1 -1
- package/dist/esm/views/CalendarView.mjs +2 -5
- package/dist/esm/views/CalendarView.mjs.map +1 -1
- package/dist/esm/views/CalendarView.native.js +2 -7
- package/dist/esm/views/CalendarView.native.js.map +1 -1
- package/dist/esm/views/DoctypeViewScreen.mjs +7 -3
- package/dist/esm/views/DoctypeViewScreen.mjs.map +1 -1
- package/dist/esm/views/DoctypeViewScreen.native.js +7 -3
- package/dist/esm/views/DoctypeViewScreen.native.js.map +1 -1
- package/dist/esm/views/KanbanView.mjs +2 -0
- package/dist/esm/views/KanbanView.mjs.map +1 -1
- package/dist/esm/views/KanbanView.native.js +2 -0
- package/dist/esm/views/KanbanView.native.js.map +1 -1
- package/dist/esm/views/ViewHeader.mjs +49 -78
- package/dist/esm/views/ViewHeader.mjs.map +1 -1
- package/dist/esm/views/ViewHeader.native.js +55 -82
- package/dist/esm/views/ViewHeader.native.js.map +1 -1
- package/dist/esm/views/ViewSwitcherMenu.mjs +69 -0
- package/dist/esm/views/ViewSwitcherMenu.mjs.map +1 -0
- package/dist/esm/views/ViewSwitcherMenu.native.js +70 -0
- package/dist/esm/views/ViewSwitcherMenu.native.js.map +1 -0
- package/dist/esm/views/connection.mjs +5 -1
- package/dist/esm/views/connection.mjs.map +1 -1
- package/dist/esm/views/connection.native.js +5 -1
- package/dist/esm/views/connection.native.js.map +1 -1
- package/dist/esm/views/dashboard-data.mjs +2 -3
- package/dist/esm/views/dashboard-data.mjs.map +1 -1
- package/dist/esm/views/dashboard-data.native.js +2 -5
- package/dist/esm/views/dashboard-data.native.js.map +1 -1
- package/dist/esm/views/kanban-board-controls.mjs +4 -9
- package/dist/esm/views/kanban-board-controls.mjs.map +1 -1
- package/dist/esm/views/kanban-board-controls.native.js +9 -10
- package/dist/esm/views/kanban-board-controls.native.js.map +1 -1
- package/dist/esm/views/viewAvailability.mjs +33 -0
- package/dist/esm/views/viewAvailability.mjs.map +1 -0
- package/dist/esm/views/viewAvailability.native.js +34 -0
- package/dist/esm/views/viewAvailability.native.js.map +1 -0
- package/dist/esm/workspace/WorkspaceLinkCard.mjs +121 -26
- package/dist/esm/workspace/WorkspaceLinkCard.mjs.map +1 -1
- package/dist/esm/workspace/WorkspaceLinkCard.native.js +127 -29
- package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceLinkDirectory.mjs +27 -21
- package/dist/esm/workspace/WorkspaceLinkDirectory.mjs.map +1 -1
- package/dist/esm/workspace/WorkspaceLinkDirectory.native.js +32 -23
- package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceNumberCard.mjs +1 -1
- package/dist/esm/workspace/WorkspaceNumberCard.mjs.map +1 -1
- package/dist/esm/workspace/WorkspaceNumberCard.native.js +1 -1
- package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceQuickList.mjs +62 -30
- package/dist/esm/workspace/WorkspaceQuickList.mjs.map +1 -1
- package/dist/esm/workspace/WorkspaceQuickList.native.js +66 -33
- package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceRecents.mjs +9 -1
- package/dist/esm/workspace/WorkspaceRecents.mjs.map +1 -1
- package/dist/esm/workspace/WorkspaceRecents.native.js +9 -1
- package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
- package/dist/esm/workspace/WorkspaceShortcut.mjs +11 -1
- package/dist/esm/workspace/WorkspaceShortcut.mjs.map +1 -1
- package/dist/esm/workspace/WorkspaceShortcut.native.js +11 -1
- package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
- package/dist/esm/workspace/parseContent.mjs +21 -1
- package/dist/esm/workspace/parseContent.mjs.map +1 -1
- package/dist/esm/workspace/parseContent.native.js +23 -1
- package/dist/esm/workspace/parseContent.native.js.map +1 -1
- package/dist/jsx/chrome/BackofficeAwesomebar.mjs +1 -0
- package/dist/jsx/chrome/BackofficeAwesomebar.mjs.map +1 -1
- package/dist/jsx/chrome/BackofficeAwesomebar.native.js +1 -0
- package/dist/jsx/chrome/BackofficeAwesomebar.native.js.map +1 -1
- package/dist/jsx/chrome/CommandPalette.mjs +96 -19
- package/dist/jsx/chrome/CommandPalette.mjs.map +1 -1
- package/dist/jsx/chrome/CommandPalette.native.js +114 -31
- package/dist/jsx/chrome/CommandPalette.native.js.map +1 -1
- package/dist/jsx/chrome/HelpMenu.mjs +41 -56
- package/dist/jsx/chrome/HelpMenu.mjs.map +1 -1
- package/dist/jsx/chrome/HelpMenu.native.js +50 -66
- package/dist/jsx/chrome/HelpMenu.native.js.map +1 -1
- package/dist/jsx/chrome/awesomebar-data.mjs +51 -9
- package/dist/jsx/chrome/awesomebar-data.mjs.map +1 -1
- package/dist/jsx/chrome/awesomebar-data.native.js +58 -10
- package/dist/jsx/chrome/awesomebar-data.native.js.map +1 -1
- package/dist/jsx/chrome/command-palette-model.mjs +2 -3
- package/dist/jsx/chrome/command-palette-model.mjs.map +1 -1
- package/dist/jsx/chrome/command-palette-model.native.js +1 -2
- package/dist/jsx/chrome/command-palette-model.native.js.map +1 -1
- package/dist/jsx/chrome/notifications-data.mjs +2 -0
- package/dist/jsx/chrome/notifications-data.mjs.map +1 -1
- package/dist/jsx/chrome/notifications-data.native.js +2 -0
- package/dist/jsx/chrome/notifications-data.native.js.map +1 -1
- package/dist/jsx/chrome/notifications-panel.mjs +15 -5
- package/dist/jsx/chrome/notifications-panel.mjs.map +1 -1
- package/dist/jsx/chrome/notifications-panel.native.js +16 -4
- package/dist/jsx/chrome/notifications-panel.native.js.map +1 -1
- package/dist/jsx/chrome/shortcuts.mjs.map +1 -1
- package/dist/jsx/chrome/shortcuts.native.js.map +1 -1
- package/dist/jsx/config/BackofficeProvider.mjs +2 -0
- package/dist/jsx/config/BackofficeProvider.mjs.map +1 -1
- package/dist/jsx/config/BackofficeProvider.native.js +2 -0
- package/dist/jsx/config/BackofficeProvider.native.js.map +1 -1
- package/dist/jsx/form/DocFormScreen.mjs +126 -17
- package/dist/jsx/form/DocFormScreen.mjs.map +1 -1
- package/dist/jsx/form/DocFormScreen.native.js +147 -14
- package/dist/jsx/form/DocFormScreen.native.js.map +1 -1
- package/dist/jsx/form/FormConnections.mjs +38 -6
- package/dist/jsx/form/FormConnections.mjs.map +1 -1
- package/dist/jsx/form/FormConnections.native.js +36 -5
- package/dist/jsx/form/FormConnections.native.js.map +1 -1
- package/dist/jsx/form/FormDialogs.mjs +107 -4
- package/dist/jsx/form/FormDialogs.mjs.map +1 -1
- package/dist/jsx/form/FormDialogs.native.js +110 -0
- package/dist/jsx/form/FormDialogs.native.js.map +1 -1
- package/dist/jsx/form/FormErrorBoundary.mjs +28 -7
- package/dist/jsx/form/FormErrorBoundary.mjs.map +1 -1
- package/dist/jsx/form/FormErrorBoundary.native.js +25 -5
- package/dist/jsx/form/FormErrorBoundary.native.js.map +1 -1
- package/dist/jsx/form/FormSidebarPanel.mjs +71 -23
- package/dist/jsx/form/FormSidebarPanel.mjs.map +1 -1
- package/dist/jsx/form/FormSidebarPanel.native.js +70 -22
- package/dist/jsx/form/FormSidebarPanel.native.js.map +1 -1
- package/dist/jsx/form/FormTimeline.mjs +136 -25
- package/dist/jsx/form/FormTimeline.mjs.map +1 -1
- package/dist/jsx/form/FormTimeline.native.js +171 -24
- package/dist/jsx/form/FormTimeline.native.js.map +1 -1
- package/dist/jsx/form/FormToolbar.mjs +51 -5
- package/dist/jsx/form/FormToolbar.mjs.map +1 -1
- package/dist/jsx/form/FormToolbar.native.js +50 -4
- package/dist/jsx/form/FormToolbar.native.js.map +1 -1
- package/dist/jsx/form/formActions.mjs.map +1 -1
- package/dist/jsx/form/formActions.native.js.map +1 -1
- package/dist/jsx/form/formLayout.mjs +3 -13
- package/dist/jsx/form/formLayout.mjs.map +1 -1
- package/dist/jsx/form/formLayout.native.js +7 -13
- package/dist/jsx/form/formLayout.native.js.map +1 -1
- package/dist/jsx/form/platformHooks.mjs +47 -1
- package/dist/jsx/form/platformHooks.mjs.map +1 -1
- package/dist/jsx/form/platformHooks.native.js +52 -0
- package/dist/jsx/form/platformHooks.native.js.map +1 -1
- package/dist/jsx/form/timeline-entries.mjs +56 -13
- package/dist/jsx/form/timeline-entries.mjs.map +1 -1
- package/dist/jsx/form/timeline-entries.native.js +58 -16
- package/dist/jsx/form/timeline-entries.native.js.map +1 -1
- package/dist/jsx/i18n/en.mjs +31 -9
- package/dist/jsx/i18n/en.mjs.map +1 -1
- package/dist/jsx/i18n/en.native.js +31 -9
- package/dist/jsx/i18n/en.native.js.map +1 -1
- package/dist/jsx/index.js +6 -3
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +6 -3
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +13 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/list/AddTagsDialog.mjs +12 -7
- package/dist/jsx/list/AddTagsDialog.mjs.map +1 -1
- package/dist/jsx/list/AddTagsDialog.native.js +12 -7
- package/dist/jsx/list/AddTagsDialog.native.js.map +1 -1
- package/dist/jsx/list/AssignToDialog.mjs +7 -4
- package/dist/jsx/list/AssignToDialog.mjs.map +1 -1
- package/dist/jsx/list/AssignToDialog.native.js +7 -4
- package/dist/jsx/list/AssignToDialog.native.js.map +1 -1
- package/dist/jsx/list/DoctypeListScreen.mjs +127 -156
- package/dist/jsx/list/DoctypeListScreen.mjs.map +1 -1
- package/dist/jsx/list/DoctypeListScreen.native.js +152 -198
- package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
- package/dist/jsx/list/ListFilterBar.mjs +60 -41
- package/dist/jsx/list/ListFilterBar.mjs.map +1 -1
- package/dist/jsx/list/ListFilterBar.native.js +62 -41
- package/dist/jsx/list/ListFilterBar.native.js.map +1 -1
- package/dist/jsx/list/ListSidebar.mjs +16 -14
- package/dist/jsx/list/ListSidebar.mjs.map +1 -1
- package/dist/jsx/list/ListSidebar.native.js +17 -17
- package/dist/jsx/list/ListSidebar.native.js.map +1 -1
- package/dist/jsx/list/bulk-edit-dialog.mjs +12 -7
- package/dist/jsx/list/bulk-edit-dialog.mjs.map +1 -1
- package/dist/jsx/list/bulk-edit-dialog.native.js +12 -7
- package/dist/jsx/list/bulk-edit-dialog.native.js.map +1 -1
- package/dist/jsx/list/filter-fields.mjs +23 -1
- package/dist/jsx/list/filter-fields.mjs.map +1 -1
- package/dist/jsx/list/filter-fields.native.js +28 -1
- package/dist/jsx/list/filter-fields.native.js.map +1 -1
- package/dist/jsx/list/filter-saved.mjs +4 -4
- package/dist/jsx/list/filter-saved.mjs.map +1 -1
- package/dist/jsx/list/filter-saved.native.js +4 -7
- package/dist/jsx/list/filter-saved.native.js.map +1 -1
- package/dist/jsx/list/filter-sort.mjs +2 -1
- package/dist/jsx/list/filter-sort.mjs.map +1 -1
- package/dist/jsx/list/filter-sort.native.js +2 -1
- package/dist/jsx/list/filter-sort.native.js.map +1 -1
- package/dist/jsx/list/filter-standard.mjs +1 -1
- package/dist/jsx/list/filter-standard.mjs.map +1 -1
- package/dist/jsx/list/filter-standard.native.js +1 -1
- package/dist/jsx/list/filter-standard.native.js.map +1 -1
- package/dist/jsx/list/listColumns.mjs +261 -112
- package/dist/jsx/list/listColumns.mjs.map +1 -1
- package/dist/jsx/list/listColumns.native.js +263 -118
- package/dist/jsx/list/listColumns.native.js.map +1 -1
- package/dist/jsx/list/listFields.mjs +6 -2
- package/dist/jsx/list/listFields.mjs.map +1 -1
- package/dist/jsx/list/listFields.native.js +8 -1
- package/dist/jsx/list/listFields.native.js.map +1 -1
- package/dist/jsx/list/sidebar-section.mjs +58 -21
- package/dist/jsx/list/sidebar-section.mjs.map +1 -1
- package/dist/jsx/list/sidebar-section.native.js +60 -19
- package/dist/jsx/list/sidebar-section.native.js.map +1 -1
- package/dist/jsx/oneAdapter/index.mjs +5 -1
- package/dist/jsx/oneAdapter/index.mjs.map +1 -1
- package/dist/jsx/oneAdapter/index.native.js +8 -1
- package/dist/jsx/oneAdapter/index.native.js.map +1 -1
- package/dist/jsx/quickEntry/quickEntryPlan.mjs +2 -6
- package/dist/jsx/quickEntry/quickEntryPlan.mjs.map +1 -1
- package/dist/jsx/quickEntry/quickEntryPlan.native.js +4 -6
- package/dist/jsx/quickEntry/quickEntryPlan.native.js.map +1 -1
- package/dist/jsx/report/QueryReportScreen.mjs +103 -94
- package/dist/jsx/report/QueryReportScreen.mjs.map +1 -1
- package/dist/jsx/report/QueryReportScreen.native.js +125 -143
- package/dist/jsx/report/QueryReportScreen.native.js.map +1 -1
- package/dist/jsx/report/queryReportColumns.mjs +9 -1
- package/dist/jsx/report/queryReportColumns.mjs.map +1 -1
- package/dist/jsx/report/queryReportColumns.native.js +16 -1
- package/dist/jsx/report/queryReportColumns.native.js.map +1 -1
- package/dist/jsx/report/queryReportFilterBar.mjs +246 -0
- package/dist/jsx/report/queryReportFilterBar.mjs.map +1 -0
- package/dist/jsx/report/queryReportFilterBar.native.js +339 -0
- package/dist/jsx/report/queryReportFilterBar.native.js.map +1 -0
- package/dist/jsx/report/queryReportUrlState.mjs +29 -0
- package/dist/jsx/report/queryReportUrlState.mjs.map +1 -0
- package/dist/jsx/report/queryReportUrlState.native.js +108 -0
- package/dist/jsx/report/queryReportUrlState.native.js.map +1 -0
- package/dist/jsx/report/report-grid.mjs +158 -53
- package/dist/jsx/report/report-grid.mjs.map +1 -1
- package/dist/jsx/report/report-grid.native.js +174 -54
- package/dist/jsx/report/report-grid.native.js.map +1 -1
- package/dist/jsx/report/report-toolbar.mjs +2 -7
- package/dist/jsx/report/report-toolbar.mjs.map +1 -1
- package/dist/jsx/report/report-toolbar.native.js +6 -6
- package/dist/jsx/report/report-toolbar.native.js.map +1 -1
- package/dist/jsx/report/reportShapes.mjs +266 -12
- package/dist/jsx/report/reportShapes.mjs.map +1 -1
- package/dist/jsx/report/reportShapes.native.js +333 -11
- package/dist/jsx/report/reportShapes.native.js.map +1 -1
- package/dist/jsx/report/reportViewModel.mjs +13 -5
- package/dist/jsx/report/reportViewModel.mjs.map +1 -1
- package/dist/jsx/report/reportViewModel.native.js +38 -5
- package/dist/jsx/report/reportViewModel.native.js.map +1 -1
- package/dist/jsx/report/useQueryReport.mjs +46 -20
- package/dist/jsx/report/useQueryReport.mjs.map +1 -1
- package/dist/jsx/report/useQueryReport.native.js +56 -37
- package/dist/jsx/report/useQueryReport.native.js.map +1 -1
- package/dist/jsx/shared/deskLinks.mjs +13 -0
- package/dist/jsx/shared/deskLinks.mjs.map +1 -0
- package/dist/jsx/shared/deskLinks.native.js +43 -0
- package/dist/jsx/shared/deskLinks.native.js.map +1 -0
- package/dist/jsx/shared/listNavContext.mjs +74 -0
- package/dist/jsx/shared/listNavContext.mjs.map +1 -0
- package/dist/jsx/shared/listNavContext.native.js +130 -0
- package/dist/jsx/shared/listNavContext.native.js.map +1 -0
- package/dist/jsx/shared/useDocinfo.mjs +40 -3
- package/dist/jsx/shared/useDocinfo.mjs.map +1 -1
- package/dist/jsx/shared/useDocinfo.native.js +82 -2
- package/dist/jsx/shared/useDocinfo.native.js.map +1 -1
- package/dist/jsx/shared/useDoctypeMeta.mjs.map +1 -1
- package/dist/jsx/shared/useDoctypeMeta.native.js.map +1 -1
- package/dist/jsx/shared/useFrappeApp.mjs +10 -5
- package/dist/jsx/shared/useFrappeApp.mjs.map +1 -1
- package/dist/jsx/shared/useFrappeApp.native.js +10 -5
- package/dist/jsx/shared/useFrappeApp.native.js.map +1 -1
- package/dist/jsx/shell/BackofficeShell.mjs +75 -23
- package/dist/jsx/shell/BackofficeShell.mjs.map +1 -1
- package/dist/jsx/shell/BackofficeShell.native.js +89 -24
- package/dist/jsx/shell/BackofficeShell.native.js.map +1 -1
- package/dist/jsx/shell/WorkspaceSidebar.mjs +115 -6
- package/dist/jsx/shell/WorkspaceSidebar.mjs.map +1 -1
- package/dist/jsx/shell/WorkspaceSidebar.native.js +120 -4
- package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -1
- package/dist/jsx/shell/useWorkspaces.mjs +2 -0
- package/dist/jsx/shell/useWorkspaces.mjs.map +1 -1
- package/dist/jsx/shell/useWorkspaces.native.js +2 -0
- package/dist/jsx/shell/useWorkspaces.native.js.map +1 -1
- package/dist/jsx/shell/workspaceIcons.mjs +13 -3
- package/dist/jsx/shell/workspaceIcons.mjs.map +1 -1
- package/dist/jsx/shell/workspaceIcons.native.js +35 -2
- package/dist/jsx/shell/workspaceIcons.native.js.map +1 -1
- package/dist/jsx/views/CalendarView.mjs +2 -5
- package/dist/jsx/views/CalendarView.mjs.map +1 -1
- package/dist/jsx/views/CalendarView.native.js +1 -6
- package/dist/jsx/views/CalendarView.native.js.map +1 -1
- package/dist/jsx/views/DoctypeViewScreen.mjs +7 -3
- package/dist/jsx/views/DoctypeViewScreen.mjs.map +1 -1
- package/dist/jsx/views/DoctypeViewScreen.native.js +7 -3
- package/dist/jsx/views/DoctypeViewScreen.native.js.map +1 -1
- package/dist/jsx/views/KanbanView.mjs +2 -0
- package/dist/jsx/views/KanbanView.mjs.map +1 -1
- package/dist/jsx/views/KanbanView.native.js +2 -0
- package/dist/jsx/views/KanbanView.native.js.map +1 -1
- package/dist/jsx/views/ViewHeader.mjs +49 -78
- package/dist/jsx/views/ViewHeader.mjs.map +1 -1
- package/dist/jsx/views/ViewHeader.native.js +51 -78
- package/dist/jsx/views/ViewHeader.native.js.map +1 -1
- package/dist/jsx/views/ViewSwitcherMenu.mjs +69 -0
- package/dist/jsx/views/ViewSwitcherMenu.mjs.map +1 -0
- package/dist/jsx/views/ViewSwitcherMenu.native.js +99 -0
- package/dist/jsx/views/ViewSwitcherMenu.native.js.map +1 -0
- package/dist/jsx/views/connection.mjs +5 -1
- package/dist/jsx/views/connection.mjs.map +1 -1
- package/dist/jsx/views/connection.native.js +5 -1
- package/dist/jsx/views/connection.native.js.map +1 -1
- package/dist/jsx/views/dashboard-data.mjs +2 -3
- package/dist/jsx/views/dashboard-data.mjs.map +1 -1
- package/dist/jsx/views/dashboard-data.native.js +1 -4
- package/dist/jsx/views/dashboard-data.native.js.map +1 -1
- package/dist/jsx/views/kanban-board-controls.mjs +4 -9
- package/dist/jsx/views/kanban-board-controls.mjs.map +1 -1
- package/dist/jsx/views/kanban-board-controls.native.js +9 -10
- package/dist/jsx/views/kanban-board-controls.native.js.map +1 -1
- package/dist/jsx/views/viewAvailability.mjs +33 -0
- package/dist/jsx/views/viewAvailability.mjs.map +1 -0
- package/dist/jsx/views/viewAvailability.native.js +63 -0
- package/dist/jsx/views/viewAvailability.native.js.map +1 -0
- package/dist/jsx/workspace/WorkspaceLinkCard.mjs +121 -26
- package/dist/jsx/workspace/WorkspaceLinkCard.mjs.map +1 -1
- package/dist/jsx/workspace/WorkspaceLinkCard.native.js +126 -28
- package/dist/jsx/workspace/WorkspaceLinkCard.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceLinkDirectory.mjs +27 -21
- package/dist/jsx/workspace/WorkspaceLinkDirectory.mjs.map +1 -1
- package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js +32 -23
- package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceNumberCard.mjs +1 -1
- package/dist/jsx/workspace/WorkspaceNumberCard.mjs.map +1 -1
- package/dist/jsx/workspace/WorkspaceNumberCard.native.js +1 -1
- package/dist/jsx/workspace/WorkspaceNumberCard.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceQuickList.mjs +62 -30
- package/dist/jsx/workspace/WorkspaceQuickList.mjs.map +1 -1
- package/dist/jsx/workspace/WorkspaceQuickList.native.js +65 -32
- package/dist/jsx/workspace/WorkspaceQuickList.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceRecents.mjs +9 -1
- package/dist/jsx/workspace/WorkspaceRecents.mjs.map +1 -1
- package/dist/jsx/workspace/WorkspaceRecents.native.js +8 -0
- package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -1
- package/dist/jsx/workspace/WorkspaceShortcut.mjs +11 -1
- package/dist/jsx/workspace/WorkspaceShortcut.mjs.map +1 -1
- package/dist/jsx/workspace/WorkspaceShortcut.native.js +10 -0
- package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -1
- package/dist/jsx/workspace/parseContent.mjs +21 -1
- package/dist/jsx/workspace/parseContent.mjs.map +1 -1
- package/dist/jsx/workspace/parseContent.native.js +24 -0
- package/dist/jsx/workspace/parseContent.native.js.map +1 -1
- package/package.json +14 -14
- package/src/chrome/BackofficeAwesomebar.tsx +1 -0
- package/src/chrome/CommandPalette.spec.tsx +66 -12
- package/src/chrome/CommandPalette.tsx +139 -37
- package/src/chrome/HelpMenu.tsx +48 -67
- package/src/chrome/awesomebar-data.spec.ts +46 -0
- package/src/chrome/awesomebar-data.tsx +62 -12
- package/src/chrome/command-palette-model.ts +2 -2
- package/src/chrome/notifications-data.tsx +2 -0
- package/src/chrome/notifications-panel.tsx +21 -5
- package/src/chrome/shortcuts.ts +2 -0
- package/src/config/BackofficeProvider.tsx +15 -0
- package/src/form/DocFormScreen.tsx +169 -15
- package/src/form/FormConnections.tsx +34 -5
- package/src/form/FormDialogs.tsx +117 -3
- package/src/form/FormErrorBoundary.spec.tsx +1 -0
- package/src/form/FormErrorBoundary.tsx +32 -9
- package/src/form/FormSidebarPanel.spec.tsx +57 -0
- package/src/form/FormSidebarPanel.tsx +69 -14
- package/src/form/FormTimeline.optimistic.spec.tsx +187 -0
- package/src/form/FormTimeline.tsx +246 -28
- package/src/form/FormToolbar.tsx +73 -2
- package/src/form/formActions.ts +4 -0
- package/src/form/formLayout.ts +3 -14
- package/src/form/platformHooks.ts +57 -0
- package/src/form/timeline-entries.spec.ts +180 -0
- package/src/form/timeline-entries.tsx +84 -15
- package/src/i18n/en.ts +32 -9
- package/src/index.ts +14 -1
- package/src/list/AddTagsDialog.tsx +10 -5
- package/src/list/AssignToDialog.tsx +5 -2
- package/src/list/DoctypeListScreen.tsx +208 -209
- package/src/list/ListFilterBar.tsx +61 -26
- package/src/list/ListSidebar.tsx +24 -24
- package/src/list/bulk-edit-dialog.tsx +10 -5
- package/src/list/filter-fields.spec.ts +29 -0
- package/src/list/filter-fields.tsx +22 -2
- package/src/list/filter-saved.tsx +16 -16
- package/src/list/filter-sort.tsx +5 -2
- package/src/list/filter-standard.tsx +1 -1
- package/src/list/listColumns.tsx +307 -114
- package/src/list/listFields.spec.ts +16 -2
- package/src/list/listFields.ts +11 -0
- package/src/list/listUrlState.spec.ts +10 -0
- package/src/list/sidebar-section.spec.tsx +28 -0
- package/src/list/sidebar-section.tsx +57 -14
- package/src/oneAdapter/index.tsx +13 -1
- package/src/quickEntry/quickEntryPlan.ts +2 -6
- package/src/report/DoctypeReportView.tsx +3 -3
- package/src/report/QueryReportScreen.spec.tsx +74 -0
- package/src/report/QueryReportScreen.tsx +159 -121
- package/src/report/queryReportColumns.tsx +17 -0
- package/src/report/queryReportFilterBar.spec.tsx +139 -0
- package/src/report/queryReportFilterBar.tsx +315 -0
- package/src/report/queryReportUrlState.spec.ts +61 -0
- package/src/report/queryReportUrlState.ts +68 -0
- package/src/report/report-grid.spec.tsx +175 -0
- package/src/report/report-grid.tsx +211 -48
- package/src/report/report-toolbar.spec.tsx +90 -0
- package/src/report/report-toolbar.tsx +13 -10
- package/src/report/reportShapes.spec.ts +291 -1
- package/src/report/reportShapes.ts +398 -18
- package/src/report/reportViewModel.spec.ts +55 -0
- package/src/report/reportViewModel.ts +27 -8
- package/src/report/useQueryReport.ts +99 -37
- package/src/shared/deskLinks.spec.ts +38 -0
- package/src/shared/deskLinks.ts +31 -0
- package/src/shared/listNavContext.spec.ts +83 -0
- package/src/shared/listNavContext.ts +115 -0
- package/src/shared/useDocinfo.ts +79 -2
- package/src/shared/useDoctypeMeta.ts +4 -0
- package/src/shared/useFrappeApp.ts +12 -3
- package/src/shell/BackofficeShell.spec.tsx +43 -0
- package/src/shell/BackofficeShell.tsx +93 -24
- package/src/shell/WorkspaceSidebar.spec.tsx +82 -0
- package/src/shell/WorkspaceSidebar.tsx +130 -3
- package/src/shell/useWorkspaces.ts +2 -0
- package/src/shell/workspaceIcons.ts +17 -2
- package/src/views/CalendarView.tsx +2 -5
- package/src/views/DoctypeViewScreen.tsx +3 -1
- package/src/views/KanbanView.tsx +7 -1
- package/src/views/ViewHeader.tsx +63 -99
- package/src/views/ViewSwitcherMenu.spec.tsx +44 -0
- package/src/views/ViewSwitcherMenu.tsx +92 -0
- package/src/views/connection.ts +8 -2
- package/src/views/dashboard-data.tsx +2 -3
- package/src/views/kanban-board-controls.tsx +9 -11
- package/src/views/viewAvailability.spec.ts +199 -0
- package/src/views/viewAvailability.ts +85 -0
- package/src/workspace/WorkspaceLinkCard.tsx +118 -22
- package/src/workspace/WorkspaceLinkDirectory.tsx +32 -27
- package/src/workspace/WorkspaceNumberCard.tsx +1 -1
- package/src/workspace/WorkspaceQuickList.tsx +54 -37
- package/src/workspace/WorkspaceRecents.tsx +5 -1
- package/src/workspace/WorkspaceShortcut.tsx +7 -1
- package/src/workspace/parseContent.spec.ts +89 -0
- package/src/workspace/parseContent.ts +32 -0
- package/types/chrome/BackofficeAwesomebar.d.ts.map +1 -1
- package/types/chrome/CommandPalette.d.ts.map +1 -1
- package/types/chrome/HelpMenu.d.ts.map +1 -1
- package/types/chrome/awesomebar-data.d.ts +9 -2
- package/types/chrome/awesomebar-data.d.ts.map +1 -1
- package/types/chrome/command-palette-model.d.ts.map +1 -1
- package/types/chrome/notifications-data.d.ts.map +1 -1
- package/types/chrome/notifications-panel.d.ts.map +1 -1
- package/types/chrome/shortcuts.d.ts.map +1 -1
- package/types/config/BackofficeProvider.d.ts +13 -0
- package/types/config/BackofficeProvider.d.ts.map +1 -1
- package/types/form/DocFormScreen.d.ts.map +1 -1
- package/types/form/FormConnections.d.ts.map +1 -1
- package/types/form/FormDialogs.d.ts +14 -0
- package/types/form/FormDialogs.d.ts.map +1 -1
- package/types/form/FormErrorBoundary.d.ts +0 -5
- package/types/form/FormErrorBoundary.d.ts.map +1 -1
- package/types/form/FormSidebarPanel.d.ts +22 -0
- package/types/form/FormSidebarPanel.d.ts.map +1 -1
- package/types/form/FormTimeline.d.ts.map +1 -1
- package/types/form/FormToolbar.d.ts +19 -2
- package/types/form/FormToolbar.d.ts.map +1 -1
- package/types/form/formActions.d.ts +4 -0
- package/types/form/formActions.d.ts.map +1 -1
- package/types/form/formLayout.d.ts.map +1 -1
- package/types/form/platformHooks.d.ts +11 -0
- package/types/form/platformHooks.d.ts.map +1 -1
- package/types/form/timeline-entries.d.ts +19 -3
- package/types/form/timeline-entries.d.ts.map +1 -1
- package/types/i18n/en.d.ts +30 -9
- package/types/i18n/en.d.ts.map +1 -1
- package/types/index.d.ts +8 -3
- package/types/index.d.ts.map +1 -1
- package/types/list/AddTagsDialog.d.ts.map +1 -1
- package/types/list/AssignToDialog.d.ts.map +1 -1
- package/types/list/DoctypeListScreen.d.ts +1 -1
- package/types/list/DoctypeListScreen.d.ts.map +1 -1
- package/types/list/ListFilterBar.d.ts +12 -1
- package/types/list/ListFilterBar.d.ts.map +1 -1
- package/types/list/bulk-edit-dialog.d.ts.map +1 -1
- package/types/list/filter-fields.d.ts +4 -1
- package/types/list/filter-fields.d.ts.map +1 -1
- package/types/list/filter-saved.d.ts +1 -1
- package/types/list/filter-saved.d.ts.map +1 -1
- package/types/list/filter-sort.d.ts.map +1 -1
- package/types/list/listColumns.d.ts +8 -1
- package/types/list/listColumns.d.ts.map +1 -1
- package/types/list/listFields.d.ts +2 -0
- package/types/list/listFields.d.ts.map +1 -1
- package/types/list/sidebar-section.d.ts +4 -1
- package/types/list/sidebar-section.d.ts.map +1 -1
- package/types/oneAdapter/index.d.ts.map +1 -1
- package/types/quickEntry/quickEntryPlan.d.ts.map +1 -1
- package/types/report/QueryReportScreen.d.ts +1 -1
- package/types/report/QueryReportScreen.d.ts.map +1 -1
- package/types/report/queryReportColumns.d.ts +2 -0
- package/types/report/queryReportColumns.d.ts.map +1 -1
- package/types/report/queryReportFilterBar.d.ts +22 -0
- package/types/report/queryReportFilterBar.d.ts.map +1 -0
- package/types/report/queryReportUrlState.d.ts +29 -0
- package/types/report/queryReportUrlState.d.ts.map +1 -0
- package/types/report/report-grid.d.ts.map +1 -1
- package/types/report/report-toolbar.d.ts.map +1 -1
- package/types/report/reportShapes.d.ts +49 -2
- package/types/report/reportShapes.d.ts.map +1 -1
- package/types/report/reportViewModel.d.ts +7 -3
- package/types/report/reportViewModel.d.ts.map +1 -1
- package/types/report/useQueryReport.d.ts +10 -5
- package/types/report/useQueryReport.d.ts.map +1 -1
- package/types/shared/deskLinks.d.ts +16 -0
- package/types/shared/deskLinks.d.ts.map +1 -0
- package/types/shared/listNavContext.d.ts +33 -0
- package/types/shared/listNavContext.d.ts.map +1 -0
- package/types/shared/useDocinfo.d.ts +14 -0
- package/types/shared/useDocinfo.d.ts.map +1 -1
- package/types/shared/useDoctypeMeta.d.ts +4 -0
- package/types/shared/useDoctypeMeta.d.ts.map +1 -1
- package/types/shared/useFrappeApp.d.ts.map +1 -1
- package/types/shell/BackofficeShell.d.ts.map +1 -1
- package/types/shell/WorkspaceSidebar.d.ts.map +1 -1
- package/types/shell/useWorkspaces.d.ts.map +1 -1
- package/types/shell/workspaceIcons.d.ts +1 -1
- package/types/shell/workspaceIcons.d.ts.map +1 -1
- package/types/views/CalendarView.d.ts.map +1 -1
- package/types/views/DoctypeViewScreen.d.ts.map +1 -1
- package/types/views/KanbanView.d.ts.map +1 -1
- package/types/views/ViewHeader.d.ts +6 -6
- package/types/views/ViewHeader.d.ts.map +1 -1
- package/types/views/ViewSwitcherMenu.d.ts +14 -0
- package/types/views/ViewSwitcherMenu.d.ts.map +1 -0
- package/types/views/connection.d.ts +4 -0
- package/types/views/connection.d.ts.map +1 -1
- package/types/views/dashboard-data.d.ts.map +1 -1
- package/types/views/kanban-board-controls.d.ts +3 -2
- package/types/views/kanban-board-controls.d.ts.map +1 -1
- package/types/views/viewAvailability.d.ts +27 -0
- package/types/views/viewAvailability.d.ts.map +1 -0
- package/types/workspace/WorkspaceLinkCard.d.ts +7 -1
- package/types/workspace/WorkspaceLinkCard.d.ts.map +1 -1
- package/types/workspace/WorkspaceLinkDirectory.d.ts +1 -6
- package/types/workspace/WorkspaceLinkDirectory.d.ts.map +1 -1
- package/types/workspace/WorkspaceQuickList.d.ts.map +1 -1
- package/types/workspace/WorkspaceRecents.d.ts.map +1 -1
- package/types/workspace/WorkspaceShortcut.d.ts.map +1 -1
- package/types/workspace/parseContent.d.ts +18 -0
- package/types/workspace/parseContent.d.ts.map +1 -1
|
@@ -18,22 +18,31 @@ export function useFrappeApp(): FrappeApp | undefined {
|
|
|
18
18
|
// (:8000 in dev) instead of frappe's socketio server (:9000), producing a
|
|
19
19
|
// CORS-failed handshake on every mount.
|
|
20
20
|
const socketPort = config?.socketPort;
|
|
21
|
+
// socketBaseURL/siteName ride along too: the same-origin dev-proxy socket
|
|
22
|
+
// (and the namespace it must join) apply to FrappeApp's realtime exactly
|
|
23
|
+
// like the collection engine's.
|
|
24
|
+
const socketBaseURL = config?.socketBaseURL;
|
|
25
|
+
const siteName = config?.siteName;
|
|
21
26
|
const useToken = config?.auth?.useToken;
|
|
22
27
|
const token = config?.auth?.token;
|
|
23
28
|
const type = config?.auth?.type;
|
|
24
29
|
return useMemo(() => {
|
|
25
30
|
if (!baseURL) return undefined;
|
|
26
|
-
const key = `${baseURL}|${socketPort ?? ""}|${useToken ? "t" : ""}|${token ?? ""}|${type ?? ""}`;
|
|
31
|
+
const key = `${baseURL}|${socketPort ?? ""}|${socketBaseURL ?? ""}|${siteName ?? ""}|${useToken ? "t" : ""}|${token ?? ""}|${type ?? ""}`;
|
|
27
32
|
let app = appCache.get(key);
|
|
28
33
|
if (!app) {
|
|
34
|
+
const realtimeOptions =
|
|
35
|
+
socketPort || socketBaseURL || siteName
|
|
36
|
+
? { socketPort, socketBaseURL, siteName }
|
|
37
|
+
: undefined;
|
|
29
38
|
app = new FrappeApp(baseURL, {
|
|
30
39
|
useToken,
|
|
31
40
|
token,
|
|
32
41
|
type: (type === "Bearer" ? "Bearer" : type ? "token" : undefined) as AuthConfig["type"],
|
|
33
|
-
realtimeOptions
|
|
42
|
+
realtimeOptions,
|
|
34
43
|
});
|
|
35
44
|
appCache.set(key, app);
|
|
36
45
|
}
|
|
37
46
|
return app;
|
|
38
|
-
}, [baseURL, socketPort, useToken, token, type]);
|
|
47
|
+
}, [baseURL, socketPort, socketBaseURL, siteName, useToken, token, type]);
|
|
39
48
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { InMemoryFixtureProvider } from "@multiplatform.one/frappe";
|
|
3
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
4
|
+
import { cleanup, screen } from "@testing-library/react";
|
|
5
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
6
|
+
import { BackofficeProvider } from "../config/BackofficeProvider";
|
|
7
|
+
import { createMemoryNavigator } from "../navigation/navigator";
|
|
8
|
+
import { BackofficeShell } from "./BackofficeShell";
|
|
9
|
+
|
|
10
|
+
const MOCK_HOST = "https://backoffice-shell-chrome.mock.test";
|
|
11
|
+
|
|
12
|
+
afterEach(cleanup);
|
|
13
|
+
|
|
14
|
+
function renderShell() {
|
|
15
|
+
return renderWithProviders(
|
|
16
|
+
<BackofficeProvider
|
|
17
|
+
frappe={{
|
|
18
|
+
baseURL: MOCK_HOST,
|
|
19
|
+
fixtures: new InMemoryFixtureProvider({ Workspace: [], DocType: [] }),
|
|
20
|
+
}}
|
|
21
|
+
navigation={createMemoryNavigator("/backoffice")}
|
|
22
|
+
slots={{
|
|
23
|
+
renderSidebarFooter: () => <div data-testid="host-sidebar-footer">footer</div>,
|
|
24
|
+
}}
|
|
25
|
+
>
|
|
26
|
+
<BackofficeShell>
|
|
27
|
+
<div>page body</div>
|
|
28
|
+
</BackofficeShell>
|
|
29
|
+
</BackofficeProvider>,
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
describe("BackofficeShell pane hairlines", () => {
|
|
34
|
+
it("paints full-width banner and full-height column rules plus a footer rule", () => {
|
|
35
|
+
renderShell();
|
|
36
|
+
|
|
37
|
+
expect(screen.getByTestId("backoffice-shell-banner-rule")).toBeTruthy();
|
|
38
|
+
expect(screen.getByTestId("backoffice-shell-column-rule")).toBeTruthy();
|
|
39
|
+
expect(screen.getByTestId("backoffice-shell-footer-rule")).toBeTruthy();
|
|
40
|
+
expect(screen.getByTestId("host-sidebar-footer")).toBeTruthy();
|
|
41
|
+
expect(screen.getByRole("main").id).toBe("backoffice-main");
|
|
42
|
+
});
|
|
43
|
+
});
|
|
@@ -10,9 +10,23 @@
|
|
|
10
10
|
* replace/extend the built-ins. Narrow viewports collapse the sidebar into
|
|
11
11
|
* an overlay drawer (same breakpoint as frappe-ui's DeskShell:
|
|
12
12
|
* DESK_NARROW_BREAKPOINT === theme NARROW_BREAKPOINT).
|
|
13
|
+
*
|
|
14
|
+
* Shell geometry follows Frappe Desk's inverted-L (full-width banner + left
|
|
15
|
+
* rail) with Linear's pane rules: hairlines are standalone filled rules that
|
|
16
|
+
* span the full banner width and the full rail height (footer included),
|
|
17
|
+
* never a child's box-border that stops at content. Selected workspace is
|
|
18
|
+
* fill (WorkspaceSidebar / LC-71); the rail does not paint selection chrome.
|
|
13
19
|
*/
|
|
14
|
-
import {
|
|
15
|
-
|
|
20
|
+
import {
|
|
21
|
+
Button,
|
|
22
|
+
SizableText,
|
|
23
|
+
SkipLink,
|
|
24
|
+
XStack,
|
|
25
|
+
YStack,
|
|
26
|
+
isWeb,
|
|
27
|
+
} from "@multiplatform.one/components";
|
|
28
|
+
import * as componentsBarrel from "@multiplatform.one/components";
|
|
29
|
+
import { hairline, useLayoutSizeClass, useResolvedKnobs } from "@multiplatform.one/theme";
|
|
16
30
|
import { ListIcon, XIcon } from "@phosphor-icons/react";
|
|
17
31
|
import type React from "react";
|
|
18
32
|
import { useEffect, useRef, useState } from "react";
|
|
@@ -33,7 +47,13 @@ import {
|
|
|
33
47
|
useBackofficeSlots,
|
|
34
48
|
} from "../config/BackofficeProvider";
|
|
35
49
|
import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
|
|
36
|
-
import { WorkspaceSidebar } from "./WorkspaceSidebar";
|
|
50
|
+
import { WORKSPACE_SIDEBAR_WIDTH, WorkspaceSidebar } from "./WorkspaceSidebar";
|
|
51
|
+
|
|
52
|
+
// Capability-check the barrel instead of a named import: GNOME's curated
|
|
53
|
+
// components shim deliberately omits ToastViewport (the @tamagui/toast portal
|
|
54
|
+
// machinery stays out of the GJS graph), so on that target the shell simply
|
|
55
|
+
// mounts no toast host (ListToastHost precedent in features/pokemon).
|
|
56
|
+
const ToastViewport = (componentsBarrel as Partial<typeof componentsBarrel>).ToastViewport;
|
|
37
57
|
|
|
38
58
|
export interface BackofficeShellProps {
|
|
39
59
|
children: React.ReactNode;
|
|
@@ -52,6 +72,19 @@ function useIsNarrow(): boolean {
|
|
|
52
72
|
return useLayoutSizeClass() === "compact";
|
|
53
73
|
}
|
|
54
74
|
|
|
75
|
+
/** Standalone pane rule — full width (banner) or full height (rail). */
|
|
76
|
+
function ShellHairline({ axis, testId }: { axis: "horizontal" | "vertical"; testId: string }) {
|
|
77
|
+
return (
|
|
78
|
+
<YStack
|
|
79
|
+
{...(axis === "horizontal" ? hairline.line : hairline.vline)}
|
|
80
|
+
alignSelf="stretch"
|
|
81
|
+
{...(axis === "horizontal" ? { width: "100%" } : { height: "100%" })}
|
|
82
|
+
flexShrink={0}
|
|
83
|
+
data-testid={testId}
|
|
84
|
+
/>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
55
88
|
export function BackofficeShell({ children, activePath, onNavigate }: BackofficeShellProps) {
|
|
56
89
|
const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
|
|
57
90
|
const { knobProps } = useResolvedKnobs();
|
|
@@ -97,13 +130,21 @@ export function BackofficeShell({ children, activePath, onNavigate }: Backoffice
|
|
|
97
130
|
navigate(path);
|
|
98
131
|
};
|
|
99
132
|
|
|
100
|
-
const
|
|
133
|
+
const bannerHeight =
|
|
134
|
+
knobProps.sizeToken === "$5" ? "$7" : knobProps.sizeToken === "$3" ? "$5" : "$6";
|
|
101
135
|
|
|
102
136
|
const sidebarContent = (
|
|
103
|
-
|
|
104
|
-
<
|
|
105
|
-
|
|
106
|
-
|
|
137
|
+
<YStack flex={1} height="100%" minHeight={0} width={WORKSPACE_SIDEBAR_WIDTH}>
|
|
138
|
+
<YStack flex={1} minHeight={0}>
|
|
139
|
+
<WorkspaceSidebar activePath={resolvedActivePath} onNavigate={handleNavigate} />
|
|
140
|
+
</YStack>
|
|
141
|
+
{slots.renderSidebarFooter ? (
|
|
142
|
+
<YStack flexShrink={0} width="100%">
|
|
143
|
+
<ShellHairline axis="horizontal" testId="backoffice-shell-footer-rule" />
|
|
144
|
+
{slots.renderSidebarFooter()}
|
|
145
|
+
</YStack>
|
|
146
|
+
) : null}
|
|
147
|
+
</YStack>
|
|
107
148
|
);
|
|
108
149
|
|
|
109
150
|
const headerContent = (
|
|
@@ -152,20 +193,37 @@ export function BackofficeShell({ children, activePath, onNavigate }: Backoffice
|
|
|
152
193
|
</>
|
|
153
194
|
);
|
|
154
195
|
|
|
196
|
+
const rail = (
|
|
197
|
+
<XStack
|
|
198
|
+
role="navigation"
|
|
199
|
+
flexShrink={0}
|
|
200
|
+
height="100%"
|
|
201
|
+
minHeight={0}
|
|
202
|
+
backgroundColor="$color2"
|
|
203
|
+
data-testid="backoffice-sidebar-rail"
|
|
204
|
+
>
|
|
205
|
+
{sidebarContent}
|
|
206
|
+
<ShellHairline axis="vertical" testId="backoffice-shell-column-rule" />
|
|
207
|
+
</XStack>
|
|
208
|
+
);
|
|
209
|
+
|
|
155
210
|
return (
|
|
156
211
|
<YStack flex={1} height="100%" width="100%" overflow="hidden" data-testid="backoffice-shell">
|
|
157
|
-
{
|
|
212
|
+
{isWeb ? (
|
|
213
|
+
<SkipLink targetId="backoffice-main">
|
|
214
|
+
{t("shell.skipToContent", "Skip to content")}
|
|
215
|
+
</SkipLink>
|
|
216
|
+
) : null}
|
|
217
|
+
|
|
218
|
+
{/* Top navbar — Frappe inverted-L: full width above the rail. */}
|
|
158
219
|
<XStack
|
|
159
220
|
role="banner"
|
|
160
221
|
{...knobProps.surface}
|
|
161
|
-
// Surface knobs paint a full box border; keep only the bottom edge
|
|
162
|
-
// (DeskShell precedent, SB-M-1708).
|
|
163
222
|
borderWidth={0}
|
|
164
|
-
|
|
165
|
-
|
|
223
|
+
borderRadius={0}
|
|
224
|
+
height={bannerHeight}
|
|
166
225
|
alignItems="center"
|
|
167
226
|
paddingHorizontal="$3"
|
|
168
|
-
paddingVertical="$2"
|
|
169
227
|
gap="$2"
|
|
170
228
|
flexShrink={0}
|
|
171
229
|
>
|
|
@@ -173,14 +231,10 @@ export function BackofficeShell({ children, activePath, onNavigate }: Backoffice
|
|
|
173
231
|
? slots.renderShellHeader({ defaultContent: headerContent })
|
|
174
232
|
: headerContent}
|
|
175
233
|
</XStack>
|
|
234
|
+
<ShellHairline axis="horizontal" testId="backoffice-shell-banner-rule" />
|
|
176
235
|
|
|
177
236
|
<XStack flex={1} minWidth={0} position="relative" overflow="hidden">
|
|
178
|
-
{
|
|
179
|
-
{sidebarEnabled && !isNarrow && (
|
|
180
|
-
<YStack role="navigation" flexShrink={0} data-testid="backoffice-sidebar-rail">
|
|
181
|
-
{sidebarContent}
|
|
182
|
-
</YStack>
|
|
183
|
-
)}
|
|
237
|
+
{sidebarEnabled && !isNarrow && rail}
|
|
184
238
|
|
|
185
239
|
{/* Narrow drawer + scrim */}
|
|
186
240
|
{sidebarEnabled && isNarrow && drawerOpen && (
|
|
@@ -197,26 +251,41 @@ export function BackofficeShell({ children, activePath, onNavigate }: Backoffice
|
|
|
197
251
|
onPress={() => setDrawerOpen(false)}
|
|
198
252
|
data-testid="backoffice-sidebar-scrim"
|
|
199
253
|
/>
|
|
200
|
-
<
|
|
254
|
+
<XStack
|
|
201
255
|
role="navigation"
|
|
202
256
|
position="absolute"
|
|
203
257
|
top={0}
|
|
204
258
|
left={0}
|
|
205
259
|
bottom={0}
|
|
206
260
|
zIndex={11}
|
|
207
|
-
backgroundColor="$
|
|
261
|
+
backgroundColor="$color2"
|
|
208
262
|
data-testid="backoffice-sidebar-drawer"
|
|
209
263
|
>
|
|
210
264
|
{sidebarContent}
|
|
211
|
-
|
|
265
|
+
<ShellHairline axis="vertical" testId="backoffice-shell-drawer-rule" />
|
|
266
|
+
</XStack>
|
|
212
267
|
</>
|
|
213
268
|
)}
|
|
214
269
|
|
|
215
270
|
{/* Routed content — pages own their own headers/breadcrumbs */}
|
|
216
|
-
<YStack
|
|
271
|
+
<YStack
|
|
272
|
+
role="main"
|
|
273
|
+
id="backoffice-main"
|
|
274
|
+
tabIndex={-1}
|
|
275
|
+
flex={1}
|
|
276
|
+
minWidth={0}
|
|
277
|
+
minHeight={0}
|
|
278
|
+
overflow="hidden"
|
|
279
|
+
>
|
|
217
280
|
{children}
|
|
218
281
|
</YStack>
|
|
219
282
|
</XStack>
|
|
283
|
+
|
|
284
|
+
{/* THE backoffice toast host: one shell-level viewport so every desk
|
|
285
|
+
surface (list, form, report, kanban, …) renders notify()/showToast
|
|
286
|
+
feedback without mounting its own. Double-mount safe — a second
|
|
287
|
+
viewport lower in the tree no-ops (components Toast contract). */}
|
|
288
|
+
{ToastViewport ? <ToastViewport /> : null}
|
|
220
289
|
</YStack>
|
|
221
290
|
);
|
|
222
291
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { InMemoryFixtureProvider } from "@multiplatform.one/frappe";
|
|
3
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
4
|
+
import { cleanup, screen, waitFor } from "@testing-library/react";
|
|
5
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
6
|
+
import { BackofficeProvider } from "../config/BackofficeProvider";
|
|
7
|
+
import { createMemoryNavigator } from "../navigation/navigator";
|
|
8
|
+
import { WorkspaceSidebar } from "./WorkspaceSidebar";
|
|
9
|
+
|
|
10
|
+
const MOCK_HOST = "https://backoffice-shell-nav.mock.test";
|
|
11
|
+
|
|
12
|
+
const makeFixtures = () =>
|
|
13
|
+
new InMemoryFixtureProvider({
|
|
14
|
+
Workspace: [
|
|
15
|
+
{
|
|
16
|
+
name: "Alpha",
|
|
17
|
+
doctype: "Workspace",
|
|
18
|
+
title: "Alpha",
|
|
19
|
+
icon: "tool",
|
|
20
|
+
parent_page: "",
|
|
21
|
+
public: 1,
|
|
22
|
+
for_user: "",
|
|
23
|
+
sequence_id: 1,
|
|
24
|
+
module: "Core",
|
|
25
|
+
is_hidden: 0,
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: "Beta",
|
|
29
|
+
doctype: "Workspace",
|
|
30
|
+
title: "Beta",
|
|
31
|
+
icon: "users",
|
|
32
|
+
parent_page: "",
|
|
33
|
+
public: 1,
|
|
34
|
+
for_user: "",
|
|
35
|
+
sequence_id: 2,
|
|
36
|
+
module: "Core",
|
|
37
|
+
is_hidden: 0,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "Gamma",
|
|
41
|
+
doctype: "Workspace",
|
|
42
|
+
title: "Gamma",
|
|
43
|
+
icon: "website",
|
|
44
|
+
parent_page: "",
|
|
45
|
+
public: 1,
|
|
46
|
+
for_user: "",
|
|
47
|
+
sequence_id: 3,
|
|
48
|
+
module: "Core",
|
|
49
|
+
is_hidden: 0,
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
afterEach(cleanup);
|
|
55
|
+
|
|
56
|
+
describe("WorkspaceSidebar LC-72 stacked nav", () => {
|
|
57
|
+
it("marks first / middle / last and paints selected as fill", async () => {
|
|
58
|
+
renderWithProviders(
|
|
59
|
+
<BackofficeProvider
|
|
60
|
+
frappe={{ baseURL: MOCK_HOST, fixtures: makeFixtures() }}
|
|
61
|
+
navigation={createMemoryNavigator("/backoffice/beta")}
|
|
62
|
+
>
|
|
63
|
+
<WorkspaceSidebar activePath="/backoffice/beta" />
|
|
64
|
+
</BackofficeProvider>,
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
const rows = await waitFor(() => {
|
|
68
|
+
const found = screen.getAllByTestId("backoffice-workspace-row");
|
|
69
|
+
expect(found).toHaveLength(3);
|
|
70
|
+
return found;
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
expect(rows[0].getAttribute("data-group-position")).toBe("first");
|
|
74
|
+
expect(rows[1].getAttribute("data-group-position")).toBe("middle");
|
|
75
|
+
expect(rows[2].getAttribute("data-group-position")).toBe("last");
|
|
76
|
+
|
|
77
|
+
expect(rows[1].getAttribute("data-active")).toBe("true");
|
|
78
|
+
expect(rows[1].getAttribute("aria-current")).toBe("page");
|
|
79
|
+
expect(rows[0].getAttribute("data-active")).toBe("false");
|
|
80
|
+
expect(rows[2].getAttribute("aria-current")).toBeNull();
|
|
81
|
+
});
|
|
82
|
+
});
|
|
@@ -5,15 +5,32 @@
|
|
|
5
5
|
* below ordered by sequence_id, children nested via parent_page (rendered
|
|
6
6
|
* indented under their parent). Data is live via useWorkspaces; paths come
|
|
7
7
|
* from the BackofficeProvider (basePath-aware).
|
|
8
|
+
*
|
|
9
|
+
* LC-72 STACK-OUTER: rows are one stacked group (first/last outer corners,
|
|
10
|
+
* interiors square); hover/press/selection inherit that geometry.
|
|
11
|
+
* LC-71: selected = accent fill; keyboard focus paints an inset ring on the
|
|
12
|
+
* row, never a selection border on every sibling. The column-edge hairline
|
|
13
|
+
* is owned by BackofficeShell so it spans the full rail height (footer
|
|
14
|
+
* included) — this nav paints none.
|
|
8
15
|
*/
|
|
9
16
|
import {
|
|
10
|
-
|
|
17
|
+
ScrollView,
|
|
18
|
+
Separator,
|
|
19
|
+
SizableText,
|
|
11
20
|
Spinner,
|
|
12
21
|
XStack,
|
|
13
22
|
YStack,
|
|
14
23
|
type SidebarItem,
|
|
15
24
|
type SidebarSection,
|
|
16
25
|
} from "@multiplatform.one/components";
|
|
26
|
+
import {
|
|
27
|
+
ensureFocusVisibleRing,
|
|
28
|
+
getGroupPosition,
|
|
29
|
+
hairline,
|
|
30
|
+
stackRadiusProps,
|
|
31
|
+
useReadableTextOn,
|
|
32
|
+
useResolvedKnobs,
|
|
33
|
+
} from "@multiplatform.one/theme";
|
|
17
34
|
import { useMemo } from "react";
|
|
18
35
|
import { useTranslation } from "react-i18next";
|
|
19
36
|
import { useBackofficePaths } from "../config/BackofficeProvider";
|
|
@@ -39,7 +56,7 @@ function workspaceItem(
|
|
|
39
56
|
onNavigate: ((path: string) => void) | undefined,
|
|
40
57
|
): SidebarItem {
|
|
41
58
|
const path = paths.workspace(workspace.name);
|
|
42
|
-
const IconComponent = workspaceIcon(workspace.icon);
|
|
59
|
+
const IconComponent = workspaceIcon(workspace.icon, workspace.name);
|
|
43
60
|
const icon = (
|
|
44
61
|
// Depth-based inset carried by the icon slot — the Sidebar row API has
|
|
45
62
|
// no nesting support, so children indent icon+label via this wrapper.
|
|
@@ -78,6 +95,114 @@ function flattenTree(
|
|
|
78
95
|
return items;
|
|
79
96
|
}
|
|
80
97
|
|
|
98
|
+
function NavRow({
|
|
99
|
+
item,
|
|
100
|
+
position,
|
|
101
|
+
}: {
|
|
102
|
+
item: SidebarItem;
|
|
103
|
+
position: ReturnType<typeof getGroupPosition>;
|
|
104
|
+
}) {
|
|
105
|
+
const { knobProps } = useResolvedKnobs();
|
|
106
|
+
const onAccent = useReadableTextOn("$accentBackground");
|
|
107
|
+
const rowPad = knobProps.panelPadding.padding;
|
|
108
|
+
const corners = stackRadiusProps(position, knobProps.borderRadius.borderRadius);
|
|
109
|
+
const ink = item.active && onAccent ? onAccent : undefined;
|
|
110
|
+
return (
|
|
111
|
+
<XStack
|
|
112
|
+
role="button"
|
|
113
|
+
aria-current={item.active ? "page" : undefined}
|
|
114
|
+
data-testid="backoffice-workspace-row"
|
|
115
|
+
data-group-position={position}
|
|
116
|
+
data-active={item.active ? "true" : "false"}
|
|
117
|
+
alignItems="center"
|
|
118
|
+
gap="$2"
|
|
119
|
+
minHeight={knobProps.sizeToken}
|
|
120
|
+
paddingHorizontal={rowPad}
|
|
121
|
+
paddingVertical="$2"
|
|
122
|
+
overflow="hidden"
|
|
123
|
+
userSelect="none"
|
|
124
|
+
{...corners}
|
|
125
|
+
backgroundColor={item.active ? "$accentBackground" : "transparent"}
|
|
126
|
+
hoverStyle={{
|
|
127
|
+
backgroundColor: item.active ? "$accentBackground" : "$color3",
|
|
128
|
+
...corners,
|
|
129
|
+
}}
|
|
130
|
+
pressStyle={{
|
|
131
|
+
backgroundColor: item.active ? "$accentBackground" : "$color4",
|
|
132
|
+
...corners,
|
|
133
|
+
}}
|
|
134
|
+
cursor={item.onPress ? "pointer" : "default"}
|
|
135
|
+
onPress={item.onPress}
|
|
136
|
+
tabIndex={item.onPress ? 0 : undefined}
|
|
137
|
+
outlineWidth={0}
|
|
138
|
+
focusStyle={{ outlineWidth: 0 }}
|
|
139
|
+
focusVisibleStyle={ensureFocusVisibleRing({
|
|
140
|
+
outlineOffset: -2,
|
|
141
|
+
outlineColor: ink ?? "$outlineColor",
|
|
142
|
+
})}
|
|
143
|
+
onKeyDown={
|
|
144
|
+
((e: { key?: string; preventDefault?: () => void }) => {
|
|
145
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
146
|
+
e.preventDefault?.();
|
|
147
|
+
item.onPress?.();
|
|
148
|
+
}
|
|
149
|
+
}) as unknown as () => void
|
|
150
|
+
}
|
|
151
|
+
>
|
|
152
|
+
{item.icon}
|
|
153
|
+
<SizableText
|
|
154
|
+
size="$3"
|
|
155
|
+
numberOfLines={1}
|
|
156
|
+
flex={1}
|
|
157
|
+
flexShrink={1}
|
|
158
|
+
fontWeight={item.active ? "600" : "400"}
|
|
159
|
+
color={ink}
|
|
160
|
+
>
|
|
161
|
+
{item.label}
|
|
162
|
+
</SizableText>
|
|
163
|
+
</XStack>
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function WorkspaceNav({ sections }: { sections: SidebarSection[] }) {
|
|
168
|
+
const { knobProps } = useResolvedKnobs();
|
|
169
|
+
const rowPad = knobProps.panelPadding.padding;
|
|
170
|
+
return (
|
|
171
|
+
<YStack width={WORKSPACE_SIDEBAR_WIDTH} flex={1} height="100%" minHeight={0}>
|
|
172
|
+
<ScrollView flex={1}>
|
|
173
|
+
<YStack {...knobProps.panelPadding} paddingHorizontal={0} {...knobProps.gapLg}>
|
|
174
|
+
{sections.map((section, sectionIdx) => (
|
|
175
|
+
<YStack key={section.title ?? sectionIdx} {...knobProps.gap}>
|
|
176
|
+
{section.title ? (
|
|
177
|
+
<SizableText
|
|
178
|
+
size="$2"
|
|
179
|
+
fontWeight="600"
|
|
180
|
+
textTransform="uppercase"
|
|
181
|
+
color="$color11"
|
|
182
|
+
marginHorizontal={rowPad}
|
|
183
|
+
>
|
|
184
|
+
{section.title}
|
|
185
|
+
</SizableText>
|
|
186
|
+
) : null}
|
|
187
|
+
<YStack>
|
|
188
|
+
{section.items.map((item, itemIdx) => {
|
|
189
|
+
const position = getGroupPosition(itemIdx, section.items.length);
|
|
190
|
+
return (
|
|
191
|
+
<YStack key={String(item.value ?? item.label)}>
|
|
192
|
+
{itemIdx > 0 ? <Separator {...hairline.line} /> : null}
|
|
193
|
+
<NavRow item={item} position={position} />
|
|
194
|
+
</YStack>
|
|
195
|
+
);
|
|
196
|
+
})}
|
|
197
|
+
</YStack>
|
|
198
|
+
</YStack>
|
|
199
|
+
))}
|
|
200
|
+
</YStack>
|
|
201
|
+
</ScrollView>
|
|
202
|
+
</YStack>
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
|
|
81
206
|
export function WorkspaceSidebar({ activePath, onNavigate }: WorkspaceSidebarProps) {
|
|
82
207
|
const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
|
|
83
208
|
const paths = useBackofficePaths();
|
|
@@ -109,6 +234,8 @@ export function WorkspaceSidebar({ activePath, onNavigate }: WorkspaceSidebarPro
|
|
|
109
234
|
return (
|
|
110
235
|
<YStack
|
|
111
236
|
width={WORKSPACE_SIDEBAR_WIDTH}
|
|
237
|
+
flex={1}
|
|
238
|
+
height="100%"
|
|
112
239
|
alignItems="center"
|
|
113
240
|
paddingTop="$6"
|
|
114
241
|
aria-label={t("sidebar.loading", "Loading workspaces")}
|
|
@@ -118,5 +245,5 @@ export function WorkspaceSidebar({ activePath, onNavigate }: WorkspaceSidebarPro
|
|
|
118
245
|
);
|
|
119
246
|
}
|
|
120
247
|
|
|
121
|
-
return <
|
|
248
|
+
return <WorkspaceNav sections={sections} />;
|
|
122
249
|
}
|
|
@@ -137,6 +137,8 @@ export function useWorkspaces(): WorkspacesResult {
|
|
|
137
137
|
? {
|
|
138
138
|
baseURL: config.baseURL,
|
|
139
139
|
socketPort: config.socketPort,
|
|
140
|
+
siteName: config.siteName,
|
|
141
|
+
socketBaseURL: config.socketBaseURL,
|
|
140
142
|
auth: config.auth,
|
|
141
143
|
syncOptions: config.syncOptions,
|
|
142
144
|
socketOptions: config.socketOptions,
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
GearIcon,
|
|
18
18
|
GlobeIcon,
|
|
19
19
|
GraduationCapIcon,
|
|
20
|
+
HammerIcon,
|
|
20
21
|
HandshakeIcon,
|
|
21
22
|
HeartIcon,
|
|
22
23
|
IdentificationCardIcon,
|
|
@@ -53,6 +54,9 @@ const FRAPPE_ICON_MAP: Record<string, Icon> = {
|
|
|
53
54
|
hr: IdentificationCardIcon,
|
|
54
55
|
"image-view": ImageIcon,
|
|
55
56
|
integration: PlugsConnectedIcon,
|
|
57
|
+
build: HammerIcon,
|
|
58
|
+
developer: HammerIcon,
|
|
59
|
+
customize: GearIcon,
|
|
56
60
|
manufacturing: FactoryIcon,
|
|
57
61
|
"money-coins-1": CoinsIcon,
|
|
58
62
|
"non-profit": HeartIcon,
|
|
@@ -71,6 +75,17 @@ const FRAPPE_ICON_MAP: Record<string, Icon> = {
|
|
|
71
75
|
};
|
|
72
76
|
|
|
73
77
|
/** Resolve a frappe workspace icon name to a phosphor icon component. */
|
|
74
|
-
export function workspaceIcon(
|
|
75
|
-
|
|
78
|
+
export function workspaceIcon(icon?: string, workspaceName?: string): Icon {
|
|
79
|
+
// Tools and Build both often ship the desk sprite name `tool`. Disambiguate
|
|
80
|
+
// by workspace name so they don't share a wrench.
|
|
81
|
+
if (workspaceName && /build/i.test(workspaceName) && (!icon || icon === "tool")) {
|
|
82
|
+
return HammerIcon;
|
|
83
|
+
}
|
|
84
|
+
const keys = [icon, workspaceName]
|
|
85
|
+
.filter((value): value is string => Boolean(value))
|
|
86
|
+
.map((value) => value.toLowerCase().replace(/\s+/g, "-"));
|
|
87
|
+
for (const key of keys) {
|
|
88
|
+
if (FRAPPE_ICON_MAP[key]) return FRAPPE_ICON_MAP[key];
|
|
89
|
+
}
|
|
90
|
+
return SquaresFourIcon;
|
|
76
91
|
}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// prefilled with the clicked date (`?d=` param on the /new route).
|
|
11
11
|
import { XStack, YStack } from "@multiplatform.one/components";
|
|
12
12
|
import { FrappeCalendar, type FrappeCalendarProps } from "@multiplatform.one/frappe-ui";
|
|
13
|
-
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
13
|
+
import { formatCalendarDate, useResolvedKnobs } from "@multiplatform.one/theme";
|
|
14
14
|
import type { ReactElement } from "react";
|
|
15
15
|
import { useTranslation } from "react-i18next";
|
|
16
16
|
import {
|
|
@@ -34,10 +34,7 @@ const CalendarOfDoc = FrappeCalendar as (props: FrappeCalendarProps<AnyDoc>) =>
|
|
|
34
34
|
* same convention FrappeCalendar uses when persisting drag-moves.
|
|
35
35
|
*/
|
|
36
36
|
function toFrappeDateValue(date: Date, fieldtype: string | undefined): string {
|
|
37
|
-
|
|
38
|
-
const datePart = `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;
|
|
39
|
-
if (fieldtype !== "Datetime") return datePart;
|
|
40
|
-
return `${datePart} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;
|
|
37
|
+
return formatCalendarDate(date, fieldtype === "Datetime" ? "datetime" : "date");
|
|
41
38
|
}
|
|
42
39
|
|
|
43
40
|
export interface CalendarViewProps {
|
|
@@ -78,7 +78,9 @@ export function DoctypeViewScreen({ doctype, view }: DoctypeViewScreenProps) {
|
|
|
78
78
|
return (
|
|
79
79
|
<YStack flex={1}>
|
|
80
80
|
<ViewHeader doctype={doctype} view={view} />
|
|
81
|
-
<
|
|
81
|
+
<YStack flex={1} minHeight={0}>
|
|
82
|
+
<ViewBody doctype={doctype} view={view} />
|
|
83
|
+
</YStack>
|
|
82
84
|
</YStack>
|
|
83
85
|
);
|
|
84
86
|
}
|
package/src/views/KanbanView.tsx
CHANGED
|
@@ -320,7 +320,13 @@ export function KanbanView({
|
|
|
320
320
|
</Alert>
|
|
321
321
|
)}
|
|
322
322
|
{(boards.names.length > 0 || axisOptions.length > 1) && (
|
|
323
|
-
<XStack
|
|
323
|
+
<XStack
|
|
324
|
+
{...knobProps.gap}
|
|
325
|
+
{...knobProps.panelPadding}
|
|
326
|
+
paddingTop={0}
|
|
327
|
+
alignItems="center"
|
|
328
|
+
flexWrap="wrap"
|
|
329
|
+
>
|
|
324
330
|
{boards.names.length > 0 && (
|
|
325
331
|
<KanbanBoardPicker
|
|
326
332
|
names={boards.names}
|