@eifi1/ui-kit 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/README.md +22 -4
  2. package/dist/auth/accept-invitation.d.ts +90 -0
  3. package/dist/auth/accept-invitation.js +117 -0
  4. package/dist/auth/accept-invitation.js.map +1 -0
  5. package/dist/auth/auth-errors.d.ts +60 -0
  6. package/dist/auth/auth-errors.js +32 -0
  7. package/dist/auth/auth-errors.js.map +1 -0
  8. package/dist/auth/complete-name-dialog.d.ts +71 -0
  9. package/dist/auth/complete-name-dialog.js +168 -0
  10. package/dist/auth/complete-name-dialog.js.map +1 -0
  11. package/dist/auth/email-tag.d.ts +60 -0
  12. package/dist/auth/email-tag.js +23 -0
  13. package/dist/auth/email-tag.js.map +1 -0
  14. package/dist/auth/forgot-password-form.d.ts +79 -0
  15. package/dist/auth/forgot-password-form.js +120 -0
  16. package/dist/auth/forgot-password-form.js.map +1 -0
  17. package/dist/auth/form-rules.d.ts +27 -0
  18. package/dist/auth/form-rules.js +23 -0
  19. package/dist/auth/form-rules.js.map +1 -0
  20. package/dist/auth/new-password-fields.d.ts +38 -0
  21. package/dist/auth/new-password-fields.js +54 -0
  22. package/dist/auth/new-password-fields.js.map +1 -0
  23. package/dist/auth/not-found-page.d.ts +57 -0
  24. package/dist/auth/not-found-page.js +40 -0
  25. package/dist/auth/not-found-page.js.map +1 -0
  26. package/dist/auth/register-form.d.ts +86 -0
  27. package/dist/auth/register-form.js +268 -0
  28. package/dist/auth/register-form.js.map +1 -0
  29. package/dist/auth/reset-password-form.d.ts +124 -0
  30. package/dist/auth/reset-password-form.js +164 -0
  31. package/dist/auth/reset-password-form.js.map +1 -0
  32. package/dist/auth/sign-in-form.d.ts +243 -0
  33. package/dist/auth/sign-in-form.js +345 -0
  34. package/dist/auth/sign-in-form.js.map +1 -0
  35. package/dist/auth/status-parts.d.ts +78 -0
  36. package/dist/auth/status-parts.js +83 -0
  37. package/dist/auth/status-parts.js.map +1 -0
  38. package/dist/auth/verify-email.d.ts +121 -0
  39. package/dist/auth/verify-email.js +207 -0
  40. package/dist/auth/verify-email.js.map +1 -0
  41. package/dist/chart.d.ts +17 -2
  42. package/dist/components/amount-input.d.ts +18 -2
  43. package/dist/components/button-group.d.ts +18 -2
  44. package/dist/components/calculator.d.ts +18 -2
  45. package/dist/components/confirm-dialog.d.ts +18 -2
  46. package/dist/components/copy-button.d.ts +18 -2
  47. package/dist/components/danger-confirm.d.ts +18 -2
  48. package/dist/components/facing-pair.d.ts +18 -2
  49. package/dist/components/file-button.d.ts +18 -2
  50. package/dist/components/file-dropzone.d.ts +18 -2
  51. package/dist/components/form-actions.d.ts +18 -2
  52. package/dist/components/iban-input.d.ts +18 -2
  53. package/dist/components/language-select.d.ts +18 -9
  54. package/dist/components/legal-page.d.ts +26 -4
  55. package/dist/components/legal-page.js +24 -5
  56. package/dist/components/legal-page.js.map +1 -1
  57. package/dist/components/legal.d.ts +18 -2
  58. package/dist/components/legal.js +49 -5
  59. package/dist/components/legal.js.map +1 -1
  60. package/dist/components/money-field.d.ts +18 -2
  61. package/dist/components/number-field.d.ts +18 -2
  62. package/dist/components/number-input.d.ts +18 -2
  63. package/dist/components/numpad-sheet.d.ts +18 -2
  64. package/dist/components/phone-input.d.ts +18 -2
  65. package/dist/components/series-chart.d.ts +18 -2
  66. package/dist/components/settings-fields.d.ts +15 -2
  67. package/dist/components/share-card.d.ts +18 -2
  68. package/dist/components/text-link.d.ts +18 -2
  69. package/dist/components/time-input.d.ts +18 -2
  70. package/dist/components/ui.d.ts +17 -1
  71. package/dist/components/user-avatar.d.ts +16 -2
  72. package/dist/components/user-avatar.js +7 -3
  73. package/dist/components/user-avatar.js.map +1 -1
  74. package/dist/feedback/feedback-attachment.d.ts +18 -2
  75. package/dist/feedback/feedback-context.d.ts +18 -2
  76. package/dist/feedback/feedback-crash.d.ts +18 -2
  77. package/dist/feedback/feedback-dialog.d.ts +18 -2
  78. package/dist/feedback/feedback-inbox.d.ts +18 -2
  79. package/dist/feedback/feedback-labels.d.ts +18 -2
  80. package/dist/feedback/feedback-menu.d.ts +18 -2
  81. package/dist/feedback/feedback-record.d.ts +18 -2
  82. package/dist/feedback/feedback-row-detail.d.ts +18 -2
  83. package/dist/feedback/feedback-status-undo.d.ts +18 -2
  84. package/dist/feedback/feedback-submit.d.ts +18 -2
  85. package/dist/feedback/feedback-swipe.d.ts +18 -2
  86. package/dist/feedback/feedback-table.d.ts +18 -2
  87. package/dist/feedback/feedback-thread.d.ts +18 -2
  88. package/dist/feedback.d.ts +18 -2
  89. package/dist/hooks/use-file-drop.d.ts +18 -2
  90. package/dist/i18n/defaults.d.ts +18 -2
  91. package/dist/i18n/defaults.js +18 -0
  92. package/dist/i18n/defaults.js.map +1 -1
  93. package/dist/i18n/german.d.ts +18 -2
  94. package/dist/i18n/german.js +145 -0
  95. package/dist/i18n/german.js.map +1 -1
  96. package/dist/i18n/kit-labels.d.ts +18 -2
  97. package/dist/i18n/kit-labels.js.map +1 -1
  98. package/dist/i18n/languages.d.ts +13 -201
  99. package/dist/i18n/locales/de-CH.d.ts +18 -2
  100. package/dist/i18n/locales/en.d.ts +18 -2
  101. package/dist/i18n/locales/es.d.ts +18 -2
  102. package/dist/i18n/locales/es.js +147 -3
  103. package/dist/i18n/locales/es.js.map +1 -1
  104. package/dist/i18n/locales/fr.d.ts +18 -2
  105. package/dist/i18n/locales/fr.js +147 -0
  106. package/dist/i18n/locales/fr.js.map +1 -1
  107. package/dist/i18n/locales/hu.d.ts +18 -2
  108. package/dist/i18n/locales/hu.js +149 -3
  109. package/dist/i18n/locales/hu.js.map +1 -1
  110. package/dist/i18n/locales/it.d.ts +18 -2
  111. package/dist/i18n/locales/it.js +146 -1
  112. package/dist/i18n/locales/it.js.map +1 -1
  113. package/dist/i18n/locales/zh.d.ts +18 -2
  114. package/dist/i18n/locales/zh.js +146 -1
  115. package/dist/i18n/locales/zh.js.map +1 -1
  116. package/dist/i18n/review.d.ts +18 -2
  117. package/dist/i18n/review.js +17 -7
  118. package/dist/i18n/review.js.map +1 -1
  119. package/dist/index.d.ts +13 -2
  120. package/dist/index.js +49 -1
  121. package/dist/index.js.map +1 -1
  122. package/dist/lib/person-name.d.ts +69 -0
  123. package/dist/lib/person-name.js +65 -0
  124. package/dist/lib/person-name.js.map +1 -0
  125. package/dist/{kit-labels-SBN0biPl.d.ts → register-form-V1OeNlMr.d.ts} +423 -6
  126. package/dist/rhf/fields.d.ts +18 -2
  127. package/dist/rhf/form.d.ts +18 -2
  128. package/dist/rhf.d.ts +18 -2
  129. package/dist/shell/app-shell.d.ts +18 -2
  130. package/dist/shell/company-switcher.d.ts +59 -0
  131. package/dist/shell/company-switcher.js +85 -0
  132. package/dist/shell/company-switcher.js.map +1 -0
  133. package/dist/shell/top-bar-brand.d.ts +18 -2
  134. package/dist/shell/topbar-action-menu.d.ts +1 -0
  135. package/dist/shell.d.ts +12 -2
  136. package/dist/wizard/stepper-nav.d.ts +18 -2
  137. package/dist/wizard.d.ts +18 -2
  138. package/package.json +1 -1
  139. package/src/auth/accept-invitation.tsx +227 -0
  140. package/src/auth/auth-errors.ts +105 -0
  141. package/src/auth/complete-name-dialog.tsx +253 -0
  142. package/src/auth/email-tag.ts +75 -0
  143. package/src/auth/forgot-password-form.tsx +213 -0
  144. package/src/auth/form-rules.ts +40 -0
  145. package/src/auth/new-password-fields.tsx +85 -0
  146. package/src/auth/not-found-page.tsx +98 -0
  147. package/src/auth/register-form.tsx +459 -0
  148. package/src/auth/reset-password-form.tsx +337 -0
  149. package/src/auth/sign-in-form.tsx +687 -0
  150. package/src/auth/status-parts.tsx +138 -0
  151. package/src/auth/verify-email.tsx +358 -0
  152. package/src/components/legal-page.tsx +35 -0
  153. package/src/components/legal.tsx +93 -7
  154. package/src/components/user-avatar.tsx +22 -4
  155. package/src/i18n/defaults.ts +18 -0
  156. package/src/i18n/german.ts +153 -0
  157. package/src/i18n/kit-labels.tsx +27 -0
  158. package/src/i18n/locales/es.ts +156 -3
  159. package/src/i18n/locales/fr.ts +157 -0
  160. package/src/i18n/locales/hu.ts +159 -3
  161. package/src/i18n/locales/it.ts +154 -1
  162. package/src/i18n/locales/zh.ts +149 -1
  163. package/src/i18n/review.ts +15 -6
  164. package/src/index.ts +63 -1
  165. package/src/lib/person-name.ts +157 -0
  166. package/src/shell/company-switcher.tsx +140 -0
