@plumile/backoffice-react 0.2.3 → 0.2.5

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 (296) hide show
  1. package/README.md +14 -3
  2. package/lib/esm/auth/AuthRefreshNotice.js +21 -18
  3. package/lib/esm/auth/AuthRefreshNotice.js.map +1 -1
  4. package/lib/esm/auth/TotpQrCode.js +20 -12
  5. package/lib/esm/auth/TotpQrCode.js.map +1 -1
  6. package/lib/esm/auth/authRefreshNotice.css.js +2 -1
  7. package/lib/esm/auth/authRefreshNotice.css.js.map +1 -1
  8. package/lib/esm/auth/login/AuthPanel.js.map +1 -1
  9. package/lib/esm/auth/login/EmailCapturePanel.js +26 -28
  10. package/lib/esm/auth/login/EmailCapturePanel.js.map +1 -1
  11. package/lib/esm/auth/login/LoginFlow.js +11 -11
  12. package/lib/esm/auth/login/LoginFlow.js.map +1 -1
  13. package/lib/esm/auth/login/MethodChooser.js +18 -16
  14. package/lib/esm/auth/login/MethodChooser.js.map +1 -1
  15. package/lib/esm/auth/login/MfaChallengeForm.js +47 -52
  16. package/lib/esm/auth/login/MfaChallengeForm.js.map +1 -1
  17. package/lib/esm/auth/login/OidcButtons.js +3 -2
  18. package/lib/esm/auth/login/OidcButtons.js.map +1 -1
  19. package/lib/esm/auth/login/PasskeyLoginForm.js +13 -15
  20. package/lib/esm/auth/login/PasskeyLoginForm.js.map +1 -1
  21. package/lib/esm/auth/login/PasswordLoginPanel.js +8 -8
  22. package/lib/esm/auth/login/PasswordLoginPanel.js.map +1 -1
  23. package/lib/esm/auth/login/loginPage.css.js +1 -1
  24. package/lib/esm/auth/login/loginPage.css.js.map +1 -1
  25. package/lib/esm/auth/pages/AcceptInvitationScreen.js +80 -75
  26. package/lib/esm/auth/pages/AcceptInvitationScreen.js.map +1 -1
  27. package/lib/esm/auth/pages/PasswordResetCompleteScreen.js +31 -31
  28. package/lib/esm/auth/pages/PasswordResetCompleteScreen.js.map +1 -1
  29. package/lib/esm/auth/pages/PasswordResetRequestScreen.js +33 -29
  30. package/lib/esm/auth/pages/PasswordResetRequestScreen.js.map +1 -1
  31. package/lib/esm/auth/pages/VerifyEmailScreen.js +42 -40
  32. package/lib/esm/auth/pages/VerifyEmailScreen.js.map +1 -1
  33. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js +202 -210
  34. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js.map +1 -1
  35. package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js +1 -1
  36. package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js.map +1 -1
  37. package/lib/esm/components/backoffice/actions/toastViewAction.js.map +1 -1
  38. package/lib/esm/components/backoffice/billing/BackofficeBillingUsageChart.js +36 -30
  39. package/lib/esm/components/backoffice/billing/BackofficeBillingUsageChart.js.map +1 -1
  40. package/lib/esm/components/backoffice/billing/backofficeBillingUsageChart.css.js +1 -1
  41. package/lib/esm/components/backoffice/billing/backofficeBillingUsageChart.css.js.map +1 -1
  42. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js +36 -33
  43. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js.map +1 -1
  44. package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js.map +1 -1
  45. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js +1 -1
  46. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js.map +1 -1
  47. package/lib/esm/components/backoffice/detail/BackofficeEntitySummaryHeader.js +24 -20
  48. package/lib/esm/components/backoffice/detail/BackofficeEntitySummaryHeader.js.map +1 -1
  49. package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js +1 -1
  50. package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js.map +1 -1
  51. package/lib/esm/components/backoffice/detail/BackofficeTokenUsageBreakdown.js +7 -8
  52. package/lib/esm/components/backoffice/detail/BackofficeTokenUsageBreakdown.js.map +1 -1
  53. package/lib/esm/components/backoffice/detail/BackofficeUsageCostBreakdown.js +49 -45
  54. package/lib/esm/components/backoffice/detail/BackofficeUsageCostBreakdown.js.map +1 -1
  55. package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js +1 -1
  56. package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js.map +1 -1
  57. package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js +1 -1
  58. package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js.map +1 -1
  59. package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js +1 -1
  60. package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js.map +1 -1
  61. package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js +1 -1
  62. package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js.map +1 -1
  63. package/lib/esm/components/backoffice/detail/backofficeEntitySummaryHeader.css.js +1 -1
  64. package/lib/esm/components/backoffice/detail/backofficeEntitySummaryHeader.css.js.map +1 -1
  65. package/lib/esm/components/backoffice/detail/backofficeRelationsSummaryGrid.css.js +1 -1
  66. package/lib/esm/components/backoffice/detail/backofficeRelationsSummaryGrid.css.js.map +1 -1
  67. package/lib/esm/components/backoffice/detail/backofficeUsageCostBreakdown.css.js +1 -1
  68. package/lib/esm/components/backoffice/detail/backofficeUsageCostBreakdown.css.js.map +1 -1
  69. package/lib/esm/components/backoffice/errors/BackofficeErrorBoundary.js +1 -1
  70. package/lib/esm/components/backoffice/errors/BackofficeErrorBoundary.js.map +1 -1
  71. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js +1 -1
  72. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js.map +1 -1
  73. package/lib/esm/components/backoffice/filters/DeferredFilterSearchInput.js +15 -15
  74. package/lib/esm/components/backoffice/filters/DeferredFilterSearchInput.js.map +1 -1
  75. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js +53 -65
  76. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js.map +1 -1
  77. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js +1 -1
  78. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js.map +1 -1
  79. package/lib/esm/components/backoffice/filters/deferredFilterSearchInput.css.js +1 -1
  80. package/lib/esm/components/backoffice/filters/deferredFilterSearchInput.css.js.map +1 -1
  81. package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js +2 -2
  82. package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js.map +1 -1
  83. package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js +6 -6
  84. package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js.map +1 -1
  85. package/lib/esm/components/backoffice/hub/backofficeHubTemplate.css.js +1 -1
  86. package/lib/esm/components/backoffice/hub/backofficeHubTemplate.css.js.map +1 -1
  87. package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js +1 -1
  88. package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js.map +1 -1
  89. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js +3 -3
  90. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js.map +1 -1
  91. package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js +1 -1
  92. package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js.map +1 -1
  93. package/lib/esm/components/backoffice/layout/buildSidebarSections.js +152 -172
  94. package/lib/esm/components/backoffice/layout/buildSidebarSections.js.map +1 -1
  95. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js +2 -5
  96. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js.map +1 -1
  97. package/lib/esm/components/backoffice/layout/sidebarUtils.js +1 -1
  98. package/lib/esm/components/backoffice/layout/sidebarUtils.js.map +1 -1
  99. package/lib/esm/components/backoffice/links/BackofficeLinkContent.js +1 -1
  100. package/lib/esm/components/backoffice/links/backofficeLink.css.js +1 -1
  101. package/lib/esm/components/backoffice/links/backofficeLink.css.js.map +1 -1
  102. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js +1 -1
  103. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js.map +1 -1
  104. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js +1 -1
  105. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js.map +1 -1
  106. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js +1 -1
  107. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js.map +1 -1
  108. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js +93 -82
  109. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +1 -1
  110. package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js +1 -1
  111. package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js.map +1 -1
  112. package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js +1 -1
  113. package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js.map +1 -1
  114. package/lib/esm/components/backoffice/routing/BackofficeContentError.js +6 -3
  115. package/lib/esm/components/backoffice/routing/BackofficeContentError.js.map +1 -1
  116. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js +7 -7
  117. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js.map +1 -1
  118. package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js +1 -1
  119. package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js.map +1 -1
  120. package/lib/esm/components/backoffice/routing/backofficeContentError.css.js +1 -1
  121. package/lib/esm/components/backoffice/routing/backofficeContentError.css.js.map +1 -1
  122. package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js +1 -1
  123. package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js.map +1 -1
  124. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailNotFound.js +3 -2
  125. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailNotFound.js.map +1 -1
  126. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js +314 -309
  127. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js.map +1 -1
  128. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js +1 -1
  129. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js.map +1 -1
  130. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js +1 -1
  131. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js.map +1 -1
  132. package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js +1 -1
  133. package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js.map +1 -1
  134. package/lib/esm/components/backoffice/shared/BackofficeFilterableCell.js +2 -2
  135. package/lib/esm/components/backoffice/shared/BackofficeFilterableCell.js.map +1 -1
  136. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js +1 -1
  137. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js.map +1 -1
  138. package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js +5 -5
  139. package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js.map +1 -1
  140. package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js +1 -1
  141. package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js.map +1 -1
  142. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js +12 -12
  143. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js.map +1 -1
  144. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js +3 -2
  145. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js.map +1 -1
  146. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js +15 -19
  147. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js.map +1 -1
  148. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js +1 -1
  149. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js.map +1 -1
  150. package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js +1 -1
  151. package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js.map +1 -1
  152. package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js +1 -1
  153. package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js.map +1 -1
  154. package/lib/esm/hooks/useBackofficeInfiniteScrollSentinel.js +17 -9
  155. package/lib/esm/hooks/useBackofficeInfiniteScrollSentinel.js.map +1 -1
  156. package/lib/esm/hooks/useCopyToClipboard.js +1 -1
  157. package/lib/esm/hooks/useCopyToClipboard.js.map +1 -1
  158. package/lib/esm/i18n/locales/en/backofficeReact.js +21 -2
  159. package/lib/esm/i18n/locales/en/backofficeReact.js.map +1 -1
  160. package/lib/esm/i18n/locales/fr/backofficeReact.js +21 -2
  161. package/lib/esm/i18n/locales/fr/backofficeReact.js.map +1 -1
  162. package/lib/esm/pages/BackofficeDashboardPage.js +42 -41
  163. package/lib/esm/pages/BackofficeDashboardPage.js.map +1 -1
  164. package/lib/esm/pages/BackofficeDashboardWidgetContent.js +291 -255
  165. package/lib/esm/pages/BackofficeDashboardWidgetContent.js.map +1 -1
  166. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js +47 -49
  167. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +1 -1
  168. package/lib/esm/pages/BackofficeEntityDetailPage.js +111 -105
  169. package/lib/esm/pages/BackofficeEntityDetailPage.js.map +1 -1
  170. package/lib/esm/pages/BackofficeEntityDetailPage.view-helpers.js +213 -213
  171. package/lib/esm/pages/BackofficeEntityDetailPage.view-helpers.js.map +1 -1
  172. package/lib/esm/pages/BackofficeEntityListDataPage.js +101 -83
  173. package/lib/esm/pages/BackofficeEntityListDataPage.js.map +1 -1
  174. package/lib/esm/pages/BackofficeEntityListPage.helpers.js +10 -4
  175. package/lib/esm/pages/BackofficeEntityListPage.helpers.js.map +1 -1
  176. package/lib/esm/pages/BackofficeEntityListPage.js +55 -54
  177. package/lib/esm/pages/BackofficeEntityListPage.js.map +1 -1
  178. package/lib/esm/pages/BackofficeEntityListRouteContext.js.map +1 -1
  179. package/lib/esm/pages/BackofficeHubPage.js +1 -1
  180. package/lib/esm/pages/BackofficeHubPage.js.map +1 -1
  181. package/lib/esm/pages/BackofficeLayoutPage.js +64 -56
  182. package/lib/esm/pages/BackofficeLayoutPage.js.map +1 -1
  183. package/lib/esm/pages/backofficeDashboardPage.css.js +1 -1
  184. package/lib/esm/pages/backofficeDashboardPage.css.js.map +1 -1
  185. package/lib/esm/pages/backofficeEntityDetailPage.css.js +1 -1
  186. package/lib/esm/pages/backofficeEntityDetailPage.css.js.map +1 -1
  187. package/lib/esm/pages/backofficeEntityListPage.css.js +1 -1
  188. package/lib/esm/pages/backofficeEntityListPage.css.js.map +1 -1
  189. package/lib/esm/pages/detail/BackofficeEntityDetailLayoutContext.js.map +1 -1
  190. package/lib/esm/pages/detail/BackofficeEntityDetailManifestFallback.js +11 -11
  191. package/lib/esm/pages/detail/BackofficeEntityDetailManifestFallback.js.map +1 -1
  192. package/lib/esm/pages/detail/buildTabsItems.js.map +1 -1
  193. package/lib/esm/provider/BackofficeProvider.js +41 -39
  194. package/lib/esm/provider/BackofficeProvider.js.map +1 -1
  195. package/lib/esm/router/createBackofficeRoutes.js +23 -23
  196. package/lib/esm/router/createBackofficeRoutes.js.map +1 -1
  197. package/lib/esm/storybook/backofficeDashboardPageStory.css.js +6 -0
  198. package/lib/esm/storybook/backofficeDashboardPageStory.css.js.map +1 -0
  199. package/lib/esm/storybook/relay/RelayStory.css.js +1 -1
  200. package/lib/esm/storybook/relay/RelayStory.css.js.map +1 -1
  201. package/lib/esm/style.css +1 -1
  202. package/lib/types/auth/AuthRefreshNotice.d.ts +5 -1
  203. package/lib/types/auth/AuthRefreshNotice.d.ts.map +1 -1
  204. package/lib/types/auth/TotpQrCode.d.ts +2 -1
  205. package/lib/types/auth/TotpQrCode.d.ts.map +1 -1
  206. package/lib/types/auth/authRefreshNotice.css.d.ts.map +1 -1
  207. package/lib/types/auth/login/AuthPanel.d.ts.map +1 -1
  208. package/lib/types/auth/login/EmailCapturePanel.d.ts.map +1 -1
  209. package/lib/types/auth/login/LoginFlow.d.ts.map +1 -1
  210. package/lib/types/auth/login/MethodChooser.d.ts.map +1 -1
  211. package/lib/types/auth/login/MfaChallengeForm.d.ts.map +1 -1
  212. package/lib/types/auth/login/OidcButtons.d.ts.map +1 -1
  213. package/lib/types/auth/login/PasskeyLoginForm.d.ts.map +1 -1
  214. package/lib/types/auth/login/PasswordLoginPanel.d.ts +1 -1
  215. package/lib/types/auth/login/PasswordLoginPanel.d.ts.map +1 -1
  216. package/lib/types/auth/login/loginPage.css.d.ts.map +1 -1
  217. package/lib/types/auth/pages/AcceptInvitationScreen.d.ts.map +1 -1
  218. package/lib/types/auth/pages/PasswordResetCompleteScreen.d.ts.map +1 -1
  219. package/lib/types/auth/pages/PasswordResetRequestScreen.d.ts.map +1 -1
  220. package/lib/types/auth/pages/VerifyEmailScreen.d.ts.map +1 -1
  221. package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts +3 -3
  222. package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts.map +1 -1
  223. package/lib/types/components/backoffice/actions/toastViewAction.d.ts +1 -1
  224. package/lib/types/components/backoffice/actions/toastViewAction.d.ts.map +1 -1
  225. package/lib/types/components/backoffice/billing/BackofficeBillingUsageChart.d.ts +2 -1
  226. package/lib/types/components/backoffice/billing/BackofficeBillingUsageChart.d.ts.map +1 -1
  227. package/lib/types/components/backoffice/columns/buildDataTableColumns.d.ts +2 -2
  228. package/lib/types/components/backoffice/columns/buildDataTableColumns.d.ts.map +1 -1
  229. package/lib/types/components/backoffice/detail/BackofficeDetailBadgeRow.d.ts.map +1 -1
  230. package/lib/types/components/backoffice/detail/BackofficeEntitySummaryHeader.d.ts.map +1 -1
  231. package/lib/types/components/backoffice/detail/BackofficeRelationsSummaryGrid.d.ts +1 -1
  232. package/lib/types/components/backoffice/detail/BackofficeRelationsSummaryGrid.d.ts.map +1 -1
  233. package/lib/types/components/backoffice/detail/BackofficeTokenUsageBreakdown.d.ts.map +1 -1
  234. package/lib/types/components/backoffice/detail/BackofficeUsageCostBreakdown.d.ts +1 -1
  235. package/lib/types/components/backoffice/detail/BackofficeUsageCostBreakdown.d.ts.map +1 -1
  236. package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.d.ts +1 -1
  237. package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.d.ts.map +1 -1
  238. package/lib/types/components/backoffice/filters/EntityIdFilterField.d.ts.map +1 -1
  239. package/lib/types/components/backoffice/filters/backofficeFilterAction.css.d.ts.map +1 -1
  240. package/lib/types/components/backoffice/filters/deferredFilterSearchInput.css.d.ts.map +1 -1
  241. package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts +0 -1
  242. package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts.map +1 -1
  243. package/lib/types/components/backoffice/hub/backofficeHubTemplate.css.d.ts.map +1 -1
  244. package/lib/types/components/backoffice/layout/backofficeSidebarActions.css.d.ts.map +1 -1
  245. package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts +2 -2
  246. package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts.map +1 -1
  247. package/lib/types/components/backoffice/layout/mapViewerToSidebarProfileView.d.ts +1 -1
  248. package/lib/types/components/backoffice/layout/mapViewerToSidebarProfileView.d.ts.map +1 -1
  249. package/lib/types/components/backoffice/list/RowFlagsCell.css.d.ts.map +1 -1
  250. package/lib/types/components/backoffice/overview/backofficeOverviewLayout.css.d.ts.map +1 -1
  251. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts +3 -3
  252. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts.map +1 -1
  253. package/lib/types/components/backoffice/refs/backofficeRelatedCountLink.css.d.ts.map +1 -1
  254. package/lib/types/components/backoffice/routing/BackofficeContentError.d.ts.map +1 -1
  255. package/lib/types/components/backoffice/scaffolds/BackofficeEntityDetailNotFound.d.ts.map +1 -1
  256. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts +2 -2
  257. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts.map +1 -1
  258. package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.d.ts +1 -1
  259. package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.d.ts.map +1 -1
  260. package/lib/types/components/backoffice/shared/backofficeFilterableCell.css.d.ts.map +1 -1
  261. package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts.map +1 -1
  262. package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts.map +1 -1
  263. package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts.map +1 -1
  264. package/lib/types/hooks/useBackofficeInfiniteScrollSentinel.d.ts +1 -2
  265. package/lib/types/hooks/useBackofficeInfiniteScrollSentinel.d.ts.map +1 -1
  266. package/lib/types/i18n/resources.d.ts +44 -2
  267. package/lib/types/i18n/resources.d.ts.map +1 -1
  268. package/lib/types/pages/BackofficeDashboardPage.d.ts.map +1 -1
  269. package/lib/types/pages/BackofficeDashboardWidgetContent.d.ts.map +1 -1
  270. package/lib/types/pages/BackofficeEntityDetailLayoutPage.d.ts.map +1 -1
  271. package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -1
  272. package/lib/types/pages/BackofficeEntityDetailPage.view-helpers.d.ts +1 -1
  273. package/lib/types/pages/BackofficeEntityDetailPage.view-helpers.d.ts.map +1 -1
  274. package/lib/types/pages/BackofficeEntityListDataPage.d.ts.map +1 -1
  275. package/lib/types/pages/BackofficeEntityListPage.d.ts.map +1 -1
  276. package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts +9 -9
  277. package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts.map +1 -1
  278. package/lib/types/pages/BackofficeEntityListRouteContext.d.ts +2 -2
  279. package/lib/types/pages/BackofficeEntityListRouteContext.d.ts.map +1 -1
  280. package/lib/types/pages/BackofficeLayoutPage.d.ts.map +1 -1
  281. package/lib/types/pages/backofficeEntityListPage.css.d.ts.map +1 -1
  282. package/lib/types/pages/detail/BackofficeEntityDetailLayoutContext.d.ts +1 -1
  283. package/lib/types/pages/detail/BackofficeEntityDetailLayoutContext.d.ts.map +1 -1
  284. package/lib/types/pages/detail/buildTabsItems.d.ts +1 -1
  285. package/lib/types/pages/detail/buildTabsItems.d.ts.map +1 -1
  286. package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
  287. package/lib/types/provider/types.d.ts +2 -0
  288. package/lib/types/provider/types.d.ts.map +1 -1
  289. package/lib/types/router/createBackofficeRoutes.d.ts +0 -1
  290. package/lib/types/router/createBackofficeRoutes.d.ts.map +1 -1
  291. package/lib/types/storybook/backofficeDashboardPageStory.css.d.ts +2 -0
  292. package/lib/types/storybook/backofficeDashboardPageStory.css.d.ts.map +1 -0
  293. package/package.json +17 -17
  294. package/lib/esm/components/backoffice/technical/TechnicalIdentifierValue.js +0 -2
  295. package/lib/types/components/backoffice/technical/TechnicalIdentifierValue.d.ts +0 -2
  296. package/lib/types/components/backoffice/technical/TechnicalIdentifierValue.d.ts.map +0 -1
