@navikt/ds-react 6.4.1 → 6.6.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 (349) hide show
  1. package/cjs/date/datepicker/parts/DayButton.js +1 -1
  2. package/cjs/date/datepicker/parts/DayButton.js.map +1 -1
  3. package/cjs/date/hooks/useDatepicker.js +4 -1
  4. package/cjs/date/hooks/useDatepicker.js.map +1 -1
  5. package/cjs/date/hooks/useMonthPicker.js +4 -1
  6. package/cjs/date/hooks/useMonthPicker.js.map +1 -1
  7. package/cjs/date/monthpicker/MonthButton.js +1 -1
  8. package/cjs/date/monthpicker/MonthButton.js.map +1 -1
  9. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +2 -4
  10. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  11. package/cjs/form/combobox/Input/Input.js +6 -1
  12. package/cjs/form/combobox/Input/Input.js.map +1 -1
  13. package/cjs/form/form-summary/FormSummary.d.ts +82 -0
  14. package/cjs/form/form-summary/FormSummary.js +81 -0
  15. package/cjs/form/form-summary/FormSummary.js.map +1 -0
  16. package/cjs/form/form-summary/FormSummaryAnswer.d.ts +11 -0
  17. package/cjs/form/form-summary/FormSummaryAnswer.js +25 -0
  18. package/cjs/form/form-summary/FormSummaryAnswer.js.map +1 -0
  19. package/cjs/form/form-summary/FormSummaryAnswers.d.ts +9 -0
  20. package/cjs/{toggle-group/ToggleItem.js → form/form-summary/FormSummaryAnswers.js} +6 -10
  21. package/cjs/form/form-summary/FormSummaryAnswers.js.map +1 -0
  22. package/cjs/form/form-summary/FormSummaryEditLink.d.ts +17 -0
  23. package/cjs/form/form-summary/FormSummaryEditLink.js +49 -0
  24. package/cjs/form/form-summary/FormSummaryEditLink.js.map +1 -0
  25. package/cjs/form/form-summary/FormSummaryHeader.d.ts +9 -0
  26. package/cjs/{tabs/TabPanel.js → form/form-summary/FormSummaryHeader.js} +6 -6
  27. package/cjs/form/form-summary/FormSummaryHeader.js.map +1 -0
  28. package/cjs/form/form-summary/FormSummaryHeading.d.ts +14 -0
  29. package/cjs/form/form-summary/FormSummaryHeading.js +31 -0
  30. package/cjs/form/form-summary/FormSummaryHeading.js.map +1 -0
  31. package/cjs/form/form-summary/FormSummaryLabel.d.ts +6 -0
  32. package/cjs/form/form-summary/FormSummaryLabel.js +45 -0
  33. package/cjs/form/form-summary/FormSummaryLabel.js.map +1 -0
  34. package/cjs/form/form-summary/FormSummaryValue.d.ts +6 -0
  35. package/cjs/form/form-summary/FormSummaryValue.js +49 -0
  36. package/cjs/form/form-summary/FormSummaryValue.js.map +1 -0
  37. package/cjs/form/form-summary/index.d.ts +8 -0
  38. package/cjs/form/form-summary/index.js +24 -0
  39. package/cjs/form/form-summary/index.js.map +1 -0
  40. package/cjs/index.d.ts +3 -2
  41. package/cjs/index.js +5 -3
  42. package/cjs/index.js.map +1 -1
  43. package/cjs/tabs/Tabs.context.d.ts +30 -0
  44. package/cjs/tabs/Tabs.context.js +14 -0
  45. package/cjs/tabs/Tabs.context.js.map +1 -0
  46. package/cjs/tabs/Tabs.d.ts +8 -43
  47. package/cjs/tabs/Tabs.js +19 -12
  48. package/cjs/tabs/Tabs.js.map +1 -1
  49. package/cjs/tabs/Tabs.types.d.ts +41 -0
  50. package/cjs/tabs/Tabs.types.js +3 -0
  51. package/cjs/tabs/Tabs.types.js.map +1 -0
  52. package/cjs/tabs/index.d.ts +5 -4
  53. package/cjs/tabs/index.js +6 -6
  54. package/cjs/tabs/index.js.map +1 -1
  55. package/cjs/tabs/parts/tab/Tab.d.ts +25 -0
  56. package/cjs/tabs/parts/tab/Tab.js +64 -0
  57. package/cjs/tabs/parts/tab/Tab.js.map +1 -0
  58. package/cjs/tabs/parts/tab/useTab.d.ts +20 -0
  59. package/cjs/tabs/parts/tab/useTab.js +29 -0
  60. package/cjs/tabs/parts/tab/useTab.js.map +1 -0
  61. package/cjs/tabs/parts/tablist/ScrollButtons.d.ts +8 -0
  62. package/cjs/tabs/parts/tablist/ScrollButtons.js +15 -0
  63. package/cjs/tabs/parts/tablist/ScrollButtons.js.map +1 -0
  64. package/{esm/tabs → cjs/tabs/parts/tablist}/TabList.d.ts +1 -1
  65. package/cjs/tabs/parts/tablist/TabList.js +61 -0
  66. package/cjs/tabs/parts/tablist/TabList.js.map +1 -0
  67. package/cjs/tabs/parts/tablist/useScrollButtons.d.ts +12 -0
  68. package/cjs/tabs/parts/tablist/useScrollButtons.js +61 -0
  69. package/cjs/tabs/parts/tablist/useScrollButtons.js.map +1 -0
  70. package/cjs/tabs/parts/tablist/useTabList.d.ts +7 -0
  71. package/cjs/tabs/parts/tablist/useTabList.js +66 -0
  72. package/cjs/tabs/parts/tablist/useTabList.js.map +1 -0
  73. package/cjs/tabs/parts/tabpanel/TabPanel.d.ts +25 -0
  74. package/cjs/tabs/{Tab.js → parts/tabpanel/TabPanel.js} +7 -20
  75. package/cjs/tabs/parts/tabpanel/TabPanel.js.map +1 -0
  76. package/cjs/tabs/parts/tabpanel/useTabPanel.d.ts +12 -0
  77. package/cjs/tabs/parts/tabpanel/useTabPanel.js +17 -0
  78. package/cjs/tabs/parts/tabpanel/useTabPanel.js.map +1 -0
  79. package/cjs/tabs/useTabs.d.ts +14 -0
  80. package/cjs/tabs/useTabs.js +43 -0
  81. package/cjs/tabs/useTabs.js.map +1 -0
  82. package/cjs/toggle-group/ToggleGroup.context.d.ts +31 -0
  83. package/cjs/toggle-group/ToggleGroup.context.js +16 -0
  84. package/cjs/toggle-group/ToggleGroup.context.js.map +1 -0
  85. package/cjs/toggle-group/ToggleGroup.d.ts +5 -36
  86. package/cjs/toggle-group/ToggleGroup.js +24 -24
  87. package/cjs/toggle-group/ToggleGroup.js.map +1 -1
  88. package/cjs/toggle-group/ToggleGroup.types.d.ts +38 -0
  89. package/cjs/toggle-group/ToggleGroup.types.js +3 -0
  90. package/cjs/toggle-group/ToggleGroup.types.js.map +1 -0
  91. package/cjs/toggle-group/index.d.ts +3 -2
  92. package/cjs/toggle-group/index.js +1 -1
  93. package/cjs/toggle-group/index.js.map +1 -1
  94. package/cjs/toggle-group/{ToggleItem.d.ts → parts/ToggleItem.d.ts} +2 -2
  95. package/cjs/toggle-group/parts/ToggleItem.js +53 -0
  96. package/cjs/toggle-group/parts/ToggleItem.js.map +1 -0
  97. package/cjs/toggle-group/parts/useToggleItem.d.ts +20 -0
  98. package/cjs/toggle-group/parts/useToggleItem.js +76 -0
  99. package/cjs/toggle-group/parts/useToggleItem.js.map +1 -0
  100. package/cjs/toggle-group/useToggleGroup.d.ts +8 -0
  101. package/cjs/toggle-group/useToggleGroup.js +29 -0
  102. package/cjs/toggle-group/useToggleGroup.js.map +1 -0
  103. package/cjs/util/hooks/descendants/descendant.js +10 -1
  104. package/cjs/util/hooks/descendants/descendant.js.map +1 -1
  105. package/cjs/util/hooks/descendants/useDescendant.js +0 -5
  106. package/cjs/util/hooks/descendants/useDescendant.js.map +1 -1
  107. package/esm/date/datepicker/parts/DayButton.js +1 -1
  108. package/esm/date/datepicker/parts/DayButton.js.map +1 -1
  109. package/esm/date/hooks/useDatepicker.js +4 -1
  110. package/esm/date/hooks/useDatepicker.js.map +1 -1
  111. package/esm/date/hooks/useMonthPicker.js +4 -1
  112. package/esm/date/hooks/useMonthPicker.js.map +1 -1
  113. package/esm/date/monthpicker/MonthButton.js +1 -1
  114. package/esm/date/monthpicker/MonthButton.js.map +1 -1
  115. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +2 -4
  116. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  117. package/esm/form/combobox/Input/Input.js +6 -1
  118. package/esm/form/combobox/Input/Input.js.map +1 -1
  119. package/esm/form/form-summary/FormSummary.d.ts +82 -0
  120. package/esm/form/form-summary/FormSummary.js +52 -0
  121. package/esm/form/form-summary/FormSummary.js.map +1 -0
  122. package/esm/form/form-summary/FormSummaryAnswer.d.ts +11 -0
  123. package/esm/form/form-summary/FormSummaryAnswer.js +19 -0
  124. package/esm/form/form-summary/FormSummaryAnswer.js.map +1 -0
  125. package/esm/form/form-summary/FormSummaryAnswers.d.ts +9 -0
  126. package/esm/{tabs/TabPanel.js → form/form-summary/FormSummaryAnswers.js} +5 -6
  127. package/esm/form/form-summary/FormSummaryAnswers.js.map +1 -0
  128. package/esm/form/form-summary/FormSummaryEditLink.d.ts +17 -0
  129. package/esm/form/form-summary/FormSummaryEditLink.js +20 -0
  130. package/esm/form/form-summary/FormSummaryEditLink.js.map +1 -0
  131. package/esm/form/form-summary/FormSummaryHeader.d.ts +9 -0
  132. package/esm/form/form-summary/FormSummaryHeader.js +19 -0
  133. package/esm/form/form-summary/FormSummaryHeader.js.map +1 -0
  134. package/esm/form/form-summary/FormSummaryHeading.d.ts +14 -0
  135. package/esm/form/form-summary/FormSummaryHeading.js +5 -0
  136. package/esm/form/form-summary/FormSummaryHeading.js.map +1 -0
  137. package/esm/form/form-summary/FormSummaryLabel.d.ts +6 -0
  138. package/esm/form/form-summary/FormSummaryLabel.js +19 -0
  139. package/esm/form/form-summary/FormSummaryLabel.js.map +1 -0
  140. package/esm/form/form-summary/FormSummaryValue.d.ts +6 -0
  141. package/esm/form/form-summary/FormSummaryValue.js +20 -0
  142. package/esm/form/form-summary/FormSummaryValue.js.map +1 -0
  143. package/esm/form/form-summary/index.d.ts +8 -0
  144. package/esm/form/form-summary/index.js +10 -0
  145. package/esm/form/form-summary/index.js.map +1 -0
  146. package/esm/index.d.ts +3 -2
  147. package/esm/index.js +2 -1
  148. package/esm/index.js.map +1 -1
  149. package/esm/tabs/Tabs.context.d.ts +30 -0
  150. package/esm/tabs/Tabs.context.js +10 -0
  151. package/esm/tabs/Tabs.context.js.map +1 -0
  152. package/esm/tabs/Tabs.d.ts +8 -43
  153. package/esm/tabs/Tabs.js +19 -12
  154. package/esm/tabs/Tabs.js.map +1 -1
  155. package/esm/tabs/Tabs.types.d.ts +41 -0
  156. package/esm/tabs/Tabs.types.js +2 -0
  157. package/esm/tabs/Tabs.types.js.map +1 -0
  158. package/esm/tabs/index.d.ts +5 -4
  159. package/esm/tabs/index.js +3 -3
  160. package/esm/tabs/index.js.map +1 -1
  161. package/esm/tabs/parts/tab/Tab.d.ts +25 -0
  162. package/esm/tabs/parts/tab/Tab.js +35 -0
  163. package/esm/tabs/parts/tab/Tab.js.map +1 -0
  164. package/esm/tabs/parts/tab/useTab.d.ts +20 -0
  165. package/esm/tabs/parts/tab/useTab.js +25 -0
  166. package/esm/tabs/parts/tab/useTab.js.map +1 -0
  167. package/esm/tabs/parts/tablist/ScrollButtons.d.ts +8 -0
  168. package/esm/tabs/parts/tablist/ScrollButtons.js +10 -0
  169. package/esm/tabs/parts/tablist/ScrollButtons.js.map +1 -0
  170. package/{cjs/tabs → esm/tabs/parts/tablist}/TabList.d.ts +1 -1
  171. package/esm/tabs/parts/tablist/TabList.js +32 -0
  172. package/esm/tabs/parts/tablist/TabList.js.map +1 -0
  173. package/esm/tabs/parts/tablist/useScrollButtons.d.ts +12 -0
  174. package/esm/tabs/parts/tablist/useScrollButtons.js +57 -0
  175. package/esm/tabs/parts/tablist/useScrollButtons.js.map +1 -0
  176. package/esm/tabs/parts/tablist/useTabList.d.ts +7 -0
  177. package/esm/tabs/parts/tablist/useTabList.js +62 -0
  178. package/esm/tabs/parts/tablist/useTabList.js.map +1 -0
  179. package/esm/tabs/parts/tabpanel/TabPanel.d.ts +25 -0
  180. package/esm/tabs/parts/tabpanel/TabPanel.js +22 -0
  181. package/esm/tabs/parts/tabpanel/TabPanel.js.map +1 -0
  182. package/esm/tabs/parts/tabpanel/useTabPanel.d.ts +12 -0
  183. package/esm/tabs/parts/tabpanel/useTabPanel.js +13 -0
  184. package/esm/tabs/parts/tabpanel/useTabPanel.js.map +1 -0
  185. package/esm/tabs/useTabs.d.ts +14 -0
  186. package/esm/tabs/useTabs.js +39 -0
  187. package/esm/tabs/useTabs.js.map +1 -0
  188. package/esm/toggle-group/ToggleGroup.context.d.ts +31 -0
  189. package/esm/toggle-group/ToggleGroup.context.js +12 -0
  190. package/esm/toggle-group/ToggleGroup.context.js.map +1 -0
  191. package/esm/toggle-group/ToggleGroup.d.ts +5 -36
  192. package/esm/toggle-group/ToggleGroup.js +24 -24
  193. package/esm/toggle-group/ToggleGroup.js.map +1 -1
  194. package/esm/toggle-group/ToggleGroup.types.d.ts +38 -0
  195. package/esm/toggle-group/ToggleGroup.types.js +2 -0
  196. package/esm/toggle-group/ToggleGroup.types.js.map +1 -0
  197. package/esm/toggle-group/index.d.ts +3 -2
  198. package/esm/toggle-group/index.js +1 -1
  199. package/esm/toggle-group/index.js.map +1 -1
  200. package/esm/toggle-group/{ToggleItem.d.ts → parts/ToggleItem.d.ts} +2 -2
  201. package/esm/toggle-group/parts/ToggleItem.js +25 -0
  202. package/esm/toggle-group/parts/ToggleItem.js.map +1 -0
  203. package/esm/toggle-group/parts/useToggleItem.d.ts +20 -0
  204. package/esm/toggle-group/parts/useToggleItem.js +72 -0
  205. package/esm/toggle-group/parts/useToggleItem.js.map +1 -0
  206. package/esm/toggle-group/useToggleGroup.d.ts +8 -0
  207. package/esm/toggle-group/useToggleGroup.js +25 -0
  208. package/esm/toggle-group/useToggleGroup.js.map +1 -0
  209. package/esm/util/hooks/descendants/descendant.js +10 -1
  210. package/esm/util/hooks/descendants/descendant.js.map +1 -1
  211. package/esm/util/hooks/descendants/useDescendant.js +0 -5
  212. package/esm/util/hooks/descendants/useDescendant.js.map +1 -1
  213. package/package.json +15 -6
  214. package/src/date/datepicker/parts/DayButton.tsx +2 -0
  215. package/src/date/hooks/useDatepicker.tsx +5 -1
  216. package/src/date/hooks/useMonthPicker.tsx +5 -1
  217. package/src/date/monthpicker/MonthButton.tsx +1 -0
  218. package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +9 -1
  219. package/src/form/combobox/Input/Input.tsx +5 -0
  220. package/src/form/form-summary/FormSummary.tsx +106 -0
  221. package/src/form/form-summary/FormSummaryAnswer.tsx +27 -0
  222. package/src/form/form-summary/FormSummaryAnswers.tsx +25 -0
  223. package/src/form/form-summary/FormSummaryEditLink.tsx +35 -0
  224. package/src/form/form-summary/FormSummaryHeader.tsx +25 -0
  225. package/src/form/form-summary/FormSummaryHeading.tsx +23 -0
  226. package/src/form/form-summary/FormSummaryLabel.tsx +17 -0
  227. package/src/form/form-summary/FormSummaryValue.tsx +24 -0
  228. package/src/form/form-summary/index.ts +30 -0
  229. package/src/index.ts +16 -15
  230. package/src/tabs/Tabs.context.ts +24 -0
  231. package/src/tabs/Tabs.test.tsx +99 -37
  232. package/src/tabs/Tabs.tsx +48 -70
  233. package/src/tabs/Tabs.types.ts +43 -0
  234. package/src/tabs/index.ts +11 -4
  235. package/src/tabs/parts/tab/Tab.tsx +93 -0
  236. package/src/tabs/parts/tab/useTab.ts +52 -0
  237. package/src/tabs/parts/tablist/ScrollButtons.tsx +29 -0
  238. package/src/tabs/parts/tablist/TabList.tsx +56 -0
  239. package/src/tabs/parts/tablist/useScrollButtons.ts +69 -0
  240. package/src/tabs/parts/tablist/useTabList.ts +68 -0
  241. package/src/tabs/parts/tabpanel/TabPanel.tsx +50 -0
  242. package/src/tabs/parts/tabpanel/useTabPanel.ts +18 -0
  243. package/src/tabs/useTabs.ts +51 -0
  244. package/src/toggle-group/ToggleGroup.context.ts +31 -0
  245. package/src/toggle-group/ToggleGroup.test.tsx +57 -16
  246. package/src/toggle-group/ToggleGroup.tsx +63 -90
  247. package/src/toggle-group/ToggleGroup.types.ts +40 -0
  248. package/src/toggle-group/index.ts +3 -2
  249. package/src/toggle-group/parts/ToggleItem.tsx +55 -0
  250. package/src/toggle-group/parts/useToggleItem.ts +104 -0
  251. package/src/toggle-group/useToggleGroup.ts +33 -0
  252. package/src/util/hooks/descendants/descendant.ts +15 -1
  253. package/src/util/hooks/descendants/useDescendant.tsx +0 -5
  254. package/cjs/tabs/Tab.d.ts +0 -18
  255. package/cjs/tabs/Tab.js.map +0 -1
  256. package/cjs/tabs/TabList.js +0 -111
  257. package/cjs/tabs/TabList.js.map +0 -1
  258. package/cjs/tabs/TabPanel.d.ts +0 -13
  259. package/cjs/tabs/TabPanel.js.map +0 -1
  260. package/cjs/tabs/context.d.ts +0 -8
  261. package/cjs/tabs/context.js +0 -6
  262. package/cjs/tabs/context.js.map +0 -1
  263. package/cjs/toggle-group/ToggleItem.js.map +0 -1
  264. package/cjs/toggle-group/context.d.ts +0 -6
  265. package/cjs/toggle-group/context.js +0 -6
  266. package/cjs/toggle-group/context.js.map +0 -1
  267. package/esm/tabs/Tab.d.ts +0 -18
  268. package/esm/tabs/Tab.js +0 -34
  269. package/esm/tabs/Tab.js.map +0 -1
  270. package/esm/tabs/TabList.js +0 -82
  271. package/esm/tabs/TabList.js.map +0 -1
  272. package/esm/tabs/TabPanel.d.ts +0 -13
  273. package/esm/tabs/TabPanel.js.map +0 -1
  274. package/esm/tabs/context.d.ts +0 -8
  275. package/esm/tabs/context.js +0 -3
  276. package/esm/tabs/context.js.map +0 -1
  277. package/esm/toggle-group/ToggleItem.js +0 -24
  278. package/esm/toggle-group/ToggleItem.js.map +0 -1
  279. package/esm/toggle-group/context.d.ts +0 -6
  280. package/esm/toggle-group/context.js +0 -3
  281. package/esm/toggle-group/context.js.map +0 -1
  282. package/src/accordion/accordion.stories.tsx +0 -286
  283. package/src/alert/alert.stories.tsx +0 -306
  284. package/src/button/button.stories.tsx +0 -185
  285. package/src/chat/chat.stories.tsx +0 -341
  286. package/src/chips/chips.stories.tsx +0 -260
  287. package/src/copybutton/copy-button.stories.tsx +0 -261
  288. package/src/date/datepicker/datepicker.stories.tsx +0 -575
  289. package/src/date/monthpicker/monthpicker.stories.tsx +0 -204
  290. package/src/dropdown/dropdown.stories.tsx +0 -124
  291. package/src/expansion-card/expansion-card.stories.tsx +0 -282
  292. package/src/form/checkbox/checkbox.stories.tsx +0 -281
  293. package/src/form/combobox/combobox.stories.tsx +0 -626
  294. package/src/form/confirmation-panel/confirmation-panel.stories.tsx +0 -128
  295. package/src/form/error-summary/error-summary.stories.tsx +0 -81
  296. package/src/form/fieldset/fieldset.stories.tsx +0 -157
  297. package/src/form/file-upload/file-upload-dropzone.stories.tsx +0 -123
  298. package/src/form/file-upload/file-upload-item.stories.tsx +0 -148
  299. package/src/form/file-upload/file-upload.stories.tsx +0 -248
  300. package/src/form/radio/radio.stories.tsx +0 -230
  301. package/src/form/search/search.stories.tsx +0 -238
  302. package/src/form/select/select.stories.tsx +0 -172
  303. package/src/form/switch/switch.stories.tsx +0 -171
  304. package/src/form/textarea/textarea.stories.tsx +0 -254
  305. package/src/form/textfield/text-field.stories.tsx +0 -143
  306. package/src/guide-panel/guidepanel.stories.tsx +0 -90
  307. package/src/help-text/help-text.stories.tsx +0 -91
  308. package/src/internal-header/header.stories.tsx +0 -229
  309. package/src/layout/bleed/Bleed.stories.tsx +0 -395
  310. package/src/layout/box/Box.stories.tsx +0 -380
  311. package/src/layout/grid/h-grid.stories.tsx +0 -122
  312. package/src/layout/page/Page.stories.tsx +0 -271
  313. package/src/layout/responsive/hide.stories.tsx +0 -80
  314. package/src/layout/responsive/show.stories.tsx +0 -80
  315. package/src/layout/sidemal-test/navno-sidemal.stories.tsx +0 -69
  316. package/src/layout/stack/stack.stories.tsx +0 -183
  317. package/src/link/stories/link.stories.tsx +0 -304
  318. package/src/link-panel/link-panel.stories.tsx +0 -59
  319. package/src/list/list.stories.tsx +0 -280
  320. package/src/loader/loader.stories.tsx +0 -82
  321. package/src/modal/modal.stories.tsx +0 -395
  322. package/src/pagination/pagination.stories.tsx +0 -110
  323. package/src/popover/popover.stories.tsx +0 -113
  324. package/src/portal/Portal.stories.tsx +0 -102
  325. package/src/read-more/readmore.stories.tsx +0 -91
  326. package/src/skeleton/skeleton.stories.tsx +0 -130
  327. package/src/stepper/stepper.stories.tsx +0 -200
  328. package/src/table/stories/table-1.stories.tsx +0 -292
  329. package/src/table/stories/table-2-expandable.stories.tsx +0 -298
  330. package/src/table/stories/table-3-async.stories.tsx +0 -179
  331. package/src/table/stories/tests/table.stories.tsx +0 -102
  332. package/src/tabs/Tab.tsx +0 -66
  333. package/src/tabs/TabList.tsx +0 -128
  334. package/src/tabs/TabPanel.tsx +0 -26
  335. package/src/tabs/Tabs.stories.tsx +0 -191
  336. package/src/tabs/context.ts +0 -9
  337. package/src/tag/tag.stories.tsx +0 -126
  338. package/src/timeline/timeline.stories.tsx +0 -445
  339. package/src/toggle-group/ToggleGroup.stories.tsx +0 -137
  340. package/src/toggle-group/ToggleItem.tsx +0 -41
  341. package/src/toggle-group/context.ts +0 -9
  342. package/src/tooltip/tooltip.stories.tsx +0 -101
  343. package/src/typography/stories/bodylong.stories.tsx +0 -209
  344. package/src/typography/stories/bodyshort.stories.tsx +0 -208
  345. package/src/typography/stories/detail.stories.tsx +0 -115
  346. package/src/typography/stories/error-message.stories.tsx +0 -122
  347. package/src/typography/stories/heading.stories.tsx +0 -169
  348. package/src/typography/stories/label.stories.tsx +0 -131
  349. package/src/util/hooks/descendants/descendant.stories.tsx +0 -147
