@navikt/ds-react 3.4.2 → 4.1.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 (529) hide show
  1. package/_docs.json +5912 -3911
  2. package/cjs/accordion/Accordion.js +22 -2
  3. package/cjs/alert/Alert.js +9 -0
  4. package/cjs/button/Button.js +10 -0
  5. package/cjs/chat/Chat.js +16 -0
  6. package/cjs/chips/Chips.js +27 -0
  7. package/cjs/chips/Toggle.js +4 -6
  8. package/cjs/copybutton/CopyButton.js +11 -0
  9. package/cjs/date/DateInput.js +1 -1
  10. package/cjs/date/datepicker/DatePicker.js +22 -0
  11. package/cjs/date/hooks/index.js +4 -4
  12. package/cjs/date/hooks/useDatepicker.js +13 -0
  13. package/cjs/date/hooks/useMonthPicker.js +13 -0
  14. package/cjs/date/hooks/useRangeDatepicker.js +12 -0
  15. package/cjs/date/index.js +6 -6
  16. package/cjs/date/monthpicker/MonthPicker.js +22 -0
  17. package/cjs/dropdown/Dropdown.js +88 -0
  18. package/cjs/dropdown/Menu/Divider.js +47 -0
  19. package/cjs/dropdown/Menu/GroupedList/Heading.js +47 -0
  20. package/cjs/dropdown/Menu/GroupedList/Item.js +54 -0
  21. package/cjs/dropdown/Menu/GroupedList/index.js +51 -0
  22. package/cjs/dropdown/Menu/GroupedList/package.json +6 -0
  23. package/cjs/dropdown/Menu/List/Item.js +54 -0
  24. package/cjs/dropdown/Menu/List/index.js +49 -0
  25. package/cjs/dropdown/Menu/List/package.json +6 -0
  26. package/cjs/dropdown/Menu/index.js +64 -0
  27. package/cjs/dropdown/Menu/package.json +6 -0
  28. package/cjs/dropdown/Toggle.js +66 -0
  29. package/cjs/dropdown/index.js +23 -0
  30. package/cjs/dropdown/package.json +6 -0
  31. package/cjs/expansion-card/ExpansionCard.js +18 -0
  32. package/cjs/form/ConfirmationPanel.js +18 -0
  33. package/cjs/form/Select.js +16 -0
  34. package/cjs/form/Switch.js +11 -0
  35. package/cjs/form/TextField.js +11 -0
  36. package/cjs/form/Textarea.js +11 -0
  37. package/cjs/form/checkbox/CheckboxGroup.js +15 -0
  38. package/cjs/form/error-summary/ErrorSummary.js +18 -0
  39. package/cjs/form/radio/RadioGroup.js +10 -0
  40. package/cjs/form/search/Search.js +13 -0
  41. package/cjs/guide-panel/GuidePanel.js +15 -0
  42. package/cjs/help-text/HelpText.js +13 -0
  43. package/cjs/index.js +4 -0
  44. package/cjs/internal-header/InternalHeader.js +83 -0
  45. package/cjs/internal-header/InternalHeaderButton.js +47 -0
  46. package/cjs/internal-header/InternalHeaderTitle.js +48 -0
  47. package/cjs/internal-header/InternalHeaderUser.js +51 -0
  48. package/cjs/internal-header/InternalHeaderUserButton.js +54 -0
  49. package/cjs/internal-header/index.js +8 -0
  50. package/cjs/internal-header/package.json +6 -0
  51. package/cjs/link/Link.js +13 -0
  52. package/cjs/link-panel/LinkPanel.js +17 -0
  53. package/cjs/loader/Loader.js +11 -0
  54. package/cjs/modal/Modal.js +27 -0
  55. package/cjs/pagination/Pagination.js +17 -0
  56. package/cjs/panel/Panel.js +19 -0
  57. package/cjs/popover/Popover.js +20 -0
  58. package/cjs/provider/Provider.js +13 -0
  59. package/cjs/read-more/ReadMore.js +17 -0
  60. package/cjs/skeleton/Skeleton.js +51 -0
  61. package/cjs/skeleton/index.js +8 -0
  62. package/cjs/skeleton/package.json +6 -0
  63. package/cjs/stepper/Step.js +3 -4
  64. package/cjs/stepper/Stepper.js +24 -0
  65. package/cjs/table/Table.js +32 -0
  66. package/cjs/tabs/Tabs.js +27 -1
  67. package/cjs/tag/Tag.js +11 -0
  68. package/cjs/timeline/AxisLabels.js +90 -0
  69. package/cjs/timeline/Pin.js +106 -0
  70. package/cjs/timeline/Timeline.js +180 -0
  71. package/cjs/timeline/TimelineRow.js +86 -0
  72. package/cjs/timeline/hooks/usePeriodContext.js +16 -0
  73. package/cjs/timeline/hooks/useRowContext.js +18 -0
  74. package/cjs/timeline/hooks/useTimelineContext.js +23 -0
  75. package/cjs/timeline/hooks/useTimelineRows.js +79 -0
  76. package/cjs/timeline/index.js +8 -0
  77. package/cjs/timeline/package.json +6 -0
  78. package/cjs/timeline/period/ClickablePeriod.js +120 -0
  79. package/cjs/timeline/period/NonClickablePeriod.js +18 -0
  80. package/cjs/timeline/period/index.js +46 -0
  81. package/cjs/timeline/period/package.json +6 -0
  82. package/cjs/timeline/utils/calc.js +19 -0
  83. package/cjs/timeline/utils/filter.js +18 -0
  84. package/cjs/timeline/utils/index.js +7 -0
  85. package/cjs/timeline/utils/package.json +6 -0
  86. package/cjs/timeline/utils/period.js +40 -0
  87. package/cjs/timeline/utils/sort.js +10 -0
  88. package/cjs/timeline/utils/timeline.js +79 -0
  89. package/cjs/timeline/utils/types.external.js +2 -0
  90. package/cjs/timeline/utils/types.internal.js +2 -0
  91. package/cjs/timeline/zoom/ZoomButton.js +68 -0
  92. package/cjs/timeline/zoom/index.js +50 -0
  93. package/cjs/timeline/zoom/package.json +6 -0
  94. package/cjs/toggle-group/ToggleGroup.js +17 -2
  95. package/cjs/tooltip/Tooltip.js +13 -0
  96. package/cjs/typography/BodyLong.js +14 -0
  97. package/cjs/typography/BodyShort.js +14 -0
  98. package/cjs/typography/Detail.js +14 -0
  99. package/cjs/typography/ErrorMessage.js +14 -0
  100. package/cjs/typography/Heading.js +14 -0
  101. package/cjs/typography/Ingress.js +14 -0
  102. package/cjs/typography/Label.js +14 -0
  103. package/esm/accordion/Accordion.d.ts +40 -6
  104. package/esm/accordion/Accordion.js +22 -2
  105. package/esm/accordion/Accordion.js.map +1 -1
  106. package/esm/accordion/AccordionContent.d.ts +1 -2
  107. package/esm/accordion/AccordionContent.js.map +1 -1
  108. package/esm/accordion/AccordionHeader.d.ts +1 -2
  109. package/esm/accordion/AccordionHeader.js.map +1 -1
  110. package/esm/accordion/AccordionItem.d.ts +1 -2
  111. package/esm/accordion/AccordionItem.js.map +1 -1
  112. package/esm/alert/Alert.d.ts +9 -0
  113. package/esm/alert/Alert.js +9 -0
  114. package/esm/alert/Alert.js.map +1 -1
  115. package/esm/button/Button.d.ts +10 -0
  116. package/esm/button/Button.js +10 -0
  117. package/esm/button/Button.js.map +1 -1
  118. package/esm/chat/Bubble.d.ts +1 -2
  119. package/esm/chat/Bubble.js.map +1 -1
  120. package/esm/chat/Chat.d.ts +21 -2
  121. package/esm/chat/Chat.js +16 -0
  122. package/esm/chat/Chat.js.map +1 -1
  123. package/esm/chips/Chips.d.ts +42 -4
  124. package/esm/chips/Chips.js +27 -0
  125. package/esm/chips/Chips.js.map +1 -1
  126. package/esm/chips/Removable.d.ts +0 -2
  127. package/esm/chips/Removable.js.map +1 -1
  128. package/esm/chips/Toggle.d.ts +11 -3
  129. package/esm/chips/Toggle.js +4 -6
  130. package/esm/chips/Toggle.js.map +1 -1
  131. package/esm/copybutton/CopyButton.d.ts +11 -0
  132. package/esm/copybutton/CopyButton.js +11 -0
  133. package/esm/copybutton/CopyButton.js.map +1 -1
  134. package/esm/date/DateInput.d.ts +2 -3
  135. package/esm/date/DateInput.js +1 -1
  136. package/esm/date/DateInput.js.map +1 -1
  137. package/esm/date/datepicker/DatePicker.d.ts +38 -2
  138. package/esm/date/datepicker/DatePicker.js +22 -0
  139. package/esm/date/datepicker/DatePicker.js.map +1 -1
  140. package/esm/date/hooks/index.d.ts +3 -3
  141. package/esm/date/hooks/index.js +3 -3
  142. package/esm/date/hooks/index.js.map +1 -1
  143. package/esm/date/hooks/useDatepicker.d.ts +13 -0
  144. package/esm/date/hooks/useDatepicker.js +13 -0
  145. package/esm/date/hooks/useDatepicker.js.map +1 -1
  146. package/esm/date/hooks/useMonthPicker.d.ts +13 -0
  147. package/esm/date/hooks/useMonthPicker.js +13 -0
  148. package/esm/date/hooks/useMonthPicker.js.map +1 -1
  149. package/esm/date/hooks/useRangeDatepicker.d.ts +12 -0
  150. package/esm/date/hooks/useRangeDatepicker.js +12 -0
  151. package/esm/date/hooks/useRangeDatepicker.js.map +1 -1
  152. package/esm/date/index.d.ts +3 -3
  153. package/esm/date/index.js +3 -3
  154. package/esm/date/index.js.map +1 -1
  155. package/esm/date/monthpicker/MonthPicker.d.ts +34 -4
  156. package/esm/date/monthpicker/MonthPicker.js +22 -0
  157. package/esm/date/monthpicker/MonthPicker.js.map +1 -1
  158. package/esm/dropdown/Dropdown.d.ts +74 -0
  159. package/esm/dropdown/Dropdown.js +60 -0
  160. package/esm/dropdown/Dropdown.js.map +1 -0
  161. package/esm/dropdown/Menu/Divider.d.ts +3 -0
  162. package/esm/dropdown/Menu/Divider.js +19 -0
  163. package/esm/dropdown/Menu/Divider.js.map +1 -0
  164. package/esm/dropdown/Menu/GroupedList/Heading.d.ts +9 -0
  165. package/esm/dropdown/Menu/GroupedList/Heading.js +19 -0
  166. package/esm/dropdown/Menu/GroupedList/Heading.js.map +1 -0
  167. package/esm/dropdown/Menu/GroupedList/Item.d.ts +10 -0
  168. package/esm/dropdown/Menu/GroupedList/Item.js +26 -0
  169. package/esm/dropdown/Menu/GroupedList/Item.js.map +1 -0
  170. package/esm/dropdown/Menu/GroupedList/index.d.ts +23 -0
  171. package/esm/dropdown/Menu/GroupedList/index.js +23 -0
  172. package/esm/dropdown/Menu/GroupedList/index.js.map +1 -0
  173. package/esm/dropdown/Menu/List/Item.d.ts +10 -0
  174. package/esm/dropdown/Menu/List/Item.js +26 -0
  175. package/esm/dropdown/Menu/List/Item.js.map +1 -0
  176. package/esm/dropdown/Menu/List/index.d.ts +18 -0
  177. package/esm/dropdown/Menu/List/index.js +21 -0
  178. package/esm/dropdown/Menu/List/index.js.map +1 -0
  179. package/esm/dropdown/Menu/index.d.ts +35 -0
  180. package/esm/dropdown/Menu/index.js +36 -0
  181. package/esm/dropdown/Menu/index.js.map +1 -0
  182. package/esm/dropdown/Toggle.d.ts +9 -0
  183. package/esm/dropdown/Toggle.js +38 -0
  184. package/esm/dropdown/Toggle.js.map +1 -0
  185. package/esm/dropdown/index.d.ts +2 -0
  186. package/esm/dropdown/index.js +3 -0
  187. package/esm/dropdown/index.js.map +1 -0
  188. package/esm/expansion-card/ExpansionCard.d.ts +40 -8
  189. package/esm/expansion-card/ExpansionCard.js +18 -0
  190. package/esm/expansion-card/ExpansionCard.js.map +1 -1
  191. package/esm/expansion-card/ExpansionCardContent.d.ts +1 -2
  192. package/esm/expansion-card/ExpansionCardContent.js.map +1 -1
  193. package/esm/expansion-card/ExpansionCardDescription.d.ts +2 -4
  194. package/esm/expansion-card/ExpansionCardDescription.js.map +1 -1
  195. package/esm/expansion-card/ExpansionCardHeader.d.ts +1 -2
  196. package/esm/expansion-card/ExpansionCardHeader.js.map +1 -1
  197. package/esm/expansion-card/ExpansionCardTitle.d.ts +2 -4
  198. package/esm/expansion-card/ExpansionCardTitle.js.map +1 -1
  199. package/esm/form/ConfirmationPanel.d.ts +18 -0
  200. package/esm/form/ConfirmationPanel.js +18 -0
  201. package/esm/form/ConfirmationPanel.js.map +1 -1
  202. package/esm/form/Select.d.ts +16 -0
  203. package/esm/form/Select.js +16 -0
  204. package/esm/form/Select.js.map +1 -1
  205. package/esm/form/Switch.d.ts +11 -0
  206. package/esm/form/Switch.js +11 -0
  207. package/esm/form/Switch.js.map +1 -1
  208. package/esm/form/TextField.d.ts +11 -0
  209. package/esm/form/TextField.js +11 -0
  210. package/esm/form/TextField.js.map +1 -1
  211. package/esm/form/Textarea.d.ts +11 -0
  212. package/esm/form/Textarea.js +11 -0
  213. package/esm/form/Textarea.js.map +1 -1
  214. package/esm/form/checkbox/CheckboxGroup.d.ts +15 -0
  215. package/esm/form/checkbox/CheckboxGroup.js +15 -0
  216. package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
  217. package/esm/form/error-summary/ErrorSummary.d.ts +18 -0
  218. package/esm/form/error-summary/ErrorSummary.js +18 -0
  219. package/esm/form/error-summary/ErrorSummary.js.map +1 -1
  220. package/esm/form/radio/RadioGroup.d.ts +10 -0
  221. package/esm/form/radio/RadioGroup.js +10 -0
  222. package/esm/form/radio/RadioGroup.js.map +1 -1
  223. package/esm/form/search/Search.d.ts +13 -0
  224. package/esm/form/search/Search.js +13 -0
  225. package/esm/form/search/Search.js.map +1 -1
  226. package/esm/guide-panel/GuidePanel.d.ts +15 -0
  227. package/esm/guide-panel/GuidePanel.js +15 -0
  228. package/esm/guide-panel/GuidePanel.js.map +1 -1
  229. package/esm/help-text/HelpText.d.ts +13 -0
  230. package/esm/help-text/HelpText.js +13 -0
  231. package/esm/help-text/HelpText.js.map +1 -1
  232. package/esm/index.d.ts +4 -0
  233. package/esm/index.js +4 -0
  234. package/esm/index.js.map +1 -1
  235. package/esm/internal-header/InternalHeader.d.ts +60 -0
  236. package/esm/internal-header/InternalHeader.js +55 -0
  237. package/esm/internal-header/InternalHeader.js.map +1 -0
  238. package/esm/internal-header/InternalHeaderButton.d.ts +10 -0
  239. package/esm/internal-header/InternalHeaderButton.js +19 -0
  240. package/esm/internal-header/InternalHeaderButton.js.map +1 -0
  241. package/esm/internal-header/InternalHeaderTitle.d.ts +10 -0
  242. package/esm/internal-header/InternalHeaderTitle.js +20 -0
  243. package/esm/internal-header/InternalHeaderTitle.js.map +1 -0
  244. package/esm/internal-header/InternalHeaderUser.d.ts +13 -0
  245. package/esm/internal-header/InternalHeaderUser.js +23 -0
  246. package/esm/internal-header/InternalHeaderUser.js.map +1 -0
  247. package/esm/internal-header/InternalHeaderUserButton.d.ts +14 -0
  248. package/esm/internal-header/InternalHeaderUserButton.js +26 -0
  249. package/esm/internal-header/InternalHeaderUserButton.js.map +1 -0
  250. package/esm/internal-header/index.d.ts +5 -0
  251. package/esm/internal-header/index.js +2 -0
  252. package/esm/internal-header/index.js.map +1 -0
  253. package/esm/link/Link.d.ts +13 -0
  254. package/esm/link/Link.js +13 -0
  255. package/esm/link/Link.js.map +1 -1
  256. package/esm/link-panel/LinkPanel.d.ts +28 -4
  257. package/esm/link-panel/LinkPanel.js +17 -0
  258. package/esm/link-panel/LinkPanel.js.map +1 -1
  259. package/esm/link-panel/LinkPanelDescription.d.ts +2 -4
  260. package/esm/link-panel/LinkPanelDescription.js.map +1 -1
  261. package/esm/link-panel/LinkPanelTitle.d.ts +2 -4
  262. package/esm/link-panel/LinkPanelTitle.js.map +1 -1
  263. package/esm/list/List.d.ts +5 -2
  264. package/esm/list/List.js.map +1 -1
  265. package/esm/list/ListItem.d.ts +1 -3
  266. package/esm/list/ListItem.js.map +1 -1
  267. package/esm/loader/Loader.d.ts +11 -0
  268. package/esm/loader/Loader.js +11 -0
  269. package/esm/loader/Loader.js.map +1 -1
  270. package/esm/modal/Modal.d.ts +27 -0
  271. package/esm/modal/Modal.js +27 -0
  272. package/esm/modal/Modal.js.map +1 -1
  273. package/esm/pagination/Pagination.d.ts +17 -0
  274. package/esm/pagination/Pagination.js +17 -0
  275. package/esm/pagination/Pagination.js.map +1 -1
  276. package/esm/panel/Panel.d.ts +19 -0
  277. package/esm/panel/Panel.js +19 -0
  278. package/esm/panel/Panel.js.map +1 -1
  279. package/esm/popover/Popover.d.ts +20 -0
  280. package/esm/popover/Popover.js +20 -0
  281. package/esm/popover/Popover.js.map +1 -1
  282. package/esm/provider/Provider.d.ts +13 -0
  283. package/esm/provider/Provider.js +13 -0
  284. package/esm/provider/Provider.js.map +1 -1
  285. package/esm/read-more/ReadMore.d.ts +17 -0
  286. package/esm/read-more/ReadMore.js +17 -0
  287. package/esm/read-more/ReadMore.js.map +1 -1
  288. package/esm/skeleton/Skeleton.d.ts +18 -0
  289. package/esm/skeleton/Skeleton.js +23 -0
  290. package/esm/skeleton/Skeleton.js.map +1 -0
  291. package/esm/skeleton/index.d.ts +2 -0
  292. package/esm/skeleton/index.js +2 -0
  293. package/esm/skeleton/index.js.map +1 -0
  294. package/esm/stepper/Step.d.ts +1 -4
  295. package/esm/stepper/Step.js +1 -2
  296. package/esm/stepper/Step.js.map +1 -1
  297. package/esm/stepper/Stepper.d.ts +31 -2
  298. package/esm/stepper/Stepper.js +24 -0
  299. package/esm/stepper/Stepper.js.map +1 -1
  300. package/esm/table/Table.d.ts +32 -0
  301. package/esm/table/Table.js +32 -0
  302. package/esm/table/Table.js.map +1 -1
  303. package/esm/tabs/Tab.d.ts +1 -2
  304. package/esm/tabs/Tab.js.map +1 -1
  305. package/esm/tabs/TabList.d.ts +1 -2
  306. package/esm/tabs/TabList.js.map +1 -1
  307. package/esm/tabs/TabPanel.d.ts +1 -2
  308. package/esm/tabs/TabPanel.js.map +1 -1
  309. package/esm/tabs/Tabs.d.ts +43 -6
  310. package/esm/tabs/Tabs.js +27 -1
  311. package/esm/tabs/Tabs.js.map +1 -1
  312. package/esm/tag/Tag.d.ts +11 -0
  313. package/esm/tag/Tag.js +11 -0
  314. package/esm/tag/Tag.js.map +1 -1
  315. package/esm/timeline/AxisLabels.d.ts +6 -0
  316. package/esm/timeline/AxisLabels.js +81 -0
  317. package/esm/timeline/AxisLabels.js.map +1 -0
  318. package/esm/timeline/Pin.d.ts +17 -0
  319. package/esm/timeline/Pin.js +81 -0
  320. package/esm/timeline/Pin.js.map +1 -0
  321. package/esm/timeline/Timeline.d.ts +63 -0
  322. package/esm/timeline/Timeline.js +152 -0
  323. package/esm/timeline/Timeline.js.map +1 -0
  324. package/esm/timeline/TimelineRow.d.ts +22 -0
  325. package/esm/timeline/TimelineRow.js +58 -0
  326. package/esm/timeline/TimelineRow.js.map +1 -0
  327. package/esm/timeline/hooks/usePeriodContext.d.ts +9 -0
  328. package/esm/timeline/hooks/usePeriodContext.js +13 -0
  329. package/esm/timeline/hooks/usePeriodContext.js.map +1 -0
  330. package/esm/timeline/hooks/useRowContext.d.ts +11 -0
  331. package/esm/timeline/hooks/useRowContext.js +15 -0
  332. package/esm/timeline/hooks/useRowContext.js.map +1 -0
  333. package/esm/timeline/hooks/useTimelineContext.d.ts +15 -0
  334. package/esm/timeline/hooks/useTimelineContext.js +20 -0
  335. package/esm/timeline/hooks/useTimelineContext.js.map +1 -0
  336. package/esm/timeline/hooks/useTimelineRows.d.ts +4 -0
  337. package/esm/timeline/hooks/useTimelineRows.js +74 -0
  338. package/esm/timeline/hooks/useTimelineRows.js.map +1 -0
  339. package/esm/timeline/index.d.ts +6 -0
  340. package/esm/timeline/index.js +2 -0
  341. package/esm/timeline/index.js.map +1 -0
  342. package/esm/timeline/period/ClickablePeriod.d.ts +9 -0
  343. package/esm/timeline/period/ClickablePeriod.js +93 -0
  344. package/esm/timeline/period/ClickablePeriod.js.map +1 -0
  345. package/esm/timeline/period/NonClickablePeriod.d.ts +7 -0
  346. package/esm/timeline/period/NonClickablePeriod.js +14 -0
  347. package/esm/timeline/period/NonClickablePeriod.js.map +1 -0
  348. package/esm/timeline/period/index.d.ts +57 -0
  349. package/esm/timeline/period/index.js +18 -0
  350. package/esm/timeline/period/index.js.map +1 -0
  351. package/esm/timeline/utils/calc.d.ts +5 -0
  352. package/esm/timeline/utils/calc.js +15 -0
  353. package/esm/timeline/utils/calc.js.map +1 -0
  354. package/esm/timeline/utils/filter.d.ts +10 -0
  355. package/esm/timeline/utils/filter.js +11 -0
  356. package/esm/timeline/utils/filter.js.map +1 -0
  357. package/esm/timeline/utils/index.d.ts +1 -0
  358. package/esm/timeline/utils/index.js +2 -0
  359. package/esm/timeline/utils/index.js.map +1 -0
  360. package/esm/timeline/utils/period.d.ts +2 -0
  361. package/esm/timeline/utils/period.js +33 -0
  362. package/esm/timeline/utils/period.js.map +1 -0
  363. package/esm/timeline/utils/sort.d.ts +4 -0
  364. package/esm/timeline/utils/sort.js +5 -0
  365. package/esm/timeline/utils/sort.js.map +1 -0
  366. package/esm/timeline/utils/timeline.d.ts +12 -0
  367. package/esm/timeline/utils/timeline.js +73 -0
  368. package/esm/timeline/utils/timeline.js.map +1 -0
  369. package/esm/timeline/utils/types.external.d.ts +53 -0
  370. package/esm/timeline/utils/types.external.js +2 -0
  371. package/esm/timeline/utils/types.external.js.map +1 -0
  372. package/esm/timeline/utils/types.internal.d.ts +61 -0
  373. package/esm/timeline/utils/types.internal.js +2 -0
  374. package/esm/timeline/utils/types.internal.js.map +1 -0
  375. package/esm/timeline/zoom/ZoomButton.d.ts +19 -0
  376. package/esm/timeline/zoom/ZoomButton.js +43 -0
  377. package/esm/timeline/zoom/ZoomButton.js.map +1 -0
  378. package/esm/timeline/zoom/index.d.ts +11 -0
  379. package/esm/timeline/zoom/index.js +22 -0
  380. package/esm/timeline/zoom/index.js.map +1 -0
  381. package/esm/toggle-group/ToggleGroup.d.ts +20 -2
  382. package/esm/toggle-group/ToggleGroup.js +17 -2
  383. package/esm/toggle-group/ToggleGroup.js.map +1 -1
  384. package/esm/toggle-group/ToggleItem.d.ts +1 -2
  385. package/esm/toggle-group/ToggleItem.js.map +1 -1
  386. package/esm/tooltip/Tooltip.d.ts +13 -0
  387. package/esm/tooltip/Tooltip.js +13 -0
  388. package/esm/tooltip/Tooltip.js.map +1 -1
  389. package/esm/typography/BodyLong.d.ts +14 -0
  390. package/esm/typography/BodyLong.js +14 -0
  391. package/esm/typography/BodyLong.js.map +1 -1
  392. package/esm/typography/BodyShort.d.ts +14 -0
  393. package/esm/typography/BodyShort.js +14 -0
  394. package/esm/typography/BodyShort.js.map +1 -1
  395. package/esm/typography/Detail.d.ts +14 -0
  396. package/esm/typography/Detail.js +14 -0
  397. package/esm/typography/Detail.js.map +1 -1
  398. package/esm/typography/ErrorMessage.d.ts +14 -0
  399. package/esm/typography/ErrorMessage.js +14 -0
  400. package/esm/typography/ErrorMessage.js.map +1 -1
  401. package/esm/typography/Heading.d.ts +14 -0
  402. package/esm/typography/Heading.js +14 -0
  403. package/esm/typography/Heading.js.map +1 -1
  404. package/esm/typography/Ingress.d.ts +14 -0
  405. package/esm/typography/Ingress.js +14 -0
  406. package/esm/typography/Ingress.js.map +1 -1
  407. package/esm/typography/Label.d.ts +14 -0
  408. package/esm/typography/Label.js +14 -0
  409. package/esm/typography/Label.js.map +1 -1
  410. package/package.json +2 -2
  411. package/src/accordion/Accordion.tsx +49 -7
  412. package/src/accordion/AccordionContent.tsx +1 -5
  413. package/src/accordion/AccordionHeader.tsx +1 -5
  414. package/src/accordion/AccordionItem.tsx +1 -5
  415. package/src/accordion/accordion.stories.tsx +4 -2
  416. package/src/alert/Alert.tsx +9 -0
  417. package/src/button/Button.tsx +10 -0
  418. package/src/chat/Bubble.tsx +1 -5
  419. package/src/chat/Chat.tsx +23 -2
  420. package/src/chips/Chips.tsx +42 -4
  421. package/src/chips/Removable.tsx +1 -4
  422. package/src/chips/Toggle.tsx +47 -11
  423. package/src/chips/chips.stories.tsx +73 -20
  424. package/src/copybutton/CopyButton.tsx +11 -0
  425. package/src/date/DateInput.tsx +105 -115
  426. package/src/date/datepicker/DatePicker.tsx +40 -2
  427. package/src/date/datepicker/datepicker.stories.tsx +19 -21
  428. package/src/date/datepicker/datepicker.test.tsx +5 -5
  429. package/src/date/hooks/index.ts +3 -3
  430. package/src/date/hooks/useDatepicker.tsx +13 -0
  431. package/src/date/hooks/useMonthPicker.tsx +13 -0
  432. package/src/date/hooks/useRangeDatepicker.test.tsx +6 -6
  433. package/src/date/hooks/useRangeDatepicker.tsx +13 -1
  434. package/src/date/index.ts +5 -5
  435. package/src/date/monthpicker/MonthPicker.tsx +36 -4
  436. package/src/date/monthpicker/monthpicker.stories.tsx +5 -5
  437. package/src/date/utils/__tests__/get-dates.test.ts +0 -1
  438. package/src/dropdown/Dropdown.tsx +119 -0
  439. package/src/dropdown/Menu/Divider.tsx +15 -0
  440. package/src/dropdown/Menu/GroupedList/Heading.tsx +28 -0
  441. package/src/dropdown/Menu/GroupedList/Item.tsx +41 -0
  442. package/src/dropdown/Menu/GroupedList/index.tsx +43 -0
  443. package/src/dropdown/Menu/List/Item.tsx +38 -0
  444. package/src/dropdown/Menu/List/index.tsx +32 -0
  445. package/src/dropdown/Menu/index.tsx +96 -0
  446. package/src/dropdown/Toggle.tsx +48 -0
  447. package/src/dropdown/dropdown.stories.tsx +91 -0
  448. package/src/dropdown/index.ts +2 -0
  449. package/src/expansion-card/ExpansionCard.tsx +46 -8
  450. package/src/expansion-card/ExpansionCardContent.tsx +25 -28
  451. package/src/expansion-card/ExpansionCardDescription.tsx +22 -24
  452. package/src/expansion-card/ExpansionCardHeader.tsx +31 -34
  453. package/src/expansion-card/ExpansionCardTitle.tsx +3 -5
  454. package/src/form/ConfirmationPanel.tsx +18 -0
  455. package/src/form/Select.tsx +16 -0
  456. package/src/form/Switch.tsx +11 -0
  457. package/src/form/TextField.tsx +11 -0
  458. package/src/form/Textarea.tsx +11 -0
  459. package/src/form/checkbox/CheckboxGroup.tsx +15 -0
  460. package/src/form/error-summary/ErrorSummary.tsx +18 -0
  461. package/src/form/radio/RadioGroup.tsx +10 -0
  462. package/src/form/search/Search.tsx +13 -0
  463. package/src/guide-panel/GuidePanel.tsx +15 -0
  464. package/src/help-text/HelpText.tsx +13 -0
  465. package/src/index.ts +4 -0
  466. package/src/internal-header/InternalHeader.tsx +93 -0
  467. package/src/internal-header/InternalHeaderButton.tsx +23 -0
  468. package/src/internal-header/InternalHeaderTitle.tsx +27 -0
  469. package/src/internal-header/InternalHeaderUser.tsx +35 -0
  470. package/src/internal-header/InternalHeaderUserButton.tsx +40 -0
  471. package/src/internal-header/header.stories.tsx +225 -0
  472. package/src/internal-header/index.ts +8 -0
  473. package/src/link/Link.tsx +13 -0
  474. package/src/link-panel/LinkPanel.tsx +30 -4
  475. package/src/link-panel/LinkPanelDescription.tsx +12 -15
  476. package/src/link-panel/LinkPanelTitle.tsx +15 -18
  477. package/src/list/List.tsx +7 -2
  478. package/src/list/ListItem.tsx +1 -6
  479. package/src/loader/Loader.tsx +11 -0
  480. package/src/modal/Modal.tsx +27 -0
  481. package/src/pagination/Pagination.tsx +17 -0
  482. package/src/panel/Panel.tsx +19 -0
  483. package/src/popover/Popover.tsx +20 -0
  484. package/src/provider/Provider.tsx +13 -0
  485. package/src/read-more/ReadMore.tsx +17 -0
  486. package/src/skeleton/Skeleton.tsx +48 -0
  487. package/src/skeleton/index.ts +2 -0
  488. package/src/skeleton/skeleton.stories.tsx +118 -0
  489. package/src/stepper/Step.tsx +57 -60
  490. package/src/stepper/Stepper.tsx +31 -2
  491. package/src/table/Table.tsx +32 -0
  492. package/src/tabs/Tab.tsx +38 -39
  493. package/src/tabs/TabList.tsx +1 -5
  494. package/src/tabs/TabPanel.tsx +1 -5
  495. package/src/tabs/Tabs.tsx +48 -7
  496. package/src/tag/Tag.tsx +11 -0
  497. package/src/timeline/AxisLabels.tsx +143 -0
  498. package/src/timeline/Pin.tsx +169 -0
  499. package/src/timeline/Timeline.tsx +237 -0
  500. package/src/timeline/TimelineRow.tsx +122 -0
  501. package/src/timeline/hooks/usePeriodContext.tsx +22 -0
  502. package/src/timeline/hooks/useRowContext.tsx +26 -0
  503. package/src/timeline/hooks/useTimelineContext.tsx +37 -0
  504. package/src/timeline/hooks/useTimelineRows.ts +161 -0
  505. package/src/timeline/index.ts +6 -0
  506. package/src/timeline/period/ClickablePeriod.tsx +193 -0
  507. package/src/timeline/period/NonClickablePeriod.tsx +46 -0
  508. package/src/timeline/period/index.tsx +130 -0
  509. package/src/timeline/timeline.stories.tsx +444 -0
  510. package/src/timeline/utils/calc.ts +26 -0
  511. package/src/timeline/utils/filter.ts +32 -0
  512. package/src/timeline/utils/index.ts +6 -0
  513. package/src/timeline/utils/period.ts +48 -0
  514. package/src/timeline/utils/sort.ts +11 -0
  515. package/src/timeline/utils/timeline.ts +83 -0
  516. package/src/timeline/utils/types.external.ts +67 -0
  517. package/src/timeline/utils/types.internal.ts +76 -0
  518. package/src/timeline/zoom/ZoomButton.tsx +83 -0
  519. package/src/timeline/zoom/index.tsx +30 -0
  520. package/src/toggle-group/ToggleGroup.tsx +23 -3
  521. package/src/toggle-group/ToggleItem.tsx +1 -5
  522. package/src/tooltip/Tooltip.tsx +13 -0
  523. package/src/typography/BodyLong.tsx +14 -0
  524. package/src/typography/BodyShort.tsx +14 -0
  525. package/src/typography/Detail.tsx +14 -0
  526. package/src/typography/ErrorMessage.tsx +14 -0
  527. package/src/typography/Heading.tsx +14 -0
  528. package/src/typography/Ingress.tsx +14 -0
  529. package/src/typography/Label.tsx +14 -0
