@eifi1/ui-kit 0.34.0 → 0.36.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 (446) hide show
  1. package/README.md +115 -41
  2. package/dist/admin/role-select.d.ts +3 -2
  3. package/dist/admin/role-select.js +2 -0
  4. package/dist/admin/role-select.js.map +1 -1
  5. package/dist/billing/billing-banner.d.ts +5 -2
  6. package/dist/billing/billing-banner.js.map +1 -1
  7. package/dist/billing/plan-limit-notice.d.ts +5 -2
  8. package/dist/billing/plan-limit-notice.js.map +1 -1
  9. package/dist/chart.js.map +1 -1
  10. package/dist/components/amount-input.d.ts +2 -5
  11. package/dist/components/amount-input.js +2 -2
  12. package/dist/components/amount-input.js.map +1 -1
  13. package/dist/components/autocomplete.d.ts +2 -2
  14. package/dist/components/autocomplete.js +2 -1
  15. package/dist/components/autocomplete.js.map +1 -1
  16. package/dist/components/button-look.d.ts +1 -1
  17. package/dist/components/button-look.js +9 -4
  18. package/dist/components/button-look.js.map +1 -1
  19. package/dist/components/calculator.d.ts +1 -4
  20. package/dist/components/calculator.js +1 -3
  21. package/dist/components/calculator.js.map +1 -1
  22. package/dist/components/chart-zoom.d.ts +0 -37
  23. package/dist/components/chart-zoom.js +1 -28
  24. package/dist/components/chart-zoom.js.map +1 -1
  25. package/dist/components/checkbox-group.d.ts +5 -2
  26. package/dist/components/checkbox-group.js +15 -4
  27. package/dist/components/checkbox-group.js.map +1 -1
  28. package/dist/components/chip-input.d.ts +0 -4
  29. package/dist/components/chip-input.js +1 -5
  30. package/dist/components/chip-input.js.map +1 -1
  31. package/dist/components/column-mapper.d.ts +5 -3
  32. package/dist/components/column-mapper.js +2 -0
  33. package/dist/components/column-mapper.js.map +1 -1
  34. package/dist/components/combobox.d.ts +3 -3
  35. package/dist/components/combobox.js +2 -1
  36. package/dist/components/combobox.js.map +1 -1
  37. package/dist/components/copy-button.d.ts +5 -1
  38. package/dist/components/copy-button.js.map +1 -1
  39. package/dist/components/country-select.d.ts +3 -3
  40. package/dist/components/country-select.js +3 -0
  41. package/dist/components/country-select.js.map +1 -1
  42. package/dist/components/currency-option-list.d.ts +3 -8
  43. package/dist/components/currency-option-list.js +1 -29
  44. package/dist/components/currency-option-list.js.map +1 -1
  45. package/dist/components/currency-select.d.ts +3 -2
  46. package/dist/components/currency-select.js +10 -1
  47. package/dist/components/currency-select.js.map +1 -1
  48. package/dist/components/danger-confirm.d.ts +3 -3
  49. package/dist/components/danger-confirm.js.map +1 -1
  50. package/dist/components/data-table-filter-popover.d.ts +1 -1
  51. package/dist/components/data-table-filter-popover.js +1 -1
  52. package/dist/components/data-table-filter-popover.js.map +1 -1
  53. package/dist/components/data-table-labels.d.ts +1 -42
  54. package/dist/components/data-table-labels.js +2 -31
  55. package/dist/components/data-table-labels.js.map +1 -1
  56. package/dist/components/data-table-shared.d.ts +17 -1
  57. package/dist/components/data-table-shared.js +22 -0
  58. package/dist/components/data-table-shared.js.map +1 -1
  59. package/dist/components/data-table.d.ts +12 -2
  60. package/dist/components/data-table.js +18 -14
  61. package/dist/components/data-table.js.map +1 -1
  62. package/dist/components/date-field.d.ts +2 -1
  63. package/dist/components/date-field.js.map +1 -1
  64. package/dist/components/date-picker.js +3 -0
  65. package/dist/components/date-picker.js.map +1 -1
  66. package/dist/components/date-range-picker.js +3 -0
  67. package/dist/components/date-range-picker.js.map +1 -1
  68. package/dist/components/dialog-frame.d.ts +3 -1
  69. package/dist/components/dialog-frame.js.map +1 -1
  70. package/dist/components/dropdown.d.ts +18 -15
  71. package/dist/components/dropdown.js +11 -3
  72. package/dist/components/dropdown.js.map +1 -1
  73. package/dist/components/entity-combobox.d.ts +3 -3
  74. package/dist/components/entity-combobox.js +2 -1
  75. package/dist/components/entity-combobox.js.map +1 -1
  76. package/dist/components/field-base.d.ts +0 -5
  77. package/dist/components/field-base.js +0 -5
  78. package/dist/components/field-base.js.map +1 -1
  79. package/dist/components/field-parts.d.ts +69 -22
  80. package/dist/components/field-parts.js +33 -19
  81. package/dist/components/field-parts.js.map +1 -1
  82. package/dist/components/field-strip.d.ts +9 -23
  83. package/dist/components/field-strip.js +26 -23
  84. package/dist/components/field-strip.js.map +1 -1
  85. package/dist/components/field-sync.d.ts +0 -4
  86. package/dist/components/field-sync.js +0 -4
  87. package/dist/components/field-sync.js.map +1 -1
  88. package/dist/components/field.d.ts +7 -6
  89. package/dist/components/field.js +24 -15
  90. package/dist/components/field.js.map +1 -1
  91. package/dist/components/full-bleed-dialog.js +2 -2
  92. package/dist/components/full-bleed-dialog.js.map +1 -1
  93. package/dist/components/help-popover.d.ts +9 -7
  94. package/dist/components/help-popover.js.map +1 -1
  95. package/dist/components/hover-menu.d.ts +6 -13
  96. package/dist/components/hover-menu.js +3 -3
  97. package/dist/components/hover-menu.js.map +1 -1
  98. package/dist/components/icon-picker.d.ts +3 -2
  99. package/dist/components/icon-picker.js +3 -0
  100. package/dist/components/icon-picker.js.map +1 -1
  101. package/dist/components/inline-entity-combobox.d.ts +3 -3
  102. package/dist/components/inline-entity-combobox.js +2 -1
  103. package/dist/components/inline-entity-combobox.js.map +1 -1
  104. package/dist/components/input.d.ts +2 -2
  105. package/dist/components/input.js +2 -1
  106. package/dist/components/input.js.map +1 -1
  107. package/dist/components/modal.d.ts +9 -1
  108. package/dist/components/modal.js +7 -4
  109. package/dist/components/modal.js.map +1 -1
  110. package/dist/components/month-picker.d.ts +2 -1
  111. package/dist/components/month-picker.js +8 -1
  112. package/dist/components/month-picker.js.map +1 -1
  113. package/dist/components/multi-entity-combobox.d.ts +2 -2
  114. package/dist/components/multi-entity-combobox.js +2 -1
  115. package/dist/components/multi-entity-combobox.js.map +1 -1
  116. package/dist/components/multi-select.d.ts +7 -18
  117. package/dist/components/multi-select.js +8 -10
  118. package/dist/components/multi-select.js.map +1 -1
  119. package/dist/components/number-input.d.ts +2 -5
  120. package/dist/components/number-input.js +2 -4
  121. package/dist/components/number-input.js.map +1 -1
  122. package/dist/components/numeric-field.d.ts +5 -2
  123. package/dist/components/numeric-field.js +4 -1
  124. package/dist/components/numeric-field.js.map +1 -1
  125. package/dist/components/one-time-code-input.d.ts +2 -1
  126. package/dist/components/one-time-code-input.js +2 -1
  127. package/dist/components/one-time-code-input.js.map +1 -1
  128. package/dist/components/phone-input.d.ts +1 -1
  129. package/dist/components/phone-input.js +4 -0
  130. package/dist/components/phone-input.js.map +1 -1
  131. package/dist/components/popover.js +3 -3
  132. package/dist/components/popover.js.map +1 -1
  133. package/dist/components/select.d.ts +4 -3
  134. package/dist/components/select.js +2 -1
  135. package/dist/components/select.js.map +1 -1
  136. package/dist/components/series-chart.js.map +1 -1
  137. package/dist/components/server-wake.d.ts +0 -6
  138. package/dist/components/server-wake.js.map +1 -1
  139. package/dist/components/settings-fields.d.ts +4 -2
  140. package/dist/components/settings-fields.js.map +1 -1
  141. package/dist/components/slider.d.ts +3 -2
  142. package/dist/components/slider.js +7 -1
  143. package/dist/components/slider.js.map +1 -1
  144. package/dist/components/stat-tile.d.ts +8 -2
  145. package/dist/components/stat-tile.js +2 -11
  146. package/dist/components/stat-tile.js.map +1 -1
  147. package/dist/components/swatch-picker.d.ts +3 -2
  148. package/dist/components/swatch-picker.js +3 -0
  149. package/dist/components/swatch-picker.js.map +1 -1
  150. package/dist/components/swipeable-row.d.ts +2 -17
  151. package/dist/components/swipeable-row.js +11 -16
  152. package/dist/components/swipeable-row.js.map +1 -1
  153. package/dist/components/text-link.js +3 -1
  154. package/dist/components/text-link.js.map +1 -1
  155. package/dist/components/textarea.d.ts +2 -1
  156. package/dist/components/textarea.js +9 -3
  157. package/dist/components/textarea.js.map +1 -1
  158. package/dist/components/toggle-group.d.ts +2 -2
  159. package/dist/components/toggle-group.js +7 -3
  160. package/dist/components/toggle-group.js.map +1 -1
  161. package/dist/components/tooltip.d.ts +9 -1
  162. package/dist/components/tooltip.js +20 -5
  163. package/dist/components/tooltip.js.map +1 -1
  164. package/dist/components/translation-review.d.ts +10 -2
  165. package/dist/components/translation-review.js +11 -3
  166. package/dist/components/translation-review.js.map +1 -1
  167. package/dist/components/use-table-state.d.ts +31 -3
  168. package/dist/components/use-table-state.js +53 -8
  169. package/dist/components/use-table-state.js.map +1 -1
  170. package/dist/components/user-avatar.d.ts +2 -2
  171. package/dist/components/user-avatar.js.map +1 -1
  172. package/dist/components/wizard-stepper.d.ts +1 -4
  173. package/dist/components/wizard-stepper.js +2 -3
  174. package/dist/components/wizard-stepper.js.map +1 -1
  175. package/dist/currencies.d.ts +23 -0
  176. package/dist/currencies.js +38 -0
  177. package/dist/currencies.js.map +1 -0
  178. package/dist/demo/demo-banner.d.ts +7 -2
  179. package/dist/demo/demo-banner.js.map +1 -1
  180. package/dist/eslint/index.d.ts +83 -0
  181. package/dist/eslint/index.js +69 -0
  182. package/dist/eslint/index.js.map +1 -0
  183. package/dist/eslint/role-utilities.d.ts +48 -0
  184. package/dist/eslint/role-utilities.generated.d.ts +2 -0
  185. package/dist/eslint/role-utilities.generated.js +143 -0
  186. package/dist/eslint/role-utilities.generated.js.map +1 -0
  187. package/dist/eslint/role-utilities.js +43 -0
  188. package/dist/eslint/role-utilities.js.map +1 -0
  189. package/dist/feedback/feedback-menu.d.ts +2 -2
  190. package/dist/feedback/feedback-menu.js.map +1 -1
  191. package/dist/feedback/feedback-thread.d.ts +3 -8
  192. package/dist/feedback/feedback-thread.js +0 -2
  193. package/dist/feedback/feedback-thread.js.map +1 -1
  194. package/dist/hooks/use-dismiss.d.ts +16 -3
  195. package/dist/hooks/use-dismiss.js +14 -2
  196. package/dist/hooks/use-dismiss.js.map +1 -1
  197. package/dist/i18n/defaults.js +5 -1
  198. package/dist/i18n/defaults.js.map +1 -1
  199. package/dist/i18n/german.js +97 -1
  200. package/dist/i18n/german.js.map +1 -1
  201. package/dist/i18n/kit-labels.d.ts +29 -4
  202. package/dist/i18n/kit-labels.js +21 -1
  203. package/dist/i18n/kit-labels.js.map +1 -1
  204. package/dist/i18n/locales/en.js +104 -3
  205. package/dist/i18n/locales/en.js.map +3 -3
  206. package/dist/i18n/locales/es.js +95 -1
  207. package/dist/i18n/locales/es.js.map +1 -1
  208. package/dist/i18n/locales/fr.js +99 -3
  209. package/dist/i18n/locales/fr.js.map +1 -1
  210. package/dist/i18n/locales/hu.js +95 -1
  211. package/dist/i18n/locales/hu.js.map +1 -1
  212. package/dist/i18n/locales/it.js +99 -3
  213. package/dist/i18n/locales/it.js.map +1 -1
  214. package/dist/i18n/locales/zh.js +95 -1
  215. package/dist/i18n/locales/zh.js.map +1 -1
  216. package/dist/i18n/review.js +13 -0
  217. package/dist/i18n/review.js.map +1 -1
  218. package/dist/i18n/shared-labels.js +3 -1
  219. package/dist/i18n/shared-labels.js.map +1 -1
  220. package/dist/index.d.ts +23 -1
  221. package/dist/index.js +40 -2
  222. package/dist/index.js.map +1 -1
  223. package/dist/lib/device-settings.d.ts +72 -0
  224. package/dist/lib/device-settings.js +64 -0
  225. package/dist/lib/device-settings.js.map +1 -0
  226. package/dist/lib/plain-text.d.ts +11 -0
  227. package/dist/lib/plain-text.js +16 -0
  228. package/dist/lib/plain-text.js.map +1 -0
  229. package/dist/lib/refs.d.ts +13 -0
  230. package/dist/lib/refs.js +15 -0
  231. package/dist/lib/refs.js.map +1 -0
  232. package/dist/lib/safe-storage.d.ts +6 -0
  233. package/dist/lib/safe-storage.js +11 -0
  234. package/dist/lib/safe-storage.js.map +1 -1
  235. package/dist/notifications/notification-parts.d.ts +39 -0
  236. package/dist/notifications/notification-parts.js +47 -0
  237. package/dist/notifications/notification-parts.js.map +1 -0
  238. package/dist/notifications/notification-types-setting.d.ts +62 -0
  239. package/dist/notifications/notification-types-setting.js +192 -0
  240. package/dist/notifications/notification-types-setting.js.map +1 -0
  241. package/dist/notifications/notification-types.d.ts +75 -0
  242. package/dist/notifications/notification-types.js +2 -0
  243. package/dist/notifications/notification-types.js.map +1 -0
  244. package/dist/notifications/notifications-labels.d.ts +131 -0
  245. package/dist/notifications/notifications-labels.js +83 -0
  246. package/dist/notifications/notifications-labels.js.map +1 -0
  247. package/dist/notifications/push-device-setting.d.ts +37 -0
  248. package/dist/notifications/push-device-setting.js +164 -0
  249. package/dist/notifications/push-device-setting.js.map +1 -0
  250. package/dist/notifications/push-devices-setting.d.ts +44 -0
  251. package/dist/notifications/push-devices-setting.js +203 -0
  252. package/dist/notifications/push-devices-setting.js.map +1 -0
  253. package/dist/notifications/quiet-hours-setting.d.ts +47 -0
  254. package/dist/notifications/quiet-hours-setting.js +131 -0
  255. package/dist/notifications/quiet-hours-setting.js.map +1 -0
  256. package/dist/notifications/time-zone-select.d.ts +50 -0
  257. package/dist/notifications/time-zone-select.js +76 -0
  258. package/dist/notifications/time-zone-select.js.map +1 -0
  259. package/dist/notifications/unsubscribe-panel.d.ts +53 -0
  260. package/dist/notifications/unsubscribe-panel.js +139 -0
  261. package/dist/notifications/unsubscribe-panel.js.map +1 -0
  262. package/dist/notifications/use-push-device.d.ts +122 -0
  263. package/dist/notifications/use-push-device.js +230 -0
  264. package/dist/notifications/use-push-device.js.map +1 -0
  265. package/dist/rhf/fields.d.ts +36 -29
  266. package/dist/rhf/fields.js +51 -22
  267. package/dist/rhf/fields.js.map +1 -1
  268. package/dist/rhf/form-core.d.ts +5 -4
  269. package/dist/rhf/form-core.js.map +1 -1
  270. package/dist/rhf/form.d.ts +7 -36
  271. package/dist/rhf/form.js +1 -16
  272. package/dist/rhf/form.js.map +1 -1
  273. package/dist/rhf/line-items.d.ts +1 -1
  274. package/dist/rhf/line-items.js.map +1 -1
  275. package/dist/rhf/use-rhf-wizard-step.js.map +1 -1
  276. package/dist/rhf.js.map +1 -1
  277. package/dist/settings/device-reset-setting-labels.d.ts +3 -0
  278. package/dist/settings/device-reset-setting-labels.js +15 -0
  279. package/dist/settings/device-reset-setting-labels.js.map +1 -0
  280. package/dist/settings/device-reset-setting.d.ts +58 -0
  281. package/dist/settings/device-reset-setting.js +51 -0
  282. package/dist/settings/device-reset-setting.js.map +1 -0
  283. package/dist/shell/app-shell.js +5 -0
  284. package/dist/shell/app-shell.js.map +1 -1
  285. package/dist/shell/option-switcher-menu.d.ts +5 -17
  286. package/dist/shell/option-switcher-menu.js +1 -3
  287. package/dist/shell/option-switcher-menu.js.map +1 -1
  288. package/dist/shell/role-switcher.d.ts +1 -4
  289. package/dist/shell/role-switcher.js +2 -3
  290. package/dist/shell/role-switcher.js.map +1 -1
  291. package/dist/shell/topbar-action-menu.d.ts +7 -19
  292. package/dist/shell/topbar-action-menu.js +1 -3
  293. package/dist/shell/topbar-action-menu.js.map +1 -1
  294. package/dist/shell/topbar-controls.d.ts +3 -12
  295. package/dist/shell/topbar-controls.js +6 -9
  296. package/dist/shell/topbar-controls.js.map +1 -1
  297. package/dist/testing/index.d.ts +1 -1
  298. package/dist/testing/index.js +2 -0
  299. package/dist/testing/index.js.map +1 -1
  300. package/dist/testing/viewport.d.ts +25 -2
  301. package/dist/testing/viewport.js +61 -10
  302. package/dist/testing/viewport.js.map +1 -1
  303. package/dist/theme/contrast-tokens.d.ts +42 -4
  304. package/dist/theme/contrast-tokens.js +56 -9
  305. package/dist/theme/contrast-tokens.js.map +1 -1
  306. package/dist/theme/contrast.d.ts +4 -2
  307. package/dist/theme/contrast.js +13 -0
  308. package/dist/theme/contrast.js.map +1 -1
  309. package/dist/theme/palette-derive.d.ts +15 -1
  310. package/dist/theme/palette-derive.js +37 -8
  311. package/dist/theme/palette-derive.js.map +1 -1
  312. package/dist/theme/palette-presets.d.ts +2 -8
  313. package/dist/theme/palette-presets.js +5 -284
  314. package/dist/theme/palette-presets.js.map +1 -1
  315. package/dist/theme/palette-store.js +6 -0
  316. package/dist/theme/palette-store.js.map +1 -1
  317. package/dist/theme/text-size.js +6 -0
  318. package/dist/theme/text-size.js.map +1 -1
  319. package/dist/theme/theme-store.js +6 -0
  320. package/dist/theme/theme-store.js.map +1 -1
  321. package/dist/wizard/types.d.ts +0 -5
  322. package/dist/wizard/types.js +1 -5
  323. package/dist/wizard/types.js.map +1 -1
  324. package/package.json +9 -1
  325. package/src/admin/role-select.tsx +4 -1
  326. package/src/billing/billing-banner.tsx +5 -2
  327. package/src/billing/plan-limit-notice.tsx +5 -2
  328. package/src/chart.ts +5 -3
  329. package/src/components/amount-input.tsx +4 -7
  330. package/src/components/autocomplete.tsx +5 -2
  331. package/src/components/button-look.ts +15 -5
  332. package/src/components/calculator.tsx +2 -7
  333. package/src/components/chart-zoom.tsx +4 -47
  334. package/src/components/checkbox-group.tsx +22 -4
  335. package/src/components/chip-input.tsx +0 -7
  336. package/src/components/column-mapper.tsx +6 -2
  337. package/src/components/combobox.tsx +6 -3
  338. package/src/components/copy-button.tsx +5 -1
  339. package/src/components/country-select.tsx +6 -1
  340. package/src/components/currency-option-list.tsx +8 -42
  341. package/src/components/currency-select.tsx +12 -3
  342. package/src/components/danger-confirm.tsx +3 -3
  343. package/src/components/data-table-filter-popover.tsx +2 -1
  344. package/src/components/data-table-labels.ts +2 -84
  345. package/src/components/data-table-shared.tsx +55 -2
  346. package/src/components/data-table.tsx +29 -17
  347. package/src/components/date-field.tsx +2 -2
  348. package/src/components/date-picker.tsx +3 -0
  349. package/src/components/date-range-picker.tsx +3 -0
  350. package/src/components/dialog-frame.tsx +3 -1
  351. package/src/components/dropdown.tsx +42 -18
  352. package/src/components/entity-combobox.tsx +6 -3
  353. package/src/components/field-base.tsx +0 -11
  354. package/src/components/field-parts.tsx +112 -38
  355. package/src/components/field-strip.tsx +12 -27
  356. package/src/components/field-sync.tsx +0 -7
  357. package/src/components/field.tsx +32 -19
  358. package/src/components/full-bleed-dialog.tsx +4 -3
  359. package/src/components/help-popover.tsx +9 -7
  360. package/src/components/hover-menu.tsx +12 -16
  361. package/src/components/icon-picker.tsx +8 -3
  362. package/src/components/inline-entity-combobox.tsx +6 -3
  363. package/src/components/input.tsx +4 -2
  364. package/src/components/modal.tsx +20 -4
  365. package/src/components/month-picker.tsx +10 -3
  366. package/src/components/multi-entity-combobox.tsx +5 -2
  367. package/src/components/multi-select.tsx +19 -31
  368. package/src/components/number-input.tsx +5 -10
  369. package/src/components/numeric-field.ts +10 -2
  370. package/src/components/one-time-code-input.tsx +5 -3
  371. package/src/components/phone-input.tsx +4 -0
  372. package/src/components/popover.tsx +8 -4
  373. package/src/components/select.tsx +6 -3
  374. package/src/components/series-chart.tsx +1 -1
  375. package/src/components/server-wake.tsx +0 -6
  376. package/src/components/settings-fields.tsx +4 -2
  377. package/src/components/slider.tsx +10 -3
  378. package/src/components/stat-tile.tsx +11 -20
  379. package/src/components/swatch-picker.tsx +9 -4
  380. package/src/components/swipeable-row.tsx +15 -37
  381. package/src/components/text-link.tsx +3 -1
  382. package/src/components/textarea.tsx +11 -4
  383. package/src/components/toggle-group.tsx +21 -5
  384. package/src/components/tooltip.tsx +37 -6
  385. package/src/components/translation-review.tsx +25 -7
  386. package/src/components/use-table-state.ts +91 -10
  387. package/src/components/user-avatar.tsx +2 -2
  388. package/src/components/wizard-stepper.tsx +2 -6
  389. package/src/currencies.ts +70 -0
  390. package/src/demo/demo-banner.tsx +7 -2
  391. package/src/eslint/index.ts +161 -0
  392. package/src/eslint/role-utilities.generated.ts +146 -0
  393. package/src/eslint/role-utilities.ts +99 -0
  394. package/src/feedback/feedback-menu.tsx +2 -2
  395. package/src/feedback/feedback-thread.tsx +3 -8
  396. package/src/hooks/use-dismiss.ts +39 -4
  397. package/src/i18n/defaults.ts +4 -0
  398. package/src/i18n/german.ts +113 -0
  399. package/src/i18n/kit-labels.tsx +66 -6
  400. package/src/i18n/locales/en.ts +6 -0
  401. package/src/i18n/locales/es.ts +106 -0
  402. package/src/i18n/locales/fr.ts +109 -2
  403. package/src/i18n/locales/hu.ts +104 -0
  404. package/src/i18n/locales/it.ts +108 -2
  405. package/src/i18n/locales/zh.ts +96 -0
  406. package/src/i18n/review.ts +13 -0
  407. package/src/i18n/shared-labels.ts +2 -0
  408. package/src/index.ts +53 -1
  409. package/src/lib/device-settings.ts +146 -0
  410. package/src/lib/plain-text.ts +22 -0
  411. package/src/lib/refs.ts +22 -0
  412. package/src/lib/safe-storage.ts +16 -0
  413. package/src/notifications/notification-parts.tsx +83 -0
  414. package/src/notifications/notification-types-setting.tsx +309 -0
  415. package/src/notifications/notification-types.ts +80 -0
  416. package/src/notifications/notifications-labels.ts +238 -0
  417. package/src/notifications/push-device-setting.tsx +224 -0
  418. package/src/notifications/push-devices-setting.tsx +306 -0
  419. package/src/notifications/quiet-hours-setting.tsx +185 -0
  420. package/src/notifications/time-zone-select.tsx +126 -0
  421. package/src/notifications/unsubscribe-panel.tsx +203 -0
  422. package/src/notifications/use-push-device.ts +392 -0
  423. package/src/rhf/fields.tsx +87 -39
  424. package/src/rhf/form-core.tsx +5 -4
  425. package/src/rhf/form.tsx +7 -43
  426. package/src/rhf/line-items.tsx +1 -1
  427. package/src/rhf/use-rhf-wizard-step.ts +4 -4
  428. package/src/rhf.ts +3 -2
  429. package/src/settings/device-reset-setting-labels.ts +20 -0
  430. package/src/settings/device-reset-setting.tsx +119 -0
  431. package/src/shell/app-shell.tsx +8 -0
  432. package/src/shell/option-switcher-menu.tsx +5 -22
  433. package/src/shell/role-switcher.tsx +2 -6
  434. package/src/shell/topbar-action-menu.tsx +7 -24
  435. package/src/shell/topbar-controls.tsx +6 -18
  436. package/src/testing/index.ts +3 -1
  437. package/src/testing/viewport.ts +125 -19
  438. package/src/theme/contrast-tokens.ts +106 -12
  439. package/src/theme/contrast.ts +30 -4
  440. package/src/theme/palette-derive.ts +68 -7
  441. package/src/theme/palette-presets.ts +16 -299
  442. package/src/theme/palette-store.ts +12 -0
  443. package/src/theme/text-size.ts +8 -0
  444. package/src/theme/theme-store.ts +10 -0
  445. package/src/wizard/types.ts +0 -8
  446. package/tokens.css +38 -4
