@uppsala-designsystem/ui 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (594) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +9 -0
  3. package/dist/cjs/components/Alert/Alert.js +18 -0
  4. package/dist/cjs/components/Avatar/Avatar.js +31 -0
  5. package/dist/cjs/components/Badge/Badge.js +23 -0
  6. package/dist/cjs/components/Badge/BadgePosition.js +21 -0
  7. package/dist/cjs/components/Badge/index.js +17 -0
  8. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js +28 -0
  9. package/dist/cjs/components/Breadcrumbs/BreadcrumbsItem.js +11 -0
  10. package/dist/cjs/components/Breadcrumbs/BreadcrumbsLink.js +12 -0
  11. package/dist/cjs/components/Breadcrumbs/BreadcrumbsList.js +21 -0
  12. package/dist/cjs/components/Breadcrumbs/index.js +39 -0
  13. package/dist/cjs/components/Button/Button.js +25 -0
  14. package/dist/cjs/components/Card/Card.js +43 -0
  15. package/dist/cjs/components/Card/CardBlock.js +14 -0
  16. package/dist/cjs/components/Card/index.js +23 -0
  17. package/dist/cjs/components/Checkbox/Checkbox.js +21 -0
  18. package/dist/cjs/components/Chip/Chips.js +52 -0
  19. package/dist/cjs/components/Chip/index.js +21 -0
  20. package/dist/cjs/components/Details/Details.js +43 -0
  21. package/dist/cjs/components/Details/DetailsContent.js +17 -0
  22. package/dist/cjs/components/Details/DetailsSummary.js +18 -0
  23. package/dist/cjs/components/Details/index.js +26 -0
  24. package/dist/cjs/components/Dialog/Dialog.js +82 -0
  25. package/dist/cjs/components/Dialog/DialogBlock.js +30 -0
  26. package/dist/cjs/components/Dialog/DialogTrigger.js +33 -0
  27. package/dist/cjs/components/Dialog/DialogTriggerContext.js +28 -0
  28. package/dist/cjs/components/Dialog/index.js +34 -0
  29. package/dist/cjs/components/Divider/Divider.js +20 -0
  30. package/dist/cjs/components/Dropdown/Dropdown.js +40 -0
  31. package/dist/cjs/components/Dropdown/DropdownButton.js +12 -0
  32. package/dist/cjs/components/Dropdown/DropdownHeading.js +12 -0
  33. package/dist/cjs/components/Dropdown/DropdownItem.js +11 -0
  34. package/dist/cjs/components/Dropdown/DropdownList.js +11 -0
  35. package/dist/cjs/components/Dropdown/DropdownTrigger.js +13 -0
  36. package/dist/cjs/components/Dropdown/DropdownTriggerContext.js +29 -0
  37. package/dist/cjs/components/Dropdown/index.js +49 -0
  38. package/dist/cjs/components/ErrorSummary/ErrorSummary.js +37 -0
  39. package/dist/cjs/components/ErrorSummary/ErrorSummaryHeading.js +18 -0
  40. package/dist/cjs/components/ErrorSummary/ErrorSummaryItem.js +19 -0
  41. package/dist/cjs/components/ErrorSummary/ErrorSummaryLink.js +15 -0
  42. package/dist/cjs/components/ErrorSummary/ErrorSummaryList.js +12 -0
  43. package/dist/cjs/components/ErrorSummary/index.js +41 -0
  44. package/dist/cjs/components/Field/Field.js +28 -0
  45. package/dist/cjs/components/Field/FieldAffix.js +37 -0
  46. package/dist/cjs/components/Field/FieldCounter.js +40 -0
  47. package/dist/cjs/components/Field/FieldDescription.js +11 -0
  48. package/dist/cjs/components/Field/fieldObserver.js +102 -0
  49. package/dist/cjs/components/Field/index.js +35 -0
  50. package/dist/cjs/components/Fieldset/Fieldset.js +27 -0
  51. package/dist/cjs/components/Fieldset/FieldsetDescription.js +20 -0
  52. package/dist/cjs/components/Fieldset/FieldsetLegend.js +18 -0
  53. package/dist/cjs/components/Fieldset/index.js +32 -0
  54. package/dist/cjs/components/Heading/Heading.js +20 -0
  55. package/dist/cjs/components/InfoCard/InfoCard.js +24 -0
  56. package/dist/cjs/components/Input/Input.js +22 -0
  57. package/dist/cjs/components/Label/Label.js +20 -0
  58. package/dist/cjs/components/Link/Link.js +21 -0
  59. package/dist/cjs/components/List/ListItem.js +13 -0
  60. package/dist/cjs/components/List/Lists.js +41 -0
  61. package/dist/cjs/components/List/index.js +19 -0
  62. package/dist/cjs/components/Pagination/Pagination.js +32 -0
  63. package/dist/cjs/components/Pagination/PaginationButton.js +20 -0
  64. package/dist/cjs/components/Pagination/PaginationItem.js +23 -0
  65. package/dist/cjs/components/Pagination/PaginationList.js +25 -0
  66. package/dist/cjs/components/Pagination/index.js +39 -0
  67. package/dist/cjs/components/Paragraph/Paragraph.js +21 -0
  68. package/dist/cjs/components/Popover/Popover.js +135 -0
  69. package/dist/cjs/components/Popover/PopoverTrigger.js +45 -0
  70. package/dist/cjs/components/Popover/PopoverTriggerContext.js +27 -0
  71. package/dist/cjs/components/Popover/index.js +28 -0
  72. package/dist/cjs/components/Radio/Radio.js +21 -0
  73. package/dist/cjs/components/Search/Search.js +28 -0
  74. package/dist/cjs/components/Search/SearchButton.js +21 -0
  75. package/dist/cjs/components/Search/SearchClear.js +47 -0
  76. package/dist/cjs/components/Search/SearchInput.js +22 -0
  77. package/dist/cjs/components/Search/index.js +37 -0
  78. package/dist/cjs/components/Select/Select.js +31 -0
  79. package/dist/cjs/components/Select/SelectOptgroup.js +24 -0
  80. package/dist/cjs/components/Select/SelectOption.js +22 -0
  81. package/dist/cjs/components/Select/index.js +26 -0
  82. package/dist/cjs/components/Skeleton/Skeleton.js +27 -0
  83. package/dist/cjs/components/SkipLink/SkipLink.js +19 -0
  84. package/dist/cjs/components/Spinner/Spinner.js +23 -0
  85. package/dist/cjs/components/Suggestion/Suggestion.js +101 -0
  86. package/dist/cjs/components/Suggestion/SuggestionChips.js +13 -0
  87. package/dist/cjs/components/Suggestion/SuggestionClear.js +24 -0
  88. package/dist/cjs/components/Suggestion/SuggestionEmpty.js +23 -0
  89. package/dist/cjs/components/Suggestion/SuggestionInput.js +34 -0
  90. package/dist/cjs/components/Suggestion/SuggestionList.js +51 -0
  91. package/dist/cjs/components/Suggestion/SuggestionOption.js +11 -0
  92. package/dist/cjs/components/Suggestion/index.js +71 -0
  93. package/dist/cjs/components/Switch/Switch.js +20 -0
  94. package/dist/cjs/components/Table/Table.js +37 -0
  95. package/dist/cjs/components/Table/TableBody.js +22 -0
  96. package/dist/cjs/components/Table/TableCell.js +17 -0
  97. package/dist/cjs/components/Table/TableFoot.js +22 -0
  98. package/dist/cjs/components/Table/TableHead.js +22 -0
  99. package/dist/cjs/components/Table/TableHeaderCell.js +17 -0
  100. package/dist/cjs/components/Table/TableRow.js +20 -0
  101. package/dist/cjs/components/Table/index.js +59 -0
  102. package/dist/cjs/components/Tabs/Tabs.js +43 -0
  103. package/dist/cjs/components/Tabs/TabsList.js +23 -0
  104. package/dist/cjs/components/Tabs/TabsPanel.js +31 -0
  105. package/dist/cjs/components/Tabs/TabsTab.js +21 -0
  106. package/dist/cjs/components/Tabs/index.js +36 -0
  107. package/dist/cjs/components/Tag/Tag.js +18 -0
  108. package/dist/cjs/components/Textarea/Textarea.js +18 -0
  109. package/dist/cjs/components/Textfield/Textfield.js +27 -0
  110. package/dist/cjs/components/Timeline/Timeline.js +25 -0
  111. package/dist/cjs/components/Timeline/TimelineItem.js +23 -0
  112. package/dist/cjs/components/Timeline/index.js +27 -0
  113. package/dist/cjs/components/ToggleGroup/ToggleGroup.js +129 -0
  114. package/dist/cjs/components/ToggleGroup/ToggleGroupItem.js +20 -0
  115. package/dist/cjs/components/ToggleGroup/index.js +23 -0
  116. package/dist/cjs/components/ToggleGroup/useToggleGroupitem.js +32 -0
  117. package/dist/cjs/components/Tooltip/Tooltip.js +122 -0
  118. package/dist/cjs/components/ValidationMessage/ValidationMessage.js +20 -0
  119. package/dist/cjs/index.js +242 -0
  120. package/dist/cjs/layouts/Container/Container.js +19 -0
  121. package/dist/cjs/layouts/Grid/GridCol.js +12 -0
  122. package/dist/cjs/layouts/Grid/GridRow.js +12 -0
  123. package/dist/cjs/utilities/RovingFocus/RovingFocusItem.js +72 -0
  124. package/dist/cjs/utilities/RovingFocus/RovingFocusRoot.js +72 -0
  125. package/dist/cjs/utilities/RovingFocus/useRovingFocus.js +43 -0
  126. package/dist/cjs/utilities/hooks/useCheckboxGroup/useCheckboxGroup.js +121 -0
  127. package/dist/cjs/utilities/hooks/useDebounceCallback/useDebounceCallback.js +27 -0
  128. package/dist/cjs/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +9 -0
  129. package/dist/cjs/utilities/hooks/useMediaQuery/useMediaQuery.js +49 -0
  130. package/dist/cjs/utilities/hooks/useMergeRefs/useMergeRefs.js +57 -0
  131. package/dist/cjs/utilities/hooks/usePagination/usePagination.js +97 -0
  132. package/dist/cjs/utilities/hooks/useRadioGroup/useRadioGroup.js +99 -0
  133. package/dist/cjs/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js +48 -0
  134. package/dist/cjs/utilities/omit/omit.js +28 -0
  135. package/dist/esm/components/Alert/Alert.js +16 -0
  136. package/dist/esm/components/Avatar/Avatar.js +29 -0
  137. package/dist/esm/components/Badge/Badge.js +21 -0
  138. package/dist/esm/components/Badge/BadgePosition.js +19 -0
  139. package/dist/esm/components/Badge/index.js +14 -0
  140. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +26 -0
  141. package/dist/esm/components/Breadcrumbs/BreadcrumbsItem.js +9 -0
  142. package/dist/esm/components/Breadcrumbs/BreadcrumbsLink.js +10 -0
  143. package/dist/esm/components/Breadcrumbs/BreadcrumbsList.js +19 -0
  144. package/dist/esm/components/Breadcrumbs/index.js +34 -0
  145. package/dist/esm/components/Button/Button.js +23 -0
  146. package/dist/esm/components/Card/Card.js +41 -0
  147. package/dist/esm/components/Card/CardBlock.js +12 -0
  148. package/dist/esm/components/Card/index.js +20 -0
  149. package/dist/esm/components/Checkbox/Checkbox.js +19 -0
  150. package/dist/esm/components/Chip/Chips.js +47 -0
  151. package/dist/esm/components/Chip/index.js +15 -0
  152. package/dist/esm/components/Details/Details.js +41 -0
  153. package/dist/esm/components/Details/DetailsContent.js +15 -0
  154. package/dist/esm/components/Details/DetailsSummary.js +16 -0
  155. package/dist/esm/components/Details/index.js +22 -0
  156. package/dist/esm/components/Dialog/Dialog.js +80 -0
  157. package/dist/esm/components/Dialog/DialogBlock.js +28 -0
  158. package/dist/esm/components/Dialog/DialogTrigger.js +31 -0
  159. package/dist/esm/components/Dialog/DialogTriggerContext.js +25 -0
  160. package/dist/esm/components/Dialog/index.js +29 -0
  161. package/dist/esm/components/Divider/Divider.js +18 -0
  162. package/dist/esm/components/Dropdown/Dropdown.js +38 -0
  163. package/dist/esm/components/Dropdown/DropdownButton.js +10 -0
  164. package/dist/esm/components/Dropdown/DropdownHeading.js +10 -0
  165. package/dist/esm/components/Dropdown/DropdownItem.js +9 -0
  166. package/dist/esm/components/Dropdown/DropdownList.js +9 -0
  167. package/dist/esm/components/Dropdown/DropdownTrigger.js +11 -0
  168. package/dist/esm/components/Dropdown/DropdownTriggerContext.js +27 -0
  169. package/dist/esm/components/Dropdown/index.js +41 -0
  170. package/dist/esm/components/ErrorSummary/ErrorSummary.js +34 -0
  171. package/dist/esm/components/ErrorSummary/ErrorSummaryHeading.js +16 -0
  172. package/dist/esm/components/ErrorSummary/ErrorSummaryItem.js +17 -0
  173. package/dist/esm/components/ErrorSummary/ErrorSummaryLink.js +13 -0
  174. package/dist/esm/components/ErrorSummary/ErrorSummaryList.js +10 -0
  175. package/dist/esm/components/ErrorSummary/index.js +35 -0
  176. package/dist/esm/components/Field/Field.js +26 -0
  177. package/dist/esm/components/Field/FieldAffix.js +34 -0
  178. package/dist/esm/components/Field/FieldCounter.js +38 -0
  179. package/dist/esm/components/Field/FieldDescription.js +9 -0
  180. package/dist/esm/components/Field/fieldObserver.js +97 -0
  181. package/dist/esm/components/Field/index.js +29 -0
  182. package/dist/esm/components/Fieldset/Fieldset.js +25 -0
  183. package/dist/esm/components/Fieldset/FieldsetDescription.js +18 -0
  184. package/dist/esm/components/Fieldset/FieldsetLegend.js +16 -0
  185. package/dist/esm/components/Fieldset/index.js +28 -0
  186. package/dist/esm/components/Heading/Heading.js +18 -0
  187. package/dist/esm/components/InfoCard/InfoCard.js +22 -0
  188. package/dist/esm/components/Input/Input.js +20 -0
  189. package/dist/esm/components/Label/Label.js +18 -0
  190. package/dist/esm/components/Link/Link.js +19 -0
  191. package/dist/esm/components/List/ListItem.js +11 -0
  192. package/dist/esm/components/List/Lists.js +38 -0
  193. package/dist/esm/components/List/index.js +14 -0
  194. package/dist/esm/components/Pagination/Pagination.js +30 -0
  195. package/dist/esm/components/Pagination/PaginationButton.js +18 -0
  196. package/dist/esm/components/Pagination/PaginationItem.js +21 -0
  197. package/dist/esm/components/Pagination/PaginationList.js +23 -0
  198. package/dist/esm/components/Pagination/index.js +34 -0
  199. package/dist/esm/components/Paragraph/Paragraph.js +19 -0
  200. package/dist/esm/components/Popover/Popover.js +133 -0
  201. package/dist/esm/components/Popover/PopoverTrigger.js +43 -0
  202. package/dist/esm/components/Popover/PopoverTriggerContext.js +24 -0
  203. package/dist/esm/components/Popover/index.js +24 -0
  204. package/dist/esm/components/Radio/Radio.js +19 -0
  205. package/dist/esm/components/Search/Search.js +26 -0
  206. package/dist/esm/components/Search/SearchButton.js +19 -0
  207. package/dist/esm/components/Search/SearchClear.js +44 -0
  208. package/dist/esm/components/Search/SearchInput.js +20 -0
  209. package/dist/esm/components/Search/index.js +32 -0
  210. package/dist/esm/components/Select/Select.js +29 -0
  211. package/dist/esm/components/Select/SelectOptgroup.js +22 -0
  212. package/dist/esm/components/Select/SelectOption.js +20 -0
  213. package/dist/esm/components/Select/index.js +22 -0
  214. package/dist/esm/components/Skeleton/Skeleton.js +25 -0
  215. package/dist/esm/components/SkipLink/SkipLink.js +17 -0
  216. package/dist/esm/components/Spinner/Spinner.js +21 -0
  217. package/dist/esm/components/Suggestion/Suggestion.js +98 -0
  218. package/dist/esm/components/Suggestion/SuggestionChips.js +11 -0
  219. package/dist/esm/components/Suggestion/SuggestionClear.js +22 -0
  220. package/dist/esm/components/Suggestion/SuggestionEmpty.js +21 -0
  221. package/dist/esm/components/Suggestion/SuggestionInput.js +32 -0
  222. package/dist/esm/components/Suggestion/SuggestionList.js +49 -0
  223. package/dist/esm/components/Suggestion/SuggestionOption.js +9 -0
  224. package/dist/esm/components/Suggestion/index.js +56 -0
  225. package/dist/esm/components/Switch/Switch.js +18 -0
  226. package/dist/esm/components/Table/Table.js +35 -0
  227. package/dist/esm/components/Table/TableBody.js +20 -0
  228. package/dist/esm/components/Table/TableCell.js +15 -0
  229. package/dist/esm/components/Table/TableFoot.js +20 -0
  230. package/dist/esm/components/Table/TableHead.js +20 -0
  231. package/dist/esm/components/Table/TableHeaderCell.js +15 -0
  232. package/dist/esm/components/Table/TableRow.js +18 -0
  233. package/dist/esm/components/Table/index.js +51 -0
  234. package/dist/esm/components/Tabs/Tabs.js +40 -0
  235. package/dist/esm/components/Tabs/TabsList.js +21 -0
  236. package/dist/esm/components/Tabs/TabsPanel.js +29 -0
  237. package/dist/esm/components/Tabs/TabsTab.js +19 -0
  238. package/dist/esm/components/Tabs/index.js +31 -0
  239. package/dist/esm/components/Tag/Tag.js +16 -0
  240. package/dist/esm/components/Textarea/Textarea.js +16 -0
  241. package/dist/esm/components/Textfield/Textfield.js +25 -0
  242. package/dist/esm/components/Timeline/Timeline.js +23 -0
  243. package/dist/esm/components/Timeline/TimelineItem.js +21 -0
  244. package/dist/esm/components/Timeline/index.js +24 -0
  245. package/dist/esm/components/ToggleGroup/ToggleGroup.js +126 -0
  246. package/dist/esm/components/ToggleGroup/ToggleGroupItem.js +18 -0
  247. package/dist/esm/components/ToggleGroup/index.js +20 -0
  248. package/dist/esm/components/ToggleGroup/useToggleGroupitem.js +30 -0
  249. package/dist/esm/components/Tooltip/Tooltip.js +120 -0
  250. package/dist/esm/components/ValidationMessage/ValidationMessage.js +18 -0
  251. package/dist/esm/index.js +112 -0
  252. package/dist/esm/layouts/Container/Container.js +17 -0
  253. package/dist/esm/layouts/Grid/GridCol.js +10 -0
  254. package/dist/esm/layouts/Grid/GridRow.js +10 -0
  255. package/dist/esm/utilities/RovingFocus/RovingFocusItem.js +68 -0
  256. package/dist/esm/utilities/RovingFocus/RovingFocusRoot.js +69 -0
  257. package/dist/esm/utilities/RovingFocus/useRovingFocus.js +41 -0
  258. package/dist/esm/utilities/hooks/useCheckboxGroup/useCheckboxGroup.js +119 -0
  259. package/dist/esm/utilities/hooks/useDebounceCallback/useDebounceCallback.js +25 -0
  260. package/dist/esm/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +7 -0
  261. package/dist/esm/utilities/hooks/useMediaQuery/useMediaQuery.js +47 -0
  262. package/dist/esm/utilities/hooks/useMergeRefs/useMergeRefs.js +55 -0
  263. package/dist/esm/utilities/hooks/usePagination/usePagination.js +95 -0
  264. package/dist/esm/utilities/hooks/useRadioGroup/useRadioGroup.js +97 -0
  265. package/dist/esm/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js +46 -0
  266. package/dist/esm/utilities/omit/omit.js +26 -0
  267. package/dist/react-types.d.ts +11 -0
  268. package/dist/types/colors.d.ts +24 -0
  269. package/dist/types/colors.d.ts.map +1 -0
  270. package/dist/types/components/Alert/Alert.d.ts +27 -0
  271. package/dist/types/components/Alert/Alert.d.ts.map +1 -0
  272. package/dist/types/components/Alert/index.d.ts +3 -0
  273. package/dist/types/components/Alert/index.d.ts.map +1 -0
  274. package/dist/types/components/Avatar/Avatar.d.ts +72 -0
  275. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -0
  276. package/dist/types/components/Avatar/index.d.ts +3 -0
  277. package/dist/types/components/Avatar/index.d.ts.map +1 -0
  278. package/dist/types/components/Badge/Badge.d.ts +58 -0
  279. package/dist/types/components/Badge/Badge.d.ts.map +1 -0
  280. package/dist/types/components/Badge/BadgePosition.d.ts +41 -0
  281. package/dist/types/components/Badge/BadgePosition.d.ts.map +1 -0
  282. package/dist/types/components/Badge/index.d.ts +23 -0
  283. package/dist/types/components/Badge/index.d.ts.map +1 -0
  284. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +36 -0
  285. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  286. package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts +4 -0
  287. package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts.map +1 -0
  288. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts +7 -0
  289. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts.map +1 -0
  290. package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts +4 -0
  291. package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts.map +1 -0
  292. package/dist/types/components/Breadcrumbs/index.d.ts +37 -0
  293. package/dist/types/components/Breadcrumbs/index.d.ts.map +1 -0
  294. package/dist/types/components/Button/Button.d.ts +77 -0
  295. package/dist/types/components/Button/Button.d.ts.map +1 -0
  296. package/dist/types/components/Button/index.d.ts +3 -0
  297. package/dist/types/components/Button/index.d.ts.map +1 -0
  298. package/dist/types/components/Card/Card.d.ts +44 -0
  299. package/dist/types/components/Card/Card.d.ts.map +1 -0
  300. package/dist/types/components/Card/CardBlock.d.ts +16 -0
  301. package/dist/types/components/Card/CardBlock.d.ts.map +1 -0
  302. package/dist/types/components/Card/index.d.ts +24 -0
  303. package/dist/types/components/Card/index.d.ts.map +1 -0
  304. package/dist/types/components/Checkbox/Checkbox.d.ts +34 -0
  305. package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -0
  306. package/dist/types/components/Checkbox/index.d.ts +3 -0
  307. package/dist/types/components/Checkbox/index.d.ts.map +1 -0
  308. package/dist/types/components/Chip/Chips.d.ts +43 -0
  309. package/dist/types/components/Chip/Chips.d.ts.map +1 -0
  310. package/dist/types/components/Chip/index.d.ts +18 -0
  311. package/dist/types/components/Chip/index.d.ts.map +1 -0
  312. package/dist/types/components/Details/Details.d.ts +50 -0
  313. package/dist/types/components/Details/Details.d.ts.map +1 -0
  314. package/dist/types/components/Details/DetailsContent.d.ts +10 -0
  315. package/dist/types/components/Details/DetailsContent.d.ts.map +1 -0
  316. package/dist/types/components/Details/DetailsSummary.d.ts +16 -0
  317. package/dist/types/components/Details/DetailsSummary.d.ts.map +1 -0
  318. package/dist/types/components/Details/index.d.ts +22 -0
  319. package/dist/types/components/Details/index.d.ts.map +1 -0
  320. package/dist/types/components/Dialog/Dialog.d.ts +95 -0
  321. package/dist/types/components/Dialog/Dialog.d.ts.map +1 -0
  322. package/dist/types/components/Dialog/DialogBlock.d.ts +32 -0
  323. package/dist/types/components/Dialog/DialogBlock.d.ts.map +1 -0
  324. package/dist/types/components/Dialog/DialogTrigger.d.ts +23 -0
  325. package/dist/types/components/Dialog/DialogTrigger.d.ts.map +1 -0
  326. package/dist/types/components/Dialog/DialogTriggerContext.d.ts +21 -0
  327. package/dist/types/components/Dialog/DialogTriggerContext.d.ts.map +1 -0
  328. package/dist/types/components/Dialog/index.d.ts +46 -0
  329. package/dist/types/components/Dialog/index.d.ts.map +1 -0
  330. package/dist/types/components/Divider/Divider.d.ts +10 -0
  331. package/dist/types/components/Divider/Divider.d.ts.map +1 -0
  332. package/dist/types/components/Divider/index.d.ts +3 -0
  333. package/dist/types/components/Divider/index.d.ts.map +1 -0
  334. package/dist/types/components/Dropdown/Dropdown.d.ts +46 -0
  335. package/dist/types/components/Dropdown/Dropdown.d.ts.map +1 -0
  336. package/dist/types/components/Dropdown/DropdownButton.d.ts +4 -0
  337. package/dist/types/components/Dropdown/DropdownButton.d.ts.map +1 -0
  338. package/dist/types/components/Dropdown/DropdownHeading.d.ts +9 -0
  339. package/dist/types/components/Dropdown/DropdownHeading.d.ts.map +1 -0
  340. package/dist/types/components/Dropdown/DropdownItem.d.ts +4 -0
  341. package/dist/types/components/Dropdown/DropdownItem.d.ts.map +1 -0
  342. package/dist/types/components/Dropdown/DropdownList.d.ts +4 -0
  343. package/dist/types/components/Dropdown/DropdownList.d.ts.map +1 -0
  344. package/dist/types/components/Dropdown/DropdownTrigger.d.ts +4 -0
  345. package/dist/types/components/Dropdown/DropdownTrigger.d.ts.map +1 -0
  346. package/dist/types/components/Dropdown/DropdownTriggerContext.d.ts +25 -0
  347. package/dist/types/components/Dropdown/DropdownTriggerContext.d.ts.map +1 -0
  348. package/dist/types/components/Dropdown/index.d.ts +48 -0
  349. package/dist/types/components/Dropdown/index.d.ts.map +1 -0
  350. package/dist/types/components/ErrorSummary/ErrorSummary.d.ts +31 -0
  351. package/dist/types/components/ErrorSummary/ErrorSummary.d.ts.map +1 -0
  352. package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts +9 -0
  353. package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts.map +1 -0
  354. package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts +12 -0
  355. package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts.map +1 -0
  356. package/dist/types/components/ErrorSummary/ErrorSummaryLink.d.ts +10 -0
  357. package/dist/types/components/ErrorSummary/ErrorSummaryLink.d.ts.map +1 -0
  358. package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts +6 -0
  359. package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts.map +1 -0
  360. package/dist/types/components/ErrorSummary/index.d.ts +47 -0
  361. package/dist/types/components/ErrorSummary/index.d.ts.map +1 -0
  362. package/dist/types/components/Field/Field.d.ts +28 -0
  363. package/dist/types/components/Field/Field.d.ts.map +1 -0
  364. package/dist/types/components/Field/FieldAffix.d.ts +27 -0
  365. package/dist/types/components/Field/FieldAffix.d.ts.map +1 -0
  366. package/dist/types/components/Field/FieldCounter.d.ts +58 -0
  367. package/dist/types/components/Field/FieldCounter.d.ts.map +1 -0
  368. package/dist/types/components/Field/FieldDescription.d.ts +4 -0
  369. package/dist/types/components/Field/FieldDescription.d.ts.map +1 -0
  370. package/dist/types/components/Field/fieldObserver.d.ts +5 -0
  371. package/dist/types/components/Field/fieldObserver.d.ts.map +1 -0
  372. package/dist/types/components/Field/index.d.ts +35 -0
  373. package/dist/types/components/Field/index.d.ts.map +1 -0
  374. package/dist/types/components/Fieldset/Fieldset.d.ts +20 -0
  375. package/dist/types/components/Fieldset/Fieldset.d.ts.map +1 -0
  376. package/dist/types/components/Fieldset/FieldsetDescription.d.ts +16 -0
  377. package/dist/types/components/Fieldset/FieldsetDescription.d.ts.map +1 -0
  378. package/dist/types/components/Fieldset/FieldsetLegend.d.ts +11 -0
  379. package/dist/types/components/Fieldset/FieldsetLegend.d.ts.map +1 -0
  380. package/dist/types/components/Fieldset/index.d.ts +30 -0
  381. package/dist/types/components/Fieldset/index.d.ts.map +1 -0
  382. package/dist/types/components/Heading/Heading.d.ts +52 -0
  383. package/dist/types/components/Heading/Heading.d.ts.map +1 -0
  384. package/dist/types/components/Heading/index.d.ts +3 -0
  385. package/dist/types/components/Heading/index.d.ts.map +1 -0
  386. package/dist/types/components/InfoCard/InfoCard.d.ts +32 -0
  387. package/dist/types/components/InfoCard/InfoCard.d.ts.map +1 -0
  388. package/dist/types/components/InfoCard/index.d.ts +3 -0
  389. package/dist/types/components/InfoCard/index.d.ts.map +1 -0
  390. package/dist/types/components/Input/Input.d.ts +62 -0
  391. package/dist/types/components/Input/Input.d.ts.map +1 -0
  392. package/dist/types/components/Input/index.d.ts +3 -0
  393. package/dist/types/components/Input/index.d.ts.map +1 -0
  394. package/dist/types/components/Label/Label.d.ts +33 -0
  395. package/dist/types/components/Label/Label.d.ts.map +1 -0
  396. package/dist/types/components/Label/index.d.ts +3 -0
  397. package/dist/types/components/Label/index.d.ts.map +1 -0
  398. package/dist/types/components/Link/Link.d.ts +32 -0
  399. package/dist/types/components/Link/Link.d.ts.map +1 -0
  400. package/dist/types/components/Link/index.d.ts +3 -0
  401. package/dist/types/components/Link/index.d.ts.map +1 -0
  402. package/dist/types/components/List/ListItem.d.ts +16 -0
  403. package/dist/types/components/List/ListItem.d.ts.map +1 -0
  404. package/dist/types/components/List/Lists.d.ts +47 -0
  405. package/dist/types/components/List/Lists.d.ts.map +1 -0
  406. package/dist/types/components/List/index.d.ts +17 -0
  407. package/dist/types/components/List/index.d.ts.map +1 -0
  408. package/dist/types/components/Pagination/Pagination.d.ts +46 -0
  409. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -0
  410. package/dist/types/components/Pagination/PaginationButton.d.ts +25 -0
  411. package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -0
  412. package/dist/types/components/Pagination/PaginationItem.d.ts +26 -0
  413. package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -0
  414. package/dist/types/components/Pagination/PaginationList.d.ts +28 -0
  415. package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -0
  416. package/dist/types/components/Pagination/index.d.ts +41 -0
  417. package/dist/types/components/Pagination/index.d.ts.map +1 -0
  418. package/dist/types/components/Paragraph/Paragraph.d.ts +41 -0
  419. package/dist/types/components/Paragraph/Paragraph.d.ts.map +1 -0
  420. package/dist/types/components/Paragraph/index.d.ts +3 -0
  421. package/dist/types/components/Paragraph/index.d.ts.map +1 -0
  422. package/dist/types/components/Popover/Popover.d.ts +123 -0
  423. package/dist/types/components/Popover/Popover.d.ts.map +1 -0
  424. package/dist/types/components/Popover/PopoverTrigger.d.ts +44 -0
  425. package/dist/types/components/Popover/PopoverTrigger.d.ts.map +1 -0
  426. package/dist/types/components/Popover/PopoverTriggerContext.d.ts +24 -0
  427. package/dist/types/components/Popover/PopoverTriggerContext.d.ts.map +1 -0
  428. package/dist/types/components/Popover/index.d.ts +35 -0
  429. package/dist/types/components/Popover/index.d.ts.map +1 -0
  430. package/dist/types/components/Radio/Radio.d.ts +34 -0
  431. package/dist/types/components/Radio/Radio.d.ts.map +1 -0
  432. package/dist/types/components/Radio/index.d.ts +3 -0
  433. package/dist/types/components/Radio/index.d.ts.map +1 -0
  434. package/dist/types/components/Search/Search.d.ts +20 -0
  435. package/dist/types/components/Search/Search.d.ts.map +1 -0
  436. package/dist/types/components/Search/SearchButton.d.ts +33 -0
  437. package/dist/types/components/Search/SearchButton.d.ts.map +1 -0
  438. package/dist/types/components/Search/SearchClear.d.ts +32 -0
  439. package/dist/types/components/Search/SearchClear.d.ts.map +1 -0
  440. package/dist/types/components/Search/SearchInput.d.ts +12 -0
  441. package/dist/types/components/Search/SearchInput.d.ts.map +1 -0
  442. package/dist/types/components/Search/index.d.ts +39 -0
  443. package/dist/types/components/Search/index.d.ts.map +1 -0
  444. package/dist/types/components/Select/Select.d.ts +38 -0
  445. package/dist/types/components/Select/Select.d.ts.map +1 -0
  446. package/dist/types/components/Select/SelectOptgroup.d.ts +27 -0
  447. package/dist/types/components/Select/SelectOptgroup.d.ts.map +1 -0
  448. package/dist/types/components/Select/SelectOption.d.ts +25 -0
  449. package/dist/types/components/Select/SelectOption.d.ts.map +1 -0
  450. package/dist/types/components/Select/index.d.ts +27 -0
  451. package/dist/types/components/Select/index.d.ts.map +1 -0
  452. package/dist/types/components/Skeleton/Skeleton.d.ts +37 -0
  453. package/dist/types/components/Skeleton/Skeleton.d.ts.map +1 -0
  454. package/dist/types/components/Skeleton/index.d.ts +3 -0
  455. package/dist/types/components/Skeleton/index.d.ts.map +1 -0
  456. package/dist/types/components/SkipLink/SkipLink.d.ts +31 -0
  457. package/dist/types/components/SkipLink/SkipLink.d.ts.map +1 -0
  458. package/dist/types/components/SkipLink/index.d.ts +3 -0
  459. package/dist/types/components/SkipLink/index.d.ts.map +1 -0
  460. package/dist/types/components/Spinner/Spinner.d.ts +25 -0
  461. package/dist/types/components/Spinner/Spinner.d.ts.map +1 -0
  462. package/dist/types/components/Spinner/index.d.ts +3 -0
  463. package/dist/types/components/Spinner/index.d.ts.map +1 -0
  464. package/dist/types/components/Suggestion/Suggestion.d.ts +199 -0
  465. package/dist/types/components/Suggestion/Suggestion.d.ts.map +1 -0
  466. package/dist/types/components/Suggestion/SuggestionChips.d.ts +11 -0
  467. package/dist/types/components/Suggestion/SuggestionChips.d.ts.map +1 -0
  468. package/dist/types/components/Suggestion/SuggestionClear.d.ts +28 -0
  469. package/dist/types/components/Suggestion/SuggestionClear.d.ts.map +1 -0
  470. package/dist/types/components/Suggestion/SuggestionEmpty.d.ts +15 -0
  471. package/dist/types/components/Suggestion/SuggestionEmpty.d.ts.map +1 -0
  472. package/dist/types/components/Suggestion/SuggestionInput.d.ts +33 -0
  473. package/dist/types/components/Suggestion/SuggestionInput.d.ts.map +1 -0
  474. package/dist/types/components/Suggestion/SuggestionList.d.ts +40 -0
  475. package/dist/types/components/Suggestion/SuggestionList.d.ts.map +1 -0
  476. package/dist/types/components/Suggestion/SuggestionOption.d.ts +5 -0
  477. package/dist/types/components/Suggestion/SuggestionOption.d.ts.map +1 -0
  478. package/dist/types/components/Suggestion/index.d.ts +138 -0
  479. package/dist/types/components/Suggestion/index.d.ts.map +1 -0
  480. package/dist/types/components/Switch/Switch.d.ts +36 -0
  481. package/dist/types/components/Switch/Switch.d.ts.map +1 -0
  482. package/dist/types/components/Switch/index.d.ts +3 -0
  483. package/dist/types/components/Switch/index.d.ts.map +1 -0
  484. package/dist/types/components/Table/Table.d.ts +72 -0
  485. package/dist/types/components/Table/Table.d.ts.map +1 -0
  486. package/dist/types/components/Table/TableBody.d.ts +15 -0
  487. package/dist/types/components/Table/TableBody.d.ts.map +1 -0
  488. package/dist/types/components/Table/TableCell.d.ts +10 -0
  489. package/dist/types/components/Table/TableCell.d.ts.map +1 -0
  490. package/dist/types/components/Table/TableFoot.d.ts +15 -0
  491. package/dist/types/components/Table/TableFoot.d.ts.map +1 -0
  492. package/dist/types/components/Table/TableHead.d.ts +15 -0
  493. package/dist/types/components/Table/TableHead.d.ts.map +1 -0
  494. package/dist/types/components/Table/TableHeaderCell.d.ts +23 -0
  495. package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -0
  496. package/dist/types/components/Table/TableRow.d.ts +13 -0
  497. package/dist/types/components/Table/TableRow.d.ts.map +1 -0
  498. package/dist/types/components/Table/index.d.ts +56 -0
  499. package/dist/types/components/Table/index.d.ts.map +1 -0
  500. package/dist/types/components/Tabs/Tabs.d.ts +59 -0
  501. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -0
  502. package/dist/types/components/Tabs/TabsList.d.ts +13 -0
  503. package/dist/types/components/Tabs/TabsList.d.ts.map +1 -0
  504. package/dist/types/components/Tabs/TabsPanel.d.ts +22 -0
  505. package/dist/types/components/Tabs/TabsPanel.d.ts.map +1 -0
  506. package/dist/types/components/Tabs/TabsTab.d.ts +20 -0
  507. package/dist/types/components/Tabs/TabsTab.d.ts.map +1 -0
  508. package/dist/types/components/Tabs/index.d.ts +37 -0
  509. package/dist/types/components/Tabs/index.d.ts.map +1 -0
  510. package/dist/types/components/Tag/Tag.d.ts +23 -0
  511. package/dist/types/components/Tag/Tag.d.ts.map +1 -0
  512. package/dist/types/components/Tag/index.d.ts +3 -0
  513. package/dist/types/components/Tag/index.d.ts.map +1 -0
  514. package/dist/types/components/Textarea/Textarea.d.ts +11 -0
  515. package/dist/types/components/Textarea/Textarea.d.ts.map +1 -0
  516. package/dist/types/components/Textarea/index.d.ts +3 -0
  517. package/dist/types/components/Textarea/index.d.ts.map +1 -0
  518. package/dist/types/components/Textfield/Textfield.d.ts +74 -0
  519. package/dist/types/components/Textfield/Textfield.d.ts.map +1 -0
  520. package/dist/types/components/Textfield/index.d.ts +3 -0
  521. package/dist/types/components/Textfield/index.d.ts.map +1 -0
  522. package/dist/types/components/Timeline/Timeline.d.ts +35 -0
  523. package/dist/types/components/Timeline/Timeline.d.ts.map +1 -0
  524. package/dist/types/components/Timeline/TimelineItem.d.ts +21 -0
  525. package/dist/types/components/Timeline/TimelineItem.d.ts.map +1 -0
  526. package/dist/types/components/Timeline/index.d.ts +27 -0
  527. package/dist/types/components/Timeline/index.d.ts.map +1 -0
  528. package/dist/types/components/ToggleGroup/ToggleGroup.d.ts +67 -0
  529. package/dist/types/components/ToggleGroup/ToggleGroup.d.ts.map +1 -0
  530. package/dist/types/components/ToggleGroup/ToggleGroupItem.d.ts +21 -0
  531. package/dist/types/components/ToggleGroup/ToggleGroupItem.d.ts.map +1 -0
  532. package/dist/types/components/ToggleGroup/index.d.ts +26 -0
  533. package/dist/types/components/ToggleGroup/index.d.ts.map +1 -0
  534. package/dist/types/components/ToggleGroup/useToggleGroupitem.d.ts +11 -0
  535. package/dist/types/components/ToggleGroup/useToggleGroupitem.d.ts.map +1 -0
  536. package/dist/types/components/Tooltip/Tooltip.d.ts +63 -0
  537. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -0
  538. package/dist/types/components/Tooltip/index.d.ts +3 -0
  539. package/dist/types/components/Tooltip/index.d.ts.map +1 -0
  540. package/dist/types/components/ValidationMessage/ValidationMessage.d.ts +35 -0
  541. package/dist/types/components/ValidationMessage/ValidationMessage.d.ts.map +1 -0
  542. package/dist/types/components/ValidationMessage/index.d.ts +3 -0
  543. package/dist/types/components/ValidationMessage/index.d.ts.map +1 -0
  544. package/dist/types/components/index.d.ts +42 -0
  545. package/dist/types/components/index.d.ts.map +1 -0
  546. package/dist/types/index.d.ts +5 -0
  547. package/dist/types/index.d.ts.map +1 -0
  548. package/dist/types/layouts/Container/Container.d.ts +10 -0
  549. package/dist/types/layouts/Container/Container.d.ts.map +1 -0
  550. package/dist/types/layouts/Container/index.d.ts +2 -0
  551. package/dist/types/layouts/Container/index.d.ts.map +1 -0
  552. package/dist/types/layouts/Grid/GridCol.d.ts +20 -0
  553. package/dist/types/layouts/Grid/GridCol.d.ts.map +1 -0
  554. package/dist/types/layouts/Grid/GridRow.d.ts +6 -0
  555. package/dist/types/layouts/Grid/GridRow.d.ts.map +1 -0
  556. package/dist/types/layouts/Grid/index.d.ts +5 -0
  557. package/dist/types/layouts/Grid/index.d.ts.map +1 -0
  558. package/dist/types/layouts/index.d.ts +3 -0
  559. package/dist/types/layouts/index.d.ts.map +1 -0
  560. package/dist/types/types.d.ts +28 -0
  561. package/dist/types/types.d.ts.map +1 -0
  562. package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts +16 -0
  563. package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts.map +1 -0
  564. package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts +33 -0
  565. package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts.map +1 -0
  566. package/dist/types/utilities/RovingFocus/index.d.ts +4 -0
  567. package/dist/types/utilities/RovingFocus/index.d.ts.map +1 -0
  568. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts +295 -0
  569. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts.map +1 -0
  570. package/dist/types/utilities/hooks/index.d.ts +12 -0
  571. package/dist/types/utilities/hooks/index.d.ts.map +1 -0
  572. package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts +64 -0
  573. package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts.map +1 -0
  574. package/dist/types/utilities/hooks/useDebounceCallback/useDebounceCallback.d.ts +4 -0
  575. package/dist/types/utilities/hooks/useDebounceCallback/useDebounceCallback.d.ts.map +1 -0
  576. package/dist/types/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +3 -0
  577. package/dist/types/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts.map +1 -0
  578. package/dist/types/utilities/hooks/useMediaQuery/useMediaQuery.d.ts +7 -0
  579. package/dist/types/utilities/hooks/useMediaQuery/useMediaQuery.d.ts.map +1 -0
  580. package/dist/types/utilities/hooks/useMergeRefs/useMergeRefs.d.ts +6 -0
  581. package/dist/types/utilities/hooks/useMergeRefs/useMergeRefs.d.ts.map +1 -0
  582. package/dist/types/utilities/hooks/usePagination/usePagination.d.ts +82 -0
  583. package/dist/types/utilities/hooks/usePagination/usePagination.d.ts.map +1 -0
  584. package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts +56 -0
  585. package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts.map +1 -0
  586. package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts +14 -0
  587. package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts.map +1 -0
  588. package/dist/types/utilities/index.d.ts +5 -0
  589. package/dist/types/utilities/index.d.ts.map +1 -0
  590. package/dist/types/utilities/omit/omit.d.ts +11 -0
  591. package/dist/types/utilities/omit/omit.d.ts.map +1 -0
  592. package/dist/types/utilities/types.d.ts +6 -0
  593. package/dist/types/utilities/types.d.ts.map +1 -0
  594. package/package.json +83 -0
