@digdir/designsystemet-react 1.0.0-next.46 → 1.0.0-next.48

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 (436) hide show
  1. package/dist/cjs/components/Alert/Alert.js +2 -1
  2. package/dist/cjs/components/Badge/Badge.js +3 -7
  3. package/dist/cjs/components/Badge/BadgePosition.js +9 -0
  4. package/dist/cjs/components/Badge/index.js +6 -0
  5. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js +18 -0
  6. package/dist/cjs/components/Breadcrumbs/index.js +13 -8
  7. package/dist/cjs/components/Button/Button.js +1 -0
  8. package/dist/cjs/components/Card/Card.js +1 -0
  9. package/dist/cjs/components/Card/index.js +10 -0
  10. package/dist/cjs/components/Checkbox/Checkbox.js +3 -2
  11. package/dist/cjs/components/Chip/Chips.js +1 -0
  12. package/dist/cjs/components/Combobox/Combobox.js +5 -2
  13. package/dist/cjs/components/Combobox/Custom.js +1 -1
  14. package/dist/cjs/components/Combobox/index.js +3 -0
  15. package/dist/cjs/components/Combobox/internal/ComboboxChips.js +1 -1
  16. package/dist/cjs/components/Details/Details.js +3 -2
  17. package/dist/cjs/components/Details/DetailsContent.js +1 -0
  18. package/dist/cjs/components/Details/DetailsSummary.js +1 -0
  19. package/dist/cjs/components/Details/index.js +4 -3
  20. package/dist/cjs/components/Divider/Divider.js +6 -0
  21. package/dist/cjs/components/Dropdown/Dropdown.js +27 -0
  22. package/dist/cjs/components/Dropdown/DropdownTriggerContext.js +4 -1
  23. package/dist/cjs/components/Dropdown/index.js +11 -9
  24. package/dist/cjs/components/ErrorSummary/ErrorSummary.js +20 -2
  25. package/dist/cjs/components/ErrorSummary/ErrorSummaryItem.js +10 -4
  26. package/dist/cjs/components/ErrorSummary/ErrorSummaryLink.js +15 -0
  27. package/dist/cjs/components/ErrorSummary/index.js +15 -4
  28. package/dist/cjs/components/Field/Field.js +11 -0
  29. package/dist/cjs/components/Field/FieldAffix.js +21 -0
  30. package/dist/cjs/components/Field/FieldCounter.js +9 -0
  31. package/dist/cjs/components/Field/index.js +7 -5
  32. package/dist/cjs/components/Fieldset/Fieldset.js +15 -0
  33. package/dist/cjs/components/Fieldset/FieldsetDescription.js +8 -0
  34. package/dist/cjs/components/Fieldset/FieldsetLegend.js +6 -0
  35. package/dist/cjs/components/Fieldset/index.js +10 -3
  36. package/dist/cjs/components/Input/Input.js +2 -3
  37. package/dist/cjs/components/Label/Label.js +2 -2
  38. package/dist/cjs/components/Link/Link.js +6 -0
  39. package/dist/cjs/components/List/Lists.js +20 -0
  40. package/dist/cjs/components/Modal/Modal.js +23 -0
  41. package/dist/cjs/components/Modal/ModalBlock.js +16 -0
  42. package/dist/cjs/components/Modal/ModalTrigger.js +11 -0
  43. package/dist/cjs/components/Modal/ModalTriggerContext.js +11 -0
  44. package/dist/cjs/components/Modal/index.js +13 -0
  45. package/dist/cjs/components/Pagination/Pagination.js +18 -0
  46. package/dist/cjs/components/Pagination/PaginationButton.js +8 -0
  47. package/dist/cjs/components/Pagination/PaginationItem.js +10 -0
  48. package/dist/cjs/components/Pagination/PaginationList.js +12 -0
  49. package/dist/cjs/components/Pagination/index.js +18 -0
  50. package/dist/cjs/components/Pagination/usePagination.js +29 -1
  51. package/dist/cjs/components/Paragraph/Paragraph.js +1 -0
  52. package/dist/cjs/components/Popover/Popover.js +17 -0
  53. package/dist/cjs/components/Popover/PopoverTrigger.js +27 -2
  54. package/dist/cjs/components/Popover/PopoverTriggerContext.js +11 -0
  55. package/dist/cjs/components/Popover/index.js +15 -3
  56. package/dist/cjs/components/Radio/Radio.js +3 -2
  57. package/dist/cjs/components/Search/Search.js +16 -0
  58. package/dist/cjs/components/Search/SearchButton.js +9 -0
  59. package/dist/cjs/components/Search/SearchClear.js +9 -0
  60. package/dist/cjs/components/Search/SearchInput.js +8 -0
  61. package/dist/cjs/components/Search/index.js +11 -7
  62. package/dist/cjs/components/Select/Select.js +9 -0
  63. package/dist/cjs/components/Select/SelectOptgroup.js +11 -0
  64. package/dist/cjs/components/Select/SelectOption.js +9 -0
  65. package/dist/cjs/components/Select/index.js +9 -0
  66. package/dist/cjs/components/Skeleton/Skeleton.js +5 -4
  67. package/dist/cjs/components/SkipLink/SkipLink.js +7 -0
  68. package/dist/cjs/components/Spinner/Spinner.js +6 -1
  69. package/dist/cjs/components/Suggestion/Suggestion.js +55 -0
  70. package/dist/cjs/components/Suggestion/SuggestionClear.js +48 -0
  71. package/dist/cjs/components/Suggestion/SuggestionEmpty.js +23 -0
  72. package/dist/cjs/components/Suggestion/SuggestionInput.js +45 -0
  73. package/dist/cjs/components/Suggestion/SuggestionList.js +30 -0
  74. package/dist/cjs/components/Suggestion/SuggestionOption.js +12 -0
  75. package/dist/cjs/components/Suggestion/index.js +44 -0
  76. package/dist/cjs/components/Switch/Switch.js +1 -0
  77. package/dist/cjs/components/Table/Table.js +25 -0
  78. package/dist/cjs/components/Table/TableBody.js +11 -0
  79. package/dist/cjs/components/Table/TableCell.js +6 -0
  80. package/dist/cjs/components/Table/TableFoot.js +11 -0
  81. package/dist/cjs/components/Table/TableHead.js +11 -0
  82. package/dist/cjs/components/Table/TableHeaderCell.js +6 -0
  83. package/dist/cjs/components/Table/TableRow.js +9 -0
  84. package/dist/cjs/components/Table/index.js +25 -0
  85. package/dist/cjs/components/Tabs/Tabs.js +1 -2
  86. package/dist/cjs/components/Tabs/TabsList.js +1 -2
  87. package/dist/cjs/components/Tabs/TabsPanel.js +1 -2
  88. package/dist/cjs/components/Tabs/TabsTab.js +1 -0
  89. package/dist/cjs/components/Tabs/index.js +1 -2
  90. package/dist/cjs/components/Tag/Tag.js +3 -2
  91. package/dist/cjs/components/Textarea/Textarea.js +2 -3
  92. package/dist/cjs/components/Textfield/Textfield.js +1 -3
  93. package/dist/cjs/components/ToggleGroup/ToggleGroup.js +1 -0
  94. package/dist/cjs/components/ToggleGroup/index.js +4 -4
  95. package/dist/cjs/components/Tooltip/Tooltip.js +8 -4
  96. package/dist/cjs/components/ValidationMessage/ValidationMessage.js +6 -1
  97. package/dist/cjs/index.js +14 -2
  98. package/dist/cjs/utilities/RovingFocus/RovingFocusRoot.js +1 -1
  99. package/dist/esm/components/Alert/Alert.js +2 -1
  100. package/dist/esm/components/Badge/Badge.js +3 -7
  101. package/dist/esm/components/Badge/BadgePosition.js +9 -0
  102. package/dist/esm/components/Badge/index.js +6 -0
  103. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +18 -0
  104. package/dist/esm/components/Breadcrumbs/index.js +13 -8
  105. package/dist/esm/components/Button/Button.js +1 -0
  106. package/dist/esm/components/Card/Card.js +1 -0
  107. package/dist/esm/components/Card/index.js +10 -0
  108. package/dist/esm/components/Checkbox/Checkbox.js +3 -2
  109. package/dist/esm/components/Chip/Chips.js +1 -0
  110. package/dist/esm/components/Combobox/Combobox.js +5 -2
  111. package/dist/esm/components/Combobox/Custom.js +1 -1
  112. package/dist/esm/components/Combobox/index.js +3 -0
  113. package/dist/esm/components/Combobox/internal/ComboboxChips.js +1 -1
  114. package/dist/esm/components/Details/Details.js +3 -2
  115. package/dist/esm/components/Details/DetailsContent.js +1 -0
  116. package/dist/esm/components/Details/DetailsSummary.js +1 -0
  117. package/dist/esm/components/Details/index.js +4 -3
  118. package/dist/esm/components/Divider/Divider.js +6 -0
  119. package/dist/esm/components/Dropdown/Dropdown.js +27 -0
  120. package/dist/esm/components/Dropdown/DropdownTriggerContext.js +4 -1
  121. package/dist/esm/components/Dropdown/index.js +11 -9
  122. package/dist/esm/components/ErrorSummary/ErrorSummary.js +20 -2
  123. package/dist/esm/components/ErrorSummary/ErrorSummaryItem.js +10 -4
  124. package/dist/esm/components/ErrorSummary/ErrorSummaryLink.js +13 -0
  125. package/dist/esm/components/ErrorSummary/index.js +15 -5
  126. package/dist/esm/components/Field/Field.js +11 -0
  127. package/dist/esm/components/Field/FieldAffix.js +21 -0
  128. package/dist/esm/components/Field/FieldCounter.js +9 -0
  129. package/dist/esm/components/Field/index.js +7 -5
  130. package/dist/esm/components/Fieldset/Fieldset.js +15 -0
  131. package/dist/esm/components/Fieldset/FieldsetDescription.js +8 -0
  132. package/dist/esm/components/Fieldset/FieldsetLegend.js +6 -0
  133. package/dist/esm/components/Fieldset/index.js +10 -3
  134. package/dist/esm/components/Input/Input.js +2 -3
  135. package/dist/esm/components/Label/Label.js +2 -2
  136. package/dist/esm/components/Link/Link.js +6 -0
  137. package/dist/esm/components/List/Lists.js +20 -0
  138. package/dist/esm/components/Modal/Modal.js +23 -0
  139. package/dist/esm/components/Modal/ModalBlock.js +16 -0
  140. package/dist/esm/components/Modal/ModalTrigger.js +11 -0
  141. package/dist/esm/components/Modal/ModalTriggerContext.js +11 -0
  142. package/dist/esm/components/Modal/index.js +13 -0
  143. package/dist/esm/components/Pagination/Pagination.js +18 -0
  144. package/dist/esm/components/Pagination/PaginationButton.js +8 -0
  145. package/dist/esm/components/Pagination/PaginationItem.js +10 -0
  146. package/dist/esm/components/Pagination/PaginationList.js +12 -0
  147. package/dist/esm/components/Pagination/index.js +18 -0
  148. package/dist/esm/components/Pagination/usePagination.js +29 -1
  149. package/dist/esm/components/Paragraph/Paragraph.js +1 -0
  150. package/dist/esm/components/Popover/Popover.js +17 -0
  151. package/dist/esm/components/Popover/PopoverTrigger.js +28 -3
  152. package/dist/esm/components/Popover/PopoverTriggerContext.js +11 -0
  153. package/dist/esm/components/Popover/index.js +15 -3
  154. package/dist/esm/components/Radio/Radio.js +3 -2
  155. package/dist/esm/components/Search/Search.js +16 -0
  156. package/dist/esm/components/Search/SearchButton.js +9 -0
  157. package/dist/esm/components/Search/SearchClear.js +9 -0
  158. package/dist/esm/components/Search/SearchInput.js +8 -0
  159. package/dist/esm/components/Search/index.js +11 -7
  160. package/dist/esm/components/Select/Select.js +9 -0
  161. package/dist/esm/components/Select/SelectOptgroup.js +11 -0
  162. package/dist/esm/components/Select/SelectOption.js +9 -0
  163. package/dist/esm/components/Select/index.js +9 -0
  164. package/dist/esm/components/Skeleton/Skeleton.js +5 -4
  165. package/dist/esm/components/SkipLink/SkipLink.js +7 -0
  166. package/dist/esm/components/Spinner/Spinner.js +6 -1
  167. package/dist/esm/components/Suggestion/Suggestion.js +52 -0
  168. package/dist/esm/components/Suggestion/SuggestionClear.js +45 -0
  169. package/dist/esm/components/Suggestion/SuggestionEmpty.js +21 -0
  170. package/dist/esm/components/Suggestion/SuggestionInput.js +43 -0
  171. package/dist/esm/components/Suggestion/SuggestionList.js +28 -0
  172. package/dist/esm/components/Suggestion/SuggestionOption.js +10 -0
  173. package/dist/esm/components/Suggestion/index.js +37 -0
  174. package/dist/esm/components/Switch/Switch.js +1 -0
  175. package/dist/esm/components/Table/Table.js +25 -0
  176. package/dist/esm/components/Table/TableBody.js +11 -0
  177. package/dist/esm/components/Table/TableCell.js +6 -0
  178. package/dist/esm/components/Table/TableFoot.js +11 -0
  179. package/dist/esm/components/Table/TableHead.js +11 -0
  180. package/dist/esm/components/Table/TableHeaderCell.js +6 -0
  181. package/dist/esm/components/Table/TableRow.js +9 -0
  182. package/dist/esm/components/Table/index.js +25 -0
  183. package/dist/esm/components/Tabs/Tabs.js +1 -2
  184. package/dist/esm/components/Tabs/TabsList.js +1 -2
  185. package/dist/esm/components/Tabs/TabsPanel.js +1 -2
  186. package/dist/esm/components/Tabs/TabsTab.js +1 -0
  187. package/dist/esm/components/Tabs/index.js +1 -2
  188. package/dist/esm/components/Tag/Tag.js +3 -2
  189. package/dist/esm/components/Textarea/Textarea.js +2 -3
  190. package/dist/esm/components/Textfield/Textfield.js +1 -3
  191. package/dist/esm/components/ToggleGroup/ToggleGroup.js +1 -0
  192. package/dist/esm/components/ToggleGroup/index.js +4 -4
  193. package/dist/esm/components/Tooltip/Tooltip.js +9 -5
  194. package/dist/esm/components/ValidationMessage/ValidationMessage.js +6 -1
  195. package/dist/esm/index.js +7 -1
  196. package/dist/esm/utilities/RovingFocus/RovingFocusRoot.js +1 -1
  197. package/dist/types/components/Alert/Alert.d.ts +6 -3
  198. package/dist/types/components/Alert/Alert.d.ts.map +1 -1
  199. package/dist/types/components/Alert/index.d.ts +2 -1
  200. package/dist/types/components/Alert/index.d.ts.map +1 -1
  201. package/dist/types/components/Badge/Badge.d.ts +3 -7
  202. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  203. package/dist/types/components/Badge/BadgePosition.d.ts +9 -0
  204. package/dist/types/components/Badge/BadgePosition.d.ts.map +1 -1
  205. package/dist/types/components/Badge/index.d.ts +6 -0
  206. package/dist/types/components/Badge/index.d.ts.map +1 -1
  207. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +18 -0
  208. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  209. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts +1 -3
  210. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts.map +1 -1
  211. package/dist/types/components/Breadcrumbs/index.d.ts +14 -11
  212. package/dist/types/components/Breadcrumbs/index.d.ts.map +1 -1
  213. package/dist/types/components/Button/Button.d.ts +11 -6
  214. package/dist/types/components/Button/Button.d.ts.map +1 -1
  215. package/dist/types/components/Card/Card.d.ts +9 -0
  216. package/dist/types/components/Card/Card.d.ts.map +1 -1
  217. package/dist/types/components/Card/index.d.ts +10 -0
  218. package/dist/types/components/Card/index.d.ts.map +1 -1
  219. package/dist/types/components/Checkbox/Checkbox.d.ts +17 -6
  220. package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  221. package/dist/types/components/Checkbox/index.d.ts +2 -1
  222. package/dist/types/components/Checkbox/index.d.ts.map +1 -1
  223. package/dist/types/components/Chip/Chips.d.ts +1 -0
  224. package/dist/types/components/Chip/Chips.d.ts.map +1 -1
  225. package/dist/types/components/Combobox/Combobox.d.ts +3 -0
  226. package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
  227. package/dist/types/components/Combobox/ComboboxContext.d.ts +1 -1
  228. package/dist/types/components/Combobox/ComboboxContext.d.ts.map +1 -1
  229. package/dist/types/components/Combobox/Option/Option.d.ts +2 -2
  230. package/dist/types/components/Combobox/Option/Option.d.ts.map +1 -1
  231. package/dist/types/components/Combobox/Option/useComboboxOption.d.ts +6 -4
  232. package/dist/types/components/Combobox/Option/useComboboxOption.d.ts.map +1 -1
  233. package/dist/types/components/Combobox/index.d.ts +3 -0
  234. package/dist/types/components/Combobox/index.d.ts.map +1 -1
  235. package/dist/types/components/Combobox/useFloatingCombobox.d.ts +2 -2
  236. package/dist/types/components/Combobox/useFloatingCombobox.d.ts.map +1 -1
  237. package/dist/types/components/Details/Details.d.ts +9 -4
  238. package/dist/types/components/Details/Details.d.ts.map +1 -1
  239. package/dist/types/components/Details/DetailsContent.d.ts +1 -0
  240. package/dist/types/components/Details/DetailsContent.d.ts.map +1 -1
  241. package/dist/types/components/Details/DetailsSummary.d.ts +1 -0
  242. package/dist/types/components/Details/DetailsSummary.d.ts.map +1 -1
  243. package/dist/types/components/Details/index.d.ts +4 -3
  244. package/dist/types/components/Details/index.d.ts.map +1 -1
  245. package/dist/types/components/Divider/Divider.d.ts +6 -0
  246. package/dist/types/components/Divider/Divider.d.ts.map +1 -1
  247. package/dist/types/components/Dropdown/Dropdown.d.ts +31 -2
  248. package/dist/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  249. package/dist/types/components/Dropdown/DropdownTriggerContext.d.ts +4 -1
  250. package/dist/types/components/Dropdown/DropdownTriggerContext.d.ts.map +1 -1
  251. package/dist/types/components/Dropdown/index.d.ts +11 -9
  252. package/dist/types/components/Dropdown/index.d.ts.map +1 -1
  253. package/dist/types/components/ErrorSummary/ErrorSummary.d.ts +22 -2
  254. package/dist/types/components/ErrorSummary/ErrorSummary.d.ts.map +1 -1
  255. package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts +11 -21
  256. package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts.map +1 -1
  257. package/dist/types/components/ErrorSummary/ErrorSummaryLink.d.ts +10 -0
  258. package/dist/types/components/ErrorSummary/ErrorSummaryLink.d.ts.map +1 -0
  259. package/dist/types/components/ErrorSummary/index.d.ts +24 -7
  260. package/dist/types/components/ErrorSummary/index.d.ts.map +1 -1
  261. package/dist/types/components/Field/Field.d.ts +15 -2
  262. package/dist/types/components/Field/Field.d.ts.map +1 -1
  263. package/dist/types/components/Field/FieldAffix.d.ts +21 -0
  264. package/dist/types/components/Field/FieldAffix.d.ts.map +1 -1
  265. package/dist/types/components/Field/FieldCounter.d.ts +35 -6
  266. package/dist/types/components/Field/FieldCounter.d.ts.map +1 -1
  267. package/dist/types/components/Field/index.d.ts +7 -5
  268. package/dist/types/components/Field/index.d.ts.map +1 -1
  269. package/dist/types/components/Fieldset/Fieldset.d.ts +15 -0
  270. package/dist/types/components/Fieldset/Fieldset.d.ts.map +1 -1
  271. package/dist/types/components/Fieldset/FieldsetDescription.d.ts +8 -0
  272. package/dist/types/components/Fieldset/FieldsetDescription.d.ts.map +1 -1
  273. package/dist/types/components/Fieldset/FieldsetLegend.d.ts +6 -0
  274. package/dist/types/components/Fieldset/FieldsetLegend.d.ts.map +1 -1
  275. package/dist/types/components/Fieldset/index.d.ts +10 -3
  276. package/dist/types/components/Fieldset/index.d.ts.map +1 -1
  277. package/dist/types/components/Heading/Heading.d.ts +6 -2
  278. package/dist/types/components/Heading/Heading.d.ts.map +1 -1
  279. package/dist/types/components/Heading/index.d.ts +2 -1
  280. package/dist/types/components/Heading/index.d.ts.map +1 -1
  281. package/dist/types/components/Input/Input.d.ts +22 -11
  282. package/dist/types/components/Input/Input.d.ts.map +1 -1
  283. package/dist/types/components/Label/Label.d.ts +2 -2
  284. package/dist/types/components/Label/index.d.ts +2 -1
  285. package/dist/types/components/Label/index.d.ts.map +1 -1
  286. package/dist/types/components/Link/Link.d.ts +13 -11
  287. package/dist/types/components/Link/Link.d.ts.map +1 -1
  288. package/dist/types/components/List/Lists.d.ts +20 -0
  289. package/dist/types/components/List/Lists.d.ts.map +1 -1
  290. package/dist/types/components/Modal/Modal.d.ts +31 -0
  291. package/dist/types/components/Modal/Modal.d.ts.map +1 -1
  292. package/dist/types/components/Modal/ModalBlock.d.ts +16 -0
  293. package/dist/types/components/Modal/ModalBlock.d.ts.map +1 -1
  294. package/dist/types/components/Modal/ModalTrigger.d.ts +13 -4
  295. package/dist/types/components/Modal/ModalTrigger.d.ts.map +1 -1
  296. package/dist/types/components/Modal/ModalTriggerContext.d.ts +12 -1
  297. package/dist/types/components/Modal/ModalTriggerContext.d.ts.map +1 -1
  298. package/dist/types/components/Modal/index.d.ts +15 -4
  299. package/dist/types/components/Modal/index.d.ts.map +1 -1
  300. package/dist/types/components/Pagination/Pagination.d.ts +18 -0
  301. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  302. package/dist/types/components/Pagination/PaginationButton.d.ts +8 -0
  303. package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -1
  304. package/dist/types/components/Pagination/PaginationItem.d.ts +10 -0
  305. package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
  306. package/dist/types/components/Pagination/PaginationList.d.ts +12 -0
  307. package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -1
  308. package/dist/types/components/Pagination/index.d.ts +18 -0
  309. package/dist/types/components/Pagination/index.d.ts.map +1 -1
  310. package/dist/types/components/Pagination/usePagination.d.ts +29 -1
  311. package/dist/types/components/Pagination/usePagination.d.ts.map +1 -1
  312. package/dist/types/components/Paragraph/Paragraph.d.ts +1 -0
  313. package/dist/types/components/Paragraph/Paragraph.d.ts.map +1 -1
  314. package/dist/types/components/Paragraph/index.d.ts +2 -1
  315. package/dist/types/components/Paragraph/index.d.ts.map +1 -1
  316. package/dist/types/components/Popover/Popover.d.ts +34 -9
  317. package/dist/types/components/Popover/Popover.d.ts.map +1 -1
  318. package/dist/types/components/Popover/PopoverTrigger.d.ts +33 -0
  319. package/dist/types/components/Popover/PopoverTrigger.d.ts.map +1 -1
  320. package/dist/types/components/Popover/PopoverTriggerContext.d.ts +11 -0
  321. package/dist/types/components/Popover/PopoverTriggerContext.d.ts.map +1 -1
  322. package/dist/types/components/Popover/index.d.ts +25 -5
  323. package/dist/types/components/Popover/index.d.ts.map +1 -1
  324. package/dist/types/components/Radio/Radio.d.ts +17 -6
  325. package/dist/types/components/Radio/Radio.d.ts.map +1 -1
  326. package/dist/types/components/Radio/index.d.ts +2 -1
  327. package/dist/types/components/Radio/index.d.ts.map +1 -1
  328. package/dist/types/components/Search/Search.d.ts +16 -0
  329. package/dist/types/components/Search/Search.d.ts.map +1 -1
  330. package/dist/types/components/Search/SearchButton.d.ts +15 -1
  331. package/dist/types/components/Search/SearchButton.d.ts.map +1 -1
  332. package/dist/types/components/Search/SearchClear.d.ts +9 -0
  333. package/dist/types/components/Search/SearchClear.d.ts.map +1 -1
  334. package/dist/types/components/Search/SearchInput.d.ts +8 -0
  335. package/dist/types/components/Search/SearchInput.d.ts.map +1 -1
  336. package/dist/types/components/Search/index.d.ts +11 -7
  337. package/dist/types/components/Search/index.d.ts.map +1 -1
  338. package/dist/types/components/Select/Select.d.ts +17 -4
  339. package/dist/types/components/Select/Select.d.ts.map +1 -1
  340. package/dist/types/components/Select/SelectOptgroup.d.ts +11 -0
  341. package/dist/types/components/Select/SelectOptgroup.d.ts.map +1 -1
  342. package/dist/types/components/Select/SelectOption.d.ts +9 -0
  343. package/dist/types/components/Select/SelectOption.d.ts.map +1 -1
  344. package/dist/types/components/Select/index.d.ts +9 -0
  345. package/dist/types/components/Select/index.d.ts.map +1 -1
  346. package/dist/types/components/Skeleton/Skeleton.d.ts +15 -10
  347. package/dist/types/components/Skeleton/Skeleton.d.ts.map +1 -1
  348. package/dist/types/components/SkipLink/SkipLink.d.ts +19 -4
  349. package/dist/types/components/SkipLink/SkipLink.d.ts.map +1 -1
  350. package/dist/types/components/Spinner/Spinner.d.ts +9 -2
  351. package/dist/types/components/Spinner/Spinner.d.ts.map +1 -1
  352. package/dist/types/components/Spinner/index.d.ts +2 -1
  353. package/dist/types/components/Spinner/index.d.ts.map +1 -1
  354. package/dist/types/components/Suggestion/Suggestion.d.ts +102 -0
  355. package/dist/types/components/Suggestion/Suggestion.d.ts.map +1 -0
  356. package/dist/types/components/Suggestion/SuggestionClear.d.ts +35 -0
  357. package/dist/types/components/Suggestion/SuggestionClear.d.ts.map +1 -0
  358. package/dist/types/components/Suggestion/SuggestionEmpty.d.ts +28 -0
  359. package/dist/types/components/Suggestion/SuggestionEmpty.d.ts.map +1 -0
  360. package/dist/types/components/Suggestion/SuggestionInput.d.ts +21 -0
  361. package/dist/types/components/Suggestion/SuggestionInput.d.ts.map +1 -0
  362. package/dist/types/components/Suggestion/SuggestionList.d.ts +40 -0
  363. package/dist/types/components/Suggestion/SuggestionList.d.ts.map +1 -0
  364. package/dist/types/components/Suggestion/SuggestionOption.d.ts +6 -0
  365. package/dist/types/components/Suggestion/SuggestionOption.d.ts.map +1 -0
  366. package/dist/types/components/Suggestion/index.d.ts +56 -0
  367. package/dist/types/components/Suggestion/index.d.ts.map +1 -0
  368. package/dist/types/components/Switch/Switch.d.ts +15 -5
  369. package/dist/types/components/Switch/Switch.d.ts.map +1 -1
  370. package/dist/types/components/Switch/index.d.ts +2 -1
  371. package/dist/types/components/Switch/index.d.ts.map +1 -1
  372. package/dist/types/components/Table/Table.d.ts +33 -8
  373. package/dist/types/components/Table/Table.d.ts.map +1 -1
  374. package/dist/types/components/Table/TableBody.d.ts +11 -0
  375. package/dist/types/components/Table/TableBody.d.ts.map +1 -1
  376. package/dist/types/components/Table/TableCell.d.ts +6 -0
  377. package/dist/types/components/Table/TableCell.d.ts.map +1 -1
  378. package/dist/types/components/Table/TableFoot.d.ts +11 -0
  379. package/dist/types/components/Table/TableFoot.d.ts.map +1 -1
  380. package/dist/types/components/Table/TableHead.d.ts +11 -0
  381. package/dist/types/components/Table/TableHead.d.ts.map +1 -1
  382. package/dist/types/components/Table/TableHeaderCell.d.ts +6 -0
  383. package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -1
  384. package/dist/types/components/Table/TableRow.d.ts +9 -0
  385. package/dist/types/components/Table/TableRow.d.ts.map +1 -1
  386. package/dist/types/components/Table/index.d.ts +25 -0
  387. package/dist/types/components/Table/index.d.ts.map +1 -1
  388. package/dist/types/components/Tabs/Tabs.d.ts +25 -8
  389. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
  390. package/dist/types/components/Tabs/TabsList.d.ts +1 -2
  391. package/dist/types/components/Tabs/TabsList.d.ts.map +1 -1
  392. package/dist/types/components/Tabs/TabsPanel.d.ts +9 -4
  393. package/dist/types/components/Tabs/TabsPanel.d.ts.map +1 -1
  394. package/dist/types/components/Tabs/TabsTab.d.ts +7 -2
  395. package/dist/types/components/Tabs/TabsTab.d.ts.map +1 -1
  396. package/dist/types/components/Tabs/index.d.ts +1 -2
  397. package/dist/types/components/Tabs/index.d.ts.map +1 -1
  398. package/dist/types/components/Tag/Tag.d.ts +3 -2
  399. package/dist/types/components/Tag/Tag.d.ts.map +1 -1
  400. package/dist/types/components/Tag/index.d.ts +2 -1
  401. package/dist/types/components/Tag/index.d.ts.map +1 -1
  402. package/dist/types/components/Textarea/Textarea.d.ts +2 -3
  403. package/dist/types/components/Textarea/Textarea.d.ts.map +1 -1
  404. package/dist/types/components/Textarea/index.d.ts +2 -1
  405. package/dist/types/components/Textarea/index.d.ts.map +1 -1
  406. package/dist/types/components/Textfield/Textfield.d.ts +30 -12
  407. package/dist/types/components/Textfield/Textfield.d.ts.map +1 -1
  408. package/dist/types/components/Textfield/index.d.ts +2 -1
  409. package/dist/types/components/Textfield/index.d.ts.map +1 -1
  410. package/dist/types/components/ToggleGroup/ToggleGroup.d.ts +25 -8
  411. package/dist/types/components/ToggleGroup/ToggleGroup.d.ts.map +1 -1
  412. package/dist/types/components/ToggleGroup/index.d.ts +13 -9
  413. package/dist/types/components/ToggleGroup/index.d.ts.map +1 -1
  414. package/dist/types/components/Tooltip/Tooltip.d.ts +8 -3
  415. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  416. package/dist/types/components/ValidationMessage/ValidationMessage.d.ts +6 -1
  417. package/dist/types/components/ValidationMessage/ValidationMessage.d.ts.map +1 -1
  418. package/dist/types/components/ValidationMessage/index.d.ts +2 -1
  419. package/dist/types/components/ValidationMessage/index.d.ts.map +1 -1
  420. package/dist/types/components/index.d.ts +1 -0
  421. package/dist/types/components/index.d.ts.map +1 -1
  422. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts +14 -1
  423. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts.map +1 -1
  424. package/dist/types/utilities/hooks/index.d.ts +0 -1
  425. package/dist/types/utilities/hooks/index.d.ts.map +1 -1
  426. package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts +6 -325
  427. package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts.map +1 -1
  428. package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts +13 -327
  429. package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts.map +1 -1
  430. package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts +1 -1
  431. package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts.map +1 -1
  432. package/package.json +13 -12
  433. package/dist/cjs/utilities/hooks/usePrevious/usePrevious.js +0 -14
  434. package/dist/esm/utilities/hooks/usePrevious/usePrevious.js +0 -12
  435. package/dist/types/utilities/hooks/usePrevious/usePrevious.d.ts +0 -2
  436. package/dist/types/utilities/hooks/usePrevious/usePrevious.d.ts.map +0 -1
