@fremtind/jokul 3.1.0 → 3.3.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.
- package/README.md +2 -0
- package/build/build-stats.html +1 -1
- package/build/cjs/components/autosuggest/Autosuggest.cjs +1 -1
- package/build/cjs/components/autosuggest/Autosuggest.cjs.map +1 -1
- package/build/cjs/components/autosuggest/BaseAutosuggest.cjs +1 -24
- package/build/cjs/components/autosuggest/BaseAutosuggest.cjs.map +1 -1
- package/build/cjs/components/autosuggest/ControllerButton.cjs.map +1 -1
- package/build/cjs/components/autosuggest/Menu.cjs +1 -1
- package/build/cjs/components/autosuggest/Menu.cjs.map +1 -1
- package/build/cjs/components/autosuggest/utils.cjs.map +1 -1
- package/build/cjs/components/breadcrumb/Breadcrumb.cjs +1 -1
- package/build/cjs/components/breadcrumb/Breadcrumb.cjs.map +1 -1
- package/build/cjs/components/breadcrumb/BreadcrumbItem.cjs +1 -1
- package/build/cjs/components/breadcrumb/BreadcrumbItem.cjs.map +1 -1
- package/build/cjs/components/breadcrumb/documentation/BreadcrumbDocs.cjs.map +1 -1
- package/build/cjs/components/button/Button.cjs +1 -1
- package/build/cjs/components/button/Button.cjs.map +1 -1
- package/build/cjs/components/button/documentation/AnchorDocs.cjs.map +1 -1
- package/build/cjs/components/button/documentation/ButtonDocs.cjs +1 -1
- package/build/cjs/components/button/documentation/ButtonDocs.cjs.map +1 -1
- package/build/cjs/components/card/Card.cjs +1 -1
- package/build/cjs/components/card/Card.cjs.map +1 -1
- package/build/cjs/components/card/CardImage.cjs +1 -1
- package/build/cjs/components/card/CardImage.cjs.map +1 -1
- package/build/cjs/components/checkbox/Checkbox.cjs +1 -1
- package/build/cjs/components/checkbox/Checkbox.cjs.map +1 -1
- package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs +1 -1
- package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs.map +1 -1
- package/build/cjs/components/checkbox-panel/types.d.cts +12 -0
- package/build/cjs/components/chip/Chip.cjs +1 -1
- package/build/cjs/components/chip/Chip.cjs.map +1 -1
- package/build/cjs/components/combobox/Combobox.cjs +1 -1
- package/build/cjs/components/combobox/Combobox.cjs.map +1 -1
- package/build/cjs/components/cookie-consent/CookieConsent.cjs +1 -1
- package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
- package/build/cjs/components/cookie-consent/CookieConsentContext.cjs +1 -1
- package/build/cjs/components/cookie-consent/CookieConsentContext.cjs.map +1 -1
- package/build/cjs/components/cookie-consent/cookieConsentUtils.cjs +1 -1
- package/build/cjs/components/cookie-consent/cookieConsentUtils.cjs.map +1 -1
- package/build/cjs/components/countdown/Countdown.cjs +1 -1
- package/build/cjs/components/countdown/Countdown.cjs.map +1 -1
- package/build/cjs/components/datepicker/DatePicker.cjs +1 -1
- package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
- package/build/cjs/components/datepicker/internal/Calendar.cjs +1 -1
- package/build/cjs/components/datepicker/internal/Calendar.cjs.map +1 -1
- package/build/cjs/components/datepicker/internal/calendarReducer.cjs.map +1 -1
- package/build/cjs/components/datepicker/internal/useCalendar.cjs +1 -1
- package/build/cjs/components/datepicker/internal/useCalendar.cjs.map +1 -1
- package/build/cjs/components/datepicker/internal/utils.cjs +1 -1
- package/build/cjs/components/datepicker/internal/utils.cjs.map +1 -1
- package/build/cjs/components/datepicker/utils.cjs.map +1 -1
- package/build/cjs/components/datepicker/validation.cjs.map +1 -1
- package/build/cjs/components/description-list/DescriptionList.cjs.map +1 -1
- package/build/cjs/components/description-list/index.cjs +1 -1
- package/build/cjs/components/description-list/index.d.cts +3 -0
- package/build/cjs/components/expander/ExpandablePanel.cjs +1 -1
- package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
- package/build/cjs/components/expander/ExpandablePanelContent.cjs +1 -1
- package/build/cjs/components/expander/ExpandablePanelContent.cjs.map +1 -1
- package/build/cjs/components/expander/Expander.cjs +1 -1
- package/build/cjs/components/expander/Expander.cjs.map +1 -1
- package/build/cjs/components/feedback/Feedback.cjs.map +1 -1
- package/build/cjs/components/feedback/feedbackContext.cjs.map +1 -1
- package/build/cjs/components/feedback/followup/Followup.cjs +1 -1
- package/build/cjs/components/feedback/followup/Followup.cjs.map +1 -1
- package/build/cjs/components/feedback/followup/followupContext.cjs.map +1 -1
- package/build/cjs/components/feedback/followup/useFollowup.cjs +1 -1
- package/build/cjs/components/feedback/followup/useFollowup.cjs.map +1 -1
- package/build/cjs/components/feedback/main-question/MainQuestion.cjs +1 -1
- package/build/cjs/components/feedback/main-question/MainQuestion.cjs.map +1 -1
- package/build/cjs/components/feedback/main-question/mainQuestionContext.cjs.map +1 -1
- package/build/cjs/components/feedback/main-question/useMainQuestion.cjs +1 -1
- package/build/cjs/components/feedback/main-question/useMainQuestion.cjs.map +1 -1
- package/build/cjs/components/feedback/presets.cjs.map +1 -1
- package/build/cjs/components/feedback/questions/AddonQuestion.cjs +1 -1
- package/build/cjs/components/feedback/questions/AddonQuestion.cjs.map +1 -1
- package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs +1 -1
- package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs.map +1 -1
- package/build/cjs/components/feedback/questions/ContactQuestion.cjs +1 -1
- package/build/cjs/components/feedback/questions/ContactQuestion.cjs.map +1 -1
- package/build/cjs/components/feedback/questions/RadioQuestion.cjs +1 -1
- package/build/cjs/components/feedback/questions/RadioQuestion.cjs.map +1 -1
- package/build/cjs/components/feedback/questions/SmileyQuestion.cjs +1 -1
- package/build/cjs/components/feedback/questions/SmileyQuestion.cjs.map +1 -1
- package/build/cjs/components/feedback/questions/TextQuestion.cjs +1 -1
- package/build/cjs/components/feedback/questions/TextQuestion.cjs.map +1 -1
- package/build/cjs/components/feedback/questions/smileyUtils.cjs.map +1 -1
- package/build/cjs/components/feedback/utils.cjs +1 -1
- package/build/cjs/components/feedback/utils.cjs.map +1 -1
- package/build/cjs/components/file/File.cjs.map +1 -1
- package/build/cjs/components/file-input/FileInput.cjs +1 -1
- package/build/cjs/components/file-input/FileInput.cjs.map +1 -1
- package/build/cjs/components/file-input/internal/Dropzone.cjs +1 -1
- package/build/cjs/components/file-input/internal/Dropzone.cjs.map +1 -1
- package/build/cjs/components/file-input/internal/Input.cjs +1 -1
- package/build/cjs/components/file-input/internal/Input.cjs.map +1 -1
- package/build/cjs/components/file-input/internal/MaxSize.cjs.map +1 -1
- package/build/cjs/components/file-input/internal/fileInputContext.cjs.map +1 -1
- package/build/cjs/components/file-input/internal/validateFileInputFiles.cjs +1 -1
- package/build/cjs/components/file-input/internal/validateFileInputFiles.cjs.map +1 -1
- package/build/cjs/components/file-input/utils.cjs +1 -1
- package/build/cjs/components/file-input/utils.cjs.map +1 -1
- package/build/cjs/components/flex/Flex.cjs +1 -1
- package/build/cjs/components/flex/Flex.cjs.map +1 -1
- package/build/cjs/components/help/Help.cjs.map +1 -1
- package/build/cjs/components/icon/Icon.cjs +1 -1
- package/build/cjs/components/icon/Icon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ArrowDownIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ArrowLeftIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ArrowNorthEastIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ArrowRightIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ArrowUpIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/CalendarIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/CheckIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ChevronDownIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ChevronLeftIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ChevronRightIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ChevronUpIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/CloseIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/CopyIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/DotsIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/DragIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ErrorIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/GreenCheckIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/HamburgerIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/InfoIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/LinkIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/MinusIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/OpenInNewIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/PenIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/PlusIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/QuestionIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/RedCrossIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/SearchIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/SuccessIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ThumbDownIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/ThumbUpIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/TrashCanIcon.cjs.map +1 -1
- package/build/cjs/components/icon/icons/WarningIcon.cjs.map +1 -1
- package/build/cjs/components/icon-button/IconButton.cjs +1 -1
- package/build/cjs/components/icon-button/IconButton.cjs.map +1 -1
- package/build/cjs/components/image/Image.cjs +1 -1
- package/build/cjs/components/image/Image.cjs.map +1 -1
- package/build/cjs/components/image/useImageLoadingStatus.cjs +1 -1
- package/build/cjs/components/image/useImageLoadingStatus.cjs.map +1 -1
- package/build/cjs/components/input-group/FieldGroup.cjs.map +1 -1
- package/build/cjs/components/input-group/InputGroup.cjs +1 -1
- package/build/cjs/components/input-group/InputGroup.cjs.map +1 -1
- package/build/cjs/components/input-group/Label.cjs.map +1 -1
- package/build/cjs/components/input-group/SupportLabel.cjs.map +1 -1
- package/build/cjs/components/link/Link.cjs +1 -1
- package/build/cjs/components/link/Link.cjs.map +1 -1
- package/build/cjs/components/link-list/LinkList.cjs +1 -1
- package/build/cjs/components/link-list/LinkList.cjs.map +1 -1
- package/build/cjs/components/link-list/LinkListItem.cjs +2 -0
- package/build/cjs/components/link-list/LinkListItem.cjs.map +1 -0
- package/build/cjs/components/link-list/LinkListItem.d.cts +3 -0
- package/build/cjs/components/link-list/index.cjs +1 -1
- package/build/cjs/components/link-list/index.d.cts +2 -0
- package/build/cjs/components/list/List.cjs.map +1 -1
- package/build/cjs/components/list/ListItem.cjs.map +1 -1
- package/build/cjs/components/loader/Loader.cjs.map +1 -1
- package/build/cjs/components/loader/skeletons/SkeletonAnimation.cjs.map +1 -1
- package/build/cjs/components/loader/skeletons/SkeletonCheckboxGroup.cjs +1 -1
- package/build/cjs/components/loader/skeletons/SkeletonCheckboxGroup.cjs.map +1 -1
- package/build/cjs/components/loader/skeletons/SkeletonInput.cjs.map +1 -1
- package/build/cjs/components/loader/skeletons/SkeletonLabel.cjs.map +1 -1
- package/build/cjs/components/loader/skeletons/SkeletonRadioButtonGroup.cjs +1 -1
- package/build/cjs/components/loader/skeletons/SkeletonRadioButtonGroup.cjs.map +1 -1
- package/build/cjs/components/loader/skeletons/SkeletonTextArea.cjs.map +1 -1
- package/build/cjs/components/loader/useDelayedRender.cjs +1 -1
- package/build/cjs/components/loader/useDelayedRender.cjs.map +1 -1
- package/build/cjs/components/logo/Logo.cjs.map +1 -1
- package/build/cjs/components/logo/LogoStamp.cjs.map +1 -1
- package/build/cjs/components/logo/useTextSpinner.cjs +1 -1
- package/build/cjs/components/logo/useTextSpinner.cjs.map +1 -1
- package/build/cjs/components/menu/Menu.cjs +1 -1
- package/build/cjs/components/menu/Menu.cjs.map +1 -1
- package/build/cjs/components/menu/MenuDivider.cjs.map +1 -1
- package/build/cjs/components/menu/MenuItem.cjs +1 -1
- package/build/cjs/components/menu/MenuItem.cjs.map +1 -1
- package/build/cjs/components/menu/MenuItemCheckbox.cjs +1 -1
- package/build/cjs/components/menu/MenuItemCheckbox.cjs.map +1 -1
- package/build/cjs/components/menu/useMenuWideEvents.cjs +1 -1
- package/build/cjs/components/menu/useMenuWideEvents.cjs.map +1 -1
- package/build/cjs/components/message/DismissButton.cjs +1 -1
- package/build/cjs/components/message/DismissButton.cjs.map +1 -1
- package/build/cjs/components/message/FormErrorMessage.cjs +1 -1
- package/build/cjs/components/message/FormErrorMessage.cjs.map +1 -1
- package/build/cjs/components/message/Message.cjs +1 -1
- package/build/cjs/components/message/Message.cjs.map +1 -1
- package/build/cjs/components/modal/Modal.cjs +1 -1
- package/build/cjs/components/modal/Modal.cjs.map +1 -1
- package/build/cjs/components/modal/useModal.cjs.map +1 -1
- package/build/cjs/components/nav-link/NavLink.cjs +1 -1
- package/build/cjs/components/nav-link/NavLink.cjs.map +1 -1
- package/build/cjs/components/nav-link/index.cjs +1 -1
- package/build/cjs/components/nav-link/index.d.cts +2 -0
- package/build/cjs/components/pagination/PageButton.cjs.map +1 -1
- package/build/cjs/components/pagination/Pagination.cjs +1 -1
- package/build/cjs/components/pagination/Pagination.cjs.map +1 -1
- package/build/cjs/components/popover/Popover.cjs +1 -1
- package/build/cjs/components/popover/Popover.cjs.map +1 -1
- package/build/cjs/components/progress-bar/ProgressBar.cjs.map +1 -1
- package/build/cjs/components/radio-button/BaseRadioButton.cjs +1 -1
- package/build/cjs/components/radio-button/BaseRadioButton.cjs.map +1 -1
- package/build/cjs/components/radio-button/RadioButton.cjs +1 -1
- package/build/cjs/components/radio-button/RadioButton.cjs.map +1 -1
- package/build/cjs/components/radio-button/RadioButtonGroup.cjs.map +1 -1
- package/build/cjs/components/radio-panel/RadioPanel.cjs +1 -1
- package/build/cjs/components/radio-panel/RadioPanel.cjs.map +1 -1
- package/build/cjs/components/radio-panel/RadioPanelGroup.cjs.map +1 -1
- package/build/cjs/components/radio-panel/radioPanelContext.cjs.map +1 -1
- package/build/cjs/components/radio-panel/types.d.cts +12 -0
- package/build/cjs/components/segmented-control/SegmentedControlButton.cjs.map +1 -1
- package/build/cjs/components/select/NativeSelect.cjs +1 -1
- package/build/cjs/components/select/NativeSelect.cjs.map +1 -1
- package/build/cjs/components/select/Select.cjs +1 -1
- package/build/cjs/components/select/Select.cjs.map +1 -1
- package/build/cjs/components/select/select-utils.cjs.map +1 -1
- package/build/cjs/components/summary-table/SummaryTable.cjs +1 -1
- package/build/cjs/components/summary-table/SummaryTable.cjs.map +1 -1
- package/build/cjs/components/summary-table/SummaryTableRow.cjs.map +1 -1
- package/build/cjs/components/summary-table/mocks.cjs.map +1 -1
- package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
- package/build/cjs/components/system-message/common/DismissButton.cjs +1 -1
- package/build/cjs/components/system-message/common/DismissButton.cjs.map +1 -1
- package/build/cjs/components/system-message/common/MessageIcon.cjs.map +1 -1
- package/build/cjs/components/table/DataTable.cjs +1 -1
- package/build/cjs/components/table/DataTable.cjs.map +1 -1
- package/build/cjs/components/table/ExpandableTableRow.cjs +1 -1
- package/build/cjs/components/table/ExpandableTableRow.cjs.map +1 -1
- package/build/cjs/components/table/ExpandableTableRowController.cjs +1 -1
- package/build/cjs/components/table/ExpandableTableRowController.cjs.map +1 -1
- package/build/cjs/components/table/Table.cjs +1 -1
- package/build/cjs/components/table/Table.cjs.map +1 -1
- package/build/cjs/components/table/TableBody.cjs +1 -1
- package/build/cjs/components/table/TableBody.cjs.map +1 -1
- package/build/cjs/components/table/TableCaption.cjs +1 -1
- package/build/cjs/components/table/TableCaption.cjs.map +1 -1
- package/build/cjs/components/table/TableCell.cjs +1 -1
- package/build/cjs/components/table/TableCell.cjs.map +1 -1
- package/build/cjs/components/table/TableColumn.cjs +1 -1
- package/build/cjs/components/table/TableColumn.cjs.map +1 -1
- package/build/cjs/components/table/TableColumnGroup.cjs +1 -1
- package/build/cjs/components/table/TableColumnGroup.cjs.map +1 -1
- package/build/cjs/components/table/TableFooter.cjs +1 -1
- package/build/cjs/components/table/TableFooter.cjs.map +1 -1
- package/build/cjs/components/table/TableHead.cjs +1 -1
- package/build/cjs/components/table/TableHead.cjs.map +1 -1
- package/build/cjs/components/table/TableHeader.cjs +1 -1
- package/build/cjs/components/table/TableHeader.cjs.map +1 -1
- package/build/cjs/components/table/TablePagination.cjs +1 -1
- package/build/cjs/components/table/TablePagination.cjs.map +1 -1
- package/build/cjs/components/table/TableRow.cjs +1 -1
- package/build/cjs/components/table/TableRow.cjs.map +1 -1
- package/build/cjs/components/table/tableSectionContext.cjs.map +1 -1
- package/build/cjs/components/table/utils.cjs.map +1 -1
- package/build/cjs/components/table-of-contents/index.cjs +2 -0
- package/build/cjs/components/table-of-contents/index.cjs.map +1 -0
- package/build/cjs/components/table-of-contents/index.d.cts +2 -0
- package/build/cjs/components/tabs/NavTab.cjs +1 -1
- package/build/cjs/components/tabs/NavTab.cjs.map +1 -1
- package/build/cjs/components/tabs/NavTabs.cjs +1 -1
- package/build/cjs/components/tabs/NavTabs.cjs.map +1 -1
- package/build/cjs/components/tabs/Tab.cjs +1 -1
- package/build/cjs/components/tabs/Tab.cjs.map +1 -1
- package/build/cjs/components/tabs/TabList.cjs +1 -1
- package/build/cjs/components/tabs/TabList.cjs.map +1 -1
- package/build/cjs/components/tabs/TabPanel.cjs.map +1 -1
- package/build/cjs/components/tabs/Tabs.cjs +1 -1
- package/build/cjs/components/tabs/Tabs.cjs.map +1 -1
- package/build/cjs/components/tabs/tabsContext.cjs.map +1 -1
- package/build/cjs/components/tag/Tag.cjs.map +1 -1
- package/build/cjs/components/text-area/BaseTextArea.cjs +1 -1
- package/build/cjs/components/text-area/BaseTextArea.cjs.map +1 -1
- package/build/cjs/components/text-area/TextArea.cjs +1 -1
- package/build/cjs/components/text-area/TextArea.cjs.map +1 -1
- package/build/cjs/components/text-input/BaseTextInput.cjs +1 -1
- package/build/cjs/components/text-input/BaseTextInput.cjs.map +1 -1
- package/build/cjs/components/text-input/TextInput.cjs +1 -1
- package/build/cjs/components/text-input/TextInput.cjs.map +1 -1
- package/build/cjs/components/toast/Toast.cjs +1 -1
- package/build/cjs/components/toast/Toast.cjs.map +1 -1
- package/build/cjs/components/toast/ToastRegion.cjs +1 -1
- package/build/cjs/components/toast/ToastRegion.cjs.map +1 -1
- package/build/cjs/components/toast/toastContext.cjs.map +1 -1
- package/build/cjs/components/toggle-switch/ToggleSlider.cjs +1 -1
- package/build/cjs/components/toggle-switch/ToggleSlider.cjs.map +1 -1
- package/build/cjs/components/toggle-switch/ToggleSwitch.cjs +1 -1
- package/build/cjs/components/toggle-switch/ToggleSwitch.cjs.map +1 -1
- package/build/cjs/components/toggle-switch/usePillStyles.cjs +1 -1
- package/build/cjs/components/toggle-switch/usePillStyles.cjs.map +1 -1
- package/build/cjs/components/tooltip/PopupTip.cjs.map +1 -1
- package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
- package/build/cjs/components/tooltip/TooltipContent.cjs +1 -1
- package/build/cjs/components/tooltip/TooltipContent.cjs.map +1 -1
- package/build/cjs/components/tooltip/TooltipTrigger.cjs +1 -1
- package/build/cjs/components/tooltip/TooltipTrigger.cjs.map +1 -1
- package/build/cjs/components-beta/description-list/DescriptionList.cjs +2 -0
- package/build/cjs/components-beta/description-list/DescriptionList.cjs.map +1 -0
- package/build/cjs/components-beta/description-list/DescriptionList.d.cts +6 -0
- package/build/cjs/components-beta/description-list/DescriptionListItem.cjs +2 -0
- package/build/cjs/components-beta/description-list/DescriptionListItem.cjs.map +1 -0
- package/build/cjs/components-beta/description-list/DescriptionListItem.d.cts +3 -0
- package/build/cjs/components-beta/description-list/index.cjs +2 -0
- package/build/cjs/components-beta/description-list/index.cjs.map +1 -0
- package/build/cjs/components-beta/description-list/index.d.cts +3 -0
- package/build/cjs/components-beta/description-list/types.cjs +2 -0
- package/build/cjs/components-beta/description-list/types.cjs.map +1 -0
- package/build/cjs/components-beta/description-list/types.d.cts +18 -0
- package/build/cjs/components-beta/link-list/LinkList.cjs +2 -0
- package/build/cjs/components-beta/link-list/LinkList.cjs.map +1 -0
- package/build/cjs/components-beta/link-list/LinkList.d.cts +6 -0
- package/build/cjs/components-beta/link-list/LinkListLink.cjs +2 -0
- package/build/cjs/components-beta/link-list/LinkListLink.cjs.map +1 -0
- package/build/cjs/components-beta/link-list/LinkListLink.d.cts +3 -0
- package/build/cjs/components-beta/link-list/index.cjs +2 -0
- package/build/cjs/components-beta/link-list/index.cjs.map +1 -0
- package/build/cjs/components-beta/link-list/index.d.cts +3 -0
- package/build/cjs/components-beta/link-list/types.cjs +2 -0
- package/build/cjs/components-beta/link-list/types.cjs.map +1 -0
- package/build/cjs/components-beta/link-list/types.d.cts +7 -0
- package/build/cjs/components-beta/nav-link/NavLink.cjs +2 -0
- package/build/cjs/components-beta/nav-link/NavLink.cjs.map +1 -0
- package/build/cjs/components-beta/nav-link/NavLink.d.cts +5 -0
- package/build/cjs/components-beta/nav-link/index.cjs +2 -0
- package/build/cjs/components-beta/nav-link/index.cjs.map +1 -0
- package/build/cjs/components-beta/nav-link/index.d.cts +1 -0
- package/build/cjs/components-beta/nav-link/types.cjs +2 -0
- package/build/cjs/components-beta/nav-link/types.cjs.map +1 -0
- package/build/cjs/components-beta/nav-link/types.d.cts +6 -0
- package/build/cjs/components-beta/search/Search.cjs +2 -0
- package/build/cjs/components-beta/search/Search.cjs.map +1 -0
- package/build/cjs/components-beta/search/Search.d.cts +6 -0
- package/build/cjs/components-beta/search/SearchButton.cjs +2 -0
- package/build/cjs/components-beta/search/SearchButton.cjs.map +1 -0
- package/build/cjs/components-beta/search/SearchButton.d.cts +2 -0
- package/build/cjs/components-beta/search/index.cjs +2 -0
- package/build/cjs/components-beta/search/index.cjs.map +1 -0
- package/build/cjs/components-beta/search/index.d.cts +2 -0
- package/build/cjs/components-beta/search/types.cjs +2 -0
- package/build/cjs/components-beta/search/types.cjs.map +1 -0
- package/build/cjs/components-beta/search/types.d.cts +21 -0
- package/build/cjs/components-beta/select/Select.cjs +1 -1
- package/build/cjs/components-beta/select/Select.cjs.map +1 -1
- package/build/cjs/components-beta/table-of-contents/TableOfContents.cjs +2 -0
- package/build/cjs/components-beta/table-of-contents/TableOfContents.cjs.map +1 -0
- package/build/cjs/components-beta/table-of-contents/TableOfContents.d.cts +6 -0
- package/build/cjs/components-beta/table-of-contents/TableOfContentsLink.cjs +2 -0
- package/build/cjs/components-beta/table-of-contents/TableOfContentsLink.cjs.map +1 -0
- package/build/cjs/components-beta/table-of-contents/TableOfContentsLink.d.cts +3 -0
- package/build/cjs/components-beta/table-of-contents/index.cjs +2 -0
- package/build/cjs/components-beta/table-of-contents/index.cjs.map +1 -0
- package/build/cjs/components-beta/table-of-contents/index.d.cts +3 -0
- package/build/cjs/components-beta/table-of-contents/types.cjs +2 -0
- package/build/cjs/components-beta/table-of-contents/types.cjs.map +1 -0
- package/build/cjs/components-beta/table-of-contents/types.d.cts +6 -0
- package/build/cjs/core/tokens/style-dictionary/config.cjs +1 -1
- package/build/cjs/core/tokens/style-dictionary/config.cjs.map +1 -1
- package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.cjs +1 -1
- package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.cjs.map +1 -1
- package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.cjs +1 -1
- package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.cjs.map +1 -1
- package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.cjs +1 -1
- package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.cjs.map +1 -1
- package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.cjs +1 -1
- package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.cjs.map +1 -1
- package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.cjs +1 -1
- package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.cjs.map +1 -1
- package/build/cjs/hooks/mediaQueryUtils.cjs.map +1 -1
- package/build/cjs/hooks/stories/content.cjs.map +1 -1
- package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.cjs +1 -1
- package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.cjs.map +1 -1
- package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs +1 -1
- package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs.map +1 -1
- package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs +1 -1
- package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs.map +1 -1
- package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs +1 -1
- package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs.map +1 -1
- package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.cjs +1 -1
- package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.cjs.map +1 -1
- package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs +1 -1
- package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs.map +1 -1
- package/build/cjs/hooks/useClickOutside/useClickOutside.cjs +1 -1
- package/build/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
- package/build/cjs/hooks/useElementDimensions/useElementDimensions.cjs +1 -1
- package/build/cjs/hooks/useElementDimensions/useElementDimensions.cjs.map +1 -1
- package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs +1 -1
- package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs.map +1 -1
- package/build/cjs/hooks/useId/useId.cjs.map +1 -1
- package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +1 -1
- package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
- package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.d.cts +1 -1
- package/build/cjs/hooks/useKeyListener/useKeyListener.cjs +1 -1
- package/build/cjs/hooks/useKeyListener/useKeyListener.cjs.map +1 -1
- package/build/cjs/hooks/useListNavigation/useListNavigation.cjs +1 -1
- package/build/cjs/hooks/useListNavigation/useListNavigation.cjs.map +1 -1
- package/build/cjs/hooks/useLocalStorage/useLocalStorage.cjs +1 -1
- package/build/cjs/hooks/useLocalStorage/useLocalStorage.cjs.map +1 -1
- package/build/cjs/hooks/useMutationObserver/useMutationObserver.cjs +1 -1
- package/build/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
- package/build/cjs/hooks/usePreviousValue/usePreviousValue.cjs +1 -1
- package/build/cjs/hooks/usePreviousValue/usePreviousValue.cjs.map +1 -1
- package/build/cjs/hooks/useProgressiveImg/useProgressiveImg.cjs +1 -1
- package/build/cjs/hooks/useProgressiveImg/useProgressiveImg.cjs.map +1 -1
- package/build/cjs/hooks/useScreen/state.cjs.map +1 -1
- package/build/cjs/hooks/useScreen/useScreen.cjs +1 -1
- package/build/cjs/hooks/useScreen/useScreen.cjs.map +1 -1
- package/build/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs +1 -1
- package/build/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
- package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.cjs +1 -1
- package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.cjs.map +1 -1
- package/build/cjs/index.cjs +1 -1
- package/build/cjs/shared/input-panel/BasePanel.cjs +1 -1
- package/build/cjs/shared/input-panel/BasePanel.cjs.map +1 -1
- package/build/cjs/shared/input-panel/BasePanel.d.cts +14 -2
- package/build/cjs/tailwind/plugins/jokulTypographyPlugin.cjs +1 -1
- package/build/cjs/tailwind/plugins/jokulTypographyPlugin.cjs.map +1 -1
- package/build/cjs/tailwind/tailwindPreset.cjs.map +1 -1
- package/build/cjs/utilities/formatters/avstand/formatAvstand.cjs.map +1 -1
- package/build/cjs/utilities/formatters/bytes/formatBytes.cjs.map +1 -1
- package/build/cjs/utilities/formatters/date/formatDate.cjs.map +1 -1
- package/build/cjs/utilities/formatters/fodselsnummer/formatFodselsnummer.cjs.map +1 -1
- package/build/cjs/utilities/formatters/kontonummer/formatKontonummer.cjs.map +1 -1
- package/build/cjs/utilities/formatters/kortnummer/formatKortnummer.cjs.map +1 -1
- package/build/cjs/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.cjs.map +1 -1
- package/build/cjs/utilities/formatters/telefonnummer/formatTelefonnummer.cjs.map +1 -1
- package/build/cjs/utilities/formatters/util/formatNumber.cjs.map +1 -1
- package/build/cjs/utilities/formatters/util/parseNumber.cjs +1 -1
- package/build/cjs/utilities/formatters/util/parseNumber.cjs.map +1 -1
- package/build/cjs/utilities/formatters/util/registerWithMask.cjs.map +1 -1
- package/build/cjs/utilities/formatters/valuta/formatValuta.cjs.map +1 -1
- package/build/cjs/utilities/getThemeAndDensity.cjs.map +1 -1
- package/build/cjs/utilities/index.cjs +1 -1
- package/build/cjs/utilities/index.d.cts +2 -1
- package/build/cjs/utilities/mergeRefs.cjs +2 -0
- package/build/cjs/utilities/mergeRefs.cjs.map +1 -0
- package/build/cjs/utilities/mergeRefs.d.cts +22 -0
- package/build/cjs/utilities/polymorphism/SlotComponent.cjs +1 -1
- package/build/cjs/utilities/polymorphism/SlotComponent.cjs.map +1 -1
- package/build/cjs/utilities/polymorphism/index.cjs +1 -1
- package/build/cjs/utilities/polymorphism/index.d.cts +0 -1
- package/build/cjs/utilities/polymorphism/mergeProps.cjs.map +1 -1
- package/build/cjs/utilities/tabListener.cjs +1 -1
- package/build/cjs/utilities/tabListener.cjs.map +1 -1
- package/build/cjs/utilities/validators/hasMinimumWords/hasMinimumWords.cjs +1 -1
- package/build/cjs/utilities/validators/hasMinimumWords/hasMinimumWords.cjs.map +1 -1
- package/build/cjs/utilities/validators/isExactLength/isExactLength.cjs.map +1 -1
- package/build/cjs/utilities/validators/isValidFodselsnummer/isValidFodselsnummer.cjs +1 -1
- package/build/cjs/utilities/validators/isValidFodselsnummer/isValidFodselsnummer.cjs.map +1 -1
- package/build/cjs/utilities/validators/isValidKortnummer/isValidKortnummer.cjs +1 -1
- package/build/cjs/utilities/validators/isValidKortnummer/isValidKortnummer.cjs.map +1 -1
- package/build/cjs/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.cjs +1 -1
- package/build/cjs/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.cjs.map +1 -1
- package/build/cjs/utilities/valuePair.cjs.map +1 -1
- package/build/clsx-BeLtu-UY.js.map +1 -1
- package/build/clsx-E3yX_9sL.cjs.map +1 -1
- package/build/es/components/autosuggest/Autosuggest.js +1 -1
- package/build/es/components/autosuggest/Autosuggest.js.map +1 -1
- package/build/es/components/autosuggest/BaseAutosuggest.js +1 -24
- package/build/es/components/autosuggest/BaseAutosuggest.js.map +1 -1
- package/build/es/components/autosuggest/ControllerButton.js.map +1 -1
- package/build/es/components/autosuggest/Menu.js +1 -1
- package/build/es/components/autosuggest/Menu.js.map +1 -1
- package/build/es/components/autosuggest/utils.js.map +1 -1
- package/build/es/components/breadcrumb/Breadcrumb.js +1 -1
- package/build/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/build/es/components/breadcrumb/BreadcrumbItem.js +1 -1
- package/build/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/build/es/components/breadcrumb/documentation/BreadcrumbDocs.js.map +1 -1
- package/build/es/components/button/Button.js +1 -1
- package/build/es/components/button/Button.js.map +1 -1
- package/build/es/components/button/documentation/AnchorDocs.js.map +1 -1
- package/build/es/components/button/documentation/ButtonDocs.js +1 -1
- package/build/es/components/button/documentation/ButtonDocs.js.map +1 -1
- package/build/es/components/card/Card.js +1 -1
- package/build/es/components/card/Card.js.map +1 -1
- package/build/es/components/card/CardImage.js +1 -1
- package/build/es/components/card/CardImage.js.map +1 -1
- package/build/es/components/checkbox/Checkbox.js +1 -1
- package/build/es/components/checkbox/Checkbox.js.map +1 -1
- package/build/es/components/checkbox-panel/CheckboxPanel.js +1 -1
- package/build/es/components/checkbox-panel/CheckboxPanel.js.map +1 -1
- package/build/es/components/checkbox-panel/types.d.ts +12 -0
- package/build/es/components/chip/Chip.js +1 -1
- package/build/es/components/chip/Chip.js.map +1 -1
- package/build/es/components/combobox/Combobox.js +1 -1
- package/build/es/components/combobox/Combobox.js.map +1 -1
- package/build/es/components/cookie-consent/CookieConsent.js +1 -1
- package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
- package/build/es/components/cookie-consent/CookieConsentContext.js +1 -1
- package/build/es/components/cookie-consent/CookieConsentContext.js.map +1 -1
- package/build/es/components/cookie-consent/cookieConsentUtils.js +1 -1
- package/build/es/components/cookie-consent/cookieConsentUtils.js.map +1 -1
- package/build/es/components/countdown/Countdown.js +1 -1
- package/build/es/components/countdown/Countdown.js.map +1 -1
- package/build/es/components/datepicker/DatePicker.js +1 -1
- package/build/es/components/datepicker/DatePicker.js.map +1 -1
- package/build/es/components/datepicker/internal/Calendar.js +1 -1
- package/build/es/components/datepicker/internal/Calendar.js.map +1 -1
- package/build/es/components/datepicker/internal/calendarReducer.js.map +1 -1
- package/build/es/components/datepicker/internal/useCalendar.js +1 -1
- package/build/es/components/datepicker/internal/useCalendar.js.map +1 -1
- package/build/es/components/datepicker/internal/utils.js +1 -1
- package/build/es/components/datepicker/internal/utils.js.map +1 -1
- package/build/es/components/datepicker/utils.js.map +1 -1
- package/build/es/components/description-list/index.d.ts +3 -0
- package/build/es/components/description-list/index.js +1 -1
- package/build/es/components/expander/ExpandablePanel.js +1 -1
- package/build/es/components/expander/ExpandablePanel.js.map +1 -1
- package/build/es/components/expander/ExpandablePanelContent.js +1 -1
- package/build/es/components/expander/ExpandablePanelContent.js.map +1 -1
- package/build/es/components/expander/Expander.js +1 -1
- package/build/es/components/expander/Expander.js.map +1 -1
- package/build/es/components/feedback/Feedback.js.map +1 -1
- package/build/es/components/feedback/feedbackContext.js.map +1 -1
- package/build/es/components/feedback/followup/Followup.js +1 -1
- package/build/es/components/feedback/followup/Followup.js.map +1 -1
- package/build/es/components/feedback/followup/useFollowup.js +1 -1
- package/build/es/components/feedback/followup/useFollowup.js.map +1 -1
- package/build/es/components/feedback/main-question/MainQuestion.js +1 -1
- package/build/es/components/feedback/main-question/MainQuestion.js.map +1 -1
- package/build/es/components/feedback/main-question/useMainQuestion.js +1 -1
- package/build/es/components/feedback/main-question/useMainQuestion.js.map +1 -1
- package/build/es/components/feedback/questions/AddonQuestion.js +1 -1
- package/build/es/components/feedback/questions/AddonQuestion.js.map +1 -1
- package/build/es/components/feedback/questions/CheckboxQuestion.js +1 -1
- package/build/es/components/feedback/questions/CheckboxQuestion.js.map +1 -1
- package/build/es/components/feedback/questions/ContactQuestion.js +1 -1
- package/build/es/components/feedback/questions/ContactQuestion.js.map +1 -1
- package/build/es/components/feedback/questions/RadioQuestion.js +1 -1
- package/build/es/components/feedback/questions/RadioQuestion.js.map +1 -1
- package/build/es/components/feedback/questions/SmileyQuestion.js +1 -1
- package/build/es/components/feedback/questions/SmileyQuestion.js.map +1 -1
- package/build/es/components/feedback/questions/TextQuestion.js +1 -1
- package/build/es/components/feedback/questions/TextQuestion.js.map +1 -1
- package/build/es/components/feedback/questions/smileyUtils.js.map +1 -1
- package/build/es/components/feedback/utils.js +1 -1
- package/build/es/components/feedback/utils.js.map +1 -1
- package/build/es/components/file/File.js.map +1 -1
- package/build/es/components/file-input/FileInput.js +1 -1
- package/build/es/components/file-input/FileInput.js.map +1 -1
- package/build/es/components/file-input/internal/Dropzone.js +1 -1
- package/build/es/components/file-input/internal/Dropzone.js.map +1 -1
- package/build/es/components/file-input/internal/Input.js +1 -1
- package/build/es/components/file-input/internal/Input.js.map +1 -1
- package/build/es/components/file-input/internal/MaxSize.js.map +1 -1
- package/build/es/components/file-input/internal/fileInputContext.js.map +1 -1
- package/build/es/components/file-input/internal/validateFileInputFiles.js +1 -1
- package/build/es/components/file-input/internal/validateFileInputFiles.js.map +1 -1
- package/build/es/components/file-input/utils.js +1 -1
- package/build/es/components/file-input/utils.js.map +1 -1
- package/build/es/components/flex/Flex.js +1 -1
- package/build/es/components/flex/Flex.js.map +1 -1
- package/build/es/components/help/Help.js.map +1 -1
- package/build/es/components/icon/Icon.js +1 -1
- package/build/es/components/icon/Icon.js.map +1 -1
- package/build/es/components/icon/icons/ArrowDownIcon.js.map +1 -1
- package/build/es/components/icon/icons/ArrowLeftIcon.js.map +1 -1
- package/build/es/components/icon/icons/ArrowNorthEastIcon.js.map +1 -1
- package/build/es/components/icon/icons/ArrowRightIcon.js.map +1 -1
- package/build/es/components/icon/icons/ArrowUpIcon.js.map +1 -1
- package/build/es/components/icon/icons/CalendarIcon.js.map +1 -1
- package/build/es/components/icon/icons/CheckIcon.js.map +1 -1
- package/build/es/components/icon/icons/ChevronDownIcon.js.map +1 -1
- package/build/es/components/icon/icons/ChevronLeftIcon.js.map +1 -1
- package/build/es/components/icon/icons/ChevronRightIcon.js.map +1 -1
- package/build/es/components/icon/icons/ChevronUpIcon.js.map +1 -1
- package/build/es/components/icon/icons/CloseIcon.js.map +1 -1
- package/build/es/components/icon/icons/CopyIcon.js.map +1 -1
- package/build/es/components/icon/icons/DotsIcon.js.map +1 -1
- package/build/es/components/icon/icons/DragIcon.js.map +1 -1
- package/build/es/components/icon/icons/ErrorIcon.js.map +1 -1
- package/build/es/components/icon/icons/HamburgerIcon.js.map +1 -1
- package/build/es/components/icon/icons/InfoIcon.js.map +1 -1
- package/build/es/components/icon/icons/LinkIcon.js.map +1 -1
- package/build/es/components/icon/icons/MinusIcon.js.map +1 -1
- package/build/es/components/icon/icons/OpenInNewIcon.js.map +1 -1
- package/build/es/components/icon/icons/PenIcon.js.map +1 -1
- package/build/es/components/icon/icons/PlusIcon.js.map +1 -1
- package/build/es/components/icon/icons/QuestionIcon.js.map +1 -1
- package/build/es/components/icon/icons/RedCrossIcon.js.map +1 -1
- package/build/es/components/icon/icons/SearchIcon.js.map +1 -1
- package/build/es/components/icon/icons/SuccessIcon.js.map +1 -1
- package/build/es/components/icon/icons/ThumbDownIcon.js.map +1 -1
- package/build/es/components/icon/icons/ThumbUpIcon.js.map +1 -1
- package/build/es/components/icon/icons/TrashCanIcon.js.map +1 -1
- package/build/es/components/icon/icons/WarningIcon.js.map +1 -1
- package/build/es/components/icon-button/IconButton.js +1 -1
- package/build/es/components/icon-button/IconButton.js.map +1 -1
- package/build/es/components/image/Image.js +1 -1
- package/build/es/components/image/Image.js.map +1 -1
- package/build/es/components/image/useImageLoadingStatus.js +1 -1
- package/build/es/components/image/useImageLoadingStatus.js.map +1 -1
- package/build/es/components/input-group/FieldGroup.js.map +1 -1
- package/build/es/components/input-group/InputGroup.js +1 -1
- package/build/es/components/input-group/InputGroup.js.map +1 -1
- package/build/es/components/input-group/Label.js.map +1 -1
- package/build/es/components/input-group/SupportLabel.js.map +1 -1
- package/build/es/components/link/Link.js +1 -1
- package/build/es/components/link/Link.js.map +1 -1
- package/build/es/components/link-list/LinkList.js +1 -1
- package/build/es/components/link-list/LinkList.js.map +1 -1
- package/build/es/components/link-list/LinkListItem.d.ts +3 -0
- package/build/es/components/link-list/LinkListItem.js +2 -0
- package/build/es/components/link-list/LinkListItem.js.map +1 -0
- package/build/es/components/link-list/index.d.ts +2 -0
- package/build/es/components/link-list/index.js +1 -1
- package/build/es/components/list/List.js.map +1 -1
- package/build/es/components/list/ListItem.js.map +1 -1
- package/build/es/components/loader/Loader.js.map +1 -1
- package/build/es/components/loader/skeletons/SkeletonAnimation.js.map +1 -1
- package/build/es/components/loader/skeletons/SkeletonCheckboxGroup.js +1 -1
- package/build/es/components/loader/skeletons/SkeletonCheckboxGroup.js.map +1 -1
- package/build/es/components/loader/skeletons/SkeletonInput.js.map +1 -1
- package/build/es/components/loader/skeletons/SkeletonLabel.js.map +1 -1
- package/build/es/components/loader/skeletons/SkeletonRadioButtonGroup.js +1 -1
- package/build/es/components/loader/skeletons/SkeletonRadioButtonGroup.js.map +1 -1
- package/build/es/components/loader/skeletons/SkeletonTextArea.js.map +1 -1
- package/build/es/components/loader/useDelayedRender.js +1 -1
- package/build/es/components/loader/useDelayedRender.js.map +1 -1
- package/build/es/components/logo/Logo.js.map +1 -1
- package/build/es/components/logo/LogoStamp.js.map +1 -1
- package/build/es/components/logo/useTextSpinner.js +1 -1
- package/build/es/components/logo/useTextSpinner.js.map +1 -1
- package/build/es/components/menu/Menu.js +1 -1
- package/build/es/components/menu/Menu.js.map +1 -1
- package/build/es/components/menu/MenuDivider.js.map +1 -1
- package/build/es/components/menu/MenuItem.js +1 -1
- package/build/es/components/menu/MenuItem.js.map +1 -1
- package/build/es/components/menu/MenuItemCheckbox.js +1 -1
- package/build/es/components/menu/MenuItemCheckbox.js.map +1 -1
- package/build/es/components/menu/useMenuWideEvents.js +1 -1
- package/build/es/components/menu/useMenuWideEvents.js.map +1 -1
- package/build/es/components/message/DismissButton.js +1 -1
- package/build/es/components/message/DismissButton.js.map +1 -1
- package/build/es/components/message/FormErrorMessage.js +1 -1
- package/build/es/components/message/FormErrorMessage.js.map +1 -1
- package/build/es/components/message/Message.js +1 -1
- package/build/es/components/message/Message.js.map +1 -1
- package/build/es/components/modal/Modal.js +1 -1
- package/build/es/components/modal/Modal.js.map +1 -1
- package/build/es/components/modal/useModal.js.map +1 -1
- package/build/es/components/nav-link/NavLink.js +1 -1
- package/build/es/components/nav-link/NavLink.js.map +1 -1
- package/build/es/components/nav-link/index.d.ts +2 -0
- package/build/es/components/nav-link/index.js +1 -1
- package/build/es/components/pagination/PageButton.js.map +1 -1
- package/build/es/components/pagination/Pagination.js +1 -1
- package/build/es/components/pagination/Pagination.js.map +1 -1
- package/build/es/components/popover/Popover.js +1 -1
- package/build/es/components/popover/Popover.js.map +1 -1
- package/build/es/components/progress-bar/ProgressBar.js.map +1 -1
- package/build/es/components/radio-button/BaseRadioButton.js +1 -1
- package/build/es/components/radio-button/BaseRadioButton.js.map +1 -1
- package/build/es/components/radio-button/RadioButton.js +1 -1
- package/build/es/components/radio-button/RadioButton.js.map +1 -1
- package/build/es/components/radio-button/RadioButtonGroup.js.map +1 -1
- package/build/es/components/radio-panel/RadioPanel.js +1 -1
- package/build/es/components/radio-panel/RadioPanel.js.map +1 -1
- package/build/es/components/radio-panel/RadioPanelGroup.js.map +1 -1
- package/build/es/components/radio-panel/radioPanelContext.js.map +1 -1
- package/build/es/components/radio-panel/types.d.ts +12 -0
- package/build/es/components/segmented-control/SegmentedControl.js.map +1 -1
- package/build/es/components/segmented-control/SegmentedControlButton.js.map +1 -1
- package/build/es/components/select/NativeSelect.js +1 -1
- package/build/es/components/select/NativeSelect.js.map +1 -1
- package/build/es/components/select/Select.js +1 -1
- package/build/es/components/select/Select.js.map +1 -1
- package/build/es/components/select/select-utils.js.map +1 -1
- package/build/es/components/summary-table/SummaryTable.js +1 -1
- package/build/es/components/summary-table/SummaryTable.js.map +1 -1
- package/build/es/components/summary-table/SummaryTableRow.js.map +1 -1
- package/build/es/components/summary-table/mocks.js.map +1 -1
- package/build/es/components/system-message/SystemMessage.js.map +1 -1
- package/build/es/components/system-message/common/DismissButton.js +1 -1
- package/build/es/components/system-message/common/DismissButton.js.map +1 -1
- package/build/es/components/system-message/common/MessageIcon.js.map +1 -1
- package/build/es/components/table/DataTable.js +1 -1
- package/build/es/components/table/DataTable.js.map +1 -1
- package/build/es/components/table/ExpandableTableRow.js +1 -1
- package/build/es/components/table/ExpandableTableRow.js.map +1 -1
- package/build/es/components/table/ExpandableTableRowController.js +1 -1
- package/build/es/components/table/ExpandableTableRowController.js.map +1 -1
- package/build/es/components/table/Table.js +1 -1
- package/build/es/components/table/Table.js.map +1 -1
- package/build/es/components/table/TableBody.js +1 -1
- package/build/es/components/table/TableBody.js.map +1 -1
- package/build/es/components/table/TableCaption.js +1 -1
- package/build/es/components/table/TableCaption.js.map +1 -1
- package/build/es/components/table/TableCell.js +1 -1
- package/build/es/components/table/TableCell.js.map +1 -1
- package/build/es/components/table/TableColumn.js +1 -1
- package/build/es/components/table/TableColumn.js.map +1 -1
- package/build/es/components/table/TableColumnGroup.js +1 -1
- package/build/es/components/table/TableColumnGroup.js.map +1 -1
- package/build/es/components/table/TableFooter.js +1 -1
- package/build/es/components/table/TableFooter.js.map +1 -1
- package/build/es/components/table/TableHead.js +1 -1
- package/build/es/components/table/TableHead.js.map +1 -1
- package/build/es/components/table/TableHeader.js +1 -1
- package/build/es/components/table/TableHeader.js.map +1 -1
- package/build/es/components/table/TablePagination.js +1 -1
- package/build/es/components/table/TablePagination.js.map +1 -1
- package/build/es/components/table/TableRow.js +1 -1
- package/build/es/components/table/TableRow.js.map +1 -1
- package/build/es/components/table/tableSectionContext.js.map +1 -1
- package/build/es/components/table/utils.js.map +1 -1
- package/build/es/components/table-of-contents/index.d.ts +2 -0
- package/build/es/components/table-of-contents/index.js +2 -0
- package/build/es/components/table-of-contents/index.js.map +1 -0
- package/build/es/components/tabs/NavTab.js +1 -1
- package/build/es/components/tabs/NavTab.js.map +1 -1
- package/build/es/components/tabs/NavTabs.js +1 -1
- package/build/es/components/tabs/NavTabs.js.map +1 -1
- package/build/es/components/tabs/Tab.js +1 -1
- package/build/es/components/tabs/Tab.js.map +1 -1
- package/build/es/components/tabs/TabList.js +1 -1
- package/build/es/components/tabs/TabList.js.map +1 -1
- package/build/es/components/tabs/TabPanel.js.map +1 -1
- package/build/es/components/tabs/Tabs.js +1 -1
- package/build/es/components/tabs/Tabs.js.map +1 -1
- package/build/es/components/tabs/tabsContext.js.map +1 -1
- package/build/es/components/tag/Tag.js.map +1 -1
- package/build/es/components/text-area/BaseTextArea.js +1 -1
- package/build/es/components/text-area/BaseTextArea.js.map +1 -1
- package/build/es/components/text-area/TextArea.js +1 -1
- package/build/es/components/text-area/TextArea.js.map +1 -1
- package/build/es/components/text-input/BaseTextInput.js +1 -1
- package/build/es/components/text-input/BaseTextInput.js.map +1 -1
- package/build/es/components/text-input/TextInput.js +1 -1
- package/build/es/components/text-input/TextInput.js.map +1 -1
- package/build/es/components/toast/Toast.js +1 -1
- package/build/es/components/toast/Toast.js.map +1 -1
- package/build/es/components/toast/ToastRegion.js +1 -1
- package/build/es/components/toast/ToastRegion.js.map +1 -1
- package/build/es/components/toast/toastContext.js.map +1 -1
- package/build/es/components/toggle-switch/ToggleSlider.js +1 -1
- package/build/es/components/toggle-switch/ToggleSlider.js.map +1 -1
- package/build/es/components/toggle-switch/ToggleSwitch.js +1 -1
- package/build/es/components/toggle-switch/ToggleSwitch.js.map +1 -1
- package/build/es/components/toggle-switch/usePillStyles.js +1 -1
- package/build/es/components/toggle-switch/usePillStyles.js.map +1 -1
- package/build/es/components/tooltip/PopupTip.js.map +1 -1
- package/build/es/components/tooltip/Tooltip.js.map +1 -1
- package/build/es/components/tooltip/TooltipContent.js +1 -1
- package/build/es/components/tooltip/TooltipContent.js.map +1 -1
- package/build/es/components/tooltip/TooltipTrigger.js +1 -1
- package/build/es/components/tooltip/TooltipTrigger.js.map +1 -1
- package/build/es/components-beta/description-list/DescriptionList.d.ts +6 -0
- package/build/es/components-beta/description-list/DescriptionList.js +2 -0
- package/build/es/components-beta/description-list/DescriptionList.js.map +1 -0
- package/build/es/components-beta/description-list/DescriptionListItem.d.ts +3 -0
- package/build/es/components-beta/description-list/DescriptionListItem.js +2 -0
- package/build/es/components-beta/description-list/DescriptionListItem.js.map +1 -0
- package/build/es/components-beta/description-list/index.d.ts +3 -0
- package/build/es/components-beta/description-list/index.js +2 -0
- package/build/es/components-beta/description-list/index.js.map +1 -0
- package/build/es/components-beta/description-list/types.d.ts +18 -0
- package/build/es/components-beta/description-list/types.js +2 -0
- package/build/es/components-beta/description-list/types.js.map +1 -0
- package/build/es/components-beta/link-list/LinkList.d.ts +6 -0
- package/build/es/components-beta/link-list/LinkList.js +2 -0
- package/build/es/components-beta/link-list/LinkList.js.map +1 -0
- package/build/es/components-beta/link-list/LinkListLink.d.ts +3 -0
- package/build/es/components-beta/link-list/LinkListLink.js +2 -0
- package/build/es/components-beta/link-list/LinkListLink.js.map +1 -0
- package/build/es/components-beta/link-list/index.d.ts +3 -0
- package/build/es/components-beta/link-list/index.js +2 -0
- package/build/es/components-beta/link-list/index.js.map +1 -0
- package/build/es/components-beta/link-list/types.d.ts +7 -0
- package/build/es/components-beta/link-list/types.js +2 -0
- package/build/es/components-beta/link-list/types.js.map +1 -0
- package/build/es/components-beta/nav-link/NavLink.d.ts +5 -0
- package/build/es/components-beta/nav-link/NavLink.js +2 -0
- package/build/es/components-beta/nav-link/NavLink.js.map +1 -0
- package/build/es/components-beta/nav-link/index.d.ts +1 -0
- package/build/es/components-beta/nav-link/index.js +2 -0
- package/build/es/components-beta/nav-link/index.js.map +1 -0
- package/build/es/components-beta/nav-link/types.d.ts +6 -0
- package/build/es/components-beta/nav-link/types.js +2 -0
- package/build/es/components-beta/nav-link/types.js.map +1 -0
- package/build/es/components-beta/search/Search.d.ts +6 -0
- package/build/es/components-beta/search/Search.js +2 -0
- package/build/es/components-beta/search/Search.js.map +1 -0
- package/build/es/components-beta/search/SearchButton.d.ts +2 -0
- package/build/es/components-beta/search/SearchButton.js +2 -0
- package/build/es/components-beta/search/SearchButton.js.map +1 -0
- package/build/es/components-beta/search/index.d.ts +2 -0
- package/build/es/components-beta/search/index.js +2 -0
- package/build/es/components-beta/search/index.js.map +1 -0
- package/build/es/components-beta/search/types.d.ts +21 -0
- package/build/es/components-beta/search/types.js +2 -0
- package/build/es/components-beta/search/types.js.map +1 -0
- package/build/es/components-beta/select/Select.js +1 -1
- package/build/es/components-beta/select/Select.js.map +1 -1
- package/build/es/components-beta/table-of-contents/TableOfContents.d.ts +6 -0
- package/build/es/components-beta/table-of-contents/TableOfContents.js +2 -0
- package/build/es/components-beta/table-of-contents/TableOfContents.js.map +1 -0
- package/build/es/components-beta/table-of-contents/TableOfContentsLink.d.ts +3 -0
- package/build/es/components-beta/table-of-contents/TableOfContentsLink.js +2 -0
- package/build/es/components-beta/table-of-contents/TableOfContentsLink.js.map +1 -0
- package/build/es/components-beta/table-of-contents/index.d.ts +3 -0
- package/build/es/components-beta/table-of-contents/index.js +2 -0
- package/build/es/components-beta/table-of-contents/index.js.map +1 -0
- package/build/es/components-beta/table-of-contents/types.d.ts +6 -0
- package/build/es/components-beta/table-of-contents/types.js +2 -0
- package/build/es/components-beta/table-of-contents/types.js.map +1 -0
- package/build/es/core/tokens/style-dictionary/config.js +1 -1
- package/build/es/core/tokens/style-dictionary/config.js.map +1 -1
- package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.js +1 -1
- package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.js.map +1 -1
- package/build/es/core/tokens/style-dictionary/formats/javascript-esm.js +1 -1
- package/build/es/core/tokens/style-dictionary/formats/javascript-esm.js.map +1 -1
- package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.js +1 -1
- package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.js.map +1 -1
- package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.js +1 -1
- package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.js.map +1 -1
- package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.js +1 -1
- package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.js.map +1 -1
- package/build/es/core/tokens.js.map +1 -1
- package/build/es/hooks/mediaQueryUtils.js.map +1 -1
- package/build/es/hooks/stories/content.js.map +1 -1
- package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.js +1 -1
- package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.js.map +1 -1
- package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js +1 -1
- package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js.map +1 -1
- package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js +1 -1
- package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js.map +1 -1
- package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js +1 -1
- package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js.map +1 -1
- package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.js +1 -1
- package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.js.map +1 -1
- package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.js +1 -1
- package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.js.map +1 -1
- package/build/es/hooks/useClickOutside/useClickOutside.js +1 -1
- package/build/es/hooks/useClickOutside/useClickOutside.js.map +1 -1
- package/build/es/hooks/useElementDimensions/useElementDimensions.js +1 -1
- package/build/es/hooks/useElementDimensions/useElementDimensions.js.map +1 -1
- package/build/es/hooks/useFocusOutside/useFocusOutside.js +1 -1
- package/build/es/hooks/useFocusOutside/useFocusOutside.js.map +1 -1
- package/build/es/hooks/useId/useId.js.map +1 -1
- package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +1 -1
- package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js +1 -1
- package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
- package/build/es/hooks/useKeyListener/useKeyListener.js +1 -1
- package/build/es/hooks/useKeyListener/useKeyListener.js.map +1 -1
- package/build/es/hooks/useListNavigation/useListNavigation.js +1 -1
- package/build/es/hooks/useListNavigation/useListNavigation.js.map +1 -1
- package/build/es/hooks/useLocalStorage/useLocalStorage.js +1 -1
- package/build/es/hooks/useLocalStorage/useLocalStorage.js.map +1 -1
- package/build/es/hooks/useMutationObserver/useMutationObserver.js +1 -1
- package/build/es/hooks/useMutationObserver/useMutationObserver.js.map +1 -1
- package/build/es/hooks/usePreviousValue/usePreviousValue.js +1 -1
- package/build/es/hooks/usePreviousValue/usePreviousValue.js.map +1 -1
- package/build/es/hooks/useProgressiveImg/useProgressiveImg.js +1 -1
- package/build/es/hooks/useProgressiveImg/useProgressiveImg.js.map +1 -1
- package/build/es/hooks/useScreen/state.js.map +1 -1
- package/build/es/hooks/useScreen/useScreen.js +1 -1
- package/build/es/hooks/useScreen/useScreen.js.map +1 -1
- package/build/es/hooks/useScrollIntoView/useScrollIntoView.js +1 -1
- package/build/es/hooks/useScrollIntoView/useScrollIntoView.js.map +1 -1
- package/build/es/hooks/useSwipeGesture/useSwipeGesture.js +1 -1
- package/build/es/hooks/useSwipeGesture/useSwipeGesture.js.map +1 -1
- package/build/es/index.js +1 -1
- package/build/es/shared/input-panel/BasePanel.d.ts +14 -2
- package/build/es/shared/input-panel/BasePanel.js +1 -1
- package/build/es/shared/input-panel/BasePanel.js.map +1 -1
- package/build/es/tailwind/plugins/jokulTypographyPlugin.js +1 -1
- package/build/es/tailwind/plugins/jokulTypographyPlugin.js.map +1 -1
- package/build/es/utilities/formatters/avstand/formatAvstand.js.map +1 -1
- package/build/es/utilities/formatters/bytes/formatBytes.js.map +1 -1
- package/build/es/utilities/formatters/date/formatDate.js.map +1 -1
- package/build/es/utilities/formatters/fodselsnummer/formatFodselsnummer.js.map +1 -1
- package/build/es/utilities/formatters/kontonummer/formatKontonummer.js.map +1 -1
- package/build/es/utilities/formatters/kortnummer/formatKortnummer.js.map +1 -1
- package/build/es/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.js.map +1 -1
- package/build/es/utilities/formatters/telefonnummer/formatTelefonnummer.js.map +1 -1
- package/build/es/utilities/formatters/util/formatNumber.js.map +1 -1
- package/build/es/utilities/formatters/util/parseNumber.js +1 -1
- package/build/es/utilities/formatters/util/parseNumber.js.map +1 -1
- package/build/es/utilities/formatters/util/registerWithMask.js.map +1 -1
- package/build/es/utilities/formatters/valuta/formatValuta.js.map +1 -1
- package/build/es/utilities/getThemeAndDensity.js.map +1 -1
- package/build/es/utilities/index.d.ts +2 -1
- package/build/es/utilities/index.js +1 -1
- package/build/es/utilities/mergeRefs.d.ts +22 -0
- package/build/es/utilities/mergeRefs.js +2 -0
- package/build/es/utilities/mergeRefs.js.map +1 -0
- package/build/es/utilities/polymorphism/SlotComponent.js +1 -1
- package/build/es/utilities/polymorphism/SlotComponent.js.map +1 -1
- package/build/es/utilities/polymorphism/index.d.ts +0 -1
- package/build/es/utilities/polymorphism/index.js +1 -1
- package/build/es/utilities/polymorphism/mergeProps.js.map +1 -1
- package/build/es/utilities/tabListener.js +1 -1
- package/build/es/utilities/tabListener.js.map +1 -1
- package/build/es/utilities/validators/hasMinimumWords/hasMinimumWords.js +1 -1
- package/build/es/utilities/validators/hasMinimumWords/hasMinimumWords.js.map +1 -1
- package/build/es/utilities/validators/isExactLength/isExactLength.js.map +1 -1
- package/build/es/utilities/validators/isValidFodselsnummer/isValidFodselsnummer.js +1 -1
- package/build/es/utilities/validators/isValidFodselsnummer/isValidFodselsnummer.js.map +1 -1
- package/build/es/utilities/validators/isValidKortnummer/isValidKortnummer.js +1 -1
- package/build/es/utilities/validators/isValidKortnummer/isValidKortnummer.js.map +1 -1
- package/build/es/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.js +1 -1
- package/build/es/utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.js.map +1 -1
- package/build/es/utilities/valuePair.js.map +1 -1
- package/build/index-CWRMnfcx.js.map +1 -1
- package/build/index-CaISwoxr.cjs.map +1 -1
- package/package.json +27 -2
- package/styles/components/card/card.css +86 -85
- package/styles/components/card/card.min.css +1 -1
- package/styles/components/card/card.scss +82 -80
- package/styles/components/checkbox/checkbox.css +4 -4
- package/styles/components/checkbox/checkbox.min.css +1 -1
- package/styles/components/checkbox-panel/checkbox-panel.css +6 -6
- package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
- package/styles/components/combobox/combobox.min.css +1 -1
- package/styles/components/countdown/countdown.css +2 -2
- package/styles/components/countdown/countdown.min.css +1 -1
- package/styles/components/feedback/feedback.css +2 -2
- package/styles/components/feedback/feedback.min.css +1 -1
- package/styles/components/file-input/file-input.css +11 -11
- package/styles/components/file-input/file-input.min.css +1 -1
- package/styles/components/input-group/_labels.scss +11 -10
- package/styles/components/input-group/input-group.css +4 -4
- package/styles/components/input-group/input-group.min.css +1 -1
- package/styles/components/loader/loader.css +6 -6
- package/styles/components/loader/loader.min.css +1 -1
- package/styles/components/loader/skeleton-loader.css +5 -5
- package/styles/components/loader/skeleton-loader.min.css +1 -1
- package/styles/components/logo/logo.min.css +1 -1
- package/styles/components/message/message.css +2 -2
- package/styles/components/message/message.min.css +1 -1
- package/styles/components/progress-bar/progress-bar.css +1 -1
- package/styles/components/progress-bar/progress-bar.min.css +1 -1
- package/styles/components/radio-button/radio-button.css +2 -2
- package/styles/components/radio-button/radio-button.min.css +1 -1
- package/styles/components/radio-panel/radio-panel.css +2 -2
- package/styles/components/radio-panel/radio-panel.min.css +1 -1
- package/styles/components/segmented-control/segmented-control.css +6 -6
- package/styles/components/segmented-control/segmented-control.min.css +1 -1
- package/styles/components/select/select.css +5 -3
- package/styles/components/select/select.min.css +1 -1
- package/styles/components/system-message/system-message.css +2 -2
- package/styles/components/system-message/system-message.min.css +1 -1
- package/styles/components/table/_table-pagination.scss +10 -5
- package/styles/components/table/table.css +14 -6
- package/styles/components/table/table.min.css +1 -1
- package/styles/components/table-of-contents/_index.scss +1 -0
- package/styles/components/tabs/tabs.min.css +1 -1
- package/styles/components/text-area/text-area.css +0 -8
- package/styles/components/text-area/text-area.min.css +1 -1
- package/styles/components/text-area/text-area.scss +2 -13
- package/styles/components/toast/toast.css +4 -4
- package/styles/components/toast/toast.min.css +1 -1
- package/styles/components-beta/description-list/_index.scss +1 -0
- package/styles/components-beta/description-list/description-list.css +64 -0
- package/styles/components-beta/description-list/description-list.min.css +1 -0
- package/styles/components-beta/description-list/description-list.scss +80 -0
- package/styles/components-beta/link-list/_index.scss +2 -0
- package/styles/components-beta/link-list/link-list.css +81 -0
- package/styles/components-beta/link-list/link-list.min.css +1 -0
- package/styles/components-beta/link-list/link-list.scss +81 -0
- package/styles/components-beta/nav-link/_index.scss +1 -0
- package/styles/components-beta/nav-link/navlink.css +68 -0
- package/styles/components-beta/nav-link/navlink.min.css +1 -0
- package/styles/components-beta/nav-link/navlink.scss +66 -0
- package/styles/components-beta/search/_index.scss +4 -0
- package/styles/components-beta/search/search-with-submit-button.css +76 -0
- package/styles/components-beta/search/search-with-submit-button.min.css +5 -0
- package/styles/components-beta/search/search-with-submit-button.scss +37 -0
- package/styles/components-beta/search/search.css +162 -0
- package/styles/components-beta/search/search.min.css +5 -0
- package/styles/components-beta/search/search.scss +106 -0
- package/styles/components-beta/select/select.css +7 -5
- package/styles/components-beta/select/select.min.css +1 -1
- package/styles/components-beta/table-of-contents/_index.scss +2 -0
- package/styles/components-beta/table-of-contents/table-of-contents.css +89 -0
- package/styles/components-beta/table-of-contents/table-of-contents.min.css +1 -0
- package/styles/components-beta/table-of-contents/table-of-contents.scss +88 -0
- package/styles/styles.css +591 -145
- package/styles/styles.min.css +2 -2
- package/styles/styles.scss +5 -0
- package/build/cjs/utilities/polymorphism/mergeRefs.cjs +0 -2
- package/build/cjs/utilities/polymorphism/mergeRefs.cjs.map +0 -1
- package/build/cjs/utilities/polymorphism/mergeRefs.d.cts +0 -3
- package/build/es/utilities/polymorphism/mergeRefs.d.ts +0 -3
- package/build/es/utilities/polymorphism/mergeRefs.js +0 -2
- package/build/es/utilities/polymorphism/mergeRefs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useListNavigation.js","sources":["../../../../src/hooks/useListNavigation/useListNavigation.ts"],"sourcesContent":["import { type RefObject, useEffect } from \"react\";\n\ntype Timer = number | undefined;\ntype KeyBuffer = { keys: string } | undefined;\ntype Direction = \"prev\" | \"next\" | \"first\" | \"last\";\ninterface MoveDetails {\n event: KeyboardEvent;\n list: HTMLElement;\n currentFocus: HTMLButtonElement;\n}\ninterface ListDetails {\n list: HTMLElement;\n search: KeyBuffer;\n searchResetTimer: Timer;\n}\ninterface SearchDetails extends ListDetails {\n key: string;\n}\ninterface EventDetails extends ListDetails {\n event: KeyboardEvent;\n}\ntype UseListNavigationProps<T> = {\n /** Ref til et element med rollen `listbox` */\n ref: RefObject<T | null>;\n};\n\nexport function useListNavigation<T extends HTMLElement>({\n ref,\n}: UseListNavigationProps<T>): void {\n useEffect(() => {\n let searchResetTimer: Timer;\n const search: KeyBuffer = { keys: \"\" }; // keypress buffer is an object to preserve state\n const list = ref.current;\n const handler = (event: KeyboardEvent) => {\n if (list) {\n handleListKeyNav({ list, event, search, searchResetTimer });\n }\n };\n\n if (list) {\n list.addEventListener(\"keydown\", handler);\n }\n\n return () => {\n if (list) {\n list.removeEventListener(\"keydown\", handler);\n }\n };\n }, [ref]);\n}\n\nfunction handleMoveTo(\n direction: Direction,\n { event, list, currentFocus }: MoveDetails,\n) {\n event.preventDefault();\n moveFocusTo(direction, list, currentFocus);\n}\n\nfunction handleListKeyNav({\n list,\n event,\n search,\n searchResetTimer,\n}: EventDetails) {\n const { key, target } = event;\n const currentFocus = target as HTMLButtonElement;\n\n const moveDetails = {\n event,\n list,\n currentFocus,\n };\n\n switch (key) {\n case \"ArrowUp\":\n case \"PageUp\":\n handleMoveTo(\"prev\", moveDetails);\n break;\n case \"ArrowDown\":\n case \"PageDown\":\n handleMoveTo(\"next\", moveDetails);\n break;\n case \"Home\":\n handleMoveTo(\"first\", moveDetails);\n break;\n case \"End\":\n handleMoveTo(\"last\", moveDetails);\n break;\n case \"Tab\":\n // in a standard select, tab does nothing in-menu\n event.preventDefault();\n break;\n case \"Enter\":\n case \" \":\n break;\n\n default:\n if (search !== undefined) {\n const searchResult = findItem({\n list,\n key,\n search,\n searchResetTimer,\n });\n if (searchResult) {\n searchResult.focus();\n }\n }\n break;\n }\n}\n\nfunction moveFocusTo(\n direction: Direction,\n list: HTMLElement,\n current: HTMLButtonElement,\n) {\n const thisOption = current;\n switch (direction) {\n case \"prev\": {\n const prevOption: HTMLButtonElement | null =\n thisOption &&\n (thisOption.previousElementSibling as HTMLButtonElement);\n if (prevOption) {\n prevOption.focus();\n }\n break;\n }\n case \"next\": {\n const nextOption: HTMLButtonElement | null =\n thisOption &&\n (thisOption.nextElementSibling as HTMLButtonElement);\n if (nextOption) {\n nextOption.focus();\n }\n break;\n }\n case \"first\": {\n const firstItem =\n list.querySelector<HTMLButtonElement>(`[role=\"option\"]`);\n if (firstItem) {\n firstItem.focus();\n }\n break;\n }\n case \"last\": {\n const listItems =\n list.querySelectorAll<HTMLButtonElement>(`[role=\"option\"]`);\n if (listItems.length) {\n listItems[listItems.length - 1].focus();\n }\n break;\n }\n }\n}\n\nfunction findItem({\n list,\n key,\n search,\n searchResetTimer,\n}: SearchDetails): HTMLButtonElement | null {\n const listItems = list.querySelectorAll(`[role=\"option\"]`);\n if (!listItems.length) return null;\n\n if (search) {\n search.keys = search.keys.concat(key);\n resetWhenIdle(search, searchResetTimer);\n\n for (let n = 0; n < listItems.length; n++) {\n const label = (listItems[n] as HTMLButtonElement).innerText;\n if (label && label.toLowerCase().indexOf(search.keys) === 0) {\n return listItems[n] as HTMLButtonElement;\n }\n }\n }\n\n return null;\n}\n\nfunction resetWhenIdle(search: KeyBuffer, timer: Timer) {\n if (timer) {\n clearTimeout(timer);\n timer = undefined;\n }\n timer = setTimeout(\n () => {\n // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n search ? (search.keys = \"\") : (search = { keys: \"\" });\n timer = undefined;\n },\n 500,\n search,\n timer,\n );\n}\n"],"names":["useListNavigation","ref","useEffect","search","keys","list","current","handler","event","searchResetTimer","key","target","moveDetails","currentFocus","handleMoveTo","preventDefault","searchResult","listItems","querySelectorAll","length","concat","timer","clearTimeout","setTimeout","resetWhenIdle","n","label","innerText","toLowerCase","indexOf","findItem","focus","handleListKeyNav","addEventListener","removeEventListener","direction","thisOption","prevOption","previousElementSibling","nextOption","nextElementSibling","firstItem","querySelector","moveFocusTo"],"mappings":"kCA0BO,SAASA,GACZC,IAAAA,IAEAC,
|
|
1
|
+
{"version":3,"file":"useListNavigation.js","sources":["../../../../src/hooks/useListNavigation/useListNavigation.ts"],"sourcesContent":["import { type RefObject, useEffect } from \"react\";\n\ntype Timer = number | undefined;\ntype KeyBuffer = { keys: string } | undefined;\ntype Direction = \"prev\" | \"next\" | \"first\" | \"last\";\ninterface MoveDetails {\n event: KeyboardEvent;\n list: HTMLElement;\n currentFocus: HTMLButtonElement;\n}\ninterface ListDetails {\n list: HTMLElement;\n search: KeyBuffer;\n searchResetTimer: Timer;\n}\ninterface SearchDetails extends ListDetails {\n key: string;\n}\ninterface EventDetails extends ListDetails {\n event: KeyboardEvent;\n}\ntype UseListNavigationProps<T> = {\n /** Ref til et element med rollen `listbox` */\n ref: RefObject<T | null>;\n};\n\nexport function useListNavigation<T extends HTMLElement>({\n ref,\n}: UseListNavigationProps<T>): void {\n useEffect(() => {\n let searchResetTimer: Timer;\n const search: KeyBuffer = { keys: \"\" }; // keypress buffer is an object to preserve state\n const list = ref.current;\n const handler = (event: KeyboardEvent) => {\n if (list) {\n handleListKeyNav({ list, event, search, searchResetTimer });\n }\n };\n\n if (list) {\n list.addEventListener(\"keydown\", handler);\n }\n\n return () => {\n if (list) {\n list.removeEventListener(\"keydown\", handler);\n }\n };\n }, [ref]);\n}\n\nfunction handleMoveTo(\n direction: Direction,\n { event, list, currentFocus }: MoveDetails,\n) {\n event.preventDefault();\n moveFocusTo(direction, list, currentFocus);\n}\n\nfunction handleListKeyNav({\n list,\n event,\n search,\n searchResetTimer,\n}: EventDetails) {\n const { key, target } = event;\n const currentFocus = target as HTMLButtonElement;\n\n const moveDetails = {\n event,\n list,\n currentFocus,\n };\n\n switch (key) {\n case \"ArrowUp\":\n case \"PageUp\":\n handleMoveTo(\"prev\", moveDetails);\n break;\n case \"ArrowDown\":\n case \"PageDown\":\n handleMoveTo(\"next\", moveDetails);\n break;\n case \"Home\":\n handleMoveTo(\"first\", moveDetails);\n break;\n case \"End\":\n handleMoveTo(\"last\", moveDetails);\n break;\n case \"Tab\":\n // in a standard select, tab does nothing in-menu\n event.preventDefault();\n break;\n case \"Enter\":\n case \" \":\n break;\n\n default:\n if (search !== undefined) {\n const searchResult = findItem({\n list,\n key,\n search,\n searchResetTimer,\n });\n if (searchResult) {\n searchResult.focus();\n }\n }\n break;\n }\n}\n\nfunction moveFocusTo(\n direction: Direction,\n list: HTMLElement,\n current: HTMLButtonElement,\n) {\n const thisOption = current;\n switch (direction) {\n case \"prev\": {\n const prevOption: HTMLButtonElement | null =\n thisOption &&\n (thisOption.previousElementSibling as HTMLButtonElement);\n if (prevOption) {\n prevOption.focus();\n }\n break;\n }\n case \"next\": {\n const nextOption: HTMLButtonElement | null =\n thisOption &&\n (thisOption.nextElementSibling as HTMLButtonElement);\n if (nextOption) {\n nextOption.focus();\n }\n break;\n }\n case \"first\": {\n const firstItem =\n list.querySelector<HTMLButtonElement>(`[role=\"option\"]`);\n if (firstItem) {\n firstItem.focus();\n }\n break;\n }\n case \"last\": {\n const listItems =\n list.querySelectorAll<HTMLButtonElement>(`[role=\"option\"]`);\n if (listItems.length) {\n listItems[listItems.length - 1].focus();\n }\n break;\n }\n }\n}\n\nfunction findItem({\n list,\n key,\n search,\n searchResetTimer,\n}: SearchDetails): HTMLButtonElement | null {\n const listItems = list.querySelectorAll(`[role=\"option\"]`);\n if (!listItems.length) return null;\n\n if (search) {\n search.keys = search.keys.concat(key);\n resetWhenIdle(search, searchResetTimer);\n\n for (let n = 0; n < listItems.length; n++) {\n const label = (listItems[n] as HTMLButtonElement).innerText;\n if (label && label.toLowerCase().indexOf(search.keys) === 0) {\n return listItems[n] as HTMLButtonElement;\n }\n }\n }\n\n return null;\n}\n\nfunction resetWhenIdle(search: KeyBuffer, timer: Timer) {\n if (timer) {\n clearTimeout(timer);\n timer = undefined;\n }\n timer = setTimeout(\n () => {\n // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n search ? (search.keys = \"\") : (search = { keys: \"\" });\n timer = undefined;\n },\n 500,\n search,\n timer,\n );\n}\n"],"names":["useListNavigation","ref","useEffect","search","keys","list","current","handler","event","searchResetTimer","key","target","moveDetails","currentFocus","handleMoveTo","preventDefault","searchResult","listItems","querySelectorAll","length","concat","timer","clearTimeout","setTimeout","resetWhenIdle","n","label","innerText","toLowerCase","indexOf","findItem","focus","handleListKeyNav","addEventListener","removeEventListener","direction","thisOption","prevOption","previousElementSibling","nextOption","nextElementSibling","firstItem","querySelector","moveFocusTo"],"mappings":"kCA0BO,SAASA,GACZC,IAAAA,IAEAC,EAAU,KAEN,MAAMC,EAAoB,CAAEC,KAAM,IAC5BC,EAAOJ,EAAIK,QACXC,EAAWC,IACTH,GAyBhB,UACIA,KAAAA,EACAG,MAAAA,EACAL,OAAAA,EACAM,iBAAAA,IAEA,MAAQC,IAAAA,EAAKC,OAAAA,GAAWH,EAGlBI,EAAc,CAChBJ,MAAAA,EACAH,KAAAA,EACAQ,aALiBF,GAQrB,OAAQD,GACJ,IAAK,UACL,IAAK,SACDI,EAAa,OAAQF,GACrB,MACJ,IAAK,YACL,IAAK,WACDE,EAAa,OAAQF,GACrB,MACJ,IAAK,OACDE,EAAa,QAASF,GACtB,MACJ,IAAK,MACDE,EAAa,OAAQF,GACrB,MACJ,IAAK,MAEDJ,EAAMO,iBACN,MACJ,IAAK,QACL,IAAK,IACD,MAEJ,QACI,QAAe,IAAXZ,EAAsB,CACtB,MAAMa,EA0DtB,UACIX,KAAAA,EACAK,IAAAA,EACAP,OAAAA,EACAM,iBAAAA,IAEA,MAAMQ,EAAYZ,EAAKa,iBAAiB,mBACxC,IAAKD,EAAUE,OAAQ,OAAO,KAE9B,GAAIhB,EAAQ,CACRA,EAAOC,KAAOD,EAAOC,KAAKgB,OAAOV,GAczC,SAAuBP,EAAmBkB,GAClCA,IACAC,aAAaD,GACbA,OAAQ,GAEZA,EAAQE,WACJ,KAEIpB,EAAUA,EAAOC,KAAO,GAAOD,EAAS,CAAEC,KAAM,IAChDiB,OAAQ,GAEZ,IACAlB,EACAkB,EAER,CA5BQG,CAAcrB,EAAQM,GAEtB,IAAA,IAASgB,EAAI,EAAGA,EAAIR,EAAUE,OAAQM,IAAK,CACvC,MAAMC,EAAST,EAAUQ,GAAyBE,UAClD,GAAID,GAAsD,IAA7CA,EAAME,cAAcC,QAAQ1B,EAAOC,MAC5C,OAAOa,EAAUQ,EAEzB,CACJ,CAEA,OAAO,IACX,CAhFqCK,CAAS,CAC1BzB,KAAAA,EACAK,IAAAA,EACAP,OAAAA,EACAM,iBAAAA,IAEAO,GACAA,EAAae,OAErB,EAGZ,CA5EgBC,CAAiB,CAAE3B,KAAAA,EAAMG,MAAAA,EAAOL,OAAAA,EAAQM,iBAL5CA,aASJ,OAAIJ,GACAA,EAAK4B,iBAAiB,UAAW1B,GAG9B,KACCF,GACAA,EAAK6B,oBAAoB,UAAW3B,KAG7C,CAACN,GACR,CAEA,SAASa,EACLqB,GACE3B,MAAAA,EAAOH,KAAAA,EAAMQ,aAAAA,IAEfL,EAAMO,iBA0DV,SACIoB,EACA9B,EACAC,GAEA,MAAM8B,EAAa9B,EACnB,OAAQ6B,GACJ,IAAK,OAAQ,CACT,MAAME,EACFD,GACCA,EAAWE,uBACZD,GACAA,EAAWN,QAEf,KACJ,CACA,IAAK,OAAQ,CACT,MAAMQ,EACFH,GACCA,EAAWI,mBACZD,GACAA,EAAWR,QAEf,KACJ,CACA,IAAK,QAAS,CACV,MAAMU,EACFpC,EAAKqC,cAAiC,mBACtCD,GACAA,EAAUV,QAEd,KACJ,CACA,IAAK,OAAQ,CACT,MAAMd,EACFZ,EAAKa,iBAAoC,mBACzCD,EAAUE,QACVF,EAAUA,EAAUE,OAAS,GAAGY,QAEpC,KACJ,EAER,CAnGIY,CAAYR,EAAW9B,EAAMQ,EACjC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useState as t,useCallback as o}from"react";const e=(e,a)=>{const[r,l]=t((
|
|
1
|
+
import{useState as t,useCallback as o}from"react";const e=(e,a)=>{const[r,l]=t(()=>typeof window>"u"||!localStorage?a:JSON.parse(localStorage.getItem(e)||"null")||a);return[r,o(t=>{l(o=>{const a="function"==typeof t?t(o):t;return typeof window<"u"&&localStorage&&localStorage.setItem(e,JSON.stringify(a)),a})},[e])]};export{e as useLocalStorage};
|
|
2
2
|
//# sourceMappingURL=useLocalStorage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLocalStorage.js","sources":["../../../../src/hooks/useLocalStorage/useLocalStorage.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport const useLocalStorage = <T>(\n key: string,\n defaultValue: T,\n): [T, React.Dispatch<React.SetStateAction<T>>] => {\n const [state, setState] = useState<T>(() => {\n if (typeof window === \"undefined\" || !localStorage) {\n return defaultValue;\n }\n const storedValue = JSON.parse(localStorage.getItem(key) || \"null\");\n return storedValue || defaultValue;\n });\n\n const updateState: React.Dispatch<React.SetStateAction<T>> = useCallback(\n (setStateAction: React.SetStateAction<T>) => {\n setState((previousValue) => {\n const newValue =\n typeof setStateAction === \"function\"\n ? (setStateAction as (prevState: T) => T)(previousValue)\n : setStateAction;\n\n if (typeof window !== \"undefined\" && localStorage) {\n localStorage.setItem(key, JSON.stringify(newValue));\n }\n\n return newValue;\n });\n },\n [key],\n );\n\n return [state, updateState];\n};\n"],"names":["useLocalStorage","key","defaultValue","state","setState","useState","window","localStorage","JSON","parse","getItem","useCallback","setStateAction","previousValue","newValue","setItem","stringify"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useLocalStorage.js","sources":["../../../../src/hooks/useLocalStorage/useLocalStorage.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport const useLocalStorage = <T>(\n key: string,\n defaultValue: T,\n): [T, React.Dispatch<React.SetStateAction<T>>] => {\n const [state, setState] = useState<T>(() => {\n if (typeof window === \"undefined\" || !localStorage) {\n return defaultValue;\n }\n const storedValue = JSON.parse(localStorage.getItem(key) || \"null\");\n return storedValue || defaultValue;\n });\n\n const updateState: React.Dispatch<React.SetStateAction<T>> = useCallback(\n (setStateAction: React.SetStateAction<T>) => {\n setState((previousValue) => {\n const newValue =\n typeof setStateAction === \"function\"\n ? (setStateAction as (prevState: T) => T)(previousValue)\n : setStateAction;\n\n if (typeof window !== \"undefined\" && localStorage) {\n localStorage.setItem(key, JSON.stringify(newValue));\n }\n\n return newValue;\n });\n },\n [key],\n );\n\n return [state, updateState];\n};\n"],"names":["useLocalStorage","key","defaultValue","state","setState","useState","window","localStorage","JSON","parse","getItem","useCallback","setStateAction","previousValue","newValue","setItem","stringify"],"mappings":"kDAEO,MAAMA,EAAkB,CAC3BC,EACAC,KAEA,MAAOC,EAAOC,GAAYC,EAAY,WACvBC,OAAW,MAAgBC,aAC3BL,EAESM,KAAKC,MAAMF,aAAaG,QAAQT,IAAQ,SACtCC,GAqB1B,MAAO,CAACC,EAlBqDQ,EACxDC,IACGR,EAAUS,IACN,MAAMC,EACwB,mBAAnBF,EACAA,EAAuCC,GACxCD,EAEV,cAAWN,OAAW,KAAeC,cACjCA,aAAaQ,QAAQd,EAAKO,KAAKQ,UAAUF,IAGtCA,KAGf,CAACb"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRef as e,useEffect as t}from"react";const r=()=>typeof window<"u"&&typeof MutationObserver<"u",n=(n,o,s)=>{const u=e(null);t((
|
|
1
|
+
import{useRef as e,useEffect as t}from"react";const r=()=>typeof window<"u"&&typeof MutationObserver<"u",n=(n,o,s)=>{const u=e(null);t(()=>{let e=u.current;if(r()){const t=n.current;e&&e.disconnect(),e=new MutationObserver(o),t&&e.observe(t,s)}return()=>{r()&&e&&e.disconnect()}},[n,o,s])};export{n as useMutationObserver};
|
|
2
2
|
//# sourceMappingURL=useMutationObserver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMutationObserver.js","sources":["../../../../src/hooks/useMutationObserver/useMutationObserver.ts"],"sourcesContent":["import { type RefObject, useEffect, useRef } from \"react\";\n\nconst hasWindowWithMutationObserver = () =>\n typeof window !== \"undefined\" && typeof MutationObserver !== \"undefined\";\n\n/**\n * Hook som gjør det enklere å sjekke en komponents children for endringer.\n *\n * @param targetRef Container som skal observeres. Containeren må ikke rerendres, da vil observereren bli opprettet på nytt.\n * @param onObservation Callback-funksjon som utføres når en mutasjon observeres.\n * @param config Parametere til observereren. Se https://developer.mozilla.org/en-US/docs/Web/API/MutationObserverInit#properties for mer info.\n */\nexport const useMutationObserver = (\n targetRef: RefObject<HTMLElement | null>,\n onObservation: MutationCallback,\n config?: Partial<MutationObserverInit>,\n): void => {\n const observerRef = useRef<MutationObserver>(null);\n\n useEffect(() => {\n let observer = observerRef.current;\n\n if (hasWindowWithMutationObserver()) {\n const target = targetRef.current;\n\n if (observer) {\n observer.disconnect();\n }\n\n observer = new MutationObserver(onObservation);\n\n if (target) {\n observer.observe(target, config);\n }\n }\n return () => {\n if (hasWindowWithMutationObserver() && observer) {\n observer.disconnect();\n }\n };\n }, [targetRef, onObservation, config]);\n};\n"],"names":["hasWindowWithMutationObserver","window","MutationObserver","useMutationObserver","targetRef","onObservation","config","observerRef","useRef","useEffect","observer","current","target","disconnect","observe"],"mappings":"8CAEA,MAAMA,EAAgC,WAC3BC,OAAW,YAAsBC,iBAAqB,IASpDC,EAAsB,CAC/BC,EACAC,EACAC,
|
|
1
|
+
{"version":3,"file":"useMutationObserver.js","sources":["../../../../src/hooks/useMutationObserver/useMutationObserver.ts"],"sourcesContent":["import { type RefObject, useEffect, useRef } from \"react\";\n\nconst hasWindowWithMutationObserver = () =>\n typeof window !== \"undefined\" && typeof MutationObserver !== \"undefined\";\n\n/**\n * Hook som gjør det enklere å sjekke en komponents children for endringer.\n *\n * @param targetRef Container som skal observeres. Containeren må ikke rerendres, da vil observereren bli opprettet på nytt.\n * @param onObservation Callback-funksjon som utføres når en mutasjon observeres.\n * @param config Parametere til observereren. Se https://developer.mozilla.org/en-US/docs/Web/API/MutationObserverInit#properties for mer info.\n */\nexport const useMutationObserver = (\n targetRef: RefObject<HTMLElement | null>,\n onObservation: MutationCallback,\n config?: Partial<MutationObserverInit>,\n): void => {\n const observerRef = useRef<MutationObserver>(null);\n\n useEffect(() => {\n let observer = observerRef.current;\n\n if (hasWindowWithMutationObserver()) {\n const target = targetRef.current;\n\n if (observer) {\n observer.disconnect();\n }\n\n observer = new MutationObserver(onObservation);\n\n if (target) {\n observer.observe(target, config);\n }\n }\n return () => {\n if (hasWindowWithMutationObserver() && observer) {\n observer.disconnect();\n }\n };\n }, [targetRef, onObservation, config]);\n};\n"],"names":["hasWindowWithMutationObserver","window","MutationObserver","useMutationObserver","targetRef","onObservation","config","observerRef","useRef","useEffect","observer","current","target","disconnect","observe"],"mappings":"8CAEA,MAAMA,EAAgC,WAC3BC,OAAW,YAAsBC,iBAAqB,IASpDC,EAAsB,CAC/BC,EACAC,EACAC,KAEA,MAAMC,EAAcC,EAAyB,MAE7CC,EAAU,KACN,IAAIC,EAAWH,EAAYI,QAE3B,GAAIX,IAAiC,CACjC,MAAMY,EAASR,EAAUO,QAErBD,GACAA,EAASG,aAGbH,EAAW,IAAIR,iBAAiBG,GAE5BO,GACAF,EAASI,QAAQF,EAAQN,EAEjC,CACA,MAAO,KACCN,KAAmCU,GACnCA,EAASG,eAGlB,CAACT,EAAWC,EAAeC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRef as e,useEffect as r}from"react";const s=s=>{const t=e();return r((
|
|
1
|
+
import{useRef as e,useEffect as r}from"react";const s=s=>{const t=e();return r(()=>{t.current=s}),t.current};export{s as usePreviousValue};
|
|
2
2
|
//# sourceMappingURL=usePreviousValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreviousValue.js","sources":["../../../../src/hooks/usePreviousValue/usePreviousValue.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\n/**\n * Lar deg huske en verdi fra forrige render.\n * @param value Verdien som skal huskes.\n * @returns Forrige render av verdien, eller undefined første render.\n */\nexport const usePreviousValue = <T>(value: T): T | undefined => {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n });\n\n return ref.current;\n};\n"],"names":["usePreviousValue","value","ref","useRef","useEffect","current"],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePreviousValue.js","sources":["../../../../src/hooks/usePreviousValue/usePreviousValue.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\n/**\n * Lar deg huske en verdi fra forrige render.\n * @param value Verdien som skal huskes.\n * @returns Forrige render av verdien, eller undefined første render.\n */\nexport const usePreviousValue = <T>(value: T): T | undefined => {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n });\n\n return ref.current;\n};\n"],"names":["usePreviousValue","value","ref","useRef","useEffect","current"],"mappings":"8CAOO,MAAMA,EAAuBC,IAChC,MAAMC,EAAMC,IAEZ,OAAAC,EAAU,KACNF,EAAIG,QAAUJ,IAGXC,EAAIG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useState as r,useEffect as s}from"react";const e=({lowQualitySrc:e,highQualitySrc:t})=>{const[o,a]=r(e);return s((
|
|
1
|
+
import{useState as r,useEffect as s}from"react";const e=({lowQualitySrc:e,highQualitySrc:t})=>{const[o,a]=r(e);return s(()=>{a(e);const r=new Image;r.src=t,r.onload=()=>{a(t)}},[e,t]),{src:o,isBlurred:o===e}};export{e as useProgressiveImg};
|
|
2
2
|
//# sourceMappingURL=useProgressiveImg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProgressiveImg.js","sources":["../../../../src/hooks/useProgressiveImg/useProgressiveImg.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nexport interface ProgressiveImageProps {\n lowQualitySrc: string;\n highQualitySrc: string;\n}\n\ntype ProgressiveImage = { src: string; isBlurred: boolean };\n\nexport const useProgressiveImg = ({\n lowQualitySrc,\n highQualitySrc,\n}: ProgressiveImageProps): ProgressiveImage => {\n const [src, setSrc] = useState(lowQualitySrc);\n\n useEffect(() => {\n setSrc(lowQualitySrc);\n const img = new Image();\n img.src = highQualitySrc;\n\n img.onload = () => {\n setSrc(highQualitySrc);\n };\n }, [lowQualitySrc, highQualitySrc]);\n\n return { src, isBlurred: src === lowQualitySrc };\n};\n"],"names":["useProgressiveImg","lowQualitySrc","highQualitySrc","src","setSrc","useState","useEffect","img","Image","onload","isBlurred"],"mappings":"gDASO,MAAMA,EAAoB,EAC7BC,cAAAA,EACAC,eAAAA,MAEA,MAAOC,EAAKC,GAAUC,EAASJ,GAE/B,OAAAK,
|
|
1
|
+
{"version":3,"file":"useProgressiveImg.js","sources":["../../../../src/hooks/useProgressiveImg/useProgressiveImg.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nexport interface ProgressiveImageProps {\n lowQualitySrc: string;\n highQualitySrc: string;\n}\n\ntype ProgressiveImage = { src: string; isBlurred: boolean };\n\nexport const useProgressiveImg = ({\n lowQualitySrc,\n highQualitySrc,\n}: ProgressiveImageProps): ProgressiveImage => {\n const [src, setSrc] = useState(lowQualitySrc);\n\n useEffect(() => {\n setSrc(lowQualitySrc);\n const img = new Image();\n img.src = highQualitySrc;\n\n img.onload = () => {\n setSrc(highQualitySrc);\n };\n }, [lowQualitySrc, highQualitySrc]);\n\n return { src, isBlurred: src === lowQualitySrc };\n};\n"],"names":["useProgressiveImg","lowQualitySrc","highQualitySrc","src","setSrc","useState","useEffect","img","Image","onload","isBlurred"],"mappings":"gDASO,MAAMA,EAAoB,EAC7BC,cAAAA,EACAC,eAAAA,MAEA,MAAOC,EAAKC,GAAUC,EAASJ,GAE/B,OAAAK,EAAU,KACNF,EAAOH,GACP,MAAMM,EAAM,IAAIC,MAChBD,EAAIJ,IAAMD,EAEVK,EAAIE,OAAS,KACTL,EAAOF,KAEZ,CAACD,EAAeC,IAEZ,CAAEC,IAAAA,EAAKO,UAAWP,IAAQF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sources":["../../../../src/hooks/useScreen/state.ts"],"sourcesContent":["export interface ScreenState {\n isSmallDevice: boolean;\n isMediumDevice: boolean;\n isLargeDevice: boolean;\n isXlDevice: boolean;\n isLandscape: boolean;\n isPortrait: boolean;\n}\n\nexport const ActionType = {\n orientation: \"ORIENTATION_CHANGED\",\n deviceSize: \"DEVICE_SIZE_CHANGED\",\n} as const;\n\nexport interface ScreenAction {\n type: (typeof ActionType)[keyof typeof ActionType];\n property: keyof ScreenState;\n}\n\nfunction setDeviceSize(\n deviceSize: keyof ScreenState,\n): Omit<ScreenState, \"isLandscape\" | \"isPortrait\"> {\n return {\n isSmallDevice: deviceSize === \"isSmallDevice\",\n isMediumDevice: deviceSize === \"isMediumDevice\",\n isLargeDevice: deviceSize === \"isLargeDevice\",\n isXlDevice: deviceSize === \"isXlDevice\",\n };\n}\n\nfunction setOrientation(\n orientation: keyof ScreenState,\n): Pick<ScreenState, \"isLandscape\" | \"isPortrait\"> {\n return {\n isLandscape: orientation === \"isLandscape\",\n isPortrait: orientation === \"isPortrait\",\n };\n}\n\nexport const reducer = (\n state: ScreenState,\n action: ScreenAction,\n): ScreenState => {\n switch (action.type) {\n case ActionType.orientation:\n return {\n ...state,\n ...setOrientation(action.property),\n };\n case ActionType.deviceSize:\n return {\n ...state,\n ...setDeviceSize(action.property),\n };\n default:\n return state;\n }\n};\n"],"names":["ActionType","orientation","deviceSize","setDeviceSize","isSmallDevice","isMediumDevice","isLargeDevice","isXlDevice","setOrientation","isLandscape","isPortrait","reducer","state","action","type","property"],"mappings":"AASO,MAAMA,EAAa,CACtBC,YAAa,sBACbC,WAAY,uBAQhB,SAASC,EACLD,
|
|
1
|
+
{"version":3,"file":"state.js","sources":["../../../../src/hooks/useScreen/state.ts"],"sourcesContent":["export interface ScreenState {\n isSmallDevice: boolean;\n isMediumDevice: boolean;\n isLargeDevice: boolean;\n isXlDevice: boolean;\n isLandscape: boolean;\n isPortrait: boolean;\n}\n\nexport const ActionType = {\n orientation: \"ORIENTATION_CHANGED\",\n deviceSize: \"DEVICE_SIZE_CHANGED\",\n} as const;\n\nexport interface ScreenAction {\n type: (typeof ActionType)[keyof typeof ActionType];\n property: keyof ScreenState;\n}\n\nfunction setDeviceSize(\n deviceSize: keyof ScreenState,\n): Omit<ScreenState, \"isLandscape\" | \"isPortrait\"> {\n return {\n isSmallDevice: deviceSize === \"isSmallDevice\",\n isMediumDevice: deviceSize === \"isMediumDevice\",\n isLargeDevice: deviceSize === \"isLargeDevice\",\n isXlDevice: deviceSize === \"isXlDevice\",\n };\n}\n\nfunction setOrientation(\n orientation: keyof ScreenState,\n): Pick<ScreenState, \"isLandscape\" | \"isPortrait\"> {\n return {\n isLandscape: orientation === \"isLandscape\",\n isPortrait: orientation === \"isPortrait\",\n };\n}\n\nexport const reducer = (\n state: ScreenState,\n action: ScreenAction,\n): ScreenState => {\n switch (action.type) {\n case ActionType.orientation:\n return {\n ...state,\n ...setOrientation(action.property),\n };\n case ActionType.deviceSize:\n return {\n ...state,\n ...setDeviceSize(action.property),\n };\n default:\n return state;\n }\n};\n"],"names":["ActionType","orientation","deviceSize","setDeviceSize","isSmallDevice","isMediumDevice","isLargeDevice","isXlDevice","setOrientation","isLandscape","isPortrait","reducer","state","action","type","property"],"mappings":"AASO,MAAMA,EAAa,CACtBC,YAAa,sBACbC,WAAY,uBAQhB,SAASC,EACLD,GAEA,MAAO,CACHE,cAA8B,kBAAfF,EACfG,eAA+B,mBAAfH,EAChBI,cAA8B,kBAAfJ,EACfK,WAA2B,eAAfL,EAEpB,CAEA,SAASM,EACLP,GAEA,MAAO,CACHQ,YAA6B,gBAAhBR,EACbS,WAA4B,eAAhBT,EAEpB,CAEO,MAAMU,EAAU,CACnBC,EACAC,KAEA,OAAQA,EAAOC,MACX,KAAKd,EAAWC,YACZ,MAAO,IACAW,KACAJ,EAAeK,EAAOE,WAEjC,KAAKf,EAAWE,WACZ,MAAO,IACAU,KACAT,EAAcU,EAAOE,WAEhC,QACI,OAAOH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useState as e,useReducer as i,useEffect as t,useCallback as a}from"react";import r from"../../core/tokens.js";import{getInitialMediaQueryMatch as s,addMediaQueryListener as o,removeMediaQueryListener as n}from"../mediaQueryUtils.js";import{reducer as c,ActionType as m}from"./state.js";const{breakpoint:d}=r,p=e=>Number.parseInt(e.replace("px","")),u={isSmallDevice:`(max-width: ${p(d.medium)-1}px)`,isMediumDevice:`(min-width: ${d.medium}) and (max-width: ${p(d.large)-1}px)`,isLargeDevice:`(min-width: ${d.large}) and (max-width: ${p(d.xl)-1}px)`,isXlDevice:`(min-width: ${d.xl})`,isPortrait:"(orientation: portrait)",isLandscape:"(orientation: landscape)"},l=e=>({type:"isLandscape"===e||"isPortrait"===e?m.orientation:m.deviceSize,property:e}),f=()=>{const[r,m]=e(!1),[d,p]=i(c,{isSmallDevice:!1,isMediumDevice:!1,isLargeDevice:!1,isXlDevice:!1,isLandscape:!1,isPortrait:!1});t((
|
|
1
|
+
import{useState as e,useReducer as i,useEffect as t,useCallback as a}from"react";import r from"../../core/tokens.js";import{getInitialMediaQueryMatch as s,addMediaQueryListener as o,removeMediaQueryListener as n}from"../mediaQueryUtils.js";import{reducer as c,ActionType as m}from"./state.js";const{breakpoint:d}=r,p=e=>Number.parseInt(e.replace("px","")),u={isSmallDevice:`(max-width: ${p(d.medium)-1}px)`,isMediumDevice:`(min-width: ${d.medium}) and (max-width: ${p(d.large)-1}px)`,isLargeDevice:`(min-width: ${d.large}) and (max-width: ${p(d.xl)-1}px)`,isXlDevice:`(min-width: ${d.xl})`,isPortrait:"(orientation: portrait)",isLandscape:"(orientation: landscape)"},l=e=>({type:"isLandscape"===e||"isPortrait"===e?m.orientation:m.deviceSize,property:e}),f=()=>{const[r,m]=e(!1),[d,p]=i(c,{isSmallDevice:!1,isMediumDevice:!1,isLargeDevice:!1,isXlDevice:!1,isLandscape:!1,isPortrait:!1});t(()=>{m(!0);const e=Object.entries(u).map(([e,i])=>[e,s(i)]);for(const[i,t]of e)t&&p(l(i))},[]);const f=a(e=>i=>{requestAnimationFrame(()=>{i.matches&&p(l(e))})},[]);return t(()=>{if(!r||!window.matchMedia)return;const e=[];for(const[i,t]of Object.entries(u)){const a=window.matchMedia(t),r=f(i);e.push([a,r]),o(a,r)}return()=>{for(const[i,t]of e)n(i,t)}},[f,r]),{...d}};export{f as useScreen};
|
|
2
2
|
//# sourceMappingURL=useScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScreen.js","sources":["../../../../src/hooks/useScreen/useScreen.ts"],"sourcesContent":["import { useCallback, useEffect, useReducer, useState } from \"react\";\nimport { tokens } from \"../../core/index.js\";\nimport {\n addMediaQueryListener,\n getInitialMediaQueryMatch,\n removeMediaQueryListener,\n} from \"../mediaQueryUtils.js\";\nimport {\n ActionType,\n type ScreenAction,\n type ScreenState,\n reducer,\n} from \"./state.js\";\n\nconst { breakpoint } = tokens;\n\nconst breakpointsAsNumber = (breakpoint: string): number =>\n Number.parseInt(breakpoint.replace(\"px\", \"\"));\n\nconst MEDIA_RULES: Record<keyof ScreenState, string> = {\n isSmallDevice: `(max-width: ${\n breakpointsAsNumber(breakpoint.medium) - 1\n }px)`,\n isMediumDevice: `(min-width: ${breakpoint.medium}) and (max-width: ${\n breakpointsAsNumber(breakpoint.large) - 1\n }px)`,\n isLargeDevice: `(min-width: ${breakpoint.large}) and (max-width: ${\n breakpointsAsNumber(breakpoint.xl) - 1\n }px)`,\n isXlDevice: `(min-width: ${breakpoint.xl})`,\n isPortrait: \"(orientation: portrait)\",\n isLandscape: \"(orientation: landscape)\",\n};\n\nconst createAction = (property: keyof ScreenState): ScreenAction => ({\n type:\n property === \"isLandscape\" || property === \"isPortrait\"\n ? ActionType.orientation\n : ActionType.deviceSize,\n property,\n});\n\n/**\n * Finn størrelsen og orienteringen til skjermen.\n * @returns Et objekt med boolean som indikerer om skjermstørrelsen er liten, medium, stor eller ekstra stor, og om skjermen er i portrett- eller landskapsmodus.\n */\nexport const useScreen = (): ScreenState => {\n const [hasMounted, setHasMounted] = useState(false);\n\n const [device, deviceDispatch] = useReducer(reducer, {\n isSmallDevice: false,\n isMediumDevice: false,\n isLargeDevice: false,\n isXlDevice: false,\n isLandscape: false,\n isPortrait: false,\n });\n\n useEffect(() => {\n setHasMounted(true);\n const initialMatches = Object.entries(MEDIA_RULES).map(\n ([key, rule]) => [key, getInitialMediaQueryMatch(rule)],\n );\n\n for (const [key, value] of initialMatches) {\n if (value) {\n deviceDispatch(createAction(key as keyof ScreenState));\n }\n }\n }, []);\n\n const createListener = useCallback(\n (key: keyof ScreenState) => (e: MediaQueryListEvent) => {\n requestAnimationFrame(() => {\n if (e.matches) {\n deviceDispatch(createAction(key));\n }\n });\n },\n [],\n );\n\n useEffect(() => {\n if (!hasMounted || !window.matchMedia) {\n return;\n }\n const eventListenerPairs: Array<\n [MediaQueryList, (e: MediaQueryListEvent) => void]\n > = [];\n\n for (const [key, rule] of Object.entries(MEDIA_RULES)) {\n const queryList = window.matchMedia(rule);\n const listener = createListener(key as keyof ScreenState);\n eventListenerPairs.push([queryList, listener]);\n addMediaQueryListener(queryList, listener);\n }\n\n return () => {\n for (const [queryList, listener] of eventListenerPairs) {\n removeMediaQueryListener(queryList, listener);\n }\n };\n }, [createListener, hasMounted]);\n\n return { ...device };\n};\n"],"names":["breakpoint","tokens","breakpointsAsNumber","Number","parseInt","replace","MEDIA_RULES","isSmallDevice","medium","isMediumDevice","large","isLargeDevice","xl","isXlDevice","isPortrait","isLandscape","createAction","property","type","ActionType","orientation","deviceSize","useScreen","hasMounted","setHasMounted","useState","device","deviceDispatch","useReducer","reducer","useEffect","initialMatches","Object","entries","map","key","rule","getInitialMediaQueryMatch","value","createListener","useCallback","e","requestAnimationFrame","matches","window","matchMedia","eventListenerPairs","queryList","listener","push","addMediaQueryListener","removeMediaQueryListener"],"mappings":"qSAcA,MAAQA,WAAAA,GAAeC,EAEjBC,EAAuBF,GACzBG,OAAOC,SAASJ,EAAWK,QAAQ,KAAM,KAEvCC,EAAiD,CACnDC,cAAe,eACXL,EAAoBF,EAAWQ,QAAU,OAE7CC,eAAgB,eAAeT,EAAWQ,2BACtCN,EAAoBF,EAAWU,OAAS,OAE5CC,cAAe,eAAeX,EAAWU,0BACrCR,EAAoBF,EAAWY,IAAM,OAEzCC,WAAY,eAAeb,EAAWY,MACtCE,WAAY,0BACZC,YAAa,4BAGXC,EAAgBC,
|
|
1
|
+
{"version":3,"file":"useScreen.js","sources":["../../../../src/hooks/useScreen/useScreen.ts"],"sourcesContent":["import { useCallback, useEffect, useReducer, useState } from \"react\";\nimport { tokens } from \"../../core/index.js\";\nimport {\n addMediaQueryListener,\n getInitialMediaQueryMatch,\n removeMediaQueryListener,\n} from \"../mediaQueryUtils.js\";\nimport {\n ActionType,\n type ScreenAction,\n type ScreenState,\n reducer,\n} from \"./state.js\";\n\nconst { breakpoint } = tokens;\n\nconst breakpointsAsNumber = (breakpoint: string): number =>\n Number.parseInt(breakpoint.replace(\"px\", \"\"));\n\nconst MEDIA_RULES: Record<keyof ScreenState, string> = {\n isSmallDevice: `(max-width: ${\n breakpointsAsNumber(breakpoint.medium) - 1\n }px)`,\n isMediumDevice: `(min-width: ${breakpoint.medium}) and (max-width: ${\n breakpointsAsNumber(breakpoint.large) - 1\n }px)`,\n isLargeDevice: `(min-width: ${breakpoint.large}) and (max-width: ${\n breakpointsAsNumber(breakpoint.xl) - 1\n }px)`,\n isXlDevice: `(min-width: ${breakpoint.xl})`,\n isPortrait: \"(orientation: portrait)\",\n isLandscape: \"(orientation: landscape)\",\n};\n\nconst createAction = (property: keyof ScreenState): ScreenAction => ({\n type:\n property === \"isLandscape\" || property === \"isPortrait\"\n ? ActionType.orientation\n : ActionType.deviceSize,\n property,\n});\n\n/**\n * Finn størrelsen og orienteringen til skjermen.\n * @returns Et objekt med boolean som indikerer om skjermstørrelsen er liten, medium, stor eller ekstra stor, og om skjermen er i portrett- eller landskapsmodus.\n */\nexport const useScreen = (): ScreenState => {\n const [hasMounted, setHasMounted] = useState(false);\n\n const [device, deviceDispatch] = useReducer(reducer, {\n isSmallDevice: false,\n isMediumDevice: false,\n isLargeDevice: false,\n isXlDevice: false,\n isLandscape: false,\n isPortrait: false,\n });\n\n useEffect(() => {\n setHasMounted(true);\n const initialMatches = Object.entries(MEDIA_RULES).map(\n ([key, rule]) => [key, getInitialMediaQueryMatch(rule)],\n );\n\n for (const [key, value] of initialMatches) {\n if (value) {\n deviceDispatch(createAction(key as keyof ScreenState));\n }\n }\n }, []);\n\n const createListener = useCallback(\n (key: keyof ScreenState) => (e: MediaQueryListEvent) => {\n requestAnimationFrame(() => {\n if (e.matches) {\n deviceDispatch(createAction(key));\n }\n });\n },\n [],\n );\n\n useEffect(() => {\n if (!hasMounted || !window.matchMedia) {\n return;\n }\n const eventListenerPairs: Array<\n [MediaQueryList, (e: MediaQueryListEvent) => void]\n > = [];\n\n for (const [key, rule] of Object.entries(MEDIA_RULES)) {\n const queryList = window.matchMedia(rule);\n const listener = createListener(key as keyof ScreenState);\n eventListenerPairs.push([queryList, listener]);\n addMediaQueryListener(queryList, listener);\n }\n\n return () => {\n for (const [queryList, listener] of eventListenerPairs) {\n removeMediaQueryListener(queryList, listener);\n }\n };\n }, [createListener, hasMounted]);\n\n return { ...device };\n};\n"],"names":["breakpoint","tokens","breakpointsAsNumber","Number","parseInt","replace","MEDIA_RULES","isSmallDevice","medium","isMediumDevice","large","isLargeDevice","xl","isXlDevice","isPortrait","isLandscape","createAction","property","type","ActionType","orientation","deviceSize","useScreen","hasMounted","setHasMounted","useState","device","deviceDispatch","useReducer","reducer","useEffect","initialMatches","Object","entries","map","key","rule","getInitialMediaQueryMatch","value","createListener","useCallback","e","requestAnimationFrame","matches","window","matchMedia","eventListenerPairs","queryList","listener","push","addMediaQueryListener","removeMediaQueryListener"],"mappings":"qSAcA,MAAQA,WAAAA,GAAeC,EAEjBC,EAAuBF,GACzBG,OAAOC,SAASJ,EAAWK,QAAQ,KAAM,KAEvCC,EAAiD,CACnDC,cAAe,eACXL,EAAoBF,EAAWQ,QAAU,OAE7CC,eAAgB,eAAeT,EAAWQ,2BACtCN,EAAoBF,EAAWU,OAAS,OAE5CC,cAAe,eAAeX,EAAWU,0BACrCR,EAAoBF,EAAWY,IAAM,OAEzCC,WAAY,eAAeb,EAAWY,MACtCE,WAAY,0BACZC,YAAa,4BAGXC,EAAgBC,IAAAA,CAClBC,KACiB,gBAAbD,GAA2C,eAAbA,EACxBE,EAAWC,YACXD,EAAWE,WACrBJ,SAAAA,IAOSK,EAAY,KACrB,MAAOC,EAAYC,GAAiBC,GAAS,IAEtCC,EAAQC,GAAkBC,EAAWC,EAAS,CACjDtB,eAAe,EACfE,gBAAgB,EAChBE,eAAe,EACfE,YAAY,EACZE,aAAa,EACbD,YAAY,IAGhBgB,EAAU,KACNN,GAAc,GACd,MAAMO,EAAiBC,OAAOC,QAAQ3B,GAAa4B,IAC/C,EAAEC,EAAKC,KAAU,CAACD,EAAKE,EAA0BD,KAGrD,IAAA,MAAYD,EAAKG,KAAUP,EACnBO,GACAX,EAAeX,EAAamB,KAGrC,IAEH,MAAMI,EAAiBC,EAClBL,GAA4BM,IACzBC,sBAAsB,KACdD,EAAEE,SACFhB,EAAeX,EAAamB,OAIxC,IAGJ,OAAAL,EAAU,KACN,IAAKP,IAAeqB,OAAOC,WACvB,OAEJ,MAAMC,EAEF,GAEJ,IAAA,MAAYX,EAAKC,KAASJ,OAAOC,QAAQ3B,GAAc,CACnD,MAAMyC,EAAYH,OAAOC,WAAWT,GAC9BY,EAAWT,EAAeJ,GAChCW,EAAmBG,KAAK,CAACF,EAAWC,IACpCE,EAAsBH,EAAWC,EACrC,CAEA,MAAO,KACH,IAAA,MAAYD,EAAWC,KAAaF,EAChCK,EAAyBJ,EAAWC,KAG7C,CAACT,EAAgBhB,IAEb,IAAKG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useEffect as t}from"react";const o=({ref:o,timeout:r=0,autoScroll:e=!0,options:c={behavior:"smooth"}})=>{const n=()=>{o?.current&&o.current.scrollIntoView(c)};return t((
|
|
1
|
+
import{useEffect as t}from"react";const o=({ref:o,timeout:r=0,autoScroll:e=!0,options:c={behavior:"smooth"}})=>{const n=()=>{o?.current&&o.current.scrollIntoView(c)};return t(()=>{if(!e)return;const t=setTimeout(n,r);return()=>clearTimeout(t)},[o,r,e]),[n]};export{o as useScrollIntoView};
|
|
2
2
|
//# sourceMappingURL=useScrollIntoView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollIntoView.js","sources":["../../../../src/hooks/useScrollIntoView/useScrollIntoView.tsx"],"sourcesContent":["import { type RefObject, useEffect } from \"react\";\n\ntype ValueOf<T> = T[keyof T];\n\nexport interface ScrollIntoViewProps {\n ref: RefObject<ValueOf<HTMLElementTagNameMap> | null> | null;\n timeout?: number;\n autoScroll?: boolean;\n options?: ScrollIntoViewOptions;\n}\n\ntype ScrollFunction = () => void;\n\nexport const useScrollIntoView = ({\n ref,\n timeout = 0,\n autoScroll = true,\n options = { behavior: \"smooth\" },\n}: ScrollIntoViewProps): [ScrollFunction] => {\n const scrollIntoView: ScrollFunction = () => {\n if (ref?.current) {\n ref.current.scrollIntoView(options);\n }\n };\n\n // biome-ignore lint/correctness/useExhaustiveDependencies:\n useEffect(() => {\n if (!autoScroll) {\n return;\n }\n const scrollFn = setTimeout(scrollIntoView, timeout);\n return () => clearTimeout(scrollFn);\n }, [ref, timeout, autoScroll]);\n\n return [scrollIntoView];\n};\n"],"names":["useScrollIntoView","ref","timeout","autoScroll","options","behavior","scrollIntoView","current","useEffect","scrollFn","setTimeout","clearTimeout"],"mappings":"kCAaO,MAAMA,EAAoB,EAC7BC,IAAAA,EACAC,QAAAA,EAAU,EACVC,WAAAA,GAAa,EACbC,QAAAA,EAAU,CAAEC,SAAU,cAEtB,MAAMC,EAAiC,KAC/BL,GAAKM,
|
|
1
|
+
{"version":3,"file":"useScrollIntoView.js","sources":["../../../../src/hooks/useScrollIntoView/useScrollIntoView.tsx"],"sourcesContent":["import { type RefObject, useEffect } from \"react\";\n\ntype ValueOf<T> = T[keyof T];\n\nexport interface ScrollIntoViewProps {\n ref: RefObject<ValueOf<HTMLElementTagNameMap> | null> | null;\n timeout?: number;\n autoScroll?: boolean;\n options?: ScrollIntoViewOptions;\n}\n\ntype ScrollFunction = () => void;\n\nexport const useScrollIntoView = ({\n ref,\n timeout = 0,\n autoScroll = true,\n options = { behavior: \"smooth\" },\n}: ScrollIntoViewProps): [ScrollFunction] => {\n const scrollIntoView: ScrollFunction = () => {\n if (ref?.current) {\n ref.current.scrollIntoView(options);\n }\n };\n\n // biome-ignore lint/correctness/useExhaustiveDependencies:\n useEffect(() => {\n if (!autoScroll) {\n return;\n }\n const scrollFn = setTimeout(scrollIntoView, timeout);\n return () => clearTimeout(scrollFn);\n }, [ref, timeout, autoScroll]);\n\n return [scrollIntoView];\n};\n"],"names":["useScrollIntoView","ref","timeout","autoScroll","options","behavior","scrollIntoView","current","useEffect","scrollFn","setTimeout","clearTimeout"],"mappings":"kCAaO,MAAMA,EAAoB,EAC7BC,IAAAA,EACAC,QAAAA,EAAU,EACVC,WAAAA,GAAa,EACbC,QAAAA,EAAU,CAAEC,SAAU,cAEtB,MAAMC,EAAiC,KAC/BL,GAAKM,SACLN,EAAIM,QAAQD,eAAeF,IAKnC,OAAAI,EAAU,KACN,IAAKL,EACD,OAEJ,MAAMM,EAAWC,WAAWJ,EAAgBJ,GAC5C,MAAO,IAAMS,aAAaF,IAC3B,CAACR,EAAKC,EAASC,IAEX,CAACG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRef as e,useCallback as n}from"react";function r(e){return{x:e.clientX,y:e.clientY}}function t(t){const o=e(!1),u=e(),{onClick:c,onChange:i,onPointerCancel:a,onPointerDown:p,onPointerMove:l,onPointerUp:s}=t,f=n(
|
|
1
|
+
import{useRef as e,useCallback as n}from"react";function r(e){return{x:e.clientX,y:e.clientY}}function t(t){const o=e(!1),u=e(),{onClick:c,onChange:i,onPointerCancel:a,onPointerDown:p,onPointerMove:l,onPointerUp:s}=t,f=n(e=>{o.current||c?.(e),o.current=!1},[c]),P=n(e=>{e.preventDefault(),e.target.setPointerCapture?.(e.pointerId),u.current=r(e),o.current=!1,p?.(e)},[p]),C=n(e=>{if(e.preventDefault(),!u.current)return;const{x:n}=r(e),{x:t}=u.current;n-t>10&&i&&"on"!==o.current?(i(e,!0),o.current="on",u.current=r(e)):t-n>10&&i&&"off"!==o.current&&(i(e,!1),o.current="off",u.current=r(e)),l?.(e)},[l,i]),d=n(e=>{e.preventDefault(),e.target.releasePointerCapture?.(e.pointerId),u.current=void 0,"pointerup"===e.type?s?.(e):a?.(e)},[s,a]);return{swipeHandled:o,gestureHandlers:{onClick:f,onPointerDown:P,onPointerMove:C,onPointerUp:d,onPointerCancel:d}}}export{t as useSwipeGesture};
|
|
2
2
|
//# sourceMappingURL=useSwipeGesture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwipeGesture.js","sources":["../../../../src/hooks/useSwipeGesture/useSwipeGesture.ts"],"sourcesContent":["import {\n type MouseEventHandler,\n type MutableRefObject,\n type PointerEventHandler,\n useCallback,\n useRef,\n} from \"react\";\n\nexport type SwipeChangeHandler<T extends HTMLElement> = (\n event: React.MouseEvent<T> | React.PointerEvent<T>,\n pressed: boolean,\n) => void;\n\ntype Point = { x: number; y: number };\n\nfunction getGesturePointFromEvent<T extends HTMLElement>(\n event: React.PointerEvent<T>,\n): Point {\n return {\n x: event.clientX,\n y: event.clientY,\n };\n}\n\ntype SwipeGestureOptions<T extends HTMLElement> = {\n onClick?: MouseEventHandler<T>;\n onChange?: SwipeChangeHandler<T>;\n onPointerDown?: PointerEventHandler<T>;\n onPointerUp?: PointerEventHandler<T>;\n onPointerMove?: PointerEventHandler<T>;\n onPointerCancel?: PointerEventHandler<T>;\n};\n\n/**\n * Logikk for å håndtere en swipe, for eksempel brukt i toggle switch.\n *\n * @param options Callbacks for de ulike stegene i en swipe-gesture\n * @returns Handlers for de ulike stegene i en swipe-gesture\n */\nexport function useSwipeGesture<T extends HTMLElement>(\n options: SwipeGestureOptions<T>,\n): {\n swipeHandled: MutableRefObject<\"on\" | \"off\" | false>;\n gestureHandlers: {\n onClick: MouseEventHandler<T>;\n onPointerDown: PointerEventHandler<T>;\n onPointerMove: PointerEventHandler<T>;\n onPointerUp: PointerEventHandler<T>;\n onPointerCancel: PointerEventHandler<T>;\n };\n} {\n const swipeHandled = useRef<\"on\" | \"off\" | false>(false);\n const gestureStartPosition = useRef<Point>();\n\n const {\n onClick,\n onChange,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n } = options;\n\n const handleClick: MouseEventHandler<T> = useCallback(\n (event) => {\n if (!swipeHandled.current) {\n onClick?.(event);\n }\n swipeHandled.current = false; // sørg for at vi får klikke igjen etter swipes\n },\n [onClick],\n );\n\n const handleGestureStart: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n (event.target as T).setPointerCapture?.(event.pointerId);\n gestureStartPosition.current = getGesturePointFromEvent(event);\n swipeHandled.current = false;\n\n onPointerDown?.(event);\n },\n [onPointerDown],\n );\n\n const handleGestureMove: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n if (!gestureStartPosition.current) {\n return;\n }\n\n const { x: currentX } = getGesturePointFromEvent(event);\n const { x: startX } = gestureStartPosition.current;\n\n if (\n currentX - startX > 10 &&\n onChange &&\n swipeHandled.current !== \"on\"\n ) {\n onChange(event, true);\n swipeHandled.current = \"on\";\n gestureStartPosition.current = getGesturePointFromEvent(event);\n } else if (\n startX - currentX > 10 &&\n onChange &&\n swipeHandled.current !== \"off\"\n ) {\n onChange(event, false);\n swipeHandled.current = \"off\";\n gestureStartPosition.current = getGesturePointFromEvent(event);\n }\n\n onPointerMove?.(event);\n },\n [onPointerMove, onChange],\n );\n\n const handleGestureEnd: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n (event.target as T).releasePointerCapture?.(event.pointerId);\n gestureStartPosition.current = undefined;\n\n event.type === \"pointerup\"\n ? onPointerUp?.(event)\n : onPointerCancel?.(event);\n },\n [onPointerUp, onPointerCancel],\n );\n\n return {\n swipeHandled,\n gestureHandlers: {\n onClick: handleClick,\n onPointerDown: handleGestureStart,\n onPointerMove: handleGestureMove,\n onPointerUp: handleGestureEnd,\n onPointerCancel: handleGestureEnd,\n },\n };\n}\n"],"names":["getGesturePointFromEvent","event","x","clientX","y","clientY","useSwipeGesture","options","swipeHandled","useRef","gestureStartPosition","onClick","onChange","onPointerCancel","onPointerDown","onPointerMove","onPointerUp","handleClick","useCallback","current","handleGestureStart","preventDefault","target","setPointerCapture","pointerId","handleGestureMove","currentX","startX","handleGestureEnd","releasePointerCapture","type","gestureHandlers"],"mappings":"gDAeA,SAASA,EACLC,
|
|
1
|
+
{"version":3,"file":"useSwipeGesture.js","sources":["../../../../src/hooks/useSwipeGesture/useSwipeGesture.ts"],"sourcesContent":["import {\n type MouseEventHandler,\n type MutableRefObject,\n type PointerEventHandler,\n useCallback,\n useRef,\n} from \"react\";\n\nexport type SwipeChangeHandler<T extends HTMLElement> = (\n event: React.MouseEvent<T> | React.PointerEvent<T>,\n pressed: boolean,\n) => void;\n\ntype Point = { x: number; y: number };\n\nfunction getGesturePointFromEvent<T extends HTMLElement>(\n event: React.PointerEvent<T>,\n): Point {\n return {\n x: event.clientX,\n y: event.clientY,\n };\n}\n\ntype SwipeGestureOptions<T extends HTMLElement> = {\n onClick?: MouseEventHandler<T>;\n onChange?: SwipeChangeHandler<T>;\n onPointerDown?: PointerEventHandler<T>;\n onPointerUp?: PointerEventHandler<T>;\n onPointerMove?: PointerEventHandler<T>;\n onPointerCancel?: PointerEventHandler<T>;\n};\n\n/**\n * Logikk for å håndtere en swipe, for eksempel brukt i toggle switch.\n *\n * @param options Callbacks for de ulike stegene i en swipe-gesture\n * @returns Handlers for de ulike stegene i en swipe-gesture\n */\nexport function useSwipeGesture<T extends HTMLElement>(\n options: SwipeGestureOptions<T>,\n): {\n swipeHandled: MutableRefObject<\"on\" | \"off\" | false>;\n gestureHandlers: {\n onClick: MouseEventHandler<T>;\n onPointerDown: PointerEventHandler<T>;\n onPointerMove: PointerEventHandler<T>;\n onPointerUp: PointerEventHandler<T>;\n onPointerCancel: PointerEventHandler<T>;\n };\n} {\n const swipeHandled = useRef<\"on\" | \"off\" | false>(false);\n const gestureStartPosition = useRef<Point>();\n\n const {\n onClick,\n onChange,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n } = options;\n\n const handleClick: MouseEventHandler<T> = useCallback(\n (event) => {\n if (!swipeHandled.current) {\n onClick?.(event);\n }\n swipeHandled.current = false; // sørg for at vi får klikke igjen etter swipes\n },\n [onClick],\n );\n\n const handleGestureStart: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n (event.target as T).setPointerCapture?.(event.pointerId);\n gestureStartPosition.current = getGesturePointFromEvent(event);\n swipeHandled.current = false;\n\n onPointerDown?.(event);\n },\n [onPointerDown],\n );\n\n const handleGestureMove: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n if (!gestureStartPosition.current) {\n return;\n }\n\n const { x: currentX } = getGesturePointFromEvent(event);\n const { x: startX } = gestureStartPosition.current;\n\n if (\n currentX - startX > 10 &&\n onChange &&\n swipeHandled.current !== \"on\"\n ) {\n onChange(event, true);\n swipeHandled.current = \"on\";\n gestureStartPosition.current = getGesturePointFromEvent(event);\n } else if (\n startX - currentX > 10 &&\n onChange &&\n swipeHandled.current !== \"off\"\n ) {\n onChange(event, false);\n swipeHandled.current = \"off\";\n gestureStartPosition.current = getGesturePointFromEvent(event);\n }\n\n onPointerMove?.(event);\n },\n [onPointerMove, onChange],\n );\n\n const handleGestureEnd: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n (event.target as T).releasePointerCapture?.(event.pointerId);\n gestureStartPosition.current = undefined;\n\n event.type === \"pointerup\"\n ? onPointerUp?.(event)\n : onPointerCancel?.(event);\n },\n [onPointerUp, onPointerCancel],\n );\n\n return {\n swipeHandled,\n gestureHandlers: {\n onClick: handleClick,\n onPointerDown: handleGestureStart,\n onPointerMove: handleGestureMove,\n onPointerUp: handleGestureEnd,\n onPointerCancel: handleGestureEnd,\n },\n };\n}\n"],"names":["getGesturePointFromEvent","event","x","clientX","y","clientY","useSwipeGesture","options","swipeHandled","useRef","gestureStartPosition","onClick","onChange","onPointerCancel","onPointerDown","onPointerMove","onPointerUp","handleClick","useCallback","current","handleGestureStart","preventDefault","target","setPointerCapture","pointerId","handleGestureMove","currentX","startX","handleGestureEnd","releasePointerCapture","type","gestureHandlers"],"mappings":"gDAeA,SAASA,EACLC,GAEA,MAAO,CACHC,EAAGD,EAAME,QACTC,EAAGH,EAAMI,QAEjB,CAiBO,SAASC,EACZC,GAWA,MAAMC,EAAeC,GAA6B,GAC5CC,EAAuBD,KAGzBE,QAAAA,EACAC,SAAAA,EACAC,gBAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,YAAAA,GACAT,EAEEU,EAAoCC,EACrCjB,IACQO,EAAaW,SACdR,IAAUV,GAEdO,EAAaW,SAAU,GAE3B,CAACR,IAGCS,EAA6CF,EAC9CjB,IACGA,EAAMoB,iBAELpB,EAAMqB,OAAaC,oBAAoBtB,EAAMuB,WAC9Cd,EAAqBS,QAAUnB,EAAyBC,GACxDO,EAAaW,SAAU,EAEvBL,IAAgBb,IAEpB,CAACa,IAGCW,EAA4CP,EAC7CjB,IAGG,GAFAA,EAAMoB,kBAEDX,EAAqBS,QACtB,OAGJ,MAAQjB,EAAGwB,GAAa1B,EAAyBC,IACzCC,EAAGyB,GAAWjB,EAAqBS,QAGvCO,EAAWC,EAAS,IACpBf,GACyB,OAAzBJ,EAAaW,SAEbP,EAASX,GAAO,GAChBO,EAAaW,QAAU,KACvBT,EAAqBS,QAAUnB,EAAyBC,IAExD0B,EAASD,EAAW,IACpBd,GACyB,QAAzBJ,EAAaW,UAEbP,EAASX,GAAO,GAChBO,EAAaW,QAAU,MACvBT,EAAqBS,QAAUnB,EAAyBC,IAG5Dc,IAAgBd,IAEpB,CAACc,EAAeH,IAGdgB,EAA2CV,EAC5CjB,IACGA,EAAMoB,iBAELpB,EAAMqB,OAAaO,wBAAwB5B,EAAMuB,WAClDd,EAAqBS,aAAU,EAEhB,cAAflB,EAAM6B,KACAd,IAAcf,GACdY,IAAkBZ,IAE5B,CAACe,EAAaH,IAGlB,MAAO,CACHL,aAAAA,EACAuB,gBAAiB,CACbpB,QAASM,EACTH,cAAeM,EACfL,cAAeU,EACfT,YAAaY,EACbf,gBAAiBe,GAG7B"}
|
package/build/es/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{default as s}from"./core/tokens.js";import{useAnimatedDetails as e}from"./hooks/useAnimatedDetails/useAnimatedDetails.js";import{useAnimatedHeight as i}from"./hooks/useAnimatedHeight/useAnimatedHeight.js";import{useAnimatedHeightBetween as r}from"./hooks/useAnimatedHeight/useAnimatedHeightBetween.js";import{useAutoAnimatedHeight as t}from"./hooks/useAnimatedHeight/useAutoAnimateHeight.js";import{useBrowserPreferences as a}from"./hooks/useBrowserPreferences/useBrowserPreferences.js";import{useIntersectionObserver as o}from"./hooks/useIntersectionObserver/useIntersectionObserver.js";import{useLocalStorage as m}from"./hooks/useLocalStorage/useLocalStorage.js";import{useMutationObserver as u}from"./hooks/useMutationObserver/useMutationObserver.js";import{usePreviousValue as n}from"./hooks/usePreviousValue/usePreviousValue.js";import{useProgressiveImg as l}from"./hooks/useProgressiveImg/useProgressiveImg.js";import{useScreen as f}from"./hooks/useScreen/useScreen.js";import{useScrollIntoView as d}from"./hooks/useScrollIntoView/useScrollIntoView.js";import{useAriaLiveRegion as g}from"./hooks/useAriaLiveRegion/useAriaLiveRegion.js";import{useClickOutside as p}from"./hooks/useClickOutside/useClickOutside.js";import{useFocusOutside as h}from"./hooks/useFocusOutside/useFocusOutside.js";import{useElementDimensions as j}from"./hooks/useElementDimensions/useElementDimensions.js";import{useId as E}from"./hooks/useId/useId.js";import{useKeyListener as V}from"./hooks/useKeyListener/useKeyListener.js";import{useListNavigation as v}from"./hooks/useListNavigation/useListNavigation.js";import{useSwipeGesture as
|
|
1
|
+
import{default as s}from"./core/tokens.js";import{useAnimatedDetails as e}from"./hooks/useAnimatedDetails/useAnimatedDetails.js";import{useAnimatedHeight as i}from"./hooks/useAnimatedHeight/useAnimatedHeight.js";import{useAnimatedHeightBetween as r}from"./hooks/useAnimatedHeight/useAnimatedHeightBetween.js";import{useAutoAnimatedHeight as t}from"./hooks/useAnimatedHeight/useAutoAnimateHeight.js";import{useBrowserPreferences as a}from"./hooks/useBrowserPreferences/useBrowserPreferences.js";import{useIntersectionObserver as o}from"./hooks/useIntersectionObserver/useIntersectionObserver.js";import{useLocalStorage as m}from"./hooks/useLocalStorage/useLocalStorage.js";import{useMutationObserver as u}from"./hooks/useMutationObserver/useMutationObserver.js";import{usePreviousValue as n}from"./hooks/usePreviousValue/usePreviousValue.js";import{useProgressiveImg as l}from"./hooks/useProgressiveImg/useProgressiveImg.js";import{useScreen as f}from"./hooks/useScreen/useScreen.js";import{useScrollIntoView as d}from"./hooks/useScrollIntoView/useScrollIntoView.js";import{useAriaLiveRegion as g}from"./hooks/useAriaLiveRegion/useAriaLiveRegion.js";import{useClickOutside as p}from"./hooks/useClickOutside/useClickOutside.js";import{useFocusOutside as h}from"./hooks/useFocusOutside/useFocusOutside.js";import{useElementDimensions as j}from"./hooks/useElementDimensions/useElementDimensions.js";import{useId as E}from"./hooks/useId/useId.js";import{useKeyListener as V}from"./hooks/useKeyListener/useKeyListener.js";import{useListNavigation as v}from"./hooks/useListNavigation/useListNavigation.js";import{useSwipeGesture as M}from"./hooks/useSwipeGesture/useSwipeGesture.js";import{u as k}from"../index-CWRMnfcx.js";import{formatNumber as c}from"./utilities/formatters/util/formatNumber.js";import{parseNumber as O}from"./utilities/formatters/util/parseNumber.js";import{registerWithFodselsnummerMask as R,registerWithKontonummerMask as N,registerWithKortnummerMask as A,registerWithMasks as I,registerWithTelefonnummerMask as S}from"./utilities/formatters/util/registerWithMask.js";import{formatAvstand as L}from"./utilities/formatters/avstand/formatAvstand.js";import{formatBytes as D}from"./utilities/formatters/bytes/formatBytes.js";import{formatDate as T}from"./utilities/formatters/date/formatDate.js";import{FODSELSNUMMER_REGEX as b,formatFodselsnummer as K}from"./utilities/formatters/fodselsnummer/formatFodselsnummer.js";import{ORGANISASJONSNUMMER_REGEX as P,formatOrganisasjonsnummer as F}from"./utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.js";import{KONTONUMMER_REGEX as G,formatKontonummer as w}from"./utilities/formatters/kontonummer/formatKontonummer.js";import{KORTNUMMER_REGEX as C,formatKortnummer as W}from"./utilities/formatters/kortnummer/formatKortnummer.js";import{TELEFONNUMMER_REGEX as y,formatTelefonnummer as H}from"./utilities/formatters/telefonnummer/formatTelefonnummer.js";import{formatValuta as B}from"./utilities/formatters/valuta/formatValuta.js";import{getThemeAndDensity as U}from"./utilities/getThemeAndDensity.js";import{mergeRefs as X,useMergeRefs as _}from"./utilities/mergeRefs.js";import{mergeProps as x}from"./utilities/polymorphism/mergeProps.js";import{SlotComponent as J}from"./utilities/polymorphism/SlotComponent.js";import{initTabListener as q}from"./utilities/tabListener.js";import{isValidEpost as z}from"./utilities/validators/isValidEpost/isValidEpost.js";import{isValidTelefonnummer as Q}from"./utilities/validators/isValidTelefonnummer/isValidTelefonnummer.js";import{isValidRegistreringsnummer as Y}from"./utilities/validators/isValidRegistreringsnummer/isValidRegistreringsnummer.js";import{isValidChassisnummer as Z}from"./utilities/validators/isValidChassisnummer/isValidChassisnummer.js";import{isValidDogId as $}from"./utilities/validators/isValidDogId/isValidDogId.js";import{isExactLength as ss}from"./utilities/validators/isExactLength/isExactLength.js";import{isInteger as es}from"./utilities/validators/isInteger/isInteger.js";import{isValidFodselsnummer as is}from"./utilities/validators/isValidFodselsnummer/isValidFodselsnummer.js";import{isValidOrganisasjonsnummer as rs}from"./utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.js";import{isValidName as ts}from"./utilities/validators/isValidName/isValidName.js";import{hasMinimumWords as as}from"./utilities/validators/hasMinimumWords/hasMinimumWords.js";import{hasNoIllegalCharacters as os}from"./utilities/validators/hasNoIllegalCharacters/hasNoIllegalCharacters.js";import{getValuePair as ms}from"./utilities/valuePair.js";export{b as FODSELSNUMMER_REGEX,G as KONTONUMMER_REGEX,C as KORTNUMMER_REGEX,P as ORGANISASJONSNUMMER_REGEX,J as SlotComponent,y as TELEFONNUMMER_REGEX,L as formatAvstand,D as formatBytes,T as formatDate,K as formatFodselsnummer,w as formatKontonummer,W as formatKortnummer,c as formatNumber,F as formatOrganisasjonsnummer,H as formatTelefonnummer,B as formatValuta,U as getThemeAndDensity,ms as getValuePair,as as hasMinimumWords,os as hasNoIllegalCharacters,q as initTabListener,ss as isExactLength,es as isInteger,Z as isValidChassisnummer,$ as isValidDogId,z as isValidEpost,is as isValidFodselsnummer,ts as isValidName,rs as isValidOrganisasjonsnummer,Y as isValidRegistreringsnummer,Q as isValidTelefonnummer,x as mergeProps,X as mergeRefs,O as parseNumber,R as registerWithFodselsnummerMask,N as registerWithKontonummerMask,A as registerWithKortnummerMask,I as registerWithMasks,S as registerWithTelefonnummerMask,s as tokens,k as unicode,e as useAnimatedDetails,i as useAnimatedHeight,r as useAnimatedHeightBetween,g as useAriaLiveRegion,t as useAutoAnimatedHeight,a as useBrowserPreferences,p as useClickOutside,j as useElementDimensions,h as useFocusOutside,E as useId,o as useIntersectionObserver,V as useKeyListener,v as useListNavigation,m as useLocalStorage,_ as useMergeRefs,u as useMutationObserver,n as usePreviousValue,l as useProgressiveImg,f as useScreen,d as useScrollIntoView,M as useSwipeGesture};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import { default as React, ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
2
|
type Props = ComponentPropsWithRef<"input"> & {
|
|
3
3
|
isChecked: boolean;
|
|
4
|
-
|
|
5
|
-
|
|
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
|
+
*/
|
|
6
8
|
extraLabel?: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated vi ønsker ikke at content skal skjules for brukerne lenger
|
|
11
|
+
* @default true
|
|
12
|
+
*/
|
|
13
|
+
alwaysOpen?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Viser pris til høyre i panelet
|
|
16
|
+
*/
|
|
17
|
+
amount?: string;
|
|
18
|
+
label: string;
|
|
7
19
|
type: "radio" | "checkbox";
|
|
8
20
|
};
|
|
9
21
|
export declare const BasePanel: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{c as
|
|
1
|
+
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{c as n}from"../../../clsx-BeLtu-UY.js";import{forwardRef as l,useId as t,Children as s}from"react";import{useAutoAnimatedHeight as i}from"../../hooks/useAnimatedHeight/useAutoAnimateHeight.js";const r=l(function({className:l,isChecked:r,children:p,alwaysOpen:o=!1,label:c,extraLabel:d,amount:m,type:u,...h},j){const _=`content-${t()}`,k=`input-${t()}`,f=s.count(p)>0,x=i(r);return a("div",{className:n("jkl-input-panel",`jkl-${u}-panel`,l),children:[a("label",{className:"jkl-input-panel__label",htmlFor:k,children:[e("input",{ref:j,id:k,className:"jkl-input-panel__input",type:u,"aria-controls":o?void 0:_,"aria-expanded":o?void 0:r,...h}),e("span",{"aria-hidden":"true",className:`jkl-${u}-panel__decorator`}),e("span",{className:"jkl-input-panel__main-label",children:c}),(d||m)&&e("span",{className:n("jkl-input-panel__extra-label",{"jkl-input-panel__extra-label--text":"string"==typeof d||m}),children:d||m})]}),f&&e("div",{ref:x,"aria-hidden":!r&&!o,children:e("div",{className:"jkl-input-panel__content",id:_,"data-alwaysopen":o,children:p})})]})});export{r as BasePanel};
|
|
2
2
|
//# sourceMappingURL=BasePanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasePanel.js","sources":["../../../../src/shared/input-panel/BasePanel.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, {\n Children,\n type ComponentPropsWithRef,\n type ForwardedRef,\n forwardRef,\n type ReactNode,\n useId,\n} from \"react\";\nimport { useAutoAnimatedHeight } from \"../../hooks/useAnimatedHeight/useAutoAnimateHeight.js\";\n\ntype Props = ComponentPropsWithRef<\"input\"> & {\n isChecked: boolean;\n alwaysOpen
|
|
1
|
+
{"version":3,"file":"BasePanel.js","sources":["../../../../src/shared/input-panel/BasePanel.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, {\n Children,\n type ComponentPropsWithRef,\n type ForwardedRef,\n forwardRef,\n type ReactNode,\n useId,\n} from \"react\";\nimport { useAutoAnimatedHeight } from \"../../hooks/useAnimatedHeight/useAutoAnimateHeight.js\";\n\ntype Props = ComponentPropsWithRef<\"input\"> & {\n isChecked: boolean;\n /**\n * @deprecated bruk heller {@link amount} for å vise pris.\n * Dersom du har behov utover dette ta kontakt med oss så finner vi en løsning sammen.\n */\n extraLabel?: ReactNode;\n /**\n * @deprecated vi ønsker ikke at content skal skjules for brukerne lenger\n * @default true\n */\n alwaysOpen?: boolean;\n /**\n * Viser pris til høyre i panelet\n */\n amount?: string;\n label: string;\n type: \"radio\" | \"checkbox\";\n};\n\nexport const BasePanel = forwardRef(function BasePanel(\n {\n className,\n isChecked,\n children,\n alwaysOpen = false,\n label,\n extraLabel,\n amount,\n type,\n ...rest\n }: Props,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const contentId = `content-${useId()}`;\n const inputId = `input-${useId()}`;\n const hasChildren = Children.count(children) > 0;\n const animationRef = useAutoAnimatedHeight<HTMLDivElement>(isChecked);\n\n return (\n <div\n className={clsx(\"jkl-input-panel\", `jkl-${type}-panel`, className)}\n >\n <label className=\"jkl-input-panel__label\" htmlFor={inputId}>\n <input\n ref={ref}\n id={inputId}\n className=\"jkl-input-panel__input\"\n type={type}\n aria-controls={!alwaysOpen ? contentId : undefined}\n aria-expanded={!alwaysOpen ? isChecked : undefined}\n {...rest}\n />\n <span\n aria-hidden=\"true\"\n className={`jkl-${type}-panel__decorator`}\n />\n <span className=\"jkl-input-panel__main-label\">{label}</span>\n {(extraLabel || amount) && (\n <span\n className={clsx(\"jkl-input-panel__extra-label\", {\n \"jkl-input-panel__extra-label--text\":\n typeof extraLabel === \"string\" || amount,\n })}\n >\n {extraLabel || amount}\n </span>\n )}\n </label>\n {hasChildren && (\n <div ref={animationRef} aria-hidden={!isChecked && !alwaysOpen}>\n <div\n className=\"jkl-input-panel__content\"\n id={contentId}\n data-alwaysopen={alwaysOpen}\n >\n {children}\n </div>\n </div>\n )}\n </div>\n );\n});\n"],"names":["BasePanel","forwardRef","className","isChecked","children","alwaysOpen","label","extraLabel","amount","type","rest","ref","contentId","useId","inputId","hasChildren","Children","count","animationRef","useAutoAnimatedHeight","jsxs","clsx","htmlFor","jsx","id"],"mappings":"0PA+BO,MAAMA,EAAYC,EAAW,UAE5BC,UAAAA,EACAC,UAAAA,EACAC,SAAAA,EACAC,WAAAA,GAAa,EACbC,MAAAA,EACAC,WAAAA,EACAC,OAAAA,EACAC,KAAAA,KACGC,GAEPC,GAEA,MAAMC,EAAY,WAAWC,MACvBC,EAAU,SAASD,MACnBE,EAAcC,EAASC,MAAMb,GAAY,EACzCc,EAAeC,EAAsChB,GAE3D,OACIiB,EAAC,MAAA,CACGlB,UAAWmB,EAAK,kBAAmB,OAAOZ,UAAcP,GAExDE,SAAA,CAAAgB,EAAC,QAAA,CAAMlB,UAAU,yBAAyBoB,QAASR,EAC/CV,SAAA,CAAAmB,EAAC,QAAA,CACGZ,IAAAA,EACAa,GAAIV,EACJZ,UAAU,yBACVO,KAAAA,EACA,gBAAgBJ,OAAyB,EAAZO,EAC7B,gBAAgBP,OAAyB,EAAZF,KACzBO,IAERa,EAAC,OAAA,CACG,cAAY,OACZrB,UAAW,OAAOO,uBAEtBc,EAAC,OAAA,CAAKrB,UAAU,8BAA+BE,SAAAE,KAC7CC,GAAcC,IACZe,EAAC,OAAA,CACGrB,UAAWmB,EAAK,+BAAgC,CAC5C,qCAC0B,iBAAfd,GAA2BC,IAGzCJ,SAAAG,GAAcC,OAI1BO,KACI,MAAA,CAAIJ,IAAKO,EAAc,eAAcf,IAAcE,EAChDD,SAAAmB,EAAC,MAAA,CACGrB,UAAU,2BACVsB,GAAIZ,EACJ,kBAAiBP,EAEhBD,SAAAA,QAMzB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import i from"tailwindcss/plugin.js";import m from"../../core/tokens.js";const{breakpoint:a,typography:e}=m,d=i((
|
|
1
|
+
import i from"tailwindcss/plugin.js";import m from"../../core/tokens.js";const{breakpoint:a,typography:e}=m,d=i(({addComponents:i})=>{i({".title":{...e.title.small,[`@media (min-width: ${a.medium})`]:{...e.title.base}},".title-small":{...e.titleSmall.small,[`@media (min-width: ${a.medium})`]:{...e.titleSmall.base}},".heading-1":{...e.heading_1.small,[`@media (min-width: ${a.medium})`]:{...e.heading_1.base}},".heading-2":{...e.heading_2.small,[`@media (min-width: ${a.medium})`]:{...e.heading_2.base}},".heading-3":{...e.heading_3.small,[`@media (min-width: ${a.medium})`]:{...e.heading_3.base}},".heading-4":{...e.heading_4.small,[`@media (min-width: ${a.medium})`]:{...e.heading_4.base}},".heading-5":{...e.heading_5.small,[`@media (min-width: ${a.medium})`]:{...e.heading_5.base}},".body":{...e.body.small,[`@media (min-width: ${a.medium})`]:{...e.body.base}},".small":{...e.small.small,[`@media (min-width: ${a.medium})`]:{...e.small.base}}})});export{d as jokulTypographyPlugin};
|
|
2
2
|
//# sourceMappingURL=jokulTypographyPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jokulTypographyPlugin.js","sources":["../../../../src/tailwind/plugins/jokulTypographyPlugin.ts"],"sourcesContent":["import plugin from \"tailwindcss/plugin.js\";\nimport tokens from \"../../core/tokens.js\";\n\nconst { breakpoint, typography } = tokens;\n\nexport const jokulTypographyPlugin = plugin(({ addComponents }) => {\n addComponents({\n \".title\": {\n ...typography.title.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.title.base,\n },\n },\n \".title-small\": {\n ...typography.titleSmall.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.titleSmall.base,\n },\n },\n \".heading-1\": {\n ...typography.heading_1.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.heading_1.base,\n },\n },\n \".heading-2\": {\n ...typography.heading_2.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.heading_2.base,\n },\n },\n \".heading-3\": {\n ...typography.heading_3.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.heading_3.base,\n },\n },\n \".heading-4\": {\n ...typography.heading_4.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.heading_4.base,\n },\n },\n \".heading-5\": {\n ...typography.heading_5.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.heading_5.base,\n },\n },\n \".body\": {\n ...typography.body.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.body.base,\n },\n },\n \".small\": {\n ...typography.small.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.small.base,\n },\n },\n });\n});\n"],"names":["breakpoint","typography","tokens","jokulTypographyPlugin","plugin","addComponents","title","small","medium","base","titleSmall","heading_1","heading_2","heading_3","heading_4","heading_5","body"],"mappings":"yEAGA,MAAQA,WAAAA,EAAYC,WAAAA,GAAeC,EAEtBC,EAAwBC,
|
|
1
|
+
{"version":3,"file":"jokulTypographyPlugin.js","sources":["../../../../src/tailwind/plugins/jokulTypographyPlugin.ts"],"sourcesContent":["import plugin from \"tailwindcss/plugin.js\";\nimport tokens from \"../../core/tokens.js\";\n\nconst { breakpoint, typography } = tokens;\n\nexport const jokulTypographyPlugin = plugin(({ addComponents }) => {\n addComponents({\n \".title\": {\n ...typography.title.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.title.base,\n },\n },\n \".title-small\": {\n ...typography.titleSmall.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.titleSmall.base,\n },\n },\n \".heading-1\": {\n ...typography.heading_1.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.heading_1.base,\n },\n },\n \".heading-2\": {\n ...typography.heading_2.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.heading_2.base,\n },\n },\n \".heading-3\": {\n ...typography.heading_3.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.heading_3.base,\n },\n },\n \".heading-4\": {\n ...typography.heading_4.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.heading_4.base,\n },\n },\n \".heading-5\": {\n ...typography.heading_5.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.heading_5.base,\n },\n },\n \".body\": {\n ...typography.body.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.body.base,\n },\n },\n \".small\": {\n ...typography.small.small,\n [`@media (min-width: ${breakpoint.medium})`]: {\n ...typography.small.base,\n },\n },\n });\n});\n"],"names":["breakpoint","typography","tokens","jokulTypographyPlugin","plugin","addComponents","title","small","medium","base","titleSmall","heading_1","heading_2","heading_3","heading_4","heading_5","body"],"mappings":"yEAGA,MAAQA,WAAAA,EAAYC,WAAAA,GAAeC,EAEtBC,EAAwBC,EAAO,EAAGC,cAAAA,MAC3CA,EAAc,CACV,SAAU,IACHJ,EAAWK,MAAMC,MACpB,CAAC,sBAAsBP,EAAWQ,WAAY,IACvCP,EAAWK,MAAMG,OAG5B,eAAgB,IACTR,EAAWS,WAAWH,MACzB,CAAC,sBAAsBP,EAAWQ,WAAY,IACvCP,EAAWS,WAAWD,OAGjC,aAAc,IACPR,EAAWU,UAAUJ,MACxB,CAAC,sBAAsBP,EAAWQ,WAAY,IACvCP,EAAWU,UAAUF,OAGhC,aAAc,IACPR,EAAWW,UAAUL,MACxB,CAAC,sBAAsBP,EAAWQ,WAAY,IACvCP,EAAWW,UAAUH,OAGhC,aAAc,IACPR,EAAWY,UAAUN,MACxB,CAAC,sBAAsBP,EAAWQ,WAAY,IACvCP,EAAWY,UAAUJ,OAGhC,aAAc,IACPR,EAAWa,UAAUP,MACxB,CAAC,sBAAsBP,EAAWQ,WAAY,IACvCP,EAAWa,UAAUL,OAGhC,aAAc,IACPR,EAAWc,UAAUR,MACxB,CAAC,sBAAsBP,EAAWQ,WAAY,IACvCP,EAAWc,UAAUN,OAGhC,QAAS,IACFR,EAAWe,KAAKT,MACnB,CAAC,sBAAsBP,EAAWQ,WAAY,IACvCP,EAAWe,KAAKP,OAG3B,SAAU,IACHR,EAAWM,MAAMA,MACpB,CAAC,sBAAsBP,EAAWQ,WAAY,IACvCP,EAAWM,MAAME"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatAvstand.js","sources":["../../../../../src/utilities/formatters/avstand/formatAvstand.ts"],"sourcesContent":["import {\n type FormatNumberOptions,\n formatNumber,\n} from \"../util/formatNumber.js\";\nimport { parseNumber } from \"../util/parseNumber.js\";\n\nexport type LengthUnit =\n | \"kilometer\"\n | \"meter\"\n | \"decimeter\"\n | \"centimeter\"\n | \"millimeter\"\n | \"micrometer\"\n | \"nanometer\"\n | \"picometer\"\n | \"mile\"\n | \"yard\"\n | \"foot\"\n | \"inch\"\n | \"point\";\n\nexport interface FormatAvstandOptions extends FormatNumberOptions {\n /**\n * Lengdeenheten som skal vises for tallet, f.eks. \"kilometer\" eller \"foot\".\n * Hvis du _ikke_ ønsker å vise noen enhet bør du heller bruke `formatNumber` direkte.\n *\n * @default \"kilometer\"\n */\n unit?: LengthUnit;\n /**\n * Valgfritt suffiks som vises etter lengdeenheten. Ønsker du for eksempel\n * å vise \"km/år\" kan du setter \"kilometer\" som `unit` og \"/år\" som `suffix`.\n */\n suffix?: string;\n}\n\nconst defaultOptions: FormatNumberOptions = {\n style: \"unit\",\n unit: \"kilometer\",\n};\n\n/**\n * Formaterer en avstand med norsk locale på tallverdien.\n * @param input Verdien som skal formateres\n * @param options Lengdeenheten som skal vises for tallet, f.eks. \"kilometer\" eller \"foot\". Default: \"kilometer\". Kan også angi en valgfri suffix, f.eks. \"/år\".\n * @returns Den formaterte verdien.\n */\nexport function formatAvstand(\n input: string | number,\n options?: FormatAvstandOptions,\n) {\n const number = parseNumber(input);\n if (!number) {\n return input.toString();\n }\n\n const { suffix, ...formatOptions } = { ...defaultOptions, ...options };\n\n return [formatNumber(number, formatOptions), suffix].join(\"\");\n}\n"],"names":["defaultOptions","style","unit","formatAvstand","input","options","number","parseNumber","toString","suffix","formatOptions","formatNumber","join"],"mappings":"4GAoCA,MAAMA,EAAsC,CACxCC,MAAO,OACPC,KAAM,
|
|
1
|
+
{"version":3,"file":"formatAvstand.js","sources":["../../../../../src/utilities/formatters/avstand/formatAvstand.ts"],"sourcesContent":["import {\n type FormatNumberOptions,\n formatNumber,\n} from \"../util/formatNumber.js\";\nimport { parseNumber } from \"../util/parseNumber.js\";\n\nexport type LengthUnit =\n | \"kilometer\"\n | \"meter\"\n | \"decimeter\"\n | \"centimeter\"\n | \"millimeter\"\n | \"micrometer\"\n | \"nanometer\"\n | \"picometer\"\n | \"mile\"\n | \"yard\"\n | \"foot\"\n | \"inch\"\n | \"point\";\n\nexport interface FormatAvstandOptions extends FormatNumberOptions {\n /**\n * Lengdeenheten som skal vises for tallet, f.eks. \"kilometer\" eller \"foot\".\n * Hvis du _ikke_ ønsker å vise noen enhet bør du heller bruke `formatNumber` direkte.\n *\n * @default \"kilometer\"\n */\n unit?: LengthUnit;\n /**\n * Valgfritt suffiks som vises etter lengdeenheten. Ønsker du for eksempel\n * å vise \"km/år\" kan du setter \"kilometer\" som `unit` og \"/år\" som `suffix`.\n */\n suffix?: string;\n}\n\nconst defaultOptions: FormatNumberOptions = {\n style: \"unit\",\n unit: \"kilometer\",\n};\n\n/**\n * Formaterer en avstand med norsk locale på tallverdien.\n * @param input Verdien som skal formateres\n * @param options Lengdeenheten som skal vises for tallet, f.eks. \"kilometer\" eller \"foot\". Default: \"kilometer\". Kan også angi en valgfri suffix, f.eks. \"/år\".\n * @returns Den formaterte verdien.\n */\nexport function formatAvstand(\n input: string | number,\n options?: FormatAvstandOptions,\n) {\n const number = parseNumber(input);\n if (!number) {\n return input.toString();\n }\n\n const { suffix, ...formatOptions } = { ...defaultOptions, ...options };\n\n return [formatNumber(number, formatOptions), suffix].join(\"\");\n}\n"],"names":["defaultOptions","style","unit","formatAvstand","input","options","number","parseNumber","toString","suffix","formatOptions","formatNumber","join"],"mappings":"4GAoCA,MAAMA,EAAsC,CACxCC,MAAO,OACPC,KAAM,aASH,SAASC,EACZC,EACAC,GAEA,MAAMC,EAASC,EAAYH,GAC3B,IAAKE,EACD,OAAOF,EAAMI,WAGjB,MAAQC,OAAAA,KAAWC,GAAkB,IAAKV,KAAmBK,GAE7D,MAAO,CAACM,EAAaL,EAAQI,GAAgBD,GAAQG,KAAK,GAC9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatBytes.js","sources":["../../../../../src/utilities/formatters/bytes/formatBytes.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\nimport {\n type FormatNumberOptions,\n formatNumber,\n} from \"../util/formatNumber.js\";\n\n/**\n * Formater et antall bytes som en lesbar verdi med enten KB eller MB som enhet.\n * @param bytes Antall bytes som skal vises i lesbar form\n * @param options Innstillinger for formateringen. Se https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options for detaljer.\n * @returns Den formaterte verdien\n */\nexport function formatBytes(\n bytes: number,\n options?: FormatNumberOptions,\n): string {\n if (bytes >= 100000) {\n return `${formatNumber(Number(bytes / 1000 / 1000), {\n maximumFractionDigits: 1,\n ...options,\n })}${unicode.nbsp}MB`;\n }\n\n return `${formatNumber(bytes / 1000, {\n maximumFractionDigits: 2,\n ...options,\n })}${unicode.nbsp}KB`;\n}\n"],"names":["formatBytes","bytes","options","formatNumber","Number","maximumFractionDigits","unicode.nbsp"],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatBytes.js","sources":["../../../../../src/utilities/formatters/bytes/formatBytes.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\nimport {\n type FormatNumberOptions,\n formatNumber,\n} from \"../util/formatNumber.js\";\n\n/**\n * Formater et antall bytes som en lesbar verdi med enten KB eller MB som enhet.\n * @param bytes Antall bytes som skal vises i lesbar form\n * @param options Innstillinger for formateringen. Se https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options for detaljer.\n * @returns Den formaterte verdien\n */\nexport function formatBytes(\n bytes: number,\n options?: FormatNumberOptions,\n): string {\n if (bytes >= 100000) {\n return `${formatNumber(Number(bytes / 1000 / 1000), {\n maximumFractionDigits: 1,\n ...options,\n })}${unicode.nbsp}MB`;\n }\n\n return `${formatNumber(bytes / 1000, {\n maximumFractionDigits: 2,\n ...options,\n })}${unicode.nbsp}KB`;\n}\n"],"names":["formatBytes","bytes","options","formatNumber","Number","maximumFractionDigits","unicode.nbsp"],"mappings":"yGAYO,SAASA,EACZC,EACAC,GAEA,OAAID,GAAS,IACF,GAAGE,EAAaC,OAAOH,EAAQ,IAAO,KAAO,CAChDI,sBAAuB,KACpBH,MACFI,MAGF,GAAGH,EAAaF,EAAQ,IAAM,CACjCI,sBAAuB,KACpBH,MACFI,KACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatDate.js","sources":["../../../../../src/utilities/formatters/date/formatDate.ts"],"sourcesContent":["/**\n * Formaterer en dato med \"dd.mm.yyyy\"-format.\n * @param date Verdien som skal formateres\n * @returns Verdien i \"dd.mm.yyyy\"-format\n */\nexport function formatDate(date: Date): string {\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n return `${day}.${month}.${date.getFullYear()}`;\n}\n\nexport const DATE_REGEX = {\n // Tillater datoer på formene DDMMYY og DDMMYYYY\n full: /^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])(\\d{2}|\\d{4})$/,\n partial: /^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])?(\\d{1,4})?$/,\n};\n\ntype FormatDateStringOptions = {\n partial?: boolean;\n};\n\nexport function formatDateString(\n input: string,\n options?: FormatDateStringOptions,\n): string {\n const strippedInput = input.replace(/\\D/g, \"\");\n const regex = options?.partial ? DATE_REGEX.partial : DATE_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(\".\");\n}\n"],"names":["formatDate","date","getDate","padStart","getMonth","getFullYear","DATE_REGEX","full","partial","formatDateString","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join"],"mappings":"AAKO,SAASA,EAAWC,GAGvB,MAAO,GAFK,GAAGA,EAAKC,YAAYC,SAAS,EAAG,QAC9B,GAAGF,EAAKG,WAAa,IAAID,SAAS,EAAG,QACzBF,EAAKI,eACnC,CAEO,MAAMC,EAAa,CAEtBC,KAAM,yDACNC,QAAS,
|
|
1
|
+
{"version":3,"file":"formatDate.js","sources":["../../../../../src/utilities/formatters/date/formatDate.ts"],"sourcesContent":["/**\n * Formaterer en dato med \"dd.mm.yyyy\"-format.\n * @param date Verdien som skal formateres\n * @returns Verdien i \"dd.mm.yyyy\"-format\n */\nexport function formatDate(date: Date): string {\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n return `${day}.${month}.${date.getFullYear()}`;\n}\n\nexport const DATE_REGEX = {\n // Tillater datoer på formene DDMMYY og DDMMYYYY\n full: /^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])(\\d{2}|\\d{4})$/,\n partial: /^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])?(\\d{1,4})?$/,\n};\n\ntype FormatDateStringOptions = {\n partial?: boolean;\n};\n\nexport function formatDateString(\n input: string,\n options?: FormatDateStringOptions,\n): string {\n const strippedInput = input.replace(/\\D/g, \"\");\n const regex = options?.partial ? DATE_REGEX.partial : DATE_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(\".\");\n}\n"],"names":["formatDate","date","getDate","padStart","getMonth","getFullYear","DATE_REGEX","full","partial","formatDateString","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join"],"mappings":"AAKO,SAASA,EAAWC,GAGvB,MAAO,GAFK,GAAGA,EAAKC,YAAYC,SAAS,EAAG,QAC9B,GAAGF,EAAKG,WAAa,IAAID,SAAS,EAAG,QACzBF,EAAKI,eACnC,CAEO,MAAMC,EAAa,CAEtBC,KAAM,yDACNC,QAAS,wDAON,SAASC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQH,GAASH,QAAUF,EAAWE,QAAUF,EAAWC,KAE3DQ,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAK,KAHhCT,CAIf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatFodselsnummer.js","sources":["../../../../../src/utilities/formatters/fodselsnummer/formatFodselsnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const FODSELSNUMMER_REGEX = {\n full: /^(\\d{6})(\\d{5})$/,\n partial: /^(\\d{6})(\\d{1,5})?$/,\n};\n\ntype FormatFodselsnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et fødselsnummer. Delene av fødselsnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig fødselsnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatFodselsnummer(\n input: string,\n options?: FormatFodselsnummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const regex = options?.partial\n ? FODSELSNUMMER_REGEX.partial\n : FODSELSNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["FODSELSNUMMER_REGEX","full","partial","formatFodselsnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAsB,CAC/BC,KAAM,mBACNC,QAAS,
|
|
1
|
+
{"version":3,"file":"formatFodselsnummer.js","sources":["../../../../../src/utilities/formatters/fodselsnummer/formatFodselsnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const FODSELSNUMMER_REGEX = {\n full: /^(\\d{6})(\\d{5})$/,\n partial: /^(\\d{6})(\\d{1,5})?$/,\n};\n\ntype FormatFodselsnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et fødselsnummer. Delene av fødselsnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig fødselsnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatFodselsnummer(\n input: string,\n options?: FormatFodselsnummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const regex = options?.partial\n ? FODSELSNUMMER_REGEX.partial\n : FODSELSNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["FODSELSNUMMER_REGEX","full","partial","formatFodselsnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAsB,CAC/BC,KAAM,mBACNC,QAAS,uBAaN,SAASC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQH,GAASH,QACjBF,EAAoBE,QACpBF,EAAoBC,KAEpBQ,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,GAHhCV,CAIf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatKontonummer.js","sources":["../../../../../src/utilities/formatters/kontonummer/formatKontonummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const KONTONUMMER_REGEX = {\n full: /^(\\d{4})(\\d{2})(\\d{5})$/,\n partial: /^(\\d{4})(\\d{1,2})?(\\d{1,5})?$/,\n};\n\ntype FormatKontonummerOptions = {\n partial?: boolean;\n separator?: string;\n};\n\n/**\n * Formaterer et kontonummer, med eller uten punktum som skilletegn. Default er med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig kontonummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatKontonummer(\n input: string,\n options?: FormatKontonummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const regex = options?.partial\n ? KONTONUMMER_REGEX.partial\n : KONTONUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match\n .slice(1)\n .filter(Boolean)\n .join(options?.separator || unicode.NON_BREAKING_SPACE);\n}\n"],"names":["KONTONUMMER_REGEX","full","partial","formatKontonummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","separator","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAoB,CAC7BC,KAAM,0BACNC,QAAS,
|
|
1
|
+
{"version":3,"file":"formatKontonummer.js","sources":["../../../../../src/utilities/formatters/kontonummer/formatKontonummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const KONTONUMMER_REGEX = {\n full: /^(\\d{4})(\\d{2})(\\d{5})$/,\n partial: /^(\\d{4})(\\d{1,2})?(\\d{1,5})?$/,\n};\n\ntype FormatKontonummerOptions = {\n partial?: boolean;\n separator?: string;\n};\n\n/**\n * Formaterer et kontonummer, med eller uten punktum som skilletegn. Default er med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig kontonummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatKontonummer(\n input: string,\n options?: FormatKontonummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const regex = options?.partial\n ? KONTONUMMER_REGEX.partial\n : KONTONUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match\n .slice(1)\n .filter(Boolean)\n .join(options?.separator || unicode.NON_BREAKING_SPACE);\n}\n"],"names":["KONTONUMMER_REGEX","full","partial","formatKontonummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","separator","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAoB,CAC7BC,KAAM,0BACNC,QAAS,iCAcN,SAASC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQH,GAASH,QACjBF,EAAkBE,QAClBF,EAAkBC,KAElBQ,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EACFC,MAAM,GACNC,OAAOC,SACPC,KAAKR,GAASS,WAAaC,GANrBX,CAOf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatKortnummer.js","sources":["../../../../../src/utilities/formatters/kortnummer/formatKortnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const KORTNUMMER_REGEX = {\n full: /^(\\d{4})(\\d{4})(\\d{4})(\\d{4})$/,\n partial: /^(\\d{4})(\\d{1,4})?(\\d{1,4})?(\\d{1,4})?$/,\n};\n\ntype FormatKortnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et kortnummer. Delene av kortnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig kortnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatKortnummer(\n input: string,\n options?: FormatKortnummerOptions,\n) {\n const strippedInput = input.replace(/[\\s-.]/g, \"\");\n const regex = options?.partial\n ? KORTNUMMER_REGEX.partial\n : KORTNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["KORTNUMMER_REGEX","full","partial","formatKortnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAmB,CAC5BC,KAAM,iCACNC,QAAS,
|
|
1
|
+
{"version":3,"file":"formatKortnummer.js","sources":["../../../../../src/utilities/formatters/kortnummer/formatKortnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const KORTNUMMER_REGEX = {\n full: /^(\\d{4})(\\d{4})(\\d{4})(\\d{4})$/,\n partial: /^(\\d{4})(\\d{1,4})?(\\d{1,4})?(\\d{1,4})?$/,\n};\n\ntype FormatKortnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et kortnummer. Delene av kortnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig kortnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatKortnummer(\n input: string,\n options?: FormatKortnummerOptions,\n) {\n const strippedInput = input.replace(/[\\s-.]/g, \"\");\n const regex = options?.partial\n ? KORTNUMMER_REGEX.partial\n : KORTNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["KORTNUMMER_REGEX","full","partial","formatKortnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAmB,CAC5BC,KAAM,iCACNC,QAAS,2CAaN,SAASC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,UAAW,IACzCC,EAAQH,GAASH,QACjBF,EAAiBE,QACjBF,EAAiBC,KAEjBQ,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,GAHhCV,CAIf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatOrganisasjonsnummer.js","sources":["../../../../../src/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const ORGANISASJONSNUMMER_REGEX = {\n full: /^(\\d{3})(\\d{3})(\\d{3})$/,\n partial: /^(\\d{3})(\\d{1,3})?(\\d{1,5})?$/,\n};\n\ntype FormatOrganisasjonsnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et organisasjonsnummer. Delene av organisasjonsnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig organisasjonsnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatOrganisasjonsnummer(\n input: string,\n options?: FormatOrganisasjonsnummerOptions,\n) {\n const strippedInput = input.replace(/[\\s-.]/g, \"\");\n const regex = options?.partial\n ? ORGANISASJONSNUMMER_REGEX.partial\n : ORGANISASJONSNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["ORGANISASJONSNUMMER_REGEX","full","partial","formatOrganisasjonsnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAA4B,CACrCC,KAAM,0BACNC,QAAS,
|
|
1
|
+
{"version":3,"file":"formatOrganisasjonsnummer.js","sources":["../../../../../src/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const ORGANISASJONSNUMMER_REGEX = {\n full: /^(\\d{3})(\\d{3})(\\d{3})$/,\n partial: /^(\\d{3})(\\d{1,3})?(\\d{1,5})?$/,\n};\n\ntype FormatOrganisasjonsnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et organisasjonsnummer. Delene av organisasjonsnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig organisasjonsnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatOrganisasjonsnummer(\n input: string,\n options?: FormatOrganisasjonsnummerOptions,\n) {\n const strippedInput = input.replace(/[\\s-.]/g, \"\");\n const regex = options?.partial\n ? ORGANISASJONSNUMMER_REGEX.partial\n : ORGANISASJONSNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["ORGANISASJONSNUMMER_REGEX","full","partial","formatOrganisasjonsnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAA4B,CACrCC,KAAM,0BACNC,QAAS,iCAaN,SAASC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,UAAW,IACzCC,EAAQH,GAASH,QACjBF,EAA0BE,QAC1BF,EAA0BC,KAE1BQ,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,GAHhCV,CAIf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatTelefonnummer.js","sources":["../../../../../src/utilities/formatters/telefonnummer/formatTelefonnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const TELEFONNUMMER_REGEX = {\n mobil: /^([8]\\d{2})(\\d{2})(\\d{3})$/,\n fast: /^([2-9]\\d)(\\d{2})(\\d{2})(\\d{2})$/,\n mobilPartial: /^([8]\\d{2})(\\d{1,2})?(\\d{1,3})?$/,\n fastPartial: /^([2-9]\\d)(\\d{1,2})?(\\d{1,2})?(\\d{1,2})?$/,\n};\n\nexport type FormatTelefonnummerOptions = {\n partial?: boolean;\n countryCode?: string;\n};\n\n/**\n * Formaterer et telefonnummer etter språkrådets anbefalinger. Delene av telefonnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Inkluder en valgfri landkode, eller angi at verdien er et ufullstendig telefonnummer og likevel skal formateres.\n * @returns Den formatererte verdien\n */\nexport function formatTelefonnummer(\n input: string,\n options?: FormatTelefonnummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const mobilRegex = options?.partial\n ? TELEFONNUMMER_REGEX.mobilPartial\n : TELEFONNUMMER_REGEX.mobil;\n const fastRegex = options?.partial\n ? TELEFONNUMMER_REGEX.fastPartial\n : TELEFONNUMMER_REGEX.fast;\n\n const match =\n strippedInput.match(mobilRegex) || strippedInput.match(fastRegex);\n\n if (!match) {\n return input;\n }\n\n return [\n options?.countryCode ? `+${options.countryCode}` : undefined,\n ...match.slice(1),\n ] // build array of number elements\n .filter(Boolean) // ensure all elements are valid\n .join(unicode.NON_BREAKING_SPACE); // build formattet string\n}\n"],"names":["TELEFONNUMMER_REGEX","mobil","fast","mobilPartial","fastPartial","formatTelefonnummer","input","options","strippedInput","replace","mobilRegex","partial","fastRegex","match","countryCode","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAsB,CAC/BC,MAAO,6BACPC,KAAM,mCACNC,aAAc,mCACdC,YAAa,
|
|
1
|
+
{"version":3,"file":"formatTelefonnummer.js","sources":["../../../../../src/utilities/formatters/telefonnummer/formatTelefonnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const TELEFONNUMMER_REGEX = {\n mobil: /^([8]\\d{2})(\\d{2})(\\d{3})$/,\n fast: /^([2-9]\\d)(\\d{2})(\\d{2})(\\d{2})$/,\n mobilPartial: /^([8]\\d{2})(\\d{1,2})?(\\d{1,3})?$/,\n fastPartial: /^([2-9]\\d)(\\d{1,2})?(\\d{1,2})?(\\d{1,2})?$/,\n};\n\nexport type FormatTelefonnummerOptions = {\n partial?: boolean;\n countryCode?: string;\n};\n\n/**\n * Formaterer et telefonnummer etter språkrådets anbefalinger. Delene av telefonnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Inkluder en valgfri landkode, eller angi at verdien er et ufullstendig telefonnummer og likevel skal formateres.\n * @returns Den formatererte verdien\n */\nexport function formatTelefonnummer(\n input: string,\n options?: FormatTelefonnummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const mobilRegex = options?.partial\n ? TELEFONNUMMER_REGEX.mobilPartial\n : TELEFONNUMMER_REGEX.mobil;\n const fastRegex = options?.partial\n ? TELEFONNUMMER_REGEX.fastPartial\n : TELEFONNUMMER_REGEX.fast;\n\n const match =\n strippedInput.match(mobilRegex) || strippedInput.match(fastRegex);\n\n if (!match) {\n return input;\n }\n\n return [\n options?.countryCode ? `+${options.countryCode}` : undefined,\n ...match.slice(1),\n ] // build array of number elements\n .filter(Boolean) // ensure all elements are valid\n .join(unicode.NON_BREAKING_SPACE); // build formattet string\n}\n"],"names":["TELEFONNUMMER_REGEX","mobil","fast","mobilPartial","fastPartial","formatTelefonnummer","input","options","strippedInput","replace","mobilRegex","partial","fastRegex","match","countryCode","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAsB,CAC/BC,MAAO,6BACPC,KAAM,mCACNC,aAAc,mCACdC,YAAa,6CAcV,SAASC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAaH,GAASI,QACtBX,EAAoBG,aACpBH,EAAoBC,MACpBW,EAAYL,GAASI,QACrBX,EAAoBI,YACpBJ,EAAoBE,KAEpBW,EACFL,EAAcK,MAAMH,IAAeF,EAAcK,MAAMD,GAE3D,OAAKC,EAIE,CACHN,GAASO,YAAc,IAAIP,EAAQO,mBAAgB,KAChDD,EAAME,MAAM,IAEdC,OAAOC,SACPC,KAAKC,GARCb,CASf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatNumber.js","sources":["../../../../../src/utilities/formatters/util/formatNumber.ts"],"sourcesContent":["import { parseNumber } from \"./parseNumber.js\";\n\nexport interface FormatNumberOptions extends Intl.NumberFormatOptions {\n /**\n * Hvilken lokalisasjon tallet skal formateres med\n * @default \"no-NB\"\n */\n locale?: string;\n}\n\nconst defaultOptions: FormatNumberOptions = {\n locale: \"no-NB\",\n};\n\n/**\n * Formaterer et tall med norsk locale.\n * @param input Verdien som skal formateres\n * @param options Innstillinger for formateringen. Se https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options for detaljer.\n * @returns Den formatererte verdien\n */\nexport function formatNumber(\n input: string | number,\n options?: FormatNumberOptions,\n): string {\n const number = parseNumber(input);\n if (!number) {\n return input.toString();\n }\n\n const { locale, ...otherOptions } = { ...defaultOptions, ...options };\n const formatter = new Intl.NumberFormat(locale, otherOptions);\n\n return formatter.format(number);\n}\n"],"names":["defaultOptions","locale","formatNumber","input","options","number","parseNumber","toString","otherOptions","Intl","NumberFormat","format"],"mappings":"+CAUA,MAAMA,EAAsC,CACxCC,OAAQ,
|
|
1
|
+
{"version":3,"file":"formatNumber.js","sources":["../../../../../src/utilities/formatters/util/formatNumber.ts"],"sourcesContent":["import { parseNumber } from \"./parseNumber.js\";\n\nexport interface FormatNumberOptions extends Intl.NumberFormatOptions {\n /**\n * Hvilken lokalisasjon tallet skal formateres med\n * @default \"no-NB\"\n */\n locale?: string;\n}\n\nconst defaultOptions: FormatNumberOptions = {\n locale: \"no-NB\",\n};\n\n/**\n * Formaterer et tall med norsk locale.\n * @param input Verdien som skal formateres\n * @param options Innstillinger for formateringen. Se https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options for detaljer.\n * @returns Den formatererte verdien\n */\nexport function formatNumber(\n input: string | number,\n options?: FormatNumberOptions,\n): string {\n const number = parseNumber(input);\n if (!number) {\n return input.toString();\n }\n\n const { locale, ...otherOptions } = { ...defaultOptions, ...options };\n const formatter = new Intl.NumberFormat(locale, otherOptions);\n\n return formatter.format(number);\n}\n"],"names":["defaultOptions","locale","formatNumber","input","options","number","parseNumber","toString","otherOptions","Intl","NumberFormat","format"],"mappings":"+CAUA,MAAMA,EAAsC,CACxCC,OAAQ,SASL,SAASC,EACZC,EACAC,GAEA,MAAMC,EAASC,EAAYH,GAC3B,IAAKE,EACD,OAAOF,EAAMI,WAGjB,MAAQN,OAAAA,KAAWO,GAAiB,IAAKR,KAAmBI,GAG5D,OAFkB,IAAIK,KAAKC,aAAaT,EAAQO,GAE/BG,OAAON,EAC5B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=(e,r)=>{const n=Array.isArray(e)?e:e.split(""),t=n.lastIndexOf(r);return n.filter((
|
|
1
|
+
const e=(e,r)=>{const n=Array.isArray(e)?e:e.split(""),t=n.lastIndexOf(r);return n.filter((e,n)=>e!==r||n===t).join("")};function r(r){if("number"==typeof r)return r;const n=r.replaceAll(/\s/g,"").split(""),t=n.reduce((e,r)=>","===r||"."===r?r:e,null);return Number("."===t?e(n,".").replace(",",""):","===t?e(n,",").replace(".","").replace(",","."):n.join(""))}export{r as parseNumber};
|
|
2
2
|
//# sourceMappingURL=parseNumber.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseNumber.js","sources":["../../../../../src/utilities/formatters/util/parseNumber.ts"],"sourcesContent":["const replaceAllButLastOccurence = (\n input: string | string[],\n search: string,\n) => {\n const arrInput = Array.isArray(input) ? input : input.split(\"\");\n const indexOfSearch = arrInput.lastIndexOf(search);\n\n return (\n arrInput\n // remove all instances of the notator except the last one\n .filter((f, i) => {\n if (f !== search) {\n return true;\n }\n\n return i === indexOfSearch;\n })\n .join(\"\")\n );\n};\n\n/**\n * Parser en formatert string til et Number.\n * @param input Kandidaten som skal parses til et tall\n * @returns Verdien som et Number\n */\nexport function parseNumber(input: string | number) {\n if (typeof input === \"number\") {\n return input;\n }\n\n // remove all spaces from number\n const spaceRegex = /\\s/g;\n const arrNumber = input.replaceAll(spaceRegex, \"\").split(\"\");\n\n // find what separator is used for decimal notation\n const decimalNotator = arrNumber.reduce<\".\" | \",\" | null>(\n (notator, currentItem) => {\n if (currentItem === \",\" || currentItem === \".\") {\n return currentItem;\n }\n\n return notator;\n },\n null,\n );\n\n if (decimalNotator === \".\") {\n return Number(\n replaceAllButLastOccurence(arrNumber, \".\").replace(\",\", \"\"),\n );\n }\n\n if (decimalNotator === \",\") {\n return Number(\n replaceAllButLastOccurence(arrNumber, \",\")\n .replace(\".\", \"\")\n .replace(\",\", \".\"),\n );\n }\n\n return Number(arrNumber.join(\"\"));\n}\n"],"names":["replaceAllButLastOccurence","input","search","arrInput","Array","isArray","split","indexOfSearch","lastIndexOf","filter","f","i","join","parseNumber","arrNumber","replaceAll","decimalNotator","reduce","notator","currentItem","Number","replace"],"mappings":"AAAA,MAAMA,EAA6B,CAC/BC,EACAC,
|
|
1
|
+
{"version":3,"file":"parseNumber.js","sources":["../../../../../src/utilities/formatters/util/parseNumber.ts"],"sourcesContent":["const replaceAllButLastOccurence = (\n input: string | string[],\n search: string,\n) => {\n const arrInput = Array.isArray(input) ? input : input.split(\"\");\n const indexOfSearch = arrInput.lastIndexOf(search);\n\n return (\n arrInput\n // remove all instances of the notator except the last one\n .filter((f, i) => {\n if (f !== search) {\n return true;\n }\n\n return i === indexOfSearch;\n })\n .join(\"\")\n );\n};\n\n/**\n * Parser en formatert string til et Number.\n * @param input Kandidaten som skal parses til et tall\n * @returns Verdien som et Number\n */\nexport function parseNumber(input: string | number) {\n if (typeof input === \"number\") {\n return input;\n }\n\n // remove all spaces from number\n const spaceRegex = /\\s/g;\n const arrNumber = input.replaceAll(spaceRegex, \"\").split(\"\");\n\n // find what separator is used for decimal notation\n const decimalNotator = arrNumber.reduce<\".\" | \",\" | null>(\n (notator, currentItem) => {\n if (currentItem === \",\" || currentItem === \".\") {\n return currentItem;\n }\n\n return notator;\n },\n null,\n );\n\n if (decimalNotator === \".\") {\n return Number(\n replaceAllButLastOccurence(arrNumber, \".\").replace(\",\", \"\"),\n );\n }\n\n if (decimalNotator === \",\") {\n return Number(\n replaceAllButLastOccurence(arrNumber, \",\")\n .replace(\".\", \"\")\n .replace(\",\", \".\"),\n );\n }\n\n return Number(arrNumber.join(\"\"));\n}\n"],"names":["replaceAllButLastOccurence","input","search","arrInput","Array","isArray","split","indexOfSearch","lastIndexOf","filter","f","i","join","parseNumber","arrNumber","replaceAll","decimalNotator","reduce","notator","currentItem","Number","replace"],"mappings":"AAAA,MAAMA,EAA6B,CAC/BC,EACAC,KAEA,MAAMC,EAAWC,MAAMC,QAAQJ,GAASA,EAAQA,EAAMK,MAAM,IACtDC,EAAgBJ,EAASK,YAAYN,GAE3C,OACIC,EAEKM,OAAO,CAACC,EAAGC,IACJD,IAAMR,GAIHS,IAAMJ,GAEhBK,KAAK,KASX,SAASC,EAAYZ,GACxB,GAAqB,iBAAVA,EACP,OAAOA,EAIX,MACMa,EAAYb,EAAMc,WADL,MAC4B,IAAIT,MAAM,IAGnDU,EAAiBF,EAAUG,OAC7B,CAACC,EAASC,IACc,MAAhBA,GAAuC,MAAhBA,EAChBA,EAGJD,EAEX,MAGJ,OACWE,OADY,MAAnBJ,EAEIhB,EAA2Bc,EAAW,KAAKO,QAAQ,IAAK,IAIzC,MAAnBL,EAEIhB,EAA2Bc,EAAW,KACjCO,QAAQ,IAAK,IACbA,QAAQ,IAAK,KAIZP,EAAUF,KAAK,IACjC"}
|