@digdir/designsystemet-react 0.59.1-alpha.0 → 0.60.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 (415) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cjs/components/Accordion/Accordion.js +1 -4
  3. package/dist/cjs/components/Accordion/AccordionContent/AccordionContent.js +1 -2
  4. package/dist/cjs/components/Accordion/AccordionHeader/AccordionHeader.js +1 -2
  5. package/dist/cjs/components/Accordion/AccordionItem/AccordionItem.js +1 -4
  6. package/dist/cjs/components/Box/Box.js +4 -5
  7. package/dist/cjs/components/Button/Button.js +4 -4
  8. package/dist/cjs/components/Card/Card.js +4 -5
  9. package/dist/cjs/components/Card/CardContent.js +2 -3
  10. package/dist/cjs/components/Card/CardFooter.js +2 -3
  11. package/dist/cjs/components/Card/CardHeader.js +2 -3
  12. package/dist/cjs/components/Card/CardMedia.js +2 -3
  13. package/dist/cjs/components/Chip/Group/Group.js +2 -3
  14. package/dist/cjs/components/Chip/Removable/Removable.js +2 -3
  15. package/dist/cjs/components/Chip/Toggle/Toggle.js +2 -3
  16. package/dist/cjs/components/Divider/Divider.js +1 -2
  17. package/dist/cjs/components/DropdownMenu/DropdownMenuContent.js +2 -3
  18. package/dist/cjs/components/DropdownMenu/{DropdownMenuGroup/DropdownMenuGroup.js → DropdownMenuGroup.js} +3 -5
  19. package/dist/cjs/components/DropdownMenu/{DropdownMenuItem/DropdownMenuItem.js → DropdownMenuItem.js} +3 -4
  20. package/dist/cjs/components/DropdownMenu/index.js +2 -2
  21. package/dist/cjs/components/ErrorSummary/ErrorSummaryRoot.js +1 -3
  22. package/dist/cjs/components/HelpText/HelpText.js +1 -2
  23. package/dist/cjs/components/Link/Link.js +4 -5
  24. package/dist/cjs/components/List/ListItem.js +1 -2
  25. package/dist/cjs/components/List/Lists.js +2 -3
  26. package/dist/cjs/components/Modal/ModaContent.js +15 -0
  27. package/dist/cjs/components/Modal/ModalDialog.js +3 -4
  28. package/dist/cjs/components/Modal/ModalFooter.js +15 -0
  29. package/dist/cjs/components/Modal/ModalHeader.js +21 -0
  30. package/dist/cjs/components/Modal/{ModalTrigger/ModalTrigger.js → ModalTrigger.js} +3 -3
  31. package/dist/cjs/components/Modal/index.js +4 -4
  32. package/dist/cjs/components/Pagination/Pagination.js +3 -6
  33. package/dist/cjs/components/Pagination/PaginationContent.js +2 -3
  34. package/dist/cjs/components/Pagination/PaginationEllipsis.js +2 -3
  35. package/dist/cjs/components/Pagination/PaginationItem.js +2 -3
  36. package/dist/cjs/components/Popover/PopoverContent.js +2 -3
  37. package/dist/cjs/components/Skeleton/Circle/Circle.js +2 -3
  38. package/dist/cjs/components/Skeleton/Rectangle/Rectangle.js +2 -5
  39. package/dist/cjs/components/Skeleton/Text/Text.js +2 -5
  40. package/dist/cjs/components/Spinner/Spinner.js +4 -5
  41. package/dist/cjs/components/Table/Table.js +2 -3
  42. package/dist/cjs/components/Table/TableCell.js +2 -3
  43. package/dist/cjs/components/Table/TableHead.js +2 -3
  44. package/dist/cjs/components/Table/TableHeaderCell.js +2 -3
  45. package/dist/cjs/components/Table/TableRow.js +2 -3
  46. package/dist/cjs/components/Tabs/Tab/Tab.js +2 -3
  47. package/dist/cjs/components/Tabs/Tab/useTab.js +0 -1
  48. package/dist/cjs/components/Tabs/TabContent/TabContent.js +3 -5
  49. package/dist/cjs/components/Tabs/TabList/TabList.js +1 -2
  50. package/dist/cjs/components/Tabs/Tabs.js +1 -2
  51. package/dist/cjs/components/Tag/Tag.js +2 -3
  52. package/dist/cjs/components/ToggleGroup/ToggleGroup.js +3 -4
  53. package/dist/cjs/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.js +1 -2
  54. package/dist/cjs/components/Tooltip/Tooltip.js +3 -4
  55. package/dist/cjs/components/Typography/ErrorMessage/ErrorMessage.js +3 -6
  56. package/dist/cjs/components/Typography/Heading/Heading.js +3 -8
  57. package/dist/cjs/components/Typography/Ingress/Ingress.js +3 -5
  58. package/dist/cjs/components/Typography/Label/Label.js +3 -9
  59. package/dist/cjs/components/Typography/Paragraph/Paragraph.js +3 -7
  60. package/dist/cjs/components/form/Checkbox/Checkbox.js +3 -4
  61. package/dist/cjs/components/form/Combobox/Combobox.js +37 -48
  62. package/dist/cjs/components/form/Combobox/{Custom/Custom.js → Custom.js} +8 -9
  63. package/dist/cjs/components/form/Combobox/{Empty/Empty.js → Empty.js} +4 -5
  64. package/dist/cjs/components/form/Combobox/Option/{Description/Description.js → Description.js} +2 -3
  65. package/dist/cjs/components/form/Combobox/Option/Option.js +4 -5
  66. package/dist/cjs/components/form/Combobox/Option/SelectedIcon.js +16 -0
  67. package/dist/cjs/components/form/Combobox/index.js +1 -1
  68. package/dist/cjs/components/form/Combobox/internal/ComboboxChips.js +7 -12
  69. package/dist/cjs/components/form/Combobox/internal/ComboboxClearButton.js +5 -9
  70. package/dist/cjs/components/form/Combobox/internal/ComboboxError.js +1 -2
  71. package/dist/cjs/components/form/Combobox/internal/ComboboxInput.js +9 -44
  72. package/dist/cjs/components/form/Combobox/internal/ComboboxLabel.js +2 -3
  73. package/dist/cjs/components/form/Combobox/useCombobox.js +49 -61
  74. package/dist/cjs/components/form/Combobox/useComboboxKeyboard.js +25 -28
  75. package/dist/cjs/components/form/Fieldset/Fieldset.js +1 -2
  76. package/dist/cjs/components/form/NativeSelect/NativeSelect.js +3 -4
  77. package/dist/cjs/components/form/Radio/Group/Group.js +1 -2
  78. package/dist/cjs/components/form/Radio/Radio.js +1 -2
  79. package/dist/cjs/components/form/Search/Search.js +3 -2
  80. package/dist/cjs/components/form/Switch/Switch.js +2 -3
  81. package/dist/cjs/components/form/Textarea/Textarea.js +2 -3
  82. package/dist/cjs/components/form/Textfield/Textfield.js +2 -3
  83. package/dist/cjs/index.js +7 -7
  84. package/dist/cjs/node_modules/clsx/dist/clsx.js +1 -1
  85. package/dist/cjs/node_modules/clsx/dist/lite.js +9 -0
  86. package/dist/cjs/utilities/AnimateHeight/AnimateHeight.js +1 -2
  87. package/dist/cjs/utilities/RovingTabIndex/RovingTabindexItem.js +2 -2
  88. package/dist/cjs/utilities/RovingTabIndex/RovingTabindexRoot.js +2 -2
  89. package/dist/esm/components/Accordion/Accordion.js +1 -4
  90. package/dist/esm/components/Accordion/AccordionContent/AccordionContent.js +1 -2
  91. package/dist/esm/components/Accordion/AccordionHeader/AccordionHeader.js +1 -2
  92. package/dist/esm/components/Accordion/AccordionItem/AccordionItem.js +1 -4
  93. package/dist/esm/components/Box/Box.js +4 -5
  94. package/dist/esm/components/Button/Button.js +4 -4
  95. package/dist/esm/components/Card/Card.js +4 -5
  96. package/dist/esm/components/Card/CardContent.js +2 -3
  97. package/dist/esm/components/Card/CardFooter.js +2 -3
  98. package/dist/esm/components/Card/CardHeader.js +2 -3
  99. package/dist/esm/components/Card/CardMedia.js +2 -3
  100. package/dist/esm/components/Chip/Group/Group.js +2 -3
  101. package/dist/esm/components/Chip/Removable/Removable.js +2 -3
  102. package/dist/esm/components/Chip/Toggle/Toggle.js +2 -3
  103. package/dist/esm/components/Divider/Divider.js +1 -2
  104. package/dist/esm/components/DropdownMenu/DropdownMenuContent.js +2 -3
  105. package/dist/esm/components/DropdownMenu/{DropdownMenuGroup/DropdownMenuGroup.js → DropdownMenuGroup.js} +3 -5
  106. package/dist/esm/components/DropdownMenu/{DropdownMenuItem/DropdownMenuItem.js → DropdownMenuItem.js} +3 -4
  107. package/dist/esm/components/DropdownMenu/index.js +2 -2
  108. package/dist/esm/components/ErrorSummary/ErrorSummaryRoot.js +1 -3
  109. package/dist/esm/components/HelpText/HelpText.js +1 -2
  110. package/dist/esm/components/Link/Link.js +4 -5
  111. package/dist/esm/components/List/ListItem.js +1 -2
  112. package/dist/esm/components/List/Lists.js +2 -3
  113. package/dist/esm/components/Modal/{ModalContent/ModaContent.js → ModaContent.js} +3 -4
  114. package/dist/esm/components/Modal/ModalDialog.js +3 -4
  115. package/dist/esm/components/Modal/{ModalFooter/ModalFooter.js → ModalFooter.js} +3 -4
  116. package/dist/esm/components/Modal/ModalHeader.js +19 -0
  117. package/dist/esm/components/Modal/{ModalTrigger/ModalTrigger.js → ModalTrigger.js} +3 -3
  118. package/dist/esm/components/Modal/index.js +4 -4
  119. package/dist/esm/components/Pagination/Pagination.js +3 -6
  120. package/dist/esm/components/Pagination/PaginationContent.js +2 -3
  121. package/dist/esm/components/Pagination/PaginationEllipsis.js +2 -3
  122. package/dist/esm/components/Pagination/PaginationItem.js +2 -3
  123. package/dist/esm/components/Popover/PopoverContent.js +2 -3
  124. package/dist/esm/components/Skeleton/Circle/Circle.js +2 -3
  125. package/dist/esm/components/Skeleton/Rectangle/Rectangle.js +2 -5
  126. package/dist/esm/components/Skeleton/Text/Text.js +2 -5
  127. package/dist/esm/components/Spinner/Spinner.js +4 -5
  128. package/dist/esm/components/Table/Table.js +2 -3
  129. package/dist/esm/components/Table/TableCell.js +2 -3
  130. package/dist/esm/components/Table/TableHead.js +2 -3
  131. package/dist/esm/components/Table/TableHeaderCell.js +2 -3
  132. package/dist/esm/components/Table/TableRow.js +2 -3
  133. package/dist/esm/components/Tabs/Tab/Tab.js +2 -3
  134. package/dist/esm/components/Tabs/Tab/useTab.js +0 -1
  135. package/dist/esm/components/Tabs/TabContent/TabContent.js +3 -5
  136. package/dist/esm/components/Tabs/TabList/TabList.js +1 -2
  137. package/dist/esm/components/Tabs/Tabs.js +1 -2
  138. package/dist/esm/components/Tag/Tag.js +2 -3
  139. package/dist/esm/components/ToggleGroup/ToggleGroup.js +3 -4
  140. package/dist/esm/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.js +1 -2
  141. package/dist/esm/components/Tooltip/Tooltip.js +3 -4
  142. package/dist/esm/components/Typography/ErrorMessage/ErrorMessage.js +3 -6
  143. package/dist/esm/components/Typography/Heading/Heading.js +3 -8
  144. package/dist/esm/components/Typography/Ingress/Ingress.js +3 -5
  145. package/dist/esm/components/Typography/Label/Label.js +3 -9
  146. package/dist/esm/components/Typography/Paragraph/Paragraph.js +3 -7
  147. package/dist/esm/components/form/Checkbox/Checkbox.js +3 -4
  148. package/dist/esm/components/form/Combobox/Combobox.js +37 -48
  149. package/dist/esm/components/form/Combobox/{Custom/Custom.js → Custom.js} +8 -9
  150. package/dist/esm/components/form/Combobox/{Empty/Empty.js → Empty.js} +4 -5
  151. package/dist/esm/components/form/Combobox/Option/{Description/Description.js → Description.js} +2 -3
  152. package/dist/esm/components/form/Combobox/Option/Option.js +4 -5
  153. package/dist/esm/components/form/Combobox/Option/SelectedIcon.js +11 -0
  154. package/dist/esm/components/form/Combobox/index.js +1 -1
  155. package/dist/esm/components/form/Combobox/internal/ComboboxChips.js +7 -12
  156. package/dist/esm/components/form/Combobox/internal/ComboboxClearButton.js +5 -9
  157. package/dist/esm/components/form/Combobox/internal/ComboboxError.js +1 -2
  158. package/dist/esm/components/form/Combobox/internal/ComboboxInput.js +10 -45
  159. package/dist/esm/components/form/Combobox/internal/ComboboxLabel.js +2 -3
  160. package/dist/esm/components/form/Combobox/useCombobox.js +49 -61
  161. package/dist/esm/components/form/Combobox/useComboboxKeyboard.js +25 -28
  162. package/dist/esm/components/form/Fieldset/Fieldset.js +1 -2
  163. package/dist/esm/components/form/NativeSelect/NativeSelect.js +3 -4
  164. package/dist/esm/components/form/Radio/Group/Group.js +1 -2
  165. package/dist/esm/components/form/Radio/Radio.js +1 -2
  166. package/dist/esm/components/form/Search/Search.js +3 -2
  167. package/dist/esm/components/form/Switch/Switch.js +2 -3
  168. package/dist/esm/components/form/Textarea/Textarea.js +2 -3
  169. package/dist/esm/components/form/Textfield/Textfield.js +2 -3
  170. package/dist/esm/index.js +7 -7
  171. package/dist/esm/node_modules/clsx/dist/clsx.js +1 -1
  172. package/dist/esm/node_modules/clsx/dist/lite.js +4 -0
  173. package/dist/esm/utilities/AnimateHeight/AnimateHeight.js +1 -2
  174. package/dist/esm/utilities/RovingTabIndex/RovingTabindexItem.js +2 -2
  175. package/dist/esm/utilities/RovingTabIndex/RovingTabindexRoot.js +2 -2
  176. package/dist/types/components/Accordion/Accordion.d.ts.map +1 -1
  177. package/dist/types/components/Accordion/AccordionContent/AccordionContent.d.ts.map +1 -1
  178. package/dist/types/components/Accordion/AccordionHeader/AccordionHeader.d.ts.map +1 -1
  179. package/dist/types/components/Accordion/AccordionItem/AccordionItem.d.ts.map +1 -1
  180. package/dist/types/components/Box/Box.d.ts +27 -2
  181. package/dist/types/components/Box/Box.d.ts.map +1 -1
  182. package/dist/types/components/Button/Button.d.ts +19 -2
  183. package/dist/types/components/Button/Button.d.ts.map +1 -1
  184. package/dist/types/components/Card/Card.d.ts +23 -2
  185. package/dist/types/components/Card/Card.d.ts.map +1 -1
  186. package/dist/types/components/Card/CardContent.d.ts.map +1 -1
  187. package/dist/types/components/Card/CardFooter.d.ts.map +1 -1
  188. package/dist/types/components/Card/CardHeader.d.ts.map +1 -1
  189. package/dist/types/components/Card/CardMedia.d.ts.map +1 -1
  190. package/dist/types/components/Chip/Group/Group.d.ts.map +1 -1
  191. package/dist/types/components/Chip/Removable/Removable.d.ts.map +1 -1
  192. package/dist/types/components/Chip/Toggle/Toggle.d.ts.map +1 -1
  193. package/dist/types/components/Divider/Divider.d.ts.map +1 -1
  194. package/dist/types/components/DropdownMenu/DropdownMenuContent.d.ts.map +1 -1
  195. package/dist/types/components/DropdownMenu/DropdownMenuGroup.d.ts.map +1 -0
  196. package/dist/types/components/DropdownMenu/DropdownMenuItem.d.ts +4 -0
  197. package/dist/types/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -0
  198. package/dist/types/components/DropdownMenu/DropdownMenuTrigger.d.ts +1 -3
  199. package/dist/types/components/DropdownMenu/DropdownMenuTrigger.d.ts.map +1 -1
  200. package/dist/types/components/DropdownMenu/index.d.ts +4 -4
  201. package/dist/types/components/DropdownMenu/index.d.ts.map +1 -1
  202. package/dist/types/components/ErrorSummary/ErrorSummaryRoot.d.ts.map +1 -1
  203. package/dist/types/components/HelpText/HelpText.d.ts.map +1 -1
  204. package/dist/types/components/Link/Link.d.ts +15 -2
  205. package/dist/types/components/Link/Link.d.ts.map +1 -1
  206. package/dist/types/components/List/ListItem.d.ts.map +1 -1
  207. package/dist/types/components/List/Lists.d.ts.map +1 -1
  208. package/dist/types/components/Modal/ModaContent.d.ts.map +1 -0
  209. package/dist/types/components/Modal/ModalDialog.d.ts.map +1 -1
  210. package/dist/types/components/Modal/ModalFooter.d.ts.map +1 -0
  211. package/dist/types/components/Modal/ModalHeader.d.ts.map +1 -0
  212. package/dist/types/components/Modal/{ModalTrigger/ModalTrigger.d.ts → ModalTrigger.d.ts} +2 -4
  213. package/dist/types/components/Modal/ModalTrigger.d.ts.map +1 -0
  214. package/dist/types/components/Modal/index.d.ts +8 -8
  215. package/dist/types/components/Modal/index.d.ts.map +1 -1
  216. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  217. package/dist/types/components/Pagination/PaginationContent.d.ts.map +1 -1
  218. package/dist/types/components/Pagination/PaginationEllipsis.d.ts.map +1 -1
  219. package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
  220. package/dist/types/components/Popover/PopoverContent.d.ts.map +1 -1
  221. package/dist/types/components/Popover/PopoverTrigger.d.ts +1 -3
  222. package/dist/types/components/Popover/PopoverTrigger.d.ts.map +1 -1
  223. package/dist/types/components/Skeleton/Circle/Circle.d.ts.map +1 -1
  224. package/dist/types/components/Skeleton/Rectangle/Rectangle.d.ts.map +1 -1
  225. package/dist/types/components/Skeleton/Text/Text.d.ts.map +1 -1
  226. package/dist/types/components/Spinner/Spinner.d.ts.map +1 -1
  227. package/dist/types/components/Table/Table.d.ts.map +1 -1
  228. package/dist/types/components/Table/TableCell.d.ts.map +1 -1
  229. package/dist/types/components/Table/TableHead.d.ts.map +1 -1
  230. package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -1
  231. package/dist/types/components/Table/TableRow.d.ts.map +1 -1
  232. package/dist/types/components/Tabs/Tab/Tab.d.ts.map +1 -1
  233. package/dist/types/components/Tabs/Tab/useTab.d.ts +0 -1
  234. package/dist/types/components/Tabs/Tab/useTab.d.ts.map +1 -1
  235. package/dist/types/components/Tabs/TabContent/TabContent.d.ts.map +1 -1
  236. package/dist/types/components/Tabs/TabList/TabList.d.ts.map +1 -1
  237. package/dist/types/components/Tabs/Tabs.d.ts +0 -1
  238. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
  239. package/dist/types/components/Tag/Tag.d.ts.map +1 -1
  240. package/dist/types/components/ToggleGroup/ToggleGroup.d.ts.map +1 -1
  241. package/dist/types/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.d.ts.map +1 -1
  242. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  243. package/dist/types/components/Typography/ErrorMessage/ErrorMessage.d.ts +13 -2
  244. package/dist/types/components/Typography/ErrorMessage/ErrorMessage.d.ts.map +1 -1
  245. package/dist/types/components/Typography/Heading/Heading.d.ts +15 -2
  246. package/dist/types/components/Typography/Heading/Heading.d.ts.map +1 -1
  247. package/dist/types/components/Typography/Ingress/Ingress.d.ts +13 -2
  248. package/dist/types/components/Typography/Ingress/Ingress.d.ts.map +1 -1
  249. package/dist/types/components/Typography/Label/Label.d.ts +13 -2
  250. package/dist/types/components/Typography/Label/Label.d.ts.map +1 -1
  251. package/dist/types/components/Typography/Paragraph/Paragraph.d.ts +13 -6
  252. package/dist/types/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  253. package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
  254. package/dist/types/components/form/Combobox/Combobox.d.ts +0 -18
  255. package/dist/types/components/form/Combobox/Combobox.d.ts.map +1 -1
  256. package/dist/types/components/form/Combobox/ComboboxContext.d.ts +6 -13
  257. package/dist/types/components/form/Combobox/ComboboxContext.d.ts.map +1 -1
  258. package/dist/types/components/form/Combobox/Custom.d.ts.map +1 -0
  259. package/dist/types/components/form/Combobox/Empty.d.ts.map +1 -0
  260. package/dist/types/components/form/Combobox/Option/Description.d.ts.map +1 -0
  261. package/dist/types/components/form/Combobox/Option/Option.d.ts.map +1 -1
  262. package/dist/types/components/form/Combobox/Option/SelectedIcon.d.ts.map +1 -0
  263. package/dist/types/components/form/Combobox/index.d.ts +1 -1
  264. package/dist/types/components/form/Combobox/index.d.ts.map +1 -1
  265. package/dist/types/components/form/Combobox/internal/ComboboxChips.d.ts.map +1 -1
  266. package/dist/types/components/form/Combobox/internal/ComboboxClearButton.d.ts.map +1 -1
  267. package/dist/types/components/form/Combobox/internal/ComboboxError.d.ts.map +1 -1
  268. package/dist/types/components/form/Combobox/internal/ComboboxInput.d.ts +9 -1
  269. package/dist/types/components/form/Combobox/internal/ComboboxInput.d.ts.map +1 -1
  270. package/dist/types/components/form/Combobox/internal/ComboboxLabel.d.ts.map +1 -1
  271. package/dist/types/components/form/Combobox/useCombobox.d.ts +2 -5
  272. package/dist/types/components/form/Combobox/useCombobox.d.ts.map +1 -1
  273. package/dist/types/components/form/Combobox/useComboboxKeyboard.d.ts +3 -4
  274. package/dist/types/components/form/Combobox/useComboboxKeyboard.d.ts.map +1 -1
  275. package/dist/types/components/form/Combobox/useFloatingCombobox.d.ts +2 -2
  276. package/dist/types/components/form/Fieldset/Fieldset.d.ts.map +1 -1
  277. package/dist/types/components/form/NativeSelect/NativeSelect.d.ts +8 -0
  278. package/dist/types/components/form/NativeSelect/NativeSelect.d.ts.map +1 -1
  279. package/dist/types/components/form/Radio/Group/Group.d.ts.map +1 -1
  280. package/dist/types/components/form/Radio/Radio.d.ts.map +1 -1
  281. package/dist/types/components/form/Search/Search.d.ts +1 -1
  282. package/dist/types/components/form/Search/Search.d.ts.map +1 -1
  283. package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
  284. package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
  285. package/dist/types/components/form/Textfield/Textfield.d.ts.map +1 -1
  286. package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts.map +1 -1
  287. package/dist/types/utilities/RovingTabIndex/RovingTabindexItem.d.ts +8 -11
  288. package/dist/types/utilities/RovingTabIndex/RovingTabindexItem.d.ts.map +1 -1
  289. package/dist/types/utilities/RovingTabIndex/RovingTabindexRoot.d.ts +11 -14
  290. package/dist/types/utilities/RovingTabIndex/RovingTabindexRoot.d.ts.map +1 -1
  291. package/dist/types/utilities/RovingTabIndex/useRovingTabindex.d.ts +4 -4
  292. package/package.json +5 -6
  293. package/dist/cjs/components/Accordion/Accordion.module.css.js +0 -6
  294. package/dist/cjs/components/Box/Box.module.css.js +0 -6
  295. package/dist/cjs/components/Card/Card.module.css.js +0 -6
  296. package/dist/cjs/components/Chip/Chip.module.css.js +0 -6
  297. package/dist/cjs/components/Divider/Divider.module.css.js +0 -6
  298. package/dist/cjs/components/DropdownMenu/DropdownMenu.module.css.js +0 -6
  299. package/dist/cjs/components/DropdownMenu/DropdownMenuGroup/DropdownMenuGroup.module.css.js +0 -6
  300. package/dist/cjs/components/DropdownMenu/DropdownMenuItem/DropdownMenuItem.module.css.js +0 -6
  301. package/dist/cjs/components/ErrorSummary/ErrorSummary.module.css.js +0 -6
  302. package/dist/cjs/components/HelpText/HelpText.module.css.js +0 -6
  303. package/dist/cjs/components/Link/Link.module.css.js +0 -6
  304. package/dist/cjs/components/List/List.module.css.js +0 -6
  305. package/dist/cjs/components/Modal/Modal.module.css.js +0 -6
  306. package/dist/cjs/components/Modal/ModalContent/ModaContent.js +0 -16
  307. package/dist/cjs/components/Modal/ModalContent/ModalContent.module.css.js +0 -6
  308. package/dist/cjs/components/Modal/ModalFooter/ModalFooter.js +0 -16
  309. package/dist/cjs/components/Modal/ModalFooter/ModalFooter.module.css.js +0 -6
  310. package/dist/cjs/components/Modal/ModalHeader/ModalHeader.js +0 -22
  311. package/dist/cjs/components/Modal/ModalHeader/ModalHeader.module.css.js +0 -6
  312. package/dist/cjs/components/Pagination/Pagination.module.css.js +0 -6
  313. package/dist/cjs/components/Popover/Popover.module.css.js +0 -6
  314. package/dist/cjs/components/Skeleton/Skeleton.module.css.js +0 -6
  315. package/dist/cjs/components/Spinner/Spinner.module.css.js +0 -6
  316. package/dist/cjs/components/Table/Table.module.css.js +0 -6
  317. package/dist/cjs/components/Tabs/Tab/Tab.module.css.js +0 -6
  318. package/dist/cjs/components/Tabs/TabContent/TabContent.module.css.js +0 -6
  319. package/dist/cjs/components/Tabs/TabList/TabList.module.css.js +0 -6
  320. package/dist/cjs/components/Tag/Tag.module.css.js +0 -6
  321. package/dist/cjs/components/ToggleGroup/ToggleGroup.module.css.js +0 -6
  322. package/dist/cjs/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.module.css.js +0 -6
  323. package/dist/cjs/components/Tooltip/Tooltip.module.css.js +0 -6
  324. package/dist/cjs/components/Typography/ErrorMessage/ErrorMessage.module.css.js +0 -6
  325. package/dist/cjs/components/Typography/Heading/Heading.module.css.js +0 -6
  326. package/dist/cjs/components/Typography/Label/Label.module.css.js +0 -6
  327. package/dist/cjs/components/Typography/Paragraph/Paragraph.module.css.js +0 -6
  328. package/dist/cjs/components/form/Checkbox/Checkbox.module.css.js +0 -6
  329. package/dist/cjs/components/form/Combobox/Combobox.module.css.js +0 -6
  330. package/dist/cjs/components/form/Combobox/Custom/Custom.module.css.js +0 -6
  331. package/dist/cjs/components/form/Combobox/Empty/Empty.module.css.js +0 -6
  332. package/dist/cjs/components/form/Combobox/Option/Description/Description.module.css.js +0 -6
  333. package/dist/cjs/components/form/Combobox/Option/Icon/SelectedIcon.js +0 -17
  334. package/dist/cjs/components/form/Combobox/Option/Option.module.css.js +0 -6
  335. package/dist/cjs/components/form/Fieldset/Fieldset.module.css.js +0 -6
  336. package/dist/cjs/components/form/NativeSelect/NativeSelect.module.css.js +0 -6
  337. package/dist/cjs/components/form/Radio/Group/Group.module.css.js +0 -6
  338. package/dist/cjs/components/form/Radio/Radio.module.css.js +0 -6
  339. package/dist/cjs/components/form/Search/Search.module.css.js +0 -6
  340. package/dist/cjs/components/form/Switch/Switch.module.css.js +0 -6
  341. package/dist/cjs/components/form/Textarea/Textarea.module.css.js +0 -6
  342. package/dist/cjs/components/form/Textfield/Textfield.module.css.js +0 -6
  343. package/dist/cjs/react-css-modules.css +0 -3233
  344. package/dist/cjs/utilities/AnimateHeight/AnimateHeight.module.css.js +0 -6
  345. package/dist/esm/components/Accordion/Accordion.module.css.js +0 -4
  346. package/dist/esm/components/Box/Box.module.css.js +0 -4
  347. package/dist/esm/components/Card/Card.module.css.js +0 -4
  348. package/dist/esm/components/Chip/Chip.module.css.js +0 -4
  349. package/dist/esm/components/Divider/Divider.module.css.js +0 -4
  350. package/dist/esm/components/DropdownMenu/DropdownMenu.module.css.js +0 -4
  351. package/dist/esm/components/DropdownMenu/DropdownMenuGroup/DropdownMenuGroup.module.css.js +0 -4
  352. package/dist/esm/components/DropdownMenu/DropdownMenuItem/DropdownMenuItem.module.css.js +0 -4
  353. package/dist/esm/components/ErrorSummary/ErrorSummary.module.css.js +0 -4
  354. package/dist/esm/components/HelpText/HelpText.module.css.js +0 -4
  355. package/dist/esm/components/Link/Link.module.css.js +0 -4
  356. package/dist/esm/components/List/List.module.css.js +0 -4
  357. package/dist/esm/components/Modal/Modal.module.css.js +0 -4
  358. package/dist/esm/components/Modal/ModalContent/ModalContent.module.css.js +0 -4
  359. package/dist/esm/components/Modal/ModalFooter/ModalFooter.module.css.js +0 -4
  360. package/dist/esm/components/Modal/ModalHeader/ModalHeader.js +0 -20
  361. package/dist/esm/components/Modal/ModalHeader/ModalHeader.module.css.js +0 -4
  362. package/dist/esm/components/Pagination/Pagination.module.css.js +0 -4
  363. package/dist/esm/components/Popover/Popover.module.css.js +0 -4
  364. package/dist/esm/components/Skeleton/Skeleton.module.css.js +0 -4
  365. package/dist/esm/components/Spinner/Spinner.module.css.js +0 -4
  366. package/dist/esm/components/Table/Table.module.css.js +0 -4
  367. package/dist/esm/components/Tabs/Tab/Tab.module.css.js +0 -4
  368. package/dist/esm/components/Tabs/TabContent/TabContent.module.css.js +0 -4
  369. package/dist/esm/components/Tabs/TabList/TabList.module.css.js +0 -4
  370. package/dist/esm/components/Tag/Tag.module.css.js +0 -4
  371. package/dist/esm/components/ToggleGroup/ToggleGroup.module.css.js +0 -4
  372. package/dist/esm/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.module.css.js +0 -4
  373. package/dist/esm/components/Tooltip/Tooltip.module.css.js +0 -4
  374. package/dist/esm/components/Typography/ErrorMessage/ErrorMessage.module.css.js +0 -4
  375. package/dist/esm/components/Typography/Heading/Heading.module.css.js +0 -4
  376. package/dist/esm/components/Typography/Label/Label.module.css.js +0 -4
  377. package/dist/esm/components/Typography/Paragraph/Paragraph.module.css.js +0 -4
  378. package/dist/esm/components/form/Checkbox/Checkbox.module.css.js +0 -4
  379. package/dist/esm/components/form/Combobox/Combobox.module.css.js +0 -4
  380. package/dist/esm/components/form/Combobox/Custom/Custom.module.css.js +0 -4
  381. package/dist/esm/components/form/Combobox/Empty/Empty.module.css.js +0 -4
  382. package/dist/esm/components/form/Combobox/Option/Description/Description.module.css.js +0 -4
  383. package/dist/esm/components/form/Combobox/Option/Icon/SelectedIcon.js +0 -12
  384. package/dist/esm/components/form/Combobox/Option/Option.module.css.js +0 -4
  385. package/dist/esm/components/form/Fieldset/Fieldset.module.css.js +0 -4
  386. package/dist/esm/components/form/NativeSelect/NativeSelect.module.css.js +0 -4
  387. package/dist/esm/components/form/Radio/Group/Group.module.css.js +0 -4
  388. package/dist/esm/components/form/Radio/Radio.module.css.js +0 -4
  389. package/dist/esm/components/form/Search/Search.module.css.js +0 -4
  390. package/dist/esm/components/form/Switch/Switch.module.css.js +0 -4
  391. package/dist/esm/components/form/Textarea/Textarea.module.css.js +0 -4
  392. package/dist/esm/components/form/Textfield/Textfield.module.css.js +0 -4
  393. package/dist/esm/react-css-modules.css +0 -3233
  394. package/dist/esm/utilities/AnimateHeight/AnimateHeight.module.css.js +0 -4
  395. package/dist/types/components/DropdownMenu/DropdownMenuGroup/DropdownMenuGroup.d.ts.map +0 -1
  396. package/dist/types/components/DropdownMenu/DropdownMenuItem/DropdownMenuItem.d.ts +0 -5
  397. package/dist/types/components/DropdownMenu/DropdownMenuItem/DropdownMenuItem.d.ts.map +0 -1
  398. package/dist/types/components/Modal/ModalContent/ModaContent.d.ts.map +0 -1
  399. package/dist/types/components/Modal/ModalFooter/ModalFooter.d.ts.map +0 -1
  400. package/dist/types/components/Modal/ModalHeader/ModalHeader.d.ts.map +0 -1
  401. package/dist/types/components/Modal/ModalTrigger/ModalTrigger.d.ts.map +0 -1
  402. package/dist/types/components/form/Combobox/Custom/Custom.d.ts.map +0 -1
  403. package/dist/types/components/form/Combobox/Empty/Empty.d.ts.map +0 -1
  404. package/dist/types/components/form/Combobox/Option/Description/Description.d.ts.map +0 -1
  405. package/dist/types/components/form/Combobox/Option/Icon/SelectedIcon.d.ts.map +0 -1
  406. package/dist/types/types/OverridableComponent.d.ts +0 -12
  407. package/dist/types/types/OverridableComponent.d.ts.map +0 -1
  408. /package/dist/types/components/DropdownMenu/{DropdownMenuGroup/DropdownMenuGroup.d.ts → DropdownMenuGroup.d.ts} +0 -0
  409. /package/dist/types/components/Modal/{ModalContent/ModaContent.d.ts → ModaContent.d.ts} +0 -0
  410. /package/dist/types/components/Modal/{ModalFooter/ModalFooter.d.ts → ModalFooter.d.ts} +0 -0
  411. /package/dist/types/components/Modal/{ModalHeader/ModalHeader.d.ts → ModalHeader.d.ts} +0 -0
  412. /package/dist/types/components/form/Combobox/{Custom/Custom.d.ts → Custom.d.ts} +0 -0
  413. /package/dist/types/components/form/Combobox/{Empty/Empty.d.ts → Empty.d.ts} +0 -0
  414. /package/dist/types/components/form/Combobox/Option/{Description/Description.d.ts → Description.d.ts} +0 -0
  415. /package/dist/types/components/form/Combobox/Option/{Icon/SelectedIcon.d.ts → SelectedIcon.d.ts} +0 -0
