@navikt/ds-react 6.0.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (690) hide show
  1. package/cjs/accordion/index.d.ts +3 -0
  2. package/cjs/accordion/index.js +8 -1
  3. package/cjs/accordion/index.js.map +1 -1
  4. package/cjs/alert/index.d.ts +1 -2
  5. package/cjs/alert/index.js +1 -0
  6. package/cjs/alert/index.js.map +1 -1
  7. package/cjs/button/index.d.ts +1 -2
  8. package/cjs/button/index.js +1 -0
  9. package/cjs/button/index.js.map +1 -1
  10. package/cjs/chat/Bubble.d.ts +2 -2
  11. package/cjs/chat/index.d.ts +1 -0
  12. package/cjs/chat/index.js +4 -1
  13. package/cjs/chat/index.js.map +1 -1
  14. package/cjs/chips/Chips.d.ts +4 -4
  15. package/cjs/chips/Removable.d.ts +2 -2
  16. package/cjs/chips/Toggle.d.ts +2 -2
  17. package/cjs/chips/index.d.ts +2 -0
  18. package/cjs/chips/index.js +6 -1
  19. package/cjs/chips/index.js.map +1 -1
  20. package/cjs/copybutton/index.js +1 -0
  21. package/cjs/copybutton/index.js.map +1 -1
  22. package/cjs/date/datepicker/index.d.ts +4 -0
  23. package/cjs/date/datepicker/index.js +17 -0
  24. package/cjs/date/datepicker/index.js.map +1 -0
  25. package/cjs/date/datepicker/parts/DropdownCaption.js +3 -3
  26. package/cjs/date/monthpicker/MonthCaption.js +2 -2
  27. package/cjs/date/monthpicker/index.d.ts +5 -0
  28. package/cjs/date/monthpicker/index.js +16 -0
  29. package/cjs/date/monthpicker/index.js.map +1 -0
  30. package/cjs/dropdown/Dropdown.d.ts +2 -2
  31. package/cjs/dropdown/Dropdown.js.map +1 -1
  32. package/cjs/dropdown/Menu/index.d.ts +3 -3
  33. package/cjs/dropdown/Toggle.d.ts +3 -3
  34. package/cjs/dropdown/Toggle.js +3 -3
  35. package/cjs/dropdown/Toggle.js.map +1 -1
  36. package/cjs/dropdown/index.d.ts +8 -0
  37. package/cjs/dropdown/index.js +18 -1
  38. package/cjs/dropdown/index.js.map +1 -1
  39. package/cjs/expansion-card/ExpansionCardDescription.d.ts +1 -0
  40. package/cjs/expansion-card/ExpansionCardDescription.js +1 -0
  41. package/cjs/expansion-card/ExpansionCardDescription.js.map +1 -1
  42. package/cjs/expansion-card/ExpansionCardTitle.d.ts +1 -0
  43. package/cjs/expansion-card/ExpansionCardTitle.js +1 -0
  44. package/cjs/expansion-card/ExpansionCardTitle.js.map +1 -1
  45. package/cjs/expansion-card/index.d.ts +4 -0
  46. package/cjs/expansion-card/index.js +10 -1
  47. package/cjs/expansion-card/index.js.map +1 -1
  48. package/cjs/form/checkbox/CheckboxGroup.d.ts +1 -1
  49. package/cjs/form/checkbox/CheckboxGroup.js +4 -3
  50. package/cjs/form/checkbox/CheckboxGroup.js.map +1 -1
  51. package/cjs/form/checkbox/index.js +1 -0
  52. package/cjs/form/checkbox/index.js.map +1 -1
  53. package/cjs/form/combobox/index.d.ts +1 -1
  54. package/cjs/form/combobox/index.js +3 -2
  55. package/cjs/form/combobox/index.js.map +1 -1
  56. package/cjs/form/{ConfirmationPanel.d.ts → confirmation-panel/ConfirmationPanel.d.ts} +1 -1
  57. package/cjs/form/{ConfirmationPanel.js → confirmation-panel/ConfirmationPanel.js} +4 -4
  58. package/cjs/form/confirmation-panel/ConfirmationPanel.js.map +1 -0
  59. package/cjs/form/confirmation-panel/index.d.ts +1 -0
  60. package/cjs/form/confirmation-panel/index.js +10 -0
  61. package/cjs/form/confirmation-panel/index.js.map +1 -0
  62. package/cjs/form/error-summary/index.d.ts +2 -2
  63. package/cjs/form/error-summary/index.js +4 -1
  64. package/cjs/form/error-summary/index.js.map +1 -1
  65. package/cjs/form/{Fieldset → fieldset}/Fieldset.js.map +1 -1
  66. package/cjs/form/{Fieldset → fieldset}/context.js.map +1 -1
  67. package/cjs/form/{Fieldset → fieldset}/index.d.ts +0 -1
  68. package/cjs/form/{Fieldset → fieldset}/index.js +2 -3
  69. package/cjs/form/fieldset/index.js.map +1 -0
  70. package/cjs/form/{Fieldset → fieldset}/useFieldset.js.map +1 -1
  71. package/cjs/form/radio/RadioGroup.d.ts +1 -1
  72. package/cjs/form/radio/RadioGroup.js +4 -3
  73. package/cjs/form/radio/RadioGroup.js.map +1 -1
  74. package/cjs/form/radio/index.js +1 -0
  75. package/cjs/form/radio/index.js.map +1 -1
  76. package/cjs/form/search/index.d.ts +1 -0
  77. package/cjs/form/search/index.js +4 -1
  78. package/cjs/form/search/index.js.map +1 -1
  79. package/cjs/form/{Select.d.ts → select/Select.d.ts} +1 -1
  80. package/cjs/form/{Select.js → select/Select.js} +4 -4
  81. package/cjs/form/select/Select.js.map +1 -0
  82. package/cjs/form/select/index.d.ts +1 -0
  83. package/cjs/form/select/index.js +10 -0
  84. package/cjs/form/select/index.js.map +1 -0
  85. package/cjs/form/{Switch.d.ts → switch/Switch.d.ts} +1 -1
  86. package/cjs/form/{Switch.js → switch/Switch.js} +5 -5
  87. package/cjs/form/switch/Switch.js.map +1 -0
  88. package/cjs/form/switch/index.d.ts +1 -0
  89. package/cjs/form/switch/index.js +10 -0
  90. package/cjs/form/switch/index.js.map +1 -0
  91. package/{esm/form → cjs/form/textarea}/Textarea.d.ts +1 -1
  92. package/cjs/form/{Textarea.js → textarea/Textarea.js} +7 -7
  93. package/cjs/form/textarea/Textarea.js.map +1 -0
  94. package/cjs/form/{TextareaCounter.js → textarea/TextareaCounter.js} +2 -2
  95. package/cjs/form/textarea/TextareaCounter.js.map +1 -0
  96. package/cjs/form/textarea/index.d.ts +1 -0
  97. package/cjs/form/textarea/index.js +10 -0
  98. package/cjs/form/textarea/index.js.map +1 -0
  99. package/cjs/form/{TextField.d.ts → textfield/TextField.d.ts} +1 -1
  100. package/cjs/form/{TextField.js → textfield/TextField.js} +4 -4
  101. package/cjs/form/textfield/TextField.js.map +1 -0
  102. package/cjs/form/textfield/index.d.ts +1 -0
  103. package/cjs/form/textfield/index.js +10 -0
  104. package/cjs/form/textfield/index.js.map +1 -0
  105. package/cjs/form/useFormField.js +1 -1
  106. package/cjs/guide-panel/index.d.ts +1 -1
  107. package/cjs/guide-panel/index.js +3 -2
  108. package/cjs/guide-panel/index.js.map +1 -1
  109. package/cjs/help-text/index.d.ts +1 -2
  110. package/cjs/help-text/index.js +1 -0
  111. package/cjs/help-text/index.js.map +1 -1
  112. package/cjs/index.d.ts +54 -40
  113. package/cjs/index.js +127 -54
  114. package/cjs/index.js.map +1 -1
  115. package/cjs/internal-header/index.d.ts +4 -4
  116. package/cjs/internal-header/index.js +10 -1
  117. package/cjs/internal-header/index.js.map +1 -1
  118. package/cjs/layout/bleed/Bleed.d.ts +1 -0
  119. package/cjs/layout/bleed/Bleed.js +1 -0
  120. package/cjs/layout/bleed/Bleed.js.map +1 -1
  121. package/cjs/layout/bleed/index.d.ts +1 -1
  122. package/cjs/layout/bleed/index.js +5 -1
  123. package/cjs/layout/bleed/index.js.map +1 -1
  124. package/cjs/layout/box/Box.d.ts +1 -0
  125. package/cjs/layout/box/Box.js +1 -0
  126. package/cjs/layout/box/Box.js.map +1 -1
  127. package/cjs/layout/box/index.d.ts +1 -1
  128. package/cjs/layout/box/index.js +5 -1
  129. package/cjs/layout/box/index.js.map +1 -1
  130. package/cjs/layout/grid/index.js +1 -0
  131. package/cjs/layout/grid/index.js.map +1 -1
  132. package/cjs/layout/page/index.d.ts +1 -1
  133. package/cjs/layout/page/index.js +4 -1
  134. package/cjs/layout/page/index.js.map +1 -1
  135. package/cjs/layout/page/parts/PageBlock.d.ts +1 -0
  136. package/cjs/layout/page/parts/PageBlock.js +1 -0
  137. package/cjs/layout/page/parts/PageBlock.js.map +1 -1
  138. package/cjs/layout/responsive/index.js +1 -0
  139. package/cjs/layout/responsive/index.js.map +1 -1
  140. package/cjs/layout/sidemal-test/Filter.js +4 -4
  141. package/cjs/layout/sidemal-test/Filter.js.map +1 -1
  142. package/cjs/layout/stack/HStack.d.ts +1 -0
  143. package/cjs/layout/stack/HStack.js +1 -0
  144. package/cjs/layout/stack/HStack.js.map +1 -1
  145. package/cjs/layout/stack/Spacer.d.ts +1 -0
  146. package/cjs/layout/stack/Spacer.js +1 -0
  147. package/cjs/layout/stack/Spacer.js.map +1 -1
  148. package/cjs/layout/stack/Stack.d.ts +1 -0
  149. package/cjs/layout/stack/Stack.js +1 -0
  150. package/cjs/layout/stack/Stack.js.map +1 -1
  151. package/cjs/layout/stack/VStack.d.ts +1 -0
  152. package/cjs/layout/stack/VStack.js +1 -0
  153. package/cjs/layout/stack/VStack.js.map +1 -1
  154. package/cjs/layout/stack/index.d.ts +4 -4
  155. package/cjs/layout/stack/index.js +8 -4
  156. package/cjs/layout/stack/index.js.map +1 -1
  157. package/cjs/link/index.d.ts +1 -2
  158. package/cjs/link/index.js +1 -0
  159. package/cjs/link/index.js.map +1 -1
  160. package/cjs/link-panel/LinkPanelDescription.d.ts +1 -0
  161. package/cjs/link-panel/LinkPanelDescription.js +1 -0
  162. package/cjs/link-panel/LinkPanelDescription.js.map +1 -1
  163. package/cjs/link-panel/LinkPanelTitle.d.ts +1 -0
  164. package/cjs/link-panel/LinkPanelTitle.js +1 -0
  165. package/cjs/link-panel/LinkPanelTitle.js.map +1 -1
  166. package/cjs/link-panel/index.d.ts +3 -2
  167. package/cjs/link-panel/index.js +6 -1
  168. package/cjs/link-panel/index.js.map +1 -1
  169. package/cjs/list/index.d.ts +1 -0
  170. package/cjs/list/index.js +4 -1
  171. package/cjs/list/index.js.map +1 -1
  172. package/cjs/loader/index.js +1 -0
  173. package/cjs/loader/index.js.map +1 -1
  174. package/cjs/modal/Modal.js +5 -5
  175. package/cjs/modal/Modal.js.map +1 -1
  176. package/cjs/modal/ModalUtils.d.ts +1 -1
  177. package/cjs/modal/ModalUtils.js +4 -2
  178. package/cjs/modal/ModalUtils.js.map +1 -1
  179. package/cjs/modal/index.d.ts +3 -3
  180. package/cjs/modal/index.js +8 -1
  181. package/cjs/modal/index.js.map +1 -1
  182. package/cjs/modal/types.d.ts +14 -3
  183. package/cjs/modal/types.test-d.d.ts +1 -0
  184. package/cjs/modal/types.test-d.js +67 -0
  185. package/cjs/modal/types.test-d.js.map +1 -0
  186. package/cjs/pagination/index.d.ts +1 -0
  187. package/cjs/pagination/index.js +4 -1
  188. package/cjs/pagination/index.js.map +1 -1
  189. package/cjs/popover/index.d.ts +1 -1
  190. package/cjs/popover/index.js +4 -1
  191. package/cjs/popover/index.js.map +1 -1
  192. package/cjs/{overlays/portal → portal}/Portal.d.ts +1 -1
  193. package/cjs/{overlays/portal → portal}/Portal.js +3 -3
  194. package/cjs/portal/Portal.js.map +1 -0
  195. package/cjs/portal/index.d.ts +1 -0
  196. package/cjs/portal/index.js +10 -0
  197. package/cjs/portal/index.js.map +1 -0
  198. package/cjs/provider/index.d.ts +1 -1
  199. package/cjs/provider/index.js +2 -2
  200. package/cjs/provider/index.js.map +1 -1
  201. package/cjs/read-more/index.d.ts +1 -2
  202. package/cjs/read-more/index.js +1 -0
  203. package/cjs/read-more/index.js.map +1 -1
  204. package/cjs/skeleton/index.d.ts +1 -2
  205. package/cjs/skeleton/index.js +1 -0
  206. package/cjs/skeleton/index.js.map +1 -1
  207. package/cjs/stepper/index.d.ts +1 -0
  208. package/cjs/stepper/index.js +4 -1
  209. package/cjs/stepper/index.js.map +1 -1
  210. package/cjs/table/index.d.ts +7 -7
  211. package/cjs/table/index.js +16 -1
  212. package/cjs/table/index.js.map +1 -1
  213. package/cjs/tabs/index.d.ts +3 -3
  214. package/cjs/tabs/index.js +8 -1
  215. package/cjs/tabs/index.js.map +1 -1
  216. package/cjs/tag/index.js +1 -0
  217. package/cjs/tag/index.js.map +1 -1
  218. package/cjs/timeline/index.d.ts +5 -6
  219. package/cjs/timeline/index.js +10 -1
  220. package/cjs/timeline/index.js.map +1 -1
  221. package/cjs/toggle-group/ToggleGroup.d.ts +3 -3
  222. package/cjs/toggle-group/ToggleGroup.js.map +1 -1
  223. package/cjs/toggle-group/ToggleItem.d.ts +2 -2
  224. package/cjs/toggle-group/index.d.ts +1 -1
  225. package/cjs/toggle-group/index.js +4 -1
  226. package/cjs/toggle-group/index.js.map +1 -1
  227. package/cjs/tooltip/Tooltip.js +2 -2
  228. package/cjs/tooltip/Tooltip.js.map +1 -1
  229. package/cjs/tooltip/index.js +1 -0
  230. package/cjs/tooltip/index.js.map +1 -1
  231. package/cjs/typography/index.js +1 -0
  232. package/cjs/typography/index.js.map +1 -1
  233. package/cjs/util/debounce.js +1 -0
  234. package/cjs/util/debounce.js.map +1 -1
  235. package/cjs/util/hooks/useClientLayoutEffect.js +1 -0
  236. package/cjs/util/hooks/useClientLayoutEffect.js.map +1 -1
  237. package/cjs/util/hooks/useEventListener.js +1 -0
  238. package/cjs/util/hooks/useEventListener.js.map +1 -1
  239. package/cjs/util/hooks/useId.js +1 -0
  240. package/cjs/util/hooks/useId.js.map +1 -1
  241. package/cjs/util/index.d.ts +2 -2
  242. package/cjs/util/index.js +3 -16
  243. package/cjs/util/index.js.map +1 -1
  244. package/cjs/util/omit.d.ts +1 -1
  245. package/cjs/util/omit.js +5 -3
  246. package/cjs/util/omit.js.map +1 -1
  247. package/esm/accordion/index.d.ts +3 -0
  248. package/esm/accordion/index.js +4 -0
  249. package/esm/accordion/index.js.map +1 -1
  250. package/esm/alert/index.d.ts +1 -2
  251. package/esm/alert/index.js +1 -0
  252. package/esm/alert/index.js.map +1 -1
  253. package/esm/button/index.d.ts +1 -2
  254. package/esm/button/index.js +1 -0
  255. package/esm/button/index.js.map +1 -1
  256. package/esm/chat/Bubble.d.ts +2 -2
  257. package/esm/chat/index.d.ts +1 -0
  258. package/esm/chat/index.js +2 -0
  259. package/esm/chat/index.js.map +1 -1
  260. package/esm/chips/Chips.d.ts +4 -4
  261. package/esm/chips/Removable.d.ts +2 -2
  262. package/esm/chips/Toggle.d.ts +2 -2
  263. package/esm/chips/index.d.ts +2 -0
  264. package/esm/chips/index.js +3 -0
  265. package/esm/chips/index.js.map +1 -1
  266. package/esm/copybutton/index.js +1 -0
  267. package/esm/copybutton/index.js.map +1 -1
  268. package/esm/date/datepicker/index.d.ts +4 -0
  269. package/esm/date/datepicker/index.js +6 -0
  270. package/esm/date/datepicker/index.js.map +1 -0
  271. package/esm/date/datepicker/parts/DropdownCaption.js +1 -1
  272. package/esm/date/monthpicker/MonthCaption.js +1 -1
  273. package/esm/date/monthpicker/index.d.ts +5 -0
  274. package/esm/date/monthpicker/index.js +6 -0
  275. package/esm/date/monthpicker/index.js.map +1 -0
  276. package/esm/dropdown/Dropdown.d.ts +2 -2
  277. package/esm/dropdown/Dropdown.js.map +1 -1
  278. package/esm/dropdown/Menu/index.d.ts +3 -3
  279. package/esm/dropdown/Toggle.d.ts +3 -3
  280. package/esm/dropdown/Toggle.js +2 -2
  281. package/esm/dropdown/Toggle.js.map +1 -1
  282. package/esm/dropdown/index.d.ts +8 -0
  283. package/esm/dropdown/index.js +9 -0
  284. package/esm/dropdown/index.js.map +1 -1
  285. package/esm/expansion-card/ExpansionCardDescription.d.ts +1 -0
  286. package/esm/expansion-card/ExpansionCardDescription.js +1 -0
  287. package/esm/expansion-card/ExpansionCardDescription.js.map +1 -1
  288. package/esm/expansion-card/ExpansionCardTitle.d.ts +1 -0
  289. package/esm/expansion-card/ExpansionCardTitle.js +1 -0
  290. package/esm/expansion-card/ExpansionCardTitle.js.map +1 -1
  291. package/esm/expansion-card/index.d.ts +4 -0
  292. package/esm/expansion-card/index.js +5 -0
  293. package/esm/expansion-card/index.js.map +1 -1
  294. package/esm/form/checkbox/CheckboxGroup.d.ts +1 -1
  295. package/esm/form/checkbox/CheckboxGroup.js +2 -1
  296. package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
  297. package/esm/form/checkbox/index.js +1 -0
  298. package/esm/form/checkbox/index.js.map +1 -1
  299. package/esm/form/combobox/index.d.ts +1 -1
  300. package/esm/form/combobox/index.js +2 -1
  301. package/esm/form/combobox/index.js.map +1 -1
  302. package/esm/form/{ConfirmationPanel.d.ts → confirmation-panel/ConfirmationPanel.d.ts} +1 -1
  303. package/esm/form/{ConfirmationPanel.js → confirmation-panel/ConfirmationPanel.js} +4 -4
  304. package/esm/form/confirmation-panel/ConfirmationPanel.js.map +1 -0
  305. package/esm/form/confirmation-panel/index.d.ts +1 -0
  306. package/esm/form/confirmation-panel/index.js +3 -0
  307. package/esm/form/confirmation-panel/index.js.map +1 -0
  308. package/esm/form/error-summary/index.d.ts +2 -2
  309. package/esm/form/error-summary/index.js +3 -1
  310. package/esm/form/error-summary/index.js.map +1 -1
  311. package/esm/form/{Fieldset → fieldset}/Fieldset.js.map +1 -1
  312. package/esm/form/{Fieldset → fieldset}/context.js.map +1 -1
  313. package/esm/form/{Fieldset → fieldset}/index.d.ts +0 -1
  314. package/esm/form/fieldset/index.js +3 -0
  315. package/esm/form/fieldset/index.js.map +1 -0
  316. package/esm/form/{Fieldset → fieldset}/useFieldset.js.map +1 -1
  317. package/esm/form/radio/RadioGroup.d.ts +1 -1
  318. package/esm/form/radio/RadioGroup.js +2 -1
  319. package/esm/form/radio/RadioGroup.js.map +1 -1
  320. package/esm/form/radio/index.js +1 -0
  321. package/esm/form/radio/index.js.map +1 -1
  322. package/esm/form/search/index.d.ts +1 -0
  323. package/esm/form/search/index.js +2 -0
  324. package/esm/form/search/index.js.map +1 -1
  325. package/esm/form/{Select.d.ts → select/Select.d.ts} +1 -1
  326. package/esm/form/{Select.js → select/Select.js} +4 -4
  327. package/esm/form/select/Select.js.map +1 -0
  328. package/esm/form/select/index.d.ts +1 -0
  329. package/esm/form/select/index.js +3 -0
  330. package/esm/form/select/index.js.map +1 -0
  331. package/esm/form/{Switch.d.ts → switch/Switch.d.ts} +1 -1
  332. package/esm/form/{Switch.js → switch/Switch.js} +5 -5
  333. package/esm/form/switch/Switch.js.map +1 -0
  334. package/esm/form/switch/index.d.ts +1 -0
  335. package/esm/form/switch/index.js +3 -0
  336. package/esm/form/switch/index.js.map +1 -0
  337. package/{cjs/form → esm/form/textarea}/Textarea.d.ts +1 -1
  338. package/esm/form/{Textarea.js → textarea/Textarea.js} +7 -7
  339. package/esm/form/textarea/Textarea.js.map +1 -0
  340. package/esm/form/{TextareaCounter.js → textarea/TextareaCounter.js} +2 -2
  341. package/esm/form/textarea/TextareaCounter.js.map +1 -0
  342. package/esm/form/textarea/index.d.ts +1 -0
  343. package/esm/form/textarea/index.js +3 -0
  344. package/esm/form/textarea/index.js.map +1 -0
  345. package/esm/form/{TextField.d.ts → textfield/TextField.d.ts} +1 -1
  346. package/esm/form/{TextField.js → textfield/TextField.js} +4 -4
  347. package/esm/form/textfield/TextField.js.map +1 -0
  348. package/esm/form/textfield/index.d.ts +1 -0
  349. package/esm/form/textfield/index.js +3 -0
  350. package/esm/form/textfield/index.js.map +1 -0
  351. package/esm/form/useFormField.js +1 -1
  352. package/esm/guide-panel/index.d.ts +1 -1
  353. package/esm/guide-panel/index.js +2 -1
  354. package/esm/guide-panel/index.js.map +1 -1
  355. package/esm/help-text/index.d.ts +1 -2
  356. package/esm/help-text/index.js +1 -0
  357. package/esm/help-text/index.js.map +1 -1
  358. package/esm/index.d.ts +54 -40
  359. package/esm/index.js +54 -40
  360. package/esm/index.js.map +1 -1
  361. package/esm/internal-header/index.d.ts +4 -4
  362. package/esm/internal-header/index.js +5 -0
  363. package/esm/internal-header/index.js.map +1 -1
  364. package/esm/layout/bleed/Bleed.d.ts +1 -0
  365. package/esm/layout/bleed/Bleed.js +1 -0
  366. package/esm/layout/bleed/Bleed.js.map +1 -1
  367. package/esm/layout/bleed/index.d.ts +1 -1
  368. package/esm/layout/bleed/index.js +2 -1
  369. package/esm/layout/bleed/index.js.map +1 -1
  370. package/esm/layout/box/Box.d.ts +1 -0
  371. package/esm/layout/box/Box.js +1 -0
  372. package/esm/layout/box/Box.js.map +1 -1
  373. package/esm/layout/box/index.d.ts +1 -1
  374. package/esm/layout/box/index.js +2 -1
  375. package/esm/layout/box/index.js.map +1 -1
  376. package/esm/layout/grid/index.js +1 -0
  377. package/esm/layout/grid/index.js.map +1 -1
  378. package/esm/layout/page/index.d.ts +1 -1
  379. package/esm/layout/page/index.js +2 -0
  380. package/esm/layout/page/index.js.map +1 -1
  381. package/esm/layout/page/parts/PageBlock.d.ts +1 -0
  382. package/esm/layout/page/parts/PageBlock.js +1 -0
  383. package/esm/layout/page/parts/PageBlock.js.map +1 -1
  384. package/esm/layout/responsive/index.js +1 -0
  385. package/esm/layout/responsive/index.js.map +1 -1
  386. package/esm/layout/sidemal-test/Filter.js +1 -1
  387. package/esm/layout/sidemal-test/Filter.js.map +1 -1
  388. package/esm/layout/stack/HStack.d.ts +1 -0
  389. package/esm/layout/stack/HStack.js +1 -0
  390. package/esm/layout/stack/HStack.js.map +1 -1
  391. package/esm/layout/stack/Spacer.d.ts +1 -0
  392. package/esm/layout/stack/Spacer.js +1 -0
  393. package/esm/layout/stack/Spacer.js.map +1 -1
  394. package/esm/layout/stack/Stack.d.ts +1 -0
  395. package/esm/layout/stack/Stack.js +1 -0
  396. package/esm/layout/stack/Stack.js.map +1 -1
  397. package/esm/layout/stack/VStack.d.ts +1 -0
  398. package/esm/layout/stack/VStack.js +1 -0
  399. package/esm/layout/stack/VStack.js.map +1 -1
  400. package/esm/layout/stack/index.d.ts +4 -4
  401. package/esm/layout/stack/index.js +5 -4
  402. package/esm/layout/stack/index.js.map +1 -1
  403. package/esm/link/index.d.ts +1 -2
  404. package/esm/link/index.js +1 -0
  405. package/esm/link/index.js.map +1 -1
  406. package/esm/link-panel/LinkPanelDescription.d.ts +1 -0
  407. package/esm/link-panel/LinkPanelDescription.js +1 -0
  408. package/esm/link-panel/LinkPanelDescription.js.map +1 -1
  409. package/esm/link-panel/LinkPanelTitle.d.ts +1 -0
  410. package/esm/link-panel/LinkPanelTitle.js +1 -0
  411. package/esm/link-panel/LinkPanelTitle.js.map +1 -1
  412. package/esm/link-panel/index.d.ts +3 -2
  413. package/esm/link-panel/index.js +3 -0
  414. package/esm/link-panel/index.js.map +1 -1
  415. package/esm/list/index.d.ts +1 -0
  416. package/esm/list/index.js +2 -0
  417. package/esm/list/index.js.map +1 -1
  418. package/esm/loader/index.js +1 -0
  419. package/esm/loader/index.js.map +1 -1
  420. package/esm/modal/Modal.js +4 -4
  421. package/esm/modal/Modal.js.map +1 -1
  422. package/esm/modal/ModalUtils.d.ts +1 -1
  423. package/esm/modal/ModalUtils.js +4 -2
  424. package/esm/modal/ModalUtils.js.map +1 -1
  425. package/esm/modal/index.d.ts +3 -3
  426. package/esm/modal/index.js +4 -0
  427. package/esm/modal/index.js.map +1 -1
  428. package/esm/modal/types.d.ts +14 -3
  429. package/esm/modal/types.test-d.d.ts +1 -0
  430. package/esm/modal/types.test-d.js +65 -0
  431. package/esm/modal/types.test-d.js.map +1 -0
  432. package/esm/pagination/index.d.ts +1 -0
  433. package/esm/pagination/index.js +2 -0
  434. package/esm/pagination/index.js.map +1 -1
  435. package/esm/popover/index.d.ts +1 -1
  436. package/esm/popover/index.js +2 -0
  437. package/esm/popover/index.js.map +1 -1
  438. package/esm/{overlays/portal → portal}/Portal.d.ts +1 -1
  439. package/esm/{overlays/portal → portal}/Portal.js +2 -2
  440. package/esm/portal/Portal.js.map +1 -0
  441. package/esm/portal/index.d.ts +1 -0
  442. package/esm/portal/index.js +3 -0
  443. package/esm/portal/index.js.map +1 -0
  444. package/esm/provider/index.d.ts +1 -1
  445. package/esm/provider/index.js +2 -1
  446. package/esm/provider/index.js.map +1 -1
  447. package/esm/read-more/index.d.ts +1 -2
  448. package/esm/read-more/index.js +1 -0
  449. package/esm/read-more/index.js.map +1 -1
  450. package/esm/skeleton/index.d.ts +1 -2
  451. package/esm/skeleton/index.js +1 -0
  452. package/esm/skeleton/index.js.map +1 -1
  453. package/esm/stepper/index.d.ts +1 -0
  454. package/esm/stepper/index.js +2 -0
  455. package/esm/stepper/index.js.map +1 -1
  456. package/esm/table/index.d.ts +7 -7
  457. package/esm/table/index.js +8 -0
  458. package/esm/table/index.js.map +1 -1
  459. package/esm/tabs/index.d.ts +3 -3
  460. package/esm/tabs/index.js +4 -0
  461. package/esm/tabs/index.js.map +1 -1
  462. package/esm/tag/index.js +1 -0
  463. package/esm/tag/index.js.map +1 -1
  464. package/esm/timeline/index.d.ts +5 -6
  465. package/esm/timeline/index.js +5 -0
  466. package/esm/timeline/index.js.map +1 -1
  467. package/esm/toggle-group/ToggleGroup.d.ts +3 -3
  468. package/esm/toggle-group/ToggleGroup.js.map +1 -1
  469. package/esm/toggle-group/ToggleItem.d.ts +2 -2
  470. package/esm/toggle-group/index.d.ts +1 -1
  471. package/esm/toggle-group/index.js +2 -0
  472. package/esm/toggle-group/index.js.map +1 -1
  473. package/esm/tooltip/Tooltip.js +1 -1
  474. package/esm/tooltip/Tooltip.js.map +1 -1
  475. package/esm/tooltip/index.js +1 -0
  476. package/esm/tooltip/index.js.map +1 -1
  477. package/esm/typography/index.js +1 -0
  478. package/esm/typography/index.js.map +1 -1
  479. package/esm/util/debounce.js +1 -0
  480. package/esm/util/debounce.js.map +1 -1
  481. package/esm/util/hooks/useClientLayoutEffect.js +1 -0
  482. package/esm/util/hooks/useClientLayoutEffect.js.map +1 -1
  483. package/esm/util/hooks/useEventListener.js +1 -0
  484. package/esm/util/hooks/useEventListener.js.map +1 -1
  485. package/esm/util/hooks/useId.js +1 -0
  486. package/esm/util/hooks/useId.js.map +1 -1
  487. package/esm/util/index.d.ts +2 -2
  488. package/esm/util/index.js +1 -1
  489. package/esm/util/index.js.map +1 -1
  490. package/esm/util/omit.d.ts +1 -1
  491. package/esm/util/omit.js +5 -3
  492. package/esm/util/omit.js.map +1 -1
  493. package/package.json +512 -12
  494. package/src/accordion/index.ts +13 -0
  495. package/src/alert/index.ts +2 -2
  496. package/src/button/index.ts +2 -2
  497. package/src/chat/Bubble.tsx +2 -2
  498. package/src/chat/chat.stories.tsx +2 -2
  499. package/src/chat/index.ts +2 -0
  500. package/src/chips/Chips.tsx +4 -4
  501. package/src/chips/Removable.tsx +2 -2
  502. package/src/chips/Toggle.tsx +2 -2
  503. package/src/chips/chips.stories.tsx +39 -1
  504. package/src/chips/index.ts +6 -0
  505. package/src/copybutton/copy-button.stories.tsx +49 -0
  506. package/src/copybutton/index.ts +1 -0
  507. package/src/date/datepicker/datepicker.stories.tsx +99 -0
  508. package/src/date/datepicker/datepicker.test.tsx +5 -3
  509. package/src/date/datepicker/index.ts +13 -0
  510. package/src/date/datepicker/parts/DropdownCaption.tsx +1 -1
  511. package/src/date/hooks/useRangeDatepicker.test.tsx +5 -3
  512. package/src/date/monthpicker/MonthCaption.tsx +1 -1
  513. package/src/date/monthpicker/index.ts +9 -0
  514. package/src/date/monthpicker/monthpicker.stories.tsx +27 -1
  515. package/src/date/utils/__tests__/check-dates.test.ts +1 -0
  516. package/src/date/utils/__tests__/dates-disabled.test.ts +1 -0
  517. package/src/date/utils/__tests__/format-dates.test.ts +1 -0
  518. package/src/date/utils/__tests__/get-dates.test.ts +1 -0
  519. package/src/date/utils/__tests__/get-initial-year.test.ts +1 -0
  520. package/src/date/utils/__tests__/get-month-weeks.test.ts +1 -0
  521. package/src/date/utils/__tests__/is-match.test.ts +1 -0
  522. package/src/date/utils/__tests__/parse-dates.test.ts +13 -3
  523. package/src/dropdown/Dropdown.tsx +2 -4
  524. package/src/dropdown/Menu/index.tsx +3 -3
  525. package/src/dropdown/Toggle.tsx +39 -40
  526. package/src/dropdown/index.ts +9 -0
  527. package/src/expansion-card/ExpansionCardDescription.tsx +2 -0
  528. package/src/expansion-card/ExpansionCardTitle.tsx +2 -0
  529. package/src/expansion-card/expansion-card.stories.tsx +32 -1
  530. package/src/expansion-card/index.ts +5 -0
  531. package/src/form/checkbox/Checkbox.test.tsx +6 -4
  532. package/src/form/checkbox/CheckboxGroup.tsx +2 -1
  533. package/src/form/checkbox/checkbox.stories.tsx +58 -2
  534. package/src/form/checkbox/index.ts +1 -0
  535. package/src/form/combobox/combobox.stories.tsx +3 -1
  536. package/src/form/combobox/combobox.test.tsx +6 -5
  537. package/src/form/combobox/index.ts +2 -1
  538. package/src/form/{ConfirmationPanel.test.tsx → confirmation-panel/ConfirmationPanel.test.tsx} +1 -0
  539. package/src/form/{ConfirmationPanel.tsx → confirmation-panel/ConfirmationPanel.tsx} +4 -4
  540. package/src/form/{stories → confirmation-panel}/confirmation-panel.stories.tsx +33 -2
  541. package/src/form/confirmation-panel/index.ts +5 -0
  542. package/src/form/error-summary/index.ts +9 -2
  543. package/src/form/{stories → fieldset}/fieldset.stories.tsx +2 -2
  544. package/src/form/{Fieldset → fieldset}/index.ts +1 -1
  545. package/src/form/radio/Radio.test.tsx +9 -3
  546. package/src/form/radio/RadioGroup.tsx +2 -1
  547. package/src/form/radio/index.ts +1 -0
  548. package/src/form/radio/radio.stories.tsx +51 -2
  549. package/src/form/search/index.ts +6 -0
  550. package/src/form/search/search.stories.tsx +53 -2
  551. package/src/form/{Select.tsx → select/Select.tsx} +4 -4
  552. package/src/form/select/index.ts +2 -0
  553. package/src/form/{stories → select}/select.stories.tsx +45 -2
  554. package/src/form/{Switch.tsx → switch/Switch.tsx} +5 -5
  555. package/src/form/switch/index.ts +2 -0
  556. package/src/form/{stories → switch}/switch.stories.tsx +1 -1
  557. package/src/form/{Textarea.tsx → textarea/Textarea.tsx} +7 -7
  558. package/src/form/{TextareaCounter.tsx → textarea/TextareaCounter.tsx} +2 -2
  559. package/src/form/textarea/index.ts +2 -0
  560. package/src/form/{stories → textarea}/textarea.stories.tsx +30 -1
  561. package/src/form/{TextField.tsx → textfield/TextField.tsx} +4 -4
  562. package/src/form/textfield/index.ts +2 -0
  563. package/src/form/{stories → textfield}/text-field.stories.tsx +45 -2
  564. package/src/form/useFormField.ts +1 -1
  565. package/src/guide-panel/guidepanel.stories.tsx +3 -1
  566. package/src/guide-panel/index.ts +2 -1
  567. package/src/help-text/index.ts +2 -2
  568. package/src/index.ts +143 -40
  569. package/src/internal-header/index.ts +17 -4
  570. package/src/layout/bleed/Bleed.tsx +2 -0
  571. package/src/layout/bleed/index.ts +2 -1
  572. package/src/layout/box/Box.tsx +2 -0
  573. package/src/layout/box/index.ts +2 -1
  574. package/src/layout/grid/index.ts +1 -0
  575. package/src/layout/page/index.ts +2 -1
  576. package/src/layout/page/parts/PageBlock.tsx +2 -0
  577. package/src/layout/responsive/index.ts +1 -0
  578. package/src/layout/sidemal-test/Filter.tsx +1 -1
  579. package/src/layout/stack/HStack.tsx +2 -0
  580. package/src/layout/stack/Spacer.tsx +2 -0
  581. package/src/layout/stack/Stack.tsx +2 -0
  582. package/src/layout/stack/VStack.tsx +2 -0
  583. package/src/layout/stack/index.ts +5 -4
  584. package/src/link/index.ts +2 -2
  585. package/src/link/stories/link.stories.tsx +1 -1
  586. package/src/link-panel/LinkPanelDescription.tsx +2 -0
  587. package/src/link-panel/LinkPanelTitle.tsx +2 -0
  588. package/src/link-panel/index.ts +10 -2
  589. package/src/list/index.ts +2 -0
  590. package/src/loader/index.ts +1 -0
  591. package/src/modal/Modal.test.tsx +1 -0
  592. package/src/modal/Modal.tsx +4 -4
  593. package/src/modal/ModalUtils.ts +3 -1
  594. package/src/modal/index.ts +4 -3
  595. package/src/modal/modal.stories.tsx +54 -0
  596. package/src/modal/types.test-d.ts +78 -0
  597. package/src/modal/types.ts +17 -3
  598. package/src/pagination/index.ts +5 -0
  599. package/src/pagination/steps.test.ts +9 -8
  600. package/src/popover/Popover.test.tsx +9 -8
  601. package/src/popover/index.ts +5 -1
  602. package/src/popover/popover.stories.tsx +1 -1
  603. package/src/{overlays/portal → portal}/Portal.stories.tsx +8 -5
  604. package/src/{overlays/portal → portal}/Portal.tsx +3 -3
  605. package/src/portal/index.ts +2 -0
  606. package/src/provider/index.ts +2 -1
  607. package/src/read-more/index.ts +2 -2
  608. package/src/skeleton/index.ts +2 -2
  609. package/src/skeleton/skeleton.stories.tsx +1 -1
  610. package/src/stepper/index.ts +2 -0
  611. package/src/table/index.ts +14 -7
  612. package/src/table/stories/table-1.stories.tsx +1 -1
  613. package/src/table/stories/table-2-expandable.stories.tsx +1 -1
  614. package/src/tabs/Tabs.test.tsx +1 -0
  615. package/src/tabs/index.ts +4 -3
  616. package/src/tag/index.ts +1 -0
  617. package/src/timeline/index.ts +9 -6
  618. package/src/toggle-group/ToggleGroup.stories.tsx +1 -1
  619. package/src/toggle-group/ToggleGroup.test.tsx +1 -0
  620. package/src/toggle-group/ToggleGroup.tsx +3 -3
  621. package/src/toggle-group/ToggleItem.tsx +2 -2
  622. package/src/toggle-group/index.ts +5 -1
  623. package/src/tooltip/Tooltip.test.tsx +5 -4
  624. package/src/tooltip/Tooltip.tsx +1 -1
  625. package/src/tooltip/index.ts +1 -0
  626. package/src/tooltip/tooltip.stories.tsx +1 -1
  627. package/src/typography/index.ts +1 -0
  628. package/src/util/__tests__/Slot.test.tsx +7 -6
  629. package/src/util/__tests__/useMedia.test.tsx +1 -0
  630. package/src/util/debounce.ts +1 -0
  631. package/src/util/hooks/useClientLayoutEffect.ts +2 -0
  632. package/src/util/hooks/useEventListener.ts +2 -0
  633. package/src/util/hooks/useId.ts +2 -0
  634. package/src/util/index.ts +2 -2
  635. package/src/util/omit.ts +8 -4
  636. package/cjs/date/index.d.ts +0 -7
  637. package/cjs/date/index.js +0 -15
  638. package/cjs/date/index.js.map +0 -1
  639. package/cjs/form/ConfirmationPanel.js.map +0 -1
  640. package/cjs/form/Fieldset/index.js.map +0 -1
  641. package/cjs/form/Select.js.map +0 -1
  642. package/cjs/form/Switch.js.map +0 -1
  643. package/cjs/form/TextField.js.map +0 -1
  644. package/cjs/form/Textarea.js.map +0 -1
  645. package/cjs/form/TextareaCounter.js.map +0 -1
  646. package/cjs/form/index.d.ts +0 -11
  647. package/cjs/form/index.js +0 -32
  648. package/cjs/form/index.js.map +0 -1
  649. package/cjs/overlays/index.d.ts +0 -2
  650. package/cjs/overlays/index.js +0 -6
  651. package/cjs/overlays/index.js.map +0 -1
  652. package/cjs/overlays/portal/Portal.js.map +0 -1
  653. package/esm/date/index.d.ts +0 -7
  654. package/esm/date/index.js +0 -4
  655. package/esm/date/index.js.map +0 -1
  656. package/esm/form/ConfirmationPanel.js.map +0 -1
  657. package/esm/form/Fieldset/index.js +0 -3
  658. package/esm/form/Fieldset/index.js.map +0 -1
  659. package/esm/form/Select.js.map +0 -1
  660. package/esm/form/Switch.js.map +0 -1
  661. package/esm/form/TextField.js.map +0 -1
  662. package/esm/form/Textarea.js.map +0 -1
  663. package/esm/form/TextareaCounter.js.map +0 -1
  664. package/esm/form/index.d.ts +0 -11
  665. package/esm/form/index.js +0 -12
  666. package/esm/form/index.js.map +0 -1
  667. package/esm/overlays/index.d.ts +0 -2
  668. package/esm/overlays/index.js +0 -2
  669. package/esm/overlays/index.js.map +0 -1
  670. package/esm/overlays/portal/Portal.js.map +0 -1
  671. package/src/date/index.ts +0 -17
  672. package/src/form/index.ts +0 -24
  673. package/src/overlays/index.ts +0 -2
  674. /package/cjs/form/{Fieldset → fieldset}/Fieldset.d.ts +0 -0
  675. /package/cjs/form/{Fieldset → fieldset}/Fieldset.js +0 -0
  676. /package/cjs/form/{Fieldset → fieldset}/context.d.ts +0 -0
  677. /package/cjs/form/{Fieldset → fieldset}/context.js +0 -0
  678. /package/cjs/form/{Fieldset → fieldset}/useFieldset.d.ts +0 -0
  679. /package/cjs/form/{Fieldset → fieldset}/useFieldset.js +0 -0
  680. /package/cjs/form/{TextareaCounter.d.ts → textarea/TextareaCounter.d.ts} +0 -0
  681. /package/esm/form/{Fieldset → fieldset}/Fieldset.d.ts +0 -0
  682. /package/esm/form/{Fieldset → fieldset}/Fieldset.js +0 -0
  683. /package/esm/form/{Fieldset → fieldset}/context.d.ts +0 -0
  684. /package/esm/form/{Fieldset → fieldset}/context.js +0 -0
  685. /package/esm/form/{Fieldset → fieldset}/useFieldset.d.ts +0 -0
  686. /package/esm/form/{Fieldset → fieldset}/useFieldset.js +0 -0
  687. /package/esm/form/{TextareaCounter.d.ts → textarea/TextareaCounter.d.ts} +0 -0
  688. /package/src/form/{Fieldset → fieldset}/Fieldset.tsx +0 -0
  689. /package/src/form/{Fieldset → fieldset}/context.ts +0 -0
  690. /package/src/form/{Fieldset → fieldset}/useFieldset.ts +0 -0