@@ -1,85 +1,80 @@
1
1
  import { actionsRow as e, formSurface as t, helper as n, inlineLink as r, stack as i } from "./loginPage.css.js";
2
2
  import { useBackofficeReactTranslation as a } from "../../i18n/useBackofficeReactTranslation.js";
3
3
  import { useCallback as o, useEffect as s, useState as c } from "react";
4
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
5
- import { Button as d } from "@plumile/ui/atomic/atoms/button/Button.js";
6
- import { FormError as f } from "@plumile/ui/atomic/molecules/form_error/FormError.js";
7
- import { FormField as p } from "@plumile/ui/atomic/molecules/form_field/FormField.js";
8
- import { Form as m } from "@plumile/ui/atomic/molecules/form/Form.js";
4
+ import { Form as l, FormField as u } from "@plumile/ui";
5
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
6
+ import { Button as p } from "@plumile/ui/button";
9
7
  //#region src/auth/login/MfaChallengeForm.tsx
10
- var h = ({ auth: h, onSuccess: g, onBack: _ }) => {
11
- let { t: v } = a(), [y, b] = c(""), [x, S] = c(null);
8
+ var m = ({ auth: m, onSuccess: h, onBack: g }) => {
9
+ let { t: _ } = a(), [v, y] = c(""), [b, x] = c(null);
12
10
  s(() => {
13
- h.clearError(), S(null);
14
- }, [h]);
15
- let C = o(async (e) => {
16
- e.preventDefault(), S(null);
17
- let t = y.trim();
11
+ m.clearError(), x(null);
12
+ }, [m]);
13
+ let S = o(async (e) => {
14
+ e.preventDefault(), x(null);
15
+ let t = v.trim();
18
16
  if (t.length < 4) {
19
- S(v("auth.mfa.errors.shortCode"));
17
+ x(_("auth.mfa.errors.shortCode"));
20
18
  return;
21
19
  }
22
20
  try {
23
21
  let e = { code: t };
24
- await h.completeMfa(e), g();
22
+ await m.completeMfa(e), h();
25
23
  } catch {
26
- S(v("auth.mfa.errors.verificationFailed"));
24
+ x(_("auth.mfa.errors.verificationFailed"));
27
25
  }
28
26
  }, [
27
+ m,
28
+ v,
29
29
  h,
30
- y,
31
- g,
32
- v
33
- ]), w = h.emailHint == null ? v("auth.mfa.helper.default") : v("auth.mfa.helper.withEmail", { email: h.emailHint }), T = x, E = o((e) => {
34
- C(e).catch(() => {});
35
- }, [C]);
36
- return /* @__PURE__ */ u(m, {
30
+ _
31
+ ]), C = m.emailHint == null ? _("auth.mfa.helper.default") : _("auth.mfa.helper.withEmail", { email: m.emailHint }), w = o((e) => {
32
+ S(e).catch(() => {});
33
+ }, [S]);
34
+ return /* @__PURE__ */ f(l, {
37
35
  className: t,
38
- onSubmit: E,
36
+ onSubmit: w,
39
37
  noValidate: !0,
40
38
  initialFocus: "first-form-control",
41
- children: [/* @__PURE__ */ u("div", {
39
+ children: [/* @__PURE__ */ f("div", {
42
40
  className: i,
43
- children: [
44
- /* @__PURE__ */ l("p", {
45
- className: n,
46
- children: w
47
- }),
48
- T == null ? null : /* @__PURE__ */ l(f, { children: T }),
49
- /* @__PURE__ */ l(p, {
50
- label: v("auth.mfa.form.label"),
51
- name: "code",
52
- type: "text",
53
- value: y,
54
- onChange: (e) => {
55
- b(e.target.value), S(null);
56
- },
57
- placeholder: v("auth.mfa.form.placeholder"),
58
- autoComplete: "one-time-code",
59
- required: !0
60
- })
61
- ]
62
- }), /* @__PURE__ */ u("div", {
41
+ children: [/* @__PURE__ */ d("p", {
42
+ className: n,
43
+ children: C
44
+ }), /* @__PURE__ */ d(u, {
45
+ label: _("auth.mfa.form.label"),
46
+ error: b,
47
+ name: "code",
48
+ type: "text",
49
+ value: v,
50
+ onChange: (e) => {
51
+ y(e.target.value), x(null);
52
+ },
53
+ placeholder: _("auth.mfa.form.placeholder"),
54
+ autoComplete: "one-time-code",
55
+ required: !0
56
+ })]
57
+ }), /* @__PURE__ */ f("div", {
63
58
  className: e,
64
- children: [/* @__PURE__ */ l(d, {
59
+ children: [/* @__PURE__ */ d(p, {
65
60
  type: "button",
66
- variant: "text",
61
+ variant: "plain",
67
62
  size: "small",
68
63
  className: r,
69
64
  onClick: () => {
70
- h.reset(), _();
65
+ m.reset(), g();
71
66
  },
72
- children: v("auth.mfa.actions.back")
73
- }), /* @__PURE__ */ l(d, {
67
+ children: _("auth.mfa.actions.back")
68
+ }), /* @__PURE__ */ d(p, {
74
69
  type: "submit",
75
70
  size: "large",
76
- isLoading: h.isLoading,
77
- children: v("auth.mfa.actions.submit")
71
+ loading: m.isLoading,
72
+ children: _("auth.mfa.actions.submit")
78
73
  })]
79
74
  })]
80
75
  });
81
76
  };
82
77
  //#endregion
83
- export { h as MfaChallengeForm };
78
+ export { m as MfaChallengeForm };
84
79
 
85
80
  //# sourceMappingURL=MfaChallengeForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MfaChallengeForm.js","names":[],"sources":["../../../../src/auth/login/MfaChallengeForm.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport {\n useCallback,\n useEffect,\n useState,\n type FormEvent,\n type JSX,\n} from 'react';\nimport { useBackofficeReactTranslation } from '../../i18n/useBackofficeReactTranslation.js';\n\nimport { Button } from '@plumile/ui/atomic/atoms/button/Button.js';\nimport { FormError } from '@plumile/ui/atomic/molecules/form_error/FormError.js';\nimport { FormField } from '@plumile/ui/atomic/molecules/form_field/FormField.js';\nimport { Form } from '@plumile/ui/atomic/molecules/form/Form.js';\n\nimport type { TotpCredentials, UseAuthReturn } from '../../hooks/useAuth.js';\n\nimport * as styles from './loginPage.css.js';\n\ntype Props = {\n auth: Pick<\n UseAuthReturn,\n 'completeMfa' | 'isLoading' | 'error' | 'emailHint' | 'reset' | 'clearError'\n >;\n onSuccess: () => void;\n onBack: () => void;\n};\n\nexport const MfaChallengeForm = ({\n auth,\n onSuccess,\n onBack,\n}: Props): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const [code, setCode] = useState('');\n const [localError, setLocalError] = useState<string | null>(null);\n\n // Clear any stale errors when the MFA form is shown\n useEffect(() => {\n auth.clearError();\n setLocalError(null);\n }, [auth]);\n\n const handleSubmit = useCallback(\n async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setLocalError(null);\n\n const trimmed = code.trim();\n if (trimmed.length < 4) {\n setLocalError(t('auth.mfa.errors.shortCode'));\n return;\n }\n\n try {\n const credentials: TotpCredentials = {\n code: trimmed,\n };\n await auth.completeMfa(credentials);\n onSuccess();\n } catch {\n setLocalError(t('auth.mfa.errors.verificationFailed'));\n }\n },\n [auth, code, onSuccess, t],\n );\n\n const helper =\n auth.emailHint != null\n ? t('auth.mfa.helper.withEmail', { email: auth.emailHint })\n : t('auth.mfa.helper.default');\n\n const formError = localError;\n\n const handleSubmitEvent = useCallback(\n (event: FormEvent<HTMLFormElement>) => {\n handleSubmit(event).catch(() => {\n return undefined;\n });\n },\n [handleSubmit],\n );\n\n return (\n <Form\n className={styles.formSurface}\n onSubmit={handleSubmitEvent}\n noValidate\n initialFocus=\"first-form-control\"\n >\n <div className={styles.stack}>\n <p className={styles.helper}>{helper}</p>\n {formError != null ? <FormError>{formError}</FormError> : null}\n <FormField\n label={t('auth.mfa.form.label')}\n name=\"code\"\n type=\"text\"\n value={code}\n onChange={(event) => {\n setCode(event.target.value);\n setLocalError(null);\n }}\n placeholder={t('auth.mfa.form.placeholder')}\n autoComplete=\"one-time-code\"\n required\n />\n </div>\n <div className={styles.actionsRow}>\n <Button\n type=\"button\"\n variant=\"text\"\n size=\"small\"\n className={styles.inlineLink}\n onClick={() => {\n auth.reset();\n onBack();\n }}\n >\n {t('auth.mfa.actions.back')}\n </Button>\n <Button type=\"submit\" size=\"large\" isLoading={auth.isLoading}>\n {t('auth.mfa.actions.submit')}\n </Button>\n </div>\n </Form>\n );\n};\n"],"mappings":";;;;;;;;;AA4BA,IAAa,KAAoB,EAC/B,SACA,cACA,gBACwB;CACxB,IAAM,EAAE,SAAM,EAA8B,GACtC,CAAC,GAAM,KAAW,EAAS,EAAE,GAC7B,CAAC,GAAY,KAAiB,EAAwB,IAAI;CAGhE,QAAgB;EAEd,AADA,EAAK,WAAW,GAChB,EAAc,IAAI;CACpB,GAAG,CAAC,CAAI,CAAC;CAET,IAAM,IAAe,EACnB,OAAO,MAAsC;EAE3C,AADA,EAAM,eAAe,GACrB,EAAc,IAAI;EAElB,IAAM,IAAU,EAAK,KAAK;EAC1B,IAAI,EAAQ,SAAS,GAAG;GACtB,EAAc,EAAE,2BAA2B,CAAC;GAC5C;EACF;EAEA,IAAI;GACF,IAAM,IAA+B,EACnC,MAAM,EACR;GAEA,AADA,MAAM,EAAK,YAAY,CAAW,GAClC,EAAU;EACZ,QAAQ;GACN,EAAc,EAAE,oCAAoC,CAAC;EACvD;CACF,GACA;EAAC;EAAM;EAAM;EAAW;CAAC,CAC3B,GAEM,IACJ,EAAK,aAAa,OAEd,EAAE,yBAAyB,IAD3B,EAAE,6BAA6B,EAAE,OAAO,EAAK,UAAU,CAAC,GAGxD,IAAY,GAEZ,IAAoB,GACvB,MAAsC;EACrC,EAAa,CAAK,CAAC,CAAC,YAAY,CAEhC,CAAC;CACH,GACA,CAAC,CAAY,CACf;CAEA,OACE,kBAAC,GAAD;EACE,WAAW;EACX,UAAU;EACV,YAAA;EACA,cAAa;EAJf,UAAA,CAME,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA;IACE,kBAAC,KAAD;KAAG,WAAW;KAAgB,UAAA;IAAU,CAAA;IACvC,KAAa,OAA4C,OAArC,kBAAC,GAAD,EAAA,UAAY,EAAqB,CAAA;IACtD,kBAAC,GAAD;KACE,OAAO,EAAE,qBAAqB;KAC9B,MAAK;KACL,MAAK;KACL,OAAO;KACP,WAAW,MAAU;MAEnB,AADA,EAAQ,EAAM,OAAO,KAAK,GAC1B,EAAc,IAAI;KACpB;KACA,aAAa,EAAE,2BAA2B;KAC1C,cAAa;KACb,UAAA;IACD,CAAA;GACE;EACL,CAAA,GAAA,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA,CACE,kBAAC,GAAD;IACE,MAAK;IACL,SAAQ;IACR,MAAK;IACL,WAAW;IACX,eAAe;KAEb,AADA,EAAK,MAAM,GACX,EAAO;IACT;IAEC,UAAA,EAAE,uBAAuB;GACpB,CAAA,GACR,kBAAC,GAAD;IAAQ,MAAK;IAAS,MAAK;IAAQ,WAAW,EAAK;IAChD,UAAA,EAAE,yBAAyB;GACtB,CAAA,CACL;EACD,CAAA,CAAA;;AAEV"}
1
+ {"version":3,"file":"MfaChallengeForm.js","names":[],"sources":["../../../../src/auth/login/MfaChallengeForm.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useState,\n type FormEvent,\n type JSX,\n} from 'react';\nimport { useBackofficeReactTranslation } from '../../i18n/useBackofficeReactTranslation.js';\n\nimport { Button } from '@plumile/ui/button';\nimport { FormField, Form } from '@plumile/ui';\n\nimport type { TotpCredentials, UseAuthReturn } from '../../hooks/useAuth.js';\n\nimport * as styles from './loginPage.css.js';\n\ntype Props = {\n auth: Pick<\n UseAuthReturn,\n 'completeMfa' | 'isLoading' | 'error' | 'emailHint' | 'reset' | 'clearError'\n >;\n onSuccess: () => void;\n onBack: () => void;\n};\n\nexport const MfaChallengeForm = ({\n auth,\n onSuccess,\n onBack,\n}: Props): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const [code, setCode] = useState('');\n const [localError, setLocalError] = useState<string | null>(null);\n\n // Clear any stale errors when the MFA form is shown\n useEffect(() => {\n auth.clearError();\n setLocalError(null);\n }, [auth]);\n\n const handleSubmit = useCallback(\n async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setLocalError(null);\n\n const trimmed = code.trim();\n if (trimmed.length < 4) {\n setLocalError(t('auth.mfa.errors.shortCode'));\n return;\n }\n\n try {\n const credentials: TotpCredentials = {\n code: trimmed,\n };\n await auth.completeMfa(credentials);\n onSuccess();\n } catch {\n setLocalError(t('auth.mfa.errors.verificationFailed'));\n }\n },\n [auth, code, onSuccess, t],\n );\n\n const helper =\n auth.emailHint != null\n ? t('auth.mfa.helper.withEmail', { email: auth.emailHint })\n : t('auth.mfa.helper.default');\n\n const handleSubmitEvent = useCallback(\n (event: FormEvent<HTMLFormElement>) => {\n handleSubmit(event).catch(() => {\n return undefined;\n });\n },\n [handleSubmit],\n );\n\n return (\n <Form\n className={styles.formSurface}\n onSubmit={handleSubmitEvent}\n noValidate\n initialFocus=\"first-form-control\"\n >\n <div className={styles.stack}>\n <p className={styles.helper}>{helper}</p>\n <FormField\n label={t('auth.mfa.form.label')}\n error={localError}\n name=\"code\"\n type=\"text\"\n value={code}\n onChange={(event) => {\n setCode(event.target.value);\n setLocalError(null);\n }}\n placeholder={t('auth.mfa.form.placeholder')}\n autoComplete=\"one-time-code\"\n required\n />\n </div>\n <div className={styles.actionsRow}>\n <Button\n type=\"button\"\n variant=\"plain\"\n size=\"small\"\n className={styles.inlineLink}\n onClick={() => {\n auth.reset();\n onBack();\n }}\n >\n {t('auth.mfa.actions.back')}\n </Button>\n <Button type=\"submit\" size=\"large\" loading={auth.isLoading}>\n {t('auth.mfa.actions.submit')}\n </Button>\n </div>\n </Form>\n );\n};\n"],"mappings":";;;;;;;AAyBA,IAAa,KAAoB,EAC/B,SACA,cACA,gBACwB;CACxB,IAAM,EAAE,SAAM,EAA8B,GACtC,CAAC,GAAM,KAAW,EAAS,EAAE,GAC7B,CAAC,GAAY,KAAiB,EAAwB,IAAI;CAGhE,QAAgB;EAEd,AADA,EAAK,WAAW,GAChB,EAAc,IAAI;CACpB,GAAG,CAAC,CAAI,CAAC;CAET,IAAM,IAAe,EACnB,OAAO,MAAsC;EAE3C,AADA,EAAM,eAAe,GACrB,EAAc,IAAI;EAElB,IAAM,IAAU,EAAK,KAAK;EAC1B,IAAI,EAAQ,SAAS,GAAG;GACtB,EAAc,EAAE,2BAA2B,CAAC;GAC5C;EACF;EAEA,IAAI;GACF,IAAM,IAA+B,EACnC,MAAM,EACR;GAEA,AADA,MAAM,EAAK,YAAY,CAAW,GAClC,EAAU;EACZ,QAAQ;GACN,EAAc,EAAE,oCAAoC,CAAC;EACvD;CACF,GACA;EAAC;EAAM;EAAM;EAAW;CAAC,CAC3B,GAEM,IACJ,EAAK,aAAa,OAEd,EAAE,yBAAyB,IAD3B,EAAE,6BAA6B,EAAE,OAAO,EAAK,UAAU,CAAC,GAGxD,IAAoB,GACvB,MAAsC;EACrC,EAAa,CAAK,CAAC,CAAC,YAAY,CAEhC,CAAC;CACH,GACA,CAAC,CAAY,CACf;CAEA,OACE,kBAAC,GAAD;EACE,WAAW;EACX,UAAU;EACV,YAAA;EACA,cAAa;EAJf,UAAA,CAME,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA,CACE,kBAAC,KAAD;IAAG,WAAW;IAAgB,UAAA;GAAU,CAAA,GACxC,kBAAC,GAAD;IACE,OAAO,EAAE,qBAAqB;IAC9B,OAAO;IACP,MAAK;IACL,MAAK;IACL,OAAO;IACP,WAAW,MAAU;KAEnB,AADA,EAAQ,EAAM,OAAO,KAAK,GAC1B,EAAc,IAAI;IACpB;IACA,aAAa,EAAE,2BAA2B;IAC1C,cAAa;IACb,UAAA;GACD,CAAA,CACE;EACL,CAAA,GAAA,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA,CACE,kBAAC,GAAD;IACE,MAAK;IACL,SAAQ;IACR,MAAK;IACL,WAAW;IACX,eAAe;KAEb,AADA,EAAK,MAAM,GACX,EAAO;IACT;IAEC,UAAA,EAAE,uBAAuB;GACpB,CAAA,GACR,kBAAC,GAAD;IAAQ,MAAK;IAAS,MAAK;IAAQ,SAAS,EAAK;IAC9C,UAAA,EAAE,yBAAyB;GACtB,CAAA,CACL;EACD,CAAA,CAAA;;AAEV"}
@@ -1,7 +1,7 @@
1
1
  import { brandGhostButton as e, stack as t } from "./loginPage.css.js";
2
2
  import { useBackofficeReactTranslation as n } from "../../i18n/useBackofficeReactTranslation.js";
3
3
  import { jsx as r } from "react/jsx-runtime";
4
- import { Button as i } from "@plumile/ui/atomic/atoms/button/Button.js";
4
+ import { Button as i } from "@plumile/ui/button";
5
5
  //#region src/auth/login/OidcButtons.tsx
6
6
  var a = "/auth/oidc/start", o = ({ providers: o }) => {
7
7
  let { t: s } = n();
@@ -13,11 +13,12 @@ var a = "/auth/oidc/start", o = ({ providers: o }) => {
13
13
  let o = t.toLowerCase();
14
14
  return /* @__PURE__ */ r(i, {
15
15
  type: "button",
16
- variant: "secondary",
16
+ variant: "soft",
17
17
  className: e,
18
18
  onClick: () => {
19
19
  window.location.assign(`${a}?provider=${o}`);
20
20
  },
21
+ tone: "neutral",
21
22
  children: n
22
23
  }, t);
23
24
  })
@@ -1 +1 @@
1
- {"version":3,"file":"OidcButtons.js","names":[],"sources":["../../../../src/auth/login/OidcButtons.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { Button } from '@plumile/ui/atomic/atoms/button/Button.js';\n\nimport type { OidcProviderKind } from '../../modules/sharedSchemaTypes.js';\nimport { useBackofficeReactTranslation } from '../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './loginPage.css.js';\n\nconst OIDC_START_PATH = '/auth/oidc/start';\n\ntype Props = {\n providers: readonly OidcProviderKind[];\n};\n\nexport const OidcButtons = ({ providers }: Props): JSX.Element | null => {\n const { t } = useBackofficeReactTranslation();\n\n if (providers.length === 0) {\n return null;\n }\n\n return (\n <div className={styles.stack}>\n {providers.map((provider) => {\n let label = t('auth.oidc.buttons.generic');\n if (provider === 'GOOGLE') {\n label = t('auth.oidc.buttons.google');\n } else if (provider === 'APPLE') {\n label = t('auth.oidc.buttons.apple');\n }\n const providerName = provider.toLowerCase();\n return (\n <Button\n key={provider}\n type=\"button\"\n variant=\"secondary\"\n className={styles.brandGhostButton}\n onClick={() => {\n window.location.assign(\n `${OIDC_START_PATH}?provider=${providerName}`,\n );\n }}\n >\n {label}\n </Button>\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;;AASA,IAAM,IAAkB,oBAMX,KAAe,EAAE,mBAA2C;CACvE,IAAM,EAAE,SAAM,EAA8B;CAM5C,OAJI,EAAU,WAAW,IAChB,OAIP,kBAAC,OAAD;EAAK,WAAW;EACb,UAAA,EAAU,KAAK,MAAa;GAC3B,IAAI,IAAQ,EAAE,2BAA2B;GACzC,AAAI,MAAa,WACf,IAAQ,EAAE,0BAA0B,IAC3B,MAAa,YACtB,IAAQ,EAAE,yBAAyB;GAErC,IAAM,IAAe,EAAS,YAAY;GAC1C,OACE,kBAAC,GAAD;IAEE,MAAK;IACL,SAAQ;IACR,WAAW;IACX,eAAe;KACb,OAAO,SAAS,OACd,GAAG,EAAgB,YAAY,GACjC;IACF;IAEC,UAAA;GACK,GAXD,CAWC;EAEZ,CAAC;CACE,CAAA;AAET"}
1
+ {"version":3,"file":"OidcButtons.js","names":[],"sources":["../../../../src/auth/login/OidcButtons.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { Button } from '@plumile/ui/button';\n\nimport type { OidcProviderKind } from '../../modules/sharedSchemaTypes.js';\nimport { useBackofficeReactTranslation } from '../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './loginPage.css.js';\n\nconst OIDC_START_PATH = '/auth/oidc/start';\n\ntype Props = {\n providers: readonly OidcProviderKind[];\n};\n\nexport const OidcButtons = ({ providers }: Props): JSX.Element | null => {\n const { t } = useBackofficeReactTranslation();\n\n if (providers.length === 0) {\n return null;\n }\n\n return (\n <div className={styles.stack}>\n {providers.map((provider) => {\n let label = t('auth.oidc.buttons.generic');\n if (provider === 'GOOGLE') {\n label = t('auth.oidc.buttons.google');\n } else if (provider === 'APPLE') {\n label = t('auth.oidc.buttons.apple');\n }\n const providerName = provider.toLowerCase();\n return (\n <Button\n key={provider}\n type=\"button\"\n variant=\"soft\"\n className={styles.brandGhostButton}\n onClick={() => {\n window.location.assign(\n `${OIDC_START_PATH}?provider=${providerName}`,\n );\n }}\n tone=\"neutral\"\n >\n {label}\n </Button>\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;;AASA,IAAM,IAAkB,oBAMX,KAAe,EAAE,mBAA2C;CACvE,IAAM,EAAE,SAAM,EAA8B;CAM5C,OAJI,EAAU,WAAW,IAChB,OAIP,kBAAC,OAAD;EAAK,WAAW;EACb,UAAA,EAAU,KAAK,MAAa;GAC3B,IAAI,IAAQ,EAAE,2BAA2B;GACzC,AAAI,MAAa,WACf,IAAQ,EAAE,0BAA0B,IAC3B,MAAa,YACtB,IAAQ,EAAE,yBAAyB;GAErC,IAAM,IAAe,EAAS,YAAY;GAC1C,OACE,kBAAC,GAAD;IAEE,MAAK;IACL,SAAQ;IACR,WAAW;IACX,eAAe;KACb,OAAO,SAAS,OACd,GAAG,EAAgB,YAAY,GACjC;IACF;IACA,MAAK;IAEJ,UAAA;GACK,GAZD,CAYC;EAEZ,CAAC;CACE,CAAA;AAET"}
@@ -1,11 +1,9 @@
1
1
  import { actionsRow as e, formSurface as t, helper as n, inlineLink as r, stack as i } from "./loginPage.css.js";
2
2
  import { useBackofficeReactTranslation as a } from "../../i18n/useBackofficeReactTranslation.js";
3
3
  import { useCallback as o, useEffect as s, useState as c } from "react";
4
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
5
- import { Button as d } from "@plumile/ui/atomic/atoms/button/Button.js";
6
- import { FormError as f } from "@plumile/ui/atomic/molecules/form_error/FormError.js";
7
- import { FormField as p } from "@plumile/ui/atomic/molecules/form_field/FormField.js";
8
- import { Form as m } from "@plumile/ui/atomic/molecules/form/Form.js";
4
+ import { Form as l, FormError as u, FormField as d } from "@plumile/ui";
5
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
6
+ import { Button as m } from "@plumile/ui/button";
9
7
  //#region src/auth/login/PasskeyLoginForm.tsx
10
8
  var h = ({ auth: h, onSuccess: g, defaultEmail: _, isAttemptingPasskey: v = !1, onShowMethods: y }) => {
11
9
  let { t: b } = a(), [x, S] = c(h.emailHint ?? ""), [C, w] = c(null);
@@ -40,20 +38,20 @@ var h = ({ auth: h, onSuccess: g, defaultEmail: _, isAttemptingPasskey: v = !1,
40
38
  ]), E = C, D = o((e) => {
41
39
  T(e).catch(() => {});
42
40
  }, [T]);
43
- return /* @__PURE__ */ u(m, {
41
+ return /* @__PURE__ */ p(l, {
44
42
  className: t,
45
43
  onSubmit: D,
46
44
  noValidate: !0,
47
45
  initialFocus: "first-form-control",
48
- children: [/* @__PURE__ */ u("div", {
46
+ children: [/* @__PURE__ */ p("div", {
49
47
  className: i,
50
48
  children: [
51
- /* @__PURE__ */ l("p", {
49
+ /* @__PURE__ */ f("p", {
52
50
  className: n,
53
51
  children: b("auth.passkey.helper")
54
52
  }),
55
- E == null ? null : /* @__PURE__ */ l(f, { children: E }),
56
- /* @__PURE__ */ l(p, {
53
+ E == null ? null : /* @__PURE__ */ f(u, { children: E }),
54
+ /* @__PURE__ */ f(d, {
57
55
  label: b("auth.passkey.form.emailLabel"),
58
56
  name: "passkey-email",
59
57
  type: "email",
@@ -66,14 +64,14 @@ var h = ({ auth: h, onSuccess: g, defaultEmail: _, isAttemptingPasskey: v = !1,
66
64
  required: !0
67
65
  })
68
66
  ]
69
- }), /* @__PURE__ */ u("div", {
67
+ }), /* @__PURE__ */ p("div", {
70
68
  className: e,
71
- children: [/* @__PURE__ */ l(d, {
69
+ children: [/* @__PURE__ */ f(m, {
72
70
  type: "submit",
73
- variant: "primary",
74
- isLoading: h.isLoading,
71
+ variant: "solid",
72
+ loading: h.isLoading,
75
73
  children: b(v ? "auth.passkey.actions.submitting" : "auth.passkey.actions.submit")
76
- }), y == null ? null : /* @__PURE__ */ l("button", {
74
+ }), y == null ? null : /* @__PURE__ */ f("button", {
77
75
  type: "button",
78
76
  className: r,
79
77
  onClick: y,
@@ -1 +1 @@
1
- {"version":3,"file":"PasskeyLoginForm.js","names":[],"sources":["../../../../src/auth/login/PasskeyLoginForm.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport {\n useCallback,\n useEffect,\n useState,\n type FormEvent,\n type JSX,\n} from 'react';\nimport { useBackofficeReactTranslation } from '../../i18n/useBackofficeReactTranslation.js';\n\nimport { Button } from '@plumile/ui/atomic/atoms/button/Button.js';\nimport { FormError } from '@plumile/ui/atomic/molecules/form_error/FormError.js';\nimport { FormField } from '@plumile/ui/atomic/molecules/form_field/FormField.js';\nimport { Form } from '@plumile/ui/atomic/molecules/form/Form.js';\n\nimport type { UseAuthReturn } from '../../hooks/useAuth.js';\n\nimport * as styles from './loginPage.css.js';\n\ntype Props = {\n auth: Pick<\n UseAuthReturn,\n | 'loginWithPasskey'\n | 'isLoading'\n | 'error'\n | 'emailHint'\n | 'nextStep'\n | 'beginAuthentication'\n | 'lockedUntil'\n | 'availableMethods'\n >;\n onSuccess: () => void;\n defaultEmail?: string;\n isAttemptingPasskey?: boolean;\n onShowMethods?: () => void;\n};\n\nexport const PasskeyLoginForm = ({\n auth,\n onSuccess,\n defaultEmail,\n isAttemptingPasskey = false,\n onShowMethods,\n}: Props): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const [email, setEmail] = useState(auth.emailHint ?? '');\n const [localError, setLocalError] = useState<string | null>(null);\n\n useEffect(() => {\n if (auth.emailHint != null && auth.emailHint !== '') {\n setEmail(auth.emailHint);\n } else if (defaultEmail != null && defaultEmail !== '') {\n setEmail(defaultEmail);\n }\n }, [auth.emailHint, defaultEmail]);\n\n const handleSubmit = useCallback(\n async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setLocalError(null);\n\n if (email.trim() === '') {\n setLocalError(t('auth.passkey.errors.emailRequired'));\n return;\n }\n\n try {\n const result = await auth.beginAuthentication(email.trim());\n if (Array.isArray(result.methods) && result.methods.length === 0) {\n const lockedUntilMessage =\n result.lockedUntil != null\n ? t('auth.passkey.errors.lockedWithTime', {\n time: new Date(result.lockedUntil).toLocaleString(),\n })\n : t('auth.passkey.errors.locked');\n setLocalError(lockedUntilMessage);\n return;\n }\n if (\n Array.isArray(result.methods) &&\n !result.methods.includes('PASSKEY')\n ) {\n setLocalError(t('auth.passkey.errors.notAvailable'));\n return;\n }\n\n const status = await auth.loginWithPasskey({ email: email.trim() });\n if (status === 'success') {\n onSuccess();\n }\n } catch {\n setLocalError(t('auth.passkey.errors.failed'));\n }\n },\n [auth, email, onSuccess, t],\n );\n\n const formError = localError;\n\n const handleSubmitEvent = useCallback(\n (event: FormEvent<HTMLFormElement>) => {\n handleSubmit(event).catch(() => {\n return undefined;\n });\n },\n [handleSubmit],\n );\n\n return (\n <Form\n className={styles.formSurface}\n onSubmit={handleSubmitEvent}\n noValidate\n initialFocus=\"first-form-control\"\n >\n <div className={styles.stack}>\n <p className={styles.helper}>{t('auth.passkey.helper')}</p>\n {formError != null ? <FormError>{formError}</FormError> : null}\n <FormField\n label={t('auth.passkey.form.emailLabel')}\n name=\"passkey-email\"\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setLocalError(null);\n }}\n placeholder={t('auth.passkey.form.emailPlaceholder')}\n autoComplete=\"email\"\n required\n />\n </div>\n <div className={styles.actionsRow}>\n <Button type=\"submit\" variant=\"primary\" isLoading={auth.isLoading}>\n {isAttemptingPasskey\n ? t('auth.passkey.actions.submitting')\n : t('auth.passkey.actions.submit')}\n </Button>\n {onShowMethods != null ? (\n <button\n type=\"button\"\n className={styles.inlineLink}\n onClick={onShowMethods}\n >\n {t('auth.passkey.actions.showMethods')}\n </button>\n ) : null}\n </div>\n </Form>\n );\n};\n"],"mappings":";;;;;;;;;AAqCA,IAAa,KAAoB,EAC/B,SACA,cACA,iBACA,yBAAsB,IACtB,uBACwB;CACxB,IAAM,EAAE,SAAM,EAA8B,GACtC,CAAC,GAAO,KAAY,EAAS,EAAK,aAAa,EAAE,GACjD,CAAC,GAAY,KAAiB,EAAwB,IAAI;CAEhE,QAAgB;EACd,AAAI,EAAK,aAAa,QAAQ,EAAK,cAAc,KAC/C,EAAS,EAAK,SAAS,IACd,KAAgB,QAAQ,MAAiB,MAClD,EAAS,CAAY;CAEzB,GAAG,CAAC,EAAK,WAAW,CAAY,CAAC;CAEjC,IAAM,IAAe,EACnB,OAAO,MAAsC;EAI3C,IAHA,EAAM,eAAe,GACrB,EAAc,IAAI,GAEd,EAAM,KAAK,MAAM,IAAI;GACvB,EAAc,EAAE,mCAAmC,CAAC;GACpD;EACF;EAEA,IAAI;GACF,IAAM,IAAS,MAAM,EAAK,oBAAoB,EAAM,KAAK,CAAC;GAC1D,IAAI,MAAM,QAAQ,EAAO,OAAO,KAAK,EAAO,QAAQ,WAAW,GAAG;IAChE,IAAM,IACJ,EAAO,eAAe,OAIlB,EAAE,4BAA4B,IAH9B,EAAE,sCAAsC,EACtC,MAAM,IAAI,KAAK,EAAO,WAAW,CAAC,CAAC,eAAe,EACpD,CAAC;IAEP,EAAc,CAAkB;IAChC;GACF;GACA,IACE,MAAM,QAAQ,EAAO,OAAO,KAC5B,CAAC,EAAO,QAAQ,SAAS,SAAS,GAClC;IACA,EAAc,EAAE,kCAAkC,CAAC;IACnD;GACF;GAGA,AAAI,MADiB,EAAK,iBAAiB,EAAE,OAAO,EAAM,KAAK,EAAE,CAAC,MACnD,aACb,EAAU;EAEd,QAAQ;GACN,EAAc,EAAE,4BAA4B,CAAC;EAC/C;CACF,GACA;EAAC;EAAM;EAAO;EAAW;CAAC,CAC5B,GAEM,IAAY,GAEZ,IAAoB,GACvB,MAAsC;EACrC,EAAa,CAAK,CAAC,CAAC,YAAY,CAEhC,CAAC;CACH,GACA,CAAC,CAAY,CACf;CAEA,OACE,kBAAC,GAAD;EACE,WAAW;EACX,UAAU;EACV,YAAA;EACA,cAAa;EAJf,UAAA,CAME,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA;IACE,kBAAC,KAAD;KAAG,WAAW;KAAgB,UAAA,EAAE,qBAAqB;IAAK,CAAA;IACzD,KAAa,OAA4C,OAArC,kBAAC,GAAD,EAAA,UAAY,EAAqB,CAAA;IACtD,kBAAC,GAAD;KACE,OAAO,EAAE,8BAA8B;KACvC,MAAK;KACL,MAAK;KACL,OAAO;KACP,WAAW,MAAU;MAEnB,AADA,EAAS,EAAM,OAAO,KAAK,GAC3B,EAAc,IAAI;KACpB;KACA,aAAa,EAAE,oCAAoC;KACnD,cAAa;KACb,UAAA;IACD,CAAA;GACE;EACL,CAAA,GAAA,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA,CACE,kBAAC,GAAD;IAAQ,MAAK;IAAS,SAAQ;IAAU,WAAW,EAAK;IACrD,UACG,EADH,IACK,oCACA,6BAA6B;GAC7B,CAAA,GACP,KAAiB,OAQd,OAPF,kBAAC,UAAD;IACE,MAAK;IACL,WAAW;IACX,SAAS;IAER,UAAA,EAAE,kCAAkC;GAC/B,CAAA,CAEP;EACD,CAAA,CAAA;;AAEV"}
1
+ {"version":3,"file":"PasskeyLoginForm.js","names":[],"sources":["../../../../src/auth/login/PasskeyLoginForm.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useState,\n type FormEvent,\n type JSX,\n} from 'react';\nimport { useBackofficeReactTranslation } from '../../i18n/useBackofficeReactTranslation.js';\n\nimport { Button } from '@plumile/ui/button';\nimport { FormError, FormField, Form } from '@plumile/ui';\n\nimport type { UseAuthReturn } from '../../hooks/useAuth.js';\n\nimport * as styles from './loginPage.css.js';\n\ntype Props = {\n auth: Pick<\n UseAuthReturn,\n | 'loginWithPasskey'\n | 'isLoading'\n | 'error'\n | 'emailHint'\n | 'nextStep'\n | 'beginAuthentication'\n | 'lockedUntil'\n | 'availableMethods'\n >;\n onSuccess: () => void;\n defaultEmail?: string;\n isAttemptingPasskey?: boolean;\n onShowMethods?: () => void;\n};\n\nexport const PasskeyLoginForm = ({\n auth,\n onSuccess,\n defaultEmail,\n isAttemptingPasskey = false,\n onShowMethods,\n}: Props): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n const [email, setEmail] = useState(auth.emailHint ?? '');\n const [localError, setLocalError] = useState<string | null>(null);\n\n useEffect(() => {\n if (auth.emailHint != null && auth.emailHint !== '') {\n setEmail(auth.emailHint);\n } else if (defaultEmail != null && defaultEmail !== '') {\n setEmail(defaultEmail);\n }\n }, [auth.emailHint, defaultEmail]);\n\n const handleSubmit = useCallback(\n async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setLocalError(null);\n\n if (email.trim() === '') {\n setLocalError(t('auth.passkey.errors.emailRequired'));\n return;\n }\n\n try {\n const result = await auth.beginAuthentication(email.trim());\n if (Array.isArray(result.methods) && result.methods.length === 0) {\n const lockedUntilMessage =\n result.lockedUntil != null\n ? t('auth.passkey.errors.lockedWithTime', {\n time: new Date(result.lockedUntil).toLocaleString(),\n })\n : t('auth.passkey.errors.locked');\n setLocalError(lockedUntilMessage);\n return;\n }\n if (\n Array.isArray(result.methods) &&\n !result.methods.includes('PASSKEY')\n ) {\n setLocalError(t('auth.passkey.errors.notAvailable'));\n return;\n }\n\n const status = await auth.loginWithPasskey({ email: email.trim() });\n if (status === 'success') {\n onSuccess();\n }\n } catch {\n setLocalError(t('auth.passkey.errors.failed'));\n }\n },\n [auth, email, onSuccess, t],\n );\n\n const formError = localError;\n\n const handleSubmitEvent = useCallback(\n (event: FormEvent<HTMLFormElement>) => {\n handleSubmit(event).catch(() => {\n return undefined;\n });\n },\n [handleSubmit],\n );\n\n return (\n <Form\n className={styles.formSurface}\n onSubmit={handleSubmitEvent}\n noValidate\n initialFocus=\"first-form-control\"\n >\n <div className={styles.stack}>\n <p className={styles.helper}>{t('auth.passkey.helper')}</p>\n {formError != null ? <FormError>{formError}</FormError> : null}\n <FormField\n label={t('auth.passkey.form.emailLabel')}\n name=\"passkey-email\"\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setLocalError(null);\n }}\n placeholder={t('auth.passkey.form.emailPlaceholder')}\n autoComplete=\"email\"\n required\n />\n </div>\n <div className={styles.actionsRow}>\n <Button type=\"submit\" variant=\"solid\" loading={auth.isLoading}>\n {isAttemptingPasskey\n ? t('auth.passkey.actions.submitting')\n : t('auth.passkey.actions.submit')}\n </Button>\n {onShowMethods != null ? (\n <button\n type=\"button\"\n className={styles.inlineLink}\n onClick={onShowMethods}\n >\n {t('auth.passkey.actions.showMethods')}\n </button>\n ) : null}\n </div>\n </Form>\n );\n};\n"],"mappings":";;;;;;;AAkCA,IAAa,KAAoB,EAC/B,SACA,cACA,iBACA,yBAAsB,IACtB,uBACwB;CACxB,IAAM,EAAE,SAAM,EAA8B,GACtC,CAAC,GAAO,KAAY,EAAS,EAAK,aAAa,EAAE,GACjD,CAAC,GAAY,KAAiB,EAAwB,IAAI;CAEhE,QAAgB;EACd,AAAI,EAAK,aAAa,QAAQ,EAAK,cAAc,KAC/C,EAAS,EAAK,SAAS,IACd,KAAgB,QAAQ,MAAiB,MAClD,EAAS,CAAY;CAEzB,GAAG,CAAC,EAAK,WAAW,CAAY,CAAC;CAEjC,IAAM,IAAe,EACnB,OAAO,MAAsC;EAI3C,IAHA,EAAM,eAAe,GACrB,EAAc,IAAI,GAEd,EAAM,KAAK,MAAM,IAAI;GACvB,EAAc,EAAE,mCAAmC,CAAC;GACpD;EACF;EAEA,IAAI;GACF,IAAM,IAAS,MAAM,EAAK,oBAAoB,EAAM,KAAK,CAAC;GAC1D,IAAI,MAAM,QAAQ,EAAO,OAAO,KAAK,EAAO,QAAQ,WAAW,GAAG;IAChE,IAAM,IACJ,EAAO,eAAe,OAIlB,EAAE,4BAA4B,IAH9B,EAAE,sCAAsC,EACtC,MAAM,IAAI,KAAK,EAAO,WAAW,CAAC,CAAC,eAAe,EACpD,CAAC;IAEP,EAAc,CAAkB;IAChC;GACF;GACA,IACE,MAAM,QAAQ,EAAO,OAAO,KAC5B,CAAC,EAAO,QAAQ,SAAS,SAAS,GAClC;IACA,EAAc,EAAE,kCAAkC,CAAC;IACnD;GACF;GAGA,AAAI,MADiB,EAAK,iBAAiB,EAAE,OAAO,EAAM,KAAK,EAAE,CAAC,MACnD,aACb,EAAU;EAEd,QAAQ;GACN,EAAc,EAAE,4BAA4B,CAAC;EAC/C;CACF,GACA;EAAC;EAAM;EAAO;EAAW;CAAC,CAC5B,GAEM,IAAY,GAEZ,IAAoB,GACvB,MAAsC;EACrC,EAAa,CAAK,CAAC,CAAC,YAAY,CAEhC,CAAC;CACH,GACA,CAAC,CAAY,CACf;CAEA,OACE,kBAAC,GAAD;EACE,WAAW;EACX,UAAU;EACV,YAAA;EACA,cAAa;EAJf,UAAA,CAME,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA;IACE,kBAAC,KAAD;KAAG,WAAW;KAAgB,UAAA,EAAE,qBAAqB;IAAK,CAAA;IACzD,KAAa,OAA4C,OAArC,kBAAC,GAAD,EAAA,UAAY,EAAqB,CAAA;IACtD,kBAAC,GAAD;KACE,OAAO,EAAE,8BAA8B;KACvC,MAAK;KACL,MAAK;KACL,OAAO;KACP,WAAW,MAAU;MAEnB,AADA,EAAS,EAAM,OAAO,KAAK,GAC3B,EAAc,IAAI;KACpB;KACA,aAAa,EAAE,oCAAoC;KACnD,cAAa;KACb,UAAA;IACD,CAAA;GACE;EACL,CAAA,GAAA,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA,CACE,kBAAC,GAAD;IAAQ,MAAK;IAAS,SAAQ;IAAQ,SAAS,EAAK;IACjD,UACG,EADH,IACK,oCACA,6BAA6B;GAC7B,CAAA,GACP,KAAiB,OAQd,OAPF,kBAAC,UAAD;IACE,MAAK;IACL,WAAW;IACX,SAAS;IAER,UAAA,EAAE,kCAAkC;GAC/B,CAAA,CAEP;EACD,CAAA,CAAA;;AAEV"}
@@ -2,31 +2,31 @@ import { actionsRow as e, formSurface as t, inlineLink as n } from "./loginPage.
2
2
  import { AuthPanel as r } from "./AuthPanel.js";
3
3
  import { useBackofficeReactTranslation as i } from "../../i18n/useBackofficeReactTranslation.js";
4
4
  import { OidcButtons as a } from "./OidcButtons.js";
5
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
- import { LoginForm as c } from "@plumile/ui/atomic/organisms/login_form/LoginForm.js";
5
+ import { LoginForm as o } from "@plumile/ui";
6
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
7
  //#region src/auth/login/PasswordLoginPanel.tsx
8
8
  var l = ({ auth: l, defaultEmail: u, onForgotPassword: d, onSuccess: f, providers: p }) => {
9
9
  let { t: m } = i();
10
- return /* @__PURE__ */ o(r, {
10
+ return /* @__PURE__ */ s(r, {
11
11
  title: m("auth.passwordLogin.title"),
12
- children: /* @__PURE__ */ s("div", {
12
+ children: /* @__PURE__ */ c("div", {
13
13
  className: t,
14
14
  children: [
15
- /* @__PURE__ */ o(c, {
15
+ /* @__PURE__ */ s(o, {
16
16
  auth: l,
17
17
  onSuccess: f,
18
18
  defaultEmail: u
19
19
  }),
20
- /* @__PURE__ */ o("div", {
20
+ /* @__PURE__ */ s("div", {
21
21
  className: e,
22
- children: /* @__PURE__ */ o("button", {
22
+ children: /* @__PURE__ */ s("button", {
23
23
  type: "button",
24
24
  className: n,
25
25
  onClick: d,
26
26
  children: m("auth.passwordLogin.forgotPassword")
27
27
  })
28
28
  }),
29
- /* @__PURE__ */ o(a, { providers: p })
29
+ /* @__PURE__ */ s(a, { providers: p })
30
30
  ]
31
31
  })
32
32
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordLoginPanel.js","names":[],"sources":["../../../../src/auth/login/PasswordLoginPanel.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { useBackofficeReactTranslation } from '../../i18n/useBackofficeReactTranslation.js';\n\nimport { LoginForm } from '@plumile/ui/atomic/organisms/login_form/LoginForm.js';\nimport { type LoginFormAuthAdapter } from '@plumile/ui/atomic/organisms/login_form/useLoginForm.js';\n\nimport type { OidcProviderKind } from '../../modules/sharedSchemaTypes.js';\n\nimport { AuthPanel } from './AuthPanel.js';\nimport { OidcButtons } from './OidcButtons.js';\nimport * as styles from './loginPage.css.js';\n\ntype Props = {\n auth: LoginFormAuthAdapter;\n defaultEmail: string;\n onForgotPassword: () => void;\n onSuccess: () => void;\n providers: readonly OidcProviderKind[];\n};\n\nexport const PasswordLoginPanel = ({\n auth,\n defaultEmail,\n onForgotPassword,\n onSuccess,\n providers,\n}: Props): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n return (\n <AuthPanel title={t('auth.passwordLogin.title')}>\n <div className={styles.formSurface}>\n <LoginForm\n auth={auth}\n onSuccess={onSuccess}\n defaultEmail={defaultEmail}\n />\n <div className={styles.actionsRow}>\n <button\n type=\"button\"\n className={styles.inlineLink}\n onClick={onForgotPassword}\n >\n {t('auth.passwordLogin.forgotPassword')}\n </button>\n </div>\n <OidcButtons providers={providers} />\n </div>\n </AuthPanel>\n );\n};\n"],"mappings":";;;;;;;AAoBA,IAAa,KAAsB,EACjC,SACA,iBACA,qBACA,cACA,mBACwB;CACxB,IAAM,EAAE,SAAM,EAA8B;CAC5C,OACE,kBAAC,GAAD;EAAW,OAAO,EAAE,0BAA0B;EAC5C,UAAA,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA;IACE,kBAAC,GAAD;KACQ;KACK;KACG;IACf,CAAA;IACD,kBAAC,OAAD;KAAK,WAAW;KACd,UAAA,kBAAC,UAAD;MACE,MAAK;MACL,WAAW;MACX,SAAS;MAER,UAAA,EAAE,mCAAmC;KAChC,CAAA;IACL,CAAA;IACL,kBAAC,GAAD,EAAwB,aAAY,CAAA;GACjC;;CACI,CAAA;AAEf"}
1
+ {"version":3,"file":"PasswordLoginPanel.js","names":[],"sources":["../../../../src/auth/login/PasswordLoginPanel.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { useBackofficeReactTranslation } from '../../i18n/useBackofficeReactTranslation.js';\n\nimport { LoginForm, type LoginFormAuthAdapter } from '@plumile/ui';\n\nimport type { OidcProviderKind } from '../../modules/sharedSchemaTypes.js';\n\nimport { AuthPanel } from './AuthPanel.js';\nimport { OidcButtons } from './OidcButtons.js';\nimport * as styles from './loginPage.css.js';\n\ntype Props = {\n auth: LoginFormAuthAdapter;\n defaultEmail: string;\n onForgotPassword: () => void;\n onSuccess: () => void;\n providers: readonly OidcProviderKind[];\n};\n\nexport const PasswordLoginPanel = ({\n auth,\n defaultEmail,\n onForgotPassword,\n onSuccess,\n providers,\n}: Props): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n return (\n <AuthPanel title={t('auth.passwordLogin.title')}>\n <div className={styles.formSurface}>\n <LoginForm\n auth={auth}\n onSuccess={onSuccess}\n defaultEmail={defaultEmail}\n />\n <div className={styles.actionsRow}>\n <button\n type=\"button\"\n className={styles.inlineLink}\n onClick={onForgotPassword}\n >\n {t('auth.passwordLogin.forgotPassword')}\n </button>\n </div>\n <OidcButtons providers={providers} />\n </div>\n </AuthPanel>\n );\n};\n"],"mappings":";;;;;;;AAmBA,IAAa,KAAsB,EACjC,SACA,iBACA,qBACA,cACA,mBACwB;CACxB,IAAM,EAAE,SAAM,EAA8B;CAC5C,OACE,kBAAC,GAAD;EAAW,OAAO,EAAE,0BAA0B;EAC5C,UAAA,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA;IACE,kBAAC,GAAD;KACQ;KACK;KACG;IACf,CAAA;IACD,kBAAC,OAAD;KAAK,WAAW;KACd,UAAA,kBAAC,UAAD;MACE,MAAK;MACL,WAAW;MACX,SAAS;MAER,UAAA,EAAE,mCAAmC;KAChC,CAAA;IACL,CAAA;IACL,kBAAC,GAAD,EAAwB,aAAY,CAAA;GACjC;;CACI,CAAA;AAEf"}
@@ -1,6 +1,6 @@
1
1
  /* empty css */
2
2
  //#region src/auth/login/loginPage.css.ts
3
- var e = "txvbqb5b1 txvbqb6bf txvbqb6hj", t = "txvbqb5b1 txvbqb6bf txvbqblor", n = "txvbqbe2 txvbqb6ct txvbqb1ou txvbqb1o3", r = "txvbqb2cx txvbqbe2 txvbqb5b1 txvbqb6gz txvbqbalv txvbqb8ft", i = "txvbqbb0 txvbqb7tv txvbqb1c8 txvbqbn3 txvbqbg0", a = "txvbqb2cx txvbqb5b1 txvbqb1ch txvbqb6h9 txvbqb8e5 txvbqbalb", o = "w8yhmy0 txvbqb8i txvbqbk4 txvbqbmq txvbqbeo txvbqbv txvbqb1cs txvbqbeu3 txvbqb3f txvbqb7h txvbqb76 txvbqb7t txvbqbos9 txvbqbqbd", s = "txvbqb12g txvbqb120 txvbqb138 txvbqb12x txvbqbigx txvbqbj6r", c = "txvbqb5b1 txvbqb6bf txvbqb6hj", l = "txvbqblor", u = "txvbqb1ou txvbqb6dn txvbqb1ct txvbqbeo txvbqb1l0", d = "txvbqball", f = "w8yhmy1 txvbqbiz txvbqblc txvbqbms txvbqbeo txvbqbay txvbqb7h txvbqb75 txvbqb7t";
3
+ var e = "txvbqb5lr txvbqb6m5 txvbqb6s9", t = "txvbqb5lr txvbqb6m5 txvbqbl9n", n = "txvbqbe7 txvbqb6nj txvbqb1rt txvbqb1r2", r = "txvbqb2nn txvbqbe7 txvbqb5lr txvbqb6rp txvbqbawl txvbqb8qj", i = "txvbqbb5 txvbqb84l txvbqb1cl txvbqbn8 txvbqbg5", a = "txvbqb2nn txvbqb5lr txvbqb1cu txvbqb6rz txvbqb8ov txvbqbaw1", o = "w8yhmy0 txvbqb8n txvbqbk9 txvbqbmv txvbqbet txvbqbv txvbqb1d5 txvbqbf4t txvbqb3f txvbqb7n txvbqb78 txvbqb7y txvbqbod5 txvbqbpw9", s = "txvbqb12r txvbqb12b txvbqb13j txvbqb138 txvbqbirn txvbqbjhh", c = "txvbqb5lr txvbqb6m5 txvbqb6s9", l = "txvbqbl9n", u = "txvbqb1rt txvbqb6od txvbqb1d6 txvbqbet txvbqb1nz", d = "txvbqbawb", f = "w8yhmy1 txvbqbj4 txvbqblh txvbqbmx txvbqbet txvbqbb3 txvbqb7n txvbqb76 txvbqb7y";
4
4
  //#endregion
5
5
  export { a as actionsRow, c as block, f as brandGhostButton, r as divider, i as dividerLine, d as footer, t as formSurface, l as fullWidth, n as helper, o as inlineLink, s as panel, u as panelTitle, e as stack };
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"loginPage.css.js","names":[],"sources":["../../../../src/auth/login/loginPage.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles, stateSprinkles } from '@plumile/ui/theme/sprinkles.css.js';\nimport { vars } from '@plumile/ui/theme/themeContract.css.js';\n\nexport const stack = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n});\n\nexport const formSurface = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n width: 'full',\n});\n\nexport const helper = sprinkles({\n color: 'textSecondary',\n fontSize: 'sm',\n margin: 0,\n lineHeight: 1.6,\n});\n\nexport const divider = sprinkles({\n alignItems: 'center',\n color: 'textSecondary',\n display: 'flex',\n gap: 2,\n marginTop: 5,\n marginBottom: 3,\n});\n\nexport const dividerLine = sprinkles({\n backgroundColor: 'tonePrimaryBorder',\n height: 'px',\n flex: 1,\n borderRadius: 'full',\n opacity: 35,\n});\n\nexport const actionsRow = sprinkles({\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'wrap',\n gap: 3,\n justifyContent: 'space-between',\n marginTop: 3,\n});\n\nexport const inlineLink = style([\n sprinkles({\n backgroundColor: 'transparent',\n borderWidth: 0,\n borderStyle: 'none',\n color: 'tonePrimaryText',\n cursor: 'pointer',\n fontWeight: 'semibold',\n padding: 0,\n textDecoration: 'none',\n transitionProperty: 'colors',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n stateSprinkles({\n color: { hover: 'tonePrimaryText' },\n textDecoration: { hover: 'underline' },\n }),\n]);\n\nexport const panel = sprinkles({\n borderTopLeftRadius: 'none',\n borderTopRightRadius: 'none',\n borderBottomLeftRadius: '2xl',\n borderBottomRightRadius: '2xl',\n paddingX: 6,\n paddingY: 6,\n});\n\nexport const block = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n});\n\nexport const fullWidth = sprinkles({\n width: 'full',\n});\n\nexport const panelTitle = sprinkles({\n margin: 0,\n fontSize: 'xl',\n fontWeight: 'bold',\n color: 'tonePrimaryText',\n letterSpacing: 'tight',\n});\n\nexport const footer = sprinkles({\n marginTop: 4,\n});\n\nexport const brandGhostButton = style([\n sprinkles({\n borderColor: 'tonePrimaryBorder',\n borderWidth: 'px',\n borderStyle: 'solid',\n color: 'tonePrimaryText',\n backgroundColor: 'tonePrimarySurface',\n transitionProperty: 'colors',\n transitionDuration: 120,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover:not(:disabled)': {\n backgroundColor: vars.colors.tonePrimarySurface,\n color: vars.colors.tonePrimaryText,\n borderColor: vars.colors.tonePrimaryBorder,\n },\n },\n },\n]);\n"],"mappings":""}
1
+ {"version":3,"file":"loginPage.css.js","names":[],"sources":["../../../../src/auth/login/loginPage.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { sprinkles, stateSprinkles, vars } from '@plumile/ui/theme';\n\nexport const stack = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n});\n\nexport const formSurface = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n width: 'full',\n});\n\nexport const helper = sprinkles({\n color: 'textSecondary',\n fontSize: 'sm',\n margin: 0,\n lineHeight: 1.6,\n});\n\nexport const divider = sprinkles({\n alignItems: 'center',\n color: 'textSecondary',\n display: 'flex',\n gap: 2,\n marginTop: 5,\n marginBottom: 3,\n});\n\nexport const dividerLine = sprinkles({\n backgroundColor: 'tonePrimaryBorder',\n height: 'px',\n flex: 1,\n borderRadius: 'full',\n opacity: 35,\n});\n\nexport const actionsRow = sprinkles({\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'wrap',\n gap: 3,\n justifyContent: 'space-between',\n marginTop: 3,\n});\n\nexport const inlineLink = style([\n sprinkles({\n backgroundColor: 'transparent',\n borderWidth: 0,\n borderStyle: 'none',\n color: 'tonePrimaryText',\n cursor: 'pointer',\n fontWeight: 'semibold',\n padding: 0,\n textDecoration: 'none',\n transitionProperty: 'colors',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n stateSprinkles({\n color: { hover: 'tonePrimaryText' },\n textDecoration: { hover: 'underline' },\n }),\n]);\n\nexport const panel = sprinkles({\n borderTopLeftRadius: 'none',\n borderTopRightRadius: 'none',\n borderBottomLeftRadius: '2xl',\n borderBottomRightRadius: '2xl',\n paddingX: 6,\n paddingY: 6,\n});\n\nexport const block = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n});\n\nexport const fullWidth = sprinkles({\n width: 'full',\n});\n\nexport const panelTitle = sprinkles({\n margin: 0,\n fontSize: 'xl',\n fontWeight: 'bold',\n color: 'tonePrimaryText',\n letterSpacing: 'tight',\n});\n\nexport const footer = sprinkles({\n marginTop: 4,\n});\n\nexport const brandGhostButton = style([\n sprinkles({\n borderColor: 'tonePrimaryBorder',\n borderWidth: 'px',\n borderStyle: 'solid',\n color: 'tonePrimaryText',\n backgroundColor: 'tonePrimarySurface',\n transitionProperty: 'colors',\n transitionDuration: 120,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover:not(:disabled)': {\n backgroundColor: vars.colors.tonePrimarySurface,\n color: vars.colors.tonePrimaryText,\n borderColor: vars.colors.tonePrimaryBorder,\n },\n },\n },\n]);\n"],"mappings":""}
@@ -1,122 +1,127 @@
1
- import { formSurface as e, helper as t, stack as n } from "../login/loginPage.css.js";
2
- import { AuthPanel as r } from "../login/AuthPanel.js";
3
- import { useBackofficeReactTranslation as i } from "../../i18n/useBackofficeReactTranslation.js";
4
- import { MfaChallengeForm as a } from "../login/MfaChallengeForm.js";
5
- import { useCallback as o, useMemo as s, useState as c } from "react";
6
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
- import { Button as d } from "@plumile/ui/atomic/atoms/button/Button.js";
8
- import { FormError as f } from "@plumile/ui/atomic/molecules/form_error/FormError.js";
9
- import { FormField as p } from "@plumile/ui/atomic/molecules/form_field/FormField.js";
10
- import { Form as m } from "@plumile/ui/atomic/molecules/form/Form.js";
11
- import { AuthLayout as h } from "@plumile/ui/atomic/templates/auth_layout/AuthLayout.js";
1
+ import { formSurface as e, helper as t } from "../login/loginPage.css.js";
2
+ import { AuthPanel as n } from "../login/AuthPanel.js";
3
+ import { useBackofficeReactTranslation as r } from "../../i18n/useBackofficeReactTranslation.js";
4
+ import { MfaChallengeForm as i } from "../login/MfaChallengeForm.js";
5
+ import { useCallback as a, useMemo as o, useState as s } from "react";
6
+ import { AuthLayout as c, Form as l, FormError as u, FormField as d } from "@plumile/ui";
7
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
8
+ import { Button as m } from "@plumile/ui/button";
12
9
  //#region src/auth/pages/AcceptInvitationScreen.tsx
13
- var g = ({ auth: g, onSuccessRedirect: _, onBackToLogin: v, token: y }) => {
14
- let { t: b } = i(), { acceptInvitation: x } = g, [S, C] = c("idle"), [w, T] = c(""), [E, D] = c(""), [O, k] = c(!1), [A, j] = c(null), M = s(() => y ?? (typeof window > "u" ? "" : new URLSearchParams(window.location.search).get("token") ?? ""), [y]), N = o((e) => {
15
- if (e.preventDefault(), M === "") {
16
- j(b("auth.acceptInvitation.errors.missingToken")), C("error");
10
+ var h = ({ auth: h, onSuccessRedirect: g, onBackToLogin: _, token: v }) => {
11
+ let { t: y } = r(), { acceptInvitation: b } = h, [x, S] = s("idle"), [C, w] = s(""), [T, E] = s(""), [D, O] = s(!1), [k, A] = s(null), [j, M] = s(null), N = o(() => v ?? (typeof window > "u" ? "" : new URLSearchParams(window.location.search).get("token") ?? ""), [v]), P = a((e) => {
12
+ if (e.preventDefault(), M(null), N === "") {
13
+ A(y("auth.acceptInvitation.errors.missingToken")), S("error");
17
14
  return;
18
15
  }
19
- if (w !== E) {
20
- j(b("auth.acceptInvitation.errors.passwordMismatch")), C("error");
16
+ if (C === "") {
17
+ A(y("auth.acceptInvitation.errors.passwordPolicyViolation")), M("password"), S("error");
21
18
  return;
22
19
  }
23
- C("pending"), j(null), k(!0), x({
24
- token: M,
25
- password: w,
26
- passwordConfirmation: E
20
+ if (T === "") {
21
+ A(y("auth.acceptInvitation.errors.passwordMismatch")), M("passwordConfirmation"), S("error");
22
+ return;
23
+ }
24
+ if (C !== T) {
25
+ A(y("auth.acceptInvitation.errors.passwordMismatch")), M("passwordConfirmation"), S("error");
26
+ return;
27
+ }
28
+ S("pending"), A(null), O(!0), b({
29
+ token: N,
30
+ password: C,
31
+ passwordConfirmation: T
27
32
  }).then((e) => {
28
33
  if (e === "mfa-required") {
29
- C("mfa");
34
+ S("mfa");
30
35
  return;
31
36
  }
32
- C("completed"), _();
37
+ S("completed"), g();
33
38
  }).catch(() => {
34
- C("error"), j(b("auth.acceptInvitation.errors.default"));
39
+ S("error"), A(y("auth.acceptInvitation.errors.default"));
35
40
  }).finally(() => {
36
- k(!1);
41
+ O(!1);
37
42
  });
38
43
  }, [
39
- x,
40
- _,
41
- w,
42
- E,
43
- M,
44
- b
45
- ]), P = o(() => {
46
- C("completed"), _();
47
- }, [_]), F = o(() => {
48
- C("idle"), j(null), k(!1);
44
+ b,
45
+ g,
46
+ C,
47
+ T,
48
+ N,
49
+ y
50
+ ]), F = a(() => {
51
+ S("completed"), g();
52
+ }, [g]), I = a(() => {
53
+ S("idle"), A(null), M(null), O(!1);
49
54
  }, []);
50
- if (S === "mfa") return /* @__PURE__ */ l(h, {
51
- title: b("auth.acceptInvitation.mfaTitle"),
52
- subtitle: b("auth.acceptInvitation.mfaSubtitle"),
53
- children: /* @__PURE__ */ l(a, {
54
- auth: g,
55
- onSuccess: P,
55
+ if (x === "mfa") return /* @__PURE__ */ f(c, {
56
+ title: y("auth.acceptInvitation.mfaTitle"),
57
+ subtitle: y("auth.acceptInvitation.mfaSubtitle"),
58
+ children: /* @__PURE__ */ f(i, {
59
+ auth: h,
60
+ onSuccess: F,
56
61
  onBack: () => {
57
- g.reset(), F();
62
+ h.reset(), I();
58
63
  }
59
64
  })
60
65
  });
61
- let I;
62
- return I = S === "completed" ? /* @__PURE__ */ l("div", {
63
- className: n,
64
- children: /* @__PURE__ */ l("p", {
65
- className: t,
66
- children: b("auth.acceptInvitation.status.success")
67
- })
68
- }) : /* @__PURE__ */ l(r, {
69
- description: b("auth.acceptInvitation.subtitle"),
70
- children: /* @__PURE__ */ u(m, {
66
+ let L;
67
+ return L = x === "completed" ? /* @__PURE__ */ f(n, { children: /* @__PURE__ */ f("p", {
68
+ className: t,
69
+ children: y("auth.acceptInvitation.status.success")
70
+ }) }) : /* @__PURE__ */ f(n, {
71
+ description: y("auth.acceptInvitation.subtitle"),
72
+ children: /* @__PURE__ */ p(l, {
71
73
  className: e,
72
- onSubmit: N,
74
+ onSubmit: P,
73
75
  noValidate: !0,
74
76
  initialFocus: "first-form-control",
75
77
  children: [
76
- A == null ? null : /* @__PURE__ */ l(f, { children: A }),
77
- /* @__PURE__ */ l(p, {
78
- label: b("auth.acceptInvitation.form.passwordLabel"),
78
+ k != null && j == null ? /* @__PURE__ */ f(u, { children: k }) : null,
79
+ /* @__PURE__ */ f(d, {
80
+ label: y("auth.acceptInvitation.form.passwordLabel"),
81
+ error: j === "password" ? k : null,
79
82
  name: "password",
80
83
  type: "password",
81
- value: w,
84
+ value: C,
82
85
  onChange: (e) => {
83
- T(e.target.value), j(null), S === "error" && C("idle");
86
+ w(e.target.value), A(null), M(null), x === "error" && S("idle");
84
87
  },
85
- placeholder: b("auth.acceptInvitation.form.passwordPlaceholder"),
88
+ placeholder: y("auth.acceptInvitation.form.passwordPlaceholder"),
86
89
  autoComplete: "new-password",
87
90
  required: !0
88
91
  }),
89
- /* @__PURE__ */ l(p, {
90
- label: b("auth.acceptInvitation.form.confirmLabel"),
92
+ /* @__PURE__ */ f(d, {
93
+ label: y("auth.acceptInvitation.form.confirmLabel"),
94
+ error: j === "passwordConfirmation" ? k : null,
91
95
  name: "password-confirmation",
92
96
  type: "password",
93
- value: E,
97
+ value: T,
94
98
  onChange: (e) => {
95
- D(e.target.value), j(null), S === "error" && C("idle");
99
+ E(e.target.value), A(null), M(null), x === "error" && S("idle");
96
100
  },
97
- placeholder: b("auth.acceptInvitation.form.confirmPlaceholder"),
101
+ placeholder: y("auth.acceptInvitation.form.confirmPlaceholder"),
98
102
  autoComplete: "new-password",
99
103
  required: !0
100
104
  }),
101
- /* @__PURE__ */ l(d, {
105
+ /* @__PURE__ */ f(m, {
102
106
  type: "submit",
103
- isLoading: O,
104
- children: b(S === "pending" ? "auth.acceptInvitation.status.workingButton" : "auth.acceptInvitation.form.submit")
107
+ loading: D,
108
+ children: y(x === "pending" ? "auth.acceptInvitation.status.workingButton" : "auth.acceptInvitation.form.submit")
105
109
  }),
106
- /* @__PURE__ */ l(d, {
110
+ /* @__PURE__ */ f(m, {
107
111
  type: "button",
108
- variant: "secondary",
109
- onClick: v,
110
- children: b("auth.acceptInvitation.actions.backToLogin")
112
+ variant: "soft",
113
+ onClick: _,
114
+ tone: "neutral",
115
+ children: y("auth.acceptInvitation.actions.backToLogin")
111
116
  })
112
117
  ]
113
118
  })
114
- }), /* @__PURE__ */ l(h, {
115
- title: b("auth.acceptInvitation.title"),
116
- children: I
119
+ }), /* @__PURE__ */ f(c, {
120
+ title: y("auth.acceptInvitation.title"),
121
+ children: L
117
122
  });
118
123
  };
119
124
  //#endregion
120
- export { g as AcceptInvitationScreen };
125
+ export { h as AcceptInvitationScreen };
121
126
 
122
127
  //# sourceMappingURL=AcceptInvitationScreen.js.map