@digdir/designsystemet-react 1.0.7 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/dist/cjs/components/Combobox/Combobox.js +1 -1
  2. package/dist/cjs/components/Combobox/ComboboxIdContext.js +1 -1
  3. package/dist/cjs/components/Field/Field.js +4 -2
  4. package/dist/cjs/components/Suggestion/Suggestion.js +73 -42
  5. package/dist/cjs/components/Suggestion/SuggestionChips.js +15 -0
  6. package/dist/cjs/components/Suggestion/SuggestionClear.js +2 -30
  7. package/dist/cjs/components/Suggestion/SuggestionEmpty.js +4 -4
  8. package/dist/cjs/components/Suggestion/SuggestionInput.js +12 -23
  9. package/dist/cjs/components/Suggestion/SuggestionList.js +4 -8
  10. package/dist/cjs/components/Suggestion/SuggestionOption.js +0 -1
  11. package/dist/cjs/components/Suggestion/index.js +4 -0
  12. package/dist/cjs/components/Tabs/TabsTab.js +2 -1
  13. package/dist/cjs/index.js +144 -156
  14. package/dist/cjs/utilities/omit/omit.js +1 -1
  15. package/dist/esm/components/Combobox/Combobox.js +1 -1
  16. package/dist/esm/components/Combobox/ComboboxIdContext.js +1 -1
  17. package/dist/esm/components/Field/Field.js +4 -2
  18. package/dist/esm/components/Suggestion/Suggestion.js +74 -43
  19. package/dist/esm/components/Suggestion/SuggestionChips.js +13 -0
  20. package/dist/esm/components/Suggestion/SuggestionClear.js +4 -31
  21. package/dist/esm/components/Suggestion/SuggestionEmpty.js +5 -5
  22. package/dist/esm/components/Suggestion/SuggestionInput.js +13 -24
  23. package/dist/esm/components/Suggestion/SuggestionList.js +4 -8
  24. package/dist/esm/components/Suggestion/SuggestionOption.js +0 -1
  25. package/dist/esm/components/Suggestion/index.js +4 -1
  26. package/dist/esm/components/Tabs/TabsTab.js +2 -1
  27. package/dist/esm/index.js +67 -73
  28. package/dist/esm/utilities/omit/omit.js +1 -1
  29. package/dist/react-types.d.ts +1 -0
  30. package/dist/types/components/Alert/index.d.ts +1 -1
  31. package/dist/types/components/Alert/index.d.ts.map +1 -1
  32. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  33. package/dist/types/components/Avatar/index.d.ts +1 -1
  34. package/dist/types/components/Avatar/index.d.ts.map +1 -1
  35. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  36. package/dist/types/components/Badge/BadgePosition.d.ts.map +1 -1
  37. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  38. package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts.map +1 -1
  39. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts.map +1 -1
  40. package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts.map +1 -1
  41. package/dist/types/components/Breadcrumbs/index.d.ts +1 -1
  42. package/dist/types/components/Button/Button.d.ts.map +1 -1
  43. package/dist/types/components/Button/index.d.ts +1 -1
  44. package/dist/types/components/Button/index.d.ts.map +1 -1
  45. package/dist/types/components/Checkbox/index.d.ts +1 -1
  46. package/dist/types/components/Checkbox/index.d.ts.map +1 -1
  47. package/dist/types/components/Chip/Chips.d.ts.map +1 -1
  48. package/dist/types/components/Combobox/Combobox.d.ts +1 -1
  49. package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
  50. package/dist/types/components/Combobox/ComboboxContext.d.ts +1 -1
  51. package/dist/types/components/Combobox/ComboboxContext.d.ts.map +1 -1
  52. package/dist/types/components/Combobox/ComboboxIdContext.d.ts +1 -1
  53. package/dist/types/components/Combobox/ComboboxIdContext.d.ts.map +1 -1
  54. package/dist/types/components/Combobox/Custom.d.ts.map +1 -1
  55. package/dist/types/components/Combobox/Empty.d.ts.map +1 -1
  56. package/dist/types/components/Combobox/Option/Description.d.ts.map +1 -1
  57. package/dist/types/components/Combobox/Option/Option.d.ts.map +1 -1
  58. package/dist/types/components/Combobox/Option/useComboboxOption.d.ts.map +1 -1
  59. package/dist/types/components/Combobox/index.d.ts +1 -1
  60. package/dist/types/components/Combobox/index.d.ts.map +1 -1
  61. package/dist/types/components/Combobox/internal/ComboboxClearButton.d.ts.map +1 -1
  62. package/dist/types/components/Combobox/useCombobox.d.ts.map +1 -1
  63. package/dist/types/components/Combobox/useComboboxKeyboard.d.ts.map +1 -1
  64. package/dist/types/components/Combobox/useFloatingCombobox.d.ts +1 -1
  65. package/dist/types/components/Combobox/useFloatingCombobox.d.ts.map +1 -1
  66. package/dist/types/components/Combobox/useFormField/useFormField.d.ts.map +1 -1
  67. package/dist/types/components/Combobox/utilities.d.ts.map +1 -1
  68. package/dist/types/components/Details/index.d.ts +1 -1
  69. package/dist/types/components/Details/index.d.ts.map +1 -1
  70. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -1
  71. package/dist/types/components/Dialog/DialogTrigger.d.ts.map +1 -1
  72. package/dist/types/components/Dialog/DialogTriggerContext.d.ts.map +1 -1
  73. package/dist/types/components/Dialog/index.d.ts +2 -2
  74. package/dist/types/components/Dialog/index.d.ts.map +1 -1
  75. package/dist/types/components/Divider/index.d.ts +1 -1
  76. package/dist/types/components/Divider/index.d.ts.map +1 -1
  77. package/dist/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  78. package/dist/types/components/Dropdown/DropdownItem.d.ts.map +1 -1
  79. package/dist/types/components/Dropdown/DropdownList.d.ts.map +1 -1
  80. package/dist/types/components/Dropdown/index.d.ts +4 -4
  81. package/dist/types/components/Dropdown/index.d.ts.map +1 -1
  82. package/dist/types/components/ErrorSummary/ErrorSummary.d.ts.map +1 -1
  83. package/dist/types/components/ErrorSummary/index.d.ts +2 -2
  84. package/dist/types/components/ErrorSummary/index.d.ts.map +1 -1
  85. package/dist/types/components/Field/Field.d.ts +10 -0
  86. package/dist/types/components/Field/Field.d.ts.map +1 -1
  87. package/dist/types/components/Field/index.d.ts +3 -2
  88. package/dist/types/components/Field/index.d.ts.map +1 -1
  89. package/dist/types/components/Fieldset/FieldsetLegend.d.ts.map +1 -1
  90. package/dist/types/components/Fieldset/index.d.ts +2 -2
  91. package/dist/types/components/Fieldset/index.d.ts.map +1 -1
  92. package/dist/types/components/Heading/index.d.ts +1 -1
  93. package/dist/types/components/Heading/index.d.ts.map +1 -1
  94. package/dist/types/components/Input/index.d.ts +1 -1
  95. package/dist/types/components/Input/index.d.ts.map +1 -1
  96. package/dist/types/components/Label/index.d.ts +1 -1
  97. package/dist/types/components/Label/index.d.ts.map +1 -1
  98. package/dist/types/components/Link/index.d.ts +1 -1
  99. package/dist/types/components/Link/index.d.ts.map +1 -1
  100. package/dist/types/components/List/ListItem.d.ts.map +1 -1
  101. package/dist/types/components/List/Lists.d.ts.map +1 -1
  102. package/dist/types/components/List/index.d.ts +1 -1
  103. package/dist/types/components/List/index.d.ts.map +1 -1
  104. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  105. package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
  106. package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -1
  107. package/dist/types/components/Pagination/index.d.ts +1 -1
  108. package/dist/types/components/Paragraph/index.d.ts +1 -1
  109. package/dist/types/components/Paragraph/index.d.ts.map +1 -1
  110. package/dist/types/components/Popover/Popover.d.ts +1 -1
  111. package/dist/types/components/Popover/Popover.d.ts.map +1 -1
  112. package/dist/types/components/Popover/PopoverTrigger.d.ts.map +1 -1
  113. package/dist/types/components/Popover/PopoverTriggerContext.d.ts.map +1 -1
  114. package/dist/types/components/Popover/index.d.ts +2 -2
  115. package/dist/types/components/Popover/index.d.ts.map +1 -1
  116. package/dist/types/components/Radio/index.d.ts +1 -1
  117. package/dist/types/components/Radio/index.d.ts.map +1 -1
  118. package/dist/types/components/Search/SearchButton.d.ts.map +1 -1
  119. package/dist/types/components/Select/Select.d.ts.map +1 -1
  120. package/dist/types/components/Select/SelectOptgroup.d.ts.map +1 -1
  121. package/dist/types/components/Select/SelectOption.d.ts.map +1 -1
  122. package/dist/types/components/Select/index.d.ts +1 -1
  123. package/dist/types/components/Select/index.d.ts.map +1 -1
  124. package/dist/types/components/Skeleton/Skeleton.d.ts.map +1 -1
  125. package/dist/types/components/SkipLink/SkipLink.d.ts.map +1 -1
  126. package/dist/types/components/SkipLink/index.d.ts +1 -1
  127. package/dist/types/components/SkipLink/index.d.ts.map +1 -1
  128. package/dist/types/components/Spinner/index.d.ts +1 -1
  129. package/dist/types/components/Spinner/index.d.ts.map +1 -1
  130. package/dist/types/components/Suggestion/Suggestion.d.ts +100 -74
  131. package/dist/types/components/Suggestion/Suggestion.d.ts.map +1 -1
  132. package/dist/types/components/Suggestion/SuggestionChips.d.ts +19 -0
  133. package/dist/types/components/Suggestion/SuggestionChips.d.ts.map +1 -0
  134. package/dist/types/components/Suggestion/SuggestionClear.d.ts +1 -8
  135. package/dist/types/components/Suggestion/SuggestionClear.d.ts.map +1 -1
  136. package/dist/types/components/Suggestion/SuggestionEmpty.d.ts +1 -1
  137. package/dist/types/components/Suggestion/SuggestionEmpty.d.ts.map +1 -1
  138. package/dist/types/components/Suggestion/SuggestionInput.d.ts +1 -1
  139. package/dist/types/components/Suggestion/SuggestionInput.d.ts.map +1 -1
  140. package/dist/types/components/Suggestion/SuggestionList.d.ts +5 -5
  141. package/dist/types/components/Suggestion/SuggestionList.d.ts.map +1 -1
  142. package/dist/types/components/Suggestion/SuggestionOption.d.ts +0 -1
  143. package/dist/types/components/Suggestion/SuggestionOption.d.ts.map +1 -1
  144. package/dist/types/components/Suggestion/index.d.ts +23 -8
  145. package/dist/types/components/Suggestion/index.d.ts.map +1 -1
  146. package/dist/types/components/Switch/index.d.ts +1 -1
  147. package/dist/types/components/Switch/index.d.ts.map +1 -1
  148. package/dist/types/components/Table/Table.d.ts.map +1 -1
  149. package/dist/types/components/Table/TableBody.d.ts.map +1 -1
  150. package/dist/types/components/Table/TableCell.d.ts.map +1 -1
  151. package/dist/types/components/Table/TableFoot.d.ts.map +1 -1
  152. package/dist/types/components/Table/TableHead.d.ts.map +1 -1
  153. package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -1
  154. package/dist/types/components/Table/TableRow.d.ts.map +1 -1
  155. package/dist/types/components/Table/index.d.ts +6 -6
  156. package/dist/types/components/Table/index.d.ts.map +1 -1
  157. package/dist/types/components/Tabs/TabsTab.d.ts.map +1 -1
  158. package/dist/types/components/Tabs/index.d.ts +1 -1
  159. package/dist/types/components/Tabs/index.d.ts.map +1 -1
  160. package/dist/types/components/Tag/index.d.ts +1 -1
  161. package/dist/types/components/Tag/index.d.ts.map +1 -1
  162. package/dist/types/components/Textarea/index.d.ts +1 -1
  163. package/dist/types/components/Textarea/index.d.ts.map +1 -1
  164. package/dist/types/components/Textfield/Textfield.d.ts.map +1 -1
  165. package/dist/types/components/Textfield/index.d.ts +1 -1
  166. package/dist/types/components/Textfield/index.d.ts.map +1 -1
  167. package/dist/types/components/ValidationMessage/index.d.ts +1 -1
  168. package/dist/types/components/ValidationMessage/index.d.ts.map +1 -1
  169. package/dist/types/components/index.d.ts +29 -30
  170. package/dist/types/components/index.d.ts.map +1 -1
  171. package/dist/types/index.d.ts +1 -1
  172. package/dist/types/index.d.ts.map +1 -1
  173. package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts.map +1 -1
  174. package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts.map +1 -1
  175. package/dist/types/utilities/RovingFocus/index.d.ts +1 -1
  176. package/dist/types/utilities/RovingFocus/index.d.ts.map +1 -1
  177. package/dist/types/utilities/hooks/index.d.ts +5 -5
  178. package/dist/types/utilities/hooks/index.d.ts.map +1 -1
  179. package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts.map +1 -1
  180. package/dist/types/utilities/hooks/useMergeRefs/useMergeRefs.d.ts.map +1 -1
  181. package/dist/types/utilities/hooks/usePagination/usePagination.d.ts.map +1 -1
  182. package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts.map +1 -1
  183. package/dist/types/utilities/index.d.ts +2 -2
  184. package/dist/types/utilities/index.d.ts.map +1 -1
  185. package/package.json +15 -17
  186. package/dist/cjs/components/MultiSuggestion/MultiSuggestion.js +0 -160
  187. package/dist/cjs/components/MultiSuggestion/MultiSuggestionChips.js +0 -20
  188. package/dist/cjs/components/MultiSuggestion/MultiSuggestionClear.js +0 -52
  189. package/dist/cjs/components/MultiSuggestion/MultiSuggestionEmpty.js +0 -23
  190. package/dist/cjs/components/MultiSuggestion/MultiSuggestionInput.js +0 -37
  191. package/dist/cjs/components/MultiSuggestion/MultiSuggestionList.js +0 -30
  192. package/dist/cjs/components/MultiSuggestion/MultiSuggestionOption.js +0 -12
  193. package/dist/cjs/components/MultiSuggestion/index.js +0 -34
  194. package/dist/esm/components/MultiSuggestion/MultiSuggestion.js +0 -157
  195. package/dist/esm/components/MultiSuggestion/MultiSuggestionChips.js +0 -18
  196. package/dist/esm/components/MultiSuggestion/MultiSuggestionClear.js +0 -49
  197. package/dist/esm/components/MultiSuggestion/MultiSuggestionEmpty.js +0 -21
  198. package/dist/esm/components/MultiSuggestion/MultiSuggestionInput.js +0 -35
  199. package/dist/esm/components/MultiSuggestion/MultiSuggestionList.js +0 -28
  200. package/dist/esm/components/MultiSuggestion/MultiSuggestionOption.js +0 -10
  201. package/dist/esm/components/MultiSuggestion/index.js +0 -26
  202. package/dist/types/components/MultiSuggestion/MultiSuggestion.d.ts +0 -131
  203. package/dist/types/components/MultiSuggestion/MultiSuggestion.d.ts.map +0 -1
  204. package/dist/types/components/MultiSuggestion/MultiSuggestionChips.d.ts +0 -20
  205. package/dist/types/components/MultiSuggestion/MultiSuggestionChips.d.ts.map +0 -1
  206. package/dist/types/components/MultiSuggestion/MultiSuggestionClear.d.ts +0 -35
  207. package/dist/types/components/MultiSuggestion/MultiSuggestionClear.d.ts.map +0 -1
  208. package/dist/types/components/MultiSuggestion/MultiSuggestionEmpty.d.ts +0 -15
  209. package/dist/types/components/MultiSuggestion/MultiSuggestionEmpty.d.ts.map +0 -1
  210. package/dist/types/components/MultiSuggestion/MultiSuggestionInput.d.ts +0 -21
  211. package/dist/types/components/MultiSuggestion/MultiSuggestionInput.d.ts.map +0 -1
  212. package/dist/types/components/MultiSuggestion/MultiSuggestionList.d.ts +0 -40
  213. package/dist/types/components/MultiSuggestion/MultiSuggestionList.d.ts.map +0 -1
  214. package/dist/types/components/MultiSuggestion/MultiSuggestionOption.d.ts +0 -6
  215. package/dist/types/components/MultiSuggestion/MultiSuggestionOption.d.ts.map +0 -1
  216. package/dist/types/components/MultiSuggestion/index.d.ts +0 -50
  217. package/dist/types/components/MultiSuggestion/index.d.ts.map +0 -1
