@eifi1/ui-kit 0.21.0 → 0.23.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 (320) hide show
  1. package/README.md +42 -25
  2. package/dist/chart.d.ts +19 -14
  3. package/dist/components/account-chips.d.ts +10 -3
  4. package/dist/components/account-chips.js +5 -2
  5. package/dist/components/account-chips.js.map +1 -1
  6. package/dist/components/account-settings.d.ts +33 -2
  7. package/dist/components/account-settings.js +43 -21
  8. package/dist/components/account-settings.js.map +1 -1
  9. package/dist/components/amount-input.d.ts +53 -14
  10. package/dist/components/amount-input.js +17 -28
  11. package/dist/components/amount-input.js.map +1 -1
  12. package/dist/components/autocomplete.d.ts +29 -0
  13. package/dist/components/autocomplete.js +134 -104
  14. package/dist/components/autocomplete.js.map +1 -1
  15. package/dist/components/button-group.d.ts +19 -14
  16. package/dist/components/calculator.d.ts +19 -14
  17. package/dist/components/checkbox-group.d.ts +104 -0
  18. package/dist/components/checkbox-group.js +111 -0
  19. package/dist/components/checkbox-group.js.map +1 -0
  20. package/dist/components/checkbox.d.ts +19 -0
  21. package/dist/components/checkbox.js +30 -7
  22. package/dist/components/checkbox.js.map +1 -1
  23. package/dist/components/chip.d.ts +18 -0
  24. package/dist/components/chip.js +47 -10
  25. package/dist/components/chip.js.map +1 -1
  26. package/dist/components/column-mapper.d.ts +182 -0
  27. package/dist/components/column-mapper.js +375 -0
  28. package/dist/components/column-mapper.js.map +1 -0
  29. package/dist/components/combobox-core.d.ts +39 -2
  30. package/dist/components/combobox-core.js +29 -6
  31. package/dist/components/combobox-core.js.map +1 -1
  32. package/dist/components/combobox.d.ts +91 -2
  33. package/dist/components/combobox.js +454 -308
  34. package/dist/components/combobox.js.map +1 -1
  35. package/dist/components/confirm-dialog.d.ts +69 -161
  36. package/dist/components/confirm-dialog.js +7 -8
  37. package/dist/components/confirm-dialog.js.map +1 -1
  38. package/dist/components/copy-button.d.ts +16 -11
  39. package/dist/components/country-select.d.ts +167 -0
  40. package/dist/components/country-select.js +293 -0
  41. package/dist/components/country-select.js.map +1 -0
  42. package/dist/components/currency-select.d.ts +17 -1
  43. package/dist/components/currency-select.js +56 -23
  44. package/dist/components/currency-select.js.map +1 -1
  45. package/dist/components/danger-confirm.d.ts +69 -166
  46. package/dist/components/danger-confirm.js +144 -50
  47. package/dist/components/danger-confirm.js.map +1 -1
  48. package/dist/components/data-table-cells.d.ts +1 -2
  49. package/dist/components/data-table-filter-popover.d.ts +1 -2
  50. package/dist/components/data-table-filters.d.ts +1 -2
  51. package/dist/components/data-table-labels.d.ts +4 -97
  52. package/dist/components/data-table-labels.js +9 -1
  53. package/dist/components/data-table-labels.js.map +1 -1
  54. package/dist/components/data-table-pagination.d.ts +3 -1
  55. package/dist/components/data-table.d.ts +1 -2
  56. package/dist/components/data-table.js +98 -3
  57. package/dist/components/data-table.js.map +1 -1
  58. package/dist/components/date-picker.d.ts +66 -5
  59. package/dist/components/date-picker.js +378 -66
  60. package/dist/components/date-picker.js.map +1 -1
  61. package/dist/components/entity-combobox.d.ts +42 -1
  62. package/dist/components/entity-combobox.js +154 -113
  63. package/dist/components/entity-combobox.js.map +1 -1
  64. package/dist/components/facing-pair.d.ts +19 -14
  65. package/dist/components/field-parts.d.ts +224 -0
  66. package/dist/components/field-parts.js +156 -0
  67. package/dist/components/field-parts.js.map +1 -0
  68. package/dist/components/field-strip.d.ts +105 -0
  69. package/dist/components/field-strip.js +46 -0
  70. package/dist/components/field-strip.js.map +1 -0
  71. package/dist/components/file-button.d.ts +19 -14
  72. package/dist/components/file-button.js +13 -3
  73. package/dist/components/file-button.js.map +1 -1
  74. package/dist/components/file-dropzone.d.ts +41 -15
  75. package/dist/components/file-dropzone.js +57 -34
  76. package/dist/components/file-dropzone.js.map +1 -1
  77. package/dist/components/form-actions.d.ts +18 -13
  78. package/dist/components/form-actions.js +69 -5
  79. package/dist/components/form-actions.js.map +1 -1
  80. package/dist/components/iban-input.d.ts +69 -0
  81. package/dist/components/iban-input.js +125 -0
  82. package/dist/components/iban-input.js.map +1 -0
  83. package/dist/components/icon-picker.d.ts +21 -2
  84. package/dist/components/icon-picker.js +19 -4
  85. package/dist/components/icon-picker.js.map +1 -1
  86. package/dist/components/inline-edit-field.d.ts +167 -0
  87. package/dist/components/inline-edit-field.js +293 -0
  88. package/dist/components/inline-edit-field.js.map +1 -0
  89. package/dist/components/language-select.d.ts +130 -0
  90. package/dist/components/language-select.js +18 -0
  91. package/dist/components/language-select.js.map +1 -0
  92. package/dist/components/line-items.d.ts +25 -3
  93. package/dist/components/line-items.js +55 -46
  94. package/dist/components/line-items.js.map +1 -1
  95. package/dist/components/list.d.ts +25 -0
  96. package/dist/components/list.js +16 -5
  97. package/dist/components/list.js.map +1 -1
  98. package/dist/components/money-field.d.ts +32 -14
  99. package/dist/components/money-field.js.map +1 -1
  100. package/dist/components/month-picker.d.ts +52 -4
  101. package/dist/components/month-picker.js +291 -86
  102. package/dist/components/month-picker.js.map +1 -1
  103. package/dist/components/multi-entity-combobox.d.ts +26 -1
  104. package/dist/components/multi-entity-combobox.js +143 -102
  105. package/dist/components/multi-entity-combobox.js.map +1 -1
  106. package/dist/components/multi-select.d.ts +8 -1
  107. package/dist/components/multi-select.js +9 -4
  108. package/dist/components/multi-select.js.map +1 -1
  109. package/dist/components/number-field.d.ts +34 -19
  110. package/dist/components/number-field.js +6 -20
  111. package/dist/components/number-field.js.map +1 -1
  112. package/dist/components/number-input.d.ts +79 -19
  113. package/dist/components/number-input.js +90 -38
  114. package/dist/components/number-input.js.map +1 -1
  115. package/dist/components/numpad-sheet.d.ts +19 -14
  116. package/dist/components/one-time-code-input.d.ts +100 -0
  117. package/dist/components/one-time-code-input.js +137 -0
  118. package/dist/components/one-time-code-input.js.map +1 -0
  119. package/dist/components/phone-input.d.ts +69 -0
  120. package/dist/components/phone-input.js +171 -0
  121. package/dist/components/phone-input.js.map +1 -0
  122. package/dist/components/reauth-dialog.d.ts +2 -2
  123. package/dist/components/reauth-dialog.js +6 -8
  124. package/dist/components/reauth-dialog.js.map +1 -1
  125. package/dist/components/series-chart.d.ts +19 -14
  126. package/dist/components/settings-fields.d.ts +19 -14
  127. package/dist/components/share-card.d.ts +16 -11
  128. package/dist/components/sign-chip.d.ts +66 -0
  129. package/dist/components/sign-chip.js +39 -0
  130. package/dist/components/sign-chip.js.map +1 -0
  131. package/dist/components/swatch-picker.d.ts +43 -2
  132. package/dist/components/swatch-picker.js +80 -32
  133. package/dist/components/swatch-picker.js.map +1 -1
  134. package/dist/components/switch.d.ts +19 -0
  135. package/dist/components/switch.js +24 -6
  136. package/dist/components/switch.js.map +1 -1
  137. package/dist/components/text-link.d.ts +18 -13
  138. package/dist/components/tile-radio.d.ts +88 -13
  139. package/dist/components/tile-radio.js +28 -11
  140. package/dist/components/tile-radio.js.map +1 -1
  141. package/dist/components/time-input.d.ts +24 -15
  142. package/dist/components/time-input.js.map +1 -1
  143. package/dist/components/toggle-group.d.ts +47 -1
  144. package/dist/components/toggle-group.js +110 -69
  145. package/dist/components/toggle-group.js.map +1 -1
  146. package/dist/components/trigger-aria.d.ts +3 -0
  147. package/dist/components/trigger-aria.js +3 -1
  148. package/dist/components/trigger-aria.js.map +1 -1
  149. package/dist/components/ui.d.ts +16 -11
  150. package/dist/components/ui.js +284 -88
  151. package/dist/components/ui.js.map +1 -1
  152. package/dist/components/use-table-state.d.ts +1 -2
  153. package/dist/{data-table-3mi2R3so.d.ts → data-table-labels-B7OdnM0S.d.ts} +140 -3
  154. package/dist/data-table.d.ts +1 -2
  155. package/dist/data-table.js +2 -1
  156. package/dist/data-table.js.map +1 -1
  157. package/dist/feedback/feedback-attachment.d.ts +1 -1
  158. package/dist/feedback/feedback-attachment.js +348 -41
  159. package/dist/feedback/feedback-attachment.js.map +1 -1
  160. package/dist/feedback/feedback-dialog.d.ts +1 -1
  161. package/dist/feedback/feedback-dialog.js.map +1 -1
  162. package/dist/feedback/feedback-inbox.d.ts +3 -2
  163. package/dist/feedback/feedback-inbox.js.map +1 -1
  164. package/dist/feedback/feedback-thread.d.ts +68 -253
  165. package/dist/feedback/feedback-thread.js +46 -10
  166. package/dist/feedback/feedback-thread.js.map +1 -1
  167. package/dist/{kit-labels-D1J2_jyD.d.ts → feedback-BxeQVzwq.d.ts} +1206 -20
  168. package/dist/{feedback-attachment-WFiXJ8We.d.ts → feedback-attachment-fGAzZPf0.d.ts} +178 -11
  169. package/dist/feedback.d.ts +66 -2
  170. package/dist/hooks/use-file-drop.d.ts +19 -14
  171. package/dist/i18n/defaults.d.ts +19 -14
  172. package/dist/i18n/defaults.js +19 -2
  173. package/dist/i18n/defaults.js.map +1 -1
  174. package/dist/i18n/german.d.ts +19 -14
  175. package/dist/i18n/german.js +84 -5
  176. package/dist/i18n/german.js.map +1 -1
  177. package/dist/i18n/kit-labels.d.ts +15 -10
  178. package/dist/i18n/kit-labels.js +8 -2
  179. package/dist/i18n/kit-labels.js.map +1 -1
  180. package/dist/i18n/languages.d.ts +19 -14
  181. package/dist/i18n/locales/de-CH.d.ts +19 -14
  182. package/dist/i18n/locales/en.d.ts +19 -14
  183. package/dist/i18n/locales/en.js +16 -0
  184. package/dist/i18n/locales/en.js.map +1 -1
  185. package/dist/i18n/locales/es.d.ts +19 -14
  186. package/dist/i18n/locales/es.js +83 -5
  187. package/dist/i18n/locales/es.js.map +1 -1
  188. package/dist/i18n/locales/fr.d.ts +19 -14
  189. package/dist/i18n/locales/fr.js +82 -5
  190. package/dist/i18n/locales/fr.js.map +1 -1
  191. package/dist/i18n/locales/hu.d.ts +19 -14
  192. package/dist/i18n/locales/hu.js +85 -5
  193. package/dist/i18n/locales/hu.js.map +1 -1
  194. package/dist/i18n/locales/it.d.ts +19 -14
  195. package/dist/i18n/locales/it.js +84 -5
  196. package/dist/i18n/locales/it.js.map +1 -1
  197. package/dist/i18n/locales/zh.d.ts +19 -14
  198. package/dist/i18n/locales/zh.js +80 -5
  199. package/dist/i18n/locales/zh.js.map +1 -1
  200. package/dist/i18n/review.d.ts +19 -14
  201. package/dist/i18n/review.js +27 -1
  202. package/dist/i18n/review.js.map +1 -1
  203. package/dist/index.d.ts +21 -10
  204. package/dist/index.js +73 -2
  205. package/dist/index.js.map +1 -1
  206. package/dist/lib/column-mapping.d.ts +81 -0
  207. package/dist/lib/column-mapping.js +108 -0
  208. package/dist/lib/column-mapping.js.map +1 -0
  209. package/dist/lib/countries.d.ts +43 -0
  210. package/dist/lib/countries.js +39 -0
  211. package/dist/lib/countries.js.map +1 -0
  212. package/dist/lib/decimal-marks.d.ts +46 -0
  213. package/dist/lib/decimal-marks.js +40 -0
  214. package/dist/lib/decimal-marks.js.map +1 -0
  215. package/dist/lib/iban.d.ts +98 -0
  216. package/dist/lib/iban.js +154 -0
  217. package/dist/lib/iban.js.map +1 -0
  218. package/dist/lib/isin.d.ts +30 -0
  219. package/dist/lib/isin.js +36 -0
  220. package/dist/lib/isin.js.map +1 -0
  221. package/dist/lib/phone.d.ts +69 -0
  222. package/dist/lib/phone.js +121 -0
  223. package/dist/lib/phone.js.map +1 -0
  224. package/dist/lib/table-text.d.ts +109 -1
  225. package/dist/lib/table-text.js +122 -1
  226. package/dist/lib/table-text.js.map +1 -1
  227. package/dist/rhf/fields.d.ts +233 -18
  228. package/dist/rhf/fields.js +456 -3
  229. package/dist/rhf/fields.js.map +1 -1
  230. package/dist/rhf/form.d.ts +19 -14
  231. package/dist/rhf.d.ts +22 -15
  232. package/dist/rhf.js.map +1 -1
  233. package/dist/shell/app-shell.d.ts +18 -13
  234. package/dist/shell/top-bar-brand.d.ts +19 -14
  235. package/dist/shell/topbar-action-menu.d.ts +36 -3
  236. package/dist/shell/topbar-action-menu.js +74 -33
  237. package/dist/shell/topbar-action-menu.js.map +1 -1
  238. package/dist/shell.d.ts +18 -13
  239. package/dist/table-text.d.ts +1 -1
  240. package/dist/tour/tour.js +20 -24
  241. package/dist/tour/tour.js.map +1 -1
  242. package/dist/wizard/stepper-nav.d.ts +49 -16
  243. package/dist/wizard/stepper-nav.js +4 -0
  244. package/dist/wizard/stepper-nav.js.map +1 -1
  245. package/dist/wizard.d.ts +19 -14
  246. package/package.json +1 -1
  247. package/src/components/account-chips.tsx +17 -3
  248. package/src/components/account-settings.tsx +92 -26
  249. package/src/components/amount-input.tsx +68 -56
  250. package/src/components/autocomplete.tsx +198 -114
  251. package/src/components/checkbox-group.tsx +229 -0
  252. package/src/components/checkbox.tsx +72 -8
  253. package/src/components/chip.tsx +80 -10
  254. package/src/components/column-mapper.tsx +666 -0
  255. package/src/components/combobox-core.tsx +82 -9
  256. package/src/components/combobox.tsx +661 -340
  257. package/src/components/confirm-dialog.tsx +12 -8
  258. package/src/components/country-select.tsx +556 -0
  259. package/src/components/currency-select.tsx +109 -33
  260. package/src/components/danger-confirm.tsx +429 -82
  261. package/src/components/data-table-labels.ts +16 -1
  262. package/src/components/data-table.tsx +175 -6
  263. package/src/components/date-picker.tsx +595 -71
  264. package/src/components/entity-combobox.tsx +235 -124
  265. package/src/components/field-parts.tsx +403 -0
  266. package/src/components/field-strip.tsx +149 -0
  267. package/src/components/file-button.tsx +36 -3
  268. package/src/components/file-dropzone.tsx +106 -38
  269. package/src/components/form-actions.tsx +147 -6
  270. package/src/components/iban-input.tsx +231 -0
  271. package/src/components/icon-picker.tsx +47 -6
  272. package/src/components/inline-edit-field.tsx +533 -0
  273. package/src/components/language-select.tsx +78 -0
  274. package/src/components/line-items.tsx +35 -2
  275. package/src/components/list.tsx +55 -6
  276. package/src/components/money-field.tsx +13 -0
  277. package/src/components/month-picker.tsx +400 -63
  278. package/src/components/multi-entity-combobox.tsx +207 -120
  279. package/src/components/multi-select.tsx +80 -58
  280. package/src/components/number-field.tsx +28 -46
  281. package/src/components/number-input.tsx +210 -43
  282. package/src/components/one-time-code-input.tsx +288 -0
  283. package/src/components/phone-input.tsx +299 -0
  284. package/src/components/reauth-dialog.tsx +17 -18
  285. package/src/components/sign-chip.tsx +103 -0
  286. package/src/components/swatch-picker.tsx +143 -31
  287. package/src/components/switch.tsx +58 -7
  288. package/src/components/tile-radio.tsx +145 -29
  289. package/src/components/time-input.tsx +8 -1
  290. package/src/components/toggle-group.tsx +206 -73
  291. package/src/components/trigger-aria.ts +5 -0
  292. package/src/components/ui.tsx +479 -138
  293. package/src/data-table.ts +2 -1
  294. package/src/feedback/feedback-attachment.tsx +597 -46
  295. package/src/feedback/feedback-dialog.tsx +9 -3
  296. package/src/feedback/feedback-inbox.tsx +3 -2
  297. package/src/feedback/feedback-thread.tsx +113 -9
  298. package/src/i18n/defaults.ts +18 -1
  299. package/src/i18n/german.ts +89 -0
  300. package/src/i18n/kit-labels.tsx +82 -2
  301. package/src/i18n/locales/en.ts +36 -4
  302. package/src/i18n/locales/es.ts +87 -0
  303. package/src/i18n/locales/fr.ts +87 -0
  304. package/src/i18n/locales/hu.ts +83 -0
  305. package/src/i18n/locales/it.ts +88 -0
  306. package/src/i18n/locales/zh.ts +76 -0
  307. package/src/i18n/review.ts +26 -0
  308. package/src/index.ts +71 -3
  309. package/src/lib/column-mapping.ts +234 -0
  310. package/src/lib/countries.ts +91 -0
  311. package/src/lib/decimal-marks.ts +99 -0
  312. package/src/lib/iban.ts +171 -0
  313. package/src/lib/isin.ts +62 -0
  314. package/src/lib/phone.ts +211 -0
  315. package/src/lib/table-text.ts +271 -0
  316. package/src/rhf/fields.tsx +860 -9
  317. package/src/rhf.ts +3 -1
  318. package/src/shell/topbar-action-menu.tsx +134 -38
  319. package/src/tour/tour.tsx +66 -28
  320. package/src/wizard/stepper-nav.tsx +35 -1
