@payfit/unity-components 2.0.0 → 2.1.4

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 (353) hide show
  1. package/dist/esm/components/alert/Alert.js +41 -29
  2. package/dist/esm/components/alert/parts/AlertTitle.js +8 -8
  3. package/dist/esm/components/app-layout/AppLayout.d.ts +2 -0
  4. package/dist/esm/components/app-menu/parts/AppMenuFooter.js +23 -23
  5. package/dist/esm/components/app-menu/parts/AppMenuHeader.d.ts +1 -1
  6. package/dist/esm/components/app-menu/parts/AppMenuHeader.js +9 -9
  7. package/dist/esm/components/autocomplete/Autocomplete.d.ts +0 -9
  8. package/dist/esm/components/autocomplete/Autocomplete.js +54 -57
  9. package/dist/esm/components/autocomplete/parts/AutocompleteItem.js +8 -8
  10. package/dist/esm/components/avatar/Avatar.variants.js +1 -1
  11. package/dist/esm/components/avatar/parts/AvatarFallback.js +26 -27
  12. package/dist/esm/components/badge/Badge.js +1 -1
  13. package/dist/esm/components/breadcrumbs/Breadcrumbs.variant.js +1 -1
  14. package/dist/esm/components/button/Button.js +6 -6
  15. package/dist/esm/components/button/Button.variants.d.ts +1 -0
  16. package/dist/esm/components/button/Button.variants.js +22 -15
  17. package/dist/esm/components/card/Card.context.d.ts +5 -0
  18. package/dist/esm/components/card/Card.context.js +14 -0
  19. package/dist/esm/components/card/Card.d.ts +210 -0
  20. package/dist/esm/components/card/Card.js +93 -0
  21. package/dist/esm/components/card/parts/CardContent.d.ts +37 -0
  22. package/dist/esm/components/card/parts/CardContent.js +8 -0
  23. package/dist/esm/components/card/parts/CardTitle.d.ts +55 -0
  24. package/dist/esm/components/card/parts/CardTitle.js +33 -0
  25. package/dist/esm/components/checkbox/Checkbox.js +38 -30
  26. package/dist/esm/components/checkbox/Checkbox.variants.d.ts +9 -9
  27. package/dist/esm/components/checkbox/Checkbox.variants.js +23 -7
  28. package/dist/esm/components/checkbox/TanstackCheckbox.d.ts +28 -0
  29. package/dist/esm/components/checkbox/TanstackCheckbox.js +51 -0
  30. package/dist/esm/components/checkbox/parts/CheckboxIndicator.js +7 -7
  31. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +2 -0
  32. package/dist/esm/components/checkbox-field/TanstackCheckboxField.d.ts +14 -0
  33. package/dist/esm/components/checkbox-field/TanstackCheckboxField.js +40 -0
  34. package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.d.ts +4 -0
  35. package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.js +37 -0
  36. package/dist/esm/components/checkbox-group-field/CheckboxGroupField.d.ts +2 -0
  37. package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.d.ts +72 -0
  38. package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.js +40 -0
  39. package/dist/esm/components/client-side-pagination/parts/PaginationNavButton.js +1 -1
  40. package/dist/esm/components/client-side-pagination/parts/RawPaginationLink.js +10 -10
  41. package/dist/esm/components/collapsible/parts/CollapsibleContent.js +5 -5
  42. package/dist/esm/components/collapsible/parts/CollapsibleTitle.js +8 -8
  43. package/dist/esm/components/data-table/DataTable.d.ts +109 -16
  44. package/dist/esm/components/data-table/DataTable.js +107 -93
  45. package/dist/esm/components/data-table/mocks/employee-data.d.ts +1 -0
  46. package/dist/esm/components/date-calendar/DateCalendar.js +1 -1
  47. package/dist/esm/components/date-calendar/parts/DateSegmentSelect.js +1 -1
  48. package/dist/esm/components/date-picker/DatePicker.d.ts +1 -1
  49. package/dist/esm/components/date-picker/DatePicker.js +59 -50
  50. package/dist/esm/components/date-picker/TanstackDatePicker.d.ts +22 -0
  51. package/dist/esm/components/date-picker/TanstackDatePicker.js +53 -0
  52. package/dist/esm/components/date-picker/parts/DateInput.js +4 -4
  53. package/dist/esm/components/date-picker-field/DatePickerField.d.ts +2 -0
  54. package/dist/esm/components/date-picker-field/TanstackDatePickerField.d.ts +71 -0
  55. package/dist/esm/components/date-picker-field/TanstackDatePickerField.js +41 -0
  56. package/dist/esm/components/definition-list/DefinitionList.context.d.ts +19 -0
  57. package/dist/esm/components/definition-list/DefinitionList.d.ts +24 -0
  58. package/dist/esm/components/definition-list/parts/DefinitionItem.d.ts +25 -0
  59. package/dist/esm/components/dialog/Dialog.d.ts +34 -22
  60. package/dist/esm/components/dialog/Dialog.js +90 -52
  61. package/dist/esm/components/dialog/parts/DialogActions.js +6 -6
  62. package/dist/esm/components/dialog/parts/DialogTitle.js +7 -4
  63. package/dist/esm/components/dialog/test-utils.d.ts +28 -0
  64. package/dist/esm/components/dialog/test-utils.js +78 -0
  65. package/dist/esm/components/error-state/ErrorState.js +7 -7
  66. package/dist/esm/components/filter/Filter.controls.d.ts +192 -0
  67. package/dist/esm/components/filter/Filter.controls.js +45 -0
  68. package/dist/esm/components/filter/Filter.d.ts +189 -0
  69. package/dist/esm/components/filter/Filter.js +147 -0
  70. package/dist/esm/components/filter/Filter.types.d.ts +121 -0
  71. package/dist/esm/components/filter/hooks/useFilterIds.d.ts +49 -0
  72. package/dist/esm/components/filter/hooks/useFilterIds.js +13 -0
  73. package/dist/esm/components/filter/hooks/useFilterState.d.ts +74 -0
  74. package/dist/esm/components/filter/hooks/useFilterState.js +23 -0
  75. package/dist/esm/components/filter/hooks/useFilterValue.d.ts +61 -0
  76. package/dist/esm/components/filter/hooks/useFilterValue.js +31 -0
  77. package/dist/esm/components/filter/parts/FilterButton.d.ts +75 -0
  78. package/dist/esm/components/filter/parts/FilterButton.js +55 -0
  79. package/dist/esm/components/filter/parts/FilterLabel.d.ts +96 -0
  80. package/dist/esm/components/filter/parts/FilterLabel.js +57 -0
  81. package/dist/esm/components/filter/parts/FilterPopover.d.ts +95 -0
  82. package/dist/esm/components/filter/parts/FilterPopover.js +79 -0
  83. package/dist/esm/components/filter/utils/value-formatters.d.ts +62 -0
  84. package/dist/esm/components/filter/utils/value-formatters.js +14 -0
  85. package/dist/esm/components/filter-toolbar/FilterToolbar.d.ts +110 -0
  86. package/dist/esm/components/filter-toolbar/FilterToolbar.js +172 -0
  87. package/dist/esm/components/filter-toolbar/FilterToolbar.types.d.ts +119 -0
  88. package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.d.ts +96 -0
  89. package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.js +132 -0
  90. package/dist/esm/components/filter-toolbar/parts/AddFilter.d.ts +63 -0
  91. package/dist/esm/components/filter-toolbar/parts/AddFilter.js +107 -0
  92. package/dist/esm/components/filter-toolbar/parts/AddFilterItem.d.ts +18 -0
  93. package/dist/esm/components/filter-toolbar/parts/AddFilterItem.js +18 -0
  94. package/dist/esm/components/filter-toolbar/utils/filter-adapters.d.ts +93 -0
  95. package/dist/esm/components/filter-toolbar/utils/filter-adapters.js +88 -0
  96. package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.d.ts +24 -0
  97. package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.js +19 -0
  98. package/dist/esm/components/form/Form.d.ts +2 -0
  99. package/dist/esm/components/form/TanstackForm.d.ts +24 -0
  100. package/dist/esm/components/form/TanstackForm.js +29 -0
  101. package/dist/esm/components/form-field/FormField.d.ts +2 -0
  102. package/dist/esm/components/form-field/TanstackFormField.context.d.ts +10 -0
  103. package/dist/esm/components/form-field/TanstackFormField.context.js +14 -0
  104. package/dist/esm/components/form-field/TanstackFormField.d.ts +49 -0
  105. package/dist/esm/components/form-field/TanstackFormField.js +46 -0
  106. package/dist/esm/components/form-field/parts/FormControl.d.ts +2 -0
  107. package/dist/esm/components/form-field/parts/FormFeedbackText.d.ts +2 -0
  108. package/dist/esm/components/form-field/parts/FormHelperText.d.ts +2 -0
  109. package/dist/esm/components/form-field/parts/FormLabel.d.ts +2 -0
  110. package/dist/esm/components/form-field/parts/RawFormContextualLink.d.ts +2 -0
  111. package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.d.ts +12 -0
  112. package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.js +32 -0
  113. package/dist/esm/components/form-field/parts/TanstackFormHelperText.d.ts +11 -0
  114. package/dist/esm/components/form-field/parts/TanstackFormHelperText.js +25 -0
  115. package/dist/esm/components/form-field/parts/TanstackFormLabel.d.ts +8 -0
  116. package/dist/esm/components/form-field/parts/TanstackFormLabel.js +26 -0
  117. package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.d.ts +26 -0
  118. package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.js +45 -0
  119. package/dist/esm/components/icon-button/CircularIconButton.d.ts +9 -9
  120. package/dist/esm/components/icon-button/CircularIconButton.js +53 -36
  121. package/dist/esm/components/icon-button/IconButton.variants.d.ts +1 -0
  122. package/dist/esm/components/icon-button/IconButton.variants.js +44 -28
  123. package/dist/esm/components/input/Input.js +36 -35
  124. package/dist/esm/components/input/TanstackInput.d.ts +22 -0
  125. package/dist/esm/components/input/TanstackInput.js +38 -0
  126. package/dist/esm/components/label/Label.js +12 -12
  127. package/dist/esm/components/link/RawLink.js +38 -31
  128. package/dist/esm/components/list-view/ListView.d.ts +56 -0
  129. package/dist/esm/components/list-view/ListView.fixtures.d.ts +20 -0
  130. package/dist/esm/components/list-view/ListView.js +44 -0
  131. package/dist/esm/components/list-view/parts/ListViewItemLabel.d.ts +34 -0
  132. package/dist/esm/components/list-view/parts/ListViewItemLabel.js +22 -0
  133. package/dist/esm/components/list-view/parts/ListViewItemText.d.ts +33 -0
  134. package/dist/esm/components/list-view/parts/ListViewItemText.js +22 -0
  135. package/dist/esm/components/list-view/parts/ListViewSection.d.ts +14 -0
  136. package/dist/esm/components/list-view/parts/ListViewSection.js +21 -0
  137. package/dist/esm/components/list-view/parts/RawListViewItem.d.ts +102 -0
  138. package/dist/esm/components/list-view/parts/RawListViewItem.js +80 -0
  139. package/dist/esm/components/multi-select/MultiSelect.d.ts +5 -7
  140. package/dist/esm/components/multi-select/MultiSelect.js +199 -176
  141. package/dist/esm/components/multi-select/MultiselectTypes.d.ts +114 -0
  142. package/dist/esm/components/multi-select/TanstackMultiSelect.d.ts +7 -0
  143. package/dist/esm/components/multi-select/TanstackMultiSelect.js +41 -0
  144. package/dist/esm/components/multi-select/parts/MultiSelectButton.d.ts +2 -0
  145. package/dist/esm/components/multi-select/parts/MultiSelectButton.js +62 -46
  146. package/dist/esm/components/multi-select/parts/MultiSelectPopover.js +15 -15
  147. package/dist/esm/components/multi-select-field/MultiSelectField.d.ts +45 -12
  148. package/dist/esm/components/multi-select-field/MultiSelectField.js +56 -66
  149. package/dist/esm/components/multi-select-field/TanstackMultiSelectField.d.ts +92 -0
  150. package/dist/esm/components/multi-select-field/TanstackMultiSelectField.js +48 -0
  151. package/dist/esm/components/multi-select-field/test-utils.d.ts +17 -0
  152. package/dist/esm/components/multi-select-field/test-utils.js +45 -0
  153. package/dist/esm/components/nav/parts/RawNavItem.js +6 -6
  154. package/dist/esm/components/navigation-card/NavigationCard.context.d.ts +31 -0
  155. package/dist/esm/components/navigation-card/NavigationCard.context.js +13 -0
  156. package/dist/esm/components/navigation-card/NavigationCard.d.ts +46 -0
  157. package/dist/esm/components/navigation-card/NavigationCard.js +62 -0
  158. package/dist/esm/components/navigation-card/NavigationCard.types.d.ts +37 -0
  159. package/dist/esm/components/navigation-card/NavigationCard.variants.d.ts +1147 -0
  160. package/dist/esm/components/navigation-card/NavigationCard.variants.js +164 -0
  161. package/dist/esm/components/navigation-card/parts/NavigationCardDescription.d.ts +39 -0
  162. package/dist/esm/components/navigation-card/parts/NavigationCardDescription.js +22 -0
  163. package/dist/esm/components/navigation-card/parts/NavigationCardGroup.d.ts +146 -0
  164. package/dist/esm/components/navigation-card/parts/NavigationCardGroup.js +93 -0
  165. package/dist/esm/components/navigation-card/parts/NavigationCardLabel.d.ts +32 -0
  166. package/dist/esm/components/navigation-card/parts/NavigationCardLabel.js +24 -0
  167. package/dist/esm/components/number-field/NumberField.d.ts +2 -0
  168. package/dist/esm/components/number-field/TanstackNumberField.d.ts +74 -0
  169. package/dist/esm/components/number-field/TanstackNumberField.js +44 -0
  170. package/dist/esm/components/number-input/NumberInput.js +31 -29
  171. package/dist/esm/components/number-input/TanstackNumberInput.d.ts +58 -0
  172. package/dist/esm/components/number-input/TanstackNumberInput.js +38 -0
  173. package/dist/esm/components/page/Page.js +12 -11
  174. package/dist/esm/components/pagination/parts/RawPaginationLink.js +22 -22
  175. package/dist/esm/components/pagination/parts/RawPaginationNext.js +13 -13
  176. package/dist/esm/components/pagination/parts/RawPaginationPrevious.js +10 -10
  177. package/dist/esm/components/payfit-brand/PayFitBrand.d.ts +4 -0
  178. package/dist/esm/components/payfit-brand/PayFitBrand.js +30 -22
  179. package/dist/esm/components/payfit-brand/PayFitPreprod.js +25 -25
  180. package/dist/esm/components/phone-number/PhoneNumberInput.d.ts +67 -0
  181. package/dist/esm/components/phone-number/PhoneNumberInput.js +322 -0
  182. package/dist/esm/components/phone-number/TanstackPhoneNumberInput.d.ts +64 -0
  183. package/dist/esm/components/phone-number/TanstackPhoneNumberInput.js +33 -0
  184. package/dist/esm/components/phone-number/parts/PhoneNumberItem.d.ts +42 -0
  185. package/dist/esm/components/phone-number/parts/PhoneNumberItem.js +68 -0
  186. package/dist/esm/components/phone-number/unknownFlag.svg.js +4 -0
  187. package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.d.ts +15 -0
  188. package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.js +32 -0
  189. package/dist/esm/components/pill/Pill.d.ts +2 -2
  190. package/dist/esm/components/pill/Pill.js +8 -8
  191. package/dist/esm/components/popover/Popover.js +6 -6
  192. package/dist/esm/components/promo-dialog/PromoDialog.d.ts +149 -0
  193. package/dist/esm/components/promo-dialog/PromoDialog.js +219 -0
  194. package/dist/esm/components/promo-dialog/parts/PromoDialogActions.d.ts +44 -0
  195. package/dist/esm/components/promo-dialog/parts/PromoDialogActions.js +29 -0
  196. package/dist/esm/components/promo-dialog/parts/PromoDialogContent.d.ts +43 -0
  197. package/dist/esm/components/promo-dialog/parts/PromoDialogContent.js +20 -0
  198. package/dist/esm/components/promo-dialog/parts/PromoDialogHero.d.ts +47 -0
  199. package/dist/esm/components/promo-dialog/parts/PromoDialogHero.js +25 -0
  200. package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.d.ts +53 -0
  201. package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.js +21 -0
  202. package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.d.ts +6 -0
  203. package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.js +18 -0
  204. package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.d.ts +13 -0
  205. package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.js +43 -0
  206. package/dist/esm/components/radio-button-group/parts/RadioButton.d.ts +29 -11
  207. package/dist/esm/components/radio-button-group/parts/RadioButton.js +53 -51
  208. package/dist/esm/components/radio-button-group-field/RadioButtonGroupField.d.ts +2 -0
  209. package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.d.ts +13 -0
  210. package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.js +38 -0
  211. package/dist/esm/components/search/Search.js +46 -46
  212. package/dist/esm/components/segmented-button-group/parts/ToggleButton.js +5 -5
  213. package/dist/esm/components/select/Select.d.ts +5 -4
  214. package/dist/esm/components/select/Select.js +53 -45
  215. package/dist/esm/components/select/TanstackSelect.d.ts +80 -0
  216. package/dist/esm/components/select/TanstackSelect.js +34 -0
  217. package/dist/esm/components/select/parts/SearchInput.d.ts +4 -1
  218. package/dist/esm/components/select/parts/SearchInput.js +49 -31
  219. package/dist/esm/components/select/parts/SelectButton.js +19 -17
  220. package/dist/esm/components/select-field/SelectField.d.ts +2 -0
  221. package/dist/esm/components/select-field/SelectField.js +8 -9
  222. package/dist/esm/components/select-field/TanstackSelectField.d.ts +124 -0
  223. package/dist/esm/components/select-field/TanstackSelectField.js +44 -0
  224. package/dist/esm/components/select-list/SelectList.d.ts +95 -0
  225. package/dist/esm/components/select-list/SelectList.js +79 -0
  226. package/dist/esm/components/select-list/SelectList.types.d.ts +29 -0
  227. package/dist/esm/components/select-list/constants.d.ts +36 -0
  228. package/dist/esm/components/select-list/constants.js +29 -0
  229. package/dist/esm/components/select-list/helpers.d.ts +42 -0
  230. package/dist/esm/components/select-list/helpers.js +48 -0
  231. package/dist/esm/components/select-list/hooks/useControlledSelection.d.ts +23 -0
  232. package/dist/esm/components/select-list/hooks/useControlledSelection.js +16 -0
  233. package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.d.ts +23 -0
  234. package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.js +31 -0
  235. package/dist/esm/components/select-list/parts/SelectListEmptyState.d.ts +8 -0
  236. package/dist/esm/components/select-list/parts/SelectListEmptyState.js +25 -0
  237. package/dist/esm/components/select-list/parts/SelectListOptGroup.d.ts +118 -0
  238. package/dist/esm/components/select-list/parts/SelectListOptGroup.js +28 -0
  239. package/dist/esm/components/select-list/parts/SelectListOption.d.ts +24 -0
  240. package/dist/esm/components/select-list/parts/SelectListOption.js +72 -0
  241. package/dist/esm/components/select-list/parts/SelectListSearchInput.d.ts +2 -0
  242. package/dist/esm/components/select-list/parts/SelectListSearchInput.js +43 -0
  243. package/dist/esm/components/select-list/parts/SelectedItemsSection.d.ts +54 -0
  244. package/dist/esm/components/select-list/parts/SelectedItemsSection.js +35 -0
  245. package/dist/esm/components/select-list/utils/partition.d.ts +13 -0
  246. package/dist/esm/components/select-list/utils/partition.js +9 -0
  247. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.d.ts +1 -5
  248. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.d.ts +6 -1
  249. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.js +23 -23
  250. package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.d.ts +27 -0
  251. package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.js +34 -0
  252. package/dist/esm/components/selectable-button-group/parts/SelectableButton.d.ts +1 -16
  253. package/dist/esm/components/selectable-button-group/parts/SelectableButton.js +56 -57
  254. package/dist/esm/components/selectable-button-group-field/SelectableButtonGroupField.d.ts +2 -0
  255. package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.d.ts +81 -0
  256. package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.js +47 -0
  257. package/dist/esm/components/selectable-card/internals/Description.js +1 -1
  258. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/SelectableCardCheckboxGroup.js +1 -1
  259. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.d.ts +26 -0
  260. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.js +32 -0
  261. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/parts/SelectableCardCheckbox.js +24 -24
  262. package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.d.ts +2 -0
  263. package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.js +12 -14
  264. package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.d.ts +28 -0
  265. package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.js +32 -0
  266. package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/RadioIndicator.js +14 -13
  267. package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/SelectableCardRadio.js +27 -25
  268. package/dist/esm/components/selectable-card/selectableCard.variant.js +5 -5
  269. package/dist/esm/components/selectable-card-checkbox-group-field/SelectableCardCheckboxGroupField.d.ts +2 -0
  270. package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.d.ts +10 -0
  271. package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.js +38 -0
  272. package/dist/esm/components/selectable-card-radio-group-field/SelectableCardRadioGroupField.d.ts +2 -0
  273. package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.d.ts +10 -0
  274. package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.js +38 -0
  275. package/dist/esm/components/table/Table.context.d.ts +5 -0
  276. package/dist/esm/components/table/Table.context.js +14 -13
  277. package/dist/esm/components/table/Table.d.ts +93 -0
  278. package/dist/esm/components/table/Table.js +135 -107
  279. package/dist/esm/components/table/parts/TableBody.js +83 -21
  280. package/dist/esm/components/table/parts/TableEmptyState.js +6 -6
  281. package/dist/esm/components/table/parts/TableHeader.js +1 -1
  282. package/dist/esm/components/table/parts/TablePagination.js +1 -1
  283. package/dist/esm/components/table/parts/TableRow.js +1 -0
  284. package/dist/esm/components/tabs/Tabs.variant.d.ts +0 -6
  285. package/dist/esm/components/tabs/Tabs.variant.js +11 -12
  286. package/dist/esm/components/task-menu/parts/RawSubTask.js +26 -26
  287. package/dist/esm/components/task-menu/parts/RawTask.js +32 -28
  288. package/dist/esm/components/task-menu/parts/TaskGroup.js +30 -26
  289. package/dist/esm/components/task-menu/parts/task.variants.js +4 -2
  290. package/dist/esm/components/text/Text.d.ts +11 -1
  291. package/dist/esm/components/text/Text.js +41 -31
  292. package/dist/esm/components/text/Text.variants.d.ts +12 -0
  293. package/dist/esm/components/text/Text.variants.js +4 -0
  294. package/dist/esm/components/text-area/TanstackTextArea.d.ts +21 -0
  295. package/dist/esm/components/text-area/TanstackTextArea.js +35 -0
  296. package/dist/esm/components/text-area/TextArea.js +31 -29
  297. package/dist/esm/components/text-field/TanstackTextField.d.ts +79 -0
  298. package/dist/esm/components/text-field/TanstackTextField.js +60 -0
  299. package/dist/esm/components/text-field/TextField.d.ts +2 -0
  300. package/dist/esm/components/toast/UnityToast.js +5 -5
  301. package/dist/esm/components/toast/test-utils.d.ts +36 -0
  302. package/dist/esm/components/toast/test-utils.js +118 -0
  303. package/dist/esm/components/toggle-switch/TanstackToggleSwitch.d.ts +46 -0
  304. package/dist/esm/components/toggle-switch/TanstackToggleSwitch.js +25 -0
  305. package/dist/esm/components/toggle-switch/ToggleSwitch.d.ts +21 -9
  306. package/dist/esm/components/toggle-switch/ToggleSwitch.js +71 -32
  307. package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.d.ts +11 -0
  308. package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.js +34 -0
  309. package/dist/esm/components/toggle-switch-field/ToggleSwitchField.d.ts +2 -0
  310. package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.d.ts +57 -0
  311. package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.js +23 -0
  312. package/dist/esm/components/toggle-switch-group/ToggleSwitchGroup.js +1 -1
  313. package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.d.ts +19 -0
  314. package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.js +50 -0
  315. package/dist/esm/components/toggle-switch-group-field/ToggleSwitchGroupField.d.ts +2 -0
  316. package/dist/esm/docs/{table → examples/data}/mocks/employee-columns.d.ts +1 -1
  317. package/dist/esm/hooks/tanstack-form-context.d.ts +1 -0
  318. package/dist/esm/hooks/tanstack-form-context.js +8 -0
  319. package/dist/esm/hooks/use-form.d.ts +2 -0
  320. package/dist/esm/hooks/use-has-scroll.d.ts +71 -0
  321. package/dist/esm/hooks/use-has-scroll.js +75 -0
  322. package/dist/esm/hooks/use-tanstack-form.d.ts +369 -0
  323. package/dist/esm/hooks/use-tanstack-form.js +209 -0
  324. package/dist/esm/index.d.ts +44 -20
  325. package/dist/esm/index.js +457 -394
  326. package/dist/esm/index.storybook-testing.d.ts +3 -0
  327. package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.d.ts +6 -1
  328. package/dist/esm/integrations/tanstack-router/components/form-contextual-link/TanstackFormContextualLink.d.ts +43 -0
  329. package/dist/esm/integrations/tanstack-router/components/list-view/ListView.d.ts +34 -0
  330. package/dist/esm/integrations/tanstack-router/components/list-view/ListView.js +25 -0
  331. package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.d.ts +51 -0
  332. package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.js +32 -0
  333. package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.d.ts +73 -0
  334. package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.js +37 -0
  335. package/dist/esm/integrations/tanstack-router/index.d.ts +3 -0
  336. package/dist/esm/integrations/tanstack-router/utils/decorators.d.ts +1 -1
  337. package/dist/esm/integrations/tanstack-router.js +32 -26
  338. package/dist/esm/mocks/employees.d.ts +1 -5
  339. package/dist/esm/storybook-testing.js +8 -2
  340. package/dist/esm/storybook-utilities/previewTransform.d.ts +1 -0
  341. package/dist/esm/utils/scroll-detection.d.ts +77 -0
  342. package/dist/esm/utils/scroll-detection.js +33 -0
  343. package/dist/esm/utils/spacing.d.ts +63 -0
  344. package/dist/esm/utils/spacing.js +15 -0
  345. package/i18n/en-GB.json +21 -8
  346. package/i18n/es-ES.json +23 -10
  347. package/i18n/fr-FR.json +24 -11
  348. package/package.json +41 -42
  349. package/dist/esm/components/multi-select/Multiselect.types.d.ts +0 -109
  350. package/dist/esm/integrations/react-router/v5/UnityReactRouterV5Provider.d.ts +0 -6
  351. package/dist/esm/integrations/react-router/v5/UnityReactRouterV5Provider.js +0 -28
  352. package/dist/esm/integrations/react-router/v5/index.d.ts +0 -1
  353. package/dist/esm/integrations/react-router/v5.js +0 -4
