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

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 (285) hide show
  1. package/dist/cjs/components/Accordion/AccordionContent.js +1 -2
  2. package/dist/cjs/components/Accordion/AccordionHeading.js +4 -6
  3. package/dist/cjs/components/Accordion/AccordionItem.js +16 -52
  4. package/dist/cjs/components/Alert/Alert.js +1 -2
  5. package/dist/cjs/components/Avatar/Avatar.js +1 -7
  6. package/dist/cjs/components/Badge/Badge.js +1 -7
  7. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js +1 -2
  8. package/dist/cjs/components/Button/Button.js +4 -3
  9. package/dist/cjs/components/Card/Card.js +24 -6
  10. package/dist/cjs/components/Card/{CardMedia.js → CardBlock.js} +3 -4
  11. package/dist/cjs/components/Card/index.js +6 -17
  12. package/dist/cjs/components/Chip/Chips.js +50 -0
  13. package/dist/cjs/components/Chip/index.js +12 -11
  14. package/dist/cjs/components/Dropdown/DropdownHeading.js +2 -5
  15. package/dist/cjs/components/ErrorSummary/ErrorSummaryHeading.js +2 -2
  16. package/dist/cjs/components/{Typography/Heading → Heading}/Heading.js +2 -3
  17. package/dist/cjs/components/{Typography/Label → Label}/Label.js +2 -3
  18. package/dist/cjs/components/List/Lists.js +1 -2
  19. package/dist/cjs/components/Modal/Modal.js +45 -0
  20. package/dist/cjs/components/Modal/ModalBlock.js +14 -0
  21. package/dist/cjs/components/Modal/ModalContext.js +17 -0
  22. package/dist/cjs/components/Modal/ModalTrigger.js +4 -5
  23. package/dist/cjs/components/Modal/index.js +12 -22
  24. package/dist/cjs/components/Pagination/Pagination.js +9 -14
  25. package/dist/cjs/components/Pagination/PaginationButton.js +4 -4
  26. package/dist/cjs/components/Pagination/PaginationItem.js +1 -4
  27. package/dist/cjs/components/Pagination/PaginationList.js +2 -5
  28. package/dist/cjs/components/Pagination/index.js +5 -19
  29. package/dist/cjs/components/Pagination/usePagination.js +46 -51
  30. package/dist/cjs/components/{Typography/Paragraph → Paragraph}/Paragraph.js +2 -8
  31. package/dist/cjs/components/Popover/Popover.js +3 -4
  32. package/dist/cjs/components/SkipLink/SkipLink.js +4 -4
  33. package/dist/cjs/components/Table/Table.js +1 -2
  34. package/dist/cjs/components/Tabs/TabsPanel.js +1 -2
  35. package/dist/cjs/components/Tabs/TabsTab.js +1 -2
  36. package/dist/cjs/components/Tag/Tag.js +1 -2
  37. package/dist/cjs/components/Tooltip/Tooltip.js +5 -6
  38. package/dist/cjs/components/{Typography/ValidationMessage → ValidationMessage}/ValidationMessage.js +2 -2
  39. package/dist/cjs/components/form/CharacterCounter.js +1 -1
  40. package/dist/cjs/components/form/Checkbox/Checkbox.js +2 -2
  41. package/dist/cjs/components/form/Combobox/Combobox.js +1 -2
  42. package/dist/cjs/components/form/Combobox/Custom.js +1 -1
  43. package/dist/cjs/components/form/Combobox/Empty.js +1 -1
  44. package/dist/cjs/components/form/Combobox/Option/Option.js +1 -1
  45. package/dist/cjs/components/form/Combobox/internal/ComboboxChips.js +2 -2
  46. package/dist/cjs/components/form/Combobox/internal/ComboboxError.js +1 -1
  47. package/dist/cjs/components/form/Combobox/internal/ComboboxInput.js +2 -2
  48. package/dist/cjs/components/form/Combobox/internal/ComboboxLabel.js +2 -2
  49. package/dist/cjs/components/form/Fieldset/Fieldset.js +3 -3
  50. package/dist/cjs/components/form/Radio/Radio.js +2 -2
  51. package/dist/cjs/components/form/Search/Search.js +2 -2
  52. package/dist/cjs/components/form/Select/Select.js +3 -3
  53. package/dist/cjs/components/form/Switch/Switch.js +3 -3
  54. package/dist/cjs/components/form/Textarea/Textarea.js +3 -3
  55. package/dist/cjs/components/form/Textfield/Textfield.js +3 -3
  56. package/dist/cjs/components/loaders/Skeleton/Skeleton.js +4 -2
  57. package/dist/cjs/index.js +17 -39
  58. package/dist/esm/components/Accordion/AccordionContent.js +1 -2
  59. package/dist/esm/components/Accordion/AccordionHeading.js +4 -6
  60. package/dist/esm/components/Accordion/AccordionItem.js +17 -53
  61. package/dist/esm/components/Alert/Alert.js +1 -2
  62. package/dist/esm/components/Avatar/Avatar.js +1 -7
  63. package/dist/esm/components/Badge/Badge.js +1 -7
  64. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +1 -2
  65. package/dist/esm/components/Button/Button.js +5 -4
  66. package/dist/esm/components/Card/Card.js +25 -7
  67. package/dist/esm/components/Card/{CardMedia.js → CardBlock.js} +3 -4
  68. package/dist/esm/components/Card/index.js +6 -14
  69. package/dist/esm/components/Chip/Chips.js +45 -0
  70. package/dist/esm/components/Chip/index.js +9 -9
  71. package/dist/esm/components/Dropdown/DropdownHeading.js +3 -6
  72. package/dist/esm/components/ErrorSummary/ErrorSummaryHeading.js +2 -2
  73. package/dist/esm/components/{Typography/Heading → Heading}/Heading.js +2 -3
  74. package/dist/esm/components/Label/Label.js +18 -0
  75. package/dist/esm/components/List/Lists.js +1 -2
  76. package/dist/esm/components/Modal/Modal.js +43 -0
  77. package/dist/esm/components/Modal/ModalBlock.js +12 -0
  78. package/dist/esm/components/Modal/ModalContext.js +14 -0
  79. package/dist/esm/components/Modal/ModalTrigger.js +4 -5
  80. package/dist/esm/components/Modal/index.js +11 -18
  81. package/dist/esm/components/Pagination/Pagination.js +11 -17
  82. package/dist/esm/components/Pagination/PaginationButton.js +3 -3
  83. package/dist/esm/components/Pagination/PaginationItem.js +2 -5
  84. package/dist/esm/components/Pagination/PaginationList.js +3 -6
  85. package/dist/esm/components/Pagination/index.js +6 -16
  86. package/dist/esm/components/Pagination/usePagination.js +47 -52
  87. package/dist/esm/components/Paragraph/Paragraph.js +18 -0
  88. package/dist/esm/components/Popover/Popover.js +3 -4
  89. package/dist/esm/components/SkipLink/SkipLink.js +4 -4
  90. package/dist/esm/components/Table/Table.js +1 -2
  91. package/dist/esm/components/Tabs/TabsPanel.js +1 -2
  92. package/dist/esm/components/Tabs/TabsTab.js +1 -2
  93. package/dist/esm/components/Tag/Tag.js +1 -2
  94. package/dist/esm/components/Tooltip/Tooltip.js +5 -6
  95. package/dist/esm/components/{Typography/ValidationMessage → ValidationMessage}/ValidationMessage.js +2 -2
  96. package/dist/esm/components/form/CharacterCounter.js +1 -1
  97. package/dist/esm/components/form/Checkbox/Checkbox.js +2 -2
  98. package/dist/esm/components/form/Combobox/Combobox.js +2 -3
  99. package/dist/esm/components/form/Combobox/Custom.js +1 -1
  100. package/dist/esm/components/form/Combobox/Empty.js +1 -1
  101. package/dist/esm/components/form/Combobox/Option/Option.js +1 -1
  102. package/dist/esm/components/form/Combobox/internal/ComboboxChips.js +2 -2
  103. package/dist/esm/components/form/Combobox/internal/ComboboxError.js +1 -1
  104. package/dist/esm/components/form/Combobox/internal/ComboboxInput.js +2 -2
  105. package/dist/esm/components/form/Combobox/internal/ComboboxLabel.js +2 -2
  106. package/dist/esm/components/form/Fieldset/Fieldset.js +3 -3
  107. package/dist/esm/components/form/Radio/Radio.js +2 -2
  108. package/dist/esm/components/form/Search/Search.js +2 -2
  109. package/dist/esm/components/form/Select/Select.js +3 -3
  110. package/dist/esm/components/form/Switch/Switch.js +3 -3
  111. package/dist/esm/components/form/Textarea/Textarea.js +3 -3
  112. package/dist/esm/components/form/Textfield/Textfield.js +3 -3
  113. package/dist/esm/components/loaders/Skeleton/Skeleton.js +4 -2
  114. package/dist/esm/index.js +8 -20
  115. package/dist/types/components/Accordion/AccordionContent.d.ts.map +1 -1
  116. package/dist/types/components/Accordion/AccordionHeading.d.ts +2 -2
  117. package/dist/types/components/Accordion/AccordionHeading.d.ts.map +1 -1
  118. package/dist/types/components/Accordion/AccordionItem.d.ts +8 -8
  119. package/dist/types/components/Accordion/AccordionItem.d.ts.map +1 -1
  120. package/dist/types/components/Alert/Alert.d.ts.map +1 -1
  121. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  122. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  123. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  124. package/dist/types/components/Button/Button.d.ts.map +1 -1
  125. package/dist/types/components/Card/Card.d.ts +5 -15
  126. package/dist/types/components/Card/Card.d.ts.map +1 -1
  127. package/dist/types/components/Card/{CardMedia.d.ts → CardBlock.d.ts} +3 -3
  128. package/dist/types/components/Card/{CardMedia.d.ts.map → CardBlock.d.ts.map} +1 -1
  129. package/dist/types/components/Card/index.d.ts +12 -16
  130. package/dist/types/components/Card/index.d.ts.map +1 -1
  131. package/dist/types/components/Chip/Chips.d.ts +45 -0
  132. package/dist/types/components/Chip/Chips.d.ts.map +1 -0
  133. package/dist/types/components/Chip/index.d.ts +20 -21
  134. package/dist/types/components/Chip/index.d.ts.map +1 -1
  135. package/dist/types/components/Dropdown/DropdownHeading.d.ts.map +1 -1
  136. package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts +1 -2
  137. package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts.map +1 -1
  138. package/dist/types/components/ErrorSummary/index.d.ts +0 -1
  139. package/dist/types/components/ErrorSummary/index.d.ts.map +1 -1
  140. package/dist/types/components/{Typography/Heading → Heading}/Heading.d.ts +0 -4
  141. package/dist/types/components/Heading/Heading.d.ts.map +1 -0
  142. package/dist/types/components/Heading/index.d.ts.map +1 -0
  143. package/dist/types/components/{Typography/Label → Label}/Label.d.ts +0 -4
  144. package/dist/types/components/Label/Label.d.ts.map +1 -0
  145. package/dist/types/components/Label/index.d.ts.map +1 -0
  146. package/dist/types/components/List/Lists.d.ts.map +1 -1
  147. package/dist/types/components/Modal/Modal.d.ts +38 -0
  148. package/dist/types/components/Modal/Modal.d.ts.map +1 -0
  149. package/dist/types/components/{Card/CardFooter.d.ts → Modal/ModalBlock.d.ts} +3 -3
  150. package/dist/types/components/Modal/ModalBlock.d.ts.map +1 -0
  151. package/dist/types/components/Modal/ModalContext.d.ts +10 -0
  152. package/dist/types/components/Modal/ModalContext.d.ts.map +1 -0
  153. package/dist/types/components/Modal/ModalTrigger.d.ts.map +1 -1
  154. package/dist/types/components/Modal/index.d.ts +31 -20
  155. package/dist/types/components/Modal/index.d.ts.map +1 -1
  156. package/dist/types/components/Pagination/Pagination.d.ts +23 -36
  157. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  158. package/dist/types/components/Pagination/PaginationButton.d.ts +4 -3
  159. package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -1
  160. package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
  161. package/dist/types/components/Pagination/PaginationList.d.ts +1 -1
  162. package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -1
  163. package/dist/types/components/Pagination/index.d.ts +16 -17
  164. package/dist/types/components/Pagination/index.d.ts.map +1 -1
  165. package/dist/types/components/Pagination/usePagination.d.ts +41 -17
  166. package/dist/types/components/Pagination/usePagination.d.ts.map +1 -1
  167. package/dist/types/components/{Typography/Paragraph → Paragraph}/Paragraph.d.ts +2 -6
  168. package/dist/types/components/Paragraph/Paragraph.d.ts.map +1 -0
  169. package/dist/types/components/Paragraph/index.d.ts.map +1 -0
  170. package/dist/types/components/Popover/Popover.d.ts.map +1 -1
  171. package/dist/types/components/SkipLink/SkipLink.d.ts +7 -5
  172. package/dist/types/components/SkipLink/SkipLink.d.ts.map +1 -1
  173. package/dist/types/components/Table/Table.d.ts.map +1 -1
  174. package/dist/types/components/Tabs/TabsPanel.d.ts.map +1 -1
  175. package/dist/types/components/Tabs/TabsTab.d.ts.map +1 -1
  176. package/dist/types/components/Tag/Tag.d.ts +2 -5
  177. package/dist/types/components/Tag/Tag.d.ts.map +1 -1
  178. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  179. package/dist/types/components/{Typography/ValidationMessage → ValidationMessage}/ValidationMessage.d.ts +0 -4
  180. package/dist/types/components/ValidationMessage/ValidationMessage.d.ts.map +1 -0
  181. package/dist/types/components/ValidationMessage/index.d.ts.map +1 -0
  182. package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
  183. package/dist/types/components/form/Combobox/Combobox.d.ts.map +1 -1
  184. package/dist/types/components/form/Combobox/internal/ComboboxLabel.d.ts.map +1 -1
  185. package/dist/types/components/form/Fieldset/Fieldset.d.ts.map +1 -1
  186. package/dist/types/components/form/Radio/Radio.d.ts.map +1 -1
  187. package/dist/types/components/form/Search/Search.d.ts.map +1 -1
  188. package/dist/types/components/form/Select/Select.d.ts.map +1 -1
  189. package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
  190. package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
  191. package/dist/types/components/form/Textfield/Textfield.d.ts.map +1 -1
  192. package/dist/types/components/index.d.ts +4 -1
  193. package/dist/types/components/index.d.ts.map +1 -1
  194. package/dist/types/components/loaders/Skeleton/Skeleton.d.ts +8 -17
  195. package/dist/types/components/loaders/Skeleton/Skeleton.d.ts.map +1 -1
  196. package/package.json +3 -3
  197. package/dist/cjs/components/Card/CardContent.js +0 -16
  198. package/dist/cjs/components/Card/CardFooter.js +0 -16
  199. package/dist/cjs/components/Card/CardHeader.js +0 -16
  200. package/dist/cjs/components/Chip/Group/Group.js +0 -15
  201. package/dist/cjs/components/Chip/Removable/Removable.js +0 -17
  202. package/dist/cjs/components/Chip/Toggle/Toggle.js +0 -18
  203. package/dist/cjs/components/Modal/ModaContent.js +0 -15
  204. package/dist/cjs/components/Modal/ModalDialog.js +0 -73
  205. package/dist/cjs/components/Modal/ModalFooter.js +0 -15
  206. package/dist/cjs/components/Modal/ModalHeader.js +0 -20
  207. package/dist/cjs/components/Modal/ModalRoot.js +0 -31
  208. package/dist/cjs/components/Modal/useModalState.js +0 -30
  209. package/dist/cjs/components/Modal/useScrollLock.js +0 -29
  210. package/dist/cjs/components/Pagination/PaginationEllipsis.js +0 -15
  211. package/dist/cjs/components/Pagination/PaginationNextPrev.js +0 -16
  212. package/dist/cjs/components/Pagination/PaginationRoot.js +0 -18
  213. package/dist/cjs/components/Typography/Ingress/Ingress.js +0 -21
  214. package/dist/esm/components/Card/CardContent.js +0 -14
  215. package/dist/esm/components/Card/CardFooter.js +0 -14
  216. package/dist/esm/components/Card/CardHeader.js +0 -14
  217. package/dist/esm/components/Chip/Group/Group.js +0 -12
  218. package/dist/esm/components/Chip/Removable/Removable.js +0 -15
  219. package/dist/esm/components/Chip/Toggle/Toggle.js +0 -16
  220. package/dist/esm/components/Modal/ModaContent.js +0 -13
  221. package/dist/esm/components/Modal/ModalDialog.js +0 -71
  222. package/dist/esm/components/Modal/ModalFooter.js +0 -13
  223. package/dist/esm/components/Modal/ModalHeader.js +0 -18
  224. package/dist/esm/components/Modal/ModalRoot.js +0 -28
  225. package/dist/esm/components/Modal/useModalState.js +0 -28
  226. package/dist/esm/components/Modal/useScrollLock.js +0 -27
  227. package/dist/esm/components/Pagination/PaginationEllipsis.js +0 -13
  228. package/dist/esm/components/Pagination/PaginationNextPrev.js +0 -13
  229. package/dist/esm/components/Pagination/PaginationRoot.js +0 -15
  230. package/dist/esm/components/Typography/Ingress/Ingress.js +0 -19
  231. package/dist/esm/components/Typography/Label/Label.js +0 -19
  232. package/dist/esm/components/Typography/Paragraph/Paragraph.js +0 -24
  233. package/dist/types/components/Card/CardContent.d.ts +0 -16
  234. package/dist/types/components/Card/CardContent.d.ts.map +0 -1
  235. package/dist/types/components/Card/CardFooter.d.ts.map +0 -1
  236. package/dist/types/components/Card/CardHeader.d.ts +0 -16
  237. package/dist/types/components/Card/CardHeader.d.ts.map +0 -1
  238. package/dist/types/components/Chip/Group/Group.d.ts +0 -20
  239. package/dist/types/components/Chip/Group/Group.d.ts.map +0 -1
  240. package/dist/types/components/Chip/Removable/Removable.d.ts +0 -17
  241. package/dist/types/components/Chip/Removable/Removable.d.ts.map +0 -1
  242. package/dist/types/components/Chip/Toggle/Toggle.d.ts +0 -33
  243. package/dist/types/components/Chip/Toggle/Toggle.d.ts.map +0 -1
  244. package/dist/types/components/Modal/ModaContent.d.ts +0 -16
  245. package/dist/types/components/Modal/ModaContent.d.ts.map +0 -1
  246. package/dist/types/components/Modal/ModalDialog.d.ts +0 -38
  247. package/dist/types/components/Modal/ModalDialog.d.ts.map +0 -1
  248. package/dist/types/components/Modal/ModalFooter.d.ts +0 -16
  249. package/dist/types/components/Modal/ModalFooter.d.ts.map +0 -1
  250. package/dist/types/components/Modal/ModalHeader.d.ts +0 -44
  251. package/dist/types/components/Modal/ModalHeader.d.ts.map +0 -1
  252. package/dist/types/components/Modal/ModalRoot.d.ts +0 -17
  253. package/dist/types/components/Modal/ModalRoot.d.ts.map +0 -1
  254. package/dist/types/components/Modal/useModalState.d.ts +0 -2
  255. package/dist/types/components/Modal/useModalState.d.ts.map +0 -1
  256. package/dist/types/components/Modal/useScrollLock.d.ts +0 -2
  257. package/dist/types/components/Modal/useScrollLock.d.ts.map +0 -1
  258. package/dist/types/components/Pagination/PaginationEllipsis.d.ts +0 -4
  259. package/dist/types/components/Pagination/PaginationEllipsis.d.ts.map +0 -1
  260. package/dist/types/components/Pagination/PaginationNextPrev.d.ts +0 -10
  261. package/dist/types/components/Pagination/PaginationNextPrev.d.ts.map +0 -1
  262. package/dist/types/components/Pagination/PaginationRoot.d.ts +0 -53
  263. package/dist/types/components/Pagination/PaginationRoot.d.ts.map +0 -1
  264. package/dist/types/components/Typography/Heading/Heading.d.ts.map +0 -1
  265. package/dist/types/components/Typography/Heading/index.d.ts.map +0 -1
  266. package/dist/types/components/Typography/Ingress/Ingress.d.ts +0 -34
  267. package/dist/types/components/Typography/Ingress/Ingress.d.ts.map +0 -1
  268. package/dist/types/components/Typography/Ingress/index.d.ts +0 -2
  269. package/dist/types/components/Typography/Ingress/index.d.ts.map +0 -1
  270. package/dist/types/components/Typography/Label/Label.d.ts.map +0 -1
  271. package/dist/types/components/Typography/Label/index.d.ts.map +0 -1
  272. package/dist/types/components/Typography/Paragraph/Paragraph.d.ts.map +0 -1
  273. package/dist/types/components/Typography/Paragraph/index.d.ts.map +0 -1
  274. package/dist/types/components/Typography/ValidationMessage/ValidationMessage.d.ts.map +0 -1
  275. package/dist/types/components/Typography/ValidationMessage/index.d.ts.map +0 -1
  276. package/dist/types/components/Typography/index.d.ts +0 -6
  277. package/dist/types/components/Typography/index.d.ts.map +0 -1
  278. package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts +0 -9
  279. package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts.map +0 -1
  280. package/dist/types/utilities/AnimateHeight/index.d.ts +0 -3
  281. package/dist/types/utilities/AnimateHeight/index.d.ts.map +0 -1
  282. /package/dist/types/components/{Typography/Heading → Heading}/index.d.ts +0 -0
  283. /package/dist/types/components/{Typography/Label → Label}/index.d.ts +0 -0
  284. /package/dist/types/components/{Typography/Paragraph → Paragraph}/index.d.ts +0 -0
  285. /package/dist/types/components/{Typography/ValidationMessage → ValidationMessage}/index.d.ts +0 -0
