@multiplatform.one/backoffice 6.7.0 → 7.0.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 (967) hide show
  1. package/dist/cjs/chrome/BackofficeAwesomebar.cjs +1 -0
  2. package/dist/cjs/chrome/BackofficeAwesomebar.native.js +1 -0
  3. package/dist/cjs/chrome/BackofficeAwesomebar.native.js.map +1 -1
  4. package/dist/cjs/chrome/CommandPalette.cjs +95 -18
  5. package/dist/cjs/chrome/CommandPalette.native.js +114 -31
  6. package/dist/cjs/chrome/CommandPalette.native.js.map +1 -1
  7. package/dist/cjs/chrome/HelpMenu.cjs +40 -55
  8. package/dist/cjs/chrome/HelpMenu.native.js +50 -66
  9. package/dist/cjs/chrome/HelpMenu.native.js.map +1 -1
  10. package/dist/cjs/chrome/awesomebar-data.cjs +51 -8
  11. package/dist/cjs/chrome/awesomebar-data.native.js +58 -10
  12. package/dist/cjs/chrome/awesomebar-data.native.js.map +1 -1
  13. package/dist/cjs/chrome/command-palette-model.cjs +1 -2
  14. package/dist/cjs/chrome/command-palette-model.native.js +1 -2
  15. package/dist/cjs/chrome/command-palette-model.native.js.map +1 -1
  16. package/dist/cjs/chrome/notifications-data.cjs +2 -0
  17. package/dist/cjs/chrome/notifications-data.native.js +2 -0
  18. package/dist/cjs/chrome/notifications-data.native.js.map +1 -1
  19. package/dist/cjs/chrome/notifications-panel.cjs +14 -4
  20. package/dist/cjs/chrome/notifications-panel.native.js +16 -4
  21. package/dist/cjs/chrome/notifications-panel.native.js.map +1 -1
  22. package/dist/cjs/chrome/shortcuts.native.js.map +1 -1
  23. package/dist/cjs/config/BackofficeProvider.cjs +2 -0
  24. package/dist/cjs/config/BackofficeProvider.native.js +2 -0
  25. package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
  26. package/dist/cjs/form/DocFormScreen.cjs +123 -14
  27. package/dist/cjs/form/DocFormScreen.native.js +147 -14
  28. package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
  29. package/dist/cjs/form/FormConnections.cjs +37 -5
  30. package/dist/cjs/form/FormConnections.native.js +36 -5
  31. package/dist/cjs/form/FormConnections.native.js.map +1 -1
  32. package/dist/cjs/form/FormDialogs.cjs +104 -0
  33. package/dist/cjs/form/FormDialogs.native.js +110 -0
  34. package/dist/cjs/form/FormDialogs.native.js.map +1 -1
  35. package/dist/cjs/form/FormErrorBoundary.cjs +26 -5
  36. package/dist/cjs/form/FormErrorBoundary.native.js +25 -5
  37. package/dist/cjs/form/FormErrorBoundary.native.js.map +1 -1
  38. package/dist/cjs/form/FormSidebarPanel.cjs +71 -22
  39. package/dist/cjs/form/FormSidebarPanel.native.js +70 -22
  40. package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
  41. package/dist/cjs/form/FormTimeline.cjs +133 -22
  42. package/dist/cjs/form/FormTimeline.native.js +171 -24
  43. package/dist/cjs/form/FormTimeline.native.js.map +1 -1
  44. package/dist/cjs/form/FormToolbar.cjs +50 -4
  45. package/dist/cjs/form/FormToolbar.native.js +50 -4
  46. package/dist/cjs/form/FormToolbar.native.js.map +1 -1
  47. package/dist/cjs/form/formActions.native.js.map +1 -1
  48. package/dist/cjs/form/formLayout.cjs +3 -13
  49. package/dist/cjs/form/formLayout.native.js +7 -13
  50. package/dist/cjs/form/formLayout.native.js.map +1 -1
  51. package/dist/cjs/form/platformHooks.cjs +48 -0
  52. package/dist/cjs/form/platformHooks.native.js +52 -0
  53. package/dist/cjs/form/platformHooks.native.js.map +1 -1
  54. package/dist/cjs/form/timeline-entries.cjs +56 -13
  55. package/dist/cjs/form/timeline-entries.native.js +58 -16
  56. package/dist/cjs/form/timeline-entries.native.js.map +1 -1
  57. package/dist/cjs/i18n/en.cjs +31 -9
  58. package/dist/cjs/i18n/en.native.js +31 -9
  59. package/dist/cjs/i18n/en.native.js.map +1 -1
  60. package/dist/cjs/index.cjs +13 -1
  61. package/dist/cjs/index.native.js +13 -1
  62. package/dist/cjs/index.native.js.map +1 -1
  63. package/dist/cjs/list/AddTagsDialog.cjs +12 -7
  64. package/dist/cjs/list/AddTagsDialog.native.js +12 -7
  65. package/dist/cjs/list/AddTagsDialog.native.js.map +1 -1
  66. package/dist/cjs/list/AssignToDialog.cjs +7 -4
  67. package/dist/cjs/list/AssignToDialog.native.js +7 -4
  68. package/dist/cjs/list/AssignToDialog.native.js.map +1 -1
  69. package/dist/cjs/list/DoctypeListScreen.cjs +124 -153
  70. package/dist/cjs/list/DoctypeListScreen.native.js +152 -198
  71. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  72. package/dist/cjs/list/ListFilterBar.cjs +60 -41
  73. package/dist/cjs/list/ListFilterBar.native.js +62 -41
  74. package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
  75. package/dist/cjs/list/ListSidebar.cjs +15 -13
  76. package/dist/cjs/list/ListSidebar.native.js +17 -17
  77. package/dist/cjs/list/ListSidebar.native.js.map +1 -1
  78. package/dist/cjs/list/bulk-edit-dialog.cjs +12 -7
  79. package/dist/cjs/list/bulk-edit-dialog.native.js +12 -7
  80. package/dist/cjs/list/bulk-edit-dialog.native.js.map +1 -1
  81. package/dist/cjs/list/filter-fields.cjs +23 -1
  82. package/dist/cjs/list/filter-fields.native.js +28 -1
  83. package/dist/cjs/list/filter-fields.native.js.map +1 -1
  84. package/dist/cjs/list/filter-saved.cjs +4 -4
  85. package/dist/cjs/list/filter-saved.native.js +4 -7
  86. package/dist/cjs/list/filter-saved.native.js.map +1 -1
  87. package/dist/cjs/list/filter-sort.cjs +2 -1
  88. package/dist/cjs/list/filter-sort.native.js +2 -1
  89. package/dist/cjs/list/filter-sort.native.js.map +1 -1
  90. package/dist/cjs/list/filter-standard.cjs +1 -1
  91. package/dist/cjs/list/filter-standard.native.js +1 -1
  92. package/dist/cjs/list/listColumns.cjs +258 -109
  93. package/dist/cjs/list/listColumns.native.js +263 -118
  94. package/dist/cjs/list/listColumns.native.js.map +1 -1
  95. package/dist/cjs/list/listFields.cjs +6 -1
  96. package/dist/cjs/list/listFields.native.js +8 -1
  97. package/dist/cjs/list/listFields.native.js.map +1 -1
  98. package/dist/cjs/list/sidebar-section.cjs +57 -19
  99. package/dist/cjs/list/sidebar-section.native.js +60 -19
  100. package/dist/cjs/list/sidebar-section.native.js.map +1 -1
  101. package/dist/cjs/oneAdapter/index.cjs +5 -1
  102. package/dist/cjs/oneAdapter/index.native.js +8 -1
  103. package/dist/cjs/oneAdapter/index.native.js.map +1 -1
  104. package/dist/cjs/quickEntry/quickEntryPlan.cjs +2 -6
  105. package/dist/cjs/quickEntry/quickEntryPlan.native.js +4 -6
  106. package/dist/cjs/quickEntry/quickEntryPlan.native.js.map +1 -1
  107. package/dist/cjs/report/QueryReportScreen.cjs +103 -94
  108. package/dist/cjs/report/QueryReportScreen.native.js +125 -143
  109. package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
  110. package/dist/cjs/report/queryReportColumns.cjs +10 -1
  111. package/dist/cjs/report/queryReportColumns.native.js +16 -1
  112. package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
  113. package/dist/cjs/report/queryReportFilterBar.cjs +274 -0
  114. package/dist/cjs/report/queryReportFilterBar.native.js +339 -0
  115. package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -0
  116. package/dist/cjs/report/queryReportUrlState.cjs +55 -0
  117. package/dist/cjs/report/queryReportUrlState.native.js +108 -0
  118. package/dist/cjs/report/queryReportUrlState.native.js.map +1 -0
  119. package/dist/cjs/report/report-grid.cjs +155 -50
  120. package/dist/cjs/report/report-grid.native.js +174 -54
  121. package/dist/cjs/report/report-grid.native.js.map +1 -1
  122. package/dist/cjs/report/report-toolbar.cjs +1 -6
  123. package/dist/cjs/report/report-toolbar.native.js +6 -6
  124. package/dist/cjs/report/report-toolbar.native.js.map +1 -1
  125. package/dist/cjs/report/reportShapes.cjs +269 -11
  126. package/dist/cjs/report/reportShapes.native.js +333 -11
  127. package/dist/cjs/report/reportShapes.native.js.map +1 -1
  128. package/dist/cjs/report/reportViewModel.cjs +13 -5
  129. package/dist/cjs/report/reportViewModel.native.js +38 -5
  130. package/dist/cjs/report/reportViewModel.native.js.map +1 -1
  131. package/dist/cjs/report/useQueryReport.cjs +48 -17
  132. package/dist/cjs/report/useQueryReport.native.js +56 -37
  133. package/dist/cjs/report/useQueryReport.native.js.map +1 -1
  134. package/dist/cjs/shared/deskLinks.cjs +39 -0
  135. package/dist/cjs/shared/deskLinks.native.js +43 -0
  136. package/dist/cjs/shared/deskLinks.native.js.map +1 -0
  137. package/dist/cjs/shared/listNavContext.cjs +102 -0
  138. package/dist/cjs/shared/listNavContext.native.js +130 -0
  139. package/dist/cjs/shared/listNavContext.native.js.map +1 -0
  140. package/dist/cjs/shared/useDocinfo.cjs +42 -2
  141. package/dist/cjs/shared/useDocinfo.native.js +82 -2
  142. package/dist/cjs/shared/useDocinfo.native.js.map +1 -1
  143. package/dist/cjs/shared/useDoctypeMeta.native.js.map +1 -1
  144. package/dist/cjs/shared/useFrappeApp.cjs +10 -5
  145. package/dist/cjs/shared/useFrappeApp.native.js +10 -5
  146. package/dist/cjs/shared/useFrappeApp.native.js.map +1 -1
  147. package/dist/cjs/shell/BackofficeShell.cjs +83 -20
  148. package/dist/cjs/shell/BackofficeShell.native.js +89 -24
  149. package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
  150. package/dist/cjs/shell/WorkspaceSidebar.cjs +113 -4
  151. package/dist/cjs/shell/WorkspaceSidebar.native.js +120 -4
  152. package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
  153. package/dist/cjs/shell/useWorkspaces.cjs +2 -0
  154. package/dist/cjs/shell/useWorkspaces.native.js +2 -0
  155. package/dist/cjs/shell/useWorkspaces.native.js.map +1 -1
  156. package/dist/cjs/shell/workspaceIcons.cjs +12 -2
  157. package/dist/cjs/shell/workspaceIcons.native.js +35 -2
  158. package/dist/cjs/shell/workspaceIcons.native.js.map +1 -1
  159. package/dist/cjs/views/CalendarView.cjs +1 -4
  160. package/dist/cjs/views/CalendarView.native.js +1 -6
  161. package/dist/cjs/views/CalendarView.native.js.map +1 -1
  162. package/dist/cjs/views/DoctypeViewScreen.cjs +7 -3
  163. package/dist/cjs/views/DoctypeViewScreen.native.js +7 -3
  164. package/dist/cjs/views/DoctypeViewScreen.native.js.map +1 -1
  165. package/dist/cjs/views/KanbanView.cjs +2 -0
  166. package/dist/cjs/views/KanbanView.native.js +2 -0
  167. package/dist/cjs/views/KanbanView.native.js.map +1 -1
  168. package/dist/cjs/views/ViewHeader.cjs +45 -74
  169. package/dist/cjs/views/ViewHeader.native.js +51 -78
  170. package/dist/cjs/views/ViewHeader.native.js.map +1 -1
  171. package/dist/cjs/views/ViewSwitcherMenu.cjs +95 -0
  172. package/dist/cjs/views/ViewSwitcherMenu.native.js +99 -0
  173. package/dist/cjs/views/ViewSwitcherMenu.native.js.map +1 -0
  174. package/dist/cjs/views/connection.cjs +5 -1
  175. package/dist/cjs/views/connection.native.js +5 -1
  176. package/dist/cjs/views/connection.native.js.map +1 -1
  177. package/dist/cjs/views/dashboard-data.cjs +1 -2
  178. package/dist/cjs/views/dashboard-data.native.js +1 -4
  179. package/dist/cjs/views/dashboard-data.native.js.map +1 -1
  180. package/dist/cjs/views/kanban-board-controls.cjs +4 -9
  181. package/dist/cjs/views/kanban-board-controls.native.js +9 -10
  182. package/dist/cjs/views/kanban-board-controls.native.js.map +1 -1
  183. package/dist/cjs/views/viewAvailability.cjs +59 -0
  184. package/dist/cjs/views/viewAvailability.native.js +63 -0
  185. package/dist/cjs/views/viewAvailability.native.js.map +1 -0
  186. package/dist/cjs/workspace/WorkspaceLinkCard.cjs +120 -25
  187. package/dist/cjs/workspace/WorkspaceLinkCard.native.js +126 -28
  188. package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -1
  189. package/dist/cjs/workspace/WorkspaceLinkDirectory.cjs +27 -21
  190. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +32 -23
  191. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  192. package/dist/cjs/workspace/WorkspaceNumberCard.cjs +1 -1
  193. package/dist/cjs/workspace/WorkspaceNumberCard.native.js +1 -1
  194. package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -1
  195. package/dist/cjs/workspace/WorkspaceQuickList.cjs +61 -29
  196. package/dist/cjs/workspace/WorkspaceQuickList.native.js +65 -32
  197. package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
  198. package/dist/cjs/workspace/WorkspaceRecents.cjs +8 -0
  199. package/dist/cjs/workspace/WorkspaceRecents.native.js +8 -0
  200. package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
  201. package/dist/cjs/workspace/WorkspaceShortcut.cjs +10 -0
  202. package/dist/cjs/workspace/WorkspaceShortcut.native.js +10 -0
  203. package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
  204. package/dist/cjs/workspace/parseContent.cjs +22 -0
  205. package/dist/cjs/workspace/parseContent.native.js +24 -0
  206. package/dist/cjs/workspace/parseContent.native.js.map +1 -1
  207. package/dist/esm/chrome/BackofficeAwesomebar.mjs +1 -0
  208. package/dist/esm/chrome/BackofficeAwesomebar.mjs.map +1 -1
  209. package/dist/esm/chrome/BackofficeAwesomebar.native.js +1 -0
  210. package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -1
  211. package/dist/esm/chrome/CommandPalette.mjs +96 -19
  212. package/dist/esm/chrome/CommandPalette.mjs.map +1 -1
  213. package/dist/esm/chrome/CommandPalette.native.js +115 -32
  214. package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
  215. package/dist/esm/chrome/HelpMenu.mjs +41 -56
  216. package/dist/esm/chrome/HelpMenu.mjs.map +1 -1
  217. package/dist/esm/chrome/HelpMenu.native.js +51 -67
  218. package/dist/esm/chrome/HelpMenu.native.js.map +1 -1
  219. package/dist/esm/chrome/awesomebar-data.mjs +51 -9
  220. package/dist/esm/chrome/awesomebar-data.mjs.map +1 -1
  221. package/dist/esm/chrome/awesomebar-data.native.js +58 -11
  222. package/dist/esm/chrome/awesomebar-data.native.js.map +1 -1
  223. package/dist/esm/chrome/command-palette-model.mjs +2 -3
  224. package/dist/esm/chrome/command-palette-model.mjs.map +1 -1
  225. package/dist/esm/chrome/command-palette-model.native.js +2 -3
  226. package/dist/esm/chrome/command-palette-model.native.js.map +1 -1
  227. package/dist/esm/chrome/notifications-data.mjs +2 -0
  228. package/dist/esm/chrome/notifications-data.mjs.map +1 -1
  229. package/dist/esm/chrome/notifications-data.native.js +2 -0
  230. package/dist/esm/chrome/notifications-data.native.js.map +1 -1
  231. package/dist/esm/chrome/notifications-panel.mjs +15 -5
  232. package/dist/esm/chrome/notifications-panel.mjs.map +1 -1
  233. package/dist/esm/chrome/notifications-panel.native.js +17 -5
  234. package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
  235. package/dist/esm/chrome/shortcuts.mjs.map +1 -1
  236. package/dist/esm/chrome/shortcuts.native.js.map +1 -1
  237. package/dist/esm/config/BackofficeProvider.mjs +2 -0
  238. package/dist/esm/config/BackofficeProvider.mjs.map +1 -1
  239. package/dist/esm/config/BackofficeProvider.native.js +2 -0
  240. package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
  241. package/dist/esm/form/DocFormScreen.mjs +126 -17
  242. package/dist/esm/form/DocFormScreen.mjs.map +1 -1
  243. package/dist/esm/form/DocFormScreen.native.js +150 -17
  244. package/dist/esm/form/DocFormScreen.native.js.map +1 -1
  245. package/dist/esm/form/FormConnections.mjs +38 -6
  246. package/dist/esm/form/FormConnections.mjs.map +1 -1
  247. package/dist/esm/form/FormConnections.native.js +37 -6
  248. package/dist/esm/form/FormConnections.native.js.map +1 -1
  249. package/dist/esm/form/FormDialogs.mjs +107 -4
  250. package/dist/esm/form/FormDialogs.mjs.map +1 -1
  251. package/dist/esm/form/FormDialogs.native.js +113 -4
  252. package/dist/esm/form/FormDialogs.native.js.map +1 -1
  253. package/dist/esm/form/FormErrorBoundary.mjs +28 -7
  254. package/dist/esm/form/FormErrorBoundary.mjs.map +1 -1
  255. package/dist/esm/form/FormErrorBoundary.native.js +27 -7
  256. package/dist/esm/form/FormErrorBoundary.native.js.map +1 -1
  257. package/dist/esm/form/FormSidebarPanel.mjs +71 -23
  258. package/dist/esm/form/FormSidebarPanel.mjs.map +1 -1
  259. package/dist/esm/form/FormSidebarPanel.native.js +70 -23
  260. package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
  261. package/dist/esm/form/FormTimeline.mjs +136 -25
  262. package/dist/esm/form/FormTimeline.mjs.map +1 -1
  263. package/dist/esm/form/FormTimeline.native.js +174 -27
  264. package/dist/esm/form/FormTimeline.native.js.map +1 -1
  265. package/dist/esm/form/FormToolbar.mjs +51 -5
  266. package/dist/esm/form/FormToolbar.mjs.map +1 -1
  267. package/dist/esm/form/FormToolbar.native.js +51 -5
  268. package/dist/esm/form/FormToolbar.native.js.map +1 -1
  269. package/dist/esm/form/formActions.mjs.map +1 -1
  270. package/dist/esm/form/formActions.native.js.map +1 -1
  271. package/dist/esm/form/formLayout.mjs +3 -13
  272. package/dist/esm/form/formLayout.mjs.map +1 -1
  273. package/dist/esm/form/formLayout.native.js +7 -13
  274. package/dist/esm/form/formLayout.native.js.map +1 -1
  275. package/dist/esm/form/platformHooks.mjs +47 -1
  276. package/dist/esm/form/platformHooks.mjs.map +1 -1
  277. package/dist/esm/form/platformHooks.native.js +51 -1
  278. package/dist/esm/form/platformHooks.native.js.map +1 -1
  279. package/dist/esm/form/timeline-entries.mjs +56 -13
  280. package/dist/esm/form/timeline-entries.mjs.map +1 -1
  281. package/dist/esm/form/timeline-entries.native.js +58 -16
  282. package/dist/esm/form/timeline-entries.native.js.map +1 -1
  283. package/dist/esm/i18n/en.mjs +31 -9
  284. package/dist/esm/i18n/en.mjs.map +1 -1
  285. package/dist/esm/i18n/en.native.js +31 -9
  286. package/dist/esm/i18n/en.native.js.map +1 -1
  287. package/dist/esm/index.mjs +6 -3
  288. package/dist/esm/index.mjs.map +1 -1
  289. package/dist/esm/index.native.js +6 -3
  290. package/dist/esm/index.native.js.map +1 -1
  291. package/dist/esm/list/AddTagsDialog.mjs +12 -7
  292. package/dist/esm/list/AddTagsDialog.mjs.map +1 -1
  293. package/dist/esm/list/AddTagsDialog.native.js +12 -7
  294. package/dist/esm/list/AddTagsDialog.native.js.map +1 -1
  295. package/dist/esm/list/AssignToDialog.mjs +7 -4
  296. package/dist/esm/list/AssignToDialog.mjs.map +1 -1
  297. package/dist/esm/list/AssignToDialog.native.js +7 -4
  298. package/dist/esm/list/AssignToDialog.native.js.map +1 -1
  299. package/dist/esm/list/DoctypeListScreen.mjs +127 -156
  300. package/dist/esm/list/DoctypeListScreen.mjs.map +1 -1
  301. package/dist/esm/list/DoctypeListScreen.native.js +155 -201
  302. package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
  303. package/dist/esm/list/ListFilterBar.mjs +60 -41
  304. package/dist/esm/list/ListFilterBar.mjs.map +1 -1
  305. package/dist/esm/list/ListFilterBar.native.js +62 -41
  306. package/dist/esm/list/ListFilterBar.native.js.map +1 -1
  307. package/dist/esm/list/ListSidebar.mjs +16 -14
  308. package/dist/esm/list/ListSidebar.mjs.map +1 -1
  309. package/dist/esm/list/ListSidebar.native.js +18 -18
  310. package/dist/esm/list/ListSidebar.native.js.map +1 -1
  311. package/dist/esm/list/bulk-edit-dialog.mjs +12 -7
  312. package/dist/esm/list/bulk-edit-dialog.mjs.map +1 -1
  313. package/dist/esm/list/bulk-edit-dialog.native.js +12 -7
  314. package/dist/esm/list/bulk-edit-dialog.native.js.map +1 -1
  315. package/dist/esm/list/filter-fields.mjs +23 -1
  316. package/dist/esm/list/filter-fields.mjs.map +1 -1
  317. package/dist/esm/list/filter-fields.native.js +28 -1
  318. package/dist/esm/list/filter-fields.native.js.map +1 -1
  319. package/dist/esm/list/filter-saved.mjs +4 -4
  320. package/dist/esm/list/filter-saved.mjs.map +1 -1
  321. package/dist/esm/list/filter-saved.native.js +4 -7
  322. package/dist/esm/list/filter-saved.native.js.map +1 -1
  323. package/dist/esm/list/filter-sort.mjs +2 -1
  324. package/dist/esm/list/filter-sort.mjs.map +1 -1
  325. package/dist/esm/list/filter-sort.native.js +2 -1
  326. package/dist/esm/list/filter-sort.native.js.map +1 -1
  327. package/dist/esm/list/filter-standard.mjs +1 -1
  328. package/dist/esm/list/filter-standard.mjs.map +1 -1
  329. package/dist/esm/list/filter-standard.native.js +1 -1
  330. package/dist/esm/list/filter-standard.native.js.map +1 -1
  331. package/dist/esm/list/listColumns.mjs +261 -112
  332. package/dist/esm/list/listColumns.mjs.map +1 -1
  333. package/dist/esm/list/listColumns.native.js +266 -121
  334. package/dist/esm/list/listColumns.native.js.map +1 -1
  335. package/dist/esm/list/listFields.mjs +6 -2
  336. package/dist/esm/list/listFields.mjs.map +1 -1
  337. package/dist/esm/list/listFields.native.js +8 -2
  338. package/dist/esm/list/listFields.native.js.map +1 -1
  339. package/dist/esm/list/sidebar-section.mjs +58 -21
  340. package/dist/esm/list/sidebar-section.mjs.map +1 -1
  341. package/dist/esm/list/sidebar-section.native.js +61 -21
  342. package/dist/esm/list/sidebar-section.native.js.map +1 -1
  343. package/dist/esm/oneAdapter/index.mjs +5 -1
  344. package/dist/esm/oneAdapter/index.mjs.map +1 -1
  345. package/dist/esm/oneAdapter/index.native.js +8 -1
  346. package/dist/esm/oneAdapter/index.native.js.map +1 -1
  347. package/dist/esm/quickEntry/quickEntryPlan.mjs +2 -6
  348. package/dist/esm/quickEntry/quickEntryPlan.mjs.map +1 -1
  349. package/dist/esm/quickEntry/quickEntryPlan.native.js +4 -6
  350. package/dist/esm/quickEntry/quickEntryPlan.native.js.map +1 -1
  351. package/dist/esm/report/QueryReportScreen.mjs +103 -94
  352. package/dist/esm/report/QueryReportScreen.mjs.map +1 -1
  353. package/dist/esm/report/QueryReportScreen.native.js +125 -143
  354. package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
  355. package/dist/esm/report/queryReportColumns.mjs +9 -1
  356. package/dist/esm/report/queryReportColumns.mjs.map +1 -1
  357. package/dist/esm/report/queryReportColumns.native.js +15 -1
  358. package/dist/esm/report/queryReportColumns.native.js.map +1 -1
  359. package/dist/esm/report/queryReportFilterBar.mjs +246 -0
  360. package/dist/esm/report/queryReportFilterBar.mjs.map +1 -0
  361. package/dist/esm/report/queryReportFilterBar.native.js +308 -0
  362. package/dist/esm/report/queryReportFilterBar.native.js.map +1 -0
  363. package/dist/esm/report/queryReportUrlState.mjs +29 -0
  364. package/dist/esm/report/queryReportUrlState.mjs.map +1 -0
  365. package/dist/esm/report/queryReportUrlState.native.js +79 -0
  366. package/dist/esm/report/queryReportUrlState.native.js.map +1 -0
  367. package/dist/esm/report/report-grid.mjs +158 -53
  368. package/dist/esm/report/report-grid.mjs.map +1 -1
  369. package/dist/esm/report/report-grid.native.js +177 -57
  370. package/dist/esm/report/report-grid.native.js.map +1 -1
  371. package/dist/esm/report/report-toolbar.mjs +2 -7
  372. package/dist/esm/report/report-toolbar.mjs.map +1 -1
  373. package/dist/esm/report/report-toolbar.native.js +7 -7
  374. package/dist/esm/report/report-toolbar.native.js.map +1 -1
  375. package/dist/esm/report/reportShapes.mjs +266 -12
  376. package/dist/esm/report/reportShapes.mjs.map +1 -1
  377. package/dist/esm/report/reportShapes.native.js +330 -12
  378. package/dist/esm/report/reportShapes.native.js.map +1 -1
  379. package/dist/esm/report/reportViewModel.mjs +13 -5
  380. package/dist/esm/report/reportViewModel.mjs.map +1 -1
  381. package/dist/esm/report/reportViewModel.native.js +38 -5
  382. package/dist/esm/report/reportViewModel.native.js.map +1 -1
  383. package/dist/esm/report/useQueryReport.mjs +46 -20
  384. package/dist/esm/report/useQueryReport.mjs.map +1 -1
  385. package/dist/esm/report/useQueryReport.native.js +54 -40
  386. package/dist/esm/report/useQueryReport.native.js.map +1 -1
  387. package/dist/esm/shared/deskLinks.mjs +13 -0
  388. package/dist/esm/shared/deskLinks.mjs.map +1 -0
  389. package/dist/esm/shared/deskLinks.native.js +14 -0
  390. package/dist/esm/shared/deskLinks.native.js.map +1 -0
  391. package/dist/esm/shared/listNavContext.mjs +74 -0
  392. package/dist/esm/shared/listNavContext.mjs.map +1 -0
  393. package/dist/esm/shared/listNavContext.native.js +99 -0
  394. package/dist/esm/shared/listNavContext.native.js.map +1 -0
  395. package/dist/esm/shared/useDocinfo.mjs +40 -3
  396. package/dist/esm/shared/useDocinfo.mjs.map +1 -1
  397. package/dist/esm/shared/useDocinfo.native.js +80 -3
  398. package/dist/esm/shared/useDocinfo.native.js.map +1 -1
  399. package/dist/esm/shared/useDoctypeMeta.mjs.map +1 -1
  400. package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
  401. package/dist/esm/shared/useFrappeApp.mjs +10 -5
  402. package/dist/esm/shared/useFrappeApp.mjs.map +1 -1
  403. package/dist/esm/shared/useFrappeApp.native.js +10 -5
  404. package/dist/esm/shared/useFrappeApp.native.js.map +1 -1
  405. package/dist/esm/shell/BackofficeShell.mjs +75 -23
  406. package/dist/esm/shell/BackofficeShell.mjs.map +1 -1
  407. package/dist/esm/shell/BackofficeShell.native.js +81 -27
  408. package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
  409. package/dist/esm/shell/WorkspaceSidebar.mjs +115 -6
  410. package/dist/esm/shell/WorkspaceSidebar.mjs.map +1 -1
  411. package/dist/esm/shell/WorkspaceSidebar.native.js +122 -6
  412. package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
  413. package/dist/esm/shell/useWorkspaces.mjs +2 -0
  414. package/dist/esm/shell/useWorkspaces.mjs.map +1 -1
  415. package/dist/esm/shell/useWorkspaces.native.js +2 -0
  416. package/dist/esm/shell/useWorkspaces.native.js.map +1 -1
  417. package/dist/esm/shell/workspaceIcons.mjs +13 -3
  418. package/dist/esm/shell/workspaceIcons.mjs.map +1 -1
  419. package/dist/esm/shell/workspaceIcons.native.js +36 -3
  420. package/dist/esm/shell/workspaceIcons.native.js.map +1 -1
  421. package/dist/esm/views/CalendarView.mjs +2 -5
  422. package/dist/esm/views/CalendarView.mjs.map +1 -1
  423. package/dist/esm/views/CalendarView.native.js +2 -7
  424. package/dist/esm/views/CalendarView.native.js.map +1 -1
  425. package/dist/esm/views/DoctypeViewScreen.mjs +7 -3
  426. package/dist/esm/views/DoctypeViewScreen.mjs.map +1 -1
  427. package/dist/esm/views/DoctypeViewScreen.native.js +7 -3
  428. package/dist/esm/views/DoctypeViewScreen.native.js.map +1 -1
  429. package/dist/esm/views/KanbanView.mjs +2 -0
  430. package/dist/esm/views/KanbanView.mjs.map +1 -1
  431. package/dist/esm/views/KanbanView.native.js +2 -0
  432. package/dist/esm/views/KanbanView.native.js.map +1 -1
  433. package/dist/esm/views/ViewHeader.mjs +49 -78
  434. package/dist/esm/views/ViewHeader.mjs.map +1 -1
  435. package/dist/esm/views/ViewHeader.native.js +55 -82
  436. package/dist/esm/views/ViewHeader.native.js.map +1 -1
  437. package/dist/esm/views/ViewSwitcherMenu.mjs +69 -0
  438. package/dist/esm/views/ViewSwitcherMenu.mjs.map +1 -0
  439. package/dist/esm/views/ViewSwitcherMenu.native.js +70 -0
  440. package/dist/esm/views/ViewSwitcherMenu.native.js.map +1 -0
  441. package/dist/esm/views/connection.mjs +5 -1
  442. package/dist/esm/views/connection.mjs.map +1 -1
  443. package/dist/esm/views/connection.native.js +5 -1
  444. package/dist/esm/views/connection.native.js.map +1 -1
  445. package/dist/esm/views/dashboard-data.mjs +2 -3
  446. package/dist/esm/views/dashboard-data.mjs.map +1 -1
  447. package/dist/esm/views/dashboard-data.native.js +2 -5
  448. package/dist/esm/views/dashboard-data.native.js.map +1 -1
  449. package/dist/esm/views/kanban-board-controls.mjs +4 -9
  450. package/dist/esm/views/kanban-board-controls.mjs.map +1 -1
  451. package/dist/esm/views/kanban-board-controls.native.js +9 -10
  452. package/dist/esm/views/kanban-board-controls.native.js.map +1 -1
  453. package/dist/esm/views/viewAvailability.mjs +33 -0
  454. package/dist/esm/views/viewAvailability.mjs.map +1 -0
  455. package/dist/esm/views/viewAvailability.native.js +34 -0
  456. package/dist/esm/views/viewAvailability.native.js.map +1 -0
  457. package/dist/esm/workspace/WorkspaceLinkCard.mjs +121 -26
  458. package/dist/esm/workspace/WorkspaceLinkCard.mjs.map +1 -1
  459. package/dist/esm/workspace/WorkspaceLinkCard.native.js +127 -29
  460. package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -1
  461. package/dist/esm/workspace/WorkspaceLinkDirectory.mjs +27 -21
  462. package/dist/esm/workspace/WorkspaceLinkDirectory.mjs.map +1 -1
  463. package/dist/esm/workspace/WorkspaceLinkDirectory.native.js +32 -23
  464. package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  465. package/dist/esm/workspace/WorkspaceNumberCard.mjs +1 -1
  466. package/dist/esm/workspace/WorkspaceNumberCard.mjs.map +1 -1
  467. package/dist/esm/workspace/WorkspaceNumberCard.native.js +1 -1
  468. package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -1
  469. package/dist/esm/workspace/WorkspaceQuickList.mjs +62 -30
  470. package/dist/esm/workspace/WorkspaceQuickList.mjs.map +1 -1
  471. package/dist/esm/workspace/WorkspaceQuickList.native.js +66 -33
  472. package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
  473. package/dist/esm/workspace/WorkspaceRecents.mjs +9 -1
  474. package/dist/esm/workspace/WorkspaceRecents.mjs.map +1 -1
  475. package/dist/esm/workspace/WorkspaceRecents.native.js +9 -1
  476. package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
  477. package/dist/esm/workspace/WorkspaceShortcut.mjs +11 -1
  478. package/dist/esm/workspace/WorkspaceShortcut.mjs.map +1 -1
  479. package/dist/esm/workspace/WorkspaceShortcut.native.js +11 -1
  480. package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
  481. package/dist/esm/workspace/parseContent.mjs +21 -1
  482. package/dist/esm/workspace/parseContent.mjs.map +1 -1
  483. package/dist/esm/workspace/parseContent.native.js +23 -1
  484. package/dist/esm/workspace/parseContent.native.js.map +1 -1
  485. package/dist/jsx/chrome/BackofficeAwesomebar.mjs +1 -0
  486. package/dist/jsx/chrome/BackofficeAwesomebar.mjs.map +1 -1
  487. package/dist/jsx/chrome/BackofficeAwesomebar.native.js +1 -0
  488. package/dist/jsx/chrome/BackofficeAwesomebar.native.js.map +1 -1
  489. package/dist/jsx/chrome/CommandPalette.mjs +96 -19
  490. package/dist/jsx/chrome/CommandPalette.mjs.map +1 -1
  491. package/dist/jsx/chrome/CommandPalette.native.js +114 -31
  492. package/dist/jsx/chrome/CommandPalette.native.js.map +1 -1
  493. package/dist/jsx/chrome/HelpMenu.mjs +41 -56
  494. package/dist/jsx/chrome/HelpMenu.mjs.map +1 -1
  495. package/dist/jsx/chrome/HelpMenu.native.js +50 -66
  496. package/dist/jsx/chrome/HelpMenu.native.js.map +1 -1
  497. package/dist/jsx/chrome/awesomebar-data.mjs +51 -9
  498. package/dist/jsx/chrome/awesomebar-data.mjs.map +1 -1
  499. package/dist/jsx/chrome/awesomebar-data.native.js +58 -10
  500. package/dist/jsx/chrome/awesomebar-data.native.js.map +1 -1
  501. package/dist/jsx/chrome/command-palette-model.mjs +2 -3
  502. package/dist/jsx/chrome/command-palette-model.mjs.map +1 -1
  503. package/dist/jsx/chrome/command-palette-model.native.js +1 -2
  504. package/dist/jsx/chrome/command-palette-model.native.js.map +1 -1
  505. package/dist/jsx/chrome/notifications-data.mjs +2 -0
  506. package/dist/jsx/chrome/notifications-data.mjs.map +1 -1
  507. package/dist/jsx/chrome/notifications-data.native.js +2 -0
  508. package/dist/jsx/chrome/notifications-data.native.js.map +1 -1
  509. package/dist/jsx/chrome/notifications-panel.mjs +15 -5
  510. package/dist/jsx/chrome/notifications-panel.mjs.map +1 -1
  511. package/dist/jsx/chrome/notifications-panel.native.js +16 -4
  512. package/dist/jsx/chrome/notifications-panel.native.js.map +1 -1
  513. package/dist/jsx/chrome/shortcuts.mjs.map +1 -1
  514. package/dist/jsx/chrome/shortcuts.native.js.map +1 -1
  515. package/dist/jsx/config/BackofficeProvider.mjs +2 -0
  516. package/dist/jsx/config/BackofficeProvider.mjs.map +1 -1
  517. package/dist/jsx/config/BackofficeProvider.native.js +2 -0
  518. package/dist/jsx/config/BackofficeProvider.native.js.map +1 -1
  519. package/dist/jsx/form/DocFormScreen.mjs +126 -17
  520. package/dist/jsx/form/DocFormScreen.mjs.map +1 -1
  521. package/dist/jsx/form/DocFormScreen.native.js +147 -14
  522. package/dist/jsx/form/DocFormScreen.native.js.map +1 -1
  523. package/dist/jsx/form/FormConnections.mjs +38 -6
  524. package/dist/jsx/form/FormConnections.mjs.map +1 -1
  525. package/dist/jsx/form/FormConnections.native.js +36 -5
  526. package/dist/jsx/form/FormConnections.native.js.map +1 -1
  527. package/dist/jsx/form/FormDialogs.mjs +107 -4
  528. package/dist/jsx/form/FormDialogs.mjs.map +1 -1
  529. package/dist/jsx/form/FormDialogs.native.js +110 -0
  530. package/dist/jsx/form/FormDialogs.native.js.map +1 -1
  531. package/dist/jsx/form/FormErrorBoundary.mjs +28 -7
  532. package/dist/jsx/form/FormErrorBoundary.mjs.map +1 -1
  533. package/dist/jsx/form/FormErrorBoundary.native.js +25 -5
  534. package/dist/jsx/form/FormErrorBoundary.native.js.map +1 -1
  535. package/dist/jsx/form/FormSidebarPanel.mjs +71 -23
  536. package/dist/jsx/form/FormSidebarPanel.mjs.map +1 -1
  537. package/dist/jsx/form/FormSidebarPanel.native.js +70 -22
  538. package/dist/jsx/form/FormSidebarPanel.native.js.map +1 -1
  539. package/dist/jsx/form/FormTimeline.mjs +136 -25
  540. package/dist/jsx/form/FormTimeline.mjs.map +1 -1
  541. package/dist/jsx/form/FormTimeline.native.js +171 -24
  542. package/dist/jsx/form/FormTimeline.native.js.map +1 -1
  543. package/dist/jsx/form/FormToolbar.mjs +51 -5
  544. package/dist/jsx/form/FormToolbar.mjs.map +1 -1
  545. package/dist/jsx/form/FormToolbar.native.js +50 -4
  546. package/dist/jsx/form/FormToolbar.native.js.map +1 -1
  547. package/dist/jsx/form/formActions.mjs.map +1 -1
  548. package/dist/jsx/form/formActions.native.js.map +1 -1
  549. package/dist/jsx/form/formLayout.mjs +3 -13
  550. package/dist/jsx/form/formLayout.mjs.map +1 -1
  551. package/dist/jsx/form/formLayout.native.js +7 -13
  552. package/dist/jsx/form/formLayout.native.js.map +1 -1
  553. package/dist/jsx/form/platformHooks.mjs +47 -1
  554. package/dist/jsx/form/platformHooks.mjs.map +1 -1
  555. package/dist/jsx/form/platformHooks.native.js +52 -0
  556. package/dist/jsx/form/platformHooks.native.js.map +1 -1
  557. package/dist/jsx/form/timeline-entries.mjs +56 -13
  558. package/dist/jsx/form/timeline-entries.mjs.map +1 -1
  559. package/dist/jsx/form/timeline-entries.native.js +58 -16
  560. package/dist/jsx/form/timeline-entries.native.js.map +1 -1
  561. package/dist/jsx/i18n/en.mjs +31 -9
  562. package/dist/jsx/i18n/en.mjs.map +1 -1
  563. package/dist/jsx/i18n/en.native.js +31 -9
  564. package/dist/jsx/i18n/en.native.js.map +1 -1
  565. package/dist/jsx/index.js +6 -3
  566. package/dist/jsx/index.js.map +1 -1
  567. package/dist/jsx/index.mjs +6 -3
  568. package/dist/jsx/index.mjs.map +1 -1
  569. package/dist/jsx/index.native.js +13 -1
  570. package/dist/jsx/index.native.js.map +1 -1
  571. package/dist/jsx/list/AddTagsDialog.mjs +12 -7
  572. package/dist/jsx/list/AddTagsDialog.mjs.map +1 -1
  573. package/dist/jsx/list/AddTagsDialog.native.js +12 -7
  574. package/dist/jsx/list/AddTagsDialog.native.js.map +1 -1
  575. package/dist/jsx/list/AssignToDialog.mjs +7 -4
  576. package/dist/jsx/list/AssignToDialog.mjs.map +1 -1
  577. package/dist/jsx/list/AssignToDialog.native.js +7 -4
  578. package/dist/jsx/list/AssignToDialog.native.js.map +1 -1
  579. package/dist/jsx/list/DoctypeListScreen.mjs +127 -156
  580. package/dist/jsx/list/DoctypeListScreen.mjs.map +1 -1
  581. package/dist/jsx/list/DoctypeListScreen.native.js +152 -198
  582. package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
  583. package/dist/jsx/list/ListFilterBar.mjs +60 -41
  584. package/dist/jsx/list/ListFilterBar.mjs.map +1 -1
  585. package/dist/jsx/list/ListFilterBar.native.js +62 -41
  586. package/dist/jsx/list/ListFilterBar.native.js.map +1 -1
  587. package/dist/jsx/list/ListSidebar.mjs +16 -14
  588. package/dist/jsx/list/ListSidebar.mjs.map +1 -1
  589. package/dist/jsx/list/ListSidebar.native.js +17 -17
  590. package/dist/jsx/list/ListSidebar.native.js.map +1 -1
  591. package/dist/jsx/list/bulk-edit-dialog.mjs +12 -7
  592. package/dist/jsx/list/bulk-edit-dialog.mjs.map +1 -1
  593. package/dist/jsx/list/bulk-edit-dialog.native.js +12 -7
  594. package/dist/jsx/list/bulk-edit-dialog.native.js.map +1 -1
  595. package/dist/jsx/list/filter-fields.mjs +23 -1
  596. package/dist/jsx/list/filter-fields.mjs.map +1 -1
  597. package/dist/jsx/list/filter-fields.native.js +28 -1
  598. package/dist/jsx/list/filter-fields.native.js.map +1 -1
  599. package/dist/jsx/list/filter-saved.mjs +4 -4
  600. package/dist/jsx/list/filter-saved.mjs.map +1 -1
  601. package/dist/jsx/list/filter-saved.native.js +4 -7
  602. package/dist/jsx/list/filter-saved.native.js.map +1 -1
  603. package/dist/jsx/list/filter-sort.mjs +2 -1
  604. package/dist/jsx/list/filter-sort.mjs.map +1 -1
  605. package/dist/jsx/list/filter-sort.native.js +2 -1
  606. package/dist/jsx/list/filter-sort.native.js.map +1 -1
  607. package/dist/jsx/list/filter-standard.mjs +1 -1
  608. package/dist/jsx/list/filter-standard.mjs.map +1 -1
  609. package/dist/jsx/list/filter-standard.native.js +1 -1
  610. package/dist/jsx/list/filter-standard.native.js.map +1 -1
  611. package/dist/jsx/list/listColumns.mjs +261 -112
  612. package/dist/jsx/list/listColumns.mjs.map +1 -1
  613. package/dist/jsx/list/listColumns.native.js +263 -118
  614. package/dist/jsx/list/listColumns.native.js.map +1 -1
  615. package/dist/jsx/list/listFields.mjs +6 -2
  616. package/dist/jsx/list/listFields.mjs.map +1 -1
  617. package/dist/jsx/list/listFields.native.js +8 -1
  618. package/dist/jsx/list/listFields.native.js.map +1 -1
  619. package/dist/jsx/list/sidebar-section.mjs +58 -21
  620. package/dist/jsx/list/sidebar-section.mjs.map +1 -1
  621. package/dist/jsx/list/sidebar-section.native.js +60 -19
  622. package/dist/jsx/list/sidebar-section.native.js.map +1 -1
  623. package/dist/jsx/oneAdapter/index.mjs +5 -1
  624. package/dist/jsx/oneAdapter/index.mjs.map +1 -1
  625. package/dist/jsx/oneAdapter/index.native.js +8 -1
  626. package/dist/jsx/oneAdapter/index.native.js.map +1 -1
  627. package/dist/jsx/quickEntry/quickEntryPlan.mjs +2 -6
  628. package/dist/jsx/quickEntry/quickEntryPlan.mjs.map +1 -1
  629. package/dist/jsx/quickEntry/quickEntryPlan.native.js +4 -6
  630. package/dist/jsx/quickEntry/quickEntryPlan.native.js.map +1 -1
  631. package/dist/jsx/report/QueryReportScreen.mjs +103 -94
  632. package/dist/jsx/report/QueryReportScreen.mjs.map +1 -1
  633. package/dist/jsx/report/QueryReportScreen.native.js +125 -143
  634. package/dist/jsx/report/QueryReportScreen.native.js.map +1 -1
  635. package/dist/jsx/report/queryReportColumns.mjs +9 -1
  636. package/dist/jsx/report/queryReportColumns.mjs.map +1 -1
  637. package/dist/jsx/report/queryReportColumns.native.js +16 -1
  638. package/dist/jsx/report/queryReportColumns.native.js.map +1 -1
  639. package/dist/jsx/report/queryReportFilterBar.mjs +246 -0
  640. package/dist/jsx/report/queryReportFilterBar.mjs.map +1 -0
  641. package/dist/jsx/report/queryReportFilterBar.native.js +339 -0
  642. package/dist/jsx/report/queryReportFilterBar.native.js.map +1 -0
  643. package/dist/jsx/report/queryReportUrlState.mjs +29 -0
  644. package/dist/jsx/report/queryReportUrlState.mjs.map +1 -0
  645. package/dist/jsx/report/queryReportUrlState.native.js +108 -0
  646. package/dist/jsx/report/queryReportUrlState.native.js.map +1 -0
  647. package/dist/jsx/report/report-grid.mjs +158 -53
  648. package/dist/jsx/report/report-grid.mjs.map +1 -1
  649. package/dist/jsx/report/report-grid.native.js +174 -54
  650. package/dist/jsx/report/report-grid.native.js.map +1 -1
  651. package/dist/jsx/report/report-toolbar.mjs +2 -7
  652. package/dist/jsx/report/report-toolbar.mjs.map +1 -1
  653. package/dist/jsx/report/report-toolbar.native.js +6 -6
  654. package/dist/jsx/report/report-toolbar.native.js.map +1 -1
  655. package/dist/jsx/report/reportShapes.mjs +266 -12
  656. package/dist/jsx/report/reportShapes.mjs.map +1 -1
  657. package/dist/jsx/report/reportShapes.native.js +333 -11
  658. package/dist/jsx/report/reportShapes.native.js.map +1 -1
  659. package/dist/jsx/report/reportViewModel.mjs +13 -5
  660. package/dist/jsx/report/reportViewModel.mjs.map +1 -1
  661. package/dist/jsx/report/reportViewModel.native.js +38 -5
  662. package/dist/jsx/report/reportViewModel.native.js.map +1 -1
  663. package/dist/jsx/report/useQueryReport.mjs +46 -20
  664. package/dist/jsx/report/useQueryReport.mjs.map +1 -1
  665. package/dist/jsx/report/useQueryReport.native.js +56 -37
  666. package/dist/jsx/report/useQueryReport.native.js.map +1 -1
  667. package/dist/jsx/shared/deskLinks.mjs +13 -0
  668. package/dist/jsx/shared/deskLinks.mjs.map +1 -0
  669. package/dist/jsx/shared/deskLinks.native.js +43 -0
  670. package/dist/jsx/shared/deskLinks.native.js.map +1 -0
  671. package/dist/jsx/shared/listNavContext.mjs +74 -0
  672. package/dist/jsx/shared/listNavContext.mjs.map +1 -0
  673. package/dist/jsx/shared/listNavContext.native.js +130 -0
  674. package/dist/jsx/shared/listNavContext.native.js.map +1 -0
  675. package/dist/jsx/shared/useDocinfo.mjs +40 -3
  676. package/dist/jsx/shared/useDocinfo.mjs.map +1 -1
  677. package/dist/jsx/shared/useDocinfo.native.js +82 -2
  678. package/dist/jsx/shared/useDocinfo.native.js.map +1 -1
  679. package/dist/jsx/shared/useDoctypeMeta.mjs.map +1 -1
  680. package/dist/jsx/shared/useDoctypeMeta.native.js.map +1 -1
  681. package/dist/jsx/shared/useFrappeApp.mjs +10 -5
  682. package/dist/jsx/shared/useFrappeApp.mjs.map +1 -1
  683. package/dist/jsx/shared/useFrappeApp.native.js +10 -5
  684. package/dist/jsx/shared/useFrappeApp.native.js.map +1 -1
  685. package/dist/jsx/shell/BackofficeShell.mjs +75 -23
  686. package/dist/jsx/shell/BackofficeShell.mjs.map +1 -1
  687. package/dist/jsx/shell/BackofficeShell.native.js +89 -24
  688. package/dist/jsx/shell/BackofficeShell.native.js.map +1 -1
  689. package/dist/jsx/shell/WorkspaceSidebar.mjs +115 -6
  690. package/dist/jsx/shell/WorkspaceSidebar.mjs.map +1 -1
  691. package/dist/jsx/shell/WorkspaceSidebar.native.js +120 -4
  692. package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -1
  693. package/dist/jsx/shell/useWorkspaces.mjs +2 -0
  694. package/dist/jsx/shell/useWorkspaces.mjs.map +1 -1
  695. package/dist/jsx/shell/useWorkspaces.native.js +2 -0
  696. package/dist/jsx/shell/useWorkspaces.native.js.map +1 -1
  697. package/dist/jsx/shell/workspaceIcons.mjs +13 -3
  698. package/dist/jsx/shell/workspaceIcons.mjs.map +1 -1
  699. package/dist/jsx/shell/workspaceIcons.native.js +35 -2
  700. package/dist/jsx/shell/workspaceIcons.native.js.map +1 -1
  701. package/dist/jsx/views/CalendarView.mjs +2 -5
  702. package/dist/jsx/views/CalendarView.mjs.map +1 -1
  703. package/dist/jsx/views/CalendarView.native.js +1 -6
  704. package/dist/jsx/views/CalendarView.native.js.map +1 -1
  705. package/dist/jsx/views/DoctypeViewScreen.mjs +7 -3
  706. package/dist/jsx/views/DoctypeViewScreen.mjs.map +1 -1
  707. package/dist/jsx/views/DoctypeViewScreen.native.js +7 -3
  708. package/dist/jsx/views/DoctypeViewScreen.native.js.map +1 -1
  709. package/dist/jsx/views/KanbanView.mjs +2 -0
  710. package/dist/jsx/views/KanbanView.mjs.map +1 -1
  711. package/dist/jsx/views/KanbanView.native.js +2 -0
  712. package/dist/jsx/views/KanbanView.native.js.map +1 -1
  713. package/dist/jsx/views/ViewHeader.mjs +49 -78
  714. package/dist/jsx/views/ViewHeader.mjs.map +1 -1
  715. package/dist/jsx/views/ViewHeader.native.js +51 -78
  716. package/dist/jsx/views/ViewHeader.native.js.map +1 -1
  717. package/dist/jsx/views/ViewSwitcherMenu.mjs +69 -0
  718. package/dist/jsx/views/ViewSwitcherMenu.mjs.map +1 -0
  719. package/dist/jsx/views/ViewSwitcherMenu.native.js +99 -0
  720. package/dist/jsx/views/ViewSwitcherMenu.native.js.map +1 -0
  721. package/dist/jsx/views/connection.mjs +5 -1
  722. package/dist/jsx/views/connection.mjs.map +1 -1
  723. package/dist/jsx/views/connection.native.js +5 -1
  724. package/dist/jsx/views/connection.native.js.map +1 -1
  725. package/dist/jsx/views/dashboard-data.mjs +2 -3
  726. package/dist/jsx/views/dashboard-data.mjs.map +1 -1
  727. package/dist/jsx/views/dashboard-data.native.js +1 -4
  728. package/dist/jsx/views/dashboard-data.native.js.map +1 -1
  729. package/dist/jsx/views/kanban-board-controls.mjs +4 -9
  730. package/dist/jsx/views/kanban-board-controls.mjs.map +1 -1
  731. package/dist/jsx/views/kanban-board-controls.native.js +9 -10
  732. package/dist/jsx/views/kanban-board-controls.native.js.map +1 -1
  733. package/dist/jsx/views/viewAvailability.mjs +33 -0
  734. package/dist/jsx/views/viewAvailability.mjs.map +1 -0
  735. package/dist/jsx/views/viewAvailability.native.js +63 -0
  736. package/dist/jsx/views/viewAvailability.native.js.map +1 -0
  737. package/dist/jsx/workspace/WorkspaceLinkCard.mjs +121 -26
  738. package/dist/jsx/workspace/WorkspaceLinkCard.mjs.map +1 -1
  739. package/dist/jsx/workspace/WorkspaceLinkCard.native.js +126 -28
  740. package/dist/jsx/workspace/WorkspaceLinkCard.native.js.map +1 -1
  741. package/dist/jsx/workspace/WorkspaceLinkDirectory.mjs +27 -21
  742. package/dist/jsx/workspace/WorkspaceLinkDirectory.mjs.map +1 -1
  743. package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js +32 -23
  744. package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  745. package/dist/jsx/workspace/WorkspaceNumberCard.mjs +1 -1
  746. package/dist/jsx/workspace/WorkspaceNumberCard.mjs.map +1 -1
  747. package/dist/jsx/workspace/WorkspaceNumberCard.native.js +1 -1
  748. package/dist/jsx/workspace/WorkspaceNumberCard.native.js.map +1 -1
  749. package/dist/jsx/workspace/WorkspaceQuickList.mjs +62 -30
  750. package/dist/jsx/workspace/WorkspaceQuickList.mjs.map +1 -1
  751. package/dist/jsx/workspace/WorkspaceQuickList.native.js +65 -32
  752. package/dist/jsx/workspace/WorkspaceQuickList.native.js.map +1 -1
  753. package/dist/jsx/workspace/WorkspaceRecents.mjs +9 -1
  754. package/dist/jsx/workspace/WorkspaceRecents.mjs.map +1 -1
  755. package/dist/jsx/workspace/WorkspaceRecents.native.js +8 -0
  756. package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -1
  757. package/dist/jsx/workspace/WorkspaceShortcut.mjs +11 -1
  758. package/dist/jsx/workspace/WorkspaceShortcut.mjs.map +1 -1
  759. package/dist/jsx/workspace/WorkspaceShortcut.native.js +10 -0
  760. package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -1
  761. package/dist/jsx/workspace/parseContent.mjs +21 -1
  762. package/dist/jsx/workspace/parseContent.mjs.map +1 -1
  763. package/dist/jsx/workspace/parseContent.native.js +24 -0
  764. package/dist/jsx/workspace/parseContent.native.js.map +1 -1
  765. package/package.json +14 -14
  766. package/src/chrome/BackofficeAwesomebar.tsx +1 -0
  767. package/src/chrome/CommandPalette.spec.tsx +66 -12
  768. package/src/chrome/CommandPalette.tsx +139 -37
  769. package/src/chrome/HelpMenu.tsx +48 -67
  770. package/src/chrome/awesomebar-data.spec.ts +46 -0
  771. package/src/chrome/awesomebar-data.tsx +62 -12
  772. package/src/chrome/command-palette-model.ts +2 -2
  773. package/src/chrome/notifications-data.tsx +2 -0
  774. package/src/chrome/notifications-panel.tsx +21 -5
  775. package/src/chrome/shortcuts.ts +2 -0
  776. package/src/config/BackofficeProvider.tsx +15 -0
  777. package/src/form/DocFormScreen.tsx +169 -15
  778. package/src/form/FormConnections.tsx +34 -5
  779. package/src/form/FormDialogs.tsx +117 -3
  780. package/src/form/FormErrorBoundary.spec.tsx +1 -0
  781. package/src/form/FormErrorBoundary.tsx +32 -9
  782. package/src/form/FormSidebarPanel.spec.tsx +57 -0
  783. package/src/form/FormSidebarPanel.tsx +69 -14
  784. package/src/form/FormTimeline.optimistic.spec.tsx +187 -0
  785. package/src/form/FormTimeline.tsx +246 -28
  786. package/src/form/FormToolbar.tsx +73 -2
  787. package/src/form/formActions.ts +4 -0
  788. package/src/form/formLayout.ts +3 -14
  789. package/src/form/platformHooks.ts +57 -0
  790. package/src/form/timeline-entries.spec.ts +180 -0
  791. package/src/form/timeline-entries.tsx +84 -15
  792. package/src/i18n/en.ts +32 -9
  793. package/src/index.ts +14 -1
  794. package/src/list/AddTagsDialog.tsx +10 -5
  795. package/src/list/AssignToDialog.tsx +5 -2
  796. package/src/list/DoctypeListScreen.tsx +208 -209
  797. package/src/list/ListFilterBar.tsx +61 -26
  798. package/src/list/ListSidebar.tsx +24 -24
  799. package/src/list/bulk-edit-dialog.tsx +10 -5
  800. package/src/list/filter-fields.spec.ts +29 -0
  801. package/src/list/filter-fields.tsx +22 -2
  802. package/src/list/filter-saved.tsx +16 -16
  803. package/src/list/filter-sort.tsx +5 -2
  804. package/src/list/filter-standard.tsx +1 -1
  805. package/src/list/listColumns.tsx +307 -114
  806. package/src/list/listFields.spec.ts +16 -2
  807. package/src/list/listFields.ts +11 -0
  808. package/src/list/listUrlState.spec.ts +10 -0
  809. package/src/list/sidebar-section.spec.tsx +28 -0
  810. package/src/list/sidebar-section.tsx +57 -14
  811. package/src/oneAdapter/index.tsx +13 -1
  812. package/src/quickEntry/quickEntryPlan.ts +2 -6
  813. package/src/report/DoctypeReportView.tsx +3 -3
  814. package/src/report/QueryReportScreen.spec.tsx +74 -0
  815. package/src/report/QueryReportScreen.tsx +159 -121
  816. package/src/report/queryReportColumns.tsx +17 -0
  817. package/src/report/queryReportFilterBar.spec.tsx +139 -0
  818. package/src/report/queryReportFilterBar.tsx +315 -0
  819. package/src/report/queryReportUrlState.spec.ts +61 -0
  820. package/src/report/queryReportUrlState.ts +68 -0
  821. package/src/report/report-grid.spec.tsx +175 -0
  822. package/src/report/report-grid.tsx +211 -48
  823. package/src/report/report-toolbar.spec.tsx +90 -0
  824. package/src/report/report-toolbar.tsx +13 -10
  825. package/src/report/reportShapes.spec.ts +291 -1
  826. package/src/report/reportShapes.ts +398 -18
  827. package/src/report/reportViewModel.spec.ts +55 -0
  828. package/src/report/reportViewModel.ts +27 -8
  829. package/src/report/useQueryReport.ts +99 -37
  830. package/src/shared/deskLinks.spec.ts +38 -0
  831. package/src/shared/deskLinks.ts +31 -0
  832. package/src/shared/listNavContext.spec.ts +83 -0
  833. package/src/shared/listNavContext.ts +115 -0
  834. package/src/shared/useDocinfo.ts +79 -2
  835. package/src/shared/useDoctypeMeta.ts +4 -0
  836. package/src/shared/useFrappeApp.ts +12 -3
  837. package/src/shell/BackofficeShell.spec.tsx +43 -0
  838. package/src/shell/BackofficeShell.tsx +93 -24
  839. package/src/shell/WorkspaceSidebar.spec.tsx +82 -0
  840. package/src/shell/WorkspaceSidebar.tsx +130 -3
  841. package/src/shell/useWorkspaces.ts +2 -0
  842. package/src/shell/workspaceIcons.ts +17 -2
  843. package/src/views/CalendarView.tsx +2 -5
  844. package/src/views/DoctypeViewScreen.tsx +3 -1
  845. package/src/views/KanbanView.tsx +7 -1
  846. package/src/views/ViewHeader.tsx +63 -99
  847. package/src/views/ViewSwitcherMenu.spec.tsx +44 -0
  848. package/src/views/ViewSwitcherMenu.tsx +92 -0
  849. package/src/views/connection.ts +8 -2
  850. package/src/views/dashboard-data.tsx +2 -3
  851. package/src/views/kanban-board-controls.tsx +9 -11
  852. package/src/views/viewAvailability.spec.ts +199 -0
  853. package/src/views/viewAvailability.ts +85 -0
  854. package/src/workspace/WorkspaceLinkCard.tsx +118 -22
  855. package/src/workspace/WorkspaceLinkDirectory.tsx +32 -27
  856. package/src/workspace/WorkspaceNumberCard.tsx +1 -1
  857. package/src/workspace/WorkspaceQuickList.tsx +54 -37
  858. package/src/workspace/WorkspaceRecents.tsx +5 -1
  859. package/src/workspace/WorkspaceShortcut.tsx +7 -1
  860. package/src/workspace/parseContent.spec.ts +89 -0
  861. package/src/workspace/parseContent.ts +32 -0
  862. package/types/chrome/BackofficeAwesomebar.d.ts.map +1 -1
  863. package/types/chrome/CommandPalette.d.ts.map +1 -1
  864. package/types/chrome/HelpMenu.d.ts.map +1 -1
  865. package/types/chrome/awesomebar-data.d.ts +9 -2
  866. package/types/chrome/awesomebar-data.d.ts.map +1 -1
  867. package/types/chrome/command-palette-model.d.ts.map +1 -1
  868. package/types/chrome/notifications-data.d.ts.map +1 -1
  869. package/types/chrome/notifications-panel.d.ts.map +1 -1
  870. package/types/chrome/shortcuts.d.ts.map +1 -1
  871. package/types/config/BackofficeProvider.d.ts +13 -0
  872. package/types/config/BackofficeProvider.d.ts.map +1 -1
  873. package/types/form/DocFormScreen.d.ts.map +1 -1
  874. package/types/form/FormConnections.d.ts.map +1 -1
  875. package/types/form/FormDialogs.d.ts +14 -0
  876. package/types/form/FormDialogs.d.ts.map +1 -1
  877. package/types/form/FormErrorBoundary.d.ts +0 -5
  878. package/types/form/FormErrorBoundary.d.ts.map +1 -1
  879. package/types/form/FormSidebarPanel.d.ts +22 -0
  880. package/types/form/FormSidebarPanel.d.ts.map +1 -1
  881. package/types/form/FormTimeline.d.ts.map +1 -1
  882. package/types/form/FormToolbar.d.ts +19 -2
  883. package/types/form/FormToolbar.d.ts.map +1 -1
  884. package/types/form/formActions.d.ts +4 -0
  885. package/types/form/formActions.d.ts.map +1 -1
  886. package/types/form/formLayout.d.ts.map +1 -1
  887. package/types/form/platformHooks.d.ts +11 -0
  888. package/types/form/platformHooks.d.ts.map +1 -1
  889. package/types/form/timeline-entries.d.ts +19 -3
  890. package/types/form/timeline-entries.d.ts.map +1 -1
  891. package/types/i18n/en.d.ts +30 -9
  892. package/types/i18n/en.d.ts.map +1 -1
  893. package/types/index.d.ts +8 -3
  894. package/types/index.d.ts.map +1 -1
  895. package/types/list/AddTagsDialog.d.ts.map +1 -1
  896. package/types/list/AssignToDialog.d.ts.map +1 -1
  897. package/types/list/DoctypeListScreen.d.ts +1 -1
  898. package/types/list/DoctypeListScreen.d.ts.map +1 -1
  899. package/types/list/ListFilterBar.d.ts +12 -1
  900. package/types/list/ListFilterBar.d.ts.map +1 -1
  901. package/types/list/bulk-edit-dialog.d.ts.map +1 -1
  902. package/types/list/filter-fields.d.ts +4 -1
  903. package/types/list/filter-fields.d.ts.map +1 -1
  904. package/types/list/filter-saved.d.ts +1 -1
  905. package/types/list/filter-saved.d.ts.map +1 -1
  906. package/types/list/filter-sort.d.ts.map +1 -1
  907. package/types/list/listColumns.d.ts +8 -1
  908. package/types/list/listColumns.d.ts.map +1 -1
  909. package/types/list/listFields.d.ts +2 -0
  910. package/types/list/listFields.d.ts.map +1 -1
  911. package/types/list/sidebar-section.d.ts +4 -1
  912. package/types/list/sidebar-section.d.ts.map +1 -1
  913. package/types/oneAdapter/index.d.ts.map +1 -1
  914. package/types/quickEntry/quickEntryPlan.d.ts.map +1 -1
  915. package/types/report/QueryReportScreen.d.ts +1 -1
  916. package/types/report/QueryReportScreen.d.ts.map +1 -1
  917. package/types/report/queryReportColumns.d.ts +2 -0
  918. package/types/report/queryReportColumns.d.ts.map +1 -1
  919. package/types/report/queryReportFilterBar.d.ts +22 -0
  920. package/types/report/queryReportFilterBar.d.ts.map +1 -0
  921. package/types/report/queryReportUrlState.d.ts +29 -0
  922. package/types/report/queryReportUrlState.d.ts.map +1 -0
  923. package/types/report/report-grid.d.ts.map +1 -1
  924. package/types/report/report-toolbar.d.ts.map +1 -1
  925. package/types/report/reportShapes.d.ts +49 -2
  926. package/types/report/reportShapes.d.ts.map +1 -1
  927. package/types/report/reportViewModel.d.ts +7 -3
  928. package/types/report/reportViewModel.d.ts.map +1 -1
  929. package/types/report/useQueryReport.d.ts +10 -5
  930. package/types/report/useQueryReport.d.ts.map +1 -1
  931. package/types/shared/deskLinks.d.ts +16 -0
  932. package/types/shared/deskLinks.d.ts.map +1 -0
  933. package/types/shared/listNavContext.d.ts +33 -0
  934. package/types/shared/listNavContext.d.ts.map +1 -0
  935. package/types/shared/useDocinfo.d.ts +14 -0
  936. package/types/shared/useDocinfo.d.ts.map +1 -1
  937. package/types/shared/useDoctypeMeta.d.ts +4 -0
  938. package/types/shared/useDoctypeMeta.d.ts.map +1 -1
  939. package/types/shared/useFrappeApp.d.ts.map +1 -1
  940. package/types/shell/BackofficeShell.d.ts.map +1 -1
  941. package/types/shell/WorkspaceSidebar.d.ts.map +1 -1
  942. package/types/shell/useWorkspaces.d.ts.map +1 -1
  943. package/types/shell/workspaceIcons.d.ts +1 -1
  944. package/types/shell/workspaceIcons.d.ts.map +1 -1
  945. package/types/views/CalendarView.d.ts.map +1 -1
  946. package/types/views/DoctypeViewScreen.d.ts.map +1 -1
  947. package/types/views/KanbanView.d.ts.map +1 -1
  948. package/types/views/ViewHeader.d.ts +6 -6
  949. package/types/views/ViewHeader.d.ts.map +1 -1
  950. package/types/views/ViewSwitcherMenu.d.ts +14 -0
  951. package/types/views/ViewSwitcherMenu.d.ts.map +1 -0
  952. package/types/views/connection.d.ts +4 -0
  953. package/types/views/connection.d.ts.map +1 -1
  954. package/types/views/dashboard-data.d.ts.map +1 -1
  955. package/types/views/kanban-board-controls.d.ts +3 -2
  956. package/types/views/kanban-board-controls.d.ts.map +1 -1
  957. package/types/views/viewAvailability.d.ts +27 -0
  958. package/types/views/viewAvailability.d.ts.map +1 -0
  959. package/types/workspace/WorkspaceLinkCard.d.ts +7 -1
  960. package/types/workspace/WorkspaceLinkCard.d.ts.map +1 -1
  961. package/types/workspace/WorkspaceLinkDirectory.d.ts +1 -6
  962. package/types/workspace/WorkspaceLinkDirectory.d.ts.map +1 -1
  963. package/types/workspace/WorkspaceQuickList.d.ts.map +1 -1
  964. package/types/workspace/WorkspaceRecents.d.ts.map +1 -1
  965. package/types/workspace/WorkspaceShortcut.d.ts.map +1 -1
  966. package/types/workspace/parseContent.d.ts +18 -0
  967. package/types/workspace/parseContent.d.ts.map +1 -1
