@multiplatform.one/backoffice 7.7.0 → 7.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/dist/cjs/chrome/BackofficeAwesomebar.native.js +1 -1
  2. package/dist/cjs/chrome/BackofficeAwesomebar.native.js.map +1 -1
  3. package/dist/cjs/chrome/CommandPalette.native.js +1 -1
  4. package/dist/cjs/chrome/CommandPalette.native.js.map +1 -1
  5. package/dist/cjs/chrome/HelpMenu.native.js +1 -1
  6. package/dist/cjs/chrome/HelpMenu.native.js.map +1 -1
  7. package/dist/cjs/chrome/NotificationsButton.native.js +1 -1
  8. package/dist/cjs/chrome/NotificationsButton.native.js.map +1 -1
  9. package/dist/cjs/chrome/UserMenu.native.js +1 -1
  10. package/dist/cjs/chrome/UserMenu.native.js.map +1 -1
  11. package/dist/cjs/chrome/awesomebar-data.native.js.map +1 -1
  12. package/dist/cjs/chrome/command-palette-model.native.js +1 -1
  13. package/dist/cjs/chrome/command-palette-model.native.js.map +1 -1
  14. package/dist/cjs/chrome/help-about-dialog.native.js +1 -1
  15. package/dist/cjs/chrome/help-about-dialog.native.js.map +1 -1
  16. package/dist/cjs/chrome/help-shortcuts-dialog.native.js +1 -1
  17. package/dist/cjs/chrome/help-shortcuts-dialog.native.js.map +1 -1
  18. package/dist/cjs/chrome/notifications-data.native.js.map +1 -1
  19. package/dist/cjs/chrome/notifications-panel.native.js +1 -1
  20. package/dist/cjs/chrome/notifications-panel.native.js.map +1 -1
  21. package/dist/cjs/chrome/notifications-utils.native.js.map +1 -1
  22. package/dist/cjs/chrome/shortcuts.native.js.map +1 -1
  23. package/dist/cjs/chrome/user-session.native.js.map +1 -1
  24. package/dist/cjs/config/BackofficeProvider.native.js +1 -1
  25. package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
  26. package/dist/cjs/config/capabilities.native.js.map +1 -1
  27. package/dist/cjs/config/events.native.js.map +1 -1
  28. package/dist/cjs/config/slots.native.js.map +1 -1
  29. package/dist/cjs/desk/Desk.native.js.map +1 -1
  30. package/dist/cjs/desk/DeskSurface.native.js.map +1 -1
  31. package/dist/cjs/desk/resolveDeskPath.native.js.map +1 -1
  32. package/dist/cjs/desk/scope.native.js.map +1 -1
  33. package/dist/cjs/desk/target.native.js.map +1 -1
  34. package/dist/cjs/form/DocFormScreen.native.js +1 -1
  35. package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
  36. package/dist/cjs/form/FormConnections.native.js +1 -1
  37. package/dist/cjs/form/FormConnections.native.js.map +1 -1
  38. package/dist/cjs/form/FormDialogs.native.js +1 -1
  39. package/dist/cjs/form/FormDialogs.native.js.map +1 -1
  40. package/dist/cjs/form/FormErrorBoundary.native.js +1 -1
  41. package/dist/cjs/form/FormErrorBoundary.native.js.map +1 -1
  42. package/dist/cjs/form/FormHeaderCluster.native.js +1 -1
  43. package/dist/cjs/form/FormHeaderCluster.native.js.map +1 -1
  44. package/dist/cjs/form/FormSidebarPanel.native.js +1 -1
  45. package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
  46. package/dist/cjs/form/FormTimeline.native.js +1 -1
  47. package/dist/cjs/form/FormTimeline.native.js.map +1 -1
  48. package/dist/cjs/form/FormToolbar.native.js +1 -1
  49. package/dist/cjs/form/FormToolbar.native.js.map +1 -1
  50. package/dist/cjs/form/connections-data.native.js.map +1 -1
  51. package/dist/cjs/form/createPrefill.native.js.map +1 -1
  52. package/dist/cjs/form/dependsOn.native.js.map +1 -1
  53. package/dist/cjs/form/dirtyTracking.native.js.map +1 -1
  54. package/dist/cjs/form/docinfo.native.js.map +1 -1
  55. package/dist/cjs/form/fetchFrom.native.js.map +1 -1
  56. package/dist/cjs/form/fieldPermissions.native.js.map +1 -1
  57. package/dist/cjs/form/formActions.native.js.map +1 -1
  58. package/dist/cjs/form/formLayout.native.js.map +1 -1
  59. package/dist/cjs/form/platformHooks.native.js.map +1 -1
  60. package/dist/cjs/form/sidebar-attachments.native.js +1 -1
  61. package/dist/cjs/form/sidebar-attachments.native.js.map +1 -1
  62. package/dist/cjs/form/sidebar-dialogs.native.js +1 -1
  63. package/dist/cjs/form/sidebar-dialogs.native.js.map +1 -1
  64. package/dist/cjs/form/sidebar-people.native.js +1 -1
  65. package/dist/cjs/form/sidebar-people.native.js.map +1 -1
  66. package/dist/cjs/form/sidebar-rpc.native.js.map +1 -1
  67. package/dist/cjs/form/sidebar-utils.native.js.map +1 -1
  68. package/dist/cjs/form/timeline-entries.native.js.map +1 -1
  69. package/dist/cjs/form/timeline-utils.native.js.map +1 -1
  70. package/dist/cjs/form/useFormEngine.native.js.map +1 -1
  71. package/dist/cjs/i18n/en.native.js.map +1 -1
  72. package/dist/cjs/i18n/index.native.js.map +1 -1
  73. package/dist/cjs/index.native.js +1 -1
  74. package/dist/cjs/index.native.js.map +1 -1
  75. package/dist/cjs/list/AddTagsDialog.native.js +1 -1
  76. package/dist/cjs/list/AddTagsDialog.native.js.map +1 -1
  77. package/dist/cjs/list/AssignToDialog.native.js +1 -1
  78. package/dist/cjs/list/AssignToDialog.native.js.map +1 -1
  79. package/dist/cjs/list/DoctypeListScreen.native.js +1 -1
  80. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  81. package/dist/cjs/list/ListBulkActionsBar.native.js +1 -1
  82. package/dist/cjs/list/ListBulkActionsBar.native.js.map +1 -1
  83. package/dist/cjs/list/ListFilterBar.native.js +1 -1
  84. package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
  85. package/dist/cjs/list/ListSidebar.native.js +1 -1
  86. package/dist/cjs/list/ListSidebar.native.js.map +1 -1
  87. package/dist/cjs/list/bulk-edit-dialog.native.js +1 -1
  88. package/dist/cjs/list/bulk-edit-dialog.native.js.map +1 -1
  89. package/dist/cjs/list/bulk-export.native.js.map +1 -1
  90. package/dist/cjs/list/bulk-submit-cancel.native.js.map +1 -1
  91. package/dist/cjs/list/bulkActions.native.js.map +1 -1
  92. package/dist/cjs/list/filter-chips.native.js +1 -1
  93. package/dist/cjs/list/filter-chips.native.js.map +1 -1
  94. package/dist/cjs/list/filter-editor.native.js +1 -1
  95. package/dist/cjs/list/filter-editor.native.js.map +1 -1
  96. package/dist/cjs/list/filter-fields.native.js.map +1 -1
  97. package/dist/cjs/list/filter-saved.native.js +1 -1
  98. package/dist/cjs/list/filter-saved.native.js.map +1 -1
  99. package/dist/cjs/list/filter-sort.native.js +1 -1
  100. package/dist/cjs/list/filter-sort.native.js.map +1 -1
  101. package/dist/cjs/list/filter-standard.native.js.map +1 -1
  102. package/dist/cjs/list/filterConversion.native.js.map +1 -1
  103. package/dist/cjs/list/list-tools-sheet.native.js +1 -1
  104. package/dist/cjs/list/list-tools-sheet.native.js.map +1 -1
  105. package/dist/cjs/list/listColumns.native.js.map +1 -1
  106. package/dist/cjs/list/listFields.native.js.map +1 -1
  107. package/dist/cjs/list/listFormat.native.js.map +1 -1
  108. package/dist/cjs/list/listUrlState.native.js.map +1 -1
  109. package/dist/cjs/list/sidebar-section.native.js +1 -1
  110. package/dist/cjs/list/sidebar-section.native.js.map +1 -1
  111. package/dist/cjs/list/sidebar-stats.native.js.map +1 -1
  112. package/dist/cjs/list/statusColors.native.js.map +1 -1
  113. package/dist/cjs/navigation/navigator.native.js.map +1 -1
  114. package/dist/cjs/navigation/paths.native.js.map +1 -1
  115. package/dist/cjs/oneAdapter/index.native.js.map +1 -1
  116. package/dist/cjs/quickEntry/QuickEntryDialog.native.js +1 -1
  117. package/dist/cjs/quickEntry/QuickEntryDialog.native.js.map +1 -1
  118. package/dist/cjs/quickEntry/quickEntryPlan.native.js.map +1 -1
  119. package/dist/cjs/report/DoctypeReportView.native.js +1 -1
  120. package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
  121. package/dist/cjs/report/QueryReportScreen.native.js +1 -1
  122. package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
  123. package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
  124. package/dist/cjs/report/queryReportFilterBar.native.js +1 -1
  125. package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
  126. package/dist/cjs/report/queryReportUrlState.native.js.map +1 -1
  127. package/dist/cjs/report/report-grid.native.js +1 -1
  128. package/dist/cjs/report/report-grid.native.js.map +1 -1
  129. package/dist/cjs/report/report-toolbar.native.js +1 -1
  130. package/dist/cjs/report/report-toolbar.native.js.map +1 -1
  131. package/dist/cjs/report/reportShapes.native.js.map +1 -1
  132. package/dist/cjs/report/reportViewModel.native.js.map +1 -1
  133. package/dist/cjs/report/savedReports.native.js.map +1 -1
  134. package/dist/cjs/report/useQueryReport.native.js.map +1 -1
  135. package/dist/cjs/shared/deskLinks.native.js.map +1 -1
  136. package/dist/cjs/shared/listNavContext.native.js.map +1 -1
  137. package/dist/cjs/shared/types.native.js.map +1 -1
  138. package/dist/cjs/shared/useDocinfo.native.js.map +1 -1
  139. package/dist/cjs/shared/useDoctypeMeta.native.js.map +1 -1
  140. package/dist/cjs/shared/useFrappeApp.native.js.map +1 -1
  141. package/dist/cjs/shared/useRecentVisit.native.js.map +1 -1
  142. package/dist/cjs/shared/useSessionUserId.native.js.map +1 -1
  143. package/dist/cjs/shared/useSlugTarget.native.js.map +1 -1
  144. package/dist/cjs/shared/useUserRoles.native.js.map +1 -1
  145. package/dist/cjs/shell/BackofficeShell.native.js +1 -1
  146. package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
  147. package/dist/cjs/shell/HomeRedirect.native.js +1 -1
  148. package/dist/cjs/shell/HomeRedirect.native.js.map +1 -1
  149. package/dist/cjs/shell/NotFoundScreen.native.js +1 -1
  150. package/dist/cjs/shell/NotFoundScreen.native.js.map +1 -1
  151. package/dist/cjs/shell/SlugScreen.native.js +1 -1
  152. package/dist/cjs/shell/SlugScreen.native.js.map +1 -1
  153. package/dist/cjs/shell/WorkspaceSidebar.native.js +1 -1
  154. package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
  155. package/dist/cjs/shell/useWorkspaces.native.js.map +1 -1
  156. package/dist/cjs/shell/workspaceIcons.native.js.map +1 -1
  157. package/dist/cjs/views/CalendarView.native.js +1 -1
  158. package/dist/cjs/views/CalendarView.native.js.map +1 -1
  159. package/dist/cjs/views/DashboardView.native.js +1 -1
  160. package/dist/cjs/views/DashboardView.native.js.map +1 -1
  161. package/dist/cjs/views/DoctypeViewScreen.native.js.map +1 -1
  162. package/dist/cjs/views/ImageView.native.js +1 -1
  163. package/dist/cjs/views/ImageView.native.js.map +1 -1
  164. package/dist/cjs/views/KanbanView.native.js +1 -1
  165. package/dist/cjs/views/KanbanView.native.js.map +1 -1
  166. package/dist/cjs/views/ReportView.native.js +1 -1
  167. package/dist/cjs/views/ReportView.native.js.map +1 -1
  168. package/dist/cjs/views/TreeView.native.js +1 -1
  169. package/dist/cjs/views/TreeView.native.js.map +1 -1
  170. package/dist/cjs/views/ViewHeader.native.js +1 -1
  171. package/dist/cjs/views/ViewHeader.native.js.map +1 -1
  172. package/dist/cjs/views/ViewStates.native.js +1 -1
  173. package/dist/cjs/views/ViewStates.native.js.map +1 -1
  174. package/dist/cjs/views/ViewSwitcherMenu.native.js +1 -1
  175. package/dist/cjs/views/ViewSwitcherMenu.native.js.map +1 -1
  176. package/dist/cjs/views/calendar-field-selector.native.js +1 -1
  177. package/dist/cjs/views/calendar-field-selector.native.js.map +1 -1
  178. package/dist/cjs/views/connection.native.js.map +1 -1
  179. package/dist/cjs/views/dashboard-data.native.js.map +1 -1
  180. package/dist/cjs/views/deskViewConfigs.native.js.map +1 -1
  181. package/dist/cjs/views/kanban-board-controls.native.js +1 -1
  182. package/dist/cjs/views/kanban-board-controls.native.js.map +1 -1
  183. package/dist/cjs/views/kanban-field-picker.native.js +1 -1
  184. package/dist/cjs/views/kanban-field-picker.native.js.map +1 -1
  185. package/dist/cjs/views/kanbanBoardOps.native.js.map +1 -1
  186. package/dist/cjs/views/report-controls.native.js +1 -1
  187. package/dist/cjs/views/report-controls.native.js.map +1 -1
  188. package/dist/cjs/views/viewAvailability.native.js.map +1 -1
  189. package/dist/cjs/views/viewMeta.native.js.map +1 -1
  190. package/dist/cjs/workspace/WorkspaceChartBlock.native.js +1 -1
  191. package/dist/cjs/workspace/WorkspaceChartBlock.native.js.map +1 -1
  192. package/dist/cjs/workspace/WorkspaceGrid.native.js.map +1 -1
  193. package/dist/cjs/workspace/WorkspaceLinkCard.native.js +1 -1
  194. package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -1
  195. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +1 -1
  196. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  197. package/dist/cjs/workspace/WorkspaceNumberCard.native.js +1 -1
  198. package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -1
  199. package/dist/cjs/workspace/WorkspaceQuickList.native.js +1 -1
  200. package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
  201. package/dist/cjs/workspace/WorkspaceRecents.native.js +1 -1
  202. package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
  203. package/dist/cjs/workspace/WorkspaceScreen.native.js +1 -1
  204. package/dist/cjs/workspace/WorkspaceScreen.native.js.map +1 -1
  205. package/dist/cjs/workspace/WorkspaceShortcut.native.js +1 -1
  206. package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
  207. package/dist/cjs/workspace/parseContent.native.js.map +1 -1
  208. package/dist/cjs/workspace/types.native.js.map +1 -1
  209. package/dist/cjs/workspace/useDashboardChart.native.js.map +1 -1
  210. package/dist/cjs/workspace/useWorkspaceDoc.native.js.map +1 -1
  211. package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -1
  212. package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
  213. package/dist/esm/chrome/HelpMenu.native.js.map +1 -1
  214. package/dist/esm/chrome/NotificationsButton.native.js.map +1 -1
  215. package/dist/esm/chrome/UserMenu.native.js.map +1 -1
  216. package/dist/esm/chrome/awesomebar-data.native.js.map +1 -1
  217. package/dist/esm/chrome/command-palette-model.native.js.map +1 -1
  218. package/dist/esm/chrome/help-about-dialog.native.js.map +1 -1
  219. package/dist/esm/chrome/help-shortcuts-dialog.native.js.map +1 -1
  220. package/dist/esm/chrome/notifications-data.native.js.map +1 -1
  221. package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
  222. package/dist/esm/chrome/notifications-utils.native.js.map +1 -1
  223. package/dist/esm/chrome/shortcuts.native.js.map +1 -1
  224. package/dist/esm/chrome/user-session.native.js.map +1 -1
  225. package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
  226. package/dist/esm/config/capabilities.native.js.map +1 -1
  227. package/dist/esm/config/events.native.js.map +1 -1
  228. package/dist/esm/config/slots.native.js.map +1 -1
  229. package/dist/esm/desk/Desk.native.js.map +1 -1
  230. package/dist/esm/desk/DeskSurface.native.js.map +1 -1
  231. package/dist/esm/desk/resolveDeskPath.native.js.map +1 -1
  232. package/dist/esm/desk/scope.native.js.map +1 -1
  233. package/dist/esm/desk/target.native.js.map +1 -1
  234. package/dist/esm/form/DocFormScreen.native.js.map +1 -1
  235. package/dist/esm/form/FormConnections.native.js.map +1 -1
  236. package/dist/esm/form/FormDialogs.native.js.map +1 -1
  237. package/dist/esm/form/FormErrorBoundary.native.js.map +1 -1
  238. package/dist/esm/form/FormHeaderCluster.native.js.map +1 -1
  239. package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
  240. package/dist/esm/form/FormTimeline.native.js.map +1 -1
  241. package/dist/esm/form/FormToolbar.native.js.map +1 -1
  242. package/dist/esm/form/connections-data.native.js.map +1 -1
  243. package/dist/esm/form/createPrefill.native.js.map +1 -1
  244. package/dist/esm/form/dependsOn.native.js.map +1 -1
  245. package/dist/esm/form/dirtyTracking.native.js.map +1 -1
  246. package/dist/esm/form/docinfo.native.js.map +1 -1
  247. package/dist/esm/form/fetchFrom.native.js.map +1 -1
  248. package/dist/esm/form/fieldPermissions.native.js.map +1 -1
  249. package/dist/esm/form/formActions.native.js.map +1 -1
  250. package/dist/esm/form/formLayout.native.js.map +1 -1
  251. package/dist/esm/form/platformHooks.native.js.map +1 -1
  252. package/dist/esm/form/sidebar-attachments.native.js.map +1 -1
  253. package/dist/esm/form/sidebar-dialogs.native.js.map +1 -1
  254. package/dist/esm/form/sidebar-people.native.js.map +1 -1
  255. package/dist/esm/form/sidebar-rpc.native.js.map +1 -1
  256. package/dist/esm/form/sidebar-utils.native.js.map +1 -1
  257. package/dist/esm/form/timeline-entries.native.js.map +1 -1
  258. package/dist/esm/form/timeline-utils.native.js.map +1 -1
  259. package/dist/esm/form/useFormEngine.native.js.map +1 -1
  260. package/dist/esm/i18n/en.native.js.map +1 -1
  261. package/dist/esm/i18n/index.native.js.map +1 -1
  262. package/dist/esm/index.native.js.map +1 -1
  263. package/dist/esm/list/AddTagsDialog.native.js.map +1 -1
  264. package/dist/esm/list/AssignToDialog.native.js.map +1 -1
  265. package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
  266. package/dist/esm/list/ListBulkActionsBar.native.js.map +1 -1
  267. package/dist/esm/list/ListFilterBar.native.js.map +1 -1
  268. package/dist/esm/list/ListSidebar.native.js.map +1 -1
  269. package/dist/esm/list/bulk-edit-dialog.native.js.map +1 -1
  270. package/dist/esm/list/bulk-export.native.js.map +1 -1
  271. package/dist/esm/list/bulk-submit-cancel.native.js.map +1 -1
  272. package/dist/esm/list/bulkActions.native.js.map +1 -1
  273. package/dist/esm/list/filter-chips.native.js.map +1 -1
  274. package/dist/esm/list/filter-editor.native.js.map +1 -1
  275. package/dist/esm/list/filter-fields.native.js.map +1 -1
  276. package/dist/esm/list/filter-saved.native.js.map +1 -1
  277. package/dist/esm/list/filter-sort.native.js.map +1 -1
  278. package/dist/esm/list/filter-standard.native.js.map +1 -1
  279. package/dist/esm/list/filterConversion.native.js.map +1 -1
  280. package/dist/esm/list/list-tools-sheet.native.js.map +1 -1
  281. package/dist/esm/list/listColumns.native.js.map +1 -1
  282. package/dist/esm/list/listFields.native.js.map +1 -1
  283. package/dist/esm/list/listFormat.native.js.map +1 -1
  284. package/dist/esm/list/listUrlState.native.js.map +1 -1
  285. package/dist/esm/list/sidebar-section.native.js.map +1 -1
  286. package/dist/esm/list/sidebar-stats.native.js.map +1 -1
  287. package/dist/esm/list/statusColors.native.js.map +1 -1
  288. package/dist/esm/navigation/navigator.native.js.map +1 -1
  289. package/dist/esm/navigation/paths.native.js.map +1 -1
  290. package/dist/esm/oneAdapter/index.native.js.map +1 -1
  291. package/dist/esm/quickEntry/QuickEntryDialog.native.js.map +1 -1
  292. package/dist/esm/quickEntry/quickEntryPlan.native.js.map +1 -1
  293. package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
  294. package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
  295. package/dist/esm/report/queryReportColumns.native.js.map +1 -1
  296. package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
  297. package/dist/esm/report/queryReportUrlState.native.js.map +1 -1
  298. package/dist/esm/report/report-grid.native.js.map +1 -1
  299. package/dist/esm/report/report-toolbar.native.js.map +1 -1
  300. package/dist/esm/report/reportShapes.native.js.map +1 -1
  301. package/dist/esm/report/reportViewModel.native.js.map +1 -1
  302. package/dist/esm/report/savedReports.native.js.map +1 -1
  303. package/dist/esm/report/useQueryReport.native.js.map +1 -1
  304. package/dist/esm/shared/deskLinks.native.js.map +1 -1
  305. package/dist/esm/shared/listNavContext.native.js.map +1 -1
  306. package/dist/esm/shared/types.native.js.map +1 -1
  307. package/dist/esm/shared/useDocinfo.native.js.map +1 -1
  308. package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
  309. package/dist/esm/shared/useFrappeApp.native.js.map +1 -1
  310. package/dist/esm/shared/useRecentVisit.native.js.map +1 -1
  311. package/dist/esm/shared/useSessionUserId.native.js.map +1 -1
  312. package/dist/esm/shared/useSlugTarget.native.js.map +1 -1
  313. package/dist/esm/shared/useUserRoles.native.js.map +1 -1
  314. package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
  315. package/dist/esm/shell/HomeRedirect.native.js.map +1 -1
  316. package/dist/esm/shell/NotFoundScreen.native.js.map +1 -1
  317. package/dist/esm/shell/SlugScreen.native.js.map +1 -1
  318. package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
  319. package/dist/esm/shell/useWorkspaces.native.js.map +1 -1
  320. package/dist/esm/shell/workspaceIcons.native.js.map +1 -1
  321. package/dist/esm/views/CalendarView.native.js.map +1 -1
  322. package/dist/esm/views/DashboardView.native.js.map +1 -1
  323. package/dist/esm/views/DoctypeViewScreen.native.js.map +1 -1
  324. package/dist/esm/views/ImageView.native.js.map +1 -1
  325. package/dist/esm/views/KanbanView.native.js.map +1 -1
  326. package/dist/esm/views/ReportView.native.js.map +1 -1
  327. package/dist/esm/views/TreeView.native.js.map +1 -1
  328. package/dist/esm/views/ViewHeader.native.js.map +1 -1
  329. package/dist/esm/views/ViewStates.native.js.map +1 -1
  330. package/dist/esm/views/ViewSwitcherMenu.native.js.map +1 -1
  331. package/dist/esm/views/calendar-field-selector.native.js.map +1 -1
  332. package/dist/esm/views/connection.native.js.map +1 -1
  333. package/dist/esm/views/dashboard-data.native.js.map +1 -1
  334. package/dist/esm/views/deskViewConfigs.native.js.map +1 -1
  335. package/dist/esm/views/kanban-board-controls.native.js.map +1 -1
  336. package/dist/esm/views/kanban-field-picker.native.js.map +1 -1
  337. package/dist/esm/views/kanbanBoardOps.native.js.map +1 -1
  338. package/dist/esm/views/report-controls.native.js.map +1 -1
  339. package/dist/esm/views/viewAvailability.native.js.map +1 -1
  340. package/dist/esm/views/viewMeta.native.js.map +1 -1
  341. package/dist/esm/workspace/WorkspaceChartBlock.native.js.map +1 -1
  342. package/dist/esm/workspace/WorkspaceGrid.native.js.map +1 -1
  343. package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -1
  344. package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  345. package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -1
  346. package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
  347. package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
  348. package/dist/esm/workspace/WorkspaceScreen.native.js.map +1 -1
  349. package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
  350. package/dist/esm/workspace/parseContent.native.js.map +1 -1
  351. package/dist/esm/workspace/types.native.js.map +1 -1
  352. package/dist/esm/workspace/useDashboardChart.native.js.map +1 -1
  353. package/dist/esm/workspace/useWorkspaceDoc.native.js.map +1 -1
  354. package/package.json +14 -13
  355. package/src/chrome/CommandPalette.spec.tsx +54 -0
  356. package/src/chrome/CommandPalette.stories.tsx +207 -0
  357. package/src/desk/Desk.spec.tsx +44 -0
  358. package/src/desk/Desk.stories.tsx +299 -0
  359. package/src/desk/DeskSurface.spec.tsx +160 -0
  360. package/src/desk/DeskSurface.stories.tsx +297 -0
  361. package/src/shell/NotFoundScreen.spec.tsx +51 -0
  362. package/src/shell/NotFoundScreen.stories.tsx +79 -0
  363. package/src/views/DoctypeViewScreen.spec.tsx +110 -0
  364. package/src/views/DoctypeViewScreen.stories.tsx +279 -0