package/dist/cjs/index.js CHANGED
@@ -1,83 +1,84 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
+ var Alert = require('./components/Alert/Alert.js');
4
5
  var Avatar = require('./components/Avatar/Avatar.js');
5
- var Button = require('./components/Button/Button.js');
6
6
  var index = require('./components/Badge/index.js');
7
7
  var BadgePosition = require('./components/Badge/BadgePosition.js');
8
8
  var index$1 = require('./components/Breadcrumbs/index.js');
9
9
  var BreadcrumbsList = require('./components/Breadcrumbs/BreadcrumbsList.js');
10
10
  var BreadcrumbsItem = require('./components/Breadcrumbs/BreadcrumbsItem.js');
11
11
  var BreadcrumbsLink = require('./components/Breadcrumbs/BreadcrumbsLink.js');
12
- var Spinner = require('./components/Spinner/Spinner.js');
13
- var Skeleton = require('./components/Skeleton/Skeleton.js');
14
- var Link = require('./components/Link/Link.js');
15
- var index$2 = require('./components/List/index.js');
16
- var Lists = require('./components/List/Lists.js');
17
- var ListItem = require('./components/List/ListItem.js');
18
- var Label = require('./components/Label/Label.js');
19
- var Heading = require('./components/Heading/Heading.js');
20
- var Paragraph = require('./components/Paragraph/Paragraph.js');
21
- var ValidationMessage = require('./components/ValidationMessage/ValidationMessage.js');
22
- var index$3 = require('./components/Details/index.js');
12
+ var Button = require('./components/Button/Button.js');
13
+ var index$2 = require('./components/Card/index.js');
14
+ var CardBlock = require('./components/Card/CardBlock.js');
15
+ var Checkbox = require('./components/Checkbox/Checkbox.js');
16
+ var index$3 = require('./components/Chip/index.js');
17
+ var Chips = require('./components/Chip/Chips.js');
18
+ var index$4 = require('./components/Combobox/index.js');
19
+ var Option = require('./components/Combobox/Option/Option.js');
20
+ var Empty = require('./components/Combobox/Empty.js');
21
+ var index$5 = require('./components/Details/index.js');
23
22
  var DetailsContent = require('./components/Details/DetailsContent.js');
