@navikt/ds-react 4.0.0 → 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 (367) hide show
  1. package/_docs.json +171 -5
  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/useDatepicker.js +13 -0
  12. package/cjs/date/hooks/useMonthPicker.js +13 -0
  13. package/cjs/date/hooks/useRangeDatepicker.js +12 -0
  14. package/cjs/date/monthpicker/MonthPicker.js +22 -0
  15. package/cjs/dropdown/Dropdown.js +31 -0
  16. package/cjs/dropdown/Menu/GroupedList/index.js +1 -1
  17. package/cjs/dropdown/Menu/List/index.js +1 -1
  18. package/cjs/dropdown/Menu/index.js +1 -1
  19. package/cjs/expansion-card/ExpansionCard.js +18 -0
  20. package/cjs/form/ConfirmationPanel.js +18 -0
  21. package/cjs/form/Select.js +16 -0
  22. package/cjs/form/Switch.js +11 -0
  23. package/cjs/form/TextField.js +11 -0
  24. package/cjs/form/Textarea.js +11 -0
  25. package/cjs/form/checkbox/CheckboxGroup.js +15 -0
  26. package/cjs/form/error-summary/ErrorSummary.js +18 -0
  27. package/cjs/form/radio/RadioGroup.js +2 -2
  28. package/cjs/form/search/Search.js +13 -0
  29. package/cjs/guide-panel/GuidePanel.js +15 -0
  30. package/cjs/help-text/HelpText.js +13 -0
  31. package/cjs/index.js +1 -0
  32. package/cjs/internal-header/InternalHeader.js +30 -2
  33. package/cjs/link/Link.js +13 -0
  34. package/cjs/link-panel/LinkPanel.js +17 -0
  35. package/cjs/loader/Loader.js +11 -0
  36. package/cjs/modal/Modal.js +27 -0
  37. package/cjs/pagination/Pagination.js +17 -0
  38. package/cjs/panel/Panel.js +19 -0
  39. package/cjs/popover/Popover.js +20 -0
  40. package/cjs/provider/Provider.js +13 -0
  41. package/cjs/read-more/ReadMore.js +2 -2
  42. package/cjs/skeleton/Skeleton.js +51 -0
  43. package/cjs/skeleton/index.js +8 -0
  44. package/cjs/skeleton/package.json +6 -0
  45. package/cjs/stepper/Step.js +3 -4
  46. package/cjs/stepper/Stepper.js +24 -0
  47. package/cjs/table/Table.js +32 -0
  48. package/cjs/tabs/Tabs.js +27 -1
  49. package/cjs/tag/Tag.js +11 -0
  50. package/cjs/timeline/Timeline.js +18 -0
  51. package/cjs/toggle-group/ToggleGroup.js +17 -2
  52. package/cjs/tooltip/Tooltip.js +13 -0
  53. package/cjs/typography/BodyLong.js +14 -0
  54. package/cjs/typography/BodyShort.js +14 -0
  55. package/cjs/typography/Detail.js +14 -0
  56. package/cjs/typography/ErrorMessage.js +14 -0
  57. package/cjs/typography/Heading.js +14 -0
  58. package/cjs/typography/Ingress.js +14 -0
  59. package/cjs/typography/Label.js +14 -0
  60. package/esm/accordion/Accordion.d.ts +40 -6
  61. package/esm/accordion/Accordion.js +22 -2
  62. package/esm/accordion/Accordion.js.map +1 -1
  63. package/esm/accordion/AccordionContent.d.ts +1 -2
  64. package/esm/accordion/AccordionContent.js.map +1 -1
  65. package/esm/accordion/AccordionHeader.d.ts +1 -2
  66. package/esm/accordion/AccordionHeader.js.map +1 -1
  67. package/esm/accordion/AccordionItem.d.ts +1 -2
  68. package/esm/accordion/AccordionItem.js.map +1 -1
  69. package/esm/alert/Alert.d.ts +9 -0
  70. package/esm/alert/Alert.js +9 -0
  71. package/esm/alert/Alert.js.map +1 -1
  72. package/esm/button/Button.d.ts +10 -0
  73. package/esm/button/Button.js +10 -0
  74. package/esm/button/Button.js.map +1 -1
  75. package/esm/chat/Bubble.d.ts +1 -2
  76. package/esm/chat/Bubble.js.map +1 -1
  77. package/esm/chat/Chat.d.ts +21 -2
  78. package/esm/chat/Chat.js +16 -0
  79. package/esm/chat/Chat.js.map +1 -1
  80. package/esm/chips/Chips.d.ts +42 -4
  81. package/esm/chips/Chips.js +27 -0
  82. package/esm/chips/Chips.js.map +1 -1
  83. package/esm/chips/Removable.d.ts +0 -2
  84. package/esm/chips/Removable.js.map +1 -1
  85. package/esm/chips/Toggle.d.ts +11 -3
  86. package/esm/chips/Toggle.js +4 -6
  87. package/esm/chips/Toggle.js.map +1 -1
  88. package/esm/copybutton/CopyButton.d.ts +11 -0
  89. package/esm/copybutton/CopyButton.js +11 -0
  90. package/esm/copybutton/CopyButton.js.map +1 -1
  91. package/esm/date/DateInput.d.ts +2 -3
  92. package/esm/date/DateInput.js +1 -1
  93. package/esm/date/DateInput.js.map +1 -1
  94. package/esm/date/datepicker/DatePicker.d.ts +38 -2
  95. package/esm/date/datepicker/DatePicker.js +22 -0
  96. package/esm/date/datepicker/DatePicker.js.map +1 -1
  97. package/esm/date/hooks/useDatepicker.d.ts +13 -0
  98. package/esm/date/hooks/useDatepicker.js +13 -0
  99. package/esm/date/hooks/useDatepicker.js.map +1 -1
  100. package/esm/date/hooks/useMonthPicker.d.ts +13 -0
  101. package/esm/date/hooks/useMonthPicker.js +13 -0
  102. package/esm/date/hooks/useMonthPicker.js.map +1 -1
  103. package/esm/date/hooks/useRangeDatepicker.d.ts +12 -0
  104. package/esm/date/hooks/useRangeDatepicker.js +12 -0
  105. package/esm/date/hooks/useRangeDatepicker.js.map +1 -1
  106. package/esm/date/monthpicker/MonthPicker.d.ts +34 -4
  107. package/esm/date/monthpicker/MonthPicker.js +22 -0
  108. package/esm/date/monthpicker/MonthPicker.js.map +1 -1
  109. package/esm/dropdown/Dropdown.d.ts +39 -2
  110. package/esm/dropdown/Dropdown.js +31 -0
  111. package/esm/dropdown/Dropdown.js.map +1 -1
  112. package/esm/dropdown/Menu/Divider.d.ts +1 -2
  113. package/esm/dropdown/Menu/Divider.js.map +1 -1
  114. package/esm/dropdown/Menu/GroupedList/Heading.d.ts +1 -2
  115. package/esm/dropdown/Menu/GroupedList/Heading.js.map +1 -1
  116. package/esm/dropdown/Menu/GroupedList/Item.d.ts +1 -2
  117. package/esm/dropdown/Menu/GroupedList/Item.js.map +1 -1
  118. package/esm/dropdown/Menu/GroupedList/index.d.ts +12 -4
  119. package/esm/dropdown/Menu/GroupedList/index.js +1 -1
  120. package/esm/dropdown/Menu/GroupedList/index.js.map +1 -1
  121. package/esm/dropdown/Menu/List/Item.d.ts +1 -2
  122. package/esm/dropdown/Menu/List/Item.js.map +1 -1
  123. package/esm/dropdown/Menu/List/index.d.ts +7 -2
  124. package/esm/dropdown/Menu/List/index.js +1 -1
  125. package/esm/dropdown/Menu/List/index.js.map +1 -1
  126. package/esm/dropdown/Menu/index.d.ts +10 -2
  127. package/esm/dropdown/Menu/index.js +1 -1
  128. package/esm/dropdown/Menu/index.js.map +1 -1
  129. package/esm/dropdown/Toggle.d.ts +1 -2
  130. package/esm/dropdown/Toggle.js.map +1 -1
  131. package/esm/expansion-card/ExpansionCard.d.ts +40 -8
  132. package/esm/expansion-card/ExpansionCard.js +18 -0
  133. package/esm/expansion-card/ExpansionCard.js.map +1 -1
  134. package/esm/expansion-card/ExpansionCardContent.d.ts +1 -2
  135. package/esm/expansion-card/ExpansionCardContent.js.map +1 -1
  136. package/esm/expansion-card/ExpansionCardDescription.d.ts +2 -4
  137. package/esm/expansion-card/ExpansionCardDescription.js.map +1 -1
  138. package/esm/expansion-card/ExpansionCardHeader.d.ts +1 -2
  139. package/esm/expansion-card/ExpansionCardHeader.js.map +1 -1
  140. package/esm/expansion-card/ExpansionCardTitle.d.ts +2 -4
  141. package/esm/expansion-card/ExpansionCardTitle.js.map +1 -1
  142. package/esm/form/ConfirmationPanel.d.ts +18 -0
  143. package/esm/form/ConfirmationPanel.js +18 -0
  144. package/esm/form/ConfirmationPanel.js.map +1 -1
  145. package/esm/form/Select.d.ts +16 -0
  146. package/esm/form/Select.js +16 -0
  147. package/esm/form/Select.js.map +1 -1
  148. package/esm/form/Switch.d.ts +11 -0
  149. package/esm/form/Switch.js +11 -0
  150. package/esm/form/Switch.js.map +1 -1
  151. package/esm/form/TextField.d.ts +11 -0
  152. package/esm/form/TextField.js +11 -0
  153. package/esm/form/TextField.js.map +1 -1
  154. package/esm/form/Textarea.d.ts +11 -0
  155. package/esm/form/Textarea.js +11 -0
  156. package/esm/form/Textarea.js.map +1 -1
  157. package/esm/form/checkbox/CheckboxGroup.d.ts +15 -0
  158. package/esm/form/checkbox/CheckboxGroup.js +15 -0
  159. package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
  160. package/esm/form/error-summary/ErrorSummary.d.ts +18 -0
  161. package/esm/form/error-summary/ErrorSummary.js +18 -0
  162. package/esm/form/error-summary/ErrorSummary.js.map +1 -1
  163. package/esm/form/radio/RadioGroup.d.ts +2 -2
  164. package/esm/form/radio/RadioGroup.js +2 -2
  165. package/esm/form/search/Search.d.ts +13 -0
  166. package/esm/form/search/Search.js +13 -0
  167. package/esm/form/search/Search.js.map +1 -1
  168. package/esm/guide-panel/GuidePanel.d.ts +15 -0
  169. package/esm/guide-panel/GuidePanel.js +15 -0
  170. package/esm/guide-panel/GuidePanel.js.map +1 -1
  171. package/esm/help-text/HelpText.d.ts +13 -0
  172. package/esm/help-text/HelpText.js +13 -0
  173. package/esm/help-text/HelpText.js.map +1 -1
  174. package/esm/index.d.ts +1 -0
  175. package/esm/index.js +1 -0
  176. package/esm/index.js.map +1 -1
  177. package/esm/internal-header/InternalHeader.d.ts +52 -8
  178. package/esm/internal-header/InternalHeader.js +30 -2
  179. package/esm/internal-header/InternalHeader.js.map +1 -1
  180. package/esm/internal-header/InternalHeaderButton.d.ts +1 -2
  181. package/esm/internal-header/InternalHeaderButton.js.map +1 -1
  182. package/esm/internal-header/InternalHeaderTitle.d.ts +1 -2
  183. package/esm/internal-header/InternalHeaderTitle.js.map +1 -1
  184. package/esm/internal-header/InternalHeaderUser.d.ts +0 -1
  185. package/esm/internal-header/InternalHeaderUser.js.map +1 -1
  186. package/esm/internal-header/InternalHeaderUserButton.d.ts +1 -2
  187. package/esm/internal-header/InternalHeaderUserButton.js.map +1 -1
  188. package/esm/link/Link.d.ts +13 -0
  189. package/esm/link/Link.js +13 -0
  190. package/esm/link/Link.js.map +1 -1
  191. package/esm/link-panel/LinkPanel.d.ts +28 -4
  192. package/esm/link-panel/LinkPanel.js +17 -0
  193. package/esm/link-panel/LinkPanel.js.map +1 -1
  194. package/esm/link-panel/LinkPanelDescription.d.ts +2 -4
  195. package/esm/link-panel/LinkPanelDescription.js.map +1 -1
  196. package/esm/link-panel/LinkPanelTitle.d.ts +2 -4
  197. package/esm/link-panel/LinkPanelTitle.js.map +1 -1
  198. package/esm/list/List.d.ts +5 -2
  199. package/esm/list/List.js.map +1 -1
  200. package/esm/list/ListItem.d.ts +1 -3
  201. package/esm/list/ListItem.js.map +1 -1
  202. package/esm/loader/Loader.d.ts +11 -0
  203. package/esm/loader/Loader.js +11 -0
  204. package/esm/loader/Loader.js.map +1 -1
  205. package/esm/modal/Modal.d.ts +27 -0
  206. package/esm/modal/Modal.js +27 -0
  207. package/esm/modal/Modal.js.map +1 -1
  208. package/esm/pagination/Pagination.d.ts +17 -0
  209. package/esm/pagination/Pagination.js +17 -0
  210. package/esm/pagination/Pagination.js.map +1 -1
  211. package/esm/panel/Panel.d.ts +19 -0
  212. package/esm/panel/Panel.js +19 -0
  213. package/esm/panel/Panel.js.map +1 -1
  214. package/esm/popover/Popover.d.ts +20 -0
  215. package/esm/popover/Popover.js +20 -0
  216. package/esm/popover/Popover.js.map +1 -1
  217. package/esm/provider/Provider.d.ts +13 -0
  218. package/esm/provider/Provider.js +13 -0
  219. package/esm/provider/Provider.js.map +1 -1
  220. package/esm/read-more/ReadMore.d.ts +2 -2
  221. package/esm/read-more/ReadMore.js +2 -2
  222. package/esm/skeleton/Skeleton.d.ts +18 -0
  223. package/esm/skeleton/Skeleton.js +23 -0
  224. package/esm/skeleton/Skeleton.js.map +1 -0
  225. package/esm/skeleton/index.d.ts +2 -0
  226. package/esm/skeleton/index.js +2 -0
  227. package/esm/skeleton/index.js.map +1 -0
  228. package/esm/stepper/Step.d.ts +1 -4
  229. package/esm/stepper/Step.js +1 -2
  230. package/esm/stepper/Step.js.map +1 -1
  231. package/esm/stepper/Stepper.d.ts +31 -2
  232. package/esm/stepper/Stepper.js +24 -0
  233. package/esm/stepper/Stepper.js.map +1 -1
  234. package/esm/table/Table.d.ts +32 -0
  235. package/esm/table/Table.js +32 -0
  236. package/esm/table/Table.js.map +1 -1
  237. package/esm/tabs/Tab.d.ts +1 -2
  238. package/esm/tabs/Tab.js.map +1 -1
  239. package/esm/tabs/TabList.d.ts +1 -2
  240. package/esm/tabs/TabList.js.map +1 -1
  241. package/esm/tabs/TabPanel.d.ts +1 -2
  242. package/esm/tabs/TabPanel.js.map +1 -1
  243. package/esm/tabs/Tabs.d.ts +43 -6
  244. package/esm/tabs/Tabs.js +27 -1
  245. package/esm/tabs/Tabs.js.map +1 -1
  246. package/esm/tag/Tag.d.ts +11 -0
  247. package/esm/tag/Tag.js +11 -0
  248. package/esm/tag/Tag.js.map +1 -1
  249. package/esm/timeline/Timeline.d.ts +22 -4
  250. package/esm/timeline/Timeline.js +18 -0
  251. package/esm/timeline/Timeline.js.map +1 -1
  252. package/esm/toggle-group/ToggleGroup.d.ts +20 -2
  253. package/esm/toggle-group/ToggleGroup.js +17 -2
  254. package/esm/toggle-group/ToggleGroup.js.map +1 -1
  255. package/esm/toggle-group/ToggleItem.d.ts +1 -2
  256. package/esm/toggle-group/ToggleItem.js.map +1 -1
  257. package/esm/tooltip/Tooltip.d.ts +13 -0
  258. package/esm/tooltip/Tooltip.js +13 -0
  259. package/esm/tooltip/Tooltip.js.map +1 -1
  260. package/esm/typography/BodyLong.d.ts +14 -0
  261. package/esm/typography/BodyLong.js +14 -0
  262. package/esm/typography/BodyLong.js.map +1 -1
  263. package/esm/typography/BodyShort.d.ts +14 -0
  264. package/esm/typography/BodyShort.js +14 -0
  265. package/esm/typography/BodyShort.js.map +1 -1
  266. package/esm/typography/Detail.d.ts +14 -0
  267. package/esm/typography/Detail.js +14 -0
  268. package/esm/typography/Detail.js.map +1 -1
  269. package/esm/typography/ErrorMessage.d.ts +14 -0
  270. package/esm/typography/ErrorMessage.js +14 -0
  271. package/esm/typography/ErrorMessage.js.map +1 -1
  272. package/esm/typography/Heading.d.ts +14 -0
  273. package/esm/typography/Heading.js +14 -0
  274. package/esm/typography/Heading.js.map +1 -1
  275. package/esm/typography/Ingress.d.ts +14 -0
  276. package/esm/typography/Ingress.js +14 -0
  277. package/esm/typography/Ingress.js.map +1 -1
  278. package/esm/typography/Label.d.ts +14 -0
  279. package/esm/typography/Label.js +14 -0
  280. package/esm/typography/Label.js.map +1 -1
  281. package/package.json +2 -2
  282. package/src/accordion/Accordion.tsx +49 -7
  283. package/src/accordion/AccordionContent.tsx +1 -5
  284. package/src/accordion/AccordionHeader.tsx +1 -5
  285. package/src/accordion/AccordionItem.tsx +1 -5
  286. package/src/accordion/accordion.stories.tsx +4 -2
  287. package/src/alert/Alert.tsx +9 -0
  288. package/src/button/Button.tsx +10 -0
  289. package/src/chat/Bubble.tsx +1 -5
  290. package/src/chat/Chat.tsx +23 -2
  291. package/src/chips/Chips.tsx +42 -4
  292. package/src/chips/Removable.tsx +1 -4
  293. package/src/chips/Toggle.tsx +47 -11
  294. package/src/chips/chips.stories.tsx +73 -20
  295. package/src/copybutton/CopyButton.tsx +11 -0
  296. package/src/date/DateInput.tsx +105 -115
  297. package/src/date/datepicker/DatePicker.tsx +40 -2
  298. package/src/date/hooks/useDatepicker.tsx +13 -0
  299. package/src/date/hooks/useMonthPicker.tsx +13 -0
  300. package/src/date/hooks/useRangeDatepicker.tsx +13 -1
  301. package/src/date/monthpicker/MonthPicker.tsx +36 -4
  302. package/src/dropdown/Dropdown.tsx +41 -2
  303. package/src/dropdown/Menu/Divider.tsx +10 -13
  304. package/src/dropdown/Menu/GroupedList/Heading.tsx +15 -18
  305. package/src/dropdown/Menu/GroupedList/Item.tsx +23 -27
  306. package/src/dropdown/Menu/GroupedList/index.tsx +15 -5
  307. package/src/dropdown/Menu/List/Item.tsx +3 -9
  308. package/src/dropdown/Menu/List/index.tsx +8 -3
  309. package/src/dropdown/Menu/index.tsx +14 -3
  310. package/src/dropdown/Toggle.tsx +1 -5
  311. package/src/expansion-card/ExpansionCard.tsx +46 -8
  312. package/src/expansion-card/ExpansionCardContent.tsx +25 -28
  313. package/src/expansion-card/ExpansionCardDescription.tsx +22 -24
  314. package/src/expansion-card/ExpansionCardHeader.tsx +31 -34
  315. package/src/expansion-card/ExpansionCardTitle.tsx +3 -5
  316. package/src/form/ConfirmationPanel.tsx +18 -0
  317. package/src/form/Select.tsx +16 -0
  318. package/src/form/Switch.tsx +11 -0
  319. package/src/form/TextField.tsx +11 -0
  320. package/src/form/Textarea.tsx +11 -0
  321. package/src/form/checkbox/CheckboxGroup.tsx +15 -0
  322. package/src/form/error-summary/ErrorSummary.tsx +18 -0
  323. package/src/form/radio/RadioGroup.tsx +2 -2
  324. package/src/form/search/Search.tsx +13 -0
  325. package/src/guide-panel/GuidePanel.tsx +15 -0
  326. package/src/help-text/HelpText.tsx +13 -0
  327. package/src/index.ts +1 -0
  328. package/src/internal-header/InternalHeader.tsx +60 -11
  329. package/src/internal-header/InternalHeaderButton.tsx +8 -13
  330. package/src/internal-header/InternalHeaderTitle.tsx +11 -19
  331. package/src/internal-header/InternalHeaderUser.tsx +0 -4
  332. package/src/internal-header/InternalHeaderUserButton.tsx +17 -20
  333. package/src/link/Link.tsx +13 -0
  334. package/src/link-panel/LinkPanel.tsx +30 -4
  335. package/src/link-panel/LinkPanelDescription.tsx +12 -15
  336. package/src/link-panel/LinkPanelTitle.tsx +15 -18
  337. package/src/list/List.tsx +7 -2
  338. package/src/list/ListItem.tsx +1 -6
  339. package/src/loader/Loader.tsx +11 -0
  340. package/src/modal/Modal.tsx +27 -0
  341. package/src/pagination/Pagination.tsx +17 -0
  342. package/src/panel/Panel.tsx +19 -0
  343. package/src/popover/Popover.tsx +20 -0
  344. package/src/provider/Provider.tsx +13 -0
  345. package/src/read-more/ReadMore.tsx +2 -2
  346. package/src/skeleton/Skeleton.tsx +48 -0
  347. package/src/skeleton/index.ts +2 -0
  348. package/src/skeleton/skeleton.stories.tsx +118 -0
  349. package/src/stepper/Step.tsx +57 -60
  350. package/src/stepper/Stepper.tsx +31 -2
  351. package/src/table/Table.tsx +32 -0
  352. package/src/tabs/Tab.tsx +38 -39
  353. package/src/tabs/TabList.tsx +1 -5
  354. package/src/tabs/TabPanel.tsx +1 -5
  355. package/src/tabs/Tabs.tsx +48 -7
  356. package/src/tag/Tag.tsx +11 -0
  357. package/src/timeline/Timeline.tsx +22 -4
  358. package/src/toggle-group/ToggleGroup.tsx +23 -3
  359. package/src/toggle-group/ToggleItem.tsx +1 -5
  360. package/src/tooltip/Tooltip.tsx +13 -0
  361. package/src/typography/BodyLong.tsx +14 -0
  362. package/src/typography/BodyShort.tsx +14 -0
  363. package/src/typography/Detail.tsx +14 -0
  364. package/src/typography/ErrorMessage.tsx +14 -0
  365. package/src/typography/Heading.tsx +14 -0
  366. package/src/typography/Ingress.tsx +14 -0
  367. package/src/typography/Label.tsx +14 -0