@@ -1,29 +1,36 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode, ReactElement } from 'react';
3
3
  import { FieldValues, FieldPath, ControllerProps, ControllerRenderProps, ControllerFieldState } from 'react-hook-form';
4
- import { aQ as SelectProps, aE as InputProps, b9 as TextareaProps } from '../kit-labels-D1J2_jyD.js';
4
+ import { b5 as IbanInputProps, bs as PhoneInputProps, bw as SelectProps, bf as InputProps, bR as TextareaProps } from '../feedback-BxeQVzwq.js';
5
5
  import { NumberFieldProps } from '../components/number-field.js';
6
- import { DatePickerProps } from '../components/date-picker.js';
6
+ import { DatePickerProps, DateRangePickerProps } from '../components/date-picker.js';
7
+ import { TimeInputProps } from '../components/time-input.js';
8
+ import { CountrySelectProps } from '../components/country-select.js';
9
+ import { MonthPickerProps } from '../components/month-picker.js';
10
+ import { ToggleGroupBaseProps, ToggleGroupRequiredProps, ToggleGroupClearableProps } from '../components/toggle-group.js';
7
11
  import { CheckboxProps } from '../components/checkbox.js';
8
12
  import { EntityComboboxProps } from '../components/entity-combobox.js';
9
13
  import { ComboboxProps } from '../components/combobox.js';
