@payfit/unity-components 0.0.0-alpha.6 → 0.0.0-alpha.8

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 (366) hide show
  1. package/dist/cjs/components/alert/Alert.js +1 -1
  2. package/dist/cjs/components/anchor/Anchor.d.ts +1 -1
  3. package/dist/cjs/components/app-layout/AppLayout.d.ts +6 -1
  4. package/dist/cjs/components/app-layout/AppLayout.js +1 -1
  5. package/dist/cjs/components/app-menu/AppMenu.d.ts +9 -0
  6. package/dist/cjs/components/app-menu/AppMenu.js +1 -0
  7. package/dist/cjs/components/app-menu/parts/AppMenu.context.d.ts +9 -0
  8. package/dist/cjs/components/app-menu/parts/AppMenu.context.js +1 -0
  9. package/dist/cjs/components/app-menu/parts/AppMenuFooter.d.ts +31 -0
  10. package/dist/cjs/components/app-menu/parts/AppMenuFooter.js +1 -0
  11. package/dist/cjs/components/app-menu/parts/AppMenuHeader.d.ts +9 -0
  12. package/dist/cjs/components/app-menu/parts/AppMenuHeader.js +1 -0
  13. package/dist/cjs/components/app-menu/parts/AppMenuNavContent.d.ts +5 -0
  14. package/dist/cjs/components/app-menu/parts/AppMenuNavContent.js +1 -0
  15. package/dist/cjs/components/avatar/Avatar.context.d.ts +1 -1
  16. package/dist/cjs/components/avatar/parts/AvatarFallback.d.ts +1 -1
  17. package/dist/cjs/components/avatar/parts/AvatarFallback.js +1 -1
  18. package/dist/cjs/components/avatar/parts/AvatarPair.d.ts +20 -0
  19. package/dist/cjs/components/avatar/parts/AvatarPair.js +1 -1
  20. package/dist/cjs/components/avatar/utils.d.ts +1 -0
  21. package/dist/cjs/components/avatar/utils.js +1 -0
  22. package/dist/cjs/components/badge/Badge.d.ts +3 -0
  23. package/dist/cjs/components/badge/Badge.js +1 -1
  24. package/dist/cjs/components/breadcrumbs/Breadcrumbs.context.d.ts +1 -1
  25. package/dist/cjs/components/breadcrumbs/parts/Breadcrumb.js +1 -1
  26. package/dist/cjs/components/button/Button.d.ts +2 -1
  27. package/dist/cjs/components/checkbox/Checkbox.d.ts +225 -0
  28. package/dist/cjs/components/checkbox/Checkbox.js +1 -0
  29. package/dist/cjs/components/checkbox/parts/CheckboxIndicator.d.ts +13 -0
  30. package/dist/cjs/components/checkbox/parts/CheckboxIndicator.js +1 -0
  31. package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +74 -0
  32. package/dist/cjs/components/checkbox-field/CheckboxField.js +1 -0
  33. package/dist/cjs/components/checkbox-group/CheckboxGroup.d.ts +65 -0
  34. package/dist/cjs/components/checkbox-group/CheckboxGroup.js +1 -0
  35. package/dist/cjs/components/checkbox-group-field/CheckboxGroupField.d.ts +79 -0
  36. package/dist/cjs/components/checkbox-group-field/CheckboxGroupField.js +1 -0
  37. package/dist/cjs/components/collapsible/Collapsible.d.ts +33 -0
  38. package/dist/cjs/components/collapsible/parts/CollapsibleContent.d.ts +36 -0
  39. package/dist/cjs/components/collapsible/parts/CollapsibleTitle.d.ts +39 -0
  40. package/dist/cjs/components/date-picker/DatePicker.d.ts +67 -0
  41. package/dist/cjs/components/date-picker/DatePicker.js +1 -0
  42. package/dist/cjs/components/date-picker/hooks/useMonthsList.d.ts +4 -0
  43. package/dist/cjs/components/date-picker/hooks/useMonthsList.js +1 -0
  44. package/dist/cjs/components/date-picker/hooks/useYearsList.d.ts +10 -0
  45. package/dist/cjs/components/date-picker/hooks/useYearsList.js +1 -0
  46. package/dist/cjs/components/date-picker/parts/DateCalendar.d.ts +9 -0
  47. package/dist/cjs/components/date-picker/parts/DateCalendar.js +1 -0
  48. package/dist/cjs/components/date-picker/parts/DateInput.d.ts +155 -0
  49. package/dist/cjs/components/date-picker/parts/DateInput.js +1 -0
  50. package/dist/cjs/components/date-picker/parts/DateSegmentSelect.d.ts +15 -0
  51. package/dist/cjs/components/date-picker/parts/DateSegmentSelect.js +1 -0
  52. package/dist/cjs/components/date-picker/utils.d.ts +12 -0
  53. package/dist/cjs/components/date-picker-field/DatePickerField.d.ts +83 -0
  54. package/dist/cjs/components/date-picker-field/DatePickerField.js +1 -0
  55. package/dist/cjs/components/dialog/Dialog.d.ts +1 -1
  56. package/dist/cjs/components/dialog/parts/DialogActions/DialogButton.d.ts +1 -1
  57. package/dist/cjs/components/dialog/parts/DialogActions.d.ts +1 -1
  58. package/dist/cjs/components/dialog/parts/DialogTitle.d.ts +1 -1
  59. package/dist/cjs/components/fieldset/Fieldset.d.ts +150 -0
  60. package/dist/cjs/components/fieldset/Fieldset.js +1 -0
  61. package/dist/cjs/components/fieldset/parts/FieldGroup.d.ts +27 -0
  62. package/dist/cjs/components/fieldset/parts/FieldGroup.js +1 -0
  63. package/dist/cjs/components/form/Form.context.d.ts +1 -1
  64. package/dist/cjs/components/form/Form.context.js +1 -1
  65. package/dist/cjs/components/form/Form.js +1 -1
  66. package/dist/cjs/components/form-field/FormField.context.d.ts +32 -14
  67. package/dist/cjs/components/form-field/FormField.context.js +1 -0
  68. package/dist/cjs/components/form-field/FormField.d.ts +40 -16
  69. package/dist/cjs/components/form-field/FormField.js +1 -0
  70. package/dist/cjs/components/form-field/parts/FormContextualLink.js +1 -0
  71. package/dist/cjs/components/form-field/parts/FormControl.d.ts +30 -0
  72. package/dist/cjs/components/form-field/parts/FormControl.js +1 -0
  73. package/dist/cjs/components/form-field/parts/FormFeedbackText.js +1 -0
  74. package/dist/cjs/components/form-field/parts/FormHelperText.d.ts +1 -1
  75. package/dist/cjs/components/form-field/parts/FormHelperText.js +1 -0
  76. package/dist/cjs/components/form-field/parts/FormLabel.d.ts +3 -3
  77. package/dist/cjs/components/form-field/parts/FormLabel.js +1 -0
  78. package/dist/cjs/components/form-field/utils/isFieldRequired.d.ts +8 -0
  79. package/dist/cjs/components/form-field/utils/isFieldRequired.js +1 -0
  80. package/dist/cjs/components/full-page-loader/FullPageLoader.d.ts +13 -0
  81. package/dist/cjs/components/full-page-loader/FullPageLoader.js +1 -0
  82. package/dist/cjs/components/icon/Icon.d.ts +1 -1
  83. package/dist/cjs/components/icon-button/CircularIconButton.d.ts +1 -1
  84. package/dist/cjs/components/icon-button/CircularIconButton.js +1 -1
  85. package/dist/cjs/components/icon-button/IconButton.d.ts +1 -1
  86. package/dist/cjs/components/icon-button/IconButton.variants.js +1 -1
  87. package/dist/cjs/components/input/Input.d.ts +48 -0
  88. package/dist/cjs/components/input/Input.js +1 -0
  89. package/dist/cjs/components/label/Label.d.ts +17 -0
  90. package/dist/cjs/components/label/Label.js +1 -0
  91. package/dist/cjs/components/link/Link.d.ts +10 -0
  92. package/dist/cjs/components/link/Link.js +1 -1
  93. package/dist/cjs/components/menu/Menu.d.ts +1 -1
  94. package/dist/cjs/components/menu/parts/MenuContent.d.ts +1 -1
  95. package/dist/cjs/components/menu/parts/MenuContent.js +1 -1
  96. package/dist/cjs/components/menu/parts/MenuHeader.d.ts +1 -1
  97. package/dist/cjs/components/menu/parts/MenuItem.d.ts +2 -2
  98. package/dist/cjs/components/menu/parts/MenuSeparator.d.ts +1 -1
  99. package/dist/cjs/components/menu/parts/MenuTrigger.d.ts +1 -1
  100. package/dist/cjs/components/multi-select/MultiSelect.d.ts +62 -0
  101. package/dist/cjs/components/multi-select/MultiSelect.js +1 -0
  102. package/dist/cjs/components/multi-select/Multiselect.context.d.ts +7 -0
  103. package/dist/cjs/components/multi-select/Multiselect.context.js +1 -0
  104. package/dist/cjs/components/multi-select/Multiselect.types.d.ts +109 -0
  105. package/dist/cjs/components/multi-select/hooks/use-combobox-filter.d.ts +12 -0
  106. package/dist/cjs/components/multi-select/hooks/use-combobox-filter.js +1 -0
  107. package/dist/cjs/components/multi-select/hooks/use-multiselection-state.d.ts +14 -0
  108. package/dist/cjs/components/multi-select/hooks/use-multiselection-state.js +1 -0
  109. package/dist/cjs/components/multi-select/parts/MultiSelectButton.d.ts +16 -0
  110. package/dist/cjs/components/multi-select/parts/MultiSelectButton.js +1 -0
  111. package/dist/cjs/components/multi-select/parts/MultiSelectOptGroup.d.ts +69 -0
  112. package/dist/cjs/components/multi-select/parts/MultiSelectOptGroup.js +1 -0
  113. package/dist/cjs/components/multi-select/parts/MultiSelectOption.d.ts +20 -0
  114. package/dist/cjs/components/multi-select/parts/MultiSelectOption.js +1 -0
  115. package/dist/cjs/components/multi-select/parts/MultiSelectPopover.d.ts +7 -0
  116. package/dist/cjs/components/multi-select/parts/MultiSelectPopover.js +1 -0
  117. package/dist/cjs/components/multi-select-field/MultiSelectField.d.ts +59 -0
  118. package/dist/cjs/components/multi-select-field/MultiSelectField.js +1 -0
  119. package/dist/cjs/components/nav/Nav.d.ts +1 -1
  120. package/dist/cjs/components/nav/parts/NavGroup.d.ts +1 -1
  121. package/dist/cjs/components/nav/parts/NavItem.d.ts +1 -1
  122. package/dist/cjs/components/segmented-button-group/SegmentedButtonGroup.d.ts +43 -0
  123. package/dist/cjs/components/segmented-button-group/SegmentedButtonGroups.context.d.ts +8 -0
  124. package/dist/cjs/components/segmented-button-group/parts/ToggleButton.d.ts +47 -0
  125. package/dist/cjs/components/select/Select.d.ts +52 -0
  126. package/dist/cjs/components/select/Select.js +1 -0
  127. package/dist/cjs/components/select/parts/SearchInput.d.ts +2 -0
  128. package/dist/cjs/components/select/parts/SearchInput.js +1 -0
  129. package/dist/cjs/components/select/parts/SelectButton.d.ts +8 -0
  130. package/dist/cjs/components/select/parts/SelectButton.js +1 -0
  131. package/dist/cjs/components/select/parts/SelectOption.context.d.ts +8 -0
  132. package/dist/cjs/components/select/parts/SelectOption.context.js +1 -0
  133. package/dist/cjs/components/select/parts/SelectOption.d.ts +6 -0
  134. package/dist/cjs/components/select/parts/SelectOption.js +1 -0
  135. package/dist/cjs/components/select/parts/SelectOptionGroup.d.ts +12 -0
  136. package/dist/cjs/components/select/parts/SelectOptionGroup.js +1 -0
  137. package/dist/cjs/components/select/parts/SelectOptionHelper.d.ts +4 -0
  138. package/dist/cjs/components/select/parts/SelectOptionHelper.js +1 -0
  139. package/dist/cjs/components/select-field/SelectField.d.ts +50 -0
  140. package/dist/cjs/components/select-field/SelectField.js +1 -0
  141. package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.context.d.ts +2 -0
  142. package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.context.js +1 -0
  143. package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.d.ts +59 -0
  144. package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.js +1 -0
  145. package/dist/cjs/components/selectable-button-group/parts/SelectableButton.d.ts +127 -0
  146. package/dist/cjs/components/selectable-button-group/parts/SelectableButton.js +1 -0
  147. package/dist/cjs/components/spinner/Spinner.d.ts +2 -2
  148. package/dist/cjs/components/spinner/Spinner.js +1 -1
  149. package/dist/cjs/components/spinner/dynamic-content.d.ts +1 -1
  150. package/dist/cjs/components/stepper/Stepper.context.d.ts +1 -1
  151. package/dist/cjs/components/tabs/Tabs.context.d.ts +1 -1
  152. package/dist/cjs/components/tabs/parts/NavigationButton.d.ts +1 -1
  153. package/dist/cjs/components/tabs/parts/Tab.d.ts +3 -1
  154. package/dist/cjs/components/tabs/parts/TabList.js +1 -1
  155. package/dist/cjs/components/text/Text.d.ts +1 -1
  156. package/dist/cjs/components/text-area/TextArea.d.ts +220 -0
  157. package/dist/cjs/components/text-area/TextArea.js +1 -0
  158. package/dist/cjs/components/text-field/TextField.d.ts +63 -0
  159. package/dist/cjs/components/text-field/TextField.js +1 -0
  160. package/dist/cjs/components/toast/Toast.context.d.ts +1 -1
  161. package/dist/cjs/components/toast/ToastManager.d.ts +1 -1
  162. package/dist/cjs/components/toast/UnityToast.d.ts +3 -3
  163. package/dist/cjs/components/toast/UnityToast.js +1 -1
  164. package/dist/cjs/components/toast/parts/ToastAction.d.ts +1 -1
  165. package/dist/cjs/components/toast/parts/ToastContent.d.ts +1 -1
  166. package/dist/cjs/components/toast/parts/ToastTitle.d.ts +1 -1
  167. package/dist/cjs/components/tooltip/Tooltip.d.ts +1 -1
  168. package/dist/cjs/components/tooltip/Tooltip.js +1 -1
  169. package/dist/cjs/docs/blocks/Cards.d.ts +7 -7
  170. package/dist/cjs/hooks/use-form.d.ts +5 -5
  171. package/dist/cjs/hooks/use-form.js +1 -0
  172. package/dist/cjs/hooks/use-resizable.d.ts +13 -0
  173. package/dist/cjs/hooks/use-resizable.js +1 -0
  174. package/dist/cjs/index.d.ts +40 -0
  175. package/dist/cjs/index.js +1 -1
  176. package/dist/cjs/providers/router/RouterProvider.d.ts +1 -1
  177. package/dist/cjs/providers/router/integrations/UnityReactRouterV5Provider.d.ts +1 -1
  178. package/dist/cjs/types/utils.d.ts +1 -0
  179. package/dist/esm/components/alert/Alert.mjs +1 -1
  180. package/dist/esm/components/anchor/Anchor.d.mts +1 -1
  181. package/dist/esm/components/app-layout/AppLayout.d.mts +6 -1
  182. package/dist/esm/components/app-layout/AppLayout.mjs +35 -23
  183. package/dist/esm/components/app-menu/AppMenu.d.mts +9 -0
  184. package/dist/esm/components/app-menu/AppMenu.mjs +14 -0
  185. package/dist/esm/components/app-menu/parts/AppMenu.context.d.mts +9 -0
  186. package/dist/esm/components/app-menu/parts/AppMenu.context.mjs +25 -0
  187. package/dist/esm/components/app-menu/parts/AppMenuFooter.d.mts +31 -0
  188. package/dist/esm/components/app-menu/parts/AppMenuFooter.mjs +224 -0
  189. package/dist/esm/components/app-menu/parts/AppMenuHeader.d.mts +9 -0
  190. package/dist/esm/components/app-menu/parts/AppMenuHeader.mjs +41 -0
  191. package/dist/esm/components/app-menu/parts/AppMenuNavContent.d.mts +5 -0
  192. package/dist/esm/components/app-menu/parts/AppMenuNavContent.mjs +23 -0
  193. package/dist/esm/components/avatar/Avatar.context.d.mts +1 -1
  194. package/dist/esm/components/avatar/parts/AvatarFallback.d.mts +1 -1
  195. package/dist/esm/components/avatar/parts/AvatarFallback.mjs +9 -8
  196. package/dist/esm/components/avatar/parts/AvatarPair.d.mts +20 -0
  197. package/dist/esm/components/avatar/parts/AvatarPair.mjs +10 -10
  198. package/dist/esm/components/avatar/utils.d.mts +1 -0
  199. package/dist/esm/components/avatar/utils.mjs +4 -0
  200. package/dist/esm/components/badge/Badge.d.mts +3 -0
  201. package/dist/esm/components/badge/Badge.mjs +12 -10
  202. package/dist/esm/components/breadcrumbs/Breadcrumbs.context.d.mts +1 -1
  203. package/dist/esm/components/breadcrumbs/parts/Breadcrumb.mjs +10 -10
  204. package/dist/esm/components/button/Button.d.mts +2 -1
  205. package/dist/esm/components/checkbox/Checkbox.d.mts +225 -0
  206. package/dist/esm/components/checkbox/Checkbox.mjs +146 -0
  207. package/dist/esm/components/checkbox/parts/CheckboxIndicator.d.mts +13 -0
  208. package/dist/esm/components/checkbox/parts/CheckboxIndicator.mjs +146 -0
  209. package/dist/esm/components/checkbox-field/CheckboxField.d.mts +74 -0
  210. package/dist/esm/components/checkbox-field/CheckboxField.mjs +61 -0
  211. package/dist/esm/components/checkbox-group/CheckboxGroup.d.mts +65 -0
  212. package/dist/esm/components/checkbox-group/CheckboxGroup.mjs +66 -0
  213. package/dist/esm/components/checkbox-group-field/CheckboxGroupField.d.mts +79 -0
  214. package/dist/esm/components/checkbox-group-field/CheckboxGroupField.mjs +54 -0
  215. package/dist/esm/components/collapsible/Collapsible.d.mts +33 -0
  216. package/dist/esm/components/collapsible/parts/CollapsibleContent.d.mts +36 -0
  217. package/dist/esm/components/collapsible/parts/CollapsibleTitle.d.mts +39 -0
  218. package/dist/esm/components/date-picker/DatePicker.d.mts +67 -0
  219. package/dist/esm/components/date-picker/DatePicker.mjs +163 -0
  220. package/dist/esm/components/date-picker/hooks/useMonthsList.d.mts +4 -0
  221. package/dist/esm/components/date-picker/hooks/useMonthsList.mjs +26 -0
  222. package/dist/esm/components/date-picker/hooks/useYearsList.d.mts +10 -0
  223. package/dist/esm/components/date-picker/hooks/useYearsList.mjs +33 -0
  224. package/dist/esm/components/date-picker/parts/DateCalendar.d.mts +9 -0
  225. package/dist/esm/components/date-picker/parts/DateCalendar.mjs +172 -0
  226. package/dist/esm/components/date-picker/parts/DateInput.d.mts +155 -0
  227. package/dist/esm/components/date-picker/parts/DateInput.mjs +124 -0
  228. package/dist/esm/components/date-picker/parts/DateSegmentSelect.d.mts +15 -0
  229. package/dist/esm/components/date-picker/parts/DateSegmentSelect.mjs +69 -0
  230. package/dist/esm/components/date-picker/utils.d.mts +12 -0
  231. package/dist/esm/components/date-picker-field/DatePickerField.d.mts +83 -0
  232. package/dist/esm/components/date-picker-field/DatePickerField.mjs +73 -0
  233. package/dist/esm/components/dialog/Dialog.d.mts +1 -1
  234. package/dist/esm/components/dialog/parts/DialogActions/DialogButton.d.mts +1 -1
  235. package/dist/esm/components/dialog/parts/DialogActions.d.mts +1 -1
  236. package/dist/esm/components/dialog/parts/DialogTitle.d.mts +1 -1
  237. package/dist/esm/components/fieldset/Fieldset.d.mts +150 -0
  238. package/dist/esm/components/fieldset/Fieldset.mjs +65 -0
  239. package/dist/esm/components/fieldset/parts/FieldGroup.d.mts +27 -0
  240. package/dist/esm/components/fieldset/parts/FieldGroup.mjs +18 -0
  241. package/dist/esm/components/form/Form.context.d.mts +1 -1
  242. package/dist/esm/components/form/Form.context.mjs +21 -14
  243. package/dist/esm/components/form/Form.mjs +5 -5
  244. package/dist/esm/components/form-field/FormField.context.d.mts +32 -14
  245. package/dist/esm/components/form-field/FormField.context.mjs +81 -0
  246. package/dist/esm/components/form-field/FormField.d.mts +40 -16
  247. package/dist/esm/components/form-field/FormField.mjs +60 -0
  248. package/dist/esm/components/form-field/parts/FormContextualLink.mjs +35 -0
  249. package/dist/esm/components/form-field/parts/FormControl.d.mts +30 -0
  250. package/dist/esm/components/form-field/parts/FormControl.mjs +50 -0
  251. package/dist/esm/components/form-field/parts/FormFeedbackText.mjs +25 -0
  252. package/dist/esm/components/form-field/parts/FormHelperText.d.mts +1 -1
  253. package/dist/esm/components/form-field/parts/FormHelperText.mjs +25 -0
  254. package/dist/esm/components/form-field/parts/FormLabel.d.mts +3 -3
  255. package/dist/esm/components/form-field/parts/FormLabel.mjs +30 -0
  256. package/dist/esm/components/form-field/utils/isFieldRequired.d.mts +8 -0
  257. package/dist/esm/components/form-field/utils/isFieldRequired.mjs +23 -0
  258. package/dist/esm/components/full-page-loader/FullPageLoader.d.mts +13 -0
  259. package/dist/esm/components/full-page-loader/FullPageLoader.mjs +26 -0
  260. package/dist/esm/components/icon/Icon.d.mts +1 -1
  261. package/dist/esm/components/icon-button/CircularIconButton.d.mts +1 -1
  262. package/dist/esm/components/icon-button/CircularIconButton.mjs +10 -11
  263. package/dist/esm/components/icon-button/IconButton.d.mts +1 -1
  264. package/dist/esm/components/icon-button/IconButton.variants.mjs +9 -9
  265. package/dist/esm/components/input/Input.d.mts +48 -0
  266. package/dist/esm/components/input/Input.mjs +148 -0
  267. package/dist/esm/components/label/Label.d.mts +17 -0
  268. package/dist/esm/components/label/Label.mjs +56 -0
  269. package/dist/esm/components/link/Link.d.mts +10 -0
  270. package/dist/esm/components/link/Link.mjs +26 -24
  271. package/dist/esm/components/menu/Menu.d.mts +1 -1
  272. package/dist/esm/components/menu/parts/MenuContent.d.mts +1 -1
  273. package/dist/esm/components/menu/parts/MenuContent.mjs +1 -1
  274. package/dist/esm/components/menu/parts/MenuHeader.d.mts +1 -1
  275. package/dist/esm/components/menu/parts/MenuItem.d.mts +2 -2
  276. package/dist/esm/components/menu/parts/MenuSeparator.d.mts +1 -1
  277. package/dist/esm/components/menu/parts/MenuTrigger.d.mts +1 -1
  278. package/dist/esm/components/multi-select/MultiSelect.d.mts +62 -0
  279. package/dist/esm/components/multi-select/MultiSelect.mjs +230 -0
  280. package/dist/esm/components/multi-select/Multiselect.context.d.mts +7 -0
  281. package/dist/esm/components/multi-select/Multiselect.context.mjs +8 -0
  282. package/dist/esm/components/multi-select/Multiselect.types.d.mts +109 -0
  283. package/dist/esm/components/multi-select/hooks/use-combobox-filter.d.mts +12 -0
  284. package/dist/esm/components/multi-select/hooks/use-combobox-filter.mjs +22 -0
  285. package/dist/esm/components/multi-select/hooks/use-multiselection-state.d.mts +14 -0
  286. package/dist/esm/components/multi-select/hooks/use-multiselection-state.mjs +47 -0
  287. package/dist/esm/components/multi-select/parts/MultiSelectButton.d.mts +16 -0
  288. package/dist/esm/components/multi-select/parts/MultiSelectButton.mjs +160 -0
  289. package/dist/esm/components/multi-select/parts/MultiSelectOptGroup.d.mts +69 -0
  290. package/dist/esm/components/multi-select/parts/MultiSelectOptGroup.mjs +34 -0
  291. package/dist/esm/components/multi-select/parts/MultiSelectOption.d.mts +20 -0
  292. package/dist/esm/components/multi-select/parts/MultiSelectOption.mjs +85 -0
  293. package/dist/esm/components/multi-select/parts/MultiSelectPopover.d.mts +7 -0
  294. package/dist/esm/components/multi-select/parts/MultiSelectPopover.mjs +65 -0
  295. package/dist/esm/components/multi-select-field/MultiSelectField.d.mts +59 -0
  296. package/dist/esm/components/multi-select-field/MultiSelectField.mjs +81 -0
  297. package/dist/esm/components/nav/Nav.d.mts +1 -1
  298. package/dist/esm/components/nav/parts/NavGroup.d.mts +1 -1
  299. package/dist/esm/components/nav/parts/NavItem.d.mts +1 -1
  300. package/dist/esm/components/segmented-button-group/SegmentedButtonGroup.d.mts +43 -0
  301. package/dist/esm/components/segmented-button-group/SegmentedButtonGroups.context.d.mts +8 -0
  302. package/dist/esm/components/segmented-button-group/parts/ToggleButton.d.mts +47 -0
  303. package/dist/esm/components/select/Select.d.mts +52 -0
  304. package/dist/esm/components/select/Select.mjs +63 -0
  305. package/dist/esm/components/select/parts/SearchInput.d.mts +2 -0
  306. package/dist/esm/components/select/parts/SearchInput.mjs +39 -0
  307. package/dist/esm/components/select/parts/SelectButton.d.mts +8 -0
  308. package/dist/esm/components/select/parts/SelectButton.mjs +87 -0
  309. package/dist/esm/components/select/parts/SelectOption.context.d.mts +8 -0
  310. package/dist/esm/components/select/parts/SelectOption.context.mjs +24 -0
  311. package/dist/esm/components/select/parts/SelectOption.d.mts +6 -0
  312. package/dist/esm/components/select/parts/SelectOption.mjs +63 -0
  313. package/dist/esm/components/select/parts/SelectOptionGroup.d.mts +12 -0
  314. package/dist/esm/components/select/parts/SelectOptionGroup.mjs +26 -0
  315. package/dist/esm/components/select/parts/SelectOptionHelper.d.mts +4 -0
  316. package/dist/esm/components/select/parts/SelectOptionHelper.mjs +20 -0
  317. package/dist/esm/components/select-field/SelectField.d.mts +50 -0
  318. package/dist/esm/components/select-field/SelectField.mjs +65 -0
  319. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.d.mts +2 -0
  320. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.mjs +5 -0
  321. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.d.mts +59 -0
  322. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.mjs +25 -0
  323. package/dist/esm/components/selectable-button-group/parts/SelectableButton.d.mts +127 -0
  324. package/dist/esm/components/selectable-button-group/parts/SelectableButton.mjs +98 -0
  325. package/dist/esm/components/spinner/Spinner.d.mts +2 -2
  326. package/dist/esm/components/spinner/Spinner.mjs +34 -27
  327. package/dist/esm/components/spinner/dynamic-content.d.mts +1 -1
  328. package/dist/esm/components/stepper/Stepper.context.d.mts +1 -1
  329. package/dist/esm/components/tabs/Tabs.context.d.mts +1 -1
  330. package/dist/esm/components/tabs/parts/NavigationButton.d.mts +1 -1
  331. package/dist/esm/components/tabs/parts/Tab.d.mts +3 -1
  332. package/dist/esm/components/tabs/parts/TabList.mjs +47 -25
  333. package/dist/esm/components/text/Text.d.mts +1 -1
  334. package/dist/esm/components/text-area/TextArea.d.mts +220 -0
  335. package/dist/esm/components/text-area/TextArea.mjs +161 -0
  336. package/dist/esm/components/text-field/TextField.d.mts +63 -0
  337. package/dist/esm/components/text-field/TextField.mjs +78 -0
  338. package/dist/esm/components/toast/Toast.context.d.mts +1 -1
  339. package/dist/esm/components/toast/ToastManager.d.mts +1 -1
  340. package/dist/esm/components/toast/UnityToast.d.mts +3 -3
  341. package/dist/esm/components/toast/UnityToast.mjs +5 -5
  342. package/dist/esm/components/toast/parts/ToastAction.d.mts +1 -1
  343. package/dist/esm/components/toast/parts/ToastContent.d.mts +1 -1
  344. package/dist/esm/components/toast/parts/ToastTitle.d.mts +1 -1
  345. package/dist/esm/components/tooltip/Tooltip.d.mts +1 -1
  346. package/dist/esm/components/tooltip/Tooltip.mjs +11 -17
  347. package/dist/esm/docs/blocks/Cards.d.mts +7 -7
  348. package/dist/esm/hooks/use-form.d.mts +5 -5
  349. package/dist/esm/hooks/use-form.mjs +32 -0
  350. package/dist/esm/hooks/use-resizable.d.mts +13 -0
  351. package/dist/esm/hooks/use-resizable.mjs +51 -0
  352. package/dist/esm/index.d.mts +40 -0
  353. package/dist/esm/index.mjs +196 -109
  354. package/dist/esm/providers/router/RouterProvider.d.mts +1 -1
  355. package/dist/esm/providers/router/RouterProvider.mjs +3 -3
  356. package/dist/esm/providers/router/integrations/UnityReactRouterV5Provider.d.mts +1 -1
  357. package/dist/esm/types/utils.d.mts +1 -0
  358. package/i18n/en-GB.json +15 -3
  359. package/i18n/es-ES.json +15 -3
  360. package/i18n/fr-FR.json +15 -3
  361. package/package.json +27 -22
  362. package/dist/cjs/components/form-field/parts/FormInput.d.ts +0 -15
  363. package/dist/cjs/components/spinner/Spinner.module.css.js +0 -1
  364. package/dist/esm/components/form-field/parts/FormInput.d.mts +0 -15
  365. package/dist/esm/components/spinner/Spinner.module.css.mjs +0 -10
  366. package/dist/style.css +0 -1
