@digdir/designsystemet-react 1.0.0-next.17 → 1.0.0-next.33

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 (424) hide show
  1. package/dist/cjs/components/Accordion/Accordion.js +15 -0
  2. package/dist/cjs/components/Accordion/AccordionContent.js +2 -11
  3. package/dist/cjs/components/Accordion/AccordionHeading.js +5 -17
  4. package/dist/cjs/components/Accordion/AccordionItem.js +61 -16
  5. package/dist/cjs/components/Accordion/index.js +4 -7
  6. package/dist/cjs/components/Alert/Alert.js +3 -18
  7. package/dist/cjs/components/Avatar/Avatar.js +36 -0
  8. package/dist/cjs/components/Badge/Badge.js +6 -1
  9. package/dist/cjs/components/Button/Button.js +6 -3
  10. package/dist/cjs/components/Card/Card.js +1 -1
  11. package/dist/cjs/components/Divider/Divider.js +5 -4
  12. package/dist/cjs/components/DropdownMenu/DropdownMenuContent.js +3 -22
  13. package/dist/cjs/components/DropdownMenu/DropdownMenuGroup.js +1 -1
  14. package/dist/cjs/components/DropdownMenu/DropdownMenuItem.js +1 -1
  15. package/dist/cjs/components/ErrorSummary/ErrorSummaryHeading.js +11 -7
  16. package/dist/cjs/components/ErrorSummary/ErrorSummaryItem.js +4 -4
  17. package/dist/cjs/components/ErrorSummary/ErrorSummaryList.js +7 -5
  18. package/dist/cjs/components/ErrorSummary/ErrorSummaryRoot.js +4 -4
  19. package/dist/cjs/components/ErrorSummary/index.js +2 -2
  20. package/dist/cjs/components/HelpText/HelpText.js +6 -4
  21. package/dist/cjs/components/Link/Link.js +2 -2
  22. package/dist/cjs/components/List/ListItem.js +2 -4
  23. package/dist/cjs/components/List/Lists.js +10 -13
  24. package/dist/cjs/components/List/index.js +7 -14
  25. package/dist/cjs/components/Modal/ModalHeader.js +1 -1
  26. package/dist/cjs/components/Pagination/Pagination.js +3 -17
  27. package/dist/cjs/components/Pagination/PaginationButton.js +2 -3
  28. package/dist/cjs/components/Pagination/PaginationEllipsis.js +1 -2
  29. package/dist/cjs/components/Pagination/PaginationItem.js +1 -2
  30. package/dist/cjs/components/Pagination/{PaginationContent.js → PaginationList.js} +4 -5
  31. package/dist/cjs/components/Pagination/PaginationNextPrev.js +4 -6
  32. package/dist/cjs/components/Pagination/PaginationRoot.js +2 -3
  33. package/dist/cjs/components/Pagination/index.js +4 -4
  34. package/dist/cjs/components/Popover/Popover.js +94 -0
  35. package/dist/cjs/components/Popover/PopoverContext.js +16 -0
  36. package/dist/cjs/components/Popover/PopoverTrigger.js +4 -13
  37. package/dist/cjs/components/Popover/index.js +6 -9
  38. package/dist/cjs/components/Table/Table.js +2 -22
  39. package/dist/cjs/components/Table/TableBody.js +2 -22
  40. package/dist/cjs/components/Table/TableCell.js +2 -23
  41. package/dist/cjs/components/Table/TableHead.js +2 -23
  42. package/dist/cjs/components/Table/TableHeaderCell.js +2 -29
  43. package/dist/cjs/components/Table/TableRow.js +2 -23
  44. package/dist/cjs/components/Tag/Tag.js +2 -3
  45. package/dist/cjs/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.js +3 -5
  46. package/dist/cjs/components/Tooltip/Tooltip.js +6 -25
  47. package/dist/cjs/components/Typography/Heading/Heading.js +2 -2
  48. package/dist/cjs/components/form/Combobox/Combobox.js +2 -3
  49. package/dist/cjs/components/form/Combobox/internal/ComboboxInput.js +1 -2
  50. package/dist/cjs/components/form/Combobox/useFloatingCombobox.js +1 -1
  51. package/dist/cjs/components/form/Select/Select.js +20 -0
  52. package/dist/cjs/components/form/Select/SelectOptgroup.js +13 -0
  53. package/dist/cjs/components/form/Select/SelectOption.js +13 -0
  54. package/dist/cjs/components/form/Select/index.js +16 -0
  55. package/dist/cjs/components/form/Select/useSelect.js +49 -0
  56. package/dist/cjs/components/{Skeleton → loaders/Skeleton}/Circle/Circle.js +2 -2
  57. package/dist/cjs/components/{Skeleton → loaders/Skeleton}/Rectangle/Rectangle.js +2 -2
  58. package/dist/cjs/components/{Skeleton → loaders/Skeleton}/Text/Text.js +2 -2
  59. package/dist/cjs/components/loaders/Spinner/Spinner.js +16 -0
  60. package/dist/cjs/index.js +56 -60
  61. package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +7 -23
  62. package/dist/cjs/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +164 -0
  63. package/dist/cjs/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +22 -0
  64. package/dist/cjs/node_modules/@floating-ui/react/dist/floating-ui.react.js +85 -56
  65. package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +1 -1
  66. package/dist/cjs/node_modules/@floating-ui/react-dom/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +677 -0
  67. package/dist/cjs/node_modules/@tanstack/virtual-core/dist/esm/index.js +57 -65
  68. package/dist/cjs/node_modules/@u-elements/u-details/dist/u-details.js +117 -0
  69. package/dist/cjs/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js +4 -2
  70. package/dist/esm/components/Accordion/Accordion.js +13 -0
  71. package/dist/esm/components/Accordion/AccordionContent.js +3 -12
  72. package/dist/esm/components/Accordion/AccordionHeading.js +7 -19
  73. package/dist/esm/components/Accordion/AccordionItem.js +63 -17
  74. package/dist/esm/components/Accordion/index.js +5 -7
  75. package/dist/esm/components/Alert/Alert.js +4 -19
  76. package/dist/esm/components/Avatar/Avatar.js +34 -0
  77. package/dist/esm/components/Badge/Badge.js +6 -1
  78. package/dist/esm/components/Button/Button.js +8 -5
  79. package/dist/esm/components/Card/Card.js +1 -1
  80. package/dist/esm/components/Divider/Divider.js +5 -4
  81. package/dist/esm/components/DropdownMenu/DropdownMenuContent.js +4 -5
  82. package/dist/esm/components/DropdownMenu/DropdownMenuGroup.js +1 -1
  83. package/dist/esm/components/DropdownMenu/DropdownMenuItem.js +1 -1
  84. package/dist/esm/components/ErrorSummary/ErrorSummaryHeading.js +12 -8
  85. package/dist/esm/components/ErrorSummary/ErrorSummaryItem.js +4 -4
  86. package/dist/esm/components/ErrorSummary/ErrorSummaryList.js +7 -5
  87. package/dist/esm/components/ErrorSummary/ErrorSummaryRoot.js +4 -4
  88. package/dist/esm/components/ErrorSummary/index.js +1 -1
  89. package/dist/esm/components/HelpText/HelpText.js +8 -6
  90. package/dist/esm/components/Link/Link.js +2 -2
  91. package/dist/esm/components/List/ListItem.js +2 -4
  92. package/dist/esm/components/List/Lists.js +10 -13
  93. package/dist/esm/components/List/index.js +7 -12
  94. package/dist/esm/components/Modal/ModalHeader.js +1 -1
  95. package/dist/esm/components/Pagination/Pagination.js +3 -17
  96. package/dist/esm/components/Pagination/PaginationButton.js +2 -3
  97. package/dist/esm/components/Pagination/PaginationEllipsis.js +1 -2
  98. package/dist/esm/components/Pagination/PaginationItem.js +1 -2
  99. package/dist/esm/components/Pagination/{PaginationContent.js → PaginationList.js} +4 -5
  100. package/dist/esm/components/Pagination/PaginationNextPrev.js +4 -6
  101. package/dist/esm/components/Pagination/PaginationRoot.js +2 -3
  102. package/dist/esm/components/Pagination/index.js +4 -4
  103. package/dist/esm/components/Popover/Popover.js +92 -0
  104. package/dist/esm/components/Popover/PopoverContext.js +13 -0
  105. package/dist/esm/components/Popover/PopoverTrigger.js +5 -14
  106. package/dist/esm/components/Popover/index.js +6 -8
  107. package/dist/esm/components/Table/Table.js +3 -4
  108. package/dist/esm/components/Table/TableBody.js +3 -4
  109. package/dist/esm/components/Table/TableCell.js +3 -5
  110. package/dist/esm/components/Table/TableHead.js +3 -5
  111. package/dist/esm/components/Table/TableHeaderCell.js +4 -12
  112. package/dist/esm/components/Table/TableRow.js +3 -5
  113. package/dist/esm/components/Tag/Tag.js +2 -3
  114. package/dist/esm/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.js +3 -5
  115. package/dist/esm/components/Tooltip/Tooltip.js +9 -10
  116. package/dist/esm/components/Typography/Heading/Heading.js +2 -2
  117. package/dist/esm/components/form/Combobox/Combobox.js +2 -3
  118. package/dist/esm/components/form/Combobox/internal/ComboboxInput.js +1 -2
  119. package/dist/esm/components/form/Combobox/useFloatingCombobox.js +1 -1
  120. package/dist/esm/components/form/Select/Select.js +18 -0
  121. package/dist/esm/components/form/Select/SelectOptgroup.js +11 -0
  122. package/dist/esm/components/form/Select/SelectOption.js +11 -0
  123. package/dist/esm/components/form/Select/index.js +12 -0
  124. package/dist/esm/components/form/Select/useSelect.js +47 -0
  125. package/dist/esm/components/{Skeleton → loaders/Skeleton}/Circle/Circle.js +2 -2
  126. package/dist/esm/components/{Skeleton → loaders/Skeleton}/Rectangle/Rectangle.js +2 -2
  127. package/dist/esm/components/{Skeleton → loaders/Skeleton}/Text/Text.js +2 -2
  128. package/dist/esm/components/loaders/Spinner/Spinner.js +14 -0
  129. package/dist/esm/index.js +13 -15
  130. package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.js +1 -1
  131. package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +7 -21
  132. package/dist/esm/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +143 -0
  133. package/dist/esm/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +16 -0
  134. package/dist/esm/node_modules/@floating-ui/react/dist/floating-ui.react.js +85 -56
  135. package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +2 -2
  136. package/dist/esm/node_modules/@floating-ui/react-dom/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +667 -0
  137. package/dist/esm/node_modules/@tanstack/virtual-core/dist/esm/index.js +57 -65
  138. package/dist/esm/node_modules/@u-elements/u-details/dist/u-details.js +114 -0
  139. package/dist/esm/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js +4 -2
  140. package/dist/types/components/Accordion/{AccordionRoot.d.ts → Accordion.d.ts} +5 -5
  141. package/dist/types/components/Accordion/Accordion.d.ts.map +1 -0
  142. package/dist/types/components/Accordion/AccordionContent.d.ts +1 -1
  143. package/dist/types/components/Accordion/AccordionContent.d.ts.map +1 -1
  144. package/dist/types/components/Accordion/AccordionHeading.d.ts +6 -20
  145. package/dist/types/components/Accordion/AccordionHeading.d.ts.map +1 -1
  146. package/dist/types/components/Accordion/AccordionItem.d.ts +12 -26
  147. package/dist/types/components/Accordion/AccordionItem.d.ts.map +1 -1
  148. package/dist/types/components/Accordion/index.d.ts +9 -11
  149. package/dist/types/components/Accordion/index.d.ts.map +1 -1
  150. package/dist/types/components/Alert/Alert.d.ts +7 -23
  151. package/dist/types/components/Alert/Alert.d.ts.map +1 -1
  152. package/dist/types/components/Avatar/Avatar.d.ts +78 -0
  153. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -0
  154. package/dist/types/components/Avatar/index.d.ts +3 -0
  155. package/dist/types/components/Avatar/index.d.ts.map +1 -0
  156. package/dist/types/components/Badge/Badge.d.ts +2 -2
  157. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  158. package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts +1 -1
  159. package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts.map +1 -1
  160. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts +3 -3
  161. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts.map +1 -1
  162. package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts +1 -1
  163. package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts.map +1 -1
  164. package/dist/types/components/Breadcrumbs/BreadcrumbsNav.d.ts +6 -4
  165. package/dist/types/components/Breadcrumbs/BreadcrumbsNav.d.ts.map +1 -1
  166. package/dist/types/components/Breadcrumbs/BreadcrumbsRoot.d.ts +2 -2
  167. package/dist/types/components/Breadcrumbs/BreadcrumbsRoot.d.ts.map +1 -1
  168. package/dist/types/components/Breadcrumbs/index.d.ts +9 -9
  169. package/dist/types/components/Button/Button.d.ts +10 -12
  170. package/dist/types/components/Button/Button.d.ts.map +1 -1
  171. package/dist/types/components/Card/Card.d.ts +2 -2
  172. package/dist/types/components/Card/Card.d.ts.map +1 -1
  173. package/dist/types/components/Card/CardContent.d.ts +2 -2
  174. package/dist/types/components/Card/CardContent.d.ts.map +1 -1
  175. package/dist/types/components/Card/CardFooter.d.ts +2 -2
  176. package/dist/types/components/Card/CardFooter.d.ts.map +1 -1
  177. package/dist/types/components/Card/CardHeader.d.ts +2 -2
  178. package/dist/types/components/Card/CardHeader.d.ts.map +1 -1
  179. package/dist/types/components/Card/CardMedia.d.ts +2 -2
  180. package/dist/types/components/Card/CardMedia.d.ts.map +1 -1
  181. package/dist/types/components/Chip/Group/Group.d.ts +3 -3
  182. package/dist/types/components/Chip/Group/Group.d.ts.map +1 -1
  183. package/dist/types/components/Chip/Removable/Removable.d.ts +2 -2
  184. package/dist/types/components/Chip/Removable/Removable.d.ts.map +1 -1
  185. package/dist/types/components/Chip/Toggle/Toggle.d.ts +2 -2
  186. package/dist/types/components/Chip/Toggle/Toggle.d.ts.map +1 -1
  187. package/dist/types/components/Divider/Divider.d.ts +3 -15
  188. package/dist/types/components/Divider/Divider.d.ts.map +1 -1
  189. package/dist/types/components/DropdownMenu/DropdownMenuContent.d.ts +5 -5
  190. package/dist/types/components/DropdownMenu/DropdownMenuContent.d.ts.map +1 -1
  191. package/dist/types/components/DropdownMenu/DropdownMenuGroup.d.ts +5 -5
  192. package/dist/types/components/DropdownMenu/DropdownMenuGroup.d.ts.map +1 -1
  193. package/dist/types/components/DropdownMenu/DropdownMenuItem.d.ts +2 -2
  194. package/dist/types/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  195. package/dist/types/components/DropdownMenu/DropdownMenuRoot.d.ts +3 -3
  196. package/dist/types/components/DropdownMenu/DropdownMenuRoot.d.ts.map +1 -1
  197. package/dist/types/components/DropdownMenu/DropdownMenuTrigger.d.ts +3 -3
  198. package/dist/types/components/DropdownMenu/DropdownMenuTrigger.d.ts.map +1 -1
  199. package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts +8 -6
  200. package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts.map +1 -1
  201. package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts +2 -5
  202. package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts.map +1 -1
  203. package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts +6 -7
  204. package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts.map +1 -1
  205. package/dist/types/components/ErrorSummary/ErrorSummaryRoot.d.ts +7 -6
  206. package/dist/types/components/ErrorSummary/ErrorSummaryRoot.d.ts.map +1 -1
  207. package/dist/types/components/ErrorSummary/index.d.ts +1 -1
  208. package/dist/types/components/ErrorSummary/index.d.ts.map +1 -1
  209. package/dist/types/components/HelpText/HelpText.d.ts +19 -8
  210. package/dist/types/components/HelpText/HelpText.d.ts.map +1 -1
  211. package/dist/types/components/Link/Link.d.ts +2 -2
  212. package/dist/types/components/Link/Link.d.ts.map +1 -1
  213. package/dist/types/components/List/ListItem.d.ts +2 -2
  214. package/dist/types/components/List/ListItem.d.ts.map +1 -1
  215. package/dist/types/components/List/Lists.d.ts +11 -21
  216. package/dist/types/components/List/Lists.d.ts.map +1 -1
  217. package/dist/types/components/List/index.d.ts +15 -14
  218. package/dist/types/components/List/index.d.ts.map +1 -1
  219. package/dist/types/components/Modal/ModaContent.d.ts +2 -2
  220. package/dist/types/components/Modal/ModaContent.d.ts.map +1 -1
  221. package/dist/types/components/Modal/ModalDialog.d.ts +2 -2
  222. package/dist/types/components/Modal/ModalDialog.d.ts.map +1 -1
  223. package/dist/types/components/Modal/ModalFooter.d.ts +2 -2
  224. package/dist/types/components/Modal/ModalFooter.d.ts.map +1 -1
  225. package/dist/types/components/Modal/ModalHeader.d.ts +2 -2
  226. package/dist/types/components/Modal/ModalHeader.d.ts.map +1 -1
  227. package/dist/types/components/Modal/ModalRoot.d.ts +4 -3
  228. package/dist/types/components/Modal/ModalRoot.d.ts.map +1 -1
  229. package/dist/types/components/Modal/ModalTrigger.d.ts +3 -3
  230. package/dist/types/components/Modal/ModalTrigger.d.ts.map +1 -1
  231. package/dist/types/components/Pagination/Pagination.d.ts +4 -5
  232. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  233. package/dist/types/components/Pagination/PaginationButton.d.ts +3 -3
  234. package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -1
  235. package/dist/types/components/Pagination/PaginationEllipsis.d.ts +1 -2
  236. package/dist/types/components/Pagination/PaginationEllipsis.d.ts.map +1 -1
  237. package/dist/types/components/Pagination/PaginationItem.d.ts +2 -3
  238. package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
  239. package/dist/types/components/Pagination/{PaginationContent.d.ts → PaginationList.d.ts} +4 -4
  240. package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -0
  241. package/dist/types/components/Pagination/PaginationNextPrev.d.ts +4 -5
  242. package/dist/types/components/Pagination/PaginationNextPrev.d.ts.map +1 -1
  243. package/dist/types/components/Pagination/PaginationRoot.d.ts +14 -4
  244. package/dist/types/components/Pagination/PaginationRoot.d.ts.map +1 -1
  245. package/dist/types/components/Pagination/index.d.ts +9 -10
  246. package/dist/types/components/Pagination/index.d.ts.map +1 -1
  247. package/dist/types/components/Pagination/usePagination.d.ts +1 -1
  248. package/dist/types/components/Popover/Popover.d.ts +83 -0
  249. package/dist/types/components/Popover/Popover.d.ts.map +1 -0
  250. package/dist/types/components/Popover/PopoverContext.d.ts +13 -0
  251. package/dist/types/components/Popover/PopoverContext.d.ts.map +1 -0
  252. package/dist/types/components/Popover/PopoverTrigger.d.ts +3 -3
  253. package/dist/types/components/Popover/PopoverTrigger.d.ts.map +1 -1
  254. package/dist/types/components/Popover/index.d.ts +8 -10
  255. package/dist/types/components/Popover/index.d.ts.map +1 -1
  256. package/dist/types/components/Table/Table.d.ts +3 -3
  257. package/dist/types/components/Table/Table.d.ts.map +1 -1
  258. package/dist/types/components/Table/TableBody.d.ts +2 -2
  259. package/dist/types/components/Table/TableBody.d.ts.map +1 -1
  260. package/dist/types/components/Table/TableCell.d.ts +2 -2
  261. package/dist/types/components/Table/TableCell.d.ts.map +1 -1
  262. package/dist/types/components/Table/TableHead.d.ts +2 -2
  263. package/dist/types/components/Table/TableHead.d.ts.map +1 -1
  264. package/dist/types/components/Table/TableHeaderCell.d.ts +5 -25
  265. package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -1
  266. package/dist/types/components/Table/TableRow.d.ts +2 -2
  267. package/dist/types/components/Table/TableRow.d.ts.map +1 -1
  268. package/dist/types/components/Tabs/Tab.d.ts +2 -2
  269. package/dist/types/components/Tabs/Tab.d.ts.map +1 -1
  270. package/dist/types/components/Tabs/TabContent.d.ts +2 -2
  271. package/dist/types/components/Tabs/TabContent.d.ts.map +1 -1
  272. package/dist/types/components/Tabs/TabList.d.ts +1 -1
  273. package/dist/types/components/Tabs/TabList.d.ts.map +1 -1
  274. package/dist/types/components/Tabs/TabsRoot.d.ts +3 -3
  275. package/dist/types/components/Tabs/TabsRoot.d.ts.map +1 -1
  276. package/dist/types/components/Tag/Tag.d.ts +2 -2
  277. package/dist/types/components/Tag/Tag.d.ts.map +1 -1
  278. package/dist/types/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.d.ts +3 -3
  279. package/dist/types/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.d.ts.map +1 -1
  280. package/dist/types/components/ToggleGroup/ToggleGroupRoot.d.ts +3 -3
  281. package/dist/types/components/ToggleGroup/ToggleGroupRoot.d.ts.map +1 -1
  282. package/dist/types/components/Tooltip/Tooltip.d.ts +6 -7
  283. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  284. package/dist/types/components/Typography/ErrorMessage/ErrorMessage.d.ts +2 -2
  285. package/dist/types/components/Typography/ErrorMessage/ErrorMessage.d.ts.map +1 -1
  286. package/dist/types/components/Typography/Heading/Heading.d.ts +4 -4
  287. package/dist/types/components/Typography/Heading/Heading.d.ts.map +1 -1
  288. package/dist/types/components/Typography/Ingress/Ingress.d.ts +2 -2
  289. package/dist/types/components/Typography/Ingress/Ingress.d.ts.map +1 -1
  290. package/dist/types/components/Typography/Label/Label.d.ts +2 -2
  291. package/dist/types/components/Typography/Label/Label.d.ts.map +1 -1
  292. package/dist/types/components/Typography/Paragraph/Paragraph.d.ts +2 -2
  293. package/dist/types/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  294. package/dist/types/components/form/Checkbox/Checkbox.d.ts +2 -2
  295. package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
  296. package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts +3 -3
  297. package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts.map +1 -1
  298. package/dist/types/components/form/Combobox/Combobox.d.ts +4 -4
  299. package/dist/types/components/form/Combobox/Combobox.d.ts.map +1 -1
  300. package/dist/types/components/form/Combobox/ComboboxContext.d.ts +5 -4
  301. package/dist/types/components/form/Combobox/ComboboxContext.d.ts.map +1 -1
  302. package/dist/types/components/form/Combobox/ComboboxIdContext.d.ts +4 -4
  303. package/dist/types/components/form/Combobox/ComboboxIdContext.d.ts.map +1 -1
  304. package/dist/types/components/form/Combobox/Custom.d.ts +2 -2
  305. package/dist/types/components/form/Combobox/Custom.d.ts.map +1 -1
  306. package/dist/types/components/form/Combobox/Empty.d.ts +2 -2
  307. package/dist/types/components/form/Combobox/Empty.d.ts.map +1 -1
  308. package/dist/types/components/form/Combobox/Option/Description.d.ts +2 -2
  309. package/dist/types/components/form/Combobox/Option/Description.d.ts.map +1 -1
  310. package/dist/types/components/form/Combobox/Option/Option.d.ts +3 -3
  311. package/dist/types/components/form/Combobox/Option/Option.d.ts.map +1 -1
  312. package/dist/types/components/form/Combobox/Option/useComboboxOption.d.ts +1 -1
  313. package/dist/types/components/form/Combobox/internal/ComboboxClearButton.d.ts +2 -1
  314. package/dist/types/components/form/Combobox/internal/ComboboxClearButton.d.ts.map +1 -1
  315. package/dist/types/components/form/Combobox/internal/ComboboxInput.d.ts +3 -2
  316. package/dist/types/components/form/Combobox/internal/ComboboxInput.d.ts.map +1 -1
  317. package/dist/types/components/form/Combobox/useCombobox.d.ts +3 -3
  318. package/dist/types/components/form/Combobox/useComboboxKeyboard.d.ts +2 -1
  319. package/dist/types/components/form/Combobox/useComboboxKeyboard.d.ts.map +1 -1
  320. package/dist/types/components/form/Combobox/useFloatingCombobox.d.ts +13 -12
  321. package/dist/types/components/form/Combobox/useFloatingCombobox.d.ts.map +1 -1
  322. package/dist/types/components/form/Fieldset/Fieldset.d.ts +2 -2
  323. package/dist/types/components/form/Fieldset/Fieldset.d.ts.map +1 -1
  324. package/dist/types/components/form/Fieldset/FieldsetContext.d.ts +1 -1
  325. package/dist/types/components/form/Fieldset/FieldsetContext.d.ts.map +1 -1
  326. package/dist/types/components/form/Fieldset/useFieldset.d.ts +1 -1
  327. package/dist/types/components/form/Radio/Radio.d.ts +2 -2
  328. package/dist/types/components/form/Radio/Radio.d.ts.map +1 -1
  329. package/dist/types/components/form/Radio/RadioGroup.d.ts +3 -3
  330. package/dist/types/components/form/Radio/RadioGroup.d.ts.map +1 -1
  331. package/dist/types/components/form/Search/Search.d.ts +2 -2
  332. package/dist/types/components/form/Search/Search.d.ts.map +1 -1
  333. package/dist/types/components/form/{NativeSelect/NativeSelect.d.ts → Select/Select.d.ts} +5 -5
  334. package/dist/types/components/form/Select/Select.d.ts.map +1 -0
  335. package/dist/types/components/form/Select/SelectOptgroup.d.ts +16 -0
  336. package/dist/types/components/form/Select/SelectOptgroup.d.ts.map +1 -0
  337. package/dist/types/components/form/Select/SelectOption.d.ts +16 -0
  338. package/dist/types/components/form/Select/SelectOption.d.ts.map +1 -0
  339. package/dist/types/components/form/Select/index.d.ts +13 -0
  340. package/dist/types/components/form/Select/index.d.ts.map +1 -0
  341. package/dist/types/components/form/Select/useSelect.d.ts +10 -0
  342. package/dist/types/components/form/Select/useSelect.d.ts.map +1 -0
  343. package/dist/types/components/form/Switch/Switch.d.ts +2 -2
  344. package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
  345. package/dist/types/components/form/Textarea/Textarea.d.ts +2 -2
  346. package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
  347. package/dist/types/components/form/Textfield/Textfield.d.ts +2 -2
  348. package/dist/types/components/form/Textfield/Textfield.d.ts.map +1 -1
  349. package/dist/types/components/index.d.ts +4 -4
  350. package/dist/types/components/index.d.ts.map +1 -1
  351. package/dist/types/components/loaders/Skeleton/Circle/Circle.d.ts.map +1 -0
  352. package/dist/types/components/loaders/Skeleton/Rectangle/Rectangle.d.ts.map +1 -0
  353. package/dist/types/components/loaders/Skeleton/Text/Text.d.ts.map +1 -0
  354. package/dist/types/components/loaders/Skeleton/index.d.ts.map +1 -0
  355. package/dist/types/components/{Spinner → loaders/Spinner}/Spinner.d.ts +3 -3
  356. package/dist/types/components/loaders/Spinner/Spinner.d.ts.map +1 -0
  357. package/dist/types/components/loaders/Spinner/index.d.ts.map +1 -0
  358. package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts +2 -2
  359. package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts.map +1 -1
  360. package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts +2 -2
  361. package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts.map +1 -1
  362. package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts +3 -3
  363. package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts.map +1 -1
  364. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts +163 -162
  365. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts.map +1 -1
  366. package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts +1 -1
  367. package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts.map +1 -1
  368. package/package.json +9 -4
  369. package/dist/cjs/components/Accordion/AccordionRoot.js +0 -16
  370. package/dist/cjs/components/Box/Box.js +0 -15
  371. package/dist/cjs/components/List/ListHeading.js +0 -28
  372. package/dist/cjs/components/List/ListRoot.js +0 -21
  373. package/dist/cjs/components/Popover/PopoverContent.js +0 -105
  374. package/dist/cjs/components/Popover/PopoverRoot.js +0 -68
  375. package/dist/cjs/components/Spinner/Spinner.js +0 -24
  376. package/dist/cjs/components/form/NativeSelect/NativeSelect.js +0 -21
  377. package/dist/cjs/components/form/NativeSelect/useNativeSelect.js +0 -55
  378. package/dist/cjs/utilities/AnimateHeight/AnimateHeight.js +0 -46
  379. package/dist/cjs/utilities/hooks/useMediaQuery/useMediaQuery.js +0 -49
  380. package/dist/cjs/utilities/hooks/usePrevious.js +0 -14
  381. package/dist/esm/components/Accordion/AccordionRoot.js +0 -14
  382. package/dist/esm/components/Box/Box.js +0 -13
  383. package/dist/esm/components/List/ListHeading.js +0 -26
  384. package/dist/esm/components/List/ListRoot.js +0 -18
  385. package/dist/esm/components/Popover/PopoverContent.js +0 -85
  386. package/dist/esm/components/Popover/PopoverRoot.js +0 -47
  387. package/dist/esm/components/Spinner/Spinner.js +0 -22
  388. package/dist/esm/components/form/NativeSelect/NativeSelect.js +0 -19
  389. package/dist/esm/components/form/NativeSelect/useNativeSelect.js +0 -53
  390. package/dist/esm/utilities/AnimateHeight/AnimateHeight.js +0 -44
  391. package/dist/esm/utilities/hooks/useMediaQuery/useMediaQuery.js +0 -47
  392. package/dist/esm/utilities/hooks/usePrevious.js +0 -12
  393. package/dist/types/components/Accordion/AccordionRoot.d.ts.map +0 -1
  394. package/dist/types/components/Box/Box.d.ts +0 -56
  395. package/dist/types/components/Box/Box.d.ts.map +0 -1
  396. package/dist/types/components/Box/index.d.ts +0 -3
  397. package/dist/types/components/Box/index.d.ts.map +0 -1
  398. package/dist/types/components/List/ListHeading.d.ts +0 -9
  399. package/dist/types/components/List/ListHeading.d.ts.map +0 -1
  400. package/dist/types/components/List/ListRoot.d.ts +0 -34
  401. package/dist/types/components/List/ListRoot.d.ts.map +0 -1
  402. package/dist/types/components/Pagination/PaginationContent.d.ts.map +0 -1
  403. package/dist/types/components/Popover/PopoverContent.d.ts +0 -8
  404. package/dist/types/components/Popover/PopoverContent.d.ts.map +0 -1
  405. package/dist/types/components/Popover/PopoverRoot.d.ts +0 -54
  406. package/dist/types/components/Popover/PopoverRoot.d.ts.map +0 -1
  407. package/dist/types/components/Skeleton/Circle/Circle.d.ts.map +0 -1
  408. package/dist/types/components/Skeleton/Rectangle/Rectangle.d.ts.map +0 -1
  409. package/dist/types/components/Skeleton/Text/Text.d.ts.map +0 -1
  410. package/dist/types/components/Skeleton/index.d.ts.map +0 -1
  411. package/dist/types/components/Spinner/Spinner.d.ts.map +0 -1
  412. package/dist/types/components/Spinner/index.d.ts.map +0 -1
  413. package/dist/types/components/form/NativeSelect/NativeSelect.d.ts.map +0 -1
  414. package/dist/types/components/form/NativeSelect/index.d.ts +0 -3
  415. package/dist/types/components/form/NativeSelect/index.d.ts.map +0 -1
  416. package/dist/types/components/form/NativeSelect/useNativeSelect.d.ts +0 -10
  417. package/dist/types/components/form/NativeSelect/useNativeSelect.d.ts.map +0 -1
  418. /package/dist/cjs/components/{Skeleton → loaders/Skeleton}/index.js +0 -0
  419. /package/dist/esm/components/{Skeleton → loaders/Skeleton}/index.js +0 -0
  420. /package/dist/types/components/{Skeleton → loaders/Skeleton}/Circle/Circle.d.ts +0 -0
  421. /package/dist/types/components/{Skeleton → loaders/Skeleton}/Rectangle/Rectangle.d.ts +0 -0
  422. /package/dist/types/components/{Skeleton → loaders/Skeleton}/Text/Text.d.ts +0 -0
  423. /package/dist/types/components/{Skeleton → loaders/Skeleton}/index.d.ts +0 -0
  424. /package/dist/types/components/{Spinner → loaders/Spinner}/index.d.ts +0 -0