@@ -0,0 +1,40 @@
1
+ import { ChevronDownIcon } from "@navikt/aksel-icons";
2
+ import cl from "clsx";
3
+ import React, { forwardRef } from "react";
4
+ import { BodyShort, Detail } from "../typography";
5
+ import { OverridableComponent } from "../util/OverridableComponent";
6
+ import InternalHeaderButton from "./InternalHeaderButton";
7
+
8
+ export interface InternalHeaderUserButtonProps
9
+ extends React.AnchorHTMLAttributes<HTMLButtonElement> {
10
+ /**
11
+ * User name
12
+ */
13
+ name: string;
14
+ /**
15
+ * User description
16
+ */
17
+ description?: string;
18
+ }
19
+
20
+ export const InternalHeaderUserButton: OverridableComponent<
21
+ InternalHeaderUserButtonProps,
22
+ HTMLButtonElement
23
+ > = forwardRef(({ as, name, description, className, ...rest }, ref) => (
24
+ <InternalHeaderButton
25
+ {...rest}
26
+ as={as}
27
+ ref={ref}
28
+ className={cl("navds-internalheader__user-button", className)}
29
+ >
30
+ <div>
31
+ <BodyShort size="small" as="div">
32
+ {name}
33
+ </BodyShort>
34
+ {description && <Detail as="div">{description}</Detail>}
35
+ </div>
36
+ <ChevronDownIcon title="vis meny" />
37
+ </InternalHeaderButton>
38
+ ));
39
+
40
+ export default InternalHeaderUserButton;
@@ -0,0 +1,225 @@
1
+ import {
2
+ ChevronDownIcon,
3
+ ExternalLinkIcon,
4
+ MenuGridIcon,
5
+ } from "@navikt/aksel-icons";
6
+ import { BodyLong, BodyShort, Detail } from "@navikt/ds-react";
7
+ import { Meta } from "@storybook/react";
8
+ import React from "react";
9
+ import { InternalHeader, Dropdown } from "..";
10
+
11
+ export default {
12
+ title: "ds-react/InternalHeader",
13
+ component: InternalHeader,
14
+ argTypes: {
15
+ user: {
16
+ control: {
17
+ type: "radio",
18
+ options: ["simple", "with description", "with dropdown"],
19
+ },
20
+ },
21
+ },
22
+ } as Meta;
23
+
24
+ export const Default = {
25
+ render: (props) => {
26
+ return (
27
+ <InternalHeader style={{ width: 600 }}>
28
+ {props?.titleAsHeading ? (
29
+ <InternalHeader.Title as="h1">Tittel</InternalHeader.Title>
30
+ ) : (
31
+ <InternalHeader.Title href="/#home">
32
+ Tittel med lenke
33
+ </InternalHeader.Title>
34
+ )}
35
+ {props.systemMenu && (
36
+ <Dropdown>
37
+ <InternalHeader.Button
38
+ as={Dropdown.Toggle}
39
+ style={{ marginLeft: "auto" }}
40
+ >
41
+ <MenuGridIcon
42
+ style={{ fontSize: "1.5rem" }}
43
+ title="MenuGridIconer og oppslagsverk"
44
+ />
45
+ </InternalHeader.Button>
46
+ <Dropdown.Menu strategy="fixed">
47
+ <Dropdown.Menu.List>
48
+ <Dropdown.Menu.List.Item>
49
+ <span>A.Inntekt</span>
50
+ <ExternalLinkIcon style={{ fontSize: "0.875rem" }} />
51
+ </Dropdown.Menu.List.Item>
52
+ <Dropdown.Menu.List.Item>
53
+ <span>Aa-registeret</span>
54
+ <ExternalLinkIcon style={{ fontSize: "0.875rem" }} />
55
+ </Dropdown.Menu.List.Item>
56
+ <Dropdown.Menu.List.Item>
57
+ <span>Gosys</span>
58
+ <ExternalLinkIcon style={{ fontSize: "0.875rem" }} />
59
+ </Dropdown.Menu.List.Item>
60
+ </Dropdown.Menu.List>
61
+ </Dropdown.Menu>
62
+ </Dropdown>
63
+ )}
64
+ {(!props.user || props.user === "simple") && (
65
+ <InternalHeader.User
66
+ name="Ola Normann"
67
+ style={{ marginLeft: props.systemMenu ? "none" : "auto" }}
68
+ />
69
+ )}
70
+ {props.user === "with description" && (
71
+ <InternalHeader.User
72
+ name="Ola Normann"
73
+ description="0123456"
74
+ style={{ marginLeft: props.systemMenu ? "none" : "auto" }}
75
+ />
76
+ )}
77
+ {props.user === "with dropdown" && (
78
+ <Dropdown>
79
+ <InternalHeader.Button
80
+ as={Dropdown.Toggle}
81
+ style={{
82
+ marginLeft: props.systemMenu ? "none" : "auto",
83
+ paddingRight: "1.5rem",
84
+ paddingLeft: "1.5rem",
85
+ gap: "1rem",
86
+ }}
87
+ >
88
+ <BodyShort title="Ola Normann">KH</BodyShort>
89
+ <ChevronDownIcon />
90
+ </InternalHeader.Button>
91
+ <Dropdown.Menu strategy="fixed">
92
+ <div>
93
+ <BodyLong size="small" as="div">
94
+ Ola Normann 16px
95
+ </BodyLong>
96
+ <Detail size="small" as="div">
97
+ <div>Ident nr 14px</div>
98
+ <div>Enhet: Skien</div>
99
+ </Detail>
100
+ </div>
101
+ <Dropdown.Menu.Divider />
102
+ <Dropdown.Menu.List>
103
+ <Dropdown.Menu.List.Item as="a" href="/#settings">
104
+ Innstillinger
105
+ </Dropdown.Menu.List.Item>
106
+ <Dropdown.Menu.List.Item onClick={() => console.log("logg ut")}>
107
+ Logg ut
108
+ </Dropdown.Menu.List.Item>
109
+ </Dropdown.Menu.List>
110
+ </Dropdown.Menu>
111
+ </Dropdown>
112
+ )}
113
+ </InternalHeader>
114
+ );
115
+ },
116
+
117
+ args: {
118
+ titleAsHeading: false,
119
+ systemMenu: false,
120
+ },
121
+ };
122
+
123
+ export const TitleAsHeading = () => (
124
+ <InternalHeader style={{ width: 600 }}>
125
+ <InternalHeader.Title as="h1">Tittel</InternalHeader.Title>
126
+ </InternalHeader>
127
+ );
128
+
129
+ export const TitleAsLink = () => (
130
+ <InternalHeader style={{ width: 600 }}>
131
+ <InternalHeader.Title href="/#home">Tittel med lenke</InternalHeader.Title>
132
+ </InternalHeader>
133
+ );
134
+
135
+ export const User = () => (
136
+ <InternalHeader style={{ width: 600 }}>
137
+ <InternalHeader.Title href="/#home">Tittel med lenke</InternalHeader.Title>
138
+ <InternalHeader.User name="Ola Normann" style={{ marginLeft: "auto" }} />
139
+ </InternalHeader>
140
+ );
141
+
142
+ export const UserWithDescription = () => (
143
+ <InternalHeader style={{ width: 600 }}>
144
+ <InternalHeader.Title href="/#home">Tittel med lenke</InternalHeader.Title>
145
+ <InternalHeader.User
146
+ name="Ola Normann"
147
+ description="id: 123456"
148
+ style={{ marginLeft: "auto" }}
149
+ />
150
+ </InternalHeader>
151
+ );
152
+
153
+ export const UserWithMenu = () => (
154
+ <InternalHeader style={{ width: 600 }}>
155
+ <InternalHeader.Title href="/#home">Tittel med lenke</InternalHeader.Title>
156
+ <Dropdown>
157
+ <InternalHeader.Button
158
+ as={Dropdown.Toggle}
159
+ style={{
160
+ marginLeft: "auto",
161
+ paddingRight: "1.5rem",
162
+ paddingLeft: "1.5rem",
163
+ gap: "1rem",
164
+ }}
165
+ >
166
+ <BodyShort title="Ola Normann">KH</BodyShort>
167
+ <ChevronDownIcon />
168
+ </InternalHeader.Button>
169
+ <Dropdown.Menu strategy="fixed">
170
+ <div>
171
+ <BodyLong size="small" as="div">
172
+ Ola Normann 16px
173
+ </BodyLong>
174
+ <Detail size="small" as="div">
175
+ <div>Ident nr 14px</div>
176
+ <div>Enhet: Skien</div>
177
+ </Detail>
178
+ </div>
179
+ <Dropdown.Menu.Divider />
180
+ <Dropdown.Menu.List>
181
+ <Dropdown.Menu.List.Item as="a" href="/#settings">
182
+ Innstillinger
183
+ </Dropdown.Menu.List.Item>
184
+ <Dropdown.Menu.List.Item onClick={() => console.log("logg ut")}>
185
+ Logg ut
186
+ </Dropdown.Menu.List.Item>
187
+ </Dropdown.Menu.List>
188
+ </Dropdown.Menu>
189
+ </Dropdown>
190
+ </InternalHeader>
191
+ );
192
+
193
+ export const UserWithMenuGridIconMenu = () => (
194
+ <InternalHeader style={{ width: 600 }}>
195
+ <InternalHeader.Title href="/#home">Tittel med lenke</InternalHeader.Title>
196
+ <Dropdown>
197
+ <InternalHeader.Button
198
+ as={Dropdown.Toggle}
199
+ style={{ marginLeft: "auto" }}
200
+ >
201
+ <MenuGridIcon
202
+ style={{ fontSize: "1.5rem" }}
203
+ title="MenuGridIconer og oppslagsverk"
204
+ />
205
+ </InternalHeader.Button>
206
+ <Dropdown.Menu strategy="fixed">
207
+ <Dropdown.Menu.List>
208
+ <Dropdown.Menu.List.Item>
209
+ <span>A.Inntekt</span>
210
+ <ExternalLinkIcon style={{ fontSize: "0.875rem" }} />
211
+ </Dropdown.Menu.List.Item>
212
+ <Dropdown.Menu.List.Item>
213
+ <span>Aa-registeret</span>
214
+ <ExternalLinkIcon style={{ fontSize: "0.875rem" }} />
215
+ </Dropdown.Menu.List.Item>
216
+ <Dropdown.Menu.List.Item>
217
+ <span>Gosys</span>
218
+ <ExternalLinkIcon style={{ fontSize: "0.875rem" }} />
219
+ </Dropdown.Menu.List.Item>
220
+ </Dropdown.Menu.List>
221
+ </Dropdown.Menu>
222
+ </Dropdown>
223
+ <InternalHeader.User name="Ola Normann" description="id: 123456" />
224
+ </InternalHeader>
225
+ );
@@ -0,0 +1,8 @@
1
+ export {
2
+ default as InternalHeader,
3
+ type InternalHeaderProps,
4
+ } from "./InternalHeader";
5
+ export { type InternalHeaderButtonProps } from "./InternalHeaderButton";
6
+ export { type InternalHeaderTitleProps } from "./InternalHeaderTitle";
7
+ export { type InternalHeaderUserProps } from "./InternalHeaderUser";
8
+ export { type InternalHeaderUserButtonProps } from "./InternalHeaderUserButton";
package/src/link/Link.tsx CHANGED
@@ -10,6 +10,19 @@ export interface LinkProps
10
10
  children: React.ReactNode;