@@ -0,0 +1,150 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { VariantProps } from 'tailwind-variants';
3
+ export declare const fieldset: import('tailwind-variants').TVReturnType<{
4
+ isLegendHidden: {
5
+ true: {
6
+ legend: string;
7
+ description: string;
8
+ fieldsContainer: string;
9
+ };
10
+ false: {
11
+ legend: string;
12
+ description: string;
13
+ fieldsContainer: string;
14
+ };
15
+ };
16
+ }, {
17
+ base: string;
18
+ legend: string;
19
+ description: string;
20
+ fieldsContainer: string;
21
+ }, undefined, import('tailwind-variants/dist/config').TVConfig<{
22
+ isLegendHidden: {
23
+ true: {
24
+ legend: string;
25
+ description: string;
26
+ fieldsContainer: string;
27
+ };
28
+ false: {
29
+ legend: string;
30
+ description: string;
31
+ fieldsContainer: string;
32
+ };
33
+ };
34
+ }, {
35
+ isLegendHidden: {
36
+ true: {
37
+ legend: string;
38
+ description: string;
39
+ fieldsContainer: string;
40
+ };
41
+ false: {
42
+ legend: string;
43
+ description: string;
44
+ fieldsContainer: string;
45
+ };
46
+ };
47
+ }>, {
48
+ isLegendHidden: {
49
+ true: {
50
+ legend: string;
51
+ description: string;
52
+ fieldsContainer: string;
53
+ };
54
+ false: {
55
+ legend: string;
56
+ description: string;
57
+ fieldsContainer: string;
58
+ };
59
+ };
60
+ }, {
61
+ base: string;
62
+ legend: string;
63
+ description: string;
64
+ fieldsContainer: string;
65
+ }, import('tailwind-variants').TVReturnType<{
66
+ isLegendHidden: {
67
+ true: {
68
+ legend: string;
69
+ description: string;
70
+ fieldsContainer: string;
71
+ };
72
+ false: {
73
+ legend: string;
74
+ description: string;
75
+ fieldsContainer: string;
76
+ };
77
+ };
78
+ }, {
79
+ base: string;
80
+ legend: string;
81
+ description: string;
82
+ fieldsContainer: string;
83
+ }, undefined, import('tailwind-variants/dist/config').TVConfig<{
84
+ isLegendHidden: {
85
+ true: {
86
+ legend: string;
87
+ description: string;
88
+ fieldsContainer: string;
89
+ };
90
+ false: {
91
+ legend: string;
92
+ description: string;
93
+ fieldsContainer: string;
94
+ };
95
+ };
96
+ }, {
97
+ isLegendHidden: {
98
+ true: {
99
+ legend: string;
100
+ description: string;
101
+ fieldsContainer: string;
102
+ };
103
+ false: {
104
+ legend: string;
105
+ description: string;
106
+ fieldsContainer: string;
107
+ };
108
+ };
109
+ }>, unknown, unknown, undefined>>;
110
+ export interface FieldsetProps extends PropsWithChildren<VariantProps<typeof fieldset>> {
111
+ /**
112
+ * The legend of the fieldset.
113
+ */
114
+ legend: string;
115
+ /**
116
+ * An optional description of the fieldset.
117
+ */
118
+ description?: string;
119
+ /**
120
+ * Whether to hide the legend of the fieldset.
121
+ */
122
+ isLegendHidden?: boolean;
123
+ }
124
+ /**
125
+ * The `Fieldset` component groups related form fields together with an accessible structure.
126
+ * It provides visual organization and semantic HTML for form sections, making forms more understandable and navigable.
127
+ * @param {FieldsetProps} props - The props for the `Fieldset` component
128
+ * @see {@link FieldsetProps} for all available props
129
+ * @example
130
+ * ```tsx
131
+ * import { Fieldset } from '@payfit/unity-components'
132
+ *
133
+ * function Example() {
134
+ * return (
135
+ * <Fieldset
136
+ * legend="Personal Information"
137
+ * description="Please provide your contact details"
138
+ * isLegendHidden={false}
139
+ * >
140
+ * <TextField name="firstName" label="First name" />
141
+ * <TextField name="lastName" label="Last name" />
142
+ * </Fieldset>
143
+ * )
144
+ * }
145
+ * ```
146
+ * @remarks
147
+ * [API](https://unity-components.payfit.io/?path=/docs/forms-fieldset--docs) • [Design docs](https://www.payfit.design/24f360409/p/1151cf-form-layout)
148
+ */
149
+ declare const Fieldset: import('react').ForwardRefExoticComponent<FieldsetProps & import('react').RefAttributes<HTMLFieldSetElement>>;
150
+ export { Fieldset };
@@ -0,0 +1,65 @@
1
+ import { jsxs as f, jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as m } from "react";
3
+ import { useId as g } from "react-aria";
4
+ import { tv as b } from "tailwind-variants";
5
+ const x = b({
6
+ slots: {
7
+ base: "uy-p-0 uy-m-0 [&+&]:uy-mt-500 [&:last-of-type]:uy-mb-500",
8
+ legend: "uy-typography-h3 uy-text-content-neutral",
9
+ description: "uy-block uy-typography-body uy-mt-100 uy-text-content-neutral",
10
+ fieldsContainer: "uy-flex uy-flex-col uy-gap-250"
11
+ },
12
+ variants: {
13
+ isLegendHidden: {
14
+ true: {
15
+ legend: "uy-sr-only",
16
+ description: "uy-sr-only",
17
+ fieldsContainer: "uy-mt-0"
18
+ },
19
+ false: {
20
+ legend: "uy-block",
21
+ description: "uy-block",
22
+ fieldsContainer: "uy-mt-300"
23
+ }
24
+ }
25
+ },
26
+ defaultVariants: {
27
+ isLegendHidden: !1
28
+ }
29
+ }), h = m(
30
+ ({ children: i, ...d }, n) => {
31
+ const s = g(), { legend: l, description: e, isLegendHidden: o, ...r } = d, {
32
+ base: a,
33
+ legend: y,
34
+ description: c,
35
+ fieldsContainer: u
36
+ } = x({ isLegendHidden: o }), p = e ? `${s}-fieldset-description` : void 0;
37
+ return /* @__PURE__ */ f(
38
+ "fieldset",
39
+ {
40
+ ...r,
41
+ ref: n,
42
+ className: a(),
43
+ "aria-describedby": p,
44
+ children: [
45
+ /* @__PURE__ */ t("legend", { className: y(), children: l }),
46
+ e && /* @__PURE__ */ t(
47
+ "span",
48
+ {
49
+ id: `${s}-fieldset-description`,
50
+ "data-fieldset-slot": "description",
51
+ className: c(),
52
+ children: e
53
+ }
54
+ ),
55
+ /* @__PURE__ */ t("div", { className: u(), children: i })
56
+ ]
57
+ }
58
+ );
59
+ }
60
+ );
61
+ h.displayName = "Fieldset";
62
+ export {
63
+ h as Fieldset,
64
+ x as fieldset
65
+ };
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The `FieldGroup` component arranges form fields in a responsive grid layout within a Fieldset.
3
+ * It optimizes space by displaying fields side-by-side on larger screens while stacking them on mobile devices.
4
+ * @param {PropsWithChildren<object>} props - The props for the `FieldGroup` component
5
+ * @example
6
+ * ```tsx
7
+ * import { Fieldset, FieldGroup } from '@payfit/unity-components'
8
+ *
9
+ * function Example() {
10
+ * return (
11
+ * <Fieldset legend="Personal Information">
12
+ * <FieldGroup>
13
+ * <TextField name="firstName" label="First name" />
14
+ * <TextField name="lastName" label="Last name" />
15
+ * </FieldGroup>
16
+ * <TextField name="email" label="Email" />
17
+ * </Fieldset>
18
+ * )
19
+ * }
20
+ * ```
21
+ * @remarks
22
+ * [API](https://unity-components.payfit.io/?path=/docs/forms-fieldset-fieldgroup--docs) • [Design docs](https://www.payfit.design/24f360409/p/1151cf-form-layout)
23
+ */
24
+ declare const FieldGroup: import('react').ForwardRefExoticComponent<object & {
25
+ children?: import('react').ReactNode | undefined;
26
+ } & import('react').RefAttributes<HTMLDivElement>>;
27
+ export { FieldGroup };
@@ -0,0 +1,18 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { forwardRef as p } from "react";
3
+ const u = p(
4
+ ({ children: r, ...o }, d) => /* @__PURE__ */ i(
5
+ "div",
6
+ {
7
+ ...o,
8
+ ref: d,
9
+ role: "group",
10
+ className: "uy-grid uy-grid-cols-1 uy-gap-y-250 md:uy-grid-cols-2 md:uy-gap-x-200",
11
+ children: r
12
+ }
13
+ )
14
+ );
15
+ u.displayName = "FieldGroup";
16
+ export {
17
+ u as FieldGroup
18
+ };
@@ -7,6 +7,6 @@ interface UnityFormContextValue<TSchema extends Schema> {
7
7
  form: UseFormReturn<ZodInfer<TSchema>>;
8
8
  }
9
9
  export declare const UnityFormContext: import('react').Context<UnityFormContextValue<Schema> | null>;
10
- export declare function UnityFormProvider<TSchema extends Schema>({ children, schema, form, }: PropsWithChildren<UnityFormContextValue<TSchema>>): JSX.Element;
10
+ export declare function UnityFormProvider<TSchema extends Schema>({ children, schema, form, }: PropsWithChildren<UnityFormContextValue<TSchema>>): import("react/jsx-runtime").JSX.Element;
11
11
  export declare function useUnityFormProvider<TSchema extends Schema>(): UnityFormContextValue<TSchema>;
12
12
  export {};
@@ -1,23 +1,30 @@
1
- import { jsx as e } from "react/jsx-runtime";
2
- import { createContext as n } from "react";
3
- const i = n(null);
4
- function x({
5
- children: r,
6
- schema: o,
7
- form: t
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { createContext as i, useContext as m } from "react";
3
+ const o = i(null);
4
+ function c({
5
+ children: t,
6
+ schema: r,
7
+ form: e
8
8
  }) {
9
- return /* @__PURE__ */ e(
10
- i.Provider,
9
+ return /* @__PURE__ */ n(
10
+ o.Provider,
11
11
  {
12
12
  value: {
13
- schema: o,
14
- form: t
13
+ schema: r,
14
+ form: e
15
15
  },
16
- children: r
16
+ children: t
17
17
  }
18
18
  );
19
19
  }
20
+ function x() {
21
+ const t = m(o);
22
+ if (!t)
23
+ throw new Error("useFormContext must be used within a Form component");
24
+ return t;
25
+ }
20
26
  export {
21
- i as UnityFormContext,
22
- x as UnityFormProvider
27
+ o as UnityFormContext,
28
+ c as UnityFormProvider,
29
+ x as useUnityFormProvider
23
30
  };
@@ -1,11 +1,11 @@
1
1
  import { jsx as i, jsxs as b, Fragment as g } from "react/jsx-runtime";
2
- import { lazy as u, forwardRef as j, useMemo as x, Suspense as D } from "react";
2
+ import { forwardRef as u, useMemo as j, Suspense as x, lazy as D } from "react";
3
3
  import { Form as k } from "react-aria-components";
4
4
  import { FormProvider as w } from "react-hook-form";
5
5
  import { UnityFormProvider as O } from "./Form.context.mjs";
6
- const P = u(
6
+ const P = D(
7
7
  () => import("@hookform/devtools").then((t) => ({ default: t.DevTool }))
8
- ), S = j(
8
+ ), S = u(
9
9
  ({
10
10
  form: t,
11
11
  schema: n,
@@ -18,7 +18,7 @@ const P = u(
18
18
  debug: p = !1,
19
19
  ...h
20
20
  }, v) => {
21
- const y = x(() => {
21
+ const y = j(() => {
22
22
  const e = t.formState.errors;
23
23
  if (!Object.keys(e).length) return;
24
24
  const o = {};
@@ -35,7 +35,7 @@ const P = u(
35
35
  })(e);
36
36
  };
37
37
  return /* @__PURE__ */ i(O, { schema: n, form: t, children: /* @__PURE__ */ b(w, { ...t, children: [
38
- p && /* @__PURE__ */ i(D, { fallback: () => /* @__PURE__ */ i(g, {}), children: /* @__PURE__ */ i(P, { control: t.control }) }),
38
+ p && /* @__PURE__ */ i(x, { fallback: /* @__PURE__ */ i(g, {}), children: /* @__PURE__ */ i(P, { control: t.control }) }),
39
39
  /* @__PURE__ */ i(
40
40
  k,
41
41
  {
@@ -1,20 +1,38 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { TextFieldProps } from 'react-aria-components';
3
- import { FieldError, FieldPath, FieldValues } from 'react-hook-form';
2
+ import { FieldPath, FieldValues } from 'react-hook-form';
4
3
  interface FormFieldContextValue<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> {
4
+ id: string;
5
5
  name: TName;
6
- value: TextFieldProps['value'];
7
- type: TextFieldProps['type'];
8
- isRequired: boolean;
9
- requiredVariant: 'required' | 'optional';
10
- isInvalid: boolean;
11
- isLoading: boolean;
12
- isReadOnly: boolean;
13
- isDisabled: boolean;
14
- validationError?: FieldError;
15
- resetField: (() => void) | undefined;
6
+ isRequired?: boolean;
7
+ isInvalid?: boolean;
8
+ isLoading?: boolean;
9
+ isReadOnly?: boolean;
10
+ isDisabled?: boolean;
11
+ hasHelperText?: boolean;
12
+ hasContextualLink?: boolean;
16
13
  }
17
14
  export declare const FormFieldContext: import('react').Context<FormFieldContextValue<FieldValues, string>>;
18
- export declare function FormFieldProvider({ children, name, value, resetField, type, isRequired, requiredVariant, isInvalid, isLoading, isReadOnly, isDisabled, validationError, }: PropsWithChildren<FormFieldContextValue>): JSX.Element;
19
- export declare function useFormField(): FormFieldContextValue<FieldValues, string>;
15
+ export declare function FormFieldProvider({ children, id, name, isRequired, isInvalid, isLoading, isReadOnly, isDisabled, hasHelperText, hasContextualLink, }: PropsWithChildren<FormFieldContextValue>): import("react/jsx-runtime").JSX.Element;
16
+ export declare function useFormField(): {
17
+ fieldState: {
18
+ isRequired: boolean | undefined;
19
+ isInvalid: boolean | undefined;
20
+ isLoading: boolean | undefined;
21
+ isReadOnly: boolean | undefined;
22
+ isDisabled: boolean | undefined;
23
+ isDirty: boolean;
24
+ isTouched: boolean;
25
+ error?: import('react-hook-form').FieldError;
26
+ };
27
+ formState: import('react-hook-form').UseFormStateReturn<FieldValues>;
28
+ id: string;
29
+ name: string;
30
+ hasHelperText: boolean | undefined;
31
+ hasContextualLink: boolean | undefined;
32
+ formLabelId: string;
33
+ formItemId: string;
34
+ formDescriptionId: string | undefined;
35
+ formMessageId: string;
36
+ formContextualLinkId: string | undefined;
37
+ };
20
38
  export {};
@@ -0,0 +1,81 @@
1
+ import { jsx as F } from "react/jsx-runtime";
2
+ import { createContext as x, useContext as p } from "react";
3
+ import { useFormContext as I, useFormState as v } from "react-hook-form";
4
+ const u = x({
5
+ id: "",
6
+ name: ""
7
+ });
8
+ function $({
9
+ children: o,
10
+ id: i,
11
+ name: t,
12
+ isRequired: s,
13
+ isInvalid: r,
14
+ isLoading: e,
15
+ isReadOnly: n,
16
+ isDisabled: d,
17
+ hasHelperText: m,
18
+ hasContextualLink: a
19
+ }) {
20
+ return /* @__PURE__ */ F(
21
+ u.Provider,
22
+ {
23
+ value: {
24
+ id: i,
25
+ name: t,
26
+ isRequired: s,
27
+ isInvalid: r,
28
+ isLoading: e,
29
+ isReadOnly: n,
30
+ isDisabled: d,
31
+ hasHelperText: m,
32
+ hasContextualLink: a
33
+ },
34
+ children: o
35
+ }
36
+ );
37
+ }
38
+ function k() {
39
+ const o = p(u), { getFieldState: i } = I(), t = v({ name: o.name }), { invalid: s, ...r } = i(
40
+ o.name,
41
+ t
42
+ ), {
43
+ id: e,
44
+ isRequired: n,
45
+ isInvalid: d,
46
+ isLoading: m,
47
+ isReadOnly: a,
48
+ isDisabled: c,
49
+ hasHelperText: l,
50
+ hasContextualLink: f
51
+ } = o;
52
+ if (!o)
53
+ throw new Error("useFormField should be used within <FormField> component");
54
+ return {
55
+ ...{
56
+ id: e,
57
+ name: o.name,
58
+ hasHelperText: l,
59
+ hasContextualLink: f,
60
+ formLabelId: `${e}-form-field-label`,
61
+ formItemId: `${e}-form-item`,
62
+ formDescriptionId: l ? `${e}-form-field-description` : void 0,
63
+ formMessageId: `${e}-form-field-feedback-text`,
64
+ formContextualLinkId: f ? `${e}-form-field-contextual-link` : void 0
65
+ },
66
+ fieldState: {
67
+ ...r,
68
+ isRequired: n,
69
+ isInvalid: d,
70
+ isLoading: m,
71
+ isReadOnly: a,
72
+ isDisabled: c
73
+ },
74
+ formState: t
75
+ };
76
+ }
77
+ export {
78
+ u as FormFieldContext,
79
+ $ as FormFieldProvider,
80
+ k as useFormField
81
+ };
@@ -1,16 +1,12 @@
1
- import { TextFieldProps } from 'react-aria-components';
1
+ import { default as React } from 'react';
2
2
  import { Control, FieldPath, FieldValues } from 'react-hook-form';
3
- export interface FormFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends TextFieldProps {
3
+ export interface FormFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends React.PropsWithChildren<object> {
4
4
  /** The form control from react-hook-form */
5
5
  control: Control<TFieldValues>;
6
6
  /** The name of the field in the form */
7
7
  name: TName;
8
- /** The type of the field */
9
- type: TextFieldProps['type'];
10
8
  /** Whether the field is required */
11
9
  isRequired?: boolean;
12
- /** The variant of the required indicator */
13
- requiredVariant?: 'required' | 'optional';
14
10
  /** Whether the field is in an invalid state */
15
11
  isInvalid?: boolean;
16
12
  /** Whether the field is in a loading state */
@@ -19,19 +15,47 @@ export interface FormFieldProps<TFieldValues extends FieldValues = FieldValues,
19
15
  isDisabled?: boolean;
20
16
  /** Whether the field is read-only */
21
17
  isReadOnly?: boolean;
18
+ /** Additional class name */
19
+ className?: string;
22
20
  }
23
21
  /**
24
22
  * The `FormField` component represents a single field in a Unity form. It provides a set of features to manage the state of the field and its interactions, as well as a deep integration with its parent `Form` component.
25
- *
26
23
  * Use this component to create a field in a form with a schema-based approach. It will only work if it is a child of a [`Form` component](/?path=/docs/forms-formfield--docs).
24
+ * @param {FormFieldProps} props - component props to control the field name, and the reference to its form control
25
+ * @see {@link FormFieldProps} for all available props
26
+ * @example
27
+ * ```tsx
28
+ * import { Button, Input, FormLabel, FormControl, FormHelperText, FormFeedbackText } from '@payfit/unity-components'
29
+ * import { useUnityForm } from '@payfit/unity-components'
30
+ * import { z } from 'zod'
31
+ *
32
+ * const loginSchema = z.object({
33
+ * email: z.string().email('Invalid email address'),
34
+ * password: z.string().min(8, 'Password must be at least 8 characters'),
35
+ * })
36
+ *
37
+ * const MyForm = () => {
38
+ * const { Form, FormField } = useUnityForm(loginSchema)
27
39
  *
28
- * A `FormField` is composed of the following parts:
29
- * - `FormLabel`: The label of the field.
30
- * - `FormHelperText`: A helper text that gives additional context to the field.
31
- * - `FormFeedbackText`: An error message that appears when the field is in an invalid state.
32
- * - `FormInput`: The input element of the field.
40
+ * const submitForm = (values: z.infer<typeof loginSchema>) => {
41
+ * console.log(values)
42
+ * }
43
+ *
44
+ * return (
45
+ * <Form action={submitForm}>
46
+ * <FormField name="email">
47
+ * <FormLabel>Email</FormLabel>
48
+ * <FormHelperText>Enter your primary email address</FormHelperText>
49
+ * <FormControl>
50
+ * <Input type="email"/>
51
+ * </FormControl>
52
+ * <FormFeedbackText/>
53
+ * </FormField>
54
+ * </Form>
55
+ * )
56
+ * }
57
+ * ```
58
+ * @note Use this component directly from the `useUnityForm` hook to have type-safety based on the form schema.
33
59
  */
34
- export declare function FormField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>({ children, control, type, name, isRequired: isRequiredProp, requiredVariant, isInvalid, isLoading, isDisabled: isDisabledProp, isReadOnly, }: FormFieldProps<TFieldValues, TName>): JSX.Element;
35
- export declare namespace FormField {
36
- var displayName: string;
37
- }
60
+ declare const FormField: React.ForwardRefExoticComponent<FormFieldProps<FieldValues, string> & React.RefAttributes<HTMLDivElement>>;
61
+ export { FormField };
@@ -0,0 +1,60 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import d, { forwardRef as T, useMemo as p } from "react";
3
+ import { useController as I } from "react-hook-form";
4
+ import { tv as P } from "tailwind-variants";
5
+ import g from "../../hooks/use-id.mjs";
6
+ import { useUnityFormProvider as j } from "../form/Form.context.mjs";
7
+ import { FormFieldProvider as D } from "./FormField.context.mjs";
8
+ import { FormContextualLink as E } from "./parts/FormContextualLink.mjs";
9
+ import { FormHelperText as N } from "./parts/FormHelperText.mjs";
10
+ import { isFieldRequired as _ } from "./utils/isFieldRequired.mjs";
11
+ const w = P({
12
+ slots: {
13
+ base: "uy-flex uy-flex-col uy-gap-100"
14
+ }
15
+ }), M = T(
16
+ ({
17
+ children: o,
18
+ control: f,
19
+ name: r,
20
+ isInvalid: u,
21
+ isLoading: c,
22
+ isReadOnly: x,
23
+ className: F,
24
+ isRequired: h,
25
+ isDisabled: y
26
+ }, b) => {
27
+ const C = g(), { schema: t } = j(), {
28
+ fieldState: { invalid: v },
29
+ formState: i
30
+ } = I({ name: r, control: f }), R = p(
31
+ () => _(t, r),
32
+ [t, r]
33
+ ), { hasHelperText: k, hasContextualLink: q } = p(() => {
34
+ let s = !1, l = !1;
35
+ const m = (S) => {
36
+ d.Children.forEach(S, (n) => {
37
+ if (!d.isValidElement(n)) return;
38
+ const e = n;
39
+ e.type === N ? s = !0 : e.type === E && (l = !0), e.props && typeof e.props == "object" && "children" in e.props && m(e.props.children);
40
+ });
41
+ };
42
+ return m(o), { hasHelperText: s, hasContextualLink: l };
43
+ }, [o]), H = {
44
+ name: r,
45
+ isLoading: c,
46
+ isReadOnly: x,
47
+ hasHelperText: k,
48
+ hasContextualLink: q,
49
+ id: C,
50
+ isRequired: h ?? R,
51
+ isInvalid: u ?? v,
52
+ isDisabled: y ?? (i.isSubmitting || i.disabled)
53
+ }, { base: L } = w();
54
+ return /* @__PURE__ */ a("div", { ref: b, className: L({ className: F }), children: /* @__PURE__ */ a(D, { ...H, children: o }) });
55
+ }
56
+ );
57
+ M.displayName = "FormField";
58
+ export {
59
+ M as FormField
60
+ };
@@ -0,0 +1,35 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as m } from "react";
3
+ import { Button as l } from "react-aria-components";
4
+ import { Link as e } from "../../link/Link.mjs";
5
+ import { Text as u } from "../../text/Text.mjs";
6
+ import { useFormField as s } from "../FormField.context.mjs";
7
+ const d = m(({ children: o, href: r, onPress: i }, a) => {
8
+ const { formContextualLinkId: n } = s();
9
+ return r ? /* @__PURE__ */ t(
10
+ e,
11
+ {
12
+ id: n,
13
+ color: "secondary",
14
+ variant: "standalone",
15
+ "data-unity-slot": "contextual-link",
16
+ href: r,
17
+ ref: a,
18
+ children: /* @__PURE__ */ t(u, { variant: "actionSmall", children: o })
19
+ }
20
+ ) : /* @__PURE__ */ t(
21
+ l,
22
+ {
23
+ id: n,
24
+ onPress: i,
25
+ "data-unity-slot": "contextual-link",
26
+ className: "uy-typography-body-small uy-w-fit",
27
+ ref: a,
28
+ children: o
29
+ }
30
+ );
31
+ });
32
+ d.displayName = "FormContextualLink";
33
+ export {
34
+ d as FormContextualLink
35
+ };