@@ -27,7 +27,7 @@
27
27
  * - **The red border.** Every field gets `invalid` from the field state, so an errored
28
28
  * field PAINTS as well as announces. kastlan's number, money, date and entity fields
29
29
  * passed only `aria-invalid` through `FormControl`, or nothing, and `Input`, `Select`
30
- * and `Textarea` paint only from the prop (see the note in ./form).
30
+ * and `Textarea` paint only from the prop (see the note in ./form-core).
31
31
  * - **Focus on error.** `field.ref` reaches the focusable element itself — the input,
32
32
  * a picker's trigger, a toggle group whose `focus()` lands on its option (since 0.34
33
33
  * every kit field takes a ref; the number field and the pickers were reached by an id
@@ -37,7 +37,7 @@
37
37
  * through react-hook-form's context. Pass it for the field's value types
38
38
  * (`control={form.control}` checks `name` against the form's values).
39
39
  *
40
- * The common props: `name`, `control`, `label` (a {@link FormLabel} above the field;
40
+ * The common props: `name`, `control`, `label` (the label above the field;
41
41
  * omitted, none — then give the field an `aria-label`), `hint` (standing advice under
42
42
  * the field, attached to it with `aria-describedby`), `required` (the label's mark,
43
43
  * and `aria-required` where the control takes it — validation is `rules`' or the
@@ -73,13 +73,19 @@ export interface RhfFieldBaseProps<TFieldValues extends FieldValues = FieldValue
73
73
  control?: ControllerProps<TFieldValues, TName, TTransformed>["control"];
74
74
  /** react-hook-form's `rules` (`required`, `min`, `validate` …). */
75
75
  rules?: ControllerProps<TFieldValues, TName, TTransformed>["rules"];
76
- /** A {@link FormLabel} above the field. Omitted: no label — name the control with
76
+ /** The label above the field. Omitted: no label — name the control with
77
77
  * an `aria-label` instead. */
78
78
  label?: ReactNode;
79
79
  /** Standing advice under the field ("As printed on the card"), attached to the
80
80
  * control with `aria-describedby`. A `FieldHint` is its words at Large and on a
81
- * touch screen (§4, DUP-2), not a lone "?"; a `HelpPopover` stays a "?". */
81
+ * touch screen (§4, DUP-2), not a lone "?"; a `HelpPopover` stays a "?". Beside a
82
+ * `help` it is that caption at every size. */
82
83
  hint?: ReactNode;
84
+ /** Help the field is usable without — why, how to choose — behind the field's one
85
+ * "?" after the label: a `HelpPopover` named "About <label>" (round 0.36,
86
+ * docs/text-size-harmonization.md §4); pass a `HelpPopover` to name it yourself.
87
+ * `hint` stays the visible fact under the field. */
88
+ help?: ReactNode;
83
89
  /** Draws the label's required mark and sets `aria-required` where the control
84
90
  * takes it. Whether the field IS required is `rules`' or the resolver's to say. */
85
91
  required?: boolean;
@@ -105,8 +111,8 @@ export interface RhfFieldRenderContext<TFieldValues extends FieldValues = FieldV
105
111
  invalid: boolean;
106
112
  /** The error's message, if any. */
107
113
  error: string | undefined;
108
- /** The control's id, which the label points at. `FormControl` sets it on the
109
- * rendered element already; this is for a control that routes it elsewhere. */
114
+ /** The control's id, which the label points at. The rendered element has it already
115
+ * (unless `asControl` is false); this is for a control that routes it elsewhere. */
110
116
  id: string;
111
117
  /** The label's id, for a control that is named with `aria-labelledby`. */
112
118
  labelId: string;
@@ -114,16 +120,16 @@ export interface RhfFieldRenderContext<TFieldValues extends FieldValues = FieldV
114
120
  describedBy: string | undefined;
115
121
  }
116
122
  export interface RhfFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> extends RhfFieldBaseProps<TFieldValues, TName, TTransformed> {
117
- /** The control. Wrapped in {@link FormControl} (its `id`, `aria-describedby` and
118
- * `aria-invalid`) unless `asControl` is false. */
123
+ /** The control. Given the field's `id`, `aria-describedby` and `aria-invalid` unless
124
+ * `asControl` is false. */
119
125
  render: (ctx: RhfFieldRenderContext<TFieldValues, TName>) => ReactElement;
120
126
  /** `false`: render the control as is, for one that wires its own ids from the
121
127
  * context. Default `true`. */
122
128
  asControl?: boolean;
123
- /** `false`: no {@link FormMessage}, for a control that renders its own error (its
129
+ /** `false`: no error message under the field, for a control that renders its own (its
124
130
  * `error` prop). Default `true`. */
125
131
  message?: boolean;
126
- /** `false`: no {@link FormLabel}, for a control that carries its label itself (a
132
+ /** `false`: no label above the field, for a control that carries its label itself (a
127
133
  * checkbox). Default `true`. */
128
134
  showLabel?: boolean;
129
135
  }
@@ -137,7 +143,7 @@ export interface RhfFieldProps<TFieldValues extends FieldValues = FieldValues, T
137
143
  * )} />