@@ -1,2 +1,10 @@
1
- export { default as LinkPanel } from "./LinkPanel";
2
- export { type LinkPanelProps } from "./LinkPanel";
1
+ "use client";
2
+ export { default as LinkPanel, type LinkPanelProps } from "./LinkPanel";
3
+ export {
4
+ default as LinkPanelTitle,
5
+ type LinkPanelTitleProps,
6
+ } from "./LinkPanelTitle";
7
+ export {
8
+ default as LinkPanelDescription,
9
+ type LinkPanelDescriptionProps,
10
+ } from "./LinkPanelDescription";
package/src/list/index.ts CHANGED
@@ -1,2 +1,4 @@
1
+ "use client";
1
2
  export { default as List } from "./List";
2
3
  export type { ListProps } from "./types";
4
+ export { default as ListItem, type ListItemProps } from "./ListItem";
@@ -1,2 +1,3 @@
1
+ "use client";
1
2
  export { default as Loader } from "./Loader";
2
3
  export { type LoaderProps } from "./Loader";
@@ -1,5 +1,6 @@
1
1
  import { fireEvent, render, screen, waitFor } from "@testing-library/react";
2
2
  import React, { useState } from "react";
3
+ import { describe, expect, test } from "vitest";
3
4
  import { Button, Modal } from "..";