@@ -1 +1 @@
1
- {"version":3,"names":["CallModule","HttpClient","useFrappeConfig","useCallback","useEffect","useRef","useState","_instanceof","left","right","Symbol","hasInstance","callCache","Map","getCall","config","_ref","_ref1","_config_auth","_config_auth1","key","baseURL","auth","token","type","call","get","authConfig","useToken","set","CHART_GET_METHOD","useDashboardChartData","chartName","series","setSeries","isLoading","setIsLoading","fixtures","error","setError","fetchSeq","configRef","current","unsupported","runFetch","name","conn","seq","Error","res","post","chart_name","refresh","payload","message","err","String"],"sources":["../../../src/workspace/useDashboardChart.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CallModule","HttpClient","useFrappeConfig","useCallback","useEffect","useRef","useState","_instanceof","left","right","Symbol","hasInstance","callCache","Map","getCall","config","_ref","_ref1","_config_auth","_config_auth1","key","baseURL","auth","token","type","call","get","authConfig","useToken","set","CHART_GET_METHOD","useDashboardChartData","chartName","series","setSeries","isLoading","setIsLoading","fixtures","error","setError","fetchSeq","configRef","current","unsupported","runFetch","name","conn","seq","Error","res","post","chart_name","refresh","payload","message","err","String"],"sources":["useDashboardChart.native.js"],"sourcesContent":["import { CallModule, HttpClient } from \"@multiplatform.one/frappe\";\nimport { useFrappeConfig } from \"@multiplatform.one/frappe-ui\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nfunction _instanceof(left, right) {\n \"@swc/helpers - instanceof\";\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nvar callCache = /* @__PURE__ */ new Map();\nfunction getCall(config) {\n var _ref, _ref1;\n var _config_auth, _config_auth1;\n var key = `${config.baseURL}:${(_ref = (_config_auth = config.auth) === null || _config_auth === void 0 ? void 0 : _config_auth.token) !== null && _ref !== void 0 ? _ref : \"\"}:${(_ref1 = (_config_auth1 = config.auth) === null || _config_auth1 === void 0 ? void 0 : _config_auth1.type) !== null && _ref1 !== void 0 ? _ref1 : \"\"}`;\n var call = callCache.get(key);\n if (!call) {\n var authConfig = config.auth ? {\n useToken: config.auth.useToken,\n token: config.auth.token,\n type: config.auth.type\n } : void 0;\n call = new CallModule(new HttpClient(config.baseURL, authConfig));\n callCache.set(key, call);\n }\n return call;\n}\nvar CHART_GET_METHOD = \"frappe.desk.doctype.dashboard_chart.dashboard_chart.get\";\nfunction useDashboardChartData(chartName) {\n var config = useFrappeConfig();\n var [series, setSeries] = useState(void 0);\n var [isLoading, setIsLoading] = useState(!!chartName && !(config === null || config === void 0 ? void 0 : config.fixtures));\n var [error, setError] = useState(void 0);\n var fetchSeq = useRef(0);\n var configRef = useRef(config);\n configRef.current = config;\n var unsupported = !!(config === null || config === void 0 ? void 0 : config.fixtures);\n var runFetch = useCallback(async function(name) {\n var conn = configRef.current;\n if (conn === null || conn === void 0 ? void 0 : conn.fixtures) return;\n var seq = ++fetchSeq.current;\n setIsLoading(true);\n setError(void 0);\n try {\n if (!(conn === null || conn === void 0 ? void 0 : conn.baseURL)) {\n throw new Error(\"useDashboardChartData requires a FrappeProvider with baseURL\");\n }\n var res = await getCall(conn).post(CHART_GET_METHOD, {\n chart_name: name,\n refresh: 1\n });\n if (seq !== fetchSeq.current) return;\n setSeries(res.payload.message);\n } catch (err) {\n if (seq !== fetchSeq.current) return;\n setError(_instanceof(err, Error) ? err : new Error(String(err)));\n } finally {\n if (seq === fetchSeq.current) setIsLoading(false);\n }\n }, []);\n useEffect(function() {\n if (!chartName || unsupported) {\n setIsLoading(false);\n return;\n }\n void runFetch(chartName);\n }, [\n chartName,\n unsupported,\n runFetch,\n config === null || config === void 0 ? void 0 : config.baseURL\n ]);\n var refresh = useCallback(function() {\n if (chartName) void runFetch(chartName);\n }, [\n chartName,\n runFetch\n ]);\n return {\n series,\n isLoading,\n error,\n unsupported,\n refresh\n };\n}\nexport {\n useDashboardChartData\n};\n//# sourceMappingURL=useDashboardChart.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["DbModule","HttpClient","useFrappeConfig","useCallback","useEffect","useRef","useState","_instanceof","left","right","Symbol","hasInstance","dbCache","Map","getDb","config","_ref","_ref1","_config_auth","_config_auth1","key","baseURL","auth","token","type","db","get","authConfig","useToken","set","useFrappeDoc","doctype","name","doc","setDoc","isLoading","setIsLoading","error","setError","fetchSeq","configRef","current","runFetch","docName","conn","seq","result","fixtures","fixtureDoc","getDoc","Error","err","String"],"sources":["../../../src/workspace/useWorkspaceDoc.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DbModule","HttpClient","useFrappeConfig","useCallback","useEffect","useRef","useState","_instanceof","left","right","Symbol","hasInstance","dbCache","Map","getDb","config","_ref","_ref1","_config_auth","_config_auth1","key","baseURL","auth","token","type","db","get","authConfig","useToken","set","useFrappeDoc","doctype","name","doc","setDoc","isLoading","setIsLoading","error","setError","fetchSeq","configRef","current","runFetch","docName","conn","seq","result","fixtures","fixtureDoc","getDoc","Error","err","String","refresh","isPermissionError","status","useWorkspaceDoc","workspace"],"sources":["useWorkspaceDoc.native.js"],"sourcesContent":["import { DbModule, HttpClient } from \"@multiplatform.one/frappe\";\nimport { useFrappeConfig } from \"@multiplatform.one/frappe-ui\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nfunction _instanceof(left, right) {\n \"@swc/helpers - instanceof\";\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nvar dbCache = /* @__PURE__ */ new Map();\nfunction getDb(config) {\n var _ref, _ref1;\n var _config_auth, _config_auth1;\n var key = `${config.baseURL}:${(_ref = (_config_auth = config.auth) === null || _config_auth === void 0 ? void 0 : _config_auth.token) !== null && _ref !== void 0 ? _ref : \"\"}:${(_ref1 = (_config_auth1 = config.auth) === null || _config_auth1 === void 0 ? void 0 : _config_auth1.type) !== null && _ref1 !== void 0 ? _ref1 : \"\"}`;\n var db = dbCache.get(key);\n if (!db) {\n var authConfig = config.auth ? {\n useToken: config.auth.useToken,\n token: config.auth.token,\n type: config.auth.type\n } : void 0;\n db = new DbModule(new HttpClient(config.baseURL, authConfig));\n dbCache.set(key, db);\n }\n return db;\n}\nfunction useFrappeDoc(doctype, name) {\n var config = useFrappeConfig();\n var [doc, setDoc] = useState(void 0);\n var [isLoading, setIsLoading] = useState(!!name);\n var [error, setError] = useState(void 0);\n var fetchSeq = useRef(0);\n var configRef = useRef(config);\n configRef.current = config;\n var runFetch = useCallback(\n async function(docName) {\n var conn = configRef.current;\n var seq = ++fetchSeq.current;\n setIsLoading(true);\n setError(void 0);\n try {\n var result;\n if (conn === null || conn === void 0 ? void 0 : conn.fixtures) {\n var fixtureDoc = await conn.fixtures.getDoc(doctype, docName);\n if (!fixtureDoc) throw new Error(`${doctype} ${docName} not found`);\n result = fixtureDoc;\n } else if (conn === null || conn === void 0 ? void 0 : conn.baseURL) {\n result = await getDb(conn).getDoc(doctype, docName);\n } else {\n throw new Error(\"useFrappeDoc requires a FrappeProvider with baseURL or fixtures\");\n }\n if (seq !== fetchSeq.current) return;\n setDoc(result);\n } catch (err) {\n if (seq !== fetchSeq.current) return;\n setDoc(void 0);\n setError(_instanceof(err, Error) ? err : new Error(String(err)));\n } finally {\n if (seq === fetchSeq.current) setIsLoading(false);\n }\n },\n // doctype is stable per hook usage; config flows through configRef.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n doctype\n ]\n );\n useEffect(function() {\n if (!name) {\n setDoc(void 0);\n setIsLoading(false);\n return;\n }\n void runFetch(name);\n }, [\n name,\n runFetch,\n config === null || config === void 0 ? void 0 : config.baseURL,\n config === null || config === void 0 ? void 0 : config.fixtures\n ]);\n var refresh = useCallback(function() {\n if (name) void runFetch(name);\n }, [\n name,\n runFetch\n ]);\n var isPermissionError = (error === null || error === void 0 ? void 0 : error.status) === 403;\n return {\n doc,\n isLoading,\n error,\n isPermissionError,\n refresh\n };\n}\nfunction useWorkspaceDoc(workspace) {\n return useFrappeDoc(\"Workspace\", workspace);\n}\nexport {\n useFrappeDoc,\n useWorkspaceDoc\n};\n//# sourceMappingURL=useWorkspaceDoc.js.map\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/backoffice",
3
- "version": "7.7.0",
3
+ "version": "7.7.2",
4
4
  "description": "Embeddable Frappe desk recreation (backoffice) for the multiplatform.one stack",
5
5
  "keywords": [
6
6
  "backoffice",
@@ -33,7 +33,8 @@
33
33
  "!types/.tsbuildinfo"
34
34
  ],
35
35
  "sideEffects": [
36
- "**/*.css"
36
+ "**/*.css",
37
+ "src/**"
37
38
  ],
38
39
  "main": "src/index.ts",
39
40
  "module": "src/index.ts",
@@ -72,15 +73,15 @@
72
73
  "dependencies": {
73
74
  "@phosphor-icons/react": "^2.1.10",
74
75
  "tamagui": "2.7.6",
75
- "@multiplatform.one/components": "7.7.0",
76
- "@multiplatform.one/forms": "7.7.0",
77
- "@multiplatform.one/frappe": "7.7.0",
78
- "@multiplatform.one/frappe-ui": "7.7.0",
79
- "@multiplatform.one/i18n": "7.7.0",
80
- "@multiplatform.one/platform": "7.7.0",
81
- "@multiplatform.one/store": "7.7.0",
82
- "@multiplatform.one/table": "7.7.0",
83
- "@multiplatform.one/theme": "7.7.0"
76
+ "@multiplatform.one/components": "7.7.2",
77
+ "@multiplatform.one/forms": "7.7.2",
78
+ "@multiplatform.one/frappe": "7.7.2",
79
+ "@multiplatform.one/frappe-ui": "7.7.2",
80
+ "@multiplatform.one/i18n": "7.7.2",
81
+ "@multiplatform.one/platform": "7.7.2",
82
+ "@multiplatform.one/store": "7.7.2",
83
+ "@multiplatform.one/table": "7.7.2",
84
+ "@multiplatform.one/theme": "7.7.2"
84
85
  },
85
86
  "devDependencies": {
86
87
  "@tamagui/build": "2.7.6",
@@ -94,8 +95,8 @@
94
95
  "react-dom": "19.2.5",
95
96
  "react-i18next": "^16.6.6",
96
97
  "vitest": "^4.1.5",
97
- "@multiplatform.one/config": "7.7.0",
98
- "@multiplatform.one/test-utils": "7.7.0"
98
+ "@multiplatform.one/config": "7.7.2",
99
+ "@multiplatform.one/test-utils": "7.7.2"
99
100
  },
100
101
  "peerDependencies": {
101
102
  "i18next": "^25.0.0",
@@ -6,6 +6,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
6
6
  import { createMemoryNavigator } from "../navigation/navigator";
7
7
  import { BackofficeShell } from "../shell/BackofficeShell";
8
8
  import { BackofficeProvider, type BackofficeProviderProps } from "../config/BackofficeProvider";
9
+ import { CommandPalette } from "./CommandPalette";
9
10
  import type { RecentItem } from "./awesomebar-data";
10
11
 
11
12
  // The shared desk recents store rides @multiplatform.one/store, which the
@@ -304,3 +305,56 @@ describe("CommandPalette capability + scoping", () => {
304
305
  expect(screen.queryByTestId("backoffice-palette-section-documents")).toBeNull();
305
306
  });
306
307
  });
308
+
309
+ // ---------------------------------------------------------------------------
310
+ // Standalone mount (MPO-189) — the shape CommandPalette.stories.tsx uses:
311
+ // the palette controlled directly, with no shell and no trigger, so the
312
+ // section model is reachable without the navbar.
313
+ // ---------------------------------------------------------------------------
314
+
315
+ function renderStandalone(open = true) {
316
+ const navigation = createMemoryNavigator("/backoffice");
317
+ const onOpenChange = vi.fn();
318
+ return {
319
+ navigation,
320
+ onOpenChange,
321
+ ...renderWithProviders(
322
+ <BackofficeProvider
323
+ frappe={{ baseURL: MOCK_HOST, fixtures: makeFixtures() }}
324
+ navigation={navigation}
325
+ >
326
+ <CommandPalette open={open} onOpenChange={onOpenChange} />
327
+ </BackofficeProvider>,
328
+ ),
329
+ };
330
+ }
331
+
332
+ describe("CommandPalette standalone (story shape)", () => {
333
+ it("mounts open with no shell and no trigger, showing recents", async () => {
334
+ renderStandalone();
335
+ const palette = await screen.findByTestId("backoffice-command-palette");
336
+ expect(palette).toBeTruthy();
337
+ expect(await screen.findByTestId("backoffice-palette-section-recents")).toBeTruthy();
338
+ // No navbar in this shape — the palette owns no trigger of its own.
339
+ expect(screen.queryByTestId("backoffice-awesomebar")).toBeNull();
340
+ });
341
+
342
+ it("open={false} paints nothing", () => {
343
+ renderStandalone(false);
344
+ expect(screen.queryByTestId("backoffice-command-palette")).toBeNull();
345
+ });
346
+
347
+ it("a pick navigates through the provider navigator and asks the host to close", async () => {
348
+ const { navigation, onOpenChange } = renderStandalone();
349
+ const palette = await screen.findByTestId("backoffice-command-palette");
350
+ const input = palette.querySelector("input");
351
+ if (!input) throw new Error("palette input not found");
352
+
353
+ fireEvent.change(input, { target: { value: "note" } });
354
+ await waitFor(() => findOption("New Note"));
355
+ fireEvent.keyDown(input, { key: "Enter" });
356
+
357
+ expect(navigation.getLocation().path).toBe("/backoffice/note/new");
358
+ expect(onOpenChange).toHaveBeenCalledWith(false);
359
+ });
360
+ });
@@ -0,0 +1,207 @@
1
+ // OWNER: backoffice screens workstream (MPO-189).
2
+ // CommandPalette stories (MOD-01). The Awesomebar story only shows the
3
+ // TRIGGER; these mount the palette itself, open, so the section model
4
+ // (recents → actions → navigation → documents) and the roving highlight are
5
+ // visible without a keystroke.
6
+ //
7
+ // Fixtures do the work: the DocType + Workspace catalog is read straight
8
+ // from the fixture provider (awesomebar-data's fixture branch), recents come
9
+ // from the shared desk store seeded below, and only the document section
10
+ // needs the desk full-text RPC — answered by a fetch mock scoped to this
11
+ // story's mock host.
12
+ import { Button } from "@multiplatform.one/forms";
13
+ import { InMemoryFixtureProvider } from "@multiplatform.one/frappe";
14
+ import { storage } from "@multiplatform.one/store";
15
+ import { Text, YStack } from "@multiplatform.one/components";
16
+ import { useState, type ReactNode } from "react";
17
+ import { BackofficeProvider } from "../config/BackofficeProvider";
18
+ import { createMemoryNavigator } from "../navigation/navigator";
19
+ import { CommandPalette } from "./CommandPalette";
20
+
21
+ const meta = {
22
+ title: "Screens/Backoffice/CommandPalette",
23
+ component: CommandPalette,
24
+ tags: ["!test"],
25
+ parameters: {
26
+ status: { type: "stable" },
27
+ layout: "fullscreen",
28
+ docs: {
29
+ description: {
30
+ component:
31
+ "Linear / Spotlight / Frappe awesomebar in one surface: an empty query lists recent documents; typing adds contextual actions for the best doctype match (New / List / Report / Kanban), workspace and doctype navigation, and document hits from the desk full-text index. Keyboard-first — the search input is the single tab stop, arrows move one roving highlight across sections, Enter opens, Escape closes and returns focus. Two containers, one model: a centered modal overlay on wide web, a full-height sheet below the medium breakpoint.",
32
+ },
33
+ },
34
+ },
35
+ };
36
+ export default meta;
37
+
38
+ const MOCK_HOST = "https://backoffice-command-palette.mock.test";
39
+
40
+ const doctypes = [
41
+ "ToDo",
42
+ "ToDo Template",
43
+ "Note",
44
+ "User",
45
+ "Role",
46
+ "Sales Order",
47
+ "Sales Invoice",
48
+ "Item",
49
+ ];
50
+
51
+ const workspaces = [
52
+ {
53
+ name: "todos",
54
+ doctype: "Workspace",
55
+ title: "Todos",
56
+ icon: "tool",
57
+ parent_page: "",
58
+ public: 1,
59
+ for_user: "",
60
+ sequence_id: 1,
61
+ module: "Automation",
62
+ is_hidden: 0,
63
+ },
64
+ {
65
+ name: "selling",
66
+ doctype: "Workspace",
67
+ title: "Selling",
68
+ icon: "sell",
69
+ parent_page: "",
70
+ public: 1,
71
+ for_user: "",
72
+ sequence_id: 2,
73
+ module: "Selling",
74
+ is_hidden: 0,
75
+ },
76
+ ];
77
+
78
+ const makeFixtures = () =>
79
+ new InMemoryFixtureProvider({
80
+ DocType: doctypes.map((name) => ({ name, doctype: "DocType" })),
81
+ Workspace: workspaces,
82
+ "Notification Log": [],
83
+ });
84
+
85
+ /**
86
+ * Recents ride the SHARED desk store — the same key frappe-ui's DeskSidebar
87
+ * writes — so an empty query has something to show. Seeded once, web only.
88
+ */
89
+ (() => {
90
+ if (typeof window === "undefined") return;
91
+ const w = window as unknown as Record<string, unknown>;
92
+ if (w.__commandPaletteRecentsSeeded) return;
93
+ w.__commandPaletteRecentsSeeded = true;
94
+ void storage.setItem(
95
+ "frappe-desk-recent",
96
+ JSON.stringify([
97
+ { label: "SO-0042 · Sales Order", path: "/backoffice/sales-order/SO-0042" },
98
+ { label: "TD-0007 · ToDo", path: "/backoffice/todo/TD-0007" },
99
+ { label: "Selling", path: "/backoffice/selling" },
100
+ ]),
101
+ );
102
+ })();
103
+
104
+ /**
105
+ * Document hits need frappe.utils.global_search.search; everything else on
106
+ * the mock host answers empty (and the session probe answers null, so the
107
+ * inert host never mints a truthy user).
108
+ */
109
+ (() => {
110
+ if (typeof window === "undefined") return;
111
+ const w = window as unknown as Record<string, unknown>;
112
+ if (w.__commandPaletteMockFetch) return;
113
+ w.__commandPaletteMockFetch = true;
114
+ const realFetch = window.fetch.bind(window);
115
+ const json = (body: unknown) =>
116
+ new Response(JSON.stringify(body), {
117
+ status: 200,
118
+ headers: { "Content-Type": "application/json" },
119
+ });
120
+ window.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {
121
+ const urlStr =
122
+ typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
123
+ if (!urlStr.startsWith(MOCK_HOST)) return realFetch(input as RequestInfo, init);
124
+ const { pathname } = new URL(urlStr);
125
+ if (pathname.endsWith("frappe.utils.global_search.search")) {
126
+ return json({
127
+ message: [
128
+ {
129
+ doctype: "ToDo",
130
+ name: "TD-0007",
131
+ content: "Description: pay the rent ||| Status: Open",
132
+ },
133
+ {
134
+ doctype: "Sales Order",
135
+ name: "SO-0042",
136
+ content: "Customer: ACME Corp ||| Status: To Deliver",
137
+ },
138
+ ],
139
+ });
140
+ }
141
+ if (pathname.endsWith("frappe.auth.get_logged_user")) return json({ message: null });
142
+ return json({ data: [], message: [] });
143
+ };
144
+ })();
145
+
146
+ function Host({ children }: { children: ReactNode }) {
147
+ return (
148
+ <BackofficeProvider
149
+ frappe={{ baseURL: MOCK_HOST, fixtures: makeFixtures() }}
150
+ navigation={createMemoryNavigator("/backoffice")}
151
+ >
152
+ <YStack flex={1} height={620} padding="$4" gap="$3" backgroundColor="$color2">
153
+ {children}
154
+ </YStack>
155
+ </BackofficeProvider>
156
+ );
157
+ }
158
+
159
+ /**
160
+ * Open on an empty query: the Recents section from the shared desk store.
161
+ * Type to fill Actions / Navigation / Documents; Escape closes.
162
+ */
163
+ export const Overlay = () => {
164
+ const [open, setOpen] = useState(true);
165
+ return (
166
+ <Host>
167
+ <Text>Page behind the palette.</Text>
168
+ <Button onPress={() => setOpen(true)}>Open palette</Button>
169
+ <CommandPalette open={open} onOpenChange={setOpen} />
170
+ </Host>
171
+ );
172
+ };
173
+ Overlay.storyName = "Main";
174
+
175
+ /**
176
+ * Closed: the palette owns no trigger of its own (the navbar awesomebar and
177
+ * the Mod+K shortcut open it), so the closed state is the host page with
178
+ * nothing painted over it.
179
+ */
180
+ export const Closed = () => {
181
+ const [open, setOpen] = useState(false);
182
+ return (
183
+ <Host>
184
+ <Text>Nothing is painted over the page while the palette is closed.</Text>
185
+ <Button onPress={() => setOpen(true)}>Open palette</Button>
186
+ <CommandPalette open={open} onOpenChange={setOpen} />
187
+ </Host>
188
+ );
189
+ };
190
+
191
+ /**
192
+ * The compact container. The palette picks its container from the VIEWPORT,
193
+ * not a prop (useLayoutSizeClass): below the medium breakpoint — and on
194
+ * native always — the same section model renders as a full-height
195
+ * SheetModal instead of the centered overlay. Narrow the preview pane (or
196
+ * pick a phone viewport) to see this arm switch containers; it is the same
197
+ * story otherwise, which is the point.
198
+ */
199
+ export const CompactSheet = () => {
200
+ const [open, setOpen] = useState(true);
201
+ return (
202
+ <Host>
203
+ <Text>Narrow the preview below the medium breakpoint to get the sheet container.</Text>
204
+ <CommandPalette open={open} onOpenChange={setOpen} />
205
+ </Host>
206
+ );
207
+ };
@@ -285,3 +285,47 @@ describe("two Desks on one page (DK-7)", () => {
285
285
  expect(screen.getByTestId("scope-b").textContent).toBe('[["company","=","B"]]');
286
286
  });
287
287
  });