24
23
  var DetailsSummary = require('./components/Details/DetailsSummary.js');
25
- var index$4 = require('./components/Select/index.js');
26
- var SelectOption = require('./components/Select/SelectOption.js');
27
- var SelectOptgroup = require('./components/Select/SelectOptgroup.js');
28
- var Alert = require('./components/Alert/Alert.js');
29
- var Tag = require('./components/Tag/Tag.js');
30
- var index$5 = require('./components/Chip/index.js');
31
- var Chips = require('./components/Chip/Chips.js');
32
- var index$6 = require('./components/Pagination/index.js');
33
- var PaginationList = require('./components/Pagination/PaginationList.js');
34
- var PaginationItem = require('./components/Pagination/PaginationItem.js');
35
- var PaginationButton = require('./components/Pagination/PaginationButton.js');
36
- var SkipLink = require('./components/SkipLink/SkipLink.js');
37
- var Tooltip = require('./components/Tooltip/Tooltip.js');
38
- var index$7 = require('./components/Field/index.js');
39
- var FieldDescription = require('./components/Field/FieldDescription.js');
40
- var FieldAffix = require('./components/Field/FieldAffix.js');
41
- var FieldCounter = require('./components/Field/FieldCounter.js');
42
- var Checkbox = require('./components/Checkbox/Checkbox.js');
43
- var Radio = require('./components/Radio/Radio.js');
44
- var index$8 = require('./components/Fieldset/index.js');
45
- var FieldsetLegend = require('./components/Fieldset/FieldsetLegend.js');
46
- var FieldsetDescription = require('./components/Fieldset/FieldsetDescription.js');
47
- var Switch = require('./components/Switch/Switch.js');
48
- var Textfield = require('./components/Textfield/Textfield.js');
49
- var Textarea = require('./components/Textarea/Textarea.js');
50
- var Input = require('./components/Input/Input.js');
51
- var index$9 = require('./components/Tabs/index.js');
52
- var TabsTab = require('./components/Tabs/TabsTab.js');
53
- var TabsList = require('./components/Tabs/TabsList.js');
54
- var TabsPanel = require('./components/Tabs/TabsPanel.js');
55
- var index$a = require('./components/ToggleGroup/index.js');
56
- var ToggleGroupItem = require('./components/ToggleGroup/ToggleGroupItem.js');
57
- var index$b = require('./components/Popover/index.js');
58
- var PopoverTriggerContext = require('./components/Popover/PopoverTriggerContext.js');
59
- var PopoverTrigger = require('./components/Popover/PopoverTrigger.js');
60
- var Divider = require('./components/Divider/Divider.js');
61
- var index$c = require('./components/Dialog/index.js');
24
+ var index$6 = require('./components/Dialog/index.js');
62
25
  var DialogBlock = require('./components/Dialog/DialogBlock.js');
