@plumile/backoffice-react 0.1.109 → 0.1.113

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 (308) hide show
  1. package/lib/esm/auth/AuthRefreshNotice.js +2 -2
  2. package/lib/esm/auth/AuthRefreshNotice.js.map +1 -1
  3. package/lib/esm/auth/authRefreshNotice.css.js +1 -0
  4. package/lib/esm/auth/authRefreshNotice.css.js.map +1 -1
  5. package/lib/esm/auth/login/EmailCapturePanel.js +12 -9
  6. package/lib/esm/auth/login/EmailCapturePanel.js.map +1 -1
  7. package/lib/esm/auth/login/LoginFlow.js +10 -10
  8. package/lib/esm/auth/login/LoginFlow.js.map +1 -1
  9. package/lib/esm/auth/login/MethodChooser.js +14 -12
  10. package/lib/esm/auth/login/MethodChooser.js.map +1 -1
  11. package/lib/esm/auth/login/MfaChallengeForm.js +13 -10
  12. package/lib/esm/auth/login/MfaChallengeForm.js.map +1 -1
  13. package/lib/esm/auth/login/OidcButtons.js +4 -4
  14. package/lib/esm/auth/login/OidcButtons.js.map +1 -1
  15. package/lib/esm/auth/login/PasskeyLoginForm.js +13 -10
  16. package/lib/esm/auth/login/PasskeyLoginForm.js.map +1 -1
  17. package/lib/esm/auth/login/PasswordLoginPanel.js +8 -8
  18. package/lib/esm/auth/login/PasswordLoginPanel.js.map +1 -1
  19. package/lib/esm/auth/login/loginPage.css.js.map +1 -1
  20. package/lib/esm/auth/pages/AcceptInvitationScreen.js +18 -14
  21. package/lib/esm/auth/pages/AcceptInvitationScreen.js.map +1 -1
  22. package/lib/esm/auth/pages/PasswordResetCompleteScreen.js +16 -12
  23. package/lib/esm/auth/pages/PasswordResetCompleteScreen.js.map +1 -1
  24. package/lib/esm/auth/pages/PasswordResetRequestScreen.js +15 -11
  25. package/lib/esm/auth/pages/PasswordResetRequestScreen.js.map +1 -1
  26. package/lib/esm/auth/pages/VerifyEmailScreen.js +13 -11
  27. package/lib/esm/auth/pages/VerifyEmailScreen.js.map +1 -1
  28. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js +66 -54
  29. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js.map +1 -1
  30. package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js +8 -8
  31. package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js.map +1 -1
  32. package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js.map +1 -1
  33. package/lib/esm/components/backoffice/actions/toastViewAction.js.map +1 -1
  34. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js +13 -12
  35. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js.map +1 -1
  36. package/lib/esm/components/backoffice/detail/BackofficeCopyButton.js +3 -3
  37. package/lib/esm/components/backoffice/detail/BackofficeCopyButton.js.map +1 -1
  38. package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js +8 -8
  39. package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js.map +1 -1
  40. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js +12 -11
  41. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js.map +1 -1
  42. package/lib/esm/components/backoffice/detail/BackofficeDetailField.js +8 -7
  43. package/lib/esm/components/backoffice/detail/BackofficeDetailField.js.map +1 -1
  44. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js.map +1 -1
  45. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js +6 -6
  46. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js.map +1 -1
  47. package/lib/esm/components/backoffice/detail/BackofficeDetailHeader.js +3 -3
  48. package/lib/esm/components/backoffice/detail/BackofficeDetailHeader.js.map +1 -1
  49. package/lib/esm/components/backoffice/detail/BackofficeDetailPage.js +3 -3
  50. package/lib/esm/components/backoffice/detail/BackofficeDetailPage.js.map +1 -1
  51. package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js +4 -4
  52. package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js.map +1 -1
  53. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js +1 -1
  54. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js.map +1 -1
  55. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js +30 -29
  56. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js.map +1 -1
  57. package/lib/esm/components/backoffice/detail/BackofficeDetailTable.js +3 -3
  58. package/lib/esm/components/backoffice/detail/BackofficeDetailTable.js.map +1 -1
  59. package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js +5 -5
  60. package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js.map +1 -1
  61. package/lib/esm/components/backoffice/detail/BackofficeEntitySummaryHeader.js +21 -19
  62. package/lib/esm/components/backoffice/detail/BackofficeEntitySummaryHeader.js.map +1 -1
  63. package/lib/esm/components/backoffice/detail/BackofficeKpiStrip.js +9 -6
  64. package/lib/esm/components/backoffice/detail/BackofficeKpiStrip.js.map +1 -1
  65. package/lib/esm/components/backoffice/detail/BackofficeLifecycleTimelineSection.js +7 -7
  66. package/lib/esm/components/backoffice/detail/BackofficeLifecycleTimelineSection.js.map +1 -1
  67. package/lib/esm/components/backoffice/detail/BackofficePayloadInspectorSection.js +8 -8
  68. package/lib/esm/components/backoffice/detail/BackofficePayloadInspectorSection.js.map +1 -1
  69. package/lib/esm/components/backoffice/detail/BackofficeReferenceValue.js +5 -5
  70. package/lib/esm/components/backoffice/detail/BackofficeReferenceValue.js.map +1 -1
  71. package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js +1 -1
  72. package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js.map +1 -1
  73. package/lib/esm/components/backoffice/detail/BackofficeStatusMetaBadge.js +4 -4
  74. package/lib/esm/components/backoffice/detail/BackofficeStatusMetaBadge.js.map +1 -1
  75. package/lib/esm/components/backoffice/detail/BackofficeUsageCostBreakdown.js +1 -1
  76. package/lib/esm/components/backoffice/detail/BackofficeUsageCostBreakdown.js.map +1 -1
  77. package/lib/esm/components/backoffice/detail/backofficeAuditMetadataPanel.css.js.map +1 -1
  78. package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js.map +1 -1
  79. package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js.map +1 -1
  80. package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js.map +1 -1
  81. package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js.map +1 -1
  82. package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js.map +1 -1
  83. package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js.map +1 -1
  84. package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js.map +1 -1
  85. package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js.map +1 -1
  86. package/lib/esm/components/backoffice/detail/backofficeEntitySummaryHeader.css.js.map +1 -1
  87. package/lib/esm/components/backoffice/detail/backofficeKpiStrip.css.js.map +1 -1
  88. package/lib/esm/components/backoffice/detail/backofficeLifecycleTimelineSection.css.js.map +1 -1
  89. package/lib/esm/components/backoffice/detail/backofficePayloadInspectorSection.css.js.map +1 -1
  90. package/lib/esm/components/backoffice/detail/backofficeReferenceValue.css.js.map +1 -1
  91. package/lib/esm/components/backoffice/detail/backofficeRelationsSummaryGrid.css.js.map +1 -1
  92. package/lib/esm/components/backoffice/detail/backofficeScopeStack.css.js.map +1 -1
  93. package/lib/esm/components/backoffice/detail/backofficeStatusMetaBadge.css.js.map +1 -1
  94. package/lib/esm/components/backoffice/detail/backofficeUsageCostBreakdown.css.js.map +1 -1
  95. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js +12 -12
  96. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js.map +1 -1
  97. package/lib/esm/components/backoffice/filters/DeferredFilterSearchInput.js +11 -9
  98. package/lib/esm/components/backoffice/filters/DeferredFilterSearchInput.js.map +1 -1
  99. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js +18 -17
  100. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js.map +1 -1
  101. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js.map +1 -1
  102. package/lib/esm/components/backoffice/filters/deferredFilterSearchInput.css.js.map +1 -1
  103. package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js.map +1 -1
  104. package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js +25 -23
  105. package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js.map +1 -1
  106. package/lib/esm/components/backoffice/hub/backofficeHubTemplate.css.js.map +1 -1
  107. package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js.map +1 -1
  108. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js +14 -14
  109. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js.map +1 -1
  110. package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js.map +1 -1
  111. package/lib/esm/components/backoffice/layout/buildSidebarSections.js +42 -37
  112. package/lib/esm/components/backoffice/layout/buildSidebarSections.js.map +1 -1
  113. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js.map +1 -1
  114. package/lib/esm/components/backoffice/links/BackofficeInlineLink.js +1 -1
  115. package/lib/esm/components/backoffice/links/BackofficeInlineLink.js.map +1 -1
  116. package/lib/esm/components/backoffice/links/BackofficeLink.js +1 -1
  117. package/lib/esm/components/backoffice/links/BackofficeLink.js.map +1 -1
  118. package/lib/esm/components/backoffice/links/backofficeLink.css.js.map +1 -1
  119. package/lib/esm/components/backoffice/lists/BackofficeListToolbar.js +1 -1
  120. package/lib/esm/components/backoffice/lists/BackofficeListToolbar.js.map +1 -1
  121. package/lib/esm/components/backoffice/lists/backofficeListToolbar.css.js.map +1 -1
  122. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js +1 -1
  123. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js.map +1 -1
  124. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js.map +1 -1
  125. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js +31 -27
  126. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +1 -1
  127. package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js.map +1 -1
  128. package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js +6 -6
  129. package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js.map +1 -1
  130. package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js +4 -4
  131. package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js.map +1 -1
  132. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js +1 -1
  133. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js.map +1 -1
  134. package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js.map +1 -1
  135. package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js.map +1 -1
  136. package/lib/esm/components/backoffice/routing/BackofficeContentError.js +6 -5
  137. package/lib/esm/components/backoffice/routing/BackofficeContentError.js.map +1 -1
  138. package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js +10 -10
  139. package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js.map +1 -1
  140. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js +10 -10
  141. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js.map +1 -1
  142. package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js.map +1 -1
  143. package/lib/esm/components/backoffice/routing/backofficeContentError.css.js.map +1 -1
  144. package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js.map +1 -1
  145. package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js.map +1 -1
  146. package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js.map +1 -1
  147. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js +3 -3
  148. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js.map +1 -1
  149. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js +191 -178
  150. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js.map +1 -1
  151. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js +6 -5
  152. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js.map +1 -1
  153. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js.map +1 -1
  154. package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js.map +1 -1
  155. package/lib/esm/components/backoffice/shared/BackofficeFilterableCell.js +10 -9
  156. package/lib/esm/components/backoffice/shared/BackofficeFilterableCell.js.map +1 -1
  157. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js +1 -1
  158. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js.map +1 -1
  159. package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js.map +1 -1
  160. package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js.map +1 -1
  161. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js +11 -9
  162. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js.map +1 -1
  163. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js +7 -7
  164. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js.map +1 -1
  165. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js +17 -12
  166. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js.map +1 -1
  167. package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js +10 -10
  168. package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js.map +1 -1
  169. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js.map +1 -1
  170. package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js.map +1 -1
  171. package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js.map +1 -1
  172. package/lib/esm/hooks/useBackofficeListUrlState.js +2 -1
  173. package/lib/esm/hooks/useBackofficeListUrlState.js.map +1 -1
  174. package/lib/esm/pages/BackofficeAcceptInvitationPage.js +1 -1
  175. package/lib/esm/pages/BackofficeAcceptInvitationPage.js.map +1 -1
  176. package/lib/esm/pages/BackofficeDashboardPage.js +72 -68
  177. package/lib/esm/pages/BackofficeDashboardPage.js.map +1 -1
  178. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js +1 -1
  179. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +1 -1
  180. package/lib/esm/pages/BackofficeEntityDetailPage.js +207 -184
  181. package/lib/esm/pages/BackofficeEntityDetailPage.js.map +1 -1
  182. package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js +1 -1
  183. package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js.map +1 -1
  184. package/lib/esm/pages/BackofficeEntityListPage.helpers.js.map +1 -1
  185. package/lib/esm/pages/BackofficeEntityListPage.js +143 -139
  186. package/lib/esm/pages/BackofficeEntityListPage.js.map +1 -1
  187. package/lib/esm/pages/BackofficeHubPage.js +10 -9
  188. package/lib/esm/pages/BackofficeHubPage.js.map +1 -1
  189. package/lib/esm/pages/BackofficeLayoutPage.js +44 -39
  190. package/lib/esm/pages/BackofficeLayoutPage.js.map +1 -1
  191. package/lib/esm/pages/BackofficeLoginPage.js +1 -1
  192. package/lib/esm/pages/BackofficeLoginPage.js.map +1 -1
  193. package/lib/esm/pages/BackofficePasswordResetCompletePage.js +1 -1
  194. package/lib/esm/pages/BackofficePasswordResetCompletePage.js.map +1 -1
  195. package/lib/esm/pages/BackofficeVerifyEmailPage.js +1 -1
  196. package/lib/esm/pages/BackofficeVerifyEmailPage.js.map +1 -1
  197. package/lib/esm/pages/backofficeDashboardPage.css.js.map +1 -1
  198. package/lib/esm/pages/backofficeEntityDetailPage.css.js.map +1 -1
  199. package/lib/esm/pages/backofficeEntityListPage.css.js.map +1 -1
  200. package/lib/esm/pages/dashboard/DashboardMetricGroup.js +10 -9
  201. package/lib/esm/pages/dashboard/DashboardMetricGroup.js.map +1 -1
  202. package/lib/esm/pages/dashboard/DashboardPanel.js +3 -3
  203. package/lib/esm/pages/dashboard/DashboardPanel.js.map +1 -1
  204. package/lib/esm/pages/dashboard/DashboardQuickActions.js +2 -2
  205. package/lib/esm/pages/dashboard/DashboardQuickActions.js.map +1 -1
  206. package/lib/esm/pages/dashboard/DashboardStatusList.js +1 -1
  207. package/lib/esm/pages/dashboard/DashboardStatusList.js.map +1 -1
  208. package/lib/esm/pages/dashboard/dashboardMetricGroup.css.js.map +1 -1
  209. package/lib/esm/pages/dashboard/dashboardPanel.css.js.map +1 -1
  210. package/lib/esm/pages/dashboard/dashboardQuickActions.css.js.map +1 -1
  211. package/lib/esm/pages/dashboard/dashboardStatusList.css.js.map +1 -1
  212. package/lib/esm/pages/detail/buildTabsItems.js.map +1 -1
  213. package/lib/esm/provider/BackofficeProvider.js +22 -20
  214. package/lib/esm/provider/BackofficeProvider.js.map +1 -1
  215. package/lib/esm/router/createBackofficeRoutes.js +33 -30
  216. package/lib/esm/router/createBackofficeRoutes.js.map +1 -1
  217. package/lib/esm/storybook/relay/RelayStory.css.js.map +1 -1
  218. package/lib/types/auth/AuthFlows.stories.d.ts +19 -0
  219. package/lib/types/auth/AuthFlows.stories.d.ts.map +1 -0
  220. package/lib/types/auth/AuthRefreshNotice.d.ts +1 -1
  221. package/lib/types/auth/AuthRefreshNotice.d.ts.map +1 -1
  222. package/lib/types/auth/authRefreshNotice.css.d.ts.map +1 -1
  223. package/lib/types/auth/login/EmailCapturePanel.d.ts.map +1 -1
  224. package/lib/types/auth/login/MethodChooser.d.ts.map +1 -1
  225. package/lib/types/auth/login/MfaChallengeForm.d.ts.map +1 -1
  226. package/lib/types/auth/login/PasskeyLoginForm.d.ts.map +1 -1
  227. package/lib/types/auth/login/PasswordLoginPanel.d.ts +1 -1
  228. package/lib/types/auth/login/PasswordLoginPanel.d.ts.map +1 -1
  229. package/lib/types/auth/login/loginPage.css.d.ts.map +1 -1
  230. package/lib/types/auth/pages/AcceptInvitationScreen.d.ts.map +1 -1
  231. package/lib/types/auth/pages/PasswordResetCompleteScreen.d.ts.map +1 -1
  232. package/lib/types/auth/pages/PasswordResetRequestScreen.d.ts.map +1 -1
  233. package/lib/types/auth/pages/VerifyEmailScreen.d.ts.map +1 -1
  234. package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts.map +1 -1
  235. package/lib/types/components/backoffice/actions/toastViewAction.d.ts +1 -1
  236. package/lib/types/components/backoffice/actions/toastViewAction.d.ts.map +1 -1
  237. package/lib/types/components/backoffice/columns/buildDataTableColumns.d.ts +1 -1
  238. package/lib/types/components/backoffice/columns/buildDataTableColumns.d.ts.map +1 -1
  239. package/lib/types/components/backoffice/detail/BackofficeCopyButton.d.ts +1 -1
  240. package/lib/types/components/backoffice/detail/BackofficeCopyButton.d.ts.map +1 -1
  241. package/lib/types/components/backoffice/detail/BackofficeDetailErrorList.d.ts.map +1 -1
  242. package/lib/types/components/backoffice/detail/BackofficeDetailField.d.ts.map +1 -1
  243. package/lib/types/components/backoffice/detail/BackofficeDetailFlagTag.d.ts +1 -1
  244. package/lib/types/components/backoffice/detail/BackofficeDetailFlagTag.d.ts.map +1 -1
  245. package/lib/types/components/backoffice/detail/BackofficeDetailPrimitives.stories.d.ts +17 -0
  246. package/lib/types/components/backoffice/detail/BackofficeDetailPrimitives.stories.d.ts.map +1 -0
  247. package/lib/types/components/backoffice/detail/BackofficeDetailRelationListBlock.d.ts.map +1 -1
  248. package/lib/types/components/backoffice/detail/BackofficeDetailTable.d.ts +1 -1
  249. package/lib/types/components/backoffice/detail/BackofficeDetailTable.d.ts.map +1 -1
  250. package/lib/types/components/backoffice/detail/BackofficeEntitySummaryHeader.d.ts.map +1 -1
  251. package/lib/types/components/backoffice/detail/BackofficeKpiStrip.d.ts.map +1 -1
  252. package/lib/types/components/backoffice/detail/backofficeDetailRelationLink.css.d.ts.map +1 -1
  253. package/lib/types/components/backoffice/filters/DeferredFilterSearchInput.d.ts.map +1 -1
  254. package/lib/types/components/backoffice/filters/EntityIdFilterField.d.ts.map +1 -1
  255. package/lib/types/components/backoffice/filters/backofficeFilterAction.css.d.ts.map +1 -1
  256. package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts.map +1 -1
  257. package/lib/types/components/backoffice/hub/BackofficeHubTemplate.d.ts.map +1 -1
  258. package/lib/types/components/backoffice/hub/BackofficeHubTemplate.stories.d.ts +48 -0
  259. package/lib/types/components/backoffice/hub/BackofficeHubTemplate.stories.d.ts.map +1 -0
  260. package/lib/types/components/backoffice/hub/backofficeHubTemplate.css.d.ts.map +1 -1
  261. package/lib/types/components/backoffice/layout/backofficeSidebarActions.css.d.ts.map +1 -1
  262. package/lib/types/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.d.ts.map +1 -1
  263. package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts +1 -1
  264. package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts.map +1 -1
  265. package/lib/types/components/backoffice/layout/mapViewerToSidebarProfileView.d.ts +1 -1
  266. package/lib/types/components/backoffice/layout/mapViewerToSidebarProfileView.d.ts.map +1 -1
  267. package/lib/types/components/backoffice/lists/BackofficeListToolbar.stories.d.ts +13 -0
  268. package/lib/types/components/backoffice/lists/BackofficeListToolbar.stories.d.ts.map +1 -0
  269. package/lib/types/components/backoffice/overview/BackofficeOverviewLayout.stories.d.ts.map +1 -1
  270. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts.map +1 -1
  271. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.stories.d.ts +11 -0
  272. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.stories.d.ts.map +1 -0
  273. package/lib/types/components/backoffice/pickers/entityIdPickerDialog.css.d.ts.map +1 -1
  274. package/lib/types/components/backoffice/refs/backofficeRelatedCountLink.css.d.ts.map +1 -1
  275. package/lib/types/components/backoffice/routing/BackofficeContentError.d.ts.map +1 -1
  276. package/lib/types/components/backoffice/routing/backofficeRoutePendingBar.css.d.ts.map +1 -1
  277. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts +1 -1
  278. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts.map +1 -1
  279. package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.d.ts +1 -1
  280. package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.d.ts.map +1 -1
  281. package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.stories.d.ts.map +1 -1
  282. package/lib/types/components/backoffice/shared/BackofficeFilterableCell.d.ts.map +1 -1
  283. package/lib/types/components/backoffice/shared/backofficeFilterableCell.css.d.ts.map +1 -1
  284. package/lib/types/components/backoffice/tools/BackofficeTools.stories.d.ts +17 -0
  285. package/lib/types/components/backoffice/tools/BackofficeTools.stories.d.ts.map +1 -0
  286. package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts.map +1 -1
  287. package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts.map +1 -1
  288. package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts.map +1 -1
  289. package/lib/types/hooks/useBackofficeListUrlState.d.ts.map +1 -1
  290. package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -1
  291. package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts +2 -1
  292. package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts.map +1 -1
  293. package/lib/types/pages/BackofficeHubPage.d.ts.map +1 -1
  294. package/lib/types/pages/BackofficeLayoutPage.d.ts.map +1 -1
  295. package/lib/types/pages/backofficeEntityDetailPage.css.d.ts.map +1 -1
  296. package/lib/types/pages/dashboard/DashboardMetricGroup.d.ts.map +1 -1
  297. package/lib/types/pages/dashboard/dashboardMetricGroup.css.d.ts.map +1 -1
  298. package/lib/types/pages/dashboard/dashboardPanel.css.d.ts.map +1 -1
  299. package/lib/types/pages/dashboard/dashboardQuickActions.css.d.ts.map +1 -1
  300. package/lib/types/pages/dashboard/dashboardStatusList.css.d.ts.map +1 -1
  301. package/lib/types/pages/detail/buildTabsItems.d.ts +1 -1
  302. package/lib/types/pages/detail/buildTabsItems.d.ts.map +1 -1
  303. package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
  304. package/lib/types/provider/types.d.ts +2 -1
  305. package/lib/types/provider/types.d.ts.map +1 -1
  306. package/lib/types/router/createBackofficeRoutes.d.ts +2 -1
  307. package/lib/types/router/createBackofficeRoutes.d.ts.map +1 -1
  308. package/package.json +14 -10
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeDetailSection.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeDetailSection.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui';\n\nexport const section = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n padding: 3,\n borderRadius: 'md',\n backgroundColor: 'surfaceSecondary',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderLight',\n boxShadow: 'none',\n});\n\nexport const header = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n});\n\nexport const title = sprinkles({\n fontSize: 'base',\n fontWeight: 'semibold',\n color: 'text',\n});\n\nexport const description = sprinkles({\n fontSize: 'sm',\n color: 'textSecondary',\n});\n\nexport const grid = sprinkles({\n display: 'grid',\n gap: 3,\n gridTemplateColumns: 'autoFitMinmax220',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeDetailSection.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeDetailSection.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const section = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n padding: 3,\n borderRadius: 'md',\n backgroundColor: 'surfaceSecondary',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderLight',\n boxShadow: 'none',\n});\n\nexport const header = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n});\n\nexport const title = sprinkles({\n fontSize: 'base',\n fontWeight: 'semibold',\n color: 'text',\n});\n\nexport const description = sprinkles({\n fontSize: 'sm',\n color: 'textSecondary',\n});\n\nexport const grid = sprinkles({\n display: 'grid',\n gap: 3,\n gridTemplateColumns: 'autoFitMinmax220',\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeDetailTaggedValue.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeDetailTaggedValue.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui';\n\nexport const container = sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n gap: 2,\n flexWrap: 'wrap',\n});\n\nexport const value = sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n gap: 1,\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeDetailTaggedValue.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeDetailTaggedValue.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const container = sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n gap: 2,\n flexWrap: 'wrap',\n});\n\nexport const value = sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n gap: 1,\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeEntitySummaryHeader.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeEntitySummaryHeader.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui';\n\nexport const root = style([\n sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n padding: 4,\n borderRadius: 'lg',\n backgroundColor: 'surface',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderLight',\n }),\n]);\n\nexport const top = sprinkles({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n gap: 4,\n flexWrap: 'wrap',\n});\n\nexport const identity = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n minWidth: 0,\n});\n\nexport const titleRow = sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n flexWrap: 'wrap',\n});\n\nexport const title = sprinkles({\n fontSize: '2xl',\n lineHeight: 'tight',\n fontWeight: 'semibold',\n color: 'text',\n overflowWrap: 'anywhere',\n});\n\nexport const subtitle = sprinkles({\n fontSize: 'sm',\n color: 'textSecondary',\n overflowWrap: 'anywhere',\n});\n\nexport const actions = sprinkles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: 2,\n flexWrap: 'wrap',\n});\n\nexport const meta = sprinkles({\n display: 'grid',\n gap: 3,\n gridTemplateColumns: 'autoFitMinmax180',\n});\n\nexport const metaItem = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const metaLabel = sprinkles({\n fontSize: 'xs',\n textTransform: 'uppercase',\n letterSpacing: 'capsTight',\n color: 'textSecondary',\n});\n\nexport const metaValue = sprinkles({\n fontSize: 'sm',\n color: 'text',\n overflowWrap: 'anywhere',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeEntitySummaryHeader.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeEntitySummaryHeader.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const root = style([\n sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n padding: 4,\n borderRadius: 'lg',\n backgroundColor: 'surface',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderLight',\n }),\n]);\n\nexport const top = sprinkles({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n gap: 4,\n flexWrap: 'wrap',\n});\n\nexport const identity = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n minWidth: 0,\n});\n\nexport const titleRow = sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n flexWrap: 'wrap',\n});\n\nexport const title = sprinkles({\n fontSize: '2xl',\n lineHeight: 'tight',\n fontWeight: 'semibold',\n color: 'text',\n overflowWrap: 'anywhere',\n});\n\nexport const subtitle = sprinkles({\n fontSize: 'sm',\n color: 'textSecondary',\n overflowWrap: 'anywhere',\n});\n\nexport const actions = sprinkles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: 2,\n flexWrap: 'wrap',\n});\n\nexport const meta = sprinkles({\n display: 'grid',\n gap: 3,\n gridTemplateColumns: 'autoFitMinmax180',\n});\n\nexport const metaItem = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const metaLabel = sprinkles({\n fontSize: 'xs',\n textTransform: 'uppercase',\n letterSpacing: 'capsTight',\n color: 'textSecondary',\n});\n\nexport const metaValue = sprinkles({\n fontSize: 'sm',\n color: 'text',\n overflowWrap: 'anywhere',\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeKpiStrip.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeKpiStrip.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui';\n\nexport const group = sprinkles({\n display: 'grid',\n gap: 3,\n gridTemplateColumns: 'autoFitMinmax180',\n});\n\nexport const compactGroup = sprinkles({\n gap: 2,\n});\n\nexport const card = style({\n minWidth: 0,\n});\n\nexport const value = sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeKpiStrip.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeKpiStrip.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const group = sprinkles({\n display: 'grid',\n gap: 3,\n gridTemplateColumns: 'autoFitMinmax180',\n});\n\nexport const compactGroup = sprinkles({\n gap: 2,\n});\n\nexport const card = style({\n minWidth: 0,\n});\n\nexport const value = sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeLifecycleTimelineSection.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeLifecycleTimelineSection.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui';\n\nexport const eventMeta = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n});\n\nexport const actor = sprinkles({\n color: 'textSecondary',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeLifecycleTimelineSection.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeLifecycleTimelineSection.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const eventMeta = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n});\n\nexport const actor = sprinkles({\n color: 'textSecondary',\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficePayloadInspectorSection.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficePayloadInspectorSection.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui';\n\nexport const details = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const summary = style([\n sprinkles({\n cursor: 'pointer',\n fontSize: 'sm',\n fontWeight: 'medium',\n color: 'primary',\n }),\n]);\n\nexport const preview = sprinkles({\n fontSize: 'sm',\n color: 'textSecondary',\n overflowWrap: 'anywhere',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficePayloadInspectorSection.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficePayloadInspectorSection.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const details = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const summary = style([\n sprinkles({\n cursor: 'pointer',\n fontSize: 'sm',\n fontWeight: 'medium',\n color: 'primary',\n }),\n]);\n\nexport const preview = sprinkles({\n fontSize: 'sm',\n color: 'textSecondary',\n overflowWrap: 'anywhere',\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeReferenceValue.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeReferenceValue.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui';\n\nexport const root = sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n gap: 2,\n minWidth: 0,\n});\n\nexport const value = sprinkles({\n minWidth: 0,\n overflowWrap: 'anywhere',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeReferenceValue.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeReferenceValue.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const root = sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n gap: 2,\n minWidth: 0,\n});\n\nexport const value = sprinkles({\n minWidth: 0,\n overflowWrap: 'anywhere',\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeRelationsSummaryGrid.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeRelationsSummaryGrid.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui';\n\nexport const grid = sprinkles({\n display: 'grid',\n gap: 3,\n gridTemplateColumns: 'autoFitMinmax180',\n});\n\nexport const item = style([\n sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n padding: 3,\n borderRadius: 'md',\n backgroundColor: 'surface',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderLight',\n minWidth: 0,\n }),\n]);\n\nexport const label = sprinkles({\n fontSize: 'xs',\n textTransform: 'uppercase',\n letterSpacing: 'capsTight',\n color: 'textSecondary',\n});\n\nexport const count = sprinkles({\n fontSize: 'xl',\n fontWeight: 'semibold',\n color: 'text',\n});\n\nexport const description = sprinkles({\n fontSize: 'sm',\n color: 'textSecondary',\n overflowWrap: 'anywhere',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeRelationsSummaryGrid.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeRelationsSummaryGrid.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const grid = sprinkles({\n display: 'grid',\n gap: 3,\n gridTemplateColumns: 'autoFitMinmax180',\n});\n\nexport const item = style([\n sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n padding: 3,\n borderRadius: 'md',\n backgroundColor: 'surface',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderLight',\n minWidth: 0,\n }),\n]);\n\nexport const label = sprinkles({\n fontSize: 'xs',\n textTransform: 'uppercase',\n letterSpacing: 'capsTight',\n color: 'textSecondary',\n});\n\nexport const count = sprinkles({\n fontSize: 'xl',\n fontWeight: 'semibold',\n color: 'text',\n});\n\nexport const description = sprinkles({\n fontSize: 'sm',\n color: 'textSecondary',\n overflowWrap: 'anywhere',\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeScopeStack.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeScopeStack.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui';\n\nexport const list = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const item = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const label = sprinkles({\n fontSize: 'xs',\n textTransform: 'uppercase',\n letterSpacing: 'capsTight',\n color: 'textSecondary',\n});\n\nexport const value = sprinkles({\n fontSize: 'sm',\n color: 'text',\n overflowWrap: 'anywhere',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeScopeStack.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeScopeStack.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const list = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const item = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const label = sprinkles({\n fontSize: 'xs',\n textTransform: 'uppercase',\n letterSpacing: 'capsTight',\n color: 'textSecondary',\n});\n\nexport const value = sprinkles({\n fontSize: 'sm',\n color: 'text',\n overflowWrap: 'anywhere',\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeStatusMetaBadge.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeStatusMetaBadge.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui';\n\nexport const badge = sprinkles({\n width: 'fit',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeStatusMetaBadge.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeStatusMetaBadge.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const badge = sprinkles({\n width: 'fit',\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeUsageCostBreakdown.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeUsageCostBreakdown.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui';\n\nexport const content = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const table = sprinkles({\n display: 'grid',\n gap: 2,\n});\n\nexport const row = style([\n sprinkles({\n display: 'grid',\n gap: 3,\n alignItems: 'center',\n }),\n {\n gridTemplateColumns: 'minmax(0, 1fr) repeat(4, minmax(0, auto))',\n },\n]);\n\nexport const header = sprinkles({\n fontSize: 'xs',\n textTransform: 'uppercase',\n letterSpacing: 'capsTight',\n color: 'textSecondary',\n});\n\nexport const cell = sprinkles({\n fontSize: 'sm',\n color: 'text',\n overflowWrap: 'anywhere',\n});\n\nexport const label = sprinkles({\n fontWeight: 'medium',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeUsageCostBreakdown.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/backofficeUsageCostBreakdown.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const content = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const table = sprinkles({\n display: 'grid',\n gap: 2,\n});\n\nexport const row = style([\n sprinkles({\n display: 'grid',\n gap: 3,\n alignItems: 'center',\n }),\n {\n gridTemplateColumns: 'minmax(0, 1fr) repeat(4, minmax(0, auto))',\n },\n]);\n\nexport const header = sprinkles({\n fontSize: 'xs',\n textTransform: 'uppercase',\n letterSpacing: 'capsTight',\n color: 'textSecondary',\n});\n\nexport const cell = sprinkles({\n fontSize: 'sm',\n color: 'text',\n overflowWrap: 'anywhere',\n});\n\nexport const label = sprinkles({\n fontWeight: 'medium',\n});\n"],"mappings":""}
@@ -3,25 +3,25 @@ import { useBackofficeConfig as t } from "../../../provider/BackofficeConfigCont
3
3
  import { useBackofficeListFilterContext as n } from "../scaffolds/BackofficeListFilterContext.js";
4
4
  import { canFilterValue as r, resolveFilterForColumn as i, resolveFilterForWhereKey as a } from "../../../filters/filterHelpers.js";
5
5
  import { action as o, icon as s } from "./backofficeFilterAction.css.js";
6
- import { SidebarSearchSvg as c } from "@plumile/ui";
7
- import { jsx as l } from "react/jsx-runtime";
8
- import { useTranslation as u } from "react-i18next";
9
- import { Link as d } from "@plumile/router";
10
- import { buildBackofficeListLink as f } from "@plumile/backoffice-core/state/buildListHref.js";
11
- import { setWhereValue as p } from "@plumile/backoffice-core/filters/where.js";
6
+ import { jsx as c } from "react/jsx-runtime";
7
+ import { useTranslation as l } from "react-i18next";
8
+ import u from "@plumile/router/routing/Link.js";
9
+ import { buildBackofficeListLink as d } from "@plumile/backoffice-core/state/buildListHref.js";
10
+ import { setWhereValue as f } from "@plumile/backoffice-core/filters/where.js";
11
+ import { SidebarSearchSvg as p } from "@plumile/ui/icons/SidebarSearchSvg.js";
12
12
  //#region src/components/backoffice/filters/BackofficeFilterAction.tsx
13
13
  var m = (e, t) => e(t), h = (h) => {
14
- let { t: g } = u(), { t: _ } = e(), { filterColumnAliases: v } = t(), { whereKey: y, value: b, path: x, label: S, listConfig: C } = h, w = n(), T = null;
14
+ let { t: g } = l(), { t: _ } = e(), { filterColumnAliases: v } = t(), { whereKey: y, value: b, path: x, label: S, listConfig: C } = h, w = n(), T = null;
15
15
  if (C == null ? w != null && (T = w.config) : T = C, T == null) return null;
16
16
  let E = a(T, y, x);
17
17
  if (E == null && x == null && (E = i(T, y, v)), E == null || !r(E, b)) return null;
18
- let D = m(E.label, g), O = S ?? _("filters.actions.filterBy", { label: D }), k = /* @__PURE__ */ l(c, {
18
+ let D = m(E.label, g), O = S ?? _("filters.actions.filterBy", { label: D }), k = /* @__PURE__ */ c(p, {
19
19
  width: 14,
20
20
  height: 14,
21
21
  className: s,
22
22
  "aria-hidden": "true"
23
23
  });
24
- if (w != null) return /* @__PURE__ */ l("button", {
24
+ if (w != null) return /* @__PURE__ */ c("button", {
25
25
  type: "button",
26
26
  className: o,
27
27
  title: O,
@@ -31,9 +31,9 @@ var m = (e, t) => e(t), h = (h) => {
31
31
  },
32
32
  children: k
33
33
  });
34
- let A = p(T.listDefaults?.where ?? T.list.defaultState?.where ?? null, y, b, x);
35
- return /* @__PURE__ */ l(d, {
36
- to: f(T, { where: A }),
34
+ let A = f(T.listDefaults?.where ?? T.list.defaultState?.where ?? null, y, b, x);
35
+ return /* @__PURE__ */ c(u, {
36
+ to: d(T, { where: A }),
37
37
  className: o,
38
38
  title: O,
39
39
  "aria-label": O,
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeFilterAction.js","names":[],"sources":["../../../../../src/components/backoffice/filters/BackofficeFilterAction.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@plumile/router';\nimport { SidebarSearchSvg } from '@plumile/ui';\n\nimport type {\n BackofficeRuntimeResolvedListFacetConfig,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type { TFunction } from 'i18next';\nimport { buildBackofficeListLink } from '@plumile/backoffice-core/state/buildListHref.js';\nimport { setWhereValue } from '@plumile/backoffice-core/filters/where.js';\n\nimport {\n canFilterValue,\n resolveFilterForColumn,\n resolveFilterForWhereKey,\n} from '../../../filters/filterHelpers.js';\nimport { useBackofficeConfig } from '../../../provider/BackofficeConfigContext.js';\nimport { useBackofficeListFilterContext } from '../scaffolds/BackofficeListFilterContext.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './backofficeFilterAction.css.js';\n\nexport type BackofficeFilterActionProps = {\n whereKey: string;\n value: unknown;\n path?: readonly string[];\n label?: string;\n listConfig?: BackofficeRuntimeResolvedListFacetConfig;\n};\n\ntype ListFilterContext = {\n config: BackofficeRuntimeResolvedListFacetConfig;\n applyFilter: (\n whereKey: string,\n value: unknown,\n path?: readonly string[],\n ) => void;\n};\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const BackofficeFilterAction = (\n props: BackofficeFilterActionProps,\n): JSX.Element | null => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const { filterColumnAliases } = useBackofficeConfig();\n const { whereKey, value, path, label, listConfig } = props;\n\n const getContext =\n useBackofficeListFilterContext as () => ListFilterContext | null;\n const context = getContext();\n let config: BackofficeRuntimeResolvedListFacetConfig | null = null;\n\n if (listConfig != null) {\n config = listConfig;\n } else if (context != null) {\n config = context.config;\n }\n\n if (config == null) {\n return null;\n }\n\n let filter = resolveFilterForWhereKey(config, whereKey, path);\n if (filter == null && path == null) {\n filter = resolveFilterForColumn(config, whereKey, filterColumnAliases);\n }\n if (filter == null || !canFilterValue(filter, value)) {\n return null;\n }\n\n const filterLabel = resolveLabel(filter.label, tApp);\n const actionLabel =\n label ??\n t('filters.actions.filterBy', {\n label: filterLabel,\n });\n const icon = (\n <SidebarSearchSvg\n width={14}\n height={14}\n className={styles.icon}\n aria-hidden=\"true\"\n />\n );\n\n if (context != null) {\n return (\n <button\n type=\"button\"\n className={styles.action}\n title={actionLabel}\n aria-label={actionLabel}\n onClick={() => {\n context.applyFilter(whereKey, value, path);\n }}\n >\n {icon}\n </button>\n );\n }\n\n const baseWhere =\n config.listDefaults?.where ?? config.list.defaultState?.where ?? null;\n const nextWhere = setWhereValue(baseWhere, whereKey, value, path);\n const to = buildBackofficeListLink(config, { where: nextWhere });\n\n return (\n <Link\n to={to}\n className={styles.action}\n title={actionLabel}\n aria-label={actionLabel}\n >\n {icon}\n </Link>\n );\n};\n\nexport default BackofficeFilterAction;\n"],"mappings":";;;;;;;;;;;;AAyCA,IAAM,KAAgB,GAAkB,MAC/B,EAAM,EAAK,EAGP,KACX,MACuB;CACvB,IAAM,EAAE,GAAG,MAAS,GAAgB,EAC9B,EAAE,SAAM,GAA+B,EACvC,EAAE,2BAAwB,GAAqB,EAC/C,EAAE,aAAU,UAAO,SAAM,UAAO,kBAAe,GAI/C,IAAU,GAAY,EACxB,IAA0D;CAQ9D,IANI,KAAc,OAEP,KAAW,SACpB,IAAS,EAAQ,UAFjB,IAAS,GAKP,KAAU,MACZ,OAAO;CAGT,IAAI,IAAS,EAAyB,GAAQ,GAAU,EAAK;CAI7D,IAHI,KAAU,QAAQ,KAAQ,SAC5B,IAAS,EAAuB,GAAQ,GAAU,EAAoB,GAEpE,KAAU,QAAQ,CAAC,EAAe,GAAQ,EAAM,EAClD,OAAO;CAGT,IAAM,IAAc,EAAa,EAAO,OAAO,EAAK,EAC9C,IACJ,KACA,EAAE,4BAA4B,EAC5B,OAAO,GACR,CAAC,EACE,IACJ,kBAAC,GAAD;EACE,OAAO;EACP,QAAQ;EACR,WAAW;EACX,eAAY;EACZ,CAAA;CAGJ,IAAI,KAAW,MACb,OACE,kBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,OAAO;EACP,cAAY;EACZ,eAAe;GACb,EAAQ,YAAY,GAAU,GAAO,EAAK;;YAG3C;EACM,CAAA;CAMb,IAAM,IAAY,EADhB,EAAO,cAAc,SAAS,EAAO,KAAK,cAAc,SAAS,MACxB,GAAU,GAAO,EAAK;CAGjE,OACE,kBAAC,GAAD;EACM,IAJG,EAAwB,GAAQ,EAAE,OAAO,GAAW,CAIvD;EACJ,WAAW;EACX,OAAO;EACP,cAAY;YAEX;EACI,CAAA"}
1
+ {"version":3,"file":"BackofficeFilterAction.js","names":[],"sources":["../../../../../src/components/backoffice/filters/BackofficeFilterAction.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Link from '@plumile/router/routing/Link.js';\nimport { SidebarSearchSvg } from '@plumile/ui/icons/SidebarSearchSvg.js';\n\nimport type {\n BackofficeRuntimeResolvedListFacetConfig,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type { TFunction } from 'i18next';\nimport { buildBackofficeListLink } from '@plumile/backoffice-core/state/buildListHref.js';\nimport { setWhereValue } from '@plumile/backoffice-core/filters/where.js';\n\nimport {\n canFilterValue,\n resolveFilterForColumn,\n resolveFilterForWhereKey,\n} from '../../../filters/filterHelpers.js';\nimport { useBackofficeConfig } from '../../../provider/BackofficeConfigContext.js';\nimport { useBackofficeListFilterContext } from '../scaffolds/BackofficeListFilterContext.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './backofficeFilterAction.css.js';\n\nexport type BackofficeFilterActionProps = {\n whereKey: string;\n value: unknown;\n path?: readonly string[];\n label?: string;\n listConfig?: BackofficeRuntimeResolvedListFacetConfig;\n};\n\ntype ListFilterContext = {\n config: BackofficeRuntimeResolvedListFacetConfig;\n applyFilter: (\n whereKey: string,\n value: unknown,\n path?: readonly string[],\n ) => void;\n};\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const BackofficeFilterAction = (\n props: BackofficeFilterActionProps,\n): JSX.Element | null => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const { filterColumnAliases } = useBackofficeConfig();\n const { whereKey, value, path, label, listConfig } = props;\n\n const getContext =\n useBackofficeListFilterContext as () => ListFilterContext | null;\n const context = getContext();\n let config: BackofficeRuntimeResolvedListFacetConfig | null = null;\n\n if (listConfig != null) {\n config = listConfig;\n } else if (context != null) {\n config = context.config;\n }\n\n if (config == null) {\n return null;\n }\n\n let filter = resolveFilterForWhereKey(config, whereKey, path);\n if (filter == null && path == null) {\n filter = resolveFilterForColumn(config, whereKey, filterColumnAliases);\n }\n if (filter == null || !canFilterValue(filter, value)) {\n return null;\n }\n\n const filterLabel = resolveLabel(filter.label, tApp);\n const actionLabel =\n label ??\n t('filters.actions.filterBy', {\n label: filterLabel,\n });\n const icon = (\n <SidebarSearchSvg\n width={14}\n height={14}\n className={styles.icon}\n aria-hidden=\"true\"\n />\n );\n\n if (context != null) {\n return (\n <button\n type=\"button\"\n className={styles.action}\n title={actionLabel}\n aria-label={actionLabel}\n onClick={() => {\n context.applyFilter(whereKey, value, path);\n }}\n >\n {icon}\n </button>\n );\n }\n\n const baseWhere =\n config.listDefaults?.where ?? config.list.defaultState?.where ?? null;\n const nextWhere = setWhereValue(baseWhere, whereKey, value, path);\n const to = buildBackofficeListLink(config, { where: nextWhere });\n\n return (\n <Link\n to={to}\n className={styles.action}\n title={actionLabel}\n aria-label={actionLabel}\n >\n {icon}\n </Link>\n );\n};\n\nexport default BackofficeFilterAction;\n"],"mappings":";;;;;;;;;;;;AAyCA,IAAM,KAAgB,GAAkB,MAC/B,EAAM,EAAK,EAGP,KACX,MACuB;CACvB,IAAM,EAAE,GAAG,MAAS,GAAgB,EAC9B,EAAE,SAAM,GAA+B,EACvC,EAAE,2BAAwB,GAAqB,EAC/C,EAAE,aAAU,UAAO,SAAM,UAAO,kBAAe,GAI/C,IAAU,GAAY,EACxB,IAA0D;CAQ9D,IANI,KAAc,OAEP,KAAW,SACpB,IAAS,EAAQ,UAFjB,IAAS,GAKP,KAAU,MACZ,OAAO;CAGT,IAAI,IAAS,EAAyB,GAAQ,GAAU,EAAK;CAI7D,IAHI,KAAU,QAAQ,KAAQ,SAC5B,IAAS,EAAuB,GAAQ,GAAU,EAAoB,GAEpE,KAAU,QAAQ,CAAC,EAAe,GAAQ,EAAM,EAClD,OAAO;CAGT,IAAM,IAAc,EAAa,EAAO,OAAO,EAAK,EAC9C,IACJ,KACA,EAAE,4BAA4B,EAC5B,OAAO,GACR,CAAC,EACE,IACJ,kBAAC,GAAD;EACE,OAAO;EACP,QAAQ;EACR,WAAW;EACX,eAAY;EACZ,CAAA;CAGJ,IAAI,KAAW,MACb,OACE,kBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,OAAO;EACP,cAAY;EACZ,eAAe;GACb,EAAQ,YAAY,GAAU,GAAO,EAAK;;YAG3C;EACM,CAAA;CAMb,IAAM,IAAY,EADhB,EAAO,cAAc,SAAS,EAAO,KAAK,cAAc,SAAS,MACxB,GAAU,GAAO,EAAK;CAGjE,OACE,kBAAC,GAAD;EACM,IAJG,EAAwB,GAAQ,EAAE,OAAO,GAAW,CAIvD;EACJ,WAAW;EACX,OAAO;EACP,cAAY;YAEX;EACI,CAAA"}
@@ -1,8 +1,10 @@
1
1
  import { useBackofficeReactTranslation as e } from "../../../i18n/useBackofficeReactTranslation.js";
2
2
  import { actions as t, container as n } from "./deferredFilterSearchInput.css.js";
3
3
  import { useEffect as r, useState as i } from "react";
4
- import { Button as a, Input as o, SidebarSearchSvg as s } from "@plumile/ui";
5
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
4
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
+ import { Button as s } from "@plumile/ui/atomic/atoms/button/Button.js";
6
+ import { Input as c } from "@plumile/ui/atomic/atoms/input/Input.js";
7
+ import { SidebarSearchSvg as l } from "@plumile/ui/icons/SidebarSearchSvg.js";
6
8
  //#region src/components/backoffice/filters/DeferredFilterSearchInput.tsx
7
9
  var u = ({ value: u, placeholder: d, ariaLabel: f, className: p, inputMode: m = "search", type: h = "search", onApply: g }) => {
8
10
  let { t: _ } = e(), [v, y] = i(u);
@@ -14,14 +16,14 @@ var u = ({ value: u, placeholder: d, ariaLabel: f, className: p, inputMode: m =
14
16
  let E = () => {
15
17
  C && g(b);
16
18
  };
17
- return /* @__PURE__ */ c("form", {
19
+ return /* @__PURE__ */ a("form", {
18
20
  className: p,
19
21
  onSubmit: (e) => {
20
22
  e.preventDefault(), E();
21
23
  },
22
- children: /* @__PURE__ */ l("div", {
24
+ children: /* @__PURE__ */ o("div", {
23
25
  className: n,
24
- children: [/* @__PURE__ */ c(o, {
26
+ children: [/* @__PURE__ */ a(c, {
25
27
  type: h,
26
28
  inputMode: m,
27
29
  value: v,
@@ -35,14 +37,14 @@ var u = ({ value: u, placeholder: d, ariaLabel: f, className: p, inputMode: m =
35
37
  "aria-label": f ?? d,
36
38
  size: "small",
37
39
  fullWidth: !0,
38
- leftIcon: /* @__PURE__ */ c(s, {
40
+ leftIcon: /* @__PURE__ */ a(l, {
39
41
  width: 18,
40
42
  height: 18,
41
43
  "aria-hidden": "true"
42
44
  })
43
- }), /* @__PURE__ */ l("div", {
45
+ }), /* @__PURE__ */ o("div", {
44
46
  className: t,
45
- children: [w && /* @__PURE__ */ c(a, {
47
+ children: [w && /* @__PURE__ */ a(s, {
46
48
  type: "button",
47
49
  variant: "text",
48
50
  size: "small",
@@ -50,7 +52,7 @@ var u = ({ value: u, placeholder: d, ariaLabel: f, className: p, inputMode: m =
50
52
  y(""), x !== "" && g("");
51
53
  },
52
54
  children: _("common.actions.clear")
53
- }), /* @__PURE__ */ c(a, {
55
+ }), /* @__PURE__ */ a(s, {
54
56
  type: "submit",
55
57
  variant: T,
56
58
  size: "small",
@@ -1 +1 @@
1
- {"version":3,"file":"DeferredFilterSearchInput.js","names":[],"sources":["../../../../../src/components/backoffice/filters/DeferredFilterSearchInput.tsx"],"sourcesContent":["import {\n useEffect,\n useState,\n type ChangeEvent,\n type FormEvent,\n type JSX,\n type KeyboardEvent,\n} from 'react';\n\nimport { Button, Input, SidebarSearchSvg } from '@plumile/ui';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './deferredFilterSearchInput.css.js';\n\nexport type DeferredFilterSearchInputProps = {\n value: string;\n placeholder: string;\n ariaLabel?: string;\n className?: string;\n inputMode?: 'search' | 'numeric' | 'decimal';\n type?: 'search' | 'number' | 'datetime-local';\n onApply: (value: string) => void;\n};\n\nexport const DeferredFilterSearchInput = ({\n value,\n placeholder,\n ariaLabel,\n className,\n inputMode = 'search',\n type = 'search',\n onApply,\n}: DeferredFilterSearchInputProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const [draftValue, setDraftValue] = useState(value);\n\n useEffect(() => {\n setDraftValue(value);\n }, [value]);\n\n const normalizedDraft = draftValue.trim();\n const normalizedValue = value.trim();\n const hasDraft = normalizedDraft !== '';\n const hasPendingValue = normalizedDraft !== normalizedValue;\n const canClear = hasDraft || normalizedValue !== '';\n let submitVariant: 'primary' | 'secondary' = 'secondary';\n if (hasPendingValue) {\n submitVariant = 'primary';\n }\n\n const applyDraft = () => {\n if (!hasPendingValue) {\n return;\n }\n onApply(normalizedDraft);\n };\n\n const clearValue = () => {\n setDraftValue('');\n if (normalizedValue !== '') {\n onApply('');\n }\n };\n\n return (\n <form\n className={className}\n onSubmit={(event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n applyDraft();\n }}\n >\n <div className={styles.container}>\n <Input\n type={type}\n inputMode={inputMode}\n value={draftValue}\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n setDraftValue(event.target.value);\n }}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n setDraftValue(value);\n }\n }}\n placeholder={placeholder}\n aria-label={ariaLabel ?? placeholder}\n size=\"small\"\n fullWidth\n leftIcon={\n <SidebarSearchSvg width={18} height={18} aria-hidden=\"true\" />\n }\n />\n <div className={styles.actions}>\n {canClear && (\n <Button\n type=\"button\"\n variant=\"text\"\n size=\"small\"\n onClick={clearValue}\n >\n {t('common.actions.clear')}\n </Button>\n )}\n <Button\n type=\"submit\"\n variant={submitVariant}\n size=\"small\"\n disabled={!hasPendingValue}\n >\n {t('filters.actions.apply')}\n </Button>\n </div>\n </div>\n </form>\n );\n};\n\nexport default DeferredFilterSearchInput;\n"],"mappings":";;;;;;AAyBA,IAAa,KAA6B,EACxC,UACA,gBACA,cACA,cACA,eAAY,UACZ,UAAO,UACP,iBACiD;CACjD,IAAM,EAAE,SAAM,GAA+B,EACvC,CAAC,GAAY,KAAiB,EAAS,EAAM;CAEnD,QAAgB;EACd,EAAc,EAAM;IACnB,CAAC,EAAM,CAAC;CAEX,IAAM,IAAkB,EAAW,MAAM,EACnC,IAAkB,EAAM,MAAM,EAC9B,IAAW,MAAoB,IAC/B,IAAkB,MAAoB,GACtC,IAAW,KAAY,MAAoB,IAC7C,IAAyC;CAC7C,AAAI,MACF,IAAgB;CAGlB,IAAM,UAAmB;EAClB,KAGL,EAAQ,EAAgB;;CAU1B,OACE,kBAAC,QAAD;EACa;EACX,WAAW,MAAsC;GAE/C,AADA,EAAM,gBAAgB,EACtB,GAAY;;YAGd,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACE,kBAAC,GAAD;IACQ;IACK;IACX,OAAO;IACP,WAAW,MAAyC;KAClD,EAAc,EAAM,OAAO,MAAM;;IAEnC,YAAY,MAA2C;KACrD,AAAI,EAAM,QAAQ,aAChB,EAAM,gBAAgB,EACtB,EAAc,EAAM;;IAGX;IACb,cAAY,KAAa;IACzB,MAAK;IACL,WAAA;IACA,UACE,kBAAC,GAAD;KAAkB,OAAO;KAAI,QAAQ;KAAI,eAAY;KAAS,CAAA;IAEhE,CAAA,EACF,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACG,KACC,kBAAC,GAAD;KACE,MAAK;KACL,SAAQ;KACR,MAAK;KACL,eA3Ca;MAEvB,AADA,EAAc,GAAG,EACb,MAAoB,MACtB,EAAQ,GAAG;;eA0CF,EAAE,uBAAuB;KACnB,CAAA,EAEX,kBAAC,GAAD;KACE,MAAK;KACL,SAAS;KACT,MAAK;KACL,UAAU,CAAC;eAEV,EAAE,wBAAwB;KACpB,CAAA,CACL;MACF;;EACD,CAAA"}
1
+ {"version":3,"file":"DeferredFilterSearchInput.js","names":[],"sources":["../../../../../src/components/backoffice/filters/DeferredFilterSearchInput.tsx"],"sourcesContent":["import {\n useEffect,\n useState,\n type ChangeEvent,\n type FormEvent,\n type JSX,\n type KeyboardEvent,\n} from 'react';\n\nimport { Button } from '@plumile/ui/atomic/atoms/button/Button.js';\nimport { Input } from '@plumile/ui/atomic/atoms/input/Input.js';\nimport { SidebarSearchSvg } from '@plumile/ui/icons/SidebarSearchSvg.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './deferredFilterSearchInput.css.js';\n\nexport type DeferredFilterSearchInputProps = {\n value: string;\n placeholder: string;\n ariaLabel?: string;\n className?: string;\n inputMode?: 'search' | 'numeric' | 'decimal';\n type?: 'search' | 'number' | 'datetime-local';\n onApply: (value: string) => void;\n};\n\nexport const DeferredFilterSearchInput = ({\n value,\n placeholder,\n ariaLabel,\n className,\n inputMode = 'search',\n type = 'search',\n onApply,\n}: DeferredFilterSearchInputProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const [draftValue, setDraftValue] = useState(value);\n\n useEffect(() => {\n setDraftValue(value);\n }, [value]);\n\n const normalizedDraft = draftValue.trim();\n const normalizedValue = value.trim();\n const hasDraft = normalizedDraft !== '';\n const hasPendingValue = normalizedDraft !== normalizedValue;\n const canClear = hasDraft || normalizedValue !== '';\n let submitVariant: 'primary' | 'secondary' = 'secondary';\n if (hasPendingValue) {\n submitVariant = 'primary';\n }\n\n const applyDraft = () => {\n if (!hasPendingValue) {\n return;\n }\n onApply(normalizedDraft);\n };\n\n const clearValue = () => {\n setDraftValue('');\n if (normalizedValue !== '') {\n onApply('');\n }\n };\n\n return (\n <form\n className={className}\n onSubmit={(event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n applyDraft();\n }}\n >\n <div className={styles.container}>\n <Input\n type={type}\n inputMode={inputMode}\n value={draftValue}\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n setDraftValue(event.target.value);\n }}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n setDraftValue(value);\n }\n }}\n placeholder={placeholder}\n aria-label={ariaLabel ?? placeholder}\n size=\"small\"\n fullWidth\n leftIcon={\n <SidebarSearchSvg width={18} height={18} aria-hidden=\"true\" />\n }\n />\n <div className={styles.actions}>\n {canClear && (\n <Button\n type=\"button\"\n variant=\"text\"\n size=\"small\"\n onClick={clearValue}\n >\n {t('common.actions.clear')}\n </Button>\n )}\n <Button\n type=\"submit\"\n variant={submitVariant}\n size=\"small\"\n disabled={!hasPendingValue}\n >\n {t('filters.actions.apply')}\n </Button>\n </div>\n </div>\n </form>\n );\n};\n\nexport default DeferredFilterSearchInput;\n"],"mappings":";;;;;;;;AA2BA,IAAa,KAA6B,EACxC,UACA,gBACA,cACA,cACA,eAAY,UACZ,UAAO,UACP,iBACiD;CACjD,IAAM,EAAE,SAAM,GAA+B,EACvC,CAAC,GAAY,KAAiB,EAAS,EAAM;CAEnD,QAAgB;EACd,EAAc,EAAM;IACnB,CAAC,EAAM,CAAC;CAEX,IAAM,IAAkB,EAAW,MAAM,EACnC,IAAkB,EAAM,MAAM,EAC9B,IAAW,MAAoB,IAC/B,IAAkB,MAAoB,GACtC,IAAW,KAAY,MAAoB,IAC7C,IAAyC;CAC7C,AAAI,MACF,IAAgB;CAGlB,IAAM,UAAmB;EAClB,KAGL,EAAQ,EAAgB;;CAU1B,OACE,kBAAC,QAAD;EACa;EACX,WAAW,MAAsC;GAE/C,AADA,EAAM,gBAAgB,EACtB,GAAY;;YAGd,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACE,kBAAC,GAAD;IACQ;IACK;IACX,OAAO;IACP,WAAW,MAAyC;KAClD,EAAc,EAAM,OAAO,MAAM;;IAEnC,YAAY,MAA2C;KACrD,AAAI,EAAM,QAAQ,aAChB,EAAM,gBAAgB,EACtB,EAAc,EAAM;;IAGX;IACb,cAAY,KAAa;IACzB,MAAK;IACL,WAAA;IACA,UACE,kBAAC,GAAD;KAAkB,OAAO;KAAI,QAAQ;KAAI,eAAY;KAAS,CAAA;IAEhE,CAAA,EACF,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACG,KACC,kBAAC,GAAD;KACE,MAAK;KACL,SAAQ;KACR,MAAK;KACL,eA3Ca;MAEvB,AADA,EAAc,GAAG,EACb,MAAoB,MACtB,EAAQ,GAAG;;eA0CF,EAAE,uBAAuB;KACnB,CAAA,EAEX,kBAAC,GAAD;KACE,MAAK;KACL,SAAS;KACT,MAAK;KACL,UAAU,CAAC;eAEV,EAAE,wBAAwB;KACpB,CAAA,CACL;MACF;;EACD,CAAA"}
@@ -1,24 +1,25 @@
1
1
  import { useBackofficeReactTranslation as e } from "../../../i18n/useBackofficeReactTranslation.js";
2
2
  import { actionIcon as t, clearButton as n, container as r, content as i, labelText as a, pickActionButton as o, pickerButton as s, pickerControl as c, placeholder as l, valueText as u } from "./entityIdFilterField.css.js";
3
- import { BackofficeSidebarPenToolSvg as d, BackofficeSidebarSearchSvg as f } from "@plumile/ui";
4
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
3
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
4
+ import { BackofficeSidebarPenToolSvg as p } from "@plumile/ui/icons/backoffice/BackofficeSidebarPenToolSvg.js";
5
+ import { BackofficeSidebarSearchSvg as m } from "@plumile/ui/icons/backoffice/BackofficeSidebarSearchSvg.js";
5
6
  //#region src/components/backoffice/filters/EntityIdFilterField.tsx
6
7
  var h = (h) => {
7
8
  let { disabled: g = !1, id: _, label: v, value: y, displayValue: b, placeholder: x, ariaDescribedBy: S, ariaInvalid: C, isResolving: w = !1, onPick: T, onClear: E } = h, { t: D } = e(), O = y?.trim() ?? "", k = b?.trim() ?? "", A = O !== "", j = k !== "", M = x ?? D("filters.placeholders.anyEntity", { label: v }), N = D("filters.placeholders.unresolved"), P;
8
- P = j ? /* @__PURE__ */ p("span", {
9
+ P = j ? /* @__PURE__ */ d("span", {
9
10
  className: u,
10
11
  children: k
11
- }) : A ? /* @__PURE__ */ p("span", {
12
+ }) : A ? /* @__PURE__ */ d("span", {
12
13
  className: l,
13
14
  children: N
14
- }) : /* @__PURE__ */ p("span", {
15
+ }) : /* @__PURE__ */ d("span", {
15
16
  className: l,
16
17
  children: M
17
18
  });
18
19
  let F = D("common.actions.pick");
19
20
  A && (F = D("common.actions.change"));
20
21
  let I = `${F} ${v}`, L = `${D("common.actions.clear")} ${v}`, R = null;
21
- A && E != null && (R = /* @__PURE__ */ p("button", {
22
+ A && E != null && (R = /* @__PURE__ */ d("button", {
22
23
  type: "button",
23
24
  className: n,
24
25
  "aria-label": L,
@@ -26,13 +27,13 @@ var h = (h) => {
26
27
  onClick: (e) => {
27
28
  e.stopPropagation(), E();
28
29
  },
29
- children: /* @__PURE__ */ p("svg", {
30
+ children: /* @__PURE__ */ d("svg", {
30
31
  width: "12",
31
32
  height: "12",
32
33
  viewBox: "0 0 12 12",
33
34
  fill: "none",
34
35
  "aria-hidden": "true",
35
- children: /* @__PURE__ */ p("path", {
36
+ children: /* @__PURE__ */ d("path", {
36
37
  d: "M3 3L9 9M9 3L3 9",
37
38
  stroke: "currentColor",
38
39
  strokeWidth: "1.6",
@@ -42,17 +43,17 @@ var h = (h) => {
42
43
  }));
43
44
  let z = null;
44
45
  if (T != null) {
45
- let e = /* @__PURE__ */ p(f, {
46
+ let e = /* @__PURE__ */ d(m, {
46
47
  className: t,
47
48
  "aria-hidden": "true"
48
49
  });
49
- A && (e = /* @__PURE__ */ p(d, {
50
+ A && (e = /* @__PURE__ */ d(p, {
50
51
  className: t,
51
52
  "aria-hidden": "true"
52
- })), z = /* @__PURE__ */ m("div", {
53
+ })), z = /* @__PURE__ */ f("div", {
53
54
  className: c,
54
55
  children: [
55
- /* @__PURE__ */ p("button", {
56
+ /* @__PURE__ */ d("button", {
56
57
  id: _,
57
58
  type: "button",
58
59
  className: s,
@@ -62,15 +63,15 @@ var h = (h) => {
62
63
  "aria-busy": w || void 0,
63
64
  disabled: g,
64
65
  onClick: T,
65
- children: /* @__PURE__ */ m("span", {
66
+ children: /* @__PURE__ */ f("span", {
66
67
  className: i,
67
- children: [/* @__PURE__ */ p("span", {
68
+ children: [/* @__PURE__ */ d("span", {
68
69
  className: a,
69
70
  children: v
70
71
  }), P]
71
72
  })
72
73
  }),
73
- /* @__PURE__ */ p("button", {
74
+ /* @__PURE__ */ d("button", {
74
75
  type: "button",
75
76
  className: o,
76
77
  "aria-label": I,
@@ -83,9 +84,9 @@ var h = (h) => {
83
84
  ]
84
85
  });
85
86
  }
86
- return /* @__PURE__ */ p("div", {
87
+ return /* @__PURE__ */ d("div", {
87
88
  className: r,
88
- children: z ?? /* @__PURE__ */ p("div", {
89
+ children: z ?? /* @__PURE__ */ d("div", {
89
90
  className: "txvbqb9my txvbqbk5y txvbqb9ip txvbqbcp txvbqbl7g",
90
91
  children: P
91
92
  })
@@ -1 +1 @@
1
- {"version":3,"file":"EntityIdFilterField.js","names":[],"sources":["../../../../../src/components/backoffice/filters/EntityIdFilterField.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport {\n BackofficeSidebarPenToolSvg,\n BackofficeSidebarSearchSvg,\n} from '@plumile/ui';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './entityIdFilterField.css.js';\n\nexport type EntityIdFilterFieldProps = {\n id?: string;\n label: string;\n value: string | null;\n displayValue?: string | null;\n placeholder?: string;\n ariaDescribedBy?: string;\n ariaInvalid?: boolean;\n isResolving?: boolean;\n onPick?: () => void;\n onClear?: () => void;\n disabled?: boolean;\n};\n\nexport const EntityIdFilterField = (\n props: EntityIdFilterFieldProps,\n): JSX.Element => {\n const {\n disabled = false,\n id,\n label,\n value,\n displayValue,\n placeholder,\n ariaDescribedBy,\n ariaInvalid,\n isResolving = false,\n onPick,\n onClear,\n } = props;\n const { t } = useBackofficeReactTranslation();\n const normalizedValue = value?.trim() ?? '';\n const normalizedDisplayValue = displayValue?.trim() ?? '';\n const hasValue = normalizedValue !== '';\n const hasDisplayValue = normalizedDisplayValue !== '';\n\n const resolvedPlaceholder =\n placeholder ?? t('filters.placeholders.anyEntity', { label });\n const unresolvedPlaceholder = t('filters.placeholders.unresolved');\n\n let displayNode: JSX.Element;\n if (hasDisplayValue) {\n displayNode = (\n <span className={styles.valueText}>{normalizedDisplayValue}</span>\n );\n } else if (hasValue) {\n displayNode = (\n <span className={styles.placeholder}>{unresolvedPlaceholder}</span>\n );\n } else {\n displayNode = (\n <span className={styles.placeholder}>{resolvedPlaceholder}</span>\n );\n }\n\n let pickLabel = t('common.actions.pick');\n if (hasValue) {\n pickLabel = t('common.actions.change');\n }\n const pickAriaLabel = `${pickLabel} ${label}`;\n const clearLabel = t('common.actions.clear');\n const clearAriaLabel = `${clearLabel} ${label}`;\n\n let clearNode: JSX.Element | null = null;\n if (hasValue && onClear != null) {\n clearNode = (\n <button\n type=\"button\"\n className={styles.clearButton}\n aria-label={clearAriaLabel}\n disabled={disabled}\n onClick={(event) => {\n event.stopPropagation();\n onClear();\n }}\n >\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M3 3L9 9M9 3L3 9\"\n stroke=\"currentColor\"\n strokeWidth=\"1.6\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n );\n }\n\n let pickerNode: JSX.Element | null = null;\n if (onPick != null) {\n let actionIcon = (\n <BackofficeSidebarSearchSvg\n className={styles.actionIcon}\n aria-hidden=\"true\"\n />\n );\n if (hasValue) {\n actionIcon = (\n <BackofficeSidebarPenToolSvg\n className={styles.actionIcon}\n aria-hidden=\"true\"\n />\n );\n }\n\n pickerNode = (\n <div className={styles.pickerControl}>\n <button\n id={id}\n type=\"button\"\n className={styles.pickerButton}\n aria-label={pickAriaLabel}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n aria-busy={isResolving || undefined}\n disabled={disabled}\n onClick={onPick}\n >\n <span className={styles.content}>\n <span className={styles.labelText}>{label}</span>\n {displayNode}\n </span>\n </button>\n <button\n type=\"button\"\n className={styles.pickActionButton}\n aria-label={pickAriaLabel}\n title={pickAriaLabel}\n disabled={disabled}\n onClick={onPick}\n >\n {actionIcon}\n </button>\n {clearNode}\n </div>\n );\n }\n\n return (\n <div className={styles.container}>\n {pickerNode ?? <div className={styles.valueBox}>{displayNode}</div>}\n </div>\n );\n};\n\nexport default EntityIdFilterField;\n"],"mappings":";;;;;AAwBA,IAAa,KACX,MACgB;CAChB,IAAM,EACJ,cAAW,IACX,OACA,UACA,UACA,iBACA,aAAA,GACA,oBACA,gBACA,iBAAc,IACd,WACA,eACE,GACE,EAAE,SAAM,GAA+B,EACvC,IAAkB,GAAO,MAAM,IAAI,IACnC,IAAyB,GAAc,MAAM,IAAI,IACjD,IAAW,MAAoB,IAC/B,IAAkB,MAA2B,IAE7C,IACJ,KAAe,EAAE,kCAAkC,EAAE,UAAO,CAAC,EACzD,IAAwB,EAAE,kCAAkC,EAE9D;CACJ,AASE,IATE,IAEA,kBAAC,QAAD;EAAM,WAAW;YAAmB;EAA8B,CAAA,GAE3D,IAEP,kBAAC,QAAD;EAAM,WAAW;YAAqB;EAA6B,CAAA,GAInE,kBAAC,QAAD;EAAM,WAAW;YAAqB;EAA2B,CAAA;CAIrE,IAAI,IAAY,EAAE,sBAAsB;CACxC,AAAI,MACF,IAAY,EAAE,wBAAwB;CAExC,IAAM,IAAgB,GAAG,EAAU,GAAG,KAEhC,IAAiB,GADJ,EAAE,uBACK,CAAW,GAAG,KAEpC,IAAgC;CACpC,AAAI,KAAY,KAAW,SACzB,IACE,kBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,cAAY;EACF;EACV,UAAU,MAAU;GAElB,AADA,EAAM,iBAAiB,EACvB,GAAS;;YAGX,kBAAC,OAAD;GACE,OAAM;GACN,QAAO;GACP,SAAQ;GACR,MAAK;GACL,eAAY;aAEZ,kBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,CAAA;GACE,CAAA;EACC,CAAA;CAIb,IAAI,IAAiC;CACrC,IAAI,KAAU,MAAM;EAClB,IAAI,IACF,kBAAC,GAAD;GACE,WAAW;GACX,eAAY;GACZ,CAAA;EAWJ,AATI,MACF,IACE,kBAAC,GAAD;GACE,WAAW;GACX,eAAY;GACZ,CAAA,GAIN,IACE,kBAAC,OAAD;GAAK,WAAW;aAAhB;IACE,kBAAC,UAAD;KACM;KACJ,MAAK;KACL,WAAW;KACX,cAAY;KACZ,oBAAkB;KAClB,gBAAc;KACd,aAAW,KAAe,KAAA;KAChB;KACV,SAAS;eAET,kBAAC,QAAD;MAAM,WAAW;gBAAjB,CACE,kBAAC,QAAD;OAAM,WAAW;iBAAmB;OAAa,CAAA,EAChD,EACI;;KACA,CAAA;IACT,kBAAC,UAAD;KACE,MAAK;KACL,WAAW;KACX,cAAY;KACZ,OAAO;KACG;KACV,SAAS;eAER;KACM,CAAA;IACR;IACG;;;CAIV,OACE,kBAAC,OAAD;EAAK,WAAW;YACb,KAAc,kBAAC,OAAD;GAAK,WAAW;aAAkB;GAAkB,CAAA;EAC/D,CAAA"}
1
+ {"version":3,"file":"EntityIdFilterField.js","names":[],"sources":["../../../../../src/components/backoffice/filters/EntityIdFilterField.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { BackofficeSidebarPenToolSvg } from '@plumile/ui/icons/backoffice/BackofficeSidebarPenToolSvg.js';\nimport { BackofficeSidebarSearchSvg } from '@plumile/ui/icons/backoffice/BackofficeSidebarSearchSvg.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './entityIdFilterField.css.js';\n\nexport type EntityIdFilterFieldProps = {\n id?: string;\n label: string;\n value: string | null;\n displayValue?: string | null;\n placeholder?: string;\n ariaDescribedBy?: string;\n ariaInvalid?: boolean;\n isResolving?: boolean;\n onPick?: () => void;\n onClear?: () => void;\n disabled?: boolean;\n};\n\nexport const EntityIdFilterField = (\n props: EntityIdFilterFieldProps,\n): JSX.Element => {\n const {\n disabled = false,\n id,\n label,\n value,\n displayValue,\n placeholder,\n ariaDescribedBy,\n ariaInvalid,\n isResolving = false,\n onPick,\n onClear,\n } = props;\n const { t } = useBackofficeReactTranslation();\n const normalizedValue = value?.trim() ?? '';\n const normalizedDisplayValue = displayValue?.trim() ?? '';\n const hasValue = normalizedValue !== '';\n const hasDisplayValue = normalizedDisplayValue !== '';\n\n const resolvedPlaceholder =\n placeholder ?? t('filters.placeholders.anyEntity', { label });\n const unresolvedPlaceholder = t('filters.placeholders.unresolved');\n\n let displayNode: JSX.Element;\n if (hasDisplayValue) {\n displayNode = (\n <span className={styles.valueText}>{normalizedDisplayValue}</span>\n );\n } else if (hasValue) {\n displayNode = (\n <span className={styles.placeholder}>{unresolvedPlaceholder}</span>\n );\n } else {\n displayNode = (\n <span className={styles.placeholder}>{resolvedPlaceholder}</span>\n );\n }\n\n let pickLabel = t('common.actions.pick');\n if (hasValue) {\n pickLabel = t('common.actions.change');\n }\n const pickAriaLabel = `${pickLabel} ${label}`;\n const clearLabel = t('common.actions.clear');\n const clearAriaLabel = `${clearLabel} ${label}`;\n\n let clearNode: JSX.Element | null = null;\n if (hasValue && onClear != null) {\n clearNode = (\n <button\n type=\"button\"\n className={styles.clearButton}\n aria-label={clearAriaLabel}\n disabled={disabled}\n onClick={(event) => {\n event.stopPropagation();\n onClear();\n }}\n >\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M3 3L9 9M9 3L3 9\"\n stroke=\"currentColor\"\n strokeWidth=\"1.6\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n );\n }\n\n let pickerNode: JSX.Element | null = null;\n if (onPick != null) {\n let actionIcon = (\n <BackofficeSidebarSearchSvg\n className={styles.actionIcon}\n aria-hidden=\"true\"\n />\n );\n if (hasValue) {\n actionIcon = (\n <BackofficeSidebarPenToolSvg\n className={styles.actionIcon}\n aria-hidden=\"true\"\n />\n );\n }\n\n pickerNode = (\n <div className={styles.pickerControl}>\n <button\n id={id}\n type=\"button\"\n className={styles.pickerButton}\n aria-label={pickAriaLabel}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n aria-busy={isResolving || undefined}\n disabled={disabled}\n onClick={onPick}\n >\n <span className={styles.content}>\n <span className={styles.labelText}>{label}</span>\n {displayNode}\n </span>\n </button>\n <button\n type=\"button\"\n className={styles.pickActionButton}\n aria-label={pickAriaLabel}\n title={pickAriaLabel}\n disabled={disabled}\n onClick={onPick}\n >\n {actionIcon}\n </button>\n {clearNode}\n </div>\n );\n }\n\n return (\n <div className={styles.container}>\n {pickerNode ?? <div className={styles.valueBox}>{displayNode}</div>}\n </div>\n );\n};\n\nexport default EntityIdFilterField;\n"],"mappings":";;;;;;AAsBA,IAAa,KACX,MACgB;CAChB,IAAM,EACJ,cAAW,IACX,OACA,UACA,UACA,iBACA,aAAA,GACA,oBACA,gBACA,iBAAc,IACd,WACA,eACE,GACE,EAAE,SAAM,GAA+B,EACvC,IAAkB,GAAO,MAAM,IAAI,IACnC,IAAyB,GAAc,MAAM,IAAI,IACjD,IAAW,MAAoB,IAC/B,IAAkB,MAA2B,IAE7C,IACJ,KAAe,EAAE,kCAAkC,EAAE,UAAO,CAAC,EACzD,IAAwB,EAAE,kCAAkC,EAE9D;CACJ,AASE,IATE,IAEA,kBAAC,QAAD;EAAM,WAAW;YAAmB;EAA8B,CAAA,GAE3D,IAEP,kBAAC,QAAD;EAAM,WAAW;YAAqB;EAA6B,CAAA,GAInE,kBAAC,QAAD;EAAM,WAAW;YAAqB;EAA2B,CAAA;CAIrE,IAAI,IAAY,EAAE,sBAAsB;CACxC,AAAI,MACF,IAAY,EAAE,wBAAwB;CAExC,IAAM,IAAgB,GAAG,EAAU,GAAG,KAEhC,IAAiB,GADJ,EAAE,uBACK,CAAW,GAAG,KAEpC,IAAgC;CACpC,AAAI,KAAY,KAAW,SACzB,IACE,kBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,cAAY;EACF;EACV,UAAU,MAAU;GAElB,AADA,EAAM,iBAAiB,EACvB,GAAS;;YAGX,kBAAC,OAAD;GACE,OAAM;GACN,QAAO;GACP,SAAQ;GACR,MAAK;GACL,eAAY;aAEZ,kBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,CAAA;GACE,CAAA;EACC,CAAA;CAIb,IAAI,IAAiC;CACrC,IAAI,KAAU,MAAM;EAClB,IAAI,IACF,kBAAC,GAAD;GACE,WAAW;GACX,eAAY;GACZ,CAAA;EAWJ,AATI,MACF,IACE,kBAAC,GAAD;GACE,WAAW;GACX,eAAY;GACZ,CAAA,GAIN,IACE,kBAAC,OAAD;GAAK,WAAW;aAAhB;IACE,kBAAC,UAAD;KACM;KACJ,MAAK;KACL,WAAW;KACX,cAAY;KACZ,oBAAkB;KAClB,gBAAc;KACd,aAAW,KAAe,KAAA;KAChB;KACV,SAAS;eAET,kBAAC,QAAD;MAAM,WAAW;gBAAjB,CACE,kBAAC,QAAD;OAAM,WAAW;iBAAmB;OAAa,CAAA,EAChD,EACI;;KACA,CAAA;IACT,kBAAC,UAAD;KACE,MAAK;KACL,WAAW;KACX,cAAY;KACZ,OAAO;KACG;KACV,SAAS;eAER;KACM,CAAA;IACR;IACG;;;CAIV,OACE,kBAAC,OAAD;EAAK,WAAW;YACb,KAAc,kBAAC,OAAD;GAAK,WAAW;aAAkB;GAAkB,CAAA;EAC/D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeFilterAction.css.js","names":[],"sources":["../../../../../src/components/backoffice/filters/backofficeFilterAction.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { sprinkles, vars } from '@plumile/ui';\n\nexport const action = style([\n sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 7,\n height: 7,\n padding: 0,\n borderRadius: 'md',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n backgroundColor: 'surfaceMuted',\n color: 'brandPrimaryRed',\n cursor: 'pointer',\n textDecoration: 'none',\n transitionProperty: 'colors',\n transitionDuration: 120,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover': {\n color: vars.colors.text,\n backgroundColor: vars.colors.primaryLight,\n borderColor: vars.colors.primary,\n },\n '&:focus-visible': {\n outline: `2px solid ${vars.colors.primary}`,\n outlineOffset: '2px',\n },\n },\n },\n]);\n\nexport const icon = sprinkles({\n width: 4,\n height: 4,\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeFilterAction.css.js","names":[],"sources":["../../../../../src/components/backoffice/filters/backofficeFilterAction.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\nimport { vars } from '@plumile/ui/theme/themeContract.js';\n\nexport const action = style([\n sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 7,\n height: 7,\n padding: 0,\n borderRadius: 'md',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n backgroundColor: 'surfaceMuted',\n color: 'brandPrimaryRed',\n cursor: 'pointer',\n textDecoration: 'none',\n transitionProperty: 'colors',\n transitionDuration: 120,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover': {\n color: vars.colors.text,\n backgroundColor: vars.colors.primaryLight,\n borderColor: vars.colors.primary,\n },\n '&:focus-visible': {\n outline: `2px solid ${vars.colors.primary}`,\n outlineOffset: '2px',\n },\n },\n },\n]);\n\nexport const icon = sprinkles({\n width: 4,\n height: 4,\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"deferredFilterSearchInput.css.js","names":[],"sources":["../../../../../src/components/backoffice/filters/deferredFilterSearchInput.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui';\n\nconst MOBILE_MEDIA_QUERY = 'screen and (max-width: 767px)';\n\nexport const container = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n width: 'full',\n }),\n {\n '@media': {\n [MOBILE_MEDIA_QUERY]: {\n alignItems: 'stretch',\n flexDirection: 'column',\n },\n },\n },\n]);\n\nexport const actions = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }),\n {\n flexShrink: 0,\n '@media': {\n [MOBILE_MEDIA_QUERY]: {\n justifyContent: 'flex-end',\n },\n },\n },\n]);\n"],"mappings":""}
1
+ {"version":3,"file":"deferredFilterSearchInput.css.js","names":[],"sources":["../../../../../src/components/backoffice/filters/deferredFilterSearchInput.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nconst MOBILE_MEDIA_QUERY = 'screen and (max-width: 767px)';\n\nexport const container = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n width: 'full',\n }),\n {\n '@media': {\n [MOBILE_MEDIA_QUERY]: {\n alignItems: 'stretch',\n flexDirection: 'column',\n },\n },\n },\n]);\n\nexport const actions = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }),\n {\n flexShrink: 0,\n '@media': {\n [MOBILE_MEDIA_QUERY]: {\n justifyContent: 'flex-end',\n },\n },\n },\n]);\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"entityIdFilterField.css.js","names":[],"sources":["../../../../../src/components/backoffice/filters/entityIdFilterField.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles, vars } from '@plumile/ui';\n\nexport const container = sprinkles({\n display: 'flex',\n alignItems: 'center',\n width: 72,\n maxWidth: 'full',\n minWidth: 0,\n});\n\nexport const pickerControl = style([\n sprinkles({\n display: 'grid',\n alignItems: 'center',\n flex: 1,\n minWidth: 0,\n borderRadius: 'xl',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border',\n backgroundColor: 'surface',\n color: 'text',\n paddingX: 3,\n paddingY: 1.5,\n transitionProperty: 'default',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n {\n gridTemplateColumns: 'minmax(0, 1fr) auto auto',\n gridTemplateAreas: '\"content pickAction clearAction\"',\n columnGap: vars.spacing[1],\n minHeight: '2.5rem',\n width: '100%',\n selectors: {\n '&:hover': {\n backgroundColor: vars.colors.surfaceMuted,\n },\n },\n },\n]);\n\nexport const pickerButton = style([\n sprinkles({\n appearance: 'none',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n minWidth: 0,\n width: 'full',\n textAlign: 'left',\n cursor: 'pointer',\n borderWidth: 0,\n backgroundColor: 'transparent',\n color: 'text',\n padding: 0,\n }),\n {\n gridArea: 'content',\n minHeight: '100%',\n selectors: {\n '&:focus-visible': {\n outline: `2px solid ${vars.colors.primary}`,\n outlineOffset: '2px',\n },\n '&:disabled': {\n cursor: 'not-allowed',\n opacity: 0.65,\n },\n },\n },\n]);\n\nexport const content = style([\n sprinkles({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n gap: 0.5,\n minWidth: 0,\n width: 'full',\n }),\n {\n maxWidth: '100%',\n },\n]);\n\nexport const valueBox = sprinkles({\n flex: 1,\n minWidth: 0,\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n});\n\nexport const labelText = style([\n sprinkles({\n display: 'block',\n color: 'textMuted',\n fontSize: 'xs',\n fontWeight: 'medium',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n {\n minWidth: 0,\n },\n]);\n\nexport const valueText = sprinkles({\n display: 'block',\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n fontSize: 'sm',\n fontWeight: 'semibold',\n});\n\nexport const placeholder = sprinkles({\n display: 'block',\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n color: 'textMuted',\n fontSize: 'sm',\n});\n\nconst actionButtonBase = style([\n sprinkles({\n appearance: 'none',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 7,\n height: 7,\n padding: 0,\n borderRadius: 'lg',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n backgroundColor: 'surface',\n color: 'textMuted',\n cursor: 'pointer',\n transitionProperty: 'colors',\n transitionDuration: 120,\n transitionTimingFunction: 'ease',\n }),\n {\n alignSelf: 'center',\n selectors: {\n '&:hover:not(:disabled)': {\n color: vars.colors.text,\n backgroundColor: vars.colors.surfaceMuted,\n borderColor: vars.colors.borderStrong,\n },\n '&:focus-visible': {\n outline: `2px solid ${vars.colors.primary}`,\n outlineOffset: '2px',\n },\n '&:disabled': {\n cursor: 'not-allowed',\n opacity: 0.65,\n },\n },\n },\n]);\n\nexport const pickActionButton = style([\n actionButtonBase,\n {\n gridArea: 'pickAction',\n },\n]);\n\nexport const clearButton = style([\n actionButtonBase,\n sprinkles({\n borderRadius: 'full',\n backgroundColor: 'surfaceMuted',\n }),\n {\n gridArea: 'clearAction',\n },\n]);\n\nexport const actionIcon = style({\n width: '1rem',\n height: '1rem',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"entityIdFilterField.css.js","names":[],"sources":["../../../../../src/components/backoffice/filters/entityIdFilterField.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\nimport { vars } from '@plumile/ui/theme/themeContract.js';\n\nexport const container = sprinkles({\n display: 'flex',\n alignItems: 'center',\n width: 72,\n maxWidth: 'full',\n minWidth: 0,\n});\n\nexport const pickerControl = style([\n sprinkles({\n display: 'grid',\n alignItems: 'center',\n flex: 1,\n minWidth: 0,\n borderRadius: 'xl',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border',\n backgroundColor: 'surface',\n color: 'text',\n paddingX: 3,\n paddingY: 1.5,\n transitionProperty: 'default',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n {\n gridTemplateColumns: 'minmax(0, 1fr) auto auto',\n gridTemplateAreas: '\"content pickAction clearAction\"',\n columnGap: vars.spacing[1],\n minHeight: '2.5rem',\n width: '100%',\n selectors: {\n '&:hover': {\n backgroundColor: vars.colors.surfaceMuted,\n },\n },\n },\n]);\n\nexport const pickerButton = style([\n sprinkles({\n appearance: 'none',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n minWidth: 0,\n width: 'full',\n textAlign: 'left',\n cursor: 'pointer',\n borderWidth: 0,\n backgroundColor: 'transparent',\n color: 'text',\n padding: 0,\n }),\n {\n gridArea: 'content',\n minHeight: '100%',\n selectors: {\n '&:focus-visible': {\n outline: `2px solid ${vars.colors.primary}`,\n outlineOffset: '2px',\n },\n '&:disabled': {\n cursor: 'not-allowed',\n opacity: 0.65,\n },\n },\n },\n]);\n\nexport const content = style([\n sprinkles({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n gap: 0.5,\n minWidth: 0,\n width: 'full',\n }),\n {\n maxWidth: '100%',\n },\n]);\n\nexport const valueBox = sprinkles({\n flex: 1,\n minWidth: 0,\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n});\n\nexport const labelText = style([\n sprinkles({\n display: 'block',\n color: 'textMuted',\n fontSize: 'xs',\n fontWeight: 'medium',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n {\n minWidth: 0,\n },\n]);\n\nexport const valueText = sprinkles({\n display: 'block',\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n fontSize: 'sm',\n fontWeight: 'semibold',\n});\n\nexport const placeholder = sprinkles({\n display: 'block',\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n color: 'textMuted',\n fontSize: 'sm',\n});\n\nconst actionButtonBase = style([\n sprinkles({\n appearance: 'none',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 7,\n height: 7,\n padding: 0,\n borderRadius: 'lg',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n backgroundColor: 'surface',\n color: 'textMuted',\n cursor: 'pointer',\n transitionProperty: 'colors',\n transitionDuration: 120,\n transitionTimingFunction: 'ease',\n }),\n {\n alignSelf: 'center',\n selectors: {\n '&:hover:not(:disabled)': {\n color: vars.colors.text,\n backgroundColor: vars.colors.surfaceMuted,\n borderColor: vars.colors.borderStrong,\n },\n '&:focus-visible': {\n outline: `2px solid ${vars.colors.primary}`,\n outlineOffset: '2px',\n },\n '&:disabled': {\n cursor: 'not-allowed',\n opacity: 0.65,\n },\n },\n },\n]);\n\nexport const pickActionButton = style([\n actionButtonBase,\n {\n gridArea: 'pickAction',\n },\n]);\n\nexport const clearButton = style([\n actionButtonBase,\n sprinkles({\n borderRadius: 'full',\n backgroundColor: 'surfaceMuted',\n }),\n {\n gridArea: 'clearAction',\n },\n]);\n\nexport const actionIcon = style({\n width: '1rem',\n height: '1rem',\n});\n"],"mappings":""}
@@ -1,61 +1,63 @@
1
1
  import { content as e, grid as t, group as n, groupHeader as r, groupHeading as i, groupTitle as a, groups as o, item as s, itemContent as c, itemIcon as l, itemTitle as u } from "./backofficeHubTemplate.css.js";
2
- import { BackofficeEmptyState as d, GlobalSearchInput as f, SidebarTasksSvg as p } from "@plumile/ui";
3
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
4
- import { Link as g } from "@plumile/router";
2
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
3
+ import { BackofficeEmptyState as p } from "@plumile/ui/backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.js";
4
+ import m from "@plumile/router/routing/Link.js";
5
+ import { GlobalSearchInput as h } from "@plumile/ui/backoffice/molecules/global_search_input/GlobalSearchInput.js";
6
+ import { SidebarTasksSvg as g } from "@plumile/ui/icons/SidebarTasksSvg.js";
5
7
  //#region src/components/backoffice/hub/BackofficeHubTemplate.tsx
6
- var _ = /* @__PURE__ */ m(p, {
8
+ var _ = /* @__PURE__ */ d(g, {
7
9
  width: 20,
8
10
  height: 20,
9
11
  "aria-hidden": "true"
10
- }), v = ({ groups: p, search: v, emptyState: y }) => {
12
+ }), v = ({ groups: g, search: v, emptyState: y }) => {
11
13
  let b;
12
- return b = p.length === 0 ? /* @__PURE__ */ m(d, {
14
+ return b = g.length === 0 ? /* @__PURE__ */ d(p, {
13
15
  title: y.title,
14
16
  description: y.description,
15
17
  icon: y.icon ?? _
16
- }) : /* @__PURE__ */ m("div", {
18
+ }) : /* @__PURE__ */ d("div", {
17
19
  className: o,
18
- children: p.map((e) => /* @__PURE__ */ h("section", {
20
+ children: g.map((e) => /* @__PURE__ */ f("section", {
19
21
  className: n,
20
- children: [/* @__PURE__ */ h("div", {
22
+ children: [/* @__PURE__ */ f("div", {
21
23
  className: r,
22
- children: [e.icon != null && /* @__PURE__ */ m("span", {
24
+ children: [e.icon != null && /* @__PURE__ */ d("span", {
23
25
  className: "u4nszr0 txvbqb9jg txvbqbcp txvbqbdoy txvbqbty7 txvbqbc77 txvbqb1rg txvbqbv45 txvbqb1cp txvbqb1qg txvbqbwp txvbqbva1 txvbqbaj7",
24
26
  "aria-hidden": "true",
25
27
  children: e.icon
26
- }), /* @__PURE__ */ h("span", {
28
+ }), /* @__PURE__ */ f("span", {
27
29
  className: i,
28
- children: [/* @__PURE__ */ m("h2", {
30
+ children: [/* @__PURE__ */ d("h2", {
29
31
  className: a,
30
32
  children: e.title
31
- }), e.description != null && /* @__PURE__ */ m("span", {
33
+ }), e.description != null && /* @__PURE__ */ d("span", {
32
34
  className: "txvbqbva3 txvbqb8y",
33
35
  children: e.description
34
36
  })]
35
37
  })]
36
- }), /* @__PURE__ */ m("div", {
38
+ }), /* @__PURE__ */ d("div", {
37
39
  className: t,
38
40
  children: e.items.map((e) => {
39
41
  let t = e.icon ?? _, n = e.description != null && e.description !== "", r = e.metaLabel != null && e.metaLabel !== "";
40
- return /* @__PURE__ */ h(g, {
42
+ return /* @__PURE__ */ f(m, {
41
43
  to: e.href,
42
44
  className: s,
43
- children: [/* @__PURE__ */ m("span", {
45
+ children: [/* @__PURE__ */ d("span", {
44
46
  className: l,
45
47
  "aria-hidden": "true",
46
48
  children: t
47
- }), /* @__PURE__ */ h("span", {
49
+ }), /* @__PURE__ */ f("span", {
48
50
  className: c,
49
51
  children: [
50
- /* @__PURE__ */ m("span", {
52
+ /* @__PURE__ */ d("span", {
51
53
  className: u,
52
54
  children: e.label
53
55
  }),
54
- n && /* @__PURE__ */ m("span", {
56
+ n && /* @__PURE__ */ d("span", {
55
57
  className: "txvbqbva3 txvbqb8y txvbqbfb7 txvbqbl87",
56
58
  children: e.description
57
59
  }),
58
- r && /* @__PURE__ */ m("span", {
60
+ r && /* @__PURE__ */ d("span", {
59
61
  className: "txvbqbva3 txvbqb8p txvbqbamg txvbqb66 txvbqbeep",
60
62
  children: e.metaLabel
61
63
  })
@@ -65,11 +67,11 @@ var _ = /* @__PURE__ */ m(p, {
65
67
  })
66
68
  })]
67
69
  }, e.id))
68
- }), /* @__PURE__ */ h("div", {
70
+ }), /* @__PURE__ */ f("div", {
69
71
  className: e,
70
- children: [v != null && /* @__PURE__ */ m("div", {
72
+ children: [v != null && /* @__PURE__ */ d("div", {
71
73
  className: "txvbqbjbp",
72
- children: /* @__PURE__ */ m(f, {
74
+ children: /* @__PURE__ */ d(h, {
73
75
  value: v.value,
74
76
  onChange: v.onChange,
75
77
  placeholder: v.placeholder
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeHubTemplate.js","names":[],"sources":["../../../../../src/components/backoffice/hub/BackofficeHubTemplate.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { Link } from '@plumile/router';\nimport {\n BackofficeEmptyState,\n GlobalSearchInput,\n SidebarTasksSvg,\n} from '@plumile/ui';\n\nimport * as styles from './backofficeHubTemplate.css.js';\n\nexport type BackofficeHubTemplateItemKind = 'entity' | 'tool';\n\nexport type BackofficeHubTemplateItem = {\n id: string;\n kind: BackofficeHubTemplateItemKind;\n label: string;\n href: string;\n icon?: ReactNode;\n description?: string | null;\n metaLabel?: string | null;\n};\n\nexport type BackofficeHubTemplateGroup = {\n id: string;\n title: string;\n description?: string | null;\n icon?: ReactNode;\n items: readonly BackofficeHubTemplateItem[];\n};\n\nexport type BackofficeHubTemplateEmptyState = {\n title: string;\n description: string;\n icon?: ReactNode;\n};\n\nexport type BackofficeHubTemplateSearch = {\n value: string;\n onChange: (value: string) => void;\n placeholder: string;\n};\n\nexport type BackofficeHubTemplateProps = {\n groups: readonly BackofficeHubTemplateGroup[];\n search?: BackofficeHubTemplateSearch;\n emptyState: BackofficeHubTemplateEmptyState;\n};\n\nconst fallbackIcon = (\n <SidebarTasksSvg width={20} height={20} aria-hidden=\"true\" />\n);\n\nexport const BackofficeHubTemplate = ({\n groups,\n search,\n emptyState,\n}: BackofficeHubTemplateProps): JSX.Element => {\n let body: JSX.Element;\n\n if (groups.length === 0) {\n body = (\n <BackofficeEmptyState\n title={emptyState.title}\n description={emptyState.description}\n icon={emptyState.icon ?? fallbackIcon}\n />\n );\n } else {\n body = (\n <div className={styles.groups}>\n {groups.map((group) => {\n return (\n <section key={group.id} className={styles.group}>\n <div className={styles.groupHeader}>\n {group.icon != null && (\n <span className={styles.groupIcon} aria-hidden=\"true\">\n {group.icon}\n </span>\n )}\n <span className={styles.groupHeading}>\n <h2 className={styles.groupTitle}>{group.title}</h2>\n {group.description != null && (\n <span className={styles.groupDescription}>\n {group.description}\n </span>\n )}\n </span>\n </div>\n <div className={styles.grid}>\n {group.items.map((item) => {\n const icon = item.icon ?? fallbackIcon;\n const hasDescription =\n item.description != null && item.description !== '';\n const hasMetaLabel =\n item.metaLabel != null && item.metaLabel !== '';\n\n return (\n <Link\n key={`${item.kind}-${item.id}`}\n to={item.href}\n className={styles.item}\n >\n <span className={styles.itemIcon} aria-hidden=\"true\">\n {icon}\n </span>\n <span className={styles.itemContent}>\n <span className={styles.itemTitle}>{item.label}</span>\n {hasDescription && (\n <span className={styles.itemDescription}>\n {item.description}\n </span>\n )}\n {hasMetaLabel && (\n <span className={styles.itemMeta}>\n {item.metaLabel}\n </span>\n )}\n </span>\n </Link>\n );\n })}\n </div>\n </section>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className={styles.content}>\n {search != null && (\n <div className={styles.search}>\n <GlobalSearchInput\n value={search.value}\n onChange={search.onChange}\n placeholder={search.placeholder}\n />\n </div>\n )}\n {body}\n </div>\n );\n};\n\nexport default BackofficeHubTemplate;\n"],"mappings":";;;;;AAgDA,IAAM,IACJ,kBAAC,GAAD;CAAiB,OAAO;CAAI,QAAQ;CAAI,eAAY;CAAS,CAAA,EAGlD,KAAyB,EACpC,QAAA,GACA,QAAA,GACA,oBAC6C;CAC7C,IAAI;CAwEJ,OAtEA,AASE,IATE,EAAO,WAAW,IAElB,kBAAC,GAAD;EACE,OAAO,EAAW;EAClB,aAAa,EAAW;EACxB,MAAM,EAAW,QAAQ;EACzB,CAAA,GAIF,kBAAC,OAAD;EAAK,WAAW;YACb,EAAO,KAAK,MAET,kBAAC,WAAD;GAAwB,WAAW;aAAnC,CACE,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACG,EAAM,QAAQ,QACb,kBAAC,QAAD;KAAM,WAAW;KAAkB,eAAY;eAC5C,EAAM;KACF,CAAA,EAET,kBAAC,QAAD;KAAM,WAAW;eAAjB,CACE,kBAAC,MAAD;MAAI,WAAW;gBAAoB,EAAM;MAAW,CAAA,EACnD,EAAM,eAAe,QACpB,kBAAC,QAAD;MAAM,WAAW;gBACd,EAAM;MACF,CAAA,CAEJ;OACH;OACN,kBAAC,OAAD;IAAK,WAAW;cACb,EAAM,MAAM,KAAK,MAAS;KACzB,IAAM,IAAO,EAAK,QAAQ,GACpB,IACJ,EAAK,eAAe,QAAQ,EAAK,gBAAgB,IAC7C,IACJ,EAAK,aAAa,QAAQ,EAAK,cAAc;KAE/C,OACE,kBAAC,GAAD;MAEE,IAAI,EAAK;MACT,WAAW;gBAHb,CAKE,kBAAC,QAAD;OAAM,WAAW;OAAiB,eAAY;iBAC3C;OACI,CAAA,EACP,kBAAC,QAAD;OAAM,WAAW;iBAAjB;QACE,kBAAC,QAAD;SAAM,WAAW;mBAAmB,EAAK;SAAa,CAAA;QACrD,KACC,kBAAC,QAAD;SAAM,WAAW;mBACd,EAAK;SACD,CAAA;QAER,KACC,kBAAC,QAAD;SAAM,WAAW;mBACd,EAAK;SACD,CAAA;QAEJ;SACF;QApBA,GAAG,EAAK,KAAK,GAAG,EAAK,KAoBrB;MAET;IACE,CAAA,CACE;KAlDI,EAAM,GAkDV,CAEZ;EACE,CAAA,EAKR,kBAAC,OAAD;EAAK,WAAW;YAAhB,CACG,KAAU,QACT,kBAAC,OAAD;GAAK,WAAW;aACd,kBAAC,GAAD;IACE,OAAO,EAAO;IACd,UAAU,EAAO;IACjB,aAAa,EAAO;IACpB,CAAA;GACE,CAAA,EAEP,EACG"}
1
+ {"version":3,"file":"BackofficeHubTemplate.js","names":[],"sources":["../../../../../src/components/backoffice/hub/BackofficeHubTemplate.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport Link from '@plumile/router/routing/Link.js';\nimport { BackofficeEmptyState } from '@plumile/ui/backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.js';\nimport { GlobalSearchInput } from '@plumile/ui/backoffice/molecules/global_search_input/GlobalSearchInput.js';\nimport { SidebarTasksSvg } from '@plumile/ui/icons/SidebarTasksSvg.js';\n\nimport * as styles from './backofficeHubTemplate.css.js';\n\nexport type BackofficeHubTemplateItemKind = 'entity' | 'tool';\n\nexport type BackofficeHubTemplateItem = {\n id: string;\n kind: BackofficeHubTemplateItemKind;\n label: string;\n href: string;\n icon?: ReactNode;\n description?: string | null;\n metaLabel?: string | null;\n};\n\nexport type BackofficeHubTemplateGroup = {\n id: string;\n title: string;\n description?: string | null;\n icon?: ReactNode;\n items: readonly BackofficeHubTemplateItem[];\n};\n\nexport type BackofficeHubTemplateEmptyState = {\n title: string;\n description: string;\n icon?: ReactNode;\n};\n\nexport type BackofficeHubTemplateSearch = {\n value: string;\n onChange: (value: string) => void;\n placeholder: string;\n};\n\nexport type BackofficeHubTemplateProps = {\n groups: readonly BackofficeHubTemplateGroup[];\n search?: BackofficeHubTemplateSearch;\n emptyState: BackofficeHubTemplateEmptyState;\n};\n\nconst fallbackIcon = (\n <SidebarTasksSvg width={20} height={20} aria-hidden=\"true\" />\n);\n\nexport const BackofficeHubTemplate = ({\n groups,\n search,\n emptyState,\n}: BackofficeHubTemplateProps): JSX.Element => {\n let body: JSX.Element;\n\n if (groups.length === 0) {\n body = (\n <BackofficeEmptyState\n title={emptyState.title}\n description={emptyState.description}\n icon={emptyState.icon ?? fallbackIcon}\n />\n );\n } else {\n body = (\n <div className={styles.groups}>\n {groups.map((group) => {\n return (\n <section key={group.id} className={styles.group}>\n <div className={styles.groupHeader}>\n {group.icon != null && (\n <span className={styles.groupIcon} aria-hidden=\"true\">\n {group.icon}\n </span>\n )}\n <span className={styles.groupHeading}>\n <h2 className={styles.groupTitle}>{group.title}</h2>\n {group.description != null && (\n <span className={styles.groupDescription}>\n {group.description}\n </span>\n )}\n </span>\n </div>\n <div className={styles.grid}>\n {group.items.map((item) => {\n const icon = item.icon ?? fallbackIcon;\n const hasDescription =\n item.description != null && item.description !== '';\n const hasMetaLabel =\n item.metaLabel != null && item.metaLabel !== '';\n\n return (\n <Link\n key={`${item.kind}-${item.id}`}\n to={item.href}\n className={styles.item}\n >\n <span className={styles.itemIcon} aria-hidden=\"true\">\n {icon}\n </span>\n <span className={styles.itemContent}>\n <span className={styles.itemTitle}>{item.label}</span>\n {hasDescription && (\n <span className={styles.itemDescription}>\n {item.description}\n </span>\n )}\n {hasMetaLabel && (\n <span className={styles.itemMeta}>\n {item.metaLabel}\n </span>\n )}\n </span>\n </Link>\n );\n })}\n </div>\n </section>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className={styles.content}>\n {search != null && (\n <div className={styles.search}>\n <GlobalSearchInput\n value={search.value}\n onChange={search.onChange}\n placeholder={search.placeholder}\n />\n </div>\n )}\n {body}\n </div>\n );\n};\n\nexport default BackofficeHubTemplate;\n"],"mappings":";;;;;;;AA8CA,IAAM,IACJ,kBAAC,GAAD;CAAiB,OAAO;CAAI,QAAQ;CAAI,eAAY;CAAS,CAAA,EAGlD,KAAyB,EACpC,QAAA,GACA,QAAA,GACA,oBAC6C;CAC7C,IAAI;CAwEJ,OAtEA,AASE,IATE,EAAO,WAAW,IAElB,kBAAC,GAAD;EACE,OAAO,EAAW;EAClB,aAAa,EAAW;EACxB,MAAM,EAAW,QAAQ;EACzB,CAAA,GAIF,kBAAC,OAAD;EAAK,WAAW;YACb,EAAO,KAAK,MAET,kBAAC,WAAD;GAAwB,WAAW;aAAnC,CACE,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACG,EAAM,QAAQ,QACb,kBAAC,QAAD;KAAM,WAAW;KAAkB,eAAY;eAC5C,EAAM;KACF,CAAA,EAET,kBAAC,QAAD;KAAM,WAAW;eAAjB,CACE,kBAAC,MAAD;MAAI,WAAW;gBAAoB,EAAM;MAAW,CAAA,EACnD,EAAM,eAAe,QACpB,kBAAC,QAAD;MAAM,WAAW;gBACd,EAAM;MACF,CAAA,CAEJ;OACH;OACN,kBAAC,OAAD;IAAK,WAAW;cACb,EAAM,MAAM,KAAK,MAAS;KACzB,IAAM,IAAO,EAAK,QAAQ,GACpB,IACJ,EAAK,eAAe,QAAQ,EAAK,gBAAgB,IAC7C,IACJ,EAAK,aAAa,QAAQ,EAAK,cAAc;KAE/C,OACE,kBAAC,GAAD;MAEE,IAAI,EAAK;MACT,WAAW;gBAHb,CAKE,kBAAC,QAAD;OAAM,WAAW;OAAiB,eAAY;iBAC3C;OACI,CAAA,EACP,kBAAC,QAAD;OAAM,WAAW;iBAAjB;QACE,kBAAC,QAAD;SAAM,WAAW;mBAAmB,EAAK;SAAa,CAAA;QACrD,KACC,kBAAC,QAAD;SAAM,WAAW;mBACd,EAAK;SACD,CAAA;QAER,KACC,kBAAC,QAAD;SAAM,WAAW;mBACd,EAAK;SACD,CAAA;QAEJ;SACF;QApBA,GAAG,EAAK,KAAK,GAAG,EAAK,KAoBrB;MAET;IACE,CAAA,CACE;KAlDI,EAAM,GAkDV,CAEZ;EACE,CAAA,EAKR,kBAAC,OAAD;EAAK,WAAW;YAAhB,CACG,KAAU,QACT,kBAAC,OAAD;GAAK,WAAW;aACd,kBAAC,GAAD;IACE,OAAO,EAAO;IACd,UAAU,EAAO;IACjB,aAAa,EAAO;IACpB,CAAA;GACE,CAAA,EAEP,EACG"}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeHubTemplate.css.js","names":[],"sources":["../../../../../src/components/backoffice/hub/backofficeHubTemplate.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { sprinkles, vars } from '@plumile/ui';\n\nexport const content = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 5,\n});\n\nexport const search = sprinkles({\n maxWidth: '2xl',\n});\n\nexport const groups = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 6,\n});\n\nexport const group = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const groupHeader = sprinkles({\n display: 'flex',\n alignItems: 'flex-start',\n gap: 3,\n});\n\nexport const groupIcon = style([\n sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 8,\n height: 8,\n borderRadius: 'md',\n backgroundColor: 'surfaceMuted',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n color: 'textSecondary',\n flexShrink: 0,\n }),\n {\n marginTop: '1px',\n },\n]);\n\nexport const groupHeading = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const groupTitle = sprinkles({\n fontSize: 'lg',\n fontWeight: 'semibold',\n color: 'text',\n margin: 0,\n});\n\nexport const groupDescription = sprinkles({\n color: 'textMuted',\n fontSize: 'sm',\n});\n\nexport const grid = sprinkles({\n display: 'grid',\n gridTemplateColumns: 'autoFitMinmax260',\n gap: 3,\n});\n\nexport const item = style([\n sprinkles({\n display: 'flex',\n alignItems: 'flex-start',\n gap: 3,\n padding: 3,\n borderRadius: 'md',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n backgroundColor: 'surface',\n color: 'text',\n textDecoration: 'none',\n minWidth: 0,\n transitionProperty: 'default',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n {\n minHeight: '92px',\n selectors: {\n '&:hover': {\n borderColor: vars.colors.border,\n backgroundColor: vars.colors.surfaceMuted,\n transform: 'translateY(-1px)',\n },\n '&:focus-visible': {\n outline: `2px solid ${vars.colors.primary}`,\n outlineOffset: '2px',\n },\n },\n },\n]);\n\nexport const itemIcon = sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 9,\n height: 9,\n borderRadius: 'md',\n backgroundColor: 'surfaceMuted',\n color: 'textSecondary',\n flexShrink: 0,\n});\n\nexport const itemContent = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const itemTitle = sprinkles({\n fontWeight: 'semibold',\n color: 'text',\n overflowWrap: 'anywhere',\n});\n\nexport const itemDescription = sprinkles({\n color: 'textMuted',\n fontSize: 'sm',\n lineHeight: 'normal',\n overflowWrap: 'anywhere',\n});\n\nexport const itemMeta = sprinkles({\n color: 'textMuted',\n fontSize: 'xs',\n fontWeight: 'medium',\n textTransform: 'uppercase',\n letterSpacing: 'wide',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeHubTemplate.css.js","names":[],"sources":["../../../../../src/components/backoffice/hub/backofficeHubTemplate.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\nimport { vars } from '@plumile/ui/theme/themeContract.js';\n\nexport const content = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 5,\n});\n\nexport const search = sprinkles({\n maxWidth: '2xl',\n});\n\nexport const groups = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 6,\n});\n\nexport const group = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const groupHeader = sprinkles({\n display: 'flex',\n alignItems: 'flex-start',\n gap: 3,\n});\n\nexport const groupIcon = style([\n sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 8,\n height: 8,\n borderRadius: 'md',\n backgroundColor: 'surfaceMuted',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n color: 'textSecondary',\n flexShrink: 0,\n }),\n {\n marginTop: '1px',\n },\n]);\n\nexport const groupHeading = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const groupTitle = sprinkles({\n fontSize: 'lg',\n fontWeight: 'semibold',\n color: 'text',\n margin: 0,\n});\n\nexport const groupDescription = sprinkles({\n color: 'textMuted',\n fontSize: 'sm',\n});\n\nexport const grid = sprinkles({\n display: 'grid',\n gridTemplateColumns: 'autoFitMinmax260',\n gap: 3,\n});\n\nexport const item = style([\n sprinkles({\n display: 'flex',\n alignItems: 'flex-start',\n gap: 3,\n padding: 3,\n borderRadius: 'md',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n backgroundColor: 'surface',\n color: 'text',\n textDecoration: 'none',\n minWidth: 0,\n transitionProperty: 'default',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n {\n minHeight: '92px',\n selectors: {\n '&:hover': {\n borderColor: vars.colors.border,\n backgroundColor: vars.colors.surfaceMuted,\n transform: 'translateY(-1px)',\n },\n '&:focus-visible': {\n outline: `2px solid ${vars.colors.primary}`,\n outlineOffset: '2px',\n },\n },\n },\n]);\n\nexport const itemIcon = sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 9,\n height: 9,\n borderRadius: 'md',\n backgroundColor: 'surfaceMuted',\n color: 'textSecondary',\n flexShrink: 0,\n});\n\nexport const itemContent = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const itemTitle = sprinkles({\n fontWeight: 'semibold',\n color: 'text',\n overflowWrap: 'anywhere',\n});\n\nexport const itemDescription = sprinkles({\n color: 'textMuted',\n fontSize: 'sm',\n lineHeight: 'normal',\n overflowWrap: 'anywhere',\n});\n\nexport const itemMeta = sprinkles({\n color: 'textMuted',\n fontSize: 'xs',\n fontWeight: 'medium',\n textTransform: 'uppercase',\n letterSpacing: 'wide',\n});\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeSidebarActions.css.js","names":[],"sources":["../../../../../src/components/backoffice/layout/backofficeSidebarActions.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { sprinkles, vars } from '@plumile/ui';\n\nexport const actionButton = style([\n sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 6,\n height: 6,\n borderRadius: 'md',\n borderWidth: 0,\n borderStyle: 'none',\n padding: 0,\n backgroundColor: 'transparent',\n color: 'textSecondary',\n cursor: 'pointer',\n transitionProperty: 'colors',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover': {\n backgroundColor: vars.colors.surfaceMuted,\n color: vars.colors.text,\n },\n '&:focus-visible': {\n outline: `2px solid ${vars.colors['blue-500']}`,\n outlineOffset: 2,\n },\n },\n },\n]);\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeSidebarActions.css.js","names":[],"sources":["../../../../../src/components/backoffice/layout/backofficeSidebarActions.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\nimport { vars } from '@plumile/ui/theme/themeContract.js';\n\nexport const actionButton = style([\n sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 6,\n height: 6,\n borderRadius: 'md',\n borderWidth: 0,\n borderStyle: 'none',\n padding: 0,\n backgroundColor: 'transparent',\n color: 'textSecondary',\n cursor: 'pointer',\n transitionProperty: 'colors',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover': {\n backgroundColor: vars.colors.surfaceMuted,\n color: vars.colors.text,\n },\n '&:focus-visible': {\n outline: `2px solid ${vars.colors['blue-500']}`,\n outlineOffset: 2,\n },\n },\n },\n]);\n"],"mappings":""}