@navikt/ds-react 0.19.25 → 1.0.0-rc.3

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 (430) hide show
  1. package/README.md +43 -0
  2. package/_docs.json +364 -520
  3. package/cjs/accordion/Accordion.js +2 -2
  4. package/cjs/accordion/AccordionContent.js +5 -9
  5. package/cjs/accordion/AccordionHeader.js +5 -10
  6. package/cjs/accordion/AccordionItem.js +3 -7
  7. package/cjs/alert/Alert.js +2 -2
  8. package/cjs/button/Button.js +9 -7
  9. package/cjs/{speech-bubble → chat}/Bubble.js +7 -4
  10. package/cjs/{speech-bubble/SpeechBubble.js → chat/Chat.js} +11 -10
  11. package/cjs/{menu → chat}/index.js +3 -3
  12. package/cjs/chat/package.json +6 -0
  13. package/cjs/form/ConfirmationPanel.js +3 -3
  14. package/cjs/form/Fieldset/Fieldset.js +6 -6
  15. package/cjs/form/Select.js +6 -6
  16. package/cjs/form/Switch.js +4 -4
  17. package/cjs/form/TextField.js +6 -6
  18. package/cjs/form/Textarea.js +14 -14
  19. package/cjs/form/checkbox/Checkbox.js +3 -3
  20. package/cjs/form/checkbox/CheckboxGroup.js +2 -2
  21. package/cjs/form/error-summary/ErrorSummary.js +3 -3
  22. package/cjs/form/error-summary/ErrorSummaryItem.js +2 -2
  23. package/cjs/form/radio/Radio.js +2 -2
  24. package/cjs/form/radio/RadioGroup.js +2 -2
  25. package/cjs/form/search/Search.js +6 -7
  26. package/cjs/form/search/SearchButton.js +2 -4
  27. package/cjs/form/useFormField.js +2 -2
  28. package/cjs/grid/Cell.js +2 -2
  29. package/cjs/grid/ContentContainer.js +2 -2
  30. package/cjs/grid/Grid.js +2 -2
  31. package/cjs/guide-panel/Guide.js +3 -3
  32. package/cjs/guide-panel/GuidePanel.js +2 -2
  33. package/cjs/help-text/HelpText.js +5 -5
  34. package/cjs/index.js +1 -6
  35. package/cjs/link/Link.js +2 -2
  36. package/cjs/link-panel/LinkPanel.js +2 -2
  37. package/cjs/link-panel/LinkPanelDescription.js +2 -2
  38. package/cjs/link-panel/LinkPanelTitle.js +2 -2
  39. package/cjs/loader/Loader.js +2 -2
  40. package/cjs/modal/Modal.js +5 -7
  41. package/cjs/modal/ModalContent.js +2 -2
  42. package/cjs/pagination/Pagination.js +18 -23
  43. package/cjs/{menu/MenuItem.js → pagination/PaginationItem.js} +5 -4
  44. package/cjs/panel/Panel.js +2 -2
  45. package/cjs/popover/Popover.js +55 -45
  46. package/cjs/popover/PopoverContent.js +2 -2
  47. package/cjs/read-more/ReadMore.js +7 -11
  48. package/cjs/stepper/Step.js +2 -2
  49. package/cjs/stepper/Stepper.js +3 -3
  50. package/cjs/table/Body.js +2 -2
  51. package/cjs/table/DataCell.js +2 -2
  52. package/cjs/table/ExpandableRow.js +9 -12
  53. package/cjs/table/Header.js +2 -2
  54. package/cjs/table/HeaderCell.js +2 -2
  55. package/cjs/table/Row.js +2 -2
  56. package/cjs/table/Table.js +2 -2
  57. package/cjs/tabs/Tab.js +4 -4
  58. package/cjs/tabs/TabList.js +8 -7
  59. package/cjs/tabs/TabPanel.js +2 -2
  60. package/cjs/tabs/Tabs.js +5 -3
  61. package/cjs/tag/Tag.js +2 -2
  62. package/cjs/toggle-group/ToggleGroup.js +5 -5
  63. package/cjs/toggle-group/ToggleItem.js +2 -2
  64. package/cjs/tooltip/Tooltip.js +45 -92
  65. package/cjs/typography/BodyLong.js +2 -2
  66. package/cjs/typography/BodyShort.js +2 -2
  67. package/cjs/typography/Detail.js +2 -2
  68. package/cjs/typography/ErrorMessage.js +2 -2
  69. package/cjs/typography/Heading.js +2 -2
  70. package/cjs/typography/Ingress.js +2 -2
  71. package/cjs/typography/Label.js +2 -2
  72. package/cjs/util/AnimateHeight.js +204 -0
  73. package/cjs/util/TextareaAutoSize.js +174 -0
  74. package/cjs/util/debounce.js +18 -0
  75. package/cjs/util/index.js +14 -1
  76. package/cjs/util/mergeRefs.js +16 -0
  77. package/cjs/util/useId.js +60 -17
  78. package/esm/accordion/Accordion.js +1 -1
  79. package/esm/accordion/Accordion.js.map +1 -1
  80. package/esm/accordion/AccordionContent.d.ts +0 -2
  81. package/esm/accordion/AccordionContent.js +5 -9
  82. package/esm/accordion/AccordionContent.js.map +1 -1
  83. package/esm/accordion/AccordionHeader.js +5 -10
  84. package/esm/accordion/AccordionHeader.js.map +1 -1
  85. package/esm/accordion/AccordionItem.d.ts +0 -8
  86. package/esm/accordion/AccordionItem.js +2 -6
  87. package/esm/accordion/AccordionItem.js.map +1 -1
  88. package/esm/alert/Alert.d.ts +1 -1
  89. package/esm/alert/Alert.js +1 -1
  90. package/esm/alert/Alert.js.map +1 -1
  91. package/esm/button/Button.d.ts +10 -1
  92. package/esm/button/Button.js +10 -8
  93. package/esm/button/Button.js.map +1 -1
  94. package/esm/{speech-bubble → chat}/Bubble.d.ts +7 -3
  95. package/esm/{speech-bubble → chat}/Bubble.js +7 -4
  96. package/esm/chat/Bubble.js.map +1 -0
  97. package/esm/chat/Chat.d.ts +38 -0
  98. package/esm/chat/Chat.js +28 -0
  99. package/esm/chat/Chat.js.map +1 -0
  100. package/esm/chat/index.d.ts +1 -0
  101. package/esm/chat/index.js +2 -0
  102. package/esm/chat/index.js.map +1 -0
  103. package/esm/form/ConfirmationPanel.d.ts +1 -1
  104. package/esm/form/ConfirmationPanel.js +3 -3
  105. package/esm/form/ConfirmationPanel.js.map +1 -1
  106. package/esm/form/Fieldset/Fieldset.js +1 -1
  107. package/esm/form/Fieldset/Fieldset.js.map +1 -1
  108. package/esm/form/Select.js +1 -1
  109. package/esm/form/Select.js.map +1 -1
  110. package/esm/form/Switch.js +1 -1
  111. package/esm/form/Switch.js.map +1 -1
  112. package/esm/form/TextField.js +1 -1
  113. package/esm/form/TextField.js.map +1 -1
  114. package/esm/form/Textarea.js +6 -6
  115. package/esm/form/Textarea.js.map +1 -1
  116. package/esm/form/checkbox/Checkbox.js +1 -1
  117. package/esm/form/checkbox/Checkbox.js.map +1 -1
  118. package/esm/form/checkbox/CheckboxGroup.js +1 -1
  119. package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
  120. package/esm/form/error-summary/ErrorSummary.js +3 -3
  121. package/esm/form/error-summary/ErrorSummary.js.map +1 -1
  122. package/esm/form/error-summary/ErrorSummaryItem.js +1 -1
  123. package/esm/form/error-summary/ErrorSummaryItem.js.map +1 -1
  124. package/esm/form/radio/Radio.js +1 -1
  125. package/esm/form/radio/Radio.js.map +1 -1
  126. package/esm/form/radio/RadioGroup.js +1 -1
  127. package/esm/form/radio/RadioGroup.js.map +1 -1
  128. package/esm/form/search/Search.js +4 -5
  129. package/esm/form/search/Search.js.map +1 -1
  130. package/esm/form/search/SearchButton.d.ts +1 -1
  131. package/esm/form/search/SearchButton.js +2 -4
  132. package/esm/form/search/SearchButton.js.map +1 -1
  133. package/esm/form/useFormField.js +1 -1
  134. package/esm/form/useFormField.js.map +1 -1
  135. package/esm/grid/Cell.js +1 -1
  136. package/esm/grid/Cell.js.map +1 -1
  137. package/esm/grid/ContentContainer.js +1 -1
  138. package/esm/grid/ContentContainer.js.map +1 -1
  139. package/esm/grid/Grid.js +1 -1
  140. package/esm/grid/Grid.js.map +1 -1
  141. package/esm/guide-panel/Guide.js +1 -1
  142. package/esm/guide-panel/Guide.js.map +1 -1
  143. package/esm/guide-panel/GuidePanel.js +1 -1
  144. package/esm/guide-panel/GuidePanel.js.map +1 -1
  145. package/esm/help-text/HelpText.d.ts +1 -2
  146. package/esm/help-text/HelpText.js +7 -7
  147. package/esm/help-text/HelpText.js.map +1 -1
  148. package/esm/index.d.ts +1 -5
  149. package/esm/index.js +1 -6
  150. package/esm/index.js.map +1 -1
  151. package/esm/link/Link.js +1 -1
  152. package/esm/link/Link.js.map +1 -1
  153. package/esm/link-panel/LinkPanel.js +1 -1
  154. package/esm/link-panel/LinkPanel.js.map +1 -1
  155. package/esm/link-panel/LinkPanelDescription.js +1 -1
  156. package/esm/link-panel/LinkPanelDescription.js.map +1 -1
  157. package/esm/link-panel/LinkPanelTitle.js +1 -1
  158. package/esm/link-panel/LinkPanelTitle.js.map +1 -1
  159. package/esm/loader/Loader.js +1 -1
  160. package/esm/loader/Loader.js.map +1 -1
  161. package/esm/modal/Modal.js +5 -7
  162. package/esm/modal/Modal.js.map +1 -1
  163. package/esm/modal/ModalContent.js +1 -1
  164. package/esm/modal/ModalContent.js.map +1 -1
  165. package/esm/pagination/Pagination.d.ts +12 -3
  166. package/esm/pagination/Pagination.js +17 -22
  167. package/esm/pagination/Pagination.js.map +1 -1
  168. package/esm/pagination/PaginationItem.d.ts +22 -0
  169. package/esm/{menu/MenuItem.js → pagination/PaginationItem.js} +6 -5
  170. package/esm/pagination/PaginationItem.js.map +1 -0
  171. package/esm/pagination/index.d.ts +1 -2
  172. package/esm/pagination/index.js.map +1 -1
  173. package/esm/panel/Panel.js +1 -1
  174. package/esm/panel/Panel.js.map +1 -1
  175. package/esm/popover/Popover.d.ts +2 -3
  176. package/esm/popover/Popover.js +56 -46
  177. package/esm/popover/Popover.js.map +1 -1
  178. package/esm/popover/PopoverContent.js +1 -1
  179. package/esm/popover/PopoverContent.js.map +1 -1
  180. package/esm/read-more/ReadMore.d.ts +0 -5
  181. package/esm/read-more/ReadMore.js +7 -11
  182. package/esm/read-more/ReadMore.js.map +1 -1
  183. package/esm/stepper/Step.js +1 -1
  184. package/esm/stepper/Step.js.map +1 -1
  185. package/esm/stepper/Stepper.js +1 -1
  186. package/esm/stepper/Stepper.js.map +1 -1
  187. package/esm/table/Body.js +1 -1
  188. package/esm/table/Body.js.map +1 -1
  189. package/esm/table/DataCell.js +1 -1
  190. package/esm/table/DataCell.js.map +1 -1
  191. package/esm/table/ExpandableRow.js +7 -10
  192. package/esm/table/ExpandableRow.js.map +1 -1
  193. package/esm/table/Header.js +1 -1
  194. package/esm/table/Header.js.map +1 -1
  195. package/esm/table/HeaderCell.js +1 -1
  196. package/esm/table/HeaderCell.js.map +1 -1
  197. package/esm/table/Row.js +1 -1
  198. package/esm/table/Row.js.map +1 -1
  199. package/esm/table/Table.js +1 -1
  200. package/esm/table/Table.js.map +1 -1
  201. package/esm/tabs/Tab.d.ts +0 -5
  202. package/esm/tabs/Tab.js +5 -5
  203. package/esm/tabs/Tab.js.map +1 -1
  204. package/esm/tabs/TabList.d.ts +0 -4
  205. package/esm/tabs/TabList.js +7 -6
  206. package/esm/tabs/TabList.js.map +1 -1
  207. package/esm/tabs/TabPanel.js +1 -1
  208. package/esm/tabs/TabPanel.js.map +1 -1
  209. package/esm/tabs/Tabs.d.ts +12 -0
  210. package/esm/tabs/Tabs.js +4 -2
  211. package/esm/tabs/Tabs.js.map +1 -1
  212. package/esm/tag/Tag.js +1 -1
  213. package/esm/tag/Tag.js.map +1 -1
  214. package/esm/toggle-group/ToggleGroup.js +3 -3
  215. package/esm/toggle-group/ToggleGroup.js.map +1 -1
  216. package/esm/toggle-group/ToggleItem.js +1 -1
  217. package/esm/toggle-group/ToggleItem.js.map +1 -1
  218. package/esm/tooltip/Tooltip.js +44 -91
  219. package/esm/tooltip/Tooltip.js.map +1 -1
  220. package/esm/typography/BodyLong.js +1 -1
  221. package/esm/typography/BodyLong.js.map +1 -1
  222. package/esm/typography/BodyShort.js +1 -1
  223. package/esm/typography/BodyShort.js.map +1 -1
  224. package/esm/typography/Detail.js +1 -1
  225. package/esm/typography/Detail.js.map +1 -1
  226. package/esm/typography/ErrorMessage.js +1 -1
  227. package/esm/typography/ErrorMessage.js.map +1 -1
  228. package/esm/typography/Heading.js +1 -1
  229. package/esm/typography/Heading.js.map +1 -1
  230. package/esm/typography/Ingress.js +1 -1
  231. package/esm/typography/Ingress.js.map +1 -1
  232. package/esm/typography/Label.js +1 -1
  233. package/esm/typography/Label.js.map +1 -1
  234. package/esm/util/AnimateHeight.d.ts +10 -0
  235. package/esm/util/AnimateHeight.js +180 -0
  236. package/esm/util/AnimateHeight.js.map +1 -0
  237. package/esm/util/TextareaAutoSize.d.ts +14 -0
  238. package/esm/util/TextareaAutoSize.js +150 -0
  239. package/esm/util/TextareaAutoSize.js.map +1 -0
  240. package/esm/util/debounce.d.ts +4 -0
  241. package/esm/util/debounce.js +16 -0
  242. package/esm/util/debounce.js.map +1 -0
  243. package/esm/util/index.d.ts +4 -0
  244. package/esm/util/index.js +9 -1
  245. package/esm/util/index.js.map +1 -1
  246. package/esm/util/mergeRefs.d.ts +2 -0
  247. package/esm/util/mergeRefs.js +14 -0
  248. package/esm/util/mergeRefs.js.map +1 -0
  249. package/esm/util/useId.d.ts +7 -3
  250. package/esm/util/useId.js +36 -16
  251. package/esm/util/useId.js.map +1 -1
  252. package/package.json +13 -15
  253. package/src/accordion/Accordion.tsx +1 -1
  254. package/src/accordion/AccordionContent.tsx +13 -19
  255. package/src/accordion/AccordionHeader.tsx +11 -18
  256. package/src/accordion/AccordionItem.tsx +2 -23
  257. package/src/accordion/accordion.stories.tsx +30 -31
  258. package/src/alert/Alert.tsx +2 -2
  259. package/src/alert/alert.stories.tsx +7 -0
  260. package/src/button/Button.tsx +39 -14
  261. package/src/button/button.stories.tsx +55 -28
  262. package/src/chat/Bubble.tsx +52 -0
  263. package/src/chat/Chat.tsx +96 -0
  264. package/src/chat/chat.stories.tsx +202 -0
  265. package/src/chat/index.ts +1 -0
  266. package/src/form/ConfirmationPanel.tsx +9 -4
  267. package/src/form/Fieldset/Fieldset.tsx +1 -1
  268. package/src/form/Select.tsx +1 -1
  269. package/src/form/Switch.tsx +1 -1
  270. package/src/form/TextField.tsx +1 -1
  271. package/src/form/Textarea.tsx +6 -6
  272. package/src/form/checkbox/Checkbox.test.tsx +20 -17
  273. package/src/form/checkbox/Checkbox.tsx +1 -1
  274. package/src/form/checkbox/CheckboxGroup.tsx +1 -1
  275. package/src/form/error-summary/ErrorSummary.tsx +3 -3
  276. package/src/form/error-summary/ErrorSummaryItem.tsx +1 -1
  277. package/src/form/radio/Radio.tsx +1 -1
  278. package/src/form/radio/RadioGroup.tsx +1 -1
  279. package/src/form/search/Search.tsx +11 -4
  280. package/src/form/search/SearchButton.tsx +8 -4
  281. package/src/form/useFormField.ts +1 -1
  282. package/src/grid/Cell.tsx +1 -1
  283. package/src/grid/ContentContainer.tsx +1 -1
  284. package/src/grid/Grid.tsx +1 -1
  285. package/src/grid/grid.stories.tsx +68 -0
  286. package/src/guide-panel/Guide.tsx +1 -1
  287. package/src/guide-panel/GuidePanel.tsx +1 -1
  288. package/src/help-text/HelpText.tsx +22 -8
  289. package/src/help-text/help-text.stories.tsx +12 -16
  290. package/src/index.ts +1 -7
  291. package/src/link/Link.tsx +1 -1
  292. package/src/link-panel/LinkPanel.tsx +1 -1
  293. package/src/link-panel/LinkPanelDescription.tsx +1 -1
  294. package/src/link-panel/LinkPanelTitle.tsx +1 -1
  295. package/src/loader/Loader.tsx +1 -1
  296. package/src/modal/Modal.tsx +6 -8
  297. package/src/modal/ModalContent.tsx +1 -1
  298. package/src/pagination/Pagination.tsx +87 -72
  299. package/src/pagination/PaginationItem.tsx +56 -0
  300. package/src/pagination/index.ts +1 -2
  301. package/src/pagination/pagination.stories.tsx +90 -16
  302. package/src/panel/Panel.tsx +1 -1
  303. package/src/popover/Popover.test.tsx +143 -0
  304. package/src/popover/Popover.tsx +107 -73
  305. package/src/popover/PopoverContent.tsx +1 -1
  306. package/src/popover/popover.stories.tsx +22 -27
  307. package/src/read-more/ReadMore.tsx +19 -30
  308. package/src/read-more/readmore.stories.tsx +3 -10
  309. package/src/stepper/Step.tsx +1 -1
  310. package/src/stepper/Stepper.tsx +1 -1
  311. package/src/table/Body.tsx +1 -1
  312. package/src/table/DataCell.tsx +1 -1
  313. package/src/table/ExpandableRow.tsx +12 -13
  314. package/src/table/Header.tsx +1 -1
  315. package/src/table/HeaderCell.tsx +1 -1
  316. package/src/table/Row.tsx +1 -1
  317. package/src/table/Table.tsx +1 -1
  318. package/src/tabs/Tab.tsx +6 -19
  319. package/src/tabs/TabList.tsx +14 -9
  320. package/src/tabs/TabPanel.tsx +1 -1
  321. package/src/tabs/Tabs.stories.tsx +94 -117
  322. package/src/tabs/Tabs.tsx +17 -1
  323. package/src/tag/Tag.tsx +1 -1
  324. package/src/toggle-group/ToggleGroup.tsx +3 -3
  325. package/src/toggle-group/ToggleItem.tsx +1 -1
  326. package/src/tooltip/Tooltip.test.tsx +167 -0
  327. package/src/tooltip/Tooltip.tsx +106 -173
  328. package/src/tooltip/tooltip.stories.tsx +15 -1
  329. package/src/typography/BodyLong.tsx +1 -1
  330. package/src/typography/BodyShort.tsx +1 -1
  331. package/src/typography/Detail.tsx +1 -1
  332. package/src/typography/ErrorMessage.tsx +1 -1
  333. package/src/typography/Heading.tsx +1 -1
  334. package/src/typography/Ingress.tsx +1 -1
  335. package/src/typography/Label.tsx +1 -1
  336. package/src/util/AnimateHeight.tsx +240 -0
  337. package/src/util/TextareaAutoSize.tsx +224 -0
  338. package/src/util/debounce.ts +17 -0
  339. package/src/util/index.ts +14 -2
  340. package/src/util/mergeRefs.tsx +14 -0
  341. package/src/util/useId.ts +37 -20
  342. package/cjs/card/MicroCard.js +0 -47
  343. package/cjs/card/index.js +0 -8
  344. package/cjs/card/package.json +0 -6
  345. package/cjs/menu/Menu.js +0 -53
  346. package/cjs/menu/MenuCollapse.js +0 -65
  347. package/cjs/menu/MenuItems.js +0 -23
  348. package/cjs/menu/package.json +0 -6
  349. package/cjs/page-header/PageHeader.js +0 -51
  350. package/cjs/page-header/index.js +0 -8
  351. package/cjs/page-header/package.json +0 -6
  352. package/cjs/speech-bubble/index.js +0 -8
  353. package/cjs/speech-bubble/package.json +0 -6
  354. package/cjs/step-indicator/Step.js +0 -67
  355. package/cjs/step-indicator/StepIndicator.js +0 -80
  356. package/cjs/step-indicator/index.js +0 -8
  357. package/cjs/step-indicator/package.json +0 -6
  358. package/esm/card/MicroCard.d.ts +0 -10
  359. package/esm/card/MicroCard.js +0 -19
  360. package/esm/card/MicroCard.js.map +0 -1
  361. package/esm/card/index.d.ts +0 -2
  362. package/esm/card/index.js +0 -2
  363. package/esm/card/index.js.map +0 -1
  364. package/esm/menu/Menu.d.ts +0 -12
  365. package/esm/menu/Menu.js +0 -25
  366. package/esm/menu/Menu.js.map +0 -1
  367. package/esm/menu/MenuCollapse.d.ts +0 -12
  368. package/esm/menu/MenuCollapse.js +0 -37
  369. package/esm/menu/MenuCollapse.js.map +0 -1
  370. package/esm/menu/MenuItem.d.ts +0 -13
  371. package/esm/menu/MenuItem.js.map +0 -1
  372. package/esm/menu/MenuItems.d.ts +0 -6
  373. package/esm/menu/MenuItems.js +0 -19
  374. package/esm/menu/MenuItems.js.map +0 -1
  375. package/esm/menu/index.d.ts +0 -3
  376. package/esm/menu/index.js +0 -2
  377. package/esm/menu/index.js.map +0 -1
  378. package/esm/page-header/PageHeader.d.ts +0 -27
  379. package/esm/page-header/PageHeader.js +0 -24
  380. package/esm/page-header/PageHeader.js.map +0 -1
  381. package/esm/page-header/index.d.ts +0 -2
  382. package/esm/page-header/index.js +0 -2
  383. package/esm/page-header/index.js.map +0 -1
  384. package/esm/speech-bubble/Bubble.js.map +0 -1
  385. package/esm/speech-bubble/SpeechBubble.d.ts +0 -34
  386. package/esm/speech-bubble/SpeechBubble.js +0 -27
  387. package/esm/speech-bubble/SpeechBubble.js.map +0 -1
  388. package/esm/speech-bubble/index.d.ts +0 -1
  389. package/esm/speech-bubble/index.js +0 -2
  390. package/esm/speech-bubble/index.js.map +0 -1
  391. package/esm/step-indicator/Step.d.ts +0 -23
  392. package/esm/step-indicator/Step.js +0 -39
  393. package/esm/step-indicator/Step.js.map +0 -1
  394. package/esm/step-indicator/StepIndicator.d.ts +0 -41
  395. package/esm/step-indicator/StepIndicator.js +0 -52
  396. package/esm/step-indicator/StepIndicator.js.map +0 -1
  397. package/esm/step-indicator/index.d.ts +0 -1
  398. package/esm/step-indicator/index.js +0 -2
  399. package/esm/step-indicator/index.js.map +0 -1
  400. package/src/card/MicroCard.tsx +0 -32
  401. package/src/card/index.ts +0 -2
  402. package/src/card/stories/card.stories.mdx +0 -26
  403. package/src/card/stories/card.stories.tsx +0 -16
  404. package/src/grid/stories/grid.stories.mdx +0 -79
  405. package/src/grid/stories/grid.stories.tsx +0 -51
  406. package/src/grid/stories/styles.css +0 -21
  407. package/src/menu/Menu.tsx +0 -36
  408. package/src/menu/MenuCollapse.tsx +0 -80
  409. package/src/menu/MenuItem.tsx +0 -39
  410. package/src/menu/MenuItems.tsx +0 -21
  411. package/src/menu/index.ts +0 -3
  412. package/src/menu/stories/menu.stories.mdx +0 -93
  413. package/src/menu/stories/menu.stories.tsx +0 -139
  414. package/src/page-header/PageHeader.tsx +0 -72
  415. package/src/page-header/index.ts +0 -2
  416. package/src/page-header/stories/header.stories.mdx +0 -81
  417. package/src/page-header/stories/header.stories.tsx +0 -61
  418. package/src/page-header/stories/pictogram.tsx +0 -14
  419. package/src/speech-bubble/Bubble.tsx +0 -48
  420. package/src/speech-bubble/SpeechBubble.tsx +0 -93
  421. package/src/speech-bubble/index.ts +0 -1
  422. package/src/speech-bubble/stories/illustration.tsx +0 -66
  423. package/src/speech-bubble/stories/speechbubble.stories.mdx +0 -184
  424. package/src/speech-bubble/stories/speechbubble.stories.tsx +0 -104
  425. package/src/step-indicator/Step.tsx +0 -81
  426. package/src/step-indicator/StepIndicator.tsx +0 -148
  427. package/src/step-indicator/index.ts +0 -1
  428. package/src/step-indicator/stories/Example.tsx +0 -23
  429. package/src/step-indicator/stories/step-indicator.stories.mdx +0 -122
  430. package/src/step-indicator/stories/step-indicator.stories.tsx +0 -104
