@navikt/ds-react 6.1.1 → 6.3.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 (438) hide show
  1. package/cjs/accordion/Accordion.d.ts +4 -4
  2. package/cjs/alert/Alert.d.ts +12 -10
  3. package/cjs/alert/Alert.js.map +1 -1
  4. package/cjs/button/Button.d.ts +9 -8
  5. package/cjs/button/Button.js.map +1 -1
  6. package/cjs/chat/Chat.d.ts +6 -6
  7. package/cjs/chips/Chips.d.ts +2 -2
  8. package/cjs/copybutton/CopyButton.d.ts +14 -12
  9. package/cjs/copybutton/CopyButton.js.map +1 -1
  10. package/cjs/date/datepicker/types.d.ts +7 -6
  11. package/cjs/date/hooks/useDatepicker.d.ts +4 -3
  12. package/cjs/date/hooks/useDatepicker.js.map +1 -1
  13. package/cjs/date/hooks/useMonthPicker.d.ts +4 -3
  14. package/cjs/date/hooks/useMonthPicker.js.map +1 -1
  15. package/cjs/date/monthpicker/types.d.ts +2 -1
  16. package/cjs/date/parts/DateInput.d.ts +1 -1
  17. package/cjs/expansion-card/ExpansionCardTitle.d.ts +1 -1
  18. package/cjs/form/checkbox/CheckboxGroup.d.ts +3 -3
  19. package/cjs/form/checkbox/types.d.ts +4 -4
  20. package/cjs/form/combobox/ComboboxProvider.js +5 -1
  21. package/cjs/form/combobox/ComboboxProvider.js.map +1 -1
  22. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +14 -12
  23. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  24. package/cjs/form/combobox/FilteredOptions/filtered-options-util.d.ts +3 -3
  25. package/cjs/form/combobox/FilteredOptions/filtered-options-util.js +1 -3
  26. package/cjs/form/combobox/FilteredOptions/filtered-options-util.js.map +1 -1
  27. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.d.ts +8 -5
  28. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +8 -13
  29. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  30. package/cjs/form/combobox/Input/Input.js +9 -7
  31. package/cjs/form/combobox/Input/Input.js.map +1 -1
  32. package/cjs/form/combobox/SelectedOptions/SelectedOptions.d.ts +2 -1
  33. package/cjs/form/combobox/SelectedOptions/SelectedOptions.js +3 -3
  34. package/cjs/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
  35. package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.d.ts +10 -7
  36. package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js +6 -8
  37. package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
  38. package/cjs/form/combobox/combobox-utils.d.ts +10 -0
  39. package/cjs/form/combobox/combobox-utils.js +27 -0
  40. package/cjs/form/combobox/combobox-utils.js.map +1 -0
  41. package/cjs/form/combobox/customOptionsContext.d.ts +5 -4
  42. package/cjs/form/combobox/customOptionsContext.js +1 -1
  43. package/cjs/form/combobox/customOptionsContext.js.map +1 -1
  44. package/cjs/form/combobox/types.d.ts +33 -22
  45. package/cjs/form/error-summary/ErrorSummary.d.ts +5 -5
  46. package/cjs/form/file-upload/FileUpload.context.d.ts +8 -0
  47. package/cjs/form/file-upload/FileUpload.context.js +7 -0
  48. package/cjs/form/file-upload/FileUpload.context.js.map +1 -0
  49. package/cjs/form/file-upload/FileUpload.d.ts +118 -0
  50. package/cjs/form/file-upload/FileUpload.js +73 -0
  51. package/cjs/form/file-upload/FileUpload.js.map +1 -0
  52. package/cjs/form/file-upload/FileUpload.types.d.ts +55 -0
  53. package/cjs/form/file-upload/FileUpload.types.js +8 -0
  54. package/cjs/form/file-upload/FileUpload.types.js.map +1 -0
  55. package/cjs/form/file-upload/i18n/get.d.ts +2 -0
  56. package/cjs/form/file-upload/i18n/get.js +38 -0
  57. package/cjs/form/file-upload/i18n/get.js.map +1 -0
  58. package/cjs/form/file-upload/i18n/i18n.context.d.ts +11 -0
  59. package/cjs/form/file-upload/i18n/i18n.context.js +39 -0
  60. package/cjs/form/file-upload/i18n/i18n.context.js.map +1 -0
  61. package/cjs/form/file-upload/i18n/i18n.types.d.ts +13 -0
  62. package/cjs/form/file-upload/i18n/i18n.types.js +3 -0
  63. package/cjs/form/file-upload/i18n/i18n.types.js.map +1 -0
  64. package/cjs/form/file-upload/i18n/locales/nb.json +20 -0
  65. package/cjs/form/file-upload/i18n/merge.d.ts +2 -0
  66. package/cjs/form/file-upload/i18n/merge.js +29 -0
  67. package/cjs/form/file-upload/i18n/merge.js.map +1 -0
  68. package/cjs/form/file-upload/index.d.ts +7 -0
  69. package/cjs/form/file-upload/index.js +16 -0
  70. package/cjs/form/file-upload/index.js.map +1 -0
  71. package/cjs/form/file-upload/parts/Trigger.d.ts +7 -0
  72. package/cjs/form/file-upload/parts/Trigger.js +43 -0
  73. package/cjs/form/file-upload/parts/Trigger.js.map +1 -0
  74. package/cjs/form/file-upload/parts/dropzone/Dropzone.d.ts +4 -0
  75. package/cjs/form/file-upload/parts/dropzone/Dropzone.js +106 -0
  76. package/cjs/form/file-upload/parts/dropzone/Dropzone.js.map +1 -0
  77. package/cjs/form/file-upload/parts/dropzone/dropzone.types.d.ts +18 -0
  78. package/cjs/form/file-upload/parts/dropzone/dropzone.types.js +3 -0
  79. package/cjs/form/file-upload/parts/dropzone/dropzone.types.js.map +1 -0
  80. package/cjs/form/file-upload/parts/dropzone/useDropzone.d.ts +13 -0
  81. package/cjs/form/file-upload/parts/dropzone/useDropzone.js +34 -0
  82. package/cjs/form/file-upload/parts/dropzone/useDropzone.js.map +1 -0
  83. package/cjs/form/file-upload/parts/item/Item.d.ts +55 -0
  84. package/cjs/form/file-upload/parts/item/Item.js +79 -0
  85. package/cjs/form/file-upload/parts/item/Item.js.map +1 -0
  86. package/cjs/form/file-upload/parts/item/Item.types.d.ts +5 -0
  87. package/cjs/form/file-upload/parts/item/Item.types.js +3 -0
  88. package/cjs/form/file-upload/parts/item/Item.types.js.map +1 -0
  89. package/cjs/form/file-upload/parts/item/ItemButton.d.ts +12 -0
  90. package/cjs/form/file-upload/parts/item/ItemButton.js +22 -0
  91. package/cjs/form/file-upload/parts/item/ItemButton.js.map +1 -0
  92. package/cjs/form/file-upload/parts/item/ItemIcon.d.ts +9 -0
  93. package/cjs/form/file-upload/parts/item/ItemIcon.js +51 -0
  94. package/cjs/form/file-upload/parts/item/ItemIcon.js.map +1 -0
  95. package/cjs/form/file-upload/parts/item/ItemName.d.ts +9 -0
  96. package/cjs/form/file-upload/parts/item/ItemName.js +32 -0
  97. package/cjs/form/file-upload/parts/item/ItemName.js.map +1 -0
  98. package/cjs/form/file-upload/parts/item/utils/download-file.d.ts +1 -0
  99. package/cjs/form/file-upload/parts/item/utils/download-file.js +13 -0
  100. package/cjs/form/file-upload/parts/item/utils/download-file.js.map +1 -0
  101. package/cjs/form/file-upload/parts/item/utils/file-type-checker.d.ts +2 -0
  102. package/cjs/form/file-upload/parts/item/utils/file-type-checker.js +6 -0
  103. package/cjs/form/file-upload/parts/item/utils/file-type-checker.js.map +1 -0
  104. package/cjs/form/file-upload/parts/item/utils/format-file-size.d.ts +2 -0
  105. package/cjs/form/file-upload/parts/item/utils/format-file-size.js +24 -0
  106. package/cjs/form/file-upload/parts/item/utils/format-file-size.js.map +1 -0
  107. package/cjs/form/file-upload/useFileUpload.d.ts +12 -0
  108. package/cjs/form/file-upload/useFileUpload.js +33 -0
  109. package/cjs/form/file-upload/useFileUpload.js.map +1 -0
  110. package/cjs/form/file-upload/utils/is-accepted-file-type.d.ts +1 -0
  111. package/cjs/form/file-upload/utils/is-accepted-file-type.js +26 -0
  112. package/cjs/form/file-upload/utils/is-accepted-file-type.js.map +1 -0
  113. package/cjs/form/file-upload/utils/is-accepted-size.d.ts +1 -0
  114. package/cjs/form/file-upload/utils/is-accepted-size.js +11 -0
  115. package/cjs/form/file-upload/utils/is-accepted-size.js.map +1 -0
  116. package/cjs/form/file-upload/utils/validate-files.d.ts +8 -0
  117. package/cjs/form/file-upload/utils/validate-files.js +48 -0
  118. package/cjs/form/file-upload/utils/validate-files.js.map +1 -0
  119. package/cjs/form/radio/RadioGroup.d.ts +1 -1
  120. package/cjs/form/search/Search.d.ts +3 -2
  121. package/cjs/form/search/Search.js.map +1 -1
  122. package/cjs/form/select/Select.d.ts +9 -9
  123. package/cjs/form/switch/Switch.d.ts +5 -5
  124. package/cjs/form/textarea/Textarea.d.ts +5 -4
  125. package/cjs/form/textarea/Textarea.js.map +1 -1
  126. package/cjs/form/useFormField.d.ts +10 -8
  127. package/cjs/form/useFormField.js.map +1 -1
  128. package/cjs/index.d.ts +1 -0
  129. package/cjs/index.js +3 -1
  130. package/cjs/index.js.map +1 -1
  131. package/cjs/layout/bleed/Bleed.d.ts +9 -1
  132. package/cjs/layout/bleed/Bleed.js.map +1 -1
  133. package/cjs/layout/box/Box.d.ts +5 -5
  134. package/cjs/layout/grid/HGrid.d.ts +1 -3
  135. package/cjs/layout/grid/HGrid.js.map +1 -1
  136. package/cjs/layout/page/Page.d.ts +2 -2
  137. package/cjs/layout/responsive/Responsive.d.ts +2 -4
  138. package/cjs/layout/responsive/Responsive.js.map +1 -1
  139. package/cjs/layout/stack/Stack.d.ts +18 -4
  140. package/cjs/layout/stack/Stack.js.map +1 -1
  141. package/cjs/list/types.d.ts +1 -1
  142. package/cjs/loader/Loader.d.ts +0 -6
  143. package/cjs/loader/Loader.js.map +1 -1
  144. package/cjs/modal/Modal.js +2 -2
  145. package/cjs/modal/types.d.ts +8 -8
  146. package/cjs/pagination/Pagination.d.ts +3 -2
  147. package/cjs/pagination/Pagination.js.map +1 -1
  148. package/cjs/pagination/PaginationItem.d.ts +1 -1
  149. package/cjs/popover/Popover.d.ts +2 -1
  150. package/cjs/popover/Popover.js.map +1 -1
  151. package/cjs/read-more/ReadMore.d.ts +7 -7
  152. package/cjs/stepper/Step.d.ts +4 -4
  153. package/cjs/stepper/Stepper.d.ts +7 -5
  154. package/cjs/stepper/Stepper.js.map +1 -1
  155. package/cjs/table/AnimateHeight.d.ts +1 -1
  156. package/cjs/table/DataCell.d.ts +1 -3
  157. package/cjs/table/DataCell.js.map +1 -1
  158. package/cjs/tabs/TabList.d.ts +1 -1
  159. package/cjs/tabs/Tabs.d.ts +7 -7
  160. package/cjs/timeline/Timeline.d.ts +6 -3
  161. package/cjs/timeline/Timeline.js +2 -1
  162. package/cjs/timeline/Timeline.js.map +1 -1
  163. package/cjs/timeline/period/index.d.ts +3 -2
  164. package/cjs/timeline/period/index.js.map +1 -1
  165. package/cjs/tooltip/Tooltip.d.ts +19 -12
  166. package/cjs/tooltip/Tooltip.js.map +1 -1
  167. package/cjs/util/create-context.d.ts +1 -0
  168. package/cjs/util/create-context.js.map +1 -1
  169. package/cjs/util/hooks/useEventListener.d.ts +1 -1
  170. package/cjs/util/hooks/useMergeRefs.d.ts +1 -1
  171. package/esm/accordion/Accordion.d.ts +4 -4
  172. package/esm/alert/Alert.d.ts +12 -10
  173. package/esm/alert/Alert.js.map +1 -1
  174. package/esm/button/Button.d.ts +9 -8
  175. package/esm/button/Button.js.map +1 -1
  176. package/esm/chat/Chat.d.ts +6 -6
  177. package/esm/chips/Chips.d.ts +2 -2
  178. package/esm/copybutton/CopyButton.d.ts +14 -12
  179. package/esm/copybutton/CopyButton.js.map +1 -1
  180. package/esm/date/datepicker/types.d.ts +7 -6
  181. package/esm/date/hooks/useDatepicker.d.ts +4 -3
  182. package/esm/date/hooks/useDatepicker.js.map +1 -1
  183. package/esm/date/hooks/useMonthPicker.d.ts +4 -3
  184. package/esm/date/hooks/useMonthPicker.js.map +1 -1
  185. package/esm/date/monthpicker/types.d.ts +2 -1
  186. package/esm/date/parts/DateInput.d.ts +1 -1
  187. package/esm/expansion-card/ExpansionCardTitle.d.ts +1 -1
  188. package/esm/form/checkbox/CheckboxGroup.d.ts +3 -3
  189. package/esm/form/checkbox/types.d.ts +4 -4
  190. package/esm/form/combobox/ComboboxProvider.js +5 -1
  191. package/esm/form/combobox/ComboboxProvider.js.map +1 -1
  192. package/esm/form/combobox/FilteredOptions/FilteredOptions.js +14 -12
  193. package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  194. package/esm/form/combobox/FilteredOptions/filtered-options-util.d.ts +3 -3
  195. package/esm/form/combobox/FilteredOptions/filtered-options-util.js +1 -3
  196. package/esm/form/combobox/FilteredOptions/filtered-options-util.js.map +1 -1
  197. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.d.ts +8 -5
  198. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +8 -13
  199. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  200. package/esm/form/combobox/Input/Input.js +9 -7
  201. package/esm/form/combobox/Input/Input.js.map +1 -1
  202. package/esm/form/combobox/SelectedOptions/SelectedOptions.d.ts +2 -1
  203. package/esm/form/combobox/SelectedOptions/SelectedOptions.js +3 -3
  204. package/esm/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
  205. package/esm/form/combobox/SelectedOptions/selectedOptionsContext.d.ts +10 -7
  206. package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js +6 -8
  207. package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
  208. package/esm/form/combobox/combobox-utils.d.ts +10 -0
  209. package/esm/form/combobox/combobox-utils.js +22 -0
  210. package/esm/form/combobox/combobox-utils.js.map +1 -0
  211. package/esm/form/combobox/customOptionsContext.d.ts +5 -4
  212. package/esm/form/combobox/customOptionsContext.js +1 -1
  213. package/esm/form/combobox/customOptionsContext.js.map +1 -1
  214. package/esm/form/combobox/types.d.ts +33 -22
  215. package/esm/form/error-summary/ErrorSummary.d.ts +5 -5
  216. package/esm/form/file-upload/FileUpload.context.d.ts +8 -0
  217. package/esm/form/file-upload/FileUpload.context.js +3 -0
  218. package/esm/form/file-upload/FileUpload.context.js.map +1 -0
  219. package/esm/form/file-upload/FileUpload.d.ts +118 -0
  220. package/esm/form/file-upload/FileUpload.js +44 -0
  221. package/esm/form/file-upload/FileUpload.js.map +1 -0
  222. package/esm/form/file-upload/FileUpload.types.d.ts +55 -0
  223. package/esm/form/file-upload/FileUpload.types.js +5 -0
  224. package/esm/form/file-upload/FileUpload.types.js.map +1 -0
  225. package/esm/form/file-upload/i18n/get.d.ts +2 -0
  226. package/esm/form/file-upload/i18n/get.js +34 -0
  227. package/esm/form/file-upload/i18n/get.js.map +1 -0
  228. package/esm/form/file-upload/i18n/i18n.context.d.ts +11 -0
  229. package/esm/form/file-upload/i18n/i18n.context.js +32 -0
  230. package/esm/form/file-upload/i18n/i18n.context.js.map +1 -0
  231. package/esm/form/file-upload/i18n/i18n.types.d.ts +13 -0
  232. package/esm/form/file-upload/i18n/i18n.types.js +2 -0
  233. package/esm/form/file-upload/i18n/i18n.types.js.map +1 -0
  234. package/esm/form/file-upload/i18n/locales/nb.json +20 -0
  235. package/esm/form/file-upload/i18n/merge.d.ts +2 -0
  236. package/esm/form/file-upload/i18n/merge.js +25 -0
  237. package/esm/form/file-upload/i18n/merge.js.map +1 -0
  238. package/esm/form/file-upload/index.d.ts +7 -0
  239. package/esm/form/file-upload/index.js +6 -0
  240. package/esm/form/file-upload/index.js.map +1 -0
  241. package/esm/form/file-upload/parts/Trigger.d.ts +7 -0
  242. package/esm/form/file-upload/parts/Trigger.js +18 -0
  243. package/esm/form/file-upload/parts/Trigger.js.map +1 -0
  244. package/esm/form/file-upload/parts/dropzone/Dropzone.d.ts +4 -0
  245. package/esm/form/file-upload/parts/dropzone/Dropzone.js +78 -0
  246. package/esm/form/file-upload/parts/dropzone/Dropzone.js.map +1 -0
  247. package/esm/form/file-upload/parts/dropzone/dropzone.types.d.ts +18 -0
  248. package/esm/form/file-upload/parts/dropzone/dropzone.types.js +2 -0
  249. package/esm/form/file-upload/parts/dropzone/dropzone.types.js.map +1 -0
  250. package/esm/form/file-upload/parts/dropzone/useDropzone.d.ts +13 -0
  251. package/esm/form/file-upload/parts/dropzone/useDropzone.js +30 -0
  252. package/esm/form/file-upload/parts/dropzone/useDropzone.js.map +1 -0
  253. package/esm/form/file-upload/parts/item/Item.d.ts +55 -0
  254. package/esm/form/file-upload/parts/item/Item.js +50 -0
  255. package/esm/form/file-upload/parts/item/Item.js.map +1 -0
  256. package/esm/form/file-upload/parts/item/Item.types.d.ts +5 -0
  257. package/esm/form/file-upload/parts/item/Item.types.js +2 -0
  258. package/esm/form/file-upload/parts/item/Item.types.js.map +1 -0
  259. package/esm/form/file-upload/parts/item/ItemButton.d.ts +12 -0
  260. package/esm/form/file-upload/parts/item/ItemButton.js +17 -0
  261. package/esm/form/file-upload/parts/item/ItemButton.js.map +1 -0
  262. package/esm/form/file-upload/parts/item/ItemIcon.d.ts +9 -0
  263. package/esm/form/file-upload/parts/item/ItemIcon.js +46 -0
  264. package/esm/form/file-upload/parts/item/ItemIcon.js.map +1 -0
  265. package/esm/form/file-upload/parts/item/ItemName.d.ts +9 -0
  266. package/esm/form/file-upload/parts/item/ItemName.js +27 -0
  267. package/esm/form/file-upload/parts/item/ItemName.js.map +1 -0
  268. package/esm/form/file-upload/parts/item/utils/download-file.d.ts +1 -0
  269. package/esm/form/file-upload/parts/item/utils/download-file.js +9 -0
  270. package/esm/form/file-upload/parts/item/utils/download-file.js.map +1 -0
  271. package/esm/form/file-upload/parts/item/utils/file-type-checker.d.ts +2 -0
  272. package/esm/form/file-upload/parts/item/utils/file-type-checker.js +2 -0
  273. package/esm/form/file-upload/parts/item/utils/file-type-checker.js.map +1 -0
  274. package/esm/form/file-upload/parts/item/utils/format-file-size.d.ts +2 -0
  275. package/esm/form/file-upload/parts/item/utils/format-file-size.js +20 -0
  276. package/esm/form/file-upload/parts/item/utils/format-file-size.js.map +1 -0
  277. package/esm/form/file-upload/useFileUpload.d.ts +12 -0
  278. package/esm/form/file-upload/useFileUpload.js +29 -0
  279. package/esm/form/file-upload/useFileUpload.js.map +1 -0
  280. package/esm/form/file-upload/utils/is-accepted-file-type.d.ts +1 -0
  281. package/esm/form/file-upload/utils/is-accepted-file-type.js +22 -0
  282. package/esm/form/file-upload/utils/is-accepted-file-type.js.map +1 -0
  283. package/esm/form/file-upload/utils/is-accepted-size.d.ts +1 -0
  284. package/esm/form/file-upload/utils/is-accepted-size.js +7 -0
  285. package/esm/form/file-upload/utils/is-accepted-size.js.map +1 -0
  286. package/esm/form/file-upload/utils/validate-files.d.ts +8 -0
  287. package/esm/form/file-upload/utils/validate-files.js +44 -0
  288. package/esm/form/file-upload/utils/validate-files.js.map +1 -0
  289. package/esm/form/radio/RadioGroup.d.ts +1 -1
  290. package/esm/form/search/Search.d.ts +3 -2
  291. package/esm/form/search/Search.js.map +1 -1
  292. package/esm/form/select/Select.d.ts +9 -9
  293. package/esm/form/switch/Switch.d.ts +5 -5
  294. package/esm/form/textarea/Textarea.d.ts +5 -4
  295. package/esm/form/textarea/Textarea.js.map +1 -1
  296. package/esm/form/useFormField.d.ts +10 -8
  297. package/esm/form/useFormField.js.map +1 -1
  298. package/esm/index.d.ts +1 -0
  299. package/esm/index.js +1 -0
  300. package/esm/index.js.map +1 -1
  301. package/esm/layout/bleed/Bleed.d.ts +9 -1
  302. package/esm/layout/bleed/Bleed.js.map +1 -1
  303. package/esm/layout/box/Box.d.ts +5 -5
  304. package/esm/layout/grid/HGrid.d.ts +1 -3
  305. package/esm/layout/grid/HGrid.js.map +1 -1
  306. package/esm/layout/page/Page.d.ts +2 -2
  307. package/esm/layout/responsive/Responsive.d.ts +2 -4
  308. package/esm/layout/responsive/Responsive.js.map +1 -1
  309. package/esm/layout/stack/Stack.d.ts +18 -4
  310. package/esm/layout/stack/Stack.js.map +1 -1
  311. package/esm/list/types.d.ts +1 -1
  312. package/esm/loader/Loader.d.ts +0 -6
  313. package/esm/loader/Loader.js.map +1 -1
  314. package/esm/modal/Modal.js +2 -2
  315. package/esm/modal/types.d.ts +8 -8
  316. package/esm/pagination/Pagination.d.ts +3 -2
  317. package/esm/pagination/Pagination.js.map +1 -1
  318. package/esm/pagination/PaginationItem.d.ts +1 -1
  319. package/esm/popover/Popover.d.ts +2 -1
  320. package/esm/popover/Popover.js.map +1 -1
  321. package/esm/read-more/ReadMore.d.ts +7 -7
  322. package/esm/stepper/Step.d.ts +4 -4
  323. package/esm/stepper/Stepper.d.ts +7 -5
  324. package/esm/stepper/Stepper.js.map +1 -1
  325. package/esm/table/AnimateHeight.d.ts +1 -1
  326. package/esm/table/DataCell.d.ts +1 -3
  327. package/esm/table/DataCell.js.map +1 -1
  328. package/esm/tabs/TabList.d.ts +1 -1
  329. package/esm/tabs/Tabs.d.ts +7 -7
  330. package/esm/timeline/Timeline.d.ts +6 -3
  331. package/esm/timeline/Timeline.js +2 -1
  332. package/esm/timeline/Timeline.js.map +1 -1
  333. package/esm/timeline/period/index.d.ts +3 -2
  334. package/esm/timeline/period/index.js.map +1 -1
  335. package/esm/tooltip/Tooltip.d.ts +19 -12
  336. package/esm/tooltip/Tooltip.js.map +1 -1
  337. package/esm/util/create-context.d.ts +1 -0
  338. package/esm/util/create-context.js.map +1 -1
  339. package/esm/util/hooks/useEventListener.d.ts +1 -1
  340. package/esm/util/hooks/useMergeRefs.d.ts +1 -1
  341. package/package.json +13 -3
  342. package/src/accordion/Accordion.tsx +4 -4
  343. package/src/accordion/accordion.stories.tsx +0 -2
  344. package/src/alert/Alert.tsx +12 -10
  345. package/src/button/Button.tsx +9 -8
  346. package/src/chat/Chat.tsx +6 -6
  347. package/src/chips/Chips.tsx +2 -2
  348. package/src/copybutton/CopyButton.tsx +14 -12
  349. package/src/date/datepicker/datepicker.stories.tsx +0 -1
  350. package/src/date/datepicker/types.ts +7 -6
  351. package/src/date/hooks/useDatepicker.tsx +4 -3
  352. package/src/date/hooks/useMonthPicker.tsx +4 -3
  353. package/src/date/monthpicker/types.ts +2 -1
  354. package/src/date/parts/DateInput.tsx +1 -1
  355. package/src/expansion-card/ExpansionCardTitle.tsx +1 -1
  356. package/src/form/checkbox/CheckboxGroup.tsx +3 -3
  357. package/src/form/checkbox/types.ts +4 -4
  358. package/src/form/combobox/ComboboxProvider.tsx +7 -3
  359. package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +22 -15
  360. package/src/form/combobox/FilteredOptions/filtered-options-util.ts +5 -10
  361. package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +19 -29
  362. package/src/form/combobox/Input/Input.tsx +14 -8
  363. package/src/form/combobox/SelectedOptions/SelectedOptions.tsx +8 -5
  364. package/src/form/combobox/SelectedOptions/selectedOptionsContext.tsx +24 -25
  365. package/src/form/combobox/combobox-utils.test.ts +67 -0
  366. package/src/form/combobox/combobox-utils.ts +32 -0
  367. package/src/form/combobox/combobox.stories.tsx +67 -32
  368. package/src/form/combobox/combobox.test.tsx +32 -1
  369. package/src/form/combobox/customOptionsContext.tsx +9 -8
  370. package/src/form/combobox/types.ts +34 -22
  371. package/src/form/error-summary/ErrorSummary.tsx +5 -5
  372. package/src/form/file-upload/FileUpload.context.tsx +9 -0
  373. package/src/form/file-upload/FileUpload.tsx +142 -0
  374. package/src/form/file-upload/FileUpload.types.ts +57 -0
  375. package/src/form/file-upload/file-upload-dropzone.stories.tsx +123 -0
  376. package/src/form/file-upload/file-upload-item.stories.tsx +136 -0
  377. package/src/form/file-upload/file-upload.stories.tsx +236 -0
  378. package/src/form/file-upload/i18n/get.ts +48 -0
  379. package/src/form/file-upload/i18n/i18n.context.test.tsx +92 -0
  380. package/src/form/file-upload/i18n/i18n.context.ts +67 -0
  381. package/src/form/file-upload/i18n/i18n.types.ts +20 -0
  382. package/src/form/file-upload/i18n/locales/nb.json +20 -0
  383. package/src/form/file-upload/i18n/merge.ts +35 -0
  384. package/src/form/file-upload/index.ts +21 -0
  385. package/src/form/file-upload/parts/Trigger.tsx +48 -0
  386. package/src/form/file-upload/parts/dropzone/Dropzone.tsx +180 -0
  387. package/src/form/file-upload/parts/dropzone/dropzone.types.ts +22 -0
  388. package/src/form/file-upload/parts/dropzone/useDropzone.ts +43 -0
  389. package/src/form/file-upload/parts/item/Item.tsx +165 -0
  390. package/src/form/file-upload/parts/item/Item.types.ts +6 -0
  391. package/src/form/file-upload/parts/item/ItemButton.tsx +52 -0
  392. package/src/form/file-upload/parts/item/ItemIcon.tsx +74 -0
  393. package/src/form/file-upload/parts/item/ItemName.tsx +58 -0
  394. package/src/form/file-upload/parts/item/utils/download-file.ts +9 -0
  395. package/src/form/file-upload/parts/item/utils/file-type-checker.ts +4 -0
  396. package/src/form/file-upload/parts/item/utils/format-file-size.test.ts +76 -0
  397. package/src/form/file-upload/parts/item/utils/format-file-size.ts +25 -0
  398. package/src/form/file-upload/useFileUpload.ts +54 -0
  399. package/src/form/file-upload/utils/is-accepted-file-type.test.ts +69 -0
  400. package/src/form/file-upload/utils/is-accepted-file-type.ts +25 -0
  401. package/src/form/file-upload/utils/is-accepted-size.test.ts +26 -0
  402. package/src/form/file-upload/utils/is-accepted-size.ts +7 -0
  403. package/src/form/file-upload/utils/validate-files.test.ts +132 -0
  404. package/src/form/file-upload/utils/validate-files.ts +62 -0
  405. package/src/form/radio/RadioGroup.tsx +1 -1
  406. package/src/form/search/Search.tsx +3 -2
  407. package/src/form/select/Select.tsx +9 -9
  408. package/src/form/select/select.stories.tsx +32 -37
  409. package/src/form/switch/Switch.tsx +5 -5
  410. package/src/form/textarea/Textarea.tsx +5 -4
  411. package/src/form/useFormField.ts +10 -8
  412. package/src/index.ts +14 -0
  413. package/src/internal-header/header.stories.tsx +8 -5
  414. package/src/layout/bleed/Bleed.tsx +9 -1
  415. package/src/layout/box/Box.tsx +5 -5
  416. package/src/layout/grid/HGrid.tsx +1 -3
  417. package/src/layout/page/Page.tsx +2 -2
  418. package/src/layout/responsive/Responsive.tsx +2 -4
  419. package/src/layout/stack/Stack.tsx +18 -4
  420. package/src/list/types.ts +1 -1
  421. package/src/loader/Loader.tsx +0 -6
  422. package/src/modal/Modal.tsx +2 -2
  423. package/src/modal/types.ts +8 -8
  424. package/src/pagination/Pagination.tsx +3 -2
  425. package/src/pagination/PaginationItem.tsx +1 -1
  426. package/src/popover/Popover.tsx +2 -1
  427. package/src/read-more/ReadMore.tsx +7 -7
  428. package/src/stepper/Step.tsx +4 -4
  429. package/src/stepper/Stepper.tsx +7 -5
  430. package/src/table/AnimateHeight.tsx +1 -1
  431. package/src/table/DataCell.tsx +1 -6
  432. package/src/tabs/TabList.tsx +1 -1
  433. package/src/tabs/Tabs.tsx +7 -7
  434. package/src/timeline/Timeline.tsx +6 -3
  435. package/src/timeline/period/index.tsx +3 -2
  436. package/src/tooltip/Tooltip.tsx +19 -12
  437. package/src/util/create-context.tsx +1 -0
  438. package/src/util/hooks/useMergeRefs.ts +1 -1
