@fremtind/jokul 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (826) hide show
  1. package/README.md +2 -0
  2. package/build/build-stats.html +1 -1
  3. package/build/cjs/components/autosuggest/Autosuggest.cjs +1 -1
  4. package/build/cjs/components/autosuggest/Autosuggest.cjs.map +1 -1
  5. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs +1 -1
  6. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs.map +1 -1
  7. package/build/cjs/components/autosuggest/ControllerButton.cjs.map +1 -1
  8. package/build/cjs/components/autosuggest/Menu.cjs +1 -1
  9. package/build/cjs/components/autosuggest/Menu.cjs.map +1 -1
  10. package/build/cjs/components/autosuggest/utils.cjs.map +1 -1
  11. package/build/cjs/components/breadcrumb/Breadcrumb.cjs +1 -1
  12. package/build/cjs/components/breadcrumb/Breadcrumb.cjs.map +1 -1
  13. package/build/cjs/components/breadcrumb/BreadcrumbItem.cjs +1 -1
  14. package/build/cjs/components/breadcrumb/BreadcrumbItem.cjs.map +1 -1
  15. package/build/cjs/components/breadcrumb/documentation/BreadcrumbDocs.cjs.map +1 -1
  16. package/build/cjs/components/button/Button.cjs +1 -1
  17. package/build/cjs/components/button/Button.cjs.map +1 -1
  18. package/build/cjs/components/button/documentation/AnchorDocs.cjs.map +1 -1
  19. package/build/cjs/components/button/documentation/ButtonDocs.cjs +1 -1
  20. package/build/cjs/components/button/documentation/ButtonDocs.cjs.map +1 -1
  21. package/build/cjs/components/card/Card.cjs +1 -1
  22. package/build/cjs/components/card/Card.cjs.map +1 -1
  23. package/build/cjs/components/card/CardImage.cjs +1 -1
  24. package/build/cjs/components/card/CardImage.cjs.map +1 -1
  25. package/build/cjs/components/checkbox/Checkbox.cjs +1 -1
  26. package/build/cjs/components/checkbox/Checkbox.cjs.map +1 -1
  27. package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs +1 -1
  28. package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs.map +1 -1
  29. package/build/cjs/components/checkbox-panel/types.d.cts +12 -0
  30. package/build/cjs/components/chip/Chip.cjs +1 -1
  31. package/build/cjs/components/chip/Chip.cjs.map +1 -1
  32. package/build/cjs/components/combobox/Combobox.cjs +1 -1
  33. package/build/cjs/components/combobox/Combobox.cjs.map +1 -1
  34. package/build/cjs/components/cookie-consent/CookieConsent.cjs +1 -1
  35. package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
  36. package/build/cjs/components/cookie-consent/CookieConsentContext.cjs +1 -1
  37. package/build/cjs/components/cookie-consent/CookieConsentContext.cjs.map +1 -1
  38. package/build/cjs/components/cookie-consent/cookieConsentUtils.cjs +1 -1
  39. package/build/cjs/components/cookie-consent/cookieConsentUtils.cjs.map +1 -1
  40. package/build/cjs/components/countdown/Countdown.cjs +1 -1
  41. package/build/cjs/components/countdown/Countdown.cjs.map +1 -1
  42. package/build/cjs/components/datepicker/DatePicker.cjs +1 -1
  43. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  44. package/build/cjs/components/datepicker/internal/Calendar.cjs +1 -1
  45. package/build/cjs/components/datepicker/internal/Calendar.cjs.map +1 -1
  46. package/build/cjs/components/datepicker/internal/calendarReducer.cjs.map +1 -1
  47. package/build/cjs/components/datepicker/internal/useCalendar.cjs +1 -1
  48. package/build/cjs/components/datepicker/internal/useCalendar.cjs.map +1 -1
  49. package/build/cjs/components/datepicker/internal/utils.cjs +1 -1
  50. package/build/cjs/components/datepicker/internal/utils.cjs.map +1 -1
  51. package/build/cjs/components/datepicker/utils.cjs.map +1 -1
  52. package/build/cjs/components/datepicker/validation.cjs.map +1 -1
  53. package/build/cjs/components/description-list/DescriptionList.cjs.map +1 -1
  54. package/build/cjs/components/expander/ExpandablePanel.cjs +1 -1
  55. package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
  56. package/build/cjs/components/expander/ExpandablePanelContent.cjs +1 -1
  57. package/build/cjs/components/expander/ExpandablePanelContent.cjs.map +1 -1
  58. package/build/cjs/components/expander/Expander.cjs +1 -1
  59. package/build/cjs/components/expander/Expander.cjs.map +1 -1
  60. package/build/cjs/components/feedback/Feedback.cjs.map +1 -1
  61. package/build/cjs/components/feedback/feedbackContext.cjs.map +1 -1
  62. package/build/cjs/components/feedback/followup/Followup.cjs +1 -1
  63. package/build/cjs/components/feedback/followup/Followup.cjs.map +1 -1
  64. package/build/cjs/components/feedback/followup/followupContext.cjs.map +1 -1
  65. package/build/cjs/components/feedback/followup/useFollowup.cjs +1 -1
  66. package/build/cjs/components/feedback/followup/useFollowup.cjs.map +1 -1
  67. package/build/cjs/components/feedback/main-question/MainQuestion.cjs +1 -1
  68. package/build/cjs/components/feedback/main-question/MainQuestion.cjs.map +1 -1
  69. package/build/cjs/components/feedback/main-question/mainQuestionContext.cjs.map +1 -1
  70. package/build/cjs/components/feedback/main-question/useMainQuestion.cjs +1 -1
  71. package/build/cjs/components/feedback/main-question/useMainQuestion.cjs.map +1 -1
  72. package/build/cjs/components/feedback/presets.cjs.map +1 -1
  73. package/build/cjs/components/feedback/questions/AddonQuestion.cjs +1 -1
  74. package/build/cjs/components/feedback/questions/AddonQuestion.cjs.map +1 -1
  75. package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs +1 -1
  76. package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs.map +1 -1
  77. package/build/cjs/components/feedback/questions/ContactQuestion.cjs +1 -1
  78. package/build/cjs/components/feedback/questions/ContactQuestion.cjs.map +1 -1
  79. package/build/cjs/components/feedback/questions/RadioQuestion.cjs +1 -1
  80. package/build/cjs/components/feedback/questions/RadioQuestion.cjs.map +1 -1
  81. package/build/cjs/components/feedback/questions/SmileyQuestion.cjs +1 -1
  82. package/build/cjs/components/feedback/questions/SmileyQuestion.cjs.map +1 -1
  83. package/build/cjs/components/feedback/questions/TextQuestion.cjs +1 -1
  84. package/build/cjs/components/feedback/questions/TextQuestion.cjs.map +1 -1
  85. package/build/cjs/components/feedback/questions/smileyUtils.cjs.map +1 -1
  86. package/build/cjs/components/feedback/utils.cjs +1 -1
  87. package/build/cjs/components/feedback/utils.cjs.map +1 -1
  88. package/build/cjs/components/file/File.cjs.map +1 -1
  89. package/build/cjs/components/file-input/FileInput.cjs +1 -1
  90. package/build/cjs/components/file-input/FileInput.cjs.map +1 -1
  91. package/build/cjs/components/file-input/internal/Dropzone.cjs +1 -1
  92. package/build/cjs/components/file-input/internal/Dropzone.cjs.map +1 -1
  93. package/build/cjs/components/file-input/internal/Input.cjs +1 -1
  94. package/build/cjs/components/file-input/internal/Input.cjs.map +1 -1
  95. package/build/cjs/components/file-input/internal/MaxSize.cjs.map +1 -1
  96. package/build/cjs/components/file-input/internal/fileInputContext.cjs.map +1 -1
  97. package/build/cjs/components/file-input/internal/validateFileInputFiles.cjs +1 -1
  98. package/build/cjs/components/file-input/internal/validateFileInputFiles.cjs.map +1 -1
  99. package/build/cjs/components/file-input/utils.cjs +1 -1
  100. package/build/cjs/components/file-input/utils.cjs.map +1 -1
  101. package/build/cjs/components/flex/Flex.cjs +1 -1
  102. package/build/cjs/components/flex/Flex.cjs.map +1 -1
  103. package/build/cjs/components/help/Help.cjs.map +1 -1
  104. package/build/cjs/components/icon/Icon.cjs +1 -1
  105. package/build/cjs/components/icon/Icon.cjs.map +1 -1
  106. package/build/cjs/components/icon/icons/ArrowDownIcon.cjs.map +1 -1
  107. package/build/cjs/components/icon/icons/ArrowLeftIcon.cjs.map +1 -1
  108. package/build/cjs/components/icon/icons/ArrowNorthEastIcon.cjs.map +1 -1
  109. package/build/cjs/components/icon/icons/ArrowRightIcon.cjs.map +1 -1
  110. package/build/cjs/components/icon/icons/ArrowUpIcon.cjs.map +1 -1
  111. package/build/cjs/components/icon/icons/CalendarIcon.cjs.map +1 -1
  112. package/build/cjs/components/icon/icons/CheckIcon.cjs.map +1 -1
  113. package/build/cjs/components/icon/icons/ChevronDownIcon.cjs.map +1 -1
  114. package/build/cjs/components/icon/icons/ChevronLeftIcon.cjs.map +1 -1
  115. package/build/cjs/components/icon/icons/ChevronRightIcon.cjs.map +1 -1
  116. package/build/cjs/components/icon/icons/ChevronUpIcon.cjs.map +1 -1
  117. package/build/cjs/components/icon/icons/CloseIcon.cjs.map +1 -1
  118. package/build/cjs/components/icon/icons/CopyIcon.cjs.map +1 -1
  119. package/build/cjs/components/icon/icons/DotsIcon.cjs.map +1 -1
  120. package/build/cjs/components/icon/icons/DragIcon.cjs.map +1 -1
  121. package/build/cjs/components/icon/icons/ErrorIcon.cjs.map +1 -1
  122. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs.map +1 -1
  123. package/build/cjs/components/icon/icons/HamburgerIcon.cjs.map +1 -1
  124. package/build/cjs/components/icon/icons/InfoIcon.cjs.map +1 -1
  125. package/build/cjs/components/icon/icons/LinkIcon.cjs.map +1 -1
  126. package/build/cjs/components/icon/icons/MinusIcon.cjs.map +1 -1
  127. package/build/cjs/components/icon/icons/OpenInNewIcon.cjs.map +1 -1
  128. package/build/cjs/components/icon/icons/PenIcon.cjs.map +1 -1
  129. package/build/cjs/components/icon/icons/PlusIcon.cjs.map +1 -1
  130. package/build/cjs/components/icon/icons/QuestionIcon.cjs.map +1 -1
  131. package/build/cjs/components/icon/icons/RedCrossIcon.cjs.map +1 -1
  132. package/build/cjs/components/icon/icons/SearchIcon.cjs.map +1 -1
  133. package/build/cjs/components/icon/icons/SuccessIcon.cjs.map +1 -1
  134. package/build/cjs/components/icon/icons/ThumbDownIcon.cjs.map +1 -1
  135. package/build/cjs/components/icon/icons/ThumbUpIcon.cjs.map +1 -1
  136. package/build/cjs/components/icon/icons/TrashCanIcon.cjs.map +1 -1
  137. package/build/cjs/components/icon/icons/WarningIcon.cjs.map +1 -1
  138. package/build/cjs/components/icon-button/IconButton.cjs +1 -1
  139. package/build/cjs/components/icon-button/IconButton.cjs.map +1 -1
  140. package/build/cjs/components/image/Image.cjs +1 -1
  141. package/build/cjs/components/image/Image.cjs.map +1 -1
  142. package/build/cjs/components/image/useImageLoadingStatus.cjs +1 -1
  143. package/build/cjs/components/image/useImageLoadingStatus.cjs.map +1 -1
  144. package/build/cjs/components/input-group/FieldGroup.cjs.map +1 -1
  145. package/build/cjs/components/input-group/InputGroup.cjs +1 -1
  146. package/build/cjs/components/input-group/InputGroup.cjs.map +1 -1
  147. package/build/cjs/components/input-group/Label.cjs.map +1 -1
  148. package/build/cjs/components/input-group/SupportLabel.cjs.map +1 -1
  149. package/build/cjs/components/link/Link.cjs +1 -1
  150. package/build/cjs/components/link/Link.cjs.map +1 -1
  151. package/build/cjs/components/link-list/LinkList.cjs +1 -1
  152. package/build/cjs/components/link-list/LinkList.cjs.map +1 -1
  153. package/build/cjs/components/list/List.cjs.map +1 -1
  154. package/build/cjs/components/list/ListItem.cjs.map +1 -1
  155. package/build/cjs/components/loader/Loader.cjs.map +1 -1
  156. package/build/cjs/components/loader/skeletons/SkeletonAnimation.cjs.map +1 -1
  157. package/build/cjs/components/loader/skeletons/SkeletonCheckboxGroup.cjs +1 -1
  158. package/build/cjs/components/loader/skeletons/SkeletonCheckboxGroup.cjs.map +1 -1
  159. package/build/cjs/components/loader/skeletons/SkeletonInput.cjs.map +1 -1
  160. package/build/cjs/components/loader/skeletons/SkeletonLabel.cjs.map +1 -1
  161. package/build/cjs/components/loader/skeletons/SkeletonRadioButtonGroup.cjs +1 -1
  162. package/build/cjs/components/loader/skeletons/SkeletonRadioButtonGroup.cjs.map +1 -1
  163. package/build/cjs/components/loader/skeletons/SkeletonTextArea.cjs.map +1 -1
  164. package/build/cjs/components/loader/useDelayedRender.cjs +1 -1
  165. package/build/cjs/components/loader/useDelayedRender.cjs.map +1 -1
  166. package/build/cjs/components/logo/Logo.cjs.map +1 -1
  167. package/build/cjs/components/logo/LogoStamp.cjs.map +1 -1
  168. package/build/cjs/components/logo/useTextSpinner.cjs +1 -1
  169. package/build/cjs/components/logo/useTextSpinner.cjs.map +1 -1
  170. package/build/cjs/components/menu/Menu.cjs +1 -1
  171. package/build/cjs/components/menu/Menu.cjs.map +1 -1
  172. package/build/cjs/components/menu/MenuDivider.cjs.map +1 -1
  173. package/build/cjs/components/menu/MenuItem.cjs +1 -1
  174. package/build/cjs/components/menu/MenuItem.cjs.map +1 -1
  175. package/build/cjs/components/menu/MenuItemCheckbox.cjs +1 -1
  176. package/build/cjs/components/menu/MenuItemCheckbox.cjs.map +1 -1
  177. package/build/cjs/components/menu/useMenuWideEvents.cjs +1 -1
  178. package/build/cjs/components/menu/useMenuWideEvents.cjs.map +1 -1
  179. package/build/cjs/components/message/DismissButton.cjs +1 -1
  180. package/build/cjs/components/message/DismissButton.cjs.map +1 -1
  181. package/build/cjs/components/message/FormErrorMessage.cjs +1 -1
  182. package/build/cjs/components/message/FormErrorMessage.cjs.map +1 -1
  183. package/build/cjs/components/message/Message.cjs +1 -1
  184. package/build/cjs/components/message/Message.cjs.map +1 -1
  185. package/build/cjs/components/modal/Modal.cjs +1 -1
  186. package/build/cjs/components/modal/Modal.cjs.map +1 -1
  187. package/build/cjs/components/modal/useModal.cjs.map +1 -1
  188. package/build/cjs/components/nav-link/NavLink.cjs +1 -1
  189. package/build/cjs/components/nav-link/NavLink.cjs.map +1 -1
  190. package/build/cjs/components/pagination/PageButton.cjs.map +1 -1
  191. package/build/cjs/components/pagination/Pagination.cjs +1 -1
  192. package/build/cjs/components/pagination/Pagination.cjs.map +1 -1
  193. package/build/cjs/components/popover/Popover.cjs +1 -1
  194. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  195. package/build/cjs/components/progress-bar/ProgressBar.cjs.map +1 -1
  196. package/build/cjs/components/radio-button/BaseRadioButton.cjs +1 -1
  197. package/build/cjs/components/radio-button/BaseRadioButton.cjs.map +1 -1
  198. package/build/cjs/components/radio-button/RadioButton.cjs +1 -1
  199. package/build/cjs/components/radio-button/RadioButton.cjs.map +1 -1
  200. package/build/cjs/components/radio-button/RadioButtonGroup.cjs.map +1 -1
  201. package/build/cjs/components/radio-panel/RadioPanel.cjs +1 -1
  202. package/build/cjs/components/radio-panel/RadioPanel.cjs.map +1 -1
  203. package/build/cjs/components/radio-panel/RadioPanelGroup.cjs.map +1 -1
  204. package/build/cjs/components/radio-panel/radioPanelContext.cjs.map +1 -1
  205. package/build/cjs/components/radio-panel/types.d.cts +12 -0
  206. package/build/cjs/components/segmented-control/SegmentedControlButton.cjs.map +1 -1
  207. package/build/cjs/components/select/NativeSelect.cjs +1 -1
  208. package/build/cjs/components/select/NativeSelect.cjs.map +1 -1
  209. package/build/cjs/components/select/Select.cjs +1 -1
  210. package/build/cjs/components/select/Select.cjs.map +1 -1
  211. package/build/cjs/components/select/index.cjs +1 -1
  212. package/build/cjs/components/select/index.d.cts +2 -0
  213. package/build/cjs/components/select/select-utils.cjs.map +1 -1
  214. package/build/cjs/components/summary-table/SummaryTable.cjs +1 -1
  215. package/build/cjs/components/summary-table/SummaryTable.cjs.map +1 -1
  216. package/build/cjs/components/summary-table/SummaryTableRow.cjs.map +1 -1
  217. package/build/cjs/components/summary-table/mocks.cjs.map +1 -1
  218. package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
  219. package/build/cjs/components/system-message/common/DismissButton.cjs +1 -1
  220. package/build/cjs/components/system-message/common/DismissButton.cjs.map +1 -1
  221. package/build/cjs/components/system-message/common/MessageIcon.cjs.map +1 -1
  222. package/build/cjs/components/table/DataTable.cjs +1 -1
  223. package/build/cjs/components/table/DataTable.cjs.map +1 -1
  224. package/build/cjs/components/table/ExpandableTableRow.cjs +1 -1
  225. package/build/cjs/components/table/ExpandableTableRow.cjs.map +1 -1
  226. package/build/cjs/components/table/ExpandableTableRowController.cjs +1 -1
  227. package/build/cjs/components/table/ExpandableTableRowController.cjs.map +1 -1
  228. package/build/cjs/components/table/Table.cjs +1 -1
  229. package/build/cjs/components/table/Table.cjs.map +1 -1
  230. package/build/cjs/components/table/TableBody.cjs +1 -1
  231. package/build/cjs/components/table/TableBody.cjs.map +1 -1
  232. package/build/cjs/components/table/TableCaption.cjs +1 -1
  233. package/build/cjs/components/table/TableCaption.cjs.map +1 -1
  234. package/build/cjs/components/table/TableCell.cjs +1 -1
  235. package/build/cjs/components/table/TableCell.cjs.map +1 -1
  236. package/build/cjs/components/table/TableColumn.cjs +1 -1
  237. package/build/cjs/components/table/TableColumn.cjs.map +1 -1
  238. package/build/cjs/components/table/TableColumnGroup.cjs +1 -1
  239. package/build/cjs/components/table/TableColumnGroup.cjs.map +1 -1
  240. package/build/cjs/components/table/TableFooter.cjs +1 -1
  241. package/build/cjs/components/table/TableFooter.cjs.map +1 -1
  242. package/build/cjs/components/table/TableHead.cjs +1 -1
  243. package/build/cjs/components/table/TableHead.cjs.map +1 -1
  244. package/build/cjs/components/table/TableHeader.cjs +1 -1
  245. package/build/cjs/components/table/TableHeader.cjs.map +1 -1
  246. package/build/cjs/components/table/TablePagination.cjs +1 -1
  247. package/build/cjs/components/table/TablePagination.cjs.map +1 -1
  248. package/build/cjs/components/table/TableRow.cjs +1 -1
  249. package/build/cjs/components/table/TableRow.cjs.map +1 -1
  250. package/build/cjs/components/table/tableSectionContext.cjs.map +1 -1
  251. package/build/cjs/components/table/utils.cjs.map +1 -1
  252. package/build/cjs/components/tabs/NavTab.cjs +1 -1
  253. package/build/cjs/components/tabs/NavTab.cjs.map +1 -1
  254. package/build/cjs/components/tabs/NavTabs.cjs +1 -1
  255. package/build/cjs/components/tabs/NavTabs.cjs.map +1 -1
  256. package/build/cjs/components/tabs/Tab.cjs +1 -1
  257. package/build/cjs/components/tabs/Tab.cjs.map +1 -1
  258. package/build/cjs/components/tabs/TabList.cjs +1 -1
  259. package/build/cjs/components/tabs/TabList.cjs.map +1 -1
  260. package/build/cjs/components/tabs/TabPanel.cjs.map +1 -1
  261. package/build/cjs/components/tabs/Tabs.cjs +1 -1
  262. package/build/cjs/components/tabs/Tabs.cjs.map +1 -1
  263. package/build/cjs/components/tabs/tabsContext.cjs.map +1 -1
  264. package/build/cjs/components/tag/Tag.cjs.map +1 -1
  265. package/build/cjs/components/text-area/BaseTextArea.cjs +1 -1
  266. package/build/cjs/components/text-area/BaseTextArea.cjs.map +1 -1
  267. package/build/cjs/components/text-area/TextArea.cjs +1 -1
  268. package/build/cjs/components/text-area/TextArea.cjs.map +1 -1
  269. package/build/cjs/components/text-input/BaseTextInput.cjs +1 -1
  270. package/build/cjs/components/text-input/BaseTextInput.cjs.map +1 -1
  271. package/build/cjs/components/text-input/TextInput.cjs +1 -1
  272. package/build/cjs/components/text-input/TextInput.cjs.map +1 -1
  273. package/build/cjs/components/toast/Toast.cjs +1 -1
  274. package/build/cjs/components/toast/Toast.cjs.map +1 -1
  275. package/build/cjs/components/toast/ToastRegion.cjs +1 -1
  276. package/build/cjs/components/toast/ToastRegion.cjs.map +1 -1
  277. package/build/cjs/components/toast/toastContext.cjs.map +1 -1
  278. package/build/cjs/components/toggle-switch/ToggleSlider.cjs +1 -1
  279. package/build/cjs/components/toggle-switch/ToggleSlider.cjs.map +1 -1
  280. package/build/cjs/components/toggle-switch/ToggleSwitch.cjs +1 -1
  281. package/build/cjs/components/toggle-switch/ToggleSwitch.cjs.map +1 -1
  282. package/build/cjs/components/toggle-switch/usePillStyles.cjs +1 -1
  283. package/build/cjs/components/toggle-switch/usePillStyles.cjs.map +1 -1
  284. package/build/cjs/components/tooltip/PopupTip.cjs.map +1 -1
  285. package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
  286. package/build/cjs/components/tooltip/TooltipContent.cjs +1 -1
  287. package/build/cjs/components/tooltip/TooltipContent.cjs.map +1 -1
  288. package/build/cjs/components/tooltip/TooltipTrigger.cjs +1 -1
  289. package/build/cjs/components/tooltip/TooltipTrigger.cjs.map +1 -1
  290. package/build/cjs/components-beta/select/Select.cjs +2 -0
  291. package/build/cjs/components-beta/select/Select.cjs.map +1 -0
  292. package/build/cjs/components-beta/select/Select.d.cts +3 -0
  293. package/build/cjs/components-beta/select/index.cjs +2 -0
  294. package/build/cjs/components-beta/select/index.cjs.map +1 -0
  295. package/build/cjs/components-beta/select/index.d.cts +2 -0
  296. package/build/cjs/components-beta/select/types.cjs +2 -0
  297. package/build/cjs/components-beta/select/types.cjs.map +1 -0
  298. package/build/cjs/components-beta/select/types.d.cts +10 -0
  299. package/build/cjs/core/tokens/style-dictionary/config.cjs +1 -1
  300. package/build/cjs/core/tokens/style-dictionary/config.cjs.map +1 -1
  301. package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.cjs +1 -1
  302. package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.cjs.map +1 -1
  303. package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.cjs +1 -1
  304. package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.cjs.map +1 -1
  305. package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.cjs +1 -1
  306. package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.cjs.map +1 -1
  307. package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.cjs +1 -1
  308. package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.cjs.map +1 -1
  309. package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.cjs +1 -1
  310. package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.cjs.map +1 -1
  311. package/build/cjs/hooks/mediaQueryUtils.cjs.map +1 -1
  312. package/build/cjs/hooks/stories/content.cjs.map +1 -1
  313. package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.cjs +1 -1
  314. package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.cjs.map +1 -1
  315. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs +1 -1
  316. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs.map +1 -1
  317. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs +1 -1
  318. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs.map +1 -1
  319. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs +1 -1
  320. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs.map +1 -1
  321. package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.cjs +1 -1
  322. package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.cjs.map +1 -1
  323. package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs +1 -1
  324. package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs.map +1 -1
  325. package/build/cjs/hooks/useClickOutside/useClickOutside.cjs +1 -1
  326. package/build/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  327. package/build/cjs/hooks/useElementDimensions/useElementDimensions.cjs +1 -1
  328. package/build/cjs/hooks/useElementDimensions/useElementDimensions.cjs.map +1 -1
  329. package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs +1 -1
  330. package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs.map +1 -1
  331. package/build/cjs/hooks/useId/useId.cjs.map +1 -1
  332. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +1 -1
  333. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  334. package/build/cjs/hooks/useKeyListener/useKeyListener.cjs +1 -1
  335. package/build/cjs/hooks/useKeyListener/useKeyListener.cjs.map +1 -1
  336. package/build/cjs/hooks/useListNavigation/useListNavigation.cjs +1 -1
  337. package/build/cjs/hooks/useListNavigation/useListNavigation.cjs.map +1 -1
  338. package/build/cjs/hooks/useLocalStorage/useLocalStorage.cjs +1 -1
  339. package/build/cjs/hooks/useLocalStorage/useLocalStorage.cjs.map +1 -1
  340. package/build/cjs/hooks/useMutationObserver/useMutationObserver.cjs +1 -1
  341. package/build/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
  342. package/build/cjs/hooks/usePreviousValue/usePreviousValue.cjs +1 -1
  343. package/build/cjs/hooks/usePreviousValue/usePreviousValue.cjs.map +1 -1
  344. package/build/cjs/hooks/useProgressiveImg/useProgressiveImg.cjs +1 -1
  345. package/build/cjs/hooks/useProgressiveImg/useProgressiveImg.cjs.map +1 -1
  346. package/build/cjs/hooks/useScreen/state.cjs.map +1 -1
  347. package/build/cjs/hooks/useScreen/useScreen.cjs +1 -1
  348. package/build/cjs/hooks/useScreen/useScreen.cjs.map +1 -1
  349. package/build/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs +1 -1
  350. package/build/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
  351. package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.cjs +1 -1
  352. package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.cjs.map +1 -1
  353. package/build/cjs/shared/input-panel/BasePanel.cjs +1 -1
  354. package/build/cjs/shared/input-panel/BasePanel.cjs.map +1 -1
  355. package/build/cjs/shared/input-panel/BasePanel.d.cts +14 -2
  356. package/build/cjs/tailwind/plugins/jokulTypographyPlugin.cjs +1 -1
  357. package/build/cjs/tailwind/plugins/jokulTypographyPlugin.cjs.map +1 -1
  358. package/build/cjs/tailwind/tailwindPreset.cjs.map +1 -1
  359. package/build/cjs/utilities/formatters/avstand/formatAvstand.cjs.map +1 -1
  360. package/build/cjs/utilities/formatters/bytes/formatBytes.cjs.map +1 -1
  361. package/build/cjs/utilities/formatters/date/formatDate.cjs.map +1 -1
  362. package/build/cjs/utilities/formatters/fodselsnummer/formatFodselsnummer.cjs.map +1 -1
  363. package/build/cjs/utilities/formatters/kontonummer/formatKontonummer.cjs.map +1 -1
  364. package/build/cjs/utilities/formatters/kortnummer/formatKortnummer.cjs.map +1 -1
  365. package/build/cjs/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.cjs.map +1 -1
  366. package/build/cjs/utilities/formatters/telefonnummer/formatTelefonnummer.cjs.map +1 -1
  367. package/build/cjs/utilities/formatters/util/formatNumber.cjs.map +1 -1
  368. package/build/cjs/utilities/formatters/util/parseNumber.cjs +1 -1
  369. package/build/cjs/utilities/formatters/util/parseNumber.cjs.map +1 -1
  370. package/build/cjs/utilities/formatters/util/registerWithMask.cjs.map +1 -1
  371. package/build/cjs/utilities/formatters/valuta/formatValuta.cjs.map +1 -1
  372. package/build/cjs/utilities/getThemeAndDensity.cjs.map +1 -1
  373. package/build/cjs/utilities/polymorphism/SlotComponent.cjs +1 -1
  374. package/build/cjs/utilities/polymorphism/SlotComponent.cjs.map +1 -1
  375. package/build/cjs/utilities/polymorphism/mergeProps.cjs.map +1 -1
  376. package/build/cjs/utilities/polymorphism/mergeRefs.cjs.map +1 -1
  377. package/build/cjs/utilities/tabListener.cjs +1 -1
  378. package/build/cjs/utilities/tabListener.cjs.map +1 -1
  379. package/build/cjs/utilities/validators/hasMinimumWords/hasMinimumWords.cjs +1 -1
  380. package/build/cjs/utilities/validators/hasMinimumWords/hasMinimumWords.cjs.map +1 -1
  381. package/build/cjs/utilities/validators/isExactLength/isExactLength.cjs.map +1 -1
  382. package/build/cjs/utilities/validators/isValidFodselsnummer/isValidFodselsnummer.cjs +1 -1
  383. package/build/cjs/utilities/validators/isValidFodselsnummer/isValidFodselsnummer.cjs.map +1 -1
  384. package/build/cjs/utilities/validators/isValidKortnummer/isValidKortnummer.cjs +1 -1
  385. package/build/cjs/utilities/validators/isValidKortnummer/isValidKortnummer.cjs.map +1 -1
  386. package/build/cjs/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.cjs +1 -1
  387. package/build/cjs/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.cjs.map +1 -1
  388. package/build/cjs/utilities/valuePair.cjs.map +1 -1
  389. package/build/clsx-BeLtu-UY.js.map +1 -1
  390. package/build/clsx-E3yX_9sL.cjs.map +1 -1
  391. package/build/es/components/autosuggest/Autosuggest.js +1 -1
  392. package/build/es/components/autosuggest/Autosuggest.js.map +1 -1
  393. package/build/es/components/autosuggest/BaseAutosuggest.js +1 -1
  394. package/build/es/components/autosuggest/BaseAutosuggest.js.map +1 -1
  395. package/build/es/components/autosuggest/ControllerButton.js.map +1 -1
  396. package/build/es/components/autosuggest/Menu.js +1 -1
  397. package/build/es/components/autosuggest/Menu.js.map +1 -1
  398. package/build/es/components/autosuggest/utils.js.map +1 -1
  399. package/build/es/components/breadcrumb/Breadcrumb.js +1 -1
  400. package/build/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  401. package/build/es/components/breadcrumb/BreadcrumbItem.js +1 -1
  402. package/build/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  403. package/build/es/components/breadcrumb/documentation/BreadcrumbDocs.js.map +1 -1
  404. package/build/es/components/button/Button.js +1 -1
  405. package/build/es/components/button/Button.js.map +1 -1
  406. package/build/es/components/button/documentation/AnchorDocs.js.map +1 -1
  407. package/build/es/components/button/documentation/ButtonDocs.js +1 -1
  408. package/build/es/components/button/documentation/ButtonDocs.js.map +1 -1
  409. package/build/es/components/card/Card.js +1 -1
  410. package/build/es/components/card/Card.js.map +1 -1
  411. package/build/es/components/card/CardImage.js +1 -1
  412. package/build/es/components/card/CardImage.js.map +1 -1
  413. package/build/es/components/checkbox/Checkbox.js +1 -1
  414. package/build/es/components/checkbox/Checkbox.js.map +1 -1
  415. package/build/es/components/checkbox-panel/CheckboxPanel.js +1 -1
  416. package/build/es/components/checkbox-panel/CheckboxPanel.js.map +1 -1
  417. package/build/es/components/checkbox-panel/types.d.ts +12 -0
  418. package/build/es/components/chip/Chip.js +1 -1
  419. package/build/es/components/chip/Chip.js.map +1 -1
  420. package/build/es/components/combobox/Combobox.js +1 -1
  421. package/build/es/components/combobox/Combobox.js.map +1 -1
  422. package/build/es/components/cookie-consent/CookieConsent.js +1 -1
  423. package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
  424. package/build/es/components/cookie-consent/CookieConsentContext.js +1 -1
  425. package/build/es/components/cookie-consent/CookieConsentContext.js.map +1 -1
  426. package/build/es/components/cookie-consent/cookieConsentUtils.js +1 -1
  427. package/build/es/components/cookie-consent/cookieConsentUtils.js.map +1 -1
  428. package/build/es/components/countdown/Countdown.js +1 -1
  429. package/build/es/components/countdown/Countdown.js.map +1 -1
  430. package/build/es/components/datepicker/DatePicker.js +1 -1
  431. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  432. package/build/es/components/datepicker/internal/Calendar.js +1 -1
  433. package/build/es/components/datepicker/internal/Calendar.js.map +1 -1
  434. package/build/es/components/datepicker/internal/calendarReducer.js.map +1 -1
  435. package/build/es/components/datepicker/internal/useCalendar.js +1 -1
  436. package/build/es/components/datepicker/internal/useCalendar.js.map +1 -1
  437. package/build/es/components/datepicker/internal/utils.js +1 -1
  438. package/build/es/components/datepicker/internal/utils.js.map +1 -1
  439. package/build/es/components/datepicker/utils.js.map +1 -1
  440. package/build/es/components/expander/ExpandablePanel.js +1 -1
  441. package/build/es/components/expander/ExpandablePanel.js.map +1 -1
  442. package/build/es/components/expander/ExpandablePanelContent.js +1 -1
  443. package/build/es/components/expander/ExpandablePanelContent.js.map +1 -1
  444. package/build/es/components/expander/Expander.js +1 -1
  445. package/build/es/components/expander/Expander.js.map +1 -1
  446. package/build/es/components/feedback/Feedback.js.map +1 -1
  447. package/build/es/components/feedback/feedbackContext.js.map +1 -1
  448. package/build/es/components/feedback/followup/Followup.js +1 -1
  449. package/build/es/components/feedback/followup/Followup.js.map +1 -1
  450. package/build/es/components/feedback/followup/useFollowup.js +1 -1
  451. package/build/es/components/feedback/followup/useFollowup.js.map +1 -1
  452. package/build/es/components/feedback/main-question/MainQuestion.js +1 -1
  453. package/build/es/components/feedback/main-question/MainQuestion.js.map +1 -1
  454. package/build/es/components/feedback/main-question/useMainQuestion.js +1 -1
  455. package/build/es/components/feedback/main-question/useMainQuestion.js.map +1 -1
  456. package/build/es/components/feedback/questions/AddonQuestion.js +1 -1
  457. package/build/es/components/feedback/questions/AddonQuestion.js.map +1 -1
  458. package/build/es/components/feedback/questions/CheckboxQuestion.js +1 -1
  459. package/build/es/components/feedback/questions/CheckboxQuestion.js.map +1 -1
  460. package/build/es/components/feedback/questions/ContactQuestion.js +1 -1
  461. package/build/es/components/feedback/questions/ContactQuestion.js.map +1 -1
  462. package/build/es/components/feedback/questions/RadioQuestion.js +1 -1
  463. package/build/es/components/feedback/questions/RadioQuestion.js.map +1 -1
  464. package/build/es/components/feedback/questions/SmileyQuestion.js +1 -1
  465. package/build/es/components/feedback/questions/SmileyQuestion.js.map +1 -1
  466. package/build/es/components/feedback/questions/TextQuestion.js +1 -1
  467. package/build/es/components/feedback/questions/TextQuestion.js.map +1 -1
  468. package/build/es/components/feedback/questions/smileyUtils.js.map +1 -1
  469. package/build/es/components/feedback/utils.js +1 -1
  470. package/build/es/components/feedback/utils.js.map +1 -1
  471. package/build/es/components/file/File.js.map +1 -1
  472. package/build/es/components/file-input/FileInput.js +1 -1
  473. package/build/es/components/file-input/FileInput.js.map +1 -1
  474. package/build/es/components/file-input/internal/Dropzone.js +1 -1
  475. package/build/es/components/file-input/internal/Dropzone.js.map +1 -1
  476. package/build/es/components/file-input/internal/Input.js +1 -1
  477. package/build/es/components/file-input/internal/Input.js.map +1 -1
  478. package/build/es/components/file-input/internal/MaxSize.js.map +1 -1
  479. package/build/es/components/file-input/internal/fileInputContext.js.map +1 -1
  480. package/build/es/components/file-input/internal/validateFileInputFiles.js +1 -1
  481. package/build/es/components/file-input/internal/validateFileInputFiles.js.map +1 -1
  482. package/build/es/components/file-input/utils.js +1 -1
  483. package/build/es/components/file-input/utils.js.map +1 -1
  484. package/build/es/components/flex/Flex.js +1 -1
  485. package/build/es/components/flex/Flex.js.map +1 -1
  486. package/build/es/components/help/Help.js.map +1 -1
  487. package/build/es/components/icon/Icon.js +1 -1
  488. package/build/es/components/icon/Icon.js.map +1 -1
  489. package/build/es/components/icon/icons/ArrowDownIcon.js.map +1 -1
  490. package/build/es/components/icon/icons/ArrowLeftIcon.js.map +1 -1
  491. package/build/es/components/icon/icons/ArrowNorthEastIcon.js.map +1 -1
  492. package/build/es/components/icon/icons/ArrowRightIcon.js.map +1 -1
  493. package/build/es/components/icon/icons/ArrowUpIcon.js.map +1 -1
  494. package/build/es/components/icon/icons/CalendarIcon.js.map +1 -1
  495. package/build/es/components/icon/icons/CheckIcon.js.map +1 -1
  496. package/build/es/components/icon/icons/ChevronDownIcon.js.map +1 -1
  497. package/build/es/components/icon/icons/ChevronLeftIcon.js.map +1 -1
  498. package/build/es/components/icon/icons/ChevronRightIcon.js.map +1 -1
  499. package/build/es/components/icon/icons/ChevronUpIcon.js.map +1 -1
  500. package/build/es/components/icon/icons/CloseIcon.js.map +1 -1
  501. package/build/es/components/icon/icons/CopyIcon.js.map +1 -1
  502. package/build/es/components/icon/icons/DotsIcon.js.map +1 -1
  503. package/build/es/components/icon/icons/DragIcon.js.map +1 -1
  504. package/build/es/components/icon/icons/ErrorIcon.js.map +1 -1
  505. package/build/es/components/icon/icons/HamburgerIcon.js.map +1 -1
  506. package/build/es/components/icon/icons/InfoIcon.js.map +1 -1
  507. package/build/es/components/icon/icons/LinkIcon.js.map +1 -1
  508. package/build/es/components/icon/icons/MinusIcon.js.map +1 -1
  509. package/build/es/components/icon/icons/OpenInNewIcon.js.map +1 -1
  510. package/build/es/components/icon/icons/PenIcon.js.map +1 -1
  511. package/build/es/components/icon/icons/PlusIcon.js.map +1 -1
  512. package/build/es/components/icon/icons/QuestionIcon.js.map +1 -1
  513. package/build/es/components/icon/icons/RedCrossIcon.js.map +1 -1
  514. package/build/es/components/icon/icons/SearchIcon.js.map +1 -1
  515. package/build/es/components/icon/icons/SuccessIcon.js.map +1 -1
  516. package/build/es/components/icon/icons/ThumbDownIcon.js.map +1 -1
  517. package/build/es/components/icon/icons/ThumbUpIcon.js.map +1 -1
  518. package/build/es/components/icon/icons/TrashCanIcon.js.map +1 -1
  519. package/build/es/components/icon/icons/WarningIcon.js.map +1 -1
  520. package/build/es/components/icon-button/IconButton.js +1 -1
  521. package/build/es/components/icon-button/IconButton.js.map +1 -1
  522. package/build/es/components/image/Image.js +1 -1
  523. package/build/es/components/image/Image.js.map +1 -1
  524. package/build/es/components/image/useImageLoadingStatus.js +1 -1
  525. package/build/es/components/image/useImageLoadingStatus.js.map +1 -1
  526. package/build/es/components/input-group/FieldGroup.js.map +1 -1
  527. package/build/es/components/input-group/InputGroup.js +1 -1
  528. package/build/es/components/input-group/InputGroup.js.map +1 -1
  529. package/build/es/components/input-group/Label.js.map +1 -1
  530. package/build/es/components/input-group/SupportLabel.js.map +1 -1
  531. package/build/es/components/link/Link.js +1 -1
  532. package/build/es/components/link/Link.js.map +1 -1
  533. package/build/es/components/link-list/LinkList.js +1 -1
  534. package/build/es/components/link-list/LinkList.js.map +1 -1
  535. package/build/es/components/list/List.js.map +1 -1
  536. package/build/es/components/list/ListItem.js.map +1 -1
  537. package/build/es/components/loader/Loader.js.map +1 -1
  538. package/build/es/components/loader/skeletons/SkeletonAnimation.js.map +1 -1
  539. package/build/es/components/loader/skeletons/SkeletonCheckboxGroup.js +1 -1
  540. package/build/es/components/loader/skeletons/SkeletonCheckboxGroup.js.map +1 -1
  541. package/build/es/components/loader/skeletons/SkeletonInput.js.map +1 -1
  542. package/build/es/components/loader/skeletons/SkeletonLabel.js.map +1 -1
  543. package/build/es/components/loader/skeletons/SkeletonRadioButtonGroup.js +1 -1
  544. package/build/es/components/loader/skeletons/SkeletonRadioButtonGroup.js.map +1 -1
  545. package/build/es/components/loader/skeletons/SkeletonTextArea.js.map +1 -1
  546. package/build/es/components/loader/useDelayedRender.js +1 -1
  547. package/build/es/components/loader/useDelayedRender.js.map +1 -1
  548. package/build/es/components/logo/Logo.js.map +1 -1
  549. package/build/es/components/logo/LogoStamp.js.map +1 -1
  550. package/build/es/components/logo/useTextSpinner.js +1 -1
  551. package/build/es/components/logo/useTextSpinner.js.map +1 -1
  552. package/build/es/components/menu/Menu.js +1 -1
  553. package/build/es/components/menu/Menu.js.map +1 -1
  554. package/build/es/components/menu/MenuDivider.js.map +1 -1
  555. package/build/es/components/menu/MenuItem.js +1 -1
  556. package/build/es/components/menu/MenuItem.js.map +1 -1
  557. package/build/es/components/menu/MenuItemCheckbox.js +1 -1
  558. package/build/es/components/menu/MenuItemCheckbox.js.map +1 -1
  559. package/build/es/components/menu/useMenuWideEvents.js +1 -1
  560. package/build/es/components/menu/useMenuWideEvents.js.map +1 -1
  561. package/build/es/components/message/DismissButton.js +1 -1
  562. package/build/es/components/message/DismissButton.js.map +1 -1
  563. package/build/es/components/message/FormErrorMessage.js +1 -1
  564. package/build/es/components/message/FormErrorMessage.js.map +1 -1
  565. package/build/es/components/message/Message.js +1 -1
  566. package/build/es/components/message/Message.js.map +1 -1
  567. package/build/es/components/modal/Modal.js +1 -1
  568. package/build/es/components/modal/Modal.js.map +1 -1
  569. package/build/es/components/modal/useModal.js.map +1 -1
  570. package/build/es/components/nav-link/NavLink.js +1 -1
  571. package/build/es/components/nav-link/NavLink.js.map +1 -1
  572. package/build/es/components/pagination/PageButton.js.map +1 -1
  573. package/build/es/components/pagination/Pagination.js +1 -1
  574. package/build/es/components/pagination/Pagination.js.map +1 -1
  575. package/build/es/components/popover/Popover.js +1 -1
  576. package/build/es/components/popover/Popover.js.map +1 -1
  577. package/build/es/components/progress-bar/ProgressBar.js.map +1 -1
  578. package/build/es/components/radio-button/BaseRadioButton.js +1 -1
  579. package/build/es/components/radio-button/BaseRadioButton.js.map +1 -1
  580. package/build/es/components/radio-button/RadioButton.js +1 -1
  581. package/build/es/components/radio-button/RadioButton.js.map +1 -1
  582. package/build/es/components/radio-button/RadioButtonGroup.js.map +1 -1
  583. package/build/es/components/radio-panel/RadioPanel.js +1 -1
  584. package/build/es/components/radio-panel/RadioPanel.js.map +1 -1
  585. package/build/es/components/radio-panel/RadioPanelGroup.js.map +1 -1
  586. package/build/es/components/radio-panel/radioPanelContext.js.map +1 -1
  587. package/build/es/components/radio-panel/types.d.ts +12 -0
  588. package/build/es/components/segmented-control/SegmentedControl.js.map +1 -1
  589. package/build/es/components/segmented-control/SegmentedControlButton.js.map +1 -1
  590. package/build/es/components/select/NativeSelect.js +1 -1
  591. package/build/es/components/select/NativeSelect.js.map +1 -1
  592. package/build/es/components/select/Select.js +1 -1
  593. package/build/es/components/select/Select.js.map +1 -1
  594. package/build/es/components/select/index.d.ts +2 -0
  595. package/build/es/components/select/index.js +1 -1
  596. package/build/es/components/select/select-utils.js.map +1 -1
  597. package/build/es/components/summary-table/SummaryTable.js +1 -1
  598. package/build/es/components/summary-table/SummaryTable.js.map +1 -1
  599. package/build/es/components/summary-table/SummaryTableRow.js.map +1 -1
  600. package/build/es/components/summary-table/mocks.js.map +1 -1
  601. package/build/es/components/system-message/SystemMessage.js.map +1 -1
  602. package/build/es/components/system-message/common/DismissButton.js +1 -1
  603. package/build/es/components/system-message/common/DismissButton.js.map +1 -1
  604. package/build/es/components/system-message/common/MessageIcon.js.map +1 -1
  605. package/build/es/components/table/DataTable.js +1 -1
  606. package/build/es/components/table/DataTable.js.map +1 -1
  607. package/build/es/components/table/ExpandableTableRow.js +1 -1
  608. package/build/es/components/table/ExpandableTableRow.js.map +1 -1
  609. package/build/es/components/table/ExpandableTableRowController.js +1 -1
  610. package/build/es/components/table/ExpandableTableRowController.js.map +1 -1
  611. package/build/es/components/table/Table.js +1 -1
  612. package/build/es/components/table/Table.js.map +1 -1
  613. package/build/es/components/table/TableBody.js +1 -1
  614. package/build/es/components/table/TableBody.js.map +1 -1
  615. package/build/es/components/table/TableCaption.js +1 -1
  616. package/build/es/components/table/TableCaption.js.map +1 -1
  617. package/build/es/components/table/TableCell.js +1 -1
  618. package/build/es/components/table/TableCell.js.map +1 -1
  619. package/build/es/components/table/TableColumn.js +1 -1
  620. package/build/es/components/table/TableColumn.js.map +1 -1
  621. package/build/es/components/table/TableColumnGroup.js +1 -1
  622. package/build/es/components/table/TableColumnGroup.js.map +1 -1
  623. package/build/es/components/table/TableFooter.js +1 -1
  624. package/build/es/components/table/TableFooter.js.map +1 -1
  625. package/build/es/components/table/TableHead.js +1 -1
  626. package/build/es/components/table/TableHead.js.map +1 -1
  627. package/build/es/components/table/TableHeader.js +1 -1
  628. package/build/es/components/table/TableHeader.js.map +1 -1
  629. package/build/es/components/table/TablePagination.js +1 -1
  630. package/build/es/components/table/TablePagination.js.map +1 -1
  631. package/build/es/components/table/TableRow.js +1 -1
  632. package/build/es/components/table/TableRow.js.map +1 -1
  633. package/build/es/components/table/tableSectionContext.js.map +1 -1
  634. package/build/es/components/table/utils.js.map +1 -1
  635. package/build/es/components/tabs/NavTab.js +1 -1
  636. package/build/es/components/tabs/NavTab.js.map +1 -1
  637. package/build/es/components/tabs/NavTabs.js +1 -1
  638. package/build/es/components/tabs/NavTabs.js.map +1 -1
  639. package/build/es/components/tabs/Tab.js +1 -1
  640. package/build/es/components/tabs/Tab.js.map +1 -1
  641. package/build/es/components/tabs/TabList.js +1 -1
  642. package/build/es/components/tabs/TabList.js.map +1 -1
  643. package/build/es/components/tabs/TabPanel.js.map +1 -1
  644. package/build/es/components/tabs/Tabs.js +1 -1
  645. package/build/es/components/tabs/Tabs.js.map +1 -1
  646. package/build/es/components/tabs/tabsContext.js.map +1 -1
  647. package/build/es/components/tag/Tag.js.map +1 -1
  648. package/build/es/components/text-area/BaseTextArea.js +1 -1
  649. package/build/es/components/text-area/BaseTextArea.js.map +1 -1
  650. package/build/es/components/text-area/TextArea.js +1 -1
  651. package/build/es/components/text-area/TextArea.js.map +1 -1
  652. package/build/es/components/text-input/BaseTextInput.js +1 -1
  653. package/build/es/components/text-input/BaseTextInput.js.map +1 -1
  654. package/build/es/components/text-input/TextInput.js +1 -1
  655. package/build/es/components/text-input/TextInput.js.map +1 -1
  656. package/build/es/components/toast/Toast.js +1 -1
  657. package/build/es/components/toast/Toast.js.map +1 -1
  658. package/build/es/components/toast/ToastRegion.js +1 -1
  659. package/build/es/components/toast/ToastRegion.js.map +1 -1
  660. package/build/es/components/toast/toastContext.js.map +1 -1
  661. package/build/es/components/toggle-switch/ToggleSlider.js +1 -1
  662. package/build/es/components/toggle-switch/ToggleSlider.js.map +1 -1
  663. package/build/es/components/toggle-switch/ToggleSwitch.js +1 -1
  664. package/build/es/components/toggle-switch/ToggleSwitch.js.map +1 -1
  665. package/build/es/components/toggle-switch/usePillStyles.js +1 -1
  666. package/build/es/components/toggle-switch/usePillStyles.js.map +1 -1
  667. package/build/es/components/tooltip/PopupTip.js.map +1 -1
  668. package/build/es/components/tooltip/Tooltip.js.map +1 -1
  669. package/build/es/components/tooltip/TooltipContent.js +1 -1
  670. package/build/es/components/tooltip/TooltipContent.js.map +1 -1
  671. package/build/es/components/tooltip/TooltipTrigger.js +1 -1
  672. package/build/es/components/tooltip/TooltipTrigger.js.map +1 -1
  673. package/build/es/components-beta/select/Select.d.ts +3 -0
  674. package/build/es/components-beta/select/Select.js +2 -0
  675. package/build/es/components-beta/select/Select.js.map +1 -0
  676. package/build/es/components-beta/select/index.d.ts +2 -0
  677. package/build/es/components-beta/select/index.js +2 -0
  678. package/build/es/components-beta/select/index.js.map +1 -0
  679. package/build/es/components-beta/select/types.d.ts +10 -0
  680. package/build/es/components-beta/select/types.js +2 -0
  681. package/build/es/components-beta/select/types.js.map +1 -0
  682. package/build/es/core/tokens/style-dictionary/config.js +1 -1
  683. package/build/es/core/tokens/style-dictionary/config.js.map +1 -1
  684. package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.js +1 -1
  685. package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.js.map +1 -1
  686. package/build/es/core/tokens/style-dictionary/formats/javascript-esm.js +1 -1
  687. package/build/es/core/tokens/style-dictionary/formats/javascript-esm.js.map +1 -1
  688. package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.js +1 -1
  689. package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.js.map +1 -1
  690. package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.js +1 -1
  691. package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.js.map +1 -1
  692. package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.js +1 -1
  693. package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.js.map +1 -1
  694. package/build/es/core/tokens.js.map +1 -1
  695. package/build/es/hooks/mediaQueryUtils.js.map +1 -1
  696. package/build/es/hooks/stories/content.js.map +1 -1
  697. package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.js +1 -1
  698. package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.js.map +1 -1
  699. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js +1 -1
  700. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js.map +1 -1
  701. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js +1 -1
  702. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js.map +1 -1
  703. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js +1 -1
  704. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js.map +1 -1
  705. package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.js +1 -1
  706. package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.js.map +1 -1
  707. package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.js +1 -1
  708. package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.js.map +1 -1
  709. package/build/es/hooks/useClickOutside/useClickOutside.js +1 -1
  710. package/build/es/hooks/useClickOutside/useClickOutside.js.map +1 -1
  711. package/build/es/hooks/useElementDimensions/useElementDimensions.js +1 -1
  712. package/build/es/hooks/useElementDimensions/useElementDimensions.js.map +1 -1
  713. package/build/es/hooks/useFocusOutside/useFocusOutside.js +1 -1
  714. package/build/es/hooks/useFocusOutside/useFocusOutside.js.map +1 -1
  715. package/build/es/hooks/useId/useId.js.map +1 -1
  716. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js +1 -1
  717. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  718. package/build/es/hooks/useKeyListener/useKeyListener.js +1 -1
  719. package/build/es/hooks/useKeyListener/useKeyListener.js.map +1 -1
  720. package/build/es/hooks/useListNavigation/useListNavigation.js +1 -1
  721. package/build/es/hooks/useListNavigation/useListNavigation.js.map +1 -1
  722. package/build/es/hooks/useLocalStorage/useLocalStorage.js +1 -1
  723. package/build/es/hooks/useLocalStorage/useLocalStorage.js.map +1 -1
  724. package/build/es/hooks/useMutationObserver/useMutationObserver.js +1 -1
  725. package/build/es/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
  726. package/build/es/hooks/usePreviousValue/usePreviousValue.js +1 -1
  727. package/build/es/hooks/usePreviousValue/usePreviousValue.js.map +1 -1
  728. package/build/es/hooks/useProgressiveImg/useProgressiveImg.js +1 -1
  729. package/build/es/hooks/useProgressiveImg/useProgressiveImg.js.map +1 -1
  730. package/build/es/hooks/useScreen/state.js.map +1 -1
  731. package/build/es/hooks/useScreen/useScreen.js +1 -1
  732. package/build/es/hooks/useScreen/useScreen.js.map +1 -1
  733. package/build/es/hooks/useScrollIntoView/useScrollIntoView.js +1 -1
  734. package/build/es/hooks/useScrollIntoView/useScrollIntoView.js.map +1 -1
  735. package/build/es/hooks/useSwipeGesture/useSwipeGesture.js +1 -1
  736. package/build/es/hooks/useSwipeGesture/useSwipeGesture.js.map +1 -1
  737. package/build/es/shared/input-panel/BasePanel.d.ts +14 -2
  738. package/build/es/shared/input-panel/BasePanel.js +1 -1
  739. package/build/es/shared/input-panel/BasePanel.js.map +1 -1
  740. package/build/es/tailwind/plugins/jokulTypographyPlugin.js +1 -1
  741. package/build/es/tailwind/plugins/jokulTypographyPlugin.js.map +1 -1
  742. package/build/es/utilities/formatters/avstand/formatAvstand.js.map +1 -1
  743. package/build/es/utilities/formatters/bytes/formatBytes.js.map +1 -1
  744. package/build/es/utilities/formatters/date/formatDate.js.map +1 -1
  745. package/build/es/utilities/formatters/fodselsnummer/formatFodselsnummer.js.map +1 -1
  746. package/build/es/utilities/formatters/kontonummer/formatKontonummer.js.map +1 -1
  747. package/build/es/utilities/formatters/kortnummer/formatKortnummer.js.map +1 -1
  748. package/build/es/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.js.map +1 -1
  749. package/build/es/utilities/formatters/telefonnummer/formatTelefonnummer.js.map +1 -1
  750. package/build/es/utilities/formatters/util/formatNumber.js.map +1 -1
  751. package/build/es/utilities/formatters/util/parseNumber.js +1 -1
  752. package/build/es/utilities/formatters/util/parseNumber.js.map +1 -1
  753. package/build/es/utilities/formatters/util/registerWithMask.js.map +1 -1
  754. package/build/es/utilities/formatters/valuta/formatValuta.js.map +1 -1
  755. package/build/es/utilities/getThemeAndDensity.js.map +1 -1
  756. package/build/es/utilities/polymorphism/SlotComponent.js +1 -1
  757. package/build/es/utilities/polymorphism/SlotComponent.js.map +1 -1
  758. package/build/es/utilities/polymorphism/mergeProps.js.map +1 -1
  759. package/build/es/utilities/polymorphism/mergeRefs.js.map +1 -1
  760. package/build/es/utilities/tabListener.js +1 -1
  761. package/build/es/utilities/tabListener.js.map +1 -1
  762. package/build/es/utilities/validators/hasMinimumWords/hasMinimumWords.js +1 -1
  763. package/build/es/utilities/validators/hasMinimumWords/hasMinimumWords.js.map +1 -1
  764. package/build/es/utilities/validators/isExactLength/isExactLength.js.map +1 -1
  765. package/build/es/utilities/validators/isValidFodselsnummer/isValidFodselsnummer.js +1 -1
  766. package/build/es/utilities/validators/isValidFodselsnummer/isValidFodselsnummer.js.map +1 -1
  767. package/build/es/utilities/validators/isValidKortnummer/isValidKortnummer.js +1 -1
  768. package/build/es/utilities/validators/isValidKortnummer/isValidKortnummer.js.map +1 -1
  769. package/build/es/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.js +1 -1
  770. package/build/es/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.js.map +1 -1
  771. package/build/es/utilities/valuePair.js.map +1 -1
  772. package/build/index-CWRMnfcx.js.map +1 -1
  773. package/build/index-CaISwoxr.cjs.map +1 -1
  774. package/package.json +1 -1
  775. package/styles/components/checkbox/checkbox.css +4 -4
  776. package/styles/components/checkbox/checkbox.min.css +1 -1
  777. package/styles/components/checkbox-panel/checkbox-panel.css +24 -14
  778. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  779. package/styles/components/combobox/combobox.min.css +1 -1
  780. package/styles/components/countdown/countdown.css +2 -2
  781. package/styles/components/countdown/countdown.min.css +1 -1
  782. package/styles/components/feedback/feedback.css +2 -2
  783. package/styles/components/feedback/feedback.min.css +1 -1
  784. package/styles/components/file-input/file-input.css +11 -11
  785. package/styles/components/file-input/file-input.min.css +1 -1
  786. package/styles/components/input-group/_labels.scss +11 -10
  787. package/styles/components/input-group/input-group.css +4 -4
  788. package/styles/components/input-group/input-group.min.css +1 -1
  789. package/styles/components/loader/loader.css +6 -6
  790. package/styles/components/loader/loader.min.css +1 -1
  791. package/styles/components/loader/skeleton-loader.css +5 -5
  792. package/styles/components/loader/skeleton-loader.min.css +1 -1
  793. package/styles/components/logo/logo.min.css +1 -1
  794. package/styles/components/message/message.css +2 -2
  795. package/styles/components/message/message.min.css +1 -1
  796. package/styles/components/progress-bar/progress-bar.css +1 -1
  797. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  798. package/styles/components/radio-button/radio-button.css +2 -2
  799. package/styles/components/radio-button/radio-button.min.css +1 -1
  800. package/styles/components/radio-panel/radio-panel.css +20 -10
  801. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  802. package/styles/components/segmented-control/segmented-control.css +6 -6
  803. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  804. package/styles/components/select/select.css +5 -3
  805. package/styles/components/select/select.min.css +1 -1
  806. package/styles/components/system-message/system-message.css +2 -2
  807. package/styles/components/system-message/system-message.min.css +1 -1
  808. package/styles/components/table/_table-pagination.scss +10 -5
  809. package/styles/components/table/table.css +14 -6
  810. package/styles/components/table/table.min.css +1 -1
  811. package/styles/components/tabs/tabs.min.css +1 -1
  812. package/styles/components/text-area/text-area.css +0 -8
  813. package/styles/components/text-area/text-area.min.css +1 -1
  814. package/styles/components/text-area/text-area.scss +2 -13
  815. package/styles/components/toast/toast.css +4 -4
  816. package/styles/components/toast/toast.min.css +1 -1
  817. package/styles/components-beta/select/_index.scss +3 -0
  818. package/styles/components-beta/select/select.css +137 -0
  819. package/styles/components-beta/select/select.min.css +1 -0
  820. package/styles/components-beta/select/select.scss +128 -0
  821. package/styles/shared/input-panel/shared.css +18 -8
  822. package/styles/shared/input-panel/shared.min.css +1 -1
  823. package/styles/shared/input-panel/shared.scss +8 -11
  824. package/styles/styles.css +210 -63
  825. package/styles/styles.min.css +2 -2
  826. package/styles/styles.scss +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ControllerButton.cjs","sources":["../../../../src/components/autosuggest/ControllerButton.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport { IconButton } from \"../icon-button/IconButton.js\";\nimport { CloseIcon } from \"../icon/icons/CloseIcon.js\";\nimport { SearchIcon } from \"../icon/icons/SearchIcon.js\";\n\ninterface Props {\n clearSelection: () => void;\n hasSelectedItem: boolean;\n onClick: () => void;\n}\n\nconst ControllerButton: FC<Props> = ({\n hasSelectedItem,\n clearSelection,\n onClick,\n ...downshiftProps\n}) => (\n <IconButton\n {...downshiftProps}\n className=\"jkl-text-input-action-button\"\n aria-label={hasSelectedItem ? \"Fjern valg\" : \"Vis valg\"}\n title={hasSelectedItem ? \"Fjern valg\" : \"Vis valg\"}\n onClick={hasSelectedItem ? clearSelection : onClick}\n >\n {hasSelectedItem ? <CloseIcon /> : <SearchIcon />}\n </IconButton>\n);\n\nexport default ControllerButton;\n"],"names":["hasSelectedItem","clearSelection","onClick","downshiftProps","jsx","IconButton","className","title","children","CloseIcon","SearchIcon"],"mappings":"sNAWoC,EAChCA,gBAAAA,EACAC,eAAAA,EACAC,QAAAA,KACGC,KAEHC,EAAAA,IAACC,EAAAA,WAAA,IACOF,EACJG,UAAU,+BACV,aAAYN,EAAkB,aAAe,WAC7CO,MAAOP,EAAkB,aAAe,WACxCE,QAASF,EAAkBC,EAAiBC,EAE3CM,SAAkBR,EAAAI,MAACK,EAAAA,UAAU,CAAA,SAAMC,EAAAA,WAAW,CAAA"}
