@multiplatform.one/backoffice 7.34.3 → 7.35.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 (867) hide show
  1. package/dist/cjs/chrome/BackofficeAwesomebar.cjs +14 -7
  2. package/dist/cjs/chrome/BackofficeAwesomebar.native.js +14 -7
  3. package/dist/cjs/chrome/BackofficeAwesomebar.native.js.map +1 -1
  4. package/dist/cjs/chrome/CommandPalette.cjs +23 -17
  5. package/dist/cjs/chrome/CommandPalette.native.js +25 -17
  6. package/dist/cjs/chrome/CommandPalette.native.js.map +1 -1
  7. package/dist/cjs/chrome/NotificationsButton.cjs +3 -1
  8. package/dist/cjs/chrome/NotificationsButton.native.js +3 -1
  9. package/dist/cjs/chrome/NotificationsButton.native.js.map +1 -1
  10. package/dist/cjs/chrome/UserMenu.cjs +144 -78
  11. package/dist/cjs/chrome/UserMenu.native.js +158 -91
  12. package/dist/cjs/chrome/UserMenu.native.js.map +1 -1
  13. package/dist/cjs/chrome/awesomebar-data.cjs +45 -18
  14. package/dist/cjs/chrome/awesomebar-data.native.js +45 -17
  15. package/dist/cjs/chrome/awesomebar-data.native.js.map +1 -1
  16. package/dist/cjs/chrome/command-palette-model.cjs +8 -7
  17. package/dist/cjs/chrome/command-palette-model.native.js +10 -7
  18. package/dist/cjs/chrome/command-palette-model.native.js.map +1 -1
  19. package/dist/cjs/chrome/notifications-data.cjs +2 -38
  20. package/dist/cjs/chrome/notifications-data.native.js +2 -39
  21. package/dist/cjs/chrome/notifications-data.native.js.map +1 -1
  22. package/dist/cjs/chrome/notifications-panel.cjs +3 -4
  23. package/dist/cjs/chrome/notifications-panel.native.js +3 -4
  24. package/dist/cjs/chrome/notifications-panel.native.js.map +1 -1
  25. package/dist/cjs/chrome/user-session.cjs +20 -11
  26. package/dist/cjs/chrome/user-session.native.js +21 -13
  27. package/dist/cjs/chrome/user-session.native.js.map +1 -1
  28. package/dist/cjs/config/BackofficeProvider.cjs +3 -1
  29. package/dist/cjs/config/BackofficeProvider.native.js +3 -1
  30. package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
  31. package/dist/cjs/config/capabilities.cjs +3 -0
  32. package/dist/cjs/config/capabilities.native.js +3 -0
  33. package/dist/cjs/config/capabilities.native.js.map +1 -1
  34. package/dist/cjs/desk/Desk.cjs +17 -0
  35. package/dist/cjs/desk/Desk.native.js +17 -0
  36. package/dist/cjs/desk/Desk.native.js.map +1 -1
  37. package/dist/cjs/desk/DeskSurface.cjs +10 -0
  38. package/dist/cjs/desk/DeskSurface.native.js +10 -0
  39. package/dist/cjs/desk/DeskSurface.native.js.map +1 -1
  40. package/dist/cjs/desk/resolveDeskPath.cjs +6 -0
  41. package/dist/cjs/desk/resolveDeskPath.native.js +6 -0
  42. package/dist/cjs/desk/resolveDeskPath.native.js.map +1 -1
  43. package/dist/cjs/desk/target.cjs +5 -0
  44. package/dist/cjs/desk/target.native.js +5 -0
  45. package/dist/cjs/desk/target.native.js.map +1 -1
  46. package/dist/cjs/form/DocFormScreen.cjs +24 -3
  47. package/dist/cjs/form/DocFormScreen.native.js +27 -6
  48. package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
  49. package/dist/cjs/form/FormConnections.cjs +2 -2
  50. package/dist/cjs/form/FormConnections.native.js +2 -2
  51. package/dist/cjs/form/FormConnections.native.js.map +1 -1
  52. package/dist/cjs/form/FormErrorBoundary.cjs +1 -1
  53. package/dist/cjs/form/FormErrorBoundary.native.js +1 -1
  54. package/dist/cjs/form/FormErrorBoundary.native.js.map +1 -1
  55. package/dist/cjs/form/FormSidebarPanel.cjs +1 -1
  56. package/dist/cjs/form/FormSidebarPanel.native.js +1 -1
  57. package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
  58. package/dist/cjs/form/FormTimeline.cjs +1 -2
  59. package/dist/cjs/form/FormTimeline.native.js +1 -2
  60. package/dist/cjs/form/FormTimeline.native.js.map +1 -1
  61. package/dist/cjs/form/FormToolbar.cjs +97 -87
  62. package/dist/cjs/form/FormToolbar.native.js +98 -94
  63. package/dist/cjs/form/FormToolbar.native.js.map +1 -1
  64. package/dist/cjs/formBuilder/DoctypePicker.cjs +89 -0
  65. package/dist/cjs/formBuilder/DoctypePicker.native.js +98 -0
  66. package/dist/cjs/formBuilder/DoctypePicker.native.js.map +1 -0
  67. package/dist/cjs/formBuilder/FieldPalette.cjs +148 -0
  68. package/dist/cjs/formBuilder/FieldPalette.native.js +165 -0
  69. package/dist/cjs/formBuilder/FieldPalette.native.js.map +1 -0
  70. package/dist/cjs/formBuilder/FieldPropertiesPanel.cjs +186 -0
  71. package/dist/cjs/formBuilder/FieldPropertiesPanel.native.js +237 -0
  72. package/dist/cjs/formBuilder/FieldPropertiesPanel.native.js.map +1 -0
  73. package/dist/cjs/formBuilder/FormBuilderCanvas.cjs +407 -0
  74. package/dist/cjs/formBuilder/FormBuilderCanvas.native.js +472 -0
  75. package/dist/cjs/formBuilder/FormBuilderCanvas.native.js.map +1 -0
  76. package/dist/cjs/formBuilder/FormBuilderScreen.cjs +448 -0
  77. package/dist/cjs/formBuilder/FormBuilderScreen.native.js +537 -0
  78. package/dist/cjs/formBuilder/FormBuilderScreen.native.js.map +1 -0
  79. package/dist/cjs/formBuilder/api.cjs +160 -0
  80. package/dist/cjs/formBuilder/api.native.js +193 -0
  81. package/dist/cjs/formBuilder/api.native.js.map +1 -0
  82. package/dist/cjs/formBuilder/fieldtypes.cjs +114 -0
  83. package/dist/cjs/formBuilder/fieldtypes.native.js +133 -0
  84. package/dist/cjs/formBuilder/fieldtypes.native.js.map +1 -0
  85. package/dist/cjs/formBuilder/index.cjs +68 -0
  86. package/dist/cjs/formBuilder/index.native.js +71 -0
  87. package/dist/cjs/formBuilder/index.native.js.map +1 -0
  88. package/dist/cjs/formBuilder/model.cjs +466 -0
  89. package/dist/cjs/formBuilder/model.native.js +714 -0
  90. package/dist/cjs/formBuilder/model.native.js.map +1 -0
  91. package/dist/cjs/formBuilder/useFormBuilderDrag.cjs +399 -0
  92. package/dist/cjs/formBuilder/useFormBuilderDrag.native.js +434 -0
  93. package/dist/cjs/formBuilder/useFormBuilderDrag.native.js.map +1 -0
  94. package/dist/cjs/i18n/en.cjs +294 -4
  95. package/dist/cjs/i18n/en.native.js +294 -4
  96. package/dist/cjs/i18n/en.native.js.map +1 -1
  97. package/dist/cjs/index.cjs +41 -1
  98. package/dist/cjs/index.native.js +40 -0
  99. package/dist/cjs/index.native.js.map +1 -1
  100. package/dist/cjs/list/DoctypeListScreen.cjs +147 -43
  101. package/dist/cjs/list/DoctypeListScreen.native.js +164 -56
  102. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  103. package/dist/cjs/list/ListFilterBar.cjs +8 -4
  104. package/dist/cjs/list/ListFilterBar.native.js +8 -4
  105. package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
  106. package/dist/cjs/list/ListSidebar.cjs +4 -3
  107. package/dist/cjs/list/ListSidebar.native.js +4 -3
  108. package/dist/cjs/list/ListSidebar.native.js.map +1 -1
  109. package/dist/cjs/list/filter-chips.cjs +10 -4
  110. package/dist/cjs/list/filter-chips.native.js +10 -4
  111. package/dist/cjs/list/filter-chips.native.js.map +1 -1
  112. package/dist/cjs/list/filter-editor.cjs +1 -10
  113. package/dist/cjs/list/filter-editor.native.js +1 -10
  114. package/dist/cjs/list/filter-editor.native.js.map +1 -1
  115. package/dist/cjs/list/filter-saved.cjs +0 -1
  116. package/dist/cjs/list/filter-saved.native.js +0 -1
  117. package/dist/cjs/list/filter-saved.native.js.map +1 -1
  118. package/dist/cjs/list/filter-sort.cjs +0 -1
  119. package/dist/cjs/list/filter-sort.native.js +0 -1
  120. package/dist/cjs/list/filter-sort.native.js.map +1 -1
  121. package/dist/cjs/list/filter-standard.cjs +1 -3
  122. package/dist/cjs/list/filter-standard.native.js +1 -3
  123. package/dist/cjs/list/filter-standard.native.js.map +1 -1
  124. package/dist/cjs/list/list-tools-sheet.cjs +10 -3
  125. package/dist/cjs/list/list-tools-sheet.native.js +12 -3
  126. package/dist/cjs/list/list-tools-sheet.native.js.map +1 -1
  127. package/dist/cjs/navigation/paths.cjs +5 -0
  128. package/dist/cjs/navigation/paths.native.js +7 -0
  129. package/dist/cjs/navigation/paths.native.js.map +1 -1
  130. package/dist/cjs/report/QueryReportScreen.cjs +1 -1
  131. package/dist/cjs/report/QueryReportScreen.native.js +1 -1
  132. package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
  133. package/dist/cjs/report/queryReportFilterBar.cjs +3 -8
  134. package/dist/cjs/report/queryReportFilterBar.native.js +3 -8
  135. package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
  136. package/dist/cjs/shared/sessionUser.cjs +107 -0
  137. package/dist/cjs/shared/sessionUser.native.js +137 -0
  138. package/dist/cjs/shared/sessionUser.native.js.map +1 -0
  139. package/dist/cjs/shared/useSessionUserId.cjs +2 -26
  140. package/dist/cjs/shared/useSessionUserId.native.js +2 -28
  141. package/dist/cjs/shared/useSessionUserId.native.js.map +1 -1
  142. package/dist/cjs/shell/BackofficeShell.cjs +129 -86
  143. package/dist/cjs/shell/BackofficeShell.native.js +146 -99
  144. package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
  145. package/dist/cjs/shell/HomeRedirect.cjs +17 -21
  146. package/dist/cjs/shell/HomeRedirect.native.js +17 -20
  147. package/dist/cjs/shell/HomeRedirect.native.js.map +1 -1
  148. package/dist/cjs/shell/WorkspaceSidebar.cjs +53 -25
  149. package/dist/cjs/shell/WorkspaceSidebar.native.js +55 -25
  150. package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
  151. package/dist/cjs/shell/shellSidebarSlot.cjs +31 -0
  152. package/dist/cjs/shell/shellSidebarSlot.native.js +34 -0
  153. package/dist/cjs/shell/shellSidebarSlot.native.js.map +1 -0
  154. package/dist/cjs/shell/useWorkspaces.cjs +25 -37
  155. package/dist/cjs/shell/useWorkspaces.native.js +27 -41
  156. package/dist/cjs/shell/useWorkspaces.native.js.map +1 -1
  157. package/dist/cjs/views/DashboardView.cjs +2 -2
  158. package/dist/cjs/views/DashboardView.native.js +2 -2
  159. package/dist/cjs/views/DashboardView.native.js.map +1 -1
  160. package/dist/cjs/views/ImageView.cjs +14 -5
  161. package/dist/cjs/views/ImageView.native.js +14 -5
  162. package/dist/cjs/views/ImageView.native.js.map +1 -1
  163. package/dist/cjs/views/ViewHeader.cjs +17 -6
  164. package/dist/cjs/views/ViewHeader.native.js +17 -6
  165. package/dist/cjs/views/ViewHeader.native.js.map +1 -1
  166. package/dist/cjs/views/ViewSwitcherMenu.cjs +10 -9
  167. package/dist/cjs/views/ViewSwitcherMenu.native.js +10 -9
  168. package/dist/cjs/views/ViewSwitcherMenu.native.js.map +1 -1
  169. package/dist/cjs/views/viewAvailability.cjs +17 -9
  170. package/dist/cjs/views/viewAvailability.native.js +18 -8
  171. package/dist/cjs/views/viewAvailability.native.js.map +1 -1
  172. package/dist/cjs/views/viewMeta.cjs +24 -1
  173. package/dist/cjs/views/viewMeta.native.js +30 -1
  174. package/dist/cjs/views/viewMeta.native.js.map +1 -1
  175. package/dist/cjs/workspace/WorkspaceChartBlock.cjs +1 -1
  176. package/dist/cjs/workspace/WorkspaceChartBlock.native.js +1 -1
  177. package/dist/cjs/workspace/WorkspaceChartBlock.native.js.map +1 -1
  178. package/dist/cjs/workspace/WorkspaceLinkDirectory.cjs +2 -2
  179. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +2 -2
  180. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  181. package/dist/cjs/workspace/WorkspaceRecents.cjs +1 -1
  182. package/dist/cjs/workspace/WorkspaceRecents.native.js +1 -1
  183. package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
  184. package/dist/cjs/workspace/WorkspaceShortcut.cjs +1 -1
  185. package/dist/cjs/workspace/WorkspaceShortcut.native.js +1 -1
  186. package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
  187. package/dist/esm/chrome/BackofficeAwesomebar.mjs +15 -8
  188. package/dist/esm/chrome/BackofficeAwesomebar.mjs.map +1 -1
  189. package/dist/esm/chrome/BackofficeAwesomebar.native.js +15 -8
  190. package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -1
  191. package/dist/esm/chrome/CommandPalette.mjs +25 -19
  192. package/dist/esm/chrome/CommandPalette.mjs.map +1 -1
  193. package/dist/esm/chrome/CommandPalette.native.js +27 -19
  194. package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
  195. package/dist/esm/chrome/NotificationsButton.mjs +4 -2
  196. package/dist/esm/chrome/NotificationsButton.mjs.map +1 -1
  197. package/dist/esm/chrome/NotificationsButton.native.js +4 -2
  198. package/dist/esm/chrome/NotificationsButton.native.js.map +1 -1
  199. package/dist/esm/chrome/UserMenu.mjs +146 -80
  200. package/dist/esm/chrome/UserMenu.mjs.map +1 -1
  201. package/dist/esm/chrome/UserMenu.native.js +160 -93
  202. package/dist/esm/chrome/UserMenu.native.js.map +1 -1
  203. package/dist/esm/chrome/awesomebar-data.mjs +45 -18
  204. package/dist/esm/chrome/awesomebar-data.mjs.map +1 -1
  205. package/dist/esm/chrome/awesomebar-data.native.js +45 -17
  206. package/dist/esm/chrome/awesomebar-data.native.js.map +1 -1
  207. package/dist/esm/chrome/command-palette-model.mjs +8 -7
  208. package/dist/esm/chrome/command-palette-model.mjs.map +1 -1
  209. package/dist/esm/chrome/command-palette-model.native.js +10 -7
  210. package/dist/esm/chrome/command-palette-model.native.js.map +1 -1
  211. package/dist/esm/chrome/notifications-data.mjs +3 -39
  212. package/dist/esm/chrome/notifications-data.mjs.map +1 -1
  213. package/dist/esm/chrome/notifications-data.native.js +3 -40
  214. package/dist/esm/chrome/notifications-data.native.js.map +1 -1
  215. package/dist/esm/chrome/notifications-panel.mjs +4 -5
  216. package/dist/esm/chrome/notifications-panel.mjs.map +1 -1
  217. package/dist/esm/chrome/notifications-panel.native.js +4 -5
  218. package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
  219. package/dist/esm/chrome/user-session.mjs +20 -11
  220. package/dist/esm/chrome/user-session.mjs.map +1 -1
  221. package/dist/esm/chrome/user-session.native.js +21 -13
  222. package/dist/esm/chrome/user-session.native.js.map +1 -1
  223. package/dist/esm/config/BackofficeProvider.mjs +3 -1
  224. package/dist/esm/config/BackofficeProvider.mjs.map +1 -1
  225. package/dist/esm/config/BackofficeProvider.native.js +3 -1
  226. package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
  227. package/dist/esm/config/capabilities.mjs +3 -0
  228. package/dist/esm/config/capabilities.mjs.map +1 -1
  229. package/dist/esm/config/capabilities.native.js +3 -0
  230. package/dist/esm/config/capabilities.native.js.map +1 -1
  231. package/dist/esm/desk/Desk.mjs +17 -0
  232. package/dist/esm/desk/Desk.mjs.map +1 -1
  233. package/dist/esm/desk/Desk.native.js +17 -0
  234. package/dist/esm/desk/Desk.native.js.map +1 -1
  235. package/dist/esm/desk/DeskSurface.mjs +10 -0
  236. package/dist/esm/desk/DeskSurface.mjs.map +1 -1
  237. package/dist/esm/desk/DeskSurface.native.js +10 -0
  238. package/dist/esm/desk/DeskSurface.native.js.map +1 -1
  239. package/dist/esm/desk/resolveDeskPath.mjs +6 -0
  240. package/dist/esm/desk/resolveDeskPath.mjs.map +1 -1
  241. package/dist/esm/desk/resolveDeskPath.native.js +6 -0
  242. package/dist/esm/desk/resolveDeskPath.native.js.map +1 -1
  243. package/dist/esm/desk/target.mjs +5 -0
  244. package/dist/esm/desk/target.mjs.map +1 -1
  245. package/dist/esm/desk/target.native.js +5 -0
  246. package/dist/esm/desk/target.native.js.map +1 -1
  247. package/dist/esm/form/DocFormScreen.mjs +24 -3
  248. package/dist/esm/form/DocFormScreen.mjs.map +1 -1
  249. package/dist/esm/form/DocFormScreen.native.js +27 -6
  250. package/dist/esm/form/DocFormScreen.native.js.map +1 -1
  251. package/dist/esm/form/FormConnections.mjs +2 -2
  252. package/dist/esm/form/FormConnections.mjs.map +1 -1
  253. package/dist/esm/form/FormConnections.native.js +2 -2
  254. package/dist/esm/form/FormConnections.native.js.map +1 -1
  255. package/dist/esm/form/FormErrorBoundary.mjs +1 -1
  256. package/dist/esm/form/FormErrorBoundary.mjs.map +1 -1
  257. package/dist/esm/form/FormErrorBoundary.native.js +1 -1
  258. package/dist/esm/form/FormErrorBoundary.native.js.map +1 -1
  259. package/dist/esm/form/FormSidebarPanel.mjs +1 -1
  260. package/dist/esm/form/FormSidebarPanel.mjs.map +1 -1
  261. package/dist/esm/form/FormSidebarPanel.native.js +1 -1
  262. package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
  263. package/dist/esm/form/FormTimeline.mjs +1 -2
  264. package/dist/esm/form/FormTimeline.mjs.map +1 -1
  265. package/dist/esm/form/FormTimeline.native.js +1 -2
  266. package/dist/esm/form/FormTimeline.native.js.map +1 -1
  267. package/dist/esm/form/FormToolbar.mjs +99 -89
  268. package/dist/esm/form/FormToolbar.mjs.map +1 -1
  269. package/dist/esm/form/FormToolbar.native.js +100 -96
  270. package/dist/esm/form/FormToolbar.native.js.map +1 -1
  271. package/dist/esm/formBuilder/DoctypePicker.mjs +64 -0
  272. package/dist/esm/formBuilder/DoctypePicker.mjs.map +1 -0
  273. package/dist/esm/formBuilder/DoctypePicker.native.js +70 -0
  274. package/dist/esm/formBuilder/DoctypePicker.native.js.map +1 -0
  275. package/dist/esm/formBuilder/FieldPalette.mjs +123 -0
  276. package/dist/esm/formBuilder/FieldPalette.mjs.map +1 -0
  277. package/dist/esm/formBuilder/FieldPalette.native.js +137 -0
  278. package/dist/esm/formBuilder/FieldPalette.native.js.map +1 -0
  279. package/dist/esm/formBuilder/FieldPropertiesPanel.mjs +161 -0
  280. package/dist/esm/formBuilder/FieldPropertiesPanel.mjs.map +1 -0
  281. package/dist/esm/formBuilder/FieldPropertiesPanel.native.js +209 -0
  282. package/dist/esm/formBuilder/FieldPropertiesPanel.native.js.map +1 -0
  283. package/dist/esm/formBuilder/FormBuilderCanvas.mjs +382 -0
  284. package/dist/esm/formBuilder/FormBuilderCanvas.mjs.map +1 -0
  285. package/dist/esm/formBuilder/FormBuilderCanvas.native.js +444 -0
  286. package/dist/esm/formBuilder/FormBuilderCanvas.native.js.map +1 -0
  287. package/dist/esm/formBuilder/FormBuilderScreen.mjs +423 -0
  288. package/dist/esm/formBuilder/FormBuilderScreen.mjs.map +1 -0
  289. package/dist/esm/formBuilder/FormBuilderScreen.native.js +509 -0
  290. package/dist/esm/formBuilder/FormBuilderScreen.native.js.map +1 -0
  291. package/dist/esm/formBuilder/api.mjs +129 -0
  292. package/dist/esm/formBuilder/api.mjs.map +1 -0
  293. package/dist/esm/formBuilder/api.native.js +159 -0
  294. package/dist/esm/formBuilder/api.native.js.map +1 -0
  295. package/dist/esm/formBuilder/fieldtypes.mjs +82 -0
  296. package/dist/esm/formBuilder/fieldtypes.mjs.map +1 -0
  297. package/dist/esm/formBuilder/fieldtypes.native.js +98 -0
  298. package/dist/esm/formBuilder/fieldtypes.native.js.map +1 -0
  299. package/dist/esm/formBuilder/index.mjs +6 -0
  300. package/dist/esm/formBuilder/index.mjs.map +1 -0
  301. package/dist/esm/formBuilder/index.native.js +6 -0
  302. package/dist/esm/formBuilder/index.native.js.map +1 -0
  303. package/dist/esm/formBuilder/model.mjs +420 -0
  304. package/dist/esm/formBuilder/model.mjs.map +1 -0
  305. package/dist/esm/formBuilder/model.native.js +665 -0
  306. package/dist/esm/formBuilder/model.native.js.map +1 -0
  307. package/dist/esm/formBuilder/useFormBuilderDrag.mjs +374 -0
  308. package/dist/esm/formBuilder/useFormBuilderDrag.mjs.map +1 -0
  309. package/dist/esm/formBuilder/useFormBuilderDrag.native.js +406 -0
  310. package/dist/esm/formBuilder/useFormBuilderDrag.native.js.map +1 -0
  311. package/dist/esm/i18n/en.mjs +294 -4
  312. package/dist/esm/i18n/en.mjs.map +1 -1
  313. package/dist/esm/i18n/en.native.js +294 -4
  314. package/dist/esm/i18n/en.native.js.map +1 -1
  315. package/dist/esm/index.mjs +3 -2
  316. package/dist/esm/index.mjs.map +1 -1
  317. package/dist/esm/index.native.js +3 -2
  318. package/dist/esm/index.native.js.map +1 -1
  319. package/dist/esm/list/DoctypeListScreen.mjs +150 -46
  320. package/dist/esm/list/DoctypeListScreen.mjs.map +1 -1
  321. package/dist/esm/list/DoctypeListScreen.native.js +167 -59
  322. package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
  323. package/dist/esm/list/ListFilterBar.mjs +9 -5
  324. package/dist/esm/list/ListFilterBar.mjs.map +1 -1
  325. package/dist/esm/list/ListFilterBar.native.js +9 -5
  326. package/dist/esm/list/ListFilterBar.native.js.map +1 -1
  327. package/dist/esm/list/ListSidebar.mjs +4 -3
  328. package/dist/esm/list/ListSidebar.mjs.map +1 -1
  329. package/dist/esm/list/ListSidebar.native.js +4 -3
  330. package/dist/esm/list/ListSidebar.native.js.map +1 -1
  331. package/dist/esm/list/filter-chips.mjs +10 -4
  332. package/dist/esm/list/filter-chips.mjs.map +1 -1
  333. package/dist/esm/list/filter-chips.native.js +10 -4
  334. package/dist/esm/list/filter-chips.native.js.map +1 -1
  335. package/dist/esm/list/filter-editor.mjs +1 -10
  336. package/dist/esm/list/filter-editor.mjs.map +1 -1
  337. package/dist/esm/list/filter-editor.native.js +1 -10
  338. package/dist/esm/list/filter-editor.native.js.map +1 -1
  339. package/dist/esm/list/filter-saved.mjs +0 -1
  340. package/dist/esm/list/filter-saved.mjs.map +1 -1
  341. package/dist/esm/list/filter-saved.native.js +0 -1
  342. package/dist/esm/list/filter-saved.native.js.map +1 -1
  343. package/dist/esm/list/filter-sort.mjs +0 -1
  344. package/dist/esm/list/filter-sort.mjs.map +1 -1
  345. package/dist/esm/list/filter-sort.native.js +0 -1
  346. package/dist/esm/list/filter-sort.native.js.map +1 -1
  347. package/dist/esm/list/filter-standard.mjs +1 -3
  348. package/dist/esm/list/filter-standard.mjs.map +1 -1
  349. package/dist/esm/list/filter-standard.native.js +1 -3
  350. package/dist/esm/list/filter-standard.native.js.map +1 -1
  351. package/dist/esm/list/list-tools-sheet.mjs +10 -3
  352. package/dist/esm/list/list-tools-sheet.mjs.map +1 -1
  353. package/dist/esm/list/list-tools-sheet.native.js +12 -3
  354. package/dist/esm/list/list-tools-sheet.native.js.map +1 -1
  355. package/dist/esm/navigation/paths.mjs +5 -1
  356. package/dist/esm/navigation/paths.mjs.map +1 -1
  357. package/dist/esm/navigation/paths.native.js +7 -1
  358. package/dist/esm/navigation/paths.native.js.map +1 -1
  359. package/dist/esm/report/QueryReportScreen.mjs +1 -1
  360. package/dist/esm/report/QueryReportScreen.mjs.map +1 -1
  361. package/dist/esm/report/QueryReportScreen.native.js +1 -1
  362. package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
  363. package/dist/esm/report/queryReportFilterBar.mjs +3 -8
  364. package/dist/esm/report/queryReportFilterBar.mjs.map +1 -1
  365. package/dist/esm/report/queryReportFilterBar.native.js +3 -8
  366. package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
  367. package/dist/esm/shared/sessionUser.mjs +78 -0
  368. package/dist/esm/shared/sessionUser.mjs.map +1 -0
  369. package/dist/esm/shared/sessionUser.native.js +105 -0
  370. package/dist/esm/shared/sessionUser.native.js.map +1 -0
  371. package/dist/esm/shared/useSessionUserId.mjs +2 -26
  372. package/dist/esm/shared/useSessionUserId.mjs.map +1 -1
  373. package/dist/esm/shared/useSessionUserId.native.js +2 -28
  374. package/dist/esm/shared/useSessionUserId.native.js.map +1 -1
  375. package/dist/esm/shell/BackofficeShell.mjs +132 -89
  376. package/dist/esm/shell/BackofficeShell.mjs.map +1 -1
  377. package/dist/esm/shell/BackofficeShell.native.js +149 -102
  378. package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
  379. package/dist/esm/shell/HomeRedirect.mjs +20 -24
  380. package/dist/esm/shell/HomeRedirect.mjs.map +1 -1
  381. package/dist/esm/shell/HomeRedirect.native.js +20 -23
  382. package/dist/esm/shell/HomeRedirect.native.js.map +1 -1
  383. package/dist/esm/shell/WorkspaceSidebar.mjs +55 -27
  384. package/dist/esm/shell/WorkspaceSidebar.mjs.map +1 -1
  385. package/dist/esm/shell/WorkspaceSidebar.native.js +57 -27
  386. package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
  387. package/dist/esm/shell/shellSidebarSlot.mjs +3 -0
  388. package/dist/esm/shell/shellSidebarSlot.mjs.map +1 -0
  389. package/dist/esm/shell/shellSidebarSlot.native.js +3 -0
  390. package/dist/esm/shell/shellSidebarSlot.native.js.map +1 -0
  391. package/dist/esm/shell/useWorkspaces.mjs +28 -40
  392. package/dist/esm/shell/useWorkspaces.mjs.map +1 -1
  393. package/dist/esm/shell/useWorkspaces.native.js +30 -44
  394. package/dist/esm/shell/useWorkspaces.native.js.map +1 -1
  395. package/dist/esm/views/DashboardView.mjs +2 -2
  396. package/dist/esm/views/DashboardView.mjs.map +1 -1
  397. package/dist/esm/views/DashboardView.native.js +2 -2
  398. package/dist/esm/views/DashboardView.native.js.map +1 -1
  399. package/dist/esm/views/ImageView.mjs +15 -6
  400. package/dist/esm/views/ImageView.mjs.map +1 -1
  401. package/dist/esm/views/ImageView.native.js +15 -6
  402. package/dist/esm/views/ImageView.native.js.map +1 -1
  403. package/dist/esm/views/ViewHeader.mjs +18 -7
  404. package/dist/esm/views/ViewHeader.mjs.map +1 -1
  405. package/dist/esm/views/ViewHeader.native.js +18 -7
  406. package/dist/esm/views/ViewHeader.native.js.map +1 -1
  407. package/dist/esm/views/ViewSwitcherMenu.mjs +11 -10
  408. package/dist/esm/views/ViewSwitcherMenu.mjs.map +1 -1
  409. package/dist/esm/views/ViewSwitcherMenu.native.js +11 -10
  410. package/dist/esm/views/ViewSwitcherMenu.native.js.map +1 -1
  411. package/dist/esm/views/viewAvailability.mjs +17 -9
  412. package/dist/esm/views/viewAvailability.mjs.map +1 -1
  413. package/dist/esm/views/viewAvailability.native.js +18 -8
  414. package/dist/esm/views/viewAvailability.native.js.map +1 -1
  415. package/dist/esm/views/viewMeta.mjs +23 -1
  416. package/dist/esm/views/viewMeta.mjs.map +1 -1
  417. package/dist/esm/views/viewMeta.native.js +29 -1
  418. package/dist/esm/views/viewMeta.native.js.map +1 -1
  419. package/dist/esm/workspace/WorkspaceChartBlock.mjs +1 -1
  420. package/dist/esm/workspace/WorkspaceChartBlock.mjs.map +1 -1
  421. package/dist/esm/workspace/WorkspaceChartBlock.native.js +1 -1
  422. package/dist/esm/workspace/WorkspaceChartBlock.native.js.map +1 -1
  423. package/dist/esm/workspace/WorkspaceLinkDirectory.mjs +2 -2
  424. package/dist/esm/workspace/WorkspaceLinkDirectory.mjs.map +1 -1
  425. package/dist/esm/workspace/WorkspaceLinkDirectory.native.js +2 -2
  426. package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  427. package/dist/esm/workspace/WorkspaceRecents.mjs +2 -2
  428. package/dist/esm/workspace/WorkspaceRecents.mjs.map +1 -1
  429. package/dist/esm/workspace/WorkspaceRecents.native.js +2 -2
  430. package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
  431. package/dist/esm/workspace/WorkspaceShortcut.mjs +2 -2
  432. package/dist/esm/workspace/WorkspaceShortcut.mjs.map +1 -1
  433. package/dist/esm/workspace/WorkspaceShortcut.native.js +2 -2
  434. package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
  435. package/dist/jsx/chrome/BackofficeAwesomebar.mjs +15 -8
  436. package/dist/jsx/chrome/BackofficeAwesomebar.mjs.map +1 -1
  437. package/dist/jsx/chrome/BackofficeAwesomebar.native.js +14 -7
  438. package/dist/jsx/chrome/BackofficeAwesomebar.native.js.map +1 -1
  439. package/dist/jsx/chrome/CommandPalette.mjs +25 -19
  440. package/dist/jsx/chrome/CommandPalette.mjs.map +1 -1
  441. package/dist/jsx/chrome/CommandPalette.native.js +25 -17
  442. package/dist/jsx/chrome/CommandPalette.native.js.map +1 -1
  443. package/dist/jsx/chrome/NotificationsButton.mjs +4 -2
  444. package/dist/jsx/chrome/NotificationsButton.mjs.map +1 -1
  445. package/dist/jsx/chrome/NotificationsButton.native.js +3 -1
  446. package/dist/jsx/chrome/NotificationsButton.native.js.map +1 -1
  447. package/dist/jsx/chrome/UserMenu.mjs +146 -80
  448. package/dist/jsx/chrome/UserMenu.mjs.map +1 -1
  449. package/dist/jsx/chrome/UserMenu.native.js +158 -91
  450. package/dist/jsx/chrome/UserMenu.native.js.map +1 -1
  451. package/dist/jsx/chrome/awesomebar-data.mjs +45 -18
  452. package/dist/jsx/chrome/awesomebar-data.mjs.map +1 -1
  453. package/dist/jsx/chrome/awesomebar-data.native.js +45 -17
  454. package/dist/jsx/chrome/awesomebar-data.native.js.map +1 -1
  455. package/dist/jsx/chrome/command-palette-model.mjs +8 -7
  456. package/dist/jsx/chrome/command-palette-model.mjs.map +1 -1
  457. package/dist/jsx/chrome/command-palette-model.native.js +10 -7
  458. package/dist/jsx/chrome/command-palette-model.native.js.map +1 -1
  459. package/dist/jsx/chrome/notifications-data.mjs +3 -39
  460. package/dist/jsx/chrome/notifications-data.mjs.map +1 -1
  461. package/dist/jsx/chrome/notifications-data.native.js +2 -39
  462. package/dist/jsx/chrome/notifications-data.native.js.map +1 -1
  463. package/dist/jsx/chrome/notifications-panel.mjs +4 -5
  464. package/dist/jsx/chrome/notifications-panel.mjs.map +1 -1
  465. package/dist/jsx/chrome/notifications-panel.native.js +3 -4
  466. package/dist/jsx/chrome/notifications-panel.native.js.map +1 -1
  467. package/dist/jsx/chrome/user-session.mjs +20 -11
  468. package/dist/jsx/chrome/user-session.mjs.map +1 -1
  469. package/dist/jsx/chrome/user-session.native.js +21 -13
  470. package/dist/jsx/chrome/user-session.native.js.map +1 -1
  471. package/dist/jsx/config/BackofficeProvider.mjs +3 -1
  472. package/dist/jsx/config/BackofficeProvider.mjs.map +1 -1
  473. package/dist/jsx/config/BackofficeProvider.native.js +3 -1
  474. package/dist/jsx/config/BackofficeProvider.native.js.map +1 -1
  475. package/dist/jsx/config/capabilities.mjs +3 -0
  476. package/dist/jsx/config/capabilities.mjs.map +1 -1
  477. package/dist/jsx/config/capabilities.native.js +3 -0
  478. package/dist/jsx/config/capabilities.native.js.map +1 -1
  479. package/dist/jsx/desk/Desk.mjs +17 -0
  480. package/dist/jsx/desk/Desk.mjs.map +1 -1
  481. package/dist/jsx/desk/Desk.native.js +17 -0
  482. package/dist/jsx/desk/Desk.native.js.map +1 -1
  483. package/dist/jsx/desk/DeskSurface.mjs +10 -0
  484. package/dist/jsx/desk/DeskSurface.mjs.map +1 -1
  485. package/dist/jsx/desk/DeskSurface.native.js +10 -0
  486. package/dist/jsx/desk/DeskSurface.native.js.map +1 -1
  487. package/dist/jsx/desk/resolveDeskPath.mjs +6 -0
  488. package/dist/jsx/desk/resolveDeskPath.mjs.map +1 -1
  489. package/dist/jsx/desk/resolveDeskPath.native.js +6 -0
  490. package/dist/jsx/desk/resolveDeskPath.native.js.map +1 -1
  491. package/dist/jsx/desk/target.mjs +5 -0
  492. package/dist/jsx/desk/target.mjs.map +1 -1
  493. package/dist/jsx/desk/target.native.js +5 -0
  494. package/dist/jsx/desk/target.native.js.map +1 -1
  495. package/dist/jsx/form/DocFormScreen.mjs +24 -3
  496. package/dist/jsx/form/DocFormScreen.mjs.map +1 -1
  497. package/dist/jsx/form/DocFormScreen.native.js +27 -6
  498. package/dist/jsx/form/DocFormScreen.native.js.map +1 -1
  499. package/dist/jsx/form/FormConnections.mjs +2 -2
  500. package/dist/jsx/form/FormConnections.mjs.map +1 -1
  501. package/dist/jsx/form/FormConnections.native.js +2 -2
  502. package/dist/jsx/form/FormConnections.native.js.map +1 -1
  503. package/dist/jsx/form/FormErrorBoundary.mjs +1 -1
  504. package/dist/jsx/form/FormErrorBoundary.mjs.map +1 -1
  505. package/dist/jsx/form/FormErrorBoundary.native.js +1 -1
  506. package/dist/jsx/form/FormErrorBoundary.native.js.map +1 -1
  507. package/dist/jsx/form/FormSidebarPanel.mjs +1 -1
  508. package/dist/jsx/form/FormSidebarPanel.mjs.map +1 -1
  509. package/dist/jsx/form/FormSidebarPanel.native.js +1 -1
  510. package/dist/jsx/form/FormSidebarPanel.native.js.map +1 -1
  511. package/dist/jsx/form/FormTimeline.mjs +1 -2
  512. package/dist/jsx/form/FormTimeline.mjs.map +1 -1
  513. package/dist/jsx/form/FormTimeline.native.js +1 -2
  514. package/dist/jsx/form/FormTimeline.native.js.map +1 -1
  515. package/dist/jsx/form/FormToolbar.mjs +99 -89
  516. package/dist/jsx/form/FormToolbar.mjs.map +1 -1
  517. package/dist/jsx/form/FormToolbar.native.js +98 -94
  518. package/dist/jsx/form/FormToolbar.native.js.map +1 -1
  519. package/dist/jsx/formBuilder/DoctypePicker.mjs +64 -0
  520. package/dist/jsx/formBuilder/DoctypePicker.mjs.map +1 -0
  521. package/dist/jsx/formBuilder/DoctypePicker.native.js +98 -0
  522. package/dist/jsx/formBuilder/DoctypePicker.native.js.map +1 -0
  523. package/dist/jsx/formBuilder/FieldPalette.mjs +123 -0
  524. package/dist/jsx/formBuilder/FieldPalette.mjs.map +1 -0
  525. package/dist/jsx/formBuilder/FieldPalette.native.js +165 -0
  526. package/dist/jsx/formBuilder/FieldPalette.native.js.map +1 -0
  527. package/dist/jsx/formBuilder/FieldPropertiesPanel.mjs +161 -0
  528. package/dist/jsx/formBuilder/FieldPropertiesPanel.mjs.map +1 -0
  529. package/dist/jsx/formBuilder/FieldPropertiesPanel.native.js +237 -0
  530. package/dist/jsx/formBuilder/FieldPropertiesPanel.native.js.map +1 -0
  531. package/dist/jsx/formBuilder/FormBuilderCanvas.mjs +382 -0
  532. package/dist/jsx/formBuilder/FormBuilderCanvas.mjs.map +1 -0
  533. package/dist/jsx/formBuilder/FormBuilderCanvas.native.js +472 -0
  534. package/dist/jsx/formBuilder/FormBuilderCanvas.native.js.map +1 -0
  535. package/dist/jsx/formBuilder/FormBuilderScreen.mjs +423 -0
  536. package/dist/jsx/formBuilder/FormBuilderScreen.mjs.map +1 -0
  537. package/dist/jsx/formBuilder/FormBuilderScreen.native.js +537 -0
  538. package/dist/jsx/formBuilder/FormBuilderScreen.native.js.map +1 -0
  539. package/dist/jsx/formBuilder/api.mjs +129 -0
  540. package/dist/jsx/formBuilder/api.mjs.map +1 -0
  541. package/dist/jsx/formBuilder/api.native.js +193 -0
  542. package/dist/jsx/formBuilder/api.native.js.map +1 -0
  543. package/dist/jsx/formBuilder/fieldtypes.mjs +82 -0
  544. package/dist/jsx/formBuilder/fieldtypes.mjs.map +1 -0
  545. package/dist/jsx/formBuilder/fieldtypes.native.js +133 -0
  546. package/dist/jsx/formBuilder/fieldtypes.native.js.map +1 -0
  547. package/dist/jsx/formBuilder/index.mjs +6 -0
  548. package/dist/jsx/formBuilder/index.mjs.map +1 -0
  549. package/dist/jsx/formBuilder/index.native.js +71 -0
  550. package/dist/jsx/formBuilder/index.native.js.map +1 -0
  551. package/dist/jsx/formBuilder/model.mjs +420 -0
  552. package/dist/jsx/formBuilder/model.mjs.map +1 -0
  553. package/dist/jsx/formBuilder/model.native.js +714 -0
  554. package/dist/jsx/formBuilder/model.native.js.map +1 -0
  555. package/dist/jsx/formBuilder/useFormBuilderDrag.mjs +374 -0
  556. package/dist/jsx/formBuilder/useFormBuilderDrag.mjs.map +1 -0
  557. package/dist/jsx/formBuilder/useFormBuilderDrag.native.js +434 -0
  558. package/dist/jsx/formBuilder/useFormBuilderDrag.native.js.map +1 -0
  559. package/dist/jsx/i18n/en.mjs +294 -4
  560. package/dist/jsx/i18n/en.mjs.map +1 -1
  561. package/dist/jsx/i18n/en.native.js +294 -4
  562. package/dist/jsx/i18n/en.native.js.map +1 -1
  563. package/dist/jsx/index.js +3 -2
  564. package/dist/jsx/index.js.map +1 -1
  565. package/dist/jsx/index.mjs +3 -2
  566. package/dist/jsx/index.mjs.map +1 -1
  567. package/dist/jsx/index.native.js +40 -0
  568. package/dist/jsx/index.native.js.map +1 -1
  569. package/dist/jsx/list/DoctypeListScreen.mjs +150 -46
  570. package/dist/jsx/list/DoctypeListScreen.mjs.map +1 -1
  571. package/dist/jsx/list/DoctypeListScreen.native.js +164 -56
  572. package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
  573. package/dist/jsx/list/ListFilterBar.mjs +9 -5
  574. package/dist/jsx/list/ListFilterBar.mjs.map +1 -1
  575. package/dist/jsx/list/ListFilterBar.native.js +8 -4
  576. package/dist/jsx/list/ListFilterBar.native.js.map +1 -1
  577. package/dist/jsx/list/ListSidebar.mjs +4 -3
  578. package/dist/jsx/list/ListSidebar.mjs.map +1 -1
  579. package/dist/jsx/list/ListSidebar.native.js +4 -3
  580. package/dist/jsx/list/ListSidebar.native.js.map +1 -1
  581. package/dist/jsx/list/filter-chips.mjs +10 -4
  582. package/dist/jsx/list/filter-chips.mjs.map +1 -1
  583. package/dist/jsx/list/filter-chips.native.js +10 -4
  584. package/dist/jsx/list/filter-chips.native.js.map +1 -1
  585. package/dist/jsx/list/filter-editor.mjs +1 -10
  586. package/dist/jsx/list/filter-editor.mjs.map +1 -1
  587. package/dist/jsx/list/filter-editor.native.js +1 -10
  588. package/dist/jsx/list/filter-editor.native.js.map +1 -1
  589. package/dist/jsx/list/filter-saved.mjs +0 -1
  590. package/dist/jsx/list/filter-saved.mjs.map +1 -1
  591. package/dist/jsx/list/filter-saved.native.js +0 -1
  592. package/dist/jsx/list/filter-saved.native.js.map +1 -1
  593. package/dist/jsx/list/filter-sort.mjs +0 -1
  594. package/dist/jsx/list/filter-sort.mjs.map +1 -1
  595. package/dist/jsx/list/filter-sort.native.js +0 -1
  596. package/dist/jsx/list/filter-sort.native.js.map +1 -1
  597. package/dist/jsx/list/filter-standard.mjs +1 -3
  598. package/dist/jsx/list/filter-standard.mjs.map +1 -1
  599. package/dist/jsx/list/filter-standard.native.js +1 -3
  600. package/dist/jsx/list/filter-standard.native.js.map +1 -1
  601. package/dist/jsx/list/list-tools-sheet.mjs +10 -3
  602. package/dist/jsx/list/list-tools-sheet.mjs.map +1 -1
  603. package/dist/jsx/list/list-tools-sheet.native.js +12 -3
  604. package/dist/jsx/list/list-tools-sheet.native.js.map +1 -1
  605. package/dist/jsx/navigation/paths.mjs +5 -1
  606. package/dist/jsx/navigation/paths.mjs.map +1 -1
  607. package/dist/jsx/navigation/paths.native.js +7 -0
  608. package/dist/jsx/navigation/paths.native.js.map +1 -1
  609. package/dist/jsx/report/QueryReportScreen.mjs +1 -1
  610. package/dist/jsx/report/QueryReportScreen.mjs.map +1 -1
  611. package/dist/jsx/report/QueryReportScreen.native.js +1 -1
  612. package/dist/jsx/report/QueryReportScreen.native.js.map +1 -1
  613. package/dist/jsx/report/queryReportFilterBar.mjs +3 -8
  614. package/dist/jsx/report/queryReportFilterBar.mjs.map +1 -1
  615. package/dist/jsx/report/queryReportFilterBar.native.js +3 -8
  616. package/dist/jsx/report/queryReportFilterBar.native.js.map +1 -1
  617. package/dist/jsx/shared/sessionUser.mjs +78 -0
  618. package/dist/jsx/shared/sessionUser.mjs.map +1 -0
  619. package/dist/jsx/shared/sessionUser.native.js +137 -0
  620. package/dist/jsx/shared/sessionUser.native.js.map +1 -0
  621. package/dist/jsx/shared/useSessionUserId.mjs +2 -26
  622. package/dist/jsx/shared/useSessionUserId.mjs.map +1 -1
  623. package/dist/jsx/shared/useSessionUserId.native.js +2 -28
  624. package/dist/jsx/shared/useSessionUserId.native.js.map +1 -1
  625. package/dist/jsx/shell/BackofficeShell.mjs +132 -89
  626. package/dist/jsx/shell/BackofficeShell.mjs.map +1 -1
  627. package/dist/jsx/shell/BackofficeShell.native.js +146 -99
  628. package/dist/jsx/shell/BackofficeShell.native.js.map +1 -1
  629. package/dist/jsx/shell/HomeRedirect.mjs +20 -24
  630. package/dist/jsx/shell/HomeRedirect.mjs.map +1 -1
  631. package/dist/jsx/shell/HomeRedirect.native.js +17 -20
  632. package/dist/jsx/shell/HomeRedirect.native.js.map +1 -1
  633. package/dist/jsx/shell/WorkspaceSidebar.mjs +55 -27
  634. package/dist/jsx/shell/WorkspaceSidebar.mjs.map +1 -1
  635. package/dist/jsx/shell/WorkspaceSidebar.native.js +55 -25
  636. package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -1
  637. package/dist/jsx/shell/shellSidebarSlot.mjs +3 -0
  638. package/dist/jsx/shell/shellSidebarSlot.mjs.map +1 -0
  639. package/dist/jsx/shell/shellSidebarSlot.native.js +34 -0
  640. package/dist/jsx/shell/shellSidebarSlot.native.js.map +1 -0
  641. package/dist/jsx/shell/useWorkspaces.mjs +28 -40
  642. package/dist/jsx/shell/useWorkspaces.mjs.map +1 -1
  643. package/dist/jsx/shell/useWorkspaces.native.js +27 -41
  644. package/dist/jsx/shell/useWorkspaces.native.js.map +1 -1
  645. package/dist/jsx/views/DashboardView.mjs +2 -2
  646. package/dist/jsx/views/DashboardView.mjs.map +1 -1
  647. package/dist/jsx/views/DashboardView.native.js +2 -2
  648. package/dist/jsx/views/DashboardView.native.js.map +1 -1
  649. package/dist/jsx/views/ImageView.mjs +15 -6
  650. package/dist/jsx/views/ImageView.mjs.map +1 -1
  651. package/dist/jsx/views/ImageView.native.js +14 -5
  652. package/dist/jsx/views/ImageView.native.js.map +1 -1
  653. package/dist/jsx/views/ViewHeader.mjs +18 -7
  654. package/dist/jsx/views/ViewHeader.mjs.map +1 -1
  655. package/dist/jsx/views/ViewHeader.native.js +17 -6
  656. package/dist/jsx/views/ViewHeader.native.js.map +1 -1
  657. package/dist/jsx/views/ViewSwitcherMenu.mjs +11 -10
  658. package/dist/jsx/views/ViewSwitcherMenu.mjs.map +1 -1
  659. package/dist/jsx/views/ViewSwitcherMenu.native.js +10 -9
  660. package/dist/jsx/views/ViewSwitcherMenu.native.js.map +1 -1
  661. package/dist/jsx/views/viewAvailability.mjs +17 -9
  662. package/dist/jsx/views/viewAvailability.mjs.map +1 -1
  663. package/dist/jsx/views/viewAvailability.native.js +18 -8
  664. package/dist/jsx/views/viewAvailability.native.js.map +1 -1
  665. package/dist/jsx/views/viewMeta.mjs +23 -1
  666. package/dist/jsx/views/viewMeta.mjs.map +1 -1
  667. package/dist/jsx/views/viewMeta.native.js +30 -1
  668. package/dist/jsx/views/viewMeta.native.js.map +1 -1
  669. package/dist/jsx/workspace/WorkspaceChartBlock.mjs +1 -1
  670. package/dist/jsx/workspace/WorkspaceChartBlock.mjs.map +1 -1
  671. package/dist/jsx/workspace/WorkspaceChartBlock.native.js +1 -1
  672. package/dist/jsx/workspace/WorkspaceChartBlock.native.js.map +1 -1
  673. package/dist/jsx/workspace/WorkspaceLinkDirectory.mjs +2 -2
  674. package/dist/jsx/workspace/WorkspaceLinkDirectory.mjs.map +1 -1
  675. package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js +2 -2
  676. package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  677. package/dist/jsx/workspace/WorkspaceRecents.mjs +2 -2
  678. package/dist/jsx/workspace/WorkspaceRecents.mjs.map +1 -1
  679. package/dist/jsx/workspace/WorkspaceRecents.native.js +1 -1
  680. package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -1
  681. package/dist/jsx/workspace/WorkspaceShortcut.mjs +2 -2
  682. package/dist/jsx/workspace/WorkspaceShortcut.mjs.map +1 -1
  683. package/dist/jsx/workspace/WorkspaceShortcut.native.js +1 -1
  684. package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -1
  685. package/package.json +12 -12
  686. package/src/backofficeScreens.designLaw.spec.ts +27 -0
  687. package/src/chrome/BackofficeAwesomebar.tsx +18 -9
  688. package/src/chrome/CommandPalette.spec.tsx +31 -0
  689. package/src/chrome/CommandPalette.tsx +47 -31
  690. package/src/chrome/NotificationsButton.screen.spec.tsx +1 -0
  691. package/src/chrome/NotificationsButton.tsx +4 -2
  692. package/src/chrome/UserMenu.screen.spec.tsx +76 -6
  693. package/src/chrome/UserMenu.tsx +174 -110
  694. package/src/chrome/awesomebar-data.tsx +28 -19
  695. package/src/chrome/command-palette-model.spec.tsx +148 -0
  696. package/src/chrome/command-palette-model.ts +13 -5
  697. package/src/chrome/notifications-data.tsx +3 -50
  698. package/src/chrome/notifications-panel.tsx +3 -6
  699. package/src/chrome/user-session.tsx +26 -15
  700. package/src/config/BackofficeProvider.spec.tsx +6 -2
  701. package/src/config/BackofficeProvider.tsx +10 -0
  702. package/src/config/capabilities.spec.ts +13 -0
  703. package/src/config/capabilities.ts +4 -0
  704. package/src/desk/Desk.spec.tsx +48 -0
  705. package/src/desk/Desk.tsx +25 -1
  706. package/src/desk/DeskSurface.spec.tsx +2 -0
  707. package/src/desk/DeskSurface.tsx +8 -0
  708. package/src/desk/resolveDeskPath.spec.ts +20 -0
  709. package/src/desk/resolveDeskPath.ts +6 -1
  710. package/src/desk/target.ts +3 -0
  711. package/src/form/DocFormScreen.guest.screen.spec.tsx +7 -3
  712. package/src/form/DocFormScreen.rights.spec.tsx +113 -8
  713. package/src/form/DocFormScreen.tsx +65 -44
  714. package/src/form/FormConnections.tsx +2 -2
  715. package/src/form/FormErrorBoundary.spec.tsx +2 -3
  716. package/src/form/FormErrorBoundary.tsx +1 -1
  717. package/src/form/FormSidebarPanel.tsx +1 -1
  718. package/src/form/FormTimeline.tsx +0 -1
  719. package/src/form/FormToolbar.screen.spec.tsx +90 -29
  720. package/src/form/FormToolbar.tsx +98 -132
  721. package/src/formBuilder/DoctypePicker.tsx +72 -0
  722. package/src/formBuilder/FieldPalette.tsx +119 -0
  723. package/src/formBuilder/FieldPropertiesPanel.tsx +213 -0
  724. package/src/formBuilder/FormBuilderCanvas.tsx +468 -0
  725. package/src/formBuilder/FormBuilderScreen.screen.spec.tsx +392 -0
  726. package/src/formBuilder/FormBuilderScreen.stories.tsx +122 -0
  727. package/src/formBuilder/FormBuilderScreen.tsx +491 -0
  728. package/src/formBuilder/api.spec.ts +301 -0
  729. package/src/formBuilder/api.ts +198 -0
  730. package/src/formBuilder/fieldtypes.ts +140 -0
  731. package/src/formBuilder/index.ts +58 -0
  732. package/src/formBuilder/model.spec.ts +401 -0
  733. package/src/formBuilder/model.ts +522 -0
  734. package/src/formBuilder/useFormBuilderDrag.spec.tsx +170 -0
  735. package/src/formBuilder/useFormBuilderDrag.ts +498 -0
  736. package/src/i18n/en.ts +293 -3
  737. package/src/index.ts +58 -1
  738. package/src/list/DoctypeListScreen.guest.screen.spec.tsx +144 -4
  739. package/src/list/DoctypeListScreen.tsx +213 -88
  740. package/src/list/ListFilterBar.screen.spec.tsx +1 -1
  741. package/src/list/ListFilterBar.tsx +16 -6
  742. package/src/list/ListSidebar.tsx +11 -2
  743. package/src/list/filter-chips.tsx +19 -4
  744. package/src/list/filter-editor.tsx +1 -10
  745. package/src/list/filter-saved.tsx +0 -1
  746. package/src/list/filter-sort.tsx +0 -1
  747. package/src/list/filter-standard.tsx +1 -3
  748. package/src/list/list-tools-sheet.tsx +32 -13
  749. package/src/navigation/paths.spec.ts +19 -0
  750. package/src/navigation/paths.ts +8 -0
  751. package/src/report/DoctypeReportView.screen.spec.tsx +12 -0
  752. package/src/report/QueryReportScreen.tsx +1 -1
  753. package/src/report/queryReportFilterBar.tsx +0 -5
  754. package/src/shared/sessionUser.spec.tsx +119 -0
  755. package/src/shared/sessionUser.ts +80 -0
  756. package/src/shared/useSessionUserId.ts +2 -40
  757. package/src/shell/BackofficeShell.spec.tsx +115 -3
  758. package/src/shell/BackofficeShell.tsx +186 -116
  759. package/src/shell/HomeRedirect.spec.tsx +89 -0
  760. package/src/shell/HomeRedirect.tsx +31 -20
  761. package/src/shell/WorkspaceSidebar.spec.tsx +15 -0
  762. package/src/shell/WorkspaceSidebar.tsx +58 -29
  763. package/src/shell/shellSidebarSlot.spec.tsx +178 -0
  764. package/src/shell/shellSidebarSlot.tsx +7 -0
  765. package/src/shell/useWorkspaces.spec.tsx +45 -0
  766. package/src/shell/useWorkspaces.ts +27 -62
  767. package/src/views/DashboardView.tsx +2 -2
  768. package/src/views/ImageView.tsx +19 -3
  769. package/src/views/ViewHeader.tsx +13 -14
  770. package/src/views/ViewSwitcherMenu.spec.tsx +3 -0
  771. package/src/views/ViewSwitcherMenu.tsx +11 -10
  772. package/src/views/viewAvailability.spec.ts +45 -12
  773. package/src/views/viewAvailability.ts +27 -24
  774. package/src/views/viewMeta.ts +30 -0
  775. package/src/workspace/WorkspaceChartBlock.tsx +1 -1
  776. package/src/workspace/WorkspaceLinkDirectory.tsx +2 -2
  777. package/src/workspace/WorkspaceRecents.tsx +9 -2
  778. package/src/workspace/WorkspaceShortcut.tsx +12 -2
  779. package/types/chrome/BackofficeAwesomebar.d.ts.map +1 -1
  780. package/types/chrome/CommandPalette.d.ts +7 -1
  781. package/types/chrome/CommandPalette.d.ts.map +1 -1
  782. package/types/chrome/NotificationsButton.d.ts.map +1 -1
  783. package/types/chrome/UserMenu.d.ts.map +1 -1
  784. package/types/chrome/awesomebar-data.d.ts +4 -3
  785. package/types/chrome/awesomebar-data.d.ts.map +1 -1
  786. package/types/chrome/command-palette-model.d.ts +1 -0
  787. package/types/chrome/command-palette-model.d.ts.map +1 -1
  788. package/types/chrome/notifications-data.d.ts.map +1 -1
  789. package/types/chrome/notifications-panel.d.ts.map +1 -1
  790. package/types/chrome/user-session.d.ts.map +1 -1
  791. package/types/config/BackofficeProvider.d.ts +7 -1
  792. package/types/config/BackofficeProvider.d.ts.map +1 -1
  793. package/types/config/capabilities.d.ts +3 -0
  794. package/types/config/capabilities.d.ts.map +1 -1
  795. package/types/desk/Desk.d.ts +2 -1
  796. package/types/desk/Desk.d.ts.map +1 -1
  797. package/types/desk/DeskSurface.d.ts.map +1 -1
  798. package/types/desk/resolveDeskPath.d.ts +4 -1
  799. package/types/desk/resolveDeskPath.d.ts.map +1 -1
  800. package/types/desk/target.d.ts +3 -0
  801. package/types/desk/target.d.ts.map +1 -1
  802. package/types/form/DocFormScreen.d.ts +1 -1
  803. package/types/form/DocFormScreen.d.ts.map +1 -1
  804. package/types/form/FormTimeline.d.ts.map +1 -1
  805. package/types/form/FormToolbar.d.ts +5 -32
  806. package/types/form/FormToolbar.d.ts.map +1 -1
  807. package/types/formBuilder/DoctypePicker.d.ts +2 -0
  808. package/types/formBuilder/DoctypePicker.d.ts.map +1 -0
  809. package/types/formBuilder/FieldPalette.d.ts +6 -0
  810. package/types/formBuilder/FieldPalette.d.ts.map +1 -0
  811. package/types/formBuilder/FieldPropertiesPanel.d.ts +10 -0
  812. package/types/formBuilder/FieldPropertiesPanel.d.ts.map +1 -0
  813. package/types/formBuilder/FormBuilderCanvas.d.ts +17 -0
  814. package/types/formBuilder/FormBuilderCanvas.d.ts.map +1 -0
  815. package/types/formBuilder/FormBuilderScreen.d.ts +7 -0
  816. package/types/formBuilder/FormBuilderScreen.d.ts.map +1 -0
  817. package/types/formBuilder/api.d.ts +32 -0
  818. package/types/formBuilder/api.d.ts.map +1 -0
  819. package/types/formBuilder/fieldtypes.d.ts +21 -0
  820. package/types/formBuilder/fieldtypes.d.ts.map +1 -0
  821. package/types/formBuilder/index.d.ts +5 -0
  822. package/types/formBuilder/index.d.ts.map +1 -0
  823. package/types/formBuilder/model.d.ts +76 -0
  824. package/types/formBuilder/model.d.ts.map +1 -0
  825. package/types/formBuilder/useFormBuilderDrag.d.ts +44 -0
  826. package/types/formBuilder/useFormBuilderDrag.d.ts.map +1 -0
  827. package/types/i18n/en.d.ts +293 -3
  828. package/types/i18n/en.d.ts.map +1 -1
  829. package/types/index.d.ts +4 -3
  830. package/types/index.d.ts.map +1 -1
  831. package/types/list/DoctypeListScreen.d.ts.map +1 -1
  832. package/types/list/ListFilterBar.d.ts +10 -4
  833. package/types/list/ListFilterBar.d.ts.map +1 -1
  834. package/types/list/ListSidebar.d.ts +7 -1
  835. package/types/list/ListSidebar.d.ts.map +1 -1
  836. package/types/list/filter-chips.d.ts +9 -1
  837. package/types/list/filter-chips.d.ts.map +1 -1
  838. package/types/list/filter-saved.d.ts.map +1 -1
  839. package/types/list/filter-sort.d.ts.map +1 -1
  840. package/types/list/list-tools-sheet.d.ts +9 -1
  841. package/types/list/list-tools-sheet.d.ts.map +1 -1
  842. package/types/navigation/paths.d.ts +3 -0
  843. package/types/navigation/paths.d.ts.map +1 -1
  844. package/types/report/queryReportFilterBar.d.ts.map +1 -1
  845. package/types/shared/sessionUser.d.ts +10 -0
  846. package/types/shared/sessionUser.d.ts.map +1 -0
  847. package/types/shared/useSessionUserId.d.ts +0 -4
  848. package/types/shared/useSessionUserId.d.ts.map +1 -1
  849. package/types/shell/BackofficeShell.d.ts +6 -1
  850. package/types/shell/BackofficeShell.d.ts.map +1 -1
  851. package/types/shell/HomeRedirect.d.ts +3 -1
  852. package/types/shell/HomeRedirect.d.ts.map +1 -1
  853. package/types/shell/WorkspaceSidebar.d.ts.map +1 -1
  854. package/types/shell/shellSidebarSlot.d.ts +2 -0
  855. package/types/shell/shellSidebarSlot.d.ts.map +1 -0
  856. package/types/shell/useWorkspaces.d.ts +4 -5
  857. package/types/shell/useWorkspaces.d.ts.map +1 -1
  858. package/types/views/ImageView.d.ts.map +1 -1
  859. package/types/views/ViewHeader.d.ts +1 -10
  860. package/types/views/ViewHeader.d.ts.map +1 -1
  861. package/types/views/ViewSwitcherMenu.d.ts.map +1 -1
  862. package/types/views/viewAvailability.d.ts +12 -15
  863. package/types/views/viewAvailability.d.ts.map +1 -1
  864. package/types/views/viewMeta.d.ts +10 -0
  865. package/types/views/viewMeta.d.ts.map +1 -1
  866. package/types/workspace/WorkspaceRecents.d.ts.map +1 -1
  867. package/types/workspace/WorkspaceShortcut.d.ts.map +1 -1