63
26
  var DialogTriggerContext = require('./components/Dialog/DialogTriggerContext.js');
64
27
  var DialogTrigger = require('./components/Dialog/DialogTrigger.js');
65
- var index$d = require('./components/Dropdown/index.js');
28
+ var Divider = require('./components/Divider/Divider.js');
29
+ var index$7 = require('./components/Dropdown/index.js');
66
30
  var DropdownTriggerContext = require('./components/Dropdown/DropdownTriggerContext.js');
67
31
  var DropdownList = require('./components/Dropdown/DropdownList.js');
68
32
  var DropdownHeading = require('./components/Dropdown/DropdownHeading.js');
69
33
  var DropdownItem = require('./components/Dropdown/DropdownItem.js');
70
34
  var DropdownButton = require('./components/Dropdown/DropdownButton.js');
71
35
  var DropdownTrigger = require('./components/Dropdown/DropdownTrigger.js');
36
+ var index$8 = require('./components/ErrorSummary/index.js');
37
+ var ErrorSummaryItem = require('./components/ErrorSummary/ErrorSummaryItem.js');
38
+ var ErrorSummaryHeading = require('./components/ErrorSummary/ErrorSummaryHeading.js');
39
+ var ErrorSummaryList = require('./components/ErrorSummary/ErrorSummaryList.js');
40
+ var ErrorSummaryLink = require('./components/ErrorSummary/ErrorSummaryLink.js');
41
+ var index$9 = require('./components/Field/index.js');
42
+ var FieldDescription = require('./components/Field/FieldDescription.js');
43
+ var FieldAffix = require('./components/Field/FieldAffix.js');
44
+ var FieldCounter = require('./components/Field/FieldCounter.js');
45
+ var index$a = require('./components/Fieldset/index.js');
46
+ var FieldsetLegend = require('./components/Fieldset/FieldsetLegend.js');
47
+ var FieldsetDescription = require('./components/Fieldset/FieldsetDescription.js');
48
+ var Heading = require('./components/Heading/Heading.js');
49
+ var Input = require('./components/Input/Input.js');
50
+ var Label = require('./components/Label/Label.js');
51
+ var Link = require('./components/Link/Link.js');
52
+ var index$b = require('./components/List/index.js');
53
+ var Lists = require('./components/List/Lists.js');
54
+ var ListItem = require('./components/List/ListItem.js');
55
+ var index$c = require('./components/Pagination/index.js');
56
+ var PaginationList = require('./components/Pagination/PaginationList.js');
57
+ var PaginationItem = require('./components/Pagination/PaginationItem.js');
58
+ var PaginationButton = require('./components/Pagination/PaginationButton.js');
59
+ var Paragraph = require('./components/Paragraph/Paragraph.js');
60
+ var index$d = require('./components/Popover/index.js');
61
+ var PopoverTriggerContext = require('./components/Popover/PopoverTriggerContext.js');
62
+ var PopoverTrigger = require('./components/Popover/PopoverTrigger.js');
63
+ var Radio = require('./components/Radio/Radio.js');
72
64
  var SearchClear = require('./components/Search/SearchClear.js');
73
65
  var SearchButton = require('./components/Search/SearchButton.js');
74
66
  var SearchInput = require('./components/Search/SearchInput.js');
75
67
  var index$e = require('./components/Search/index.js');
76
- var index$f = require('./components/Card/index.js');
77
- var CardBlock = require('./components/Card/CardBlock.js');
78
- var index$g = require('./components/Combobox/index.js');
79
- var Option = require('./components/Combobox/Option/Option.js');
80
- var Empty = require('./components/Combobox/Empty.js');
68
+ var index$f = require('./components/Select/index.js');
69
+ var SelectOption = require('./components/Select/SelectOption.js');
70
+ var SelectOptgroup = require('./components/Select/SelectOptgroup.js');
71
+ var Skeleton = require('./components/Skeleton/Skeleton.js');
72
+ var SkipLink = require('./components/SkipLink/SkipLink.js');
73
+ var Spinner = require('./components/Spinner/Spinner.js');
74
+ var index$g = require('./components/Suggestion/index.js');
75
+ var SuggestionChips = require('./components/Suggestion/SuggestionChips.js');
76
+ var SuggestionList = require('./components/Suggestion/SuggestionList.js');
77
+ var SuggestionInput = require('./components/Suggestion/SuggestionInput.js');
78
+ var SuggestionEmpty = require('./components/Suggestion/SuggestionEmpty.js');
79
+ var SuggestionOption = require('./components/Suggestion/SuggestionOption.js');
80
+ var SuggestionClear = require('./components/Suggestion/SuggestionClear.js');
81
+ var Switch = require('./components/Switch/Switch.js');
81
82
  var index$h = require('./components/Table/index.js');
82
83
  var TableHead = require('./components/Table/TableHead.js');
83
84
  var TableBody = require('./components/Table/TableBody.js');
@@ -85,120 +86,114 @@ var TableRow = require('./components/Table/TableRow.js');
85
86
  var TableCell = require('./components/Table/TableCell.js');
86
87
  var TableHeaderCell = require('./components/Table/TableHeaderCell.js');
87
88
  var TableFoot = require('./components/Table/TableFoot.js');
