@payfit/unity-components 0.0.0-alpha.6 → 0.0.0-alpha.8

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 (366) hide show
  1. package/dist/cjs/components/alert/Alert.js +1 -1
  2. package/dist/cjs/components/anchor/Anchor.d.ts +1 -1
  3. package/dist/cjs/components/app-layout/AppLayout.d.ts +6 -1
  4. package/dist/cjs/components/app-layout/AppLayout.js +1 -1
  5. package/dist/cjs/components/app-menu/AppMenu.d.ts +9 -0
  6. package/dist/cjs/components/app-menu/AppMenu.js +1 -0
  7. package/dist/cjs/components/app-menu/parts/AppMenu.context.d.ts +9 -0
  8. package/dist/cjs/components/app-menu/parts/AppMenu.context.js +1 -0
  9. package/dist/cjs/components/app-menu/parts/AppMenuFooter.d.ts +31 -0
  10. package/dist/cjs/components/app-menu/parts/AppMenuFooter.js +1 -0
  11. package/dist/cjs/components/app-menu/parts/AppMenuHeader.d.ts +9 -0
  12. package/dist/cjs/components/app-menu/parts/AppMenuHeader.js +1 -0
  13. package/dist/cjs/components/app-menu/parts/AppMenuNavContent.d.ts +5 -0
  14. package/dist/cjs/components/app-menu/parts/AppMenuNavContent.js +1 -0
  15. package/dist/cjs/components/avatar/Avatar.context.d.ts +1 -1
  16. package/dist/cjs/components/avatar/parts/AvatarFallback.d.ts +1 -1
  17. package/dist/cjs/components/avatar/parts/AvatarFallback.js +1 -1
  18. package/dist/cjs/components/avatar/parts/AvatarPair.d.ts +20 -0
  19. package/dist/cjs/components/avatar/parts/AvatarPair.js +1 -1
  20. package/dist/cjs/components/avatar/utils.d.ts +1 -0
  21. package/dist/cjs/components/avatar/utils.js +1 -0
  22. package/dist/cjs/components/badge/Badge.d.ts +3 -0
  23. package/dist/cjs/components/badge/Badge.js +1 -1
  24. package/dist/cjs/components/breadcrumbs/Breadcrumbs.context.d.ts +1 -1
  25. package/dist/cjs/components/breadcrumbs/parts/Breadcrumb.js +1 -1
  26. package/dist/cjs/components/button/Button.d.ts +2 -1
  27. package/dist/cjs/components/checkbox/Checkbox.d.ts +225 -0
  28. package/dist/cjs/components/checkbox/Checkbox.js +1 -0
  29. package/dist/cjs/components/checkbox/parts/CheckboxIndicator.d.ts +13 -0
  30. package/dist/cjs/components/checkbox/parts/CheckboxIndicator.js +1 -0
  31. package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +74 -0
  32. package/dist/cjs/components/checkbox-field/CheckboxField.js +1 -0
  33. package/dist/cjs/components/checkbox-group/CheckboxGroup.d.ts +65 -0
  34. package/dist/cjs/components/checkbox-group/CheckboxGroup.js +1 -0
  35. package/dist/cjs/components/checkbox-group-field/CheckboxGroupField.d.ts +79 -0
  36. package/dist/cjs/components/checkbox-group-field/CheckboxGroupField.js +1 -0
  37. package/dist/cjs/components/collapsible/Collapsible.d.ts +33 -0
  38. package/dist/cjs/components/collapsible/parts/CollapsibleContent.d.ts +36 -0
  39. package/dist/cjs/components/collapsible/parts/CollapsibleTitle.d.ts +39 -0
  40. package/dist/cjs/components/date-picker/DatePicker.d.ts +67 -0
  41. package/dist/cjs/components/date-picker/DatePicker.js +1 -0
  42. package/dist/cjs/components/date-picker/hooks/useMonthsList.d.ts +4 -0
  43. package/dist/cjs/components/date-picker/hooks/useMonthsList.js +1 -0
  44. package/dist/cjs/components/date-picker/hooks/useYearsList.d.ts +10 -0
  45. package/dist/cjs/components/date-picker/hooks/useYearsList.js +1 -0
  46. package/dist/cjs/components/date-picker/parts/DateCalendar.d.ts +9 -0
  47. package/dist/cjs/components/date-picker/parts/DateCalendar.js +1 -0
  48. package/dist/cjs/components/date-picker/parts/DateInput.d.ts +155 -0
  49. package/dist/cjs/components/date-picker/parts/DateInput.js +1 -0
  50. package/dist/cjs/components/date-picker/parts/DateSegmentSelect.d.ts +15 -0
  51. package/dist/cjs/components/date-picker/parts/DateSegmentSelect.js +1 -0
  52. package/dist/cjs/components/date-picker/utils.d.ts +12 -0
  53. package/dist/cjs/components/date-picker-field/DatePickerField.d.ts +83 -0
  54. package/dist/cjs/components/date-picker-field/DatePickerField.js +1 -0
  55. package/dist/cjs/components/dialog/Dialog.d.ts +1 -1
  56. package/dist/cjs/components/dialog/parts/DialogActions/DialogButton.d.ts +1 -1
  57. package/dist/cjs/components/dialog/parts/DialogActions.d.ts +1 -1
  58. package/dist/cjs/components/dialog/parts/DialogTitle.d.ts +1 -1
  59. package/dist/cjs/components/fieldset/Fieldset.d.ts +150 -0
  60. package/dist/cjs/components/fieldset/Fieldset.js +1 -0
  61. package/dist/cjs/components/fieldset/parts/FieldGroup.d.ts +27 -0
  62. package/dist/cjs/components/fieldset/parts/FieldGroup.js +1 -0
  63. package/dist/cjs/components/form/Form.context.d.ts +1 -1
  64. package/dist/cjs/components/form/Form.context.js +1 -1
  65. package/dist/cjs/components/form/Form.js +1 -1
  66. package/dist/cjs/components/form-field/FormField.context.d.ts +32 -14
  67. package/dist/cjs/components/form-field/FormField.context.js +1 -0
  68. package/dist/cjs/components/form-field/FormField.d.ts +40 -16
  69. package/dist/cjs/components/form-field/FormField.js +1 -0
  70. package/dist/cjs/components/form-field/parts/FormContextualLink.js +1 -0
  71. package/dist/cjs/components/form-field/parts/FormControl.d.ts +30 -0
  72. package/dist/cjs/components/form-field/parts/FormControl.js +1 -0
  73. package/dist/cjs/components/form-field/parts/FormFeedbackText.js +1 -0
  74. package/dist/cjs/components/form-field/parts/FormHelperText.d.ts +1 -1
  75. package/dist/cjs/components/form-field/parts/FormHelperText.js +1 -0
  76. package/dist/cjs/components/form-field/parts/FormLabel.d.ts +3 -3
  77. package/dist/cjs/components/form-field/parts/FormLabel.js +1 -0
  78. package/dist/cjs/components/form-field/utils/isFieldRequired.d.ts +8 -0
  79. package/dist/cjs/components/form-field/utils/isFieldRequired.js +1 -0
  80. package/dist/cjs/components/full-page-loader/FullPageLoader.d.ts +13 -0
  81. package/dist/cjs/components/full-page-loader/FullPageLoader.js +1 -0
  82. package/dist/cjs/components/icon/Icon.d.ts +1 -1
  83. package/dist/cjs/components/icon-button/CircularIconButton.d.ts +1 -1
  84. package/dist/cjs/components/icon-button/CircularIconButton.js +1 -1
  85. package/dist/cjs/components/icon-button/IconButton.d.ts +1 -1
  86. package/dist/cjs/components/icon-button/IconButton.variants.js +1 -1
  87. package/dist/cjs/components/input/Input.d.ts +48 -0
  88. package/dist/cjs/components/input/Input.js +1 -0
  89. package/dist/cjs/components/label/Label.d.ts +17 -0
  90. package/dist/cjs/components/label/Label.js +1 -0
  91. package/dist/cjs/components/link/Link.d.ts +10 -0
  92. package/dist/cjs/components/link/Link.js +1 -1
  93. package/dist/cjs/components/menu/Menu.d.ts +1 -1
  94. package/dist/cjs/components/menu/parts/MenuContent.d.ts +1 -1
  95. package/dist/cjs/components/menu/parts/MenuContent.js +1 -1
  96. package/dist/cjs/components/menu/parts/MenuHeader.d.ts +1 -1
  97. package/dist/cjs/components/menu/parts/MenuItem.d.ts +2 -2
  98. package/dist/cjs/components/menu/parts/MenuSeparator.d.ts +1 -1
  99. package/dist/cjs/components/menu/parts/MenuTrigger.d.ts +1 -1
  100. package/dist/cjs/components/multi-select/MultiSelect.d.ts +62 -0
  101. package/dist/cjs/components/multi-select/MultiSelect.js +1 -0
  102. package/dist/cjs/components/multi-select/Multiselect.context.d.ts +7 -0
  103. package/dist/cjs/components/multi-select/Multiselect.context.js +1 -0
  104. package/dist/cjs/components/multi-select/Multiselect.types.d.ts +109 -0
  105. package/dist/cjs/components/multi-select/hooks/use-combobox-filter.d.ts +12 -0
  106. package/dist/cjs/components/multi-select/hooks/use-combobox-filter.js +1 -0
  107. package/dist/cjs/components/multi-select/hooks/use-multiselection-state.d.ts +14 -0
  108. package/dist/cjs/components/multi-select/hooks/use-multiselection-state.js +1 -0
  109. package/dist/cjs/components/multi-select/parts/MultiSelectButton.d.ts +16 -0
  110. package/dist/cjs/components/multi-select/parts/MultiSelectButton.js +1 -0
  111. package/dist/cjs/components/multi-select/parts/MultiSelectOptGroup.d.ts +69 -0
  112. package/dist/cjs/components/multi-select/parts/MultiSelectOptGroup.js +1 -0
  113. package/dist/cjs/components/multi-select/parts/MultiSelectOption.d.ts +20 -0
  114. package/dist/cjs/components/multi-select/parts/MultiSelectOption.js +1 -0
  115. package/dist/cjs/components/multi-select/parts/MultiSelectPopover.d.ts +7 -0
  116. package/dist/cjs/components/multi-select/parts/MultiSelectPopover.js +1 -0
  117. package/dist/cjs/components/multi-select-field/MultiSelectField.d.ts +59 -0
  118. package/dist/cjs/components/multi-select-field/MultiSelectField.js +1 -0
  119. package/dist/cjs/components/nav/Nav.d.ts +1 -1
  120. package/dist/cjs/components/nav/parts/NavGroup.d.ts +1 -1
  121. package/dist/cjs/components/nav/parts/NavItem.d.ts +1 -1
  122. package/dist/cjs/components/segmented-button-group/SegmentedButtonGroup.d.ts +43 -0
  123. package/dist/cjs/components/segmented-button-group/SegmentedButtonGroups.context.d.ts +8 -0
  124. package/dist/cjs/components/segmented-button-group/parts/ToggleButton.d.ts +47 -0
  125. package/dist/cjs/components/select/Select.d.ts +52 -0
  126. package/dist/cjs/components/select/Select.js +1 -0
  127. package/dist/cjs/components/select/parts/SearchInput.d.ts +2 -0
  128. package/dist/cjs/components/select/parts/SearchInput.js +1 -0
  129. package/dist/cjs/components/select/parts/SelectButton.d.ts +8 -0
  130. package/dist/cjs/components/select/parts/SelectButton.js +1 -0
  131. package/dist/cjs/components/select/parts/SelectOption.context.d.ts +8 -0
  132. package/dist/cjs/components/select/parts/SelectOption.context.js +1 -0
  133. package/dist/cjs/components/select/parts/SelectOption.d.ts +6 -0
  134. package/dist/cjs/components/select/parts/SelectOption.js +1 -0
  135. package/dist/cjs/components/select/parts/SelectOptionGroup.d.ts +12 -0
  136. package/dist/cjs/components/select/parts/SelectOptionGroup.js +1 -0
  137. package/dist/cjs/components/select/parts/SelectOptionHelper.d.ts +4 -0
  138. package/dist/cjs/components/select/parts/SelectOptionHelper.js +1 -0
  139. package/dist/cjs/components/select-field/SelectField.d.ts +50 -0
  140. package/dist/cjs/components/select-field/SelectField.js +1 -0
  141. package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.context.d.ts +2 -0
  142. package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.context.js +1 -0
  143. package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.d.ts +59 -0
  144. package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.js +1 -0
  145. package/dist/cjs/components/selectable-button-group/parts/SelectableButton.d.ts +127 -0
  146. package/dist/cjs/components/selectable-button-group/parts/SelectableButton.js +1 -0
  147. package/dist/cjs/components/spinner/Spinner.d.ts +2 -2
  148. package/dist/cjs/components/spinner/Spinner.js +1 -1
  149. package/dist/cjs/components/spinner/dynamic-content.d.ts +1 -1
  150. package/dist/cjs/components/stepper/Stepper.context.d.ts +1 -1
  151. package/dist/cjs/components/tabs/Tabs.context.d.ts +1 -1
  152. package/dist/cjs/components/tabs/parts/NavigationButton.d.ts +1 -1
  153. package/dist/cjs/components/tabs/parts/Tab.d.ts +3 -1
  154. package/dist/cjs/components/tabs/parts/TabList.js +1 -1
  155. package/dist/cjs/components/text/Text.d.ts +1 -1
  156. package/dist/cjs/components/text-area/TextArea.d.ts +220 -0
  157. package/dist/cjs/components/text-area/TextArea.js +1 -0
  158. package/dist/cjs/components/text-field/TextField.d.ts +63 -0
  159. package/dist/cjs/components/text-field/TextField.js +1 -0
  160. package/dist/cjs/components/toast/Toast.context.d.ts +1 -1
  161. package/dist/cjs/components/toast/ToastManager.d.ts +1 -1
  162. package/dist/cjs/components/toast/UnityToast.d.ts +3 -3
  163. package/dist/cjs/components/toast/UnityToast.js +1 -1
  164. package/dist/cjs/components/toast/parts/ToastAction.d.ts +1 -1
  165. package/dist/cjs/components/toast/parts/ToastContent.d.ts +1 -1
  166. package/dist/cjs/components/toast/parts/ToastTitle.d.ts +1 -1
  167. package/dist/cjs/components/tooltip/Tooltip.d.ts +1 -1
  168. package/dist/cjs/components/tooltip/Tooltip.js +1 -1
  169. package/dist/cjs/docs/blocks/Cards.d.ts +7 -7
  170. package/dist/cjs/hooks/use-form.d.ts +5 -5
  171. package/dist/cjs/hooks/use-form.js +1 -0
  172. package/dist/cjs/hooks/use-resizable.d.ts +13 -0
  173. package/dist/cjs/hooks/use-resizable.js +1 -0
  174. package/dist/cjs/index.d.ts +40 -0
  175. package/dist/cjs/index.js +1 -1
  176. package/dist/cjs/providers/router/RouterProvider.d.ts +1 -1
  177. package/dist/cjs/providers/router/integrations/UnityReactRouterV5Provider.d.ts +1 -1
  178. package/dist/cjs/types/utils.d.ts +1 -0
  179. package/dist/esm/components/alert/Alert.mjs +1 -1
  180. package/dist/esm/components/anchor/Anchor.d.mts +1 -1
  181. package/dist/esm/components/app-layout/AppLayout.d.mts +6 -1
  182. package/dist/esm/components/app-layout/AppLayout.mjs +35 -23
  183. package/dist/esm/components/app-menu/AppMenu.d.mts +9 -0
  184. package/dist/esm/components/app-menu/AppMenu.mjs +14 -0
  185. package/dist/esm/components/app-menu/parts/AppMenu.context.d.mts +9 -0
  186. package/dist/esm/components/app-menu/parts/AppMenu.context.mjs +25 -0
  187. package/dist/esm/components/app-menu/parts/AppMenuFooter.d.mts +31 -0
  188. package/dist/esm/components/app-menu/parts/AppMenuFooter.mjs +224 -0
  189. package/dist/esm/components/app-menu/parts/AppMenuHeader.d.mts +9 -0
  190. package/dist/esm/components/app-menu/parts/AppMenuHeader.mjs +41 -0
  191. package/dist/esm/components/app-menu/parts/AppMenuNavContent.d.mts +5 -0
  192. package/dist/esm/components/app-menu/parts/AppMenuNavContent.mjs +23 -0
  193. package/dist/esm/components/avatar/Avatar.context.d.mts +1 -1
  194. package/dist/esm/components/avatar/parts/AvatarFallback.d.mts +1 -1
  195. package/dist/esm/components/avatar/parts/AvatarFallback.mjs +9 -8
  196. package/dist/esm/components/avatar/parts/AvatarPair.d.mts +20 -0
  197. package/dist/esm/components/avatar/parts/AvatarPair.mjs +10 -10
  198. package/dist/esm/components/avatar/utils.d.mts +1 -0
  199. package/dist/esm/components/avatar/utils.mjs +4 -0
  200. package/dist/esm/components/badge/Badge.d.mts +3 -0
  201. package/dist/esm/components/badge/Badge.mjs +12 -10
  202. package/dist/esm/components/breadcrumbs/Breadcrumbs.context.d.mts +1 -1
  203. package/dist/esm/components/breadcrumbs/parts/Breadcrumb.mjs +10 -10
  204. package/dist/esm/components/button/Button.d.mts +2 -1
  205. package/dist/esm/components/checkbox/Checkbox.d.mts +225 -0
  206. package/dist/esm/components/checkbox/Checkbox.mjs +146 -0
  207. package/dist/esm/components/checkbox/parts/CheckboxIndicator.d.mts +13 -0
  208. package/dist/esm/components/checkbox/parts/CheckboxIndicator.mjs +146 -0
  209. package/dist/esm/components/checkbox-field/CheckboxField.d.mts +74 -0
  210. package/dist/esm/components/checkbox-field/CheckboxField.mjs +61 -0
  211. package/dist/esm/components/checkbox-group/CheckboxGroup.d.mts +65 -0
  212. package/dist/esm/components/checkbox-group/CheckboxGroup.mjs +66 -0
  213. package/dist/esm/components/checkbox-group-field/CheckboxGroupField.d.mts +79 -0
  214. package/dist/esm/components/checkbox-group-field/CheckboxGroupField.mjs +54 -0
  215. package/dist/esm/components/collapsible/Collapsible.d.mts +33 -0
  216. package/dist/esm/components/collapsible/parts/CollapsibleContent.d.mts +36 -0
  217. package/dist/esm/components/collapsible/parts/CollapsibleTitle.d.mts +39 -0
  218. package/dist/esm/components/date-picker/DatePicker.d.mts +67 -0
  219. package/dist/esm/components/date-picker/DatePicker.mjs +163 -0
  220. package/dist/esm/components/date-picker/hooks/useMonthsList.d.mts +4 -0
  221. package/dist/esm/components/date-picker/hooks/useMonthsList.mjs +26 -0
  222. package/dist/esm/components/date-picker/hooks/useYearsList.d.mts +10 -0
  223. package/dist/esm/components/date-picker/hooks/useYearsList.mjs +33 -0
  224. package/dist/esm/components/date-picker/parts/DateCalendar.d.mts +9 -0
  225. package/dist/esm/components/date-picker/parts/DateCalendar.mjs +172 -0
  226. package/dist/esm/components/date-picker/parts/DateInput.d.mts +155 -0
  227. package/dist/esm/components/date-picker/parts/DateInput.mjs +124 -0
  228. package/dist/esm/components/date-picker/parts/DateSegmentSelect.d.mts +15 -0
  229. package/dist/esm/components/date-picker/parts/DateSegmentSelect.mjs +69 -0
  230. package/dist/esm/components/date-picker/utils.d.mts +12 -0
  231. package/dist/esm/components/date-picker-field/DatePickerField.d.mts +83 -0
  232. package/dist/esm/components/date-picker-field/DatePickerField.mjs +73 -0
  233. package/dist/esm/components/dialog/Dialog.d.mts +1 -1
  234. package/dist/esm/components/dialog/parts/DialogActions/DialogButton.d.mts +1 -1
  235. package/dist/esm/components/dialog/parts/DialogActions.d.mts +1 -1
  236. package/dist/esm/components/dialog/parts/DialogTitle.d.mts +1 -1
  237. package/dist/esm/components/fieldset/Fieldset.d.mts +150 -0
  238. package/dist/esm/components/fieldset/Fieldset.mjs +65 -0
  239. package/dist/esm/components/fieldset/parts/FieldGroup.d.mts +27 -0
  240. package/dist/esm/components/fieldset/parts/FieldGroup.mjs +18 -0
  241. package/dist/esm/components/form/Form.context.d.mts +1 -1
  242. package/dist/esm/components/form/Form.context.mjs +21 -14
  243. package/dist/esm/components/form/Form.mjs +5 -5
  244. package/dist/esm/components/form-field/FormField.context.d.mts +32 -14
  245. package/dist/esm/components/form-field/FormField.context.mjs +81 -0
  246. package/dist/esm/components/form-field/FormField.d.mts +40 -16
  247. package/dist/esm/components/form-field/FormField.mjs +60 -0
  248. package/dist/esm/components/form-field/parts/FormContextualLink.mjs +35 -0
  249. package/dist/esm/components/form-field/parts/FormControl.d.mts +30 -0
  250. package/dist/esm/components/form-field/parts/FormControl.mjs +50 -0
  251. package/dist/esm/components/form-field/parts/FormFeedbackText.mjs +25 -0
  252. package/dist/esm/components/form-field/parts/FormHelperText.d.mts +1 -1
  253. package/dist/esm/components/form-field/parts/FormHelperText.mjs +25 -0
  254. package/dist/esm/components/form-field/parts/FormLabel.d.mts +3 -3
  255. package/dist/esm/components/form-field/parts/FormLabel.mjs +30 -0
  256. package/dist/esm/components/form-field/utils/isFieldRequired.d.mts +8 -0
  257. package/dist/esm/components/form-field/utils/isFieldRequired.mjs +23 -0
  258. package/dist/esm/components/full-page-loader/FullPageLoader.d.mts +13 -0
  259. package/dist/esm/components/full-page-loader/FullPageLoader.mjs +26 -0
  260. package/dist/esm/components/icon/Icon.d.mts +1 -1
  261. package/dist/esm/components/icon-button/CircularIconButton.d.mts +1 -1
  262. package/dist/esm/components/icon-button/CircularIconButton.mjs +10 -11
  263. package/dist/esm/components/icon-button/IconButton.d.mts +1 -1
  264. package/dist/esm/components/icon-button/IconButton.variants.mjs +9 -9
  265. package/dist/esm/components/input/Input.d.mts +48 -0
  266. package/dist/esm/components/input/Input.mjs +148 -0
  267. package/dist/esm/components/label/Label.d.mts +17 -0
  268. package/dist/esm/components/label/Label.mjs +56 -0
  269. package/dist/esm/components/link/Link.d.mts +10 -0
  270. package/dist/esm/components/link/Link.mjs +26 -24
  271. package/dist/esm/components/menu/Menu.d.mts +1 -1
  272. package/dist/esm/components/menu/parts/MenuContent.d.mts +1 -1
  273. package/dist/esm/components/menu/parts/MenuContent.mjs +1 -1
  274. package/dist/esm/components/menu/parts/MenuHeader.d.mts +1 -1
  275. package/dist/esm/components/menu/parts/MenuItem.d.mts +2 -2
  276. package/dist/esm/components/menu/parts/MenuSeparator.d.mts +1 -1
  277. package/dist/esm/components/menu/parts/MenuTrigger.d.mts +1 -1
  278. package/dist/esm/components/multi-select/MultiSelect.d.mts +62 -0
  279. package/dist/esm/components/multi-select/MultiSelect.mjs +230 -0
  280. package/dist/esm/components/multi-select/Multiselect.context.d.mts +7 -0
  281. package/dist/esm/components/multi-select/Multiselect.context.mjs +8 -0
  282. package/dist/esm/components/multi-select/Multiselect.types.d.mts +109 -0
  283. package/dist/esm/components/multi-select/hooks/use-combobox-filter.d.mts +12 -0
  284. package/dist/esm/components/multi-select/hooks/use-combobox-filter.mjs +22 -0
  285. package/dist/esm/components/multi-select/hooks/use-multiselection-state.d.mts +14 -0
  286. package/dist/esm/components/multi-select/hooks/use-multiselection-state.mjs +47 -0
  287. package/dist/esm/components/multi-select/parts/MultiSelectButton.d.mts +16 -0
  288. package/dist/esm/components/multi-select/parts/MultiSelectButton.mjs +160 -0
  289. package/dist/esm/components/multi-select/parts/MultiSelectOptGroup.d.mts +69 -0
  290. package/dist/esm/components/multi-select/parts/MultiSelectOptGroup.mjs +34 -0
  291. package/dist/esm/components/multi-select/parts/MultiSelectOption.d.mts +20 -0
  292. package/dist/esm/components/multi-select/parts/MultiSelectOption.mjs +85 -0
  293. package/dist/esm/components/multi-select/parts/MultiSelectPopover.d.mts +7 -0
  294. package/dist/esm/components/multi-select/parts/MultiSelectPopover.mjs +65 -0
  295. package/dist/esm/components/multi-select-field/MultiSelectField.d.mts +59 -0
  296. package/dist/esm/components/multi-select-field/MultiSelectField.mjs +81 -0
  297. package/dist/esm/components/nav/Nav.d.mts +1 -1
  298. package/dist/esm/components/nav/parts/NavGroup.d.mts +1 -1
  299. package/dist/esm/components/nav/parts/NavItem.d.mts +1 -1
  300. package/dist/esm/components/segmented-button-group/SegmentedButtonGroup.d.mts +43 -0
  301. package/dist/esm/components/segmented-button-group/SegmentedButtonGroups.context.d.mts +8 -0
  302. package/dist/esm/components/segmented-button-group/parts/ToggleButton.d.mts +47 -0
  303. package/dist/esm/components/select/Select.d.mts +52 -0
  304. package/dist/esm/components/select/Select.mjs +63 -0
  305. package/dist/esm/components/select/parts/SearchInput.d.mts +2 -0
  306. package/dist/esm/components/select/parts/SearchInput.mjs +39 -0
  307. package/dist/esm/components/select/parts/SelectButton.d.mts +8 -0
  308. package/dist/esm/components/select/parts/SelectButton.mjs +87 -0
  309. package/dist/esm/components/select/parts/SelectOption.context.d.mts +8 -0
  310. package/dist/esm/components/select/parts/SelectOption.context.mjs +24 -0
  311. package/dist/esm/components/select/parts/SelectOption.d.mts +6 -0
  312. package/dist/esm/components/select/parts/SelectOption.mjs +63 -0
  313. package/dist/esm/components/select/parts/SelectOptionGroup.d.mts +12 -0
  314. package/dist/esm/components/select/parts/SelectOptionGroup.mjs +26 -0
  315. package/dist/esm/components/select/parts/SelectOptionHelper.d.mts +4 -0
  316. package/dist/esm/components/select/parts/SelectOptionHelper.mjs +20 -0
  317. package/dist/esm/components/select-field/SelectField.d.mts +50 -0
  318. package/dist/esm/components/select-field/SelectField.mjs +65 -0
  319. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.d.mts +2 -0
  320. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.mjs +5 -0
  321. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.d.mts +59 -0
  322. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.mjs +25 -0
  323. package/dist/esm/components/selectable-button-group/parts/SelectableButton.d.mts +127 -0
  324. package/dist/esm/components/selectable-button-group/parts/SelectableButton.mjs +98 -0
  325. package/dist/esm/components/spinner/Spinner.d.mts +2 -2
  326. package/dist/esm/components/spinner/Spinner.mjs +34 -27
  327. package/dist/esm/components/spinner/dynamic-content.d.mts +1 -1
  328. package/dist/esm/components/stepper/Stepper.context.d.mts +1 -1
  329. package/dist/esm/components/tabs/Tabs.context.d.mts +1 -1
  330. package/dist/esm/components/tabs/parts/NavigationButton.d.mts +1 -1
  331. package/dist/esm/components/tabs/parts/Tab.d.mts +3 -1
  332. package/dist/esm/components/tabs/parts/TabList.mjs +47 -25
  333. package/dist/esm/components/text/Text.d.mts +1 -1
  334. package/dist/esm/components/text-area/TextArea.d.mts +220 -0
  335. package/dist/esm/components/text-area/TextArea.mjs +161 -0
  336. package/dist/esm/components/text-field/TextField.d.mts +63 -0
  337. package/dist/esm/components/text-field/TextField.mjs +78 -0
  338. package/dist/esm/components/toast/Toast.context.d.mts +1 -1
  339. package/dist/esm/components/toast/ToastManager.d.mts +1 -1
  340. package/dist/esm/components/toast/UnityToast.d.mts +3 -3
  341. package/dist/esm/components/toast/UnityToast.mjs +5 -5
  342. package/dist/esm/components/toast/parts/ToastAction.d.mts +1 -1
  343. package/dist/esm/components/toast/parts/ToastContent.d.mts +1 -1
  344. package/dist/esm/components/toast/parts/ToastTitle.d.mts +1 -1
  345. package/dist/esm/components/tooltip/Tooltip.d.mts +1 -1
  346. package/dist/esm/components/tooltip/Tooltip.mjs +11 -17
  347. package/dist/esm/docs/blocks/Cards.d.mts +7 -7
  348. package/dist/esm/hooks/use-form.d.mts +5 -5
  349. package/dist/esm/hooks/use-form.mjs +32 -0
  350. package/dist/esm/hooks/use-resizable.d.mts +13 -0
  351. package/dist/esm/hooks/use-resizable.mjs +51 -0
  352. package/dist/esm/index.d.mts +40 -0
  353. package/dist/esm/index.mjs +196 -109
  354. package/dist/esm/providers/router/RouterProvider.d.mts +1 -1
  355. package/dist/esm/providers/router/RouterProvider.mjs +3 -3
  356. package/dist/esm/providers/router/integrations/UnityReactRouterV5Provider.d.mts +1 -1
  357. package/dist/esm/types/utils.d.mts +1 -0
  358. package/i18n/en-GB.json +15 -3
  359. package/i18n/es-ES.json +15 -3
  360. package/i18n/fr-FR.json +15 -3
  361. package/package.json +27 -22
  362. package/dist/cjs/components/form-field/parts/FormInput.d.ts +0 -15
  363. package/dist/cjs/components/spinner/Spinner.module.css.js +0 -1
  364. package/dist/esm/components/form-field/parts/FormInput.d.mts +0 -15
  365. package/dist/esm/components/spinner/Spinner.module.css.mjs +0 -10
  366. package/dist/style.css +0 -1