@@ -32,6 +32,9 @@ import {
32
32
  import { useLayoutSizeClass, useResolvedKnobs } from "@multiplatform.one/theme";
33
33
  import {
34
34
  ArrowCounterClockwiseIcon,
35
+ ArrowSquareOutIcon,
36
+ CaretLeftIcon,
37
+ CaretRightIcon,
35
38
  CheckCircleIcon,
36
39
  CopyIcon,
37
40
  DotsThreeIcon,
@@ -39,6 +42,7 @@ import {
39
42
  FloppyDiskIcon,
40
43
  LinkIcon,
41
44
  ListBulletsIcon,
45
+ MagnifyingGlassIcon,
42
46
  PencilSimpleIcon,
43
47
  PlusIcon,
44
48
  PrinterIcon,
@@ -197,7 +201,9 @@ export interface FormToolbarMenuItem {
197
201
  | "email"
198
202
  | "links"
199
203
  | "new"
200
- | "list";
204
+ | "list"
205
+ | "desk"
206
+ | "jump";
201
207
  destructive?: boolean;
202
208
  disabled?: boolean;
203
209
  disabledReason?: string;
@@ -233,6 +239,23 @@ export interface FormToolbarProps {
233
239
  * menu item's action so existing consumers get the button for free.
234
240
  */
235
241
  onReload?: () => void;
242
+ /**
243
+ * "Open in Desk" hop — the document's native desk counterpart. Renders a
244
+ * standalone icon button on wide viewports (narrow keeps the ⋯ menu's
245
+ * `desk` entry as the only affordance, like Refresh).
246
+ */
247
+ onOpenDesk?: () => void;
248
+ /**
249
+ * Prev/next document pager (desk ‹ › parity) — pages through the list
250
+ * order the user came from. The pair renders only when the composing
251
+ * screen resolved a list context (no dead arrows on deep links); a
252
+ * boundary endpoint renders disabled instead of hiding (LC-40 honest
253
+ * disabled chrome keeps the pair spatially stable).
254
+ */
255
+ onPrevDoc?: () => void;
256
+ onNextDoc?: () => void;
257
+ prevDocDisabled?: boolean;
258
+ nextDocDisabled?: boolean;
236
259
  }
237
260
 
238
261
  const MENU_ICONS = {
@@ -245,6 +268,8 @@ const MENU_ICONS = {
245
268
  links: LinkIcon,
246
269
  new: PlusIcon,
247
270
  list: ListBulletsIcon,
271
+ desk: ArrowSquareOutIcon,
272
+ jump: MagnifyingGlassIcon,
248
273
  } as const;
249
274
 
250
275
  type LifecycleAction = "save" | "submit" | "cancel" | "amend";
@@ -267,6 +292,11 @@ export function FormToolbar({
267
292
  onAmend,
268
293
  menuItems,
269
294
  onReload,
295
+ onOpenDesk,
296
+ onPrevDoc,
297
+ onNextDoc,
298
+ prevDocDisabled,
299
+ nextDocDisabled,
270
300
  }: FormToolbarProps) {
271
301
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
272
302
  const { knobProps } = useResolvedKnobs();
@@ -360,7 +390,7 @@ export function FormToolbar({
360
390
  <Text
361
391
  role="heading"
362
392
  aria-level={1}
363
- fontSize="$7"
393
+ fontSize="$6"
364
394
  fontWeight="700"
365
395
  color="$color12"
366
396
  numberOfLines={1}
@@ -377,6 +407,47 @@ export function FormToolbar({
377
407
  </XStack>
378
408
 
379
409
  <XStack alignItems="center" gap="$2" flexShrink={0}>
410
+ {(onPrevDoc || onNextDoc) && !isNarrow && (
411
+ <XStack
412
+ overflow="hidden"
413
+ {...knobProps.borderRadius}
414
+ borderWidth={1}
415
+ borderColor="$borderColor"
416
+ >
417
+ <Button
418
+ size={knobProps.sizeToken}
419
+ outlined
420
+ borderWidth={0}
421
+ borderRadius={0}
422
+ icon={<CaretLeftIcon size={16} />}
423
+ aria-label={t("prevDoc", "Previous document")}
424
+ disabled={prevDocDisabled}
425
+ onPress={onPrevDoc}
426
+ testID="form-toolbar-prev"
427
+ />
428
+ <Button
429
+ size={knobProps.sizeToken}
430
+ outlined
431
+ borderWidth={0}
432
+ borderRadius={0}
433
+ icon={<CaretRightIcon size={16} />}
434
+ aria-label={t("nextDoc", "Next document")}
435
+ disabled={nextDocDisabled}
436
+ onPress={onNextDoc}
437
+ testID="form-toolbar-next"
438
+ />
439
+ </XStack>
440
+ )}
441
+ {onOpenDesk && !isNarrow && (
442
+ <Button
443
+ size={knobProps.sizeToken}
444
+ outlined
445
+ icon={<ArrowSquareOutIcon size={16} />}
446
+ aria-label={t("openInDesk", "Open in Desk")}
447
+ onPress={onOpenDesk}
448
+ testID="form-toolbar-desk"
449
+ />
450
+ )}
380
451
  {reload && !isNarrow && (
381
452
  <Button
382
453
  size={knobProps.sizeToken}
@@ -37,6 +37,10 @@ import type { FixtureProvider } from "@multiplatform.one/frappe";
37
37
  export interface FrappeConnection {
38
38
  baseURL: string;
39
39
  socketPort?: number;
40
+ /** Same-origin socket override (see FrappeConfig.socketBaseURL). */
41
+ socketBaseURL?: string;
42
+ /** Frappe site name — the realtime Socket.IO namespace. */
43
+ siteName?: string;
40
44
  auth?: {
41
45
  useToken?: boolean;
42
46
  token?: string | (() => string | Promise<string>);
@@ -29,6 +29,7 @@
29
29
  * empty card.
30
30
  */
31
31
 
32
+ import { formatCalendarDate } from "@multiplatform.one/theme";
32
33
  import type { FieldSchema, FormSchema, FormSection } from "@multiplatform.one/frappe-ui";
33
34
  import { evaluateDependsOn } from "./dependsOn";
34
35
  import { canReadLevel, canWriteLevel, type PermLevelMatrix } from "./fieldPermissions";
@@ -289,20 +290,8 @@ export function buildFormTabs(options: BuildTabsOptions): FormTab[] {
289
290
  const LAYOUT_TYPES = new Set(["Section Break", "Column Break", "Tab Break", "Fold"]);
290
291
  const NUMERIC_TYPES = new Set(["Int", "Float", "Currency", "Percent", "Check", "Rating"]);
291
292
 
292
- function todayISO(): string {
293
- const now = new Date();
294
- const month = String(now.getMonth() + 1).padStart(2, "0");
295
- const day = String(now.getDate()).padStart(2, "0");
296
- return `${now.getFullYear()}-${month}-${day}`;
297
- }
298
-
299
- function nowTime(): string {
300
- const now = new Date();
301
- const hours = String(now.getHours()).padStart(2, "0");
302
- const minutes = String(now.getMinutes()).padStart(2, "0");
303
- const seconds = String(now.getSeconds()).padStart(2, "0");
304
- return `${hours}:${minutes}:${seconds}`;
305
- }
293
+ const todayISO = () => formatCalendarDate(new Date());
294
+ const nowTime = () => formatCalendarDate(new Date(), "time");
306
295
 
307
296
  /**
308
297
  * Seed a create-mode doc from meta field defaults — desk parity with
@@ -33,6 +33,39 @@ export function useSaveShortcut(enabled: boolean, onSave: () => void): void {
33
33
  }, [enabled]);
34
34
  }
35
35
 
36
+ /**
37
+ * Ctrl/Cmd+↑ / Ctrl/Cmd+↓ → previous / next document (web only — desk's
38
+ * form pager shortcuts). Enabled only while the pager has list context, so
39
+ * the browser's default scroll behavior survives everywhere else.
40
+ */
41
+ export function useDocPagerShortcuts(
42
+ enabled: boolean,
43
+ onPrev: () => void,
44
+ onNext: () => void,
45
+ ): void {
46
+ const handlersRef = useRef({ onPrev, onNext });
47
+ handlersRef.current = { onPrev, onNext };
48
+
49
+ useEffect(() => {
50
+ if (!enabled) return;
51
+ if (typeof document === "undefined" || typeof document.addEventListener !== "function") {
52
+ return;
53
+ }
54
+ const handler = (event: KeyboardEvent) => {
55
+ if (!(event.metaKey || event.ctrlKey) || event.shiftKey || event.altKey) return;
56
+ if (event.key === "ArrowUp") {
57
+ event.preventDefault();
58
+ handlersRef.current.onPrev();
59
+ } else if (event.key === "ArrowDown") {
60
+ event.preventDefault();
61
+ handlersRef.current.onNext();
62
+ }
63
+ };
64
+ document.addEventListener("keydown", handler);
65
+ return () => document.removeEventListener("keydown", handler);
66
+ }, [enabled]);
67
+ }
68
+
36
69
  const NOOP_BLOCKER: BackofficeNavigationBlocker = {
37
70
  blocked: false,
38
71
  proceed: () => {},
@@ -90,3 +123,27 @@ export function openInNewTab(url: string): boolean {
90
123
  export function canOpenNewTab(): boolean {
91
124
  return true;
92
125
  }
126
+
127
+ /**
128
+ * Ctrl/Cmd+J → Jump to field (web only — desk's form shortcut). Disabled
129
+ * while the jump dialog is already open so the search field can type "j".
130
+ */
131
+ export function useJumpToFieldShortcut(enabled: boolean, onJump: () => void): void {
132
+ const jumpRef = useRef(onJump);
133
+ jumpRef.current = onJump;
134
+
135
+ useEffect(() => {
136
+ if (!enabled) return;
137
+ if (typeof document === "undefined" || typeof document.addEventListener !== "function") {
138
+ return;
139
+ }
140
+ const handler = (event: KeyboardEvent) => {
141
+ if (!(event.metaKey || event.ctrlKey) || event.shiftKey || event.altKey) return;
142
+ if (event.key.toLowerCase() !== "j") return;
143
+ event.preventDefault();
144
+ jumpRef.current();
145
+ };
146
+ document.addEventListener("keydown", handler);
147
+ return () => document.removeEventListener("keydown", handler);
148
+ }, [enabled]);
149
+ }
@@ -0,0 +1,180 @@
1
+ // Pins the timeline's version-diff contract (desk parity: edits show
2
+ // `field: old → new`): parseVersionData extracts display-safe from/to values
3
+ // (HTML stripped, long values truncated, rich-only markup flagged) and
4
+ // versionSummary renders them for single AND multi-field changes with
5
+ // honest placeholders — never raw markup, never a bare field-name list
6
+ // that hides the values.
7
+ import { describe, expect, it } from "vitest";
8
+ import {
9
+ buildTimelineFeed,
10
+ parseVersionData,
11
+ versionSummary,
12
+ type TimelineTranslate,
13
+ } from "./timeline-entries";
14
+
15
+ /** Interpolating fake translate — applies the defaultValue template. */
16
+ const translate: TimelineTranslate = (_key, options) => {
17
+ let out = options.defaultValue;
18
+ for (const [key, value] of Object.entries(options)) {
19
+ if (key === "defaultValue") continue;
20
+ out = out.split(`{{${key}}}`).join(String(value));
21
+ }
22
+ return out;
23
+ };
24
+
25
+ const data = (payload: unknown) => JSON.stringify(payload);
26
+
27
+ describe("parseVersionData", () => {
28
+ it("extracts from/to for changed fields", () => {
29
+ const parsed = parseVersionData(data({ changed: [["status", "Open", "Closed"]] }));
30
+ expect(parsed?.changed).toEqual([{ field: "status", from: "Open", to: "Closed" }]);
31
+ });
32
+
33
+ it("strips HTML markup from rich-text values (never raw tags in the feed)", () => {
34
+ const parsed = parseVersionData(
35
+ data({ changed: [["description", "<p>old copy</p>", "<div>new <b>copy</b></div>"]] }),
36
+ );
37
+ expect(parsed?.changed).toEqual([{ field: "description", from: "old copy", to: "new copy" }]);
38
+ });
39
+
40
+ it("flags rich markup with no extractable text instead of faking empty", () => {
41
+ const parsed = parseVersionData(
42
+ data({ changed: [["description", '<img src="x.png">', "<p>now text</p>"]] }),
43
+ );
44
+ expect(parsed?.changed).toEqual([{ field: "description", fromRich: true, to: "now text" }]);
45
+ });
46
+
47
+ it("truncates long values with an ellipsis", () => {
48
+ const long = "x".repeat(80);
49
+ const parsed = parseVersionData(data({ changed: [["subject", long, "short"]] }));
50
+ const from = parsed?.changed[0]?.from ?? "";
51
+ expect(from.length).toBe(50);
52
+ expect(from.endsWith("…")).toBe(true);
53
+ });
54
+
55
+ it("treats null/undefined/empty as absent values", () => {
56
+ const parsed = parseVersionData(data({ changed: [["middle_name", "", null]] }));
57
+ expect(parsed?.changed).toEqual([{ field: "middle_name" }]);
58
+ });
59
+
60
+ it("keeps numeric and object values displayable", () => {
61
+ const parsed = parseVersionData(
62
+ data({
63
+ changed: [
64
+ ["priority", 0, 1],
65
+ ["meta", { a: 1 }, "b"],
66
+ ],
67
+ }),
68
+ );
69
+ expect(parsed?.changed[0]).toEqual({ field: "priority", from: "0", to: "1" });
70
+ expect(parsed?.changed[1]).toEqual({ field: "meta", from: '{"a":1}', to: "b" });
71
+ });
72
+
73
+ it("collects child-table field lists (deduped)", () => {
74
+ const parsed = parseVersionData(
75
+ data({
76
+ changed: [],
77
+ added: [
78
+ ["items", {}],
79
+ ["items", {}],
80
+ ["taxes", {}],
81
+ ],
82
+ removed: [["items", {}]],
83
+ row_changed: [["taxes", 0, "x", []]],
84
+ }),
85
+ );
86
+ expect(parsed?.added).toEqual(["items", "taxes"]);
87
+ expect(parsed?.removed).toEqual(["items"]);
88
+ expect(parsed?.rowChanged).toEqual(["taxes"]);
89
+ });
90
+
91
+ it("returns undefined for malformed or empty payloads", () => {
92
+ expect(parseVersionData(undefined)).toBeUndefined();
93
+ expect(parseVersionData("")).toBeUndefined();
94
+ expect(parseVersionData("{not json")).toBeUndefined();
95
+ expect(parseVersionData(data(["array-root"]))).toBeUndefined();
96
+ expect(parseVersionData(data({ changed: [] }))).toBeUndefined();
97
+ expect(parseVersionData(data({ changed: [["", "a", "b"]] }))).toBeUndefined();
98
+ });
99
+ });
100
+
101
+ describe("versionSummary", () => {
102
+ it("renders a single change as field from → to", () => {
103
+ const parsed = parseVersionData(data({ changed: [["status", "Open", "Closed"]] }));
104
+ expect(versionSummary(parsed!, translate)).toBe("changed value of Status from Open to Closed");
105
+ });
106
+
107
+ it("renders (empty) placeholders for absent sides", () => {
108
+ const parsed = parseVersionData(data({ changed: [["middle_name", "", "ParityAudit"]] }));
109
+ expect(versionSummary(parsed!, translate)).toBe(
110
+ "changed value of Middle Name from (empty) to ParityAudit",
111
+ );
112
+ });
113
+
114
+ it("renders every field's old → new in multi-field changes (desk parity)", () => {
115
+ const parsed = parseVersionData(
116
+ data({
117
+ changed: [
118
+ ["description", "<p>alpha</p>", "<p>beta</p>"],
119
+ ["status", "Open", "Closed"],
120
+ ],
121
+ }),
122
+ );
123
+ expect(versionSummary(parsed!, translate)).toBe(
124
+ "changed values for Description from alpha to beta, Status from Open to Closed",
125
+ );
126
+ });
127
+
128
+ it("renders the rich-content placeholder instead of raw markup", () => {
129
+ const parsed = parseVersionData(
130
+ data({ changed: [["description", '<img src="a.png">', "<p>text now</p>"]] }),
131
+ );
132
+ expect(versionSummary(parsed!, translate)).toBe(
133
+ "changed value of Description from (formatted content) to text now",
134
+ );
135
+ });
136
+
137
+ it("appends child-table sentences after value changes", () => {
138
+ const parsed = parseVersionData(
139
+ data({
140
+ changed: [["status", "Open", "Closed"]],
141
+ added: [["items", {}]],
142
+ removed: [["taxes", {}]],
143
+ row_changed: [["items", 0, "qty", []]],
144
+ }),
145
+ );
146
+ expect(versionSummary(parsed!, translate)).toBe(
147
+ "changed value of Status from Open to Closed, added rows for Items, " +
148
+ "removed rows for Taxes, changed rows for Items",
149
+ );
150
+ });
151
+ });
152
+
153
+ describe("buildTimelineFeed pending (optimistic) comments", () => {
154
+ it("marks __optimistic overlay rows as pending; server rows stay unmarked", () => {
155
+ const feed = buildTimelineFeed({
156
+ comments: [
157
+ {
158
+ name: "SRV-1",
159
+ creation: "2026-08-13 10:00:00",
160
+ content: "<div>confirmed</div>",
161
+ owner: "a@example.com",
162
+ },
163
+ {
164
+ name: "tmp_abc",
165
+ creation: "2026-08-13 11:00:00",
166
+ content: "<div>optimistic</div>",
167
+ owner: "a@example.com",
168
+ __optimistic: true,
169
+ },
170
+ ],
171
+ });
172
+ expect(feed).toHaveLength(2);
173
+ // Newest first: the pending row sorts by its client timestamp.
174
+ expect(feed[0].docname).toBe("tmp_abc");
175
+ expect(feed[0].pending).toBe(true);
176
+ expect(feed[0].content).toBe("optimistic");
177
+ expect(feed[1].docname).toBe("SRV-1");
178
+ expect(feed[1].pending).toBeUndefined();
179
+ });
180
+ });
@@ -24,6 +24,8 @@ export interface TimelineRowLike {
24
24
  sender_full_name?: unknown;
25
25
  subject?: unknown;
26
26
  communication_date?: unknown;
27
+ /** Optimistic overlay rows: applied locally, awaiting server ack */
28
+ __optimistic?: unknown;
27
29
  }
28
30
 
29
31
  export interface TimelineUserInfoLike {
@@ -63,6 +65,13 @@ export interface VersionFieldChange {
63
65
  field: string;
64
66
  from?: string;
65
67
  to?: string;
68
+ /**
69
+ * The raw value was rich markup with no extractable text (an image-only
70
+ * Text Editor value, say) — render an honest "(formatted content)"
71
+ * placeholder instead of pretending the value was empty or dumping tags.
72
+ */
73
+ fromRich?: boolean;
74
+ toRich?: boolean;
66
75
  }
67
76
 
68
77
  export interface ParsedVersionData {
@@ -91,6 +100,11 @@ export interface TimelineFeedEntry extends TimelineEntry {
91
100
  version?: ParsedVersionData;
92
101
  /** Epoch millis used for the newest-first sort */
93
102
  epoch: number;
103
+ /**
104
+ * Applied locally, awaiting server ack (Axiom 6 HONEST STATE: renders
105
+ * visible but distinct; row actions are withheld until identity is real).
106
+ */
107
+ pending?: boolean;
94
108
  }
95
109
 
96
110
  interface BuildOptions {
@@ -144,17 +158,37 @@ function timestampFields(raw: unknown): TimestampFields {
144
158
  };
145
159
  }
146
160
 
147
- function displayValue(value: unknown): string | undefined {
148
- if (value === null || value === undefined) return undefined;
161
+ interface DisplayValue {
162
+ text?: string;
163
+ /** Non-empty rich markup that strips to no text (image-only HTML etc.) */
164
+ rich?: boolean;
165
+ }
166
+
167
+ /** Looks like markup (an opening/closing tag) — worth an htmlToText pass. */
168
+ const HTML_TAG = /<[a-z!/][^>]*>/i;
169
+
170
+ /**
171
+ * Display form of a version diff value: objects JSON-stringify, HTML strips
172
+ * to its text (Text Editor / HTML fields must never leak raw markup into
173
+ * the feed), and everything truncates. Markup with no extractable text
174
+ * flags `rich` so the renderer can show an honest placeholder.
175
+ */
176
+ function displayValue(value: unknown): DisplayValue {
177
+ if (value === null || value === undefined) return {};
149
178
  if (typeof value === "object") {
150
179
  try {
151
- return truncateText(JSON.stringify(value));
180
+ return { text: truncateText(JSON.stringify(value)) };
152
181
  } catch {
153
- return undefined;
182
+ return {};
154
183
  }
155
184
  }
156
185
  const text = String(value).trim();
157
- return text ? truncateText(text) : undefined;
186
+ if (!text) return {};
187
+ if (HTML_TAG.test(text)) {
188
+ const stripped = htmlToText(text);
189
+ return stripped ? { text: truncateText(stripped) } : { rich: true };
190
+ }
191
+ return { text: truncateText(text) };
158
192
  }
159
193
 
160
194
  // ── version data parsing ───────────────────────────────────────────────────
@@ -179,7 +213,15 @@ export function parseVersionData(data: unknown): ParsedVersionData | undefined {
179
213
  if (!Array.isArray(row) || row.length === 0) continue;
180
214
  const field = str(row[0]);
181
215
  if (!field) continue;
182
- changed.push({ field, from: displayValue(row[1]), to: displayValue(row[2]) });
216
+ const from = displayValue(row[1]);
217
+ const to = displayValue(row[2]);
218
+ changed.push({
219
+ field,
220
+ ...(from.text !== undefined ? { from: from.text } : {}),
221
+ ...(to.text !== undefined ? { to: to.text } : {}),
222
+ ...(from.rich ? { fromRich: true } : {}),
223
+ ...(to.rich ? { toRich: true } : {}),
224
+ });
183
225
  }
184
226
  }
185
227
  const tableFields = (value: unknown): string[] => {
@@ -205,31 +247,57 @@ export type TimelineTranslate = (
205
247
  ) => string;
206
248
 
207
249
  /**
208
- * Desk-parity version sentence: single field change reads
209
- * "changed value of X from a to b"; multi-field and child-table changes
210
- * collapse to field lists ("changed values for X, Y" / "added rows for Z").
250
+ * Display form of one side of a field change: value text, or an honest
251
+ * placeholder "(empty)" for a truly empty value, "(formatted content)"
252
+ * for rich markup that strips to no text (never the raw tags).
253
+ */
254
+ function changeSideLabel(
255
+ text: string | undefined,
256
+ rich: boolean | undefined,
257
+ translate: TimelineTranslate,
258
+ ): string {
259
+ if (text !== undefined) return text;
260
+ if (rich) {
261
+ return translate("timeline.richContent", { defaultValue: "(formatted content)" });
262
+ }
263
+ return translate("timeline.emptyValue", { defaultValue: "(empty)" });
264
+ }
265
+
266
+ /**
267
+ * Desk-parity version sentence: every changed field renders its old → new
268
+ * values ("changed value of X from a to b"; multi-field changes list each
269
+ * field's from/to). Child-table changes stay field lists ("added rows for
270
+ * Z"). Values arrive pre-truncated and markup-stripped from
271
+ * parseVersionData.
211
272
  */
212
273
  export function versionSummary(version: ParsedVersionData, translate: TimelineTranslate): string {
213
274
  const parts: string[] = [];
214
275
  const fieldList = (fields: string[]) => fields.map(humanizeFieldname).join(", ");
215
276
  if (version.changed.length === 1) {
216
277
  const change = version.changed[0];
217
- const empty = translate("timeline.emptyValue", {
218
- defaultValue: "(empty)",
219
- });
220
278
  parts.push(
221
279
  translate("timeline.changedValue", {
222
280
  defaultValue: "changed value of {{field}} from {{from}} to {{to}}",
223
281
  field: humanizeFieldname(change.field),
224
- from: change.from ?? empty,
225
- to: change.to ?? empty,
282
+ from: changeSideLabel(change.from, change.fromRich, translate),
283
+ to: changeSideLabel(change.to, change.toRich, translate),
226
284
  }),
227
285
  );
228
286
  } else if (version.changed.length > 1) {
287
+ // Desk shows each field's from → to; keep that honesty here instead of
288
+ // collapsing to bare field names.
289
+ const fragments = version.changed.map((change) =>
290
+ translate("timeline.changedValueItem", {
291
+ defaultValue: "{{field}} from {{from}} to {{to}}",
292
+ field: humanizeFieldname(change.field),
293
+ from: changeSideLabel(change.from, change.fromRich, translate),
294
+ to: changeSideLabel(change.to, change.toRich, translate),
295
+ }),
296
+ );
229
297
  parts.push(
230
298
  translate("timeline.changedValues", {
231
299
  defaultValue: "changed values for {{fields}}",
232
- fields: fieldList(version.changed.map((change) => change.field)),
300
+ fields: fragments.join(", "),
233
301
  }),
234
302
  );
235
303
  }
@@ -276,6 +344,7 @@ function commentEntry(row: TimelineRowLike, options: BuildOptions): TimelineFeed
276
344
  ...timestampFields(row.creation),
277
345
  content: htmlToText(html),
278
346
  html,
347
+ ...(row.__optimistic === true ? { pending: true } : {}),
279
348
  };
280
349
  }
281
350
 
package/src/i18n/en.ts CHANGED
@@ -87,11 +87,25 @@ export const en = {
87
87
  workspaceEmpty: "This workspace is empty",
88
88
  workspaceEmptyDescription: "No blocks have been added to {{workspace}} yet",
89
89
  workspaceShortcuts: "Shortcuts",
90
+ // Form surface (flat keys — DocFormScreen/FormToolbar vocabulary).
91
+ savedToast: "Saved",
92
+ submittedToast: "Submitted",
93
+ cancelledToast: "Cancelled",
94
+ prevDoc: "Previous document",
95
+ nextDoc: "Next document",
96
+ validationSummary_one: "Cannot save — {{count}} required field is missing.",
97
+ validationSummary_other: "Cannot save — {{count}} required fields are missing.",
98
+ timeline: {
99
+ changedValueItem: "{{field}} from {{from}} to {{to}}",
100
+ richContent: "(formatted content)",
101
+ },
90
102
  list: {
91
- assignBody: "Assign {{count}} selected document(s)",
103
+ assignBody_one: "Assign {{count}} selected document",
104
+ assignBody_other: "Assign {{count}} selected documents",
92
105
  assignComment: "Comment",
93
106
  assignConfirm: "Assign",
94
- assignDone: "Assigned {{count}} document(s) to {{user}}",
107
+ assignDone_one: "Assigned {{count}} document to {{user}}",
108
+ assignDone_other: "Assigned {{count}} documents to {{user}}",
95
109
  assignFailed: "Assignment failed",
96
110
  assignTitle: "Assign To",
97
111
  assignUser: "Assign to user",
@@ -118,13 +132,16 @@ export const en = {
118
132
  docstatusPartial: "Processed {{count}} of {{total}} documents; failed: {{names}}",
119
133
  docstatusQueued_one: "{{action}} of {{count}} document queued in the background",
120
134
  docstatusQueued_other: "{{action}} of {{count}} documents queued in the background",
121
- editBody: "Set one field on {{count}} selected document(s)",
135
+ editBody_one: "Set one field on {{count}} selected document",
136
+ editBody_other: "Set one field on {{count}} selected documents",
122
137
  editConfirm: "Update",
123
- editDone: "Updated {{field}} on {{count}} document(s)",
138
+ editDone_one: "Updated {{field}} on {{count}} document",
139
+ editDone_other: "Updated {{field}} on {{count}} documents",
124
140
  editFailed: "Bulk edit failed",
125
141
  editField: "Field",
126
142
  editFieldPlaceholder: "Select a field",
127
- editPartial: "Updated {{ok}} document(s); {{failed}} failed ({{names}})",
143
+ editPartial_one: "Updated {{count}} document; {{failed}} failed ({{names}})",
144
+ editPartial_other: "Updated {{count}} documents; {{failed}} failed ({{names}})",
128
145
  editPickField: "Pick a field to update",
129
146
  editSelectPlaceholder: "Select a value",
130
147
  editTitle: "Bulk Edit",
@@ -213,12 +230,15 @@ export const en = {
213
230
  submitDone_one: "Submitted {{count}} document",
214
231
  submitDone_other: "Submitted {{count}} documents",
215
232
  submitTitle: "Submit documents",
216
- tagBody: "Tag {{count}} selected document(s)",
233
+ tagBody_one: "Tag {{count}} selected document",
234
+ tagBody_other: "Tag {{count}} selected documents",
217
235
  tagConfirm: "Add Tag",
218
- tagDone: 'Added tag "{{tag}}" to {{count}} document(s)',
236
+ tagDone_one: 'Added tag "{{tag}}" to {{count}} document',
237
+ tagDone_other: 'Added tag "{{tag}}" to {{count}} documents',
219
238
  tagFailed: "Tagging failed",
220
239
  tagField: "Tag",
221
- tagPartial: "Tagged {{ok}} document(s); {{failed}} failed ({{names}})",
240
+ tagPartial_one: "Tagged {{count}} document; {{failed}} failed ({{names}})",
241
+ tagPartial_other: "Tagged {{count}} documents; {{failed}} failed ({{names}})",
222
242
  tagPlaceholder: "New or existing tag name",
223
243
  tagTitle: "Add Tags",
224
244
  tagging: "Tagging…",
@@ -244,6 +264,7 @@ export const en = {
244
264
  },
245
265
  queryReport: {
246
266
  apply: "Apply",
267
+ clearFilter: "Clear {{label}}",
247
268
  disabledDescription: "Enable the report from its Report document to run it",
248
269
  disabledTitle: '"{{report}}" is disabled',
249
270
  emptyDescription: "The report ran but returned no rows",
@@ -255,8 +276,10 @@ export const en = {
255
276
  retry: "Retry",
256
277
  rowCount: "{{count}} row(s)",
257
278
  runError: 'Could not run "{{report}}"',
279
+ scriptFiltersGap:
280
+ "Some of this report's filters are defined in code and aren't supported here yet",
258
281
  scriptFiltersHint:
259
- "Some reports require filters that are declared in desk-side scripts and cannot be derived here yet",
282
+ "Some of this report's filters are declared in desk-side scripts and could not be derived here",
260
283
  selectValue: "Select...",
261
284
  },
262
285
  report: {