@multiplatform.one/backoffice 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +310 -0
  3. package/dist/cjs/chrome/BackofficeAwesomebar.cjs +95 -0
  4. package/dist/cjs/chrome/BackofficeAwesomebar.native.js +106 -0
  5. package/dist/cjs/chrome/BackofficeAwesomebar.native.js.map +1 -0
  6. package/dist/cjs/chrome/CommandPalette.cjs +453 -0
  7. package/dist/cjs/chrome/CommandPalette.native.js +505 -0
  8. package/dist/cjs/chrome/CommandPalette.native.js.map +1 -0
  9. package/dist/cjs/chrome/HelpMenu.cjs +131 -0
  10. package/dist/cjs/chrome/HelpMenu.native.js +145 -0
  11. package/dist/cjs/chrome/HelpMenu.native.js.map +1 -0
  12. package/dist/cjs/chrome/NotificationsButton.cjs +112 -0
  13. package/dist/cjs/chrome/NotificationsButton.native.js +115 -0
  14. package/dist/cjs/chrome/NotificationsButton.native.js.map +1 -0
  15. package/dist/cjs/chrome/UserMenu.cjs +158 -0
  16. package/dist/cjs/chrome/UserMenu.native.js +186 -0
  17. package/dist/cjs/chrome/UserMenu.native.js.map +1 -0
  18. package/dist/cjs/chrome/awesomebar-data.cjs +173 -0
  19. package/dist/cjs/chrome/awesomebar-data.native.js +233 -0
  20. package/dist/cjs/chrome/awesomebar-data.native.js.map +1 -0
  21. package/dist/cjs/chrome/command-palette-model.cjs +208 -0
  22. package/dist/cjs/chrome/command-palette-model.native.js +301 -0
  23. package/dist/cjs/chrome/command-palette-model.native.js.map +1 -0
  24. package/dist/cjs/chrome/help-about-dialog.cjs +136 -0
  25. package/dist/cjs/chrome/help-about-dialog.native.js +146 -0
  26. package/dist/cjs/chrome/help-about-dialog.native.js.map +1 -0
  27. package/dist/cjs/chrome/help-shortcuts-dialog.cjs +155 -0
  28. package/dist/cjs/chrome/help-shortcuts-dialog.native.js +168 -0
  29. package/dist/cjs/chrome/help-shortcuts-dialog.native.js.map +1 -0
  30. package/dist/cjs/chrome/notifications-data.cjs +190 -0
  31. package/dist/cjs/chrome/notifications-data.native.js +271 -0
  32. package/dist/cjs/chrome/notifications-data.native.js.map +1 -0
  33. package/dist/cjs/chrome/notifications-panel.cjs +171 -0
  34. package/dist/cjs/chrome/notifications-panel.native.js +189 -0
  35. package/dist/cjs/chrome/notifications-panel.native.js.map +1 -0
  36. package/dist/cjs/chrome/notifications-utils.cjs +43 -0
  37. package/dist/cjs/chrome/notifications-utils.native.js +46 -0
  38. package/dist/cjs/chrome/notifications-utils.native.js.map +1 -0
  39. package/dist/cjs/chrome/shortcuts.cjs +58 -0
  40. package/dist/cjs/chrome/shortcuts.native.js +72 -0
  41. package/dist/cjs/chrome/shortcuts.native.js.map +1 -0
  42. package/dist/cjs/chrome/user-session.cjs +100 -0
  43. package/dist/cjs/chrome/user-session.native.js +120 -0
  44. package/dist/cjs/chrome/user-session.native.js.map +1 -0
  45. package/dist/cjs/config/BackofficeProvider.cjs +164 -0
  46. package/dist/cjs/config/BackofficeProvider.native.js +217 -0
  47. package/dist/cjs/config/BackofficeProvider.native.js.map +1 -0
  48. package/dist/cjs/config/capabilities.cjs +123 -0
  49. package/dist/cjs/config/capabilities.native.js +155 -0
  50. package/dist/cjs/config/capabilities.native.js.map +1 -0
  51. package/dist/cjs/config/events.cjs +18 -0
  52. package/dist/cjs/config/events.native.js +21 -0
  53. package/dist/cjs/config/events.native.js.map +1 -0
  54. package/dist/cjs/config/slots.cjs +18 -0
  55. package/dist/cjs/config/slots.native.js +21 -0
  56. package/dist/cjs/config/slots.native.js.map +1 -0
  57. package/dist/cjs/i18n/en.cjs +101 -0
  58. package/dist/cjs/i18n/en.native.js +104 -0
  59. package/dist/cjs/i18n/en.native.js.map +1 -0
  60. package/dist/cjs/i18n/index.cjs +77 -0
  61. package/dist/cjs/i18n/index.native.js +102 -0
  62. package/dist/cjs/i18n/index.native.js.map +1 -0
  63. package/dist/cjs/index.cjs +109 -0
  64. package/dist/cjs/index.native.js +112 -0
  65. package/dist/cjs/index.native.js.map +1 -0
  66. package/dist/cjs/navigation/navigator.cjs +144 -0
  67. package/dist/cjs/navigation/navigator.native.js +307 -0
  68. package/dist/cjs/navigation/navigator.native.js.map +1 -0
  69. package/dist/cjs/navigation/paths.cjs +103 -0
  70. package/dist/cjs/navigation/paths.native.js +143 -0
  71. package/dist/cjs/navigation/paths.native.js.map +1 -0
  72. package/dist/cjs/oneAdapter/index.cjs +53 -0
  73. package/dist/cjs/oneAdapter/index.native.js +64 -0
  74. package/dist/cjs/oneAdapter/index.native.js.map +1 -0
  75. package/dist/cjs/shared/useFrappeApp.cjs +56 -0
  76. package/dist/cjs/shared/useFrappeApp.native.js +60 -0
  77. package/dist/cjs/shared/useFrappeApp.native.js.map +1 -0
  78. package/dist/cjs/shell/BackofficeShell.cjs +194 -0
  79. package/dist/cjs/shell/BackofficeShell.native.js +223 -0
  80. package/dist/cjs/shell/BackofficeShell.native.js.map +1 -0
  81. package/dist/cjs/shell/WorkspaceSidebar.cjs +115 -0
  82. package/dist/cjs/shell/WorkspaceSidebar.native.js +143 -0
  83. package/dist/cjs/shell/WorkspaceSidebar.native.js.map +1 -0
  84. package/dist/cjs/shell/useWorkspaces.cjs +131 -0
  85. package/dist/cjs/shell/useWorkspaces.native.js +173 -0
  86. package/dist/cjs/shell/useWorkspaces.native.js.map +1 -0
  87. package/dist/cjs/shell/workspaceIcons.cjs +64 -0
  88. package/dist/cjs/shell/workspaceIcons.native.js +67 -0
  89. package/dist/cjs/shell/workspaceIcons.native.js.map +1 -0
  90. package/dist/esm/chrome/BackofficeAwesomebar.mjs +70 -0
  91. package/dist/esm/chrome/BackofficeAwesomebar.mjs.map +1 -0
  92. package/dist/esm/chrome/BackofficeAwesomebar.native.js +78 -0
  93. package/dist/esm/chrome/BackofficeAwesomebar.native.js.map +1 -0
  94. package/dist/esm/chrome/CommandPalette.mjs +428 -0
  95. package/dist/esm/chrome/CommandPalette.mjs.map +1 -0
  96. package/dist/esm/chrome/CommandPalette.native.js +477 -0
  97. package/dist/esm/chrome/CommandPalette.native.js.map +1 -0
  98. package/dist/esm/chrome/HelpMenu.mjs +106 -0
  99. package/dist/esm/chrome/HelpMenu.mjs.map +1 -0
  100. package/dist/esm/chrome/HelpMenu.native.js +117 -0
  101. package/dist/esm/chrome/HelpMenu.native.js.map +1 -0
  102. package/dist/esm/chrome/NotificationsButton.mjs +87 -0
  103. package/dist/esm/chrome/NotificationsButton.mjs.map +1 -0
  104. package/dist/esm/chrome/NotificationsButton.native.js +87 -0
  105. package/dist/esm/chrome/NotificationsButton.native.js.map +1 -0
  106. package/dist/esm/chrome/UserMenu.mjs +133 -0
  107. package/dist/esm/chrome/UserMenu.mjs.map +1 -0
  108. package/dist/esm/chrome/UserMenu.native.js +147 -0
  109. package/dist/esm/chrome/UserMenu.native.js.map +1 -0
  110. package/dist/esm/chrome/awesomebar-data.mjs +144 -0
  111. package/dist/esm/chrome/awesomebar-data.mjs.map +1 -0
  112. package/dist/esm/chrome/awesomebar-data.native.js +190 -0
  113. package/dist/esm/chrome/awesomebar-data.native.js.map +1 -0
  114. package/dist/esm/chrome/command-palette-model.mjs +183 -0
  115. package/dist/esm/chrome/command-palette-model.mjs.map +1 -0
  116. package/dist/esm/chrome/command-palette-model.native.js +273 -0
  117. package/dist/esm/chrome/command-palette-model.native.js.map +1 -0
  118. package/dist/esm/chrome/help-about-dialog.mjs +111 -0
  119. package/dist/esm/chrome/help-about-dialog.mjs.map +1 -0
  120. package/dist/esm/chrome/help-about-dialog.native.js +118 -0
  121. package/dist/esm/chrome/help-about-dialog.native.js.map +1 -0
  122. package/dist/esm/chrome/help-shortcuts-dialog.mjs +130 -0
  123. package/dist/esm/chrome/help-shortcuts-dialog.mjs.map +1 -0
  124. package/dist/esm/chrome/help-shortcuts-dialog.native.js +140 -0
  125. package/dist/esm/chrome/help-shortcuts-dialog.native.js.map +1 -0
  126. package/dist/esm/chrome/notifications-data.mjs +165 -0
  127. package/dist/esm/chrome/notifications-data.mjs.map +1 -0
  128. package/dist/esm/chrome/notifications-data.native.js +232 -0
  129. package/dist/esm/chrome/notifications-data.native.js.map +1 -0
  130. package/dist/esm/chrome/notifications-panel.mjs +146 -0
  131. package/dist/esm/chrome/notifications-panel.mjs.map +1 -0
  132. package/dist/esm/chrome/notifications-panel.native.js +161 -0
  133. package/dist/esm/chrome/notifications-panel.native.js.map +1 -0
  134. package/dist/esm/chrome/notifications-utils.mjs +17 -0
  135. package/dist/esm/chrome/notifications-utils.mjs.map +1 -0
  136. package/dist/esm/chrome/notifications-utils.native.js +17 -0
  137. package/dist/esm/chrome/notifications-utils.native.js.map +1 -0
  138. package/dist/esm/chrome/shortcuts.mjs +33 -0
  139. package/dist/esm/chrome/shortcuts.mjs.map +1 -0
  140. package/dist/esm/chrome/shortcuts.native.js +44 -0
  141. package/dist/esm/chrome/shortcuts.native.js.map +1 -0
  142. package/dist/esm/chrome/user-session.mjs +73 -0
  143. package/dist/esm/chrome/user-session.mjs.map +1 -0
  144. package/dist/esm/chrome/user-session.native.js +79 -0
  145. package/dist/esm/chrome/user-session.native.js.map +1 -0
  146. package/dist/esm/config/BackofficeProvider.mjs +132 -0
  147. package/dist/esm/config/BackofficeProvider.mjs.map +1 -0
  148. package/dist/esm/config/BackofficeProvider.native.js +171 -0
  149. package/dist/esm/config/BackofficeProvider.native.js.map +1 -0
  150. package/dist/esm/config/capabilities.mjs +97 -0
  151. package/dist/esm/config/capabilities.mjs.map +1 -0
  152. package/dist/esm/config/capabilities.native.js +126 -0
  153. package/dist/esm/config/capabilities.native.js.map +1 -0
  154. package/dist/esm/config/events.mjs +2 -0
  155. package/dist/esm/config/events.mjs.map +1 -0
  156. package/dist/esm/config/events.native.js +2 -0
  157. package/dist/esm/config/events.native.js.map +1 -0
  158. package/dist/esm/config/slots.mjs +2 -0
  159. package/dist/esm/config/slots.mjs.map +1 -0
  160. package/dist/esm/config/slots.native.js +2 -0
  161. package/dist/esm/config/slots.native.js.map +1 -0
  162. package/dist/esm/i18n/en.mjs +76 -0
  163. package/dist/esm/i18n/en.mjs.map +1 -0
  164. package/dist/esm/i18n/en.native.js +76 -0
  165. package/dist/esm/i18n/en.native.js.map +1 -0
  166. package/dist/esm/i18n/index.mjs +40 -0
  167. package/dist/esm/i18n/index.mjs.map +1 -0
  168. package/dist/esm/i18n/index.native.js +62 -0
  169. package/dist/esm/i18n/index.native.js.map +1 -0
  170. package/dist/esm/index.mjs +26 -0
  171. package/dist/esm/index.mjs.map +1 -0
  172. package/dist/esm/index.native.js +26 -0
  173. package/dist/esm/index.native.js.map +1 -0
  174. package/dist/esm/navigation/navigator.mjs +115 -0
  175. package/dist/esm/navigation/navigator.mjs.map +1 -0
  176. package/dist/esm/navigation/navigator.native.js +275 -0
  177. package/dist/esm/navigation/navigator.native.js.map +1 -0
  178. package/dist/esm/navigation/paths.mjs +66 -0
  179. package/dist/esm/navigation/paths.mjs.map +1 -0
  180. package/dist/esm/navigation/paths.native.js +103 -0
  181. package/dist/esm/navigation/paths.native.js.map +1 -0
  182. package/dist/esm/oneAdapter/index.mjs +28 -0
  183. package/dist/esm/oneAdapter/index.mjs.map +1 -0
  184. package/dist/esm/oneAdapter/index.native.js +36 -0
  185. package/dist/esm/oneAdapter/index.native.js.map +1 -0
  186. package/dist/esm/shared/useFrappeApp.mjs +31 -0
  187. package/dist/esm/shared/useFrappeApp.mjs.map +1 -0
  188. package/dist/esm/shared/useFrappeApp.native.js +32 -0
  189. package/dist/esm/shared/useFrappeApp.native.js.map +1 -0
  190. package/dist/esm/shell/BackofficeShell.mjs +169 -0
  191. package/dist/esm/shell/BackofficeShell.mjs.map +1 -0
  192. package/dist/esm/shell/BackofficeShell.native.js +195 -0
  193. package/dist/esm/shell/BackofficeShell.native.js.map +1 -0
  194. package/dist/esm/shell/WorkspaceSidebar.mjs +89 -0
  195. package/dist/esm/shell/WorkspaceSidebar.mjs.map +1 -0
  196. package/dist/esm/shell/WorkspaceSidebar.native.js +114 -0
  197. package/dist/esm/shell/WorkspaceSidebar.native.js.map +1 -0
  198. package/dist/esm/shell/useWorkspaces.mjs +104 -0
  199. package/dist/esm/shell/useWorkspaces.mjs.map +1 -0
  200. package/dist/esm/shell/useWorkspaces.native.js +143 -0
  201. package/dist/esm/shell/useWorkspaces.native.js.map +1 -0
  202. package/dist/esm/shell/workspaceIcons.mjs +39 -0
  203. package/dist/esm/shell/workspaceIcons.mjs.map +1 -0
  204. package/dist/esm/shell/workspaceIcons.native.js +39 -0
  205. package/dist/esm/shell/workspaceIcons.native.js.map +1 -0
  206. package/dist/jsx/chrome/BackofficeAwesomebar.mjs +70 -0
  207. package/dist/jsx/chrome/BackofficeAwesomebar.mjs.map +1 -0
  208. package/dist/jsx/chrome/BackofficeAwesomebar.native.js +106 -0
  209. package/dist/jsx/chrome/BackofficeAwesomebar.native.js.map +1 -0
  210. package/dist/jsx/chrome/CommandPalette.mjs +428 -0
  211. package/dist/jsx/chrome/CommandPalette.mjs.map +1 -0
  212. package/dist/jsx/chrome/CommandPalette.native.js +505 -0
  213. package/dist/jsx/chrome/CommandPalette.native.js.map +1 -0
  214. package/dist/jsx/chrome/HelpMenu.mjs +106 -0
  215. package/dist/jsx/chrome/HelpMenu.mjs.map +1 -0
  216. package/dist/jsx/chrome/HelpMenu.native.js +145 -0
  217. package/dist/jsx/chrome/HelpMenu.native.js.map +1 -0
  218. package/dist/jsx/chrome/NotificationsButton.mjs +87 -0
  219. package/dist/jsx/chrome/NotificationsButton.mjs.map +1 -0
  220. package/dist/jsx/chrome/NotificationsButton.native.js +115 -0
  221. package/dist/jsx/chrome/NotificationsButton.native.js.map +1 -0
  222. package/dist/jsx/chrome/UserMenu.mjs +133 -0
  223. package/dist/jsx/chrome/UserMenu.mjs.map +1 -0
  224. package/dist/jsx/chrome/UserMenu.native.js +186 -0
  225. package/dist/jsx/chrome/UserMenu.native.js.map +1 -0
  226. package/dist/jsx/chrome/awesomebar-data.mjs +144 -0
  227. package/dist/jsx/chrome/awesomebar-data.mjs.map +1 -0
  228. package/dist/jsx/chrome/awesomebar-data.native.js +233 -0
  229. package/dist/jsx/chrome/awesomebar-data.native.js.map +1 -0
  230. package/dist/jsx/chrome/command-palette-model.mjs +183 -0
  231. package/dist/jsx/chrome/command-palette-model.mjs.map +1 -0
  232. package/dist/jsx/chrome/command-palette-model.native.js +301 -0
  233. package/dist/jsx/chrome/command-palette-model.native.js.map +1 -0
  234. package/dist/jsx/chrome/help-about-dialog.mjs +111 -0
  235. package/dist/jsx/chrome/help-about-dialog.mjs.map +1 -0
  236. package/dist/jsx/chrome/help-about-dialog.native.js +146 -0
  237. package/dist/jsx/chrome/help-about-dialog.native.js.map +1 -0
  238. package/dist/jsx/chrome/help-shortcuts-dialog.mjs +130 -0
  239. package/dist/jsx/chrome/help-shortcuts-dialog.mjs.map +1 -0
  240. package/dist/jsx/chrome/help-shortcuts-dialog.native.js +168 -0
  241. package/dist/jsx/chrome/help-shortcuts-dialog.native.js.map +1 -0
  242. package/dist/jsx/chrome/notifications-data.mjs +165 -0
  243. package/dist/jsx/chrome/notifications-data.mjs.map +1 -0
  244. package/dist/jsx/chrome/notifications-data.native.js +271 -0
  245. package/dist/jsx/chrome/notifications-data.native.js.map +1 -0
  246. package/dist/jsx/chrome/notifications-panel.mjs +146 -0
  247. package/dist/jsx/chrome/notifications-panel.mjs.map +1 -0
  248. package/dist/jsx/chrome/notifications-panel.native.js +189 -0
  249. package/dist/jsx/chrome/notifications-panel.native.js.map +1 -0
  250. package/dist/jsx/chrome/notifications-utils.mjs +17 -0
  251. package/dist/jsx/chrome/notifications-utils.mjs.map +1 -0
  252. package/dist/jsx/chrome/notifications-utils.native.js +46 -0
  253. package/dist/jsx/chrome/notifications-utils.native.js.map +1 -0
  254. package/dist/jsx/chrome/shortcuts.mjs +33 -0
  255. package/dist/jsx/chrome/shortcuts.mjs.map +1 -0
  256. package/dist/jsx/chrome/shortcuts.native.js +72 -0
  257. package/dist/jsx/chrome/shortcuts.native.js.map +1 -0
  258. package/dist/jsx/chrome/user-session.mjs +73 -0
  259. package/dist/jsx/chrome/user-session.mjs.map +1 -0
  260. package/dist/jsx/chrome/user-session.native.js +120 -0
  261. package/dist/jsx/chrome/user-session.native.js.map +1 -0
  262. package/dist/jsx/config/BackofficeProvider.mjs +132 -0
  263. package/dist/jsx/config/BackofficeProvider.mjs.map +1 -0
  264. package/dist/jsx/config/BackofficeProvider.native.js +217 -0
  265. package/dist/jsx/config/BackofficeProvider.native.js.map +1 -0
  266. package/dist/jsx/config/capabilities.mjs +97 -0
  267. package/dist/jsx/config/capabilities.mjs.map +1 -0
  268. package/dist/jsx/config/capabilities.native.js +155 -0
  269. package/dist/jsx/config/capabilities.native.js.map +1 -0
  270. package/dist/jsx/config/events.mjs +2 -0
  271. package/dist/jsx/config/events.mjs.map +1 -0
  272. package/dist/jsx/config/events.native.js +21 -0
  273. package/dist/jsx/config/events.native.js.map +1 -0
  274. package/dist/jsx/config/slots.mjs +2 -0
  275. package/dist/jsx/config/slots.mjs.map +1 -0
  276. package/dist/jsx/config/slots.native.js +21 -0
  277. package/dist/jsx/config/slots.native.js.map +1 -0
  278. package/dist/jsx/i18n/en.mjs +76 -0
  279. package/dist/jsx/i18n/en.mjs.map +1 -0
  280. package/dist/jsx/i18n/en.native.js +104 -0
  281. package/dist/jsx/i18n/en.native.js.map +1 -0
  282. package/dist/jsx/i18n/index.mjs +40 -0
  283. package/dist/jsx/i18n/index.mjs.map +1 -0
  284. package/dist/jsx/i18n/index.native.js +102 -0
  285. package/dist/jsx/i18n/index.native.js.map +1 -0
  286. package/dist/jsx/index.js +26 -0
  287. package/dist/jsx/index.js.map +1 -0
  288. package/dist/jsx/index.mjs +26 -0
  289. package/dist/jsx/index.mjs.map +1 -0
  290. package/dist/jsx/index.native.js +112 -0
  291. package/dist/jsx/index.native.js.map +1 -0
  292. package/dist/jsx/navigation/navigator.mjs +115 -0
  293. package/dist/jsx/navigation/navigator.mjs.map +1 -0
  294. package/dist/jsx/navigation/navigator.native.js +307 -0
  295. package/dist/jsx/navigation/navigator.native.js.map +1 -0
  296. package/dist/jsx/navigation/paths.mjs +66 -0
  297. package/dist/jsx/navigation/paths.mjs.map +1 -0
  298. package/dist/jsx/navigation/paths.native.js +143 -0
  299. package/dist/jsx/navigation/paths.native.js.map +1 -0
  300. package/dist/jsx/oneAdapter/index.mjs +28 -0
  301. package/dist/jsx/oneAdapter/index.mjs.map +1 -0
  302. package/dist/jsx/oneAdapter/index.native.js +64 -0
  303. package/dist/jsx/oneAdapter/index.native.js.map +1 -0
  304. package/dist/jsx/shared/useFrappeApp.mjs +31 -0
  305. package/dist/jsx/shared/useFrappeApp.mjs.map +1 -0
  306. package/dist/jsx/shared/useFrappeApp.native.js +60 -0
  307. package/dist/jsx/shared/useFrappeApp.native.js.map +1 -0
  308. package/dist/jsx/shell/BackofficeShell.mjs +169 -0
  309. package/dist/jsx/shell/BackofficeShell.mjs.map +1 -0
  310. package/dist/jsx/shell/BackofficeShell.native.js +223 -0
  311. package/dist/jsx/shell/BackofficeShell.native.js.map +1 -0
  312. package/dist/jsx/shell/WorkspaceSidebar.mjs +89 -0
  313. package/dist/jsx/shell/WorkspaceSidebar.mjs.map +1 -0
  314. package/dist/jsx/shell/WorkspaceSidebar.native.js +143 -0
  315. package/dist/jsx/shell/WorkspaceSidebar.native.js.map +1 -0
  316. package/dist/jsx/shell/useWorkspaces.mjs +104 -0
  317. package/dist/jsx/shell/useWorkspaces.mjs.map +1 -0
  318. package/dist/jsx/shell/useWorkspaces.native.js +173 -0
  319. package/dist/jsx/shell/useWorkspaces.native.js.map +1 -0
  320. package/dist/jsx/shell/workspaceIcons.mjs +39 -0
  321. package/dist/jsx/shell/workspaceIcons.mjs.map +1 -0
  322. package/dist/jsx/shell/workspaceIcons.native.js +67 -0
  323. package/dist/jsx/shell/workspaceIcons.native.js.map +1 -0
  324. package/package.json +123 -0
  325. package/src/chrome/BackofficeAwesomebar.tsx +89 -0
  326. package/src/chrome/CommandPalette.spec.tsx +252 -0
  327. package/src/chrome/CommandPalette.tsx +520 -0
  328. package/src/chrome/HelpMenu.tsx +119 -0
  329. package/src/chrome/NotificationsButton.tsx +87 -0
  330. package/src/chrome/UserMenu.tsx +173 -0
  331. package/src/chrome/awesomebar-data.tsx +252 -0
  332. package/src/chrome/command-palette-model.ts +291 -0
  333. package/src/chrome/help-about-dialog.tsx +130 -0
  334. package/src/chrome/help-shortcuts-dialog.tsx +144 -0
  335. package/src/chrome/notifications-data.tsx +287 -0
  336. package/src/chrome/notifications-panel.tsx +175 -0
  337. package/src/chrome/notifications-utils.tsx +44 -0
  338. package/src/chrome/shortcuts.ts +53 -0
  339. package/src/chrome/user-session.tsx +116 -0
  340. package/src/config/BackofficeProvider.spec.tsx +126 -0
  341. package/src/config/BackofficeProvider.tsx +315 -0
  342. package/src/config/capabilities.ts +172 -0
  343. package/src/config/events.ts +19 -0
  344. package/src/config/slots.ts +28 -0
  345. package/src/i18n/en.ts +83 -0
  346. package/src/i18n/index.ts +69 -0
  347. package/src/index.ts +150 -0
  348. package/src/navigation/navigator.spec.ts +106 -0
  349. package/src/navigation/navigator.ts +209 -0
  350. package/src/navigation/paths.ts +146 -0
  351. package/src/oneAdapter/index.tsx +61 -0
  352. package/src/shared/useFrappeApp.ts +39 -0
  353. package/src/shell/BackofficeShell.tsx +222 -0
  354. package/src/shell/WorkspaceSidebar.tsx +119 -0
  355. package/src/shell/useWorkspaces.ts +202 -0
  356. package/src/shell/workspaceIcons.ts +76 -0
  357. package/types/chrome/BackofficeAwesomebar.d.ts +12 -0
  358. package/types/chrome/BackofficeAwesomebar.d.ts.map +1 -0
  359. package/types/chrome/CommandPalette.d.ts +6 -0
  360. package/types/chrome/CommandPalette.d.ts.map +1 -0
  361. package/types/chrome/HelpMenu.d.ts +2 -0
  362. package/types/chrome/HelpMenu.d.ts.map +1 -0
  363. package/types/chrome/NotificationsButton.d.ts +2 -0
  364. package/types/chrome/NotificationsButton.d.ts.map +1 -0
  365. package/types/chrome/UserMenu.d.ts +6 -0
  366. package/types/chrome/UserMenu.d.ts.map +1 -0
  367. package/types/chrome/awesomebar-data.d.ts +52 -0
  368. package/types/chrome/awesomebar-data.d.ts.map +1 -0
  369. package/types/chrome/command-palette-model.d.ts +47 -0
  370. package/types/chrome/command-palette-model.d.ts.map +1 -0
  371. package/types/chrome/help-about-dialog.d.ts +12 -0
  372. package/types/chrome/help-about-dialog.d.ts.map +1 -0
  373. package/types/chrome/help-shortcuts-dialog.d.ts +6 -0
  374. package/types/chrome/help-shortcuts-dialog.d.ts.map +1 -0
  375. package/types/chrome/notifications-data.d.ts +34 -0
  376. package/types/chrome/notifications-data.d.ts.map +1 -0
  377. package/types/chrome/notifications-panel.d.ts +11 -0
  378. package/types/chrome/notifications-panel.d.ts.map +1 -0
  379. package/types/chrome/notifications-utils.d.ts +21 -0
  380. package/types/chrome/notifications-utils.d.ts.map +1 -0
  381. package/types/chrome/shortcuts.d.ts +6 -0
  382. package/types/chrome/shortcuts.d.ts.map +1 -0
  383. package/types/chrome/user-session.d.ts +19 -0
  384. package/types/chrome/user-session.d.ts.map +1 -0
  385. package/types/config/BackofficeProvider.d.ts +128 -0
  386. package/types/config/BackofficeProvider.d.ts.map +1 -0
  387. package/types/config/capabilities.d.ts +109 -0
  388. package/types/config/capabilities.d.ts.map +1 -0
  389. package/types/config/events.d.ts +39 -0
  390. package/types/config/events.d.ts.map +1 -0
  391. package/types/config/slots.d.ts +32 -0
  392. package/types/config/slots.d.ts.map +1 -0
  393. package/types/i18n/en.d.ts +83 -0
  394. package/types/i18n/en.d.ts.map +1 -0
  395. package/types/i18n/index.d.ts +27 -0
  396. package/types/i18n/index.d.ts.map +1 -0
  397. package/types/index.d.ts +55 -0
  398. package/types/index.d.ts.map +1 -0
  399. package/types/navigation/navigator.d.ts +98 -0
  400. package/types/navigation/navigator.d.ts.map +1 -0
  401. package/types/navigation/paths.d.ts +60 -0
  402. package/types/navigation/paths.d.ts.map +1 -0
  403. package/types/oneAdapter/index.d.ts +8 -0
  404. package/types/oneAdapter/index.d.ts.map +1 -0
  405. package/types/shared/useFrappeApp.d.ts +10 -0
  406. package/types/shared/useFrappeApp.d.ts.map +1 -0
  407. package/types/shell/BackofficeShell.d.ts +10 -0
  408. package/types/shell/BackofficeShell.d.ts.map +1 -0
  409. package/types/shell/WorkspaceSidebar.d.ts +9 -0
  410. package/types/shell/WorkspaceSidebar.d.ts.map +1 -0
  411. package/types/shell/useWorkspaces.d.ts +43 -0
  412. package/types/shell/useWorkspaces.d.ts.map +1 -0
  413. package/types/shell/workspaceIcons.d.ts +9 -0
  414. package/types/shell/workspaceIcons.d.ts.map +1 -0
