@multiplatform.one/backoffice 7.4.1 → 7.6.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 (444) hide show
  1. package/dist/cjs/chrome/HelpMenu.cjs +13 -7
  2. package/dist/cjs/chrome/HelpMenu.native.js +14 -7
  3. package/dist/cjs/chrome/HelpMenu.native.js.map +1 -1
  4. package/dist/cjs/chrome/NotificationsButton.cjs +5 -1
  5. package/dist/cjs/chrome/NotificationsButton.native.js +5 -1
  6. package/dist/cjs/chrome/NotificationsButton.native.js.map +1 -1
  7. package/dist/cjs/chrome/UserMenu.cjs +13 -8
  8. package/dist/cjs/chrome/UserMenu.native.js +13 -8
  9. package/dist/cjs/chrome/UserMenu.native.js.map +1 -1
  10. package/dist/cjs/chrome/help-about-dialog.cjs +2 -2
  11. package/dist/cjs/chrome/help-about-dialog.native.js +2 -2
  12. package/dist/cjs/chrome/help-shortcuts-dialog.cjs +6 -3
  13. package/dist/cjs/chrome/help-shortcuts-dialog.native.js +6 -3
  14. package/dist/cjs/chrome/help-shortcuts-dialog.native.js.map +1 -1
  15. package/dist/cjs/chrome/notifications-panel.cjs +11 -6
  16. package/dist/cjs/chrome/notifications-panel.native.js +11 -6
  17. package/dist/cjs/chrome/notifications-panel.native.js.map +1 -1
  18. package/dist/cjs/form/FormConnections.cjs +2 -1
  19. package/dist/cjs/form/FormConnections.native.js +2 -1
  20. package/dist/cjs/form/FormConnections.native.js.map +1 -1
  21. package/dist/cjs/form/FormErrorBoundary.cjs +1 -1
  22. package/dist/cjs/form/FormErrorBoundary.native.js +1 -1
  23. package/dist/cjs/form/FormHeaderCluster.cjs +7 -3
  24. package/dist/cjs/form/FormHeaderCluster.native.js +8 -4
  25. package/dist/cjs/form/FormHeaderCluster.native.js.map +1 -1
  26. package/dist/cjs/form/FormSidebarPanel.cjs +9 -8
  27. package/dist/cjs/form/FormSidebarPanel.native.js +10 -9
  28. package/dist/cjs/form/FormSidebarPanel.native.js.map +1 -1
  29. package/dist/cjs/form/FormTimeline.cjs +14 -13
  30. package/dist/cjs/form/FormTimeline.native.js +15 -13
  31. package/dist/cjs/form/FormTimeline.native.js.map +1 -1
  32. package/dist/cjs/form/FormToolbar.cjs +16 -16
  33. package/dist/cjs/form/FormToolbar.native.js +17 -17
  34. package/dist/cjs/form/FormToolbar.native.js.map +1 -1
  35. package/dist/cjs/form/sidebar-people.cjs +2 -2
  36. package/dist/cjs/form/sidebar-people.native.js +2 -2
  37. package/dist/cjs/form/sidebar-people.native.js.map +1 -1
  38. package/dist/cjs/list/DoctypeListScreen.cjs +7 -3
  39. package/dist/cjs/list/DoctypeListScreen.native.js +7 -3
  40. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  41. package/dist/cjs/list/ListBulkActionsBar.cjs +27 -23
  42. package/dist/cjs/list/ListBulkActionsBar.native.js +27 -23
  43. package/dist/cjs/list/ListBulkActionsBar.native.js.map +1 -1
  44. package/dist/cjs/list/ListFilterBar.cjs +10 -5
  45. package/dist/cjs/list/ListFilterBar.native.js +11 -5
  46. package/dist/cjs/list/ListFilterBar.native.js.map +1 -1
  47. package/dist/cjs/list/list-tools-sheet.cjs +9 -4
  48. package/dist/cjs/list/list-tools-sheet.native.js +10 -4
  49. package/dist/cjs/list/list-tools-sheet.native.js.map +1 -1
  50. package/dist/cjs/list/listColumns.cjs +20 -29
  51. package/dist/cjs/list/listColumns.native.js +24 -29
  52. package/dist/cjs/list/listColumns.native.js.map +1 -1
  53. package/dist/cjs/list/sidebar-section.cjs +8 -14
  54. package/dist/cjs/list/sidebar-section.native.js +8 -14
  55. package/dist/cjs/list/sidebar-section.native.js.map +1 -1
  56. package/dist/cjs/report/QueryReportScreen.cjs +6 -2
  57. package/dist/cjs/report/QueryReportScreen.native.js +6 -2
  58. package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
  59. package/dist/cjs/report/queryReportFilterBar.cjs +1 -1
  60. package/dist/cjs/report/queryReportFilterBar.native.js +1 -1
  61. package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
  62. package/dist/cjs/report/report-grid.cjs +4 -4
  63. package/dist/cjs/report/report-grid.native.js +4 -4
  64. package/dist/cjs/report/report-toolbar.cjs +5 -11
  65. package/dist/cjs/report/report-toolbar.native.js +5 -11
  66. package/dist/cjs/report/report-toolbar.native.js.map +1 -1
  67. package/dist/cjs/shell/BackofficeShell.cjs +7 -6
  68. package/dist/cjs/shell/BackofficeShell.native.js +7 -6
  69. package/dist/cjs/shell/BackofficeShell.native.js.map +1 -1
  70. package/dist/cjs/shell/WorkspaceSidebar.cjs +2 -2
  71. package/dist/cjs/shell/WorkspaceSidebar.native.js +2 -2
  72. package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -1
  73. package/dist/cjs/views/KanbanView.cjs +4 -4
  74. package/dist/cjs/views/KanbanView.native.js +4 -4
  75. package/dist/cjs/views/KanbanView.native.js.map +1 -1
  76. package/dist/cjs/views/ViewHeader.cjs +2 -2
  77. package/dist/cjs/views/ViewHeader.native.js +2 -2
  78. package/dist/cjs/views/ViewHeader.native.js.map +1 -1
  79. package/dist/cjs/views/ViewStates.cjs +2 -1
  80. package/dist/cjs/views/ViewStates.native.js +2 -1
  81. package/dist/cjs/views/ViewStates.native.js.map +1 -1
  82. package/dist/cjs/views/kanban-board-controls.cjs +12 -7
  83. package/dist/cjs/views/kanban-board-controls.native.js +14 -7
  84. package/dist/cjs/views/kanban-board-controls.native.js.map +1 -1
  85. package/dist/cjs/views/report-controls.cjs +16 -16
  86. package/dist/cjs/views/report-controls.native.js +16 -16
  87. package/dist/cjs/views/report-controls.native.js.map +1 -1
  88. package/dist/cjs/workspace/WorkspaceChartBlock.cjs +6 -5
  89. package/dist/cjs/workspace/WorkspaceChartBlock.native.js +6 -5
  90. package/dist/cjs/workspace/WorkspaceChartBlock.native.js.map +1 -1
  91. package/dist/cjs/workspace/WorkspaceLinkCard.cjs +15 -10
  92. package/dist/cjs/workspace/WorkspaceLinkCard.native.js +15 -10
  93. package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -1
  94. package/dist/cjs/workspace/WorkspaceNumberCard.cjs +12 -10
  95. package/dist/cjs/workspace/WorkspaceNumberCard.native.js +12 -10
  96. package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -1
  97. package/dist/cjs/workspace/WorkspaceQuickList.cjs +9 -7
  98. package/dist/cjs/workspace/WorkspaceQuickList.native.js +9 -7
  99. package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -1
  100. package/dist/cjs/workspace/WorkspaceRecents.cjs +5 -3
  101. package/dist/cjs/workspace/WorkspaceRecents.native.js +6 -4
  102. package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -1
  103. package/dist/cjs/workspace/WorkspaceShortcut.cjs +16 -23
  104. package/dist/cjs/workspace/WorkspaceShortcut.native.js +17 -24
  105. package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -1
  106. package/dist/esm/chrome/HelpMenu.mjs +13 -7
  107. package/dist/esm/chrome/HelpMenu.mjs.map +1 -1
  108. package/dist/esm/chrome/HelpMenu.native.js +14 -7
  109. package/dist/esm/chrome/HelpMenu.native.js.map +1 -1
  110. package/dist/esm/chrome/NotificationsButton.mjs +5 -1
  111. package/dist/esm/chrome/NotificationsButton.mjs.map +1 -1
  112. package/dist/esm/chrome/NotificationsButton.native.js +5 -1
  113. package/dist/esm/chrome/NotificationsButton.native.js.map +1 -1
  114. package/dist/esm/chrome/UserMenu.mjs +13 -8
  115. package/dist/esm/chrome/UserMenu.mjs.map +1 -1
  116. package/dist/esm/chrome/UserMenu.native.js +13 -8
  117. package/dist/esm/chrome/UserMenu.native.js.map +1 -1
  118. package/dist/esm/chrome/help-about-dialog.mjs +2 -2
  119. package/dist/esm/chrome/help-about-dialog.native.js +2 -2
  120. package/dist/esm/chrome/help-shortcuts-dialog.mjs +6 -3
  121. package/dist/esm/chrome/help-shortcuts-dialog.mjs.map +1 -1
  122. package/dist/esm/chrome/help-shortcuts-dialog.native.js +6 -3
  123. package/dist/esm/chrome/help-shortcuts-dialog.native.js.map +1 -1
  124. package/dist/esm/chrome/notifications-panel.mjs +12 -7
  125. package/dist/esm/chrome/notifications-panel.mjs.map +1 -1
  126. package/dist/esm/chrome/notifications-panel.native.js +12 -7
  127. package/dist/esm/chrome/notifications-panel.native.js.map +1 -1
  128. package/dist/esm/form/FormConnections.mjs +2 -1
  129. package/dist/esm/form/FormConnections.mjs.map +1 -1
  130. package/dist/esm/form/FormConnections.native.js +2 -1
  131. package/dist/esm/form/FormConnections.native.js.map +1 -1
  132. package/dist/esm/form/FormErrorBoundary.mjs +1 -1
  133. package/dist/esm/form/FormErrorBoundary.native.js +1 -1
  134. package/dist/esm/form/FormHeaderCluster.mjs +8 -4
  135. package/dist/esm/form/FormHeaderCluster.mjs.map +1 -1
  136. package/dist/esm/form/FormHeaderCluster.native.js +9 -5
  137. package/dist/esm/form/FormHeaderCluster.native.js.map +1 -1
  138. package/dist/esm/form/FormSidebarPanel.mjs +9 -8
  139. package/dist/esm/form/FormSidebarPanel.mjs.map +1 -1
  140. package/dist/esm/form/FormSidebarPanel.native.js +10 -9
  141. package/dist/esm/form/FormSidebarPanel.native.js.map +1 -1
  142. package/dist/esm/form/FormTimeline.mjs +14 -13
  143. package/dist/esm/form/FormTimeline.mjs.map +1 -1
  144. package/dist/esm/form/FormTimeline.native.js +15 -13
  145. package/dist/esm/form/FormTimeline.native.js.map +1 -1
  146. package/dist/esm/form/FormToolbar.mjs +17 -17
  147. package/dist/esm/form/FormToolbar.mjs.map +1 -1
  148. package/dist/esm/form/FormToolbar.native.js +18 -18
  149. package/dist/esm/form/FormToolbar.native.js.map +1 -1
  150. package/dist/esm/form/sidebar-people.mjs +2 -2
  151. package/dist/esm/form/sidebar-people.mjs.map +1 -1
  152. package/dist/esm/form/sidebar-people.native.js +2 -2
  153. package/dist/esm/form/sidebar-people.native.js.map +1 -1
  154. package/dist/esm/list/DoctypeListScreen.mjs +8 -4
  155. package/dist/esm/list/DoctypeListScreen.mjs.map +1 -1
  156. package/dist/esm/list/DoctypeListScreen.native.js +8 -4
  157. package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
  158. package/dist/esm/list/ListBulkActionsBar.mjs +22 -18
  159. package/dist/esm/list/ListBulkActionsBar.mjs.map +1 -1
  160. package/dist/esm/list/ListBulkActionsBar.native.js +22 -18
  161. package/dist/esm/list/ListBulkActionsBar.native.js.map +1 -1
  162. package/dist/esm/list/ListFilterBar.mjs +10 -5
  163. package/dist/esm/list/ListFilterBar.mjs.map +1 -1
  164. package/dist/esm/list/ListFilterBar.native.js +11 -5
  165. package/dist/esm/list/ListFilterBar.native.js.map +1 -1
  166. package/dist/esm/list/list-tools-sheet.mjs +9 -4
  167. package/dist/esm/list/list-tools-sheet.mjs.map +1 -1
  168. package/dist/esm/list/list-tools-sheet.native.js +10 -4
  169. package/dist/esm/list/list-tools-sheet.native.js.map +1 -1
  170. package/dist/esm/list/listColumns.mjs +21 -30
  171. package/dist/esm/list/listColumns.mjs.map +1 -1
  172. package/dist/esm/list/listColumns.native.js +25 -30
  173. package/dist/esm/list/listColumns.native.js.map +1 -1
  174. package/dist/esm/list/sidebar-section.mjs +9 -15
  175. package/dist/esm/list/sidebar-section.mjs.map +1 -1
  176. package/dist/esm/list/sidebar-section.native.js +9 -15
  177. package/dist/esm/list/sidebar-section.native.js.map +1 -1
  178. package/dist/esm/report/QueryReportScreen.mjs +6 -2
  179. package/dist/esm/report/QueryReportScreen.mjs.map +1 -1
  180. package/dist/esm/report/QueryReportScreen.native.js +6 -2
  181. package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
  182. package/dist/esm/report/queryReportFilterBar.mjs +1 -1
  183. package/dist/esm/report/queryReportFilterBar.mjs.map +1 -1
  184. package/dist/esm/report/queryReportFilterBar.native.js +1 -1
  185. package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
  186. package/dist/esm/report/report-grid.mjs +4 -4
  187. package/dist/esm/report/report-grid.native.js +4 -4
  188. package/dist/esm/report/report-toolbar.mjs +6 -12
  189. package/dist/esm/report/report-toolbar.mjs.map +1 -1
  190. package/dist/esm/report/report-toolbar.native.js +6 -12
  191. package/dist/esm/report/report-toolbar.native.js.map +1 -1
  192. package/dist/esm/shell/BackofficeShell.mjs +6 -5
  193. package/dist/esm/shell/BackofficeShell.mjs.map +1 -1
  194. package/dist/esm/shell/BackofficeShell.native.js +6 -5
  195. package/dist/esm/shell/BackofficeShell.native.js.map +1 -1
  196. package/dist/esm/shell/WorkspaceSidebar.mjs +2 -2
  197. package/dist/esm/shell/WorkspaceSidebar.mjs.map +1 -1
  198. package/dist/esm/shell/WorkspaceSidebar.native.js +2 -2
  199. package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -1
  200. package/dist/esm/views/KanbanView.mjs +4 -4
  201. package/dist/esm/views/KanbanView.mjs.map +1 -1
  202. package/dist/esm/views/KanbanView.native.js +4 -4
  203. package/dist/esm/views/KanbanView.native.js.map +1 -1
  204. package/dist/esm/views/ViewHeader.mjs +2 -2
  205. package/dist/esm/views/ViewHeader.mjs.map +1 -1
  206. package/dist/esm/views/ViewHeader.native.js +2 -2
  207. package/dist/esm/views/ViewHeader.native.js.map +1 -1
  208. package/dist/esm/views/ViewStates.mjs +2 -1
  209. package/dist/esm/views/ViewStates.mjs.map +1 -1
  210. package/dist/esm/views/ViewStates.native.js +2 -1
  211. package/dist/esm/views/ViewStates.native.js.map +1 -1
  212. package/dist/esm/views/kanban-board-controls.mjs +12 -7
  213. package/dist/esm/views/kanban-board-controls.mjs.map +1 -1
  214. package/dist/esm/views/kanban-board-controls.native.js +14 -7
  215. package/dist/esm/views/kanban-board-controls.native.js.map +1 -1
  216. package/dist/esm/views/report-controls.mjs +18 -18
  217. package/dist/esm/views/report-controls.mjs.map +1 -1
  218. package/dist/esm/views/report-controls.native.js +18 -18
  219. package/dist/esm/views/report-controls.native.js.map +1 -1
  220. package/dist/esm/workspace/WorkspaceChartBlock.mjs +7 -6
  221. package/dist/esm/workspace/WorkspaceChartBlock.mjs.map +1 -1
  222. package/dist/esm/workspace/WorkspaceChartBlock.native.js +7 -6
  223. package/dist/esm/workspace/WorkspaceChartBlock.native.js.map +1 -1
  224. package/dist/esm/workspace/WorkspaceLinkCard.mjs +16 -11
  225. package/dist/esm/workspace/WorkspaceLinkCard.mjs.map +1 -1
  226. package/dist/esm/workspace/WorkspaceLinkCard.native.js +16 -11
  227. package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -1
  228. package/dist/esm/workspace/WorkspaceNumberCard.mjs +13 -11
  229. package/dist/esm/workspace/WorkspaceNumberCard.mjs.map +1 -1
  230. package/dist/esm/workspace/WorkspaceNumberCard.native.js +13 -11
  231. package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -1
  232. package/dist/esm/workspace/WorkspaceQuickList.mjs +10 -8
  233. package/dist/esm/workspace/WorkspaceQuickList.mjs.map +1 -1
  234. package/dist/esm/workspace/WorkspaceQuickList.native.js +10 -8
  235. package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -1
  236. package/dist/esm/workspace/WorkspaceRecents.mjs +6 -4
  237. package/dist/esm/workspace/WorkspaceRecents.mjs.map +1 -1
  238. package/dist/esm/workspace/WorkspaceRecents.native.js +7 -5
  239. package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -1
  240. package/dist/esm/workspace/WorkspaceShortcut.mjs +17 -24
  241. package/dist/esm/workspace/WorkspaceShortcut.mjs.map +1 -1
  242. package/dist/esm/workspace/WorkspaceShortcut.native.js +18 -25
  243. package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -1
  244. package/dist/jsx/chrome/HelpMenu.mjs +13 -7
  245. package/dist/jsx/chrome/HelpMenu.mjs.map +1 -1
  246. package/dist/jsx/chrome/HelpMenu.native.js +14 -7
  247. package/dist/jsx/chrome/HelpMenu.native.js.map +1 -1
  248. package/dist/jsx/chrome/NotificationsButton.mjs +5 -1
  249. package/dist/jsx/chrome/NotificationsButton.mjs.map +1 -1
  250. package/dist/jsx/chrome/NotificationsButton.native.js +5 -1
  251. package/dist/jsx/chrome/NotificationsButton.native.js.map +1 -1
  252. package/dist/jsx/chrome/UserMenu.mjs +13 -8
  253. package/dist/jsx/chrome/UserMenu.mjs.map +1 -1
  254. package/dist/jsx/chrome/UserMenu.native.js +13 -8
  255. package/dist/jsx/chrome/UserMenu.native.js.map +1 -1
  256. package/dist/jsx/chrome/help-about-dialog.mjs +2 -2
  257. package/dist/jsx/chrome/help-about-dialog.native.js +2 -2
  258. package/dist/jsx/chrome/help-shortcuts-dialog.mjs +6 -3
  259. package/dist/jsx/chrome/help-shortcuts-dialog.mjs.map +1 -1
  260. package/dist/jsx/chrome/help-shortcuts-dialog.native.js +6 -3
  261. package/dist/jsx/chrome/help-shortcuts-dialog.native.js.map +1 -1
  262. package/dist/jsx/chrome/notifications-panel.mjs +12 -7
  263. package/dist/jsx/chrome/notifications-panel.mjs.map +1 -1
  264. package/dist/jsx/chrome/notifications-panel.native.js +11 -6
  265. package/dist/jsx/chrome/notifications-panel.native.js.map +1 -1
  266. package/dist/jsx/form/FormConnections.mjs +2 -1
  267. package/dist/jsx/form/FormConnections.mjs.map +1 -1
  268. package/dist/jsx/form/FormConnections.native.js +2 -1
  269. package/dist/jsx/form/FormConnections.native.js.map +1 -1
  270. package/dist/jsx/form/FormErrorBoundary.mjs +1 -1
  271. package/dist/jsx/form/FormErrorBoundary.native.js +1 -1
  272. package/dist/jsx/form/FormHeaderCluster.mjs +8 -4
  273. package/dist/jsx/form/FormHeaderCluster.mjs.map +1 -1
  274. package/dist/jsx/form/FormHeaderCluster.native.js +8 -4
  275. package/dist/jsx/form/FormHeaderCluster.native.js.map +1 -1
  276. package/dist/jsx/form/FormSidebarPanel.mjs +9 -8
  277. package/dist/jsx/form/FormSidebarPanel.mjs.map +1 -1
  278. package/dist/jsx/form/FormSidebarPanel.native.js +10 -9
  279. package/dist/jsx/form/FormSidebarPanel.native.js.map +1 -1
  280. package/dist/jsx/form/FormTimeline.mjs +14 -13
  281. package/dist/jsx/form/FormTimeline.mjs.map +1 -1
  282. package/dist/jsx/form/FormTimeline.native.js +15 -13
  283. package/dist/jsx/form/FormTimeline.native.js.map +1 -1
  284. package/dist/jsx/form/FormToolbar.mjs +17 -17
  285. package/dist/jsx/form/FormToolbar.mjs.map +1 -1
  286. package/dist/jsx/form/FormToolbar.native.js +17 -17
  287. package/dist/jsx/form/FormToolbar.native.js.map +1 -1
  288. package/dist/jsx/form/sidebar-people.mjs +2 -2
  289. package/dist/jsx/form/sidebar-people.mjs.map +1 -1
  290. package/dist/jsx/form/sidebar-people.native.js +2 -2
  291. package/dist/jsx/form/sidebar-people.native.js.map +1 -1
  292. package/dist/jsx/list/DoctypeListScreen.mjs +8 -4
  293. package/dist/jsx/list/DoctypeListScreen.mjs.map +1 -1
  294. package/dist/jsx/list/DoctypeListScreen.native.js +7 -3
  295. package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
  296. package/dist/jsx/list/ListBulkActionsBar.mjs +22 -18
  297. package/dist/jsx/list/ListBulkActionsBar.mjs.map +1 -1
  298. package/dist/jsx/list/ListBulkActionsBar.native.js +27 -23
  299. package/dist/jsx/list/ListBulkActionsBar.native.js.map +1 -1
  300. package/dist/jsx/list/ListFilterBar.mjs +10 -5
  301. package/dist/jsx/list/ListFilterBar.mjs.map +1 -1
  302. package/dist/jsx/list/ListFilterBar.native.js +11 -5
  303. package/dist/jsx/list/ListFilterBar.native.js.map +1 -1
  304. package/dist/jsx/list/list-tools-sheet.mjs +9 -4
  305. package/dist/jsx/list/list-tools-sheet.mjs.map +1 -1
  306. package/dist/jsx/list/list-tools-sheet.native.js +10 -4
  307. package/dist/jsx/list/list-tools-sheet.native.js.map +1 -1
  308. package/dist/jsx/list/listColumns.mjs +21 -30
  309. package/dist/jsx/list/listColumns.mjs.map +1 -1
  310. package/dist/jsx/list/listColumns.native.js +24 -29
  311. package/dist/jsx/list/listColumns.native.js.map +1 -1
  312. package/dist/jsx/list/sidebar-section.mjs +9 -15
  313. package/dist/jsx/list/sidebar-section.mjs.map +1 -1
  314. package/dist/jsx/list/sidebar-section.native.js +8 -14
  315. package/dist/jsx/list/sidebar-section.native.js.map +1 -1
  316. package/dist/jsx/report/QueryReportScreen.mjs +6 -2
  317. package/dist/jsx/report/QueryReportScreen.mjs.map +1 -1
  318. package/dist/jsx/report/QueryReportScreen.native.js +6 -2
  319. package/dist/jsx/report/QueryReportScreen.native.js.map +1 -1
  320. package/dist/jsx/report/queryReportFilterBar.mjs +1 -1
  321. package/dist/jsx/report/queryReportFilterBar.mjs.map +1 -1
  322. package/dist/jsx/report/queryReportFilterBar.native.js +1 -1
  323. package/dist/jsx/report/queryReportFilterBar.native.js.map +1 -1
  324. package/dist/jsx/report/report-grid.mjs +4 -4
  325. package/dist/jsx/report/report-grid.native.js +4 -4
  326. package/dist/jsx/report/report-toolbar.mjs +6 -12
  327. package/dist/jsx/report/report-toolbar.mjs.map +1 -1
  328. package/dist/jsx/report/report-toolbar.native.js +5 -11
  329. package/dist/jsx/report/report-toolbar.native.js.map +1 -1
  330. package/dist/jsx/shell/BackofficeShell.mjs +6 -5
  331. package/dist/jsx/shell/BackofficeShell.mjs.map +1 -1
  332. package/dist/jsx/shell/BackofficeShell.native.js +7 -6
  333. package/dist/jsx/shell/BackofficeShell.native.js.map +1 -1
  334. package/dist/jsx/shell/WorkspaceSidebar.mjs +2 -2
  335. package/dist/jsx/shell/WorkspaceSidebar.mjs.map +1 -1
  336. package/dist/jsx/shell/WorkspaceSidebar.native.js +2 -2
  337. package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -1
  338. package/dist/jsx/views/KanbanView.mjs +4 -4
  339. package/dist/jsx/views/KanbanView.mjs.map +1 -1
  340. package/dist/jsx/views/KanbanView.native.js +4 -4
  341. package/dist/jsx/views/KanbanView.native.js.map +1 -1
  342. package/dist/jsx/views/ViewHeader.mjs +2 -2
  343. package/dist/jsx/views/ViewHeader.mjs.map +1 -1
  344. package/dist/jsx/views/ViewHeader.native.js +2 -2
  345. package/dist/jsx/views/ViewHeader.native.js.map +1 -1
  346. package/dist/jsx/views/ViewStates.mjs +2 -1
  347. package/dist/jsx/views/ViewStates.mjs.map +1 -1
  348. package/dist/jsx/views/ViewStates.native.js +2 -1
  349. package/dist/jsx/views/ViewStates.native.js.map +1 -1
  350. package/dist/jsx/views/kanban-board-controls.mjs +12 -7
  351. package/dist/jsx/views/kanban-board-controls.mjs.map +1 -1
  352. package/dist/jsx/views/kanban-board-controls.native.js +14 -7
  353. package/dist/jsx/views/kanban-board-controls.native.js.map +1 -1
  354. package/dist/jsx/views/report-controls.mjs +18 -18
  355. package/dist/jsx/views/report-controls.mjs.map +1 -1
  356. package/dist/jsx/views/report-controls.native.js +16 -16
  357. package/dist/jsx/views/report-controls.native.js.map +1 -1
  358. package/dist/jsx/workspace/WorkspaceChartBlock.mjs +7 -6
  359. package/dist/jsx/workspace/WorkspaceChartBlock.mjs.map +1 -1
  360. package/dist/jsx/workspace/WorkspaceChartBlock.native.js +6 -5
  361. package/dist/jsx/workspace/WorkspaceChartBlock.native.js.map +1 -1
  362. package/dist/jsx/workspace/WorkspaceLinkCard.mjs +16 -11
  363. package/dist/jsx/workspace/WorkspaceLinkCard.mjs.map +1 -1
  364. package/dist/jsx/workspace/WorkspaceLinkCard.native.js +15 -10
  365. package/dist/jsx/workspace/WorkspaceLinkCard.native.js.map +1 -1
  366. package/dist/jsx/workspace/WorkspaceNumberCard.mjs +13 -11
  367. package/dist/jsx/workspace/WorkspaceNumberCard.mjs.map +1 -1
  368. package/dist/jsx/workspace/WorkspaceNumberCard.native.js +12 -10
  369. package/dist/jsx/workspace/WorkspaceNumberCard.native.js.map +1 -1
  370. package/dist/jsx/workspace/WorkspaceQuickList.mjs +10 -8
  371. package/dist/jsx/workspace/WorkspaceQuickList.mjs.map +1 -1
  372. package/dist/jsx/workspace/WorkspaceQuickList.native.js +9 -7
  373. package/dist/jsx/workspace/WorkspaceQuickList.native.js.map +1 -1
  374. package/dist/jsx/workspace/WorkspaceRecents.mjs +6 -4
  375. package/dist/jsx/workspace/WorkspaceRecents.mjs.map +1 -1
  376. package/dist/jsx/workspace/WorkspaceRecents.native.js +6 -4
  377. package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -1
  378. package/dist/jsx/workspace/WorkspaceShortcut.mjs +17 -24
  379. package/dist/jsx/workspace/WorkspaceShortcut.mjs.map +1 -1
  380. package/dist/jsx/workspace/WorkspaceShortcut.native.js +17 -24
  381. package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -1
  382. package/package.json +12 -12
  383. package/src/backofficeScreens.designLaw.spec.ts +160 -0
  384. package/src/chrome/HelpMenu.tsx +11 -7
  385. package/src/chrome/NotificationsButton.tsx +3 -1
  386. package/src/chrome/UserMenu.tsx +17 -12
  387. package/src/chrome/help-about-dialog.tsx +2 -2
  388. package/src/chrome/help-shortcuts-dialog.tsx +4 -3
  389. package/src/chrome/notifications-panel.tsx +8 -5
  390. package/src/form/FormConnections.tsx +1 -1
  391. package/src/form/FormErrorBoundary.tsx +1 -1
  392. package/src/form/FormHeaderCluster.tsx +10 -4
  393. package/src/form/FormSidebarPanel.tsx +9 -8
  394. package/src/form/FormTimeline.tsx +17 -12
  395. package/src/form/FormToolbar.tsx +18 -18
  396. package/src/form/sidebar-people.tsx +1 -1
  397. package/src/list/DoctypeListScreen.tsx +10 -3
  398. package/src/list/ListBulkActionsBar.tsx +32 -17
  399. package/src/list/ListFilterBar.tsx +8 -5
  400. package/src/list/list-tools-sheet.tsx +7 -4
  401. package/src/list/listColumns.tsx +30 -32
  402. package/src/list/sidebar-section.tsx +14 -14
  403. package/src/report/QueryReportScreen.tsx +3 -1
  404. package/src/report/queryReportFilterBar.tsx +1 -1
  405. package/src/report/report-grid.tsx +4 -4
  406. package/src/report/report-toolbar.tsx +4 -13
  407. package/src/shell/BackofficeShell.tsx +5 -11
  408. package/src/shell/WorkspaceSidebar.tsx +2 -9
  409. package/src/views/KanbanView.tsx +3 -3
  410. package/src/views/ViewHeader.tsx +2 -2
  411. package/src/views/ViewStates.tsx +2 -1
  412. package/src/views/kanban-board-controls.tsx +10 -7
  413. package/src/views/report-controls.tsx +17 -18
  414. package/src/workspace/WorkspaceChartBlock.tsx +5 -5
  415. package/src/workspace/WorkspaceLinkCard.tsx +12 -10
  416. package/src/workspace/WorkspaceNumberCard.tsx +9 -9
  417. package/src/workspace/WorkspaceQuickList.tsx +9 -8
  418. package/src/workspace/WorkspaceRecents.tsx +5 -4
  419. package/src/workspace/WorkspaceShortcut.tsx +11 -25
  420. package/types/chrome/HelpMenu.d.ts.map +1 -1
  421. package/types/chrome/NotificationsButton.d.ts.map +1 -1
  422. package/types/chrome/UserMenu.d.ts.map +1 -1
  423. package/types/chrome/help-shortcuts-dialog.d.ts.map +1 -1
  424. package/types/chrome/notifications-panel.d.ts.map +1 -1
  425. package/types/form/FormHeaderCluster.d.ts.map +1 -1
  426. package/types/form/FormSidebarPanel.d.ts.map +1 -1
  427. package/types/form/FormTimeline.d.ts.map +1 -1
  428. package/types/list/DoctypeListScreen.d.ts.map +1 -1
  429. package/types/list/ListBulkActionsBar.d.ts.map +1 -1
  430. package/types/list/ListFilterBar.d.ts.map +1 -1
  431. package/types/list/list-tools-sheet.d.ts.map +1 -1
  432. package/types/list/listColumns.d.ts.map +1 -1
  433. package/types/list/sidebar-section.d.ts.map +1 -1
  434. package/types/report/QueryReportScreen.d.ts.map +1 -1
  435. package/types/report/report-toolbar.d.ts.map +1 -1
  436. package/types/shell/BackofficeShell.d.ts.map +1 -1
  437. package/types/shell/WorkspaceSidebar.d.ts.map +1 -1
  438. package/types/views/ViewStates.d.ts.map +1 -1
  439. package/types/views/kanban-board-controls.d.ts.map +1 -1
  440. package/types/views/report-controls.d.ts.map +1 -1
  441. package/types/workspace/WorkspaceLinkCard.d.ts.map +1 -1
  442. package/types/workspace/WorkspaceQuickList.d.ts.map +1 -1
  443. package/types/workspace/WorkspaceRecents.d.ts.map +1 -1
  444. package/types/workspace/WorkspaceShortcut.d.ts.map +1 -1
