@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":"toastViewAction.js","names":[],"sources":["../../../../../src/components/backoffice/actions/toastViewAction.ts"],"sourcesContent":["import type { TFunction } from 'i18next';\n\nimport type {\n BackofficeActionToastSpec,\n BackofficeEntityManifestMap,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type { ToastAction } from '@plumile/ui';\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const resolveToastSpec = <Node = unknown, Response = unknown>(\n toast: BackofficeActionToastSpec<Node, Response>,\n tApp: TFunction,\n): { title: string; message?: string } => {\n const title = resolveLabel(toast.title, tApp);\n let message: string | undefined;\n if (toast.message != null) {\n message = resolveLabel(toast.message, tApp);\n }\n return { title, message };\n};\n\nexport const resolveToastViewActions = <\n Node = unknown,\n Response = unknown,\n>(input: {\n toast: BackofficeActionToastSpec<Node, Response>;\n response: Response;\n node: Node;\n tApp: TFunction;\n entities: BackofficeEntityManifestMap;\n defaultLabel: string;\n navigateTo: (to: string) => void;\n}): readonly ToastAction[] | undefined => {\n const { toast } = input;\n if (toast.view == null) {\n return undefined;\n }\n\n const targetId = toast.view.getTargetId(input.response, input.node);\n if (targetId == null || targetId.trim() === '') {\n return undefined;\n }\n\n const entity = input.entities[toast.view.entityId];\n if (entity == null) {\n return undefined;\n }\n\n const href = entity.routes.detail(targetId);\n let label = input.defaultLabel;\n if (toast.view.label != null) {\n label = resolveLabel(toast.view.label, input.tApp);\n }\n\n return [\n {\n id: `view-${toast.view.entityId}-${targetId}`,\n label,\n onClick: () => {\n input.navigateTo(href);\n },\n },\n ];\n};\n"],"mappings":";AASA,IAAM,KAAgB,GAAkB,MAC/B,EAAM,EAAK,EAGP,KACX,GACA,MACwC;CACxC,IAAM,IAAQ,EAAa,EAAM,OAAO,EAAK,EACzC;CAIJ,OAHI,EAAM,WAAW,SACnB,IAAU,EAAa,EAAM,SAAS,EAAK,GAEtC;EAAE;EAAO;EAAS;GAGd,KAGX,MAQwC;CACxC,IAAM,EAAE,aAAU;CAClB,IAAI,EAAM,QAAQ,MAChB;CAGF,IAAM,IAAW,EAAM,KAAK,YAAY,EAAM,UAAU,EAAM,KAAK;CACnE,IAAI,KAAY,QAAQ,EAAS,MAAM,KAAK,IAC1C;CAGF,IAAM,IAAS,EAAM,SAAS,EAAM,KAAK;CACzC,IAAI,KAAU,MACZ;CAGF,IAAM,IAAO,EAAO,OAAO,OAAO,EAAS,EACvC,IAAQ,EAAM;CAKlB,OAJI,EAAM,KAAK,SAAS,SACtB,IAAQ,EAAa,EAAM,KAAK,OAAO,EAAM,KAAK,GAG7C,CACL;EACE,IAAI,QAAQ,EAAM,KAAK,SAAS,GAAG;EACnC;EACA,eAAe;GACb,EAAM,WAAW,EAAK;;EAEzB,CACF"}
1
+ {"version":3,"file":"toastViewAction.js","names":[],"sources":["../../../../../src/components/backoffice/actions/toastViewAction.ts"],"sourcesContent":["import type { TFunction } from 'i18next';\n\nimport type {\n BackofficeActionToastSpec,\n BackofficeEntityManifestMap,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type { ToastAction } from '@plumile/ui/atomic/molecules/toast/ToastViewport.js';\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const resolveToastSpec = <Node = unknown, Response = unknown>(\n toast: BackofficeActionToastSpec<Node, Response>,\n tApp: TFunction,\n): { title: string; message?: string } => {\n const title = resolveLabel(toast.title, tApp);\n let message: string | undefined;\n if (toast.message != null) {\n message = resolveLabel(toast.message, tApp);\n }\n return { title, message };\n};\n\nexport const resolveToastViewActions = <\n Node = unknown,\n Response = unknown,\n>(input: {\n toast: BackofficeActionToastSpec<Node, Response>;\n response: Response;\n node: Node;\n tApp: TFunction;\n entities: BackofficeEntityManifestMap;\n defaultLabel: string;\n navigateTo: (to: string) => void;\n}): readonly ToastAction[] | undefined => {\n const { toast } = input;\n if (toast.view == null) {\n return undefined;\n }\n\n const targetId = toast.view.getTargetId(input.response, input.node);\n if (targetId == null || targetId.trim() === '') {\n return undefined;\n }\n\n const entity = input.entities[toast.view.entityId];\n if (entity == null) {\n return undefined;\n }\n\n const href = entity.routes.detail(targetId);\n let label = input.defaultLabel;\n if (toast.view.label != null) {\n label = resolveLabel(toast.view.label, input.tApp);\n }\n\n return [\n {\n id: `view-${toast.view.entityId}-${targetId}`,\n label,\n onClick: () => {\n input.navigateTo(href);\n },\n },\n ];\n};\n"],"mappings":";AASA,IAAM,KAAgB,GAAkB,MAC/B,EAAM,EAAK,EAGP,KACX,GACA,MACwC;CACxC,IAAM,IAAQ,EAAa,EAAM,OAAO,EAAK,EACzC;CAIJ,OAHI,EAAM,WAAW,SACnB,IAAU,EAAa,EAAM,SAAS,EAAK,GAEtC;EAAE;EAAO;EAAS;GAGd,KAGX,MAQwC;CACxC,IAAM,EAAE,aAAU;CAClB,IAAI,EAAM,QAAQ,MAChB;CAGF,IAAM,IAAW,EAAM,KAAK,YAAY,EAAM,UAAU,EAAM,KAAK;CACnE,IAAI,KAAY,QAAQ,EAAS,MAAM,KAAK,IAC1C;CAGF,IAAM,IAAS,EAAM,SAAS,EAAM,KAAK;CACzC,IAAI,KAAU,MACZ;CAGF,IAAM,IAAO,EAAO,OAAO,OAAO,EAAS,EACvC,IAAQ,EAAM;CAKlB,OAJI,EAAM,KAAK,SAAS,SACtB,IAAQ,EAAa,EAAM,KAAK,OAAO,EAAM,KAAK,GAG7C,CACL;EACE,IAAI,QAAQ,EAAM,KAAK,SAAS,GAAG;EACnC;EACA,eAAe;GACb,EAAM,WAAW,EAAK;;EAEzB,CACF"}
@@ -1,8 +1,9 @@
1
1
  import { BackofficeInlineLink as e } from "../links/BackofficeInlineLink.js";
2
- import { FormattedDate as t, Tag as n } from "@plumile/ui";
3
- import { Fragment as r, jsx as i } from "react/jsx-runtime";
4
- import { Link as a } from "@plumile/router";
5
- import { BACKOFFICE_DATE_TIME_OPTIONS as o } from "@plumile/backoffice-core/constants.js";
2
+ import { Fragment as t, jsx as n } from "react/jsx-runtime";
3
+ import { BACKOFFICE_DATE_TIME_OPTIONS as r } from "@plumile/backoffice-core/constants.js";
4
+ import i from "@plumile/router/routing/Link.js";
5
+ import { FormattedDate as a } from "@plumile/ui/atomic/atoms/formatted-date/FormattedDate.js";
6
+ import { Tag as o } from "@plumile/ui/backoffice/atoms/tag/Tag.js";
6
7
  //#region src/components/backoffice/columns/buildDataTableColumns.tsx
7
8
  var s = (e, t) => e(t), c = (e, t) => e == null || typeof e == "string" && e.trim() === "" ? t : String(e), l = (e) => {
8
9
  if (e === "sm" || e === "md" || e === "lg" || e === "xl") return e;
@@ -24,7 +25,7 @@ function u(u, d) {
24
25
  case "text": return c(l.value(s), m);
25
26
  case "link": {
26
27
  let e = l.value(s);
27
- return e == null || typeof e == "string" && e.trim() === "" ? m : /* @__PURE__ */ i(a, {
28
+ return e == null || typeof e == "string" && e.trim() === "" ? m : /* @__PURE__ */ n(i, {
28
29
  to: l.to(s),
29
30
  children: e
30
31
  });
@@ -33,32 +34,32 @@ function u(u, d) {
33
34
  let e = l.value(s);
34
35
  if (e == null || e.trim() === "") return m;
35
36
  let { tone: t } = l;
36
- return typeof t == "function" && (t = t(s)), /* @__PURE__ */ i(n, {
37
+ return typeof t == "function" && (t = t(s)), /* @__PURE__ */ n(o, {
37
38
  tone: t,
38
39
  children: e
39
40
  });
40
41
  }
41
- case "dateTime": return /* @__PURE__ */ i(t, {
42
+ case "dateTime": return /* @__PURE__ */ n(a, {
42
43
  value: l.value(s),
43
44
  fallback: m,
44
- options: o
45
+ options: r
45
46
  });
46
47
  case "entityRef": {
47
48
  let t = l.value(s);
48
49
  if (t.trim() === "") return m;
49
- let n = l.label?.(s) ?? p("actions.view");
50
- return /* @__PURE__ */ i(e, {
50
+ let r = l.label?.(s) ?? p("actions.view");
51
+ return /* @__PURE__ */ n(e, {
51
52
  target: {
52
53
  kind: "entity-detail",
53
54
  entityId: l.entity,
54
55
  id: t
55
56
  },
56
- children: n
57
+ children: r
57
58
  });
58
59
  }
59
60
  case "custom": {
60
61
  let e = l.render(s);
61
- return e == null || e === "" ? m : /* @__PURE__ */ i(r, { children: e });
62
+ return e == null || e === "" ? m : /* @__PURE__ */ n(t, { children: e });
62
63
  }
63
64
  default: return m;
64
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildDataTableColumns.js","names":[],"sources":["../../../../../src/components/backoffice/columns/buildDataTableColumns.tsx"],"sourcesContent":["import { BACKOFFICE_DATE_TIME_OPTIONS } from '@plumile/backoffice-core/constants.js';\nimport type {\n BackofficeColumnSpec,\n BackofficeFieldSize,\n BackofficeListColumnVisibility,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type { TFunction } from 'i18next';\nimport { Link } from '@plumile/router';\nimport {\n FormattedDate,\n Tag,\n type DataTableBreakpoint,\n type DataTableColumn,\n} from '@plumile/ui';\nimport { BackofficeInlineLink } from '../links/BackofficeInlineLink.js';\nimport type { BackofficeLinkTarget } from '../links/types.js';\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nconst resolveTextValue = (\n value: string | number | null,\n fallback: string,\n): string => {\n if (value == null) {\n return fallback;\n }\n if (typeof value === 'string' && value.trim() === '') {\n return fallback;\n }\n return String(value);\n};\n\nexport type BuildDataTableColumnsOptions = {\n tApp: TFunction;\n t: TFunction;\n};\n\nexport type BackofficeSizedDataTableColumn<Row> = DataTableColumn<Row> & {\n size: BackofficeFieldSize;\n};\n\nconst resolveBreakpoint = (\n value: BackofficeListColumnVisibility['minVisibleAt'] | undefined,\n): DataTableBreakpoint | undefined => {\n if (value === 'sm' || value === 'md' || value === 'lg' || value === 'xl') {\n return value;\n }\n return undefined;\n};\n\n/**\n *\n */\nexport function buildDataTableColumns<Row>(\n columns: readonly BackofficeColumnSpec<Row>[],\n options: BuildDataTableColumnsOptions,\n): readonly BackofficeSizedDataTableColumn<Row>[] {\n const { tApp, t } = options;\n const fallback = t('common.notAvailable');\n const filteredColumns = columns.filter((column) => {\n return column.key !== 'id';\n });\n\n return filteredColumns.map((column) => {\n return {\n id: column.key,\n header: resolveLabel(column.header, tApp),\n size: column.size,\n isPrimary: column.visibility?.priority === 'primary',\n priority: column.visibility?.priority,\n align: column.visibility?.align,\n mobileRole: column.visibility?.mobile,\n minVisibleAt: resolveBreakpoint(column.visibility?.minVisibleAt),\n cell: (row) => {\n const { cell } = column;\n switch (cell.type) {\n case 'text': {\n return resolveTextValue(cell.value(row), fallback);\n }\n case 'link': {\n const value = cell.value(row);\n if (\n value == null ||\n (typeof value === 'string' && value.trim() === '')\n ) {\n return fallback;\n }\n return <Link to={cell.to(row)}>{value}</Link>;\n }\n case 'badge': {\n const value = cell.value(row);\n if (value == null || value.trim() === '') {\n return fallback;\n }\n let { tone } = cell;\n if (typeof tone === 'function') {\n tone = tone(row);\n }\n return <Tag tone={tone}>{value}</Tag>;\n }\n case 'dateTime': {\n const value = cell.value(row);\n return (\n <FormattedDate\n value={value}\n fallback={fallback}\n options={BACKOFFICE_DATE_TIME_OPTIONS}\n />\n );\n }\n case 'entityRef': {\n const id = cell.value(row);\n if (id.trim() === '') {\n return fallback;\n }\n const label = cell.label?.(row) ?? t('actions.view');\n const target = {\n kind: 'entity-detail',\n entityId: cell.entity,\n id,\n } as BackofficeLinkTarget;\n return (\n <BackofficeInlineLink target={target}>\n {label}\n </BackofficeInlineLink>\n );\n }\n case 'custom': {\n const rendered = cell.render(row);\n if (rendered == null || rendered === '') {\n return fallback;\n }\n return <>{rendered}</>;\n }\n default: {\n return fallback;\n }\n }\n },\n };\n });\n}\n"],"mappings":";;;;;;AAkBA,IAAM,KAAgB,GAAkB,MAC/B,EAAM,EAAK,EAGd,KACJ,GACA,MAEI,KAAS,QAGT,OAAO,KAAU,YAAY,EAAM,MAAM,KAAK,KACzC,IAEF,OAAO,EAAM,EAYhB,KACJ,MACoC;CACpC,IAAI,MAAU,QAAQ,MAAU,QAAQ,MAAU,QAAQ,MAAU,MAClE,OAAO;;AAQX,SAAgB,EACd,GACA,GACgD;CAChD,IAAM,EAAE,SAAM,SAAM,GACd,IAAW,EAAE,sBAAsB;CAKzC,OAJwB,EAAQ,QAAQ,MAC/B,EAAO,QAAQ,KAGjB,CAAgB,KAAK,OACnB;EACL,IAAI,EAAO;EACX,QAAQ,EAAa,EAAO,QAAQ,EAAK;EACzC,MAAM,EAAO;EACb,WAAW,EAAO,YAAY,aAAa;EAC3C,UAAU,EAAO,YAAY;EAC7B,OAAO,EAAO,YAAY;EAC1B,YAAY,EAAO,YAAY;EAC/B,cAAc,EAAkB,EAAO,YAAY,aAAa;EAChE,OAAO,MAAQ;GACb,IAAM,EAAE,YAAS;GACjB,QAAQ,EAAK,MAAb;IACE,KAAK,QACH,OAAO,EAAiB,EAAK,MAAM,EAAI,EAAE,EAAS;IAEpD,KAAK,QAAQ;KACX,IAAM,IAAQ,EAAK,MAAM,EAAI;KAO7B,OALE,KAAS,QACR,OAAO,KAAU,YAAY,EAAM,MAAM,KAAK,KAExC,IAEF,kBAAC,GAAD;MAAM,IAAI,EAAK,GAAG,EAAI;gBAAG;MAAa,CAAA;;IAE/C,KAAK,SAAS;KACZ,IAAM,IAAQ,EAAK,MAAM,EAAI;KAC7B,IAAI,KAAS,QAAQ,EAAM,MAAM,KAAK,IACpC,OAAO;KAET,IAAI,EAAE,YAAS;KAIf,OAHI,OAAO,KAAS,eAClB,IAAO,EAAK,EAAI,GAEX,kBAAC,GAAD;MAAW;gBAAO;MAAY,CAAA;;IAEvC,KAAK,YAEH,OACE,kBAAC,GAAD;KACS,OAHG,EAAK,MAAM,EAGd;KACG;KACV,SAAS;KACT,CAAA;IAGN,KAAK,aAAa;KAChB,IAAM,IAAK,EAAK,MAAM,EAAI;KAC1B,IAAI,EAAG,MAAM,KAAK,IAChB,OAAO;KAET,IAAM,IAAQ,EAAK,QAAQ,EAAI,IAAI,EAAE,eAAe;KAMpD,OACE,kBAAC,GAAD;MAA8B,QAAA;OAL9B,MAAM;OACN,UAAU,EAAK;OACf;OAG8B;gBAC3B;MACoB,CAAA;;IAG3B,KAAK,UAAU;KACb,IAAM,IAAW,EAAK,OAAO,EAAI;KAIjC,OAHI,KAAY,QAAQ,MAAa,KAC5B,IAEF,kBAAA,GAAA,EAAA,UAAG,GAAY,CAAA;;IAExB,SACE,OAAO;;;EAId,EACD"}
1
+ {"version":3,"file":"buildDataTableColumns.js","names":[],"sources":["../../../../../src/components/backoffice/columns/buildDataTableColumns.tsx"],"sourcesContent":["import { BACKOFFICE_DATE_TIME_OPTIONS } from '@plumile/backoffice-core/constants.js';\nimport type {\n BackofficeColumnSpec,\n BackofficeFieldSize,\n BackofficeListColumnVisibility,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type { TFunction } from 'i18next';\nimport Link from '@plumile/router/routing/Link.js';\nimport { FormattedDate } from '@plumile/ui/atomic/atoms/formatted-date/FormattedDate.js';\nimport { Tag } from '@plumile/ui/backoffice/atoms/tag/Tag.js';\nimport { type DataTableColumn } from '@plumile/ui/components/data-table/DataTable.js';\nimport { type DataTableBreakpoint } from '@plumile/ui/components/data-table/tableBreakpoints.js';\nimport { BackofficeInlineLink } from '../links/BackofficeInlineLink.js';\nimport type { BackofficeLinkTarget } from '../links/types.js';\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nconst resolveTextValue = (\n value: string | number | null,\n fallback: string,\n): string => {\n if (value == null) {\n return fallback;\n }\n if (typeof value === 'string' && value.trim() === '') {\n return fallback;\n }\n return String(value);\n};\n\nexport type BuildDataTableColumnsOptions = {\n tApp: TFunction;\n t: TFunction;\n};\n\nexport type BackofficeSizedDataTableColumn<Row> = DataTableColumn<Row> & {\n size: BackofficeFieldSize;\n};\n\nconst resolveBreakpoint = (\n value: BackofficeListColumnVisibility['minVisibleAt'] | undefined,\n): DataTableBreakpoint | undefined => {\n if (value === 'sm' || value === 'md' || value === 'lg' || value === 'xl') {\n return value;\n }\n return undefined;\n};\n\n/**\n *\n */\nexport function buildDataTableColumns<Row>(\n columns: readonly BackofficeColumnSpec<Row>[],\n options: BuildDataTableColumnsOptions,\n): readonly BackofficeSizedDataTableColumn<Row>[] {\n const { tApp, t } = options;\n const fallback = t('common.notAvailable');\n const filteredColumns = columns.filter((column) => {\n return column.key !== 'id';\n });\n\n return filteredColumns.map((column) => {\n return {\n id: column.key,\n header: resolveLabel(column.header, tApp),\n size: column.size,\n isPrimary: column.visibility?.priority === 'primary',\n priority: column.visibility?.priority,\n align: column.visibility?.align,\n mobileRole: column.visibility?.mobile,\n minVisibleAt: resolveBreakpoint(column.visibility?.minVisibleAt),\n cell: (row) => {\n const { cell } = column;\n switch (cell.type) {\n case 'text': {\n return resolveTextValue(cell.value(row), fallback);\n }\n case 'link': {\n const value = cell.value(row);\n if (\n value == null ||\n (typeof value === 'string' && value.trim() === '')\n ) {\n return fallback;\n }\n return <Link to={cell.to(row)}>{value}</Link>;\n }\n case 'badge': {\n const value = cell.value(row);\n if (value == null || value.trim() === '') {\n return fallback;\n }\n let { tone } = cell;\n if (typeof tone === 'function') {\n tone = tone(row);\n }\n return <Tag tone={tone}>{value}</Tag>;\n }\n case 'dateTime': {\n const value = cell.value(row);\n return (\n <FormattedDate\n value={value}\n fallback={fallback}\n options={BACKOFFICE_DATE_TIME_OPTIONS}\n />\n );\n }\n case 'entityRef': {\n const id = cell.value(row);\n if (id.trim() === '') {\n return fallback;\n }\n const label = cell.label?.(row) ?? t('actions.view');\n const target = {\n kind: 'entity-detail',\n entityId: cell.entity,\n id,\n } as BackofficeLinkTarget;\n return (\n <BackofficeInlineLink target={target}>\n {label}\n </BackofficeInlineLink>\n );\n }\n case 'custom': {\n const rendered = cell.render(row);\n if (rendered == null || rendered === '') {\n return fallback;\n }\n return <>{rendered}</>;\n }\n default: {\n return fallback;\n }\n }\n },\n };\n });\n}\n"],"mappings":";;;;;;;AAgBA,IAAM,KAAgB,GAAkB,MAC/B,EAAM,EAAK,EAGd,KACJ,GACA,MAEI,KAAS,QAGT,OAAO,KAAU,YAAY,EAAM,MAAM,KAAK,KACzC,IAEF,OAAO,EAAM,EAYhB,KACJ,MACoC;CACpC,IAAI,MAAU,QAAQ,MAAU,QAAQ,MAAU,QAAQ,MAAU,MAClE,OAAO;;AAQX,SAAgB,EACd,GACA,GACgD;CAChD,IAAM,EAAE,SAAM,SAAM,GACd,IAAW,EAAE,sBAAsB;CAKzC,OAJwB,EAAQ,QAAQ,MAC/B,EAAO,QAAQ,KAGjB,CAAgB,KAAK,OACnB;EACL,IAAI,EAAO;EACX,QAAQ,EAAa,EAAO,QAAQ,EAAK;EACzC,MAAM,EAAO;EACb,WAAW,EAAO,YAAY,aAAa;EAC3C,UAAU,EAAO,YAAY;EAC7B,OAAO,EAAO,YAAY;EAC1B,YAAY,EAAO,YAAY;EAC/B,cAAc,EAAkB,EAAO,YAAY,aAAa;EAChE,OAAO,MAAQ;GACb,IAAM,EAAE,YAAS;GACjB,QAAQ,EAAK,MAAb;IACE,KAAK,QACH,OAAO,EAAiB,EAAK,MAAM,EAAI,EAAE,EAAS;IAEpD,KAAK,QAAQ;KACX,IAAM,IAAQ,EAAK,MAAM,EAAI;KAO7B,OALE,KAAS,QACR,OAAO,KAAU,YAAY,EAAM,MAAM,KAAK,KAExC,IAEF,kBAAC,GAAD;MAAM,IAAI,EAAK,GAAG,EAAI;gBAAG;MAAa,CAAA;;IAE/C,KAAK,SAAS;KACZ,IAAM,IAAQ,EAAK,MAAM,EAAI;KAC7B,IAAI,KAAS,QAAQ,EAAM,MAAM,KAAK,IACpC,OAAO;KAET,IAAI,EAAE,YAAS;KAIf,OAHI,OAAO,KAAS,eAClB,IAAO,EAAK,EAAI,GAEX,kBAAC,GAAD;MAAW;gBAAO;MAAY,CAAA;;IAEvC,KAAK,YAEH,OACE,kBAAC,GAAD;KACS,OAHG,EAAK,MAAM,EAGd;KACG;KACV,SAAS;KACT,CAAA;IAGN,KAAK,aAAa;KAChB,IAAM,IAAK,EAAK,MAAM,EAAI;KAC1B,IAAI,EAAG,MAAM,KAAK,IAChB,OAAO;KAET,IAAM,IAAQ,EAAK,QAAQ,EAAI,IAAI,EAAE,eAAe;KAMpD,OACE,kBAAC,GAAD;MAA8B,QAAA;OAL9B,MAAM;OACN,UAAU,EAAK;OACf;OAG8B;gBAC3B;MACoB,CAAA;;IAG3B,KAAK,UAAU;KACb,IAAM,IAAW,EAAK,OAAO,EAAI;KAIjC,OAHI,KAAY,QAAQ,MAAa,KAC5B,IAEF,kBAAA,GAAA,EAAA,UAAG,GAAY,CAAA;;IAExB,SACE,OAAO;;;EAId,EACD"}
@@ -1,7 +1,7 @@
1
- import { CopyableText as e } from "@plumile/ui";
2
- import { jsx as t } from "react/jsx-runtime";
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { CopyableText as t } from "@plumile/ui/backoffice/atoms/copyable_text/CopyableText.js";
3
3
  //#region src/components/backoffice/detail/BackofficeCopyButton.tsx
4
- var n = ({ value: n, copyValue: r, className: i, truncate: a = !1, copyLabel: o, copiedLabel: s }) => /* @__PURE__ */ t(e, {
4
+ var n = ({ value: n, copyValue: r, className: i, truncate: a = !1, copyLabel: o, copiedLabel: s }) => /* @__PURE__ */ e(t, {
5
5
  value: n,
6
6
  copyValue: r,
7
7
  className: i,
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeCopyButton.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeCopyButton.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { CopyableText, type CopyableTextProps } from '@plumile/ui';\n\nexport type BackofficeCopyButtonProps = Omit<CopyableTextProps, 'truncate'> & {\n readonly truncate?: boolean;\n};\n\nexport const BackofficeCopyButton = ({\n value,\n copyValue,\n className,\n truncate = false,\n copyLabel,\n copiedLabel,\n}: BackofficeCopyButtonProps): JSX.Element => {\n return (\n <CopyableText\n value={value}\n copyValue={copyValue}\n className={className}\n truncate={truncate}\n copyLabel={copyLabel}\n copiedLabel={copiedLabel}\n />\n );\n};\n\nexport default BackofficeCopyButton;\n"],"mappings":";;;AAOA,IAAa,KAAwB,EACnC,UACA,cACA,cACA,cAAW,IACX,cACA,qBAGE,kBAAC,GAAD;CACS;CACI;CACA;CACD;CACC;CACE;CACb,CAAA"}
1
+ {"version":3,"file":"BackofficeCopyButton.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeCopyButton.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport {\n CopyableText,\n type CopyableTextProps,\n} from '@plumile/ui/backoffice/atoms/copyable_text/CopyableText.js';\n\nexport type BackofficeCopyButtonProps = Omit<CopyableTextProps, 'truncate'> & {\n readonly truncate?: boolean;\n};\n\nexport const BackofficeCopyButton = ({\n value,\n copyValue,\n className,\n truncate = false,\n copyLabel,\n copiedLabel,\n}: BackofficeCopyButtonProps): JSX.Element => {\n return (\n <CopyableText\n value={value}\n copyValue={copyValue}\n className={className}\n truncate={truncate}\n copyLabel={copyLabel}\n copiedLabel={copiedLabel}\n />\n );\n};\n\nexport default BackofficeCopyButton;\n"],"mappings":";;;AAUA,IAAa,KAAwB,EACnC,UACA,cACA,cACA,cAAW,IACX,cACA,qBAGE,kBAAC,GAAD;CACS;CACI;CACA;CACD;CACC;CACE;CACb,CAAA"}
@@ -1,17 +1,17 @@
1
1
  import { row as e } from "./backofficeDetailBadgeRow.css.js";
2
- import { Tag as t } from "@plumile/ui";
3
- import { jsx as n } from "react/jsx-runtime";
4
- import { useTranslation as r } from "react-i18next";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { useTranslation as n } from "react-i18next";
4
+ import { Tag as r } from "@plumile/ui/backoffice/atoms/tag/Tag.js";
5
5
  //#region src/components/backoffice/detail/BackofficeDetailBadgeRow.tsx
6
6
  var i = ({ items: i }) => {
7
- let { t: a } = r();
8
- return /* @__PURE__ */ n("div", {
7
+ let { t: a } = n();
8
+ return /* @__PURE__ */ t("div", {
9
9
  className: e,
10
10
  children: i.map((e) => {
11
- let r = typeof e.label == "function" ? e.label(a) : e.label;
12
- return /* @__PURE__ */ n(t, {
11
+ let n = typeof e.label == "function" ? e.label(a) : e.label;
12
+ return /* @__PURE__ */ t(r, {
13
13
  tone: e.tone ?? "neutral",
14
- children: r
14
+ children: n
15
15
  }, e.id);
16
16
  })
17
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeDetailBadgeRow.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailBadgeRow.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport { type JSX } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { BackofficeBadgeItem } from '@plumile/backoffice-core/types.js';\nimport { Tag } from '@plumile/ui';\n\nimport * as styles from './backofficeDetailBadgeRow.css.js';\n\nexport type BackofficeDetailBadgeRowProps = {\n items: readonly BackofficeBadgeItem[];\n};\n\nexport const BackofficeDetailBadgeRow = ({\n items,\n}: BackofficeDetailBadgeRowProps): JSX.Element => {\n const { t } = useTranslation();\n return (\n <div className={styles.row}>\n {items.map((item) => {\n const label =\n typeof item.label === 'function' ? item.label(t) : item.label;\n return (\n <Tag key={item.id} tone={item.tone ?? 'neutral'}>\n {label}\n </Tag>\n );\n })}\n </div>\n );\n};\n\nexport default BackofficeDetailBadgeRow;\n"],"mappings":";;;;;AAaA,IAAa,KAA4B,EACvC,eACgD;CAChD,IAAM,EAAE,SAAM,GAAgB;CAC9B,OACE,kBAAC,OAAD;EAAK,WAAW;YACb,EAAM,KAAK,MAAS;GACnB,IAAM,IACJ,OAAO,EAAK,SAAU,aAAa,EAAK,MAAM,EAAE,GAAG,EAAK;GAC1D,OACE,kBAAC,GAAD;IAAmB,MAAM,EAAK,QAAQ;cACnC;IACG,EAFI,EAAK,GAET;IAER;EACE,CAAA"}
1
+ {"version":3,"file":"BackofficeDetailBadgeRow.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailBadgeRow.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport { type JSX } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { BackofficeBadgeItem } from '@plumile/backoffice-core/types.js';\nimport { Tag } from '@plumile/ui/backoffice/atoms/tag/Tag.js';\n\nimport * as styles from './backofficeDetailBadgeRow.css.js';\n\nexport type BackofficeDetailBadgeRowProps = {\n items: readonly BackofficeBadgeItem[];\n};\n\nexport const BackofficeDetailBadgeRow = ({\n items,\n}: BackofficeDetailBadgeRowProps): JSX.Element => {\n const { t } = useTranslation();\n return (\n <div className={styles.row}>\n {items.map((item) => {\n const label =\n typeof item.label === 'function' ? item.label(t) : item.label;\n return (\n <Tag key={item.id} tone={item.tone ?? 'neutral'}>\n {label}\n </Tag>\n );\n })}\n </div>\n );\n};\n\nexport default BackofficeDetailBadgeRow;\n"],"mappings":";;;;;AAaA,IAAa,KAA4B,EACvC,eACgD;CAChD,IAAM,EAAE,SAAM,GAAgB;CAC9B,OACE,kBAAC,OAAD;EAAK,WAAW;YACb,EAAM,KAAK,MAAS;GACnB,IAAM,IACJ,OAAO,EAAK,SAAU,aAAa,EAAK,MAAM,EAAE,GAAG,EAAK;GAC1D,OACE,kBAAC,GAAD;IAAmB,MAAM,EAAK,QAAQ;cACnC;IACG,EAFI,EAAK,GAET;IAER;EACE,CAAA"}
@@ -2,32 +2,33 @@ import { useBackofficeReactTranslation as e } from "../../../i18n/useBackofficeR
2
2
  import { BackofficeDetailSection as t } from "./BackofficeDetailSection.js";
3
3
  import { formatJsonPayload as n } from "./detailPayloadUtils.js";
4
4
  import { code as r, details as i, header as a, item as o, itemSurface as s, list as c, message as l } from "./backofficeDetailErrorList.css.js";
5
- import { LazyMarkdownRenderer as u, cx as d } from "@plumile/ui";
6
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
5
+ import { cx as u } from "@plumile/ui/theme/tools.js";
6
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
7
+ import { LazyMarkdownRenderer as p } from "@plumile/ui/atomic/molecules/markdown/LazyMarkdownRenderer.js";
7
8
  //#region src/components/backoffice/detail/BackofficeDetailErrorList.tsx
8
9
  var m = ({ title: m, description: h, items: g }) => {
9
10
  let { t: _ } = e();
10
- return g.length === 0 ? null : /* @__PURE__ */ f(t, {
11
+ return g.length === 0 ? null : /* @__PURE__ */ d(t, {
11
12
  title: m,
12
13
  description: h,
13
- children: /* @__PURE__ */ f("div", {
14
+ children: /* @__PURE__ */ d("div", {
14
15
  className: c,
15
16
  children: g.map((e, t) => {
16
17
  let c = _("common.notAvailable");
17
- return e.details != null && (c = n(e.details)), /* @__PURE__ */ p("div", {
18
- className: d(o, s),
19
- children: [/* @__PURE__ */ p("div", {
18
+ return e.details != null && (c = n(e.details)), /* @__PURE__ */ f("div", {
19
+ className: u(o, s),
20
+ children: [/* @__PURE__ */ f("div", {
20
21
  className: a,
21
- children: [/* @__PURE__ */ f("span", {
22
+ children: [/* @__PURE__ */ d("span", {
22
23
  className: r,
23
24
  children: e.code
24
- }), /* @__PURE__ */ f("span", {
25
+ }), /* @__PURE__ */ d("span", {
25
26
  className: l,
26
27
  children: e.message
27
28
  })]
28
- }), /* @__PURE__ */ f("div", {
29
+ }), /* @__PURE__ */ d("div", {
29
30
  className: i,
30
- children: /* @__PURE__ */ f(u, { content: c })
31
+ children: /* @__PURE__ */ d(p, { content: c })
31
32
  })]
32
33
  }, `${e.code}-${t}`);
33
34
  })
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeDetailErrorList.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailErrorList.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { LazyMarkdownRenderer, cx } from '@plumile/ui';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { BackofficeDetailSection } from './BackofficeDetailSection.js';\nimport { formatJsonPayload } from './detailPayloadUtils.js';\n\nimport * as styles from './backofficeDetailErrorList.css.js';\n\nexport type BackofficeDetailErrorItem = {\n code: string;\n message: string;\n details?: unknown;\n};\n\nexport type BackofficeDetailErrorListProps = {\n title: string;\n description?: string;\n items: readonly BackofficeDetailErrorItem[];\n};\n\nexport const BackofficeDetailErrorList = ({\n title,\n description,\n items,\n}: BackofficeDetailErrorListProps): JSX.Element | null => {\n const { t } = useBackofficeReactTranslation();\n\n if (items.length === 0) {\n return null;\n }\n\n return (\n <BackofficeDetailSection title={title} description={description}>\n <div className={styles.list}>\n {items.map((error, index) => {\n let details = t('common.notAvailable');\n if (error.details != null) {\n details = formatJsonPayload(error.details);\n }\n return (\n <div\n key={`${error.code}-${index}`}\n className={cx(styles.item, styles.itemSurface)}\n >\n <div className={styles.header}>\n <span className={styles.code}>{error.code}</span>\n <span className={styles.message}>{error.message}</span>\n </div>\n <div className={styles.details}>\n <LazyMarkdownRenderer content={details} />\n </div>\n </div>\n );\n })}\n </div>\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeDetailErrorList;\n"],"mappings":";;;;;;;AAsBA,IAAa,KAA6B,EACxC,UACA,gBACA,eACwD;CACxD,IAAM,EAAE,SAAM,GAA+B;CAM7C,OAJI,EAAM,WAAW,IACZ,OAIP,kBAAC,GAAD;EAAgC;EAAoB;YAClD,kBAAC,OAAD;GAAK,WAAW;aACb,EAAM,KAAK,GAAO,MAAU;IAC3B,IAAI,IAAU,EAAE,sBAAsB;IAItC,OAHI,EAAM,WAAW,SACnB,IAAU,EAAkB,EAAM,QAAQ,GAG1C,kBAAC,OAAD;KAEE,WAAW,EAAG,GAAa,EAAmB;eAFhD,CAIE,kBAAC,OAAD;MAAK,WAAW;gBAAhB,CACE,kBAAC,QAAD;OAAM,WAAW;iBAAc,EAAM;OAAY,CAAA,EACjD,kBAAC,QAAD;OAAM,WAAW;iBAAiB,EAAM;OAAe,CAAA,CACnD;SACN,kBAAC,OAAD;MAAK,WAAW;gBACd,kBAAC,GAAD,EAAsB,SAAS,GAAW,CAAA;MACtC,CAAA,CACF;OAVC,GAAG,EAAM,KAAK,GAAG,IAUlB;KAER;GACE,CAAA;EACkB,CAAA"}
1
+ {"version":3,"file":"BackofficeDetailErrorList.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailErrorList.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { LazyMarkdownRenderer } from '@plumile/ui/atomic/molecules/markdown/LazyMarkdownRenderer.js';\nimport { cx } from '@plumile/ui/theme/tools.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { BackofficeDetailSection } from './BackofficeDetailSection.js';\nimport { formatJsonPayload } from './detailPayloadUtils.js';\n\nimport * as styles from './backofficeDetailErrorList.css.js';\n\nexport type BackofficeDetailErrorItem = {\n code: string;\n message: string;\n details?: unknown;\n};\n\nexport type BackofficeDetailErrorListProps = {\n title: string;\n description?: string;\n items: readonly BackofficeDetailErrorItem[];\n};\n\nexport const BackofficeDetailErrorList = ({\n title,\n description,\n items,\n}: BackofficeDetailErrorListProps): JSX.Element | null => {\n const { t } = useBackofficeReactTranslation();\n\n if (items.length === 0) {\n return null;\n }\n\n return (\n <BackofficeDetailSection title={title} description={description}>\n <div className={styles.list}>\n {items.map((error, index) => {\n let details = t('common.notAvailable');\n if (error.details != null) {\n details = formatJsonPayload(error.details);\n }\n return (\n <div\n key={`${error.code}-${index}`}\n className={cx(styles.item, styles.itemSurface)}\n >\n <div className={styles.header}>\n <span className={styles.code}>{error.code}</span>\n <span className={styles.message}>{error.message}</span>\n </div>\n <div className={styles.details}>\n <LazyMarkdownRenderer content={details} />\n </div>\n </div>\n );\n })}\n </div>\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeDetailErrorList;\n"],"mappings":";;;;;;;;AAuBA,IAAa,KAA6B,EACxC,UACA,gBACA,eACwD;CACxD,IAAM,EAAE,SAAM,GAA+B;CAM7C,OAJI,EAAM,WAAW,IACZ,OAIP,kBAAC,GAAD;EAAgC;EAAoB;YAClD,kBAAC,OAAD;GAAK,WAAW;aACb,EAAM,KAAK,GAAO,MAAU;IAC3B,IAAI,IAAU,EAAE,sBAAsB;IAItC,OAHI,EAAM,WAAW,SACnB,IAAU,EAAkB,EAAM,QAAQ,GAG1C,kBAAC,OAAD;KAEE,WAAW,EAAG,GAAa,EAAmB;eAFhD,CAIE,kBAAC,OAAD;MAAK,WAAW;gBAAhB,CACE,kBAAC,QAAD;OAAM,WAAW;iBAAc,EAAM;OAAY,CAAA,EACjD,kBAAC,QAAD;OAAM,WAAW;iBAAiB,EAAM;OAAe,CAAA,CACnD;SACN,kBAAC,OAAD;MAAK,WAAW;gBACd,kBAAC,GAAD,EAAsB,SAAS,GAAW,CAAA;MACtC,CAAA,CACF;OAVC,GAAG,EAAM,KAAK,GAAG,IAUlB;KAER;GACE,CAAA;EACkB,CAAA"}
@@ -1,11 +1,12 @@
1
1
  import { useBackofficeReactTranslation as e } from "../../../i18n/useBackofficeReactTranslation.js";
2
2
  import { field as t, fullWidth as n, label as r, size as i, value as a } from "./backofficeDetailField.css.js";
3
- import { CopyableText as o, cx as s } from "@plumile/ui";
4
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
3
+ import { cx as o } from "@plumile/ui/theme/tools.js";
4
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
5
+ import { CopyableText as l } from "@plumile/ui/backoffice/atoms/copyable_text/CopyableText.js";
5
6
  //#region src/components/backoffice/detail/BackofficeDetailField.tsx
6
7
  var u = ({ label: u, size: d, value: f, copyValue: p, fullWidth: m = !1 }) => {
7
8
  let { t: h } = e(), g = f;
8
- (g == null || typeof g == "string" && g.trim() === "") && (g = h("common.notAvailable")), p != null && p !== "" && (g = /* @__PURE__ */ c(o, {
9
+ (g == null || typeof g == "string" && g.trim() === "") && (g = h("common.notAvailable")), p != null && p !== "" && (g = /* @__PURE__ */ s(l, {
9
10
  value: p,
10
11
  copyValue: p,
11
12
  truncate: !1,
@@ -13,12 +14,12 @@ var u = ({ label: u, size: d, value: f, copyValue: p, fullWidth: m = !1 }) => {
13
14
  copiedLabel: h("common.actions.copied")
14
15
  }));
15
16
  let _ = [t, i[d]];
16
- return m && _.push(n), /* @__PURE__ */ l("div", {
17
- className: s(..._),
18
- children: [/* @__PURE__ */ c("span", {
17
+ return m && _.push(n), /* @__PURE__ */ c("div", {
18
+ className: o(..._),
19
+ children: [/* @__PURE__ */ s("span", {
19
20
  className: r,
20
21
  children: u
21
- }), /* @__PURE__ */ c("div", {
22
+ }), /* @__PURE__ */ s("div", {
22
23
  className: a,
23
24
  children: g
24
25
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeDetailField.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailField.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport type { BackofficeFieldSize } from '@plumile/backoffice-core/types.js';\n\nimport { CopyableText, cx } from '@plumile/ui';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './backofficeDetailField.css.js';\n\nexport type BackofficeDetailFieldProps = {\n id: string;\n label: string;\n size: BackofficeFieldSize;\n value: ReactNode | null | undefined;\n copyValue?: string;\n fullWidth?: boolean;\n};\n\nexport const BackofficeDetailField = ({\n label,\n size,\n value,\n copyValue,\n fullWidth = false,\n}: BackofficeDetailFieldProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n let resolvedValue: ReactNode = value;\n if (\n resolvedValue == null ||\n (typeof resolvedValue === 'string' && resolvedValue.trim() === '')\n ) {\n resolvedValue = t('common.notAvailable');\n }\n\n if (copyValue != null && copyValue !== '') {\n resolvedValue = (\n <CopyableText\n value={copyValue}\n copyValue={copyValue}\n truncate={false}\n copyLabel={t('common.actions.copy')}\n copiedLabel={t('common.actions.copied')}\n />\n );\n }\n\n const fieldClassNames = [styles.field, styles.size[size]];\n if (fullWidth) {\n fieldClassNames.push(styles.fullWidth);\n }\n\n return (\n <div className={cx(...fieldClassNames)}>\n <span className={styles.label}>{label}</span>\n <div className={styles.value}>{resolvedValue}</div>\n </div>\n );\n};\n\nexport default BackofficeDetailField;\n"],"mappings":";;;;;AAkBA,IAAa,KAAyB,EACpC,OAAA,GACA,MAAA,GACA,OAAA,GACA,cACA,WAAA,IAAY,SACiC;CAC7C,IAAM,EAAE,SAAM,GAA+B,EACzC,IAA2B;CAQ/B,CANE,KAAiB,QAChB,OAAO,KAAkB,YAAY,EAAc,MAAM,KAAK,QAE/D,IAAgB,EAAE,sBAAsB,GAGtC,KAAa,QAAQ,MAAc,OACrC,IACE,kBAAC,GAAD;EACE,OAAO;EACI;EACX,UAAU;EACV,WAAW,EAAE,sBAAsB;EACnC,aAAa,EAAE,wBAAwB;EACvC,CAAA;CAIN,IAAM,IAAkB,CAAC,GAAc,EAAY,GAAM;CAKzD,OAJI,KACF,EAAgB,KAAK,EAAiB,EAItC,kBAAC,OAAD;EAAK,WAAW,EAAG,GAAG,EAAgB;YAAtC,CACE,kBAAC,QAAD;GAAM,WAAW;aAAe;GAAa,CAAA,EAC7C,kBAAC,OAAD;GAAK,WAAW;aAAe;GAAoB,CAAA,CAC/C"}
1
+ {"version":3,"file":"BackofficeDetailField.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailField.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport type { BackofficeFieldSize } from '@plumile/backoffice-core/types.js';\n\nimport { CopyableText } from '@plumile/ui/backoffice/atoms/copyable_text/CopyableText.js';\nimport { cx } from '@plumile/ui/theme/tools.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './backofficeDetailField.css.js';\n\nexport type BackofficeDetailFieldProps = {\n id: string;\n label: string;\n size: BackofficeFieldSize;\n value: ReactNode | null | undefined;\n copyValue?: string;\n fullWidth?: boolean;\n};\n\nexport const BackofficeDetailField = ({\n label,\n size,\n value,\n copyValue,\n fullWidth = false,\n}: BackofficeDetailFieldProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n let resolvedValue: ReactNode = value;\n if (\n resolvedValue == null ||\n (typeof resolvedValue === 'string' && resolvedValue.trim() === '')\n ) {\n resolvedValue = t('common.notAvailable');\n }\n\n if (copyValue != null && copyValue !== '') {\n resolvedValue = (\n <CopyableText\n value={copyValue}\n copyValue={copyValue}\n truncate={false}\n copyLabel={t('common.actions.copy')}\n copiedLabel={t('common.actions.copied')}\n />\n );\n }\n\n const fieldClassNames = [styles.field, styles.size[size]];\n if (fullWidth) {\n fieldClassNames.push(styles.fullWidth);\n }\n\n return (\n <div className={cx(...fieldClassNames)}>\n <span className={styles.label}>{label}</span>\n <div className={styles.value}>{resolvedValue}</div>\n </div>\n );\n};\n\nexport default BackofficeDetailField;\n"],"mappings":";;;;;;AAmBA,IAAa,KAAyB,EACpC,OAAA,GACA,MAAA,GACA,OAAA,GACA,cACA,WAAA,IAAY,SACiC;CAC7C,IAAM,EAAE,SAAM,GAA+B,EACzC,IAA2B;CAQ/B,CANE,KAAiB,QAChB,OAAO,KAAkB,YAAY,EAAc,MAAM,KAAK,QAE/D,IAAgB,EAAE,sBAAsB,GAGtC,KAAa,QAAQ,MAAc,OACrC,IACE,kBAAC,GAAD;EACE,OAAO;EACI;EACX,UAAU;EACV,WAAW,EAAE,sBAAsB;EACnC,aAAa,EAAE,wBAAwB;EACvC,CAAA;CAIN,IAAM,IAAkB,CAAC,GAAc,EAAY,GAAM;CAKzD,OAJI,KACF,EAAgB,KAAK,EAAiB,EAItC,kBAAC,OAAD;EAAK,WAAW,EAAG,GAAG,EAAgB;YAAtC,CACE,kBAAC,QAAD;GAAM,WAAW;aAAe;GAAa,CAAA,EAC7C,kBAAC,OAAD;GAAK,WAAW;aAAe;GAAoB,CAAA,CAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeDetailFlagTag.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailFlagTag.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { sprinkles } from '@plumile/ui';\n\nexport const content = sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n});\n\nexport const icon = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n }),\n {\n flex: '0 0 auto',\n },\n]);\n\nexport const label = style({\n flex: '0 1 auto',\n});\n"],"mappings":""}
1
+ {"version":3,"file":"BackofficeDetailFlagTag.css.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailFlagTag.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const content = sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n});\n\nexport const icon = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n }),\n {\n flex: '0 0 auto',\n },\n]);\n\nexport const label = style({\n flex: '0 1 auto',\n});\n"],"mappings":""}
@@ -1,17 +1,17 @@
1
1
  import { content as e, icon as t, label as n } from "./BackofficeDetailFlagTag.css.js";
2
- import { Tag as r } from "@plumile/ui";
3
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
2
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
3
+ import { Tag as a } from "@plumile/ui/backoffice/atoms/tag/Tag.js";
4
4
  //#region src/components/backoffice/detail/BackofficeDetailFlagTag.tsx
5
5
  var o = ({ tone: o, icon: s, label: c }) => {
6
6
  let l = s != null, u = null;
7
- return l && (u = /* @__PURE__ */ i("span", {
7
+ return l && (u = /* @__PURE__ */ r("span", {
8
8
  className: t,
9
9
  children: s
10
- })), /* @__PURE__ */ i(r, {
10
+ })), /* @__PURE__ */ r(a, {
11
11
  tone: o,
12
- children: /* @__PURE__ */ a("span", {
12
+ children: /* @__PURE__ */ i("span", {
13
13
  className: e,
14
- children: [u, /* @__PURE__ */ i("span", {
14
+ children: [u, /* @__PURE__ */ r("span", {
15
15
  className: n,
16
16
  children: c
17
17
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeDetailFlagTag.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailFlagTag.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\n\nimport { Tag, type TagTone } from '@plumile/ui';\n\nimport * as styles from './BackofficeDetailFlagTag.css.js';\n\nexport type BackofficeDetailFlagTagProps = {\n tone: TagTone;\n icon?: ReactNode;\n label: string;\n};\n\nexport const BackofficeDetailFlagTag = ({\n tone,\n icon,\n label,\n}: BackofficeDetailFlagTagProps): JSX.Element => {\n const hasIcon = icon != null;\n let iconNode: ReactNode | null = null;\n if (hasIcon) {\n iconNode = <span className={styles.icon}>{icon}</span>;\n }\n\n return (\n <Tag tone={tone}>\n <span className={styles.content}>\n {iconNode}\n <span className={styles.label}>{label}</span>\n </span>\n </Tag>\n );\n};\n\nexport default BackofficeDetailFlagTag;\n"],"mappings":";;;;AAYA,IAAa,KAA2B,EACtC,SACA,MAAA,GACA,OAAA,QAC+C;CAC/C,IAAM,IAAU,KAAQ,MACpB,IAA6B;CAKjC,OAJI,MACF,IAAW,kBAAC,QAAD;EAAM,WAAW;YAAc;EAAY,CAAA,GAItD,kBAAC,GAAD;EAAW;YACT,kBAAC,QAAD;GAAM,WAAW;aAAjB,CACG,GACD,kBAAC,QAAD;IAAM,WAAW;cAAe;IAAa,CAAA,CACxC;;EACH,CAAA"}
1
+ {"version":3,"file":"BackofficeDetailFlagTag.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailFlagTag.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\n\nimport { Tag, type TagTone } from '@plumile/ui/backoffice/atoms/tag/Tag.js';\n\nimport * as styles from './BackofficeDetailFlagTag.css.js';\n\nexport type BackofficeDetailFlagTagProps = {\n tone: TagTone;\n icon?: ReactNode;\n label: string;\n};\n\nexport const BackofficeDetailFlagTag = ({\n tone,\n icon,\n label,\n}: BackofficeDetailFlagTagProps): JSX.Element => {\n const hasIcon = icon != null;\n let iconNode: ReactNode | null = null;\n if (hasIcon) {\n iconNode = <span className={styles.icon}>{icon}</span>;\n }\n\n return (\n <Tag tone={tone}>\n <span className={styles.content}>\n {iconNode}\n <span className={styles.label}>{label}</span>\n </span>\n </Tag>\n );\n};\n\nexport default BackofficeDetailFlagTag;\n"],"mappings":";;;;AAYA,IAAa,KAA2B,EACtC,SACA,MAAA,GACA,OAAA,QAC+C;CAC/C,IAAM,IAAU,KAAQ,MACpB,IAA6B;CAKjC,OAJI,MACF,IAAW,kBAAC,QAAD;EAAM,WAAW;YAAc;EAAY,CAAA,GAItD,kBAAC,GAAD;EAAW;YACT,kBAAC,QAAD;GAAM,WAAW;aAAjB,CACG,GACD,kBAAC,QAAD;IAAM,WAAW;cAAe;IAAa,CAAA,CACxC;;EACH,CAAA"}
@@ -1,7 +1,7 @@
1
- import { BackofficePageHeader as e } from "@plumile/ui";
2
- import { jsx as t } from "react/jsx-runtime";
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { BackofficePageHeader as t } from "@plumile/ui/backoffice/molecules/backoffice_page_header/BackofficePageHeader.js";
3
3
  //#region src/components/backoffice/detail/BackofficeDetailHeader.tsx
4
- var n = ({ title: n, subtitle: r, actions: i, meta: a, leftActions: o, className: s }) => /* @__PURE__ */ t(e, {
4
+ var n = ({ title: n, subtitle: r, actions: i, meta: a, leftActions: o, className: s }) => /* @__PURE__ */ e(t, {
5
5
  title: n,
6
6
  subtitle: r,
7
7
  actions: i,
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeDetailHeader.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailHeader.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { BackofficePageHeader } from '@plumile/ui';\n\nexport type BackofficeDetailHeaderProps = {\n readonly title: string;\n readonly subtitle?: ReactNode;\n readonly actions?: ReactNode;\n readonly meta?: ReactNode;\n readonly leftActions?: ReactNode;\n readonly className?: string;\n};\n\nexport const BackofficeDetailHeader = ({\n title,\n subtitle,\n actions,\n meta,\n leftActions,\n className,\n}: BackofficeDetailHeaderProps): JSX.Element => {\n return (\n <BackofficePageHeader\n title={title}\n subtitle={subtitle}\n actions={actions}\n meta={meta}\n leftActions={leftActions}\n className={className}\n />\n );\n};\n\nexport default BackofficeDetailHeader;\n"],"mappings":";;;AAYA,IAAa,KAA0B,EACrC,UACA,aACA,YACA,SACA,gBACA,mBAGE,kBAAC,GAAD;CACS;CACG;CACD;CACH;CACO;CACF;CACX,CAAA"}
1
+ {"version":3,"file":"BackofficeDetailHeader.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailHeader.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { BackofficePageHeader } from '@plumile/ui/backoffice/molecules/backoffice_page_header/BackofficePageHeader.js';\n\nexport type BackofficeDetailHeaderProps = {\n readonly title: string;\n readonly subtitle?: ReactNode;\n readonly actions?: ReactNode;\n readonly meta?: ReactNode;\n readonly leftActions?: ReactNode;\n readonly className?: string;\n};\n\nexport const BackofficeDetailHeader = ({\n title,\n subtitle,\n actions,\n meta,\n leftActions,\n className,\n}: BackofficeDetailHeaderProps): JSX.Element => {\n return (\n <BackofficePageHeader\n title={title}\n subtitle={subtitle}\n actions={actions}\n meta={meta}\n leftActions={leftActions}\n className={className}\n />\n );\n};\n\nexport default BackofficeDetailHeader;\n"],"mappings":";;;AAYA,IAAa,KAA0B,EACrC,UACA,aACA,YACA,SACA,gBACA,mBAGE,kBAAC,GAAD;CACS;CACG;CACD;CACH;CACO;CACF;CACX,CAAA"}
@@ -1,7 +1,7 @@
1
- import { DetailPageTemplate as e } from "@plumile/ui";
2
- import { jsx as t } from "react/jsx-runtime";
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { DetailPageTemplate as t } from "@plumile/ui/backoffice/templates/detail_page_template/DetailPageTemplate.js";
3
3
  //#region src/components/backoffice/detail/BackofficeDetailPage.tsx
4
- var n = ({ headerNode: n, children: r, aboveContent: i, tabsNode: a, sidePanel: o, sidePanelVariant: s, sidePanelStickyTop: c, layoutVariant: l, headerDensity: u = "compact", className: d }) => /* @__PURE__ */ t(e, {
4
+ var n = ({ headerNode: n, children: r, aboveContent: i, tabsNode: a, sidePanel: o, sidePanelVariant: s, sidePanelStickyTop: c, layoutVariant: l, headerDensity: u = "compact", className: d }) => /* @__PURE__ */ e(t, {
5
5
  headerNode: n,
6
6
  aboveContent: i,
7
7
  tabsNode: a,
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeDetailPage.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailPage.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { DetailPageTemplate } from '@plumile/ui';\n\nexport type BackofficeDetailPageProps = {\n readonly headerNode: ReactNode;\n readonly children: ReactNode;\n readonly aboveContent?: ReactNode;\n readonly tabsNode?: ReactNode;\n readonly sidePanel?: ReactNode;\n readonly sidePanelVariant?: 'card' | 'plain';\n readonly sidePanelStickyTop?: string;\n readonly layoutVariant?: 'single' | 'split';\n readonly headerDensity?: 'default' | 'compact';\n readonly className?: string;\n};\n\nexport const BackofficeDetailPage = ({\n headerNode,\n children,\n aboveContent,\n tabsNode,\n sidePanel,\n sidePanelVariant,\n sidePanelStickyTop,\n layoutVariant,\n headerDensity = 'compact',\n className,\n}: BackofficeDetailPageProps): JSX.Element => {\n return (\n <DetailPageTemplate\n headerNode={headerNode}\n aboveContent={aboveContent}\n tabsNode={tabsNode}\n sidePanel={sidePanel}\n sidePanelVariant={sidePanelVariant}\n sidePanelStickyTop={sidePanelStickyTop}\n layoutVariant={layoutVariant}\n headerDensity={headerDensity}\n className={className}\n >\n {children}\n </DetailPageTemplate>\n );\n};\n\nexport default BackofficeDetailPage;\n"],"mappings":";;;AAgBA,IAAa,KAAwB,EACnC,eACA,aACA,iBACA,aACA,cACA,qBACA,uBACA,kBACA,mBAAgB,WAChB,mBAGE,kBAAC,GAAD;CACc;CACE;CACJ;CACC;CACO;CACE;CACL;CACA;CACJ;CAEV;CACkB,CAAA"}
1
+ {"version":3,"file":"BackofficeDetailPage.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailPage.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { DetailPageTemplate } from '@plumile/ui/backoffice/templates/detail_page_template/DetailPageTemplate.js';\n\nexport type BackofficeDetailPageProps = {\n readonly headerNode: ReactNode;\n readonly children: ReactNode;\n readonly aboveContent?: ReactNode;\n readonly tabsNode?: ReactNode;\n readonly sidePanel?: ReactNode;\n readonly sidePanelVariant?: 'card' | 'plain';\n readonly sidePanelStickyTop?: string;\n readonly layoutVariant?: 'single' | 'split';\n readonly headerDensity?: 'default' | 'compact';\n readonly className?: string;\n};\n\nexport const BackofficeDetailPage = ({\n headerNode,\n children,\n aboveContent,\n tabsNode,\n sidePanel,\n sidePanelVariant,\n sidePanelStickyTop,\n layoutVariant,\n headerDensity = 'compact',\n className,\n}: BackofficeDetailPageProps): JSX.Element => {\n return (\n <DetailPageTemplate\n headerNode={headerNode}\n aboveContent={aboveContent}\n tabsNode={tabsNode}\n sidePanel={sidePanel}\n sidePanelVariant={sidePanelVariant}\n sidePanelStickyTop={sidePanelStickyTop}\n layoutVariant={layoutVariant}\n headerDensity={headerDensity}\n className={className}\n >\n {children}\n </DetailPageTemplate>\n );\n};\n\nexport default BackofficeDetailPage;\n"],"mappings":";;;AAgBA,IAAa,KAAwB,EACnC,eACA,aACA,iBACA,aACA,cACA,qBACA,uBACA,kBACA,mBAAgB,WAChB,mBAGE,kBAAC,GAAD;CACc;CACE;CACJ;CACC;CACO;CACE;CACL;CACA;CACJ;CAEV;CACkB,CAAA"}
@@ -1,15 +1,15 @@
1
1
  import { useBackofficeReactTranslation as e } from "../../../i18n/useBackofficeReactTranslation.js";
2
2
  import { BackofficeDetailSection as t } from "./BackofficeDetailSection.js";
3
3
  import { formatJsonPayload as n } from "./detailPayloadUtils.js";
4
- import { LazyMarkdownRenderer as r } from "@plumile/ui";
5
- import { jsx as i } from "react/jsx-runtime";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ import { LazyMarkdownRenderer as i } from "@plumile/ui/atomic/molecules/markdown/LazyMarkdownRenderer.js";
6
6
  //#region src/components/backoffice/detail/BackofficeDetailPayload.tsx
7
7
  var a = ({ title: a, content: o, format: s = "markdown", description: c }) => {
8
8
  let { t: l } = e(), u = "";
9
- return s === "json" ? u = n(o) : o != null && (u = typeof o == "string" ? o : typeof o == "number" || typeof o == "boolean" ? String(o) : n(o)), u.trim() === "" && (u = l("common.notAvailable")), /* @__PURE__ */ i(t, {
9
+ return s === "json" ? u = n(o) : o != null && (u = typeof o == "string" ? o : typeof o == "number" || typeof o == "boolean" ? String(o) : n(o)), u.trim() === "" && (u = l("common.notAvailable")), /* @__PURE__ */ r(t, {
10
10
  title: a,
11
11
  description: c,
12
- children: /* @__PURE__ */ i(r, { content: u })
12
+ children: /* @__PURE__ */ r(i, { content: u })
13
13
  });
14
14
  };
15
15
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeDetailPayload.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailPayload.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { LazyMarkdownRenderer } from '@plumile/ui';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { BackofficeDetailSection } from './BackofficeDetailSection.js';\nimport { formatJsonPayload } from './detailPayloadUtils.js';\n\nexport type BackofficeDetailPayloadProps = {\n title: string;\n content: unknown;\n format?: 'markdown' | 'json' | 'text';\n description?: string;\n};\n\nexport const BackofficeDetailPayload = ({\n title,\n content,\n format = 'markdown',\n description,\n}: BackofficeDetailPayloadProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n let resolved = '';\n if (format === 'json') {\n resolved = formatJsonPayload(content);\n } else if (content != null) {\n if (typeof content === 'string') {\n resolved = content;\n } else if (typeof content === 'number' || typeof content === 'boolean') {\n resolved = String(content);\n } else {\n resolved = formatJsonPayload(content);\n }\n }\n\n if (resolved.trim() === '') {\n resolved = t('common.notAvailable');\n }\n\n return (\n <BackofficeDetailSection title={title} description={description}>\n <LazyMarkdownRenderer content={resolved} />\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeDetailPayload;\n"],"mappings":";;;;;;AAeA,IAAa,KAA2B,EACtC,UACA,YACA,YAAS,YACT,qBAC+C;CAC/C,IAAM,EAAE,SAAM,GAA+B,EACzC,IAAW;CAiBf,OAhBI,MAAW,SACb,IAAW,EAAkB,EAAQ,GAC5B,KAAW,SACpB,AAKE,IALE,OAAO,KAAY,WACV,IACF,OAAO,KAAY,YAAY,OAAO,KAAY,YAChD,OAAO,EAAQ,GAEf,EAAkB,EAAQ,GAIrC,EAAS,MAAM,KAAK,OACtB,IAAW,EAAE,sBAAsB,GAInC,kBAAC,GAAD;EAAgC;EAAoB;YAClD,kBAAC,GAAD,EAAsB,SAAS,GAAY,CAAA;EACnB,CAAA"}
1
+ {"version":3,"file":"BackofficeDetailPayload.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailPayload.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { LazyMarkdownRenderer } from '@plumile/ui/atomic/molecules/markdown/LazyMarkdownRenderer.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { BackofficeDetailSection } from './BackofficeDetailSection.js';\nimport { formatJsonPayload } from './detailPayloadUtils.js';\n\nexport type BackofficeDetailPayloadProps = {\n title: string;\n content: unknown;\n format?: 'markdown' | 'json' | 'text';\n description?: string;\n};\n\nexport const BackofficeDetailPayload = ({\n title,\n content,\n format = 'markdown',\n description,\n}: BackofficeDetailPayloadProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n let resolved = '';\n if (format === 'json') {\n resolved = formatJsonPayload(content);\n } else if (content != null) {\n if (typeof content === 'string') {\n resolved = content;\n } else if (typeof content === 'number' || typeof content === 'boolean') {\n resolved = String(content);\n } else {\n resolved = formatJsonPayload(content);\n }\n }\n\n if (resolved.trim() === '') {\n resolved = t('common.notAvailable');\n }\n\n return (\n <BackofficeDetailSection title={title} description={description}>\n <LazyMarkdownRenderer content={resolved} />\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeDetailPayload;\n"],"mappings":";;;;;;AAeA,IAAa,KAA2B,EACtC,UACA,YACA,YAAS,YACT,qBAC+C;CAC/C,IAAM,EAAE,SAAM,GAA+B,EACzC,IAAW;CAiBf,OAhBI,MAAW,SACb,IAAW,EAAkB,EAAQ,GAC5B,KAAW,SACpB,AAKE,IALE,OAAO,KAAY,WACV,IACF,OAAO,KAAY,YAAY,OAAO,KAAY,YAChD,OAAO,EAAQ,GAEf,EAAkB,EAAQ,GAIrC,EAAS,MAAM,KAAK,OACtB,IAAW,EAAE,sBAAsB,GAInC,kBAAC,GAAD;EAAgC;EAAoB;YAClD,kBAAC,GAAD,EAAsB,SAAS,GAAY,CAAA;EACnB,CAAA"}
@@ -4,7 +4,7 @@ import { BackofficeInlineLink as n } from "../links/BackofficeInlineLink.js";
4
4
  import { action as r, chevron as i, label as a, link as o, meta as s } from "./backofficeDetailRelationLink.css.js";
5
5
  import { useContext as c } from "react";
6
6
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
- import { RoutingContext as d } from "@plumile/router";
7
+ import d from "@plumile/router/routing/RoutingContext.js";
8
8
  import { buildBackofficeListLink as f } from "@plumile/backoffice-core/state/buildListHref.js";
9
9
  import { setWhereValue as p } from "@plumile/backoffice-core/filters/where.js";
10
10
  //#region src/components/backoffice/detail/BackofficeDetailRelationLink.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeDetailRelationLink.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailRelationLink.tsx"],"sourcesContent":["import { useContext, type JSX, type MouseEvent } from 'react';\nimport { RoutingContext } from '@plumile/router';\n\nimport { buildBackofficeListLink } from '@plumile/backoffice-core/state/buildListHref.js';\nimport { setWhereValue } from '@plumile/backoffice-core/filters/where.js';\nimport type { BackofficeRuntimeRelationFilterSpec } from '@plumile/backoffice-core/types.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { useBackofficeConfig } from '../../../provider/BackofficeConfigContext.js';\nimport { BackofficeInlineLink } from '../links/BackofficeInlineLink.js';\nimport type { BackofficeLinkTarget } from '../links/types.js';\n\nimport * as styles from './backofficeDetailRelationLink.css.js';\n\nexport type BackofficeDetailRelationLinkProps = {\n label: string;\n relation: BackofficeRuntimeRelationFilterSpec;\n value: string;\n count?: number;\n};\n\nexport const BackofficeDetailRelationLink = ({\n label,\n relation,\n value,\n count,\n}: BackofficeDetailRelationLinkProps): JSX.Element | null => {\n const { t } = useBackofficeReactTranslation();\n const { entities, entityRegistry } = useBackofficeConfig();\n const routing = useContext(RoutingContext);\n const { target, filterId, whereKey, path } = relation;\n const targetManifest = entities[target];\n if (targetManifest == null) {\n return null;\n }\n\n const where = setWhereValue<Record<string, unknown>>(\n null,\n whereKey,\n value,\n path,\n );\n\n const loadedEntity = entityRegistry.getLoadedListEntity(target);\n let filterKey = whereKey;\n if (path != null) {\n filterKey = `${whereKey}.${path.join('.')}`;\n }\n const resolvedFilterId = filterId ?? filterKey;\n\n const linkTarget = {\n kind: 'entity-list',\n entityId: target,\n state: {\n where,\n filters: [\n {\n id: resolvedFilterId,\n value,\n },\n ],\n },\n } as BackofficeLinkTarget;\n\n const navigateToLazyList = async (\n history: NonNullable<typeof routing>['history'],\n ): Promise<void> => {\n const listEntity = await entityRegistry.loadListEntity(target);\n const next = buildBackofficeListLink(listEntity.config, { where });\n\n let search = '';\n if (next.search !== '') {\n search = `?${next.search}`;\n }\n\n history.push({\n pathname: next.pathname,\n search,\n hash: '',\n });\n };\n\n const handleClick = (event: MouseEvent<HTMLAnchorElement>) => {\n if (\n loadedEntity != null ||\n routing == null ||\n event.defaultPrevented ||\n event.button !== 0 ||\n event.metaKey ||\n event.altKey ||\n event.ctrlKey ||\n event.shiftKey\n ) {\n return;\n }\n\n event.preventDefault();\n navigateToLazyList(routing.history).catch(() => {\n /* noop */\n });\n };\n\n let labelText = label;\n if (count != null) {\n labelText = t('relations.labelWithCount', {\n label,\n count,\n });\n }\n\n return (\n <BackofficeInlineLink\n target={linkTarget}\n className={styles.link}\n onClick={handleClick}\n endAdornment={\n <span className={styles.action}>\n <span className={styles.meta}>{t('relations.viewList')}</span>\n <span className={styles.chevron} aria-hidden=\"true\">\n &gt;\n </span>\n </span>\n }\n >\n <span className={styles.label}>{labelText}</span>\n </BackofficeInlineLink>\n );\n};\n\nexport default BackofficeDetailRelationLink;\n"],"mappings":";;;;;;;;;;AAqBA,IAAa,KAAgC,EAC3C,OAAA,GACA,aACA,UACA,eAC2D;CAC3D,IAAM,EAAE,SAAM,GAA+B,EACvC,EAAE,aAAU,sBAAmB,GAAqB,EACpD,IAAU,EAAW,EAAe,EACpC,EAAE,WAAQ,aAAU,aAAU,YAAS;CAE7C,IADuB,EAAS,MACV,MACpB,OAAO;CAGT,IAAM,IAAQ,EACZ,MACA,GACA,GACA,EACD,EAEK,IAAe,EAAe,oBAAoB,EAAO,EAC3D,IAAY;CAChB,AAAI,KAAQ,SACV,IAAY,GAAG,EAAS,GAAG,EAAK,KAAK,IAAI;CAI3C,IAAM,IAAa;EACjB,MAAM;EACN,UAAU;EACV,OAAO;GACL;GACA,SAAS,CACP;IACE,IATiB,KAAY;IAU7B;IACD,CACF;GACF;EACF,EAEK,IAAqB,OACzB,MACkB;EAElB,IAAM,IAAO,GAAwB,MADZ,EAAe,eAAe,EAAO,EACd,QAAQ,EAAE,UAAO,CAAC,EAE9D,IAAS;EAKb,AAJI,EAAK,WAAW,OAClB,IAAS,IAAI,EAAK,WAGpB,EAAQ,KAAK;GACX,UAAU,EAAK;GACf;GACA,MAAM;GACP,CAAC;IAGE,KAAe,MAAyC;EAE1D,KAAgB,QAChB,KAAW,QACX,EAAM,oBACN,EAAM,WAAW,KACjB,EAAM,WACN,EAAM,UACN,EAAM,WACN,EAAM,aAKR,EAAM,gBAAgB,EACtB,EAAmB,EAAQ,QAAQ,CAAC,YAAY,GAE9C;IAGA,IAAY;CAQhB,OAPI,KAAS,SACX,IAAY,EAAE,4BAA4B;EACxC,OAAA;EACA;EACD,CAAC,GAIF,kBAAC,GAAD;EACE,QAAQ;EACR,WAAW;EACX,SAAS;EACT,cACE,kBAAC,QAAD;GAAM,WAAW;aAAjB,CACE,kBAAC,QAAD;IAAM,WAAW;cAAc,EAAE,qBAAqB;IAAQ,CAAA,EAC9D,kBAAC,QAAD;IAAM,WAAW;IAAgB,eAAY;cAAO;IAE7C,CAAA,CACF;;YAGT,kBAAC,QAAD;GAAM,WAAW;aAAe;GAAiB,CAAA;EAC5B,CAAA"}
1
+ {"version":3,"file":"BackofficeDetailRelationLink.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeDetailRelationLink.tsx"],"sourcesContent":["import { useContext, type JSX, type MouseEvent } from 'react';\nimport RoutingContext from '@plumile/router/routing/RoutingContext.js';\n\nimport { buildBackofficeListLink } from '@plumile/backoffice-core/state/buildListHref.js';\nimport { setWhereValue } from '@plumile/backoffice-core/filters/where.js';\nimport type { BackofficeRuntimeRelationFilterSpec } from '@plumile/backoffice-core/types.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { useBackofficeConfig } from '../../../provider/BackofficeConfigContext.js';\nimport { BackofficeInlineLink } from '../links/BackofficeInlineLink.js';\nimport type { BackofficeLinkTarget } from '../links/types.js';\n\nimport * as styles from './backofficeDetailRelationLink.css.js';\n\nexport type BackofficeDetailRelationLinkProps = {\n label: string;\n relation: BackofficeRuntimeRelationFilterSpec;\n value: string;\n count?: number;\n};\n\nexport const BackofficeDetailRelationLink = ({\n label,\n relation,\n value,\n count,\n}: BackofficeDetailRelationLinkProps): JSX.Element | null => {\n const { t } = useBackofficeReactTranslation();\n const { entities, entityRegistry } = useBackofficeConfig();\n const routing = useContext(RoutingContext);\n const { target, filterId, whereKey, path } = relation;\n const targetManifest = entities[target];\n if (targetManifest == null) {\n return null;\n }\n\n const where = setWhereValue<Record<string, unknown>>(\n null,\n whereKey,\n value,\n path,\n );\n\n const loadedEntity = entityRegistry.getLoadedListEntity(target);\n let filterKey = whereKey;\n if (path != null) {\n filterKey = `${whereKey}.${path.join('.')}`;\n }\n const resolvedFilterId = filterId ?? filterKey;\n\n const linkTarget = {\n kind: 'entity-list',\n entityId: target,\n state: {\n where,\n filters: [\n {\n id: resolvedFilterId,\n value,\n },\n ],\n },\n } as BackofficeLinkTarget;\n\n const navigateToLazyList = async (\n history: NonNullable<typeof routing>['history'],\n ): Promise<void> => {\n const listEntity = await entityRegistry.loadListEntity(target);\n const next = buildBackofficeListLink(listEntity.config, { where });\n\n let search = '';\n if (next.search !== '') {\n search = `?${next.search}`;\n }\n\n history.push({\n pathname: next.pathname,\n search,\n hash: '',\n });\n };\n\n const handleClick = (event: MouseEvent<HTMLAnchorElement>) => {\n if (\n loadedEntity != null ||\n routing == null ||\n event.defaultPrevented ||\n event.button !== 0 ||\n event.metaKey ||\n event.altKey ||\n event.ctrlKey ||\n event.shiftKey\n ) {\n return;\n }\n\n event.preventDefault();\n navigateToLazyList(routing.history).catch(() => {\n /* noop */\n });\n };\n\n let labelText = label;\n if (count != null) {\n labelText = t('relations.labelWithCount', {\n label,\n count,\n });\n }\n\n return (\n <BackofficeInlineLink\n target={linkTarget}\n className={styles.link}\n onClick={handleClick}\n endAdornment={\n <span className={styles.action}>\n <span className={styles.meta}>{t('relations.viewList')}</span>\n <span className={styles.chevron} aria-hidden=\"true\">\n &gt;\n </span>\n </span>\n }\n >\n <span className={styles.label}>{labelText}</span>\n </BackofficeInlineLink>\n );\n};\n\nexport default BackofficeDetailRelationLink;\n"],"mappings":";;;;;;;;;;AAqBA,IAAa,KAAgC,EAC3C,OAAA,GACA,aACA,UACA,eAC2D;CAC3D,IAAM,EAAE,SAAM,GAA+B,EACvC,EAAE,aAAU,sBAAmB,GAAqB,EACpD,IAAU,EAAW,EAAe,EACpC,EAAE,WAAQ,aAAU,aAAU,YAAS;CAE7C,IADuB,EAAS,MACV,MACpB,OAAO;CAGT,IAAM,IAAQ,EACZ,MACA,GACA,GACA,EACD,EAEK,IAAe,EAAe,oBAAoB,EAAO,EAC3D,IAAY;CAChB,AAAI,KAAQ,SACV,IAAY,GAAG,EAAS,GAAG,EAAK,KAAK,IAAI;CAI3C,IAAM,IAAa;EACjB,MAAM;EACN,UAAU;EACV,OAAO;GACL;GACA,SAAS,CACP;IACE,IATiB,KAAY;IAU7B;IACD,CACF;GACF;EACF,EAEK,IAAqB,OACzB,MACkB;EAElB,IAAM,IAAO,GAAwB,MADZ,EAAe,eAAe,EAAO,EACd,QAAQ,EAAE,UAAO,CAAC,EAE9D,IAAS;EAKb,AAJI,EAAK,WAAW,OAClB,IAAS,IAAI,EAAK,WAGpB,EAAQ,KAAK;GACX,UAAU,EAAK;GACf;GACA,MAAM;GACP,CAAC;IAGE,KAAe,MAAyC;EAE1D,KAAgB,QAChB,KAAW,QACX,EAAM,oBACN,EAAM,WAAW,KACjB,EAAM,WACN,EAAM,UACN,EAAM,WACN,EAAM,aAKR,EAAM,gBAAgB,EACtB,EAAmB,EAAQ,QAAQ,CAAC,YAAY,GAE9C;IAGA,IAAY;CAQhB,OAPI,KAAS,SACX,IAAY,EAAE,4BAA4B;EACxC,OAAA;EACA;EACD,CAAC,GAIF,kBAAC,GAAD;EACE,QAAQ;EACR,WAAW;EACX,SAAS;EACT,cACE,kBAAC,QAAD;GAAM,WAAW;aAAjB,CACE,kBAAC,QAAD;IAAM,WAAW;cAAc,EAAE,qBAAqB;IAAQ,CAAA,EAC9D,kBAAC,QAAD;IAAM,WAAW;IAAgB,eAAY;cAAO;IAE7C,CAAA,CACF;;YAGT,kBAAC,QAAD;GAAM,WAAW;aAAe;GAAiB,CAAA;EAC5B,CAAA"}
@@ -6,65 +6,66 @@ import { useBackofficeLoadMore as i } from "../../../hooks/useBackofficeLoadMore
6
6
  import { useBackofficeListRefetch as a } from "../../../hooks/useBackofficeListRefetch.js";
7
7
  import { BackofficeEntityListScaffold as o } from "../scaffolds/BackofficeEntityListScaffold.js";
8
8
  import { Suspense as s, useCallback as c, useMemo as l, useState as u } from "react";
9
- import { BackofficeTableSkeleton as d, InlineBanner as f } from "@plumile/ui";
10
- import { jsx as p } from "react/jsx-runtime";
11
- import { useTranslation as m } from "react-i18next";
12
- import * as h from "react-relay";
13
- import { BACKOFFICE_LIST_REFETCH_POLICY as g, BACKOFFICE_RELATED_TAB_PAGE_SIZE as _ } from "@plumile/backoffice-core/constants.js";
14
- import { setWhereValue as v } from "@plumile/backoffice-core/filters/where.js";
9
+ import { jsx as d } from "react/jsx-runtime";
10
+ import { useTranslation as f } from "react-i18next";
11
+ import * as p from "react-relay";
12
+ import { InlineBanner as m } from "@plumile/ui/backoffice/molecules/inline_banner/InlineBanner.js";
13
+ import { BACKOFFICE_LIST_REFETCH_POLICY as h, BACKOFFICE_RELATED_TAB_PAGE_SIZE as g } from "@plumile/backoffice-core/constants.js";
14
+ import { setWhereValue as _ } from "@plumile/backoffice-core/filters/where.js";
15
+ import { BackofficeTableSkeleton as v } from "@plumile/ui/backoffice/molecules/backoffice_table_skeleton/BackofficeTableSkeleton.js";
15
16
  //#region src/components/backoffice/detail/BackofficeDetailRelationListBlock.tsx
16
- var { useLazyLoadQuery: y, usePaginationFragment: b } = h, x = () => {
17
+ var { useLazyLoadQuery: y, usePaginationFragment: b } = p, x = () => {
17
18
  let { t } = e();
18
- return /* @__PURE__ */ p(d, {
19
+ return /* @__PURE__ */ d(v, {
19
20
  rows: 6,
20
21
  ariaLabel: t("common.loading")
21
22
  });
22
- }, S = ({ title: t, config: n, relation: s, value: d }) => {
23
- let { t: f } = m(), { t: h } = e(), x = n.list, S = n.listDefaults ?? x.defaultState ?? {
23
+ }, S = ({ title: t, config: n, relation: s, value: p }) => {
24
+ let { t: m } = f(), { t: v } = e(), x = n.list, S = n.listDefaults ?? x.defaultState ?? {
24
25
  where: null,
25
26
  sort: null
26
27
  }, [C, w] = u({
27
28
  where: S.where,
28
29
  sort: S.sort ?? null
29
- }), T = l(() => d == null || d.trim() === "" ? null : v(C.where, s.whereKey, d, s.path), [
30
+ }), T = l(() => p == null || p.trim() === "" ? null : _(C.where, s.whereKey, p, s.path), [
30
31
  s.path,
31
32
  s.whereKey,
32
33
  C.where,
33
- d
34
+ p
34
35
  ]), E = T ?? C.where, D = C.sort ?? S.sort, O = l(() => ({
35
36
  where: E,
36
37
  sort: D,
37
- count: _,
38
+ count: g,
38
39
  cursor: null
39
40
  }), [E, D]), k = l(() => x.buildQueryVariables(O), [x, O]), A = y(x.query, k, { fetchPolicy: "store-or-network" }), { data: j, loadNext: M, hasNext: N, isLoadingNext: P, refetch: F } = b(x.fragment, A), I = x.getConnection(j), L = l(() => I.edges.map((e) => x.toRow(e.node)), [I.edges, x]), R = l(() => r(x.columns, {
40
- tApp: f,
41
- t: h
41
+ tApp: m,
42
+ t: v
42
43
  }), [
43
44
  x.columns,
44
- h,
45
- f
45
+ v,
46
+ m
46
47
  ]), z = c((e) => x.getRowId(e), [x]), { onRefresh: B } = a({
47
48
  refetch: F,
48
49
  variables: O,
49
50
  defaults: l(() => ({
50
51
  where: T ?? S.where,
51
52
  sort: S.sort,
52
- count: _,
53
+ count: g,
53
54
  cursor: null
54
55
  }), [
55
56
  S.sort,
56
57
  S.where,
57
58
  T
58
59
  ]),
59
- fetchPolicy: g,
60
+ fetchPolicy: h,
60
61
  buildQueryVariables: x.buildQueryVariables
61
62
  }), V = i({
62
63
  hasNext: N,
63
64
  isLoadingNext: P,
64
65
  loadNext: M,
65
- count: _
66
+ count: g
66
67
  });
67
- return /* @__PURE__ */ p(o, {
68
+ return /* @__PURE__ */ d(o, {
68
69
  config: n,
69
70
  state: C,
70
71
  pushState: (e) => {
@@ -83,27 +84,27 @@ var { useLazyLoadQuery: y, usePaginationFragment: b } = h, x = () => {
83
84
  });
84
85
  }, C = ({ title: t, relation: r, value: i }) => {
85
86
  let { t: a } = e(), o = n(l(() => [r.target], [r.target]));
86
- if (o.status === "loading") return /* @__PURE__ */ p(d, {
87
+ if (o.status === "loading") return /* @__PURE__ */ d(v, {
87
88
  rows: 6,
88
89
  ariaLabel: a("common.loading")
89
90
  });
90
- if (o.status === "error") return /* @__PURE__ */ p(f, {
91
+ if (o.status === "error") return /* @__PURE__ */ d(m, {
91
92
  tone: "warning",
92
93
  title: a("relations.unavailable.title"),
93
94
  children: a("relations.unavailable.description")
94
95
  });
95
96
  let s = o.modules[r.target]?.config;
96
- return s == null || s.list.kind === "records" ? null : /* @__PURE__ */ p(S, {
97
+ return s == null || s.list.kind === "records" ? null : /* @__PURE__ */ d(S, {
97
98
  title: t,
98
99
  config: s,
99
100
  relation: r,
100
101
  value: i
101
102
  });
102
- }, w = ({ title: e, relation: n, value: r }) => /* @__PURE__ */ p(t, {
103
- fallback: () => /* @__PURE__ */ p(x, {}),
104
- children: /* @__PURE__ */ p(s, {
105
- fallback: /* @__PURE__ */ p(x, {}),
106
- children: /* @__PURE__ */ p(C, {
103
+ }, w = ({ title: e, relation: n, value: r }) => /* @__PURE__ */ d(t, {
104
+ fallback: () => /* @__PURE__ */ d(x, {}),
105
+ children: /* @__PURE__ */ d(s, {
106
+ fallback: /* @__PURE__ */ d(x, {}),
107
+ children: /* @__PURE__ */ d(C, {
107
108
  title: e,
108
109
  relation: n,
109
110
  value: r