@@ -0,0 +1,68 @@
1
+ import * as React from "react";
2
+ import { BodyLong } from "../..";
3
+ import { Grid, Cell, ContentContainer } from "../index";
4
+
5
+ export default {
6
+ title: "ds-react/Grid",
7
+ component: { Grid, Cell },
8
+ parameters: {
9
+ layout: "fullscreen",
10
+ },
11
+ };
12
+
13
+ export const Default = () => {
14
+ return (
15
+ <>
16
+ <ContentContainer>
17
+ <span>
18
+ Grid har ikke blitt oppdatert siden 2020 og vil på sikt få større
19
+ endringer eller deprecates. Vi anbefaler derfor å ikke ta vår
20
+ grid-løsning i bruk for nå.
21
+ </span>
22
+ <Grid>
23
+ <Cell className="cell" xs={12} sm={6} lg={4}>
24
+ Kolonne
25
+ </Cell>
26
+ <Cell className="cell" xs={12} sm={6} lg={4}>
27
+ Kolonne
28
+ </Cell>
29
+ <Cell className="cell" xs={12} sm={12} lg={4}>
30
+ Kolonne
31
+ </Cell>
32
+ </Grid>
33
+ <style>{`.cell {padding: 1rem; background: repeating-linear-gradient(
34
+ 45deg,
35
+ #d6d6d6,
36
+ #d6d6d6 10px,
37
+ transparent 10px,
38
+ transparent 20px
39
+ );}`}</style>
40
+ </ContentContainer>
41
+ </>
42
+ );
43
+ };
44
+
45
+ export const Contentcontainer = () => {
46
+ return (
47
+ <>
48
+ <ContentContainer className="container">
49
+ <BodyLong size="medium">-- Innhold --</BodyLong>
50
+ </ContentContainer>
51
+ <style>{`.container {
52
+ display: flex;
53
+ border-radius: var(--navds-border-radius-medium);
54
+ justify-content: center;
55
+ align-items: center;
56
+ margin-bottom: 1.5rem;
57
+ min-height: 10rem;
58
+ background: repeating-linear-gradient(
59
+ 45deg,
60
+ #d6d6d6,
61
+ #d6d6d6 10px,
62
+ transparent 10px,
63
+ transparent 20px
64
+ );
65
+ }`}</style>
66
+ </>
67
+ );
68
+ };
@@ -1,5 +1,5 @@
1
1
  import React, { forwardRef, HTMLAttributes } from "react";
