@fremtind/jokul 0.64.1 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (740) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/ScreenReaderOnly.cjs.map +1 -1
  3. package/build/cjs/components/accordion/Accordion.cjs.map +1 -1
  4. package/build/cjs/components/accordion/AccordionItem.cjs.map +1 -1
  5. package/build/cjs/components/autosuggest/Autosuggest.cjs.map +1 -1
  6. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs.map +1 -1
  7. package/build/cjs/components/autosuggest/ControllerButton.cjs +1 -1
  8. package/build/cjs/components/autosuggest/ControllerButton.cjs.map +1 -1
  9. package/build/cjs/components/autosuggest/Menu.cjs +1 -1
  10. package/build/cjs/components/autosuggest/Menu.cjs.map +1 -1
  11. package/build/cjs/components/breadcrumb/Breadcrumb.cjs.map +1 -1
  12. package/build/cjs/components/breadcrumb/BreadcrumbItem.cjs.map +1 -1
  13. package/build/cjs/components/button/Button.cjs +1 -1
  14. package/build/cjs/components/button/Button.cjs.map +1 -1
  15. package/build/cjs/components/button/types.cjs.map +1 -1
  16. package/build/cjs/components/card/Card.cjs.map +1 -1
  17. package/build/cjs/components/card/CardImage.cjs.map +1 -1
  18. package/build/cjs/components/card/InfoCard.cjs.map +1 -1
  19. package/build/cjs/components/card/NavCard.cjs.map +1 -1
  20. package/build/cjs/components/card/TaskCard.cjs.map +1 -1
  21. package/build/cjs/components/card/development/examples/FakturainfoExample.d.cts +1 -1
  22. package/build/cjs/components/card/development/examples/InfoCardExample.d.cts +1 -1
  23. package/build/cjs/components/card/development/examples/NavCardExample.d.cts +1 -1
  24. package/build/cjs/components/card/development/examples/StatuskortExample.d.cts +1 -1
  25. package/build/cjs/components/card/development/examples/TaskCardExample.d.cts +1 -1
  26. package/build/cjs/components/card/development/examples/TopExample.d.cts +1 -1
  27. package/build/cjs/components/card/types.cjs.map +1 -1
  28. package/build/cjs/components/card/utils.cjs.map +1 -1
  29. package/build/cjs/components/checkbox/Checkbox.cjs.map +1 -1
  30. package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs +1 -1
  31. package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs.map +1 -1
  32. package/build/cjs/components/chip/Chip.cjs.map +1 -1
  33. package/build/cjs/components/combobox/Combobox.cjs +1 -1
  34. package/build/cjs/components/combobox/Combobox.cjs.map +1 -1
  35. package/build/cjs/components/combobox/stories/Combobox.stories.cjs.map +1 -1
  36. package/build/cjs/components/cookie-consent/CookieConsent.cjs +1 -1
  37. package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
  38. package/build/cjs/components/cookie-consent/CookieConsentContext.cjs.map +1 -1
  39. package/build/cjs/components/cookie-consent/RequirementCheckbox.cjs.map +1 -1
  40. package/build/cjs/components/cookie-consent/cookieConsentUtils.cjs +1 -1
  41. package/build/cjs/components/cookie-consent/cookieConsentUtils.cjs.map +1 -1
  42. package/build/cjs/components/cookie-consent/stories/CookieConsent.stories.cjs.map +1 -1
  43. package/build/cjs/components/countdown/Countdown.cjs +1 -1
  44. package/build/cjs/components/countdown/Countdown.cjs.map +1 -1
  45. package/build/cjs/components/countdown/stories/Countdown.stories.cjs.map +1 -1
  46. package/build/cjs/components/datepicker/DatePicker.cjs +1 -1
  47. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  48. package/build/cjs/components/datepicker/index.d.cts +1 -1
  49. package/build/cjs/components/datepicker/internal/Calendar.cjs +1 -1
  50. package/build/cjs/components/datepicker/internal/Calendar.cjs.map +1 -1
  51. package/build/cjs/components/datepicker/internal/calendarReducer.cjs.map +1 -1
  52. package/build/cjs/components/datepicker/internal/useCalendar.cjs.map +1 -1
  53. package/build/cjs/components/datepicker/internal/useCalendar.d.cts +1 -1
  54. package/build/cjs/components/datepicker/internal/utils.cjs +1 -1
  55. package/build/cjs/components/datepicker/internal/utils.cjs.map +1 -1
  56. package/build/cjs/components/datepicker/utils.cjs +1 -1
  57. package/build/cjs/components/datepicker/utils.cjs.map +1 -1
  58. package/build/cjs/components/datepicker/validation.cjs.map +1 -1
  59. package/build/cjs/components/description-list/DescriptionList.cjs.map +1 -1
  60. package/build/cjs/components/description-list/stories/DescriptionList.stories.cjs.map +1 -1
  61. package/build/cjs/components/expander/ExpandablePanel.cjs +1 -1
  62. package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
  63. package/build/cjs/components/expander/ExpandablePanelContent.cjs.map +1 -1
  64. package/build/cjs/components/expander/Expander.cjs +1 -1
  65. package/build/cjs/components/expander/Expander.cjs.map +1 -1
  66. package/build/cjs/components/expander/context.cjs.map +1 -1
  67. package/build/cjs/components/expander/deprecated/ExpandSection.cjs.map +1 -1
  68. package/build/cjs/components/expander/deprecated/Expander.cjs +1 -1
  69. package/build/cjs/components/expander/deprecated/Expander.cjs.map +1 -1
  70. package/build/cjs/components/expander/index.d.cts +1 -1
  71. package/build/cjs/components/expander/stories/Expander.stories.cjs.map +1 -1
  72. package/build/cjs/components/expander/stories/ExpanderPanel.stories.cjs.map +1 -1
  73. package/build/cjs/components/feedback/Feedback.cjs.map +1 -1
  74. package/build/cjs/components/feedback/FeedbackSuccess.cjs.map +1 -1
  75. package/build/cjs/components/feedback/FeedbackValues.cjs.map +1 -1
  76. package/build/cjs/components/feedback/feedbackContext.cjs.map +1 -1
  77. package/build/cjs/components/feedback/followup/Followup.cjs +1 -1
  78. package/build/cjs/components/feedback/followup/Followup.cjs.map +1 -1
  79. package/build/cjs/components/feedback/followup/followupContext.cjs.map +1 -1
  80. package/build/cjs/components/feedback/followup/useFollowup.cjs.map +1 -1
  81. package/build/cjs/components/feedback/index.d.cts +1 -1
  82. package/build/cjs/components/feedback/main-question/MainQuestion.cjs +1 -1
  83. package/build/cjs/components/feedback/main-question/MainQuestion.cjs.map +1 -1
  84. package/build/cjs/components/feedback/main-question/mainQuestionContext.cjs.map +1 -1
  85. package/build/cjs/components/feedback/main-question/useMainQuestion.cjs.map +1 -1
  86. package/build/cjs/components/feedback/main-question/useMainQuestion.d.cts +2 -2
  87. package/build/cjs/components/feedback/presets.cjs.map +1 -1
  88. package/build/cjs/components/feedback/questions/AddonQuestion.cjs.map +1 -1
  89. package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs +1 -1
  90. package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs.map +1 -1
  91. package/build/cjs/components/feedback/questions/ContactQuestion.cjs +1 -1
  92. package/build/cjs/components/feedback/questions/ContactQuestion.cjs.map +1 -1
  93. package/build/cjs/components/feedback/questions/RadioQuestion.cjs +1 -1
  94. package/build/cjs/components/feedback/questions/RadioQuestion.cjs.map +1 -1
  95. package/build/cjs/components/feedback/questions/SmileyQuestion.cjs.map +1 -1
  96. package/build/cjs/components/feedback/questions/TextQuestion.cjs +1 -1
  97. package/build/cjs/components/feedback/questions/TextQuestion.cjs.map +1 -1
  98. package/build/cjs/components/feedback/questions/smileyUtils.cjs.map +1 -1
  99. package/build/cjs/components/feedback/utils.cjs.map +1 -1
  100. package/build/cjs/components/file-input/File.cjs +1 -1
  101. package/build/cjs/components/file-input/File.cjs.map +1 -1
  102. package/build/cjs/components/file-input/FileInput.cjs +1 -1
  103. package/build/cjs/components/file-input/FileInput.cjs.map +1 -1
  104. package/build/cjs/components/file-input/internal/Dropzone.cjs.map +1 -1
  105. package/build/cjs/components/file-input/internal/Input.cjs +1 -1
  106. package/build/cjs/components/file-input/internal/Input.cjs.map +1 -1
  107. package/build/cjs/components/file-input/internal/MaxSize.cjs.map +1 -1
  108. package/build/cjs/components/file-input/internal/Thumbnail.cjs.map +1 -1
  109. package/build/cjs/components/file-input/internal/fileInputContext.cjs.map +1 -1
  110. package/build/cjs/components/file-input/internal/validateFile.cjs.map +1 -1
  111. package/build/cjs/components/file-input/utils.cjs +1 -1
  112. package/build/cjs/components/file-input/utils.cjs.map +1 -1
  113. package/build/cjs/components/flex/Flex.cjs.map +1 -1
  114. package/build/cjs/components/flex/stories/Flex.stories.cjs.map +1 -1
  115. package/build/cjs/components/icon/Icon.cjs.map +1 -1
  116. package/build/cjs/components/icon/icons/ArrowDownIcon.cjs.map +1 -1
  117. package/build/cjs/components/icon/icons/ArrowLeftIcon.cjs.map +1 -1
  118. package/build/cjs/components/icon/icons/ArrowNorthEastIcon.cjs.map +1 -1
  119. package/build/cjs/components/icon/icons/ArrowRightIcon.cjs.map +1 -1
  120. package/build/cjs/components/icon/icons/ArrowUpIcon.cjs.map +1 -1
  121. package/build/cjs/components/icon/icons/CalendarIcon.cjs.map +1 -1
  122. package/build/cjs/components/icon/icons/CheckIcon.cjs.map +1 -1
  123. package/build/cjs/components/icon/icons/ChevronDownIcon.cjs.map +1 -1
  124. package/build/cjs/components/icon/icons/ChevronLeftIcon.cjs.map +1 -1
  125. package/build/cjs/components/icon/icons/ChevronRightIcon.cjs.map +1 -1
  126. package/build/cjs/components/icon/icons/ChevronUpIcon.cjs.map +1 -1
  127. package/build/cjs/components/icon/icons/CloseIcon.cjs.map +1 -1
  128. package/build/cjs/components/icon/icons/CopyIcon.cjs.map +1 -1
  129. package/build/cjs/components/icon/icons/DotsIcon.cjs.map +1 -1
  130. package/build/cjs/components/icon/icons/DragIcon.cjs.map +1 -1
  131. package/build/cjs/components/icon/icons/ErrorIcon.cjs.map +1 -1
  132. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs.map +1 -1
  133. package/build/cjs/components/icon/icons/HamburgerIcon.cjs.map +1 -1
  134. package/build/cjs/components/icon/icons/InfoIcon.cjs.map +1 -1
  135. package/build/cjs/components/icon/icons/LinkIcon.cjs.map +1 -1
  136. package/build/cjs/components/icon/icons/MinusIcon.cjs.map +1 -1
  137. package/build/cjs/components/icon/icons/OpenInNewIcon.cjs.map +1 -1
  138. package/build/cjs/components/icon/icons/PenIcon.cjs.map +1 -1
  139. package/build/cjs/components/icon/icons/PlusIcon.cjs.map +1 -1
  140. package/build/cjs/components/icon/icons/QuestionIcon.cjs.map +1 -1
  141. package/build/cjs/components/icon/icons/RedCrossIcon.cjs.map +1 -1
  142. package/build/cjs/components/icon/icons/SearchIcon.cjs.map +1 -1
  143. package/build/cjs/components/icon/icons/SuccessIcon.cjs.map +1 -1
  144. package/build/cjs/components/icon/icons/ThumbDownIcon.cjs.map +1 -1
  145. package/build/cjs/components/icon/icons/ThumbUpIcon.cjs.map +1 -1
  146. package/build/cjs/components/icon/icons/TrashCanIcon.cjs.map +1 -1
  147. package/build/cjs/components/icon/icons/WarningIcon.cjs.map +1 -1
  148. package/build/cjs/components/icon/icons/animated/ArrowHorizontalAnimated.cjs.map +1 -1
  149. package/build/cjs/components/icon/icons/animated/ArrowVerticalAnimated.cjs.map +1 -1
  150. package/build/cjs/components/icon/icons/animated/PlusRemoveAnimated.cjs.map +1 -1
  151. package/build/cjs/components/icon/stories/Icons.stories.cjs.map +1 -1
  152. package/build/cjs/components/icon/stories/internal/AnimatedIcon.cjs +2 -0
  153. package/build/cjs/components/icon/stories/internal/AnimatedIcon.cjs.map +1 -0
  154. package/build/cjs/components/icon/stories/internal/IconExample.cjs +2 -0
  155. package/build/cjs/components/icon/stories/internal/IconExample.cjs.map +1 -0
  156. package/build/cjs/components/icon/stories/internal/IconsExampleGrid.cjs +2 -0
  157. package/build/cjs/components/icon/stories/internal/IconsExampleGrid.cjs.map +1 -0
  158. package/build/cjs/components/icon-button/IconButton.cjs.map +1 -1
  159. package/build/cjs/components/icon-button/stories/IconButton.stories.cjs.map +1 -1
  160. package/build/cjs/components/image/Image.cjs.map +1 -1
  161. package/build/cjs/components/image/stories/Image.stories.cjs.map +1 -1
  162. package/build/cjs/components/image/useImageLoadingStatus.cjs.map +1 -1
  163. package/build/cjs/components/input-group/FieldGroup.cjs.map +1 -1
  164. package/build/cjs/components/input-group/InputGroup.cjs.map +1 -1
  165. package/build/cjs/components/input-group/Label.cjs.map +1 -1
  166. package/build/cjs/components/input-group/SupportLabel.cjs.map +1 -1
  167. package/build/cjs/components/input-group/stories/FieldGroup.stories.cjs.map +1 -1
  168. package/build/cjs/components/input-group/stories/InputGroup.stories.cjs.map +1 -1
  169. package/build/cjs/components/input-group/stories/Label.stories.cjs.map +1 -1
  170. package/build/cjs/components/input-group/stories/SupportLabel.stories.cjs.map +1 -1
  171. package/build/cjs/components/link/Link.cjs.map +1 -1
  172. package/build/cjs/components/link/stories/Link.stories.cjs.map +1 -1
  173. package/build/cjs/components/link-list/LinkList.cjs.map +1 -1
  174. package/build/cjs/components/link-list/index.d.cts +1 -1
  175. package/build/cjs/components/link-list/stories/LinkList.stories.cjs.map +1 -1
  176. package/build/cjs/components/list/List.cjs.map +1 -1
  177. package/build/cjs/components/list/ListItem.cjs.map +1 -1
  178. package/build/cjs/components/loader/Loader.cjs.map +1 -1
  179. package/build/cjs/components/loader/skeletons/SkeletonAnimation.cjs.map +1 -1
  180. package/build/cjs/components/loader/skeletons/SkeletonButton.cjs.map +1 -1
  181. package/build/cjs/components/loader/skeletons/SkeletonCheckboxGroup.cjs.map +1 -1
  182. package/build/cjs/components/loader/skeletons/SkeletonElement.cjs.map +1 -1
  183. package/build/cjs/components/loader/skeletons/SkeletonInput.cjs.map +1 -1
  184. package/build/cjs/components/loader/skeletons/SkeletonLabel.cjs.map +1 -1
  185. package/build/cjs/components/loader/skeletons/SkeletonRadioButtonGroup.cjs.map +1 -1
  186. package/build/cjs/components/loader/skeletons/SkeletonTable.cjs.map +1 -1
  187. package/build/cjs/components/loader/skeletons/SkeletonTextArea.cjs.map +1 -1
  188. package/build/cjs/components/loader/stories/Skeleton.stories.cjs.map +1 -1
  189. package/build/cjs/components/loader/useDelayedRender.cjs +1 -1
  190. package/build/cjs/components/loader/useDelayedRender.cjs.map +1 -1
  191. package/build/cjs/components/logo/Logo.cjs.map +1 -1
  192. package/build/cjs/components/logo/LogoStamp.cjs.map +1 -1
  193. package/build/cjs/components/logo/stories/Logo.stories.cjs.map +1 -1
  194. package/build/cjs/components/logo/stories/LogoStamp.stories.cjs.map +1 -1
  195. package/build/cjs/components/logo/text-paths/ForsikringLevertAvFremtind.cjs.map +1 -1
  196. package/build/cjs/components/logo/text-paths/FraSB1ogDNB.cjs.map +1 -1
  197. package/build/cjs/components/logo/text-paths/InnovasjonFraFremtind.cjs.map +1 -1
  198. package/build/cjs/components/logo/text-paths/TeknologiFraFremtind.cjs.map +1 -1
  199. package/build/cjs/components/logo/text-paths/VartEgetForsikringsselskap.cjs.map +1 -1
  200. package/build/cjs/components/logo/text-paths/VartForsikringsselskap.cjs.map +1 -1
  201. package/build/cjs/components/menu/Menu.cjs.map +1 -1
  202. package/build/cjs/components/menu/MenuItem.cjs.map +1 -1
  203. package/build/cjs/components/menu/MenuItemCheckbox.cjs.map +1 -1
  204. package/build/cjs/components/menu/stories/Menu.stories.cjs.map +1 -1
  205. package/build/cjs/components/menu/stories/MenuDivider.stories.cjs.map +1 -1
  206. package/build/cjs/components/menu/stories/MenuItem.stories.cjs.map +1 -1
  207. package/build/cjs/components/menu/stories/MenuItemCheckbox.stories.cjs.map +1 -1
  208. package/build/cjs/components/menu/types.d.cts +2 -2
  209. package/build/cjs/components/menu/useMenuWideEvents.cjs +1 -1
  210. package/build/cjs/components/menu/useMenuWideEvents.cjs.map +1 -1
  211. package/build/cjs/components/message/DismissButton.cjs.map +1 -1
  212. package/build/cjs/components/message/FormErrorMessage.cjs.map +1 -1
  213. package/build/cjs/components/message/Message.cjs +1 -1
  214. package/build/cjs/components/message/Message.cjs.map +1 -1
  215. package/build/cjs/components/message/stories/ErrorMessage.stories.cjs.map +1 -1
  216. package/build/cjs/components/message/stories/FormErrorMessage.stories.cjs.map +1 -1
  217. package/build/cjs/components/message/stories/InfoMessage.stories.cjs.map +1 -1
  218. package/build/cjs/components/message/stories/SuccessMessage.stories.cjs.map +1 -1
  219. package/build/cjs/components/message/stories/WarningMessage.stories.cjs.map +1 -1
  220. package/build/cjs/components/modal/Modal.cjs +1 -1
  221. package/build/cjs/components/modal/Modal.cjs.map +1 -1
  222. package/build/cjs/components/modal/stories/CompleteModal.stories.cjs.map +1 -1
  223. package/build/cjs/components/modal/stories/ModalCloseButton.stories.cjs +1 -1
  224. package/build/cjs/components/modal/stories/ModalCloseButton.stories.cjs.map +1 -1
  225. package/build/cjs/components/modal/stories/ModalOverlay.stories.cjs.map +1 -1
  226. package/build/cjs/components/modal/useModal.cjs.map +1 -1
  227. package/build/cjs/components/nav-link/NavLink.cjs.map +1 -1
  228. package/build/cjs/components/nav-link/stories/NavLink.stories.cjs.map +1 -1
  229. package/build/cjs/components/pagination/PageButton.cjs.map +1 -1
  230. package/build/cjs/components/pagination/Pagination.cjs +1 -1
  231. package/build/cjs/components/pagination/Pagination.cjs.map +1 -1
  232. package/build/cjs/components/pagination/stories/Pagination.stories.cjs.map +1 -1
  233. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  234. package/build/cjs/components/popover/stories/PopoverControlled.stories.cjs.map +1 -1
  235. package/build/cjs/components/popover/stories/PopoverUncontrolled.stories.cjs.map +1 -1
  236. package/build/cjs/components/popover/types.d.cts +1 -1
  237. package/build/cjs/components/progress-bar/ProgressBar.cjs +1 -1
  238. package/build/cjs/components/progress-bar/ProgressBar.cjs.map +1 -1
  239. package/build/cjs/components/progress-bar/stories/ProgressBar.stories.cjs.map +1 -1
  240. package/build/cjs/components/radio-button/BaseRadioButton.cjs.map +1 -1
  241. package/build/cjs/components/radio-button/RadioButton.cjs.map +1 -1
  242. package/build/cjs/components/radio-button/RadioButtonGroup.cjs.map +1 -1
  243. package/build/cjs/components/radio-button/radioGroupContext.cjs.map +1 -1
  244. package/build/cjs/components/radio-button/stories/BaseRadioButton.stories.cjs.map +1 -1
  245. package/build/cjs/components/radio-button/stories/RadioButton.stories.cjs.map +1 -1
  246. package/build/cjs/components/radio-button/stories/RadioButtonGroup.stories.cjs.map +1 -1
  247. package/build/cjs/components/radio-panel/RadioPanel.cjs.map +1 -1
  248. package/build/cjs/components/radio-panel/RadioPanelGroup.cjs.map +1 -1
  249. package/build/cjs/components/select/NativeSelect.cjs.map +1 -1
  250. package/build/cjs/components/select/Select.cjs +1 -1
  251. package/build/cjs/components/select/Select.cjs.map +1 -1
  252. package/build/cjs/components/select/stories/select.stories.cjs.map +1 -1
  253. package/build/cjs/components/summary-table/SummaryTable.cjs.map +1 -1
  254. package/build/cjs/components/summary-table/SummaryTableRow.cjs.map +1 -1
  255. package/build/cjs/components/summary-table/stories/summary-table.stories.cjs.map +1 -1
  256. package/build/cjs/components/system-message/SystemMessage.cjs +1 -1
  257. package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
  258. package/build/cjs/components/system-message/common/DismissButton.cjs.map +1 -1
  259. package/build/cjs/components/system-message/common/MessageIcon.cjs.map +1 -1
  260. package/build/cjs/components/table/DataTable.cjs.map +1 -1
  261. package/build/cjs/components/table/ExpandableTableRow.cjs +1 -1
  262. package/build/cjs/components/table/ExpandableTableRow.cjs.map +1 -1
  263. package/build/cjs/components/table/ExpandableTableRowController.cjs.map +1 -1
  264. package/build/cjs/components/table/Table.cjs.map +1 -1
  265. package/build/cjs/components/table/TableBody.cjs.map +1 -1
  266. package/build/cjs/components/table/TableCaption.cjs.map +1 -1
  267. package/build/cjs/components/table/TableCell.cjs.map +1 -1
  268. package/build/cjs/components/table/TableColumn.cjs.map +1 -1
  269. package/build/cjs/components/table/TableColumnGroup.cjs.map +1 -1
  270. package/build/cjs/components/table/TableFooter.cjs.map +1 -1
  271. package/build/cjs/components/table/TableHead.cjs.map +1 -1
  272. package/build/cjs/components/table/TableHeader.cjs.map +1 -1
  273. package/build/cjs/components/table/TablePagination.cjs +1 -1
  274. package/build/cjs/components/table/TablePagination.cjs.map +1 -1
  275. package/build/cjs/components/table/TableRow.cjs.map +1 -1
  276. package/build/cjs/components/table/tableContext.cjs.map +1 -1
  277. package/build/cjs/components/table/tableSectionContext.cjs.map +1 -1
  278. package/build/cjs/components/table/utils.cjs.map +1 -1
  279. package/build/cjs/components/tabs/NavTab.cjs.map +1 -1
  280. package/build/cjs/components/tabs/NavTabs.cjs.map +1 -1
  281. package/build/cjs/components/tabs/Tab.cjs.map +1 -1
  282. package/build/cjs/components/tabs/TabList.cjs.map +1 -1
  283. package/build/cjs/components/tabs/TabPanel.cjs.map +1 -1
  284. package/build/cjs/components/tabs/Tabs.cjs.map +1 -1
  285. package/build/cjs/components/tabs/stories/Tabs.stories.cjs.map +1 -1
  286. package/build/cjs/components/tabs/tabsContext.cjs.map +1 -1
  287. package/build/cjs/components/tabs/types.d.cts +1 -1
  288. package/build/cjs/components/tag/Tag.cjs.map +1 -1
  289. package/build/cjs/components/tag/index.d.cts +1 -1
  290. package/build/cjs/components/tag/stories/Tag.stories.cjs.map +1 -1
  291. package/build/cjs/components/text-area/BaseTextArea.cjs.map +1 -1
  292. package/build/cjs/components/text-area/TextArea.cjs.map +1 -1
  293. package/build/cjs/components/text-area/stories/TextArea.stories.cjs.map +1 -1
  294. package/build/cjs/components/text-input/BaseTextInput.cjs.map +1 -1
  295. package/build/cjs/components/text-input/TextInput.cjs.map +1 -1
  296. package/build/cjs/components/toast/Toast.cjs +1 -1
  297. package/build/cjs/components/toast/Toast.cjs.map +1 -1
  298. package/build/cjs/components/toast/ToastRegion.cjs +1 -1
  299. package/build/cjs/components/toast/ToastRegion.cjs.map +1 -1
  300. package/build/cjs/components/toast/index.d.cts +1 -1
  301. package/build/cjs/components/toast/toastContext.cjs.map +1 -1
  302. package/build/cjs/components/toggle-switch/ToggleSlider.cjs.map +1 -1
  303. package/build/cjs/components/toggle-switch/ToggleSwitch.cjs.map +1 -1
  304. package/build/cjs/components/toggle-switch/stories/ToggleSwitch.stories.cjs.map +1 -1
  305. package/build/cjs/components/toggle-switch/usePillStyles.cjs +1 -1
  306. package/build/cjs/components/toggle-switch/usePillStyles.cjs.map +1 -1
  307. package/build/cjs/components/tooltip/PopupTip.cjs.map +1 -1
  308. package/build/cjs/components/tooltip/Tooltip.cjs +1 -1
  309. package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
  310. package/build/cjs/components/tooltip/TooltipContent.cjs.map +1 -1
  311. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs +1 -1
  312. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs.map +1 -1
  313. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs +1 -1
  314. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs.map +1 -1
  315. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs +1 -1
  316. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs.map +1 -1
  317. package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs.map +1 -1
  318. package/build/cjs/hooks/useClickOutside/useClickOutside.cjs +1 -1
  319. package/build/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  320. package/build/cjs/hooks/useElementDimensions/useElementDimensions.cjs.map +1 -1
  321. package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs +1 -1
  322. package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs.map +1 -1
  323. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +1 -1
  324. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  325. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.d.cts +1 -1
  326. package/build/cjs/hooks/useKeyListener/useKeyListener.cjs +1 -1
  327. package/build/cjs/hooks/useKeyListener/useKeyListener.cjs.map +1 -1
  328. package/build/cjs/hooks/useListNavigation/useListNavigation.cjs +1 -1
  329. package/build/cjs/hooks/useListNavigation/useListNavigation.cjs.map +1 -1
  330. package/build/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  331. package/build/cjs/hooks/useProgressiveImg/useProgressiveImg.cjs.map +1 -1
  332. package/build/cjs/hooks/useScreen/index.d.cts +1 -1
  333. package/build/cjs/hooks/useScreen/useScreen.cjs +1 -1
  334. package/build/cjs/hooks/useScreen/useScreen.cjs.map +1 -1
  335. package/build/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
  336. package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.cjs.map +1 -1
  337. package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.d.cts +1 -1
  338. package/build/cjs/shared/input-panel/BasePanel.cjs.map +1 -1
  339. package/build/cjs/utilities/formatters/avstand/formatAvstand.cjs.map +1 -1
  340. package/build/cjs/utilities/formatters/bytes/formatBytes.cjs.map +1 -1
  341. package/build/cjs/utilities/formatters/util/parseNumber.cjs.map +1 -1
  342. package/build/cjs/utilities/formatters/valuta/formatValuta.cjs +1 -1
  343. package/build/cjs/utilities/formatters/valuta/formatValuta.cjs.map +1 -1
  344. package/build/cjs/utilities/getThemeAndDensity.cjs +1 -1
  345. package/build/cjs/utilities/getThemeAndDensity.cjs.map +1 -1
  346. package/build/cjs/utilities/polymorphism/mergeRefs.cjs +1 -1
  347. package/build/cjs/utilities/polymorphism/mergeRefs.cjs.map +1 -1
  348. package/build/cjs/utilities/tabListener.cjs +1 -1
  349. package/build/cjs/utilities/tabListener.cjs.map +1 -1
  350. package/build/es/components/ScreenReaderOnly.js.map +1 -1
  351. package/build/es/components/accordion/Accordion.js.map +1 -1
  352. package/build/es/components/accordion/AccordionItem.js.map +1 -1
  353. package/build/es/components/autosuggest/Autosuggest.js.map +1 -1
  354. package/build/es/components/autosuggest/BaseAutosuggest.js.map +1 -1
  355. package/build/es/components/autosuggest/ControllerButton.js +1 -1
  356. package/build/es/components/autosuggest/ControllerButton.js.map +1 -1
  357. package/build/es/components/autosuggest/Menu.js +1 -1
  358. package/build/es/components/autosuggest/Menu.js.map +1 -1
  359. package/build/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  360. package/build/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  361. package/build/es/components/button/Button.js +1 -1
  362. package/build/es/components/button/Button.js.map +1 -1
  363. package/build/es/components/button/types.js.map +1 -1
  364. package/build/es/components/card/Card.js.map +1 -1
  365. package/build/es/components/card/CardImage.js.map +1 -1
  366. package/build/es/components/card/InfoCard.js.map +1 -1
  367. package/build/es/components/card/NavCard.js.map +1 -1
  368. package/build/es/components/card/TaskCard.js.map +1 -1
  369. package/build/es/components/card/development/examples/FakturainfoExample.d.ts +1 -1
  370. package/build/es/components/card/development/examples/InfoCardExample.d.ts +1 -1
  371. package/build/es/components/card/development/examples/NavCardExample.d.ts +1 -1
  372. package/build/es/components/card/development/examples/StatuskortExample.d.ts +1 -1
  373. package/build/es/components/card/development/examples/TaskCardExample.d.ts +1 -1
  374. package/build/es/components/card/development/examples/TopExample.d.ts +1 -1
  375. package/build/es/components/card/types.js.map +1 -1
  376. package/build/es/components/card/utils.js.map +1 -1
  377. package/build/es/components/checkbox/Checkbox.js.map +1 -1
  378. package/build/es/components/checkbox-panel/CheckboxPanel.js +1 -1
  379. package/build/es/components/checkbox-panel/CheckboxPanel.js.map +1 -1
  380. package/build/es/components/chip/Chip.js.map +1 -1
  381. package/build/es/components/combobox/Combobox.js +1 -1
  382. package/build/es/components/combobox/Combobox.js.map +1 -1
  383. package/build/es/components/combobox/stories/Combobox.stories.js.map +1 -1
  384. package/build/es/components/cookie-consent/CookieConsent.js +1 -1
  385. package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
  386. package/build/es/components/cookie-consent/CookieConsentContext.js.map +1 -1
  387. package/build/es/components/cookie-consent/RequirementCheckbox.js.map +1 -1
  388. package/build/es/components/cookie-consent/cookieConsentUtils.js +1 -1
  389. package/build/es/components/cookie-consent/cookieConsentUtils.js.map +1 -1
  390. package/build/es/components/cookie-consent/stories/CookieConsent.stories.js.map +1 -1
  391. package/build/es/components/countdown/Countdown.js +1 -1
  392. package/build/es/components/countdown/Countdown.js.map +1 -1
  393. package/build/es/components/countdown/stories/Countdown.stories.js.map +1 -1
  394. package/build/es/components/datepicker/DatePicker.js +1 -1
  395. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  396. package/build/es/components/datepicker/index.d.ts +1 -1
  397. package/build/es/components/datepicker/internal/Calendar.js +1 -1
  398. package/build/es/components/datepicker/internal/Calendar.js.map +1 -1
  399. package/build/es/components/datepicker/internal/calendarReducer.js.map +1 -1
  400. package/build/es/components/datepicker/internal/useCalendar.d.ts +1 -1
  401. package/build/es/components/datepicker/internal/useCalendar.js.map +1 -1
  402. package/build/es/components/datepicker/internal/utils.js +1 -1
  403. package/build/es/components/datepicker/internal/utils.js.map +1 -1
  404. package/build/es/components/datepicker/utils.js +1 -1
  405. package/build/es/components/datepicker/utils.js.map +1 -1
  406. package/build/es/components/datepicker/validation.js.map +1 -1
  407. package/build/es/components/description-list/DescriptionList.js.map +1 -1
  408. package/build/es/components/description-list/stories/DescriptionList.stories.js.map +1 -1
  409. package/build/es/components/expander/ExpandablePanel.js +1 -1
  410. package/build/es/components/expander/ExpandablePanel.js.map +1 -1
  411. package/build/es/components/expander/ExpandablePanelContent.js.map +1 -1
  412. package/build/es/components/expander/Expander.js +1 -1
  413. package/build/es/components/expander/Expander.js.map +1 -1
  414. package/build/es/components/expander/context.js.map +1 -1
  415. package/build/es/components/expander/deprecated/ExpandSection.js.map +1 -1
  416. package/build/es/components/expander/deprecated/Expander.js +1 -1
  417. package/build/es/components/expander/deprecated/Expander.js.map +1 -1
  418. package/build/es/components/expander/index.d.ts +1 -1
  419. package/build/es/components/expander/stories/Expander.stories.js.map +1 -1
  420. package/build/es/components/expander/stories/ExpanderPanel.stories.js.map +1 -1
  421. package/build/es/components/feedback/Feedback.js.map +1 -1
  422. package/build/es/components/feedback/FeedbackSuccess.js.map +1 -1
  423. package/build/es/components/feedback/FeedbackValues.js.map +1 -1
  424. package/build/es/components/feedback/feedbackContext.js.map +1 -1
  425. package/build/es/components/feedback/followup/Followup.js +1 -1
  426. package/build/es/components/feedback/followup/Followup.js.map +1 -1
  427. package/build/es/components/feedback/followup/followupContext.js.map +1 -1
  428. package/build/es/components/feedback/followup/useFollowup.js.map +1 -1
  429. package/build/es/components/feedback/index.d.ts +1 -1
  430. package/build/es/components/feedback/main-question/MainQuestion.js +1 -1
  431. package/build/es/components/feedback/main-question/MainQuestion.js.map +1 -1
  432. package/build/es/components/feedback/main-question/mainQuestionContext.js.map +1 -1
  433. package/build/es/components/feedback/main-question/useMainQuestion.d.ts +2 -2
  434. package/build/es/components/feedback/main-question/useMainQuestion.js.map +1 -1
  435. package/build/es/components/feedback/presets.js.map +1 -1
  436. package/build/es/components/feedback/questions/AddonQuestion.js.map +1 -1
  437. package/build/es/components/feedback/questions/CheckboxQuestion.js +1 -1
  438. package/build/es/components/feedback/questions/CheckboxQuestion.js.map +1 -1
  439. package/build/es/components/feedback/questions/ContactQuestion.js +1 -1
  440. package/build/es/components/feedback/questions/ContactQuestion.js.map +1 -1
  441. package/build/es/components/feedback/questions/RadioQuestion.js +1 -1
  442. package/build/es/components/feedback/questions/RadioQuestion.js.map +1 -1
  443. package/build/es/components/feedback/questions/SmileyQuestion.js.map +1 -1
  444. package/build/es/components/feedback/questions/TextQuestion.js +1 -1
  445. package/build/es/components/feedback/questions/TextQuestion.js.map +1 -1
  446. package/build/es/components/feedback/questions/smileyUtils.js.map +1 -1
  447. package/build/es/components/feedback/utils.js.map +1 -1
  448. package/build/es/components/file-input/File.js +1 -1
  449. package/build/es/components/file-input/File.js.map +1 -1
  450. package/build/es/components/file-input/FileInput.js +1 -1
  451. package/build/es/components/file-input/FileInput.js.map +1 -1
  452. package/build/es/components/file-input/internal/Dropzone.js.map +1 -1
  453. package/build/es/components/file-input/internal/Input.js +1 -1
  454. package/build/es/components/file-input/internal/Input.js.map +1 -1
  455. package/build/es/components/file-input/internal/MaxSize.js.map +1 -1
  456. package/build/es/components/file-input/internal/Thumbnail.js.map +1 -1
  457. package/build/es/components/file-input/internal/fileInputContext.js.map +1 -1
  458. package/build/es/components/file-input/internal/validateFile.js.map +1 -1
  459. package/build/es/components/file-input/utils.js +1 -1
  460. package/build/es/components/file-input/utils.js.map +1 -1
  461. package/build/es/components/flex/Flex.js.map +1 -1
  462. package/build/es/components/flex/stories/Flex.stories.js.map +1 -1
  463. package/build/es/components/icon/Icon.js.map +1 -1
  464. package/build/es/components/icon/icons/ArrowDownIcon.js.map +1 -1
  465. package/build/es/components/icon/icons/ArrowLeftIcon.js.map +1 -1
  466. package/build/es/components/icon/icons/ArrowNorthEastIcon.js.map +1 -1
  467. package/build/es/components/icon/icons/ArrowRightIcon.js.map +1 -1
  468. package/build/es/components/icon/icons/ArrowUpIcon.js.map +1 -1
  469. package/build/es/components/icon/icons/CalendarIcon.js.map +1 -1
  470. package/build/es/components/icon/icons/CheckIcon.js.map +1 -1
  471. package/build/es/components/icon/icons/ChevronDownIcon.js.map +1 -1
  472. package/build/es/components/icon/icons/ChevronLeftIcon.js.map +1 -1
  473. package/build/es/components/icon/icons/ChevronRightIcon.js.map +1 -1
  474. package/build/es/components/icon/icons/ChevronUpIcon.js.map +1 -1
  475. package/build/es/components/icon/icons/CloseIcon.js.map +1 -1
  476. package/build/es/components/icon/icons/CopyIcon.js.map +1 -1
  477. package/build/es/components/icon/icons/DotsIcon.js.map +1 -1
  478. package/build/es/components/icon/icons/DragIcon.js.map +1 -1
  479. package/build/es/components/icon/icons/ErrorIcon.js.map +1 -1
  480. package/build/es/components/icon/icons/GreenCheckIcon.js.map +1 -1
  481. package/build/es/components/icon/icons/HamburgerIcon.js.map +1 -1
  482. package/build/es/components/icon/icons/InfoIcon.js.map +1 -1
  483. package/build/es/components/icon/icons/LinkIcon.js.map +1 -1
  484. package/build/es/components/icon/icons/MinusIcon.js.map +1 -1
  485. package/build/es/components/icon/icons/OpenInNewIcon.js.map +1 -1
  486. package/build/es/components/icon/icons/PenIcon.js.map +1 -1
  487. package/build/es/components/icon/icons/PlusIcon.js.map +1 -1
  488. package/build/es/components/icon/icons/QuestionIcon.js.map +1 -1
  489. package/build/es/components/icon/icons/RedCrossIcon.js.map +1 -1
  490. package/build/es/components/icon/icons/SearchIcon.js.map +1 -1
  491. package/build/es/components/icon/icons/SuccessIcon.js.map +1 -1
  492. package/build/es/components/icon/icons/ThumbDownIcon.js.map +1 -1
  493. package/build/es/components/icon/icons/ThumbUpIcon.js.map +1 -1
  494. package/build/es/components/icon/icons/TrashCanIcon.js.map +1 -1
  495. package/build/es/components/icon/icons/WarningIcon.js.map +1 -1
  496. package/build/es/components/icon/icons/animated/ArrowHorizontalAnimated.js.map +1 -1
  497. package/build/es/components/icon/icons/animated/ArrowVerticalAnimated.js.map +1 -1
  498. package/build/es/components/icon/icons/animated/PlusRemoveAnimated.js.map +1 -1
  499. package/build/es/components/icon/stories/Icons.stories.js.map +1 -1
  500. package/build/es/components/icon/stories/internal/AnimatedIcon.js +2 -0
  501. package/build/es/components/icon/stories/internal/AnimatedIcon.js.map +1 -0
  502. package/build/es/components/icon/stories/internal/IconExample.js +2 -0
  503. package/build/es/components/icon/stories/internal/IconExample.js.map +1 -0
  504. package/build/es/components/icon/stories/internal/IconsExampleGrid.js +2 -0
  505. package/build/es/components/icon/stories/internal/IconsExampleGrid.js.map +1 -0
  506. package/build/es/components/icon-button/IconButton.js.map +1 -1
  507. package/build/es/components/icon-button/stories/IconButton.stories.js.map +1 -1
  508. package/build/es/components/image/Image.js.map +1 -1
  509. package/build/es/components/image/stories/Image.stories.js.map +1 -1
  510. package/build/es/components/image/useImageLoadingStatus.js.map +1 -1
  511. package/build/es/components/input-group/FieldGroup.js.map +1 -1
  512. package/build/es/components/input-group/InputGroup.js.map +1 -1
  513. package/build/es/components/input-group/Label.js.map +1 -1
  514. package/build/es/components/input-group/SupportLabel.js.map +1 -1
  515. package/build/es/components/input-group/stories/FieldGroup.stories.js.map +1 -1
  516. package/build/es/components/input-group/stories/InputGroup.stories.js.map +1 -1
  517. package/build/es/components/input-group/stories/Label.stories.js.map +1 -1
  518. package/build/es/components/input-group/stories/SupportLabel.stories.js.map +1 -1
  519. package/build/es/components/link/Link.js.map +1 -1
  520. package/build/es/components/link/stories/Link.stories.js.map +1 -1
  521. package/build/es/components/link-list/LinkList.js.map +1 -1
  522. package/build/es/components/link-list/index.d.ts +1 -1
  523. package/build/es/components/link-list/stories/LinkList.stories.js.map +1 -1
  524. package/build/es/components/list/List.js.map +1 -1
  525. package/build/es/components/list/ListItem.js.map +1 -1
  526. package/build/es/components/loader/Loader.js.map +1 -1
  527. package/build/es/components/loader/skeletons/SkeletonAnimation.js.map +1 -1
  528. package/build/es/components/loader/skeletons/SkeletonButton.js.map +1 -1
  529. package/build/es/components/loader/skeletons/SkeletonCheckboxGroup.js.map +1 -1
  530. package/build/es/components/loader/skeletons/SkeletonElement.js.map +1 -1
  531. package/build/es/components/loader/skeletons/SkeletonInput.js.map +1 -1
  532. package/build/es/components/loader/skeletons/SkeletonLabel.js.map +1 -1
  533. package/build/es/components/loader/skeletons/SkeletonRadioButtonGroup.js.map +1 -1
  534. package/build/es/components/loader/skeletons/SkeletonTable.js.map +1 -1
  535. package/build/es/components/loader/skeletons/SkeletonTextArea.js.map +1 -1
  536. package/build/es/components/loader/stories/Skeleton.stories.js.map +1 -1
  537. package/build/es/components/loader/useDelayedRender.js +1 -1
  538. package/build/es/components/loader/useDelayedRender.js.map +1 -1
  539. package/build/es/components/logo/Logo.js.map +1 -1
  540. package/build/es/components/logo/LogoStamp.js.map +1 -1
  541. package/build/es/components/logo/stories/Logo.stories.js.map +1 -1
  542. package/build/es/components/logo/stories/LogoStamp.stories.js.map +1 -1
  543. package/build/es/components/logo/text-paths/ForsikringLevertAvFremtind.js.map +1 -1
  544. package/build/es/components/logo/text-paths/FraSB1ogDNB.js.map +1 -1
  545. package/build/es/components/logo/text-paths/InnovasjonFraFremtind.js.map +1 -1
  546. package/build/es/components/logo/text-paths/TeknologiFraFremtind.js.map +1 -1
  547. package/build/es/components/logo/text-paths/VartEgetForsikringsselskap.js.map +1 -1
  548. package/build/es/components/logo/text-paths/VartForsikringsselskap.js.map +1 -1
  549. package/build/es/components/menu/Menu.js.map +1 -1
  550. package/build/es/components/menu/MenuItem.js.map +1 -1
  551. package/build/es/components/menu/MenuItemCheckbox.js.map +1 -1
  552. package/build/es/components/menu/stories/Menu.stories.js.map +1 -1
  553. package/build/es/components/menu/stories/MenuDivider.stories.js.map +1 -1
  554. package/build/es/components/menu/stories/MenuItem.stories.js.map +1 -1
  555. package/build/es/components/menu/stories/MenuItemCheckbox.stories.js.map +1 -1
  556. package/build/es/components/menu/types.d.ts +2 -2
  557. package/build/es/components/menu/useMenuWideEvents.js +1 -1
  558. package/build/es/components/menu/useMenuWideEvents.js.map +1 -1
  559. package/build/es/components/message/DismissButton.js.map +1 -1
  560. package/build/es/components/message/FormErrorMessage.js.map +1 -1
  561. package/build/es/components/message/Message.js +1 -1
  562. package/build/es/components/message/Message.js.map +1 -1
  563. package/build/es/components/message/stories/ErrorMessage.stories.js.map +1 -1
  564. package/build/es/components/message/stories/FormErrorMessage.stories.js.map +1 -1
  565. package/build/es/components/message/stories/InfoMessage.stories.js.map +1 -1
  566. package/build/es/components/message/stories/SuccessMessage.stories.js.map +1 -1
  567. package/build/es/components/message/stories/WarningMessage.stories.js.map +1 -1
  568. package/build/es/components/modal/Modal.js +1 -1
  569. package/build/es/components/modal/Modal.js.map +1 -1
  570. package/build/es/components/modal/stories/CompleteModal.stories.js.map +1 -1
  571. package/build/es/components/modal/stories/ModalCloseButton.stories.js +1 -1
  572. package/build/es/components/modal/stories/ModalCloseButton.stories.js.map +1 -1
  573. package/build/es/components/modal/stories/ModalOverlay.stories.js.map +1 -1
  574. package/build/es/components/modal/useModal.js.map +1 -1
  575. package/build/es/components/nav-link/NavLink.js.map +1 -1
  576. package/build/es/components/nav-link/stories/NavLink.stories.js.map +1 -1
  577. package/build/es/components/pagination/PageButton.js.map +1 -1
  578. package/build/es/components/pagination/Pagination.js +1 -1
  579. package/build/es/components/pagination/Pagination.js.map +1 -1
  580. package/build/es/components/pagination/stories/Pagination.stories.js.map +1 -1
  581. package/build/es/components/popover/Popover.js.map +1 -1
  582. package/build/es/components/popover/stories/PopoverControlled.stories.js.map +1 -1
  583. package/build/es/components/popover/stories/PopoverUncontrolled.stories.js.map +1 -1
  584. package/build/es/components/popover/types.d.ts +1 -1
  585. package/build/es/components/progress-bar/ProgressBar.js +1 -1
  586. package/build/es/components/progress-bar/ProgressBar.js.map +1 -1
  587. package/build/es/components/progress-bar/stories/ProgressBar.stories.js.map +1 -1
  588. package/build/es/components/radio-button/BaseRadioButton.js.map +1 -1
  589. package/build/es/components/radio-button/RadioButton.js.map +1 -1
  590. package/build/es/components/radio-button/RadioButtonGroup.js.map +1 -1
  591. package/build/es/components/radio-button/radioGroupContext.js.map +1 -1
  592. package/build/es/components/radio-button/stories/BaseRadioButton.stories.js.map +1 -1
  593. package/build/es/components/radio-button/stories/RadioButton.stories.js.map +1 -1
  594. package/build/es/components/radio-button/stories/RadioButtonGroup.stories.js.map +1 -1
  595. package/build/es/components/radio-panel/RadioPanel.js.map +1 -1
  596. package/build/es/components/radio-panel/RadioPanelGroup.js.map +1 -1
  597. package/build/es/components/select/NativeSelect.js.map +1 -1
  598. package/build/es/components/select/Select.js +1 -1
  599. package/build/es/components/select/Select.js.map +1 -1
  600. package/build/es/components/select/stories/select.stories.js.map +1 -1
  601. package/build/es/components/summary-table/SummaryTable.js.map +1 -1
  602. package/build/es/components/summary-table/SummaryTableRow.js.map +1 -1
  603. package/build/es/components/summary-table/stories/summary-table.stories.js.map +1 -1
  604. package/build/es/components/system-message/SystemMessage.js +1 -1
  605. package/build/es/components/system-message/SystemMessage.js.map +1 -1
  606. package/build/es/components/system-message/common/DismissButton.js.map +1 -1
  607. package/build/es/components/system-message/common/MessageIcon.js.map +1 -1
  608. package/build/es/components/table/DataTable.js.map +1 -1
  609. package/build/es/components/table/ExpandableTableRow.js +1 -1
  610. package/build/es/components/table/ExpandableTableRow.js.map +1 -1
  611. package/build/es/components/table/ExpandableTableRowController.js.map +1 -1
  612. package/build/es/components/table/Table.js.map +1 -1
  613. package/build/es/components/table/TableBody.js.map +1 -1
  614. package/build/es/components/table/TableCaption.js.map +1 -1
  615. package/build/es/components/table/TableCell.js.map +1 -1
  616. package/build/es/components/table/TableColumn.js.map +1 -1
  617. package/build/es/components/table/TableColumnGroup.js.map +1 -1
  618. package/build/es/components/table/TableFooter.js.map +1 -1
  619. package/build/es/components/table/TableHead.js.map +1 -1
  620. package/build/es/components/table/TableHeader.js.map +1 -1
  621. package/build/es/components/table/TablePagination.js +1 -1
  622. package/build/es/components/table/TablePagination.js.map +1 -1
  623. package/build/es/components/table/TableRow.js.map +1 -1
  624. package/build/es/components/table/tableContext.js.map +1 -1
  625. package/build/es/components/table/tableSectionContext.js.map +1 -1
  626. package/build/es/components/table/utils.js.map +1 -1
  627. package/build/es/components/tabs/NavTab.js.map +1 -1
  628. package/build/es/components/tabs/NavTabs.js.map +1 -1
  629. package/build/es/components/tabs/Tab.js.map +1 -1
  630. package/build/es/components/tabs/TabList.js.map +1 -1
  631. package/build/es/components/tabs/TabPanel.js.map +1 -1
  632. package/build/es/components/tabs/Tabs.js.map +1 -1
  633. package/build/es/components/tabs/stories/Tabs.stories.js.map +1 -1
  634. package/build/es/components/tabs/tabsContext.js.map +1 -1
  635. package/build/es/components/tabs/types.d.ts +1 -1
  636. package/build/es/components/tag/Tag.js.map +1 -1
  637. package/build/es/components/tag/index.d.ts +1 -1
  638. package/build/es/components/tag/stories/Tag.stories.js.map +1 -1
  639. package/build/es/components/text-area/BaseTextArea.js.map +1 -1
  640. package/build/es/components/text-area/TextArea.js.map +1 -1
  641. package/build/es/components/text-area/stories/TextArea.stories.js.map +1 -1
  642. package/build/es/components/text-input/BaseTextInput.js.map +1 -1
  643. package/build/es/components/text-input/TextInput.js.map +1 -1
  644. package/build/es/components/toast/Toast.js +1 -1
  645. package/build/es/components/toast/Toast.js.map +1 -1
  646. package/build/es/components/toast/ToastRegion.js +1 -1
  647. package/build/es/components/toast/ToastRegion.js.map +1 -1
  648. package/build/es/components/toast/index.d.ts +1 -1
  649. package/build/es/components/toast/toastContext.js.map +1 -1
  650. package/build/es/components/toggle-switch/ToggleSlider.js.map +1 -1
  651. package/build/es/components/toggle-switch/ToggleSwitch.js.map +1 -1
  652. package/build/es/components/toggle-switch/stories/ToggleSwitch.stories.js.map +1 -1
  653. package/build/es/components/toggle-switch/usePillStyles.js +1 -1
  654. package/build/es/components/toggle-switch/usePillStyles.js.map +1 -1
  655. package/build/es/components/tooltip/PopupTip.js.map +1 -1
  656. package/build/es/components/tooltip/Tooltip.js +1 -1
  657. package/build/es/components/tooltip/Tooltip.js.map +1 -1
  658. package/build/es/components/tooltip/TooltipContent.js.map +1 -1
  659. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js +1 -1
  660. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js.map +1 -1
  661. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js +1 -1
  662. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js.map +1 -1
  663. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js +1 -1
  664. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js.map +1 -1
  665. package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.js.map +1 -1
  666. package/build/es/hooks/useClickOutside/useClickOutside.js +1 -1
  667. package/build/es/hooks/useClickOutside/useClickOutside.js.map +1 -1
  668. package/build/es/hooks/useElementDimensions/useElementDimensions.js.map +1 -1
  669. package/build/es/hooks/useFocusOutside/useFocusOutside.js +1 -1
  670. package/build/es/hooks/useFocusOutside/useFocusOutside.js.map +1 -1
  671. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +1 -1
  672. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js +1 -1
  673. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  674. package/build/es/hooks/useKeyListener/useKeyListener.js +1 -1
  675. package/build/es/hooks/useKeyListener/useKeyListener.js.map +1 -1
  676. package/build/es/hooks/useListNavigation/useListNavigation.js +1 -1
  677. package/build/es/hooks/useListNavigation/useListNavigation.js.map +1 -1
  678. package/build/es/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
  679. package/build/es/hooks/useProgressiveImg/useProgressiveImg.js.map +1 -1
  680. package/build/es/hooks/useScreen/index.d.ts +1 -1
  681. package/build/es/hooks/useScreen/useScreen.js +1 -1
  682. package/build/es/hooks/useScreen/useScreen.js.map +1 -1
  683. package/build/es/hooks/useScrollIntoView/useScrollIntoView.js.map +1 -1
  684. package/build/es/hooks/useSwipeGesture/useSwipeGesture.d.ts +1 -1
  685. package/build/es/hooks/useSwipeGesture/useSwipeGesture.js.map +1 -1
  686. package/build/es/shared/input-panel/BasePanel.js.map +1 -1
  687. package/build/es/utilities/formatters/avstand/formatAvstand.js.map +1 -1
  688. package/build/es/utilities/formatters/bytes/formatBytes.js.map +1 -1
  689. package/build/es/utilities/formatters/util/parseNumber.js.map +1 -1
  690. package/build/es/utilities/formatters/valuta/formatValuta.js +1 -1
  691. package/build/es/utilities/formatters/valuta/formatValuta.js.map +1 -1
  692. package/build/es/utilities/getThemeAndDensity.js +1 -1
  693. package/build/es/utilities/getThemeAndDensity.js.map +1 -1
  694. package/build/es/utilities/polymorphism/mergeRefs.js +1 -1
  695. package/build/es/utilities/polymorphism/mergeRefs.js.map +1 -1
  696. package/build/es/utilities/tabListener.js +1 -1
  697. package/build/es/utilities/tabListener.js.map +1 -1
  698. package/build/style.css +1 -1
  699. package/package.json +2 -2
  700. package/styles/components/button/button.css +3 -31
  701. package/styles/components/button/button.min.css +1 -1
  702. package/styles/components/button/button.scss +6 -67
  703. package/styles/components/button/development/public/fonts/_index.scss +1 -0
  704. package/styles/components/button/development/public/fonts/webfonts.css +108 -0
  705. package/styles/components/button/development/public/fonts/webfonts.min.css +1 -0
  706. package/styles/components/button/development/public/fonts/webfonts.scss +137 -0
  707. package/styles/components/checkbox/checkbox.css +4 -4
  708. package/styles/components/checkbox/checkbox.min.css +1 -1
  709. package/styles/components/checkbox-panel/checkbox-panel.css +2 -2
  710. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  711. package/styles/components/countdown/countdown.css +2 -2
  712. package/styles/components/countdown/countdown.min.css +1 -1
  713. package/styles/components/feedback/feedback.css +2 -2
  714. package/styles/components/feedback/feedback.min.css +1 -1
  715. package/styles/components/input-group/input-group.css +2 -2
  716. package/styles/components/input-group/input-group.min.css +1 -1
  717. package/styles/components/loader/loader.css +6 -6
  718. package/styles/components/loader/loader.min.css +1 -1
  719. package/styles/components/loader/skeleton-loader.css +5 -5
  720. package/styles/components/loader/skeleton-loader.min.css +1 -1
  721. package/styles/components/message/message.css +2 -2
  722. package/styles/components/message/message.min.css +1 -1
  723. package/styles/components/progress-bar/progress-bar.css +1 -1
  724. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  725. package/styles/components/radio-button/radio-button.css +2 -2
  726. package/styles/components/radio-button/radio-button.min.css +1 -1
  727. package/styles/components/radio-panel/development/public/fonts/_index.scss +1 -0
  728. package/styles/components/radio-panel/development/public/fonts/webfonts.css +108 -0
  729. package/styles/components/radio-panel/development/public/fonts/webfonts.min.css +1 -0
  730. package/styles/components/radio-panel/development/public/fonts/webfonts.scss +137 -0
  731. package/styles/components/radio-panel/radio-panel.css +2 -2
  732. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  733. package/styles/components/system-message/system-message.css +2 -2
  734. package/styles/components/system-message/system-message.min.css +1 -1
  735. package/styles/components/tabs/tabs.css +0 -2
  736. package/styles/components/tabs/tabs.scss +0 -2
  737. package/styles/components/toast/toast.css +4 -4
  738. package/styles/components/toast/toast.min.css +1 -1
  739. package/styles/styles.css +39 -69
  740. package/styles/styles.min.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sources":["../../../../src/components/menu/MenuItem.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ChevronRightIcon } from \"../icon/icons/ChevronRightIcon.js\";\nimport { OpenInNewIcon } from \"../icon/icons/OpenInNewIcon.js\";\nimport { MenuItemProps } from \"./types.js\";\n\ntype MenuItemComponent = <ElementType extends React.ElementType = \"button\">(\n props: MenuItemProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const MenuItem = forwardRef(function MenuItem<\n ElementType extends React.ElementType = \"button\",\n>(props: MenuItemProps<ElementType>, ref: PolymorphicRef<ElementType>) {\n const {\n as = \"button\",\n className,\n children,\n icon,\n expandable = false,\n external = false,\n ...rest\n } = props;\n const Component = as;\n const type = Component === \"button\" ? \"button\" : undefined;\n\n return (\n <Component\n ref={ref}\n type={type}\n role=\"menuitem\"\n className={clsx(\"jkl-menu-item\", className)}\n {...rest}\n >\n {icon && <span className=\"jkl-menu-item__icon\">{icon}</span>}\n <div className=\"jkl-menu-item__content\">\n {children}\n {external && (\n <div className={\"jkl-menu-item__arrow\"}>\n <OpenInNewIcon />\n </div>\n )}\n </div>\n {expandable && <ChevronRightIcon />}\n </Component>\n );\n}) as MenuItemComponent;\n"],"names":["MenuItem","forwardRef","props","ref","as","className","children","icon","expandable","external","rest","jsxs","type","role","clsx","jsx","OpenInNewIcon","ChevronRightIcon"],"mappings":"uQAWO,MAAMA,EAAWC,GAAW,SAEjCC,EAAmCC,GAC3B,MACFC,GAAAA,EAAK,SACLC,UAAAA,EACAC,SAAAA,EACAC,KAAAA,EACAC,WAAAA,GAAa,EACbC,SAAAA,GAAW,KACRC,GACHR,EAKA,OAAAS,EAJcP,EAIb,CACGD,IAAAA,EACAS,KALmB,WADTR,EACoB,cAAW,EAMzCS,KAAK,WACLR,UAAWS,EAAK,gBAAiBT,MAC7BK,EAEHJ,SAAA,CAAAC,GAASQ,EAAA,OAAA,CAAKV,UAAU,sBAAuBC,SAAKC,IACrDI,EAAC,MAAI,CAAAN,UAAU,yBACVC,SAAA,CAAAA,EACAG,GACIM,EAAA,MAAA,CAAIV,UAAW,uBACZC,SAAAS,EAACC,GAAc,QAI1BR,KAAeS,EAAiB,MAG7C"}
