@fremtind/jokul 0.27.1 → 0.27.3

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 (513) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/ScreenReaderOnly.cjs.map +1 -1
  3. package/build/cjs/components/accordion/Accordion.cjs.map +1 -1
  4. package/build/cjs/components/accordion/AccordionItem.cjs.map +1 -1
  5. package/build/cjs/components/breadcrumb/Breadcrumb.cjs.map +1 -1
  6. package/build/cjs/components/breadcrumb/BreadcrumbItem.cjs.map +1 -1
  7. package/build/cjs/components/button/Button.cjs.map +1 -1
  8. package/build/cjs/components/button/index.d.cts +1 -1
  9. package/build/cjs/components/button/types.cjs.map +1 -1
  10. package/build/cjs/components/card/Card.cjs.map +1 -1
  11. package/build/cjs/components/card/CardImage.cjs.map +1 -1
  12. package/build/cjs/components/card/InfoCard.cjs.map +1 -1
  13. package/build/cjs/components/card/NavCard.cjs.map +1 -1
  14. package/build/cjs/components/card/TaskCard.cjs.map +1 -1
  15. package/build/cjs/components/card/documentation/examples/FakturainfoExample.d.cts +1 -1
  16. package/build/cjs/components/card/documentation/examples/StatuskortExample.d.cts +1 -1
  17. package/build/cjs/components/card/types.cjs.map +1 -1
  18. package/build/cjs/components/card/utils.cjs.map +1 -1
  19. package/build/cjs/components/checkbox/Checkbox.cjs.map +1 -1
  20. package/build/cjs/components/combobox/Combobox.cjs.map +1 -1
  21. package/build/cjs/components/combobox/index.d.cts +1 -1
  22. package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
  23. package/build/cjs/components/cookie-consent/CookieConsentContext.cjs.map +1 -1
  24. package/build/cjs/components/cookie-consent/CookieConsentModal.cjs.map +1 -1
  25. package/build/cjs/components/cookie-consent/consents/CustomConsents.cjs.map +1 -1
  26. package/build/cjs/components/cookie-consent/consents/DefaultConsents.cjs.map +1 -1
  27. package/build/cjs/components/cookie-consent/consents/RequirementCheckbox.cjs.map +1 -1
  28. package/build/cjs/components/cookie-consent/consents/RequirementCheckbox.d.cts +1 -1
  29. package/build/cjs/components/cookie-consent/cookieConsentUtils.cjs.map +1 -1
  30. package/build/cjs/components/cookie-consent/cookieConsentUtils.d.cts +1 -1
  31. package/build/cjs/components/cookie-consent/index.d.cts +1 -1
  32. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  33. package/build/cjs/components/datepicker/internal/Calendar.cjs.map +1 -1
  34. package/build/cjs/components/datepicker/internal/calendarReducer.cjs.map +1 -1
  35. package/build/cjs/components/datepicker/internal/useCalendar.cjs.map +1 -1
  36. package/build/cjs/components/datepicker/internal/utils.cjs.map +1 -1
  37. package/build/cjs/components/datepicker/internal/utils.d.cts +2 -2
  38. package/build/cjs/components/datepicker/utils.cjs.map +1 -1
  39. package/build/cjs/components/description-list/DescriptionList.cjs.map +1 -1
  40. package/build/cjs/components/expander/ExpandSection.cjs.map +1 -1
  41. package/build/cjs/components/expander/Expander.cjs.map +1 -1
  42. package/build/cjs/components/feedback/Feedback.cjs.map +1 -1
  43. package/build/cjs/components/feedback/FeedbackSuccess.cjs.map +1 -1
  44. package/build/cjs/components/feedback/FeedbackValues.cjs.map +1 -1
  45. package/build/cjs/components/feedback/feedbackContext.cjs.map +1 -1
  46. package/build/cjs/components/feedback/followup/Followup.cjs.map +1 -1
  47. package/build/cjs/components/feedback/followup/followupContext.cjs.map +1 -1
  48. package/build/cjs/components/feedback/followup/useFollowup.cjs.map +1 -1
  49. package/build/cjs/components/feedback/main-question/MainQuestion.cjs.map +1 -1
  50. package/build/cjs/components/feedback/main-question/mainQuestionContext.cjs.map +1 -1
  51. package/build/cjs/components/feedback/main-question/useMainQuestion.cjs.map +1 -1
  52. package/build/cjs/components/feedback/presets.cjs.map +1 -1
  53. package/build/cjs/components/feedback/questions/AddonQuestion.cjs.map +1 -1
  54. package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs.map +1 -1
  55. package/build/cjs/components/feedback/questions/ContactQuestion.cjs.map +1 -1
  56. package/build/cjs/components/feedback/questions/RadioQuestion.cjs.map +1 -1
  57. package/build/cjs/components/feedback/questions/SmileyQuestion.cjs.map +1 -1
  58. package/build/cjs/components/feedback/questions/TextQuestion.cjs.map +1 -1
  59. package/build/cjs/components/feedback/questions/smileyUtils.cjs.map +1 -1
  60. package/build/cjs/components/feedback/utils.cjs.map +1 -1
  61. package/build/cjs/components/flex/Flex.cjs.map +1 -1
  62. package/build/cjs/components/icon/Icon.cjs.map +1 -1
  63. package/build/cjs/components/icon/icons/ArrowDownIcon.cjs.map +1 -1
  64. package/build/cjs/components/icon/icons/ArrowLeftIcon.cjs.map +1 -1
  65. package/build/cjs/components/icon/icons/ArrowNorthEastIcon.cjs.map +1 -1
  66. package/build/cjs/components/icon/icons/ArrowRightIcon.cjs.map +1 -1
  67. package/build/cjs/components/icon/icons/ArrowUpIcon.cjs.map +1 -1
  68. package/build/cjs/components/icon/icons/CalendarIcon.cjs.map +1 -1
  69. package/build/cjs/components/icon/icons/CheckIcon.cjs.map +1 -1
  70. package/build/cjs/components/icon/icons/ChevronDownIcon.cjs.map +1 -1
  71. package/build/cjs/components/icon/icons/ChevronLeftIcon.cjs.map +1 -1
  72. package/build/cjs/components/icon/icons/ChevronRightIcon.cjs.map +1 -1
  73. package/build/cjs/components/icon/icons/ChevronUpIcon.cjs.map +1 -1
  74. package/build/cjs/components/icon/icons/CloseIcon.cjs.map +1 -1
  75. package/build/cjs/components/icon/icons/CopyIcon.cjs.map +1 -1
  76. package/build/cjs/components/icon/icons/DotsIcon.cjs.map +1 -1
  77. package/build/cjs/components/icon/icons/DragIcon.cjs.map +1 -1
  78. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs.map +1 -1
  79. package/build/cjs/components/icon/icons/HamburgerIcon.cjs.map +1 -1
  80. package/build/cjs/components/icon/icons/LinkIcon.cjs.map +1 -1
  81. package/build/cjs/components/icon/icons/MinusIcon.cjs.map +1 -1
  82. package/build/cjs/components/icon/icons/PenIcon.cjs.map +1 -1
  83. package/build/cjs/components/icon/icons/PlusIcon.cjs.map +1 -1
  84. package/build/cjs/components/icon/icons/QuestionIcon.cjs.map +1 -1
  85. package/build/cjs/components/icon/icons/RedCrossIcon.cjs.map +1 -1
  86. package/build/cjs/components/icon/icons/SearchIcon.cjs.map +1 -1
  87. package/build/cjs/components/icon/icons/ThumbDownIcon.cjs.map +1 -1
  88. package/build/cjs/components/icon/icons/ThumbUpIcon.cjs.map +1 -1
  89. package/build/cjs/components/icon/icons/TrashCanIcon.cjs.map +1 -1
  90. package/build/cjs/components/icon/icons/animated/ArrowHorizontalAnimated.cjs.map +1 -1
  91. package/build/cjs/components/icon/icons/animated/ArrowVerticalAnimated.cjs.map +1 -1
  92. package/build/cjs/components/icon/icons/animated/PlusRemoveAnimated.cjs.map +1 -1
  93. package/build/cjs/components/icon-button/IconButton.cjs.map +1 -1
  94. package/build/cjs/components/image/Image.cjs.map +1 -1
  95. package/build/cjs/components/image/useImageLoadingStatus.cjs.map +1 -1
  96. package/build/cjs/components/index.d.cts +1 -1
  97. package/build/cjs/components/input-group/FieldGroup.cjs.map +1 -1
  98. package/build/cjs/components/input-group/InputGroup.cjs.map +1 -1
  99. package/build/cjs/components/input-group/Label.cjs.map +1 -1
  100. package/build/cjs/components/input-group/SupportLabel.cjs.map +1 -1
  101. package/build/cjs/components/input-group/index.d.cts +2 -2
  102. package/build/cjs/components/link/Link.cjs.map +1 -1
  103. package/build/cjs/components/link/NavLink.cjs.map +1 -1
  104. package/build/cjs/components/link-list/LinkList.cjs.map +1 -1
  105. package/build/cjs/components/loader/index.d.cts +2 -2
  106. package/build/cjs/components/loader/skeletons/SkeletonAnimation.cjs.map +1 -1
  107. package/build/cjs/components/loader/skeletons/SkeletonButton.cjs.map +1 -1
  108. package/build/cjs/components/loader/skeletons/SkeletonCheckboxGroup.cjs.map +1 -1
  109. package/build/cjs/components/loader/skeletons/SkeletonElement.cjs.map +1 -1
  110. package/build/cjs/components/loader/skeletons/SkeletonInput.cjs.map +1 -1
  111. package/build/cjs/components/loader/skeletons/SkeletonLabel.cjs.map +1 -1
  112. package/build/cjs/components/loader/skeletons/SkeletonRadioButtonGroup.cjs.map +1 -1
  113. package/build/cjs/components/loader/skeletons/SkeletonTable.cjs.map +1 -1
  114. package/build/cjs/components/loader/skeletons/SkeletonTextArea.cjs.map +1 -1
  115. package/build/cjs/components/loader/useDelayedRender.cjs.map +1 -1
  116. package/build/cjs/components/logo/Logo.cjs.map +1 -1
  117. package/build/cjs/components/logo/LogoStamp.cjs.map +1 -1
  118. package/build/cjs/components/logo/useTextSpinner.cjs.map +1 -1
  119. package/build/cjs/components/menu/Menu.cjs.map +1 -1
  120. package/build/cjs/components/menu/MenuItem.cjs.map +1 -1
  121. package/build/cjs/components/menu/MenuItemCheckbox.cjs.map +1 -1
  122. package/build/cjs/components/menu/index.d.cts +1 -1
  123. package/build/cjs/components/message/DismissButton.cjs.map +1 -1
  124. package/build/cjs/components/message/FormErrorMessage.cjs.map +1 -1
  125. package/build/cjs/components/message/Message.cjs.map +1 -1
  126. package/build/cjs/components/message/index.d.cts +2 -2
  127. package/build/cjs/components/modal/Modal.cjs.map +1 -1
  128. package/build/cjs/components/modal/index.d.cts +1 -1
  129. package/build/cjs/components/modal/useModal.cjs.map +1 -1
  130. package/build/cjs/components/pagination/Pagination.cjs.map +1 -1
  131. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  132. package/build/cjs/components/progress-bar/Countdown.cjs.map +1 -1
  133. package/build/cjs/components/radio-button/BaseRadioButton.cjs.map +1 -1
  134. package/build/cjs/components/radio-button/RadioButton.cjs.map +1 -1
  135. package/build/cjs/components/radio-button/RadioButtonGroup.cjs.map +1 -1
  136. package/build/cjs/components/radio-button/radioGroupContext.cjs.map +1 -1
  137. package/build/cjs/components/radio-panel/RadioPanel.cjs +1 -1
  138. package/build/cjs/components/radio-panel/RadioPanel.cjs.map +1 -1
  139. package/build/cjs/components/radio-panel/RadioPanel.d.cts +1 -1
  140. package/build/cjs/components/select/NativeSelect.cjs.map +1 -1
  141. package/build/cjs/components/select/Select.cjs.map +1 -1
  142. package/build/cjs/components/select/select-utils.cjs.map +1 -1
  143. package/build/cjs/components/summary-table/SummaryTable.cjs.map +1 -1
  144. package/build/cjs/components/summary-table/SummaryTableRow.cjs.map +1 -1
  145. package/build/cjs/components/summary-table/mocks.cjs.map +1 -1
  146. package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
  147. package/build/cjs/components/system-message/common/DismissButton.cjs.map +1 -1
  148. package/build/cjs/components/system-message/common/MessageIcon.cjs.map +1 -1
  149. package/build/cjs/components/system-message/index.d.cts +1 -1
  150. package/build/cjs/components/table/DataTable.cjs.map +1 -1
  151. package/build/cjs/components/table/ExpandableTableRow.cjs.map +1 -1
  152. package/build/cjs/components/table/ExpandableTableRowController.cjs.map +1 -1
  153. package/build/cjs/components/table/Table.cjs.map +1 -1
  154. package/build/cjs/components/table/TableBody.cjs.map +1 -1
  155. package/build/cjs/components/table/TableCaption.cjs.map +1 -1
  156. package/build/cjs/components/table/TableCell.cjs.map +1 -1
  157. package/build/cjs/components/table/TableColumn.cjs.map +1 -1
  158. package/build/cjs/components/table/TableColumnGroup.cjs.map +1 -1
  159. package/build/cjs/components/table/TableFooter.cjs.map +1 -1
  160. package/build/cjs/components/table/TableHead.cjs.map +1 -1
  161. package/build/cjs/components/table/TableHeader.cjs.map +1 -1
  162. package/build/cjs/components/table/TablePagination.cjs.map +1 -1
  163. package/build/cjs/components/table/TableRow.cjs.map +1 -1
  164. package/build/cjs/components/table/index.d.cts +1 -1
  165. package/build/cjs/components/table/tableContext.cjs.map +1 -1
  166. package/build/cjs/components/table/tableSectionContext.cjs.map +1 -1
  167. package/build/cjs/components/table/utils.cjs.map +1 -1
  168. package/build/cjs/components/tabs/NavTab.cjs.map +1 -1
  169. package/build/cjs/components/tabs/NavTabs.cjs.map +1 -1
  170. package/build/cjs/components/tabs/Tab.cjs.map +1 -1
  171. package/build/cjs/components/tabs/TabList.cjs.map +1 -1
  172. package/build/cjs/components/tabs/Tabs.cjs.map +1 -1
  173. package/build/cjs/components/tag/Tag.cjs.map +1 -1
  174. package/build/cjs/components/text-input/BaseTextArea.cjs.map +1 -1
  175. package/build/cjs/components/text-input/BaseTextInput.cjs.map +1 -1
  176. package/build/cjs/components/text-input/TextArea.cjs.map +1 -1
  177. package/build/cjs/components/text-input/TextInput.cjs.map +1 -1
  178. package/build/cjs/components/toast/Toast.cjs.map +1 -1
  179. package/build/cjs/components/toast/ToastRegion.cjs.map +1 -1
  180. package/build/cjs/components/toast/ToastRegion.d.cts +1 -1
  181. package/build/cjs/components/toast/toastContext.cjs.map +1 -1
  182. package/build/cjs/components/toggle-switch/ToggleSlider.cjs.map +1 -1
  183. package/build/cjs/components/toggle-switch/ToggleSwitch.cjs.map +1 -1
  184. package/build/cjs/components/toggle-switch/usePillStyles.cjs.map +1 -1
  185. package/build/cjs/components/tooltip/PopupTip.cjs.map +1 -1
  186. package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
  187. package/build/cjs/components/tooltip/TooltipContent.cjs.map +1 -1
  188. package/build/cjs/components/tooltip/TooltipTrigger.cjs.map +1 -1
  189. package/build/cjs/components/tooltip/index.d.cts +1 -1
  190. package/build/cjs/hooks/index.d.cts +5 -5
  191. package/build/cjs/hooks/mediaQueryUtils.cjs.map +1 -1
  192. package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.cjs.map +1 -1
  193. package/build/cjs/hooks/useAnimatedHeight/index.d.cts +1 -1
  194. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs.map +1 -1
  195. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs.map +1 -1
  196. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs.map +1 -1
  197. package/build/cjs/hooks/useAriaLiveRegion/index.d.cts +1 -1
  198. package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.cjs.map +1 -1
  199. package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs.map +1 -1
  200. package/build/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  201. package/build/cjs/hooks/useElementDimensions/index.d.cts +1 -1
  202. package/build/cjs/hooks/useElementDimensions/useElementDimensions.cjs.map +1 -1
  203. package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs.map +1 -1
  204. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  205. package/build/cjs/hooks/useListNavigation/useListNavigation.cjs.map +1 -1
  206. package/build/cjs/hooks/useListNavigation/useListNavigation.d.cts +1 -1
  207. package/build/cjs/hooks/useLocalStorage/useLocalStorage.cjs.map +1 -1
  208. package/build/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  209. package/build/cjs/hooks/useProgressiveImg/index.d.cts +1 -1
  210. package/build/cjs/hooks/useProgressiveImg/useProgressiveImg.cjs.map +1 -1
  211. package/build/cjs/hooks/useProgressiveImg/useProgressiveImg.d.cts +1 -1
  212. package/build/cjs/hooks/useScreen/state.cjs.map +1 -1
  213. package/build/cjs/hooks/useScreen/useScreen.cjs.map +1 -1
  214. package/build/cjs/hooks/useScrollIntoView/index.d.cts +1 -1
  215. package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.cjs.map +1 -1
  216. package/build/cjs/utilities/formatters/avstand/formatAvstand.cjs.map +1 -1
  217. package/build/cjs/utilities/formatters/bytes/formatBytes.cjs.map +1 -1
  218. package/build/cjs/utilities/formatters/date/formatDate.cjs.map +1 -1
  219. package/build/cjs/utilities/formatters/fodselsnummer/formatFodselsnummer.cjs.map +1 -1
  220. package/build/cjs/utilities/formatters/index.d.cts +5 -5
  221. package/build/cjs/utilities/formatters/kontonummer/formatKontonummer.cjs.map +1 -1
  222. package/build/cjs/utilities/formatters/kortnummer/formatKortnummer.cjs.map +1 -1
  223. package/build/cjs/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.cjs.map +1 -1
  224. package/build/cjs/utilities/formatters/telefonnummer/formatTelefonnummer.cjs.map +1 -1
  225. package/build/cjs/utilities/formatters/util/formatNumber.cjs.map +1 -1
  226. package/build/cjs/utilities/formatters/util/parseNumber.cjs.map +1 -1
  227. package/build/cjs/utilities/formatters/util/registerWithMask.cjs.map +1 -1
  228. package/build/cjs/utilities/formatters/valuta/formatValuta.cjs.map +1 -1
  229. package/build/cjs/utilities/getThemeAndDensity.cjs.map +1 -1
  230. package/build/cjs/utilities/polymorphism/SlotComponent.cjs.map +1 -1
  231. package/build/cjs/utilities/polymorphism/index.d.cts +1 -1
  232. package/build/cjs/utilities/polymorphism/mergeProps.cjs.map +1 -1
  233. package/build/cjs/utilities/polymorphism/mergeRefs.cjs.map +1 -1
  234. package/build/cjs/utilities/tabListener.cjs.map +1 -1
  235. package/build/cjs/utilities/validators/hasMinimumWords/hasMinimumWords.cjs.map +1 -1
  236. package/build/cjs/utilities/validators/hasNoIllegalCharacters/hasNoIllegalCharacters.cjs.map +1 -1
  237. package/build/cjs/utilities/validators/isValidChassisnummer/isValidChassisnummer.cjs.map +1 -1
  238. package/build/cjs/utilities/validators/isValidEpost/isValidEpost.cjs.map +1 -1
  239. package/build/cjs/utilities/validators/isValidFodselsnummer/isValidFodselsnummer.cjs.map +1 -1
  240. package/build/cjs/utilities/validators/isValidKortnummer/isValidKortnummer.cjs.map +1 -1
  241. package/build/cjs/utilities/validators/isValidName/isValidName.cjs.map +1 -1
  242. package/build/cjs/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.cjs.map +1 -1
  243. package/build/cjs/utilities/validators/isValidTelefonnummer/isValidTelefonnummer.cjs.map +1 -1
  244. package/build/es/components/ScreenReaderOnly.js.map +1 -1
  245. package/build/es/components/accordion/Accordion.js.map +1 -1
  246. package/build/es/components/accordion/AccordionItem.js.map +1 -1
  247. package/build/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  248. package/build/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  249. package/build/es/components/button/Button.js.map +1 -1
  250. package/build/es/components/button/index.d.ts +1 -1
  251. package/build/es/components/button/types.js.map +1 -1
  252. package/build/es/components/card/Card.js.map +1 -1
  253. package/build/es/components/card/CardImage.js.map +1 -1
  254. package/build/es/components/card/InfoCard.js.map +1 -1
  255. package/build/es/components/card/NavCard.js.map +1 -1
  256. package/build/es/components/card/TaskCard.js.map +1 -1
  257. package/build/es/components/card/documentation/examples/FakturainfoExample.d.ts +1 -1
  258. package/build/es/components/card/documentation/examples/StatuskortExample.d.ts +1 -1
  259. package/build/es/components/card/types.js.map +1 -1
  260. package/build/es/components/card/utils.js.map +1 -1
  261. package/build/es/components/checkbox/Checkbox.js.map +1 -1
  262. package/build/es/components/combobox/Combobox.js.map +1 -1
  263. package/build/es/components/combobox/index.d.ts +1 -1
  264. package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
  265. package/build/es/components/cookie-consent/CookieConsentContext.js.map +1 -1
  266. package/build/es/components/cookie-consent/CookieConsentModal.js.map +1 -1
  267. package/build/es/components/cookie-consent/consents/CustomConsents.js.map +1 -1
  268. package/build/es/components/cookie-consent/consents/DefaultConsents.js.map +1 -1
  269. package/build/es/components/cookie-consent/consents/RequirementCheckbox.d.ts +1 -1
  270. package/build/es/components/cookie-consent/consents/RequirementCheckbox.js.map +1 -1
  271. package/build/es/components/cookie-consent/cookieConsentUtils.d.ts +1 -1
  272. package/build/es/components/cookie-consent/cookieConsentUtils.js.map +1 -1
  273. package/build/es/components/cookie-consent/index.d.ts +1 -1
  274. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  275. package/build/es/components/datepicker/internal/Calendar.js.map +1 -1
  276. package/build/es/components/datepicker/internal/calendarReducer.js.map +1 -1
  277. package/build/es/components/datepicker/internal/useCalendar.js.map +1 -1
  278. package/build/es/components/datepicker/internal/utils.d.ts +2 -2
  279. package/build/es/components/datepicker/internal/utils.js.map +1 -1
  280. package/build/es/components/datepicker/utils.js.map +1 -1
  281. package/build/es/components/description-list/DescriptionList.js.map +1 -1
  282. package/build/es/components/expander/ExpandSection.js.map +1 -1
  283. package/build/es/components/expander/Expander.js.map +1 -1
  284. package/build/es/components/feedback/Feedback.js.map +1 -1
  285. package/build/es/components/feedback/FeedbackSuccess.js.map +1 -1
  286. package/build/es/components/feedback/FeedbackValues.js.map +1 -1
  287. package/build/es/components/feedback/feedbackContext.js.map +1 -1
  288. package/build/es/components/feedback/followup/Followup.js.map +1 -1
  289. package/build/es/components/feedback/followup/followupContext.js.map +1 -1
  290. package/build/es/components/feedback/followup/useFollowup.js.map +1 -1
  291. package/build/es/components/feedback/main-question/MainQuestion.js.map +1 -1
  292. package/build/es/components/feedback/main-question/mainQuestionContext.js.map +1 -1
  293. package/build/es/components/feedback/main-question/useMainQuestion.js.map +1 -1
  294. package/build/es/components/feedback/presets.js.map +1 -1
  295. package/build/es/components/feedback/questions/AddonQuestion.js.map +1 -1
  296. package/build/es/components/feedback/questions/CheckboxQuestion.js.map +1 -1
  297. package/build/es/components/feedback/questions/ContactQuestion.js.map +1 -1
  298. package/build/es/components/feedback/questions/RadioQuestion.js.map +1 -1
  299. package/build/es/components/feedback/questions/SmileyQuestion.js.map +1 -1
  300. package/build/es/components/feedback/questions/TextQuestion.js.map +1 -1
  301. package/build/es/components/feedback/questions/smileyUtils.js.map +1 -1
  302. package/build/es/components/feedback/utils.js.map +1 -1
  303. package/build/es/components/flex/Flex.js.map +1 -1
  304. package/build/es/components/icon/Icon.js.map +1 -1
  305. package/build/es/components/icon/icons/ArrowDownIcon.js.map +1 -1
  306. package/build/es/components/icon/icons/ArrowLeftIcon.js.map +1 -1
  307. package/build/es/components/icon/icons/ArrowNorthEastIcon.js.map +1 -1
  308. package/build/es/components/icon/icons/ArrowRightIcon.js.map +1 -1
  309. package/build/es/components/icon/icons/ArrowUpIcon.js.map +1 -1
  310. package/build/es/components/icon/icons/CalendarIcon.js.map +1 -1
  311. package/build/es/components/icon/icons/CheckIcon.js.map +1 -1
  312. package/build/es/components/icon/icons/ChevronDownIcon.js.map +1 -1
  313. package/build/es/components/icon/icons/ChevronLeftIcon.js.map +1 -1
  314. package/build/es/components/icon/icons/ChevronRightIcon.js.map +1 -1
  315. package/build/es/components/icon/icons/ChevronUpIcon.js.map +1 -1
  316. package/build/es/components/icon/icons/CloseIcon.js.map +1 -1
  317. package/build/es/components/icon/icons/CopyIcon.js.map +1 -1
  318. package/build/es/components/icon/icons/DotsIcon.js.map +1 -1
  319. package/build/es/components/icon/icons/DragIcon.js.map +1 -1
  320. package/build/es/components/icon/icons/GreenCheckIcon.js.map +1 -1
  321. package/build/es/components/icon/icons/HamburgerIcon.js.map +1 -1
  322. package/build/es/components/icon/icons/LinkIcon.js.map +1 -1
  323. package/build/es/components/icon/icons/MinusIcon.js.map +1 -1
  324. package/build/es/components/icon/icons/PenIcon.js.map +1 -1
  325. package/build/es/components/icon/icons/PlusIcon.js.map +1 -1
  326. package/build/es/components/icon/icons/QuestionIcon.js.map +1 -1
  327. package/build/es/components/icon/icons/RedCrossIcon.js.map +1 -1
  328. package/build/es/components/icon/icons/SearchIcon.js.map +1 -1
  329. package/build/es/components/icon/icons/ThumbDownIcon.js.map +1 -1
  330. package/build/es/components/icon/icons/ThumbUpIcon.js.map +1 -1
  331. package/build/es/components/icon/icons/TrashCanIcon.js.map +1 -1
  332. package/build/es/components/icon/icons/animated/ArrowHorizontalAnimated.js.map +1 -1
  333. package/build/es/components/icon/icons/animated/ArrowVerticalAnimated.js.map +1 -1
  334. package/build/es/components/icon/icons/animated/PlusRemoveAnimated.js.map +1 -1
  335. package/build/es/components/icon-button/IconButton.js.map +1 -1
  336. package/build/es/components/image/Image.js.map +1 -1
  337. package/build/es/components/image/useImageLoadingStatus.js.map +1 -1
  338. package/build/es/components/index.d.ts +1 -1
  339. package/build/es/components/input-group/FieldGroup.js.map +1 -1
  340. package/build/es/components/input-group/InputGroup.js.map +1 -1
  341. package/build/es/components/input-group/Label.js.map +1 -1
  342. package/build/es/components/input-group/SupportLabel.js.map +1 -1
  343. package/build/es/components/input-group/index.d.ts +2 -2
  344. package/build/es/components/link/Link.js.map +1 -1
  345. package/build/es/components/link/NavLink.js.map +1 -1
  346. package/build/es/components/link-list/LinkList.js.map +1 -1
  347. package/build/es/components/loader/index.d.ts +2 -2
  348. package/build/es/components/loader/skeletons/SkeletonAnimation.js.map +1 -1
  349. package/build/es/components/loader/skeletons/SkeletonButton.js.map +1 -1
  350. package/build/es/components/loader/skeletons/SkeletonCheckboxGroup.js.map +1 -1
  351. package/build/es/components/loader/skeletons/SkeletonElement.js.map +1 -1
  352. package/build/es/components/loader/skeletons/SkeletonInput.js.map +1 -1
  353. package/build/es/components/loader/skeletons/SkeletonLabel.js.map +1 -1
  354. package/build/es/components/loader/skeletons/SkeletonRadioButtonGroup.js.map +1 -1
  355. package/build/es/components/loader/skeletons/SkeletonTable.js.map +1 -1
  356. package/build/es/components/loader/skeletons/SkeletonTextArea.js.map +1 -1
  357. package/build/es/components/loader/useDelayedRender.js.map +1 -1
  358. package/build/es/components/logo/Logo.js.map +1 -1
  359. package/build/es/components/logo/LogoStamp.js.map +1 -1
  360. package/build/es/components/logo/useTextSpinner.js.map +1 -1
  361. package/build/es/components/menu/Menu.js.map +1 -1
  362. package/build/es/components/menu/MenuItem.js.map +1 -1
  363. package/build/es/components/menu/MenuItemCheckbox.js.map +1 -1
  364. package/build/es/components/menu/index.d.ts +1 -1
  365. package/build/es/components/message/DismissButton.js.map +1 -1
  366. package/build/es/components/message/FormErrorMessage.js.map +1 -1
  367. package/build/es/components/message/Message.js.map +1 -1
  368. package/build/es/components/message/index.d.ts +2 -2
  369. package/build/es/components/modal/Modal.js.map +1 -1
  370. package/build/es/components/modal/index.d.ts +1 -1
  371. package/build/es/components/modal/useModal.js.map +1 -1
  372. package/build/es/components/pagination/Pagination.js.map +1 -1
  373. package/build/es/components/popover/Popover.js.map +1 -1
  374. package/build/es/components/progress-bar/Countdown.js.map +1 -1
  375. package/build/es/components/radio-button/BaseRadioButton.js.map +1 -1
  376. package/build/es/components/radio-button/RadioButton.js.map +1 -1
  377. package/build/es/components/radio-button/RadioButtonGroup.js.map +1 -1
  378. package/build/es/components/radio-button/radioGroupContext.js.map +1 -1
  379. package/build/es/components/radio-panel/RadioPanel.d.ts +1 -1
  380. package/build/es/components/radio-panel/RadioPanel.js +1 -1
  381. package/build/es/components/radio-panel/RadioPanel.js.map +1 -1
  382. package/build/es/components/select/NativeSelect.js.map +1 -1
  383. package/build/es/components/select/Select.js.map +1 -1
  384. package/build/es/components/select/select-utils.js.map +1 -1
  385. package/build/es/components/summary-table/SummaryTable.js.map +1 -1
  386. package/build/es/components/summary-table/SummaryTableRow.js.map +1 -1
  387. package/build/es/components/summary-table/mocks.js.map +1 -1
  388. package/build/es/components/system-message/SystemMessage.js.map +1 -1
  389. package/build/es/components/system-message/common/DismissButton.js.map +1 -1
  390. package/build/es/components/system-message/common/MessageIcon.js.map +1 -1
  391. package/build/es/components/system-message/index.d.ts +1 -1
  392. package/build/es/components/table/DataTable.js.map +1 -1
  393. package/build/es/components/table/ExpandableTableRow.js.map +1 -1
  394. package/build/es/components/table/ExpandableTableRowController.js.map +1 -1
  395. package/build/es/components/table/Table.js.map +1 -1
  396. package/build/es/components/table/TableBody.js.map +1 -1
  397. package/build/es/components/table/TableCaption.js.map +1 -1
  398. package/build/es/components/table/TableCell.js.map +1 -1
  399. package/build/es/components/table/TableColumn.js.map +1 -1
  400. package/build/es/components/table/TableColumnGroup.js.map +1 -1
  401. package/build/es/components/table/TableFooter.js.map +1 -1
  402. package/build/es/components/table/TableHead.js.map +1 -1
  403. package/build/es/components/table/TableHeader.js.map +1 -1
  404. package/build/es/components/table/TablePagination.js.map +1 -1
  405. package/build/es/components/table/TableRow.js.map +1 -1
  406. package/build/es/components/table/index.d.ts +1 -1
  407. package/build/es/components/table/tableContext.js.map +1 -1
  408. package/build/es/components/table/tableSectionContext.js.map +1 -1
  409. package/build/es/components/table/utils.js.map +1 -1
  410. package/build/es/components/tabs/NavTab.js.map +1 -1
  411. package/build/es/components/tabs/NavTabs.js.map +1 -1
  412. package/build/es/components/tabs/Tab.js.map +1 -1
  413. package/build/es/components/tabs/TabList.js.map +1 -1
  414. package/build/es/components/tabs/Tabs.js.map +1 -1
  415. package/build/es/components/tag/Tag.js.map +1 -1
  416. package/build/es/components/text-input/BaseTextArea.js.map +1 -1
  417. package/build/es/components/text-input/BaseTextInput.js.map +1 -1
  418. package/build/es/components/text-input/TextArea.js.map +1 -1
  419. package/build/es/components/text-input/TextInput.js.map +1 -1
  420. package/build/es/components/toast/Toast.js.map +1 -1
  421. package/build/es/components/toast/ToastRegion.d.ts +1 -1
  422. package/build/es/components/toast/ToastRegion.js.map +1 -1
  423. package/build/es/components/toast/toastContext.js.map +1 -1
  424. package/build/es/components/toggle-switch/ToggleSlider.js.map +1 -1
  425. package/build/es/components/toggle-switch/ToggleSwitch.js.map +1 -1
  426. package/build/es/components/toggle-switch/usePillStyles.js.map +1 -1
  427. package/build/es/components/tooltip/PopupTip.js.map +1 -1
  428. package/build/es/components/tooltip/Tooltip.js.map +1 -1
  429. package/build/es/components/tooltip/TooltipContent.js.map +1 -1
  430. package/build/es/components/tooltip/TooltipTrigger.js.map +1 -1
  431. package/build/es/components/tooltip/index.d.ts +1 -1
  432. package/build/es/hooks/index.d.ts +5 -5
  433. package/build/es/hooks/mediaQueryUtils.js.map +1 -1
  434. package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.js.map +1 -1
  435. package/build/es/hooks/useAnimatedHeight/index.d.ts +1 -1
  436. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js.map +1 -1
  437. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js.map +1 -1
  438. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js.map +1 -1
  439. package/build/es/hooks/useAriaLiveRegion/index.d.ts +1 -1
  440. package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.js.map +1 -1
  441. package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.js.map +1 -1
  442. package/build/es/hooks/useClickOutside/useClickOutside.js.map +1 -1
  443. package/build/es/hooks/useElementDimensions/index.d.ts +1 -1
  444. package/build/es/hooks/useElementDimensions/useElementDimensions.js.map +1 -1
  445. package/build/es/hooks/useFocusOutside/useFocusOutside.js.map +1 -1
  446. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  447. package/build/es/hooks/useListNavigation/useListNavigation.d.ts +1 -1
  448. package/build/es/hooks/useListNavigation/useListNavigation.js.map +1 -1
  449. package/build/es/hooks/useLocalStorage/useLocalStorage.js.map +1 -1
  450. package/build/es/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
  451. package/build/es/hooks/useProgressiveImg/index.d.ts +1 -1
  452. package/build/es/hooks/useProgressiveImg/useProgressiveImg.d.ts +1 -1
  453. package/build/es/hooks/useProgressiveImg/useProgressiveImg.js.map +1 -1
  454. package/build/es/hooks/useScreen/state.js.map +1 -1
  455. package/build/es/hooks/useScreen/useScreen.js.map +1 -1
  456. package/build/es/hooks/useScrollIntoView/index.d.ts +1 -1
  457. package/build/es/hooks/useSwipeGesture/useSwipeGesture.js.map +1 -1
  458. package/build/es/utilities/formatters/avstand/formatAvstand.js.map +1 -1
  459. package/build/es/utilities/formatters/bytes/formatBytes.js.map +1 -1
  460. package/build/es/utilities/formatters/date/formatDate.js.map +1 -1
  461. package/build/es/utilities/formatters/fodselsnummer/formatFodselsnummer.js.map +1 -1
  462. package/build/es/utilities/formatters/index.d.ts +5 -5
  463. package/build/es/utilities/formatters/kontonummer/formatKontonummer.js.map +1 -1
  464. package/build/es/utilities/formatters/kortnummer/formatKortnummer.js.map +1 -1
  465. package/build/es/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.js.map +1 -1
  466. package/build/es/utilities/formatters/telefonnummer/formatTelefonnummer.js.map +1 -1
  467. package/build/es/utilities/formatters/util/formatNumber.js.map +1 -1
  468. package/build/es/utilities/formatters/util/parseNumber.js.map +1 -1
  469. package/build/es/utilities/formatters/util/registerWithMask.js.map +1 -1
  470. package/build/es/utilities/formatters/valuta/formatValuta.js.map +1 -1
  471. package/build/es/utilities/getThemeAndDensity.js.map +1 -1
  472. package/build/es/utilities/polymorphism/SlotComponent.js.map +1 -1
  473. package/build/es/utilities/polymorphism/index.d.ts +1 -1
  474. package/build/es/utilities/polymorphism/mergeProps.js.map +1 -1
  475. package/build/es/utilities/polymorphism/mergeRefs.js.map +1 -1
  476. package/build/es/utilities/tabListener.js.map +1 -1
  477. package/build/es/utilities/validators/hasMinimumWords/hasMinimumWords.js.map +1 -1
  478. package/build/es/utilities/validators/hasNoIllegalCharacters/hasNoIllegalCharacters.js.map +1 -1
  479. package/build/es/utilities/validators/isValidChassisnummer/isValidChassisnummer.js.map +1 -1
  480. package/build/es/utilities/validators/isValidEpost/isValidEpost.js.map +1 -1
  481. package/build/es/utilities/validators/isValidFodselsnummer/isValidFodselsnummer.js.map +1 -1
  482. package/build/es/utilities/validators/isValidKortnummer/isValidKortnummer.js.map +1 -1
  483. package/build/es/utilities/validators/isValidName/isValidName.js.map +1 -1
  484. package/build/es/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.js.map +1 -1
  485. package/build/es/utilities/validators/isValidTelefonnummer/isValidTelefonnummer.js.map +1 -1
  486. package/package.json +2 -2
  487. package/styles/components/button/button.css +2 -2
  488. package/styles/components/button/button.min.css +1 -1
  489. package/styles/components/checkbox/checkbox.css +4 -4
  490. package/styles/components/checkbox/checkbox.min.css +1 -1
  491. package/styles/components/feedback/feedback.css +2 -2
  492. package/styles/components/feedback/feedback.min.css +1 -1
  493. package/styles/components/input-group/input-group.css +2 -2
  494. package/styles/components/input-group/input-group.min.css +1 -1
  495. package/styles/components/loader/loader.css +6 -6
  496. package/styles/components/loader/loader.min.css +1 -1
  497. package/styles/components/loader/skeleton-loader.css +5 -5
  498. package/styles/components/loader/skeleton-loader.min.css +1 -1
  499. package/styles/components/message/message.css +2 -2
  500. package/styles/components/message/message.min.css +1 -1
  501. package/styles/components/progress-bar/progress-bar.css +2 -2
  502. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  503. package/styles/components/radio-button/radio-button.css +2 -2
  504. package/styles/components/radio-button/radio-button.min.css +1 -1
  505. package/styles/components/radio-panel/radio-panel.css +2 -637
  506. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  507. package/styles/components/radio-panel/radio-panel.scss +0 -10
  508. package/styles/components/system-message/system-message.css +2 -2
  509. package/styles/components/system-message/system-message.min.css +1 -1
  510. package/styles/components/toast/toast.css +4 -4
  511. package/styles/components/toast/toast.min.css +1 -1
  512. package/styles/styles.css +35 -42
  513. package/styles/styles.min.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Image.cjs","sources":["../../../../src/components/image/Image.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { FC } from \"react\";\nimport { useElementDimensions } from \"../../hooks/useElementDimensions/useElementDimensions.js\";\nimport { useImageLoadingStatus } from \"./useImageLoadingStatus.js\";\n\nexport interface ImageProps {\n src: string;\n srcSet?: string;\n placeholder?: string;\n /**\n * Send inn en tom streng hvis bildet kun er dekorativt. Sannsynligvis bør du beskrive innholdet i bildet så en person med nedsatt syn får en fullgod opplevelse av siden.\n * Les mer på https://jokul.fremtind.no/universell-utforming/guide#uu/dekorativt-innhold\n */\n alt: string;\n className?: string;\n}\n\nexport const Image: FC<ImageProps> = ({ className, placeholder, alt, ...imageProperties }) => {\n const [imageRef, imageLoaded] = useImageLoadingStatus();\n const [containerRef, dimensions] = 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 className=\"jkl-image__placeholder\" alt={alt} src={placeholder || imageProperties.src} />\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":["className","placeholder","alt","imageProperties","imageRef","imageLoaded","useImageLoadingStatus","containerRef","dimensions","useElementDimensions","jsxs","ref","clsx","children","jsx","src","sizes","width","loading","decoding"],"mappings":"2RAiBqC,EAAGA,UAAAA,EAAWC,YAAAA,EAAaC,IAAAA,KAAQC,MACpE,MAAOC,EAAUC,GAAeC,EAAsBA,yBAC/CC,EAAcC,GAAcC,uBAAqC,KAGpE,OAAAC,EAAAA,KAAC,MAAA,CACGC,IAAKJ,EACLP,UAAWY,EAAAA,KAAK,YAAaZ,EAAW,CACpC,sBAAuBK,IAI3BQ,SAAA,CAAAC,MAAC,OAAId,UAAU,yBAAyBE,IAAAA,EAAUa,IAAKd,GAAeE,EAAgBY,MACtFD,EAAAA,IAAC,MAAA,CACGZ,IAAAA,EACAF,UAAU,mBACV,cAAY,mBACZW,IAAKP,EACLY,MAAO,GAAGR,EAAWS,UACrBC,QAAQ,OACRC,SAAS,WACLhB,MACR"}