@@ -3,7 +3,6 @@
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var react = require('react');
6
- var Paragraph = require('../Typography/Paragraph/Paragraph.js');
7
6
 
8
7
  /**
9
8
  * Accordion content component, contains the content of the accordion item.
@@ -11,7 +10,7 @@ var Paragraph = require('../Typography/Paragraph/Paragraph.js');
11
10
  * <AccordionContent>Content</AccordionContent>
12
11
  */
13
12
  const AccordionContent = react.forwardRef(function AccordionContent(rest, ref) {
14
- return (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, size: 'sm', children: jsxRuntime.jsx("div", { ref: ref, ...rest }) }));
13
+ return jsxRuntime.jsx("div", { ref: ref, ...rest });
15
14
  });
16
15
 
17
16
  exports.AccordionContent = AccordionContent;
@@ -2,18 +2,16 @@
2
2
  'use strict';
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
- var cl = require('clsx/lite');
6
5
  var react = require('react');
7
- var Paragraph = require('../Typography/Paragraph/Paragraph.js');
8
6
 
9
7
  /**
10
- * Accordion header component, contains a button to toggle the content.
8
+ * Accordion heading component, contains a button to toggle the content.
11
9
  * @example
12
- * <AccordionHeader>Header</AccordionHeader>
10
+ * <AccordionHeading>Heading</AccordionHeading>
13
11
  */