@@ -1,5 +1,5 @@
1
1
  import 'react';
2
- export { c1 as CopyButton, c2 as CopyButtonLabels, c3 as CopyButtonProps, ce as DEFAULT_COPY_BUTTON_LABELS } from '../kit-labels-SBN0biPl.js';
2
+ export { c1 as CopyButton, c2 as CopyButtonLabels, c3 as CopyButtonProps, ce as DEFAULT_COPY_BUTTON_LABELS } from '../register-form-V1OeNlMr.js';
3
3
  import './tooltip.js';
4
4
  import '../data-table-labels-DUELeXpa.js';
5
5
  import './data-table-sort.js';
@@ -10,6 +10,7 @@ import './popover.js';
10
10
  import './chip.js';
11
11
  import 'lucide-react';
12
12
  import './field-sync.js';
13
+ import './field-parts.js';
13
14
  import '../wizard/types.js';
14
15
  import '../tour/tour.js';
15
16
  import '../search/command-palette.js';
@@ -31,6 +32,7 @@ import './modal.js';
31
32
  import '../hooks/use-search-param-state.js';
32
33
  import './measured-grid.js';
33
34
  import './user-avatar.js';
35
+ import '../lib/person-name.js';
34
36
  import './status-dot.js';
35
37
  import './progress-bar.js';