4
5
  import { BODY_CLASS } from "./ModalUtils";
5
6
 
@@ -3,7 +3,7 @@ import cl from "clsx";
3
3
  import React, { forwardRef, useContext, useEffect, useRef } from "react";
4
4
  import { createPortal } from "react-dom";
5
5
  import { DateContext } from "../date/context";
6
- import { useProvider } from "../provider";
6
+ import { useProvider } from "../provider/Provider";
7
7
  import { Detail, Heading } from "../typography";
8
8
  import { composeEventHandlers } from "../util/composeEventHandlers";
9
9
  import { useId } from "../util/hooks";
@@ -98,8 +98,8 @@ export const Modal = forwardRef<HTMLDialogElement, ModalProps>(
98
98
  const portalNode = useFloatingPortalNode({ root: rootElement });
99
99
 
100
100
  const dateContext = useContext(DateContext);
101
- const modalContext = useModalContext(false);
102
- if (modalContext && !dateContext) {
101
+ const isNested = useModalContext(false) !== undefined;
102
+ if (isNested && !dateContext) {
103
103
  console.error("Modals should not be nested");
104
104
  }
105
105
 
@@ -130,7 +130,7 @@ export const Modal = forwardRef<HTMLDialogElement, ModalProps>(
130
130
  }
131
131
  }, [modalRef, portalNode, open]);