@@ -0,0 +1,55 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export interface CardTitleProps extends PropsWithChildren {
3
+ /** The heading level for the title. Defaults to 3 */
4
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
5
+ /** Whether to visually hide the title (still accessible to screen readers) */
6
+ isHidden?: boolean;
7
+ }
8
+ /**
9
+ * The `CardTitle` component renders the title for a Card. It provides semantic heading structure
10
+ * and ensures proper accessibility labeling for the Card container.
11
+ *
12
+ * Use CardTitle when you need to give your Card a visible or screen-reader-accessible title.
13
+ * You can configure the heading level, apply custom styles, or hide it visually while maintaining
14
+ * accessibility.
15
+ * @param {CardTitleProps} props - The props for the `CardTitle` component
16
+ * @example
17
+ * ```tsx
18
+ * import { Card, CardTitle } from '@payfit/unity-components'
19
+ *
20
+ * function Example() {
21
+ * return (
22
+ * <Card>
23
+ * <CardTitle>My Card Title</CardTitle>
24
+ * <p>Card content goes here</p>
25
+ * </Card>
26
+ * )
27
+ * }
28
+ * ```
29
+ * @example
30
+ * ```tsx
31
+ * // Custom heading level
32
+ * <Card>
33
+ * <CardTitle level={2}>Important Section</CardTitle>
34
+ * <p>Content...</p>
35
+ * </Card>
36
+ * ```
37
+ * @example
38
+ * ```tsx
39
+ * // Hidden title for accessibility
40
+ * <Card>
41
+ * <CardTitle isHidden>Screen reader only title</CardTitle>
42
+ * <p>Visual content that describes itself</p>
43
+ * </Card>
44
+ * ```
45
+ * @see {@link CardTitleProps} for all available props
46
+ * @remarks
47
+ * - The title is required for accessibility unless the Card has an `aria-label`
48
+ * - Use `isHidden` to hide the title visually while keeping it accessible
49
+ * - The default heading level is 3, but you can configure it based on your page structure
50
+ */
51
+ declare function CardTitle({ children, level, isHidden }: CardTitleProps): import("react/jsx-runtime").JSX.Element;
52
+ declare namespace CardTitle {
53
+ var displayName: string;
54
+ }
55
+ export { CardTitle };
@@ -0,0 +1,33 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { uyTv as n } from "@payfit/unity-themes";
3
+ import { Heading as o } from "react-aria-components";
4
+ import { useCardContext as d } from "../Card.context.js";
5
+ const l = n({
6
+ base: ["uy:typography-h3 uy:text-content-neutral uy:leading-none"],
7
+ variants: {
8
+ isHidden: {
9
+ true: "uy:sr-only",
10
+ false: ""
11
+ }
12
+ },
13
+ defaultVariants: {
14
+ isHidden: !1
15
+ }
16
+ });
17
+ function u({ children: t, level: e = 3, isHidden: a = !1 }) {
18
+ const { titleId: r } = d(), i = l({ isHidden: a });
19
+ return /* @__PURE__ */ s(
20
+ o,
21
+ {
22
+ level: e,
23
+ id: r,
24
+ className: i,
25
+ "data-unity-slot": "card.title",
26
+ children: t
27
+ }
28
+ );
29
+ }
30
+ u.displayName = "CardTitle";
31
+ export {
32
+ u as CardTitle
33
+ };
@@ -1,12 +1,12 @@
1
- import { jsxs as o, jsx as a, Fragment as j } from "react/jsx-runtime";
2
- import { forwardRef as B, isValidElement as p, cloneElement as y } from "react";
1
+ import { jsxs as l, jsx as a, Fragment as j } from "react/jsx-runtime";
2
+ import { forwardRef as B, isValidElement as h, cloneElement as f } from "react";
3
3
  import { useId as R } from "react-aria";
