@multiplatform.one/backoffice 7.28.0 → 7.29.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 (759) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/chrome/BackofficeAwesomebar.native.js +1 -1
  3. package/dist/cjs/chrome/BackofficeAwesomebar.native.js.map +1 -1
  4. package/dist/cjs/chrome/CommandPalette.native.js +1 -1
  5. package/dist/cjs/chrome/CommandPalette.native.js.map +1 -1
  6. package/dist/cjs/chrome/HelpMenu.native.js +1 -1
  7. package/dist/cjs/chrome/HelpMenu.native.js.map +1 -1
  8. package/dist/cjs/chrome/NotificationsButton.native.js +1 -1
  9. package/dist/cjs/chrome/NotificationsButton.native.js.map +1 -1
  10. package/dist/cjs/chrome/UserMenu.native.js +1 -1
  11. package/dist/cjs/chrome/UserMenu.native.js.map +1 -1
  12. package/dist/cjs/chrome/awesomebar-data.native.js.map +1 -1
  13. package/dist/cjs/chrome/command-palette-model.native.js +1 -1
  14. package/dist/cjs/chrome/command-palette-model.native.js.map +1 -1
  15. package/dist/cjs/chrome/help-about-dialog.native.js +1 -1
  16. package/dist/cjs/chrome/help-about-dialog.native.js.map +1 -1
  17. package/dist/cjs/chrome/help-shortcuts-dialog.native.js +1 -1
  18. package/dist/cjs/chrome/help-shortcuts-dialog.native.js.map +1 -1
  19. package/dist/cjs/chrome/notifications-data.native.js.map +1 -1
  20. package/dist/cjs/chrome/notifications-panel.native.js +1 -1
  21. package/dist/cjs/chrome/notifications-panel.native.js.map +1 -1
  22. package/dist/cjs/chrome/notifications-utils.native.js.map +1 -1
  23. package/dist/cjs/chrome/shortcuts.native.js.map +1 -1
  24. package/dist/cjs/chrome/user-session.native.js.map +1 -1
  25. package/dist/cjs/config/BackofficeProvider.native.js +1 -1
  26. package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
  27. package/dist/cjs/config/capabilities.native.js.map +1 -1
  28. package/dist/cjs/config/events.native.js.map +1 -1
  29. package/dist/cjs/config/slots.native.js.map +1 -1
  30. package/dist/cjs/desk/Desk.native.js.map +1 -1
  31. package/dist/cjs/desk/DeskSurface.native.js.map +1 -1
  32. package/dist/cjs/desk/resolveDeskPath.native.js.map +1 -1
  33. package/dist/cjs/desk/scope.native.js.map +1 -1
  34. package/dist/cjs/desk/target.native.js.map +1 -1
  35. package/dist/cjs/form/DocFormScreen.cjs +167 -224
  36. package/dist/cjs/form/DocFormScreen.native.js +183 -260
  37. package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
  38. package/dist/cjs/form/FormConnections.native.js +1 -1
  39. package/dist/cjs/form/FormConnections.native.js.map +1 -1
  40. package/dist/cjs/form/FormDialogs.native.js +1 -1
  41. package/dist/cjs/form/FormDialogs.native.js.map +1 -1
  42. package/dist/cjs/form/FormErrorBoundary.native.js +1 -1
  43. package/dist/cjs/form/FormErrorBoundary.native.js.map +1 -1
  44. package/dist/cjs/form/FormHeaderCluster.native.js +1 -1
  45. package/dist/cjs/form/FormHeaderCluster.native.js.map +1 -1
  46. package/dist/cjs/form/FormSidebarPanel.native.js +1 -1
  47. package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
  48. package/dist/cjs/form/FormTimeline.native.js +1 -1
  49. package/dist/cjs/form/FormTimeline.native.js.map +1 -1
  50. package/dist/cjs/form/FormToolbar.native.js +1 -1
  51. package/dist/cjs/form/FormToolbar.native.js.map +1 -1
  52. package/dist/cjs/form/connections-data.native.js.map +1 -1
  53. package/dist/cjs/form/createPrefill.native.js.map +1 -1
  54. package/dist/cjs/form/dependsOn.native.js.map +1 -1
  55. package/dist/cjs/form/dirtyTracking.native.js.map +1 -1
  56. package/dist/cjs/form/docinfo.native.js.map +1 -1
  57. package/dist/cjs/form/fetchFrom.native.js.map +1 -1
  58. package/dist/cjs/form/fieldPermissions.native.js.map +1 -1
  59. package/dist/cjs/form/formActions.native.js.map +1 -1
  60. package/dist/cjs/form/formLayout.native.js.map +1 -1
  61. package/dist/cjs/form/platformHooks.native.js.map +1 -1
  62. package/dist/cjs/form/sidebar-attachments.native.js +1 -1
  63. package/dist/cjs/form/sidebar-attachments.native.js.map +1 -1
  64. package/dist/cjs/form/sidebar-dialogs.native.js +1 -1
  65. package/dist/cjs/form/sidebar-dialogs.native.js.map +1 -1
  66. package/dist/cjs/form/sidebar-people.native.js +1 -1
  67. package/dist/cjs/form/sidebar-people.native.js.map +1 -1
  68. package/dist/cjs/form/sidebar-rpc.native.js.map +1 -1
  69. package/dist/cjs/form/sidebar-utils.native.js.map +1 -1
  70. package/dist/cjs/form/timeline-entries.native.js.map +1 -1
  71. package/dist/cjs/form/timeline-utils.native.js.map +1 -1
  72. package/dist/cjs/form/useFormEngine.native.js.map +1 -1
  73. package/dist/cjs/i18n/en.cjs +1 -0
  74. package/dist/cjs/i18n/en.native.js +1 -0
  75. package/dist/cjs/i18n/en.native.js.map +1 -1
  76. package/dist/cjs/i18n/index.native.js.map +1 -1
  77. package/dist/cjs/index.native.js +1 -1
  78. package/dist/cjs/index.native.js.map +1 -1
  79. package/dist/cjs/list/AddTagsDialog.native.js +1 -1
  80. package/dist/cjs/list/AddTagsDialog.native.js.map +1 -1
  81. package/dist/cjs/list/AssignToDialog.native.js +1 -1
  82. package/dist/cjs/list/AssignToDialog.native.js.map +1 -1
  83. package/dist/cjs/list/DoctypeListScreen.native.js +1 -1
  84. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  85. package/dist/cjs/list/ListBulkActionsBar.cjs +30 -18
  86. package/dist/cjs/list/ListBulkActionsBar.native.js +44 -32
  87. package/dist/cjs/list/ListBulkActionsBar.native.js.map +1 -1
  88. package/dist/cjs/list/ListFilterBar.native.js +1 -1
  89. package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
  90. package/dist/cjs/list/ListSidebar.native.js +1 -1
  91. package/dist/cjs/list/ListSidebar.native.js.map +1 -1
  92. package/dist/cjs/list/bulk-edit-dialog.native.js +1 -1
  93. package/dist/cjs/list/bulk-edit-dialog.native.js.map +1 -1
  94. package/dist/cjs/list/bulk-export.native.js.map +1 -1
  95. package/dist/cjs/list/bulk-submit-cancel.native.js.map +1 -1
  96. package/dist/cjs/list/bulkActions.native.js.map +1 -1
  97. package/dist/cjs/list/filter-chips.native.js +1 -1
  98. package/dist/cjs/list/filter-chips.native.js.map +1 -1
  99. package/dist/cjs/list/filter-editor.native.js +1 -1
  100. package/dist/cjs/list/filter-editor.native.js.map +1 -1
  101. package/dist/cjs/list/filter-fields.native.js.map +1 -1
  102. package/dist/cjs/list/filter-saved.native.js +1 -1
  103. package/dist/cjs/list/filter-saved.native.js.map +1 -1
  104. package/dist/cjs/list/filter-sort.native.js +1 -1
  105. package/dist/cjs/list/filter-sort.native.js.map +1 -1
  106. package/dist/cjs/list/filter-standard.native.js.map +1 -1
  107. package/dist/cjs/list/filterConversion.native.js.map +1 -1
  108. package/dist/cjs/list/list-tools-sheet.native.js +1 -1
  109. package/dist/cjs/list/list-tools-sheet.native.js.map +1 -1
  110. package/dist/cjs/list/listColumns.native.js.map +1 -1
  111. package/dist/cjs/list/listFields.native.js.map +1 -1
  112. package/dist/cjs/list/listFormat.native.js.map +1 -1
  113. package/dist/cjs/list/listUrlState.native.js.map +1 -1
  114. package/dist/cjs/list/sidebar-section.cjs +15 -7
  115. package/dist/cjs/list/sidebar-section.native.js +17 -8
  116. package/dist/cjs/list/sidebar-section.native.js.map +1 -1
  117. package/dist/cjs/list/sidebar-stats.native.js.map +1 -1
  118. package/dist/cjs/list/statusColors.native.js.map +1 -1
  119. package/dist/cjs/navigation/navigator.native.js.map +1 -1
  120. package/dist/cjs/navigation/paths.native.js.map +1 -1
  121. package/dist/cjs/oneAdapter/index.native.js.map +1 -1
  122. package/dist/cjs/quickEntry/QuickEntryDialog.native.js +1 -1
  123. package/dist/cjs/quickEntry/QuickEntryDialog.native.js.map +1 -1
  124. package/dist/cjs/quickEntry/quickEntryPlan.native.js.map +1 -1
  125. package/dist/cjs/report/DoctypeReportView.cjs +20 -374
  126. package/dist/cjs/report/DoctypeReportView.native.js +23 -455
  127. package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
  128. package/dist/cjs/report/QueryReportScreen.cjs +33 -23
  129. package/dist/cjs/report/QueryReportScreen.native.js +34 -24
  130. package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
  131. package/dist/cjs/report/queryReportColumns.cjs +3 -105
  132. package/dist/cjs/report/queryReportColumns.native.js +2 -129
  133. package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
  134. package/dist/cjs/report/queryReportFilterBar.cjs +3 -4
  135. package/dist/cjs/report/queryReportFilterBar.native.js +4 -5
  136. package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
  137. package/dist/cjs/report/queryReportUrlState.cjs +2 -2
  138. package/dist/cjs/report/queryReportUrlState.native.js +2 -2
  139. package/dist/cjs/report/queryReportUrlState.native.js.map +1 -1
  140. package/dist/cjs/report/report-grid.cjs +2 -426
  141. package/dist/cjs/report/report-grid.native.js +1 -479
  142. package/dist/cjs/report/report-grid.native.js.map +1 -1
  143. package/dist/cjs/report/report-toolbar.cjs +2 -228
  144. package/dist/cjs/report/report-toolbar.native.js +1 -274
  145. package/dist/cjs/report/report-toolbar.native.js.map +1 -1
  146. package/dist/cjs/report/reportShapes.cjs +12 -383
  147. package/dist/cjs/report/reportShapes.native.js +12 -501
  148. package/dist/cjs/report/reportShapes.native.js.map +1 -1
  149. package/dist/cjs/report/reportViewModel.cjs +20 -360
  150. package/dist/cjs/report/reportViewModel.native.js +19 -627
  151. package/dist/cjs/report/reportViewModel.native.js.map +1 -1
  152. package/dist/cjs/report/savedReports.cjs +2 -106
  153. package/dist/cjs/report/savedReports.native.js +1 -132
  154. package/dist/cjs/report/savedReports.native.js.map +1 -1
  155. package/dist/cjs/report/useQueryReport.cjs +11 -219
  156. package/dist/cjs/report/useQueryReport.native.js +11 -244
  157. package/dist/cjs/report/useQueryReport.native.js.map +1 -1
  158. package/dist/cjs/shared/deskLinks.native.js.map +1 -1
  159. package/dist/cjs/shared/listNavContext.native.js.map +1 -1
  160. package/dist/cjs/shared/measures.cjs +3 -5
  161. package/dist/cjs/shared/measures.native.js +3 -5
  162. package/dist/cjs/shared/measures.native.js.map +1 -1
  163. package/dist/cjs/shared/types.native.js.map +1 -1
  164. package/dist/cjs/shared/useDocinfo.native.js.map +1 -1
  165. package/dist/cjs/shared/useDoctypeMeta.native.js.map +1 -1
  166. package/dist/cjs/shared/useFrappeApp.native.js.map +1 -1
  167. package/dist/cjs/shared/useRecentVisit.native.js.map +1 -1
  168. package/dist/cjs/shared/useSessionUserId.native.js.map +1 -1
  169. package/dist/cjs/shared/useSlugTarget.native.js.map +1 -1
  170. package/dist/cjs/shared/useUserRoles.native.js.map +1 -1
  171. package/dist/cjs/shell/BackofficeShell.native.js +1 -1
  172. package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
  173. package/dist/cjs/shell/HomeRedirect.native.js +1 -1
  174. package/dist/cjs/shell/HomeRedirect.native.js.map +1 -1
  175. package/dist/cjs/shell/NotFoundScreen.native.js +1 -1
  176. package/dist/cjs/shell/NotFoundScreen.native.js.map +1 -1
  177. package/dist/cjs/shell/SlugScreen.native.js +1 -1
  178. package/dist/cjs/shell/SlugScreen.native.js.map +1 -1
  179. package/dist/cjs/shell/WorkspaceSidebar.native.js +1 -1
  180. package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
  181. package/dist/cjs/shell/useWorkspaces.native.js.map +1 -1
  182. package/dist/cjs/shell/workspaceIcons.native.js.map +1 -1
  183. package/dist/cjs/views/CalendarView.native.js +1 -1
  184. package/dist/cjs/views/CalendarView.native.js.map +1 -1
  185. package/dist/cjs/views/DashboardView.native.js +1 -1
  186. package/dist/cjs/views/DashboardView.native.js.map +1 -1
  187. package/dist/cjs/views/DoctypeViewScreen.native.js.map +1 -1
  188. package/dist/cjs/views/ImageView.native.js +1 -1
  189. package/dist/cjs/views/ImageView.native.js.map +1 -1
  190. package/dist/cjs/views/KanbanView.native.js +1 -1
  191. package/dist/cjs/views/KanbanView.native.js.map +1 -1
  192. package/dist/cjs/views/ReportView.cjs +3 -256
  193. package/dist/cjs/views/ReportView.native.js +3 -382
  194. package/dist/cjs/views/ReportView.native.js.map +1 -1
  195. package/dist/cjs/views/TreeView.native.js +1 -1
  196. package/dist/cjs/views/TreeView.native.js.map +1 -1
  197. package/dist/cjs/views/ViewHeader.native.js +1 -1
  198. package/dist/cjs/views/ViewHeader.native.js.map +1 -1
  199. package/dist/cjs/views/ViewStates.native.js +1 -1
  200. package/dist/cjs/views/ViewStates.native.js.map +1 -1
  201. package/dist/cjs/views/ViewSwitcherMenu.native.js +1 -1
  202. package/dist/cjs/views/ViewSwitcherMenu.native.js.map +1 -1
  203. package/dist/cjs/views/calendar-field-selector.native.js +1 -1
  204. package/dist/cjs/views/calendar-field-selector.native.js.map +1 -1
  205. package/dist/cjs/views/connection.native.js.map +1 -1
  206. package/dist/cjs/views/dashboard-data.native.js.map +1 -1
  207. package/dist/cjs/views/deskViewConfigs.native.js.map +1 -1
  208. package/dist/cjs/views/kanban-board-controls.native.js +1 -1
  209. package/dist/cjs/views/kanban-board-controls.native.js.map +1 -1
  210. package/dist/cjs/views/kanban-field-picker.native.js +1 -1
  211. package/dist/cjs/views/kanban-field-picker.native.js.map +1 -1
  212. package/dist/cjs/views/kanbanBoardOps.native.js.map +1 -1
  213. package/dist/cjs/views/report-controls.cjs +6 -6
  214. package/dist/cjs/views/report-controls.native.js +7 -7
  215. package/dist/cjs/views/report-controls.native.js.map +1 -1
  216. package/dist/cjs/views/viewAvailability.native.js.map +1 -1
  217. package/dist/cjs/views/viewMeta.native.js.map +1 -1
  218. package/dist/cjs/workspace/WorkspaceChartBlock.native.js +1 -1
  219. package/dist/cjs/workspace/WorkspaceChartBlock.native.js.map +1 -1
  220. package/dist/cjs/workspace/WorkspaceGrid.native.js.map +1 -1
  221. package/dist/cjs/workspace/WorkspaceLinkCard.native.js +1 -1
  222. package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -1
  223. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +1 -1
  224. package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  225. package/dist/cjs/workspace/WorkspaceNumberCard.native.js +1 -1
  226. package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -1
  227. package/dist/cjs/workspace/WorkspaceQuickList.native.js +1 -1
  228. package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
  229. package/dist/cjs/workspace/WorkspaceRecents.native.js +1 -1
  230. package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
  231. package/dist/cjs/workspace/WorkspaceScreen.native.js +1 -1
  232. package/dist/cjs/workspace/WorkspaceScreen.native.js.map +1 -1
  233. package/dist/cjs/workspace/WorkspaceShortcut.native.js +1 -1
  234. package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
  235. package/dist/cjs/workspace/parseContent.native.js.map +1 -1
  236. package/dist/cjs/workspace/types.native.js.map +1 -1
  237. package/dist/cjs/workspace/useDashboardChart.native.js.map +1 -1
  238. package/dist/cjs/workspace/useWorkspaceDoc.native.js.map +1 -1
  239. package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -1
  240. package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
  241. package/dist/esm/chrome/HelpMenu.native.js.map +1 -1
  242. package/dist/esm/chrome/NotificationsButton.native.js.map +1 -1
  243. package/dist/esm/chrome/UserMenu.native.js.map +1 -1
  244. package/dist/esm/chrome/awesomebar-data.native.js.map +1 -1
  245. package/dist/esm/chrome/command-palette-model.native.js.map +1 -1
  246. package/dist/esm/chrome/help-about-dialog.native.js.map +1 -1
  247. package/dist/esm/chrome/help-shortcuts-dialog.native.js.map +1 -1
  248. package/dist/esm/chrome/notifications-data.native.js.map +1 -1
  249. package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
  250. package/dist/esm/chrome/notifications-utils.native.js.map +1 -1
  251. package/dist/esm/chrome/shortcuts.native.js.map +1 -1
  252. package/dist/esm/chrome/user-session.native.js.map +1 -1
  253. package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
  254. package/dist/esm/config/capabilities.native.js.map +1 -1
  255. package/dist/esm/config/events.native.js.map +1 -1
  256. package/dist/esm/config/slots.native.js.map +1 -1
  257. package/dist/esm/desk/Desk.native.js.map +1 -1
  258. package/dist/esm/desk/DeskSurface.mjs.map +1 -1
  259. package/dist/esm/desk/DeskSurface.native.js.map +1 -1
  260. package/dist/esm/desk/resolveDeskPath.native.js.map +1 -1
  261. package/dist/esm/desk/scope.native.js.map +1 -1
  262. package/dist/esm/desk/target.native.js.map +1 -1
  263. package/dist/esm/form/DocFormScreen.mjs +169 -226
  264. package/dist/esm/form/DocFormScreen.mjs.map +1 -1
  265. package/dist/esm/form/DocFormScreen.native.js +184 -261
  266. package/dist/esm/form/DocFormScreen.native.js.map +1 -1
  267. package/dist/esm/form/FormConnections.native.js.map +1 -1
  268. package/dist/esm/form/FormDialogs.native.js.map +1 -1
  269. package/dist/esm/form/FormErrorBoundary.native.js.map +1 -1
  270. package/dist/esm/form/FormHeaderCluster.native.js.map +1 -1
  271. package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
  272. package/dist/esm/form/FormTimeline.native.js.map +1 -1
  273. package/dist/esm/form/FormToolbar.native.js.map +1 -1
  274. package/dist/esm/form/connections-data.native.js.map +1 -1
  275. package/dist/esm/form/createPrefill.native.js.map +1 -1
  276. package/dist/esm/form/dependsOn.native.js.map +1 -1
  277. package/dist/esm/form/dirtyTracking.native.js.map +1 -1
  278. package/dist/esm/form/docinfo.native.js.map +1 -1
  279. package/dist/esm/form/fetchFrom.native.js.map +1 -1
  280. package/dist/esm/form/fieldPermissions.native.js.map +1 -1
  281. package/dist/esm/form/formActions.native.js.map +1 -1
  282. package/dist/esm/form/formLayout.native.js.map +1 -1
  283. package/dist/esm/form/platformHooks.native.js.map +1 -1
  284. package/dist/esm/form/sidebar-attachments.native.js.map +1 -1
  285. package/dist/esm/form/sidebar-dialogs.native.js.map +1 -1
  286. package/dist/esm/form/sidebar-people.native.js.map +1 -1
  287. package/dist/esm/form/sidebar-rpc.native.js.map +1 -1
  288. package/dist/esm/form/sidebar-utils.native.js.map +1 -1
  289. package/dist/esm/form/timeline-entries.native.js.map +1 -1
  290. package/dist/esm/form/timeline-utils.native.js.map +1 -1
  291. package/dist/esm/form/useFormEngine.native.js.map +1 -1
  292. package/dist/esm/i18n/en.mjs +1 -0
  293. package/dist/esm/i18n/en.mjs.map +1 -1
  294. package/dist/esm/i18n/en.native.js +1 -0
  295. package/dist/esm/i18n/en.native.js.map +1 -1
  296. package/dist/esm/i18n/index.native.js.map +1 -1
  297. package/dist/esm/index.native.js.map +1 -1
  298. package/dist/esm/list/AddTagsDialog.native.js.map +1 -1
  299. package/dist/esm/list/AssignToDialog.native.js.map +1 -1
  300. package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
  301. package/dist/esm/list/ListBulkActionsBar.mjs +31 -19
  302. package/dist/esm/list/ListBulkActionsBar.mjs.map +1 -1
  303. package/dist/esm/list/ListBulkActionsBar.native.js +37 -25
  304. package/dist/esm/list/ListBulkActionsBar.native.js.map +1 -1
  305. package/dist/esm/list/ListFilterBar.native.js.map +1 -1
  306. package/dist/esm/list/ListSidebar.native.js.map +1 -1
  307. package/dist/esm/list/bulk-edit-dialog.native.js.map +1 -1
  308. package/dist/esm/list/bulk-export.native.js.map +1 -1
  309. package/dist/esm/list/bulk-submit-cancel.native.js.map +1 -1
  310. package/dist/esm/list/bulkActions.native.js.map +1 -1
  311. package/dist/esm/list/filter-chips.native.js.map +1 -1
  312. package/dist/esm/list/filter-editor.native.js.map +1 -1
  313. package/dist/esm/list/filter-fields.native.js.map +1 -1
  314. package/dist/esm/list/filter-saved.native.js.map +1 -1
  315. package/dist/esm/list/filter-sort.native.js.map +1 -1
  316. package/dist/esm/list/filter-standard.native.js.map +1 -1
  317. package/dist/esm/list/filterConversion.native.js.map +1 -1
  318. package/dist/esm/list/list-tools-sheet.native.js.map +1 -1
  319. package/dist/esm/list/listColumns.native.js.map +1 -1
  320. package/dist/esm/list/listFields.native.js.map +1 -1
  321. package/dist/esm/list/listFormat.native.js.map +1 -1
  322. package/dist/esm/list/listUrlState.native.js.map +1 -1
  323. package/dist/esm/list/sidebar-section.mjs +16 -8
  324. package/dist/esm/list/sidebar-section.mjs.map +1 -1
  325. package/dist/esm/list/sidebar-section.native.js +17 -8
  326. package/dist/esm/list/sidebar-section.native.js.map +1 -1
  327. package/dist/esm/list/sidebar-stats.native.js.map +1 -1
  328. package/dist/esm/list/statusColors.native.js.map +1 -1
  329. package/dist/esm/navigation/navigator.native.js.map +1 -1
  330. package/dist/esm/navigation/paths.native.js.map +1 -1
  331. package/dist/esm/oneAdapter/index.native.js.map +1 -1
  332. package/dist/esm/quickEntry/QuickEntryDialog.native.js.map +1 -1
  333. package/dist/esm/quickEntry/quickEntryPlan.native.js.map +1 -1
  334. package/dist/esm/report/DoctypeReportView.mjs +21 -375
  335. package/dist/esm/report/DoctypeReportView.mjs.map +1 -1
  336. package/dist/esm/report/DoctypeReportView.native.js +24 -456
  337. package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
  338. package/dist/esm/report/QueryReportScreen.mjs +26 -16
  339. package/dist/esm/report/QueryReportScreen.mjs.map +1 -1
  340. package/dist/esm/report/QueryReportScreen.native.js +26 -16
  341. package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
  342. package/dist/esm/report/queryReportColumns.mjs +1 -103
  343. package/dist/esm/report/queryReportColumns.mjs.map +1 -1
  344. package/dist/esm/report/queryReportColumns.native.js +1 -117
  345. package/dist/esm/report/queryReportColumns.native.js.map +1 -1
  346. package/dist/esm/report/queryReportFilterBar.mjs +1 -2
  347. package/dist/esm/report/queryReportFilterBar.mjs.map +1 -1
  348. package/dist/esm/report/queryReportFilterBar.native.js +1 -2
  349. package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
  350. package/dist/esm/report/queryReportUrlState.mjs +1 -1
  351. package/dist/esm/report/queryReportUrlState.native.js +1 -1
  352. package/dist/esm/report/queryReportUrlState.native.js.map +1 -1
  353. package/dist/esm/report/report-grid.mjs +1 -425
  354. package/dist/esm/report/report-grid.mjs.map +1 -1
  355. package/dist/esm/report/report-grid.native.js +1 -468
  356. package/dist/esm/report/report-grid.native.js.map +1 -1
  357. package/dist/esm/report/report-toolbar.mjs +2 -228
  358. package/dist/esm/report/report-toolbar.mjs.map +1 -1
  359. package/dist/esm/report/report-toolbar.native.js +2 -264
  360. package/dist/esm/report/report-toolbar.native.js.map +1 -1
  361. package/dist/esm/report/reportShapes.mjs +2 -373
  362. package/dist/esm/report/reportShapes.mjs.map +1 -1
  363. package/dist/esm/report/reportShapes.native.js +2 -491
  364. package/dist/esm/report/reportShapes.native.js.map +1 -1
  365. package/dist/esm/report/reportViewModel.mjs +2 -342
  366. package/dist/esm/report/reportViewModel.mjs.map +1 -1
  367. package/dist/esm/report/reportViewModel.native.js +2 -610
  368. package/dist/esm/report/reportViewModel.native.js.map +1 -1
  369. package/dist/esm/report/savedReports.mjs +1 -105
  370. package/dist/esm/report/savedReports.mjs.map +1 -1
  371. package/dist/esm/report/savedReports.native.js +1 -132
  372. package/dist/esm/report/savedReports.native.js.map +1 -1
  373. package/dist/esm/report/useQueryReport.mjs +2 -210
  374. package/dist/esm/report/useQueryReport.mjs.map +1 -1
  375. package/dist/esm/report/useQueryReport.native.js +2 -235
  376. package/dist/esm/report/useQueryReport.native.js.map +1 -1
  377. package/dist/esm/shared/deskLinks.native.js.map +1 -1
  378. package/dist/esm/shared/listNavContext.native.js.map +1 -1
  379. package/dist/esm/shared/measures.mjs +1 -3
  380. package/dist/esm/shared/measures.mjs.map +1 -1
  381. package/dist/esm/shared/measures.native.js +1 -3
  382. package/dist/esm/shared/measures.native.js.map +1 -1
  383. package/dist/esm/shared/types.native.js.map +1 -1
  384. package/dist/esm/shared/useDocinfo.native.js.map +1 -1
  385. package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -1
  386. package/dist/esm/shared/useFrappeApp.native.js.map +1 -1
  387. package/dist/esm/shared/useRecentVisit.native.js.map +1 -1
  388. package/dist/esm/shared/useSessionUserId.native.js.map +1 -1
  389. package/dist/esm/shared/useSlugTarget.native.js.map +1 -1
  390. package/dist/esm/shared/useUserRoles.native.js.map +1 -1
  391. package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
  392. package/dist/esm/shell/HomeRedirect.native.js.map +1 -1
  393. package/dist/esm/shell/NotFoundScreen.native.js.map +1 -1
  394. package/dist/esm/shell/SlugScreen.native.js.map +1 -1
  395. package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
  396. package/dist/esm/shell/useWorkspaces.native.js.map +1 -1
  397. package/dist/esm/shell/workspaceIcons.native.js.map +1 -1
  398. package/dist/esm/views/CalendarView.native.js.map +1 -1
  399. package/dist/esm/views/DashboardView.native.js.map +1 -1
  400. package/dist/esm/views/DoctypeViewScreen.native.js.map +1 -1
  401. package/dist/esm/views/ImageView.native.js.map +1 -1
  402. package/dist/esm/views/KanbanView.native.js.map +1 -1
  403. package/dist/esm/views/ReportView.mjs +3 -256
  404. package/dist/esm/views/ReportView.mjs.map +1 -1
  405. package/dist/esm/views/ReportView.native.js +3 -382
  406. package/dist/esm/views/ReportView.native.js.map +1 -1
  407. package/dist/esm/views/TreeView.native.js.map +1 -1
  408. package/dist/esm/views/ViewHeader.native.js.map +1 -1
  409. package/dist/esm/views/ViewStates.native.js.map +1 -1
  410. package/dist/esm/views/ViewSwitcherMenu.native.js.map +1 -1
  411. package/dist/esm/views/calendar-field-selector.native.js.map +1 -1
  412. package/dist/esm/views/connection.native.js.map +1 -1
  413. package/dist/esm/views/dashboard-data.native.js.map +1 -1
  414. package/dist/esm/views/deskViewConfigs.native.js.map +1 -1
  415. package/dist/esm/views/kanban-board-controls.native.js.map +1 -1
  416. package/dist/esm/views/kanban-field-picker.native.js.map +1 -1
  417. package/dist/esm/views/kanbanBoardOps.native.js.map +1 -1
  418. package/dist/esm/views/report-controls.mjs +3 -3
  419. package/dist/esm/views/report-controls.mjs.map +1 -1
  420. package/dist/esm/views/report-controls.native.js +3 -3
  421. package/dist/esm/views/report-controls.native.js.map +1 -1
  422. package/dist/esm/views/viewAvailability.native.js.map +1 -1
  423. package/dist/esm/views/viewMeta.native.js.map +1 -1
  424. package/dist/esm/workspace/WorkspaceChartBlock.native.js.map +1 -1
  425. package/dist/esm/workspace/WorkspaceGrid.native.js.map +1 -1
  426. package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -1
  427. package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  428. package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -1
  429. package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
  430. package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
  431. package/dist/esm/workspace/WorkspaceScreen.native.js.map +1 -1
  432. package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
  433. package/dist/esm/workspace/parseContent.native.js.map +1 -1
  434. package/dist/esm/workspace/types.native.js.map +1 -1
  435. package/dist/esm/workspace/useDashboardChart.native.js.map +1 -1
  436. package/dist/esm/workspace/useWorkspaceDoc.native.js.map +1 -1
  437. package/dist/jsx/chrome/BackofficeAwesomebar.native.js +1 -1
  438. package/dist/jsx/chrome/BackofficeAwesomebar.native.js.map +1 -1
  439. package/dist/jsx/chrome/CommandPalette.native.js +1 -1
  440. package/dist/jsx/chrome/CommandPalette.native.js.map +1 -1
  441. package/dist/jsx/chrome/HelpMenu.native.js +1 -1
  442. package/dist/jsx/chrome/HelpMenu.native.js.map +1 -1
  443. package/dist/jsx/chrome/NotificationsButton.native.js +1 -1
  444. package/dist/jsx/chrome/NotificationsButton.native.js.map +1 -1
  445. package/dist/jsx/chrome/UserMenu.native.js +1 -1
  446. package/dist/jsx/chrome/UserMenu.native.js.map +1 -1
  447. package/dist/jsx/chrome/awesomebar-data.native.js.map +1 -1
  448. package/dist/jsx/chrome/command-palette-model.native.js +1 -1
  449. package/dist/jsx/chrome/command-palette-model.native.js.map +1 -1
  450. package/dist/jsx/chrome/help-about-dialog.native.js +1 -1
  451. package/dist/jsx/chrome/help-about-dialog.native.js.map +1 -1
  452. package/dist/jsx/chrome/help-shortcuts-dialog.native.js +1 -1
  453. package/dist/jsx/chrome/help-shortcuts-dialog.native.js.map +1 -1
  454. package/dist/jsx/chrome/notifications-data.native.js.map +1 -1
  455. package/dist/jsx/chrome/notifications-panel.native.js +1 -1
  456. package/dist/jsx/chrome/notifications-panel.native.js.map +1 -1
  457. package/dist/jsx/chrome/notifications-utils.native.js.map +1 -1
  458. package/dist/jsx/chrome/shortcuts.native.js.map +1 -1
  459. package/dist/jsx/chrome/user-session.native.js.map +1 -1
  460. package/dist/jsx/config/BackofficeProvider.native.js +1 -1
  461. package/dist/jsx/config/BackofficeProvider.native.js.map +1 -1
  462. package/dist/jsx/config/capabilities.native.js.map +1 -1
  463. package/dist/jsx/config/events.native.js.map +1 -1
  464. package/dist/jsx/config/slots.native.js.map +1 -1
  465. package/dist/jsx/desk/Desk.native.js.map +1 -1
  466. package/dist/jsx/desk/DeskSurface.mjs.map +1 -1
  467. package/dist/jsx/desk/DeskSurface.native.js.map +1 -1
  468. package/dist/jsx/desk/resolveDeskPath.native.js.map +1 -1
  469. package/dist/jsx/desk/scope.native.js.map +1 -1
  470. package/dist/jsx/desk/target.native.js.map +1 -1
  471. package/dist/jsx/form/DocFormScreen.mjs +169 -226
  472. package/dist/jsx/form/DocFormScreen.mjs.map +1 -1
  473. package/dist/jsx/form/DocFormScreen.native.js +183 -260
  474. package/dist/jsx/form/DocFormScreen.native.js.map +1 -1
  475. package/dist/jsx/form/FormConnections.native.js +1 -1
  476. package/dist/jsx/form/FormConnections.native.js.map +1 -1
  477. package/dist/jsx/form/FormDialogs.native.js +1 -1
  478. package/dist/jsx/form/FormDialogs.native.js.map +1 -1
  479. package/dist/jsx/form/FormErrorBoundary.native.js +1 -1
  480. package/dist/jsx/form/FormErrorBoundary.native.js.map +1 -1
  481. package/dist/jsx/form/FormHeaderCluster.native.js +1 -1
  482. package/dist/jsx/form/FormHeaderCluster.native.js.map +1 -1
  483. package/dist/jsx/form/FormSidebarPanel.native.js +1 -1
  484. package/dist/jsx/form/FormSidebarPanel.native.js.map +1 -1
  485. package/dist/jsx/form/FormTimeline.native.js +1 -1
  486. package/dist/jsx/form/FormTimeline.native.js.map +1 -1
  487. package/dist/jsx/form/FormToolbar.native.js +1 -1
  488. package/dist/jsx/form/FormToolbar.native.js.map +1 -1
  489. package/dist/jsx/form/connections-data.native.js.map +1 -1
  490. package/dist/jsx/form/createPrefill.native.js.map +1 -1
  491. package/dist/jsx/form/dependsOn.native.js.map +1 -1
  492. package/dist/jsx/form/dirtyTracking.native.js.map +1 -1
  493. package/dist/jsx/form/docinfo.native.js.map +1 -1
  494. package/dist/jsx/form/fetchFrom.native.js.map +1 -1
  495. package/dist/jsx/form/fieldPermissions.native.js.map +1 -1
  496. package/dist/jsx/form/formActions.native.js.map +1 -1
  497. package/dist/jsx/form/formLayout.native.js.map +1 -1
  498. package/dist/jsx/form/platformHooks.native.js.map +1 -1
  499. package/dist/jsx/form/sidebar-attachments.native.js +1 -1
  500. package/dist/jsx/form/sidebar-attachments.native.js.map +1 -1
  501. package/dist/jsx/form/sidebar-dialogs.native.js +1 -1
  502. package/dist/jsx/form/sidebar-dialogs.native.js.map +1 -1
  503. package/dist/jsx/form/sidebar-people.native.js +1 -1
  504. package/dist/jsx/form/sidebar-people.native.js.map +1 -1
  505. package/dist/jsx/form/sidebar-rpc.native.js.map +1 -1
  506. package/dist/jsx/form/sidebar-utils.native.js.map +1 -1
  507. package/dist/jsx/form/timeline-entries.native.js.map +1 -1
  508. package/dist/jsx/form/timeline-utils.native.js.map +1 -1
  509. package/dist/jsx/form/useFormEngine.native.js.map +1 -1
  510. package/dist/jsx/i18n/en.mjs +1 -0
  511. package/dist/jsx/i18n/en.mjs.map +1 -1
  512. package/dist/jsx/i18n/en.native.js +1 -0
  513. package/dist/jsx/i18n/en.native.js.map +1 -1
  514. package/dist/jsx/i18n/index.native.js.map +1 -1
  515. package/dist/jsx/index.native.js +1 -1
  516. package/dist/jsx/index.native.js.map +1 -1
  517. package/dist/jsx/list/AddTagsDialog.native.js +1 -1
  518. package/dist/jsx/list/AddTagsDialog.native.js.map +1 -1
  519. package/dist/jsx/list/AssignToDialog.native.js +1 -1
  520. package/dist/jsx/list/AssignToDialog.native.js.map +1 -1
  521. package/dist/jsx/list/DoctypeListScreen.native.js +1 -1
  522. package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
  523. package/dist/jsx/list/ListBulkActionsBar.mjs +31 -19
  524. package/dist/jsx/list/ListBulkActionsBar.mjs.map +1 -1
  525. package/dist/jsx/list/ListBulkActionsBar.native.js +44 -32
  526. package/dist/jsx/list/ListBulkActionsBar.native.js.map +1 -1
  527. package/dist/jsx/list/ListFilterBar.native.js +1 -1
  528. package/dist/jsx/list/ListFilterBar.native.js.map +1 -1
  529. package/dist/jsx/list/ListSidebar.native.js +1 -1
  530. package/dist/jsx/list/ListSidebar.native.js.map +1 -1
  531. package/dist/jsx/list/bulk-edit-dialog.native.js +1 -1
  532. package/dist/jsx/list/bulk-edit-dialog.native.js.map +1 -1
  533. package/dist/jsx/list/bulk-export.native.js.map +1 -1
  534. package/dist/jsx/list/bulk-submit-cancel.native.js.map +1 -1
  535. package/dist/jsx/list/bulkActions.native.js.map +1 -1
  536. package/dist/jsx/list/filter-chips.native.js +1 -1
  537. package/dist/jsx/list/filter-chips.native.js.map +1 -1
  538. package/dist/jsx/list/filter-editor.native.js +1 -1
  539. package/dist/jsx/list/filter-editor.native.js.map +1 -1
  540. package/dist/jsx/list/filter-fields.native.js.map +1 -1
  541. package/dist/jsx/list/filter-saved.native.js +1 -1
  542. package/dist/jsx/list/filter-saved.native.js.map +1 -1
  543. package/dist/jsx/list/filter-sort.native.js +1 -1
  544. package/dist/jsx/list/filter-sort.native.js.map +1 -1
  545. package/dist/jsx/list/filter-standard.native.js.map +1 -1
  546. package/dist/jsx/list/filterConversion.native.js.map +1 -1
  547. package/dist/jsx/list/list-tools-sheet.native.js +1 -1
  548. package/dist/jsx/list/list-tools-sheet.native.js.map +1 -1
  549. package/dist/jsx/list/listColumns.native.js.map +1 -1
  550. package/dist/jsx/list/listFields.native.js.map +1 -1
  551. package/dist/jsx/list/listFormat.native.js.map +1 -1
  552. package/dist/jsx/list/listUrlState.native.js.map +1 -1
  553. package/dist/jsx/list/sidebar-section.mjs +16 -8
  554. package/dist/jsx/list/sidebar-section.mjs.map +1 -1
  555. package/dist/jsx/list/sidebar-section.native.js +17 -8
  556. package/dist/jsx/list/sidebar-section.native.js.map +1 -1
  557. package/dist/jsx/list/sidebar-stats.native.js.map +1 -1
  558. package/dist/jsx/list/statusColors.native.js.map +1 -1
  559. package/dist/jsx/navigation/navigator.native.js.map +1 -1
  560. package/dist/jsx/navigation/paths.native.js.map +1 -1
  561. package/dist/jsx/oneAdapter/index.native.js.map +1 -1
  562. package/dist/jsx/quickEntry/QuickEntryDialog.native.js +1 -1
  563. package/dist/jsx/quickEntry/QuickEntryDialog.native.js.map +1 -1
  564. package/dist/jsx/quickEntry/quickEntryPlan.native.js.map +1 -1
  565. package/dist/jsx/report/DoctypeReportView.mjs +21 -375
  566. package/dist/jsx/report/DoctypeReportView.mjs.map +1 -1
  567. package/dist/jsx/report/DoctypeReportView.native.js +23 -455
  568. package/dist/jsx/report/DoctypeReportView.native.js.map +1 -1
  569. package/dist/jsx/report/QueryReportScreen.mjs +26 -16
  570. package/dist/jsx/report/QueryReportScreen.mjs.map +1 -1
  571. package/dist/jsx/report/QueryReportScreen.native.js +34 -24
  572. package/dist/jsx/report/QueryReportScreen.native.js.map +1 -1
  573. package/dist/jsx/report/queryReportColumns.mjs +1 -103
  574. package/dist/jsx/report/queryReportColumns.mjs.map +1 -1
  575. package/dist/jsx/report/queryReportColumns.native.js +2 -129
  576. package/dist/jsx/report/queryReportColumns.native.js.map +1 -1
  577. package/dist/jsx/report/queryReportFilterBar.mjs +1 -2
  578. package/dist/jsx/report/queryReportFilterBar.mjs.map +1 -1
  579. package/dist/jsx/report/queryReportFilterBar.native.js +4 -5
  580. package/dist/jsx/report/queryReportFilterBar.native.js.map +1 -1
  581. package/dist/jsx/report/queryReportUrlState.mjs +1 -1
  582. package/dist/jsx/report/queryReportUrlState.native.js +2 -2
  583. package/dist/jsx/report/queryReportUrlState.native.js.map +1 -1
  584. package/dist/jsx/report/report-grid.mjs +1 -425
  585. package/dist/jsx/report/report-grid.mjs.map +1 -1
  586. package/dist/jsx/report/report-grid.native.js +1 -479
  587. package/dist/jsx/report/report-grid.native.js.map +1 -1
  588. package/dist/jsx/report/report-toolbar.mjs +2 -228
  589. package/dist/jsx/report/report-toolbar.mjs.map +1 -1
  590. package/dist/jsx/report/report-toolbar.native.js +1 -274
  591. package/dist/jsx/report/report-toolbar.native.js.map +1 -1
  592. package/dist/jsx/report/reportShapes.mjs +2 -373
  593. package/dist/jsx/report/reportShapes.mjs.map +1 -1
  594. package/dist/jsx/report/reportShapes.native.js +12 -501
  595. package/dist/jsx/report/reportShapes.native.js.map +1 -1
  596. package/dist/jsx/report/reportViewModel.mjs +2 -342
  597. package/dist/jsx/report/reportViewModel.mjs.map +1 -1
  598. package/dist/jsx/report/reportViewModel.native.js +19 -627
  599. package/dist/jsx/report/reportViewModel.native.js.map +1 -1
  600. package/dist/jsx/report/savedReports.mjs +1 -105
  601. package/dist/jsx/report/savedReports.mjs.map +1 -1
  602. package/dist/jsx/report/savedReports.native.js +1 -132
  603. package/dist/jsx/report/savedReports.native.js.map +1 -1
  604. package/dist/jsx/report/useQueryReport.mjs +2 -210
  605. package/dist/jsx/report/useQueryReport.mjs.map +1 -1
  606. package/dist/jsx/report/useQueryReport.native.js +11 -244
  607. package/dist/jsx/report/useQueryReport.native.js.map +1 -1
  608. package/dist/jsx/shared/deskLinks.native.js.map +1 -1
  609. package/dist/jsx/shared/listNavContext.native.js.map +1 -1
  610. package/dist/jsx/shared/measures.mjs +1 -3
  611. package/dist/jsx/shared/measures.mjs.map +1 -1
  612. package/dist/jsx/shared/measures.native.js +3 -5
  613. package/dist/jsx/shared/measures.native.js.map +1 -1
  614. package/dist/jsx/shared/types.native.js.map +1 -1
  615. package/dist/jsx/shared/useDocinfo.native.js.map +1 -1
  616. package/dist/jsx/shared/useDoctypeMeta.native.js.map +1 -1
  617. package/dist/jsx/shared/useFrappeApp.native.js.map +1 -1
  618. package/dist/jsx/shared/useRecentVisit.native.js.map +1 -1
  619. package/dist/jsx/shared/useSessionUserId.native.js.map +1 -1
  620. package/dist/jsx/shared/useSlugTarget.native.js.map +1 -1
  621. package/dist/jsx/shared/useUserRoles.native.js.map +1 -1
  622. package/dist/jsx/shell/BackofficeShell.native.js +1 -1
  623. package/dist/jsx/shell/BackofficeShell.native.js.map +1 -1
  624. package/dist/jsx/shell/HomeRedirect.native.js +1 -1
  625. package/dist/jsx/shell/HomeRedirect.native.js.map +1 -1
  626. package/dist/jsx/shell/NotFoundScreen.native.js +1 -1
  627. package/dist/jsx/shell/NotFoundScreen.native.js.map +1 -1
  628. package/dist/jsx/shell/SlugScreen.native.js +1 -1
  629. package/dist/jsx/shell/SlugScreen.native.js.map +1 -1
  630. package/dist/jsx/shell/WorkspaceSidebar.native.js +1 -1
  631. package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -1
  632. package/dist/jsx/shell/useWorkspaces.native.js.map +1 -1
  633. package/dist/jsx/shell/workspaceIcons.native.js.map +1 -1
  634. package/dist/jsx/views/CalendarView.native.js +1 -1
  635. package/dist/jsx/views/CalendarView.native.js.map +1 -1
  636. package/dist/jsx/views/DashboardView.native.js +1 -1
  637. package/dist/jsx/views/DashboardView.native.js.map +1 -1
  638. package/dist/jsx/views/DoctypeViewScreen.native.js.map +1 -1
  639. package/dist/jsx/views/ImageView.native.js +1 -1
  640. package/dist/jsx/views/ImageView.native.js.map +1 -1
  641. package/dist/jsx/views/KanbanView.native.js +1 -1
  642. package/dist/jsx/views/KanbanView.native.js.map +1 -1
  643. package/dist/jsx/views/ReportView.mjs +3 -256
  644. package/dist/jsx/views/ReportView.mjs.map +1 -1
  645. package/dist/jsx/views/ReportView.native.js +3 -382
  646. package/dist/jsx/views/ReportView.native.js.map +1 -1
  647. package/dist/jsx/views/TreeView.native.js +1 -1
  648. package/dist/jsx/views/TreeView.native.js.map +1 -1
  649. package/dist/jsx/views/ViewHeader.native.js +1 -1
  650. package/dist/jsx/views/ViewHeader.native.js.map +1 -1
  651. package/dist/jsx/views/ViewStates.native.js +1 -1
  652. package/dist/jsx/views/ViewStates.native.js.map +1 -1
  653. package/dist/jsx/views/ViewSwitcherMenu.native.js +1 -1
  654. package/dist/jsx/views/ViewSwitcherMenu.native.js.map +1 -1
  655. package/dist/jsx/views/calendar-field-selector.native.js +1 -1
  656. package/dist/jsx/views/calendar-field-selector.native.js.map +1 -1
  657. package/dist/jsx/views/connection.native.js.map +1 -1
  658. package/dist/jsx/views/dashboard-data.native.js.map +1 -1
  659. package/dist/jsx/views/deskViewConfigs.native.js.map +1 -1
  660. package/dist/jsx/views/kanban-board-controls.native.js +1 -1
  661. package/dist/jsx/views/kanban-board-controls.native.js.map +1 -1
  662. package/dist/jsx/views/kanban-field-picker.native.js +1 -1
  663. package/dist/jsx/views/kanban-field-picker.native.js.map +1 -1
  664. package/dist/jsx/views/kanbanBoardOps.native.js.map +1 -1
  665. package/dist/jsx/views/report-controls.mjs +3 -3
  666. package/dist/jsx/views/report-controls.mjs.map +1 -1
  667. package/dist/jsx/views/report-controls.native.js +7 -7
  668. package/dist/jsx/views/report-controls.native.js.map +1 -1
  669. package/dist/jsx/views/viewAvailability.native.js.map +1 -1
  670. package/dist/jsx/views/viewMeta.native.js.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/WorkspaceGrid.native.js.map +1 -1
  674. package/dist/jsx/workspace/WorkspaceLinkCard.native.js +1 -1
  675. package/dist/jsx/workspace/WorkspaceLinkCard.native.js.map +1 -1
  676. package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js +1 -1
  677. package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js.map +1 -1
  678. package/dist/jsx/workspace/WorkspaceNumberCard.native.js +1 -1
  679. package/dist/jsx/workspace/WorkspaceNumberCard.native.js.map +1 -1
  680. package/dist/jsx/workspace/WorkspaceQuickList.native.js +1 -1
  681. package/dist/jsx/workspace/WorkspaceQuickList.native.js.map +1 -1
  682. package/dist/jsx/workspace/WorkspaceRecents.native.js +1 -1
  683. package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -1
  684. package/dist/jsx/workspace/WorkspaceScreen.native.js +1 -1
  685. package/dist/jsx/workspace/WorkspaceScreen.native.js.map +1 -1
  686. package/dist/jsx/workspace/WorkspaceShortcut.native.js +1 -1
  687. package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -1
  688. package/dist/jsx/workspace/parseContent.native.js.map +1 -1
  689. package/dist/jsx/workspace/types.native.js.map +1 -1
  690. package/dist/jsx/workspace/useDashboardChart.native.js.map +1 -1
  691. package/dist/jsx/workspace/useWorkspaceDoc.native.js.map +1 -1
  692. package/package.json +12 -12
  693. package/src/backofficeScreens.designLaw.spec.ts +0 -5
  694. package/src/desk/DeskSurface.tsx +4 -7
  695. package/src/form/DocFormScreen.chrome.spec.ts +77 -0
  696. package/src/form/DocFormScreen.guest.screen.spec.tsx +175 -0
  697. package/src/form/DocFormScreen.rights.spec.tsx +7 -3
  698. package/src/form/DocFormScreen.tsx +214 -315
  699. package/src/i18n/en.ts +1 -0
  700. package/src/list/ListBulkActionsBar.rights.spec.tsx +134 -0
  701. package/src/list/ListBulkActionsBar.screen.spec.tsx +7 -1
  702. package/src/list/ListBulkActionsBar.tsx +76 -57
  703. package/src/list/ListFilterBar.screen.spec.tsx +14 -13
  704. package/src/list/sidebar-section.tsx +11 -3
  705. package/src/report/DoctypeReportView.tsx +28 -550
  706. package/src/report/QueryReportScreen.spec.tsx +75 -1
  707. package/src/report/QueryReportScreen.tsx +38 -22
  708. package/src/report/queryReportColumns.tsx +4 -123
  709. package/src/report/queryReportFilterBar.tsx +3 -5
  710. package/src/report/queryReportUrlState.ts +1 -1
  711. package/src/report/report-grid.tsx +4 -529
  712. package/src/report/report-toolbar.tsx +4 -308
  713. package/src/report/reportShapes.ts +25 -613
  714. package/src/report/reportShim.spec.ts +162 -0
  715. package/src/report/reportViewModel.ts +32 -605
  716. package/src/report/savedReports.ts +4 -161
  717. package/src/report/useQueryReport.ts +9 -347
  718. package/src/shared/measures.ts +3 -11
  719. package/src/views/ReportView.screen.spec.tsx +25 -20
  720. package/src/views/ReportView.tsx +7 -439
  721. package/src/views/report-controls.tsx +12 -20
  722. package/types/desk/DeskSurface.d.ts.map +1 -1
  723. package/types/form/DocFormScreen.d.ts +2 -2
  724. package/types/form/DocFormScreen.d.ts.map +1 -1
  725. package/types/i18n/en.d.ts +1 -0
  726. package/types/i18n/en.d.ts.map +1 -1
  727. package/types/list/ListBulkActionsBar.d.ts.map +1 -1
  728. package/types/list/sidebar-section.d.ts.map +1 -1
  729. package/types/report/DoctypeReportView.d.ts.map +1 -1
  730. package/types/report/QueryReportScreen.d.ts +1 -1
  731. package/types/report/QueryReportScreen.d.ts.map +1 -1
  732. package/types/report/queryReportColumns.d.ts +2 -11
  733. package/types/report/queryReportColumns.d.ts.map +1 -1
  734. package/types/report/queryReportFilterBar.d.ts +1 -1
  735. package/types/report/queryReportFilterBar.d.ts.map +1 -1
  736. package/types/report/queryReportUrlState.d.ts +1 -1
  737. package/types/report/queryReportUrlState.d.ts.map +1 -1
  738. package/types/report/report-grid.d.ts +2 -19
  739. package/types/report/report-grid.d.ts.map +1 -1
  740. package/types/report/report-toolbar.d.ts +2 -29
  741. package/types/report/report-toolbar.d.ts.map +1 -1
  742. package/types/report/reportShapes.d.ts +2 -115
  743. package/types/report/reportShapes.d.ts.map +1 -1
  744. package/types/report/reportViewModel.d.ts +2 -135
  745. package/types/report/reportViewModel.d.ts.map +1 -1
  746. package/types/report/savedReports.d.ts +2 -18
  747. package/types/report/savedReports.d.ts.map +1 -1
  748. package/types/report/useQueryReport.d.ts +2 -35
  749. package/types/report/useQueryReport.d.ts.map +1 -1
  750. package/types/shared/measures.d.ts +1 -2
  751. package/types/shared/measures.d.ts.map +1 -1
  752. package/types/views/ReportView.d.ts +3 -22
  753. package/types/views/ReportView.d.ts.map +1 -1
  754. package/types/views/report-controls.d.ts +2 -5
  755. package/types/views/report-controls.d.ts.map +1 -1
  756. package/src/report/report-grid.spec.tsx +0 -175
  757. package/src/report/report-toolbar.spec.tsx +0 -90
  758. package/src/report/reportShapes.spec.ts +0 -391
  759. package/src/report/reportViewModel.spec.ts +0 -393
