@plumile/backoffice-react 0.1.142 → 0.1.144

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 (230) hide show
  1. package/lib/esm/auth/AuthRefreshNotice.js.map +1 -1
  2. package/lib/esm/auth/TotpQrCode.js.map +1 -1
  3. package/lib/esm/auth/authRefreshNotice.css.js +1 -1
  4. package/lib/esm/auth/login/AuthPanel.js.map +1 -1
  5. package/lib/esm/auth/login/EmailCapturePanel.js.map +1 -1
  6. package/lib/esm/auth/login/LoginFlow.js.map +1 -1
  7. package/lib/esm/auth/login/MethodChooser.js.map +1 -1
  8. package/lib/esm/auth/login/MfaChallengeForm.js.map +1 -1
  9. package/lib/esm/auth/login/OidcButtons.js.map +1 -1
  10. package/lib/esm/auth/login/PasskeyLoginForm.js.map +1 -1
  11. package/lib/esm/auth/login/PasswordLoginPanel.js.map +1 -1
  12. package/lib/esm/auth/login/loginPage.css.js +1 -1
  13. package/lib/esm/auth/login/loginPage.css.js.map +1 -1
  14. package/lib/esm/auth/login/synchronizeAuthStatusQuery.js.map +1 -1
  15. package/lib/esm/auth/pages/AcceptInvitationScreen.js.map +1 -1
  16. package/lib/esm/auth/pages/PasswordResetCompleteScreen.js.map +1 -1
  17. package/lib/esm/auth/pages/PasswordResetRequestScreen.js.map +1 -1
  18. package/lib/esm/auth/pages/VerifyEmailScreen.js.map +1 -1
  19. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js +14 -14
  20. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js.map +1 -1
  21. package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js.map +1 -1
  22. package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js +1 -1
  23. package/lib/esm/components/backoffice/actions/toastViewAction.js.map +1 -1
  24. package/lib/esm/components/backoffice/billing/BackofficeBillingUsageChart.js +1 -1
  25. package/lib/esm/components/backoffice/billing/BackofficeBillingUsageChart.js.map +1 -1
  26. package/lib/esm/components/backoffice/billing/backofficeBillingUsageChart.css.js +1 -1
  27. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js.map +1 -1
  28. package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js.map +1 -1
  29. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js.map +1 -1
  30. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js.map +1 -1
  31. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js.map +1 -1
  32. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js.map +1 -1
  33. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js.map +1 -1
  34. package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js.map +1 -1
  35. package/lib/esm/components/backoffice/detail/BackofficeEntitySummaryHeader.js +6 -6
  36. package/lib/esm/components/backoffice/detail/BackofficeEntitySummaryHeader.js.map +1 -1
  37. package/lib/esm/components/backoffice/detail/BackofficeEnumLabel.js.map +1 -1
  38. package/lib/esm/components/backoffice/detail/BackofficeLifecycleTimelineSection.js.map +1 -1
  39. package/lib/esm/components/backoffice/detail/BackofficeReferenceValue.js.map +1 -1
  40. package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js +1 -1
  41. package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js.map +1 -1
  42. package/lib/esm/components/backoffice/detail/BackofficeStatusGroup.js.map +1 -1
  43. package/lib/esm/components/backoffice/detail/BackofficeStatusMetaBadge.js.map +1 -1
  44. package/lib/esm/components/backoffice/detail/BackofficeTokenUsageBreakdown.js.map +1 -1
  45. package/lib/esm/components/backoffice/detail/BackofficeUsageCostBreakdown.js +13 -13
  46. package/lib/esm/components/backoffice/detail/BackofficeUsageCostBreakdown.js.map +1 -1
  47. package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js +1 -1
  48. package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js +1 -1
  49. package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js +1 -1
  50. package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js +2 -1
  51. package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js +1 -1
  52. package/lib/esm/components/backoffice/detail/backofficeEntitySummaryHeader.css.js +1 -1
  53. package/lib/esm/components/backoffice/detail/backofficeRelationsSummaryGrid.css.js +1 -1
  54. package/lib/esm/components/backoffice/detail/backofficeUsageCostBreakdown.css.js +1 -1
  55. package/lib/esm/components/backoffice/detail/createBackofficeEntityLinkProps.js.map +1 -1
  56. package/lib/esm/components/backoffice/detail/detailPayloadUtils.js.map +1 -1
  57. package/lib/esm/components/backoffice/errors/BackofficeErrorBoundary.js.map +1 -1
  58. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js.map +1 -1
  59. package/lib/esm/components/backoffice/filters/DeferredFilterSearchInput.js.map +1 -1
  60. package/lib/esm/components/backoffice/filters/EntityFilterValue.js.map +1 -1
  61. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js +1 -1
  62. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js.map +1 -1
  63. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js +1 -1
  64. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js.map +1 -1
  65. package/lib/esm/components/backoffice/filters/deferredFilterSearchInput.css.js +1 -1
  66. package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js +1 -1
  67. package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js +5 -5
  68. package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js.map +1 -1
  69. package/lib/esm/components/backoffice/hub/backofficeHubTemplate.css.js +1 -1
  70. package/lib/esm/components/backoffice/layout/BackofficePermissionsContext.js.map +1 -1
  71. package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js +1 -1
  72. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js.map +1 -1
  73. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js +2 -2
  74. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js.map +1 -1
  75. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js.map +1 -1
  76. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js.map +1 -1
  77. package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js.map +1 -1
  78. package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js +1 -1
  79. package/lib/esm/components/backoffice/layout/breadcrumb/buildBreadcrumbs.js.map +1 -1
  80. package/lib/esm/components/backoffice/layout/buildSidebarSections.js.map +1 -1
  81. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js.map +1 -1
  82. package/lib/esm/components/backoffice/layout/sidebarUtils.js.map +1 -1
  83. package/lib/esm/components/backoffice/links/BackofficeInlineLink.js.map +1 -1
  84. package/lib/esm/components/backoffice/links/BackofficeLink.js.map +1 -1
  85. package/lib/esm/components/backoffice/links/BackofficeLinkContent.js +1 -1
  86. package/lib/esm/components/backoffice/links/BackofficeLinkContent.js.map +1 -1
  87. package/lib/esm/components/backoffice/links/BackofficeLinkLabel.js.map +1 -1
  88. package/lib/esm/components/backoffice/links/backofficeLink.css.js +1 -1
  89. package/lib/esm/components/backoffice/links/resolveBackofficeLink.js.map +1 -1
  90. package/lib/esm/components/backoffice/links/resolveBackofficeTargetIcon.js.map +1 -1
  91. package/lib/esm/components/backoffice/links/useBackofficeLink.js.map +1 -1
  92. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js +1 -1
  93. package/lib/esm/components/backoffice/list/RowFlagsCell.js.map +1 -1
  94. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js.map +1 -1
  95. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js +1 -1
  96. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js.map +1 -1
  97. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +1 -1
  98. package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js +1 -1
  99. package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js.map +1 -1
  100. package/lib/esm/components/backoffice/refs/BackofficeEntityLink.js.map +1 -1
  101. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js.map +1 -1
  102. package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js +1 -2
  103. package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js +1 -1
  104. package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js.map +1 -1
  105. package/lib/esm/components/backoffice/routing/BackofficeContentError.js.map +1 -1
  106. package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js.map +1 -1
  107. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js.map +1 -1
  108. package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js.map +1 -1
  109. package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js +1 -1
  110. package/lib/esm/components/backoffice/routing/backofficeContentError.css.js +1 -1
  111. package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js +1 -1
  112. package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js +1 -1
  113. package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js +1 -1
  114. package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js.map +1 -1
  115. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js.map +1 -1
  116. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js.map +1 -1
  117. package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js.map +1 -1
  118. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js.map +1 -1
  119. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js +1 -1
  120. package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js +1 -1
  121. package/lib/esm/components/backoffice/shared/BackofficeFilterableCell.js.map +1 -1
  122. package/lib/esm/components/backoffice/shared/BackofficeFormattedCurrency.js.map +1 -1
  123. package/lib/esm/components/backoffice/shared/BackofficeFormattedNumber.js.map +1 -1
  124. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js.map +1 -1
  125. package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js +5 -5
  126. package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js.map +1 -1
  127. package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js +1 -1
  128. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js +1 -1
  129. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js.map +1 -1
  130. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js.map +1 -1
  131. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js.map +1 -1
  132. package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js.map +1 -1
  133. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js +1 -1
  134. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js.map +1 -1
  135. package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js +1 -1
  136. package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js +1 -1
  137. package/lib/esm/components/backoffice/tools/parseToolJson.js.map +1 -1
  138. package/lib/esm/filters/filterHelpers.js.map +1 -1
  139. package/lib/esm/hooks/useAuth.js.map +1 -1
  140. package/lib/esm/hooks/useBackofficeAuth.js.map +1 -1
  141. package/lib/esm/hooks/useBackofficeInfiniteScrollSentinel.js.map +1 -1
  142. package/lib/esm/hooks/useBackofficeListRefetch.js.map +1 -1
  143. package/lib/esm/hooks/useBackofficeListUrlState.js.map +1 -1
  144. package/lib/esm/hooks/useBackofficeLoadMore.js.map +1 -1
  145. package/lib/esm/hooks/useBackofficeSessionAuth.js.map +1 -1
  146. package/lib/esm/hooks/useBackofficeSidebarPins.js.map +1 -1
  147. package/lib/esm/hooks/useConditionalSubscription.js.map +1 -1
  148. package/lib/esm/hooks/useCopyToClipboard.js.map +1 -1
  149. package/lib/esm/hooks/useInfiniteConnection.js.map +1 -1
  150. package/lib/esm/hooks/useRefetchNeededReload.js.map +1 -1
  151. package/lib/esm/hooks/useSidebarGroupCollapse.js.map +1 -1
  152. package/lib/esm/i18n/createI18nInstance.js.map +1 -1
  153. package/lib/esm/i18n/mergeResourceLanguages.js.map +1 -1
  154. package/lib/esm/i18n/resources.js.map +1 -1
  155. package/lib/esm/i18n/useBackofficeFormats.js.map +1 -1
  156. package/lib/esm/i18n/useBackofficeReactTranslation.js.map +1 -1
  157. package/lib/esm/i18n/useReviewStatusLabel.js.map +1 -1
  158. package/lib/esm/modules/base64.js.map +1 -1
  159. package/lib/esm/modules/formatFileSize.js.map +1 -1
  160. package/lib/esm/modules/webauthn.js.map +1 -1
  161. package/lib/esm/node_modules/@babel/runtime/helpers/arrayLikeToArray.js.map +1 -1
  162. package/lib/esm/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js.map +1 -1
  163. package/lib/esm/node_modules/@babel/runtime/helpers/defineProperty.js.map +1 -1
  164. package/lib/esm/node_modules/@babel/runtime/helpers/interopRequireDefault.js.map +1 -1
  165. package/lib/esm/node_modules/@babel/runtime/helpers/iterableToArray.js.map +1 -1
  166. package/lib/esm/node_modules/@babel/runtime/helpers/nonIterableSpread.js.map +1 -1
  167. package/lib/esm/node_modules/@babel/runtime/helpers/objectSpread2.js.map +1 -1
  168. package/lib/esm/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js.map +1 -1
  169. package/lib/esm/node_modules/@babel/runtime/helpers/toConsumableArray.js.map +1 -1
  170. package/lib/esm/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -1
  171. package/lib/esm/node_modules/@babel/runtime/helpers/toPropertyKey.js.map +1 -1
  172. package/lib/esm/node_modules/@babel/runtime/helpers/typeof.js.map +1 -1
  173. package/lib/esm/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -1
  174. package/lib/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js.map +1 -1
  175. package/lib/esm/node_modules/fbjs/lib/areEqual.js.map +1 -1
  176. package/lib/esm/node_modules/invariant/browser.js.map +1 -1
  177. package/lib/esm/node_modules/relay-test-utils/index.js.map +1 -1
  178. package/lib/esm/node_modules/relay-test-utils/lib/RelayMockPayloadGenerator.js.map +1 -1
  179. package/lib/esm/node_modules/relay-test-utils/lib/RelayModernMockEnvironment.js.map +1 -1
  180. package/lib/esm/node_modules/relay-test-utils/lib/RelayResolverTestUtils.js.map +1 -1
  181. package/lib/esm/node_modules/relay-test-utils/lib/index.js.map +1 -1
  182. package/lib/esm/node_modules/relay-test-utils/lib/unwrapContainer.js.map +1 -1
  183. package/lib/esm/pages/BackofficeAcceptInvitationPage.js.map +1 -1
  184. package/lib/esm/pages/BackofficeDashboardPage.helpers.js.map +1 -1
  185. package/lib/esm/pages/BackofficeDashboardPage.js.map +1 -1
  186. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +1 -1
  187. package/lib/esm/pages/BackofficeEntityDetailPage.helpers.js.map +1 -1
  188. package/lib/esm/pages/BackofficeEntityDetailPage.js +2 -2
  189. package/lib/esm/pages/BackofficeEntityDetailPage.js.map +1 -1
  190. package/lib/esm/pages/BackofficeEntityDetailPage.view-helpers.js.map +1 -1
  191. package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js.map +1 -1
  192. package/lib/esm/pages/BackofficeEntityListPage.helpers.js.map +1 -1
  193. package/lib/esm/pages/BackofficeEntityListPage.js.map +1 -1
  194. package/lib/esm/pages/BackofficeHubPage.js.map +1 -1
  195. package/lib/esm/pages/BackofficeLayoutPage.js.map +1 -1
  196. package/lib/esm/pages/BackofficeLoginPage.js.map +1 -1
  197. package/lib/esm/pages/BackofficePasswordResetCompletePage.js.map +1 -1
  198. package/lib/esm/pages/BackofficePasswordResetRequestPage.js.map +1 -1
  199. package/lib/esm/pages/BackofficeVerifyEmailPage.js.map +1 -1
  200. package/lib/esm/pages/backofficeDashboardPage.css.js +1 -1
  201. package/lib/esm/pages/backofficeEntityDetailPage.css.js +1 -1
  202. package/lib/esm/pages/backofficeEntityListPage.css.js +1 -1
  203. package/lib/esm/pages/detail/BackofficeEntityDetailLayoutContext.js.map +1 -1
  204. package/lib/esm/pages/detail/buildTabsItems.js.map +1 -1
  205. package/lib/esm/pages/detail/pageResolution.js.map +1 -1
  206. package/lib/esm/provider/BackofficeConfigContext.js.map +1 -1
  207. package/lib/esm/provider/BackofficeProvider.js.map +1 -1
  208. package/lib/esm/provider/dashboardRegistrations.js.map +1 -1
  209. package/lib/esm/provider/entityRegistry.js.map +1 -1
  210. package/lib/esm/provider/lazyValue.js.map +1 -1
  211. package/lib/esm/provider/useBackofficeEntityLoader.js.map +1 -1
  212. package/lib/esm/provider/useBackofficeLazyValue.js.map +1 -1
  213. package/lib/esm/relay/RelayProvider.js.map +1 -1
  214. package/lib/esm/relay/connectionUtils.js.map +1 -1
  215. package/lib/esm/relay/createInlineReader.js.map +1 -1
  216. package/lib/esm/relay/envHelpers.js.map +1 -1
  217. package/lib/esm/relay/environment.js.map +1 -1
  218. package/lib/esm/relay/mutationResult.js.map +1 -1
  219. package/lib/esm/router/backofficeAuthPaths.js.map +1 -1
  220. package/lib/esm/router/createBackofficeRoutes.js.map +1 -1
  221. package/lib/esm/storybook/relay/RelayStory.css.js +1 -1
  222. package/lib/esm/storybook/relay/RelayStory.js.map +1 -1
  223. package/lib/esm/storybook/relay/mockResolvers.js.map +1 -1
  224. package/lib/esm/style.css +1 -1
  225. package/lib/esm/subscriptions/useCursorResumableSubscription.js.map +1 -1
  226. package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.stories.d.ts +1 -1
  227. package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.stories.d.ts.map +1 -1
  228. package/lib/types/components/backoffice/overview/backofficeOverviewLayout.css.d.ts.map +1 -1
  229. package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts.map +1 -1
  230. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntitySummaryHeader.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeEntitySummaryHeader.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { Button } from '@plumile/ui/atomic/atoms/button/Button.js';\nimport { CopyableText } from '@plumile/ui/backoffice/atoms/copyable_text/CopyableText.js';\nimport { Tag } from '@plumile/ui/backoffice/atoms/tag/Tag.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport {\n BackofficeStatusMetaBadge,\n type BackofficeStatusMetaTone,\n} from './BackofficeStatusMetaBadge.js';\nimport * as styles from './backofficeEntitySummaryHeader.css.js';\n\nexport type BackofficeEntitySummaryHeaderTone = BackofficeStatusMetaTone;\n\nexport type BackofficeEntitySummaryHeaderMetaItem = {\n readonly id: string;\n readonly label: string;\n readonly value: ReactNode;\n readonly copyValue?: string;\n readonly tone?: BackofficeEntitySummaryHeaderTone;\n};\n\nexport type BackofficeEntitySummaryHeaderAction = {\n readonly id: string;\n readonly label: string;\n readonly icon?: ReactNode;\n readonly disabled?: boolean;\n readonly loading?: boolean;\n readonly tone?: 'neutral' | 'primary' | 'danger';\n readonly onPress: () => void;\n};\n\nexport type BackofficeEntitySummaryHeaderProps = {\n readonly title: ReactNode;\n readonly entityLabel: string;\n readonly subtitle?: ReactNode;\n readonly status?: {\n readonly label: string;\n readonly tone: BackofficeEntitySummaryHeaderTone;\n };\n readonly meta?: readonly BackofficeEntitySummaryHeaderMetaItem[];\n readonly primaryActions?: readonly BackofficeEntitySummaryHeaderAction[];\n readonly secondaryActions?: readonly BackofficeEntitySummaryHeaderAction[];\n};\n\nconst resolveActionVariant = (\n tone: BackofficeEntitySummaryHeaderAction['tone'],\n): 'primary' | 'secondary' | 'danger' => {\n if (tone === 'danger') {\n return 'danger';\n }\n if (tone === 'neutral') {\n return 'secondary';\n }\n return 'primary';\n};\n\nconst renderAction = (\n action: BackofficeEntitySummaryHeaderAction,\n): JSX.Element => {\n return (\n <Button\n key={action.id}\n type=\"button\"\n variant={resolveActionVariant(action.tone)}\n size=\"small\"\n leftIcon={action.icon}\n disabled={action.disabled}\n isLoading={action.loading}\n onClick={action.onPress}\n >\n {action.label}\n </Button>\n );\n};\n\nexport const BackofficeEntitySummaryHeader = ({\n title,\n entityLabel,\n subtitle,\n status,\n meta,\n primaryActions,\n secondaryActions,\n}: BackofficeEntitySummaryHeaderProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const actions = [...(primaryActions ?? []), ...(secondaryActions ?? [])];\n\n return (\n <header className={styles.root}>\n <div className={styles.top}>\n <div className={styles.identity}>\n <div className={styles.titleRow}>\n <h1 className={styles.title}>{title}</h1>\n <Tag tone=\"neutral\">{entityLabel}</Tag>\n {status != null && <BackofficeStatusMetaBadge status={status} />}\n </div>\n {subtitle != null && (\n <div className={styles.subtitle}>{subtitle}</div>\n )}\n </div>\n {actions.length > 0 && (\n <div className={styles.actions}>{actions.map(renderAction)}</div>\n )}\n </div>\n {meta != null && meta.length > 0 && (\n <div className={styles.meta}>\n {meta.map((item) => {\n let valueNode = item.value;\n if (item.copyValue != null && item.copyValue !== '') {\n valueNode = (\n <CopyableText\n value={item.copyValue}\n copyValue={item.copyValue}\n truncate={false}\n copyLabel={t('common.actions.copy')}\n copiedLabel={t('common.actions.copied')}\n />\n );\n }\n\n return (\n <div key={item.id} className={styles.metaItem}>\n <span className={styles.metaLabel}>{item.label}</span>\n <span className={styles.metaValue}>{valueNode}</span>\n </div>\n );\n })}\n </div>\n )}\n </header>\n );\n};\n\nexport default BackofficeEntitySummaryHeader;\n"],"mappings":";;;;;;;;AA6CA,IAAM,KACJ,MAEI,MAAS,WACJ,WAEL,MAAS,YACJ,cAEF,WAGH,KACJ,MAGE,kBAAC,GAAD;CAEE,MAAK;CACL,SAAS,EAAqB,EAAO,KAAK;CAC1C,MAAK;CACL,UAAU,EAAO;CACjB,UAAU,EAAO;CACjB,WAAW,EAAO;CAClB,SAAS,EAAO;WAEf,EAAO;CACD,EAVF,EAAO,GAUL,EAIA,KAAiC,EAC5C,OAAA,GACA,gBACA,UAAA,GACA,WACA,MAAA,GACA,mBACA,0BACqD;CACrD,IAAM,EAAE,SAAM,GAA+B,EACvC,IAAU,CAAC,GAAI,KAAkB,EAAE,EAAG,GAAI,KAAoB,EAAE,CAAE;CAExE,OACE,kBAAC,UAAD;EAAQ,WAAW;YAAnB,CACE,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACE,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACE,kBAAC,OAAD;KAAK,WAAW;eAAhB;MACE,kBAAC,MAAD;OAAI,WAAW;iBAAe;OAAW,CAAA;MACzC,kBAAC,GAAD;OAAK,MAAK;iBAAW;OAAkB,CAAA;MACtC,KAAU,QAAQ,kBAAC,GAAD,EAAmC,WAAU,CAAA;MAC5D;QACL,KAAY,QACX,kBAAC,OAAD;KAAK,WAAW;eAAkB;KAAe,CAAA,CAE/C;OACL,EAAQ,SAAS,KAChB,kBAAC,OAAD;IAAK,WAAW;cAAiB,EAAQ,IAAI,EAAa;IAAO,CAAA,CAE/D;MACL,KAAQ,QAAQ,EAAK,SAAS,KAC7B,kBAAC,OAAD;GAAK,WAAW;aACb,EAAK,KAAK,MAAS;IAClB,IAAI,IAAY,EAAK;IAarB,OAZI,EAAK,aAAa,QAAQ,EAAK,cAAc,OAC/C,IACE,kBAAC,GAAD;KACE,OAAO,EAAK;KACZ,WAAW,EAAK;KAChB,UAAU;KACV,WAAW,EAAE,sBAAsB;KACnC,aAAa,EAAE,wBAAwB;KACvC,CAAA,GAKJ,kBAAC,OAAD;KAAmB,WAAW;eAA9B,CACE,kBAAC,QAAD;MAAM,WAAW;gBAAmB,EAAK;MAAa,CAAA,EACtD,kBAAC,QAAD;MAAM,WAAW;gBAAmB;MAAiB,CAAA,CACjD;OAHI,EAAK,GAGT;KAER;GACE,CAAA,CAED"}