10
14
  import { ComboClearValue } from '../components/combobox-core.js';
11
- import '../components/data-table-labels.js';
15
+ import '../feedback-attachment-fGAzZPf0.js';
16
+ import '../feedback/feedback-inbox.js';
17
+ import 'lucide-react';
18
+ import '../components/tooltip.js';
19
+ import '../hooks/use-anchored-rect.js';
20
+ import '../lib/clipping.js';
21
+ import '../data-table-labels-B7OdnM0S.js';
22
+ import '../components/data-table-sort.js';
23
+ import '../components/swipeable-row.js';
12
24
  import '../components/mini-calendar.js';
13
25
  import '../components/calendar-heatmap.js';
14
26
  import '../components/popover.js';
15
27
  import '../components/chip.js';
16
- import 'lucide-react';
17
28
  import '../components/field-sync.js';
18
- import '../components/tooltip.js';
19
- import '../hooks/use-anchored-rect.js';
20
- import '../lib/clipping.js';
21
29
  import '../wizard/types.js';
22
30
  import '../tour/tour.js';
23
31
  import '../search/command-palette.js';
24
32
  import '../search/global-search.js';
25
33
  import '../search/search-index.js';
26
- import '../components/month-picker.js';
27
34
  import '../components/page-contents.js';
28
35
  import '../components/series-chart-labels.js';