36
38
  import './signed-amount.js';
@@ -52,6 +54,15 @@ import './authed-image.js';
52
54
  import './image-grid.js';
53
55
  import './lightbox.js';
54
56
  import './write-lock.js';
57
+ import '../auth/sign-in-form.js';
58
+ import '../auth/complete-name-dialog.js';
59
+ import '../auth/forgot-password-form.js';
60
+ import '../auth/status-parts.js';
61
+ import '../auth/reset-password-form.js';
62
+ import '../auth/verify-email.js';
63
+ import '../auth/not-found-page.js';
64
+ import '../auth/accept-invitation.js';
65
+ import '../shell/company-switcher.js';
55
66
  import './account-chips.js';
56
67
  import '../lib/format.js';
57
68
  import './reauth-dialog.js';
@@ -67,4 +78,9 @@ import './sign-chip.js';
67
78
  import './column-mapper.js';
68
79
  import '../lib/column-mapping.js';
69
80
  import '../lib/table-text.js';
70
- import './field-parts.js';
81
+ import '../shell/topbar-controls.js';
82
+ import '../theme/palette-presets.js';
83
+ import '../theme/chart-palette.js';
84
+ import '../theme/theme-store.js';
85
+ import 'zustand/middleware';
86
+ import 'zustand';
@@ -1,5 +1,5 @@
1
1
  import 'react';
2
- export { c5 as CurrentPasswordInput, c6 as CurrentPasswordInputLabels, c7 as CurrentPasswordInputProps, cg as DEFAULT_DANGER_CONFIRM_LABELS, cv as DangerConfirm, cw as DangerConfirmLabels, cx as DangerConfirmProps, cy as DangerConfirmValues, cz as DangerConsequence, ea as TypedConfirmField, eb as TypedConfirmFieldLabels, ec as TypedConfirmFieldProps, ed as TypedMatch, ep as typedMatches, eB as usePromisePending } from '../kit-labels-SBN0biPl.js';
2
+ export { c5 as CurrentPasswordInput, c6 as CurrentPasswordInputLabels, c7 as CurrentPasswordInputProps, cg as DEFAULT_DANGER_CONFIRM_LABELS, cw as DangerConfirm, cx as DangerConfirmLabels, cy as DangerConfirmProps, cz as DangerConfirmValues, cA as DangerConsequence, ej as TypedConfirmField, ek as TypedConfirmFieldLabels, el as TypedConfirmFieldProps, em as TypedMatch, eE as typedMatches, eS as usePromisePending } from '../register-form-V1OeNlMr.js';
3
3
  import '../data-table-labels-DUELeXpa.js';
4
4
  import './data-table-sort.js';
5
5
  import './swipeable-row.js';
@@ -12,6 +12,7 @@ import './field-sync.js';
12
12
  import './tooltip.js';
13
13
  import '../hooks/use-anchored-rect.js';
14
14
  import '../lib/clipping.js';
15
+ import './field-parts.js';
15
16
  import '../wizard/types.js';
16
17
  import '../tour/tour.js';
17
18
  import '../search/command-palette.js';
@@ -33,6 +34,7 @@ import './modal.js';
33
34
  import '../hooks/use-search-param-state.js';
34
35
  import './measured-grid.js';
35
36
  import './user-avatar.js';
37
+ import '../lib/person-name.js';
36
38
  import './status-dot.js';
37
39
  import './progress-bar.js';
38
40
  import './signed-amount.js';
@@ -52,6 +54,15 @@ import './authed-image.js';
52
54
  import './image-grid.js';
53
55
  import './lightbox.js';
54
56
  import './write-lock.js';
57
+ import '../auth/sign-in-form.js';
58
+ import '../auth/complete-name-dialog.js';
59
+ import '../auth/forgot-password-form.js';
60
+ import '../auth/status-parts.js';
61
+ import '../auth/reset-password-form.js';
62
+ import '../auth/verify-email.js';
63
+ import '../auth/not-found-page.js';
64
+ import '../auth/accept-invitation.js';
65
+ import '../shell/company-switcher.js';
55
66
  import './account-chips.js';
56
67
  import '../lib/format.js';
57
68
  import './reauth-dialog.js';
@@ -67,4 +78,9 @@ import './sign-chip.js';
67
78
  import './column-mapper.js';
68
79
  import '../lib/column-mapping.js';
69
80
  import '../lib/table-text.js';
70
- import './field-parts.js';
81
+ import '../shell/topbar-controls.js';
82
+ import '../theme/palette-presets.js';
83
+ import '../theme/chart-palette.js';
84
+ import '../theme/theme-store.js';
85
+ import 'zustand/middleware';
86
+ import 'zustand';
@@ -6,7 +6,7 @@ import './series-chart-labels.js';
6
6
  import './toggle-legend.js';
7
7
  import './series-chart-ticks.js';
8
8
  import './series-chart-budget.js';