1
+ {"version":3,"file":"MenuItem.js","sources":["../../../../src/components/menu/MenuItem.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport type { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ChevronRightIcon } from \"../icon/icons/ChevronRightIcon.js\";\nimport { OpenInNewIcon } from \"../icon/icons/OpenInNewIcon.js\";\nimport type { MenuItemProps } from \"./types.js\";\n\ntype MenuItemComponent = <ElementType extends React.ElementType = \"button\">(\n props: MenuItemProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const MenuItem = forwardRef(function MenuItem<\n ElementType extends React.ElementType = \"button\",\n>(props: MenuItemProps<ElementType>, ref: PolymorphicRef<ElementType>) {\n const {\n as = \"button\",\n className,\n children,\n icon,\n expandable = false,\n external = false,\n ...rest\n } = props;\n const Component = as;\n const type = Component === \"button\" ? \"button\" : undefined;\n\n return (\n <Component\n ref={ref}\n type={type}\n role=\"menuitem\"\n className={clsx(\"jkl-menu-item\", className)}\n {...rest}\n >\n {icon && <span className=\"jkl-menu-item__icon\">{icon}</span>}\n <div className=\"jkl-menu-item__content\">\n {children}\n {external && (\n <div className={\"jkl-menu-item__arrow\"}>\n <OpenInNewIcon />\n </div>\n )}\n </div>\n {expandable && <ChevronRightIcon />}\n </Component>\n );\n}) as MenuItemComponent;\n"],"names":["MenuItem","forwardRef","props","ref","as","className","children","icon","expandable","external","rest","jsxs","type","role","clsx","jsx","OpenInNewIcon","ChevronRightIcon"],"mappings":"uQAWO,MAAMA,EAAWC,GAAW,SAEjCC,EAAmCC,GAC3B,MACFC,GAAAA,EAAK,SACLC,UAAAA,EACAC,SAAAA,EACAC,KAAAA,EACAC,WAAAA,GAAa,EACbC,SAAAA,GAAW,KACRC,GACHR,EAKA,OAAAS,EAJcP,EAIb,CACGD,IAAAA,EACAS,KALmB,WADTR,EACoB,cAAW,EAMzCS,KAAK,WACLR,UAAWS,EAAK,gBAAiBT,MAC7BK,EAEHJ,SAAA,CAAAC,GAASQ,EAAA,OAAA,CAAKV,UAAU,sBAAuBC,SAAKC,IACrDI,EAAC,MAAI,CAAAN,UAAU,yBACVC,SAAA,CAAAA,EACAG,GACIM,EAAA,MAAA,CAAIV,UAAW,uBACZC,SAAAS,EAACC,GAAc,QAI1BR,KAAeS,EAAiB,MAG7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckbox.js","sources":["../../../../src/components/menu/MenuItemCheckbox.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, {\n forwardRef,\n type KeyboardEventHandler,\n type MouseEventHandler,\n} from \"react\";\nimport {\n SwipeChangeHandler,\n useSwipeGesture,\n} from \"../../hooks/useSwipeGesture/useSwipeGesture.js\";\nimport { CheckIcon } from \"../icon/icons/CheckIcon.js\";\nimport { MenuItemCheckboxProps } from \"./types.js\";\n\nexport const MenuItemCheckbox = forwardRef<\n HTMLDivElement,\n MenuItemCheckboxProps\n>((props, ref) => {\n const {\n \"aria-checked\": checked,\n className,\n children,\n icon,\n onChange,\n onClick,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onKeyDown,\n ...rest\n } = props;\n\n const handleClick: MouseEventHandler<HTMLDivElement> = (event) => {\n event.preventDefault(); // Prevents the menu from closing on toggle\n onChange?.(event, !checked);\n onClick?.(event);\n };\n\n const handleChange: SwipeChangeHandler<HTMLDivElement> = (\n event,\n toggleTo,\n ) => {\n if (toggleTo !== checked) {\n onChange?.(event, toggleTo);\n }\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLDivElement> = (event) => {\n if (event.key === \"Enter\") {\n onChange?.(event, !checked);\n } else if (event.key === \" \") {\n event.preventDefault(); // Prevents the menu from closing on toggle, https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/menuitemcheckbox_role#keyboard_interactions\n onChange?.(event, !checked);\n }\n onKeyDown?.(event);\n };\n\n const { gestureHandlers } = useSwipeGesture({\n onClick: handleClick,\n onChange: handleChange,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n });\n\n return (\n <div\n ref={ref}\n tabIndex={-1}\n {...rest}\n role=\"menuitemcheckbox\"\n aria-checked={checked}\n className={clsx(\n \"jkl-menu-item\",\n \"jkl-menu-item--checkbox\",\n className,\n )}\n {...gestureHandlers}\n onKeyDown={handleKeyDown}\n >\n {icon && <span className=\"jkl-menu-item__icon\">{icon}</span>}\n <div className=\"jkl-menu-item__content\">{children}</div>\n <div className=\"jkl-toggle-switch\">\n <div className=\"jkl-toggle-switch-widget\">\n <div className=\"jkl-toggle-switch-widget__slider\">\n <div className=\"jkl-toggle-switch-widget__knob\" />\n <CheckIcon\n variant=\"small\"\n bold\n className=\"jkl-toggle-switch-widget__indicator\"\n />\n </div>\n </div>\n </div>\n </div>\n );\n});\n\nMenuItemCheckbox.displayName = \"MenuItemCheckbox\";\n"],"names":["MenuItemCheckbox","forwardRef","props","ref","checked","className","children","icon","onChange","onClick","onPointerCancel","onPointerDown","onPointerMove","onPointerUp","onKeyDown","rest","gestureHandlers","useSwipeGesture","event","preventDefault","toggleTo","jsxs","tabIndex","role","clsx","key","jsx","CheckIcon","variant","bold","displayName"],"mappings":"2QAaO,MAAMA,EAAmBC,GAG9B,CAACC,EAAOC,KACA,MACF,eAAgBC,EAChBC,UAAAA,EACAC,SAAAA,EACAC,KAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,gBAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,YAAAA,EACAC,UAAAA,KACGC,GACHb,GA2BIc,gBAAAA,GAAoBC,EAAgB,CACxCR,QA1BoDS,IACpDA,EAAMC,iBACK,MAAAX,GAAAA,EAAAU,GAAQd,GACnB,MAAAK,GAAAA,EAAUS,EAAAA,EAwBVV,SArBqD,CACrDU,EACAE,KAEIA,IAAahB,IACb,MAAAI,GAAAA,EAAWU,EAAOE,GAAAA,EAiBtBV,gBAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,YAAAA,IAIA,OAAAQ,EAAC,MAAA,CACGlB,IAAAA,EACAmB,UAAU,KACNP,EACJQ,KAAK,mBACL,eAAcnB,EACdC,UAAWmB,EACP,gBACA,0BACAnB,MAEAW,EACJF,UAhCqDI,IACvC,UAAdA,EAAMO,IACK,MAAAjB,GAAAA,EAAAU,GAAQd,GACE,MAAdc,EAAMO,MACbP,EAAMC,iBACK,MAAAX,GAAAA,EAAAU,GAAQd,IAEvB,MAAAU,GAAAA,EAAYI,EAAAA,EA2BPZ,SAAA,CAAAC,GAASmB,EAAA,OAAA,CAAKrB,UAAU,sBAAuBC,SAAKC,IACpDmB,EAAA,MAAA,CAAIrB,UAAU,yBAA0BC,SAAAA,IACzCoB,EAAC,MAAI,CAAArB,UAAU,oBACXC,SAAAoB,EAAC,MAAI,CAAArB,UAAU,2BACXC,SAAAe,EAAC,MAAI,CAAAhB,UAAU,mCACXC,SAAA,CAACoB,EAAA,MAAA,CAAIrB,UAAU,mCACfqB,EAACC,EAAA,CACGC,QAAQ,QACRC,MAAI,EACJxB,UAAU,iDAI1B,IAKZL,EAAiB8B,YAAc"}
1
+ {"version":3,"file":"MenuItemCheckbox.js","sources":["../../../../src/components/menu/MenuItemCheckbox.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, {\n forwardRef,\n type KeyboardEventHandler,\n type MouseEventHandler,\n} from \"react\";\nimport {\n type SwipeChangeHandler,\n useSwipeGesture,\n} from \"../../hooks/useSwipeGesture/useSwipeGesture.js\";\nimport { CheckIcon } from \"../icon/icons/CheckIcon.js\";\nimport type { MenuItemCheckboxProps } from \"./types.js\";\n\nexport const MenuItemCheckbox = forwardRef<\n HTMLDivElement,\n MenuItemCheckboxProps\n>((props, ref) => {\n const {\n \"aria-checked\": checked,\n className,\n children,\n icon,\n onChange,\n onClick,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onKeyDown,\n ...rest\n } = props;\n\n const handleClick: MouseEventHandler<HTMLDivElement> = (event) => {\n event.preventDefault(); // Prevents the menu from closing on toggle\n onChange?.(event, !checked);\n onClick?.(event);\n };\n\n const handleChange: SwipeChangeHandler<HTMLDivElement> = (\n event,\n toggleTo,\n ) => {\n if (toggleTo !== checked) {\n onChange?.(event, toggleTo);\n }\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLDivElement> = (event) => {\n if (event.key === \"Enter\") {\n onChange?.(event, !checked);\n } else if (event.key === \" \") {\n event.preventDefault(); // Prevents the menu from closing on toggle, https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/menuitemcheckbox_role#keyboard_interactions\n onChange?.(event, !checked);\n }\n onKeyDown?.(event);\n };\n\n const { gestureHandlers } = useSwipeGesture({\n onClick: handleClick,\n onChange: handleChange,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n });\n\n return (\n <div\n ref={ref}\n tabIndex={-1}\n {...rest}\n role=\"menuitemcheckbox\"\n aria-checked={checked}\n className={clsx(\n \"jkl-menu-item\",\n \"jkl-menu-item--checkbox\",\n className,\n )}\n {...gestureHandlers}\n onKeyDown={handleKeyDown}\n >\n {icon && <span className=\"jkl-menu-item__icon\">{icon}</span>}\n <div className=\"jkl-menu-item__content\">{children}</div>\n <div className=\"jkl-toggle-switch\">\n <div className=\"jkl-toggle-switch-widget\">\n <div className=\"jkl-toggle-switch-widget__slider\">\n <div className=\"jkl-toggle-switch-widget__knob\" />\n <CheckIcon\n variant=\"small\"\n bold\n className=\"jkl-toggle-switch-widget__indicator\"\n />\n </div>\n </div>\n </div>\n </div>\n );\n});\n\nMenuItemCheckbox.displayName = \"MenuItemCheckbox\";\n"],"names":["MenuItemCheckbox","forwardRef","props","ref","checked","className","children","icon","onChange","onClick","onPointerCancel","onPointerDown","onPointerMove","onPointerUp","onKeyDown","rest","gestureHandlers","useSwipeGesture","event","preventDefault","toggleTo","jsxs","tabIndex","role","clsx","key","jsx","CheckIcon","variant","bold","displayName"],"mappings":"2QAaO,MAAMA,EAAmBC,GAG9B,CAACC,EAAOC,KACA,MACF,eAAgBC,EAChBC,UAAAA,EACAC,SAAAA,EACAC,KAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,gBAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,YAAAA,EACAC,UAAAA,KACGC,GACHb,GA2BIc,gBAAAA,GAAoBC,EAAgB,CACxCR,QA1BoDS,IACpDA,EAAMC,iBACK,MAAAX,GAAAA,EAAAU,GAAQd,GACnB,MAAAK,GAAAA,EAAUS,EAAAA,EAwBVV,SArBqD,CACrDU,EACAE,KAEIA,IAAahB,IACb,MAAAI,GAAAA,EAAWU,EAAOE,GAAAA,EAiBtBV,gBAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,YAAAA,IAIA,OAAAQ,EAAC,MAAA,CACGlB,IAAAA,EACAmB,UAAU,KACNP,EACJQ,KAAK,mBACL,eAAcnB,EACdC,UAAWmB,EACP,gBACA,0BACAnB,MAEAW,EACJF,UAhCqDI,IACvC,UAAdA,EAAMO,IACK,MAAAjB,GAAAA,EAAAU,GAAQd,GACE,MAAdc,EAAMO,MACbP,EAAMC,iBACK,MAAAX,GAAAA,EAAAU,GAAQd,IAEvB,MAAAU,GAAAA,EAAYI,EAAAA,EA2BPZ,SAAA,CAAAC,GAASmB,EAAA,OAAA,CAAKrB,UAAU,sBAAuBC,SAAKC,IACpDmB,EAAA,MAAA,CAAIrB,UAAU,yBAA0BC,SAAAA,IACzCoB,EAAC,MAAI,CAAArB,UAAU,oBACXC,SAAAoB,EAAC,MAAI,CAAArB,UAAU,2BACXC,SAAAe,EAAC,MAAI,CAAAhB,UAAU,mCACXC,SAAA,CAACoB,EAAA,MAAA,CAAIrB,UAAU,mCACfqB,EAACC,EAAA,CACGC,QAAQ,QACRC,MAAI,EACJxB,UAAU,iDAI1B,IAKZL,EAAiB8B,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.stories.js","sources":["../../../../../src/components/menu/stories/Menu.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { GhostButton } from \"../../button/Button.js\";\nimport { ChevronDownIcon, ErrorIcon } from \"../../icon/index.js\";\nimport { Menu as MenuComponent } from \"../Menu.js\";\nimport { MenuItem } from \"../MenuItem.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Menu/Menu\",\n component: MenuComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MenuComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Menu: Story = {\n args: {\n triggerElement: (\n <GhostButton\n icon={<ChevronDownIcon bold />}\n iconPosition=\"right\"\n data-testid=\"open-menu\"\n >\n Ola Nordmann\n </GhostButton>\n ),\n keepOpenOnClickOutside: false,\n children: (\n <>\n <MenuItem>Forsikringsprofil</MenuItem>\n <MenuComponent\n triggerElement={\n <MenuItem expandable={true}>Dokumenter</MenuItem>\n }\n >\n {\" \"}\n <MenuItem as=\"a\" href=\"https://jokul.fremtind.no/\">\n Jøkuls hjemmeside\n </MenuItem>\n <MenuItem as=\"a\" href=\"https://fremtind.no/\">\n Fremtind Forsikring\n </MenuItem>\n </MenuComponent>\n\n <MenuItem icon={<ErrorIcon />}>Skadesaker</MenuItem>\n </>\n ),\n isOpen: false,\n },\n render: ({ ...args }) => <MenuComponent {...args} />,\n};\n"],"names":["meta","title","component","MenuComponent","parameters","layout","tags","Menu","args","triggerElement","jsx","GhostButton","icon","ChevronDownIcon","bold","iconPosition","children","keepOpenOnClickOutside","jsxs","Fragment","MenuItem","expandable","as","href","ErrorIcon","isOpen","render"],"mappings":"4uDAQA,MAAMA,EAAO,CACTC,MAAO,wBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAc,CACvBC,KAAM,CACFC,eACIC,EAACC,EAAA,CACGC,KAAMF,EAACG,EAAgB,CAAAC,MAAI,IAC3BC,aAAa,QACb,cAAY,YACfC,SAAA,iBAILC,wBAAwB,EACxBD,SAEQE,EAAAC,EAAA,CAAAH,SAAA,CAAAN,EAACU,GAASJ,SAAiB,sBAC3BE,EAACf,EAAA,CACGM,eACIC,EAACU,EAAS,CAAAC,YAAY,EAAML,SAAU,eAGzCA,SAAA,CAAA,MACAI,EAAS,CAAAE,GAAG,IAAIC,KAAK,6BAA6BP,SAEnD,wBACCI,EAAS,CAAAE,GAAG,IAAIC,KAAK,uBAAuBP,SAE7C,6BAGHI,EAAS,CAAAR,KAAOF,EAAAc,EAAA,IAAcR,SAAU,kBAGjDS,QAAQ,GAEZC,OAAQ,KAAMlB,KAAWE,EAACP,EAAe,IAAGK"}
1
+ {"version":3,"file":"Menu.stories.js","sources":["../../../../../src/components/menu/stories/Menu.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { GhostButton } from \"../../button/Button.js\";\nimport { ChevronDownIcon, ErrorIcon } from \"../../icon/index.js\";\nimport { Menu as MenuComponent } from \"../Menu.js\";\nimport { MenuItem } from \"../MenuItem.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Menu/Menu\",\n component: MenuComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MenuComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Menu: Story = {\n args: {\n triggerElement: (\n <GhostButton\n icon={<ChevronDownIcon bold />}\n iconPosition=\"right\"\n data-testid=\"open-menu\"\n >\n Ola Nordmann\n </GhostButton>\n ),\n keepOpenOnClickOutside: false,\n children: (\n <>\n <MenuItem>Forsikringsprofil</MenuItem>\n <MenuComponent\n triggerElement={\n <MenuItem expandable={true}>Dokumenter</MenuItem>\n }\n >\n {\" \"}\n <MenuItem as=\"a\" href=\"https://jokul.fremtind.no/\">\n Jøkuls hjemmeside\n </MenuItem>\n <MenuItem as=\"a\" href=\"https://fremtind.no/\">\n Fremtind Forsikring\n </MenuItem>\n </MenuComponent>\n\n <MenuItem icon={<ErrorIcon />}>Skadesaker</MenuItem>\n </>\n ),\n isOpen: false,\n },\n render: ({ ...args }) => <MenuComponent {...args} />,\n};\n"],"names":["meta","title","component","MenuComponent","parameters","layout","tags","Menu","args","triggerElement","jsx","GhostButton","icon","ChevronDownIcon","bold","iconPosition","children","keepOpenOnClickOutside","jsxs","Fragment","MenuItem","expandable","as","href","ErrorIcon","isOpen","render"],"mappings":"4uDAQA,MAAMA,EAAO,CACTC,MAAO,wBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAc,CACvBC,KAAM,CACFC,eACIC,EAACC,EAAA,CACGC,KAAMF,EAACG,EAAgB,CAAAC,MAAI,IAC3BC,aAAa,QACb,cAAY,YACfC,SAAA,iBAILC,wBAAwB,EACxBD,SAEQE,EAAAC,EAAA,CAAAH,SAAA,CAAAN,EAACU,GAASJ,SAAiB,sBAC3BE,EAACf,EAAA,CACGM,eACIC,EAACU,EAAS,CAAAC,YAAY,EAAML,SAAU,eAGzCA,SAAA,CAAA,MACAI,EAAS,CAAAE,GAAG,IAAIC,KAAK,6BAA6BP,SAEnD,wBACCI,EAAS,CAAAE,GAAG,IAAIC,KAAK,uBAAuBP,SAE7C,6BAGHI,EAAS,CAAAR,KAAOF,EAAAc,EAAA,IAAcR,SAAU,kBAGjDS,QAAQ,GAEZC,OAAQ,KAAMlB,KAAWE,EAACP,EAAe,IAAGK"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuDivider.stories.js","sources":["../../../../../src/components/menu/stories/MenuDivider.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { MenuDivider as MenuDividerComponent } from \"../MenuDivider.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Menu/MenuDivider\",\n component: MenuDividerComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MenuDividerComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const MenuDivider: Story = {\n render: () => <MenuDividerComponent />,\n};\n"],"names":["meta","title","component","MenuDividerComponent","parameters","layout","tags","MenuDivider","render","jsx"],"mappings":"+HAKA,MAAMA,EAAO,CACTC,MAAO,+BACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAqB,CAC9BC,OAAQ,IAAMC,EAACN,EAAqB"}
1
+ {"version":3,"file":"MenuDivider.stories.js","sources":["../../../../../src/components/menu/stories/MenuDivider.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { MenuDivider as MenuDividerComponent } from \"../MenuDivider.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Menu/MenuDivider\",\n component: MenuDividerComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MenuDividerComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const MenuDivider: Story = {\n render: () => <MenuDividerComponent />,\n};\n"],"names":["meta","title","component","MenuDividerComponent","parameters","layout","tags","MenuDivider","render","jsx"],"mappings":"+HAKA,MAAMA,EAAO,CACTC,MAAO,+BACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAqB,CAC9BC,OAAQ,IAAMC,EAACN,EAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.stories.js","sources":["../../../../../src/components/menu/stories/MenuItem.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { InfoIcon } from \"../../icon/index.js\";\nimport { MenuItem as MenuItemComponent } from \"../MenuItem.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Menu/MenuItem\",\n component: MenuItemComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MenuItemComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const MenuItem: Story = {\n args: {\n icon: false,\n expandable: false,\n },\n render: ({ icon, ...props }) => (\n <MenuItemComponent icon={icon ? <InfoIcon /> : undefined} {...props}>\n Hei, jeg er et MenuItem\n </MenuItemComponent>\n ),\n};\n"],"names":["meta","title","component","MenuItemComponent","parameters","layout","tags","MenuItem","args","icon","expandable","render","props","jsx","InfoIcon","children"],"mappings":"kmDAMA,MAAMA,EAAO,CACTC,MAAO,4BACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAkB,CAC3BC,KAAM,CACFC,MAAM,EACNC,YAAY,GAEhBC,OAAQ,EAAGF,KAAAA,KAASG,KAChBC,EAACV,EAAkB,CAAAM,KAAMA,EAAQI,EAAAC,EAAA,CAAS,QAAK,KAAeF,EAAOG,SAErE"}
1
+ {"version":3,"file":"MenuItem.stories.js","sources":["../../../../../src/components/menu/stories/MenuItem.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { InfoIcon } from \"../../icon/index.js\";\nimport { MenuItem as MenuItemComponent } from \"../MenuItem.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Menu/MenuItem\",\n component: MenuItemComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MenuItemComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const MenuItem: Story = {\n args: {\n icon: false,\n expandable: false,\n },\n render: ({ icon, ...props }) => (\n <MenuItemComponent icon={icon ? <InfoIcon /> : undefined} {...props}>\n Hei, jeg er et MenuItem\n </MenuItemComponent>\n ),\n};\n"],"names":["meta","title","component","MenuItemComponent","parameters","layout","tags","MenuItem","args","icon","expandable","render","props","jsx","InfoIcon","children"],"mappings":"kmDAMA,MAAMA,EAAO,CACTC,MAAO,4BACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAkB,CAC3BC,KAAM,CACFC,MAAM,EACNC,YAAY,GAEhBC,OAAQ,EAAGF,KAAAA,KAASG,KAChBC,EAACV,EAAkB,CAAAM,KAAMA,EAAQI,EAAAC,EAAA,CAAS,QAAK,KAAeF,EAAOG,SAErE"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckbox.stories.js","sources":["../../../../../src/components/menu/stories/MenuItemCheckbox.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { MenuItemCheckbox as MenuItemCheckboxComponent } from \"../MenuItemCheckbox.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Menu/MenuItemCheckbox\",\n component: MenuItemCheckboxComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MenuItemCheckboxComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const MenuItemCheckbox: Story = {\n args: {\n \"aria-checked\": false,\n },\n};\n"],"names":["meta","title","component","MenuItemCheckboxComponent","parameters","layout","tags","MenuItemCheckbox","args"],"mappings":"iGAIA,MAAMA,EAAO,CACTC,MAAO,oCACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAA0B,CACnCC,KAAM,CACF,gBAAgB"}
1
+ {"version":3,"file":"MenuItemCheckbox.stories.js","sources":["../../../../../src/components/menu/stories/MenuItemCheckbox.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { MenuItemCheckbox as MenuItemCheckboxComponent } from \"../MenuItemCheckbox.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Menu/MenuItemCheckbox\",\n component: MenuItemCheckboxComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MenuItemCheckboxComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const MenuItemCheckbox: Story = {\n args: {\n \"aria-checked\": false,\n },\n};\n"],"names":["meta","title","component","MenuItemCheckboxComponent","parameters","layout","tags","MenuItemCheckbox","args"],"mappings":"iGAIA,MAAMA,EAAO,CACTC,MAAO,oCACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAA0B,CACnCC,KAAM,CACF,gBAAgB"}
@@ -1,5 +1,5 @@
1
1
  import { Placement } from '@floating-ui/react';