29
36
  import '../components/pie-chart-labels.js';
@@ -31,7 +38,6 @@ import '../components/sparkline.js';
31
38
  import '../components/stat-tile.js';
32
39
  import '../components/signature-pad.js';
33
40
  import '../components/password-strength.js';
34
- import '../components/danger-confirm.js';
35
41
  import '../components/swatch-picker.js';
36
42
  import '../components/tile-radio.js';
37
43
  import '../components/icon-picker.js';
@@ -39,11 +45,7 @@ import '../components/dialog-frame.js';
39
45
  import '../components/modal.js';
40
46
  import '../hooks/use-search-param-state.js';
41
47
  import '../components/measured-grid.js';
42
- import '../feedback-attachment-WFiXJ8We.js';
43
- import '../feedback/feedback-thread.js';
44
- import '../feedback/feedback-inbox.js';
45
48
  import '../components/account-settings-labels.js';
46
- import '../components/confirm-dialog.js';
47
49
  import '../components/floating-panel.js';
48
50
  import '../components/bulk-action-bar.js';
49
51
  import '../components/list.js';
@@ -62,14 +64,19 @@ import '../components/write-lock.js';
62
64
  import '../components/legal.js';
63
65
  import '../components/account-chips.js';
64
66
  import '../lib/format.js';