2
- import cl from "classnames";
2
+ import cl from "clsx";
3
3
  import { DefaultIllustration } from "./Illustration";
4
4
  export interface GuideProps
5
5
  extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
@@ -1,6 +1,6 @@
1
1
  import React, { forwardRef, HTMLAttributes } from "react";
2
2
  import Guide from "./Guide";
3
- import cl from "classnames";
3
+ import cl from "clsx";
4
4
 
5
5
  export interface GuidePanelProps extends HTMLAttributes<HTMLDivElement> {
6
6
  /**
@@ -1,9 +1,7 @@
1
- import { Helptext as HelpTextIcon } from "@navikt/ds-icons";
2
- import { Placement } from "@popperjs/core";
3
- import cl from "classnames";
4
- import React, { forwardRef, useRef, useState } from "react";
5
- import mergeRefs from "react-merge-refs";
6
- import { Popover, PopoverProps } from "..";
1
+ import { Helptext as HelpTextIcon, HelptextFilled } from "@navikt/ds-icons";
2
+ import cl from "clsx";
3
+ import React, { forwardRef, useMemo, useRef, useState } from "react";
4
+ import { Popover, PopoverProps, mergeRefs } from "..";
7
5
 
8
6
  export interface HelpTextProps
9
7
  extends React.ButtonHTMLAttributes<HTMLButtonElement>,
@@ -21,7 +19,19 @@ export interface HelpTextProps
21
19
  * Default dialog-placement on open
22
20
  * @default "top"
23
21
  */
24
- placement?: Placement;
22
+ placement?:
23
+ | "top"
24
+ | "bottom"
25
+ | "right"
26
+ | "left"
27
+ | "top-start"
28
+ | "top-end"
29
+ | "bottom-start"
30
+ | "bottom-end"
31
+ | "right-start"
32
+ | "right-end"
33
+ | "left-start"
34
+ | "left-end";
25
35
  }
