@navikt/ds-react 0.19.17 → 1.0.0-rc.2

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 (416) hide show
  1. package/README.md +43 -0
  2. package/_docs.json +354 -491
  3. package/cjs/accordion/Accordion.js +2 -2
  4. package/cjs/accordion/AccordionContent.js +2 -2
  5. package/cjs/accordion/AccordionHeader.js +6 -5
  6. package/cjs/accordion/AccordionItem.js +2 -2
  7. package/cjs/alert/Alert.js +2 -2
  8. package/cjs/button/Button.js +3 -4
  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 +2 -2
  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 -2
  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 +4 -5
  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 +2 -2
  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 +4 -4
  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 +3 -3
  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/TextareaAutoSize.js +174 -0
  73. package/cjs/util/debounce.js +18 -0
  74. package/cjs/util/index.js +14 -1
  75. package/cjs/util/mergeRefs.js +16 -0
  76. package/cjs/util/useId.js +60 -17
  77. package/esm/accordion/Accordion.js +1 -1
  78. package/esm/accordion/Accordion.js.map +1 -1
  79. package/esm/accordion/AccordionContent.js +1 -1
  80. package/esm/accordion/AccordionContent.js.map +1 -1
  81. package/esm/accordion/AccordionHeader.js +3 -2
  82. package/esm/accordion/AccordionHeader.js.map +1 -1
  83. package/esm/accordion/AccordionItem.js +1 -1
  84. package/esm/accordion/AccordionItem.js.map +1 -1
  85. package/esm/alert/Alert.d.ts +1 -1
  86. package/esm/alert/Alert.js +1 -1
  87. package/esm/alert/Alert.js.map +1 -1
  88. package/esm/button/Button.js +4 -5
  89. package/esm/button/Button.js.map +1 -1
  90. package/esm/{speech-bubble → chat}/Bubble.d.ts +7 -3
  91. package/esm/{speech-bubble → chat}/Bubble.js +7 -4
  92. package/esm/chat/Bubble.js.map +1 -0
  93. package/esm/chat/Chat.d.ts +38 -0
  94. package/esm/chat/Chat.js +28 -0
  95. package/esm/chat/Chat.js.map +1 -0
  96. package/esm/chat/index.d.ts +1 -0
  97. package/esm/chat/index.js +2 -0
  98. package/esm/chat/index.js.map +1 -0
  99. package/esm/form/ConfirmationPanel.js +1 -1
  100. package/esm/form/ConfirmationPanel.js.map +1 -1
  101. package/esm/form/Fieldset/Fieldset.js +1 -1
  102. package/esm/form/Fieldset/Fieldset.js.map +1 -1
  103. package/esm/form/Select.js +1 -1
  104. package/esm/form/Select.js.map +1 -1
  105. package/esm/form/Switch.js +1 -1
  106. package/esm/form/Switch.js.map +1 -1
  107. package/esm/form/TextField.js +1 -1
  108. package/esm/form/TextField.js.map +1 -1
  109. package/esm/form/Textarea.js +6 -6
  110. package/esm/form/Textarea.js.map +1 -1
  111. package/esm/form/checkbox/Checkbox.js +1 -1
  112. package/esm/form/checkbox/Checkbox.js.map +1 -1
  113. package/esm/form/checkbox/CheckboxGroup.js +1 -1
  114. package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
  115. package/esm/form/error-summary/ErrorSummary.js +3 -3
  116. package/esm/form/error-summary/ErrorSummary.js.map +1 -1
  117. package/esm/form/error-summary/ErrorSummaryItem.js +1 -1
  118. package/esm/form/error-summary/ErrorSummaryItem.js.map +1 -1
  119. package/esm/form/radio/Radio.js +1 -1
  120. package/esm/form/radio/Radio.js.map +1 -1
  121. package/esm/form/radio/RadioGroup.js +1 -1
  122. package/esm/form/radio/RadioGroup.js.map +1 -1
  123. package/esm/form/search/Search.js +4 -5
  124. package/esm/form/search/Search.js.map +1 -1
  125. package/esm/form/search/SearchButton.js +1 -1
  126. package/esm/form/search/SearchButton.js.map +1 -1
  127. package/esm/form/useFormField.js +1 -1
  128. package/esm/form/useFormField.js.map +1 -1
  129. package/esm/grid/Cell.js +1 -1
  130. package/esm/grid/Cell.js.map +1 -1
  131. package/esm/grid/ContentContainer.js +1 -1
  132. package/esm/grid/ContentContainer.js.map +1 -1
  133. package/esm/grid/Grid.js +1 -1
  134. package/esm/grid/Grid.js.map +1 -1
  135. package/esm/guide-panel/Guide.js +1 -1
  136. package/esm/guide-panel/Guide.js.map +1 -1
  137. package/esm/guide-panel/GuidePanel.js +1 -1
  138. package/esm/guide-panel/GuidePanel.js.map +1 -1
  139. package/esm/help-text/HelpText.d.ts +1 -2
  140. package/esm/help-text/HelpText.js +7 -7
  141. package/esm/help-text/HelpText.js.map +1 -1
  142. package/esm/index.d.ts +1 -5
  143. package/esm/index.js +1 -6
  144. package/esm/index.js.map +1 -1
  145. package/esm/link/Link.js +1 -1
  146. package/esm/link/Link.js.map +1 -1
  147. package/esm/link-panel/LinkPanel.js +1 -1
  148. package/esm/link-panel/LinkPanel.js.map +1 -1
  149. package/esm/link-panel/LinkPanelDescription.js +1 -1
  150. package/esm/link-panel/LinkPanelDescription.js.map +1 -1
  151. package/esm/link-panel/LinkPanelTitle.js +1 -1
  152. package/esm/link-panel/LinkPanelTitle.js.map +1 -1
  153. package/esm/loader/Loader.js +1 -1
  154. package/esm/loader/Loader.js.map +1 -1
  155. package/esm/modal/Modal.js +4 -5
  156. package/esm/modal/Modal.js.map +1 -1
  157. package/esm/modal/ModalContent.js +1 -1
  158. package/esm/modal/ModalContent.js.map +1 -1
  159. package/esm/pagination/Pagination.d.ts +12 -3
  160. package/esm/pagination/Pagination.js +17 -22
  161. package/esm/pagination/Pagination.js.map +1 -1
  162. package/esm/pagination/PaginationItem.d.ts +22 -0
  163. package/esm/{menu/MenuItem.js → pagination/PaginationItem.js} +6 -5
  164. package/esm/pagination/PaginationItem.js.map +1 -0
  165. package/esm/pagination/index.d.ts +1 -2
  166. package/esm/pagination/index.js.map +1 -1
  167. package/esm/panel/Panel.js +1 -1
  168. package/esm/panel/Panel.js.map +1 -1
  169. package/esm/popover/Popover.d.ts +2 -3
  170. package/esm/popover/Popover.js +56 -46
  171. package/esm/popover/Popover.js.map +1 -1
  172. package/esm/popover/PopoverContent.js +1 -1
  173. package/esm/popover/PopoverContent.js.map +1 -1
  174. package/esm/read-more/ReadMore.js +1 -1
  175. package/esm/read-more/ReadMore.js.map +1 -1
  176. package/esm/stepper/Step.js +1 -1
  177. package/esm/stepper/Step.js.map +1 -1
  178. package/esm/stepper/Stepper.js +1 -1
  179. package/esm/stepper/Stepper.js.map +1 -1
  180. package/esm/table/Body.js +1 -1
  181. package/esm/table/Body.js.map +1 -1
  182. package/esm/table/DataCell.js +1 -1
  183. package/esm/table/DataCell.js.map +1 -1
  184. package/esm/table/ExpandableRow.js +2 -2
  185. package/esm/table/ExpandableRow.js.map +1 -1
  186. package/esm/table/Header.js +1 -1
  187. package/esm/table/Header.js.map +1 -1
  188. package/esm/table/HeaderCell.js +1 -1
  189. package/esm/table/HeaderCell.js.map +1 -1
  190. package/esm/table/Row.js +1 -1
  191. package/esm/table/Row.js.map +1 -1
  192. package/esm/table/Table.js +1 -1
  193. package/esm/table/Table.js.map +1 -1
  194. package/esm/tabs/Tab.d.ts +0 -5
  195. package/esm/tabs/Tab.js +4 -4
  196. package/esm/tabs/Tab.js.map +1 -1
  197. package/esm/tabs/TabList.d.ts +0 -4
  198. package/esm/tabs/TabList.js +7 -6
  199. package/esm/tabs/TabList.js.map +1 -1
  200. package/esm/tabs/TabPanel.js +1 -1
  201. package/esm/tabs/TabPanel.js.map +1 -1
  202. package/esm/tabs/Tabs.d.ts +12 -0
  203. package/esm/tabs/Tabs.js +4 -2
  204. package/esm/tabs/Tabs.js.map +1 -1
  205. package/esm/tag/Tag.js +1 -1
  206. package/esm/tag/Tag.js.map +1 -1
  207. package/esm/toggle-group/ToggleGroup.js +3 -3
  208. package/esm/toggle-group/ToggleGroup.js.map +1 -1
  209. package/esm/toggle-group/ToggleItem.js +1 -1
  210. package/esm/toggle-group/ToggleItem.js.map +1 -1
  211. package/esm/tooltip/Tooltip.js +44 -91
  212. package/esm/tooltip/Tooltip.js.map +1 -1
  213. package/esm/typography/BodyLong.js +1 -1
  214. package/esm/typography/BodyLong.js.map +1 -1
  215. package/esm/typography/BodyShort.js +1 -1
  216. package/esm/typography/BodyShort.js.map +1 -1
  217. package/esm/typography/Detail.js +1 -1
  218. package/esm/typography/Detail.js.map +1 -1
  219. package/esm/typography/ErrorMessage.js +1 -1
  220. package/esm/typography/ErrorMessage.js.map +1 -1
  221. package/esm/typography/Heading.js +1 -1
  222. package/esm/typography/Heading.js.map +1 -1
  223. package/esm/typography/Ingress.js +1 -1
  224. package/esm/typography/Ingress.js.map +1 -1
  225. package/esm/typography/Label.js +1 -1
  226. package/esm/typography/Label.js.map +1 -1
  227. package/esm/util/TextareaAutoSize.d.ts +14 -0
  228. package/esm/util/TextareaAutoSize.js +150 -0
  229. package/esm/util/TextareaAutoSize.js.map +1 -0
  230. package/esm/util/debounce.d.ts +4 -0
  231. package/esm/util/debounce.js +16 -0
  232. package/esm/util/debounce.js.map +1 -0
  233. package/esm/util/index.d.ts +4 -0
  234. package/esm/util/index.js +9 -1
  235. package/esm/util/index.js.map +1 -1
  236. package/esm/util/mergeRefs.d.ts +2 -0
  237. package/esm/util/mergeRefs.js +14 -0
  238. package/esm/util/mergeRefs.js.map +1 -0
  239. package/esm/util/useId.d.ts +7 -3
  240. package/esm/util/useId.js +36 -16
  241. package/esm/util/useId.js.map +1 -1
  242. package/package.json +13 -14
  243. package/src/accordion/Accordion.tsx +1 -1
  244. package/src/accordion/AccordionContent.tsx +1 -1
  245. package/src/accordion/AccordionHeader.tsx +2 -2
  246. package/src/accordion/AccordionItem.tsx +1 -1
  247. package/src/alert/Alert.tsx +2 -2
  248. package/src/alert/alert.stories.tsx +7 -0
  249. package/src/button/Button.tsx +5 -5
  250. package/src/chat/Bubble.tsx +52 -0
  251. package/src/chat/Chat.tsx +96 -0
  252. package/src/chat/chat.stories.tsx +202 -0
  253. package/src/chat/index.ts +1 -0
  254. package/src/form/ConfirmationPanel.tsx +1 -1
  255. package/src/form/Fieldset/Fieldset.tsx +1 -1
  256. package/src/form/Select.tsx +1 -1
  257. package/src/form/Switch.tsx +1 -1
  258. package/src/form/TextField.tsx +1 -1
  259. package/src/form/Textarea.tsx +6 -6
  260. package/src/form/checkbox/Checkbox.test.tsx +20 -17
  261. package/src/form/checkbox/Checkbox.tsx +1 -1
  262. package/src/form/checkbox/CheckboxGroup.tsx +1 -1
  263. package/src/form/error-summary/ErrorSummary.tsx +3 -3
  264. package/src/form/error-summary/ErrorSummaryItem.tsx +1 -1
  265. package/src/form/radio/Radio.tsx +1 -1
  266. package/src/form/radio/RadioGroup.tsx +1 -1
  267. package/src/form/search/Search.tsx +11 -4
  268. package/src/form/search/SearchButton.tsx +1 -1
  269. package/src/form/useFormField.ts +1 -1
  270. package/src/grid/Cell.tsx +1 -1
  271. package/src/grid/ContentContainer.tsx +1 -1
  272. package/src/grid/Grid.tsx +1 -1
  273. package/src/grid/grid.stories.tsx +68 -0
  274. package/src/guide-panel/Guide.tsx +1 -1
  275. package/src/guide-panel/GuidePanel.tsx +1 -1
  276. package/src/help-text/HelpText.tsx +22 -8
  277. package/src/help-text/help-text.stories.tsx +12 -16
  278. package/src/index.ts +1 -7
  279. package/src/link/Link.tsx +1 -1
  280. package/src/link-panel/LinkPanel.tsx +1 -1
  281. package/src/link-panel/LinkPanelDescription.tsx +1 -1
  282. package/src/link-panel/LinkPanelTitle.tsx +1 -1
  283. package/src/loader/Loader.tsx +1 -1
  284. package/src/modal/Modal.tsx +4 -5
  285. package/src/modal/ModalContent.tsx +1 -1
  286. package/src/pagination/Pagination.tsx +84 -78
  287. package/src/pagination/PaginationItem.tsx +57 -0
  288. package/src/pagination/index.ts +1 -2
  289. package/src/pagination/pagination.stories.tsx +90 -16
  290. package/src/panel/Panel.tsx +1 -1
  291. package/src/popover/Popover.test.tsx +143 -0
  292. package/src/popover/Popover.tsx +107 -73
  293. package/src/popover/PopoverContent.tsx +1 -1
  294. package/src/popover/popover.stories.tsx +22 -27
  295. package/src/read-more/ReadMore.tsx +1 -1
  296. package/src/stepper/Step.tsx +1 -1
  297. package/src/stepper/Stepper.tsx +1 -1
  298. package/src/table/Body.tsx +1 -1
  299. package/src/table/DataCell.tsx +1 -1
  300. package/src/table/ExpandableRow.tsx +2 -2
  301. package/src/table/Header.tsx +1 -1
  302. package/src/table/HeaderCell.tsx +1 -1
  303. package/src/table/Row.tsx +1 -1
  304. package/src/table/Table.tsx +1 -1
  305. package/src/tabs/Tab.tsx +5 -10
  306. package/src/tabs/TabList.tsx +14 -9
  307. package/src/tabs/TabPanel.tsx +1 -1
  308. package/src/tabs/Tabs.stories.tsx +94 -117
  309. package/src/tabs/Tabs.tsx +17 -1
  310. package/src/tag/Tag.tsx +1 -1
  311. package/src/toggle-group/ToggleGroup.tsx +3 -3
  312. package/src/toggle-group/ToggleItem.tsx +1 -1
  313. package/src/tooltip/Tooltip.test.tsx +167 -0
  314. package/src/tooltip/Tooltip.tsx +106 -173
  315. package/src/tooltip/tooltip.stories.tsx +15 -1
  316. package/src/typography/BodyLong.tsx +1 -1
  317. package/src/typography/BodyShort.tsx +1 -1
  318. package/src/typography/Detail.tsx +1 -1
  319. package/src/typography/ErrorMessage.tsx +1 -1
  320. package/src/typography/Heading.tsx +1 -1
  321. package/src/typography/Ingress.tsx +1 -1
  322. package/src/typography/Label.tsx +1 -1
  323. package/src/util/TextareaAutoSize.tsx +224 -0
  324. package/src/util/debounce.ts +17 -0
  325. package/src/util/index.ts +14 -2
  326. package/src/util/mergeRefs.tsx +14 -0
  327. package/src/util/useId.ts +37 -20
  328. package/cjs/card/MicroCard.js +0 -47
  329. package/cjs/card/index.js +0 -8
  330. package/cjs/card/package.json +0 -6
  331. package/cjs/menu/Menu.js +0 -53
  332. package/cjs/menu/MenuCollapse.js +0 -65
  333. package/cjs/menu/MenuItems.js +0 -23
  334. package/cjs/menu/package.json +0 -6
  335. package/cjs/page-header/PageHeader.js +0 -51
  336. package/cjs/page-header/index.js +0 -8
  337. package/cjs/page-header/package.json +0 -6
  338. package/cjs/speech-bubble/index.js +0 -8
  339. package/cjs/speech-bubble/package.json +0 -6
  340. package/cjs/step-indicator/Step.js +0 -67
  341. package/cjs/step-indicator/StepIndicator.js +0 -80
  342. package/cjs/step-indicator/index.js +0 -8
  343. package/cjs/step-indicator/package.json +0 -6
  344. package/esm/card/MicroCard.d.ts +0 -10
  345. package/esm/card/MicroCard.js +0 -19
  346. package/esm/card/MicroCard.js.map +0 -1
  347. package/esm/card/index.d.ts +0 -2
  348. package/esm/card/index.js +0 -2
  349. package/esm/card/index.js.map +0 -1
  350. package/esm/menu/Menu.d.ts +0 -12
  351. package/esm/menu/Menu.js +0 -25
  352. package/esm/menu/Menu.js.map +0 -1
  353. package/esm/menu/MenuCollapse.d.ts +0 -12
  354. package/esm/menu/MenuCollapse.js +0 -37
  355. package/esm/menu/MenuCollapse.js.map +0 -1
  356. package/esm/menu/MenuItem.d.ts +0 -13
  357. package/esm/menu/MenuItem.js.map +0 -1
  358. package/esm/menu/MenuItems.d.ts +0 -6
  359. package/esm/menu/MenuItems.js +0 -19
  360. package/esm/menu/MenuItems.js.map +0 -1
  361. package/esm/menu/index.d.ts +0 -3
  362. package/esm/menu/index.js +0 -2
  363. package/esm/menu/index.js.map +0 -1
  364. package/esm/page-header/PageHeader.d.ts +0 -27
  365. package/esm/page-header/PageHeader.js +0 -24
  366. package/esm/page-header/PageHeader.js.map +0 -1
  367. package/esm/page-header/index.d.ts +0 -2
  368. package/esm/page-header/index.js +0 -2
  369. package/esm/page-header/index.js.map +0 -1
  370. package/esm/speech-bubble/Bubble.js.map +0 -1
  371. package/esm/speech-bubble/SpeechBubble.d.ts +0 -34
  372. package/esm/speech-bubble/SpeechBubble.js +0 -27
  373. package/esm/speech-bubble/SpeechBubble.js.map +0 -1
  374. package/esm/speech-bubble/index.d.ts +0 -1
  375. package/esm/speech-bubble/index.js +0 -2
  376. package/esm/speech-bubble/index.js.map +0 -1
  377. package/esm/step-indicator/Step.d.ts +0 -23
  378. package/esm/step-indicator/Step.js +0 -39
  379. package/esm/step-indicator/Step.js.map +0 -1
  380. package/esm/step-indicator/StepIndicator.d.ts +0 -41
  381. package/esm/step-indicator/StepIndicator.js +0 -52
  382. package/esm/step-indicator/StepIndicator.js.map +0 -1
  383. package/esm/step-indicator/index.d.ts +0 -1
  384. package/esm/step-indicator/index.js +0 -2
  385. package/esm/step-indicator/index.js.map +0 -1
  386. package/src/card/MicroCard.tsx +0 -32
  387. package/src/card/index.ts +0 -2
  388. package/src/card/stories/card.stories.mdx +0 -26
  389. package/src/card/stories/card.stories.tsx +0 -16
  390. package/src/grid/stories/grid.stories.mdx +0 -79
  391. package/src/grid/stories/grid.stories.tsx +0 -51
  392. package/src/grid/stories/styles.css +0 -21
  393. package/src/menu/Menu.tsx +0 -36
  394. package/src/menu/MenuCollapse.tsx +0 -80
  395. package/src/menu/MenuItem.tsx +0 -39
  396. package/src/menu/MenuItems.tsx +0 -21
  397. package/src/menu/index.ts +0 -3
  398. package/src/menu/stories/menu.stories.mdx +0 -93
  399. package/src/menu/stories/menu.stories.tsx +0 -139
  400. package/src/page-header/PageHeader.tsx +0 -72
  401. package/src/page-header/index.ts +0 -2
  402. package/src/page-header/stories/header.stories.mdx +0 -81
  403. package/src/page-header/stories/header.stories.tsx +0 -61
  404. package/src/page-header/stories/pictogram.tsx +0 -14
  405. package/src/speech-bubble/Bubble.tsx +0 -48
  406. package/src/speech-bubble/SpeechBubble.tsx +0 -93
  407. package/src/speech-bubble/index.ts +0 -1
  408. package/src/speech-bubble/stories/illustration.tsx +0 -66
  409. package/src/speech-bubble/stories/speechbubble.stories.mdx +0 -184
  410. package/src/speech-bubble/stories/speechbubble.stories.tsx +0 -104
  411. package/src/step-indicator/Step.tsx +0 -81
  412. package/src/step-indicator/StepIndicator.tsx +0 -148
  413. package/src/step-indicator/index.ts +0 -1
  414. package/src/step-indicator/stories/Example.tsx +0 -23
  415. package/src/step-indicator/stories/step-indicator.stories.mdx +0 -122
  416. 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) => {
@@ -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,86 @@ 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
- >
144
- <Back
145
- className="navds-pagination__prev-next-icon"
146
- title="Forrige"
147
- />
148
- </button>
149
- </li>
150
- )}
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
+ >
147
+ <Back
148
+ className="navds-pagination__prev-next-icon"
149
+ title="Forrige"
150
+ />
151
+ {prevNextTexts && (
152
+ <BodyShort
153
+ size={size === "xsmall" ? "small" : size}
154
+ className="navds-pagination__prev-text"
155
+ >
156
+ Forrige
157
+ </BodyShort>
158
+ )}
159
+ </Item>
160
+ </li>
151
161
  {getSteps({ page, count, siblingCount, boundaryCount }).map(
152
162
  (step, i) => {
153
163
  const n = Number(step);
154
164
  return isNaN(n) ? (
155
165
  <li className="navds-pagination__ellipsis" key={`${step}${i}`}>
156
- <BodyShort size={size}>...</BodyShort>
166
+ <BodyShort size={size === "xsmall" ? "small" : size}>
167
+ ...
168
+ </BodyShort>
157
169
  </li>
158
170
  ) : (
159
171
  <li key={step}>
160
- <BodyShort
172
+ <Item
173
+ onClick={() => onPageChange?.(n)}
174
+ selected={page === n}
175
+ page={n}
161
176
  size={size}
162
- as="button"
163
- className="navds-pagination__item"
164
- onClick={() => onPageChange(n)}
165
- aria-current={page === n ? true : undefined}
166
177
  >
167
- {n}
168
- </BodyShort>
178
+ <BodyShort size={size === "xsmall" ? "small" : size}>
179
+ {n}
180
+ </BodyShort>
181
+ </Item>
169
182
  </li>
170
183
  );
171
184
  }
172
185
  )}
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
- >
182
- <Next
183
- className="navds-pagination__prev-next-icon"
184
- title="Neste"
185
- />
186
- </button>
187
- </li>
188
- )}
186
+ <li>
187
+ <Item
188
+ className={cl("navds-pagination__prev-next", {
189
+ "navds-pagination--invisible": page === count,
190
+ })}
191
+ disabled={page === count}
192
+ onClick={() => onPageChange?.(page + 1)}
193
+ page={page + 1}
194
+ size={size}
195
+ >
196
+ {prevNextTexts && (
197
+ <BodyShort
198
+ size={size === "xsmall" ? "small" : size}
199
+ className="navds-pagination__next-text"
200
+ >
201
+ Neste
202
+ </BodyShort>
203
+ )}
204
+ <Next
205
+ className="navds-pagination__prev-next-icon"
206
+ title="Neste"
207
+ />
208
+ </Item>
209
+ </li>
189
210
  </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