138
144
  * ```
139
145
  */
140
- export declare function RhfField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, render, asControl, message, showLabel, }: RhfFieldProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
146
+ export declare function RhfField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, render, asControl, message, showLabel, }: RhfFieldProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
141
147
  type OwnInputProps = Omit<InputProps, "name" | "value" | "defaultValue" | "onChange" | "onBlur" | "ref" | "label" | "error" | "invalid" | "className" | "disabled" | "required" | "inputClassName"> & {
142
148
  /**
143
149
  * Classes for the `<input>` — `className` is the item's box (kastlan 42: a
@@ -150,14 +156,14 @@ type OwnInputProps = Omit<InputProps, "name" | "value" | "defaultValue" | "onCha
150
156
  };
151
157
  export type RhfTextFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnInputProps;
152
158
  /** A text {@link Input} — `type` for email, tel, password, url. Stores the string. */
153
- export declare function RhfTextField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, ...inputProps }: RhfTextFieldProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
159
+ export declare function RhfTextField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, ...inputProps }: RhfTextFieldProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
154
160
  type OwnTextareaProps = Omit<TextareaProps, "name" | "value" | "defaultValue" | "onChange" | "onBlur" | "ref" | "label" | "error" | "invalid" | "className" | "disabled" | "required"> & {
155
161
  /** Classes for the `<textarea>`. */
156
162
  inputClassName?: string;
157
163
  };
158
164
  export type RhfTextareaProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnTextareaProps;
159
165
  /** A multi-line {@link Textarea}; takes `rows`. Stores the string. */
160
- export declare function RhfTextarea<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, inputClassName, ...areaProps }: RhfTextareaProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
166
+ export declare function RhfTextarea<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, inputClassName, ...areaProps }: RhfTextareaProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
161
167
  /** What a twin sets on its field itself — the value and its change, what the form
162
168
  * decides (`disabled`, `invalid`, the error, the ids) and what the shell draws (the
163
169
  * label, the hint, the item's `className`). Everything else of the field's passes
@@ -177,7 +183,7 @@ export type RhfNumberFieldProps<TFieldValues extends FieldValues = FieldValues,
177
183
  * `max`) number, committed on blur or Enter in the locale's decimal mark. Stores a
178
184
  * number, or `emptyValue` when emptied.
179
185
  */
180
- export declare function RhfNumberField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, emptyValue, nullable, ...numberProps }: RhfNumberFieldProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
186
+ export declare function RhfNumberField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, emptyValue, nullable, ...numberProps }: RhfNumberFieldProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
181
187
  export type RhfIntegerFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfNumberFieldProps<TFieldValues, TName, TTransformed>;
182
188
  /**
183
189
  * {@link RhfNumberField} for a whole number — a floor, a room count, a year, a
@@ -212,7 +218,7 @@ export type RhfMoneyFieldProps<TFieldValues extends FieldValues = FieldValues, T
212
218
  * calculator ("1200+80" resolves on blur or Enter). Stores a number by default — see
213
219
  * `valueAs`.
214
220
  */
215
- export 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>): import("react").JSX.Element;
221
+ export declare function RhfMoneyField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, ...amountProps }: RhfMoneyFieldProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
216
222
  export 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"> & {
217
223
  /** Classes for the picker. Default `w-full`. */
218
224
  inputClassName?: string;
@@ -221,7 +227,7 @@ export type RhfDateFieldProps<TFieldValues extends FieldValues = FieldValues, TN
221
227
  emptyValue?: "" | null;
222
228
  };
223
229
  /** The kit's {@link DatePicker}, holding an ISO `"YYYY-MM-DD"` string. */
224
- export 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>): import("react").JSX.Element;
230
+ export declare function RhfDateField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, inputClassName, emptyValue, ...pickerProps }: RhfDateFieldProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
225
231
  type OwnDateRangeProps = Omit<DateRangePickerProps, "from" | "to" | "onChange" | "label" | "invalid" | "disabled" | "className" | "id" | "error">;
226
232
  export 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 & {
227
233
  /** The form field holding the range's first day, an ISO `"YYYY-MM-DD"`. */
@@ -277,7 +283,7 @@ export type RhfDateRangePickerProps<TFieldValues extends FieldValues = FieldValu
277
283
  * The common props (`label`, `hint`, `required`, `disabled`, `excludeWhenDisabled`,
278
284
  * `control`, `className`) apply to the pair; `rules` are per field.
279
285
  */
280
- export 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>): import("react").JSX.Element;
286
+ export 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, help, required, disabled, excludeWhenDisabled, className, inputClassName, emptyValue, ...pickerProps }: RhfDateRangePickerProps<TFieldValues, TFromName, TToName, TTransformed>): import("react").JSX.Element;
281
287
  export 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"> & {
282
288
  /** What a cleared time stores. Default `""`; `null` for a nullable schema. */
283
289
  emptyValue?: "" | null;
@@ -294,7 +300,7 @@ export type RhfTimeInputProps<TFieldValues extends FieldValues = FieldValues, TN
294
300
  * validation stays the schema's or `rules`'. `rules={{ validate: (v) =>
295
301
  * isTimeInRange(v, min, max) || "…" }}` says it with the same window.
296
302
  */
297
- export 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>): import("react").JSX.Element;
303
+ export declare function RhfTimeInput<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, emptyValue, ...timeProps }: RhfTimeInputProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
298
304
  type OwnTextishProps<P> = Omit<P, "name" | "value" | "defaultValue" | "onChange" | "onValueChange" | "onBlur" | "label" | "error" | "invalid" | "className" | "disabled" | "required">;
299
305
  export type RhfIbanInputProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnTextishProps<IbanInputProps>;
300
306
  /**
@@ -304,7 +310,7 @@ export type RhfIbanInputProps<TFieldValues extends FieldValues = FieldValues, TN
304
310
  * or `rules`') replaces them, as a caller's `error` does on the bare field. kastlan
305
311
  * asked for the field; it binds everything through react-hook-form.
306
312
  */
307
- export 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>): import("react").JSX.Element;
313
+ export declare function RhfIbanInput<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, ...ibanProps }: RhfIbanInputProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
308
314
  export type RhfPhoneInputProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnTextishProps<PhoneInputProps>;
309
315
  /**
310
316
  * {@link PhoneInput} bound to one field, which stores E.164 when the number reads as
@@ -312,7 +318,7 @@ export type RhfPhoneInputProps<TFieldValues extends FieldValues = FieldValues, T
312
318
  * text until someone edits it. Validation (required, a pattern for E.164 only) is the
313
319
  * schema's or `rules`'.
314
320
  */
315
- export 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>): import("react").JSX.Element;
321
+ export declare function RhfPhoneInput<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, ...phoneProps }: RhfPhoneInputProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
316
322
  type OwnCountrySelectProps = Omit<CountrySelectProps<boolean>, "value" | "onChange" | "onBlur" | "label" | "hint" | "error" | "invalid" | "disabled" | "className" | "id" | "ref" | "clearable">;
317
323
  export type RhfCountrySelectProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnCountrySelectProps & {
318
324
  /** Offer the picker's clear "×" (and Delete on the trigger) while a country is
@@ -346,7 +352,7 @@ export type RhfCountrySelectProps<TFieldValues extends FieldValues = FieldValues
346
352
  * preferred={["CH", "LI", "DE", "AT", "FR", "IT"]} rules={{ required: "Choose a country" }} />
347
353
  * ```
