@fremtind/jokul 0.68.4 → 0.68.6

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 (406) hide show
  1. package/build/build-stats.html +15 -15
  2. package/build/cjs/components/accordion/AccordionItem.cjs.map +1 -1
  3. package/build/cjs/components/autosuggest/Autosuggest.cjs.map +1 -1
  4. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs +2 -2
  5. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs.map +1 -1
  6. package/build/cjs/components/autosuggest/ControllerButton.cjs.map +1 -1
  7. package/build/cjs/components/autosuggest/utils.cjs.map +1 -1
  8. package/build/cjs/components/breadcrumb/Breadcrumb.cjs.map +1 -1
  9. package/build/cjs/components/breadcrumb/documentation/BreadcrumbDocs.cjs.map +1 -1
  10. package/build/cjs/components/breadcrumb/stories/Breadcrumb.stories.cjs +1 -1
  11. package/build/cjs/components/breadcrumb/stories/Breadcrumb.stories.cjs.map +1 -1
  12. package/build/cjs/components/breadcrumb/stories/BreadcrumbItem.stories.cjs.map +1 -1
  13. package/build/cjs/components/button/Button.cjs.map +1 -1
  14. package/build/cjs/components/button/documentation/ButtonDocs.cjs.map +1 -1
  15. package/build/cjs/components/card/Card.cjs.map +1 -1
  16. package/build/cjs/components/card/CardImage.cjs.map +1 -1
  17. package/build/cjs/components/card/NavCard.cjs.map +1 -1
  18. package/build/cjs/components/card/stories/Card.stories.cjs.map +1 -1
  19. package/build/cjs/components/checkbox/Checkbox.cjs.map +1 -1
  20. package/build/cjs/components/checkbox-panel/stories/CheckboxPanel.stories.cjs.map +1 -1
  21. package/build/cjs/components/combobox/Combobox.cjs.map +1 -1
  22. package/build/cjs/components/combobox/stories/Combobox.stories.cjs.map +1 -1
  23. package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
  24. package/build/cjs/components/cookie-consent/CookieConsentContext.cjs.map +1 -1
  25. package/build/cjs/components/cookie-consent/stories/CookieConsent.stories.cjs.map +1 -1
  26. package/build/cjs/components/countdown/Countdown.cjs.map +1 -1
  27. package/build/cjs/components/countdown/stories/Countdown.stories.cjs.map +1 -1
  28. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  29. package/build/cjs/components/datepicker/internal/Calendar.cjs.map +1 -1
  30. package/build/cjs/components/datepicker/internal/calendarReducer.cjs.map +1 -1
  31. package/build/cjs/components/datepicker/internal/useCalendar.cjs.map +1 -1
  32. package/build/cjs/components/datepicker/internal/utils.cjs.map +1 -1
  33. package/build/cjs/components/datepicker/stories/Datepicker.stories.cjs.map +1 -1
  34. package/build/cjs/components/description-list/stories/DescriptionList.stories.cjs.map +1 -1
  35. package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
  36. package/build/cjs/components/expander/ExpandablePanelContent.cjs.map +1 -1
  37. package/build/cjs/components/expander/Expander.cjs.map +1 -1
  38. package/build/cjs/components/expander/deprecated/ExpandSection.cjs.map +1 -1
  39. package/build/cjs/components/expander/deprecated/Expander.cjs.map +1 -1
  40. package/build/cjs/components/expander/stories/Expander.stories.cjs.map +1 -1
  41. package/build/cjs/components/expander/stories/ExpanderPanel.stories.cjs.map +1 -1
  42. package/build/cjs/components/feedback/Feedback.cjs.map +1 -1
  43. package/build/cjs/components/feedback/feedbackContext.cjs.map +1 -1
  44. package/build/cjs/components/feedback/followup/Followup.cjs.map +1 -1
  45. package/build/cjs/components/feedback/followup/followupContext.cjs.map +1 -1
  46. package/build/cjs/components/feedback/followup/useFollowup.cjs.map +1 -1
  47. package/build/cjs/components/feedback/main-question/MainQuestion.cjs.map +1 -1
  48. package/build/cjs/components/feedback/main-question/mainQuestionContext.cjs.map +1 -1
  49. package/build/cjs/components/feedback/main-question/useMainQuestion.cjs.map +1 -1
  50. package/build/cjs/components/feedback/questions/AddonQuestion.cjs.map +1 -1
  51. package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs.map +1 -1
  52. package/build/cjs/components/feedback/questions/ContactQuestion.cjs.map +1 -1
  53. package/build/cjs/components/feedback/questions/RadioQuestion.cjs.map +1 -1
  54. package/build/cjs/components/feedback/questions/SmileyQuestion.cjs.map +1 -1
  55. package/build/cjs/components/feedback/questions/TextQuestion.cjs.map +1 -1
  56. package/build/cjs/components/feedback/questions/smileyUtils.cjs.map +1 -1
  57. package/build/cjs/components/feedback/utils.cjs.map +1 -1
  58. package/build/cjs/components/file-input/File.cjs.map +1 -1
  59. package/build/cjs/components/file-input/FileInput.cjs.map +1 -1
  60. package/build/cjs/components/file-input/internal/Dropzone.cjs.map +1 -1
  61. package/build/cjs/components/file-input/internal/Input.cjs.map +1 -1
  62. package/build/cjs/components/file-input/internal/fileInputContext.cjs.map +1 -1
  63. package/build/cjs/components/file-input/internal/validateFile.cjs.map +1 -1
  64. package/build/cjs/components/file-input/stories/FileInput.stories.cjs.map +1 -1
  65. package/build/cjs/components/flex/Flex.cjs.map +1 -1
  66. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs.map +1 -1
  67. package/build/cjs/components/icon/icons/RedCrossIcon.cjs.map +1 -1
  68. package/build/cjs/components/icon/stories/Icons.stories.cjs.map +1 -1
  69. package/build/cjs/components/icon-button/IconButton.cjs.map +1 -1
  70. package/build/cjs/components/icon-button/stories/IconButton.stories.cjs.map +1 -1
  71. package/build/cjs/components/image/Image.cjs.map +1 -1
  72. package/build/cjs/components/image/stories/Image.stories.cjs.map +1 -1
  73. package/build/cjs/components/image/useImageLoadingStatus.cjs.map +1 -1
  74. package/build/cjs/components/input-group/FieldGroup.cjs.map +1 -1
  75. package/build/cjs/components/input-group/InputGroup.cjs.map +1 -1
  76. package/build/cjs/components/input-group/Label.cjs.map +1 -1
  77. package/build/cjs/components/input-group/SupportLabel.cjs.map +1 -1
  78. package/build/cjs/components/input-group/stories/FieldGroup.stories.cjs +1 -1
  79. package/build/cjs/components/input-group/stories/FieldGroup.stories.cjs.map +1 -1
  80. package/build/cjs/components/input-group/stories/InputGroup.stories.cjs +1 -1
  81. package/build/cjs/components/input-group/stories/InputGroup.stories.cjs.map +1 -1
  82. package/build/cjs/components/link-list/LinkList.cjs.map +1 -1
  83. package/build/cjs/components/link-list/stories/LinkList.stories.cjs.map +1 -1
  84. package/build/cjs/components/list/List.cjs.map +1 -1
  85. package/build/cjs/components/list/stories/List.stories.cjs.map +1 -1
  86. package/build/cjs/components/loader/Loader.cjs.map +1 -1
  87. package/build/cjs/components/loader/skeletons/SkeletonAnimation.cjs.map +1 -1
  88. package/build/cjs/components/loader/skeletons/SkeletonLabel.cjs.map +1 -1
  89. package/build/cjs/components/loader/skeletons/SkeletonTextArea.cjs.map +1 -1
  90. package/build/cjs/components/loader/stories/Skeleton.stories.cjs.map +1 -1
  91. package/build/cjs/components/logo/Logo.cjs.map +1 -1
  92. package/build/cjs/components/logo/LogoStamp.cjs.map +1 -1
  93. package/build/cjs/components/logo/stories/Logo.stories.cjs.map +1 -1
  94. package/build/cjs/components/logo/stories/LogoStamp.stories.cjs.map +1 -1
  95. package/build/cjs/components/logo/useTextSpinner.cjs.map +1 -1
  96. package/build/cjs/components/menu/Menu.cjs +1 -1
  97. package/build/cjs/components/menu/Menu.cjs.map +1 -1
  98. package/build/cjs/components/menu/MenuItem.cjs.map +1 -1
  99. package/build/cjs/components/menu/MenuItemCheckbox.cjs.map +1 -1
  100. package/build/cjs/components/menu/stories/Menu.stories.cjs.map +1 -1
  101. package/build/cjs/components/menu/stories/MenuDivider.stories.cjs.map +1 -1
  102. package/build/cjs/components/menu/stories/MenuItem.stories.cjs.map +1 -1
  103. package/build/cjs/components/menu/useMenuWideEvents.cjs.map +1 -1
  104. package/build/cjs/components/message/FormErrorMessage.cjs.map +1 -1
  105. package/build/cjs/components/message/Message.cjs.map +1 -1
  106. package/build/cjs/components/message/stories/ErrorMessage.stories.cjs.map +1 -1
  107. package/build/cjs/components/message/stories/InfoMessage.stories.cjs.map +1 -1
  108. package/build/cjs/components/message/stories/SuccessMessage.stories.cjs.map +1 -1
  109. package/build/cjs/components/message/stories/WarningMessage.stories.cjs.map +1 -1
  110. package/build/cjs/components/modal/Modal.cjs.map +1 -1
  111. package/build/cjs/components/modal/stories/CompleteModal.stories.cjs +1 -1
  112. package/build/cjs/components/modal/stories/ModalCloseButton.stories.cjs +1 -1
  113. package/build/cjs/components/modal/stories/ModalCloseButton.stories.cjs.map +1 -1
  114. package/build/cjs/components/modal/useModal.cjs.map +1 -1
  115. package/build/cjs/components/pagination/Pagination.cjs.map +1 -1
  116. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  117. package/build/cjs/components/popover/stories/PopoverControlled.stories.cjs +1 -1
  118. package/build/cjs/components/popover/stories/PopoverControlled.stories.cjs.map +1 -1
  119. package/build/cjs/components/popover/stories/PopoverUncontrolled.stories.cjs +1 -1
  120. package/build/cjs/components/popover/stories/PopoverUncontrolled.stories.cjs.map +1 -1
  121. package/build/cjs/components/progress-bar/ProgressBar.cjs.map +1 -1
  122. package/build/cjs/components/radio-button/BaseRadioButton.cjs.map +1 -1
  123. package/build/cjs/components/radio-button/RadioButton.cjs.map +1 -1
  124. package/build/cjs/components/radio-button/RadioButtonGroup.cjs.map +1 -1
  125. package/build/cjs/components/radio-button/stories/RadioButtonGroup.stories.cjs +1 -1
  126. package/build/cjs/components/radio-panel/RadioPanel.cjs.map +1 -1
  127. package/build/cjs/components/radio-panel/RadioPanelGroup.cjs.map +1 -1
  128. package/build/cjs/components/select/NativeSelect.cjs.map +1 -1
  129. package/build/cjs/components/select/Select.cjs.map +1 -1
  130. package/build/cjs/components/select/stories/select.stories.cjs.map +1 -1
  131. package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
  132. package/build/cjs/components/system-message/common/MessageIcon.cjs.map +1 -1
  133. package/build/cjs/components/table/ExpandableTableRowController.cjs.map +1 -1
  134. package/build/cjs/components/table/Table.cjs.map +1 -1
  135. package/build/cjs/components/table/TableCell.cjs.map +1 -1
  136. package/build/cjs/components/table/TableHead.cjs.map +1 -1
  137. package/build/cjs/components/table/TableHeader.cjs.map +1 -1
  138. package/build/cjs/components/table/TablePagination.cjs.map +1 -1
  139. package/build/cjs/components/table/TableRow.cjs.map +1 -1
  140. package/build/cjs/components/table/stories/table.stories.cjs.map +1 -1
  141. package/build/cjs/components/table/utils.cjs.map +1 -1
  142. package/build/cjs/components/tabs/NavTab.cjs.map +1 -1
  143. package/build/cjs/components/tabs/NavTabs.cjs.map +1 -1
  144. package/build/cjs/components/tabs/Tab.cjs.map +1 -1
  145. package/build/cjs/components/tabs/TabList.cjs.map +1 -1
  146. package/build/cjs/components/tabs/TabPanel.cjs.map +1 -1
  147. package/build/cjs/components/tabs/Tabs.cjs +1 -1
  148. package/build/cjs/components/tabs/Tabs.cjs.map +1 -1
  149. package/build/cjs/components/tabs/stories/NavTabs.stories.cjs.map +1 -1
  150. package/build/cjs/components/tabs/stories/Tabs.stories.cjs.map +1 -1
  151. package/build/cjs/components/text-area/BaseTextArea.cjs.map +1 -1
  152. package/build/cjs/components/text-area/TextArea.cjs.map +1 -1
  153. package/build/cjs/components/text-input/BaseTextInput.cjs.map +1 -1
  154. package/build/cjs/components/text-input/TextInput.cjs.map +1 -1
  155. package/build/cjs/components/toast/Toast.cjs.map +1 -1
  156. package/build/cjs/components/toast/stories/ToastInCotext.stories.cjs +1 -1
  157. package/build/cjs/components/toast/stories/ToastInCotext.stories.cjs.map +1 -1
  158. package/build/cjs/components/toast/toastContext.cjs.map +1 -1
  159. package/build/cjs/components/toggle-switch/ToggleSlider.cjs.map +1 -1
  160. package/build/cjs/components/toggle-switch/ToggleSwitch.cjs.map +1 -1
  161. package/build/cjs/components/toggle-switch/usePillStyles.cjs.map +1 -1
  162. package/build/cjs/components/tooltip/PopupTip.cjs.map +1 -1
  163. package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
  164. package/build/cjs/components/tooltip/TooltipContent.cjs.map +1 -1
  165. package/build/cjs/components/tooltip/TooltipTrigger.cjs.map +1 -1
  166. package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.cjs.map +1 -1
  167. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs.map +1 -1
  168. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs.map +1 -1
  169. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs.map +1 -1
  170. package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.cjs.map +1 -1
  171. package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs.map +1 -1
  172. package/build/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  173. package/build/cjs/hooks/useElementDimensions/useElementDimensions.cjs.map +1 -1
  174. package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs.map +1 -1
  175. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  176. package/build/cjs/hooks/useKeyListener/useKeyListener.cjs.map +1 -1
  177. package/build/cjs/hooks/useListNavigation/useListNavigation.cjs.map +1 -1
  178. package/build/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  179. package/build/cjs/hooks/useProgressiveImg/useProgressiveImg.cjs.map +1 -1
  180. package/build/cjs/hooks/useScreen/state.cjs.map +1 -1
  181. package/build/cjs/hooks/useScreen/useScreen.cjs.map +1 -1
  182. package/build/cjs/tailwind/tailwindPreset.cjs.map +1 -1
  183. package/build/cjs/utilities/formatters/avstand/formatAvstand.cjs.map +1 -1
  184. package/build/cjs/utilities/formatters/bytes/formatBytes.cjs.map +1 -1
  185. package/build/cjs/utilities/formatters/fodselsnummer/formatFodselsnummer.cjs.map +1 -1
  186. package/build/cjs/utilities/formatters/kontonummer/formatKontonummer.cjs.map +1 -1
  187. package/build/cjs/utilities/formatters/kortnummer/formatKortnummer.cjs.map +1 -1
  188. package/build/cjs/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.cjs.map +1 -1
  189. package/build/cjs/utilities/formatters/telefonnummer/formatTelefonnummer.cjs.map +1 -1
  190. package/build/cjs/utilities/formatters/util/registerWithMask.cjs.map +1 -1
  191. package/build/cjs/utilities/getThemeAndDensity.cjs.map +1 -1
  192. package/build/cjs/utilities/polymorphism/SlotComponent.cjs.map +1 -1
  193. package/build/cjs/utilities/polymorphism/mergeProps.cjs.map +1 -1
  194. package/build/cjs/utilities/tabListener.cjs.map +1 -1
  195. package/build/cjs/utilities/validators/isValidKortnummer/isValidKortnummer.cjs.map +1 -1
  196. package/build/es/components/accordion/AccordionItem.js.map +1 -1
  197. package/build/es/components/autosuggest/Autosuggest.js.map +1 -1
  198. package/build/es/components/autosuggest/BaseAutosuggest.js +2 -2
  199. package/build/es/components/autosuggest/BaseAutosuggest.js.map +1 -1
  200. package/build/es/components/autosuggest/utils.js.map +1 -1
  201. package/build/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  202. package/build/es/components/breadcrumb/stories/BreadcrumbItem.stories.js.map +1 -1
  203. package/build/es/components/button/documentation/ButtonDocs.js.map +1 -1
  204. package/build/es/components/card/NavCard.js.map +1 -1
  205. package/build/es/components/card/stories/Card.stories.js +1 -1
  206. package/build/es/components/checkbox/Checkbox.js.map +1 -1
  207. package/build/es/components/checkbox-panel/stories/CheckboxPanel.stories.js.map +1 -1
  208. package/build/es/components/combobox/Combobox.js.map +1 -1
  209. package/build/es/components/combobox/stories/Combobox.stories.js.map +1 -1
  210. package/build/es/components/cookie-consent/CookieConsent.js +1 -1
  211. package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
  212. package/build/es/components/cookie-consent/CookieConsentContext.js.map +1 -1
  213. package/build/es/components/cookie-consent/stories/CookieConsent.stories.js.map +1 -1
  214. package/build/es/components/countdown/Countdown.js.map +1 -1
  215. package/build/es/components/countdown/stories/Countdown.stories.js.map +1 -1
  216. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  217. package/build/es/components/datepicker/internal/Calendar.js +1 -1
  218. package/build/es/components/datepicker/internal/Calendar.js.map +1 -1
  219. package/build/es/components/datepicker/internal/calendarReducer.js.map +1 -1
  220. package/build/es/components/datepicker/internal/useCalendar.js +1 -1
  221. package/build/es/components/datepicker/internal/useCalendar.js.map +1 -1
  222. package/build/es/components/datepicker/internal/utils.js +1 -1
  223. package/build/es/components/datepicker/internal/utils.js.map +1 -1
  224. package/build/es/components/datepicker/stories/Datepicker.stories.js.map +1 -1
  225. package/build/es/components/description-list/stories/DescriptionList.stories.js +1 -1
  226. package/build/es/components/expander/ExpandablePanelContent.js.map +1 -1
  227. package/build/es/components/expander/Expander.js.map +1 -1
  228. package/build/es/components/expander/deprecated/ExpandSection.js.map +1 -1
  229. package/build/es/components/expander/deprecated/Expander.js.map +1 -1
  230. package/build/es/components/expander/stories/Expander.stories.js.map +1 -1
  231. package/build/es/components/expander/stories/ExpanderPanel.stories.js.map +1 -1
  232. package/build/es/components/feedback/Feedback.js.map +1 -1
  233. package/build/es/components/feedback/followup/useFollowup.js.map +1 -1
  234. package/build/es/components/feedback/main-question/useMainQuestion.js.map +1 -1
  235. package/build/es/components/feedback/questions/CheckboxQuestion.js.map +1 -1
  236. package/build/es/components/feedback/questions/ContactQuestion.js.map +1 -1
  237. package/build/es/components/feedback/questions/RadioQuestion.js.map +1 -1
  238. package/build/es/components/feedback/questions/SmileyQuestion.js +1 -1
  239. package/build/es/components/feedback/questions/SmileyQuestion.js.map +1 -1
  240. package/build/es/components/feedback/questions/TextQuestion.js.map +1 -1
  241. package/build/es/components/feedback/questions/smileyUtils.js.map +1 -1
  242. package/build/es/components/feedback/utils.js.map +1 -1
  243. package/build/es/components/file-input/File.js.map +1 -1
  244. package/build/es/components/file-input/FileInput.js.map +1 -1
  245. package/build/es/components/file-input/internal/Dropzone.js.map +1 -1
  246. package/build/es/components/file-input/internal/Input.js.map +1 -1
  247. package/build/es/components/file-input/stories/FileInput.stories.js.map +1 -1
  248. package/build/es/components/flex/Flex.js.map +1 -1
  249. package/build/es/components/icon-button/IconButton.js.map +1 -1
  250. package/build/es/components/icon-button/stories/IconButton.stories.js.map +1 -1
  251. package/build/es/components/image/Image.js.map +1 -1
  252. package/build/es/components/image/useImageLoadingStatus.js.map +1 -1
  253. package/build/es/components/input-group/FieldGroup.js.map +1 -1
  254. package/build/es/components/input-group/InputGroup.js.map +1 -1
  255. package/build/es/components/input-group/Label.js.map +1 -1
  256. package/build/es/components/input-group/SupportLabel.js.map +1 -1
  257. package/build/es/components/input-group/stories/InputGroup.stories.js.map +1 -1
  258. package/build/es/components/loader/Loader.js.map +1 -1
  259. package/build/es/components/loader/skeletons/SkeletonAnimation.js.map +1 -1
  260. package/build/es/components/loader/skeletons/SkeletonLabel.js.map +1 -1
  261. package/build/es/components/loader/skeletons/SkeletonTextArea.js.map +1 -1
  262. package/build/es/components/logo/Logo.js.map +1 -1
  263. package/build/es/components/logo/LogoStamp.js.map +1 -1
  264. package/build/es/components/menu/Menu.js +1 -1
  265. package/build/es/components/menu/Menu.js.map +1 -1
  266. package/build/es/components/menu/MenuItem.js.map +1 -1
  267. package/build/es/components/menu/MenuItemCheckbox.js.map +1 -1
  268. package/build/es/components/menu/stories/Menu.stories.js.map +1 -1
  269. package/build/es/components/menu/stories/MenuDivider.stories.js.map +1 -1
  270. package/build/es/components/menu/stories/MenuItem.stories.js.map +1 -1
  271. package/build/es/components/menu/useMenuWideEvents.js.map +1 -1
  272. package/build/es/components/message/FormErrorMessage.js.map +1 -1
  273. package/build/es/components/message/Message.js.map +1 -1
  274. package/build/es/components/message/stories/ErrorMessage.stories.js.map +1 -1
  275. package/build/es/components/message/stories/InfoMessage.stories.js.map +1 -1
  276. package/build/es/components/message/stories/SuccessMessage.stories.js.map +1 -1
  277. package/build/es/components/message/stories/WarningMessage.stories.js.map +1 -1
  278. package/build/es/components/pagination/Pagination.js.map +1 -1
  279. package/build/es/components/popover/Popover.js +1 -1
  280. package/build/es/components/popover/Popover.js.map +1 -1
  281. package/build/es/components/popover/stories/PopoverControlled.stories.js +1 -1
  282. package/build/es/components/popover/stories/PopoverControlled.stories.js.map +1 -1
  283. package/build/es/components/progress-bar/ProgressBar.js.map +1 -1
  284. package/build/es/components/radio-button/BaseRadioButton.js.map +1 -1
  285. package/build/es/components/radio-button/RadioButtonGroup.js.map +1 -1
  286. package/build/es/components/radio-panel/RadioPanel.js.map +1 -1
  287. package/build/es/components/select/NativeSelect.js.map +1 -1
  288. package/build/es/components/select/Select.js.map +1 -1
  289. package/build/es/components/system-message/SystemMessage.js.map +1 -1
  290. package/build/es/components/system-message/common/MessageIcon.js.map +1 -1
  291. package/build/es/components/table/ExpandableTableRowController.js.map +1 -1
  292. package/build/es/components/table/Table.js.map +1 -1
  293. package/build/es/components/table/TableCell.js.map +1 -1
  294. package/build/es/components/table/TableHead.js.map +1 -1
  295. package/build/es/components/table/TableHeader.js.map +1 -1
  296. package/build/es/components/table/TablePagination.js.map +1 -1
  297. package/build/es/components/table/TableRow.js.map +1 -1
  298. package/build/es/components/table/stories/table.stories.js +1 -1
  299. package/build/es/components/table/utils.js.map +1 -1
  300. package/build/es/components/tabs/NavTab.js.map +1 -1
  301. package/build/es/components/tabs/NavTabs.js.map +1 -1
  302. package/build/es/components/tabs/Tab.js.map +1 -1
  303. package/build/es/components/tabs/TabList.js.map +1 -1
  304. package/build/es/components/tabs/Tabs.js +1 -1
  305. package/build/es/components/tabs/Tabs.js.map +1 -1
  306. package/build/es/components/tabs/stories/NavTabs.stories.js +1 -1
  307. package/build/es/components/tabs/stories/Tabs.stories.js.map +1 -1
  308. package/build/es/components/text-area/BaseTextArea.js.map +1 -1
  309. package/build/es/components/text-area/TextArea.js.map +1 -1
  310. package/build/es/components/text-input/BaseTextInput.js.map +1 -1
  311. package/build/es/components/text-input/TextInput.js.map +1 -1
  312. package/build/es/components/toast/Toast.js.map +1 -1
  313. package/build/es/components/toast/stories/ToastInCotext.stories.js.map +1 -1
  314. package/build/es/components/toast/toastContext.js.map +1 -1
  315. package/build/es/components/toggle-switch/ToggleSlider.js.map +1 -1
  316. package/build/es/components/toggle-switch/ToggleSwitch.js.map +1 -1
  317. package/build/es/components/toggle-switch/usePillStyles.js.map +1 -1
  318. package/build/es/components/tooltip/Tooltip.js +1 -1
  319. package/build/es/components/tooltip/Tooltip.js.map +1 -1
  320. package/build/es/components/tooltip/TooltipTrigger.js.map +1 -1
  321. package/build/es/components/tooltip/stories/Tooltip.stories.js +1 -1
  322. package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.js.map +1 -1
  323. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js.map +1 -1
  324. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js.map +1 -1
  325. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js.map +1 -1
  326. package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.js.map +1 -1
  327. package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.js.map +1 -1
  328. package/build/es/hooks/useClickOutside/useClickOutside.js.map +1 -1
  329. package/build/es/hooks/useElementDimensions/useElementDimensions.js.map +1 -1
  330. package/build/es/hooks/useFocusOutside/useFocusOutside.js.map +1 -1
  331. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  332. package/build/es/hooks/useKeyListener/useKeyListener.js.map +1 -1
  333. package/build/es/hooks/useListNavigation/useListNavigation.js.map +1 -1
  334. package/build/es/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
  335. package/build/es/hooks/useProgressiveImg/useProgressiveImg.js.map +1 -1
  336. package/build/es/hooks/useScreen/state.js.map +1 -1
  337. package/build/es/hooks/useScreen/useScreen.js.map +1 -1
  338. package/build/es/utilities/formatters/util/registerWithMask.js.map +1 -1
  339. package/build/es/utilities/getThemeAndDensity.js.map +1 -1
  340. package/build/es/utilities/polymorphism/SlotComponent.js.map +1 -1
  341. package/build/es/utilities/polymorphism/mergeProps.js.map +1 -1
  342. package/build/es/utilities/tabListener.js.map +1 -1
  343. package/build/es/utilities/validators/isValidKortnummer/isValidKortnummer.js.map +1 -1
  344. package/build/index-C-qqMC-u.cjs +20 -0
  345. package/build/{index-ZdY5zxEI.cjs.map → index-C-qqMC-u.cjs.map} +1 -1
  346. package/build/index-Yq3eaNUM.js +20 -0
  347. package/build/{index-C4ABwKfA.js.map → index-Yq3eaNUM.js.map} +1 -1
  348. package/build/{style.css → jokul.css} +1 -1
  349. package/package.json +28 -28
  350. package/styles/components/accordion/accordion.min.css +1 -1
  351. package/styles/components/button/button.min.css +1 -1
  352. package/styles/components/card/card.min.css +1 -1
  353. package/styles/components/checkbox/checkbox.css +4 -4
  354. package/styles/components/checkbox/checkbox.min.css +1 -1
  355. package/styles/components/checkbox-panel/checkbox-panel.css +2 -2
  356. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  357. package/styles/components/chip/chip.min.css +1 -1
  358. package/styles/components/combobox/combobox.min.css +1 -1
  359. package/styles/components/cookie-consent/cookie-consent.min.css +1 -1
  360. package/styles/components/countdown/countdown.css +2 -2
  361. package/styles/components/countdown/countdown.min.css +1 -1
  362. package/styles/components/datepicker/datepicker.min.css +1 -1
  363. package/styles/components/description-list/description-list.min.css +1 -1
  364. package/styles/components/expander/deprecated/expander.min.css +1 -1
  365. package/styles/components/expander/expandable.min.css +1 -1
  366. package/styles/components/feedback/feedback.css +2 -2
  367. package/styles/components/feedback/feedback.min.css +1 -1
  368. package/styles/components/file-input/file-input.min.css +1 -1
  369. package/styles/components/icon-button/icon-button.min.css +1 -1
  370. package/styles/components/input-group/input-group.css +2 -2
  371. package/styles/components/input-group/input-group.min.css +1 -1
  372. package/styles/components/link/link.min.css +1 -1
  373. package/styles/components/link-list/link-list.min.css +1 -1
  374. package/styles/components/loader/loader.css +6 -6
  375. package/styles/components/loader/loader.min.css +1 -1
  376. package/styles/components/loader/skeleton-loader.css +5 -5
  377. package/styles/components/loader/skeleton-loader.min.css +1 -1
  378. package/styles/components/menu/menu.min.css +1 -1
  379. package/styles/components/message/message.css +2 -2
  380. package/styles/components/message/message.min.css +1 -1
  381. package/styles/components/modal/modal.min.css +1 -1
  382. package/styles/components/nav-link/nav-link.min.css +1 -1
  383. package/styles/components/popover/popover.min.css +1 -1
  384. package/styles/components/progress-bar/progress-bar.css +1 -1
  385. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  386. package/styles/components/radio-button/radio-button.css +2 -2
  387. package/styles/components/radio-button/radio-button.min.css +1 -1
  388. package/styles/components/radio-panel/radio-panel.css +2 -2
  389. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  390. package/styles/components/select/select.min.css +1 -1
  391. package/styles/components/system-message/system-message.css +2 -2
  392. package/styles/components/system-message/system-message.min.css +1 -1
  393. package/styles/components/table/table.min.css +1 -1
  394. package/styles/components/tabs/tabs.min.css +1 -1
  395. package/styles/components/text-area/text-area.min.css +1 -1
  396. package/styles/components/text-input/text-input.min.css +1 -1
  397. package/styles/components/toast/toast.css +4 -4
  398. package/styles/components/toast/toast.min.css +1 -1
  399. package/styles/components/toggle-switch/toggle-switch.min.css +1 -1
  400. package/styles/components/tooltip/tooltip.min.css +1 -1
  401. package/styles/core/core.min.css +1 -1
  402. package/styles/shared/input-panel/shared.min.css +1 -1
  403. package/styles/styles.css +36 -36
  404. package/styles/styles.min.css +1 -1
  405. package/build/index-C4ABwKfA.js +0 -20
  406. package/build/index-ZdY5zxEI.cjs +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.js","sources":["../../../../src/components/icon-button/IconButton.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport type { IconButtonProps } from \"./types.js\";\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n (props, ref) => {\n const { className, children, density, ...rest } = props;\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx(\"jkl-icon-button\", className)}\n data-testid=\"jkl-icon-button\"\n data-density={density}\n {...rest}\n >\n {children}\n </button>\n );\n },\n);\n\nIconButton.displayName = \"IconButton\";\n"],"names":["IconButton","forwardRef","props","ref","className","children","density","rest","jsx","type","clsx","displayName"],"mappings":"yHAIO,MAAMA,EAAaC,GACtB,CAACC,EAAOC,KACE,MAAEC,UAAAA,EAAWC,SAAAA,EAAUC,QAAAA,KAAYC,GAASL,EAE9C,OAAAM,EAAC,SAAA,CACGL,IAAAA,EACAM,KAAK,SACLL,UAAWM,EAAK,kBAAmBN,GACnC,cAAY,kBACZ,eAAcE,KACVC,EAEHF,SAAAA,GAAA,IAMjBL,EAAWW,YAAc"}