@@ -3,6 +3,15 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
  import { Button } from '../Button/Button.js';
5
5
 
6
+ /**
7
+ * SearchButton component, used to display a search button within a Search component.
8
+ *
9
+ * @example
10
+ * <Search>
11
+ * <Search.Input aria-label='Søk' />
12
+ * <Search.Button>Søk</Search.Button>
13
+ * </Search>
14
+ */
6
15
  const SearchButton = forwardRef(function SearchButton({ children = 'Søk', ...rest }, ref) {
7
16
  return (jsx(Button, { ref: ref, type: 'submit', ...rest, children: children }));
8
17
  });
@@ -4,6 +4,15 @@ import { forwardRef } from 'react';
4
4
  import { setReactInputValue } from '../Combobox/utilities.js';
5
5
  import { Button } from '../Button/Button.js';
6
6
 
7
+ /**
8
+ * SearchClear component, used to display a clear buttun when the search input is not empty.
9
+ *
10
+ * @example
11
+ * <Search>
12
+ * <Search.Input aria-label='Søk' />
13
+ * <Search.Clear />
14
+ * </Search>
15
+ */
7
16
  const SearchClear = forwardRef(function SearchClear({ 'aria-label': label = 'Tøm', onClick, ...rest }, ref) {
8
17
  const handleClear = (e) => {
9
18
  const target = e.target;
@@ -3,6 +3,14 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
  import { Input } from '../Input/Input.js';
5
5
 
6
+ /**
7
+ * SearchInput component, used to display a search input within the Search component.
8
+ *
9
+ * @example
10
+ * <Search>
11
+ * <Search.Input aria-label='Søk' />
12
+ * </Search>
13
+ */
6
14
  const SearchInput = forwardRef(function SearchInput({ ...rest }, ref) {
7
15
  return (jsx(Input, { ref: ref, type: 'search',
8
16
  /* We need an empty placeholder for the clear button to be able to show/hide */
@@ -5,16 +5,20 @@ import { SearchClear } from './SearchClear.js';
5
5
  import { SearchInput } from './SearchInput.js';
6
6
 
7
7
  /**
8
- * Search field
8
+ * Search component, use to display different variations of a search input
9
9
  *
10
- * @example
11
- * ```tsx
10
+ * @example with button
12
11
  * <Search>
13
- * <Search.Input aria-label='Søk' />
14
- * <Search.Clear />
15
- * <Search.Button />
12
+ * <Search.Input aria-label='Søk' />
13
+ * <Search.Clear />
14
+ * <Search.Button />
15
+ * </Search>
16
+ *
17
+ * @example with icon
18
+ * <Search>
19
+ * <Search.Input aria-label='Søk' />
20
+ * <Search.Clear />
16
21
  * </Search>
17
- * ```
18
22
  */
19
23
  const Search = Object.assign(Search$1, {
20
24
  Clear: SearchClear,
@@ -3,6 +3,15 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import cl from 'clsx/lite';
4
4
  import { forwardRef } from 'react';
5
5
 
6
+ /**
7
+ * Select component, used to display a native select.
8
+ *
9
+ * @example
10
+ * <Select>
11
+ * <Select.Option value='1'>Option 1</Select.Option>
12
+ * <Select.Option value='2'>Option 2</Select.Option>
13
+ * </Select>
14
+ */
6
15
  const Select = forwardRef(function Select({ className, onKeyDown, onMouseDown, width, ...rest }, ref) {
7
16
  return (jsx("select", { className: cl('ds-input', className), "data-width": width, ref: ref, onKeyDown: (event) => {
8
17
  if (event.key === 'Tab')
@@ -3,6 +3,17 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { Slot } from '@radix-ui/react-slot';
4
4
  import { forwardRef } from 'react';
5
5
 
6
+ /**
7
+ * SelectOptgroup component, used to display a native optgroup within a select.
8
+ *
9
+ * @example
10
+ * <Select>
11
+ * <Select.Optgroup label='Group 1'>
12
+ * <Select.Option value='1'>Option 1</Select.Option>
13
+ * <Select.Option value='2'>Option 2</Select.Option>
14
+ * </Select.Optgroup>
15
+ * </Select>
16
+ */
6
17
  const SelectOptgroup = forwardRef(function SelectOptgroup({ asChild, ...rest }, ref) {
7
18
  const Component = asChild ? Slot : 'optgroup';
8
19
  return jsx(Component, { ...rest, ref: ref });
@@ -3,6 +3,15 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { Slot } from '@radix-ui/react-slot';
4
4
  import { forwardRef } from 'react';
5
5
 
6
+ /**
7
+ * SelectOption component, used to display a native option within a select.
8
+ *
9
+ * @example
10
+ * <Select>
11
+ * <Select.Option value='1'>Option 1</Select.Option>
12
+ * <Select.Option value='2'>Option 2</Select.Option>
13
+ * </Select>
14
+ */
6
15
  const SelectOption = forwardRef(function SelectOption({ asChild, ...rest }, ref) {
7
16
  const Component = asChild ? Slot : 'option';
8
17
  return jsx(Component, { ...rest, ref: ref });
@@ -3,6 +3,15 @@ import { Select as Select$1 } from './Select.js';
3
3
  import { SelectOptgroup } from './SelectOptgroup.js';
4
4
  import { SelectOption } from './SelectOption.js';
5
5
 
6
+ /**
7
+ * Select component, used to display a native select.
8
+ *
9
+ * @example
10
+ * <Select>
11
+ * <Select.Option value='1'>Option 1</Select.Option>
12
+ * <Select.Option value='2'>Option 2</Select.Option>
13
+ * </Select>
14
+ */
6
15
  const Select = Object.assign(Select$1, {
7
16
  Option: SelectOption,
8
17
  Optgroup: SelectOptgroup,
@@ -7,11 +7,12 @@ import { forwardRef } from 'react';
7
7
  import { useSynchronizedAnimation } from '../../utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js';
8
8
 
9
9
  /**
10
- * Represent a draft of page while the content loads. Mix different skeleton components to create your layout.
10
+ * Skeleton is used to represent a draft of page while the content loads.
11
+ *
11
12
  * @example
12
- * <Skeleton variant="circle" />
13
- * <Skeleton variant="text" />
14
- * <Skeleton variant="rectangle" />
13
+ * <Skeleton variant="circle" />
14
+ * <Skeleton variant="text" />
15
+ * <Skeleton variant="rectangle" />
15
16
  */
16
17
  const Skeleton = forwardRef(function Skeleton({ asChild, className, height, style, variant = 'rectangle', width, ...rest }, ref) {
17
18
  const Component = asChild ? Slot : 'span';
@@ -3,6 +3,13 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import cl from 'clsx/lite';
4
4
  import { forwardRef } from 'react';
5
5
 
6
+ /**
7
+ * SkipLink component, used to display a skip link within the page.
8
+ * Place it at the top of the page to allow users to skip to the main content.
9
+ *
10
+ * @example
11
+ * <SkipLink href='#main-content'>Skip to main content</SkipLink>
12
+ */
6
13
  const SkipLink = forwardRef(function SkipLink({ children, className, ...rest }, ref) {
7
14
  return (jsx("a", { className: cl('ds-skiplink', className), ...rest, ref: ref, children: children }));
8
15
  });
@@ -5,7 +5,12 @@ import cl from 'clsx/lite';
5
5
  import { forwardRef } from 'react';
6
6
  import { useSynchronizedAnimation } from '../../utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js';
7
7
 
8
- /** Spinner component used for indicating busy or indeterminate loading */
8
+ /**
9
+ * Spinner component used for indicating busy or indeterminate loading.
10
+ *
11
+ * @example
12
+ * <Spinner aria-label='Loading users...' />
13
+ */
9
14
  const Spinner = forwardRef(function Spinner({ 'aria-label': ariaLabel, className, ...rest }, ref) {
10
15
  const svgRef = useSynchronizedAnimation('ds-spinner-rotate-animation');
11
16
  const strokeRef = useSynchronizedAnimation('ds-spinner-stroke-animation');
@@ -0,0 +1,52 @@
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';
5
+ import cl from 'clsx/lite';
6
+ import { createContext, forwardRef, useState, useId, useRef, useCallback } from 'react';
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.children) {
36
+ // Skip <datalist> children that are not <option>
37
+ if ('value' in option)
38
+ option.disabled = !filter({
39
+ index: index++, // Increment index for each <option>
40
+ input,
41
+ optionElement: option,
42
+ text: option.text,
43
+ value: getDatalistValue(option),
44
+ });
45
+ }
46
+ }
47
+ syncDatalistState(input); // Sync the datalist state if filter is custom or false
48
+ }, [filter]);
49
+ return (jsx(SuggestionContext.Provider, { value: { inputRef, listId, setListId, handleFilter }, children: jsx(Component, { className: cl('ds-suggestion', className), ref: ref, ...rest }) }));
50
+ });
51
+
52
+ export { Suggestion, SuggestionContext };
@@ -0,0 +1,45 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef, useContext } from 'react';
4
+ import { SuggestionContext } from './Suggestion.js';
5
+ import { Button } from '../Button/Button.js';
6
+
7
+ /**
8
+ * Component that provides a clear button for the suggestion input.
9
+ *
10
+ * Place as a descendant of `Suggestion`
11
+ *
12
+ * @example
13
+ * <Suggestion>
14
+ * <Suggestion.Input />
15
+ * <Suggestion.Clear />
16
+ * <Suggestion.List />
17
+ * </Suggestion>
18
+ */
19
+ const SuggestionClear = forwardRef(function SuggestionClear({ 'aria-label': label = 'Tøm', onClick, ...rest }, ref) {
20
+ const { inputRef } = useContext(SuggestionContext); //, handleValueChange
21
+ const handleClear = (event) => {
22
+ if (!inputRef?.current)
23
+ throw new Error('Input is missing');
24
+ /* narrow type to make TS happy */
25
+ if (!(inputRef?.current instanceof HTMLInputElement))
26
+ throw new Error('Input is not an input element');
27
+ event.preventDefault();
28
+ setReactInputValue(inputRef.current, '');
29
+ inputRef.current.focus();
30
+ onClick?.(event);
31
+ };
32
+ return (jsx(Button, { ref: ref, variant: 'tertiary', type: 'reset', "aria-label": label, onClick: handleClear, icon: true, ...rest }));
33
+ });
34
+ const setReactInputValue = (input, value) => {
35
+ const previousValue = input.value;
36
+ input.value = value;
37
+ const tracker = input._valueTracker;
38
+ if (typeof tracker !== 'undefined') {
39
+ tracker.setValue(previousValue);
40
+ }
41
+ //'change' instead of 'input', see https://github.com/facebook/react/issues/11488#issuecomment-381590324
42
+ input.dispatchEvent(new Event('change', { bubbles: true }));
43
+ };
44
+
45
+ export { SuggestionClear, setReactInputValue };
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { Slot } from '@radix-ui/react-slot';
4
+ import { forwardRef } from 'react';
5
+
6
+ /**
7
+ * Component that provides an empty suggestion list.
8
+ *
9
+ * Place as a descendant of `Suggestion.List`
10
+ *
11
+ * @example
12
+ * <Suggestion.List>
13
+ * <Suggestion.Empty>Tomt</Suggestion.Empty>
14
+ * </Suggestion.List>
15
+ */
16
+ const SuggestionEmpty = forwardRef(function SuggestionEmpty({ asChild, ...rest }, ref) {
17
+ const Component = asChild ? Slot : 'div';
18
+ return (jsx(Component, { "aria-disabled": 'true', ref: ref, role: 'option', tabIndex: 0, ...rest }));
19
+ });
20
+
21
+ export { SuggestionEmpty };
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useMergeRefs } from '@floating-ui/react';
4
+ import { getDatalistValue, isDatalistClick } from '@u-elements/u-datalist';
5
+ import { forwardRef, useContext, useCallback, useEffect } from 'react';
6
+ import { SuggestionContext } from './Suggestion.js';
7
+ import { Input } from '../Input/Input.js';
8
+
9
+ /**
10
+ * Component that provides an input field for the suggestion list.
11
+ *
12
+ * Place as a descendant of `Suggestion`
13
+ *
14
+ * @example
15
+ * <Suggestion>
16
+ * <Suggestion.Input />
17
+ * <Suggestion.List />
18
+ * </Suggestion>
19
+ */
20
+ const SuggestionInput = forwardRef(function SuggestionList({ value, onInput, ...rest }, ref) {
21
+ const { listId, inputRef, handleFilter } = useContext(SuggestionContext);
22
+ const mergedRefs = useMergeRefs([inputRef, ref]);
23
+ const updateSelected = useCallback(() => {
24
+ const { list, value } = inputRef?.current || {};
25
+ for (const option of list?.options || []) {
26
+ option.selected = getDatalistValue(option) === value;
27
+ }
28
+ }, []);
29
+ // Update also if controlled value
30
+ useEffect(() => {
31
+ updateSelected();
32
+ handleFilter?.(inputRef?.current);
33
+ }, [value]);
34
+ return (jsx(Input, { ref: mergedRefs, list: listId, value: value, onInput: (event) => {
35
+ onInput?.(event); // Should run first
36
+ updateSelected();
37
+ if (!isDatalistClick(event.nativeEvent))
38
+ handleFilter?.(inputRef?.current);
39
+ }, placeholder: '' // We need an empty placeholder for the clear button to be able to show/hide
40
+ , ...rest }));
41
+ });
42
+
43
+ export { SuggestionInput };
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef, useContext, useEffect } from 'react';
4
+ import '@u-elements/u-datalist';
5
+ import { SuggestionContext } from './Suggestion.js';
6
+
7
+ /**
8
+ * Component that provides a suggestion list.
9
+ *
10
+ * Place as a descendant of `Suggestion`
11
+ *
12
+ * @example
13
+ * <Suggestion>
14
+ * <Suggestion.Input />
15
+ * <Suggestion.List />
16
+ * </Suggestion>
17
+ */
18
+ const SuggestionList = forwardRef(function SuggestionList({ singular = '%d forslag', plural = '%d forslag', className, id, ...rest }, ref) {
19
+ const { inputRef, listId, setListId, handleFilter } = useContext(SuggestionContext);
20
+ useEffect(() => handleFilter?.(inputRef?.current)); // Must run on every render
21
+ useEffect(() => {
22
+ if (id && listId !== id)
23
+ setListId?.(id);
24
+ }, [listId, id, setListId]);
25
+ return (jsx("u-datalist", { "data-sr-singular": singular, "data-sr-plural": plural, class: className, id: listId, ref: ref, ...rest }));
26
+ });
27
+
28
+ export { SuggestionList };
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import '@u-elements/u-datalist';
5
+
6
+ const SuggestionOption = forwardRef(function SuggestionOption({ className, ...rest }, ref) {
7
+ return (jsx("u-option", { class: className, ref: ref, ...rest }));
8
+ });
9
+
10
+ export { SuggestionOption };
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+ import { Suggestion } from './Suggestion.js';
3
+ import { SuggestionClear } from './SuggestionClear.js';
4
+ import { SuggestionEmpty } from './SuggestionEmpty.js';
5
+ import { SuggestionInput } from './SuggestionInput.js';
6
+ import { SuggestionList } from './SuggestionList.js';
7
+ import { SuggestionOption } from './SuggestionOption.js';
8
+
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 EXPERIMENTAL_Suggestion = Object.assign(Suggestion, {
24
+ List: SuggestionList,
25
+ Input: SuggestionInput,
26
+ Empty: SuggestionEmpty,
27
+ Option: SuggestionOption,
28
+ Clear: SuggestionClear,
29
+ });
30
+ EXPERIMENTAL_Suggestion.displayName = 'EXPERIMENTAL_Suggestion';
31
+ EXPERIMENTAL_Suggestion.List.displayName = 'EXPERIMENTAL_Suggestion.List';
32
+ EXPERIMENTAL_Suggestion.Input.displayName = 'EXPERIMENTAL_Suggestion.Input';
33
+ EXPERIMENTAL_Suggestion.Empty.displayName = 'EXPERIMENTAL_Suggestion.Empty';
34
+ EXPERIMENTAL_Suggestion.Option.displayName = 'EXPERIMENTAL_Suggestion.Option';
35
+ EXPERIMENTAL_Suggestion.Clear.displayName = 'EXPERIMENTAL_Suggestion.Clear';
36
+
37
+ export { EXPERIMENTAL_Suggestion, SuggestionClear as EXPERIMENTAL_SuggestionClear, SuggestionEmpty as EXPERIMENTAL_SuggestionEmpty, SuggestionInput as EXPERIMENTAL_SuggestionInput, SuggestionList as EXPERIMENTAL_SuggestionList, SuggestionOption as EXPERIMENTAL_SuggestionOption };
@@ -7,6 +7,7 @@ import { Label } from '../Label/Label.js';
7
7
 
8
8
  /**
9
9
  * Switch used to toggle options.
10
+ *
10
11
  * @example
11
12
  * <Switch label="I agree" value="agree" />
12
13
  */
@@ -3,6 +3,31 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import cl from 'clsx/lite';
4
4
  import { forwardRef } from 'react';
5
5
 
6
+ /**
7
+ * Table component, used to display tabular data. Renders a native HTML table element.
8
+ *
9
+ * @example
10
+ * <Table>
11
+ * <Table.Head>
12
+ * <Table.Row>
13
+ * <Table.HeaderCell>Name</Table.HeaderCell>
14
+ * <Table.HeaderCell>Age</Table.HeaderCell>
15
+ * </Table.Row>
16
+ * </Table.Head>
17
+ * <Table.Body>
18
+ * <Table.Row>
19
+ * <Table.Cell>John</Table.Cell>
20
+ * <Table.Cell>25</Table.Cell>
21
+ * </Table.Row>
22
+ * </Table.Body>
23
+ * <Table.Foot>
24
+ * <Table.Row>
25
+ * <Table.Cell>Total</Table.Cell>
26
+ * <Table.Cell>2</Table.Cell>
27
+ * </Table.Row>
28
+ * </Table.Foot>
29
+ * </Table>
30
+ */
6
31
  const Table = forwardRef(function Table({ zebra = false, stickyHeader = false, border = false, hover = false, className, children, ...rest }, ref) {
7
32
  return (jsx("table", { className: cl('ds-table', className), "data-border": border || undefined, "data-hover": hover || undefined, "data-sticky-header": stickyHeader || undefined, "data-zebra": zebra || undefined, ref: ref, ...rest, children: children }));
8
33
  });
@@ -2,6 +2,17 @@
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
 
5
+ /**
6
+ * TableBody component, used to display the body of a table. Renders a native HTML tbody element.
7
+ *
8
+ * @example
9
+ * <Table.Body>
10
+ * <Table.Row>
11
+ * <Table.Cell>John</Table.Cell>
12
+ * <Table.Cell>25</Table.Cell>
13
+ * </Table.Row>
14
+ * </Table.Body>
15
+ */
5
16
  const TableBody = forwardRef(function TableBody(rest, ref) {
6
17
  return jsx("tbody", { ref: ref, ...rest });
7
18
  });
@@ -2,6 +2,12 @@
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
 
5
+ /**
6
+ * TableCell component, used to display the cells of a table. Renders a native HTML td element.
7
+ *
8
+ * @example
9
+ * <Table.Cell>John</Table.Cell>
10
+ */
5
11
  const TableCell = forwardRef(function TableCell(rest, ref) {
6
12
  return jsx("td", { ref: ref, ...rest });
7
13
  });
@@ -2,6 +2,17 @@
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
 
5
+ /**
6
+ * TableFoot component, used to display the footer of a table. Renders a native HTML tfoot element.
7
+ *
8
+ * @example
9
+ * <Table.Foot>
10
+ * <Table.Row>
11
+ * <Table.Cell>Total</Table.Cell>
12
+ * <Table.Cell>2</Table.Cell>
13
+ * </Table.Row>
14
+ * </Table.Foot>
15
+ */
5
16
  const TableFoot = forwardRef(function TableFoot(rest, ref) {
6
17
  return jsx("tfoot", { ref: ref, ...rest });
7
18
  });
@@ -2,6 +2,17 @@
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
 
5
+ /**
6
+ * TableHead component, used to display the header of a table. Renders a native HTML thead element.
7
+ *
8
+ * @example
9
+ * <Table.Head>
10
+ * <Table.Row>
11
+ * <Table.HeaderCell>Name</Table.HeaderCell>
12
+ * <Table.HeaderCell>Age</Table.HeaderCell>
13
+ * </Table.Row>
14
+ * </Table.Head>
15
+ */
5
16
  const TableHead = forwardRef(function TableHead(rest, ref) {
6
17
  return jsx("thead", { ref: ref, ...rest });
7
18
  });
@@ -2,6 +2,12 @@
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
 
5
+ /**
6
+ * TableHeaderCell component, used to display the header cells of a table. Renders a native HTML th element.
7
+ *
8
+ * @example
9
+ * <Table.HeaderCell>Name</Table.HeaderCell>
10
+ */
5
11
  const TableHeaderCell = forwardRef(function TableHeaderCell({ sort, children, ...rest }, ref) {
6
12
  return (jsx("th", { "aria-sort": sort, ref: ref, ...rest, children: sort ? jsx("button", { type: 'button', children: children }) : children }));
7
13
  });
@@ -2,6 +2,15 @@
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
 
5
+ /**
6
+ * TableRow component, used to display the rows of a table. Renders a native HTML tr element.
7
+ *
8
+ * @example
9
+ * <Table.Row>
10
+ * <Table.Cell>John</Table.Cell>
11
+ * <Table.Cell>25</Table.Cell>
12
+ * </Table.Row>
13
+ */
5
14
  const TableRow = forwardRef(function TableRow(rest, ref) {
6
15
  return jsx("tr", { ref: ref, ...rest });
7
16
  });
@@ -7,6 +7,31 @@ import { TableHead } from './TableHead.js';
7
7
  import { TableHeaderCell } from './TableHeaderCell.js';
8
8
  import { TableRow } from './TableRow.js';
9
9
 
10
+ /**
11
+ * Table component, used to display tabular data. Renders a native HTML table element.
12
+ *
13
+ * @example
14
+ * <Table>
15
+ * <Table.Head>
16
+ * <Table.Row>
17
+ * <Table.HeaderCell>Name</Table.HeaderCell>
18
+ * <Table.HeaderCell>Age</Table.HeaderCell>
19
+ * </Table.Row>
20
+ * </Table.Head>
21
+ * <Table.Body>
22
+ * <Table.Row>
23
+ * <Table.Cell>John</Table.Cell>
24
+ * <Table.Cell>25</Table.Cell>
25
+ * </Table.Row>
26
+ * </Table.Body>
27
+ * <Table.Foot>
28
+ * <Table.Row>
29
+ * <Table.Cell>Total</Table.Cell>
30
+ * <Table.Cell>2</Table.Cell>
31
+ * </Table.Row>
32
+ * </Table.Foot>
33
+ * </Table>
34
+ */
10
35
  const Table = Object.assign(Table$1, {
11
36
  Head: TableHead,
12
37
  Body: TableBody,
@@ -6,8 +6,8 @@ import { createContext, forwardRef, useState } from 'react';
6
6
  const Context = createContext({});
7
7
  /**
8
8
  * Display a group of tabs that can be toggled between.
9
+ *
9
10
  * @example
10
- * ```tsx
11
11
  * <Tabs onChange={(value) => console.log(value)}>
12
12
  * <Tabs.List>
13
13
  * <Tabs.Tab value='1'>Tab 1</Tabs.Tab>
@@ -18,7 +18,6 @@ const Context = createContext({});
18
18
  * <Tabs.Panel value='2'>content 2</Tabs.Panel>
19
19
  * <Tabs.Panel value='3'>content 3</Tabs.Panel>
20
20
  * </Tabs>
21
- * ```
22
21
  */
23
22
  const Tabs = forwardRef(function Tabs({ value, defaultValue, className, onChange, ...rest }, ref) {
24
23
  const isControlled = value !== undefined;
@@ -6,13 +6,12 @@ import { RovingFocusRoot } from '../../utilities/RovingFocus/RovingFocusRoot.js'
6
6
 
7
7
  /**
8
8
  * The container for all `Tab` components.
9
+ *
9
10
  * @example
10
- * ```tsx
11
11
  * <Tabs.List>
12
12
  * <Tabs.Tab value='1'>Tab 1</Tabs.Tab>
13
13
  * <Tabs.Tab value='2'>Tab 2</Tabs.Tab>
14
14
  * </Tabs.List>
15
- * ```
16
15
  */
17
16
  const TabsList = forwardRef(function TabsList({ children, ...rest }, ref) {
18
17
  const { value } = useContext(Context);