14
12
  const AccordionHeading = react.forwardRef(function AccordionHeading({ className, ...rest }, ref) {
15
- return (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, size: 'sm', children: jsxRuntime.jsx("u-summary", { class: cl('ds-focus ds-paragraph ds-paragraph--sm ds-line-height--md', // Very TMP fix awaiting CSS modules
16
- className), ref: ref, ...rest }) }));
13
+ /* Set `className` as `class` so react is happy */
14
+ return jsxRuntime.jsx("u-summary", { ref: ref, class: className, ...rest });
17
15
  });
18
16
 
19
17
  exports.AccordionHeading = AccordionHeading;
@@ -8,71 +8,35 @@ var react = require('react');
8
8
  require('@u-elements/u-details');
9
9
 
10
10
  /**
11
- * Accordion item component, contains `Accordion.Header` and `Accordion.Content` components.
11
+ * Accordion item component, contains `Accordion.Heading` and `Accordion.Content` components.
12
12
  * @example
13
13
  * <AccordionItem>
14
- * <AccordionHeader>Header</AccordionHeader>
14
+ * <AccordionHeading>Header</AccordionHeading>
15
15
  * <AccordionContent>Content</AccordionContent>
16
16
  * </AccordionItem>
17
17
  */
18
- const AccordionItem = react.forwardRef(function AccordionItem({ className, open, defaultOpen = false, onFound, ...rest }, ref) {
19
- const [internalOpen, setInternalOpen] = react.useState(open ?? defaultOpen);
20
- const initialOpen = react.useRef(internalOpen); // Allow rendering initial open state on server, but animate in browser
21
- const controlledOpen = react.useRef(internalOpen); // Using ref so we can access it inside useEffect without unbinding/binding event listeners
18
+ const AccordionItem = react.forwardRef(function AccordionItem({ className, open, defaultOpen = false, onToggle, ...rest }, ref) {
22
19
  const detailsRef = react.useRef(null);
20
+ const initialOpen = react.useRef(defaultOpen); // Allow rendering defaultOpen on server, but only render once on client
23
21
  const mergedRefs = react$1.useMergeRefs([detailsRef, ref]);
24
- controlledOpen.current = open ?? internalOpen; // Update controlledOpen on prop change
25
- // Control state with a useEffect to animate on prop change and prevent native <details> toggle
22
+ const onToggleRef = react.useRef(onToggle); // Using ref to enable access inside useEffect without re-binding event listeners
23
+ const openRef = react.useRef(open);
24
+ onToggleRef.current = onToggle;
25
+ openRef.current = open;
26
+ // Provide onToggle event and controlled state
26
27
  react.useEffect(() => {
27
28
  const details = detailsRef.current;
28
- const summary = details?.querySelector(':scope > :is(summary,u-summary)');
29
- const handleSummaryClick = (event) => {
30
- event?.preventDefault(); // Prevent native <details> toggle so we can animate
31
- setInternalOpen((open) => !open);
32
- };
33
- const handleToggle = () => {
34
- if (!details || details.open === controlledOpen.current)
29
+ const handleToggle = (event) => {
30
+ if (!details || details?.open === openRef.current)
35
31
  return;
36
- onFound?.();
37
- setInternalOpen(details?.open || false);
38
- window.requestAnimationFrame(() => {
39
- details.open = controlledOpen.current;
40
- }); // Let onFound run before correcting state
32
+ onToggleRef.current?.(event);
33
+ if (openRef.current !== undefined)
34
+ details.open = openRef.current; // Don't update DOM unless controlled state changes
41
35
  };
42
36
  details?.addEventListener('toggle', handleToggle, true);
43
- summary?.addEventListener('click', handleSummaryClick);
44
- return () => {
45
- details?.removeEventListener('toggle', handleToggle, true);
46
- summary?.removeEventListener('click', handleSummaryClick);
47
- };
37
+ return () => details?.removeEventListener('toggle', handleToggle, true);
48
38
  }, []);
49
- react.useEffect(() => {
50
- animateHeight(detailsRef.current, controlledOpen.current);
51
- }, [controlledOpen.current]);
52
- return (jsxRuntime.jsx("u-details", { class: cl('ds-accordion__item', className), open: initialOpen.current || undefined, ref: mergedRefs, ...rest }));
39
+ return (jsxRuntime.jsx("u-details", { class: cl('ds-accordion__item', className), open: (open ?? initialOpen.current) || undefined, ref: mergedRefs, ...rest }));
53
40
  });
54
- const animateHeight = (details, open) => {
55
- const content = details?.querySelector(':scope > :not(summary, u-summary)');
56
- const hasContent = content instanceof HTMLElement;
57
- const hasAnimate = details && 'animate' in details;
58
- const hasReducedMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)').matches;
59
- details?.setAttribute('data-chevron-open', `${open}`); // Make flip on click
60
- if (hasReducedMotion || !hasAnimate || !hasContent) {
61
- if (details)
62
- details.open = open;
63
- }
64
- else if (details.open !== open) {
65
- details.open = true;
66
- const opened = `${content.scrollHeight}px`;
67
- content.style.overflow = 'clip'; // Clip content while animating
68
- content.animate({
69
- height: [open ? '0px' : opened, open ? opened : '0px'],
70
- paddingBlock: [open ? '0px' : '', open ? '' : '0px'],
71
- }, { duration: 400, easing: 'ease-in-out' }).onfinish = () => {
72
- content.style.removeProperty('overflow'); // Restore overlow
73
- details.open = open;
74
- };
75
- }
76
- };
77
41
 
78
42
  exports.AccordionItem = AccordionItem;
@@ -4,7 +4,6 @@
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var cl = require('clsx/lite');
6
6
  var react = require('react');
7
- var Paragraph = require('../Typography/Paragraph/Paragraph.js');
8
7
 
9
8
  /**
10
9
  * Alerts are used to inform users about important information, warnings, errors, or success.
@@ -12,7 +11,7 @@ var Paragraph = require('../Typography/Paragraph/Paragraph.js');
12
11
  * <Alert color='info'>Dette er en informasjonsmelding</Alert>
13
12
  */
14
13
  const Alert = react.forwardRef(function Alert({ color = 'info', size = 'md', className, ...rest }, ref) {
15
- return (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, size: size, children: jsxRuntime.jsx("div", { className: cl('ds-alert', className), "data-color": color, "data-size": size, ref: ref, ...rest }) }));
14
+ return (jsxRuntime.jsx("div", { className: cl('ds-alert', className), "data-color": color, "data-size": size, ref: ref, ...rest }));
16
15
  });