88
- var index$i = require('./components/ErrorSummary/index.js');
89
- var ErrorSummaryItem = require('./components/ErrorSummary/ErrorSummaryItem.js');
90
- var ErrorSummaryHeading = require('./components/ErrorSummary/ErrorSummaryHeading.js');
91
- var ErrorSummaryList = require('./components/ErrorSummary/ErrorSummaryList.js');
92
- var ErrorSummaryLink = require('./components/ErrorSummary/ErrorSummaryLink.js');
93
- var index$j = require('./components/Suggestion/index.js');
94
- var SuggestionList = require('./components/Suggestion/SuggestionList.js');
95
- var SuggestionInput = require('./components/Suggestion/SuggestionInput.js');
96
- var SuggestionEmpty = require('./components/Suggestion/SuggestionEmpty.js');
97
- var SuggestionOption = require('./components/Suggestion/SuggestionOption.js');
98
- var SuggestionClear = require('./components/Suggestion/SuggestionClear.js');
99
- var index$k = require('./components/MultiSuggestion/index.js');
100
- var MultiSuggestionInput = require('./components/MultiSuggestion/MultiSuggestionInput.js');
101
- var MultiSuggestionList = require('./components/MultiSuggestion/MultiSuggestionList.js');
102
- var MultiSuggestionOption = require('./components/MultiSuggestion/MultiSuggestionOption.js');
103
- var MultiSuggestionChips = require('./components/MultiSuggestion/MultiSuggestionChips.js');
104
- var MultiSuggestionEmpty = require('./components/MultiSuggestion/MultiSuggestionEmpty.js');
105
- var MultiSuggestionClear = require('./components/MultiSuggestion/MultiSuggestionClear.js');
89
+ var index$i = require('./components/Tabs/index.js');
90
+ var TabsTab = require('./components/Tabs/TabsTab.js');
91
+ var TabsList = require('./components/Tabs/TabsList.js');
92
+ var TabsPanel = require('./components/Tabs/TabsPanel.js');
93
+ var Tag = require('./components/Tag/Tag.js');
94
+ var Textarea = require('./components/Textarea/Textarea.js');
95
+ var Textfield = require('./components/Textfield/Textfield.js');
96
+ var index$j = require('./components/ToggleGroup/index.js');
97
+ var ToggleGroupItem = require('./components/ToggleGroup/ToggleGroupItem.js');
98
+ var Tooltip = require('./components/Tooltip/Tooltip.js');
99
+ var ValidationMessage = require('./components/ValidationMessage/ValidationMessage.js');
106
100
  var useCheckboxGroup = require('./utilities/hooks/useCheckboxGroup/useCheckboxGroup.js');
107
- var useRadioGroup = require('./utilities/hooks/useRadioGroup/useRadioGroup.js');
108
- var usePagination = require('./utilities/hooks/usePagination/usePagination.js');
109
101
  var useDebounceCallback = require('./utilities/hooks/useDebounceCallback/useDebounceCallback.js');
110
102
  var useIsomorphicLayoutEffect = require('./utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js');
111
103
  var useMediaQuery = require('./utilities/hooks/useMediaQuery/useMediaQuery.js');
104
+ var usePagination = require('./utilities/hooks/usePagination/usePagination.js');
105
+ var useRadioGroup = require('./utilities/hooks/useRadioGroup/useRadioGroup.js');
112
106
  var useSynchronizedAnimation = require('./utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js');
113
107
  var omit = require('./utilities/omit/omit.js');
108
+ var RovingFocusItem = require('./utilities/RovingFocus/RovingFocusItem.js');
114
109
  var RovingFocusRoot = require('./utilities/RovingFocus/RovingFocusRoot.js');
115
110
  var useRovingFocus = require('./utilities/RovingFocus/useRovingFocus.js');
116
- var RovingFocusItem = require('./utilities/RovingFocus/RovingFocusItem.js');
117
111
 
118
112
 
119
113
 
114
+ exports.Alert = Alert.Alert;
120
115
  exports.Avatar = Avatar.Avatar;
121
- exports.Button = Button.Button;
122
116
  exports.Badge = index.Badge;
123
117
  exports.BadgePosition = BadgePosition.BadgePosition;
124
118
  exports.Breadcrumbs = index$1.Breadcrumbs;
125
119
  exports.BreadcrumbsList = BreadcrumbsList.BreadcrumbsList;
126
120
  exports.BreadcrumbsItem = BreadcrumbsItem.BreadcrumbsItem;
127
121
  exports.BreadcrumbsLink = BreadcrumbsLink.BreadcrumbsLink;
128
- exports.Spinner = Spinner.Spinner;
129
- exports.Skeleton = Skeleton.Skeleton;
130
- exports.Link = Link.Link;
131
- exports.List = index$2.List;
132
- exports.ListOrdered = Lists.ListOrdered;
133
- exports.ListUnordered = Lists.ListUnordered;
134
- exports.ListItem = ListItem.ListItem;
135
- exports.Label = Label.Label;
136
- exports.Heading = Heading.Heading;
137
- exports.Paragraph = Paragraph.Paragraph;
138
- exports.ValidationMessage = ValidationMessage.ValidationMessage;
139
- exports.Details = index$3.Details;
140
- exports.DetailsContent = DetailsContent.DetailsContent;
141
- exports.DetailsSummary = DetailsSummary.DetailsSummary;
142
- exports.Select = index$4.Select;
143
- exports.SelectOption = SelectOption.SelectOption;
144
- exports.SelectOptgroup = SelectOptgroup.SelectOptgroup;
145
- exports.Alert = Alert.Alert;
146
- exports.Tag = Tag.Tag;
147
- exports.Chip = index$5.Chip;
122
+ exports.Button = Button.Button;
123
+ exports.Card = index$2.Card;
124
+ exports.CardBlock = CardBlock.CardBlock;
125
+ exports.Checkbox = Checkbox.Checkbox;
126
+ exports.Chip = index$3.Chip;
148
127
  exports.ChipButton = Chips.ChipButton;
149
128
  exports.ChipCheckbox = Chips.ChipCheckbox;
150
129
  exports.ChipRadio = Chips.ChipRadio;
151
130
  exports.ChipRemovable = Chips.ChipRemovable;