288
+
289
+ // ---------------------------------------------------------------------------
290
+ // Story-shape arms (MPO-189) — the narrowings Desk.stories.tsx demonstrates,
291
+ // pinned here so a chrome default can never drift silently.
292
+ // ---------------------------------------------------------------------------
293
+
294
+ describe("<Desk /> chrome narrowings", () => {
295
+ it('chrome="bare" keeps the banner and forces the sidebar capability off', () => {
296
+ renderWithProviders(
297
+ <Desk frappe={frappe()} doctype="ToDo" chrome="bare" surfaces={{ list: SurfaceProbe }} />,
298
+ );
299
+ // Banner present…
300
+ expect(screen.getByTestId("backoffice-shell")).toBeTruthy();
301
+ expect(screen.getByTestId("backoffice-awesomebar")).toBeTruthy();
302
+ // …rail gone: bare merges `sidebar: false` into capabilities, so nothing
303
+ // downstream can put it back.
304
+ expect(screen.queryByTestId("backoffice-sidebar-rail")).toBeNull();
305
+ expect(screen.queryByTestId("backoffice-sidebar-toggle")).toBeNull();
306
+ });
307
+
308
+ it("`embedded` is sugar for chrome='content' (no banner, no rail)", () => {
309
+ renderWithProviders(
310
+ <Desk frappe={frappe()} workspace="Tools" embedded surfaces={{ workspace: SurfaceProbe }} />,
311
+ );
312
+ expect(screen.queryByTestId("backoffice-shell")).toBeNull();
313
+ expect(screen.getByTestId("probe-workspace").textContent).toContain('"Tools"');
314
+ });
315
+
316
+ it("a view pin enters on that view rather than the list", () => {
317
+ renderWithProviders(
318
+ <Desk frappe={frappe()} doctype="ToDo" view="kanban" surfaces={{ view: SurfaceProbe }} />,
319
+ );
320
+ const probe = screen.getByTestId("probe-view");
321
+ expect(probe.textContent).toContain('"kanban"');
322
+ expect(probe.textContent).toContain('"ToDo"');
323
+ });
324
+
325
+ it('name="new" enters create mode', () => {
326
+ renderWithProviders(
327
+ <Desk frappe={frappe()} doctype="ToDo" name="new" surfaces={{ new: SurfaceProbe }} />,
328
+ );
329
+ expect(screen.getByTestId("probe-new").textContent).toContain('"ToDo"');
330
+ });
331
+ });