2
- import { HTMLAttributes, ButtonHTMLAttributes, ReactNode } from 'react';
2
+ import { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
3
3
  import { DataTestAutoId, WithChildren } from '../../core/types.js';
4
4
  import { SwipeChangeHandler } from '../../hooks/useSwipeGesture/useSwipeGesture.js';
5
5
  import { PolymorphicPropsWithRef } from '../../utilities/polymorphism/polymorphism.js';
@@ -22,7 +22,7 @@ export interface MenuProps extends DataTestAutoId, WithChildren, Omit<ButtonHTML
22
22
  */
23
23
  keepOpenOnClickOutside?: boolean;
24
24
  /**
25
- * Elementet som fungerer som trigger for menyen. Dersom elementet ikke er en `<button>`
25
+ * Elementet som fungerer som trigger for menyen. Dersom elementet ikke er en `<button type="button">`
26
26
  * eller en `forwardRef<HTMLButtonElement>` vil det bli lagt inne i en knapp
27
27
  * med forhåndsdefinert stil. For å komme raskt i gang kan du bruke komponenten
28
28
  * `MenuTriggerButton` fra denne pakken.
@@ -1,2 +1,2 @@
1
- import{useState as e,useEffect as n}from"react";const t=(t,o,r)=>{const[i,s]=e(!1),[d,u]=e(!1);return n((()=>{if(t)return t.events.on("click",e),t.events.on("menuopen",n),()=>{t.events.off("click",e),t.events.off("menuopen",n)};function e(){u(!1)}function n(e){e.nodeId!==o&&e.parentId===r&&u(!1)}}),[t,o,r,u]),n((()=>{d&&t&&t.events.emit("menuopen",{parentId:r,nodeId:o})}),[t,d,o,r]),n((()=>{function e({pointerType:e}){"touch"!==e&&s(!0)}function n(){s(!1)}return window.addEventListener("pointermove",e,{once:!0,capture:!0}),window.addEventListener("keydown",n,!0),()=>{window.removeEventListener("pointermove",e,{capture:!0}),window.removeEventListener("keydown",n,!0)}}),[i]),{allowHover:i,isOpen:d,setIsOpen:u}};export{t as useMenuWideEvents};
1
+ import{useState as e,useEffect as n}from"react";const t=(t,o,r)=>{const[i,s]=e(!1),[d,u]=e(!1);return n((()=>{if(t)return t.events.on("click",e),t.events.on("menuopen",n),()=>{t.events.off("click",e),t.events.off("menuopen",n)};function e(){u(!1)}function n(e){e.nodeId!==o&&e.parentId===r&&u(!1)}}),[t,o,r]),n((()=>{d&&t&&t.events.emit("menuopen",{parentId:r,nodeId:o})}),[t,d,o,r]),n((()=>{function e({pointerType:e}){"touch"!==e&&s(!0)}function n(){s(!1)}return window.addEventListener("pointermove",e,{once:!0,capture:!0}),window.addEventListener("keydown",n,!0),()=>{window.removeEventListener("pointermove",e,{capture:!0}),window.removeEventListener("keydown",n,!0)}}),[i]),{allowHover:i,isOpen:d,setIsOpen:u}};export{t as useMenuWideEvents};
2
2
  //# sourceMappingURL=useMenuWideEvents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuWideEvents.js","sources":["../../../../src/components/menu/useMenuWideEvents.ts"],"sourcesContent":["import { FloatingTreeType } from \"@floating-ui/react\";\nimport { useEffect, useState } from \"react\";\n\nexport const useMenuWideEvents = (\n tree: FloatingTreeType | null,\n nodeId: string,\n parentId: string | null,\n): {\n allowHover: boolean;\n isOpen: boolean;\n setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n} => {\n const [allowHover, setAllowHover] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n\n // Event emitter allows you to communicate across tree components.\n // This effect closes all menus when an item gets clicked anywhere\n // in the tree.\n useEffect(() => {\n if (!tree) return;\n\n function handleTreeClick() {\n setIsOpen(false);\n }\n\n function onSubMenuOpen(event: { nodeId: string; parentId: string }) {\n if (event.nodeId !== nodeId && event.parentId === parentId) {\n setIsOpen(false);\n }\n }\n\n tree.events.on(\"click\", handleTreeClick);\n tree.events.on(\"menuopen\", onSubMenuOpen);\n\n return () => {\n tree.events.off(\"click\", handleTreeClick);\n tree.events.off(\"menuopen\", onSubMenuOpen);\n };\n }, [tree, nodeId, parentId, setIsOpen]);\n\n useEffect(() => {\n if (isOpen && tree) {\n tree.events.emit(\"menuopen\", { parentId, nodeId });\n }\n }, [tree, isOpen, nodeId, parentId]);\n\n // Determine if \"hover\" logic can run based on the modality of input. This\n // prevents unwanted focus synchronization as menus open and close with\n // keyboard navigation and the cursor is resting on the menu.\n useEffect(() => {\n function onPointerMove({ pointerType }: PointerEvent) {\n if (pointerType !== \"touch\") {\n setAllowHover(true);\n }\n }\n\n function onKeyDown() {\n setAllowHover(false);\n }\n\n window.addEventListener(\"pointermove\", onPointerMove, {\n once: true,\n capture: true,\n });\n window.addEventListener(\"keydown\", onKeyDown, true);\n return () => {\n window.removeEventListener(\"pointermove\", onPointerMove, {\n capture: true,\n });\n window.removeEventListener(\"keydown\", onKeyDown, true);\n };\n }, [allowHover]);\n\n return { allowHover, isOpen, setIsOpen };\n};\n"],"names":["useMenuWideEvents","tree","nodeId","parentId","allowHover","setAllowHover","useState","isOpen","setIsOpen","useEffect","events","on","handleTreeClick","onSubMenuOpen","off","event","emit","onPointerMove","pointerType","onKeyDown","window","addEventListener","once","capture","removeEventListener"],"mappings":"gDAGO,MAAMA,EAAoB,CAC7BC,EACAC,EACAC,KAMA,MAAOC,EAAYC,GAAiBC,GAAS,IACtCC,EAAQC,GAAaF,GAAS,GAKrC,OAAAG,GAAU,KACN,GAAKR,EAYA,OAAAA,EAAAS,OAAOC,GAAG,QAASC,GACnBX,EAAAS,OAAOC,GAAG,WAAYE,GAEpB,KACEZ,EAAAS,OAAOI,IAAI,QAASF,GACpBX,EAAAS,OAAOI,IAAI,WAAYD,EAAa,EAf7C,SAASD,IACLJ,GAAU,EACd,CAEA,SAASK,EAAcE,GACfA,EAAMb,SAAWA,GAAUa,EAAMZ,WAAaA,GAC9CK,GAAU,EAElB,CAO6C,GAE9C,CAACP,EAAMC,EAAQC,EAAUK,IAE5BC,GAAU,KACFF,GAAUN,GACVA,EAAKS,OAAOM,KAAK,WAAY,CAAEb,SAAAA,EAAUD,OAAAA,GAAQ,GAEtD,CAACD,EAAMM,EAAQL,EAAQC,IAK1BM,GAAU,KACG,SAAAQ,GAAgBC,YAAAA,IACD,UAAhBA,GACAb,GAAc,EAEtB,CAEA,SAASc,IACLd,GAAc,EAClB,CAEO,OAAAe,OAAAC,iBAAiB,cAAeJ,EAAe,CAClDK,MAAM,EACNC,SAAS,IAENH,OAAAC,iBAAiB,UAAWF,GAAW,GACvC,KACIC,OAAAI,oBAAoB,cAAeP,EAAe,CACrDM,SAAS,IAENH,OAAAI,oBAAoB,UAAWL,GAAW,EAAI,CAAA,GAE1D,CAACf,IAEG,CAAEA,WAAAA,EAAYG,OAAAA,EAAQC,UAAAA"}
1
+ {"version":3,"file":"useMenuWideEvents.js","sources":["../../../../src/components/menu/useMenuWideEvents.ts"],"sourcesContent":["import type { FloatingTreeType } from \"@floating-ui/react\";\nimport { useEffect, useState } from \"react\";\n\nexport const useMenuWideEvents = (\n tree: FloatingTreeType | null,\n nodeId: string,\n parentId: string | null,\n): {\n allowHover: boolean;\n isOpen: boolean;\n setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n} => {\n const [allowHover, setAllowHover] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n\n // Event emitter allows you to communicate across tree components.\n // This effect closes all menus when an item gets clicked anywhere\n // in the tree.\n useEffect(() => {\n if (!tree) return;\n\n function handleTreeClick() {\n setIsOpen(false);\n }\n\n function onSubMenuOpen(event: { nodeId: string; parentId: string }) {\n if (event.nodeId !== nodeId && event.parentId === parentId) {\n setIsOpen(false);\n }\n }\n\n tree.events.on(\"click\", handleTreeClick);\n tree.events.on(\"menuopen\", onSubMenuOpen);\n\n return () => {\n tree.events.off(\"click\", handleTreeClick);\n tree.events.off(\"menuopen\", onSubMenuOpen);\n };\n }, [tree, nodeId, parentId]);\n\n useEffect(() => {\n if (isOpen && tree) {\n tree.events.emit(\"menuopen\", { parentId, nodeId });\n }\n }, [tree, isOpen, nodeId, parentId]);\n\n // Determine if \"hover\" logic can run based on the modality of input. This\n // prevents unwanted focus synchronization as menus open and close with\n // keyboard navigation and the cursor is resting on the menu.\n // biome-ignore lint/correctness/useExhaustiveDependencies:\n useEffect(() => {\n function onPointerMove({ pointerType }: PointerEvent) {\n if (pointerType !== \"touch\") {\n setAllowHover(true);\n }\n }\n\n function onKeyDown() {\n setAllowHover(false);\n }\n\n window.addEventListener(\"pointermove\", onPointerMove, {\n once: true,\n capture: true,\n });\n window.addEventListener(\"keydown\", onKeyDown, true);\n return () => {\n window.removeEventListener(\"pointermove\", onPointerMove, {\n capture: true,\n });\n window.removeEventListener(\"keydown\", onKeyDown, true);\n };\n }, [allowHover]);\n\n return { allowHover, isOpen, setIsOpen };\n};\n"],"names":["useMenuWideEvents","tree","nodeId","parentId","allowHover","setAllowHover","useState","isOpen","setIsOpen","useEffect","events","on","handleTreeClick","onSubMenuOpen","off","event","emit","onPointerMove","pointerType","onKeyDown","window","addEventListener","once","capture","removeEventListener"],"mappings":"gDAGO,MAAMA,EAAoB,CAC7BC,EACAC,EACAC,KAMA,MAAOC,EAAYC,GAAiBC,GAAS,IACtCC,EAAQC,GAAaF,GAAS,GAKrC,OAAAG,GAAU,KACN,GAAKR,EAYA,OAAAA,EAAAS,OAAOC,GAAG,QAASC,GACnBX,EAAAS,OAAOC,GAAG,WAAYE,GAEpB,KACEZ,EAAAS,OAAOI,IAAI,QAASF,GACpBX,EAAAS,OAAOI,IAAI,WAAYD,EAAa,EAf7C,SAASD,IACLJ,GAAU,EACd,CAEA,SAASK,EAAcE,GACfA,EAAMb,SAAWA,GAAUa,EAAMZ,WAAaA,GAC9CK,GAAU,EAElB,CAO6C,GAE9C,CAACP,EAAMC,EAAQC,IAElBM,GAAU,KACFF,GAAUN,GACVA,EAAKS,OAAOM,KAAK,WAAY,CAAEb,SAAAA,EAAUD,OAAAA,GAAQ,GAEtD,CAACD,EAAMM,EAAQL,EAAQC,IAM1BM,GAAU,KACG,SAAAQ,GAAgBC,YAAAA,IACD,UAAhBA,GACAb,GAAc,EAEtB,CAEA,SAASc,IACLd,GAAc,EAClB,CAEO,OAAAe,OAAAC,iBAAiB,cAAeJ,EAAe,CAClDK,MAAM,EACNC,SAAS,IAENH,OAAAC,iBAAiB,UAAWF,GAAW,GACvC,KACIC,OAAAI,oBAAoB,cAAeP,EAAe,CACrDM,SAAS,IAENH,OAAAI,oBAAoB,UAAWL,GAAW,EAAI,CAAA,GAE1D,CAACf,IAEG,CAAEA,WAAAA,EAAYG,OAAAA,EAAQC,UAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"DismissButton.js","sources":["../../../../src/components/message/DismissButton.tsx"],"sourcesContent":["import React, { ButtonHTMLAttributes, forwardRef } from \"react\";\nimport { CloseIcon } from \"../icon/icons/CloseIcon.js\";\n\nexport interface DismissButtonProps\n extends Exclude<ButtonHTMLAttributes<HTMLButtonElement>, \"disabled\"> {\n label?: string;\n}\n\nexport const DismissButton = forwardRef<HTMLButtonElement, DismissButtonProps>(\n ({ label = \"Lukk\", ...rest }, ref) => {\n return (\n <button ref={ref} type=\"button\" title={label} {...rest}>\n <CloseIcon variant=\"small\" bold />\n <span className=\"jkl-sr-only\">{label}</span>\n </button>\n );\n },\n);\n\nDismissButton.displayName = \"DismissButton\";\n"],"names":["DismissButton","forwardRef","label","rest","ref","jsxs","type","title","children","jsx","CloseIcon","variant","bold","className","displayName"],"mappings":"4IAQO,MAAMA,EAAgBC,GACzB,EAAGC,MAAAA,EAAQ,UAAWC,GAAQC,IAEtBC,EAAC,UAAOD,IAAAA,EAAUE,KAAK,SAASC,MAAOL,KAAWC,EAC9CK,SAAA,CAAAC,EAACC,EAAU,CAAAC,QAAQ,QAAQC,MAAI,IAC9BH,EAAA,OAAA,CAAKI,UAAU,cAAeL,SAAMN,SAMrDF,EAAcc,YAAc"}
1
+ {"version":3,"file":"DismissButton.js","sources":["../../../../src/components/message/DismissButton.tsx"],"sourcesContent":["import React, { type ButtonHTMLAttributes, forwardRef } from \"react\";\nimport { CloseIcon } from \"../icon/icons/CloseIcon.js\";\n\nexport interface DismissButtonProps\n extends Exclude<ButtonHTMLAttributes<HTMLButtonElement>, \"disabled\"> {\n label?: string;\n}\n\nexport const DismissButton = forwardRef<HTMLButtonElement, DismissButtonProps>(\n ({ label = \"Lukk\", ...rest }, ref) => {\n return (\n <button ref={ref} type=\"button\" title={label} {...rest}>\n <CloseIcon variant=\"small\" bold />\n <span className=\"jkl-sr-only\">{label}</span>\n </button>\n );\n },\n);\n\nDismissButton.displayName = \"DismissButton\";\n"],"names":["DismissButton","forwardRef","label","rest","ref","jsxs","type","title","children","jsx","CloseIcon","variant","bold","className","displayName"],"mappings":"4IAQO,MAAMA,EAAgBC,GACzB,EAAGC,MAAAA,EAAQ,UAAWC,GAAQC,IAEtBC,EAAC,UAAOD,IAAAA,EAAUE,KAAK,SAASC,MAAOL,KAAWC,EAC9CK,SAAA,CAAAC,EAACC,EAAU,CAAAC,QAAQ,QAAQC,MAAI,IAC9BH,EAAA,OAAA,CAAKI,UAAU,cAAeL,SAAMN,SAMrDF,EAAcc,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormErrorMessage.js","sources":["../../../../src/components/message/FormErrorMessage.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef, useEffect, useRef } from \"react\";\nimport { useAnimatedHeight } from \"../../hooks/useAnimatedHeight/useAnimatedHeight.js\";\nimport { ErrorMessage } from \"./Message.js\";\nimport { FormErrorMessageProps } from \"./types.js\";\n\nconst defaultMessageProps = {\n title: \"Feil og mangler i skjemaet\",\n};\n\nexport const FormErrorMessage = forwardRef<\n HTMLDivElement,\n FormErrorMessageProps\n>((props, forwardedRef): JSX.Element | null => {\n const { className, errors, isSubmitted, isValid, messageProps, ...rest } =\n props;\n\n const showSummary = isSubmitted && !isValid;\n\n const [messageRef] = useAnimatedHeight<HTMLDivElement>(showSummary, {\n display: \"grid\",\n });\n\n const previousErrors = useRef<Array<string | undefined>>(errors);\n useEffect(() => {\n previousErrors.current = errors;\n }, [errors]);\n const hasNewErrors = errors.length > previousErrors.current.length;\n\n return (\n <div\n ref={forwardedRef}\n className={clsx(\"jkl-form-error-message\", className)}\n {...rest}\n >\n <ErrorMessage\n {...defaultMessageProps}\n {...messageProps}\n ref={messageRef}\n role={hasNewErrors ? \"alert\" : \"presentation\"} // Unngå å repetere hele oppsummeringen etter hvert som feilene rettes\n >\n <ul className=\"jkl-list\">\n {errors\n .filter((error) => typeof error !== \"undefined\")\n .map((error) => (\n <li className=\"jkl-list__item\" key={error}>\n {error}\n </li>\n ))}\n </ul>\n </ErrorMessage>\n </div>\n );\n});\n\nFormErrorMessage.displayName = \"FormErrorMessage\";\n"],"names":["defaultMessageProps","title","FormErrorMessage","forwardRef","props","forwardedRef","className","errors","isSubmitted","isValid","messageProps","rest","showSummary","messageRef","useAnimatedHeight","display","previousErrors","useRef","useEffect","current","hasNewErrors","length","jsx","ref","clsx","children","ErrorMessage","role","filter","error","map","displayName"],"mappings":"uRAMA,MAAMA,EAAsB,CACxBC,MAAO,8BAGEC,EAAmBC,GAG9B,CAACC,EAAOC,KACA,MAAEC,UAAAA,EAAWC,OAAAA,EAAQC,YAAAA,EAAaC,QAAAA,EAASC,aAAAA,KAAiBC,GAC9DP,EAEEQ,EAAcJ,IAAgBC,GAE7BI,GAAcC,EAAkCF,EAAa,CAChEG,QAAS,SAGPC,EAAiBC,EAAkCV,GACzDW,GAAU,KACNF,EAAeG,QAAUZ,CAAAA,GAC1B,CAACA,IACJ,MAAMa,EAAeb,EAAOc,OAASL,EAAeG,QAAQE,OAGxD,OAAAC,EAAC,MAAA,CACGC,IAAKlB,EACLC,UAAWkB,EAAK,yBAA0BlB,MACtCK,EAEJc,SAAAH,EAACI,EAAA,IACO1B,KACAU,EACJa,IAAKV,EACLc,KAAMP,EAAe,QAAU,eAE/BK,SAAAH,EAAC,MAAGhB,UAAU,WACTmB,WACIG,QAAQC,UAAiBA,EAAU,MACnCC,KAAKD,GACDP,EAAA,KAAA,CAAGhB,UAAU,iBACTmB,SAAAI,GAD+BA,UAKpD,IAKZ3B,EAAiB6B,YAAc"}
1
+ {"version":3,"file":"FormErrorMessage.js","sources":["../../../../src/components/message/FormErrorMessage.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef, useEffect, useRef } from \"react\";\nimport { useAnimatedHeight } from \"../../hooks/useAnimatedHeight/useAnimatedHeight.js\";\nimport { ErrorMessage } from \"./Message.js\";\nimport type { FormErrorMessageProps } from \"./types.js\";\n\nconst defaultMessageProps = {\n title: \"Feil og mangler i skjemaet\",\n};\n\nexport const FormErrorMessage = forwardRef<\n HTMLDivElement,\n FormErrorMessageProps\n>((props, forwardedRef): JSX.Element | null => {\n const { className, errors, isSubmitted, isValid, messageProps, ...rest } =\n props;\n\n const showSummary = isSubmitted && !isValid;\n\n const [messageRef] = useAnimatedHeight<HTMLDivElement>(showSummary, {\n display: \"grid\",\n });\n\n const previousErrors = useRef<Array<string | undefined>>(errors);\n useEffect(() => {\n previousErrors.current = errors;\n }, [errors]);\n const hasNewErrors = errors.length > previousErrors.current.length;\n\n return (\n <div\n ref={forwardedRef}\n className={clsx(\"jkl-form-error-message\", className)}\n {...rest}\n >\n <ErrorMessage\n {...defaultMessageProps}\n {...messageProps}\n ref={messageRef}\n role={hasNewErrors ? \"alert\" : \"presentation\"} // Unngå å repetere hele oppsummeringen etter hvert som feilene rettes\n >\n <ul className=\"jkl-list\">\n {errors\n .filter((error) => typeof error !== \"undefined\")\n .map((error) => (\n <li className=\"jkl-list__item\" key={error}>\n {error}\n </li>\n ))}\n </ul>\n </ErrorMessage>\n </div>\n );\n});\n\nFormErrorMessage.displayName = \"FormErrorMessage\";\n"],"names":["defaultMessageProps","title","FormErrorMessage","forwardRef","props","forwardedRef","className","errors","isSubmitted","isValid","messageProps","rest","showSummary","messageRef","useAnimatedHeight","display","previousErrors","useRef","useEffect","current","hasNewErrors","length","jsx","ref","clsx","children","ErrorMessage","role","filter","error","map","displayName"],"mappings":"uRAMA,MAAMA,EAAsB,CACxBC,MAAO,8BAGEC,EAAmBC,GAG9B,CAACC,EAAOC,KACA,MAAEC,UAAAA,EAAWC,OAAAA,EAAQC,YAAAA,EAAaC,QAAAA,EAASC,aAAAA,KAAiBC,GAC9DP,EAEEQ,EAAcJ,IAAgBC,GAE7BI,GAAcC,EAAkCF,EAAa,CAChEG,QAAS,SAGPC,EAAiBC,EAAkCV,GACzDW,GAAU,KACNF,EAAeG,QAAUZ,CAAAA,GAC1B,CAACA,IACJ,MAAMa,EAAeb,EAAOc,OAASL,EAAeG,QAAQE,OAGxD,OAAAC,EAAC,MAAA,CACGC,IAAKlB,EACLC,UAAWkB,EAAK,yBAA0BlB,MACtCK,EAEJc,SAAAH,EAACI,EAAA,IACO1B,KACAU,EACJa,IAAKV,EACLc,KAAMP,EAAe,QAAU,eAE/BK,SAAAH,EAAC,MAAGhB,UAAU,WACTmB,WACIG,QAAQC,UAAiBA,EAAU,MACnCC,KAAKD,GACDP,EAAA,KAAA,CAAGhB,UAAU,iBACTmB,SAAAI,GAD+BA,UAKpD,IAKZ3B,EAAiB6B,YAAc"}
@@ -1,2 +1,2 @@
1
- import{jsx as s,jsxs as e}from"react/jsx-runtime";import{c as a}from"../../../clsx-BeLtu-UY.js";import n,{forwardRef as i}from"react";import{useId as r}from"../../hooks/useId/useId.js";import{ErrorIcon as o}from"../icon/icons/ErrorIcon.js";import{InfoIcon as c}from"../icon/icons/InfoIcon.js";import{SuccessIcon as l}from"../icon/icons/SuccessIcon.js";import{WarningIcon as t}from"../icon/icons/WarningIcon.js";import{DismissButton as m}from"./DismissButton.js";const d=e=>{switch(e){case"error":return s(o,{className:"jkl-message__icon"});case"info":return s(c,{className:"jkl-message__icon"});case"success":return s(l,{className:"jkl-message__icon"});case"warning":return s(t,{className:"jkl-message__icon"});default:return null}};function g(o){const c=i(((i,c)=>{const{id:l,title:t,fullWidth:g,density:u,className:f="",dismissed:j,dismissAction:p,children:k,role:h,..._}=i,I=r(l||"jkl-message",{generateSuffix:!l}),N=n.Children.map(k,(s=>"string"==typeof s)),M=null!=N&&N[0]?s("p",{children:k}):k;return e("div",{..._,id:l,ref:c,className:a("jkl-message","jkl-message--"+o,f,{"jkl-message--full":g,"jkl-message--dismissed":j}),role:h,"data-density":u,children:[d(o),e("div",{className:"jkl-message__content","data-theme":"light",children:[t&&s("p",{className:"jkl-message__title",children:t}),s("div",{className:"jkl-message__message",children:M})]}),(null==p?void 0:p.handleDismiss)&&s(m,{"data-theme":"light","aria-controls":I,className:"jkl-message__dismiss-button",label:p.buttonTitle||"Lukk",onClick:p.handleDismiss})]})}));return c.displayName="Message",c}const u=g("info");u.displayName="InfoMessage";const f=g("error");f.displayName="ErrorMessage";const j=g("warning");j.displayName="WarningMessage";const p=g("success");p.displayName="SuccessMessage";export{f as ErrorMessage,u as InfoMessage,p as SuccessMessage,j as WarningMessage};
1
+ import{jsx as s,jsxs as e}from"react/jsx-runtime";import{c as a}from"../../../clsx-BeLtu-UY.js";import n,{forwardRef as i}from"react";import{useId as r}from"../../hooks/useId/useId.js";import{ErrorIcon as o}from"../icon/icons/ErrorIcon.js";import{InfoIcon as c}from"../icon/icons/InfoIcon.js";import{SuccessIcon as l}from"../icon/icons/SuccessIcon.js";import{WarningIcon as t}from"../icon/icons/WarningIcon.js";import{DismissButton as m}from"./DismissButton.js";const d=e=>{switch(e){case"error":return s(o,{className:"jkl-message__icon"});case"info":return s(c,{className:"jkl-message__icon"});case"success":return s(l,{className:"jkl-message__icon"});case"warning":return s(t,{className:"jkl-message__icon"});default:return null}};function g(o){const c=i(((i,c)=>{const{id:l,title:t,fullWidth:g,density:u,className:f="",dismissed:j,dismissAction:p,children:k,role:h,..._}=i,I=r(l||"jkl-message",{generateSuffix:!l}),N=n.Children.map(k,(s=>"string"==typeof s)),M=null!=N&&N[0]?s("p",{children:k}):k;return e("div",{..._,id:l,ref:c,className:a("jkl-message",`jkl-message--${o}`,f,{"jkl-message--full":g,"jkl-message--dismissed":j}),role:h,"data-density":u,children:[d(o),e("div",{className:"jkl-message__content","data-theme":"light",children:[t&&s("p",{className:"jkl-message__title",children:t}),s("div",{className:"jkl-message__message",children:M})]}),(null==p?void 0:p.handleDismiss)&&s(m,{"data-theme":"light","aria-controls":I,className:"jkl-message__dismiss-button",label:p.buttonTitle||"Lukk",onClick:p.handleDismiss})]})}));return c.displayName="Message",c}const u=g("info");u.displayName="InfoMessage";const f=g("error");f.displayName="ErrorMessage";const j=g("warning");j.displayName="WarningMessage";const p=g("success");p.displayName="SuccessMessage";export{f as ErrorMessage,u as InfoMessage,p as SuccessMessage,j as WarningMessage};
2
2
  //# sourceMappingURL=Message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","sources":["../../../../src/components/message/Message.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { ErrorIcon } from \"../icon/icons/ErrorIcon.js\";\nimport { InfoIcon } from \"../icon/icons/InfoIcon.js\";\nimport { SuccessIcon } from \"../icon/icons/SuccessIcon.js\";\nimport { WarningIcon } from \"../icon/icons/WarningIcon.js\";\nimport { DismissButton } from \"./DismissButton.js\";\nimport { MessageProps } from \"./types.js\";\n\ntype messageTypes = \"info\" | \"error\" | \"success\" | \"warning\";\n\nconst getIcon = (messageType: messageTypes) => {\n switch (messageType) {\n case \"error\":\n return <ErrorIcon className=\"jkl-message__icon\" />;\n case \"info\":\n return <InfoIcon className=\"jkl-message__icon\" />;\n case \"success\":\n return <SuccessIcon className=\"jkl-message__icon\" />;\n case \"warning\":\n return <WarningIcon className=\"jkl-message__icon\" />;\n default:\n return null;\n }\n};\n\nfunction messageFactory(messageType: messageTypes) {\n const Message = forwardRef<HTMLDivElement, MessageProps>((props, ref) => {\n const {\n id,\n title,\n fullWidth,\n density,\n className = \"\",\n dismissed,\n dismissAction,\n children,\n role,\n ...rest\n } = props;\n\n const boxId = useId(id || \"jkl-message\", { generateSuffix: !id });\n\n const hasStringChild = React.Children.map(\n children,\n (child) => typeof child === \"string\",\n );\n const newChildren = hasStringChild?.[0] ? <p>{children}</p> : children;\n\n return (\n <div\n {...rest}\n id={id}\n ref={ref}\n className={clsx(\n \"jkl-message\",\n \"jkl-message--\" + messageType,\n className,\n {\n \"jkl-message--full\": fullWidth,\n \"jkl-message--dismissed\": dismissed,\n },\n )}\n role={role}\n data-density={density}\n >\n {getIcon(messageType)}\n <div className=\"jkl-message__content\" data-theme=\"light\">\n {title && <p className=\"jkl-message__title\">{title}</p>}\n <div className=\"jkl-message__message\">{newChildren}</div>\n </div>\n {dismissAction?.handleDismiss && (\n <DismissButton\n data-theme=\"light\"\n aria-controls={boxId}\n className=\"jkl-message__dismiss-button\"\n label={dismissAction.buttonTitle || \"Lukk\"}\n onClick={dismissAction.handleDismiss}\n />\n )}\n </div>\n );\n });\n\n Message.displayName = \"Message\";\n\n return Message;\n}\n\nexport const InfoMessage = messageFactory(\"info\");\nInfoMessage.displayName = \"InfoMessage\";\nexport const ErrorMessage = messageFactory(\"error\");\nErrorMessage.displayName = \"ErrorMessage\";\nexport const WarningMessage = messageFactory(\"warning\");\nWarningMessage.displayName = \"WarningMessage\";\nexport const SuccessMessage = messageFactory(\"success\");\nSuccessMessage.displayName = \"SuccessMessage\";\n"],"names":["getIcon","messageType","jsx","ErrorIcon","className","InfoIcon","SuccessIcon","WarningIcon","messageFactory","Message","forwardRef","props","ref","id","title","fullWidth","density","dismissed","dismissAction","children","role","rest","boxId","useId","generateSuffix","hasStringChild","React","Children","map","child","newChildren","jsxs","clsx","handleDismiss","DismissButton","label","buttonTitle","onClick","displayName","InfoMessage","ErrorMessage","WarningMessage","SuccessMessage"],"mappings":"8cAYA,MAAMA,EAAWC,IACb,OAAQA,GACJ,IAAK,QACM,OAAAC,EAACC,EAAU,CAAAC,UAAU,sBAChC,IAAK,OACM,OAAAF,EAACG,EAAS,CAAAD,UAAU,sBAC/B,IAAK,UACM,OAAAF,EAACI,EAAY,CAAAF,UAAU,sBAClC,IAAK,UACM,OAAAF,EAACK,EAAY,CAAAH,UAAU,sBAClC,QACW,OAAA,KACf,EAGJ,SAASI,EAAeP,GACpB,MAAMQ,EAAUC,GAAyC,CAACC,EAAOC,KACvD,MACFC,GAAAA,EACAC,MAAAA,EACAC,UAAAA,EACAC,QAAAA,EACAZ,UAAAA,EAAY,GACZa,UAAAA,EACAC,cAAAA,EACAC,SAAAA,EACAC,KAAAA,KACGC,GACHV,EAEEW,EAAQC,EAAMV,GAAM,cAAe,CAAEW,gBAAiBX,IAEtDY,EAAiBC,EAAMC,SAASC,IAClCT,GACCU,GAA2B,iBAAVA,IAEhBC,EAAc,MAAAL,GAAAA,EAAiB,GAAMvB,EAAA,IAAA,CAAGiB,SAAAA,IAAgBA,EAG1D,OAAAY,EAAC,MAAA,IACOV,EACJR,GAAAA,EACAD,IAAAA,EACAR,UAAW4B,EACP,cACA,gBAAkB/B,EAClBG,EACA,CACI,oBAAqBW,EACrB,yBAA0BE,IAGlCG,KAAAA,EACA,eAAcJ,EAEbG,SAAA,CAAAnB,EAAQC,GACR8B,EAAA,MAAA,CAAI3B,UAAU,uBAAuB,aAAW,QAC5Ce,SAAA,CAAAL,GAAUZ,EAAA,IAAA,CAAEE,UAAU,qBAAsBe,SAAML,IAClDZ,EAAA,MAAA,CAAIE,UAAU,uBAAwBe,SAAYW,QAEtD,MAAAZ,OAAA,EAAAA,EAAee,gBACZ/B,EAACgC,EAAA,CACG,aAAW,QACX,gBAAeZ,EACflB,UAAU,8BACV+B,MAAOjB,EAAckB,aAAe,OACpCC,QAASnB,EAAce,kBAC3B,IAMhBxB,OAAAA,EAAQ6B,YAAc,UAEf7B,CACX,CAEa,MAAA8B,EAAc/B,EAAe,QAC1C+B,EAAYD,YAAc,cACb,MAAAE,EAAehC,EAAe,SAC3CgC,EAAaF,YAAc,eACd,MAAAG,EAAiBjC,EAAe,WAC7CiC,EAAeH,YAAc,iBAChB,MAAAI,EAAiBlC,EAAe,WAC7CkC,EAAeJ,YAAc"}
1
+ {"version":3,"file":"Message.js","sources":["../../../../src/components/message/Message.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { ErrorIcon } from \"../icon/icons/ErrorIcon.js\";\nimport { InfoIcon } from \"../icon/icons/InfoIcon.js\";\nimport { SuccessIcon } from \"../icon/icons/SuccessIcon.js\";\nimport { WarningIcon } from \"../icon/icons/WarningIcon.js\";\nimport { DismissButton } from \"./DismissButton.js\";\nimport type { MessageProps } from \"./types.js\";\n\ntype messageTypes = \"info\" | \"error\" | \"success\" | \"warning\";\n\nconst getIcon = (messageType: messageTypes) => {\n switch (messageType) {\n case \"error\":\n return <ErrorIcon className=\"jkl-message__icon\" />;\n case \"info\":\n return <InfoIcon className=\"jkl-message__icon\" />;\n case \"success\":\n return <SuccessIcon className=\"jkl-message__icon\" />;\n case \"warning\":\n return <WarningIcon className=\"jkl-message__icon\" />;\n default:\n return null;\n }\n};\n\nfunction messageFactory(messageType: messageTypes) {\n const Message = forwardRef<HTMLDivElement, MessageProps>((props, ref) => {\n const {\n id,\n title,\n fullWidth,\n density,\n className = \"\",\n dismissed,\n dismissAction,\n children,\n role,\n ...rest\n } = props;\n\n const boxId = useId(id || \"jkl-message\", { generateSuffix: !id });\n\n const hasStringChild = React.Children.map(\n children,\n (child) => typeof child === \"string\",\n );\n const newChildren = hasStringChild?.[0] ? <p>{children}</p> : children;\n\n return (\n <div\n {...rest}\n id={id}\n ref={ref}\n className={clsx(\n \"jkl-message\",\n `jkl-message--${messageType}`,\n className,\n {\n \"jkl-message--full\": fullWidth,\n \"jkl-message--dismissed\": dismissed,\n },\n )}\n role={role}\n data-density={density}\n >\n {getIcon(messageType)}\n <div className=\"jkl-message__content\" data-theme=\"light\">\n {title && <p className=\"jkl-message__title\">{title}</p>}\n <div className=\"jkl-message__message\">{newChildren}</div>\n </div>\n {dismissAction?.handleDismiss && (\n <DismissButton\n data-theme=\"light\"\n aria-controls={boxId}\n className=\"jkl-message__dismiss-button\"\n label={dismissAction.buttonTitle || \"Lukk\"}\n onClick={dismissAction.handleDismiss}\n />\n )}\n </div>\n );\n });\n\n Message.displayName = \"Message\";\n\n return Message;\n}\n\nexport const InfoMessage = messageFactory(\"info\");\nInfoMessage.displayName = \"InfoMessage\";\nexport const ErrorMessage = messageFactory(\"error\");\nErrorMessage.displayName = \"ErrorMessage\";\nexport const WarningMessage = messageFactory(\"warning\");\nWarningMessage.displayName = \"WarningMessage\";\nexport const SuccessMessage = messageFactory(\"success\");\nSuccessMessage.displayName = \"SuccessMessage\";\n"],"names":["getIcon","messageType","jsx","ErrorIcon","className","InfoIcon","SuccessIcon","WarningIcon","messageFactory","Message","forwardRef","props","ref","id","title","fullWidth","density","dismissed","dismissAction","children","role","rest","boxId","useId","generateSuffix","hasStringChild","React","Children","map","child","newChildren","jsxs","clsx","handleDismiss","DismissButton","label","buttonTitle","onClick","displayName","InfoMessage","ErrorMessage","WarningMessage","SuccessMessage"],"mappings":"8cAYA,MAAMA,EAAWC,IACb,OAAQA,GACJ,IAAK,QACM,OAAAC,EAACC,EAAU,CAAAC,UAAU,sBAChC,IAAK,OACM,OAAAF,EAACG,EAAS,CAAAD,UAAU,sBAC/B,IAAK,UACM,OAAAF,EAACI,EAAY,CAAAF,UAAU,sBAClC,IAAK,UACM,OAAAF,EAACK,EAAY,CAAAH,UAAU,sBAClC,QACW,OAAA,KACf,EAGJ,SAASI,EAAeP,GACpB,MAAMQ,EAAUC,GAAyC,CAACC,EAAOC,KACvD,MACFC,GAAAA,EACAC,MAAAA,EACAC,UAAAA,EACAC,QAAAA,EACAZ,UAAAA,EAAY,GACZa,UAAAA,EACAC,cAAAA,EACAC,SAAAA,EACAC,KAAAA,KACGC,GACHV,EAEEW,EAAQC,EAAMV,GAAM,cAAe,CAAEW,gBAAiBX,IAEtDY,EAAiBC,EAAMC,SAASC,IAClCT,GACCU,GAA2B,iBAAVA,IAEhBC,EAAc,MAAAL,GAAAA,EAAiB,GAAMvB,EAAA,IAAA,CAAGiB,SAAAA,IAAgBA,EAG1D,OAAAY,EAAC,MAAA,IACOV,EACJR,GAAAA,EACAD,IAAAA,EACAR,UAAW4B,EACP,cACA,gBAAgB/B,IAChBG,EACA,CACI,oBAAqBW,EACrB,yBAA0BE,IAGlCG,KAAAA,EACA,eAAcJ,EAEbG,SAAA,CAAAnB,EAAQC,GACR8B,EAAA,MAAA,CAAI3B,UAAU,uBAAuB,aAAW,QAC5Ce,SAAA,CAAAL,GAAUZ,EAAA,IAAA,CAAEE,UAAU,qBAAsBe,SAAML,IAClDZ,EAAA,MAAA,CAAIE,UAAU,uBAAwBe,SAAYW,QAEtD,MAAAZ,OAAA,EAAAA,EAAee,gBACZ/B,EAACgC,EAAA,CACG,aAAW,QACX,gBAAeZ,EACflB,UAAU,8BACV+B,MAAOjB,EAAckB,aAAe,OACpCC,QAASnB,EAAce,kBAC3B,IAMhBxB,OAAAA,EAAQ6B,YAAc,UAEf7B,CACX,CAEa,MAAA8B,EAAc/B,EAAe,QAC1C+B,EAAYD,YAAc,cACb,MAAAE,EAAehC,EAAe,SAC3CgC,EAAaF,YAAc,eACd,MAAAG,EAAiBjC,EAAe,WAC7CiC,EAAeH,YAAc,iBAChB,MAAAI,EAAiBlC,EAAe,WAC7CkC,EAAeJ,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorMessage.stories.js","sources":["../../../../../src/components/message/stories/ErrorMessage.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { ErrorMessage as MessageComponent } from \"../Message.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Message\",\n component: MessageComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MessageComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const ErrorMessage: Story = {\n args: {\n children: \"Hei, jeg er en melding av typen error\",\n title: \"Error\",\n dismissAction: { handleDismiss() {} },\n },\n};\n"],"names":["meta","title","component","MessageComponent","parameters","layout","tags","ErrorMessage","args","children","dismissAction","handleDismiss"],"mappings":"oFAIA,MAAMA,EAAO,CACTC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAsB,CAC/BC,KAAM,CACFC,SAAU,wCACVR,MAAO,QACPS,cAAe,CAAEC,gBAAgB"}
1
+ {"version":3,"file":"ErrorMessage.stories.js","sources":["../../../../../src/components/message/stories/ErrorMessage.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { ErrorMessage as MessageComponent } from \"../Message.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Message\",\n component: MessageComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MessageComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const ErrorMessage: Story = {\n args: {\n children: \"Hei, jeg er en melding av typen error\",\n title: \"Error\",\n dismissAction: { handleDismiss() {} },\n },\n};\n"],"names":["meta","title","component","MessageComponent","parameters","layout","tags","ErrorMessage","args","children","dismissAction","handleDismiss"],"mappings":"oFAIA,MAAMA,EAAO,CACTC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAsB,CAC/BC,KAAM,CACFC,SAAU,wCACVR,MAAO,QACPS,cAAe,CAAEC,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormErrorMessage.stories.js","sources":["../../../../../src/components/message/stories/FormErrorMessage.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { FormErrorMessage as MessageComponent } from \"../FormErrorMessage.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Message\",\n component: MessageComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MessageComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const FormErrorMessage: Story = {\n args: {\n errors: [\"Du må oppgi fornavn\", \"Du må oppgi etternavn\"],\n isSubmitted: true,\n isValid: false,\n },\n};\n"],"names":["meta","title","component","MessageComponent","parameters","layout","tags","FormErrorMessage","args","errors","isSubmitted","isValid"],"mappings":"iGAIA,MAAMA,EAAO,CACTC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAA0B,CACnCC,KAAM,CACFC,OAAQ,CAAC,sBAAuB,yBAChCC,aAAa,EACbC,SAAS"}
1
+ {"version":3,"file":"FormErrorMessage.stories.js","sources":["../../../../../src/components/message/stories/FormErrorMessage.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { FormErrorMessage as MessageComponent } from \"../FormErrorMessage.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Message\",\n component: MessageComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MessageComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const FormErrorMessage: Story = {\n args: {\n errors: [\"Du må oppgi fornavn\", \"Du må oppgi etternavn\"],\n isSubmitted: true,\n isValid: false,\n },\n};\n"],"names":["meta","title","component","MessageComponent","parameters","layout","tags","FormErrorMessage","args","errors","isSubmitted","isValid"],"mappings":"iGAIA,MAAMA,EAAO,CACTC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAA0B,CACnCC,KAAM,CACFC,OAAQ,CAAC,sBAAuB,yBAChCC,aAAa,EACbC,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"InfoMessage.stories.js","sources":["../../../../../src/components/message/stories/InfoMessage.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { InfoMessage as MessageComponent } from \"../Message.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Message\",\n component: MessageComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MessageComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const InfoMessage: Story = {\n args: {\n children: `Hei, jeg er en melding av typen info`,\n title: \"Info\",\n dismissAction: { handleDismiss() {} },\n },\n};\n"],"names":["meta","title","component","MessageComponent","parameters","layout","tags","InfoMessage","args","children","dismissAction","handleDismiss"],"mappings":"mFAIA,MAAMA,EAAO,CACTC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAqB,CAC9BC,KAAM,CACFC,SAAU,uCACVR,MAAO,OACPS,cAAe,CAAEC,gBAAgB"}
1
+ {"version":3,"file":"InfoMessage.stories.js","sources":["../../../../../src/components/message/stories/InfoMessage.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { InfoMessage as MessageComponent } from \"../Message.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Message\",\n component: MessageComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MessageComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const InfoMessage: Story = {\n args: {\n children: \"Hei, jeg er en melding av typen info\",\n title: \"Info\",\n dismissAction: { handleDismiss() {} },\n },\n};\n"],"names":["meta","title","component","MessageComponent","parameters","layout","tags","InfoMessage","args","children","dismissAction","handleDismiss"],"mappings":"mFAIA,MAAMA,EAAO,CACTC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAqB,CAC9BC,KAAM,CACFC,SAAU,uCACVR,MAAO,OACPS,cAAe,CAAEC,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SuccessMessage.stories.js","sources":["../../../../../src/components/message/stories/SuccessMessage.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { SuccessMessage as MessageComponent } from \"../Message.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Message\",\n component: MessageComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MessageComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const SuccessMessage: Story = {\n args: {\n children: \"Hei, jeg er en melding av typen success\",\n title: \"Success\",\n dismissAction: { handleDismiss() {} },\n },\n};\n"],"names":["meta","title","component","MessageComponent","parameters","layout","tags","SuccessMessage","args","children","dismissAction","handleDismiss"],"mappings":"sFAIA,MAAMA,EAAO,CACTC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAwB,CACjCC,KAAM,CACFC,SAAU,0CACVR,MAAO,UACPS,cAAe,CAAEC,gBAAgB"}
1
+ {"version":3,"file":"SuccessMessage.stories.js","sources":["../../../../../src/components/message/stories/SuccessMessage.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { SuccessMessage as MessageComponent } from \"../Message.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Message\",\n component: MessageComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MessageComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const SuccessMessage: Story = {\n args: {\n children: \"Hei, jeg er en melding av typen success\",\n title: \"Success\",\n dismissAction: { handleDismiss() {} },\n },\n};\n"],"names":["meta","title","component","MessageComponent","parameters","layout","tags","SuccessMessage","args","children","dismissAction","handleDismiss"],"mappings":"sFAIA,MAAMA,EAAO,CACTC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAwB,CACjCC,KAAM,CACFC,SAAU,0CACVR,MAAO,UACPS,cAAe,CAAEC,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"WarningMessage.stories.js","sources":["../../../../../src/components/message/stories/WarningMessage.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { WarningMessage as MessageComponent } from \"../Message.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Message\",\n component: MessageComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MessageComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const WarningMessage: Story = {\n args: {\n children: \"Hei, jeg er en melding av typen warning\",\n title: \"Warning\",\n dismissAction: { handleDismiss() {} },\n },\n};\n"],"names":["meta","title","component","MessageComponent","parameters","layout","tags","WarningMessage","args","children","dismissAction","handleDismiss"],"mappings":"sFAIA,MAAMA,EAAO,CACTC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAwB,CACjCC,KAAM,CACFC,SAAU,0CACVR,MAAO,UACPS,cAAe,CAAEC,gBAAgB"}
1
+ {"version":3,"file":"WarningMessage.stories.js","sources":["../../../../../src/components/message/stories/WarningMessage.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { WarningMessage as MessageComponent } from \"../Message.js\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Message\",\n component: MessageComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof MessageComponent>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const WarningMessage: Story = {\n args: {\n children: \"Hei, jeg er en melding av typen warning\",\n title: \"Warning\",\n dismissAction: { handleDismiss() {} },\n },\n};\n"],"names":["meta","title","component","MessageComponent","parameters","layout","tags","WarningMessage","args","children","dismissAction","handleDismiss"],"mappings":"sFAIA,MAAMA,EAAO,CACTC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAwB,CACjCC,KAAM,CACFC,SAAU,0CACVR,MAAO,UACPS,cAAe,CAAEC,gBAAgB"}
@@ -1,2 +1,2 @@
1
- import{jsx as a}from"react/jsx-runtime";import{c as s}from"../../../clsx-BeLtu-UY.js";import{forwardRef as l}from"react";import{CloseIcon as o}from"../icon/icons/CloseIcon.js";import{IconButton as e}from"../icon-button/IconButton.js";const d=l((({className:l,...o},e)=>a("div",{className:s("jkl-modal-container",l),...o,ref:e,"data-portal":!0})));d.displayName="ModalContainer";const t=l((({className:l,transparent:o,...e},d)=>a("div",{className:s("jkl-modal-overlay",l,{"jkl-modal-overlay--transparent":o}),...e,ref:d})));t.displayName="ModalOverlay";const m=l((({className:l,component:o,padding:e,style:d,...t},m)=>a(o||"div",{className:s("jkl jkl-modal",l),style:{"--jkl-modal-padding":e?`var(--jkl-spacing-${e})`:void 0,...d},...t,ref:m})));m.displayName="Modal";const c=l((({className:l,...o},e)=>a("div",{className:s("jkl-modal-header",l),...o,ref:e})));c.displayName="ModalHeader";const r=l((({className:l,...o},e)=>a("p",{className:s("jkl-modal-title",l),...o,ref:e})));r.displayName="ModalTitle";const n=l((({className:l,...d},t)=>a(e,{className:s("jkl-modal-close",l),"data-testautoid":"jkl-modal-close",...d,ref:t,children:a(o,{variant:"medium"})})));n.displayName="ModalCloseButton";const i=l((({className:l,...o},e)=>a("div",{className:s("jkl-modal-body",l),...o,ref:e})));i.displayName="ModalBody";const N=l((({className:l,...o},e)=>a("div",{className:s("jkl-modal-actions",l),...o,ref:e})));N.displayName="ModalActions";export{m as Modal,N as ModalActions,i as ModalBody,n as ModalCloseButton,d as ModalContainer,c as ModalHeader,t as ModalOverlay,r as ModalTitle};
1
+ import{jsx as a}from"react/jsx-runtime";import{c as s}from"../../../clsx-BeLtu-UY.js";import{forwardRef as l}from"react";import{IconButton as o}from"../icon-button/IconButton.js";import{CloseIcon as e}from"../icon/icons/CloseIcon.js";const d=l((({className:l,...o},e)=>a("div",{className:s("jkl-modal-container",l),...o,ref:e,"data-portal":!0})));d.displayName="ModalContainer";const t=l((({className:l,transparent:o,...e},d)=>a("div",{className:s("jkl-modal-overlay",l,{"jkl-modal-overlay--transparent":o}),...e,ref:d})));t.displayName="ModalOverlay";const m=l((({className:l,component:o,padding:e,style:d,...t},m)=>a(o||"div",{className:s("jkl jkl-modal",l),style:{"--jkl-modal-padding":e?`var(--jkl-spacing-${e})`:void 0,...d},...t,ref:m})));m.displayName="Modal";const c=l((({className:l,...o},e)=>a("div",{className:s("jkl-modal-header",l),...o,ref:e})));c.displayName="ModalHeader";const r=l((({className:l,...o},e)=>a("p",{className:s("jkl-modal-title",l),...o,ref:e})));r.displayName="ModalTitle";const n=l((({className:l,...d},t)=>a(o,{className:s("jkl-modal-close",l),"data-testautoid":"jkl-modal-close",...d,ref:t,children:a(e,{variant:"medium"})})));n.displayName="ModalCloseButton";const i=l((({className:l,...o},e)=>a("div",{className:s("jkl-modal-body",l),...o,ref:e})));i.displayName="ModalBody";const N=l((({className:l,...o},e)=>a("div",{className:s("jkl-modal-actions",l),...o,ref:e})));N.displayName="ModalActions";export{m as Modal,N as ModalActions,i as ModalBody,n as ModalCloseButton,d as ModalContainer,c as ModalHeader,t as ModalOverlay,r as ModalTitle};
2
2
  //# sourceMappingURL=Modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { CloseIcon } from \"../icon/icons/CloseIcon.js\";\nimport { IconButton } from \"../icon-button/IconButton.js\";\nimport { IconButtonProps } from \"../icon-button/types.js\";\nimport {\n BaseModalProps,\n ModalConfig,\n ModalOverlayProps,\n ModalProps,\n} from \"./types.js\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalContainer = forwardRef<\n HTMLDivElement,\n ModalConfig[\"container\"] & BaseModalProps\n>(({ className, ...rest }, ref) => {\n // TODO: 'data-portal' fjernes når modalen tar i bruk Popover komponenten. Issue: https://github.com/fremtind/jokul/issues/4356\n return (\n <div\n className={clsx(\"jkl-modal-container\", className)}\n {...rest}\n ref={ref}\n data-portal\n />\n );\n});\nModalContainer.displayName = \"ModalContainer\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalOverlay = forwardRef<HTMLDivElement, ModalOverlayProps>(\n ({ className, transparent, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-overlay\", className, {\n \"jkl-modal-overlay--transparent\": transparent,\n })}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalOverlay.displayName = \"ModalOverlay\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const Modal = forwardRef<HTMLElement, ModalConfig[\"modal\"] & ModalProps>(\n ({ className, component, padding, style, ...rest }, ref) => {\n const C = component || \"div\";\n return (\n <C\n className={clsx(\"jkl jkl-modal\", className)}\n style={\n {\n \"--jkl-modal-padding\": padding\n ? `var(--jkl-spacing-${padding})`\n : undefined,\n ...style,\n } as React.CSSProperties\n }\n {...rest}\n ref={ref}\n />\n );\n },\n);\nModal.displayName = \"Modal\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalHeader = forwardRef<HTMLDivElement, BaseModalProps>(\n ({ className, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-header\", className)}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalHeader.displayName = \"ModalHeader\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalTitle = forwardRef<\n HTMLParagraphElement,\n ModalConfig[\"title\"] & BaseModalProps\n>(({ className, ...rest }, ref) => (\n <p className={clsx(\"jkl-modal-title\", className)} {...rest} ref={ref} />\n));\nModalTitle.displayName = \"ModalTitle\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalCloseButton = forwardRef<\n HTMLButtonElement,\n Omit<ModalConfig[\"closeButton\"], \"onClick\"> &\n BaseModalProps &\n IconButtonProps\n>(({ className, ...rest }, ref) => (\n <IconButton\n className={clsx(\"jkl-modal-close\", className)}\n data-testautoid=\"jkl-modal-close\"\n {...rest}\n ref={ref}\n >\n <CloseIcon variant=\"medium\" />\n </IconButton>\n));\nModalCloseButton.displayName = \"ModalCloseButton\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalBody = forwardRef<HTMLDivElement, BaseModalProps>(\n ({ className, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-body\", className)}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalBody.displayName = \"ModalBody\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalActions = forwardRef<HTMLDivElement, BaseModalProps>(\n ({ className, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-actions\", className)}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalActions.displayName = \"ModalActions\";\n"],"names":["ModalContainer","forwardRef","className","rest","ref","jsx","clsx","displayName","ModalOverlay","transparent","Modal","component","padding","style","ModalHeader","ModalTitle","ModalCloseButton","IconButton","children","CloseIcon","variant","ModalBody","ModalActions"],"mappings":"0OAea,MAAAA,EAAiBC,GAG5B,EAAGC,UAAAA,KAAcC,GAAQC,IAGnBC,EAAC,MAAA,CACGH,UAAWI,EAAK,sBAAuBJ,MACnCC,EACJC,IAAAA,EACA,eAAW,MAIvBJ,EAAeO,YAAc,iBAKtB,MAAMC,EAAeP,GACxB,EAAGC,UAAAA,EAAWO,YAAAA,KAAgBN,GAAQC,IAClCC,EAAC,MAAA,CACGH,UAAWI,EAAK,oBAAqBJ,EAAW,CAC5C,iCAAkCO,OAElCN,EACJC,IAAAA,MAIZI,EAAaD,YAAc,eAKpB,MAAMG,EAAQT,GACjB,EAAGC,UAAAA,EAAWS,UAAAA,EAAWC,QAAAA,EAASC,MAAAA,KAAUV,GAAQC,IAG5CC,EAFMM,GAAa,MAElB,CACGT,UAAWI,EAAK,gBAAiBJ,GACjCW,MACI,CACI,sBAAuBD,EACjB,qBAAqBA,UACrB,KACHC,MAGPV,EACJC,IAAAA,MAKhBM,EAAMH,YAAc,QAKb,MAAMO,EAAcb,GACvB,EAAGC,UAAAA,KAAcC,GAAQC,IACrBC,EAAC,MAAA,CACGH,UAAWI,EAAK,mBAAoBJ,MAChCC,EACJC,IAAAA,MAIZU,EAAYP,YAAc,cAKnB,MAAMQ,EAAad,GAGxB,EAAGC,UAAAA,KAAcC,GAAQC,MACtB,IAAE,CAAAF,UAAWI,EAAK,kBAAmBJ,MAAgBC,EAAMC,IAAAA,MAEhEW,EAAWR,YAAc,aAKZ,MAAAS,EAAmBf,GAK9B,EAAGC,UAAAA,KAAcC,GAAQC,IACvBC,EAACY,EAAA,CACGf,UAAWI,EAAK,kBAAmBJ,GACnC,kBAAgB,qBACZC,EACJC,IAAAA,EAEAc,SAAAb,EAACc,EAAU,CAAAC,QAAQ,eAG3BJ,EAAiBT,YAAc,mBAKxB,MAAMc,EAAYpB,GACrB,EAAGC,UAAAA,KAAcC,GAAQC,IACrBC,EAAC,MAAA,CACGH,UAAWI,EAAK,iBAAkBJ,MAC9BC,EACJC,IAAAA,MAIZiB,EAAUd,YAAc,YAKjB,MAAMe,EAAerB,GACxB,EAAGC,UAAAA,KAAcC,GAAQC,IACrBC,EAAC,MAAA,CACGH,UAAWI,EAAK,oBAAqBJ,MACjCC,EACJC,IAAAA,MAIZkB,EAAaf,YAAc"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { IconButton } from \"../icon-button/IconButton.js\";\nimport type { IconButtonProps } from \"../icon-button/types.js\";\nimport { CloseIcon } from \"../icon/icons/CloseIcon.js\";\nimport type {\n BaseModalProps,\n ModalConfig,\n ModalOverlayProps,\n ModalProps,\n} from \"./types.js\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalContainer = forwardRef<\n HTMLDivElement,\n ModalConfig[\"container\"] & BaseModalProps\n>(({ className, ...rest }, ref) => {\n // TODO: 'data-portal' fjernes når modalen tar i bruk Popover komponenten. Issue: https://github.com/fremtind/jokul/issues/4356\n return (\n <div\n className={clsx(\"jkl-modal-container\", className)}\n {...rest}\n ref={ref}\n data-portal\n />\n );\n});\nModalContainer.displayName = \"ModalContainer\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalOverlay = forwardRef<HTMLDivElement, ModalOverlayProps>(\n ({ className, transparent, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-overlay\", className, {\n \"jkl-modal-overlay--transparent\": transparent,\n })}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalOverlay.displayName = \"ModalOverlay\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const Modal = forwardRef<HTMLElement, ModalConfig[\"modal\"] & ModalProps>(\n ({ className, component, padding, style, ...rest }, ref) => {\n const C = component || \"div\";\n return (\n <C\n className={clsx(\"jkl jkl-modal\", className)}\n style={\n {\n \"--jkl-modal-padding\": padding\n ? `var(--jkl-spacing-${padding})`\n : undefined,\n ...style,\n } as React.CSSProperties\n }\n {...rest}\n ref={ref}\n />\n );\n },\n);\nModal.displayName = \"Modal\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalHeader = forwardRef<HTMLDivElement, BaseModalProps>(\n ({ className, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-header\", className)}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalHeader.displayName = \"ModalHeader\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalTitle = forwardRef<\n HTMLParagraphElement,\n ModalConfig[\"title\"] & BaseModalProps\n>(({ className, ...rest }, ref) => (\n <p className={clsx(\"jkl-modal-title\", className)} {...rest} ref={ref} />\n));\nModalTitle.displayName = \"ModalTitle\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalCloseButton = forwardRef<\n HTMLButtonElement,\n Omit<ModalConfig[\"closeButton\"], \"onClick\"> &\n BaseModalProps &\n IconButtonProps\n>(({ className, ...rest }, ref) => (\n <IconButton\n className={clsx(\"jkl-modal-close\", className)}\n data-testautoid=\"jkl-modal-close\"\n {...rest}\n ref={ref}\n >\n <CloseIcon variant=\"medium\" />\n </IconButton>\n));\nModalCloseButton.displayName = \"ModalCloseButton\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalBody = forwardRef<HTMLDivElement, BaseModalProps>(\n ({ className, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-body\", className)}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalBody.displayName = \"ModalBody\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalActions = forwardRef<HTMLDivElement, BaseModalProps>(\n ({ className, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-actions\", className)}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalActions.displayName = \"ModalActions\";\n"],"names":["ModalContainer","forwardRef","className","rest","ref","jsx","clsx","displayName","ModalOverlay","transparent","Modal","component","padding","style","ModalHeader","ModalTitle","ModalCloseButton","IconButton","children","CloseIcon","variant","ModalBody","ModalActions"],"mappings":"0OAea,MAAAA,EAAiBC,GAG5B,EAAGC,UAAAA,KAAcC,GAAQC,IAGnBC,EAAC,MAAA,CACGH,UAAWI,EAAK,sBAAuBJ,MACnCC,EACJC,IAAAA,EACA,eAAW,MAIvBJ,EAAeO,YAAc,iBAKtB,MAAMC,EAAeP,GACxB,EAAGC,UAAAA,EAAWO,YAAAA,KAAgBN,GAAQC,IAClCC,EAAC,MAAA,CACGH,UAAWI,EAAK,oBAAqBJ,EAAW,CAC5C,iCAAkCO,OAElCN,EACJC,IAAAA,MAIZI,EAAaD,YAAc,eAKpB,MAAMG,EAAQT,GACjB,EAAGC,UAAAA,EAAWS,UAAAA,EAAWC,QAAAA,EAASC,MAAAA,KAAUV,GAAQC,IAG5CC,EAFMM,GAAa,MAElB,CACGT,UAAWI,EAAK,gBAAiBJ,GACjCW,MACI,CACI,sBAAuBD,EACjB,qBAAqBA,UACrB,KACHC,MAGPV,EACJC,IAAAA,MAKhBM,EAAMH,YAAc,QAKb,MAAMO,EAAcb,GACvB,EAAGC,UAAAA,KAAcC,GAAQC,IACrBC,EAAC,MAAA,CACGH,UAAWI,EAAK,mBAAoBJ,MAChCC,EACJC,IAAAA,MAIZU,EAAYP,YAAc,cAKnB,MAAMQ,EAAad,GAGxB,EAAGC,UAAAA,KAAcC,GAAQC,MACtB,IAAE,CAAAF,UAAWI,EAAK,kBAAmBJ,MAAgBC,EAAMC,IAAAA,MAEhEW,EAAWR,YAAc,aAKZ,MAAAS,EAAmBf,GAK9B,EAAGC,UAAAA,KAAcC,GAAQC,IACvBC,EAACY,EAAA,CACGf,UAAWI,EAAK,kBAAmBJ,GACnC,kBAAgB,qBACZC,EACJC,IAAAA,EAEAc,SAAAb,EAACc,EAAU,CAAAC,QAAQ,eAG3BJ,EAAiBT,YAAc,mBAKxB,MAAMc,EAAYpB,GACrB,EAAGC,UAAAA,KAAcC,GAAQC,IACrBC,EAAC,MAAA,CACGH,UAAWI,EAAK,iBAAkBJ,MAC9BC,EACJC,IAAAA,MAIZiB,EAAUd,YAAc,YAKjB,MAAMe,EAAerB,GACxB,EAAGC,UAAAA,KAAcC,GAAQC,IACrBC,EAAC,MAAA,CACGH,UAAWI,EAAK,oBAAqBJ,MACjCC,EACJC,IAAAA,MAIZkB,EAAaf,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompleteModal.stories.js","sources":["../../../../../src/components/modal/stories/CompleteModal.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { Button } from \"../../button/Button.js\";\nimport {\n Modal,\n ModalActions,\n ModalBody,\n ModalCloseButton,\n ModalContainer,\n ModalHeader,\n ModalOverlay,\n ModalTitle,\n} from \"../Modal.js\";\nimport \"../../button/styles/_index.scss\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Modal/CompleteModal\",\n component: ModalContainer,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof ModalContainer>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const CompleteModal: Story = {\n args: {\n id: \"modal-container\",\n role: \"document\",\n \"aria-hidden\": false,\n \"aria-modal\": true,\n \"aria-labelledby\": \"modal-title\",\n },\n render: (args) => (\n <ModalContainer {...args}>\n <ModalOverlay />\n <Modal role=\"document\">\n <ModalHeader>\n <ModalTitle aria-level={1} role=\"heading\" id={\"\"}>\n Tittel\n </ModalTitle>\n <ModalCloseButton type=\"button\" aria-label=\"close\" />\n </ModalHeader>\n <ModalBody>\n Er du sikker på at du vil slette Foo Bar Baz?\n </ModalBody>\n <ModalActions>\n <Button variant=\"primary\" data-testid=\"confirm-modal\">\n Slett\n </Button>\n <Button>Avbryt</Button>\n </ModalActions>\n </Modal>\n </ModalContainer>\n ),\n};\n"],"names":["meta","title","component","ModalContainer","parameters","layout","tags","CompleteModal","args","id","role","render","jsxs","children","jsx","ModalOverlay","Modal","ModalHeader","ModalTitle","ModalCloseButton","type","ModalBody","ModalActions","Button","variant"],"mappings":"kVAgBA,MAAMA,EAAO,CACTC,MAAO,kCACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAOEC,EAAuB,CAChCC,KAAM,CACFC,GAAI,kBACJC,KAAM,WACN,eAAe,EACf,cAAc,EACd,kBAAmB,eAEvBC,OAASH,GACJI,EAAAT,EAAA,IAAmBK,EAChBK,SAAA,CAAAC,EAACC,EAAa,IACdH,EAACI,EAAM,CAAAN,KAAK,WACRG,SAAA,CAAAD,EAACK,EACG,CAAAJ,SAAA,CAAAC,EAACI,GAAW,aAAY,EAAGR,KAAK,UAAUD,GAAI,GAAII,SAElD,WACCC,EAAAK,EAAA,CAAiBC,KAAK,SAAS,aAAW,aAE/CN,EAACO,GAAUR,SAEX,oDACCS,EACG,CAAAT,SAAA,CAAAC,EAACS,EAAO,CAAAC,QAAQ,UAAU,cAAY,gBAAgBX,SAEtD,UACAC,EAACS,GAAOV,SAAM"}
1
+ {"version":3,"file":"CompleteModal.stories.js","sources":["../../../../../src/components/modal/stories/CompleteModal.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { Button } from \"../../button/Button.js\";\nimport {\n Modal,\n ModalActions,\n ModalBody,\n ModalCloseButton,\n ModalContainer,\n ModalHeader,\n ModalOverlay,\n ModalTitle,\n} from \"../Modal.js\";\nimport \"../../button/styles/_index.scss\";\nimport \"../styles/_index.scss\";\n\nconst meta = {\n title: \"Komponenter/Modal/CompleteModal\",\n component: ModalContainer,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof ModalContainer>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const CompleteModal: Story = {\n args: {\n id: \"modal-container\",\n role: \"document\",\n \"aria-hidden\": false,\n \"aria-modal\": true,\n \"aria-labelledby\": \"modal-title\",\n },\n render: (args) => (\n <ModalContainer {...args}>\n <ModalOverlay />\n <Modal role=\"document\">\n <ModalHeader>\n {/* biome-ignore lint/a11y/useSemanticElements: Dette fikser vi på en bedre måte ved refaktorering av komponenten */}\n <ModalTitle aria-level={1} role=\"heading\" id={\"\"}>\n Tittel\n </ModalTitle>\n <ModalCloseButton type=\"button\" aria-label=\"close\" />\n </ModalHeader>\n <ModalBody>\n Er du sikker på at du vil slette Foo Bar Baz?\n </ModalBody>\n <ModalActions>\n <Button variant=\"primary\" data-testid=\"confirm-modal\">\n Slett\n </Button>\n <Button>Avbryt</Button>\n </ModalActions>\n </Modal>\n </ModalContainer>\n ),\n};\n"],"names":["meta","title","component","ModalContainer","parameters","layout","tags","CompleteModal","args","id","role","render","jsxs","children","jsx","ModalOverlay","Modal","ModalHeader","ModalTitle","ModalCloseButton","type","ModalBody","ModalActions","Button","variant"],"mappings":"kVAgBA,MAAMA,EAAO,CACTC,MAAO,kCACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAOEC,EAAuB,CAChCC,KAAM,CACFC,GAAI,kBACJC,KAAM,WACN,eAAe,EACf,cAAc,EACd,kBAAmB,eAEvBC,OAASH,GACJI,EAAAT,EAAA,IAAmBK,EAChBK,SAAA,CAAAC,EAACC,EAAa,IACdH,EAACI,EAAM,CAAAN,KAAK,WACRG,SAAA,CAAAD,EAACK,EAEG,CAAAJ,SAAA,CAAAC,EAACI,GAAW,aAAY,EAAGR,KAAK,UAAUD,GAAI,GAAII,SAElD,WACCC,EAAAK,EAAA,CAAiBC,KAAK,SAAS,aAAW,aAE/CN,EAACO,GAAUR,SAEX,oDACCS,EACG,CAAAT,SAAA,CAAAC,EAACS,EAAO,CAAAC,QAAQ,UAAU,cAAY,gBAAgBX,SAEtD,UACAC,EAACS,GAAOV,SAAM"}
@@ -1,2 +1,2 @@
1
- import{jsx as o}from"react/jsx-runtime";/* empty css */import{CloseIcon as t}from"../../icon/icons/CloseIcon.js";import{IconButton as e}from"../../icon-button/IconButton.js";import{ModalCloseButton as n}from"../Modal.js";const a={title:"Komponenter/Modal/ModalCloseButton",component:n,parameters:{layout:"centered"},tags:["autodocs"]},s={args:{type:"button","aria-label":"close"},render:a=>o(n,{...a,children:o(e,{children:o(t,{variant:"medium"})})})};export{s as ModalCloseButton,a as default};
1
+ import{jsx as o}from"react/jsx-runtime";/* empty css */import{IconButton as t}from"../../icon-button/IconButton.js";import{CloseIcon as e}from"../../icon/icons/CloseIcon.js";import{ModalCloseButton as n}from"../Modal.js";const a={title:"Komponenter/Modal/ModalCloseButton",component:n,parameters:{layout:"centered"},tags:["autodocs"]},s={args:{type:"button","aria-label":"close"},render:a=>o(n,{...a,children:o(t,{children:o(e,{variant:"medium"})})})};export{s as ModalCloseButton,a as default};
2
2
  //# sourceMappingURL=ModalCloseButton.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalCloseButton.stories.js","sources":["../../../../../src/components/modal/stories/ModalCloseButton.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport \"../styles/_index.scss\";\nimport React from \"react\";\nimport { CloseIcon } from \"../../icon/icons/CloseIcon.js\";\nimport { IconButton } from \"../../icon-button/IconButton.js\";\nimport { ModalCloseButton as ModalCloseButtonComponent } from \"../Modal.js\";\n\nconst meta = {\n title: \"Komponenter/Modal/ModalCloseButton\",\n component: ModalCloseButtonComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof ModalCloseButtonComponent>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const ModalCloseButton: Story = {\n args: {\n type: \"button\",\n \"aria-label\": \"close\",\n },\n render: (args) => (\n <ModalCloseButtonComponent {...args}>\n <IconButton>\n <CloseIcon variant=\"medium\" />\n </IconButton>\n </ModalCloseButtonComponent>\n ),\n};\n"],"names":["meta","title","component","ModalCloseButtonComponent","parameters","layout","tags","ModalCloseButton","args","type","render","jsx","children","IconButton","CloseIcon","variant"],"mappings":"qPAOA,MAAMA,EAAO,CACTC,MAAO,qCACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAOEC,EAA0B,CACnCC,KAAM,CACFC,KAAM,SACN,aAAc,SAElBC,OAASF,GACLG,EAACR,MAA8BK,EAC3BI,SAACD,EAAAE,EAAA,CACGD,SAACD,EAAAG,EAAA,CAAUC,QAAQ"}