1
+ {"version":3,"file":"BackofficeEntitySummaryHeader.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeEntitySummaryHeader.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { Button } from '@plumile/ui/atomic/atoms/button/Button.js';\nimport { CopyableText } from '@plumile/ui/backoffice/atoms/copyable_text/CopyableText.js';\nimport { Tag } from '@plumile/ui/backoffice/atoms/tag/Tag.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport {\n BackofficeStatusMetaBadge,\n type BackofficeStatusMetaTone,\n} from './BackofficeStatusMetaBadge.js';\nimport * as styles from './backofficeEntitySummaryHeader.css.js';\n\nexport type BackofficeEntitySummaryHeaderTone = BackofficeStatusMetaTone;\n\nexport type BackofficeEntitySummaryHeaderMetaItem = {\n readonly id: string;\n readonly label: string;\n readonly value: ReactNode;\n readonly copyValue?: string;\n readonly tone?: BackofficeEntitySummaryHeaderTone;\n};\n\nexport type BackofficeEntitySummaryHeaderAction = {\n readonly id: string;\n readonly label: string;\n readonly icon?: ReactNode;\n readonly disabled?: boolean;\n readonly loading?: boolean;\n readonly tone?: 'neutral' | 'primary' | 'danger';\n readonly onPress: () => void;\n};\n\nexport type BackofficeEntitySummaryHeaderProps = {\n readonly title: ReactNode;\n readonly entityLabel: string;\n readonly subtitle?: ReactNode;\n readonly status?: {\n readonly label: string;\n readonly tone: BackofficeEntitySummaryHeaderTone;\n };\n readonly meta?: readonly BackofficeEntitySummaryHeaderMetaItem[];\n readonly primaryActions?: readonly BackofficeEntitySummaryHeaderAction[];\n readonly secondaryActions?: readonly BackofficeEntitySummaryHeaderAction[];\n};\n\nconst resolveActionVariant = (\n tone: BackofficeEntitySummaryHeaderAction['tone'],\n): 'primary' | 'secondary' | 'danger' => {\n if (tone === 'danger') {\n return 'danger';\n }\n if (tone === 'neutral') {\n return 'secondary';\n }\n return 'primary';\n};\n\nconst renderAction = (\n action: BackofficeEntitySummaryHeaderAction,\n): JSX.Element => {\n return (\n <Button\n key={action.id}\n type=\"button\"\n variant={resolveActionVariant(action.tone)}\n size=\"small\"\n leftIcon={action.icon}\n disabled={action.disabled}\n isLoading={action.loading}\n onClick={action.onPress}\n >\n {action.label}\n </Button>\n );\n};\n\nexport const BackofficeEntitySummaryHeader = ({\n title,\n entityLabel,\n subtitle,\n status,\n meta,\n primaryActions,\n secondaryActions,\n}: BackofficeEntitySummaryHeaderProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const actions = [...(primaryActions ?? []), ...(secondaryActions ?? [])];\n\n return (\n <header className={styles.root}>\n <div className={styles.top}>\n <div className={styles.identity}>\n <div className={styles.titleRow}>\n <h1 className={styles.title}>{title}</h1>\n <Tag tone=\"neutral\">{entityLabel}</Tag>\n {status != null && <BackofficeStatusMetaBadge status={status} />}\n </div>\n {subtitle != null && (\n <div className={styles.subtitle}>{subtitle}</div>\n )}\n </div>\n {actions.length > 0 && (\n <div className={styles.actions}>{actions.map(renderAction)}</div>\n )}\n </div>\n {meta != null && meta.length > 0 && (\n <div className={styles.meta}>\n {meta.map((item) => {\n let valueNode = item.value;\n if (item.copyValue != null && item.copyValue !== '') {\n valueNode = (\n <CopyableText\n value={item.copyValue}\n copyValue={item.copyValue}\n truncate={false}\n copyLabel={t('common.actions.copy')}\n copiedLabel={t('common.actions.copied')}\n />\n );\n }\n\n return (\n <div key={item.id} className={styles.metaItem}>\n <span className={styles.metaLabel}>{item.label}</span>\n <span className={styles.metaValue}>{valueNode}</span>\n </div>\n );\n })}\n </div>\n )}\n </header>\n );\n};\n\nexport default BackofficeEntitySummaryHeader;\n"],"mappings":";;;;;;;;AA6CA,IAAM,KACJ,MAEI,MAAS,WACJ,WAEL,MAAS,YACJ,cAEF,WAGH,KACJ,MAGE,kBAAC,GAAD;CAEE,MAAK;CACL,SAAS,EAAqB,EAAO,IAAI;CACzC,MAAK;CACL,UAAU,EAAO;CACjB,UAAU,EAAO;CACjB,WAAW,EAAO;CAClB,SAAS,EAAO;WAEf,EAAO;AACF,GAVD,EAAO,EAUN,GAIC,KAAiC,EAC5C,OAAA,GACA,gBACA,UAAA,GACA,WACA,MAAA,GACA,mBACA,0BACqD;CACrD,IAAM,EAAE,SAAM,EAA8B,GACtC,IAAU,CAAC,GAAI,KAAkB,CAAC,GAAI,GAAI,KAAoB,CAAC,CAAE;CAEvE,OACE,kBAAC,UAAD;EAAQ,WAAW;YAAnB,CACE,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACE,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACE,kBAAC,OAAD;KAAK,WAAW;eAAhB;MACE,kBAAC,MAAD;OAAI,WAAW;iBAAe;MAAU,CAAA;MACxC,kBAAC,GAAD;OAAK,MAAK;iBAAW;MAAiB,CAAA;MACrC,KAAU,QAAQ,kBAAC,GAAD,EAAmC,UAAS,CAAA;KAC5D;QACJ,KAAY,QACX,kBAAC,OAAD;KAAK,WAAW;eAAkB;IAAc,CAAA,CAE/C;OACJ,EAAQ,SAAS,KAChB,kBAAC,OAAD;IAAK,WAAW;cAAiB,EAAQ,IAAI,CAAY;GAAO,CAAA,CAE/D;MACJ,KAAQ,QAAQ,EAAK,SAAS,KAC7B,kBAAC,OAAD;GAAK,WAAW;aACb,EAAK,KAAK,MAAS;IAClB,IAAI,IAAY,EAAK;IAarB,OAZI,EAAK,aAAa,QAAQ,EAAK,cAAc,OAC/C,IACE,kBAAC,GAAD;KACE,OAAO,EAAK;KACZ,WAAW,EAAK;KAChB,UAAU;KACV,WAAW,EAAE,qBAAqB;KAClC,aAAa,EAAE,uBAAuB;IACvC,CAAA,IAKH,kBAAC,OAAD;KAAmB,WAAW;eAA9B,CACE,kBAAC,QAAD;MAAM,WAAW;gBAAmB,EAAK;KAAY,CAAA,GACrD,kBAAC,QAAD;MAAM,WAAW;gBAAmB;KAAgB,CAAA,CACjD;OAHK,EAAK,EAGV;GAET,CAAC;EACE,CAAA,CAED;;AAEZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEnumLabel.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeEnumLabel.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { BackofficeEnumLabel as UiBackofficeEnumLabel } from '@plumile/ui/backoffice/molecules/backoffice_enum_label/BackofficeEnumLabel.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nexport type BackofficeEnumLabelProps<TValue extends string> = {\n readonly value: TValue | null | undefined;\n readonly getLabel: (value: TValue) => string;\n readonly emptyLabel?: string;\n};\n\nexport const BackofficeEnumLabel = <TValue extends string>({\n value,\n getLabel,\n emptyLabel,\n}: BackofficeEnumLabelProps<TValue>): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n\n return (\n <UiBackofficeEnumLabel\n value={value}\n getLabel={getLabel}\n emptyLabel={emptyLabel ?? t('common.notAvailable')}\n />\n );\n};\n\nexport default BackofficeEnumLabel;\n"],"mappings":";;;;AAWA,IAAa,KAA8C,EACzD,UACA,aACA,oBACmD;CACnD,IAAM,EAAE,SAAM,GAA+B;CAE7C,OACE,kBAAC,GAAD;EACS;EACG;EACV,YAAY,KAAc,EAAE,sBAAsB;EAClD,CAAA"}
1
+ {"version":3,"file":"BackofficeEnumLabel.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeEnumLabel.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { BackofficeEnumLabel as UiBackofficeEnumLabel } from '@plumile/ui/backoffice/molecules/backoffice_enum_label/BackofficeEnumLabel.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nexport type BackofficeEnumLabelProps<TValue extends string> = {\n readonly value: TValue | null | undefined;\n readonly getLabel: (value: TValue) => string;\n readonly emptyLabel?: string;\n};\n\nexport const BackofficeEnumLabel = <TValue extends string>({\n value,\n getLabel,\n emptyLabel,\n}: BackofficeEnumLabelProps<TValue>): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n\n return (\n <UiBackofficeEnumLabel\n value={value}\n getLabel={getLabel}\n emptyLabel={emptyLabel ?? t('common.notAvailable')}\n />\n );\n};\n\nexport default BackofficeEnumLabel;\n"],"mappings":";;;;AAWA,IAAa,KAA8C,EACzD,UACA,aACA,oBACmD;CACnD,IAAM,EAAE,SAAM,EAA8B;CAE5C,OACE,kBAAC,GAAD;EACS;EACG;EACV,YAAY,KAAc,EAAE,qBAAqB;CAClD,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeLifecycleTimelineSection.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeLifecycleTimelineSection.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { BackofficeDetailSection } from '@plumile/ui/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.js';\nimport { AuditTimeline } from '@plumile/ui/backoffice/organisms/audit_timeline/AuditTimeline.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nexport type BackofficeLifecycleEventTone =\n | 'neutral'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger';\n\nexport type BackofficeLifecycleEvent = {\n readonly id: string;\n readonly label: string;\n readonly timestamp?: ReactNode;\n readonly description?: ReactNode;\n readonly actor?: ReactNode;\n readonly tone?: BackofficeLifecycleEventTone;\n readonly payload?: ReactNode;\n};\n\nexport type BackofficeLifecycleTimelineSectionProps = {\n readonly title: string;\n readonly description?: string;\n readonly events: readonly BackofficeLifecycleEvent[];\n readonly emptyLabel?: string;\n};\n\nexport const BackofficeLifecycleTimelineSection = ({\n title,\n description,\n events,\n emptyLabel,\n}: BackofficeLifecycleTimelineSectionProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n\n if (events.length === 0) {\n return (\n <BackofficeDetailSection title={title} description={description}>\n {emptyLabel ?? t('common.notAvailable')}\n </BackofficeDetailSection>\n );\n }\n\n return (\n <BackofficeDetailSection title={title} description={description}>\n <AuditTimeline\n events={events.map((event) => {\n return {\n id: event.id,\n title: event.label,\n time: event.timestamp,\n description: event.description,\n actor: event.actor,\n details: event.payload,\n tone: event.tone,\n };\n })}\n />\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeLifecycleTimelineSection;\n"],"mappings":";;;;;AA8BA,IAAa,KAAsC,EACjD,UACA,gBACA,WACA,oBAC0D;CAC1D,IAAM,EAAE,SAAM,GAA+B;CAU7C,OARI,EAAO,WAAW,IAElB,kBAAC,GAAD;EAAgC;EAAoB;YACjD,KAAc,EAAE,sBAAsB;EACf,CAAA,GAK5B,kBAAC,GAAD;EAAgC;EAAoB;YAClD,kBAAC,GAAD,EACE,QAAQ,EAAO,KAAK,OACX;GACL,IAAI,EAAM;GACV,OAAO,EAAM;GACb,MAAM,EAAM;GACZ,aAAa,EAAM;GACnB,OAAO,EAAM;GACb,SAAS,EAAM;GACf,MAAM,EAAM;GACb,EACD,EACF,CAAA;EACsB,CAAA"}
1
+ {"version":3,"file":"BackofficeLifecycleTimelineSection.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeLifecycleTimelineSection.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { BackofficeDetailSection } from '@plumile/ui/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.js';\nimport { AuditTimeline } from '@plumile/ui/backoffice/organisms/audit_timeline/AuditTimeline.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nexport type BackofficeLifecycleEventTone =\n | 'neutral'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger';\n\nexport type BackofficeLifecycleEvent = {\n readonly id: string;\n readonly label: string;\n readonly timestamp?: ReactNode;\n readonly description?: ReactNode;\n readonly actor?: ReactNode;\n readonly tone?: BackofficeLifecycleEventTone;\n readonly payload?: ReactNode;\n};\n\nexport type BackofficeLifecycleTimelineSectionProps = {\n readonly title: string;\n readonly description?: string;\n readonly events: readonly BackofficeLifecycleEvent[];\n readonly emptyLabel?: string;\n};\n\nexport const BackofficeLifecycleTimelineSection = ({\n title,\n description,\n events,\n emptyLabel,\n}: BackofficeLifecycleTimelineSectionProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n\n if (events.length === 0) {\n return (\n <BackofficeDetailSection title={title} description={description}>\n {emptyLabel ?? t('common.notAvailable')}\n </BackofficeDetailSection>\n );\n }\n\n return (\n <BackofficeDetailSection title={title} description={description}>\n <AuditTimeline\n events={events.map((event) => {\n return {\n id: event.id,\n title: event.label,\n time: event.timestamp,\n description: event.description,\n actor: event.actor,\n details: event.payload,\n tone: event.tone,\n };\n })}\n />\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeLifecycleTimelineSection;\n"],"mappings":";;;;;AA8BA,IAAa,KAAsC,EACjD,UACA,gBACA,WACA,oBAC0D;CAC1D,IAAM,EAAE,SAAM,EAA8B;CAU5C,OARI,EAAO,WAAW,IAElB,kBAAC,GAAD;EAAgC;EAAoB;YACjD,KAAc,EAAE,qBAAqB;CACf,CAAA,IAK3B,kBAAC,GAAD;EAAgC;EAAoB;YAClD,kBAAC,GAAD,EACE,QAAQ,EAAO,KAAK,OACX;GACL,IAAI,EAAM;GACV,OAAO,EAAM;GACb,MAAM,EAAM;GACZ,aAAa,EAAM;GACnB,OAAO,EAAM;GACb,SAAS,EAAM;GACf,MAAM,EAAM;EACd,EACD,EACF,CAAA;CACsB,CAAA;AAE7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeReferenceValue.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeReferenceValue.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { BackofficeReferenceValue as UiBackofficeReferenceValue } from '@plumile/ui/backoffice/molecules/backoffice_reference_value/BackofficeReferenceValue.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nexport type BackofficeReferenceValueProps = {\n readonly kind: string;\n readonly value: ReactNode | null | undefined;\n readonly emptyLabel?: string;\n readonly className?: string;\n};\n\nexport const BackofficeReferenceValue = ({\n kind,\n value,\n emptyLabel,\n className,\n}: BackofficeReferenceValueProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n\n return (\n <UiBackofficeReferenceValue\n kind={kind}\n value={value}\n emptyLabel={emptyLabel ?? t('common.notAvailable')}\n className={className}\n />\n );\n};\n\nexport default BackofficeReferenceValue;\n"],"mappings":";;;;AAYA,IAAa,KAA4B,EACvC,SACA,UACA,eACA,mBACgD;CAChD,IAAM,EAAE,SAAM,GAA+B;CAE7C,OACE,kBAAC,GAAD;EACQ;EACC;EACP,YAAY,KAAc,EAAE,sBAAsB;EACvC;EACX,CAAA"}
1
+ {"version":3,"file":"BackofficeReferenceValue.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeReferenceValue.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { BackofficeReferenceValue as UiBackofficeReferenceValue } from '@plumile/ui/backoffice/molecules/backoffice_reference_value/BackofficeReferenceValue.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nexport type BackofficeReferenceValueProps = {\n readonly kind: string;\n readonly value: ReactNode | null | undefined;\n readonly emptyLabel?: string;\n readonly className?: string;\n};\n\nexport const BackofficeReferenceValue = ({\n kind,\n value,\n emptyLabel,\n className,\n}: BackofficeReferenceValueProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n\n return (\n <UiBackofficeReferenceValue\n kind={kind}\n value={value}\n emptyLabel={emptyLabel ?? t('common.notAvailable')}\n className={className}\n />\n );\n};\n\nexport default BackofficeReferenceValue;\n"],"mappings":";;;;AAYA,IAAa,KAA4B,EACvC,SACA,UACA,eACA,mBACgD;CAChD,IAAM,EAAE,SAAM,EAA8B;CAE5C,OACE,kBAAC,GAAD;EACQ;EACC;EACP,YAAY,KAAc,EAAE,qBAAqB;EACtC;CACZ,CAAA;AAEL"}
@@ -21,7 +21,7 @@ var u = ({ title: u, items: d }) => {
21
21
  children: n
22
22
  }),