@@ -9,6 +9,7 @@
9
9
  import React from "react";
10
10
  import {
11
11
  AsyncBoundary,
12
+ Chip,
12
13
  EmptyState,
13
14
  H1,
14
15
  PageHeader,
@@ -17,14 +18,13 @@ import {
17
18
  Spinner,
18
19
  XStack,
19
20
  YStack,
20
- isWeb,
21
21
  notify,
22
22
  } from "@multiplatform.one/components";
23
23
  import { useLayoutSizeClass, useResolvedKnobs } from "@multiplatform.one/theme";
24
24
  // Catalog action Button — `accent` renders the active accent intent, the
25
25
  // house expression of the one page primary (LC-05 ONE-EMPHASIS; quick entry
26
26
  // "Create" precedent). The components Button above stays for neutral chrome.
27
- import { Button as ActionButton } from "@multiplatform.one/forms";
27
+ import { Button as ActionButton, SearchInput } from "@multiplatform.one/forms";
28
28
  import {
29
29
  ArrowSquareOutIcon,
30
30
  ArrowsClockwiseIcon,
@@ -35,13 +35,11 @@ import {
35
35
  FrappeTable,
36
36
  buildListColumns,
37
37
  docFieldsToFilterFields,
38
- isPermissionError,
39
38
  listFieldsToFetch,
40
39
  refusalReason,
41
40
  sessionDocRights,
42
41
  useFrappeAggregate,
43
42
  useFrappeConfig,
44
- useRecordShape,
45
43
  type ListDoc,
46
44
  type ListRow,
47
45
  } from "@multiplatform.one/frappe-ui";
@@ -74,8 +72,9 @@ import { useRecentVisit } from "../shared/useRecentVisit";
74
72
  // via the UI-free fieldPermissions module; drives list column pruning.
75
73
  import { buildPermLevelMatrix } from "../form/fieldPermissions";
76
74
  import type { FrappeFilters } from "../shared/types";
77
- import { type DoctypeMeta, useDoctypeMeta } from "../shared/useDoctypeMeta";
75
+ import { type DoctypeMeta } from "../shared/useDoctypeMeta";
78
76
  import { deriveAvailableViews } from "../views/viewAvailability";
77
+ import { useViewSource } from "../views/viewMeta";
79
78
  import { ViewSwitcherMenu } from "../views/ViewSwitcherMenu";
80
79
  import { useFrappeApp } from "../shared/useFrappeApp";
81
80
  import { useUserRoles } from "../shared/useUserRoles";
@@ -93,7 +92,10 @@ import {
93
92
  } from "./filterConversion";
94
93
  import { toggleFacetFilter } from "./sidebar-stats";
95
94
  import { ListFilterBar } from "./ListFilterBar";
95
+ import { ListToolsButton } from "./list-tools-sheet";
96
+ import { SortControl } from "./filter-sort";
96
97
  import { ListSidebar } from "./ListSidebar";
98
+ import { useShellSidebarPanel } from "../shell/shellSidebarSlot";
97
99
  import {
98
100
  parseFiltersParam,
99
101
  parseSortParam,
@@ -218,28 +220,14 @@ export function DoctypeListScreen({
218
220
  useRecentVisit(fixtureMode ? undefined : { label: doctype, path: paths.list(doctype) });
219
221
 
220
222
  const {
221
- meta: loadedMeta,
223
+ meta,
222
224
  loading: metaLoading,
223
225
  error: metaError,
224
226
  reload: reloadMeta,
225
- } = useDoctypeMeta(metaOverride ? undefined : doctype);
226
- const meta = metaOverride ?? loadedMeta;
227
- // Guest is refused getdoctype while it may still read the rows (LC-96):
228
- // the list then lays them out from one record's own fields, read-only, and
229
- // offers nothing that needs the meta.
230
- const metaRefused = !meta && metaError !== undefined && isPermissionError(metaError);
231
- const recordShape = useRecordShape(config, doctype, metaRefused);
232
- const layoutMeta = useMemo<DoctypeMeta | undefined>(
233
- () =>
234
- meta ??
235
- (recordShape.fields
236
- ? {
237
- name: doctype,
238
- fields: recordShape.fields.map((field) => ({ ...field, in_list_view: 1 as const })),
239
- }
240
- : undefined),
241
- [meta, recordShape.fields, doctype],
242
- );
227
+ metaRefused,
228
+ recordShape,
229
+ layoutMeta,
230
+ } = useViewSource(doctype, metaOverride);
243
231
 
244
232
  // Operational errors reach the host bus (never replaces the inline state).
245
233
  useEffect(() => {
@@ -287,6 +275,11 @@ export function DoctypeListScreen({
287
275
  const [quickEntryOpen, setQuickEntryOpen] = useState(false);
288
276
  const [pendingDialog, setPendingDialog] = useState<PendingDialog>(null);
289
277
  const [likeOverrides, setLikeOverrides] = useState<Record<string, boolean>>({});
278
+ // Compact search box: one `like` tuple on the title field (desk's ID
279
+ // search), riding the hidden always-ANDed channel so it never becomes a
280
+ // chip or a `?f=` entry.
281
+ const [searchText, setSearchText] = useState("");
282
+ const [loadedCount, setLoadedCount] = useState(0);
290
283
  // Last page size the user picked — survives the filter/sort remounts.
291
284
  const pageSizeRef = useRef(pageSize ?? PAGE_SIZES[0]);
292
285
 
@@ -295,7 +288,13 @@ export function DoctypeListScreen({
295
288
  // value-keyed so unstable array literals from the host don't churn.
296
289
  // The ambient desk scope (GL-5, the tenant seam) joins the same channel.
297
290
  const deskScope = useDeskScope();
298
- const fixedFiltersKey = JSON.stringify([...deskScope, ...(fixedFilters ?? [])]);
291
+ const searchTerm = searchText.trim();
292
+ const searchField = meta?.title_field || "name";
293
+ const fixedFiltersKey = JSON.stringify([
294
+ ...deskScope,
295
+ ...(fixedFilters ?? []),
296
+ ...(searchTerm ? [[searchField, "like", `%${searchTerm}%`]] : []),
297
+ ]);
299
298
  const fixedTuples = useMemo(
300
299
  () => JSON.parse(fixedFiltersKey) as FrappeFilters,
301
300
  [fixedFiltersKey],
@@ -365,6 +364,7 @@ export function DoctypeListScreen({
365
364
  if (doctypeChanged) {
366
365
  setSort(parseSortParam(sortParam) ?? null);
367
366
  setLikeOverrides({});
367
+ setSearchText("");
368
368
  return;
369
369
  }
370
370
  if (sortParamChanged) {
@@ -375,6 +375,15 @@ export function DoctypeListScreen({
375
375
  }
376
376
  }, [doctype, filtersParam, sortParam, withFixed]);
377
377
 
378
+ // A new search term re-seeds the count/facet mirror right away instead of
379
+ // waiting for the table's next state echo.
380
+ const lastSearchTerm = useRef(searchTerm);
381
+ useEffect(() => {
382
+ if (lastSearchTerm.current === searchTerm) return;
383
+ lastSearchTerm.current = searchTerm;
384
+ setEffectiveFilters(withFixed(baseFiltersRef.current));
385
+ }, [searchTerm, withFixed]);
386
+
378
387
  const sortField = sort?.field ?? meta?.sort_field ?? "modified";
379
388
  const sortOrder = sort?.order ?? (meta?.sort_order?.toUpperCase() === "ASC" ? "asc" : "desc");
380
389
  // Effective sort as the table sees it (state ?? meta default) — the
@@ -500,6 +509,8 @@ export function DoctypeListScreen({
500
509
  .map((row) => (row as { name?: unknown }).name)
501
510
  .filter((value): value is string => typeof value === "string" && value.length > 0),
502
511
  );
512
+ const shown = state.data?.length ?? 0;
513
+ if (shown > 0) setLoadedCount((previous) => (previous === shown ? previous : shown));
503
514
  const nextFilters = tableStateToFrappeFilters(state);
504
515
  setEffectiveFilters((previous) =>
505
516
  previous && sameFilters(previous, nextFilters) ? previous : nextFilters,
@@ -816,18 +827,28 @@ export function DoctypeListScreen({
816
827
  // Selection + the bulk bar ride the bulkActions capability as one unit.
817
828
  const bulkActionsEnabled = capabilities.bulkActions.enabled && !metaRefused;
818
829
 
819
- // View switcher options: meta-derived availability (viewAvailability.ts
820
- // documents each view's desk precondition) ∩ capability allowlist ∩ the
821
- // `views` prop. "list" is the current view, so it always survives.
822
830
  const availableViews = useMemo(() => {
823
831
  if (!capabilities.views.enabled) return [];
824
- const permitted = viewsAllowlist
832
+ const allow = viewsAllowlist
825
833
  ? capabilities.views.allow.filter((view) => viewsAllowlist.includes(view))
826
834
  : capabilities.views.allow;
827
- // Without meta only the report lays itself out from the rows (LC-96).
828
- const allow = metaRefused ? permitted.filter((view) => view === "report") : permitted;
829
- return deriveAvailableViews(meta, { current: "list", allow });
830
- }, [meta, metaRefused, capabilities.views.enabled, capabilities.views.allow, viewsAllowlist]);
835
+ return deriveAvailableViews(
836
+ meta
837
+ ? { kind: "meta", meta, rights }
838
+ : metaRefused && recordShape.fields
839
+ ? { kind: "record", fields: recordShape.fields }
840
+ : undefined,
841
+ { allow },
842
+ );
843
+ }, [
844
+ meta,
845
+ rights,
846
+ metaRefused,
847
+ recordShape.fields,
848
+ capabilities.views.enabled,
849
+ capabilities.views.allow,
850
+ viewsAllowlist,
851
+ ]);
831
852
 
832
853
  // Remount ONLY on a doctype swap (different columns/meta). Filter, sort,
833
854
  // and refresh changes reconcile IN PLACE through the table's
@@ -850,6 +871,27 @@ export function DoctypeListScreen({
850
871
  [initialTableFilters, controlledSorting],
851
872
  );
852
873
 
874
+ // ONE-SIDEBAR (LC-101): the facet / group-by panel is never a second
875
+ // column. Under a BackofficeShell it stacks below the workspace nav in the
876
+ // shell's one sidebar column (collapsible group); on phones it rides the
877
+ // tools sheet instead. Without a shell it stands as the page's only
878
+ // sidebar column.
879
+ const facetPanelWanted = sidebarVisible && !metaRefused;
880
+ const facetPanel = (fill: boolean) => (
881
+ <ListSidebar
882
+ fill={fill}
883
+ doctype={doctype}
884
+ meta={meta}
885
+ filters={currentFilters}
886
+ onFiltersChange={handleBaseFiltersChange}
887
+ />
888
+ );
889
+ const shellTookPanel = useShellSidebarPanel(
890
+ facetPanelWanted && !compactChrome
891
+ ? { title: t("list.tools.groupBy", "Group by"), content: facetPanel(true) }
892
+ : null,
893
+ );
894
+
853
895
  if (metaError && !meta && !metaRefused) {
854
896
  return (
855
897
  <YStack flex={1}>
@@ -911,14 +953,15 @@ export function DoctypeListScreen({
911
953
  // orphan next to a seven-segment switcher.
912
954
  const listToolbar = (
913
955
  <XStack gap="$1.5" alignItems="center" flexWrap="wrap">
914
- {!compactChrome && !metaRefused && (
956
+ {/* The page's own column toggle: only when no shell took the panel
957
+ (the shell's stacked group collapses itself), never on phones
958
+ (the tools sheet carries the facets there). */}
959
+ {!compactChrome && !metaRefused && !shellTookPanel && (
915
960
  <ActionButton
916
961
  size="$3"
917
962
  circular
918
963
  chromeless
919
964
  icon={SidebarSimpleIcon}
920
- display="none"
921
- $sm={{ display: "flex" }}
922
965
  onPress={() => setSidebarVisible((visible) => !visible)}
923
966
  aria-expanded={sidebarVisible}
924
967
  aria-label={
@@ -930,7 +973,7 @@ export function DoctypeListScreen({
930
973
  )}
931
974
  {!metaRefused && (
932
975
  <ListFilterBar
933
- compact={compactChrome}
976
+ collapsed={compactChrome}
934
977
  showChips={false}
935
978
  doctype={doctype}
936
979
  meta={meta}
@@ -940,6 +983,7 @@ export function DoctypeListScreen({
940
983
  sortOrder={sortOrder}
941
984
  onSortChange={handleSortChange}
942
985
  likedByUser={sessionUser}
986
+ facets={facetPanelWanted ? facetPanel(true) : undefined}
943
987
  />
944
988
  )}
945
989
  <ViewSwitcherMenu views={availableViews} current="list" onViewChange={handleViewChange} />
@@ -980,53 +1024,137 @@ export function DoctypeListScreen({
980
1024
  </XStack>
981
1025
  );
982
1026
 
1027
+ // Phone chrome: the banner already names the doctype, so the list opens on
1028
+ // search + New, the filter pills, then the range readout beside sort.
1029
+ const rangeText =
1030
+ countText && count.value && loadedCount > 0
1031
+ ? t("list.resultRange", {
1032
+ shown: Math.min(loadedCount, count.value),
1033
+ count: count.value,
1034
+ defaultValue: "1–{{shown}} of {{count}}",
1035
+ })
1036
+ : countText;
1037
+ const compactHeader = (
1038
+ <YStack gap="$3">
1039
+ <XStack gap="$2" alignItems="center">
1040
+ <YStack flex={1} minWidth={0}>
1041
+ <SearchInput
1042
+ key={doctype}
1043
+ defaultValue=""
1044
+ onSearch={setSearchText}
1045
+ clearable
1046
+ placeholder={t("list.searchPlaceholder", {
1047
+ defaultValue: "Search {{doctype}}",
1048
+ doctype,
1049
+ })}
1050
+ aria-label={t("list.searchPlaceholder", {
1051
+ defaultValue: "Search {{doctype}}",
1052
+ doctype,
1053
+ })}
1054
+ />
1055
+ </YStack>
1056
+ {showNew && (
1057
+ <ActionButton
1058
+ accent
1059
+ icon={PlusIcon}
1060
+ onPress={() => setQuickEntryOpen(true)}
1061
+ aria-label={t("list.new", {
1062
+ defaultValue: "New {{doctype}}",
1063
+ doctype,
1064
+ })}
1065
+ testID="backoffice-list-new"
1066
+ />
1067
+ )}
1068
+ </XStack>
1069
+ {!metaRefused && (
1070
+ <FilterChips
1071
+ outlined
1072
+ meta={meta}
1073
+ filters={baseFilters}
1074
+ onFiltersChange={handleBaseFiltersChange}
1075
+ trailing={
1076
+ <ListToolsButton
1077
+ doctype={doctype}
1078
+ meta={meta}
1079
+ filters={baseFilters}
1080
+ onFiltersChange={handleBaseFiltersChange}
1081
+ sortField={sortField}
1082
+ sortOrder={sortOrder}
1083
+ onSortChange={handleSortChange}
1084
+ renderTrigger={(open) => (
1085
+ <Chip size="$4" variant="outlined" color="gray" icon={<PlusIcon />} onPress={open}>
1086
+ {t("list.filters.filter", "Filter")}
1087
+ </Chip>
1088
+ )}
1089
+ />
1090
+ }
1091
+ />
1092
+ )}
1093
+ <XStack alignItems="center" gap="$2">
1094
+ <Paragraph size="$3" color="$color10" margin={0} flexShrink={1} numberOfLines={1}>
1095
+ {rangeText ?? ""}
1096
+ </Paragraph>
1097
+ <XStack alignItems="center" gap="$1" flexShrink={0}>
1098
+ <ViewSwitcherMenu views={availableViews} current="list" onViewChange={handleViewChange} />
1099
+ {!metaRefused && (
1100
+ <SortControl
1101
+ meta={meta}
1102
+ sortField={sortField}
1103
+ sortOrder={sortOrder}
1104
+ onSortChange={handleSortChange}
1105
+ />
1106
+ )}
1107
+ </XStack>
1108
+ </XStack>
1109
+ </YStack>
1110
+ );
1111
+
983
1112
  return (
984
- <YStack flex={1} {...knobProps.gap} {...knobProps.panelPadding}>
985
- <PageHeader
986
- gap="$2"
987
- heading={
988
- <XStack gap="$2" alignItems="baseline" flexWrap="wrap">
989
- <H1
990
- {...knobProps.pageTitle}
991
- {...knobProps.heading}
992
- margin={0}
993
- flexShrink={1}
994
- minWidth={0}
995
- >
996
- {doctype}
997
- </H1>
998
- {countText ? (
999
- <Paragraph size="$2" color="$color10" margin={0}>
1000
- {countText}
1001
- </Paragraph>
1002
- ) : null}
1003
- </XStack>
1004
- }
1005
- actions={listToolbar}
1006
- >
1007
- {/* Shared chips readout (MOD-04 honest state): the table's own
1113
+ <YStack flex={1} minHeight={0} {...knobProps.gap} {...knobProps.panelPadding}>
1114
+ {compactChrome ? (
1115
+ compactHeader
1116
+ ) : (
1117
+ <PageHeader
1118
+ gap="$2"
1119
+ heading={
1120
+ <XStack gap="$2" alignItems="baseline" flexWrap="wrap">
1121
+ <H1
1122
+ {...knobProps.pageTitle}
1123
+ {...knobProps.heading}
1124
+ margin={0}
1125
+ flexShrink={1}
1126
+ minWidth={0}
1127
+ >
1128
+ {doctype}
1129
+ </H1>
1130
+ {countText ? (
1131
+ <Paragraph size="$2" color="$color10" margin={0}>
1132
+ {countText}
1133
+ </Paragraph>
1134
+ ) : null}
1135
+ </XStack>
1136
+ }
1137
+ actions={listToolbar}
1138
+ >
1139
+ {/* Shared chips readout (MOD-04 honest state): the table's own
1008
1140
  chips row is suppressed, so the list chrome owns them. Renders
1009
1141
  nothing while no filters apply. */}
1010
- <FilterChips meta={meta} filters={baseFilters} onFiltersChange={handleBaseFiltersChange} />
1011
- </PageHeader>
1142
+ <FilterChips
1143
+ meta={meta}
1144
+ filters={baseFilters}
1145
+ onFiltersChange={handleBaseFiltersChange}
1146
+ />
1147
+ </PageHeader>
1148
+ )}
1012
1149
 
1013
1150
  {(() => {
1014
1151
  const listBody = (
1015
- <XStack flex={1} gap="$2" alignItems="stretch">
1016
- {/* Facet sidebar needs bench RPCs (fixture mode hides it) and is
1017
- hidden on narrow viewports (< $sm) like desk. MOD-04 keeps it:
1018
- facet clicks toggle tuples through the same baseFilters
1019
- channel (handleBaseFiltersChange) — counts are informative,
1020
- the chips row is the shared readout. */}
1021
- {sidebarVisible && !metaRefused && (
1022
- <YStack display="none" $sm={{ display: "flex" }}>
1023
- <ListSidebar
1024
- doctype={doctype}
1025
- meta={meta}
1026
- filters={currentFilters}
1027
- onFiltersChange={handleBaseFiltersChange}
1028
- />
1029
- </YStack>
1152
+ <XStack flexGrow={1} flexShrink={0} flexBasis="auto" gap="$2" alignItems="stretch">
1153
+ {/* LC-101: only when no shell took the panel (no shell above,
1154
+ or it is withdrawn) does it stand as the page's one sidebar
1155
+ column. Phones get it in the tools sheet instead. */}
1156
+ {facetPanelWanted && !shellTookPanel && !compactChrome && (
1157
+ <YStack>{facetPanel(false)}</YStack>
1030
1158
  )}
1031
1159
  <YStack flex={1} minWidth={0}>
1032
1160
  {showCreateFirst ? (
@@ -1077,7 +1205,7 @@ export function DoctypeListScreen({
1077
1205
  refreshToken={refreshGen}
1078
1206
  enablePagination={!fixtureMode}
1079
1207
  paginationMode="infinite"
1080
- compact
1208
+ fetchTotalCount={false}
1081
1209
  // ONE FILTER SYSTEM (MOD-04 / LC-16): the list chrome is
1082
1210
  // the single filtering authority; tuples reach the table
1083
1211
  // through controlledState (in-place adoption — no remount).
@@ -1094,20 +1222,17 @@ export function DoctypeListScreen({
1094
1222
  onRowClick={handleRowClick}
1095
1223
  onStateChange={handleStateChange}
1096
1224
  rights={rights}
1097
- layout="list"
1225
+ layout={compactChrome ? "list" : "table"}
1098
1226
  />
1099
1227
  )}
1100
1228
  </YStack>
1101
1229
  </XStack>
1102
1230
  );
1103
- // Native has no page-level scroll and the table body ships none —
1104
- // wrap in a vertical ScrollView (DocFormScreen precedent) so rows
1105
- // below the fold stay reachable. Compact web is in the same boat:
1106
- // the card list renders in flow inside the shell's overflow-hidden
1107
- // frame, so it needs the same scroll wrapper (the compact header
1108
- // stays pinned above it). Wide web keeps the flex layout as-is —
1109
- // the grid body scrolls internally.
1110
- return isWeb && !compactChrome ? listBody : <ScrollView flex={1}>{listBody}</ScrollView>;
1231
+ return (
1232
+ <ScrollView flex={1} minHeight={0} testID="backoffice-list-scroll">
1233
+ {listBody}
1234
+ </ScrollView>
1235
+ );
1111
1236
  })()}
1112
1237
 
1113
1238
  {showNew && (
@@ -169,7 +169,7 @@ describe("ListFilterBar", () => {
169
169
  });
170
170
 
171
171
  it("collapses behind one counted Filter button on compact viewports", async () => {
172
- renderBar({ compact: true, filters: [["status", "=", "Open"]] });
172
+ renderBar({ collapsed: true, filters: [["status", "=", "Open"]] });
173
173
  await act(async () => {});
174
174
  expect(screen.getByRole("button", { name: "Filter" }).textContent).toContain("Filter (1)");
175
175
  expect(screen.queryByText("Status = Open")).toBeNull();
@@ -21,7 +21,8 @@
21
21
  import { XStack, YStack } from "@multiplatform.one/components";
22
22
  import { Button } from "@multiplatform.one/forms";
23
23
  import { HeartIcon } from "@phosphor-icons/react";
24
- import { useResolvedKnobs } from "@multiplatform.one/theme";
24
+ import type { ReactNode } from "react";
25
+ import { useResolvedKnobs, useLayoutSizeClass } from "@multiplatform.one/theme";
25
26
  import { useTranslation } from "react-i18next";
26
27
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
27
28
  import type { FrappeFilter, FrappeFilters } from "../shared/types";
@@ -43,11 +44,11 @@ export interface ListFilterBarProps {
43
44
  sortOrder?: "asc" | "desc";
44
45
  onSortChange?: (field: string, order: "asc" | "desc") => void;
45
46
  /**
46
- * Compact viewports collapse the whole bar behind one badge-counted
47
+ * Narrow viewports collapse the whole bar behind one badge-counted
47
48
  * "Filter" button opening the list-tools sheet (LC-06) — no stacked
48
- * always-visible rows.
49
+ * always-visible rows. Omitted = the viewport's layout size class.
49
50
  */
50
- compact?: boolean;
51
+ collapsed?: boolean;
51
52
  /**
52
53
  * When false, skip the chips row — the host renders FilterChips itself
53
54
  * (DoctypeListScreen puts them under the dense toolbar so they are not
@@ -59,6 +60,11 @@ export interface ListFilterBarProps {
59
60
  * filter (`_liked_by like %user%`). Omitted when there is no session.
60
61
  */
61
62
  likedByUser?: string;
63
+ /**
64
+ * The group-by facet panel, shown inside the collapsed (phone) tools
65
+ * sheet. Wider viewports stack it under the shell nav instead (LC-101).
66
+ */
67
+ facets?: ReactNode;
62
68
  }
63
69
 
64
70
  export function ListFilterBar({
@@ -69,11 +75,14 @@ export function ListFilterBar({
69
75
  sortField,
70
76
  sortOrder,
71
77
  onSortChange,
72
- compact,
78
+ collapsed: collapsedProp,
73
79
  showChips = true,
74
80
  likedByUser,
81
+ facets,
75
82
  }: ListFilterBarProps) {
76
83
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
84
+ const narrow = useLayoutSizeClass() === "compact";
85
+ const collapsed = collapsedProp ?? narrow;
77
86
  const { knobProps } = useResolvedKnobs();
78
87
  const iconSize = Number(knobProps.controlIcon?.width) || 16;
79
88
  const likedTuple: FrappeFilter | undefined = likedByUser
@@ -92,7 +101,7 @@ export function ListFilterBar({
92
101
  onPress={() => onFiltersChange(toggleFacetFilter(filters, likedTuple))}
93
102
  />
94
103
  ) : null;
95
- if (compact) {
104
+ if (collapsed) {
96
105
  return (
97
106
  <XStack {...knobProps.gap} alignItems="center">
98
107
  <ListToolsButton
@@ -103,6 +112,7 @@ export function ListFilterBar({
103
112
  sortField={sortField}
104
113
  sortOrder={sortOrder}
105
114
  onSortChange={onSortChange}
115
+ facets={facets}
106
116
  />
107
117
  {likedButton}
108
118
  </XStack>
@@ -47,6 +47,12 @@ export interface ListSidebarProps {
47
47
  * additionally gate their sections regardless of this prop.
48
48
  */
49
49
  hiddenSections?: readonly ListSidebarSection[];
50
+ /**
51
+ * Fill the host column instead of standing as a fixed-width column of its
52
+ * own: the shell rail (stacked under the nav, LC-101) and the phone tools
53
+ * sheet both pass it.
54
+ */
55
+ fill?: boolean;
50
56
  }
51
57
 
52
58
  /** The Select field powering the status facet (plain status or workflow state). */
@@ -77,6 +83,7 @@ export function ListSidebar({
77
83
  filters,
78
84
  onFiltersChange,
79
85
  hiddenSections,
86
+ fill,
80
87
  }: ListSidebarProps) {
81
88
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
82
89
  const sessionUser = useSessionUser();
@@ -157,8 +164,10 @@ export function ListSidebar({
157
164
 
158
165
  return (
159
166
  <YStack
160
- width={sizeRecipeEscape(200, "list sidebar: a fixed facet column beside the list")}
161
- paddingRight="$2"
167
+ width={
168
+ fill ? "100%" : sizeRecipeEscape(200, "list sidebar: a fixed facet column beside the list")
169
+ }
170
+ paddingRight={fill ? 0 : "$2"}
162
171
  paddingBottom="$4"
163
172
  aria-label={t("list.sidebarLabel", "List filters sidebar")}
164
173
  >
@@ -5,7 +5,7 @@
5
5
  * "Clear filters" drops them all.
6
6
  */
7
7
  import { Button, Chip, XStack } from "@multiplatform.one/components";
8
- import { useMemo } from "react";
8
+ import { useMemo, type ReactNode } from "react";
9
9
  import { useTranslation } from "react-i18next";
10
10
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
11
11
  import type { FrappeFilters } from "../shared/types";
@@ -16,18 +16,32 @@ export interface FilterChipsProps {
16
16
  meta?: DoctypeMeta;
17
17
  filters: FrappeFilters;
18
18
  onFiltersChange: (filters: FrappeFilters) => void;
19
+ /**
20
+ * Compact list chrome: neutral outlined pills, and the row stays mounted
21
+ * with no filters so `trailing` (the add-filter pill) always shows.
22
+ */
23
+ outlined?: boolean;
24
+ /** Rendered after the chips, inside the same wrapping row. */
25
+ trailing?: ReactNode;
19
26
  }
20
27
 
21
- export function FilterChips({ meta, filters, onFiltersChange }: FilterChipsProps) {
28
+ export function FilterChips({
29
+ meta,
30
+ filters,
31
+ onFiltersChange,
32
+ outlined,
33
+ trailing,
34
+ }: FilterChipsProps) {
22
35
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
23
36
  const fields = useMemo(() => filterableFieldsFromMeta(meta), [meta]);
24
- if (!filters.length) return null;
37
+ if (!filters.length && !trailing) return null;
25
38
  return (
26
39
  <XStack gap="$2" flexWrap="wrap" alignItems="center">
27
40
  {filters.map((tuple, index) => (
28
41
  <Chip
29
42
  key={`${tuple[0]}-${tuple[1]}-${index}`}
30
- color="blue"
43
+ {...(outlined ? { size: "$4" as const, variant: "outlined" as const } : {})}
44
+ color={outlined ? "gray" : "blue"}
31
45
  onDismiss={() => onFiltersChange(filters.filter((_, i) => i !== index))}
32
46
  >
33
47
  {filterTupleLabel(fields, tuple)}
@@ -38,6 +52,7 @@ export function FilterChips({ meta, filters, onFiltersChange }: FilterChipsProps
38
52
  {t("list.clearFilters", "Clear filters")}
39
53
  </Button>
40
54
  )}
55
+ {trailing}
41
56
  </XStack>
42
57
  );
43
58
  }