@@ -26,7 +26,6 @@ __export(DocFormScreen_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(DocFormScreen_exports);
28
28
  var import_components = require("@multiplatform.one/components");
29
- var import_forms = require("@multiplatform.one/forms");
30
29
  var import_frappe_ui = require("@multiplatform.one/frappe-ui");
31
30
  var import_theme = require("@multiplatform.one/theme");
32
31
  var import_react = require("@phosphor-icons/react");
@@ -39,14 +38,11 @@ var import_listNavContext = require("../shared/listNavContext.cjs");
39
38
  var import_useDocinfo = require("../shared/useDocinfo.cjs");
40
39
  var import_useRecentVisit = require("../shared/useRecentVisit.cjs");
41
40
  var import_useDoctypeMeta = require("../shared/useDoctypeMeta.cjs");
42
- var import_useUserRoles = require("../shared/useUserRoles.cjs");
41
+ var import_connections_data = require("./connections-data.cjs");
43
42
  var import_createPrefill = require("./createPrefill.cjs");
44
- var import_docinfo = require("./docinfo.cjs");
45
- var import_fieldPermissions = require("./fieldPermissions.cjs");
46
43
  var import_formActions = require("./formActions.cjs");
47
44
  var import_FormDialogs = require("./FormDialogs.cjs");
48
45
  var import_FormErrorBoundary = require("./FormErrorBoundary.cjs");
49
- var import_formLayout = require("./formLayout.cjs");
50
46
  var import_FormConnections = require("./FormConnections.cjs");
51
47
  var import_FormHeaderCluster = require("./FormHeaderCluster.cjs");
52
48
  var import_FormSidebarPanel = require("./FormSidebarPanel.cjs");
@@ -54,7 +50,6 @@ var import_FormTimeline = require("./FormTimeline.cjs");
54
50
  var import_FormToolbar = require("./FormToolbar.cjs");
55
51
  var import_timeline_utils = require("./timeline-utils.cjs");
56
52
  var import_platformHooks = require("./platformHooks.cjs");
57
- var import_useFormEngine = require("./useFormEngine.cjs");
58
53
  var import_jsx_runtime = require("react/jsx-runtime");
59
54
  const CONNECTIONS_TAB = "__connections";
60
55
  function DocFormScreen({
@@ -103,29 +98,18 @@ function DocFormScreen({
103
98
  name
104
99
  });
105
100
  }, [isCreate, doctype, name, emitEvent]);
106
- const connection = (0, import_react2.useMemo)(() => config?.baseURL ? {
107
- baseURL: config.baseURL,
108
- socketPort: config.socketPort,
109
- siteName: config.siteName,
110
- socketBaseURL: config.socketBaseURL,
111
- auth: config.auth,
112
- syncOptions: config.syncOptions,
113
- fixtures: config.fixtures
114
- } : void 0, [config]);
115
101
  const {
116
102
  meta,
117
103
  loading: isMetaLoading,
118
104
  error: metaError,
119
105
  reload: refetchMeta
120
106
  } = (0, import_useDoctypeMeta.useDoctypeMeta)(doctype);
121
- const engine = (0, import_useFormEngine.useFormEngine)(connection, doctype, docName, meta, t);
122
- (0, import_react2.useEffect)(() => {
123
- if (metaError && !meta) emitEvent({
124
- type: "error",
125
- error: metaError,
126
- context: "form-meta"
127
- });
128
- }, [metaError, meta, emitEvent]);
107
+ const metaSource = (0, import_react2.useMemo)(() => ({
108
+ meta,
109
+ isLoading: isMetaLoading,
110
+ error: metaError
111
+ }), [meta, isMetaLoading, metaError]);
112
+ const metaRefused = !meta && metaError !== void 0 && (0, import_frappe_ui.isPermissionError)(metaError);
129
113
  const {
130
114
  docinfo,
131
115
  reload: reloadDocinfo
@@ -134,7 +118,32 @@ function DocFormScreen({
134
118
  if (docName) (0, import_useDocinfo.invalidateDocinfo)(doctype, docName);
135
119
  reloadDocinfo();
136
120
  }, [doctype, docName, reloadDocinfo]);
137
- const modifiedStamp = typeof engine.baseline?.modified === "string" ? engine.baseline.modified : void 0;
121
+ const fixtureMode = Boolean(config?.fixtures);
122
+ const rights = (0, import_react2.useMemo)(() => (0, import_frappe_ui.docinfoRights)(docinfo?.permissions) ?? (fixtureMode ? (0, import_frappe_ui.fixtureDocRights)(meta) : void 0), [docinfo?.permissions, fixtureMode, meta]);
123
+ const form = (0, import_frappe_ui.useFrappeForm)({
124
+ doctype,
125
+ name: docName,
126
+ meta: metaSource,
127
+ rights,
128
+ shares: docinfo?.shared,
129
+ readShares: false,
130
+ disabled: readOnly,
131
+ hideFields: hiddenFields,
132
+ hideSections: hiddenSections
133
+ });
134
+ const connection = form.connection;
135
+ const currentUser = form.user ?? "";
136
+ const perms = form.rights;
137
+ (0, import_react2.useEffect)(() => {
138
+ if (metaError && !meta && !metaRefused) {
139
+ emitEvent({
140
+ type: "error",
141
+ error: metaError,
142
+ context: "form-meta"
143
+ });
144
+ }
145
+ }, [metaError, meta, metaRefused, emitEvent]);
146
+ const modifiedStamp = typeof form.baseline?.modified === "string" ? form.baseline.modified : void 0;
138
147
  const stampRef = (0, import_react2.useRef)(void 0);
139
148
  (0, import_react2.useEffect)(() => {
140
149
  stampRef.current = void 0;
@@ -149,103 +158,20 @@ function DocFormScreen({
149
158
  reloadDocinfo();
150
159
  }
151
160
  }, [modifiedStamp, docName, doctype, reloadDocinfo]);
152
- const {
153
- roles,
154
- user: sessionUser
155
- } = (0, import_useUserRoles.useUserRoles)();
156
- const fixtureMode = Boolean(config?.fixtures);
157
- const recordOwner = !isCreate && typeof engine.baseline?.owner === "string" ? engine.baseline.owner : void 0;
158
- const perms = (0, import_react2.useMemo)(() => {
159
- const docPerms = (0, import_docinfo.normalizeDocPermissions)(docinfo?.permissions);
160
- if (docPerms) {
161
- return {
162
- write: !!docPerms.write,
163
- create: !!docPerms.create,
164
- delete: !!docPerms.delete,
165
- submit: !!docPerms.submit,
166
- cancel: !!docPerms.cancel,
167
- amend: !!docPerms.amend,
168
- email: !!docPerms.email,
169
- print: !!docPerms.print
170
- };
171
- }
172
- if (!fixtureMode) {
173
- const rights = (0, import_frappe_ui.sessionDocRights)({
174
- fixtures: false,
175
- meta,
176
- roles,
177
- user: sessionUser,
178
- owner: recordOwner,
179
- shares: docinfo?.shared
180
- });
181
- return {
182
- write: rights.write,
183
- create: rights.create,
184
- delete: rights.delete,
185
- submit: rights.submit,
186
- cancel: rights.cancel,
187
- amend: rights.amend,
188
- email: rights.email,
189
- print: rights.print
190
- };
191
- }
192
- const rules = meta?.permissions ?? [];
193
- const anyRole = key => rules.some(rule => !rule.permlevel && !!rule[key]);
194
- return {
195
- write: rules.length === 0 || anyRole("write"),
196
- create: rules.length === 0 || anyRole("create"),
197
- delete: anyRole("delete"),
198
- submit: anyRole("submit"),
199
- cancel: anyRole("cancel"),
200
- amend: anyRole("amend"),
201
- email: rules.length === 0 || anyRole("email"),
202
- print: rules.length === 0 || anyRole("print")
203
- };
204
- }, [docinfo?.permissions, docinfo?.shared, meta, fixtureMode, roles, sessionUser, recordOwner]);
205
- const isSubmittable = !!meta?.is_submittable;
206
- const formReadOnly = !!readOnly || !!meta?.read_only || engine.wasDeleted || !isCreate && !perms.write || isCreate && !perms.create;
207
- const permLevels = (0, import_react2.useMemo)(() => (0, import_fieldPermissions.buildPermLevelMatrix)(meta?.permissions, roles), [meta?.permissions, roles]);
208
- const formTabs = (0, import_react2.useMemo)(() => {
209
- if (!meta) return [];
210
- return (0, import_formLayout.buildFormTabs)({
211
- fields: meta.fields,
212
- // depends_on evaluates against the doc plus desk's ambient context:
213
- // __islocal (unsaved doc flag) and the session user behind
214
- // `frappe.session.user` references.
215
- doc: {
216
- ...engine.doc,
217
- __islocal: isCreate ? 1 : 0,
218
- ...(engine.currentUser ? {
219
- __session_user: engine.currentUser
220
- } : {})
221
- },
222
- docstatus: engine.docstatus,
223
- formReadOnly,
224
- isCreate,
225
- detailsLabel: t("detailsTab", "Details"),
226
- permLevels,
227
- hiddenFields,
228
- hiddenSections
229
- });
230
- }, [meta, engine.doc, engine.currentUser, engine.docstatus, formReadOnly, isCreate, permLevels, hiddenFields, hiddenSections, t]);
231
- const jumpTargets = (0, import_react2.useMemo)(() => formTabs.flatMap(tab => tab.schema.fields.map(field => ({
232
- name: field.name,
233
- label: field.label || field.name,
234
- tabKey: tab.key,
235
- tabLabel: tab.label
236
- }))), [formTabs]);
237
- const [activeTab, setActiveTab] = (0, import_react2.useState)(void 0);
238
- const showConnections = !isCreate && !!connection && (meta?.links?.some(link => !link.hidden) ?? false);
161
+ const isSubmittable = form.isSubmittable;
162
+ const formReadOnly = form.readOnly;
163
+ const jumpTargets = form.fieldTargets;
164
+ const showConnections = !isCreate && !!connection && (0, import_connections_data.groupConnectionLinks)(meta).length > 0;
239
165
  const [pendingNav, setPendingNav] = (0, import_react2.useState)(void 0);
240
166
  const navigate = (0, import_react2.useCallback)(href => {
241
- if (engine.isDirty) {
167
+ if (form.isDirty) {
242
168
  setPendingNav(href);
243
169
  return;
244
170
  }
245
171
  navigator.navigate(href);
246
- }, [engine.isDirty, navigator]);
247
- (0, import_platformHooks.useBeforeUnloadGuard)(engine.isDirty);
248
- const backGuard = (0, import_platformHooks.useNavigationDirtyGuard)(engine.isDirty);
172
+ }, [form.isDirty, navigator]);
173
+ (0, import_platformHooks.useBeforeUnloadGuard)(form.isDirty);
174
+ const backGuard = (0, import_platformHooks.useNavigationDirtyGuard)(form.isDirty);
249
175
  const [confirmAction, setConfirmAction] = (0, import_react2.useState)(void 0);
250
176
  const [renameOpen, setRenameOpen] = (0, import_react2.useState)(false);
251
177
  const [emailOpen, setEmailOpen] = (0, import_react2.useState)(false);
@@ -253,11 +179,10 @@ function DocFormScreen({
253
179
  const [pendingJump, setPendingJump] = (0, import_react2.useState)(void 0);
254
180
  const [validationSummary, setValidationSummary] = (0, import_react2.useState)(void 0);
255
181
  const handleSave = (0, import_react2.useCallback)(async () => {
256
- const validationErrors = engine.validate();
182
+ const validationErrors = form.validate();
257
183
  const errorFields = Object.keys(validationErrors);
258
184
  if (errorFields.length > 0) {
259
- const owner = formTabs.find(tab => tab.schema.fields.some(field => errorFields.includes(field.name)));
260
- if (owner) setActiveTab(owner.key);
185
+ errorFields.some(field => form.revealField(field));
261
186
  setValidationSummary(t("validationSummary", {
262
187
  count: errorFields.length,
263
188
  defaultValue_one: "Cannot save \u2014 {{count}} required field is missing.",
@@ -266,7 +191,7 @@ function DocFormScreen({
266
191
  } else {
267
192
  setValidationSummary(void 0);
268
193
  }
269
- const savedName = await engine.save();
194
+ const savedName = await form.save();
270
195
  if (!savedName) return;
271
196
  setValidationSummary(void 0);
272
197
  (0, import_components.notify)({
@@ -282,7 +207,7 @@ function DocFormScreen({
282
207
  isNew: isCreate
283
208
  });
284
209
  onSaved?.({
285
- ...engine.doc,
210
+ ...form.doc,
286
211
  name: savedName
287
212
  });
288
213
  if (isCreate) {
@@ -290,24 +215,17 @@ function DocFormScreen({
290
215
  } else {
291
216
  reloadDocinfo();
292
217
  }
293
- }, [engine, formTabs, isCreate, navigator, paths, doctype, reloadDocinfo, t, emitEvent, onSaved]);
218
+ }, [form, isCreate, navigator, paths, doctype, reloadDocinfo, t, emitEvent, onSaved]);
294
219
  (0, import_platformHooks.useSaveShortcut)(!formReadOnly, () => {
295
- if (engine.isDirty || isCreate) void handleSave();
220
+ if (form.isDirty || isCreate) void handleSave();
296
221
  });
297
222
  (0, import_platformHooks.useJumpToFieldShortcut)(jumpTargets.length > 0 && !jumpOpen, () => setJumpOpen(true));
298
223
  const handleAmend = (0, import_react2.useCallback)(() => {
299
- if (!meta || !docName) return;
300
- (0, import_createPrefill.setCreatePrefill)(doctype, {
301
- ...(0, import_formLayout.buildCopyValues)(meta.fields, engine.doc),
302
- amended_from: docName
303
- });
304
- navigator.navigate(paths.newDoc(doctype));
305
- }, [meta, docName, doctype, engine.doc, navigator, paths]);
224
+ if (form.amend()) navigator.navigate(paths.newDoc(doctype));
225
+ }, [form, doctype, navigator, paths]);
306
226
  const handleDuplicate = (0, import_react2.useCallback)(() => {
307
- if (!meta) return;
308
- (0, import_createPrefill.setCreatePrefill)(doctype, (0, import_formLayout.buildCopyValues)(meta.fields, engine.doc));
309
- navigator.navigate(paths.newDoc(doctype));
310
- }, [meta, doctype, engine.doc, navigator, paths]);
227
+ if (form.duplicate()) navigator.navigate(paths.newDoc(doctype));
228
+ }, [form, doctype, navigator, paths]);
311
229
  const handleRename = (0, import_react2.useCallback)(async newName => {
312
230
  if (!connection || !docName) return;
313
231
  try {
@@ -322,11 +240,11 @@ function DocFormScreen({
322
240
  if (target) navigate(paths.form(doctype, target));
323
241
  }, [navigate, paths, doctype]);
324
242
  (0, import_platformHooks.useDocPagerShortcuts)(docPager.inList, () => openNeighborDoc(docPager.prev), () => openNeighborDoc(docPager.next));
325
- const titleFieldValue = meta?.title_field && typeof engine.doc[meta.title_field] === "string" ?
243
+ const titleFieldValue = meta?.title_field && typeof form.doc[meta.title_field] === "string" ?
326
244
  // Title fields can hold rich text (e.g. ToDo.description = "<p>…</p>");
327
245
  // strip to plain text so the breadcrumb + toolbar heading don't show
328
246
  // literal HTML tags.
329
- (0, import_timeline_utils.htmlToText)(engine.doc[meta.title_field]) : void 0;
247
+ (0, import_timeline_utils.htmlToText)(form.doc[meta.title_field]) : void 0;
330
248
  const title = isCreate ? t("newDocTitle", "New {{doctype}}", {
331
249
  doctype
332
250
  }) : titleFieldValue || name;
@@ -337,18 +255,21 @@ function DocFormScreen({
337
255
  label: t("menuReload", "Reload"),
338
256
  icon: "reload",
339
257
  onSelect: () => {
340
- engine.reload();
258
+ form.reset();
341
259
  setValidationSummary(void 0);
342
260
  refetchMeta();
343
261
  (0, import_useDocinfo.invalidateDocinfo)(doctype, name);
344
262
  reloadDocinfo();
345
263
  }
346
- }, {
347
- key: "duplicate",
348
- label: t("menuDuplicate", "Duplicate"),
349
- icon: "duplicate",
350
- onSelect: handleDuplicate
351
264
  }];
265
+ if (!metaRefused) {
266
+ items.push({
267
+ key: "duplicate",
268
+ label: t("menuDuplicate", "Duplicate"),
269
+ icon: "duplicate",
270
+ onSelect: handleDuplicate
271
+ });
272
+ }
352
273
  if (meta?.allow_rename && perms.write) {
353
274
  items.push({
354
275
  key: "rename",
@@ -381,7 +302,7 @@ function DocFormScreen({
381
302
  key: "links",
382
303
  label: t("menuLinks", "Links"),
383
304
  icon: "links",
384
- onSelect: () => setActiveTab(CONNECTIONS_TAB)
305
+ onSelect: () => form.setActiveTab(CONNECTIONS_TAB)
385
306
  });
386
307
  }
387
308
  if (jumpTargets.length > 0) {
@@ -428,10 +349,10 @@ function DocFormScreen({
428
349
  });
429
350
  }
430
351
  return items;
431
- }, [isCreate, t, engine, refetchMeta, reloadDocinfo, handleDuplicate, meta?.allow_rename, perms, connection, doctype, name, showConnections, jumpTargets, navigate, paths, capabilities]);
352
+ }, [isCreate, t, form, refetchMeta, reloadDocinfo, handleDuplicate, metaRefused, meta?.allow_rename, perms, connection, doctype, name, showConnections, jumpTargets, navigate, paths, capabilities]);
432
353
  const effectiveMenuItems = (0, import_react2.useMemo)(() => {
433
- const hidden = new Set(actionOverrides?.hide ?? []);
434
- const items = menuItems.filter(item => !hidden.has(item.key));
354
+ const hiddenKeys = new Set(actionOverrides?.hide ?? []);
355
+ const items = menuItems.filter(item => !hiddenKeys.has(item.key));
435
356
  const injected = [...(0, import_BackofficeProvider.actionsForDoctype)(actions.form, doctype), ...(0, import_BackofficeProvider.actionsForDoctype)(actionOverrides?.extra, doctype)];
436
357
  for (const action of injected) {
437
358
  items.push({
@@ -449,9 +370,9 @@ function DocFormScreen({
449
370
  }, [menuItems, actions.form, actionOverrides, doctype, docName]);
450
371
  const handleJumpToField = (0, import_react2.useCallback)(field => {
451
372
  setJumpOpen(false);
452
- setActiveTab(field.tabKey);
373
+ form.setActiveTab(field.tabKey);
453
374
  setPendingJump(field.name);
454
- }, []);
375
+ }, [form]);
455
376
  (0, import_react2.useEffect)(() => {
456
377
  if (!pendingJump) return;
457
378
  if (typeof document === "undefined") {
@@ -498,18 +419,59 @@ function DocFormScreen({
498
419
  })
499
420
  });
500
421
  }
501
- if (metaError && !meta) {
422
+ if (metaError && !meta && !metaRefused) {
502
423
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
503
424
  flex: 1,
504
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.EmptyState, {
505
- title: t("metaError", "Could not load {{doctype}}", {
425
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.AsyncBoundary, {
426
+ error: metaError,
427
+ errorTitle: t("metaError", "Could not load {{doctype}}", {
506
428
  doctype
507
429
  }),
508
- description: metaError.message
430
+ onRetry: refetchMeta
509
431
  })
510
432
  });
511
433
  }
512
- if (!isCreate && engine.notFound) {
434
+ if (!isCreate && form.status === "error" && form.docError && (0, import_frappe_ui.isPermissionError)(form.docError)) {
435
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
436
+ flex: 1,
437
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.EmptyState, {
438
+ testID: "frappe-form-not-permitted",
439
+ title: t("docNotPermitted", "You can't open {{doctype}} {{name}}", {
440
+ doctype,
441
+ name
442
+ }),
443
+ description: (0, import_frappe_ui.refusalReason)(form.docError),
444
+ action: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Button, {
445
+ icon: import_react.ListBulletsIcon,
446
+ onPress: () => navigator.navigate(paths.list(doctype)),
447
+ children: t("backToList", "Back to {{doctype}} list", {
448
+ doctype
449
+ })
450
+ })
451
+ })
452
+ });
453
+ }
454
+ if (!isCreate && form.status === "error" && form.docError) {
455
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
456
+ flex: 1,
457
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.EmptyState, {
458
+ intent: "error",
459
+ title: t("docLoadError", "Could not load {{doctype}} {{name}}", {
460
+ doctype,
461
+ name
462
+ }),
463
+ description: form.docError.message,
464
+ action: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Button, {
465
+ icon: import_react.ListBulletsIcon,
466
+ onPress: () => navigator.navigate(paths.list(doctype)),
467
+ children: t("backToList", "Back to {{doctype}} list", {
468
+ doctype
469
+ })
470
+ })
471
+ })
472
+ });
473
+ }
474
+ if (!isCreate && form.status === "notFound") {
513
475
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
514
476
  flex: 1,
515
477
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.EmptyState, {
@@ -528,7 +490,7 @@ function DocFormScreen({
528
490
  })
529
491
  });
530
492
  }
531
- if (!isCreate && engine.isLoading) {
493
+ if (!isCreate && form.status === "loading") {
532
494
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
533
495
  flex: 1,
534
496
  ...knobProps.panelPadding,
@@ -540,16 +502,16 @@ function DocFormScreen({
540
502
  }
541
503
  const indicator = (0, import_FormToolbar.resolveIndicator)({
542
504
  isCreate,
543
- isDirty: engine.isDirty,
544
- docstatus: engine.docstatus,
505
+ isDirty: form.isDirty,
506
+ docstatus: form.docstatus,
545
507
  isSubmittable,
546
- statusValue: typeof engine.doc.status === "string" ? engine.doc.status : void 0,
508
+ statusValue: typeof form.doc.status === "string" ? form.doc.status : void 0,
547
509
  states: meta?.states
548
510
  });
549
- const canSave = !formReadOnly && (isCreate ? perms.create : perms.write && engine.docstatus === 0);
550
- const canSubmit = !isCreate && isSubmittable && engine.docstatus === 0 && !engine.isDirty && perms.submit && !engine.wasDeleted;
551
- const canCancel = !isCreate && isSubmittable && engine.docstatus === 1 && perms.cancel && !engine.wasDeleted;
552
- const canAmend = !isCreate && isSubmittable && engine.docstatus === 2 && perms.amend && !engine.wasDeleted;
511
+ const canSave = !formReadOnly && (isCreate ? perms.create : perms.write && form.docstatus === 0);
512
+ const canSubmit = !isCreate && isSubmittable && form.docstatus === 0 && !form.isDirty && perms.submit && !form.wasDeleted;
513
+ const canCancel = !isCreate && isSubmittable && form.docstatus === 1 && perms.cancel && !form.wasDeleted;
514
+ const canAmend = !isCreate && isSubmittable && form.docstatus === 2 && perms.amend && !form.wasDeleted;
553
515
  const breadcrumbs = [{
554
516
  label: t("home", "Home"),
555
517
  href: paths.home()
@@ -559,29 +521,8 @@ function DocFormScreen({
559
521
  }, {
560
522
  label: isCreate ? t("newCrumb", "New") : title
561
523
  }];
562
- const promptNamed = isCreate && (0, import_formLayout.isPromptNamed)(meta?.autoname, meta?.naming_rule);
563
524
  const sidebarStacked = sizeClass === "compact";
564
- const bodyTabs = [...formTabs.map(tab => ({
565
- value: tab.key,
566
- label: tab.label,
567
- content: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
568
- ...knobProps.gapLg,
569
- paddingTop: "$3",
570
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_FormErrorBoundary.FormErrorBoundary, {
571
- errorTitle: t("formTabRenderError", "This form tab failed to render"),
572
- testID: `form-tab-error-${tab.key}`,
573
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_frappe_ui.SchemaForm, {
574
- schema: tab.schema,
575
- doc: engine.doc,
576
- setValue: engine.setValue,
577
- errors: engine.errors,
578
- disabled: formReadOnly || engine.isSaving,
579
- sectionHeadingLevel: 2,
580
- renderFieldWrapper: import_FormErrorBoundary.wrapFieldWithErrorBoundary
581
- })
582
- })
583
- })
584
- })), ...(showConnections ? [{
525
+ const connectionsTab = showConnections ? [{
585
526
  value: CONNECTIONS_TAB,
586
527
  label: t("connectionsTab", "Connections"),
587
528
  content: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
@@ -592,38 +533,40 @@ function DocFormScreen({
592
533
  meta
593
534
  })
594
535
  })
595
- }] : [])];
596
- const effectiveTab = activeTab && bodyTabs.some(tab => tab.value === activeTab) ? activeTab : bodyTabs[0]?.value;
536
+ }] : [];
537
+ const renderTab = (tab, content) => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
538
+ ...knobProps.gapLg,
539
+ paddingTop: "$3",
540
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_FormErrorBoundary.FormErrorBoundary, {
541
+ errorTitle: t("formTabRenderError", "This form tab failed to render"),
542
+ testID: `form-tab-error-${tab.key}`,
543
+ children: content
544
+ })
545
+ });
597
546
  const formBody =