17
16
 
18
17
  exports.Alert = Alert;
@@ -6,12 +6,6 @@ var reactSlot = require('@radix-ui/react-slot');
6
6
  var cl = require('clsx/lite');
7
7
  var react = require('react');
8
8
 
9
- const fontSizeMap = {
10
- xs: 'ds-paragraph--xs',
11
- sm: 'ds-heading--2xs',
12
- md: 'ds-heading--sm',
13
- lg: 'ds-heading--md',
14
- };
15
9
  /**
16
10
  * Avatars are used to represent people or entities.
17
11
  *
@@ -30,7 +24,7 @@ const fontSizeMap = {
30
24
  */
31
25
  const Avatar = react.forwardRef(function Avatar({ 'aria-label': ariaLabel, color = 'accent', size = 'md', variant = 'circle', className, children, ...rest }, ref) {
32
26
  const Component = children && typeof children !== 'string' ? reactSlot.Slot : react.Fragment;
33
- return (jsxRuntime.jsx("span", { ref: ref, className: cl('ds-avatar', fontSizeMap[size], className), "data-variant": variant, "data-color": color, "data-size": size, role: 'img', "aria-label": ariaLabel, ...rest, children: jsxRuntime.jsx(Component, { ...(children ? { 'aria-hidden': true } : {}), children: children }) }));
27
+ return (jsxRuntime.jsx("span", { ref: ref, className: cl('ds-avatar', className), "data-variant": variant, "data-color": color, "data-size": size, role: 'img', "aria-label": ariaLabel, ...rest, children: jsxRuntime.jsx(Component, { ...(children ? { 'aria-hidden': true } : {}), children: children }) }));
34
28
  });
