@multiplatform.one/backoffice 7.2.2 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) 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.cjs +4 -10
  25. package/dist/cjs/config/BackofficeProvider.native.js +10 -30
  26. package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
  27. package/dist/cjs/config/capabilities.native.js.map +1 -1
  28. package/dist/cjs/config/events.native.js.map +1 -1
  29. package/dist/cjs/config/slots.native.js.map +1 -1
  30. package/dist/cjs/desk/Desk.cjs +187 -0
  31. package/dist/cjs/desk/Desk.native.js +214 -0
  32. package/dist/cjs/desk/Desk.native.js.map +1 -0
  33. package/dist/cjs/desk/DeskSurface.cjs +123 -0
  34. package/dist/cjs/desk/DeskSurface.native.js +130 -0
  35. package/dist/cjs/desk/DeskSurface.native.js.map +1 -0
  36. package/dist/cjs/desk/resolveDeskPath.cjs +118 -0
  37. package/dist/cjs/desk/resolveDeskPath.native.js +123 -0
  38. package/dist/cjs/desk/resolveDeskPath.native.js.map +1 -0
  39. package/dist/cjs/desk/scope.cjs +54 -0
  40. package/dist/cjs/desk/scope.native.js +61 -0
  41. package/dist/cjs/desk/scope.native.js.map +1 -0
  42. package/dist/cjs/desk/target.cjs +174 -0
  43. package/dist/cjs/desk/target.native.js +178 -0
  44. package/dist/cjs/desk/target.native.js.map +1 -0
  45. package/dist/cjs/form/DocFormScreen.native.js +1 -1
  46. package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
  47. package/dist/cjs/form/FormConnections.native.js +1 -1
  48. package/dist/cjs/form/FormConnections.native.js.map +1 -1
  49. package/dist/cjs/form/FormDialogs.native.js +1 -1
  50. package/dist/cjs/form/FormDialogs.native.js.map +1 -1
  51. package/dist/cjs/form/FormErrorBoundary.native.js +1 -1
  52. package/dist/cjs/form/FormErrorBoundary.native.js.map +1 -1
  53. package/dist/cjs/form/FormHeaderCluster.native.js +1 -1
  54. package/dist/cjs/form/FormHeaderCluster.native.js.map +1 -1
  55. package/dist/cjs/form/FormSidebarPanel.native.js +1 -1
  56. package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
  57. package/dist/cjs/form/FormTimeline.native.js +1 -1
  58. package/dist/cjs/form/FormTimeline.native.js.map +1 -1
  59. package/dist/cjs/form/FormToolbar.native.js +1 -1
  60. package/dist/cjs/form/FormToolbar.native.js.map +1 -1
  61. package/dist/cjs/form/connections-data.native.js.map +1 -1
  62. package/dist/cjs/form/createPrefill.native.js.map +1 -1
  63. package/dist/cjs/form/dependsOn.native.js.map +1 -1
  64. package/dist/cjs/form/dirtyTracking.native.js.map +1 -1
  65. package/dist/cjs/form/docinfo.native.js.map +1 -1
  66. package/dist/cjs/form/fetchFrom.native.js.map +1 -1
  67. package/dist/cjs/form/fieldPermissions.native.js.map +1 -1
  68. package/dist/cjs/form/formActions.native.js.map +1 -1
  69. package/dist/cjs/form/formLayout.native.js.map +1 -1
  70. package/dist/cjs/form/platformHooks.native.js.map +1 -1
  71. package/dist/cjs/form/sidebar-attachments.native.js +1 -1
  72. package/dist/cjs/form/sidebar-attachments.native.js.map +1 -1
  73. package/dist/cjs/form/sidebar-dialogs.native.js +1 -1
  74. package/dist/cjs/form/sidebar-dialogs.native.js.map +1 -1
  75. package/dist/cjs/form/sidebar-people.native.js +1 -1
  76. package/dist/cjs/form/sidebar-people.native.js.map +1 -1
  77. package/dist/cjs/form/sidebar-rpc.native.js.map +1 -1
  78. package/dist/cjs/form/sidebar-utils.native.js.map +1 -1
  79. package/dist/cjs/form/timeline-entries.native.js.map +1 -1
  80. package/dist/cjs/form/timeline-utils.native.js.map +1 -1
  81. package/dist/cjs/form/useFormEngine.native.js.map +1 -1
  82. package/dist/cjs/i18n/en.native.js.map +1 -1
  83. package/dist/cjs/i18n/index.native.js.map +1 -1
  84. package/dist/cjs/index.cjs +13 -0
  85. package/dist/cjs/index.native.js +14 -1
  86. package/dist/cjs/index.native.js.map +1 -1
  87. package/dist/cjs/list/AddTagsDialog.native.js +1 -1
  88. package/dist/cjs/list/AddTagsDialog.native.js.map +1 -1
  89. package/dist/cjs/list/AssignToDialog.native.js +1 -1
  90. package/dist/cjs/list/AssignToDialog.native.js.map +1 -1
  91. package/dist/cjs/list/DoctypeListScreen.cjs +3 -1
  92. package/dist/cjs/list/DoctypeListScreen.native.js +4 -2
  93. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  94. package/dist/cjs/list/ListBulkActionsBar.native.js +1 -1
  95. package/dist/cjs/list/ListBulkActionsBar.native.js.map +1 -1
  96. package/dist/cjs/list/ListFilterBar.native.js +1 -1
  97. package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
  98. package/dist/cjs/list/ListSidebar.native.js +1 -1
  99. package/dist/cjs/list/ListSidebar.native.js.map +1 -1
  100. package/dist/cjs/list/bulk-edit-dialog.native.js +1 -1
  101. package/dist/cjs/list/bulk-edit-dialog.native.js.map +1 -1
  102. package/dist/cjs/list/bulk-export.native.js.map +1 -1
  103. package/dist/cjs/list/bulk-submit-cancel.native.js.map +1 -1
  104. package/dist/cjs/list/bulkActions.native.js.map +1 -1
  105. package/dist/cjs/list/filter-chips.native.js +1 -1
  106. package/dist/cjs/list/filter-chips.native.js.map +1 -1
  107. package/dist/cjs/list/filter-editor.native.js +1 -1
  108. package/dist/cjs/list/filter-editor.native.js.map +1 -1
  109. package/dist/cjs/list/filter-fields.native.js.map +1 -1
  110. package/dist/cjs/list/filter-saved.native.js +1 -1
  111. package/dist/cjs/list/filter-saved.native.js.map +1 -1
  112. package/dist/cjs/list/filter-sort.native.js +1 -1
  113. package/dist/cjs/list/filter-sort.native.js.map +1 -1
  114. package/dist/cjs/list/filter-standard.native.js.map +1 -1
  115. package/dist/cjs/list/filterConversion.native.js.map +1 -1
  116. package/dist/cjs/list/list-tools-sheet.native.js +1 -1
  117. package/dist/cjs/list/list-tools-sheet.native.js.map +1 -1
  118. package/dist/cjs/list/listColumns.native.js.map +1 -1
  119. package/dist/cjs/list/listFields.native.js.map +1 -1
  120. package/dist/cjs/list/listFormat.native.js.map +1 -1
  121. package/dist/cjs/list/listUrlState.native.js.map +1 -1
  122. package/dist/cjs/list/sidebar-section.native.js +1 -1
  123. package/dist/cjs/list/sidebar-section.native.js.map +1 -1
  124. package/dist/cjs/list/sidebar-stats.native.js.map +1 -1
  125. package/dist/cjs/list/statusColors.native.js.map +1 -1
  126. package/dist/cjs/navigation/navigator.native.js.map +1 -1
  127. package/dist/cjs/navigation/paths.native.js.map +1 -1
  128. package/dist/cjs/oneAdapter/index.native.js.map +1 -1
  129. package/dist/cjs/quickEntry/QuickEntryDialog.native.js +1 -1
  130. package/dist/cjs/quickEntry/QuickEntryDialog.native.js.map +1 -1
  131. package/dist/cjs/quickEntry/quickEntryPlan.native.js.map +1 -1
  132. package/dist/cjs/report/DoctypeReportView.cjs +3 -1
  133. package/dist/cjs/report/DoctypeReportView.native.js +5 -3
  134. package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
  135. package/dist/cjs/report/QueryReportScreen.native.js +1 -1
  136. package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
  137. package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
  138. package/dist/cjs/report/queryReportFilterBar.native.js +1 -1
  139. package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
  140. package/dist/cjs/report/queryReportUrlState.native.js.map +1 -1
  141. package/dist/cjs/report/report-grid.native.js +1 -1
  142. package/dist/cjs/report/report-grid.native.js.map +1 -1
  143. package/dist/cjs/report/report-toolbar.native.js +1 -1
  144. package/dist/cjs/report/report-toolbar.native.js.map +1 -1
  145. package/dist/cjs/report/reportShapes.native.js.map +1 -1
  146. package/dist/cjs/report/reportViewModel.native.js.map +1 -1
  147. package/dist/cjs/report/savedReports.native.js.map +1 -1
  148. package/dist/cjs/report/useQueryReport.native.js.map +1 -1
  149. package/dist/cjs/shared/deskLinks.native.js.map +1 -1
  150. package/dist/cjs/shared/listNavContext.native.js.map +1 -1
  151. package/dist/cjs/shared/types.native.js.map +1 -1
  152. package/dist/cjs/shared/useDocinfo.native.js.map +1 -1
  153. package/dist/cjs/shared/useDoctypeMeta.native.js.map +1 -1
  154. package/dist/cjs/shared/useFrappeApp.native.js.map +1 -1
  155. package/dist/cjs/shared/useRecentVisit.native.js.map +1 -1
  156. package/dist/cjs/shared/useSessionUserId.native.js.map +1 -1
  157. package/dist/cjs/shared/useSlugTarget.native.js.map +1 -1
  158. package/dist/cjs/shared/useUserRoles.native.js.map +1 -1
  159. package/dist/cjs/shell/BackofficeShell.native.js +1 -1
  160. package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
  161. package/dist/cjs/shell/HomeRedirect.native.js +1 -1
  162. package/dist/cjs/shell/HomeRedirect.native.js.map +1 -1
  163. package/dist/cjs/shell/NotFoundScreen.native.js +1 -1
  164. package/dist/cjs/shell/NotFoundScreen.native.js.map +1 -1
  165. package/dist/cjs/shell/SlugScreen.native.js +1 -1
  166. package/dist/cjs/shell/SlugScreen.native.js.map +1 -1
  167. package/dist/cjs/shell/WorkspaceSidebar.native.js +1 -1
  168. package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
  169. package/dist/cjs/shell/useWorkspaces.native.js.map +1 -1
  170. package/dist/cjs/shell/workspaceIcons.native.js.map +1 -1
  171. package/dist/cjs/views/CalendarView.cjs +5 -0
  172. package/dist/cjs/views/CalendarView.native.js +6 -1
  173. package/dist/cjs/views/CalendarView.native.js.map +1 -1
  174. package/dist/cjs/views/DashboardView.cjs +5 -3
  175. package/dist/cjs/views/DashboardView.native.js +6 -4
  176. package/dist/cjs/views/DashboardView.native.js.map +1 -1
  177. package/dist/cjs/views/DoctypeViewScreen.native.js.map +1 -1
  178. package/dist/cjs/views/ImageView.cjs +5 -0
  179. package/dist/cjs/views/ImageView.native.js +6 -1
  180. package/dist/cjs/views/ImageView.native.js.map +1 -1
  181. package/dist/cjs/views/KanbanView.cjs +5 -2
  182. package/dist/cjs/views/KanbanView.native.js +6 -3
  183. package/dist/cjs/views/KanbanView.native.js.map +1 -1
  184. package/dist/cjs/views/ReportView.native.js +1 -1
  185. package/dist/cjs/views/ReportView.native.js.map +1 -1
  186. package/dist/cjs/views/TreeView.cjs +5 -0
  187. package/dist/cjs/views/TreeView.native.js +6 -1
  188. package/dist/cjs/views/TreeView.native.js.map +1 -1
  189. package/dist/cjs/views/ViewHeader.native.js +1 -1
  190. package/dist/cjs/views/ViewHeader.native.js.map +1 -1
  191. package/dist/cjs/views/ViewStates.native.js +1 -1
  192. package/dist/cjs/views/ViewStates.native.js.map +1 -1
  193. package/dist/cjs/views/ViewSwitcherMenu.native.js +1 -1
  194. package/dist/cjs/views/ViewSwitcherMenu.native.js.map +1 -1
  195. package/dist/cjs/views/calendar-field-selector.native.js +1 -1
  196. package/dist/cjs/views/calendar-field-selector.native.js.map +1 -1
  197. package/dist/cjs/views/connection.native.js.map +1 -1
  198. package/dist/cjs/views/dashboard-data.native.js.map +1 -1
  199. package/dist/cjs/views/deskViewConfigs.native.js.map +1 -1
  200. package/dist/cjs/views/kanban-board-controls.native.js +1 -1
  201. package/dist/cjs/views/kanban-board-controls.native.js.map +1 -1
  202. package/dist/cjs/views/kanban-field-picker.native.js +1 -1
  203. package/dist/cjs/views/kanban-field-picker.native.js.map +1 -1
  204. package/dist/cjs/views/kanbanBoardOps.native.js.map +1 -1
  205. package/dist/cjs/views/report-controls.native.js +1 -1
  206. package/dist/cjs/views/report-controls.native.js.map +1 -1
  207. package/dist/cjs/views/viewAvailability.native.js.map +1 -1
  208. package/dist/cjs/views/viewMeta.native.js.map +1 -1
  209. package/dist/cjs/workspace/WorkspaceChartBlock.native.js +1 -1
  210. package/dist/cjs/workspace/WorkspaceChartBlock.native.js.map +1 -1
  211. package/dist/cjs/workspace/WorkspaceGrid.native.js.map +1 -1
  212. package/dist/cjs/workspace/WorkspaceLinkCard.native.js +1 -1
  213. package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -1
  214. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +1 -1
  215. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  216. package/dist/cjs/workspace/WorkspaceNumberCard.native.js +1 -1
  217. package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -1
  218. package/dist/cjs/workspace/WorkspaceQuickList.native.js +1 -1
  219. package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
  220. package/dist/cjs/workspace/WorkspaceRecents.native.js +1 -1
  221. package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
  222. package/dist/cjs/workspace/WorkspaceScreen.native.js +1 -1
  223. package/dist/cjs/workspace/WorkspaceScreen.native.js.map +1 -1
  224. package/dist/cjs/workspace/WorkspaceShortcut.native.js +1 -1
  225. package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
  226. package/dist/cjs/workspace/parseContent.native.js.map +1 -1
  227. package/dist/cjs/workspace/types.native.js.map +1 -1
  228. package/dist/cjs/workspace/useDashboardChart.native.js.map +1 -1
  229. package/dist/cjs/workspace/useWorkspaceDoc.native.js.map +1 -1
  230. package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -1
  231. package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
  232. package/dist/esm/chrome/HelpMenu.native.js.map +1 -1
  233. package/dist/esm/chrome/NotificationsButton.native.js.map +1 -1
  234. package/dist/esm/chrome/UserMenu.native.js.map +1 -1
  235. package/dist/esm/chrome/awesomebar-data.native.js.map +1 -1
  236. package/dist/esm/chrome/command-palette-model.native.js.map +1 -1
  237. package/dist/esm/chrome/help-about-dialog.native.js.map +1 -1
  238. package/dist/esm/chrome/help-shortcuts-dialog.native.js.map +1 -1
  239. package/dist/esm/chrome/notifications-data.native.js.map +1 -1
  240. package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
  241. package/dist/esm/chrome/notifications-utils.native.js.map +1 -1
  242. package/dist/esm/chrome/shortcuts.native.js.map +1 -1
  243. package/dist/esm/chrome/user-session.native.js.map +1 -1
  244. package/dist/esm/config/BackofficeProvider.mjs +5 -11
  245. package/dist/esm/config/BackofficeProvider.mjs.map +1 -1
  246. package/dist/esm/config/BackofficeProvider.native.js +10 -30
  247. package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
  248. package/dist/esm/config/capabilities.native.js.map +1 -1
  249. package/dist/esm/config/events.native.js.map +1 -1
  250. package/dist/esm/config/slots.native.js.map +1 -1
  251. package/dist/esm/desk/Desk.mjs +162 -0
  252. package/dist/esm/desk/Desk.mjs.map +1 -0
  253. package/dist/esm/desk/Desk.native.js +186 -0
  254. package/dist/esm/desk/Desk.native.js.map +1 -0
  255. package/dist/esm/desk/DeskSurface.mjs +97 -0
  256. package/dist/esm/desk/DeskSurface.mjs.map +1 -0
  257. package/dist/esm/desk/DeskSurface.native.js +101 -0
  258. package/dist/esm/desk/DeskSurface.native.js.map +1 -0
  259. package/dist/esm/desk/resolveDeskPath.mjs +93 -0
  260. package/dist/esm/desk/resolveDeskPath.mjs.map +1 -0
  261. package/dist/esm/desk/resolveDeskPath.native.js +95 -0
  262. package/dist/esm/desk/resolveDeskPath.native.js.map +1 -0
  263. package/dist/esm/desk/scope.mjs +27 -0
  264. package/dist/esm/desk/scope.mjs.map +1 -0
  265. package/dist/esm/desk/scope.native.js +31 -0
  266. package/dist/esm/desk/scope.native.js.map +1 -0
  267. package/dist/esm/desk/target.mjs +147 -0
  268. package/dist/esm/desk/target.mjs.map +1 -0
  269. package/dist/esm/desk/target.native.js +148 -0
  270. package/dist/esm/desk/target.native.js.map +1 -0
  271. package/dist/esm/form/DocFormScreen.native.js.map +1 -1
  272. package/dist/esm/form/FormConnections.native.js.map +1 -1
  273. package/dist/esm/form/FormDialogs.native.js.map +1 -1
  274. package/dist/esm/form/FormErrorBoundary.native.js.map +1 -1
  275. package/dist/esm/form/FormHeaderCluster.native.js.map +1 -1
  276. package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
  277. package/dist/esm/form/FormTimeline.native.js.map +1 -1
  278. package/dist/esm/form/FormToolbar.native.js.map +1 -1
  279. package/dist/esm/form/connections-data.native.js.map +1 -1
  280. package/dist/esm/form/createPrefill.native.js.map +1 -1
  281. package/dist/esm/form/dependsOn.native.js.map +1 -1
  282. package/dist/esm/form/dirtyTracking.native.js.map +1 -1
  283. package/dist/esm/form/docinfo.native.js.map +1 -1
  284. package/dist/esm/form/fetchFrom.native.js.map +1 -1
  285. package/dist/esm/form/fieldPermissions.native.js.map +1 -1
  286. package/dist/esm/form/formActions.native.js.map +1 -1
  287. package/dist/esm/form/formLayout.native.js.map +1 -1
  288. package/dist/esm/form/platformHooks.native.js.map +1 -1
  289. package/dist/esm/form/sidebar-attachments.native.js.map +1 -1
  290. package/dist/esm/form/sidebar-dialogs.native.js.map +1 -1
  291. package/dist/esm/form/sidebar-people.native.js.map +1 -1
  292. package/dist/esm/form/sidebar-rpc.native.js.map +1 -1
  293. package/dist/esm/form/sidebar-utils.native.js.map +1 -1
  294. package/dist/esm/form/timeline-entries.native.js.map +1 -1
  295. package/dist/esm/form/timeline-utils.native.js.map +1 -1
  296. package/dist/esm/form/useFormEngine.native.js.map +1 -1
  297. package/dist/esm/i18n/en.native.js.map +1 -1
  298. package/dist/esm/i18n/index.native.js.map +1 -1
  299. package/dist/esm/index.mjs +6 -1
  300. package/dist/esm/index.mjs.map +1 -1
  301. package/dist/esm/index.native.js +6 -1
  302. package/dist/esm/index.native.js.map +1 -1
  303. package/dist/esm/list/AddTagsDialog.native.js.map +1 -1
  304. package/dist/esm/list/AssignToDialog.native.js.map +1 -1
  305. package/dist/esm/list/DoctypeListScreen.mjs +3 -1
  306. package/dist/esm/list/DoctypeListScreen.mjs.map +1 -1
  307. package/dist/esm/list/DoctypeListScreen.native.js +3 -1
  308. package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
  309. package/dist/esm/list/ListBulkActionsBar.native.js.map +1 -1
  310. package/dist/esm/list/ListFilterBar.native.js.map +1 -1
  311. package/dist/esm/list/ListSidebar.native.js.map +1 -1
  312. package/dist/esm/list/bulk-edit-dialog.native.js.map +1 -1
  313. package/dist/esm/list/bulk-export.native.js.map +1 -1
  314. package/dist/esm/list/bulk-submit-cancel.native.js.map +1 -1
  315. package/dist/esm/list/bulkActions.native.js.map +1 -1
  316. package/dist/esm/list/filter-chips.native.js.map +1 -1
  317. package/dist/esm/list/filter-editor.native.js.map +1 -1
  318. package/dist/esm/list/filter-fields.native.js.map +1 -1
  319. package/dist/esm/list/filter-saved.native.js.map +1 -1
  320. package/dist/esm/list/filter-sort.native.js.map +1 -1
  321. package/dist/esm/list/filter-standard.native.js.map +1 -1
  322. package/dist/esm/list/filterConversion.native.js.map +1 -1
  323. package/dist/esm/list/list-tools-sheet.native.js.map +1 -1
  324. package/dist/esm/list/listColumns.native.js.map +1 -1
  325. package/dist/esm/list/listFields.native.js.map +1 -1
  326. package/dist/esm/list/listFormat.native.js.map +1 -1
  327. package/dist/esm/list/listUrlState.native.js.map +1 -1
  328. package/dist/esm/list/sidebar-section.native.js.map +1 -1
  329. package/dist/esm/list/sidebar-stats.native.js.map +1 -1
  330. package/dist/esm/list/statusColors.native.js.map +1 -1
  331. package/dist/esm/navigation/navigator.native.js.map +1 -1
  332. package/dist/esm/navigation/paths.native.js.map +1 -1
  333. package/dist/esm/oneAdapter/index.native.js.map +1 -1
  334. package/dist/esm/quickEntry/QuickEntryDialog.native.js.map +1 -1
  335. package/dist/esm/quickEntry/quickEntryPlan.native.js.map +1 -1
  336. package/dist/esm/report/DoctypeReportView.mjs +3 -1
  337. package/dist/esm/report/DoctypeReportView.mjs.map +1 -1
  338. package/dist/esm/report/DoctypeReportView.native.js +4 -2
  339. package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
  340. package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
  341. package/dist/esm/report/queryReportColumns.native.js.map +1 -1
  342. package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
  343. package/dist/esm/report/queryReportUrlState.native.js.map +1 -1
  344. package/dist/esm/report/report-grid.native.js.map +1 -1
  345. package/dist/esm/report/report-toolbar.native.js.map +1 -1
  346. package/dist/esm/report/reportShapes.native.js.map +1 -1
  347. package/dist/esm/report/reportViewModel.native.js.map +1 -1
  348. package/dist/esm/report/savedReports.native.js.map +1 -1
  349. package/dist/esm/report/useQueryReport.native.js.map +1 -1
  350. package/dist/esm/shared/deskLinks.native.js.map +1 -1
  351. package/dist/esm/shared/listNavContext.native.js.map +1 -1
  352. package/dist/esm/shared/types.native.js.map +1 -1
  353. package/dist/esm/shared/useDocinfo.native.js.map +1 -1
  354. package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
  355. package/dist/esm/shared/useFrappeApp.native.js.map +1 -1
  356. package/dist/esm/shared/useRecentVisit.native.js.map +1 -1
  357. package/dist/esm/shared/useSessionUserId.native.js.map +1 -1
  358. package/dist/esm/shared/useSlugTarget.native.js.map +1 -1
  359. package/dist/esm/shared/useUserRoles.native.js.map +1 -1
  360. package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
  361. package/dist/esm/shell/HomeRedirect.native.js.map +1 -1
  362. package/dist/esm/shell/NotFoundScreen.native.js.map +1 -1
  363. package/dist/esm/shell/SlugScreen.native.js.map +1 -1
  364. package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
  365. package/dist/esm/shell/useWorkspaces.native.js.map +1 -1
  366. package/dist/esm/shell/workspaceIcons.native.js.map +1 -1
  367. package/dist/esm/views/CalendarView.mjs +5 -0
  368. package/dist/esm/views/CalendarView.mjs.map +1 -1
  369. package/dist/esm/views/CalendarView.native.js +5 -0
  370. package/dist/esm/views/CalendarView.native.js.map +1 -1
  371. package/dist/esm/views/DashboardView.mjs +5 -3
  372. package/dist/esm/views/DashboardView.mjs.map +1 -1
  373. package/dist/esm/views/DashboardView.native.js +5 -3
  374. package/dist/esm/views/DashboardView.native.js.map +1 -1
  375. package/dist/esm/views/DoctypeViewScreen.native.js.map +1 -1
  376. package/dist/esm/views/ImageView.mjs +5 -0
  377. package/dist/esm/views/ImageView.mjs.map +1 -1
  378. package/dist/esm/views/ImageView.native.js +5 -0
  379. package/dist/esm/views/ImageView.native.js.map +1 -1
  380. package/dist/esm/views/KanbanView.mjs +5 -2
  381. package/dist/esm/views/KanbanView.mjs.map +1 -1
  382. package/dist/esm/views/KanbanView.native.js +5 -2
  383. package/dist/esm/views/KanbanView.native.js.map +1 -1
  384. package/dist/esm/views/ReportView.native.js.map +1 -1
  385. package/dist/esm/views/TreeView.mjs +5 -0
  386. package/dist/esm/views/TreeView.mjs.map +1 -1
  387. package/dist/esm/views/TreeView.native.js +5 -0
  388. package/dist/esm/views/TreeView.native.js.map +1 -1
  389. package/dist/esm/views/ViewHeader.native.js.map +1 -1
  390. package/dist/esm/views/ViewStates.native.js.map +1 -1
  391. package/dist/esm/views/ViewSwitcherMenu.native.js.map +1 -1
  392. package/dist/esm/views/calendar-field-selector.native.js.map +1 -1
  393. package/dist/esm/views/connection.native.js.map +1 -1
  394. package/dist/esm/views/dashboard-data.native.js.map +1 -1
  395. package/dist/esm/views/deskViewConfigs.native.js.map +1 -1
  396. package/dist/esm/views/kanban-board-controls.native.js.map +1 -1
  397. package/dist/esm/views/kanban-field-picker.native.js.map +1 -1
  398. package/dist/esm/views/kanbanBoardOps.native.js.map +1 -1
  399. package/dist/esm/views/report-controls.native.js.map +1 -1
  400. package/dist/esm/views/viewAvailability.native.js.map +1 -1
  401. package/dist/esm/views/viewMeta.native.js.map +1 -1
  402. package/dist/esm/workspace/WorkspaceChartBlock.native.js.map +1 -1
  403. package/dist/esm/workspace/WorkspaceGrid.native.js.map +1 -1
  404. package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -1
  405. package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  406. package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -1
  407. package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
  408. package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
  409. package/dist/esm/workspace/WorkspaceScreen.native.js.map +1 -1
  410. package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
  411. package/dist/esm/workspace/parseContent.native.js.map +1 -1
  412. package/dist/esm/workspace/types.native.js.map +1 -1
  413. package/dist/esm/workspace/useDashboardChart.native.js.map +1 -1
  414. package/dist/esm/workspace/useWorkspaceDoc.native.js.map +1 -1
  415. package/dist/jsx/config/BackofficeProvider.mjs +5 -11
  416. package/dist/jsx/config/BackofficeProvider.mjs.map +1 -1
  417. package/dist/jsx/config/BackofficeProvider.native.js +9 -29
  418. package/dist/jsx/config/BackofficeProvider.native.js.map +1 -1
  419. package/dist/jsx/desk/Desk.mjs +162 -0
  420. package/dist/jsx/desk/Desk.mjs.map +1 -0
  421. package/dist/jsx/desk/Desk.native.js +214 -0
  422. package/dist/jsx/desk/Desk.native.js.map +1 -0
  423. package/dist/jsx/desk/DeskSurface.mjs +97 -0
  424. package/dist/jsx/desk/DeskSurface.mjs.map +1 -0
  425. package/dist/jsx/desk/DeskSurface.native.js +130 -0
  426. package/dist/jsx/desk/DeskSurface.native.js.map +1 -0
  427. package/dist/jsx/desk/resolveDeskPath.mjs +93 -0
  428. package/dist/jsx/desk/resolveDeskPath.mjs.map +1 -0
  429. package/dist/jsx/desk/resolveDeskPath.native.js +123 -0
  430. package/dist/jsx/desk/resolveDeskPath.native.js.map +1 -0
  431. package/dist/jsx/desk/scope.mjs +27 -0
  432. package/dist/jsx/desk/scope.mjs.map +1 -0
  433. package/dist/jsx/desk/scope.native.js +61 -0
  434. package/dist/jsx/desk/scope.native.js.map +1 -0
  435. package/dist/jsx/desk/target.mjs +147 -0
  436. package/dist/jsx/desk/target.mjs.map +1 -0
  437. package/dist/jsx/desk/target.native.js +178 -0
  438. package/dist/jsx/desk/target.native.js.map +1 -0
  439. package/dist/jsx/index.js +6 -1
  440. package/dist/jsx/index.js.map +1 -1
  441. package/dist/jsx/index.mjs +6 -1
  442. package/dist/jsx/index.mjs.map +1 -1
  443. package/dist/jsx/index.native.js +13 -0
  444. package/dist/jsx/index.native.js.map +1 -1
  445. package/dist/jsx/list/DoctypeListScreen.mjs +3 -1
  446. package/dist/jsx/list/DoctypeListScreen.mjs.map +1 -1
  447. package/dist/jsx/list/DoctypeListScreen.native.js +3 -1
  448. package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
  449. package/dist/jsx/report/DoctypeReportView.mjs +3 -1
  450. package/dist/jsx/report/DoctypeReportView.mjs.map +1 -1
  451. package/dist/jsx/report/DoctypeReportView.native.js +4 -2
  452. package/dist/jsx/report/DoctypeReportView.native.js.map +1 -1
  453. package/dist/jsx/views/CalendarView.mjs +5 -0
  454. package/dist/jsx/views/CalendarView.mjs.map +1 -1
  455. package/dist/jsx/views/CalendarView.native.js +5 -0
  456. package/dist/jsx/views/CalendarView.native.js.map +1 -1
  457. package/dist/jsx/views/DashboardView.mjs +5 -3
  458. package/dist/jsx/views/DashboardView.mjs.map +1 -1
  459. package/dist/jsx/views/DashboardView.native.js +5 -3
  460. package/dist/jsx/views/DashboardView.native.js.map +1 -1
  461. package/dist/jsx/views/ImageView.mjs +5 -0
  462. package/dist/jsx/views/ImageView.mjs.map +1 -1
  463. package/dist/jsx/views/ImageView.native.js +5 -0
  464. package/dist/jsx/views/ImageView.native.js.map +1 -1
  465. package/dist/jsx/views/KanbanView.mjs +5 -2
  466. package/dist/jsx/views/KanbanView.mjs.map +1 -1
  467. package/dist/jsx/views/KanbanView.native.js +5 -2
  468. package/dist/jsx/views/KanbanView.native.js.map +1 -1
  469. package/dist/jsx/views/TreeView.mjs +5 -0
  470. package/dist/jsx/views/TreeView.mjs.map +1 -1
  471. package/dist/jsx/views/TreeView.native.js +5 -0
  472. package/dist/jsx/views/TreeView.native.js.map +1 -1
  473. package/package.json +12 -12
  474. package/src/config/BackofficeProvider.tsx +11 -18
  475. package/src/desk/Desk.spec.tsx +287 -0
  476. package/src/desk/Desk.tsx +308 -0
  477. package/src/desk/DeskSurface.tsx +132 -0
  478. package/src/desk/doctrine.spec.ts +48 -0
  479. package/src/desk/resolveDeskPath.spec.ts +174 -0
  480. package/src/desk/resolveDeskPath.ts +111 -0
  481. package/src/desk/scope.tsx +52 -0
  482. package/src/desk/target.ts +169 -0
  483. package/src/index.ts +17 -0
  484. package/src/list/DoctypeListScreen.tsx +4 -1
  485. package/src/report/DoctypeReportView.tsx +6 -2
  486. package/src/views/CalendarView.tsx +3 -0
  487. package/src/views/DashboardView.tsx +5 -3
  488. package/src/views/ImageView.tsx +3 -0
  489. package/src/views/KanbanView.tsx +5 -1
  490. package/src/views/TreeView.tsx +3 -0
  491. package/types/config/BackofficeProvider.d.ts +6 -4
  492. package/types/config/BackofficeProvider.d.ts.map +1 -1
  493. package/types/desk/Desk.d.ts +91 -0
  494. package/types/desk/Desk.d.ts.map +1 -0
  495. package/types/desk/DeskSurface.d.ts +24 -0
  496. package/types/desk/DeskSurface.d.ts.map +1 -0
  497. package/types/desk/resolveDeskPath.d.ts +60 -0
  498. package/types/desk/resolveDeskPath.d.ts.map +1 -0
  499. package/types/desk/scope.d.ts +31 -0
  500. package/types/desk/scope.d.ts.map +1 -0
  501. package/types/desk/target.d.ts +57 -0
  502. package/types/desk/target.d.ts.map +1 -0
  503. package/types/index.d.ts +10 -0
  504. package/types/index.d.ts.map +1 -1
  505. package/types/list/DoctypeListScreen.d.ts.map +1 -1
  506. package/types/report/DoctypeReportView.d.ts.map +1 -1
  507. package/types/views/CalendarView.d.ts.map +1 -1
  508. package/types/views/DashboardView.d.ts.map +1 -1
  509. package/types/views/ImageView.d.ts.map +1 -1
  510. package/types/views/KanbanView.d.ts.map +1 -1
  511. package/types/views/TreeView.d.ts.map +1 -1