598
- // No flex here: formBody now lives inside COLUMN containers (both
599
- // branches below), where `flex={1}` means flex-basis:0 — the body would
600
- // stop contributing height and the timeline/sidebar would paint over it.
547
+ // No flex here: formBody lives inside COLUMN containers (both branches
548
+ // below), where `flex={1}` means flex-basis:0 — the body would stop
549
+ // contributing height and the timeline/sidebar would paint over it.
601
550
  /* @__PURE__ */
602
- (0, import_jsx_runtime.jsxs)(import_components.YStack, {
551
+ (0, import_jsx_runtime.jsx)(import_components.YStack, {
603
552
  minWidth: 0,
604
- ...knobProps.gapLg,
605
- children: [promptNamed && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
606
- ...knobProps.gap,
607
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Input, {
608
- label: t("namePrompt", "Name"),
609
- value: typeof engine.doc.name === "string" ? engine.doc.name : "",
610
- onChangeText: value => engine.setValue("name", value),
611
- placeholder: t("namePromptPlaceholder", "New document name"),
612
- error: engine.errors.name
613
- })
614
- }), bodyTabs.length > 1 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Tabs, {
615
- items: bodyTabs,
616
- value: effectiveTab,
617
- onChange: setActiveTab,
618
- lazyMount: true
619
- }) : bodyTabs[0]?.content ?? null, engine.errors.general && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
620
- color: "$red10",
621
- fontSize: "$3",
622
- role: "alert",
623
- children: engine.errors.general
624
- })]
553
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_frappe_ui.FrappeForm, {
554
+ form,
555
+ doctype,
556
+ name: docName,
557
+ disabled: readOnly,
558
+ showToolbar: false,
559
+ showSidebar: false,
560
+ showTimeline: false,
561
+ showConnections: false,
562
+ showBanners: false,
563
+ sectionHeadingLevel: 2,
564
+ renderFieldWrapper: import_FormErrorBoundary.wrapFieldWithErrorBoundary,
565
+ renderTab,
566
+ extraTabs: connectionsTab
567
+ })
625
568
  });
