@digdir/designsystemet-react 1.0.0-next.35 → 1.0.0-next.37

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 (483) hide show
  1. package/README.md +1 -2
  2. package/dist/cjs/components/Accordion/Accordion.js +1 -1
  3. package/dist/cjs/components/Alert/Alert.js +2 -2
  4. package/dist/cjs/components/Avatar/Avatar.js +5 -4
  5. package/dist/cjs/components/Badge/Badge.js +4 -4
  6. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js +1 -1
  7. package/dist/cjs/components/Button/Button.js +3 -4
  8. package/dist/cjs/components/Card/Card.js +1 -1
  9. package/dist/cjs/components/Chip/Chips.js +5 -4
  10. package/dist/cjs/components/Dropdown/Dropdown.js +2 -12
  11. package/dist/cjs/components/Dropdown/DropdownButton.js +12 -0
  12. package/dist/cjs/components/Dropdown/DropdownHeading.js +2 -2
  13. package/dist/cjs/components/Dropdown/DropdownItem.js +2 -5
  14. package/dist/cjs/components/Dropdown/DropdownList.js +1 -2
  15. package/dist/cjs/components/Dropdown/DropdownTriggerContext.js +26 -0
  16. package/dist/cjs/components/Dropdown/index.js +13 -7
  17. package/dist/cjs/components/ErrorSummary/ErrorSummary.js +2 -3
  18. package/dist/cjs/components/ErrorSummary/ErrorSummaryHeading.js +2 -7
  19. package/dist/cjs/components/ErrorSummary/ErrorSummaryList.js +1 -3
  20. package/dist/cjs/components/Heading/Heading.js +3 -3
  21. package/dist/cjs/components/HelpText/HelpText.js +2 -2
  22. package/dist/cjs/components/Label/Label.js +3 -3
  23. package/dist/cjs/components/Link/Link.js +2 -2
  24. package/dist/cjs/components/List/Lists.js +2 -2
  25. package/dist/cjs/components/Modal/Modal.js +10 -4
  26. package/dist/cjs/components/Modal/ModalTrigger.js +2 -2
  27. package/dist/cjs/components/Modal/{ModalContext.js → ModalTriggerContext.js} +3 -3
  28. package/dist/cjs/components/Modal/index.js +4 -4
  29. package/dist/cjs/components/Pagination/Pagination.js +2 -6
  30. package/dist/cjs/components/Pagination/PaginationButton.js +1 -3
  31. package/dist/cjs/components/Paragraph/Paragraph.js +3 -3
  32. package/dist/cjs/components/Popover/Popover.js +39 -16
  33. package/dist/cjs/components/Popover/PopoverTrigger.js +2 -2
  34. package/dist/cjs/components/Popover/{PopoverContext.js → PopoverTriggerContext.js} +3 -3
  35. package/dist/cjs/components/Popover/index.js +4 -4
  36. package/dist/cjs/components/Table/Table.js +2 -2
  37. package/dist/cjs/components/Table/TableFoot.js +11 -0
  38. package/dist/cjs/components/Table/index.js +11 -6
  39. package/dist/cjs/components/Tabs/Tabs.js +2 -3
  40. package/dist/cjs/components/Tabs/TabsPanel.js +1 -1
  41. package/dist/cjs/components/Tag/Tag.js +2 -2
  42. package/dist/cjs/components/ToggleGroup/ToggleGroup.js +1 -2
  43. package/dist/cjs/components/ToggleGroup/ToggleGroupItem.js +2 -2
  44. package/dist/cjs/components/ToggleGroup/useToggleGroupitem.js +0 -1
  45. package/dist/cjs/components/Tooltip/Tooltip.js +48 -18
  46. package/dist/cjs/components/ValidationMessage/ValidationMessage.js +2 -2
  47. package/dist/cjs/components/form/Checkbox/Checkbox.js +10 -18
  48. package/dist/cjs/components/form/Combobox/Combobox.js +2 -2
  49. package/dist/cjs/components/form/Combobox/Custom.js +2 -2
  50. package/dist/cjs/components/form/Combobox/Empty.js +1 -1
  51. package/dist/cjs/components/form/Combobox/Option/Option.js +4 -2
  52. package/dist/cjs/components/form/Combobox/internal/ComboboxChips.js +1 -1
  53. package/dist/cjs/components/form/Combobox/internal/ComboboxError.js +1 -1
  54. package/dist/cjs/components/form/Combobox/internal/ComboboxInput.js +1 -1
  55. package/dist/cjs/components/form/Combobox/internal/ComboboxLabel.js +1 -1
  56. package/dist/cjs/components/form/Field/Field.js +17 -0
  57. package/dist/cjs/components/form/Field/FieldAffix.js +16 -0
  58. package/dist/cjs/components/form/Field/FieldCounter.js +28 -0
  59. package/dist/cjs/components/form/Field/FieldDescription.js +11 -0
  60. package/dist/cjs/components/form/Field/fieldObserver.js +97 -0
  61. package/dist/cjs/components/form/Field/index.js +33 -0
  62. package/dist/cjs/components/form/Fieldset/Fieldset.js +2 -16
  63. package/dist/cjs/components/form/Fieldset/FieldsetDescription.js +12 -0
  64. package/dist/cjs/components/form/Fieldset/FieldsetLegend.js +12 -0
  65. package/dist/cjs/components/form/Fieldset/index.js +25 -0
  66. package/dist/cjs/components/form/Input/Input.js +23 -0
  67. package/dist/cjs/components/form/Radio/Radio.js +10 -9
  68. package/dist/cjs/components/form/Search/Search.js +2 -39
  69. package/dist/cjs/components/form/Search/SearchButton.js +12 -0
  70. package/dist/cjs/components/form/Search/SearchClear.js +28 -0
  71. package/dist/cjs/components/form/Search/SearchInput.js +14 -0
  72. package/dist/cjs/components/form/Search/index.js +33 -0
  73. package/dist/cjs/components/form/Select/Select.js +12 -10
  74. package/dist/cjs/components/form/Select/index.js +4 -3
  75. package/dist/cjs/components/form/Switch/Switch.js +9 -10
  76. package/dist/cjs/components/form/Textarea/Textarea.js +3 -20
  77. package/dist/cjs/components/form/Textfield/Textfield.js +12 -19
  78. package/dist/cjs/components/form/useFormField.js +1 -3
  79. package/dist/cjs/components/loaders/Skeleton/Skeleton.js +2 -3
  80. package/dist/cjs/components/loaders/Spinner/Spinner.js +6 -4
  81. package/dist/cjs/index.js +51 -26
  82. package/dist/cjs/utilities/hooks/useCheckboxGroup/useCheckboxGroup.js +121 -0
  83. package/dist/cjs/utilities/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
  84. package/dist/cjs/utilities/hooks/useRadioGroup/useRadioGroup.js +99 -0
  85. package/dist/esm/components/Accordion/Accordion.js +1 -1
  86. package/dist/esm/components/Alert/Alert.js +2 -2
  87. package/dist/esm/components/Avatar/Avatar.js +5 -4
  88. package/dist/esm/components/Badge/Badge.js +4 -4
  89. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +1 -1
  90. package/dist/esm/components/Button/Button.js +3 -4
  91. package/dist/esm/components/Card/Card.js +1 -1
  92. package/dist/esm/components/Chip/Chips.js +5 -4
  93. package/dist/esm/components/Dropdown/Dropdown.js +4 -13
  94. package/dist/esm/components/Dropdown/DropdownButton.js +10 -0
  95. package/dist/esm/components/Dropdown/DropdownHeading.js +2 -2
  96. package/dist/esm/components/Dropdown/DropdownItem.js +3 -6
  97. package/dist/esm/components/Dropdown/DropdownList.js +1 -2
  98. package/dist/esm/components/Dropdown/DropdownTriggerContext.js +24 -0
  99. package/dist/esm/components/Dropdown/index.js +12 -7
  100. package/dist/esm/components/ErrorSummary/ErrorSummary.js +2 -3
  101. package/dist/esm/components/ErrorSummary/ErrorSummaryHeading.js +2 -7
  102. package/dist/esm/components/ErrorSummary/ErrorSummaryList.js +2 -4
  103. package/dist/esm/components/Heading/Heading.js +3 -3
  104. package/dist/esm/components/HelpText/HelpText.js +2 -2
  105. package/dist/esm/components/Label/Label.js +3 -3
  106. package/dist/esm/components/Link/Link.js +2 -2
  107. package/dist/esm/components/List/Lists.js +2 -2
  108. package/dist/esm/components/Modal/Modal.js +9 -3
  109. package/dist/esm/components/Modal/ModalTrigger.js +1 -1
  110. package/dist/esm/components/Modal/{ModalContext.js → ModalTriggerContext.js} +3 -3
  111. package/dist/esm/components/Modal/index.js +4 -4
  112. package/dist/esm/components/Pagination/Pagination.js +4 -7
  113. package/dist/esm/components/Pagination/PaginationButton.js +2 -4
  114. package/dist/esm/components/Paragraph/Paragraph.js +3 -3
  115. package/dist/esm/components/Popover/Popover.js +38 -15
  116. package/dist/esm/components/Popover/PopoverTrigger.js +1 -1
  117. package/dist/esm/components/Popover/{PopoverContext.js → PopoverTriggerContext.js} +3 -3
  118. package/dist/esm/components/Popover/index.js +4 -4
  119. package/dist/esm/components/Table/Table.js +2 -2
  120. package/dist/esm/components/Table/TableFoot.js +9 -0
  121. package/dist/esm/components/Table/index.js +11 -7
  122. package/dist/esm/components/Tabs/Tabs.js +2 -3
  123. package/dist/esm/components/Tabs/TabsPanel.js +1 -1
  124. package/dist/esm/components/Tag/Tag.js +2 -2
  125. package/dist/esm/components/ToggleGroup/ToggleGroup.js +1 -2
  126. package/dist/esm/components/ToggleGroup/ToggleGroupItem.js +2 -2
  127. package/dist/esm/components/ToggleGroup/useToggleGroupitem.js +0 -1
  128. package/dist/esm/components/Tooltip/Tooltip.js +50 -20
  129. package/dist/esm/components/ValidationMessage/ValidationMessage.js +2 -2
  130. package/dist/esm/components/form/Checkbox/Checkbox.js +11 -19
  131. package/dist/esm/components/form/Combobox/Combobox.js +2 -2
  132. package/dist/esm/components/form/Combobox/Custom.js +2 -2
  133. package/dist/esm/components/form/Combobox/Empty.js +1 -1
  134. package/dist/esm/components/form/Combobox/Option/Option.js +4 -2
  135. package/dist/esm/components/form/Combobox/internal/ComboboxChips.js +1 -1
  136. package/dist/esm/components/form/Combobox/internal/ComboboxError.js +1 -1
  137. package/dist/esm/components/form/Combobox/internal/ComboboxInput.js +1 -1
  138. package/dist/esm/components/form/Combobox/internal/ComboboxLabel.js +1 -1
  139. package/dist/esm/components/form/Field/Field.js +15 -0
  140. package/dist/esm/components/form/Field/FieldAffix.js +13 -0
  141. package/dist/esm/components/form/Field/FieldCounter.js +26 -0
  142. package/dist/esm/components/form/Field/FieldDescription.js +9 -0
  143. package/dist/esm/components/form/Field/fieldObserver.js +95 -0
  144. package/dist/esm/components/form/Field/index.js +27 -0
  145. package/dist/esm/components/form/Fieldset/Fieldset.js +4 -18
  146. package/dist/esm/components/form/Fieldset/FieldsetDescription.js +10 -0
  147. package/dist/esm/components/form/Fieldset/FieldsetLegend.js +10 -0
  148. package/dist/esm/components/form/Fieldset/index.js +21 -0
  149. package/dist/esm/components/form/Input/Input.js +21 -0
  150. package/dist/esm/components/form/Radio/Radio.js +11 -10
  151. package/dist/esm/components/form/Search/Search.js +4 -41
  152. package/dist/esm/components/form/Search/SearchButton.js +10 -0
  153. package/dist/esm/components/form/Search/SearchClear.js +26 -0
  154. package/dist/esm/components/form/Search/SearchInput.js +12 -0
  155. package/dist/esm/components/form/Search/index.js +28 -0
  156. package/dist/esm/components/form/Select/Select.js +13 -11
  157. package/dist/esm/components/form/Select/index.js +4 -3
  158. package/dist/esm/components/form/Switch/Switch.js +10 -11
  159. package/dist/esm/components/form/Textarea/Textarea.js +5 -22
  160. package/dist/esm/components/form/Textfield/Textfield.js +14 -21
  161. package/dist/esm/components/form/useFormField.js +1 -3
  162. package/dist/esm/components/loaders/Skeleton/Skeleton.js +2 -3
  163. package/dist/esm/components/loaders/Spinner/Spinner.js +6 -4
  164. package/dist/esm/index.js +21 -9
  165. package/dist/esm/utilities/hooks/useCheckboxGroup/useCheckboxGroup.js +119 -0
  166. package/dist/esm/utilities/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
  167. package/dist/esm/utilities/hooks/useRadioGroup/useRadioGroup.js +97 -0
  168. package/dist/react-types.d.ts +11 -0
  169. package/dist/types/colors.d.ts +11 -0
  170. package/dist/types/colors.d.ts.map +1 -0
  171. package/dist/types/components/Accordion/Accordion.d.ts +276 -16
  172. package/dist/types/components/Accordion/Accordion.d.ts.map +1 -1
  173. package/dist/types/components/Accordion/AccordionContent.d.ts.map +1 -1
  174. package/dist/types/components/Accordion/AccordionHeading.d.ts.map +1 -1
  175. package/dist/types/components/Accordion/AccordionItem.d.ts.map +1 -1
  176. package/dist/types/components/Accordion/index.d.ts.map +1 -1
  177. package/dist/types/components/Alert/Alert.d.ts +275 -23
  178. package/dist/types/components/Alert/Alert.d.ts.map +1 -1
  179. package/dist/types/components/Alert/index.d.ts.map +1 -1
  180. package/dist/types/components/Avatar/Avatar.d.ts +282 -36
  181. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  182. package/dist/types/components/Avatar/index.d.ts.map +1 -1
  183. package/dist/types/components/Badge/Badge.d.ts +281 -50
  184. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  185. package/dist/types/components/Badge/index.d.ts.map +1 -1
  186. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +273 -18
  187. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  188. package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts.map +1 -1
  189. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts +277 -5
  190. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts.map +1 -1
  191. package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts.map +1 -1
  192. package/dist/types/components/Breadcrumbs/index.d.ts +546 -8
  193. package/dist/types/components/Breadcrumbs/index.d.ts.map +1 -1
  194. package/dist/types/components/Button/Button.d.ts +289 -41
  195. package/dist/types/components/Button/Button.d.ts.map +1 -1
  196. package/dist/types/components/Button/index.d.ts.map +1 -1
  197. package/dist/types/components/Card/Card.d.ts +276 -20
  198. package/dist/types/components/Card/Card.d.ts.map +1 -1
  199. package/dist/types/components/Card/CardBlock.d.ts.map +1 -1
  200. package/dist/types/components/Card/index.d.ts +269 -3
  201. package/dist/types/components/Card/index.d.ts.map +1 -1
  202. package/dist/types/components/Chip/Chips.d.ts +1169 -10
  203. package/dist/types/components/Chip/Chips.d.ts.map +1 -1
  204. package/dist/types/components/Chip/index.d.ts +1158 -12
  205. package/dist/types/components/Chip/index.d.ts.map +1 -1
  206. package/dist/types/components/Divider/Divider.d.ts.map +1 -1
  207. package/dist/types/components/Divider/index.d.ts.map +1 -1
  208. package/dist/types/components/Dropdown/Dropdown.d.ts +283 -15
  209. package/dist/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  210. package/dist/types/components/Dropdown/DropdownButton.d.ts +4 -0
  211. package/dist/types/components/Dropdown/DropdownButton.d.ts.map +1 -0
  212. package/dist/types/components/Dropdown/DropdownHeading.d.ts +7 -3
  213. package/dist/types/components/Dropdown/DropdownHeading.d.ts.map +1 -1
  214. package/dist/types/components/Dropdown/DropdownItem.d.ts +3 -3
  215. package/dist/types/components/Dropdown/DropdownItem.d.ts.map +1 -1
  216. package/dist/types/components/Dropdown/DropdownList.d.ts.map +1 -1
  217. package/dist/types/components/Dropdown/DropdownTrigger.d.ts +285 -15
  218. package/dist/types/components/Dropdown/DropdownTrigger.d.ts.map +1 -1
  219. package/dist/types/components/Dropdown/DropdownTriggerContext.d.ts +22 -0
  220. package/dist/types/components/Dropdown/DropdownTriggerContext.d.ts.map +1 -0
  221. package/dist/types/components/Dropdown/index.d.ts +577 -25
  222. package/dist/types/components/Dropdown/index.d.ts.map +1 -1
  223. package/dist/types/components/ErrorSummary/ErrorSummary.d.ts +3 -8
  224. package/dist/types/components/ErrorSummary/ErrorSummary.d.ts.map +1 -1
  225. package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts +1 -1
  226. package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts.map +1 -1
  227. package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts.map +1 -1
  228. package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts +1 -2
  229. package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts.map +1 -1
  230. package/dist/types/components/ErrorSummary/index.d.ts +3 -6
  231. package/dist/types/components/ErrorSummary/index.d.ts.map +1 -1
  232. package/dist/types/components/Heading/Heading.d.ts +3 -7
  233. package/dist/types/components/Heading/Heading.d.ts.map +1 -1
  234. package/dist/types/components/Heading/index.d.ts.map +1 -1
  235. package/dist/types/components/HelpText/HelpText.d.ts +286 -22
  236. package/dist/types/components/HelpText/HelpText.d.ts.map +1 -1
  237. package/dist/types/components/HelpText/index.d.ts.map +1 -1
  238. package/dist/types/components/Label/Label.d.ts +4 -13
  239. package/dist/types/components/Label/Label.d.ts.map +1 -1
  240. package/dist/types/components/Label/index.d.ts.map +1 -1
  241. package/dist/types/components/Link/Link.d.ts +284 -20
  242. package/dist/types/components/Link/Link.d.ts.map +1 -1
  243. package/dist/types/components/Link/index.d.ts.map +1 -1
  244. package/dist/types/components/List/ListItem.d.ts.map +1 -1
  245. package/dist/types/components/List/Lists.d.ts +16 -9
  246. package/dist/types/components/List/Lists.d.ts.map +1 -1
  247. package/dist/types/components/List/index.d.ts +2 -4
  248. package/dist/types/components/List/index.d.ts.map +1 -1
  249. package/dist/types/components/Modal/Modal.d.ts +280 -21
  250. package/dist/types/components/Modal/Modal.d.ts.map +1 -1
  251. package/dist/types/components/Modal/ModalBlock.d.ts.map +1 -1
  252. package/dist/types/components/Modal/ModalTrigger.d.ts +282 -7
  253. package/dist/types/components/Modal/ModalTrigger.d.ts.map +1 -1
  254. package/dist/types/components/Modal/ModalTriggerContext.d.ts +10 -0
  255. package/dist/types/components/Modal/ModalTriggerContext.d.ts.map +1 -0
  256. package/dist/types/components/Modal/index.d.ts +562 -17
  257. package/dist/types/components/Modal/index.d.ts.map +1 -1
  258. package/dist/types/components/Pagination/Pagination.d.ts +278 -23
  259. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  260. package/dist/types/components/Pagination/PaginationButton.d.ts +285 -2
  261. package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -1
  262. package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
  263. package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -1
  264. package/dist/types/components/Pagination/index.d.ts +554 -5
  265. package/dist/types/components/Pagination/index.d.ts.map +1 -1
  266. package/dist/types/components/Pagination/usePagination.d.ts.map +1 -1
  267. package/dist/types/components/Paragraph/Paragraph.d.ts +3 -9
  268. package/dist/types/components/Paragraph/Paragraph.d.ts.map +1 -1
  269. package/dist/types/components/Paragraph/index.d.ts.map +1 -1
  270. package/dist/types/components/Popover/Popover.d.ts +287 -43
  271. package/dist/types/components/Popover/Popover.d.ts.map +1 -1
  272. package/dist/types/components/Popover/PopoverTrigger.d.ts +285 -13
  273. package/dist/types/components/Popover/PopoverTrigger.d.ts.map +1 -1
  274. package/dist/types/components/Popover/PopoverTriggerContext.d.ts +13 -0
  275. package/dist/types/components/Popover/PopoverTriggerContext.d.ts.map +1 -0
  276. package/dist/types/components/Popover/index.d.ts +4 -4
  277. package/dist/types/components/Popover/index.d.ts.map +1 -1
  278. package/dist/types/components/SkipLink/SkipLink.d.ts +279 -5
  279. package/dist/types/components/SkipLink/SkipLink.d.ts.map +1 -1
  280. package/dist/types/components/SkipLink/index.d.ts.map +1 -1
  281. package/dist/types/components/Table/Table.d.ts +3 -12
  282. package/dist/types/components/Table/Table.d.ts.map +1 -1
  283. package/dist/types/components/Table/TableBody.d.ts.map +1 -1
  284. package/dist/types/components/Table/TableCell.d.ts.map +1 -1
  285. package/dist/types/components/Table/TableFoot.d.ts +4 -0
  286. package/dist/types/components/Table/TableFoot.d.ts.map +1 -0
  287. package/dist/types/components/Table/TableHead.d.ts.map +1 -1
  288. package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -1
  289. package/dist/types/components/Table/TableRow.d.ts.map +1 -1
  290. package/dist/types/components/Table/index.d.ts +18 -10
  291. package/dist/types/components/Table/index.d.ts.map +1 -1
  292. package/dist/types/components/Tabs/Tabs.d.ts +278 -20
  293. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
  294. package/dist/types/components/Tabs/TabsList.d.ts.map +1 -1
  295. package/dist/types/components/Tabs/TabsPanel.d.ts.map +1 -1
  296. package/dist/types/components/Tabs/TabsTab.d.ts.map +1 -1
  297. package/dist/types/components/Tabs/index.d.ts +270 -5
  298. package/dist/types/components/Tabs/index.d.ts.map +1 -1
  299. package/dist/types/components/Tag/Tag.d.ts +276 -20
  300. package/dist/types/components/Tag/Tag.d.ts.map +1 -1
  301. package/dist/types/components/Tag/index.d.ts.map +1 -1
  302. package/dist/types/components/ToggleGroup/ToggleGroup.d.ts +279 -23
  303. package/dist/types/components/ToggleGroup/ToggleGroup.d.ts.map +1 -1
  304. package/dist/types/components/ToggleGroup/ToggleGroupItem.d.ts +285 -2
  305. package/dist/types/components/ToggleGroup/ToggleGroupItem.d.ts.map +1 -1
  306. package/dist/types/components/ToggleGroup/index.d.ts.map +1 -1
  307. package/dist/types/components/ToggleGroup/useToggleGroupitem.d.ts +0 -2
  308. package/dist/types/components/ToggleGroup/useToggleGroupitem.d.ts.map +1 -1
  309. package/dist/types/components/Tooltip/Tooltip.d.ts +287 -33
  310. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  311. package/dist/types/components/Tooltip/index.d.ts.map +1 -1
  312. package/dist/types/components/ValidationMessage/ValidationMessage.d.ts +275 -20
  313. package/dist/types/components/ValidationMessage/ValidationMessage.d.ts.map +1 -1
  314. package/dist/types/components/ValidationMessage/index.d.ts.map +1 -1
  315. package/dist/types/components/form/CharacterCounter.d.ts +2 -2
  316. package/dist/types/components/form/CharacterCounter.d.ts.map +1 -1
  317. package/dist/types/components/form/Checkbox/Checkbox.d.ts +36 -19
  318. package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
  319. package/dist/types/components/form/Checkbox/index.d.ts +2 -21
  320. package/dist/types/components/form/Checkbox/index.d.ts.map +1 -1
  321. package/dist/types/components/form/Combobox/Combobox.d.ts +3 -3
  322. package/dist/types/components/form/Combobox/Combobox.d.ts.map +1 -1
  323. package/dist/types/components/form/Combobox/ComboboxContext.d.ts.map +1 -1
  324. package/dist/types/components/form/Combobox/ComboboxIdContext.d.ts.map +1 -1
  325. package/dist/types/components/form/Combobox/Custom.d.ts.map +1 -1
  326. package/dist/types/components/form/Combobox/Empty.d.ts.map +1 -1
  327. package/dist/types/components/form/Combobox/Option/Description.d.ts.map +1 -1
  328. package/dist/types/components/form/Combobox/Option/Option.d.ts.map +1 -1
  329. package/dist/types/components/form/Combobox/Option/SelectedIcon.d.ts.map +1 -1
  330. package/dist/types/components/form/Combobox/Option/useComboboxOption.d.ts.map +1 -1
  331. package/dist/types/components/form/Combobox/data/data.d.ts.map +1 -1
  332. package/dist/types/components/form/Combobox/index.d.ts.map +1 -1
  333. package/dist/types/components/form/Combobox/internal/ComboboxChips.d.ts.map +1 -1
  334. package/dist/types/components/form/Combobox/internal/ComboboxClearButton.d.ts.map +1 -1
  335. package/dist/types/components/form/Combobox/internal/ComboboxError.d.ts.map +1 -1
  336. package/dist/types/components/form/Combobox/internal/ComboboxInput.d.ts.map +1 -1
  337. package/dist/types/components/form/Combobox/internal/ComboboxLabel.d.ts.map +1 -1
  338. package/dist/types/components/form/Combobox/internal/ComboboxNative.d.ts.map +1 -1
  339. package/dist/types/components/form/Combobox/useCombobox.d.ts.map +1 -1
  340. package/dist/types/components/form/Combobox/useComboboxKeyboard.d.ts.map +1 -1
  341. package/dist/types/components/form/Combobox/useFloatingCombobox.d.ts.map +1 -1
  342. package/dist/types/components/form/Combobox/utilities.d.ts.map +1 -1
  343. package/dist/types/components/form/Field/Field.d.ts +15 -0
  344. package/dist/types/components/form/Field/Field.d.ts.map +1 -0
  345. package/dist/types/components/form/Field/FieldAffix.d.ts +6 -0
  346. package/dist/types/components/form/Field/FieldAffix.d.ts.map +1 -0
  347. package/dist/types/components/form/Field/FieldCounter.d.ts +297 -0
  348. package/dist/types/components/form/Field/FieldCounter.d.ts.map +1 -0
  349. package/dist/types/components/form/Field/FieldDescription.d.ts +4 -0
  350. package/dist/types/components/form/Field/FieldDescription.d.ts.map +1 -0
  351. package/dist/types/components/form/Field/fieldObserver.d.ts +2 -0
  352. package/dist/types/components/form/Field/fieldObserver.d.ts.map +1 -0
  353. package/dist/types/components/form/Field/index.d.ts +301 -0
  354. package/dist/types/components/form/Field/index.d.ts.map +1 -0
  355. package/dist/types/components/form/Fieldset/Fieldset.d.ts +276 -25
  356. package/dist/types/components/form/Fieldset/Fieldset.d.ts.map +1 -1
  357. package/dist/types/components/form/Fieldset/FieldsetContext.d.ts +1 -1
  358. package/dist/types/components/form/Fieldset/FieldsetContext.d.ts.map +1 -1
  359. package/dist/types/components/form/Fieldset/FieldsetDescription.d.ts +8 -0
  360. package/dist/types/components/form/Fieldset/FieldsetDescription.d.ts.map +1 -0
  361. package/dist/types/components/form/Fieldset/FieldsetLegend.d.ts +5 -0
  362. package/dist/types/components/form/Fieldset/FieldsetLegend.d.ts.map +1 -0
  363. package/dist/types/components/form/Fieldset/index.d.ts +295 -1
  364. package/dist/types/components/form/Fieldset/index.d.ts.map +1 -1
  365. package/dist/types/components/form/Input/Input.d.ts +334 -0
  366. package/dist/types/components/form/Input/Input.d.ts.map +1 -0
  367. package/dist/types/components/form/Input/index.d.ts +3 -0
  368. package/dist/types/components/form/Input/index.d.ts.map +1 -0
  369. package/dist/types/components/form/Radio/Radio.d.ts +37 -12
  370. package/dist/types/components/form/Radio/Radio.d.ts.map +1 -1
  371. package/dist/types/components/form/Radio/index.d.ts +2 -19
  372. package/dist/types/components/form/Radio/index.d.ts.map +1 -1
  373. package/dist/types/components/form/Search/Search.d.ts +3 -75
  374. package/dist/types/components/form/Search/Search.d.ts.map +1 -1
  375. package/dist/types/components/form/Search/SearchButton.d.ts +295 -0
  376. package/dist/types/components/form/Search/SearchButton.d.ts.map +1 -0
  377. package/dist/types/components/form/Search/SearchClear.d.ts +299 -0
  378. package/dist/types/components/form/Search/SearchClear.d.ts.map +1 -0
  379. package/dist/types/components/form/Search/SearchInput.d.ts +4 -0
  380. package/dist/types/components/form/Search/SearchInput.d.ts.map +1 -0
  381. package/dist/types/components/form/Search/index.d.ts +593 -1
  382. package/dist/types/components/form/Search/index.d.ts.map +1 -1
  383. package/dist/types/components/form/Select/Select.d.ts +284 -57
  384. package/dist/types/components/form/Select/Select.d.ts.map +1 -1
  385. package/dist/types/components/form/Select/SelectOptgroup.d.ts.map +1 -1
  386. package/dist/types/components/form/Select/SelectOption.d.ts.map +1 -1
  387. package/dist/types/components/form/Select/index.d.ts +284 -5
  388. package/dist/types/components/form/Select/index.d.ts.map +1 -1
  389. package/dist/types/components/form/Switch/Switch.d.ts +43 -18
  390. package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
  391. package/dist/types/components/form/Switch/index.d.ts.map +1 -1
  392. package/dist/types/components/form/Textarea/Textarea.d.ts +5 -44
  393. package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
  394. package/dist/types/components/form/Textarea/index.d.ts.map +1 -1
  395. package/dist/types/components/form/Textarea/useTextarea.d.ts.map +1 -1
  396. package/dist/types/components/form/Textfield/Textfield.d.ts +38 -61
  397. package/dist/types/components/form/Textfield/Textfield.d.ts.map +1 -1
  398. package/dist/types/components/form/Textfield/index.d.ts.map +1 -1
  399. package/dist/types/components/form/useFormField.d.ts +2 -1
  400. package/dist/types/components/form/useFormField.d.ts.map +1 -1
  401. package/dist/types/components/index.d.ts +2 -0
  402. package/dist/types/components/index.d.ts.map +1 -1
  403. package/dist/types/components/loaders/Skeleton/Skeleton.d.ts.map +1 -1
  404. package/dist/types/components/loaders/Skeleton/index.d.ts.map +1 -1
  405. package/dist/types/components/loaders/Spinner/Spinner.d.ts +15 -14
  406. package/dist/types/components/loaders/Spinner/Spinner.d.ts.map +1 -1
  407. package/dist/types/components/loaders/Spinner/index.d.ts +1 -2
  408. package/dist/types/components/loaders/Spinner/index.d.ts.map +1 -1
  409. package/dist/types/index.d.ts +1 -0
  410. package/dist/types/index.d.ts.map +1 -1
  411. package/dist/types/types.d.ts +19 -0
  412. package/dist/types/types.d.ts.map +1 -0
  413. package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts.map +1 -1
  414. package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts.map +1 -1
  415. package/dist/types/utilities/RovingFocus/index.d.ts.map +1 -1
  416. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts +3 -1
  417. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts.map +1 -1
  418. package/dist/types/utilities/hooks/index.d.ts.map +1 -1
  419. package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts +382 -0
  420. package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts.map +1 -0
  421. package/dist/types/utilities/hooks/useDebounceCallback/useDebounceCallback.d.ts.map +1 -1
  422. package/dist/types/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts.map +1 -1
  423. package/dist/types/utilities/hooks/useMediaQuery/useMediaQuery.d.ts.map +1 -1
  424. package/dist/types/utilities/hooks/usePrevious.d.ts.map +1 -1
  425. package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts +370 -0
  426. package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts.map +1 -0
  427. package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts.map +1 -1
  428. package/dist/types/utilities/index.d.ts +1 -0
  429. package/dist/types/utilities/index.d.ts.map +1 -1
  430. package/dist/types/utilities/omit/omit.d.ts.map +1 -1
  431. package/dist/types/utilities/types.d.ts +10 -0
  432. package/dist/types/utilities/types.d.ts.map +1 -0
  433. package/package.json +11 -4
  434. package/dist/cjs/components/Dropdown/DropdownContext.js +0 -26
  435. package/dist/cjs/components/form/CharacterCounter.js +0 -17
  436. package/dist/cjs/components/form/Checkbox/CheckboxGroup.js +0 -31
  437. package/dist/cjs/components/form/Checkbox/index.js +0 -13
  438. package/dist/cjs/components/form/Checkbox/useCheckbox.js +0 -44
  439. package/dist/cjs/components/form/Radio/RadioGroup.js +0 -23
  440. package/dist/cjs/components/form/Radio/index.js +0 -13
  441. package/dist/cjs/components/form/Radio/useRadio.js +0 -46
  442. package/dist/cjs/components/form/Search/useSearch.js +0 -39
  443. package/dist/cjs/components/form/Select/useSelect.js +0 -49
  444. package/dist/cjs/components/form/Switch/useSwitch.js +0 -46
  445. package/dist/cjs/components/form/Textarea/useTextarea.js +0 -37
  446. package/dist/cjs/components/form/Textfield/useTextfield.js +0 -37
  447. package/dist/esm/components/Dropdown/DropdownContext.js +0 -24
  448. package/dist/esm/components/form/CharacterCounter.js +0 -15
  449. package/dist/esm/components/form/Checkbox/CheckboxGroup.js +0 -28
  450. package/dist/esm/components/form/Checkbox/index.js +0 -10
  451. package/dist/esm/components/form/Checkbox/useCheckbox.js +0 -42
  452. package/dist/esm/components/form/Radio/RadioGroup.js +0 -20
  453. package/dist/esm/components/form/Radio/index.js +0 -10
  454. package/dist/esm/components/form/Radio/useRadio.js +0 -44
  455. package/dist/esm/components/form/Search/useSearch.js +0 -37
  456. package/dist/esm/components/form/Select/useSelect.js +0 -47
  457. package/dist/esm/components/form/Switch/useSwitch.js +0 -44
  458. package/dist/esm/components/form/Textarea/useTextarea.js +0 -35
  459. package/dist/esm/components/form/Textfield/useTextfield.js +0 -35
  460. package/dist/types/components/Dropdown/DropdownContext.d.ts +0 -22
  461. package/dist/types/components/Dropdown/DropdownContext.d.ts.map +0 -1
  462. package/dist/types/components/Modal/ModalContext.d.ts +0 -10
  463. package/dist/types/components/Modal/ModalContext.d.ts.map +0 -1
  464. package/dist/types/components/Popover/PopoverContext.d.ts +0 -13
  465. package/dist/types/components/Popover/PopoverContext.d.ts.map +0 -1
  466. package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts +0 -29
  467. package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts.map +0 -1
  468. package/dist/types/components/form/Checkbox/useCheckbox.d.ts +0 -10
  469. package/dist/types/components/form/Checkbox/useCheckbox.d.ts.map +0 -1
  470. package/dist/types/components/form/Radio/RadioGroup.d.ts +0 -43
  471. package/dist/types/components/form/Radio/RadioGroup.d.ts.map +0 -1
  472. package/dist/types/components/form/Radio/useRadio.d.ts +0 -10
  473. package/dist/types/components/form/Radio/useRadio.d.ts.map +0 -1
  474. package/dist/types/components/form/Search/useSearch.d.ts +0 -10
  475. package/dist/types/components/form/Search/useSearch.d.ts.map +0 -1
  476. package/dist/types/components/form/Select/useSelect.d.ts +0 -10
  477. package/dist/types/components/form/Select/useSelect.d.ts.map +0 -1
  478. package/dist/types/components/form/Switch/useSwitch.d.ts +0 -10
  479. package/dist/types/components/form/Switch/useSwitch.d.ts.map +0 -1
  480. package/dist/types/components/form/Textfield/useTextfield.d.ts +0 -10
  481. package/dist/types/components/form/Textfield/useTextfield.d.ts.map +0 -1
  482. package/dist/types/types/Portal.d.ts +0 -9
  483. package/dist/types/types/Portal.d.ts.map +0 -1