132
132
 
133
- useBodyScrollLock(modalRef, portalNode);
133
+ useBodyScrollLock(modalRef, portalNode, isNested);
134
134
 
135
135
  const isWidthPreset =
136
136
  typeof width === "string" && ["small", "medium"].includes(width);
@@ -18,8 +18,10 @@ export const BODY_CLASS = "navds-modal__document-body";
18
18
  export function useBodyScrollLock(
19
19
  modalRef: React.RefObject<HTMLDialogElement>,
20
20
  portalNode: HTMLElement | null,
21
+ isNested: boolean,
21
22
  ) {
22
23
  React.useEffect(() => {
24
+ if (isNested) return;
23
25
  if (!modalRef.current || !portalNode) return; // We check both to avoid running this twice when not using portal
24
26
  if (modalRef.current.open) document.body.classList.add(BODY_CLASS); // In case `open` is true initially
25
27
 
@@ -35,5 +37,5 @@ export function useBodyScrollLock(
35
37
  observer.disconnect();
36
38
  document.body.classList.remove(BODY_CLASS); // In case modal is unmounted before it's closed
37
39
  };
38
- }, [modalRef, portalNode]);
40
+ }, [modalRef, portalNode, isNested]);
39
41
  }
@@ -1,5 +1,6 @@
1
+ "use client";
1
2
  export { default as Modal } from "./Modal";
