@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
@@ -10,7 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { forwardRef } from "react";
13
- import cl from "classnames";
13
+ import cl from "clsx";
14
14
  export const BodyLong = forwardRef((_a, ref) => {
15
15
  var { className, size = "medium", spacing, as: Component = "p" } = _a, rest = __rest(_a, ["className", "size", "spacing", "as"]);
16
16
  return (React.createElement(Component, Object.assign({}, rest, { ref: ref, className: cl(className, "navds-body-long", {
@@ -1 +1 @@
1
- {"version":3,"file":"BodyLong.js","sourceRoot":"","sources":["../../src/typography/BodyLong.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAoB5B,MAAM,CAAC,MAAM,QAAQ,GAGjB,UAAU,CACZ,CACE,EAAqE,EACrE,GAAG,EACH,EAAE;QAFF,EAAE,SAAS,EAAE,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,GAAG,OAAW,EAAN,IAAI,cAAnE,sCAAqE,CAAF;IAEhE,OAAA,CACH,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE;YAC1C,wBAAwB,EAAE,IAAI,KAAK,OAAO;YAC1C,qBAAqB,EAAE,CAAC,CAAC,OAAO;SACjC,CAAC,IACF,CACH,CAAA;CAAA,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"BodyLong.js","sourceRoot":"","sources":["../../src/typography/BodyLong.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AAoBtB,MAAM,CAAC,MAAM,QAAQ,GAGjB,UAAU,CACZ,CACE,EAAqE,EACrE,GAAG,EACH,EAAE;QAFF,EAAE,SAAS,EAAE,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,GAAG,OAAW,EAAN,IAAI,cAAnE,sCAAqE,CAAF;IAEhE,OAAA,CACH,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE;YAC1C,wBAAwB,EAAE,IAAI,KAAK,OAAO;YAC1C,qBAAqB,EAAE,CAAC,CAAC,OAAO;SACjC,CAAC,IACF,CACH,CAAA;CAAA,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -10,7 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { forwardRef } from "react";
13
- import cl from "classnames";
13
+ import cl from "clsx";
14
14
  export const BodyShort = forwardRef((_a, ref) => {
15
15
  var { className, size = "medium", spacing, as: Component = "p" } = _a, rest = __rest(_a, ["className", "size", "spacing", "as"]);
16
16
  return (React.createElement(Component, Object.assign({}, rest, { ref: ref, className: cl(className, "navds-body-short", {
@@ -1 +1 @@
1
- {"version":3,"file":"BodyShort.js","sourceRoot":"","sources":["../../src/typography/BodyShort.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAoB5B,MAAM,CAAC,MAAM,SAAS,GAGlB,UAAU,CACZ,CACE,EAAqE,EACrE,GAAG,EACH,EAAE;QAFF,EAAE,SAAS,EAAE,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,GAAG,OAAW,EAAN,IAAI,cAAnE,sCAAqE,CAAF;IAEhE,OAAA,CACH,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,kBAAkB,EAAE;YAC3C,yBAAyB,EAAE,IAAI,KAAK,OAAO;YAC3C,qBAAqB,EAAE,CAAC,CAAC,OAAO;SACjC,CAAC,IACF,CACH,CAAA;CAAA,CACF,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"BodyShort.js","sourceRoot":"","sources":["../../src/typography/BodyShort.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AAoBtB,MAAM,CAAC,MAAM,SAAS,GAGlB,UAAU,CACZ,CACE,EAAqE,EACrE,GAAG,EACH,EAAE;QAFF,EAAE,SAAS,EAAE,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,GAAG,OAAW,EAAN,IAAI,cAAnE,sCAAqE,CAAF;IAEhE,OAAA,CACH,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,kBAAkB,EAAE;YAC3C,yBAAyB,EAAE,IAAI,KAAK,OAAO;YAC3C,qBAAqB,EAAE,CAAC,CAAC,OAAO;SACjC,CAAC,IACF,CACH,CAAA;CAAA,CACF,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -10,7 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { forwardRef } from "react";
13
- import cl from "classnames";
13
+ import cl from "clsx";
14
14
  export const Detail = forwardRef((_a, ref) => {
15
15
  var { className, size = "medium", spacing, uppercase, as: Component = "p" } = _a, rest = __rest(_a, ["className", "size", "spacing", "uppercase", "as"]);
16
16
  return (React.createElement(Component, Object.assign({}, rest, { ref: ref, className: cl(className, "navds-detail", {
@@ -1 +1 @@
1
- {"version":3,"file":"Detail.js","sourceRoot":"","sources":["../../src/typography/Detail.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAwB5B,MAAM,CAAC,MAAM,MAAM,GACjB,UAAU,CACR,CACE,EAOC,EACD,GAAG,EACH,EAAE;QATF,EACE,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,OAAO,EACP,SAAS,EACT,EAAE,EAAE,SAAS,GAAG,GAAG,OAEpB,EADI,IAAI,cANT,mDAOC,CADQ;IAGN,OAAA,CACH,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE;YACvC,qBAAqB,EAAE,IAAI,KAAK,OAAO;YACvC,qBAAqB,EAAE,CAAC,CAAC,OAAO;YAChC,uBAAuB,EAAE,CAAC,CAAC,SAAS;SACrC,CAAC,IACF,CACH,CAAA;CAAA,CACF,CAAC;AAEJ,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Detail.js","sourceRoot":"","sources":["../../src/typography/Detail.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AAwBtB,MAAM,CAAC,MAAM,MAAM,GACjB,UAAU,CACR,CACE,EAOC,EACD,GAAG,EACH,EAAE;QATF,EACE,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,OAAO,EACP,SAAS,EACT,EAAE,EAAE,SAAS,GAAG,GAAG,OAEpB,EADI,IAAI,cANT,mDAOC,CADQ;IAGN,OAAA,CACH,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE;YACvC,qBAAqB,EAAE,IAAI,KAAK,OAAO;YACvC,qBAAqB,EAAE,CAAC,CAAC,OAAO;YAChC,uBAAuB,EAAE,CAAC,CAAC,SAAS;SACrC,CAAC,IACF,CACH,CAAA;CAAA,CACF,CAAC;AAEJ,eAAe,MAAM,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import cl from "classnames";
2
+ import cl from "clsx";
3
3
  import { Label } from "..";
4
4
  const ErrorMessage = (props) => (React.createElement(Label, Object.assign({}, props, { as: "div", className: cl("navds-error-message", props.className) })));
5
5
  export default ErrorMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorMessage.js","sourceRoot":"","sources":["../../src/typography/ErrorMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAe3B,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAC9B,oBAAC,KAAK,oBACA,KAAK,IACT,EAAE,EAAC,KAAK,EACR,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAC,IACrD,CACH,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"ErrorMessage.js","sourceRoot":"","sources":["../../src/typography/ErrorMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAe3B,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAC9B,oBAAC,KAAK,oBACA,KAAK,IACT,EAAE,EAAC,KAAK,EACR,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAC,IACrD,CACH,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -10,7 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { forwardRef } from "react";
13
- import cl from "classnames";
13
+ import cl from "clsx";
14
14
  export const Heading = forwardRef((_a, ref) => {
15
15
  var { level = "1", size, spacing = false, className, as } = _a, rest = __rest(_a, ["level", "size", "spacing", "className", "as"]);
16
16
  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,YAAY,CAAC;AAwB5B,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,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,7 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { forwardRef } from "react";
13
- import cl from "classnames";
13
+ import cl from "clsx";
14
14
  export const Ingress = forwardRef((_a, ref) => {
15
15
  var { className, spacing, as: Component = "p" } = _a, rest = __rest(_a, ["className", "spacing", "as"]);
16
16
  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,YAAY,CAAC;AAe5B,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,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"}
@@ -10,7 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { forwardRef } from "react";
13
- import cl from "classnames";
13
+ import cl from "clsx";
14
14
  export const Label = forwardRef((_a, ref) => {
15
15
  var { className, size = "medium", spacing, as: Component = "p" } = _a, rest = __rest(_a, ["className", "size", "spacing", "as"]);
16
16
  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,YAAY,CAAC;AAmB5B,MAAM,CAAC,MAAM,KAAK,GAChB,UAAU,CACR,CACE,EAAqE,EACrE,GAAG,EACH,EAAE;QAFF,EAAE,SAAS,EAAE,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,GAAG,OAAW,EAAN,IAAI,cAAnE,sCAAqE,CAAF;IAEhE,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;AAmBtB,MAAM,CAAC,MAAM,KAAK,GAChB,UAAU,CACR,CACE,EAAqE,EACrE,GAAG,EACH,EAAE;QAFF,EAAE,SAAS,EAAE,IAAI,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,GAAG,OAAW,EAAN,IAAI,cAAnE,sCAAqE,CAAF;IAEhE,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"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ interface TextareaAutosizeProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "children" | "rows"> {
3
+ /**
4
+ * Maximum number of rows to display.
5
+ */
6
+ maxRows?: number;
7
+ /**
8
+ * Minimum number of rows to display.
9
+ * @default 1
10
+ */
11
+ minRows?: number;
12
+ }
13
+ declare const TextareaAutosize: React.ForwardRefExoticComponent<TextareaAutosizeProps & React.RefAttributes<HTMLTextAreaElement>>;
14
+ export default TextareaAutosize;
@@ -0,0 +1,150 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ /* https://github.com/mui/material-ui/blob/master/packages/mui-base/src/TextareaAutosize/TextareaAutosize.js */
13
+ import React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState, } from "react";
14
+ import { debounce, mergeRefs, useClientLayoutEffect } from "..";
15
+ /**
16
+ * https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/ownerDocument.ts
17
+ * https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/ownerWindow.ts
18
+ */
19
+ const ownerWindow = (node) => {
20
+ const doc = (node && node.ownerDocument) || document;
21
+ return doc.defaultView || window;
22
+ };
23
+ function getStyleValue(computedStyle, property) {
24
+ return parseInt(computedStyle[property], 10) || 0;
25
+ }
26
+ const TextareaAutosize = forwardRef((_a, ref) => {
27
+ var { className, onChange, maxRows, minRows = 1, style, value } = _a, other = __rest(_a, ["className", "onChange", "maxRows", "minRows", "style", "value"]);
28
+ const { current: isControlled } = useRef(value != null);
29
+ const inputRef = useRef(null);
30
+ const handleRef = useMemo(() => mergeRefs([inputRef, ref]), [ref]);
31
+ const shadowRef = useRef(null);
32
+ const renders = useRef(0);
33
+ const [state, setState] = useState({});
34
+ const syncHeight = useCallback(() => {
35
+ if (!inputRef.current || !shadowRef.current)
36
+ return;
37
+ const input = inputRef.current;
38
+ const containerWindow = ownerWindow(input);
39
+ const computedStyle = containerWindow.getComputedStyle(input);
40
+ // If input's width is shrunk and it's not visible, don't sync height.
41
+ if (computedStyle.width === "0px") {
42
+ return;
43
+ }
44
+ const inputShallow = shadowRef.current;
45
+ inputShallow.style.width = computedStyle.width;
46
+ inputShallow.value = input.value || (other === null || other === void 0 ? void 0 : other.placeholder) || "x";
47
+ if (inputShallow.value.slice(-1) === "\n") {
48
+ // Certain fonts which overflow the line height will cause the textarea
49
+ // to report a different scrollHeight depending on whether the last line
50
+ // is empty. Make it non-empty to avoid this issue.
51
+ inputShallow.value += " ";
52
+ }
53
+ const boxSizing = computedStyle["box-sizing"];
54
+ const padding = getStyleValue(computedStyle, "padding-bottom") +
55
+ getStyleValue(computedStyle, "padding-top");
56
+ const border = getStyleValue(computedStyle, "border-bottom-width") +
57
+ getStyleValue(computedStyle, "border-top-width");
58
+ // The height of the inner content
59
+ const innerHeight = inputShallow.scrollHeight - padding;
60
+ // Measure height of a textarea with a single row
61
+ inputShallow.value = "x";
62
+ const singleRowHeight = inputShallow.scrollHeight - padding;
63
+ // The height of the outer content
64
+ let outerHeight = innerHeight;
65
+ if (minRows) {
66
+ outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);
67
+ }
68
+ if (maxRows) {
69
+ outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);
70
+ }
71
+ outerHeight = Math.max(outerHeight, singleRowHeight);
72
+ // Take the box sizing into account for applying this value as a style.
73
+ const outerHeightStyle = outerHeight + (boxSizing === "border-box" ? padding + border : 0);
74
+ const overflow = Math.abs(outerHeight - innerHeight) <= 1;
75
+ setState((prevState) => {
76
+ // Need a large enough difference to update the height.
77
+ // This prevents infinite rendering loop.
78
+ if (renders.current < 20 &&
79
+ ((outerHeightStyle > 0 &&
80
+ Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) >
81
+ 1) ||
82
+ prevState.overflow !== overflow)) {
83
+ renders.current += 1;
84
+ return {
85
+ overflow,
86
+ outerHeightStyle,
87
+ };
88
+ }
89
+ if (process.env.NODE_ENV !== "production") {
90
+ if (renders.current === 20) {
91
+ console.error([
92
+ "MUI: Too many re-renders. The layout is unstable.",
93
+ "TextareaAutosize limits the number of renders to prevent an infinite loop.",
94
+ ].join("\n"));
95
+ }
96
+ }
97
+ return prevState;
98
+ });
99
+ }, [maxRows, minRows, other === null || other === void 0 ? void 0 : other.placeholder]);
100
+ useEffect(() => {
101
+ const handleResize = debounce(() => {
102
+ renders.current = 0;
103
+ syncHeight();
104
+ });
105
+ const containerWindow = ownerWindow(inputRef.current);
106
+ containerWindow.addEventListener("resize", handleResize);
107
+ let resizeObserver;
108
+ if (typeof ResizeObserver !== "undefined") {
109
+ resizeObserver = new ResizeObserver(handleResize);
110
+ resizeObserver.observe(inputRef.current);
111
+ }
112
+ return () => {
113
+ handleResize.clear();
114
+ containerWindow.removeEventListener("resize", handleResize);
115
+ if (resizeObserver) {
116
+ resizeObserver.disconnect();
117
+ }
118
+ };
119
+ }, [syncHeight]);
120
+ useClientLayoutEffect(() => {
121
+ syncHeight();
122
+ });
123
+ useEffect(() => {
124
+ renders.current = 0;
125
+ }, [value]);
126
+ const handleChange = (event) => {
127
+ renders.current = 0;
128
+ if (!isControlled) {
129
+ syncHeight();
130
+ }
131
+ if (onChange) {
132
+ onChange(event);
133
+ }
134
+ };
135
+ return (React.createElement(React.Fragment, null,
136
+ React.createElement("textarea", Object.assign({ value: value, onChange: handleChange, ref: handleRef,
137
+ // Apply the rows prop to get a "correct" first SSR paint
138
+ rows: minRows, style: Object.assign(Object.assign({ height: state.outerHeightStyle }, (state.overflow ? { overflow: "hidden" } : {})), style) }, other, { className: className })),
139
+ React.createElement("textarea", { "aria-hidden": true, className: className, readOnly: true, ref: shadowRef, tabIndex: -1, style: Object.assign({
140
+ // Visibility needed to hide the extra text area on iPads
141
+ visibility: "hidden",
142
+ // Remove from the content flow
143
+ position: "absolute",
144
+ // Ignore the scrollbar width
145
+ overflow: "hidden", height: 0, top: 0, left: 0,
146
+ // Create a new layer, increase the isolation of the computed values
147
+ transform: "translateZ(0)" }, style) })));
148
+ });
149
+ export default TextareaAutosize;
150
+ //# sourceMappingURL=TextareaAutoSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextareaAutoSize.js","sourceRoot":"","sources":["../../src/util/TextareaAutoSize.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export default function debounce(func: any, wait?: number): {
2
+ (this: any, ...args: any[]): void;
3
+ clear(): void;
4
+ };
@@ -0,0 +1,16 @@
1
+ // https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/debounce.js
2
+ export default function debounce(func, wait = 166) {
3
+ let timeout;
4
+ function debounced(...args) {
5
+ const later = () => {
6
+ func.apply(this, args);
7
+ };
8
+ clearTimeout(timeout);
9
+ timeout = setTimeout(later, wait);
10
+ }
11
+ debounced.clear = () => {
12
+ clearTimeout(timeout);
13
+ };
14
+ return debounced;
15
+ }
16
+ //# sourceMappingURL=debounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/util/debounce.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;IAC/C,IAAI,OAAO,CAAC;IACZ,SAAS,SAAS,CAAY,GAAG,IAAI;QACnC,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE;QACrB,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,5 +1,9 @@
1
+ import { useLayoutEffect } from "react";
1
2
  export * from "./OverridableComponent";
2
3
  export * from "./useId";
4
+ export { default as mergeRefs } from "./mergeRefs";
5
+ export { default as debounce } from "./debounce";
6
+ export declare const useClientLayoutEffect: typeof useLayoutEffect;
3
7
  export declare const omit: (obj: object, props: string[]) => {};
4
8
  export interface ListenerT {
5
9
  addEventListener(name: string, handler: (event?: any) => void, ...args: any[]): any;
package/esm/util/index.js CHANGED
@@ -1,6 +1,14 @@
1
- import { useEffect } from "react";
1
+ import { useEffect, useLayoutEffect } from "react";
2
2
  export * from "./OverridableComponent";
3
3
  export * from "./useId";
4
+ export { default as mergeRefs } from "./mergeRefs";
5
+ export { default as debounce } from "./debounce";
6
+ const canUseDOM = () => {
7
+ return (typeof window !== "undefined" &&
8
+ typeof window.document !== "undefined" &&
9
+ typeof window.document.createElement !== "undefined");
10
+ };
11
+ export const useClientLayoutEffect = canUseDOM() ? useLayoutEffect : () => { };
4
12
  export const omit = (obj, props) => Object.entries(obj)
5
13
  .filter(([key]) => !props.includes(key))
6
14
  .reduce((obj, [key, value]) => (Object.assign(Object.assign({}, obj), { [key]: value })), {});
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AAExB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,KAAe,EAAE,EAAE,CACnD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;KAChB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KACvC,MAAM,CACL,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,iCAClB,GAAG,KACN,CAAC,GAAG,CAAC,EAAE,KAAK,IACZ,EACF,EAAE,CACH,CAAC;AAgBN,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAkD,EAClD,OAAqD,EACrD,SAA4B,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACnE,EAAE;IACR,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,gGAAgG;AAChG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,oBAAyC,EACzC,eAAoC,EACpC,EAAE;IACF,OAAO,SAAS,WAAW,CAAC,KAAQ;QAClC,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAG,KAAK,CAAC,CAAC;QAE9B,IAAI,CAAG,KAA2B,CAAC,gBAAgB,EAAE;YACnD,OAAO,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,KAAK,CAAC,CAAC;SACjC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAEnD,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,SAAS,GAAG,GAAY,EAAE;IAC9B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW;QACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAK,WAAW,CACrD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,KAAe,EAAE,EAAE,CACnD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;KAChB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KACvC,MAAM,CACL,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,iCAClB,GAAG,KACN,CAAC,GAAG,CAAC,EAAE,KAAK,IACZ,EACF,EAAE,CACH,CAAC;AAgBN,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAkD,EAClD,OAAqD,EACrD,SAA4B,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACnE,EAAE;IACR,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,gGAAgG;AAChG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,oBAAyC,EACzC,eAAoC,EACpC,EAAE;IACF,OAAO,SAAS,WAAW,CAAC,KAAQ;QAClC,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAG,KAAK,CAAC,CAAC;QAE9B,IAAI,CAAE,KAA0B,CAAC,gBAAgB,EAAE;YACjD,OAAO,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,KAAK,CAAC,CAAC;SACjC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function mergeRefs<T = any>(refs: Array<React.MutableRefObject<T> | React.LegacyRef<T>>): React.RefCallback<T>;
@@ -0,0 +1,14 @@
1
+ // https://github.com/gregberge/react-merge-refs
2
+ export default function mergeRefs(refs) {
3
+ return (value) => {
4
+ refs.forEach((ref) => {
5
+ if (typeof ref === "function") {
6
+ ref(value);
7
+ }
8
+ else if (ref !== null && ref !== undefined) {
9
+ ref.current = value;
10
+ }
11
+ });
12
+ };
13
+ }
14
+ //# sourceMappingURL=mergeRefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeRefs.js","sourceRoot":"","sources":["../../src/util/mergeRefs.tsx"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,IAA2D;IAE3D,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC7B,GAAG,CAAC,KAAK,CAAC,CAAC;aACZ;iBAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;gBAC3C,GAAwC,CAAC,OAAO,GAAG,KAAK,CAAC;aAC3D;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +1,7 @@
1
- import { useLayoutEffect } from "react";
2
- export declare const useClientLayoutEffect: typeof useLayoutEffect;
3
- export declare const useId: (id?: string) => string;
1
+ /**
2
+ *
3
+ * @example <div id={useId()} />
4
+ * @param idOverride
5
+ * @returns {string}
6
+ */
7
+ export declare function useId(idOverride?: string): string | undefined;
package/esm/util/useId.js CHANGED
@@ -1,17 +1,37 @@
1
- import { useLayoutEffect, useState } from "react";
2
- import { v4 as uuidv4 } from "uuid";
3
- const canUseDOM = () => {
4
- return (typeof window !== "undefined" &&
5
- typeof window.document !== "undefined" &&
6
- typeof window.document.createElement !== "undefined");
7
- };
8
- export const useClientLayoutEffect = canUseDOM() ? useLayoutEffect : () => { };
9
- export const useId = (id) => {
10
- var _a;
11
- const [newId, setNewId] = useState(undefined);
12
- useClientLayoutEffect(() => {
13
- setNewId(uuidv4());
14
- }, []);
15
- return (_a = id !== null && id !== void 0 ? id : newId) !== null && _a !== void 0 ? _a : "";
16
- };
1
+ //https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/useId.ts
2
+ import React, { useEffect, useState } from "react";
3
+ let globalId = 0;
4
+ function useGlobalId(idOverride) {
5
+ const [defaultId, setDefaultId] = useState(idOverride);
6
+ const id = idOverride || defaultId;
7
+ useEffect(() => {
8
+ if (defaultId == null) {
9
+ // Fallback to this default id when possible.
10
+ // Use the incrementing value for client-side rendering only.
11
+ // We can't use it server-side.
12
+ // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem
13
+ globalId += 1;
14
+ setDefaultId(`navds-id-${globalId}`);
15
+ }
16
+ }, [defaultId]);
17
+ return id;
18
+ }
19
+ // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814
20
+ const maybeReactUseId = React[
21
+ // eslint-disable-next-line no-useless-concat
22
+ "useId" + ""];
23
+ /**
24
+ *
25
+ * @example <div id={useId()} />
26
+ * @param idOverride
27
+ * @returns {string}
28
+ */
29
+ export function useId(idOverride) {
30
+ if (maybeReactUseId !== undefined) {
31
+ const reactId = maybeReactUseId();
32
+ return idOverride !== null && idOverride !== void 0 ? idOverride : reactId;
33
+ }
34
+ // eslint-disable-next-line react-hooks/rules-of-hooks -- `useId` is invariant at runtime.
35
+ return useGlobalId(idOverride);
36
+ }
17
37
  //# sourceMappingURL=useId.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useId.js","sourceRoot":"","sources":["../../src/util/useId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,SAAS,GAAG,GAAY,EAAE;IAC9B,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW;QACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAK,WAAW,CACrD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,KAAK,GAA4B,CAAC,EAAE,EAAE,EAAE;;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IAElE,qBAAqB,CAAC,GAAG,EAAE;QACzB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,MAAA,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,KAAK,mCAAI,EAAE,CAAC;AAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"useId.js","sourceRoot":"","sources":["../../src/util/useId.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,SAAS,WAAW,CAAC,UAAmB;IACtC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,EAAE,GAAG,UAAU,IAAI,SAAS,CAAC;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,6CAA6C;YAC7C,6DAA6D;YAC7D,+BAA+B;YAC/B,wHAAwH;YACxH,QAAQ,IAAI,CAAC,CAAC;YACd,YAAY,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;SACtC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAChB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,+GAA+G;AAC/G,MAAM,eAAe,GAAgC,KAAa;AAChE,6CAA6C;AAC7C,OAAO,GAAG,EAAE,CACb,CAAC;AACF;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,UAAmB;IACvC,IAAI,eAAe,KAAK,SAAS,EAAE;QACjC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,OAAO,CAAC;KAC9B;IACD,0FAA0F;IAC1F,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "0.19.17",
3
+ "version": "1.0.0-rc.2",
4
4
  "description": "NAV designsystem react components",
5
5
  "author": "NAV Designsystem team",
6
6
  "license": "MIT",
@@ -35,28 +35,22 @@
35
35
  "test": "jest"
36
36
  },
37
37
  "dependencies": {
38
- "@floating-ui/react-dom": "0.6.0",
39
- "@material-ui/core": "^4.12.3",
40
- "@navikt/ds-icons": "^0.8.17",
41
- "@popperjs/core": "^2.10.1",
38
+ "@floating-ui/react-dom-interactions": "0.6.6",
39
+ "@navikt/ds-icons": "^1.0.0-rc.2",
42
40
  "@radix-ui/react-tabs": "0.1.5",
43
41
  "@radix-ui/react-toggle-group": "0.1.5",
44
- "classnames": "^2.2.6",
42
+ "clsx": "^1.1.1",
45
43
  "react-collapse": "^5.1.0",
46
- "react-merge-refs": "^1.1.0",
47
- "react-modal": "3.14.3",
48
- "react-popper": "^2.2.5",
49
- "uuid": "^8.3.2"
44
+ "react-modal": "3.15.1"
50
45
  },
51
46
  "devDependencies": {
52
47
  "@testing-library/dom": "8.13.0",
53
48
  "@testing-library/jest-dom": "^5.16.0",
54
- "@testing-library/react": "^13.0.0",
55
- "@testing-library/user-event": "^14.0.0",
49
+ "@testing-library/react": "^13.3.0",
50
+ "@testing-library/user-event": "^14.2.0",
56
51
  "@types/faker": "5.5.8",
57
52
  "@types/jest": "^27.0.1",
58
53
  "@types/node": "^17.0.35",
59
- "@types/react-collapse": "^5.0.1",
60
54
  "@types/react-modal": "^3.13.1",
61
55
  "concurrently": "7.2.1",
62
56
  "copyfiles": "^2.4.1",
@@ -76,5 +70,10 @@
76
70
  "@types/react": "^17.0.30 || ^18.0.0",
77
71
  "react": "^17.0.0 || ^18.0.0"
78
72
  },
79
- "gitHead": "c47048cc2d6af3c5f04a22420790c38ac2884040"
73
+ "peerDependenciesMeta": {
74
+ "@types/react": {
75
+ "optional": true
76
+ }
77
+ },
78
+ "gitHead": "60f13970436275f5af4a206995c545475c2f09db"
80
79
  }
@@ -1,4 +1,4 @@
1
- import cl from "classnames";
1
+ import cl from "clsx";
2
2
  import React, { forwardRef } from "react";
3
3
  import AccordionItem, { AccordionItemType } from "./AccordionItem";
4
4
  import AccordionContent, { AccordionContentType } from "./AccordionContent";
@@ -1,4 +1,4 @@
1
- import cl from "classnames";
1
+ import cl from "clsx";
2
2
  import React, { forwardRef, useContext } from "react";
3
3
  import { Collapse, UnmountClosed } from "react-collapse";
4
4
  import { AccordionItemContext } from "./AccordionItem";
@@ -1,5 +1,5 @@
1
1
  import { Expand, ExpandFilled } from "@navikt/ds-icons";
2
- import cl from "classnames";
2
+ import cl from "clsx";
3
3
  import React, { forwardRef, useContext } from "react";
4
4
  import { AccordionItemContext } from "./AccordionItem";
5
5
  import { useClientLayoutEffect, useId } from "..";
@@ -24,7 +24,7 @@ const AccordionHeader: AccordionHeaderType = forwardRef(
24
24
  const setButtonId = context && context.setButtonId;
25
25
 
26
26
  useClientLayoutEffect(() => {
27
- setButtonId && setButtonId(id ? newId : `accordionContent-${newId}`);
27
+ setButtonId && setButtonId((id ? newId : newId) ?? "");
28
28
  }, [setButtonId, newId]);
29
29
 
30
30
  if (context === null) {
@@ -1,4 +1,4 @@
1
- import cl from "classnames";
1
+ import cl from "clsx";
2
2
  import React, { createContext, forwardRef, useState } from "react";
3
3
 
4
4
  export interface AccordionItemProps
@@ -4,7 +4,7 @@ import {
4
4
  SuccessColored,
5
5
  WarningColored,
6
6
  } from "@navikt/ds-icons";
7
- import cl from "classnames";
7
+ import cl from "clsx";
8
8
  import React, { forwardRef } from "react";
9
9
  import { BodyLong } from "..";
10
10
 
@@ -23,7 +23,7 @@ export interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
23
23
  */
24
24
  size?: "medium" | "small";
25
25
  /**
26
- * Toggles full-width Alert (removes border-radius)
26
+ * Removes border-radius
27
27
  * @default false
28
28
  */
29
29
  fullWidth?: boolean;
@@ -13,6 +13,12 @@ export default {
13
13
  options: ["error", "warning", "info", "success"],
14
14
  },
15
15
  },
16
+ size: {
17
+ control: {
18
+ type: "radio",
19
+ options: ["medium", "small"],
20
+ },
21
+ },
16
22
  },
17
23
  };
18
24
 
@@ -36,6 +42,7 @@ export const Default = (props) => (
36
42
 
37
43
  Default.args = {
38
44
  children: "Id elit esse enim reprehenderit enim nisi veniam nostrud.",
45
+ fullWidth: false,
39
46
  };
40
47
 
41
48
  export const Small = () => {
@@ -1,7 +1,6 @@
1
- import React, { useRef, useState, forwardRef } from "react";
2
- import mergeRefs from "react-merge-refs";
3
- import cl from "classnames";
4
- import { BodyShort, OverridableComponent, Loader } from "../";
1
+ import React, { useRef, useState, forwardRef, useMemo } from "react";
2
+ import cl from "clsx";
3
+ import { BodyShort, OverridableComponent, Loader, mergeRefs } from "../";
5
4
  import { useClientLayoutEffect } from "../util";
6
5
 
7
6
  export interface ButtonProps
@@ -49,9 +48,10 @@ export const Button: OverridableComponent<ButtonProps, HTMLButtonElement> =
49
48
  ref
50
49
  ) => {
51
50
  const buttonRef = useRef<HTMLButtonElement | null>(null);
52
- const mergedRef = mergeRefs([buttonRef, ref]);
53
51
  const [widthOverride, setWidthOverride] = useState<number>();
54
52
 
53
+ const mergedRef = useMemo(() => mergeRefs([buttonRef, ref]), [ref]);
54
+
55
55
  useClientLayoutEffect(() => {
56
56
  if (loading) {
57
57
  const requestID = window.requestAnimationFrame(() => {