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