@@ -1,575 +0,0 @@
1
- import { Meta, StoryObj } from "@storybook/react";
2
- import { isSameDay } from "date-fns";
3
- import React, { useId, useState } from "react";
4
- import { Button } from "../../button";
5
- import { HGrid } from "../../layout/grid";
6
- import { VStack } from "../../layout/stack";
7
- import Modal from "../../modal/Modal";
8
- import { BodyLong } from "../../typography";
9
- import { useDatepicker, useRangeDatepicker } from "../hooks";
10
- import DatePicker, { DatePickerProps } from "./DatePicker";
11
-
12
- const disabledDays = [
13
- new Date("Oct 10 2022"),
14
- { from: new Date("Aug 31 2022"), to: new Date("Sep 8 2022") },
15
- ];
16
-
17
- export default {
18
- title: "ds-react/Datepicker",
19
- component: DatePicker,
20
- parameters: {
21
- chromatic: { disable: true },
22
- },
23
- } satisfies Meta<typeof DatePicker>;
24
-
25
- type Story = StoryObj<typeof DatePicker>;
26
-
27
- type DefaultStoryProps = DatePickerProps & {
28
- size: "medium" | "small";
29
- inputfield: boolean;
30
- standalone: boolean;
31
- };
32
-
33
- export const Default: StoryObj<DefaultStoryProps> = {
34
- render: (props) => {
35
- const [open, setOpen] = useState(false);
36
-
37
- const rangeCtx = useRangeDatepicker({
38
- fromDate: new Date("Aug 23 2023"),
39
- toDate: new Date("Aug 23 2029"),
40
- });
41
-
42
- const singleCtx = useDatepicker({
43
- fromDate: new Date("Aug 23 2020"),
44
- toDate: new Date("Aug 23 2029"),
45
- });
46
-
47
- const newProps = {
48
- ...(!props.inputfield || props.mode === "multiple"
49
- ? {
50
- open,
51
- onClose: () => setOpen(false),
52
- fromDate: new Date("Aug 23 2020"),
53
- toDate: new Date("Aug 23 2029"),
54
- }
55
- : {}),
56
- };
57
-
58
- const Comp = !props.standalone ? DatePicker : DatePicker.Standalone;
59
-
60
- return (
61
- <div>
62
- <Comp
63
- dropdownCaption={props.dropdownCaption}
64
- showWeekNumber={props.showWeekNumber}
65
- mode={props.mode}
66
- {...(props.mode === "single"
67
- ? singleCtx.datepickerProps
68
- : props.mode === "range"
69
- ? rangeCtx.datepickerProps
70
- : {})}
71
- {...newProps}
72
- locale={props.locale}
73
- disableWeekends={props.disableWeekends}
74
- >
75
- {!props.standalone && (
76
- <>
77
- {props.inputfield && props.mode !== "multiple" ? (
78
- <>
79
- {props.mode === "range" ? (
80
- <div style={{ display: "flex", gap: "1rem" }}>
81
- <DatePicker.Input
82
- label="Fra"
83
- size={props?.size}
84
- {...rangeCtx.fromInputProps}
85
- />
86
- <DatePicker.Input
87
- label="Til"
88
- size={props?.size}
89
- {...rangeCtx.toInputProps}
90
- />
91
- </div>
92
- ) : (
93
- <>
94
- <DatePicker.Input
95
- label="Velg dato"
96
- size={props?.size}
97
- {...singleCtx.inputProps}
98
- />
99
- </>
100
- )}
101
- </>
102
- ) : (
103
- <Button onClick={() => setOpen((x) => !x)}>
104
- Åpne datovelger
105
- </Button>
106
- )}
107
- </>
108
- )}
109
- </Comp>
110
- </div>
111
- );
112
- },
113
-
114
- args: {
115
- dropdownCaption: false,
116
- disableWeekends: false,
117
- showWeekNumber: false,
118
- mode: "single",
119
- inputfield: true,
120
- standalone: false,
121
- },
122
- argTypes: {
123
- size: {
124
- options: ["medium", "small"],
125
- control: { type: "radio" },
126
- },
127
- locale: {
128
- options: ["nb", "nn", "en"],
129
- control: { type: "radio" },
130
- },
131
- mode: {
132
- options: ["single", "multiple", "range"],
133
- control: { type: "radio" },
134
- },
135
- },
136
- };
137
-
138
- export const DropdownCaption = () => (
139
- <DatePicker.Standalone
140
- dropdownCaption
141
- fromDate={new Date("Aug 23 2018")}
142
- toDate={new Date("Aug 23 2022")}
143
- />
144
- );
145
-
146
- export const DisabledDays = () => (
147
- <DatePicker.Standalone
148
- disabled={disabledDays}
149
- disableWeekends
150
- today={new Date("2006-07-01")}
151
- />
152
- );
153
-
154
- export const ShowWeekNumber = () => (
155
- <DatePicker.Standalone showWeekNumber today={new Date("2006-07-01")} />
156
- );
157
-
158
- export const UseDatepicker = () => {
159
- const { datepickerProps, inputProps } = useDatepicker({
160
- fromDate: new Date("Aug 23 2019"),
161
- toDate: new Date("Feb 23 2024"),
162
- onDateChange: console.log,
163
- onValidate: console.log,
164
- });
165
-
166
- return (
167
- <div style={{ display: "flex", gap: "1rem" }}>
168
- <DatePicker {...datepickerProps} dropdownCaption>
169
- <DatePicker.Input {...inputProps} label="Velg dato" />
170
- </DatePicker>
171
- </div>
172
- );
173
- };
174
-
175
- export const UseRangedDatepicker = () => {
176
- const { datepickerProps, fromInputProps, toInputProps } = useRangeDatepicker({
177
- fromDate: new Date("Aug 23 2019"),
178
- onRangeChange: console.log,
179
- onValidate: console.log,
180
- });
181
-
182
- return (
183
- <div style={{ display: "flex", gap: "1rem" }}>
184
- <DatePicker {...datepickerProps}>
185
- <div style={{ display: "flex", gap: "1rem" }}>
186
- <DatePicker.Input {...fromInputProps} label="Fra" />
187
- <DatePicker.Input {...toInputProps} label="Til" />
188
- </div>
189
- </DatePicker>
190
- </div>
191
- );
192
- };
193
-
194
- export const NB = () => (
195
- <DatePicker.Standalone locale="nb" today={new Date("2006-07-01")} />
196
- );
197
-
198
- export const NN = () => (
199
- <DatePicker.Standalone locale="nn" today={new Date("2006-07-01")} />
200
- );
201
-
202
- export const EN = () => (
203
- <DatePicker.Standalone locale="en" today={new Date("2006-07-01")} />
204
- );
205
-
206
- export const Standalone = () => (
207
- <DatePicker.Standalone today={new Date("2006-07-01")} />
208
- );
209
-
210
- export const StandaloneRange = () => (
211
- <DatePicker.Standalone mode="range" today={new Date("2006-07-01")} />
212
- );
213
-
214
- export const StandaloneMultiple = () => (
215
- <DatePicker.Standalone mode="multiple" today={new Date("2006-07-01")} />
216
- );
217
-
218
- export const UserControlled = () => {
219
- const [open, setOpen] = useState(false);
220
- const id = useId();
221
-
222
- return (
223
- <div>
224
- <DatePicker
225
- mode="multiple"
226
- open={open}
227
- onClose={() => setOpen(false)}
228
- id={id}
229
- >
230
- <Button aria-controls={id} onClick={() => setOpen((x) => !x)}>
231
- Legg til dager
232
- </Button>
233
- </DatePicker>
234
- </div>
235
- );
236
- };
237
-
238
- export const Validering = () => {
239
- const [error, setError] = useState(false);
240
- const { datepickerProps, inputProps } = useDatepicker({
241
- fromDate: new Date("Aug 2 2019"),
242
- onValidate: (val) => setError(val.isWeekend),
243
- defaultSelected: new Date("Nov 26 2022"),
244
- disableWeekends: true,
245
- onDateChange: console.log,
246
- });
247
-
248
- return (
249
- <div style={{ display: "flex", gap: "1rem" }}>
250
- <DatePicker {...datepickerProps}>
251
- <DatePicker.Input
252
- error={
253
- error
254
- ? "NAV-kontoret er ikke åpent i helger. Velg en annen dag."
255
- : undefined
256
- }
257
- {...inputProps}
258
- label="Velg dato"
259
- />
260
- </DatePicker>
261
- </div>
262
- );
263
- };
264
-
265
- export const DisabledInput = () => {
266
- return (
267
- <div style={{ display: "flex", gap: "1rem" }}>
268
- <DatePicker>
269
- <DatePicker.Input disabled label="Velg dato" />
270
- </DatePicker>
271
- </div>
272
- );
273
- };
274
-
275
- export const ErrorInput = () => {
276
- return (
277
- <div style={{ display: "flex", gap: "1rem" }}>
278
- <DatePicker>
279
- <DatePicker.Input error="feilmelding" label="Velg dato" />
280
- </DatePicker>
281
- </div>
282
- );
283
- };
284
-
285
- export const UseRangedDatepickerValidation = () => {
286
- const { datepickerProps, fromInputProps, toInputProps } = useRangeDatepicker({
287
- fromDate: new Date("Aug 23 2019"),
288
- disableWeekends: true,
289
- disabled: [new Date("Oct 10 2022")],
290
- onValidate: console.table,
291
- });
292
-
293
- return (
294
- <div style={{ display: "flex", gap: "1rem" }}>
295
- <DatePicker {...datepickerProps}>
296
- <div style={{ display: "flex", gap: "1rem" }}>
297
- <DatePicker.Input {...fromInputProps} label="Fra" />
298
- <DatePicker.Input {...toInputProps} label="Til" />
299
- </div>
300
- </DatePicker>
301
- </div>
302
- );
303
- };
304
-
305
- export const DefaultShownMonth = () => {
306
- const { datepickerProps, inputProps } = useDatepicker({
307
- fromDate: new Date("Aug 23 2019"),
308
- onDateChange: console.log,
309
- defaultMonth: new Date("Oct 23 2022"),
310
- });
311
-
312
- return (
313
- <div style={{ display: "flex", gap: "1rem" }}>
314
- <DatePicker {...datepickerProps}>
315
- <DatePicker.Input {...inputProps} label="Velg dato" />
316
- </DatePicker>
317
- </div>
318
- );
319
- };
320
-
321
- export const Size = () => {
322
- const { datepickerProps, inputProps } = useDatepicker({
323
- fromDate: new Date("Aug 23 2019"),
324
- toDate: new Date("Feb 23 2024"),
325
- onDateChange: console.log,
326
- defaultSelected: new Date("Feb 23 2023"),
327
- });
328
- const { datepickerProps: d2, inputProps: i2 } = useDatepicker({
329
- fromDate: new Date("Aug 23 2019"),
330
- toDate: new Date("Feb 23 2024"),
331
- onDateChange: console.log,
332
- defaultSelected: new Date("Feb 23 2023"),
333
- });
334
-
335
- return (
336
- <div style={{ display: "flex", gap: "1rem" }}>
337
- <DatePicker {...datepickerProps} dropdownCaption>
338
- <DatePicker.Input
339
- placeholder="10/10/2023"
340
- size="medium"
341
- {...inputProps}
342
- label="Velg dato"
343
- />
344
- </DatePicker>
345
- <DatePicker {...d2} dropdownCaption>
346
- <DatePicker.Input
347
- placeholder="10/10/2023"
348
- size="small"
349
- {...i2}
350
- label="Velg dato"
351
- />
352
- </DatePicker>
353
- </div>
354
- );
355
- };
356
-
357
- export const Readonly = () => {
358
- const { datepickerProps, inputProps } = useDatepicker({
359
- fromDate: new Date("Aug 23 2019"),
360
- toDate: new Date("Feb 23 2024"),
361
- onDateChange: console.log,
362
- });
363
-
364
- return (
365
- <div style={{ display: "flex", gap: "1rem" }}>
366
- <DatePicker {...datepickerProps} dropdownCaption>
367
- <DatePicker.Input
368
- size="medium"
369
- {...inputProps}
370
- value="01.02.2021"
371
- label="Velg dato"
372
- readOnly
373
- />
374
- </DatePicker>
375
- </div>
376
- );
377
- };
378
-
379
- export const StandaloneOptions = () => {
380
- return (
381
- <HGrid columns={{ xs: 1, md: 2 }} gap="8">
382
- <DatePicker.Standalone today={new Date("Nov 23 2022")} />
383
- <DatePicker.Standalone
384
- dropdownCaption
385
- fromDate={new Date("Aug 23 2019")}
386
- toDate={new Date("Feb 23 2024")}
387
- today={new Date("Nov 23 2022")}
388
- />
389
- <DatePicker.Standalone showWeekNumber today={new Date("Nov 23 2022")} />
390
- <DatePicker.Standalone
391
- showWeekNumber
392
- mode="multiple"
393
- onWeekNumberClick={console.log}
394
- today={new Date("Nov 23 2022")}
395
- disableWeekends
396
- />
397
- <DatePicker.Standalone
398
- mode="range"
399
- today={new Date("Nov 23 2022")}
400
- disableWeekends
401
- />
402
- </HGrid>
403
- );
404
- };
405
-
406
- export const WeekDayClick = () => {
407
- const [days, setDays] = useState<Date[]>([]);
408
-
409
- const handleWeekClick = (dates: Date[]) => {
410
- const hasDayInWeek = !!days.find((x) => dates.find((y) => isSameDay(x, y)));
411
-
412
- const cleanup = days.filter((y) => !dates.find((z) => isSameDay(y, z)));
413
- if (hasDayInWeek) {
414
- setDays(cleanup);
415
- } else {
416
- setDays([...dates, ...cleanup]);
417
- }
418
- };
419
-
420
- return (
421
- <VStack gap="8">
422
- <DatePicker.Standalone
423
- showWeekNumber
424
- mode="multiple"
425
- onWeekNumberClick={(_, dates) => handleWeekClick(dates)}
426
- onSelect={(dates) => dates && setDays(dates)}
427
- selected={days}
428
- today={new Date("Nov 23 2022")}
429
- />
430
- <DatePicker.Standalone
431
- showWeekNumber
432
- mode="multiple"
433
- onWeekNumberClick={(_, dates) => handleWeekClick(dates)}
434
- onSelect={(dates) => dates && setDays(dates)}
435
- selected={days}
436
- today={new Date("Nov 23 2022")}
437
- disableWeekends
438
- />
439
- </VStack>
440
- );
441
- };
442
-
443
- export const ModalDemo = () => {
444
- const { datepickerProps, inputProps } = useDatepicker({
445
- fromDate: new Date("Aug 23 2019"),
446
- toDate: new Date("Feb 23 2024"),
447
- onDateChange: console.log,
448
- });
449
- const [open, setOpen] = useState(true);
450
-
451
- return (
452
- <>
453
- <Button onClick={() => setOpen(!open)}>Open modal</Button>
454
- <Modal
455
- open={open}
456
- onClose={() => setOpen(false)}
457
- header={{ heading: "Modal-demo" }}
458
- >
459
- <Modal.Body style={{ position: "relative" }}>
460
- <BodyLong spacing>
461
- Lorem ipsum dolor sit, amet consectetur adipisicing elit.
462
- </BodyLong>
463
-
464
- <DatePicker {...datepickerProps} dropdownCaption>
465
- <DatePicker.Input
466
- {...inputProps}
467
- label="Velg dato"
468
- description="Format: dd.mm.yyyy"
469
- />
470
- </DatePicker>
471
- </Modal.Body>
472
- <Modal.Footer>
473
- <Button>Neste</Button>
474
- <Button variant="secondary">Tilbake</Button>
475
- <Button variant="tertiary">Avbryt</Button>
476
- </Modal.Footer>
477
- </Modal>
478
- </>
479
- );
480
- };
481
- ModalDemo.parameters = { chromatic: { pauseAnimationAtEnd: true } };
482
-
483
- export const Chromatic: Story = {
484
- render: () => (
485
- <div>
486
- <div>
487
- <h2>DropdownCaption</h2>
488
- <DropdownCaption />
489
- </div>
490
- <div>
491
- <h2>DisabledDays</h2>
492
- <DisabledDays />
493
- </div>
494
- <div>
495
- <h2>ShowWeekNumber</h2>
496
- <ShowWeekNumber />
497
- </div>
498
- <div>
499
- <h2>UseDatepicker</h2>
500
- <UseDatepicker />
501
- </div>
502
- <div>
503
- <h2>UseRangedDatepicker</h2>
504
- <UseRangedDatepicker />
505
- </div>
506
- <div>
507
- <h2>NB</h2>
508
- <NB />
509
- </div>
510
- <div>
511
- <h2>NN</h2>
512
- <NN />
513
- </div>
514
- <div>
515
- <h2>EN</h2>
516
- <EN />
517
- </div>
518
- <div>
519
- <h2>Standalone</h2>
520
- <Standalone />
521
- </div>
522
- <div>
523
- <h2>StandaloneRange</h2>
524
- <StandaloneRange />
525
- </div>
526
- <div>
527
- <h2>StandaloneMultiple</h2>
528
- <StandaloneMultiple />
529
- </div>
530
- <div>
531
- <h2>UserControlled</h2>
532
- <UserControlled />
533
- </div>
534
- <div>
535
- <h2>Validering</h2>
536
- <Validering />
537
- </div>
538
- <div>
539
- <h2>DisabledInput</h2>
540
- <DisabledInput />
541
- </div>
542
- <div>
543
- <h2>ErrorInput</h2>
544
- <ErrorInput />
545
- </div>
546
- <div>
547
- <h2>UseRangedDatepickerValidation</h2>
548
- <UseRangedDatepickerValidation />
549
- </div>
550
- <div>
551
- <h2>DefaultShownMonth</h2>
552
- <DefaultShownMonth />
553
- </div>
554
- <div>
555
- <h2>Size</h2>
556
- <Size />
557
- </div>
558
- <div>
559
- <h2>Readonly</h2>
560
- <Readonly />
561
- </div>
562
- <div>
563
- <h2>StandaloneOptions</h2>
564
- <StandaloneOptions />
565
- </div>
566
- <div>
567
- <h2>WeekDayClick</h2>
568
- <WeekDayClick />
569
- </div>
570
- </div>
571
- ),
572
- parameters: {
573
- chromatic: { disable: false },
574
- },
575
- };