@@ -0,0 +1,56 @@
1
+ import { jsxs as o, jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as c } from "react";
3
+ import { mergeProps as u } from "react-aria";
4
+ import { useSlottedContext as b, InputContext as g, Label as f } from "react-aria-components";
5
+ import { tv as N } from "tailwind-variants";
6
+ const h = N({
7
+ slots: {
8
+ base: "uy-typography-body-strong uy-text-content-form-enabled uy-flex uy-gap-25",
9
+ asterisk: "uy-text-content-danger",
10
+ optionalTag: "uy-typography-body"
11
+ },
12
+ variants: {
13
+ variant: {
14
+ strong: {
15
+ base: "uy-typography-body-strong"
16
+ },
17
+ body: {
18
+ base: "uy-typography-body"
19
+ }
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ variant: "strong"
24
+ }
25
+ }), q = c(
26
+ ({ children: n, ...a }, l) => {
27
+ const e = b(g), i = u(
28
+ { isRequired: e == null ? void 0 : e["aria-required"] },
29
+ a
30
+ ), {
31
+ isRequired: r = !1,
32
+ requiredVariant: s = "required",
33
+ ...p
34
+ } = i, { base: y, asterisk: d, optionalTag: m } = h();
35
+ return /* @__PURE__ */ o(
36
+ f,
37
+ {
38
+ ...p,
39
+ ref: l,
40
+ className: y({ className: a.className }),
41
+ children: [
42
+ n,
43
+ s === "required" && r && /* @__PURE__ */ o("span", { className: d(), children: [
44
+ "*",
45
+ /* @__PURE__ */ t("span", { className: "uy-sr-only", children: "required" })
46
+ ] }),
47
+ s === "optional" && !r && /* @__PURE__ */ t("span", { className: m({ className: a.className }), children: "(optional)" })
48
+ ]
49
+ }
50
+ );
51
+ }
52
+ );
53
+ q.displayName = "Label";
54
+ export {
55
+ q as Label
56
+ };
@@ -8,6 +8,10 @@ export type LinkProps = Omit<AriaLinkProps, 'style' | 'className'> & {
8
8
  * The URL the link navigates to.
9
9
  */
10
10
  href: HTMLAnchorElement['href'] | NavRouterLinkProps['to'];
11
+ /**
12
+ * The link id
13
+ */
14
+ id?: HTMLAttributes<HTMLLinkElement>['id'];
11
15
  /**
12
16
  * The link's display variant. Links can be inline with text or standalone (block).
13
17
  * @default 'inline'
@@ -38,6 +42,10 @@ declare const Link: import('react').ForwardRefExoticComponent<Omit<AriaLinkProps
38
42
  * The URL the link navigates to.
39
43
  */
40
44
  href: HTMLAnchorElement["href"] | NavRouterLinkProps["to"];
45
+ /**
46
+ * The link id
47
+ */
48
+ id?: HTMLAttributes<HTMLLinkElement>["id"];
41
49
  /**
42
50
  * The link's display variant. Links can be inline with text or standalone (block).
43
51
  * @default 'inline'
@@ -59,5 +67,7 @@ declare const Link: import('react').ForwardRefExoticComponent<Omit<AriaLinkProps
59
67
  */
60
68
  isCurrent?: Pick<HTMLAttributes<HTMLAnchorElement>, "aria-current"> | undefined;
61
69
  maxCharactersTruncation?: number;
70
+ } & {
71
+ children?: import('react').ReactNode | undefined;
62
72
  } & import('react').RefAttributes<HTMLAnchorElement>>;
63
73
  export { Link };
@@ -1,47 +1,49 @@
1
- import { jsxs as d, jsx as k } from "react/jsx-runtime";
2
- import { forwardRef as x } from "react";
3
- import { IconSprite as y } from "@payfit/unity-icons";
4
- import { Link as g } from "react-aria-components";
5
- import { useRouter as v } from "../../providers/router/RouterProvider.mjs";
1
+ import { jsxs as f, jsx as k } from "react/jsx-runtime";
2
+ import { forwardRef as y } from "react";
3
+ import { IconSprite as g } from "@payfit/unity-icons";
4
+ import { Link as v } from "react-aria-components";
5
+ import { useRouter as x } from "../../providers/router/RouterProvider.mjs";
6
6
  import { link as w } from "./Link.variants.mjs";
7
7
  import { isExternalUrl as L } from "./utils.mjs";
8
- const A = x(
8
+ const A = y(
9
9
  ({
10
10
  href: o,
11
- children: a,
11
+ children: s,
12
12
  variant: m = "inline",
13
- color: s = "primary",
14
- isDisabled: i = !1,
13
+ color: a = "primary",
14
+ isDisabled: n = !1,
15
15
  isCurrent: c = void 0,
16
16
  isExternal: p,
17
- maxCharactersTruncation: n,
17
+ maxCharactersTruncation: t,
18
18
  ...r
19
19
  }, u) => {
20
- const l = v(), e = p ?? L(o), t = !e && l ? l.isActive(o.toString()) : c, f = w({
20
+ const l = x(), e = p ?? L(o), i = !e && l ? l.isActive(o.toString()) : c, d = w({
21
21
  variant: m,
22
- color: s,
23
- isDisabled: i,
24
- isTruncated: !!n
22
+ color: a,
23
+ isDisabled: n,
24
+ isTruncated: !!t
25
25
  });
26
- return /* @__PURE__ */ d(
27
- g,
26
+ return /* @__PURE__ */ f(
27
+ v,
28
28
  {
29
29
  ...r,
30
30
  href: o,
31
31
  ref: u,
32
- style: { "--uy-link-max-w": `${n}ch` },
33
- className: f,
34
- isDisabled: i,
32
+ style: !!t ? {
33
+ "--uy-link-max-w": `${t}ch`
34
+ } : {},
35
+ className: d,
36
+ isDisabled: n,
35
37
  target: e ? "_blank" : r.target,
36
38
  rel: e && !r.rel ? "noopener noreferrer" : r.rel,
37
- ...t !== void 0 && {
38
- "data-current": t,
39
- "aria-current": t ? "page" : void 0
39
+ ...i !== void 0 && {
40
+ "data-current": i,
41
+ "aria-current": i ? "page" : void 0
40
42
  },
41
43
  children: [
42
- a,
44
+ s,
43
45
  e && /* @__PURE__ */ k(
44
- y,
46
+ g,
45
47
  {
46
48
  src: "ArrowSquareOutOutlined",
47
49
  color: "currentColor",
@@ -3,7 +3,7 @@ interface MenuProps {
3
3
  defaultOpen?: MenuTriggerProps['defaultOpen'];
4
4
  children?: MenuTriggerProps['children'];
5
5
  }
6
- export declare function Menu({ defaultOpen, children }: MenuProps): JSX.Element;
6
+ export declare function Menu({ defaultOpen, children }: MenuProps): import("react/jsx-runtime").JSX.Element;
7
7
  export declare namespace Menu {
8
8
  var displayName: string;
9
9
  }
@@ -4,7 +4,7 @@ interface MenuContent {
4
4
  placement?: PopoverProps['placement'];
5
5
  width?: number;
6
6
  }
7
- export declare function MenuContent({ children, placement, width, }: PropsWithChildren<MenuContent>): JSX.Element;
7
+ export declare function MenuContent({ children, placement, width, }: PropsWithChildren<MenuContent>): import("react/jsx-runtime").JSX.Element;
8
8
  export declare namespace MenuContent {
9
9
  var displayName: string;
10
10
  }
@@ -10,7 +10,7 @@ function y({
10
10
  n,
11
11
  {
12
12
  placement: o,
13
- className: "uy-flex uy-flex-col uy-justify-end uy-items-start uy-p-100 uy-rounded-100 uy-border uy-border-border-neutral uy-bg-surface-neutral uy-shadow-floating",
13
+ className: "uy-flex uy-flex-col uy-justify-end uy-items-start uy-p-100 uy-rounded-100 uy-border uy-border-solid uy-border-border-neutral uy-bg-surface-neutral uy-shadow-floating",
14
14
  children: /* @__PURE__ */ u(s, { autoFocus: "first", className: `uy-min-w-[320px] ${t}`, children: r })
15
15
  }
16
16
  );
@@ -2,7 +2,7 @@ import { PropsWithChildren } from 'react';
2
2
  interface MenuHeaderProps {
3
3
  className?: string;
4
4
  }
5
- export declare function MenuHeader({ children, className, }: PropsWithChildren<MenuHeaderProps>): JSX.Element;
5
+ export declare function MenuHeader({ children, className, }: PropsWithChildren<MenuHeaderProps>): import("react/jsx-runtime").JSX.Element;
6
6
  export declare namespace MenuHeader {
7
7
  var displayName: string;
8
8
  }
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { PropsWithChildren, ReactNode } from 'react';
2
2
  import { MenuItemProps as MenuItemAriaComponentProps } from 'react-aria-components';
3
3
  import { DataAttributes } from '../../../types/DataAttributes.mjs';
4
4
  interface MenuItemProps extends DataAttributes {
@@ -8,7 +8,7 @@ interface MenuItemProps extends DataAttributes {
8
8
  prefix?: ReactNode;
9
9
  className?: string;
10
10
  }
11
- export declare function MenuItem({ prefix, children, href, onAction, className, ...dataAttributes }: MenuItemProps): JSX.Element;
11
+ export declare function MenuItem({ prefix, children, href, onAction, className, ...dataAttributes }: PropsWithChildren<MenuItemProps>): import("react/jsx-runtime").JSX.Element;
12
12
  export declare namespace MenuItem {
13
13
  var displayName: string;
14
14
  }
@@ -1,4 +1,4 @@
1
- export declare function MenuSeparator(): JSX.Element;
1
+ export declare function MenuSeparator(): import("react/jsx-runtime").JSX.Element;
2
2
  export declare namespace MenuSeparator {
3
3
  var displayName: string;
4
4
  }
@@ -3,7 +3,7 @@ interface MenuTriggerProps {
3
3
  className?: string;
4
4
  asChild?: boolean;
5
5
  }
6
- export declare function MenuTrigger({ children, asChild, className, }: PropsWithChildren<MenuTriggerProps>): JSX.Element;
6
+ export declare function MenuTrigger({ children, asChild, className, }: PropsWithChildren<MenuTriggerProps>): import("react/jsx-runtime").JSX.Element;
7
7
  export declare namespace MenuTrigger {
8
8
  var displayName: string;
9
9
  }
@@ -0,0 +1,62 @@
1
+ import { MultiSelectComponent, MultiSelectProps } from './Multiselect.types.mjs';
2
+ declare const MultiSelectComponent: <TItem extends Record<string | number, unknown>, TItemKey extends keyof TItem, TKeyType extends TItem[TItemKey] & (string | number)>(props: MultiSelectProps<TItem, TItemKey, TKeyType>, ref: React.ForwardedRef<HTMLButtonElement>) => import("react/jsx-runtime").JSX.Element;
3
+ /**
4
+ * The MultiSelect component allows users to select multiple items from a dropdown list.
5
+ * The component provides two different APIs:
6
+ * 1. Static API - For simple cases where options are defined as direct children and use primitive values as keys (strings or numbers)
7
+ * 2. Dynamic API - For data-driven cases where options are generated from a dynamic collection with typed objects
8
+ * @example
9
+ * ```tsx
10
+ * import { MultiSelect, MultiSelectOption, MultiSelectOptGroup } from '@payfit/unity-components'
11
+ *
12
+ * // Static API - Options defined as direct children
13
+ * <MultiSelect
14
+ * placeholder="Select fruits..."
15
+ * onChange={(selected) => console.log(selected)}
16
+ * >
17
+ * <MultiSelectOptGroup label="Citrus" withSeparator>
18
+ * <MultiSelectOption value="orange">Orange</MultiSelectOption>
19
+ * <MultiSelectOption value="lemon">Lemon</MultiSelectOption>
20
+ * </MultiSelectOptGroup>
21
+ * <MultiSelectOption value="apple">Apple</MultiSelectOption>
22
+ * </MultiSelect>
23
+ *
24
+ * // Dynamic API - Options generated from a collection with typed objects
25
+ * interface Fruit {
26
+ * id: string;
27
+ * name: string;
28
+ * category: string;
29
+ * }
30
+ *
31
+ * const fruits: Set<Fruit> = new Set([
32
+ * { id: 'apple-1', name: 'Apple', category: 'Core' },
33
+ * { id: 'orange-1', name: 'Orange', category: 'Citrus' }
34
+ * ]);
35
+ *
36
+ * <MultiSelect
37
+ * items={fruits}
38
+ * placeholder="Select fruits..."
39
+ * value={new Set(['apple-1'])}
40
+ * getItemValue={item => item.id}
41
+ * renderValue={(items) =>
42
+ * Array.from(items)
43
+ * .map(item => item.name)
44
+ * .join(', ')
45
+ * }
46
+ * >
47
+ * {(item) => (
48
+ * <MultiSelectOption value={item.id}>
49
+ * {item.name}
50
+ * </MultiSelectOption>
51
+ * )}
52
+ * </MultiSelect>
53
+ * ```
54
+ * @component
55
+ * @template TItem - The type of items in the collection. When using the dynamic API, it must be a Record or an object. For the static API, it defaults to a string or number.
56
+ * @template TItemKey - The key name within TItem used as the selection value (must be a key of TItem). Applies only to the dynamic API.
57
+ * @template TKeyType - The type of the property at TItem[TItemKey] (must be string or number). Applies only to the dynamic API.
58
+ * @remarks
59
+ * [API & Docs](https://unity-components.payfit.io/?path=/docs/inputs-multiselect--docs) • [Design Guidelines](https://www.payfit.design/24f360409/p/928776-multiselect)
60
+ */
61
+ export declare const MultiSelect: MultiSelectComponent;
62
+ export {};
@@ -0,0 +1,230 @@
1
+ import { jsx as u, jsxs as q } from "react/jsx-runtime";
2
+ import { forwardRef as ye, useMemo as S, useCallback as d } from "react";
3
+ import { ComboboxProvider as Se, SelectProvider as z } from "@ariakit/react";
4
+ import { useComboboxFilter as pe } from "./hooks/use-combobox-filter.mjs";
5
+ import { useMultiSelectionState as he } from "./hooks/use-multiselection-state.mjs";
6
+ import { MultiSelectContext as J } from "./Multiselect.context.mjs";
7
+ import { MultiSelectButton as U } from "./parts/MultiSelectButton.mjs";
8
+ import { MultiSelectPopover as W } from "./parts/MultiSelectPopover.mjs";
9
+ function X(t) {
10
+ return t instanceof Map;
11
+ }
12
+ function ve(t) {
13
+ return !Object.prototype.hasOwnProperty.call(t, "items");
14
+ }
15
+ function a(t) {
16
+ return String(t);
17
+ }
18
+ function p(t) {
19
+ return isNaN(Number(t)) ? t : Number(t);
20
+ }
21
+ function Z(t) {
22
+ return Array.from(t, a);
23
+ }
24
+ function Y(t) {
25
+ return new Set(Z(t));
26
+ }
27
+ const $ = (t, w) => {
28
+ const o = ve(t), C = (e) => {
29
+ if (Object.hasOwnProperty.call(e, "value"))
30
+ return e.value;
31
+ if (Object.prototype.hasOwnProperty.call(e, "id"))
32
+ return e.id;
33
+ if (typeof e == "string")
34
+ return e;
35
+ const n = Object.keys(e)[0];
36
+ return e[n];
37
+ }, ee = o ? (e) => Array.from(e).map(String).join(", ") : (e) => Array.from(e).map((n) => C(n)).join(", "), m = t, O = t, c = S(
38
+ () => o ? void 0 : m.items,
39
+ [o, m.items]
40
+ ), r = o ? void 0 : m.getItemValue ?? C, te = t.renderValue ?? ee, { children: v } = o ? O : m, re = o ? void 0 : m.searchOptions, { children: g } = O, {
41
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
+ children: Ke,
43
+ value: V,
44
+ defaultValue: f,
45
+ onChange: b,
46
+ onBlur: M,
47
+ isDisabled: x,
48
+ isInvalid: j,
49
+ isLoading: D,
50
+ isReadOnly: R,
51
+ isSearchable: h,
52
+ placeholder: I,
53
+ onClearButtonPress: F,
54
+ maxVisibleItems: N = 7,
55
+ ...B
56
+ } = t, y = d(() => o || !c ? [] : X(c) ? Array.from(c.values()).flat() : Array.from(c), [c, o]), ne = d(() => {
57
+ if ("value" in t)
58
+ return V ? Y(V) : /* @__PURE__ */ new Set();
59
+ }, [t, V]), oe = d(() => f ? Y(f) : /* @__PURE__ */ new Set(), [f]), se = d(
60
+ (e) => {
61
+ if (!b) return;
62
+ const n = new Set(
63
+ Array.from(e).map((l) => p(l))
64
+ );
65
+ b(n);
66
+ },
67
+ [b]
68
+ ), {
69
+ selectedKeys: i,
70
+ selectKey: L,
71
+ unselectKey: T
72
+ } = he({
73
+ selectedKeys: ne(),
74
+ defaultSelectedKeys: oe(),
75
+ onSelectionChange: se
76
+ }), le = d(
77
+ (e) => {
78
+ L(a(e));
79
+ },
80
+ [L]
81
+ ), ae = d(
82
+ (e) => {
83
+ T(a(e));
84
+ },
85
+ [T]
86
+ ), { setSearchQuery: ce, matchingItems: K } = pe({
87
+ items: y(),
88
+ extractSearchableText: (e) => o ? [""] : [
89
+ a(
90
+ (r == null ? void 0 : r(e)) || ""
91
+ )
92
+ ],
93
+ enabled: h,
94
+ searchOptions: re
95
+ }), ie = () => {
96
+ if (o) return Array.from(i);
97
+ const e = y();
98
+ return Array.from(i).map((n) => {
99
+ const l = e.find(
100
+ (s) => a(
101
+ (r == null ? void 0 : r(s)) || ""
102
+ ) === n
103
+ );
104
+ return l && r ? r(l) : p(n);
105
+ });
106
+ }, ue = () => {
107
+ if (o)
108
+ return new Set(
109
+ Array.from(i).map((l) => p(l))
110
+ );
111
+ const e = y(), n = /* @__PURE__ */ new Set();
112
+ return Array.from(i).forEach((l) => {
113
+ const s = e.find(
114
+ (A) => a(
115
+ (r == null ? void 0 : r(A)) || ""
116
+ ) === l
117
+ );
118
+ s && n.add(s);
119
+ }), n;
120
+ }, de = () => {
121
+ if (f)
122
+ return Z(f);
123
+ }, P = S(ie, [
124
+ i,
125
+ o,
126
+ r,
127
+ y
128
+ ]), G = S(ue, [
129
+ i,
130
+ o,
131
+ r,
132
+ y
133
+ ]), k = S(de, [f]), E = (e) => {
134
+ const n = new Set(e), l = new Set(
135
+ P.map((s) => a(s))
136
+ );
137
+ for (const s of n)
138
+ l.has(s) || le(p(s));
139
+ for (const s of l)
140
+ n.has(s) || ae(p(s));
141
+ }, H = d(() => o ? g : c ? X(c) ? Array.from(c.entries()).map(([e, n]) => {
142
+ const l = n.filter(
143
+ (s) => K.some((A) => {
144
+ const fe = (r == null ? void 0 : r(s)) || "", me = (r == null ? void 0 : r(A)) || "";
145
+ return a(me) === a(fe);
146
+ })
147
+ );
148
+ return v(e, l);
149
+ }) : K.map(
150
+ (e) => v(
151
+ e
152
+ )
153
+ ) : null, [v, c, K, g, r, o]), Q = S(() => H(), [H]), _ = te;
154
+ return h ? /* @__PURE__ */ u(Se, { resetValueOnHide: !0, setValue: ce, children: /* @__PURE__ */ u(
155
+ z,
156
+ {
157
+ value: P.map(
158
+ (e) => a(e)
159
+ ),
160
+ defaultValue: k,
161
+ setValue: E,
162
+ focusLoop: !0,
163
+ children: /* @__PURE__ */ q(
164
+ J.Provider,
165
+ {
166
+ value: { isSearchable: h, maxVisibleItems: N, selectedKeys: i },
167
+ children: [
168
+ /* @__PURE__ */ u(
169
+ U,
170
+ {
171
+ ref: w,
172
+ placeholder: I,
173
+ isDisabled: x,
174
+ isReadOnly: R,
175
+ isLoading: D,
176
+ isInvalid: j,
177
+ renderValue: _,
178
+ selectedItems: G,
179
+ onClearButtonPress: F,
180
+ ...B
181
+ }
182
+ ),
183
+ /* @__PURE__ */ u(W, { onBlur: M, children: Q })
184
+ ]
185
+ }
186
+ )
187
+ }
188
+ ) }) : /* @__PURE__ */ u(
189
+ z,
190
+ {
191
+ value: P.map(
192
+ (e) => a(e)
193
+ ),
194
+ defaultValue: k,
195
+ setValue: E,
196
+ focusLoop: !0,
197
+ children: /* @__PURE__ */ q(
198
+ J.Provider,
199
+ {
200
+ value: { isSearchable: h, maxVisibleItems: N, selectedKeys: i },
201
+ children: [
202
+ /* @__PURE__ */ u(
203
+ U,
204
+ {
205
+ ref: w,
206
+ placeholder: I,
207
+ isDisabled: x,
208
+ isReadOnly: R,
209
+ isLoading: D,
210
+ isInvalid: j,
211
+ renderValue: _,
212
+ selectedItems: G,
213
+ onClearButtonPress: F,
214
+ ...B
215
+ }
216
+ ),
217
+ /* @__PURE__ */ u(W, { onBlur: M, children: Q })
218
+ ]
219
+ }
220
+ )
221
+ }
222
+ );
223
+ };
224
+ $.displayName = "MultiSelect";
225
+ const je = ye(
226
+ $
227
+ );
228
+ export {
229
+ je as MultiSelect
230
+ };
@@ -0,0 +1,7 @@
1
+ interface MultiSelectContextType {
2
+ isSearchable?: boolean;
3
+ maxVisibleItems?: number;
4
+ selectedKeys?: Set<string>;
5
+ }
6
+ export declare const MultiSelectContext: import('react').Context<MultiSelectContextType>;
7
+ export {};
@@ -0,0 +1,8 @@
1
+ import { createContext as e } from "react";
2
+ const o = e({
3
+ isSearchable: !1,
4
+ selectedKeys: /* @__PURE__ */ new Set()
5
+ });
6
+ export {
7
+ o as MultiSelectContext
8
+ };
@@ -0,0 +1,109 @@
1
+ import { ReactNode } from 'react';
2
+ import { UseComboboxFilterProps } from './hooks/use-combobox-filter.mjs';
3
+ type Key = string | number;
4
+ export interface MultiSelectBaseProps {
5
+ /** Default content when no value is selected */
6
+ placeholder?: string;
7
+ /** Whether the select is searchable and shows a search input on top of the options */
8
+ isSearchable?: boolean;
9
+ /** Whether the select is disabled */
10
+ isDisabled?: boolean;
11
+ /** Whether the select is invalid */
12
+ isInvalid?: boolean;
13
+ /** Whether the select is read only */
14
+ isReadOnly?: boolean;
15
+ /** Whether the select is in a loading state */
16
+ isLoading?: boolean;
17
+ /** Callback when the clear button is pressed */
18
+ onClearButtonPress?: () => void;
19
+ /** Maximum number of items to show in the select button before showing a counter badge */
20
+ maxVisibleItems?: number;
21
+ /** Callback when the select is focused */
22
+ onFocus?: () => void;
23
+ /** Callback when the select is blurred */
24
+ onBlur?: () => void;
25
+ /** The ID of the element that labels this select when no visible label is provided */
26
+ 'aria-labelledby'?: string;
27
+ /** The ID of the element that labels this select when no visible label is provided */
28
+ 'aria-label'?: string;
29
+ }
30
+ export interface FlatSelectProps<TItem, // Item type
31
+ TItemKey extends keyof TItem, // key name of the item
32
+ TKeyType extends TItem[TItemKey] & Key> extends MultiSelectBaseProps {
33
+ /** The items to display in the select */
34
+ items: Set<TItem>;
35
+ /** The currently selected values (controlled mode) */
36
+ value?: Set<TKeyType>;
37
+ /** The default selected values (uncontrolled mode) */
38
+ defaultValue?: Set<TKeyType>;
39
+ /** Callback when selection changes */
40
+ onChange?: (value: Set<TKeyType>) => void;
41
+ /** Function to get the value from an item, defaults to String(item) */
42
+ getItemValue?: (item: TItem) => TKeyType;
43
+ /** Function to render the selected value(s) in the button */
44
+ renderValue?: (value: Set<TItem>) => string;
45
+ /** Children must be a render function that returns Option components */
46
+ children: (item: TItem) => React.JSX.Element;
47
+ }
48
+ export interface GroupedSelectProps<TItem, // Item type
49
+ TItemKey extends keyof TItem, // key name of the item
50
+ TKeyType extends TItem[TItemKey] & Key> extends MultiSelectBaseProps {
51
+ /** The items to display in the select, grouped by category */
52
+ items: Map<string, TItem[]>;
53
+ /** The currently selected values (controlled mode) */
54
+ value?: Set<TKeyType>;
55
+ /** The default selected values (uncontrolled mode) */
56
+ defaultValue?: Set<TKeyType>;
57
+ /** Callback when selection changes */
58
+ onChange?: (value: Set<TKeyType>) => void;
59
+ /** Function to get the value from an item, defaults to String(item) */
60
+ getItemValue?: (item: TItem) => TKeyType;
61
+ /** Function to render the selected value(s) in the button */
62
+ renderValue?: (value: Set<TItem>) => string;
63
+ /** Children must be a render function that returns OptGroup components */
64
+ children: (groupKey: string, items: TItem[]) => React.JSX.Element;
65
+ }
66
+ export interface StaticItemsProps<TItem = Key> extends MultiSelectBaseProps {
67
+ /** The items to display in the select (for dynamic API) */
68
+ items?: never;
69
+ /** The currently selected values (controlled mode) */
70
+ value?: Set<TItem>;
71
+ /** The default selected values (uncontrolled mode) */
72
+ defaultValue?: Set<TItem>;
73
+ /** Callback when selection changes */
74
+ onChange?: (value: Set<TItem>) => void;
75
+ /** Function to render the selected value(s) in the button */
76
+ renderValue?: (value: Set<TItem>) => string;
77
+ /** Children must be Option components */
78
+ children: ReactNode;
79
+ getItemValue?: never;
80
+ }
81
+ export type DynamicMultiSelectProps<TItem, // Item type
82
+ TItemKey extends keyof TItem, // key name of the item
83
+ TKeyType extends TItem[TItemKey] & Key> = TItem extends unknown ? (Omit<FlatSelectProps<TItem, TItemKey, TKeyType>, 'items'> & {
84
+ items: Set<TItem>;
85
+ children: (item: TItem) => React.JSX.Element;
86
+ getItemValue?: (item: TItem) => TKeyType;
87
+ renderValue?: (value: Set<TItem>) => string;
88
+ isSearchable?: boolean;
89
+ searchOptions?: UseComboboxFilterProps<TItem>['searchOptions'];
90
+ }) | (Omit<GroupedSelectProps<TItem, TItemKey, TKeyType>, 'items'> & {
91
+ items: Map<string, TItem[]>;
92
+ children: (groupKey: string, items: TItem[]) => React.JSX.Element;
93
+ getItemValue?: (item: TItem) => TKeyType;
94
+ renderValue?: (value: Set<TItem>) => string;
95
+ isSearchable?: boolean;
96
+ searchOptions?: UseComboboxFilterProps<TItem>['searchOptions'];
97
+ }) : never;
98
+ export type MultiSelectProps<TItem, // Item type
99
+ TItemKey extends keyof TItem, // key name of the item
100
+ TKeyType extends TItem[TItemKey] & Key> = TItem extends unknown ? DynamicMultiSelectProps<TItem, TItemKey, TKeyType> | StaticItemsProps : never;
101
+ export type MultiSelectComponent = {
102
+ <TItem, // Item type
103
+ TItemKey extends keyof TItem, // key name of the item
104
+ TKeyType extends TItem[TItemKey] & Key>(props: MultiSelectProps<TItem, TItemKey, TKeyType> & {
105
+ ref?: React.ForwardedRef<HTMLButtonElement>;
106
+ }): React.JSX.Element;
107
+ displayName?: string;
108
+ };
109
+ export {};
@@ -0,0 +1,12 @@
1
+ export interface UseComboboxFilterProps<T> {
2
+ items?: T[];
3
+ extractSearchableText?: (item: T) => string[];
4
+ enabled?: boolean;
5
+ searchOptions?: Intl.CollatorOptions;
6
+ }
7
+ export interface UseComboboxFilterReturn<T> {
8
+ searchQuery: string;
9
+ setSearchQuery: (value: string) => void;
10
+ matchingItems: T[];
11
+ }
12
+ export declare function useComboboxFilter<T>({ items, extractSearchableText, enabled, searchOptions, }: UseComboboxFilterProps<T>): UseComboboxFilterReturn<T>;