9
- import '../kit-labels-SBN0biPl.js';
9
+ import '../register-form-V1OeNlMr.js';
10
10
  import '../data-table-labels-DUELeXpa.js';
11
11
  import './data-table-sort.js';
12
12
  import './swipeable-row.js';
@@ -19,6 +19,7 @@ import './field-sync.js';
19
19
  import './tooltip.js';
20
20
  import '../hooks/use-anchored-rect.js';
21
21
  import '../lib/clipping.js';
22
+ import './field-parts.js';
22
23
  import '../wizard/types.js';
23
24
  import '../tour/tour.js';
24
25
  import '../search/command-palette.js';
@@ -39,6 +40,7 @@ import './modal.js';
39
40
  import '../hooks/use-search-param-state.js';
40
41
  import './measured-grid.js';
41
42
  import './user-avatar.js';
43
+ import '../lib/person-name.js';
42
44
  import './status-dot.js';
43
45
  import './progress-bar.js';
44
46
  import './signed-amount.js';
@@ -58,6 +60,15 @@ import './authed-image.js';
58
60
  import './image-grid.js';
59
61
  import './lightbox.js';
60
62
  import './write-lock.js';
63
+ import '../auth/sign-in-form.js';
64
+ import '../auth/complete-name-dialog.js';
65
+ import '../auth/forgot-password-form.js';
66
+ import '../auth/status-parts.js';
67
+ import '../auth/reset-password-form.js';
68
+ import '../auth/verify-email.js';
69
+ import '../auth/not-found-page.js';
70
+ import '../auth/accept-invitation.js';
71
+ import '../shell/company-switcher.js';
61
72
  import './account-chips.js';
62
73
  import '../lib/format.js';
63
74
  import './reauth-dialog.js';
@@ -73,7 +84,12 @@ import './sign-chip.js';
73
84
  import './column-mapper.js';
74
85
  import '../lib/column-mapping.js';
75
86
  import '../lib/table-text.js';
76
- import './field-parts.js';
87
+ import '../shell/topbar-controls.js';
88
+ import '../theme/palette-presets.js';
89
+ import '../theme/chart-palette.js';
90
+ import '../theme/theme-store.js';
91
+ import 'zustand/middleware';
92
+ import 'zustand';
77
93
 
78
94
  /** Which chart of a facing pair. Physical, like the axes: charts do not mirror in RTL. */
79
95
  type FacingSide = "left" | "right";
@@ -1,5 +1,5 @@
1
1
  import 'react';
2
- export { cj as DEFAULT_FILE_PICKER_LABELS, cP as FileButton, cQ as FileButtonProps, eA as FilePickHandler, cS as FilePickerLabels, cT as FileRejection, cU as FileRejectionReason, cV as FileScreenOptions, ei as UseFilePickerOptions, ej as UseFilePickerReturn, eC as formatAccept, eD as judgePick, em as matchesAccept, eE as screenFiles, eF as summariseRejections, er as useFilePicker } from '../kit-labels-SBN0biPl.js';
2
+ export { cj as DEFAULT_FILE_PICKER_LABELS, cQ as FileButton, cR as FileButtonProps, eR as FilePickHandler, cT as FilePickerLabels, cU as FileRejection, cV as FileRejectionReason, cW as FileScreenOptions, er as UseFilePickerOptions, es as UseFilePickerReturn, eT as formatAccept, eU as judgePick, ez as matchesAccept, eV as screenFiles, eW as summariseRejections, eG as useFilePicker } from '../register-form-V1OeNlMr.js';
3
3
  import '../data-table-labels-DUELeXpa.js';
4
4
  import './data-table-sort.js';
5
5
  import './swipeable-row.js';
@@ -12,6 +12,7 @@ import './field-sync.js';
12
12
  import './tooltip.js';
13
13
  import '../hooks/use-anchored-rect.js';
14
14
  import '../lib/clipping.js';
15
+ import './field-parts.js';
15
16
  import '../wizard/types.js';
16
17
  import '../tour/tour.js';
17
18
  import '../search/command-palette.js';
@@ -33,6 +34,7 @@ import './modal.js';
33
34
  import '../hooks/use-search-param-state.js';
34
35
  import './measured-grid.js';
35
36
  import './user-avatar.js';
37
+ import '../lib/person-name.js';
36
38
  import './status-dot.js';
37
39
  import './progress-bar.js';
38
40
  import './signed-amount.js';
@@ -52,6 +54,15 @@ import './authed-image.js';
52
54
  import './image-grid.js';
53
55
  import './lightbox.js';
54
56
  import './write-lock.js';
57
+ import '../auth/sign-in-form.js';
58
+ import '../auth/complete-name-dialog.js';
59
+ import '../auth/forgot-password-form.js';
60
+ import '../auth/status-parts.js';
61
+ import '../auth/reset-password-form.js';
62
+ import '../auth/verify-email.js';
63
+ import '../auth/not-found-page.js';
64
+ import '../auth/accept-invitation.js';
65
+ import '../shell/company-switcher.js';
55
66
  import './account-chips.js';
56
67
  import '../lib/format.js';
57
68
  import './reauth-dialog.js';
@@ -67,4 +78,9 @@ import './sign-chip.js';
67
78
  import './column-mapper.js';
68
79
  import '../lib/column-mapping.js';
69
80
  import '../lib/table-text.js';