11
11
  }
12
12
 
13
+ /**
14
+ * A component that displays a hyperlink.
15
+ *
16
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/link)
17
+ * @see 🏷️ {@link LinkProps}
18
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
19
+ *
20
+ * @example
21
+ * ```jsx
22
+ * <Link href="#">lenke til ny side</Link>
23
+ * <Link as={ReactRouter.Link} to="#">lenke til ny side</Link>
24
+ * ```
25
+ */
13
26
  export const Link: OverridableComponent<LinkProps, HTMLAnchorElement> =
14
27
  forwardRef(({ as: Component = "a", className, ...rest }, ref) => (
15
28
  <Component {...rest} ref={ref} className={cl("navds-link", className)} />
@@ -2,10 +2,10 @@ import React, { forwardRef } from "react";
2
2
  import { Panel, OverridableComponent } from "..";
3
3
 
4
4
  import cl from "clsx";
5
- import { LinkPanelTitle, LinkPanelTitleType } from "./LinkPanelTitle";
5
+ import { LinkPanelTitle, LinkPanelTitleProps } from "./LinkPanelTitle";
6
6
  import {
7
7
  LinkPanelDescription,
8
- LinkPanelDescriptionType,
8
+ LinkPanelDescriptionProps,
9
9
  } from "./LinkPanelDescription";
10
10
  import { ChevronRightIcon } from "@navikt/aksel-icons";
11
11
 
@@ -24,10 +24,36 @@ export interface LinkPanelProps
24
24
 
25
25
  interface LinkPanelComponentType
26
26
  extends OverridableComponent<LinkPanelProps, HTMLAnchorElement> {
27
- Title: LinkPanelTitleType;
28
- Description: LinkPanelDescriptionType;
27
+ /**
28
+ * @see 🏷️ {@link LinkPanelDescriptionProps}
29
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
30
+ */
31
+ Title: OverridableComponent<LinkPanelTitleProps, HTMLDivElement>;
32
+ /**
33
+ * @see 🏷️ {@link LinkPanelDescriptionProps}
34
+ */
35
+ Description: React.ForwardRefExoticComponent<
36
+ LinkPanelDescriptionProps & React.RefAttributes<HTMLDivElement>
37
+ >;
29
38
  }
30
39
 
40
+ /**
41
+ * A component that displays a link panel.
42
+ *
43
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/linkpanel)
44
+ * @see 🏷️ {@link LinkPanelProps}
45
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
46
+ *
47
+ * @example
48
+ * ```jsx
49
+ * <LinkPanel href="#" border>
50
+ * <LinkPanel.Title>Arbeidssøker eller permittert</LinkPanel.Title>
51
+ * <LinkPanel.Description>
52
+ * Om jobb, registrering, CV, dagpenger og feriepenger av dagpenger
53
+ * </LinkPanel.Description>
54
+ * </LinkPanel>
55
+ * ```
56
+ */
31
57
  export const LinkPanelComponent: OverridableComponent<
32
58
  LinkPanelProps,
33
59
  HTMLAnchorElement
@@ -2,22 +2,19 @@ import React, { forwardRef } from "react";
2
2
  import cl from "clsx";
3
3
  import { BodyLong } from "..";
4
4
 
5
- interface LinkPanelDescriptionProps
5
+ export interface LinkPanelDescriptionProps
6
6
  extends React.HTMLAttributes<HTMLDivElement> {
7
7
  children: React.ReactNode;
8
8
  }
9
9
 
10
- export type LinkPanelDescriptionType = React.ForwardRefExoticComponent<
11
- LinkPanelDescriptionProps & React.RefAttributes<HTMLDivElement>
12
- >;
13
-
14
- export const LinkPanelDescription: LinkPanelDescriptionType = forwardRef(
15
- ({ className, ...rest }, ref) => (
16
- <BodyLong
17
- {...rest}
18
- as="div"
19
- ref={ref}
20
- className={cl("navds-link-panel__description", className)}
21
- />
22
- )
23
- );
10
+ export const LinkPanelDescription = forwardRef<
11
+ HTMLDivElement,
12
+ LinkPanelDescriptionProps
13
+ >(({ className, ...rest }, ref) => (
14
+ <BodyLong
15
+ {...rest}
16
+ as="div"
17
+ ref={ref}
18
+ className={cl("navds-link-panel__description", className)}
19
+ />
20
+ ));
@@ -2,26 +2,23 @@ import React, { forwardRef } from "react";
2
2
  import cl from "clsx";
3
3
  import { OverridableComponent } from "../util/OverridableComponent";
4
4
 
5
- interface LinkPanelTitleProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ export interface LinkPanelTitleProps
6
+ extends React.HTMLAttributes<HTMLDivElement> {
6
7
  children: React.ReactNode;
7
8
  }
8
9
 
9
- export type LinkPanelTitleType = OverridableComponent<
10
+ export const LinkPanelTitle: OverridableComponent<
10
11
  LinkPanelTitleProps,
11
12
  HTMLDivElement
12
- >;
13
-
14
- export const LinkPanelTitle: LinkPanelTitleType = forwardRef(
15
- ({ className, as: Component = "div", ...rest }, ref) => (
16
- <Component
17
- {...rest}
18
- ref={ref}
19
- className={cl(
20
- "navds-link-panel__title",
21
- "navds-heading",
22
- "navds-heading--medium",
23
- className
24
- )}
25
- />
26
- )
27
- );
13
+ > = forwardRef(({ className, as: Component = "div", ...rest }, ref) => (
14
+ <Component
15
+ {...rest}
16
+ ref={ref}
17
+ className={cl(
18
+ "navds-link-panel__title",
19
+ "navds-heading",
20
+ "navds-heading--medium",
21
+ className
22
+ )}
23
+ />
24
+ ));
package/src/list/List.tsx CHANGED
@@ -2,7 +2,7 @@ import cl from "clsx";
2
2
  import React, { createContext, forwardRef, useContext } from "react";
3
3
  import { BodyShort, Heading } from "../typography";
4
4
  import { useId } from "../util/useId";
5
- import { ListItem, ListItemType } from "./ListItem";
5
+ import { ListItem, ListItemProps } from "./ListItem";
6
6
 
7
7
  export interface ListProps extends React.HTMLAttributes<HTMLDivElement> {
8
8
  children: React.ReactNode;
@@ -28,7 +28,12 @@ export interface ListProps extends React.HTMLAttributes<HTMLDivElement> {
28
28
 
29
29
  export interface ListComponent
30
30
  extends React.ForwardRefExoticComponent<ListProps> {
31
- Item: ListItemType;
31
+ /**
32
+ * @see 🏷️ {@link ListItemProps}
33
+ */
34
+ Item: React.ForwardRefExoticComponent<
35
+ ListItemProps & React.RefAttributes<HTMLLIElement>
36
+ >;
32
37
  }
33
38
 
34
39
  interface ListContextProps {
@@ -18,12 +18,7 @@ export interface ListItemProps extends React.HTMLAttributes<HTMLLIElement> {
18
18
  icon?: React.ReactNode;
19
19
  }
20
20
 
21
- export interface ListItemType
22
- extends React.ForwardRefExoticComponent<
23
- ListItemProps & React.RefAttributes<HTMLLIElement>
24
- > {}
25
-
26
- export const ListItem: ListItemType = forwardRef(
21
+ export const ListItem = forwardRef<HTMLLIElement, ListItemProps>(
27
22
  ({ className, children, title, icon, ...rest }, ref) => {
28
23
  const { listType, isNested } = useContext(ListContext);
29
24
 
@@ -38,6 +38,17 @@ export type LoaderType = React.ForwardRefExoticComponent<
38
38
  LoaderProps & React.RefAttributes<SVGSVGElement>
39
39
  >;
40
40
 
41
+ /**
42
+ * A component that displays a loading spinner.
43
+ *
44
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/loader)
45
+ * @see 🏷️ {@link LoaderProps}
46
+ *
47
+ * @example
48
+ * ```jsx
49
+ * <Loader size="3xlarge" title="venter..." />
50
+ * ```
51
+ */
41
52
  export const Loader: LoaderType = forwardRef<SVGSVGElement, LoaderProps>(
42
53
  (
43
54
  {
@@ -71,6 +71,33 @@ type ModalLifecycle = {
71
71
  setAppElement: (element: any) => void;
72
72
  };
73
73
 
74
+ /**
75
+ * A component that displays a modal dialog.
76
+ *
77
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/modal)
78
+ * @see 🏷️ {@link ModalProps}
79
+ *
80
+ * @example
81
+ * ```jsx
82
+ * const [open, setOpen] = useState(false);
83
+ *
84
+ * <Modal
85
+ * open={open}
86
+ * aria-label="Modal demo"
87
+ * onClose={() => setOpen((x) => !x)}
88
+ * aria-labelledby="modal-heading"
89
+ * >
90
+ * <Modal.Content>
91
+ * <Heading spacing level="1" size="large" id="modal-heading">
92
+ * Viktig info
93
+ * </Heading>
94
+ * <BodyLong spacing>
95
+ * Hallo!
96
+ * </BodyLong>
97
+ * </Modal.Content>
98
+ * </Modal>
99
+ * ```
100
+ */
74
101
  export const Modal = forwardRef<ReactModal, ModalProps>(
75
102
  (
76
103
  {
@@ -89,6 +89,23 @@ export const getSteps = ({
89
89
  ];
90
90
  };
91
91
 
92
+ /**
93
+ * A component that displays pagination controls.
94
+ *
95
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/pagination)
96
+ * @see 🏷️ {@link PaginationProps}
97
+ *
98
+ * @example
99
+ * ```jsx
100
+ * <Pagination
101
+ * page={pageState}
102
+ * onPageChange={(x) => setPageState(x)}
103
+ * count={9}
104
+ * boundaryCount={1}
105
+ * siblingCount={1}
106
+ * />
107
+ * ```
108
+ */
92
109
  export const Pagination = forwardRef<HTMLElement, PaginationProps>(
93
110
  (
94
111
  {
@@ -16,6 +16,25 @@ export interface PanelProps extends React.HTMLAttributes<HTMLElement> {
16
16
 
17
17
  export type PanelType = OverridableComponent<PanelProps, HTMLElement>;
18
18
 
19
+ /**
20
+ * A component that displays a bordered panel with heading and body.
21
+ *
22
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/panel)
23
+ * @see 🏷️ {@link PanelProps}
24
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
25
+ *
26
+ * @example
27
+ * ```jsx
28
+ * <Panel border>
29
+ * <Heading spacing level="2" size="large">
30
+ * Søk om økonomisk sosialhjelp
31
+ * </Heading>
32
+ * <BodyLong>
33
+ * Du kan søke om det du trenger økonomisk støtte til.
34
+ * </BodyLong>
35
+ * </Panel>
36
+ * ```
37
+ */
19
38
  export const Panel: PanelType = forwardRef(
20
39
  (
21
40
  { children, className, border = false, as: Component = "div", ...rest },
@@ -81,6 +81,26 @@ interface PopoverComponent
81
81
  Content: PopoverContentType;
82
82
  }
83
83
 
84
+ /**
85
+ * A component that displays a popover.
86
+ *
87
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/popover)
88
+ * @see 🏷️ {@link PopoverProps}
89
+ *
90
+ * @example
91
+ * ```jsx
92
+ * <Button ref={buttonRef} onClick={() => setOpenState(true)}>
93
+ * Åpne popover
94
+ * </Button>
95
+ * <Popover
96
+ * open={openState}
97
+ * onClose={() => setOpenState(false)}
98
+ * anchorEl={buttonRef.current}
99
+ * >
100
+ * <Popover.Content>Innhold her!</Popover.Content>
101
+ * </Popover>
102
+ * ```
103
+ */
84
104
  export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
85
105
  (
86
106
  {
@@ -23,6 +23,19 @@ export interface ProviderProps {
23
23
 
24
24
  export const useProvider = () => useContext(ProviderContext);
25
25
 
26
+ /**
27
+ * Provides added context to the component tree.
28
+ *
29
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/provider)
30
+ * @see 🏷️ {@link ProviderProps}
31
+ *
32
+ * @example
33
+ * ```jsx
34
+ * <Provider rootElement={rootElement}>
35
+ * {app}
36
+ * </Provider>
37
+ * ```
38
+ */
26
39
  export const Provider = ({ children, ...rest }: ProviderProps) => {
27
40
  return (
28
41
  <ProviderContext.Provider value={rest}>{children}</ProviderContext.Provider>
@@ -30,6 +30,23 @@ export interface ReadMoreProps
30
30
  size?: "medium" | "small";
31
31
  }
32
32
 
33
+ /**
34
+ * ReadMore
35
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/read-more)
36
+ * @see 🏷️ {@link ReadMoreProps}
37
+ *
38
+ * @example
39
+ * // Default
40
+ * <ReadMore header="Dette regnes som helsemessige begrensninger">
41
+ * Med helsemessige begrensninger mener vi funksjonshemming, sykdom...
42
+ * </ReadMore>
43
+ *
44
+ * @example
45
+ * // Litt mindre versjon
46
+ * <ReadMore size="small" header="Dette regnes som helsemessige begrensninger">
47
+ * Med helsemessige begrensninger mener vi funksjonshemming, sykdom...
48
+ * </ReadMore>
49
+ */
33
50
  export const ReadMore = forwardRef<HTMLButtonElement, ReadMoreProps>(
34
51
  (
35
52
  {