626
- const timeline = capabilities.timeline.enabled && !isCreate && docName ?
569
+ const timeline = capabilities.timeline.enabled && !isCreate && docName && !metaRefused ?
627
570
  // Composed mode: the screen's shared docinfo (and its refresh) feed
628
571
  // the timeline. Self-fetch mode subscribed the timeline to its OWN
629
572
  // cache entry, which the save path's invalidate+reload orphaned — the
@@ -635,16 +578,16 @@ function DocFormScreen({
635
578
  name: docName,
636
579
  docInfo: docinfo,
637
580
  refreshDocInfo: refreshDocinfo,
638
- currentUser: engine.currentUser,
581
+ currentUser,
639
582
  connection
640
583
  }) : null;
641
584
  const sidebar = !isCreate && docName && meta ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_FormSidebarPanel.FormSidebarPanel, {
642
585
  doctype,
643
586
  name: docName,
644
587
  meta,
645
- doc: engine.doc,
588
+ doc: form.doc,
646
589
  docinfo,
647
- currentUser: engine.currentUser,
590
+ currentUser,
648
591
  onRefresh: refreshDocinfo,
649
592
  stacked: sidebarStacked
650
593
  }) : null;
@@ -654,12 +597,12 @@ function DocFormScreen({
654
597
  title,
655
598
  indicator,
656
599
  showIndicator: !!meta,
657
- isSaving: engine.isSaving,
658
- cluster: !isCreate && docName ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_FormHeaderCluster.FormHeaderCluster, {
600
+ isSaving: form.isSubmitting,
601
+ cluster: !isCreate && docName && !metaRefused ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_FormHeaderCluster.FormHeaderCluster, {
659
602
  doctype,
660
603
  name: docName,
661
604
  docinfo,
662
- currentUser: engine.currentUser,
605
+ currentUser,
663
606
  onRefresh: refreshDocinfo
664
607
  }) : void 0,
665
608
  canSave,
@@ -687,9 +630,9 @@ function DocFormScreen({
687
630
  name: docName
688
631
  } : {}),
689
632
  defaultContent: toolbar
690
- }) : toolbar, (engine.wasDeleted || validationSummary || engine.conflict) && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
633
+ }) : toolbar, (form.wasDeleted || validationSummary || form.conflict) && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
691
634
  paddingHorizontal: "$3",