70
- import './field-parts.js';
81
+ import '../shell/topbar-controls.js';
82
+ import '../theme/palette-presets.js';
83
+ import '../theme/chart-palette.js';
84
+ import '../theme/theme-store.js';
85
+ import 'zustand/middleware';
86
+ import 'zustand';
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { ComponentPropsWithoutRef, ReactNode } from 'react';
3
- import { cT as FileRejection, eA as FilePickHandler, cS as FilePickerLabels } from '../kit-labels-SBN0biPl.js';
3
+ import { cU as FileRejection, eR as FilePickHandler, cT as FilePickerLabels } from '../register-form-V1OeNlMr.js';
4
4
  import '../data-table-labels-DUELeXpa.js';
5
5
  import './data-table-sort.js';
6
6
  import './swipeable-row.js';
@@ -13,6 +13,7 @@ import './field-sync.js';
13
13
  import './tooltip.js';
14
14
  import '../hooks/use-anchored-rect.js';
15
15
  import '../lib/clipping.js';
16
+ import './field-parts.js';
16
17
  import '../wizard/types.js';
17
18
  import '../tour/tour.js';
18
19
  import '../search/command-palette.js';
@@ -34,6 +35,7 @@ import './modal.js';
34
35
  import '../hooks/use-search-param-state.js';
35
36
  import './measured-grid.js';
36
37
  import './user-avatar.js';
38
+ import '../lib/person-name.js';
37
39
  import './status-dot.js';
38
40
  import './progress-bar.js';
39
41
  import './signed-amount.js';
@@ -53,6 +55,15 @@ import './authed-image.js';
53
55
  import './image-grid.js';
54
56
  import './lightbox.js';
55
57
  import './write-lock.js';
58
+ import '../auth/sign-in-form.js';
59
+ import '../auth/complete-name-dialog.js';
60
+ import '../auth/forgot-password-form.js';
61
+ import '../auth/status-parts.js';
62
+ import '../auth/reset-password-form.js';
63
+ import '../auth/verify-email.js';
64
+ import '../auth/not-found-page.js';
65
+ import '../auth/accept-invitation.js';
66
+ import '../shell/company-switcher.js';
56
67
  import './account-chips.js';
57
68
  import '../lib/format.js';
58
69
  import './reauth-dialog.js';
@@ -68,7 +79,12 @@ import './sign-chip.js';
68
79
  import './column-mapper.js';
69
80
  import '../lib/column-mapping.js';
70
81
  import '../lib/table-text.js';
71
- import './field-parts.js';
82
+ import '../shell/topbar-controls.js';
83
+ import '../theme/palette-presets.js';
84
+ import '../theme/chart-palette.js';
85
+ import '../theme/theme-store.js';
86
+ import 'zustand/middleware';
87
+ import 'zustand';
72
88
 