1
+ {"version":3,"file":"IconButton.js","sources":["../../../../src/components/icon-button/IconButton.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport type { IconButtonProps } from \"./types.js\";\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n (props, ref) => {\n const { className, children, density, ...rest } = props;\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx(\"jkl-icon-button\", className)}\n data-testid=\"jkl-icon-button\"\n data-density={density}\n {...rest}\n >\n {children}\n </button>\n );\n },\n);\n\nIconButton.displayName = \"IconButton\";\n"],"names":["IconButton","forwardRef","props","ref","className","children","density","rest","jsx","type","clsx","displayName"],"mappings":"yHAIO,MAAMA,EAAaC,GACtB,CAACC,EAAOC,KACE,MAAEC,UAAAA,EAAWC,SAAAA,EAAUC,QAAAA,KAAYC,GAASL,EAE9C,OAAAM,EAAC,SAAA,CACGL,IAAAA,EACAM,KAAK,SACLL,UAAWM,EAAK,kBAAmBN,GACnC,cAAY,kBACZ,eAAcE,KACVC,EAEHF,SAAAA,GACL,IAKZL,EAAWW,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.stories.js","sources":["../../../../../src/components/icon-button/stories/IconButton.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { PenIcon } from \"../../icon/icons/PenIcon.js\";\nimport { IconButton } from \"../IconButton.js\";\nimport \"../styles/_index.scss\";\n\nconst meta: Meta = {\n title: \"Komponenter/IconButton\",\n component: IconButton,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof IconButton>;\n\nexport const IconButtonStory: Story = {\n name: \"IconButton\",\n args: {\n children: <PenIcon />,\n },\n render: (props) => <IconButton {...props} />,\n};\n"],"names":["meta","title","component","IconButton","parameters","layout","tags","IconButtonStory","name","args","children","PenIcon","render","props","jsx"],"mappings":"0JAMA,MAAMA,EAAa,CACfC,MAAO,yBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAOEC,EAAyB,CAClCC,KAAM,aACNC,KAAM,CACFC,WAAWC,EAAQ,KAEvBC,OAASC,GAAWC,EAAAX,EAAA,IAAeU"}
1
+ {"version":3,"file":"IconButton.stories.js","sources":["../../../../../src/components/icon-button/stories/IconButton.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { PenIcon } from \"../../icon/icons/PenIcon.js\";\nimport { IconButton } from \"../IconButton.js\";\nimport \"../styles/_index.scss\";\n\nconst meta: Meta = {\n title: \"Komponenter/IconButton\",\n component: IconButton,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof IconButton>;\n\nexport const IconButtonStory: Story = {\n name: \"IconButton\",\n args: {\n children: <PenIcon />,\n },\n render: (props) => <IconButton {...props} />,\n};\n"],"names":["meta","title","component","IconButton","parameters","layout","tags","IconButtonStory","name","args","children","PenIcon","render","props","jsx"],"mappings":"0JAMA,MAAMA,EAAa,CACfC,MAAO,yBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAOEC,EAAyB,CAClCC,KAAM,aACNC,KAAM,CACFC,WAAWC,EAAQ,CAAA,IAEvBC,OAASC,GAAWC,EAAAX,EAAA,IAAeU"}
@@ -1 +1 @@
1
- {"version":3,"file":"Image.js","sources":["../../../../src/components/image/Image.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC } from \"react\";\nimport { useElementDimensions } from \"../../hooks/useElementDimensions/useElementDimensions.js\";\nimport type { ImageProps } from \"./types.js\";\nimport { useImageLoadingStatus } from \"./useImageLoadingStatus.js\";\n\nexport const Image: FC<ImageProps> = ({\n className,\n placeholder,\n alt,\n ...imageProperties\n}) => {\n const [imageRef, imageLoaded] = useImageLoadingStatus();\n const [containerRef, dimensions] =\n useElementDimensions<HTMLDivElement>(400);\n\n return (\n <div\n ref={containerRef}\n className={clsx(\"jkl-image\", className, {\n \"jkl-image--loading\": !imageLoaded,\n })}\n >\n {/* Placeholder er bevisst uten loading og decoding for å vises umiddelbart */}\n <img\n className=\"jkl-image__placeholder\"\n alt={alt}\n src={placeholder || imageProperties.src}\n />\n {/* biome-ignore lint/a11y/useAltText: Den har da vitterlig en alt-attributt? */}\n <img\n alt={alt}\n className=\"jkl-image__image\"\n data-testid=\"jkl-image__image\"\n ref={imageRef}\n sizes={`${dimensions.width}px`}\n loading=\"lazy\"\n decoding=\"async\"\n {...imageProperties}\n />\n </div>\n );\n};\n"],"names":["Image","className","placeholder","alt","imageProperties","imageRef","imageLoaded","useImageLoadingStatus","containerRef","dimensions","useElementDimensions","jsxs","ref","clsx","children","jsx","src","sizes","width","loading","decoding"],"mappings":"iRAMO,MAAMA,EAAwB,EACjCC,UAAAA,EACAC,YAAAA,EACAC,IAAAA,KACGC,MAEG,MAACC,EAAUC,GAAeC,KACzBC,EAAcC,GACjBC,EAAqC,KAGrC,OAAAC,EAAC,MAAA,CACGC,IAAKJ,EACLP,UAAWY,EAAK,YAAaZ,EAAW,CACpC,sBAAuBK,IAI3BQ,SAAA,CAAAC,EAAC,MAAA,CACGd,UAAU,yBACVE,IAAAA,EACAa,IAAKd,GAAeE,EAAgBY,MAGxCD,EAAC,MAAA,CACGZ,IAAAA,EACAF,UAAU,mBACV,cAAY,mBACZW,IAAKP,EACLY,MAAO,GAAGR,EAAWS,UACrBC,QAAQ,OACRC,SAAS,WACLhB,MACR"}
1
+ {"version":3,"file":"Image.js","sources":["../../../../src/components/image/Image.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC } from \"react\";\nimport { useElementDimensions } from \"../../hooks/useElementDimensions/useElementDimensions.js\";\nimport type { ImageProps } from \"./types.js\";\nimport { useImageLoadingStatus } from \"./useImageLoadingStatus.js\";\n\nexport const Image: FC<ImageProps> = ({\n className,\n placeholder,\n alt,\n ...imageProperties\n}) => {\n const [imageRef, imageLoaded] = useImageLoadingStatus();\n const [containerRef, dimensions] =\n useElementDimensions<HTMLDivElement>(400);\n\n return (\n <div\n ref={containerRef}\n className={clsx(\"jkl-image\", className, {\n \"jkl-image--loading\": !imageLoaded,\n })}\n >\n {/* Placeholder er bevisst uten loading og decoding for å vises umiddelbart */}\n <img\n className=\"jkl-image__placeholder\"\n alt={alt}\n src={placeholder || imageProperties.src}\n />\n {/* biome-ignore lint/a11y/useAltText: Den har da vitterlig en alt-attributt? */}\n <img\n alt={alt}\n className=\"jkl-image__image\"\n data-testid=\"jkl-image__image\"\n ref={imageRef}\n sizes={`${dimensions.width}px`}\n loading=\"lazy\"\n decoding=\"async\"\n {...imageProperties}\n />\n </div>\n );\n};\n"],"names":["Image","className","placeholder","alt","imageProperties","imageRef","imageLoaded","useImageLoadingStatus","containerRef","dimensions","useElementDimensions","jsxs","ref","clsx","children","jsx","src","sizes","width","loading","decoding"],"mappings":"iRAMO,MAAMA,EAAwB,EACjCC,UAAAA,EACAC,YAAAA,EACAC,IAAAA,KACGC,MAEG,MAACC,EAAUC,GAAeC,KACzBC,EAAcC,GACjBC,EAAqC,KAGrC,OAAAC,EAAC,MAAA,CACGC,IAAKJ,EACLP,UAAWY,EAAK,YAAaZ,EAAW,CACpC,sBAAuBK,IAI3BQ,SAAA,CAAAC,EAAC,MAAA,CACGd,UAAU,yBACVE,IAAAA,EACAa,IAAKd,GAAeE,EAAgBY,MAGxCD,EAAC,MAAA,CACGZ,IAAAA,EACAF,UAAU,mBACV,cAAY,mBACZW,IAAKP,EACLY,MAAO,GAAGR,EAAWS,UACrBC,QAAQ,OACRC,SAAS,WACLhB,MAEZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useImageLoadingStatus.js","sources":["../../../../src/components/image/useImageLoadingStatus.ts"],"sourcesContent":["import { type RefObject, useEffect, useRef, useState } from \"react\";\n\nconst doWhenImageLoaded = (image: HTMLImageElement, callback?: () => void) => {\n let timeout: number | undefined;\n\n function checkLoaded() {\n if (image.complete) {\n clearTimeout(timeout);\n callback?.();\n return;\n }\n timeout = window.setTimeout(checkLoaded, 50);\n }\n\n checkLoaded();\n};\n\nexport const useImageLoadingStatus = (\n callback?: () => void,\n): [RefObject<HTMLImageElement>, boolean] => {\n const imageRef = useRef<HTMLImageElement>(null);\n const [imageLoaded, setImageLoaded] = useState(false);\n\n useEffect(() => {\n imageRef.current &&\n doWhenImageLoaded(imageRef.current, () => {\n setImageLoaded(true);\n callback?.();\n });\n }, [callback]);\n\n return [imageRef, imageLoaded];\n};\n"],"names":["useImageLoadingStatus","callback","imageRef","useRef","imageLoaded","setImageLoaded","useState","useEffect","current","image","timeout","checkLoaded","complete","window","setTimeout","doWhenImageLoaded"],"mappings":"4DAEA,MAeaA,EACTC,IAEMC,MAAAA,EAAWC,EAAyB,OACnCC,EAAaC,GAAkBC,GAAS,GAE/C,OAAAC,GAAU,KACNL,EAASM,SAtBS,EAACC,EAAyBR,KAC5CS,IAAAA,GAEJ,SAASC,IACL,GAAIF,EAAMG,SAGN,OAFaF,aAAAA,QACF,MAAAT,GAAAA,KAGLS,EAAAG,OAAOC,WAAWH,EAAa,GAC7C,CAEYA,IAWJI,CAAkBb,EAASM,SAAS,KAChCH,GAAe,GACJ,MAAAJ,GAAAA,GAAAA,GACd,GACN,CAACA,IAEG,CAACC,EAAUE,EAAW"}
1
+ {"version":3,"file":"useImageLoadingStatus.js","sources":["../../../../src/components/image/useImageLoadingStatus.ts"],"sourcesContent":["import { type RefObject, useEffect, useRef, useState } from \"react\";\n\nconst doWhenImageLoaded = (image: HTMLImageElement, callback?: () => void) => {\n let timeout: number | undefined;\n\n function checkLoaded() {\n if (image.complete) {\n clearTimeout(timeout);\n callback?.();\n return;\n }\n timeout = window.setTimeout(checkLoaded, 50);\n }\n\n checkLoaded();\n};\n\nexport const useImageLoadingStatus = (\n callback?: () => void,\n): [RefObject<HTMLImageElement>, boolean] => {\n const imageRef = useRef<HTMLImageElement>(null);\n const [imageLoaded, setImageLoaded] = useState(false);\n\n useEffect(() => {\n imageRef.current &&\n doWhenImageLoaded(imageRef.current, () => {\n setImageLoaded(true);\n callback?.();\n });\n }, [callback]);\n\n return [imageRef, imageLoaded];\n};\n"],"names":["useImageLoadingStatus","callback","imageRef","useRef","imageLoaded","setImageLoaded","useState","useEffect","current","image","timeout","checkLoaded","complete","window","setTimeout","doWhenImageLoaded"],"mappings":"4DAEA,MAeaA,EACTC,IAEMC,MAAAA,EAAWC,EAAyB,OACnCC,EAAaC,GAAkBC,GAAS,GAE/C,OAAAC,GAAU,KACNL,EAASM,SAtBS,EAACC,EAAyBR,KAC5CS,IAAAA,GAEJ,SAASC,IACL,GAAIF,EAAMG,SAGN,OAFaF,aAAAA,QACF,MAAAT,GAAAA,KAGLS,EAAAG,OAAOC,WAAWH,EAAa,GAAE,CAGnCA,EAAA,EAWJI,CAAkBb,EAASM,SAAS,KAChCH,GAAe,GACJ,MAAAJ,GAAAA,GAAAA,GACd,GACN,CAACA,IAEG,CAACC,EAAUE,EAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldGroup.js","sources":["../../../../src/components/input-group/FieldGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { Label } from \"./Label.js\";\nimport { SupportLabel } from \"./SupportLabel.js\";\nimport type { FieldGroupProps } from \"./types.js\";\n\nexport const FieldGroup: FC<FieldGroupProps> = (props) => {\n const {\n id,\n legend,\n labelProps,\n supportLabelProps,\n tooltip,\n className,\n children,\n helpLabel,\n errorLabel,\n density,\n \"data-testautoid\": testAutoId,\n ...rest\n } = props;\n\n const uid = useId(id || \"jkl-field-group\", { generateSuffix: !id });\n const supportId = `${uid}_support-label`;\n\n const supportText = errorLabel || helpLabel;\n const supportTextType = errorLabel\n ? \"error\"\n : helpLabel\n ? \"help\"\n : undefined;\n\n const describedBy = supportText ? supportId : undefined;\n\n return (\n <fieldset\n id={uid}\n className={clsx(\"jkl-field-group\", className)}\n data-testautoid={testAutoId}\n {...rest}\n aria-describedby={describedBy}\n data-density={density}\n >\n <legend className=\"jkl-field-group__legend\">\n <Label {...labelProps} density={density}>\n {tooltip ? (\n <>\n <span style={{ whiteSpace: \"normal\" }}>\n {legend}\n </span>\n {\"\\u00A0\"}\n {tooltip}\n </>\n ) : (\n legend\n )}\n </Label>\n </legend>\n {children}\n {(helpLabel || errorLabel) && (\n <SupportLabel\n {...supportLabelProps}\n label={supportText}\n labelType={supportTextType}\n id={supportId}\n density={density}\n />\n )}\n </fieldset>\n );\n};\n"],"names":["FieldGroup","props","id","legend","labelProps","supportLabelProps","tooltip","className","children","helpLabel","errorLabel","density","testAutoId","rest","uid","useId","generateSuffix","supportId","supportText","supportTextType","describedBy","jsxs","clsx","jsx","Label","Fragment","style","whiteSpace","SupportLabel","label","labelType"],"mappings":"mQAOa,MAAAA,EAAmCC,IACtC,MACFC,GAAAA,EACAC,OAAAA,EACAC,WAAAA,EACAC,kBAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,SAAAA,EACAC,UAAAA,EACAC,WAAAA,EACAC,QAAAA,EACA,kBAAmBC,KAChBC,GACHZ,EAEEa,EAAMC,EAAMb,GAAM,kBAAmB,CAAEc,gBAAiBd,IACxDe,EAAY,GAAGH,kBAEfI,EAAcR,GAAcD,EAC5BU,EAAkBT,EAClB,QACAD,EACE,YACA,EAEFW,EAAcF,EAAcD,OAAY,EAG1C,OAAAI,EAAC,WAAA,CACGnB,GAAIY,EACJP,UAAWe,EAAK,kBAAmBf,GACnC,kBAAiBK,KACbC,EACJ,mBAAkBO,EAClB,eAAcT,EAEdH,SAAA,CAACe,EAAA,SAAA,CAAOhB,UAAU,0BACdC,SAAAe,EAACC,MAAUpB,EAAYO,QAAAA,EAClBH,SAAAF,EAEOe,EAAAI,EAAA,CAAAjB,SAAA,CAAAe,EAAC,QAAKG,MAAO,CAAEC,WAAY,UACtBnB,SACLL,IACC,IACAG,KAGLH,MAIXK,GACCC,GAAaC,IACXa,EAACK,EAAA,IACOvB,EACJwB,MAAOX,EACPY,UAAWX,EACXjB,GAAIe,EACJN,QAAAA,MACJ"}
1
+ {"version":3,"file":"FieldGroup.js","sources":["../../../../src/components/input-group/FieldGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { Label } from \"./Label.js\";\nimport { SupportLabel } from \"./SupportLabel.js\";\nimport type { FieldGroupProps } from \"./types.js\";\n\nexport const FieldGroup: FC<FieldGroupProps> = (props) => {\n const {\n id,\n legend,\n labelProps,\n supportLabelProps,\n tooltip,\n className,\n children,\n helpLabel,\n errorLabel,\n density,\n \"data-testautoid\": testAutoId,\n ...rest\n } = props;\n\n const uid = useId(id || \"jkl-field-group\", { generateSuffix: !id });\n const supportId = `${uid}_support-label`;\n\n const supportText = errorLabel || helpLabel;\n const supportTextType = errorLabel\n ? \"error\"\n : helpLabel\n ? \"help\"\n : undefined;\n\n const describedBy = supportText ? supportId : undefined;\n\n return (\n <fieldset\n id={uid}\n className={clsx(\"jkl-field-group\", className)}\n data-testautoid={testAutoId}\n {...rest}\n aria-describedby={describedBy}\n data-density={density}\n >\n <legend className=\"jkl-field-group__legend\">\n <Label {...labelProps} density={density}>\n {tooltip ? (\n <>\n <span style={{ whiteSpace: \"normal\" }}>\n {legend}\n </span>\n {\"\\u00A0\"}\n {tooltip}\n </>\n ) : (\n legend\n )}\n </Label>\n </legend>\n {children}\n {(helpLabel || errorLabel) && (\n <SupportLabel\n {...supportLabelProps}\n label={supportText}\n labelType={supportTextType}\n id={supportId}\n density={density}\n />\n )}\n </fieldset>\n );\n};\n"],"names":["FieldGroup","props","id","legend","labelProps","supportLabelProps","tooltip","className","children","helpLabel","errorLabel","density","testAutoId","rest","uid","useId","generateSuffix","supportId","supportText","supportTextType","describedBy","jsxs","clsx","jsx","Label","Fragment","style","whiteSpace","SupportLabel","label","labelType"],"mappings":"mQAOa,MAAAA,EAAmCC,IACtC,MACFC,GAAAA,EACAC,OAAAA,EACAC,WAAAA,EACAC,kBAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,SAAAA,EACAC,UAAAA,EACAC,WAAAA,EACAC,QAAAA,EACA,kBAAmBC,KAChBC,GACHZ,EAEEa,EAAMC,EAAMb,GAAM,kBAAmB,CAAEc,gBAAiBd,IACxDe,EAAY,GAAGH,kBAEfI,EAAcR,GAAcD,EAC5BU,EAAkBT,EAClB,QACAD,EACE,YACA,EAEFW,EAAcF,EAAcD,OAAY,EAG1C,OAAAI,EAAC,WAAA,CACGnB,GAAIY,EACJP,UAAWe,EAAK,kBAAmBf,GACnC,kBAAiBK,KACbC,EACJ,mBAAkBO,EAClB,eAAcT,EAEdH,SAAA,CAACe,EAAA,SAAA,CAAOhB,UAAU,0BACdC,SAAAe,EAACC,MAAUpB,EAAYO,QAAAA,EAClBH,SAAAF,EAEOe,EAAAI,EAAA,CAAAjB,SAAA,CAAAe,EAAC,QAAKG,MAAO,CAAEC,WAAY,UACtBnB,SACLL,IACC,IACAG,KAGLH,MAIXK,GACCC,GAAaC,IACXa,EAACK,EAAA,IACOvB,EACJwB,MAAOX,EACPY,UAAWX,EACXjB,GAAIe,EACJN,QAAAA,MAGZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputGroup.js","sources":["../../../../src/components/input-group/InputGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { Label } from \"./Label.js\";\nimport { SupportLabel } from \"./SupportLabel.js\";\nimport type { InputGroupProps, InputProps } from \"./types.js\";\n\nexport const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>(\n (props, ref) => {\n const {\n className,\n children,\n density,\n errorLabel,\n helpLabel,\n inline,\n label,\n labelProps,\n render,\n supportLabelProps,\n tooltip,\n id,\n ...rest\n } = props;\n\n const uid = useId(id || \"jkl-input\", { generateSuffix: !id });\n const supportId = useId(\"jkl-support-label\");\n\n const hasTooltip = !!tooltip;\n\n const supportText = errorLabel || helpLabel;\n const supportTextType = errorLabel\n ? \"error\"\n : helpLabel\n ? \"help\"\n : undefined;\n\n const describedBy = supportText ? supportId : undefined;\n\n const inputProps: InputProps = {\n \"aria-describedby\": describedBy,\n \"aria-invalid\": errorLabel ? true : undefined,\n id: uid,\n };\n\n const renderInput = render\n ? () => render(inputProps)\n : () => {\n const input = React.Children.toArray(props.children)[0];\n\n if (!React.isValidElement<InputProps>(input)) return;\n\n return React.cloneElement<InputProps>(input, {\n ...inputProps,\n ...input.props,\n });\n };\n\n return (\n <div\n ref={ref}\n className={clsx(className, \"jkl-input-group\", {\n \"jkl-input-group--inline\": inline,\n })}\n data-density={density}\n {...rest}\n >\n <Label\n standAlone\n htmlFor={uid}\n srOnly={inline}\n {...labelProps}\n style={{\n whiteSpace: hasTooltip ? \"nowrap\" : undefined,\n ...labelProps?.style,\n }}\n density={density}\n >\n {hasTooltip ? (\n <>\n <span style={{ whiteSpace: \"normal\" }}>\n {label}\n </span>\n {\"\\u00A0\"}\n {tooltip}\n </>\n ) : (\n label\n )}\n </Label>\n {renderInput()}\n <SupportLabel\n srOnly={inline}\n {...supportLabelProps}\n label={supportText}\n labelType={supportTextType}\n id={supportId}\n density={density}\n />\n </div>\n );\n },\n);\n\nInputGroup.displayName = \"InputGroup\";\n"],"names":["InputGroup","forwardRef","props","ref","className","children","density","errorLabel","helpLabel","inline","label","labelProps","render","supportLabelProps","tooltip","id","rest","uid","useId","generateSuffix","supportId","hasTooltip","supportText","supportTextType","inputProps","renderInput","input","React","Children","toArray","isValidElement","cloneElement","jsxs","clsx","jsx","Label","standAlone","htmlFor","srOnly","style","whiteSpace","Fragment","SupportLabel","labelType","displayName"],"mappings":"2RAOO,MAAMA,EAAaC,GACtB,CAACC,EAAOC,KACE,MACFC,UAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,UAAAA,EACAC,OAAAA,EACAC,MAAAA,EACAC,WAAAA,EACAC,OAAAA,EACAC,kBAAAA,EACAC,QAAAA,EACAC,GAAAA,KACGC,GACHd,EAEEe,EAAMC,EAAMH,GAAM,YAAa,CAAEI,gBAAiBJ,IAClDK,EAAYF,EAAM,qBAElBG,IAAeP,EAEfQ,EAAcf,GAAcC,EAC5Be,EAAkBhB,EAClB,QACAC,EACE,YACA,EAIFgB,EAAyB,CAC3B,mBAHgBF,EAAcF,OAAY,EAI1C,iBAAgBb,QAAoB,EACpCQ,GAAIE,GAGFQ,EAAcb,EACd,IAAMA,EAAOY,GACb,KACI,MAAME,EAAQC,EAAMC,SAASC,QAAQ3B,EAAMG,UAAU,GAEhDsB,GAAAA,EAAMG,eAA2BJ,GAE/BC,OAAAA,EAAMI,aAAyBL,EAAO,IACtCF,KACAE,EAAMxB,OACZ,EAIP,OAAA8B,EAAC,MAAA,CACG7B,IAAAA,EACAC,UAAW6B,EAAK7B,EAAW,kBAAmB,CAC1C,0BAA2BK,IAE/B,eAAcH,KACVU,EAEJX,SAAA,CAAA6B,EAACC,EAAA,CACGC,YAAU,EACVC,QAASpB,EACTqB,OAAQ7B,KACJE,EACJ4B,MAAO,CACHC,WAAYnB,EAAa,cAAW,KACjC,MAAAV,OAAA,EAAAA,EAAY4B,OAEnBjC,QAAAA,EAECD,WAEO2B,EAAAS,EAAA,CAAApC,SAAA,CAAA6B,EAAC,QAAKK,MAAO,CAAEC,WAAY,UACtBnC,SACLK,IACC,IACAI,KAGLJ,IAGPe,IACDS,EAACQ,EAAA,CACGJ,OAAQ7B,KACJI,EACJH,MAAOY,EACPqB,UAAWpB,EACXR,GAAIK,EACJd,QAAAA,MACJ,IAMhBN,EAAW4C,YAAc"}
1
+ {"version":3,"file":"InputGroup.js","sources":["../../../../src/components/input-group/InputGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { Label } from \"./Label.js\";\nimport { SupportLabel } from \"./SupportLabel.js\";\nimport type { InputGroupProps, InputProps } from \"./types.js\";\n\nexport const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>(\n (props, ref) => {\n const {\n className,\n children,\n density,\n errorLabel,\n helpLabel,\n inline,\n label,\n labelProps,\n render,\n supportLabelProps,\n tooltip,\n id,\n ...rest\n } = props;\n\n const uid = useId(id || \"jkl-input\", { generateSuffix: !id });\n const supportId = useId(\"jkl-support-label\");\n\n const hasTooltip = !!tooltip;\n\n const supportText = errorLabel || helpLabel;\n const supportTextType = errorLabel\n ? \"error\"\n : helpLabel\n ? \"help\"\n : undefined;\n\n const describedBy = supportText ? supportId : undefined;\n\n const inputProps: InputProps = {\n \"aria-describedby\": describedBy,\n \"aria-invalid\": errorLabel ? true : undefined,\n id: uid,\n };\n\n const renderInput = render\n ? () => render(inputProps)\n : () => {\n const input = React.Children.toArray(props.children)[0];\n\n if (!React.isValidElement<InputProps>(input)) return;\n\n return React.cloneElement<InputProps>(input, {\n ...inputProps,\n ...input.props,\n });\n };\n\n return (\n <div\n ref={ref}\n className={clsx(className, \"jkl-input-group\", {\n \"jkl-input-group--inline\": inline,\n })}\n data-density={density}\n {...rest}\n >\n <Label\n standAlone\n htmlFor={uid}\n srOnly={inline}\n {...labelProps}\n style={{\n whiteSpace: hasTooltip ? \"nowrap\" : undefined,\n ...labelProps?.style,\n }}\n density={density}\n >\n {hasTooltip ? (\n <>\n <span style={{ whiteSpace: \"normal\" }}>\n {label}\n </span>\n {\"\\u00A0\"}\n {tooltip}\n </>\n ) : (\n label\n )}\n </Label>\n {renderInput()}\n <SupportLabel\n srOnly={inline}\n {...supportLabelProps}\n label={supportText}\n labelType={supportTextType}\n id={supportId}\n density={density}\n />\n </div>\n );\n },\n);\n\nInputGroup.displayName = \"InputGroup\";\n"],"names":["InputGroup","forwardRef","props","ref","className","children","density","errorLabel","helpLabel","inline","label","labelProps","render","supportLabelProps","tooltip","id","rest","uid","useId","generateSuffix","supportId","hasTooltip","supportText","supportTextType","inputProps","renderInput","input","React","Children","toArray","isValidElement","cloneElement","jsxs","clsx","jsx","Label","standAlone","htmlFor","srOnly","style","whiteSpace","Fragment","SupportLabel","labelType","displayName"],"mappings":"2RAOO,MAAMA,EAAaC,GACtB,CAACC,EAAOC,KACE,MACFC,UAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,UAAAA,EACAC,OAAAA,EACAC,MAAAA,EACAC,WAAAA,EACAC,OAAAA,EACAC,kBAAAA,EACAC,QAAAA,EACAC,GAAAA,KACGC,GACHd,EAEEe,EAAMC,EAAMH,GAAM,YAAa,CAAEI,gBAAiBJ,IAClDK,EAAYF,EAAM,qBAElBG,IAAeP,EAEfQ,EAAcf,GAAcC,EAC5Be,EAAkBhB,EAClB,QACAC,EACE,YACA,EAIFgB,EAAyB,CAC3B,mBAHgBF,EAAcF,OAAY,EAI1C,iBAAgBb,QAAoB,EACpCQ,GAAIE,GAGFQ,EAAcb,EACd,IAAMA,EAAOY,GACb,KACI,MAAME,EAAQC,EAAMC,SAASC,QAAQ3B,EAAMG,UAAU,GAEhDsB,GAAAA,EAAMG,eAA2BJ,GAE/BC,OAAAA,EAAMI,aAAyBL,EAAO,IACtCF,KACAE,EAAMxB,OACZ,EAIP,OAAA8B,EAAC,MAAA,CACG7B,IAAAA,EACAC,UAAW6B,EAAK7B,EAAW,kBAAmB,CAC1C,0BAA2BK,IAE/B,eAAcH,KACVU,EAEJX,SAAA,CAAA6B,EAACC,EAAA,CACGC,YAAU,EACVC,QAASpB,EACTqB,OAAQ7B,KACJE,EACJ4B,MAAO,CACHC,WAAYnB,EAAa,cAAW,KACjC,MAAAV,OAAA,EAAAA,EAAY4B,OAEnBjC,QAAAA,EAECD,WAEO2B,EAAAS,EAAA,CAAApC,SAAA,CAAA6B,EAAC,QAAKK,MAAO,CAAEC,WAAY,UACtBnC,SACLK,IACC,IACAI,KAGLJ,IAGPe,IACDS,EAACQ,EAAA,CACGJ,OAAQ7B,KACJI,EACJH,MAAOY,EACPqB,UAAWpB,EACXR,GAAIK,EACJd,QAAAA,MAER,IAKZN,EAAW4C,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Label.js","sources":["../../../../src/components/input-group/Label.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC } from \"react\";\nimport type { LabelProps } from \"./types.js\";\n\nexport const Label: FC<LabelProps> = ({\n variant = \"small\",\n density,\n srOnly,\n children,\n standAlone,\n htmlFor,\n className = \"\",\n ...rest\n}) => {\n const labelClassNames = clsx(\"jkl-label\", className, {\n [`jkl-label--${variant}`]: variant,\n \"jkl-label--sr-only\": srOnly,\n });\n\n const C = standAlone ? \"label\" : \"span\";\n\n if (!standAlone && htmlFor) {\n htmlFor = undefined;\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n \"WARNING: The standard Label component renders as a <span> element, which does not take a htmlFor prop. If you want the Label to belong to a specific input, use the standAlone prop, which renders as a <label> element instead. In most cases the Label component should not be used directly, as it is part of all our input components.\",\n );\n }\n }\n\n return (\n <C\n {...rest}\n className={labelClassNames}\n htmlFor={htmlFor}\n data-density={density}\n >\n {children}\n </C>\n );\n};\n"],"names":["Label","variant","density","srOnly","children","standAlone","htmlFor","className","rest","labelClassNames","clsx","C","process","env","NODE_ENV","console","warn","jsx"],"mappings":"oGAIO,MAAMA,EAAwB,EACjCC,QAAAA,EAAU,QACVC,QAAAA,EACAC,OAAAA,EACAC,SAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,UAAAA,EAAY,MACTC,MAEGC,MAAAA,EAAkBC,EAAK,YAAaH,EAAW,CACjD,CAAC,cAAcN,KAAYA,EAC3B,qBAAsBE,IAGpBQ,EAAIN,EAAa,QAAU,OAE7B,OAACA,GAAcC,IACLA,OAAA,EACmB,eAAzBM,QAAQC,IAAIC,UACJC,QAAAC,KACJ,+UAMRC,EAACN,EAAA,IACOH,EACJD,UAAWE,EACXH,QAAAA,EACA,eAAcJ,EAEbE,SAAAA,GAAA"}
1
+ {"version":3,"file":"Label.js","sources":["../../../../src/components/input-group/Label.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC } from \"react\";\nimport type { LabelProps } from \"./types.js\";\n\nexport const Label: FC<LabelProps> = ({\n variant = \"small\",\n density,\n srOnly,\n children,\n standAlone,\n htmlFor,\n className = \"\",\n ...rest\n}) => {\n const labelClassNames = clsx(\"jkl-label\", className, {\n [`jkl-label--${variant}`]: variant,\n \"jkl-label--sr-only\": srOnly,\n });\n\n const C = standAlone ? \"label\" : \"span\";\n\n if (!standAlone && htmlFor) {\n htmlFor = undefined;\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n \"WARNING: The standard Label component renders as a <span> element, which does not take a htmlFor prop. If you want the Label to belong to a specific input, use the standAlone prop, which renders as a <label> element instead. In most cases the Label component should not be used directly, as it is part of all our input components.\",\n );\n }\n }\n\n return (\n <C\n {...rest}\n className={labelClassNames}\n htmlFor={htmlFor}\n data-density={density}\n >\n {children}\n </C>\n );\n};\n"],"names":["Label","variant","density","srOnly","children","standAlone","htmlFor","className","rest","labelClassNames","clsx","C","process","env","NODE_ENV","console","warn","jsx"],"mappings":"oGAIO,MAAMA,EAAwB,EACjCC,QAAAA,EAAU,QACVC,QAAAA,EACAC,OAAAA,EACAC,SAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,UAAAA,EAAY,MACTC,MAEGC,MAAAA,EAAkBC,EAAK,YAAaH,EAAW,CACjD,CAAC,cAAcN,KAAYA,EAC3B,qBAAsBE,IAGpBQ,EAAIN,EAAa,QAAU,OAE7B,OAACA,GAAcC,IACLA,OAAA,EACmB,eAAzBM,QAAQC,IAAIC,UACJC,QAAAC,KACJ,+UAMRC,EAACN,EAAA,IACOH,EACJD,UAAWE,EACXH,QAAAA,EACA,eAAcJ,EAEbE,SAAAA,GACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"SupportLabel.js","sources":["../../../../src/components/input-group/SupportLabel.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC } from \"react\";\nimport { ErrorIcon } from \"../icon/icons/ErrorIcon.js\";\nimport { SuccessIcon } from \"../icon/icons/SuccessIcon.js\";\nimport { WarningIcon } from \"../icon/icons/WarningIcon.js\";\nimport type { SupportLabelProps } from \"./types.js\";\n\nexport const SupportLabel: FC<SupportLabelProps> = ({\n id,\n helpLabel,\n errorLabel,\n label,\n labelType = \"help\",\n density,\n className,\n srOnly,\n ...rest\n}) => {\n const hasLabel = errorLabel || helpLabel || label;\n\n const isHelp = labelType === \"help\" || (helpLabel && !errorLabel);\n const isWarning = labelType === \"warning\" || errorLabel;\n const isError = labelType === \"error\";\n const isSuccess = labelType === \"success\";\n\n const componentClassName = hasLabel\n ? clsx(\"jkl-form-support-label\", className, {\n \"jkl-form-support-label--sr-only\": srOnly,\n \"jkl-form-support-label--help\": isHelp,\n \"jkl-form-support-label--error\": isError,\n \"jkl-form-support-label--warning\": isWarning,\n \"jkl-form-support-label--success\": isSuccess,\n })\n : \"jkl-dormant-form-support-label\";\n\n const restProps = hasLabel ? rest : {};\n\n const Icon = isError ? ErrorIcon : isSuccess ? SuccessIcon : WarningIcon;\n\n return (\n <span\n id={id}\n className={componentClassName}\n {...restProps}\n data-density={density}\n >\n <Icon variant=\"small\" className=\"jkl-form-support-label__icon\" />\n <span>{errorLabel || helpLabel || label}</span>\n </span>\n );\n};\n"],"names":["SupportLabel","id","helpLabel","errorLabel","label","labelType","density","className","srOnly","rest","hasLabel","isError","isSuccess","componentClassName","clsx","jsxs","children","jsx","ErrorIcon","SuccessIcon","WarningIcon","variant"],"mappings":"2RAOO,MAAMA,EAAsC,EAC/CC,GAAAA,EACAC,UAAAA,EACAC,WAAAA,EACAC,MAAAA,EACAC,UAAAA,EAAY,OACZC,QAAAA,EACAC,UAAAA,EACAC,OAAAA,KACGC,MAEGC,MAAAA,EAAWP,GAAcD,GAAaE,EAItCO,EAAwB,UAAdN,EACVO,EAA0B,YAAdP,EAEZQ,EAAqBH,EACrBI,EAAK,yBAA0BP,EAAW,CACtC,kCAAmCC,EACnC,+BARmB,SAAdH,GAAyBH,IAAcC,EAS5C,gCAAiCQ,EACjC,kCATsB,YAAdN,GAA2BF,EAUnC,kCAAmCS,IAEvC,iCAOF,OAAAG,EAAC,OAAA,CACGd,GAAAA,EACAM,UAAWM,KAPDH,EAAWD,EAAO,GAS5B,eAAcH,EAEdU,SAAA,CAAAC,EATKN,EAAUO,EAAYN,EAAYO,EAAcC,EAS/C,CAAAC,QAAQ,QAAQd,UAAU,iCAC/BU,EAAA,OAAA,CAAMD,SAAcb,GAAAD,GAAaE,MAAM"}
1
+ {"version":3,"file":"SupportLabel.js","sources":["../../../../src/components/input-group/SupportLabel.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC } from \"react\";\nimport { ErrorIcon } from \"../icon/icons/ErrorIcon.js\";\nimport { SuccessIcon } from \"../icon/icons/SuccessIcon.js\";\nimport { WarningIcon } from \"../icon/icons/WarningIcon.js\";\nimport type { SupportLabelProps } from \"./types.js\";\n\nexport const SupportLabel: FC<SupportLabelProps> = ({\n id,\n helpLabel,\n errorLabel,\n label,\n labelType = \"help\",\n density,\n className,\n srOnly,\n ...rest\n}) => {\n const hasLabel = errorLabel || helpLabel || label;\n\n const isHelp = labelType === \"help\" || (helpLabel && !errorLabel);\n const isWarning = labelType === \"warning\" || errorLabel;\n const isError = labelType === \"error\";\n const isSuccess = labelType === \"success\";\n\n const componentClassName = hasLabel\n ? clsx(\"jkl-form-support-label\", className, {\n \"jkl-form-support-label--sr-only\": srOnly,\n \"jkl-form-support-label--help\": isHelp,\n \"jkl-form-support-label--error\": isError,\n \"jkl-form-support-label--warning\": isWarning,\n \"jkl-form-support-label--success\": isSuccess,\n })\n : \"jkl-dormant-form-support-label\";\n\n const restProps = hasLabel ? rest : {};\n\n const Icon = isError ? ErrorIcon : isSuccess ? SuccessIcon : WarningIcon;\n\n return (\n <span\n id={id}\n className={componentClassName}\n {...restProps}\n data-density={density}\n >\n <Icon variant=\"small\" className=\"jkl-form-support-label__icon\" />\n <span>{errorLabel || helpLabel || label}</span>\n </span>\n );\n};\n"],"names":["SupportLabel","id","helpLabel","errorLabel","label","labelType","density","className","srOnly","rest","hasLabel","isError","isSuccess","componentClassName","clsx","jsxs","children","jsx","ErrorIcon","SuccessIcon","WarningIcon","variant"],"mappings":"2RAOO,MAAMA,EAAsC,EAC/CC,GAAAA,EACAC,UAAAA,EACAC,WAAAA,EACAC,MAAAA,EACAC,UAAAA,EAAY,OACZC,QAAAA,EACAC,UAAAA,EACAC,OAAAA,KACGC,MAEGC,MAAAA,EAAWP,GAAcD,GAAaE,EAItCO,EAAwB,UAAdN,EACVO,EAA0B,YAAdP,EAEZQ,EAAqBH,EACrBI,EAAK,yBAA0BP,EAAW,CACtC,kCAAmCC,EACnC,+BARmB,SAAdH,GAAyBH,IAAcC,EAS5C,gCAAiCQ,EACjC,kCATsB,YAAdN,GAA2BF,EAUnC,kCAAmCS,IAEvC,iCAOF,OAAAG,EAAC,OAAA,CACGd,GAAAA,EACAM,UAAWM,KAPDH,EAAWD,EAAO,CAAC,EAS7B,eAAcH,EAEdU,SAAA,CAAAC,EATKN,EAAUO,EAAYN,EAAYO,EAAcC,EAS/C,CAAAC,QAAQ,QAAQd,UAAU,iCAC/BU,EAAA,OAAA,CAAMD,SAAcb,GAAAD,GAAaE,MACtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputGroup.stories.js","sources":["../../../../../src/components/input-group/stories/InputGroup.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { BaseTextInput } from \"../../text-input/BaseTextInput.js\";\nimport { InputGroup } from \"../InputGroup.js\";\nimport \"../styles/_index.scss\";\nimport \"../../text-input/styles/_index.scss\";\n\nconst meta: Meta = {\n title: \"Komponenter/InputGroup\",\n component: InputGroup,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n argTypes: {\n label: {\n control: \"text\",\n },\n },\n} satisfies Meta<typeof InputGroup>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof InputGroup>;\n\nexport const InputGroupStory: Story = {\n name: \"InputGroup\",\n args: {\n label: \"Fødeselsnummer\",\n },\n render: (props) => (\n <InputGroup {...props}>\n <BaseTextInput />\n </InputGroup>\n ),\n};\n"],"names":["meta","title","component","InputGroup","parameters","layout","tags","argTypes","label","control","InputGroupStory","name","args","render","props","jsx","children","BaseTextInput"],"mappings":"oPAOA,MAAMA,EAAa,CACfC,MAAO,yBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,YACPC,SAAU,CACNC,MAAO,CACHC,QAAS,UASRC,EAAyB,CAClCC,KAAM,aACNC,KAAM,CACFJ,MAAO,kBAEXK,OAASC,GACLC,EAACZ,MAAeW,EACZE,SAACD,EAAAE,EAAA,CAAA"}
1
+ {"version":3,"file":"InputGroup.stories.js","sources":["../../../../../src/components/input-group/stories/InputGroup.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport React from \"react\";\nimport { BaseTextInput } from \"../../text-input/BaseTextInput.js\";\nimport { InputGroup } from \"../InputGroup.js\";\nimport \"../styles/_index.scss\";\nimport \"../../text-input/styles/_index.scss\";\n\nconst meta: Meta = {\n title: \"Komponenter/InputGroup\",\n component: InputGroup,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n argTypes: {\n label: {\n control: \"text\",\n },\n },\n} satisfies Meta<typeof InputGroup>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof InputGroup>;\n\nexport const InputGroupStory: Story = {\n name: \"InputGroup\",\n args: {\n label: \"Fødeselsnummer\",\n },\n render: (props) => (\n <InputGroup {...props}>\n <BaseTextInput />\n </InputGroup>\n ),\n};\n"],"names":["meta","title","component","InputGroup","parameters","layout","tags","argTypes","label","control","InputGroupStory","name","args","render","props","jsx","children","BaseTextInput"],"mappings":"oPAOA,MAAMA,EAAa,CACfC,MAAO,yBACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,YACPC,SAAU,CACNC,MAAO,CACHC,QAAS,UASRC,EAAyB,CAClCC,KAAM,aACNC,KAAM,CACFJ,MAAO,kBAEXK,OAASC,GACLC,EAACZ,MAAeW,EACZE,SAACD,EAAAE,EAAA,CAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Loader.js","sources":["../../../../src/components/loader/Loader.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport type { LoaderProps } from \"./types.js\";\nimport { useDelayedRender } from \"./useDelayedRender.js\";\n\nexport const Loader = ({\n delay = 0,\n variant = \"large\",\n textDescription,\n className,\n dataTestAutoId = \"jkl-loader\",\n inline = false,\n ...rest\n}: LoaderProps): JSX.Element | null => {\n const renderComponent = useDelayedRender(delay);\n\n if (delay && !renderComponent) {\n return null;\n }\n\n const componentClassName = clsx(\"jkl-loader\", className, {\n \"jkl-loader--medium\": variant === \"medium\",\n \"jkl-loader--small\": variant === \"small\",\n \"jkl-loader--inline\": inline,\n });\n\n return (\n <span\n aria-busy=\"true\"\n className={componentClassName}\n data-testautoid={dataTestAutoId}\n data-testid=\"jkl-loader\"\n title={textDescription}\n {...rest}\n >\n <span className=\"jkl-loader__dot jkl-loader__dot--left\" />\n <span className=\"jkl-loader__dot jkl-loader__dot--middle\" />\n <span className=\"jkl-loader__dot jkl-loader__dot--right\" />\n <span className=\"jkl-sr-only\">{textDescription}</span>\n </span>\n );\n};\n"],"names":["Loader","delay","variant","textDescription","className","dataTestAutoId","inline","rest","renderComponent","useDelayedRender","componentClassName","clsx","jsxs","title","children","jsx"],"mappings":"uKAKO,MAAMA,EAAS,EAClBC,MAAAA,EAAQ,EACRC,QAAAA,EAAU,QACVC,gBAAAA,EACAC,UAAAA,EACAC,eAAAA,EAAiB,aACjBC,OAAAA,GAAS,KACNC,MAEGC,MAAAA,EAAkBC,EAAiBR,GAErC,GAAAA,IAAUO,EACH,OAAA,KAGLE,MAAAA,EAAqBC,EAAK,aAAcP,EAAW,CACrD,qBAAkC,WAAZF,EACtB,oBAAiC,UAAZA,EACrB,qBAAsBI,IAItB,OAAAM,EAAC,OAAA,CACG,YAAU,OACVR,UAAWM,EACX,kBAAiBL,EACjB,cAAY,aACZQ,MAAOV,KACHI,EAEJO,SAAA,CAACC,EAAA,OAAA,CAAKX,UAAU,0CAChBW,EAAC,OAAK,CAAAX,UAAU,4CAChBW,EAAC,OAAK,CAAAX,UAAU,2CACfW,EAAA,OAAA,CAAKX,UAAU,cAAeU,SAAgBX,MAAA"}
1
+ {"version":3,"file":"Loader.js","sources":["../../../../src/components/loader/Loader.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport type { LoaderProps } from \"./types.js\";\nimport { useDelayedRender } from \"./useDelayedRender.js\";\n\nexport const Loader = ({\n delay = 0,\n variant = \"large\",\n textDescription,\n className,\n dataTestAutoId = \"jkl-loader\",\n inline = false,\n ...rest\n}: LoaderProps): JSX.Element | null => {\n const renderComponent = useDelayedRender(delay);\n\n if (delay && !renderComponent) {\n return null;\n }\n\n const componentClassName = clsx(\"jkl-loader\", className, {\n \"jkl-loader--medium\": variant === \"medium\",\n \"jkl-loader--small\": variant === \"small\",\n \"jkl-loader--inline\": inline,\n });\n\n return (\n <span\n aria-busy=\"true\"\n className={componentClassName}\n data-testautoid={dataTestAutoId}\n data-testid=\"jkl-loader\"\n title={textDescription}\n {...rest}\n >\n <span className=\"jkl-loader__dot jkl-loader__dot--left\" />\n <span className=\"jkl-loader__dot jkl-loader__dot--middle\" />\n <span className=\"jkl-loader__dot jkl-loader__dot--right\" />\n <span className=\"jkl-sr-only\">{textDescription}</span>\n </span>\n );\n};\n"],"names":["Loader","delay","variant","textDescription","className","dataTestAutoId","inline","rest","renderComponent","useDelayedRender","componentClassName","clsx","jsxs","title","children","jsx"],"mappings":"uKAKO,MAAMA,EAAS,EAClBC,MAAAA,EAAQ,EACRC,QAAAA,EAAU,QACVC,gBAAAA,EACAC,UAAAA,EACAC,eAAAA,EAAiB,aACjBC,OAAAA,GAAS,KACNC,MAEGC,MAAAA,EAAkBC,EAAiBR,GAErC,GAAAA,IAAUO,EACH,OAAA,KAGLE,MAAAA,EAAqBC,EAAK,aAAcP,EAAW,CACrD,qBAAkC,WAAZF,EACtB,oBAAiC,UAAZA,EACrB,qBAAsBI,IAItB,OAAAM,EAAC,OAAA,CACG,YAAU,OACVR,UAAWM,EACX,kBAAiBL,EACjB,cAAY,aACZQ,MAAOV,KACHI,EAEJO,SAAA,CAACC,EAAA,OAAA,CAAKX,UAAU,0CAChBW,EAAC,OAAK,CAAAX,UAAU,4CAChBW,EAAC,OAAK,CAAAX,UAAU,2CACfW,EAAA,OAAA,CAAKX,UAAU,cAAeU,SAAgBX,MACnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonAnimation.js","sources":["../../../../../src/components/loader/skeletons/SkeletonAnimation.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport type { SkeletonAnimationProps } from \"../types.js\";\nimport { useDelayedRender } from \"../useDelayedRender.js\";\n\nexport const SkeletonAnimation = ({\n className,\n delay = 0,\n density,\n textDescription = \"Vennligst vent\",\n ...rest\n}: SkeletonAnimationProps) => {\n const renderComponent = useDelayedRender(delay);\n\n if (delay && !renderComponent) {\n return null;\n }\n\n return (\n <div\n className={clsx(\"jkl-skeleton-animation\", className)}\n aria-busy=\"true\"\n aria-label={textDescription}\n {...rest}\n data-density={density}\n />\n );\n};\n"],"names":["SkeletonAnimation","className","delay","density","textDescription","rest","renderComponent","useDelayedRender","jsx","clsx"],"mappings":"iKAKO,MAAMA,EAAoB,EAC7BC,UAAAA,EACAC,MAAAA,EAAQ,EACRC,QAAAA,EACAC,gBAAAA,EAAkB,oBACfC,MAEGC,MAAAA,EAAkBC,EAAiBL,GAErC,OAAAA,IAAUI,EACH,KAIPE,EAAC,MAAA,CACGP,UAAWQ,EAAK,yBAA0BR,GAC1C,YAAU,OACV,aAAYG,KACRC,EACJ,eAAcF,GAAA"}
1
+ {"version":3,"file":"SkeletonAnimation.js","sources":["../../../../../src/components/loader/skeletons/SkeletonAnimation.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport type { SkeletonAnimationProps } from \"../types.js\";\nimport { useDelayedRender } from \"../useDelayedRender.js\";\n\nexport const SkeletonAnimation = ({\n className,\n delay = 0,\n density,\n textDescription = \"Vennligst vent\",\n ...rest\n}: SkeletonAnimationProps) => {\n const renderComponent = useDelayedRender(delay);\n\n if (delay && !renderComponent) {\n return null;\n }\n\n return (\n <div\n className={clsx(\"jkl-skeleton-animation\", className)}\n aria-busy=\"true\"\n aria-label={textDescription}\n {...rest}\n data-density={density}\n />\n );\n};\n"],"names":["SkeletonAnimation","className","delay","density","textDescription","rest","renderComponent","useDelayedRender","jsx","clsx"],"mappings":"iKAKO,MAAMA,EAAoB,EAC7BC,UAAAA,EACAC,MAAAA,EAAQ,EACRC,QAAAA,EACAC,gBAAAA,EAAkB,oBACfC,MAEGC,MAAAA,EAAkBC,EAAiBL,GAErC,OAAAA,IAAUI,EACH,KAIPE,EAAC,MAAA,CACGP,UAAWQ,EAAK,yBAA0BR,GAC1C,YAAU,OACV,aAAYG,KACRC,EACJ,eAAcF,GAClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonLabel.js","sources":["../../../../../src/components/loader/skeletons/SkeletonLabel.tsx"],"sourcesContent":["import React from \"react\";\nimport type { SkeletonLabelProps } from \"../types.js\";\nimport { SkeletonElement } from \"./SkeletonElement.js\";\n\nexport const SkeletonLabel = ({ density, ...rest }: SkeletonLabelProps) => {\n const compact = density === \"compact\";\n return (\n <SkeletonElement\n {...rest}\n width={compact ? 100 : 115}\n height={compact ? 12 : 16}\n />\n );\n};\n"],"names":["SkeletonLabel","density","rest","compact","jsx","SkeletonElement","width","height"],"mappings":"6GAIO,MAAMA,EAAgB,EAAGC,QAAAA,KAAYC,MACxC,MAAMC,EAAsB,YAAZF,EAEZ,OAAAG,EAACC,EAAA,IACOH,EACJI,MAAOH,EAAU,IAAM,IACvBI,OAAQJ,EAAU,GAAK,IAAA"}
1
+ {"version":3,"file":"SkeletonLabel.js","sources":["../../../../../src/components/loader/skeletons/SkeletonLabel.tsx"],"sourcesContent":["import React from \"react\";\nimport type { SkeletonLabelProps } from \"../types.js\";\nimport { SkeletonElement } from \"./SkeletonElement.js\";\n\nexport const SkeletonLabel = ({ density, ...rest }: SkeletonLabelProps) => {\n const compact = density === \"compact\";\n return (\n <SkeletonElement\n {...rest}\n width={compact ? 100 : 115}\n height={compact ? 12 : 16}\n />\n );\n};\n"],"names":["SkeletonLabel","density","rest","compact","jsx","SkeletonElement","width","height"],"mappings":"6GAIO,MAAMA,EAAgB,EAAGC,QAAAA,KAAYC,MACxC,MAAMC,EAAsB,YAAZF,EAEZ,OAAAG,EAACC,EAAA,IACOH,EACJI,MAAOH,EAAU,IAAM,IACvBI,OAAQJ,EAAU,GAAK,IAC3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonTextArea.js","sources":["../../../../../src/components/loader/skeletons/SkeletonTextArea.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport type { SkeletonTextAreaProps } from \"../types.js\";\nimport { SkeletonElement } from \"./SkeletonElement.js\";\nimport { SkeletonLabel } from \"./SkeletonLabel.js\";\n\nexport const SkeletonTextArea = ({\n className,\n density,\n labelProps,\n inputProps,\n ...rest\n}: SkeletonTextAreaProps) => {\n const compact = density === \"compact\";\n return (\n <div\n className={clsx(\"jkl-skeleton-input\", className)}\n {...rest}\n data-density={density}\n >\n <SkeletonLabel density={density} {...labelProps} />\n <SkeletonElement\n width={compact ? 301 : 316}\n height={compact ? 148 : 168}\n {...inputProps}\n />\n </div>\n );\n};\n"],"names":["SkeletonTextArea","className","density","labelProps","inputProps","rest","compact","jsxs","clsx","children","jsx","SkeletonLabel","SkeletonElement","width","height"],"mappings":"2NAMO,MAAMA,EAAmB,EAC5BC,UAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,WAAAA,KACGC,MAEH,MAAMC,EAAsB,YAAZJ,EAEZ,OAAAK,EAAC,MAAA,CACGN,UAAWO,EAAK,qBAAsBP,MAClCI,EACJ,eAAcH,EAEdO,SAAA,CAACC,EAAAC,EAAA,CAAcT,QAAAA,KAAsBC,IACrCO,EAACE,EAAA,CACGC,MAAOP,EAAU,IAAM,IACvBQ,OAAQR,EAAU,IAAM,OACpBF,MACR"}
1
+ {"version":3,"file":"SkeletonTextArea.js","sources":["../../../../../src/components/loader/skeletons/SkeletonTextArea.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport type { SkeletonTextAreaProps } from \"../types.js\";\nimport { SkeletonElement } from \"./SkeletonElement.js\";\nimport { SkeletonLabel } from \"./SkeletonLabel.js\";\n\nexport const SkeletonTextArea = ({\n className,\n density,\n labelProps,\n inputProps,\n ...rest\n}: SkeletonTextAreaProps) => {\n const compact = density === \"compact\";\n return (\n <div\n className={clsx(\"jkl-skeleton-input\", className)}\n {...rest}\n data-density={density}\n >\n <SkeletonLabel density={density} {...labelProps} />\n <SkeletonElement\n width={compact ? 301 : 316}\n height={compact ? 148 : 168}\n {...inputProps}\n />\n </div>\n );\n};\n"],"names":["SkeletonTextArea","className","density","labelProps","inputProps","rest","compact","jsxs","clsx","children","jsx","SkeletonLabel","SkeletonElement","width","height"],"mappings":"2NAMO,MAAMA,EAAmB,EAC5BC,UAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,WAAAA,KACGC,MAEH,MAAMC,EAAsB,YAAZJ,EAEZ,OAAAK,EAAC,MAAA,CACGN,UAAWO,EAAK,qBAAsBP,MAClCI,EACJ,eAAcH,EAEdO,SAAA,CAACC,EAAAC,EAAA,CAAcT,QAAAA,KAAsBC,IACrCO,EAACE,EAAA,CACGC,MAAOP,EAAU,IAAM,IACvBQ,OAAQR,EAAU,IAAM,OACpBF,MAEZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"Logo.js","sources":["../../../../src/components/logo/Logo.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport type { LogoProps } from \"./types.js\";\n\nexport const Logo = ({\n className,\n id,\n centered = true,\n isSymbol = false,\n animated = false,\n title = \"Fremtind\",\n ...rest\n}: LogoProps): JSX.Element => {\n const uniqueId = useId(id || \"jkl-logo\", { generateSuffix: !id });\n\n return (\n <svg\n {...rest}\n className={clsx(\"jkl-logo\", className, {\n \"jkl-logo--animated\": animated,\n \"jkl-logo--symbol-only\": isSymbol,\n \"jkl-logo--centered\": centered && isSymbol,\n })}\n aria-labelledby={uniqueId}\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n viewBox={\n !animated && isSymbol && !centered\n ? \"31 60 150 83\"\n : \"32 27 581 120\"\n }\n >\n <title id={uniqueId}>{title}</title>\n <g\n fill=\"none\"\n className=\"jkl-logo__F\"\n strokeWidth=\"8\"\n transform={`${isSymbol ? \"rotate(45) translate(90, -70)\" : \"\"}`}\n >\n <line\n x1=\"34.3\"\n x2=\"104.846844\"\n y1=\"32.563024\"\n y2=\"32.563024\"\n className=\"jkl-logo__F-line\"\n transform={\n isSymbol ? \"scale(1.45, 1) translate(-10, 6)\" : \"\"\n }\n />\n <line\n x1=\"35.12226\"\n x2=\"91.504088\"\n y1=\"80.105318\"\n y2=\"80.105318\"\n />\n <line\n x1=\"-10.820058\"\n x2=\"87.38984\"\n y1=\"84.219561\"\n y2=\"84.219561\"\n transform=\"rotate(90, 38.2849, 84.2196)\"\n />\n </g>\n {!(isSymbol && !animated) && (\n <path\n strokeWidth=\".57975\"\n d=\"M145.752 58.979c-10.21 0-20.201 6.854-23.793 16.133l-.157-15.179-.002-.224h-6.907v73.723h7.782V98.038c0-11.791 2.998-31.572 23.077-31.572 2.89 0 5.153.23 7.12.724l.283.07v-7.806l-.187-.035c-2.363-.44-4.831-.44-7.216-.44M170.88 91.357c.1-15.2 10.325-26.21 24.387-26.21 15.08 0 23.29 13.146 23.658 26.21H170.88zm24.387-33.554c-10.228 0-18.904 4.44-25.092 12.84-4.925 6.7-7.22 15.031-7.22 26.218 0 11.088 3.262 20.766 9.433 27.99 6.099 6.954 13.994 10.481 23.466 10.481 8.097 0 15.596-3.04 21.115-8.559 4.522-4.364 7.305-9.583 8.269-15.515l.044-.262h-8.075l-.038.182c-.77 3.876-2.52 7.146-5.503 10.292-3.968 4.11-9.583 6.375-15.812 6.375-7.332 0-13.239-2.586-17.557-7.684-4.619-5.48-7.37-13.341-7.563-21.602h55.97v-.227c0-.877.038-1.659.074-2.415.037-.758.076-1.543.076-2.426 0-9.44-2.952-18.247-8.313-24.797-5.831-7.126-13.88-10.891-23.274-10.891h0zM324.782 57.803c-10.833 0-19.176 5.465-23.558 15.41-2.377-7.168-8.339-15.41-23.183-15.41-9.606 0-17.811 5.162-22.111 13.86l-.813-11.743-.016-.211h-6.89v73.723h7.78V96.568c0-12.182 2.933-21.098 8.72-26.501 3.425-3.265 7.76-4.92 12.885-4.92 11.845 0 17.362 6.4 17.362 20.142v48.143h7.923V91.736c0-8.853 2.965-16.346 8.573-21.666 3.682-3.36 7.777-4.924 12.89-4.924 11.741 0 17.21 6.4 17.21 20.143v48.143h7.783V84.844c0-17.438-8.721-27.041-24.555-27.041M387.105 37.665l-7.782 1.873v20.17h-14.656v7.195h14.656v45.933c0 14.145 6.615 21.622 19.133 21.622 3.964 0 7.73-.804 11.72-1.657l.668-.142v-6.91l-.267.05c-3.606.666-7.465 1.315-11.54 1.315-8.364 0-11.932-4.357-11.932-14.571v-45.64h43.533v66.529h8.22V59.709h-51.753V37.665M499.748 57.803c-10.364 0-20.339 5.951-24.596 14.576l-.83-12.67h-6.893v73.723h7.781V96.568c0-6.054.932-14.697 5.367-21.487 4.18-6.398 10.483-9.64 18.734-9.64 12.565 0 18.674 6.492 18.674 19.848v48.143h7.781V84.844c0-17.185-9.482-27.041-26.018-27.041M434.672 28.547a5.9 5.9 0 0 0-5.894 5.893 5.9 5.9 0 0 0 5.894 5.895 5.9 5.9 0 0 0 5.895-5.895 5.9 5.9 0 0 0-5.895-5.893M592.914 121.901c-4.007 3.85-8.984 5.801-14.793 5.801-5.777 0-10.472-1.658-14.354-5.068-6.188-5.519-9.597-14.775-9.597-26.066 0-10.31 2.89-19.102 8.139-24.751 4.135-4.291 9.212-6.376 15.52-6.376 6.202 0 11.324 1.9 15.23 5.653 6.251 5.846 9.164 13.941 9.164 25.474 0 10.765-3.132 19.29-9.309 25.333zm9.157-94.721v44.113c-4.264-7.988-14.077-13.49-24.243-13.49-8.072 0-14.828 2.585-20.081 7.682-7.309 6.897-11.5 18.281-11.5 31.234 0 13.6 4.294 24.848 12.091 31.673 5.234 4.605 11.841 6.94 19.64 6.94 10.115 0 20.112-5.893 24.154-14.127l.835 12.227h6.886V27.18h-7.782 0z\"\n className=\"jkl-logo__remtind\"\n />\n )}\n </svg>\n );\n};\n"],"names":["Logo","className","id","centered","isSymbol","animated","title","rest","uniqueId","useId","generateSuffix","jsxs","clsx","role","xmlns","fill","stroke","viewBox","children","jsx","strokeWidth","transform","x1","x2","y1","y2","d"],"mappings":"iKAKO,MAAMA,EAAO,EAChBC,UAAAA,EACAC,GAAAA,EACAC,SAAAA,GAAW,EACXC,SAAAA,GAAW,EACXC,SAAAA,GAAW,EACXC,MAAAA,EAAQ,cACLC,MAEGC,MAAAA,EAAWC,EAAMP,GAAM,WAAY,CAAEQ,gBAAiBR,IAGxD,OAAAS,EAAC,MAAA,IACOJ,EACJN,UAAWW,EAAK,WAAYX,EAAW,CACnC,qBAAsBI,EACtB,wBAAyBD,EACzB,qBAAsBD,GAAYC,IAEtC,kBAAiBI,EACjBK,KAAK,MACLC,MAAM,6BACNC,KAAK,eACLC,OAAO,eACPC,QACKZ,IAAYD,GAAaD,EAEpB,gBADA,eAIVe,SAAA,CAACC,EAAA,QAAA,CAAMjB,GAAIM,EAAWU,SAAMZ,IAC5BK,EAAC,IAAA,CACGI,KAAK,OACLd,UAAU,cACVmB,YAAY,IACZC,UAAW,IAAGjB,EAAW,gCAAkC,IAE3Dc,SAAA,CAAAC,EAAC,OAAA,CACGG,GAAG,OACHC,GAAG,aACHC,GAAG,YACHC,GAAG,YACHxB,UAAU,mBACVoB,UACIjB,EAAW,mCAAqC,KAGxDe,EAAC,OAAA,CACGG,GAAG,WACHC,GAAG,YACHC,GAAG,YACHC,GAAG,cAEPN,EAAC,OAAA,CACGG,GAAG,aACHC,GAAG,WACHC,GAAG,YACHC,GAAG,YACHJ,UAAU,sCAGfjB,IAAaC,IACZc,EAAC,OAAA,CACGC,YAAY,SACZM,EAAE,w8EACFzB,UAAU,wBACd"}
1
+ {"version":3,"file":"Logo.js","sources":["../../../../src/components/logo/Logo.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport type { LogoProps } from \"./types.js\";\n\nexport const Logo = ({\n className,\n id,\n centered = true,\n isSymbol = false,\n animated = false,\n title = \"Fremtind\",\n ...rest\n}: LogoProps): JSX.Element => {\n const uniqueId = useId(id || \"jkl-logo\", { generateSuffix: !id });\n\n return (\n <svg\n {...rest}\n className={clsx(\"jkl-logo\", className, {\n \"jkl-logo--animated\": animated,\n \"jkl-logo--symbol-only\": isSymbol,\n \"jkl-logo--centered\": centered && isSymbol,\n })}\n aria-labelledby={uniqueId}\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n viewBox={\n !animated && isSymbol && !centered\n ? \"31 60 150 83\"\n : \"32 27 581 120\"\n }\n >\n <title id={uniqueId}>{title}</title>\n <g\n fill=\"none\"\n className=\"jkl-logo__F\"\n strokeWidth=\"8\"\n transform={`${isSymbol ? \"rotate(45) translate(90, -70)\" : \"\"}`}\n >\n <line\n x1=\"34.3\"\n x2=\"104.846844\"\n y1=\"32.563024\"\n y2=\"32.563024\"\n className=\"jkl-logo__F-line\"\n transform={\n isSymbol ? \"scale(1.45, 1) translate(-10, 6)\" : \"\"\n }\n />\n <line\n x1=\"35.12226\"\n x2=\"91.504088\"\n y1=\"80.105318\"\n y2=\"80.105318\"\n />\n <line\n x1=\"-10.820058\"\n x2=\"87.38984\"\n y1=\"84.219561\"\n y2=\"84.219561\"\n transform=\"rotate(90, 38.2849, 84.2196)\"\n />\n </g>\n {!(isSymbol && !animated) && (\n <path\n strokeWidth=\".57975\"\n d=\"M145.752 58.979c-10.21 0-20.201 6.854-23.793 16.133l-.157-15.179-.002-.224h-6.907v73.723h7.782V98.038c0-11.791 2.998-31.572 23.077-31.572 2.89 0 5.153.23 7.12.724l.283.07v-7.806l-.187-.035c-2.363-.44-4.831-.44-7.216-.44M170.88 91.357c.1-15.2 10.325-26.21 24.387-26.21 15.08 0 23.29 13.146 23.658 26.21H170.88zm24.387-33.554c-10.228 0-18.904 4.44-25.092 12.84-4.925 6.7-7.22 15.031-7.22 26.218 0 11.088 3.262 20.766 9.433 27.99 6.099 6.954 13.994 10.481 23.466 10.481 8.097 0 15.596-3.04 21.115-8.559 4.522-4.364 7.305-9.583 8.269-15.515l.044-.262h-8.075l-.038.182c-.77 3.876-2.52 7.146-5.503 10.292-3.968 4.11-9.583 6.375-15.812 6.375-7.332 0-13.239-2.586-17.557-7.684-4.619-5.48-7.37-13.341-7.563-21.602h55.97v-.227c0-.877.038-1.659.074-2.415.037-.758.076-1.543.076-2.426 0-9.44-2.952-18.247-8.313-24.797-5.831-7.126-13.88-10.891-23.274-10.891h0zM324.782 57.803c-10.833 0-19.176 5.465-23.558 15.41-2.377-7.168-8.339-15.41-23.183-15.41-9.606 0-17.811 5.162-22.111 13.86l-.813-11.743-.016-.211h-6.89v73.723h7.78V96.568c0-12.182 2.933-21.098 8.72-26.501 3.425-3.265 7.76-4.92 12.885-4.92 11.845 0 17.362 6.4 17.362 20.142v48.143h7.923V91.736c0-8.853 2.965-16.346 8.573-21.666 3.682-3.36 7.777-4.924 12.89-4.924 11.741 0 17.21 6.4 17.21 20.143v48.143h7.783V84.844c0-17.438-8.721-27.041-24.555-27.041M387.105 37.665l-7.782 1.873v20.17h-14.656v7.195h14.656v45.933c0 14.145 6.615 21.622 19.133 21.622 3.964 0 7.73-.804 11.72-1.657l.668-.142v-6.91l-.267.05c-3.606.666-7.465 1.315-11.54 1.315-8.364 0-11.932-4.357-11.932-14.571v-45.64h43.533v66.529h8.22V59.709h-51.753V37.665M499.748 57.803c-10.364 0-20.339 5.951-24.596 14.576l-.83-12.67h-6.893v73.723h7.781V96.568c0-6.054.932-14.697 5.367-21.487 4.18-6.398 10.483-9.64 18.734-9.64 12.565 0 18.674 6.492 18.674 19.848v48.143h7.781V84.844c0-17.185-9.482-27.041-26.018-27.041M434.672 28.547a5.9 5.9 0 0 0-5.894 5.893 5.9 5.9 0 0 0 5.894 5.895 5.9 5.9 0 0 0 5.895-5.895 5.9 5.9 0 0 0-5.895-5.893M592.914 121.901c-4.007 3.85-8.984 5.801-14.793 5.801-5.777 0-10.472-1.658-14.354-5.068-6.188-5.519-9.597-14.775-9.597-26.066 0-10.31 2.89-19.102 8.139-24.751 4.135-4.291 9.212-6.376 15.52-6.376 6.202 0 11.324 1.9 15.23 5.653 6.251 5.846 9.164 13.941 9.164 25.474 0 10.765-3.132 19.29-9.309 25.333zm9.157-94.721v44.113c-4.264-7.988-14.077-13.49-24.243-13.49-8.072 0-14.828 2.585-20.081 7.682-7.309 6.897-11.5 18.281-11.5 31.234 0 13.6 4.294 24.848 12.091 31.673 5.234 4.605 11.841 6.94 19.64 6.94 10.115 0 20.112-5.893 24.154-14.127l.835 12.227h6.886V27.18h-7.782 0z\"\n className=\"jkl-logo__remtind\"\n />\n )}\n </svg>\n );\n};\n"],"names":["Logo","className","id","centered","isSymbol","animated","title","rest","uniqueId","useId","generateSuffix","jsxs","clsx","role","xmlns","fill","stroke","viewBox","children","jsx","strokeWidth","transform","x1","x2","y1","y2","d"],"mappings":"iKAKO,MAAMA,EAAO,EAChBC,UAAAA,EACAC,GAAAA,EACAC,SAAAA,GAAW,EACXC,SAAAA,GAAW,EACXC,SAAAA,GAAW,EACXC,MAAAA,EAAQ,cACLC,MAEGC,MAAAA,EAAWC,EAAMP,GAAM,WAAY,CAAEQ,gBAAiBR,IAGxD,OAAAS,EAAC,MAAA,IACOJ,EACJN,UAAWW,EAAK,WAAYX,EAAW,CACnC,qBAAsBI,EACtB,wBAAyBD,EACzB,qBAAsBD,GAAYC,IAEtC,kBAAiBI,EACjBK,KAAK,MACLC,MAAM,6BACNC,KAAK,eACLC,OAAO,eACPC,QACKZ,IAAYD,GAAaD,EAEpB,gBADA,eAIVe,SAAA,CAACC,EAAA,QAAA,CAAMjB,GAAIM,EAAWU,SAAMZ,IAC5BK,EAAC,IAAA,CACGI,KAAK,OACLd,UAAU,cACVmB,YAAY,IACZC,UAAW,IAAGjB,EAAW,gCAAkC,IAE3Dc,SAAA,CAAAC,EAAC,OAAA,CACGG,GAAG,OACHC,GAAG,aACHC,GAAG,YACHC,GAAG,YACHxB,UAAU,mBACVoB,UACIjB,EAAW,mCAAqC,KAGxDe,EAAC,OAAA,CACGG,GAAG,WACHC,GAAG,YACHC,GAAG,YACHC,GAAG,cAEPN,EAAC,OAAA,CACGG,GAAG,aACHC,GAAG,WACHC,GAAG,YACHC,GAAG,YACHJ,UAAU,sCAGfjB,IAAaC,IACZc,EAAC,OAAA,CACGC,YAAY,SACZM,EAAE,w8EACFzB,UAAU,wBAGtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogoStamp.js","sources":["../../../../src/components/logo/LogoStamp.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { useRef } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport type { LogoStampProps } from \"./types.js\";\nimport { useTextSpinner } from \"./useTextSpinner.js\";\n\nexport const LogoStamp = ({\n children,\n className,\n id,\n animated = false,\n title,\n ...rest\n}: LogoStampProps): JSX.Element => {\n const uniqueId = useId(id || \"jkl-logo-stamp\", { generateSuffix: !id });\n const stampRef = useRef<SVGSVGElement>(null);\n const { hasAnimated, visible } = useTextSpinner(stampRef);\n\n return (\n <svg\n {...rest}\n ref={stampRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-labelledby={uniqueId}\n className={clsx(\"jkl-logo-stamp\", className, {\n \"jkl-logo-stamp--animated\": animated,\n })}\n data-rotate={animated && (visible || hasAnimated)}\n role=\"img\"\n >\n <title id={uniqueId}>\n {title || \"Forsikring levert av Fremtind\"}\n </title>\n <g className=\"jkl-logo-stamp__logo\">\n <path\n fill=\"currentColor\"\n d=\"M256 177.2L146.4 286.8l8.5 8.4 51.4-51.4 51.4 51.4 8.2-8.1-51.5-51.5 41.9-41.8L357.5 295l8.1-8.2z\"\n />\n </g>\n <g className=\"jkl-logo-stamp__text\">{children}</g>\n </svg>\n );\n};\n"],"names":["LogoStamp","children","className","id","animated","title","rest","uniqueId","useId","generateSuffix","stampRef","useRef","hasAnimated","visible","useTextSpinner","jsxs","ref","xmlns","viewBox","clsx","role","jsx","fill","d"],"mappings":"uOAMO,MAAMA,EAAY,EACrBC,SAAAA,EACAC,UAAAA,EACAC,GAAAA,EACAC,SAAAA,GAAW,EACXC,MAAAA,KACGC,MAEGC,MAAAA,EAAWC,EAAML,GAAM,iBAAkB,CAAEM,gBAAiBN,IAC5DO,EAAWC,EAAsB,OAC/BC,YAAAA,EAAaC,QAAAA,GAAYC,EAAeJ,GAG5C,OAAAK,EAAC,MAAA,IACOT,EACJU,IAAKN,EACLO,MAAM,6BACNC,QAAQ,cACR,kBAAiBX,EACjBL,UAAWiB,EAAK,iBAAkBjB,EAAW,CACzC,2BAA4BE,IAEhC,cAAaA,IAAaS,GAAWD,GACrCQ,KAAK,MAELnB,SAAA,CAAAoB,EAAC,QAAM,CAAAlB,GAAII,EACNN,SAAAI,GAAS,kCAEdgB,EAAC,IAAE,CAAAnB,UAAU,uBACTD,SAAAoB,EAAC,OAAA,CACGC,KAAK,eACLC,EAAE,wGAGTF,EAAA,IAAA,CAAEnB,UAAU,uBAAwBD,SAAAA,MAAS"}
1
+ {"version":3,"file":"LogoStamp.js","sources":["../../../../src/components/logo/LogoStamp.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { useRef } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport type { LogoStampProps } from \"./types.js\";\nimport { useTextSpinner } from \"./useTextSpinner.js\";\n\nexport const LogoStamp = ({\n children,\n className,\n id,\n animated = false,\n title,\n ...rest\n}: LogoStampProps): JSX.Element => {\n const uniqueId = useId(id || \"jkl-logo-stamp\", { generateSuffix: !id });\n const stampRef = useRef<SVGSVGElement>(null);\n const { hasAnimated, visible } = useTextSpinner(stampRef);\n\n return (\n <svg\n {...rest}\n ref={stampRef}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-labelledby={uniqueId}\n className={clsx(\"jkl-logo-stamp\", className, {\n \"jkl-logo-stamp--animated\": animated,\n })}\n data-rotate={animated && (visible || hasAnimated)}\n role=\"img\"\n >\n <title id={uniqueId}>\n {title || \"Forsikring levert av Fremtind\"}\n </title>\n <g className=\"jkl-logo-stamp__logo\">\n <path\n fill=\"currentColor\"\n d=\"M256 177.2L146.4 286.8l8.5 8.4 51.4-51.4 51.4 51.4 8.2-8.1-51.5-51.5 41.9-41.8L357.5 295l8.1-8.2z\"\n />\n </g>\n <g className=\"jkl-logo-stamp__text\">{children}</g>\n </svg>\n );\n};\n"],"names":["LogoStamp","children","className","id","animated","title","rest","uniqueId","useId","generateSuffix","stampRef","useRef","hasAnimated","visible","useTextSpinner","jsxs","ref","xmlns","viewBox","clsx","role","jsx","fill","d"],"mappings":"uOAMO,MAAMA,EAAY,EACrBC,SAAAA,EACAC,UAAAA,EACAC,GAAAA,EACAC,SAAAA,GAAW,EACXC,MAAAA,KACGC,MAEGC,MAAAA,EAAWC,EAAML,GAAM,iBAAkB,CAAEM,gBAAiBN,IAC5DO,EAAWC,EAAsB,OAC/BC,YAAAA,EAAaC,QAAAA,GAAYC,EAAeJ,GAG5C,OAAAK,EAAC,MAAA,IACOT,EACJU,IAAKN,EACLO,MAAM,6BACNC,QAAQ,cACR,kBAAiBX,EACjBL,UAAWiB,EAAK,iBAAkBjB,EAAW,CACzC,2BAA4BE,IAEhC,cAAaA,IAAaS,GAAWD,GACrCQ,KAAK,MAELnB,SAAA,CAAAoB,EAAC,QAAM,CAAAlB,GAAII,EACNN,SAAAI,GAAS,kCAEdgB,EAAC,IAAE,CAAAnB,UAAU,uBACTD,SAAAoB,EAAC,OAAA,CACGC,KAAK,eACLC,EAAE,wGAGTF,EAAA,IAAA,CAAEnB,UAAU,uBAAwBD,SAAAA,MACzC"}
@@ -1,2 +1,2 @@
1
- import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useFloatingTree as t,useFloatingNodeId as n,useFloatingParentNodeId as o,useFloating as a,offset as r,flip as i,shift as l,autoUpdate as u,useInteractions as d,useHover as c,safePolygon as m,useClick as p,useDismiss as f,useRole as g,useListNavigation as h,useMergeRefs as v,useTransitionStyles as y,FloatingNode as k,FloatingPortal as x,FloatingFocusManager as F,FloatingTree as P}from"@floating-ui/react";import{c as w}from"../../../clsx-BeLtu-UY.js";import j,{forwardRef as E,useRef as I,useState as M,useEffect as R}from"react";import{r as C}from"../../../index-C4ABwKfA.js";import{useBrowserPreferences as N}from"../../hooks/useBrowserPreferences/useBrowserPreferences.js";import"../../hooks/useScreen/useScreen.js";import{useId as b}from"../../hooks/useId/useId.js";import{getThemeAndDensity as O}from"../../utilities/getThemeAndDensity.js";import{useMenuWideEvents as T}from"./useMenuWideEvents.js";function D(e,s=0){switch(e){case"top":default:return`0 ${s}px`;case"left":return`${s}px 0`;case"bottom":return`0 ${-s}px`;case"right":return-s+"px 0"}}const S=E(((P,E)=>{const{children:S,className:A,initialPlacement:B,openOnHover:H=!1,keepOpenOnClickOutside:$=!1,triggerElement:K,isOpen:V,onToggle:W,...q}=P,L=b("jkl-menu"),{prefersReducedMotion:U}=N(),z=t(),G=n(),J=o(),Q=null!=J,X=I([]),[Y,Z]=M(null),{allowHover:_,isOpen:ee,setIsOpen:se}=T(z,G,J),te=void 0!==V?V:ee;R((()=>null==W?void 0:W(te)),[te,W]);const{refs:ne,placement:oe,context:ae,floatingStyles:re}=a({nodeId:G,open:te,onOpenChange:se,placement:B||(Q?"right-start":"bottom-start"),middleware:[r(2),i({fallbackAxisSideDirection:"end",crossAxis:!1}),l({padding:8})],whileElementsMounted:u}),{getReferenceProps:ie,getFloatingProps:le,getItemProps:ue}=d([c(ae,{enabled:H&&_,delay:{open:75},handleClose:m({requireIntent:!0,blockPointerEvents:!0})}),p(ae,{event:"mousedown"}),f(ae,{outsidePress:!$}),g(ae,{role:"menu"}),h(ae,{listRef:X,activeIndex:Y,nested:Q,onNavigate:Z})]),de=v([ne.setReference,E]),{theme:ce,density:me}=O(ne.reference.current),{isMounted:pe,styles:fe}=y(ae,{duration:{open:U?0:250,close:U?0:150},initial:({side:e})=>({opacity:0,translate:D(e,5)}),open:({side:e})=>({opacity:1,translate:D(e,0)}),close:({side:e})=>({opacity:0,translate:D(e,5)})});return e(k,{id:G,children:[j.isValidElement(K)&&("button"===K.type||C.isForwardRef(K))?j.cloneElement(K,{...ie({...q,ref:de,role:Q?"menuitem":void 0,"aria-controls":L,onClick(e){e.stopPropagation()}})}):K,pe&&s(x,{children:s(F,{context:ae,modal:!1,initialFocus:Q?-1:0,returnFocus:!Q,children:s("div",{className:w("jkl jkl-menu",A),"data-theme":ce,"data-layout-density":me,role:"menu","data-placement":oe,"aria-live":"assertive","aria-hidden":!te,ref:ne.setFloating,...le({id:L,style:{...re,...fe}}),children:j.Children.map(S,((e,s)=>j.isValidElement(e)&&C.isForwardRef(e)?j.cloneElement(e,ue({...e.props,tabIndex:Y===s?0:-1,role:"menuitem",ref(e){X.current[s]=e},onClick(s){var t,n;null==(n=(t=e.props).onClick)||n.call(t,s),!s.defaultPrevented&&(null==z||z.events.emit("click"))},onKeyDown(s){var t,n;null==(n=(t=e.props).onKeyDown)||n.call(t,s),!s.defaultPrevented&&(null==z||z.events.emit("keydown"),"menuitemcheckbox"===s.currentTarget.role&&"Enter"===s.key&&se(!1))},onMouseEnter(){_&&te&&Z(s)}})):e))})})})]})}));S.displayName="MenuComponent";const A=E(((e,t)=>null===o()?s(P,{children:s(S,{ref:t,...e})}):s(S,{ref:t,...e})));A.displayName="Menu";export{A as Menu};
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useFloatingTree as t,useFloatingNodeId as n,useFloatingParentNodeId as o,useFloating as a,autoUpdate as r,offset as i,flip as l,shift as u,useInteractions as d,useHover as c,useClick as m,useDismiss as p,useRole as f,useListNavigation as g,safePolygon as h,useMergeRefs as v,useTransitionStyles as y,FloatingNode as k,FloatingPortal as x,FloatingFocusManager as F,FloatingTree as P}from"@floating-ui/react";import{c as w}from"../../../clsx-BeLtu-UY.js";import j,{forwardRef as E,useRef as I,useState as M,useEffect as R}from"react";import{r as C}from"../../../index-Yq3eaNUM.js";import{useBrowserPreferences as N}from"../../hooks/useBrowserPreferences/useBrowserPreferences.js";import"../../hooks/useScreen/useScreen.js";import{useId as b}from"../../hooks/useId/useId.js";import{getThemeAndDensity as O}from"../../utilities/getThemeAndDensity.js";import{useMenuWideEvents as T}from"./useMenuWideEvents.js";function D(e,s=0){switch(e){case"top":default:return`0 ${s}px`;case"left":return`${s}px 0`;case"bottom":return`0 ${-s}px`;case"right":return-s+"px 0"}}const S=E(((P,E)=>{const{children:S,className:A,initialPlacement:B,openOnHover:H=!1,keepOpenOnClickOutside:$=!1,triggerElement:K,isOpen:V,onToggle:W,...q}=P,L=b("jkl-menu"),{prefersReducedMotion:U}=N(),z=t(),G=n(),J=o(),Q=null!=J,X=I([]),[Y,Z]=M(null),{allowHover:_,isOpen:ee,setIsOpen:se}=T(z,G,J),te=void 0!==V?V:ee;R((()=>null==W?void 0:W(te)),[te,W]);const{refs:ne,placement:oe,context:ae,floatingStyles:re}=a({nodeId:G,open:te,onOpenChange:se,placement:B||(Q?"right-start":"bottom-start"),middleware:[i(2),l({fallbackAxisSideDirection:"end",crossAxis:!1}),u({padding:8})],whileElementsMounted:r}),{getReferenceProps:ie,getFloatingProps:le,getItemProps:ue}=d([c(ae,{enabled:H&&_,delay:{open:75},handleClose:h({requireIntent:!0,blockPointerEvents:!0})}),m(ae,{event:"mousedown"}),p(ae,{outsidePress:!$}),f(ae,{role:"menu"}),g(ae,{listRef:X,activeIndex:Y,nested:Q,onNavigate:Z})]),de=v([ne.setReference,E]),{theme:ce,density:me}=O(ne.reference.current),{isMounted:pe,styles:fe}=y(ae,{duration:{open:U?0:250,close:U?0:150},initial:({side:e})=>({opacity:0,translate:D(e,5)}),open:({side:e})=>({opacity:1,translate:D(e,0)}),close:({side:e})=>({opacity:0,translate:D(e,5)})});return e(k,{id:G,children:[j.isValidElement(K)&&("button"===K.type||C.isForwardRef(K))?j.cloneElement(K,{...ie({...q,ref:de,role:Q?"menuitem":void 0,"aria-controls":L,onClick(e){e.stopPropagation()}})}):K,pe&&s(x,{children:s(F,{context:ae,modal:!1,initialFocus:Q?-1:0,returnFocus:!Q,children:s("div",{className:w("jkl jkl-menu",A),"data-theme":ce,"data-layout-density":me,role:"menu","data-placement":oe,"aria-live":"assertive","aria-hidden":!te,ref:ne.setFloating,...le({id:L,style:{...re,...fe}}),children:j.Children.map(S,((e,s)=>j.isValidElement(e)&&C.isForwardRef(e)?j.cloneElement(e,ue({...e.props,tabIndex:Y===s?0:-1,role:"menuitem",ref(e){X.current[s]=e},onClick(s){var t,n;null==(n=(t=e.props).onClick)||n.call(t,s),!s.defaultPrevented&&(null==z||z.events.emit("click"))},onKeyDown(s){var t,n;null==(n=(t=e.props).onKeyDown)||n.call(t,s),!s.defaultPrevented&&(null==z||z.events.emit("keydown"),"menuitemcheckbox"===s.currentTarget.role&&"Enter"===s.key&&se(!1))},onMouseEnter(){_&&te&&Z(s)}})):e))})})})]})}));S.displayName="MenuComponent";const A=E(((e,t)=>null===o()?s(P,{children:s(S,{ref:t,...e})}):s(S,{ref:t,...e})));A.displayName="Menu";export{A as Menu};
2
2
  //# sourceMappingURL=Menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sources":["../../../../src/components/menu/Menu.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n type Side,\n autoUpdate,\n flip,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useFloatingTree,\n useHover,\n useInteractions,\n useListNavigation,\n useMergeRefs,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport React, { forwardRef, useEffect, useRef, useState } from \"react\";\nimport { isForwardRef } from \"react-is\";\nimport { useBrowserPreferences } from \"../../hooks/index.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { getThemeAndDensity } from \"../../utilities/getThemeAndDensity.js\";\nimport type { MenuProps } from \"./types.js\";\nimport { useMenuWideEvents } from \"./useMenuWideEvents.js\";\n\nfunction getTranslation(side: Side, value = 0) {\n switch (side) {\n case \"top\":\n return `0 ${value}px`;\n case \"left\":\n return `${value}px 0`;\n case \"bottom\":\n return `0 ${-value}px`;\n case \"right\":\n return `${-value}px 0`;\n\n default:\n return `0 ${value}px`;\n }\n}\n\nconst MenuComponent = forwardRef<HTMLButtonElement, MenuProps>(\n (props, forwardedRef) => {\n const {\n children,\n className,\n initialPlacement,\n openOnHover = false,\n keepOpenOnClickOutside = false,\n triggerElement,\n isOpen: isOpenOverride,\n onToggle,\n ...triggerProps\n } = props;\n\n const MenuId = useId(\"jkl-menu\");\n\n const { prefersReducedMotion } = useBrowserPreferences();\n\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const parentId = useFloatingParentNodeId();\n const isNested = parentId != null;\n\n const listItemsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const {\n allowHover,\n isOpen: isOpenDefault,\n setIsOpen,\n } = useMenuWideEvents(tree, nodeId, parentId);\n\n const isOpen =\n isOpenOverride !== undefined ? isOpenOverride : isOpenDefault;\n\n useEffect(() => onToggle?.(isOpen), [isOpen, onToggle]);\n\n const { refs, placement, context, floatingStyles } = useFloating({\n nodeId,\n open: isOpen,\n onOpenChange: setIsOpen,\n placement:\n initialPlacement || (isNested ? \"right-start\" : \"bottom-start\"),\n middleware: [\n offset(2),\n flip({\n fallbackAxisSideDirection: \"end\", // Allow bottom placement in narrow viewports (https://floating-ui.com/docs/flip#fallbackaxissidedirection)\n crossAxis: false, // See https://floating-ui.com/docs/flip#combining-with-shift\n }),\n shift({ padding: 8 }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } =\n useInteractions([\n useHover(context, {\n enabled: openOnHover && allowHover,\n delay: { open: 75 },\n handleClose: safePolygon({\n requireIntent: true,\n blockPointerEvents: true,\n }),\n }),\n useClick(context, {\n event: \"mousedown\",\n }),\n useDismiss(context, { outsidePress: !keepOpenOnClickOutside }),\n useRole(context, { role: \"menu\" }),\n useListNavigation(context, {\n listRef: listItemsRef,\n activeIndex,\n nested: isNested,\n onNavigate: setActiveIndex,\n }),\n ]);\n\n const referenceRef = useMergeRefs([refs.setReference, forwardedRef]);\n\n // Siden menyen rendres på rot må vi hente lokal dark/light-verdi fra triggeren\n // Vi må gjøre dette for å ta hensyn til at tema kan styres lokalt for deler av UIet\n const { theme, density } = getThemeAndDensity(\n refs.reference.current as HTMLElement,\n );\n\n const { isMounted, styles: animationStyles } = useTransitionStyles(\n context,\n {\n duration: {\n open: prefersReducedMotion ? 0 : 250,\n close: prefersReducedMotion ? 0 : 150,\n },\n initial: ({ side }) => ({\n opacity: 0,\n translate: getTranslation(side, 5),\n }),\n open: ({ side }) => ({\n opacity: 1,\n translate: getTranslation(side, 0),\n }),\n close: ({ side }) => ({\n opacity: 0,\n translate: getTranslation(side, 5),\n }),\n },\n );\n\n return (\n <FloatingNode id={nodeId}>\n {React.isValidElement(triggerElement) &&\n (triggerElement.type === \"button\" ||\n isForwardRef(triggerElement))\n ? // Dersom trigger-elementet er en knapp, sett riktige egenskaper på det\n React.cloneElement(triggerElement, {\n ...getReferenceProps({\n ...triggerProps,\n ref: referenceRef,\n role: isNested ? \"menuitem\" : undefined,\n \"aria-controls\": MenuId,\n onClick(event) {\n event.stopPropagation();\n },\n }),\n })\n : // Ellers, rendre elementet as-is, uten interaktivitet. Krev en ferdig brukbar button for å åpne menyen.\n triggerElement}\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n // Prevent outside content interference.\n modal={false}\n // Only initially focus the root floating menu.\n initialFocus={isNested ? -1 : 0}\n // Only return focus to the root menu's reference when menus close.\n returnFocus={!isNested}\n >\n <div\n className={clsx(\"jkl jkl-menu\", className)}\n data-theme={theme}\n data-layout-density={density}\n role=\"menu\"\n data-placement={placement}\n aria-live=\"assertive\"\n aria-hidden={!isOpen}\n ref={refs.setFloating}\n {...getFloatingProps({\n id: MenuId,\n style: {\n ...floatingStyles,\n ...animationStyles,\n },\n })}\n >\n {React.Children.map(\n children,\n (child, index) => {\n if (\n React.isValidElement(child) &&\n isForwardRef(child)\n ) {\n return React.cloneElement(\n child,\n getItemProps({\n ...child.props,\n tabIndex:\n activeIndex === index\n ? 0\n : -1,\n role: \"menuitem\",\n ref(\n node: HTMLButtonElement,\n ) {\n listItemsRef.current[\n index\n ] = node;\n },\n onClick(event) {\n child.props.onClick?.(\n event as React.MouseEvent<HTMLButtonElement>,\n );\n if (\n event.defaultPrevented\n ) {\n return;\n }\n tree?.events.emit(\n \"click\",\n );\n },\n onKeyDown(event) {\n child.props.onKeyDown?.(\n event,\n );\n if (\n event.defaultPrevented\n ) {\n return;\n }\n tree?.events.emit(\n \"keydown\",\n );\n if (\n event.currentTarget\n .role ===\n \"menuitemcheckbox\" &&\n event.key ===\n \"Enter\"\n ) {\n // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/menuitemcheckbox_role#keyboard_interactions\n setIsOpen(false);\n }\n },\n onMouseEnter() {\n if (\n allowHover &&\n isOpen\n ) {\n setActiveIndex(\n index,\n );\n }\n },\n }),\n );\n }\n\n return child;\n },\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </FloatingNode>\n );\n },\n);\nMenuComponent.displayName = \"MenuComponent\";\n\nexport const Menu = forwardRef<HTMLButtonElement, MenuProps>((props, ref) => {\n const parentId = useFloatingParentNodeId();\n\n if (parentId === null) {\n return (\n <FloatingTree>\n <MenuComponent ref={ref} {...props} />\n </FloatingTree>\n );\n }\n\n return <MenuComponent ref={ref} {...props} />;\n});\nMenu.displayName = \"Menu\";\n"],"names":["getTranslation","side","value","MenuComponent","forwardRef","props","forwardedRef","children","className","initialPlacement","openOnHover","keepOpenOnClickOutside","triggerElement","isOpen","isOpenOverride","onToggle","triggerProps","MenuId","useId","prefersReducedMotion","useBrowserPreferences","tree","useFloatingTree","nodeId","useFloatingNodeId","parentId","useFloatingParentNodeId","isNested","listItemsRef","useRef","activeIndex","setActiveIndex","useState","allowHover","isOpenDefault","setIsOpen","useMenuWideEvents","useEffect","refs","placement","context","floatingStyles","useFloating","open","onOpenChange","middleware","offset","flip","fallbackAxisSideDirection","crossAxis","shift","padding","whileElementsMounted","autoUpdate","getReferenceProps","getFloatingProps","getItemProps","useInteractions","useHover","enabled","delay","handleClose","safePolygon","requireIntent","blockPointerEvents","useClick","event","useDismiss","outsidePress","useRole","role","useListNavigation","listRef","nested","onNavigate","referenceRef","useMergeRefs","setReference","theme","density","getThemeAndDensity","reference","current","isMounted","styles","animationStyles","useTransitionStyles","duration","close","initial","opacity","translate","jsxs","FloatingNode","id","React","isValidElement","type","isForwardRef","cloneElement","ref","onClick","stopPropagation","FloatingPortal","jsx","FloatingFocusManager","modal","initialFocus","returnFocus","clsx","setFloating","style","Children","map","child","index","tabIndex","node","_b","_a","call","defaultPrevented","events","emit","onKeyDown","currentTarget","key","onMouseEnter","displayName","Menu","FloatingTree"],"mappings":"m8BAiCA,SAASA,EAAeC,EAAYC,EAAQ,GACxC,OAAQD,GACJ,IAAK,MASL,QACI,MAAO,KAAKC,MARhB,IAAK,OACD,MAAO,GAAGA,QACd,IAAK,SACM,MAAA,MAAMA,MACjB,IAAK,QACM,OAAIA,EAAJ,OAKnB,CAEA,MAAMC,EAAgBC,GAClB,CAACC,EAAOC,KACE,MACFC,SAAAA,EACAC,UAAAA,EACAC,iBAAAA,EACAC,YAAAA,GAAc,EACdC,uBAAAA,GAAyB,EACzBC,eAAAA,EACAC,OAAQC,EACRC,SAAAA,KACGC,GACHX,EAEEY,EAASC,EAAM,aAEbC,qBAAAA,GAAyBC,IAE3BC,EAAOC,IACPC,EAASC,IACTC,EAAWC,IACXC,EAAuB,MAAZF,EAEXG,EAAeC,EAAwC,KACtDC,EAAaC,GAAkBC,EAAwB,OAE1DC,WAAAA,EACApB,OAAQqB,GACRC,UAAAA,IACAC,EAAkBf,EAAME,EAAQE,GAE9BZ,QACiB,IAAnBC,EAA+BA,EAAiBoB,GAEpDG,GAAU,IAAM,MAAAtB,OAAA,EAAAA,EAAWF,KAAS,CAACA,GAAQE,IAEvC,MAAEuB,KAAAA,GAAMC,UAAAA,GAAWC,QAAAA,GAASC,eAAAA,IAAmBC,EAAY,CAC7DnB,OAAAA,EACAoB,KAAM9B,GACN+B,aAAcT,GACdI,UACI9B,IAAqBkB,EAAW,cAAgB,gBACpDkB,WAAY,CACRC,EAAO,GACPC,EAAK,CACDC,0BAA2B,MAC3BC,WAAW,IAEfC,EAAM,CAAEC,QAAS,KAErBC,qBAAsBC,KAGlBC,kBAAAA,GAAmBC,iBAAAA,GAAkBC,aAAAA,IACzCC,EAAgB,CACZC,EAASlB,GAAS,CACdmB,QAASjD,GAAeuB,EACxB2B,MAAO,CAAEjB,KAAM,IACfkB,YAAaC,EAAY,CACrBC,eAAe,EACfC,oBAAoB,MAG5BC,EAASzB,GAAS,CACd0B,MAAO,cAEXC,EAAW3B,GAAS,CAAE4B,cAAezD,IACrC0D,EAAQ7B,GAAS,CAAE8B,KAAM,SACzBC,EAAkB/B,GAAS,CACvBgC,QAAS5C,EACTE,YAAAA,EACA2C,OAAQ9C,EACR+C,WAAY3C,MAIlB4C,GAAeC,EAAa,CAACtC,GAAKuC,aAAcvE,KAI9CwE,MAAAA,GAAOC,QAAAA,IAAYC,EACvB1C,GAAK2C,UAAUC,UAGXC,UAAAA,GAAWC,OAAQC,IAAoBC,EAC3C9C,GACA,CACI+C,SAAU,CACN5C,KAAMxB,EAAuB,EAAI,IACjCqE,MAAOrE,EAAuB,EAAI,KAEtCsE,QAAS,EAAGxF,KAAAA,MAAY,CACpByF,QAAS,EACTC,UAAW3F,EAAeC,EAAM,KAEpC0C,KAAM,EAAG1C,KAAAA,MAAY,CACjByF,QAAS,EACTC,UAAW3F,EAAeC,EAAM,KAEpCuF,MAAO,EAAGvF,KAAAA,MAAY,CAClByF,QAAS,EACTC,UAAW3F,EAAeC,EAAM,OAMxC,OAAA2F,EAACC,EAAa,CAAAC,GAAIvE,EACbhB,SAAA,CAAAwF,EAAMC,eAAepF,KACG,WAAxBA,EAAeqF,MACZC,eAAatF,IAEXmF,EAAMI,aAAavF,EAAgB,IAC5B0C,GAAkB,IACdtC,EACHoF,IAAKzB,GACLL,KAAM3C,EAAW,gBAAa,EAC9B,gBAAiBV,EACjBoF,QAAQnC,GACJA,EAAMoC,iBACV,MAEP,EAGNnB,MACIoB,EACG,CAAAhG,SAAAiG,EAACC,EAAA,CACGjE,QAAAA,GAEAkE,OAAO,EAEPC,aAAchF,GAAgB,EAAA,EAE9BiF,aAAcjF,EAEdpB,SAAAiG,EAAC,MAAA,CACGhG,UAAWqG,EAAK,eAAgBrG,GAChC,aAAYsE,GACZ,sBAAqBC,GACrBT,KAAK,OACL,iBAAgB/B,GAChB,YAAU,YACV,eAAc1B,GACduF,IAAK9D,GAAKwE,eACNvD,GAAiB,CACjBuC,GAAI7E,EACJ8F,MAAO,IACAtE,MACA4C,MAIV9E,WAAMyG,SAASC,IACZ1G,GACA,CAAC2G,EAAOC,IAEApB,EAAMC,eAAekB,IACrBhB,EAAAA,aAAagB,GAENnB,EAAMI,aACTe,EACA1D,GAAa,IACN0D,EAAM7G,MACT+G,SACItF,IAAgBqF,EACV,GACA,EACV7C,KAAM,WACN8B,IACIiB,GAEazF,EAAAsD,QACTiC,GACAE,CACR,EACAhB,QAAQnC,WACJ,OAAAoD,GAAAC,EAAAL,EAAM7G,OAAMgG,UAAZiB,EAAAE,KAAAD,EACIrD,IAGAA,EAAMuD,mBAIV,MAAApG,GAAAA,EAAMqG,OAAOC,KACT,SAER,EACAC,UAAU1D,WACN,OAAAoD,GAAAC,EAAAL,EAAM7G,OAAMuH,YAAZN,EAAAE,KAAAD,EACIrD,IAGAA,EAAMuD,mBAIV,MAAApG,GAAAA,EAAMqG,OAAOC,KACT,WAKI,qBAFJzD,EAAM2D,cACDvD,MAGD,UADJJ,EAAM4D,KAIN3F,IAAU,GAElB,EACA4F,eAEQ9F,GACApB,IAEAkB,EACIoF,EAGZ,KAKLD,YAOnC,IAIZ/G,EAAc6H,YAAc,gBAErB,MAAMC,EAAO7H,GAAyC,CAACC,EAAO+F,IAGhD,OAFA1E,MAIRwG,EACG,CAAA3H,SAAAiG,EAACrG,GAAciG,IAAAA,KAAc/F,MAKjCmG,EAAArG,EAAA,CAAciG,IAAAA,KAAc/F,MAExC4H,EAAKD,YAAc"}