65
- import '../data-table-3mi2R3so.js';
66
- import '../components/data-table-sort.js';
67
- import '../components/swipeable-row.js';
68
67
  import '../components/reauth-dialog.js';
69
68
  import '../components/server-wake.js';
70
69
  import '../lib/server-wake.js';
71
70
  import '../components/translation-review-labels.js';
72
71
  import '../lib/translation-review.js';
72
+ import '../components/inline-edit-field.js';
73
+ import '../lib/iban.js';
74
+ import '../lib/phone.js';
75
+ import '../components/sign-chip.js';
76
+ import '../components/column-mapper.js';
77
+ import '../lib/column-mapping.js';
78
+ import '../lib/table-text.js';
79
+ import '../components/field-parts.js';
73
80
  import '../components/number-input.js';
74
81
  import '../components/calculator.js';
75
82
  import '../components/numpad-sheet.js';
@@ -228,6 +235,10 @@ type RhfMoneyFieldProps<TFieldValues extends FieldValues = FieldValues, TName ex
228
235
  * with `rules` as well if a clamp needs explaining. */
229
236
  min?: number;
230
237
  max?: number;
238
+ /** Classes for the `<input>` — `className` is the item's box. {@link RhfTextField},
239
+ * {@link RhfTextarea} and {@link RhfNumberField} take it; since 0.23 AmountInput
240
+ * does too (keksdose G7: `text-end` for a money column). */
241
+ inputClassName?: string;
231
242
  };
232
243
  /**
233
244
  * The kit's {@link AmountInput}: a money figure with its currency chip and the
@@ -235,7 +246,7 @@ type RhfMoneyFieldProps<TFieldValues extends FieldValues = FieldValues, TName ex
235
246
  * `valueAs`.
236
247
  */
237
248
  declare function RhfMoneyField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, ...amountProps }: RhfMoneyFieldProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