package/src/index.ts CHANGED
@@ -42,6 +42,23 @@ export type {
42
42
  export type { BackofficeEvent, BackofficeEventHandler } from "./config/events";
43
43
  export type { BackofficeSlots } from "./config/slots";
44
44
 
45
+ // Desk — the whole desk as one importable component (spec 09)
46
+ export { Desk } from "./desk/Desk";
47
+ export type { DeskChrome, DeskProps } from "./desk/Desk";
48
+ export { DeskSurface } from "./desk/DeskSurface";
49
+ export type {
50
+ DeskSurfaceKind,
51
+ DeskSurfaceOverride,
52
+ DeskSurfaceOverrides,
53
+ DeskSurfaceProps,
54
+ } from "./desk/DeskSurface";
55
+ export { resolveDeskPath } from "./desk/resolveDeskPath";
56
+ export type { DeskAddress, DeskViewParams } from "./desk/resolveDeskPath";
57
+ export { guessDeskTarget, useDeskTarget } from "./desk/target";
58
+ export type { DeskPins, DeskTarget } from "./desk/target";
59
+ export { DeskScopeProvider, useDeskScope, useScopedFilters } from "./desk/scope";
60
+ export type { DeskScopeProviderProps } from "./desk/scope";
61
+
45
62
  // Navigation seam
46
63
  export {
47
64
  ControlledNavigator,
@@ -96,6 +96,7 @@ import {
96
96
  type ListSortState,
97
97
  } from "./listUrlState";
98
98
  import { useSessionUserId as useSessionUser } from "../shared/useSessionUserId";
99
+ import { useDeskScope } from "../desk/scope";
99
100
 
100
101
  export interface DoctypeListScreenProps {
101
102
  /** Proper-cased doctype name (e.g. "ToDo", "Sales Order") */
@@ -257,7 +258,9 @@ export function DoctypeListScreen({
257
258
  // Always-ANDed host filters: joined into every query (table injection,
258
259
  // live count, facet stats) but invisible to the user filter chrome —
259
260
  // value-keyed so unstable array literals from the host don't churn.
260
- const fixedFiltersKey = JSON.stringify(fixedFilters ?? []);
261
+ // The ambient desk scope (GL-5, the tenant seam) joins the same channel.
262
+ const deskScope = useDeskScope();
263
+ const fixedFiltersKey = JSON.stringify([...deskScope, ...(fixedFilters ?? [])]);
261
264
  const fixedTuples = useMemo(
262
265
  () => JSON.parse(fixedFiltersKey) as FrappeFilters,
263
266
  [fixedFiltersKey],
@@ -34,6 +34,7 @@ import {
34
34
  useBackofficePaths,
35
35
  } from "../config/BackofficeProvider";
36
36
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
37
+ import { useDeskScope } from "../desk/scope";
37
38
  import type { FrappeFilters } from "../shared/types";
38
39
  import { useDoctypeMeta } from "../shared/useDoctypeMeta";
39
40
  import { useViewConnection } from "../views/connection";
@@ -105,6 +106,7 @@ export function DoctypeReportView({
105
106
  initialFilters,
106
107
  }: DoctypeReportViewProps) {
107
108
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
109
+ const deskScope = useDeskScope();
108
110
  const navigator = useBackofficeNavigator();
109
111
  const paths = useBackofficePaths();
110
112
  const { params } = useBackofficeLocation();
@@ -173,9 +175,11 @@ export function DoctypeReportView({
173
175
  () => columnFilterTuples(selectedColumns, committedFilters),
174
176
  [selectedColumns, committedFilters],
175
177
  );
178
+ // Desk scope (GL-5) ANDs into every report query, invisible to the
179
+ // filter chrome and not clearable by the user.
176
180
  const effectiveFilters = useMemo(
177
- () => [...baseFilters, ...columnTuples],
178
- [baseFilters, columnTuples],
181
+ () => [...deskScope, ...baseFilters, ...columnTuples],
182
+ [deskScope, baseFilters, columnTuples],
179
183
  );
180
184
 
181
185
  // ── Sort / group / paging ───────────────────────────────────
@@ -19,6 +19,7 @@ import {
19
19
  useBackofficePaths,
20
20
  } from "../config/BackofficeProvider";
21
21
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
22
+ import { useDeskScope } from "../desk/scope";
22
23
  import { CalendarFieldSelector, calendarDateFieldCandidates } from "./calendar-field-selector";
23
24
  import { useViewConnection } from "./connection";
24
25
  import { useCalendarViewSettings } from "./deskViewConfigs";
@@ -64,6 +65,7 @@ export function CalendarView({
64
65
  onSlotCreate,
65
66
  }: CalendarViewProps) {
66
67
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
68
+ const deskScope = useDeskScope();
67
69
  const navigator = useBackofficeNavigator();
68
70
  const paths = useBackofficePaths();
69
71
  const { newDoc } = useBackofficeCapabilities();
@@ -157,6 +159,7 @@ export function CalendarView({
157
159
  // date field in its field list (no stale rows missing the column).
158
160
  key={dateField}
159
161
  doctype={doctype}
162
+ {...(deskScope.length > 0 && { filters: deskScope })}
160
163
  dateField={dateField}
161
164
  endDateField={endDateField}
162
165
  titleField={titleField}
@@ -23,6 +23,7 @@ import { useState } from "react";
23
23
  import { useTranslation } from "react-i18next";
24
24
  import { useBackofficeNavigator, useBackofficePaths } from "../config/BackofficeProvider";
25
25
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
26
+ import { useDeskScope } from "../desk/scope";
26
27
  import { useViewConnection } from "./connection";
27
28
  import {
28
29
  MAX_STATUS_KPI_CARDS,
@@ -55,6 +56,7 @@ export interface DashboardViewProps {
55
56
 
56
57
  export function DashboardView({ doctype }: DashboardViewProps) {
57
58
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
59
+ const deskScope = useDeskScope();
58
60
  const { knobProps } = useResolvedKnobs();
59
61
  const navigator = useBackofficeNavigator();
60
62
  const paths = useBackofficePaths();
@@ -101,7 +103,7 @@ export function DashboardView({ doctype }: DashboardViewProps) {
101
103
  }}
102
104
  dataSource={{
103
105
  doctype,
104
- filters: [["creation", ">=", anchors.createdSince]],
106
+ filters: [...deskScope, ["creation", ">=", anchors.createdSince]],
105
107
  }}
106
108
  />
107
109
  </YStack>
@@ -115,7 +117,7 @@ export function DashboardView({ doctype }: DashboardViewProps) {
115
117
  }}
116
118
  dataSource={{
117
119
  doctype,
118
- filters: [["modified", ">=", anchors.modifiedSince]],
120
+ filters: [...deskScope, ["modified", ">=", anchors.modifiedSince]],
119
121
  }}
120
122
  />
121
123
  </YStack>
@@ -138,7 +140,7 @@ export function DashboardView({ doctype }: DashboardViewProps) {
138
140
  }}
139
141
  dataSource={{
140
142
  doctype,
141
- filters: [[statusField.fieldname, "=", option]],
143
+ filters: [...deskScope, [statusField.fieldname, "=", option]],
142
144
  }}
143
145
  />
144
146
  </YStack>
@@ -7,6 +7,7 @@ import type { ReactElement } from "react";
7
7
  import { useTranslation } from "react-i18next";
8
8
  import { useBackofficeNavigator, useBackofficePaths } from "../config/BackofficeProvider";
9
9
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
10
+ import { useDeskScope } from "../desk/scope";
10
11
  import { detectCardFields, detectImageField, useViewMeta, type AnyDoc } from "./viewMeta";
11
12
  import { ViewError, ViewLoading, ViewUnsupported } from "./ViewStates";
12
13
 
@@ -20,6 +21,7 @@ export interface ImageViewProps {
20
21
 
21
22
  export function ImageView({ doctype }: ImageViewProps) {
22
23
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
24
+ const deskScope = useDeskScope();
23
25
  const navigator = useBackofficeNavigator();
24
26
  const paths = useBackofficePaths();
25
27
  const { meta, isLoading: isMetaLoading, error: metaError } = useViewMeta(doctype);
@@ -47,6 +49,7 @@ export function ImageView({ doctype }: ImageViewProps) {
47
49
  <YStack flex={1}>
48
50
  <ImageGridOfDoc
49
51
  doctype={doctype}
52
+ {...(deskScope.length > 0 && { filters: deskScope })}
50
53
  imageField={imageField}
51
54
  titleField={titleField}
52
55
  subtitleField={extraFields[0]}
@@ -29,6 +29,7 @@ import {
29
29
  useBackofficePaths,
30
30
  } from "../config/BackofficeProvider";
31
31
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
32
+ import { useDeskScope } from "../desk/scope";
32
33
  import { useViewConnection } from "./connection";
33
34
  import { useKanbanBoard, type KanbanBoardDoc } from "./deskViewConfigs";
34
35
  import {
@@ -112,6 +113,7 @@ export function KanbanView({
112
113
  const paths = useBackofficePaths();
113
114
  const { newDoc } = useBackofficeCapabilities();
114
115
  const { knobProps } = useResolvedKnobs();
116
+ const deskScope = useDeskScope();
115
117
  const connection = useViewConnection();
116
118
  const { meta, isLoading: isMetaLoading, error: metaError } = useViewMeta(doctype);
117
119
  const boards = useKanbanBoard(connection, doctype, boardOverride);
@@ -290,6 +292,8 @@ export function KanbanView({
290
292
  ) as readonly (keyof AnyDoc & string)[];
291
293
 
292
294
  const boardFilters = boardGoverns ? parseBoardFilters(board?.filters) : [];
295
+ // Desk scope (GL-5) ANDs into the card query alongside board filters.
296
+ const cardFilters = [...deskScope, ...boardFilters];
293
297
  const manageBoard = boardGoverns && !readOnly && Boolean(board);
294
298
  const archivedColumns = (board?.columns ?? []).filter(
295
299
  (column) => column.status === "Archived" && column.column_name,
@@ -353,7 +357,7 @@ export function KanbanView({
353
357
  statusField={statusField}
354
358
  titleField={titleField}
355
359
  fields={fields}
356
- {...(boardFilters.length > 0 && { filters: boardFilters })}
360
+ {...(cardFilters && { filters: cardFilters })}
357
361
  renderCard={(item) => (
358
362
  <YStack {...knobProps.panelPadding} gap="$1">
359
363
  <Text fontWeight="500" fontSize={knobProps.sizeToken} numberOfLines={3}>
@@ -8,6 +8,7 @@ import type { ReactElement } from "react";
8
8
  import { useTranslation } from "react-i18next";
9
9
  import { useBackofficeNavigator, useBackofficePaths } from "../config/BackofficeProvider";
10
10
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
11
+ import { useDeskScope } from "../desk/scope";
11
12
  import { useViewMeta, type AnyDoc } from "./viewMeta";
12
13
  import { ViewError, ViewLoading, ViewUnsupported } from "./ViewStates";
13
14
 
@@ -21,6 +22,7 @@ export interface TreeViewProps {
21
22
 
22
23
  export function TreeView({ doctype }: TreeViewProps) {
23
24
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
25
+ const deskScope = useDeskScope();
24
26
  const navigator = useBackofficeNavigator();
25
27
  const paths = useBackofficePaths();
26
28
  const { meta, isLoading: isMetaLoading, error: metaError } = useViewMeta(doctype);
@@ -46,6 +48,7 @@ export function TreeView({ doctype }: TreeViewProps) {
46
48
  <YStack flex={1}>
47
49
  <TreeOfDoc
48
50
  doctype={doctype}
51
+ {...(deskScope.length > 0 && { filters: deskScope })}
49
52
  titleField={meta?.title_field}
50
53
  onNodeClick={(doc) => {
51
54
  if (doc.name) navigator.navigate(paths.form(doctype, doc.name));
@@ -5,8 +5,9 @@
5
5
  * It composes @multiplatform.one/frappe-ui's FrappeProvider internally (the
6
6
  * `frappe` prop), publishes the navigation seam + capability flags + slots +
7
7
  * event bus through BackofficeConfigContext (consumed by every backoffice
8
- * surface), registers the package's "backoffice" i18n namespace, and applies
9
- * host field-registry overrides.
8
+ * surface), registers the package's "backoffice" i18n namespace, and scopes
9
+ * host field overrides to this subtree via FieldOverridesProvider (never the
10
+ * module-global registry — GL-4).
10
11
  *
11
12
  * Surfaces render without a provider too (stories/tests): the context
12
13
  * default is a fully-enabled config with an inert navigator.
@@ -119,8 +120,9 @@ export interface BackofficeProviderProps {
119
120
  /** Restrict which doctypes are reachable (awesomebar, lists, links). */
120
121
  doctypes?: BackofficeDoctypeScope;
121
122
  /**
122
- * Field-renderer overrides merged into frappe-ui's field registry
123
- * (fieldtype → component), e.g. `{ Rating: MyRating }`.
123
+ * Field-renderer overrides (fieldtype component), e.g.
124
+ * `{ Rating: MyRating }` — context-scoped to this provider, so two
125
+ * providers with different overrides coexist on one page.
124
126
  */
125
127
  fields?: Record<string, ComponentType<FieldRenderProps>>;
126
128
  /** Host-injected custom actions (form/list toolbars). */
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeProvider.d.ts","sourceRoot":"","sources":["../../src/config/BackofficeProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackofficeProvider.d.ts","sourceRoot":"","sources":["../../src/config/BackofficeProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import { type FieldRenderProps } from "@multiplatform.one/frappe-ui";
2
+ import type { ComponentType } from "react";
3
+ import { type BackofficeActions, type BackofficeAppearance, type BackofficeFrappeConfig, type BackofficeIntegrations } from "../config/BackofficeProvider";
4
+ import type { BackofficeEventHandler } from "../config/events";
5
+ import type { BackofficeCapabilities, BackofficeDoctypeScope } from "../config/capabilities";
6
+ import type { BackofficeSlots } from "../config/slots";
7
+ import { type BackofficeNavigator } from "../navigation/navigator";
8
+ import { type BackofficeView } from "../navigation/paths";
9
+ import type { FrappeFilters } from "../shared/types";
10
+ import { type DeskSurfaceOverrides } from "./DeskSurface";
11
+ import { type DeskTarget } from "./target";
12
+ export type DeskChrome = "full" | "bare" | "content";
13
+ export interface DeskProps {
14
+ /**
15
+ * Frappe connection. Omit to inherit an ambient FrappeProvider (or
16
+ * BackofficeProvider). IGNORED when an ambient provider exists — Desk
17
+ * warns once, because the SyncModule is cached per baseURL and a second
18
+ * config for the same server silently loses to the first.
19
+ */
20
+ frappe?: BackofficeFrappeConfig;
21
+ /** Pin the desk to one doctype. Sets the initial target AND the scope. */
22
+ doctype?: string;
23
+ /** With `doctype`: a document name, or "new". Renders the form. */
24
+ name?: string;
25
+ /** With `doctype`: which view. Default "list". */
26
+ view?: BackofficeView;
27
+ /** Pin the desk to one workspace page. */
28
+ workspace?: string;
29
+ /** Pin the desk to one Query/Script Report. */
30
+ report?: string;
31
+ /**
32
+ * Explicit surface address relative to `basePath` (e.g.
33
+ * "/sales-order/SO-0001"). Wins over every pin — the escape hatch for a
34
+ * host with its own address scheme.
35
+ */
36
+ path?: string;
37
+ /** Seed the user-visible filter channel; the user can change or clear. */
38
+ filters?: FrappeFilters;
39
+ /**
40
+ * ALWAYS ANDed into every doctype-homed query, invisible to the filter
41
+ * chrome, not removable — the tenant seam (DeskScopeProvider).
42
+ */
43
+ scope?: FrappeFilters;
44
+ /** Doctype reachability. A `doctype` pin defaults this to that doctype. */
45
+ doctypes?: BackofficeDoctypeScope;
46
+ /** Feature flags, everything defaults on (config/capabilities.ts). */
47
+ capabilities?: BackofficeCapabilities;
48
+ /** View-switcher allowlist, intersected with capabilities.views.allow. */
49
+ views?: readonly BackofficeView[];
50
+ /** Force every form read-only regardless of permissions. */
51
+ readOnly?: boolean;
52
+ /**
53
+ * "full" banner + workspace rail; "bare" banner only; "content" no
54
+ * chrome. Default: "content" when any pin is set, "full" otherwise.
55
+ */
56
+ chrome?: DeskChrome;
57
+ /** Sugar for chrome="content". */
58
+ embedded?: boolean;
59
+ /** Render-prop chrome replacements (config/slots.ts). */
60
+ slots?: BackofficeSlots;
61
+ /** Color-scheme adapter for the user menu's "Toggle Theme". */
62
+ appearance?: BackofficeAppearance;
63
+ /** Router-integration hooks (navigation blocker, …). */
64
+ integrations?: BackofficeIntegrations;
65
+ /**
66
+ * Host router adapter. Supply it and Desk owns URLs; omit it and Desk
67
+ * navigates internally over a MemoryNavigator seeded from the pins.
68
+ */
69
+ navigation?: BackofficeNavigator;
70
+ /** URL prefix Desk is mounted under. Default "/backoffice". */
71
+ basePath?: string;
72
+ /**
73
+ * Intercept push/replace navigations before they happen; return false to
74
+ * cancel (host renders the target itself, e.g. in a drawer). The target
75
+ * is resolved best-effort: an ambiguous slug degrades to a title-cased
76
+ * doctype guess, the same degrade the slug index applies offline.
77
+ */
78
+ onNavigate?: (target: DeskTarget, path: string) => boolean | void;
79
+ /** Fires whenever the resolved surface changes (host breadcrumbs/titles). */
80
+ onTargetChange?: (target: DeskTarget) => void;
81
+ /** Replace a whole surface, per kind or per doctype under a kind. */
82
+ surfaces?: DeskSurfaceOverrides;
83
+ /** Replace a field control by fieldtype — context-scoped per Desk. */
84
+ fields?: Record<string, ComponentType<FieldRenderProps>>;
85
+ /** Host actions on form and list toolbars, optionally per-doctype. */
86
+ actions?: BackofficeActions;
87
+ /** Every notable desk action lands here (config/events.ts). */
88
+ onEvent?: BackofficeEventHandler;
89
+ }
90
+ export declare function Desk(props: DeskProps): import("react/jsx-runtime").JSX.Element;
91
+ //# sourceMappingURL=Desk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Desk.d.ts","sourceRoot":"","sources":["../../src/desk/Desk.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type ComponentType } from "react";
2
+ import type { BackofficeView } from "../navigation/paths";
3
+ import type { FrappeFilters } from "../shared/types";
4
+ import type { DeskTarget } from "./target";
5
+ export type DeskSurfaceKind = DeskTarget["kind"];
6
+ /** The whole contract an override receives — thin enough to wrap the built-in. */
7
+ export interface DeskSurfaceProps {
8
+ target: DeskTarget;
9
+ readOnly?: boolean;
10
+ }
11
+ /** A component per kind, or per doctype under that kind. */
12
+ export type DeskSurfaceOverride = ComponentType<DeskSurfaceProps> | Record<string, ComponentType<DeskSurfaceProps>>;
13
+ export type DeskSurfaceOverrides = Partial<Record<DeskSurfaceKind, DeskSurfaceOverride>>;
14
+ export interface DeskSurfaceHostProps extends DeskSurfaceProps {
15
+ overrides?: DeskSurfaceOverrides;
16
+ /** Seed for the list surface's user-editable filter channel. */
17
+ initialFilters?: FrappeFilters;
18
+ /** View-switcher allowlist forwarded to the list surface. */
19
+ views?: readonly BackofficeView[];
20
+ }
21
+ export declare function DeskSurface({ target, overrides, readOnly, initialFilters, views, }: DeskSurfaceHostProps): import("react/jsx-runtime").JSX.Element;
22
+ /** The resolving state — same presentation as the slug route's spinner. */
23
+ export declare function DeskSurfaceLoading(): import("react/jsx-runtime").JSX.Element;
24
+ //# sourceMappingURL=DeskSurface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeskSurface.d.ts","sourceRoot":"","sources":["../../src/desk/DeskSurface.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAIpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAEjD,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,MAAM,mBAAmB,GAC3B,aAAa,CAAC,gBAAgB,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEpD,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAoCzF,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,gEAAgE;IAChE,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACnC;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,SAAS,EACT,QAAQ,EACR,cAAc,EACd,KAAK,GACN,EAAE,oBAAoB,2CAoCtB;AAED,2EAA2E;AAC3E,wBAAgB,kBAAkB,4CAMjC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * resolveDeskPath — the pure path→surface resolver (MPO-14 / gap GL-1,
3
+ * spec 09 §DM-1, §4.3).
4
+ *
5
+ * One inverse for every builder in `createBackofficePaths`, so dispatch
6
+ * lives in the package once instead of being re-derived per host route
7
+ * file. Pure: no network, no React. The slug half of an address stays
8
+ * AMBIGUOUS here (workspace vs doctype is data, resolved by
9
+ * `useSlugTarget`); `useDeskTarget` composes the two.
10
+ */
11
+ import type { BackofficeParams } from "../navigation/navigator";
12
+ import { type BackofficeView } from "../navigation/paths";
13
+ /** View search params the view surface reads (board/field/f — spec §2.2). */
14
+ export interface DeskViewParams {
15
+ /** `?board=` kanban board selection. */
16
+ board?: string;
17
+ /** `?field=` calendar date field. */
18
+ field?: string;
19
+ /** `?f=` report base filters (raw urlencoded JSON). */
20
+ filtersParam?: string;
21
+ }
22
+ /**
23
+ * A resolved desk address: the shape of the URL, before slug disambiguation.
24
+ * `slug` kinds still need the runtime workspace/doctype index.
25
+ */
26
+ export type DeskAddress = {
27
+ kind: "home";
28
+ } | {
29
+ kind: "slug";
30
+ slug: string;
31
+ filtersParam?: string;
32
+ sortParam?: string;
33
+ } | {
34
+ kind: "slug-view";
35
+ slug: string;
36
+ view: Exclude<BackofficeView, "list">;
37
+ params?: DeskViewParams;
38
+ } | {
39
+ kind: "slug-new";
40
+ slug: string;
41
+ defaults?: Record<string, unknown>;
42
+ } | {
43
+ kind: "slug-name";
44
+ slug: string;
45
+ name: string;
46
+ } | {
47
+ kind: "report";
48
+ reportName: string;
49
+ filtersParam?: string;
50
+ } | {
51
+ kind: "not-found";
52
+ path: string;
53
+ };
54
+ /**
55
+ * Resolve `path` (no query string; query lives in `params`, One-router
56
+ * semantics) against the six route shapes `createBackofficePaths` writes.
57
+ * Paths outside `basePath` resolve to `not-found`.
58
+ */
59
+ export declare function resolveDeskPath(path: string, basePath?: string, params?: BackofficeParams): DeskAddress;
60
+ //# sourceMappingURL=resolveDeskPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveDeskPath.d.ts","sourceRoot":"","sources":["../../src/desk/resolveDeskPath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzE;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAcxC;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAwB,EAClC,MAAM,GAAE,gBAAqB,GAC5B,WAAW,CA2Cb"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Desk scope — the tenant seam (MPO-14 / gap GL-5, spec 09 §DM-4).
3
+ *
4
+ * `scope` filters are ALWAYS ANDed into every doctype-homed query, invisible
5
+ * to the filter chrome and not removable by the user. Before this context
6
+ * existed the seam reached exactly one surface (DoctypeListScreen's
7
+ * `fixedFilters`), so a scoped desk leaked rows the moment the user switched
8
+ * to kanban. Surfaces read the context themselves; hosts set it once via
9
+ * `<Desk scope={…} />` (or `DeskScopeProvider` directly).
10
+ *
11
+ * Scope applies to doctype-homed surfaces (list, kanban, calendar, tree,
12
+ * image, dashboard, report view). Query/Script reports run server-side SQL
13
+ * and the awesomebar searches across doctypes, so field-tuple scope cannot
14
+ * soundly AND into either; restrict those with `capabilities` instead.
15
+ */
16
+ import type { ReactNode } from "react";
17
+ import type { FrappeFilters } from "../shared/types";
18
+ export interface DeskScopeProviderProps {
19
+ /** Filter tuples ANDed into every doctype-homed query in the subtree. */
20
+ scope?: FrappeFilters;
21
+ children: ReactNode;
22
+ }
23
+ export declare function DeskScopeProvider({ scope, children }: DeskScopeProviderProps): import("react/jsx-runtime").JSX.Element;
24
+ /** The ambient desk scope; `[]` outside any DeskScopeProvider. */
25
+ export declare function useDeskScope(): FrappeFilters;
26
+ /**
27
+ * AND the ambient scope into `filters`. Returns `undefined` when there is
28
+ * nothing to apply, so callers can spread-conditionally into leaf props.
29
+ */
30
+ export declare function useScopedFilters(filters?: FrappeFilters): FrappeFilters | undefined;
31
+ //# sourceMappingURL=scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/desk/scope.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMrD,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CAK5E;AAED,kEAAkE;AAClE,wBAAgB,YAAY,IAAI,aAAa,CAE5C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAMnF"}
@@ -0,0 +1,57 @@
1
+ import { type BackofficeView } from "../navigation/paths";
2
+ import { type DeskViewParams } from "./resolveDeskPath";
3
+ export type DeskTarget = {
4
+ kind: "home";
5
+ } | {
6
+ kind: "workspace";
7
+ workspace: string;
8
+ } | {
9
+ kind: "list";
10
+ doctype: string;
11
+ filtersParam?: string;
12
+ sortParam?: string;
13
+ } | {
14
+ kind: "view";
15
+ doctype: string;
16
+ view: Exclude<BackofficeView, "list">;
17
+ params?: DeskViewParams;
18
+ } | {
19
+ kind: "new";
20
+ doctype: string;
21
+ defaults?: Record<string, unknown>;
22
+ } | {
23
+ kind: "form";
24
+ doctype: string;
25
+ name: string;
26
+ } | {
27
+ kind: "report";
28
+ reportName: string;
29
+ filtersParam?: string;
30
+ } | {
31
+ kind: "not-found";
32
+ slug?: string;
33
+ };
34
+ /** The surface pins a host sets on `<Desk />` (spec §2, "what it shows"). */
35
+ export interface DeskPins {
36
+ doctype?: string;
37
+ name?: string;
38
+ view?: BackofficeView;
39
+ workspace?: string;
40
+ report?: string;
41
+ path?: string;
42
+ }
43
+ export declare function hasDeskPin(pins: DeskPins): boolean;
44
+ /**
45
+ * Pure, best-effort address→target for pre-navigation interception
46
+ * (`onNavigate`): the slug degrades to a title-cased doctype guess, the same
47
+ * degrade `useSlugTarget` applies when the index is unavailable.
48
+ */
49
+ export declare function guessDeskTarget(path: string, basePath: string): DeskTarget;
50
+ /**
51
+ * The desk's current target. `undefined` while an ambiguous slug is still
52
+ * resolving against the once-per-session index. Must be called under
53
+ * BackofficeProvider (it reads the navigator location and the frappe
54
+ * connection from context).
55
+ */
56
+ export declare function useDeskTarget(pins: DeskPins): DeskTarget | undefined;
57
+ //# sourceMappingURL=target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../src/desk/target.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3F,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,GACD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAElD;AA4DD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAK1E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CA2CpE"}
package/types/index.d.ts CHANGED
@@ -14,6 +14,16 @@ export { isDoctypeAllowed, resolveCapabilities } from "./config/capabilities";
14
14
  export type { BackofficeCapabilities, BackofficeDoctypeScope, CapabilityInput, ResolvedBackofficeCapabilities, ResolvedCapability, ResolvedExitToSite, } from "./config/capabilities";
15
15
  export type { BackofficeEvent, BackofficeEventHandler } from "./config/events";
16
16
  export type { BackofficeSlots } from "./config/slots";
17
+ export { Desk } from "./desk/Desk";
18
+ export type { DeskChrome, DeskProps } from "./desk/Desk";
19
+ export { DeskSurface } from "./desk/DeskSurface";
20
+ export type { DeskSurfaceKind, DeskSurfaceOverride, DeskSurfaceOverrides, DeskSurfaceProps, } from "./desk/DeskSurface";
21
+ export { resolveDeskPath } from "./desk/resolveDeskPath";
22
+ export type { DeskAddress, DeskViewParams } from "./desk/resolveDeskPath";
23
+ export { guessDeskTarget, useDeskTarget } from "./desk/target";
24
+ export type { DeskPins, DeskTarget } from "./desk/target";
25
+ export { DeskScopeProvider, useDeskScope, useScopedFilters } from "./desk/scope";
26
+ export type { DeskScopeProviderProps } from "./desk/scope";
17
27
  export { ControlledNavigator, MemoryNavigator, createMemoryNavigator, createNoopNavigator, parseBackofficeHref, } from "./navigation/navigator";
18
28
  export type { BackofficeLocation, BackofficeNavigator, BackofficeParams, ControlledNavigatorHandlers, } from "./navigation/navigator";
19
29
  export { BACKOFFICE_BASE, BACKOFFICE_VIEWS, createBackofficePaths, formPath, homePath, isBackofficeView, listPath, newDocPath, parseDocDefaults, QUERY_REPORT_BASE, queryReportPath, slugToDisplayName, toSlug, viewPath, workspacePath, } from "./navigation/paths";