348
354
  */
349
- export 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>): import("react").JSX.Element;
355
+ export declare function RhfCountrySelect<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, clearable, clearValue, selectClassName, labels, ...countryProps }: RhfCountrySelectProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
350
356
  type OwnMonthPickerProps = Omit<MonthPickerProps, "value" | "onChange" | "onBlur" | "label" | "hint" | "error" | "invalid" | "disabled" | "className" | "id" | "mode">;
351
357
  /** `mode` picks what the form stores, and `valueAsNumber` is only offered for a year. */
352
358
  type RhfMonthPickerMode = {
@@ -383,7 +389,7 @@ export type RhfMonthPickerProps<TFieldValues extends FieldValues = FieldValues,
383
389
  * min="2020" max="2029" rules={{ required: "Choose a year" }} />
384
390
  * ```
385
391
  */
386
- export 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>): import("react").JSX.Element;
392
+ export declare function RhfMonthPicker<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, inputClassName, mode, valueAsNumber, ...pickerProps }: RhfMonthPickerProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
387
393
  export interface RhfSelectOption {
388
394
  value: string | number;
389
395
  label: ReactNode;
@@ -402,8 +408,9 @@ export type RhfSelectProps<TFieldValues extends FieldValues = FieldValues, TName
402
408
  selectClassName?: string;
403
409
  };
404
410
  /** A native {@link Select}, from `options` or `<option>` children. */
405
- export declare function RhfSelect<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, options, children, placeholder, valueAsNumber, selectClassName, ...selectProps }: RhfSelectProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
406
- export type RhfCheckboxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Omit<CheckboxProps, BoundByForm | "checked" | "defaultChecked" | "onCheckedChange" | "description">;
411
+ export declare function RhfSelect<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, options, children, placeholder, valueAsNumber, selectClassName, ...selectProps }: RhfSelectProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
412
+ export type RhfCheckboxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = // No `help` (0.36): a box has no label line — its label sits beside it, inside the
413
+ Omit<RhfFieldBaseProps<TFieldValues, TName, TTransformed>, "help"> & Omit<CheckboxProps, BoundByForm | "checked" | "defaultChecked" | "onCheckedChange" | "description">;
407
414
  /**
408
415
  * The kit's {@link Checkbox}, label beside the box and `hint` under it (the
409
416
  * checkbox's own `description`). Stores a boolean. `required` is the native one here
@@ -438,7 +445,7 @@ export type RhfToggleGroupProps<TFieldValues extends FieldValues = FieldValues,
438
445
  * asked for it with {@link RhfTimeInput} and {@link RhfDateRangePicker}: the controls
439
446
  * its forms still had to wire by hand through {@link RhfField}'s render.
440
447
  *
441
- * The label is the form's {@link FormLabel} above the bare group, as on every other
448
+ * The label is the field's own label above the bare group, as on every other
442
449
  * bound field — the `labelPlacement="above"` shape, not the group's own field chrome —
443
450
  * and it names the group (`aria-labelledby`); the hint and the message describe it,
444
451
  * and an error paints the group's border. Focus on error goes to the option a
@@ -451,7 +458,7 @@ export type RhfToggleGroupProps<TFieldValues extends FieldValues = FieldValues,
451
458
  * value that matches no option (an empty default) leaves nothing pressed; that the
452
459
  * field still needs answering is the schema's or `rules`' to say.
453
460
  */
454
- export 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>): import("react").JSX.Element;
461
+ export declare function RhfToggleGroup<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, T extends string = string, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, ...groupProps }: RhfToggleGroupProps<TFieldValues, TName, T, TTransformed>): import("react").JSX.Element;
455
462
  export type RhfComboboxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, V extends string | number = string | number, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Omit<EntityComboboxProps<V>, BoundByForm | "id" | "clearValue"> & {
456
463
  /** What a clear stores — the picker's `clearValue`. Default `null`; `""` for a
457
464
  * schema that spells "no choice" as an empty string. */
@@ -472,7 +479,7 @@ export type RhfComboboxProps<TFieldValues extends FieldValues = FieldValues, TNa
472
479
  * placeholder. For the INLINE picker — a text input, the account field typed into —
473
480
  * see {@link RhfInlineEntityCombobox}.
474
481
  */
475
- export declare function RhfCombobox<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, V extends string | number = string | number, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, clearValue, comboClassName, ...comboProps }: RhfComboboxProps<TFieldValues, TName, V, TTransformed>): import("react").JSX.Element;
482
+ export declare function RhfCombobox<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, V extends string | number = string | number, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, clearValue, comboClassName, ...comboProps }: RhfComboboxProps<TFieldValues, TName, V, TTransformed>): import("react").JSX.Element;
476
483
  type OwnInlineEntityComboboxProps<V extends string | number> = Omit<InlineEntityComboboxProps<V, ComboClearValue>, "value" | "defaultValue" | "onChange" | "onBlur" | "label" | "hint" | "error" | "invalid" | "disabled" | "className" | "id" | "ref" | "clearValue">;
477
484
  export type RhfInlineEntityComboboxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, V extends string | number = string | number, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & OwnInlineEntityComboboxProps<V> & {
478
485
  /** What a clear stores — emptying the text, or the "×" with `clearable`. Default
@@ -517,7 +524,7 @@ export type RhfInlineEntityComboboxProps<TFieldValues extends FieldValues = Fiel
517
524
  *
518
525
  * For the button-shaped picker with an async `loadOptions`, see {@link RhfCombobox}.
519
526
  */
520
- export declare function RhfInlineEntityCombobox<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, V extends string | number = string | number, TTransformed = TFieldValues>({ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className, clearValue, comboClassName, ...comboProps }: RhfInlineEntityComboboxProps<TFieldValues, TName, V, TTransformed>): import("react").JSX.Element;
527
+ export declare function RhfInlineEntityCombobox<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, V extends string | number = string | number, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, clearValue, comboClassName, ...comboProps }: RhfInlineEntityComboboxProps<TFieldValues, TName, V, TTransformed>): import("react").JSX.Element;
521
528
  export type RhfTextComboboxProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues> = RhfFieldBaseProps<TFieldValues, TName, TTransformed> & Omit<ComboboxProps, BoundByForm | "id"> & {
522
529
  /** Classes for the combobox. */
523
530
  comboClassName?: string;
@@ -526,5 +533,5 @@ export type RhfTextComboboxProps<TFieldValues extends FieldValues = FieldValues,
526
533
  * The kit's free-text {@link Combobox}: type anything, or pick one of `options`.
527
534
  * Stores the string.
528
535
  */
529
- export 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>): import("react").JSX.Element;
536
+ export declare function RhfTextCombobox<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformed = TFieldValues>({ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className, comboClassName, ...comboProps }: RhfTextComboboxProps<TFieldValues, TName, TTransformed>): import("react").JSX.Element;
530
537
  export {};
@@ -29,7 +29,7 @@ import {
29
29
  Combobox,
30
30
  InlineEntityCombobox
31
31
  } from "../components/combobox.js";
32
- import { mergeRefs, useInlineHint } from "../components/field-parts.js";
32
+ import { fieldHelpMark, mergeRefs, useInlineHint } from "../components/field-parts.js";
33
33
  import { useKitLocale } from "../i18n/kit-labels.js";
34
34
  import { cn } from "../lib/cn.js";
35
35
  import { decimalMark, readTyped } from "../lib/decimal-marks.js";
@@ -62,6 +62,7 @@ function RhfField({
62
62
  rules,
63
63
  label,
64
64
  hint,
65
+ help,
65
66
  required,
66
67
  disabled,
67
68
  excludeWhenDisabled,
@@ -71,7 +72,9 @@ function RhfField({
71
72
  message = true,
72
73
  showLabel = true
73
74
  }) {
74
- const shownHint = useInlineHint(hint);
75
+ const helpMark = fieldHelpMark(help, label);
76
+ const shownHint = useInlineHint(hint, helpMark !== void 0);
77
+ const labelEl = showLabel && hasContent(label) && /* @__PURE__ */ jsx(RhfLabel, { required, children: label });
75
78
  return /* @__PURE__ */ jsx(
76
79
  FormField,
77
80
  {
@@ -80,7 +83,10 @@ function RhfField({
80
83
  rules,
81
84
  disabled: excludeWhenDisabled ? disabled : void 0,
82
85
  render: ({ field, fieldState }) => /* @__PURE__ */ jsxs(FormItem, { className, children: [
83
- showLabel && hasContent(label) && /* @__PURE__ */ jsx(RhfLabel, { required, children: label }),
86
+ helpMark === void 0 ? labelEl : /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
87
+ labelEl,
88
+ /* @__PURE__ */ jsx("span", { className: "flex shrink-0 items-center", children: helpMark })
89
+ ] }),
84
90
  /* @__PURE__ */ jsx(
85
91
  ControlSlot,
86
92
  {
@@ -102,6 +108,7 @@ function RhfTextField({
102
108
  rules,
103
109
  label,
104
110
  hint,
111
+ help,
105
112
  required,
106
113
  disabled,
107
114
  excludeWhenDisabled,
@@ -111,7 +118,7 @@ function RhfTextField({
111
118
  return /* @__PURE__ */ jsx(
112
119
  RhfField,
113
120
  {
114
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
121
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
115
122
  render: ({ field, invalid }) => /* @__PURE__ */ jsx(
116
123
  Input,
117
124
  {
@@ -135,6 +142,7 @@ function RhfTextarea({
135
142
  rules,
136
143
  label,
137
144
  hint,
145
+ help,
138
146
  required,
139
147
  disabled,
140
148
  excludeWhenDisabled,
@@ -145,7 +153,7 @@ function RhfTextarea({
145
153
  return /* @__PURE__ */ jsx(
146
154
  RhfField,
147
155
  {
148
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
156
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
149
157
  render: ({ field, invalid }) => /* @__PURE__ */ jsx(
150
158
  Textarea,
151
159
  {
@@ -179,6 +187,7 @@ function RhfNumberField({
179
187
  rules,
180
188
  label,
181
189
  hint,
190
+ help,
182
191
  required,
183
192
  disabled,
184
193
  excludeWhenDisabled,
@@ -190,7 +199,7 @@ function RhfNumberField({
190
199
  return /* @__PURE__ */ jsx(
191
200
  RhfField,
192
201
  {
193
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
202
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
194
203
  render: ({ field, invalid, id }) => (
195
204
  // FormControl clones this element with `id` / `aria-describedby` /
196
205
  // `aria-invalid`, which NumberControl hands on to the field.
@@ -305,6 +314,7 @@ function RhfMoneyField({
305
314
  rules,
306
315
  label,
307
316
  hint,
317
+ help,
308
318
  required,
309
319
  disabled,
310
320
  excludeWhenDisabled,
@@ -314,7 +324,7 @@ function RhfMoneyField({
314
324
  return /* @__PURE__ */ jsx(
315
325
  RhfField,
316
326
  {
317
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
327
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
318
328
  asControl: false,
319
329
  render: ({ field, invalid, id, describedBy }) => /* @__PURE__ */ jsx(
320
330
  MoneyControl,
@@ -367,6 +377,7 @@ function RhfDateField({
367
377
  rules,
368
378
  label,
369
379
  hint,
380
+ help,
370
381
  required,
371
382
  disabled,
372
383
  excludeWhenDisabled,
@@ -378,7 +389,7 @@ function RhfDateField({
378
389
  return /* @__PURE__ */ jsx(
379
390
  RhfField,
380
391
  {
381
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
392
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
382
393
  render: ({ field, invalid, id }) => (
383
394
  // FormControl clones this element with `aria-describedby` / `aria-invalid`,
384
395
  // which DateControl hands on to the picker's trigger.
@@ -407,6 +418,7 @@ function RhfDateRangePicker({
407
418
  toRules,
408
419
  label,
409
420
  hint,
421
+ help,
410
422
  required,
411
423
  disabled,
412
424
  excludeWhenDisabled,
@@ -438,6 +450,7 @@ function RhfDateRangePicker({
438
450
  toState: to.fieldState,
439
451
  label,
440
452
  hint,
453
+ help,
441
454
  required,
442
455
  disabled: Boolean(disabled),
443
456
  emptyValue,
@@ -455,6 +468,7 @@ function RangeBody({
455
468
  toState,
456
469
  label,
457
470
  hint,
471
+ help,
458
472
  required,
459
473
  disabled,
460
474
  emptyValue,
@@ -462,7 +476,8 @@ function RangeBody({
462
476
  pickerProps
463
477
  }) {
464
478
  const { id, formItemId, formMessageId, describedBy } = useFormField();
465
- const shownHint = useInlineHint(hint);
479
+ const helpMark = fieldHelpMark(help, label);
480
+ const shownHint = useInlineHint(hint, helpMark !== void 0);
466
481
  const triggerRef = useMemo(() => mergeRefs(from.ref, to.ref), [from.ref, to.ref]);
467
482
  const invalid = fromState.invalid || toState.invalid;
468
483
  const messages = [fromState.error?.message, toState.error?.message].filter(
@@ -471,10 +486,14 @@ function RangeBody({
471
486
  const messageIds = messages.map((_, i) => `${formMessageId}-${i}`);
472
487
  const fromValue = from.value;
473
488
  const toValue = to.value;
489
+ const labelEl = hasContent(label) && // FormLabel colours from the START's error alone (its context is that field); the
490
+ // pair's state says it here.
491
+ /* @__PURE__ */ jsx(FormLabel, { id: `${id}-label`, required, "data-error": invalid || void 0, children: label });
474
492
  return /* @__PURE__ */ jsxs(Fragment, { children: [
475
- hasContent(label) && // FormLabel colours from the START's error alone (its context is that field);
476
- // the pair's state says it here.
477
- /* @__PURE__ */ jsx(FormLabel, { id: `${id}-label`, required, "data-error": invalid || void 0, children: label }),
493
+ helpMark === void 0 ? labelEl : /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
494
+ labelEl,
495
+ /* @__PURE__ */ jsx("span", { className: "flex shrink-0 items-center", children: helpMark })
496
+ ] }),
478
497
  /* @__PURE__ */ jsx(
479
498
  DateRangePicker,
480
499
  {
@@ -522,6 +541,7 @@ function RhfTimeInput({
522
541
  rules,
523
542
  label,
524
543
  hint,
544
+ help,
525
545
  required,
526
546
  disabled,
527
547
  excludeWhenDisabled,
@@ -532,7 +552,7 @@ function RhfTimeInput({
532
552
  return /* @__PURE__ */ jsx(
533
553
  RhfField,
534
554
  {
535
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
555
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
536
556
  render: ({ field, invalid }) => {
537
557
  const value = field.value;
538
558
  return /* @__PURE__ */ jsx(
@@ -559,6 +579,7 @@ function RhfIbanInput({
559
579
  rules,
560
580
  label,
561
581
  hint,
582
+ help,
562
583
  required,
563
584
  disabled,
564
585
  excludeWhenDisabled,
@@ -568,7 +589,7 @@ function RhfIbanInput({
568
589
  return /* @__PURE__ */ jsx(
569
590
  RhfField,
570
591
  {
571
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
592
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
572
593
  render: ({ field, invalid }) => {
573
594
  const value = field.value;
574
595
  return /* @__PURE__ */ jsx(
@@ -595,6 +616,7 @@ function RhfPhoneInput({
595
616
  rules,
596
617
  label,
597
618
  hint,
619
+ help,
598
620
  required,
599
621
  disabled,
600
622
  excludeWhenDisabled,
@@ -604,7 +626,7 @@ function RhfPhoneInput({
604
626
  return /* @__PURE__ */ jsx(
605
627
  RhfField,
606
628
  {
607
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
629
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
608
630
  render: ({ field, invalid }) => {
609
631
  const value = field.value;
610
632
  return /* @__PURE__ */ jsx(
@@ -631,6 +653,7 @@ function RhfCountrySelect({
631
653
  rules,
632
654
  label,
633
655
  hint,
656
+ help,
634
657
  required,
635
658
  disabled,
636
659
  excludeWhenDisabled,
@@ -646,7 +669,7 @@ function RhfCountrySelect({
646
669
  return /* @__PURE__ */ jsx(
647
670
  RhfField,
648
671
  {
649
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
672
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
650
673
  render: ({ field, invalid, labelId }) => {
651
674
  const value = field.value;
652
675
  return (
@@ -713,6 +736,7 @@ function RhfMonthPicker({
713
736
  rules,
714
737
  label,
715
738
  hint,
739
+ help,
716
740
  required,
717
741
  disabled,
718
742
  excludeWhenDisabled,
@@ -725,7 +749,7 @@ function RhfMonthPicker({
725
749
  return /* @__PURE__ */ jsx(
726
750
  RhfField,
727
751
  {
728
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
752
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
729
753
  render: ({ field, invalid, id }) => (
730
754
  // FormControl clones this element with `aria-describedby` / `aria-invalid`,
731
755
  // which MonthControl hands on to the picker's trigger.
@@ -753,6 +777,7 @@ function RhfSelect({
753
777
  rules,
754
778
  label,
755
779
  hint,
780
+ help,
756
781
  required,
757
782
  disabled,
758
783
  excludeWhenDisabled,
@@ -767,7 +792,7 @@ function RhfSelect({
767
792
  return /* @__PURE__ */ jsx(
768
793
  RhfField,
769
794
  {
770
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
795
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
771
796
  render: ({ field, invalid }) => /* @__PURE__ */ jsxs(
772
797
  Select,
773
798
  {
@@ -836,6 +861,7 @@ function RhfToggleGroup({
836
861
  rules,
837
862
  label,
838
863
  hint,
864
+ help,
839
865
  required,
840
866
  disabled,
841
867
  excludeWhenDisabled,
@@ -846,7 +872,7 @@ function RhfToggleGroup({
846
872
  return /* @__PURE__ */ jsx(
847
873
  RhfField,
848
874
  {
849
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
875
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
850
876
  asControl: false,
851
877
  render: ({ field, invalid, id, labelId, describedBy }) => /* @__PURE__ */ jsx(
852
878
  ToggleControl,
@@ -964,6 +990,7 @@ function RhfCombobox({
964
990
  rules,
965
991
  label,
966
992
  hint,
993
+ help,
967
994
  required,
968
995
  disabled,
969
996
  excludeWhenDisabled,
@@ -975,7 +1002,7 @@ function RhfCombobox({
975
1002
  return /* @__PURE__ */ jsx(
976
1003
  RhfField,
977
1004
  {
978
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
1005
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
979
1006
  asControl: false,
980
1007
  message: false,
981
1008
  render: ({ field, invalid, error, id, describedBy }) => /* @__PURE__ */ jsx(
@@ -1003,6 +1030,7 @@ function RhfInlineEntityCombobox({
1003
1030
  rules,
1004
1031
  label,
1005
1032
  hint,
1033
+ help,
1006
1034
  required,
1007
1035
  disabled,
1008
1036
  excludeWhenDisabled,
@@ -1014,7 +1042,7 @@ function RhfInlineEntityCombobox({
1014
1042
  return /* @__PURE__ */ jsx(
1015
1043
  RhfField,
1016
1044
  {
1017
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
1045
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
1018
1046
  render: ({ field, invalid }) => {
1019
1047
  const value = field.value;
1020
1048
  return (
@@ -1047,6 +1075,7 @@ function RhfTextCombobox({
1047
1075
  rules,
1048
1076
  label,
1049
1077
  hint,
1078
+ help,
1050
1079
  required,
1051
1080
  disabled,
1052
1081
  excludeWhenDisabled,
@@ -1057,7 +1086,7 @@ function RhfTextCombobox({
1057
1086
  return /* @__PURE__ */ jsx(
1058
1087
  RhfField,
1059
1088
  {
1060
- ...{ name, control, rules, label, hint, required, disabled, excludeWhenDisabled, className },
1089
+ ...{ name, control, rules, label, hint, help, required, disabled, excludeWhenDisabled, className },
1061
1090
  asControl: false,
1062
1091
  message: false,
1063
1092
  render: ({ field, invalid, error, id, describedBy }) => /* @__PURE__ */ jsx(