@@ -2,17 +2,16 @@
2
2
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
3
  import { forwardRef, useRef, useId, useState, useEffect } from 'react';
4
4
  import { FloatingPortal, FloatingFocusManager } from '../../../packages/react/node_modules/@floating-ui/react/dist/floating-ui.react.js';
5
- import { clsx } from '../../../node_modules/clsx/dist/clsx.js';
5
+ import { clsx } from '../../../node_modules/clsx/dist/lite.js';
6
6
  import { useVirtualizer } from '../../../node_modules/@tanstack/react-virtual/dist/esm/index.js';
7
7
  import { useFormField } from '../useFormField.js';
8
8
  import useDebounce from '../../../utilities/useDebounce.js';
9
9
  import useCombobox from './useCombobox.js';
10
- import classes from './Combobox.module.css.js';
11
10
  import ComboboxInput from './internal/ComboboxInput.js';
12
11
  import ComboboxLabel from './internal/ComboboxLabel.js';
13
12
  import ComboboxError from './internal/ComboboxError.js';
14
13
  import ComboboxNative from './internal/ComboboxNative.js';
15
- import ComboboxCustom from './Custom/Custom.js';
14
+ import ComboboxCustom from './Custom.js';
16
15
  import { useFloatingCombobox } from './useFloatingCombobox.js';