1
+ {"version":3,"file":"Menu.js","sources":["../../../../src/components/menu/Menu.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n type Side,\n autoUpdate,\n flip,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useFloatingTree,\n useHover,\n useInteractions,\n useListNavigation,\n useMergeRefs,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport React, { forwardRef, useEffect, useRef, useState } from \"react\";\nimport { isForwardRef } from \"react-is\";\nimport { useBrowserPreferences } from \"../../hooks/index.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { getThemeAndDensity } from \"../../utilities/getThemeAndDensity.js\";\nimport type { MenuProps } from \"./types.js\";\nimport { useMenuWideEvents } from \"./useMenuWideEvents.js\";\n\nfunction getTranslation(side: Side, value = 0) {\n switch (side) {\n case \"top\":\n return `0 ${value}px`;\n case \"left\":\n return `${value}px 0`;\n case \"bottom\":\n return `0 ${-value}px`;\n case \"right\":\n return `${-value}px 0`;\n\n default:\n return `0 ${value}px`;\n }\n}\n\nconst MenuComponent = forwardRef<HTMLButtonElement, MenuProps>(\n (props, forwardedRef) => {\n const {\n children,\n className,\n initialPlacement,\n openOnHover = false,\n keepOpenOnClickOutside = false,\n triggerElement,\n isOpen: isOpenOverride,\n onToggle,\n ...triggerProps\n } = props;\n\n const MenuId = useId(\"jkl-menu\");\n\n const { prefersReducedMotion } = useBrowserPreferences();\n\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const parentId = useFloatingParentNodeId();\n const isNested = parentId != null;\n\n const listItemsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const {\n allowHover,\n isOpen: isOpenDefault,\n setIsOpen,\n } = useMenuWideEvents(tree, nodeId, parentId);\n\n const isOpen =\n isOpenOverride !== undefined ? isOpenOverride : isOpenDefault;\n\n useEffect(() => onToggle?.(isOpen), [isOpen, onToggle]);\n\n const { refs, placement, context, floatingStyles } = useFloating({\n nodeId,\n open: isOpen,\n onOpenChange: setIsOpen,\n placement:\n initialPlacement || (isNested ? \"right-start\" : \"bottom-start\"),\n middleware: [\n offset(2),\n flip({\n fallbackAxisSideDirection: \"end\", // Allow bottom placement in narrow viewports (https://floating-ui.com/docs/flip#fallbackaxissidedirection)\n crossAxis: false, // See https://floating-ui.com/docs/flip#combining-with-shift\n }),\n shift({ padding: 8 }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } =\n useInteractions([\n useHover(context, {\n enabled: openOnHover && allowHover,\n delay: { open: 75 },\n handleClose: safePolygon({\n requireIntent: true,\n blockPointerEvents: true,\n }),\n }),\n useClick(context, {\n event: \"mousedown\",\n }),\n useDismiss(context, { outsidePress: !keepOpenOnClickOutside }),\n useRole(context, { role: \"menu\" }),\n useListNavigation(context, {\n listRef: listItemsRef,\n activeIndex,\n nested: isNested,\n onNavigate: setActiveIndex,\n }),\n ]);\n\n const referenceRef = useMergeRefs([refs.setReference, forwardedRef]);\n\n // Siden menyen rendres på rot må vi hente lokal dark/light-verdi fra triggeren\n // Vi må gjøre dette for å ta hensyn til at tema kan styres lokalt for deler av UIet\n const { theme, density } = getThemeAndDensity(\n refs.reference.current as HTMLElement,\n );\n\n const { isMounted, styles: animationStyles } = useTransitionStyles(\n context,\n {\n duration: {\n open: prefersReducedMotion ? 0 : 250,\n close: prefersReducedMotion ? 0 : 150,\n },\n initial: ({ side }) => ({\n opacity: 0,\n translate: getTranslation(side, 5),\n }),\n open: ({ side }) => ({\n opacity: 1,\n translate: getTranslation(side, 0),\n }),\n close: ({ side }) => ({\n opacity: 0,\n translate: getTranslation(side, 5),\n }),\n },\n );\n\n return (\n <FloatingNode id={nodeId}>\n {React.isValidElement(triggerElement) &&\n (triggerElement.type === \"button\" ||\n isForwardRef(triggerElement))\n ? // Dersom trigger-elementet er en knapp, sett riktige egenskaper på det\n React.cloneElement(triggerElement, {\n ...getReferenceProps({\n ...triggerProps,\n ref: referenceRef,\n role: isNested ? \"menuitem\" : undefined,\n \"aria-controls\": MenuId,\n onClick(event) {\n event.stopPropagation();\n },\n }),\n })\n : // Ellers, rendre elementet as-is, uten interaktivitet. Krev en ferdig brukbar button for å åpne menyen.\n triggerElement}\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n // Prevent outside content interference.\n modal={false}\n // Only initially focus the root floating menu.\n initialFocus={isNested ? -1 : 0}\n // Only return focus to the root menu's reference when menus close.\n returnFocus={!isNested}\n >\n <div\n className={clsx(\"jkl jkl-menu\", className)}\n data-theme={theme}\n data-layout-density={density}\n role=\"menu\"\n data-placement={placement}\n aria-live=\"assertive\"\n aria-hidden={!isOpen}\n ref={refs.setFloating}\n {...getFloatingProps({\n id: MenuId,\n style: {\n ...floatingStyles,\n ...animationStyles,\n },\n })}\n >\n {React.Children.map(\n children,\n (child, index) => {\n if (\n React.isValidElement(child) &&\n isForwardRef(child)\n ) {\n return React.cloneElement(\n child,\n getItemProps({\n ...child.props,\n tabIndex:\n activeIndex === index\n ? 0\n : -1,\n role: \"menuitem\",\n ref(\n node: HTMLButtonElement,\n ) {\n listItemsRef.current[\n index\n ] = node;\n },\n onClick(event) {\n child.props.onClick?.(\n event as React.MouseEvent<HTMLButtonElement>,\n );\n if (\n event.defaultPrevented\n ) {\n return;\n }\n tree?.events.emit(\n \"click\",\n );\n },\n onKeyDown(event) {\n child.props.onKeyDown?.(\n event,\n );\n if (\n event.defaultPrevented\n ) {\n return;\n }\n tree?.events.emit(\n \"keydown\",\n );\n if (\n event.currentTarget\n .role ===\n \"menuitemcheckbox\" &&\n event.key ===\n \"Enter\"\n ) {\n // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/menuitemcheckbox_role#keyboard_interactions\n setIsOpen(false);\n }\n },\n onMouseEnter() {\n if (\n allowHover &&\n isOpen\n ) {\n setActiveIndex(\n index,\n );\n }\n },\n }),\n );\n }\n\n return child;\n },\n )}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </FloatingNode>\n );\n },\n);\nMenuComponent.displayName = \"MenuComponent\";\n\nexport const Menu = forwardRef<HTMLButtonElement, MenuProps>((props, ref) => {\n const parentId = useFloatingParentNodeId();\n\n if (parentId === null) {\n return (\n <FloatingTree>\n <MenuComponent ref={ref} {...props} />\n </FloatingTree>\n );\n }\n\n return <MenuComponent ref={ref} {...props} />;\n});\nMenu.displayName = \"Menu\";\n"],"names":["getTranslation","side","value","MenuComponent","forwardRef","props","forwardedRef","children","className","initialPlacement","openOnHover","keepOpenOnClickOutside","triggerElement","isOpen","isOpenOverride","onToggle","triggerProps","MenuId","useId","prefersReducedMotion","useBrowserPreferences","tree","useFloatingTree","nodeId","useFloatingNodeId","parentId","useFloatingParentNodeId","isNested","listItemsRef","useRef","activeIndex","setActiveIndex","useState","allowHover","isOpenDefault","setIsOpen","useMenuWideEvents","useEffect","refs","placement","context","floatingStyles","useFloating","open","onOpenChange","middleware","offset","flip","fallbackAxisSideDirection","crossAxis","shift","padding","whileElementsMounted","autoUpdate","getReferenceProps","getFloatingProps","getItemProps","useInteractions","useHover","enabled","delay","handleClose","safePolygon","requireIntent","blockPointerEvents","useClick","event","useDismiss","outsidePress","useRole","role","useListNavigation","listRef","nested","onNavigate","referenceRef","useMergeRefs","setReference","theme","density","getThemeAndDensity","reference","current","isMounted","styles","animationStyles","useTransitionStyles","duration","close","initial","opacity","translate","jsxs","FloatingNode","id","React","isValidElement","type","isForwardRef","cloneElement","ref","onClick","stopPropagation","FloatingPortal","jsx","FloatingFocusManager","modal","initialFocus","returnFocus","clsx","setFloating","style","Children","map","child","index","tabIndex","node","_b","_a","call","defaultPrevented","events","emit","onKeyDown","currentTarget","key","onMouseEnter","displayName","Menu","FloatingTree"],"mappings":"m8BAiCA,SAASA,EAAeC,EAAYC,EAAQ,GACxC,OAAQD,GACJ,IAAK,MASL,QACI,MAAO,KAAKC,MARhB,IAAK,OACD,MAAO,GAAGA,QACd,IAAK,SACM,MAAA,MAAMA,MACjB,IAAK,QACM,OAAIA,EAAJ,OAKnB,CAEA,MAAMC,EAAgBC,GAClB,CAACC,EAAOC,KACE,MACFC,SAAAA,EACAC,UAAAA,EACAC,iBAAAA,EACAC,YAAAA,GAAc,EACdC,uBAAAA,GAAyB,EACzBC,eAAAA,EACAC,OAAQC,EACRC,SAAAA,KACGC,GACHX,EAEEY,EAASC,EAAM,aAEbC,qBAAAA,GAAyBC,IAE3BC,EAAOC,IACPC,EAASC,IACTC,EAAWC,IACXC,EAAuB,MAAZF,EAEXG,EAAeC,EAAwC,KACtDC,EAAaC,GAAkBC,EAAwB,OAE1DC,WAAAA,EACApB,OAAQqB,GACRC,UAAAA,IACAC,EAAkBf,EAAME,EAAQE,GAE9BZ,QACiB,IAAnBC,EAA+BA,EAAiBoB,GAEpDG,GAAU,IAAM,MAAAtB,OAAA,EAAAA,EAAWF,KAAS,CAACA,GAAQE,IAEvC,MAAEuB,KAAAA,GAAMC,UAAAA,GAAWC,QAAAA,GAASC,eAAAA,IAAmBC,EAAY,CAC7DnB,OAAAA,EACAoB,KAAM9B,GACN+B,aAAcT,GACdI,UACI9B,IAAqBkB,EAAW,cAAgB,gBACpDkB,WAAY,CACRC,EAAO,GACPC,EAAK,CACDC,0BAA2B,MAC3BC,WAAW,IAEfC,EAAM,CAAEC,QAAS,KAErBC,qBAAsBC,KAGlBC,kBAAAA,GAAmBC,iBAAAA,GAAkBC,aAAAA,IACzCC,EAAgB,CACZC,EAASlB,GAAS,CACdmB,QAASjD,GAAeuB,EACxB2B,MAAO,CAAEjB,KAAM,IACfkB,YAAaC,EAAY,CACrBC,eAAe,EACfC,oBAAoB,MAG5BC,EAASzB,GAAS,CACd0B,MAAO,cAEXC,EAAW3B,GAAS,CAAE4B,cAAezD,IACrC0D,EAAQ7B,GAAS,CAAE8B,KAAM,SACzBC,EAAkB/B,GAAS,CACvBgC,QAAS5C,EACTE,YAAAA,EACA2C,OAAQ9C,EACR+C,WAAY3C,MAIlB4C,GAAeC,EAAa,CAACtC,GAAKuC,aAAcvE,KAI9CwE,MAAAA,GAAOC,QAAAA,IAAYC,EACvB1C,GAAK2C,UAAUC,UAGXC,UAAAA,GAAWC,OAAQC,IAAoBC,EAC3C9C,GACA,CACI+C,SAAU,CACN5C,KAAMxB,EAAuB,EAAI,IACjCqE,MAAOrE,EAAuB,EAAI,KAEtCsE,QAAS,EAAGxF,KAAAA,MAAY,CACpByF,QAAS,EACTC,UAAW3F,EAAeC,EAAM,KAEpC0C,KAAM,EAAG1C,KAAAA,MAAY,CACjByF,QAAS,EACTC,UAAW3F,EAAeC,EAAM,KAEpCuF,MAAO,EAAGvF,KAAAA,MAAY,CAClByF,QAAS,EACTC,UAAW3F,EAAeC,EAAM,OAMxC,OAAA2F,EAACC,EAAa,CAAAC,GAAIvE,EACbhB,SAAA,CAAAwF,EAAMC,eAAepF,KACG,WAAxBA,EAAeqF,MACZC,eAAatF,IAEXmF,EAAMI,aAAavF,EAAgB,IAC5B0C,GAAkB,IACdtC,EACHoF,IAAKzB,GACLL,KAAM3C,EAAW,gBAAa,EAC9B,gBAAiBV,EACjBoF,QAAQnC,GACJA,EAAMoC,iBAAgB,MAGjC,EAGNnB,MACIoB,EACG,CAAAhG,SAAAiG,EAACC,EAAA,CACGjE,QAAAA,GAEAkE,OAAO,EAEPC,aAAchF,GAAgB,EAAA,EAE9BiF,aAAcjF,EAEdpB,SAAAiG,EAAC,MAAA,CACGhG,UAAWqG,EAAK,eAAgBrG,GAChC,aAAYsE,GACZ,sBAAqBC,GACrBT,KAAK,OACL,iBAAgB/B,GAChB,YAAU,YACV,eAAc1B,GACduF,IAAK9D,GAAKwE,eACNvD,GAAiB,CACjBuC,GAAI7E,EACJ8F,MAAO,IACAtE,MACA4C,MAIV9E,WAAMyG,SAASC,IACZ1G,GACA,CAAC2G,EAAOC,IAEApB,EAAMC,eAAekB,IACrBhB,EAAAA,aAAagB,GAENnB,EAAMI,aACTe,EACA1D,GAAa,IACN0D,EAAM7G,MACT+G,SACItF,IAAgBqF,EACV,GACA,EACV7C,KAAM,WACN8B,IACIiB,GAEazF,EAAAsD,QACTiC,GACAE,CACR,EACAhB,QAAQnC,WACJ,OAAAoD,GAAAC,EAAAL,EAAM7G,OAAMgG,UAAZiB,EAAAE,KAAAD,EACIrD,IAGAA,EAAMuD,mBAIV,MAAApG,GAAAA,EAAMqG,OAAOC,KACT,SAER,EACAC,UAAU1D,WACN,OAAAoD,GAAAC,EAAAL,EAAM7G,OAAMuH,YAAZN,EAAAE,KAAAD,EACIrD,IAGAA,EAAMuD,mBAIV,MAAApG,GAAAA,EAAMqG,OAAOC,KACT,WAKI,qBAFJzD,EAAM2D,cACDvD,MAGD,UADJJ,EAAM4D,KAIN3F,IAAU,GAElB,EACA4F,eAEQ9F,GACApB,IAEAkB,EACIoF,EAER,KAMTD,YAOnC,IAIZ/G,EAAc6H,YAAc,gBAErB,MAAMC,EAAO7H,GAAyC,CAACC,EAAO+F,IAGhD,OAFA1E,MAIRwG,EACG,CAAA3H,SAAAiG,EAACrG,GAAciG,IAAAA,KAAc/F,MAKjCmG,EAAArG,EAAA,CAAciG,IAAAA,KAAc/F,MAExC4H,EAAKD,YAAc"}
@@ -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 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
+ {"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,WAIZR,KAAeS,EAAiB,CAAA,KAG7C"}
@@ -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 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
+ {"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,iDAK9B,IAIRL,EAAiB8B,YAAc"}
@@ -1 +1 @@
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":"0vDAQA,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":"0vDAQA,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,CAAU,GAAIR,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 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":"6IAKA,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":"6IAKA,MAAMA,EAAO,CACTC,MAAO,+BACPC,UAAWC,EACXC,WAAY,CACRC,OAAQ,YAEZC,KAAM,CAAC,aAMEC,EAAqB,CAC9BC,OAAQ,IAAMC,EAACN,EAAqB,CAAA"}
@@ -1 +1 @@
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":"gnDAMA,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":"gnDAMA,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,SAAc,KAAeF,EAAOG,SAErE"}
@@ -1 +1 @@
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
+ {"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,EAAK,CAGnB,SAASK,EAAcE,GACfA,EAAMb,SAAWA,GAAUa,EAAMZ,WAAaA,GAC9CK,GAAU,EACd,CASJ,GACD,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,EAClB,CAGJ,SAASc,IACLd,GAAc,EAAK,CAGhB,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,CACzD,GACD,CAACf,IAEG,CAAEA,WAAAA,EAAYG,OAAAA,EAAQC,UAAAA,EAAU"}
@@ -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 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
+ {"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,UAMxD,IAIR3B,EAAiB6B,YAAc"}
@@ -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 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
+ {"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,KAAA,EAInB,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,kBAGnC,IAIRxB,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 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
+ {"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,gBAAmB"}
@@ -1 +1 @@
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
+ {"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,gBAAmB"}
@@ -1 +1 @@
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
+ {"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,gBAAmB"}