26
36
 
27
37
  export const HelpText = forwardRef<HTMLButtonElement, HelpTextProps>(
@@ -38,7 +48,7 @@ export const HelpText = forwardRef<HTMLButtonElement, HelpTextProps>(
38
48
  ref
39
49
  ) => {
40
50
  const buttonRef = useRef<HTMLButtonElement | null>(null);
41
- const mergedRef = mergeRefs([buttonRef, ref]);
51
+ const mergedRef = useMemo(() => mergeRefs([buttonRef, ref]), [ref]);
42
52
  const [open, setOpen] = useState(false);
43
53
 
44
54
  return (
@@ -55,6 +65,10 @@ export const HelpText = forwardRef<HTMLButtonElement, HelpTextProps>(
55
65
  aria-expanded={open}
56
66
  >
57
67
  <HelpTextIcon className="navds-help-text__icon" title={title} />
68
+ <HelptextFilled
69
+ className="navds-help-text__icon navds-help-text__icon--filled"
70
+ title={title}
71
+ />
58
72
  </button>
59
73
  <Popover
60
74
  onClose={() => setOpen(false)}
@@ -1,5 +1,5 @@
1
- import React from "react";
2
- import { TextField, HelpText } from "..";
1
+ import React, { useEffect, useRef } from "react";
2
+ import { HelpText } from "..";
3
3
 
4
4
  export default {
5
5
  title: "ds-react/HelpText",
@@ -9,6 +9,7 @@ export default {
9
9
  control: {
10
10
  type: "radio",
11
11
  options: [
12
+ "top",
12
13
  "bottom",
13
14
  "right",
14
15
  "left",
@@ -20,9 +21,6 @@ export default {
20
21
  "right-end",
21
22
  "left-start",
22
23
  "left-end",
23
- "auto",
24
- "auto-start",
25
- "auto-end",
26
24
  ],
27
25
  },
28
26
  },
@@ -47,17 +45,15 @@ Default.args = {
47
45
  title: "show tooltip",
48
46
  };
49
47
 
50
- export const Inline = () => {
48
+ export const Open = () => {
49
+ const ref = useRef<HTMLButtonElement | null>(null);
50
+ useEffect(() => {
51
+ ref.current && ref.current.click();
52
+ }, []);
53
+
51
54
  return (
52
- <TextField
53
- label={
54
- <div style={{ display: "flex", gap: 8 }}>
55
- Text field label
56
- <HelpText title="show tooltip">
57
- Id ullamco excepteur elit fugiat labore.
58
- </HelpText>
59
- </div>
60
- }
61
- />
55
+ <HelpText ref={ref} title="show tooltip" strategy="fixed">
56
+ Id ullamco excepteur elit fugiat labore.
57
+ </HelpText>
62
58
  );
63
59
  };
package/src/index.ts CHANGED
@@ -8,14 +8,12 @@ export * from "./guide-panel";
8
8
  export * from "./link";
9
9
  export * from "./link-panel";
10
10
  export * from "./loader";
11
- export * from "./menu";
12
11
  export * from "./modal";
13
12
  export * from "./pagination";
14
13
  export * from "./panel";
15
14
  export * from "./popover";
16
15
  export * from "./read-more";
17
- export * from "./speech-bubble";
18
- export * from "./step-indicator";
16
+ export * from "./chat";
19
17
  export * from "./stepper";
20
18
  export * from "./tag";
21
19
  export * from "./toggle-group";
@@ -24,7 +22,3 @@ export * from "./tabs";
24
22
  export * from "./tooltip";
25
23
  export * from "./typography";
26
24
  export * from "./util";
27
-
28
- /* Navno spesific packages */
29
- export * from "./card";
30
- export * from "./page-header";
package/src/link/Link.tsx CHANGED
@@ -1,5 +1,5 @@
1
1
  import React, { forwardRef } from "react";
2
- import cl from "classnames";
2
+ import cl from "clsx";
3
3
  import { OverridableComponent } from "..";
4
4
 
5
5
  export interface LinkProps
@@ -1,7 +1,7 @@
1
1
  import React, { forwardRef } from "react";
2
2
  import { Panel, OverridableComponent } from "..";
3
3
  import { Next } from "@navikt/ds-icons";
4
- import cl from "classnames";
4
+ import cl from "clsx";
5
5
  import { LinkPanelTitle, LinkPanelTitleType } from "./LinkPanelTitle";
6
6
  import {
7
7
  LinkPanelDescription,
@@ -1,5 +1,5 @@
1
1
  import React, { forwardRef } from "react";
2
- import cl from "classnames";
2
+ import cl from "clsx";
3
3
  import { BodyLong } from "..";
4
4
 
5
5
  interface LinkPanelDescriptionProps
@@ -1,5 +1,5 @@
1
1
  import React, { forwardRef } from "react";
2
- import cl from "classnames";
2
+ import cl from "clsx";
3
3
  import { OverridableComponent } from "..";
4
4
 
5
5
  interface LinkPanelTitleProps extends React.HTMLAttributes<HTMLDivElement> {
@@ -1,5 +1,5 @@
1
1
  import React, { forwardRef, SVGProps } from "react";
2
- import cl from "classnames";
2
+ import cl from "clsx";
3
3
  import { useId } from "..";
4
4
 
5
5
  export interface LoaderProps extends SVGProps<SVGSVGElement> {
@@ -1,9 +1,8 @@
1
- import React, { forwardRef, useRef } from "react";
2
- import cl from "classnames";
1
+ import React, { forwardRef, useMemo, useRef } from "react";
2
+ import cl from "clsx";
3
3
  import ReactModal from "react-modal";
4
- import mergeRefs from "react-merge-refs";
5
4
  import { Close } from "@navikt/ds-icons";
6
- import { Button } from "..";
5
+ import { Button, mergeRefs } from "..";
7
6
  import ModalContent, { ModalContentType } from "./ModalContent";
8
7
 
9
8
  export interface ModalProps {
@@ -77,7 +76,7 @@ export const Modal = forwardRef<ReactModal, ModalProps>(
77
76
  ref
78
77
  ) => {
79
78
  const modalRef = useRef<ReactModal | null>(null);
80
- const mergedRef = mergeRefs([modalRef, ref]);
79
+ const mergedRef = useMemo(() => mergeRefs([modalRef, ref]), [ref]);
81
80
  const buttonRef = useRef<HTMLButtonElement>(null);
82
81
 
83
82
  const onModalCloseRequest = (e) => {
@@ -114,9 +113,8 @@ export const Modal = forwardRef<ReactModal, ModalProps>(
114
113
  variant="tertiary"
115
114
  ref={buttonRef}
116
115
  onClick={onClose}
117
- >
118
- <Close title="Lukk modalvindu" />
119
- </Button>
116
+ icon={<Close title="Lukk modalvindu" />}
117
+ />
120
118
  )}
121
119
  </ReactModal>
122
120
  );
@@ -1,5 +1,5 @@
1
1
  import React, { forwardRef } from "react";
2
- import cl from "classnames";
2
+ import cl from "clsx";
3
3
 
4
4
  export interface ModalContentProps
5
5
  extends React.HTMLAttributes<HTMLDivElement> {
@@ -1,7 +1,11 @@
1
1
  import React, { forwardRef } from "react";
2
- import cl from "classnames";
2
+ import cl from "clsx";
3
3
  import { Back, Next } from "@navikt/ds-icons";
4
4
  import { BodyShort } from "..";
5
+ import PaginationItem, {
6
+ PaginationItemProps,
7
+ PaginationItemType,
8
+ } from "./PaginationItem";
5
9
 
6
10
  export interface PaginationProps extends React.HTMLAttributes<HTMLElement> {
7
11
  /**
@@ -22,7 +26,7 @@ export interface PaginationProps extends React.HTMLAttributes<HTMLElement> {
22
26
  /**
23
27
  * Callback when current page changes
24
28
  */
25
- onPageChange: (page: number) => void;
29
+ onPageChange?: (page: number) => void;
26
30
  /**
27
31
  * Total number of pages
28
32
  */
@@ -31,12 +35,24 @@ export interface PaginationProps extends React.HTMLAttributes<HTMLElement> {
31
35
  * Changes padding, height and font-size
32
36
  * @default "medium"
33
37
  */
34
- size?: "medium" | "small";
38
+ size?: "medium" | "small" | "xsmall";
35
39
  /**
36
40
  * Display text alongside "previous" and "next" icons
37
41
  * @default false
38
42
  */
39
43
  prevNextTexts?: boolean;
44
+ /**
45
+ * Override pagination item rendering
46
+ * @default (item: PaginationItemProps) => <PaginationItem {...item} />
47
+ */
48
+ renderItem?: (item: PaginationItemProps) => ReturnType<React.FC>;
49
+ }
50
+
51
+ interface PaginationType
52
+ extends React.ForwardRefExoticComponent<
53
+ PaginationProps & React.RefAttributes<HTMLElement>
54
+ > {
55
+ Item: PaginationItemType;
40
56
  }
41
57
 
42
58
  export const getSteps = ({
@@ -83,6 +99,9 @@ export const Pagination = forwardRef<HTMLElement, PaginationProps>(
83
99
  className,
84
100
  size = "medium",
85
101
  prevNextTexts = false,
102
+ renderItem: Item = (item: PaginationItemProps) => (
103
+ <PaginationItem {...item} />
104
+ ),
86
105
  ...rest
87
106
  },
88
107
  ref
@@ -114,99 +133,95 @@ export const Pagination = forwardRef<HTMLElement, PaginationProps>(
114
133
  className
115
134
  )}
116
135
  >
117
- {prevNextTexts && (
118
- <button
119
- className={cl("navds-pagination__prev-next", {
120
- "navds-pagination--invisible": page === 1,
121
- })}
122
- disabled={page === 1}
123
- onClick={() => onPageChange(page - 1)}
124
- >
125
- <Back
126
- className="navds-pagination__prev-next-icon"
127
- role="presentation"
128
- />
129
- <BodyShort size={size} className="navds-pagination__prev-text">
130
- Forrige
131
- </BodyShort>
132
- </button>
133
- )}
134
136
  <ul className="navds-pagination__list">
135
- {!prevNextTexts && (
136
- <li>
137
- <button
138
- className={cl("navds-pagination__prev-next", {
139
- "navds-pagination--invisible": page === 1,
140
- })}
141
- disabled={page === 1}
142
- onClick={() => onPageChange(page - 1)}
143
- >
137
+ <li>
138
+ <Item
139
+ className={cl("navds-pagination__prev-next", {
140
+ "navds-pagination--invisible": page === 1,
141
+ })}
142
+ disabled={page === 1}
143
+ onClick={() => onPageChange?.(page - 1)}
144
+ page={page - 1}
145
+ size={size}
146
+ icon={
144
147
  <Back
145
148
  className="navds-pagination__prev-next-icon"
146
- title="Forrige"
149
+ {...(prevNextTexts
150
+ ? { "aria-hidden": true }
151
+ : { title: "Forrige" })}
147
152
  />
148
- </button>
149
- </li>
150
- )}
153
+ }
154
+ >
155
+ {prevNextTexts && (
156
+ <BodyShort
157
+ size={size === "xsmall" ? "small" : size}
158
+ className="navds-pagination__prev-text"
159
+ >
160
+ Forrige
161
+ </BodyShort>
162
+ )}
163
+ </Item>
164
+ </li>
151
165
  {getSteps({ page, count, siblingCount, boundaryCount }).map(
152
166
  (step, i) => {
153
167
  const n = Number(step);
154
168
  return isNaN(n) ? (
155
169
  <li className="navds-pagination__ellipsis" key={`${step}${i}`}>
156
- <BodyShort size={size}>...</BodyShort>
170
+ <BodyShort size={size === "xsmall" ? "small" : size}>
171
+ ...
172
+ </BodyShort>
157
173
  </li>
158
174
  ) : (
159
175
  <li key={step}>
160
- <BodyShort
176
+ <Item
177
+ onClick={() => onPageChange?.(n)}
178
+ selected={page === n}
179
+ page={n}
161
180
  size={size}
162
- as="button"
163
- className="navds-pagination__item"
164
- onClick={() => onPageChange(n)}
165
- aria-current={page === n ? true : undefined}
166
181
  >
167
- {n}
168
- </BodyShort>
182
+ <BodyShort size={size === "xsmall" ? "small" : size}>
183
+ {n}
184
+ </BodyShort>
185
+ </Item>
169
186
  </li>
170
187
  );
171
188
  }
172
189
  )}
173
- {!prevNextTexts && (
174
- <li>
175
- <button
176
- className={cl("navds-pagination__prev-next", {
177
- "navds-pagination--invisible": page === count,
178
- })}
179
- disabled={page === count}
180
- onClick={() => onPageChange(page + 1)}
181
- >
190
+ <li>
191
+ <Item
192
+ className={cl("navds-pagination__prev-next", {
193
+ "navds-pagination--invisible": page === count,
194
+ })}
195
+ disabled={page === count}
196
+ onClick={() => onPageChange?.(page + 1)}
197
+ page={page + 1}
198
+ size={size}
199
+ icon={
182
200
  <Next
183
201
  className="navds-pagination__prev-next-icon"
184
- title="Neste"
202
+ {...(prevNextTexts
203
+ ? { "aria-hidden": true }
204
+ : { title: "Neste" })}
185
205
  />
186
- </button>
187
- </li>
188
- )}
206
+ }
207
+ iconPosition="right"
208
+ >
209
+ {prevNextTexts && (
210
+ <BodyShort
211
+ size={size === "xsmall" ? "small" : size}
212
+ className="navds-pagination__next-text"
213
+ >
214
+ Neste
215
+ </BodyShort>
216
+ )}
217
+ </Item>
218
+ </li>
189
219
  </ul>
190
- {prevNextTexts && (
191
- <button
192
- className={cl("navds-pagination__prev-next", {
193
- "navds-pagination--invisible": page === count,
194
- })}
195
- disabled={page === count}
196
- onClick={() => onPageChange(page + 1)}
197
- >
198
- <BodyShort size={size} className="navds-pagination__next-text">
199
- Neste
200
- </BodyShort>
201
- <Next
202
- className="navds-pagination__prev-next-icon"
203
- role="presentation"
204
- />
205
- </button>
206
- )}
207
220
  </nav>
208
221
  );
209
222
  }
210
- );
223
+ ) as PaginationType;
224
+
225
+ Pagination.Item = PaginationItem;
211
226
 
212
227
  export default Pagination;
@@ -0,0 +1,56 @@
1
+ import React, { forwardRef } from "react";
2
+ import cl from "clsx";
3
+ import { Button, ButtonProps, OverridableComponent } from "..";
4
+
5
+ export interface PaginationItemProps extends ButtonProps {
6
+ children: React.ReactNode;
7
+ /**
8
+ * Sets selected styling if true
9
+ * @default false
10
+ */
11
+ selected?: boolean;
12
+ /**
13
+ * The page the item represents
14
+ */
15
+ page: number;
16
+ /**
17
+ * Changes padding, height and font-size
18
+ * @default medium
19
+ */
20
+ size?: "medium" | "small" | "xsmall";
21
+ }
22
+
23
+ export type PaginationItemType = OverridableComponent<
24
+ PaginationItemProps,
25
+ HTMLAnchorElement
26
+ >;
27
+
28
+ export const Item: PaginationItemType = forwardRef(
29
+ (
30
+ {
31
+ children,
32
+ as: Component = "button",
33
+ selected = false,
34
+ className,
35
+ ...rest
36
+ },
37
+ ref
38
+ ) => {
39
+ return (
40
+ <Button
41
+ as={Component}
42
+ variant="tertiary"
43
+ aria-current={selected}
44
+ ref={ref}
45
+ className={cl("navds-pagination__item", className, {
46
+ "navds-pagination__item--selected": selected,
47
+ })}
48
+ {...rest}
49
+ >
50
+ {children}
51
+ </Button>
52
+ );
53
+ }
54
+ );
55
+
56
+ export default Item;
@@ -1,2 +1 @@
1
- export { default as Pagination } from "./Pagination";
2
- export { PaginationProps } from "./Pagination";
1
+ export { default as Pagination, PaginationProps } from "./Pagination";