@@ -1,12 +1,9 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { forwardRef, useContext } from 'react';
4
- import { Button } from '../Button/Button.js';
5
- import { DropdownCtx } from './Dropdown.js';
3
+ import { forwardRef } from 'react';
6
4
 
7
- const DropdownItem = forwardRef(function DropdownItem({ className, style, ...rest }, ref) {
8
- const { size } = useContext(DropdownCtx);
9
- return (jsx("li", { className: className, style: style, children: jsx(Button, { ref: ref, variant: 'tertiary', size: size, className: 'ds-dropdown__item', ...rest }) }));
5
+ const DropdownItem = forwardRef(function DropdownItem({ className, ...rest }, ref) {
6
+ return jsx("li", { ref: ref, ...rest });
10
7
  });
11
8
 
12
9
  export { DropdownItem };
@@ -1,10 +1,9 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import cl from 'clsx/lite';
4
3
  import { forwardRef } from 'react';
5
4
 
6
5
  const DropdownList = forwardRef(function DropdownList({ className, ...rest }, ref) {
7
- return (jsx("ul", { ref: ref, className: cl('ds-dropdown__list', className), ...rest }));
6
+ return jsx("ul", { ref: ref, ...rest });
8
7
  });
9
8
 
10
9
  export { DropdownList };
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import '../Popover/index.js';
4
+ import { PopoverTriggerContext } from '../Popover/PopoverTriggerContext.js';
5
+
6
+ /**
7
+ * DropdownTriggerContext enables use of the `.Trigger` for the Dropdown component.
8
+ * @example
9
+ * <Dropdown.TriggerContext>
10
+ * <Dropdown.Trigger>Dropdown</Dropdown.Trigger>
11
+ * <Dropdown>
12
+ * <Dropdown.Heading>Heading</Dropdown.Heading>
13
+ * <Dropdown.List>
14
+ * <Dropdown.Item>Button 1</Dropdown.Item>
15
+ * </Dropdown.List>
16
+ * </Dropdown>
17
+ * </Dropdown.TriggerContext>
18
+ */
19
+ const DropdownTriggerContext = ({ children, }) => {
20
+ return jsx(PopoverTriggerContext, { children: children });
21
+ };
22
+ DropdownTriggerContext.displayName = 'DropdownTriggerContext';
23
+
24
+ export { DropdownTriggerContext };
@@ -1,34 +1,39 @@
1
1
  'use client';
2
2
  import { Dropdown as Dropdown$1 } from './Dropdown.js';
3
- import { DropdownContext } from './DropdownContext.js';
3
+ import { DropdownButton } from './DropdownButton.js';
4
4
  import { DropdownHeading } from './DropdownHeading.js';
5
5
  import { DropdownItem } from './DropdownItem.js';
6
6
  import { DropdownList } from './DropdownList.js';
7
7
  import { DropdownTrigger } from './DropdownTrigger.js';
8
+ import { DropdownTriggerContext } from './DropdownTriggerContext.js';
8
9
 
9
10
  /**
10
11
  * @example
11
- * <Dropdown.Context>
12
+ * <Dropdown.TriggerContext>
12
13
  * <Dropdown.Trigger>Dropdown</Dropdown.Trigger>
13
14
  * <Dropdown>
14
15
  * <Dropdown.Heading>Heading</Dropdown.Heading>
15
16
  * <Dropdown.List>
16
- * <Dropdown.Item>Button 1</Dropdown.Item>
17
+ * <Dropdown.Item>
18
+ * <Dropdown.Button>Button 1</Dropdown.Button>
19
+ * </Dropdown.Item>
17
20
  * </Dropdown.List>
18
21
  * </Dropdown>
19
- * </Dropdown.Context>
22
+ * </Dropdown.TriggerContext>
20
23
  */
21
24
  const Dropdown = Object.assign(Dropdown$1, {
22
- Context: DropdownContext,
25
+ TriggerContext: DropdownTriggerContext,
23
26
  Heading: DropdownHeading,
24
27
  List: DropdownList,
25
28
  Item: DropdownItem,
29
+ Button: DropdownButton,
26
30
  Trigger: DropdownTrigger,
27
31
  });
28
- Dropdown.Context.displayName = 'Dropdown.Context';
32
+ Dropdown.TriggerContext.displayName = 'Dropdown.TriggerContext';
29
33
  Dropdown.List.displayName = 'Dropdown.List';
30
34
  Dropdown.Heading.displayName = 'Dropdown.Heading';
31
35
  Dropdown.Item.displayName = 'Dropdown.Item';
36
+ Dropdown.Button.displayName = 'Dropdown.Button';
32
37
  Dropdown.Trigger.displayName = 'Dropdown.Trigger';
33
38
 
34
- export { Dropdown, DropdownContext, DropdownHeading, DropdownItem, DropdownList, DropdownTrigger };
39
+ export { Dropdown, DropdownButton, DropdownHeading, DropdownItem, DropdownList, DropdownTrigger, DropdownTriggerContext };
@@ -4,14 +4,13 @@ import cl from 'clsx/lite';
4
4
  import { createContext, forwardRef, useId, useState } from 'react';
5
5
 
6
6
  const ErrorSummaryContext = createContext({
7
- size: 'md',
8
7
  headingId: 'heading',
9
8
  setHeadingId: () => { },
10
9
  });
11
- const ErrorSummary = forwardRef(function ErrorSummary({ className, size = 'md', role = 'alert', 'aria-live': ariaLive = 'polite', 'aria-relevant': ariaRelevant = 'all', ...rest }, ref) {
10
+ const ErrorSummary = forwardRef(function ErrorSummary({ className, role = 'alert', 'aria-live': ariaLive = 'polite', 'aria-relevant': ariaRelevant = 'all', ...rest }, ref) {
12
11
  const randomId = useId();
13
12
  const [headingId, setHeadingId] = useState(randomId);
14
- return (jsx(ErrorSummaryContext.Provider, { value: { size, headingId, setHeadingId }, children: jsx("div", { "aria-labelledby": headingId, "aria-live": ariaLive, "aria-relevant": ariaRelevant, className: cl('ds-error-summary', className), ref: ref, role: role, ...rest }) }));
13
+ return (jsx(ErrorSummaryContext.Provider, { value: { headingId, setHeadingId }, children: jsx("div", { "aria-labelledby": headingId, "aria-live": ariaLive, "aria-relevant": ariaRelevant, className: cl('ds-error-summary', className), ref: ref, role: role, ...rest }) }));
15
14
  });
16
15
 
17
16
  export { ErrorSummary, ErrorSummaryContext };
@@ -4,18 +4,13 @@ import { forwardRef, useContext, useEffect } from 'react';
4
4
  import { ErrorSummaryContext } from './ErrorSummary.js';
5
5
  import { Heading } from '../Heading/Heading.js';
6
6
 
7
- const HEADING_SIZE_MAP = {
8
- sm: '2xs',
9
- md: 'xs',
10
- lg: 'sm',
11
- };
12
7
  const ErrorSummaryHeading = forwardRef(function ErrorSummaryHeading({ className, id, ...rest }, ref) {
13
- const { size, headingId, setHeadingId } = useContext(ErrorSummaryContext);
8
+ const { headingId, setHeadingId } = useContext(ErrorSummaryContext);
14
9
  useEffect(() => {
15
10
  if (id && headingId !== id)
16
11
  setHeadingId(id);
17
12
  }, [headingId, id, setHeadingId]);
18
- return (jsx(Heading, { id: headingId, size: HEADING_SIZE_MAP[size ?? 'md'], ref: ref, ...rest }));
13
+ return jsx(Heading, { id: headingId, ref: ref, ...rest });
19
14
  });
20
15
 
21
16
  export { ErrorSummaryHeading };
@@ -1,12 +1,10 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { forwardRef, useContext } from 'react';
3
+ import { forwardRef } from 'react';
4
4
  import { List } from '../List/index.js';
5
- import { ErrorSummaryContext } from './ErrorSummary.js';
6
5
 
7
6
  const ErrorSummaryList = forwardRef(function ErrorSummaryList({ ...rest }, ref) {
8
- const { size } = useContext(ErrorSummaryContext);
9
- return jsx(List.Unordered, { size: size, ...rest, ref: ref });
7
+ return jsx(List.Unordered, { ...rest, ref: ref });
10
8
  });
11
9
 
12
10
  export { ErrorSummaryList };
@@ -8,11 +8,11 @@ import { forwardRef } from 'react';
8
8
  * Use `Heading` to render h1-6 elements with heading text styles.
9
9
  *
10
10
  * @example
11
- * <Heading size='lg' level={2}>Heading</Heading>
11
+ * <Heading data-size='lg' level={2}>Heading</Heading>
12
12
  */
13
- const Heading = forwardRef(function Heading({ size = 'xl', level = 2, className, asChild, ...rest }, ref) {
13
+ const Heading = forwardRef(function Heading({ level = 2, className, asChild, ...rest }, ref) {
14
14
  const Component = asChild ? Slot : `h${level}`;
15
- return (jsx(Component, { className: cl(`ds-heading`, className), "data-size": size, ref: ref, ...rest }));
15
+ return (jsx(Component, { className: cl(`ds-heading`, className), ref: ref, ...rest }));
16
16
  });
17
17
 
18
18
  export { Heading };
@@ -4,8 +4,8 @@ import cl from 'clsx/lite';
4
4
  import { forwardRef } from 'react';
5
5
  import { Popover } from '../Popover/index.js';
6
6
 
7
- const HelpText = forwardRef(function HelpText({ placement = 'right', size = 'md', className, children, ...rest }, ref) {
8
- return (jsxs(Popover.Context, { children: [jsx(Popover.Trigger, { className: cl('ds-helptext', className), ref: ref, size: size, variant: 'tertiary', ...rest }), jsx(Popover, { placement: placement, size: size, variant: 'info', children: children })] }));
7
+ const HelpText = forwardRef(function HelpText({ placement = 'right', className, children, ...rest }, ref) {
8
+ return (jsxs(Popover.TriggerContext, { children: [jsx(Popover.Trigger, { className: cl('ds-helptext', className), ref: ref, variant: 'tertiary', ...rest }), jsx(Popover, { placement: placement, "data-color": 'info', children: children })] }));
9
9
  });
10
10
 
11
11
  export { HelpText };
@@ -8,11 +8,11 @@ import { forwardRef } from 'react';
8
8
  * Use `Label` for labels.
9
9
  *
10
10
  * @example
11
- * <Label size='lg'>Label</Label>
11
+ * <Label data-size='lg'>Label</Label>
12
12
  */
13
- const Label = forwardRef(function Label({ className, size = 'md', weight = 'medium', asChild, ...rest }, ref) {
13
+ const Label = forwardRef(function Label({ className, weight = 'medium', asChild, ...rest }, ref) {
14
14
  const Component = asChild ? Slot : 'label';
15
- return (jsx(Component, { ref: ref, className: cl(`ds-label--${size}`, weight && `ds-font-weight--${weight}`, className), ...rest }));
15
+ return (jsx(Component, { ref: ref, className: cl('ds-label', className), "data-weight": weight, ...rest }));
16
16
  });
17
17
 
18
18
  export { Label };
@@ -4,9 +4,9 @@ import { Slot } from '@radix-ui/react-slot';
4
4
  import cl from 'clsx/lite';
5
5
  import { forwardRef } from 'react';
6
6
 
7
- const Link = forwardRef(({ asChild, className, color = 'accent', ...rest }, ref) => {
7
+ const Link = forwardRef(({ asChild, className, ...rest }, ref) => {
8
8
  const Component = asChild ? Slot : 'a';
9
- return (jsx(Component, { className: cl('ds-link', className), "data-color": color, ref: ref, ...rest }));
9
+ return (jsx(Component, { className: cl('ds-link', className), ref: ref, ...rest }));
10
10
  });
11
11
  Link.displayName = 'Link';
12
12
 
@@ -4,9 +4,9 @@ import { Slot } from '@radix-ui/react-slot';
4
4
  import cl from 'clsx/lite';
5
5
  import { forwardRef } from 'react';
6
6
 
7
- const render = (tagName, { asChild, className, size = 'md', ...rest }, ref) => {
7
+ const render = (tagName, { asChild, className, ...rest }, ref) => {
8
8
  const Component = asChild ? Slot : tagName;
9
- return (jsx(Component, { className: cl(`ds-list`, className), "data-size": size, ref: ref, ...rest }));
9
+ return jsx(Component, { className: cl(`ds-list`, className), ref: ref, ...rest });
10
10
  };
11
11
  const ListUnordered = forwardRef(function ListUnordered(props, ref) {
12
12
  return render('ul', props, ref);
@@ -4,12 +4,12 @@ import { useMergeRefs } from '@floating-ui/react';
4
4
  import { Slot } from '@radix-ui/react-slot';
5
5
  import cl from 'clsx/lite';
6
6
  import { forwardRef, useContext, useRef, useEffect } from 'react';
7
- import { Context } from './ModalContext.js';
7
+ import { Context } from './ModalTriggerContext.js';
8
8
  import { Button } from '../Button/Button.js';
9
9
 
10
10
  const Modal = forwardRef(function Modal({ asChild, children, className, closeButton = 'Lukk dialogvindu', onClose, open, backdropClose = false, ...rest }, ref) {
11
11
  const contextRef = useContext(Context);
12
- const modalRef = useRef(null); // This local ref is used to make sure the modal works without a ModalContext
12
+ const modalRef = useRef(null); // This local ref is used to make sure the modal works without a ModalTriggerContext
13
13
  const Component = asChild ? Slot : 'dialog';
14
14
  const mergedRefs = useMergeRefs([contextRef, ref, modalRef]);
15
15
  useEffect(() => modalRef.current?.[open ? 'showModal' : 'close'](), [open]); // Toggle open based on prop
@@ -37,7 +37,13 @@ const Modal = forwardRef(function Modal({ asChild, children, className, closeBut
37
37
  modal?.removeEventListener('click', handleBackdropClick);
38
38
  };
39
39
  }, [backdropClose]);
40
- return (jsxs(Component, { className: cl('ds-modal', className), ref: mergedRefs, ...rest, children: [closeButton !== false && (jsx("form", { method: 'dialog', children: jsx(Button, { "aria-label": closeButton, autoFocus: true, color: 'neutral', icon: true, name: 'close', size: 'md', type: 'submit', variant: 'tertiary' }) })), children] }));
40
+ /* handle closing */
41
+ useEffect(() => {
42
+ const handleClose = (event) => onClose?.(event);
43
+ modalRef.current?.addEventListener('close', handleClose);
44
+ return () => modalRef.current?.removeEventListener('close', handleClose);
45
+ }, [onClose]);
46
+ return (jsxs(Component, { className: cl('ds-modal', className), ref: mergedRefs, ...rest, children: [closeButton !== false && (jsx("form", { method: 'dialog', children: jsx(Button, { "aria-label": closeButton, autoFocus: true, color: 'neutral', icon: true, name: 'close', type: 'submit', variant: 'tertiary' }) })), children] }));
41
47
  });
42
48
 
43
49
  export { Modal };
@@ -3,7 +3,7 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { Slot } from '@radix-ui/react-slot';
4
4
  import { forwardRef, useContext } from 'react';
5
5
  import { Button } from '../Button/Button.js';
6
- import { Context } from './ModalContext.js';
6
+ import { Context } from './ModalTriggerContext.js';
7
7
 
8
8
  const ModalTrigger = forwardRef(function ModalTrigger({ asChild, ...rest }, ref) {
9
9
  const contextRef = useContext(Context);
@@ -5,10 +5,10 @@ import { createContext, useRef } from 'react';
5
5
  const Context = createContext({
6
6
  current: null,
7
7
  });
8
- const ModalContext = ({ children }) => {
8
+ const ModalTriggerContext = ({ children }) => {
9
9
  const contextRef = useRef(null);
10
10
  return jsx(Context.Provider, { value: contextRef, children: children });
11
11
  };
12
- ModalContext.displayName = 'ModalContext';
12
+ ModalTriggerContext.displayName = 'ModalTriggerContext';
13
13
 
14
- export { Context, ModalContext };
14
+ export { Context, ModalTriggerContext };
@@ -1,16 +1,16 @@
1
1
  'use client';
2
2
  import { Modal as Modal$1 } from './Modal.js';
3
3
  import { ModalBlock } from './ModalBlock.js';
4
- import { ModalContext } from './ModalContext.js';
5
4
  import { ModalTrigger } from './ModalTrigger.js';
5
+ import { ModalTriggerContext } from './ModalTriggerContext.js';
6
6
 
7
7
  const Modal = Object.assign(Modal$1, {
8
8
  Block: ModalBlock,
9
- Context: ModalContext,
9
+ TriggerContext: ModalTriggerContext,
10
10
  Trigger: ModalTrigger,
11
11
  });
12
12
  Modal.Block.displayName = 'Modal.Block';
13
- Modal.Context.displayName = 'Modal.Context';
13
+ Modal.TriggerContext.displayName = 'Modal.TriggerContext';
14
14
  Modal.Trigger.displayName = 'Modal.Trigger';
15
15
 
16
- export { Modal, ModalBlock, ModalContext, ModalTrigger };
16
+ export { Modal, ModalBlock, ModalTrigger, ModalTriggerContext };
@@ -2,14 +2,11 @@
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { Slot } from '@radix-ui/react-slot';
4
4
  import cl from 'clsx/lite';
5
- import { createContext, forwardRef } from 'react';
5
+ import { forwardRef } from 'react';
6
6
 
7
- const PaginationContext = createContext({
8
- size: 'md',
9
- });
10
- const Pagination = forwardRef(function Pagination({ 'aria-label': ariaLabel = 'Sidenavigering', asChild, className, size = 'md', ...rest }, ref) {
7
+ const Pagination = forwardRef(function Pagination({ 'aria-label': ariaLabel = 'Sidenavigering', asChild, className, ...rest }, ref) {
11
8
  const Component = asChild ? Slot : 'nav';
12
- return (jsx(PaginationContext.Provider, { value: { size }, children: jsx(Component, { "aria-label": ariaLabel, className: cl('ds-pagination', className), ref: ref, ...rest }) }));
9
+ return (jsx(Component, { "aria-label": ariaLabel, className: cl('ds-pagination', className), ref: ref, ...rest }));
13
10
  });
14
11
 
15
- export { Pagination, PaginationContext };
12
+ export { Pagination };
@@ -1,12 +1,10 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { forwardRef, useContext } from 'react';
3
+ import { forwardRef } from 'react';
4
4
  import { Button } from '../Button/Button.js';
5
- import { PaginationContext } from './Pagination.js';
6
5
 
7
6
  const PaginationButton = forwardRef(function PaginationButton(rest, ref) {
8
- const { size } = useContext(PaginationContext);
9
- return jsx(Button, { ref: ref, size: size, ...rest });
7
+ return jsx(Button, { ref: ref, ...rest });
10
8
  });
11
9
 
12
10
  export { PaginationButton };
@@ -8,11 +8,11 @@ import { forwardRef } from 'react';
8
8
  * Use `Paragraph` to display text with paragraph text styles.
9
9
  *
10
10
  * @example
11
- * <Paragraph size='lg'>Paragraph</Paragraph>
11
+ * <Paragraph data-size='lg'>Paragraph</Paragraph>
12
12
  */
13
- const Paragraph = forwardRef(function Paragraph({ className, size = 'md', asChild, variant = 'default', ...rest }, ref) {
13
+ const Paragraph = forwardRef(function Paragraph({ className, asChild, variant = 'default', ...rest }, ref) {
14
14
  const Component = asChild ? Slot : 'p';
15
- return (jsx(Component, { ref: ref, className: cl(`ds-paragraph`, className), "data-size": size, "data-variant": variant, ...rest }));
15
+ return (jsx(Component, { ref: ref, className: cl(`ds-paragraph`, className), "data-variant": variant, ...rest }));
16
16
  });
17
17
 
18
18
  export { Paragraph };
@@ -5,11 +5,9 @@ import { useMergeRefs } from '@floating-ui/react';
5
5
  import { Slot } from '@radix-ui/react-slot';
6
6
  import cl from 'clsx/lite';
7
7
  import { forwardRef, useRef, useContext, useState, useEffect } from 'react';
8
- import { Context } from './PopoverContext.js';
8
+ import { Context } from './PopoverTriggerContext.js';
9
9
 
10
- const ARROW_HEIGHT = 7;
11
- const ARROW_GAP = 4;
12
- const Popover = forwardRef(function Popover({ id, className, onClose, onOpen, open, placement = 'top', size = 'md', variant = 'default', asChild = false, ...rest }, ref) {
10
+ const Popover = forwardRef(function Popover({ id, className, onClose, onOpen, open, placement = 'top', autoPlacement = true, asChild = false, ...rest }, ref) {
13
11
  const Component = asChild ? Slot : 'div';
14
12
  const popoverRef = useRef(null);
15
13
  const mergedRefs = useMergeRefs([popoverRef, ref]);
@@ -41,10 +39,10 @@ const Popover = forwardRef(function Popover({ id, className, onClose, onOpen, op
41
39
  onClose?.();
42
40
  };
43
41
  popover?.togglePopover?.(controlledOpen);
44
- document.addEventListener('click', handleClick);
42
+ document.addEventListener('click', handleClick, true); // Use capture to execute before React event API
45
43
  document.addEventListener('keydown', handleKeydown);
46
44
  return () => {
47
- document.removeEventListener('click', handleClick);
45
+ document.removeEventListener('click', handleClick, true);
48
46
  document.removeEventListener('keydown', handleKeydown);
49
47
  };
50
48
  }, [controlledOpen]);
@@ -58,22 +56,27 @@ const Popover = forwardRef(function Popover({ id, className, onClose, onOpen, op
58
56
  placement,
59
57
  strategy: 'fixed',
60
58
  middleware: [
61
- offset(ARROW_HEIGHT + ARROW_GAP), // TODO: Should this be configurable?
62
- flip({ fallbackAxisSideDirection: 'start' }),
63
- shift(),
59
+ offset((data) => {
60
+ // get pseudo element arrow size
61
+ const styles = getComputedStyle(data.elements.floating, '::before');
62
+ return parseFloat(styles.height);
63
+ }),
64
+ ...(autoPlacement
65
+ ? [flip({ fallbackAxisSideDirection: 'start' }), shift()]
66
+ : []),
64
67
  arrowPseudoElement,
65
68
  ],
66
69
  }).then(({ x, y }) => {
67
70
  popover.style.translate = `${x}px ${y}px`;
68
71
  });
69
72
  });
70
- }, [controlledOpen, placement, id]);
73
+ }, [controlledOpen, placement, id, autoPlacement]);
71
74
  // Update context with id
72
75
  useEffect(() => {
73
76
  if (id)
74
77
  setPopoverId?.(id);
75
78
  }, [id]);
76
- return (jsx(Component, { className: cl('ds-popover', className), "data-size": size, "data-variant": variant, id: id || popoverId,
79
+ return (jsx(Component, { className: cl('ds-popover', className), id: id || popoverId,
77
80
  // @ts-ignore @types/react-dom does not understand popover yet
78
81
  popover: 'manual', ref: mergedRefs, ...rest }));
79
82
  });
@@ -81,11 +84,31 @@ const arrowPseudoElement = {
81
84
  name: 'ArrowPseudoElement',
82
85
  fn(data) {
83
86
  const { elements, rects, placement } = data;
84
- const arrowX = rects.reference.width / 2 + rects.reference.x - data.x;
85
- const arrowY = rects.reference.height / 2 + rects.reference.y - data.y;
87
+ let arrowX = `${Math.round(rects.reference.width / 2 + rects.reference.x - data.x)}px`;
88
+ let arrowY = `${Math.round(rects.reference.height / 2 + rects.reference.y - data.y)}px`;
89
+ if (rects.reference.width > rects.floating.width) {
90
+ arrowX = `${Math.round(rects.floating.width / 2)}px`;
91
+ }
92
+ if (rects.reference.height > rects.floating.height) {
93
+ arrowY = `${Math.round(rects.floating.height / 2)}px`;
94
+ }
95
+ switch (placement.split('-')[0]) {
96
+ case 'top':
97
+ arrowY = '100%';
98
+ break;
99
+ case 'right':
100
+ arrowX = '0';
101
+ break;
102
+ case 'bottom':
103
+ arrowY = '0';
104
+ break;
105
+ case 'left':
106
+ arrowX = '100%';
107
+ break;
108
+ }
86
109
  elements.floating.setAttribute('data-placement', placement.split('-')[0]); // We only need top/left/right/bottom
87
- elements.floating.style.setProperty('--ds-popover-arrow-x', `${arrowX}px`);
88
- elements.floating.style.setProperty('--ds-popover-arrow-y', `${arrowY}px`);
110
+ elements.floating.style.setProperty('--ds-popover-arrow-x', arrowX);
111
+ elements.floating.style.setProperty('--ds-popover-arrow-y', arrowY);
89
112
  return data;
90
113
  },
91
114
  };
@@ -3,7 +3,7 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { Slot } from '@radix-ui/react-slot';
4
4
  import { forwardRef, useContext } from 'react';
5
5
  import { Button } from '../Button/Button.js';
6
- import { Context } from './PopoverContext.js';
6
+ import { Context } from './PopoverTriggerContext.js';
7
7
 
8
8
  const PopoverTrigger = forwardRef(function PopoverTrigger({ id, asChild, ...rest }, ref) {
9
9
  const { popoverId } = useContext(Context);
@@ -2,12 +2,12 @@
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { useId, useState, createContext } from 'react';
4
4
 
5
- const PopoverContext = ({ children }) => {
5
+ const PopoverTriggerContext = ({ children, }) => {
6
6
  const randomPopoverId = useId();
7
7
  const [popoverId, setPopoverId] = useState(randomPopoverId);
8
8
  return (jsx(Context.Provider, { value: { popoverId, setPopoverId }, children: children }));
9
9
  };
10
- PopoverContext.displayName = 'PopoverContext';
10
+ PopoverTriggerContext.displayName = 'PopoverTriggerContext';
11
11
  const Context = createContext({});
12
12
 
13
- export { Context, PopoverContext };
13
+ export { Context, PopoverTriggerContext };
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  import { Popover as Popover$1 } from './Popover.js';
3
- import { PopoverContext } from './PopoverContext.js';
4
3
  import { PopoverTrigger } from './PopoverTrigger.js';
4
+ import { PopoverTriggerContext } from './PopoverTriggerContext.js';
5
5
 
6
6
  const Popover = Popover$1;
7
- Popover.Context = PopoverContext;
7
+ Popover.TriggerContext = PopoverTriggerContext;
8
8
  Popover.Trigger = PopoverTrigger;
9
- Popover.Context.displayName = 'Popover.Context';
9
+ Popover.TriggerContext.displayName = 'Popover.TriggerContext';
10
10
  Popover.Trigger.displayName = 'Popover.Trigger';
11
11
 
12
- export { Popover, PopoverContext, PopoverTrigger };
12
+ export { Popover, PopoverTrigger, PopoverTriggerContext };
@@ -3,8 +3,8 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import cl from 'clsx/lite';
4
4
  import { forwardRef } from 'react';
5
5
 
6
- const Table = forwardRef(function Table({ zebra = false, stickyHeader = false, border = false, hover = false, size = 'md', className, children, ...rest }, ref) {
7
- return (jsx("table", { className: cl('ds-table', className), "data-border": border || undefined, "data-hover": hover || undefined, "data-size": size, "data-sticky-header": stickyHeader || undefined, "data-zebra": zebra || undefined, ref: ref, ...rest, children: children }));
6
+ const Table = forwardRef(function Table({ zebra = false, stickyHeader = false, border = false, hover = false, className, children, ...rest }, ref) {
7
+ 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
8
  });
9
9
 
10
10
  export { Table };
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+
5
+ const TableFoot = forwardRef(function TableFoot(rest, ref) {
6
+ return jsx("tfoot", { ref: ref, ...rest });
7
+ });
8
+
9
+ export { TableFoot };
@@ -2,21 +2,25 @@
2
2
  import { Table as Table$1 } from './Table.js';
3
3
  import { TableBody } from './TableBody.js';
4
4
  import { TableCell } from './TableCell.js';
5
+ import { TableFoot } from './TableFoot.js';
5
6
  import { TableHead } from './TableHead.js';
6
7
  import { TableHeaderCell } from './TableHeaderCell.js';
7
8
  import { TableRow } from './TableRow.js';
8
9
 
9
- const Table = Table$1;
10
- Table.Head = TableHead;
11
- Table.Body = TableBody;
12
- Table.Row = TableRow;
13
- Table.Cell = TableCell;
14
- Table.HeaderCell = TableHeaderCell;
10
+ const Table = Object.assign(Table$1, {
11
+ Head: TableHead,
12
+ Body: TableBody,
13
+ Row: TableRow,
14
+ Cell: TableCell,
15
+ HeaderCell: TableHeaderCell,
16
+ Foot: TableFoot,
17
+ });
15
18
  Table.displayName = 'Table';
16
19
  Table.Head.displayName = 'Table.Head';
17
20
  Table.Body.displayName = 'Table.Body';
18
21
  Table.Row.displayName = 'Table.Row';
19
22
  Table.Cell.displayName = 'Table.Cell';
20
23
  Table.HeaderCell.displayName = 'Table.HeaderCell';
24
+ Table.Foot.displayName = 'Table.Foot';
21
25
 
22
- export { Table, TableBody, TableCell, TableHead, TableHeaderCell, TableRow };
26
+ export { Table, TableBody, TableCell, TableFoot, TableHead, TableHeaderCell, TableRow };
@@ -20,7 +20,7 @@ const Context = createContext({});
20
20
  * </Tabs>
21
21
  * ```
22
22
  */
23
- const Tabs = forwardRef(function Tabs({ size = 'md', value, defaultValue, className, onChange, ...rest }, ref) {
23
+ const Tabs = forwardRef(function Tabs({ value, defaultValue, className, onChange, ...rest }, ref) {
24
24
  const isControlled = value !== undefined;
25
25
  const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
26
26
  let onValueChange = onChange;
@@ -35,8 +35,7 @@ const Tabs = forwardRef(function Tabs({ size = 'md', value, defaultValue, classN
35
35
  value,
36
36
  defaultValue,
37
37
  onChange: onValueChange,
38
- size,
39
- }, children: jsx("div", { className: cl('ds-tabs', className), "data-size": size, ref: ref, ...rest }) }));
38
+ }, children: jsx("div", { className: cl('ds-tabs', className), ref: ref, ...rest }) }));
40
39
  });
41
40
 
42
41
  export { Context, Tabs };
@@ -12,7 +12,7 @@ import { Context } from './Tabs.js';
12
12
  * ```
13
13
  */
14
14
  const TabsPanel = forwardRef(function TabsPanel({ children, value, className, ...rest }, ref) {
15
- const { value: tabsValue, size } = useContext(Context);
15
+ const { value: tabsValue } = useContext(Context);
16
16
  const active = value === tabsValue;
17
17
  return (jsx(Fragment, { children: active && (jsx("div", { className: cl('ds-tabs__panel', className), ref: ref, ...rest, children: children })) }));
18
18
  });
@@ -8,8 +8,8 @@ import { forwardRef } from 'react';
8
8
  * @example
9
9
  * <Tag color='success'>Success</Tag>
10
10
  */
11
- const Tag = forwardRef(function Tag({ size = 'md', color = 'neutral', className, ...rest }, ref) {
12
- return (jsx("span", { className: cl('ds-tag', className), "data-color": color, "data-size": size, ref: ref, ...rest }));
11
+ const Tag = forwardRef(function Tag({ color = 'neutral', className, ...rest }, ref) {
12
+ return (jsx("span", { className: cl('ds-tag', className), "data-color": color, ref: ref, ...rest }));
13
13
  });
14
14
 
15
15
  export { Tag };
@@ -14,7 +14,7 @@ const ToggleGroupContext = createContext({});
14
14
  * <ToggleGroup.Item value='3'>Toggle 3</ToggleGroup.Item>
15
15
  * </ToggleGroup>
16
16
  */
17
- const ToggleGroup = forwardRef(function ToggleGroup({ size = 'md', children, value, defaultValue, onChange, name, className, ...rest }, ref) {
17
+ const ToggleGroup = forwardRef(function ToggleGroup({ children, value, defaultValue, onChange, name, className, ...rest }, ref) {
18
18
  const nameId = useId();
19
19
  const isControlled = value !== undefined;
20
20
  const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
@@ -31,7 +31,6 @@ const ToggleGroup = forwardRef(function ToggleGroup({ size = 'md', children, val
31
31
  defaultValue,
32
32
  name: name ?? `togglegroup-name-${nameId}`,
33
33
  onChange: onValueChange,
34
- size,
35
34
  }, children: jsx(RovingFocusRoot, { asChild: true, activeValue: value, orientation: 'ambiguous', children: jsxs("div", { className: cl('ds-togglegroup', className), role: 'radiogroup', ref: ref, ...rest, children: [name && jsx("input", { type: 'hidden', name: name, value: value }), children] }) }) }));
36
35
  });
37
36