211
  </nav>
208
212
  );
209
213
  }
210
- );
214
+ ) as PaginationType;
215
+
216
+ Pagination.Item = PaginationItem;
211
217
 
212
218
  export default Pagination;
@@ -0,0 +1,57 @@
1
+ import React, { forwardRef } from "react";
2
+ import cl from "clsx";
3
+ import { Button, OverridableComponent } from "..";
4
+
5
+ export interface PaginationItemProps
6
+ extends React.ButtonHTMLAttributes<HTMLButtonElement> {
7
+ children: React.ReactNode;
8
+ /**
9
+ * Sets selected styling if true
10
+ * @default false
11
+ */
12
+ selected?: boolean;
13
+ /**
14
+ * The page the item represents
15
+ */
16
+ page: number;
17
+ /**
18
+ * Changes padding, height and font-size
19
+ * @default medium
20
+ */
21
+ size?: "medium" | "small" | "xsmall";
22
+ }
23
+
24
+ export type PaginationItemType = OverridableComponent<
25
+ PaginationItemProps,
26
+ HTMLAnchorElement
27
+ >;
28
+
29
+ export const Item: PaginationItemType = forwardRef(
30
+ (
31
+ {
32
+ children,
33
+ as: Component = "button",
34
+ selected = false,
35
+ className,
36
+ ...rest
37
+ },
38
+ ref
39
+ ) => {
40
+ return (
41
+ <Button
42
+ as={Component}
43
+ variant="tertiary"
44
+ aria-current={selected}
45
+ ref={ref}
46
+ className={cl("navds-pagination__item", className, {
47
+ "navds-pagination__item--selected": selected,
48
+ })}
49
+ {...rest}
50
+ >
51
+ {children}
52
+ </Button>
53
+ );
54
+ }
55
+ );
56
+
57
+ 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";