2
- export { type ModalBodyProps } from "./ModalBody";
3
- export { type ModalFooterProps } from "./ModalFooter";
4
- export { type ModalHeaderProps } from "./ModalHeader";
3
+ export { default as ModalBody, type ModalBodyProps } from "./ModalBody";
4
+ export { default as ModalFooter, type ModalFooterProps } from "./ModalFooter";
5
+ export { default as ModalHeader, type ModalHeaderProps } from "./ModalHeader";
5
6
  export { type ModalProps } from "./types";
@@ -339,3 +339,57 @@ ChromaticViewportTesting.parameters = {
339
339
  },
340
340
  },
341
341
  };
342
+
343
+ // For testing TS error messages:
344
+
345
+ /* const PropTypeTest = () => {
346
+ return (
347
+ <>
348
+ <Modal header={{ heading: "Label" }}>OK</Modal>
349
+
350
+ <Modal header={{ heading: "Label" }} aria-label="Label">
351
+ OK
352
+ </Modal>
353
+
354
+ <Modal header={{ heading: "Label" }} aria-labelledby="Label">
355
+ OK
356
+ </Modal>
357
+
358
+ <Modal aria-label="Label">OK</Modal>
359
+
360
+ <Modal aria-labelledby="Label">OK</Modal>
361
+
362
+ <Modal aria-label="Label" open onClose={() => null}>
363
+ OK
364
+ </Modal>
365
+
366
+ <Modal>Mangler label</Modal>
367
+
368
+ <Modal open>Mangler onClose eller label</Modal>
369
+
370
+ <Modal open aria-label="Label">
371
+ Mangler onClose
372
+ </Modal>
373
+
374
+ <Modal open onClose={() => null}>
375
+ Mangler label
376
+ </Modal>
377
+
378
+ <Modal header={{ heading: "Label" }} open>
379
+ Mangler onClose
380
+ </Modal>
381
+
382
+ <Modal
383
+ header={{ heading: "Label" }}
384
+ aria-label="Label"
385
+ aria-labelledby="Label"
386
+ >
387
+ For mange labels
388
+ </Modal>
389
+
390
+ <Modal aria-label="Label" aria-labelledby="Label">
391
+ For mange labels
392
+ </Modal>
393
+ </>
394
+ );
395
+ }; */
@@ -0,0 +1,78 @@
1
+ import { expectTypeOf } from "vitest";
2
+ import { ModalProps } from "./types";
3
+
4
+ test("ModalProps works as intended", () => {
5
+ expectTypeOf({
6
+ header: { heading: "Label" },
7
+ children: "OK",
8
+ }).toMatchTypeOf<ModalProps>();
9
+
10
+ expectTypeOf({
11
+ header: { heading: "Label" },
12
+ "aria-label": "Label",
13
+ children: "OK",
14
+ }).toMatchTypeOf<ModalProps>();
15
+
16
+ expectTypeOf({
17
+ header: { heading: "Label" },
18
+ "aria-labelledby": "Label",
19
+ children: "OK",
20
+ }).toMatchTypeOf<ModalProps>();
21
+
22
+ expectTypeOf({
23
+ "aria-label": "Label",
24
+ children: "OK",
25
+ }).toMatchTypeOf<ModalProps>();
26
+
27
+ expectTypeOf({
28
+ "aria-labelledby": "Label",
29
+ children: "OK",
30
+ }).toMatchTypeOf<ModalProps>();
31
+
32
+ expectTypeOf({
33
+ "aria-label": "Label",
34
+ open: true,
35
+ onClose: () => null,
36
+ children: "OK",
37
+ }).toMatchTypeOf<ModalProps>();
38
+
39
+ expectTypeOf({
40
+ children: "Mangler label",
41
+ }).not.toMatchTypeOf<ModalProps>();
42
+
43
+ expectTypeOf({
44
+ open: true,
45
+ children: "Mangler onClose eller label",
46
+ }).not.toMatchTypeOf<ModalProps>();
47
+
48
+ expectTypeOf({
49
+ open: true,
50
+ "aria-label": "Label",
51
+ children: "Mangler onClose",
52
+ }).not.toMatchTypeOf<ModalProps>();
53
+
54
+ expectTypeOf({
55
+ open: true,
56
+ onClose: () => null,
57
+ children: "Mangler label",
58
+ }).not.toMatchTypeOf<ModalProps>();
59
+
60
+ expectTypeOf({
61
+ header: { heading: "Label" },
62
+ open: true,
63
+ children: "Mangler onClose",
64
+ }).not.toMatchTypeOf<ModalProps>();
65
+
66
+ expectTypeOf({
67
+ header: { heading: "Label" },
68
+ "aria-label": "Label",
69
+ "aria-labelledby": "Label",
70
+ children: "For mange labels",
71
+ }).not.toMatchTypeOf<ModalProps>();
72
+
73
+ expectTypeOf({
74
+ "aria-label": "Label",
75
+ "aria-labelledby": "Label",
76
+ children: "For mange labels",
77
+ }).not.toMatchTypeOf<ModalProps>();
78
+ });
@@ -81,11 +81,25 @@ interface ModalPropsBase extends React.DialogHTMLAttributes<HTMLDialogElement> {
81
81
  // Require onClose if you use open & Require either header, aria-labelledby or aria-label
82
82
  export type ModalProps = ModalPropsBase &
83
83
  (
84
- | { open?: never }
85
- | { open: boolean | undefined; onClose: ModalPropsBase["onClose"] }
84
+ | { onClose: ModalPropsBase["onClose"]; open: boolean | undefined }
85
+ | { onClose?: ModalPropsBase["onClose"]; open?: never }
86
86
  ) &
87
87
  (
88
- | { header: ModalPropsBase["header"] }
88
+ | {
89
+ header: ModalPropsBase["header"];
90
+ "aria-labelledby": string;
91
+ "aria-label"?: never;
92
+ }
93
+ | {
94
+ header: ModalPropsBase["header"];
95
+ "aria-label": string;
96
+ "aria-labelledby"?: never;
97
+ }
98
+ | {
99
+ header: ModalPropsBase["header"];
100
+ "aria-labelledby"?: never;
101
+ "aria-label"?: never;
102
+ }
89
103
  | { "aria-labelledby": string; "aria-label"?: never }
90
104
  | { "aria-labelledby"?: never; "aria-label": string }
91
105
  );
@@ -1 +1,6 @@
1
+ "use client";
1
2
  export { default as Pagination, type PaginationProps } from "./Pagination";
3
+ export {
4
+ default as PaginationItem,
5
+ type PaginationItemProps,
6
+ } from "./PaginationItem";
@@ -1,15 +1,16 @@
1
1
  import faker from "faker";
2
+ import { describe, expect, test } from "vitest";
2
3
  import { getSteps } from "./Pagination";
3
4
 
4
5
  describe("getSteps", () => {
5
- it("lists all pages when count is <= 7", () => {
6
+ test("lists all pages when count is <= 7", () => {
6
7
  const count = faker.datatype.number({ min: 1, max: 7 });
7
8
  expect(getSteps({ page: 1, count })).toEqual(
8
9
  Array.from({ length: count }, (_, i) => i + 1),
9
10
  );
10
11
  });
11
12
 
12
- it("has an end ellipsis when count >= 8", () => {
13
+ test("has an end ellipsis when count >= 8", () => {
13
14
  const count = faker.datatype.number({ min: 8 });
14
15
  const page = faker.datatype.number({ min: 1, max: 4 });
15
16
  expect(
@@ -20,7 +21,7 @@ describe("getSteps", () => {
20
21
  ).toEqual([1, 2, 3, 4, 5, "ellipsis", count]);
21
22
  });
22
23
 
23
- it("has a start ellipsis when count - page >= 3", () => {
24
+ test("has a start ellipsis when count - page >= 3", () => {
24
25
  const count = faker.datatype.number({ min: 8 });
25
26
  const page = faker.datatype.number({ min: count - 3, max: count });
26
27
  expect(
@@ -39,7 +40,7 @@ describe("getSteps", () => {
39
40
  ]);
40
41
  });
41
42
 
42
- it("has start & end ellipsis when count is high", () => {
43
+ test("has start & end ellipsis when count is high", () => {
43
44
  const count = faker.datatype.number({ min: 9 });
44
45
  const page = faker.datatype.number({ min: 5, max: count - 4 });
45
46
  expect(
@@ -50,7 +51,7 @@ describe("getSteps", () => {
50
51
  ).toEqual([1, "ellipsis", page - 1, page, page + 1, "ellipsis", count]);
51
52
  });
52
53
 
53
- it("can have a reduced siblingCount", () => {
54
+ test("can have a reduced siblingCount", () => {
54
55
  const count = faker.datatype.number({ min: 7 });
55
56
  const page = faker.datatype.number({ min: 4, max: count - 3 });
56
57
  expect(
@@ -62,7 +63,7 @@ describe("getSteps", () => {
62
63
  ).toEqual([1, "ellipsis", page, "ellipsis", count]);
63
64
  });
64
65
 
65
- it("can have an increased siblingCount", () => {
66
+ test("can have an increased siblingCount", () => {
66
67
  const count = faker.datatype.number({ min: 11 });
67
68
  const page = faker.datatype.number({ min: 6, max: count - 5 });
68
69
  expect(
@@ -84,7 +85,7 @@ describe("getSteps", () => {
84
85
  ]);
85
86
  });
86
87
 
87
- it("can have an reduced boundaryCount", () => {
88
+ test("can have an reduced boundaryCount", () => {
88
89
  const count = faker.datatype.number({ min: 7 });
89
90
  const page = faker.datatype.number({ min: 4, max: count - 3 });
90
91
  expect(
@@ -96,7 +97,7 @@ describe("getSteps", () => {
96
97
  ).toEqual(["ellipsis", page - 1, page, page + 1, "ellipsis"]);
97
98
  });
98
99
 
99
- it("can have an increased boundaryCount", () => {
100
+ test("can have an increased boundaryCount", () => {
100
101
  const count = faker.datatype.number({ min: 11 });
101
102
  const page = faker.datatype.number({ min: 6, max: count - 5 });
102
103
  expect(
@@ -1,5 +1,6 @@
1
1
  import { act, fireEvent, screen } from "@testing-library/react";
2
2
  import React from "react";
3
+ import { describe, expect, test, vi } from "vitest";
3
4
  import { renderWithStyles as render } from "../../tests/utils";
4
5
  import Popover from "./Popover";
5
6
 
@@ -34,8 +35,8 @@ describe("Popover", () => {
34
35
  expect(screen.getByTestId("popover-id")).not.toBeVisible();
35
36
  });
36
37
 
37
- it("outsideClick", async () => {
38
- const fn = jest.fn();
38
+ test("outsideClick", async () => {
39
+ const fn = vi.fn();
39
40
  render(
40
41
  <div>
41
42
  <Popover
@@ -58,8 +59,8 @@ describe("Popover", () => {
58
59
  expect(fn).toHaveBeenCalled();
59
60
  });
60
61
 
61
- it("escape", async () => {
62
- const fn = jest.fn();
62
+ test("escape", async () => {
63
+ const fn = vi.fn();
63
64
  const { container } = render(
64
65
  <div>
65
66
  <Popover
@@ -83,8 +84,8 @@ describe("Popover", () => {
83
84
  expect(fn).toHaveBeenCalled();
84
85
  });
85
86
 
86
- it("keep open on popover-focus", async () => {
87
- const fn = jest.fn();
87
+ test("keep open on popover-focus", async () => {
88
+ const fn = vi.fn();
88
89
  render(
89
90
  <div>
90
91
  <Popover
@@ -106,8 +107,8 @@ describe("Popover", () => {
106
107
  expect(fn).toHaveBeenCalledTimes(0);
107
108
  }, 20000);
108
109
 
109
- it("keep open on popover-click", async () => {
110
- const fn = jest.fn();
110
+ test("keep open on popover-click", async () => {
111
+ const fn = vi.fn();
111
112
  render(
112
113
  <div>
113
114
  <Popover
@@ -1,2 +1,6 @@
1
+ "use client";
1
2
  export { default as Popover, type PopoverProps } from "./Popover";
2
- export { type PopoverContentProps } from "./PopoverContent";
3
+ export {
4
+ default as PopoverContent,
5
+ type PopoverContentProps,
6
+ } from "./PopoverContent";
@@ -1,6 +1,6 @@
1
1
  import React, { useState } from "react";
2
2
  import { Button } from "../button";
3
- import { Popover } from "../index";
3
+ import Popover from "./Popover";
4
4
 
5
5
  const placements = [
6
6
  "top",
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { Box } from "../../layout/box";
3
- import { Provider } from "../../provider";
2
+ import { Box } from "../layout/box";
3
+ import { Provider } from "../provider";
4
4
  import { Portal } from "./Portal";
5
5
 
6
6
  export default {
@@ -12,7 +12,7 @@ export default {
12
12
 
13
13
  export const Default = () => {
14
14
  return (
15
- <Box background="surface-neutral-subtle" border>
15
+ <Box background="surface-neutral-subtle">
16
16
  <h1>In regular DOM tree</h1>
17
17
  <p>
18
18
  Lorem ipsum dolor sit amet consectetur adipisicing elit. Temporibus
@@ -65,7 +65,10 @@ export const CustomPortalRootFromProvider = () => {
65
65
  <p>This is mounted to Tree B, while created inside Tree A</p>
66
66
  </Portal>
67
67
  </Box>
68
- <Box background="surface-alt-3-subtle" ref={setPortalContainer}>
68
+ <Box
69
+ background="surface-alt-3-subtle"
70
+ ref={(el) => el && setPortalContainer(el)}
71
+ >
69
72
  <h1>Tree B</h1>
70
73
  </Box>
71
74
  </Box>
@@ -75,7 +78,7 @@ export const CustomPortalRootFromProvider = () => {
75
78
 
76
79
  export const AsChild = () => {
77
80
  return (
78
- <Box background="surface-neutral-subtle" border>
81
+ <Box background="surface-neutral-subtle">
79
82
  <h1>In regular DOM tree</h1>
80
83
  <p>
81
84
  Lorem ipsum dolor sit amet consectetur adipisicing elit. Temporibus
@@ -1,8 +1,8 @@
1
1
  import React, { HTMLAttributes, forwardRef } from "react";
2
2
  import ReactDOM from "react-dom";
3
- import { useProvider } from "../../provider";
4
- import { Slot } from "../../util/Slot";
5
- import { AsChildProps } from "../../util/types";
3
+ import { useProvider } from "../provider/Provider";
4
+ import { Slot } from "../util/Slot";
5
+ import { AsChildProps } from "../util/types";
6
6
 
7
7
  interface PortalBaseProps extends HTMLAttributes<HTMLDivElement> {
8
8
  /**
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ export { default as Portal, type PortalProps } from "./Portal";
@@ -1 +1,2 @@
1
- export { default as Provider, useProvider } from "./Provider";
1
+ "use client";
2
+ export { default as Provider, type ProviderProps } from "./Provider";
@@ -1,2 +1,2 @@
1
- export { default as ReadMore } from "./ReadMore";
2
- export { type ReadMoreProps } from "./ReadMore";
1
+ "use client";
2
+ export { default as ReadMore, type ReadMoreProps } from "./ReadMore";
@@ -1,2 +1,2 @@
1
- export { default as Skeleton } from "./Skeleton";
2
- export type { SkeletonProps } from "./Skeleton";
1
+ "use client";
2
+ export { default as Skeleton, type SkeletonProps } from "./Skeleton";
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import { Skeleton } from ".";
3
3
  import { Alert } from "../alert";
4
4
  import { Button } from "../button";
5
- import { Checkbox } from "../form";
5
+ import { Checkbox } from "../form/checkbox";
6
6
  import { BodyLong, Heading } from "../typography";
7
7
 
8
8
  export default {
@@ -1 +1,3 @@
1
+ "use client";
1
2
  export { default as Stepper, type StepperProps } from "./Stepper";
3
+ export { default as StepperStep, type StepperStepProps } from "./Step";
@@ -1,9 +1,16 @@
1
- export { type BodyProps } from "./Body";
2
- export { type ColumnHeaderProps } from "./ColumnHeader";
3
- export { type DataCellProps } from "./DataCell";
4
- export { type ExpandableRowProps } from "./ExpandableRow";
5
- export { type HeaderProps } from "./Header";
6
- export { type HeaderCellProps } from "./HeaderCell";
7
- export { type RowProps } from "./Row";
1
+ "use client";
2
+ export { default as TableBody, type BodyProps } from "./Body";
3
+ export {
4
+ default as TableColumnHeader,
5
+ type ColumnHeaderProps,
6
+ } from "./ColumnHeader";
7
+ export { default as TableDataCell, type DataCellProps } from "./DataCell";
8
+ export {
9
+ default as TableExpandableRow,
10
+ type ExpandableRowProps,
11
+ } from "./ExpandableRow";
12
+ export { default as TableHeader, type HeaderProps } from "./Header";
13
+ export { default as TableHeaderCell, type HeaderCellProps } from "./HeaderCell";
14
+ export { default as TableRow, type RowProps } from "./Row";
8
15
  export { default as Table, type TableProps } from "./Table";
9
16
  export { type SortState } from "./types";
@@ -1,7 +1,7 @@
1
1
  import React, { useState } from "react";
2
2
  import { Table, TableProps } from "../";
3
3
  import { Button } from "../../button";
4
- import { Checkbox } from "../../form";
4
+ import { Checkbox } from "../../form/checkbox";
5
5
  import { VStack } from "../../layout/stack";
6
6
  import {
7
7
  Expandable,
@@ -1,6 +1,6 @@
1
1
  import React, { useState } from "react";
2
2
  import { Button } from "../../button";
3
- import { Checkbox } from "../../form";
3
+ import { Checkbox } from "../../form/checkbox";
4
4
  import { Link } from "../../link";
5
5
  import Table from "../Table";
6
6
 
@@ -1,5 +1,6 @@
1
1
  import { fireEvent, render, screen } from "@testing-library/react";
2
2
  import React from "react";
3
+ import { describe, expect, test } from "vitest";
3
4
  import { Tabs } from "./Tabs";
4
5
 
5
6
  const TestTabs = ({
package/src/tabs/index.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { type TabProps } from "./Tab";
2
- export { type TabListProps } from "./TabList";
3
- export { type TabPanelProps } from "./TabPanel";
1
+ "use client";
2
+ export { default as TabsTab, type TabProps } from "./Tab";
3
+ export { default as TabsList, type TabListProps } from "./TabList";
4
+ export { default as TabsPanel, type TabPanelProps } from "./TabPanel";
4
5
  export { default as Tabs, type TabsProps } from "./Tabs";
package/src/tag/index.ts CHANGED
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export { default as Tag, type TagProps } from "./Tag";
@@ -1,6 +1,9 @@
1
- export { default as Timeline } from "./Timeline";
2
- export type { TimelineProps } from "./Timeline";
3
- export type { TimelineRowProps } from "./TimelineRow";
4
- export type { TimelinePinProps } from "./Pin";
5
- export type { TimelinePeriodProps } from "./period";
6
- export type { TimelineZoomButtonProps } from "./zoom/ZoomButton";
1
+ "use client";
2
+ export { default as Timeline, type TimelineProps } from "./Timeline";
3
+ export { default as TimelineRow, type TimelineRowProps } from "./TimelineRow";
4
+ export { default as TimelinePin, type TimelinePinProps } from "./Pin";
5
+ export { default as TimelinePeriod, type TimelinePeriodProps } from "./period";
6
+ export {
7
+ default as TimelineZoomButton,
8
+ type TimelineZoomButtonProps,
9
+ } from "./zoom/ZoomButton";
@@ -5,7 +5,7 @@ import {
5
5
  EnvelopeOpenIcon,
6
6
  InboxUpIcon,
7
7
  } from "@navikt/aksel-icons";
8
- import { ToggleGroup } from "../index";
8
+ import ToggleGroup from "./ToggleGroup";
9
9
 
10
10
  const meta: Meta<typeof ToggleGroup> = {
11
11
  title: "ds-react/ToggleGroup",
@@ -1,5 +1,6 @@
1
1
  import { fireEvent, render, screen } from "@testing-library/react";
2
2
  import React from "react";
3
+ import { describe, expect, test } from "vitest";
3
4
  import { ToggleGroup } from "./ToggleGroup";
4
5
 
5
6
  const TestToggleGroup = ({ value, onChange, defaultValue }: any) => (
@@ -3,7 +3,7 @@ import cl from "clsx";
3
3
  import React, { HTMLAttributes, forwardRef, useState } from "react";
4
4
  import { Label } from "../typography";
5
5
  import { useId } from "../util/hooks";
6
- import ToggleItem, { ToggleItemProps } from "./ToggleItem";
6
+ import ToggleItem, { ToggleGroupItemProps } from "./ToggleItem";
7
7
  import { ToggleGroupContext } from "./context";
8
8
 
9
9
  export interface ToggleGroupProps
@@ -45,10 +45,10 @@ interface ToggleGroupComponent
45
45
  ToggleGroupProps & React.RefAttributes<HTMLDivElement>
46
46
  > {
47
47
  /**
48
- * @see 🏷️ {@link ToggleItemProps}
48
+ * @see 🏷️ {@link ToggleGroupItemProps}
49
49
  */
50
50
  Item: React.ForwardRefExoticComponent<
51
- ToggleItemProps & React.RefAttributes<HTMLButtonElement>
51
+ ToggleGroupItemProps & React.RefAttributes<HTMLButtonElement>
52
52
  >;
53
53
  }
54
54
 
@@ -4,7 +4,7 @@ import React, { forwardRef, useContext } from "react";
4
4
  import { BodyShort } from "../typography/BodyShort";
5
5
  import { ToggleGroupContext } from "./context";
6
6
 
7
- export interface ToggleItemProps
7
+ export interface ToggleGroupItemProps
8
8
  extends React.HTMLAttributes<HTMLButtonElement> {
9
9
  /**
10
10
  * Content
@@ -16,7 +16,7 @@ export interface ToggleItemProps
16
16
  value: string;
17
17
  }
18
18
 
19
- const ToggleItem = forwardRef<HTMLButtonElement, ToggleItemProps>(
19
+ const ToggleItem = forwardRef<HTMLButtonElement, ToggleGroupItemProps>(
20
20
  ({ className, children, ...rest }, ref) => {
21
21
  const context = useContext(ToggleGroupContext);
22
22
 
@@ -1,2 +1,6 @@
1
+ "use client";
1
2
  export { default as ToggleGroup, type ToggleGroupProps } from "./ToggleGroup";
2
- export { type ToggleItemProps } from "./ToggleItem";
3
+ export {
4
+ default as ToggleGroupItem,
5
+ type ToggleGroupItemProps,
6
+ } from "./ToggleItem";