152
- exports.Pagination = index$6.Pagination;
153
- exports.PaginationList = PaginationList.PaginationList;
154
- exports.PaginationItem = PaginationItem.PaginationItem;
155
- exports.PaginationButton = PaginationButton.PaginationButton;
156
- exports.SkipLink = SkipLink.SkipLink;
157
- exports.Tooltip = Tooltip.Tooltip;
158
- exports.Field = index$7.Field;
159
- exports.FieldDescription = FieldDescription.FieldDescription;
160
- exports.FieldAffix = FieldAffix.FieldAffix;
161
- exports.FieldAffixes = FieldAffix.FieldAffixes;
162
- exports.FieldCounter = FieldCounter.FieldCounter;
163
- exports.Checkbox = Checkbox.Checkbox;
164
- exports.Radio = Radio.Radio;
165
- exports.Fieldset = index$8.Fieldset;
166
- exports.FieldsetLegend = FieldsetLegend.FieldsetLegend;
167
- exports.FieldsetDescription = FieldsetDescription.FieldsetDescription;
168
- exports.Switch = Switch.Switch;
169
- exports.Textfield = Textfield.Textfield;
170
- exports.Textarea = Textarea.Textarea;
171
- exports.Input = Input.Input;
172
- exports.Tabs = index$9.Tabs;
173
- exports.TabsTab = TabsTab.TabsTab;
174
- exports.TabsList = TabsList.TabsList;
175
- exports.TabsPanel = TabsPanel.TabsPanel;
176
- exports.ToggleGroup = index$a.ToggleGroup;
177
- exports.ToggleGroupItem = ToggleGroupItem.ToggleGroupItem;
178
- exports.Popover = index$b.Popover;
179
- exports.PopoverTriggerContext = PopoverTriggerContext.PopoverTriggerContext;
180
- exports.PopoverTrigger = PopoverTrigger.PopoverTrigger;
181
- exports.Divider = Divider.Divider;
182
- exports.Dialog = index$c.Dialog;
131
+ exports.Combobox = index$4.Combobox;
132
+ exports.ComboboxOption = Option.ComboboxOption;
133
+ exports.ComboboxEmpty = Empty.ComboboxEmpty;
134
+ exports.Details = index$5.Details;
135
+ exports.DetailsContent = DetailsContent.DetailsContent;
136
+ exports.DetailsSummary = DetailsSummary.DetailsSummary;
137
+ exports.Dialog = index$6.Dialog;
183
138
  exports.DialogBlock = DialogBlock.DialogBlock;
184
139
  exports.DialogTriggerContext = DialogTriggerContext.DialogTriggerContext;
185
140
  exports.DialogTrigger = DialogTrigger.DialogTrigger;
186
- exports.Dropdown = index$d.Dropdown;
141
+ exports.Divider = Divider.Divider;
142
+ exports.Dropdown = index$7.Dropdown;
187
143
  exports.DropdownTriggerContext = DropdownTriggerContext.DropdownTriggerContext;
188
144
  exports.DropdownList = DropdownList.DropdownList;
189
145
  exports.DropdownHeading = DropdownHeading.DropdownHeading;
190
146
  exports.DropdownItem = DropdownItem.DropdownItem;
191
147
  exports.DropdownButton = DropdownButton.DropdownButton;
192
148
  exports.DropdownTrigger = DropdownTrigger.DropdownTrigger;
149
+ exports.ErrorSummary = index$8.ErrorSummary;
150
+ exports.ErrorSummaryItem = ErrorSummaryItem.ErrorSummaryItem;
151
+ exports.ErrorSummaryHeading = ErrorSummaryHeading.ErrorSummaryHeading;
152
+ exports.ErrorSummaryList = ErrorSummaryList.ErrorSummaryList;
153
+ exports.ErrorSummaryLink = ErrorSummaryLink.ErrorSummaryLink;
154
+ exports.Field = index$9.Field;
155
+ exports.FieldDescription = FieldDescription.FieldDescription;
156
+ exports.FieldAffix = FieldAffix.FieldAffix;
157
+ exports.FieldAffixes = FieldAffix.FieldAffixes;
158
+ exports.FieldCounter = FieldCounter.FieldCounter;
159
+ exports.Fieldset = index$a.Fieldset;
160
+ exports.FieldsetLegend = FieldsetLegend.FieldsetLegend;
161
+ exports.FieldsetDescription = FieldsetDescription.FieldsetDescription;
162
+ exports.Heading = Heading.Heading;
163
+ exports.Input = Input.Input;
164
+ exports.Label = Label.Label;
165
+ exports.Link = Link.Link;
166
+ exports.List = index$b.List;
167
+ exports.ListOrdered = Lists.ListOrdered;
168
+ exports.ListUnordered = Lists.ListUnordered;
169
+ exports.ListItem = ListItem.ListItem;
170
+ exports.Pagination = index$c.Pagination;
171
+ exports.PaginationList = PaginationList.PaginationList;
172
+ exports.PaginationItem = PaginationItem.PaginationItem;
173
+ exports.PaginationButton = PaginationButton.PaginationButton;
174
+ exports.Paragraph = Paragraph.Paragraph;
175
+ exports.Popover = index$d.Popover;
176
+ exports.PopoverTriggerContext = PopoverTriggerContext.PopoverTriggerContext;
177
+ exports.PopoverTrigger = PopoverTrigger.PopoverTrigger;
178
+ exports.Radio = Radio.Radio;
193
179
  exports.SearchClear = SearchClear.SearchClear;
194
180
  exports.SearchButton = SearchButton.SearchButton;
195
181
  exports.SearchInput = SearchInput.SearchInput;
196
182
  exports.Search = index$e.Search;
197
- exports.Card = index$f.Card;
198
- exports.CardBlock = CardBlock.CardBlock;
199
- exports.Combobox = index$g.Combobox;
200
- exports.ComboboxOption = Option.ComboboxOption;
201
- exports.ComboboxEmpty = Empty.ComboboxEmpty;
183
+ exports.Select = index$f.Select;
184
+ exports.SelectOption = SelectOption.SelectOption;
185
+ exports.SelectOptgroup = SelectOptgroup.SelectOptgroup;
186
+ exports.Skeleton = Skeleton.Skeleton;
187
+ exports.SkipLink = SkipLink.SkipLink;
188
+ exports.Spinner = Spinner.Spinner;
189
+ exports.EXPERIMENTAL_Suggestion = index$g.EXPERIMENTAL_Suggestion;
190
+ exports.EXPERIMENTAL_SuggestionChips = SuggestionChips.SuggestionChips;
191
+ exports.EXPERIMENTAL_SuggestionList = SuggestionList.SuggestionList;
192
+ exports.EXPERIMENTAL_SuggestionInput = SuggestionInput.SuggestionInput;
193
+ exports.EXPERIMENTAL_SuggestionEmpty = SuggestionEmpty.SuggestionEmpty;
194
+ exports.EXPERIMENTAL_SuggestionOption = SuggestionOption.SuggestionOption;
195
+ exports.EXPERIMENTAL_SuggestionClear = SuggestionClear.SuggestionClear;
196
+ exports.Switch = Switch.Switch;
202
197
  exports.Table = index$h.Table;
203
198
  exports.TableHead = TableHead.TableHead;
204
199
  exports.TableBody = TableBody.TableBody;
@@ -206,34 +201,27 @@ exports.TableRow = TableRow.TableRow;
206
201
  exports.TableCell = TableCell.TableCell;
207
202
  exports.TableHeaderCell = TableHeaderCell.TableHeaderCell;
208
203
  exports.TableFoot = TableFoot.TableFoot;