1
+ {"version":3,"file":"ControllerButton.cjs","sources":["../../../../src/components/autosuggest/ControllerButton.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport { IconButton } from \"../icon-button/IconButton.js\";\nimport { CloseIcon } from \"../icon/icons/CloseIcon.js\";\nimport { SearchIcon } from \"../icon/icons/SearchIcon.js\";\n\ninterface Props {\n clearSelection: () => void;\n hasSelectedItem: boolean;\n onClick: () => void;\n}\n\nconst ControllerButton: FC<Props> = ({\n hasSelectedItem,\n clearSelection,\n onClick,\n ...downshiftProps\n}) => (\n <IconButton\n {...downshiftProps}\n className=\"jkl-text-input-action-button\"\n aria-label={hasSelectedItem ? \"Fjern valg\" : \"Vis valg\"}\n title={hasSelectedItem ? \"Fjern valg\" : \"Vis valg\"}\n onClick={hasSelectedItem ? clearSelection : onClick}\n >\n {hasSelectedItem ? <CloseIcon /> : <SearchIcon />}\n </IconButton>\n);\n\nexport default ControllerButton;\n"],"names":["hasSelectedItem","clearSelection","onClick","downshiftProps","jsx","IconButton","className","title","children","CloseIcon","SearchIcon"],"mappings":"sNAWoC,EAChCA,gBAAAA,EACAC,eAAAA,EACAC,QAAAA,KACGC,KAEHC,EAAAA,IAACC,EAAAA,WAAA,IACOF,EACJG,UAAU,+BACV,aAAYN,EAAkB,aAAe,WAC7CO,MAAOP,EAAkB,aAAe,WACxCE,QAASF,EAAkBC,EAAiBC,EAE3CM,SAAAR,EAAkBI,MAACK,EAAAA,UAAA,CAAA,SAAgBC,EAAAA,WAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("react/jsx-runtime"),t=require("react"),s=require("../../../clsx-E3yX_9sL.cjs");module.exports=function({downshiftProps:{getMenuProps:i,getItemProps:l},highlightedIndex:u,items:a,itemToString:n,noHitsMessage:g,maxNumberOfHits:r=Number.POSITIVE_INFINITY,noHits:m}){const o=a.length>r?a.slice(0,r):a;if(0===o.length&&!g&&!m)return null;const c=0===o.length&&m?m.items:o;return e.jsxs("div",{"data-testid":"autosuggest__menu",className:"jkl-autosuggest__menu",children:[(g||m)&&0===o.length&&e.jsx("div",{className:"jkl-autosuggest__no-hits-message","aria-live":"polite",children:g||m?.text}),c.length>0&&e.jsx("ul",{...i({className:"jkl-autosuggest__item-list"}),children:c.map(((e,i)=>t.createElement("li",{...l({item:e,className:s.clsx("jkl-autosuggest__item",{"jkl-autosuggest__item--active":i===u})}),"data-testid":"autosuggest__item",key:n(e)},n(e))))})]})};
1
+ "use strict";const e=require("react/jsx-runtime"),t=require("react"),s=require("../../../clsx-E3yX_9sL.cjs");module.exports=function({downshiftProps:{getMenuProps:i,getItemProps:l},highlightedIndex:u,items:a,itemToString:n,noHitsMessage:g,maxNumberOfHits:r=Number.POSITIVE_INFINITY,noHits:m}){const o=a.length>r?a.slice(0,r):a;if(0===o.length&&!g&&!m)return null;const c=0===o.length&&m?m.items:o;return e.jsxs("div",{"data-testid":"autosuggest__menu",className:"jkl-autosuggest__menu",children:[(g||m)&&0===o.length&&e.jsx("div",{className:"jkl-autosuggest__no-hits-message","aria-live":"polite",children:g||m?.text}),c.length>0&&e.jsx("ul",{...i({className:"jkl-autosuggest__item-list"}),children:c.map((e,i)=>t.createElement("li",{...l({item:e,className:s.clsx("jkl-autosuggest__item",{"jkl-autosuggest__item--active":i===u})}),"data-testid":"autosuggest__item",key:n(e)},n(e)))})]})};
2
2
  //# sourceMappingURL=Menu.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.cjs","sources":["../../../../src/components/autosuggest/Menu.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport type { PropGetters } from \"downshift\";\nimport React, { type ReactNode } from \"react\";\n\ninterface MenuProps<T> {\n downshiftProps: Pick<PropGetters<T>, \"getMenuProps\" | \"getItemProps\">;\n highlightedIndex: number | undefined | null;\n items: T[];\n itemToString: (item: T | null) => string;\n noHitsMessage?: ReactNode;\n maxNumberOfHits?: number;\n noHits?: { items: T[]; text: ReactNode };\n}\n\nfunction Menu<T>({\n downshiftProps: { getMenuProps, getItemProps },\n highlightedIndex,\n items,\n itemToString,\n noHitsMessage,\n maxNumberOfHits = Number.POSITIVE_INFINITY,\n noHits,\n}: MenuProps<T>): JSX.Element | null {\n const visibleItems =\n items.length > maxNumberOfHits\n ? items.slice(0, maxNumberOfHits)\n : items;\n\n if (visibleItems.length === 0 && !noHitsMessage && !noHits) {\n return null;\n }\n\n const itemList =\n visibleItems.length === 0 && noHits ? noHits.items : visibleItems;\n\n return (\n <div data-testid=\"autosuggest__menu\" className=\"jkl-autosuggest__menu\">\n {(noHitsMessage || noHits) && visibleItems.length === 0 && (\n <div\n className=\"jkl-autosuggest__no-hits-message\"\n aria-live=\"polite\"\n >\n {noHitsMessage || noHits?.text}\n </div>\n )}\n\n {itemList.length > 0 && (\n <ul\n {...getMenuProps({\n className: \"jkl-autosuggest__item-list\",\n })}\n >\n {itemList.map((item, index) => (\n <li\n {...getItemProps({\n item,\n className: clsx(\"jkl-autosuggest__item\", {\n \"jkl-autosuggest__item--active\":\n index === highlightedIndex,\n }),\n })}\n data-testid=\"autosuggest__item\"\n key={itemToString(item)}\n >\n {itemToString(item)}\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nexport default Menu;\n"],"names":["downshiftProps","getMenuProps","getItemProps","highlightedIndex","items","itemToString","noHitsMessage","maxNumberOfHits","Number","POSITIVE_INFINITY","noHits","visibleItems","length","slice","itemList","jsxs","className","children","jsx","text","map","item","index","createElement","clsx","key"],"mappings":"4HAcA,UACIA,gBAAkBC,aAAAA,EAAcC,aAAAA,GAChCC,iBAAAA,EACAC,MAAAA,EACAC,aAAAA,EACAC,cAAAA,EACAC,gBAAAA,EAAkBC,OAAOC,kBACzBC,OAAAA,IAEM,MAAAC,EACFP,EAAMQ,OAASL,EACTH,EAAMS,MAAM,EAAGN,GACfH,EAEV,GAA4B,IAAxBO,EAAaC,SAAiBN,IAAkBI,EACzC,OAAA,KAGX,MAAMI,EACsB,IAAxBH,EAAaC,QAAgBF,EAASA,EAAON,MAAQO,EAEzD,OACKI,EAAAA,KAAA,MAAA,CAAI,cAAY,oBAAoBC,UAAU,wBACzCC,SAAA,EAAiBX,GAAAI,IAAmC,IAAxBC,EAAaC,QACvCM,EAAAA,IAAC,MAAA,CACGF,UAAU,mCACV,YAAU,SAETC,YAAiBP,GAAQS,OAIjCL,EAASF,OAAS,GACfM,EAAAA,IAAC,KAAA,IACOjB,EAAa,CACbe,UAAW,+BAGdC,SAASH,EAAAM,KAAI,CAACC,EAAMC,IACjBC,EAAAA,cAAC,KAAA,IACOrB,EAAa,CACbmB,KAAAA,EACAL,UAAWQ,OAAK,wBAAyB,CACrC,gCACIF,IAAUnB,MAGtB,cAAY,oBACZsB,IAAKpB,EAAagB,IAEjBhB,EAAagB,UAO1C"}
1
+ {"version":3,"file":"Menu.cjs","sources":["../../../../src/components/autosuggest/Menu.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport type { PropGetters } from \"downshift\";\nimport React, { type ReactNode } from \"react\";\n\ninterface MenuProps<T> {\n downshiftProps: Pick<PropGetters<T>, \"getMenuProps\" | \"getItemProps\">;\n highlightedIndex: number | undefined | null;\n items: T[];\n itemToString: (item: T | null) => string;\n noHitsMessage?: ReactNode;\n maxNumberOfHits?: number;\n noHits?: { items: T[]; text: ReactNode };\n}\n\nfunction Menu<T>({\n downshiftProps: { getMenuProps, getItemProps },\n highlightedIndex,\n items,\n itemToString,\n noHitsMessage,\n maxNumberOfHits = Number.POSITIVE_INFINITY,\n noHits,\n}: MenuProps<T>): JSX.Element | null {\n const visibleItems =\n items.length > maxNumberOfHits\n ? items.slice(0, maxNumberOfHits)\n : items;\n\n if (visibleItems.length === 0 && !noHitsMessage && !noHits) {\n return null;\n }\n\n const itemList =\n visibleItems.length === 0 && noHits ? noHits.items : visibleItems;\n\n return (\n <div data-testid=\"autosuggest__menu\" className=\"jkl-autosuggest__menu\">\n {(noHitsMessage || noHits) && visibleItems.length === 0 && (\n <div\n className=\"jkl-autosuggest__no-hits-message\"\n aria-live=\"polite\"\n >\n {noHitsMessage || noHits?.text}\n </div>\n )}\n\n {itemList.length > 0 && (\n <ul\n {...getMenuProps({\n className: \"jkl-autosuggest__item-list\",\n })}\n >\n {itemList.map((item, index) => (\n <li\n {...getItemProps({\n item,\n className: clsx(\"jkl-autosuggest__item\", {\n \"jkl-autosuggest__item--active\":\n index === highlightedIndex,\n }),\n })}\n data-testid=\"autosuggest__item\"\n key={itemToString(item)}\n >\n {itemToString(item)}\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nexport default Menu;\n"],"names":["downshiftProps","getMenuProps","getItemProps","highlightedIndex","items","itemToString","noHitsMessage","maxNumberOfHits","Number","POSITIVE_INFINITY","noHits","visibleItems","length","slice","itemList","jsxs","className","children","jsx","text","map","item","index","createElement","clsx","key"],"mappings":"4HAcA,UACIA,gBAAkBC,aAAAA,EAAcC,aAAAA,GAChCC,iBAAAA,EACAC,MAAAA,EACAC,aAAAA,EACAC,cAAAA,EACAC,gBAAAA,EAAkBC,OAAOC,kBACzBC,OAAAA,IAEA,MAAMC,EACFP,EAAMQ,OAASL,EACTH,EAAMS,MAAM,EAAGN,GACfH,EAEV,GAA4B,IAAxBO,EAAaC,SAAiBN,IAAkBI,EAChD,OAAO,KAGX,MAAMI,EACsB,IAAxBH,EAAaC,QAAgBF,EAASA,EAAON,MAAQO,EAEzD,OACII,EAAAA,KAAC,MAAA,CAAI,cAAY,oBAAoBC,UAAU,wBACzCC,SAAA,EAAAX,GAAiBI,IAAmC,IAAxBC,EAAaC,QACvCM,EAAAA,IAAC,MAAA,CACGF,UAAU,mCACV,YAAU,SAETC,YAAiBP,GAAQS,OAIjCL,EAASF,OAAS,GACfM,EAAAA,IAAC,KAAA,IACOjB,EAAa,CACbe,UAAW,+BAGdC,SAAAH,EAASM,IAAI,CAACC,EAAMC,IACjBC,EAAAA,cAAC,KAAA,IACOrB,EAAa,CACbmB,KAAAA,EACAL,UAAWQ,EAAAA,KAAK,wBAAyB,CACrC,gCACIF,IAAUnB,MAGtB,cAAY,oBACZsB,IAAKpB,EAAagB,IAEjBhB,EAAagB,SAO1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","sources":["../../../../src/components/autosuggest/utils.ts"],"sourcesContent":["import { matchSorter } from \"match-sorter\";\n\nexport function filter<T>(\n allItems: T[],\n inputValue: string | null,\n keys?: string[],\n): T[] {\n const options = keys ? { keys } : {};\n if (!inputValue) {\n return allItems;\n }\n return matchSorter(allItems, inputValue, options);\n}\n"],"names":["allItems","inputValue","keys","options","matchSorter"],"mappings":"+HAEgB,SACZA,EACAC,EACAC,GAEA,MAAMC,EAAUD,EAAO,CAAEA,KAAAA,GAAS,CAAC,EACnC,OAAKD,EAGEG,cAAYJ,EAAUC,EAAYE,GAF9BH,CAGf"}
1
+ {"version":3,"file":"utils.cjs","sources":["../../../../src/components/autosuggest/utils.ts"],"sourcesContent":["import { matchSorter } from \"match-sorter\";\n\nexport function filter<T>(\n allItems: T[],\n inputValue: string | null,\n keys?: string[],\n): T[] {\n const options = keys ? { keys } : {};\n if (!inputValue) {\n return allItems;\n }\n return matchSorter(allItems, inputValue, options);\n}\n"],"names":["allItems","inputValue","keys","options","matchSorter"],"mappings":"+HAEO,SACHA,EACAC,EACAC,GAEA,MAAMC,EAAUD,EAAO,CAAEA,KAAAA,GAAS,CAAA,EAClC,OAAKD,EAGEG,cAAYJ,EAAUC,EAAYE,GAF9BH,CAGf"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../clsx-E3yX_9sL.cjs"),a=require("react");exports.Breadcrumb=({className:s,children:t,density:l,...n})=>{const c=a.Children.count(t);return e.jsx("nav",{"aria-label":"Sti",className:r.clsx("jkl-breadcrumb",s),"data-layout-density":l,...n,children:e.jsx("ol",{className:"jkl-breadcrumb__list",children:a.Children.map(t,((r,s)=>{const t=s+1===c;return e.jsxs(e.Fragment,{children:[a.isValidElement(r)?a.cloneElement(r,{isLastElement:t}):r,!t&&e.jsx("span",{className:"jkl-breadcrumb__item-separator","aria-hidden":"true",children:"›"})]})}))})})};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../clsx-E3yX_9sL.cjs"),a=require("react");exports.Breadcrumb=({className:s,children:t,density:l,...n})=>{const c=a.Children.count(t);return e.jsx("nav",{"aria-label":"Sti",className:r.clsx("jkl-breadcrumb",s),"data-layout-density":l,...n,children:e.jsx("ol",{className:"jkl-breadcrumb__list",children:a.Children.map(t,(r,s)=>{const t=s+1===c;return e.jsxs(e.Fragment,{children:[a.isValidElement(r)?a.cloneElement(r,{isLastElement:t}):r,!t&&e.jsx("span",{className:"jkl-breadcrumb__item-separator","aria-hidden":"true",children:"›"})]})})})})};
2
2
  //# sourceMappingURL=Breadcrumb.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.cjs","sources":["../../../../src/components/breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport type { BreadcrumbItemProps, BreadcrumbProps } from \"./types.js\";\n\nexport const Breadcrumb = ({\n className,\n children,\n density,\n ...rest\n}: BreadcrumbProps): JSX.Element => {\n const numberOfChildren = React.Children.count(children);\n return (\n <nav\n aria-label=\"Sti\"\n className={clsx(\"jkl-breadcrumb\", className)}\n data-layout-density={density}\n {...rest}\n >\n <ol className=\"jkl-breadcrumb__list\">\n {React.Children.map(children, (child, index) => {\n const isLastElement = index + 1 === numberOfChildren;\n return (\n <>\n {React.isValidElement<BreadcrumbItemProps>(child)\n ? React.cloneElement<BreadcrumbItemProps>(\n child,\n {\n isLastElement,\n },\n )\n : child}\n {!isLastElement && (\n <span\n className=\"jkl-breadcrumb__item-separator\"\n aria-hidden=\"true\"\n >\n ›\n </span>\n )}\n </>\n );\n })}\n </ol>\n </nav>\n );\n};\n"],"names":["className","children","density","rest","numberOfChildren","React","Children","count","jsx","clsx","map","child","index","isLastElement","jsxs","Fragment","isValidElement","cloneElement"],"mappings":"mMAI0B,EACtBA,UAAAA,EACAC,SAAAA,EACAC,QAAAA,KACGC,MAEH,MAAMC,EAAmBC,EAAMC,SAASC,MAAMN,GAE1C,OAAAO,EAAAA,IAAC,MAAA,CACG,aAAW,MACXR,UAAWS,EAAAA,KAAK,iBAAkBT,GAClC,sBAAqBE,KACjBC,EAEJF,SAAAO,EAAAA,IAAC,KAAG,CAAAR,UAAU,uBACTC,SAAAI,EAAMC,SAASI,IAAIT,GAAU,CAACU,EAAOC,KAC5B,MAAAC,EAAgBD,EAAQ,IAAMR,EACpC,OAESU,EAAAA,KAAAC,WAAA,CAAAd,SAAA,CAAMI,EAAAW,eAAoCL,GACrCN,EAAMY,aACFN,EACA,CACIE,cAAAA,IAGRF,GACJE,GACEL,EAAAA,IAAC,OAAA,CACGR,UAAU,iCACV,cAAY,OACfC,SAAA,QAIT,OAIhB"}
1
+ {"version":3,"file":"Breadcrumb.cjs","sources":["../../../../src/components/breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport type { BreadcrumbItemProps, BreadcrumbProps } from \"./types.js\";\n\nexport const Breadcrumb = ({\n className,\n children,\n density,\n ...rest\n}: BreadcrumbProps): JSX.Element => {\n const numberOfChildren = React.Children.count(children);\n return (\n <nav\n aria-label=\"Sti\"\n className={clsx(\"jkl-breadcrumb\", className)}\n data-layout-density={density}\n {...rest}\n >\n <ol className=\"jkl-breadcrumb__list\">\n {React.Children.map(children, (child, index) => {\n const isLastElement = index + 1 === numberOfChildren;\n return (\n <>\n {React.isValidElement<BreadcrumbItemProps>(child)\n ? React.cloneElement<BreadcrumbItemProps>(\n child,\n {\n isLastElement,\n },\n )\n : child}\n {!isLastElement && (\n <span\n className=\"jkl-breadcrumb__item-separator\"\n aria-hidden=\"true\"\n >\n ›\n </span>\n )}\n </>\n );\n })}\n </ol>\n </nav>\n );\n};\n"],"names":["className","children","density","rest","numberOfChildren","React","Children","count","jsx","clsx","map","child","index","isLastElement","jsxs","Fragment","isValidElement","cloneElement"],"mappings":"mMAI0B,EACtBA,UAAAA,EACAC,SAAAA,EACAC,QAAAA,KACGC,MAEH,MAAMC,EAAmBC,EAAMC,SAASC,MAAMN,GAC9C,OACIO,EAAAA,IAAC,MAAA,CACG,aAAW,MACXR,UAAWS,EAAAA,KAAK,iBAAkBT,GAClC,sBAAqBE,KACjBC,EAEJF,SAAAO,EAAAA,IAAC,KAAA,CAAGR,UAAU,uBACTC,SAAAI,EAAMC,SAASI,IAAIT,EAAU,CAACU,EAAOC,KAClC,MAAMC,EAAgBD,EAAQ,IAAMR,EACpC,OACIU,EAAAA,KAAAC,WAAA,CACKd,SAAA,CAAAI,EAAMW,eAAoCL,GACrCN,EAAMY,aACFN,EACA,CACIE,cAAAA,IAGRF,GACJE,GACEL,EAAAA,IAAC,OAAA,CACGR,UAAU,iCACV,cAAY,OACfC,SAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../clsx-E3yX_9sL.cjs"),l=require("react");exports.BreadcrumbItem=({className:s,children:t,isLastElement:a,...i})=>e.jsx("li",{className:r.clsx("jkl-breadcrumb__item",s),...i,children:l.Children.map(t,(e=>l.isValidElement(e)?l.cloneElement(e,{"aria-current":a?"page":void 0,className:"jkl-link"}):e))});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../clsx-E3yX_9sL.cjs"),l=require("react");exports.BreadcrumbItem=({className:s,children:t,isLastElement:a,...i})=>e.jsx("li",{className:r.clsx("jkl-breadcrumb__item",s),...i,children:l.Children.map(t,e=>l.isValidElement(e)?l.cloneElement(e,{"aria-current":a?"page":void 0,className:"jkl-link"}):e)});
2
2
  //# sourceMappingURL=BreadcrumbItem.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbItem.cjs","sources":["../../../../src/components/breadcrumb/BreadcrumbItem.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type AnchorHTMLAttributes } from \"react\";\nimport type { BreadcrumbItemProps } from \"./types.js\";\n\nexport const BreadcrumbItem = ({\n className,\n children,\n isLastElement,\n ...rest\n}: BreadcrumbItemProps): JSX.Element => {\n return (\n <li className={clsx(\"jkl-breadcrumb__item\", className)} {...rest}>\n {React.Children.map(children, (child) => {\n if (\n React.isValidElement<\n AnchorHTMLAttributes<HTMLAnchorElement>\n >(child)\n ) {\n return React.cloneElement<\n AnchorHTMLAttributes<HTMLAnchorElement>\n >(child, {\n \"aria-current\": isLastElement ? \"page\" : undefined,\n className: \"jkl-link\",\n });\n }\n\n return child;\n })}\n </li>\n );\n};\n"],"names":["className","children","isLastElement","rest","jsx","clsx","React","Children","map","child","isValidElement","cloneElement"],"mappings":"uMAI8B,EAC1BA,UAAAA,EACAC,SAAAA,EACAC,cAAAA,KACGC,KAGEC,EAAAA,IAAA,KAAA,CAAGJ,UAAWK,EAAAA,KAAK,uBAAwBL,MAAgBG,EACvDF,SAAMK,EAAAC,SAASC,IAAIP,GAAWQ,GAEvBH,EAAMI,eAEJD,GAEKH,EAAMK,aAEXF,EAAO,CACL,eAAgBP,EAAgB,YAAS,EACzCF,UAAW,aAIZS"}
1
+ {"version":3,"file":"BreadcrumbItem.cjs","sources":["../../../../src/components/breadcrumb/BreadcrumbItem.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type AnchorHTMLAttributes } from \"react\";\nimport type { BreadcrumbItemProps } from \"./types.js\";\n\nexport const BreadcrumbItem = ({\n className,\n children,\n isLastElement,\n ...rest\n}: BreadcrumbItemProps): JSX.Element => {\n return (\n <li className={clsx(\"jkl-breadcrumb__item\", className)} {...rest}>\n {React.Children.map(children, (child) => {\n if (\n React.isValidElement<\n AnchorHTMLAttributes<HTMLAnchorElement>\n >(child)\n ) {\n return React.cloneElement<\n AnchorHTMLAttributes<HTMLAnchorElement>\n >(child, {\n \"aria-current\": isLastElement ? \"page\" : undefined,\n className: \"jkl-link\",\n });\n }\n\n return child;\n })}\n </li>\n );\n};\n"],"names":["className","children","isLastElement","rest","jsx","clsx","React","Children","map","child","isValidElement","cloneElement"],"mappings":"uMAI8B,EAC1BA,UAAAA,EACAC,SAAAA,EACAC,cAAAA,KACGC,KAGCC,EAAAA,IAAC,KAAA,CAAGJ,UAAWK,EAAAA,KAAK,uBAAwBL,MAAgBG,EACvDF,SAAAK,EAAMC,SAASC,IAAIP,EAAWQ,GAEvBH,EAAMI,eAEJD,GAEKH,EAAMK,aAEXF,EAAO,CACL,eAAgBP,EAAgB,YAAS,EACzCF,UAAW,aAIZS"}
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbDocs.cjs","sources":["../../../../../src/components/breadcrumb/documentation/BreadcrumbDocs.tsx"],"sourcesContent":["import React from \"react\";\nimport { Breadcrumb } from \"../Breadcrumb.js\";\nimport { BreadcrumbItem } from \"../BreadcrumbItem.js\";\n\nexport const BreadcrumbExample = () => {\n /* -- EXAMPLE CODE START -- */\n return (\n <Breadcrumb>\n <BreadcrumbItem>\n <a href=\"/\">Hjem</a>\n </BreadcrumbItem>\n <BreadcrumbItem>\n <a href=\"/komponenter/accordion\">Komponenter</a>\n </BreadcrumbItem>\n <BreadcrumbItem>\n <a href=\"/komponenter/breadcrumb\">Breadcrumb</a>\n </BreadcrumbItem>\n </Breadcrumb>\n );\n /* -- EXAMPLE CODE END -- */\n};\n"],"names":["Breadcrumb","children","jsx","BreadcrumbItem","href"],"mappings":"wOAIiC,WAGxBA,aACG,CAAAC,SAAA,CAAAC,EAAAA,IAACC,kBACGF,SAACC,EAAAA,IAAA,IAAA,CAAEE,KAAK,IAAIH,0BAEfE,EACGA,eAAA,CAAAF,SAAAC,EAAAA,IAAC,KAAEE,KAAK,yBAAyBH,iCAEpCE,EACGA,eAAA,CAAAF,SAAAC,MAAC,KAAEE,KAAK,0BAA0BH"}
1
+ {"version":3,"file":"BreadcrumbDocs.cjs","sources":["../../../../../src/components/breadcrumb/documentation/BreadcrumbDocs.tsx"],"sourcesContent":["import React from \"react\";\nimport { Breadcrumb } from \"../Breadcrumb.js\";\nimport { BreadcrumbItem } from \"../BreadcrumbItem.js\";\n\nexport const BreadcrumbExample = () => {\n /* -- EXAMPLE CODE START -- */\n return (\n <Breadcrumb>\n <BreadcrumbItem>\n <a href=\"/\">Hjem</a>\n </BreadcrumbItem>\n <BreadcrumbItem>\n <a href=\"/komponenter/accordion\">Komponenter</a>\n </BreadcrumbItem>\n <BreadcrumbItem>\n <a href=\"/komponenter/breadcrumb\">Breadcrumb</a>\n </BreadcrumbItem>\n </Breadcrumb>\n );\n /* -- EXAMPLE CODE END -- */\n};\n"],"names":["Breadcrumb","children","jsx","BreadcrumbItem","href"],"mappings":"wOAIiC,WAGxBA,aAAA,CACGC,SAAA,CAAAC,EAAAA,IAACC,EAAAA,gBACGF,SAAAC,EAAAA,IAAC,IAAA,CAAEE,KAAK,IAAIH,0BAEfE,EAAAA,eAAA,CACGF,SAAAC,EAAAA,IAAC,KAAEE,KAAK,yBAAyBH,iCAEpCE,EAAAA,eAAA,CACGF,SAAAC,MAAC,KAAEE,KAAK,0BAA0BH"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("../../../clsx-E3yX_9sL.cjs"),n=require("react"),r=require("../../hooks/useAriaLiveRegion/useAriaLiveRegion.cjs"),o=require("../loader/Loader.cjs"),a=n.forwardRef((function(a,i){const{as:s="button",children:l,className:c,density:u,onTouchStart:d,onAnimationEnd:x,loader:j,icon:b,iconPosition:h="left",iconLeft:v,iconRight:m,variant:y="secondary",...g}=a,p=s;"production"!==process.env.NODE_ENV&&0===n.Children.count(l)&&!a["aria-label"]&&!a["aria-labelledby"]&&!a.title&&console.warn("Når du lager en Button uten synlig tekst må du huske å gi den et navn med enten aria-label, aria-labelledby eller title");const f=r.useAriaLiveRegion(j?.showLoader),L=!!l&&!!j?.showLoader;return e.jsxs(p,{...f,"data-loading":L,"data-density":u,className:t.clsx("jkl-button",`jkl-button--${y}`,c),disabled:"button"===s?j?.showLoader:void 0,...g,ref:i,children:[e.jsxs("div",{className:"jkl-button__label",children:[v&&v,b&&"left"===h&&b,l&&e.jsx("span",{className:"jkl-button__text",children:l}),m&&m,b&&"right"===h&&b]}),l&&e.jsx(o.Loader,{className:"jkl-button__loader",variant:"medium",textDescription:j?.textDescription||"Vennligst vent","aria-hidden":!j?.showLoader})]})}));exports.Button=a,exports.GhostButton=function(t){const n={...t,variant:"ghost"};return e.jsx(a,{...n})},exports.PrimaryButton=function(t){const n={...t,variant:"primary"};return e.jsx(a,{...n})},exports.SecondaryButton=function(t){const n={...t,variant:"secondary"};return e.jsx(a,{...n})},exports.TertiaryButton=function(t){const n={...t,variant:"tertiary"};return e.jsx(a,{...n})};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("../../../clsx-E3yX_9sL.cjs"),n=require("react"),r=require("../../hooks/useAriaLiveRegion/useAriaLiveRegion.cjs"),o=require("../loader/Loader.cjs"),a=n.forwardRef(function(a,i){const{as:s="button",children:l,className:c,density:u,onTouchStart:d,onAnimationEnd:x,loader:j,icon:b,iconPosition:h="left",iconLeft:v,iconRight:m,variant:y="secondary",...g}=a,p=s;"production"!==process.env.NODE_ENV&&0===n.Children.count(l)&&!a["aria-label"]&&!a["aria-labelledby"]&&!a.title&&console.warn("Når du lager en Button uten synlig tekst må du huske å gi den et navn med enten aria-label, aria-labelledby eller title");const f=r.useAriaLiveRegion(j?.showLoader),L=!!l&&!!j?.showLoader;return e.jsxs(p,{...f,"data-loading":L,"data-density":u,className:t.clsx("jkl-button",`jkl-button--${y}`,c),disabled:"button"===s?j?.showLoader:void 0,...g,ref:i,children:[e.jsxs("div",{className:"jkl-button__label",children:[v&&v,b&&"left"===h&&b,l&&e.jsx("span",{className:"jkl-button__text",children:l}),m&&m,b&&"right"===h&&b]}),l&&e.jsx(o.Loader,{className:"jkl-button__loader",variant:"medium",textDescription:j?.textDescription||"Vennligst vent","aria-hidden":!j?.showLoader})]})});exports.Button=a,exports.GhostButton=function(t){const n={...t,variant:"ghost"};return e.jsx(a,{...n})},exports.PrimaryButton=function(t){const n={...t,variant:"primary"};return e.jsx(a,{...n})},exports.SecondaryButton=function(t){const n={...t,variant:"secondary"};return e.jsx(a,{...n})},exports.TertiaryButton=function(t){const n={...t,variant:"tertiary"};return e.jsx(a,{...n})};
2
2
  //# sourceMappingURL=Button.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.cjs","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import cn from \"clsx\";\nimport React, { type ButtonHTMLAttributes } from \"react\";\nimport { useAriaLiveRegion } from \"../../hooks/useAriaLiveRegion/useAriaLiveRegion.js\";\nimport type { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { Loader } from \"../loader/Loader.js\";\nimport type { ButtonComponent, ButtonProps } from \"./types.js\";\n\nexport const Button = React.forwardRef(function Button<\n ElementType extends React.ElementType = \"button\",\n>(props: ButtonProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n as = \"button\",\n children,\n className,\n density,\n onTouchStart,\n onAnimationEnd,\n loader,\n icon,\n iconPosition = \"left\",\n iconLeft,\n iconRight,\n variant = \"secondary\",\n ...rest\n } = props;\n\n const Component = as;\n\n if (\n process.env.NODE_ENV !== \"production\" &&\n React.Children.count(children) === 0 &&\n !props[\"aria-label\"] &&\n !props[\"aria-labelledby\"] &&\n !props.title\n ) {\n console.warn(\n \"Når du lager en Button uten synlig tekst må du huske å gi den et navn med enten aria-label, aria-labelledby eller title\",\n );\n }\n\n const ariaLive = useAriaLiveRegion(loader?.showLoader);\n const showLoader = Boolean(children) && Boolean(loader?.showLoader);\n\n return (\n <Component\n {...ariaLive}\n data-loading={showLoader}\n data-density={density}\n className={cn(\"jkl-button\", `jkl-button--${variant}`, className)}\n disabled={as === \"button\" ? loader?.showLoader : undefined}\n {...rest}\n ref={ref}\n >\n <div className=\"jkl-button__label\">\n {iconLeft && iconLeft}\n {icon && iconPosition === \"left\" && icon}\n {children && (\n <span className=\"jkl-button__text\">{children}</span>\n )}\n {iconRight && iconRight}\n {icon && iconPosition === \"right\" && icon}\n </div>\n\n {children && (\n <Loader\n className=\"jkl-button__loader\"\n variant=\"medium\"\n textDescription={\n loader?.textDescription || \"Vennligst vent\"\n }\n aria-hidden={!loader?.showLoader}\n />\n )}\n </Component>\n );\n}) as ButtonComponent;\n\n/**\n * @deprecated bruk heller {@link Button} med ghost-varianten\n */\nexport function PrimaryButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"primary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\n/**\n * @deprecated bruk heller {@link Button} med ghost-varianten\n */\nexport function SecondaryButton<\n ElementType extends React.ElementType = \"button\",\n>(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"secondary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\n/**\n * @deprecated bruk heller {@link Button} med ghost-varianten\n */\nexport function TertiaryButton<\n ElementType extends React.ElementType = \"button\",\n>(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"tertiary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\n/**\n * @deprecated bruk heller {@link Button} med ghost-varianten\n */\nexport function GhostButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"loader\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"ghost\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n"],"names":["Button","React","forwardRef","props","ref","as","children","className","density","onTouchStart","onAnimationEnd","loader","icon","iconPosition","iconLeft","iconRight","variant","rest","Component","process","env","NODE_ENV","Children","count","title","console","warn","ariaLive","useAriaLiveRegion","showLoader","jsxs","cn","clsx","disabled","jsx","Loader","textDescription","buttonProps"],"mappings":"mRAOaA,EAASC,EAAMC,YAAW,SAErCC,EAAiCC,GACzB,MACFC,GAAAA,EAAK,SACLC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EACAC,aAAAA,EACAC,eAAAA,EACAC,OAAAA,EACAC,KAAAA,EACAC,aAAAA,EAAe,OACfC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EAAU,eACPC,GACHd,EAEEe,EAAYb,EAGW,eAAzBc,QAAQC,IAAIC,UACuB,IAAnCpB,EAAMqB,SAASC,MAAMjB,KACpBH,EAAM,gBACNA,EAAM,qBACNA,EAAMqB,OAECC,QAAAC,KACJ,2HAIF,MAAAC,EAAWC,EAAAA,kBAAkBjB,GAAQkB,YACrCA,IAAqBvB,KAAqBK,GAAQkB,WAGpD,OAAAC,EAAAA,KAACZ,EAAA,IACOS,EACJ,eAAcE,EACd,eAAcrB,EACdD,UAAWwB,EAAGC,KAAA,aAAc,eAAehB,IAAWT,GACtD0B,SAAiB,WAAP5B,EAAkBM,GAAQkB,gBAAa,KAC7CZ,EACJb,IAAAA,EAEAE,SAAA,CAACwB,EAAAA,KAAA,MAAA,CAAIvB,UAAU,oBACVD,SAAA,CAAYQ,GAAAA,EACZF,GAAyB,SAAjBC,GAA2BD,EACnCN,GACG4B,EAAAA,IAAC,OAAK,CAAA3B,UAAU,mBAAoBD,SAAAA,IAEvCS,GAAaA,EACbH,GAAyB,UAAjBC,GAA4BD,KAGxCN,GACG4B,EAAAA,IAACC,EAAAA,OAAA,CACG5B,UAAU,qBACVS,QAAQ,SACRoB,gBACIzB,GAAQyB,iBAAmB,iBAE/B,eAAczB,GAAQkB,eAK1C,yCAmDO,SACH1B,GAEA,MAAMkC,EAAc,IACblC,EACHa,QAAS,SAEN,OAAAkB,MAAClC,EAAQ,IAAGqC,GACvB,wBAtDO,SACHlC,GAGA,MAAMkC,EAAc,IACblC,EACHa,QAAS,WAEN,OAAAkB,MAAClC,EAAQ,IAAGqC,GACvB,0BAKO,SAGHlC,GAGA,MAAMkC,EAAc,IACblC,EACHa,QAAS,aAEN,OAAAkB,MAAClC,EAAQ,IAAGqC,GACvB,yBAKO,SAGHlC,GAGA,MAAMkC,EAAc,IACblC,EACHa,QAAS,YAEN,OAAAkB,MAAClC,EAAQ,IAAGqC,GACvB"}
1
+ {"version":3,"file":"Button.cjs","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import cn from \"clsx\";\nimport React, { type ButtonHTMLAttributes } from \"react\";\nimport { useAriaLiveRegion } from \"../../hooks/useAriaLiveRegion/useAriaLiveRegion.js\";\nimport type { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { Loader } from \"../loader/Loader.js\";\nimport type { ButtonComponent, ButtonProps } from \"./types.js\";\n\nexport const Button = React.forwardRef(function Button<\n ElementType extends React.ElementType = \"button\",\n>(props: ButtonProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n as = \"button\",\n children,\n className,\n density,\n onTouchStart,\n onAnimationEnd,\n loader,\n icon,\n iconPosition = \"left\",\n iconLeft,\n iconRight,\n variant = \"secondary\",\n ...rest\n } = props;\n\n const Component = as;\n\n if (\n process.env.NODE_ENV !== \"production\" &&\n React.Children.count(children) === 0 &&\n !props[\"aria-label\"] &&\n !props[\"aria-labelledby\"] &&\n !props.title\n ) {\n console.warn(\n \"Når du lager en Button uten synlig tekst må du huske å gi den et navn med enten aria-label, aria-labelledby eller title\",\n );\n }\n\n const ariaLive = useAriaLiveRegion(loader?.showLoader);\n const showLoader = Boolean(children) && Boolean(loader?.showLoader);\n\n return (\n <Component\n {...ariaLive}\n data-loading={showLoader}\n data-density={density}\n className={cn(\"jkl-button\", `jkl-button--${variant}`, className)}\n disabled={as === \"button\" ? loader?.showLoader : undefined}\n {...rest}\n ref={ref}\n >\n <div className=\"jkl-button__label\">\n {iconLeft && iconLeft}\n {icon && iconPosition === \"left\" && icon}\n {children && (\n <span className=\"jkl-button__text\">{children}</span>\n )}\n {iconRight && iconRight}\n {icon && iconPosition === \"right\" && icon}\n </div>\n\n {children && (\n <Loader\n className=\"jkl-button__loader\"\n variant=\"medium\"\n textDescription={\n loader?.textDescription || \"Vennligst vent\"\n }\n aria-hidden={!loader?.showLoader}\n />\n )}\n </Component>\n );\n}) as ButtonComponent;\n\n/**\n * @deprecated bruk heller {@link Button} med ghost-varianten\n */\nexport function PrimaryButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"primary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\n/**\n * @deprecated bruk heller {@link Button} med ghost-varianten\n */\nexport function SecondaryButton<\n ElementType extends React.ElementType = \"button\",\n>(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"secondary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\n/**\n * @deprecated bruk heller {@link Button} med ghost-varianten\n */\nexport function TertiaryButton<\n ElementType extends React.ElementType = \"button\",\n>(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"tertiary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\n/**\n * @deprecated bruk heller {@link Button} med ghost-varianten\n */\nexport function GhostButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"loader\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"ghost\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n"],"names":["Button","React","forwardRef","props","ref","as","children","className","density","onTouchStart","onAnimationEnd","loader","icon","iconPosition","iconLeft","iconRight","variant","rest","Component","process","env","NODE_ENV","Children","count","title","console","warn","ariaLive","useAriaLiveRegion","showLoader","jsxs","cn","disabled","jsx","Loader","textDescription","buttonProps"],"mappings":"mRAOaA,EAASC,EAAMC,WAAW,SAErCC,EAAiCC,GAC/B,MACIC,GAAAA,EAAK,SACLC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EACAC,aAAAA,EACAC,eAAAA,EACAC,OAAAA,EACAC,KAAAA,EACAC,aAAAA,EAAe,OACfC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EAAU,eACPC,GACHd,EAEEe,EAAYb,EAGW,eAAzBc,QAAQC,IAAIC,UACuB,IAAnCpB,EAAMqB,SAASC,MAAMjB,KACpBH,EAAM,gBACNA,EAAM,qBACNA,EAAMqB,OAEPC,QAAQC,KACJ,2HAIR,MAAMC,EAAWC,EAAAA,kBAAkBjB,GAAQkB,YACrCA,IAAqBvB,KAAqBK,GAAQkB,WAExD,OACIC,EAAAA,KAACZ,EAAA,IACOS,EACJ,eAAcE,EACd,eAAcrB,EACdD,UAAWwB,EAAAA,KAAG,aAAc,eAAef,IAAWT,GACtDyB,SAAiB,WAAP3B,EAAkBM,GAAQkB,gBAAa,KAC7CZ,EACJb,IAAAA,EAEAE,SAAA,CAAAwB,EAAAA,KAAC,MAAA,CAAIvB,UAAU,oBACVD,SAAA,CAAAQ,GAAYA,EACZF,GAAyB,SAAjBC,GAA2BD,EACnCN,GACG2B,EAAAA,IAAC,OAAA,CAAK1B,UAAU,mBAAoBD,SAAAA,IAEvCS,GAAaA,EACbH,GAAyB,UAAjBC,GAA4BD,KAGxCN,GACG2B,EAAAA,IAACC,EAAAA,OAAA,CACG3B,UAAU,qBACVS,QAAQ,SACRmB,gBACIxB,GAAQwB,iBAAmB,iBAE/B,eAAcxB,GAAQkB,eAK1C,wCAmDO,SACH1B,GAEA,MAAMiC,EAAc,IACbjC,EACHa,QAAS,SAEb,OAAOiB,MAACjC,EAAA,IAAWoC,GACvB,wBAtDO,SACHjC,GAGA,MAAMiC,EAAc,IACbjC,EACHa,QAAS,WAEb,OAAOiB,MAACjC,EAAA,IAAWoC,GACvB,0BAKO,SAGHjC,GAGA,MAAMiC,EAAc,IACbjC,EACHa,QAAS,aAEb,OAAOiB,MAACjC,EAAA,IAAWoC,GACvB,yBAKO,SAGHjC,GAGA,MAAMiC,EAAc,IACbjC,EACHa,QAAS,YAEb,OAAOiB,MAACjC,EAAA,IAAWoC,GACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AnchorDocs.cjs","sources":["../../../../../src/components/button/documentation/AnchorDocs.tsx"],"sourcesContent":["import React from \"react\";\nimport { Button } from \"../Button.js\";\n\nexport const AnchorsExample = () => {\n /* -- EXAMPLE CODE START -- */\n return (\n <div className=\"flex flex-column gap-32 justify-between items-center\">\n <Button\n as=\"a\"\n variant=\"primary\"\n href=\"/komponenter/buttons#knapper-rendret-som-andre-elementer\"\n >\n Send inn\n </Button>\n <Button\n variant=\"secondary\"\n as=\"a\"\n href=\"/komponenter/buttons#knapper-rendret-som-andre-elementer\"\n >\n Lagre\n </Button>\n <Button\n variant=\"tertiary\"\n as=\"a\"\n href=\"/komponenter/buttons#knapper-rendret-som-andre-elementer\"\n >\n Avbryt\n </Button>\n <Button\n variant=\"ghost\"\n as=\"a\"\n href=\"/komponenter/buttons#knapper-rendret-som-andre-elementer\"\n >\n Vis mer\n </Button>\n </div>\n );\n /* -- EXAMPLE CODE END -- */\n};\n"],"names":["jsxs","className","children","jsx","Button","as","variant","href"],"mappings":"8LAG8B,IAGtBA,EAAAA,KAAC,MAAI,CAAAC,UAAU,uDACXC,SAAA,CAAAC,EAAAA,IAACC,EAAAA,OAAA,CACGC,GAAG,IACHC,QAAQ,UACRC,KAAK,2DACRL,SAAA,aAGDC,EAAAA,IAACC,EAAAA,OAAA,CACGE,QAAQ,YACRD,GAAG,IACHE,KAAK,2DACRL,SAAA,UAGDC,EAAAA,IAACC,EAAAA,OAAA,CACGE,QAAQ,WACRD,GAAG,IACHE,KAAK,2DACRL,SAAA,WAGDC,EAAAA,IAACC,EAAAA,OAAA,CACGE,QAAQ,QACRD,GAAG,IACHE,KAAK,2DACRL,SAAA"}
1
+ {"version":3,"file":"AnchorDocs.cjs","sources":["../../../../../src/components/button/documentation/AnchorDocs.tsx"],"sourcesContent":["import React from \"react\";\nimport { Button } from \"../Button.js\";\n\nexport const AnchorsExample = () => {\n /* -- EXAMPLE CODE START -- */\n return (\n <div className=\"flex flex-column gap-32 justify-between items-center\">\n <Button\n as=\"a\"\n variant=\"primary\"\n href=\"/komponenter/buttons#knapper-rendret-som-andre-elementer\"\n >\n Send inn\n </Button>\n <Button\n variant=\"secondary\"\n as=\"a\"\n href=\"/komponenter/buttons#knapper-rendret-som-andre-elementer\"\n >\n Lagre\n </Button>\n <Button\n variant=\"tertiary\"\n as=\"a\"\n href=\"/komponenter/buttons#knapper-rendret-som-andre-elementer\"\n >\n Avbryt\n </Button>\n <Button\n variant=\"ghost\"\n as=\"a\"\n href=\"/komponenter/buttons#knapper-rendret-som-andre-elementer\"\n >\n Vis mer\n </Button>\n </div>\n );\n /* -- EXAMPLE CODE END -- */\n};\n"],"names":["jsxs","className","children","jsx","Button","as","variant","href"],"mappings":"8LAG8B,IAGtBA,EAAAA,KAAC,MAAA,CAAIC,UAAU,uDACXC,SAAA,CAAAC,EAAAA,IAACC,EAAAA,OAAA,CACGC,GAAG,IACHC,QAAQ,UACRC,KAAK,2DACRL,SAAA,aAGDC,EAAAA,IAACC,EAAAA,OAAA,CACGE,QAAQ,YACRD,GAAG,IACHE,KAAK,2DACRL,SAAA,UAGDC,EAAAA,IAACC,EAAAA,OAAA,CACGE,QAAQ,WACRD,GAAG,IACHE,KAAK,2DACRL,SAAA,WAGDC,EAAAA,IAACC,EAAAA,OAAA,CACGE,QAAQ,QACRD,GAAG,IACHE,KAAK,2DACRL,SAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),r=require("../../flex/Flex.cjs"),n=require("../Button.cjs");exports.ButtonExample=()=>{const[o,i]=t.useState(!1),a=t.useCallback((()=>{i(!0),setTimeout((()=>{i(!1)}),2200)}),[]);return e.jsxs(r.Flex,{direction:"column",gap:"l",justifyContent:"space-between",alignItems:"center",children:[e.jsx(n.Button,{variant:"primary",loader:{showLoader:o,textDescription:"Laster innhold"},onClick:a,children:"Lagre og send inn"}),e.jsx(n.Button,{variant:"secondary",loader:{showLoader:o,textDescription:"Laster innhold"},onClick:a,children:"Lagre"}),e.jsx(n.Button,{variant:"tertiary",loader:{showLoader:o,textDescription:"Laster innhold"},onClick:a,children:"Avbryt"}),e.jsx(n.Button,{variant:"ghost",children:"Ola Nordmann"})]})};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),r=require("../../flex/Flex.cjs"),n=require("../Button.cjs");exports.ButtonExample=()=>{const[o,i]=t.useState(!1),a=t.useCallback(()=>{i(!0),setTimeout(()=>{i(!1)},2200)},[]);return e.jsxs(r.Flex,{direction:"column",gap:"l",justifyContent:"space-between",alignItems:"center",children:[e.jsx(n.Button,{variant:"primary",loader:{showLoader:o,textDescription:"Laster innhold"},onClick:a,children:"Lagre og send inn"}),e.jsx(n.Button,{variant:"secondary",loader:{showLoader:o,textDescription:"Laster innhold"},onClick:a,children:"Lagre"}),e.jsx(n.Button,{variant:"tertiary",loader:{showLoader:o,textDescription:"Laster innhold"},onClick:a,children:"Avbryt"}),e.jsx(n.Button,{variant:"ghost",children:"Ola Nordmann"})]})};
2
2
  //# sourceMappingURL=ButtonDocs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonDocs.cjs","sources":["../../../../../src/components/button/documentation/ButtonDocs.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { Flex } from \"../../flex/Flex.js\";\nimport { Button } from \"../Button.js\";\n\nexport const ButtonExample = () => {\n /* -- EXAMPLE CODE START -- */\n const [showLoader, setShowLoader] = useState(false);\n\n const simulateLoading = useCallback(() => {\n setShowLoader(true);\n setTimeout(() => {\n setShowLoader(false);\n }, 2200);\n }, []);\n\n return (\n <Flex\n direction=\"column\"\n gap=\"l\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Button\n variant=\"primary\"\n loader={{\n showLoader,\n textDescription: \"Laster innhold\",\n }}\n onClick={simulateLoading}\n >\n Lagre og send inn\n </Button>\n <Button\n variant=\"secondary\"\n loader={{\n showLoader,\n textDescription: \"Laster innhold\",\n }}\n onClick={simulateLoading}\n >\n Lagre\n </Button>\n <Button\n variant=\"tertiary\"\n loader={{\n showLoader,\n textDescription: \"Laster innhold\",\n }}\n onClick={simulateLoading}\n >\n Avbryt\n </Button>\n\n <Button variant=\"ghost\">Ola Nordmann</Button>\n </Flex>\n );\n /* -- EXAMPLE CODE END -- */\n};\n"],"names":["showLoader","setShowLoader","useState","simulateLoading","useCallback","setTimeout","jsxs","Flex","direction","gap","justifyContent","alignItems","children","jsx","Button","variant","loader","textDescription","onClick"],"mappings":"0NAI6B,KAEzB,MAAOA,EAAYC,GAAiBC,EAAAA,UAAS,GAEvCC,EAAkBC,EAAAA,aAAY,KAChCH,GAAc,GACdI,YAAW,KACPJ,GAAc,EAAK,GACpB,KAAI,GACR,IAGC,OAAAK,EAAAA,KAACC,EAAAA,KAAA,CACGC,UAAU,SACVC,IAAI,IACJC,eAAe,gBACfC,WAAW,SAEXC,SAAA,CAAAC,EAAAA,IAACC,EAAAA,OAAA,CACGC,QAAQ,UACRC,OAAQ,CACJhB,WAAAA,EACAiB,gBAAiB,kBAErBC,QAASf,EACZS,SAAA,sBAGDC,EAAAA,IAACC,EAAAA,OAAA,CACGC,QAAQ,YACRC,OAAQ,CACJhB,WAAAA,EACAiB,gBAAiB,kBAErBC,QAASf,EACZS,SAAA,UAGDC,EAAAA,IAACC,EAAAA,OAAA,CACGC,QAAQ,WACRC,OAAQ,CACJhB,WAAAA,EACAiB,gBAAiB,kBAErBC,QAASf,EACZS,SAAA,WAIAC,EAAAA,IAAAC,EAAAA,OAAA,CAAOC,QAAQ,QAAQH,SAAY,mBACxC"}
1
+ {"version":3,"file":"ButtonDocs.cjs","sources":["../../../../../src/components/button/documentation/ButtonDocs.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { Flex } from \"../../flex/Flex.js\";\nimport { Button } from \"../Button.js\";\n\nexport const ButtonExample = () => {\n /* -- EXAMPLE CODE START -- */\n const [showLoader, setShowLoader] = useState(false);\n\n const simulateLoading = useCallback(() => {\n setShowLoader(true);\n setTimeout(() => {\n setShowLoader(false);\n }, 2200);\n }, []);\n\n return (\n <Flex\n direction=\"column\"\n gap=\"l\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Button\n variant=\"primary\"\n loader={{\n showLoader,\n textDescription: \"Laster innhold\",\n }}\n onClick={simulateLoading}\n >\n Lagre og send inn\n </Button>\n <Button\n variant=\"secondary\"\n loader={{\n showLoader,\n textDescription: \"Laster innhold\",\n }}\n onClick={simulateLoading}\n >\n Lagre\n </Button>\n <Button\n variant=\"tertiary\"\n loader={{\n showLoader,\n textDescription: \"Laster innhold\",\n }}\n onClick={simulateLoading}\n >\n Avbryt\n </Button>\n\n <Button variant=\"ghost\">Ola Nordmann</Button>\n </Flex>\n );\n /* -- EXAMPLE CODE END -- */\n};\n"],"names":["showLoader","setShowLoader","useState","simulateLoading","useCallback","setTimeout","jsxs","Flex","direction","gap","justifyContent","alignItems","children","jsx","Button","variant","loader","textDescription","onClick"],"mappings":"0NAI6B,KAEzB,MAAOA,EAAYC,GAAiBC,EAAAA,UAAS,GAEvCC,EAAkBC,EAAAA,YAAY,KAChCH,GAAc,GACdI,WAAW,KACPJ,GAAc,IACf,OACJ,IAEH,OACIK,EAAAA,KAACC,EAAAA,KAAA,CACGC,UAAU,SACVC,IAAI,IACJC,eAAe,gBACfC,WAAW,SAEXC,SAAA,CAAAC,EAAAA,IAACC,EAAAA,OAAA,CACGC,QAAQ,UACRC,OAAQ,CACJhB,WAAAA,EACAiB,gBAAiB,kBAErBC,QAASf,EACZS,SAAA,sBAGDC,EAAAA,IAACC,EAAAA,OAAA,CACGC,QAAQ,YACRC,OAAQ,CACJhB,WAAAA,EACAiB,gBAAiB,kBAErBC,QAASf,EACZS,SAAA,UAGDC,EAAAA,IAACC,EAAAA,OAAA,CACGC,QAAQ,WACRC,OAAQ,CACJhB,WAAAA,EACAiB,gBAAiB,kBAErBC,QAASf,EACZS,SAAA,WAIDC,EAAAA,IAACC,EAAAA,OAAA,CAAOC,QAAQ,QAAQH,SAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../clsx-E3yX_9sL.cjs"),a=require("react"),t=require("../../utilities/polymorphism/SlotComponent.cjs"),i=a.forwardRef((function(a,i){const{className:s,clickable:c=!1,padding:l="s",variant:o="high",asChild:d,as:n="div",...u}=a,p=d?t.SlotComponent:n;return e.jsx(p,{"data-testid":"jkl-card","data-clickable":c,"data-padding":l,className:r.clsx("jkl-card",`jkl-card--${o}`,s),...u,ref:i})}));exports.Card=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../clsx-E3yX_9sL.cjs"),a=require("react"),t=require("../../utilities/polymorphism/SlotComponent.cjs"),i=a.forwardRef(function(a,i){const{className:s,clickable:c=!1,padding:l="s",variant:o="high",asChild:d,as:n="div",...u}=a,p=d?t.SlotComponent:n;return e.jsx(p,{"data-testid":"jkl-card","data-clickable":c,"data-padding":l,className:r.clsx("jkl-card",`jkl-card--${o}`,s),...u,ref:i})});exports.Card=i;
2
2
  //# sourceMappingURL=Card.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.cjs","sources":["../../../../src/components/card/Card.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { SlotComponent } from \"../../utilities/polymorphism/SlotComponent.js\";\nimport type { AsChildProps } from \"../../utilities/polymorphism/as-child.js\";\nimport type { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport type { CardProps } from \"./types.js\";\n\ntype CardComponent = <ElementType extends React.ElementType = \"div\">(\n props: CardProps<ElementType> & AsChildProps,\n) => React.ReactElement | null;\n\n/**\n * En allsidig kortkomponent som brukes for å gruppere innhold på en side.\n * Komponenten rendres til vanlig som en `<div>`, men du kan velge å rendre\n * den som andre elementer eller komponenter der du trenger annen semantikk\n * eller funksjonalitet.\n */\nexport const Card = React.forwardRef(function Card<\n ElementType extends React.ElementType = \"div\",\n>(props: CardProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n className,\n clickable = false,\n padding = \"s\",\n variant = \"high\",\n asChild,\n as = \"div\",\n ...componentProps\n } = props;\n\n const Component = asChild ? SlotComponent : as;\n\n return (\n <Component\n data-testid=\"jkl-card\"\n data-clickable={clickable}\n data-padding={padding}\n className={clsx(\"jkl-card\", `jkl-card--${variant}`, className)}\n {...componentProps}\n ref={ref}\n />\n );\n}) as CardComponent;\n"],"names":["Card","React","forwardRef","props","ref","className","clickable","padding","variant","asChild","as","componentProps","Component","SlotComponent","jsx","clsx"],"mappings":"4OAiBaA,EAAOC,EAAMC,YAAW,SAEnCC,EAA+BC,GACvB,MACFC,UAAAA,EACAC,UAAAA,GAAY,EACZC,QAAAA,EAAU,IACVC,QAAAA,EAAU,OACVC,QAAAA,EACAC,GAAAA,EAAK,SACFC,GACHR,EAEES,EAAYH,EAAUI,EAAAA,cAAgBH,EAGxC,OAAAI,EAAAA,IAACF,EAAA,CACG,cAAY,WACZ,iBAAgBN,EAChB,eAAcC,EACdF,UAAWU,EAAKA,KAAA,WAAY,aAAaP,IAAWH,MAChDM,EACJP,IAAAA,GAGZ"}
1
+ {"version":3,"file":"Card.cjs","sources":["../../../../src/components/card/Card.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { SlotComponent } from \"../../utilities/polymorphism/SlotComponent.js\";\nimport type { AsChildProps } from \"../../utilities/polymorphism/as-child.js\";\nimport type { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport type { CardProps } from \"./types.js\";\n\ntype CardComponent = <ElementType extends React.ElementType = \"div\">(\n props: CardProps<ElementType> & AsChildProps,\n) => React.ReactElement | null;\n\n/**\n * En allsidig kortkomponent som brukes for å gruppere innhold på en side.\n * Komponenten rendres til vanlig som en `<div>`, men du kan velge å rendre\n * den som andre elementer eller komponenter der du trenger annen semantikk\n * eller funksjonalitet.\n */\nexport const Card = React.forwardRef(function Card<\n ElementType extends React.ElementType = \"div\",\n>(props: CardProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n className,\n clickable = false,\n padding = \"s\",\n variant = \"high\",\n asChild,\n as = \"div\",\n ...componentProps\n } = props;\n\n const Component = asChild ? SlotComponent : as;\n\n return (\n <Component\n data-testid=\"jkl-card\"\n data-clickable={clickable}\n data-padding={padding}\n className={clsx(\"jkl-card\", `jkl-card--${variant}`, className)}\n {...componentProps}\n ref={ref}\n />\n );\n}) as CardComponent;\n"],"names":["Card","React","forwardRef","props","ref","className","clickable","padding","variant","asChild","as","componentProps","Component","SlotComponent","jsx","clsx"],"mappings":"4OAiBaA,EAAOC,EAAMC,WAAW,SAEnCC,EAA+BC,GAC7B,MACIC,UAAAA,EACAC,UAAAA,GAAY,EACZC,QAAAA,EAAU,IACVC,QAAAA,EAAU,OACVC,QAAAA,EACAC,GAAAA,EAAK,SACFC,GACHR,EAEES,EAAYH,EAAUI,EAAAA,cAAgBH,EAE5C,OACII,EAAAA,IAACF,EAAA,CACG,cAAY,WACZ,iBAAgBN,EAChB,eAAcC,EACdF,UAAWU,EAAAA,KAAK,WAAY,aAAaP,IAAWH,MAChDM,EACJP,IAAAA,GAGZ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../clsx-E3yX_9sL.cjs"),t=require("react"),s=require("../../utilities/polymorphism/SlotComponent.cjs"),o=t.forwardRef((function({as:t,asChild:o,className:a,placement:i="top",...c},l){const m=o?s.SlotComponent:t||"img";return e.jsx(m,{ref:l,className:r.clsx("jkl-card-image",`jkl-card-image--${i}`,a),...c})}));exports.CardImage=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../clsx-E3yX_9sL.cjs"),t=require("react"),s=require("../../utilities/polymorphism/SlotComponent.cjs"),o=t.forwardRef(function({as:t,asChild:o,className:a,placement:i="top",...c},l){const m=o?s.SlotComponent:t||"img";return e.jsx(m,{ref:l,className:r.clsx("jkl-card-image",`jkl-card-image--${i}`,a),...c})});exports.CardImage=o;
2
2
  //# sourceMappingURL=CardImage.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardImage.cjs","sources":["../../../../src/components/card/CardImage.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { SlotComponent } from \"../../utilities/polymorphism/SlotComponent.js\";\nimport type { AsChildProps } from \"../../utilities/polymorphism/as-child.js\";\nimport type {\n PolymorphicPropsWithRef,\n PolymorphicRef,\n} from \"../../utilities/polymorphism/polymorphism.js\";\n\nexport type CardImageProps<ElementType extends React.ElementType> =\n PolymorphicPropsWithRef<\n ElementType,\n {\n /**\n * Legger til riktig negativ margin avhengig av hvor i kortet bildet\n * skal plasseres. Margin justeres automatisk etter padding i kortet.\n * Velg \"full\" hvis bildet skal være eneste innhold i kortet.\n * @default \"top\"\n */\n placement?: \"top\" | \"middle\" | \"bottom\" | \"full\";\n }\n >;\n\ntype CardImageComponent = <ElementType extends React.ElementType = \"img\">(\n props: CardImageProps<ElementType>,\n) => React.ReactElement | null;\n\n/**\n * Bildekomponent som kan brukes i `Card` for å sørge for at bildet\n * blør helt ut i kantene av kortet. Rendres normalt som et `<img>`-\n * element, men du kan overstyre dette med `as` dersom du f.eks. har\n * en egen komponent for å håndtere responsive bilder.\n */\nexport const CardImage = React.forwardRef(function CardImage<\n ElementType extends React.ElementType = \"img\",\n>(\n {\n as,\n asChild,\n className,\n placement = \"top\",\n ...imageProps\n }: CardImageProps<ElementType> & AsChildProps,\n ref?: PolymorphicRef<ElementType>,\n) {\n const Component = asChild ? SlotComponent : as || \"img\";\n\n return (\n <Component\n ref={ref}\n className={clsx(\n \"jkl-card-image\",\n `jkl-card-image--${placement}`,\n className,\n )}\n {...imageProps}\n />\n );\n}) as CardImageComponent;\n"],"names":["CardImage","React","forwardRef","as","asChild","className","placement","imageProps","ref","Component","SlotComponent","jsx","clsx"],"mappings":"4OAiCaA,EAAYC,EAAMC,YAAW,UAIlCC,GAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,UAAAA,EAAY,SACTC,GAEPC,GAEM,MAAAC,EAAYL,EAAUM,EAAAA,cAAgBP,GAAM,MAG9C,OAAAQ,EAAAA,IAACF,EAAA,CACGD,IAAAA,EACAH,UAAWO,EAAAA,KACP,iBACA,mBAAmBN,IACnBD,MAEAE,GAGhB"}
1
+ {"version":3,"file":"CardImage.cjs","sources":["../../../../src/components/card/CardImage.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport { SlotComponent } from \"../../utilities/polymorphism/SlotComponent.js\";\nimport type { AsChildProps } from \"../../utilities/polymorphism/as-child.js\";\nimport type {\n PolymorphicPropsWithRef,\n PolymorphicRef,\n} from \"../../utilities/polymorphism/polymorphism.js\";\n\nexport type CardImageProps<ElementType extends React.ElementType> =\n PolymorphicPropsWithRef<\n ElementType,\n {\n /**\n * Legger til riktig negativ margin avhengig av hvor i kortet bildet\n * skal plasseres. Margin justeres automatisk etter padding i kortet.\n * Velg \"full\" hvis bildet skal være eneste innhold i kortet.\n * @default \"top\"\n */\n placement?: \"top\" | \"middle\" | \"bottom\" | \"full\";\n }\n >;\n\ntype CardImageComponent = <ElementType extends React.ElementType = \"img\">(\n props: CardImageProps<ElementType>,\n) => React.ReactElement | null;\n\n/**\n * Bildekomponent som kan brukes i `Card` for å sørge for at bildet\n * blør helt ut i kantene av kortet. Rendres normalt som et `<img>`-\n * element, men du kan overstyre dette med `as` dersom du f.eks. har\n * en egen komponent for å håndtere responsive bilder.\n */\nexport const CardImage = React.forwardRef(function CardImage<\n ElementType extends React.ElementType = \"img\",\n>(\n {\n as,\n asChild,\n className,\n placement = \"top\",\n ...imageProps\n }: CardImageProps<ElementType> & AsChildProps,\n ref?: PolymorphicRef<ElementType>,\n) {\n const Component = asChild ? SlotComponent : as || \"img\";\n\n return (\n <Component\n ref={ref}\n className={clsx(\n \"jkl-card-image\",\n `jkl-card-image--${placement}`,\n className,\n )}\n {...imageProps}\n />\n );\n}) as CardImageComponent;\n"],"names":["CardImage","React","forwardRef","as","asChild","className","placement","imageProps","ref","Component","SlotComponent","jsx","clsx"],"mappings":"4OAiCaA,EAAYC,EAAMC,WAAW,UAIlCC,GAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,UAAAA,EAAY,SACTC,GAEPC,GAEA,MAAMC,EAAYL,EAAUM,EAAAA,cAAgBP,GAAM,MAElD,OACIQ,EAAAA,IAACF,EAAA,CACGD,IAAAA,EACAH,UAAWO,EAAAA,KACP,iBACA,mBAAmBN,IACnBD,MAEAE,GAGhB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("../../../clsx-E3yX_9sL.cjs"),a=require("react"),s=require("../../hooks/useId/useId.cjs"),t=a.forwardRef(((t,r)=>{const{id:n,children:i,invalid:l,className:d,inline:o=!1,density:k,"data-testautoid":x,checked:h,indeterminate:u,...b}=t,j=a.useRef(null);a.useImperativeHandle(r,(()=>j.current),[]);const m=s.useId(n||"jkl-checkbox",{generateSuffix:!n});return a.useEffect((()=>{!0===h&&!0===u&&"production"!==process.env.NODE_ENV&&console.warn("A Checkbox can not be both checked and indeterminate, and will be treated as checked"),j.current&&(j.current.indeterminate=!h&&!!u)}),[h,u]),e.jsxs("div",{className:c.clsx("jkl-checkbox",d,{"jkl-checkbox--inline":o,"jkl-checkbox--error":l}),"data-density":k,children:[e.jsx("input",{id:m,ref:j,className:"jkl-checkbox__input","data-testid":"jkl-checkbox-input","aria-invalid":l,type:"checkbox","data-testautoid":x,checked:h,...b}),e.jsxs("label",{htmlFor:m,className:"jkl-checkbox__label",children:[e.jsxs("span",{className:"jkl-checkbox__mark",children:[e.jsx("span",{className:"jkl-checkbox__indeterminate-mark"}),e.jsx("span",{className:"jkl-checkbox__check-mark"})]}),e.jsx("span",{className:"jkl-checkbox__text",children:i})]})]})}));t.displayName="Checkbox",exports.Checkbox=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("../../../clsx-E3yX_9sL.cjs"),a=require("react"),s=require("../../hooks/useId/useId.cjs"),t=a.forwardRef((t,r)=>{const{id:n,children:i,invalid:l,className:d,inline:o=!1,density:k,"data-testautoid":x,checked:h,indeterminate:u,...b}=t,j=a.useRef(null);a.useImperativeHandle(r,()=>j.current,[]);const m=s.useId(n||"jkl-checkbox",{generateSuffix:!n});return a.useEffect(()=>{!0===h&&!0===u&&"production"!==process.env.NODE_ENV&&console.warn("A Checkbox can not be both checked and indeterminate, and will be treated as checked"),j.current&&(j.current.indeterminate=!h&&!!u)},[h,u]),e.jsxs("div",{className:c.clsx("jkl-checkbox",d,{"jkl-checkbox--inline":o,"jkl-checkbox--error":l}),"data-density":k,children:[e.jsx("input",{id:m,ref:j,className:"jkl-checkbox__input","data-testid":"jkl-checkbox-input","aria-invalid":l,type:"checkbox","data-testautoid":x,checked:h,...b}),e.jsxs("label",{htmlFor:m,className:"jkl-checkbox__label",children:[e.jsxs("span",{className:"jkl-checkbox__mark",children:[e.jsx("span",{className:"jkl-checkbox__indeterminate-mark"}),e.jsx("span",{className:"jkl-checkbox__check-mark"})]}),e.jsx("span",{className:"jkl-checkbox__text",children:i})]})]})});t.displayName="Checkbox",exports.Checkbox=t;
2
2
  //# sourceMappingURL=Checkbox.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.cjs","sources":["../../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport type { CheckboxProps } from \"./types.js\";\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (props, ref) => {\n const {\n id,\n children,\n invalid,\n className,\n inline = false,\n density,\n \"data-testautoid\": testAutoId,\n checked,\n indeterminate,\n ...rest\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n useImperativeHandle(\n ref,\n () => inputRef.current as HTMLInputElement,\n [],\n );\n\n const inputId = useId(id || \"jkl-checkbox\", { generateSuffix: !id });\n\n useEffect(() => {\n if (\n checked === true &&\n indeterminate === true &&\n process.env.NODE_ENV !== \"production\"\n ) {\n console.warn(\n \"A Checkbox can not be both checked and indeterminate, and will be treated as checked\",\n );\n }\n if (inputRef.current) {\n inputRef.current.indeterminate = !checked && !!indeterminate;\n }\n }, [checked, indeterminate]);\n\n return (\n <div\n className={clsx(\"jkl-checkbox\", className, {\n \"jkl-checkbox--inline\": inline,\n \"jkl-checkbox--error\": invalid,\n })}\n data-density={density}\n >\n <input\n id={inputId}\n ref={inputRef}\n className=\"jkl-checkbox__input\"\n data-testid=\"jkl-checkbox-input\"\n aria-invalid={invalid}\n type=\"checkbox\"\n data-testautoid={testAutoId}\n checked={checked}\n {...rest}\n />\n <label htmlFor={inputId} className=\"jkl-checkbox__label\">\n <span className=\"jkl-checkbox__mark\">\n <span className=\"jkl-checkbox__indeterminate-mark\" />\n <span className=\"jkl-checkbox__check-mark\" />\n </span>\n <span className=\"jkl-checkbox__text\">{children}</span>\n </label>\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["Checkbox","forwardRef","props","ref","id","children","invalid","className","inline","density","testAutoId","checked","indeterminate","rest","inputRef","useRef","useImperativeHandle","current","inputId","useId","generateSuffix","useEffect","process","env","NODE_ENV","console","warn","jsxs","clsx","jsx","type","htmlFor","displayName"],"mappings":"yNAUaA,EAAWC,EAAAA,YACpB,CAACC,EAAOC,KACE,MACFC,GAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,OAAAA,GAAS,EACTC,QAAAA,EACA,kBAAmBC,EACnBC,QAAAA,EACAC,cAAAA,KACGC,GACHX,EAEEY,EAAWC,SAAyB,MAC1CC,EAAAA,oBACIb,GACA,IAAMW,EAASG,SACf,IAGE,MAAAC,EAAUC,EAAAA,MAAMf,GAAM,eAAgB,CAAEgB,gBAAiBhB,IAE/DiB,OAAAA,EAAAA,WAAU,MAEU,IAAZV,IACkB,IAAlBC,GACyB,eAAzBU,QAAQC,IAAIC,UAEJC,QAAAC,KACJ,wFAGJZ,EAASG,UACTH,EAASG,QAAQL,eAAiBD,KAAaC,KAEpD,CAACD,EAASC,IAGTe,EAAAA,KAAC,MAAA,CACGpB,UAAWqB,EAAAA,KAAK,eAAgBrB,EAAW,CACvC,uBAAwBC,EACxB,sBAAuBF,IAE3B,eAAcG,EAEdJ,SAAA,CAAAwB,EAAAA,IAAC,QAAA,CACGzB,GAAIc,EACJf,IAAKW,EACLP,UAAU,sBACV,cAAY,qBACZ,eAAcD,EACdwB,KAAK,WACL,kBAAiBpB,EACjBC,QAAAA,KACIE,IAEPc,EAAAA,KAAA,QAAA,CAAMI,QAASb,EAASX,UAAU,sBAC/BF,SAAA,CAACsB,EAAAA,KAAA,OAAA,CAAKpB,UAAU,qBACZF,SAAA,CAACwB,EAAAA,IAAA,OAAA,CAAKtB,UAAU,qCAChBsB,EAAAA,IAAC,OAAK,CAAAtB,UAAU,gCAEnBsB,EAAAA,IAAA,OAAA,CAAKtB,UAAU,qBAAsBF,SAAAA,SAE9C,IAKZL,EAASgC,YAAc"}
1
+ {"version":3,"file":"Checkbox.cjs","sources":["../../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport type { CheckboxProps } from \"./types.js\";\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (props, ref) => {\n const {\n id,\n children,\n invalid,\n className,\n inline = false,\n density,\n \"data-testautoid\": testAutoId,\n checked,\n indeterminate,\n ...rest\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n useImperativeHandle(\n ref,\n () => inputRef.current as HTMLInputElement,\n [],\n );\n\n const inputId = useId(id || \"jkl-checkbox\", { generateSuffix: !id });\n\n useEffect(() => {\n if (\n checked === true &&\n indeterminate === true &&\n process.env.NODE_ENV !== \"production\"\n ) {\n console.warn(\n \"A Checkbox can not be both checked and indeterminate, and will be treated as checked\",\n );\n }\n if (inputRef.current) {\n inputRef.current.indeterminate = !checked && !!indeterminate;\n }\n }, [checked, indeterminate]);\n\n return (\n <div\n className={clsx(\"jkl-checkbox\", className, {\n \"jkl-checkbox--inline\": inline,\n \"jkl-checkbox--error\": invalid,\n })}\n data-density={density}\n >\n <input\n id={inputId}\n ref={inputRef}\n className=\"jkl-checkbox__input\"\n data-testid=\"jkl-checkbox-input\"\n aria-invalid={invalid}\n type=\"checkbox\"\n data-testautoid={testAutoId}\n checked={checked}\n {...rest}\n />\n <label htmlFor={inputId} className=\"jkl-checkbox__label\">\n <span className=\"jkl-checkbox__mark\">\n <span className=\"jkl-checkbox__indeterminate-mark\" />\n <span className=\"jkl-checkbox__check-mark\" />\n </span>\n <span className=\"jkl-checkbox__text\">{children}</span>\n </label>\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["Checkbox","forwardRef","props","ref","id","children","invalid","className","inline","density","testAutoId","checked","indeterminate","rest","inputRef","useRef","useImperativeHandle","current","inputId","useId","generateSuffix","useEffect","process","env","NODE_ENV","console","warn","jsxs","clsx","jsx","type","htmlFor","displayName"],"mappings":"yNAUaA,EAAWC,EAAAA,WACpB,CAACC,EAAOC,KACJ,MACIC,GAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,OAAAA,GAAS,EACTC,QAAAA,EACA,kBAAmBC,EACnBC,QAAAA,EACAC,cAAAA,KACGC,GACHX,EAEEY,EAAWC,EAAAA,OAAyB,MAC1CC,EAAAA,oBACIb,EACA,IAAMW,EAASG,QACf,IAGJ,MAAMC,EAAUC,EAAAA,MAAMf,GAAM,eAAgB,CAAEgB,gBAAiBhB,IAE/DiB,OAAAA,EAAAA,UAAU,MAEU,IAAZV,IACkB,IAAlBC,GACyB,eAAzBU,QAAQC,IAAIC,UAEZC,QAAQC,KACJ,wFAGJZ,EAASG,UACTH,EAASG,QAAQL,eAAiBD,KAAaC,IAEpD,CAACD,EAASC,IAGTe,EAAAA,KAAC,MAAA,CACGpB,UAAWqB,EAAAA,KAAK,eAAgBrB,EAAW,CACvC,uBAAwBC,EACxB,sBAAuBF,IAE3B,eAAcG,EAEdJ,SAAA,CAAAwB,EAAAA,IAAC,QAAA,CACGzB,GAAIc,EACJf,IAAKW,EACLP,UAAU,sBACV,cAAY,qBACZ,eAAcD,EACdwB,KAAK,WACL,kBAAiBpB,EACjBC,QAAAA,KACIE,IAERc,EAAAA,KAAC,QAAA,CAAMI,QAASb,EAASX,UAAU,sBAC/BF,SAAA,CAAAsB,EAAAA,KAAC,OAAA,CAAKpB,UAAU,qBACZF,SAAA,CAAAwB,EAAAA,IAAC,OAAA,CAAKtB,UAAU,qCAChBsB,EAAAA,IAAC,OAAA,CAAKtB,UAAU,gCAEpBsB,EAAAA,IAAC,OAAA,CAAKtB,UAAU,qBAAsBF,SAAAA,YAO1DL,EAASgC,YAAc"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),t=require("../../shared/input-panel/BasePanel.cjs"),r=a.forwardRef((function({label:r,extraLabel:c,alwaysOpen:l=!1,checked:n,defaultChecked:s,onChange:o,...u},d){const[h,i]=a.useState(s||!1),b=a.useCallback((e=>{o?.(e),i(e.target.checked)}),[o]),k=typeof n<"u",p=k?n:h;return e.jsx(t.BasePanel,{ref:d,type:"checkbox",isChecked:p,defaultChecked:s,checked:k?n:void 0,onChange:b,alwaysOpen:l,label:r,extraLabel:c,...u})}));exports.CheckboxPanel=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),t=require("../../shared/input-panel/BasePanel.cjs"),r=a.forwardRef(function({label:r,extraLabel:c,alwaysOpen:l=!1,checked:n,defaultChecked:s,onChange:o,...u},d){const[h,i]=a.useState(s||!1),b=a.useCallback(e=>{o?.(e),i(e.target.checked)},[o]),k=typeof n<"u",p=k?n:h;return e.jsx(t.BasePanel,{ref:d,type:"checkbox",isChecked:p,defaultChecked:s,checked:k?n:void 0,onChange:b,alwaysOpen:l,label:r,extraLabel:c,...u})});exports.CheckboxPanel=r;
2
2
  //# sourceMappingURL=CheckboxPanel.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxPanel.cjs","sources":["../../../../src/components/checkbox-panel/CheckboxPanel.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n type ForwardedRef,\n forwardRef,\n useCallback,\n useState,\n} from \"react\";\nimport { BasePanel } from \"../../shared/input-panel/BasePanel.js\";\nimport type { CheckboxPanelProps } from \"./types.js\";\n\nexport const CheckboxPanel = forwardRef(function CheckboxPanel(\n {\n label,\n extraLabel,\n alwaysOpen = false,\n checked,\n defaultChecked,\n onChange,\n ...rest\n }: CheckboxPanelProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const [_isChecked, setIsChecked] = useState(defaultChecked || false);\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n setIsChecked(e.target.checked);\n },\n [onChange],\n );\n\n const isControlled = typeof checked !== \"undefined\";\n const isChecked = isControlled ? checked : _isChecked;\n\n return (\n <BasePanel\n ref={ref}\n type=\"checkbox\"\n isChecked={isChecked}\n defaultChecked={defaultChecked}\n checked={isControlled ? checked : undefined}\n onChange={handleChange}\n alwaysOpen={alwaysOpen}\n label={label}\n extraLabel={extraLabel}\n {...rest}\n />\n );\n});\n"],"names":["CheckboxPanel","forwardRef","label","extraLabel","alwaysOpen","checked","defaultChecked","onChange","rest","ref","_isChecked","setIsChecked","useState","handleChange","useCallback","e","target","isControlled","isChecked","jsx","BasePanel","type"],"mappings":"4LAUaA,EAAgBC,EAAAA,YAAW,UAEhCC,MAAAA,EACAC,WAAAA,EACAC,WAAAA,GAAa,EACbC,QAAAA,EACAC,eAAAA,EACAC,SAAAA,KACGC,GAEPC,GAEA,MAAOC,EAAYC,GAAgBC,EAAAA,SAASN,IAAkB,GAExDO,EAAeC,EAAAA,aAChBC,IACGR,IAAWQ,GACEJ,EAAAI,EAAEC,OAAOX,QAAO,GAEjC,CAACE,IAGCU,SAAsBZ,EAAY,IAClCa,EAAYD,EAAeZ,EAAUK,EAGvC,OAAAS,EAAAA,IAACC,EAAAA,UAAA,CACGX,IAAAA,EACAY,KAAK,WACLH,UAAAA,EACAZ,eAAAA,EACAD,QAASY,EAAeZ,OAAU,EAClCE,SAAUM,EACVT,WAAAA,EACAF,MAAAA,EACAC,WAAAA,KACIK,GAGhB"}
1
+ {"version":3,"file":"CheckboxPanel.cjs","sources":["../../../../src/components/checkbox-panel/CheckboxPanel.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n type ForwardedRef,\n forwardRef,\n useCallback,\n useState,\n} from \"react\";\nimport { BasePanel } from \"../../shared/input-panel/BasePanel.js\";\nimport type { CheckboxPanelProps } from \"./types.js\";\n\nexport const CheckboxPanel = forwardRef(function CheckboxPanel(\n {\n label,\n extraLabel,\n alwaysOpen = false,\n checked,\n defaultChecked,\n onChange,\n ...rest\n }: CheckboxPanelProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const [_isChecked, setIsChecked] = useState(defaultChecked || false);\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n setIsChecked(e.target.checked);\n },\n [onChange],\n );\n\n const isControlled = typeof checked !== \"undefined\";\n const isChecked = isControlled ? checked : _isChecked;\n\n return (\n <BasePanel\n ref={ref}\n type=\"checkbox\"\n isChecked={isChecked}\n defaultChecked={defaultChecked}\n checked={isControlled ? checked : undefined}\n onChange={handleChange}\n alwaysOpen={alwaysOpen}\n label={label}\n extraLabel={extraLabel}\n {...rest}\n />\n );\n});\n"],"names":["CheckboxPanel","forwardRef","label","extraLabel","alwaysOpen","checked","defaultChecked","onChange","rest","ref","_isChecked","setIsChecked","useState","handleChange","useCallback","e","target","isControlled","isChecked","jsx","BasePanel","type"],"mappings":"4LAUaA,EAAgBC,EAAAA,WAAW,UAEhCC,MAAAA,EACAC,WAAAA,EACAC,WAAAA,GAAa,EACbC,QAAAA,EACAC,eAAAA,EACAC,SAAAA,KACGC,GAEPC,GAEA,MAAOC,EAAYC,GAAgBC,EAAAA,SAASN,IAAkB,GAExDO,EAAeC,EAAAA,YAChBC,IACGR,IAAWQ,GACXJ,EAAaI,EAAEC,OAAOX,UAE1B,CAACE,IAGCU,SAAsBZ,EAAY,IAClCa,EAAYD,EAAeZ,EAAUK,EAE3C,OACIS,EAAAA,IAACC,EAAAA,UAAA,CACGX,IAAAA,EACAY,KAAK,WACLH,UAAAA,EACAZ,eAAAA,EACAD,QAASY,EAAeZ,OAAU,EAClCE,SAAUM,EACVT,WAAAA,EACAF,MAAAA,EACAC,WAAAA,KACIK,GAGhB"}
@@ -1,6 +1,18 @@
1
1
  import { ComponentPropsWithRef } from 'react';
2
2
  export type CheckboxPanelProps = Omit<ComponentPropsWithRef<"input">, "type"> & {
3
3
  label: string;
4
+ /**
5
+ * @deprecated bruk heller {@link amount} for å vise pris.
6
+ * Dersom du har behov utover dette ta kontakt med oss så finner vi en løsning sammen.
7
+ */
4
8
  extraLabel?: React.ReactNode;
9
+ /**
10
+ * @deprecated vi ønsker ikke at content skal skjules for brukerne lenger
11
+ * @default false
12
+ */
5
13
  alwaysOpen?: boolean;
14
+ /**
15
+ * Viser pris til høyre i panelet
16
+ */
17
+ amount?: string;
6
18
  };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("../../../clsx-E3yX_9sL.cjs"),i=require("react"),s=require("../icon/icons/CheckIcon.cjs"),r=require("../icon/icons/CloseIcon.cjs"),l=i.forwardRef((function({className:i,variant:l,onClick:t,children:n,selected:a,size:o="small",...j},u){return e.jsxs("button",{type:"button",ref:u,className:c.clsx("jkl-chip",`jkl-chip--${o}`,`jkl-chip--${l}`,i),onClick:t,"aria-pressed":a,...j,children:[n,"filter"===l&&a&&e.jsx(s.CheckIcon,{className:"jkl-chip__icon",variant:"small","data-testid":"jkl-check-icon"}),"input"===l&&e.jsx(r.CloseIcon,{className:"jkl-chip__icon",variant:"small","data-testid":"jkl-close-icon"})]})}));exports.Chip=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("../../../clsx-E3yX_9sL.cjs"),i=require("react"),s=require("../icon/icons/CheckIcon.cjs"),r=require("../icon/icons/CloseIcon.cjs"),l=i.forwardRef(function({className:i,variant:l,onClick:t,children:n,selected:a,size:o="small",...j},u){return e.jsxs("button",{type:"button",ref:u,className:c.clsx("jkl-chip",`jkl-chip--${o}`,`jkl-chip--${l}`,i),onClick:t,"aria-pressed":a,...j,children:[n,"filter"===l&&a&&e.jsx(s.CheckIcon,{className:"jkl-chip__icon",variant:"small","data-testid":"jkl-check-icon"}),"input"===l&&e.jsx(r.CloseIcon,{className:"jkl-chip__icon",variant:"small","data-testid":"jkl-close-icon"})]})});exports.Chip=l;
2
2
  //# sourceMappingURL=Chip.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.cjs","sources":["../../../../src/components/chip/Chip.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { CheckIcon } from \"../icon/icons/CheckIcon.js\";\nimport { CloseIcon } from \"../icon/icons/CloseIcon.js\";\nimport type { ChipProps } from \"./types.js\";\n\nexport const Chip = forwardRef<HTMLButtonElement, ChipProps>(function Chip(\n {\n className,\n variant,\n onClick,\n children,\n selected,\n size = \"small\",\n ...rest\n },\n ref,\n) {\n return (\n <button\n type=\"button\"\n ref={ref}\n className={clsx(\n \"jkl-chip\",\n `jkl-chip--${size}`,\n `jkl-chip--${variant}`,\n className,\n )}\n onClick={onClick}\n aria-pressed={selected}\n {...rest}\n >\n {children}\n {variant === \"filter\" && selected && (\n <CheckIcon\n className=\"jkl-chip__icon\"\n variant=\"small\"\n data-testid=\"jkl-check-icon\"\n />\n )}\n {variant === \"input\" && (\n <CloseIcon\n className=\"jkl-chip__icon\"\n variant=\"small\"\n data-testid=\"jkl-close-icon\"\n />\n )}\n </button>\n );\n});\n"],"names":["Chip","forwardRef","className","variant","onClick","children","selected","size","rest","ref","jsxs","type","clsx","jsx","CheckIcon","CloseIcon"],"mappings":"kQAMaA,EAAOC,EAAAA,YAAyC,UAErDC,UAAAA,EACAC,QAAAA,EACAC,QAAAA,EACAC,SAAAA,EACAC,SAAAA,EACAC,KAAAA,EAAO,WACJC,GAEPC,GAGI,OAAAC,EAAAA,KAAC,SAAA,CACGC,KAAK,SACLF,IAAAA,EACAP,UAAWU,EAAAA,KACP,WACA,aAAaL,IACb,aAAaJ,IACbD,GAEJE,QAAAA,EACA,eAAcE,KACVE,EAEHH,SAAA,CAAAA,EACY,WAAZF,GAAwBG,GACrBO,EAAAA,IAACC,EAAAA,UAAA,CACGZ,UAAU,iBACVC,QAAQ,QACR,cAAY,mBAGP,UAAZA,GACGU,EAAAA,IAACE,EAAAA,UAAA,CACGb,UAAU,iBACVC,QAAQ,QACR,cAAY,qBAKhC"}
1
+ {"version":3,"file":"Chip.cjs","sources":["../../../../src/components/chip/Chip.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { CheckIcon } from \"../icon/icons/CheckIcon.js\";\nimport { CloseIcon } from \"../icon/icons/CloseIcon.js\";\nimport type { ChipProps } from \"./types.js\";\n\nexport const Chip = forwardRef<HTMLButtonElement, ChipProps>(function Chip(\n {\n className,\n variant,\n onClick,\n children,\n selected,\n size = \"small\",\n ...rest\n },\n ref,\n) {\n return (\n <button\n type=\"button\"\n ref={ref}\n className={clsx(\n \"jkl-chip\",\n `jkl-chip--${size}`,\n `jkl-chip--${variant}`,\n className,\n )}\n onClick={onClick}\n aria-pressed={selected}\n {...rest}\n >\n {children}\n {variant === \"filter\" && selected && (\n <CheckIcon\n className=\"jkl-chip__icon\"\n variant=\"small\"\n data-testid=\"jkl-check-icon\"\n />\n )}\n {variant === \"input\" && (\n <CloseIcon\n className=\"jkl-chip__icon\"\n variant=\"small\"\n data-testid=\"jkl-close-icon\"\n />\n )}\n </button>\n );\n});\n"],"names":["Chip","forwardRef","className","variant","onClick","children","selected","size","rest","ref","jsxs","type","clsx","jsx","CheckIcon","CloseIcon"],"mappings":"kQAMaA,EAAOC,EAAAA,WAAyC,UAErDC,UAAAA,EACAC,QAAAA,EACAC,QAAAA,EACAC,SAAAA,EACAC,SAAAA,EACAC,KAAAA,EAAO,WACJC,GAEPC,GAEA,OACIC,EAAAA,KAAC,SAAA,CACGC,KAAK,SACLF,IAAAA,EACAP,UAAWU,EAAAA,KACP,WACA,aAAaL,IACb,aAAaJ,IACbD,GAEJE,QAAAA,EACA,eAAcE,KACVE,EAEHH,SAAA,CAAAA,EACY,WAAZF,GAAwBG,GACrBO,EAAAA,IAACC,EAAAA,UAAA,CACGZ,UAAU,iBACVC,QAAQ,QACR,cAAY,mBAGP,UAAZA,GACGU,EAAAA,IAACE,EAAAA,UAAA,CACGb,UAAU,iBACVC,QAAQ,QACR,cAAY,qBAKhC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("../../../clsx-E3yX_9sL.cjs"),t=require("react"),a=require("../../hooks/useAnimatedHeight/useAnimatedHeight.cjs"),n=require("../../hooks/useId/useId.cjs"),r=require("../../hooks/useListNavigation/useListNavigation.cjs"),l=require("../chip/Chip.cjs"),s=require("../icon-button/IconButton.cjs"),c=require("../icon/icons/CheckIcon.cjs"),i=require("../icon/icons/animated/ArrowVerticalAnimated.cjs"),u=require("../input-group/InputGroup.cjs"),p=require("../tooltip/Tooltip.cjs"),b=require("../tooltip/TooltipContent.cjs"),d=require("../tooltip/TooltipTrigger.cjs");function m(e){return"string"==typeof e?{value:e,label:e}:e}const x=({id:x,placeholder:j,items:k,onChange:v,onFocus:f,onBlur:h,value:g,label:_,noMatchingOption:y,labelProps:C,helpLabel:w,errorLabel:q,width:N,density:$,name:L,className:T,invalid:S,description:I,hasTagHover:P})=>{const B=n.useId(x||"jkl-combobox",{generateSuffix:!x}),D=`${B}_label`,E=`${B}_button`,A=`${B}_search-input`,[F,M]=t.useState(g||[]),[O,K]=t.useState(!1),[H,R]=t.useState(""),[V,G]=t.useState(!1),[U,z]=t.useState(!1),J=t.useRef(null),Q=t.useRef(null),W=t.useRef(!1);t.useEffect((()=>{R(""),O&&J.current&&J.current.focus()}),[O]),t.useEffect((()=>{M((e=>g||e))}),[g]);const X=e=>!!F&&F.some((o=>o.value===e.value)),Y=t.useCallback((e=>F.filter((o=>o.value!==e))),[F]),Z=t.useCallback(((e,o)=>{const t=Y(o);M(t),v({type:"change",target:{name:L,value:o,selectedOptions:t}}),e.stopPropagation(),0===t.length&&z(!1)}),[Y,v,L]),ee=t.useCallback((e=>{let o;if(F.some((o=>o.value===e)))o=Y(e);else{const t=k.find((o=>o.value===e));o=[...F,t]}J.current?.focus(),M(o),v({type:"change",target:{name:L,value:e,selectedOptions:o}})}),[F,v,L,Y,k]),oe=e=>{J.current?.focus(),K(!0),R(e.target.value)},te=t.useMemo((()=>{if(!H)return k;const e=k.filter((e=>e.label.toLowerCase().indexOf(H.toLowerCase())>=0));return G(0===e.length),e}),[H,k]),[ae,ne]=t.useState(te[0]?.value?`${B}-${te[0]?.value}`:void 0),re=!O;t.useEffect((()=>{const e=e=>{"Escape"===e.key&&O&&K(!1)};return typeof window<"u"&&window.addEventListener("keydown",e),()=>{typeof window<"u"&&O&&window.removeEventListener("keydown",e)}}),[O]);const le=t.useCallback((e=>{e?J.current&&J.current.focus():W.current&&Q.current&&Q.current.focus()}),[]),se=t.useCallback((()=>{W.current||(f&&f({type:"change",target:{name:L,value:F?.[0].value||"",selectedOptions:F}}),W.current=!0,K(!0))}),[f,F,L]),[ce]=a.useAnimatedHeight(O,{onFirstVisible:le,onTransitionEnd:le});r.useListNavigation({ref:ce});const ie=t.useRef(null),ue=t.useCallback((e=>{ie.current?.contains(e.relatedTarget)||(R(""),h&&(h({type:"blur",target:{name:L,value:F?.[0]?.value||"",selectedOptions:F}}),Q.current?.dispatchEvent(new Event("focusout",{bubbles:!0}))),W.current=!1,K(!1))}),[h,L,F]),pe=t.useCallback((e=>{e.target.focus({preventScroll:!0})}),[]),be=t.useCallback((e=>{if("ArrowDown"===e.key){e.preventDefault(),e.stopPropagation();const o=ce.current;o&&o.querySelector('[role="option"]')?.focus()}else"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),K(!1));if(e.metaKey&&"a"===e.key||e.ctrlKey&&"a"===e.key){e.preventDefault(),e.stopPropagation();const o=F.map((e=>({...e,isMarked:!0})));z(!0),M(o)}else if("Backspace"===e.key)if(e.stopPropagation(),z(!1),F.some((e=>e.isMarked))){const e=F.filter((e=>!e.isMarked));M(e),R("")}else F.length>0&&""===H&&Z(e,F[F.length-1].value)}),[F,H,ce,Z]),de=t.useCallback((e=>{if("Tab"===e.key)J.current&&(e.preventDefault(),e.stopPropagation(),e.shiftKey||K(!1),J.current.focus());else if("ArrowUp"===e.key&&ce.current&&J.current){const o=ce.current.querySelector('[role="option"]:not([hidden])');e.currentTarget.id===o?.id&&J.current&&J.current.focus()}}),[ce]),me=F.length>=1,xe=t.useCallback((o=>e.jsx(l.Chip,{"data-testid":"jkl-chip","aria-label":`Fjern ${o.tagLabel}`,className:`jkl-combobox__selected-option ${U&&"jkl-combobox__selected-option--marked"}`,variant:"input",onClick:e=>{J.current&&J.current.focus(),Z(e,o.value)},onBlur:ue,children:o.tagLabel?o.tagLabel:o.label},o.value)),[ue,Z,U]);return e.jsx(u.InputGroup,{label:_,id:A,ref:ie,"data-testid":"jkl-combobox",className:o.clsx("jkl-combobox",T,{"jkl-combobox--invalid":!!q||S,"jkl-combobox--menu-open":O,"jkl-combobox--menu-closed":!O&&me}),labelProps:{id:D,...C},helpLabel:w,errorLabel:q,density:$,description:I,render:t=>e.jsxs("div",{className:o.clsx("jkl-combobox__wrapper",{"jkl-combobox__wrapper--active-value":me}),style:{width:N},tabIndex:-1,onFocus:se,onBlur:ue,children:[e.jsxs("div",{className:"jkl-combobox__chips","data-testid":"jkl-combobox__chips",children:[F.map(m).map((o=>P?e.jsxs(p.Tooltip,{children:[e.jsx(d.TooltipTrigger,{children:xe(o)}),e.jsx(b.TooltipContent,{children:o.label})]},o.value):xe(o))),e.jsx("input",{...t,className:"jkl-combobox__search-input",onChange:oe,"data-testid":"jkl-combobox__search-input",onFocus:se,onBlur:ue,onKeyDown:be,value:H,ref:J,"aria-controls":B,role:"combobox","aria-autocomplete":"list","aria-expanded":O,placeholder:F.length>0?"":j,autoComplete:"off"})]}),e.jsxs("div",{className:"jkl-combobox__menu",role:"listbox",ref:ce,id:B,"aria-labelledby":D,"aria-multiselectable":"true","aria-activedescendant":ae,onFocus:se,onBlur:ue,tabIndex:-1,children:[te.map(((o,t)=>e.jsxs("button",{type:"button",id:`${B}__${o.value}`,"aria-selected":X(o),role:"option",value:o.value,onBlur:ue,className:`jkl-combobox__option ${X(o)&&"jkl-combobox__option--selected"}`,"data-testid":"jkl-combobox__option","data-testautoid":`jkl-combobox__option-${t}`,onFocus:se,onKeyDown:de,onClick:e=>{ne(`${B}__${o.value}`),e.stopPropagation(),ee(o.value),R("")},onMouseOver:pe,children:[o.description?e.jsxs("span",{children:[o.label,e.jsx("span",{className:"jkl-combobox__option-description",children:o.description})]}):o.label,X(o)?e.jsxs("span",{children:[e.jsx(c.CheckIcon,{})," "]}):null]},`${B}-${o.value}`))),V&&e.jsx("div",{className:"jkl-combobox__no-option",children:y})]}),e.jsx("div",{className:"jkl-combobox__actions",children:e.jsx(s.IconButton,{id:E,onFocus:se,onBlur:ue,className:"jkl-combobox__button","data-testid":"jkl-combobox__button","aria-label":"Åpne meny","aria-expanded":O,"aria-controls":B,onClick:()=>K((e=>!e)),onMouseDown:e=>{e.preventDefault(),Q.current?.focus()},children:e.jsx(i.ArrowVerticalAnimated,{pointingDown:re})})})]})})};x.displayName="Combobox",exports.Combobox=x,exports.getComboboxValuePair=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("../../../clsx-E3yX_9sL.cjs"),t=require("react"),a=require("../../hooks/useAnimatedHeight/useAnimatedHeight.cjs"),n=require("../../hooks/useId/useId.cjs"),r=require("../../hooks/useListNavigation/useListNavigation.cjs"),l=require("../chip/Chip.cjs"),s=require("../icon-button/IconButton.cjs"),c=require("../icon/icons/CheckIcon.cjs"),i=require("../icon/icons/animated/ArrowVerticalAnimated.cjs"),u=require("../input-group/InputGroup.cjs"),p=require("../tooltip/Tooltip.cjs"),b=require("../tooltip/TooltipContent.cjs"),d=require("../tooltip/TooltipTrigger.cjs");function m(e){return"string"==typeof e?{value:e,label:e}:e}const x=({id:x,placeholder:j,items:k,onChange:v,onFocus:f,onBlur:h,value:g,label:_,noMatchingOption:y,labelProps:C,helpLabel:w,errorLabel:q,width:N,density:$,name:L,className:T,invalid:S,description:I,hasTagHover:P})=>{const B=n.useId(x||"jkl-combobox",{generateSuffix:!x}),D=`${B}_label`,E=`${B}_button`,A=`${B}_search-input`,[F,M]=t.useState(g||[]),[O,K]=t.useState(!1),[H,R]=t.useState(""),[V,G]=t.useState(!1),[U,z]=t.useState(!1),J=t.useRef(null),Q=t.useRef(null),W=t.useRef(!1);t.useEffect(()=>{R(""),O&&J.current&&J.current.focus()},[O]),t.useEffect(()=>{M(e=>g||e)},[g]);const X=e=>!!F&&F.some(o=>o.value===e.value),Y=t.useCallback(e=>F.filter(o=>o.value!==e),[F]),Z=t.useCallback((e,o)=>{const t=Y(o);M(t),v({type:"change",target:{name:L,value:o,selectedOptions:t}}),e.stopPropagation(),0===t.length&&z(!1)},[Y,v,L]),ee=t.useCallback(e=>{let o;if(F.some(o=>o.value===e))o=Y(e);else{const t=k.find(o=>o.value===e);o=[...F,t]}J.current?.focus(),M(o),v({type:"change",target:{name:L,value:e,selectedOptions:o}})},[F,v,L,Y,k]),oe=e=>{J.current?.focus(),K(!0),R(e.target.value)},te=t.useMemo(()=>{if(!H)return k;const e=k.filter(e=>e.label.toLowerCase().indexOf(H.toLowerCase())>=0);return G(0===e.length),e},[H,k]),[ae,ne]=t.useState(te[0]?.value?`${B}-${te[0]?.value}`:void 0),re=!O;t.useEffect(()=>{const e=e=>{"Escape"===e.key&&O&&K(!1)};return typeof window<"u"&&window.addEventListener("keydown",e),()=>{typeof window<"u"&&O&&window.removeEventListener("keydown",e)}},[O]);const le=t.useCallback(e=>{e?J.current&&J.current.focus():W.current&&Q.current&&Q.current.focus()},[]),se=t.useCallback(()=>{W.current||(f&&f({type:"change",target:{name:L,value:F?.[0].value||"",selectedOptions:F}}),W.current=!0,K(!0))},[f,F,L]),[ce]=a.useAnimatedHeight(O,{onFirstVisible:le,onTransitionEnd:le});r.useListNavigation({ref:ce});const ie=t.useRef(null),ue=t.useCallback(e=>{ie.current?.contains(e.relatedTarget)||(R(""),h&&(h({type:"blur",target:{name:L,value:F?.[0]?.value||"",selectedOptions:F}}),Q.current?.dispatchEvent(new Event("focusout",{bubbles:!0}))),W.current=!1,K(!1))},[h,L,F]),pe=t.useCallback(e=>{e.target.focus({preventScroll:!0})},[]),be=t.useCallback(e=>{if("ArrowDown"===e.key){e.preventDefault(),e.stopPropagation();const o=ce.current;o&&o.querySelector('[role="option"]')?.focus()}else"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),K(!1));if(e.metaKey&&"a"===e.key||e.ctrlKey&&"a"===e.key){e.preventDefault(),e.stopPropagation();const o=F.map(e=>({...e,isMarked:!0}));z(!0),M(o)}else if("Backspace"===e.key)if(e.stopPropagation(),z(!1),F.some(e=>e.isMarked)){const e=F.filter(e=>!e.isMarked);M(e),R("")}else F.length>0&&""===H&&Z(e,F[F.length-1].value)},[F,H,ce,Z]),de=t.useCallback(e=>{if("Tab"===e.key)J.current&&(e.preventDefault(),e.stopPropagation(),e.shiftKey||K(!1),J.current.focus());else if("ArrowUp"===e.key&&ce.current&&J.current){const o=ce.current.querySelector('[role="option"]:not([hidden])');e.currentTarget.id===o?.id&&J.current&&J.current.focus()}},[ce]),me=F.length>=1,xe=t.useCallback(o=>e.jsx(l.Chip,{"data-testid":"jkl-chip","aria-label":`Fjern ${o.tagLabel}`,className:`jkl-combobox__selected-option ${U&&"jkl-combobox__selected-option--marked"}`,variant:"input",onClick:e=>{J.current&&J.current.focus(),Z(e,o.value)},onBlur:ue,children:o.tagLabel?o.tagLabel:o.label},o.value),[ue,Z,U]);return e.jsx(u.InputGroup,{label:_,id:A,ref:ie,"data-testid":"jkl-combobox",className:o.clsx("jkl-combobox",T,{"jkl-combobox--invalid":!!q||S,"jkl-combobox--menu-open":O,"jkl-combobox--menu-closed":!O&&me}),labelProps:{id:D,...C},helpLabel:w,errorLabel:q,density:$,description:I,render:t=>e.jsxs("div",{className:o.clsx("jkl-combobox__wrapper",{"jkl-combobox__wrapper--active-value":me}),style:{width:N},tabIndex:-1,onFocus:se,onBlur:ue,children:[e.jsxs("div",{className:"jkl-combobox__chips","data-testid":"jkl-combobox__chips",children:[F.map(m).map(o=>P?e.jsxs(p.Tooltip,{children:[e.jsx(d.TooltipTrigger,{children:xe(o)}),e.jsx(b.TooltipContent,{children:o.label})]},o.value):xe(o)),e.jsx("input",{...t,className:"jkl-combobox__search-input",onChange:oe,"data-testid":"jkl-combobox__search-input",onFocus:se,onBlur:ue,onKeyDown:be,value:H,ref:J,"aria-controls":B,role:"combobox","aria-autocomplete":"list","aria-expanded":O,placeholder:F.length>0?"":j,autoComplete:"off"})]}),e.jsxs("div",{className:"jkl-combobox__menu",role:"listbox",ref:ce,id:B,"aria-labelledby":D,"aria-multiselectable":"true","aria-activedescendant":ae,onFocus:se,onBlur:ue,tabIndex:-1,children:[te.map((o,t)=>e.jsxs("button",{type:"button",id:`${B}__${o.value}`,"aria-selected":X(o),role:"option",value:o.value,onBlur:ue,className:`jkl-combobox__option ${X(o)&&"jkl-combobox__option--selected"}`,"data-testid":"jkl-combobox__option","data-testautoid":`jkl-combobox__option-${t}`,onFocus:se,onKeyDown:de,onClick:e=>{ne(`${B}__${o.value}`),e.stopPropagation(),ee(o.value),R("")},onMouseOver:pe,children:[o.description?e.jsxs("span",{children:[o.label,e.jsx("span",{className:"jkl-combobox__option-description",children:o.description})]}):o.label,X(o)?e.jsxs("span",{children:[e.jsx(c.CheckIcon,{})," "]}):null]},`${B}-${o.value}`)),V&&e.jsx("div",{className:"jkl-combobox__no-option",children:y})]}),e.jsx("div",{className:"jkl-combobox__actions",children:e.jsx(s.IconButton,{id:E,onFocus:se,onBlur:ue,className:"jkl-combobox__button","data-testid":"jkl-combobox__button","aria-label":"Åpne meny","aria-expanded":O,"aria-controls":B,onClick:()=>K(e=>!e),onMouseDown:e=>{e.preventDefault(),Q.current?.focus()},children:e.jsx(i.ArrowVerticalAnimated,{pointingDown:re})})})]})})};x.displayName="Combobox",exports.Combobox=x,exports.getComboboxValuePair=m;
2
2
  //# sourceMappingURL=Combobox.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.cjs","sources":["../../../../src/components/combobox/Combobox.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, {\n type FC,\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {useAnimatedHeight} from \"../../hooks/useAnimatedHeight/useAnimatedHeight.js\";\nimport {useId} from \"../../hooks/useId/useId.js\";\nimport {useListNavigation} from \"../../hooks/useListNavigation/useListNavigation.js\";\nimport type {ValuePair} from \"../../utilities/valuePair.js\";\nimport {Chip} from \"../chip/Chip.js\";\nimport {IconButton} from \"../icon-button/IconButton.js\";\nimport {CheckIcon} from \"../icon/icons/CheckIcon.js\";\nimport {ArrowVerticalAnimated} from \"../icon/icons/animated/ArrowVerticalAnimated.js\";\nimport {InputGroup} from \"../input-group/InputGroup.js\";\nimport {Tooltip} from \"../tooltip/Tooltip.js\";\nimport {TooltipContent} from \"../tooltip/TooltipContent.js\";\nimport {TooltipTrigger} from \"../tooltip/TooltipTrigger.js\";\nimport type {ComboboxProps, ComboboxValuePair} from \"./types.js\";\n\nexport function getComboboxValuePair(\n item: string | ComboboxValuePair,\n): ComboboxValuePair {\n return typeof item === \"string\" ? { value: item, label: item } : item;\n}\n\nexport const Combobox: FC<ComboboxProps> = ({\n id,\n placeholder,\n items,\n onChange,\n onFocus,\n onBlur,\n value,\n label,\n noMatchingOption,\n labelProps,\n helpLabel,\n errorLabel,\n width,\n density,\n name,\n className,\n invalid,\n description,\n hasTagHover,\n}) => {\n const listId = useId(id || \"jkl-combobox\", { generateSuffix: !id });\n const labelId = `${listId}_label`;\n const buttonId = `${listId}_button`;\n const inputId = `${listId}_search-input`;\n\n const [selectedValue, setSelectedValue] = useState<\n Array<ComboboxValuePair>\n >(value || []);\n const [showMenu, setShowMenu] = useState<boolean>(false);\n const [searchValue, setSearchValue] = useState<string>(\"\");\n const [noResults, setNoResults] = useState(false);\n const [marked, setMarked] = useState<boolean>(false);\n\n const searchRef = useRef<HTMLInputElement>(null);\n const inputRef = useRef<HTMLDivElement>(null);\n const focusInsideRef = useRef(false);\n\n useEffect(() => {\n setSearchValue(\"\");\n if (showMenu && searchRef.current) {\n searchRef.current.focus();\n }\n }, [showMenu]);\n\n useEffect(() => {\n setSelectedValue((prev) => value || prev);\n }, [value]);\n\n // Funksjon for å stile valgt element\n const isSelected = (option: ValuePair) => {\n if (!selectedValue) {\n return false;\n }\n\n return selectedValue.some((value) => value.value === option.value);\n };\n\n // Fjerne ett eller flere valg\n const removeOption = useCallback(\n (option: string) => {\n return selectedValue.filter((value) => value.value !== option);\n },\n [selectedValue],\n );\n\n const onTagRemove = useCallback(\n (\n e:\n | React.MouseEvent<HTMLButtonElement, globalThis.MouseEvent>\n | React.KeyboardEvent<HTMLInputElement>,\n option: string,\n ) => {\n const newValue = removeOption(option);\n setSelectedValue(newValue);\n onChange({\n type: \"change\",\n target: { name, value: option, selectedOptions: newValue },\n });\n e.stopPropagation();\n\n if (newValue.length === 0) {\n setMarked(false);\n }\n },\n [removeOption, onChange, name],\n );\n\n // Håndtere valgt verdi i listen\n const onItemClick = useCallback(\n (option: string) => {\n let newValue: Array<ValuePair>;\n\n if (selectedValue.some((value) => value.value === option)) {\n newValue = removeOption(option);\n } else {\n const item = items.find((i) => i.value === option);\n newValue = [...selectedValue, item as ValuePair];\n }\n searchRef.current?.focus();\n setSelectedValue(newValue);\n onChange({\n type: \"change\",\n target: { name, value: option, selectedOptions: newValue },\n });\n },\n [selectedValue, onChange, name, removeOption, items],\n );\n\n // Funksjon for søk\n const onSearch = (e: {\n target: { value: React.SetStateAction<string> };\n }) => {\n searchRef.current?.focus();\n setShowMenu(true);\n setSearchValue(e.target.value);\n };\n\n const options = useMemo(() => {\n if (!searchValue) {\n return items;\n }\n\n const filteredOptions = items.filter(\n (option) =>\n option.label.toLowerCase().indexOf(searchValue.toLowerCase()) >=\n 0,\n );\n\n setNoResults(filteredOptions.length === 0);\n\n return filteredOptions;\n }, [searchValue, items]);\n\n // Det første elementet i listen skal være aktivt fram til brukeren klikker på noe annet\n const [activeDescendant, setActiveDescendant] = useState<\n string | undefined\n >(options[0]?.value ? `${listId}-${options[0]?.value}` : undefined);\n\n // Håndtere arrow-state\n const isPointingDown = !showMenu;\n\n // Lukk meny med ESC\n useEffect(() => {\n const handleEscape = (e: globalThis.KeyboardEvent) => {\n if (e.key === \"Escape\" && showMenu) {\n setShowMenu(false);\n }\n };\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"keydown\", handleEscape);\n }\n return () => {\n if (typeof window !== \"undefined\" && showMenu) {\n window.removeEventListener(\"keydown\", handleEscape);\n }\n };\n }, [showMenu]);\n\n // Fokushåndtering\n const handleFocusPlacement = useCallback((isOpen: boolean) => {\n if (isOpen) {\n if (searchRef.current) {\n searchRef.current.focus();\n }\n } else {\n if (focusInsideRef.current && inputRef.current) {\n inputRef.current.focus();\n }\n }\n }, []);\n\n const handleFocus = useCallback(() => {\n if (!focusInsideRef.current) {\n if (onFocus) {\n onFocus({\n type: \"change\",\n target: {\n name,\n value: selectedValue?.[0].value || \"\",\n selectedOptions: selectedValue,\n },\n });\n }\n focusInsideRef.current = true;\n setShowMenu(true);\n }\n }, [onFocus, selectedValue, name]);\n\n const [dropdownRef] = useAnimatedHeight<HTMLDivElement>(showMenu, {\n onFirstVisible: handleFocusPlacement,\n onTransitionEnd: handleFocusPlacement,\n });\n\n useListNavigation({ ref: dropdownRef });\n\n const componentRootElementRef = useRef<HTMLDivElement>(null);\n\n const handleBlur = useCallback(\n (\n e: FocusEvent<\n HTMLDivElement | HTMLInputElement | HTMLButtonElement\n >,\n ) => {\n const componentRootElement = componentRootElementRef.current;\n const nextFocusIsInsideComponent = componentRootElement?.contains(\n e.relatedTarget as Node,\n );\n if (!nextFocusIsInsideComponent) {\n setSearchValue(\"\");\n\n if (onBlur) {\n onBlur({\n type: \"blur\",\n target: {\n name,\n value: selectedValue?.[0]?.value || \"\",\n selectedOptions: selectedValue,\n },\n });\n inputRef.current?.dispatchEvent(\n new Event(\"focusout\", { bubbles: true }),\n );\n }\n focusInsideRef.current = false;\n setShowMenu(false);\n }\n },\n [onBlur, name, selectedValue],\n );\n\n const handleMouseOver = useCallback((e: MouseEvent<HTMLButtonElement>) => {\n // Ved mouseOver på options flytter vi fokus til dem for å unngå \"dobbel fokus\"\n // der det ser ut som to forskjellige elementer er fokusert/hovered samtidig\n (e.target as HTMLButtonElement).focus({ preventScroll: true });\n }, []);\n\n // Tastaturnavigasjon\n const handleSearchOnKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n e.stopPropagation();\n const listElement = dropdownRef.current;\n if (listElement) {\n listElement\n .querySelector<HTMLButtonElement>('[role=\"option\"]')\n ?.focus();\n }\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n e.stopPropagation();\n setShowMenu(false);\n }\n\n if ((e.metaKey && e.key === \"a\") || (e.ctrlKey && e.key === \"a\")) {\n e.preventDefault();\n e.stopPropagation();\n const updatedSelectedValue = selectedValue.map((item) => ({\n ...item,\n isMarked: true,\n }));\n setMarked(true);\n setSelectedValue(updatedSelectedValue);\n } else if (e.key === \"Backspace\") {\n e.stopPropagation();\n setMarked(false);\n\n // Sjekk om selectedValue er markert\n const selectedValueIsMarked = selectedValue.some(\n (item) => item.isMarked,\n );\n\n if (selectedValueIsMarked) {\n const updatedSelectedValue = selectedValue.filter(\n (item) => !item.isMarked,\n );\n setSelectedValue(updatedSelectedValue);\n setSearchValue(\"\");\n } else if (selectedValue.length > 0 && searchValue === \"\") {\n // Hvis ingen items er markert, fjern siste valgte item\n onTagRemove(\n e,\n selectedValue[selectedValue.length - 1].value,\n );\n }\n }\n },\n [selectedValue, searchValue, dropdownRef, onTagRemove],\n );\n\n const handleOptionOnKeyDown = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"Tab\") {\n if (searchRef.current) {\n e.preventDefault();\n e.stopPropagation();\n\n if (e.shiftKey) {\n searchRef.current.focus();\n } else {\n setShowMenu(false);\n searchRef.current.focus();\n }\n }\n } else if (e.key === \"ArrowUp\") {\n if (dropdownRef.current && searchRef.current) {\n // Can't be based on index since the first item might be filtered out\n const firstVisible = dropdownRef.current.querySelector(\n '[role=\"option\"]:not([hidden])',\n );\n if (\n e.currentTarget.id === firstVisible?.id &&\n searchRef.current\n ) {\n searchRef.current.focus();\n }\n }\n }\n },\n [dropdownRef],\n );\n\n const hasSelection = selectedValue.length >= 1;\n\n const renderSelectedOption = useCallback(\n (option: ComboboxValuePair) => (\n <Chip\n key={option.value}\n data-testid=\"jkl-chip\"\n aria-label={`Fjern ${option.tagLabel}`}\n className={`jkl-combobox__selected-option ${\n marked && \"jkl-combobox__selected-option--marked\"\n }`}\n variant=\"input\"\n onClick={(e) => {\n if (searchRef.current) {\n searchRef.current.focus();\n }\n onTagRemove(e, option.value);\n }}\n onBlur={handleBlur}\n >\n {option.tagLabel ? option.tagLabel : option.label}\n </Chip>\n ),\n [handleBlur, onTagRemove, marked],\n );\n\n return (\n <InputGroup\n label={label}\n id={inputId}\n ref={componentRootElementRef}\n data-testid=\"jkl-combobox\"\n className={clsx(\"jkl-combobox\", className, {\n \"jkl-combobox--invalid\": !!errorLabel || invalid,\n \"jkl-combobox--menu-open\": showMenu,\n \"jkl-combobox--menu-closed\": !showMenu && hasSelection,\n })}\n labelProps={{\n id: labelId,\n ...labelProps,\n }}\n helpLabel={helpLabel}\n errorLabel={errorLabel}\n density={density}\n description={description}\n render={(inputProps) => (\n <div\n className={clsx(\"jkl-combobox__wrapper\", {\n \"jkl-combobox__wrapper--active-value\": hasSelection,\n })}\n style={{ width }}\n tabIndex={-1}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n <div\n className=\"jkl-combobox__chips\"\n data-testid=\"jkl-combobox__chips\"\n >\n {selectedValue\n .map(getComboboxValuePair)\n .map((option) => {\n return hasTagHover ? (\n <Tooltip key={option.value}>\n <TooltipTrigger>\n {renderSelectedOption(option)}\n </TooltipTrigger>\n <TooltipContent>\n {option.label}\n </TooltipContent>\n </Tooltip>\n ) : (\n renderSelectedOption(option)\n );\n })}\n <input\n {...inputProps}\n className=\"jkl-combobox__search-input\"\n onChange={onSearch}\n data-testid=\"jkl-combobox__search-input\"\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleSearchOnKeyDown}\n value={searchValue}\n ref={searchRef}\n aria-controls={listId}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-expanded={showMenu}\n placeholder={\n selectedValue.length > 0 ? \"\" : placeholder\n }\n autoComplete=\"off\"\n />\n </div>\n\n <div\n className=\"jkl-combobox__menu\"\n // biome-ignore lint/a11y/useSemanticElements: Dette er en reimplementering av en liste\n role=\"listbox\"\n ref={dropdownRef}\n id={listId}\n aria-labelledby={labelId}\n aria-multiselectable=\"true\"\n aria-activedescendant={activeDescendant}\n onFocus={handleFocus}\n onBlur={handleBlur}\n tabIndex={-1}\n >\n {options.map((option, i) => (\n <button\n key={`${listId}-${option.value}`}\n type=\"button\"\n id={`${listId}__${option.value}`}\n aria-selected={isSelected(option)}\n // biome-ignore lint/a11y/useSemanticElements: Dette er en reimplementering av en liste\n role=\"option\"\n value={option.value}\n onBlur={handleBlur}\n className={`jkl-combobox__option ${\n isSelected(option) &&\n \"jkl-combobox__option--selected\"\n }`}\n data-testid=\"jkl-combobox__option\"\n data-testautoid={`jkl-combobox__option-${i}`}\n onFocus={handleFocus}\n onKeyDown={handleOptionOnKeyDown}\n onClick={(e) => {\n setActiveDescendant(\n `${listId}__${option.value}`,\n ); // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#required_javascript_features\n e.stopPropagation();\n onItemClick(option.value);\n setSearchValue(\"\");\n }}\n onMouseOver={handleMouseOver}\n >\n {option.description ? (\n <span>\n {option.label}\n <span className=\"jkl-combobox__option-description\">\n {option.description}\n </span>\n </span>\n ) : (\n option.label\n )}\n {isSelected(option) ? (\n <span>\n <CheckIcon />{\" \"}\n </span>\n ) : null}\n </button>\n ))}\n {noResults && (\n <div className=\"jkl-combobox__no-option\">\n {noMatchingOption}\n </div>\n )}\n </div>\n <div className=\"jkl-combobox__actions\">\n <IconButton\n id={buttonId}\n onFocus={handleFocus}\n onBlur={handleBlur}\n className=\"jkl-combobox__button\"\n data-testid=\"jkl-combobox__button\"\n aria-label=\"Åpne meny\"\n aria-expanded={showMenu}\n aria-controls={listId}\n onClick={() => setShowMenu((previous) => !previous)}\n onMouseDown={(e) => {\n e.preventDefault();\n inputRef.current?.focus();\n }}\n >\n <ArrowVerticalAnimated\n pointingDown={isPointingDown}\n />\n </IconButton>\n </div>\n </div>\n )}\n />\n );\n};\nCombobox.displayName = \"Combobox\";\n"],"names":["getComboboxValuePair","item","value","label","Combobox","id","placeholder","items","onChange","onFocus","onBlur","noMatchingOption","labelProps","helpLabel","errorLabel","width","density","name","className","invalid","description","hasTagHover","listId","useId","generateSuffix","labelId","buttonId","inputId","selectedValue","setSelectedValue","useState","showMenu","setShowMenu","searchValue","setSearchValue","noResults","setNoResults","marked","setMarked","searchRef","useRef","inputRef","focusInsideRef","useEffect","current","focus","prev","isSelected","option","some","removeOption","useCallback","filter","onTagRemove","e","newValue","type","target","selectedOptions","stopPropagation","length","onItemClick","find","i","onSearch","options","useMemo","filteredOptions","toLowerCase","indexOf","activeDescendant","setActiveDescendant","isPointingDown","handleEscape","key","window","addEventListener","removeEventListener","handleFocusPlacement","isOpen","handleFocus","dropdownRef","useAnimatedHeight","onFirstVisible","onTransitionEnd","useListNavigation","ref","componentRootElementRef","handleBlur","contains","relatedTarget","dispatchEvent","Event","bubbles","handleMouseOver","preventScroll","handleSearchOnKeyDown","preventDefault","listElement","querySelector","metaKey","ctrlKey","updatedSelectedValue","map","isMarked","handleOptionOnKeyDown","shiftKey","firstVisible","currentTarget","hasSelection","renderSelectedOption","jsx","Chip","tagLabel","variant","onClick","children","InputGroup","clsx","render","inputProps","jsxs","style","tabIndex","Tooltip","TooltipTrigger","TooltipContent","onKeyDown","role","autoComplete","onMouseOver","CheckIcon","IconButton","previous","onMouseDown","ArrowVerticalAnimated","pointingDown","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"Combobox.cjs","sources":["../../../../src/components/combobox/Combobox.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, {\n type FC,\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {useAnimatedHeight} from \"../../hooks/useAnimatedHeight/useAnimatedHeight.js\";\nimport {useId} from \"../../hooks/useId/useId.js\";\nimport {useListNavigation} from \"../../hooks/useListNavigation/useListNavigation.js\";\nimport type {ValuePair} from \"../../utilities/valuePair.js\";\nimport {Chip} from \"../chip/Chip.js\";\nimport {IconButton} from \"../icon-button/IconButton.js\";\nimport {CheckIcon} from \"../icon/icons/CheckIcon.js\";\nimport {ArrowVerticalAnimated} from \"../icon/icons/animated/ArrowVerticalAnimated.js\";\nimport {InputGroup} from \"../input-group/InputGroup.js\";\nimport {Tooltip} from \"../tooltip/Tooltip.js\";\nimport {TooltipContent} from \"../tooltip/TooltipContent.js\";\nimport {TooltipTrigger} from \"../tooltip/TooltipTrigger.js\";\nimport type {ComboboxProps, ComboboxValuePair} from \"./types.js\";\n\nexport function getComboboxValuePair(\n item: string | ComboboxValuePair,\n): ComboboxValuePair {\n return typeof item === \"string\" ? { value: item, label: item } : item;\n}\n\nexport const Combobox: FC<ComboboxProps> = ({\n id,\n placeholder,\n items,\n onChange,\n onFocus,\n onBlur,\n value,\n label,\n noMatchingOption,\n labelProps,\n helpLabel,\n errorLabel,\n width,\n density,\n name,\n className,\n invalid,\n description,\n hasTagHover,\n}) => {\n const listId = useId(id || \"jkl-combobox\", { generateSuffix: !id });\n const labelId = `${listId}_label`;\n const buttonId = `${listId}_button`;\n const inputId = `${listId}_search-input`;\n\n const [selectedValue, setSelectedValue] = useState<\n Array<ComboboxValuePair>\n >(value || []);\n const [showMenu, setShowMenu] = useState<boolean>(false);\n const [searchValue, setSearchValue] = useState<string>(\"\");\n const [noResults, setNoResults] = useState(false);\n const [marked, setMarked] = useState<boolean>(false);\n\n const searchRef = useRef<HTMLInputElement>(null);\n const inputRef = useRef<HTMLDivElement>(null);\n const focusInsideRef = useRef(false);\n\n useEffect(() => {\n setSearchValue(\"\");\n if (showMenu && searchRef.current) {\n searchRef.current.focus();\n }\n }, [showMenu]);\n\n useEffect(() => {\n setSelectedValue((prev) => value || prev);\n }, [value]);\n\n // Funksjon for å stile valgt element\n const isSelected = (option: ValuePair) => {\n if (!selectedValue) {\n return false;\n }\n\n return selectedValue.some((value) => value.value === option.value);\n };\n\n // Fjerne ett eller flere valg\n const removeOption = useCallback(\n (option: string) => {\n return selectedValue.filter((value) => value.value !== option);\n },\n [selectedValue],\n );\n\n const onTagRemove = useCallback(\n (\n e:\n | React.MouseEvent<HTMLButtonElement, globalThis.MouseEvent>\n | React.KeyboardEvent<HTMLInputElement>,\n option: string,\n ) => {\n const newValue = removeOption(option);\n setSelectedValue(newValue);\n onChange({\n type: \"change\",\n target: { name, value: option, selectedOptions: newValue },\n });\n e.stopPropagation();\n\n if (newValue.length === 0) {\n setMarked(false);\n }\n },\n [removeOption, onChange, name],\n );\n\n // Håndtere valgt verdi i listen\n const onItemClick = useCallback(\n (option: string) => {\n let newValue: Array<ValuePair>;\n\n if (selectedValue.some((value) => value.value === option)) {\n newValue = removeOption(option);\n } else {\n const item = items.find((i) => i.value === option);\n newValue = [...selectedValue, item as ValuePair];\n }\n searchRef.current?.focus();\n setSelectedValue(newValue);\n onChange({\n type: \"change\",\n target: { name, value: option, selectedOptions: newValue },\n });\n },\n [selectedValue, onChange, name, removeOption, items],\n );\n\n // Funksjon for søk\n const onSearch = (e: {\n target: { value: React.SetStateAction<string> };\n }) => {\n searchRef.current?.focus();\n setShowMenu(true);\n setSearchValue(e.target.value);\n };\n\n const options = useMemo(() => {\n if (!searchValue) {\n return items;\n }\n\n const filteredOptions = items.filter(\n (option) =>\n option.label.toLowerCase().indexOf(searchValue.toLowerCase()) >=\n 0,\n );\n\n setNoResults(filteredOptions.length === 0);\n\n return filteredOptions;\n }, [searchValue, items]);\n\n // Det første elementet i listen skal være aktivt fram til brukeren klikker på noe annet\n const [activeDescendant, setActiveDescendant] = useState<\n string | undefined\n >(options[0]?.value ? `${listId}-${options[0]?.value}` : undefined);\n\n // Håndtere arrow-state\n const isPointingDown = !showMenu;\n\n // Lukk meny med ESC\n useEffect(() => {\n const handleEscape = (e: globalThis.KeyboardEvent) => {\n if (e.key === \"Escape\" && showMenu) {\n setShowMenu(false);\n }\n };\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"keydown\", handleEscape);\n }\n return () => {\n if (typeof window !== \"undefined\" && showMenu) {\n window.removeEventListener(\"keydown\", handleEscape);\n }\n };\n }, [showMenu]);\n\n // Fokushåndtering\n const handleFocusPlacement = useCallback((isOpen: boolean) => {\n if (isOpen) {\n if (searchRef.current) {\n searchRef.current.focus();\n }\n } else {\n if (focusInsideRef.current && inputRef.current) {\n inputRef.current.focus();\n }\n }\n }, []);\n\n const handleFocus = useCallback(() => {\n if (!focusInsideRef.current) {\n if (onFocus) {\n onFocus({\n type: \"change\",\n target: {\n name,\n value: selectedValue?.[0].value || \"\",\n selectedOptions: selectedValue,\n },\n });\n }\n focusInsideRef.current = true;\n setShowMenu(true);\n }\n }, [onFocus, selectedValue, name]);\n\n const [dropdownRef] = useAnimatedHeight<HTMLDivElement>(showMenu, {\n onFirstVisible: handleFocusPlacement,\n onTransitionEnd: handleFocusPlacement,\n });\n\n useListNavigation({ ref: dropdownRef });\n\n const componentRootElementRef = useRef<HTMLDivElement>(null);\n\n const handleBlur = useCallback(\n (\n e: FocusEvent<\n HTMLDivElement | HTMLInputElement | HTMLButtonElement\n >,\n ) => {\n const componentRootElement = componentRootElementRef.current;\n const nextFocusIsInsideComponent = componentRootElement?.contains(\n e.relatedTarget as Node,\n );\n if (!nextFocusIsInsideComponent) {\n setSearchValue(\"\");\n\n if (onBlur) {\n onBlur({\n type: \"blur\",\n target: {\n name,\n value: selectedValue?.[0]?.value || \"\",\n selectedOptions: selectedValue,\n },\n });\n inputRef.current?.dispatchEvent(\n new Event(\"focusout\", { bubbles: true }),\n );\n }\n focusInsideRef.current = false;\n setShowMenu(false);\n }\n },\n [onBlur, name, selectedValue],\n );\n\n const handleMouseOver = useCallback((e: MouseEvent<HTMLButtonElement>) => {\n // Ved mouseOver på options flytter vi fokus til dem for å unngå \"dobbel fokus\"\n // der det ser ut som to forskjellige elementer er fokusert/hovered samtidig\n (e.target as HTMLButtonElement).focus({ preventScroll: true });\n }, []);\n\n // Tastaturnavigasjon\n const handleSearchOnKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n e.stopPropagation();\n const listElement = dropdownRef.current;\n if (listElement) {\n listElement\n .querySelector<HTMLButtonElement>('[role=\"option\"]')\n ?.focus();\n }\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n e.stopPropagation();\n setShowMenu(false);\n }\n\n if ((e.metaKey && e.key === \"a\") || (e.ctrlKey && e.key === \"a\")) {\n e.preventDefault();\n e.stopPropagation();\n const updatedSelectedValue = selectedValue.map((item) => ({\n ...item,\n isMarked: true,\n }));\n setMarked(true);\n setSelectedValue(updatedSelectedValue);\n } else if (e.key === \"Backspace\") {\n e.stopPropagation();\n setMarked(false);\n\n // Sjekk om selectedValue er markert\n const selectedValueIsMarked = selectedValue.some(\n (item) => item.isMarked,\n );\n\n if (selectedValueIsMarked) {\n const updatedSelectedValue = selectedValue.filter(\n (item) => !item.isMarked,\n );\n setSelectedValue(updatedSelectedValue);\n setSearchValue(\"\");\n } else if (selectedValue.length > 0 && searchValue === \"\") {\n // Hvis ingen items er markert, fjern siste valgte item\n onTagRemove(\n e,\n selectedValue[selectedValue.length - 1].value,\n );\n }\n }\n },\n [selectedValue, searchValue, dropdownRef, onTagRemove],\n );\n\n const handleOptionOnKeyDown = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"Tab\") {\n if (searchRef.current) {\n e.preventDefault();\n e.stopPropagation();\n\n if (e.shiftKey) {\n searchRef.current.focus();\n } else {\n setShowMenu(false);\n searchRef.current.focus();\n }\n }\n } else if (e.key === \"ArrowUp\") {\n if (dropdownRef.current && searchRef.current) {\n // Can't be based on index since the first item might be filtered out\n const firstVisible = dropdownRef.current.querySelector(\n '[role=\"option\"]:not([hidden])',\n );\n if (\n e.currentTarget.id === firstVisible?.id &&\n searchRef.current\n ) {\n searchRef.current.focus();\n }\n }\n }\n },\n [dropdownRef],\n );\n\n const hasSelection = selectedValue.length >= 1;\n\n const renderSelectedOption = useCallback(\n (option: ComboboxValuePair) => (\n <Chip\n key={option.value}\n data-testid=\"jkl-chip\"\n aria-label={`Fjern ${option.tagLabel}`}\n className={`jkl-combobox__selected-option ${\n marked && \"jkl-combobox__selected-option--marked\"\n }`}\n variant=\"input\"\n onClick={(e) => {\n if (searchRef.current) {\n searchRef.current.focus();\n }\n onTagRemove(e, option.value);\n }}\n onBlur={handleBlur}\n >\n {option.tagLabel ? option.tagLabel : option.label}\n </Chip>\n ),\n [handleBlur, onTagRemove, marked],\n );\n\n return (\n <InputGroup\n label={label}\n id={inputId}\n ref={componentRootElementRef}\n data-testid=\"jkl-combobox\"\n className={clsx(\"jkl-combobox\", className, {\n \"jkl-combobox--invalid\": !!errorLabel || invalid,\n \"jkl-combobox--menu-open\": showMenu,\n \"jkl-combobox--menu-closed\": !showMenu && hasSelection,\n })}\n labelProps={{\n id: labelId,\n ...labelProps,\n }}\n helpLabel={helpLabel}\n errorLabel={errorLabel}\n density={density}\n description={description}\n render={(inputProps) => (\n <div\n className={clsx(\"jkl-combobox__wrapper\", {\n \"jkl-combobox__wrapper--active-value\": hasSelection,\n })}\n style={{ width }}\n tabIndex={-1}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n <div\n className=\"jkl-combobox__chips\"\n data-testid=\"jkl-combobox__chips\"\n >\n {selectedValue\n .map(getComboboxValuePair)\n .map((option) => {\n return hasTagHover ? (\n <Tooltip key={option.value}>\n <TooltipTrigger>\n {renderSelectedOption(option)}\n </TooltipTrigger>\n <TooltipContent>\n {option.label}\n </TooltipContent>\n </Tooltip>\n ) : (\n renderSelectedOption(option)\n );\n })}\n <input\n {...inputProps}\n className=\"jkl-combobox__search-input\"\n onChange={onSearch}\n data-testid=\"jkl-combobox__search-input\"\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleSearchOnKeyDown}\n value={searchValue}\n ref={searchRef}\n aria-controls={listId}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-expanded={showMenu}\n placeholder={\n selectedValue.length > 0 ? \"\" : placeholder\n }\n autoComplete=\"off\"\n />\n </div>\n\n <div\n className=\"jkl-combobox__menu\"\n // biome-ignore lint/a11y/useSemanticElements: Dette er en reimplementering av en liste\n role=\"listbox\"\n ref={dropdownRef}\n id={listId}\n aria-labelledby={labelId}\n aria-multiselectable=\"true\"\n aria-activedescendant={activeDescendant}\n onFocus={handleFocus}\n onBlur={handleBlur}\n tabIndex={-1}\n >\n {options.map((option, i) => (\n <button\n key={`${listId}-${option.value}`}\n type=\"button\"\n id={`${listId}__${option.value}`}\n aria-selected={isSelected(option)}\n // biome-ignore lint/a11y/useSemanticElements: Dette er en reimplementering av en liste\n role=\"option\"\n value={option.value}\n onBlur={handleBlur}\n className={`jkl-combobox__option ${\n isSelected(option) &&\n \"jkl-combobox__option--selected\"\n }`}\n data-testid=\"jkl-combobox__option\"\n data-testautoid={`jkl-combobox__option-${i}`}\n onFocus={handleFocus}\n onKeyDown={handleOptionOnKeyDown}\n onClick={(e) => {\n setActiveDescendant(\n `${listId}__${option.value}`,\n ); // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#required_javascript_features\n e.stopPropagation();\n onItemClick(option.value);\n setSearchValue(\"\");\n }}\n onMouseOver={handleMouseOver}\n >\n {option.description ? (\n <span>\n {option.label}\n <span className=\"jkl-combobox__option-description\">\n {option.description}\n </span>\n </span>\n ) : (\n option.label\n )}\n {isSelected(option) ? (\n <span>\n <CheckIcon />{\" \"}\n </span>\n ) : null}\n </button>\n ))}\n {noResults && (\n <div className=\"jkl-combobox__no-option\">\n {noMatchingOption}\n </div>\n )}\n </div>\n <div className=\"jkl-combobox__actions\">\n <IconButton\n id={buttonId}\n onFocus={handleFocus}\n onBlur={handleBlur}\n className=\"jkl-combobox__button\"\n data-testid=\"jkl-combobox__button\"\n aria-label=\"Åpne meny\"\n aria-expanded={showMenu}\n aria-controls={listId}\n onClick={() => setShowMenu((previous) => !previous)}\n onMouseDown={(e) => {\n e.preventDefault();\n inputRef.current?.focus();\n }}\n >\n <ArrowVerticalAnimated\n pointingDown={isPointingDown}\n />\n </IconButton>\n </div>\n </div>\n )}\n />\n );\n};\nCombobox.displayName = \"Combobox\";\n"],"names":["getComboboxValuePair","item","value","label","Combobox","id","placeholder","items","onChange","onFocus","onBlur","noMatchingOption","labelProps","helpLabel","errorLabel","width","density","name","className","invalid","description","hasTagHover","listId","useId","generateSuffix","labelId","buttonId","inputId","selectedValue","setSelectedValue","useState","showMenu","setShowMenu","searchValue","setSearchValue","noResults","setNoResults","marked","setMarked","searchRef","useRef","inputRef","focusInsideRef","useEffect","current","focus","prev","isSelected","option","some","removeOption","useCallback","filter","onTagRemove","e","newValue","type","target","selectedOptions","stopPropagation","length","onItemClick","find","i","onSearch","options","useMemo","filteredOptions","toLowerCase","indexOf","activeDescendant","setActiveDescendant","isPointingDown","handleEscape","key","window","addEventListener","removeEventListener","handleFocusPlacement","isOpen","handleFocus","dropdownRef","useAnimatedHeight","onFirstVisible","onTransitionEnd","useListNavigation","ref","componentRootElementRef","handleBlur","contains","relatedTarget","dispatchEvent","Event","bubbles","handleMouseOver","preventScroll","handleSearchOnKeyDown","preventDefault","listElement","querySelector","metaKey","ctrlKey","updatedSelectedValue","map","isMarked","handleOptionOnKeyDown","shiftKey","firstVisible","currentTarget","hasSelection","renderSelectedOption","jsx","Chip","tagLabel","variant","onClick","children","InputGroup","clsx","render","inputProps","jsxs","style","tabIndex","Tooltip","TooltipTrigger","TooltipContent","onKeyDown","role","autoComplete","onMouseOver","CheckIcon","IconButton","previous","onMouseDown","ArrowVerticalAnimated","pointingDown","displayName"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),n=require("react-dom"),o=require("../button/Button.cjs"),r=require("../flex/Flex.cjs"),i=require("../link/Link.cjs"),s=require("../modal/Modal.cjs"),a=require("../modal/useModal.cjs"),l=require("./CookieConsentContext.cjs"),c=require("./cookieConsentUtils.cjs");exports.CookieConsent=({blocking:d,onAccept:u,aboutPage:j="https://www.fremtind.no/informasjonskapsler",...k})=>{const{currentConsent:m,cookieName:f,cookieDomain:h,cookiePath:p,requirement:g,isOpen:b,setIsOpen:x,updateCurrentConsents:v}=l.useInternalState(),[C,y]=a.useModal({id:`jkl-cookie-modal-${t.useId()}`,role:d?"alertdialog":"dialog",title:"Informasjonskapsler"});if(t.useEffect((()=>{b?C?.show():C?.hide()}),[C,b]),t.useEffect((()=>{const e=()=>x(!1);return C?.on("hide",e),()=>{C?.off("hide",e)}}),[C,x]),typeof document>"u")return null;if(typeof navigator<"u"&&!navigator.cookieEnabled)return u&&u({functional:"denied",statistics:"denied"}),null;const q=(e=c.convertBooleanConsentObjectToConsentObject({functional:!0,statistics:!0},g))=>{const t=Object.fromEntries(Object.entries(e).filter((([,e])=>typeof e<"u"))),n={...m,...t};c.setConsentCookie({consent:n,name:f,domain:h,path:p}),v(),u?.(n),C?.hide()};return n.createPortal(e.jsxs(s.ModalContainer,{...y.container,...k,"data-cookie-consent-open":b,children:[e.jsx(s.ModalOverlay,{...y.overlay}),e.jsx(s.Modal,{component:"form",...y.modal,onSubmit:e=>{e.preventDefault();const t=new FormData(e.currentTarget),n=c.convertBooleanConsentObjectToConsentObject({functional:"true"===t.get("functional"),statistics:"true"===t.get("statistics")},g);q(n)},children:e.jsxs("form",{children:[e.jsx(s.ModalHeader,{children:e.jsx(s.ModalTitle,{...y.title,children:"Får vi bruke valgfrie informasjonskapsler?"})}),e.jsx(s.ModalBody,{children:e.jsxs(r.Flex,{direction:"column",gap:"m",children:[e.jsx("p",{children:"Vi ønsker å samle anonym statistikk for å forstå hvordan nettsidene våre brukes. Det hjelper oss til å gjøre innhold og løsninger bedre og mer brukervennlige."}),e.jsxs("p",{children:[e.jsx(i.Link,{href:j,target:"_blank",children:"Les mer om hvilke informasjonskapsler vi lagrer her"}),"."]})]})}),e.jsxs(s.ModalActions,{children:[e.jsx(o.Button,{variant:"secondary","data-testid":"jkl-cookie-consent-godta-alle",type:"button",onClick:()=>q(),children:"Ja, det er greit"}),e.jsx(o.Button,{variant:"secondary","data-testid":"jkl-cookie-consent-godta",type:"submit",children:"Nei takk"})]})]})})]}),document.body)};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),n=require("react-dom"),o=require("../button/Button.cjs"),r=require("../flex/Flex.cjs"),i=require("../link/Link.cjs"),s=require("../modal/Modal.cjs"),a=require("../modal/useModal.cjs"),l=require("./CookieConsentContext.cjs"),c=require("./cookieConsentUtils.cjs");exports.CookieConsent=({blocking:d,onAccept:u,aboutPage:j="https://www.fremtind.no/informasjonskapsler",...k})=>{const{currentConsent:m,cookieName:f,cookieDomain:h,cookiePath:p,requirement:g,isOpen:b,setIsOpen:x,updateCurrentConsents:v}=l.useInternalState(),[C,y]=a.useModal({id:`jkl-cookie-modal-${t.useId()}`,role:d?"alertdialog":"dialog",title:"Informasjonskapsler"});if(t.useEffect(()=>{b?C?.show():C?.hide()},[C,b]),t.useEffect(()=>{const e=()=>x(!1);return C?.on("hide",e),()=>{C?.off("hide",e)}},[C,x]),typeof document>"u")return null;if(typeof navigator<"u"&&!navigator.cookieEnabled)return u&&u({functional:"denied",statistics:"denied"}),null;const q=(e=c.convertBooleanConsentObjectToConsentObject({functional:!0,statistics:!0},g))=>{const t=Object.fromEntries(Object.entries(e).filter(([,e])=>typeof e<"u")),n={...m,...t};c.setConsentCookie({consent:n,name:f,domain:h,path:p}),v(),u?.(n),C?.hide()};return n.createPortal(e.jsxs(s.ModalContainer,{...y.container,...k,"data-cookie-consent-open":b,children:[e.jsx(s.ModalOverlay,{...y.overlay}),e.jsx(s.Modal,{component:"form",...y.modal,onSubmit:e=>{e.preventDefault();const t=new FormData(e.currentTarget),n=c.convertBooleanConsentObjectToConsentObject({functional:"true"===t.get("functional"),statistics:"true"===t.get("statistics")},g);q(n)},children:e.jsxs("form",{children:[e.jsx(s.ModalHeader,{children:e.jsx(s.ModalTitle,{...y.title,children:"Får vi bruke valgfrie informasjonskapsler?"})}),e.jsx(s.ModalBody,{children:e.jsxs(r.Flex,{direction:"column",gap:"m",children:[e.jsx("p",{children:"Vi ønsker å samle anonym statistikk for å forstå hvordan nettsidene våre brukes. Det hjelper oss til å gjøre innhold og løsninger bedre og mer brukervennlige."}),e.jsxs("p",{children:[e.jsx(i.Link,{href:j,target:"_blank",children:"Les mer om hvilke informasjonskapsler vi lagrer her"}),"."]})]})}),e.jsxs(s.ModalActions,{children:[e.jsx(o.Button,{variant:"secondary","data-testid":"jkl-cookie-consent-godta-alle",type:"button",onClick:()=>q(),children:"Ja, det er greit"}),e.jsx(o.Button,{variant:"secondary","data-testid":"jkl-cookie-consent-godta",type:"submit",children:"Nei takk"})]})]})})]}),document.body)};
2
2
  //# sourceMappingURL=CookieConsent.cjs.map