package/LICENSE ADDED
@@ -0,0 +1,7 @@
1
+ Copyright 2024 Digitaliseringsdirektoratet (Digdir)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # @uppsala-designsystem/ui
2
+
3
+ React implementation of the Designsystemet components
4
+
5
+ - Uses `@uppsala-designsystem/theme` and `@uppsala-designsystem/css` for styling.
6
+ - All components support `forwardRef`.
7
+ - Most components extend and behave as native html-elements.
8
+ - Most components support composition and `asChild` for overriding the underlying html-element.
9
+ - SSR support.
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var cl = require('clsx/lite');
6
+ var react = require('react');
7
+
8
+ /**
9
+ * Alerts are used to inform users about important information, warnings, errors, or success.
10
+ *
11
+ * @example
12
+ * <Alert data-color='info'>Detta är ett informationsmeddelande</Alert>
13
+ */
14
+ const Alert = react.forwardRef(function Alert({ "data-color": color = "info", className, ...rest }, ref) {
15
+ return (jsxRuntime.jsx("div", { className: cl("ds-alert", className), "data-color": color, ref: ref, ...rest }));
16
+ });
17
+
18
+ exports.Alert = Alert;
@@ -0,0 +1,31 @@
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
+ * Avatars are used to represent people or entities.
11
+ *
12
+ * @example
13
+ * <Avatar aria-label="John Doe" initials="JD" />
14
+ *
15
+ * @example
16
+ * <Avatar aria-label="John Doe">
17
+ * <img src='…' alt='John Doe' />
18
+ * </Avatar>
19
+ *
20
+ * @example
21
+ * <Avatar aria-label="John Doe">
22
+ * <Icon />
23
+ * </Avatar>
24
+ */
25
+ const Avatar = react.forwardRef(function Avatar({ 'aria-label': ariaLabel, variant = 'circle', className, children, initials, ...rest }, ref) {
26
+ const useSlot = children && typeof children !== 'string';
27
+ const Component = useSlot ? reactSlot.Slot : react.Fragment;
28
+ return (jsxRuntime.jsx("span", { ref: ref, className: cl('ds-avatar', className), "data-variant": variant, "data-initials": initials, role: 'img', "aria-label": ariaLabel, ...rest, children: jsxRuntime.jsx(Component, { ...(useSlot ? { 'aria-hidden': true } : {}), children: children }) }));
29
+ });
30
+
31
+ exports.Avatar = Avatar;
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var cl = require('clsx/lite');
6
+ var react = require('react');
7
+
8
+ /**
9
+ * `Badge` is a non-interactive component for displaying status with or without numbers.
10
+ *
11
+ * @example without children
12
+ * <Badge count={5} maxCount={10} />
13
+ *
14
+ * @example with children
15
+ * <Badge count={5} maxCount={10}>
16
+ * <Icon />
17
+ * </Badge>
18
+ */
19
+ const Badge = react.forwardRef(function Badge({ className, count, maxCount, variant = 'base', ...rest }, ref) {
20
+ return (jsxRuntime.jsx("span", { className: cl('ds-badge', className), "data-count": count && maxCount && count > maxCount ? `${maxCount}+` : count, "data-variant": variant, ref: ref, ...rest }));
21
+ });
22
+
23
+ exports.Badge = Badge;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var cl = require('clsx/lite');
6
+ var react = require('react');
7
+
8
+ /**
9
+ * `BadgePosition` is a component that positions the badge.
10
+ *
11
+ * @example
12
+ * <BadgePosition placement='top-right' overlap='circle'>
13
+ * <Badge count={5} maxCount={10} />
14
+ * <Element />
15
+ * </BadgePosition>
16
+ */
17
+ const BadgePosition = react.forwardRef(function BadgePlacement({ className, overlap = 'rectangle', placement = 'top-right', ...rest }, ref) {
18
+ return (jsxRuntime.jsx("span", { className: cl('ds-badge--position', className), "data-overlap": overlap, "data-placement": placement, ref: ref, ...rest }));
19
+ });
20
+
21
+ exports.BadgePosition = BadgePosition;
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var Badge$1 = require('./Badge.js');
5
+ var BadgePosition = require('./BadgePosition.js');
6
+
7
+ /**
8
+ * `Badge` is a non-interactive component for displaying status with or without numbers.
9
+ *
10
+ * @example without children
11
+ * <Badge count={5} maxCount={10} />
12
+ */
13
+ const Badge = Object.assign(Badge$1.Badge, { Position: BadgePosition.BadgePosition });
14
+ Badge.Position.displayName = 'Badge.Position';
15
+
16
+ exports.BadgePosition = BadgePosition.BadgePosition;
17
+ exports.Badge = Badge;
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var cl = require('clsx/lite');
6
+ var react = require('react');
7
+
8
+ /**
9
+ * `Breadcrumbs` is a component that displays a list of breadcrumbs.
10
+ *
11
+ * @example
12
+ * <Breadcrumbs aria-label='Du är här:' {...args}>
13
+ * <Breadcrumbs.Link href='#' aria-label='Tillbaka till Nivå 1'>
14
+ * Nivå 1
15
+ * </Breadcrumbs.Link>
16
+ * <Breadcrumbs.List>
17
+ * <Breadcrumbs.Item>
18
+ * <Breadcrumbs.Link href='#'>Nivå 1</Breadcrumbs.Link>
19
+ * </Breadcrumbs.Item>
20
+ * <Breadcrumbs.Item>
21
+ * <Breadcrumbs.Link href='#'>Nivå 2</Breadcrumbs.Link>
22
+ * </Breadcrumbs.Item>
23
+ * </Breadcrumbs.List>
24
+ * </Breadcrumbs>
25
+ */
26
+ const Breadcrumbs = react.forwardRef(({ "aria-label": ariaLabel = "Du är här:", className, ...rest }, ref) => (jsxRuntime.jsx("nav", { "aria-label": ariaLabel, className: cl("ds-breadcrumbs", className), ref: ref, ...rest })));
27
+
28
+ exports.Breadcrumbs = Breadcrumbs;
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react = require('react');
6
+
7
+ const BreadcrumbsItem = react.forwardRef(function BreadcrumbsItem({ className, ...rest }, ref) {
8
+ return jsxRuntime.jsx("li", { ref: ref, ...rest });
9
+ });
10
+
11
+ exports.BreadcrumbsItem = BreadcrumbsItem;
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react = require('react');
6
+ var Link = require('../Link/Link.js');
7
+
8
+ const BreadcrumbsLink = react.forwardRef(function BreadcrumbsLink(rest, ref) {
9
+ return jsxRuntime.jsx(Link.Link, { ref: ref, ...rest });
10
+ });
11
+
12
+ exports.BreadcrumbsLink = BreadcrumbsLink;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react$1 = require('@floating-ui/react');
6
+ var react = require('react');
7
+
8
+ const BreadcrumbsList = react.forwardRef(function BreadcrumbsList(rest, ref) {
9
+ const innerRef = react.useRef(null);
10
+ const mergedRefs = react$1.useMergeRefs([innerRef, ref]);
11
+ // Set aria-current on last link
12
+ react.useEffect(() => {
13
+ const links = innerRef.current?.querySelectorAll(':scope > * > *') || [];
14
+ const lastLink = links[links?.length - 1];
15
+ lastLink?.setAttribute('aria-current', 'page');
16
+ return () => lastLink?.removeAttribute('aria-current'); // Remove on re-render as React can re-use DOM elements
17
+ });
18
+ return jsxRuntime.jsx("ol", { ref: mergedRefs, ...rest });
19
+ });
20
+
21
+ exports.BreadcrumbsList = BreadcrumbsList;
@@ -0,0 +1,39 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var Breadcrumbs$1 = require('./Breadcrumbs.js');
5
+ var BreadcrumbsItem = require('./BreadcrumbsItem.js');
6
+ var BreadcrumbsLink = require('./BreadcrumbsLink.js');
7
+ var BreadcrumbsList = require('./BreadcrumbsList.js');
8
+
9
+ /**
10
+ * `Breadcrumbs` is a component that displays a list of breadcrumbs.
11
+ *
12
+ * @example
13
+ * <Breadcrumbs aria-label='Du er her:' {...args}>
14
+ * <Breadcrumbs.Link href='#' aria-label='Tilbake til Nivå 1'>
15
+ * Nivå 1
16
+ * </Breadcrumbs.Link>
17
+ * <Breadcrumbs.List>
18
+ * <Breadcrumbs.Item>
19
+ * <Breadcrumbs.Link href='#'>Nivå 1</Breadcrumbs.Link>
20
+ * </Breadcrumbs.Item>
21
+ * <Breadcrumbs.Item>
22
+ * <Breadcrumbs.Link href='#'>Nivå 2</Breadcrumbs.Link>
23
+ * </Breadcrumbs.Item>
24
+ * </Breadcrumbs.List>
25
+ * </Breadcrumbs>
26
+ */
27
+ const Breadcrumbs = Object.assign(Breadcrumbs$1.Breadcrumbs, {
28
+ List: BreadcrumbsList.BreadcrumbsList,
29
+ Item: BreadcrumbsItem.BreadcrumbsItem,
30
+ Link: BreadcrumbsLink.BreadcrumbsLink,
31
+ });
32
+ Breadcrumbs.List.displayName = 'Breadcrumbs.List';
33
+ Breadcrumbs.Item.displayName = 'Breadcrumbs.Item';
34
+ Breadcrumbs.Link.displayName = 'Breadcrumbs.Link';
35
+
36
+ exports.BreadcrumbsItem = BreadcrumbsItem.BreadcrumbsItem;
37
+ exports.BreadcrumbsLink = BreadcrumbsLink.BreadcrumbsLink;
38
+ exports.BreadcrumbsList = BreadcrumbsList.BreadcrumbsList;
39
+ exports.Breadcrumbs = Breadcrumbs;
@@ -0,0 +1,25 @@
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
+ var Spinner = require('../Spinner/Spinner.js');
9
+
10
+ /**
11
+ * Button used for interaction
12
+ *
13
+ * @example
14
+ * <Button>Click me</Button>
15
+ */
16
+ const Button = react.forwardRef(function Button({ asChild, className, children, icon = false, loading = false, variant = 'primary', ...rest }, ref) {
17
+ const Component = asChild ? reactSlot.Slot : 'button';
18
+ // Fallbacks to undefined to prevent rendering attribute="false"
19
+ return (jsxRuntime.jsxs(Component, { "aria-busy": Boolean(loading) || undefined, "aria-disabled": Boolean(loading) || undefined, className: cl('ds-button', className), "data-icon": icon || undefined, "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' })) : (loading // Allow custom loading spinner
22
+ ), jsxRuntime.jsx(reactSlot.Slottable, { children: children })] }));
23
+ });
24
+
25
+ exports.Button = Button;
@@ -0,0 +1,43 @@
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
+
10
+ /**
11
+ * Card component to present content in a structured way.
12
+ *
13
+ * @example
14
+ * <Card>
15
+ * <Card.Block>Header</Card.Block>
16
+ * <Card.Block>Content</Card.Block>
17
+ * <Card.Block>Footer</Card.Block>
18
+ * </Card>
19
+ */
20
+ const Card = react.forwardRef(function Card({ asChild = false, variant = 'default', className, ...rest }, ref) {
21
+ const Component = asChild ? reactSlot.Slot : 'div';
22
+ const cardRef = react.useRef(null);
23
+ const mergedRefs = react$1.useMergeRefs([cardRef, ref]);
24
+ // Forward click on card to heading links for better accessibility
25
+ // https://adrianroselli.com/2020/02/block-links-cards-clickable-regions-etc.html
26
+ react.useEffect(() => {
27
+ const card = cardRef.current;
28
+ const handleClick = ({ ctrlKey, metaKey, target }) => {
29
+ const link = card?.querySelector(':is(h1,h2,h3,h4,h5,h6) a');
30
+ if (!link || link?.contains(target))
31
+ return; // Let links handle their own clicks
32
+ if (ctrlKey || metaKey)
33
+ window.open(link.href, '', 'noreferrer');
34
+ else
35
+ link.click(); // Using link.click instead of window.location.href as this will trigger the browser's handling of rel=, target=, etc.
36
+ };
37
+ card?.addEventListener('click', handleClick);
38
+ return () => card?.removeEventListener('click', handleClick);
39
+ }, []);
40
+ return (jsxRuntime.jsx(Component, { className: cl(`ds-card`, className), "data-variant": variant, ref: mergedRefs, ...rest }));
41
+ });
42
+
43
+ exports.Card = Card;
@@ -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 CardBlock = react.forwardRef(function CardBlock({ asChild, className, ...rest }, ref) {
10
+ const Component = asChild ? reactSlot.Slot : 'div';
11
+ return (jsxRuntime.jsx(Component, { className: cl(`ds-card__block`, className), ref: ref, ...rest }));
12
+ });
13
+
14
+ exports.CardBlock = CardBlock;
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var Card$1 = require('./Card.js');
5
+ var CardBlock = require('./CardBlock.js');
6
+
7
+ /**
8
+ * Card component to present content in a structured way.
9
+ *
10
+ * @example
11
+ * <Card>
12
+ * <Card.Block>Header</Card.Block>
13
+ * <Card.Block>Content</Card.Block>
14
+ * <Card.Block>Footer</Card.Block>
15
+ * </Card>
16
+ */
17
+ const Card = Object.assign(Card$1.Card, {
18
+ Block: CardBlock.CardBlock,
19
+ });
20
+ Card.Block.displayName = 'Card.Block';
21
+
22
+ exports.CardBlock = CardBlock.CardBlock;
23
+ exports.Card = Card;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react = require('react');
6
+ var index = require('../Field/index.js');
7
+ var Input = require('../Input/Input.js');
8
+ var Label = require('../Label/Label.js');
9
+ var ValidationMessage = require('../ValidationMessage/ValidationMessage.js');
10
+
11
+ /**
12
+ * Checkbox used to select multiple options.
13
+ *
14
+ * @example
15
+ * <Checkbox label="I agree" value="agree" />
16
+ */
17
+ const Checkbox = react.forwardRef(function Checkbox({ 'data-size': size, className, style, children, label, description, error, ...rest }, ref) {
18
+ return (jsxRuntime.jsxs(index.Field, { "data-size": size, className: className, style: style, children: [jsxRuntime.jsx(Input.Input, { type: 'checkbox', ref: ref, ...rest }), !!label && jsxRuntime.jsx(Label.Label, { weight: 'regular', children: label }), !!description && jsxRuntime.jsx("div", { "data-field": 'description', children: description }), !!error && jsxRuntime.jsx(ValidationMessage.ValidationMessage, { children: error })] }));
19
+ });
20
+
21
+ exports.Checkbox = Checkbox;
@@ -0,0 +1,52 @@
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
+ var Input = require('../Input/Input.js');
9
+
10
+ /**
11
+ * Chip.Button used for interaction
12
+ *
13
+ * @example
14
+ * <Chip.Button>Click me</Chip.Button>
15
+ */
16
+ const ChipButton = react.forwardRef(function ChipButton({ asChild, className, ...rest }, ref) {
17
+ const Component = asChild ? reactSlot.Slot : 'button';
18
+ return (jsxRuntime.jsx(Component, { className: cl('ds-chip', className), type: asChild ? undefined : 'button', ref: ref, ...rest }));
19
+ });
20
+ /**
21
+ * Chip.Removable used for interaction
22
+ * @example
23
+ * <Chip.Removable>Click to remove me</Chip.Removable>
24
+ */
25
+ const ChipRemovable = react.forwardRef(function ChipRemovable(props, ref) {
26
+ return jsxRuntime.jsx(ChipButton, { "data-removable": true, ref: ref, ...props });
27
+ });
28
+ /**
29
+ * Chip.Checkbox used for multiselection
30
+ * @example
31
+ * <Chip.Checkbox name="language" value="nynorsk">Nynorsk</Chip.Checkbox>
32
+ * <Chip.Checkbox name="language" value="bokmål">Bokmål</Chip.Checkbox>
33
+ */
34
+ const ChipCheckbox = react.forwardRef(function ChipCheckbox({ asChild, children, className, 'data-size': size, 'data-color': color, ...rest }, ref) {
35
+ const inputType = rest.type ?? 'checkbox';
36
+ const Component = asChild ? reactSlot.Slot : 'label';
37
+ return (jsxRuntime.jsxs(Component, { className: cl('ds-chip', className), "data-size": size, "data-color": color, ref: ref, children: [jsxRuntime.jsx(Input.Input, { ...rest, type: inputType }), jsxRuntime.jsx(reactSlot.Slottable, { children: children })] }));
38
+ });
39
+ /**
40
+ * Chip.Radio used for single selection
41
+ * @example
42
+ * <Chip.Radio name="language" value="nynorsk">Nynorsk</Chip.Radio>
43
+ * <Chip.Radio name="language" value="bokmål">Bokmål</Chip.Radio>
44
+ */
45
+ const ChipRadio = react.forwardRef(function ChipRadio(props, ref) {
46
+ return jsxRuntime.jsx(ChipCheckbox, { ref, type: 'radio', ...props });
47
+ });
48
+
49
+ exports.ChipButton = ChipButton;
50
+ exports.ChipCheckbox = ChipCheckbox;
51
+ exports.ChipRadio = ChipRadio;
52
+ exports.ChipRemovable = ChipRemovable;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var Chips = require('./Chips.js');
5
+
6
+ const Chip = {
7
+ Button: Chips.ChipButton,
8
+ Checkbox: Chips.ChipCheckbox,
9
+ Radio: Chips.ChipRadio,
10
+ Removable: Chips.ChipRemovable,
11
+ };
12
+ Chip.Button.displayName = 'Chip.Button';
13
+ Chip.Checkbox.displayName = 'Chip.Checkbox';
14
+ Chip.Radio.displayName = 'Chip.Radio';
15
+ Chip.Removable.displayName = 'Chip.Removable';
16
+
17
+ exports.ChipButton = Chips.ChipButton;
18
+ exports.ChipCheckbox = Chips.ChipCheckbox;
19
+ exports.ChipRadio = Chips.ChipRadio;
20
+ exports.ChipRemovable = Chips.ChipRemovable;
21
+ exports.Chip = Chip;
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react$1 = require('@floating-ui/react');
6
+ var cl = require('clsx/lite');
7
+ var react = require('react');
8
+ require('@u-elements/u-details');
9
+
10
+ /**
11
+ * Details component, contains `Details.Summary` and `Details.Content` components.
12
+ *
13
+ * @example
14
+ * <Details>
15
+ * <Details.Summary>Header</Details.Summary>
16
+ * <Details.Content>Content</Details.Content>
17
+ * </Details>
18
+ */
19
+ const Details = react.forwardRef(function Details({ className, open, defaultOpen = false, variant = 'default', onToggle, ...rest }, ref) {
20
+ const detailsRef = react.useRef(null);
21
+ const initialOpen = react.useRef(defaultOpen); // Allow rendering defaultOpen on server, but only render once on client
22
+ const mergedRefs = react$1.useMergeRefs([detailsRef, ref]);
23
+ const onToggleRef = react.useRef(onToggle); // Using ref to enable access inside useEffect without re-binding event listeners
24
+ const openRef = react.useRef(open);
25
+ onToggleRef.current = onToggle;
26
+ openRef.current = open;
27
+ // Provide onToggle event and controlled state
28
+ react.useEffect(() => {
29
+ const details = detailsRef.current;
30
+ const handleToggle = (event) => {
31
+ if (!details || details?.open === openRef.current)
32
+ return;
33
+ onToggleRef.current?.(event);
34
+ if (openRef.current !== undefined)
35
+ details.open = openRef.current; // Don't update DOM unless controlled state changes
36
+ };
37
+ details?.addEventListener('toggle', handleToggle, true);
38
+ return () => details?.removeEventListener('toggle', handleToggle, true);
39
+ }, []);
40
+ return (jsxRuntime.jsx("u-details", { class: cl('ds-details', className), open: (open ?? initialOpen.current) || undefined, "data-variant": variant, ref: mergedRefs, ...rest }));
41
+ });
42
+
43
+ exports.Details = Details;
@@ -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
+ /**
8
+ * Details content component, contains the content of the details item.
9
+ *
10
+ * @example
11
+ * <DetailsContent>Content</DetailsContent>
12
+ */
13
+ const DetailsContent = react.forwardRef(function DetailsContent(rest, ref) {
14
+ return jsxRuntime.jsx("div", { ref: ref, ...rest });
15
+ });
16
+
17
+ exports.DetailsContent = DetailsContent;
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react = require('react');
6
+
7
+ /**
8
+ * Details summary component, contains a the heading to toggle the content.
9
+ *
10
+ * @example
11
+ * <Details.Summary>Heading</Details.Summary>
12
+ */
13
+ const DetailsSummary = react.forwardRef(function DetailsSummary({ className, ...rest }, ref) {
14
+ /* Set `className` as `class` so react is happy */
15
+ return (jsxRuntime.jsx("u-summary", { suppressHydrationWarning: true, ref: ref, class: className, ...rest }));
16
+ });
17
+
18
+ exports.DetailsSummary = DetailsSummary;
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var Details$1 = require('./Details.js');
5
+ var DetailsContent = require('./DetailsContent.js');
6
+ var DetailsSummary = require('./DetailsSummary.js');
7
+
8
+ /**
9
+ * Details component, contains `Details.Summary` and `Details.Content` components.
10
+ *
11
+ * @example
12
+ * <Details>
13
+ * <Details.Summary>Header</Details.Summary>
14
+ * <Details.Content>Content</Details.Content>
15
+ * </Details>
16
+ */
17
+ const Details = Object.assign(Details$1.Details, {
18
+ Summary: DetailsSummary.DetailsSummary,
19
+ Content: DetailsContent.DetailsContent,
20
+ });
21
+ Details.Summary.displayName = 'Details.Summary';
22
+ Details.Content.displayName = 'Details.Content';
23
+
24
+ exports.DetailsContent = DetailsContent.DetailsContent;
25
+ exports.DetailsSummary = DetailsSummary.DetailsSummary;
26
+ exports.Details = Details;
@@ -0,0 +1,82 @@
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 DialogTriggerContext = require('./DialogTriggerContext.js');
10
+ var Button = require('../Button/Button.js');
11
+
12
+ /**
13
+ * Dialog component, used to display a dialog dialog.
14
+ *
15
+ * @example with TriggerContext
16
+ * <Dialog.TriggerContext>
17
+ * <Dialog.Trigger>Open Dialog</Dialog.Trigger>
18
+ * <Dialog>
19
+ * <Dialog.Block>
20
+ * Content
21
+ * </Dialog.Block>
22
+ * </Dialog>
23
+ * </Dialog.TriggerContext>
24
+ *
25
+ * @example without TriggerContext
26
+ * const dialogRef = useRef<HTMLDialogElement>(null);
27
+ *
28
+ * ...
29
+ *
30
+ * <Button onClick={() => dialogRef.current?.showModal()}>Open Dialog</Button>
31
+ * <Dialog ref={dialogRef}>
32
+ * Content
33
+ * </Dialog>
34
+ */
35
+ const Dialog = react.forwardRef(function Dialog({ asChild, children, className, closeButton = "Stäng dialogfönster", closedby = "closerequest", modal = true, onClose, open, ...rest }, ref) {
36
+ const contextRef = react.useContext(DialogTriggerContext.Context);
37
+ const dialogRef = react.useRef(null); // This local ref is used to make sure the dialog works without a DialogTriggerContext
38
+ const Component = asChild ? reactSlot.Slot : "dialog";
39
+ const mergedRefs = react$1.useMergeRefs([contextRef, ref, dialogRef]);
40
+ const showProp = modal ? "showModal" : "show";
41
+ react.useEffect(() => dialogRef.current?.[open ? showProp : "close"](), [open, showProp]); // Toggle open based on prop
42
+ react.useEffect(() => {
43
+ const dialog = dialogRef.current;
44
+ const handleClosedby = (event) => {
45
+ const { clientY: y, clientX: x, target } = event;
46
+ if (event instanceof KeyboardEvent)
47
+ return (closedby === "none" &&
48
+ event.key === "Escape" &&
49
+ event.preventDefault()); // Skip ESC-key if closedby="none"
50
+ if (window.getSelection()?.toString())
51
+ return; // Fix bug where if you select text spanning two divs it thinks you clicked outside
52
+ if (dialog && target === dialog && closedby === "any") {
53
+ const { top, left, right, bottom } = dialog.getBoundingClientRect();
54
+ const isInDialog = top <= y && y <= bottom && left <= x && x <= right;
55
+ if (!isInDialog)
56
+ dialog?.close(); // Both <dialog> and ::backdrop is considered same event.target
57
+ }
58
+ };
59
+ const handleAutoFocus = () => {
60
+ const autofocus = dialog?.querySelector("[autofocus]");
61
+ if (document.activeElement !== autofocus)
62
+ autofocus?.focus();
63
+ };
64
+ dialog?.addEventListener("animationend", handleAutoFocus);
65
+ dialog?.addEventListener("click", handleClosedby);
66
+ dialog?.addEventListener("keydown", handleClosedby);
67
+ return () => {
68
+ dialog?.removeEventListener("animationend", handleAutoFocus);
69
+ dialog?.removeEventListener("click", handleClosedby);
70
+ dialog?.removeEventListener("keydown", handleClosedby);
71
+ };
72
+ }, [closedby]);
73
+ /* handle closing */
74
+ react.useEffect(() => {
75
+ const handleClose = (event) => onClose?.(event);
76
+ dialogRef.current?.addEventListener("close", handleClose);
77
+ return () => dialogRef.current?.removeEventListener("close", handleClose);
78
+ }, [onClose]);
79
+ return (jsxRuntime.jsxs(Component, { className: cl("ds-dialog", className), ref: mergedRefs, "data-modal": modal, ...rest, children: [closeButton !== false && (jsxRuntime.jsx("form", { method: "dialog", children: jsxRuntime.jsx(Button.Button, { "aria-label": closeButton, autoFocus: true, "data-color": "neutral", icon: true, name: "close", type: "submit", variant: "tertiary" }) })), children] }));
80
+ });
81
+
82
+ exports.Dialog = Dialog;