209
- exports.ErrorSummary = index$i.ErrorSummary;
210
- exports.ErrorSummaryItem = ErrorSummaryItem.ErrorSummaryItem;
211
- exports.ErrorSummaryHeading = ErrorSummaryHeading.ErrorSummaryHeading;
212
- exports.ErrorSummaryList = ErrorSummaryList.ErrorSummaryList;
213
- exports.ErrorSummaryLink = ErrorSummaryLink.ErrorSummaryLink;
214
- exports.EXPERIMENTAL_Suggestion = index$j.EXPERIMENTAL_Suggestion;
215
- exports.EXPERIMENTAL_SuggestionList = SuggestionList.SuggestionList;
216
- exports.EXPERIMENTAL_SuggestionInput = SuggestionInput.SuggestionInput;
217
- exports.EXPERIMENTAL_SuggestionEmpty = SuggestionEmpty.SuggestionEmpty;
218
- exports.EXPERIMENTAL_SuggestionOption = SuggestionOption.SuggestionOption;
219
- exports.EXPERIMENTAL_SuggestionClear = SuggestionClear.SuggestionClear;
220
- exports.EXPERIMENTAL_MultiSuggestion = index$k.EXPERIMENTAL_MultiSuggestion;
221
- exports.EXPERIMENTAL_MultiSuggestionInput = MultiSuggestionInput.MultiSuggestionInput;
222
- exports.EXPERIMENTAL_MultiSuggestionList = MultiSuggestionList.MultiSuggestionList;
223
- exports.EXPERIMENTAL_MultiSuggestionOption = MultiSuggestionOption.MultiSuggestionOption;
224
- exports.EXPERIMENTAL_MultiSuggestionChips = MultiSuggestionChips.MultiSuggestionChips;
225
- exports.EXPERIMENTAL_MultiSuggestionEmpty = MultiSuggestionEmpty.MultiSuggestionEmpty;
226
- exports.EXPERIMENTAL_MultiSuggestionClear = MultiSuggestionClear.MultiSuggestionClear;
204
+ exports.Tabs = index$i.Tabs;
205
+ exports.TabsTab = TabsTab.TabsTab;
206
+ exports.TabsList = TabsList.TabsList;
207
+ exports.TabsPanel = TabsPanel.TabsPanel;
208
+ exports.Tag = Tag.Tag;
209
+ exports.Textarea = Textarea.Textarea;
210
+ exports.Textfield = Textfield.Textfield;
211
+ exports.ToggleGroup = index$j.ToggleGroup;
212
+ exports.ToggleGroupItem = ToggleGroupItem.ToggleGroupItem;
213
+ exports.Tooltip = Tooltip.Tooltip;
214
+ exports.ValidationMessage = ValidationMessage.ValidationMessage;
227
215
  exports.useCheckboxGroup = useCheckboxGroup.useCheckboxGroup;
228
- exports.useRadioGroup = useRadioGroup.useRadioGroup;
229
- exports.usePagination = usePagination.usePagination;
230
216
  exports.useDebounceCallback = useDebounceCallback.useDebounceCallback;
231
217
  exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect.useIsomorphicLayoutEffect;
232
218
  exports.useMediaQuery = useMediaQuery.useMediaQuery;
219
+ exports.usePagination = usePagination.usePagination;
220
+ exports.useRadioGroup = useRadioGroup.useRadioGroup;
233
221
  exports.useSynchronizedAnimation = useSynchronizedAnimation.useSynchronizedAnimation;
234
222
  exports.omit = omit.omit;
235
- exports.RovingFocusRoot = RovingFocusRoot.RovingFocusRoot;
236
- exports.useRovingFocus = useRovingFocus.useRovingFocus;
237
223
  exports.RovingFocusItem = RovingFocusItem.RovingFocusItem;
238
224
  exports.getNextFocusableValue = RovingFocusItem.getNextFocusableValue;
239
225
  exports.getPrevFocusableValue = RovingFocusItem.getPrevFocusableValue;
226
+ exports.RovingFocusRoot = RovingFocusRoot.RovingFocusRoot;
227
+ exports.useRovingFocus = useRovingFocus.useRovingFocus;
@@ -18,7 +18,7 @@ const omit = (names, obj) => {
18
18
  idx += 1;
19
19
  }
