@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
@@ -0,0 +1,299 @@
1
+ // OWNER: backoffice screens workstream (MPO-189).
2
+ // <Desk /> stories: the whole desk as one component. One required prop, and
3
+ // that prop is nothing — `<Desk />` renders the full desk, and every other
4
+ // arm here is a NARROWING of that: a pin, a chrome mode, a fence, a surface
5
+ // override.
6
+ //
7
+ // Everything rides fixtures. Doctype meta comes from the fixture provider's
8
+ // "DocType" collection, rows and Workspace docs from the same
9
+ // InMemoryFixtureProvider, and a fetch mock scoped to this story's mock host
10
+ // keeps the navbar's session probe and the desk's catalog reads off the
11
+ // network. Navigation is internal: with no `navigation` prop Desk seeds its
12
+ // own MemoryNavigator from the pins, so the host URL never moves.
13
+ import { Text, YStack } from "@multiplatform.one/components";
14
+ import { InMemoryFixtureProvider } from "@multiplatform.one/frappe";
15
+ import type { ReactNode } from "react";
16
+ import { Desk } from "./Desk";
17
+ import type { DeskSurfaceProps } from "./DeskSurface";
18
+
19
+ const meta = {
20
+ title: "Screens/Backoffice/Desk",
21
+ component: Desk,
22
+ tags: ["!test"],
23
+ parameters: {
24
+ status: { type: "stable" },
25
+ layout: "fullscreen",
26
+ docs: {
27
+ description: {
28
+ component:
29
+ "The embeddable desk: navbar and workspace rail, the resolved surface underneath, and one memory navigator when the host supplies no router. Pins (doctype / name / view / workspace / report / path) set the entry surface and, for a doctype pin, the reachability fence; `chrome` picks full banner + rail, banner only, or no chrome at all; `surfaces` replaces a whole screen per kind or per doctype; `scope` filters are ANDed into every doctype-homed query and cannot be cleared from the filter chrome.",
30
+ },
31
+ },
32
+ },
33
+ };
34
+ export default meta;
35
+
36
+ const MOCK_HOST = "https://backoffice-desk.mock.test";
37
+
38
+ // ---------------------------------------------------------------------------
39
+ // Fixtures
40
+ // ---------------------------------------------------------------------------
41
+
42
+ const TASK_DOCTYPE = "QaDeskWorkItem";
43
+ const FIRST_TASK = "QDW-0001";
44
+
45
+ const taskMeta = {
46
+ name: TASK_DOCTYPE,
47
+ doctype: "DocType",
48
+ module: "QA",
49
+ title_field: "subject",
50
+ fields: [
51
+ { fieldname: "subject", fieldtype: "Data", label: "Subject", in_list_view: 1, reqd: 1 },
52
+ {
53
+ fieldname: "status",
54
+ fieldtype: "Select",
55
+ label: "Status",
56
+ options: "Open\nWorking\nDone",
57
+ in_list_view: 1,
58
+ },
59
+ {
60
+ fieldname: "priority",
61
+ fieldtype: "Select",
62
+ label: "Priority",
63
+ options: "High\nMedium\nLow",
64
+ in_list_view: 1,
65
+ },
66
+ { fieldname: "company", fieldtype: "Data", label: "Company", in_list_view: 1 },
67
+ { fieldname: "owner_name", fieldtype: "Data", label: "Owner", in_list_view: 1 },
68
+ ],
69
+ permissions: [{ role: "All", read: 1, write: 1, create: 1 }],
70
+ };
71
+
72
+ const statuses = ["Open", "Working", "Done"];
73
+ const priorities = ["High", "Medium", "Low"];
74
+ const companies = ["Acme", "Globex"];
75
+ const owners = ["ana", "bo", "cyrus", "dee"];
76
+
77
+ const taskDocs = Array.from({ length: 14 }, (_, i) => ({
78
+ name: `QDW-${String(i + 1).padStart(4, "0")}`,
79
+ doctype: TASK_DOCTYPE,
80
+ subject: `Work item ${i + 1}: ${["triage inbox", "ship release", "write docs", "fix flaky test"][i % 4]}`,
81
+ status: statuses[i % statuses.length],
82
+ priority: priorities[i % priorities.length],
83
+ company: companies[i % companies.length],
84
+ owner_name: owners[i % owners.length],
85
+ }));
86
+
87
+ const workspaceDocs = [
88
+ {
89
+ name: "Tools",
90
+ doctype: "Workspace",
91
+ label: "Tools",
92
+ title: "Tools",
93
+ icon: "tool",
94
+ module: "Automation",
95
+ parent_page: "",
96
+ public: 1,
97
+ for_user: "",
98
+ sequence_id: 1,
99
+ is_hidden: 0,
100
+ content: JSON.stringify([
101
+ {
102
+ id: "h1",
103
+ type: "header",
104
+ data: { text: '<span class="h4"><b>Your Shortcuts</b></span>', col: 12 },
105
+ },
106
+ { id: "s1", type: "shortcut", data: { shortcut_name: "Work Items", col: 3 } },
107
+ {
108
+ id: "p1",
109
+ type: "paragraph",
110
+ data: { text: "This whole desk is served from fixtures.<br>", col: 12 },
111
+ },
112
+ ]),
113
+ shortcuts: [{ name: "sc1", type: "DocType", link_to: TASK_DOCTYPE, label: "Work Items" }],
114
+ links: [],
115
+ charts: [],
116
+ number_cards: [],
117
+ quick_lists: [],
118
+ },
119
+ {
120
+ name: "Users",
121
+ doctype: "Workspace",
122
+ label: "Users",
123
+ title: "Users",
124
+ icon: "users",
125
+ module: "Core",
126
+ parent_page: "",
127
+ public: 1,
128
+ for_user: "",
129
+ sequence_id: 2,
130
+ is_hidden: 0,
131
+ content: JSON.stringify([]),
132
+ shortcuts: [],
133
+ links: [],
134
+ charts: [],
135
+ number_cards: [],
136
+ quick_lists: [],
137
+ },
138
+ ];
139
+
140
+ const makeFixtures = () =>
141
+ new InMemoryFixtureProvider({
142
+ DocType: [taskMeta],
143
+ Workspace: workspaceDocs,
144
+ "Notification Log": [],
145
+ [TASK_DOCTYPE]: taskDocs,
146
+ });
147
+
148
+ const frappe = () => ({ baseURL: MOCK_HOST, fixtures: makeFixtures() });
149
+
150
+ /**
151
+ * Quiet fetch mock for the mock host (navbar session probe, catalog reads),
152
+ * so no arm ever hits the network. The session probe must answer null: the
153
+ * generic `message: []` reads as a truthy user docname and crashes the
154
+ * avatar's initials (BackofficeShell.stories precedent). Web only.
155
+ */
156
+ (() => {
157
+ if (typeof window === "undefined") return;
158
+ const w = window as unknown as Record<string, unknown>;
159
+ if (w.__deskStoriesMockFetch) return;
160
+ w.__deskStoriesMockFetch = true;
161
+ const realFetch = window.fetch.bind(window);
162
+ window.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {
163
+ const urlStr =
164
+ typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
165
+ if (!urlStr.startsWith(MOCK_HOST)) return realFetch(input as RequestInfo, init);
166
+ const body =
167
+ new URL(urlStr).pathname === "/api/method/frappe.auth.get_logged_user"
168
+ ? { message: null }
169
+ : { data: [], message: [] };
170
+ return new Response(JSON.stringify(body), {
171
+ status: 200,
172
+ headers: { "Content-Type": "application/json" },
173
+ });
174
+ };
175
+ })();
176
+
177
+ function Frame({ children }: { children: ReactNode }) {
178
+ return (
179
+ <YStack height={680} minHeight={0}>
180
+ {children}
181
+ </YStack>
182
+ );
183
+ }
184
+
185
+ // ---------------------------------------------------------------------------
186
+ // Arms
187
+ // ---------------------------------------------------------------------------
188
+
189
+ /**
190
+ * No required props: full chrome (navbar + workspace rail) and the home
191
+ * surface, which lands on the default workspace.
192
+ */
193
+ export const FullDesk = () => (
194
+ <Frame>
195
+ <Desk frappe={frappe()} />
196
+ </Frame>
197
+ );
198
+ FullDesk.storyName = "Main";
199
+
200
+ /**
201
+ * A doctype pin. It sets the entry surface (the list) AND the reachability
202
+ * fence, and it flips the chrome default to "content" — the embedded shape a
203
+ * host drops into its own page.
204
+ */
205
+ export const PinnedList = () => (
206
+ <Frame>
207
+ <Desk frappe={frappe()} doctype={TASK_DOCTYPE} />
208
+ </Frame>
209
+ );
210
+
211
+ /** doctype + name: the document form, still fenced to that one doctype. */
212
+ export const PinnedForm = () => (
213
+ <Frame>
214
+ <Desk frappe={frappe()} doctype={TASK_DOCTYPE} name={FIRST_TASK} />
215
+ </Frame>
216
+ );
217
+
218
+ /** doctype + name="new": create mode. */
219
+ export const PinnedNewDocument = () => (
220
+ <Frame>
221
+ <Desk frappe={frappe()} doctype={TASK_DOCTYPE} name="new" />
222
+ </Frame>
223
+ );
224
+
225
+ /** doctype + view: an alternate view as the entry surface. */
226
+ export const PinnedKanban = () => (
227
+ <Frame>
228
+ <Desk frappe={frappe()} doctype={TASK_DOCTYPE} view="kanban" />
229
+ </Frame>
230
+ );
231
+
232
+ /** A workspace pin: one page, no rail. */
233
+ export const PinnedWorkspace = () => (
234
+ <Frame>
235
+ <Desk frappe={frappe()} workspace="Tools" />
236
+ </Frame>
237
+ );
238
+
239
+ /**
240
+ * chrome="bare": the banner without the workspace rail. The sidebar
241
+ * capability is forced off with it, so nothing can put the rail back.
242
+ */
243
+ export const BareChrome = () => (
244
+ <Frame>
245
+ <Desk frappe={frappe()} doctype={TASK_DOCTYPE} chrome="bare" />
246
+ </Frame>
247
+ );
248
+
249
+ /** chrome="full" over a pin: the pin picks the surface, the host picks the chrome. */
250
+ export const PinnedWithFullChrome = () => (
251
+ <Frame>
252
+ <Desk frappe={frappe()} doctype={TASK_DOCTYPE} chrome="full" />
253
+ </Frame>
254
+ );
255
+
256
+ /** `embedded` is sugar for chrome="content": the surface and nothing else. */
257
+ export const Embedded = () => (
258
+ <Frame>
259
+ <Desk frappe={frappe()} workspace="Tools" embedded />
260
+ </Frame>
261
+ );
262
+
263
+ /**
264
+ * `scope` is the tenant seam: ANDed into every doctype-homed query, invisible
265
+ * to the filter chrome and not removable by the user. Here the desk can only
266
+ * ever see Acme rows, on the list and on every alternate view.
267
+ */
268
+ export const ScopedToOneTenant = () => (
269
+ <Frame>
270
+ <Desk frappe={frappe()} doctype={TASK_DOCTYPE} scope={[["company", "=", "Acme"]]} />
271
+ </Frame>
272
+ );
273
+
274
+ function HostSurface({ target }: DeskSurfaceProps) {
275
+ return (
276
+ <YStack
277
+ flex={1}
278
+ padding="$4"
279
+ gap="$2"
280
+ borderWidth={1}
281
+ borderColor="$borderColor"
282
+ borderRadius="$3"
283
+ backgroundColor="$color2"
284
+ >
285
+ <Text>{`host-rendered surface for kind "${target.kind}"`}</Text>
286
+ <Text>{JSON.stringify(target)}</Text>
287
+ </YStack>
288
+ );
289
+ }
290
+
291
+ /**
292
+ * `surfaces` replaces a whole screen. Overrides are per-Desk by
293
+ * construction, so two desks on one page never see each other's.
294
+ */
295
+ export const HostSurfaceOverride = () => (
296
+ <Frame>
297
+ <Desk frappe={frappe()} doctype={TASK_DOCTYPE} surfaces={{ list: HostSurface }} />
298
+ </Frame>
299
+ );
@@ -0,0 +1,160 @@
1
+ /**
2
+ * DeskSurface specs (MPO-189) — the target→surface switch, mounted over the
3
+ * same fixture shape its stories use.
4
+ *
5
+ * Desk.spec.tsx already covers dispatch THROUGH <Desk />; this file pins the
6
+ * switch itself: every DeskTarget kind reaches a surface, and the override
7
+ * registry resolves per-doctype before per-kind before the built-in.
8
+ */
9
+ import React from "react";
10
+ import { InMemoryFixtureProvider } from "@multiplatform.one/frappe";
11
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
12
+ import { screen, waitFor } from "@testing-library/react";
13
+ import { describe, expect, it } from "vitest";
14
+ import { BackofficeProvider } from "../config/BackofficeProvider";
15
+ import { createMemoryNavigator } from "../navigation/navigator";
16
+ import { DeskSurface, DeskSurfaceLoading, type DeskSurfaceProps } from "./DeskSurface";
17
+ import type { DeskTarget } from "./target";
18
+
19
+ const MOCK_HOST = "https://backoffice-desk-surface-spec.mock.test";
20
+ const TASK_DOCTYPE = "QaDeskTask";
21
+
22
+ const taskMeta = {
23
+ name: TASK_DOCTYPE,
24
+ doctype: "DocType",
25
+ module: "QA",
26
+ title_field: "subject",
27
+ fields: [
28
+ { fieldname: "subject", fieldtype: "Data", label: "Subject", in_list_view: 1 },
29
+ {
30
+ fieldname: "status",
31
+ fieldtype: "Select",
32
+ label: "Status",
33
+ options: "Open\nWorking\nDone",
34
+ in_list_view: 1,
35
+ },
36
+ ],
37
+ permissions: [{ role: "All", read: 1 }],
38
+ };
39
+
40
+ const makeFixtures = () =>
41
+ new InMemoryFixtureProvider({
42
+ DocType: [taskMeta],
43
+ Workspace: [
44
+ {
45
+ name: "Tools",
46
+ doctype: "Workspace",
47
+ title: "Tools",
48
+ icon: "tool",
49
+ parent_page: "",
50
+ public: 1,
51
+ for_user: "",
52
+ sequence_id: 1,
53
+ module: "Automation",
54
+ is_hidden: 0,
55
+ },
56
+ ],
57
+ "Notification Log": [],
58
+ [TASK_DOCTYPE]: [{ name: "QDT-0001", doctype: TASK_DOCTYPE, subject: "First", status: "Open" }],
59
+ });
60
+
61
+ function Probe({ target }: DeskSurfaceProps) {
62
+ return <div data-testid={`probe-${target.kind}`}>{JSON.stringify(target)}</div>;
63
+ }
64
+
65
+ function renderSurface(node: React.ReactNode) {
66
+ return renderWithProviders(
67
+ <BackofficeProvider
68
+ frappe={{ baseURL: MOCK_HOST, fixtures: makeFixtures() }}
69
+ navigation={createMemoryNavigator("/backoffice")}
70
+ >
71
+ {node}
72
+ </BackofficeProvider>,
73
+ );
74
+ }
75
+
76
+ const everyKind: DeskTarget[] = [
77
+ { kind: "home" },
78
+ { kind: "workspace", workspace: "Tools" },
79
+ { kind: "list", doctype: TASK_DOCTYPE },
80
+ { kind: "view", doctype: TASK_DOCTYPE, view: "kanban" },
81
+ { kind: "new", doctype: TASK_DOCTYPE },
82
+ { kind: "form", doctype: TASK_DOCTYPE, name: "QDT-0001" },
83
+ { kind: "report", reportName: "Open Tasks" },
84
+ { kind: "not-found", slug: "nope" },
85
+ ];
86
+
87
+ describe("<DeskSurface />", () => {
88
+ it("dispatches every DeskTarget kind — no kind falls through the switch", () => {
89
+ // A probe per kind proves the switch reaches a component for each one,
90
+ // without depending on any individual surface's async chrome.
91
+ for (const target of everyKind) {
92
+ const { unmount } = renderSurface(
93
+ <DeskSurface
94
+ target={target}
95
+ overrides={{
96
+ home: Probe,
97
+ workspace: Probe,
98
+ list: Probe,
99
+ view: Probe,
100
+ new: Probe,
101
+ form: Probe,
102
+ report: Probe,
103
+ "not-found": Probe,
104
+ }}
105
+ />,
106
+ );
107
+ expect(screen.getByTestId(`probe-${target.kind}`)).toBeTruthy();
108
+ unmount();
109
+ }
110
+ });
111
+
112
+ it("renders the built-in not-found surface when no override matches", async () => {
113
+ renderSurface(<DeskSurface target={{ kind: "not-found", slug: "nope" }} />);
114
+ await waitFor(() => expect(screen.getByText("Not found")).toBeTruthy());
115
+ });
116
+
117
+ it("per-doctype override beats per-kind; a miss falls through to the built-in", () => {
118
+ function DoctypeProbe({ target }: DeskSurfaceProps) {
119
+ return <div data-testid="doctype-probe">{JSON.stringify(target)}</div>;
120
+ }
121
+ const { unmount } = renderSurface(
122
+ <DeskSurface
123
+ target={{ kind: "list", doctype: TASK_DOCTYPE }}
124
+ overrides={{ list: { [TASK_DOCTYPE]: DoctypeProbe } }}
125
+ />,
126
+ );
127
+ expect(screen.getByTestId("doctype-probe")).toBeTruthy();
128
+ unmount();
129
+
130
+ // Keyed by a different doctype: the record misses, so the built-in list
131
+ // mounts instead of the probe.
132
+ renderSurface(
133
+ <DeskSurface
134
+ target={{ kind: "list", doctype: TASK_DOCTYPE }}
135
+ overrides={{ list: { "Sales Order": DoctypeProbe } }}
136
+ />,
137
+ );
138
+ expect(screen.queryByTestId("doctype-probe")).toBeNull();
139
+ });
140
+
141
+ it("forwards readOnly to the override contract", () => {
142
+ function ReadOnlyProbe({ readOnly }: DeskSurfaceProps) {
143
+ return <div data-testid="readonly-probe">{String(readOnly)}</div>;
144
+ }
145
+ renderSurface(
146
+ <DeskSurface
147
+ target={{ kind: "form", doctype: TASK_DOCTYPE, name: "QDT-0001" }}
148
+ readOnly
149
+ overrides={{ form: ReadOnlyProbe }}
150
+ />,
151
+ );
152
+ expect(screen.getByTestId("readonly-probe").textContent).toBe("true");
153
+ });
154
+
155
+ it("DeskSurfaceLoading renders the resolving state", () => {
156
+ renderSurface(<DeskSurfaceLoading />);
157
+ // The spinner is the whole surface; nothing else may paint over it.
158
+ expect(screen.queryByText("Not found")).toBeNull();
159
+ });
160
+ });