@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
@@ -1,40 +1,40 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import { forwardRef as c, useRef as s } from "react";
3
- import { uyTv as d } from "@payfit/unity-themes";
4
- import { useToggleButtonGroup as m, mergeProps as f } from "react-aria";
2
+ import { forwardRef as i, useRef as s, useCallback as m } from "react";
3
+ import { uyTv as f } from "@payfit/unity-themes";
4
+ import { useToggleButtonGroup as y } from "react-aria";
5
5
  import { useToggleGroupState as g } from "react-stately";
6
6
  import { SelectableButtonGroupContext as v } from "./SelectableButtonGroup.context.js";
7
- const y = d({
8
- base: "uy:flex uy:gap-100"
9
- }), G = c((e, l) => {
10
- const t = s(null), o = g({
7
+ const B = f({
8
+ base: "uy:group uy:flex uy:gap-100 uy:flex-wrap"
9
+ }), b = i((e, t) => {
10
+ const o = s(null), u = g({
11
11
  ...e,
12
12
  selectedKeys: e.value,
13
13
  defaultSelectedKeys: e.defaultValue,
14
- onSelectionChange: (i) => {
15
- e.onChange?.(Array.from(i));
14
+ onSelectionChange: (l) => {
15
+ e.onChange?.(Array.from(l));
16
16
  }
17
- }), { groupProps: r } = m(e, o, t), n = y({ className: e.className }), { ref: u } = f({ ref: t }, { ref: l });
17
+ }), { groupProps: n } = y(e, u, o), r = B({ className: e.className }), c = m(
18
+ (l) => {
19
+ o.current = l, typeof t == "function" ? t(l) : t && (t.current = l);
20
+ },
21
+ [t]
22
+ );
18
23
  return /* @__PURE__ */ a(
19
24
  "div",
20
25
  {
21
- ...r,
22
- className: n,
23
- ref: u,
26
+ ...n,
27
+ className: r,
28
+ ref: c,
24
29
  "data-dd-privacy": "allow",
25
30
  "aria-invalid": e.isInvalid,
26
- children: /* @__PURE__ */ a(
27
- v.Provider,
28
- {
29
- value: { state: o, isInvalid: e.isInvalid },
30
- children: e.children
31
- }
32
- )
31
+ onBlur: e.onBlur,
32
+ children: /* @__PURE__ */ a(v.Provider, { value: u, children: e.children })
33
33
  }
34
34
  );
35
35
  });
36
- G.displayName = "SelectableButtonGroup";
36
+ b.displayName = "SelectableButtonGroup";
37
37
  export {
38
- G as SelectableButtonGroup,
39
- y as selectableButtonGroup
38
+ b as SelectableButtonGroup,
39
+ B as selectableButtonGroup
40
40
  };
@@ -0,0 +1,27 @@
1
+ import { SelectableButtonGroupProps } from './SelectableButtonGroup.js';
2
+ export type TanstackSelectableButtonGroupProps = Omit<SelectableButtonGroupProps, 'value' | 'defaultValue' | 'isInvalid'>;
3
+ /**
4
+ * `TanstackSelectableButtonGroup` is a selectable button group wired to the TanStack Form field context.
5
+ * It is based on the Unity `SelectableButtonGroup` component.
6
+ *
7
+ * Example:
8
+ * ```tsx
9
+ * function ExampleField() {
10
+ * const form = useTanstackUnityForm<{ choice: string[] }>({ validators: {} })
11
+ * return (
12
+ * <form.AppForm>
13
+ * <form.AppField name="choice">
14
+ * {(field) => (
15
+ * <field.SelectableButtonGroup selectionMode="single">
16
+ * <SelectableButton value="option1">Option 1</SelectableButton>
17
+ * <SelectableButton value="option2">Option 2</SelectableButton>
18
+ * </field.SelectableButtonGroup>
19
+ * )}
20
+ * </form.AppField>
21
+ * </form.AppForm>
22
+ * )
23
+ * }
24
+ * ```
25
+ */
26
+ declare const TanstackSelectableButtonGroup: import('react').ForwardRefExoticComponent<TanstackSelectableButtonGroupProps & import('react').RefAttributes<HTMLDivElement>>;
27
+ export { TanstackSelectableButtonGroup };
@@ -0,0 +1,34 @@
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import { forwardRef as u, useCallback as m } from "react";
3
+ import { useFieldContext as f } from "../../hooks/tanstack-form-context.js";
4
+ import { useFieldA11yContext as p } from "../form-field/TanstackFormField.context.js";
5
+ import { SelectableButtonGroup as b } from "./SelectableButtonGroup.js";
6
+ const T = u(({ onChange: o, ...l }, n) => {
7
+ const e = f(), a = p(), i = e.state.meta.isTouched && !e.state.meta.isValid, d = m(
8
+ (t) => {
9
+ const r = t.relatedTarget, s = t.currentTarget;
10
+ (!r || !s.contains(r)) && e.handleBlur();
11
+ },
12
+ [e]
13
+ );
14
+ return /* @__PURE__ */ c(
15
+ b,
16
+ {
17
+ ...l,
18
+ ref: n,
19
+ value: e.state.value,
20
+ onChange: (t) => {
21
+ e.handleChange(t), o?.(t);
22
+ },
23
+ onBlur: d,
24
+ isInvalid: i,
25
+ "aria-labelledby": a.labelId,
26
+ "aria-describedby": [a.helperTextId, a.feedbackTextId].filter(Boolean).join(" ") || void 0,
27
+ "aria-details": a.contextualLinkId
28
+ }
29
+ );
30
+ });
31
+ T.displayName = "TanstackSelectableButtonGroup";
32
+ export {
33
+ T as TanstackSelectableButtonGroup
34
+ };
@@ -1,6 +1,6 @@
1
1
  import { AriaToggleButtonProps } from 'react-aria';
2
- import { UnityIcon } from '@payfit/unity-icons';
3
2
  import { ToggleButtonProps } from 'react-aria-components';
3
+ import { UnityIcon } from '@payfit/unity-icons';
4
4
  export declare const selectableButton: import('tailwind-variants').TVReturnType<{
5
5
  hasIcon: {
6
6
  true: {
@@ -10,11 +10,6 @@ export declare const selectableButton: import('tailwind-variants').TVReturnType<
10
10
  base: string;
11
11
  };
12
12
  };
13
- isInvalid: {
14
- true: {
15
- base: string;
16
- };
17
- };
18
13
  }, {
19
14
  base: string[];
20
15
  icon: string[];
@@ -28,11 +23,6 @@ export declare const selectableButton: import('tailwind-variants').TVReturnType<
28
23
  base: string;
29
24
  };
30
25
  };
31
- isInvalid: {
32
- true: {
33
- base: string;
34
- };
35
- };
36
26
  }, {
37
27
  base: string[];
38
28
  icon: string[];
@@ -46,11 +36,6 @@ export declare const selectableButton: import('tailwind-variants').TVReturnType<
46
36
  base: string;
47
37
  };
48
38
  };