17
16
  import { useComboboxKeyboard } from './useComboboxKeyboard.js';
18
17
  import { ComboboxIdProvider } from './ComboboxIdContext.js';
@@ -21,14 +20,13 @@ import { Box } from '../../Box/Box.js';
21
20
  import { Spinner } from '../../Spinner/Spinner.js';
22
21
  import { omit } from '../../../utilities/objectUtils.js';
23
22
 
24
- const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange, label, hideLabel = false, description, multiple = false, size = 'medium', disabled = false, readOnly = false, hideChips = false, cleanButtonLabel = 'Fjern alt', clearButtonLabel = 'Fjern alt', hideClearButton = false, error, errorId, id, name, portal = true, htmlSize = 0, virtual = false, children, style, loading, loadingLabel = 'Laster...', filter, chipSrLabel = (option) => 'Slett ' + option.label, className, ...rest }, forwareddRef) => {
23
+ const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange, label, hideLabel = false, description, multiple = false, size = 'medium', disabled = false, readOnly = false, hideChips = false, clearButtonLabel = 'Fjern alt', hideClearButton = false, error, errorId, id, name, portal = true, htmlSize = 0, virtual = false, children, style, loading, loadingLabel = 'Laster...', filter, chipSrLabel = (option) => 'Slett ' + option.label, className, ...rest }, forwareddRef) => {
25
24
  const inputRef = useRef(null);
26
25
  const portalRef = useRef(null);
27
26
  const listRef = useRef([]);
28
27
  const listId = useId();
29
28
  const [inputValue, setInputValue] = useState(rest.inputValue || '');
30
- /* const idDispatch = useComboboxIdDispatch(); */
31
- const { selectedOptions, options, restChildren, interactiveChildren, optionValues, customIds, filteredOptionsChildren, filteredOptions, prevSelectedHash, setSelectedOptions, setPrevSelectedHash, } = useCombobox({
29
+ const { selectedOptions, options, restChildren, interactiveChildren, customIds, filteredOptionsChildren, filteredOptions, setSelectedOptions, } = useCombobox({
32
30
  children,
33
31
  inputValue,
34
32
  filter,
@@ -49,20 +47,11 @@ const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange,
49
47
  }, 'combobox');
50
48
  // if value is set, set input value to the label of the value
51
49
  useEffect(() => {
52
- if (value && value.length >= 0 && !multiple) {
50
+ if (value && value.length > 0 && !multiple) {
53
51
  const option = options[value[0]];
54
52
  setInputValue(option?.label || '');
55
53
  }
56
54
  }, [multiple, value, options]);
57
- // Send new value if option was clicked
58
- useEffect(() => {
59
- const selectedHash = JSON.stringify(selectedOptions);
60
- if (prevSelectedHash === selectedHash)
61
- return;
62
- const values = Object.keys(selectedOptions);
63
- onValueChange?.(values);
64
- setPrevSelectedHash(selectedHash);
65
- }, [onValueChange, selectedOptions, prevSelectedHash, setPrevSelectedHash]);
66
55
  useEffect(() => {
67
56
  if (value && Object.keys(options).length >= 0) {
68
57
  const updatedSelectedOptions = value.map((option) => {
@@ -74,38 +63,47 @@ const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange,
74
63
  return acc;
75
64
  }, {}));
76
65
  }
77
- }, [multiple, prevSelectedHash, value, options, setSelectedOptions]);
66
+ }, [multiple, value, options, setSelectedOptions]);
78
67
  // handle click on option, either select or deselect - Handles single or multiple
79
- const handleSelectOption = (option) => {
80
- // if option is already selected, remove it
81
- if (value && value.includes(option.value)) {
82
- setSelectedOptions((prev) => {
83
- const updated = { ...prev };
84
- delete updated[option.value];
85
- return updated;
86
- });
68
+ const handleSelectOption = (args) => {
69
+ const { option, clear, remove } = args;
70
+ if (clear) {
71
+ setSelectedOptions({});
72
+ setInputValue('');
73
+ onValueChange?.([]);
87
74
  return;
88
75
  }
76
+ if (!option)
77
+ return;
78
+ if (remove) {
79
+ const newSelectedOptions = { ...selectedOptions };
80
+ delete newSelectedOptions[option.value];
81
+ setSelectedOptions(newSelectedOptions);
82
+ onValueChange?.(Object.keys(newSelectedOptions));
83
+ return;
84
+ }
85
+ const newSelectedOptions = { ...selectedOptions };
89
86
  if (multiple) {
90
- /* setSelectedOptions([...selectedOptions, option]); */
91
- setSelectedOptions((prev) => {
92
- const updated = { ...prev };
93
- updated[option.value] = option;
94
- return updated;
95
- });
87
+ if (newSelectedOptions[option.value]) {
88
+ delete newSelectedOptions[option.value];
89
+ }
90
+ else {
91
+ newSelectedOptions[option.value] = option;
92
+ }
96
93
  setInputValue('');
97
94
  inputRef.current?.focus();
98
95
  }
99
96
  else {
100
- setSelectedOptions({
101
- [option.value]: option,
102
- });
97
+ newSelectedOptions[option.value] = option;
103
98
  setInputValue(option?.label || '');
104
99
  // move cursor to the end of the input
105
100
  setTimeout(() => {
106
101
  inputRef.current?.setSelectionRange(option?.label?.length || 0, option?.label?.length || 0);
107
102
  }, 0);
108
103
  }
104
+ setSelectedOptions(newSelectedOptions);
105
+ console.log('calling new value with: ', Object.keys(newSelectedOptions));
106
+ onValueChange?.(Object.keys(newSelectedOptions));
109
107
  !multiple && setOpen(false);
110
108
  refs.domReference.current?.focus();
111
109
  };
@@ -122,7 +120,6 @@ const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange,
122
120
  interactiveChildren,
123
121
  setOpen,
124
122
  setInputValue,
125
- setSelectedOptions,
126
123
  handleSelectOption: debouncedHandleSelectOption,
127
124
  });
128
125
  const rowVirtualizer = useVirtualizer({
@@ -145,23 +142,15 @@ const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange,
145
142
  inputRef,
146
143
  refs,
147
144
  inputValue,
148
- error,
149
145
  formFieldProps,
150
- name,
151
146
  htmlSize,
152
- optionValues,
153
- hideChips,
154
- clearButtonLabel: cleanButtonLabel || clearButtonLabel,
155
- hideClearButton,
156
- listId,
147
+ clearButtonLabel,
157
148
  customIds,
158
149
  filteredOptions,
159
150
  setInputValue,
160
- handleKeyDown,
161
151
  setOpen,
162
152
  getReferenceProps,
163
153
  getItemProps,
164
- setSelectedOptions,
165
154
  /* Recieves the value of the option, and searches for it in our values lookup */
166
155
  onOptionClick: (value) => {
167
156
  if (readOnly)
@@ -169,18 +158,18 @@ const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange,
169
158
  if (disabled)
170
159
  return;
171
160
  const option = options[value];
172
- debouncedHandleSelectOption(option);
161
+ debouncedHandleSelectOption({ option: option });
173
162
  },
174
163
  handleSelectOption: debouncedHandleSelectOption,
175
164
  chipSrLabel,
176
165
  listRef,
177
166
  forwareddRef,
178
- }, children: [jsxs(Box, { className: clsx(classes.combobox, disabled && classes.disabled, className), style: style, ref: portalRef, children: [name && (jsx(ComboboxNative, { name: name, selectedOptions: selectedOptions, multiple: multiple })), jsx(ComboboxLabel, { label: label, description: description, size: size, readOnly: readOnly, hideLabel: hideLabel, formFieldProps: formFieldProps }), jsx(ComboboxInput, { ...omit(['inputValue'], rest), "aria-busy": loading }), jsx(ComboboxError, { size: size, error: error, formFieldProps: formFieldProps })] }), open && (jsx(FloatingPortal, { root: portal ? null : portalRef, children: jsx(FloatingFocusManager, { context: context, initialFocus: -1, visuallyHiddenDismiss: true, children: jsxs(Box, { id: listId, shadow: 'medium', borderRadius: 'medium', borderColor: 'default', "aria-labelledby": formFieldProps.inputProps.id, "aria-autocomplete": 'list', tabIndex: -1, ...getFloatingProps({
167
+ }, children: [jsxs(Box, { className: clsx('fds-combobox', `fds-combobox--${size}`, disabled && 'fds-combobox__disabled', className), style: style, ref: portalRef, children: [name && (jsx(ComboboxNative, { name: name, selectedOptions: selectedOptions, multiple: multiple })), jsx(ComboboxLabel, { label: label, description: description, size: size, readOnly: readOnly, hideLabel: hideLabel, formFieldProps: formFieldProps }), jsx(ComboboxInput, { ...omit(['inputValue'], rest), hideClearButton: hideClearButton, listId: listId, error: error, hideChips: hideChips, handleKeyDown: handleKeyDown, "aria-busy": loading }), jsx(ComboboxError, { size: size, error: error, formFieldProps: formFieldProps })] }), open && (jsx(FloatingPortal, { root: portal ? null : portalRef, children: jsx(FloatingFocusManager, { context: context, initialFocus: -1, visuallyHiddenDismiss: true, children: jsxs(Box, { id: listId, shadow: 'medium', borderRadius: 'medium', borderColor: 'default', "aria-labelledby": formFieldProps.inputProps.id, "aria-autocomplete": 'list', tabIndex: -1, ...getFloatingProps({
179
168
  ref: refs.setFloating,
180
169
  style: {
181
170
  ...floatingStyles,
182
171
  },
183
- }), className: clsx(classes.optionsWrapper, classes[size]), children: [virtual && (jsx("div", { style: {
172
+ }), className: clsx('fds-combobox__options-wrapper', `fds-combobox--${size}`), children: [virtual && (jsx("div", { style: {
184
173
  height: `${rowVirtualizer.getTotalSize()}px`,
185
174
  width: '100%',
186
175
  position: 'relative',
@@ -190,7 +179,7 @@ const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange,
190
179
  left: 0,
191
180
  width: '100%',
192
181
  transform: `translateY(${virtualRow.start}px)`,
193
- }, children: filteredOptionsChildren[virtualRow.index] }, virtualRow.index))) })), loading ? (jsxs(ComboboxCustom, { className: classes.loading, children: [jsx(Spinner, { title: 'Laster', size: 'small' }), loadingLabel] })) : (jsxs(Fragment, { children: [restChildren, !virtual && filteredOptionsChildren] }))] }) }) }))] }));
182
+ }, children: filteredOptionsChildren[virtualRow.index] }, virtualRow.index))) })), loading ? (jsxs(ComboboxCustom, { className: 'fds-combobox__loading', children: [jsx(Spinner, { title: 'Laster', size: 'small' }), loadingLabel] })) : (jsxs(Fragment, { children: [restChildren, !virtual && filteredOptionsChildren] }))] }) }) }))] }));
194
183
  });