35
29
 
36
30
  exports.Avatar = Avatar;
@@ -4,13 +4,7 @@
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var cl = require('clsx/lite');
6
6
  var react = require('react');
7
- var Paragraph = require('../Typography/Paragraph/Paragraph.js');
8
7
 
9
- const paragraphSizeMap = {
10
- sm: 'xs',
11
- md: 'sm',
12
- lg: 'md',
13
- };
14
8
  /**
15
9
  * `Badge` is a non-interactive component for displaying status with or without numbers.
16
10
  *
@@ -27,7 +21,7 @@ const paragraphSizeMap = {
27
21
  * ```
28
22
  */
29
23
  const Badge = react.forwardRef(function Badge({ className, color = 'accent', count, maxCount, overlap = 'rectangle', placement = 'top-right', size = 'md', ...rest }, ref) {
30
- return (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, variant: 'short', size: paragraphSizeMap[size], children: jsxRuntime.jsx("span", { className: cl('ds-badge', className), "data-color": color, "data-count": count && maxCount && count > maxCount ? `${maxCount}+` : count, "data-overlap": rest.children ? overlap : null, "data-placement": rest.children ? placement : null, "data-size": size, ref: ref, ...rest }) }));
24
+ return (jsxRuntime.jsx("span", { className: cl('ds-badge', className), "data-color": color, "data-count": count && maxCount && count > maxCount ? `${maxCount}+` : count, "data-overlap": rest.children ? overlap : null, "data-placement": rest.children ? placement : null, "data-size": size, ref: ref, ...rest }));
31
25
  });
32
26
 
33
27
  exports.Badge = Badge;
@@ -4,8 +4,7 @@
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var cl = require('clsx/lite');
6
6
  var react = require('react');
7
- var Paragraph = require('../Typography/Paragraph/Paragraph.js');
8
7
 
9
- const Breadcrumbs = react.forwardRef(({ 'aria-label': ariaLabel = 'Du er her:', className, size, ...rest }, ref) => (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, size: size, children: jsxRuntime.jsx("nav", { "aria-label": ariaLabel, className: cl('ds-breadcrumbs', className), "data-size": size, ref: ref, ...rest }) })));
8
+ const Breadcrumbs = react.forwardRef(({ 'aria-label': ariaLabel = 'Du er her:', className, size, ...rest }, ref) => (jsxRuntime.jsx("nav", { "aria-label": ariaLabel, className: cl('ds-breadcrumbs', className), "data-size": size, ref: ref, ...rest })));
10
9
 
11
10
  exports.Breadcrumbs = Breadcrumbs;
@@ -5,7 +5,6 @@ var jsxRuntime = require('react/jsx-runtime');
5
5
  var reactSlot = require('@radix-ui/react-slot');
6
6
  var cl = require('clsx/lite');
7
7
  var react = require('react');
8
- var Paragraph = require('../Typography/Paragraph/Paragraph.js');
9
8
  var Spinner = require('../loaders/Spinner/Spinner.js');
10
9
 
11
10
  /**
@@ -17,8 +16,10 @@ const Button = react.forwardRef(function Button({ asChild, className, children,
17
16
  const Component = asChild ? reactSlot.Slot : 'button';
18
17
  const spinnerColor = color === 'accent' ? color : 'neutral';
19
18
  // Fallbacks to undefined to prevent rendering attribute="false"
20
- return (jsxRuntime.jsx(Paragraph.Paragraph, { variant: 'short', size: size, asChild: true, children: jsxRuntime.jsxs(Component, { "aria-busy": Boolean(loading) || undefined, className: cl('ds-button', className), "data-color": color, "data-icon": icon || undefined, "data-size": size, "data-variant": variant, ref: ref, ...(asChild ? { asChild: true } : { type: 'button' }), ...rest, children: [loading === true ? (jsxRuntime.jsx(Spinner.Spinner, { "aria-hidden": 'true', color: spinnerColor, size: 'sm', title: '' })) : (loading // Allow custom loading spinner
21
- ), jsxRuntime.jsx(reactSlot.Slottable, { children: children })] }) }));
19
+ return (jsxRuntime.jsxs(Component, { "aria-busy": Boolean(loading) || undefined, className: cl('ds-button', className), "data-color": color, "data-icon": icon || undefined, "data-size": size, "data-variant": variant, ref: ref,
20
+ /* don't set type when we use `asChild` */
21
+ type: asChild ? undefined : 'button', ...rest, children: [loading === true ? (jsxRuntime.jsx(Spinner.Spinner, { "aria-hidden": 'true', color: spinnerColor, size: 'sm', title: '' })) : (loading // Allow custom loading spinner
22
+ ), jsxRuntime.jsx(reactSlot.Slottable, { children: children })] }));
22
23
  });