package/src/list/types.ts CHANGED
@@ -20,7 +20,7 @@ export interface ListProps extends React.HTMLAttributes<HTMLDivElement> {
20
20
  headingTag?: React.ElementType<any>;
21
21
  /**
22
22
  * Changes padding, height and font-size
23
- * @default medium
23
+ * @default "medium"
24
24
  */
25
25
  size?: "medium" | "small";
26
26
  }
@@ -32,12 +32,6 @@ export interface LoaderProps extends Omit<SVGProps<SVGSVGElement>, "ref"> {
32
32
  * @default "neutral"
33
33
  */
34
34
  variant?: "neutral" | "interaction" | "inverted";
35
- /**
36
- * Allows getting a ref to the component instance.
37
- * Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).
38
- * @see https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom
39
- */
40
- ref?: React.Ref<SVGSVGElement>;
41
35
  }
42
36
 
43
37
  /* Workaround for @types/react v17/v18 feil */
@@ -165,7 +165,7 @@ export const Modal = forwardRef<HTMLDialogElement, ModalProps>(
165
165
  const shouldHandleModalClick = closeOnBackdropClick && !needPolyfill;
166
166
 
167
167
  /**
168
- * @note `closeOnBackdropClick` has issues on polyfill when nesting modals (DatePicker)
168
+ * `closeOnBackdropClick` has issues on polyfill when nesting modals (DatePicker)
169
169
  */
170
170
  const handleModalClick = (
171
171
  endEvent: React.MouseEvent<HTMLDialogElement>,
@@ -191,7 +191,7 @@ export const Modal = forwardRef<HTMLDialogElement, ModalProps>(
191
191
  };
192
192
 
193
193
  /**
194
- * @note onCancel fires when you press `Esc`
194
+ * onCancel fires when you press `Esc`
195
195
  */
196
196
  const handleModalCancel = (
197
197
  event: React.SyntheticEvent<HTMLDialogElement, Event>,
@@ -1,25 +1,24 @@
1
1
  interface ModalPropsBase extends React.DialogHTMLAttributes<HTMLDialogElement> {
2
2
  /**
3
- * Content for the header. Alteratively you can use <Modal.Header> instead for more control,
4
- * but then you have to set `aria-label` or `aria-labelledby` on the modal manually.
3
+ * Content for the header. Alteratively you can use `<Modal.Header>` instead for more control, but then you have to set `aria-label` or `aria-labelledby` on the modal manually.
5
4
  */
6
5
  header?: {
7
6
  label?: string;
8
7
  icon?: React.ReactNode;
9
8
  heading: string;
10
9
  /**
11
- * Heading size
10
+ * Heading size.
12
11
  * @default "medium"
13
12
  * */
14
13
  size?: "medium" | "small";
15
14
  /**
16
- * Removes close-button (X) when false
15
+ * Removes close-button (X) when false.
17
16
  * @default true
18
17
  */
19
18
  closeButton?: boolean;
20
19
  };
21
20
  /**
22
- * Modal content
21
+ * Modal content.
23
22
  */
24
23
  children: React.ReactNode;
25
24
  /**
@@ -36,12 +35,13 @@ interface ModalPropsBase extends React.DialogHTMLAttributes<HTMLDialogElement> {
36
35
  * Called when the user tries to close the modal by one of the built-in methods.
37
36
  * Used if you want to ask the user for confirmation before closing.
38
37
  * @warning Will not always be called when pressing Esc. See `onCancel` for more info.
39
- * @returns Whether to close the modal
38
+ * @returns Whether to close the modal or not
40
39
  */
41
40
  onBeforeClose?: () => boolean;
42
41
  /**
43
- * *Sometimes** called when the user presses the Esc key.
44
- * @warning *Some browsers does not always trigger this event. Chrome only triggers it if you have
42
+ * _Sometimes*_ called when the user presses the Esc key.
43
+ *
44
+ * *: Some browsers does not always trigger this event. Chrome only triggers it if you have
45
45
  * interacted with the modal, and will not trigger it a second time if you press Esc twice in a row.
46
46
  */
47
47
  onCancel?: React.ReactEventHandler<HTMLDialogElement>;
@@ -9,8 +9,9 @@ import PaginationItem, {
9
9
 
10
10
  export interface PaginationProps extends React.HTMLAttributes<HTMLElement> {
11
11
  /**
12
- * Current page
13
- * @note Pagination indexing starts at 1
12
+ * Current page.
13
+ *
14
+ * Pagination indexing starts at 1.
14
15
  */
15
16
  page: number;
16
17
  /**
@@ -16,7 +16,7 @@ export interface PaginationItemProps extends ButtonProps {
16
16
  page: number;
17
17
  /**
18
18
  * Changes padding, height and font-size
19
- * @default medium
19
+ * @default "medium"
20
20
  */
21
21
  size?: "medium" | "small" | "xsmall";
22
22
  }
@@ -42,7 +42,8 @@ export interface PopoverProps extends HTMLAttributes<HTMLDivElement> {
42
42
  onClose: () => void;
43
43
  /**
44
44
  * Default orientation of popover
45
- * @note Try to keep general usage to "top", "bottom", "left", "right"
45
+ *
46
+ * Try to keep general usage to "top", "bottom", "left", "right".
46
47
  * @default "top"
47
48
  */
48
49
  placement?:
@@ -8,20 +8,20 @@ import { useControllableState } from "../util/hooks/useControllableState";
8
8
  export interface ReadMoreProps
9
9
  extends React.ButtonHTMLAttributes<HTMLButtonElement> {
10
10
  /**
11
- * Content inside ReadMore
11
+ * Content inside ReadMore.
12
12
  */
13
13
  children: React.ReactNode;
14
14
  /**
15
- * ReadMore header content
15
+ * ReadMore header content.
16
16
  */
17
17
  header: React.ReactNode;
18
18
  /**
19
- * Opens component if 'true', closes if 'false'
20
- * Using this prop removes automatic control of open-state
19
+ * Opens component if `true`, closes if `false`.
20
+ * Using this prop removes automatic control of open-state.
21
21
  */
22
22
  open?: boolean;
23
23
  /**
24
- * Initially open
24
+ * Initially open.
25
25
  * @default false
26
26
  */
27
27
  defaultOpen?: boolean;
@@ -30,8 +30,8 @@ export interface ReadMoreProps
30
30
  */
31
31
  onOpenChange?: (open: boolean) => void;
32
32
  /**
33
- * Changes fontsize for content
34
- * @default medium
33
+ * Changes fontsize for content.
34
+ * @default "medium"
35
35
  */
36
36
  size?: "medium" | "small";
37
37
  }
@@ -8,21 +8,21 @@ import { StepperContext } from "./context";
8
8
  export interface StepperStepProps
9
9
  extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
10
10
  /**
11
- * Text content by indicator
11
+ * Text content by indicator.
12
12
  */
13
13
  children: string;
14
14
  /**
15
- * Handled by Stepper, overwriting may break component logic
15
+ * Handled by Stepper, overwriting may break component logic.
16
16
  * @private
17
17
  */
18
18
  unsafe_index?: number;
19
19
  /**
20
- * Makes step-indicator a checkmark
20
+ * Makes step-indicator a checkmark.
21
21
  * @default false
22
22
  */
23
23
  completed?: boolean;
24
24
  /**
25
- * Makes step non-interactive if false. Step will be set to a <div>, overriding `as`-prop
25
+ * Makes step non-interactive if false. Step will be set to a `<div>`, overriding `as`-prop.
26
26
  * @default true
27
27
  */
28
28
  interactive?: boolean;
@@ -5,7 +5,7 @@ import { StepperContext } from "./context";
5
5
 
6
6
  export interface StepperProps extends React.HTMLAttributes<HTMLOListElement> {
7
7
  /**
8
- * <Stepper.Step /> elements
8
+ * `<Stepper.Step />` elements.
9
9
  */
10
10
  children: React.ReactNode;
11
11
  /**
@@ -15,16 +15,18 @@ export interface StepperProps extends React.HTMLAttributes<HTMLOListElement> {
15
15
  orientation?: "horizontal" | "vertical";
16
16
  /**
17
17
  * Current active step.
18
- * @note Stepper index starts at 1, not 0
18
+ *
19
+ * Stepper index starts at 1, not 0.
19
20
  */
20
21
  activeStep: number;
21
22
  /**
22
- * Callback for next activeStep
23
- * @note Stepper index starts at 1, not 0
23
+ * Callback for next `activeStep`.
24
+ *
25
+ * Stepper index starts at 1, not 0.
24
26
  */
25
27
  onStepChange?: (step: number) => void;
26
28
  /**
27
- * Makes stepper non-interactive if false
29
+ * Makes stepper non-interactive if false.
28
30
  * @default true
29
31
  */
30
32
  interactive?: boolean;
@@ -51,7 +51,7 @@ interface AnimateHeightProps extends React.HTMLAttributes<HTMLDivElement> {
51
51
  */
52
52
  duration?: number;
53
53
  /**
54
- * @default ease
54
+ * @default "ease"
55
55
  */
56
56
  easing?: string;
57
57
  height: Height;
@@ -15,12 +15,7 @@ export interface DataCellProps
15
15
  textSize?: "medium" | "small";
16
16
  }
17
17
 
18
- export interface DataCellType
19
- extends React.ForwardRefExoticComponent<
20
- DataCellProps & React.RefAttributes<HTMLTableCellElement>
21
- > {}
22
-
23
- export const DataCell: DataCellType = forwardRef(
18
+ export const DataCell = forwardRef<HTMLTableCellElement, DataCellProps>(
24
19
  ({ className, children = "", align, textSize, ...rest }, ref) => {
25
20
  return (
26
21
  <BodyShort
@@ -15,7 +15,7 @@ import { TabsContext } from "./context";
15
15
 
16
16
  export interface TabListProps extends React.HTMLAttributes<HTMLDivElement> {
17
17
  /**
18
- * <Tabs.Tab /> elements
18
+ * `<Tabs.Tab />` elements
19
19
  */
20
20
  children: React.ReactNode;
21
21
  }
package/src/tabs/Tabs.tsx CHANGED
@@ -11,34 +11,34 @@ export interface TabsProps
11
11
  extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "dir"> {
12
12
  children: React.ReactNode;
13
13
  /**
14
- * Changes padding and font-size
14
+ * Changes padding and font-size.
15
15
  * @default "medium"
16
16
  */
17
17
  size?: "medium" | "small";
18
18
  /**
19
- * onChange callback for selected Tab
19
+ * onChange callback for selected Tab.
20
20
  */
21
21
  onChange?: (value: string) => void;
22
22
  /**
23
- * Controlled selected value
23
+ * Controlled selected value.
24
24
  */
25
25
  value?: string;
26
26
  /**
27
- * If not controlled, a default-value needs to be set
27
+ * If not controlled, a default-value needs to be set.
28
28
  */
29
29
  defaultValue?: string;
30
30
  /**
31
- * Automatically activates tab on focus/navigation
31
+ * Automatically activates tab on focus/navigation.
32
32
  * @default false
33
33
  */
34
34
  selectionFollowsFocus?: boolean;
35
35
  /**
36
- * Loops back to start when navigating past last item
36
+ * Loops back to start when navigating past last item.
37
37
  * @default false
38
38
  */
39
39
  loop?: boolean;
40
40
  /**
41
- * Icon position in Tab
41
+ * Icon position in Tab.
42
42
  * @default "left"
43
43
  */
44
44
  iconPosition?: "left" | "top";
@@ -20,13 +20,15 @@ export interface TimelineProps extends React.HTMLAttributes<HTMLDivElement> {
20
20
  /**
21
21
  * Decides startingpoint in timeline.
22
22
  * Defaults to earliest date among the timeline periods.
23
- * @note Using this disables use of ZoomButtons. You will need to control zooming yourself.
23
+ *
24
+ * Using this disables use of ZoomButtons. You will need to control zooming yourself.
24
25
  */
25
26
  startDate?: Date;
26
27
  /**
27
28
  * Decides end-date for timeline.
28
29
  * Defaults to the latest date among the timeline periods.
29
- * @note Using this disables use of ZoomButtons. You will need to control zooming yourself.
30
+ *
31
+ * Using this disables use of ZoomButtons. You will need to control zooming yourself.
30
32
  */
31
33
  endDate?: Date;
32
34
  /**
@@ -63,7 +65,8 @@ interface TimelineComponent
63
65
 
64
66
  /**
65
67
  * A component that displays a timeline of events. Meant for Internal systems.
66
- * @note Component is made for desktop enviroments and will start having issues on smaller screens.
68
+ *
69
+ * Component is made for desktop enviroments and will start having issues on smaller screens.
67
70
  *
68
71
  * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/timeline)
69
72
  * @see 🏷️ {@link TimelineProps}
@@ -38,8 +38,9 @@ export interface TimelinePeriodProps
38
38
  */
39
39
  children?: React.ReactNode;
40
40
  /**
41
- * Visual active inidcation on period
42
- * @note Make sure only one period is active at a time
41
+ * Visual active inidcation on period.
42
+ *
43
+ * Make sure only one period is active at a time.
43
44
  */
44
45
  isActive?: boolean;
45
46
  }
@@ -22,8 +22,9 @@ import { useMergeRefs } from "../util/hooks/useMergeRefs";
22
22
 
23
23
  export interface TooltipProps extends HTMLAttributes<HTMLDivElement> {
24
24
  /**
25
- * Element tooltip anchors to
26
- * @note Needs to be React.ReactElement, does not support multiple children/react fragment
25
+ * Element tooltip anchors to.
26
+ *
27
+ * Needs to be React.ReactElement, does not support multiple children/react fragment
27
28
  */
28
29
  children: React.ReactElement & React.RefAttributes<HTMLElement>;
29
30
  /**
@@ -32,45 +33,51 @@ export interface TooltipProps extends HTMLAttributes<HTMLDivElement> {
32
33
  open?: boolean;
33
34
  /**
34
35
  * Tells tooltip to start in open state.
35
- * Use sparingly synce hover/focus on other elements will close it
36
- * @note "open"-prop overwrites this
36
+ * Use _sparingly_ since hover/focus on other elements will close it.
37
+ *
38
+ * `open`-prop overwrites this.
37
39
  */
38
40
  defaultOpen?: boolean;
39
41
  /**
40
- * Change handler for open
42
+ * Change handler for open.
41
43
  */
42
44
  onOpenChange?: (open: boolean) => void;
43
45
  /**
44
- * Orientation for tooltip
46
+ * Orientation for tooltip.
45
47
  * @default "top"
46
48
  */
47
49
  placement?: "top" | "right" | "bottom" | "left";
48
50
  /**
49
- * Toggles rendering of arrow
51
+ * Toggles rendering of arrow.
50
52
  * @default true
51
53
  */
52
54
  arrow?: boolean;
53
55
  /**
54
- * Distance from anchor to tooltip
56
+ * Distance from anchor to tooltip.
55
57
  * @default 10px with arrow, 2px without arrow
56
58
  */
57
59
  offset?: number;
58
60
  /**
59
- * Text-content inside tooltip
61
+ * Text-content inside tooltip.
60
62
  */
61
63
  content: string;
62
64
  /**
63
- * Sets max allowed character length.
65
+ * Sets max character length.
66
+ *
67
+ * Ideally you should keep the length of the tooltip to a minimum (80 characters).
68
+ * Currently this prop only emits a warning in the console, which can be squelched
69
+ * by setting this to a larger number. However, before doing so you should _try_
70
+ * to shorten the content so that it fits into 80 characters.
64
71
  * @default 80
65
72
  */
66
73
  maxChar?: number;
67
74
  /**
68
- * Adds a delay in milliseconds before opening tooltip
75
+ * Adds a delay in milliseconds before opening tooltip.
69
76
  * @default 150
70
77
  */
71
78
  delay?: number;
72
79
  /**
73
- * List of Keyboard-keys for shortcuts
80
+ * List of Keyboard-keys for shortcuts.
74
81
  */
75
82
  keys?: string[];
76
83
  }
@@ -16,6 +16,7 @@ export interface CreateContextOptions<T> {
16
16
  errorMessage?: string;
17
17
  name?: string;
18
18
  defaultValue?: T;
19
+ strict?: boolean;
19
20
  }
20
21
 
21
22
  type ProviderProps<T> = T & { children: React.ReactNode };
@@ -1,7 +1,7 @@
1
1
  /* https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/composeRefs.tsx */
2
2
  import React from "react";
3
3
 
4
- type PossibleRef<T> = React.Ref<T> | undefined;
4
+ type PossibleRef<T> = React.LegacyRef<T> | undefined;
5
5
 
6
6
  // https://github.com/gregberge/react-merge-refs
7
7
  /**