195
184
  const Combobox = forwardRef((props, ref) => (jsx(ComboboxIdProvider, { children: jsx(ComboboxComponent, { ...props, ref: ref }) })));
196
185
  Combobox.displayName = 'Combobox';
@@ -1,13 +1,12 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, useId, useContext, useMemo } from 'react';
4
- import { clsx } from '../../../../node_modules/clsx/dist/clsx.js';
5
- import { Slot as $5e63c961fc1ce211$export$8c6ed5c666ac1360 } from '../../../../node_modules/@radix-ui/react-slot/dist/index.js';
6
- import { useMergeRefs } from '../../../../packages/react/node_modules/@floating-ui/react/dist/floating-ui.react.js';
7
- import { ComboboxContext } from '../ComboboxContext.js';
8
- import { useComboboxId } from '../ComboboxIdContext.js';
9
- import classes from './Custom.module.css.js';
10
- import { omit } from '../../../../utilities/objectUtils.js';
4
+ import { clsx } from '../../../node_modules/clsx/dist/lite.js';
5
+ import { Slot as $5e63c961fc1ce211$export$8c6ed5c666ac1360 } from '../../../node_modules/@radix-ui/react-slot/dist/index.js';
6
+ import { useMergeRefs } from '../../../packages/react/node_modules/@floating-ui/react/dist/floating-ui.react.js';
7
+ import { ComboboxContext } from './ComboboxContext.js';
8
+ import { useComboboxId } from './ComboboxIdContext.js';
9
+ import { omit } from '../../../utilities/objectUtils.js';
11
10
 