1
+ {"version":3,"file":"Image.cjs","sources":["../../../../src/components/image/Image.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { FC } from \"react\";\nimport { useElementDimensions } from \"../../hooks/useElementDimensions/useElementDimensions.js\";\nimport { useImageLoadingStatus } from \"./useImageLoadingStatus.js\";\n\nexport interface ImageProps {\n src: string;\n srcSet?: string;\n placeholder?: string;\n /**\n * Send inn en tom streng hvis bildet kun er dekorativt. Sannsynligvis bør du beskrive innholdet i bildet så en person med nedsatt syn får en fullgod opplevelse av siden.\n * Les mer på https://jokul.fremtind.no/universell-utforming/guide#uu/dekorativt-innhold\n */\n alt: string;\n className?: string;\n}\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 <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":["className","placeholder","alt","imageProperties","imageRef","imageLoaded","useImageLoadingStatus","containerRef","dimensions","useElementDimensions","jsxs","ref","clsx","children","jsx","src","sizes","width","loading","decoding"],"mappings":"2RAiBqC,EACjCA,UAAAA,EACAC,YAAAA,EACAC,IAAAA,KACGC,MAEH,MAAOC,EAAUC,GAAeC,EAAsBA,yBAC/CC,EAAcC,GACjBC,uBAAqC,KAGrC,OAAAC,EAAAA,KAAC,MAAA,CACGC,IAAKJ,EACLP,UAAWY,EAAAA,KAAK,YAAaZ,EAAW,CACpC,sBAAuBK,IAI3BQ,SAAA,CAAAC,EAAAA,IAAC,MAAA,CACGd,UAAU,yBACVE,IAAAA,EACAa,IAAKd,GAAeE,EAAgBY,MAExCD,EAAAA,IAAC,MAAA,CACGZ,IAAAA,EACAF,UAAU,mBACV,cAAY,mBACZW,IAAKP,EACLY,MAAO,GAAGR,EAAWS,UACrBC,QAAQ,OACRC,SAAS,WACLhB,MACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"useImageLoadingStatus.cjs","sources":["../../../../src/components/image/useImageLoadingStatus.ts"],"sourcesContent":["import { 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 = (callback?: () => void): [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":["callback","imageRef","useRef","imageLoaded","setImageLoaded","useState","useEffect","current","image","timeout","checkLoaded","complete","clearTimeout","window","setTimeout","doWhenImageLoaded"],"mappings":"uIAiBsCA,IAC5B,MAAAC,EAAWC,SAAyB,OACnCC,EAAaC,GAAkBC,YAAS,GAE/CC,OAAAA,EAAAA,WAAU,KACNL,EAASM,SApBS,EAACC,EAAyBR,KAC5C,IAAAS,GAEJ,SAASC,IACL,GAAIF,EAAMG,SAGN,OAFAC,aAAaH,QACF,MAAAT,GAAAA,KAGLS,EAAAI,OAAOC,WAAWJ,EAAa,GAC7C,CAEYA,IASJK,CAAkBd,EAASM,SAAS,KAChCH,GAAe,GACJ,MAAAJ,GAAAA,MACd,GACN,CAACA,IAEG,CAACC,EAAUE,EAAW"}
1
+ {"version":3,"file":"useImageLoadingStatus.cjs","sources":["../../../../src/components/image/useImageLoadingStatus.ts"],"sourcesContent":["import { 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":["callback","imageRef","useRef","imageLoaded","setImageLoaded","useState","useEffect","current","image","timeout","checkLoaded","complete","clearTimeout","window","setTimeout","doWhenImageLoaded"],"mappings":"uIAkBIA,IAEM,MAAAC,EAAWC,SAAyB,OACnCC,EAAaC,GAAkBC,YAAS,GAE/CC,OAAAA,EAAAA,WAAU,KACNL,EAASM,SAtBS,EAACC,EAAyBR,KAC5C,IAAAS,GAEJ,SAASC,IACL,GAAIF,EAAMG,SAGN,OAFAC,aAAaH,QACF,MAAAT,GAAAA,KAGLS,EAAAI,OAAOC,WAAWJ,EAAa,GAC7C,CAEYA,IAWJK,CAAkBd,EAASM,SAAS,KAChCH,GAAe,GACJ,MAAAJ,GAAAA,MACd,GACN,CAACA,IAEG,CAACC,EAAUE,EAAW"}
@@ -37,4 +37,4 @@ export * from './text-input/index.cjs';
37
37
  export * from './toast/index.cjs';
38
38
  export * from './toggle-switch/index.cjs';
39
39
  export * from './tooltip/index.cjs';
40
- export { ScreenReaderOnly, type ScreenReaderOnlyProps } from './ScreenReaderOnly.cjs';
40
+ export { ScreenReaderOnly, type ScreenReaderOnlyProps, } from './ScreenReaderOnly.cjs';
@@ -1 +1 @@
1
- {"version":3,"file":"FieldGroup.cjs","sources":["../../../../src/components/input-group/FieldGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { FC, FieldsetHTMLAttributes } from \"react\";\nimport { DataTestAutoId, Density } from \"../../core/types.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { PopupTip, PopupTipProps } from \"../tooltip/PopupTip.js\";\nimport { Label, LabelProps } from \"./Label.js\";\nimport { SupportLabel, SupportLabelProps } from \"./SupportLabel.js\";\n\nexport interface FieldGroupProps extends DataTestAutoId, FieldsetHTMLAttributes<HTMLFieldSetElement> {\n legend: string;\n labelProps?: Omit<LabelProps, \"children\" | \"density\">;\n supportLabelProps?: Omit<SupportLabelProps, \"id\" | \"errorLabel\" | \"helpLabel\" | \"density\">;\n tooltipProps?: PopupTipProps;\n className?: string;\n helpLabel?: string;\n errorLabel?: string;\n density?: Density;\n}\n\nexport const FieldGroup: FC<FieldGroupProps> = (props) => {\n const {\n id,\n legend,\n labelProps,\n supportLabelProps,\n tooltipProps,\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 ? \"error\" : helpLabel ? \"help\" : 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 {!tooltipProps && legend}\n {tooltipProps && (\n <>\n <span style={{ whiteSpace: \"normal\" }}>{legend}</span>\n {`\\u00A0`}\n <PopupTip {...tooltipProps} />\n </>\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":["props","id","legend","labelProps","supportLabelProps","tooltipProps","className","children","helpLabel","errorLabel","density","testAutoId","rest","uid","useId","generateSuffix","supportId","supportText","supportTextType","describedBy","jsxs","clsx","jsx","Label","Fragment","style","whiteSpace","PopupTip","SupportLabel","label","labelType"],"mappings":"uTAmBgDA,IACtC,MACFC,GAAAA,EACAC,OAAAA,EACAC,WAAAA,EACAC,kBAAAA,EACAC,aAAAA,EACAC,UAAAA,EACAC,SAAAA,EACAC,UAAAA,EACAC,WAAAA,EACAC,QAAAA,EACA,kBAAmBC,KAChBC,GACHZ,EAEEa,EAAMC,QAAMb,GAAM,kBAAmB,CAAEc,gBAAiBd,IACxDe,EAAY,GAAGH,kBAEfI,EAAcR,GAAcD,EAC5BU,EAAkBT,EAAa,QAAUD,EAAY,YAAS,EAE9DW,EAAcF,EAAcD,OAAY,EAG1C,OAAAI,EAAAA,KAAC,WAAA,CACGnB,GAAIY,EACJP,UAAWe,EAAAA,KAAK,kBAAmBf,GACnC,kBAAiBK,KACbC,EACJ,mBAAkBO,EAClB,eAAcT,EAEdH,SAAA,CAAAe,EAAAA,IAAC,UAAOhB,UAAU,0BACdC,gBAACgB,EAAAA,MAAO,IAAGpB,EAAYO,QAAAA,EAClBH,SAAA,EAACF,GAAgBH,EACjBG,GAEOe,EAAAA,KAAAI,WAAA,CAAAjB,SAAA,CAAAe,MAAC,QAAKG,MAAO,CAAEC,WAAY,UAAanB,SAAOL,IAC9C,IACDoB,EAAAA,IAACK,EAAUA,SAAA,IAAGtB,YAK7BE,GACCC,GAAaC,IACXa,EAAAA,IAACM,EAAAA,aAAA,IACOxB,EACJyB,MAAOZ,EACPa,UAAWZ,EACXjB,GAAIe,EACJN,QAAAA,MACJ"}
1
+ {"version":3,"file":"FieldGroup.cjs","sources":["../../../../src/components/input-group/FieldGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { FC, FieldsetHTMLAttributes } from \"react\";\nimport { DataTestAutoId, Density } from \"../../core/types.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { PopupTip, PopupTipProps } from \"../tooltip/PopupTip.js\";\nimport { Label, LabelProps } from \"./Label.js\";\nimport { SupportLabel, SupportLabelProps } from \"./SupportLabel.js\";\n\nexport interface FieldGroupProps\n extends DataTestAutoId,\n FieldsetHTMLAttributes<HTMLFieldSetElement> {\n legend: string;\n labelProps?: Omit<LabelProps, \"children\" | \"density\">;\n supportLabelProps?: Omit<\n SupportLabelProps,\n \"id\" | \"errorLabel\" | \"helpLabel\" | \"density\"\n >;\n tooltipProps?: PopupTipProps;\n className?: string;\n helpLabel?: string;\n errorLabel?: string;\n density?: Density;\n}\n\nexport const FieldGroup: FC<FieldGroupProps> = (props) => {\n const {\n id,\n legend,\n labelProps,\n supportLabelProps,\n tooltipProps,\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 {!tooltipProps && legend}\n {tooltipProps && (\n <>\n <span style={{ whiteSpace: \"normal\" }}>\n {legend}\n </span>\n {`\\u00A0`}\n <PopupTip {...tooltipProps} />\n </>\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":["props","id","legend","labelProps","supportLabelProps","tooltipProps","className","children","helpLabel","errorLabel","density","testAutoId","rest","uid","useId","generateSuffix","supportId","supportText","supportTextType","describedBy","jsxs","clsx","jsx","Label","Fragment","style","whiteSpace","PopupTip","SupportLabel","label","labelType"],"mappings":"uTAwBgDA,IACtC,MACFC,GAAAA,EACAC,OAAAA,EACAC,WAAAA,EACAC,kBAAAA,EACAC,aAAAA,EACAC,UAAAA,EACAC,SAAAA,EACAC,UAAAA,EACAC,WAAAA,EACAC,QAAAA,EACA,kBAAmBC,KAChBC,GACHZ,EAEEa,EAAMC,QAAMb,GAAM,kBAAmB,CAAEc,gBAAiBd,IACxDe,EAAY,GAAGH,kBAEfI,EAAcR,GAAcD,EAC5BU,EAAkBT,EAClB,QACAD,EACA,YACA,EAEAW,EAAcF,EAAcD,OAAY,EAG1C,OAAAI,EAAAA,KAAC,WAAA,CACGnB,GAAIY,EACJP,UAAWe,EAAAA,KAAK,kBAAmBf,GACnC,kBAAiBK,KACbC,EACJ,mBAAkBO,EAClB,eAAcT,EAEdH,SAAA,CAAAe,EAAAA,IAAC,UAAOhB,UAAU,0BACdC,gBAACgB,EAAAA,MAAO,IAAGpB,EAAYO,QAAAA,EAClBH,SAAA,EAACF,GAAgBH,EACjBG,GAEOe,EAAAA,KAAAI,WAAA,CAAAjB,SAAA,CAAAe,MAAC,QAAKG,MAAO,CAAEC,WAAY,UACtBnB,SACLL,IACC,IACDoB,EAAAA,IAACK,EAAUA,SAAA,IAAGtB,YAK7BE,GACCC,GAAaC,IACXa,EAAAA,IAACM,EAAAA,aAAA,IACOxB,EACJyB,MAAOZ,EACPa,UAAWZ,EACXjB,GAAIe,EACJN,QAAAA,MACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputGroup.cjs","sources":["../../../../src/components/input-group/InputGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef, type CSSProperties, type ReactNode } from \"react\";\nimport { DataTestAutoId, Density, WithOptionalChildren } from \"../../core/types.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { PopupTip, PopupTipProps } from \"../tooltip/PopupTip.js\";\nimport { Label, LabelProps } from \"./Label.js\";\nimport { SupportLabel, SupportLabelProps } from \"./SupportLabel.js\";\n\nexport interface InputProps {\n \"aria-describedby\"?: string;\n \"aria-invalid\"?: boolean;\n id?: string;\n}\n\nexport type InputGroupProps = WithOptionalChildren &\n DataTestAutoId & {\n id?: string;\n className?: string;\n \"data-testid\"?: string;\n density?: Density;\n errorLabel?: ReactNode;\n helpLabel?: ReactNode;\n inline?: boolean;\n label: ReactNode;\n labelProps?: Omit<LabelProps, \"children\" | \"density\">;\n supportLabelProps?: Omit<SupportLabelProps, \"id\" | \"errorLabel\" | \"helpLabel\" | \"density\">;\n tooltipProps?: PopupTipProps;\n style?: CSSProperties;\n render?: (props: InputProps) => JSX.Element;\n };\n\nexport const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>((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 tooltipProps,\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 supportText = errorLabel || helpLabel;\n const supportTextType = errorLabel ? \"error\" : helpLabel ? \"help\" : undefined;\n\n const describedBy = supportText ? supportId : undefined;\n\n const inputProps: InputProps = {\n \"aria-describedby\": describedBy,\n \"aria-invalid\": Boolean(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={{ whiteSpace: tooltipProps ? \"nowrap\" : undefined, ...labelProps?.style }}\n density={density}\n >\n {!tooltipProps && label}\n {tooltipProps && (\n <>\n <span style={{ whiteSpace: \"normal\" }}>{label}</span>\n {`\\u00A0`}\n <PopupTip {...tooltipProps} />\n </>\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\nInputGroup.displayName = \"InputGroup\";\n"],"names":["InputGroup","forwardRef","props","ref","className","children","density","errorLabel","helpLabel","inline","label","labelProps","render","supportLabelProps","tooltipProps","id","rest","uid","useId","generateSuffix","supportId","supportText","supportTextType","inputProps","renderInput","input","React","Children","toArray","isValidElement","cloneElement","jsxs","clsx","Label","standAlone","htmlFor","srOnly","style","whiteSpace","Fragment","jsx","PopupTip","SupportLabel","labelType","displayName"],"mappings":"uTA+BaA,EAAaC,EAAAA,YAA4C,CAACC,EAAOC,KACpE,MACFC,UAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,UAAAA,EACAC,OAAAA,EACAC,MAAAA,EACAC,WAAAA,EACAC,OAAAA,EACAC,kBAAAA,EACAC,aAAAA,EACAC,GAAAA,KACGC,GACHd,EAEEe,EAAMC,QAAMH,GAAM,YAAa,CAAEI,gBAAiBJ,IAClDK,EAAYF,QAAM,qBAElBG,EAAcd,GAAcC,EAC5Bc,EAAkBf,EAAa,QAAUC,EAAY,YAAS,EAI9De,EAAyB,CAC3B,mBAHgBF,EAAcD,OAAY,EAI1C,iBAAwBb,QAAqB,EAC7CQ,GAAIE,GAGFO,EAAcZ,EACd,IAAMA,EAAOW,GACb,KACI,MAAME,EAAQC,EAAMC,SAASC,QAAQ1B,EAAMG,UAAU,GAErD,GAAKqB,EAAMG,eAA2BJ,GAE/B,OAAAC,EAAMI,aAAyBL,EAAO,IACtCF,KACAE,EAAMvB,OACZ,EAIP,OAAA6B,EAAAA,KAAC,MAAA,CACG5B,IAAAA,EACAC,UAAW4B,EAAAA,KAAK5B,EAAW,kBAAmB,CAC1C,0BAA2BK,IAE/B,eAAcH,KACVU,EAEJX,SAAA,CAAA0B,EAAAA,KAACE,EAAAA,MAAA,CACGC,YAAU,EACVC,QAASlB,EACTmB,OAAQ3B,KACJE,EACJ0B,MAAO,CAAEC,WAAYxB,EAAe,cAAW,KAAc,MAAAH,OAAAA,EAAAA,EAAY0B,OACzE/B,QAAAA,EAECD,SAAA,EAACS,GAAgBJ,EACjBI,GAEOiB,EAAAA,KAAAQ,WAAA,CAAAlC,SAAA,CAAAmC,MAAC,QAAKH,MAAO,CAAEC,WAAY,UAAajC,SAAMK,IAC7C,IACD8B,EAAAA,IAACC,EAAUA,SAAA,IAAG3B,UAIzBU,IACDgB,EAAAA,IAACE,EAAAA,aAAA,CACGN,OAAQ3B,KACJI,EACJH,MAAOW,EACPsB,UAAWrB,EACXP,GAAIK,EACJd,QAAAA,MACJ,IAKZN,EAAW4C,YAAc"}
1
+ {"version":3,"file":"InputGroup.cjs","sources":["../../../../src/components/input-group/InputGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef, type CSSProperties, type ReactNode } from \"react\";\nimport {\n DataTestAutoId,\n Density,\n WithOptionalChildren,\n} from \"../../core/types.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { PopupTip, PopupTipProps } from \"../tooltip/PopupTip.js\";\nimport { Label, LabelProps } from \"./Label.js\";\nimport { SupportLabel, SupportLabelProps } from \"./SupportLabel.js\";\n\nexport interface InputProps {\n \"aria-describedby\"?: string;\n \"aria-invalid\"?: boolean;\n id?: string;\n}\n\nexport type InputGroupProps = WithOptionalChildren &\n DataTestAutoId & {\n id?: string;\n className?: string;\n \"data-testid\"?: string;\n density?: Density;\n errorLabel?: ReactNode;\n helpLabel?: ReactNode;\n inline?: boolean;\n label: ReactNode;\n labelProps?: Omit<LabelProps, \"children\" | \"density\">;\n supportLabelProps?: Omit<\n SupportLabelProps,\n \"id\" | \"errorLabel\" | \"helpLabel\" | \"density\"\n >;\n tooltipProps?: PopupTipProps;\n style?: CSSProperties;\n render?: (props: InputProps) => JSX.Element;\n };\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 tooltipProps,\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 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\": Boolean(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: tooltipProps ? \"nowrap\" : undefined,\n ...labelProps?.style,\n }}\n density={density}\n >\n {!tooltipProps && label}\n {tooltipProps && (\n <>\n <span style={{ whiteSpace: \"normal\" }}>\n {label}\n </span>\n {`\\u00A0`}\n <PopupTip {...tooltipProps} />\n </>\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","tooltipProps","id","rest","uid","useId","generateSuffix","supportId","supportText","supportTextType","inputProps","renderInput","input","React","Children","toArray","isValidElement","cloneElement","jsxs","clsx","Label","standAlone","htmlFor","srOnly","style","whiteSpace","Fragment","jsx","PopupTip","SupportLabel","labelType","displayName"],"mappings":"uTAsCaA,EAAaC,EAAAA,YACtB,CAACC,EAAOC,KACE,MACFC,UAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,UAAAA,EACAC,OAAAA,EACAC,MAAAA,EACAC,WAAAA,EACAC,OAAAA,EACAC,kBAAAA,EACAC,aAAAA,EACAC,GAAAA,KACGC,GACHd,EAEEe,EAAMC,QAAMH,GAAM,YAAa,CAAEI,gBAAiBJ,IAClDK,EAAYF,QAAM,qBAElBG,EAAcd,GAAcC,EAC5Bc,EAAkBf,EAClB,QACAC,EACA,YACA,EAIAe,EAAyB,CAC3B,mBAHgBF,EAAcD,OAAY,EAI1C,iBAAwBb,QAAqB,EAC7CQ,GAAIE,GAGFO,EAAcZ,EACd,IAAMA,EAAOW,GACb,KACI,MAAME,EAAQC,EAAMC,SAASC,QAAQ1B,EAAMG,UAAU,GAErD,GAAKqB,EAAMG,eAA2BJ,GAE/B,OAAAC,EAAMI,aAAyBL,EAAO,IACtCF,KACAE,EAAMvB,OACZ,EAIP,OAAA6B,EAAAA,KAAC,MAAA,CACG5B,IAAAA,EACAC,UAAW4B,EAAAA,KAAK5B,EAAW,kBAAmB,CAC1C,0BAA2BK,IAE/B,eAAcH,KACVU,EAEJX,SAAA,CAAA0B,EAAAA,KAACE,EAAAA,MAAA,CACGC,YAAU,EACVC,QAASlB,EACTmB,OAAQ3B,KACJE,EACJ0B,MAAO,CACHC,WAAYxB,EAAe,cAAW,KACnC,MAAAH,OAAAA,EAAAA,EAAY0B,OAEnB/B,QAAAA,EAECD,SAAA,EAACS,GAAgBJ,EACjBI,GAEOiB,EAAAA,KAAAQ,WAAA,CAAAlC,SAAA,CAAAmC,MAAC,QAAKH,MAAO,CAAEC,WAAY,UACtBjC,SACLK,IACC,IACD8B,EAAAA,IAACC,EAAUA,SAAA,IAAG3B,UAIzBU,IACDgB,EAAAA,IAACE,EAAAA,aAAA,CACGN,OAAQ3B,KACJI,EACJH,MAAOW,EACPsB,UAAWrB,EACXP,GAAIK,EACJd,QAAAA,MACJ,IAMhBN,EAAW4C,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Label.cjs","sources":["../../../../src/components/input-group/Label.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type CSSProperties, type FC } from \"react\";\nimport { Density, WithChildren } from \"../../core/types.js\";\n\nexport type LabelVariant = \"small\" | \"medium\" | \"large\";\n\nexport interface LabelProps extends WithChildren {\n id?: string;\n variant?: LabelVariant;\n density?: Density;\n srOnly?: boolean;\n standAlone?: boolean;\n htmlFor?: string;\n className?: string;\n style?: CSSProperties;\n}\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 {...rest} className={labelClassNames} htmlFor={htmlFor} data-density={density}>\n {children}\n </C>\n );\n};\n"],"names":["variant","density","srOnly","children","standAlone","htmlFor","className","rest","labelClassNames","clsx","C","process","env","NODE_ENV","console","warn","jsx"],"mappings":"2KAiBqC,EACjCA,QAAAA,EAAU,QACVC,QAAAA,EACAC,OAAAA,EACAC,SAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,UAAAA,EAAY,MACTC,MAEG,MAAAC,EAAkBC,EAAAA,KAAK,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,MAACN,MAAMH,EAAMD,UAAWE,EAAiBH,QAAAA,EAAkB,eAAcJ,EACpEE,SAAAA,GACL"}
1
+ {"version":3,"file":"Label.cjs","sources":["../../../../src/components/input-group/Label.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type CSSProperties, type FC } from \"react\";\nimport { Density, WithChildren } from \"../../core/types.js\";\n\nexport type LabelVariant = \"small\" | \"medium\" | \"large\";\n\nexport interface LabelProps extends WithChildren {\n id?: string;\n variant?: LabelVariant;\n density?: Density;\n srOnly?: boolean;\n standAlone?: boolean;\n htmlFor?: string;\n className?: string;\n style?: CSSProperties;\n}\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":["variant","density","srOnly","children","standAlone","htmlFor","className","rest","labelClassNames","clsx","C","process","env","NODE_ENV","console","warn","jsx"],"mappings":"2KAiBqC,EACjCA,QAAAA,EAAU,QACVC,QAAAA,EACAC,OAAAA,EACAC,SAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,UAAAA,EAAY,MACTC,MAEG,MAAAC,EAAkBC,EAAAA,KAAK,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,EAAAA,IAACN,EAAA,IACOH,EACJD,UAAWE,EACXH,QAAAA,EACA,eAAcJ,EAEbE,SAAAA,GAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SupportLabel.cjs","sources":["../../../../src/components/input-group/SupportLabel.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC, type ReactNode } from \"react\";\nimport { Density } from \"../../core/types.js\";\nimport { ErrorIcon, SuccessIcon, WarningIcon } from \"../icon/index.js\";\n\nexport type SupportLabelType = \"help\" | \"error\" | \"warning\" | \"success\";\n\nexport interface SupportLabelProps {\n /**\n * En ID er påkrevd for å kunne referere til SupportLabel med aria-describedby.\n *\n * @example\n * ```tsx\n * const uid = useId();\n * const supportId = useId();\n * const hasSupportText = helpLabel || errorLabel;\n * const describedBy = hasSupportText ? supportId : undefined;\n *\n * return (\n * <div>\n * <Label standAlone htmlFor={uid}>\n * Velg en tekst\n * </Label>\n * <select\n * id={uid}\n * aria-describedby={describedBy}\n * >\n * <option value=\"e\">Example</option>\n * </select>\n * <SupportLabel\n * id={supportId}\n * label={errorLabel}\n * labelType=\"error\"\n * density={density}\n * />\n * </div>\n * );\n * ```\n */\n id: string;\n /**\n * @deprecated Bruk `label` for å få samme resultat.\n */\n helpLabel?: ReactNode;\n /**\n * @deprecated Bruk `label` og `labelType=\"warning\"` for å få samme resultat.\n */\n errorLabel?: ReactNode;\n label?: ReactNode;\n /**\n * Bestemmer hvilket ikon som skal vises:\n *\n * - \"help\" viser ikke noe ikon\n * - \"warning\" viser WarningIcon, det som tidligere ble vist med `errorLabel`\n * - \"error\" viser ErrorIcon\n * - \"success\" viser SuccessIcon\n *\n * @default \"help\"\n */\n labelType?: SupportLabelType;\n density?: Density;\n className?: string;\n srOnly?: boolean;\n}\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 id={id} className={componentClassName} {...restProps} data-density={density}>\n <Icon variant=\"small\" className=\"jkl-form-support-label__icon\" />\n <span>{errorLabel || helpLabel || label}</span>\n </span>\n );\n};\n"],"names":["id","helpLabel","errorLabel","label","labelType","density","className","srOnly","rest","hasLabel","isHelp","isWarning","isError","isSuccess","componentClassName","clsx","restProps","Icon","ErrorIcon","SuccessIcon","WarningIcon","jsxs","children","jsx","variant"],"mappings":"mpDAiEmD,EAC/CA,GAAAA,EACAC,UAAAA,EACAC,WAAAA,EACAC,MAAAA,EACAC,UAAAA,EAAY,OACZC,QAAAA,EACAC,UAAAA,EACAC,OAAAA,KACGC,MAEG,MAAAC,EAAWP,GAAcD,GAAaE,EAEtCO,EAAuB,SAAdN,GAAyBH,IAAcC,EAChDS,EAA0B,YAAdP,GAA2BF,EACvCU,EAAwB,UAAdR,EACVS,EAA0B,YAAdT,EAEZU,EAAqBL,EACrBM,OAAK,yBAA0BT,EAAW,CACtC,kCAAmCC,EACnC,+BAAgCG,EAChC,gCAAiCE,EACjC,kCAAmCD,EACnC,kCAAmCE,IAEvC,iCAEAG,EAAYP,EAAWD,EAAO,GAE9BS,EAAOL,EAAUM,EAAAA,UAAYL,EAAYM,EAAAA,YAAcC,EAAAA,YAGzD,OAAAC,OAAC,QAAKrB,GAAAA,EAAQM,UAAWQ,KAAwBE,EAAW,eAAcX,EACtEiB,SAAA,CAAAC,EAAAA,IAACN,EAAK,CAAAO,QAAQ,QAAQlB,UAAU,iCAC/BiB,EAAAA,IAAA,OAAA,CAAMD,SAAcpB,GAAAD,GAAaE,MACtC"}
1
+ {"version":3,"file":"SupportLabel.cjs","sources":["../../../../src/components/input-group/SupportLabel.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC, type ReactNode } from \"react\";\nimport { Density } from \"../../core/types.js\";\nimport { ErrorIcon, SuccessIcon, WarningIcon } from \"../icon/index.js\";\n\nexport type SupportLabelType = \"help\" | \"error\" | \"warning\" | \"success\";\n\nexport interface SupportLabelProps {\n /**\n * En ID er påkrevd for å kunne referere til SupportLabel med aria-describedby.\n *\n * @example\n * ```tsx\n * const uid = useId();\n * const supportId = useId();\n * const hasSupportText = helpLabel || errorLabel;\n * const describedBy = hasSupportText ? supportId : undefined;\n *\n * return (\n * <div>\n * <Label standAlone htmlFor={uid}>\n * Velg en tekst\n * </Label>\n * <select\n * id={uid}\n * aria-describedby={describedBy}\n * >\n * <option value=\"e\">Example</option>\n * </select>\n * <SupportLabel\n * id={supportId}\n * label={errorLabel}\n * labelType=\"error\"\n * density={density}\n * />\n * </div>\n * );\n * ```\n */\n id: string;\n /**\n * @deprecated Bruk `label` for å få samme resultat.\n */\n helpLabel?: ReactNode;\n /**\n * @deprecated Bruk `label` og `labelType=\"warning\"` for å få samme resultat.\n */\n errorLabel?: ReactNode;\n label?: ReactNode;\n /**\n * Bestemmer hvilket ikon som skal vises:\n *\n * - \"help\" viser ikke noe ikon\n * - \"warning\" viser WarningIcon, det som tidligere ble vist med `errorLabel`\n * - \"error\" viser ErrorIcon\n * - \"success\" viser SuccessIcon\n *\n * @default \"help\"\n */\n labelType?: SupportLabelType;\n density?: Density;\n className?: string;\n srOnly?: boolean;\n}\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":["id","helpLabel","errorLabel","label","labelType","density","className","srOnly","rest","hasLabel","isHelp","isWarning","isError","isSuccess","componentClassName","clsx","restProps","Icon","ErrorIcon","SuccessIcon","WarningIcon","jsxs","children","jsx","variant"],"mappings":"mpDAiEmD,EAC/CA,GAAAA,EACAC,UAAAA,EACAC,WAAAA,EACAC,MAAAA,EACAC,UAAAA,EAAY,OACZC,QAAAA,EACAC,UAAAA,EACAC,OAAAA,KACGC,MAEG,MAAAC,EAAWP,GAAcD,GAAaE,EAEtCO,EAAuB,SAAdN,GAAyBH,IAAcC,EAChDS,EAA0B,YAAdP,GAA2BF,EACvCU,EAAwB,UAAdR,EACVS,EAA0B,YAAdT,EAEZU,EAAqBL,EACrBM,OAAK,yBAA0BT,EAAW,CACtC,kCAAmCC,EACnC,+BAAgCG,EAChC,gCAAiCE,EACjC,kCAAmCD,EACnC,kCAAmCE,IAEvC,iCAEAG,EAAYP,EAAWD,EAAO,GAE9BS,EAAOL,EAAUM,EAAAA,UAAYL,EAAYM,EAAAA,YAAcC,EAAAA,YAGzD,OAAAC,EAAAA,KAAC,OAAA,CACGrB,GAAAA,EACAM,UAAWQ,KACPE,EACJ,eAAcX,EAEdiB,SAAA,CAAAC,EAAAA,IAACN,EAAK,CAAAO,QAAQ,QAAQlB,UAAU,iCAC/BiB,EAAAA,IAAA,OAAA,CAAMD,SAAcpB,GAAAD,GAAaE,MAAM"}
@@ -1,4 +1,4 @@
1
1
  export { FieldGroup, type FieldGroupProps } from './FieldGroup.cjs';
2
- export { InputGroup, type InputGroupProps, type InputProps } from './InputGroup.cjs';
2
+ export { InputGroup, type InputGroupProps, type InputProps, } from './InputGroup.cjs';
3
3
  export { Label, type LabelProps, type LabelVariant } from './Label.cjs';
4
- export { SupportLabel, type SupportLabelProps, type SupportLabelType } from './SupportLabel.cjs';
4
+ export { SupportLabel, type SupportLabelProps, type SupportLabelType, } from './SupportLabel.cjs';
@@ -1 +1 @@
1
- {"version":3,"file":"Link.cjs","sources":["../../../../src/components/link/Link.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React from \"react\";\nimport { PolymorphicPropsWithRef, PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\n\nexport type LinkProps<ElementType extends React.ElementType> = PolymorphicPropsWithRef<\n ElementType,\n {\n external?: boolean;\n }\n>;\n\nexport type LinkComponent = <ElementType extends React.ElementType = \"a\">(\n props: LinkProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const Link = React.forwardRef(function Link<ElementType extends React.ElementType = \"a\">(\n props: LinkProps<ElementType>,\n ref?: PolymorphicRef<ElementType>,\n) {\n const { external = false, className = \"\", children, as = \"a\", ...rest } = props;\n const Component = as;\n\n return (\n <Component\n ref={ref}\n className={clsx(\"jkl-link\", className, {\n \"jkl-link--external\": external,\n })}\n {...rest}\n >\n {children}\n </Component>\n );\n});\n"],"names":["Link","forwardRef","props","ref","external","className","children","as","rest","Component","jsx","clsx"],"mappings":"6JAeaA,mBAAaC,YAAW,SACjCC,EACAC,GAEM,MAAEC,SAAAA,GAAW,EAAOC,UAAAA,EAAY,GAAIC,SAAAA,EAAUC,GAAAA,EAAK,OAAQC,GAASN,EACpEO,EAAYF,EAGd,OAAAG,EAAAA,IAACD,EAAA,CACGN,IAAAA,EACAE,UAAWM,EAAAA,KAAK,WAAYN,EAAW,CACnC,qBAAsBD,OAEtBI,EAEHF,SAAAA,GAGb"}
1
+ {"version":3,"file":"Link.cjs","sources":["../../../../src/components/link/Link.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React from \"react\";\nimport {\n PolymorphicPropsWithRef,\n PolymorphicRef,\n} from \"../../utilities/polymorphism/polymorphism.js\";\n\nexport type LinkProps<ElementType extends React.ElementType> =\n PolymorphicPropsWithRef<\n ElementType,\n {\n external?: boolean;\n }\n >;\n\nexport type LinkComponent = <ElementType extends React.ElementType = \"a\">(\n props: LinkProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const Link = React.forwardRef(function Link<\n ElementType extends React.ElementType = \"a\",\n>(props: LinkProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n external = false,\n className = \"\",\n children,\n as = \"a\",\n ...rest\n } = props;\n const Component = as;\n\n return (\n <Component\n ref={ref}\n className={clsx(\"jkl-link\", className, {\n \"jkl-link--external\": external,\n })}\n {...rest}\n >\n {children}\n </Component>\n );\n});\n"],"names":["Link","forwardRef","props","ref","external","className","children","as","rest","Component","jsx","clsx"],"mappings":"6JAmBaA,mBAAaC,YAAW,SAEnCC,EAA+BC,GACvB,MACFC,SAAAA,GAAW,EACXC,UAAAA,EAAY,GACZC,SAAAA,EACAC,GAAAA,EAAK,OACFC,GACHN,EACEO,EAAYF,EAGd,OAAAG,EAAAA,IAACD,EAAA,CACGN,IAAAA,EACAE,UAAWM,EAAAA,KAAK,WAAYN,EAAW,CACnC,qBAAsBD,OAEtBI,EAEHF,SAAAA,GAGb"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavLink.cjs","sources":["../../../../src/components/link/NavLink.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React from \"react\";\nimport { PolymorphicPropsWithRef, PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\n\nexport type NavLinkProps<ElementType extends React.ElementType> = PolymorphicPropsWithRef<\n ElementType,\n {\n active?: boolean;\n back?: boolean;\n }\n>;\n\nexport type LinkComponent = <ElementType extends React.ElementType = \"a\">(\n props: NavLinkProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const NavLink = React.forwardRef(function NavLink<ElementType extends React.ElementType = \"a\">(\n props: NavLinkProps<ElementType>,\n ref?: PolymorphicRef<ElementType>,\n) {\n const { active = false, back = false, className, children, as = \"a\", ...rest } = props;\n const Component = as;\n\n return (\n <Component\n ref={ref}\n className={clsx(\n \"jkl-nav-link\",\n {\n \"jkl-nav-link--active\": active,\n \"jkl-nav-link--back\": back,\n },\n className,\n )}\n {...rest}\n >\n {children}\n </Component>\n );\n});\n"],"names":["NavLink","forwardRef","props","ref","active","back","className","children","as","rest","Component","jsx","clsx"],"mappings":"6JAgBaA,mBAAgBC,YAAW,SACpCC,EACAC,GAEM,MAAEC,OAAAA,GAAS,EAAOC,KAAAA,GAAO,EAAOC,UAAAA,EAAWC,SAAAA,EAAUC,GAAAA,EAAK,OAAQC,GAASP,EAC3EQ,EAAYF,EAGd,OAAAG,EAAAA,IAACD,EAAA,CACGP,IAAAA,EACAG,UAAWM,EAAAA,KACP,eACA,CACI,uBAAwBR,EACxB,qBAAsBC,GAE1BC,MAEAG,EAEHF,SAAAA,GAGb"}
1
+ {"version":3,"file":"NavLink.cjs","sources":["../../../../src/components/link/NavLink.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React from \"react\";\nimport {\n PolymorphicPropsWithRef,\n PolymorphicRef,\n} from \"../../utilities/polymorphism/polymorphism.js\";\n\nexport type NavLinkProps<ElementType extends React.ElementType> =\n PolymorphicPropsWithRef<\n ElementType,\n {\n active?: boolean;\n back?: boolean;\n }\n >;\n\nexport type LinkComponent = <ElementType extends React.ElementType = \"a\">(\n props: NavLinkProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const NavLink = React.forwardRef(function NavLink<\n ElementType extends React.ElementType = \"a\",\n>(props: NavLinkProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n active = false,\n back = false,\n className,\n children,\n as = \"a\",\n ...rest\n } = props;\n const Component = as;\n\n return (\n <Component\n ref={ref}\n className={clsx(\n \"jkl-nav-link\",\n {\n \"jkl-nav-link--active\": active,\n \"jkl-nav-link--back\": back,\n },\n className,\n )}\n {...rest}\n >\n {children}\n </Component>\n );\n});\n"],"names":["NavLink","forwardRef","props","ref","active","back","className","children","as","rest","Component","jsx","clsx"],"mappings":"6JAoBaA,mBAAgBC,YAAW,SAEtCC,EAAkCC,GAC1B,MACFC,OAAAA,GAAS,EACTC,KAAAA,GAAO,EACPC,UAAAA,EACAC,SAAAA,EACAC,GAAAA,EAAK,OACFC,GACHP,EACEQ,EAAYF,EAGd,OAAAG,EAAAA,IAACD,EAAA,CACGP,IAAAA,EACAG,UAAWM,EAAAA,KACP,eACA,CACI,uBAAwBR,EACxB,qBAAsBC,GAE1BC,MAEAG,EAEHF,SAAAA,GAGb"}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkList.cjs","sources":["../../../../src/components/link-list/LinkList.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { ComponentProps, FC } from \"react\";\nimport { PolymorphicPropsWithRef, PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ArrowRightIcon } from \"../icon/index.js\";\n\nconst Item: FC<ComponentProps<\"li\">> = ({ className, ...rest }) => {\n return <li className={clsx(\"jkl-link-list-item\", className)} {...rest}></li>;\n};\n\ntype LinkComponent = <ElementType extends React.ElementType = \"a\">(\n props: PolymorphicPropsWithRef<ElementType>,\n) => React.ReactElement | null;\n\nconst Link = React.forwardRef(function LinkListLink<ElementType extends React.ElementType = \"a\">(\n props: PolymorphicPropsWithRef<ElementType>,\n ref: PolymorphicRef<ElementType>,\n) {\n const { as: Component = \"a\", children, className, ...rest } = props;\n\n return (\n <Component className={clsx(\"jkl-link-list-link\", className)} ref={ref} {...rest}>\n {children}\n <ArrowRightIcon className=\"jkl-link-list-link__arrow\" />\n </Component>\n );\n}) as LinkComponent;\n\ntype UnorderedLinkListProps = React.HTMLAttributes<HTMLUListElement> & {\n variant: \"unordered\";\n};\n\ntype OrderedLinkListProps = React.HTMLAttributes<HTMLOListElement> & {\n variant: \"ordered\";\n};\n\ntype LinkListProps = UnorderedLinkListProps | OrderedLinkListProps;\n\nexport const LinkList = ({ variant, className, ...rest }: LinkListProps): React.JSX.Element => {\n const Component = variant === \"ordered\" ? \"ol\" : \"ul\";\n\n return (\n <Component\n className={clsx(\"jkl-link-list\", className, {\n \"jkl-link-list--ordered\": variant === \"ordered\",\n \"jkl-link-list--unordered\": variant === \"unordered\",\n })}\n {...rest}\n />\n );\n};\n\nLinkList.Link = Link;\nLinkList.Item = Item;\n"],"names":["Link","React","forwardRef","props","ref","as","Component","children","className","rest","jsxs","clsx","jsx","ArrowRightIcon","LinkList","variant","Item"],"mappings":"uoDAKA,MAQMA,EAAOC,EAAMC,YAAW,SAC1BC,EACAC,GAEM,MAAEC,GAAIC,EAAY,IAAKC,SAAAA,EAAUC,UAAAA,KAAcC,GAASN,EAG1D,OAAAO,OAACJ,GAAUE,UAAWG,EAAAA,KAAK,qBAAsBH,GAAYJ,IAAAA,KAAcK,EACtEF,SAAA,CAAAA,EACDK,EAAAA,IAACC,EAAeA,eAAA,CAAAL,UAAU,gCAGtC,IAYaM,EAAW,EAAGC,QAAAA,EAASP,UAAAA,KAAcC,MACxC,MAAAH,EAAwB,YAAZS,EAAwB,KAAO,KAG7C,OAAAH,EAAAA,IAACN,EAAA,CACGE,UAAWG,EAAAA,KAAK,gBAAiBH,EAAW,CACxC,yBAAsC,YAAZO,EAC1B,2BAAwC,cAAZA,OAE5BN,GAAA,EAKhBK,EAASd,KAAOA,EAChBc,EAASE,KA/C8B,EAAGR,UAAAA,KAAcC,KAC7CG,EAAAA,IAAC,MAAGJ,UAAWG,EAAAA,KAAK,qBAAsBH,MAAgBC"}
1
+ {"version":3,"file":"LinkList.cjs","sources":["../../../../src/components/link-list/LinkList.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { ComponentProps, FC } from \"react\";\nimport {\n PolymorphicPropsWithRef,\n PolymorphicRef,\n} from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ArrowRightIcon } from \"../icon/index.js\";\n\nconst Item: FC<ComponentProps<\"li\">> = ({ className, ...rest }) => {\n return (\n <li className={clsx(\"jkl-link-list-item\", className)} {...rest}></li>\n );\n};\n\ntype LinkComponent = <ElementType extends React.ElementType = \"a\">(\n props: PolymorphicPropsWithRef<ElementType>,\n) => React.ReactElement | null;\n\nconst Link = React.forwardRef(function LinkListLink<\n ElementType extends React.ElementType = \"a\",\n>(\n props: PolymorphicPropsWithRef<ElementType>,\n ref: PolymorphicRef<ElementType>,\n) {\n const { as: Component = \"a\", children, className, ...rest } = props;\n\n return (\n <Component\n className={clsx(\"jkl-link-list-link\", className)}\n ref={ref}\n {...rest}\n >\n {children}\n <ArrowRightIcon className=\"jkl-link-list-link__arrow\" />\n </Component>\n );\n}) as LinkComponent;\n\ntype UnorderedLinkListProps = React.HTMLAttributes<HTMLUListElement> & {\n variant: \"unordered\";\n};\n\ntype OrderedLinkListProps = React.HTMLAttributes<HTMLOListElement> & {\n variant: \"ordered\";\n};\n\ntype LinkListProps = UnorderedLinkListProps | OrderedLinkListProps;\n\nexport const LinkList = ({\n variant,\n className,\n ...rest\n}: LinkListProps): React.JSX.Element => {\n const Component = variant === \"ordered\" ? \"ol\" : \"ul\";\n\n return (\n <Component\n className={clsx(\"jkl-link-list\", className, {\n \"jkl-link-list--ordered\": variant === \"ordered\",\n \"jkl-link-list--unordered\": variant === \"unordered\",\n })}\n {...rest}\n />\n );\n};\n\nLinkList.Link = Link;\nLinkList.Item = Item;\n"],"names":["Link","React","forwardRef","props","ref","as","Component","children","className","rest","jsxs","clsx","jsx","ArrowRightIcon","LinkList","variant","Item"],"mappings":"uoDAQA,MAUMA,EAAOC,EAAMC,YAAW,SAG1BC,EACAC,GAEM,MAAEC,GAAIC,EAAY,IAAKC,SAAAA,EAAUC,UAAAA,KAAcC,GAASN,EAG1D,OAAAO,EAAAA,KAACJ,EAAA,CACGE,UAAWG,EAAAA,KAAK,qBAAsBH,GACtCJ,IAAAA,KACIK,EAEHF,SAAA,CAAAA,EACDK,EAAAA,IAACC,EAAeA,eAAA,CAAAL,UAAU,gCAGtC,IAYaM,EAAW,EACpBC,QAAAA,EACAP,UAAAA,KACGC,MAEG,MAAAH,EAAwB,YAAZS,EAAwB,KAAO,KAG7C,OAAAH,EAAAA,IAACN,EAAA,CACGE,UAAWG,EAAAA,KAAK,gBAAiBH,EAAW,CACxC,yBAAsC,YAAZO,EAC1B,2BAAwC,cAAZA,OAE5BN,GAAA,EAKhBK,EAASd,KAAOA,EAChBc,EAASE,KA3D8B,EAAGR,UAAAA,KAAcC,KAEhDG,EAAAA,IAAC,MAAGJ,UAAWG,EAAAA,KAAK,qBAAsBH,MAAgBC"}
@@ -12,7 +12,7 @@ export type { SkeletonInputProps } from './skeletons/SkeletonInput.cjs';
12
12
  export { SkeletonInput } from './skeletons/SkeletonInput.cjs';
13
13
  export type { SkeletonRadioButtonGroupProps } from './skeletons/SkeletonRadioButtonGroup.cjs';
14
14
  export { SkeletonRadioButtonGroup } from './skeletons/SkeletonRadioButtonGroup.cjs';
15
- export type { SkeletonTableProps, SkeletonTableHeaderProps, SkeletonTableRowProps } from './skeletons/SkeletonTable.cjs';
16
- export { SkeletonTable, SkeletonTableHeader, SkeletonTableRow } from './skeletons/SkeletonTable.cjs';
15
+ export type { SkeletonTableProps, SkeletonTableHeaderProps, SkeletonTableRowProps, } from './skeletons/SkeletonTable.cjs';
16
+ export { SkeletonTable, SkeletonTableHeader, SkeletonTableRow, } from './skeletons/SkeletonTable.cjs';
17
17
  export type { SkeletonTextAreaProps } from './skeletons/SkeletonTextArea.cjs';
18
18
  export { SkeletonTextArea } from './skeletons/SkeletonTextArea.cjs';
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonAnimation.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonAnimation.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { AriaRole, HTMLProps, ReactNode } from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { useDelayedRender } from \"../useDelayedRender.js\";\n\nexport interface SkeletonAnimationProps extends Pick<HTMLProps<HTMLDivElement>, \"style\"> {\n className?: string;\n children: ReactNode;\n density?: Density;\n /** @default \"Vennligst vent\" */\n textDescription?: string;\n role?: AriaRole;\n /**\n * Antall millisekunder komponenten vil vente før den rendrer\n * @default 0\n */\n delay?: number;\n}\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":["className","delay","density","textDescription","rest","renderComponent","useDelayedRender","jsx","clsx"],"mappings":"+NAmBiC,EAC7BA,UAAAA,EACAC,MAAAA,EAAQ,EACRC,QAAAA,EACAC,gBAAAA,EAAkB,oBACfC,MAEG,MAAAC,EAAkBC,mBAAiBL,GAErC,OAAAA,IAAUI,EACH,KAIPE,EAAAA,IAAC,MAAA,CACGP,UAAWQ,EAAAA,KAAK,yBAA0BR,GAC1C,YAAU,OACV,aAAYG,KACRC,EACJ,eAAcF,GAAA"}
1
+ {"version":3,"file":"SkeletonAnimation.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonAnimation.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { AriaRole, HTMLProps, ReactNode } from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { useDelayedRender } from \"../useDelayedRender.js\";\n\nexport interface SkeletonAnimationProps\n extends Pick<HTMLProps<HTMLDivElement>, \"style\"> {\n className?: string;\n children: ReactNode;\n density?: Density;\n /** @default \"Vennligst vent\" */\n textDescription?: string;\n role?: AriaRole;\n /**\n * Antall millisekunder komponenten vil vente før den rendrer\n * @default 0\n */\n delay?: number;\n}\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":["className","delay","density","textDescription","rest","renderComponent","useDelayedRender","jsx","clsx"],"mappings":"+NAoBiC,EAC7BA,UAAAA,EACAC,MAAAA,EAAQ,EACRC,QAAAA,EACAC,gBAAAA,EAAkB,oBACfC,MAEG,MAAAC,EAAkBC,mBAAiBL,GAErC,OAAAA,IAAUI,EACH,KAIPE,EAAAA,IAAC,MAAA,CACGP,UAAWQ,EAAAA,KAAK,yBAA0BR,GAC1C,YAAU,OACV,aAAYG,KACRC,EACJ,eAAcF,GAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonButton.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement, SkeletonElementProps } from \"./SkeletonElement.js\";\n\nexport interface SkeletonButtonProps extends Omit<SkeletonElementProps, \"height\"> {\n density?: Density;\n}\n\nexport const SkeletonButton = ({ style, density, ...rest }: SkeletonButtonProps) => {\n return (\n <SkeletonElement\n {...rest}\n height={density === \"compact\" ? 24 : 40}\n style={{ borderRadius: \"999px\", ...style }}\n />\n );\n};\n"],"names":["style","density","rest","jsx","SkeletonElement","height","borderRadius"],"mappings":"+KAQ8B,EAAGA,MAAAA,EAAOC,QAAAA,KAAYC,KAE5CC,EAAAA,IAACC,EAAAA,gBAAA,IACOF,EACJG,OAAoB,YAAZJ,EAAwB,GAAK,GACrCD,MAAO,CAAEM,aAAc,WAAYN"}
1
+ {"version":3,"file":"SkeletonButton.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement, SkeletonElementProps } from \"./SkeletonElement.js\";\n\nexport interface SkeletonButtonProps\n extends Omit<SkeletonElementProps, \"height\"> {\n density?: Density;\n}\n\nexport const SkeletonButton = ({\n style,\n density,\n ...rest\n}: SkeletonButtonProps) => {\n return (\n <SkeletonElement\n {...rest}\n height={density === \"compact\" ? 24 : 40}\n style={{ borderRadius: \"999px\", ...style }}\n />\n );\n};\n"],"names":["style","density","rest","jsx","SkeletonElement","height","borderRadius"],"mappings":"+KAS8B,EAC1BA,MAAAA,EACAC,QAAAA,KACGC,KAGCC,EAAAA,IAACC,EAAAA,gBAAA,IACOF,EACJG,OAAoB,YAAZJ,EAAwB,GAAK,GACrCD,MAAO,CAAEM,aAAc,WAAYN"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonCheckboxGroup.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonCheckboxGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement, SkeletonElementProps } from \"./SkeletonElement.js\";\nimport { SkeletonLabel, SkeletonLabelProps } from \"./SkeletonLabel.js\";\n\nexport interface SkeletonCheckboxGroupProps {\n className?: string;\n checkboxes: number;\n density?: Density;\n labelProps?: SkeletonLabelProps;\n inputProps?: SkeletonElementProps;\n}\n\nexport const SkeletonCheckboxGroup = ({\n className,\n checkboxes,\n density,\n labelProps,\n inputProps,\n ...rest\n}: SkeletonCheckboxGroupProps) => {\n const compact = density === \"compact\";\n return (\n <div className={clsx(\"jkl-skeleton-input\", className)} {...rest}>\n <SkeletonLabel density={density} {...labelProps} />\n {Array.from(Array(checkboxes)).map((_, index) => (\n <div key={`jkl-skeleton-checkbox-${index}`} className=\"jkl-skeleton-input__checkbox\">\n <SkeletonElement width={compact ? 22 : 24} height={compact ? 22 : 24} />\n <SkeletonElement width={compact ? 201 : 216} height={compact ? 22 : 24} {...inputProps} />\n </div>\n ))}\n </div>\n );\n};\n"],"names":["className","checkboxes","density","labelProps","inputProps","rest","compact","jsxs","clsx","children","jsx","SkeletonLabel","Array","from","map","_","index","SkeletonElement","width","height"],"mappings":"kQAcqC,EACjCA,UAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,WAAAA,KACGC,MAEH,MAAMC,EAAsB,YAAZJ,EAEZ,OAAAK,EAAAA,KAAC,OAAIP,UAAWQ,EAAAA,KAAK,qBAAsBR,MAAgBK,EACvDI,SAAA,CAACC,EAAAA,IAAAC,EAAAA,cAAA,CAAcT,QAAAA,KAAsBC,IACpCS,MAAMC,KAAKD,MAAMX,IAAaa,KAAI,CAACC,EAAGC,IAClCT,EAAAA,KAAA,MAAA,CAA2CP,UAAU,+BAClDS,SAAA,CAACC,EAAAA,IAAAO,EAAAA,gBAAA,CAAgBC,MAAOZ,EAAU,GAAK,GAAIa,OAAQb,EAAU,GAAK,KAClEI,EAAAA,IAACO,EAAAA,gBAAgB,CAAAC,MAAOZ,EAAU,IAAM,IAAKa,OAAQb,EAAU,GAAK,MAAQF,MAFtE,yBAAyBY,SAK3C"}
1
+ {"version":3,"file":"SkeletonCheckboxGroup.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonCheckboxGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement, SkeletonElementProps } from \"./SkeletonElement.js\";\nimport { SkeletonLabel, SkeletonLabelProps } from \"./SkeletonLabel.js\";\n\nexport interface SkeletonCheckboxGroupProps {\n className?: string;\n checkboxes: number;\n density?: Density;\n labelProps?: SkeletonLabelProps;\n inputProps?: SkeletonElementProps;\n}\n\nexport const SkeletonCheckboxGroup = ({\n className,\n checkboxes,\n density,\n labelProps,\n inputProps,\n ...rest\n}: SkeletonCheckboxGroupProps) => {\n const compact = density === \"compact\";\n return (\n <div className={clsx(\"jkl-skeleton-input\", className)} {...rest}>\n <SkeletonLabel density={density} {...labelProps} />\n {Array.from(Array(checkboxes)).map((_, index) => (\n <div\n key={`jkl-skeleton-checkbox-${index}`}\n className=\"jkl-skeleton-input__checkbox\"\n >\n <SkeletonElement\n width={compact ? 22 : 24}\n height={compact ? 22 : 24}\n />\n <SkeletonElement\n width={compact ? 201 : 216}\n height={compact ? 22 : 24}\n {...inputProps}\n />\n </div>\n ))}\n </div>\n );\n};\n"],"names":["className","checkboxes","density","labelProps","inputProps","rest","compact","jsxs","clsx","children","jsx","SkeletonLabel","Array","from","map","_","index","SkeletonElement","width","height"],"mappings":"kQAcqC,EACjCA,UAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,WAAAA,KACGC,MAEH,MAAMC,EAAsB,YAAZJ,EAEZ,OAAAK,EAAAA,KAAC,OAAIP,UAAWQ,EAAAA,KAAK,qBAAsBR,MAAgBK,EACvDI,SAAA,CAACC,EAAAA,IAAAC,EAAAA,cAAA,CAAcT,QAAAA,KAAsBC,IACpCS,MAAMC,KAAKD,MAAMX,IAAaa,KAAI,CAACC,EAAGC,IACnCT,EAAAA,KAAC,MAAA,CAEGP,UAAU,+BAEVS,SAAA,CAAAC,EAAAA,IAACO,EAAAA,gBAAA,CACGC,MAAOZ,EAAU,GAAK,GACtBa,OAAQb,EAAU,GAAK,KAE3BI,EAAAA,IAACO,EAAAA,gBAAA,CACGC,MAAOZ,EAAU,IAAM,IACvBa,OAAQb,EAAU,GAAK,MACnBF,MAVH,yBAAyBY,SAc1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonElement.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonElement.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { HTMLProps } from \"react\";\n\nexport interface SkeletonElementProps extends Pick<HTMLProps<HTMLDivElement>, \"style\"> {\n className?: string;\n shape?: \"rect\" | \"circle\";\n width: number | string;\n height: number | string;\n}\n\nexport const SkeletonElement = ({ shape = \"rect\", width, height, style, className, ...rest }: SkeletonElementProps) => {\n return (\n <div\n className={clsx(\"jkl-skeleton-element\", `jkl-skeleton-element--${shape}`, className)}\n style={{ width, height, ...style }}\n {...rest}\n />\n );\n};\n"],"names":["shape","width","height","style","className","rest","jsx","clsx"],"mappings":"wLAU+B,EAAGA,MAAAA,EAAQ,OAAQC,MAAAA,EAAOC,OAAAA,EAAQC,MAAAA,EAAOC,UAAAA,KAAcC,KAE9EC,EAAAA,IAAC,MAAA,CACGF,UAAWG,EAAKA,KAAA,uBAAwB,yBAAyBP,IAASI,GAC1ED,MAAO,CAAEF,MAAAA,EAAOC,OAAAA,KAAWC,MACvBE"}
1
+ {"version":3,"file":"SkeletonElement.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonElement.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { HTMLProps } from \"react\";\n\nexport interface SkeletonElementProps\n extends Pick<HTMLProps<HTMLDivElement>, \"style\"> {\n className?: string;\n shape?: \"rect\" | \"circle\";\n width: number | string;\n height: number | string;\n}\n\nexport const SkeletonElement = ({\n shape = \"rect\",\n width,\n height,\n style,\n className,\n ...rest\n}: SkeletonElementProps) => {\n return (\n <div\n className={clsx(\n \"jkl-skeleton-element\",\n `jkl-skeleton-element--${shape}`,\n className,\n )}\n style={{ width, height, ...style }}\n {...rest}\n />\n );\n};\n"],"names":["shape","width","height","style","className","rest","jsx","clsx"],"mappings":"wLAW+B,EAC3BA,MAAAA,EAAQ,OACRC,MAAAA,EACAC,OAAAA,EACAC,MAAAA,EACAC,UAAAA,KACGC,KAGCC,EAAAA,IAAC,MAAA,CACGF,UAAWG,EAAAA,KACP,uBACA,yBAAyBP,IACzBI,GAEJD,MAAO,CAAEF,MAAAA,EAAOC,OAAAA,KAAWC,MACvBE"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonInput.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonInput.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { SkeletonElementProps } from \"packages/loader-react/build/index.js\";\nimport React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement } from \"./SkeletonElement.js\";\nimport { SkeletonLabel, SkeletonLabelProps } from \"./SkeletonLabel.js\";\n\nexport interface SkeletonInputProps {\n className?: string;\n density?: Density;\n labelProps?: SkeletonLabelProps;\n inputProps?: SkeletonElementProps;\n}\n\nexport const SkeletonInput = ({ className, density, labelProps, inputProps, ...rest }: SkeletonInputProps) => {\n const compact = density === \"compact\";\n return (\n <div className={clsx(\"jkl-skeleton-input\", className)} {...rest}>\n <SkeletonLabel density={density} {...labelProps} />\n <SkeletonElement width={compact ? 301 : 316} height={compact ? 32 : 48} {...inputProps} />\n </div>\n );\n};\n"],"names":["className","density","labelProps","inputProps","rest","compact","jsxs","clsx","children","jsx","SkeletonLabel","SkeletonElement","width","height"],"mappings":"0PAc6B,EAAGA,UAAAA,EAAWC,QAAAA,EAASC,WAAAA,EAAYC,WAAAA,KAAeC,MAC3E,MAAMC,EAAsB,YAAZJ,EAEZ,OAAAK,EAAAA,KAAC,OAAIN,UAAWO,EAAAA,KAAK,qBAAsBP,MAAgBI,EACvDI,SAAA,CAACC,EAAAA,IAAAC,EAAAA,cAAA,CAAcT,QAAAA,KAAsBC,IACrCO,EAAAA,IAACE,EAAAA,gBAAgB,CAAAC,MAAOP,EAAU,IAAM,IAAKQ,OAAQR,EAAU,GAAK,MAAQF,MAChF"}
1
+ {"version":3,"file":"SkeletonInput.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonInput.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { SkeletonElementProps } from \"packages/loader-react/build/index.js\";\nimport React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement } from \"./SkeletonElement.js\";\nimport { SkeletonLabel, SkeletonLabelProps } from \"./SkeletonLabel.js\";\n\nexport interface SkeletonInputProps {\n className?: string;\n density?: Density;\n labelProps?: SkeletonLabelProps;\n inputProps?: SkeletonElementProps;\n}\n\nexport const SkeletonInput = ({\n className,\n density,\n labelProps,\n inputProps,\n ...rest\n}: SkeletonInputProps) => {\n const compact = density === \"compact\";\n return (\n <div className={clsx(\"jkl-skeleton-input\", className)} {...rest}>\n <SkeletonLabel density={density} {...labelProps} />\n <SkeletonElement\n width={compact ? 301 : 316}\n height={compact ? 32 : 48}\n {...inputProps}\n />\n </div>\n );\n};\n"],"names":["className","density","labelProps","inputProps","rest","compact","jsxs","clsx","children","jsx","SkeletonLabel","SkeletonElement","width","height"],"mappings":"0PAc6B,EACzBA,UAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,WAAAA,KACGC,MAEH,MAAMC,EAAsB,YAAZJ,EAEZ,OAAAK,EAAAA,KAAC,OAAIN,UAAWO,EAAAA,KAAK,qBAAsBP,MAAgBI,EACvDI,SAAA,CAACC,EAAAA,IAAAC,EAAAA,cAAA,CAAcT,QAAAA,KAAsBC,IACrCO,EAAAA,IAACE,EAAAA,gBAAA,CACGC,MAAOP,EAAU,IAAM,IACvBQ,OAAQR,EAAU,GAAK,MACnBF,MAEZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonLabel.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonLabel.tsx"],"sourcesContent":["import React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement, SkeletonElementProps } from \"./SkeletonElement.js\";\n\nexport interface SkeletonLabelProps extends Omit<SkeletonElementProps, \"width\" | \"height\"> {\n className?: string;\n density?: Density;\n}\n\nexport const SkeletonLabel = ({ density, ...rest }: SkeletonLabelProps) => {\n const compact = density === \"compact\";\n return <SkeletonElement {...rest} width={compact ? 100 : 115} height={compact ? 12 : 16} />;\n};\n"],"names":["density","rest","compact","jsx","SkeletonElement","width","height"],"mappings":"8KAS6B,EAAGA,QAAAA,KAAYC,MACxC,MAAMC,EAAsB,YAAZF,EACT,OAAAG,EAAAA,IAACC,EAAiBA,gBAAA,IAAGH,EAAMI,MAAOH,EAAU,IAAM,IAAKI,OAAQJ,EAAU,GAAK,IAAI"}
1
+ {"version":3,"file":"SkeletonLabel.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonLabel.tsx"],"sourcesContent":["import React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement, SkeletonElementProps } from \"./SkeletonElement.js\";\n\nexport interface SkeletonLabelProps\n extends Omit<SkeletonElementProps, \"width\" | \"height\"> {\n className?: string;\n density?: Density;\n}\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":["density","rest","compact","jsx","SkeletonElement","width","height"],"mappings":"8KAU6B,EAAGA,QAAAA,KAAYC,MACxC,MAAMC,EAAsB,YAAZF,EAEZ,OAAAG,EAAAA,IAACC,EAAAA,gBAAA,IACOH,EACJI,MAAOH,EAAU,IAAM,IACvBI,OAAQJ,EAAU,GAAK,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonRadioButtonGroup.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonRadioButtonGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement, SkeletonElementProps } from \"./SkeletonElement.js\";\nimport { SkeletonLabel, SkeletonLabelProps } from \"./SkeletonLabel.js\";\n\nexport interface SkeletonRadioButtonGroupProps {\n className?: string;\n density?: Density;\n labelProps?: SkeletonLabelProps;\n inputProps?: SkeletonElementProps;\n radioButtons: number;\n}\n\nexport const SkeletonRadioButtonGroup = ({\n className,\n radioButtons,\n density,\n labelProps,\n inputProps,\n ...rest\n}: SkeletonRadioButtonGroupProps) => {\n const compact = density === \"compact\";\n return (\n <div className={clsx(\"jkl-skeleton-input\", className)} {...rest}>\n <SkeletonLabel density={density} {...labelProps} />\n {Array.from(Array(radioButtons)).map((_, index) => (\n <div key={`jkl-skeleton-checkbox-${index}`} className=\"jkl-skeleton-input__checkbox\">\n <SkeletonElement\n width={compact ? 22 : 24}\n height={compact ? 22 : 24}\n style={{ borderRadius: \"50%\" }}\n />\n <SkeletonElement width={compact ? 201 : 216} height={compact ? 22 : 24} {...inputProps} />\n </div>\n ))}\n </div>\n );\n};\n"],"names":["className","radioButtons","density","labelProps","inputProps","rest","compact","jsxs","clsx","children","jsx","SkeletonLabel","Array","from","map","_","index","SkeletonElement","width","height","style","borderRadius"],"mappings":"qQAcwC,EACpCA,UAAAA,EACAC,aAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,WAAAA,KACGC,MAEH,MAAMC,EAAsB,YAAZJ,EAEZ,OAAAK,EAAAA,KAAC,OAAIP,UAAWQ,EAAAA,KAAK,qBAAsBR,MAAgBK,EACvDI,SAAA,CAACC,EAAAA,IAAAC,EAAAA,cAAA,CAAcT,QAAAA,KAAsBC,IACpCS,MAAMC,KAAKD,MAAMX,IAAea,KAAI,CAACC,EAAGC,IACpCT,EAAAA,KAAA,MAAA,CAA2CP,UAAU,+BAClDS,SAAA,CAAAC,EAAAA,IAACO,EAAAA,gBAAA,CACGC,MAAOZ,EAAU,GAAK,GACtBa,OAAQb,EAAU,GAAK,GACvBc,MAAO,CAAEC,aAAc,SAE3BX,EAAAA,IAACO,EAAAA,gBAAgB,CAAAC,MAAOZ,EAAU,IAAM,IAAKa,OAAQb,EAAU,GAAK,MAAQF,MANtE,yBAAyBY,SAS3C"}
1
+ {"version":3,"file":"SkeletonRadioButtonGroup.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonRadioButtonGroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement, SkeletonElementProps } from \"./SkeletonElement.js\";\nimport { SkeletonLabel, SkeletonLabelProps } from \"./SkeletonLabel.js\";\n\nexport interface SkeletonRadioButtonGroupProps {\n className?: string;\n density?: Density;\n labelProps?: SkeletonLabelProps;\n inputProps?: SkeletonElementProps;\n radioButtons: number;\n}\n\nexport const SkeletonRadioButtonGroup = ({\n className,\n radioButtons,\n density,\n labelProps,\n inputProps,\n ...rest\n}: SkeletonRadioButtonGroupProps) => {\n const compact = density === \"compact\";\n return (\n <div className={clsx(\"jkl-skeleton-input\", className)} {...rest}>\n <SkeletonLabel density={density} {...labelProps} />\n {Array.from(Array(radioButtons)).map((_, index) => (\n <div\n key={`jkl-skeleton-checkbox-${index}`}\n className=\"jkl-skeleton-input__checkbox\"\n >\n <SkeletonElement\n width={compact ? 22 : 24}\n height={compact ? 22 : 24}\n style={{ borderRadius: \"50%\" }}\n />\n <SkeletonElement\n width={compact ? 201 : 216}\n height={compact ? 22 : 24}\n {...inputProps}\n />\n </div>\n ))}\n </div>\n );\n};\n"],"names":["className","radioButtons","density","labelProps","inputProps","rest","compact","jsxs","clsx","children","jsx","SkeletonLabel","Array","from","map","_","index","SkeletonElement","width","height","style","borderRadius"],"mappings":"qQAcwC,EACpCA,UAAAA,EACAC,aAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,WAAAA,KACGC,MAEH,MAAMC,EAAsB,YAAZJ,EAEZ,OAAAK,EAAAA,KAAC,OAAIP,UAAWQ,EAAAA,KAAK,qBAAsBR,MAAgBK,EACvDI,SAAA,CAACC,EAAAA,IAAAC,EAAAA,cAAA,CAAcT,QAAAA,KAAsBC,IACpCS,MAAMC,KAAKD,MAAMX,IAAea,KAAI,CAACC,EAAGC,IACrCT,EAAAA,KAAC,MAAA,CAEGP,UAAU,+BAEVS,SAAA,CAAAC,EAAAA,IAACO,EAAAA,gBAAA,CACGC,MAAOZ,EAAU,GAAK,GACtBa,OAAQb,EAAU,GAAK,GACvBc,MAAO,CAAEC,aAAc,SAE3BX,EAAAA,IAACO,EAAAA,gBAAA,CACGC,MAAOZ,EAAU,IAAM,IACvBa,OAAQb,EAAU,GAAK,MACnBF,MAXH,yBAAyBY,SAe1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonTable.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonTable.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { HTMLProps, ReactNode } from \"react\";\nimport { Density } from \"../../../core/types.js\";\n\nexport interface SkeletonTableProps extends Pick<HTMLProps<HTMLDivElement>, \"style\"> {\n className?: string;\n children: ReactNode;\n density?: Density;\n width?: number | string;\n}\n\nexport const SkeletonTable = ({ className, density, width, style, ...rest }: SkeletonTableProps) => {\n return (\n <div\n className={clsx(\"jkl-skeleton-table\", className)}\n style={{ width, ...style }}\n {...rest}\n data-density={density}\n />\n );\n};\n\nexport interface SkeletonTableHeaderProps {\n className?: string;\n children: ReactNode;\n}\n\nexport const SkeletonTableHeader = ({ className, ...rest }: SkeletonTableHeaderProps) => {\n return <div className={clsx(\"jkl-skeleton-table__header\", className)} {...rest} />;\n};\n\nexport interface SkeletonTableRowProps {\n className?: string;\n children: ReactNode;\n}\n\nexport const SkeletonTableRow = ({ className, ...rest }: SkeletonTableRowProps) => {\n return <div className={clsx(\"jkl-skeleton-table__row\", className)} {...rest} />;\n};\n"],"names":["className","density","width","style","rest","jsx","clsx"],"mappings":"sLAW6B,EAAGA,UAAAA,EAAWC,QAAAA,EAASC,MAAAA,EAAOC,MAAAA,KAAUC,KAE7DC,EAAAA,IAAC,MAAA,CACGL,UAAWM,EAAAA,KAAK,qBAAsBN,GACtCG,MAAO,CAAED,MAAAA,KAAUC,MACfC,EACJ,eAAcH,gCAUS,EAAGD,UAAAA,KAAcI,KACzCC,EAAAA,IAAC,OAAIL,UAAWM,EAAAA,KAAK,6BAA8BN,MAAgBI,6BAQ9C,EAAGJ,UAAAA,KAAcI,KACtCC,EAAAA,IAAC,OAAIL,UAAWM,EAAAA,KAAK,0BAA2BN,MAAgBI"}
1
+ {"version":3,"file":"SkeletonTable.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonTable.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { HTMLProps, ReactNode } from \"react\";\nimport { Density } from \"../../../core/types.js\";\n\nexport interface SkeletonTableProps\n extends Pick<HTMLProps<HTMLDivElement>, \"style\"> {\n className?: string;\n children: ReactNode;\n density?: Density;\n width?: number | string;\n}\n\nexport const SkeletonTable = ({\n className,\n density,\n width,\n style,\n ...rest\n}: SkeletonTableProps) => {\n return (\n <div\n className={clsx(\"jkl-skeleton-table\", className)}\n style={{ width, ...style }}\n {...rest}\n data-density={density}\n />\n );\n};\n\nexport interface SkeletonTableHeaderProps {\n className?: string;\n children: ReactNode;\n}\n\nexport const SkeletonTableHeader = ({\n className,\n ...rest\n}: SkeletonTableHeaderProps) => {\n return (\n <div\n className={clsx(\"jkl-skeleton-table__header\", className)}\n {...rest}\n />\n );\n};\n\nexport interface SkeletonTableRowProps {\n className?: string;\n children: ReactNode;\n}\n\nexport const SkeletonTableRow = ({\n className,\n ...rest\n}: SkeletonTableRowProps) => {\n return (\n <div className={clsx(\"jkl-skeleton-table__row\", className)} {...rest} />\n );\n};\n"],"names":["className","density","width","style","rest","jsx","clsx"],"mappings":"sLAY6B,EACzBA,UAAAA,EACAC,QAAAA,EACAC,MAAAA,EACAC,MAAAA,KACGC,KAGCC,EAAAA,IAAC,MAAA,CACGL,UAAWM,EAAAA,KAAK,qBAAsBN,GACtCG,MAAO,CAAED,MAAAA,KAAUC,MACfC,EACJ,eAAcH,gCAUS,EAC/BD,UAAAA,KACGI,KAGCC,EAAAA,IAAC,MAAA,CACGL,UAAWM,EAAAA,KAAK,6BAA8BN,MAC1CI,6BAUgB,EAC5BJ,UAAAA,KACGI,KAGCC,EAAAA,IAAC,OAAIL,UAAWM,EAAAA,KAAK,0BAA2BN,MAAgBI"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonTextArea.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonTextArea.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement, SkeletonElementProps } from \"./SkeletonElement.js\";\nimport { SkeletonLabel, SkeletonLabelProps } from \"./SkeletonLabel.js\";\n\nexport interface SkeletonTextAreaProps {\n className?: string;\n labelProps?: SkeletonLabelProps;\n inputProps?: SkeletonElementProps;\n density?: Density;\n}\n\nexport const SkeletonTextArea = ({ className, density, labelProps, inputProps, ...rest }: SkeletonTextAreaProps) => {\n const compact = density === \"compact\";\n return (\n <div className={clsx(\"jkl-skeleton-input\", className)} {...rest} data-density={density}>\n <SkeletonLabel density={density} {...labelProps} />\n <SkeletonElement width={compact ? 301 : 316} height={compact ? 148 : 168} {...inputProps} />\n </div>\n );\n};\n"],"names":["className","density","labelProps","inputProps","rest","compact","jsxs","clsx","children","jsx","SkeletonLabel","SkeletonElement","width","height"],"mappings":"6PAagC,EAAGA,UAAAA,EAAWC,QAAAA,EAASC,WAAAA,EAAYC,WAAAA,KAAeC,MAC9E,MAAMC,EAAsB,YAAZJ,EAEZ,OAAAK,OAAC,MAAI,CAAAN,UAAWO,EAAAA,KAAK,qBAAsBP,MAAgBI,EAAM,eAAcH,EAC3EO,SAAA,CAACC,EAAAA,IAAAC,EAAAA,cAAA,CAAcT,QAAAA,KAAsBC,IACrCO,EAAAA,IAACE,EAAAA,gBAAgB,CAAAC,MAAOP,EAAU,IAAM,IAAKQ,OAAQR,EAAU,IAAM,OAASF,MAClF"}
1
+ {"version":3,"file":"SkeletonTextArea.cjs","sources":["../../../../../src/components/loader/skeletons/SkeletonTextArea.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { Density } from \"../../../core/types.js\";\nimport { SkeletonElement, SkeletonElementProps } from \"./SkeletonElement.js\";\nimport { SkeletonLabel, SkeletonLabelProps } from \"./SkeletonLabel.js\";\n\nexport interface SkeletonTextAreaProps {\n className?: string;\n labelProps?: SkeletonLabelProps;\n inputProps?: SkeletonElementProps;\n density?: Density;\n}\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":["className","density","labelProps","inputProps","rest","compact","jsxs","clsx","children","jsx","SkeletonLabel","SkeletonElement","width","height"],"mappings":"6PAagC,EAC5BA,UAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,WAAAA,KACGC,MAEH,MAAMC,EAAsB,YAAZJ,EAEZ,OAAAK,EAAAA,KAAC,MAAA,CACGN,UAAWO,EAAAA,KAAK,qBAAsBP,MAClCI,EACJ,eAAcH,EAEdO,SAAA,CAACC,EAAAA,IAAAC,EAAAA,cAAA,CAAcT,QAAAA,KAAsBC,IACrCO,EAAAA,IAACE,EAAAA,gBAAA,CACGC,MAAOP,EAAU,IAAM,IACvBQ,OAAQR,EAAU,IAAM,OACpBF,MACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDelayedRender.cjs","sources":["../../../../src/components/loader/useDelayedRender.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nexport function useDelayedRender(delayMilliseconds: number) {\n const [renderComponent, setRenderComponent] = useState(delayMilliseconds === 0 ? true : false);\n\n useEffect(() => {\n if (delayMilliseconds === 0) {\n return;\n }\n\n const timeout = setTimeout(() => setRenderComponent(true), delayMilliseconds);\n return () => clearTimeout(timeout);\n }, [delayMilliseconds, setRenderComponent]);\n\n return renderComponent;\n}\n"],"names":["delayMilliseconds","renderComponent","setRenderComponent","useState","useEffect","timeout","setTimeout","clearTimeout"],"mappings":"kIAEO,SAA0BA,GACvB,MAACC,EAAiBC,GAAsBC,EAAAA,SAA+B,IAAtBH,GAEvDI,OAAAA,EAAAA,WAAU,KACN,GAA0B,IAAtBJ,EACA,OAGJ,MAAMK,EAAUC,YAAW,IAAMJ,GAAmB,IAAOF,GACpD,MAAA,IAAMO,aAAaF,EAAO,GAClC,CAACL,EAAmBE,IAEhBD,CACX"}
1
+ {"version":3,"file":"useDelayedRender.cjs","sources":["../../../../src/components/loader/useDelayedRender.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nexport function useDelayedRender(delayMilliseconds: number) {\n const [renderComponent, setRenderComponent] = useState(\n delayMilliseconds === 0 ? true : false,\n );\n\n useEffect(() => {\n if (delayMilliseconds === 0) {\n return;\n }\n\n const timeout = setTimeout(\n () => setRenderComponent(true),\n delayMilliseconds,\n );\n return () => clearTimeout(timeout);\n }, [delayMilliseconds, setRenderComponent]);\n\n return renderComponent;\n}\n"],"names":["delayMilliseconds","renderComponent","setRenderComponent","useState","useEffect","timeout","setTimeout","clearTimeout"],"mappings":"kIAEO,SAA0BA,GACvB,MAACC,EAAiBC,GAAsBC,EAAAA,SACpB,IAAtBH,GAGJI,OAAAA,EAAAA,WAAU,KACN,GAA0B,IAAtBJ,EACA,OAGJ,MAAMK,EAAUC,YACZ,IAAMJ,GAAmB,IACzBF,GAEG,MAAA,IAAMO,aAAaF,EAAO,GAClC,CAACL,EAAmBE,IAEhBD,CACX"}
@@ -1 +1 @@
1
- {"version":3,"file":"Logo.cjs","sources":["../../../../src/components/logo/Logo.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { CSSProperties } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\n\nexport interface LogoProps {\n className?: string;\n id?: string;\n style?: CSSProperties;\n /** Sentrerer logosymbolet i viewboksen i stedet for den vanlige venstrejusteringen */\n centered?: boolean;\n /** Animerer overgangen mellom logo og logosymbol */\n animated?: boolean;\n /** Vis logosymbol i stedet for logo */\n isSymbol?: boolean;\n /** Beskrivelse av logoen tilgjengelig for skjermlesere */\n title?: string;\n}\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={!animated && isSymbol && !centered ? \"31 60 150 83\" : \"32 27 581 120\"}\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={isSymbol ? \"scale(1.45, 1) translate(-10, 6)\" : \"\"}\n />\n <line x1=\"35.12226\" x2=\"91.504088\" y1=\"80.105318\" y2=\"80.105318\" />\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":["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":"mNAkBoB,EAChBA,UAAAA,EACAC,GAAAA,EACAC,SAAAA,GAAW,EACXC,SAAAA,GAAW,EACXC,SAAAA,GAAW,EACXC,MAAAA,EAAQ,cACLC,MAEG,MAAAC,EAAWC,QAAMP,GAAM,WAAY,CAAEQ,gBAAiBR,IAGxD,OAAAS,EAAAA,KAAC,MAAA,IACOJ,EACJN,UAAWW,EAAAA,KAAK,WAAYX,EAAW,CACnC,qBAAsBI,EACtB,wBAAyBD,EACzB,qBAAsBD,GAAYC,IAEtC,kBAAiBI,EACjBK,KAAK,MACLC,MAAM,6BACNC,KAAK,eACLC,OAAO,eACPC,QAAUZ,IAAYD,GAAaD,EAA4B,gBAAjB,eAE9Ce,SAAA,CAACC,EAAAA,IAAA,QAAA,CAAMjB,GAAIM,EAAWU,SAAMZ,IAC5BK,EAAAA,KAAC,IAAA,CACGI,KAAK,OACLd,UAAU,cACVmB,YAAY,IACZC,UAAW,IAAGjB,EAAW,gCAAkC,IAE3Dc,SAAA,CAAAC,EAAAA,IAAC,OAAA,CACGG,GAAG,OACHC,GAAG,aACHC,GAAG,YACHC,GAAG,YACHxB,UAAU,mBACVoB,UAAWjB,EAAW,mCAAqC,KAE/De,EAAAA,IAAC,QAAKG,GAAG,WAAWC,GAAG,YAAYC,GAAG,YAAYC,GAAG,cACrDN,EAAAA,IAAC,OAAA,CACGG,GAAG,aACHC,GAAG,WACHC,GAAG,YACHC,GAAG,YACHJ,UAAU,sCAGfjB,IAAaC,IACZc,EAAAA,IAAC,OAAA,CACGC,YAAY,SACZM,EAAE,w8EACFzB,UAAU,wBACd"}
1
+ {"version":3,"file":"Logo.cjs","sources":["../../../../src/components/logo/Logo.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { CSSProperties } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\n\nexport interface LogoProps {\n className?: string;\n id?: string;\n style?: CSSProperties;\n /** Sentrerer logosymbolet i viewboksen i stedet for den vanlige venstrejusteringen */\n centered?: boolean;\n /** Animerer overgangen mellom logo og logosymbol */\n animated?: boolean;\n /** Vis logosymbol i stedet for logo */\n isSymbol?: boolean;\n /** Beskrivelse av logoen tilgjengelig for skjermlesere */\n title?: string;\n}\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":["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":"mNAkBoB,EAChBA,UAAAA,EACAC,GAAAA,EACAC,SAAAA,GAAW,EACXC,SAAAA,GAAW,EACXC,SAAAA,GAAW,EACXC,MAAAA,EAAQ,cACLC,MAEG,MAAAC,EAAWC,QAAMP,GAAM,WAAY,CAAEQ,gBAAiBR,IAGxD,OAAAS,EAAAA,KAAC,MAAA,IACOJ,EACJN,UAAWW,EAAAA,KAAK,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,EAAAA,IAAA,QAAA,CAAMjB,GAAIM,EAAWU,SAAMZ,IAC5BK,EAAAA,KAAC,IAAA,CACGI,KAAK,OACLd,UAAU,cACVmB,YAAY,IACZC,UAAW,IAAGjB,EAAW,gCAAkC,IAE3Dc,SAAA,CAAAC,EAAAA,IAAC,OAAA,CACGG,GAAG,OACHC,GAAG,aACHC,GAAG,YACHC,GAAG,YACHxB,UAAU,mBACVoB,UACIjB,EAAW,mCAAqC,KAGxDe,EAAAA,IAAC,OAAA,CACGG,GAAG,WACHC,GAAG,YACHC,GAAG,YACHC,GAAG,cAEPN,EAAAA,IAAC,OAAA,CACGG,GAAG,aACHC,GAAG,WACHC,GAAG,YACHC,GAAG,YACHJ,UAAU,sCAGfjB,IAAaC,IACZc,EAAAA,IAAC,OAAA,CACGC,YAAY,SACZM,EAAE,w8EACFzB,UAAU,wBACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogoStamp.cjs","sources":["../../../../src/components/logo/LogoStamp.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { CSSProperties, useRef } from \"react\";\nimport { WithChildren } from \"../../core/types.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { useTextSpinner } from \"./useTextSpinner.js\";\n\nexport interface LogoStampProps extends WithChildren {\n className?: string;\n id?: string;\n style?: CSSProperties;\n /**\n * Beskrivelse av logostempelet tilgjengelig for skjermlesere.\n * Teksten i logostempelet er en path, og ikke tilgjengelig for skjermlesere.\n * @default \"Forsikring levert av Fremtind\"\n */\n title?: string;\n /** Roterer teksten rundt logostempelet første gangen stempelet kommer til syne */\n animated?: boolean;\n}\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}>{title || \"Forsikring levert av Fremtind\"}</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":["children","className","id","animated","title","rest","uniqueId","useId","generateSuffix","stampRef","useRef","hasAnimated","visible","useTextSpinner","jsxs","ref","xmlns","viewBox","clsx","role","jsx","fill","d"],"mappings":"6QAoByB,EACrBA,SAAAA,EACAC,UAAAA,EACAC,GAAAA,EACAC,SAAAA,GAAW,EACXC,MAAAA,KACGC,MAEG,MAAAC,EAAWC,QAAML,GAAM,iBAAkB,CAAEM,gBAAiBN,IAC5DO,EAAWC,SAAsB,OAC/BC,YAAAA,EAAaC,QAAAA,GAAYC,iBAAeJ,GAG5C,OAAAK,EAAAA,KAAC,MAAA,IACOT,EACJU,IAAKN,EACLO,MAAM,6BACNC,QAAQ,cACR,kBAAiBX,EACjBL,UAAWiB,EAAAA,KAAK,iBAAkBjB,EAAW,CACzC,2BAA4BE,IAEhC,cAAaA,IAAaS,GAAWD,GACrCQ,KAAK,MAELnB,SAAA,CAAAoB,EAAAA,IAAC,QAAM,CAAAlB,GAAII,EAAWN,SAAAI,GAAS,kCAC/BgB,EAAAA,IAAC,IAAE,CAAAnB,UAAU,uBACTD,SAAAoB,EAAAA,IAAC,OAAA,CACGC,KAAK,eACLC,EAAE,wGAGTF,EAAAA,IAAA,IAAA,CAAEnB,UAAU,uBAAwBD,SAAAA,MAAS"}
1
+ {"version":3,"file":"LogoStamp.cjs","sources":["../../../../src/components/logo/LogoStamp.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { CSSProperties, useRef } from \"react\";\nimport { WithChildren } from \"../../core/types.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { useTextSpinner } from \"./useTextSpinner.js\";\n\nexport interface LogoStampProps extends WithChildren {\n className?: string;\n id?: string;\n style?: CSSProperties;\n /**\n * Beskrivelse av logostempelet tilgjengelig for skjermlesere.\n * Teksten i logostempelet er en path, og ikke tilgjengelig for skjermlesere.\n * @default \"Forsikring levert av Fremtind\"\n */\n title?: string;\n /** Roterer teksten rundt logostempelet første gangen stempelet kommer til syne */\n animated?: boolean;\n}\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":["children","className","id","animated","title","rest","uniqueId","useId","generateSuffix","stampRef","useRef","hasAnimated","visible","useTextSpinner","jsxs","ref","xmlns","viewBox","clsx","role","jsx","fill","d"],"mappings":"6QAoByB,EACrBA,SAAAA,EACAC,UAAAA,EACAC,GAAAA,EACAC,SAAAA,GAAW,EACXC,MAAAA,KACGC,MAEG,MAAAC,EAAWC,QAAML,GAAM,iBAAkB,CAAEM,gBAAiBN,IAC5DO,EAAWC,SAAsB,OAC/BC,YAAAA,EAAaC,QAAAA,GAAYC,iBAAeJ,GAG5C,OAAAK,EAAAA,KAAC,MAAA,IACOT,EACJU,IAAKN,EACLO,MAAM,6BACNC,QAAQ,cACR,kBAAiBX,EACjBL,UAAWiB,EAAAA,KAAK,iBAAkBjB,EAAW,CACzC,2BAA4BE,IAEhC,cAAaA,IAAaS,GAAWD,GACrCQ,KAAK,MAELnB,SAAA,CAAAoB,EAAAA,IAAC,QAAM,CAAAlB,GAAII,EACNN,SAAAI,GAAS,kCAEdgB,EAAAA,IAAC,IAAE,CAAAnB,UAAU,uBACTD,SAAAoB,EAAAA,IAAC,OAAA,CACGC,KAAK,eACLC,EAAE,wGAGTF,EAAAA,IAAA,IAAA,CAAEnB,UAAU,uBAAwBD,SAAAA,MAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTextSpinner.cjs","sources":["../../../../src/components/logo/useTextSpinner.ts"],"sourcesContent":["import React, { useState } from \"react\";\nimport { useIntersectionObserver } from \"../../hooks/useIntersectionObserver/useIntersectionObserver.js\";\nexport function useTextSpinner<T extends HTMLElement | SVGElement>(ref: React.RefObject<T>) {\n const [hasAnimated, setHasAnimated] = useState(false);\n const [visible, setVisible] = useState(false);\n\n const onIntersect = (entries: IntersectionObserverEntry[]) => {\n const intersecting = entries.some((entry) => entry.isIntersecting);\n setVisible(intersecting);\n if (intersecting) {\n setHasAnimated(true);\n }\n };\n useIntersectionObserver(ref, onIntersect, () => setVisible(true), {\n rootMargin: \"50% 0% 0% 0%\",\n threshold: 0.5,\n });\n\n return { hasAnimated, visible };\n}\n"],"names":["ref","hasAnimated","setHasAnimated","useState","visible","setVisible","useIntersectionObserver","entries","intersecting","some","entry","isIntersecting","rootMargin","threshold"],"mappings":"6MAEO,SAA4DA,GAC/D,MAAOC,EAAaC,GAAkBC,YAAS,IACxCC,EAASC,GAAcF,YAAS,GASvCG,OAAAA,EAAAA,wBAAwBN,GAPHO,IACjB,MAAMC,EAAeD,EAAQE,MAAMC,GAAUA,EAAMC,iBACnDN,EAAWG,GACPA,GACAN,GAAe,EAAI,IAGe,IAAMG,GAAW,IAAO,CAC9DO,WAAY,eACZC,UAAW,KAGR,CAAEZ,YAAAA,EAAaG,QAAAA,EAC1B"}
1
+ {"version":3,"file":"useTextSpinner.cjs","sources":["../../../../src/components/logo/useTextSpinner.ts"],"sourcesContent":["import React, { useState } from \"react\";\nimport { useIntersectionObserver } from \"../../hooks/useIntersectionObserver/useIntersectionObserver.js\";\nexport function useTextSpinner<T extends HTMLElement | SVGElement>(\n ref: React.RefObject<T>,\n) {\n const [hasAnimated, setHasAnimated] = useState(false);\n const [visible, setVisible] = useState(false);\n\n const onIntersect = (entries: IntersectionObserverEntry[]) => {\n const intersecting = entries.some((entry) => entry.isIntersecting);\n setVisible(intersecting);\n if (intersecting) {\n setHasAnimated(true);\n }\n };\n useIntersectionObserver(ref, onIntersect, () => setVisible(true), {\n rootMargin: \"50% 0% 0% 0%\",\n threshold: 0.5,\n });\n\n return { hasAnimated, visible };\n}\n"],"names":["ref","hasAnimated","setHasAnimated","useState","visible","setVisible","useIntersectionObserver","entries","intersecting","some","entry","isIntersecting","rootMargin","threshold"],"mappings":"6MAEO,SACHA,GAEA,MAAOC,EAAaC,GAAkBC,YAAS,IACxCC,EAASC,GAAcF,YAAS,GASvCG,OAAAA,EAAAA,wBAAwBN,GAPHO,IACjB,MAAMC,EAAeD,EAAQE,MAAMC,GAAUA,EAAMC,iBACnDN,EAAWG,GACPA,GACAN,GAAe,EAAI,IAGe,IAAMG,GAAW,IAAO,CAC9DO,WAAY,eACZC,UAAW,KAGR,CAAEZ,YAAAA,EAAaG,QAAAA,EAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.cjs","sources":["../../../../src/components/menu/Menu.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n type Placement,\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} from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React, { type ButtonHTMLAttributes, forwardRef, type ReactNode, useEffect, useRef, useState } from \"react\";\nimport * as ReactIs from \"react-is\";\nimport { DataTestAutoId, WithChildren } from \"../../core/types.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { getThemeAndDensity } from \"../../utilities/getThemeAndDensity.js\";\nimport { useMenuWideEvents } from \"./useMenuWideEvents.js\";\n\nexport interface MenuProps\n extends DataTestAutoId,\n WithChildren,\n Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n className?: string;\n /**\n * Initiell plassering av menyen. Dersom det ikke er plass på skjermen der du\n * angir at den skal åpnes vil den slyttes automatisk.\n * @default \"bottom-start\" på toppnivå, \"right-start\" for undermenyer\n * */\n initialPlacement?: Placement;\n /**\n * Angir om menyen skal åpnes ved hover (uten å måtte klikke)\n * @default false\n */\n openOnHover?: boolean;\n /**\n * Angir om menyen skal holdes åpen når man klikker utenfor menyen\n * @default false\n */\n keepOpenOnClickOutside?: boolean;\n /**\n * Elementet som fungerer som trigger for menyen. Dersom elementet ikke er en `<button>`\n * eller en `forwardRef<HTMLButtonElement>` vil det bli lagt inne i en knapp\n * med forhåndsdefinert stil. For å komme raskt i gang kan du bruke komponenten\n * `MenuTriggerButton` fra denne pakken.\n */\n triggerElement: ReactNode;\n /**\n * Kan brukes til å styre utenfra om menyen skal være åpen eller ikke.\n * @default false\n */\n isOpen?: boolean;\n /**\n * Callback som kalles når menyen åpnes eller lukkes.\n */\n onToggle?: (isOpen: boolean) => void;\n}\n\nconst MenuComponent = forwardRef<HTMLButtonElement, MenuProps>((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 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 { allowHover, isOpen: isOpenDefault, setIsOpen } = useMenuWideEvents(tree, nodeId, parentId);\n\n const isOpen = isOpenOverride !== undefined ? isOpenOverride : isOpenDefault;\n\n useEffect(() => onToggle?.(isOpen), [isOpen, onToggle]);\n\n const { x, y, refs, placement, strategy, context } = useFloating({\n nodeId,\n open: isOpen,\n onOpenChange: setIsOpen,\n placement: 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 } = 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(refs.reference.current as HTMLElement);\n\n return (\n <FloatingNode id={nodeId}>\n {React.isValidElement(triggerElement) &&\n (triggerElement.type === \"button\" || ReactIs.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 <AnimatePresence>\n {isOpen && (\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 <motion.div\n className={clsx(\"jkl jkl-menu\", className)}\n data-theme={theme}\n data-layout-density={density}\n role=\"menu\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ ease: \"easeIn\", duration: 0.1 }}\n data-placement={placement}\n aria-live=\"assertive\"\n aria-hidden={!isOpen}\n ref={refs.setFloating}\n {...getFloatingProps({\n id: MenuId,\n style: {\n position: strategy,\n top: y ?? \"\",\n left: x ?? \"\",\n },\n })}\n >\n {React.Children.map(children, (child, index) => {\n if (React.isValidElement(child) && ReactIs.isForwardRef(child)) {\n return React.cloneElement(\n child,\n getItemProps({\n ...child.props,\n tabIndex: activeIndex === index ? 0 : -1,\n role: \"menuitem\",\n ref(node: HTMLButtonElement) {\n listItemsRef.current[index] = node;\n },\n onClick(event) {\n child.props.onClick?.(event as React.MouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) {\n return;\n }\n tree?.events.emit(\"click\");\n },\n onKeyDown(event) {\n child.props.onKeyDown?.(event);\n if (event.defaultPrevented) {\n return;\n }\n tree?.events.emit(\"keydown\");\n if (\n event.currentTarget.role === \"menuitemcheckbox\" &&\n event.key === \"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 (allowHover && isOpen) {\n setActiveIndex(index);\n }\n },\n }),\n );\n }\n\n return child;\n })}\n </motion.div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </AnimatePresence>\n </FloatingNode>\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":["MenuComponent","forwardRef","props","forwardedRef","children","className","initialPlacement","openOnHover","keepOpenOnClickOutside","triggerElement","isOpen","isOpenOverride","onToggle","triggerProps","MenuId","useId","tree","useFloatingTree","nodeId","useFloatingNodeId","parentId","useFloatingParentNodeId","isNested","listItemsRef","useRef","activeIndex","setActiveIndex","useState","allowHover","isOpenDefault","setIsOpen","useMenuWideEvents","useEffect","x","y","refs","placement","strategy","context","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","jsxs","FloatingNode","id","React","isValidElement","type","ReactIs","isForwardRef","cloneElement","ref","onClick","stopPropagation","jsx","AnimatePresence","FloatingPortal","FloatingFocusManager","modal","initialFocus","returnFocus","motion","div","clsx","initial","opacity","animate","exit","transition","ease","duration","setFloating","style","position","top","left","Children","map","child","index","tabIndex","node","_b","_a","call","defaultPrevented","events","emit","onKeyDown","currentTarget","key","onMouseEnter","displayName","Menu","FloatingTree"],"mappings":"wpBAuEMA,EAAgBC,EAAAA,YAAyC,CAACC,EAAOC,KAC7D,MACFC,SAAAA,EACAC,UAAAA,EACAC,iBAAAA,EACAC,YAAAA,GAAc,EACdC,uBAAAA,GAAyB,EACzBC,eAAAA,EACAC,OAAQC,EACRC,SAAAA,KACGC,GACHX,EAEEY,EAASC,QAAM,YAEfC,EAAOC,EAAAA,kBACPC,EAASC,EAAAA,oBACTC,EAAWC,EAAAA,0BACXC,EAAuB,MAAZF,EAEXG,EAAeC,SAAwC,KACtDC,EAAaC,GAAkBC,WAAwB,OACtDC,WAAAA,EAAYlB,OAAQmB,EAAeC,UAAAA,GAAcC,EAAAA,kBAAkBf,EAAME,EAAQE,GAEnFV,OAA4B,IAAnBC,EAA+BA,EAAiBkB,EAE/DG,EAAAA,WAAU,IAAM,MAAApB,OAAAA,EAAAA,EAAWF,IAAS,CAACA,EAAQE,IAEvC,MAAEqB,EAAAA,EAAGC,EAAAA,EAAGC,KAAAA,EAAMC,UAAAA,EAAWC,SAAAA,EAAUC,QAAAA,GAAYC,cAAY,CAC7DrB,OAAAA,EACAsB,KAAM9B,EACN+B,aAAcX,EACdM,UAAW9B,IAAqBgB,EAAW,cAAgB,gBAC3DoB,WAAY,CACRC,EAAAA,OAAO,GACPC,OAAK,CACDC,0BAA2B,MAC3BC,WAAW,IAEfC,QAAM,CAAEC,QAAS,KAErBC,qBAAsBC,EAAAA,cAGlBC,kBAAAA,EAAmBC,iBAAAA,EAAkBC,aAAAA,GAAiBC,EAAAA,gBAAgB,CAC1EC,EAAAA,SAASjB,EAAS,CACdkB,QAASjD,GAAeqB,EACxB6B,MAAO,CAAEjB,KAAM,IACfkB,YAAaC,EAAAA,YAAY,CACrBC,eAAe,EACfC,oBAAoB,MAG5BC,EAAAA,SAASxB,EAAS,CACdyB,MAAO,cAEXC,EAAAA,WAAW1B,EAAS,CAAE2B,cAAezD,IACrC0D,EAAAA,QAAQ5B,EAAS,CAAE6B,KAAM,SACzBC,EAAAA,kBAAkB9B,EAAS,CACvB+B,QAAS9C,EACTE,YAAAA,EACA6C,OAAQhD,EACRiD,WAAY7C,MAId8C,EAAeC,EAAAA,aAAa,CAACtC,EAAKuC,aAAcvE,KAI9CwE,MAAAA,EAAOC,QAAAA,GAAYC,EAAmBA,mBAAA1C,EAAK2C,UAAUC,SAGzD,OAAAC,EAAAA,KAACC,EAAaA,aAAA,CAAAC,GAAIhE,EACbd,SAAA,CAAM+E,EAAAC,eAAe3E,KACG,WAAxBA,EAAe4E,MAAqBC,EAAQC,aAAa9E,IAEpD0E,EAAMK,aAAa/E,EAAgB,IAC5B0C,EAAkB,IACdtC,EACH4E,IAAKjB,EACLL,KAAM7C,EAAW,gBAAa,EAC9B,gBAAiBR,EACjB4E,QAAQ3B,GACJA,EAAM4B,iBACV,MAIRlF,EACLmF,MAAAC,EAAAA,gBAAA,CACIzF,SACGM,GAAAkF,EAAAA,IAACE,EACGA,eAAA,CAAA1F,SAAAwF,EAAAA,IAACG,EAAAA,qBAAA,CACGzD,QAAAA,EAEA0D,OAAO,EAEPC,aAAc3E,GAAW,EAAK,EAE9B4E,aAAc5E,EAEdlB,SAAAwF,EAAAA,IAACO,EAAAA,OAAOC,IAAP,CACG/F,UAAWgG,EAAAA,KAAK,eAAgBhG,GAChC,aAAYsE,EACZ,sBAAqBC,EACrBT,KAAK,OACLmC,QAAS,CAAEC,QAAS,GACpBC,QAAS,CAAED,QAAS,GACpBE,KAAM,CAAEF,QAAS,GACjBG,WAAY,CAAEC,KAAM,SAAUC,SAAU,IACxC,iBAAgBxE,EAChB,YAAU,YACV,eAAc1B,EACd+E,IAAKtD,EAAK0E,eACNzD,EAAiB,CACjB8B,GAAIpE,EACJgG,MAAO,CACHC,SAAU1E,EACV2E,IAAK9E,GAAK,GACV+E,KAAMhF,GAAK,MAIlB7B,WAAM8G,SAASC,IAAI/G,GAAU,CAACgH,EAAOC,IAC9BlC,EAAMC,eAAegC,IAAU9B,EAAQC,aAAa6B,GAC7CjC,EAAMK,aACT4B,EACA/D,EAAa,IACN+D,EAAMlH,MACToH,SAAU7F,IAAgB4F,EAAQ,GAClC,EAAAlD,KAAM,WACNsB,IAAI8B,GACahG,EAAAwD,QAAQsC,GAASE,CAClC,EACA7B,QAAQ3B,WACE,OAAAyD,GAAAC,EAAAL,EAAAlH,OAAMwF,UAAN8B,EAAAE,KAAAD,EAAgB1D,IAClBA,EAAM4D,mBAGJ,MAAA3G,GAAAA,EAAA4G,OAAOC,KAAK,SACtB,EACAC,UAAU/D,WACA,OAAAyD,GAAAC,EAAAL,EAAAlH,OAAM4H,YAANN,EAAAE,KAAAD,EAAkB1D,IACpBA,EAAM4D,mBAGJ,MAAA3G,GAAAA,EAAA4G,OAAOC,KAAK,WAEe,qBAA7B9D,EAAMgE,cAAc5D,MACN,UAAdJ,EAAMiE,KAGNlG,GAAU,GAElB,EACAmG,eACQrG,GAAclB,GACdgB,EAAe2F,EAEvB,KAKLD,cAOnC,IAGRpH,EAAckI,YAAc,gBAErB,MAAMC,EAAOlI,EAAAA,YAAyC,CAACC,EAAOuF,IAGhD,OAFApE,EAAAA,gCAIR+G,EAAAA,aACG,CAAAhI,SAAAwF,EAAAA,IAAC5F,GAAcyF,IAAAA,KAAcvF,MAKjC0F,EAAAA,IAAA5F,EAAA,CAAcyF,IAAAA,KAAcvF,MAExCiI,EAAKD,YAAc"}
1
+ {"version":3,"file":"Menu.cjs","sources":["../../../../src/components/menu/Menu.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n type Placement,\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} from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React, {\n type ButtonHTMLAttributes,\n forwardRef,\n type ReactNode,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport * as ReactIs from \"react-is\";\nimport { DataTestAutoId, WithChildren } from \"../../core/types.js\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport { getThemeAndDensity } from \"../../utilities/getThemeAndDensity.js\";\nimport { useMenuWideEvents } from \"./useMenuWideEvents.js\";\n\nexport interface MenuProps\n extends DataTestAutoId,\n WithChildren,\n Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n className?: string;\n /**\n * Initiell plassering av menyen. Dersom det ikke er plass på skjermen der du\n * angir at den skal åpnes vil den slyttes automatisk.\n * @default \"bottom-start\" på toppnivå, \"right-start\" for undermenyer\n * */\n initialPlacement?: Placement;\n /**\n * Angir om menyen skal åpnes ved hover (uten å måtte klikke)\n * @default false\n */\n openOnHover?: boolean;\n /**\n * Angir om menyen skal holdes åpen når man klikker utenfor menyen\n * @default false\n */\n keepOpenOnClickOutside?: boolean;\n /**\n * Elementet som fungerer som trigger for menyen. Dersom elementet ikke er en `<button>`\n * eller en `forwardRef<HTMLButtonElement>` vil det bli lagt inne i en knapp\n * med forhåndsdefinert stil. For å komme raskt i gang kan du bruke komponenten\n * `MenuTriggerButton` fra denne pakken.\n */\n triggerElement: ReactNode;\n /**\n * Kan brukes til å styre utenfra om menyen skal være åpen eller ikke.\n * @default false\n */\n isOpen?: boolean;\n /**\n * Callback som kalles når menyen åpnes eller lukkes.\n */\n onToggle?: (isOpen: boolean) => void;\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 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 { x, y, refs, placement, strategy, context } = 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 return (\n <FloatingNode id={nodeId}>\n {React.isValidElement(triggerElement) &&\n (triggerElement.type === \"button\" ||\n ReactIs.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 <AnimatePresence>\n {isOpen && (\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 <motion.div\n className={clsx(\"jkl jkl-menu\", className)}\n data-theme={theme}\n data-layout-density={density}\n role=\"menu\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{\n ease: \"easeIn\",\n duration: 0.1,\n }}\n data-placement={placement}\n aria-live=\"assertive\"\n aria-hidden={!isOpen}\n ref={refs.setFloating}\n {...getFloatingProps({\n id: MenuId,\n style: {\n position: strategy,\n top: y ?? \"\",\n left: x ?? \"\",\n },\n })}\n >\n {React.Children.map(\n children,\n (child, index) => {\n if (\n React.isValidElement(child) &&\n ReactIs.isForwardRef(child)\n ) {\n return React.cloneElement(\n child,\n getItemProps({\n ...child.props,\n tabIndex:\n activeIndex ===\n 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\n .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(\n false,\n );\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 </motion.div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </AnimatePresence>\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":["MenuComponent","forwardRef","props","forwardedRef","children","className","initialPlacement","openOnHover","keepOpenOnClickOutside","triggerElement","isOpen","isOpenOverride","onToggle","triggerProps","MenuId","useId","tree","useFloatingTree","nodeId","useFloatingNodeId","parentId","useFloatingParentNodeId","isNested","listItemsRef","useRef","activeIndex","setActiveIndex","useState","allowHover","isOpenDefault","setIsOpen","useMenuWideEvents","useEffect","x","y","refs","placement","strategy","context","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","jsxs","FloatingNode","id","React","isValidElement","type","ReactIs","isForwardRef","cloneElement","ref","onClick","stopPropagation","jsx","AnimatePresence","FloatingPortal","FloatingFocusManager","modal","initialFocus","returnFocus","motion","div","clsx","initial","opacity","animate","exit","transition","ease","duration","setFloating","style","position","top","left","Children","map","child","index","tabIndex","node","_b","_a","call","defaultPrevented","events","emit","onKeyDown","currentTarget","key","onMouseEnter","displayName","Menu","FloatingTree"],"mappings":"wpBA8EMA,EAAgBC,EAAAA,YAClB,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,QAAM,YAEfC,EAAOC,EAAAA,kBACPC,EAASC,EAAAA,oBACTC,EAAWC,EAAAA,0BACXC,EAAuB,MAAZF,EAEXG,EAAeC,SAAwC,KACtDC,EAAaC,GAAkBC,WAAwB,OAE1DC,WAAAA,EACAlB,OAAQmB,EACRC,UAAAA,GACAC,oBAAkBf,EAAME,EAAQE,GAE9BV,OACiB,IAAnBC,EAA+BA,EAAiBkB,EAEpDG,EAAAA,WAAU,IAAM,MAAApB,OAAAA,EAAAA,EAAWF,IAAS,CAACA,EAAQE,IAEvC,MAAEqB,EAAAA,EAAGC,EAAAA,EAAGC,KAAAA,EAAMC,UAAAA,EAAWC,SAAAA,EAAUC,QAAAA,GAAYC,cAAY,CAC7DrB,OAAAA,EACAsB,KAAM9B,EACN+B,aAAcX,EACdM,UACI9B,IAAqBgB,EAAW,cAAgB,gBACpDoB,WAAY,CACRC,EAAAA,OAAO,GACPC,OAAK,CACDC,0BAA2B,MAC3BC,WAAW,IAEfC,QAAM,CAAEC,QAAS,KAErBC,qBAAsBC,EAAAA,cAGlBC,kBAAAA,EAAmBC,iBAAAA,EAAkBC,aAAAA,GACzCC,EAAAA,gBAAgB,CACZC,EAAAA,SAASjB,EAAS,CACdkB,QAASjD,GAAeqB,EACxB6B,MAAO,CAAEjB,KAAM,IACfkB,YAAaC,EAAAA,YAAY,CACrBC,eAAe,EACfC,oBAAoB,MAG5BC,EAAAA,SAASxB,EAAS,CACdyB,MAAO,cAEXC,EAAAA,WAAW1B,EAAS,CAAE2B,cAAezD,IACrC0D,EAAAA,QAAQ5B,EAAS,CAAE6B,KAAM,SACzBC,EAAAA,kBAAkB9B,EAAS,CACvB+B,QAAS9C,EACTE,YAAAA,EACA6C,OAAQhD,EACRiD,WAAY7C,MAIlB8C,EAAeC,EAAAA,aAAa,CAACtC,EAAKuC,aAAcvE,KAI9CwE,MAAAA,EAAOC,QAAAA,GAAYC,EAAAA,mBACvB1C,EAAK2C,UAAUC,SAIf,OAAAC,EAAAA,KAACC,EAAaA,aAAA,CAAAC,GAAIhE,EACbd,SAAA,CAAM+E,EAAAC,eAAe3E,KACG,WAAxBA,EAAe4E,MACZC,EAAQC,aAAa9E,IAEnB0E,EAAMK,aAAa/E,EAAgB,IAC5B0C,EAAkB,IACdtC,EACH4E,IAAKjB,EACLL,KAAM7C,EAAW,gBAAa,EAC9B,gBAAiBR,EACjB4E,QAAQ3B,GACJA,EAAM4B,iBACV,MAIRlF,EACLmF,MAAAC,EAAAA,gBAAA,CACIzF,SACGM,GAAAkF,EAAAA,IAACE,EACGA,eAAA,CAAA1F,SAAAwF,EAAAA,IAACG,EAAAA,qBAAA,CACGzD,QAAAA,EAEA0D,OAAO,EAEPC,aAAc3E,GAAW,EAAK,EAE9B4E,aAAc5E,EAEdlB,SAAAwF,EAAAA,IAACO,EAAAA,OAAOC,IAAP,CACG/F,UAAWgG,EAAAA,KAAK,eAAgBhG,GAChC,aAAYsE,EACZ,sBAAqBC,EACrBT,KAAK,OACLmC,QAAS,CAAEC,QAAS,GACpBC,QAAS,CAAED,QAAS,GACpBE,KAAM,CAAEF,QAAS,GACjBG,WAAY,CACRC,KAAM,SACNC,SAAU,IAEd,iBAAgBxE,EAChB,YAAU,YACV,eAAc1B,EACd+E,IAAKtD,EAAK0E,eACNzD,EAAiB,CACjB8B,GAAIpE,EACJgG,MAAO,CACHC,SAAU1E,EACV2E,IAAK9E,GAAK,GACV+E,KAAMhF,GAAK,MAIlB7B,WAAM8G,SAASC,IACZ/G,GACA,CAACgH,EAAOC,IAEAlC,EAAMC,eAAegC,IACrB9B,EAAQC,aAAa6B,GAEdjC,EAAMK,aACT4B,EACA/D,EAAa,IACN+D,EAAMlH,MACToH,SACI7F,IACA4F,EACM,GAEV,EAAAlD,KAAM,WACNsB,IACI8B,GAEahG,EAAAwD,QACTsC,GACAE,CACR,EACA7B,QAAQ3B,WACJ,OAAAyD,GAAAC,EAAAL,EAAMlH,OAAMwF,UAAZ8B,EAAAE,KAAAD,EACI1D,IAGAA,EAAM4D,mBAIV,MAAA3G,GAAAA,EAAM4G,OAAOC,KACT,SAER,EACAC,UAAU/D,WACN,OAAAyD,GAAAC,EAAAL,EAAMlH,OAAM4H,YAAZN,EAAAE,KAAAD,EACI1D,IAGAA,EAAM4D,mBAIV,MAAA3G,GAAAA,EAAM4G,OAAOC,KACT,WAMI,qBAHJ9D,EACKgE,cACA5D,MAGD,UADJJ,EAAMiE,KAINlG,GACI,GAGZ,EACAmG,eAEQrG,GACAlB,GAEAgB,EACI2F,EAGZ,KAKLD,cAQvC,IAIZpH,EAAckI,YAAc,gBAErB,MAAMC,EAAOlI,EAAAA,YAAyC,CAACC,EAAOuF,IAGhD,OAFApE,EAAAA,gCAIR+G,EAAAA,aACG,CAAAhI,SAAAwF,EAAAA,IAAC5F,GAAcyF,IAAAA,KAAcvF,MAKjC0F,EAAAA,IAAA5F,EAAA,CAAcyF,IAAAA,KAAcvF,MAExCiI,EAAKD,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.cjs","sources":["../../../../src/components/menu/MenuItem.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef, ReactNode } from \"react\";\nimport { PolymorphicPropsWithRef, PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ArrowNorthEastIcon, ChevronRightIcon } from \"../icon/index.js\";\n\nexport type MenuItemProps<ElementType extends React.ElementType> = PolymorphicPropsWithRef<\n ElementType,\n {\n /**\n * Et ikon som vises før innholdet i menypunktet\n */\n icon?: ReactNode;\n } & (\n | {\n expandable?: never;\n /**\n * Indikerer at menypunktet åpner noe i et nytt vindu eller tab\n * @default false\n */\n external?: boolean;\n }\n | {\n external?: never;\n /**\n * Indikerer at menypunktet er utvidbart ved å vise en chevron\n * @default false\n */\n expandable?: boolean;\n }\n )\n>;\n\ntype MenuItemComponent = <ElementType extends React.ElementType = \"button\">(\n props: MenuItemProps<ElementType>,\n) => React.ReactElement | null;\n\nexport const MenuItem = forwardRef(function MenuItem<ElementType extends React.ElementType = \"button\">(\n props: MenuItemProps<ElementType>,\n ref: PolymorphicRef<ElementType>,\n) {\n const { as = \"button\", className, children, icon, expandable = false, external = false, ...rest } = props;\n const Component = as;\n const type = Component === \"button\" ? \"button\" : undefined;\n\n return (\n <Component ref={ref} type={type} role=\"menuitem\" className={clsx(\"jkl-menu-item\", className)} {...rest}>\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 <ArrowNorthEastIcon />\n </div>\n )}\n </div>\n {expandable && <ChevronRightIcon className=\"jkl-menu-item__chevron\" bold />}\n </Component>\n );\n}) as MenuItemComponent;\n"],"names":["MenuItem","forwardRef","props","ref","as","className","children","icon","expandable","external","rest","Component","type","jsxs","role","clsx","jsx","ArrowNorthEastIcon","ChevronRightIcon","bold"],"mappings":"+oDAoCO,MAAMA,EAAWC,EAAAA,YAAW,SAC/BC,EACAC,GAEA,MAAQC,GAAAA,EAAK,SAAUC,UAAAA,EAAWC,SAAAA,EAAUC,KAAAA,EAAMC,WAAAA,GAAa,EAAOC,SAAAA,GAAW,KAAUC,GAASR,EAC9FS,EAAYP,EACZQ,EAAqB,WAAdD,EAAyB,cAAW,EAEjD,OACKE,EAAAA,KAAAF,EAAA,CAAUR,IAAAA,EAAUS,KAAAA,EAAYE,KAAK,WAAWT,UAAWU,EAAAA,KAAK,gBAAiBV,MAAgBK,EAC7FJ,SAAA,CAAAC,GAASS,EAAAA,IAAA,OAAA,CAAKX,UAAU,sBAAuBC,SAAKC,IACrDM,EAAAA,KAAC,MAAI,CAAAR,UAAU,yBACVC,SAAA,CAAAA,EACAG,GACIO,EAAAA,IAAA,MAAA,CAAIX,UAAW,uBACZC,SAAAU,MAACC,EAAAA,oBAAmB,QAI/BT,GAAeQ,EAAAA,IAAAE,mBAAA,CAAiBb,UAAU,yBAAyBc,MAAI,MAGpF"}
1
+ {"version":3,"file":"MenuItem.cjs","sources":["../../../../src/components/menu/MenuItem.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef, ReactNode } from \"react\";\nimport {\n PolymorphicPropsWithRef,\n PolymorphicRef,\n} from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ArrowNorthEastIcon, ChevronRightIcon } from \"../icon/index.js\";\n\nexport type MenuItemProps<ElementType extends React.ElementType> =\n PolymorphicPropsWithRef<\n ElementType,\n {\n /**\n * Et ikon som vises før innholdet i menypunktet\n */\n icon?: ReactNode;\n } & (\n | {\n expandable?: never;\n /**\n * Indikerer at menypunktet åpner noe i et nytt vindu eller tab\n * @default false\n */\n external?: boolean;\n }\n | {\n external?: never;\n /**\n * Indikerer at menypunktet er utvidbart ved å vise en chevron\n * @default false\n */\n expandable?: boolean;\n }\n )\n >;\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 <ArrowNorthEastIcon />\n </div>\n )}\n </div>\n {expandable && (\n <ChevronRightIcon className=\"jkl-menu-item__chevron\" bold />\n )}\n </Component>\n );\n}) as MenuItemComponent;\n"],"names":["MenuItem","forwardRef","props","ref","as","className","children","icon","expandable","external","rest","Component","type","jsxs","role","clsx","jsx","ArrowNorthEastIcon","ChevronRightIcon","bold"],"mappings":"+oDAwCO,MAAMA,EAAWC,EAAAA,YAAW,SAEjCC,EAAmCC,GAC3B,MACFC,GAAAA,EAAK,SACLC,UAAAA,EACAC,SAAAA,EACAC,KAAAA,EACAC,WAAAA,GAAa,EACbC,SAAAA,GAAW,KACRC,GACHR,EACES,EAAYP,EACZQ,EAAqB,WAAdD,EAAyB,cAAW,EAG7C,OAAAE,EAAAA,KAACF,EAAA,CACGR,IAAAA,EACAS,KAAAA,EACAE,KAAK,WACLT,UAAWU,EAAAA,KAAK,gBAAiBV,MAC7BK,EAEHJ,SAAA,CAAAC,GAASS,EAAAA,IAAA,OAAA,CAAKX,UAAU,sBAAuBC,SAAKC,IACrDM,EAAAA,KAAC,MAAI,CAAAR,UAAU,yBACVC,SAAA,CAAAA,EACAG,GACIO,EAAAA,IAAA,MAAA,CAAIX,UAAW,uBACZC,SAAAU,MAACC,EAAAA,oBAAmB,QAI/BT,GACIQ,EAAAA,IAAAE,mBAAA,CAAiBb,UAAU,yBAAyBc,MAAI,MAIzE"}