1
+ {"version":3,"file":"ModalCloseButton.stories.js","sources":["../../../../../src/components/modal/stories/ModalCloseButton.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport \"../styles/_index.scss\";\nimport React from \"react\";\nimport { IconButton } from \"../../icon-button/IconButton.js\";\nimport { CloseIcon } from \"../../icon/icons/CloseIcon.js\";\nimport { ModalCloseButton as ModalCloseButtonComponent } from \"../Modal.js\";\n\nconst meta = {\n title: \"Komponenter/Modal/ModalCloseButton\",\n component: ModalCloseButtonComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof ModalCloseButtonComponent>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const ModalCloseButton: Story = {\n args: {\n type: \"button\",\n \"aria-label\": \"close\",\n },\n render: (args) => (\n <ModalCloseButtonComponent {...args}>\n <IconButton>\n <CloseIcon variant=\"medium\" />\n </IconButton>\n </ModalCloseButtonComponent>\n ),\n};\n"],"names":["meta","title","component","ModalCloseButtonComponent","parameters","layout","tags","ModalCloseButton","args","type","render","jsx","children","IconButton","CloseIcon","variant"],"mappings":"qPAOA,MAAMA,EAAO,CACTC,MAAO,qCACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAOEC,EAA0B,CACnCC,KAAM,CACFC,KAAM,SACN,aAAc,SAElBC,OAASF,GACLG,EAACR,MAA8BK,EAC3BI,SAACD,EAAAE,EAAA,CACGD,SAACD,EAAAG,EAAA,CAAUC,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModalOverlay.stories.js","sources":["../../../../../src/components/modal/stories/ModalOverlay.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport \"../styles/_index.scss\";\nimport { ModalOverlay as ModalOverlayComponent } from \"../Modal.js\";\nimport { ModalInstance } from \"../useModal.js\";\n\ninterface ExtendedModalComponentProps {\n dialogRef: React.RefCallback<ModalInstance>;\n onClick?: () => void;\n onCancel?: () => void;\n}\n\nconst meta = {\n title: \"Komponenter/Modal/ModalOverlay\",\n component: ModalOverlayComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<ExtendedModalComponentProps>;\n\nexport default meta;\n\ntype Story = StoryObj<ExtendedModalComponentProps>;\n\nlet modalRef: ModalInstance | null = null;\n\nexport const ModalOverlay: Story = {\n args: {\n dialogRef: (instance: ModalInstance | null) => {\n modalRef = instance;\n },\n onCancel: () => {\n console.log(\"❌ Cancel\");\n modalRef?.hide();\n },\n onClick: () => {\n ModalOverlay.args?.onCancel?.();\n },\n },\n};\n"],"names":["meta","title","component","ModalOverlayComponent","parameters","layout","tags","modalRef","ModalOverlay","args","dialogRef","instance","onCancel","console","log","hide","onClick","_b","_a","call"],"mappings":"kFAWA,MAAMA,EAAO,CACTC,MAAO,iCACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAOX,IAAIC,EAAiC,KAE9B,MAAMC,EAAsB,CAC/BC,KAAM,CACFC,UAAYC,IACGJ,EAAAI,CAAAA,EAEfC,SAAU,KACNC,QAAQC,IAAI,YACZ,MAAAP,GAAAA,EAAUQ,MAAA,EAEdC,QAAS,aACL,OAAAC,EAAA,OAAAC,EAAAV,EAAaC,aAAbS,EAAmBN,WAAnBK,EAAAE,KAAAD,EAAAA"}
1
+ {"version":3,"file":"ModalOverlay.stories.js","sources":["../../../../../src/components/modal/stories/ModalOverlay.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport \"../styles/_index.scss\";\nimport { ModalOverlay as ModalOverlayComponent } from \"../Modal.js\";\nimport type { ModalInstance } from \"../useModal.js\";\n\ninterface ExtendedModalComponentProps {\n dialogRef: React.RefCallback<ModalInstance>;\n onClick?: () => void;\n onCancel?: () => void;\n}\n\nconst meta = {\n title: \"Komponenter/Modal/ModalOverlay\",\n component: ModalOverlayComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<ExtendedModalComponentProps>;\n\nexport default meta;\n\ntype Story = StoryObj<ExtendedModalComponentProps>;\n\nlet modalRef: ModalInstance | null = null;\n\nexport const ModalOverlay: Story = {\n args: {\n dialogRef: (instance: ModalInstance | null) => {\n modalRef = instance;\n },\n onCancel: () => {\n console.log(\"❌ Cancel\");\n modalRef?.hide();\n },\n onClick: () => {\n ModalOverlay.args?.onCancel?.();\n },\n },\n};\n"],"names":["meta","title","component","ModalOverlayComponent","parameters","layout","tags","modalRef","ModalOverlay","args","dialogRef","instance","onCancel","console","log","hide","onClick","_b","_a","call"],"mappings":"kFAWA,MAAMA,EAAO,CACTC,MAAO,iCACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAOX,IAAIC,EAAiC,KAE9B,MAAMC,EAAsB,CAC/BC,KAAM,CACFC,UAAYC,IACGJ,EAAAI,CAAAA,EAEfC,SAAU,KACNC,QAAQC,IAAI,YACZ,MAAAP,GAAAA,EAAUQ,MAAA,EAEdC,QAAS,aACL,OAAAC,EAAA,OAAAC,EAAAV,EAAaC,aAAbS,EAAmBN,WAAnBK,EAAAE,KAAAD,EAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useModal.js","sources":["../../../../src/components/modal/useModal.ts"],"sourcesContent":["import { useA11yDialog } from \"react-a11y-dialog\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { ModalConfig, UseModalOptions } from \"./types.js\";\n\nexport type ModalInstance = ReturnType<typeof useModal>[0];\n\n/**\n * @example\n * ```jsx\n * const heading = \"Bekreft sletting\";\n * const [instance, { title, overlay, container, modal, closeButton }] = useModal({ title: heading });\n *\n * useEffect(() => {\n * if (!instance) {\n * return;\n * }\n * instance.show();\n * }, [instance]);\n *\n * return ReactDOM.createPortal(\n * <ModalContainer {...container}>\n * <ModalOverlay {...overlay} />\n * <Modal {...modal}>\n * <ModalHeader>\n * <ModalTitle {...title}>{heading}</ModalTitle>\n * <ModalCloseButton {...closeButton} />\n * </ModalHeader>\n * <ModalBody>\n * Er du sikker på at du vil slette Foo Bar Baz?\n * </ModalBody>\n * <ModalActions>\n * <PrimaryButton\n * onClick={() => {\n * // Do the thing\n * instance?.hide()\n * }}\n * >\n * Bekreft\n * </PrimaryButton>\n * <TertiaryButton onClick={() => instance?.hide()}>\n * Avbryt\n * </TertiaryButton>\n * </ModalActions>\n * </Modal>\n * </ModalContainer>,\n * document.body,\n * );\n * ```\n */\nexport function useModal(props: UseModalOptions) {\n const {\n id: idProp,\n role = \"dialog\",\n closeButtonLabel = \"Lukk\",\n ...rest\n } = props;\n\n const id = useId(idProp || \"jkl-modal\", { generateSuffix: !idProp });\n\n const [instance, config] = useA11yDialog({\n id,\n role,\n ...rest,\n });\n\n const { dialog, ...restConfig } = config;\n\n const modalConfig: ModalConfig = {\n modal: config.dialog,\n ...restConfig,\n closeButton: {\n ...config.closeButton,\n \"aria-label\": closeButtonLabel,\n },\n };\n\n return [instance, modalConfig] as const;\n}\n"],"names":["useModal","props","id","idProp","role","closeButtonLabel","rest","useId","generateSuffix","instance","config","useA11yDialog","dialog","restConfig","modal","closeButton"],"mappings":"qGAiDO,SAASA,EAASC,GACf,MACFC,GAAIC,EACJC,KAAAA,EAAO,SACPC,iBAAAA,EAAmB,UAChBC,GACHL,EAEEC,EAAKK,EAAMJ,GAAU,YAAa,CAAEK,gBAAiBL,KAEpDM,EAAUC,GAAUC,EAAc,CACrCT,GAAAA,EACAE,KAAAA,KACGE,KAGCM,OAAAA,KAAWC,GAAeH,EAW3B,MAAA,CAACD,EATyB,CAC7BK,MAAOJ,EAAOE,UACXC,EACHE,YAAa,IACNL,EAAOK,YACV,aAAcV,IAK1B"}
1
+ {"version":3,"file":"useModal.js","sources":["../../../../src/components/modal/useModal.ts"],"sourcesContent":["import { useA11yDialog } from \"react-a11y-dialog\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport type { ModalConfig, UseModalOptions } from \"./types.js\";\n\nexport type ModalInstance = ReturnType<typeof useModal>[0];\n\n/**\n * @example\n * ```jsx\n * const heading = \"Bekreft sletting\";\n * const [instance, { title, overlay, container, modal, closeButton }] = useModal({ title: heading });\n *\n * useEffect(() => {\n * if (!instance) {\n * return;\n * }\n * instance.show();\n * }, [instance]);\n *\n * return ReactDOM.createPortal(\n * <ModalContainer {...container}>\n * <ModalOverlay {...overlay} />\n * <Modal {...modal}>\n * <ModalHeader>\n * <ModalTitle {...title}>{heading}</ModalTitle>\n * <ModalCloseButton {...closeButton} />\n * </ModalHeader>\n * <ModalBody>\n * Er du sikker på at du vil slette Foo Bar Baz?\n * </ModalBody>\n * <ModalActions>\n * <PrimaryButton\n * onClick={() => {\n * // Do the thing\n * instance?.hide()\n * }}\n * >\n * Bekreft\n * </PrimaryButton>\n * <TertiaryButton onClick={() => instance?.hide()}>\n * Avbryt\n * </TertiaryButton>\n * </ModalActions>\n * </Modal>\n * </ModalContainer>,\n * document.body,\n * );\n * ```\n */\nexport function useModal(props: UseModalOptions) {\n const {\n id: idProp,\n role = \"dialog\",\n closeButtonLabel = \"Lukk\",\n ...rest\n } = props;\n\n const id = useId(idProp || \"jkl-modal\", { generateSuffix: !idProp });\n\n const [instance, config] = useA11yDialog({\n id,\n role,\n ...rest,\n });\n\n const { dialog, ...restConfig } = config;\n\n const modalConfig: ModalConfig = {\n modal: config.dialog,\n ...restConfig,\n closeButton: {\n ...config.closeButton,\n \"aria-label\": closeButtonLabel,\n },\n };\n\n return [instance, modalConfig] as const;\n}\n"],"names":["useModal","props","id","idProp","role","closeButtonLabel","rest","useId","generateSuffix","instance","config","useA11yDialog","dialog","restConfig","modal","closeButton"],"mappings":"qGAiDO,SAASA,EAASC,GACf,MACFC,GAAIC,EACJC,KAAAA,EAAO,SACPC,iBAAAA,EAAmB,UAChBC,GACHL,EAEEC,EAAKK,EAAMJ,GAAU,YAAa,CAAEK,gBAAiBL,KAEpDM,EAAUC,GAAUC,EAAc,CACrCT,GAAAA,EACAE,KAAAA,KACGE,KAGCM,OAAAA,KAAWC,GAAeH,EAW3B,MAAA,CAACD,EATyB,CAC7BK,MAAOJ,EAAOE,UACXC,EACHE,YAAa,IACNL,EAAOK,YACV,aAAcV,IAK1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavLink.js","sources":["../../../../src/components/nav-link/NavLink.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React from \"react\";\nimport { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ArrowRightIcon } from \"../icon/icons/ArrowRightIcon.js\";\nimport { ArrowLeftIcon } from \"../icon/index.js\";\nimport { NavLinkProps } from \"./types.js\";\n\ntype LinkComponent = <ElementType extends React.ElementType = \"a\">(\n props: NavLinkProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const NavLink = React.forwardRef(function NavLink<\n ElementType extends React.ElementType = \"a\",\n>(props: NavLinkProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n active = false,\n back = false,\n className,\n children,\n as = \"a\",\n ...rest\n } = props;\n const Component = as;\n\n return (\n <Component\n ref={ref}\n className={clsx(\n \"jkl-nav-link\",\n {\n \"jkl-nav-link--active\": active,\n \"jkl-nav-link--back\": back,\n },\n className,\n )}\n {...rest}\n >\n {back && (\n <ArrowLeftIcon variant=\"small\" className=\"jkl-nav-link__icon\" />\n )}\n {children}\n {!back && (\n <ArrowRightIcon\n variant=\"small\"\n className=\"jkl-nav-link__icon\"\n />\n )}\n </Component>\n );\n}) as LinkComponent;\n"],"names":["NavLink","React","forwardRef","props","ref","active","back","className","children","as","rest","jsxs","clsx","jsx","ArrowLeftIcon","variant","ArrowRightIcon"],"mappings":"ghDAWO,MAAMA,EAAUC,EAAMC,YAAW,SAEtCC,EAAkCC,GAC1B,MACFC,OAAAA,GAAS,EACTC,KAAAA,GAAO,EACPC,UAAAA,EACAC,SAAAA,EACAC,GAAAA,EAAK,OACFC,GACHP,EAIA,OAAAQ,EAHcF,EAGb,CACGL,IAAAA,EACAG,UAAWK,EACP,eACA,CACI,uBAAwBP,EACxB,qBAAsBC,GAE1BC,MAEAG,EAEHF,SAAA,CAAAF,GACIO,EAAAC,EAAA,CAAcC,QAAQ,QAAQR,UAAU,uBAE5CC,GACCF,GACEO,EAACG,EAAA,CACGD,QAAQ,QACRR,UAAU,yBAK9B"}
1
+ {"version":3,"file":"NavLink.js","sources":["../../../../src/components/nav-link/NavLink.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React from \"react\";\nimport type { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ArrowRightIcon } from \"../icon/icons/ArrowRightIcon.js\";\nimport { ArrowLeftIcon } from \"../icon/index.js\";\nimport type { NavLinkProps } from \"./types.js\";\n\ntype LinkComponent = <ElementType extends React.ElementType = \"a\">(\n props: NavLinkProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const NavLink = React.forwardRef(function NavLink<\n ElementType extends React.ElementType = \"a\",\n>(props: NavLinkProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n active = false,\n back = false,\n className,\n children,\n as = \"a\",\n ...rest\n } = props;\n const Component = as;\n\n return (\n <Component\n ref={ref}\n className={clsx(\n \"jkl-nav-link\",\n {\n \"jkl-nav-link--active\": active,\n \"jkl-nav-link--back\": back,\n },\n className,\n )}\n {...rest}\n >\n {back && (\n <ArrowLeftIcon variant=\"small\" className=\"jkl-nav-link__icon\" />\n )}\n {children}\n {!back && (\n <ArrowRightIcon\n variant=\"small\"\n className=\"jkl-nav-link__icon\"\n />\n )}\n </Component>\n );\n}) as LinkComponent;\n"],"names":["NavLink","React","forwardRef","props","ref","active","back","className","children","as","rest","jsxs","clsx","jsx","ArrowLeftIcon","variant","ArrowRightIcon"],"mappings":"ghDAWO,MAAMA,EAAUC,EAAMC,YAAW,SAEtCC,EAAkCC,GAC1B,MACFC,OAAAA,GAAS,EACTC,KAAAA,GAAO,EACPC,UAAAA,EACAC,SAAAA,EACAC,GAAAA,EAAK,OACFC,GACHP,EAIA,OAAAQ,EAHcF,EAGb,CACGL,IAAAA,EACAG,UAAWK,EACP,eACA,CACI,uBAAwBP,EACxB,qBAAsBC,GAE1BC,MAEAG,EAEHF,SAAA,CAAAF,GACIO,EAAAC,EAAA,CAAcC,QAAQ,QAAQR,UAAU,uBAE5CC,GACCF,GACEO,EAACG,EAAA,CACGD,QAAQ,QACRR,UAAU,yBAK9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavLink.stories.js","sources":["../../../../../src/components/nav-link/stories/NavLink.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { NavLink as NavLinkComponent } from \"../NavLink.js\";\nimport \"../styles/_index.scss\";\n\nconst meta: Meta = {\n title: \"Komponenter/NavLink\",\n component: NavLinkComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n argTypes: {\n href: {\n control: \"text\",\n defaultValue: \"https://www.fremtind.no\",\n },\n },\n} satisfies Meta<typeof NavLinkComponent>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof NavLinkComponent>;\n\nexport const NavLink: Story = {\n args: {\n children: \"NavLink\",\n href: \"https://www.fremtind.no\",\n },\n};\n"],"names":["meta","title","component","NavLinkComponent","parameters","layout","tags","argTypes","href","control","defaultValue","NavLink","args","children"],"mappings":"wCAIA,MAAMA,EAAa,CACfC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,YACPC,SAAU,CACNC,KAAM,CACFC,QAAS,OACTC,aAAc,6BASbC,EAAiB,CAC1BC,KAAM,CACFC,SAAU,UACVL,KAAM"}
1
+ {"version":3,"file":"NavLink.stories.js","sources":["../../../../../src/components/nav-link/stories/NavLink.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { NavLink as NavLinkComponent } from \"../NavLink.js\";\nimport \"../styles/_index.scss\";\n\nconst meta: Meta = {\n title: \"Komponenter/NavLink\",\n component: NavLinkComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n argTypes: {\n href: {\n control: \"text\",\n defaultValue: \"https://www.fremtind.no\",\n },\n },\n} satisfies Meta<typeof NavLinkComponent>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof NavLinkComponent>;\n\nexport const NavLink: Story = {\n args: {\n children: \"NavLink\",\n href: \"https://www.fremtind.no\",\n },\n};\n"],"names":["meta","title","component","NavLinkComponent","parameters","layout","tags","argTypes","href","control","defaultValue","NavLink","args","children"],"mappings":"wCAIA,MAAMA,EAAa,CACfC,MAAO,sBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,YACPC,SAAU,CACNC,KAAM,CACFC,QAAS,OACTC,aAAc,6BASbC,EAAiB,CAC1BC,KAAM,CACFC,SAAU,UACVL,KAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"PageButton.js","sources":["../../../../src/components/pagination/PageButton.tsx"],"sourcesContent":["import React, { clsx } from \"clsx\";\nimport { FC, MouseEventHandler } from \"react\";\n\nexport const PageButton: FC<{\n isActive: boolean;\n number: number;\n onClick: MouseEventHandler;\n total: number;\n}> = ({ isActive, number, onClick, total }) => (\n <li aria-setsize={total} aria-posinset={number}>\n <button\n className={clsx(\"jkl-pagination-button\", {\n \"jkl-pagination-button--current\": isActive,\n })}\n aria-current={isActive}\n type=\"button\"\n onClick={onClick}\n tabIndex={isActive ? -1 : 0}\n aria-disabled={isActive}\n title={`side ${number}`}\n >\n <span aria-hidden={true}>{number}</span>\n </button>\n </li>\n);\n"],"names":["PageButton","isActive","number","onClick","total","jsx","children","className","clsx","type","tabIndex","title"],"mappings":"sFAGO,MAAMA,EAKR,EAAGC,SAAAA,EAAUC,OAAAA,EAAQC,QAAAA,EAASC,MAAAA,KAC9BC,EAAA,KAAA,CAAG,eAAcD,EAAO,gBAAeF,EACpCI,SAAAD,EAAC,SAAA,CACGE,UAAWC,EAAK,wBAAyB,CACrC,iCAAkCP,IAEtC,eAAcA,EACdQ,KAAK,SACLN,QAAAA,EACAO,SAAUT,GAAgB,EAAA,EAC1B,gBAAeA,EACfU,MAAO,QAAQT,IAEfI,SAACD,EAAA,OAAA,CAAK,eAAa,EAAOC,SAAOJ"}
1
+ {"version":3,"file":"PageButton.js","sources":["../../../../src/components/pagination/PageButton.tsx"],"sourcesContent":["import React, { clsx } from \"clsx\";\nimport type { FC, MouseEventHandler } from \"react\";\n\nexport const PageButton: FC<{\n isActive: boolean;\n number: number;\n onClick: MouseEventHandler;\n total: number;\n}> = ({ isActive, number, onClick, total }) => (\n <li aria-setsize={total} aria-posinset={number}>\n <button\n className={clsx(\"jkl-pagination-button\", {\n \"jkl-pagination-button--current\": isActive,\n })}\n aria-current={isActive}\n type=\"button\"\n onClick={onClick}\n tabIndex={isActive ? -1 : 0}\n aria-disabled={isActive}\n title={`side ${number}`}\n >\n <span aria-hidden={true}>{number}</span>\n </button>\n </li>\n);\n"],"names":["PageButton","isActive","number","onClick","total","jsx","children","className","clsx","type","tabIndex","title"],"mappings":"sFAGO,MAAMA,EAKR,EAAGC,SAAAA,EAAUC,OAAAA,EAAQC,QAAAA,EAASC,MAAAA,KAC9BC,EAAA,KAAA,CAAG,eAAcD,EAAO,gBAAeF,EACpCI,SAAAD,EAAC,SAAA,CACGE,UAAWC,EAAK,wBAAyB,CACrC,iCAAkCP,IAEtC,eAAcA,EACdQ,KAAK,SACLN,QAAAA,EACAO,SAAUT,GAAgB,EAAA,EAC1B,gBAAeA,EACfU,MAAO,QAAQT,IAEfI,SAACD,EAAA,OAAA,CAAK,eAAa,EAAOC,SAAOJ"}
@@ -1,2 +1,2 @@
1
- import{jsxs as n,jsx as a}from"react/jsx-runtime";import{c as t}from"../../../clsx-BeLtu-UY.js";import e,{useEffect as i}from"react";import{ChevronLeftIcon as o}from"../icon/icons/ChevronLeftIcon.js";import{ChevronRightIcon as r}from"../icon/icons/ChevronRightIcon.js";import{IconButton as s}from"../icon-button/IconButton.js";import{PageButton as l}from"./PageButton.js";const c=e.forwardRef((function({onPageChange:e,currentPage:c,numberOfPages:m,labels:u={previous:"Forrige side",next:"Neste side"},as:p,className:d,...g},h){i((()=>{c<1&&console.error("[Pagination]: currentPage prop should be set to a value larger than 0"),c>m&&console.error("[Pagination]: currentPage prop should not be set to a value larger than numberOfPages")}),[c,m]);const b=p||"nav";if(m<=7)return n(b,{ref:h,...g,className:t("jkl-pagination",d),children:[a(s,{className:"jkl-pagination-button",title:u.previous,onClick:()=>e(c-1,c),"aria-disabled":1===c,tabIndex:1===c?-1:0,children:a(o,{})}),a("ol",{className:"jkl-pagination__pages",children:Array.from({length:m}).map(((n,t)=>{const i=t+1;return a(l,{isActive:c===i,number:i,total:m,onClick:()=>e(i,c)},t)}))}),a(s,{className:"jkl-pagination-button",title:u.next,onClick:()=>e(c+1,c),"aria-disabled":c===m,tabIndex:c===m?-1:0,children:a(r,{})})]});const k=c>4,f=c<m-3,j=Math.min(Math.max(c-2,2),m-5),v=Math.min(j+1,m-4),C=Math.min(v+1,m-3),x=Math.min(v+2,m-2),N=Math.min(v+3,m-1);return n(b,{ref:h,...g,className:"jkl-pagination",children:[a(s,{className:"jkl-pagination-button",title:u.previous,onClick:()=>e(c-1,c),"aria-disabled":1===c,tabIndex:1===c?-1:0,children:a(o,{})}),n("ol",{className:"jkl-pagination__pages",children:[a(l,{isActive:1===c,number:1,total:m,onClick:()=>e(1,c)}),k?a("span",{"aria-hidden":!0,className:"jkl-pagination-button--elipsis",children:"..."}):a(l,{isActive:c===j,number:j,total:m,onClick:()=>e(j,c)}),a(l,{isActive:c===v,number:v,total:m,onClick:()=>e(v,c)}),a(l,{isActive:c===C,number:C,total:m,onClick:()=>e(C,c)}),a(l,{isActive:c===x,number:x,total:m,onClick:()=>e(x,c)}),f?a("span",{"aria-hidden":!0,className:"jkl-pagination-button--elipsis",children:"..."}):a(l,{isActive:c===N,number:N,total:m,onClick:()=>e(N,c)}),a(l,{isActive:c===m,number:m,total:m,onClick:()=>e(m,c)})]}),a(s,{className:"jkl-pagination-button",title:u.next,onClick:()=>e(c+1,c),"aria-disabled":c===m,tabIndex:c===m?-1:0,children:a(r,{})})]})}));export{c as Pagination};
1
+ import{jsxs as n,jsx as a}from"react/jsx-runtime";import{c as t}from"../../../clsx-BeLtu-UY.js";import e,{useEffect as i}from"react";import{IconButton as o}from"../icon-button/IconButton.js";import{ChevronLeftIcon as r}from"../icon/icons/ChevronLeftIcon.js";import{ChevronRightIcon as s}from"../icon/icons/ChevronRightIcon.js";import{PageButton as l}from"./PageButton.js";const c=e.forwardRef((function({onPageChange:e,currentPage:c,numberOfPages:m,labels:u={previous:"Forrige side",next:"Neste side"},as:p,className:d,...g},h){i((()=>{c<1&&console.error("[Pagination]: currentPage prop should be set to a value larger than 0"),c>m&&console.error("[Pagination]: currentPage prop should not be set to a value larger than numberOfPages")}),[c,m]);const b=p||"nav";if(m<=7)return n(b,{ref:h,...g,className:t("jkl-pagination",d),children:[a(o,{className:"jkl-pagination-button",title:u.previous,onClick:()=>e(c-1,c),"aria-disabled":1===c,tabIndex:1===c?-1:0,children:a(r,{})}),a("ol",{className:"jkl-pagination__pages",children:Array.from({length:m}).map(((n,t)=>{const i=t+1;return a(l,{isActive:c===i,number:i,total:m,onClick:()=>e(i,c)},t)}))}),a(o,{className:"jkl-pagination-button",title:u.next,onClick:()=>e(c+1,c),"aria-disabled":c===m,tabIndex:c===m?-1:0,children:a(s,{})})]});const k=c>4,f=c<m-3,j=Math.min(Math.max(c-2,2),m-5),v=Math.min(j+1,m-4),C=Math.min(v+1,m-3),x=Math.min(v+2,m-2),N=Math.min(v+3,m-1);return n(b,{ref:h,...g,className:"jkl-pagination",children:[a(o,{className:"jkl-pagination-button",title:u.previous,onClick:()=>e(c-1,c),"aria-disabled":1===c,tabIndex:1===c?-1:0,children:a(r,{})}),n("ol",{className:"jkl-pagination__pages",children:[a(l,{isActive:1===c,number:1,total:m,onClick:()=>e(1,c)}),k?a("span",{"aria-hidden":!0,className:"jkl-pagination-button--elipsis",children:"..."}):a(l,{isActive:c===j,number:j,total:m,onClick:()=>e(j,c)}),a(l,{isActive:c===v,number:v,total:m,onClick:()=>e(v,c)}),a(l,{isActive:c===C,number:C,total:m,onClick:()=>e(C,c)}),a(l,{isActive:c===x,number:x,total:m,onClick:()=>e(x,c)}),f?a("span",{"aria-hidden":!0,className:"jkl-pagination-button--elipsis",children:"..."}):a(l,{isActive:c===N,number:N,total:m,onClick:()=>e(N,c)}),a(l,{isActive:c===m,number:m,total:m,onClick:()=>e(m,c)})]}),a(o,{className:"jkl-pagination-button",title:u.next,onClick:()=>e(c+1,c),"aria-disabled":c===m,tabIndex:c===m?-1:0,children:a(s,{})})]})}));export{c as Pagination};
2
2
  //# sourceMappingURL=Pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../../src/components/pagination/Pagination.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { useEffect } from \"react\";\nimport { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ChevronLeftIcon } from \"../icon/icons/ChevronLeftIcon.js\";\nimport { ChevronRightIcon } from \"../icon/icons/ChevronRightIcon.js\";\nimport { IconButton } from \"../icon-button/IconButton.js\";\nimport { PageButton } from \"./PageButton.js\";\nimport { PaginationProps } from \"./types.js\";\n\ntype PaginationComponent = <ElementType extends React.ElementType = \"nav\">(\n props: PaginationProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const Pagination = React.forwardRef(function Pagination<\n ElementType extends React.ElementType = \"nav\",\n>(\n {\n onPageChange,\n currentPage,\n numberOfPages,\n labels = {\n previous: \"Forrige side\",\n next: \"Neste side\",\n },\n as,\n className,\n ...rest\n }: PaginationProps<ElementType>,\n ref?: PolymorphicRef<ElementType>,\n) {\n useEffect(() => {\n if (currentPage < 1) {\n console.error(\n \"[Pagination]: currentPage prop should be set to a value larger than 0\",\n );\n }\n if (currentPage > numberOfPages) {\n console.error(\n \"[Pagination]: currentPage prop should not be set to a value larger than numberOfPages\",\n );\n }\n }, [currentPage, numberOfPages]);\n\n const Component = as || \"nav\";\n\n if (numberOfPages <= 7) {\n return (\n <Component\n ref={ref}\n {...rest}\n className={clsx(\"jkl-pagination\", className)}\n >\n <IconButton\n className=\"jkl-pagination-button\"\n title={labels.previous}\n onClick={() => onPageChange(currentPage - 1, currentPage)}\n aria-disabled={currentPage === 1}\n tabIndex={currentPage === 1 ? -1 : 0}\n >\n <ChevronLeftIcon />\n </IconButton>\n <ol className=\"jkl-pagination__pages\">\n {Array.from({ length: numberOfPages }).map((_, index) => {\n const page = index + 1;\n return (\n <PageButton\n key={index}\n isActive={currentPage === page}\n number={page}\n total={numberOfPages}\n onClick={() => onPageChange(page, currentPage)}\n />\n );\n })}\n </ol>\n <IconButton\n className=\"jkl-pagination-button\"\n title={labels.next}\n onClick={() => onPageChange(currentPage + 1, currentPage)}\n aria-disabled={currentPage === numberOfPages}\n tabIndex={currentPage === numberOfPages ? -1 : 0}\n >\n <ChevronRightIcon />\n </IconButton>\n </Component>\n );\n }\n\n const showStartEllipsis = currentPage > 4;\n const showEndEllipsis = currentPage < numberOfPages - 3;\n\n const startEllipsis = Math.min(\n Math.max(currentPage - 2, 2),\n numberOfPages - 5,\n );\n const centerPageNumberStart = Math.min(\n startEllipsis + 1,\n numberOfPages - 4,\n );\n const centerPageNumber = Math.min(\n centerPageNumberStart + 1,\n numberOfPages - 3,\n );\n const centerPageNumberEnd = Math.min(\n centerPageNumberStart + 2,\n numberOfPages - 2,\n );\n const endEllipsis = Math.min(centerPageNumberStart + 3, numberOfPages - 1);\n\n return (\n <Component ref={ref} {...rest} className=\"jkl-pagination\">\n <IconButton\n className=\"jkl-pagination-button\"\n title={labels.previous}\n onClick={() => onPageChange(currentPage - 1, currentPage)}\n aria-disabled={currentPage === 1}\n tabIndex={currentPage === 1 ? -1 : 0}\n >\n <ChevronLeftIcon />\n </IconButton>\n <ol className=\"jkl-pagination__pages\">\n <PageButton\n isActive={currentPage === 1}\n number={1}\n total={numberOfPages}\n onClick={() => onPageChange(1, currentPage)}\n />\n {showStartEllipsis ? (\n <span\n aria-hidden\n className=\"jkl-pagination-button--elipsis\"\n >\n {\"...\"}\n </span>\n ) : (\n <PageButton\n isActive={currentPage === startEllipsis}\n number={startEllipsis}\n total={numberOfPages}\n onClick={() => onPageChange(startEllipsis, currentPage)}\n />\n )}\n <PageButton\n isActive={currentPage === centerPageNumberStart}\n number={centerPageNumberStart}\n total={numberOfPages}\n onClick={() =>\n onPageChange(centerPageNumberStart, currentPage)\n }\n />\n <PageButton\n isActive={currentPage === centerPageNumber}\n number={centerPageNumber}\n total={numberOfPages}\n onClick={() => onPageChange(centerPageNumber, currentPage)}\n />\n <PageButton\n isActive={currentPage === centerPageNumberEnd}\n number={centerPageNumberEnd}\n total={numberOfPages}\n onClick={() =>\n onPageChange(centerPageNumberEnd, currentPage)\n }\n />\n {showEndEllipsis ? (\n <span\n aria-hidden\n className=\"jkl-pagination-button--elipsis\"\n >\n {\"...\"}\n </span>\n ) : (\n <PageButton\n isActive={currentPage === endEllipsis}\n number={endEllipsis}\n total={numberOfPages}\n onClick={() => onPageChange(endEllipsis, currentPage)}\n />\n )}\n <PageButton\n isActive={currentPage === numberOfPages}\n number={numberOfPages}\n total={numberOfPages}\n onClick={() => onPageChange(numberOfPages, currentPage)}\n />\n </ol>\n <IconButton\n className=\"jkl-pagination-button\"\n title={labels.next}\n onClick={() => onPageChange(currentPage + 1, currentPage)}\n aria-disabled={currentPage === numberOfPages}\n tabIndex={currentPage === numberOfPages ? -1 : 0}\n >\n <ChevronRightIcon />\n </IconButton>\n </Component>\n );\n}) as PaginationComponent;\n"],"names":["Pagination","React","forwardRef","onPageChange","currentPage","numberOfPages","labels","previous","next","as","className","rest","ref","useEffect","console","error","Component","jsxs","clsx","children","jsx","IconButton","title","onClick","tabIndex","ChevronLeftIcon","from","length","map","_","index","page","PageButton","isActive","number","total","ChevronRightIcon","showStartEllipsis","showEndEllipsis","startEllipsis","Math","min","max","centerPageNumberStart","centerPageNumber","centerPageNumberEnd","endEllipsis"],"mappings":"oXAaO,MAAMA,EAAaC,EAAMC,YAAW,UAInCC,aAAAA,EACAC,YAAAA,EACAC,cAAAA,EACAC,OAAAA,EAAS,CACLC,SAAU,eACVC,KAAM,cAEVC,GAAAA,EACAC,UAAAA,KACGC,GAEPC,GAEAC,GAAU,KACFT,EAAc,GACNU,QAAAC,MACJ,yEAGJX,EAAcC,GACNS,QAAAC,MACJ,wFAAA,GAGT,CAACX,EAAaC,IAEjB,MAAMW,EAAYP,GAAM,MAExB,GAAIJ,GAAiB,EAEb,OAAAY,EAACD,EAAA,CACGJ,IAAAA,KACID,EACJD,UAAWQ,EAAK,iBAAkBR,GAElCS,SAAA,CAAAC,EAACC,EAAA,CACGX,UAAU,wBACVY,MAAOhB,EAAOC,SACdgB,QAAS,IAAMpB,EAAaC,EAAc,EAAGA,GAC7C,gBAA+B,IAAhBA,EACfoB,SAA0B,IAAhBpB,GAAyB,EAAA,EAEnCe,WAACM,EAAgB,MAEpBL,EAAA,KAAA,CAAGV,UAAU,wBACTS,eAAMO,KAAK,CAAEC,OAAQtB,IAAiBuB,KAAI,CAACC,EAAGC,KAC3C,MAAMC,EAAOD,EAAQ,EAEjB,OAAAV,EAACY,EAAA,CAEGC,SAAU7B,IAAgB2B,EAC1BG,OAAQH,EACRI,MAAO9B,EACPkB,QAAS,IAAMpB,EAAa4B,EAAM3B,IAJ7B0B,EAAA,MASrBV,EAACC,EAAA,CACGX,UAAU,wBACVY,MAAOhB,EAAOE,KACde,QAAS,IAAMpB,EAAaC,EAAc,EAAGA,GAC7C,gBAAeA,IAAgBC,EAC/BmB,SAAUpB,IAAgBC,GAAqB,EAAA,EAE/Cc,WAACiB,EAAiB,SAM5BC,MAAAA,EAAoBjC,EAAc,EAClCkC,EAAkBlC,EAAcC,EAAgB,EAEhDkC,EAAgBC,KAAKC,IACvBD,KAAKE,IAAItC,EAAc,EAAG,GAC1BC,EAAgB,GAEdsC,EAAwBH,KAAKC,IAC/BF,EAAgB,EAChBlC,EAAgB,GAEduC,EAAmBJ,KAAKC,IAC1BE,EAAwB,EACxBtC,EAAgB,GAEdwC,EAAsBL,KAAKC,IAC7BE,EAAwB,EACxBtC,EAAgB,GAEdyC,EAAcN,KAAKC,IAAIE,EAAwB,EAAGtC,EAAgB,YAGnEW,EAAU,CAAAJ,IAAAA,KAAcD,EAAMD,UAAU,iBACrCS,SAAA,CAAAC,EAACC,EAAA,CACGX,UAAU,wBACVY,MAAOhB,EAAOC,SACdgB,QAAS,IAAMpB,EAAaC,EAAc,EAAGA,GAC7C,gBAA+B,IAAhBA,EACfoB,SAA0B,IAAhBpB,GAAyB,EAAA,EAEnCe,WAACM,EAAgB,MAErBR,EAAC,KAAG,CAAAP,UAAU,wBACVS,SAAA,CAAAC,EAACY,EAAA,CACGC,SAA0B,IAAhB7B,EACV8B,OAAQ,EACRC,MAAO9B,EACPkB,QAAS,IAAMpB,EAAa,EAAGC,KAElCiC,EACGjB,EAAC,OAAA,CACG,eAAW,EACXV,UAAU,iCAETS,SAAA,QAGLC,EAACY,EAAA,CACGC,SAAU7B,IAAgBmC,EAC1BL,OAAQK,EACRJ,MAAO9B,EACPkB,QAAS,IAAMpB,EAAaoC,EAAenC,KAGnDgB,EAACY,EAAA,CACGC,SAAU7B,IAAgBuC,EAC1BT,OAAQS,EACRR,MAAO9B,EACPkB,QAAS,IACLpB,EAAawC,EAAuBvC,KAG5CgB,EAACY,EAAA,CACGC,SAAU7B,IAAgBwC,EAC1BV,OAAQU,EACRT,MAAO9B,EACPkB,QAAS,IAAMpB,EAAayC,EAAkBxC,KAElDgB,EAACY,EAAA,CACGC,SAAU7B,IAAgByC,EAC1BX,OAAQW,EACRV,MAAO9B,EACPkB,QAAS,IACLpB,EAAa0C,EAAqBzC,KAGzCkC,EACGlB,EAAC,OAAA,CACG,eAAW,EACXV,UAAU,iCAETS,SAAA,QAGLC,EAACY,EAAA,CACGC,SAAU7B,IAAgB0C,EAC1BZ,OAAQY,EACRX,MAAO9B,EACPkB,QAAS,IAAMpB,EAAa2C,EAAa1C,KAGjDgB,EAACY,EAAA,CACGC,SAAU7B,IAAgBC,EAC1B6B,OAAQ7B,EACR8B,MAAO9B,EACPkB,QAAS,IAAMpB,EAAaE,EAAeD,QAGnDgB,EAACC,EAAA,CACGX,UAAU,wBACVY,MAAOhB,EAAOE,KACde,QAAS,IAAMpB,EAAaC,EAAc,EAAGA,GAC7C,gBAAeA,IAAgBC,EAC/BmB,SAAUpB,IAAgBC,GAAqB,EAAA,EAE/Cc,WAACiB,EAAiB,QAIlC"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../../src/components/pagination/Pagination.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { useEffect } from \"react\";\nimport type { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { IconButton } from \"../icon-button/IconButton.js\";\nimport { ChevronLeftIcon } from \"../icon/icons/ChevronLeftIcon.js\";\nimport { ChevronRightIcon } from \"../icon/icons/ChevronRightIcon.js\";\nimport { PageButton } from \"./PageButton.js\";\nimport type { PaginationProps } from \"./types.js\";\n\ntype PaginationComponent = <ElementType extends React.ElementType = \"nav\">(\n props: PaginationProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const Pagination = React.forwardRef(function Pagination<\n ElementType extends React.ElementType = \"nav\",\n>(\n {\n onPageChange,\n currentPage,\n numberOfPages,\n labels = {\n previous: \"Forrige side\",\n next: \"Neste side\",\n },\n as,\n className,\n ...rest\n }: PaginationProps<ElementType>,\n ref?: PolymorphicRef<ElementType>,\n) {\n useEffect(() => {\n if (currentPage < 1) {\n console.error(\n \"[Pagination]: currentPage prop should be set to a value larger than 0\",\n );\n }\n if (currentPage > numberOfPages) {\n console.error(\n \"[Pagination]: currentPage prop should not be set to a value larger than numberOfPages\",\n );\n }\n }, [currentPage, numberOfPages]);\n\n const Component = as || \"nav\";\n\n if (numberOfPages <= 7) {\n return (\n <Component\n ref={ref}\n {...rest}\n className={clsx(\"jkl-pagination\", className)}\n >\n <IconButton\n className=\"jkl-pagination-button\"\n title={labels.previous}\n onClick={() => onPageChange(currentPage - 1, currentPage)}\n aria-disabled={currentPage === 1}\n tabIndex={currentPage === 1 ? -1 : 0}\n >\n <ChevronLeftIcon />\n </IconButton>\n <ol className=\"jkl-pagination__pages\">\n {Array.from({ length: numberOfPages }).map((_, index) => {\n const page = index + 1;\n return (\n <PageButton\n key={index}\n isActive={currentPage === page}\n number={page}\n total={numberOfPages}\n onClick={() => onPageChange(page, currentPage)}\n />\n );\n })}\n </ol>\n <IconButton\n className=\"jkl-pagination-button\"\n title={labels.next}\n onClick={() => onPageChange(currentPage + 1, currentPage)}\n aria-disabled={currentPage === numberOfPages}\n tabIndex={currentPage === numberOfPages ? -1 : 0}\n >\n <ChevronRightIcon />\n </IconButton>\n </Component>\n );\n }\n\n const showStartEllipsis = currentPage > 4;\n const showEndEllipsis = currentPage < numberOfPages - 3;\n\n const startEllipsis = Math.min(\n Math.max(currentPage - 2, 2),\n numberOfPages - 5,\n );\n const centerPageNumberStart = Math.min(\n startEllipsis + 1,\n numberOfPages - 4,\n );\n const centerPageNumber = Math.min(\n centerPageNumberStart + 1,\n numberOfPages - 3,\n );\n const centerPageNumberEnd = Math.min(\n centerPageNumberStart + 2,\n numberOfPages - 2,\n );\n const endEllipsis = Math.min(centerPageNumberStart + 3, numberOfPages - 1);\n\n return (\n <Component ref={ref} {...rest} className=\"jkl-pagination\">\n <IconButton\n className=\"jkl-pagination-button\"\n title={labels.previous}\n onClick={() => onPageChange(currentPage - 1, currentPage)}\n aria-disabled={currentPage === 1}\n tabIndex={currentPage === 1 ? -1 : 0}\n >\n <ChevronLeftIcon />\n </IconButton>\n <ol className=\"jkl-pagination__pages\">\n <PageButton\n isActive={currentPage === 1}\n number={1}\n total={numberOfPages}\n onClick={() => onPageChange(1, currentPage)}\n />\n {showStartEllipsis ? (\n <span\n aria-hidden\n className=\"jkl-pagination-button--elipsis\"\n >\n {\"...\"}\n </span>\n ) : (\n <PageButton\n isActive={currentPage === startEllipsis}\n number={startEllipsis}\n total={numberOfPages}\n onClick={() => onPageChange(startEllipsis, currentPage)}\n />\n )}\n <PageButton\n isActive={currentPage === centerPageNumberStart}\n number={centerPageNumberStart}\n total={numberOfPages}\n onClick={() =>\n onPageChange(centerPageNumberStart, currentPage)\n }\n />\n <PageButton\n isActive={currentPage === centerPageNumber}\n number={centerPageNumber}\n total={numberOfPages}\n onClick={() => onPageChange(centerPageNumber, currentPage)}\n />\n <PageButton\n isActive={currentPage === centerPageNumberEnd}\n number={centerPageNumberEnd}\n total={numberOfPages}\n onClick={() =>\n onPageChange(centerPageNumberEnd, currentPage)\n }\n />\n {showEndEllipsis ? (\n <span\n aria-hidden\n className=\"jkl-pagination-button--elipsis\"\n >\n {\"...\"}\n </span>\n ) : (\n <PageButton\n isActive={currentPage === endEllipsis}\n number={endEllipsis}\n total={numberOfPages}\n onClick={() => onPageChange(endEllipsis, currentPage)}\n />\n )}\n <PageButton\n isActive={currentPage === numberOfPages}\n number={numberOfPages}\n total={numberOfPages}\n onClick={() => onPageChange(numberOfPages, currentPage)}\n />\n </ol>\n <IconButton\n className=\"jkl-pagination-button\"\n title={labels.next}\n onClick={() => onPageChange(currentPage + 1, currentPage)}\n aria-disabled={currentPage === numberOfPages}\n tabIndex={currentPage === numberOfPages ? -1 : 0}\n >\n <ChevronRightIcon />\n </IconButton>\n </Component>\n );\n}) as PaginationComponent;\n"],"names":["Pagination","React","forwardRef","onPageChange","currentPage","numberOfPages","labels","previous","next","as","className","rest","ref","useEffect","console","error","Component","jsxs","clsx","children","jsx","IconButton","title","onClick","tabIndex","ChevronLeftIcon","from","length","map","_","index","page","PageButton","isActive","number","total","ChevronRightIcon","showStartEllipsis","showEndEllipsis","startEllipsis","Math","min","max","centerPageNumberStart","centerPageNumber","centerPageNumberEnd","endEllipsis"],"mappings":"oXAaO,MAAMA,EAAaC,EAAMC,YAAW,UAInCC,aAAAA,EACAC,YAAAA,EACAC,cAAAA,EACAC,OAAAA,EAAS,CACLC,SAAU,eACVC,KAAM,cAEVC,GAAAA,EACAC,UAAAA,KACGC,GAEPC,GAEAC,GAAU,KACFT,EAAc,GACNU,QAAAC,MACJ,yEAGJX,EAAcC,GACNS,QAAAC,MACJ,wFAAA,GAGT,CAACX,EAAaC,IAEjB,MAAMW,EAAYP,GAAM,MAExB,GAAIJ,GAAiB,EAEb,OAAAY,EAACD,EAAA,CACGJ,IAAAA,KACID,EACJD,UAAWQ,EAAK,iBAAkBR,GAElCS,SAAA,CAAAC,EAACC,EAAA,CACGX,UAAU,wBACVY,MAAOhB,EAAOC,SACdgB,QAAS,IAAMpB,EAAaC,EAAc,EAAGA,GAC7C,gBAA+B,IAAhBA,EACfoB,SAA0B,IAAhBpB,GAAyB,EAAA,EAEnCe,WAACM,EAAgB,MAEpBL,EAAA,KAAA,CAAGV,UAAU,wBACTS,eAAMO,KAAK,CAAEC,OAAQtB,IAAiBuB,KAAI,CAACC,EAAGC,KAC3C,MAAMC,EAAOD,EAAQ,EAEjB,OAAAV,EAACY,EAAA,CAEGC,SAAU7B,IAAgB2B,EAC1BG,OAAQH,EACRI,MAAO9B,EACPkB,QAAS,IAAMpB,EAAa4B,EAAM3B,IAJ7B0B,EAAA,MASrBV,EAACC,EAAA,CACGX,UAAU,wBACVY,MAAOhB,EAAOE,KACde,QAAS,IAAMpB,EAAaC,EAAc,EAAGA,GAC7C,gBAAeA,IAAgBC,EAC/BmB,SAAUpB,IAAgBC,GAAqB,EAAA,EAE/Cc,WAACiB,EAAiB,SAM5BC,MAAAA,EAAoBjC,EAAc,EAClCkC,EAAkBlC,EAAcC,EAAgB,EAEhDkC,EAAgBC,KAAKC,IACvBD,KAAKE,IAAItC,EAAc,EAAG,GAC1BC,EAAgB,GAEdsC,EAAwBH,KAAKC,IAC/BF,EAAgB,EAChBlC,EAAgB,GAEduC,EAAmBJ,KAAKC,IAC1BE,EAAwB,EACxBtC,EAAgB,GAEdwC,EAAsBL,KAAKC,IAC7BE,EAAwB,EACxBtC,EAAgB,GAEdyC,EAAcN,KAAKC,IAAIE,EAAwB,EAAGtC,EAAgB,YAGnEW,EAAU,CAAAJ,IAAAA,KAAcD,EAAMD,UAAU,iBACrCS,SAAA,CAAAC,EAACC,EAAA,CACGX,UAAU,wBACVY,MAAOhB,EAAOC,SACdgB,QAAS,IAAMpB,EAAaC,EAAc,EAAGA,GAC7C,gBAA+B,IAAhBA,EACfoB,SAA0B,IAAhBpB,GAAyB,EAAA,EAEnCe,WAACM,EAAgB,MAErBR,EAAC,KAAG,CAAAP,UAAU,wBACVS,SAAA,CAAAC,EAACY,EAAA,CACGC,SAA0B,IAAhB7B,EACV8B,OAAQ,EACRC,MAAO9B,EACPkB,QAAS,IAAMpB,EAAa,EAAGC,KAElCiC,EACGjB,EAAC,OAAA,CACG,eAAW,EACXV,UAAU,iCAETS,SAAA,QAGLC,EAACY,EAAA,CACGC,SAAU7B,IAAgBmC,EAC1BL,OAAQK,EACRJ,MAAO9B,EACPkB,QAAS,IAAMpB,EAAaoC,EAAenC,KAGnDgB,EAACY,EAAA,CACGC,SAAU7B,IAAgBuC,EAC1BT,OAAQS,EACRR,MAAO9B,EACPkB,QAAS,IACLpB,EAAawC,EAAuBvC,KAG5CgB,EAACY,EAAA,CACGC,SAAU7B,IAAgBwC,EAC1BV,OAAQU,EACRT,MAAO9B,EACPkB,QAAS,IAAMpB,EAAayC,EAAkBxC,KAElDgB,EAACY,EAAA,CACGC,SAAU7B,IAAgByC,EAC1BX,OAAQW,EACRV,MAAO9B,EACPkB,QAAS,IACLpB,EAAa0C,EAAqBzC,KAGzCkC,EACGlB,EAAC,OAAA,CACG,eAAW,EACXV,UAAU,iCAETS,SAAA,QAGLC,EAACY,EAAA,CACGC,SAAU7B,IAAgB0C,EAC1BZ,OAAQY,EACRX,MAAO9B,EACPkB,QAAS,IAAMpB,EAAa2C,EAAa1C,KAGjDgB,EAACY,EAAA,CACGC,SAAU7B,IAAgBC,EAC1B6B,OAAQ7B,EACR8B,MAAO9B,EACPkB,QAAS,IAAMpB,EAAaE,EAAeD,QAGnDgB,EAACC,EAAA,CACGX,UAAU,wBACVY,MAAOhB,EAAOE,KACde,QAAS,IAAMpB,EAAaC,EAAc,EAAGA,GAC7C,gBAAeA,IAAgBC,EAC/BmB,SAAUpB,IAAgBC,GAAqB,EAAA,EAE/Cc,WAACiB,EAAiB,QAIlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.stories.js","sources":["../../../../../src/components/pagination/stories/Pagination.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport React, { useState } from \"react\";\nimport { Pagination as PaginationComponent } from \"../Pagination.js\";\nimport \"../styles/_index.scss\";\n\nconst meta: Meta = {\n title: \"Komponenter/Pagination\",\n component: PaginationComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof PaginationComponent>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof PaginationComponent>;\n\nexport const Pagination: Story = {\n args: {\n currentPage: 1,\n numberOfPages: 10,\n onPageChange: () => {},\n },\n decorators: [\n (Story, context) => {\n const [currentPage, setCurrentPage] = useState<number>(\n context.args.currentPage,\n );\n\n const numberOfPages = context.args.numberOfPages;\n\n const onPageChange = (newPage: number, fromPage: number) => {\n if (newPage > 0 && newPage <= numberOfPages) {\n setCurrentPage(newPage);\n }\n };\n\n return (\n <div>\n <PaginationComponent\n currentPage={currentPage}\n numberOfPages={numberOfPages}\n onPageChange={onPageChange}\n />\n </div>\n );\n },\n ],\n};\n"],"names":["meta","title","component","PaginationComponent","parameters","layout","tags","Pagination","args","currentPage","numberOfPages","onPageChange","decorators","Story","context","setCurrentPage","useState","children","jsx","newPage","fromPage"],"mappings":"uHAKA,MAAMA,EAAa,CACfC,MAAO,yBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAOEC,EAAoB,CAC7BC,KAAM,CACFC,YAAa,EACbC,cAAe,GACfC,aAAc,QAElBC,WAAY,CACR,CAACC,EAAOC,KACE,MAACL,EAAaM,GAAkBC,EAClCF,EAAQN,KAAKC,aAGXC,EAAgBI,EAAQN,KAAKE,cAQnC,SACK,MACG,CAAAO,SAAAC,EAACf,EAAA,CACGM,YAAAA,EACAC,cAAAA,EACAC,aAXS,CAACQ,EAAiBC,KAC/BD,EAAU,GAAKA,GAAWT,GAC1BK,EAAeI,EAAO,KAW1B"}