238
- type RhfDateFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Omit<DatePickerProps, "value" | "onChange" | "label" | "invalid" | "disabled" | "className" | "id"> & {
249
+ type RhfDateFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Omit<DatePickerProps, "value" | "onChange" | "label" | "invalid" | "disabled" | "className" | "id" | "error"> & {
239
250
  /** Classes for the picker. Default `w-full`. */
240
251
  inputClassName?: string;
241
252
  /** What a cleared date stores. Default `""`, the empty ISO string; `null` for a
@@ -244,6 +255,168 @@ type RhfDateFieldProps<TFieldValues extends FieldValues = FieldValues, TName ext
244
255
  };
245
256
  /** The kit's {@link DatePicker}, holding an ISO `"YYYY-MM-DD"` string. */
246
257
  declare function RhfDateField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, inputClassName, emptyValue, ...pickerProps }: RhfDateFieldProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
258
+ type OwnDateRangeProps = Omit<DateRangePickerProps, "from" | "to" | "onChange" | "label" | "invalid" | "disabled" | "className" | "id" | "error">;
259
+ type RhfDateRangePickerProps<TFieldValues extends FieldValues = FieldValues, TFromName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TToName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = Omit<RhfFieldBaseProps<TFieldValues, TFromName, TTransformed>, "name" | "rules"> & OwnDateRangeProps & {
260
+ /** The form field holding the range's first day, an ISO `"YYYY-MM-DD"`. */
261
+ fromName: TFromName;
262
+ /** The form field holding the range's last day. */
263
+ toName: TToName;
264
+ /** react-hook-form's `rules` for the start (`required`, a `validate` …). */
265
+ fromRules?: ControllerProps<TFieldValues, TFromName, TTransformed>["rules"];
266
+ /** react-hook-form's `rules` for the end — the place for "not before the start",
267
+ * which can read the start with `getValues`: the start is always written first. */
268
+ toRules?: ControllerProps<TFieldValues, TToName, TTransformed>["rules"];
269
+ /** Classes for the picker. Default `w-full`. */
270
+ inputClassName?: string;
271
+ /** What an empty end stores — a clear, or the half-made range between the first
272
+ * and second click. Default `""`, the empty ISO string; `null` for a nullable
273
+ * schema. */
274
+ emptyValue?: "" | null;
275
+ };
276
+ /**
277
+ * The kit's {@link DateRangePicker} over TWO form fields — `fromName` and `toName` —
278
+ * the way a period is stored: as two columns, each its own schema key, not one
279
+ * `{ from, to }` object (kastlan 4).
280
+ *
281
+ * ```tsx
282
+ * <RhfDateRangePicker fromName="periodFrom" toName="periodTo" label="Billing period"
283
+ * presets={presets} clearable />
284
+ * ```
285
+ *
286
+ * Why it is not {@link RhfField}: a `Controller` binds one name, and the range is
287
+ * two. Built by hand — an `RhfField` on the start and a second `useController` for
288
+ * the end, which is what kastlan's period fields needed — it works until the END is
289
+ * the one in error: the shell's label, message and `aria-invalid` all read the
290
+ * start's state alone, so "End before start" (a `refine` with `path: ["periodTo"]`,
291
+ * where such a rule goes) never shows. Here both states are read:
292
+ *
293
+ * - **Either field's error is shown and paints.** The label turns, the trigger is
294
+ * `aria-invalid` and wears the danger border when EITHER field has an error, and
295
+ * both messages are listed under the field (once, if the two say the same thing),
296
+ * each pointed at by the trigger's `aria-describedby`.
297
+ * - **One change writes both.** The picker reports the range whole, so the start and
298
+ * then the end are written on every change — the end too when only the start
299
+ * moved, so a cross-field rule on the end re-runs and an "End before start" clears
300
+ * the moment the start is fixed. A clear (`clearable`'s ×) empties both.
301
+ * - **Focus on error** lands on the trigger whichever of the two is in error.
302
+ * - **Touched** once a range is complete or cleared — not on the first click of a
303
+ * pick, which would mark (and, with `mode: "onTouched"`, validate) an end the user
304
+ * is still choosing.
305
+ *
306
+ * In `commit="immediate"` mode (the picker's default) the first calendar click is
307
+ * reported on its own, so the form holds `(from, emptyValue)` until the second; with
308
+ * `commit="apply"` nothing reaches the form until Apply.
309
+ *
310
+ * The common props (`label`, `hint`, `required`, `disabled`, `excludeWhenDisabled`,
311
+ * `control`, `className`) apply to the pair; `rules` are per field.
312
+ */
313
+ declare function RhfDateRangePicker<TFieldValues extends FieldValues = FieldValues, TFromName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TToName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ fromName, toName, control, fromRules, toRules, label, hint, required, disabled, excludeWhenDisabled, className, inputClassName, emptyValue, ...pickerProps }: RhfDateRangePickerProps<TFieldValues, TFromName, TToName, TTransformed>): react.JSX.Element;
314
+ type RhfTimeInputProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Omit<TimeInputProps, "name" | "value" | "defaultValue" | "onChange" | "onValueChange" | "onBlur" | "label" | "error" | "invalid" | "className" | "disabled" | "required"> & {
315
+ /** What a cleared time stores. Default `""`; `null` for a nullable schema. */
316
+ emptyValue?: "" | null;
317
+ };
318
+ /**
319
+ * The kit's {@link TimeInput}: a time of day as `"HH:mm"` (`"HH:mm:ss"` when `step`
320
+ * asks for seconds), normalised before it reaches the form, so the stored value
321
+ * compares and sorts as a string. kastlan 4: the owner meeting's time was an
322
+ * {@link RhfField} with a hand-wired `TimeInput` in its render — `ref`, `name`, the
323
+ * `?? ""`, `onValueChange`, `onBlur`, `invalid` — the seven lines every bound field
324
+ * folds into one.
325
+ *
326
+ * `min` / `max` paint an out-of-window time (see TimeInput) but do not fail the form:
327
+ * validation stays the schema's or `rules`'. `rules={{ validate: (v) =>
328
+ * isTimeInRange(v, min, max) || "…" }}` says it with the same window.
329
+ */
330
+ declare function RhfTimeInput<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, emptyValue, ...timeProps }: RhfTimeInputProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
331
+ type OwnTextishProps<P> = Omit<P, "name" | "value" | "defaultValue" | "onChange" | "onValueChange" | "onBlur" | "label" | "error" | "invalid" | "className" | "disabled" | "required">;
332
+ type RhfIbanInputProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnTextishProps<IbanInputProps>;
333
+ /**
334
+ * {@link IbanInput} bound to one field, which stores the COMPACT upper-case IBAN (what
335
+ * kastlan's server checks and its QR bill prints). The field's own checksum and
336
+ * `kind` messages show while the form has nothing to say; a form error (the schema's
337
+ * or `rules`') replaces them, as a caller's `error` does on the bare field. kastlan
338
+ * asked for the field; it binds everything through react-hook-form.
339
+ */
340
+ declare function RhfIbanInput<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, ...ibanProps }: RhfIbanInputProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
341
+ type RhfPhoneInputProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnTextishProps<PhoneInputProps>;
342
+ /**
343
+ * {@link PhoneInput} bound to one field, which stores E.164 when the number reads as
344
+ * one and the typed text unchanged otherwise — kastlan's contacts keep their old free
345
+ * text until someone edits it. Validation (required, a pattern for E.164 only) is the
346
+ * schema's or `rules`'.
347
+ */
348
+ declare function RhfPhoneInput<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, ...phoneProps }: RhfPhoneInputProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
349
+ type OwnCountrySelectProps = Omit<CountrySelectProps<boolean>, "value" | "onChange" | "onBlur" | "label" | "hint" | "error" | "invalid" | "disabled" | "className" | "id" | "ref" | "clearable">;
350
+ type RhfCountrySelectProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnCountrySelectProps & {
351
+ /** Offer the picker's clear "×" (and Delete on the trigger) while a country is
352
+ * chosen. A clear stores `clearValue`. */
353
+ clearable?: boolean;
354
+ /** What a clear stores. Default `null`; `""` for a schema that spells "no
355
+ * country" as an empty string (a zod `z.string().max(2)`, kastlan's). The picker
356
+ * reads either back as empty. */
357
+ clearValue?: ComboClearValue;
358
+ /** Classes for the picker — `className` is the item's box. */
359
+ selectClassName?: string;
360
+ };
361
+ /**
362
+ * {@link CountrySelect} bound to one field, which stores the ISO 3166-1 alpha-2 code
363
+ * ("CH", always upper-case), or `clearValue` once cleared (`clearable`). kastlan asked
364
+ * for it (0.22 adoption): its address form wired a `CountrySelect` through
365
+ * {@link RhfField}'s render, and with no ref on the picker react-hook-form's
366
+ * focus-on-error had nothing to focus — the one field on the form a failed submit
367
+ * could not take you to.
368
+ *
369
+ * Bound the way {@link RhfIbanInput} and {@link RhfPhoneInput} are: `field.ref` reaches
370
+ * the trigger (the picker's `ref`, 0.23), the form's error paints the trigger and is
371
+ * the shell's message under it, the hint is the shell's description — so neither is
372
+ * ever handed to the picker, and its box never changes when one comes or goes. The
373
+ * form's label names the trigger together with the chosen country, and is the phone
374
+ * sheet's title. `commit` and `disabledReason` are the picker's own: a country that
375
+ * saves itself stays focusable under a lock and says why.
376
+ *
377
+ * ```tsx
378
+ * <RhfCountrySelect name="country" label="Country" required
379
+ * preferred={["CH", "LI", "DE", "AT", "FR", "IT"]} rules={{ required: "Choose a country" }} />
380
+ * ```
381
+ */
382
+ declare function RhfCountrySelect<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, clearable, clearValue, selectClassName, labels, ...countryProps }: RhfCountrySelectProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
383
+ type OwnMonthPickerProps = Omit<MonthPickerProps, "value" | "onChange" | "onBlur" | "label" | "hint" | "error" | "invalid" | "disabled" | "className" | "id" | "mode">;
384
+ /** `mode` picks what the form stores, and `valueAsNumber` is only offered for a year. */
385
+ type RhfMonthPickerMode = {
386
+ /** A month, stored as `"YYYY-MM"` (the default). */
387
+ mode?: "month";
388
+ valueAsNumber?: undefined;
389
+ } | {
390
+ /** A year, stored as `"YYYY"` — or as a number with `valueAsNumber`. */
391
+ mode: "year";
392
+ /** Store the year as a number (`2026`) rather than `"2026"` — kastlan's budget
393
+ * `fiscal_year` is an integer column. A number in the form reads back as its
394
+ * year. */
395
+ valueAsNumber?: boolean;
396
+ };
397
+ type RhfMonthPickerProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnMonthPickerProps & {
398
+ /** Classes for the picker — `className` is the item's box. As {@link RhfDateField}'s. */
399
+ inputClassName?: string;
400
+ } & RhfMonthPickerMode;
401
+ /**
402
+ * {@link MonthPicker} bound to one field: a month as `"YYYY-MM"`, or with `mode="year"` a
403
+ * year as `"YYYY"` (`valueAsNumber` stores `2026`). kastlan asked for it with
404
+ * {@link RhfCountrySelect}: its budget wizard's fiscal year was a `MonthPicker
405
+ * mode="year"` inside {@link RhfField}'s render — the `String()` in, the `Number()`
406
+ * out, `invalid` by hand — and a failed submit could not focus it, because the picker
407
+ * forwards no ref.
408
+ *
409
+ * Bound as {@link RhfDateField} is: a focus handle finds the trigger by its id, so
410
+ * focus-on-error lands there; the form's error paints the trigger and is the shell's
411
+ * message; the hint is the shell's description; neither is handed to the picker, so
412
+ * its box never changes. Picking marks the field touched.
413
+ *
414
+ * ```tsx
415
+ * <RhfMonthPicker name="fiscalYear" label="Fiscal year" mode="year" valueAsNumber
416
+ * min="2020" max="2029" rules={{ required: "Choose a year" }} />
417
+ * ```
418
+ */
419
+ declare function RhfMonthPicker<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, inputClassName, mode, valueAsNumber, ...pickerProps }: RhfMonthPickerProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
247
420
  interface RhfSelectOption {
248
421
  value: string | number;
249
422
  label: ReactNode;
@@ -270,6 +443,48 @@ type RhfCheckboxProps<TFieldValues extends FieldValues = FieldValues, TName exte
270
443
  * — see Checkbox — so a `<form>` refuses to submit it unticked.
271
444
  */
272
445
  declare function RhfCheckbox<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, ...boxProps }: RhfCheckboxProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