23
24
 
24
25
  exports.Button = Button;
@@ -2,6 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
+ var react$1 = require('@floating-ui/react');
5
6
  var reactSlot = require('@radix-ui/react-slot');
6
7
  var cl = require('clsx/lite');
7
8
  var react = require('react');
@@ -10,15 +11,32 @@ var react = require('react');
10
11
  * Card component to present content in a structured way.
11
12
  * @example
12
13
  * <Card>
13
- * <Card.Header>Header</Card.Header>
14
- * <Card.Content>Content</Card.Content>
15
- * <Card.Footer>Footer</Card.Footer>
14
+ * <Card.Block>Header</Card.Block>
15
+ * <Card.Block>Content</Card.Block>
16
+ * <Card.Block>Footer</Card.Block>
16
17
  * </Card>
17
18
  */
18
- const Card = react.forwardRef(({ isLink = false, asChild = false, color = 'neutral', className, ...rest }, ref) => {
19
+ const Card = react.forwardRef(function Card({ asChild = false, color = 'neutral', className, ...rest }, ref) {
19
20
  const Component = asChild ? reactSlot.Slot : 'div';
20
- return (jsxRuntime.jsx(Component, { ref: ref, className: cl(`ds-card`, isLink && `ds-focus`, className), "data-color": color, "data-link": isLink ? '' : undefined, ...rest }));
21
+ const cardRef = react.useRef(null);
22
+ const mergedRefs = react$1.useMergeRefs([cardRef, ref]);
23
+ // Forward click on card to heading links for better accessibility
24
+ // https://adrianroselli.com/2020/02/block-links-cards-clickable-regions-etc.html
25
+ react.useEffect(() => {
26
+ const card = cardRef.current;
27
+ const handleClick = ({ ctrlKey, metaKey, target }) => {
28
+ const link = card?.querySelector(':is(h1,h2,h3,h4,h5,h6) a');
29
+ if (!link || link?.contains(target))
30
+ return; // Let links handle their own clicks
31
+ if (ctrlKey || metaKey)
32
+ window.open(link.href, '', 'noreferrer');
33
+ else
34
+ link.click(); // Using link.click instead of window.location.href as this will trigger the browser's handling of rel=, target=, etc.
35
+ };
36
+ card?.addEventListener('click', handleClick);
37
+ return () => card?.removeEventListener('click', handleClick);
38
+ }, []);
39
+ return (jsxRuntime.jsx(Component, { className: cl(`ds-card`, className), "data-color": color, ref: mergedRefs, ...rest }));
21
40
  });
22
- Card.displayName = 'Card';
23
41
 
24
42
  exports.Card = Card;
@@ -6,10 +6,9 @@ var reactSlot = require('@radix-ui/react-slot');
6
6
  var cl = require('clsx/lite');
7
7
  var react = require('react');
8
8
 
9
- const CardMedia = react.forwardRef(({ asChild, className, ...rest }, ref) => {
9
+ const CardBlock = react.forwardRef(function CardBlock({ asChild, className, ...rest }, ref) {
10
10
  const Component = asChild ? reactSlot.Slot : 'div';
11
- return (jsxRuntime.jsx(Component, { className: cl(`ds-card__media`, className), ref: ref, ...rest }));
11
+ return (jsxRuntime.jsx(Component, { className: cl(`ds-card__block`, className), ref: ref, ...rest }));
12
12
  });
13
- CardMedia.displayName = 'CardMedia';
14
13
 
15
- exports.CardMedia = CardMedia;
14
+ exports.CardBlock = CardBlock;
@@ -2,23 +2,12 @@
2
2
  'use strict';
3
3
 
4
4
  var Card$1 = require('./Card.js');
5
- var CardContent = require('./CardContent.js');
6
- var CardFooter = require('./CardFooter.js');
7
- var CardHeader = require('./CardHeader.js');
8
- var CardMedia = require('./CardMedia.js');
5
+ var CardBlock = require('./CardBlock.js');
9
6
 
10
- const Card = Card$1.Card;
11
- Card.Header = CardHeader.CardHeader;
12
- Card.Content = CardContent.CardContent;
13
- Card.Footer = CardFooter.CardFooter;
14
- Card.Media = CardMedia.CardMedia;
15
- Card.Header.displayName = 'Card.Header';
16
- Card.Content.displayName = 'Card.Content';
17
- Card.Footer.displayName = 'Card.Footer';
18
- Card.Media.displayName = 'Card.Media';
7
+ const Card = Object.assign(Card$1.Card, {
8
+ Block: CardBlock.CardBlock,
9
+ });
10
+ Card.Block.displayName = 'Card.Block';
19
11
 
20
- exports.CardContent = CardContent.CardContent;
21
- exports.CardFooter = CardFooter.CardFooter;
22
- exports.CardHeader = CardHeader.CardHeader;
23
- exports.CardMedia = CardMedia.CardMedia;
12
+ exports.CardBlock = CardBlock.CardBlock;
24
13
  exports.Card = Card;
@@ -0,0 +1,50 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var reactSlot = require('@radix-ui/react-slot');
6
+ var cl = require('clsx/lite');
7
+ var react = require('react');
8
+
9
+ /**
10
+ * Chip.Button used for interaction
11
+ * @example
12
+ * <Chip.Button>Click me</Chip.Button>
13
+ */
14
+ const ChipButton = react.forwardRef(function ChipButton({ asChild, className, size, ...rest }, ref) {
15
+ const Component = asChild ? reactSlot.Slot : 'button';
16
+ return (jsxRuntime.jsx(Component, { className: cl('ds-chip', className), "data-size": size, type: asChild ? undefined : 'button', ref: ref, ...rest }));
17
+ });
18
+ /**
19
+ * Chip.Removable used for interaction
20
+ * @example
21
+ * <Chip.Removable>Click to remove me</Chip.Removable>
22
+ */
23
+ const ChipRemovable = react.forwardRef(function ChipRemovable(props, ref) {
24
+ return jsxRuntime.jsx(ChipButton, { "data-removable": true, ref: ref, ...props });
25
+ });
26
+ /**
27
+ * Chip.Checkbox used for multiselection
28
+ * @example
29
+ * <Chip.Checkbox name="language" value="nynorsk">Nynorsk</Chip.Checkbox>
30
+ * <Chip.Checkbox name="language" value="bokmål">Bokmål</Chip.Checkbox>
31
+ */
32
+ const ChipCheckbox = react.forwardRef(function ChipCheckbox({ asChild, children, className, size, ...rest }, ref) {
33
+ const inputType = rest.type ?? 'checkbox';
34
+ const Component = asChild ? reactSlot.Slot : 'label';
35
+ return (jsxRuntime.jsxs(Component, { className: cl('ds-chip', className), "data-size": size, ref: ref, children: [jsxRuntime.jsx("input", { ...rest, type: inputType }), jsxRuntime.jsx(reactSlot.Slottable, { children: children })] }));
36
+ });
37
+ /**
38
+ * Chip.Radio used for single selection
39
+ * @example
40
+ * <Chip.Radio name="language" value="nynorsk">Nynorsk</Chip.Radio>
41
+ * <Chip.Radio name="language" value="bokmål">Bokmål</Chip.Radio>
42
+ */
43
+ const ChipRadio = react.forwardRef(function ChipRadio(props, ref) {
44
+ return jsxRuntime.jsx(ChipCheckbox, { ref, type: 'radio', ...props });
45
+ });
46
+
47
+ exports.ChipButton = ChipButton;
48
+ exports.ChipCheckbox = ChipCheckbox;
49
+ exports.ChipRadio = ChipRadio;
50
+ exports.ChipRemovable = ChipRemovable;
@@ -1,20 +1,21 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var Group = require('./Group/Group.js');
5
- var Removable = require('./Removable/Removable.js');
6
- var Toggle = require('./Toggle/Toggle.js');
4
+ var Chips = require('./Chips.js');
7
5
 
8
6
  const Chip = {
9
- Group: Group.Group,
10
- Removable: Removable.RemovableChip,
11
- Toggle: Toggle.ToggleChip,
7
+ Button: Chips.ChipButton,
8
+ Checkbox: Chips.ChipCheckbox,
9
+ Radio: Chips.ChipRadio,
10
+ Removable: Chips.ChipRemovable,
12
11
  };
13
- Chip.Group.displayName = 'Chip.Group';
12
+ Chip.Button.displayName = 'Chip.Button';
13
+ Chip.Checkbox.displayName = 'Chip.Checkbox';
14
+ Chip.Radio.displayName = 'Chip.Radio';
14
15
  Chip.Removable.displayName = 'Chip.Removable';
15
- Chip.Toggle.displayName = 'Chip.Toggle';
16
16
 
17
- exports.ChipGroup = Group.Group;
18
- exports.ChipRemovable = Removable.RemovableChip;
19
- exports.ChipToggle = Toggle.ToggleChip;
17
+ exports.ChipButton = Chips.ChipButton;
18
+ exports.ChipCheckbox = Chips.ChipCheckbox;
19
+ exports.ChipRadio = Chips.ChipRadio;
20
+ exports.ChipRemovable = Chips.ChipRemovable;
20
21
  exports.Chip = Chip;
@@ -4,12 +4,9 @@
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var cl = require('clsx/lite');
6
6
  var react = require('react');
7
- var Dropdown = require('./Dropdown.js');
8
- var Paragraph = require('../Typography/Paragraph/Paragraph.js');
9
7
 
10
- const DropdownHeading = react.forwardRef(function DropdownHeading({ children, className, ...rest }, ref) {
11
- const { size } = react.useContext(Dropdown.DropdownCtx);
12
- return (jsxRuntime.jsx(Paragraph.Paragraph, { asChild: true, size: size, children: jsxRuntime.jsx("h2", { ref: ref, className: cl('ds-dropdown__heading', className), ...rest, children: children }) }));
8
+ const DropdownHeading = react.forwardRef(function DropdownHeading({ className, ...rest }, ref) {
9
+ return (jsxRuntime.jsx("h2", { ref: ref, className: cl('ds-dropdown__heading', className), ...rest }));
13
10
  });
14
11
 
15
12
  exports.DropdownHeading = DropdownHeading;
@@ -4,7 +4,7 @@
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var react = require('react');
6
6
  var ErrorSummary = require('./ErrorSummary.js');
7
- var Heading = require('../Typography/Heading/Heading.js');
7
+ var Heading = require('../Heading/Heading.js');
8
8
 
9
9
  const HEADING_SIZE_MAP = {
10
10
  sm: '2xs',
@@ -17,7 +17,7 @@ const ErrorSummaryHeading = react.forwardRef(function ErrorSummaryHeading({ clas
17
17
  if (id && headingId !== id)
18
18
  setHeadingId(id);
19
19
  }, [headingId, id, setHeadingId]);
20
- return (jsxRuntime.jsx(Heading.Heading, { id: headingId, size: HEADING_SIZE_MAP[size ?? 'md'], spacing: true, ref: ref, ...rest }));
20
+ return (jsxRuntime.jsx(Heading.Heading, { id: headingId, size: HEADING_SIZE_MAP[size ?? 'md'], ref: ref, ...rest }));
21
21
  });
22
22
 
23
23
  exports.ErrorSummaryHeading = ErrorSummaryHeading;
@@ -12,10 +12,9 @@ var react = require('react');
12
12
  * @example
13
13
  * <Heading size='lg' level={2}>Heading</Heading>
14
14
  */
15
- const Heading = react.forwardRef(({ size = 'xl', level = 2, spacing = false, className, asChild, ...rest }, ref) => {
15
+ const Heading = react.forwardRef(function Heading({ size = 'xl', level = 2, className, asChild, ...rest }, ref) {
16
16
  const Component = asChild ? reactSlot.Slot : `h${level}`;
17
- return (jsxRuntime.jsx(Component, { ref: ref, className: cl('ds-heading', `ds-heading--${size}`, spacing && 'ds-heading--spacing', className), ...rest }));
17
+ return (jsxRuntime.jsx(Component, { className: cl(`ds-heading`, className), "data-size": size, ref: ref, ...rest }));
18
18
  });
19
- Heading.displayName = 'Heading';
20
19
 
21
20
  exports.Heading = Heading;
@@ -12,10 +12,9 @@ var react = require('react');
12
12
  * @example
13
13
  * <Label size='lg'>Label</Label>
14
14
  */
15
- const Label = react.forwardRef(({ className, spacing, size = 'md', weight = 'medium', asChild, ...rest }, ref) => {
15
+ const Label = react.forwardRef(function Label({ className, size = 'md', weight = 'medium', asChild, ...rest }, ref) {
16
16
  const Component = asChild ? reactSlot.Slot : 'label';
17
- return (jsxRuntime.jsx(Component, { ref: ref, className: cl('ds-label', `ds-label--${size}`, spacing && 'ds-label--spacing', weight && `ds-font-weight--${weight}`, className), ...rest }));
17
+ return (jsxRuntime.jsx(Component, { ref: ref, className: cl(`ds-label--${size}`, weight && `ds-font-weight--${weight}`, className), ...rest }));
18
18
  });
19
- Label.displayName = 'Label';
20
19
 
21
20
  exports.Label = Label;
@@ -5,11 +5,10 @@ var jsxRuntime = require('react/jsx-runtime');
5
5
  var reactSlot = require('@radix-ui/react-slot');
6
6
  var cl = require('clsx/lite');
7
7
  var react = require('react');
8
- var Paragraph = require('../Typography/Paragraph/Paragraph.js');
9
8
 
10
9
  const render = (tagName, { asChild, className, size = 'md', ...rest }, ref) => {
11
10
  const Component = asChild ? reactSlot.Slot : tagName;
12
- return (jsxRuntime.jsx(Paragraph.Paragraph, { size: size, asChild: true, children: jsxRuntime.jsx(Component, { className: cl(`ds-list`, className), "data-size": size, ref: ref, ...rest }) }));
11
+ return (jsxRuntime.jsx(Component, { className: cl(`ds-list`, className), "data-size": size, ref: ref, ...rest }));
13
12
  };
14
13
  const ListUnordered = react.forwardRef(function ListUnordered(props, ref) {
15
14
  return render('ul', props, ref);
@@ -0,0 +1,45 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react$1 = require('@floating-ui/react');
6
+ var reactSlot = require('@radix-ui/react-slot');
7
+ var cl = require('clsx/lite');
8
+ var react = require('react');
9
+ var ModalContext = require('./ModalContext.js');
10
+ var Button = require('../Button/Button.js');
11
+
12
+ const Modal = react.forwardRef(function Modal({ asChild, children, className, closeButton = 'Lukk dialogvindu', onClose, open, backdropClose = false, ...rest }, ref) {
13
+ const contextRef = react.useContext(ModalContext.Context);
14
+ const modalRef = react.useRef(null); // This local ref is used to make sure the modal works without a ModalContext
15
+ const Component = asChild ? reactSlot.Slot : 'dialog';
16
+ const mergedRefs = react$1.useMergeRefs([contextRef, ref, modalRef]);
17
+ react.useEffect(() => modalRef.current?.[open ? 'showModal' : 'close'](), [open]); // Toggle open based on prop
18
+ react.useEffect(() => {
19
+ const modal = modalRef.current;
20
+ const handleBackdropClick = ({ clientY: y, clientX: x, target, }) => {
21
+ if (window.getSelection()?.toString())
22
+ return; // Fix bug where if you select text spanning two divs it thinks you clicked outside
23
+ if (modal && target === modal && backdropClose) {
24
+ const { top, left, right, bottom } = modal.getBoundingClientRect();
25
+ const isInDialog = top <= y && y <= bottom && left <= x && x <= right;
26
+ if (!isInDialog)
27
+ modal?.close(); // Both <dialog> and ::backdrop is considered same event.target
28
+ }
29
+ };
30
+ const handleAutoFocus = () => {
31
+ const autofocus = modal?.querySelector('[autofocus]');
32
+ if (document.activeElement !== autofocus)
33
+ autofocus?.focus();
34
+ };
35
+ modal?.addEventListener('animationend', handleAutoFocus);
36
+ modal?.addEventListener('click', handleBackdropClick);
37
+ return () => {
38
+ modal?.removeEventListener('animationend', handleAutoFocus);
39
+ modal?.removeEventListener('click', handleBackdropClick);
40
+ };
41
+ }, [backdropClose]);
42
+ return (jsxRuntime.jsxs(Component, { className: cl('ds-modal', className), ref: mergedRefs, ...rest, children: [closeButton !== false && (jsxRuntime.jsx("form", { method: 'dialog', children: jsxRuntime.jsx(Button.Button, { "aria-label": closeButton, autoFocus: true, color: 'neutral', icon: true, name: 'close', size: 'md', type: 'submit', variant: 'tertiary' }) })), children] }));
43
+ });
44
+
45
+ exports.Modal = Modal;
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var reactSlot = require('@radix-ui/react-slot');
6
+ var cl = require('clsx/lite');
7
+ var react = require('react');
8
+
9
+ const ModalBlock = react.forwardRef(function ModalBlock({ asChild, className, ...rest }, ref) {
10
+ const Component = asChild ? reactSlot.Slot : 'div';
11
+ return (jsxRuntime.jsx(Component, { className: cl('ds-modal__block', className), ref: ref, ...rest }));
12
+ });
13
+
14
+ exports.ModalBlock = ModalBlock;
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react = require('react');
6
+
7
+ const Context = react.createContext({
8
+ current: null,
9
+ });
10
+ const ModalContext = ({ children }) => {
11
+ const contextRef = react.useRef(null);
12
+ return jsxRuntime.jsx(Context.Provider, { value: contextRef, children: children });
13
+ };
14
+ ModalContext.displayName = 'ModalContext';
15
+
16
+ exports.Context = Context;
17
+ exports.ModalContext = ModalContext;
@@ -5,13 +5,12 @@ var jsxRuntime = require('react/jsx-runtime');
5
5
  var reactSlot = require('@radix-ui/react-slot');
6
6
  var react = require('react');
7
7
  var Button = require('../Button/Button.js');
8
- var ModalRoot = require('./ModalRoot.js');
8
+ var ModalContext = require('./ModalContext.js');
9
9
 
10
- const ModalTrigger = react.forwardRef(({ asChild, ...rest }, ref) => {
11
- const { modalRef, open } = react.useContext(ModalRoot.ModalContext);
10
+ const ModalTrigger = react.forwardRef(function ModalTrigger({ asChild, ...rest }, ref) {
11
+ const contextRef = react.useContext(ModalContext.Context);
12
12
  const Component = asChild ? reactSlot.Slot : Button.Button;
13
- return (jsxRuntime.jsx(Component, { ref: ref, onClick: () => modalRef?.current?.showModal(), "aria-expanded": open, "aria-haspopup": 'dialog', ...rest }));
13
+ return (jsxRuntime.jsx(Component, { "aria-haspopup": 'dialog', onClick: () => contextRef?.current?.showModal(), ref: ref, ...rest }));
14
14
  });
15
- ModalTrigger.displayName = 'ModalTrigger';
16
15
 
17
16
  exports.ModalTrigger = ModalTrigger;
@@ -1,31 +1,21 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var ModaContent = require('./ModaContent.js');
5
- var ModalDialog = require('./ModalDialog.js');
6
- var ModalFooter = require('./ModalFooter.js');
7
- var ModalHeader = require('./ModalHeader.js');
8
- var ModalRoot = require('./ModalRoot.js');
4
+ var Modal$1 = require('./Modal.js');
5
+ var ModalBlock = require('./ModalBlock.js');
6
+ var ModalContext = require('./ModalContext.js');
9
7
  var ModalTrigger = require('./ModalTrigger.js');
10
8
 
11
- const Modal = {};
12
- Modal.Root = ModalRoot.ModalRoot;
13
- Modal.Content = ModaContent.ModalContent;
14
- Modal.Footer = ModalFooter.ModalFooter;
15
- Modal.Header = ModalHeader.ModalHeader;
16
- Modal.Trigger = ModalTrigger.ModalTrigger;
17
- Modal.Dialog = ModalDialog.ModalDialog;
18
- Modal.Root.displayName = 'Modal.Root';
19
- Modal.Dialog.displayName = 'Modal.Dialog';
20
- Modal.Footer.displayName = 'Modal.Footer';
21
- Modal.Header.displayName = 'Modal.Header';
22
- Modal.Content.displayName = 'Modal.Content';
9
+ const Modal = Object.assign(Modal$1.Modal, {
10
+ Block: ModalBlock.ModalBlock,
11
+ Context: ModalContext.ModalContext,
12
+ Trigger: ModalTrigger.ModalTrigger,
13
+ });
14
+ Modal.Block.displayName = 'Modal.Block';
15
+ Modal.Context.displayName = 'Modal.Context';
23
16
  Modal.Trigger.displayName = 'Modal.Trigger';
24
17
 
25
- exports.ModalContent = ModaContent.ModalContent;
26
- exports.ModalDialog = ModalDialog.ModalDialog;
27
- exports.ModalFooter = ModalFooter.ModalFooter;
28
- exports.ModalHeader = ModalHeader.ModalHeader;
29
- exports.ModalRoot = ModalRoot.ModalRoot;
18
+ exports.ModalBlock = ModalBlock.ModalBlock;
19
+ exports.ModalContext = ModalContext.ModalContext;
30
20
  exports.ModalTrigger = ModalTrigger.ModalTrigger;
31
21
  exports.Modal = Modal;