@@ -9,23 +9,20 @@ export interface GroupedHeadingProps
9
9
  children: React.ReactNode;
10
10
  }
11
11
 
12
- export type GroupedHeadingType = React.ForwardRefExoticComponent<
13
- GroupedHeadingProps & React.RefAttributes<HTMLElement>
14
- >;
15
-
16
- export const GroupedHeading: GroupedHeadingType = forwardRef(
17
- ({ className, ...rest }, ref) => (
18
- <dt
19
- {...rest}
20
- ref={ref}
21
- className={cl(
22
- "navds-dropdown__list-heading",
23
- "navds-heading",
24
- "navds-heading--xsmall",
25
- className
26
- )}
27
- />
28
- )
29
- );
12
+ export const GroupedHeading = forwardRef<
13
+ HTMLDetailsElement,
14
+ GroupedHeadingProps
15
+ >(({ className, ...rest }, ref) => (
16
+ <dt
17
+ {...rest}
18
+ ref={ref}
19
+ className={cl(
20
+ "navds-dropdown__list-heading",
21
+ "navds-heading",
22
+ "navds-heading--xsmall",
23
+ className
24
+ )}
25
+ />
26
+ ));
30
27
 
31
28
  export default GroupedHeading;
@@ -11,35 +11,31 @@ export interface GroupedItemProps
11
11
  children: React.ReactNode;