49
- isInvalid: {
50
- true: {
51
- base: string;
52
- };
53
- };
54
39
  }, {
55
40
  base: string[];
56
41
  icon: string[];
@@ -1,17 +1,17 @@
1
- import { jsxs as n, jsx as o, Fragment as x } from "react/jsx-runtime";
2
- import { forwardRef as h, useRef as I, useContext as w } from "react";
3
- import { uyTv as B } from "@payfit/unity-themes";
4
- import { useToggleButtonGroupItem as N, mergeProps as S } from "react-aria";
5
- import { Icon as G } from "../../icon/Icon.js";
6
- import { Spinner as P } from "../../spinner/Spinner.js";
7
- import { SelectableButtonGroupContext as R } from "../SelectableButtonGroup.context.js";
8
- const T = B({
1
+ import { jsxs as c, jsx as a, Fragment as v } from "react/jsx-runtime";
2
+ import { forwardRef as x, useRef as h, useContext as B, useCallback as N } from "react";
3
+ import { uyTv as S } from "@payfit/unity-themes";
4
+ import { useToggleButtonGroupItem as I } from "react-aria";
5
+ import { Icon as w } from "../../icon/Icon.js";
6
+ import { Spinner as C } from "../../spinner/Spinner.js";
7
+ import { SelectableButtonGroupContext as G } from "../SelectableButtonGroup.context.js";
8
+ const j = S({
9
9
  // add the component styles
10
10
  slots: {
11
11
  base: [
12
- "uy:group uy:border uy:border-solid uy:rounded-75 uy:py-100 uy:flex uy:gap-50 uy:items-center",
12
+ "uy:group uy:border uy:border-solid uy:rounded-pill uy:py-125 uy:sm:py-100 uy:flex uy:gap-50 uy:items-center",
13
13
  // default background and border
14
- "uy:border-border-form-enabled uy:bg-surface-form-enabled uy:text-content-form-enabled",
14
+ "uy:border-border-form-enabled uy:bg-surface-form-enabled uy:text-content-form-enabled uy:m-[1px]",
15
15
  // pseudo-states
16
16
  "uy:hover:bg-surface-form-hover uy:hover:border-border-form-hover",
17
17
  "uy:active:bg-surface-form-pressed uy:active:border-border-form-pressed",
@@ -20,24 +20,26 @@ const T = B({
20
20
  // Pressed
21
21
  "uy:data-[pressed=true]:bg-surface-form-pressed uy:data-[pressed=true]:border-border-form-pressed uy:data-[pressed=true]:text-content-form-pressed",
22
22
  // selected
23
- "uy:data-[selected=true]:bg-surface-form-selected uy:data-[selected=true]:border-border-form-selected uy:data-[selected=true]:text-content-primary-active",
23
+ "uy:data-[selected=true]:bg-surface-form-selected uy:data-[selected=true]:border-border-form-selected uy:data-[selected=true]:text-content-form-selected uy:data-[selected=true]:border-2 uy:data-[selected=true]:m-0",
24
24
  // Disabled
25
25
  "uy:disabled:bg-surface-form-disabled uy:disabled:border-border-form-disabled uy:disabled:text-content-form-disabled uy:disabled:cursor-not-allowed",
26
26
  // Loading
27
- "uy:data-[loading=true]:bg-surface-form-disabled uy:data-[loading=true]:border-border-form-disabled uy:data-[loading=true]:text-content-form-disabled uy:data-[loading=true]:cursor-wait"
27
+ "uy:data-[loading=true]:bg-surface-form-disabled uy:data-[loading=true]:border-border-form-disabled uy:data-[loading=true]:text-content-form-disabled uy:data-[loading=true]:cursor-wait",
28
+ // Invalid
29
+ "uy:group-aria-[invalid=true]:bg-surface-form-error uy:group-aria-[invalid=true]:border-border-form-error uy:group-aria-[invalid=true]:text-content-form-error"
28
30
  ],
29
31
  icon: [
30
- "uy:p-25 uy:text-content-neutral-low",
32
+ "uy:p-25 uy:text-content-form-enabled",
31
33
  // Pseudo-states
32
34
  "uy:group-data-[pressed=true]:text-content-form-pressed",
33
35
  // selected
34
- "uy:group-data-[selected=true]:text-content-primary-active",
36
+ "uy:group-data-[selected=true]:text-content-form-selected",
35
37
  // disabled
36
38
  "uy:group-disabled:text-content-form-disabled",
37
39
  // Loading
38
40
  "uy:data-[loading=true]:hidden"
39
41
  ],
40
- label: ["uy:typography-action"]
42
+ label: ["uy:typography-action uy:whitespace-nowrap"]
41
43
  },
42
44
  variants: {
43
45
  hasIcon: {
@@ -47,71 +49,68 @@ const T = B({
47
49
  false: {
48
50
  base: "uy:px-200"
49
51
  }
50
- },
51
- isInvalid: {
52
- true: {
53
- base: "uy:bg-surface-form-error uy:border-border-form-error"
54
- }
55
52
  }
56
53
  },
57
54
  defaultVariants: {
58
- hasIcon: !1,
59
- isInvalid: !1
55
+ hasIcon: !1
60
56
  }
61
- }), j = h(
62
- (r, c) => {
63
- const a = I(null), s = w(R);
64
- if (!s)
57
+ }), z = x(
58
+ (t, r) => {
59
+ const u = h(null), d = B(G);
60
+ if (!d)
65
61
  throw new Error(
66
- "SelectableButton must be used within a ToggleButtonGroup component"
62
+ "SelectableButton must be used within a SelectableButtonGroup component"
67
63
  );
68
- const { state: b, isInvalid: d } = s, { buttonProps: u, isPressed: f, isSelected: l } = N(
69
- { id: r.value, ...r },
70
- b,
71
- a
72
- ), { ref: y } = S({ ref: a }, { ref: c }), {
73
- isDisabled: m = !1,
64
+ const { buttonProps: l, isPressed: b, isSelected: i } = I(
65
+ { id: t.value, ...t },
66
+ d,
67
+ u
68
+ ), f = N(
69
+ (s) => {
70
+ u.current = s, typeof r == "function" ? r(s) : r && (r.current = s);
71
+ },
72
+ [r]
73
+ ), {
74
+ isDisabled: y = !1,
74
75
  isLoading: e = !1,
75
- prefixIcon: t,
76
- children: i
77
- } = r, { base: p, icon: g, label: v } = T({
78
- hasIcon: !!t && !e,
79
- isInvalid: !!d
76
+ prefixIcon: o,
77
+ children: n
78
+ } = t, { base: m, icon: p, label: g } = j({
79
+ hasIcon: !!o && !e
80
80
  });
81
- return /* @__PURE__ */ n(
81
+ return /* @__PURE__ */ c(
82
82
  "button",
83
83
  {
84
84
  "data-dd-privacy": "allow",
85
- ...u,
86
- ref: y,
87
- className: p({ className: r.className }),
88
- disabled: u.disabled || m || e,
85
+ ...l,
86
+ ref: f,
87
+ className: m({ className: t.className }),
88
+ disabled: l.disabled || y || e,
89
89
  "data-loading": e ? !0 : void 0,
90
- "data-pressed": f,
91
- "data-selected": l,
92
- "data-invalid": d,
90
+ "data-pressed": b,
91
+ "data-selected": i,
93
92
  "aria-busy": e,
94
93
  children: [
95
- t && !e && /* @__PURE__ */ o(
96
- G,
94
+ o && !e && /* @__PURE__ */ a(
95
+ w,
97
96
  {
98
- src: l ? `${t}Filled` : `${t}Outlined`,
97
+ src: i ? `${o}Filled` : `${o}Outlined`,
99
98
  role: "presentation",
100
- className: g(),
99
+ className: p(),
101
100
  size: 20
102
101
  }
103
102
  ),
104
- e ? /* @__PURE__ */ n(x, { children: [
105
- /* @__PURE__ */ o(P, { label: "Loading", size: "small", color: "inherit" }),
106
- /* @__PURE__ */ o("span", { className: "uy:sr-only", children: i })
107
- ] }) : /* @__PURE__ */ o("span", { className: v(), children: i })
103
+ e ? /* @__PURE__ */ c(v, { children: [
104
+ /* @__PURE__ */ a(C, { label: "Loading", size: "small", color: "inherit" }),
105
+ /* @__PURE__ */ a("span", { className: "uy:sr-only", children: n })
106
+ ] }) : /* @__PURE__ */ a("span", { className: g(), children: n })
108
107
  ]
109
108
  }
110
109
  );
111
110
  }
112
111
  );
113
- j.displayName = "SelectableButton";
112
+ z.displayName = "SelectableButton";
114
113
  export {
115
- j as SelectableButton,
116
- T as selectableButton
114
+ z as SelectableButton,
115
+ j as selectableButton
117
116
  };
@@ -54,6 +54,8 @@ type SelectableButtonGroupFieldComponent = (<TSchema extends Schema>(props: Sele
54
54
  * }
55
55
  * ```
56
56
  * @note The schema type parameter is needed to ensure type safety with the form's schema. If you omit it, the `name` prop will not be type-safe.
57
+ * @deprecated React Hook Form components are deprecated. Use the TanStack Form version instead.
58
+ * @see Storybook docs: https://unity-components.payfit.io/?path=/docs/forms-introduction-to-unity-forms--docs
57
59
  */
58
60
  declare const SelectableButtonGroupField: SelectableButtonGroupFieldComponent;
59
61
  export { SelectableButtonGroupField };
@@ -0,0 +1,81 @@
1
+ import { ReactNode } from 'react';
2
+ import { LabelProps } from '../label/Label.js';
3
+ import { TanstackSelectableButtonGroupProps } from '../selectable-button-group/TanstackSelectableButtonGroup.js';
4
+ export type TanstackSelectableButtonGroupFieldProps = TanstackSelectableButtonGroupProps & Pick<LabelProps, 'isRequired' | 'requiredVariant'> & {
5
+ /** The label for the selectable button group field. */
6
+ label: string;
7
+ /** Helper text to display below the selectable button group field. */
8
+ helperText?: ReactNode;
9
+ /** A contextual link to display below the selectable button group field. */
10
+ contextualLink?: ReactNode;
11
+ /** The SelectableButton components to render within the group. */
12
+ children: ReactNode;
13
+ };
14
+ /**
15
+ * The `TanstackSelectableButtonGroupField` component renders a full field (label, selectable button group)
16
+ * wired to the TanStack Form context. It manages state and accessibility via the
17
+ * context provided by `useTanstackUnityForm` and `<form.AppField name="…">`.
18
+ *
19
+ * Behavior:
20
+ * - Renders `TanstackSelectableButtonGroup` with its children.
21
+ * - Displays the label (`TanstackFormLabel`), helper text (`TanstackFormHelperText`),
22
+ * feedback messages (`TanstackFormFeedbackText`), and an optional contextual link.
23
+ *
24
+ * Accessibility:
25
+ * - Automatically wires `aria-labelledby`, `aria-describedby` (helper/feedback), and
26
+ * `aria-details` using identifiers from the `a11y` context.
27
+ *
28
+ * Key props:
29
+ * - `label: string` — label text.
30
+ * - `selectionMode?: "single" | "multiple"` — determines how many options can be selected.
31
+ * - `helperText?: ReactNode` — helper text displayed below the field.
32
+ * - `contextualLink?: ReactNode` — optional contextual link, referenced via `aria-details`.
33
+ * - Inherits props from `TanstackSelectableButtonGroup`.
34
+ * - `isRequired?`, `requiredVariant?` — control the required indicator in the label.
35
+ *
36
+ * Example:
37
+ * ```tsx
38
+ * import { useTanstackUnityForm } from "@payfit/unity-components"
39
+ * import { SelectableButton } from "@payfit/unity-components"
40
+ *
41
+ * function Example() {
42
+ * const schema = z.object({
43
+ * choice: z.array(z.string()).min(1, { message: 'Select at least one option' })
44
+ * })
45
+ *
46
+ * const form = useTanstackUnityForm<{ choice: string[] }>({ validators: {
47
+ * onBlur: schema,
48
+ * } })
49
+ * return (
50
+ * <form.AppForm>
51
+ * <form.AppField name="choice">
52
+ * {(field) => (
53
+ * <field.SelectableButtonGroup
54
+ * label="Choose your preferences"
55
+ * helperText="Select one or more options"
56
+ * selectionMode="multiple"
57
+ * >
58
+ * <SelectableButton value="option1">Option 1</SelectableButton>
59
+ * <SelectableButton value="option2">Option 2</SelectableButton>
60
+ * </field.SelectableButtonGroup>
61
+ * )}
62
+ * </form.AppField>
63
+ * </form.AppForm>
64
+ * )
65
+ * }
66
+ * ```
67
+ * @remarks Migration from `SelectableButtonGroupField` (non‑TanStack):
68
+ * - Do not pass a `name` prop to the field: use `<form.AppField name="…">`.
69
+ * - `value`, `defaultValue`, and `isInvalid` are derived from the TanStack form context.
70
+ */
71
+ declare const TanstackSelectableButtonGroupField: import('react').ForwardRefExoticComponent<TanstackSelectableButtonGroupProps & Pick<LabelProps, "isRequired" | "requiredVariant"> & {
72
+ /** The label for the selectable button group field. */
73
+ label: string;
74
+ /** Helper text to display below the selectable button group field. */
75
+ helperText?: ReactNode;
76
+ /** A contextual link to display below the selectable button group field. */
77
+ contextualLink?: ReactNode;
78
+ /** The SelectableButton components to render within the group. */
79
+ children: ReactNode;
80
+ } & import('react').RefAttributes<HTMLDivElement>>;
81
+ export { TanstackSelectableButtonGroupField };
@@ -0,0 +1,47 @@
1
+ import { jsxs as p, jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as s } from "react";
3
+ import { TanstackFormFeedbackText as d } from "../form-field/parts/TanstackFormFeedbackText.js";
4
+ import { TanstackFormHelperText as f } from "../form-field/parts/TanstackFormHelperText.js";
5
+ import { TanstackFormLabel as u } from "../form-field/parts/TanstackFormLabel.js";
6
+ import { TanstackFormField as k } from "../form-field/TanstackFormField.js";
7
+ import { TanstackSelectableButtonGroup as F } from "../selectable-button-group/TanstackSelectableButtonGroup.js";
8
+ function T({
9
+ label: r,
10
+ helperText: o,
11
+ contextualLink: e,
12
+ isRequired: a,
13
+ requiredVariant: m,
14
+ isDisabled: n,
15
+ children: c,
16
+ ...l
17
+ }, i) {
18
+ return /* @__PURE__ */ p(k, { children: [
19
+ /* @__PURE__ */ t(
20
+ u,
21
+ {
22
+ requiredVariant: m,
23
+ isRequired: a,
24
+ children: r
25
+ }
26
+ ),
27
+ o && /* @__PURE__ */ t(f, { children: o }),
28
+ /* @__PURE__ */ t(
29
+ F,
30
+ {
31
+ ref: i,
32
+ isDisabled: n,
33
+ ...l,
34
+ children: c
35
+ }
36
+ ),
37
+ /* @__PURE__ */ t(d, {}),
38
+ e
39
+ ] });
40
+ }
41
+ const b = s(
42
+ T
43
+ );
44
+ b.displayName = "TanstackSelectableButtonGroupField";
45
+ export {
46
+ b as TanstackSelectableButtonGroupField
47
+ };
@@ -2,7 +2,7 @@ import { jsx as t } from "react/jsx-runtime";
2
2
  import { uyTv as r } from "@payfit/unity-themes";
3
3
  import { Text as i } from "../../text/Text.js";
4
4
  const m = r({
5
- base: ["uy:mt-200", "uy:line-clamp-2"]
5
+ base: ["uy:mt-50", "uy:line-clamp-2"]
6
6
  }), a = ({ children: o }) => /* @__PURE__ */ t(i, { className: m(), variant: "body", children: o });
7
7
  export {
8
8
  a as Description,
@@ -4,9 +4,9 @@ import { CheckboxGroup as m } from "react-aria-components";
4
4
  const p = l(({ children: o, ...r }, e) => /* @__PURE__ */ a(
5
5
  m,
6
6
  {
7
+ ...r,
7
8
  ref: e,
8
9
  className: "uy:group uy:flex uy:md:flex-row uy:sm:flex-col uy:gap-150",
9
- ...r,
10
10
  children: o
11
11
  }
12
12
  ));
@@ -0,0 +1,26 @@
1
+ import { SelectableCardCheckboxGroupProps } from './SelectableCardCheckboxGroup.js';
2
+ export type TanstackSelectableCardCheckboxGroupProps = Omit<SelectableCardCheckboxGroupProps, 'value' | 'defaultValue' | 'isInvalid'>;
3
+ /**
4
+ * `TanstackSelectableCardCheckboxGroup` is a controlled checkbox group wired to the TanStack Form field context. It is based on the Unity `SelectableCardCheckboxGroup` component.
5
+ * @example
6
+ * ```tsx
7
+ * import { useTanstackUnityForm } from '@payfit/unity-components'
8
+ * function ExampleField() {
9
+ * const form = useTanstackUnityForm({ validators: {} })
10
+ * return (
11
+ * <form.Form>
12
+ * <form.AppField name="options">
13
+ * {(field) => (
14
+ * <field.SelectableCardCheckboxGroup>
15
+ * <SelectableCardCheckbox value="option1" title="Option 1" />
16
+ * <SelectableCardCheckbox value="option2" title="Option 2" />
17
+ * </field.SelectableCardCheckboxGroup>
18
+ * )}
19
+ * </form.AppField>
20
+ * </form.Form>
21
+ * )
22
+ * }
23
+ * ```
24
+ */
25
+ declare const TanstackSelectableCardCheckboxGroup: import('react').ForwardRefExoticComponent<TanstackSelectableCardCheckboxGroupProps & import('react').RefAttributes<HTMLDivElement>>;
26
+ export { TanstackSelectableCardCheckboxGroup };
@@ -0,0 +1,32 @@
1
+ import { jsx as b } from "react/jsx-runtime";
2
+ import { forwardRef as m } from "react";
3
+ import { useFieldContext as u } from "../../../hooks/tanstack-form-context.js";
4
+ import { useFieldA11yContext as p } from "../../form-field/TanstackFormField.context.js";
5
+ import { SelectableCardCheckboxGroup as f } from "./SelectableCardCheckboxGroup.js";
6
+ const h = m(({ onBlur: o, onChange: l, children: i, ...d }, n) => {
7
+ const e = u(), a = p(), s = e.state.meta.isTouched && !e.state.meta.isValid, r = [a.helperTextId, a.feedbackTextId].filter(Boolean).join(" "), c = Array.isArray(e.state.value) ? e.state.value : [];
8
+ return /* @__PURE__ */ b(
9
+ f,
10
+ {
11
+ ...d,
12
+ ref: n,
13
+ id: a.inputId,
14
+ value: c,
15
+ onChange: (t) => {
16
+ e.handleChange(t), l?.(t);
17
+ },
18
+ onBlur: (t) => {
19
+ e.handleBlur(), o?.(t);
20
+ },
21
+ isInvalid: s,
22
+ "aria-labelledby": a.labelId,
23
+ "aria-describedby": r.length > 0 ? r : void 0,
24
+ "aria-details": a.contextualLinkId,
25
+ children: i
26
+ }
27
+ );
28
+ });
29
+ h.displayName = "TanstackSelectableCardCheckboxGroup";
30
+ export {
31
+ h as TanstackSelectableCardCheckboxGroup
32
+ };
@@ -1,40 +1,40 @@
1
- import { jsx as r, jsxs as t, Fragment as n } from "react/jsx-runtime";
2
- import { forwardRef as f } from "react";
3
- import { useId as h } from "react-aria";
4
- import { Checkbox as p } from "react-aria-components";
5
- import { CheckboxIndicator as s } from "../../../checkbox/parts/CheckboxIndicator.js";
1
+ import { jsx as r, jsxs as m, Fragment as n } from "react/jsx-runtime";
2
+ import { forwardRef as s } from "react";
3
+ import { useId as f } from "react-aria";
4
+ import { Checkbox as h } from "react-aria-components";
5
+ import { CheckboxIndicator as p } from "../../../checkbox/parts/CheckboxIndicator.js";
6
6
  import { Text as b } from "../../../text/Text.js";
7
7
  import { Content as x } from "../../internals/Content.js";
8
8
  import { Description as C } from "../../internals/Description.js";
9
- import { Illustration as k } from "../../internals/Illustration.js";
10
- import { SelectedIndicator as u } from "../../internals/SelectedIndicator.js";
11
- import { selectableCard as I } from "../../selectableCard.variant.js";
12
- const v = f(({ title: i, description: e, illustration: m, ...c }, a) => {
13
- const { base: d } = I(), l = h();
9
+ import { Illustration as g } from "../../internals/Illustration.js";
10
+ import { SelectedIndicator as k } from "../../internals/SelectedIndicator.js";
11
+ import { selectableCard as u } from "../../selectableCard.variant.js";
12
+ const I = s(({ title: i, description: o, illustration: t, ...a }, c) => {
13
+ const { base: d } = u(), l = f();
14
14
  return /* @__PURE__ */ r(
15
- p,
15
+ h,
16
16
  {
17
- ref: a,
18
- className: ({ isFocusVisible: o }) => d({ isFocusVisible: o }),
19
- ...c,
20
- children: (o) => /* @__PURE__ */ t(n, { children: [
21
- /* @__PURE__ */ r(u, { children: /* @__PURE__ */ r(
22
- s,
17
+ ref: c,
18
+ className: ({ isFocusVisible: e }) => d({ isFocusVisible: e }),
19
+ ...a,
20
+ children: (e) => /* @__PURE__ */ m(n, { children: [
21
+ /* @__PURE__ */ r(k, { children: /* @__PURE__ */ r(
22
+ p,
23
23
  {
24
24
  className: "uy:group-hover:border-border-form-hover",
25
- ...o
25
+ ...e
26
26
  }
27
27
  ) }),
28
- /* @__PURE__ */ t(x, { children: [
29
- m && /* @__PURE__ */ r(k, { children: m }),
30
- /* @__PURE__ */ r(b, { variant: "h3", id: `${l}-label`, children: i }),
31
- e && /* @__PURE__ */ r(C, { children: e })
28
+ /* @__PURE__ */ m(x, { children: [
29
+ t && /* @__PURE__ */ r(g, { children: t }),
30
+ /* @__PURE__ */ r(b, { variant: "bodyLargeStrong", asElement: "h3", id: `${l}-label`, children: i }),
31
+ o && /* @__PURE__ */ r(C, { children: o })
32
32
  ] })
33
33
  ] })
34
34
  }
35
35
  );
36
36
  });
37
- v.displayName = "SelectableCardCheckbox";
37
+ I.displayName = "SelectableCardCheckbox";
38
38
  export {
39
- v as SelectableCardCheckbox
39
+ I as SelectableCardCheckbox
40
40
  };
@@ -15,6 +15,8 @@ export type SelectableCardRadioGroupProps = Omit<RadioGroupProps, 'className' |
15
15
  * ```
16
16
  * @see {@link SelectableCardRadioGroupProps} for all available props
17
17
  * @remarks [API Docs](https://unity-components.payfit.io/?path=/docs/inputs-selectablecardgroup-selectablecardradiogroup-docs) • [Design Docs](https://www.payfit.design/24f360409/p/05fc26-selectable-card)
18
+ *
19
+ * The SelectableCardRadioGroup component adapts to smaller screen sizes, with cards stacking vertically to maintain usability on mobile devices.
18
20
  */
19
21
  declare const SelectableCardRadioGroup: import('react').ForwardRefExoticComponent<SelectableCardRadioGroupProps & import('react').RefAttributes<HTMLDivElement>>;
20
22
  export { SelectableCardRadioGroup };