1
+ {"version":3,"file":"Pagination.stories.js","sources":["../../../../../src/components/pagination/stories/Pagination.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport React, { useState } from \"react\";\nimport { Pagination as PaginationComponent } from \"../Pagination.js\";\nimport \"../styles/_index.scss\";\n\nconst meta: Meta = {\n title: \"Komponenter/Pagination\",\n component: PaginationComponent,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n} satisfies Meta<typeof PaginationComponent>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof PaginationComponent>;\n\nexport const Pagination: Story = {\n args: {\n currentPage: 1,\n numberOfPages: 10,\n onPageChange: () => {},\n },\n decorators: [\n (Story, context) => {\n const [currentPage, setCurrentPage] = useState<number>(\n context.args.currentPage,\n );\n\n const numberOfPages = context.args.numberOfPages;\n\n const onPageChange = (newPage: number, fromPage: number) => {\n if (newPage > 0 && newPage <= numberOfPages) {\n setCurrentPage(newPage);\n }\n };\n\n return (\n <div>\n <PaginationComponent\n currentPage={currentPage}\n numberOfPages={numberOfPages}\n onPageChange={onPageChange}\n />\n </div>\n );\n },\n ],\n};\n"],"names":["meta","title","component","PaginationComponent","parameters","layout","tags","Pagination","args","currentPage","numberOfPages","onPageChange","decorators","Story","context","setCurrentPage","useState","children","jsx","newPage","fromPage"],"mappings":"uHAKA,MAAMA,EAAa,CACfC,MAAO,yBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAOEC,EAAoB,CAC7BC,KAAM,CACFC,YAAa,EACbC,cAAe,GACfC,aAAc,QAElBC,WAAY,CACR,CAACC,EAAOC,KACE,MAACL,EAAaM,GAAkBC,EAClCF,EAAQN,KAAKC,aAGXC,EAAgBI,EAAQN,KAAKE,cAQnC,SACK,MACG,CAAAO,SAAAC,EAACf,EAAA,CACGM,YAAAA,EACAC,cAAAA,EACAC,aAXS,CAACQ,EAAiBC,KAC/BD,EAAU,GAAKA,GAAWT,GAC1BK,EAAeI,EAAO,KAW1B"}