73
89
  /**
74
90
  * Where a refused file's message goes.
@@ -1,6 +1,6 @@
1
1
  import 'react';
2
2
  import 'lucide-react';
3
- export { ck as DEFAULT_FORM_ACTIONS_LABELS, cY as FormActions, cZ as FormActionsAlign, c_ as FormActionsDestructive, c$ as FormActionsLabels, d0 as FormActionsPlacement, d1 as FormActionsProps, d2 as FormActionsStickyWithin, d3 as FormActionsSubmitProps, d4 as FormActionsSubmitShortcut, dN as ResponsiveFormActionsPlacement } from '../kit-labels-SBN0biPl.js';
3
+ export { ck as DEFAULT_FORM_ACTIONS_LABELS, cZ as FormActions, c_ as FormActionsAlign, c$ as FormActionsDestructive, d0 as FormActionsLabels, d1 as FormActionsPlacement, d2 as FormActionsProps, d3 as FormActionsStickyWithin, d4 as FormActionsSubmitProps, d5 as FormActionsSubmitShortcut, dW as ResponsiveFormActionsPlacement } from '../register-form-V1OeNlMr.js';
4
4
  import '../data-table-labels-DUELeXpa.js';
5
5
  import './data-table-sort.js';
6
6
  import './swipeable-row.js';
@@ -12,6 +12,7 @@ import './field-sync.js';
12
12
  import './tooltip.js';
13
13
  import '../hooks/use-anchored-rect.js';
14
14
  import '../lib/clipping.js';
15
+ import './field-parts.js';
15
16
  import '../wizard/types.js';
16
17
  import '../tour/tour.js';
17
18
  import '../search/command-palette.js';
@@ -33,6 +34,7 @@ import './modal.js';
33
34
  import '../hooks/use-search-param-state.js';
34
35
  import './measured-grid.js';
35
36
  import './user-avatar.js';
37
+ import '../lib/person-name.js';
36
38
  import './status-dot.js';
37
39
  import './progress-bar.js';
38
40
  import './signed-amount.js';
@@ -52,6 +54,15 @@ import './authed-image.js';
52
54
  import './image-grid.js';
53
55
  import './lightbox.js';
54
56
  import './write-lock.js';
57
+ import '../auth/sign-in-form.js';
58
+ import '../auth/complete-name-dialog.js';
59
+ import '../auth/forgot-password-form.js';
60
+ import '../auth/status-parts.js';
61
+ import '../auth/reset-password-form.js';
62
+ import '../auth/verify-email.js';
63
+ import '../auth/not-found-page.js';
64
+ import '../auth/accept-invitation.js';
65
+ import '../shell/company-switcher.js';
55
66
  import './account-chips.js';
56
67
  import '../lib/format.js';
57
68
  import './reauth-dialog.js';
@@ -67,4 +78,9 @@ import './sign-chip.js';
67
78
  import './column-mapper.js';
68
79
  import '../lib/column-mapping.js';
69
80
  import '../lib/table-text.js';
70
- import './field-parts.js';
81
+ import '../shell/topbar-controls.js';
82
+ import '../theme/palette-presets.js';
83
+ import '../theme/chart-palette.js';
84
+ import '../theme/theme-store.js';
85
+ import 'zustand/middleware';
86
+ import 'zustand';
@@ -1,6 +1,6 @@
1
1
  import 'react';
2
2
  import '../lib/iban.js';
3
- export { cl as DEFAULT_IBAN_INPUT_LABELS, d5 as IbanInput, d6 as IbanInputLabels, d7 as IbanInputProps } from '../kit-labels-SBN0biPl.js';
3
+ export { cl as DEFAULT_IBAN_INPUT_LABELS, d6 as IbanInput, d7 as IbanInputLabels, d8 as IbanInputProps } from '../register-form-V1OeNlMr.js';
4
4
  import '../data-table-labels-DUELeXpa.js';
5
5
  import './data-table-sort.js';
6
6
  import './swipeable-row.js';
@@ -13,6 +13,7 @@ import './field-sync.js';
13
13
  import './tooltip.js';
14
14
  import '../hooks/use-anchored-rect.js';
15
15
  import '../lib/clipping.js';
16
+ import './field-parts.js';
16
17
  import '../wizard/types.js';
17
18
  import '../tour/tour.js';
18
19
  import '../search/command-palette.js';
@@ -34,6 +35,7 @@ import './modal.js';
34
35
  import '../hooks/use-search-param-state.js';
35
36
  import './measured-grid.js';
36
37
  import './user-avatar.js';
38
+ import '../lib/person-name.js';
37
39
  import './status-dot.js';
38
40
  import './progress-bar.js';
39
41
  import './signed-amount.js';
@@ -53,6 +55,15 @@ import './authed-image.js';
53
55
  import './image-grid.js';
54
56
  import './lightbox.js';
55
57
  import './write-lock.js';
58
+ import '../auth/sign-in-form.js';
59
+ import '../auth/complete-name-dialog.js';
60
+ import '../auth/forgot-password-form.js';
61
+ import '../auth/status-parts.js';
62
+ import '../auth/reset-password-form.js';
63
+ import '../auth/verify-email.js';
64
+ import '../auth/not-found-page.js';
65
+ import '../auth/accept-invitation.js';
66
+ import '../shell/company-switcher.js';
56
67
  import './account-chips.js';
57
68
  import '../lib/format.js';
58
69
  import './reauth-dialog.js';
@@ -67,4 +78,9 @@ import './sign-chip.js';
67
78
  import './column-mapper.js';
68
79
  import '../lib/column-mapping.js';
69
80
  import '../lib/table-text.js';
70
- import './field-parts.js';
81
+ import '../shell/topbar-controls.js';
82
+ import '../theme/palette-presets.js';
83
+ import '../theme/chart-palette.js';
84
+ import '../theme/theme-store.js';
85
+ import 'zustand/middleware';
86
+ import 'zustand';
@@ -1,12 +1,5 @@
1
1
  import * as react from 'react';
2
- import { KitLanguageCode, KitLanguage } from '../i18n/languages.js';
3
- import { dP as SelectProps } from '../kit-labels-SBN0biPl.js';
4
- import '../shell/topbar-controls.js';
5
- import '../theme/palette-presets.js';
6
- import '../theme/chart-palette.js';
7
- import '../theme/theme-store.js';
8
- import 'zustand/middleware';
9
- import 'zustand';
2
+ import { dY as SelectProps, dn as KitLanguageCode, dm as KitLanguage } from '../register-form-V1OeNlMr.js';
10
3
  import '../data-table-labels-DUELeXpa.js';
11
4
  import './data-table-sort.js';
12
5
  import './swipeable-row.js';
@@ -19,6 +12,7 @@ import './field-sync.js';
19
12
  import './tooltip.js';
20
13
  import '../hooks/use-anchored-rect.js';
21
14
  import '../lib/clipping.js';
15
+ import './field-parts.js';
22
16
  import '../wizard/types.js';
23
17
  import '../tour/tour.js';
24
18
  import '../search/command-palette.js';
@@ -40,6 +34,7 @@ import './modal.js';
40
34
  import '../hooks/use-search-param-state.js';
41
35
  import './measured-grid.js';
42
36
  import './user-avatar.js';
37
+ import '../lib/person-name.js';
43
38
  import './status-dot.js';
44
39
  import './progress-bar.js';
45
40
  import './signed-amount.js';
@@ -59,6 +54,15 @@ import './authed-image.js';
59
54
  import './image-grid.js';
60
55
  import './lightbox.js';
61
56
  import './write-lock.js';
57
+ import '../auth/sign-in-form.js';
58
+ import '../auth/complete-name-dialog.js';
59
+ import '../auth/forgot-password-form.js';
60
+ import '../auth/status-parts.js';
61
+ import '../auth/reset-password-form.js';
62
+ import '../auth/verify-email.js';
63
+ import '../auth/not-found-page.js';
64
+ import '../auth/accept-invitation.js';
65
+ import '../shell/company-switcher.js';
62
66
  import './account-chips.js';
63
67
  import '../lib/format.js';
64
68
  import './reauth-dialog.js';
@@ -74,7 +78,12 @@ import './sign-chip.js';
74
78
  import './column-mapper.js';
75
79
  import '../lib/column-mapping.js';
76
80
  import '../lib/table-text.js';
77
- import './field-parts.js';
81
+ import '../shell/topbar-controls.js';
82
+ import '../theme/palette-presets.js';
83
+ import '../theme/chart-palette.js';
84
+ import '../theme/theme-store.js';
85
+ import 'zustand/middleware';
86
+ import 'zustand';
78
87
 
79
88
  /**
80
89
  * A language as a FORM FIELD: one of the codes an app offers, picked in a form beside
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { Ref, ReactNode } from 'react';
3
- import { dC as LegalPageKey, dn as LabelOverride, dt as LegalLabels, dz as LegalOperator } from '../kit-labels-SBN0biPl.js';
3
+ import { dH as LegalPageKey, dt as LabelOverride, dy as LegalLabels, dE as LegalOperator } from '../register-form-V1OeNlMr.js';
4
4
  import { CheckboxProps } from './checkbox.js';
5
5
  import '../data-table-labels-DUELeXpa.js';
6
6
  import './data-table-sort.js';
@@ -14,6 +14,7 @@ import './field-sync.js';
14
14
  import './tooltip.js';
15
15
  import '../hooks/use-anchored-rect.js';
16
16
  import '../lib/clipping.js';
17
+ import './field-parts.js';
17
18
  import '../wizard/types.js';
18
19
  import '../tour/tour.js';
19
20
  import '../search/command-palette.js';
@@ -35,6 +36,7 @@ import './modal.js';
35
36
  import '../hooks/use-search-param-state.js';
36
37
  import './measured-grid.js';
37
38
  import './user-avatar.js';
39
+ import '../lib/person-name.js';
38
40
  import './status-dot.js';
39
41
  import './progress-bar.js';
40
42
  import './signed-amount.js';
@@ -54,6 +56,15 @@ import './authed-image.js';
54
56
  import './image-grid.js';
55
57
  import './lightbox.js';
56
58
  import './write-lock.js';
59
+ import '../auth/sign-in-form.js';
60
+ import '../auth/complete-name-dialog.js';
61
+ import '../auth/forgot-password-form.js';
62
+ import '../auth/status-parts.js';
63
+ import '../auth/reset-password-form.js';
64
+ import '../auth/verify-email.js';
65
+ import '../auth/not-found-page.js';
66
+ import '../auth/accept-invitation.js';
67
+ import '../shell/company-switcher.js';
57
68
  import './account-chips.js';
58
69
  import '../lib/format.js';
59
70
  import './reauth-dialog.js';
@@ -69,7 +80,12 @@ import './sign-chip.js';
69
80
  import './column-mapper.js';
70
81
  import '../lib/column-mapping.js';
71
82
  import '../lib/table-text.js';
72
- import './field-parts.js';
83
+ import '../shell/topbar-controls.js';
84
+ import '../theme/palette-presets.js';
85
+ import '../theme/chart-palette.js';
86
+ import '../theme/theme-store.js';
87
+ import 'zustand/middleware';
88
+ import 'zustand';
73
89
 
74
90
  /**
75
91
  * The legal pages' frame and the kit's own sections — docs/legal-harmonization.md §3
@@ -107,7 +123,7 @@ interface LegalSkeletonPage {
107
123
  declare const LEGAL_SKELETON: Readonly<Record<LegalPageKey, LegalSkeletonPage>>;
108
124
  /** The sections the kit writes (§4.3), on whichever page they sit. `contact` is on two
109
125
  * pages, with two texts; the page decides which. */