23
23
  e.description != null && /* @__PURE__ */ o("span", {
24
- className: "txvbqb9j txvbqb19cb txvbqbutu",
24
+ className: "txvbqb9j txvbqb1b17 txvbqbwdt",
25
25
  children: e.description
26
26
  })
27
27
  ] });
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeRelationsSummaryGrid.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeRelationsSummaryGrid.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport Link from '@plumile/router/routing/Link.js';\nimport { BackofficeDetailSection } from '@plumile/ui/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.js';\nimport type { MetricTone } from '@plumile/ui/components/dashboard/metric_card/MetricCard.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport * as styles from './backofficeRelationsSummaryGrid.css.js';\n\nexport type BackofficeRelationSummaryItem = {\n readonly id: string;\n readonly label: string;\n readonly count?: number | null;\n readonly href?: string;\n readonly description?: ReactNode;\n readonly tone?: MetricTone;\n};\n\nexport type BackofficeRelationsSummaryGridProps = {\n readonly title: string;\n readonly items: readonly BackofficeRelationSummaryItem[];\n};\n\nexport const BackofficeRelationsSummaryGrid = ({\n title,\n items,\n}: BackofficeRelationsSummaryGridProps): JSX.Element | null => {\n const { t } = useBackofficeReactTranslation();\n\n if (items.length === 0) {\n return null;\n }\n\n return (\n <BackofficeDetailSection title={title}>\n <div className={styles.grid}>\n {items.map((item) => {\n const countNode = item.count ?? t('common.notAvailable');\n const content = (\n <>\n <span className={styles.label}>{item.label}</span>\n <span className={styles.count}>{countNode}</span>\n {item.description != null && (\n <span className={styles.description}>{item.description}</span>\n )}\n </>\n );\n\n if (item.href == null) {\n return (\n <div className={styles.item} key={item.id}>\n {content}\n </div>\n );\n }\n\n return (\n <Link className={styles.item} key={item.id} to={item.href}>\n {content}\n </Link>\n );\n })}\n </div>\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeRelationsSummaryGrid;\n"],"mappings":";;;;;;AAsBA,IAAa,KAAkC,EAC7C,UACA,eAC6D;CAC7D,IAAM,EAAE,SAAM,GAA+B;CAM7C,OAJI,EAAM,WAAW,IACZ,OAIP,kBAAC,GAAD;EAAgC;YAC9B,kBAAC,OAAD;GAAK,WAAW;aACb,EAAM,KAAK,MAAS;IACnB,IAAM,IAAY,EAAK,SAAS,EAAE,sBAAsB,EAClD,IACJ,kBAAA,GAAA,EAAA,UAAA;KACE,kBAAC,QAAD;MAAM,WAAW;gBAAe,EAAK;MAAa,CAAA;KAClD,kBAAC,QAAD;MAAM,WAAW;gBAAe;MAAiB,CAAA;KAChD,EAAK,eAAe,QACnB,kBAAC,QAAD;MAAM,WAAW;gBAAqB,EAAK;MAAmB,CAAA;KAE/D,EAAA,CAAA;IAWL,OARI,EAAK,QAAQ,OAEb,kBAAC,OAAD;KAAK,WAAW;eACb;KACG,EAF4B,EAAK,GAEjC,GAKR,kBAAC,GAAD;KAAM,WAAW;KAA2B,IAAI,EAAK;eAClD;KACI,EAF4B,EAAK,GAEjC;KAET;GACE,CAAA;EACkB,CAAA"}
1
+ {"version":3,"file":"BackofficeRelationsSummaryGrid.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeRelationsSummaryGrid.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport Link from '@plumile/router/routing/Link.js';\nimport { BackofficeDetailSection } from '@plumile/ui/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.js';\nimport type { MetricTone } from '@plumile/ui/components/dashboard/metric_card/MetricCard.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport * as styles from './backofficeRelationsSummaryGrid.css.js';\n\nexport type BackofficeRelationSummaryItem = {\n readonly id: string;\n readonly label: string;\n readonly count?: number | null;\n readonly href?: string;\n readonly description?: ReactNode;\n readonly tone?: MetricTone;\n};\n\nexport type BackofficeRelationsSummaryGridProps = {\n readonly title: string;\n readonly items: readonly BackofficeRelationSummaryItem[];\n};\n\nexport const BackofficeRelationsSummaryGrid = ({\n title,\n items,\n}: BackofficeRelationsSummaryGridProps): JSX.Element | null => {\n const { t } = useBackofficeReactTranslation();\n\n if (items.length === 0) {\n return null;\n }\n\n return (\n <BackofficeDetailSection title={title}>\n <div className={styles.grid}>\n {items.map((item) => {\n const countNode = item.count ?? t('common.notAvailable');\n const content = (\n <>\n <span className={styles.label}>{item.label}</span>\n <span className={styles.count}>{countNode}</span>\n {item.description != null && (\n <span className={styles.description}>{item.description}</span>\n )}\n </>\n );\n\n if (item.href == null) {\n return (\n <div className={styles.item} key={item.id}>\n {content}\n </div>\n );\n }\n\n return (\n <Link className={styles.item} key={item.id} to={item.href}>\n {content}\n </Link>\n );\n })}\n </div>\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeRelationsSummaryGrid;\n"],"mappings":";;;;;;AAsBA,IAAa,KAAkC,EAC7C,UACA,eAC6D;CAC7D,IAAM,EAAE,SAAM,EAA8B;CAM5C,OAJI,EAAM,WAAW,IACZ,OAIP,kBAAC,GAAD;EAAgC;YAC9B,kBAAC,OAAD;GAAK,WAAW;aACb,EAAM,KAAK,MAAS;IACnB,IAAM,IAAY,EAAK,SAAS,EAAE,qBAAqB,GACjD,IACJ,kBAAA,GAAA,EAAA,UAAA;KACE,kBAAC,QAAD;MAAM,WAAW;gBAAe,EAAK;KAAY,CAAA;KACjD,kBAAC,QAAD;MAAM,WAAW;gBAAe;KAAgB,CAAA;KAC/C,EAAK,eAAe,QACnB,kBAAC,QAAD;MAAM,WAAW;gBAAqB,EAAK;KAAkB,CAAA;IAE/D,EAAA,CAAA;IAWJ,OARI,EAAK,QAAQ,OAEb,kBAAC,OAAD;KAAK,WAAW;eACb;IACE,GAF6B,EAAK,EAElC,IAKP,kBAAC,GAAD;KAAM,WAAW;KAA2B,IAAI,EAAK;eAClD;IACG,GAF6B,EAAK,EAElC;GAEV,CAAC;EACE,CAAA;CACkB,CAAA;AAE7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeStatusGroup.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeStatusGroup.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { BackofficeStatusGroup as UiBackofficeStatusGroup } from '@plumile/ui/backoffice/molecules/backoffice_status_group/BackofficeStatusGroup.js';\n\nimport { type BackofficeStatusMeta } from './BackofficeStatusMetaBadge.js';\n\nexport type BackofficeStatusGroupProps = {\n readonly statuses: readonly BackofficeStatusMeta[];\n};\n\nexport const BackofficeStatusGroup = ({\n statuses,\n}: BackofficeStatusGroupProps): JSX.Element => {\n return <UiBackofficeStatusGroup statuses={statuses} />;\n};\n\nexport default BackofficeStatusGroup;\n"],"mappings":";;;AASA,IAAa,KAAyB,EACpC,kBAEO,kBAAC,GAAD,EAAmC,aAAY,CAAA"}
1
+ {"version":3,"file":"BackofficeStatusGroup.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeStatusGroup.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { BackofficeStatusGroup as UiBackofficeStatusGroup } from '@plumile/ui/backoffice/molecules/backoffice_status_group/BackofficeStatusGroup.js';\n\nimport { type BackofficeStatusMeta } from './BackofficeStatusMetaBadge.js';\n\nexport type BackofficeStatusGroupProps = {\n readonly statuses: readonly BackofficeStatusMeta[];\n};\n\nexport const BackofficeStatusGroup = ({\n statuses,\n}: BackofficeStatusGroupProps): JSX.Element => {\n return <UiBackofficeStatusGroup statuses={statuses} />;\n};\n\nexport default BackofficeStatusGroup;\n"],"mappings":";;;AASA,IAAa,KAAyB,EACpC,kBAEO,kBAAC,GAAD,EAAmC,YAAW,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeStatusMetaBadge.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeStatusMetaBadge.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport {\n BackofficeStatusMetaBadge as UiBackofficeStatusMetaBadge,\n type BackofficeStatusMeta,\n type BackofficeStatusMetaTone,\n} from '@plumile/ui/backoffice/molecules/backoffice_status_meta_badge/BackofficeStatusMetaBadge.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nexport type { BackofficeStatusMeta, BackofficeStatusMetaTone };\n\nexport type BackofficeStatusMetaBadgeProps = {\n readonly status: BackofficeStatusMeta | null | undefined;\n readonly emptyLabel?: string;\n readonly className?: string;\n};\n\nexport const BackofficeStatusMetaBadge = ({\n status,\n emptyLabel,\n className,\n}: BackofficeStatusMetaBadgeProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n\n return (\n <UiBackofficeStatusMetaBadge\n status={status}\n emptyLabel={emptyLabel ?? t('common.notAvailable')}\n className={className}\n />\n );\n};\n\nexport default BackofficeStatusMetaBadge;\n"],"mappings":";;;;AAiBA,IAAa,KAA6B,EACxC,WACA,eACA,mBACiD;CACjD,IAAM,EAAE,SAAM,GAA+B;CAE7C,OACE,kBAAC,GAAD;EACU;EACR,YAAY,KAAc,EAAE,sBAAsB;EACvC;EACX,CAAA"}
1
+ {"version":3,"file":"BackofficeStatusMetaBadge.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeStatusMetaBadge.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport {\n BackofficeStatusMetaBadge as UiBackofficeStatusMetaBadge,\n type BackofficeStatusMeta,\n type BackofficeStatusMetaTone,\n} from '@plumile/ui/backoffice/molecules/backoffice_status_meta_badge/BackofficeStatusMetaBadge.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nexport type { BackofficeStatusMeta, BackofficeStatusMetaTone };\n\nexport type BackofficeStatusMetaBadgeProps = {\n readonly status: BackofficeStatusMeta | null | undefined;\n readonly emptyLabel?: string;\n readonly className?: string;\n};\n\nexport const BackofficeStatusMetaBadge = ({\n status,\n emptyLabel,\n className,\n}: BackofficeStatusMetaBadgeProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n\n return (\n <UiBackofficeStatusMetaBadge\n status={status}\n emptyLabel={emptyLabel ?? t('common.notAvailable')}\n className={className}\n />\n );\n};\n\nexport default BackofficeStatusMetaBadge;\n"],"mappings":";;;;AAiBA,IAAa,KAA6B,EACxC,WACA,eACA,mBACiD;CACjD,IAAM,EAAE,SAAM,EAA8B;CAE5C,OACE,kBAAC,GAAD;EACU;EACR,YAAY,KAAc,EAAE,qBAAqB;EACtC;CACZ,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeTokenUsageBreakdown.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeTokenUsageBreakdown.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { MetricCard } from '@plumile/ui/components/dashboard/metric_card/MetricCard.js';\nimport { MetricTileGroup } from '@plumile/ui/components/dashboard/metric_tile_group/MetricTileGroup.js';\n\nexport type BackofficeTokenUsageBreakdownProps = {\n readonly title: string;\n readonly total?: ReactNode;\n readonly input?: ReactNode;\n readonly cachedInput?: ReactNode;\n readonly output?: ReactNode;\n readonly reasoning?: ReactNode;\n readonly labels: {\n readonly input: string;\n readonly cachedInput: string;\n readonly output: string;\n readonly reasoning: string;\n };\n};\n\nexport const BackofficeTokenUsageBreakdown = ({\n title,\n total,\n input,\n cachedInput,\n output,\n reasoning,\n labels,\n}: BackofficeTokenUsageBreakdownProps): JSX.Element => {\n const items = [\n { id: 'total', label: title, value: total },\n { id: 'input', label: labels.input, value: input },\n { id: 'cached-input', label: labels.cachedInput, value: cachedInput },\n { id: 'output', label: labels.output, value: output },\n { id: 'reasoning', label: labels.reasoning, value: reasoning },\n ].filter((item) => {\n return item.value != null;\n });\n\n if (items.length === 0) {\n return <></>;\n }\n\n return (\n <MetricTileGroup density=\"compact\" minColumn=\"180\">\n {items.map((item) => {\n return (\n <MetricCard\n key={item.id}\n label={item.label}\n value={item.value}\n density=\"compact\"\n tone=\"neutral\"\n />\n );\n })}\n </MetricTileGroup>\n );\n};\n\nexport default BackofficeTokenUsageBreakdown;\n"],"mappings":";;;;AAmBA,IAAa,KAAiC,EAC5C,UACA,UACA,UACA,gBACA,WACA,cACA,gBACqD;CACrD,IAAM,IAAQ;EACZ;GAAE,IAAI;GAAS,OAAO;GAAO,OAAO;GAAO;EAC3C;GAAE,IAAI;GAAS,OAAO,EAAO;GAAO,OAAO;GAAO;EAClD;GAAE,IAAI;GAAgB,OAAO,EAAO;GAAa,OAAO;GAAa;EACrE;GAAE,IAAI;GAAU,OAAO,EAAO;GAAQ,OAAO;GAAQ;EACrD;GAAE,IAAI;GAAa,OAAO,EAAO;GAAW,OAAO;GAAW;EAC/D,CAAC,QAAQ,MACD,EAAK,SAAS,KACrB;CAMF,OAJI,EAAM,WAAW,IACZ,kBAAA,GAAA,EAAK,CAAA,GAIZ,kBAAC,GAAD;EAAiB,SAAQ;EAAU,WAAU;YAC1C,EAAM,KAAK,MAER,kBAAC,GAAD;GAEE,OAAO,EAAK;GACZ,OAAO,EAAK;GACZ,SAAQ;GACR,MAAK;GACL,EALK,EAAK,GAKV,CAEJ;EACc,CAAA"}
1
+ {"version":3,"file":"BackofficeTokenUsageBreakdown.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeTokenUsageBreakdown.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { MetricCard } from '@plumile/ui/components/dashboard/metric_card/MetricCard.js';\nimport { MetricTileGroup } from '@plumile/ui/components/dashboard/metric_tile_group/MetricTileGroup.js';\n\nexport type BackofficeTokenUsageBreakdownProps = {\n readonly title: string;\n readonly total?: ReactNode;\n readonly input?: ReactNode;\n readonly cachedInput?: ReactNode;\n readonly output?: ReactNode;\n readonly reasoning?: ReactNode;\n readonly labels: {\n readonly input: string;\n readonly cachedInput: string;\n readonly output: string;\n readonly reasoning: string;\n };\n};\n\nexport const BackofficeTokenUsageBreakdown = ({\n title,\n total,\n input,\n cachedInput,\n output,\n reasoning,\n labels,\n}: BackofficeTokenUsageBreakdownProps): JSX.Element => {\n const items = [\n { id: 'total', label: title, value: total },\n { id: 'input', label: labels.input, value: input },\n { id: 'cached-input', label: labels.cachedInput, value: cachedInput },\n { id: 'output', label: labels.output, value: output },\n { id: 'reasoning', label: labels.reasoning, value: reasoning },\n ].filter((item) => {\n return item.value != null;\n });\n\n if (items.length === 0) {\n return <></>;\n }\n\n return (\n <MetricTileGroup density=\"compact\" minColumn=\"180\">\n {items.map((item) => {\n return (\n <MetricCard\n key={item.id}\n label={item.label}\n value={item.value}\n density=\"compact\"\n tone=\"neutral\"\n />\n );\n })}\n </MetricTileGroup>\n );\n};\n\nexport default BackofficeTokenUsageBreakdown;\n"],"mappings":";;;;AAmBA,IAAa,KAAiC,EAC5C,UACA,UACA,UACA,gBACA,WACA,cACA,gBACqD;CACrD,IAAM,IAAQ;EACZ;GAAE,IAAI;GAAS,OAAO;GAAO,OAAO;EAAM;EAC1C;GAAE,IAAI;GAAS,OAAO,EAAO;GAAO,OAAO;EAAM;EACjD;GAAE,IAAI;GAAgB,OAAO,EAAO;GAAa,OAAO;EAAY;EACpE;GAAE,IAAI;GAAU,OAAO,EAAO;GAAQ,OAAO;EAAO;EACpD;GAAE,IAAI;GAAa,OAAO,EAAO;GAAW,OAAO;EAAU;CAC/D,EAAE,QAAQ,MACD,EAAK,SAAS,IACtB;CAMD,OAJI,EAAM,WAAW,IACZ,kBAAA,GAAA,CAAI,CAAA,IAIX,kBAAC,GAAD;EAAiB,SAAQ;EAAU,WAAU;YAC1C,EAAM,KAAK,MAER,kBAAC,GAAD;GAEE,OAAO,EAAK;GACZ,OAAO,EAAK;GACZ,SAAQ;GACR,MAAK;EACN,GALM,EAAK,EAKX,CAEJ;CACc,CAAA;AAErB"}
@@ -35,52 +35,52 @@ var c = ({ title: c, rows: l, totals: u, emptyLabel: d, columnLabels: f }) => {
35
35
  copiedLabel: p("common.actions.copied")
36
36
  }, e.id))
