@fremtind/jokul 0.64.2 → 0.66.1

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 (1008) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/ScreenReaderOnly.cjs +1 -1
  3. package/build/cjs/components/ScreenReaderOnly.cjs.map +1 -1
  4. package/build/cjs/components/accordion/Accordion.cjs +1 -1
  5. package/build/cjs/components/accordion/Accordion.cjs.map +1 -1
  6. package/build/cjs/components/accordion/AccordionItem.cjs.map +1 -1
  7. package/build/cjs/components/accordion/stories/Accordion.stories.cjs +1 -1
  8. package/build/cjs/components/accordion/stories/Accordion.stories.cjs.map +1 -1
  9. package/build/cjs/components/accordion/stories/AccordionItem.stories.cjs +1 -1
  10. package/build/cjs/components/accordion/stories/AccordionItem.stories.cjs.map +1 -1
  11. package/build/cjs/components/autosuggest/Autosuggest.cjs.map +1 -1
  12. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs.map +1 -1
  13. package/build/cjs/components/autosuggest/ControllerButton.cjs +1 -1
  14. package/build/cjs/components/autosuggest/ControllerButton.cjs.map +1 -1
  15. package/build/cjs/components/autosuggest/Menu.cjs +1 -1
  16. package/build/cjs/components/autosuggest/Menu.cjs.map +1 -1
  17. package/build/cjs/components/breadcrumb/Breadcrumb.cjs.map +1 -1
  18. package/build/cjs/components/breadcrumb/BreadcrumbItem.cjs.map +1 -1
  19. package/build/cjs/components/breadcrumb/documentation/BreadcrumbDocs.cjs +1 -1
  20. package/build/cjs/components/breadcrumb/documentation/BreadcrumbDocs.cjs.map +1 -1
  21. package/build/cjs/components/breadcrumb/stories/Breadcrumb.stories.cjs +1 -1
  22. package/build/cjs/components/breadcrumb/stories/Breadcrumb.stories.cjs.map +1 -1
  23. package/build/cjs/components/breadcrumb/stories/BreadcrumbItem.stories.cjs +1 -1
  24. package/build/cjs/components/breadcrumb/stories/BreadcrumbItem.stories.cjs.map +1 -1
  25. package/build/cjs/components/button/Button.cjs +1 -1
  26. package/build/cjs/components/button/Button.cjs.map +1 -1
  27. package/build/cjs/components/button/documentation/AnchorDocs.cjs +1 -1
  28. package/build/cjs/components/button/documentation/AnchorDocs.cjs.map +1 -1
  29. package/build/cjs/components/button/types.cjs.map +1 -1
  30. package/build/cjs/components/card/Card.cjs.map +1 -1
  31. package/build/cjs/components/card/CardImage.cjs.map +1 -1
  32. package/build/cjs/components/card/InfoCard.cjs +1 -1
  33. package/build/cjs/components/card/InfoCard.cjs.map +1 -1
  34. package/build/cjs/components/card/NavCard.cjs.map +1 -1
  35. package/build/cjs/components/card/TaskCard.cjs +1 -1
  36. package/build/cjs/components/card/TaskCard.cjs.map +1 -1
  37. package/build/cjs/components/card/development/examples/FakturainfoExample.d.cts +1 -1
  38. package/build/cjs/components/card/development/examples/InfoCardExample.d.cts +1 -1
  39. package/build/cjs/components/card/development/examples/NavCardExample.d.cts +1 -1
  40. package/build/cjs/components/card/development/examples/StatuskortExample.d.cts +1 -1
  41. package/build/cjs/components/card/development/examples/TaskCardExample.d.cts +1 -1
  42. package/build/cjs/components/card/development/examples/TopExample.d.cts +1 -1
  43. package/build/cjs/components/card/stories/Card.stories.cjs +1 -1
  44. package/build/cjs/components/card/stories/Card.stories.cjs.map +1 -1
  45. package/build/cjs/components/card/types.cjs.map +1 -1
  46. package/build/cjs/components/card/utils.cjs.map +1 -1
  47. package/build/cjs/components/checkbox/Checkbox.cjs.map +1 -1
  48. package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs +1 -1
  49. package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs.map +1 -1
  50. package/build/cjs/components/checkbox-panel/stories/CheckboxPanel.stories.cjs +1 -1
  51. package/build/cjs/components/checkbox-panel/stories/CheckboxPanel.stories.cjs.map +1 -1
  52. package/build/cjs/components/chip/Chip.cjs.map +1 -1
  53. package/build/cjs/components/combobox/Combobox.cjs +1 -1
  54. package/build/cjs/components/combobox/Combobox.cjs.map +1 -1
  55. package/build/cjs/components/combobox/stories/Combobox.stories.cjs +1 -1
  56. package/build/cjs/components/combobox/stories/Combobox.stories.cjs.map +1 -1
  57. package/build/cjs/components/cookie-consent/CookieConsent.cjs +1 -1
  58. package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
  59. package/build/cjs/components/cookie-consent/CookieConsentContext.cjs.map +1 -1
  60. package/build/cjs/components/cookie-consent/RequirementCheckbox.cjs +1 -1
  61. package/build/cjs/components/cookie-consent/RequirementCheckbox.cjs.map +1 -1
  62. package/build/cjs/components/cookie-consent/cookieConsentUtils.cjs +1 -1
  63. package/build/cjs/components/cookie-consent/cookieConsentUtils.cjs.map +1 -1
  64. package/build/cjs/components/cookie-consent/stories/CookieConsent.stories.cjs +1 -1
  65. package/build/cjs/components/cookie-consent/stories/CookieConsent.stories.cjs.map +1 -1
  66. package/build/cjs/components/countdown/Countdown.cjs +1 -1
  67. package/build/cjs/components/countdown/Countdown.cjs.map +1 -1
  68. package/build/cjs/components/countdown/stories/Countdown.stories.cjs.map +1 -1
  69. package/build/cjs/components/datepicker/DatePicker.cjs +1 -1
  70. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  71. package/build/cjs/components/datepicker/index.d.cts +1 -1
  72. package/build/cjs/components/datepicker/internal/Calendar.cjs +1 -1
  73. package/build/cjs/components/datepicker/internal/Calendar.cjs.map +1 -1
  74. package/build/cjs/components/datepicker/internal/calendarReducer.cjs.map +1 -1
  75. package/build/cjs/components/datepicker/internal/useCalendar.cjs.map +1 -1
  76. package/build/cjs/components/datepicker/internal/useCalendar.d.cts +1 -1
  77. package/build/cjs/components/datepicker/internal/utils.cjs +1 -1
  78. package/build/cjs/components/datepicker/internal/utils.cjs.map +1 -1
  79. package/build/cjs/components/datepicker/utils.cjs +1 -1
  80. package/build/cjs/components/datepicker/utils.cjs.map +1 -1
  81. package/build/cjs/components/datepicker/validation.cjs.map +1 -1
  82. package/build/cjs/components/description-list/DescriptionList.cjs +1 -1
  83. package/build/cjs/components/description-list/DescriptionList.cjs.map +1 -1
  84. package/build/cjs/components/description-list/stories/DescriptionList.stories.cjs +1 -1
  85. package/build/cjs/components/description-list/stories/DescriptionList.stories.cjs.map +1 -1
  86. package/build/cjs/components/expander/ExpandablePanel.cjs +1 -1
  87. package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
  88. package/build/cjs/components/expander/ExpandablePanelContent.cjs.map +1 -1
  89. package/build/cjs/components/expander/Expander.cjs +1 -1
  90. package/build/cjs/components/expander/Expander.cjs.map +1 -1
  91. package/build/cjs/components/expander/context.cjs.map +1 -1
  92. package/build/cjs/components/expander/deprecated/ExpandSection.cjs.map +1 -1
  93. package/build/cjs/components/expander/deprecated/Expander.cjs +1 -1
  94. package/build/cjs/components/expander/deprecated/Expander.cjs.map +1 -1
  95. package/build/cjs/components/expander/index.d.cts +1 -1
  96. package/build/cjs/components/expander/stories/Expander.stories.cjs +1 -1
  97. package/build/cjs/components/expander/stories/Expander.stories.cjs.map +1 -1
  98. package/build/cjs/components/expander/stories/ExpanderPanel.stories.cjs +1 -1
  99. package/build/cjs/components/expander/stories/ExpanderPanel.stories.cjs.map +1 -1
  100. package/build/cjs/components/feedback/Feedback.cjs.map +1 -1
  101. package/build/cjs/components/feedback/FeedbackSuccess.cjs +1 -1
  102. package/build/cjs/components/feedback/FeedbackSuccess.cjs.map +1 -1
  103. package/build/cjs/components/feedback/FeedbackValues.cjs.map +1 -1
  104. package/build/cjs/components/feedback/feedbackContext.cjs.map +1 -1
  105. package/build/cjs/components/feedback/followup/Followup.cjs +1 -1
  106. package/build/cjs/components/feedback/followup/Followup.cjs.map +1 -1
  107. package/build/cjs/components/feedback/followup/followupContext.cjs.map +1 -1
  108. package/build/cjs/components/feedback/followup/useFollowup.cjs.map +1 -1
  109. package/build/cjs/components/feedback/index.d.cts +1 -1
  110. package/build/cjs/components/feedback/main-question/MainQuestion.cjs +1 -1
  111. package/build/cjs/components/feedback/main-question/MainQuestion.cjs.map +1 -1
  112. package/build/cjs/components/feedback/main-question/mainQuestionContext.cjs.map +1 -1
  113. package/build/cjs/components/feedback/main-question/useMainQuestion.cjs.map +1 -1
  114. package/build/cjs/components/feedback/main-question/useMainQuestion.d.cts +2 -2
  115. package/build/cjs/components/feedback/presets.cjs.map +1 -1
  116. package/build/cjs/components/feedback/questions/AddonQuestion.cjs.map +1 -1
  117. package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs +1 -1
  118. package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs.map +1 -1
  119. package/build/cjs/components/feedback/questions/ContactQuestion.cjs +1 -1
  120. package/build/cjs/components/feedback/questions/ContactQuestion.cjs.map +1 -1
  121. package/build/cjs/components/feedback/questions/RadioQuestion.cjs +1 -1
  122. package/build/cjs/components/feedback/questions/RadioQuestion.cjs.map +1 -1
  123. package/build/cjs/components/feedback/questions/SmileyQuestion.cjs.map +1 -1
  124. package/build/cjs/components/feedback/questions/TextQuestion.cjs +1 -1
  125. package/build/cjs/components/feedback/questions/TextQuestion.cjs.map +1 -1
  126. package/build/cjs/components/feedback/questions/smileyUtils.cjs +1 -1
  127. package/build/cjs/components/feedback/questions/smileyUtils.cjs.map +1 -1
  128. package/build/cjs/components/feedback/stories/Feedback.stories.cjs +1 -1
  129. package/build/cjs/components/feedback/stories/Feedback.stories.cjs.map +1 -1
  130. package/build/cjs/components/feedback/utils.cjs.map +1 -1
  131. package/build/cjs/components/file-input/File.cjs +1 -1
  132. package/build/cjs/components/file-input/File.cjs.map +1 -1
  133. package/build/cjs/components/file-input/FileInput.cjs +1 -1
  134. package/build/cjs/components/file-input/FileInput.cjs.map +1 -1
  135. package/build/cjs/components/file-input/internal/Dropzone.cjs.map +1 -1
  136. package/build/cjs/components/file-input/internal/Input.cjs +1 -1
  137. package/build/cjs/components/file-input/internal/Input.cjs.map +1 -1
  138. package/build/cjs/components/file-input/internal/MaxSize.cjs +1 -1
  139. package/build/cjs/components/file-input/internal/MaxSize.cjs.map +1 -1
  140. package/build/cjs/components/file-input/internal/Thumbnail.cjs +1 -1
  141. package/build/cjs/components/file-input/internal/Thumbnail.cjs.map +1 -1
  142. package/build/cjs/components/file-input/internal/fileInputContext.cjs.map +1 -1
  143. package/build/cjs/components/file-input/internal/validateFile.cjs.map +1 -1
  144. package/build/cjs/components/file-input/stories/File.stories.cjs +1 -1
  145. package/build/cjs/components/file-input/stories/File.stories.cjs.map +1 -1
  146. package/build/cjs/components/file-input/stories/FileInput.stories.cjs +1 -1
  147. package/build/cjs/components/file-input/stories/FileInput.stories.cjs.map +1 -1
  148. package/build/cjs/components/file-input/utils.cjs +1 -1
  149. package/build/cjs/components/file-input/utils.cjs.map +1 -1
  150. package/build/cjs/components/flex/Flex.cjs.map +1 -1
  151. package/build/cjs/components/flex/stories/Flex.stories.cjs +1 -1
  152. package/build/cjs/components/flex/stories/Flex.stories.cjs.map +1 -1
  153. package/build/cjs/components/flex/types.cjs +1 -1
  154. package/build/cjs/components/icon/Icon.cjs.map +1 -1
  155. package/build/cjs/components/icon/icons/ArrowDownIcon.cjs +1 -1
  156. package/build/cjs/components/icon/icons/ArrowDownIcon.cjs.map +1 -1
  157. package/build/cjs/components/icon/icons/ArrowLeftIcon.cjs +1 -1
  158. package/build/cjs/components/icon/icons/ArrowLeftIcon.cjs.map +1 -1
  159. package/build/cjs/components/icon/icons/ArrowNorthEastIcon.cjs +1 -1
  160. package/build/cjs/components/icon/icons/ArrowNorthEastIcon.cjs.map +1 -1
  161. package/build/cjs/components/icon/icons/ArrowRightIcon.cjs +1 -1
  162. package/build/cjs/components/icon/icons/ArrowRightIcon.cjs.map +1 -1
  163. package/build/cjs/components/icon/icons/ArrowUpIcon.cjs +1 -1
  164. package/build/cjs/components/icon/icons/ArrowUpIcon.cjs.map +1 -1
  165. package/build/cjs/components/icon/icons/CalendarIcon.cjs +1 -1
  166. package/build/cjs/components/icon/icons/CalendarIcon.cjs.map +1 -1
  167. package/build/cjs/components/icon/icons/CheckIcon.cjs +1 -1
  168. package/build/cjs/components/icon/icons/CheckIcon.cjs.map +1 -1
  169. package/build/cjs/components/icon/icons/ChevronDownIcon.cjs +1 -1
  170. package/build/cjs/components/icon/icons/ChevronDownIcon.cjs.map +1 -1
  171. package/build/cjs/components/icon/icons/ChevronLeftIcon.cjs +1 -1
  172. package/build/cjs/components/icon/icons/ChevronLeftIcon.cjs.map +1 -1
  173. package/build/cjs/components/icon/icons/ChevronRightIcon.cjs +1 -1
  174. package/build/cjs/components/icon/icons/ChevronRightIcon.cjs.map +1 -1
  175. package/build/cjs/components/icon/icons/ChevronUpIcon.cjs +1 -1
  176. package/build/cjs/components/icon/icons/ChevronUpIcon.cjs.map +1 -1
  177. package/build/cjs/components/icon/icons/CloseIcon.cjs +1 -1
  178. package/build/cjs/components/icon/icons/CloseIcon.cjs.map +1 -1
  179. package/build/cjs/components/icon/icons/CopyIcon.cjs +1 -1
  180. package/build/cjs/components/icon/icons/CopyIcon.cjs.map +1 -1
  181. package/build/cjs/components/icon/icons/DotsIcon.cjs +1 -1
  182. package/build/cjs/components/icon/icons/DotsIcon.cjs.map +1 -1
  183. package/build/cjs/components/icon/icons/DragIcon.cjs +1 -1
  184. package/build/cjs/components/icon/icons/DragIcon.cjs.map +1 -1
  185. package/build/cjs/components/icon/icons/ErrorIcon.cjs +1 -1
  186. package/build/cjs/components/icon/icons/ErrorIcon.cjs.map +1 -1
  187. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs +1 -1
  188. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs.map +1 -1
  189. package/build/cjs/components/icon/icons/HamburgerIcon.cjs +1 -1
  190. package/build/cjs/components/icon/icons/HamburgerIcon.cjs.map +1 -1
  191. package/build/cjs/components/icon/icons/InfoIcon.cjs +1 -1
  192. package/build/cjs/components/icon/icons/InfoIcon.cjs.map +1 -1
  193. package/build/cjs/components/icon/icons/LinkIcon.cjs +1 -1
  194. package/build/cjs/components/icon/icons/LinkIcon.cjs.map +1 -1
  195. package/build/cjs/components/icon/icons/MinusIcon.cjs +1 -1
  196. package/build/cjs/components/icon/icons/MinusIcon.cjs.map +1 -1
  197. package/build/cjs/components/icon/icons/OpenInNewIcon.cjs +1 -1
  198. package/build/cjs/components/icon/icons/OpenInNewIcon.cjs.map +1 -1
  199. package/build/cjs/components/icon/icons/PenIcon.cjs +1 -1
  200. package/build/cjs/components/icon/icons/PenIcon.cjs.map +1 -1
  201. package/build/cjs/components/icon/icons/PlusIcon.cjs +1 -1
  202. package/build/cjs/components/icon/icons/PlusIcon.cjs.map +1 -1
  203. package/build/cjs/components/icon/icons/QuestionIcon.cjs +1 -1
  204. package/build/cjs/components/icon/icons/QuestionIcon.cjs.map +1 -1
  205. package/build/cjs/components/icon/icons/RedCrossIcon.cjs +1 -1
  206. package/build/cjs/components/icon/icons/RedCrossIcon.cjs.map +1 -1
  207. package/build/cjs/components/icon/icons/SearchIcon.cjs +1 -1
  208. package/build/cjs/components/icon/icons/SearchIcon.cjs.map +1 -1
  209. package/build/cjs/components/icon/icons/SuccessIcon.cjs +1 -1
  210. package/build/cjs/components/icon/icons/SuccessIcon.cjs.map +1 -1
  211. package/build/cjs/components/icon/icons/ThumbDownIcon.cjs +1 -1
  212. package/build/cjs/components/icon/icons/ThumbDownIcon.cjs.map +1 -1
  213. package/build/cjs/components/icon/icons/ThumbUpIcon.cjs +1 -1
  214. package/build/cjs/components/icon/icons/ThumbUpIcon.cjs.map +1 -1
  215. package/build/cjs/components/icon/icons/TrashCanIcon.cjs +1 -1
  216. package/build/cjs/components/icon/icons/TrashCanIcon.cjs.map +1 -1
  217. package/build/cjs/components/icon/icons/WarningIcon.cjs +1 -1
  218. package/build/cjs/components/icon/icons/WarningIcon.cjs.map +1 -1
  219. package/build/cjs/components/icon/icons/animated/ArrowHorizontalAnimated.cjs +1 -1
  220. package/build/cjs/components/icon/icons/animated/ArrowHorizontalAnimated.cjs.map +1 -1
  221. package/build/cjs/components/icon/icons/animated/ArrowVerticalAnimated.cjs +1 -1
  222. package/build/cjs/components/icon/icons/animated/ArrowVerticalAnimated.cjs.map +1 -1
  223. package/build/cjs/components/icon/icons/animated/PlusRemoveAnimated.cjs +1 -1
  224. package/build/cjs/components/icon/icons/animated/PlusRemoveAnimated.cjs.map +1 -1
  225. package/build/cjs/components/icon/stories/Icons.stories.cjs.map +1 -1
  226. package/build/cjs/components/icon-button/IconButton.cjs.map +1 -1
  227. package/build/cjs/components/icon-button/stories/IconButton.stories.cjs +1 -1
  228. package/build/cjs/components/icon-button/stories/IconButton.stories.cjs.map +1 -1
  229. package/build/cjs/components/image/Image.cjs +1 -1
  230. package/build/cjs/components/image/Image.cjs.map +1 -1
  231. package/build/cjs/components/image/stories/Image.stories.cjs +1 -1
  232. package/build/cjs/components/image/stories/Image.stories.cjs.map +1 -1
  233. package/build/cjs/components/image/useImageLoadingStatus.cjs.map +1 -1
  234. package/build/cjs/components/input-group/FieldGroup.cjs +1 -1
  235. package/build/cjs/components/input-group/FieldGroup.cjs.map +1 -1
  236. package/build/cjs/components/input-group/InputGroup.cjs.map +1 -1
  237. package/build/cjs/components/input-group/Label.cjs +1 -1
  238. package/build/cjs/components/input-group/Label.cjs.map +1 -1
  239. package/build/cjs/components/input-group/SupportLabel.cjs +1 -1
  240. package/build/cjs/components/input-group/SupportLabel.cjs.map +1 -1
  241. package/build/cjs/components/input-group/stories/FieldGroup.stories.cjs +1 -1
  242. package/build/cjs/components/input-group/stories/FieldGroup.stories.cjs.map +1 -1
  243. package/build/cjs/components/input-group/stories/InputGroup.stories.cjs +1 -1
  244. package/build/cjs/components/input-group/stories/InputGroup.stories.cjs.map +1 -1
  245. package/build/cjs/components/input-group/stories/Label.stories.cjs +1 -1
  246. package/build/cjs/components/input-group/stories/Label.stories.cjs.map +1 -1
  247. package/build/cjs/components/input-group/stories/SupportLabel.stories.cjs +1 -1
  248. package/build/cjs/components/input-group/stories/SupportLabel.stories.cjs.map +1 -1
  249. package/build/cjs/components/link/Link.cjs.map +1 -1
  250. package/build/cjs/components/link/stories/Link.stories.cjs +1 -1
  251. package/build/cjs/components/link/stories/Link.stories.cjs.map +1 -1
  252. package/build/cjs/components/link-list/LinkList.cjs.map +1 -1
  253. package/build/cjs/components/link-list/index.d.cts +1 -1
  254. package/build/cjs/components/link-list/stories/LinkList.stories.cjs +1 -1
  255. package/build/cjs/components/link-list/stories/LinkList.stories.cjs.map +1 -1
  256. package/build/cjs/components/list/List.cjs +1 -1
  257. package/build/cjs/components/list/List.cjs.map +1 -1
  258. package/build/cjs/components/list/ListItem.cjs +1 -1
  259. package/build/cjs/components/list/ListItem.cjs.map +1 -1
  260. package/build/cjs/components/list/stories/List.stories.cjs +1 -1
  261. package/build/cjs/components/list/stories/List.stories.cjs.map +1 -1
  262. package/build/cjs/components/loader/Loader.cjs +1 -1
  263. package/build/cjs/components/loader/Loader.cjs.map +1 -1
  264. package/build/cjs/components/loader/skeletons/SkeletonAnimation.cjs +1 -1
  265. package/build/cjs/components/loader/skeletons/SkeletonAnimation.cjs.map +1 -1
  266. package/build/cjs/components/loader/skeletons/SkeletonButton.cjs +1 -1
  267. package/build/cjs/components/loader/skeletons/SkeletonButton.cjs.map +1 -1
  268. package/build/cjs/components/loader/skeletons/SkeletonCheckboxGroup.cjs +1 -1
  269. package/build/cjs/components/loader/skeletons/SkeletonCheckboxGroup.cjs.map +1 -1
  270. package/build/cjs/components/loader/skeletons/SkeletonElement.cjs +1 -1
  271. package/build/cjs/components/loader/skeletons/SkeletonElement.cjs.map +1 -1
  272. package/build/cjs/components/loader/skeletons/SkeletonInput.cjs +1 -1
  273. package/build/cjs/components/loader/skeletons/SkeletonInput.cjs.map +1 -1
  274. package/build/cjs/components/loader/skeletons/SkeletonLabel.cjs +1 -1
  275. package/build/cjs/components/loader/skeletons/SkeletonLabel.cjs.map +1 -1
  276. package/build/cjs/components/loader/skeletons/SkeletonRadioButtonGroup.cjs +1 -1
  277. package/build/cjs/components/loader/skeletons/SkeletonRadioButtonGroup.cjs.map +1 -1
  278. package/build/cjs/components/loader/skeletons/SkeletonTable.cjs +1 -1
  279. package/build/cjs/components/loader/skeletons/SkeletonTable.cjs.map +1 -1
  280. package/build/cjs/components/loader/skeletons/SkeletonTextArea.cjs +1 -1
  281. package/build/cjs/components/loader/skeletons/SkeletonTextArea.cjs.map +1 -1
  282. package/build/cjs/components/loader/stories/Loader.stories.cjs +1 -1
  283. package/build/cjs/components/loader/stories/Loader.stories.cjs.map +1 -1
  284. package/build/cjs/components/loader/stories/Skeleton.stories.cjs +1 -1
  285. package/build/cjs/components/loader/stories/Skeleton.stories.cjs.map +1 -1
  286. package/build/cjs/components/loader/useDelayedRender.cjs +1 -1
  287. package/build/cjs/components/loader/useDelayedRender.cjs.map +1 -1
  288. package/build/cjs/components/logo/Logo.cjs +1 -1
  289. package/build/cjs/components/logo/Logo.cjs.map +1 -1
  290. package/build/cjs/components/logo/LogoStamp.cjs.map +1 -1
  291. package/build/cjs/components/logo/stories/Logo.stories.cjs +1 -1
  292. package/build/cjs/components/logo/stories/Logo.stories.cjs.map +1 -1
  293. package/build/cjs/components/logo/stories/LogoStamp.stories.cjs +1 -1
  294. package/build/cjs/components/logo/stories/LogoStamp.stories.cjs.map +1 -1
  295. package/build/cjs/components/logo/text-paths/ForsikringLevertAvFremtind.cjs +1 -1
  296. package/build/cjs/components/logo/text-paths/ForsikringLevertAvFremtind.cjs.map +1 -1
  297. package/build/cjs/components/logo/text-paths/FraSB1ogDNB.cjs +1 -1
  298. package/build/cjs/components/logo/text-paths/FraSB1ogDNB.cjs.map +1 -1
  299. package/build/cjs/components/logo/text-paths/InnovasjonFraFremtind.cjs +1 -1
  300. package/build/cjs/components/logo/text-paths/InnovasjonFraFremtind.cjs.map +1 -1
  301. package/build/cjs/components/logo/text-paths/TeknologiFraFremtind.cjs +1 -1
  302. package/build/cjs/components/logo/text-paths/TeknologiFraFremtind.cjs.map +1 -1
  303. package/build/cjs/components/logo/text-paths/VartEgetForsikringsselskap.cjs +1 -1
  304. package/build/cjs/components/logo/text-paths/VartEgetForsikringsselskap.cjs.map +1 -1
  305. package/build/cjs/components/logo/text-paths/VartForsikringsselskap.cjs +1 -1
  306. package/build/cjs/components/logo/text-paths/VartForsikringsselskap.cjs.map +1 -1
  307. package/build/cjs/components/menu/Menu.cjs.map +1 -1
  308. package/build/cjs/components/menu/MenuDivider.cjs +1 -1
  309. package/build/cjs/components/menu/MenuDivider.cjs.map +1 -1
  310. package/build/cjs/components/menu/MenuItem.cjs.map +1 -1
  311. package/build/cjs/components/menu/MenuItemCheckbox.cjs.map +1 -1
  312. package/build/cjs/components/menu/stories/Menu.stories.cjs +1 -1
  313. package/build/cjs/components/menu/stories/Menu.stories.cjs.map +1 -1
  314. package/build/cjs/components/menu/stories/MenuDivider.stories.cjs +1 -1
  315. package/build/cjs/components/menu/stories/MenuDivider.stories.cjs.map +1 -1
  316. package/build/cjs/components/menu/stories/MenuItem.stories.cjs +1 -1
  317. package/build/cjs/components/menu/stories/MenuItem.stories.cjs.map +1 -1
  318. package/build/cjs/components/menu/stories/MenuItemCheckbox.stories.cjs.map +1 -1
  319. package/build/cjs/components/menu/types.d.cts +2 -2
  320. package/build/cjs/components/menu/useMenuWideEvents.cjs +1 -1
  321. package/build/cjs/components/menu/useMenuWideEvents.cjs.map +1 -1
  322. package/build/cjs/components/message/DismissButton.cjs.map +1 -1
  323. package/build/cjs/components/message/FormErrorMessage.cjs.map +1 -1
  324. package/build/cjs/components/message/Message.cjs +1 -1
  325. package/build/cjs/components/message/Message.cjs.map +1 -1
  326. package/build/cjs/components/message/stories/ErrorMessage.stories.cjs.map +1 -1
  327. package/build/cjs/components/message/stories/FormErrorMessage.stories.cjs.map +1 -1
  328. package/build/cjs/components/message/stories/InfoMessage.stories.cjs.map +1 -1
  329. package/build/cjs/components/message/stories/SuccessMessage.stories.cjs.map +1 -1
  330. package/build/cjs/components/message/stories/WarningMessage.stories.cjs.map +1 -1
  331. package/build/cjs/components/modal/Modal.cjs +1 -1
  332. package/build/cjs/components/modal/Modal.cjs.map +1 -1
  333. package/build/cjs/components/modal/stories/CompleteModal.stories.cjs +1 -1
  334. package/build/cjs/components/modal/stories/CompleteModal.stories.cjs.map +1 -1
  335. package/build/cjs/components/modal/stories/ModalActions.stories.cjs +1 -1
  336. package/build/cjs/components/modal/stories/ModalActions.stories.cjs.map +1 -1
  337. package/build/cjs/components/modal/stories/ModalCloseButton.stories.cjs +1 -1
  338. package/build/cjs/components/modal/stories/ModalCloseButton.stories.cjs.map +1 -1
  339. package/build/cjs/components/modal/stories/ModalOverlay.stories.cjs.map +1 -1
  340. package/build/cjs/components/modal/useModal.cjs.map +1 -1
  341. package/build/cjs/components/nav-link/NavLink.cjs.map +1 -1
  342. package/build/cjs/components/nav-link/stories/NavLink.stories.cjs.map +1 -1
  343. package/build/cjs/components/pagination/PageButton.cjs.map +1 -1
  344. package/build/cjs/components/pagination/Pagination.cjs +1 -1
  345. package/build/cjs/components/pagination/Pagination.cjs.map +1 -1
  346. package/build/cjs/components/pagination/stories/Pagination.stories.cjs.map +1 -1
  347. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  348. package/build/cjs/components/popover/stories/PopoverControlled.stories.cjs.map +1 -1
  349. package/build/cjs/components/popover/stories/PopoverUncontrolled.stories.cjs.map +1 -1
  350. package/build/cjs/components/popover/types.d.cts +1 -1
  351. package/build/cjs/components/progress-bar/ProgressBar.cjs +1 -1
  352. package/build/cjs/components/progress-bar/ProgressBar.cjs.map +1 -1
  353. package/build/cjs/components/progress-bar/stories/ProgressBar.stories.cjs +1 -1
  354. package/build/cjs/components/progress-bar/stories/ProgressBar.stories.cjs.map +1 -1
  355. package/build/cjs/components/radio-button/BaseRadioButton.cjs.map +1 -1
  356. package/build/cjs/components/radio-button/RadioButton.cjs.map +1 -1
  357. package/build/cjs/components/radio-button/RadioButtonGroup.cjs +1 -1
  358. package/build/cjs/components/radio-button/RadioButtonGroup.cjs.map +1 -1
  359. package/build/cjs/components/radio-button/radioGroupContext.cjs.map +1 -1
  360. package/build/cjs/components/radio-button/stories/BaseRadioButton.stories.cjs.map +1 -1
  361. package/build/cjs/components/radio-button/stories/RadioButton.stories.cjs.map +1 -1
  362. package/build/cjs/components/radio-button/stories/RadioButtonGroup.stories.cjs +1 -1
  363. package/build/cjs/components/radio-button/stories/RadioButtonGroup.stories.cjs.map +1 -1
  364. package/build/cjs/components/radio-panel/RadioPanel.cjs.map +1 -1
  365. package/build/cjs/components/radio-panel/RadioPanelGroup.cjs.map +1 -1
  366. package/build/cjs/components/radio-panel/stories/RadioPanel.stories.cjs +1 -1
  367. package/build/cjs/components/radio-panel/stories/RadioPanel.stories.cjs.map +1 -1
  368. package/build/cjs/components/select/NativeSelect.cjs.map +1 -1
  369. package/build/cjs/components/select/Select.cjs +1 -1
  370. package/build/cjs/components/select/Select.cjs.map +1 -1
  371. package/build/cjs/components/select/stories/select.stories.cjs +1 -1
  372. package/build/cjs/components/select/stories/select.stories.cjs.map +1 -1
  373. package/build/cjs/components/summary-table/SummaryTable.cjs +1 -1
  374. package/build/cjs/components/summary-table/SummaryTable.cjs.map +1 -1
  375. package/build/cjs/components/summary-table/SummaryTableRow.cjs +1 -1
  376. package/build/cjs/components/summary-table/SummaryTableRow.cjs.map +1 -1
  377. package/build/cjs/components/summary-table/mocks.cjs +1 -1
  378. package/build/cjs/components/summary-table/mocks.cjs.map +1 -1
  379. package/build/cjs/components/summary-table/stories/summary-table.stories.cjs +1 -1
  380. package/build/cjs/components/summary-table/stories/summary-table.stories.cjs.map +1 -1
  381. package/build/cjs/components/system-message/SystemMessage.cjs +1 -1
  382. package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
  383. package/build/cjs/components/system-message/common/DismissButton.cjs.map +1 -1
  384. package/build/cjs/components/system-message/common/MessageIcon.cjs +1 -1
  385. package/build/cjs/components/system-message/common/MessageIcon.cjs.map +1 -1
  386. package/build/cjs/components/table/DataTable.cjs.map +1 -1
  387. package/build/cjs/components/table/ExpandableTableRow.cjs +1 -1
  388. package/build/cjs/components/table/ExpandableTableRow.cjs.map +1 -1
  389. package/build/cjs/components/table/ExpandableTableRowController.cjs.map +1 -1
  390. package/build/cjs/components/table/Table.cjs.map +1 -1
  391. package/build/cjs/components/table/TableBody.cjs.map +1 -1
  392. package/build/cjs/components/table/TableCaption.cjs.map +1 -1
  393. package/build/cjs/components/table/TableCell.cjs.map +1 -1
  394. package/build/cjs/components/table/TableColumn.cjs.map +1 -1
  395. package/build/cjs/components/table/TableColumnGroup.cjs.map +1 -1
  396. package/build/cjs/components/table/TableFooter.cjs.map +1 -1
  397. package/build/cjs/components/table/TableHead.cjs.map +1 -1
  398. package/build/cjs/components/table/TableHeader.cjs.map +1 -1
  399. package/build/cjs/components/table/TablePagination.cjs +1 -1
  400. package/build/cjs/components/table/TablePagination.cjs.map +1 -1
  401. package/build/cjs/components/table/TableRow.cjs.map +1 -1
  402. package/build/cjs/components/table/stories/table.stories.cjs +1 -1
  403. package/build/cjs/components/table/stories/table.stories.cjs.map +1 -1
  404. package/build/cjs/components/table/tableContext.cjs.map +1 -1
  405. package/build/cjs/components/table/tableSectionContext.cjs.map +1 -1
  406. package/build/cjs/components/table/types.cjs +1 -1
  407. package/build/cjs/components/table/utils.cjs.map +1 -1
  408. package/build/cjs/components/tabs/NavTab.cjs.map +1 -1
  409. package/build/cjs/components/tabs/NavTabs.cjs.map +1 -1
  410. package/build/cjs/components/tabs/Tab.cjs.map +1 -1
  411. package/build/cjs/components/tabs/TabList.cjs.map +1 -1
  412. package/build/cjs/components/tabs/TabPanel.cjs +1 -1
  413. package/build/cjs/components/tabs/TabPanel.cjs.map +1 -1
  414. package/build/cjs/components/tabs/Tabs.cjs.map +1 -1
  415. package/build/cjs/components/tabs/stories/NavTabs.stories.cjs +1 -1
  416. package/build/cjs/components/tabs/stories/NavTabs.stories.cjs.map +1 -1
  417. package/build/cjs/components/tabs/stories/Tabs.stories.cjs +1 -1
  418. package/build/cjs/components/tabs/stories/Tabs.stories.cjs.map +1 -1
  419. package/build/cjs/components/tabs/tabsContext.cjs.map +1 -1
  420. package/build/cjs/components/tabs/types.d.cts +1 -1
  421. package/build/cjs/components/tag/Tag.cjs +1 -1
  422. package/build/cjs/components/tag/Tag.cjs.map +1 -1
  423. package/build/cjs/components/tag/index.d.cts +1 -1
  424. package/build/cjs/components/tag/stories/Tag.stories.cjs +1 -1
  425. package/build/cjs/components/tag/stories/Tag.stories.cjs.map +1 -1
  426. package/build/cjs/components/text-area/BaseTextArea.cjs.map +1 -1
  427. package/build/cjs/components/text-area/TextArea.cjs.map +1 -1
  428. package/build/cjs/components/text-area/stories/TextArea.stories.cjs.map +1 -1
  429. package/build/cjs/components/text-input/BaseTextInput.cjs.map +1 -1
  430. package/build/cjs/components/text-input/TextInput.cjs.map +1 -1
  431. package/build/cjs/components/toast/Toast.cjs +1 -1
  432. package/build/cjs/components/toast/Toast.cjs.map +1 -1
  433. package/build/cjs/components/toast/ToastRegion.cjs +1 -1
  434. package/build/cjs/components/toast/ToastRegion.cjs.map +1 -1
  435. package/build/cjs/components/toast/index.d.cts +1 -1
  436. package/build/cjs/components/toast/stories/Toast.stories.cjs +1 -1
  437. package/build/cjs/components/toast/stories/Toast.stories.cjs.map +1 -1
  438. package/build/cjs/components/toast/toastContext.cjs.map +1 -1
  439. package/build/cjs/components/toggle-switch/ToggleSlider.cjs.map +1 -1
  440. package/build/cjs/components/toggle-switch/ToggleSwitch.cjs.map +1 -1
  441. package/build/cjs/components/toggle-switch/stories/ToggleSwitch.stories.cjs.map +1 -1
  442. package/build/cjs/components/toggle-switch/usePillStyles.cjs +1 -1
  443. package/build/cjs/components/toggle-switch/usePillStyles.cjs.map +1 -1
  444. package/build/cjs/components/tooltip/PopupTip.cjs.map +1 -1
  445. package/build/cjs/components/tooltip/Tooltip.cjs +1 -1
  446. package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
  447. package/build/cjs/components/tooltip/TooltipContent.cjs.map +1 -1
  448. package/build/cjs/components/tooltip/stories/Tooltip.stories.cjs +1 -1
  449. package/build/cjs/components/tooltip/stories/Tooltip.stories.cjs.map +1 -1
  450. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs +1 -1
  451. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs.map +1 -1
  452. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs +1 -1
  453. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs.map +1 -1
  454. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs +1 -1
  455. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs.map +1 -1
  456. package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs.map +1 -1
  457. package/build/cjs/hooks/useClickOutside/useClickOutside.cjs +1 -1
  458. package/build/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  459. package/build/cjs/hooks/useElementDimensions/useElementDimensions.cjs.map +1 -1
  460. package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs +1 -1
  461. package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs.map +1 -1
  462. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +1 -1
  463. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  464. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.d.cts +1 -1
  465. package/build/cjs/hooks/useKeyListener/useKeyListener.cjs +1 -1
  466. package/build/cjs/hooks/useKeyListener/useKeyListener.cjs.map +1 -1
  467. package/build/cjs/hooks/useListNavigation/useListNavigation.cjs +1 -1
  468. package/build/cjs/hooks/useListNavigation/useListNavigation.cjs.map +1 -1
  469. package/build/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  470. package/build/cjs/hooks/useProgressiveImg/useProgressiveImg.cjs.map +1 -1
  471. package/build/cjs/hooks/useScreen/index.d.cts +1 -1
  472. package/build/cjs/hooks/useScreen/useScreen.cjs +1 -1
  473. package/build/cjs/hooks/useScreen/useScreen.cjs.map +1 -1
  474. package/build/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
  475. package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.cjs.map +1 -1
  476. package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.d.cts +1 -1
  477. package/build/cjs/shared/input-panel/BasePanel.cjs.map +1 -1
  478. package/build/cjs/utilities/formatters/avstand/formatAvstand.cjs.map +1 -1
  479. package/build/cjs/utilities/formatters/bytes/formatBytes.cjs.map +1 -1
  480. package/build/cjs/utilities/formatters/util/parseNumber.cjs.map +1 -1
  481. package/build/cjs/utilities/formatters/valuta/formatValuta.cjs +1 -1
  482. package/build/cjs/utilities/formatters/valuta/formatValuta.cjs.map +1 -1
  483. package/build/cjs/utilities/getThemeAndDensity.cjs +1 -1
  484. package/build/cjs/utilities/getThemeAndDensity.cjs.map +1 -1
  485. package/build/cjs/utilities/polymorphism/mergeRefs.cjs +1 -1
  486. package/build/cjs/utilities/polymorphism/mergeRefs.cjs.map +1 -1
  487. package/build/cjs/utilities/tabListener.cjs +1 -1
  488. package/build/cjs/utilities/tabListener.cjs.map +1 -1
  489. package/build/es/components/ScreenReaderOnly.js +1 -1
  490. package/build/es/components/ScreenReaderOnly.js.map +1 -1
  491. package/build/es/components/accordion/Accordion.js +1 -1
  492. package/build/es/components/accordion/Accordion.js.map +1 -1
  493. package/build/es/components/accordion/AccordionItem.js.map +1 -1
  494. package/build/es/components/accordion/stories/Accordion.stories.js +1 -1
  495. package/build/es/components/accordion/stories/Accordion.stories.js.map +1 -1
  496. package/build/es/components/accordion/stories/AccordionItem.stories.js +1 -1
  497. package/build/es/components/accordion/stories/AccordionItem.stories.js.map +1 -1
  498. package/build/es/components/autosuggest/Autosuggest.js.map +1 -1
  499. package/build/es/components/autosuggest/BaseAutosuggest.js.map +1 -1
  500. package/build/es/components/autosuggest/ControllerButton.js +1 -1
  501. package/build/es/components/autosuggest/ControllerButton.js.map +1 -1
  502. package/build/es/components/autosuggest/Menu.js +1 -1
  503. package/build/es/components/autosuggest/Menu.js.map +1 -1
  504. package/build/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  505. package/build/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  506. package/build/es/components/breadcrumb/documentation/BreadcrumbDocs.js +1 -1
  507. package/build/es/components/breadcrumb/documentation/BreadcrumbDocs.js.map +1 -1
  508. package/build/es/components/breadcrumb/stories/Breadcrumb.stories.js +1 -1
  509. package/build/es/components/breadcrumb/stories/Breadcrumb.stories.js.map +1 -1
  510. package/build/es/components/breadcrumb/stories/BreadcrumbItem.stories.js +1 -1
  511. package/build/es/components/breadcrumb/stories/BreadcrumbItem.stories.js.map +1 -1
  512. package/build/es/components/button/Button.js +1 -1
  513. package/build/es/components/button/Button.js.map +1 -1
  514. package/build/es/components/button/documentation/AnchorDocs.js +1 -1
  515. package/build/es/components/button/documentation/AnchorDocs.js.map +1 -1
  516. package/build/es/components/button/types.js.map +1 -1
  517. package/build/es/components/card/Card.js.map +1 -1
  518. package/build/es/components/card/CardImage.js.map +1 -1
  519. package/build/es/components/card/InfoCard.js +1 -1
  520. package/build/es/components/card/InfoCard.js.map +1 -1
  521. package/build/es/components/card/NavCard.js.map +1 -1
  522. package/build/es/components/card/TaskCard.js +1 -1
  523. package/build/es/components/card/TaskCard.js.map +1 -1
  524. package/build/es/components/card/development/examples/FakturainfoExample.d.ts +1 -1
  525. package/build/es/components/card/development/examples/InfoCardExample.d.ts +1 -1
  526. package/build/es/components/card/development/examples/NavCardExample.d.ts +1 -1
  527. package/build/es/components/card/development/examples/StatuskortExample.d.ts +1 -1
  528. package/build/es/components/card/development/examples/TaskCardExample.d.ts +1 -1
  529. package/build/es/components/card/development/examples/TopExample.d.ts +1 -1
  530. package/build/es/components/card/stories/Card.stories.js +1 -1
  531. package/build/es/components/card/stories/Card.stories.js.map +1 -1
  532. package/build/es/components/card/types.js.map +1 -1
  533. package/build/es/components/card/utils.js.map +1 -1
  534. package/build/es/components/checkbox/Checkbox.js.map +1 -1
  535. package/build/es/components/checkbox-panel/CheckboxPanel.js +1 -1
  536. package/build/es/components/checkbox-panel/CheckboxPanel.js.map +1 -1
  537. package/build/es/components/checkbox-panel/stories/CheckboxPanel.stories.js +1 -1
  538. package/build/es/components/checkbox-panel/stories/CheckboxPanel.stories.js.map +1 -1
  539. package/build/es/components/chip/Chip.js.map +1 -1
  540. package/build/es/components/combobox/Combobox.js +1 -1
  541. package/build/es/components/combobox/Combobox.js.map +1 -1
  542. package/build/es/components/combobox/stories/Combobox.stories.js +1 -1
  543. package/build/es/components/combobox/stories/Combobox.stories.js.map +1 -1
  544. package/build/es/components/cookie-consent/CookieConsent.js +1 -1
  545. package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
  546. package/build/es/components/cookie-consent/CookieConsentContext.js.map +1 -1
  547. package/build/es/components/cookie-consent/RequirementCheckbox.js +1 -1
  548. package/build/es/components/cookie-consent/RequirementCheckbox.js.map +1 -1
  549. package/build/es/components/cookie-consent/cookieConsentUtils.js +1 -1
  550. package/build/es/components/cookie-consent/cookieConsentUtils.js.map +1 -1
  551. package/build/es/components/cookie-consent/stories/CookieConsent.stories.js +1 -1
  552. package/build/es/components/cookie-consent/stories/CookieConsent.stories.js.map +1 -1
  553. package/build/es/components/countdown/Countdown.js +1 -1
  554. package/build/es/components/countdown/Countdown.js.map +1 -1
  555. package/build/es/components/countdown/stories/Countdown.stories.js.map +1 -1
  556. package/build/es/components/datepicker/DatePicker.js +1 -1
  557. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  558. package/build/es/components/datepicker/index.d.ts +1 -1
  559. package/build/es/components/datepicker/internal/Calendar.js +1 -1
  560. package/build/es/components/datepicker/internal/Calendar.js.map +1 -1
  561. package/build/es/components/datepicker/internal/calendarReducer.js.map +1 -1
  562. package/build/es/components/datepicker/internal/useCalendar.d.ts +1 -1
  563. package/build/es/components/datepicker/internal/useCalendar.js.map +1 -1
  564. package/build/es/components/datepicker/internal/utils.js +1 -1
  565. package/build/es/components/datepicker/internal/utils.js.map +1 -1
  566. package/build/es/components/datepicker/utils.js +1 -1
  567. package/build/es/components/datepicker/utils.js.map +1 -1
  568. package/build/es/components/datepicker/validation.js.map +1 -1
  569. package/build/es/components/description-list/DescriptionList.js +1 -1
  570. package/build/es/components/description-list/DescriptionList.js.map +1 -1
  571. package/build/es/components/description-list/stories/DescriptionList.stories.js +1 -1
  572. package/build/es/components/description-list/stories/DescriptionList.stories.js.map +1 -1
  573. package/build/es/components/expander/ExpandablePanel.js +1 -1
  574. package/build/es/components/expander/ExpandablePanel.js.map +1 -1
  575. package/build/es/components/expander/ExpandablePanelContent.js.map +1 -1
  576. package/build/es/components/expander/Expander.js +1 -1
  577. package/build/es/components/expander/Expander.js.map +1 -1
  578. package/build/es/components/expander/context.js.map +1 -1
  579. package/build/es/components/expander/deprecated/ExpandSection.js.map +1 -1
  580. package/build/es/components/expander/deprecated/Expander.js +1 -1
  581. package/build/es/components/expander/deprecated/Expander.js.map +1 -1
  582. package/build/es/components/expander/index.d.ts +1 -1
  583. package/build/es/components/expander/stories/Expander.stories.js +1 -1
  584. package/build/es/components/expander/stories/Expander.stories.js.map +1 -1
  585. package/build/es/components/expander/stories/ExpanderPanel.stories.js +1 -1
  586. package/build/es/components/expander/stories/ExpanderPanel.stories.js.map +1 -1
  587. package/build/es/components/feedback/Feedback.js.map +1 -1
  588. package/build/es/components/feedback/FeedbackSuccess.js +1 -1
  589. package/build/es/components/feedback/FeedbackSuccess.js.map +1 -1
  590. package/build/es/components/feedback/FeedbackValues.js.map +1 -1
  591. package/build/es/components/feedback/feedbackContext.js.map +1 -1
  592. package/build/es/components/feedback/followup/Followup.js +1 -1
  593. package/build/es/components/feedback/followup/Followup.js.map +1 -1
  594. package/build/es/components/feedback/followup/followupContext.js.map +1 -1
  595. package/build/es/components/feedback/followup/useFollowup.js.map +1 -1
  596. package/build/es/components/feedback/index.d.ts +1 -1
  597. package/build/es/components/feedback/main-question/MainQuestion.js +1 -1
  598. package/build/es/components/feedback/main-question/MainQuestion.js.map +1 -1
  599. package/build/es/components/feedback/main-question/mainQuestionContext.js.map +1 -1
  600. package/build/es/components/feedback/main-question/useMainQuestion.d.ts +2 -2
  601. package/build/es/components/feedback/main-question/useMainQuestion.js.map +1 -1
  602. package/build/es/components/feedback/presets.js.map +1 -1
  603. package/build/es/components/feedback/questions/AddonQuestion.js.map +1 -1
  604. package/build/es/components/feedback/questions/CheckboxQuestion.js +1 -1
  605. package/build/es/components/feedback/questions/CheckboxQuestion.js.map +1 -1
  606. package/build/es/components/feedback/questions/ContactQuestion.js +1 -1
  607. package/build/es/components/feedback/questions/ContactQuestion.js.map +1 -1
  608. package/build/es/components/feedback/questions/RadioQuestion.js +1 -1
  609. package/build/es/components/feedback/questions/RadioQuestion.js.map +1 -1
  610. package/build/es/components/feedback/questions/SmileyQuestion.js.map +1 -1
  611. package/build/es/components/feedback/questions/TextQuestion.js +1 -1
  612. package/build/es/components/feedback/questions/TextQuestion.js.map +1 -1
  613. package/build/es/components/feedback/questions/smileyUtils.js +1 -1
  614. package/build/es/components/feedback/questions/smileyUtils.js.map +1 -1
  615. package/build/es/components/feedback/stories/Feedback.stories.js +1 -1
  616. package/build/es/components/feedback/stories/Feedback.stories.js.map +1 -1
  617. package/build/es/components/feedback/utils.js.map +1 -1
  618. package/build/es/components/file-input/File.js +1 -1
  619. package/build/es/components/file-input/File.js.map +1 -1
  620. package/build/es/components/file-input/FileInput.js +1 -1
  621. package/build/es/components/file-input/FileInput.js.map +1 -1
  622. package/build/es/components/file-input/internal/Dropzone.js.map +1 -1
  623. package/build/es/components/file-input/internal/Input.js +1 -1
  624. package/build/es/components/file-input/internal/Input.js.map +1 -1
  625. package/build/es/components/file-input/internal/MaxSize.js +1 -1
  626. package/build/es/components/file-input/internal/MaxSize.js.map +1 -1
  627. package/build/es/components/file-input/internal/Thumbnail.js +1 -1
  628. package/build/es/components/file-input/internal/Thumbnail.js.map +1 -1
  629. package/build/es/components/file-input/internal/fileInputContext.js.map +1 -1
  630. package/build/es/components/file-input/internal/validateFile.js.map +1 -1
  631. package/build/es/components/file-input/stories/File.stories.js +1 -1
  632. package/build/es/components/file-input/stories/File.stories.js.map +1 -1
  633. package/build/es/components/file-input/stories/FileInput.stories.js +1 -1
  634. package/build/es/components/file-input/stories/FileInput.stories.js.map +1 -1
  635. package/build/es/components/file-input/utils.js +1 -1
  636. package/build/es/components/file-input/utils.js.map +1 -1
  637. package/build/es/components/flex/Flex.js.map +1 -1
  638. package/build/es/components/flex/stories/Flex.stories.js +1 -1
  639. package/build/es/components/flex/stories/Flex.stories.js.map +1 -1
  640. package/build/es/components/flex/types.js +1 -1
  641. package/build/es/components/icon/Icon.js.map +1 -1
  642. package/build/es/components/icon/icons/ArrowDownIcon.js +1 -1
  643. package/build/es/components/icon/icons/ArrowDownIcon.js.map +1 -1
  644. package/build/es/components/icon/icons/ArrowLeftIcon.js +1 -1
  645. package/build/es/components/icon/icons/ArrowLeftIcon.js.map +1 -1
  646. package/build/es/components/icon/icons/ArrowNorthEastIcon.js +1 -1
  647. package/build/es/components/icon/icons/ArrowNorthEastIcon.js.map +1 -1
  648. package/build/es/components/icon/icons/ArrowRightIcon.js +1 -1
  649. package/build/es/components/icon/icons/ArrowRightIcon.js.map +1 -1
  650. package/build/es/components/icon/icons/ArrowUpIcon.js +1 -1
  651. package/build/es/components/icon/icons/ArrowUpIcon.js.map +1 -1
  652. package/build/es/components/icon/icons/CalendarIcon.js +1 -1
  653. package/build/es/components/icon/icons/CalendarIcon.js.map +1 -1
  654. package/build/es/components/icon/icons/CheckIcon.js +1 -1
  655. package/build/es/components/icon/icons/CheckIcon.js.map +1 -1
  656. package/build/es/components/icon/icons/ChevronDownIcon.js +1 -1
  657. package/build/es/components/icon/icons/ChevronDownIcon.js.map +1 -1
  658. package/build/es/components/icon/icons/ChevronLeftIcon.js +1 -1
  659. package/build/es/components/icon/icons/ChevronLeftIcon.js.map +1 -1
  660. package/build/es/components/icon/icons/ChevronRightIcon.js +1 -1
  661. package/build/es/components/icon/icons/ChevronRightIcon.js.map +1 -1
  662. package/build/es/components/icon/icons/ChevronUpIcon.js +1 -1
  663. package/build/es/components/icon/icons/ChevronUpIcon.js.map +1 -1
  664. package/build/es/components/icon/icons/CloseIcon.js +1 -1
  665. package/build/es/components/icon/icons/CloseIcon.js.map +1 -1
  666. package/build/es/components/icon/icons/CopyIcon.js +1 -1
  667. package/build/es/components/icon/icons/CopyIcon.js.map +1 -1
  668. package/build/es/components/icon/icons/DotsIcon.js +1 -1
  669. package/build/es/components/icon/icons/DotsIcon.js.map +1 -1
  670. package/build/es/components/icon/icons/DragIcon.js +1 -1
  671. package/build/es/components/icon/icons/DragIcon.js.map +1 -1
  672. package/build/es/components/icon/icons/ErrorIcon.js +1 -1
  673. package/build/es/components/icon/icons/ErrorIcon.js.map +1 -1
  674. package/build/es/components/icon/icons/GreenCheckIcon.js +1 -1
  675. package/build/es/components/icon/icons/GreenCheckIcon.js.map +1 -1
  676. package/build/es/components/icon/icons/HamburgerIcon.js +1 -1
  677. package/build/es/components/icon/icons/HamburgerIcon.js.map +1 -1
  678. package/build/es/components/icon/icons/InfoIcon.js +1 -1
  679. package/build/es/components/icon/icons/InfoIcon.js.map +1 -1
  680. package/build/es/components/icon/icons/LinkIcon.js +1 -1
  681. package/build/es/components/icon/icons/LinkIcon.js.map +1 -1
  682. package/build/es/components/icon/icons/MinusIcon.js +1 -1
  683. package/build/es/components/icon/icons/MinusIcon.js.map +1 -1
  684. package/build/es/components/icon/icons/OpenInNewIcon.js +1 -1
  685. package/build/es/components/icon/icons/OpenInNewIcon.js.map +1 -1
  686. package/build/es/components/icon/icons/PenIcon.js +1 -1
  687. package/build/es/components/icon/icons/PenIcon.js.map +1 -1
  688. package/build/es/components/icon/icons/PlusIcon.js +1 -1
  689. package/build/es/components/icon/icons/PlusIcon.js.map +1 -1
  690. package/build/es/components/icon/icons/QuestionIcon.js +1 -1
  691. package/build/es/components/icon/icons/QuestionIcon.js.map +1 -1
  692. package/build/es/components/icon/icons/RedCrossIcon.js +1 -1
  693. package/build/es/components/icon/icons/RedCrossIcon.js.map +1 -1
  694. package/build/es/components/icon/icons/SearchIcon.js +1 -1
  695. package/build/es/components/icon/icons/SearchIcon.js.map +1 -1
  696. package/build/es/components/icon/icons/SuccessIcon.js +1 -1
  697. package/build/es/components/icon/icons/SuccessIcon.js.map +1 -1
  698. package/build/es/components/icon/icons/ThumbDownIcon.js +1 -1
  699. package/build/es/components/icon/icons/ThumbDownIcon.js.map +1 -1
  700. package/build/es/components/icon/icons/ThumbUpIcon.js +1 -1
  701. package/build/es/components/icon/icons/ThumbUpIcon.js.map +1 -1
  702. package/build/es/components/icon/icons/TrashCanIcon.js +1 -1
  703. package/build/es/components/icon/icons/TrashCanIcon.js.map +1 -1
  704. package/build/es/components/icon/icons/WarningIcon.js +1 -1
  705. package/build/es/components/icon/icons/WarningIcon.js.map +1 -1
  706. package/build/es/components/icon/icons/animated/ArrowHorizontalAnimated.js +1 -1
  707. package/build/es/components/icon/icons/animated/ArrowHorizontalAnimated.js.map +1 -1
  708. package/build/es/components/icon/icons/animated/ArrowVerticalAnimated.js +1 -1
  709. package/build/es/components/icon/icons/animated/ArrowVerticalAnimated.js.map +1 -1
  710. package/build/es/components/icon/icons/animated/PlusRemoveAnimated.js +1 -1
  711. package/build/es/components/icon/icons/animated/PlusRemoveAnimated.js.map +1 -1
  712. package/build/es/components/icon/stories/Icons.stories.js.map +1 -1
  713. package/build/es/components/icon-button/IconButton.js.map +1 -1
  714. package/build/es/components/icon-button/stories/IconButton.stories.js +1 -1
  715. package/build/es/components/icon-button/stories/IconButton.stories.js.map +1 -1
  716. package/build/es/components/image/Image.js +1 -1
  717. package/build/es/components/image/Image.js.map +1 -1
  718. package/build/es/components/image/stories/Image.stories.js +1 -1
  719. package/build/es/components/image/stories/Image.stories.js.map +1 -1
  720. package/build/es/components/image/useImageLoadingStatus.js.map +1 -1
  721. package/build/es/components/input-group/FieldGroup.js +1 -1
  722. package/build/es/components/input-group/FieldGroup.js.map +1 -1
  723. package/build/es/components/input-group/InputGroup.js.map +1 -1
  724. package/build/es/components/input-group/Label.js +1 -1
  725. package/build/es/components/input-group/Label.js.map +1 -1
  726. package/build/es/components/input-group/SupportLabel.js +1 -1
  727. package/build/es/components/input-group/SupportLabel.js.map +1 -1
  728. package/build/es/components/input-group/stories/FieldGroup.stories.js +1 -1
  729. package/build/es/components/input-group/stories/FieldGroup.stories.js.map +1 -1
  730. package/build/es/components/input-group/stories/InputGroup.stories.js +1 -1
  731. package/build/es/components/input-group/stories/InputGroup.stories.js.map +1 -1
  732. package/build/es/components/input-group/stories/Label.stories.js +1 -1
  733. package/build/es/components/input-group/stories/Label.stories.js.map +1 -1
  734. package/build/es/components/input-group/stories/SupportLabel.stories.js +1 -1
  735. package/build/es/components/input-group/stories/SupportLabel.stories.js.map +1 -1
  736. package/build/es/components/link/Link.js.map +1 -1
  737. package/build/es/components/link/stories/Link.stories.js +1 -1
  738. package/build/es/components/link/stories/Link.stories.js.map +1 -1
  739. package/build/es/components/link-list/LinkList.js.map +1 -1
  740. package/build/es/components/link-list/index.d.ts +1 -1
  741. package/build/es/components/link-list/stories/LinkList.stories.js +1 -1
  742. package/build/es/components/link-list/stories/LinkList.stories.js.map +1 -1
  743. package/build/es/components/list/List.js +1 -1
  744. package/build/es/components/list/List.js.map +1 -1
  745. package/build/es/components/list/ListItem.js +1 -1
  746. package/build/es/components/list/ListItem.js.map +1 -1
  747. package/build/es/components/list/stories/List.stories.js +1 -1
  748. package/build/es/components/list/stories/List.stories.js.map +1 -1
  749. package/build/es/components/loader/Loader.js +1 -1
  750. package/build/es/components/loader/Loader.js.map +1 -1
  751. package/build/es/components/loader/skeletons/SkeletonAnimation.js +1 -1
  752. package/build/es/components/loader/skeletons/SkeletonAnimation.js.map +1 -1
  753. package/build/es/components/loader/skeletons/SkeletonButton.js +1 -1
  754. package/build/es/components/loader/skeletons/SkeletonButton.js.map +1 -1
  755. package/build/es/components/loader/skeletons/SkeletonCheckboxGroup.js +1 -1
  756. package/build/es/components/loader/skeletons/SkeletonCheckboxGroup.js.map +1 -1
  757. package/build/es/components/loader/skeletons/SkeletonElement.js +1 -1
  758. package/build/es/components/loader/skeletons/SkeletonElement.js.map +1 -1
  759. package/build/es/components/loader/skeletons/SkeletonInput.js +1 -1
  760. package/build/es/components/loader/skeletons/SkeletonInput.js.map +1 -1
  761. package/build/es/components/loader/skeletons/SkeletonLabel.js +1 -1
  762. package/build/es/components/loader/skeletons/SkeletonLabel.js.map +1 -1
  763. package/build/es/components/loader/skeletons/SkeletonRadioButtonGroup.js +1 -1
  764. package/build/es/components/loader/skeletons/SkeletonRadioButtonGroup.js.map +1 -1
  765. package/build/es/components/loader/skeletons/SkeletonTable.js +1 -1
  766. package/build/es/components/loader/skeletons/SkeletonTable.js.map +1 -1
  767. package/build/es/components/loader/skeletons/SkeletonTextArea.js +1 -1
  768. package/build/es/components/loader/skeletons/SkeletonTextArea.js.map +1 -1
  769. package/build/es/components/loader/stories/Loader.stories.js +1 -1
  770. package/build/es/components/loader/stories/Loader.stories.js.map +1 -1
  771. package/build/es/components/loader/stories/Skeleton.stories.js +1 -1
  772. package/build/es/components/loader/stories/Skeleton.stories.js.map +1 -1
  773. package/build/es/components/loader/useDelayedRender.js +1 -1
  774. package/build/es/components/loader/useDelayedRender.js.map +1 -1
  775. package/build/es/components/logo/Logo.js +1 -1
  776. package/build/es/components/logo/Logo.js.map +1 -1
  777. package/build/es/components/logo/LogoStamp.js.map +1 -1
  778. package/build/es/components/logo/stories/Logo.stories.js +1 -1
  779. package/build/es/components/logo/stories/Logo.stories.js.map +1 -1
  780. package/build/es/components/logo/stories/LogoStamp.stories.js +1 -1
  781. package/build/es/components/logo/stories/LogoStamp.stories.js.map +1 -1
  782. package/build/es/components/logo/text-paths/ForsikringLevertAvFremtind.js +1 -1
  783. package/build/es/components/logo/text-paths/ForsikringLevertAvFremtind.js.map +1 -1
  784. package/build/es/components/logo/text-paths/FraSB1ogDNB.js +1 -1
  785. package/build/es/components/logo/text-paths/FraSB1ogDNB.js.map +1 -1
  786. package/build/es/components/logo/text-paths/InnovasjonFraFremtind.js +1 -1
  787. package/build/es/components/logo/text-paths/InnovasjonFraFremtind.js.map +1 -1
  788. package/build/es/components/logo/text-paths/TeknologiFraFremtind.js +1 -1
  789. package/build/es/components/logo/text-paths/TeknologiFraFremtind.js.map +1 -1
  790. package/build/es/components/logo/text-paths/VartEgetForsikringsselskap.js +1 -1
  791. package/build/es/components/logo/text-paths/VartEgetForsikringsselskap.js.map +1 -1
  792. package/build/es/components/logo/text-paths/VartForsikringsselskap.js +1 -1
  793. package/build/es/components/logo/text-paths/VartForsikringsselskap.js.map +1 -1
  794. package/build/es/components/menu/Menu.js.map +1 -1
  795. package/build/es/components/menu/MenuDivider.js +1 -1
  796. package/build/es/components/menu/MenuDivider.js.map +1 -1
  797. package/build/es/components/menu/MenuItem.js.map +1 -1
  798. package/build/es/components/menu/MenuItemCheckbox.js.map +1 -1
  799. package/build/es/components/menu/stories/Menu.stories.js +1 -1
  800. package/build/es/components/menu/stories/Menu.stories.js.map +1 -1
  801. package/build/es/components/menu/stories/MenuDivider.stories.js +1 -1
  802. package/build/es/components/menu/stories/MenuDivider.stories.js.map +1 -1
  803. package/build/es/components/menu/stories/MenuItem.stories.js +1 -1
  804. package/build/es/components/menu/stories/MenuItem.stories.js.map +1 -1
  805. package/build/es/components/menu/stories/MenuItemCheckbox.stories.js.map +1 -1
  806. package/build/es/components/menu/types.d.ts +2 -2
  807. package/build/es/components/menu/useMenuWideEvents.js +1 -1
  808. package/build/es/components/menu/useMenuWideEvents.js.map +1 -1
  809. package/build/es/components/message/DismissButton.js.map +1 -1
  810. package/build/es/components/message/FormErrorMessage.js.map +1 -1
  811. package/build/es/components/message/Message.js +1 -1
  812. package/build/es/components/message/Message.js.map +1 -1
  813. package/build/es/components/message/stories/ErrorMessage.stories.js.map +1 -1
  814. package/build/es/components/message/stories/FormErrorMessage.stories.js.map +1 -1
  815. package/build/es/components/message/stories/InfoMessage.stories.js.map +1 -1
  816. package/build/es/components/message/stories/SuccessMessage.stories.js.map +1 -1
  817. package/build/es/components/message/stories/WarningMessage.stories.js.map +1 -1
  818. package/build/es/components/modal/Modal.js +1 -1
  819. package/build/es/components/modal/Modal.js.map +1 -1
  820. package/build/es/components/modal/stories/CompleteModal.stories.js +1 -1
  821. package/build/es/components/modal/stories/CompleteModal.stories.js.map +1 -1
  822. package/build/es/components/modal/stories/ModalActions.stories.js +1 -1
  823. package/build/es/components/modal/stories/ModalActions.stories.js.map +1 -1
  824. package/build/es/components/modal/stories/ModalCloseButton.stories.js +1 -1
  825. package/build/es/components/modal/stories/ModalCloseButton.stories.js.map +1 -1
  826. package/build/es/components/modal/stories/ModalOverlay.stories.js.map +1 -1
  827. package/build/es/components/modal/useModal.js.map +1 -1
  828. package/build/es/components/nav-link/NavLink.js.map +1 -1
  829. package/build/es/components/nav-link/stories/NavLink.stories.js.map +1 -1
  830. package/build/es/components/pagination/PageButton.js.map +1 -1
  831. package/build/es/components/pagination/Pagination.js +1 -1
  832. package/build/es/components/pagination/Pagination.js.map +1 -1
  833. package/build/es/components/pagination/stories/Pagination.stories.js.map +1 -1
  834. package/build/es/components/popover/Popover.js.map +1 -1
  835. package/build/es/components/popover/stories/PopoverControlled.stories.js.map +1 -1
  836. package/build/es/components/popover/stories/PopoverUncontrolled.stories.js.map +1 -1
  837. package/build/es/components/popover/types.d.ts +1 -1
  838. package/build/es/components/progress-bar/ProgressBar.js +1 -1
  839. package/build/es/components/progress-bar/ProgressBar.js.map +1 -1
  840. package/build/es/components/progress-bar/stories/ProgressBar.stories.js +1 -1
  841. package/build/es/components/progress-bar/stories/ProgressBar.stories.js.map +1 -1
  842. package/build/es/components/radio-button/BaseRadioButton.js.map +1 -1
  843. package/build/es/components/radio-button/RadioButton.js.map +1 -1
  844. package/build/es/components/radio-button/RadioButtonGroup.js +1 -1
  845. package/build/es/components/radio-button/RadioButtonGroup.js.map +1 -1
  846. package/build/es/components/radio-button/radioGroupContext.js.map +1 -1
  847. package/build/es/components/radio-button/stories/BaseRadioButton.stories.js.map +1 -1
  848. package/build/es/components/radio-button/stories/RadioButton.stories.js.map +1 -1
  849. package/build/es/components/radio-button/stories/RadioButtonGroup.stories.js +1 -1
  850. package/build/es/components/radio-button/stories/RadioButtonGroup.stories.js.map +1 -1
  851. package/build/es/components/radio-panel/RadioPanel.js.map +1 -1
  852. package/build/es/components/radio-panel/RadioPanelGroup.js.map +1 -1
  853. package/build/es/components/radio-panel/stories/RadioPanel.stories.js +1 -1
  854. package/build/es/components/radio-panel/stories/RadioPanel.stories.js.map +1 -1
  855. package/build/es/components/select/NativeSelect.js.map +1 -1
  856. package/build/es/components/select/Select.js +1 -1
  857. package/build/es/components/select/Select.js.map +1 -1
  858. package/build/es/components/select/stories/select.stories.js +1 -1
  859. package/build/es/components/select/stories/select.stories.js.map +1 -1
  860. package/build/es/components/summary-table/SummaryTable.js +1 -1
  861. package/build/es/components/summary-table/SummaryTable.js.map +1 -1
  862. package/build/es/components/summary-table/SummaryTableRow.js +1 -1
  863. package/build/es/components/summary-table/SummaryTableRow.js.map +1 -1
  864. package/build/es/components/summary-table/mocks.js +1 -1
  865. package/build/es/components/summary-table/mocks.js.map +1 -1
  866. package/build/es/components/summary-table/stories/summary-table.stories.js +1 -1
  867. package/build/es/components/summary-table/stories/summary-table.stories.js.map +1 -1
  868. package/build/es/components/system-message/SystemMessage.js +1 -1
  869. package/build/es/components/system-message/SystemMessage.js.map +1 -1
  870. package/build/es/components/system-message/common/DismissButton.js.map +1 -1
  871. package/build/es/components/system-message/common/MessageIcon.js +1 -1
  872. package/build/es/components/system-message/common/MessageIcon.js.map +1 -1
  873. package/build/es/components/table/DataTable.js.map +1 -1
  874. package/build/es/components/table/ExpandableTableRow.js +1 -1
  875. package/build/es/components/table/ExpandableTableRow.js.map +1 -1
  876. package/build/es/components/table/ExpandableTableRowController.js.map +1 -1
  877. package/build/es/components/table/Table.js.map +1 -1
  878. package/build/es/components/table/TableBody.js.map +1 -1
  879. package/build/es/components/table/TableCaption.js.map +1 -1
  880. package/build/es/components/table/TableCell.js.map +1 -1
  881. package/build/es/components/table/TableColumn.js.map +1 -1
  882. package/build/es/components/table/TableColumnGroup.js.map +1 -1
  883. package/build/es/components/table/TableFooter.js.map +1 -1
  884. package/build/es/components/table/TableHead.js.map +1 -1
  885. package/build/es/components/table/TableHeader.js.map +1 -1
  886. package/build/es/components/table/TablePagination.js +1 -1
  887. package/build/es/components/table/TablePagination.js.map +1 -1
  888. package/build/es/components/table/TableRow.js.map +1 -1
  889. package/build/es/components/table/stories/table.stories.js +1 -1
  890. package/build/es/components/table/stories/table.stories.js.map +1 -1
  891. package/build/es/components/table/tableContext.js.map +1 -1
  892. package/build/es/components/table/tableSectionContext.js.map +1 -1
  893. package/build/es/components/table/types.js +1 -1
  894. package/build/es/components/table/utils.js.map +1 -1
  895. package/build/es/components/tabs/NavTab.js.map +1 -1
  896. package/build/es/components/tabs/NavTabs.js.map +1 -1
  897. package/build/es/components/tabs/Tab.js.map +1 -1
  898. package/build/es/components/tabs/TabList.js.map +1 -1
  899. package/build/es/components/tabs/TabPanel.js +1 -1
  900. package/build/es/components/tabs/TabPanel.js.map +1 -1
  901. package/build/es/components/tabs/Tabs.js.map +1 -1
  902. package/build/es/components/tabs/stories/NavTabs.stories.js +1 -1
  903. package/build/es/components/tabs/stories/NavTabs.stories.js.map +1 -1
  904. package/build/es/components/tabs/stories/Tabs.stories.js +1 -1
  905. package/build/es/components/tabs/stories/Tabs.stories.js.map +1 -1
  906. package/build/es/components/tabs/tabsContext.js.map +1 -1
  907. package/build/es/components/tabs/types.d.ts +1 -1
  908. package/build/es/components/tag/Tag.js +1 -1
  909. package/build/es/components/tag/Tag.js.map +1 -1
  910. package/build/es/components/tag/index.d.ts +1 -1
  911. package/build/es/components/tag/stories/Tag.stories.js +1 -1
  912. package/build/es/components/tag/stories/Tag.stories.js.map +1 -1
  913. package/build/es/components/text-area/BaseTextArea.js.map +1 -1
  914. package/build/es/components/text-area/TextArea.js.map +1 -1
  915. package/build/es/components/text-area/stories/TextArea.stories.js.map +1 -1
  916. package/build/es/components/text-input/BaseTextInput.js.map +1 -1
  917. package/build/es/components/text-input/TextInput.js.map +1 -1
  918. package/build/es/components/toast/Toast.js +1 -1
  919. package/build/es/components/toast/Toast.js.map +1 -1
  920. package/build/es/components/toast/ToastRegion.js +1 -1
  921. package/build/es/components/toast/ToastRegion.js.map +1 -1
  922. package/build/es/components/toast/index.d.ts +1 -1
  923. package/build/es/components/toast/stories/Toast.stories.js +1 -1
  924. package/build/es/components/toast/stories/Toast.stories.js.map +1 -1
  925. package/build/es/components/toast/toastContext.js.map +1 -1
  926. package/build/es/components/toggle-switch/ToggleSlider.js.map +1 -1
  927. package/build/es/components/toggle-switch/ToggleSwitch.js.map +1 -1
  928. package/build/es/components/toggle-switch/stories/ToggleSwitch.stories.js.map +1 -1
  929. package/build/es/components/toggle-switch/usePillStyles.js +1 -1
  930. package/build/es/components/toggle-switch/usePillStyles.js.map +1 -1
  931. package/build/es/components/tooltip/PopupTip.js.map +1 -1
  932. package/build/es/components/tooltip/Tooltip.js +1 -1
  933. package/build/es/components/tooltip/Tooltip.js.map +1 -1
  934. package/build/es/components/tooltip/TooltipContent.js.map +1 -1
  935. package/build/es/components/tooltip/stories/Tooltip.stories.js +1 -1
  936. package/build/es/components/tooltip/stories/Tooltip.stories.js.map +1 -1
  937. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js +1 -1
  938. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js.map +1 -1
  939. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js +1 -1
  940. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js.map +1 -1
  941. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js +1 -1
  942. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js.map +1 -1
  943. package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.js.map +1 -1
  944. package/build/es/hooks/useClickOutside/useClickOutside.js +1 -1
  945. package/build/es/hooks/useClickOutside/useClickOutside.js.map +1 -1
  946. package/build/es/hooks/useElementDimensions/useElementDimensions.js.map +1 -1
  947. package/build/es/hooks/useFocusOutside/useFocusOutside.js +1 -1
  948. package/build/es/hooks/useFocusOutside/useFocusOutside.js.map +1 -1
  949. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +1 -1
  950. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js +1 -1
  951. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  952. package/build/es/hooks/useKeyListener/useKeyListener.js +1 -1
  953. package/build/es/hooks/useKeyListener/useKeyListener.js.map +1 -1
  954. package/build/es/hooks/useListNavigation/useListNavigation.js +1 -1
  955. package/build/es/hooks/useListNavigation/useListNavigation.js.map +1 -1
  956. package/build/es/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
  957. package/build/es/hooks/useProgressiveImg/useProgressiveImg.js.map +1 -1
  958. package/build/es/hooks/useScreen/index.d.ts +1 -1
  959. package/build/es/hooks/useScreen/useScreen.js +1 -1
  960. package/build/es/hooks/useScreen/useScreen.js.map +1 -1
  961. package/build/es/hooks/useScrollIntoView/useScrollIntoView.js.map +1 -1
  962. package/build/es/hooks/useSwipeGesture/useSwipeGesture.d.ts +1 -1
  963. package/build/es/hooks/useSwipeGesture/useSwipeGesture.js.map +1 -1
  964. package/build/es/shared/input-panel/BasePanel.js.map +1 -1
  965. package/build/es/utilities/formatters/avstand/formatAvstand.js.map +1 -1
  966. package/build/es/utilities/formatters/bytes/formatBytes.js.map +1 -1
  967. package/build/es/utilities/formatters/util/parseNumber.js.map +1 -1
  968. package/build/es/utilities/formatters/valuta/formatValuta.js +1 -1
  969. package/build/es/utilities/formatters/valuta/formatValuta.js.map +1 -1
  970. package/build/es/utilities/getThemeAndDensity.js +1 -1
  971. package/build/es/utilities/getThemeAndDensity.js.map +1 -1
  972. package/build/es/utilities/polymorphism/mergeRefs.js +1 -1
  973. package/build/es/utilities/polymorphism/mergeRefs.js.map +1 -1
  974. package/build/es/utilities/tabListener.js +1 -1
  975. package/build/es/utilities/tabListener.js.map +1 -1
  976. package/build/style.css +1 -1
  977. package/package.json +2 -2
  978. package/styles/components/button/button.css +3 -31
  979. package/styles/components/button/button.min.css +1 -1
  980. package/styles/components/button/button.scss +6 -67
  981. package/styles/components/checkbox/checkbox.css +4 -4
  982. package/styles/components/checkbox/checkbox.min.css +1 -1
  983. package/styles/components/checkbox-panel/checkbox-panel.css +2 -2
  984. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  985. package/styles/components/countdown/countdown.css +2 -2
  986. package/styles/components/countdown/countdown.min.css +1 -1
  987. package/styles/components/feedback/feedback.css +2 -2
  988. package/styles/components/feedback/feedback.min.css +1 -1
  989. package/styles/components/input-group/input-group.css +2 -2
  990. package/styles/components/input-group/input-group.min.css +1 -1
  991. package/styles/components/loader/loader.css +6 -6
  992. package/styles/components/loader/loader.min.css +1 -1
  993. package/styles/components/loader/skeleton-loader.css +5 -5
  994. package/styles/components/loader/skeleton-loader.min.css +1 -1
  995. package/styles/components/message/message.css +2 -2
  996. package/styles/components/message/message.min.css +1 -1
  997. package/styles/components/progress-bar/progress-bar.css +1 -1
  998. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  999. package/styles/components/radio-button/radio-button.css +2 -2
  1000. package/styles/components/radio-button/radio-button.min.css +1 -1
  1001. package/styles/components/radio-panel/radio-panel.css +2 -2
  1002. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  1003. package/styles/components/system-message/system-message.css +2 -2
  1004. package/styles/components/system-message/system-message.min.css +1 -1
  1005. package/styles/components/toast/toast.css +4 -4
  1006. package/styles/components/toast/toast.min.css +1 -1
  1007. package/styles/styles.css +39 -67
  1008. package/styles/styles.min.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sources":["../../../../src/components/datepicker/DatePicker.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { startOfDay } from \"date-fns\";\nimport React, {\n ChangeEvent,\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n forwardRef,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { CalendarIcon } from \"../icon/icons/CalendarIcon.js\";\nimport { IconButton } from \"../icon-button/IconButton.js\";\nimport { InputGroup } from \"../input-group/InputGroup.js\";\nimport Popover from \"../popover/Popover.js\";\nimport { BaseTextInput } from \"../text-input/BaseTextInput.js\";\nimport { Calendar } from \"./internal/Calendar.js\";\nimport { DateInfo, getInitialDate } from \"./internal/utils.js\";\nimport { DatePickerProps, DateValidationError } from \"./types.js\";\nimport { formatInput, parseDateString } from \"./utils.js\";\nimport { isWithinLowerBound, isWithinUpperBound } from \"./validation.js\";\n\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(\n (props, forwardedInputRef) => {\n const {\n \"data-testautoid\": testAutoId,\n id,\n className = \"\",\n label = \"Velg dato\",\n labelProps,\n defaultValue,\n defaultShow = false,\n value,\n disableBeforeDate: disableBefore,\n disableAfterDate: disableAfter,\n yearsToShow,\n name,\n helpLabel,\n errorLabel,\n invalid,\n density,\n days,\n months,\n monthLabel,\n yearLabel,\n placeholder = \"dd.mm.åååå\",\n width = \"11.25rem\",\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n action,\n showCalendarLabel = \"Åpne kalender\",\n hideCalendarLabel = \"Lukk kalender\",\n supportLabelProps,\n tooltip,\n textInputProps,\n ...rest\n } = props;\n\n if (process.env.NODE_ENV !== \"production\" && value && defaultValue) {\n console.warn(\n \"DatePicker må enten være controlled eller uncontrolled. Hvis du bruker defaultValue og value sammen vil defaultValue bli ignorert.\",\n );\n }\n /// Input state\n\n const disableBeforeDate = parseDateString(disableBefore);\n const minDate = disableBeforeDate\n ? startOfDay(disableBeforeDate)\n : undefined;\n const disableAfterDate = parseDateString(disableAfter);\n const maxDate = disableAfterDate\n ? startOfDay(disableAfterDate)\n : undefined;\n\n const [date, setDate] = useState(\n getInitialDate(value, defaultValue, minDate, maxDate),\n );\n const [error, setError] = useState<DateValidationError | null>(null);\n\n /// Calendar state\n\n const [showCalendar, setShowCalendar] = useState(defaultShow);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n const datepickerRef = useRef<HTMLDivElement>(null);\n\n /// Input events\n\n const iconButtonRef = useRef<HTMLButtonElement | null>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n // Hjelper for å gjøre det enklere å både forwarde refen men også bruke den selv internt\n const unifiedInputRef = useCallback(\n (instance: HTMLInputElement | null) => {\n inputRef.current = instance;\n if (forwardedInputRef) {\n if (typeof forwardedInputRef === \"function\") {\n forwardedInputRef(instance);\n } else {\n forwardedInputRef.current = instance;\n }\n }\n },\n [inputRef, forwardedInputRef],\n );\n\n const handleFocus = useCallback(\n (e: FocusEvent<HTMLInputElement>) => {\n if (!onFocus || !datepickerRef.current) {\n return;\n }\n\n const nextFocusIsInside = datepickerRef.current.contains(\n e.relatedTarget as Node,\n );\n if (!nextFocusIsInside) {\n onFocus(e, date, { error, value: e.target.value });\n }\n },\n [onFocus, date, error],\n );\n\n const handleBlur = useCallback(\n (e: FocusEvent<HTMLInputElement>) => {\n if (onBlur) {\n onBlur(e, date, { error, value: e.target.value });\n }\n },\n [onBlur, date, error],\n );\n\n const handleKeyDownAction = useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"Escape\") {\n setShowCalendar(false);\n e.preventDefault();\n e.stopPropagation();\n }\n\n if (action?.onKeyDown) {\n action.onKeyDown(e);\n }\n },\n [setShowCalendar, action],\n );\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n let nextDate: Date | null = null;\n let nextError: DateValidationError | null = null;\n\n if (e.target.value) {\n const val = parseDateString(e.target.value);\n if (!val) {\n nextError = \"WRONG_FORMAT\";\n } else if (minDate && !isWithinLowerBound(val, minDate)) {\n nextError = \"OUTSIDE_LOWER_BOUND\";\n } else if (maxDate && !isWithinUpperBound(val, maxDate)) {\n nextError = \"OUTSIDE_UPPER_BOUND\";\n } else {\n setShowCalendar(false);\n }\n nextDate = val || null;\n }\n\n setError(nextError);\n setDate(nextDate);\n\n if (onChange) {\n onChange(e, nextDate, {\n error: nextError,\n value: e.target.value,\n });\n }\n },\n [onChange, setError, setDate, setShowCalendar, minDate, maxDate],\n );\n\n /// Calendar events\n\n const clickCalendar = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n flushSync(() => {\n setShowCalendar(!showCalendar);\n });\n\n const calendarEl = calendarRef.current;\n const button =\n calendarEl &&\n (calendarEl.querySelector(\n '[aria-pressed=\"true\"]',\n ) as HTMLButtonElement);\n // Make sure the popover-modal is correctly positioned before focusing a button\n // so we avoid accidentally scrolling to the top of the page\n window.requestAnimationFrame(() => button && button.focus());\n\n if (action?.onClick) {\n action.onClick(e);\n }\n },\n [setShowCalendar, showCalendar, action, calendarRef],\n );\n\n const handleClickCalendarDay = useCallback(\n ({ date }: DateInfo) => {\n setShowCalendar(false);\n setDate(date);\n\n if (inputRef.current) {\n const node = inputRef.current;\n\n node.value = formatInput(date);\n\n // Simulér et change-event så APIet blir så likt som mulig en endring av inputfeltet\n const event = document.createEvent(\"HTMLEvents\");\n event.initEvent(\"input\", true, false);\n node.dispatchEvent(event);\n\n node.focus();\n\n if (onChange) {\n // Det er ikke helt sant at dette er et React.SyntheticEvent, men it's fine – probably?\n // Den har tingene man kan forvente, men hvis du gjør serdeles fancy ting med events\n // så kan det hende du må utvide denne for å dekke behovet ditt.\n onChange(\n event as unknown as ChangeEvent<HTMLInputElement>,\n date,\n {\n error: null,\n value: node.value,\n },\n );\n }\n }\n },\n [setShowCalendar, setDate, onChange],\n );\n\n const handleTabOutsideCalendar = useCallback(\n (e: KeyboardEvent) => {\n e.preventDefault();\n setShowCalendar(false);\n iconButtonRef.current && iconButtonRef.current.focus();\n },\n [setShowCalendar],\n );\n\n return (\n <InputGroup\n id={id}\n className={clsx(\"jkl-datepicker\", className)}\n {...rest}\n ref={datepickerRef}\n label={label}\n labelProps={labelProps}\n density={density}\n helpLabel={helpLabel}\n errorLabel={errorLabel}\n supportLabelProps={supportLabelProps}\n tooltip={tooltip}\n render={(inputProps) => (\n <BaseTextInput\n data-focused={showCalendar ? \"true\" : undefined}\n ref={unifiedInputRef}\n data-testid=\"jkl-datepicker__input\"\n data-testautoid={testAutoId}\n className=\"jkl-datepicker__input\"\n name={name}\n defaultValue={defaultValue}\n density={density}\n value={value}\n type=\"text\"\n placeholder={placeholder}\n width={width}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n actionButton={\n <Popover\n positionReference={inputRef}\n open={showCalendar}\n onOpenChange={() =>\n setShowCalendar(!showCalendar)\n }\n offset={8}\n >\n <Popover.Trigger\n {...action}\n data-testid=\"jkl-datepicker__trigger\"\n className=\"jkl-text-input-action-button\"\n title={\n showCalendar\n ? hideCalendarLabel\n : showCalendarLabel\n }\n tabIndex={0}\n onClick={clickCalendar}\n onKeyDown={handleKeyDownAction}\n asChild\n >\n <IconButton>\n <CalendarIcon />\n </IconButton>\n </Popover.Trigger>\n <Popover.Content initialFocus={-1} padding={24}>\n <Calendar\n ref={calendarRef}\n density={density}\n date={date}\n minDate={minDate}\n maxDate={maxDate}\n days={days}\n months={months}\n monthLabel={monthLabel}\n yearLabel={yearLabel}\n yearsToShow={yearsToShow}\n onDateSelected={handleClickCalendarDay}\n onTabOutside={handleTabOutsideCalendar}\n />\n </Popover.Content>\n </Popover>\n }\n {...textInputProps}\n {...inputProps}\n aria-invalid={invalid || !!errorLabel}\n />\n )}\n />\n );\n },\n);\n\nDatePicker.displayName = \"DatePicker\";\n"],"names":["DatePicker","forwardRef","props","forwardedInputRef","testAutoId","id","className","label","labelProps","defaultValue","defaultShow","value","disableBeforeDate","disableBefore","disableAfterDate","disableAfter","yearsToShow","name","helpLabel","errorLabel","invalid","density","days","months","monthLabel","yearLabel","placeholder","width","onChange","onBlur","onFocus","onKeyDown","action","showCalendarLabel","hideCalendarLabel","supportLabelProps","tooltip","textInputProps","rest","process","env","NODE_ENV","console","warn","parseDateString","minDate","startOfDay","maxDate","date","setDate","useState","getInitialDate","error","setError","showCalendar","setShowCalendar","calendarRef","useRef","datepickerRef","iconButtonRef","inputRef","unifiedInputRef","useCallback","instance","current","handleFocus","e","contains","relatedTarget","target","handleBlur","handleKeyDownAction","key","preventDefault","stopPropagation","handleChange","nextDate","nextError","val","isWithinLowerBound","isWithinUpperBound","clickCalendar","flushSync","calendarEl","button","querySelector","window","requestAnimationFrame","focus","onClick","handleClickCalendarDay","node","formatInput","event","document","createEvent","initEvent","dispatchEvent","handleTabOutsideCalendar","jsx","InputGroup","clsx","ref","render","inputProps","BaseTextInput","type","actionButton","jsxs","Popover","positionReference","open","onOpenChange","offset","children","Trigger","title","tabIndex","asChild","IconButton","CalendarIcon","Content","initialFocus","padding","Calendar","onDateSelected","onTabOutside","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.js","sources":["../../../../src/components/datepicker/DatePicker.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { startOfDay } from \"date-fns\";\nimport React, {\n type ChangeEvent,\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n forwardRef,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { IconButton } from \"../icon-button/IconButton.js\";\nimport { CalendarIcon } from \"../icon/icons/CalendarIcon.js\";\nimport { InputGroup } from \"../input-group/InputGroup.js\";\nimport Popover from \"../popover/Popover.js\";\nimport { BaseTextInput } from \"../text-input/BaseTextInput.js\";\nimport { Calendar } from \"./internal/Calendar.js\";\nimport { type DateInfo, getInitialDate } from \"./internal/utils.js\";\nimport type { DatePickerProps, DateValidationError } from \"./types.js\";\nimport { formatInput, parseDateString } from \"./utils.js\";\nimport { isWithinLowerBound, isWithinUpperBound } from \"./validation.js\";\n\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(\n (props, forwardedInputRef) => {\n const {\n \"data-testautoid\": testAutoId,\n id,\n className = \"\",\n label = \"Velg dato\",\n labelProps,\n defaultValue,\n defaultShow = false,\n value,\n disableBeforeDate: disableBefore,\n disableAfterDate: disableAfter,\n yearsToShow,\n name,\n helpLabel,\n errorLabel,\n invalid,\n density,\n days,\n months,\n monthLabel,\n yearLabel,\n placeholder = \"dd.mm.åååå\",\n width = \"11.25rem\",\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n action,\n showCalendarLabel = \"Åpne kalender\",\n hideCalendarLabel = \"Lukk kalender\",\n supportLabelProps,\n tooltip,\n textInputProps,\n ...rest\n } = props;\n\n if (process.env.NODE_ENV !== \"production\" && value && defaultValue) {\n console.warn(\n \"DatePicker må enten være controlled eller uncontrolled. Hvis du bruker defaultValue og value sammen vil defaultValue bli ignorert.\",\n );\n }\n /// Input state\n\n const disableBeforeDate = parseDateString(disableBefore);\n const minDate = disableBeforeDate\n ? startOfDay(disableBeforeDate)\n : undefined;\n const disableAfterDate = parseDateString(disableAfter);\n const maxDate = disableAfterDate\n ? startOfDay(disableAfterDate)\n : undefined;\n\n const [date, setDate] = useState(\n getInitialDate(value, defaultValue, minDate, maxDate),\n );\n const [error, setError] = useState<DateValidationError | null>(null);\n\n /// Calendar state\n\n const [showCalendar, setShowCalendar] = useState(defaultShow);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n const datepickerRef = useRef<HTMLDivElement>(null);\n\n /// Input events\n\n const iconButtonRef = useRef<HTMLButtonElement | null>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n // Hjelper for å gjøre det enklere å både forwarde refen men også bruke den selv internt\n const unifiedInputRef = useCallback(\n (instance: HTMLInputElement | null) => {\n inputRef.current = instance;\n if (forwardedInputRef) {\n if (typeof forwardedInputRef === \"function\") {\n forwardedInputRef(instance);\n } else {\n forwardedInputRef.current = instance;\n }\n }\n },\n [forwardedInputRef],\n );\n\n const handleFocus = useCallback(\n (e: FocusEvent<HTMLInputElement>) => {\n if (!onFocus || !datepickerRef.current) {\n return;\n }\n\n const nextFocusIsInside = datepickerRef.current.contains(\n e.relatedTarget as Node,\n );\n if (!nextFocusIsInside) {\n onFocus(e, date, { error, value: e.target.value });\n }\n },\n [onFocus, date, error],\n );\n\n const handleBlur = useCallback(\n (e: FocusEvent<HTMLInputElement>) => {\n if (onBlur) {\n onBlur(e, date, { error, value: e.target.value });\n }\n },\n [onBlur, date, error],\n );\n\n const handleKeyDownAction = useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"Escape\") {\n setShowCalendar(false);\n e.preventDefault();\n e.stopPropagation();\n }\n\n if (action?.onKeyDown) {\n action.onKeyDown(e);\n }\n },\n [action],\n );\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n let nextDate: Date | null = null;\n let nextError: DateValidationError | null = null;\n\n if (e.target.value) {\n const val = parseDateString(e.target.value);\n if (!val) {\n nextError = \"WRONG_FORMAT\";\n } else if (minDate && !isWithinLowerBound(val, minDate)) {\n nextError = \"OUTSIDE_LOWER_BOUND\";\n } else if (maxDate && !isWithinUpperBound(val, maxDate)) {\n nextError = \"OUTSIDE_UPPER_BOUND\";\n } else {\n setShowCalendar(false);\n }\n nextDate = val || null;\n }\n\n setError(nextError);\n setDate(nextDate);\n\n if (onChange) {\n onChange(e, nextDate, {\n error: nextError,\n value: e.target.value,\n });\n }\n },\n [onChange, minDate, maxDate],\n );\n\n /// Calendar events\n\n const clickCalendar = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n flushSync(() => {\n setShowCalendar(!showCalendar);\n });\n\n const calendarEl = calendarRef.current;\n const button =\n calendarEl &&\n (calendarEl.querySelector(\n '[aria-pressed=\"true\"]',\n ) as HTMLButtonElement);\n // Make sure the popover-modal is correctly positioned before focusing a button\n // so we avoid accidentally scrolling to the top of the page\n window.requestAnimationFrame(() => button?.focus());\n\n if (action?.onClick) {\n action.onClick(e);\n }\n },\n [showCalendar, action],\n );\n\n const handleClickCalendarDay = useCallback(\n ({ date }: DateInfo) => {\n setShowCalendar(false);\n setDate(date);\n\n if (inputRef.current) {\n const node = inputRef.current;\n\n node.value = formatInput(date);\n\n // Simulér et change-event så APIet blir så likt som mulig en endring av inputfeltet\n const event = document.createEvent(\"HTMLEvents\");\n event.initEvent(\"input\", true, false);\n node.dispatchEvent(event);\n\n node.focus();\n\n if (onChange) {\n // Det er ikke helt sant at dette er et React.SyntheticEvent, men it's fine – probably?\n // Den har tingene man kan forvente, men hvis du gjør serdeles fancy ting med events\n // så kan det hende du må utvide denne for å dekke behovet ditt.\n onChange(\n event as unknown as ChangeEvent<HTMLInputElement>,\n date,\n {\n error: null,\n value: node.value,\n },\n );\n }\n }\n },\n [onChange],\n );\n\n const handleTabOutsideCalendar = useCallback((e: KeyboardEvent) => {\n e.preventDefault();\n setShowCalendar(false);\n iconButtonRef.current?.focus();\n }, []);\n\n return (\n <InputGroup\n id={id}\n className={clsx(\"jkl-datepicker\", className)}\n {...rest}\n ref={datepickerRef}\n label={label}\n labelProps={labelProps}\n density={density}\n helpLabel={helpLabel}\n errorLabel={errorLabel}\n supportLabelProps={supportLabelProps}\n tooltip={tooltip}\n render={(inputProps) => (\n <BaseTextInput\n data-focused={showCalendar ? \"true\" : undefined}\n ref={unifiedInputRef}\n data-testid=\"jkl-datepicker__input\"\n data-testautoid={testAutoId}\n className=\"jkl-datepicker__input\"\n name={name}\n defaultValue={defaultValue}\n density={density}\n value={value}\n type=\"text\"\n placeholder={placeholder}\n width={width}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n actionButton={\n <Popover\n positionReference={inputRef}\n open={showCalendar}\n onOpenChange={() =>\n setShowCalendar(!showCalendar)\n }\n offset={8}\n >\n <Popover.Trigger\n {...action}\n data-testid=\"jkl-datepicker__trigger\"\n className=\"jkl-text-input-action-button\"\n title={\n showCalendar\n ? hideCalendarLabel\n : showCalendarLabel\n }\n tabIndex={0}\n onClick={clickCalendar}\n onKeyDown={handleKeyDownAction}\n asChild\n >\n <IconButton>\n <CalendarIcon />\n </IconButton>\n </Popover.Trigger>\n <Popover.Content initialFocus={-1} padding={24}>\n <Calendar\n ref={calendarRef}\n density={density}\n date={date}\n minDate={minDate}\n maxDate={maxDate}\n days={days}\n months={months}\n monthLabel={monthLabel}\n yearLabel={yearLabel}\n yearsToShow={yearsToShow}\n onDateSelected={handleClickCalendarDay}\n onTabOutside={handleTabOutsideCalendar}\n />\n </Popover.Content>\n </Popover>\n }\n {...textInputProps}\n {...inputProps}\n aria-invalid={invalid || !!errorLabel}\n />\n )}\n />\n );\n },\n);\n\nDatePicker.displayName = \"DatePicker\";\n"],"names":["DatePicker","forwardRef","props","forwardedInputRef","testAutoId","id","className","label","labelProps","defaultValue","defaultShow","value","disableBeforeDate","disableBefore","disableAfterDate","disableAfter","yearsToShow","name","helpLabel","errorLabel","invalid","density","days","months","monthLabel","yearLabel","placeholder","width","onChange","onBlur","onFocus","onKeyDown","action","showCalendarLabel","hideCalendarLabel","supportLabelProps","tooltip","textInputProps","rest","process","env","NODE_ENV","console","warn","parseDateString","minDate","startOfDay","maxDate","date","setDate","useState","getInitialDate","error","setError","showCalendar","setShowCalendar","calendarRef","useRef","datepickerRef","iconButtonRef","inputRef","unifiedInputRef","useCallback","instance","current","handleFocus","e","contains","relatedTarget","target","handleBlur","handleKeyDownAction","key","preventDefault","stopPropagation","handleChange","nextDate","nextError","val","isWithinLowerBound","isWithinUpperBound","clickCalendar","flushSync","calendarEl","button","querySelector","window","requestAnimationFrame","focus","onClick","handleClickCalendarDay","node","formatInput","event","document","createEvent","initEvent","dispatchEvent","handleTabOutsideCalendar","_a","jsx","InputGroup","clsx","ref","render","inputProps","BaseTextInput","type","actionButton","jsxs","Popover","positionReference","open","onOpenChange","offset","children","Trigger","title","tabIndex","asChild","IconButton","CalendarIcon","Content","initialFocus","padding","Calendar","onDateSelected","onTabOutside","displayName"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export { DatePicker } from './DatePicker.js';
2
2
  export { isCorrectFormat, isWithinLowerBound, isWithinUpperBound, } from './validation.js';
3
3
  export { formatInput, parseDateString, isBlurTargetOutside } from './utils.js';
4
- export { type DatePickerProps, type YearsToShow, type DatePickerChangeEventHandler, type DatePickerFocusEventHandler, type DatePickerBlurEventHandler, type DatePickerKeyDownEventHandler, type DatePickerAction, type ComparisonOptions, type DatePickerMetadata, } from './types.js';
4
+ export type { DatePickerProps, YearsToShow, DatePickerChangeEventHandler, DatePickerFocusEventHandler, DatePickerBlurEventHandler, DatePickerKeyDownEventHandler, DatePickerAction, ComparisonOptions, DatePickerMetadata, } from './types.js';
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{forwardRef as a,useReducer as n,useEffect as r,useCallback as l,useRef as o}from"react";import{flushSync as s}from"react-dom";import{useId as d}from"../../../hooks/useId/useId.js";import{Button as c}from"../../button/Button.js";import{ArrowLeftIcon as i}from"../../icon/icons/ArrowLeftIcon.js";import{ArrowRightIcon as u}from"../../icon/icons/ArrowRightIcon.js";import{ChevronDownIcon as h}from"../../icon/icons/ChevronDownIcon.js";import{calendarReducer as g,calendarInitializer as m}from"./calendarReducer.js";import{useCalendar as f}from"./useCalendar.js";import{getInitialDateShown as p,isBackDisabled as b,subtractMonth as v,isForwardDisabled as D,addMonth as j,getYearSelectOptions as k,getMonthSelectOptions as w,DEFAULT_YEARS_TO_SHOW as y}from"./utils.js";const M=["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],S=["man","tir","ons","tor","fre","lør","søn"],_=a(((a,_)=>{const{date:F,defaultSelected:A,density:N,minDate:E,maxDate:Y,days:x=S,months:O=M,monthLabel:C="Velg måned",yearLabel:I="Velg år",yearsToShow:$=y,onTabOutside:T,...R}=a,L=d("jkl-calendar"),[{offset:q,selectedDate:B,shownDate:K},J]=n(g,p(F,A,E,Y),m),P=K.getMonth(),U=K.getFullYear();r((()=>{J({type:"SET_SELECTED_DATE",newDate:p(F,A,E,Y)})}),[F,A,E,Y]);const V=l((e=>{J({type:"SET_OFFSET",newOffset:e})}),[]),{calendars:W,getBackProps:z,getDateProps:H,getForwardProps:G,handleOffsetChanged:Q}=f({date:B,selected:B,minDate:E,maxDate:Y,offset:q,onOffsetChanged:V,firstDayOfWeek:1,...R}),X=o(null),Z=l((e=>{if(!X.current)return;const t=document.activeElement,a=X.current.querySelectorAll('button.jkl-calendar-date-button:not([data-adjacent="true"]'),n=async e=>{null==t||t.setAttribute("tabindex","-1"),e.setAttribute("tabindex","0"),e.focus()};a.forEach(((r,l)=>{const o=l+e;if(r==t)if(o<=a.length-1&&o>=0)n(a[o]);else if(e<0){if(b({calendars:W,minDate:E})||(s((()=>{Q(q-v({calendars:W,offset:1,minDate:E}))})),!X.current))return;const e=X.current.querySelectorAll('button.jkl-calendar-date-button:not([data-adjacent="true"]');e[e.length+o]&&(e[0].setAttribute("tabindex","-1"),n(e[e.length+o]))}else{if(D({calendars:W,maxDate:Y})||(s((()=>{Q(q+j({calendars:W,offset:1,maxDate:Y}))})),!X.current))return;const e=X.current.querySelectorAll('button.jkl-calendar-date-button:not([data-adjacent="true"]');e[o-a.length]&&(e[0].setAttribute("tabindex","-1"),n(e[o-a.length]))}}))}),[Q,X,q,W,Y,E]),ee=l((e=>{switch(e.key){case"ArrowUp":Z(-7),e.preventDefault();break;case"ArrowRight":Z(1),e.preventDefault();break;case"ArrowDown":Z(7),e.preventDefault();break;case"ArrowLeft":Z(-1),e.preventDefault()}}),[Z]),te=l((e=>{var t;if("Tab"!==e.key)return;const a=null==(t=X.current)?void 0:t.querySelectorAll('button:not([disabled]):not([tabindex="-1"]), select');if(!a)return;const n=a[0],r=a[a.length-1];e.shiftKey||document.activeElement!==r?e.shiftKey&&document.activeElement===n&&(r.focus(),e.preventDefault()):(n.focus(),e.preventDefault())}),[]),ae=l((e=>{const{date:t,selected:a,selectable:n,prevMonth:r,nextMonth:l}=e;return!!n&&!(!a&&t.toString()!==(null==E?void 0:E.toString())&&(r||l||K.getFullYear()!==t.getFullYear()||B.getMonth()===t.getMonth()||1!==t.getDate()))}),[K,E,B]),ne=l((()=>{E&&K.getFullYear()-E.getFullYear()==0&&K.getMonth()-E.getMonth()==1?document.querySelectorAll(".jkl-calendar-navigation__arrow")[1].focus():Y&&Y.getFullYear()-K.getFullYear()==0&&Y.getMonth()-K.getMonth()==1&&document.querySelectorAll(".jkl-calendar-navigation__arrow")[0].focus()}),[E,Y,K]),re=l((e=>{if(4!==e.target.value.length)return;const t=Number.parseInt(e.target.value);if(Number.isNaN(t))return;let a=12*(t-K.getFullYear());const n=new Date(K.getFullYear(),K.getMonth()+a,K.getDate());Y&&Y.getFullYear()===n.getFullYear()&&Y.getMonth()<n.getMonth()?a-=n.getMonth()-Y.getMonth():E&&E.getFullYear()===n.getFullYear()&&E.getMonth()>n.getMonth()&&(a+=E.getMonth()-n.getMonth()),J({type:"ADD_OFFSET",addedOffset:a})}),[K,E,Y]),le=l((e=>{if(!B&&!F)return;const t=K.getFullYear()-(B||new Date).getFullYear(),a=Number.parseInt(e.target.value)-(B||new Date).getMonth();J({type:"SET_OFFSET",newOffset:12*t+a})}),[B,F,K]),oe=k(U,E,Y,$),se=w(U,O,E,Y);return e("div",{ref:_,id:L,className:"jkl-calendar","data-testid":"jkl-calendar",children:t("div",{className:"jkl-calendar__padding",ref:X,onKeyDown:te,children:[t("fieldset",{className:"jkl-calendar-navigation",children:[t("div",{children:[e(c,{...z({calendars:W,onClick:ne}),variant:"ghost",icon:e(i,{variant:"medium",bold:!0})}),e(c,{...G({calendars:W,onClick:ne}),variant:"ghost",icon:e(u,{variant:"medium",bold:!0})})]}),t("div",{children:[t("div",{className:"jkl-calendar-navigation-dropdown",children:[e("select",{onChange:le,className:"jkl-calendar-navigation-dropdown__select","aria-label":C,value:P.toString(),children:se.map((({label:t,value:a})=>e("option",{value:a,children:t},a)))}),e(h,{bold:!0,className:"jkl-calendar-navigation-dropdown__chevron"})]}),t("div",{className:"jkl-calendar-navigation-dropdown",children:[e("select",{onChange:re,className:"jkl-calendar-navigation-dropdown__select","aria-label":I,value:U.toString(),children:oe.map((t=>e("option",{value:t,children:t},t)))}),e(h,{bold:!0,className:"jkl-calendar-navigation-dropdown__chevron"})]})]})]}),W.map((a=>t("table",{className:"jkl-calendar-table","data-testid":"jkl-datepicker-calendar",children:[t("caption",{className:"jkl-sr-only",children:[O[a.month],", ",a.year]}),e("thead",{children:e("tr",{children:x.map((t=>e("th",{children:t},`${a.month}${a.year}${t}`)))})}),e("tbody",{"data-testid":"jkl-datepicker-dates",children:a.weeks.map(((t,n)=>e("tr",{children:t.map(((t,r)=>{const l=`${a.month}${a.year}${n}${r}`;if("string"==typeof t)return e("td",{className:"jkl-calendar__date jkl-calendar__date--empty",children:t},l);const{date:o,selectable:s,today:d,prevMonth:c,nextMonth:i}=t;return e("td",{children:e("button",{...H({dateObj:t}),type:"button",className:"jkl-calendar-date-button",tabIndex:ae(t)?0:-1,"aria-label":`${o.getDate()}. ${O[o.getMonth()].toLowerCase()}`,"aria-current":d?"date":void 0,"data-adjacent":c||i?"true":void 0,disabled:!s,onKeyDown:ee,children:e("span",{"aria-hidden":"true",children:o.getDate()})})},l)}))},`${a.month}${a.year}${n}`)))})]},`${a.month}${a.year}`)))]})})}));_.displayName="Calendar";export{_ as Calendar};
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{forwardRef as a,useReducer as n,useEffect as r,useCallback as l,useRef as o}from"react";import{flushSync as s}from"react-dom";import{useId as d}from"../../../hooks/useId/useId.js";import{Button as c}from"../../button/Button.js";import{ArrowLeftIcon as i}from"../../icon/icons/ArrowLeftIcon.js";import{ArrowRightIcon as u}from"../../icon/icons/ArrowRightIcon.js";import{ChevronDownIcon as h}from"../../icon/icons/ChevronDownIcon.js";import{calendarReducer as g,calendarInitializer as m}from"./calendarReducer.js";import{useCalendar as f}from"./useCalendar.js";import{getInitialDateShown as p,isBackDisabled as b,subtractMonth as v,isForwardDisabled as D,addMonth as j,getYearSelectOptions as k,getMonthSelectOptions as w,DEFAULT_YEARS_TO_SHOW as y}from"./utils.js";const M=["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],S=["man","tir","ons","tor","fre","lør","søn"],_=a(((a,_)=>{const{date:F,defaultSelected:A,density:N,minDate:E,maxDate:Y,days:x=S,months:O=M,monthLabel:C="Velg måned",yearLabel:I="Velg år",yearsToShow:$=y,onTabOutside:T,...R}=a,L=d("jkl-calendar"),[{offset:q,selectedDate:B,shownDate:K},J]=n(g,p(F,A,E,Y),m),P=K.getMonth(),U=K.getFullYear();r((()=>{J({type:"SET_SELECTED_DATE",newDate:p(F,A,E,Y)})}),[F,A,E,Y]);const V=l((e=>{J({type:"SET_OFFSET",newOffset:e})}),[]),{calendars:W,getBackProps:z,getDateProps:H,getForwardProps:G,handleOffsetChanged:Q}=f({date:B,selected:B,minDate:E,maxDate:Y,offset:q,onOffsetChanged:V,firstDayOfWeek:1,...R}),X=o(null),Z=l((e=>{if(!X.current)return;const t=document.activeElement,a=X.current.querySelectorAll('button.jkl-calendar-date-button:not([data-adjacent="true"]'),n=async e=>{null==t||t.setAttribute("tabindex","-1"),e.setAttribute("tabindex","0"),e.focus()};a.forEach(((r,l)=>{const o=l+e;if(r===t)if(o<=a.length-1&&o>=0)n(a[o]);else if(e<0){if(b({calendars:W,minDate:E})||(s((()=>{Q(q-v({calendars:W,offset:1,minDate:E}))})),!X.current))return;const e=X.current.querySelectorAll('button.jkl-calendar-date-button:not([data-adjacent="true"]');e[e.length+o]&&(e[0].setAttribute("tabindex","-1"),n(e[e.length+o]))}else{if(D({calendars:W,maxDate:Y})||(s((()=>{Q(q+j({calendars:W,offset:1,maxDate:Y}))})),!X.current))return;const e=X.current.querySelectorAll('button.jkl-calendar-date-button:not([data-adjacent="true"]');e[o-a.length]&&(e[0].setAttribute("tabindex","-1"),n(e[o-a.length]))}}))}),[Q,q,W,Y,E]),ee=l((e=>{switch(e.key){case"ArrowUp":Z(-7),e.preventDefault();break;case"ArrowRight":Z(1),e.preventDefault();break;case"ArrowDown":Z(7),e.preventDefault();break;case"ArrowLeft":Z(-1),e.preventDefault()}}),[Z]),te=l((e=>{var t;if("Tab"!==e.key)return;const a=null==(t=X.current)?void 0:t.querySelectorAll('button:not([disabled]):not([tabindex="-1"]), select');if(!a)return;const n=a[0],r=a[a.length-1];e.shiftKey||document.activeElement!==r?e.shiftKey&&document.activeElement===n&&(r.focus(),e.preventDefault()):(n.focus(),e.preventDefault())}),[]),ae=l((e=>{const{date:t,selected:a,selectable:n,prevMonth:r,nextMonth:l}=e;return!!n&&!(!a&&t.toString()!==(null==E?void 0:E.toString())&&(r||l||K.getFullYear()!==t.getFullYear()||B.getMonth()===t.getMonth()||1!==t.getDate()))}),[K,E,B]),ne=l((()=>{E&&K.getFullYear()-E.getFullYear()==0&&K.getMonth()-E.getMonth()==1?document.querySelectorAll(".jkl-calendar-navigation__arrow")[1].focus():Y&&Y.getFullYear()-K.getFullYear()==0&&Y.getMonth()-K.getMonth()==1&&document.querySelectorAll(".jkl-calendar-navigation__arrow")[0].focus()}),[E,Y,K]),re=l((e=>{if(4!==e.target.value.length)return;const t=Number.parseInt(e.target.value);if(Number.isNaN(t))return;let a=12*(t-K.getFullYear());const n=new Date(K.getFullYear(),K.getMonth()+a,K.getDate());Y&&Y.getFullYear()===n.getFullYear()&&Y.getMonth()<n.getMonth()?a-=n.getMonth()-Y.getMonth():E&&E.getFullYear()===n.getFullYear()&&E.getMonth()>n.getMonth()&&(a+=E.getMonth()-n.getMonth()),J({type:"ADD_OFFSET",addedOffset:a})}),[K,E,Y]),le=l((e=>{if(!B&&!F)return;const t=K.getFullYear()-(B||new Date).getFullYear(),a=Number.parseInt(e.target.value)-(B||new Date).getMonth();J({type:"SET_OFFSET",newOffset:12*t+a})}),[B,F,K]),oe=k(U,E,Y,$),se=w(U,O,E,Y);return e("div",{ref:_,id:L,className:"jkl-calendar","data-testid":"jkl-calendar",children:t("div",{className:"jkl-calendar__padding",ref:X,onKeyDown:te,children:[t("fieldset",{className:"jkl-calendar-navigation",children:[t("div",{children:[e(c,{...z({calendars:W,onClick:ne}),variant:"ghost",icon:e(i,{variant:"medium",bold:!0})}),e(c,{...G({calendars:W,onClick:ne}),variant:"ghost",icon:e(u,{variant:"medium",bold:!0})})]}),t("div",{children:[t("div",{className:"jkl-calendar-navigation-dropdown",children:[e("select",{onChange:le,className:"jkl-calendar-navigation-dropdown__select","aria-label":C,value:P.toString(),children:se.map((({label:t,value:a})=>e("option",{value:a,children:t},a)))}),e(h,{bold:!0,className:"jkl-calendar-navigation-dropdown__chevron"})]}),t("div",{className:"jkl-calendar-navigation-dropdown",children:[e("select",{onChange:re,className:"jkl-calendar-navigation-dropdown__select","aria-label":I,value:U.toString(),children:oe.map((t=>e("option",{value:t,children:t},t)))}),e(h,{bold:!0,className:"jkl-calendar-navigation-dropdown__chevron"})]})]})]}),W.map((a=>t("table",{className:"jkl-calendar-table","data-testid":"jkl-datepicker-calendar",children:[t("caption",{className:"jkl-sr-only",children:[O[a.month],", ",a.year]}),e("thead",{children:e("tr",{children:x.map((t=>e("th",{children:t},`${a.month}${a.year}${t}`)))})}),e("tbody",{"data-testid":"jkl-datepicker-dates",children:a.weeks.map(((t,n)=>e("tr",{children:t.map(((t,r)=>{const l=`${a.month}${a.year}${n}${r}`;if("string"==typeof t)return e("td",{className:"jkl-calendar__date jkl-calendar__date--empty",children:t},l);const{date:o,selectable:s,today:d,prevMonth:c,nextMonth:i}=t;return e("td",{children:e("button",{...H({dateObj:t}),type:"button",className:"jkl-calendar-date-button",tabIndex:ae(t)?0:-1,"aria-label":`${o.getDate()}. ${O[o.getMonth()].toLowerCase()}`,"aria-current":d?"date":void 0,"data-adjacent":c||i?"true":void 0,disabled:!s,onKeyDown:ee,children:e("span",{"aria-hidden":"true",children:o.getDate()})})},l)}))},`${a.month}${a.year}${n}`)))})]},`${a.month}${a.year}`)))]})})}));_.displayName="Calendar";export{_ as Calendar};
2
2
  //# sourceMappingURL=Calendar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","sources":["../../../../../src/components/datepicker/internal/Calendar.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useReducer,\n useRef,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Density } from \"../../../core/types.js\";\nimport { useId } from \"../../../hooks/useId/useId.js\";\nimport { Button } from \"../../button/Button.js\";\nimport { ArrowLeftIcon } from \"../../icon/icons/ArrowLeftIcon.js\";\nimport { ArrowRightIcon } from \"../../icon/icons/ArrowRightIcon.js\";\nimport { ChevronDownIcon } from \"../../icon/icons/ChevronDownIcon.js\";\nimport { YearsToShow } from \"../types.js\";\nimport { calendarInitializer, calendarReducer } from \"./calendarReducer.js\";\nimport { useCalendar, UseCalendarProps } from \"./useCalendar.js\";\nimport {\n addMonth,\n DateInfo,\n DEFAULT_YEARS_TO_SHOW,\n getInitialDateShown,\n getMonthSelectOptions,\n getYearSelectOptions,\n isBackDisabled,\n isForwardDisabled,\n subtractMonth,\n} from \"./utils.js\";\n\ninterface CalendarProps\n extends Omit<\n UseCalendarProps,\n \"date\" | \"onOffsetChanged\" | \"offset\" | \"firstDayOfWeek\" | \"selected\"\n > {\n date: Date | null;\n density?: Density;\n defaultSelected?: Date;\n days?: string[];\n months?: string[];\n monthLabel?: string;\n yearLabel?: string;\n yearsToShow?: YearsToShow;\n onTabOutside: React.KeyboardEventHandler;\n}\n\nconst defaultMonths = [\n \"Januar\",\n \"Februar\",\n \"Mars\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n];\n\nconst defaultDays = [\"man\", \"tir\", \"ons\", \"tor\", \"fre\", \"lør\", \"søn\"];\n\nexport const Calendar = forwardRef<HTMLDivElement, CalendarProps>(\n (props, ref) => {\n const {\n date,\n defaultSelected,\n density,\n minDate,\n maxDate,\n days = defaultDays,\n months = defaultMonths,\n monthLabel = \"Velg måned\",\n yearLabel = \"Velg år\",\n yearsToShow = DEFAULT_YEARS_TO_SHOW,\n onTabOutside,\n ...rest\n } = props;\n\n const id = useId(\"jkl-calendar\");\n\n const [{ offset, selectedDate, shownDate }, dispatch] = useReducer(\n calendarReducer,\n getInitialDateShown(date, defaultSelected, minDate, maxDate),\n calendarInitializer,\n );\n\n const shownMonth = shownDate.getMonth();\n const shownYear = shownDate.getFullYear();\n\n useEffect(() => {\n dispatch({\n type: \"SET_SELECTED_DATE\",\n newDate: getInitialDateShown(\n date,\n defaultSelected,\n minDate,\n maxDate,\n ),\n });\n }, [date, defaultSelected, minDate, maxDate]);\n\n const onOffsetChanged = useCallback((newOffset: number) => {\n dispatch({\n type: \"SET_OFFSET\",\n newOffset,\n });\n }, []);\n\n const {\n calendars,\n getBackProps,\n getDateProps,\n getForwardProps,\n handleOffsetChanged,\n } = useCalendar({\n date: selectedDate,\n selected: selectedDate,\n minDate,\n maxDate,\n offset,\n onOffsetChanged,\n firstDayOfWeek: 1,\n ...rest,\n });\n\n /// Calendar keyboard navigation\n\n const calendarPaddingRef = useRef<HTMLDivElement>(null);\n const doFocusChange = useCallback(\n (offsetDiff: number) => {\n if (!calendarPaddingRef.current) {\n return;\n }\n\n const e = document.activeElement;\n const buttons =\n calendarPaddingRef.current.querySelectorAll<HTMLButtonElement>(\n 'button.jkl-calendar-date-button:not([data-adjacent=\"true\"]',\n );\n\n const changeFocusTo = async (nextButton: HTMLButtonElement) => {\n e?.setAttribute(\"tabindex\", \"-1\");\n nextButton.setAttribute(\"tabindex\", \"0\");\n nextButton.focus();\n };\n\n buttons.forEach((el, i) => {\n const newNodeKey = i + offsetDiff;\n\n if (el == e) {\n if (\n newNodeKey <= buttons.length - 1 &&\n newNodeKey >= 0\n ) {\n changeFocusTo(buttons[newNodeKey]);\n } else if (offsetDiff < 0) {\n if (isBackDisabled({ calendars, minDate })) {\n return;\n }\n\n // Hvis newNodeKey er utenfor samlingen med knapper så har vi prøvd å gå til\n // en dag utenfor måneden. Er offsetDiff negativ så har vi gått tilbake en\n // måned.\n flushSync(() => {\n handleOffsetChanged(\n offset -\n subtractMonth({\n calendars,\n offset: 1,\n minDate,\n }),\n );\n });\n if (!calendarPaddingRef.current) {\n return;\n }\n const newButtons =\n calendarPaddingRef.current.querySelectorAll<HTMLButtonElement>(\n 'button.jkl-calendar-date-button:not([data-adjacent=\"true\"]',\n );\n // + - = -\n if (newButtons[newButtons.length + newNodeKey]) {\n // Sørg for at ikke både 1. i måneden og valgt dag er fokuserbare\n newButtons[0].setAttribute(\"tabindex\", \"-1\");\n changeFocusTo(\n newButtons[newButtons.length + newNodeKey],\n );\n }\n } else {\n if (isForwardDisabled({ calendars, maxDate })) {\n return;\n }\n\n // Hvis newNodeKey er utenfor samlingen med knapper så har vi prøvd å gå til\n // en dag utenfor måneden. Er offsetDiff positiv så har vi gått frem en\n // måned.\n flushSync(() => {\n handleOffsetChanged(\n offset +\n addMonth({\n calendars,\n offset: 1,\n maxDate,\n }),\n );\n });\n if (!calendarPaddingRef.current) {\n return;\n }\n const newButtons =\n calendarPaddingRef.current.querySelectorAll<HTMLButtonElement>(\n 'button.jkl-calendar-date-button:not([data-adjacent=\"true\"]',\n );\n // NewNodeKey er basert på forrige måneds liste med knapper. For at verdien skal bli\n // riktig i vår nye måned må vi trekke fra anntal dager fra forrige måned.\n if (newButtons[newNodeKey - buttons.length]) {\n // Sørg for at ikke både 1. i måneden og valgt dag er fokuserbare\n newButtons[0].setAttribute(\"tabindex\", \"-1\");\n changeFocusTo(\n newButtons[newNodeKey - buttons.length],\n );\n }\n }\n }\n });\n },\n [\n handleOffsetChanged,\n calendarPaddingRef,\n offset,\n calendars,\n maxDate,\n minDate,\n ],\n );\n\n const handleArrowNavigation = useCallback(\n (event: React.KeyboardEvent) => {\n switch (event.key) {\n case \"ArrowUp\":\n doFocusChange(-7);\n event.preventDefault();\n break;\n case \"ArrowRight\":\n doFocusChange(1);\n event.preventDefault();\n break;\n case \"ArrowDown\":\n doFocusChange(7);\n event.preventDefault();\n break;\n case \"ArrowLeft\":\n doFocusChange(-1);\n event.preventDefault();\n break;\n default:\n break;\n }\n },\n [doFocusChange],\n );\n\n const handleTabInside: React.KeyboardEventHandler = useCallback(\n (event) => {\n if (event.key !== \"Tab\") return;\n\n const focusableElements =\n calendarPaddingRef.current?.querySelectorAll<HTMLElement>(\n 'button:not([disabled]):not([tabindex=\"-1\"]), select',\n );\n\n if (!focusableElements) return;\n\n const firstElement = focusableElements[0];\n const lastElement =\n focusableElements[focusableElements.length - 1];\n\n if (!event.shiftKey && document.activeElement === lastElement) {\n firstElement.focus();\n event.preventDefault();\n } else if (\n event.shiftKey &&\n document.activeElement === firstElement\n ) {\n lastElement.focus();\n event.preventDefault();\n }\n },\n [],\n );\n\n const isFocusableDate = useCallback(\n (dateInfo: DateInfo) => {\n const { date, selected, selectable, prevMonth, nextMonth } =\n dateInfo;\n\n // Datoen kan ikke velges\n if (!selectable) {\n return false;\n }\n // Datoen er valgt dato\n if (selected) {\n return true;\n }\n // Datoen er første valgbare dato\n if (date.toString() === minDate?.toString()) {\n return true;\n }\n\n // Datoen er første i måneden som vises\n if (\n !prevMonth &&\n !nextMonth &&\n shownDate.getFullYear() === date.getFullYear() &&\n selectedDate.getMonth() !== date.getMonth() &&\n date.getDate() === 1\n ) {\n return true;\n }\n\n return false;\n },\n [shownDate, minDate, selectedDate],\n );\n\n const handleGotoEdgeMonth = useCallback(() => {\n if (\n // Vi er i ferd med å gå til første måned\n minDate &&\n shownDate.getFullYear() - minDate.getFullYear() === 0 &&\n shownDate.getMonth() - minDate.getMonth() === 1\n ) {\n // Fokuser på \"neste månded\"-knappen\n document\n .querySelectorAll<HTMLButtonElement>(\n \".jkl-calendar-navigation__arrow\",\n )[1]\n .focus();\n } else if (\n // Vi er i ferd med å gå til siste måned\n maxDate &&\n maxDate.getFullYear() - shownDate.getFullYear() === 0 &&\n maxDate.getMonth() - shownDate.getMonth() === 1\n ) {\n // Fokuser på \"forrige månded\"-knappen\n document\n .querySelectorAll<HTMLButtonElement>(\n \".jkl-calendar-navigation__arrow\",\n )[0]\n .focus();\n }\n }, [minDate, maxDate, shownDate]);\n\n /// Extended variant events\n\n const handleYearChange = useCallback<\n React.ChangeEventHandler<HTMLSelectElement>\n >(\n (event) => {\n if (event.target.value.length !== 4) {\n return;\n }\n\n const year: number = Number.parseInt(event.target.value);\n if (Number.isNaN(year)) {\n return;\n }\n\n let offset = (year - shownDate.getFullYear()) * 12;\n const expectedDate = new Date(\n shownDate.getFullYear(),\n shownDate.getMonth() + offset,\n shownDate.getDate(),\n );\n\n // Pass på at vi ikke hopper forbi maks. eller min. dato\n if (\n maxDate &&\n maxDate.getFullYear() === expectedDate.getFullYear() &&\n maxDate.getMonth() < expectedDate.getMonth()\n ) {\n offset -= expectedDate.getMonth() - maxDate.getMonth();\n } else if (\n minDate &&\n minDate.getFullYear() === expectedDate.getFullYear() &&\n minDate.getMonth() > expectedDate.getMonth()\n ) {\n offset += minDate.getMonth() - expectedDate.getMonth();\n }\n\n dispatch({\n type: \"ADD_OFFSET\",\n addedOffset: offset,\n });\n\n return;\n },\n [shownDate, minDate, maxDate],\n );\n\n const handleMonthChange = useCallback<\n React.ChangeEventHandler<HTMLSelectElement>\n >(\n (event) => {\n if (!selectedDate && !date) {\n return;\n }\n\n const yearDiff =\n shownDate.getFullYear() -\n (selectedDate || new Date()).getFullYear();\n const monthDiff =\n Number.parseInt(event.target.value) -\n (selectedDate || new Date()).getMonth();\n\n dispatch({\n type: \"SET_OFFSET\",\n newOffset: yearDiff * 12 + monthDiff,\n });\n\n return;\n },\n [selectedDate, date, shownDate],\n );\n\n const yearSelectOptions = getYearSelectOptions(\n shownYear,\n minDate,\n maxDate,\n yearsToShow,\n );\n const monthSelectOptions = getMonthSelectOptions(\n shownYear,\n months,\n minDate,\n maxDate,\n );\n\n return (\n <div\n ref={ref}\n id={id}\n className=\"jkl-calendar\"\n data-testid=\"jkl-calendar\"\n >\n {/* Vi lytter på på trykk på Tab inne i kalenderen for å håndtere fokus */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n className=\"jkl-calendar__padding\"\n ref={calendarPaddingRef}\n onKeyDown={handleTabInside}\n >\n <fieldset className=\"jkl-calendar-navigation\">\n <div>\n <Button\n {...getBackProps({\n calendars,\n onClick: handleGotoEdgeMonth,\n })}\n variant=\"ghost\"\n icon={<ArrowLeftIcon variant=\"medium\" bold />}\n />\n <Button\n {...getForwardProps({\n calendars,\n onClick: handleGotoEdgeMonth,\n })}\n variant=\"ghost\"\n icon={<ArrowRightIcon variant=\"medium\" bold />}\n />\n </div>\n <div>\n <div className=\"jkl-calendar-navigation-dropdown\">\n <select\n onChange={handleMonthChange}\n className=\"jkl-calendar-navigation-dropdown__select\"\n aria-label={monthLabel}\n value={shownMonth.toString()}\n >\n {monthSelectOptions.map(\n ({ label, value }) => (\n <option key={value} value={value}>\n {label}\n </option>\n ),\n )}\n </select>\n <ChevronDownIcon\n bold\n className=\"jkl-calendar-navigation-dropdown__chevron\"\n />\n </div>\n <div className=\"jkl-calendar-navigation-dropdown\">\n <select\n onChange={handleYearChange}\n className=\"jkl-calendar-navigation-dropdown__select\"\n aria-label={yearLabel}\n value={shownYear.toString()}\n >\n {yearSelectOptions.map((year) => (\n <option key={year} value={year}>\n {year}\n </option>\n ))}\n </select>\n <ChevronDownIcon\n bold\n className=\"jkl-calendar-navigation-dropdown__chevron\"\n />\n </div>\n </div>\n </fieldset>\n {calendars.map((calendar) => (\n <table\n className=\"jkl-calendar-table\"\n key={`${calendar.month}${calendar.year}`}\n data-testid=\"jkl-datepicker-calendar\"\n >\n <caption className=\"jkl-sr-only\">\n {months[calendar.month]}, {calendar.year}\n </caption>\n <thead>\n <tr>\n {days.map((weekday) => (\n <th\n key={`${calendar.month}${calendar.year}${weekday}`}\n >\n {weekday}\n </th>\n ))}\n </tr>\n </thead>\n <tbody data-testid=\"jkl-datepicker-dates\">\n {calendar.weeks.map((week, weekIndex) => (\n <tr\n key={`${calendar.month}${calendar.year}${weekIndex}`}\n >\n {week.map((dateInfo, index) => {\n const key = `${calendar.month}${calendar.year}${weekIndex}${index}`;\n if (typeof dateInfo === \"string\") {\n return (\n <td\n className=\"jkl-calendar__date jkl-calendar__date--empty\"\n key={key}\n >\n {dateInfo}\n </td>\n );\n }\n const {\n date,\n selectable,\n today,\n prevMonth,\n nextMonth,\n } = dateInfo;\n\n return (\n <td key={key}>\n <button\n {...getDateProps({\n dateObj: dateInfo,\n })}\n type=\"button\"\n className=\"jkl-calendar-date-button\"\n tabIndex={\n isFocusableDate(\n dateInfo,\n )\n ? 0\n : -1\n }\n aria-label={`${date.getDate()}. ${months[\n date.getMonth()\n ].toLowerCase()}`}\n aria-current={\n today\n ? \"date\"\n : undefined\n }\n data-adjacent={\n prevMonth ||\n nextMonth\n ? \"true\"\n : undefined\n }\n disabled={!selectable}\n onKeyDown={\n handleArrowNavigation\n }\n >\n <span aria-hidden=\"true\">\n {date.getDate()}\n </span>\n </button>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n ))}\n </div>\n </div>\n );\n },\n);\n\nCalendar.displayName = \"Calendar\";\n"],"names":["defaultMonths","defaultDays","Calendar","forwardRef","props","ref","date","defaultSelected","density","minDate","maxDate","days","months","monthLabel","yearLabel","yearsToShow","DEFAULT_YEARS_TO_SHOW","onTabOutside","rest","id","useId","offset","selectedDate","shownDate","dispatch","useReducer","calendarReducer","getInitialDateShown","calendarInitializer","shownMonth","getMonth","shownYear","getFullYear","useEffect","type","newDate","onOffsetChanged","useCallback","newOffset","calendars","getBackProps","getDateProps","getForwardProps","handleOffsetChanged","useCalendar","selected","firstDayOfWeek","calendarPaddingRef","useRef","doFocusChange","offsetDiff","current","e","document","activeElement","buttons","querySelectorAll","changeFocusTo","async","nextButton","setAttribute","focus","forEach","el","i","newNodeKey","length","isBackDisabled","flushSync","subtractMonth","newButtons","isForwardDisabled","addMonth","handleArrowNavigation","event","key","preventDefault","handleTabInside","focusableElements","_a","firstElement","lastElement","shiftKey","isFocusableDate","dateInfo","selectable","prevMonth","nextMonth","toString","getDate","handleGotoEdgeMonth","handleYearChange","target","value","year","Number","parseInt","isNaN","expectedDate","Date","addedOffset","handleMonthChange","yearDiff","monthDiff","yearSelectOptions","getYearSelectOptions","monthSelectOptions","getMonthSelectOptions","jsx","className","children","jsxs","onKeyDown","Button","onClick","variant","icon","ArrowLeftIcon","bold","ArrowRightIcon","onChange","map","label","ChevronDownIcon","calendar","month","weekday","weeks","week","weekIndex","index","today","dateObj","tabIndex","toLowerCase","disabled","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"Calendar.js","sources":["../../../../../src/components/datepicker/internal/Calendar.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useReducer,\n useRef,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport type { Density } from \"../../../core/types.js\";\nimport { useId } from \"../../../hooks/useId/useId.js\";\nimport { Button } from \"../../button/Button.js\";\nimport { ArrowLeftIcon } from \"../../icon/icons/ArrowLeftIcon.js\";\nimport { ArrowRightIcon } from \"../../icon/icons/ArrowRightIcon.js\";\nimport { ChevronDownIcon } from \"../../icon/icons/ChevronDownIcon.js\";\nimport type { YearsToShow } from \"../types.js\";\nimport { calendarInitializer, calendarReducer } from \"./calendarReducer.js\";\nimport { type UseCalendarProps, useCalendar } from \"./useCalendar.js\";\nimport {\n DEFAULT_YEARS_TO_SHOW,\n type DateInfo,\n addMonth,\n getInitialDateShown,\n getMonthSelectOptions,\n getYearSelectOptions,\n isBackDisabled,\n isForwardDisabled,\n subtractMonth,\n} from \"./utils.js\";\n\ninterface CalendarProps\n extends Omit<\n UseCalendarProps,\n \"date\" | \"onOffsetChanged\" | \"offset\" | \"firstDayOfWeek\" | \"selected\"\n > {\n date: Date | null;\n density?: Density;\n defaultSelected?: Date;\n days?: string[];\n months?: string[];\n monthLabel?: string;\n yearLabel?: string;\n yearsToShow?: YearsToShow;\n onTabOutside: React.KeyboardEventHandler;\n}\n\nconst defaultMonths = [\n \"Januar\",\n \"Februar\",\n \"Mars\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n];\n\nconst defaultDays = [\"man\", \"tir\", \"ons\", \"tor\", \"fre\", \"lør\", \"søn\"];\n\nexport const Calendar = forwardRef<HTMLDivElement, CalendarProps>(\n (props, ref) => {\n const {\n date,\n defaultSelected,\n density,\n minDate,\n maxDate,\n days = defaultDays,\n months = defaultMonths,\n monthLabel = \"Velg måned\",\n yearLabel = \"Velg år\",\n yearsToShow = DEFAULT_YEARS_TO_SHOW,\n onTabOutside,\n ...rest\n } = props;\n\n const id = useId(\"jkl-calendar\");\n\n const [{ offset, selectedDate, shownDate }, dispatch] = useReducer(\n calendarReducer,\n getInitialDateShown(date, defaultSelected, minDate, maxDate),\n calendarInitializer,\n );\n\n const shownMonth = shownDate.getMonth();\n const shownYear = shownDate.getFullYear();\n\n useEffect(() => {\n dispatch({\n type: \"SET_SELECTED_DATE\",\n newDate: getInitialDateShown(\n date,\n defaultSelected,\n minDate,\n maxDate,\n ),\n });\n }, [date, defaultSelected, minDate, maxDate]);\n\n const onOffsetChanged = useCallback((newOffset: number) => {\n dispatch({\n type: \"SET_OFFSET\",\n newOffset,\n });\n }, []);\n\n const {\n calendars,\n getBackProps,\n getDateProps,\n getForwardProps,\n handleOffsetChanged,\n } = useCalendar({\n date: selectedDate,\n selected: selectedDate,\n minDate,\n maxDate,\n offset,\n onOffsetChanged,\n firstDayOfWeek: 1,\n ...rest,\n });\n\n /// Calendar keyboard navigation\n\n const calendarPaddingRef = useRef<HTMLDivElement>(null);\n const doFocusChange = useCallback(\n (offsetDiff: number) => {\n if (!calendarPaddingRef.current) {\n return;\n }\n\n const e = document.activeElement;\n const buttons =\n calendarPaddingRef.current.querySelectorAll<HTMLButtonElement>(\n 'button.jkl-calendar-date-button:not([data-adjacent=\"true\"]',\n );\n\n const changeFocusTo = async (nextButton: HTMLButtonElement) => {\n e?.setAttribute(\"tabindex\", \"-1\");\n nextButton.setAttribute(\"tabindex\", \"0\");\n nextButton.focus();\n };\n\n buttons.forEach((el, i) => {\n const newNodeKey = i + offsetDiff;\n\n if (el === e) {\n if (\n newNodeKey <= buttons.length - 1 &&\n newNodeKey >= 0\n ) {\n changeFocusTo(buttons[newNodeKey]);\n } else if (offsetDiff < 0) {\n if (isBackDisabled({ calendars, minDate })) {\n return;\n }\n\n // Hvis newNodeKey er utenfor samlingen med knapper så har vi prøvd å gå til\n // en dag utenfor måneden. Er offsetDiff negativ så har vi gått tilbake en\n // måned.\n flushSync(() => {\n handleOffsetChanged(\n offset -\n subtractMonth({\n calendars,\n offset: 1,\n minDate,\n }),\n );\n });\n if (!calendarPaddingRef.current) {\n return;\n }\n const newButtons =\n calendarPaddingRef.current.querySelectorAll<HTMLButtonElement>(\n 'button.jkl-calendar-date-button:not([data-adjacent=\"true\"]',\n );\n // + - = -\n if (newButtons[newButtons.length + newNodeKey]) {\n // Sørg for at ikke både 1. i måneden og valgt dag er fokuserbare\n newButtons[0].setAttribute(\"tabindex\", \"-1\");\n changeFocusTo(\n newButtons[newButtons.length + newNodeKey],\n );\n }\n } else {\n if (isForwardDisabled({ calendars, maxDate })) {\n return;\n }\n\n // Hvis newNodeKey er utenfor samlingen med knapper så har vi prøvd å gå til\n // en dag utenfor måneden. Er offsetDiff positiv så har vi gått frem en\n // måned.\n flushSync(() => {\n handleOffsetChanged(\n offset +\n addMonth({\n calendars,\n offset: 1,\n maxDate,\n }),\n );\n });\n if (!calendarPaddingRef.current) {\n return;\n }\n const newButtons =\n calendarPaddingRef.current.querySelectorAll<HTMLButtonElement>(\n 'button.jkl-calendar-date-button:not([data-adjacent=\"true\"]',\n );\n // NewNodeKey er basert på forrige måneds liste med knapper. For at verdien skal bli\n // riktig i vår nye måned må vi trekke fra anntal dager fra forrige måned.\n if (newButtons[newNodeKey - buttons.length]) {\n // Sørg for at ikke både 1. i måneden og valgt dag er fokuserbare\n newButtons[0].setAttribute(\"tabindex\", \"-1\");\n changeFocusTo(\n newButtons[newNodeKey - buttons.length],\n );\n }\n }\n }\n });\n },\n [handleOffsetChanged, offset, calendars, maxDate, minDate],\n );\n\n const handleArrowNavigation = useCallback(\n (event: React.KeyboardEvent) => {\n switch (event.key) {\n case \"ArrowUp\":\n doFocusChange(-7);\n event.preventDefault();\n break;\n case \"ArrowRight\":\n doFocusChange(1);\n event.preventDefault();\n break;\n case \"ArrowDown\":\n doFocusChange(7);\n event.preventDefault();\n break;\n case \"ArrowLeft\":\n doFocusChange(-1);\n event.preventDefault();\n break;\n default:\n break;\n }\n },\n [doFocusChange],\n );\n\n const handleTabInside: React.KeyboardEventHandler = useCallback(\n (event) => {\n if (event.key !== \"Tab\") return;\n\n const focusableElements =\n calendarPaddingRef.current?.querySelectorAll<HTMLElement>(\n 'button:not([disabled]):not([tabindex=\"-1\"]), select',\n );\n\n if (!focusableElements) return;\n\n const firstElement = focusableElements[0];\n const lastElement =\n focusableElements[focusableElements.length - 1];\n\n if (!event.shiftKey && document.activeElement === lastElement) {\n firstElement.focus();\n event.preventDefault();\n } else if (\n event.shiftKey &&\n document.activeElement === firstElement\n ) {\n lastElement.focus();\n event.preventDefault();\n }\n },\n [],\n );\n\n const isFocusableDate = useCallback(\n (dateInfo: DateInfo) => {\n const { date, selected, selectable, prevMonth, nextMonth } =\n dateInfo;\n\n // Datoen kan ikke velges\n if (!selectable) {\n return false;\n }\n // Datoen er valgt dato\n if (selected) {\n return true;\n }\n // Datoen er første valgbare dato\n if (date.toString() === minDate?.toString()) {\n return true;\n }\n\n // Datoen er første i måneden som vises\n if (\n !prevMonth &&\n !nextMonth &&\n shownDate.getFullYear() === date.getFullYear() &&\n selectedDate.getMonth() !== date.getMonth() &&\n date.getDate() === 1\n ) {\n return true;\n }\n\n return false;\n },\n [shownDate, minDate, selectedDate],\n );\n\n const handleGotoEdgeMonth = useCallback(() => {\n if (\n // Vi er i ferd med å gå til første måned\n minDate &&\n shownDate.getFullYear() - minDate.getFullYear() === 0 &&\n shownDate.getMonth() - minDate.getMonth() === 1\n ) {\n // Fokuser på \"neste månded\"-knappen\n document\n .querySelectorAll<HTMLButtonElement>(\n \".jkl-calendar-navigation__arrow\",\n )[1]\n .focus();\n } else if (\n // Vi er i ferd med å gå til siste måned\n maxDate &&\n maxDate.getFullYear() - shownDate.getFullYear() === 0 &&\n maxDate.getMonth() - shownDate.getMonth() === 1\n ) {\n // Fokuser på \"forrige månded\"-knappen\n document\n .querySelectorAll<HTMLButtonElement>(\n \".jkl-calendar-navigation__arrow\",\n )[0]\n .focus();\n }\n }, [minDate, maxDate, shownDate]);\n\n /// Extended variant events\n\n const handleYearChange = useCallback<\n React.ChangeEventHandler<HTMLSelectElement>\n >(\n (event) => {\n if (event.target.value.length !== 4) {\n return;\n }\n\n const year: number = Number.parseInt(event.target.value);\n if (Number.isNaN(year)) {\n return;\n }\n\n let offset = (year - shownDate.getFullYear()) * 12;\n const expectedDate = new Date(\n shownDate.getFullYear(),\n shownDate.getMonth() + offset,\n shownDate.getDate(),\n );\n\n // Pass på at vi ikke hopper forbi maks. eller min. dato\n if (\n maxDate &&\n maxDate.getFullYear() === expectedDate.getFullYear() &&\n maxDate.getMonth() < expectedDate.getMonth()\n ) {\n offset -= expectedDate.getMonth() - maxDate.getMonth();\n } else if (\n minDate &&\n minDate.getFullYear() === expectedDate.getFullYear() &&\n minDate.getMonth() > expectedDate.getMonth()\n ) {\n offset += minDate.getMonth() - expectedDate.getMonth();\n }\n\n dispatch({\n type: \"ADD_OFFSET\",\n addedOffset: offset,\n });\n\n return;\n },\n [shownDate, minDate, maxDate],\n );\n\n const handleMonthChange = useCallback<\n React.ChangeEventHandler<HTMLSelectElement>\n >(\n (event) => {\n if (!selectedDate && !date) {\n return;\n }\n\n const yearDiff =\n shownDate.getFullYear() -\n (selectedDate || new Date()).getFullYear();\n const monthDiff =\n Number.parseInt(event.target.value) -\n (selectedDate || new Date()).getMonth();\n\n dispatch({\n type: \"SET_OFFSET\",\n newOffset: yearDiff * 12 + monthDiff,\n });\n\n return;\n },\n [selectedDate, date, shownDate],\n );\n\n const yearSelectOptions = getYearSelectOptions(\n shownYear,\n minDate,\n maxDate,\n yearsToShow,\n );\n const monthSelectOptions = getMonthSelectOptions(\n shownYear,\n months,\n minDate,\n maxDate,\n );\n\n return (\n <div\n ref={ref}\n id={id}\n className=\"jkl-calendar\"\n data-testid=\"jkl-calendar\"\n >\n {/* Vi lytter på på trykk på Tab inne i kalenderen for å håndtere fokus */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n className=\"jkl-calendar__padding\"\n ref={calendarPaddingRef}\n onKeyDown={handleTabInside}\n >\n <fieldset className=\"jkl-calendar-navigation\">\n <div>\n <Button\n {...getBackProps({\n calendars,\n onClick: handleGotoEdgeMonth,\n })}\n variant=\"ghost\"\n icon={<ArrowLeftIcon variant=\"medium\" bold />}\n />\n <Button\n {...getForwardProps({\n calendars,\n onClick: handleGotoEdgeMonth,\n })}\n variant=\"ghost\"\n icon={<ArrowRightIcon variant=\"medium\" bold />}\n />\n </div>\n <div>\n <div className=\"jkl-calendar-navigation-dropdown\">\n <select\n onChange={handleMonthChange}\n className=\"jkl-calendar-navigation-dropdown__select\"\n aria-label={monthLabel}\n value={shownMonth.toString()}\n >\n {monthSelectOptions.map(\n ({ label, value }) => (\n <option key={value} value={value}>\n {label}\n </option>\n ),\n )}\n </select>\n <ChevronDownIcon\n bold\n className=\"jkl-calendar-navigation-dropdown__chevron\"\n />\n </div>\n <div className=\"jkl-calendar-navigation-dropdown\">\n <select\n onChange={handleYearChange}\n className=\"jkl-calendar-navigation-dropdown__select\"\n aria-label={yearLabel}\n value={shownYear.toString()}\n >\n {yearSelectOptions.map((year) => (\n <option key={year} value={year}>\n {year}\n </option>\n ))}\n </select>\n <ChevronDownIcon\n bold\n className=\"jkl-calendar-navigation-dropdown__chevron\"\n />\n </div>\n </div>\n </fieldset>\n {calendars.map((calendar) => (\n <table\n className=\"jkl-calendar-table\"\n key={`${calendar.month}${calendar.year}`}\n data-testid=\"jkl-datepicker-calendar\"\n >\n <caption className=\"jkl-sr-only\">\n {months[calendar.month]}, {calendar.year}\n </caption>\n <thead>\n <tr>\n {days.map((weekday) => (\n <th\n key={`${calendar.month}${calendar.year}${weekday}`}\n >\n {weekday}\n </th>\n ))}\n </tr>\n </thead>\n <tbody data-testid=\"jkl-datepicker-dates\">\n {calendar.weeks.map((week, weekIndex) => (\n <tr\n key={`${calendar.month}${calendar.year}${weekIndex}`}\n >\n {week.map((dateInfo, index) => {\n const key = `${calendar.month}${calendar.year}${weekIndex}${index}`;\n if (typeof dateInfo === \"string\") {\n return (\n <td\n className=\"jkl-calendar__date jkl-calendar__date--empty\"\n key={key}\n >\n {dateInfo}\n </td>\n );\n }\n const {\n date,\n selectable,\n today,\n prevMonth,\n nextMonth,\n } = dateInfo;\n\n return (\n <td key={key}>\n <button\n {...getDateProps({\n dateObj: dateInfo,\n })}\n type=\"button\"\n className=\"jkl-calendar-date-button\"\n tabIndex={\n isFocusableDate(\n dateInfo,\n )\n ? 0\n : -1\n }\n aria-label={`${date.getDate()}. ${months[\n date.getMonth()\n ].toLowerCase()}`}\n aria-current={\n today\n ? \"date\"\n : undefined\n }\n data-adjacent={\n prevMonth ||\n nextMonth\n ? \"true\"\n : undefined\n }\n disabled={!selectable}\n onKeyDown={\n handleArrowNavigation\n }\n >\n <span aria-hidden=\"true\">\n {date.getDate()}\n </span>\n </button>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n ))}\n </div>\n </div>\n );\n },\n);\n\nCalendar.displayName = \"Calendar\";\n"],"names":["defaultMonths","defaultDays","Calendar","forwardRef","props","ref","date","defaultSelected","density","minDate","maxDate","days","months","monthLabel","yearLabel","yearsToShow","DEFAULT_YEARS_TO_SHOW","onTabOutside","rest","id","useId","offset","selectedDate","shownDate","dispatch","useReducer","calendarReducer","getInitialDateShown","calendarInitializer","shownMonth","getMonth","shownYear","getFullYear","useEffect","type","newDate","onOffsetChanged","useCallback","newOffset","calendars","getBackProps","getDateProps","getForwardProps","handleOffsetChanged","useCalendar","selected","firstDayOfWeek","calendarPaddingRef","useRef","doFocusChange","offsetDiff","current","e","document","activeElement","buttons","querySelectorAll","changeFocusTo","async","nextButton","setAttribute","focus","forEach","el","i","newNodeKey","length","isBackDisabled","flushSync","subtractMonth","newButtons","isForwardDisabled","addMonth","handleArrowNavigation","event","key","preventDefault","handleTabInside","focusableElements","_a","firstElement","lastElement","shiftKey","isFocusableDate","dateInfo","selectable","prevMonth","nextMonth","toString","getDate","handleGotoEdgeMonth","handleYearChange","target","value","year","Number","parseInt","isNaN","expectedDate","Date","addedOffset","handleMonthChange","yearDiff","monthDiff","yearSelectOptions","getYearSelectOptions","monthSelectOptions","getMonthSelectOptions","jsx","className","children","jsxs","onKeyDown","Button","onClick","variant","icon","ArrowLeftIcon","bold","ArrowRightIcon","onChange","map","label","ChevronDownIcon","calendar","month","weekday","weeks","week","weekIndex","index","today","dateObj","tabIndex","toLowerCase","disabled","displayName"],"mappings":"qzBA6CA,MAAMA,EAAgB,CAClB,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGEC,EAAc,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAElDC,EAAWC,GACpB,CAACC,EAAOC,KACE,MACFC,KAAAA,EACAC,gBAAAA,EACAC,QAAAA,EACAC,QAAAA,EACAC,QAAAA,EACAC,KAAAA,EAAOV,EACPW,OAAAA,EAASZ,EACTa,WAAAA,EAAa,aACbC,UAAAA,EAAY,UACZC,YAAAA,EAAcC,EACdC,aAAAA,KACGC,GACHd,EAEEe,EAAKC,EAAM,kBAERC,OAAAA,EAAQC,aAAAA,EAAcC,UAAAA,GAAaC,GAAYC,EACpDC,EACAC,EAAoBrB,EAAMC,EAAiBE,EAASC,GACpDkB,GAGEC,EAAaN,EAAUO,WACvBC,EAAYR,EAAUS,cAE5BC,GAAU,KACGT,EAAA,CACLU,KAAM,oBACNC,QAASR,EACLrB,EACAC,EACAE,EACAC,IAEP,GACF,CAACJ,EAAMC,EAAiBE,EAASC,IAE9B0B,MAAAA,EAAkBC,GAAaC,IACxBd,EAAA,CACLU,KAAM,aACNI,UAAAA,GACH,GACF,KAGCC,UAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAC,gBAAAA,EACAC,oBAAAA,GACAC,EAAY,CACZtC,KAAMgB,EACNuB,SAAUvB,EACVb,QAAAA,EACAC,QAAAA,EACAW,OAAAA,EACAe,gBAAAA,EACAU,eAAgB,KACb5B,IAKD6B,EAAqBC,EAAuB,MAC5CC,EAAgBZ,GACjBa,IACO,IAACH,EAAmBI,QACpB,OAGJ,MAAMC,EAAIC,SAASC,cACbC,EACFR,EAAmBI,QAAQK,iBACvB,8DAGFC,EAAgBC,MAAOC,IACtB,MAAAP,GAAAA,EAAAQ,aAAa,WAAY,MACjBD,EAAAC,aAAa,WAAY,KACpCD,EAAWE,OAAM,EAGbN,EAAAO,SAAQ,CAACC,EAAIC,KACjB,MAAMC,EAAaD,EAAId,EAEvB,GAAIa,IAAOX,EACP,GACIa,GAAcV,EAAQW,OAAS,GAC/BD,GAAc,EAEAR,EAAAF,EAAQU,SAAW,GAC1Bf,EAAa,EAAG,CACnBiB,GAAAA,EAAe,CAAE5B,UAAAA,EAAW9B,QAAAA,MAOhC2D,GAAU,KACNzB,EACItB,EACIgD,EAAc,CACV9B,UAAAA,EACAlB,OAAQ,EACRZ,QAAAA,IACH,KAGRsC,EAAmBI,SACpB,OAEEmB,MAAAA,EACFvB,EAAmBI,QAAQK,iBACvB,8DAGJc,EAAWA,EAAWJ,OAASD,KAE/BK,EAAW,GAAGV,aAAa,WAAY,MACvCH,EACIa,EAAWA,EAAWJ,OAASD,IAEvC,KACG,CACCM,GAAAA,EAAkB,CAAEhC,UAAAA,EAAW7B,QAAAA,MAOnC0D,GAAU,KACNzB,EACItB,EACImD,EAAS,CACLjC,UAAAA,EACAlB,OAAQ,EACRX,QAAAA,IACH,KAGRqC,EAAmBI,SACpB,OAEEmB,MAAAA,EACFvB,EAAmBI,QAAQK,iBACvB,8DAIJc,EAAWL,EAAaV,EAAQW,UAEhCI,EAAW,GAAGV,aAAa,WAAY,MACvCH,EACIa,EAAWL,EAAaV,EAAQW,SAG5C,IAEP,GAEL,CAACvB,EAAqBtB,EAAQkB,EAAW7B,EAASD,IAGhDgE,GAAwBpC,GACzBqC,IACG,OAAQA,EAAMC,KACV,IAAK,UACD1B,GAAc,GACdyB,EAAME,iBACN,MACJ,IAAK,aACD3B,EAAc,GACdyB,EAAME,iBACN,MACJ,IAAK,YACD3B,EAAc,GACdyB,EAAME,iBACN,MACJ,IAAK,YACD3B,GAAc,GACdyB,EAAME,iBAId,GAEJ,CAAC3B,IAGC4B,GAA8CxC,GAC/CqC,UACOA,GAAc,QAAdA,EAAMC,IAAe,OAEnB,MAAAG,EACF,OAAAC,EAAAhC,EAAmBI,gBAAnB4B,EAA4BvB,iBACxB,uDAGR,IAAKsB,EAAmB,OAElBE,MAAAA,EAAeF,EAAkB,GACjCG,EACFH,EAAkBA,EAAkBZ,OAAS,GAE5CQ,EAAMQ,UAAY7B,SAASC,gBAAkB2B,EAI9CP,EAAMQ,UACN7B,SAASC,gBAAkB0B,IAE3BC,EAAYpB,QACZa,EAAME,mBAPNI,EAAanB,QACba,EAAME,iBAMe,GAG7B,IAGEO,GAAkB9C,GACnB+C,IACS,MAAE9E,KAAAA,EAAMuC,SAAAA,EAAUwC,WAAAA,EAAYC,UAAAA,EAAWC,UAAAA,GAC3CH,EAGJ,QAAKC,MAIDxC,GAIAvC,EAAKkF,cAAe,MAAA/E,OAAA,EAAAA,EAAS+E,cAM5BF,GACAC,GACDhE,EAAUS,gBAAkB1B,EAAK0B,eACjCV,EAAaQ,aAAexB,EAAKwB,YACd,IAAnBxB,EAAKmF,WAjBE,GAwBf,CAAClE,EAAWd,EAASa,IAGnBoE,GAAsBrD,GAAY,KAGhC5B,GACAc,EAAUS,cAAgBvB,EAAQuB,eAAkB,GACpDT,EAAUO,WAAarB,EAAQqB,YAAe,EAIzCuB,SAAAG,iBACG,mCACF,GACDK,QAGLnD,GACAA,EAAQsB,cAAgBT,EAAUS,eAAkB,GACpDtB,EAAQoB,WAAaP,EAAUO,YAAe,GAIzCuB,SAAAG,iBACG,mCACF,GACDK,UAEV,CAACpD,EAASC,EAASa,IAIhBoE,GAAmBtD,GAGpBqC,IACOA,GAA8B,IAA9BA,EAAMkB,OAAOC,MAAM3B,OACnB,OAGJ,MAAM4B,EAAeC,OAAOC,SAAStB,EAAMkB,OAAOC,OAC9C,GAAAE,OAAOE,MAAMH,GACb,OAGJ,IAAIzE,EAA4C,IAAlCyE,EAAOvE,EAAUS,eAC/B,MAAMkE,EAAe,IAAIC,KACrB5E,EAAUS,cACVT,EAAUO,WAAaT,EACvBE,EAAUkE,WAKV/E,GACAA,EAAQsB,gBAAkBkE,EAAalE,eACvCtB,EAAQoB,WAAaoE,EAAapE,WAElCT,GAAU6E,EAAapE,WAAapB,EAAQoB,WAE5CrB,GACAA,EAAQuB,gBAAkBkE,EAAalE,eACvCvB,EAAQqB,WAAaoE,EAAapE,aAElCT,GAAUZ,EAAQqB,WAAaoE,EAAapE,YAGvCN,EAAA,CACLU,KAAM,aACNkE,YAAa/E,GAChB,GAIL,CAACE,EAAWd,EAASC,IAGnB2F,GAAoBhE,GAGrBqC,IACO,IAACpD,IAAiBhB,EAClB,OAGEgG,MAAAA,EACF/E,EAAUS,eACTV,GAAoB,IAAA6E,MAAQnE,cAC3BuE,EACFR,OAAOC,SAAStB,EAAMkB,OAAOC,QAC5BvE,GAAgB,IAAI6E,MAAQrE,WAExBN,EAAA,CACLU,KAAM,aACNI,UAAsB,GAAXgE,EAAgBC,GAC9B,GAIL,CAACjF,EAAchB,EAAMiB,IAGnBiF,GAAoBC,EACtB1E,EACAtB,EACAC,EACAK,GAEE2F,GAAqBC,EACvB5E,EACAnB,EACAH,EACAC,GAIA,OAAAkG,EAAC,MAAA,CACGvG,IAAAA,EACAc,GAAAA,EACA0F,UAAU,eACV,cAAY,eAIZC,SAAAC,EAAC,MAAA,CACGF,UAAU,wBACVxG,IAAK0C,EACLiE,UAAWnC,GAEXiC,SAAA,CAACC,EAAA,WAAA,CAASF,UAAU,0BAChBC,SAAA,CAAAC,EAAC,MACG,CAAAD,SAAA,CAAAF,EAACK,EAAA,IACOzE,EAAa,CACbD,UAAAA,EACA2E,QAASxB,KAEbyB,QAAQ,QACRC,KAAOR,EAAAS,EAAA,CAAcF,QAAQ,SAASG,MAAI,MAE9CV,EAACK,EAAA,IACOvE,EAAgB,CAChBH,UAAAA,EACA2E,QAASxB,KAEbyB,QAAQ,QACRC,KAAOR,EAAAW,EAAA,CAAeJ,QAAQ,SAASG,MAAI,WAGlD,MACG,CAAAR,SAAA,CAACC,EAAA,MAAA,CAAIF,UAAU,mCACXC,SAAA,CAAAF,EAAC,SAAA,CACGY,SAAUnB,GACVQ,UAAU,2CACV,aAAYhG,EACZgF,MAAOhE,EAAW2D,WAEjBsB,SAAmBJ,GAAAe,KAChB,EAAGC,MAAAA,EAAO7B,MAAAA,KACLe,EAAA,SAAA,CAAmBf,MAAAA,EACfiB,SAAAY,GADQ7B,OAMzBe,EAACe,EAAA,CACGL,MAAI,EACJT,UAAU,iDAGlBE,EAAC,MAAI,CAAAF,UAAU,mCACXC,SAAA,CAAAF,EAAC,SAAA,CACGY,SAAU7B,GACVkB,UAAU,2CACV,aAAY/F,EACZ+E,MAAO9D,EAAUyD,WAEhBsB,SAAAN,GAAkBiB,KAAK3B,GACpBc,EAAC,UAAkBf,MAAOC,EACrBgB,SADQhB,GAAAA,OAKrBc,EAACe,EAAA,CACGL,MAAI,EACJT,UAAU,uDAKzBtE,EAAUkF,KAAKG,GACZb,EAAC,QAAA,CACGF,UAAU,qBAEV,cAAY,0BAEZC,SAAA,CAACC,EAAA,UAAA,CAAQF,UAAU,cACdC,SAAA,CAAAlG,EAAOgH,EAASC,OAAO,KAAGD,EAAS9B,UAEvC,QACG,CAAAgB,SAAAF,EAAC,MACIE,SAAKnG,EAAA8G,KAAKK,GACPlB,EAAC,KAAA,CAGIE,SAAAgB,GAFI,GAAGF,EAASC,QAAQD,EAAS9B,OAAOgC,WAOzDlB,EAAC,SAAM,cAAY,uBACdE,WAASiB,MAAMN,KAAI,CAACO,EAAMC,IACvBrB,EAAC,KAAA,CAGIE,SAAKkB,EAAAP,KAAI,CAACrC,EAAU8C,KACXvD,MAAAA,EAAM,GAAGiD,EAASC,QAAQD,EAAS9B,OAAOmC,IAAYC,IACxD,GAAoB,iBAAb9C,EAEH,OAAAwB,EAAC,KAAA,CACGC,UAAU,+CAGTC,SAAA1B,GAFIT,GAMX,MACFrE,KAAAA,EACA+E,WAAAA,EACA8C,MAAAA,EACA7C,UAAAA,EACAC,UAAAA,GACAH,EAEJ,SACK,KACG,CAAA0B,SAAAF,EAAC,SAAA,IACOnE,EAAa,CACb2F,QAAShD,IAEblD,KAAK,SACL2E,UAAU,2BACVwB,SACIlD,GACIC,GAEE,GACA,EAEV,aAAY,GAAG9E,EAAKmF,cAAc7E,EAC9BN,EAAKwB,YACPwG,gBACF,eACIH,EACM,YACA,EAEV,gBACI7C,GACAC,EACM,YACA,EAEVgD,UAAWlD,EACX2B,UACIvC,GAGJqC,WAAC,OAAK,CAAA,cAAY,OACbA,SAAAxG,EAAKmF,eAlCTd,EAqCT,KA5DH,GAAGiD,EAASC,QAAQD,EAAS9B,OAAOmC,WApBhD,GAAGL,EAASC,QAAQD,EAAS9B,cAwF9C,IAMhB5F,EAASsI,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendarReducer.js","sources":["../../../../../src/components/datepicker/internal/calendarReducer.ts"],"sourcesContent":["import { type Reducer } from \"react\";\n\nexport type CalendarAction =\n | {\n type: \"SET_SELECTED_DATE\";\n newDate: Date;\n }\n | {\n type: \"SET_OFFSET\";\n newOffset: number;\n }\n | {\n type: \"ADD_OFFSET\";\n addedOffset: number;\n };\n\nexport type CalendarState = {\n selectedDate: Date;\n offset: number;\n shownDate: Date;\n};\n\nexport const calendarReducer: Reducer<CalendarState, CalendarAction> = (\n currentState,\n action,\n) => {\n let shownDate: Date;\n\n switch (action.type) {\n case \"SET_OFFSET\":\n shownDate = new Date(currentState.selectedDate);\n shownDate.setMonth(\n currentState.selectedDate.getMonth() + action.newOffset,\n );\n\n return {\n ...currentState,\n offset: action.newOffset,\n shownDate,\n };\n\n case \"ADD_OFFSET\":\n shownDate = new Date(currentState.selectedDate);\n shownDate.setMonth(\n currentState.selectedDate.getMonth() +\n currentState.offset +\n action.addedOffset,\n );\n\n return {\n ...currentState,\n offset: currentState.offset + action.addedOffset,\n shownDate,\n };\n\n case \"SET_SELECTED_DATE\":\n return calendarInitializer(action.newDate);\n\n default:\n return currentState;\n }\n};\n\nexport const calendarInitializer = (initialDate: Date): CalendarState => ({\n selectedDate: initialDate,\n offset: 0,\n shownDate: initialDate,\n});\n"],"names":["calendarReducer","currentState","action","shownDate","type","Date","selectedDate","setMonth","getMonth","newOffset","offset","addedOffset","calendarInitializer","newDate","initialDate"],"mappings":"AAsBa,MAAAA,EAA0D,CACnEC,EACAC,KAEIC,IAAAA,EAEJ,OAAQD,EAAOE,MACX,IAAK,aACW,OAAAD,EAAA,IAAIE,KAAKJ,EAAaK,cACxBH,EAAAI,SACNN,EAAaK,aAAaE,WAAaN,EAAOO,WAG3C,IACAR,EACHS,OAAQR,EAAOO,UACfN,UAAAA,GAGR,IAAK,aACW,OAAAA,EAAA,IAAIE,KAAKJ,EAAaK,cACxBH,EAAAI,SACNN,EAAaK,aAAaE,WACtBP,EAAaS,OACbR,EAAOS,aAGR,IACAV,EACHS,OAAQT,EAAaS,OAASR,EAAOS,YACrCR,UAAAA,GAGR,IAAK,oBACMS,OAAAA,EAAoBV,EAAOW,SAEtC,QACWZ,OAAAA,EACf,EAGSW,EAAuBE,IAAsC,CACtER,aAAcQ,EACdJ,OAAQ,EACRP,UAAWW"}
1
+ {"version":3,"file":"calendarReducer.js","sources":["../../../../../src/components/datepicker/internal/calendarReducer.ts"],"sourcesContent":["import type { Reducer } from \"react\";\n\nexport type CalendarAction =\n | {\n type: \"SET_SELECTED_DATE\";\n newDate: Date;\n }\n | {\n type: \"SET_OFFSET\";\n newOffset: number;\n }\n | {\n type: \"ADD_OFFSET\";\n addedOffset: number;\n };\n\nexport type CalendarState = {\n selectedDate: Date;\n offset: number;\n shownDate: Date;\n};\n\nexport const calendarReducer: Reducer<CalendarState, CalendarAction> = (\n currentState,\n action,\n) => {\n let shownDate: Date;\n\n switch (action.type) {\n case \"SET_OFFSET\":\n shownDate = new Date(currentState.selectedDate);\n shownDate.setMonth(\n currentState.selectedDate.getMonth() + action.newOffset,\n );\n\n return {\n ...currentState,\n offset: action.newOffset,\n shownDate,\n };\n\n case \"ADD_OFFSET\":\n shownDate = new Date(currentState.selectedDate);\n shownDate.setMonth(\n currentState.selectedDate.getMonth() +\n currentState.offset +\n action.addedOffset,\n );\n\n return {\n ...currentState,\n offset: currentState.offset + action.addedOffset,\n shownDate,\n };\n\n case \"SET_SELECTED_DATE\":\n return calendarInitializer(action.newDate);\n\n default:\n return currentState;\n }\n};\n\nexport const calendarInitializer = (initialDate: Date): CalendarState => ({\n selectedDate: initialDate,\n offset: 0,\n shownDate: initialDate,\n});\n"],"names":["calendarReducer","currentState","action","shownDate","type","Date","selectedDate","setMonth","getMonth","newOffset","offset","addedOffset","calendarInitializer","newDate","initialDate"],"mappings":"AAsBa,MAAAA,EAA0D,CACnEC,EACAC,KAEIC,IAAAA,EAEJ,OAAQD,EAAOE,MACX,IAAK,aACW,OAAAD,EAAA,IAAIE,KAAKJ,EAAaK,cACxBH,EAAAI,SACNN,EAAaK,aAAaE,WAAaN,EAAOO,WAG3C,IACAR,EACHS,OAAQR,EAAOO,UACfN,UAAAA,GAGR,IAAK,aACW,OAAAA,EAAA,IAAIE,KAAKJ,EAAaK,cACxBH,EAAAI,SACNN,EAAaK,aAAaE,WACtBP,EAAaS,OACbR,EAAOS,aAGR,IACAV,EACHS,OAAQT,EAAaS,OAASR,EAAOS,YACrCR,UAAAA,GAGR,IAAK,oBACMS,OAAAA,EAAoBV,EAAOW,SAEtC,QACWZ,OAAAA,EACf,EAGSW,EAAuBE,IAAsC,CACtER,aAAcQ,EACdJ,OAAQ,EACRP,UAAWW"}
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { DateInfo, CalendarMonth } from './utils.js';
2
+ import { CalendarMonth, DateInfo } from './utils.js';
3
3
  type GetDateProps = {
4
4
  onClick?: React.MouseEventHandler;
5
5
  dateObj: DateInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendar.js","sources":["../../../../../src/components/datepicker/internal/useCalendar.ts"],"sourcesContent":["/***\n * MIT License\n *\n * Copyright (c) 2017 Deseret Digital Media. 2022 Fremtind Forsikring AS.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { startOfDay } from \"date-fns\";\nimport React, { useState } from \"react\";\nimport {\n composeEventHandlers,\n subtractMonth,\n addMonth,\n isBackDisabled,\n isForwardDisabled,\n getCalendars,\n DateInfo,\n CalendarMonth,\n} from \"./utils.js\";\n\nfunction isOffsetControlled(propOffset: number | undefined): boolean {\n return propOffset !== undefined;\n}\n\nfunction getOffset(prop: number, state: number): number {\n return isOffsetControlled(prop) ? prop : state;\n}\n\ntype BoundGetDateProps = (dateInfo: DateInfo, event: React.MouseEvent) => void;\n\ntype GetDateProps = {\n onClick?: React.MouseEventHandler;\n dateObj: DateInfo;\n};\n\ntype GetDatePropsResult = {\n onClick: React.MouseEventHandler;\n disabled: boolean;\n \"aria-pressed\": boolean;\n role: \"button\";\n};\n\nfunction getDateProps(\n onDateSelected: BoundGetDateProps,\n { onClick, dateObj }: GetDateProps,\n): GetDatePropsResult {\n return {\n onClick: composeEventHandlers(onClick, (event) => {\n onDateSelected(dateObj, event);\n }),\n disabled: !dateObj.selectable,\n \"aria-pressed\": dateObj.selected,\n role: \"button\",\n };\n}\n\ntype BoundGetBackProps = {\n handleOffsetChanged: (newOffset: number) => void;\n offsetMonth: number;\n minDate?: Date;\n};\n\ntype GetBackProps = {\n onClick?: React.MouseEventHandler;\n offset?: number;\n calendars: CalendarMonth[];\n};\n\ntype GetBackPropsResult = {\n onClick: React.MouseEventHandler;\n disabled: boolean;\n \"aria-label\": string;\n title: string;\n};\n\nfunction getBackProps(\n { minDate, offsetMonth, handleOffsetChanged }: BoundGetBackProps,\n { onClick, offset = 1, calendars }: GetBackProps,\n): GetBackPropsResult {\n const label = `Gå tilbake ${offset} måned${offset === 1 ? \"\" : \"er\"}`;\n return {\n onClick: composeEventHandlers(onClick, () => {\n handleOffsetChanged(\n offsetMonth - subtractMonth({ calendars, offset, minDate }),\n );\n }),\n disabled: isBackDisabled({ calendars, minDate }),\n \"aria-label\": label,\n title: label,\n };\n}\n\ntype BoundGetForwardProps = {\n handleOffsetChanged: (newOffset: number) => void;\n offsetMonth: number;\n maxDate?: Date;\n};\n\ntype GetForwardProps = {\n onClick?: React.MouseEventHandler;\n offset?: number;\n calendars: CalendarMonth[];\n};\n\ntype GetForwardPropsResult = {\n onClick: React.MouseEventHandler;\n disabled: boolean;\n \"aria-label\": string;\n title: string;\n};\n\nfunction getForwardProps(\n { maxDate, offsetMonth, handleOffsetChanged }: BoundGetForwardProps,\n { onClick, offset = 1, calendars }: GetForwardProps,\n): GetForwardPropsResult {\n const label = `Gå frem ${offset} måned${offset === 1 ? \"\" : \"er\"}`;\n return {\n onClick: composeEventHandlers(onClick, () => {\n handleOffsetChanged(\n offsetMonth + addMonth({ calendars, offset, maxDate }),\n );\n }),\n disabled: isForwardDisabled({ calendars, maxDate }),\n \"aria-label\": label,\n title: label,\n };\n}\n\nexport interface UseCalendarProps {\n date?: Date;\n maxDate?: Date;\n minDate?: Date;\n monthsToDisplay?: number;\n firstDayOfWeek?: number;\n showOutsideDays?: boolean;\n offset: number;\n onDateSelected: (dateObj: DateInfo, event: React.MouseEvent) => void;\n onOffsetChanged: (newOffset: number) => void;\n selected?: Date | Date[];\n}\n\nexport type GetDatePropsFunc = (props: GetDateProps) => GetDatePropsResult;\nexport type GetBackPropsFunc = (props: GetBackProps) => GetBackPropsResult;\nexport type GetForwardPropsFunc = (\n props: GetForwardProps,\n) => GetForwardPropsResult;\nexport type HandleOffsetFunc = (newOffset: number) => void;\n\nexport type UseCalendarResult = {\n calendars: CalendarMonth[];\n getDateProps: GetDatePropsFunc;\n getBackProps: GetBackPropsFunc;\n getForwardProps: GetForwardPropsFunc;\n handleOffsetChanged: HandleOffsetFunc;\n};\n\nexport function useCalendar({\n date = startOfDay(new Date()),\n maxDate,\n minDate,\n monthsToDisplay = 1,\n firstDayOfWeek = 0,\n showOutsideDays = true,\n offset,\n onDateSelected,\n onOffsetChanged,\n selected,\n}: UseCalendarProps): UseCalendarResult {\n const [stateOffset, setStateOffset] = useState(0);\n const offsetMonth = getOffset(offset, stateOffset);\n\n function handleOffsetChanged(newOffset: number) {\n if (!isOffsetControlled(offset)) {\n setStateOffset(newOffset);\n }\n onOffsetChanged(newOffset);\n }\n\n const calendars = getCalendars({\n date,\n selected,\n monthsToDisplay,\n minDate,\n maxDate,\n offset: offsetMonth,\n firstDayOfWeek,\n showOutsideDays,\n });\n return {\n calendars,\n getDateProps: getDateProps.bind(null, onDateSelected),\n getBackProps: getBackProps.bind(null, {\n minDate,\n offsetMonth,\n handleOffsetChanged,\n }),\n getForwardProps: getForwardProps.bind(null, {\n maxDate,\n offsetMonth,\n handleOffsetChanged,\n }),\n handleOffsetChanged,\n };\n}\n"],"names":["isOffsetControlled","propOffset","getDateProps","onDateSelected","onClick","dateObj","composeEventHandlers","event","disabled","selectable","selected","role","getBackProps","minDate","offsetMonth","handleOffsetChanged","offset","calendars","label","subtractMonth","isBackDisabled","title","getForwardProps","maxDate","addMonth","isForwardDisabled","useCalendar","date","startOfDay","Date","monthsToDisplay","firstDayOfWeek","showOutsideDays","onOffsetChanged","stateOffset","setStateOffset","useState","prop","state","getOffset","newOffset","getCalendars","bind"],"mappings":"uNAoCA,SAASA,EAAmBC,GACxB,YAAsB,IAAfA,CACX,CAoBA,SAASC,EACLC,GACEC,QAAAA,EAASC,QAAAA,IAEJ,MAAA,CACHD,QAASE,EAAqBF,GAAUG,IACpCJ,EAAeE,EAASE,EAAK,IAEjCC,UAAWH,EAAQI,WACnB,eAAgBJ,EAAQK,SACxBC,KAAM,SAEd,CAqBA,SAASC,GACHC,QAAAA,EAASC,YAAAA,EAAaC,oBAAAA,IACtBX,QAAAA,EAASY,OAAAA,EAAS,EAAGC,UAAAA,IAEvB,MAAMC,EAAQ,cAAcF,UAA0B,IAAXA,EAAe,GAAK,OACxD,MAAA,CACHZ,QAASE,EAAqBF,GAAS,KACnCW,EACID,EAAcK,EAAc,CAAEF,UAAAA,EAAWD,OAAAA,EAAQH,QAAAA,IAAS,IAGlEL,SAAUY,EAAe,CAAEH,UAAAA,EAAWJ,QAAAA,IACtC,aAAcK,EACdG,MAAOH,EAEf,CAqBA,SAASI,GACHC,QAAAA,EAAST,YAAAA,EAAaC,oBAAAA,IACtBX,QAAAA,EAASY,OAAAA,EAAS,EAAGC,UAAAA,IAEvB,MAAMC,EAAQ,WAAWF,UAA0B,IAAXA,EAAe,GAAK,OACrD,MAAA,CACHZ,QAASE,EAAqBF,GAAS,KACnCW,EACID,EAAcU,EAAS,CAAEP,UAAAA,EAAWD,OAAAA,EAAQO,QAAAA,IAAS,IAG7Df,SAAUiB,EAAkB,CAAER,UAAAA,EAAWM,QAAAA,IACzC,aAAcL,EACdG,MAAOH,EAEf,CA8BO,SAASQ,GACZC,KAAAA,EAAOC,EAAe,IAAAC,MACtBN,QAAAA,EACAV,QAAAA,EACAiB,gBAAAA,EAAkB,EAClBC,eAAAA,EAAiB,EACjBC,gBAAAA,GAAkB,EAClBhB,OAAAA,EACAb,eAAAA,EACA8B,gBAAAA,EACAvB,SAAAA,IAEM,MAACwB,EAAaC,GAAkBC,EAAS,GACzCtB,EAjJV,SAAmBuB,EAAcC,GACtBtC,OAAAA,EAAmBqC,GAAQA,EAAOC,CAC7C,CA+IwBC,CAAUvB,EAAQkB,GAEtC,SAASnB,EAAoByB,GACpBxC,EAAmBgB,IACpBmB,EAAeK,GAEnBP,EAAgBO,EACpB,CAYO,MAAA,CACHvB,UAXcwB,EAAa,CAC3Bd,KAAAA,EACAjB,SAAAA,EACAoB,gBAAAA,EACAjB,QAAAA,EACAU,QAAAA,EACAP,OAAQF,EACRiB,eAAAA,EACAC,gBAAAA,IAIA9B,aAAcA,EAAawC,KAAK,KAAMvC,GACtCS,aAAcA,EAAa8B,KAAK,KAAM,CAClC7B,QAAAA,EACAC,YAAAA,EACAC,oBAAAA,IAEJO,gBAAiBA,EAAgBoB,KAAK,KAAM,CACxCnB,QAAAA,EACAT,YAAAA,EACAC,oBAAAA,IAEJA,oBAAAA,EAER"}
1
+ {"version":3,"file":"useCalendar.js","sources":["../../../../../src/components/datepicker/internal/useCalendar.ts"],"sourcesContent":["/***\n * MIT License\n *\n * Copyright (c) 2017 Deseret Digital Media. 2022 Fremtind Forsikring AS.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { startOfDay } from \"date-fns\";\nimport React, { useState } from \"react\";\nimport {\n type CalendarMonth,\n type DateInfo,\n addMonth,\n composeEventHandlers,\n getCalendars,\n isBackDisabled,\n isForwardDisabled,\n subtractMonth,\n} from \"./utils.js\";\n\nfunction isOffsetControlled(propOffset: number | undefined): boolean {\n return propOffset !== undefined;\n}\n\nfunction getOffset(prop: number, state: number): number {\n return isOffsetControlled(prop) ? prop : state;\n}\n\ntype BoundGetDateProps = (dateInfo: DateInfo, event: React.MouseEvent) => void;\n\ntype GetDateProps = {\n onClick?: React.MouseEventHandler;\n dateObj: DateInfo;\n};\n\ntype GetDatePropsResult = {\n onClick: React.MouseEventHandler;\n disabled: boolean;\n \"aria-pressed\": boolean;\n role: \"button\";\n};\n\nfunction getDateProps(\n onDateSelected: BoundGetDateProps,\n { onClick, dateObj }: GetDateProps,\n): GetDatePropsResult {\n return {\n onClick: composeEventHandlers(onClick, (event) => {\n onDateSelected(dateObj, event);\n }),\n disabled: !dateObj.selectable,\n \"aria-pressed\": dateObj.selected,\n role: \"button\",\n };\n}\n\ntype BoundGetBackProps = {\n handleOffsetChanged: (newOffset: number) => void;\n offsetMonth: number;\n minDate?: Date;\n};\n\ntype GetBackProps = {\n onClick?: React.MouseEventHandler;\n offset?: number;\n calendars: CalendarMonth[];\n};\n\ntype GetBackPropsResult = {\n onClick: React.MouseEventHandler;\n disabled: boolean;\n \"aria-label\": string;\n title: string;\n};\n\nfunction getBackProps(\n { minDate, offsetMonth, handleOffsetChanged }: BoundGetBackProps,\n { onClick, offset = 1, calendars }: GetBackProps,\n): GetBackPropsResult {\n const label = `Gå tilbake ${offset} måned${offset === 1 ? \"\" : \"er\"}`;\n return {\n onClick: composeEventHandlers(onClick, () => {\n handleOffsetChanged(\n offsetMonth - subtractMonth({ calendars, offset, minDate }),\n );\n }),\n disabled: isBackDisabled({ calendars, minDate }),\n \"aria-label\": label,\n title: label,\n };\n}\n\ntype BoundGetForwardProps = {\n handleOffsetChanged: (newOffset: number) => void;\n offsetMonth: number;\n maxDate?: Date;\n};\n\ntype GetForwardProps = {\n onClick?: React.MouseEventHandler;\n offset?: number;\n calendars: CalendarMonth[];\n};\n\ntype GetForwardPropsResult = {\n onClick: React.MouseEventHandler;\n disabled: boolean;\n \"aria-label\": string;\n title: string;\n};\n\nfunction getForwardProps(\n { maxDate, offsetMonth, handleOffsetChanged }: BoundGetForwardProps,\n { onClick, offset = 1, calendars }: GetForwardProps,\n): GetForwardPropsResult {\n const label = `Gå frem ${offset} måned${offset === 1 ? \"\" : \"er\"}`;\n return {\n onClick: composeEventHandlers(onClick, () => {\n handleOffsetChanged(\n offsetMonth + addMonth({ calendars, offset, maxDate }),\n );\n }),\n disabled: isForwardDisabled({ calendars, maxDate }),\n \"aria-label\": label,\n title: label,\n };\n}\n\nexport interface UseCalendarProps {\n date?: Date;\n maxDate?: Date;\n minDate?: Date;\n monthsToDisplay?: number;\n firstDayOfWeek?: number;\n showOutsideDays?: boolean;\n offset: number;\n onDateSelected: (dateObj: DateInfo, event: React.MouseEvent) => void;\n onOffsetChanged: (newOffset: number) => void;\n selected?: Date | Date[];\n}\n\nexport type GetDatePropsFunc = (props: GetDateProps) => GetDatePropsResult;\nexport type GetBackPropsFunc = (props: GetBackProps) => GetBackPropsResult;\nexport type GetForwardPropsFunc = (\n props: GetForwardProps,\n) => GetForwardPropsResult;\nexport type HandleOffsetFunc = (newOffset: number) => void;\n\nexport type UseCalendarResult = {\n calendars: CalendarMonth[];\n getDateProps: GetDatePropsFunc;\n getBackProps: GetBackPropsFunc;\n getForwardProps: GetForwardPropsFunc;\n handleOffsetChanged: HandleOffsetFunc;\n};\n\nexport function useCalendar({\n date = startOfDay(new Date()),\n maxDate,\n minDate,\n monthsToDisplay = 1,\n firstDayOfWeek = 0,\n showOutsideDays = true,\n offset,\n onDateSelected,\n onOffsetChanged,\n selected,\n}: UseCalendarProps): UseCalendarResult {\n const [stateOffset, setStateOffset] = useState(0);\n const offsetMonth = getOffset(offset, stateOffset);\n\n function handleOffsetChanged(newOffset: number) {\n if (!isOffsetControlled(offset)) {\n setStateOffset(newOffset);\n }\n onOffsetChanged(newOffset);\n }\n\n const calendars = getCalendars({\n date,\n selected,\n monthsToDisplay,\n minDate,\n maxDate,\n offset: offsetMonth,\n firstDayOfWeek,\n showOutsideDays,\n });\n return {\n calendars,\n getDateProps: getDateProps.bind(null, onDateSelected),\n getBackProps: getBackProps.bind(null, {\n minDate,\n offsetMonth,\n handleOffsetChanged,\n }),\n getForwardProps: getForwardProps.bind(null, {\n maxDate,\n offsetMonth,\n handleOffsetChanged,\n }),\n handleOffsetChanged,\n };\n}\n"],"names":["isOffsetControlled","propOffset","getDateProps","onDateSelected","onClick","dateObj","composeEventHandlers","event","disabled","selectable","selected","role","getBackProps","minDate","offsetMonth","handleOffsetChanged","offset","calendars","label","subtractMonth","isBackDisabled","title","getForwardProps","maxDate","addMonth","isForwardDisabled","useCalendar","date","startOfDay","Date","monthsToDisplay","firstDayOfWeek","showOutsideDays","onOffsetChanged","stateOffset","setStateOffset","useState","prop","state","getOffset","newOffset","getCalendars","bind"],"mappings":"uNAoCA,SAASA,EAAmBC,GACxB,YAAsB,IAAfA,CACX,CAoBA,SAASC,EACLC,GACEC,QAAAA,EAASC,QAAAA,IAEJ,MAAA,CACHD,QAASE,EAAqBF,GAAUG,IACpCJ,EAAeE,EAASE,EAAK,IAEjCC,UAAWH,EAAQI,WACnB,eAAgBJ,EAAQK,SACxBC,KAAM,SAEd,CAqBA,SAASC,GACHC,QAAAA,EAASC,YAAAA,EAAaC,oBAAAA,IACtBX,QAAAA,EAASY,OAAAA,EAAS,EAAGC,UAAAA,IAEvB,MAAMC,EAAQ,cAAcF,UAA0B,IAAXA,EAAe,GAAK,OACxD,MAAA,CACHZ,QAASE,EAAqBF,GAAS,KACnCW,EACID,EAAcK,EAAc,CAAEF,UAAAA,EAAWD,OAAAA,EAAQH,QAAAA,IAAS,IAGlEL,SAAUY,EAAe,CAAEH,UAAAA,EAAWJ,QAAAA,IACtC,aAAcK,EACdG,MAAOH,EAEf,CAqBA,SAASI,GACHC,QAAAA,EAAST,YAAAA,EAAaC,oBAAAA,IACtBX,QAAAA,EAASY,OAAAA,EAAS,EAAGC,UAAAA,IAEvB,MAAMC,EAAQ,WAAWF,UAA0B,IAAXA,EAAe,GAAK,OACrD,MAAA,CACHZ,QAASE,EAAqBF,GAAS,KACnCW,EACID,EAAcU,EAAS,CAAEP,UAAAA,EAAWD,OAAAA,EAAQO,QAAAA,IAAS,IAG7Df,SAAUiB,EAAkB,CAAER,UAAAA,EAAWM,QAAAA,IACzC,aAAcL,EACdG,MAAOH,EAEf,CA8BO,SAASQ,GACZC,KAAAA,EAAOC,EAAe,IAAAC,MACtBN,QAAAA,EACAV,QAAAA,EACAiB,gBAAAA,EAAkB,EAClBC,eAAAA,EAAiB,EACjBC,gBAAAA,GAAkB,EAClBhB,OAAAA,EACAb,eAAAA,EACA8B,gBAAAA,EACAvB,SAAAA,IAEM,MAACwB,EAAaC,GAAkBC,EAAS,GACzCtB,EAjJV,SAAmBuB,EAAcC,GACtBtC,OAAAA,EAAmBqC,GAAQA,EAAOC,CAC7C,CA+IwBC,CAAUvB,EAAQkB,GAEtC,SAASnB,EAAoByB,GACpBxC,EAAmBgB,IACpBmB,EAAeK,GAEnBP,EAAgBO,EACpB,CAYO,MAAA,CACHvB,UAXcwB,EAAa,CAC3Bd,KAAAA,EACAjB,SAAAA,EACAoB,gBAAAA,EACAjB,QAAAA,EACAU,QAAAA,EACAP,OAAQF,EACRiB,eAAAA,EACAC,gBAAAA,IAIA9B,aAAcA,EAAawC,KAAK,KAAMvC,GACtCS,aAAcA,EAAa8B,KAAK,KAAM,CAClC7B,QAAAA,EACAC,YAAAA,EACAC,oBAAAA,IAEJO,gBAAiBA,EAAgBoB,KAAK,KAAM,CACxCnB,QAAAA,EACAT,YAAAA,EACAC,oBAAAA,IAEJA,oBAAAA,EAER"}
@@ -1,2 +1,2 @@
1
- import{differenceInCalendarMonths as t,addDays as e,isBefore as n,startOfDay as a,isToday as s}from"date-fns";import{parseDateString as o}from"../utils.js";function r(...t){return e=>t.some((t=>(t&&t(e),e.defaultPrevented)))}function l({calendars:e,offset:n,minDate:a}){if(n>1&&a){const{firstDayOfMonth:s}=e[0],o=t(s,a);o<n&&(n=o)}return n}const i=3;function u(t,e,n,a){if(e&&e.getFullYear()>t)return[e.getFullYear().toString()];if(n&&n.getFullYear()<t)return[n.getFullYear().toString()];let s,o,r=!1;"all"===a?(r=!0,s=3,o=3):(s="number"==typeof a?a:a.previous,o="number"==typeof a?a:a.coming);let l=t-s;if(e){const t=r?e.getFullYear():l;l=Math.max(e.getFullYear(),t)}let i=t+o;if(n){const t=r?n.getFullYear():i;i=Math.min(n.getFullYear(),t)}const u=Math.max(i-l+1,1);return[...Array(u).keys()].map((t=>t+l)).map((t=>t.toString()))}function f(t,e,n,a){const s=(null==n?void 0:n.getFullYear())||t,o=void 0===(null==n?void 0:n.getMonth())?0:n.getMonth(),r=(null==a?void 0:a.getFullYear())||t,l=void 0===(null==a?void 0:a.getMonth())?11:a.getMonth();let i=0,u=11;return s===t&&(i=o),r===t&&(u=l),e.map(((t,e)=>({value:e.toString(),label:t}))).filter((({value:t})=>parseInt(t)>=i&&parseInt(t)<=u))}function c({calendars:e,offset:n,maxDate:a}){if(n>1&&a){const{lastDayOfMonth:s}=e[e.length-1],o=t(a,s);o<n&&(n=o)}return n}function D({calendars:t,minDate:a}){if(!a)return!1;const{firstDayOfMonth:s}=t[0],o=e(s,-1);return!!n(o,a)}function h({calendars:t,maxDate:a}){if(!a)return!1;const{lastDayOfMonth:s}=t[t.length-1],o=e(s,1);return!!n(a,o)}function d({date:t,selected:e,monthsToDisplay:s,offset:o,minDate:r,maxDate:l,firstDayOfWeek:i,showOutsideDays:u}){const f=[],c=function(t,e,s){let o=a(t);if(e){const t=a(e);n(o,t)&&(o=t)}if(s){const t=a(s);n(t,o)&&(o=t)}return o}(t,r,l);for(let t=0;t<s;t++){const n=g({month:c.getMonth()+t+o,year:c.getFullYear(),selectedDates:e,minDate:r,maxDate:l,firstDayOfWeek:i,showOutsideDays:u});f.push(n)}return f}function g({month:t,year:n,selectedDates:a,minDate:o,maxDate:r,firstDayOfWeek:l,showOutsideDays:i}){const u=function(t,e){const n=new Date(e,t,1);return t=n.getMonth(),e=n.getFullYear(),{daysInMonth:32-new Date(e,t,32).getDate(),month:t,year:e}}(t,n),f=u.daysInMonth;t=u.month,n=u.year;const c=[];for(let e=1;e<=f;e++){const l=new Date(n,t,e),i={date:l,selected:y(a,l),selectable:m(o,r,l),today:s(l),prevMonth:!1,nextMonth:!1};c.push(i)}const D=new Date(n,t,1),h=new Date(n,t,f),d=function({firstDayOfMonth:t,minDate:n,maxDate:a,selectedDates:s,firstDayOfWeek:o,showOutsideDays:r}){const l=[];let i=(t.getDay()+7-o)%7;if(r){const o=e(t,-1),r=o.getDate(),u=o.getMonth(),f=o.getFullYear();let c=0;for(;c<i;){const t=new Date(f,u,r-c),e={date:t,selected:y(s,t),selectable:m(n,a,t),today:!1,prevMonth:!0,nextMonth:!1};l.unshift(e),c++}}else for(;i>0;)l.unshift(""),i--;return l}({firstDayOfMonth:D,minDate:o,maxDate:r,selectedDates:a,firstDayOfWeek:l,showOutsideDays:i}),g=function({lastDayOfMonth:t,minDate:n,maxDate:a,selectedDates:s,firstDayOfWeek:o,showOutsideDays:r}){const l=[];let i=(t.getDay()+7-o)%7;if(r){const o=e(t,1),r=o.getMonth(),u=o.getFullYear();let f=0;for(;f<6-i;){const t=new Date(u,r,1+f),e={date:t,selected:y(s,t),selectable:m(n,a,t),today:!1,prevMonth:!1,nextMonth:!0};l.push(e),f++}}else for(;i<6;)l.push(""),i++;return l}({lastDayOfMonth:h,minDate:o,maxDate:r,selectedDates:a,firstDayOfWeek:l,showOutsideDays:i});c.unshift(...d),c.push(...g);const M=function(t){const e=Math.ceil(t.length/7),n=[];for(let a=0;a<e;a++){n[a]=[];for(let e=0;e<7;e++)n[a].push(t[7*a+e])}return n}(c);return{firstDayOfMonth:D,lastDayOfMonth:h,month:t,year:n,weeks:M}}function y(t,e){return!!t&&(t=Array.isArray(t)?t:[t]).some((t=>t instanceof Date&&a(t).getTime()===a(e).getTime()))}function m(t,e,a){return!(t&&n(a,t)||e&&n(e,a))}function M(t,e){return t.getDate()===e.getDate()&&t.getMonth()===e.getMonth()&&t.getFullYear()===e.getFullYear()}function O(t,e){return!t||!M(t,e)}function p(t,e,n){return!!(n&&t>n||e&&t<e)}function w(t,e,n,a){const s=o(t),r=o(e);return s?p(s,n,a)?null:s:r?p(r,n,a)?null:r:null}function F(t,e,n,a){let s=t||e||new Date;return n&&(s=n>s?n:s),a&&(s=a<s?a:s),s}export{i as DEFAULT_YEARS_TO_SHOW,c as addMonth,r as composeEventHandlers,O as dateHasChanged,p as dateIsOutsideRange,d as getCalendars,w as getInitialDate,F as getInitialDateShown,f as getMonthSelectOptions,u as getYearSelectOptions,D as isBackDisabled,h as isForwardDisabled,M as isSameDay,l as subtractMonth};
1
+ import{differenceInCalendarMonths as t,addDays as e,isBefore as n,startOfDay as a,isToday as s}from"date-fns";import"react";import{parseDateString as o}from"../utils.js";function r(...t){return e=>t.some((t=>(null==t||t(e),e.defaultPrevented)))}function l({calendars:e,offset:n,minDate:a}){if(n>1&&a){const{firstDayOfMonth:s}=e[0],o=t(s,a);o<n&&(n=o)}return n}const i=3;function u(t,e,n,a){if(e&&e.getFullYear()>t)return[e.getFullYear().toString()];if(n&&n.getFullYear()<t)return[n.getFullYear().toString()];let s,o,r=!1;"all"===a?(r=!0,s=3,o=3):(s="number"==typeof a?a:a.previous,o="number"==typeof a?a:a.coming);let l=t-s;if(e){const t=r?e.getFullYear():l;l=Math.max(e.getFullYear(),t)}let i=t+o;if(n){const t=r?n.getFullYear():i;i=Math.min(n.getFullYear(),t)}const u=Math.max(i-l+1,1);return[...Array(u).keys()].map((t=>t+l)).map((t=>t.toString()))}function f(t,e,n,a){const s=(null==n?void 0:n.getFullYear())||t,o=void 0===(null==n?void 0:n.getMonth())?0:n.getMonth(),r=(null==a?void 0:a.getFullYear())||t,l=void 0===(null==a?void 0:a.getMonth())?11:a.getMonth();let i=0,u=11;return s===t&&(i=o),r===t&&(u=l),e.map(((t,e)=>({value:e.toString(),label:t}))).filter((({value:t})=>Number.parseInt(t)>=i&&Number.parseInt(t)<=u))}function c({calendars:e,offset:n,maxDate:a}){if(n>1&&a){const{lastDayOfMonth:s}=e[e.length-1],o=t(a,s);o<n&&(n=o)}return n}function D({calendars:t,minDate:a}){if(!a)return!1;const{firstDayOfMonth:s}=t[0],o=e(s,-1);return!!n(o,a)}function h({calendars:t,maxDate:a}){if(!a)return!1;const{lastDayOfMonth:s}=t[t.length-1],o=e(s,1);return!!n(a,o)}function d({date:t,selected:e,monthsToDisplay:s,offset:o,minDate:r,maxDate:l,firstDayOfWeek:i,showOutsideDays:u}){const f=[],c=function(t,e,s){let o=a(t);if(e){const t=a(e);n(o,t)&&(o=t)}if(s){const t=a(s);n(t,o)&&(o=t)}return o}(t,r,l);for(let t=0;t<s;t++){const n=g({month:c.getMonth()+t+o,year:c.getFullYear(),selectedDates:e,minDate:r,maxDate:l,firstDayOfWeek:i,showOutsideDays:u});f.push(n)}return f}function g({month:t,year:n,selectedDates:a,minDate:o,maxDate:r,firstDayOfWeek:l,showOutsideDays:i}){const u=function(t,e){const n=new Date(e,t,1),a=n.getMonth(),s=n.getFullYear();return{daysInMonth:32-new Date(s,a,32).getDate(),month:a,year:s}}(t,n),f=u.daysInMonth;t=u.month,n=u.year;const c=[];for(let e=1;e<=f;e++){const l=new Date(n,t,e),i={date:l,selected:y(a,l),selectable:m(o,r,l),today:s(l),prevMonth:!1,nextMonth:!1};c.push(i)}const D=new Date(n,t,1),h=new Date(n,t,f),d=function({firstDayOfMonth:t,minDate:n,maxDate:a,selectedDates:s,firstDayOfWeek:o,showOutsideDays:r}){const l=[];let i=(t.getDay()+7-o)%7;if(r){const o=e(t,-1),r=o.getDate(),u=o.getMonth(),f=o.getFullYear();let c=0;for(;c<i;){const t=new Date(f,u,r-c),e={date:t,selected:y(s,t),selectable:m(n,a,t),today:!1,prevMonth:!0,nextMonth:!1};l.unshift(e),c++}}else for(;i>0;)l.unshift(""),i--;return l}({firstDayOfMonth:D,minDate:o,maxDate:r,selectedDates:a,firstDayOfWeek:l,showOutsideDays:i}),g=function({lastDayOfMonth:t,minDate:n,maxDate:a,selectedDates:s,firstDayOfWeek:o,showOutsideDays:r}){const l=[];let i=(t.getDay()+7-o)%7;if(r){const o=e(t,1),r=o.getMonth(),u=o.getFullYear();let f=0;for(;f<6-i;){const t=new Date(u,r,1+f),e={date:t,selected:y(s,t),selectable:m(n,a,t),today:!1,prevMonth:!1,nextMonth:!0};l.push(e),f++}}else for(;i<6;)l.push(""),i++;return l}({lastDayOfMonth:h,minDate:o,maxDate:r,selectedDates:a,firstDayOfWeek:l,showOutsideDays:i});c.unshift(...d),c.push(...g);const M=function(t){const e=Math.ceil(t.length/7),n=[];for(let a=0;a<e;a++){n[a]=[];for(let e=0;e<7;e++)n[a].push(t[7*a+e])}return n}(c);return{firstDayOfMonth:D,lastDayOfMonth:h,month:t,year:n,weeks:M}}function y(t,e){return!!t&&(Array.isArray(t)?t:[t]).some((t=>t instanceof Date&&a(t).getTime()===a(e).getTime()))}function m(t,e,a){return!(t&&n(a,t)||e&&n(e,a))}function M(t,e){return t.getDate()===e.getDate()&&t.getMonth()===e.getMonth()&&t.getFullYear()===e.getFullYear()}function O(t,e){return!t||!M(t,e)}function p(t,e,n){return!!(n&&t>n||e&&t<e)}function w(t,e,n,a){const s=o(t),r=o(e);return s?p(s,n,a)?null:s:r?p(r,n,a)?null:r:null}function F(t,e,n,a){let s=t||e||new Date;return n&&(s=n>s?n:s),a&&(s=a<s?a:s),s}export{i as DEFAULT_YEARS_TO_SHOW,c as addMonth,r as composeEventHandlers,O as dateHasChanged,p as dateIsOutsideRange,d as getCalendars,w as getInitialDate,F as getInitialDateShown,f as getMonthSelectOptions,u as getYearSelectOptions,D as isBackDisabled,h as isForwardDisabled,M as isSameDay,l as subtractMonth};
2
2
  //# sourceMappingURL=utils.js.map