446
+ /** The two shapes a {@link ToggleGroup} comes in, carried over: `allowEmpty` picks
447
+ * whether a press on the chosen option clears it, and types the caption to match. */
448
+ type RhfToggleGroupMode<T extends string> = {
449
+ /** One option is always the answer (the default): a press on the chosen
450
+ * option re-sends it. */
451
+ allowEmpty?: false;
452
+ semantics?: ToggleGroupRequiredProps<T>["semantics"];
453
+ caption?: ToggleGroupRequiredProps<T>["caption"];
454
+ emptyValue?: undefined;
455
+ } | {
456
+ /** A press on the chosen option clears it, and the form stores `emptyValue`. */
457
+ allowEmpty: true;
458
+ semantics?: ToggleGroupClearableProps<T>["semantics"];
459
+ caption?: ToggleGroupClearableProps<T>["caption"];
460
+ /** What a cleared group stores. Default `null`; `""` for a schema that spells
461
+ * "no choice" as an empty string. */
462
+ emptyValue?: null | "";
463
+ };
464
+ type RhfToggleGroupProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, T extends string = string, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Pick<ToggleGroupBaseProps<T>, "options" | "optionClassName" | "overflow" | "size" | "aria-label" | "commit" | "disabledReason"> & {
465
+ /** Classes for the group itself — `className` is the item's box. */
466
+ groupClassName?: string;
467
+ } & RhfToggleGroupMode<T>;
468
+ /**
469
+ * The kit's {@link ToggleGroup} bound to one field: a choice between a few answers
470
+ * ("Monthly / Quarterly / Yearly"), stored as the chosen option's `value`. kastlan 4
471
+ * asked for it with {@link RhfTimeInput} and {@link RhfDateRangePicker}: the controls
472
+ * its forms still had to wire by hand through {@link RhfField}'s render.
473
+ *
474
+ * The label is the form's {@link FormLabel} above the bare group, as on every other
475
+ * bound field — the `labelPlacement="above"` shape, not the group's own field chrome —
476
+ * and it names the group (`aria-labelledby`); the hint and the message describe it,
477
+ * and an error paints the group's border. Focus on error goes to the option a
478
+ * keyboard user would land on (the chosen one, else the first); touched is set when
479
+ * focus leaves the group, not when it moves between options.
480
+ *
481
+ * Required by default, as the group is: a press on the chosen option keeps it. With
482
+ * `allowEmpty`, a second press clears the choice and the form stores `emptyValue`
483
+ * (`null` by default) — the options then become toggle buttons, see ToggleGroup. A
484
+ * value that matches no option (an empty default) leaves nothing pressed; that the
485
+ * field still needs answering is the schema's or `rules`' to say.
486
+ */
487
+ declare function RhfToggleGroup<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, T extends string = string, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, ...groupProps }: RhfToggleGroupProps<TFieldValues, TName, T, TTransformed>): react.JSX.Element;
273
488
  type RhfComboboxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, V extends string | number = string | number, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Pick<EntityComboboxProps<V>, "options" | "loadOptions" | "loading" | "placeholder" | "searchPlaceholder" | "emptyLabel" | "clearable" | "clearLabel" | "onCreate" | "createLabel" | "filter" | "minChars" | "debounceMs"> & {
274
489
  /** What a clear stores — the picker's `clearValue`. Default `null`; `""` for a
275
490
  * schema that spells "no choice" as an empty string. */
@@ -293,4 +508,4 @@ type RhfTextComboboxProps<TFieldValues extends FieldValues = FieldValues, TName
293
508
  */
294
509
  declare function RhfTextCombobox<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, comboClassName, ...comboProps }: RhfTextComboboxProps<TFieldValues, TName, TTransformed>): react.JSX.Element;