4
4
  import { Checkbox as D } from "react-aria-components";
5
- import { Text as h } from "../text/Text.js";
5
+ import { Text as u } from "../text/Text.js";
6
6
  import { checkbox as E } from "./Checkbox.variants.js";
7
7
  import { CheckboxIndicator as V } from "./parts/CheckboxIndicator.js";
8
8
  const F = B(
9
- ({ children: f, helperText: i, feedbackText: r, ...l }, v) => {
9
+ ({ children: v, helperText: i, feedbackText: r, ...o }, N) => {
10
10
  const e = R(), {
11
11
  isDisabled: s,
12
12
  isReadOnly: d,
@@ -14,70 +14,78 @@ const F = B(
14
14
  isRequired: n,
15
15
  requiredVariant: c = "required",
16
16
  ...x
17
- } = l, {
18
- base: u,
19
- wrapper: N,
20
- asterisk: g,
21
- optionalTag: $,
22
- descriptionsContainer: k,
23
- helperText: C,
24
- feedbackText: q
17
+ } = o, {
18
+ base: g,
19
+ wrapper: $,
20
+ asterisk: k,
21
+ optionalTag: C,
22
+ descriptionsContainer: q,
23
+ helperText: m,
24
+ feedbackText: b
25
25
  } = E({
26
26
  isDisabled: s,
27
27
  isReadOnly: d,
28
28
  isInvalid: t
29
- }), m = [l["aria-labelledby"], `${e}-label`].filter(Boolean), b = [
30
- l["aria-describedby"],
29
+ }), y = [o["aria-labelledby"], `${e}-label`].filter(Boolean), p = [
30
+ o["aria-describedby"],
31
31
  typeof i == "string" ? `${e}-helper-text` : void 0,
32
32
  typeof r == "string" ? `${e}-feedback-text` : void 0
33
- ].filter(Boolean), w = m.length > 0 ? m.join(" ") : void 0, I = b.length > 0 ? b.join(" ") : void 0;
34
- return /* @__PURE__ */ o("div", { className: u(), children: [
33
+ ].filter(Boolean), w = y.length > 0 ? y.join(" ") : void 0, I = p.length > 0 ? p.join(" ") : void 0;
34
+ return /* @__PURE__ */ l("div", { className: g(), children: [
35
35
  /* @__PURE__ */ a(
36
36
  D,
37
37
  {
38
38
  ...x,
39
39
  isInvalid: t,
40
- ref: v,
41
- className: N(),
40
+ ref: N,
41
+ className: $(),
42
42
  "aria-labelledby": w,
43
43
  "aria-describedby": I,
44
44
  isDisabled: s,
45
45
  isReadOnly: d,
46
- children: (S) => /* @__PURE__ */ o(j, { children: [
47
- /* @__PURE__ */ a(V, { ...S, className: "uy:mr-[6px]" }),
48
- /* @__PURE__ */ a("span", { id: `${e}-label`, "data-dd-privacy": "allow", children: f }),
49
- c === "required" && n && /* @__PURE__ */ o("span", { className: g(), children: [
46
+ children: (S) => /* @__PURE__ */ l(j, { children: [
47
+ /* @__PURE__ */ a(
48
+ V,
49
+ {
50
+ ...S,
51
+ className: "uy:mt-50 uy:sm:mt-25 uy:ml-0"
52
+ }
53
+ ),
54
+ /* @__PURE__ */ a("span", { id: `${e}-label`, "data-dd-privacy": "allow", children: v }),
55
+ c === "required" && n && /* @__PURE__ */ l("span", { className: k(), children: [
50
56
  "*",
51
57
  /* @__PURE__ */ a("span", { className: "uy:sr-only", children: "required" })
52
58
  ] }),
53
- c === "optional" && !n && /* @__PURE__ */ a("span", { className: $(), children: "(optional)" })
59
+ c === "optional" && !n && /* @__PURE__ */ a("span", { className: C(), children: "(optional)" })
54
60
  ] })
55
61
  }
56
62
  ),
57
- (i || r) && /* @__PURE__ */ o("div", { className: k(), "data-dd-privacy": "allow", children: [
63
+ (i || r) && /* @__PURE__ */ l("div", { className: q(), "data-dd-privacy": "allow", children: [
58
64
  typeof i == "string" ? /* @__PURE__ */ a(
59
- h,
65
+ u,
60
66
  {
61
67
  variant: "bodySmall",
62
68
  color: "content.neutral.low",
63
69
  id: `${e}-helper-text`,
70
+ className: m(),
64
71
  children: i
65
72
  }
66
- ) : p(i) && y(i, {
73
+ ) : h(i) && f(i, {
67
74
  "data-id": `${e}-helper-text`,
68
- className: C()
75
+ className: m()
69
76
  }),
70
77
  t && (typeof r == "string" ? /* @__PURE__ */ a(
71
- h,
78
+ u,
72
79
  {
73
80
  variant: "bodySmallStrong",
74
81
  color: "content.form.invalid",
75
82
  id: `${e}-feedback-text`,
83
+ className: b(),
76
84
  children: r
77
85
  }
78
- ) : p(r) && y(r, {
86
+ ) : h(r) && f(r, {
79
87
  "data-id": `${e}-feedback-text`,
80
- className: q()
88
+ className: b()
81
89
  }))
82
90
  ] })
83
91
  ] });
@@ -13,12 +13,12 @@ export declare const checkbox: import('tailwind-variants').TVReturnType<{
13
13
  };
14
14
  };
15
15
  }, {
16
- base: string;
17
- wrapper: string;
16
+ base: string[];
17
+ wrapper: string[];
18
18
  asterisk: string;
19
19
  optionalTag: string;
20
20
  descriptionsContainer: string;
21
- helperText: string;
21
+ helperText: string[];
22
22
  feedbackText: string;
23
23
  }, undefined, {
24
24
  isDisabled: {
@@ -35,12 +35,12 @@ export declare const checkbox: import('tailwind-variants').TVReturnType<{
35
35
  };
36
36
  };
37
37
  }, {
38
- base: string;
39
- wrapper: string;
38
+ base: string[];
39
+ wrapper: string[];
40
40
  asterisk: string;
41
41
  optionalTag: string;
42
42
  descriptionsContainer: string;
43
- helperText: string;
43
+ helperText: string[];
44
44
  feedbackText: string;
45
45
  }, import('tailwind-variants').TVReturnType<{
46
46
  isDisabled: {
@@ -57,11 +57,11 @@ export declare const checkbox: import('tailwind-variants').TVReturnType<{
57
57
  };
58
58
  };
59
59
  }, {
60
- base: string;
61
- wrapper: string;
60
+ base: string[];
61
+ wrapper: string[];
62
62
  asterisk: string;
63
63
  optionalTag: string;
64
64
  descriptionsContainer: string;
65
- helperText: string;
65
+ helperText: string[];
66
66
  feedbackText: string;
67
67
  }, undefined, unknown, unknown, undefined>>;
@@ -1,13 +1,29 @@
1
1
  import { uyTv as e } from "@payfit/unity-themes";
2
- const l = e({
2
+ const r = e({
3
3
  slots: {
4
- base: "uy:group uy:inline-flex uy:flex-col uy:gap-50 uy:py-[1px]",
5
- wrapper: "uy:inline-flex uy:items-start uy:gap-[2px] uy:typography-body uy:text-content-form-enabled uy:data-[focus-visible]:outline uy:data-[focus-visible]:outline-[2px] uy:data-[focus-visible]:outline-utility-focus-ring uy:data-[focus-visible]:outline-offset-2 uy:rounded-25 uy:leading-[1lh] uy:data-[disabled]:text-content-form-disabled",
4
+ base: [
5
+ "uy:group uy:inline-flex uy:flex-col",
6
+ "uy:rounded-md uy:sm:rounded-25",
7
+ "uy:px-150 uy:sm:px-0 uy:py-125 uy:sm:py-px",
8
+ "uy:border uy:sm:border-none uy:border-solid uy:border-border-neutral-enabled",
9
+ 'uy:has-data-[focus-visible="true"]:outline-2 uy:has-data-[focus-visible="true"]:outline-utility-focus-ring uy:has-data-[focus-visible="true"]:outline-offset-2',
10
+ "uy:has-data-[disabled=true]:border-border-neutral-disabled",
11
+ "uy:has-data-[readonly=true]:border-border-neutral-disabled"
12
+ ],
13
+ wrapper: [
14
+ "uy:sm:rounded-25 uy:leading-none uy:sm:leading-[1lh]",
15
+ "uy:inline-flex uy:items-start uy:gap-75",
16
+ "uy:typography-body uy:text-content-form-enabled",
17
+ "uy:data-[disabled=true]:text-content-form-disabled uy:data-[disabled]:cursor-not-allowed",
18
+ "uy:data-[readonly=true]:cursor-not-allowed"
19
+ ],
6
20
  asterisk: "uy:text-content-danger",
7
21
  optionalTag: "uy:typography-body uy:leading-1",
8
- descriptionsContainer: "uy:ml-300 uy:leading-1 uy:inline-flex uy:flex-col uy:gap-50",
9
- helperText: "uy:typography-body-small uy:text-content-neutral-low",
10
- feedbackText: "uy:typography-body-small-strong uy:text-content-form-invalid"
22
+ descriptionsContainer: "uy:ml-300 uy:leading-1 uy:inline-flex uy:flex-col",
23
+ helperText: [
24
+ "uy:block uy:typography-body-small uy:text-content-neutral-low uy:mt-50"
25
+ ],
26
+ feedbackText: "uy:typography-body-small-strong uy:text-content-form-invalid uy:mt-50"
11
27
  },
12
28
  variants: {
13
29
  isDisabled: {
@@ -61,5 +77,5 @@ const l = e({
61
77
  ]
62
78
  });
63
79
  export {
64
- l as checkbox
80
+ r as checkbox
65
81
  };
@@ -0,0 +1,28 @@
1
+ import { CheckboxProps } from './Checkbox.js';
2
+ export type TanstackCheckboxProps = Omit<CheckboxProps, 'name' | 'selected' | 'defaultSelected' | 'isInvalid'>;
3
+ /**
4
+ * `TanstackCheckbox` is a controlled checkbox wired to the TanStack Form field context.
5
+ * It is based on the Unity `Checkbox` component.
6
+ *
7
+ * Value, invalid state, and events are driven by the TanStack field API.
8
+ *
9
+ * Example:
10
+ * ```tsx
11
+ * function ExampleField() {
12
+ * const form = useTanstackUnityForm<{ acceptTerms: boolean }>({ validators: {} })
13
+ * return (
14
+ * <form>
15
+ * <form.AppField name="acceptTerms">
16
+ * {() => (
17
+ * <TanstackCheckbox>
18
+ * I accept the terms and conditions
19
+ * </TanstackCheckbox>
20
+ * )}
21
+ * </form.AppField>
22
+ * </form>
23
+ * )
24
+ * }
25
+ * ```
26
+ */
27
+ declare const TanstackCheckbox: import('react').ForwardRefExoticComponent<TanstackCheckboxProps & import('react').RefAttributes<HTMLLabelElement>>;
28
+ export { TanstackCheckbox };
@@ -0,0 +1,51 @@
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { forwardRef as u } from "react";
3
+ import { useFieldContext as k } from "../../hooks/tanstack-form-context.js";
4
+ import { useFieldA11yContext as C } from "../form-field/TanstackFormField.context.js";
5
+ import { Checkbox as y } from "./Checkbox.js";
6
+ const I = u(
7
+ ({
8
+ children: i,
9
+ value: r,
10
+ isIndeterminate: d,
11
+ onBlur: n,
12
+ onChange: l,
13
+ isReadOnly: s,
14
+ isDisabled: c,
15
+ isRequired: m,
16
+ requiredVariant: b,
17
+ ...f
18
+ }, h) => {
19
+ const e = k(), a = C(), x = e.state.meta.isTouched && !e.state.meta.isValid, t = [a.helperTextId, a.feedbackTextId].filter(Boolean).join(" ");
20
+ return /* @__PURE__ */ p(
21
+ y,
22
+ {
23
+ ...f,
24
+ id: a.inputId,
25
+ ref: h,
26
+ value: r,
27
+ isSelected: e.state.value,
28
+ isIndeterminate: d,
29
+ requiredVariant: b,
30
+ isRequired: m,
31
+ onChange: (o) => {
32
+ e.handleChange(o), l?.(o);
33
+ },
34
+ onBlur: () => {
35
+ e.handleBlur(), n?.();
36
+ },
37
+ isReadOnly: s,
38
+ isDisabled: c,
39
+ isInvalid: x,
40
+ "aria-labelledby": a.labelId,
41
+ "aria-describedby": t.length > 0 ? t : void 0,
42
+ "aria-details": a.contextualLinkId,
43
+ children: i
44
+ }
45
+ );
46
+ }
47
+ );
48
+ I.displayName = "TanstackCheckbox";
49
+ export {
50
+ I as TanstackCheckbox
51
+ };
@@ -12,7 +12,7 @@ const c = u({
12
12
  variants: {
13
13
  isSelected: {
14
14
  true: {
15
- base: "uy:border-border-form-active uy:bg-surface-form-active"
15
+ base: "uy:border-border-form-selected uy:bg-surface-form-active uy:hover:border-border-form-active"
16
16
  }
17
17
  },
18
18
  isDisabled: {
@@ -85,8 +85,8 @@ const c = u({
85
85
  isSelected: !0,
86
86
  isReadOnly: !0,
87
87
  className: {
88
- base: "uy:bg-surface-form-disabled! uy:border-border-form-disabled",
89
- checkmark: "uy:text-border-form-read-only"
88
+ base: "uy:bg-surface-form-disabled! uy:border-border-form-disabled!",
89
+ checkmark: "uy:text-surface-form-read-only!"
90
90
  }
91
91
  }
92
92
  ]
@@ -96,16 +96,16 @@ function n({
96
96
  isDisabled: s,
97
97
  isIndeterminate: a,
98
98
  isInvalid: t,
99
- isReadOnly: d,
100
- className: o
99
+ isReadOnly: o,
100
+ className: d
101
101
  }) {
102
102
  const { base: i, checkmark: l } = c({
103
103
  isSelected: r || a,
104
104
  isDisabled: s,
105
105
  isInvalid: t,
106
- isReadOnly: d
106
+ isReadOnly: o
107
107
  });
108
- return /* @__PURE__ */ e("div", { className: i({ className: o }), "data-dd-privacy": "mask", children: /* @__PURE__ */ e(
108
+ return /* @__PURE__ */ e("div", { className: i({ className: d }), "data-dd-privacy": "mask", children: /* @__PURE__ */ e(
109
109
  "svg",
110
110
  {
111
111
  fill: "none",
@@ -69,6 +69,8 @@ type CheckboxFieldComponent = (<TSchema extends Schema>(props: CheckboxFieldProp
69
69
  * @note The schema type parameter is needed to ensure type safety with the form's
70
70
  schema.
71
71
  * If you omit it, the `name` prop will not be type-safe.
72
+ * @deprecated React Hook Form components are deprecated. Use the TanStack Form version instead.
73
+ * @see Storybook docs: https://unity-components.payfit.io/?path=/docs/forms-introduction-to-unity-forms--docs
72
74
  */
73
75
  declare const CheckboxField: CheckboxFieldComponent;
74
76
  export { CheckboxField };
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ import { TanstackCheckboxProps } from '../checkbox/TanstackCheckbox.js';
3
+ import { LabelProps } from '../label/Label.js';
4
+ export interface FieldProps extends Pick<LabelProps, 'isRequired' | 'requiredVariant'> {
5
+ /** The label for the checkbox. */
6
+ children: ReactNode;
7
+ /** Helper text to display below the checkbox. */
8
+ helperText?: ReactNode;
9
+ /** A contextual link to display below the checkbox. */
10
+ contextualLink?: ReactNode;
11
+ }
12
+ export type TanstackCheckboxFieldProps = FieldProps & TanstackCheckboxProps;
13
+ declare const TanstackCheckboxField: import('react').ForwardRefExoticComponent<FieldProps & TanstackCheckboxProps & import('react').RefAttributes<HTMLLabelElement>>;
14
+ export { TanstackCheckboxField };
@@ -0,0 +1,40 @@
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as f } from "react";
3
+ import { TanstackCheckbox as x } from "../checkbox/TanstackCheckbox.js";
4
+ import { TanstackFormFeedbackText as p } from "../form-field/parts/TanstackFormFeedbackText.js";
5
+ import { TanstackFormField as l } from "../form-field/TanstackFormField.js";
6
+ function F({
7
+ children: o,
8
+ helperText: r,
9
+ contextualLink: i,
10
+ isRequired: t,
11
+ isDisabled: a,
12
+ isReadOnly: c,
13
+ requiredVariant: m,
14
+ value: s,
15
+ ...d
16
+ }, k) {
17
+ return /* @__PURE__ */ n(l, { children: [
18
+ /* @__PURE__ */ e(
19
+ x,
20
+ {
21
+ ref: k,
22
+ value: s,
23
+ requiredVariant: m,
24
+ helperText: r,
25
+ feedbackText: /* @__PURE__ */ e(p, {}),
26
+ ...d,
27
+ isDisabled: a,
28
+ isReadOnly: c,
29
+ isRequired: t,
30
+ children: o
31
+ }
32
+ ),
33
+ i
34
+ ] });
35
+ }
36
+ const T = f(F);
37
+ T.displayName = "TanstackCheckboxField";
38
+ export {
39
+ T as TanstackCheckboxField
40
+ };
@@ -0,0 +1,4 @@
1
+ import { CheckboxGroupProps } from './CheckboxGroup.js';
2
+ export type TanstackCheckboxGroupProps = Omit<CheckboxGroupProps, 'name' | 'value' | 'defaultValue' | 'isInvalid'>;
3
+ declare const TanstackCheckboxGroup: import('react').ForwardRefExoticComponent<TanstackCheckboxGroupProps & import('react').RefAttributes<HTMLDivElement>>;
4
+ export { TanstackCheckboxGroup };
@@ -0,0 +1,37 @@
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import { forwardRef as b } from "react";
3
+ import { useFieldContext as f } from "../../hooks/tanstack-form-context.js";
4
+ import { useFieldA11yContext as h } from "../form-field/TanstackFormField.context.js";
5
+ import { CheckboxGroup as x } from "./CheckboxGroup.js";
6
+ const k = b(
7
+ ({ onChange: r, onBlur: i, isReadOnly: d, isDisabled: n, children: l, label: s, ...c }, m) => {
8
+ const e = f(), a = h(), p = e.state.meta.isTouched && !e.state.meta.isValid, o = [a.helperTextId, a.feedbackTextId].filter(Boolean).join(" ");
9
+ return /* @__PURE__ */ u(
10
+ x,
11
+ {
12
+ ...c,
13
+ ref: m,
14
+ id: a.inputId,
15
+ label: s,
16
+ value: e.state.value,
17
+ onChange: (t) => {
18
+ e.handleChange(t), r?.(t);
19
+ },
20
+ onBlur: (t) => {
21
+ e.handleBlur(), i?.(t);
22
+ },
23
+ isReadOnly: d,
24
+ isDisabled: n,
25
+ isInvalid: p,
26
+ "aria-labelledby": a.labelId,
27
+ "aria-describedby": o.length > 0 ? o : void 0,
28
+ "aria-details": a.contextualLinkId,
29
+ children: l
30
+ }
31
+ );
32
+ }
33
+ );
34
+ k.displayName = "TanstackCheckboxGroup";
35
+ export {
36
+ k as TanstackCheckboxGroup
37
+ };
@@ -74,6 +74,8 @@ type CheckboxGroupFieldComponent = (<TSchema extends Schema>(props: CheckboxGrou
74
74
  * ```
75
75
  * @note The schema type parameter is needed to ensure type safety with the form's schema.
76
76
  * If you omit it, the `name` prop will not be type-safe.
77
+ * @deprecated React Hook Form components are deprecated. Use the TanStack Form version instead.
78
+ * @see Storybook docs: https://unity-components.payfit.io/?path=/docs/forms-introduction-to-unity-forms--docs
77
79
  */
78
80
  declare const CheckboxGroupField: CheckboxGroupFieldComponent;
79
81
  export { CheckboxGroupField };
@@ -0,0 +1,72 @@
1
+ import { ReactNode } from 'react';
2
+ import { TanstackCheckboxGroupProps } from '../checkbox-group/TanstackCheckboxGroup.js';
3
+ import { LabelProps } from '../label/Label.js';
4
+ export interface FieldProps extends Pick<LabelProps, 'isRequired' | 'requiredVariant'> {
5
+ /** Helper text to display below the group. */
6
+ helperText?: ReactNode;
7
+ /** A contextual link to display below the group. */
8
+ contextualLink?: ReactNode;
9
+ }
10
+ export type TanstackCheckGroupFieldProps = FieldProps & TanstackCheckboxGroupProps;
11
+ /**
12
+ * `TanstackCheckGroupField` is a composite field for TanStack Form that renders a
13
+ * complete checkbox group (label, helper/error, group) and automatically connects to
14
+ * the field context provided by `useTanstackUnityForm` and `<form.AppField name="…">`.
15
+ *
16
+ * Behavior:
17
+ * - Group rendering: relies on `TanstackCheckboxGroup` to manage the value (array of
18
+ * strings), focus, and events.
19
+ * - Messaging: renders helper text (`TanstackFormHelperText` via the `helperText` prop)
20
+ * and error feedback (`TanstackFormFeedbackText`) according to the TanStack form state.
21
+ * - Contextual link: allows displaying an additional link below the field via the
22
+ * `contextualLink` prop.
23
+ *
24
+ * Accessibility:
25
+ * - ARIA attributes (`aria-labelledby`, `aria-describedby`, `aria-details`) are wired by
26
+ * `TanstackFormField` and its sub-parts to associate the label, helper, and feedback
27
+ * with the control.
28
+ *
29
+ * Key props:
30
+ * - `label: string` — group label text.
31
+ * - `helperText?: ReactNode` — helper text displayed above the feedback.
32
+ * - `contextualLink?: ReactNode` — contextual link (referenced via `aria-details`).
33
+ * - Inherits the props from `TanstackCheckboxGroup` (except direct value management).
34
+ * - `isRequired?`, `requiredVariant?` — control how the required/optional indicator is displayed.
35
+ *
36
+ * Example:
37
+ * ```tsx
38
+ * import { TanstackCheckGroupField } from '@/components/checkbox-group-field/TanstackCheckGroupField'
39
+ * import { Checkbox } from '@/components/checkbox/Checkbox'
40
+ * import { useTanstackUnityForm } from '@/hooks/use-tanstack-form'
41
+ * import * as z from 'zod'
42
+ *
43
+ * const schema = z.object({
44
+ * preferences: z.array(z.enum(['email','sms','push'])).min(1),
45
+ * })
46
+ *
47
+ * function Example() {
48
+ * const form = useTanstackUnityForm({ validators: { onBlur: schema } })
49
+ * return (
50
+ * <form.AppForm>
51
+ * <form.Form>
52
+ * <form.AppField name="preferences">
53
+ * {() => (
54
+ * <TanstackCheckGroupField label="Preferences" helperText="Choose at least one option">
55
+ * <Checkbox value="email">Email</Checkbox>
56
+ * <Checkbox value="sms">SMS</Checkbox>
57
+ * <Checkbox value="push">Push</Checkbox>
58
+ * </TanstackCheckGroupField>
59
+ * )}
60
+ * </form.AppField>
61
+ * </form.Form>
62
+ * </form.AppForm>
63
+ * )
64
+ * }
65
+ * ```
66
+ *
67
+ * Migration notes from a non‑TanStack field:
68
+ * - Do not pass a `name` prop to the component — use `<form.AppField name="…">`.
69
+ * - `value`, `defaultValue`, and `isInvalid` are derived from the TanStack context.
70
+ */
71
+ declare const TanstackCheckGroupField: import('react').ForwardRefExoticComponent<FieldProps & TanstackCheckboxGroupProps & import('react').RefAttributes<HTMLDivElement>>;
72
+ export { TanstackCheckGroupField };
@@ -0,0 +1,40 @@
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as p } from "react";
3
+ import { TanstackCheckboxGroup as f } from "../checkbox-group/TanstackCheckboxGroup.js";
4
+ import { TanstackFormFeedbackText as l } from "../form-field/parts/TanstackFormFeedbackText.js";
5
+ import { TanstackFormField as u } from "../form-field/TanstackFormField.js";
6
+ function T({
7
+ helperText: r,
8
+ contextualLink: o,
9
+ isRequired: a,
10
+ isDisabled: i,
11
+ isReadOnly: t,
12
+ requiredVariant: c,
13
+ children: m,
14
+ label: s,
15
+ ...d
16
+ }, k) {
17
+ return /* @__PURE__ */ n(u, { children: [
18
+ /* @__PURE__ */ e("div", { className: "uy:mt-25", children: /* @__PURE__ */ e(
19
+ f,
20
+ {
21
+ ref: k,
22
+ label: s,
23
+ requiredVariant: c,
24
+ helperText: r,
25
+ feedbackText: /* @__PURE__ */ e(l, {}),
26
+ ...d,
27
+ isDisabled: i,
28
+ isReadOnly: t,
29
+ isRequired: a,
30
+ children: m
31
+ }
32
+ ) }),
33
+ o
34
+ ] });
35
+ }
36
+ const F = p(T);
37
+ F.displayName = "TanstackCheckGroupField";
38
+ export {
39
+ F as TanstackCheckGroupField
40
+ };
@@ -19,7 +19,7 @@ function u({ variant: t, ...n }) {
19
19
  {
20
20
  ...n,
21
21
  asElement: "button",
22
- color: "content.neutral.lowest",
22
+ color: "content.neutral",
23
23
  title: e,
24
24
  "aria-label": i,
25
25
  icon: t === "previous" ? "CaretLeftOutlined" : "CaretRightOutlined"