12
12
  }
13
13
 
14
- export type GroupedItemType = OverridableComponent<
14
+ export const GroupedItem: OverridableComponent<
15
15
  GroupedItemProps,
16
16
  HTMLButtonElement
17
- >;
17
+ > = forwardRef(({ as: Component = "button", className, ...rest }, ref) => {
18
+ const context = useContext(DropdownContext);
18
19
 
19
- export const GroupedItem: GroupedItemType = forwardRef(
20
- ({ as: Component = "button", className, ...rest }, ref) => {
21
- const context = useContext(DropdownContext);
22
-
23
- return (
24
- <dd className="navds-dropdown__list-item">
25
- <Component
26
- {...rest}
27
- value={rest.children}
28
- onClick={(event: React.MouseEvent<HTMLElement, MouseEvent>) => {
29
- context?.onSelect?.(event);
30
- rest?.onClick?.(event);
31
- }}
32
- ref={ref}
33
- className={cl(
34
- "navds-dropdown__item",
35
- "navds-body-short",
36
- "navds-body-short--small",
37
- className
38
- )}
39
- />
40
- </dd>
41
- );
42
- }
43
- );
20
+ return (
21
+ <dd className="navds-dropdown__list-item">
22
+ <Component
23
+ {...rest}
24
+ value={rest.children}
25
+ onClick={(event: React.MouseEvent<HTMLElement, MouseEvent>) => {
26
+ context?.onSelect?.(event);
27
+ rest?.onClick?.(event);
28
+ }}
29
+ ref={ref}
30
+ className={cl(
31
+ "navds-dropdown__item",
32
+ "navds-body-short",
33
+ "navds-body-short--small",
34
+ className
35
+ )}
36
+ />
37
+ </dd>
38
+ );
39
+ });
44
40
 