@@ -0,0 +1,169 @@
1
+ import { Button, SizableText, XStack, YStack, isWeb } from "@multiplatform.one/components";
2
+ import { useLayoutSizeClass, useResolvedKnobs } from "@multiplatform.one/theme";
3
+ import { ListIcon, XIcon } from "@phosphor-icons/react";
4
+ import { useEffect, useRef, useState } from "react";
5
+ import { useTranslation } from "react-i18next";
6
+ import { BackofficeAwesomebar } from "../chrome/BackofficeAwesomebar.mjs";
7
+ import { HelpMenu } from "../chrome/HelpMenu.mjs";
8
+ import { NotificationsButton } from "../chrome/NotificationsButton.mjs";
9
+ import { useBackofficeShortcuts } from "../chrome/shortcuts.mjs";
10
+ import { UserMenu } from "../chrome/UserMenu.mjs";
11
+ import { useBackofficeCapabilities, useBackofficeLocation, useBackofficeNavigator, useBackofficePaths, useBackofficeSlots } from "../config/BackofficeProvider.mjs";
12
+ import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.mjs";
13
+ import { WorkspaceSidebar } from "./WorkspaceSidebar.mjs";
14
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
+ function useIsNarrow() {
16
+ return useLayoutSizeClass() === "compact";
17
+ }
18
+ function BackofficeShell({
19
+ children,
20
+ activePath,
21
+ onNavigate
22
+ }) {
23
+ const {
24
+ t
25
+ } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
26
+ const {
27
+ knobProps
28
+ } = useResolvedKnobs();
29
+ const capabilities = useBackofficeCapabilities();
30
+ const slots = useBackofficeSlots();
31
+ const navigator = useBackofficeNavigator();
32
+ const location = useBackofficeLocation();
33
+ const paths = useBackofficePaths();
34
+ const isNarrow = useIsNarrow();
35
+ const [drawerOpen, setDrawerOpen] = useState(false);
36
+ const resolvedActivePath = activePath ?? location.path;
37
+ const navigate = onNavigate ?? navigator.navigate;
38
+ const sidebarEnabled = capabilities.sidebar.enabled;
39
+ const awesomebarRef = useRef(null);
40
+ useBackofficeShortcuts({
41
+ onFocusSearch: capabilities.awesomebar.enabled ? () => awesomebarRef.current?.focus() : void 0
42
+ });
43
+ useEffect(() => {
44
+ if (!isNarrow) setDrawerOpen(false);
45
+ }, [isNarrow]);
46
+ useEffect(() => {
47
+ if (!isWeb || typeof document === "undefined" || !drawerOpen) return;
48
+ const onKeyDown = event => {
49
+ if (event.key === "Escape") setDrawerOpen(false);
50
+ };
51
+ document.addEventListener("keydown", onKeyDown);
52
+ return () => document.removeEventListener("keydown", onKeyDown);
53
+ }, [drawerOpen]);
54
+ const handleNavigate = path => {
55
+ if (isNarrow) setDrawerOpen(false);
56
+ navigate(path);
57
+ };
58
+ const surfaceBorderWidth = knobProps.surface.borderWidth;
59
+ const sidebarContent = /* @__PURE__ */jsxs(Fragment, {
60
+ children: [/* @__PURE__ */jsx(WorkspaceSidebar, {
61
+ activePath: resolvedActivePath,
62
+ onNavigate: handleNavigate
63
+ }), slots.renderSidebarFooter?.()]
64
+ });
65
+ const headerContent = /* @__PURE__ */jsxs(Fragment, {
66
+ children: [isNarrow && sidebarEnabled && /* @__PURE__ */jsx(Button, {
67
+ chromeless: true,
68
+ circular: true,
69
+ size: "$3",
70
+ icon: drawerOpen ? XIcon : ListIcon,
71
+ "aria-label": t("shell.toggleSidebar", "Toggle sidebar"),
72
+ "aria-expanded": drawerOpen,
73
+ onPress: () => setDrawerOpen(open => !open),
74
+ "data-testid": "backoffice-sidebar-toggle"
75
+ }), /* @__PURE__ */jsx(Button, {
76
+ chromeless: true,
77
+ size: "$3",
78
+ paddingHorizontal: "$2",
79
+ onPress: () => handleNavigate(paths.home()),
80
+ "aria-label": t("shell.home", "Home"),
81
+ "data-testid": "backoffice-home",
82
+ children: /* @__PURE__ */jsx(SizableText, {
83
+ size: "$5",
84
+ fontWeight: "700",
85
+ children: t("shell.title", "Backoffice")
86
+ })
87
+ }), /* @__PURE__ */jsx(XStack, {
88
+ flex: 1,
89
+ minWidth: 0,
90
+ justifyContent: "center",
91
+ children: capabilities.awesomebar.enabled && /* @__PURE__ */jsx(XStack, {
92
+ flex: 1,
93
+ maxWidth: 560,
94
+ minWidth: 0,
95
+ children: /* @__PURE__ */jsx(BackofficeAwesomebar, {
96
+ focusRef: awesomebarRef
97
+ })
98
+ })
99
+ }), /* @__PURE__ */jsxs(XStack, {
100
+ alignItems: "center",
101
+ gap: "$1",
102
+ flexShrink: 0,
103
+ children: [capabilities.notifications.enabled && /* @__PURE__ */jsx(NotificationsButton, {}), capabilities.help.enabled && /* @__PURE__ */jsx(HelpMenu, {}), capabilities.userMenu.enabled && /* @__PURE__ */jsx(UserMenu, {})]
104
+ })]
105
+ });
106
+ return /* @__PURE__ */jsxs(YStack, {
107
+ flex: 1,
108
+ height: "100%",
109
+ width: "100%",
110
+ overflow: "hidden",
111
+ "data-testid": "backoffice-shell",
112
+ children: [/* @__PURE__ */jsx(XStack, {
113
+ role: "banner",
114
+ ...knobProps.surface,
115
+ borderWidth: 0,
116
+ borderBottomWidth: surfaceBorderWidth,
117
+ borderBottomColor: knobProps.surface.borderColor,
118
+ alignItems: "center",
119
+ paddingHorizontal: "$3",
120
+ paddingVertical: "$2",
121
+ gap: "$2",
122
+ flexShrink: 0,
123
+ children: slots.renderShellHeader ? slots.renderShellHeader({
124
+ defaultContent: headerContent
125
+ }) : headerContent
126
+ }), /* @__PURE__ */jsxs(XStack, {
127
+ flex: 1,
128
+ minWidth: 0,
129
+ position: "relative",
130
+ overflow: "hidden",
131
+ children: [sidebarEnabled && !isNarrow && /* @__PURE__ */jsx(YStack, {
132
+ role: "navigation",
133
+ flexShrink: 0,
134
+ "data-testid": "backoffice-sidebar-rail",
135
+ children: sidebarContent
136
+ }), sidebarEnabled && isNarrow && drawerOpen && /* @__PURE__ */jsxs(Fragment, {
137
+ children: [/* @__PURE__ */jsx(YStack, {
138
+ position: "absolute",
139
+ top: 0,
140
+ left: 0,
141
+ right: 0,
142
+ bottom: 0,
143
+ backgroundColor: "$shadowColor",
144
+ opacity: 0.5,
145
+ zIndex: 10,
146
+ onPress: () => setDrawerOpen(false),
147
+ "data-testid": "backoffice-sidebar-scrim"
148
+ }), /* @__PURE__ */jsx(YStack, {
149
+ role: "navigation",
150
+ position: "absolute",
151
+ top: 0,
152
+ left: 0,
153
+ bottom: 0,
154
+ zIndex: 11,
155
+ backgroundColor: "$background",
156
+ "data-testid": "backoffice-sidebar-drawer",
157
+ children: sidebarContent
158
+ })]
159
+ }), /* @__PURE__ */jsx(YStack, {
160
+ role: "main",
161
+ flex: 1,
162
+ minWidth: 0,
163
+ children
164
+ })]
165
+ })]
166
+ });
167
+ }
168
+ export { BackofficeShell };
169
+ //# sourceMappingURL=BackofficeShell.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Button","SizableText","XStack","YStack","isWeb","useLayoutSizeClass","useResolvedKnobs","ListIcon","XIcon","useEffect","useRef","useState","useTranslation","BackofficeAwesomebar","HelpMenu","NotificationsButton","useBackofficeShortcuts","UserMenu","useBackofficeCapabilities","useBackofficeLocation","useBackofficeNavigator","useBackofficePaths","useBackofficeSlots","BACKOFFICE_I18N_NAMESPACE","WorkspaceSidebar","Fragment","jsx","jsxs","useIsNarrow","BackofficeShell","children","activePath","onNavigate","t","knobProps","capabilities","slots","navigator","location","paths","isNarrow","drawerOpen","setDrawerOpen","resolvedActivePath","path","navigate","sidebarEnabled","sidebar","enabled","awesomebarRef","onFocusSearch","awesomebar","current","focus","document","onKeyDown","event","key","addEventListener","removeEventListener","handleNavigate","surfaceBorderWidth","surface","borderWidth","sidebarContent","renderSidebarFooter","headerContent","chromeless","circular","size","icon","onPress","open","paddingHorizontal","home","fontWeight","flex","minWidth","justifyContent","maxWidth","focusRef","alignItems","gap","flexShrink","notifications","help","userMenu","height","width","overflow","role","borderBottomWidth","borderBottomColor","borderColor","paddingVertical","renderShellHeader","defaultContent","position","top","left","right","bottom","backgroundColor","opacity","zIndex"],"sources":["../../../src/shell/BackofficeShell.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,195 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Button, SizableText, XStack, YStack, isWeb } from "@multiplatform.one/components";
3
+ import { useLayoutSizeClass, useResolvedKnobs } from "@multiplatform.one/theme";
4
+ import { ListIcon, XIcon } from "@phosphor-icons/react";
5
+ import { useEffect, useRef, useState } from "react";
6
+ import { useTranslation } from "react-i18next";
7
+ import { BackofficeAwesomebar } from "../chrome/BackofficeAwesomebar.native.js";
8
+ import { HelpMenu } from "../chrome/HelpMenu.native.js";
9
+ import { NotificationsButton } from "../chrome/NotificationsButton.native.js";
10
+ import { useBackofficeShortcuts } from "../chrome/shortcuts.native.js";
11
+ import { UserMenu } from "../chrome/UserMenu.native.js";
12
+ import { useBackofficeCapabilities, useBackofficeLocation, useBackofficeNavigator, useBackofficePaths, useBackofficeSlots } from "../config/BackofficeProvider.native.js";
13
+ import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.native.js";
14
+ import { WorkspaceSidebar } from "./WorkspaceSidebar.native.js";
15
+ function useIsNarrow() {
16
+ return useLayoutSizeClass() === "compact";
17
+ }
18
+ function BackofficeShell(param) {
19
+ var {
20
+ children,
21
+ activePath,
22
+ onNavigate
23
+ } = param;
24
+ var _slots_renderSidebarFooter;
25
+ var {
26
+ t
27
+ } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
28
+ var {
29
+ knobProps
30
+ } = useResolvedKnobs();
31
+ var capabilities = useBackofficeCapabilities();
32
+ var slots = useBackofficeSlots();
33
+ var navigator = useBackofficeNavigator();
34
+ var location = useBackofficeLocation();
35
+ var paths = useBackofficePaths();
36
+ var isNarrow = useIsNarrow();
37
+ var [drawerOpen, setDrawerOpen] = useState(false);
38
+ var resolvedActivePath = activePath !== null && activePath !== void 0 ? activePath : location.path;
39
+ var navigate = onNavigate !== null && onNavigate !== void 0 ? onNavigate : navigator.navigate;
40
+ var sidebarEnabled = capabilities.sidebar.enabled;
41
+ var awesomebarRef = useRef(null);
42
+ useBackofficeShortcuts({
43
+ onFocusSearch: capabilities.awesomebar.enabled ? function () {
44
+ var _awesomebarRef_current;
45
+ return (_awesomebarRef_current = awesomebarRef.current) === null || _awesomebarRef_current === void 0 ? void 0 : _awesomebarRef_current.focus();
46
+ } : void 0
47
+ });
48
+ useEffect(function () {
49
+ if (!isNarrow) setDrawerOpen(false);
50
+ }, [isNarrow]);
51
+ useEffect(function () {
52
+ if (!isWeb || typeof document === "undefined" || !drawerOpen) return;
53
+ var onKeyDown = function onKeyDown2(event) {
54
+ if (event.key === "Escape") setDrawerOpen(false);
55
+ };
56
+ document.addEventListener("keydown", onKeyDown);
57
+ return function () {
58
+ return document.removeEventListener("keydown", onKeyDown);
59
+ };
60
+ }, [drawerOpen]);
61
+ var handleNavigate = function handleNavigate2(path) {
62
+ if (isNarrow) setDrawerOpen(false);
63
+ navigate(path);
64
+ };
65
+ var surfaceBorderWidth = knobProps.surface.borderWidth;
66
+ var sidebarContent = /* @__PURE__ */_jsxs(_Fragment, {
67
+ children: [/* @__PURE__ */_jsx(WorkspaceSidebar, {
68
+ activePath: resolvedActivePath,
69
+ onNavigate: handleNavigate
70
+ }), (_slots_renderSidebarFooter = slots.renderSidebarFooter) === null || _slots_renderSidebarFooter === void 0 ? void 0 : _slots_renderSidebarFooter.call(slots)]
71
+ });
72
+ var headerContent = /* @__PURE__ */_jsxs(_Fragment, {
73
+ children: [isNarrow && sidebarEnabled && /* @__PURE__ */_jsx(Button, {
74
+ chromeless: true,
75
+ circular: true,
76
+ size: "$3",
77
+ icon: drawerOpen ? XIcon : ListIcon,
78
+ "aria-label": t("shell.toggleSidebar", "Toggle sidebar"),
79
+ "aria-expanded": drawerOpen,
80
+ onPress: function onPress() {
81
+ return setDrawerOpen(function (open) {
82
+ return !open;
83
+ });
84
+ },
85
+ "data-testid": "backoffice-sidebar-toggle"
86
+ }), /* @__PURE__ */_jsx(Button, {
87
+ chromeless: true,
88
+ size: "$3",
89
+ paddingHorizontal: "$2",
90
+ onPress: function onPress() {
91
+ return handleNavigate(paths.home());
92
+ },
93
+ "aria-label": t("shell.home", "Home"),
94
+ "data-testid": "backoffice-home",
95
+ children: /* @__PURE__ */_jsx(SizableText, {
96
+ size: "$5",
97
+ fontWeight: "700",
98
+ children: t("shell.title", "Backoffice")
99
+ })
100
+ }),
101
+ /* Centered awesomebar (the flex spacer keeps the right chrome pinned
102
+ when the awesomebar capability is off) */
103
+ /* @__PURE__ */
104
+ _jsx(XStack, {
105
+ flex: 1,
106
+ minWidth: 0,
107
+ justifyContent: "center",
108
+ children: capabilities.awesomebar.enabled && /* @__PURE__ */_jsx(XStack, {
109
+ flex: 1,
110
+ maxWidth: 560,
111
+ minWidth: 0,
112
+ children: /* @__PURE__ */_jsx(BackofficeAwesomebar, {
113
+ focusRef: awesomebarRef
114
+ })
115
+ })
116
+ }), /* Right chrome */
117
+ /* @__PURE__ */_jsxs(XStack, {
118
+ alignItems: "center",
119
+ gap: "$1",
120
+ flexShrink: 0,
121
+ children: [capabilities.notifications.enabled && /* @__PURE__ */_jsx(NotificationsButton, {}), capabilities.help.enabled && /* @__PURE__ */_jsx(HelpMenu, {}), capabilities.userMenu.enabled && /* @__PURE__ */_jsx(UserMenu, {})]
122
+ })]
123
+ });
124
+ return /* @__PURE__ */_jsxs(YStack, {
125
+ flex: 1,
126
+ height: "100%",
127
+ width: "100%",
128
+ overflow: "hidden",
129
+ "data-testid": "backoffice-shell",
130
+ children: [/* Top navbar */
131
+ /* @__PURE__ */_jsx(XStack, {
132
+ role: "banner",
133
+ ...knobProps.surface,
134
+ // Surface knobs paint a full box border; keep only the bottom edge
135
+ // (DeskShell precedent, SB-M-1708).
136
+ borderWidth: 0,
137
+ borderBottomWidth: surfaceBorderWidth,
138
+ borderBottomColor: knobProps.surface.borderColor,
139
+ alignItems: "center",
140
+ paddingHorizontal: "$3",
141
+ paddingVertical: "$2",
142
+ gap: "$2",
143
+ flexShrink: 0,
144
+ children: slots.renderShellHeader ? slots.renderShellHeader({
145
+ defaultContent: headerContent
146
+ }) : headerContent
147
+ }), /* @__PURE__ */_jsxs(XStack, {
148
+ flex: 1,
149
+ minWidth: 0,
150
+ position: "relative",
151
+ overflow: "hidden",
152
+ children: [/* Desktop rail — in flow */
153
+ sidebarEnabled && !isNarrow && /* @__PURE__ */_jsx(YStack, {
154
+ role: "navigation",
155
+ flexShrink: 0,
156
+ "data-testid": "backoffice-sidebar-rail",
157
+ children: sidebarContent
158
+ }), /* Narrow drawer + scrim */
159
+ sidebarEnabled && isNarrow && drawerOpen && /* @__PURE__ */_jsxs(_Fragment, {
160
+ children: [/* @__PURE__ */_jsx(YStack, {
161
+ position: "absolute",
162
+ top: 0,
163
+ left: 0,
164
+ right: 0,
165
+ bottom: 0,
166
+ backgroundColor: "$shadowColor",
167
+ opacity: 0.5,
168
+ zIndex: 10,
169
+ onPress: function onPress() {
170
+ return setDrawerOpen(false);
171
+ },
172
+ "data-testid": "backoffice-sidebar-scrim"
173
+ }), /* @__PURE__ */_jsx(YStack, {
174
+ role: "navigation",
175
+ position: "absolute",
176
+ top: 0,
177
+ left: 0,
178
+ bottom: 0,
179
+ zIndex: 11,
180
+ backgroundColor: "$background",
181
+ "data-testid": "backoffice-sidebar-drawer",
182
+ children: sidebarContent
183
+ })]
184
+ }), /* Routed content — pages own their own headers/breadcrumbs */
185
+ /* @__PURE__ */_jsx(YStack, {
186
+ role: "main",
187
+ flex: 1,
188
+ minWidth: 0,
189
+ children
190
+ })]
191
+ })]
192
+ });
193
+ }
194
+ export { BackofficeShell };
195
+ //# sourceMappingURL=BackofficeShell.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Button","SizableText","XStack","YStack","isWeb","useLayoutSizeClass","useResolvedKnobs","ListIcon","XIcon","useEffect","useRef","useState","useTranslation","BackofficeAwesomebar","HelpMenu","NotificationsButton","useBackofficeShortcuts","UserMenu","useBackofficeCapabilities","useBackofficeLocation","useBackofficeNavigator","useBackofficePaths","useBackofficeSlots","BACKOFFICE_I18N_NAMESPACE","WorkspaceSidebar","useIsNarrow","BackofficeShell","param","children","activePath","onNavigate","_slots_renderSidebarFooter","t","knobProps","capabilities","slots","navigator","location","paths","isNarrow","drawerOpen","setDrawerOpen","resolvedActivePath","path","navigate","sidebarEnabled","sidebar","enabled","awesomebarRef","onFocusSearch","awesomebar","_awesomebarRef_current","current","focus","document","onKeyDown","onKeyDown2","event","key","addEventListener","removeEventListener","handleNavigate","handleNavigate2","surfaceBorderWidth","surface","borderWidth","sidebarContent","renderSidebarFooter","call","headerContent","chromeless","circular","size","icon","onPress","open","paddingHorizontal","home","fontWeight","flex","minWidth","justifyContent","maxWidth","focusRef","alignItems","gap","flexShrink","notifications","help","userMenu","height","width","overflow","role","borderBottomWidth","borderBottomColor","borderColor","paddingVertical"],"sources":["../../../src/shell/BackofficeShell.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ import { Sidebar, Spinner, XStack, YStack } from "@multiplatform.one/components";
2
+ import { useMemo } from "react";
3
+ import { useTranslation } from "react-i18next";
4
+ import { useBackofficePaths } from "../config/BackofficeProvider.mjs";
5
+ import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.mjs";
6
+ import { useWorkspaces } from "./useWorkspaces.mjs";
7
+ import { workspaceIcon } from "./workspaceIcons.mjs";
8
+ import { jsx } from "react/jsx-runtime";
9
+ const WORKSPACE_SIDEBAR_WIDTH = 250;
10
+ function workspaceItem(workspace, depth, paths, activePath, onNavigate) {
11
+ const path = paths.workspace(workspace.name);
12
+ const IconComponent = workspaceIcon(workspace.icon);
13
+ const icon =
14
+ // Depth-based inset carried by the icon slot — the Sidebar row API has
15
+ // no nesting support, so children indent icon+label via this wrapper.
16
+ /* @__PURE__ */
17
+ jsx(XStack, {
18
+ paddingLeft: depth > 0 ? depth * 16 : 0,
19
+ children: /* @__PURE__ */jsx(IconComponent, {
20
+ size: 16
21
+ })
22
+ });
23
+ return {
24
+ label: workspace.title || workspace.name,
25
+ value: path,
26
+ icon,
27
+ active: activePath === path,
28
+ onPress: onNavigate ? () => onNavigate(path) : void 0
29
+ };
30
+ }
31
+ function flattenTree(roots, childrenByParent, paths, activePath, onNavigate, depth = 0) {
32
+ const items = [];
33
+ for (const workspace of roots) {
34
+ items.push(workspaceItem(workspace, depth, paths, activePath, onNavigate));
35
+ const children = childrenByParent.get(workspace.name);
36
+ if (children?.length) {
37
+ items.push(...flattenTree(children, childrenByParent, paths, activePath, onNavigate, depth + 1));
38
+ }
39
+ }
40
+ return items;
41
+ }
42
+ function WorkspaceSidebar({
43
+ activePath,
44
+ onNavigate
45
+ }) {
46
+ const {
47
+ t
48
+ } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
49
+ const paths = useBackofficePaths();
50
+ const {
51
+ privateWorkspaces,
52
+ publicRoots,
53
+ childrenByParent,
54
+ isLoading
55
+ } = useWorkspaces();
56
+ const sections = useMemo(() => {
57
+ const result = [];
58
+ if (privateWorkspaces.length > 0) {
59
+ result.push({
60
+ title: t("sidebar.private", "Private"),
61
+ items: privateWorkspaces.map(workspace => workspaceItem(workspace, 0, paths, activePath, onNavigate))
62
+ });
63
+ }
64
+ if (publicRoots.length > 0) {
65
+ result.push({
66
+ title: t("sidebar.public", "Public"),
67
+ items: flattenTree(publicRoots, childrenByParent, paths, activePath, onNavigate)
68
+ });
69
+ }
70
+ return result;
71
+ }, [privateWorkspaces, publicRoots, childrenByParent, paths, activePath, onNavigate, t]);
72
+ if (isLoading && sections.length === 0) {
73
+ return /* @__PURE__ */jsx(YStack, {
74
+ width: WORKSPACE_SIDEBAR_WIDTH,
75
+ alignItems: "center",
76
+ paddingTop: "$6",
77
+ "aria-label": t("sidebar.loading", "Loading workspaces"),
78
+ children: /* @__PURE__ */jsx(Spinner, {
79
+ size: "small"
80
+ })
81
+ });
82
+ }
83
+ return /* @__PURE__ */jsx(Sidebar, {
84
+ sections,
85
+ width: WORKSPACE_SIDEBAR_WIDTH
86
+ });
87
+ }
88
+ export { WORKSPACE_SIDEBAR_WIDTH, WorkspaceSidebar };
89
+ //# sourceMappingURL=WorkspaceSidebar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Sidebar","Spinner","XStack","YStack","useMemo","useTranslation","useBackofficePaths","BACKOFFICE_I18N_NAMESPACE","useWorkspaces","workspaceIcon","jsx","WORKSPACE_SIDEBAR_WIDTH","workspaceItem","workspace","depth","paths","activePath","onNavigate","path","name","IconComponent","icon","paddingLeft","children","size","label","title","value","active","onPress","flattenTree","roots","childrenByParent","items","push","get","length","WorkspaceSidebar","t","privateWorkspaces","publicRoots","isLoading","sections","result","map","width","alignItems","paddingTop"],"sources":["../../../src/shell/WorkspaceSidebar.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,114 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Sidebar, Spinner, XStack, YStack } from "@multiplatform.one/components";
3
+ import { useMemo } from "react";
4
+ import { useTranslation } from "react-i18next";
5
+ import { useBackofficePaths } from "../config/BackofficeProvider.native.js";
6
+ import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.native.js";
7
+ import { useWorkspaces } from "./useWorkspaces.native.js";
8
+ import { workspaceIcon } from "./workspaceIcons.native.js";
9
+ var WORKSPACE_SIDEBAR_WIDTH = 250;
10
+ function workspaceItem(workspace, depth, paths, activePath, onNavigate) {
11
+ var path = paths.workspace(workspace.name);
12
+ var IconComponent = workspaceIcon(workspace.icon);
13
+ var icon =
14
+ // Depth-based inset carried by the icon slot — the Sidebar row API has
15
+ // no nesting support, so children indent icon+label via this wrapper.
16
+ /* @__PURE__ */
17
+ _jsx(XStack, {
18
+ paddingLeft: depth > 0 ? depth * 16 : 0,
19
+ children: /* @__PURE__ */_jsx(IconComponent, {
20
+ size: 16
21
+ })
22
+ });
23
+ return {
24
+ label: workspace.title || workspace.name,
25
+ value: path,
26
+ icon,
27
+ active: activePath === path,
28
+ onPress: onNavigate ? function () {
29
+ return onNavigate(path);
30
+ } : void 0
31
+ };
32
+ }
33
+ function flattenTree(roots, childrenByParent, paths, activePath, onNavigate) {
34
+ var depth = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 0;
35
+ var items = [];
36
+ var _iteratorNormalCompletion = true,
37
+ _didIteratorError = false,
38
+ _iteratorError = void 0;
39
+ try {
40
+ for (var _iterator = roots[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
41
+ var workspace = _step.value;
42
+ items.push(workspaceItem(workspace, depth, paths, activePath, onNavigate));
43
+ var children = childrenByParent.get(workspace.name);
44
+ if (children === null || children === void 0 ? void 0 : children.length) {
45
+ items.push(...flattenTree(children, childrenByParent, paths, activePath, onNavigate, depth + 1));
46
+ }
47
+ }
48
+ } catch (err) {
49
+ _didIteratorError = true;
50
+ _iteratorError = err;
51
+ } finally {
52
+ try {
53
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
54
+ _iterator.return();
55
+ }
56
+ } finally {
57
+ if (_didIteratorError) {
58
+ throw _iteratorError;
59
+ }
60
+ }
61
+ }
62
+ return items;
63
+ }
64
+ function WorkspaceSidebar(param) {
65
+ var {
66
+ activePath,
67
+ onNavigate
68
+ } = param;
69
+ var {
70
+ t
71
+ } = useTranslation(BACKOFFICE_I18N_NAMESPACE);
72
+ var paths = useBackofficePaths();
73
+ var {
74
+ privateWorkspaces,
75
+ publicRoots,
76
+ childrenByParent,
77
+ isLoading
78
+ } = useWorkspaces();
79
+ var sections = useMemo(function () {
80
+ var result = [];
81
+ if (privateWorkspaces.length > 0) {
82
+ result.push({
83
+ title: t("sidebar.private", "Private"),
84
+ items: privateWorkspaces.map(function (workspace) {
85
+ return workspaceItem(workspace, 0, paths, activePath, onNavigate);
86
+ })
87
+ });
88
+ }
89
+ if (publicRoots.length > 0) {
90
+ result.push({
91
+ title: t("sidebar.public", "Public"),
92
+ items: flattenTree(publicRoots, childrenByParent, paths, activePath, onNavigate)
93
+ });
94
+ }
95
+ return result;
96
+ }, [privateWorkspaces, publicRoots, childrenByParent, paths, activePath, onNavigate, t]);
97
+ if (isLoading && sections.length === 0) {
98
+ return /* @__PURE__ */_jsx(YStack, {
99
+ width: WORKSPACE_SIDEBAR_WIDTH,
100
+ alignItems: "center",
101
+ paddingTop: "$6",
102
+ "aria-label": t("sidebar.loading", "Loading workspaces"),
103
+ children: /* @__PURE__ */_jsx(Spinner, {
104
+ size: "small"
105
+ })
106
+ });
107
+ }
108
+ return /* @__PURE__ */_jsx(Sidebar, {
109
+ sections,
110
+ width: WORKSPACE_SIDEBAR_WIDTH
111
+ });
112
+ }
113
+ export { WORKSPACE_SIDEBAR_WIDTH, WorkspaceSidebar };
114
+ //# sourceMappingURL=WorkspaceSidebar.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","Sidebar","Spinner","XStack","YStack","useMemo","useTranslation","useBackofficePaths","BACKOFFICE_I18N_NAMESPACE","useWorkspaces","workspaceIcon","WORKSPACE_SIDEBAR_WIDTH","workspaceItem","workspace","depth","paths","activePath","onNavigate","path","name","IconComponent","icon","paddingLeft","children","size","label","title","value","active","onPress","flattenTree","roots","childrenByParent","arguments","length","items","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","push","get","err","return","WorkspaceSidebar","param","t","privateWorkspaces","publicRoots","isLoading","sections","result","map"],"sources":["../../../src/shell/WorkspaceSidebar.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}