295
510
 
296
- export { RhfCheckbox, type RhfCheckboxProps, RhfCombobox, type RhfComboboxProps, RhfDateField, type RhfDateFieldProps, RhfField, type RhfFieldBaseProps, type RhfFieldProps, type RhfFieldRenderContext, RhfIntegerField, type RhfIntegerFieldProps, RhfMoneyField, type RhfMoneyFieldProps, RhfNumberField, type RhfNumberFieldProps, RhfSelect, type RhfSelectOption, type RhfSelectProps, RhfTextCombobox, type RhfTextComboboxProps, RhfTextField, type RhfTextFieldProps, RhfTextarea, type RhfTextareaProps };
511
+ export { RhfCheckbox, type RhfCheckboxProps, RhfCombobox, type RhfComboboxProps, RhfCountrySelect, type RhfCountrySelectProps, RhfDateField, type RhfDateFieldProps, RhfDateRangePicker, type RhfDateRangePickerProps, RhfField, type RhfFieldBaseProps, type RhfFieldProps, type RhfFieldRenderContext, RhfIbanInput, type RhfIbanInputProps, RhfIntegerField, type RhfIntegerFieldProps, RhfMoneyField, type RhfMoneyFieldProps, RhfMonthPicker, type RhfMonthPickerProps, RhfNumberField, type RhfNumberFieldProps, RhfPhoneInput, type RhfPhoneInputProps, RhfSelect, type RhfSelectOption, type RhfSelectProps, RhfTextCombobox, type RhfTextComboboxProps, RhfTextField, type RhfTextFieldProps, RhfTextarea, type RhfTextareaProps, RhfTimeInput, type RhfTimeInputProps, RhfToggleGroup, type RhfToggleGroupProps };