20
20
  for (const prop in obj) {
21
- if (!Object.prototype.hasOwnProperty.call(index, prop)) {
21
+ if (!Object.hasOwn(index, prop)) {
22
22
  result[prop] = obj[prop];
23
23
  }
24
24
  }
@@ -4,7 +4,6 @@ import { FloatingPortal, FloatingFocusManager } from '@floating-ui/react';
4
4
  import { useVirtualizer } from '@tanstack/react-virtual';
5
5
  import cl from 'clsx/lite';
6
6
  import { forwardRef, useRef, useState, useEffect } from 'react';
7
- import { useFormField } from './useFormField/useFormField.js';
8
7
  import { ComboboxContext } from './ComboboxContext.js';
9
8
  import { ComboboxIdProvider } from './ComboboxIdContext.js';
10
9
  import { ComboboxCustom } from './Custom.js';
@@ -15,6 +14,7 @@ import ComboboxNative from './internal/ComboboxNative.js';
15
14
  import { useCombobox } from './useCombobox.js';
16
15
  import { useComboboxKeyboard } from './useComboboxKeyboard.js';
17
16
  import { useFloatingCombobox } from './useFloatingCombobox.js';
17
+ import { useFormField } from './useFormField/useFormField.js';
18
18
  import { prefix, setReactInputValue, removePrefix } from './utilities.js';
19
19
  import { useDebounceCallback } from '../../utilities/hooks/useDebounceCallback/useDebounceCallback.js';
20
20
  import { Spinner } from '../Spinner/Spinner.js';
@@ -19,7 +19,7 @@ const ComboboxIdReducer = (state, action) => {
19
19
  const ComboboxIdDispatch = createContext(() => {
20
20
  throw new Error('ComboboxIdDispatch must be used within a provider');
21
21
  });
22
- const ComboboxIdProvider = ({ children, }) => {
22
+ const ComboboxIdProvider = ({ children }) => {
23
23
  const [state, dispatch] = useReducer(ComboboxIdReducer, {
24
24
  activeIndex: 0,
25
25
  });
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
+ import { Slot } from '@radix-ui/react-slot';
3
4
  import cl from 'clsx/lite';
4
5
  import { forwardRef, useRef, useEffect } from 'react';
5
6
  import { fieldObserver } from './fieldObserver.js';
@@ -16,11 +17,12 @@ import { useMergeRefs } from '../../utilities/hooks/useMergeRefs/useMergeRefs.js
16
17
  * <ValidationMessage>Feilmelding</ValidationMessage>
17
18
  * </Field>
18
19
  */
19
- const Field = forwardRef(function Field({ className, position, ...rest }, ref) {
20
+ const Field = forwardRef(function Field({ className, position, asChild, ...rest }, ref) {
21
+ const Component = asChild ? Slot : 'div';
20
22
  const fieldRef = useRef(null);
21
23
  const mergedRefs = useMergeRefs([fieldRef, ref]);
22
24
  useEffect(() => fieldObserver(fieldRef.current), []);
23
- return (jsx("div", { className: cl('ds-field', className), "data-position": position, ref: mergedRefs, ...rest }));
25
+ return (jsx(Component, { className: cl('ds-field', className), "data-position": position, ref: mergedRefs, ...rest }));
24
26
  });
25
27
 
26
28
  export { Field };
@@ -1,51 +1,82 @@
1
1
  'use client';
2
- import { jsx } from 'react/jsx-runtime';
3
- import { Slot } from '@radix-ui/react-slot';
4
- import { getDatalistValue, syncDatalistState } from '@u-elements/u-datalist';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { forwardRef, createContext, useRef, useState, useEffect, useCallback } from 'react';
4
+ import '@u-elements/u-combobox';
5
5
  import cl from 'clsx/lite';
6
- import { forwardRef, createContext, useState, useId, useRef, useCallback } from 'react';
6
+ import { useMergeRefs } from '../../utilities/hooks/useMergeRefs/useMergeRefs.js';
7
7
 
8
- const SuggestionContext = createContext({});
9
- /**
10
- * A component that provides a suggestion list for an input field.
11
- *
12
- * @example
13
- * <Suggestion>
14
- * <Suggestion.Input />
15
- * <Suggestion.Clear />
16
- * <Suggestion.List>
17
- * <Suggestion.Empty>Tomt</Suggestion.Empty>
18
- * <Suggestion.Option value='Option 1'>Option 1</Suggestion.Option>
19
- * <Suggestion.Option value='Option 2'>Option 2</Suggestion.Option>
20
- * </Suggestion.List>
21
- * </Suggestion>
22
- */
23
- const Suggestion = forwardRef(function Suggestion({ className, filter = true, asChild, ...rest }, ref) {
24
- const Component = asChild ? Slot : 'div';
25
- const [listId, setListId] = useState(useId());
26
- const inputRef = useRef(null);
27
- const handleFilter = useCallback((input) => {
28
- const list = input?.list;
29
- // Let <datalist> handle filtering if filter is true
30
- if (filter === true || !list)
31
- return;
32
- // Handle custom filter
33
- if (filter !== false) {
34
- let index = 0;
35
- for (const option of list.getElementsByTagName('u-option')) {
36
- if (!option.hasAttribute('data-empty'))
37
- option.disabled = !filter({
38
- index: index++, // Increment index for each <option>
39
- input,
40
- optionElement: option,
41
- text: option.text,
42
- value: getDatalistValue(option),
43
- });
8
+ const SuggestionContext = createContext({
9
+ handleFilter: () => undefined,
10
+ });
11
+ const text = (el) => el.textContent?.trim() || '';
12
+ const sanitizeItems = (values = []) => typeof values === 'string'
13
+ ? [{ label: values, value: values }]
14
+ : values.map((value) => typeof value === 'string'
15
+ ? { label: value, value }
16
+ : {
17
+ label: value.label || value.value || '',
18
+ value: value.value || '',
19
+ });
20
+ const nextItems = (data, prev, multiple) => {
21
+ const item = { label: text(data), value: data.value };
22
+ if (!multiple)
23
+ return data.isConnected ? [] : [item];
24
+ return data.isConnected
25
+ ? sanitizeItems(prev).filter(({ value }) => value !== item.value)
26
+ : [...sanitizeItems(prev), item];
27
+ };
28
+ const defaultFilter = ({ label, input }) => label.toLowerCase().includes(input.value.trim().toLowerCase());
29
+ const Suggestion = forwardRef(function Suggestion({ children, className, creatable = false, defaultValue, filter = true, multiple = false, name, onValueChange, value, ...rest }, ref) {
30
+ const uComboboxRef = useRef(null);
31
+ const isContolled = value !== undefined;
32
+ const mergedRefs = useMergeRefs([ref, uComboboxRef]);
33
+ const [isEmpty, setIsEmpty] = useState(false);
34
+ const [selectedItems, setSelectedItems] = useState(sanitizeItems(defaultValue || value));
35
+ // Update if controlled values
36
+ const prevControlled = useRef(value);
37
+ if (value !== prevControlled.current) {
38
+ prevControlled.current = value;
39
+ setSelectedItems(sanitizeItems(prevControlled.current));
40
+ }
41
+ /**
42
+ * Listerners and handling of adding/removing
43
+ */
44
+ useEffect(() => {
45
+ const combobox = uComboboxRef.current;
46
+ const beforeChange = (event) => {
47
+ event.preventDefault();
48
+ const multiple = combobox?.multiple;
49
+ const data = event.detail;
50
+ if (isContolled)
51
+ onValueChange?.(nextItems(data, prevControlled.current, multiple));
52
+ else
53
+ setSelectedItems((prevItems) => nextItems(data, prevItems, multiple));
54
+ };
55
+ combobox?.addEventListener('beforechange', beforeChange);
56
+ return () => combobox?.removeEventListener('beforechange', beforeChange);
57
+ }, [isContolled, setSelectedItems]);
58
+ const handleFilter = useCallback(() => {
59
+ const { control: input, options = [] } = uComboboxRef?.current || {};
60
+ const filterFn = filter === true ? defaultFilter : filter;
61
+ let disabled = 0;
62
+ let index = 0;
63
+ for (const option of options)
64
+ if (!option.hasAttribute('data-empty')) {
65
+ if (filterFn && input)
66
+ option.disabled =
67
+ !filterFn({
68
+ index,
69
+ input,
70
+ label: option.label,
71
+ optionElement: option,
72
+ text: option.text,
73
+ value: option.value,
74
+ }) && Boolean(++disabled);
75
+ index++; // Increment index for each <option>
44
76
  }
45
- }
46
- syncDatalistState(input); // Sync the datalist state if filter is custom or false
77
+ setIsEmpty(index === disabled);
47
78
  }, [filter]);
48
- return (jsx(SuggestionContext.Provider, { value: { inputRef, listId, setListId, handleFilter }, children: jsx(Component, { className: cl('ds-suggestion', className), ref: ref, ...rest }) }));
79
+ return (jsx(SuggestionContext.Provider, { value: { isEmpty, selectedItems, handleFilter }, children: jsxs("u-combobox", { "data-multiple": multiple || undefined, "data-creatable": creatable || undefined, class: cl('ds-suggestion', className), ref: mergedRefs, ...rest, children: [children, !!name && jsx("select", { name: name, multiple: true, hidden: true })] }) }));
49
80
  });
50
81
 
51
82
  export { Suggestion, SuggestionContext };
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { jsx, Fragment } from 'react/jsx-runtime';
3
+ import { useContext } from 'react';
4
+ import { Chip } from '../Chip/index.js';
5
+ import { SuggestionContext } from './Suggestion.js';
6
+
7
+ const SuggestionChips = ({ render = ({ label }) => label, }) => {
8
+ const { selectedItems = [] } = useContext(SuggestionContext);
9
+ return (jsx(Fragment, { children: selectedItems.map((item) => (jsx(Chip.Removable, { value: item.value, asChild: true, children: jsx("data", { children: render(item) }) }, item.value))) }));
10
+ };
11
+ SuggestionChips.displayName = 'SuggestionChips';
12
+
13
+ export { SuggestionChips };