12
11
  const ComboboxCustom = forwardRef(({ asChild, interactive, id, className, ...rest }, ref) => {
13
12
  if (interactive && !id) {
@@ -20,7 +19,7 @@ const ComboboxCustom = forwardRef(({ asChild, interactive, id, className, ...res
20
19
  if (!context) {
21
20
  throw new Error('ComboboxCustom must be used within a Combobox');
22
21
  }
23
- const { size, customIds, listRef, getItemProps } = context;
22
+ const { customIds, listRef, getItemProps } = context;
24
23
  const index = useMemo(() => (id && customIds.indexOf(id)) || 0, [id, customIds]);
25
24
  const combinedRef = useMergeRefs([
26
25
  (node) => {
@@ -28,7 +27,7 @@ const ComboboxCustom = forwardRef(({ asChild, interactive, id, className, ...res
28
27
  },
29
28
  ref,
30
29
  ]);
31
- return (jsx(Component, { ref: combinedRef, tabIndex: -1, className: clsx(classes.custom, classes[size], className), id: id || randomId, role: 'option', "aria-selected": activeIndex === index, "data-active": activeIndex === index, ...omit(['interactive'], rest), ...omit(['onClick', 'onPointerLeave'], getItemProps()) }));
30
+ return (jsx(Component, { ref: combinedRef, tabIndex: -1, className: clsx('fds-combobox__custom', className), id: id || randomId, role: 'option', "aria-selected": activeIndex === index, "data-active": activeIndex === index, ...omit(['interactive'], rest), ...omit(['onClick', 'onPointerLeave'], getItemProps()) }));
32
31
  });
33
32
  var ComboboxCustom$1 = ComboboxCustom;
34
33
 
@@ -1,17 +1,16 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, useContext } from 'react';
4
- import { clsx } from '../../../../node_modules/clsx/dist/clsx.js';
5
- import { ComboboxContext } from '../ComboboxContext.js';
6
- import classes from './Empty.module.css.js';
4
+ import { clsx } from '../../../node_modules/clsx/dist/lite.js';
5
+ import { ComboboxContext } from './ComboboxContext.js';
7
6
 
8
7
  const ComboboxEmpty = forwardRef(({ children, className, ...rest }, ref) => {
9
8
  const context = useContext(ComboboxContext);
10
9
  if (!context) {
11
10
  throw new Error('ComboboxEmpty must be used within a Combobox');
12
11
  }
13
- const { filteredOptions, size } = context;
14
- return (filteredOptions.length === 0 && (jsx("div", { ref: ref, className: clsx(classes.empty, classes[size], className), ...rest, children: children })));
12
+ const { filteredOptions } = context;
13
+ return (filteredOptions.length === 0 && (jsx("div", { ref: ref, className: clsx('fds-combobox__empty', className), ...rest, children: children })));
15
14
  });
16
15
  ComboboxEmpty.displayName = 'ComboboxEmpty';
17
16
 
@@ -1,11 +1,10 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
- import { clsx } from '../../../../../node_modules/clsx/dist/clsx.js';
5
- import classes from './Description.module.css.js';
4
+ import { clsx } from '../../../../node_modules/clsx/dist/lite.js';
6
5
 
7
6
  const ComboboxOptionDescription = forwardRef(({ children, className, ...rest }, ref) => {
8
- return (jsx("span", { className: clsx(classes.description, className), ref: ref, ...rest, children: children }));
7
+ return (jsx("span", { className: clsx('fds-combobox__option__description', className), ref: ref, ...rest, children: children }));
9
8
  });
10
9
  ComboboxOptionDescription.displayName = 'ComboboxOptionDescription';
11
10
  var ComboboxOptionDescription$1 = ComboboxOptionDescription;
@@ -1,11 +1,10 @@
1
1
  'use client';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { memo, forwardRef, useId, useContext } from 'react';
4
- import { clsx } from '../../../../node_modules/clsx/dist/clsx.js';
4
+ import { clsx } from '../../../../node_modules/clsx/dist/lite.js';
5
5
  import { ComboboxContext } from '../ComboboxContext.js';
6
- import { SelectedIcon } from './Icon/SelectedIcon.js';
7
- import classes from './Option.module.css.js';
8
- import ComboboxOptionDescription from './Description/Description.js';
6
+ import { SelectedIcon } from './SelectedIcon.js';
7
+ import ComboboxOptionDescription from './Description.js';
9
8
  import useComboboxOption from './useComboboxOption.js';
10
9
  import { omit } from '../../../../utilities/objectUtils.js';
11
10
  import { Label } from '../../../Typography/Label/Label.js';
@@ -26,7 +25,7 @@ const ComboboxOption = memo(forwardRef(({ value, description, children, classNam
26
25
  return (jsxs("button", { ref: ref, id: id, role: 'option', type: 'button', "aria-selected": !!selected, "aria-labelledby": labelId, tabIndex: -1, onClick: (e) => {
27
26
  onOptionClick();
28
27
  rest.onClick?.(e);
29
- }, className: clsx(classes.option, classes[size], active && classes.active, multiple && classes.multiple, className), ...omit(['displayValue'], rest), ...omit(['onClick', 'onPointerLeave'], props), children: [jsx(Label, { asChild: true, size: size, children: jsx("span", { children: jsx(SelectedIcon, { multiple: multiple, selected: !!selected }) }) }), jsxs(Label, { className: classes.optionText, size: size, id: labelId, children: [children, description && (jsx(ComboboxOptionDescription, { children: description }))] })] }));
28
+ }, className: clsx('fds-combobox__option', active && 'fds-combobox__option--active', multiple && 'fds-combobox__option--multiple', className), ...omit(['displayValue'], rest), ...omit(['onClick', 'onPointerLeave'], props), children: [jsx(Label, { asChild: true, size: size, children: jsx("span", { children: jsx(SelectedIcon, { multiple: multiple, selected: !!selected }) }) }), jsxs(Label, { className: 'fds-combobox__option__label', size: size, id: labelId, children: [children, description && (jsx(ComboboxOptionDescription, { children: description }))] })] }));
30
29
  }));
31
30
  ComboboxOption.displayName = 'ComboboxOption';
32
31
 
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { CheckmarkIcon } from '@navikt/aksel-icons';
4
+ import { clsx } from '../../../../node_modules/clsx/dist/lite.js';
5
+
6
+ const SelectedIcon = ({ multiple, selected }) => {
7
+ return (jsx("div", { className: clsx(multiple && 'fds-combobox__option__icon-wrapper', selected && 'fds-combobox__option__icon-wrapper--selected'), children: selected && (jsx(CheckmarkIcon, { className: 'fds-combobox__option__icon-wrapper__icon', "aria-hidden": true })) }));
8
+ };
9
+ SelectedIcon.displayName = 'SelectedIcon';
10
+
11
+ export { SelectedIcon, SelectedIcon as default };
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { Combobox as Combobox$1 } from './Combobox.js';
3
3
  import { ComboboxOption } from './Option/Option.js';
4
- import { ComboboxEmpty } from './Empty/Empty.js';
4
+ import { ComboboxEmpty } from './Empty.js';
5
5
 
6
6
  const Combobox = Combobox$1;
7
7
  Combobox.Option = ComboboxOption;
@@ -10,7 +10,7 @@ const ComboboxChips = () => {
10
10
  if (!context) {
11
11
  throw new Error('ComboboxContext is missing');
12
12
  }
13
- const { size, readOnly, disabled, selectedOptions, setSelectedOptions, chipSrLabel, inputRef, } = context;
13
+ const { size, readOnly, disabled, selectedOptions, chipSrLabel, handleSelectOption, inputRef, } = context;
14
14
  return (jsx(Fragment, { children: Object.keys(selectedOptions).map((value) => {
15
15
  return (jsx(RemovableChip, { size: size, disabled: disabled, onKeyDown: (e) => {
16
16
  if (readOnly)
@@ -19,10 +19,9 @@ const ComboboxChips = () => {
19
19
  return;
20
20
  if (e.key === 'Enter') {
21
21
  e.stopPropagation();
22
- setSelectedOptions((prev) => {
23
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
24
- const { [value]: _, ...rest } = prev;
25
- return rest;
22
+ handleSelectOption({
23
+ option: selectedOptions[value],
24
+ remove: true,
26
25
  });
27
26
  inputRef.current?.focus();
28
27
  }
@@ -32,14 +31,10 @@ const ComboboxChips = () => {
32
31
  if (disabled)
33
32
  return;
34
33
  /* If we click a chip, filter the active values and remove the one we clicked */
35
- setSelectedOptions((prev) => {
36
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
37
- const { [value]: _, ...rest } = prev;
38
- return rest;
34
+ handleSelectOption({
35
+ option: selectedOptions[value],
36
+ remove: true,
39
37
  });
40
- }, style: {
41
- /* We already set the opacity on Combobox */
42
- opacity: 1,
43
38
  }, "aria-label": chipSrLabel(selectedOptions[value]), children: selectedOptions[value].label }, value));
44
39
  }) }));
45
40
  };
@@ -2,23 +2,21 @@
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { useContext } from 'react';
4
4
  import { XMarkIcon } from '@navikt/aksel-icons';
5
- import { clsx } from '../../../../node_modules/clsx/dist/clsx.js';
5
+ import { clsx } from '../../../../node_modules/clsx/dist/lite.js';
6
6
  import { ComboboxContext } from '../ComboboxContext.js';
7
- import classes from '../Combobox.module.css.js';
8
7
 
9
8
  const ComboboxClearButton = () => {
10
9
  const context = useContext(ComboboxContext);
11
10
  if (!context) {
12
11
  throw new Error('ComboboxContext is missing');
13
12
  }
14
- const { size, readOnly, disabled, clearButtonLabel, inputRef, setSelectedOptions, setInputValue, } = context;
15
- return (jsx("button", { disabled: disabled, className: clsx(classes.clearButton, classes[size], `fds-focus`), onClick: () => {
13
+ const { readOnly, disabled, clearButtonLabel, handleSelectOption } = context;
14
+ return (jsx("button", { disabled: disabled, className: clsx('fds-combobox__clear-button', `fds-focus`), onClick: () => {
16
15
  if (readOnly)
17
16
  return;
18
17
  if (disabled)
19
18
  return;
20
- setSelectedOptions({});
21
- setInputValue('');
19
+ handleSelectOption({ option: null, clear: true });
22
20
  }, onKeyDown: (e) => {
23
21
  if (readOnly)
24
22
  return;
@@ -26,9 +24,7 @@ const ComboboxClearButton = () => {
26
24
  return;
27
25
  if (e.key === 'Enter') {
28
26
  e.stopPropagation();
29
- setSelectedOptions({});
30
- setInputValue('');
31
- inputRef.current?.focus();
27
+ handleSelectOption({ option: null, clear: true });
32
28
  }
33
29
  }, type: 'button', "aria-label": clearButtonLabel, children: jsx(XMarkIcon, { fontSize: '1.5em', title: 'Clear selection' }) }));
34
30
  };
@@ -1,10 +1,9 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import classes from '../Combobox.module.css.js';
4
3
  import { ErrorMessage } from '../../../Typography/ErrorMessage/ErrorMessage.js';
5
4
 
6
5
  const ComboboxError = ({ size, error, formFieldProps, }) => {
7
- return (jsx("div", { className: classes.errorMessage, id: formFieldProps.errorId, "aria-live": 'polite', "aria-relevant": 'additions removals', children: error && jsx(ErrorMessage, { size: size, children: error }) }));
6
+ return (jsx("div", { className: 'fds-combobox__error-message', id: formFieldProps.errorId, "aria-live": 'polite', "aria-relevant": 'additions removals', children: error && jsx(ErrorMessage, { size: size, children: error }) }));
8
7
  };
9
8
  ComboboxError.displayName = 'ComboboxError';
10
9
  var ComboboxError$1 = ComboboxError;
@@ -1,19 +1,17 @@
1
1
  'use client';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
- import { useContext, useState, useEffect } from 'react';
4
- import { clsx } from '../../../../node_modules/clsx/dist/clsx.js';
3
+ import { useContext } from 'react';
4
+ import { clsx } from '../../../../node_modules/clsx/dist/lite.js';
5
5
  import { ChevronUpIcon, ChevronDownIcon } from '@navikt/aksel-icons';
6
6
  import { useMergeRefs } from '../../../../packages/react/node_modules/@floating-ui/react/dist/floating-ui.react.js';
7
7
  import { ComboboxContext } from '../ComboboxContext.js';
8
- import classes from '../Combobox.module.css.js';
9
- import textFieldClasses from '../../Textfield/Textfield.module.css.js';
10
8
  import { useComboboxIdDispatch } from '../ComboboxIdContext.js';
11
9
  import ComboboxChips from './ComboboxChips.js';
12
10
  import ComboboxClearButton from './ComboboxClearButton.js';
13
11
  import { Box } from '../../../Box/Box.js';
14
12
  import { omit } from '../../../../utilities/objectUtils.js';
15
13
 
16
- const ComboboxInput = ({ ...rest }) => {
14
+ const ComboboxInput = ({ hideClearButton, listId, error, hideChips, handleKeyDown, ...rest }) => {
17
15
  const context = useContext(ComboboxContext);
18
16
  const idDispatch = useComboboxIdDispatch();
19
17
  if (!context) {
@@ -22,52 +20,20 @@ const ComboboxInput = ({ ...rest }) => {
22
20
  const setActiveIndex = (id) => {
23
21
  idDispatch?.({ type: 'SET_ACTIVE_INDEX', payload: id });
24
22
  };
25
- const { forwareddRef, listId, size, readOnly, disabled, open, inputRef, refs, inputValue, error, multiple, selectedOptions, formFieldProps, htmlSize, options, hideChips, hideClearButton, setOpen, handleKeyDown, getReferenceProps, setInputValue, handleSelectOption, } = context;
23
+ const { forwareddRef, readOnly, disabled, open, inputRef, refs, inputValue, multiple, selectedOptions, formFieldProps, htmlSize, options, setOpen, getReferenceProps, setInputValue, handleSelectOption, } = context;
26
24
  const mergedRefs = useMergeRefs([forwareddRef, inputRef]);
27
- // we need to check if input is in focus, to add focus styles to the wrapper
28
- const [inputInFocus, setInputInFocus] = useState(false);
29
- useEffect(() => {
30
- const input = inputRef.current;
31
- const onFocus = () => {
32
- setInputInFocus(true);
33
- };
34
- const onBlur = () => {
35
- setInputInFocus(false);
36
- };
37
- input?.addEventListener('focus', onFocus);
38
- input?.addEventListener('blur', onBlur);
39
- return () => {
40
- input?.removeEventListener('focus', onFocus);
41
- input?.removeEventListener('blur', onBlur);
42
- };
43
- }, [inputRef]);
44
25
  // onChange function for the input
45
26
  const onChange = (event) => {
46
27
  const value = event.target.value;
47
28
  setInputValue(value);
48
29
  setActiveIndex(0);
49
- if (typeof value === 'string') {
50
- setOpen(true);
51
- }
52
- else {
53
- setOpen(false);
54
- }
55
30
  // check if input value is the same as a label, if so, select it
56
- const option = options[value];
31
+ const option = options[value.toLowerCase()];
57
32
  if (!option)
58
33
  return;
59
34
  if (selectedOptions[option.value])
60
35
  return;
61
- handleSelectOption(option);
62
- if (multiple) {
63
- inputRef.current?.focus();
64
- }
65
- else {
66
- // move cursor to the end of the input
67
- setTimeout(() => {
68
- inputRef.current?.setSelectionRange(option?.label?.length || 0, option?.label?.length || 0);
69
- }, 0);
70
- }
36
+ handleSelectOption({ option: option });
71
37
  };
72
38
  const showClearButton = multiple && !hideClearButton && Object.keys(selectedOptions).length > 0;
73
39
  /* Props from floating-ui */
@@ -88,9 +54,7 @@ const ComboboxInput = ({ ...rest }) => {
88
54
  inputRef.current?.focus();
89
55
  },
90
56
  /* Handles list navigation */
91
- onKeyDown(event) {
92
- handleKeyDown(event);
93
- },
57
+ onKeyDown: handleKeyDown,
94
58
  // preventDefault on keydown to avoid sending in form
95
59
  onKeyPress(event) {
96
60
  if (event.key === 'Enter') {
@@ -98,10 +62,11 @@ const ComboboxInput = ({ ...rest }) => {
98
62
  }
99
63
  },
100
64
  });
101
- return (jsxs(Box, { ...props, "aria-disabled": disabled, className: clsx(textFieldClasses.input, classes.inputWrapper, classes[size], inputInFocus && classes.inFocus, readOnly && classes.readonly, error && classes.error), children: [jsxs("div", { className: classes.chipAndInput, children: [multiple && !hideChips && jsx(ComboboxChips, {}), jsx("input", { ref: mergedRefs, "aria-activedescendant": props['aria-activedescendant'], readOnly: readOnly, "aria-autocomplete": 'list', role: 'combobox', "aria-expanded": open, "aria-controls": listId, autoComplete: 'off', size: htmlSize, value: inputValue, ...omit(['style', 'className'], rest), ...formFieldProps.inputProps, onChange: (e) => {
65
+ return (jsxs(Box, { ...props, "aria-disabled": disabled, className: clsx('fds-textfield__input', 'fds-combobox__input__wrapper', readOnly && 'fds-combobox--readonly', error && 'fds-combobox--error'), children: [jsxs("div", { className: 'fds-combobox__chip-and-input', children: [multiple && !hideChips && jsx(ComboboxChips, {}), jsx("input", { ref: mergedRefs, "aria-activedescendant": props['aria-activedescendant'], readOnly: readOnly, "aria-autocomplete": 'list', role: 'combobox', "aria-expanded": open, "aria-controls": listId, autoComplete: 'off', size: htmlSize, value: inputValue, ...omit(['style', 'className'], rest), ...formFieldProps.inputProps, className: 'fds-combobox__input', onChange: (e) => {
102
66
  onChange(e);
67
+ !open && setOpen(true);
103
68
  rest.onChange && rest.onChange(e);
104
- } })] }), showClearButton && jsx(ComboboxClearButton, {}), jsx("div", { className: classes.arrow, children: open ? (jsx(ChevronUpIcon, { title: 'arrow up', fontSize: '1.5em' })) : (jsx(ChevronDownIcon, { title: 'arrow down', fontSize: '1.5em' })) })] }));
69
+ } })] }), showClearButton && jsx(ComboboxClearButton, {}), jsx("div", { className: 'fds-combobox__arrow', children: open ? (jsx(ChevronUpIcon, { title: 'arrow up', fontSize: '1.5em' })) : (jsx(ChevronDownIcon, { title: 'arrow down', fontSize: '1.5em' })) })] }));
105
70
  };
106
71
  ComboboxInput.displayName = 'ComboboxInput';
107
72
  var ComboboxInput$1 = ComboboxInput;
@@ -1,13 +1,12 @@
1
1
  'use client';
2
2
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
- import { clsx } from '../../../../node_modules/clsx/dist/clsx.js';
3
+ import { clsx } from '../../../../node_modules/clsx/dist/lite.js';
4
4
  import { PadlockLockedFillIcon } from '@navikt/aksel-icons';
5
- import classes from '../Combobox.module.css.js';
6
5
  import { Label } from '../../../Typography/Label/Label.js';
7
6
  import { Paragraph } from '../../../Typography/Paragraph/Paragraph.js';
8
7
 
9
8
  const ComboboxLabel = ({ label, description, hideLabel, size, readOnly, formFieldProps, }) => {
10
- return (jsxs(Fragment, { children: [label && (jsxs(Label, { size: size, htmlFor: formFieldProps.inputProps.id, className: clsx(classes.label, hideLabel && `fds-sr-only`), children: [readOnly && (jsx(PadlockLockedFillIcon, { "aria-hidden": true, className: classes.padlock })), label] })), description && (jsx(Paragraph, { asChild: true, size: size, children: jsx("div", { id: formFieldProps.descriptionId, className: clsx(classes.description, hideLabel && `fds-sr-only`), children: description }) }))] }));
9
+ return (jsxs(Fragment, { children: [label && (jsxs(Label, { size: size, htmlFor: formFieldProps.inputProps.id, className: clsx('fds-combobox__label', hideLabel && `fds-sr-only`), children: [readOnly && (jsx(PadlockLockedFillIcon, { "aria-hidden": true, className: 'fds-combobox__readonly__icon' })), label] })), description && (jsx(Paragraph, { asChild: true, size: size, children: jsx("div", { id: formFieldProps.descriptionId, className: clsx('fds-combobox__description', hideLabel && `fds-sr-only`), children: description }) }))] }));
11
10
  };
12
11
  ComboboxLabel.displayName = 'ComboboxLabel';
13
12
  var ComboboxLabel$1 = ComboboxLabel;