692
- children: [engine.wasDeleted && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
635
+ children: [form.wasDeleted && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
693
636
  role: "alert",
694
637
  ...knobProps.containerRadius,
695
638
  ...knobProps.panelPadding,
@@ -699,7 +642,7 @@ function DocFormScreen({
699
642
  fontSize: "$3",
700
643
  children: t("deletedBanner", "This document was deleted on the server. Fields are read-only.")
701
644
  })
702
- }), validationSummary && !engine.wasDeleted && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
645
+ }), validationSummary && !form.wasDeleted && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
703
646
  role: "alert",
704
647
  ...knobProps.containerRadius,
705
648
  ...knobProps.panelPadding,
@@ -710,7 +653,7 @@ function DocFormScreen({
710
653
  fontSize: "$3",
711
654
  children: validationSummary
712
655
  })
713
- }), engine.conflict && !engine.wasDeleted && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
656
+ }), form.conflict && !form.wasDeleted && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
714
657
  role: "status",
715
658
  alignItems: "center",
716
659
  justifyContent: "space-between",
@@ -727,7 +670,7 @@ function DocFormScreen({
727
670
  size: "$2",
728
671
  outlined: true,
729
672
  "aria-label": t("reloadDoc", "Reload"),
730
- onPress: engine.reload,
673
+ onPress: form.reset,
731
674
  children: t("reloadDoc", "Reload")
732
675
  })]
733
676
  })]
@@ -767,7 +710,7 @@ function DocFormScreen({
767
710
  warning: true,
768
711
  onConfirm: () => {
769
712
  setConfirmAction(void 0);
770
- void engine.submit().then(ok => {
713
+ void form.submitDocument().then(ok => {
771
714
  if (ok) {
772
715
  (0, import_components.notify)({
773
716
  severity: "success",
@@ -789,7 +732,7 @@ function DocFormScreen({
789
732
  destructive: true,
790
733
  onConfirm: () => {
791
734
  setConfirmAction(void 0);
792
- void engine.cancel().then(ok => {
735
+ void form.cancelDocument().then(ok => {
793
736
  if (ok) {
794
737
  (0, import_components.notify)({
795
738
  severity: "success",
@@ -812,7 +755,7 @@ function DocFormScreen({
812
755
  destructive: true,
813
756
  onConfirm: () => {
814
757
  setConfirmAction(void 0);
815
- void engine.remove().then(ok => {
758
+ void form.remove().then(ok => {
816
759
  if (ok) {
817
760
  (0, import_useDocinfo.invalidateDocinfo)(doctype, name);
818
761
  emitEvent({