@@ -69,7 +69,8 @@ const observeElementOffset = (instance, cb) => {
69
69
  instance.options.isScrollingResetDelay
70
70
  );
71
71
  const createHandler = (isScrolling) => () => {
72
- offset = element[instance.options.horizontal ? "scrollLeft" : "scrollTop"];
72
+ const { horizontal, isRtl } = instance.options;
73
+ offset = horizontal ? element["scrollLeft"] * (isRtl && -1 || 1) : element["scrollTop"];
73
74
  fallback();
74
75
  cb(offset, isScrolling);
75
76
  };
@@ -141,7 +142,8 @@ class Virtualizer {
141
142
  return {
142
143
  disconnect: () => {
143
144
  var _a;
144
- return (_a = get()) == null ? void 0 : _a.disconnect();
145
+ (_a = get()) == null ? void 0 : _a.disconnect();
146
+ _ro = null;
145
147
  },
146
148
  observe: (target) => {
147
149
  var _a;
@@ -180,27 +182,42 @@ class Virtualizer {
180
182
  lanes: 1,
181
183
  isScrollingResetDelay: 150,
182
184
  enabled: true,
185
+ isRtl: false,
183
186
  ...opts2
184
187
  };
185
188
  };
186
- this.notify = (force, sync) => {
189
+ this.notify = (sync) => {
187
190
  var _a, _b;
188
- const { startIndex, endIndex } = this.range ?? {
189
- startIndex: void 0,
190
- endIndex: void 0
191
- };
192
- const range = this.calculateRange();
193
- if (force || startIndex !== (range == null ? void 0 : range.startIndex) || endIndex !== (range == null ? void 0 : range.endIndex)) {
194
- (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);
195
- }
191
+ (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);
196
192
  };
193
+ this.maybeNotify = utils.memo(
194
+ () => {
195
+ this.calculateRange();
196
+ return [
197
+ this.isScrolling,
198
+ this.range ? this.range.startIndex : null,
199
+ this.range ? this.range.endIndex : null
200
+ ];
201
+ },
202
+ (isScrolling) => {
203
+ this.notify(isScrolling);
204
+ },
205
+ {
206
+ key: process.env.NODE_ENV !== "production" && "maybeNotify",
207
+ debug: () => this.options.debug,
208
+ initialDeps: [
209
+ this.isScrolling,
210
+ this.range ? this.range.startIndex : null,
211
+ this.range ? this.range.endIndex : null
212
+ ]
213
+ }
214
+ );
197
215
  this.cleanup = () => {
198
216
  this.unsubs.filter(Boolean).forEach((d) => d());
199
217
  this.unsubs = [];
218
+ this.observer.disconnect();
200
219
  this.scrollElement = null;
201
220
  this.targetWindow = null;
202
- this.observer.disconnect();
203
- this.elementsCache.clear();
204
221
  };
205
222
  this._didMount = () => {
206
223
  return () => {
@@ -213,7 +230,7 @@ class Virtualizer {
213
230
  if (this.scrollElement !== scrollElement) {
214
231
  this.cleanup();
215
232
  if (!scrollElement) {
216
- this.notify(false, false);
233
+ this.maybeNotify();
217
234
  return;
218
235
  }
219
236
  this.scrollElement = scrollElement;
@@ -222,6 +239,9 @@ class Virtualizer {
222
239
  } else {
223
240
  this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;
224
241
  }
242
+ this.elementsCache.forEach((cached) => {
243
+ this.observer.observe(cached);
244
+ });
225
245
  this._scrollToOffset(this.getScrollOffset(), {
226
246
  adjustments: void 0,
227
247
  behavior: void 0
@@ -229,7 +249,7 @@ class Virtualizer {
229
249
  this.unsubs.push(
230
250
  this.options.observeElementRect(this, (rect) => {
231
251
  this.scrollRect = rect;
232
- this.notify(false, false);
252
+ this.maybeNotify();
233
253
  })
234
254
  );
235
255
  this.unsubs.push(
@@ -237,9 +257,8 @@ class Virtualizer {
237
257
  this.scrollAdjustments = 0;
238
258
  this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? "forward" : "backward" : null;
239
259
  this.scrollOffset = offset;
240
- const prevIsScrolling = this.isScrolling;
241
260
  this.isScrolling = isScrolling;
242
- this.notify(prevIsScrolling !== isScrolling, isScrolling);
261
+ this.maybeNotify();
243
262
  })
244
263
  );
245
264
  }
@@ -312,7 +331,6 @@ class Virtualizer {
312
331
  this.getMeasurements = utils.memo(
313
332
  () => [this.getMeasurementOptions(), this.itemSizeCache],
314
333
  ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {
315
- var _a;
316
334
  if (!enabled) {
317
335
  this.measurementsCache = [];
318
336
  this.itemSizeCache.clear();
@@ -328,33 +346,6 @@ class Virtualizer {
328
346
  this.pendingMeasuredCacheIndexes = [];
329
347
  const measurements = this.measurementsCache.slice(0, min);
330
348
  for (let i = min; i < count; i++) {
331
- let measureElement2 = (_a = this.measurementsCache[i]) == null ? void 0 : _a.measureElement;
332
- if (!measureElement2) {
333
- measureElement2 = (node) => {
334
- const key2 = getItemKey(i);
335
- const prevNode = this.elementsCache.get(key2);
336
- if (!node) {
337
- if (prevNode) {
338
- this.observer.unobserve(prevNode);
339
- this.elementsCache.delete(key2);
340
- }
341
- return;
342
- }
343
- if (prevNode !== node) {
344
- if (prevNode) {
345
- this.observer.unobserve(prevNode);
346
- }
347
- this.observer.observe(node);
348
- this.elementsCache.set(key2, node);
349
- }
350
- if (node.isConnected) {
351
- this.resizeItem(
352
- i,
353
- this.options.measureElement(node, void 0, this)
354
- );
355
- }
356
- };
357
- }
358
349
  const key = getItemKey(i);
359
350
  const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);
360
351
  const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;
@@ -368,8 +359,7 @@ class Virtualizer {
368
359
  size,
369
360
  end,
370
361
  key,
371
- lane,
372
- measureElement: measureElement2
362
+ lane
373
363
  };
374
364
  }
375
365
  this.measurementsCache = measurements;
@@ -426,29 +416,26 @@ class Virtualizer {
426
416
  return parseInt(indexStr, 10);
427
417
  };
428
418
  this._measureElement = (node, entry) => {
429
- const i = this.indexFromElement(node);
430
- const item = this.getMeasurements()[i];
431
- if (!item || !node.isConnected) {
432
- this.elementsCache.forEach((cached, key) => {
433
- if (cached === node) {
434
- this.observer.unobserve(node);
435
- this.elementsCache.delete(key);
436
- }
437
- });
419
+ const index = this.indexFromElement(node);
420
+ const item = this.measurementsCache[index];
421
+ if (!item) {
438
422
  return;
439
423
  }
440
- const prevNode = this.elementsCache.get(item.key);
424
+ const key = item.key;
425
+ const prevNode = this.elementsCache.get(key);
441
426
  if (prevNode !== node) {
442
427
  if (prevNode) {
443
428
  this.observer.unobserve(prevNode);
444
429
  }
445
430
  this.observer.observe(node);
446
- this.elementsCache.set(item.key, node);
431
+ this.elementsCache.set(key, node);
432
+ }
433
+ if (node.isConnected) {
434
+ this.resizeItem(index, this.options.measureElement(node, entry, this));
447
435
  }
448
- this.resizeItem(i, this.options.measureElement(node, entry, this));
449
436
  };
450
437
  this.resizeItem = (index, size) => {
451
- const item = this.getMeasurements()[index];
438
+ const item = this.measurementsCache[index];
452
439
  if (!item) {
453
440
  return;
454
441
  }
@@ -466,11 +453,17 @@ class Virtualizer {
466
453
  }
467
454
  this.pendingMeasuredCacheIndexes.push(item.index);
468
455
  this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));
469
- this.notify(true, false);
456
+ this.notify(false);
470
457
  }
471
458
  };
472
459
  this.measureElement = (node) => {
473
460
  if (!node) {
461
+ this.elementsCache.forEach((cached, key) => {
462
+ if (!cached.isConnected) {
463
+ this.observer.unobserve(cached);
464
+ this.elementsCache.delete(key);
465
+ }
466
+ });
474
467
  return;
475
468
  }
476
469
  this._measureElement(node, void 0);
@@ -487,7 +480,7 @@ class Virtualizer {
487
480
  return virtualItems;
488
481
  },
489
482
  {
490
- key: process.env.NODE_ENV !== "production" && "getIndexes",
483
+ key: process.env.NODE_ENV !== "production" && "getVirtualItems",
491
484
  debug: () => this.options.debug
492
485
  }
493
486
  );
@@ -531,7 +524,7 @@ class Virtualizer {
531
524
  };
532
525
  this.getOffsetForIndex = (index, align = "auto") => {
533
526
  index = Math.max(0, Math.min(index, this.options.count - 1));
534
- const item = this.getMeasurements()[index];
527
+ const item = this.measurementsCache[index];
535
528
  if (!item) {
536
529
  return void 0;
537
530
  }
@@ -631,9 +624,8 @@ class Virtualizer {
631
624
  this.options.scrollToFn(offset, { behavior, adjustments }, this);
632
625
  };
633
626
  this.measure = () => {
634
- var _a, _b;
635
627
  this.itemSizeCache = /* @__PURE__ */ new Map();
636
- (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, false);
628
+ this.notify(false);
637
629
  };
638
630
  this.setOptions(opts);
639
631
  }
@@ -0,0 +1,117 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var __typeError = (msg) => {
5
+ throw TypeError(msg);
6
+ };
7
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
8
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
9
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
10
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
11
+
12
+ // ../utils.ts
13
+ var IS_BROWSER = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.navigator !== "undefined";
14
+ var DISPLAY_BLOCK = ":host(:not([hidden])) { display: block }";
15
+ var UHTMLElement = typeof HTMLElement === "undefined" ? class {
16
+ } : HTMLElement;
17
+ var events = (action, element, rest) => rest[0].split(",").forEach((type) => {
18
+ rest[0] = type;
19
+ Element.prototype[`${action}EventListener`].apply(element, rest);
20
+ });
21
+ var on = (element, ...rest) => events("add", element, rest);
22
+ var off = (element, ...rest) => events("remove", element, rest);
23
+ var asButton = (event) => {
24
+ const isClick = "key" in event && (event.key === " " || event.key === "Enter");
25
+ if (isClick) event.preventDefault();
26
+ if (isClick && event.target instanceof HTMLElement) event.target.click();
27
+ return isClick;
28
+ };
29
+ var getRoot = (node) => node.getRootNode();
30
+ var createElement = (tagName, props) => Object.assign(document.createElement(tagName), props);
31
+ var customElements = {
32
+ define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)
33
+ };
34
+
35
+ // u-details.ts
36
+ var OPEN = "open";
37
+ var USUMMARY_TAG = "U-SUMMARY";
38
+ var _content;
39
+ var UHTMLDetailsElement = class extends UHTMLElement {
40
+ constructor() {
41
+ super();
42
+ __privateAdd(this, _content);
43
+ this.attachShadow({ mode: "closed" }).append(
44
+ createElement("slot", { name: "summary" }),
45
+ // Summary slot
46
+ __privateSet(this, _content, createElement("slot")),
47
+ // Content slot
48
+ createElement("style", {
49
+ textContent: `
50
+ ${DISPLAY_BLOCK}
51
+ ::slotted(u-summary) { cursor: pointer; display: list-item; counter-increment: list-item 0; list-style: disclosure-closed inside }
52
+ ::slotted(u-summary[aria-expanded="true"]) { list-style-type: disclosure-open }
53
+ `
54
+ })
55
+ );
56
+ }
57
+ connectedCallback() {
58
+ on(__privateGet(this, _content), "beforematch", this);
59
+ on(this, "click,keydown", this);
60
+ this.attributeChangedCallback();
61
+ }
62
+ disconnectedCallback() {
63
+ off(__privateGet(this, _content), "beforematch", this);
64
+ off(this, "click,keydown", this);
65
+ }
66
+ attributeChangedCallback(prop, prev, next) {
67
+ const hide = "onbeforematch" in this ? "until-found" : true;
68
+ const open = this[OPEN];
69
+ Array.from(this.children, (el) => {
70
+ if (el.nodeName === USUMMARY_TAG) el.ariaExpanded = `${open}`;
71
+ });
72
+ __privateGet(this, _content).ariaHidden = `${!open}`;
73
+ __privateGet(this, _content).hidden = open ? false : hide;
74
+ if (hide === "until-found")
75
+ __privateGet(this, _content).style.display = open ? "" : "block";
76
+ if (open && this.name)
77
+ getRoot(this).querySelectorAll(
78
+ `${this.nodeName}[name="${this.name}"]`
79
+ ).forEach((uDetails) => uDetails === this || (uDetails[OPEN] = false));
80
+ if (prop === OPEN && prev === null !== (next === null))
81
+ this.dispatchEvent(new Event("toggle"));
82
+ }
83
+ handleEvent(event) {
84
+ const summary = this.querySelector("u-summary");
85
+ const isSummary = summary?.contains(event.target);
86
+ if (event.defaultPrevented) return;
87
+ if (event.type === "beforematch") this[OPEN] = true;
88
+ if (isSummary && event.type === "keydown") asButton(event);
89
+ if (isSummary && event.type === "click") this[OPEN] = !this[OPEN];
90
+ }
91
+ get open() {
92
+ return this.hasAttribute("open");
93
+ }
94
+ set open(open) {
95
+ this.toggleAttribute("open", open);
96
+ }
97
+ get name() {
98
+ return this.getAttribute("name") || "";
99
+ }
100
+ set name(value) {
101
+ this.setAttribute("name", value);
102
+ }
103
+ };
104
+ _content = new WeakMap();
105
+ UHTMLDetailsElement.observedAttributes = [OPEN];
106
+ var UHTMLSummaryElement = class extends UHTMLElement {
107
+ connectedCallback() {
108
+ this.role = "button";
109
+ this.slot = "summary";
110
+ this.tabIndex = 0;
111
+ }
112
+ };
113
+ customElements.define("u-details", UHTMLDetailsElement);
114
+ customElements.define("u-summary", UHTMLSummaryElement);
115
+
116
+ exports.UHTMLDetailsElement = UHTMLDetailsElement;
117
+ exports.UHTMLSummaryElement = UHTMLSummaryElement;
@@ -31,11 +31,13 @@ function useSynchronizedAnimation(animationName) {
31
31
  if (myAnimation && myAnimation === firstOfType) {
32
32
  myAnimation.currentTime = 0;
33
33
  }
34
- if (myAnimation && firstOfType && myAnimation !== firstOfType) {
34
+ if (myAnimation &&
35
+ firstOfType?.currentTime &&
36
+ myAnimation !== firstOfType) {
35
37
  myAnimation.currentTime = firstOfType.currentTime;
36
38
  }
37
39
  return () => {
38
- if (myAnimation && firstOfType) {
40
+ if (myAnimation && firstOfType?.currentTime) {
39
41
  myAnimation.currentTime = firstOfType.currentTime;
40
42
  }
41
43
  };
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { clsx } from '../../node_modules/clsx/dist/lite.js';
4
+ import { forwardRef } from 'react';
5
+
6
+ /**
7
+ * Accordion component, contains `Accordion.Item` components.
8
+ */
9
+ const Accordion = forwardRef(function Accordion({ border = false, color = 'neutral', className, ...rest }, ref) {
10
+ return (jsx("div", { className: clsx('ds-accordion-group', className), "data-border": border || undefined, "data-color": color, ref: ref, ...rest }));
11
+ });
12
+
13
+ export { Accordion };
@@ -1,9 +1,6 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { clsx } from '../../node_modules/clsx/dist/lite.js';
4
- import { forwardRef, useContext } from 'react';
5
- import { AccordionItemContext } from './AccordionItem.js';
6
- import { AnimateHeight } from '../../utilities/AnimateHeight/AnimateHeight.js';
3
+ import { forwardRef } from 'react';
7
4
  import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
8
5
 
9
6
  /**
@@ -11,14 +8,8 @@ import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
11
8
  * @example
12
9
  * <AccordionContent>Content</AccordionContent>
13
10
  */
14
- const AccordionContent = forwardRef(({ children, className, ...rest }, ref) => {
15
- const context = useContext(AccordionItemContext);
16
- if (context === null) {
17
- console.error('<Accordion.Content> has to be used within an <Accordion.Item>');
18
- return null;
19
- }
20
- return (jsx(AnimateHeight, { id: context.contentId, open: context.open, children: jsx(Paragraph, { asChild: true, size: 'sm', children: jsx("div", { ref: ref, className: clsx('ds-accordion__content', className), ...rest, children: children }) }) }));
11
+ const AccordionContent = forwardRef(function AccordionContent(rest, ref) {
12
+ return (jsx(Paragraph, { asChild: true, size: 'sm', children: jsx("div", { ref: ref, ...rest }) }));
21
13
  });
22
- AccordionContent.displayName = 'AccordionContent';
23
14
 
24
15
  export { AccordionContent };
@@ -1,29 +1,17 @@
1
1
  'use client';
2
- import { jsx, jsxs } from 'react/jsx-runtime';
3
- import { ChevronDownIcon } from '@navikt/aksel-icons';
2
+ import { jsx } from 'react/jsx-runtime';
4
3
  import { clsx } from '../../node_modules/clsx/dist/lite.js';
5
- import { forwardRef, useContext } from 'react';
6
- import { AccordionItemContext } from './AccordionItem.js';
7
- import { Heading } from '../Typography/Heading/Heading.js';
4
+ import { forwardRef } from 'react';
8
5
  import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
9
6
 
10
7
  /**
11
- * Accordion heading component, contains a button to toggle the content.
8
+ * Accordion header component, contains a button to toggle the content.
12
9
  * @example
13
- * <AccordionHeading>Header</AccordionHeading>
10
+ * <AccordionHeader>Header</AccordionHeader>
14
11
  */
15
- const AccordionHeading = forwardRef(({ level = 1, children, className, onHeaderClick, ...rest }, ref) => {
16
- const context = useContext(AccordionItemContext);
17
- if (context === null) {
18
- console.error('<Accordion.Heading> has to be used within an <Accordion.Item>');
19
- return null;
20
- }
21
- const handleClick = (e) => {
22
- context.toggleOpen();
23
- onHeaderClick?.(e);
24
- };
25
- return (jsx(Heading, { ref: ref, size: 'xs', level: level, className: clsx('ds-accordion__heading', className), ...rest, children: jsxs("button", { type: 'button', className: clsx('ds-accordion__button', `ds-focus`), onClick: handleClick, "aria-expanded": context.open, "aria-controls": context.contentId, children: [jsx(ChevronDownIcon, { "aria-hidden": true, className: 'ds-accordion__expand-icon', fontSize: '1.5rem' }), jsx(Paragraph, { asChild: true, size: 'sm', children: jsx("span", { children: children }) })] }) }));
12
+ const AccordionHeading = forwardRef(function AccordionHeading({ className, ...rest }, ref) {
13
+ return (jsx(Paragraph, { asChild: true, size: 'sm', children: jsx("u-summary", { class: clsx('ds-focus ds-paragraph ds-paragraph--sm ds-line-height--md', // Very TMP fix awaiting CSS modules
14
+ className), ref: ref, ...rest }) }));
26
15
  });
27
- AccordionHeading.displayName = 'AccordionHeading';
28
16
 
29
17
  export { AccordionHeading };
@@ -1,30 +1,76 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
+ import { useMergeRefs } from '../../node_modules/@floating-ui/react/dist/floating-ui.react.js';
3
4
  import { clsx } from '../../node_modules/clsx/dist/lite.js';
4
- import { createContext, forwardRef, useState, useId } from 'react';
5
+ import { forwardRef, useState, useRef, useEffect } from 'react';
6
+ import '../../node_modules/@u-elements/u-details/dist/u-details.js';
5
7
 
6
- const AccordionItemContext = createContext(null);
7
8
  /**
8
9
  * Accordion item component, contains `Accordion.Header` and `Accordion.Content` components.
9
10
  * @example
10
11
  * <AccordionItem>
11
- * <AccordionHeading>Header</AccordionHeading>
12
+ * <AccordionHeader>Header</AccordionHeader>
12
13
  * <AccordionContent>Content</AccordionContent>
13
14
  * </AccordionItem>
14
15
  */
15
- const AccordionItem = forwardRef(({ children, className, open, defaultOpen = false, ...rest }, ref) => {
16
- const [internalOpen, setInternalOpen] = useState(defaultOpen);
17
- const contentId = useId();
18
- return (jsx("div", { className: clsx('ds-accordion__item', (open ?? internalOpen) && 'ds-accordion__item--open', className), ref: ref, ...rest, children: jsx(AccordionItemContext.Provider, { value: {
19
- open: open ?? internalOpen,
20
- toggleOpen: () => {
21
- if (open === undefined) {
22
- setInternalOpen((iOpen) => !iOpen);
23
- }
24
- },
25
- contentId: contentId,
26
- }, children: children }) }));
16
+ const AccordionItem = forwardRef(function AccordionItem({ className, open, defaultOpen = false, onFound, ...rest }, ref) {
17
+ const [internalOpen, setInternalOpen] = useState(open ?? defaultOpen);
18
+ const initialOpen = useRef(internalOpen); // Allow rendering initial open state on server, but animate in browser
19
+ const controlledOpen = useRef(internalOpen); // Using ref so we can access it inside useEffect without unbinding/binding event listeners
20
+ const detailsRef = useRef(null);
21
+ const mergedRefs = useMergeRefs([detailsRef, ref]);
22
+ controlledOpen.current = open ?? internalOpen; // Update controlledOpen on prop change
23
+ // Control state with a useEffect to animate on prop change and prevent native <details> toggle
24
+ useEffect(() => {
25
+ const details = detailsRef.current;
26
+ const summary = details?.querySelector(':scope > :is(summary,u-summary)');
27
+ const handleSummaryClick = (event) => {
28
+ event?.preventDefault(); // Prevent native <details> toggle so we can animate
29
+ setInternalOpen((open) => !open);
30
+ };
31
+ const handleToggle = () => {
32
+ if (!details || details.open === controlledOpen.current)
33
+ return;
34
+ onFound?.();
35
+ setInternalOpen(details?.open || false);
36
+ window.requestAnimationFrame(() => {
37
+ details.open = controlledOpen.current;
38
+ }); // Let onFound run before correcting state
39
+ };
40
+ details?.addEventListener('toggle', handleToggle, true);
41
+ summary?.addEventListener('click', handleSummaryClick);
42
+ return () => {
43
+ details?.removeEventListener('toggle', handleToggle, true);
44
+ summary?.removeEventListener('click', handleSummaryClick);
45
+ };
46
+ }, []);
47
+ useEffect(() => {
48
+ animateHeight(detailsRef.current, controlledOpen.current);
49
+ }, [controlledOpen.current]);
50
+ return (jsx("u-details", { class: clsx('ds-accordion__item', className), open: initialOpen.current || undefined, ref: mergedRefs, ...rest }));
27
51
  });
28
- AccordionItem.displayName = 'AccordionItem';
52
+ const animateHeight = (details, open) => {
53
+ const content = details?.querySelector(':scope > :not(summary, u-summary)');
54
+ const hasContent = content instanceof HTMLElement;
55
+ const hasAnimate = details && 'animate' in details;
56
+ const hasReducedMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)').matches;
57
+ details?.setAttribute('data-chevron-open', `${open}`); // Make flip on click
58
+ if (hasReducedMotion || !hasAnimate || !hasContent) {
59
+ if (details)
60
+ details.open = open;
61
+ }
62
+ else if (details.open !== open) {
63
+ details.open = true;
64
+ const opened = `${content.scrollHeight}px`;
65
+ content.style.overflow = 'clip'; // Clip content while animating
66
+ content.animate({
67
+ height: [open ? '0px' : opened, open ? opened : '0px'],
68
+ paddingBlock: [open ? '0px' : '', open ? '' : '0px'],
69
+ }, { duration: 400, easing: 'ease-in-out' }).onfinish = () => {
70
+ content.style.removeProperty('overflow'); // Restore overlow
71
+ details.open = open;
72
+ };
73
+ }
74
+ };
29
75
 
30
- export { AccordionItem, AccordionItemContext };
76
+ export { AccordionItem };
@@ -1,27 +1,25 @@
1
1
  'use client';
2
+ import { Accordion as Accordion$1 } from './Accordion.js';
2
3
  import { AccordionContent } from './AccordionContent.js';
3
4
  import { AccordionHeading } from './AccordionHeading.js';
4
5
  import { AccordionItem } from './AccordionItem.js';
5
- import { AccordionRoot } from './AccordionRoot.js';
6
6
 
7
7
  /**
8
8
  * Accordions are used to toggle the visibility of content.
9
9
  * @example
10
- * <Accordion.Root>
10
+ * <Accordion>
11
11
  * <Accordion.Item>
12
12
  * <Accordion.Heading>Heading 1</Accordion.Heading>
13
13
  * <Accordion.Content>Content 1</Accordion.Content>
14
14
  * </Accordion.Item>
15
- * <Accordion.Item>
15
+ * <Accordion>
16
16
  */
17
- const Accordion = {};
18
- Accordion.Root = AccordionRoot;
17
+ const Accordion = Accordion$1;
19
18
  Accordion.Heading = AccordionHeading;
20
19
  Accordion.Content = AccordionContent;
21
20
  Accordion.Item = AccordionItem;
22
- Accordion.Root.displayName = 'Accordion.Root';
23
21
  Accordion.Heading.displayName = 'Accordion.Heading';
24
22
  Accordion.Content.displayName = 'Accordion.Content';
25
23
  Accordion.Item.displayName = 'Accordion.Item';
26
24
 
27
- export { Accordion, AccordionContent, AccordionHeading, AccordionItem, AccordionRoot };
25
+ export { Accordion, AccordionContent, AccordionHeading, AccordionItem };
@@ -1,31 +1,16 @@
1
1
  'use client';
2
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
- import { InformationSquareFillIcon, ExclamationmarkTriangleFillIcon, CheckmarkCircleFillIcon, XMarkOctagonFillIcon } from '@navikt/aksel-icons';
2
+ import { jsx } from 'react/jsx-runtime';
4
3
  import { clsx } from '../../node_modules/clsx/dist/lite.js';
5
4
  import { forwardRef } from 'react';
6
5
  import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
7
6
 
8
- const icons = {
9
- info: {
10
- Icon: InformationSquareFillIcon,
11
- title: 'Informasjon',
12
- },
13
- warning: { Icon: ExclamationmarkTriangleFillIcon, title: 'Advarsel' },
14
- success: { Icon: CheckmarkCircleFillIcon, title: 'Suksess' },
15
- danger: {
16
- Icon: XMarkOctagonFillIcon,
17
- title: 'Feil',
18
- },
19
- };
20
7
  /**
21
8
  * Alerts are used to inform users about important information, warnings, errors, or success.
22
9
  * @example
23
- * <Alert severity='info'>Dette er en informasjonsmelding</Alert>
10
+ * <Alert color='info'>Dette er en informasjonsmelding</Alert>
24
11
  */
25
- const Alert = forwardRef(({ severity = 'info', iconTitle, children, size = 'md', className, ...rest }, ref) => {
26
- const { Icon, title } = icons[severity];
27
- return (jsx("div", { ref: ref, className: clsx('ds-alert', `ds-alert--${size}`, `ds-alert--${severity}`, className), ...rest, children: jsxs(Fragment, { children: [jsx(Icon, { title: iconTitle || title, className: 'ds-alert__icon' }), jsx(Paragraph, { asChild: true, size: size, className: 'ds-alert__content', children: jsx("span", { children: children }) })] }) }));
12
+ const Alert = forwardRef(function Alert({ color = 'info', size = 'md', className, ...rest }, ref) {
13
+ return (jsx(Paragraph, { asChild: true, size: size, children: jsx("div", { className: clsx('ds-alert', className), "data-color": color, "data-size": size, ref: ref, ...rest }) }));
28
14
  });
29
- Alert.displayName = 'Alert';
30
15
 
31
16
  export { Alert };
@@ -0,0 +1,34 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { Slot } from '../../node_modules/@radix-ui/react-slot/dist/index.js';
4
+ import { clsx } from '../../node_modules/clsx/dist/lite.js';
5
+ import { forwardRef, Fragment } from 'react';
6
+
7
+ const fontSizeMap = {
8
+ xs: 'ds-paragraph--xs',
9
+ sm: 'ds-heading--2xs',
10
+ md: 'ds-heading--sm',
11
+ lg: 'ds-heading--md',
12
+ };
13
+ /**
14
+ * Avatars are used to represent people or entities.
15
+ *
16
+ * @example
17
+ * <Avatar aria-label="John Doe">JD</Avatar>
18
+ *
19
+ * @example
20
+ * <Avatar aria-label="John Doe">
21
+ * <img src='…' alt='John Doe' />
22
+ * </Avatar>
23
+ *
24
+ * @example
25
+ * <Avatar aria-label="John Doe">
26
+ * <Icon />
27
+ * </Avatar>
28
+ */
29
+ const Avatar = forwardRef(function Avatar({ 'aria-label': ariaLabel, color = 'accent', size = 'md', variant = 'circle', className, children, ...rest }, ref) {
30
+ const Component = children && typeof children !== 'string' ? Slot : Fragment;
31
+ return (jsx("span", { ref: ref, className: clsx('ds-avatar', fontSizeMap[size], className), "data-variant": variant, "data-color": color, "data-size": size, role: 'img', "aria-label": ariaLabel, ...rest, children: jsx(Component, { ...(children ? { 'aria-hidden': true } : {}), children: children }) }));
32
+ });
33
+
34
+ export { Avatar };