@payfit/unity-components 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) 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.context.d.ts +2 -1
  11. package/dist/esm/components/avatar/Avatar.context.js +13 -11
  12. package/dist/esm/components/avatar/Avatar.d.ts +126 -0
  13. package/dist/esm/components/avatar/Avatar.js +34 -20
  14. package/dist/esm/components/avatar/Avatar.variants.d.ts +39 -0
  15. package/dist/esm/components/avatar/Avatar.variants.js +23 -5
  16. package/dist/esm/components/avatar/parts/AvatarFallback.d.ts +52 -0
  17. package/dist/esm/components/avatar/parts/AvatarFallback.js +26 -27
  18. package/dist/esm/components/avatar/parts/AvatarIcon.d.ts +31 -0
  19. package/dist/esm/components/avatar/parts/AvatarIcon.js +40 -0
  20. package/dist/esm/components/badge/Badge.js +1 -1
  21. package/dist/esm/components/breadcrumbs/Breadcrumbs.variant.js +1 -1
  22. package/dist/esm/components/button/Button.js +12 -11
  23. package/dist/esm/components/button/Button.variants.d.ts +1 -0
  24. package/dist/esm/components/button/Button.variants.js +22 -15
  25. package/dist/esm/components/card/Card.context.d.ts +5 -0
  26. package/dist/esm/components/card/Card.context.js +14 -0
  27. package/dist/esm/components/card/Card.d.ts +210 -0
  28. package/dist/esm/components/card/Card.js +93 -0
  29. package/dist/esm/components/card/parts/CardContent.d.ts +37 -0
  30. package/dist/esm/components/card/parts/CardContent.js +8 -0
  31. package/dist/esm/components/card/parts/CardTitle.d.ts +55 -0
  32. package/dist/esm/components/card/parts/CardTitle.js +33 -0
  33. package/dist/esm/components/checkbox/Checkbox.js +38 -30
  34. package/dist/esm/components/checkbox/Checkbox.variants.d.ts +9 -9
  35. package/dist/esm/components/checkbox/Checkbox.variants.js +23 -7
  36. package/dist/esm/components/checkbox/TanstackCheckbox.d.ts +28 -0
  37. package/dist/esm/components/checkbox/TanstackCheckbox.js +51 -0
  38. package/dist/esm/components/checkbox/parts/CheckboxIndicator.js +7 -7
  39. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +2 -0
  40. package/dist/esm/components/checkbox-field/TanstackCheckboxField.d.ts +14 -0
  41. package/dist/esm/components/checkbox-field/TanstackCheckboxField.js +40 -0
  42. package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.d.ts +4 -0
  43. package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.js +37 -0
  44. package/dist/esm/components/checkbox-group-field/CheckboxGroupField.d.ts +2 -0
  45. package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.d.ts +72 -0
  46. package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.js +40 -0
  47. package/dist/esm/components/client-side-pagination/parts/PaginationNavButton.js +1 -1
  48. package/dist/esm/components/client-side-pagination/parts/RawPaginationLink.js +10 -10
  49. package/dist/esm/components/collapsible/parts/CollapsibleContent.js +5 -5
  50. package/dist/esm/components/collapsible/parts/CollapsibleTitle.js +8 -8
  51. package/dist/esm/components/data-table/DataTable.d.ts +109 -16
  52. package/dist/esm/components/data-table/DataTable.js +107 -93
  53. package/dist/esm/components/data-table/mocks/employee-data.d.ts +1 -0
  54. package/dist/esm/components/date-calendar/DateCalendar.js +1 -1
  55. package/dist/esm/components/date-calendar/parts/DateSegmentSelect.js +1 -1
  56. package/dist/esm/components/date-picker/DatePicker.d.ts +1 -1
  57. package/dist/esm/components/date-picker/DatePicker.js +59 -50
  58. package/dist/esm/components/date-picker/TanstackDatePicker.d.ts +22 -0
  59. package/dist/esm/components/date-picker/TanstackDatePicker.js +53 -0
  60. package/dist/esm/components/date-picker/parts/DateInput.js +4 -4
  61. package/dist/esm/components/date-picker-field/DatePickerField.d.ts +2 -0
  62. package/dist/esm/components/date-picker-field/TanstackDatePickerField.d.ts +71 -0
  63. package/dist/esm/components/date-picker-field/TanstackDatePickerField.js +41 -0
  64. package/dist/esm/components/definition-list/DefinitionList.context.d.ts +19 -0
  65. package/dist/esm/components/definition-list/DefinitionList.d.ts +24 -0
  66. package/dist/esm/components/definition-list/parts/DefinitionItem.d.ts +25 -0
  67. package/dist/esm/components/dialog/Dialog.d.ts +34 -22
  68. package/dist/esm/components/dialog/Dialog.js +90 -52
  69. package/dist/esm/components/dialog/parts/DialogActions.js +6 -6
  70. package/dist/esm/components/dialog/parts/DialogTitle.js +7 -4
  71. package/dist/esm/components/dialog/test-utils.d.ts +28 -0
  72. package/dist/esm/components/dialog/test-utils.js +78 -0
  73. package/dist/esm/components/error-state/ErrorState.js +7 -7
  74. package/dist/esm/components/filter/Filter.controls.d.ts +192 -0
  75. package/dist/esm/components/filter/Filter.controls.js +45 -0
  76. package/dist/esm/components/filter/Filter.d.ts +189 -0
  77. package/dist/esm/components/filter/Filter.js +147 -0
  78. package/dist/esm/components/filter/Filter.types.d.ts +121 -0
  79. package/dist/esm/components/filter/hooks/useFilterIds.d.ts +49 -0
  80. package/dist/esm/components/filter/hooks/useFilterIds.js +13 -0
  81. package/dist/esm/components/filter/hooks/useFilterState.d.ts +74 -0
  82. package/dist/esm/components/filter/hooks/useFilterState.js +23 -0
  83. package/dist/esm/components/filter/hooks/useFilterValue.d.ts +61 -0
  84. package/dist/esm/components/filter/hooks/useFilterValue.js +31 -0
  85. package/dist/esm/components/filter/parts/FilterButton.d.ts +75 -0
  86. package/dist/esm/components/filter/parts/FilterButton.js +55 -0
  87. package/dist/esm/components/filter/parts/FilterLabel.d.ts +96 -0
  88. package/dist/esm/components/filter/parts/FilterLabel.js +57 -0
  89. package/dist/esm/components/filter/parts/FilterPopover.d.ts +95 -0
  90. package/dist/esm/components/filter/parts/FilterPopover.js +79 -0
  91. package/dist/esm/components/filter/utils/value-formatters.d.ts +62 -0
  92. package/dist/esm/components/filter/utils/value-formatters.js +14 -0
  93. package/dist/esm/components/filter-toolbar/FilterToolbar.d.ts +110 -0
  94. package/dist/esm/components/filter-toolbar/FilterToolbar.js +172 -0
  95. package/dist/esm/components/filter-toolbar/FilterToolbar.types.d.ts +119 -0
  96. package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.d.ts +96 -0
  97. package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.js +132 -0
  98. package/dist/esm/components/filter-toolbar/parts/AddFilter.d.ts +63 -0
  99. package/dist/esm/components/filter-toolbar/parts/AddFilter.js +107 -0
  100. package/dist/esm/components/filter-toolbar/parts/AddFilterItem.d.ts +18 -0
  101. package/dist/esm/components/filter-toolbar/parts/AddFilterItem.js +18 -0
  102. package/dist/esm/components/filter-toolbar/utils/filter-adapters.d.ts +93 -0
  103. package/dist/esm/components/filter-toolbar/utils/filter-adapters.js +88 -0
  104. package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.d.ts +24 -0
  105. package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.js +19 -0
  106. package/dist/esm/components/form/Form.d.ts +2 -0
  107. package/dist/esm/components/form/TanstackForm.d.ts +24 -0
  108. package/dist/esm/components/form/TanstackForm.js +29 -0
  109. package/dist/esm/components/form-field/FormField.d.ts +2 -0
  110. package/dist/esm/components/form-field/TanstackFormField.context.d.ts +10 -0
  111. package/dist/esm/components/form-field/TanstackFormField.context.js +14 -0
  112. package/dist/esm/components/form-field/TanstackFormField.d.ts +49 -0
  113. package/dist/esm/components/form-field/TanstackFormField.js +46 -0
  114. package/dist/esm/components/form-field/parts/FormControl.d.ts +2 -0
  115. package/dist/esm/components/form-field/parts/FormFeedbackText.d.ts +2 -0
  116. package/dist/esm/components/form-field/parts/FormHelperText.d.ts +2 -0
  117. package/dist/esm/components/form-field/parts/FormLabel.d.ts +2 -0
  118. package/dist/esm/components/form-field/parts/RawFormContextualLink.d.ts +2 -0
  119. package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.d.ts +12 -0
  120. package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.js +32 -0
  121. package/dist/esm/components/form-field/parts/TanstackFormHelperText.d.ts +11 -0
  122. package/dist/esm/components/form-field/parts/TanstackFormHelperText.js +25 -0
  123. package/dist/esm/components/form-field/parts/TanstackFormLabel.d.ts +8 -0
  124. package/dist/esm/components/form-field/parts/TanstackFormLabel.js +26 -0
  125. package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.d.ts +26 -0
  126. package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.js +45 -0
  127. package/dist/esm/components/icon-button/CircularIconButton.d.ts +9 -9
  128. package/dist/esm/components/icon-button/CircularIconButton.js +53 -36
  129. package/dist/esm/components/icon-button/IconButton.variants.d.ts +1 -0
  130. package/dist/esm/components/icon-button/IconButton.variants.js +44 -28
  131. package/dist/esm/components/inline-field-group/InlineFieldGroup.context.d.ts +23 -0
  132. package/dist/esm/components/inline-field-group/InlineFieldGroup.context.js +6 -0
  133. package/dist/esm/components/inline-field-group/InlineFieldGroup.d.ts +119 -0
  134. package/dist/esm/components/inline-field-group/InlineFieldGroup.js +185 -0
  135. package/dist/esm/components/inline-field-group/hooks/useInlineFieldGroupMode.d.ts +46 -0
  136. package/dist/esm/components/inline-field-group/hooks/useInlineFieldGroupMode.js +27 -0
  137. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupEditView.d.ts +64 -0
  138. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupEditView.js +56 -0
  139. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupHeader.d.ts +95 -0
  140. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupHeader.js +106 -0
  141. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupReadView.d.ts +56 -0
  142. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupReadView.js +28 -0
  143. package/dist/esm/components/input/Input.js +36 -35
  144. package/dist/esm/components/input/TanstackInput.d.ts +22 -0
  145. package/dist/esm/components/input/TanstackInput.js +38 -0
  146. package/dist/esm/components/label/Label.js +12 -12
  147. package/dist/esm/components/link/RawLink.js +38 -31
  148. package/dist/esm/components/list-view/ListView.d.ts +56 -0
  149. package/dist/esm/components/list-view/ListView.fixtures.d.ts +20 -0
  150. package/dist/esm/components/list-view/ListView.js +44 -0
  151. package/dist/esm/components/list-view/parts/ListViewItemLabel.d.ts +34 -0
  152. package/dist/esm/components/list-view/parts/ListViewItemLabel.js +22 -0
  153. package/dist/esm/components/list-view/parts/ListViewItemText.d.ts +33 -0
  154. package/dist/esm/components/list-view/parts/ListViewItemText.js +22 -0
  155. package/dist/esm/components/list-view/parts/ListViewSection.d.ts +14 -0
  156. package/dist/esm/components/list-view/parts/ListViewSection.js +21 -0
  157. package/dist/esm/components/list-view/parts/RawListViewItem.d.ts +102 -0
  158. package/dist/esm/components/list-view/parts/RawListViewItem.js +80 -0
  159. package/dist/esm/components/multi-select/MultiSelect.d.ts +5 -7
  160. package/dist/esm/components/multi-select/MultiSelect.js +199 -176
  161. package/dist/esm/components/multi-select/MultiselectTypes.d.ts +114 -0
  162. package/dist/esm/components/multi-select/TanstackMultiSelect.d.ts +7 -0
  163. package/dist/esm/components/multi-select/TanstackMultiSelect.js +41 -0
  164. package/dist/esm/components/multi-select/parts/MultiSelectButton.d.ts +2 -0
  165. package/dist/esm/components/multi-select/parts/MultiSelectButton.js +62 -46
  166. package/dist/esm/components/multi-select/parts/MultiSelectPopover.js +15 -15
  167. package/dist/esm/components/multi-select-field/MultiSelectField.d.ts +45 -12
  168. package/dist/esm/components/multi-select-field/MultiSelectField.js +56 -66
  169. package/dist/esm/components/multi-select-field/TanstackMultiSelectField.d.ts +92 -0
  170. package/dist/esm/components/multi-select-field/TanstackMultiSelectField.js +48 -0
  171. package/dist/esm/components/multi-select-field/test-utils.d.ts +17 -0
  172. package/dist/esm/components/multi-select-field/test-utils.js +45 -0
  173. package/dist/esm/components/nav/parts/RawNavItem.js +6 -6
  174. package/dist/esm/components/navigation-card/NavigationCard.context.d.ts +31 -0
  175. package/dist/esm/components/navigation-card/NavigationCard.context.js +13 -0
  176. package/dist/esm/components/navigation-card/NavigationCard.d.ts +46 -0
  177. package/dist/esm/components/navigation-card/NavigationCard.js +62 -0
  178. package/dist/esm/components/navigation-card/NavigationCard.types.d.ts +37 -0
  179. package/dist/esm/components/navigation-card/NavigationCard.variants.d.ts +1147 -0
  180. package/dist/esm/components/navigation-card/NavigationCard.variants.js +164 -0
  181. package/dist/esm/components/navigation-card/parts/NavigationCardDescription.d.ts +39 -0
  182. package/dist/esm/components/navigation-card/parts/NavigationCardDescription.js +22 -0
  183. package/dist/esm/components/navigation-card/parts/NavigationCardGroup.d.ts +146 -0
  184. package/dist/esm/components/navigation-card/parts/NavigationCardGroup.js +93 -0
  185. package/dist/esm/components/navigation-card/parts/NavigationCardLabel.d.ts +32 -0
  186. package/dist/esm/components/navigation-card/parts/NavigationCardLabel.js +24 -0
  187. package/dist/esm/components/number-field/NumberField.d.ts +2 -0
  188. package/dist/esm/components/number-field/TanstackNumberField.d.ts +74 -0
  189. package/dist/esm/components/number-field/TanstackNumberField.js +44 -0
  190. package/dist/esm/components/number-input/NumberInput.js +31 -29
  191. package/dist/esm/components/number-input/TanstackNumberInput.d.ts +58 -0
  192. package/dist/esm/components/number-input/TanstackNumberInput.js +38 -0
  193. package/dist/esm/components/page/Page.js +12 -11
  194. package/dist/esm/components/pagination/parts/RawPaginationLink.js +22 -22
  195. package/dist/esm/components/pagination/parts/RawPaginationNext.js +13 -13
  196. package/dist/esm/components/pagination/parts/RawPaginationPrevious.js +10 -10
  197. package/dist/esm/components/payfit-brand/PayFitBrand.d.ts +4 -0
  198. package/dist/esm/components/payfit-brand/PayFitBrand.js +30 -22
  199. package/dist/esm/components/payfit-brand/PayFitPreprod.js +25 -25
  200. package/dist/esm/components/phone-number/PhoneNumberInput.d.ts +67 -0
  201. package/dist/esm/components/phone-number/PhoneNumberInput.js +322 -0
  202. package/dist/esm/components/phone-number/TanstackPhoneNumberInput.d.ts +64 -0
  203. package/dist/esm/components/phone-number/TanstackPhoneNumberInput.js +33 -0
  204. package/dist/esm/components/phone-number/parts/PhoneNumberItem.d.ts +42 -0
  205. package/dist/esm/components/phone-number/parts/PhoneNumberItem.js +68 -0
  206. package/dist/esm/components/phone-number/unknownFlag.svg.js +4 -0
  207. package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.d.ts +15 -0
  208. package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.js +32 -0
  209. package/dist/esm/components/pill/Pill.d.ts +2 -2
  210. package/dist/esm/components/pill/Pill.js +8 -8
  211. package/dist/esm/components/popover/Popover.js +6 -6
  212. package/dist/esm/components/promo-dialog/PromoDialog.d.ts +149 -0
  213. package/dist/esm/components/promo-dialog/PromoDialog.js +219 -0
  214. package/dist/esm/components/promo-dialog/parts/PromoDialogActions.d.ts +44 -0
  215. package/dist/esm/components/promo-dialog/parts/PromoDialogActions.js +29 -0
  216. package/dist/esm/components/promo-dialog/parts/PromoDialogContent.d.ts +43 -0
  217. package/dist/esm/components/promo-dialog/parts/PromoDialogContent.js +20 -0
  218. package/dist/esm/components/promo-dialog/parts/PromoDialogHero.d.ts +47 -0
  219. package/dist/esm/components/promo-dialog/parts/PromoDialogHero.js +25 -0
  220. package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.d.ts +53 -0
  221. package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.js +21 -0
  222. package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.d.ts +6 -0
  223. package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.js +18 -0
  224. package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.d.ts +13 -0
  225. package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.js +43 -0
  226. package/dist/esm/components/radio-button-group/parts/RadioButton.d.ts +29 -11
  227. package/dist/esm/components/radio-button-group/parts/RadioButton.js +53 -51
  228. package/dist/esm/components/radio-button-group-field/RadioButtonGroupField.d.ts +2 -0
  229. package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.d.ts +13 -0
  230. package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.js +38 -0
  231. package/dist/esm/components/search/Search.js +46 -46
  232. package/dist/esm/components/segmented-button-group/parts/ToggleButton.js +5 -5
  233. package/dist/esm/components/select/Select.d.ts +5 -4
  234. package/dist/esm/components/select/Select.js +53 -45
  235. package/dist/esm/components/select/TanstackSelect.d.ts +80 -0
  236. package/dist/esm/components/select/TanstackSelect.js +34 -0
  237. package/dist/esm/components/select/parts/SearchInput.d.ts +4 -1
  238. package/dist/esm/components/select/parts/SearchInput.js +49 -31
  239. package/dist/esm/components/select/parts/SelectButton.js +19 -17
  240. package/dist/esm/components/select-field/SelectField.d.ts +2 -0
  241. package/dist/esm/components/select-field/SelectField.js +8 -9
  242. package/dist/esm/components/select-field/TanstackSelectField.d.ts +124 -0
  243. package/dist/esm/components/select-field/TanstackSelectField.js +44 -0
  244. package/dist/esm/components/select-list/SelectList.d.ts +95 -0
  245. package/dist/esm/components/select-list/SelectList.js +79 -0
  246. package/dist/esm/components/select-list/SelectList.types.d.ts +29 -0
  247. package/dist/esm/components/select-list/constants.d.ts +36 -0
  248. package/dist/esm/components/select-list/constants.js +29 -0
  249. package/dist/esm/components/select-list/helpers.d.ts +42 -0
  250. package/dist/esm/components/select-list/helpers.js +48 -0
  251. package/dist/esm/components/select-list/hooks/useControlledSelection.d.ts +23 -0
  252. package/dist/esm/components/select-list/hooks/useControlledSelection.js +16 -0
  253. package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.d.ts +23 -0
  254. package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.js +31 -0
  255. package/dist/esm/components/select-list/parts/SelectListEmptyState.d.ts +8 -0
  256. package/dist/esm/components/select-list/parts/SelectListEmptyState.js +25 -0
  257. package/dist/esm/components/select-list/parts/SelectListOptGroup.d.ts +118 -0
  258. package/dist/esm/components/select-list/parts/SelectListOptGroup.js +28 -0
  259. package/dist/esm/components/select-list/parts/SelectListOption.d.ts +24 -0
  260. package/dist/esm/components/select-list/parts/SelectListOption.js +72 -0
  261. package/dist/esm/components/select-list/parts/SelectListSearchInput.d.ts +2 -0
  262. package/dist/esm/components/select-list/parts/SelectListSearchInput.js +43 -0
  263. package/dist/esm/components/select-list/parts/SelectedItemsSection.d.ts +54 -0
  264. package/dist/esm/components/select-list/parts/SelectedItemsSection.js +35 -0
  265. package/dist/esm/components/select-list/utils/partition.d.ts +13 -0
  266. package/dist/esm/components/select-list/utils/partition.js +9 -0
  267. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.d.ts +1 -5
  268. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.d.ts +6 -1
  269. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.js +23 -23
  270. package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.d.ts +27 -0
  271. package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.js +34 -0
  272. package/dist/esm/components/selectable-button-group/parts/SelectableButton.d.ts +1 -16
  273. package/dist/esm/components/selectable-button-group/parts/SelectableButton.js +56 -57
  274. package/dist/esm/components/selectable-button-group-field/SelectableButtonGroupField.d.ts +2 -0
  275. package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.d.ts +81 -0
  276. package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.js +47 -0
  277. package/dist/esm/components/selectable-card/internals/Description.js +1 -1
  278. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/SelectableCardCheckboxGroup.js +1 -1
  279. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.d.ts +26 -0
  280. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.js +32 -0
  281. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/parts/SelectableCardCheckbox.js +24 -24
  282. package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.d.ts +2 -0
  283. package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.js +12 -14
  284. package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.d.ts +28 -0
  285. package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.js +32 -0
  286. package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/RadioIndicator.js +14 -13
  287. package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/SelectableCardRadio.js +27 -25
  288. package/dist/esm/components/selectable-card/selectableCard.variant.js +5 -5
  289. package/dist/esm/components/selectable-card-checkbox-group-field/SelectableCardCheckboxGroupField.d.ts +2 -0
  290. package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.d.ts +10 -0
  291. package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.js +38 -0
  292. package/dist/esm/components/selectable-card-radio-group-field/SelectableCardRadioGroupField.d.ts +2 -0
  293. package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.d.ts +10 -0
  294. package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.js +38 -0
  295. package/dist/esm/components/side-panel/parts/SidePanelFooter.js +19 -10
  296. package/dist/esm/components/table/Table.context.d.ts +5 -0
  297. package/dist/esm/components/table/Table.context.js +14 -13
  298. package/dist/esm/components/table/Table.d.ts +93 -0
  299. package/dist/esm/components/table/Table.js +135 -107
  300. package/dist/esm/components/table/parts/TableBody.js +83 -21
  301. package/dist/esm/components/table/parts/TableEmptyState.js +6 -6
  302. package/dist/esm/components/table/parts/TableHeader.js +1 -1
  303. package/dist/esm/components/table/parts/TablePagination.js +1 -1
  304. package/dist/esm/components/table/parts/TableRow.js +1 -0
  305. package/dist/esm/components/tabs/Tabs.variant.d.ts +0 -6
  306. package/dist/esm/components/tabs/Tabs.variant.js +11 -12
  307. package/dist/esm/components/task-menu/parts/RawSubTask.js +26 -26
  308. package/dist/esm/components/task-menu/parts/RawTask.js +32 -28
  309. package/dist/esm/components/task-menu/parts/TaskGroup.js +30 -26
  310. package/dist/esm/components/task-menu/parts/task.variants.js +4 -2
  311. package/dist/esm/components/text/Text.d.ts +11 -1
  312. package/dist/esm/components/text/Text.js +41 -31
  313. package/dist/esm/components/text/Text.variants.d.ts +12 -0
  314. package/dist/esm/components/text/Text.variants.js +4 -0
  315. package/dist/esm/components/text-area/TanstackTextArea.d.ts +21 -0
  316. package/dist/esm/components/text-area/TanstackTextArea.js +35 -0
  317. package/dist/esm/components/text-area/TextArea.js +31 -29
  318. package/dist/esm/components/text-field/TanstackTextField.d.ts +79 -0
  319. package/dist/esm/components/text-field/TanstackTextField.js +60 -0
  320. package/dist/esm/components/text-field/TextField.d.ts +2 -0
  321. package/dist/esm/components/toast/UnityToast.js +5 -5
  322. package/dist/esm/components/toast/test-utils.d.ts +36 -0
  323. package/dist/esm/components/toast/test-utils.js +118 -0
  324. package/dist/esm/components/toggle-switch/TanstackToggleSwitch.d.ts +46 -0
  325. package/dist/esm/components/toggle-switch/TanstackToggleSwitch.js +25 -0
  326. package/dist/esm/components/toggle-switch/ToggleSwitch.d.ts +21 -9
  327. package/dist/esm/components/toggle-switch/ToggleSwitch.js +71 -32
  328. package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.d.ts +11 -0
  329. package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.js +34 -0
  330. package/dist/esm/components/toggle-switch-field/ToggleSwitchField.d.ts +2 -0
  331. package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.d.ts +57 -0
  332. package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.js +23 -0
  333. package/dist/esm/components/toggle-switch-group/ToggleSwitchGroup.js +1 -1
  334. package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.d.ts +19 -0
  335. package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.js +50 -0
  336. package/dist/esm/components/toggle-switch-group-field/ToggleSwitchGroupField.d.ts +2 -0
  337. package/dist/esm/docs/{table → examples/data}/mocks/employee-columns.d.ts +1 -1
  338. package/dist/esm/hooks/tanstack-form-context.d.ts +1 -0
  339. package/dist/esm/hooks/tanstack-form-context.js +8 -0
  340. package/dist/esm/hooks/use-form.d.ts +2 -0
  341. package/dist/esm/hooks/use-has-scroll.d.ts +71 -0
  342. package/dist/esm/hooks/use-has-scroll.js +75 -0
  343. package/dist/esm/hooks/use-tanstack-form.d.ts +393 -0
  344. package/dist/esm/hooks/use-tanstack-form.js +232 -0
  345. package/dist/esm/index.d.ts +45 -20
  346. package/dist/esm/index.js +472 -407
  347. package/dist/esm/index.storybook-testing.d.ts +3 -0
  348. package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.d.ts +6 -1
  349. package/dist/esm/integrations/tanstack-router/components/form-contextual-link/TanstackFormContextualLink.d.ts +43 -0
  350. package/dist/esm/integrations/tanstack-router/components/list-view/ListView.d.ts +34 -0
  351. package/dist/esm/integrations/tanstack-router/components/list-view/ListView.js +25 -0
  352. package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.d.ts +51 -0
  353. package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.js +32 -0
  354. package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.d.ts +73 -0
  355. package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.js +37 -0
  356. package/dist/esm/integrations/tanstack-router/index.d.ts +3 -0
  357. package/dist/esm/integrations/tanstack-router/utils/decorators.d.ts +1 -1
  358. package/dist/esm/integrations/tanstack-router.js +32 -26
  359. package/dist/esm/mocks/employees.d.ts +1 -5
  360. package/dist/esm/storybook-testing.js +8 -2
  361. package/dist/esm/storybook-utilities/previewTransform.d.ts +1 -0
  362. package/dist/esm/utils/scroll-detection.d.ts +77 -0
  363. package/dist/esm/utils/scroll-detection.js +33 -0
  364. package/dist/esm/utils/spacing.d.ts +63 -0
  365. package/dist/esm/utils/spacing.js +15 -0
  366. package/i18n/en-GB.json +27 -8
  367. package/i18n/es-ES.json +29 -10
  368. package/i18n/fr-FR.json +30 -11
  369. package/package.json +41 -42
  370. package/dist/esm/components/multi-select/Multiselect.types.d.ts +0 -109
  371. package/dist/esm/integrations/react-router/v5/UnityReactRouterV5Provider.d.ts +0 -6
  372. package/dist/esm/integrations/react-router/v5/UnityReactRouterV5Provider.js +0 -28
  373. package/dist/esm/integrations/react-router/v5/index.d.ts +0 -1
  374. package/dist/esm/integrations/react-router/v5.js +0 -4