110
- type LegalKitSectionKey = "operator" | "contact" | "disclaimer" | "controller" | "legal_basis" | "browser" | "rights" | "warranty" | "liability" | "changes" | "law";
126
+ type LegalKitSectionKey = "operator" | "contact" | "disclaimer" | "controller" | "legal_basis" | "browser" | "rights" | "warranty" | "liability" | "changes" | "language" | "law";
111
127
  interface LegalKitSectionBase {
112
128
  /** Default: the enclosing {@link LegalPage}'s page — needed outside one, and for
113
129
  * `contact` only (it is on two pages). */
@@ -191,6 +207,12 @@ interface LegalPageProps {
191
207
  /** Default: the kit's beta notice on the imprint and the terms, its privacy notice on
192
208
  * the privacy policy (§3.2). `null` for none. */
193
209
  notice?: ReactNode;
210
+ /**
211
+ * 0.28.1: switches the app to the operator's `bindingLanguage` — the button after the
212
+ * translation note on a page read in another language. Without it the note stands
213
+ * alone; the app's own language switcher is in its header anyway.
214
+ */
215
+ onShowBindingLanguage?: () => void;
194
216
  /** The language the operator's country is named in. Default: the `<UiKitProvider
195
217
  * locale>`, else English. */
196
218
  locale?: string;
@@ -231,7 +253,7 @@ interface LegalPageProps {
231
253
  * (see `children` for what that asks of the tree);
232
254
  * - `useNoIndex()`.
233
255
  */
234
- declare function LegalPage({ page, operator, children, header, footer, homeHref, notice, locale: localeProp, headingAs, landmark, noIndex, className, labels: labelsProp, }: LegalPageProps): react.JSX.Element;
256
+ declare function LegalPage({ page, operator, children, header, footer, homeHref, notice, onShowBindingLanguage, locale: localeProp, headingAs, landmark, noIndex, className, labels: labelsProp, }: LegalPageProps): react.JSX.Element;
235
257
  interface LegalAcceptCheckboxProps extends Omit<CheckboxProps, "label" | "checked" | "onCheckedChange" | "required"> {
236
258
  checked: boolean;
237
259
  onCheckedChange: (checked: boolean) => void;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { Fragment, isValidElement, useContext, useMemo } from "react";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { Fragment as Fragment2, isValidElement, useContext, useMemo } from "react";
4
4
  import { ArrowLeft } from "lucide-react";
5
5
  import { UiKitProvider, useKitLocale } from "../i18n/kit-labels.js";
6
6
  import { useNoIndex } from "../hooks/use-noindex.js";
@@ -8,6 +8,7 @@ import { cn } from "../lib/cn.js";
8
8
  import { Checkbox } from "./checkbox.js";
9
9
  import {
10
10
  LEGAL_HREFS,
11
+ baseLanguage,
11
12
  LegalFooter,
12
13
  LegalLayout,
13
14
  LegalPageContext,
@@ -19,6 +20,7 @@ import {
19
20
  warnLegalOnce
20
21
  } from "./legal.js";
21
22
  import { TextLink } from "./text-link.js";
23
+ import { Button } from "./ui.js";
22
24
  const LEGAL_SKELETON = Object.freeze({
23
25
  impressum: Object.freeze({
24
26
  numbered: false,
@@ -53,6 +55,8 @@ const LEGAL_SKELETON = Object.freeze({
53
55
  { key: "warranty", owner: "kit" },
54
56
  { key: "liability", owner: "kit" },
55
57
  { key: "changes", owner: "kit" },
58
+ // 0.28.1: which language's version prevails (the operator's `bindingLanguage`).
59
+ { key: "language", owner: "kit" },
56
60
  { key: "law", owner: "kit" }
57
61
  ])
58
62
  })
@@ -64,7 +68,7 @@ const PAGES = ["impressum", "privacy", "terms"];
64
68
  function appPart(children) {
65
69
  if (children === void 0 || children === null || children === false) return null;
66
70
  if (typeof children === "string") return /* @__PURE__ */ jsx(LegalText, { text: children }, "app");
67
- return /* @__PURE__ */ jsx(Fragment, { children }, "app");
71
+ return /* @__PURE__ */ jsx(Fragment2, { children }, "app");
68
72
  }
69
73
  function LegalKitSection(props) {
70
74
  const { section, headingAs, labels: labelsProp } = props;
@@ -87,6 +91,11 @@ function LegalKitSection(props) {
87
91
  `LegalKitSection "${section}" names the operator: render it inside <LegalPage operator={\u2026}>, or pass operator.`
88
92
  );
89
93
  }
94
+ if (section === "language" && !operator.bindingLanguage) {
95
+ throw new Error(
96
+ `LegalKitSection "language" names the binding language: give the operator a bindingLanguage ("de-CH").`
97
+ );
98
+ }
90
99
  return body(operator);
91
100
  };
92
101
  const app = appPart(props.children);
@@ -115,7 +124,7 @@ function onlyPageOf(section) {
115
124
  function flatten(node, path, out) {
116
125
  if (node === null || node === void 0 || typeof node === "boolean") return;
117
126
  if (isValidElement(node)) {
118
- if (node.type === Fragment) {
127
+ if (node.type === Fragment2) {
119
128
  flatten(node.props.children, path, out);
120
129
  } else {
121
130
  out.push({ node, path: path || "/" });
@@ -152,7 +161,7 @@ function slotSections(children, page, labels) {
152
161
  let count = 0;
153
162
  const nodes = flat.map(({ node, path }) => {
154
163
  const section = sectionOf(node, page, labels);
155
- if (!section) return /* @__PURE__ */ jsx(Fragment, { children: node }, path);
164
+ if (!section) return /* @__PURE__ */ jsx(Fragment2, { children: node }, path);
156
165
  count += 1;
157
166
  const number = numbered ? count : void 0;
158
167
  if (section.key !== void 0) {
@@ -174,6 +183,7 @@ function LegalPage({
174
183
  footer,
175
184
  homeHref = "/",
176
185
  notice,
186
+ onShowBindingLanguage,
177
187
  locale: localeProp,
178
188
  headingAs = "h1",
179
189
  landmark = true,
@@ -198,6 +208,14 @@ function LegalPage({
198
208
  };
199
209
  const Main = landmark ? "main" : "div";
200
210
  const shownNotice = notice !== void 0 ? notice : page === "privacy" ? labels.notice.privacy : labels.notice.beta;
211
+ const translated = operator.bindingLanguage !== void 0 && baseLanguage(operator.bindingLanguage) !== baseLanguage(locale);
212
+ const translationNote = translated ? /* @__PURE__ */ jsxs("p", { className: "text-sm text-[var(--text-secondary)]", children: [
213
+ labels.translation.note(operatorText),
214
+ onShowBindingLanguage && /* @__PURE__ */ jsxs(Fragment, { children: [
215
+ " ",
216
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "link", size: "sm", className: "h-auto p-0 align-baseline", onClick: onShowBindingLanguage, children: labels.translation.show(operatorText) })
217
+ ] })
218
+ ] }) : void 0;
201
219
  return /* @__PURE__ */ jsx(UiKitProvider, { labels: overrides, children: /* @__PURE__ */ jsxs("div", { className: cn("flex min-h-full flex-col", className), children: [
202
220
  header,
203
221
  /* @__PURE__ */ jsx(Main, { className: "flex-1", children: /* @__PURE__ */ jsx(LegalPageContext.Provider, { value: context, children: /* @__PURE__ */ jsx(
@@ -206,6 +224,7 @@ function LegalPage({
206
224
  back: /* @__PURE__ */ jsx(TextLink, { href: homeHref, icon: ArrowLeft, children: labels.backHome }),
207
225
  title: labels.titles[page],
208
226
  notice: shownNotice,
227
+ translationNote,
209
228
  headingAs,
210
229
  children: nodes
211
230
  }