@@ -126,6 +126,7 @@ export function FormTimeline({
126
126
  const app = useFrappeApp();
127
127
  const config = useFrappeConfig();
128
128
  const { knobProps } = useResolvedKnobs();
129
+ const iconSize = Number(knobProps.controlIcon?.width) || 14;
129
130
  const radiusToken = knobProps.borderRadius.borderRadius;
130
131
 
131
132
  // Composed mode: the form screen (or story fixture) owns docinfo. The
@@ -485,7 +486,7 @@ export function FormTimeline({
485
486
  <YStack flex={1} gap="$1">
486
487
  <XStack gap="$2" alignItems="center">
487
488
  <XStack flex={1} gap="$2" alignItems="center" flexWrap="wrap">
488
- <Text fontSize="$3" fontWeight="600">
489
+ <Text fontSize="$3" fontWeight="400">
489
490
  {displayName}
490
491
  </Text>
491
492
  {renderTimestamp(entry)}
@@ -496,7 +497,7 @@ export function FormTimeline({
496
497
  chromeless
497
498
  size="$1"
498
499
  borderRadius={radiusToken}
499
- icon={<PencilSimpleIcon size={12} />}
500
+ icon={<PencilSimpleIcon size={iconSize} />}
500
501
  aria-label={t("timeline.editComment", "Edit comment")}
501
502
  disabled={isBusy}
502
503
  onPress={() => {
@@ -511,7 +512,7 @@ export function FormTimeline({
511
512
  chromeless
512
513
  size="$1"
513
514
  borderRadius={radiusToken}
514
- icon={<TrashIcon size={12} />}
515
+ icon={<TrashIcon size={iconSize} />}
515
516
  aria-label={t("timeline.deleteComment", "Delete comment")}
516
517
  disabled={isBusy}
517
518
  onPress={() => {
@@ -604,7 +605,7 @@ export function FormTimeline({
604
605
  {icon}
605
606
  </YStack>
606
607
  <XStack flex={1} gap="$1.5" alignItems="center" flexWrap="wrap" paddingTop={2}>
607
- <Text fontSize="$2" fontWeight="600" color="$color10">
608
+ <Text fontSize="$2" fontWeight="400" color="$color10">
608
609
  {displayName}
609
610
  </Text>
610
611
  {text ? (
@@ -624,7 +625,11 @@ export function FormTimeline({
624
625
  const renderCommunicationRow = (entry: TimelineFeedEntry) => {
625
626
  const displayName = displayNameOf(entry);
626
627
  const icon =
627
- entry.kind === "automated" ? <RobotIcon size={14} /> : <EnvelopeSimpleIcon size={14} />;
628
+ entry.kind === "automated" ? (
629
+ <RobotIcon size={iconSize} />
630
+ ) : (
631
+ <EnvelopeSimpleIcon size={iconSize} />
632
+ );
628
633
  return (
629
634
  <XStack
630
635
  role="article"
@@ -644,7 +649,7 @@ export function FormTimeline({
644
649
  padding="$3"
645
650
  >
646
651
  <XStack gap="$2" alignItems="center" flexWrap="wrap">
647
- <Text fontSize="$3" fontWeight="600">
652
+ <Text fontSize="$3" fontWeight="400">
648
653
  {displayName}
649
654
  </Text>
650
655
  {entry.author !== displayName && (
@@ -655,7 +660,7 @@ export function FormTimeline({
655
660
  {renderTimestamp(entry)}
656
661
  </XStack>
657
662
  {entry.subject ? (
658
- <Text fontSize="$3" fontWeight="600">
663
+ <Text fontSize="$3" fontWeight="400">
659
664
  {entry.subject}
660
665
  </Text>
661
666
  ) : null}
@@ -677,7 +682,7 @@ export function FormTimeline({
677
682
  case "version":
678
683
  return renderSystemRow(
679
684
  entry,
680
- <PencilSimpleIcon size={14} />,
685
+ <PencilSimpleIcon size={iconSize} />,
681
686
  entry.version
682
687
  ? versionSummary(entry.version, (key, options) => t(key, options))
683
688
  : t("timeline.madeChanges", "made changes"),
@@ -686,13 +691,13 @@ export function FormTimeline({
686
691
  case "automated":
687
692
  return renderCommunicationRow(entry);
688
693
  case "assignment":
689
- return renderSystemRow(entry, <UserPlusIcon size={14} />, entry.content ?? "");
694
+ return renderSystemRow(entry, <UserPlusIcon size={iconSize} />, entry.content ?? "");
690
695
  case "attachment":
691
- return renderSystemRow(entry, <PaperclipIcon size={14} />, entry.content ?? "");
696
+ return renderSystemRow(entry, <PaperclipIcon size={iconSize} />, entry.content ?? "");
692
697
  case "like":
693
- return renderSystemRow(entry, <HeartIcon size={14} />, entry.content ?? "");
698
+ return renderSystemRow(entry, <HeartIcon size={iconSize} />, entry.content ?? "");
694
699
  default:
695
- return renderSystemRow(entry, <InfoIcon size={14} />, entry.content ?? "");
700
+ return renderSystemRow(entry, <InfoIcon size={iconSize} />, entry.content ?? "");
696
701
  }
697
702
  };
698
703
 
@@ -22,7 +22,7 @@ import {
22
22
  Breadcrumbs,
23
23
  Chip,
24
24
  DropdownMenu,
25
- Text,
25
+ H1,
26
26
  XStack,
27
27
  YStack,
28
28
  type BreadcrumbItem,
@@ -300,6 +300,7 @@ export function FormToolbar({
300
300
  }: FormToolbarProps) {
301
301
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
302
302
  const { knobProps } = useResolvedKnobs();
303
+ const iconSize = Number(knobProps.controlIcon?.width) || 16;
303
304
  const isNarrow = useLayoutSizeClass() === "compact";
304
305
 
305
306
  const indicatorLabels: Record<Exclude<DocIndicator, "saved">, string> = {
@@ -358,7 +359,7 @@ export function FormToolbar({
358
359
  return {
359
360
  key: `__action-${action}`,
360
361
  label: actionLabels[action],
361
- icon: <Icon size={16} />,
362
+ icon: <Icon size={iconSize} />,
362
363
  destructive: action === "cancel",
363
364
  disabled: isSaving,
364
365
  ...(isSaving ? { disabledReason: t("saving", "Saving…") } : {}),
@@ -372,7 +373,7 @@ export function FormToolbar({
372
373
  icon: item.icon
373
374
  ? (() => {
374
375
  const Icon = MENU_ICONS[item.icon];
375
- return <Icon size={16} />;
376
+ return <Icon size={iconSize} />;
376
377
  })()
377
378
  : undefined,
378
379
  destructive: item.destructive,
@@ -387,17 +388,16 @@ export function FormToolbar({
387
388
  <Breadcrumbs items={breadcrumbs} onNavigate={onNavigate} />
388
389
  <XStack alignItems="center" flexWrap="wrap" {...knobProps.gap}>
389
390
  <XStack alignItems="center" gap="$3" flex={1} minWidth={0}>
390
- <Text
391
- role="heading"
392
- aria-level={1}
393
- fontSize="$6"
394
- fontWeight="700"
391
+ <H1
392
+ {...knobProps.pageTitle}
393
+ {...knobProps.heading}
395
394
  color="$color12"
396
395
  numberOfLines={1}
397
396
  flexShrink={1}
397
+ margin={0}
398
398
  >
399
399
  {title}
400
- </Text>
400
+ </H1>
401
401
  {showIndicator && chip && (
402
402
  <Chip size="$2" variant="subtle" color={chip.color}>
403
403
  {chip.label}
@@ -419,7 +419,7 @@ export function FormToolbar({
419
419
  outlined
420
420
  borderWidth={0}
421
421
  borderRadius={0}
422
- icon={<CaretLeftIcon size={16} />}
422
+ icon={<CaretLeftIcon size={iconSize} />}
423
423
  aria-label={t("prevDoc", "Previous document")}
424
424
  disabled={prevDocDisabled}
425
425
  onPress={onPrevDoc}
@@ -430,7 +430,7 @@ export function FormToolbar({
430
430
  outlined
431
431
  borderWidth={0}
432
432
  borderRadius={0}
433
- icon={<CaretRightIcon size={16} />}
433
+ icon={<CaretRightIcon size={iconSize} />}
434
434
  aria-label={t("nextDoc", "Next document")}
435
435
  disabled={nextDocDisabled}
436
436
  onPress={onNextDoc}
@@ -442,7 +442,7 @@ export function FormToolbar({
442
442
  <Button
443
443
  size={knobProps.sizeToken}
444
444
  outlined
445
- icon={<ArrowSquareOutIcon size={16} />}
445
+ icon={<ArrowSquareOutIcon size={iconSize} />}
446
446
  aria-label={t("openInDesk", "Open in Desk")}
447
447
  onPress={onOpenDesk}
448
448
  testID="form-toolbar-desk"
@@ -452,7 +452,7 @@ export function FormToolbar({
452
452
  <Button
453
453
  size={knobProps.sizeToken}
454
454
  outlined
455
- icon={<ArrowCounterClockwiseIcon size={16} />}
455
+ icon={<ArrowCounterClockwiseIcon size={iconSize} />}
456
456
  aria-label={t("reloadDoc", "Reload")}
457
457
  onPress={reload}
458
458
  testID="form-toolbar-reload"
@@ -463,7 +463,7 @@ export function FormToolbar({
463
463
  <Button
464
464
  size={knobProps.sizeToken}
465
465
  outlined
466
- icon={<DotsThreeIcon size={18} weight="bold" />}
466
+ icon={<DotsThreeIcon size={iconSize} weight="bold" />}
467
467
  aria-label={t("menu", "Menu")}
468
468
  testID="form-toolbar-menu"
469
469
  />
@@ -475,7 +475,7 @@ export function FormToolbar({
475
475
  error
476
476
  outlined
477
477
  actionRole="secondary"
478
- icon={<ProhibitIcon size={16} />}
478
+ icon={<ProhibitIcon size={iconSize} />}
479
479
  loading={isSaving}
480
480
  onPress={onCancel}
481
481
  testID="form-toolbar-cancel"
@@ -487,7 +487,7 @@ export function FormToolbar({
487
487
  <Button
488
488
  size={knobProps.sizeToken}
489
489
  outlined
490
- icon={<CopyIcon size={16} />}
490
+ icon={<CopyIcon size={iconSize} />}
491
491
  loading={isSaving}
492
492
  onPress={onAmend}
493
493
  testID="form-toolbar-amend"
@@ -502,7 +502,7 @@ export function FormToolbar({
502
502
  <Button
503
503
  size={knobProps.sizeToken}
504
504
  accent
505
- icon={<CheckCircleIcon size={16} />}
505
+ icon={<CheckCircleIcon size={iconSize} />}
506
506
  loading={isSaving}
507
507
  onPress={onSubmit}
508
508
  testID="form-toolbar-submit"
@@ -514,7 +514,7 @@ export function FormToolbar({
514
514
  <Button
515
515
  size={knobProps.sizeToken}
516
516
  accent
517
- icon={<FloppyDiskIcon size={16} />}
517
+ icon={<FloppyDiskIcon size={iconSize} />}
518
518
  loading={isSaving}
519
519
  onPress={onSave}
520
520
  testID="form-toolbar-save"
@@ -114,7 +114,7 @@ export function SidebarAvatarStrip({ items, max }: SidebarAvatarStripProps) {
114
114
  size="$1"
115
115
  alt={`+${overflow}`}
116
116
  fallback={
117
- <Text fontSize={9} fontWeight="600" color="$color11">
117
+ <Text fontSize="$1" fontWeight="400" color="$color11">
118
118
  +{overflow}
119
119
  </Text>
120
120
  }
@@ -19,7 +19,7 @@ import {
19
19
  isWeb,
20
20
  notify,
21
21
  } from "@multiplatform.one/components";
22
- import { useLayoutSizeClass } from "@multiplatform.one/theme";
22
+ import { useLayoutSizeClass, useResolvedKnobs } from "@multiplatform.one/theme";
23
23
  // Catalog action Button — `accent` renders the active accent intent, the
24
24
  // house expression of the one page primary (LC-05 ONE-EMPHASIS; quick entry
25
25
  // "Create" precedent). The components Button above stays for neutral chrome.
@@ -188,6 +188,7 @@ export function DoctypeListScreen({
188
188
  toolbarActions,
189
189
  }: DoctypeListScreenProps) {
190
190
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
191
+ const { knobProps } = useResolvedKnobs();
191
192
  const navigator = useBackofficeNavigator();
192
193
  const paths = useBackofficePaths();
193
194
  const capabilities = useBackofficeCapabilities();
@@ -947,12 +948,18 @@ export function DoctypeListScreen({
947
948
  );
948
949
 
949
950
  return (
950
- <YStack flex={1} gap="$2" padding={compactChrome ? "$2" : "$3"}>
951
+ <YStack flex={1} {...knobProps.gap} {...knobProps.panelPadding}>
951
952
  <PageHeader
952
953
  gap="$2"
953
954
  heading={
954
955
  <XStack gap="$2" alignItems="baseline" flexWrap="wrap">
955
- <H1 size={compactChrome ? "$6" : "$7"} margin={0} flexShrink={1} minWidth={0}>
956
+ <H1
957
+ {...knobProps.pageTitle}
958
+ {...knobProps.heading}
959
+ margin={0}
960
+ flexShrink={1}
961
+ minWidth={0}
962
+ >
956
963
  {doctype}
957
964
  </H1>
958
965
  {countText ? (
@@ -7,10 +7,11 @@
7
7
  // the shared dialogs/helpers below; this standalone bar exists for surfaces
8
8
  // that manage selection themselves (report/kanban streams).
9
9
  import React from "react";
10
- import { Button, ConfirmDialog, Text, XStack, notify } from "@multiplatform.one/components";
10
+ import { ConfirmDialog, Text, XStack, notify } from "@multiplatform.one/components";
11
11
  // Catalog action Button — `error` renders the destructive intent from the
12
12
  // semantic ramp instead of a hardcoded named hue (LC-05 ONE-EMPHASIS).
13
- import { Button as ActionButton } from "@multiplatform.one/forms";
13
+ import { Button } from "@multiplatform.one/forms";
14
+ import { useResolvedKnobs } from "@multiplatform.one/theme";
14
15
  import { useState } from "react";
15
16
  import { useTranslation } from "react-i18next";
16
17
  import { useBackofficeCapabilities, useBackofficeConfig } from "../config/BackofficeProvider";
@@ -42,6 +43,7 @@ export function ListBulkActionsBar({
42
43
  onActionComplete,
43
44
  }: ListBulkActionsBarProps) {
44
45
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
46
+ const { knobProps } = useResolvedKnobs();
45
47
  const app = useFrappeApp();
46
48
  const capabilities = useBackofficeCapabilities();
47
49
  const { actions } = useBackofficeConfig();
@@ -203,23 +205,23 @@ export function ListBulkActionsBar({
203
205
  return (
204
206
  <XStack
205
207
  alignItems="center"
206
- gap="$3"
207
- padding="$2"
208
- backgroundColor="$color2"
209
- borderRadius="$4"
210
208
  flexWrap="wrap"
209
+ {...knobProps.surface}
210
+ {...knobProps.borderRadius}
211
+ {...knobProps.gap}
212
+ {...knobProps.panelPadding}
211
213
  >
212
- <Text fontSize="$3" fontWeight="600" color="$color12">
214
+ <Text {...knobProps.label} fontWeight="400" color="$color12">
213
215
  {t("list.selectedCount", {
214
216
  defaultValue: "{{count}} selected",
215
217
  count: selectedNames.length,
216
218
  })}
217
219
  </Text>
218
- <Button size="$2" onPress={() => setEditOpen(true)}>
220
+ <Button size={knobProps.sizeToken} onPress={() => setEditOpen(true)}>
219
221
  {t("list.editTitle", "Bulk Edit")}
220
222
  </Button>
221
223
  <Button
222
- size="$2"
224
+ size={knobProps.sizeToken}
223
225
  disabled={exporting}
224
226
  onPress={() => {
225
227
  void handleExport();
@@ -228,19 +230,19 @@ export function ListBulkActionsBar({
228
230
  {exporting ? t("list.exporting", "Exporting…") : t("list.export", "Export CSV")}
229
231
  </Button>
230
232
  {showAssign && (
231
- <Button size="$2" onPress={() => setAssignOpen(true)}>
233
+ <Button size={knobProps.sizeToken} onPress={() => setAssignOpen(true)}>
232
234
  {t("list.assignTitle", "Assign To")}
233
235
  </Button>
234
236
  )}
235
237
  {showTags && (
236
- <Button size="$2" onPress={() => setTagOpen(true)}>
238
+ <Button size={knobProps.sizeToken} onPress={() => setTagOpen(true)}>
237
239
  {t("list.tagTitle", "Add Tags")}
238
240
  </Button>
239
241
  )}
240
242
  {hostActions.map((action) => (
241
243
  <Button
242
244
  key={action.id}
243
- size="$2"
245
+ size={knobProps.sizeToken}
244
246
  onPress={() => action.onPress({ doctype, selection: selectedNames })}
245
247
  >
246
248
  {action.label}
@@ -248,20 +250,33 @@ export function ListBulkActionsBar({
248
250
  ))}
249
251
  {isSubmittable && (
250
252
  <>
251
- <Button size="$2" disabled={docstatusBusy} onPress={() => setDocstatusAction("submit")}>
253
+ <Button
254
+ size={knobProps.sizeToken}
255
+ disabled={docstatusBusy}
256
+ onPress={() => setDocstatusAction("submit")}
257
+ >
252
258
  {t("list.submit", "Submit")}
253
259
  </Button>
254
- <Button size="$2" disabled={docstatusBusy} onPress={() => setDocstatusAction("cancel")}>
260
+ <Button
261
+ size={knobProps.sizeToken}
262
+ disabled={docstatusBusy}
263
+ onPress={() => setDocstatusAction("cancel")}
264
+ >
255
265
  {t("list.cancel", "Cancel")}
256
266
  </Button>
257
267
  </>
258
268
  )}
259
269
  {/* Busy is derived state — `loading` shows the spinner and skips the
260
270
  DG-ST-03 bare-disabled guardrail (catalog Toolbar precedent). */}
261
- <ActionButton size="$2" error loading={deleting} onPress={() => setConfirmDelete(true)}>
271
+ <Button
272
+ size={knobProps.sizeToken}
273
+ error
274
+ loading={deleting}
275
+ onPress={() => setConfirmDelete(true)}
276
+ >
262
277
  {t("list.delete", "Delete")}
263
- </ActionButton>
264
- <Button size="$2" chromeless onPress={onClearSelection}>
278
+ </Button>
279
+ <Button size={knobProps.sizeToken} chromeless onPress={onClearSelection}>
265
280
  {t("list.clearSelection", "Clear selection")}
266
281
  </Button>
267
282
 
@@ -21,6 +21,7 @@
21
21
  import { XStack, YStack } from "@multiplatform.one/components";
22
22
  import { Button } from "@multiplatform.one/forms";
23
23
  import { HeartIcon } from "@phosphor-icons/react";
24
+ import { useResolvedKnobs } from "@multiplatform.one/theme";
24
25
  import { useTranslation } from "react-i18next";
25
26
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
26
27
  import type { FrappeFilter, FrappeFilters } from "../shared/types";
@@ -73,17 +74,19 @@ export function ListFilterBar({
73
74
  likedByUser,
74
75
  }: ListFilterBarProps) {
75
76
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
77
+ const { knobProps } = useResolvedKnobs();
78
+ const iconSize = Number(knobProps.controlIcon?.width) || 16;
76
79
  const likedTuple: FrappeFilter | undefined = likedByUser
77
80
  ? ["_liked_by", "like", `%${likedByUser}%`]
78
81
  : undefined;
79
82
  const likedActive = likedTuple ? isFacetFilterActive(filters, likedTuple) : false;
80
83
  const likedButton = likedTuple ? (
81
84
  <Button
82
- size="$3"
85
+ size={knobProps.sizeToken}
83
86
  circular
84
87
  chromeless
85
88
  col={(likedActive ? "$red10" : "$color8") as never}
86
- icon={<HeartIcon size={16} weight={likedActive ? "fill" : "regular"} />}
89
+ icon={<HeartIcon size={iconSize} weight={likedActive ? "fill" : "regular"} />}
87
90
  aria-pressed={likedActive}
88
91
  aria-label={t("list.likedByMe", "Liked by me")}
89
92
  onPress={() => onFiltersChange(toggleFacetFilter(filters, likedTuple))}
@@ -91,7 +94,7 @@ export function ListFilterBar({
91
94
  ) : null;
92
95
  if (compact) {
93
96
  return (
94
- <XStack gap="$1.5" alignItems="center">
97
+ <XStack {...knobProps.gap} alignItems="center">
95
98
  <ListToolsButton
96
99
  doctype={doctype}
97
100
  meta={meta}
@@ -106,7 +109,7 @@ export function ListFilterBar({
106
109
  );
107
110
  }
108
111
  const controls = (
109
- <XStack gap="$1.5" alignItems="center" flexWrap="wrap">
112
+ <XStack {...knobProps.gap} alignItems="center" flexWrap="wrap">
110
113
  <StandardFilters meta={meta} filters={filters} onFiltersChange={onFiltersChange} />
111
114
  <FilterEditorButton meta={meta} filters={filters} onFiltersChange={onFiltersChange} />
112
115
  <SavedFiltersControl doctype={doctype} filters={filters} onFiltersChange={onFiltersChange} />
@@ -121,7 +124,7 @@ export function ListFilterBar({
121
124
  );
122
125
  if (!showChips) return controls;
123
126
  return (
124
- <YStack gap="$2">
127
+ <YStack {...knobProps.gap}>
125
128
  {controls}
126
129
  <FilterChips meta={meta} filters={filters} onFiltersChange={onFiltersChange} />
127
130
  </YStack>
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import { Button, SheetModal, SizableText, YStack, isWeb } from "@multiplatform.one/components";
14
14
  import { FunnelIcon } from "@phosphor-icons/react";
15
+ import { useResolvedKnobs } from "@multiplatform.one/theme";
15
16
  import { useEffect, useMemo, useState } from "react";
16
17
  import { useTranslation } from "react-i18next";
17
18
  import { BACKOFFICE_I18N_NAMESPACE } from "../i18n";
@@ -35,7 +36,7 @@ export interface ListToolsButtonProps {
35
36
 
36
37
  function SectionLabel({ children }: { children: string }) {
37
38
  return (
38
- <SizableText size="$1" fontWeight="600" color="$color10" textTransform="uppercase">
39
+ <SizableText size="$1" fontWeight="400" color="$color10" textTransform="uppercase">
39
40
  {children}
40
41
  </SizableText>
41
42
  );
@@ -51,6 +52,8 @@ export function ListToolsButton({
51
52
  onSortChange,
52
53
  }: ListToolsButtonProps) {
53
54
  const { t } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
55
+ const { knobProps } = useResolvedKnobs();
56
+ const iconSize = Number(knobProps.controlIcon?.width) || 16;
54
57
  const [open, setOpen] = useState(false);
55
58
  // Bumped per open so per-open drafts (filter editor rows) reseed.
56
59
  const [openGen, setOpenGen] = useState(0);
@@ -75,8 +78,8 @@ export function ListToolsButton({
75
78
  return (
76
79
  <>
77
80
  <Button
78
- size="$3"
79
- icon={<FunnelIcon size={14} weight={filters.length > 0 ? "fill" : "regular"} />}
81
+ size={knobProps.sizeToken}
82
+ icon={<FunnelIcon size={iconSize} weight={filters.length > 0 ? "fill" : "regular"} />}
80
83
  onPress={() => handleOpenChange(true)}
81
84
  aria-label={t("list.filters.filter", "Filter")}
82
85
  >
@@ -92,7 +95,7 @@ export function ListToolsButton({
92
95
  snapPoint={85}
93
96
  scrollable
94
97
  header={
95
- <SizableText size="$6" fontWeight="700">
98
+ <SizableText {...knobProps.heading} size="$6">
96
99
  {t("list.tools.title", "Filter & sort")}
97
100
  </SizableText>
98
101
  }
@@ -10,7 +10,7 @@
10
10
  // of the subject link (LC-74). Extra ID / Last Updated columns stay out —
11
11
  // the timestamp lives in the activity cluster.
12
12
  import type { ReactNode } from "react";
13
- import { Avatar, Anchor, Text, XStack, YStack } from "@multiplatform.one/components";
13
+ import { Avatar, Anchor, Chip, Text, XStack, type ChipColor } from "@multiplatform.one/components";
14
14
  // House control for the like toggle — the icon rides the Button icon slot
15
15
  // (LC-53 GLYPH-SLOT) and the sub-44 circular size resolves the press floor
16
16
  // through the house channel (LC-54: 44px box + hitSlop).
@@ -106,6 +106,23 @@ function stopRowPress(event?: { stopPropagation?: () => void }) {
106
106
  event?.stopPropagation?.();
107
107
  }
108
108
 
109
+ function chipColorFromStatus(value: string, meta?: DoctypeMeta): ChipColor {
110
+ const ramp = statusPillColors(value, meta).background.replace(/^\$/, "").replace(/\d+$/, "");
111
+ if (ramp === "pink") return "purple";
112
+ if (
113
+ ramp === "red" ||
114
+ ramp === "green" ||
115
+ ramp === "blue" ||
116
+ ramp === "yellow" ||
117
+ ramp === "orange" ||
118
+ ramp === "purple" ||
119
+ ramp === "gray"
120
+ ) {
121
+ return ramp;
122
+ }
123
+ return "gray";
124
+ }
125
+
109
126
  function IndicatorPill({
110
127
  value,
111
128
  meta,
@@ -120,42 +137,26 @@ function IndicatorPill({
120
137
  filterValue?: string;
121
138
  onFilterClick?: (fieldname: string, value: string) => void;
122
139
  }) {
123
- const colors = statusPillColors(value, meta);
140
+ const chipColor = chipColorFromStatus(value, meta);
124
141
  const applied = filterValue ?? value;
125
- const handlePress = onFilterClick
126
- ? (event?: { stopPropagation?: () => void }) => {
127
- stopRowPress(event);
128
- onFilterClick(fieldname, applied);
129
- }
130
- : undefined;
131
142
  return (
132
143
  <XStack
133
144
  alignSelf="flex-start"
134
- alignItems="center"
135
- gap="$1.5"
136
- backgroundColor={colors.background as "$color3"}
137
- borderRadius={999}
138
- paddingHorizontal="$2"
139
- paddingVertical={3}
140
- {...(handlePress
145
+ {...(onFilterClick
141
146
  ? {
142
- role: "button" as const,
143
- cursor: "pointer" as const,
144
- onPress: handlePress,
145
147
  "data-filter": `${fieldname},=,${applied}`,
148
+ onPress: (event?: { stopPropagation?: () => void }) => stopRowPress(event),
146
149
  }
147
150
  : {})}
148
151
  >
149
- <YStack
150
- width={6}
151
- height={6}
152
- borderRadius={999}
153
- backgroundColor={colors.text as "$color11"}
154
- flexShrink={0}
155
- />
156
- <Text color={colors.text as "$color11"} fontSize="$2" fontWeight="600">
152
+ <Chip
153
+ size="$2"
154
+ variant="subtle"
155
+ color={chipColor}
156
+ onPress={onFilterClick ? () => onFilterClick(fieldname, applied) : undefined}
157
+ >
157
158
  {value}
158
- </Text>
159
+ </Chip>
159
160
  </XStack>
160
161
  );
161
162
  }
@@ -290,10 +291,7 @@ function ActivityCluster({
290
291
  <XStack
291
292
  alignItems="center"
292
293
  gap="$1"
293
- {...({ "aria-label": t("list.comments", "Comments") } as Record<
294
- string,
295
- unknown
296
- >)}
294
+ {...({ "aria-label": t("list.comments", "Comments") } as Record<string, unknown>)}
297
295
  >
298
296
  <ChatCircleIcon size={14} />
299
297
  <Text fontSize="$2" color="$color9">
@@ -425,7 +423,7 @@ export function buildListColumns({
425
423
  const subject = (
426
424
  <Text
427
425
  fontSize="$3"
428
- fontWeight="600"
426
+ fontWeight="400"
429
427
  color="$color12"
430
428
  numberOfLines={1}
431
429
  flexShrink={1}
@@ -4,7 +4,14 @@
4
4
  * share open state), a facet row (label + count pill + active state), and
5
5
  * the per-section loading skeleton.
6
6
  */
7
- import { Accordion, SizableText, Skeleton, XStack, YStack } from "@multiplatform.one/components";
7
+ import {
8
+ Accordion,
9
+ Chip,
10
+ SizableText,
11
+ Skeleton,
12
+ XStack,
13
+ YStack,
14
+ } from "@multiplatform.one/components";
8
15
  import {
9
16
  GroupPositionContext,
10
17
  ensureFocusVisibleRing,
@@ -31,8 +38,8 @@ export function SidebarSectionChrome({ title, children }: Omit<SidebarSectionPro
31
38
  const rows = Children.toArray(children);
32
39
  return (
33
40
  <>
34
- <Accordion.Trigger minHeight={32} paddingVertical="$1.5" paddingHorizontal="$2">
35
- <SizableText size="$2" fontWeight="600" color="$color11" numberOfLines={1} flexShrink={1}>
41
+ <Accordion.Trigger minHeight="$4" paddingVertical="$1.5" paddingHorizontal="$2">
42
+ <SizableText size="$2" fontWeight="400" color="$color11" numberOfLines={1} flexShrink={1}>
36
43
  {title}
37
44
  </SizableText>
38
45
  </Accordion.Trigger>
@@ -106,19 +113,12 @@ export function SidebarFacetRow({ label, count, active, onPress }: SidebarFacetR
106
113
  }) as unknown as () => void
107
114
  }
108
115
  >
109
- <SizableText size="$3" numberOfLines={1} flexShrink={1} fontWeight={active ? "600" : "400"}>
116
+ <SizableText size="$3" numberOfLines={1} flexShrink={1} fontWeight="400">
110
117
  {label}
111
118
  </SizableText>
112
- <YStack
113
- backgroundColor={active ? "$color5" : "$color4"}
114
- borderRadius={1000}
115
- paddingHorizontal="$2"
116
- paddingVertical={2}
117
- >
118
- <SizableText size="$1" color="$color11" fontWeight="600">
119
- {count}
120
- </SizableText>
121
- </YStack>
119
+ <Chip size="$2" variant="subtle" color="gray">
120
+ {count}
121
+ </Chip>
122
122
  </XStack>
123
123
  );
124
124
  }