45
41
  export default GroupedItem;
@@ -1,7 +1,8 @@
1
- import React, { forwardRef } from "react";
2
1
  import cl from "clsx";
3
- import GroupedHeading, { GroupedHeadingType } from "./Heading";
4
- import GroupedItem, { GroupedItemType } from "./Item";
2
+ import React, { forwardRef } from "react";
3
+ import { OverridableComponent } from "../../../util/OverridableComponent";
4
+ import GroupedHeading, { GroupedHeadingProps } from "./Heading";
5
+ import GroupedItem, { GroupedItemProps } from "./Item";
5
6
 
6
7
  export interface GroupedListProps
7
8
  extends React.HTMLAttributes<HTMLDListElement> {
@@ -15,8 +16,17 @@ export interface GroupedListType
15
16
  extends React.ForwardRefExoticComponent<
16
17
  GroupedListProps & React.RefAttributes<HTMLDListElement>
17
18
  > {
18
- Heading: GroupedHeadingType;
19
- Item: GroupedItemType;
19
+ /**
20
+ * @see 🏷️ {@link GroupedHeadingProps}
21
+ */
22
+ Heading: React.ForwardRefExoticComponent<
23
+ GroupedHeadingProps & React.RefAttributes<HTMLDetailsElement>
24
+ >;
25
+ /**
26
+ * @see 🏷️ {@link GroupedItemProps}
27
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
28
+ */
29
+ Item: OverridableComponent<GroupedItemProps, HTMLButtonElement>;
20
30
  }
21
31
 
22
32
  export const DescriptionList = forwardRef(
@@ -10,13 +10,8 @@ export interface ListItemProps extends React.ButtonHTMLAttributes<HTMLElement> {
10
10
  children: React.ReactNode;
11
11
  }
12
12
 
13
- export type ListItemType = OverridableComponent<
14
- ListItemProps,
15
- HTMLButtonElement
16
- >;
17
-
18
- export const ListItem: ListItemType = forwardRef(
19
- ({ as: Component = "button", className, ...rest }, ref) => {
13
+ export const ListItem: OverridableComponent<ListItemProps, HTMLButtonElement> =
14
+ forwardRef(({ as: Component = "button", className, ...rest }, ref) => {
20
15
  const context = useContext(DropdownContext);
21
16
 
22
17
  return (
@@ -38,7 +33,6 @@ export const ListItem: ListItemType = forwardRef(
38
33
  />
39
34
  </li>
40
35
  );
41
- }
42
- );
36
+ });
43
37
 
44
38
  export default ListItem;
@@ -1,6 +1,7 @@
1
- import React, { forwardRef } from "react";
2
1
  import cl from "clsx";
3
- import ListItem, { ListItemType } from "./Item";
2
+ import React, { forwardRef } from "react";
3
+ import { OverridableComponent } from "../../../util/OverridableComponent";
4
+ import ListItem, { ListItemProps } from "./Item";
4
5
 
5
6
  export interface ListProps extends React.HTMLAttributes<HTMLUListElement> {
6
7
  /**
@@ -13,7 +14,11 @@ export interface ListType
13
14
  extends React.ForwardRefExoticComponent<
14
15
  ListProps & React.RefAttributes<HTMLUListElement>
15
16
  > {
16
- Item: ListItemType;
17
+ /**
18
+ * @see 🏷️ {@link ListItemProps}
19
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
20
+ */
21
+ Item: OverridableComponent<ListItemProps, HTMLButtonElement>;
17
22
  }
18
23
 
19
24
  export const List = forwardRef(({ className, children, ...rest }, ref) => (
@@ -1,8 +1,8 @@
1
- import { Popover } from "../../popover";
2
1
  import cl from "clsx";
3
2
  import React, { forwardRef, useContext } from "react";
3
+ import { Popover } from "../../popover";
4
4
  import { DropdownContext } from "../Dropdown";
5
- import Divider, { DividerType } from "./Divider";
5
+ import Divider from "./Divider";
6
6
  import GroupedList, { GroupedListType } from "./GroupedList";
7
7
  import List, { ListType } from "./List";
8
8
 
@@ -43,9 +43,20 @@ export interface MenuType<Props = MenuProps>
43
43
  extends React.ForwardRefExoticComponent<
44
44
  Props & React.RefAttributes<HTMLDivElement>
45
45
  > {
46
+ /**
47
+ * @see 🏷️ {@link ListType}
48
+ */
46
49
  List: ListType;
50
+ /**
51
+ * @see 🏷️ {@link GroupedListType}
52
+ */
47
53
  GroupedList: GroupedListType;
48
- Divider: DividerType;
54
+ /**
55
+ * @see 🏷️ {@link React.HTMLAttributes<HTMLHRElement>}
56
+ */
57
+ Divider: React.ForwardRefExoticComponent<
58
+ React.HTMLAttributes<HTMLHRElement> & React.RefAttributes<HTMLHRElement>
59
+ >;
49
60
  }
50
61
 
51
62
  export const Menu = forwardRef<HTMLDivElement, MenuProps>(
@@ -10,11 +10,7 @@ export interface ToggleProps
10
10
  children: React.ReactNode;
11
11
  }
12
12
 
13
- export type ToggleType = React.ForwardRefExoticComponent<
14
- ToggleProps & React.RefAttributes<HTMLButtonElement>
15
- >;
16
-
17
- export const Toggle: ToggleType = forwardRef(
13
+ export const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(
18
14
  ({ className, onClick, ...rest }, ref) => {
19
15
  const context = useContext(DropdownContext);
20
16
 
@@ -1,28 +1,48 @@
1
1
  import cl from "clsx";
2
2
  import React, { createContext, forwardRef, useRef, useState } from "react";
3
+ import { OverridableComponent } from "../util/OverridableComponent";
3
4
  import ExpansionCardContent, {
4
- ExpansionCardContentType,
5
+ ExpansionCardContentProps,
5
6
  } from "./ExpansionCardContent";
6
7
  import {
7
8
  ExpansionCardDescription,
8
- ExpansionCardDescriptionType,
9
+ ExpansionCardDescriptionProps,
9
10
  } from "./ExpansionCardDescription";
10
11
  import ExpansionCardHeader, {
11
- ExpansionCardHeaderType,
12
+ ExpansionCardHeaderProps,
12
13
  } from "./ExpansionCardHeader";
13
14
  import {
14
15
  ExpansionCardTitle,
15
- ExpansionCardTitleType,
16
+ ExpansionCardTitleProps,
16
17
  } from "./ExpansionCardTitle";
17
18
 
18
19
  interface ExpansionCardComponent
19
20
  extends React.ForwardRefExoticComponent<
20
21
  ExpansionCardProps & React.RefAttributes<HTMLDivElement>
21
22
  > {
22
- Header: ExpansionCardHeaderType;
23
- Title: ExpansionCardTitleType;
24
- Description: ExpansionCardDescriptionType;
25
- Content: ExpansionCardContentType;
23
+ /**
24
+ * @see 🏷️ {@link ExpansionCardHeaderProps}
25
+ */
26
+ Header: React.ForwardRefExoticComponent<
27
+ ExpansionCardHeaderProps & React.RefAttributes<HTMLDivElement>
28
+ >;
29
+ /**
30
+ * @see 🏷️ {@link ExpansionCardTitleProps}
31
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
32
+ */
33
+ Title: OverridableComponent<ExpansionCardTitleProps, HTMLHeadingElement>;
34
+ /**
35
+ * @see 🏷️ {@link ExpansionCardDescriptionProps}
36
+ */
37
+ Description: React.ForwardRefExoticComponent<
38
+ ExpansionCardDescriptionProps & React.RefAttributes<HTMLParagraphElement>
39
+ >;
40
+ /**
41
+ * @see 🏷️ {@link ExpansionCardContentProps}
42
+ */
43
+ Content: React.ForwardRefExoticComponent<
44
+ ExpansionCardContentProps & React.RefAttributes<HTMLDivElement>
45
+ >;
26
46
  }
27
47
 
28
48
  interface ExpansionCardCommonProps
@@ -77,6 +97,24 @@ export const ExpansionCardContext = createContext<ExpansionCardContextProps>({
77
97
  export type ExpansionCardProps = ExpansionCardCommonProps &
78
98
  ExpansionCardConditionalProps;
79
99
 
100
+ /**
101
+ * A component that displays an expandable card.
102
+ *
103
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/expansioncard)
104
+ * @see 🏷️ {@link ExpansionCardProps}
105
+ *
106
+ * @example
107
+ * ```jsx
108
+ * <ExpansionCard aria-label="default-demo">
109
+ * <ExpansionCard.Header>
110
+ * <ExpansionCard.Title>Utbetaling av sykepenger</ExpansionCard.Title>
111
+ * </ExpansionCard.Header>
112
+ * <ExpansionCard.Content>
113
+ * <Innhold />
114
+ * </ExpansionCard.Content>
115
+ * </ExpansionCard>
116
+ * ```
117
+ */
80
118
  export const ExpansionCard = forwardRef<HTMLDivElement, ExpansionCardProps>(
81
119
  (
82
120
  {
@@ -8,36 +8,33 @@ export interface ExpansionCardContentProps
8
8
  children: React.ReactNode;
9
9
  }
10
10
 
11
- export type ExpansionCardContentType = React.ForwardRefExoticComponent<
12
- ExpansionCardContentProps & React.RefAttributes<HTMLDivElement>
13
- >;
11
+ const ExpansionCardContent = forwardRef<
12
+ HTMLDivElement,
13
+ ExpansionCardContentProps
14
+ >(({ children, className, ...rest }, ref) => {
15
+ const panelContext = useContext(ExpansionCardContext);
14
16
 
15
- const ExpansionCardContent: ExpansionCardContentType = forwardRef(
16
- ({ children, className, ...rest }, ref) => {
17
- const panelContext = useContext(ExpansionCardContext);
18
-
19
- if (panelContext === null) {
20
- console.error(
21
- "<ExpansionCard.Content> has to be used within an <ExpansionCard>"
22
- );
23
- return null;
24
- }
25
-
26
- return (
27
- <BodyLong
28
- {...rest}
29
- ref={ref}
30
- as="div"
31
- className={cl("navds-expansioncard__content", className, {
32
- "navds-expansioncard__content--closed": !panelContext.open,
33
- })}
34
- aria-hidden={!panelContext.open}
35
- size={panelContext.size}
36
- >
37
- <div className="navds-expansioncard__content-inner">{children}</div>
38
- </BodyLong>
17
+ if (panelContext === null) {
18
+ console.error(
19
+ "<ExpansionCard.Content> has to be used within an <ExpansionCard>"
39
20
  );
21
+ return null;
40
22
  }
41
- );
23
+
24
+ return (
25
+ <BodyLong
26
+ {...rest}
27
+ ref={ref}
28
+ as="div"
29
+ className={cl("navds-expansioncard__content", className, {
30
+ "navds-expansioncard__content--closed": !panelContext.open,
31
+ })}
32
+ aria-hidden={!panelContext.open}
33
+ size={panelContext.size}
34
+ >
35
+ <div className="navds-expansioncard__content-inner">{children}</div>
36
+ </BodyLong>
37
+ );
38
+ });
42
39
 
43
40
  export default ExpansionCardContent;
@@ -3,33 +3,31 @@ import cl from "clsx";
3
3
  import { BodyLong } from "../typography/BodyLong";
4
4
  import { ExpansionCardContext } from "./ExpansionCard";
5
5
 
6
- interface ExpansionCardDescriptionProps
6
+ export interface ExpansionCardDescriptionProps
7
7
  extends React.HTMLAttributes<HTMLParagraphElement> {
8
8
  children: React.ReactNode;
9
9
  }
10
10
 
11
- export type ExpansionCardDescriptionType = React.ForwardRefExoticComponent<
12
- ExpansionCardDescriptionProps & React.RefAttributes<HTMLParagraphElement>
13
- >;
11
+ export const ExpansionCardDescription = forwardRef<
12
+ HTMLParagraphElement,
13
+ ExpansionCardDescriptionProps
14
+ >(({ className, ...rest }, ref) => {
15
+ const panelContext = useContext(ExpansionCardContext);
14
16
 
15
- export const ExpansionCardDescription: ExpansionCardDescriptionType =
16
- forwardRef(({ className, ...rest }, ref) => {
17
- const panelContext = useContext(ExpansionCardContext);
18
-
19
- if (panelContext === null) {
20
- console.error(
21
- "<ExpansionCard.Description> has to be used within an <ExpansionCard>"
22
- );
23
- return null;
24
- }
25
-
26
- return (
27
- <BodyLong
28
- {...rest}
29
- as="p"
30
- ref={ref}
31
- className={cl("navds-link-panel__description", className)}
32
- size={panelContext.size}
33
- />
17
+ if (panelContext === null) {
18
+ console.error(
19
+ "<ExpansionCard.Description> has to be used within an <ExpansionCard>"
34
20
  );
35
- });
21
+ return null;
22
+ }
23
+
24
+ return (
25
+ <BodyLong
26
+ {...rest}
27
+ as="p"
28
+ ref={ref}
29
+ className={cl("navds-link-panel__description", className)}
30
+ size={panelContext.size}
31
+ />
32
+ );
33
+ });
@@ -8,43 +8,40 @@ export interface ExpansionCardHeaderProps
8
8
  children: React.ReactNode;
9
9
  }
10
10
 
11
- export type ExpansionCardHeaderType = React.ForwardRefExoticComponent<
12
- ExpansionCardHeaderProps & React.RefAttributes<HTMLDivElement>
13
- >;
11
+ const ExpansionCardHeader = forwardRef<
12
+ HTMLDivElement,
13
+ ExpansionCardHeaderProps
14
+ >(({ children, className, ...rest }, ref) => {
15
+ const panelContext = useContext(ExpansionCardContext);
14
16
 
15
- const ExpansionCardHeader: ExpansionCardHeaderType = forwardRef(
16
- ({ children, className, ...rest }, ref) => {
17
- const panelContext = useContext(ExpansionCardContext);
17
+ if (panelContext === null) {
18
+ console.error(
19
+ "<ExpansionCard.Header> has to be used within an <ExpansionCard>"
20
+ );
21
+ return null;
22
+ }
18
23
 
19
- if (panelContext === null) {
20
- console.error(
21
- "<ExpansionCard.Header> has to be used within an <ExpansionCard>"
22
- );
23
- return null;
24
- }
24
+ return (
25
+ <div
26
+ ref={ref}
27
+ {...rest}
28
+ className={cl("navds-expansioncard__header", className)}
29
+ >
30
+ <div className="navds-expansioncard__header-content">{children}</div>
25
31
 
26
- return (
27
- <div
28
- ref={ref}
29
- {...rest}
30
- className={cl("navds-expansioncard__header", className)}
32
+ <button
33
+ className="navds-expansioncard__header-button"
34
+ onClick={() => panelContext.toggleOpen()}
35
+ type="button"
36
+ aria-expanded={panelContext.open}
31
37
  >
32
- <div className="navds-expansioncard__header-content">{children}</div>
33
-
34
- <button
35
- className="navds-expansioncard__header-button"
36
- onClick={() => panelContext.toggleOpen()}
37
- type="button"
38
- aria-expanded={panelContext.open}
39
- >
40
- <ChevronDownIcon
41
- className="navds-expansioncard__header-chevron"
42
- title="Vis mer"
43
- />
44
- </button>
45
- </div>
46
- );
47
- }
48
- );
38
+ <ChevronDownIcon
39
+ className="navds-expansioncard__header-chevron"
40
+ title="Vis mer"
41
+ />
42
+ </button>
43
+ </div>
44
+ );
45
+ });
49
46
 
50
47
  export default ExpansionCardHeader;
@@ -2,7 +2,7 @@ import React, { forwardRef } from "react";
2
2
  import cl from "clsx";
3
3
  import { OverridableComponent } from "../util/OverridableComponent";
4
4
 
5
- interface ExpansionCardTitleProps
5
+ export interface ExpansionCardTitleProps
6
6
  extends React.HTMLAttributes<HTMLHeadingElement> {
7
7
  children: React.ReactNode;
8
8
  /**
@@ -12,12 +12,10 @@ interface ExpansionCardTitleProps
12
12
  size?: "large" | "medium" | "small";
13
13
  }
14
14
 
15
- export type ExpansionCardTitleType = OverridableComponent<
15
+ export const ExpansionCardTitle: OverridableComponent<
16
16
  ExpansionCardTitleProps,
17
17
  HTMLHeadingElement
18
- >;
19
-
20
- export const ExpansionCardTitle: ExpansionCardTitleType = forwardRef(
18
+ > = forwardRef(
21
19
  ({ className, as: Component = "h3", size = "medium", ...rest }, ref) => (
22
20
  <Component
23
21
  {...rest}
@@ -26,6 +26,24 @@ export interface ConfirmationPanelProps
26
26
  errorId?: string;
27
27
  }
28
28
 
29
+ /**
30
+ * A component that displays a confirmation checkbox with a label.
31
+ *
32
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/confirmationpanel)
33
+ * @see 🏷️ {@link ConfirmationPanelProps}
34
+ *
35
+ * @example
36
+ * ```jsx
37
+ <ConfirmationPanel
38
+ checked={state}
39
+ label="Ja, jeg samtykker."
40
+ onChange={() => setState((x) => !x)}
41
+ >
42
+ For å komme videre må du gi oss lov til å hente inn og bruke opplysninger
43
+ om deg.
44
+ </ConfirmationPanel>
45
+ * ```
46
+ */
29
47
  export const ConfirmationPanel = forwardRef<
30
48
  HTMLInputElement,
31
49
  ConfirmationPanelProps
@@ -30,6 +30,22 @@ export interface SelectProps
30
30
  style?: React.CSSProperties;
31
31
  }
32
32
 
33
+ /**
34
+ * A component that displays a select input field.
35
+ *
36
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/select)
37
+ * @see 🏷️ {@link SelectProps}
38
+ *
39
+ * @example
40
+ * ```jsx
41
+ * <Select label="Hvilket land har du bosted i.">
42
+ * <option value="">Velg land</option>
43
+ * <option value="norge">Norge</option>
44
+ * <option value="sverige">Sverige</option>
45
+ * <option value="danmark">Danmark</option>
46
+ * </Select>
47
+ * ```
48
+ */
33
49
  export const Select = forwardRef<HTMLSelectElement, SelectProps>(
34
50
  (props, ref) => {
35
51
  const {
@@ -55,6 +55,17 @@ export interface SwitchProps
55
55
  description?: string;
56
56
  }
57
57
 
58
+ /**
59
+ * A component that displays a switch input field.
60
+ *
61
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/switch)
62
+ * @see 🏷️ {@link SwitchProps}
63
+ *
64
+ * @example
65
+ * ```jsx
66
+ * <Switch>Slå på notifikasjoner</Switch>
67
+ * ```
68
+ */
58
69
  export const Switch = forwardRef<HTMLInputElement, SwitchProps>(
59
70
  (props, ref) => {
60
71
  const { inputProps, size } = useFormField(props, "switch");
@@ -33,6 +33,17 @@ export interface TextFieldProps
33
33
  type?: "email" | "number" | "password" | "tel" | "text" | "url";
34
34
  }
35
35
 
36
+ /**
37
+ * A component that displays a text input field with a label.
38
+ *
39
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/textfield)
40
+ * @see 🏷️ {@link TextFieldProps}
41
+ *
42
+ * @example
43
+ * ```jsx
44
+ * <TextField label="Har du noen tilbakemeldinger?" />
45
+ * ```
46
+ */
36
47
  export const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
37
48
  (props, ref) => {
38
49
  const {
@@ -55,6 +55,17 @@ export interface TextareaProps
55
55
  };
56
56
  }
57
57
 
58
+ /**
59
+ * A component that displays a textarea input field with a label.
60
+ *
61
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/textarea)
62
+ * @see 🏷️ {@link TextareaProps}
63
+ *
64
+ * @example
65
+ * ```jsx
66
+ * <Textarea label="Har du noen tilbakemeldinger?" />
67
+ * ```
68
+ */
58
69
  export const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(
59
70
  (props, ref) => {
60
71
  const {
@@ -35,6 +35,21 @@ export interface CheckboxGroupProps
35
35
  onChange?: (value: any[]) => void;
36
36
  }
37
37
 
38
+ /**
39
+ * A component that allows users to select one or more options from a list.
40
+ *
41
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/checkbox)
42
+ * @see 🏷️ {@link CheckboxProps}
43
+ *
44
+ * @example
45
+ * ```jsx
46
+ * <CheckboxGroup legend="Hvor vil du sitte?">
47
+ * <Checkbox value="Bakerst">Bakerst</Checkbox>
48
+ * <Checkbox value="Midterst">Midterst</Checkbox>
49
+ * <Checkbox value="Fremst">Fremst</Checkbox>
50
+ * </CheckboxGroup>
51
+ * ```
52
+ */
38
53
  export const CheckboxGroup = forwardRef<
39
54
  HTMLFieldSetElement,
40
55
  CheckboxGroupProps