37
37
  }), l.length > 0 && /* @__PURE__ */ i("div", {
38
- className: "txvbqbdrl txvbqbff6",
38
+ className: "txvbqbfbk txvbqbgz5",
39
39
  children: [/* @__PURE__ */ i("div", {
40
- className: "_13200uy0 txvbqbdrl txvbqbffj txvbqbey",
40
+ className: "_13200uy0 txvbqbfbk txvbqbgzi txvbqbey",
41
41
  children: [
42
42
  /* @__PURE__ */ r("span", {
43
- className: "txvbqb96 txvbqb6a txvbqbkxs txvbqb19cb",
43
+ className: "txvbqb96 txvbqb6a txvbqbmhr txvbqb1b17",
44
44
  children: h.name
45
45
  }),
46
46
  /* @__PURE__ */ r("span", {
47
- className: "txvbqb96 txvbqb6a txvbqbkxs txvbqb19cb",
47
+ className: "txvbqb96 txvbqb6a txvbqbmhr txvbqb1b17",
48
48
  children: h.rawCost
49
49
  }),
50
50
  /* @__PURE__ */ r("span", {
51
- className: "txvbqb96 txvbqb6a txvbqbkxs txvbqb19cb",
51
+ className: "txvbqb96 txvbqb6a txvbqbmhr txvbqb1b17",
52
52
  children: h.markup
53
53
  }),
54
54
  /* @__PURE__ */ r("span", {
55
- className: "txvbqb96 txvbqb6a txvbqbkxs txvbqb19cb",
55
+ className: "txvbqb96 txvbqb6a txvbqbmhr txvbqb1b17",
56
56
  children: h.charged
57
57
  }),
58
58
  /* @__PURE__ */ r("span", {
59
- className: "txvbqb96 txvbqb6a txvbqbkxs txvbqb19cb",
59
+ className: "txvbqb96 txvbqb6a txvbqbmhr txvbqb1b17",
60
60
  children: h.events
61
61
  })
62
62
  ]
63
63
  }), l.map((e) => /* @__PURE__ */ i("div", {
64
- className: "_13200uy0 txvbqbdrl txvbqbffj txvbqbey",
64
+ className: "_13200uy0 txvbqbfbk txvbqbgzi txvbqbey",
65
65
  children: [
66
66
  /* @__PURE__ */ r("span", {
67
- className: n("txvbqb9j txvbqb19c9 txvbqbutu", "txvbqbfcn"),
67
+ className: n("txvbqb9j txvbqb1b15 txvbqbwdt", "txvbqbgwm"),
68
68
  children: e.label
69
69
  }),
70
70
  /* @__PURE__ */ r("span", {
71
- className: "txvbqb9j txvbqb19c9 txvbqbutu",
71
+ className: "txvbqb9j txvbqb1b15 txvbqbwdt",
72
72
  children: e.rawCost ?? m
73
73
  }),
74
74
  /* @__PURE__ */ r("span", {
75
- className: "txvbqb9j txvbqb19c9 txvbqbutu",
75
+ className: "txvbqb9j txvbqb1b15 txvbqbwdt",
76
76
  children: e.markup ?? m
77
77
  }),
78
78
  /* @__PURE__ */ r("span", {
79
- className: "txvbqb9j txvbqb19c9 txvbqbutu",
79
+ className: "txvbqb9j txvbqb1b15 txvbqbwdt",
80
80
  children: e.charged ?? m
81
81
  }),
82
82
  /* @__PURE__ */ r("span", {
83
- className: "txvbqb9j txvbqb19c9 txvbqbutu",
83
+ className: "txvbqb9j txvbqb1b15 txvbqbwdt",
84
84
  children: e.eventsCount ?? e.quantity ?? m
85
85
  })
86
86
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeUsageCostBreakdown.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeUsageCostBreakdown.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { BackofficeDetailSection } from '@plumile/ui/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.js';\nimport {\n MetricCard,\n type MetricTone,\n} from '@plumile/ui/components/dashboard/metric_card/MetricCard.js';\nimport { MetricTileGroup } from '@plumile/ui/components/dashboard/metric_tile_group/MetricTileGroup.js';\nimport { cx } from '@plumile/ui/theme/tools.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport * as styles from './backofficeUsageCostBreakdown.css.js';\n\nexport type BackofficeMoneyValue = {\n readonly amount: string | number;\n readonly currency: string;\n};\n\nexport type BackofficeUsageCostBreakdownRow = {\n readonly id: string;\n readonly label: string;\n readonly rawCost?: ReactNode;\n readonly markup?: ReactNode;\n readonly charged?: ReactNode;\n readonly eventsCount?: ReactNode;\n readonly quantity?: ReactNode;\n};\n\nexport type BackofficeUsageCostBreakdownTotal = {\n readonly id: string;\n readonly label: string;\n readonly value: ReactNode;\n readonly hint?: ReactNode;\n readonly tone?: MetricTone;\n readonly copyValue?: string;\n};\n\nexport type BackofficeUsageCostBreakdownProps = {\n readonly title: string;\n readonly rows: readonly BackofficeUsageCostBreakdownRow[];\n readonly totals?: readonly BackofficeUsageCostBreakdownTotal[];\n readonly emptyLabel?: string;\n readonly columnLabels?: {\n readonly name: string;\n readonly rawCost: string;\n readonly markup: string;\n readonly charged: string;\n readonly events: string;\n };\n};\n\nexport const BackofficeUsageCostBreakdown = ({\n title,\n rows,\n totals,\n emptyLabel,\n columnLabels,\n}: BackofficeUsageCostBreakdownProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const missing = t('common.notAvailable');\n const labels = columnLabels ?? {\n name: t('detail.columns.name'),\n rawCost: t('detail.columns.rawCost'),\n markup: t('detail.columns.markup'),\n charged: t('detail.columns.charged'),\n events: t('detail.columns.events'),\n };\n\n if (rows.length === 0 && (totals == null || totals.length === 0)) {\n return (\n <BackofficeDetailSection title={title}>\n {emptyLabel ?? missing}\n </BackofficeDetailSection>\n );\n }\n\n return (\n <BackofficeDetailSection title={title}>\n <div className={styles.content}>\n {totals != null && totals.length > 0 && (\n <MetricTileGroup density=\"compact\" minColumn=\"180\">\n {totals.map((total) => {\n return (\n <MetricCard\n key={total.id}\n label={total.label}\n value={total.value}\n hint={total.hint}\n tone={total.tone ?? 'neutral'}\n density=\"compact\"\n copyValue={total.copyValue}\n copyLabel={t('common.actions.copy')}\n copiedLabel={t('common.actions.copied')}\n />\n );\n })}\n </MetricTileGroup>\n )}\n {rows.length > 0 && (\n <div className={styles.table}>\n <div className={styles.row}>\n <span className={styles.header}>{labels.name}</span>\n <span className={styles.header}>{labels.rawCost}</span>\n <span className={styles.header}>{labels.markup}</span>\n <span className={styles.header}>{labels.charged}</span>\n <span className={styles.header}>{labels.events}</span>\n </div>\n {rows.map((row) => {\n return (\n <div className={styles.row} key={row.id}>\n <span className={cx(styles.cell, styles.label)}>\n {row.label}\n </span>\n <span className={styles.cell}>{row.rawCost ?? missing}</span>\n <span className={styles.cell}>{row.markup ?? missing}</span>\n <span className={styles.cell}>{row.charged ?? missing}</span>\n <span className={styles.cell}>\n {row.eventsCount ?? row.quantity ?? missing}\n </span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeUsageCostBreakdown;\n"],"mappings":";;;;;;;;AAkDA,IAAa,KAAgC,EAC3C,UACA,SACA,WACA,eACA,sBACoD;CACpD,IAAM,EAAE,SAAM,GAA+B,EACvC,IAAU,EAAE,sBAAsB,EAClC,IAAS,KAAgB;EAC7B,MAAM,EAAE,sBAAsB;EAC9B,SAAS,EAAE,yBAAyB;EACpC,QAAQ,EAAE,wBAAwB;EAClC,SAAS,EAAE,yBAAyB;EACpC,QAAQ,EAAE,wBAAwB;EACnC;CAUD,OARI,EAAK,WAAW,MAAM,KAAU,QAAQ,EAAO,WAAW,KAE1D,kBAAC,GAAD;EAAgC;YAC7B,KAAc;EACS,CAAA,GAK5B,kBAAC,GAAD;EAAgC;YAC9B,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACG,KAAU,QAAQ,EAAO,SAAS,KACjC,kBAAC,GAAD;IAAiB,SAAQ;IAAU,WAAU;cAC1C,EAAO,KAAK,MAET,kBAAC,GAAD;KAEE,OAAO,EAAM;KACb,OAAO,EAAM;KACb,MAAM,EAAM;KACZ,MAAM,EAAM,QAAQ;KACpB,SAAQ;KACR,WAAW,EAAM;KACjB,WAAW,EAAE,sBAAsB;KACnC,aAAa,EAAE,wBAAwB;KACvC,EATK,EAAM,GASX,CAEJ;IACc,CAAA,EAEnB,EAAK,SAAS,KACb,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACE,kBAAC,OAAD;KAAK,WAAW;eAAhB;MACE,kBAAC,QAAD;OAAM,WAAW;iBAAgB,EAAO;OAAY,CAAA;MACpD,kBAAC,QAAD;OAAM,WAAW;iBAAgB,EAAO;OAAe,CAAA;MACvD,kBAAC,QAAD;OAAM,WAAW;iBAAgB,EAAO;OAAc,CAAA;MACtD,kBAAC,QAAD;OAAM,WAAW;iBAAgB,EAAO;OAAe,CAAA;MACvD,kBAAC,QAAD;OAAM,WAAW;iBAAgB,EAAO;OAAc,CAAA;MAClD;QACL,EAAK,KAAK,MAEP,kBAAC,OAAD;KAAK,WAAW;eAAhB;MACE,kBAAC,QAAD;OAAM,WAAW,EAAG,iCAAa,YAAa;iBAC3C,EAAI;OACA,CAAA;MACP,kBAAC,QAAD;OAAM,WAAW;iBAAc,EAAI,WAAW;OAAe,CAAA;MAC7D,kBAAC,QAAD;OAAM,WAAW;iBAAc,EAAI,UAAU;OAAe,CAAA;MAC5D,kBAAC,QAAD;OAAM,WAAW;iBAAc,EAAI,WAAW;OAAe,CAAA;MAC7D,kBAAC,QAAD;OAAM,WAAW;iBACd,EAAI,eAAe,EAAI,YAAY;OAC/B,CAAA;MACH;OAV2B,EAAI,GAU/B,CAER,CACE;MAEJ;;EACkB,CAAA"}
1
+ {"version":3,"file":"BackofficeUsageCostBreakdown.js","names":[],"sources":["../../../../../src/components/backoffice/detail/BackofficeUsageCostBreakdown.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { BackofficeDetailSection } from '@plumile/ui/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.js';\nimport {\n MetricCard,\n type MetricTone,\n} from '@plumile/ui/components/dashboard/metric_card/MetricCard.js';\nimport { MetricTileGroup } from '@plumile/ui/components/dashboard/metric_tile_group/MetricTileGroup.js';\nimport { cx } from '@plumile/ui/theme/tools.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport * as styles from './backofficeUsageCostBreakdown.css.js';\n\nexport type BackofficeMoneyValue = {\n readonly amount: string | number;\n readonly currency: string;\n};\n\nexport type BackofficeUsageCostBreakdownRow = {\n readonly id: string;\n readonly label: string;\n readonly rawCost?: ReactNode;\n readonly markup?: ReactNode;\n readonly charged?: ReactNode;\n readonly eventsCount?: ReactNode;\n readonly quantity?: ReactNode;\n};\n\nexport type BackofficeUsageCostBreakdownTotal = {\n readonly id: string;\n readonly label: string;\n readonly value: ReactNode;\n readonly hint?: ReactNode;\n readonly tone?: MetricTone;\n readonly copyValue?: string;\n};\n\nexport type BackofficeUsageCostBreakdownProps = {\n readonly title: string;\n readonly rows: readonly BackofficeUsageCostBreakdownRow[];\n readonly totals?: readonly BackofficeUsageCostBreakdownTotal[];\n readonly emptyLabel?: string;\n readonly columnLabels?: {\n readonly name: string;\n readonly rawCost: string;\n readonly markup: string;\n readonly charged: string;\n readonly events: string;\n };\n};\n\nexport const BackofficeUsageCostBreakdown = ({\n title,\n rows,\n totals,\n emptyLabel,\n columnLabels,\n}: BackofficeUsageCostBreakdownProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const missing = t('common.notAvailable');\n const labels = columnLabels ?? {\n name: t('detail.columns.name'),\n rawCost: t('detail.columns.rawCost'),\n markup: t('detail.columns.markup'),\n charged: t('detail.columns.charged'),\n events: t('detail.columns.events'),\n };\n\n if (rows.length === 0 && (totals == null || totals.length === 0)) {\n return (\n <BackofficeDetailSection title={title}>\n {emptyLabel ?? missing}\n </BackofficeDetailSection>\n );\n }\n\n return (\n <BackofficeDetailSection title={title}>\n <div className={styles.content}>\n {totals != null && totals.length > 0 && (\n <MetricTileGroup density=\"compact\" minColumn=\"180\">\n {totals.map((total) => {\n return (\n <MetricCard\n key={total.id}\n label={total.label}\n value={total.value}\n hint={total.hint}\n tone={total.tone ?? 'neutral'}\n density=\"compact\"\n copyValue={total.copyValue}\n copyLabel={t('common.actions.copy')}\n copiedLabel={t('common.actions.copied')}\n />\n );\n })}\n </MetricTileGroup>\n )}\n {rows.length > 0 && (\n <div className={styles.table}>\n <div className={styles.row}>\n <span className={styles.header}>{labels.name}</span>\n <span className={styles.header}>{labels.rawCost}</span>\n <span className={styles.header}>{labels.markup}</span>\n <span className={styles.header}>{labels.charged}</span>\n <span className={styles.header}>{labels.events}</span>\n </div>\n {rows.map((row) => {\n return (\n <div className={styles.row} key={row.id}>\n <span className={cx(styles.cell, styles.label)}>\n {row.label}\n </span>\n <span className={styles.cell}>{row.rawCost ?? missing}</span>\n <span className={styles.cell}>{row.markup ?? missing}</span>\n <span className={styles.cell}>{row.charged ?? missing}</span>\n <span className={styles.cell}>\n {row.eventsCount ?? row.quantity ?? missing}\n </span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeUsageCostBreakdown;\n"],"mappings":";;;;;;;;AAkDA,IAAa,KAAgC,EAC3C,UACA,SACA,WACA,eACA,sBACoD;CACpD,IAAM,EAAE,SAAM,EAA8B,GACtC,IAAU,EAAE,qBAAqB,GACjC,IAAS,KAAgB;EAC7B,MAAM,EAAE,qBAAqB;EAC7B,SAAS,EAAE,wBAAwB;EACnC,QAAQ,EAAE,uBAAuB;EACjC,SAAS,EAAE,wBAAwB;EACnC,QAAQ,EAAE,uBAAuB;CACnC;CAUA,OARI,EAAK,WAAW,MAAM,KAAU,QAAQ,EAAO,WAAW,KAE1D,kBAAC,GAAD;EAAgC;YAC7B,KAAc;CACQ,CAAA,IAK3B,kBAAC,GAAD;EAAgC;YAC9B,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACG,KAAU,QAAQ,EAAO,SAAS,KACjC,kBAAC,GAAD;IAAiB,SAAQ;IAAU,WAAU;cAC1C,EAAO,KAAK,MAET,kBAAC,GAAD;KAEE,OAAO,EAAM;KACb,OAAO,EAAM;KACb,MAAM,EAAM;KACZ,MAAM,EAAM,QAAQ;KACpB,SAAQ;KACR,WAAW,EAAM;KACjB,WAAW,EAAE,qBAAqB;KAClC,aAAa,EAAE,uBAAuB;IACvC,GATM,EAAM,EASZ,CAEJ;GACc,CAAA,GAElB,EAAK,SAAS,KACb,kBAAC,OAAD;IAAK,WAAW;cAAhB,CACE,kBAAC,OAAD;KAAK,WAAW;eAAhB;MACE,kBAAC,QAAD;OAAM,WAAW;iBAAgB,EAAO;MAAW,CAAA;MACnD,kBAAC,QAAD;OAAM,WAAW;iBAAgB,EAAO;MAAc,CAAA;MACtD,kBAAC,QAAD;OAAM,WAAW;iBAAgB,EAAO;MAAa,CAAA;MACrD,kBAAC,QAAD;OAAM,WAAW;iBAAgB,EAAO;MAAc,CAAA;MACtD,kBAAC,QAAD;OAAM,WAAW;iBAAgB,EAAO;MAAa,CAAA;KAClD;QACJ,EAAK,KAAK,MAEP,kBAAC,OAAD;KAAK,WAAW;eAAhB;MACE,kBAAC,QAAD;OAAM,WAAW,EAAG,iCAAa,WAAY;iBAC1C,EAAI;MACD,CAAA;MACN,kBAAC,QAAD;OAAM,WAAW;iBAAc,EAAI,WAAW;MAAc,CAAA;MAC5D,kBAAC,QAAD;OAAM,WAAW;iBAAc,EAAI,UAAU;MAAc,CAAA;MAC3D,kBAAC,QAAD;OAAM,WAAW;iBAAc,EAAI,WAAW;MAAc,CAAA;MAC5D,kBAAC,QAAD;OAAM,WAAW;iBACd,EAAI,eAAe,EAAI,YAAY;MAChC,CAAA;KACH;OAV4B,EAAI,EAUhC,CAER,CACE;KAEJ;;CACkB,CAAA;AAE7B"}
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/components/backoffice/detail/backofficeDetailBadgeRow.css.ts
3
- var e = "txvbqbdr8 txvbqbf91 txvbqbff6 txvbqbey";
3
+ var e = "txvbqbfb7 txvbqbgt0 txvbqbgz5 txvbqbey";
4
4
  //#endregion
5
5
  export { e as row };
6
6
 
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/components/backoffice/detail/backofficeDetailErrorList.css.ts
3
- var e = "txvbqbdr8 txvbqbf6i txvbqbffw", t = "txvbqbdr8 txvbqbf6i txvbqbff6 txvbqbuy6 txvbqb2gz", n = "txvbqb1uy txvbqb2et txvbqb17u txvbqb196f", r = "txvbqbdr8 txvbqbf6i txvbqbfet", i = "txvbqbfau txvbqb9j txvbqb19cd", a = "txvbqbfd0", o = "txvbqb9j";
3
+ var e = "txvbqbfb7 txvbqbgqh txvbqbgzv", t = "txvbqbfb7 txvbqbgqh txvbqbgz5 txvbqbwi5 txvbqb2rt", n = "txvbqb25s txvbqb2pn txvbqb1d9 txvbqb1atn", r = "txvbqbfb7 txvbqbgqh txvbqbgys", i = "txvbqbgut txvbqb9j txvbqb1b19", a = "txvbqbgwz", o = "txvbqb9j";
4
4
  //#endregion
5
5
  export { i as code, o as details, r as header, t as item, n as itemSurface, e as list, a as message };
6
6
 
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/components/backoffice/detail/backofficeDetailLayout.css.ts
3
- var e = "txvbqbdrl txvbqbh7t txvbqbh7j txvbqbffw txvbqbel txvbqbt9i", t = "txvbqbdr8 txvbqbf6i txvbqbffw txvbqbt9i", n = "txvbqbdr8 txvbqbf6i txvbqbffw txvbqbt9i", r = "txvbqbdr8 txvbqbf6i txvbqbffw";
3
+ var e = "txvbqbfbk txvbqbirs txvbqbiri txvbqbgzv txvbqbel txvbqbuth", t = "txvbqbfb7 txvbqbgqh txvbqbgzv txvbqbuth", n = "txvbqbfb7 txvbqbgqh txvbqbgzv txvbqbuth", r = "txvbqbfb7 txvbqbgqh txvbqbgzv";
4
4
  //#endregion
5
5
  export { e as layout, t as primary, n as secondary, r as stacked };
6
6
 
@@ -1,6 +1,7 @@
1
+ /* empty css */
1
2
  /* empty css */
2
3
  //#region src/components/backoffice/detail/backofficeDetailRelationLink.css.ts
3
- var e = "_93gupm0 qbwcueg qbwcuee txvbqb2g9 txvbqb19c9 txvbqb3f txvbqb7g txvbqb76 txvbqb7t qbwcuef txvbqb1aep txvbqb1b29 qbwcue0 txvbqb1cb0 txvbqb1cws txvbqbyoi txvbqbzm3 txvbqb10jb txvbqbvve txvbqb7h txvbqb75 txvbqbdr8 txvbqbjus txvbqbffj txvbqb1uy txvbqb2et txvbqbik txvbqb1933 txvbqbey txvbqbem txvbqbf65 txvbqbf6j txvbqb1aes txvbqb1b2c", t = "txvbqb9j txvbqbfcn txvbqbt9i txvbqbutu", n = "txvbqbdsb txvbqbey txvbqbfet txvbqbf7y txvbqbt9i", r = "txvbqb96 txvbqb19cb txvbqbutu txvbqb16fn", i = "txvbqbdsb txvbqbey txvbqbjtp txvbqb19cd txvbqb9j txvbqbl11";
4
+ var e = "_93gupm0 qbwcueg qbwcuee txvbqb2r3 txvbqb1b15 txvbqb3f txvbqb7g txvbqb76 txvbqb7t qbwcuef txvbqb1cbx txvbqb1d9h qbwcue0 txvbqb1etc txvbqb1fls txvbqb108h txvbqb1162 txvbqb123a txvbqbxfd txvbqb7h txvbqb75 txvbqbfb7 txvbqbler txvbqbgzi txvbqb25s txvbqb2pn txvbqbik txvbqb1aqb txvbqbey txvbqbem txvbqbgq4 txvbqbgqi txvbqb1cc0 txvbqb1d9k", t = "txvbqb9j txvbqbgwm txvbqbuth txvbqbwdt", n = "txvbqbfca txvbqbey txvbqbgys txvbqbgrx txvbqbuth", r = "txvbqb96 txvbqb1b17 txvbqbwdt txvbqb17zm", i = "txvbqbfca txvbqbey txvbqbldo txvbqb1b19 txvbqb9j txvbqbml0";
4
5
  //#endregion
5
6
  export { n as action, i as chevron, t as label, e as link, r as meta };
6
7
 
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/components/backoffice/detail/backofficeDetailRelationList.css.ts
3
- var e = "txvbqbdr8 txvbqbf6i txvbqbffj";
3
+ var e = "txvbqbfb7 txvbqbgqh txvbqbgzi";
4
4
  //#endregion
5
5
  export { e as list };
6
6
 
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/components/backoffice/detail/backofficeEntitySummaryHeader.css.ts
3
- var e = "txvbqbdr8 txvbqbf6i txvbqbffw txvbqbuyj txvbqb2gm txvbqb196b txvbqb1uy txvbqb2et txvbqb18k", t = "txvbqbdr8 txvbqbjus txvbqbel txvbqbffw txvbqbf91", n = "txvbqbdr8 txvbqbf6i txvbqbff6 txvbqbt9i", r = "txvbqbdr8 txvbqbey txvbqbff6 txvbqbf91", i = "txvbqbaz txvbqbm6k txvbqbfd0 txvbqb19c9 txvbqbutu", a = "txvbqb9j txvbqb19cb txvbqbutu", o = "txvbqbdr8 txvbqbey txvbqbju2 txvbqbff6 txvbqbf91", s = "txvbqbdrl txvbqbffj txvbqbheb", c = "txvbqbdr8 txvbqbf6i txvbqbfet txvbqbt9i", l = "txvbqb96 txvbqb6a txvbqbkxs txvbqb19cb", u = "txvbqb9j txvbqb19c9 txvbqbutu";
3
+ var e = "txvbqbfb7 txvbqbgqh txvbqbgzv txvbqbwii txvbqb2rg txvbqb1atj txvbqb25s txvbqb2pn txvbqb1dz", t = "txvbqbfb7 txvbqbler txvbqbel txvbqbgzv txvbqbgt0", n = "txvbqbfb7 txvbqbgqh txvbqbgz5 txvbqbuth", r = "txvbqbfb7 txvbqbey txvbqbgz5 txvbqbgt0", i = "txvbqbaz txvbqbnqj txvbqbgwz txvbqb1b15 txvbqbwdt", a = "txvbqb9j txvbqb1b17 txvbqbwdt", o = "txvbqbfb7 txvbqbey txvbqble1 txvbqbgz5 txvbqbgt0", s = "txvbqbfbk txvbqbgzi txvbqbiya", c = "txvbqbfb7 txvbqbgqh txvbqbgys txvbqbuth", l = "txvbqb96 txvbqb6a txvbqbmhr txvbqb1b17", u = "txvbqb9j txvbqb1b15 txvbqbwdt";
4
4
  //#endregion
5
5
  export { o as actions, n as identity, s as meta, c as metaItem, l as metaLabel, u as metaValue, e as root, a as subtitle, i as title, r as titleRow, t as top };
6
6
 
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/components/backoffice/detail/backofficeRelationsSummaryGrid.css.ts
3
- var e = "txvbqbdrl txvbqbffj txvbqbheb", t = "txvbqbdr8 txvbqbf6i txvbqbfet txvbqbuy6 txvbqb2g9 txvbqb196b txvbqb1uy txvbqb2et txvbqb18k txvbqbt9i", n = "txvbqb96 txvbqb6a txvbqbkxs txvbqb19cb", r = "txvbqbam txvbqbfd0 txvbqb19c9", i = "txvbqb9j txvbqb19cb txvbqbutu";
3
+ var e = "txvbqbfbk txvbqbgzi txvbqbiya", t = "txvbqbfb7 txvbqbgqh txvbqbgys txvbqbwi5 txvbqb2r3 txvbqb1atj txvbqb25s txvbqb2pn txvbqb1dz txvbqbuth", n = "txvbqb96 txvbqb6a txvbqbmhr txvbqb1b17", r = "txvbqbam txvbqbgwz txvbqb1b15", i = "txvbqb9j txvbqb1b17 txvbqbwdt";
4
4
  //#endregion
5
5
  export { r as count, i as description, e as grid, t as item, n as label };
6
6
 
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/components/backoffice/detail/backofficeUsageCostBreakdown.css.ts
3
- var e = "txvbqbdr8 txvbqbf6i txvbqbffj", t = "txvbqbdrl txvbqbff6", n = "_13200uy0 txvbqbdrl txvbqbffj txvbqbey", r = "txvbqb96 txvbqb6a txvbqbkxs txvbqb19cb", i = "txvbqb9j txvbqb19c9 txvbqbutu", a = "txvbqbfcn";
3
+ var e = "txvbqbfb7 txvbqbgqh txvbqbgzi", t = "txvbqbfbk txvbqbgz5", n = "_13200uy0 txvbqbfbk txvbqbgzi txvbqbey", r = "txvbqb96 txvbqb6a txvbqbmhr txvbqb1b17", i = "txvbqb9j txvbqb1b15 txvbqbwdt", a = "txvbqbgwm";
4
4
  //#endregion
5
5
  export { i as cell, e as content, r as header, a as label, n as row, t as table };
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"createBackofficeEntityLinkProps.js","names":[],"sources":["../../../../../src/components/backoffice/detail/createBackofficeEntityLinkProps.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { BackofficeRuntimeResolvedListFacetConfig } from '@plumile/backoffice-core/types.js';\n\nexport type BackofficeEntityLinkValue = {\n readonly id: string;\n readonly label?: ReactNode;\n readonly filterValue?: string | null;\n};\n\nexport type CreateBackofficeEntityLinkPropsOptions<TNode> = {\n readonly entity: string;\n readonly node: TNode | null | undefined;\n readonly getId: (node: TNode) => string | null | undefined;\n readonly getLabel: (node: TNode) => ReactNode;\n readonly filterWhereKey?: string;\n readonly getFilterValue?: (node: TNode) => string | null | undefined;\n readonly filterPath?: readonly string[];\n readonly filterLabel?: string;\n readonly listConfig?: BackofficeRuntimeResolvedListFacetConfig;\n};\n\nexport type BackofficeResolvedEntityLinkProps = {\n readonly entity: string;\n readonly id: string;\n readonly label?: string;\n readonly filterWhereKey?: string;\n readonly filterValue?: string;\n readonly filterPath?: readonly string[];\n readonly filterLabel?: string;\n readonly listConfig?: BackofficeRuntimeResolvedListFacetConfig;\n};\n\nexport const createBackofficeEntityLinkProps = <TNode>({\n entity,\n node,\n getId,\n getLabel,\n filterWhereKey,\n getFilterValue,\n filterPath,\n filterLabel,\n listConfig,\n}: CreateBackofficeEntityLinkPropsOptions<TNode>): BackofficeResolvedEntityLinkProps | null => {\n if (node == null) {\n return null;\n }\n\n const id = getId(node)?.trim();\n if (id == null || id === '') {\n return null;\n }\n\n const label = getLabel(node);\n const filterValue = getFilterValue?.(node) ?? undefined;\n let resolvedLabel: string | undefined;\n if (typeof label === 'string') {\n resolvedLabel = label;\n }\n\n return {\n entity,\n id,\n label: resolvedLabel,\n filterWhereKey,\n filterValue: filterValue ?? undefined,\n filterPath,\n filterLabel,\n listConfig,\n };\n};\n"],"mappings":";AAgCA,IAAa,KAA0C,EACrD,WACA,SACA,UACA,aACA,mBACA,mBACA,eACA,gBACA,oBAC6F;CAC7F,IAAI,KAAQ,MACV,OAAO;CAGT,IAAM,IAAK,EAAM,EAAK,EAAE,MAAM;CAC9B,IAAI,KAAM,QAAQ,MAAO,IACvB,OAAO;CAGT,IAAM,IAAQ,EAAS,EAAK,EACtB,IAAc,IAAiB,EAAK,IAAI,KAAA,GAC1C;CAKJ,OAJI,OAAO,KAAU,aACnB,IAAgB,IAGX;EACL;EACA;EACA,OAAO;EACP;EACA,aAAa,KAAe,KAAA;EAC5B;EACA;EACA;EACD"}
1
+ {"version":3,"file":"createBackofficeEntityLinkProps.js","names":[],"sources":["../../../../../src/components/backoffice/detail/createBackofficeEntityLinkProps.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { BackofficeRuntimeResolvedListFacetConfig } from '@plumile/backoffice-core/types.js';\n\nexport type BackofficeEntityLinkValue = {\n readonly id: string;\n readonly label?: ReactNode;\n readonly filterValue?: string | null;\n};\n\nexport type CreateBackofficeEntityLinkPropsOptions<TNode> = {\n readonly entity: string;\n readonly node: TNode | null | undefined;\n readonly getId: (node: TNode) => string | null | undefined;\n readonly getLabel: (node: TNode) => ReactNode;\n readonly filterWhereKey?: string;\n readonly getFilterValue?: (node: TNode) => string | null | undefined;\n readonly filterPath?: readonly string[];\n readonly filterLabel?: string;\n readonly listConfig?: BackofficeRuntimeResolvedListFacetConfig;\n};\n\nexport type BackofficeResolvedEntityLinkProps = {\n readonly entity: string;\n readonly id: string;\n readonly label?: string;\n readonly filterWhereKey?: string;\n readonly filterValue?: string;\n readonly filterPath?: readonly string[];\n readonly filterLabel?: string;\n readonly listConfig?: BackofficeRuntimeResolvedListFacetConfig;\n};\n\nexport const createBackofficeEntityLinkProps = <TNode>({\n entity,\n node,\n getId,\n getLabel,\n filterWhereKey,\n getFilterValue,\n filterPath,\n filterLabel,\n listConfig,\n}: CreateBackofficeEntityLinkPropsOptions<TNode>): BackofficeResolvedEntityLinkProps | null => {\n if (node == null) {\n return null;\n }\n\n const id = getId(node)?.trim();\n if (id == null || id === '') {\n return null;\n }\n\n const label = getLabel(node);\n const filterValue = getFilterValue?.(node) ?? undefined;\n let resolvedLabel: string | undefined;\n if (typeof label === 'string') {\n resolvedLabel = label;\n }\n\n return {\n entity,\n id,\n label: resolvedLabel,\n filterWhereKey,\n filterValue: filterValue ?? undefined,\n filterPath,\n filterLabel,\n listConfig,\n };\n};\n"],"mappings":";AAgCA,IAAa,KAA0C,EACrD,WACA,SACA,UACA,aACA,mBACA,mBACA,eACA,gBACA,oBAC6F;CAC7F,IAAI,KAAQ,MACV,OAAO;CAGT,IAAM,IAAK,EAAM,CAAI,GAAG,KAAK;CAC7B,IAAI,KAAM,QAAQ,MAAO,IACvB,OAAO;CAGT,IAAM,IAAQ,EAAS,CAAI,GACrB,IAAc,IAAiB,CAAI,KAAK,KAAA,GAC1C;CAKJ,OAJI,OAAO,KAAU,aACnB,IAAgB,IAGX;EACL;EACA;EACA,OAAO;EACP;EACA,aAAa,KAAe,KAAA;EAC5B;EACA;EACA;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"detailPayloadUtils.js","names":[],"sources":["../../../../../src/components/backoffice/detail/detailPayloadUtils.ts"],"sourcesContent":["/**\n * Formats a list of strings as a Markdown bullet list.\n */\nexport function formatListAsMarkdown(items: readonly string[]): string {\n if (items.length === 0) {\n return '';\n }\n return items\n .map((item) => {\n return `- ${item}`;\n })\n .join('\\n');\n}\n"],"mappings":";AAGA,SAAgB,EAAqB,GAAkC;CAIrE,OAHI,EAAM,WAAW,IACZ,KAEF,EACJ,KAAK,MACG,KAAK,IACZ,CACD,KAAK,KAAK"}
1
+ {"version":3,"file":"detailPayloadUtils.js","names":[],"sources":["../../../../../src/components/backoffice/detail/detailPayloadUtils.ts"],"sourcesContent":["/**\n * Formats a list of strings as a Markdown bullet list.\n */\nexport function formatListAsMarkdown(items: readonly string[]): string {\n if (items.length === 0) {\n return '';\n }\n return items\n .map((item) => {\n return `- ${item}`;\n })\n .join('\\n');\n}\n"],"mappings":";AAGA,SAAgB,EAAqB,GAAkC;CAIrE,OAHI,EAAM,WAAW,IACZ,KAEF,EACJ,KAAK,MACG,KAAK,GACb,EACA,KAAK,IAAI;AACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeErrorBoundary.js","names":[],"sources":["../../../../../src/components/backoffice/errors/BackofficeErrorBoundary.tsx"],"sourcesContent":["import { Component, type ReactNode } from 'react';\n\nexport type BackofficeErrorBoundaryProps = {\n children: ReactNode;\n fallback: (args: { error: unknown; reset: () => void }) => ReactNode;\n};\n\ntype State = { error: unknown };\n\nexport class BackofficeErrorBoundary extends Component<\n BackofficeErrorBoundaryProps,\n State\n> {\n public state: State = { error: null };\n\n public static getDerivedStateFromError(error: unknown): State {\n return { error };\n }\n\n public reset = (): void => {\n this.setState({ error: null });\n };\n\n public render(): ReactNode {\n if (this.state.error != null) {\n return this.props.fallback({\n error: this.state.error,\n reset: this.reset,\n });\n }\n return this.props.children;\n }\n}\n\nexport default BackofficeErrorBoundary;\n"],"mappings":";;AASA,IAAa,IAAb,cAA6C,EAG3C;CACA,QAAsB,EAAE,OAAO,MAAM;CAErC,OAAc,yBAAyB,GAAuB;EAC5D,OAAO,EAAE,UAAO;;CAGlB,cAA2B;EACzB,KAAK,SAAS,EAAE,OAAO,MAAM,CAAC;;CAGhC,SAA2B;EAOzB,OANI,KAAK,MAAM,SAAS,OAMjB,KAAK,MAAM,WALT,KAAK,MAAM,SAAS;GACzB,OAAO,KAAK,MAAM;GAClB,OAAO,KAAK;GACb,CAAC"}
1
+ {"version":3,"file":"BackofficeErrorBoundary.js","names":[],"sources":["../../../../../src/components/backoffice/errors/BackofficeErrorBoundary.tsx"],"sourcesContent":["import { Component, type ReactNode } from 'react';\n\nexport type BackofficeErrorBoundaryProps = {\n children: ReactNode;\n fallback: (args: { error: unknown; reset: () => void }) => ReactNode;\n};\n\ntype State = { error: unknown };\n\nexport class BackofficeErrorBoundary extends Component<\n BackofficeErrorBoundaryProps,\n State\n> {\n public state: State = { error: null };\n\n public static getDerivedStateFromError(error: unknown): State {\n return { error };\n }\n\n public reset = (): void => {\n this.setState({ error: null });\n };\n\n public render(): ReactNode {\n if (this.state.error != null) {\n return this.props.fallback({\n error: this.state.error,\n reset: this.reset,\n });\n }\n return this.props.children;\n }\n}\n\nexport default BackofficeErrorBoundary;\n"],"mappings":";;AASA,IAAa,IAAb,cAA6C,EAG3C;CACA,QAAsB,EAAE,OAAO,KAAK;CAEpC,OAAc,yBAAyB,GAAuB;EAC5D,OAAO,EAAE,SAAM;CACjB;CAEA,cAA2B;EACzB,KAAK,SAAS,EAAE,OAAO,KAAK,CAAC;CAC/B;CAEA,SAA2B;EAOzB,OANI,KAAK,MAAM,SAAS,OAMjB,KAAK,MAAM,WALT,KAAK,MAAM,SAAS;GACzB,OAAO,KAAK,MAAM;GAClB,OAAO,KAAK;EACd,CAAC;CAGL;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeFilterAction.js","names":[],"sources":["../../../../../src/components/backoffice/filters/BackofficeFilterAction.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Link from '@plumile/router/routing/Link.js';\nimport { SidebarSearchSvg } from '@plumile/ui/icons/SidebarSearchSvg.js';\n\nimport type {\n BackofficeRuntimeResolvedListFacetConfig,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type { TFunction } from 'i18next';\nimport { buildBackofficeListLink } from '@plumile/backoffice-core/state/buildListHref.js';\nimport { setWhereValue } from '@plumile/backoffice-core/filters/where.js';\n\nimport {\n canFilterValue,\n resolveFilterForColumn,\n resolveFilterForWhereKey,\n} from '../../../filters/filterHelpers.js';\nimport { useBackofficeConfig } from '../../../provider/BackofficeConfigContext.js';\nimport { useBackofficeListFilterContext } from '../scaffolds/BackofficeListFilterContext.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './backofficeFilterAction.css.js';\n\nexport type BackofficeFilterActionProps = {\n whereKey: string;\n value: unknown;\n path?: readonly string[];\n label?: string;\n listConfig?: BackofficeRuntimeResolvedListFacetConfig;\n};\n\ntype ListFilterContext = {\n config: BackofficeRuntimeResolvedListFacetConfig;\n applyFilter: (\n whereKey: string,\n value: unknown,\n path?: readonly string[],\n ) => void;\n};\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const BackofficeFilterAction = (\n props: BackofficeFilterActionProps,\n): JSX.Element | null => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const { filterColumnAliases } = useBackofficeConfig();\n const { whereKey, value, path, label, listConfig } = props;\n\n const getContext =\n useBackofficeListFilterContext as () => ListFilterContext | null;\n const context = getContext();\n let config: BackofficeRuntimeResolvedListFacetConfig | null = null;\n\n if (listConfig != null) {\n config = listConfig;\n } else if (context != null) {\n config = context.config;\n }\n\n if (config == null) {\n return null;\n }\n\n let filter = resolveFilterForWhereKey(config, whereKey, path);\n if (filter == null && path == null) {\n filter = resolveFilterForColumn(config, whereKey, filterColumnAliases);\n }\n if (filter == null || !canFilterValue(filter, value)) {\n return null;\n }\n\n const filterLabel = resolveLabel(filter.label, tApp);\n const actionLabel =\n label ??\n t('filters.actions.filterBy', {\n label: filterLabel,\n });\n const icon = (\n <SidebarSearchSvg\n width={14}\n height={14}\n className={styles.icon}\n aria-hidden=\"true\"\n />\n );\n\n if (context != null) {\n return (\n <button\n type=\"button\"\n className={styles.action}\n title={actionLabel}\n aria-label={actionLabel}\n onClick={() => {\n context.applyFilter(whereKey, value, path);\n }}\n >\n {icon}\n </button>\n );\n }\n\n const baseWhere =\n config.listDefaults?.where ?? config.list.defaultState?.where ?? null;\n const nextWhere = setWhereValue(baseWhere, whereKey, value, path);\n const to = buildBackofficeListLink(config, { where: nextWhere });\n\n return (\n <Link\n to={to}\n className={styles.action}\n title={actionLabel}\n aria-label={actionLabel}\n >\n {icon}\n </Link>\n );\n};\n\nexport default BackofficeFilterAction;\n"],"mappings":";;;;;;;;;;;;AAyCA,IAAM,KAAgB,GAAkB,MAC/B,EAAM,EAAK,EAGP,KACX,MACuB;CACvB,IAAM,EAAE,GAAG,MAAS,GAAgB,EAC9B,EAAE,SAAM,GAA+B,EACvC,EAAE,2BAAwB,GAAqB,EAC/C,EAAE,aAAU,UAAO,SAAM,UAAO,kBAAe,GAI/C,IAAU,GAAY,EACxB,IAA0D;CAQ9D,IANI,KAAc,OAEP,KAAW,SACpB,IAAS,EAAQ,UAFjB,IAAS,GAKP,KAAU,MACZ,OAAO;CAGT,IAAI,IAAS,EAAyB,GAAQ,GAAU,EAAK;CAI7D,IAHI,KAAU,QAAQ,KAAQ,SAC5B,IAAS,EAAuB,GAAQ,GAAU,EAAoB,GAEpE,KAAU,QAAQ,CAAC,EAAe,GAAQ,EAAM,EAClD,OAAO;CAGT,IAAM,IAAc,EAAa,EAAO,OAAO,EAAK,EAC9C,IACJ,KACA,EAAE,4BAA4B,EAC5B,OAAO,GACR,CAAC,EACE,IACJ,kBAAC,GAAD;EACE,OAAO;EACP,QAAQ;EACR,WAAW;EACX,eAAY;EACZ,CAAA;CAGJ,IAAI,KAAW,MACb,OACE,kBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,OAAO;EACP,cAAY;EACZ,eAAe;GACb,EAAQ,YAAY,GAAU,GAAO,EAAK;;YAG3C;EACM,CAAA;CAMb,IAAM,IAAY,EADhB,EAAO,cAAc,SAAS,EAAO,KAAK,cAAc,SAAS,MACxB,GAAU,GAAO,EAAK;CAGjE,OACE,kBAAC,GAAD;EACM,IAJG,EAAwB,GAAQ,EAAE,OAAO,GAAW,CAIvD;EACJ,WAAW;EACX,OAAO;EACP,cAAY;YAEX;EACI,CAAA"}
1
+ {"version":3,"file":"BackofficeFilterAction.js","names":[],"sources":["../../../../../src/components/backoffice/filters/BackofficeFilterAction.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Link from '@plumile/router/routing/Link.js';\nimport { SidebarSearchSvg } from '@plumile/ui/icons/SidebarSearchSvg.js';\n\nimport type {\n BackofficeRuntimeResolvedListFacetConfig,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type { TFunction } from 'i18next';\nimport { buildBackofficeListLink } from '@plumile/backoffice-core/state/buildListHref.js';\nimport { setWhereValue } from '@plumile/backoffice-core/filters/where.js';\n\nimport {\n canFilterValue,\n resolveFilterForColumn,\n resolveFilterForWhereKey,\n} from '../../../filters/filterHelpers.js';\nimport { useBackofficeConfig } from '../../../provider/BackofficeConfigContext.js';\nimport { useBackofficeListFilterContext } from '../scaffolds/BackofficeListFilterContext.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './backofficeFilterAction.css.js';\n\nexport type BackofficeFilterActionProps = {\n whereKey: string;\n value: unknown;\n path?: readonly string[];\n label?: string;\n listConfig?: BackofficeRuntimeResolvedListFacetConfig;\n};\n\ntype ListFilterContext = {\n config: BackofficeRuntimeResolvedListFacetConfig;\n applyFilter: (\n whereKey: string,\n value: unknown,\n path?: readonly string[],\n ) => void;\n};\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const BackofficeFilterAction = (\n props: BackofficeFilterActionProps,\n): JSX.Element | null => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const { filterColumnAliases } = useBackofficeConfig();\n const { whereKey, value, path, label, listConfig } = props;\n\n const getContext =\n useBackofficeListFilterContext as () => ListFilterContext | null;\n const context = getContext();\n let config: BackofficeRuntimeResolvedListFacetConfig | null = null;\n\n if (listConfig != null) {\n config = listConfig;\n } else if (context != null) {\n config = context.config;\n }\n\n if (config == null) {\n return null;\n }\n\n let filter = resolveFilterForWhereKey(config, whereKey, path);\n if (filter == null && path == null) {\n filter = resolveFilterForColumn(config, whereKey, filterColumnAliases);\n }\n if (filter == null || !canFilterValue(filter, value)) {\n return null;\n }\n\n const filterLabel = resolveLabel(filter.label, tApp);\n const actionLabel =\n label ??\n t('filters.actions.filterBy', {\n label: filterLabel,\n });\n const icon = (\n <SidebarSearchSvg\n width={14}\n height={14}\n className={styles.icon}\n aria-hidden=\"true\"\n />\n );\n\n if (context != null) {\n return (\n <button\n type=\"button\"\n className={styles.action}\n title={actionLabel}\n aria-label={actionLabel}\n onClick={() => {\n context.applyFilter(whereKey, value, path);\n }}\n >\n {icon}\n </button>\n );\n }\n\n const baseWhere =\n config.listDefaults?.where ?? config.list.defaultState?.where ?? null;\n const nextWhere = setWhereValue(baseWhere, whereKey, value, path);\n const to = buildBackofficeListLink(config, { where: nextWhere });\n\n return (\n <Link\n to={to}\n className={styles.action}\n title={actionLabel}\n aria-label={actionLabel}\n >\n {icon}\n </Link>\n );\n};\n\nexport default BackofficeFilterAction;\n"],"mappings":";;;;;;;;;;;;AAyCA,IAAM,KAAgB,GAAkB,MAC/B,EAAM,CAAI,GAGN,KACX,MACuB;CACvB,IAAM,EAAE,GAAG,MAAS,EAAe,GAC7B,EAAE,SAAM,EAA8B,GACtC,EAAE,2BAAwB,EAAoB,GAC9C,EAAE,aAAU,UAAO,SAAM,UAAO,kBAAe,GAI/C,IAAU,EAAW,GACvB,IAA0D;CAQ9D,IANI,KAAc,OAEP,KAAW,SACpB,IAAS,EAAQ,UAFjB,IAAS,GAKP,KAAU,MACZ,OAAO;CAGT,IAAI,IAAS,EAAyB,GAAQ,GAAU,CAAI;CAI5D,IAHI,KAAU,QAAQ,KAAQ,SAC5B,IAAS,EAAuB,GAAQ,GAAU,CAAmB,IAEnE,KAAU,QAAQ,CAAC,EAAe,GAAQ,CAAK,GACjD,OAAO;CAGT,IAAM,IAAc,EAAa,EAAO,OAAO,CAAI,GAC7C,IACJ,KACA,EAAE,4BAA4B,EAC5B,OAAO,EACT,CAAC,GACG,IACJ,kBAAC,GAAD;EACE,OAAO;EACP,QAAQ;EACR,WAAW;EACX,eAAY;CACb,CAAA;CAGH,IAAI,KAAW,MACb,OACE,kBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,OAAO;EACP,cAAY;EACZ,eAAe;GACb,EAAQ,YAAY,GAAU,GAAO,CAAI;EAC3C;YAEC;CACK,CAAA;CAMZ,IAAM,IAAY,EADhB,EAAO,cAAc,SAAS,EAAO,KAAK,cAAc,SAAS,MACxB,GAAU,GAAO,CAAI;CAGhE,OACE,kBAAC,GAAD;EACM,IAJG,EAAwB,GAAQ,EAAE,OAAO,EAAU,CAItD;EACJ,WAAW;EACX,OAAO;EACP,cAAY;YAEX;CACG,CAAA;AAEV"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeferredFilterSearchInput.js","names":[],"sources":["../../../../../src/components/backoffice/filters/DeferredFilterSearchInput.tsx"],"sourcesContent":["import {\n useEffect,\n useState,\n type FormEvent,\n type JSX,\n type KeyboardEvent,\n} from 'react';\n\nimport { Input } from '@plumile/ui/atomic/atoms/input/Input.js';\nimport { CheckSvg } from '@plumile/ui/icons/CheckSvg.js';\nimport { ModalCloseSvg } from '@plumile/ui/icons/ModalCloseSvg.js';\nimport { SidebarSearchSvg } from '@plumile/ui/icons/SidebarSearchSvg.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './deferredFilterSearchInput.css.js';\n\nexport type DeferredFilterSearchInputProps = {\n value: string;\n placeholder: string;\n ariaLabel?: string;\n className?: string;\n inputMode?: 'search' | 'numeric' | 'decimal';\n type?: 'search' | 'text' | 'number' | 'datetime-local';\n onApply: (value: string) => void;\n};\n\nexport const DeferredFilterSearchInput = ({\n value,\n placeholder,\n ariaLabel,\n className,\n inputMode = 'search',\n type = 'text',\n onApply,\n}: DeferredFilterSearchInputProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const [draftValue, setDraftValue] = useState(value);\n\n useEffect(() => {\n setDraftValue(value);\n }, [value]);\n\n const normalizedDraft = draftValue.trim();\n const normalizedValue = value.trim();\n const hasDraft = normalizedDraft !== '';\n const hasPendingValue = normalizedDraft !== normalizedValue;\n const canClear = hasDraft || normalizedValue !== '';\n const inputLabel = ariaLabel ?? placeholder;\n const clearLabel = t('filters.actions.clearFilter', { label: inputLabel });\n const applyLabel = t('filters.actions.applyFilter', { label: inputLabel });\n\n const applyDraft = () => {\n if (!hasPendingValue) {\n return;\n }\n onApply(normalizedDraft);\n };\n\n const clearValue = () => {\n setDraftValue('');\n if (normalizedValue !== '') {\n onApply('');\n }\n };\n\n let clearActionNode: JSX.Element = (\n <span className={styles.actionButtonSpacer} aria-hidden=\"true\" />\n );\n if (canClear) {\n clearActionNode = (\n <button\n type=\"button\"\n className={styles.actionButton}\n aria-label={clearLabel}\n title={clearLabel}\n onClick={clearValue}\n >\n <ModalCloseSvg width={16} height={16} aria-hidden=\"true\" />\n </button>\n );\n }\n\n return (\n <form\n className={className}\n onSubmit={(event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n applyDraft();\n }}\n >\n <div className={styles.container}>\n <Input\n type={type}\n inputMode={inputMode}\n value={draftValue}\n onInput={(event: FormEvent<HTMLInputElement>) => {\n setDraftValue(event.currentTarget.value);\n }}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n applyDraft();\n }\n if (event.key === 'Escape') {\n event.preventDefault();\n setDraftValue(value);\n }\n }}\n placeholder={placeholder}\n aria-label={inputLabel}\n size=\"small\"\n fullWidth\n leftIcon={\n <SidebarSearchSvg width={18} height={18} aria-hidden=\"true\" />\n }\n rightIconIsInteractive\n rightIcon={\n <span className={styles.actions}>\n {clearActionNode}\n <button\n type=\"submit\"\n className={styles.actionButton}\n aria-label={applyLabel}\n title={applyLabel}\n disabled={!hasPendingValue}\n >\n <CheckSvg width={16} height={16} aria-hidden=\"true\" />\n </button>\n </span>\n }\n />\n </div>\n </form>\n );\n};\n\nexport default DeferredFilterSearchInput;\n"],"mappings":";;;;;;;;;AA2BA,IAAa,KAA6B,EACxC,UACA,gBACA,cACA,cACA,eAAY,UACZ,UAAO,QACP,iBACiD;CACjD,IAAM,EAAE,SAAM,GAA+B,EACvC,CAAC,GAAY,KAAiB,EAAS,EAAM;CAEnD,QAAgB;EACd,EAAc,EAAM;IACnB,CAAC,EAAM,CAAC;CAEX,IAAM,IAAkB,EAAW,MAAM,EACnC,IAAkB,EAAM,MAAM,EAC9B,IAAW,MAAoB,IAC/B,IAAkB,MAAoB,GACtC,IAAW,KAAY,MAAoB,IAC3C,IAAa,KAAa,GAC1B,IAAa,EAAE,+BAA+B,EAAE,OAAO,GAAY,CAAC,EACpE,IAAa,EAAE,+BAA+B,EAAE,OAAO,GAAY,CAAC,EAEpE,UAAmB;EAClB,KAGL,EAAQ,EAAgB;IAGpB,UAAmB;EAEvB,AADA,EAAc,GAAG,EACb,MAAoB,MACtB,EAAQ,GAAG;IAIX,IACF,kBAAC,QAAD;EAAM,WAAW;EAA2B,eAAY;EAAS,CAAA;CAgBnE,OAdI,MACF,IACE,kBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,cAAY;EACZ,OAAO;EACP,SAAS;YAET,kBAAC,GAAD;GAAe,OAAO;GAAI,QAAQ;GAAI,eAAY;GAAS,CAAA;EACpD,CAAA,GAKX,kBAAC,QAAD;EACa;EACX,WAAW,MAAsC;GAE/C,AADA,EAAM,gBAAgB,EACtB,GAAY;;YAGd,kBAAC,OAAD;GAAK,WAAW;aACd,kBAAC,GAAD;IACQ;IACK;IACX,OAAO;IACP,UAAU,MAAuC;KAC/C,EAAc,EAAM,cAAc,MAAM;;IAE1C,YAAY,MAA2C;KAKrD,AAJI,EAAM,QAAQ,YAChB,EAAM,gBAAgB,EACtB,GAAY,GAEV,EAAM,QAAQ,aAChB,EAAM,gBAAgB,EACtB,EAAc,EAAM;;IAGX;IACb,cAAY;IACZ,MAAK;IACL,WAAA;IACA,UACE,kBAAC,GAAD;KAAkB,OAAO;KAAI,QAAQ;KAAI,eAAY;KAAS,CAAA;IAEhE,wBAAA;IACA,WACE,kBAAC,QAAD;KAAM,WAAW;eAAjB,CACG,GACD,kBAAC,UAAD;MACE,MAAK;MACL,WAAW;MACX,cAAY;MACZ,OAAO;MACP,UAAU,CAAC;gBAEX,kBAAC,GAAD;OAAU,OAAO;OAAI,QAAQ;OAAI,eAAY;OAAS,CAAA;MAC/C,CAAA,CACJ;;IAET,CAAA;GACE,CAAA;EACD,CAAA"}
1
+ {"version":3,"file":"DeferredFilterSearchInput.js","names":[],"sources":["../../../../../src/components/backoffice/filters/DeferredFilterSearchInput.tsx"],"sourcesContent":["import {\n useEffect,\n useState,\n type FormEvent,\n type JSX,\n type KeyboardEvent,\n} from 'react';\n\nimport { Input } from '@plumile/ui/atomic/atoms/input/Input.js';\nimport { CheckSvg } from '@plumile/ui/icons/CheckSvg.js';\nimport { ModalCloseSvg } from '@plumile/ui/icons/ModalCloseSvg.js';\nimport { SidebarSearchSvg } from '@plumile/ui/icons/SidebarSearchSvg.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './deferredFilterSearchInput.css.js';\n\nexport type DeferredFilterSearchInputProps = {\n value: string;\n placeholder: string;\n ariaLabel?: string;\n className?: string;\n inputMode?: 'search' | 'numeric' | 'decimal';\n type?: 'search' | 'text' | 'number' | 'datetime-local';\n onApply: (value: string) => void;\n};\n\nexport const DeferredFilterSearchInput = ({\n value,\n placeholder,\n ariaLabel,\n className,\n inputMode = 'search',\n type = 'text',\n onApply,\n}: DeferredFilterSearchInputProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const [draftValue, setDraftValue] = useState(value);\n\n useEffect(() => {\n setDraftValue(value);\n }, [value]);\n\n const normalizedDraft = draftValue.trim();\n const normalizedValue = value.trim();\n const hasDraft = normalizedDraft !== '';\n const hasPendingValue = normalizedDraft !== normalizedValue;\n const canClear = hasDraft || normalizedValue !== '';\n const inputLabel = ariaLabel ?? placeholder;\n const clearLabel = t('filters.actions.clearFilter', { label: inputLabel });\n const applyLabel = t('filters.actions.applyFilter', { label: inputLabel });\n\n const applyDraft = () => {\n if (!hasPendingValue) {\n return;\n }\n onApply(normalizedDraft);\n };\n\n const clearValue = () => {\n setDraftValue('');\n if (normalizedValue !== '') {\n onApply('');\n }\n };\n\n let clearActionNode: JSX.Element = (\n <span className={styles.actionButtonSpacer} aria-hidden=\"true\" />\n );\n if (canClear) {\n clearActionNode = (\n <button\n type=\"button\"\n className={styles.actionButton}\n aria-label={clearLabel}\n title={clearLabel}\n onClick={clearValue}\n >\n <ModalCloseSvg width={16} height={16} aria-hidden=\"true\" />\n </button>\n );\n }\n\n return (\n <form\n className={className}\n onSubmit={(event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n applyDraft();\n }}\n >\n <div className={styles.container}>\n <Input\n type={type}\n inputMode={inputMode}\n value={draftValue}\n onInput={(event: FormEvent<HTMLInputElement>) => {\n setDraftValue(event.currentTarget.value);\n }}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n applyDraft();\n }\n if (event.key === 'Escape') {\n event.preventDefault();\n setDraftValue(value);\n }\n }}\n placeholder={placeholder}\n aria-label={inputLabel}\n size=\"small\"\n fullWidth\n leftIcon={\n <SidebarSearchSvg width={18} height={18} aria-hidden=\"true\" />\n }\n rightIconIsInteractive\n rightIcon={\n <span className={styles.actions}>\n {clearActionNode}\n <button\n type=\"submit\"\n className={styles.actionButton}\n aria-label={applyLabel}\n title={applyLabel}\n disabled={!hasPendingValue}\n >\n <CheckSvg width={16} height={16} aria-hidden=\"true\" />\n </button>\n </span>\n }\n />\n </div>\n </form>\n );\n};\n\nexport default DeferredFilterSearchInput;\n"],"mappings":";;;;;;;;;AA2BA,IAAa,KAA6B,EACxC,UACA,gBACA,cACA,cACA,eAAY,UACZ,UAAO,QACP,iBACiD;CACjD,IAAM,EAAE,SAAM,EAA8B,GACtC,CAAC,GAAY,KAAiB,EAAS,CAAK;CAElD,QAAgB;EACd,EAAc,CAAK;CACrB,GAAG,CAAC,CAAK,CAAC;CAEV,IAAM,IAAkB,EAAW,KAAK,GAClC,IAAkB,EAAM,KAAK,GAC7B,IAAW,MAAoB,IAC/B,IAAkB,MAAoB,GACtC,IAAW,KAAY,MAAoB,IAC3C,IAAa,KAAa,GAC1B,IAAa,EAAE,+BAA+B,EAAE,OAAO,EAAW,CAAC,GACnE,IAAa,EAAE,+BAA+B,EAAE,OAAO,EAAW,CAAC,GAEnE,UAAmB;EAClB,KAGL,EAAQ,CAAe;CACzB,GAEM,UAAmB;EAEvB,AADA,EAAc,EAAE,GACZ,MAAoB,MACtB,EAAQ,EAAE;CAEd,GAEI,IACF,kBAAC,QAAD;EAAM,WAAW;EAA2B,eAAY;CAAQ,CAAA;CAgBlE,OAdI,MACF,IACE,kBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,cAAY;EACZ,OAAO;EACP,SAAS;YAET,kBAAC,GAAD;GAAe,OAAO;GAAI,QAAQ;GAAI,eAAY;EAAQ,CAAA;CACpD,CAAA,IAKV,kBAAC,QAAD;EACa;EACX,WAAW,MAAsC;GAE/C,AADA,EAAM,eAAe,GACrB,EAAW;EACb;YAEA,kBAAC,OAAD;GAAK,WAAW;aACd,kBAAC,GAAD;IACQ;IACK;IACX,OAAO;IACP,UAAU,MAAuC;KAC/C,EAAc,EAAM,cAAc,KAAK;IACzC;IACA,YAAY,MAA2C;KAKrD,AAJI,EAAM,QAAQ,YAChB,EAAM,eAAe,GACrB,EAAW,IAET,EAAM,QAAQ,aAChB,EAAM,eAAe,GACrB,EAAc,CAAK;IAEvB;IACa;IACb,cAAY;IACZ,MAAK;IACL,WAAA;IACA,UACE,kBAAC,GAAD;KAAkB,OAAO;KAAI,QAAQ;KAAI,eAAY;IAAQ,CAAA;IAE/D,wBAAA;IACA,WACE,kBAAC,QAAD;KAAM,WAAW;eAAjB,CACG,GACD,kBAAC,UAAD;MACE,MAAK;MACL,WAAW;MACX,cAAY;MACZ,OAAO;MACP,UAAU,CAAC;gBAEX,kBAAC,GAAD;OAAU,OAAO;OAAI,QAAQ;OAAI,eAAY;MAAQ,CAAA;KAC/C,CAAA,CACJ;;GAET,CAAA;EACE,CAAA;CACD,CAAA;AAEV"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFilterValue.js","names":[],"sources":["../../../../../src/components/backoffice/filters/EntityFilterValue.tsx"],"sourcesContent":["import { Suspense, type JSX } from 'react';\nimport * as ReactRelay from 'react-relay';\nimport type { OperationType } from 'relay-runtime';\n\nimport type { BackofficePickerValueConfig } from '@plumile/backoffice-core/types.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { useBackofficePickerEntityLoader } from '../../../provider/useBackofficeEntityLoader.js';\nimport { BackofficeErrorBoundary } from '../errors/BackofficeErrorBoundary.js';\n\nconst { useLazyLoadQuery } = ReactRelay;\n\ntype EntityFilterValueContentProps<RowRef, RowView> = {\n valueConfig: BackofficePickerValueConfig<RowRef, RowView>;\n id: string;\n children: EntityFilterValueTextChildren;\n};\n\nconst resolveTitle = (value: unknown): string | null => {\n if (value == null || typeof value !== 'object') {\n return null;\n }\n const { title } = value as { title?: unknown };\n if (typeof title !== 'string') {\n return null;\n }\n const trimmed = title.trim();\n if (trimmed === '') {\n return null;\n }\n return trimmed;\n};\n\nconst EntityFilterValueContent = <RowRef, RowView>({\n valueConfig,\n id,\n children,\n}: EntityFilterValueContentProps<RowRef, RowView>): JSX.Element => {\n const data = useLazyLoadQuery<OperationType>(valueConfig.query, { id });\n const rowRef = valueConfig.resolveRow(data);\n let row: RowView | null = null;\n if (rowRef != null) {\n row = valueConfig.toRow(rowRef);\n }\n const title = resolveTitle(row);\n let status: EntityFilterValueTextState['status'] = 'resolved';\n if (title == null) {\n status = 'unresolved';\n }\n\n return children(title, { status });\n};\n\nexport type EntityFilterValueTextState = {\n status: 'loading' | 'resolved' | 'unresolved' | 'unavailable' | 'error';\n};\n\nexport type EntityFilterValueTextChildren = (\n label: string | null,\n state?: EntityFilterValueTextState,\n) => JSX.Element;\n\nexport type EntityFilterValueTextProps = {\n entityId: string;\n id: string;\n children: EntityFilterValueTextChildren;\n};\n\nexport const EntityFilterValueText = ({\n entityId,\n id,\n children,\n}: EntityFilterValueTextProps): JSX.Element => {\n const resolvedId = id.trim();\n const pickerEntityState = useBackofficePickerEntityLoader(entityId, {\n enabled: resolvedId !== '',\n });\n\n if (resolvedId === '') {\n return children(null, { status: 'unavailable' });\n }\n\n let valueConfig: BackofficePickerValueConfig<unknown, unknown> | null = null;\n if (pickerEntityState.status === 'loaded') {\n valueConfig = pickerEntityState.module.config.picker.value ?? null;\n }\n\n const loadingFallback = children(null, { status: 'loading' });\n if (pickerEntityState.status === 'loading') {\n return loadingFallback;\n }\n\n let unavailableStatus: EntityFilterValueTextState['status'] = 'unavailable';\n if (pickerEntityState.status === 'error') {\n unavailableStatus = 'error';\n }\n const unavailableFallback = children(null, {\n status: unavailableStatus,\n });\n if (valueConfig == null) {\n return unavailableFallback;\n }\n\n return (\n <BackofficeErrorBoundary\n fallback={() => {\n return children(null, { status: 'error' });\n }}\n >\n <Suspense fallback={loadingFallback}>\n <EntityFilterValueContent valueConfig={valueConfig} id={id}>\n {children}\n </EntityFilterValueContent>\n </Suspense>\n </BackofficeErrorBoundary>\n );\n};\n\nexport type EntityFilterValueProps = {\n entityId: string;\n id: string;\n};\n\nexport const EntityFilterValue = ({\n entityId,\n id,\n}: EntityFilterValueProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const resolvedId = id.trim();\n\n return (\n <EntityFilterValueText entityId={entityId} id={id}>\n {(label) => {\n let fallbackLabel = resolvedId;\n if (resolvedId === '') {\n fallbackLabel = t('filters.placeholders.unresolved');\n }\n return <span>{label ?? fallbackLabel}</span>;\n }}\n </EntityFilterValueText>\n );\n};\n\nexport default EntityFilterValue;\n"],"mappings":";;;;;;;AAUA,IAAM,EAAE,kBAAA,MAAqB,GAQvB,KAAgB,MAAkC;CACtD,IAAqB,OAAO,KAAU,aAAlC,GACF,OAAO;CAET,IAAM,EAAE,aAAU;CAClB,IAAI,OAAO,KAAU,UACnB,OAAO;CAET,IAAM,IAAU,EAAM,MAAM;CAI5B,OAHI,MAAY,KACP,OAEF;GAGH,KAA6C,EACjD,gBACA,OACA,kBACiE;CACjE,IAAM,IAAO,EAAgC,EAAY,OAAO,EAAE,OAAI,CAAC,EACjE,IAAS,EAAY,WAAW,EAAK,EACvC,IAAsB;CAC1B,AAAI,KAAU,SACZ,IAAM,EAAY,MAAM,EAAO;CAEjC,IAAM,IAAQ,EAAa,EAAI,EAC3B,IAA+C;CAKnD,OAJI,MACF,IAAS,eAGJ,EAAS,GAAO,EAAE,WAAQ,CAAC;GAkBvB,KAAyB,EACpC,aACA,OACA,kBAC6C;CAC7C,IAAM,IAAa,EAAG,MAAM,EACtB,IAAoB,EAAgC,GAAU,EAClE,SAAS,MAAe,IACzB,CAAC;CAEF,IAAI,MAAe,IACjB,OAAO,EAAS,MAAM,EAAE,QAAQ,eAAe,CAAC;CAGlD,IAAI,IAAoE;CACxE,AAAI,EAAkB,WAAW,aAC/B,IAAc,EAAkB,OAAO,OAAO,OAAO,SAAS;CAGhE,IAAM,IAAkB,EAAS,MAAM,EAAE,QAAQ,WAAW,CAAC;CAC7D,IAAI,EAAkB,WAAW,WAC/B,OAAO;CAGT,IAAI,IAA0D;CAC9D,AAAI,EAAkB,WAAW,YAC/B,IAAoB;CAEtB,IAAM,IAAsB,EAAS,MAAM,EACzC,QAAQ,GACT,CAAC;CAKF,OAJI,KAAe,OACV,IAIP,kBAAC,GAAD;EACE,gBACS,EAAS,MAAM,EAAE,QAAQ,SAAS,CAAC;YAG5C,kBAAC,GAAD;GAAU,UAAU;aAClB,kBAAC,GAAD;IAAuC;IAAiB;IACrD;IACwB,CAAA;GAClB,CAAA;EACa,CAAA;GASjB,KAAqB,EAChC,aACA,YACyC;CACzC,IAAM,EAAE,SAAM,GAA+B,EACvC,IAAa,EAAG,MAAM;CAE5B,OACE,kBAAC,GAAD;EAAiC;EAAc;aAC3C,MAAU;GACV,IAAI,IAAgB;GAIpB,OAHI,MAAe,OACjB,IAAgB,EAAE,kCAAkC,GAE/C,kBAAC,QAAD,EAAA,UAAO,KAAS,GAAqB,CAAA;;EAExB,CAAA"}
1
+ {"version":3,"file":"EntityFilterValue.js","names":[],"sources":["../../../../../src/components/backoffice/filters/EntityFilterValue.tsx"],"sourcesContent":["import { Suspense, type JSX } from 'react';\nimport * as ReactRelay from 'react-relay';\nimport type { OperationType } from 'relay-runtime';\n\nimport type { BackofficePickerValueConfig } from '@plumile/backoffice-core/types.js';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { useBackofficePickerEntityLoader } from '../../../provider/useBackofficeEntityLoader.js';\nimport { BackofficeErrorBoundary } from '../errors/BackofficeErrorBoundary.js';\n\nconst { useLazyLoadQuery } = ReactRelay;\n\ntype EntityFilterValueContentProps<RowRef, RowView> = {\n valueConfig: BackofficePickerValueConfig<RowRef, RowView>;\n id: string;\n children: EntityFilterValueTextChildren;\n};\n\nconst resolveTitle = (value: unknown): string | null => {\n if (value == null || typeof value !== 'object') {\n return null;\n }\n const { title } = value as { title?: unknown };\n if (typeof title !== 'string') {\n return null;\n }\n const trimmed = title.trim();\n if (trimmed === '') {\n return null;\n }\n return trimmed;\n};\n\nconst EntityFilterValueContent = <RowRef, RowView>({\n valueConfig,\n id,\n children,\n}: EntityFilterValueContentProps<RowRef, RowView>): JSX.Element => {\n const data = useLazyLoadQuery<OperationType>(valueConfig.query, { id });\n const rowRef = valueConfig.resolveRow(data);\n let row: RowView | null = null;\n if (rowRef != null) {\n row = valueConfig.toRow(rowRef);\n }\n const title = resolveTitle(row);\n let status: EntityFilterValueTextState['status'] = 'resolved';\n if (title == null) {\n status = 'unresolved';\n }\n\n return children(title, { status });\n};\n\nexport type EntityFilterValueTextState = {\n status: 'loading' | 'resolved' | 'unresolved' | 'unavailable' | 'error';\n};\n\nexport type EntityFilterValueTextChildren = (\n label: string | null,\n state?: EntityFilterValueTextState,\n) => JSX.Element;\n\nexport type EntityFilterValueTextProps = {\n entityId: string;\n id: string;\n children: EntityFilterValueTextChildren;\n};\n\nexport const EntityFilterValueText = ({\n entityId,\n id,\n children,\n}: EntityFilterValueTextProps): JSX.Element => {\n const resolvedId = id.trim();\n const pickerEntityState = useBackofficePickerEntityLoader(entityId, {\n enabled: resolvedId !== '',\n });\n\n if (resolvedId === '') {\n return children(null, { status: 'unavailable' });\n }\n\n let valueConfig: BackofficePickerValueConfig<unknown, unknown> | null = null;\n if (pickerEntityState.status === 'loaded') {\n valueConfig = pickerEntityState.module.config.picker.value ?? null;\n }\n\n const loadingFallback = children(null, { status: 'loading' });\n if (pickerEntityState.status === 'loading') {\n return loadingFallback;\n }\n\n let unavailableStatus: EntityFilterValueTextState['status'] = 'unavailable';\n if (pickerEntityState.status === 'error') {\n unavailableStatus = 'error';\n }\n const unavailableFallback = children(null, {\n status: unavailableStatus,\n });\n if (valueConfig == null) {\n return unavailableFallback;\n }\n\n return (\n <BackofficeErrorBoundary\n fallback={() => {\n return children(null, { status: 'error' });\n }}\n >\n <Suspense fallback={loadingFallback}>\n <EntityFilterValueContent valueConfig={valueConfig} id={id}>\n {children}\n </EntityFilterValueContent>\n </Suspense>\n </BackofficeErrorBoundary>\n );\n};\n\nexport type EntityFilterValueProps = {\n entityId: string;\n id: string;\n};\n\nexport const EntityFilterValue = ({\n entityId,\n id,\n}: EntityFilterValueProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const resolvedId = id.trim();\n\n return (\n <EntityFilterValueText entityId={entityId} id={id}>\n {(label) => {\n let fallbackLabel = resolvedId;\n if (resolvedId === '') {\n fallbackLabel = t('filters.placeholders.unresolved');\n }\n return <span>{label ?? fallbackLabel}</span>;\n }}\n </EntityFilterValueText>\n );\n};\n\nexport default EntityFilterValue;\n"],"mappings":";;;;;;;AAUA,IAAM,EAAE,kBAAA,MAAqB,GAQvB,KAAgB,MAAkC;CACtD,IAAqB,OAAO,KAAU,aAAlC,GACF,OAAO;CAET,IAAM,EAAE,aAAU;CAClB,IAAI,OAAO,KAAU,UACnB,OAAO;CAET,IAAM,IAAU,EAAM,KAAK;CAI3B,OAHI,MAAY,KACP,OAEF;AACT,GAEM,KAA6C,EACjD,gBACA,OACA,kBACiE;CACjE,IAAM,IAAO,EAAgC,EAAY,OAAO,EAAE,MAAG,CAAC,GAChE,IAAS,EAAY,WAAW,CAAI,GACtC,IAAsB;CAC1B,AAAI,KAAU,SACZ,IAAM,EAAY,MAAM,CAAM;CAEhC,IAAM,IAAQ,EAAa,CAAG,GAC1B,IAA+C;CAKnD,OAJI,MACF,IAAS,eAGJ,EAAS,GAAO,EAAE,UAAO,CAAC;AACnC,GAiBa,KAAyB,EACpC,aACA,OACA,kBAC6C;CAC7C,IAAM,IAAa,EAAG,KAAK,GACrB,IAAoB,EAAgC,GAAU,EAClE,SAAS,MAAe,GAC1B,CAAC;CAED,IAAI,MAAe,IACjB,OAAO,EAAS,MAAM,EAAE,QAAQ,cAAc,CAAC;CAGjD,IAAI,IAAoE;CACxE,AAAI,EAAkB,WAAW,aAC/B,IAAc,EAAkB,OAAO,OAAO,OAAO,SAAS;CAGhE,IAAM,IAAkB,EAAS,MAAM,EAAE,QAAQ,UAAU,CAAC;CAC5D,IAAI,EAAkB,WAAW,WAC/B,OAAO;CAGT,IAAI,IAA0D;CAC9D,AAAI,EAAkB,WAAW,YAC/B,IAAoB;CAEtB,IAAM,IAAsB,EAAS,MAAM,EACzC,QAAQ,EACV,CAAC;CAKD,OAJI,KAAe,OACV,IAIP,kBAAC,GAAD;EACE,gBACS,EAAS,MAAM,EAAE,QAAQ,QAAQ,CAAC;YAG3C,kBAAC,GAAD;GAAU,UAAU;aAClB,kBAAC,GAAD;IAAuC;IAAiB;IACrD;GACuB,CAAA;EAClB,CAAA;CACa,CAAA;AAE7B,GAOa,KAAqB,EAChC,aACA,YACyC;CACzC,IAAM,EAAE,SAAM,EAA8B,GACtC,IAAa,EAAG,KAAK;CAE3B,OACE,kBAAC,GAAD;EAAiC;EAAc;aAC3C,MAAU;GACV,IAAI,IAAgB;GAIpB,OAHI,MAAe,OACjB,IAAgB,EAAE,iCAAiC,IAE9C,kBAAC,QAAD,EAAA,UAAO,KAAS,EAAoB,CAAA;EAC7C;CACqB,CAAA;AAE3B"}
@@ -82,7 +82,7 @@ var g = (g) => {
82
82
  return /* @__PURE__ */ d("div", {
83
83
  className: r,
84
84
  children: B ?? /* @__PURE__ */ d("div", {
85
- className: "txvbqbdxd txvbqbt9i txvbqbdr8 txvbqbey txvbqbusr",
85
+ className: "txvbqbfhc txvbqbuth txvbqbfb7 txvbqbey txvbqbwcq",
86
86
  children: F
87
87
  })
88
88
  });
@@ -1 +1 @@
1
- {"version":3,"file":"EntityIdFilterField.js","names":[],"sources":["../../../../../src/components/backoffice/filters/EntityIdFilterField.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { ModalCloseSvg } from '@plumile/ui/icons/ModalCloseSvg.js';\nimport { BackofficeSidebarPenToolSvg } from '@plumile/ui/icons/backoffice/BackofficeSidebarPenToolSvg.js';\nimport { BackofficeSidebarSearchSvg } from '@plumile/ui/icons/backoffice/BackofficeSidebarSearchSvg.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './entityIdFilterField.css.js';\n\nexport type EntityIdFilterFieldProps = {\n id?: string;\n label: string;\n value: string | null;\n displayValue?: string | null;\n placeholder?: string;\n ariaDescribedBy?: string;\n ariaInvalid?: boolean;\n isResolving?: boolean;\n onPick?: () => void;\n onClear?: () => void;\n disabled?: boolean;\n};\n\nexport const EntityIdFilterField = (\n props: EntityIdFilterFieldProps,\n): JSX.Element => {\n const {\n disabled = false,\n id,\n label,\n value,\n displayValue,\n placeholder,\n ariaDescribedBy,\n ariaInvalid,\n isResolving = false,\n onPick,\n onClear,\n } = props;\n const { t } = useBackofficeReactTranslation();\n const normalizedValue = value?.trim() ?? '';\n const normalizedDisplayValue = displayValue?.trim() ?? '';\n const hasValue = normalizedValue !== '';\n const hasDisplayValue = normalizedDisplayValue !== '';\n\n const resolvedPlaceholder =\n placeholder ?? t('filters.placeholders.anyEntity', { label });\n const unresolvedPlaceholder = t('filters.placeholders.unresolved');\n\n let displayNode: JSX.Element;\n if (hasDisplayValue) {\n displayNode = (\n <span className={styles.valueText}>{normalizedDisplayValue}</span>\n );\n } else if (hasValue) {\n displayNode = (\n <span className={styles.placeholder}>{unresolvedPlaceholder}</span>\n );\n } else {\n displayNode = (\n <span className={styles.placeholder}>{resolvedPlaceholder}</span>\n );\n }\n\n let pickLabel = t('common.actions.pick');\n if (hasValue) {\n pickLabel = t('filters.actions.changeFilterValue', { label });\n }\n let pickAriaLabel = t('filters.actions.filterBy', { label });\n if (hasValue) {\n pickAriaLabel = pickLabel;\n }\n const clearAriaLabel = t('filters.actions.clearFilter', { label });\n\n let clearNode: JSX.Element | null = null;\n if (hasValue && onClear != null) {\n clearNode = (\n <button\n type=\"button\"\n className={styles.clearButton}\n aria-label={clearAriaLabel}\n disabled={disabled}\n onClick={(event) => {\n event.stopPropagation();\n onClear();\n }}\n >\n <ModalCloseSvg width={16} height={16} aria-hidden=\"true\" />\n </button>\n );\n }\n\n let pickerNode: JSX.Element | null = null;\n if (onPick != null) {\n let actionIcon = (\n <BackofficeSidebarSearchSvg\n className={styles.actionIcon}\n aria-hidden=\"true\"\n />\n );\n if (hasValue) {\n actionIcon = (\n <BackofficeSidebarPenToolSvg\n className={styles.actionIcon}\n aria-hidden=\"true\"\n />\n );\n }\n\n pickerNode = (\n <div className={styles.pickerControl}>\n <button\n id={id}\n type=\"button\"\n className={styles.pickerButton}\n aria-label={pickAriaLabel}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n aria-busy={isResolving || undefined}\n disabled={disabled}\n onClick={onPick}\n >\n <span className={styles.content}>\n <span className={styles.labelText}>{label}</span>\n {displayNode}\n </span>\n </button>\n <button\n type=\"button\"\n className={styles.pickActionButton}\n aria-label={pickAriaLabel}\n title={pickAriaLabel}\n disabled={disabled}\n onClick={onPick}\n >\n {actionIcon}\n </button>\n {clearNode}\n </div>\n );\n }\n\n return (\n <div className={styles.container}>\n {pickerNode ?? <div className={styles.valueBox}>{displayNode}</div>}\n </div>\n );\n};\n\nexport default EntityIdFilterField;\n"],"mappings":";;;;;;;AAuBA,IAAa,KACX,MACgB;CAChB,IAAM,EACJ,cAAW,IACX,OACA,UACA,UACA,iBACA,aAAA,GACA,oBACA,gBACA,iBAAc,IACd,WACA,eACE,GACE,EAAE,SAAM,GAA+B,EACvC,IAAkB,GAAO,MAAM,IAAI,IACnC,IAAyB,GAAc,MAAM,IAAI,IACjD,IAAW,MAAoB,IAC/B,IAAkB,MAA2B,IAE7C,IACJ,KAAe,EAAE,kCAAkC,EAAE,UAAO,CAAC,EACzD,IAAwB,EAAE,kCAAkC,EAE9D;CACJ,AASE,IATE,IAEA,kBAAC,QAAD;EAAM,WAAW;YAAmB;EAA8B,CAAA,GAE3D,IAEP,kBAAC,QAAD;EAAM,WAAW;YAAqB;EAA6B,CAAA,GAInE,kBAAC,QAAD;EAAM,WAAW;YAAqB;EAA2B,CAAA;CAIrE,IAAI,IAAY,EAAE,sBAAsB;CACxC,AAAI,MACF,IAAY,EAAE,qCAAqC,EAAE,UAAO,CAAC;CAE/D,IAAI,IAAgB,EAAE,4BAA4B,EAAE,UAAO,CAAC;CAC5D,AAAI,MACF,IAAgB;CAElB,IAAM,IAAiB,EAAE,+BAA+B,EAAE,UAAO,CAAC,EAE9D,IAAgC;CACpC,AAAI,KAAY,KAAW,SACzB,IACE,kBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,cAAY;EACF;EACV,UAAU,MAAU;GAElB,AADA,EAAM,iBAAiB,EACvB,GAAS;;YAGX,kBAAC,GAAD;GAAe,OAAO;GAAI,QAAQ;GAAI,eAAY;GAAS,CAAA;EACpD,CAAA;CAIb,IAAI,IAAiC;CACrC,IAAI,KAAU,MAAM;EAClB,IAAI,IACF,kBAAC,GAAD;GACE,WAAW;GACX,eAAY;GACZ,CAAA;EAWJ,AATI,MACF,IACE,kBAAC,GAAD;GACE,WAAW;GACX,eAAY;GACZ,CAAA,GAIN,IACE,kBAAC,OAAD;GAAK,WAAW;aAAhB;IACE,kBAAC,UAAD;KACM;KACJ,MAAK;KACL,WAAW;KACX,cAAY;KACZ,oBAAkB;KAClB,gBAAc;KACd,aAAW,KAAe,KAAA;KAChB;KACV,SAAS;eAET,kBAAC,QAAD;MAAM,WAAW;gBAAjB,CACE,kBAAC,QAAD;OAAM,WAAW;iBAAmB;OAAa,CAAA,EAChD,EACI;;KACA,CAAA;IACT,kBAAC,UAAD;KACE,MAAK;KACL,WAAW;KACX,cAAY;KACZ,OAAO;KACG;KACV,SAAS;eAER;KACM,CAAA;IACR;IACG;;;CAIV,OACE,kBAAC,OAAD;EAAK,WAAW;YACb,KAAc,kBAAC,OAAD;GAAK,WAAW;aAAkB;GAAkB,CAAA;EAC/D,CAAA"}
1
+ {"version":3,"file":"EntityIdFilterField.js","names":[],"sources":["../../../../../src/components/backoffice/filters/EntityIdFilterField.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { ModalCloseSvg } from '@plumile/ui/icons/ModalCloseSvg.js';\nimport { BackofficeSidebarPenToolSvg } from '@plumile/ui/icons/backoffice/BackofficeSidebarPenToolSvg.js';\nimport { BackofficeSidebarSearchSvg } from '@plumile/ui/icons/backoffice/BackofficeSidebarSearchSvg.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './entityIdFilterField.css.js';\n\nexport type EntityIdFilterFieldProps = {\n id?: string;\n label: string;\n value: string | null;\n displayValue?: string | null;\n placeholder?: string;\n ariaDescribedBy?: string;\n ariaInvalid?: boolean;\n isResolving?: boolean;\n onPick?: () => void;\n onClear?: () => void;\n disabled?: boolean;\n};\n\nexport const EntityIdFilterField = (\n props: EntityIdFilterFieldProps,\n): JSX.Element => {\n const {\n disabled = false,\n id,\n label,\n value,\n displayValue,\n placeholder,\n ariaDescribedBy,\n ariaInvalid,\n isResolving = false,\n onPick,\n onClear,\n } = props;\n const { t } = useBackofficeReactTranslation();\n const normalizedValue = value?.trim() ?? '';\n const normalizedDisplayValue = displayValue?.trim() ?? '';\n const hasValue = normalizedValue !== '';\n const hasDisplayValue = normalizedDisplayValue !== '';\n\n const resolvedPlaceholder =\n placeholder ?? t('filters.placeholders.anyEntity', { label });\n const unresolvedPlaceholder = t('filters.placeholders.unresolved');\n\n let displayNode: JSX.Element;\n if (hasDisplayValue) {\n displayNode = (\n <span className={styles.valueText}>{normalizedDisplayValue}</span>\n );\n } else if (hasValue) {\n displayNode = (\n <span className={styles.placeholder}>{unresolvedPlaceholder}</span>\n );\n } else {\n displayNode = (\n <span className={styles.placeholder}>{resolvedPlaceholder}</span>\n );\n }\n\n let pickLabel = t('common.actions.pick');\n if (hasValue) {\n pickLabel = t('filters.actions.changeFilterValue', { label });\n }\n let pickAriaLabel = t('filters.actions.filterBy', { label });\n if (hasValue) {\n pickAriaLabel = pickLabel;\n }\n const clearAriaLabel = t('filters.actions.clearFilter', { label });\n\n let clearNode: JSX.Element | null = null;\n if (hasValue && onClear != null) {\n clearNode = (\n <button\n type=\"button\"\n className={styles.clearButton}\n aria-label={clearAriaLabel}\n disabled={disabled}\n onClick={(event) => {\n event.stopPropagation();\n onClear();\n }}\n >\n <ModalCloseSvg width={16} height={16} aria-hidden=\"true\" />\n </button>\n );\n }\n\n let pickerNode: JSX.Element | null = null;\n if (onPick != null) {\n let actionIcon = (\n <BackofficeSidebarSearchSvg\n className={styles.actionIcon}\n aria-hidden=\"true\"\n />\n );\n if (hasValue) {\n actionIcon = (\n <BackofficeSidebarPenToolSvg\n className={styles.actionIcon}\n aria-hidden=\"true\"\n />\n );\n }\n\n pickerNode = (\n <div className={styles.pickerControl}>\n <button\n id={id}\n type=\"button\"\n className={styles.pickerButton}\n aria-label={pickAriaLabel}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n aria-busy={isResolving || undefined}\n disabled={disabled}\n onClick={onPick}\n >\n <span className={styles.content}>\n <span className={styles.labelText}>{label}</span>\n {displayNode}\n </span>\n </button>\n <button\n type=\"button\"\n className={styles.pickActionButton}\n aria-label={pickAriaLabel}\n title={pickAriaLabel}\n disabled={disabled}\n onClick={onPick}\n >\n {actionIcon}\n </button>\n {clearNode}\n </div>\n );\n }\n\n return (\n <div className={styles.container}>\n {pickerNode ?? <div className={styles.valueBox}>{displayNode}</div>}\n </div>\n );\n};\n\nexport default EntityIdFilterField;\n"],"mappings":";;;;;;;AAuBA,IAAa,KACX,MACgB;CAChB,IAAM,EACJ,cAAW,IACX,OACA,UACA,UACA,iBACA,aAAA,GACA,oBACA,gBACA,iBAAc,IACd,WACA,eACE,GACE,EAAE,SAAM,EAA8B,GACtC,IAAkB,GAAO,KAAK,KAAK,IACnC,IAAyB,GAAc,KAAK,KAAK,IACjD,IAAW,MAAoB,IAC/B,IAAkB,MAA2B,IAE7C,IACJ,KAAe,EAAE,kCAAkC,EAAE,SAAM,CAAC,GACxD,IAAwB,EAAE,iCAAiC,GAE7D;CACJ,AASE,IATE,IAEA,kBAAC,QAAD;EAAM,WAAW;YAAmB;CAA6B,CAAA,IAE1D,IAEP,kBAAC,QAAD;EAAM,WAAW;YAAqB;CAA4B,CAAA,IAIlE,kBAAC,QAAD;EAAM,WAAW;YAAqB;CAA0B,CAAA;CAIpE,IAAI,IAAY,EAAE,qBAAqB;CACvC,AAAI,MACF,IAAY,EAAE,qCAAqC,EAAE,SAAM,CAAC;CAE9D,IAAI,IAAgB,EAAE,4BAA4B,EAAE,SAAM,CAAC;CAC3D,AAAI,MACF,IAAgB;CAElB,IAAM,IAAiB,EAAE,+BAA+B,EAAE,SAAM,CAAC,GAE7D,IAAgC;CACpC,AAAI,KAAY,KAAW,SACzB,IACE,kBAAC,UAAD;EACE,MAAK;EACL,WAAW;EACX,cAAY;EACF;EACV,UAAU,MAAU;GAElB,AADA,EAAM,gBAAgB,GACtB,EAAQ;EACV;YAEA,kBAAC,GAAD;GAAe,OAAO;GAAI,QAAQ;GAAI,eAAY;EAAQ,CAAA;CACpD,CAAA;CAIZ,IAAI,IAAiC;CACrC,IAAI,KAAU,MAAM;EAClB,IAAI,IACF,kBAAC,GAAD;GACE,WAAW;GACX,eAAY;EACb,CAAA;EAWH,AATI,MACF,IACE,kBAAC,GAAD;GACE,WAAW;GACX,eAAY;EACb,CAAA,IAIL,IACE,kBAAC,OAAD;GAAK,WAAW;aAAhB;IACE,kBAAC,UAAD;KACM;KACJ,MAAK;KACL,WAAW;KACX,cAAY;KACZ,oBAAkB;KAClB,gBAAc;KACd,aAAW,KAAe,KAAA;KAChB;KACV,SAAS;eAET,kBAAC,QAAD;MAAM,WAAW;gBAAjB,CACE,kBAAC,QAAD;OAAM,WAAW;iBAAmB;MAAY,CAAA,GAC/C,CACG;;IACA,CAAA;IACR,kBAAC,UAAD;KACE,MAAK;KACL,WAAW;KACX,cAAY;KACZ,OAAO;KACG;KACV,SAAS;eAER;IACK,CAAA;IACP;GACE;;CAET;CAEA,OACE,kBAAC,OAAD;EAAK,WAAW;YACb,KAAc,kBAAC,OAAD;GAAK,WAAW;aAAkB;EAAiB,CAAA;CAC/D,CAAA;AAET"}
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/components/backoffice/filters/backofficeFilterAction.css.ts
3
- var e = "hwnq700 txvbqbdsb txvbqbey txvbqbjtp txvbqb17ia txvbqbhnp txvbqbux3 txvbqb2g9 txvbqb1uy txvbqb2et txvbqb17u txvbqb196f txvbqb19d9 txvbqbv txvbqb3f txvbqb7h txvbqb75 txvbqb7t txvbqb1bs9 txvbqb1adl txvbqb1ayh qbwcue0 txvbqb1cb0 txvbqb1cws", t = "txvbqb17h7 txvbqbhmm";
3
+ var e = "hwnq700 txvbqbfca txvbqbey txvbqbldo txvbqb1929 txvbqbj7o txvbqbwh2 txvbqb2r3 txvbqb25s txvbqb2pn txvbqb1d9 txvbqb1atn txvbqb1b2f txvbqbv txvbqb3f txvbqb7h txvbqb75 txvbqb7t txvbqb1e3x txvbqb1cid txvbqb1dal qbwcue0 txvbqb1etc txvbqb1fls", t = "txvbqb1916 txvbqbj6l";
4
4
  //#endregion
5
5
  export { e as action, t as icon };
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeFilterAction.css.js","names":[],"sources":["../../../../../src/components/backoffice/filters/backofficeFilterAction.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles, stateSprinkles } from '@plumile/ui/theme/sprinkles.css.js';\nimport { focusRing } from '@plumile/ui/theme/styleRecipes.css.js';\n\nexport const action = style([\n sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 7,\n height: 7,\n padding: 0,\n borderRadius: 'md',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n backgroundColor: 'surfaceMuted',\n color: 'brandPrimaryRed',\n cursor: 'pointer',\n textDecoration: 'none',\n transitionProperty: 'colors',\n transitionDuration: 120,\n transitionTimingFunction: 'ease',\n }),\n stateSprinkles({\n color: { hover: 'text' },\n backgroundColor: { hover: 'primaryLight' },\n borderColor: { hover: 'primary' },\n }),\n focusRing,\n]);\n\nexport const icon = sprinkles({\n width: 4,\n height: 4,\n});\n"],"mappings":""}
1
+ {"version":3,"file":"backofficeFilterAction.css.js","names":[],"sources":["../../../../../src/components/backoffice/filters/backofficeFilterAction.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles, stateSprinkles } from '@plumile/ui/theme/sprinkles.css.js';\nimport { focusRing } from '@plumile/ui/theme/styleRecipes.css.js';\n\nexport const action = style([\n sprinkles({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 7,\n height: 7,\n padding: 0,\n borderRadius: 'md',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n backgroundColor: 'surfaceMuted',\n color: 'tonePrimaryText',\n cursor: 'pointer',\n textDecoration: 'none',\n transitionProperty: 'colors',\n transitionDuration: 120,\n transitionTimingFunction: 'ease',\n }),\n stateSprinkles({\n color: { hover: 'text' },\n backgroundColor: { hover: 'tonePrimarySurface' },\n borderColor: { hover: 'tonePrimaryBorder' },\n }),\n focusRing,\n]);\n\nexport const icon = sprinkles({\n width: 4,\n height: 4,\n});\n"],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/components/backoffice/filters/deferredFilterSearchInput.css.ts
3
- var e = "txvbqb17w0", t = "ds2thc0 txvbqbdsb txvbqbey txvbqbg9v", n = "ds2thc1 txvbqb6 txvbqbdsb txvbqbey txvbqbjtp txvbqb17ia txvbqbhnp txvbqbux3 txvbqb2g9 txvbqb1g5 txvbqb1933 txvbqb19cd txvbqbv txvbqb7h txvbqb75 txvbqb7t", r = "txvbqbdsb txvbqb17ia txvbqbhnp txvbqbf7y";
3
+ var e = "txvbqb19fz", t = "ds2thc0 txvbqbfca txvbqbey txvbqbhtu", n = "ds2thc1 txvbqb6 txvbqbfca txvbqbey txvbqbldo txvbqb1929 txvbqbj7o txvbqbwh2 txvbqb2r3 txvbqb1qz txvbqb1aqb txvbqb1b19 txvbqbv txvbqb7h txvbqb75 txvbqb7t", r = "txvbqbfca txvbqb1929 txvbqbj7o txvbqbgrx";
4
4
  //#endregion
5
5
  export { n as actionButton, r as actionButtonSpacer, t as actions, e as container };
6
6
 
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/components/backoffice/filters/entityIdFilterField.css.ts
3
- var e = "txvbqbdr8 txvbqbey txvbqb17ro txvbqbs65 txvbqbt9i", t = "oa1uye0 txvbqbyoi txvbqbzm3 txvbqb11ed txvbqbwqg txvbqbdrl txvbqbey txvbqbdxd txvbqbt9i txvbqb2gz txvbqb1uy txvbqb2et txvbqb17h txvbqb196b txvbqb19c9 txvbqb7g txvbqb76 txvbqb7t", n = "oa1uye1 txvbqb6 txvbqbdr8 txvbqbf6i txvbqbjtp txvbqbt9i txvbqb17w0 txvbqb16ex txvbqbv txvbqb1g5 txvbqb1933 txvbqb19c9 txvbqbux3", r = "txvbqbdr8 txvbqbf6i txvbqbjtp txvbqbg9v txvbqbt9i txvbqb17w0 txvbqbs65", i = "txvbqbdxd txvbqbt9i txvbqbdr8 txvbqbey txvbqbusr", a = "txvbqbdqi txvbqb19cd txvbqb96 txvbqbfcn txvbqbt9i txvbqbusr txvbqb16g0 txvbqb18xk", o = "txvbqbdqi txvbqbt9i txvbqbusr txvbqb16g0 txvbqb18xk txvbqb9j txvbqbfd0", s = "txvbqbdqi txvbqbt9i txvbqbusr txvbqb16g0 txvbqb18xk txvbqb19cd txvbqb9j", c = "oa1uye3 oa1uye2 txvbqb6 txvbqbdsb txvbqbey txvbqbgr txvbqbjtp txvbqb17ia txvbqbhnp txvbqbux3 txvbqb2g9 txvbqb1g5 txvbqb1933 txvbqb19cd txvbqbv txvbqb7h txvbqb75 txvbqb7t", l = "oa1uye4 oa1uye2 txvbqb6 txvbqbdsb txvbqbey txvbqbgr txvbqbjtp txvbqb17ia txvbqbhnp txvbqbux3 txvbqb2g9 txvbqb1g5 txvbqb1933 txvbqb19cd txvbqbv txvbqb7h txvbqb75 txvbqb7t", u = "txvbqb17h7 txvbqbhmm";
3
+ var e = "txvbqbfb7 txvbqbey txvbqb19bn txvbqbtq4 txvbqbuth", t = "oa1uye0 txvbqb108h txvbqb1162 txvbqb12yc txvbqbyaf txvbqbfbk txvbqbey txvbqbfhc txvbqbuth txvbqb2rt txvbqb25s txvbqb2pn txvbqb1cw txvbqb1atj txvbqb1b15 txvbqb7g txvbqb76 txvbqb7t", n = "oa1uye1 txvbqb6 txvbqbfb7 txvbqbgqh txvbqbldo txvbqbuth txvbqb19fz txvbqb17yw txvbqbv txvbqb1qz txvbqb1aqb txvbqb1b15 txvbqbwh2", r = "txvbqbfb7 txvbqbgqh txvbqbldo txvbqbhtu txvbqbuth txvbqb19fz txvbqbtq4", i = "txvbqbfhc txvbqbuth txvbqbfb7 txvbqbey txvbqbwcq", a = "txvbqbfah txvbqb1b19 txvbqb96 txvbqbgwm txvbqbuth txvbqbwcq txvbqb17zz txvbqb1ahj", o = "txvbqbfah txvbqbuth txvbqbwcq txvbqb17zz txvbqb1ahj txvbqb9j txvbqbgwz", s = "txvbqbfah txvbqbuth txvbqbwcq txvbqb17zz txvbqb1ahj txvbqb1b19 txvbqb9j", c = "oa1uye3 oa1uye2 txvbqb6 txvbqbfca txvbqbey txvbqbgr txvbqbldo txvbqb1929 txvbqbj7o txvbqbwh2 txvbqb2r3 txvbqb1qz txvbqb1aqb txvbqb1b19 txvbqbv txvbqb7h txvbqb75 txvbqb7t", l = "oa1uye4 oa1uye2 txvbqb6 txvbqbfca txvbqbey txvbqbgr txvbqbldo txvbqb1929 txvbqbj7o txvbqbwh2 txvbqb2r3 txvbqb1qz txvbqb1aqb txvbqb1b19 txvbqbv txvbqb7h txvbqb75 txvbqb7t", u = "txvbqb1916 txvbqbj6l";
4
4
  //#endregion
5
5
  export { u as actionIcon, l as clearButton, e as container, r as content, a as labelText, c as pickActionButton, n as pickerButton, t as pickerControl, s as placeholder, i as valueBox, o as valueText };
6
6