@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,20 +1,19 @@
1
- import { jsxs as n, jsx as e } from "react/jsx-runtime";
1
+ import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
2
  import { forwardRef as w } from "react";
3
3
  import { uyTv as M } from "@payfit/unity-themes";
4
4
  import { SearchField as N, Input as S, FieldError as I } from "react-aria-components";
5
5
  import { useIntl as k } from "react-intl";
6
6
  import { CircularIconButton as C } from "../icon-button/CircularIconButton.js";
7
- import { Icon as l } from "../icon/Icon.js";
7
+ import { Icon as n } from "../icon/Icon.js";
8
8
  import { Spinner as T } from "../spinner/Spinner.js";
9
9
  const B = M({
10
10
  slots: {
11
11
  base: [
12
- "uy:w-full uy:flex uy:gap-100 uy:border uy:border-solid uy:pt-100 uy:pb-100 uy:pl-150 uy:pr-150 uy:rounded-75 uy:border-border-form-enabled uy:items-center",
13
- "uy:enabled:border-border-form-enabled uy:enabled:bg-surface-danger-enabled",
14
- "uy:focus-visible:outline-none uy:focus-visible:ring-2 uy:focus-visible:ring-utility-focus-ring uy:focus-visible:ring-offset-2 uy:focus-visible:border-border-form-focus uy:focus-visible:bg-surface-form-focus",
15
- "uy:active:border-border-form-active",
16
- "uy:group-data-[disabled=true]:border-border-form-disabled uy:group-data-[disabled=true]:bg-surface-form-disabled",
17
- "uy:group-data-[invalid=true]:border-border-form-error uy:group-data-[invalid=true]:bg-surface-form-error"
12
+ "uy:w-full uy:flex uy:h-5.5 uy:sm:h-500 uy:gap-100 uy:transition-colors uy:py-125 uy:sm:py-100 uy:px-150 uy:rounded-100 uy:sm:rounded-75 uy:bg-surface-form-high-enabled uy:items-center",
13
+ "uy:focus-within:outline-none uy:focus-within:ring-2 uy:focus-within:ring-utility-focus-ring uy:focus-within:ring-offset-2 uy:focus-within:bg-surface-form-high-focus",
14
+ "uy:active:border uy:active:border-solid uy:active:border-border-form-active",
15
+ "uy:group-data-[disabled=true]:border uy:group-data-[disabled=true]:border-solid uy:group-data-[disabled=true]:border-border-form-disabled uy:group-data-[disabled=true]:bg-surface-form-high-disabled uy:hover:group-data-[disabled=true]:bg-surface-form-high-disabled uy:hover:group-data-[disabled=true]:border-border-form-disabled uy:group-data-[disabled=true]:cursor-not-allowed",
16
+ "uy:group-data-[invalid=true]:border uy:group-data-[invalid=true]:border-solid uy:group-data-[invalid=true]:border-border-form-error uy:group-data-[invalid=true]:bg-surface-form-high-error"
18
17
  ],
19
18
  input: [
20
19
  "uy:h-300 uy:typography-body uy:flex-grow uy:outline-none uy:[&::-webkit-search-cancel-button]:hidden",
@@ -22,7 +21,8 @@ const B = M({
22
21
  "uy:hover:text-content-form-hover",
23
22
  "uy:focus-visible:text-content-form-focus",
24
23
  "uy:active:text-content-form-active",
25
- "uy:group-data-[invalid=true]:bg-surface-form-error"
24
+ "uy:group-data-[invalid=true]:bg-surface-form-high-error",
25
+ "uy:group-data-[disabled=true]:cursor-not-allowed"
26
26
  ],
27
27
  icon: [
28
28
  "uy:group-data-[disabled=true]:text-content-neutral-lowest-disabled"
@@ -39,15 +39,15 @@ const B = M({
39
39
  variants: {
40
40
  isReadOnly: {
41
41
  true: {
42
- base: "uy:bg-surface-form-disabled",
42
+ base: "uy:bg-surface-form-high-disabled",
43
43
  icon: "uy:text-content-neutral-lowest-disabled",
44
- button: "uy:bg-surface-form-error uy:text-content-neutral-disabled",
45
- input: "uy:bg-surface-form-disabled uy:text-content-form-read-only uy:placeholder-content-form-read-only"
44
+ button: "uy:bg-surface-form-high-error uy:text-content-neutral-disabled",
45
+ input: "uy:bg-surface-form-high-disabled uy:text-content-form-read-only uy:placeholder-content-form-read-only"
46
46
  },
47
47
  false: {
48
48
  base: [
49
- "uy:bg-surface-form-enabled",
50
- "uy:hover:border-border-form-hover uy:hover:bg-surface-form-hover"
49
+ "uy:bg-surface-form-high-enabled",
50
+ "uy:hover:border-border-form-hover uy:hover:bg-surface-form-high-hover"
51
51
  ],
52
52
  icon: "uy:text-content-neutral-lowest",
53
53
  input: "uy:bg-text-content-form-active uy:placeholder-content-neutral-lowest"
@@ -57,69 +57,69 @@ const B = M({
57
57
  }), E = ({
58
58
  intl: a,
59
59
  placeholder: r,
60
- isDisabled: o
61
- }) => o ? "" : r || a.formatMessage({
60
+ isDisabled: t
61
+ }) => t ? "" : r || a.formatMessage({
62
62
  id: "unity:component:search:placeholder",
63
63
  defaultMessage: "Search"
64
64
  }), j = w(
65
65
  ({
66
66
  isLoading: a = !1,
67
67
  isInvalid: r,
68
- isDisabled: o,
68
+ isDisabled: t,
69
69
  isReadOnly: u,
70
- name: i,
71
- placeholder: s,
72
- feedbackText: d,
70
+ name: d,
71
+ placeholder: l,
72
+ feedbackText: s,
73
73
  label: c,
74
- ...f
75
- }, y) => {
74
+ ...y
75
+ }, f) => {
76
76
  const {
77
- base: b,
78
- icon: m,
79
- input: p,
80
- invalidIcon: g,
81
- wrapperState: v,
82
- feedbackText: h,
77
+ base: m,
78
+ icon: b,
79
+ input: g,
80
+ invalidIcon: h,
81
+ wrapperState: p,
82
+ feedbackText: v,
83
83
  closeButton: x
84
84
  } = B({
85
85
  isReadOnly: u
86
- }), t = k();
87
- return /* @__PURE__ */ n(
86
+ }), o = k();
87
+ return /* @__PURE__ */ i(
88
88
  N,
89
89
  {
90
90
  "aria-label": c,
91
91
  className: "uy:group",
92
- name: i,
93
- ref: y,
92
+ name: d,
93
+ ref: f,
94
94
  isInvalid: r,
95
- isDisabled: o || u,
95
+ isDisabled: t || u,
96
96
  isReadOnly: u,
97
- ...f,
97
+ ...y,
98
98
  children: [
99
- /* @__PURE__ */ n("div", { className: b(), children: [
99
+ /* @__PURE__ */ i("div", { className: m(), children: [
100
100
  /* @__PURE__ */ e(
101
- l,
101
+ n,
102
102
  {
103
103
  src: "MagnifyingGlassOutlined",
104
- className: m(),
104
+ className: b(),
105
105
  "aria-hidden": "true"
106
106
  }
107
107
  ),
108
108
  /* @__PURE__ */ e(
109
109
  S,
110
110
  {
111
- className: p(),
112
- placeholder: E({ intl: t, placeholder: s, isDisabled: o })
111
+ className: g(),
112
+ placeholder: E({ intl: o, placeholder: l, isDisabled: t })
113
113
  }
114
114
  ),
115
- /* @__PURE__ */ n("div", { className: v(), children: [
115
+ /* @__PURE__ */ i("div", { className: p(), children: [
116
116
  /* @__PURE__ */ e(
117
- l,
117
+ n,
118
118
  {
119
- className: g(),
119
+ className: h(),
120
120
  src: "WarningCircleOutlined",
121
121
  color: "content.form.invalid",
122
- alt: t.formatMessage({
122
+ alt: o.formatMessage({
123
123
  id: "unity:component:form-field:form-input:error:alt",
124
124
  defaultMessage: "Error"
125
125
  })
@@ -128,7 +128,7 @@ const B = M({
128
128
  a && /* @__PURE__ */ e(
129
129
  T,
130
130
  {
131
- label: t.formatMessage({
131
+ label: o.formatMessage({
132
132
  id: "unity:component:common:loading:label",
133
133
  defaultMessage: "Loading..."
134
134
  }),
@@ -141,7 +141,7 @@ const B = M({
141
141
  C,
142
142
  {
143
143
  asElement: "button",
144
- title: t.formatMessage({
144
+ title: o.formatMessage({
145
145
  id: "unity:component:common:clear:title",
146
146
  defaultMessage: "Clear"
147
147
  }),
@@ -151,7 +151,7 @@ const B = M({
151
151
  )
152
152
  ] })
153
153
  ] }),
154
- /* @__PURE__ */ e(I, { className: h(), children: d })
154
+ /* @__PURE__ */ e(I, { className: v(), children: s })
155
155
  ]
156
156
  }
157
157
  );
@@ -9,7 +9,7 @@ import { SegmentedButtonGroupContext as S } from "../SegmentedButtonGroups.conte
9
9
  const B = w({
10
10
  slots: {
11
11
  base: [
12
- "uy:rounded-50 uy:pt-50 uy:pb-50 uy:pr-150 uy:flex uy:gap-25",
12
+ "uy:group uy:rounded-50 uy:pt-50 uy:pb-50 uy:pr-150 uy:flex uy:gap-25",
13
13
  "uy:active:gb-surface-neutral-pressed"
14
14
  ],
15
15
  wrapper: [
@@ -40,7 +40,7 @@ const B = w({
40
40
  isSelected: !1,
41
41
  className: {
42
42
  base: "uy:hover:bg-surface-neutral-hover",
43
- wrapper: "uy:text-content-neutral-enabled uy:hover:text-content-neutral-hover"
43
+ wrapper: "uy:text-content-neutral-enabled uy:group-hover:text-content-neutral-hover"
44
44
  }
45
45
  },
46
46
  {
@@ -97,17 +97,17 @@ const B = w({
97
97
  n
98
98
  ] }), T = h(
99
99
  (r, n) => {
100
- const { children: o, value: e, prefixIcon: s, isLoading: a } = r, { state: u } = x(S), i = v(null), { inputProps: d } = P(r, u, i), { focusProps: f, isFocusVisible: p } = L(), y = V(), l = u.selectedValue === e, { base: g, wrapper: m } = B({
100
+ const { children: o, value: e, prefixIcon: s, isLoading: a } = r, { state: u } = x(S), i = v(null), { inputProps: d } = P(r, u, i), { focusProps: p, isFocusVisible: f } = L(), y = V(), l = u.selectedValue === e, { base: g, wrapper: m } = B({
101
101
  isSelected: l,
102
102
  hasPrefixIcon: !!s,
103
103
  isLoading: a,
104
- isFocusVisible: p
104
+ isFocusVisible: f
105
105
  });
106
106
  return /* @__PURE__ */ c("label", { ref: n, className: g(), "aria-disabled": a, children: [
107
107
  /* @__PURE__ */ t(I, { children: /* @__PURE__ */ t(
108
108
  "input",
109
109
  {
110
- ...N(d, f),
110
+ ...N(d, p),
111
111
  ref: i,
112
112
  disabled: a
113
113
  }
@@ -1,6 +1,6 @@
1
1
  import { ForwardedRef, JSX, ReactNode } from 'react';
2
2
  import { PopoverProps as AriaPopoverProps, SelectProps as AriaSelectProps } from 'react-aria-components';
3
- export interface SelectProps<T extends object> extends Omit<AriaSelectProps<T>, 'children' | 'label' | 'style' | 'className' | 'selectedKey' | 'onSelectionChange'> {
3
+ export interface SelectProps<T extends object> extends Omit<AriaSelectProps<T>, 'children' | 'label' | 'style' | 'className' | 'value' | 'defaultValue' | 'onChange' | 'selectionMode'> {
4
4
  /** In static mode, contains <SelectOption /> and <SelectOptionGroup /> components, in dynamic mode, contains a function to render items passed to the component*/
5
5
  children: ReactNode | ((item: T) => ReactNode);
6
6
  /** In dynamic mode, contains the items to display in the select */
@@ -8,15 +8,16 @@ export interface SelectProps<T extends object> extends Omit<AriaSelectProps<T>,
8
8
  /** Whether the field is read-only */
9
9
  isReadOnly?: boolean;
10
10
  /** The value of the selected item */
11
- value?: AriaSelectProps<T>['selectedKey'];
11
+ value?: AriaSelectProps<T>['value'];
12
12
  /** The default value of the selected item in uncontrolled mode */
13
- defaultValue?: AriaSelectProps<T>['defaultSelectedKey'];
13
+ defaultValue?: AriaSelectProps<T>['defaultValue'];
14
14
  /** Function trigger when a item is selected */
15
- onChange?: AriaSelectProps<T>['onSelectionChange'];
15
+ onChange?: AriaSelectProps<T>['onChange'];
16
16
  /** Whether the search input should be displayed or not */
17
17
  isSearchable?: boolean;
18
18
  /** The placement of the popover */
19
19
  placement?: Extract<AriaPopoverProps['placement'], 'top' | 'bottom'>;
20
+ searchInputAriaLabel?: string;
20
21
  }
21
22
  type SelectComponent = (<TItems extends object>(props: SelectProps<TItems> & {
22
23
  ref?: ForwardedRef<HTMLDivElement>;
@@ -1,67 +1,75 @@
1
1
  import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
- import { forwardRef as j, useState as B } from "react";
3
- import { uyTv as C } from "@payfit/unity-themes";
4
- import { useFilter as F, Select as z, Popover as A, Autocomplete as I, Virtualizer as p, ListLayout as d, ListBox as y } from "react-aria-components";
5
- import { SearchInput as T } from "./parts/SearchInput.js";
6
- import { SelectButton as U } from "./parts/SelectButton.js";
7
- const V = C({
2
+ import { forwardRef as B, useState as C } from "react";
3
+ import { uyTv as F } from "@payfit/unity-themes";
4
+ import { useFilter as I, Select as M, Popover as z, Autocomplete as A, Virtualizer as p, ListLayout as d, ListBox as y } from "react-aria-components";
5
+ import { useIntl as T } from "react-intl";
6
+ import { SearchInput as U } from "./parts/SearchInput.js";
7
+ import { SelectButton as V } from "./parts/SelectButton.js";
8
+ const $ = F({
8
9
  slots: {
9
10
  base: "uy:flex uy:flex-col uy:gap-100 uy:w-full",
10
- popover: "uy:rounded-75 uy:border uy:border-solid uy:border-border-neutral uy:w-[var(--trigger-width)] uy:bg-surface-neutral",
11
+ popover: "uy:rounded-100 uy:sm:rounded-75 uy:border uy:border-solid uy:border-border-neutral uy:w-[var(--trigger-width)] uy:bg-surface-neutral",
11
12
  listbox: "uy:overflow-y-auto uy:max-h-[296px] uy:pt-100 uy:pb-100"
12
13
  }
13
- }), $ = ({
14
+ }), k = ({
14
15
  children: t,
15
16
  items: o,
16
17
  placeholder: r,
17
- name: f,
18
- isDisabled: l,
19
- isInvalid: s,
18
+ isDisabled: s,
19
+ isInvalid: l,
20
20
  isReadOnly: n,
21
- value: i,
21
+ value: a,
22
22
  defaultValue: m,
23
- onChange: a,
24
- isSearchable: b = !1,
25
- onBlur: x,
26
- placement: S,
27
- ...h
28
- }, v) => {
29
- const [g, w] = B(!1), { contains: N } = F({ sensitivity: "base" }), { base: O, popover: L, listbox: u } = V(), P = i !== void 0 || a !== void 0 ? {
30
- value: i,
31
- onChange: a
23
+ onChange: i,
24
+ isSearchable: f = !1,
25
+ onBlur: b,
26
+ placement: h,
27
+ searchInputAriaLabel: x,
28
+ ...S
29
+ }, g) => {
30
+ const v = T(), [w, N] = C(!1), { contains: O } = I({ sensitivity: "base" }), { base: L, popover: P, listbox: u } = $(), j = a !== void 0 || i !== void 0 ? {
31
+ value: a,
32
+ onChange: i
32
33
  } : { defaultValue: m };
33
34
  return /* @__PURE__ */ c(
34
- z,
35
+ M,
35
36
  {
36
- onOpenChange: w,
37
- ...h,
38
- ref: v,
39
- className: O(),
40
- name: f,
41
- placeholder: l ? void 0 : r,
42
- isDisabled: l || n,
43
- isInvalid: s,
44
- onBlur: x,
45
- ...P,
37
+ onOpenChange: N,
38
+ ...S,
39
+ ref: g,
40
+ className: L(),
41
+ placeholder: s ? void 0 : r,
42
+ isDisabled: s || n,
43
+ isInvalid: l,
44
+ onBlur: b,
45
+ ...j,
46
46
  children: [
47
47
  /* @__PURE__ */ e(
48
- U,
48
+ V,
49
49
  {
50
- isDisabled: l,
51
- isInvalid: s,
50
+ isDisabled: s,
51
+ isInvalid: l,
52
52
  isReadOnly: n,
53
- isOpen: g
53
+ isOpen: w
54
54
  }
55
55
  ),
56
56
  /* @__PURE__ */ e(
57
- A,
57
+ z,
58
58
  {
59
59
  offset: 1,
60
60
  containerPadding: 8,
61
- className: L(),
62
- placement: S,
63
- children: b ? /* @__PURE__ */ c(I, { filter: N, children: [
64
- /* @__PURE__ */ e(T, {}),
61
+ className: P(),
62
+ placement: h,
63
+ children: f ? /* @__PURE__ */ c(A, { filter: O, children: [
64
+ /* @__PURE__ */ e(
65
+ U,
66
+ {
67
+ "aria-label": x ?? v.formatMessage({
68
+ id: "unity:component:select:search:label",
69
+ defaultMessage: "Search options"
70
+ })
71
+ }
72
+ ),
65
73
  /* @__PURE__ */ e(
66
74
  p,
67
75
  {
@@ -87,10 +95,10 @@ const V = C({
87
95
  ]
88
96
  }
89
97
  );
90
- }, k = j(function(o, r) {
91
- return $(o, r);
98
+ }, q = B(function(o, r) {
99
+ return k(o, r);
92
100
  });
93
- k.displayName = "Select";
101
+ q.displayName = "Select";
94
102
  export {
95
- k as Select
103
+ q as Select
96
104
  };
@@ -0,0 +1,80 @@
1
+ import { ForwardedRef, JSX } from 'react';
2
+ import { SelectProps } from './Select.js';
3
+ export type TanstackSelectProps<T extends object> = Omit<SelectProps<T>, 'value' | 'defaultValue' | 'onChange' | 'isInvalid' | 'name'>;
4
+ type TanstackSelectComponent = (<TItems extends object>(props: TanstackSelectProps<TItems> & {
5
+ ref?: ForwardedRef<HTMLDivElement>;
6
+ }) => JSX.Element) & {
7
+ displayName?: string;
8
+ };
9
+ /**
10
+ * `TanstackSelect` is a controlled select component wired to the TanStack Form field context.
11
+ * It is based on the Unity `Select` component.
12
+ *
13
+ * The component supports both static and dynamic options, search functionality, and grouping.
14
+ * It manages field state via the TanStack Form context, including validation and accessibility.
15
+ *
16
+ * Example (static options):
17
+ * ```tsx
18
+ * import { useTanstackUnityForm } from '@payfit/unity-components'
19
+ * import { z } from 'zod'
20
+ *
21
+ * function ExampleField() {
22
+ * const schema = z.object({
23
+ * fruit: z.string().min(1, 'Please select a fruit'),
24
+ * })
25
+ *
26
+ * const form = useTanstackUnityForm({
27
+ * validators: { onBlur: schema },
28
+ * defaultValues: { fruit: '' }
29
+ * })
30
+ *
31
+ * return (
32
+ * <form>
33
+ * <form.AppField name="fruit">
34
+ * {() => (
35
+ * <TanstackSelect placeholder="Choose a fruit">
36
+ * <SelectOption id="Apple">Apple</SelectOption>
37
+ * <SelectOption id="Banana">Banana</SelectOption>
38
+ * <SelectOption id="Orange">Orange</SelectOption>
39
+ * </TanstackSelect>
40
+ * )}
41
+ * </form.AppField>
42
+ * </form>
43
+ * )
44
+ * }
45
+ * ```
46
+ *
47
+ * Example (dynamic items):
48
+ * ```tsx
49
+ * function ExampleWithDynamicItems() {
50
+ * const items = [
51
+ * { id: 'Apple', name: 'Apple' },
52
+ * { id: 'Banana', name: 'Banana' },
53
+ * { id: 'Orange', name: 'Orange' },
54
+ * ]
55
+ *
56
+ * const form = useTanstackUnityForm({
57
+ * validators: {},
58
+ * defaultValues: { fruit: '' }
59
+ * })
60
+ *
61
+ * return (
62
+ * <form>
63
+ * <form.AppField name="fruit">
64
+ * {() => (
65
+ * <form.Select items={items}>
66
+ * {item => <SelectOption id={item.id}>{item.name}</SelectOption>}
67
+ * </form.Select>
68
+ * )}
69
+ * </form.AppField>
70
+ * </form>
71
+ * )
72
+ * }
73
+ * ```
74
+ * @remarks Migration from `Select` (non-TanStack):
75
+ * - Do not pass `value`, `defaultValue`, `onChange`, or `name` props: these are managed by the TanStack form context.
76
+ * - `isInvalid` is automatically derived from the field's validation state.
77
+ * - Use within `<form.AppField name="...">` to connect to the form state.
78
+ */
79
+ declare const TanstackSelect: TanstackSelectComponent;
80
+ export { TanstackSelect };
@@ -0,0 +1,34 @@
1
+ import { jsx as d } from "react/jsx-runtime";
2
+ import { forwardRef as m } from "react";
3
+ import { useFieldContext as f } from "../../hooks/tanstack-form-context.js";
4
+ import { useFieldA11yContext as u } from "../form-field/TanstackFormField.context.js";
5
+ import { Select as p } from "./Select.js";
6
+ const b = ({ onBlur: o, isReadOnly: a, isDisabled: l, ...r }, s) => {
7
+ const e = f(), t = u(), c = e.state.meta.isTouched && !e.state.meta.isValid, i = [t.helperTextId, t.feedbackTextId].filter(Boolean).join(" ");
8
+ return /* @__PURE__ */ d(
9
+ p,
10
+ {
11
+ ...r,
12
+ ref: s,
13
+ value: e.state.value ?? "",
14
+ onChange: (n) => {
15
+ e.handleChange(n);
16
+ },
17
+ onBlur: (n) => {
18
+ e.handleBlur(), o?.(n);
19
+ },
20
+ isReadOnly: a,
21
+ isDisabled: l,
22
+ isInvalid: c,
23
+ "aria-labelledby": t.labelId,
24
+ "aria-describedby": i.length > 0 ? i : void 0,
25
+ "aria-details": t.contextualLinkId
26
+ }
27
+ );
28
+ }, h = m(function(a, l) {
29
+ return b(a, l);
30
+ });
31
+ h.displayName = "TanstackSelect";
32
+ export {
33
+ h as TanstackSelect
34
+ };
@@ -1,2 +1,5 @@
1
- declare const SearchInput: import('react').ForwardRefExoticComponent<import('react').RefAttributes<HTMLDivElement>>;
1
+ export interface SearchInputProps {
2
+ 'aria-label': string;
3
+ }
4
+ declare const SearchInput: import('react').ForwardRefExoticComponent<SearchInputProps & import('react').RefAttributes<HTMLDivElement>>;
2
5
  export { SearchInput };
@@ -1,40 +1,58 @@
1
- import { jsxs as e, Fragment as i, jsx as t } from "react/jsx-runtime";
2
- import { forwardRef as l } from "react";
1
+ import { jsxs as e, Fragment as l, jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as c } from "react";
3
3
  import { uyTv as m } from "@payfit/unity-themes";
4
- import { SearchField as y, Input as c } from "react-aria-components";
5
- import { useIntl as d } from "react-intl";
6
- import { CircularIconButton as p } from "../../icon-button/CircularIconButton.js";
7
- import { Icon as f } from "../../icon/Icon.js";
8
- const b = m({
4
+ import { SearchField as y, Input as d } from "react-aria-components";
5
+ import { useIntl as p } from "react-intl";
6
+ import { CircularIconButton as f } from "../../icon-button/CircularIconButton.js";
7
+ import { Icon as b } from "../../icon/Icon.js";
8
+ const h = m({
9
9
  slots: {
10
- base: "uy:flex uy:gap-100 uy:border uy:border-solid uy:pt-100 uy:pb-100 uy:pl-150 uy:pr-150 uy:rounded-75 uy:border-border-form-active uy:text-content-form-active uy:mt-100 uy:mb-100 uy:ml-100 uy:mr-100 uy:typography-body",
11
- input: "uy:flex-grow uy:outline-none uy:[&::-webkit-search-cancel-button]:hidden",
10
+ base: "uy:flex uy:gap-100 uy:transition-colors uy:py-125 uy:sm:py-100 uy:px-150 uy:rounded-100 uy:sm:rounded-75 uy:bg-surface-form-high-enabled uy:text-content-form-active uy:mt-100 uy:mb-100 uy:ml-100 uy:mr-100 uy:typography-body uy:focus-within:border uy:focus-within:border-solid uy:focus-within:border-border-form-active",
11
+ input: "uy:flex-grow uy:outline-none uy:[&::-webkit-search-cancel-button]:hidden uy:min-h-300",
12
12
  button: "uy:text-content-neutral-enabled",
13
13
  separator: "uy:h-[1px] uy:bg-surface-neutral-lowest uy:w-full uy:mt-100"
14
14
  }
15
- }), h = l((g, r) => {
16
- const o = d(), { base: u, input: a, button: n, separator: s } = b();
17
- return /* @__PURE__ */ e(i, { children: [
18
- /* @__PURE__ */ e(y, { className: u(), ref: r, "data-dd-privacy": "mask", children: [
19
- /* @__PURE__ */ t(f, { src: "MagnifyingGlassOutlined", "aria-hidden": "true" }),
20
- /* @__PURE__ */ t(c, { className: a() }),
21
- /* @__PURE__ */ t(
22
- p,
15
+ }), g = c(
16
+ ({ "aria-label": r }, o) => {
17
+ const a = p(), { base: u, input: n, button: i, separator: s } = h();
18
+ return /* @__PURE__ */ e(l, { children: [
19
+ /* @__PURE__ */ e(
20
+ y,
23
21
  {
24
- title: o.formatMessage({
25
- id: "unity:component:common:clear:title",
26
- defaultMessage: "Clear"
27
- }),
28
- className: n(),
29
- icon: "CloseOutlined",
30
- asElement: "button"
22
+ className: u(),
23
+ ref: o,
24
+ "data-dd-privacy": "mask",
25
+ "aria-label": r,
26
+ children: [
27
+ /* @__PURE__ */ t(
28
+ b,
29
+ {
30
+ src: "MagnifyingGlassOutlined",
31
+ "aria-hidden": "true",
32
+ color: "content.neutral.lowest"
33
+ }
34
+ ),
35
+ /* @__PURE__ */ t(d, { className: n() }),
36
+ /* @__PURE__ */ t(
37
+ f,
38
+ {
39
+ title: a.formatMessage({
40
+ id: "unity:component:common:clear:title",
41
+ defaultMessage: "Clear"
42
+ }),
43
+ className: i(),
44
+ icon: "CloseOutlined",
45
+ asElement: "button"
46
+ }
47
+ )
48
+ ]
31
49
  }
32
- )
33
- ] }),
34
- /* @__PURE__ */ t("div", { "aria-hidden": "true", className: s() })
35
- ] });
36
- });
37
- h.displayName = "SearchInput";
50
+ ),
51
+ /* @__PURE__ */ t("div", { "aria-hidden": "true", className: s() })
52
+ ] });
53
+ }
54
+ );
55
+ g.displayName = "SearchInput";
38
56
  export {
39
- h as SearchInput
57
+ g as SearchInput
40
58
  };