@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
@@ -20,5 +20,19 @@ export interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
20
20
  */
21
21
  spacing?: boolean;
22
22
  }
23
+ /**
24
+ * Part of a set of components for displaying text with consistent typography.
25
+ *
26
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/typography)
27
+ * @see 🏷️ {@link HeadingProps}
28
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
29
+ *
30
+ * @example
31
+ * ```jsx
32
+ * <Heading level="1" size="xlarge">
33
+ * Pengestøtte når du er syk
34
+ * </Heading>
35
+ * ```
36
+ */
23
37
  export declare const Heading: OverridableComponent<HeadingProps, HTMLHeadingElement>;
24
38
  export default Heading;
@@ -11,6 +11,20 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import React, { forwardRef } from "react";
13
13
  import cl from "clsx";
14
+ /**
15
+ * Part of a set of components for displaying text with consistent typography.
16
+ *
17
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/typography)
18
+ * @see 🏷️ {@link HeadingProps}
19
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
20
+ *
21
+ * @example
22
+ * ```jsx
23
+ * <Heading level="1" size="xlarge">
24
+ * Pengestøtte når du er syk
25
+ * </Heading>
26
+ * ```
27
+ */
14
28
  export const Heading = forwardRef((_a, ref) => {
15
29
  var { level = "1", size, spacing = false, className, as } = _a, rest = __rest(_a, ["level", "size", "spacing", "className", "as"]);
16
30
  let HeadingTag = as !== null && as !== void 0 ? as : `h${level}`;
@@ -1 +1 @@
1
- {"version":3,"file":"Heading.js","sourceRoot":"","sources":["../../src/typography/Heading.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AAwBtB,MAAM,CAAC,MAAM,OAAO,GAClB,UAAU,CACR,CAAC,EAA8D,EAAE,GAAG,EAAE,EAAE;QAAvE,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,SAAS,EAAE,EAAE,OAAW,EAAN,IAAI,cAA5D,+CAA8D,CAAF;IAC3D,IAAI,UAAU,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAK,IAAI,KAAK,EAAwB,CAAC;IAE1D,OAAO,CACL,oBAAC,UAAU,oBACL,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,kBAAkB,IAAI,EAAE,EAAE;YAClE,qBAAqB,EAAE,OAAO;SAC/B,CAAC,IACF,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEJ,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Heading.js","sourceRoot":"","sources":["../../src/typography/Heading.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AAwBtB;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,OAAO,GAClB,UAAU,CACR,CAAC,EAA8D,EAAE,GAAG,EAAE,EAAE;QAAvE,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,SAAS,EAAE,EAAE,OAAW,EAAN,IAAI,cAA5D,+CAA8D,CAAF;IAC3D,IAAI,UAAU,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAK,IAAI,KAAK,EAAwB,CAAC;IAE1D,OAAO,CACL,oBAAC,UAAU,oBACL,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,kBAAkB,IAAI,EAAE,EAAE;YAClE,qBAAqB,EAAE,OAAO;SAC/B,CAAC,IACF,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEJ,eAAe,OAAO,CAAC"}
@@ -10,5 +10,19 @@ export interface IngressProps extends React.HTMLAttributes<HTMLParagraphElement>
10
10
  */
11
11
  spacing?: boolean;
12
12
  }
13
+ /**
14
+ * Part of a set of components for displaying text with consistent typography.
15
+ *
16
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/typography)
17
+ * @see 🏷️ {@link IngressProps}
18
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
19
+ *
20
+ * @example
21
+ * ```jsx
22
+ * <Ingress level="1" size="xlarge">
23
+ * Pengestøtte når du er syk
24
+ * </Ingress>
25
+ * ```
26
+ */
13
27
  export declare const Ingress: OverridableComponent<IngressProps, HTMLParagraphElement>;
14
28
  export default Ingress;
@@ -11,6 +11,20 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import React, { forwardRef } from "react";
13
13
  import cl from "clsx";
14
+ /**
15
+ * Part of a set of components for displaying text with consistent typography.
16
+ *
17
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/typography)
18
+ * @see 🏷️ {@link IngressProps}
19
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
20
+ *
21
+ * @example
22
+ * ```jsx
23
+ * <Ingress level="1" size="xlarge">
24
+ * Pengestøtte når du er syk
25
+ * </Ingress>
26
+ * ```
27
+ */
14
28
  export const Ingress = forwardRef((_a, ref) => {
15
29
  var { className, spacing, as: Component = "p" } = _a, rest = __rest(_a, ["className", "spacing", "as"]);
16
30
  return (React.createElement(Component, Object.assign({}, rest, { ref: ref, className: cl(className, "navds-ingress", {
@@ -1 +1 @@
1
- {"version":3,"file":"Ingress.js","sourceRoot":"","sources":["../../src/typography/Ingress.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AAetB,MAAM,CAAC,MAAM,OAAO,GAClB,UAAU,CAAC,CAAC,EAAoD,EAAE,GAAG,EAAE,EAAE;QAA7D,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,GAAG,OAAW,EAAN,IAAI,cAAlD,8BAAoD,CAAF;IAAY,OAAA,CACxE,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE;YACxC,qBAAqB,EAAE,CAAC,CAAC,OAAO;SACjC,CAAC,IACF,CACH,CAAA;CAAA,CAAC,CAAC;AAEL,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Ingress.js","sourceRoot":"","sources":["../../src/typography/Ingress.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AAetB;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,OAAO,GAClB,UAAU,CAAC,CAAC,EAAoD,EAAE,GAAG,EAAE,EAAE;QAA7D,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,GAAG,OAAW,EAAN,IAAI,cAAlD,8BAAoD,CAAF;IAAY,OAAA,CACxE,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE;YACxC,qBAAqB,EAAE,CAAC,CAAC,OAAO;SACjC,CAAC,IACF,CACH,CAAA;CAAA,CAAC,CAAC;AAEL,eAAe,OAAO,CAAC"}
@@ -15,5 +15,19 @@ export interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement>
15
15
  */
16
16
  spacing?: boolean;
17
17
  }
18
+ /**
19
+ * Part of a set of components for displaying text with consistent typography.
20
+ *
21
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/typography)
22
+ * @see 🏷️ {@link LabelProps}
23
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
24
+ *
25
+ * @example
26
+ * ```jsx
27
+ * <Label level="1" size="xlarge">
28
+ * Pengestøtte når du er syk
29
+ * </Label>
30
+ * ```
31
+ */
18
32
  export declare const Label: OverridableComponent<LabelProps, HTMLLabelElement>;
19
33
  export default Label;
@@ -11,6 +11,20 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import React, { forwardRef } from "react";
13
13
  import cl from "clsx";
14
+ /**
15
+ * Part of a set of components for displaying text with consistent typography.
16
+ *
17
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/typography)
18
+ * @see 🏷️ {@link LabelProps}
19
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
20
+ *
21
+ * @example
22
+ * ```jsx
23
+ * <Label level="1" size="xlarge">
24
+ * Pengestøtte når du er syk
25
+ * </Label>
26
+ * ```
27
+ */
14
28
  export const Label = forwardRef((_a, ref) => {
15
29
  var { className, size = "medium", spacing, as: Component = "label" } = _a, rest = __rest(_a, ["className", "size", "spacing", "as"]);
16
30
  return (React.createElement(Component, Object.assign({}, rest, { ref: ref, className: cl(className, "navds-label", {
@@ -1 +1 @@
1
- {"version":3,"file":"Label.js","sourceRoot":"","sources":["../../src/typography/Label.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AAoBtB,MAAM,CAAC,MAAM,KAAK,GAChB,UAAU,CACR,CACE,EAAyE,EACzE,GAAG,EACH,EAAE;QAFF,EAAE,SAAS,EAAE,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,OAAW,EAAN,IAAI,cAAvE,sCAAyE,CAAF;IAEpE,OAAA,CACH,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE;YACtC,oBAAoB,EAAE,IAAI,KAAK,OAAO;YACtC,qBAAqB,EAAE,CAAC,CAAC,OAAO;SACjC,CAAC,IACF,CACH,CAAA;CAAA,CACF,CAAC;AAEJ,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Label.js","sourceRoot":"","sources":["../../src/typography/Label.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AAoBtB;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,KAAK,GAChB,UAAU,CACR,CACE,EAAyE,EACzE,GAAG,EACH,EAAE;QAFF,EAAE,SAAS,EAAE,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,OAAW,EAAN,IAAI,cAAvE,sCAAyE,CAAF;IAEpE,OAAA,CACH,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE;YACtC,oBAAoB,EAAE,IAAI,KAAK,OAAO;YACtC,qBAAqB,EAAE,CAAC,CAAC,OAAO;SACjC,CAAC,IACF,CACH,CAAA;CAAA,CACF,CAAC;AAEJ,eAAe,KAAK,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "Aksel react-components for NAV designsystem",
5
5
  "author": "Aksel | NAV designsystem team",
6
6
  "license": "MIT",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@floating-ui/react": "0.24.1",
41
- "@navikt/aksel-icons": "^4.0.0",
41
+ "@navikt/aksel-icons": "^4.1.0",
42
42
  "@radix-ui/react-tabs": "1.0.0",
43
43
  "@radix-ui/react-toggle-group": "1.0.0",
44
44
  "clsx": "^1.2.1",
@@ -1,17 +1,32 @@
1
1
  import cl from "clsx";
2
2
  import React, { forwardRef } from "react";
3
- import AccordionItem, { AccordionItemType } from "./AccordionItem";
4
- import AccordionContent, { AccordionContentType } from "./AccordionContent";
5
- import AccordionHeader, { AccordionHeaderType } from "./AccordionHeader";
3
+ import AccordionItem, { AccordionItemProps } from "./AccordionItem";
4
+ import AccordionContent, { AccordionContentProps } from "./AccordionContent";
5
+ import AccordionHeader, { AccordionHeaderProps } from "./AccordionHeader";
6
6
  import { AccordionContext } from "./AccordionContext";
7
7
 
8
8
  interface AccordionComponent
9
9
  extends React.ForwardRefExoticComponent<
10
10
  AccordionProps & React.RefAttributes<HTMLDivElement>
11
11
  > {
12
- Item: AccordionItemType;
13
- Header: AccordionHeaderType;
14
- Content: AccordionContentType;
12
+ /**
13
+ * @see 🏷️ {@link AccordionItemProps}
14
+ */
15
+ Item: React.ForwardRefExoticComponent<
16
+ AccordionItemProps & React.RefAttributes<HTMLDivElement>
17
+ >;
18
+ /**
19
+ * @see 🏷️ {@link AccordionHeaderProps}
20
+ */
21
+ Header: React.ForwardRefExoticComponent<
22
+ AccordionHeaderProps & React.RefAttributes<HTMLButtonElement>
23
+ >;
24
+ /**
25
+ * @see 🏷️ {@link AccordionContentProps}
26
+ */
27
+ Content: React.ForwardRefExoticComponent<
28
+ AccordionContentProps & React.RefAttributes<HTMLDivElement>
29
+ >;
15
30
  }
16
31
 
17
32
  export interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {
@@ -27,12 +42,37 @@ export interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {
27
42
  * @default "medium"
28
43
  */
29
44
  size?: "large" | "medium" | "small";
45
+ /**
46
+ * Whether to indent content or not
47
+ * @default true
48
+ */
49
+ indent?: boolean;
30
50
  /**
31
51
  * Instances of Accordion.Item
32
52
  */
33
53
  children: React.ReactNode;
34
54
  }
35
55
 
56
+ /**
57
+ * A component that displays collapsible content sections.
58
+ *
59
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/accordion)
60
+ * @see 🏷️ {@link AccordionProps}
61
+ *
62
+ * @example
63
+ * ```jsx
64
+ * <Accordion>
65
+ * <Accordion.Item>
66
+ * <Accordion.Header>Section 1</Accordion.Header>
67
+ * <Accordion.Content>Content 1</Accordion.Content>
68
+ * </Accordion.Item>
69
+ * <Accordion.Item>
70
+ * <Accordion.Header>Section 2</Accordion.Header>
71
+ * <Accordion.Content>Content 2</Accordion.Content>
72
+ * </Accordion.Item>
73
+ * </Accordion>
74
+ * ```
75
+ */
36
76
  export const Accordion = forwardRef<HTMLDivElement, AccordionProps>(
37
77
  (
38
78
  {
@@ -40,6 +80,7 @@ export const Accordion = forwardRef<HTMLDivElement, AccordionProps>(
40
80
  variant = "default",
41
81
  headingSize = "small",
42
82
  size = "medium",
83
+ indent = true,
43
84
  ...rest
44
85
  },
45
86
  ref
@@ -57,7 +98,8 @@ export const Accordion = forwardRef<HTMLDivElement, AccordionProps>(
57
98
  className={cl(
58
99
  "navds-accordion",
59
100
  className,
60
- `navds-accordion--${size}`
101
+ `navds-accordion--${size}`,
102
+ { "navds-accordion--indent": indent }
61
103
  )}
62
104
  ref={ref}
63
105
  />
@@ -11,11 +11,7 @@ export interface AccordionContentProps
11
11
  children: React.ReactNode;
12
12
  }
13
13
 
14
- export type AccordionContentType = React.ForwardRefExoticComponent<
15
- AccordionContentProps & React.RefAttributes<HTMLDivElement>
16
- >;
17
-
18
- const AccordionContent: AccordionContentType = forwardRef(
14
+ const AccordionContent = forwardRef<HTMLDivElement, AccordionContentProps>(
19
15
  ({ children, className, ...rest }, ref) => {
20
16
  const context = useContext(AccordionItemContext);
21
17
 
@@ -13,11 +13,7 @@ export interface AccordionHeaderProps
13
13
  children: React.ReactNode;
14
14
  }
15
15
 
16
- export type AccordionHeaderType = React.ForwardRefExoticComponent<
17
- AccordionHeaderProps & React.RefAttributes<HTMLButtonElement>
18
- >;
19
-
20
- const AccordionHeader: AccordionHeaderType = forwardRef(
16
+ const AccordionHeader = forwardRef<HTMLButtonElement, AccordionHeaderProps>(
21
17
  ({ children, className, onClick, ...rest }, ref) => {
22
18
  const itemContext = useContext(AccordionItemContext);
23
19
  const accordionContext = useContext(AccordionContext);
@@ -27,10 +27,6 @@ export interface AccordionItemProps
27
27
  defaultOpen?: boolean;
28
28
  }
29
29
 
30
- export type AccordionItemType = React.ForwardRefExoticComponent<
31
- AccordionItemProps & React.RefAttributes<HTMLDivElement>
32
- >;
33
-
34
30
  export interface AccordionItemContextProps {
35
31
  open: boolean;
36
32
  toggleOpen: () => void;
@@ -39,7 +35,7 @@ export interface AccordionItemContextProps {
39
35
  export const AccordionItemContext =
40
36
  createContext<AccordionItemContextProps | null>(null);
41
37
 
42
- const AccordionItem: AccordionItemType = forwardRef(
38
+ const AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(
43
39
  (
44
40
  { children, className, open, defaultOpen = false, onClick, id, ...rest },
45
41
  ref
@@ -114,11 +114,12 @@ export const Default = {
114
114
  },
115
115
 
116
116
  args: {
117
- controlled: "false",
117
+ controlled: false,
118
118
  nItems: 2,
119
119
  variant: "default",
120
120
  headingSize: "medium",
121
121
  size: "medium",
122
+ indent: true,
122
123
  },
123
124
  };
124
125
 
@@ -137,7 +138,7 @@ export const DefaultOpen = {
137
138
 
138
139
  args: {
139
140
  openItems: [1, 2],
140
- controlled: "false",
141
+ controlled: false,
141
142
  nItems: 5,
142
143
  variant: "neutral",
143
144
  headingSize: "large",
@@ -251,6 +252,7 @@ export const WithTable = {
251
252
  args: {
252
253
  variant: "default",
253
254
  headingSize: "large",
255
+ indent: false,
254
256
  },
255
257
  };
256
258
 
@@ -53,6 +53,15 @@ export interface AlertContextProps {
53
53
  size: "medium" | "small";
54
54
  }
55
55
 
56
+ /**
57
+ * A component for displaying alerts
58
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/alert)
59
+ * @see 🏷️ {@link AlertProps}
60
+ * @example
61
+ * ```jsx
62
+ * <Alert variant="error">Dette er en feilmelding</Alert>
63
+ * ```
64
+ */
56
65
  export const Alert = forwardRef<HTMLDivElement, AlertProps>(
57
66
  (
58
67
  {
@@ -47,6 +47,16 @@ export interface ButtonProps
47
47
  iconPosition?: "left" | "right";
48
48
  }
49
49
 
50
+ /**
51
+ * A button component
52
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/button)
53
+ * @see 🏷️ {@link ButtonProps}
54
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
55
+ * @example
56
+ * ```jsx
57
+ * <Button>Klikk meg</Button>
58
+ * ```
59
+ */
50
60
  export const Button: OverridableComponent<ButtonProps, HTMLButtonElement> =
51
61
  forwardRef(
52
62
  (
@@ -25,11 +25,7 @@ export interface BubbleProps extends HTMLAttributes<HTMLDivElement> {
25
25
  toptextPosition?: "left" | "right";
26
26
  }
27
27
 
28
- export type BubbleType = React.ForwardRefExoticComponent<
29
- BubbleProps & React.RefAttributes<HTMLDivElement>
30
- >;
31
-
32
- const Bubble: BubbleType = forwardRef(
28
+ const Bubble = forwardRef<HTMLDivElement, BubbleProps>(
33
29
  (
34
30
  {
35
31
  children,
package/src/chat/Chat.tsx CHANGED
@@ -1,6 +1,6 @@
1
1
  import React, { forwardRef, HTMLAttributes } from "react";
2
2
  import cl from "clsx";
3
- import Bubble, { BubbleType } from "./Bubble";
3
+ import Bubble, { BubbleProps } from "./Bubble";
4
4
  import { BodyLong, BodyShort } from "../typography";
5
5
 
6
6
  export interface ChatProps extends HTMLAttributes<HTMLDivElement> {
@@ -44,9 +44,30 @@ interface ChatComponent
44
44
  extends React.ForwardRefExoticComponent<
45
45
  ChatProps & React.RefAttributes<HTMLDivElement>
46
46
  > {
47
- Bubble: BubbleType;
47
+ /**
48
+ * @see 🏷️ {@link BubbleProps}
49
+ */
50
+ Bubble: React.ForwardRefExoticComponent<
51
+ BubbleProps & React.RefAttributes<HTMLDivElement>
52
+ >;
48
53
  }
49
54
 
55
+ /**
56
+ * A component for displaying chat messages.
57
+ *
58
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/chat)
59
+ * @see 🏷️ {@link ChatProps}
60
+ *
61
+ * @example
62
+ * ```jsx
63
+ * <Chat>
64
+ * <Chat.Bubble avatar="A" name="Alice">Hello!</Chat.Bubble>
65
+ * </Chat>
66
+ * <Chat>
67
+ * <Chat.Bubble avatar="B" name="Bob">Hi there!</Chat.Bubble>
68
+ * </Chat>
69
+ * ```
70
+ */
50
71
  export const Chat = forwardRef<HTMLDivElement, ChatProps>(
51
72
  (
52
73
  {
@@ -1,7 +1,8 @@
1
1
  import cl from "clsx";
2
2
  import React, { forwardRef, HTMLAttributes } from "react";
3
- import ToggleChips, { ToggleChipsType } from "./Toggle";
4
- import RemovableChips, { RemovableChipsType } from "./Removable";
3
+ import ToggleChips, { ToggleChipsProps } from "./Toggle";
4
+ import RemovableChips, { RemovableChipsProps } from "./Removable";
5
+ import { OverridableComponent } from "../util/OverridableComponent";
5
6
 
6
7
  export interface ChipsProps extends HTMLAttributes<HTMLUListElement> {
7
8
  children: React.ReactNode;
@@ -16,10 +17,47 @@ interface ChipsComponent
16
17
  extends React.ForwardRefExoticComponent<
17
18
  ChipsProps & React.RefAttributes<HTMLUListElement>
18
19
  > {
19
- Toggle: ToggleChipsType;
20
- Removable: RemovableChipsType;
20
+ /**
21
+ * Toggle between selected-states.
22
+ * @see 🏷️ {@link ToggleChipsProps}
23
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
24
+ */
25
+ Toggle: OverridableComponent<ToggleChipsProps, HTMLButtonElement>;
26
+ /**
27
+ * Remove filter or the likes on click
28
+ * @see 🏷️ {@link RemovableChipsProps}
29
+ * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
30
+ */
31
+ Removable: OverridableComponent<RemovableChipsProps, HTMLButtonElement>;
21
32
  }
22
33
 
34
+ /**
35
+ * A component that displays a list of items as chips.
36
+ *
37
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/chips)
38
+ * @see 🏷️ {@link ChipsProps}
39
+ *
40
+ * @example
41
+ * ```jsx
42
+ <Chips size="small">
43
+ {options.map((c) => (
44
+ <Chips.Toggle
45
+ selected={selected.includes(c)}
46
+ key={c}
47
+ onClick={() =>
48
+ setSelected(
49
+ selected.includes(c)
50
+ ? selected.filter((x) => x !== c)
51
+ : [...selected, c]
52
+ )
53
+ }
54
+ >
55
+ {c}
56
+ </Chips.Toggle>
57
+ ))}
58
+ </Chips>
59
+ * ```
60
+ */
23
61
  export const Chips: ChipsComponent = forwardRef<HTMLUListElement, ChipsProps>(
24
62
  ({ className, size = "medium", children, ...rest }, ref) => {
25
63
  return (
@@ -22,9 +22,6 @@ export interface RemovableChipsProps
22
22
  onDelete?: () => void;
23
23
  }
24
24
 
25
- export interface RemovableChipsType
26
- extends OverridableComponent<RemovableChipsProps, HTMLButtonElement> {}
27
-
28
25
  export const RemovableChips: OverridableComponent<
29
26
  RemovableChipsProps,
30
27
  HTMLButtonElement
@@ -63,6 +60,6 @@ export const RemovableChips: OverridableComponent<
63
60
  </Component>
64
61
  );
65
62
  }
66
- ) as RemovableChipsType;
63
+ );
67
64
 
68
65
  export default RemovableChips;
@@ -1,4 +1,3 @@
1
- import { CheckmarkIcon } from "@navikt/aksel-icons";
2
1
  import cl from "clsx";
3
2
  import React, { forwardRef } from "react";
4
3
  import { OverridableComponent } from "../util/OverridableComponent";
@@ -10,27 +9,64 @@ export interface ToggleChipsProps
10
9
  * Toggles aria-pressed and visual-changes
11
10
  */
12
11
  selected?: boolean;
12
+ /**
13
+ * Chip-variants
14
+ * @default "action"
15
+ */
16
+ variant?: "action" | "neutral";
17
+ /**
18
+ * Toggles display of checkmark on selected
19
+ * @default true
20
+ */
21
+ checkmark?: boolean;
13
22
  }
14
23
 
15
- export interface ToggleChipsType
16
- extends OverridableComponent<ToggleChipsProps, HTMLButtonElement> {}
17
-
18
- export const ToggleChips: ToggleChipsType = forwardRef(
24
+ export const ToggleChips: OverridableComponent<
25
+ ToggleChipsProps,
26
+ HTMLButtonElement
27
+ > = forwardRef(
19
28
  (
20
- { className, children, selected, as: Component = "button", ...rest },
29
+ {
30
+ className,
31
+ children,
32
+ selected,
33
+ variant = "action",
34
+ checkmark = true,
35
+ as: Component = "button",
36
+ ...rest
37
+ },
21
38
  ref
22
39
  ) => {
23
40
  return (
24
41
  <Component
25
42
  {...rest}
26
43
  ref={ref}
27
- className={cl("navds-chips__chip navds-chips__toggle", className, {
28
- "navds-chips--icon-left": selected,
29
- })}
44
+ className={cl(
45
+ "navds-chips__chip navds-chips__toggle",
46
+ className,
47
+ `navds-chips__toggle--${variant}`
48
+ )}
30
49
  aria-pressed={selected}
31
50
  >
32
- {selected && (
33
- <CheckmarkIcon aria-hidden className="navds-chips__toggle-icon" />
51
+ {selected && checkmark && (
52
+ <svg
53
+ aria-hidden
54
+ className="navds-chips__toggle-icon"
55
+ width="10"
56
+ height="8"
57
+ viewBox="0 0 10 8"
58
+ fill="none"
59
+ xmlns="http://www.w3.org/2000/svg"
60
+ focusable={false}
61
+ role="img"
62
+ >
63
+ <path
64
+ fillRule="evenodd"
65
+ clipRule="evenodd"
66
+ d="M9.51894 0.45851C9.81799 0.745107 9.8281 1.21987 9.5415 1.51893L3.7915 7.51893C3.51247 7.81009 3.05315 7.82848 2.75174 7.56056L0.501735 5.56056C0.192148 5.28537 0.164263 4.81132 0.439451 4.50173C0.71464 4.19214 1.18869 4.16426 1.49828 4.43944L3.20835 5.95951L8.45852 0.481072C8.74511 0.182015 9.21988 0.171913 9.51894 0.45851Z"
67
+ fill="currentColor"
68
+ />
69
+ </svg>
34
70
  )}
35
71
  <span className="navds-chips__chip-text">{children}</span>
36
72
  </Component>