@@ -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"
@@ -1,28 +1,28 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { forwardRef as i } from "react";
3
- import { uyTv as s } from "@payfit/unity-themes";
4
- import { Link as o } from "react-aria-components";
2
+ import { forwardRef as s } from "react";
3
+ import { uyTv as o } from "@payfit/unity-themes";
4
+ import { Link as i } from "react-aria-components";
5
5
  import { useIntl as l } from "react-intl";
6
- const d = s({
6
+ const d = o({
7
7
  base: [
8
8
  "uy:min-w-300 uy:h-300 uy:p-25 uy:flex uy:justify-center uy:items-center uy:typography-action uy:rounded-pill uy:transition-colors",
9
9
  "uy:enabled:text-content-neutral-enabled uy:enabled:bg-transparent uy:cursor-pointer",
10
- "uy:data-[disabled]:text-content-neutral-disabled uy:data-[disabled]:bg-surface-neutral-disabled uy:data-[disabled]:cursor-not-allowed",
11
- "uy:hover:text-content-neutral-hover uy:hover:bg-surface-neutral-hover",
12
- "uy:active:text-content-neutral-pressed uy:active:bg-surface-neutral-pressed uy:data-[pressed]:text-content-neutral-pressed uy:data-[pressed]:bg-surface-neutral-pressed",
10
+ "uy:data-[disabled]:text-content-neutral-disabled uy:data-[disabled]:bg-surface-neutral-lowest-disabled uy:data-[disabled]:cursor-not-allowed",
11
+ "uy:hover:text-content-neutral-hover uy:hover:bg-surface-neutral-lowest-hover",
12
+ "uy:active:text-content-neutral-pressed uy:active:bg-surface-neutral-lowest-pressed uy:data-[pressed]:text-content-neutral-pressed uy:data-[pressed]:bg-surface-neutral-lowest-pressed",
13
13
  "uy:focus-visible:outline-2 uy:focus-visible:outline-solid uy:focus-visible:outline-utility-focus-ring uy:focus-visible:outline-offset-2"
14
14
  ],
15
15
  variants: {
16
16
  isActive: {
17
- true: "uy:bg-surface-neutral-active",
17
+ true: "uy:bg-surface-neutral-lowest-selected",
18
18
  false: ""
19
19
  }
20
20
  }
21
- }), y = i(
21
+ }), y = s(
22
22
  ({ isActive: e, isDisabled: a, ...t }, n) => {
23
23
  const u = l();
24
24
  return /* @__PURE__ */ r(
25
- o,
25
+ i,
26
26
  {
27
27
  ref: n,
28
28
  className: d({ isActive: e }),
@@ -1,14 +1,14 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import { forwardRef as t } from "react";
3
- import { DisclosurePanel as e } from "react-aria-components";
4
- const l = t(
2
+ import { forwardRef as e } from "react";
3
+ import { DisclosurePanel as t } from "react-aria-components";
4
+ const l = e(
5
5
  ({ children: i, ...o }, r) => /* @__PURE__ */ a(
6
- e,
6
+ t,
7
7
  {
8
8
  ref: r,
9
9
  "data-dd-privacy": "allow",
10
10
  ...o,
11
- className: "uy:transition-all uy:transition-discrete uy:duration-200 uy:origin-top-left uy:aria-hidden:opacity-0 uy:aria-hidden:scale-y-0",
11
+ className: "uy:transition-all uy:transition-discrete uy:duration-200 uy:origin-top uy:aria-hidden:opacity-0 uy:aria-hidden:scale-y-0 uy:overflow-hidden uy:aria-hidden:max-h-0",
12
12
  children: /* @__PURE__ */ a("div", { className: "uy:ml-400 uy:typography-body", children: i })
13
13
  }
14
14
  )