@fremtind/jokul 4.3.0 → 5.0.0-next.1
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 +1 -1
- package/build/build-stats.html +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/DescriptionListItem.cjs +2 -0
- package/build/cjs/components/beta/description-list/DescriptionListItem.cjs.map +1 -0
- package/build/cjs/{components-beta → components/beta}/description-list/index.d.cts +2 -2
- 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/index.d.cts +1 -0
- package/build/cjs/{components-beta → components/beta}/nav-link/types.d.cts +1 -1
- package/build/cjs/components/beta/select/Select.cjs +2 -0
- package/build/cjs/components/beta/select/Select.cjs.map +1 -0
- package/build/cjs/components/beta/select/index.d.cts +2 -0
- package/build/cjs/{components-beta → components/beta}/select/types.d.cts +1 -1
- package/build/cjs/components/breadcrumb/types.d.cts +1 -1
- package/build/cjs/components/checkbox/types.d.cts +1 -1
- package/build/cjs/components/cookie-consent/types.d.cts +1 -1
- package/build/cjs/components/datepicker/types.d.cts +1 -1
- package/build/cjs/components/description-list/index.cjs +1 -1
- package/build/cjs/components/description-list/index.d.cts +3 -3
- package/build/cjs/components/description-list/types.d.cts +1 -1
- package/build/cjs/components/feedback/feedbackContext.cjs.map +1 -1
- package/build/cjs/components/feedback/feedbackContext.d.cts +1 -1
- package/build/cjs/components/feedback/followup/followupContext.cjs.map +1 -1
- package/build/cjs/components/feedback/followup/followupContext.d.cts +1 -1
- package/build/cjs/components/feedback/main-question/mainQuestionContext.cjs.map +1 -1
- package/build/cjs/components/feedback/main-question/mainQuestionContext.d.cts +1 -1
- package/build/cjs/components/feedback/questions/smileyUtils.cjs.map +1 -1
- package/build/cjs/components/file-input/internal/Dropzone.cjs.map +1 -1
- package/build/cjs/components/file-input/internal/Dropzone.d.cts +1 -1
- package/build/cjs/components/file-input/internal/fileInputContext.cjs.map +1 -1
- package/build/cjs/components/file-input/internal/fileInputContext.d.cts +1 -1
- package/build/cjs/components/icon/development/internal/IconsExampleGrid.d.cts +1 -1
- package/build/cjs/components/input-group/InputGroup.d.cts +2 -2
- package/build/cjs/components/input-group/types.d.cts +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/Link.d.cts +2 -2
- package/build/cjs/components/link/types.d.cts +4 -1
- package/build/cjs/components/link-list/LinkList.d.cts +1 -1
- package/build/cjs/components/list/ListItem.cjs.map +1 -1
- package/build/cjs/components/list/ListItem.d.cts +1 -1
- package/build/cjs/components/logo/types.d.cts +1 -1
- package/build/cjs/components/menu/types.d.cts +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/Modal.d.cts +9 -2
- package/build/cjs/components/modal/index.d.cts +1 -1
- package/build/cjs/components/modal/types.d.cts +1 -19
- package/build/cjs/components/nav-link/index.cjs +1 -1
- package/build/cjs/components/nav-link/index.d.cts +2 -2
- package/build/cjs/components/radio-button/radioGroupContext.cjs.map +1 -1
- package/build/cjs/components/radio-button/radioGroupContext.d.cts +1 -1
- package/build/cjs/components/screen-reader-only/types.d.cts +1 -1
- package/build/cjs/components/select/index.cjs +1 -1
- package/build/cjs/components/select/index.d.cts +2 -2
- package/build/cjs/components/select/types.d.cts +1 -1
- package/build/cjs/components/system-message/types.d.cts +1 -1
- package/build/cjs/components/table/types.d.cts +1 -1
- package/build/cjs/components/table-of-contents/TableOfContents.d.cts +1 -1
- package/build/cjs/components/tabs/types.d.cts +1 -1
- package/build/cjs/components/toast/types.d.cts +1 -1
- package/build/cjs/components/toggle-switch/types.d.cts +1 -1
- package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
- package/build/cjs/components/tooltip/Tooltip.d.cts +1 -1
- package/build/cjs/hooks/useAnimatedHeight/types.d.cts +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/useAnimatedHeight/useAutoAnimateHeight.d.cts +1 -1
- package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.d.cts +1 -1
- package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs.map +1 -1
- package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.d.cts +1 -1
- package/build/cjs/hooks/useScreen/useScreen.cjs +1 -1
- package/build/cjs/hooks/useScreen/useScreen.cjs.map +1 -1
- 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 +1 -1
- package/build/cjs/tailwind/tailwindPreset.cjs.map +1 -1
- package/build/cjs/tokens.cjs +2 -0
- package/build/cjs/tokens.cjs.map +1 -0
- package/build/cjs/tokens.d.cts +176 -0
- package/build/cjs/utilities/getThemeAndSize.cjs +1 -1
- package/build/cjs/utilities/getThemeAndSize.cjs.map +1 -1
- package/build/cjs/utilities/getThemeAndSize.d.cts +1 -1
- package/build/cjs/utilities/index.d.cts +1 -0
- package/build/cjs/{core → utilities}/types.d.cts +1 -1
- 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.js +2 -0
- package/build/es/components/beta/description-list/DescriptionListItem.js.map +1 -0
- package/build/es/{components-beta → components/beta}/description-list/index.d.ts +2 -2
- 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 → components/beta}/nav-link/types.d.ts +1 -1
- package/build/es/components/beta/select/Select.js +2 -0
- package/build/es/components/beta/select/Select.js.map +1 -0
- package/build/es/components/beta/select/index.d.ts +2 -0
- package/build/es/{components-beta → components/beta}/select/types.d.ts +1 -1
- package/build/es/components/breadcrumb/types.d.ts +1 -1
- package/build/es/components/checkbox/types.d.ts +1 -1
- package/build/es/components/cookie-consent/types.d.ts +1 -1
- package/build/es/components/datepicker/types.d.ts +1 -1
- package/build/es/components/description-list/index.d.ts +3 -3
- package/build/es/components/description-list/index.js +1 -1
- package/build/es/components/description-list/types.d.ts +1 -1
- package/build/es/components/feedback/feedbackContext.d.ts +1 -1
- package/build/es/components/feedback/feedbackContext.js.map +1 -1
- package/build/es/components/feedback/followup/followupContext.d.ts +1 -1
- package/build/es/components/feedback/followup/followupContext.js.map +1 -1
- package/build/es/components/feedback/main-question/mainQuestionContext.d.ts +1 -1
- package/build/es/components/feedback/main-question/mainQuestionContext.js.map +1 -1
- package/build/es/components/feedback/questions/smileyUtils.js.map +1 -1
- package/build/es/components/file-input/internal/Dropzone.d.ts +1 -1
- package/build/es/components/file-input/internal/Dropzone.js.map +1 -1
- package/build/es/components/file-input/internal/fileInputContext.d.ts +1 -1
- package/build/es/components/file-input/internal/fileInputContext.js.map +1 -1
- package/build/es/components/icon/development/internal/IconsExampleGrid.d.ts +1 -1
- package/build/es/components/input-group/InputGroup.d.ts +2 -2
- package/build/es/components/input-group/types.d.ts +1 -1
- package/build/es/components/link/Link.d.ts +2 -2
- package/build/es/components/link/Link.js +1 -1
- package/build/es/components/link/Link.js.map +1 -1
- package/build/es/components/link/types.d.ts +4 -1
- package/build/es/components/link-list/LinkList.d.ts +1 -1
- package/build/es/components/list/ListItem.d.ts +1 -1
- package/build/es/components/list/ListItem.js.map +1 -1
- package/build/es/components/logo/types.d.ts +1 -1
- package/build/es/components/menu/types.d.ts +1 -1
- package/build/es/components/modal/Modal.d.ts +9 -2
- package/build/es/components/modal/Modal.js +1 -1
- package/build/es/components/modal/Modal.js.map +1 -1
- package/build/es/components/modal/index.d.ts +1 -1
- package/build/es/components/modal/types.d.ts +1 -19
- package/build/es/components/nav-link/index.d.ts +2 -2
- package/build/es/components/nav-link/index.js +1 -1
- package/build/es/components/radio-button/radioGroupContext.d.ts +1 -1
- package/build/es/components/radio-button/radioGroupContext.js.map +1 -1
- package/build/es/components/screen-reader-only/types.d.ts +1 -1
- package/build/es/components/select/index.d.ts +2 -2
- package/build/es/components/select/index.js +1 -1
- package/build/es/components/select/types.d.ts +1 -1
- package/build/es/components/system-message/types.d.ts +1 -1
- package/build/es/components/table/types.d.ts +1 -1
- package/build/es/components/table-of-contents/TableOfContents.d.ts +1 -1
- package/build/es/components/tabs/types.d.ts +1 -1
- package/build/es/components/toast/types.d.ts +1 -1
- package/build/es/components/toggle-switch/types.d.ts +1 -1
- package/build/es/components/tooltip/Tooltip.d.ts +1 -1
- package/build/es/components/tooltip/Tooltip.js.map +1 -1
- package/build/es/hooks/useAnimatedHeight/types.d.ts +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.d.ts +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.d.ts +1 -1
- package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.d.ts +1 -1
- package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.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/tailwind/plugins/jokulTypographyPlugin.js +1 -1
- package/build/es/tailwind/plugins/jokulTypographyPlugin.js.map +1 -1
- package/build/es/tailwind/tailwindPreset.js +1 -1
- package/build/es/tailwind/tailwindPreset.js.map +1 -1
- package/build/es/tokens.d.ts +176 -0
- package/build/es/tokens.js +2 -0
- package/build/es/tokens.js.map +1 -0
- package/build/es/utilities/getThemeAndSize.d.ts +1 -1
- package/build/es/utilities/getThemeAndSize.js +1 -1
- package/build/es/utilities/getThemeAndSize.js.map +1 -1
- package/build/es/utilities/index.d.ts +1 -0
- package/build/es/{core → utilities}/types.d.ts +1 -1
- package/package.json +7 -585
- package/styles/base.css +1405 -0
- package/styles/base.min.css +2 -0
- package/styles/components/autosuggest/autosuggest.css +4 -10
- package/styles/components/autosuggest/autosuggest.min.css +1 -1
- package/styles/components/autosuggest/autosuggest.scss +1 -1
- package/styles/{components-beta → components/beta}/description-list/description-list.scss +1 -1
- package/styles/{components-beta → components/beta}/nav-link/navlink.css +9 -12
- package/styles/components/beta/nav-link/navlink.min.css +1 -0
- package/styles/{components-beta → components/beta}/nav-link/navlink.scss +2 -2
- package/styles/components/beta/select/_index.scss +3 -0
- package/styles/{components-beta → components/beta}/select/select.css +5 -8
- package/styles/components/beta/select/select.min.css +1 -0
- package/styles/{components-beta → components/beta}/select/select.scss +2 -3
- package/styles/components/breadcrumb/breadcrumb.scss +1 -1
- package/styles/components/button/button.css +9 -12
- package/styles/components/button/button.min.css +1 -1
- package/styles/components/button/button.scss +2 -2
- package/styles/components/card/card.css +2 -2
- package/styles/components/card/card.min.css +1 -1
- package/styles/components/card/card.scss +1 -1
- package/styles/components/checkbox/checkbox.css +12 -33
- package/styles/components/checkbox/checkbox.min.css +1 -1
- package/styles/components/checkbox/checkbox.scss +5 -15
- package/styles/components/checkbox-panel/checkbox-panel.css +19 -46
- package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
- package/styles/components/checkbox-panel/checkbox-panel.scss +1 -1
- package/styles/components/checkbox-panel/development/styles.scss +1 -1
- package/styles/components/chip/chip.css +4 -7
- package/styles/components/chip/chip.min.css +1 -1
- package/styles/components/chip/chip.scss +2 -2
- package/styles/components/combobox/combobox.css +12 -24
- package/styles/components/combobox/combobox.min.css +1 -1
- package/styles/components/combobox/combobox.scss +1 -2
- package/styles/components/cookie-consent/cookie-consent.css +1 -5
- package/styles/components/cookie-consent/cookie-consent.min.css +1 -1
- package/styles/components/cookie-consent/cookie-consent.scss +1 -1
- package/styles/components/countdown/countdown.css +2 -2
- package/styles/components/countdown/countdown.min.css +1 -1
- package/styles/components/datepicker/_calendar-date-button.scss +7 -7
- package/styles/components/datepicker/_calendar-navigation-dropdown.scss +2 -2
- package/styles/components/datepicker/_calendar-navigation.scss +1 -1
- package/styles/components/datepicker/_calendar-table.scss +1 -1
- package/styles/components/datepicker/_calendar.scss +7 -6
- package/styles/components/datepicker/datepicker.css +13 -33
- package/styles/components/datepicker/datepicker.min.css +1 -1
- package/styles/components/datepicker/datepicker.scss +1 -1
- package/styles/components/description-list/description-list.css +1 -1
- package/styles/components/description-list/description-list.min.css +1 -1
- package/styles/components/description-list/description-list.scss +2 -2
- package/styles/components/expander/expandable.css +3 -3
- package/styles/components/expander/expandable.min.css +1 -1
- package/styles/components/expander/expandable.scss +1 -1
- package/styles/components/feedback/feedback.css +10 -14
- package/styles/components/feedback/feedback.min.css +1 -1
- package/styles/components/feedback/feedback.scss +1 -1
- package/styles/components/file/file.css +5 -13
- package/styles/components/file/file.min.css +1 -1
- package/styles/components/file/file.scss +2 -2
- package/styles/components/file-input/file-input.css +35 -57
- package/styles/components/file-input/file-input.min.css +1 -1
- package/styles/components/file-input/file-input.scss +1 -1
- package/styles/components/help/help.scss +1 -1
- package/styles/components/icon/_base-styles.scss +3 -5
- package/styles/components/icon/icon.css +9 -30
- package/styles/components/icon/icon.min.css +1 -1
- package/styles/components/icon/icon.scss +1 -15
- package/styles/components/icon-button/icon-button.css +2 -2
- package/styles/components/icon-button/icon-button.min.css +1 -1
- package/styles/components/icon-button/icon-button.scss +1 -1
- package/styles/components/image/image.css +2 -2
- package/styles/components/image/image.min.css +1 -1
- package/styles/components/image/image.scss +1 -1
- package/styles/components/input-group/_field-group.scss +1 -1
- package/styles/components/input-group/_labels.scss +1 -1
- package/styles/components/input-group/input-group.css +12 -27
- package/styles/components/input-group/input-group.min.css +1 -1
- package/styles/components/input-group/input-group.scss +1 -1
- package/styles/components/input-panel/input-panel.css +7 -13
- package/styles/components/input-panel/input-panel.min.css +1 -1
- package/styles/components/input-panel/input-panel.scss +2 -2
- package/styles/components/link/link.css +6 -7
- package/styles/components/link/link.min.css +1 -1
- package/styles/components/link/link.scss +1 -2
- package/styles/components/link-list/link-list.css +11 -21
- package/styles/components/link-list/link-list.min.css +1 -1
- package/styles/components/link-list/link-list.scss +1 -1
- package/styles/components/list/list.css +6 -27
- package/styles/components/list/list.min.css +1 -1
- package/styles/components/list/list.scss +11 -15
- package/styles/components/loader/loader.css +6 -6
- package/styles/components/loader/loader.min.css +1 -1
- package/styles/components/loader/loader.scss +1 -1
- package/styles/components/loader/skeleton-loader.css +3 -3
- package/styles/components/loader/skeleton-loader.min.css +1 -1
- package/styles/components/loader/skeleton-loader.scss +1 -1
- package/styles/components/logo/logo.css +4 -4
- package/styles/components/logo/logo.min.css +1 -1
- package/styles/components/logo/logo.scss +1 -1
- package/styles/components/menu/_menu-divider.scss +1 -1
- package/styles/components/menu/_menu-item.scss +1 -1
- package/styles/components/menu/menu.css +6 -21
- package/styles/components/menu/menu.min.css +1 -1
- package/styles/components/menu/menu.scss +7 -11
- package/styles/components/message/message.css +8 -20
- package/styles/components/message/message.min.css +1 -1
- package/styles/components/message/message.scss +1 -1
- package/styles/components/modal/modal.css +35 -125
- package/styles/components/modal/modal.min.css +1 -1
- package/styles/components/modal/modal.scss +95 -6
- package/styles/components/nav-link/nav-link.css +4 -4
- package/styles/components/nav-link/nav-link.min.css +1 -1
- package/styles/components/nav-link/nav-link.scss +2 -2
- package/styles/components/pagination/development/styles.scss +1 -1
- package/styles/components/pagination/pagination.css +1 -1
- package/styles/components/pagination/pagination.min.css +1 -1
- package/styles/components/pagination/pagination.scss +1 -1
- package/styles/components/popover/popover.css +5 -17
- package/styles/components/popover/popover.min.css +1 -1
- package/styles/components/popover/popover.scss +6 -10
- package/styles/components/progress-bar/progress-bar.css +3 -3
- package/styles/components/progress-bar/progress-bar.min.css +1 -1
- package/styles/components/progress-bar/progress-bar.scss +1 -1
- package/styles/components/radio-button/radio-button.css +12 -30
- package/styles/components/radio-button/radio-button.min.css +1 -1
- package/styles/components/radio-button/radio-button.scss +5 -15
- package/styles/components/radio-panel/development/styles.scss +1 -1
- package/styles/components/radio-panel/radio-panel.css +7 -13
- package/styles/components/radio-panel/radio-panel.min.css +1 -1
- package/styles/components/radio-panel/radio-panel.scss +1 -1
- package/styles/components/search/search-with-submit-button.css +2 -2
- package/styles/components/search/search-with-submit-button.min.css +1 -1
- package/styles/components/search/search-with-submit-button.scss +1 -1
- package/styles/components/search/search.css +8 -14
- package/styles/components/search/search.min.css +1 -1
- package/styles/components/search/search.scss +1 -1
- package/styles/components/segmented-control/segmented-control.css +39 -97
- package/styles/components/segmented-control/segmented-control.min.css +1 -1
- package/styles/components/segmented-control/segmented-control.scss +1 -1
- package/styles/components/select/select.css +12 -21
- package/styles/components/select/select.min.css +1 -1
- package/styles/components/select/select.scss +1 -2
- package/styles/components/summary-table/development/summary-table-example.scss +1 -1
- package/styles/components/summary-table/summary-table.css +3 -6
- package/styles/components/summary-table/summary-table.min.css +1 -1
- package/styles/components/summary-table/summary-table.scss +3 -3
- package/styles/components/system-message/system-message.css +4 -7
- package/styles/components/system-message/system-message.min.css +1 -1
- package/styles/components/system-message/system-message.scss +1 -2
- package/styles/components/table/_table-caption.scss +1 -1
- package/styles/components/table/_table-cell.scss +1 -1
- package/styles/components/table/_table-head.scss +3 -13
- package/styles/components/table/_table-header.scss +4 -4
- package/styles/components/table/_table-pagination.scss +1 -1
- package/styles/components/table/_table-row.scss +1 -1
- package/styles/components/table/table.css +18 -46
- package/styles/components/table/table.min.css +1 -1
- package/styles/components/table/table.scss +1 -1
- package/styles/components/table-of-contents/table-of-contents.css +3 -7
- package/styles/components/table-of-contents/table-of-contents.min.css +1 -1
- package/styles/components/table-of-contents/table-of-contents.scss +1 -1
- package/styles/components/tabs/tabs.css +6 -9
- package/styles/components/tabs/tabs.min.css +1 -1
- package/styles/components/tabs/tabs.scss +1 -1
- package/styles/components/tag/tag.css +2 -5
- package/styles/components/tag/tag.min.css +1 -1
- package/styles/components/tag/tag.scss +2 -2
- package/styles/components/text-area/text-area.css +9 -18
- package/styles/components/text-area/text-area.min.css +1 -1
- package/styles/components/text-area/text-area.scss +1 -1
- package/styles/components/text-input/text-input.css +4 -10
- package/styles/components/text-input/text-input.min.css +1 -1
- package/styles/components/text-input/text-input.scss +2 -3
- package/styles/components/toast/toast.css +6 -12
- package/styles/components/toast/toast.min.css +1 -1
- package/styles/components/toast/toast.scss +1 -2
- package/styles/components/toggle-switch/_toggle-slider.scss +1 -1
- package/styles/components/toggle-switch/toggle-switch.css +7 -10
- package/styles/components/toggle-switch/toggle-switch.min.css +2 -2
- package/styles/components/toggle-switch/toggle-switch.scss +1 -1
- package/styles/components/tooltip/tooltip.css +4 -8
- package/styles/components/tooltip/tooltip.min.css +1 -1
- package/styles/components/tooltip/tooltip.scss +1 -1
- package/styles/{styles.css → components.css} +329 -734
- package/styles/components.min.css +3 -0
- package/styles/{styles.scss → components.scss} +2 -2
- package/styles/{core/global → global}/_base-class.scss +6 -4
- package/styles/{core/global → global}/_top-layer.scss +1 -1
- package/styles/hooks/stories/styles.scss +5 -7
- package/styles/{core/jkl/_theme.scss → jkl/_forced-colors.scss} +0 -49
- package/styles/{core/jkl → jkl}/_index.scss +3 -6
- package/styles/{core/jkl → jkl}/_motion.scss +8 -26
- package/styles/{core/jkl → jkl}/_reset.scss +2 -2
- package/styles/{core/jkl → jkl}/_spacing.scss +1 -6
- package/styles/jkl/_tokens.scss +306 -0
- package/styles/{core/jkl → jkl}/_typography.scss +5 -98
- package/styles/shared/input/shared-input-styles.scss +1 -1
- package/styles/shared/track/track.scss +1 -1
- package/styles/tailwind.css +171 -0
- package/styles/theme/_color-scheme.scss +84 -0
- package/styles/{core/theme → theme}/_dynamic-spacing.scss +9 -5
- package/styles/theme/_fonts.scss +147 -0
- package/styles/theme/_index.scss +5 -0
- package/styles/theme/_size.scss +53 -0
- package/styles/theme/_tokens.scss +94 -0
- package/styles/{core/utility → utility}/_headings.scss +1 -1
- package/styles/utility/_paragraphs.scss +24 -0
- package/styles/{core/utility → utility}/_screen-reader.scss +1 -1
- package/styles/{core/utility → utility}/_spacing.scss +4 -3
- package/build/cjs/components-beta/description-list/DescriptionList.cjs +0 -2
- package/build/cjs/components-beta/description-list/DescriptionList.cjs.map +0 -1
- package/build/cjs/components-beta/description-list/DescriptionListItem.cjs +0 -2
- package/build/cjs/components-beta/description-list/DescriptionListItem.cjs.map +0 -1
- package/build/cjs/components-beta/nav-link/NavLink.cjs +0 -2
- package/build/cjs/components-beta/nav-link/NavLink.cjs.map +0 -1
- package/build/cjs/components-beta/nav-link/index.d.cts +0 -1
- package/build/cjs/components-beta/select/Select.cjs +0 -2
- package/build/cjs/components-beta/select/Select.cjs.map +0 -1
- package/build/cjs/components-beta/select/index.d.cts +0 -2
- package/build/cjs/core/index.cjs +0 -2
- package/build/cjs/core/index.cjs.map +0 -1
- package/build/cjs/core/index.d.cts +0 -2
- package/build/cjs/core/tokens/build-tailwind-4.cjs +0 -2
- package/build/cjs/core/tokens/build-tailwind-4.cjs.map +0 -1
- package/build/cjs/core/tokens/build-tailwind-4.d.cts +0 -1
- package/build/cjs/core/tokens/style-dictionary/build.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/build.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/build.d.cts +0 -0
- package/build/cjs/core/tokens/style-dictionary/config.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/config.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/config.d.cts +0 -4
- package/build/cjs/core/tokens/style-dictionary/filters/index.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/filters/index.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/filters/index.d.cts +0 -3
- package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.d.cts +0 -3
- package/build/cjs/core/tokens/style-dictionary/formats/css-theme-variables.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/formats/css-theme-variables.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/formats/css-theme-variables.d.cts +0 -3
- package/build/cjs/core/tokens/style-dictionary/formats/index.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/formats/index.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/formats/index.d.cts +0 -6
- package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.d.cts +0 -3
- package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.d.cts +0 -3
- package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.d.cts +0 -3
- package/build/cjs/core/tokens/style-dictionary/register.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/register.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/register.d.cts +0 -1
- package/build/cjs/core/tokens/style-dictionary/transforms/index.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/transforms/index.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/transforms/index.d.cts +0 -2
- package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.cjs +0 -2
- package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.cjs.map +0 -1
- package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.d.cts +0 -3
- package/build/cjs/core/tokens.cjs +0 -2
- package/build/cjs/core/tokens.cjs.map +0 -1
- package/build/cjs/core/tokens.d.cts +0 -593
- package/build/cjs/index.cjs +0 -2
- package/build/cjs/index.cjs.map +0 -1
- package/build/cjs/index.d.cts +0 -3
- package/build/cjs/tailwind/colors.cjs +0 -2
- package/build/cjs/tailwind/colors.cjs.map +0 -1
- package/build/cjs/tailwind/colors.d.cts +0 -39
- package/build/es/components-beta/description-list/DescriptionList.js +0 -2
- package/build/es/components-beta/description-list/DescriptionList.js.map +0 -1
- package/build/es/components-beta/description-list/DescriptionListItem.js +0 -2
- package/build/es/components-beta/description-list/DescriptionListItem.js.map +0 -1
- package/build/es/components-beta/nav-link/NavLink.js +0 -2
- package/build/es/components-beta/nav-link/NavLink.js.map +0 -1
- package/build/es/components-beta/nav-link/index.d.ts +0 -1
- package/build/es/components-beta/select/Select.js +0 -2
- package/build/es/components-beta/select/Select.js.map +0 -1
- package/build/es/components-beta/select/index.d.ts +0 -2
- package/build/es/core/index.d.ts +0 -2
- package/build/es/core/index.js +0 -2
- package/build/es/core/index.js.map +0 -1
- package/build/es/core/tokens/build-tailwind-4.d.ts +0 -1
- package/build/es/core/tokens/build-tailwind-4.js +0 -2
- package/build/es/core/tokens/build-tailwind-4.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/build.d.ts +0 -0
- package/build/es/core/tokens/style-dictionary/build.js +0 -2
- package/build/es/core/tokens/style-dictionary/build.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/config.d.ts +0 -4
- package/build/es/core/tokens/style-dictionary/config.js +0 -2
- package/build/es/core/tokens/style-dictionary/config.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/filters/index.d.ts +0 -3
- package/build/es/core/tokens/style-dictionary/filters/index.js +0 -2
- package/build/es/core/tokens/style-dictionary/filters/index.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.d.ts +0 -3
- package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.js +0 -2
- package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/formats/css-theme-variables.d.ts +0 -3
- package/build/es/core/tokens/style-dictionary/formats/css-theme-variables.js +0 -2
- package/build/es/core/tokens/style-dictionary/formats/css-theme-variables.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/formats/index.d.ts +0 -6
- package/build/es/core/tokens/style-dictionary/formats/index.js +0 -2
- package/build/es/core/tokens/style-dictionary/formats/index.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/formats/javascript-esm.d.ts +0 -3
- package/build/es/core/tokens/style-dictionary/formats/javascript-esm.js +0 -2
- package/build/es/core/tokens/style-dictionary/formats/javascript-esm.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.d.ts +0 -3
- package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.js +0 -2
- package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.d.ts +0 -3
- package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.js +0 -2
- package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/register.d.ts +0 -1
- package/build/es/core/tokens/style-dictionary/register.js +0 -2
- package/build/es/core/tokens/style-dictionary/register.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/transforms/index.d.ts +0 -2
- package/build/es/core/tokens/style-dictionary/transforms/index.js +0 -2
- package/build/es/core/tokens/style-dictionary/transforms/index.js.map +0 -1
- package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.d.ts +0 -3
- package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.js +0 -2
- package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.js.map +0 -1
- package/build/es/core/tokens.d.ts +0 -593
- package/build/es/core/tokens.js +0 -2
- package/build/es/core/tokens.js.map +0 -1
- package/build/es/index.d.ts +0 -3
- package/build/es/index.js +0 -2
- package/build/es/index.js.map +0 -1
- package/build/es/tailwind/colors.d.ts +0 -39
- package/build/es/tailwind/colors.js +0 -2
- package/build/es/tailwind/colors.js.map +0 -1
- package/build/index-Ck94bTpt.cjs +0 -2
- package/build/index-Ck94bTpt.cjs.map +0 -1
- package/build/index-DOHQmuhD.js +0 -2
- package/build/index-DOHQmuhD.js.map +0 -1
- package/src/fonts/styles/_index.scss +0 -1
- package/src/fonts/styles/webfonts.scss +0 -145
- package/src/tailwind/v4/jokul-tailwind.css +0 -266
- package/styles/components/modal/_layout.scss +0 -22
- package/styles/components/modal/_modal-base.scss +0 -32
- package/styles/components/modal/_motion.scss +0 -45
- package/styles/components/modal/_overlay.scss +0 -20
- package/styles/components/modal/_parts.scss +0 -33
- package/styles/components/modal/_placement.scss +0 -59
- package/styles/components-beta/nav-link/navlink.min.css +0 -1
- package/styles/components-beta/select/_index.scss +0 -3
- package/styles/components-beta/select/select.min.css +0 -1
- package/styles/core/core.css +0 -1731
- package/styles/core/core.min.css +0 -2
- package/styles/core/jkl/_colors.scss +0 -26
- package/styles/core/jkl/_helpers.scss +0 -26
- package/styles/core/jkl/_tokens.scss +0 -59
- package/styles/core/jkl/legacy/_dynamic-colors.scss +0 -40
- package/styles/core/jkl/legacy/_index.scss +0 -2
- package/styles/core/jkl/legacy/_tokens.scss +0 -742
- package/styles/core/theme/_color-tokens.scss +0 -73
- package/styles/core/theme/_index.scss +0 -10
- package/styles/core/theme/_legacy-color-tokens.scss +0 -81
- package/styles/core/theme/_legacy-tokens.scss +0 -279
- package/styles/core/theme/_old-vars.scss +0 -21
- package/styles/core/theme/_shape.scss +0 -12
- package/styles/core/theme/_spacing-tokens.scss +0 -33
- package/styles/core/theme/_spacing.scss +0 -64
- package/styles/core/theme/_tokens.scss +0 -33
- package/styles/core/theme/_typography.scss +0 -38
- package/styles/core/utility/_paragraphs.scss +0 -29
- package/styles/fonts/_index.scss +0 -1
- package/styles/fonts/webfonts.css +0 -115
- package/styles/fonts/webfonts.min.css +0 -1
- package/styles/fonts/webfonts.scss +0 -145
- package/styles/styles.min.css +0 -3
- /package/build/cjs/{components-beta → components/beta}/description-list/DescriptionList.d.cts +0 -0
- /package/build/cjs/{components-beta → components/beta}/description-list/DescriptionListItem.d.cts +0 -0
- /package/build/cjs/{components-beta → components/beta}/description-list/index.cjs +0 -0
- /package/build/cjs/{components-beta → components/beta}/description-list/index.cjs.map +0 -0
- /package/build/cjs/{components-beta → components/beta}/description-list/types.cjs +0 -0
- /package/build/cjs/{components-beta → components/beta}/description-list/types.cjs.map +0 -0
- /package/build/cjs/{components-beta → components/beta}/description-list/types.d.cts +0 -0
- /package/build/cjs/{components-beta → components/beta}/nav-link/NavLink.d.cts +0 -0
- /package/build/cjs/{components-beta → components/beta}/nav-link/index.cjs +0 -0
- /package/build/cjs/{components-beta → components/beta}/nav-link/index.cjs.map +0 -0
- /package/build/cjs/{components-beta → components/beta}/nav-link/types.cjs +0 -0
- /package/build/cjs/{components-beta → components/beta}/nav-link/types.cjs.map +0 -0
- /package/build/cjs/{components-beta → components/beta}/select/Select.d.cts +0 -0
- /package/build/cjs/{components-beta → components/beta}/select/index.cjs +0 -0
- /package/build/cjs/{components-beta → components/beta}/select/index.cjs.map +0 -0
- /package/build/cjs/{components-beta → components/beta}/select/types.cjs +0 -0
- /package/build/cjs/{components-beta → components/beta}/select/types.cjs.map +0 -0
- /package/build/cjs/{core → utilities}/types.cjs +0 -0
- /package/build/cjs/{core → utilities}/types.cjs.map +0 -0
- /package/build/es/{components-beta → components/beta}/description-list/DescriptionList.d.ts +0 -0
- /package/build/es/{components-beta → components/beta}/description-list/DescriptionListItem.d.ts +0 -0
- /package/build/es/{components-beta → components/beta}/description-list/index.js +0 -0
- /package/build/es/{components-beta → components/beta}/description-list/index.js.map +0 -0
- /package/build/es/{components-beta → components/beta}/description-list/types.d.ts +0 -0
- /package/build/es/{components-beta → components/beta}/description-list/types.js +0 -0
- /package/build/es/{components-beta → components/beta}/description-list/types.js.map +0 -0
- /package/build/es/{components-beta → components/beta}/nav-link/NavLink.d.ts +0 -0
- /package/build/es/{components-beta → components/beta}/nav-link/index.js +0 -0
- /package/build/es/{components-beta → components/beta}/nav-link/index.js.map +0 -0
- /package/build/es/{components-beta → components/beta}/nav-link/types.js +0 -0
- /package/build/es/{components-beta → components/beta}/nav-link/types.js.map +0 -0
- /package/build/es/{components-beta → components/beta}/select/Select.d.ts +0 -0
- /package/build/es/{components-beta → components/beta}/select/index.js +0 -0
- /package/build/es/{components-beta → components/beta}/select/index.js.map +0 -0
- /package/build/es/{components-beta → components/beta}/select/types.js +0 -0
- /package/build/es/{components-beta → components/beta}/select/types.js.map +0 -0
- /package/build/es/{core → utilities}/types.js +0 -0
- /package/build/es/{core → utilities}/types.js.map +0 -0
- /package/styles/{core/_layers.scss → _layers.scss} +0 -0
- /package/styles/{core/core.scss → base.scss} +0 -0
- /package/styles/{components-beta → components/beta}/description-list/_index.scss +0 -0
- /package/styles/{components-beta → components/beta}/description-list/description-list.css +0 -0
- /package/styles/{components-beta → components/beta}/description-list/description-list.min.css +0 -0
- /package/styles/{components-beta → components/beta}/nav-link/_index.scss +0 -0
- /package/styles/{core/global → global}/_index.scss +0 -0
- /package/styles/{core/jkl → jkl}/_convert.scss +0 -0
- /package/styles/{core/jkl → jkl}/_navigation.scss +0 -0
- /package/styles/{core/jkl → jkl}/_ornaments.scss +0 -0
- /package/styles/{core/jkl → jkl}/_responsive-units.scss +0 -0
- /package/styles/{core/jkl → jkl}/_screenreader.scss +0 -0
- /package/styles/{core/jkl → jkl}/_screens.scss +0 -0
- /package/styles/{core/jkl → jkl}/_shadows.scss +0 -0
- /package/styles/{core/jkl → jkl}/_underline.scss +0 -0
- /package/styles/{core/jkl → jkl}/_z-index.scss +0 -0
- /package/styles/{core/resets → resets}/_index.scss +0 -0
- /package/styles/{core/resets → resets}/_normalize.scss +0 -0
- /package/styles/{core/resets → resets}/_reset.scss +0 -0
- /package/styles/{core/utility → utility}/_index.scss +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItem.js","sources":["../../../../src/components/list/ListItem.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC } from \"react\";\nimport type { WithChildren } from \"../../
|
|
1
|
+
{"version":3,"file":"ListItem.js","sources":["../../../../src/components/list/ListItem.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type FC } from \"react\";\nimport type { WithChildren } from \"../../utilities/types.js\";\n\nexport interface ListItemProps extends WithChildren {\n className?: string;\n}\n\ntype ValidListItems = \"normal\" | \"check\" | \"cross\";\n\nfunction makeListItem(listItemType: ValidListItems): FC<ListItemProps> {\n const ListItem: FC<ListItemProps> = ({ className, children, ...rest }) => {\n return (\n <li\n className={clsx(\"jkl-list__item\", className, {\n \"jkl-list__item--iconed\": listItemType !== \"normal\",\n \"jkl-list__item--check\": listItemType === \"check\",\n \"jkl-list__item--cross\": listItemType === \"cross\",\n })}\n data-testid=\"jkl-list-item\"\n {...rest}\n >\n {children}\n </li>\n );\n };\n return ListItem;\n}\n\nexport const ListItem = makeListItem(\"normal\");\nListItem.displayName = \"ListItem\";\nexport const CrossListItem = makeListItem(\"cross\");\nCrossListItem.displayName = \"CrossListItem\";\nexport const CheckListItem = makeListItem(\"check\");\nCheckListItem.displayName = \"CheckListItem\";\n"],"names":["makeListItem","listItemType","className","children","rest","jsx","clsx","ListItem","displayName","CrossListItem","CheckListItem"],"mappings":"oGAUA,SAASA,EAAaC,GAgBlB,MAfoC,EAAGC,UAAAA,EAAWC,SAAAA,KAAaC,KAEvDC,EAAC,KAAA,CACGH,UAAWI,EAAK,iBAAkBJ,EAAW,CACzC,yBAA2C,WAAjBD,EAC1B,wBAA0C,UAAjBA,EACzB,wBAA0C,UAAjBA,IAE7B,cAAY,mBACRG,EAEHD,SAAAA,GAKjB,CAEO,MAAMI,EAAWP,EAAa,UACrCO,EAASC,YAAc,WAChB,MAAMC,EAAgBT,EAAa,SAC1CS,EAAcD,YAAc,gBACrB,MAAME,EAAgBV,EAAa,SAC1CU,EAAcF,YAAc"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Placement } from '@floating-ui/react';
|
|
2
2
|
import { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
|
|
3
|
-
import { DataTestAutoId, WithChildren } from '../../core/types.js';
|
|
4
3
|
import { SwipeChangeHandler } from '../../hooks/useSwipeGesture/useSwipeGesture.js';
|
|
5
4
|
import { PolymorphicPropsWithRef } from '../../utilities/polymorphism/polymorphism.js';
|
|
5
|
+
import { DataTestAutoId, WithChildren } from '../../utilities/types.js';
|
|
6
6
|
export interface MenuProps extends DataTestAutoId, WithChildren, Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
|
|
7
7
|
className?: string;
|
|
8
8
|
/**
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { IconButtonProps } from '../icon-button/types.js';
|
|
3
|
-
import { BaseModalProps,
|
|
3
|
+
import { BaseModalProps, ModalProps } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Ment å brukes med `useModal`.
|
|
6
6
|
*/
|
|
7
|
-
export declare const ModalContainer: React.ForwardRefExoticComponent<Omit<
|
|
7
|
+
export declare const ModalContainer: React.ForwardRefExoticComponent<Omit<{
|
|
8
|
+
id: string;
|
|
9
|
+
ref: (node: React.ReactNode | HTMLElement) => void;
|
|
10
|
+
role: string;
|
|
11
|
+
'aria-modal': boolean;
|
|
12
|
+
'aria-hidden': boolean;
|
|
13
|
+
'aria-labelledby': string;
|
|
14
|
+
} & BaseModalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
8
15
|
/**
|
|
9
16
|
* Ment å brukes med `useModal`.
|
|
10
17
|
*/
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as a}from"react/jsx-runtime";import{c as
|
|
1
|
+
import{jsx as a}from"react/jsx-runtime";import{c as s}from"../../../clsx-BeLtu-UY.js";import{forwardRef as l}from"react";import{IconButton as o}from"../icon-button/IconButton.js";import{CloseIcon as e}from"../icon/icons/CloseIcon.js";const d=l(({className:l,...o},e)=>a("div",{className:s("jkl-modal-container",l),...o,ref:e,"data-portal":!0}));d.displayName="ModalContainer";const t=l(({className:l,transparent:o,...e},d)=>a("div",{className:s("jkl-modal-overlay",l,{"jkl-modal-overlay--transparent":o}),...e,ref:d}));t.displayName="ModalOverlay";const m=l(({className:l,component:o,padding:e,style:d,...t},m)=>a(o||"div",{className:s("jkl jkl-modal",l),style:{"--jkl-modal-padding":e?`var(--jkl-spacing-${e})`:void 0,...d},...t,ref:m}));m.displayName="Modal";const c=l(({className:l,...o},e)=>a("div",{className:s("jkl-modal-header",l),...o,ref:e}));c.displayName="ModalHeader";const r=l(({className:l,...o},e)=>a("p",{className:s("jkl-modal-title",l),...o,ref:e}));r.displayName="ModalTitle";const n=l(({className:l,...d},t)=>a(o,{className:s("jkl-modal-close",l),"data-testautoid":"jkl-modal-close",...d,ref:t,children:a(e,{variant:"medium"})}));n.displayName="ModalCloseButton";const i=l(({className:l,...o},e)=>a("div",{className:s("jkl-modal-body",l),...o,ref:e}));i.displayName="ModalBody";const N=l(({className:l,...o},e)=>a("div",{className:s("jkl-modal-actions",l),...o,ref:e}));N.displayName="ModalActions";export{m as Modal,N as ModalActions,i as ModalBody,n as ModalCloseButton,d as ModalContainer,c as ModalHeader,t as ModalOverlay,r as ModalTitle};
|
|
2
2
|
//# sourceMappingURL=Modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { IconButton } from \"../icon-button/IconButton.js\";\nimport type { IconButtonProps } from \"../icon-button/types.js\";\nimport { CloseIcon } from \"../icon/icons/CloseIcon.js\";\nimport type {\n BaseModalProps,\n ModalConfig,\n
|
|
1
|
+
{"version":3,"file":"Modal.js","sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { IconButton } from \"../icon-button/IconButton.js\";\nimport type { IconButtonProps } from \"../icon-button/types.js\";\nimport { CloseIcon } from \"../icon/icons/CloseIcon.js\";\nimport type {\n BaseModalProps,\n ModalConfig,\n ModalOverlayProps,\n ModalProps,\n} from \"./types.js\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalContainer = forwardRef<\n HTMLDivElement,\n ModalConfig[\"container\"] & BaseModalProps\n>(({ className, ...rest }, ref) => {\n // TODO: 'data-portal' fjernes når modalen tar i bruk Popover komponenten. Issue: https://github.com/fremtind/jokul/issues/4356\n return (\n <div\n className={clsx(\"jkl-modal-container\", className)}\n {...rest}\n ref={ref}\n data-portal\n />\n );\n});\nModalContainer.displayName = \"ModalContainer\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalOverlay = forwardRef<HTMLDivElement, ModalOverlayProps>(\n ({ className, transparent, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-overlay\", className, {\n \"jkl-modal-overlay--transparent\": transparent,\n })}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalOverlay.displayName = \"ModalOverlay\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const Modal = forwardRef<HTMLElement, ModalConfig[\"modal\"] & ModalProps>(\n ({ className, component, padding, style, ...rest }, ref) => {\n const C = component || \"div\";\n return (\n <C\n className={clsx(\"jkl jkl-modal\", className)}\n style={\n {\n \"--jkl-modal-padding\": padding\n ? `var(--jkl-spacing-${padding})`\n : undefined,\n ...style,\n } as React.CSSProperties\n }\n {...rest}\n ref={ref}\n />\n );\n },\n);\nModal.displayName = \"Modal\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalHeader = forwardRef<HTMLDivElement, BaseModalProps>(\n ({ className, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-header\", className)}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalHeader.displayName = \"ModalHeader\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalTitle = forwardRef<\n HTMLParagraphElement,\n ModalConfig[\"title\"] & BaseModalProps\n>(({ className, ...rest }, ref) => (\n <p className={clsx(\"jkl-modal-title\", className)} {...rest} ref={ref} />\n));\nModalTitle.displayName = \"ModalTitle\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalCloseButton = forwardRef<\n HTMLButtonElement,\n Omit<ModalConfig[\"closeButton\"], \"onClick\"> &\n BaseModalProps &\n IconButtonProps\n>(({ className, ...rest }, ref) => (\n <IconButton\n className={clsx(\"jkl-modal-close\", className)}\n data-testautoid=\"jkl-modal-close\"\n {...rest}\n ref={ref}\n >\n <CloseIcon variant=\"medium\" />\n </IconButton>\n));\nModalCloseButton.displayName = \"ModalCloseButton\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalBody = forwardRef<HTMLDivElement, BaseModalProps>(\n ({ className, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-body\", className)}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalBody.displayName = \"ModalBody\";\n\n/**\n * Ment å brukes med `useModal`.\n */\nexport const ModalActions = forwardRef<HTMLDivElement, BaseModalProps>(\n ({ className, ...rest }, ref) => (\n <div\n className={clsx(\"jkl-modal-actions\", className)}\n {...rest}\n ref={ref}\n />\n ),\n);\nModalActions.displayName = \"ModalActions\";\n"],"names":["ModalContainer","forwardRef","className","rest","ref","jsx","clsx","displayName","ModalOverlay","transparent","Modal","component","padding","style","ModalHeader","ModalTitle","ModalCloseButton","IconButton","children","CloseIcon","variant","ModalBody","ModalActions"],"mappings":"0OAeO,MAAMA,EAAiBC,EAG5B,EAAGC,UAAAA,KAAcC,GAAQC,IAGnBC,EAAC,MAAA,CACGH,UAAWI,EAAK,sBAAuBJ,MACnCC,EACJC,IAAAA,EACA,eAAW,KAIvBJ,EAAeO,YAAc,iBAKtB,MAAMC,EAAeP,EACxB,EAAGC,UAAAA,EAAWO,YAAAA,KAAgBN,GAAQC,IAClCC,EAAC,MAAA,CACGH,UAAWI,EAAK,oBAAqBJ,EAAW,CAC5C,iCAAkCO,OAElCN,EACJC,IAAAA,KAIZI,EAAaD,YAAc,eAKpB,MAAMG,EAAQT,EACjB,EAAGC,UAAAA,EAAWS,UAAAA,EAAWC,QAAAA,EAASC,MAAAA,KAAUV,GAAQC,IAG5CC,EAFMM,GAAa,MAElB,CACGT,UAAWI,EAAK,gBAAiBJ,GACjCW,MACI,CACI,sBAAuBD,EACjB,qBAAqBA,UACrB,KACHC,MAGPV,EACJC,IAAAA,KAKhBM,EAAMH,YAAc,QAKb,MAAMO,EAAcb,EACvB,EAAGC,UAAAA,KAAcC,GAAQC,IACrBC,EAAC,MAAA,CACGH,UAAWI,EAAK,mBAAoBJ,MAChCC,EACJC,IAAAA,KAIZU,EAAYP,YAAc,cAKnB,MAAMQ,EAAad,EAGxB,EAAGC,UAAAA,KAAcC,GAAQC,MACtB,IAAA,CAAEF,UAAWI,EAAK,kBAAmBJ,MAAgBC,EAAMC,IAAAA,KAEhEW,EAAWR,YAAc,aAKlB,MAAMS,EAAmBf,EAK9B,EAAGC,UAAAA,KAAcC,GAAQC,IACvBC,EAACY,EAAA,CACGf,UAAWI,EAAK,kBAAmBJ,GACnC,kBAAgB,qBACZC,EACJC,IAAAA,EAEAc,SAAAb,EAACc,EAAA,CAAUC,QAAQ,cAG3BJ,EAAiBT,YAAc,mBAKxB,MAAMc,EAAYpB,EACrB,EAAGC,UAAAA,KAAcC,GAAQC,IACrBC,EAAC,MAAA,CACGH,UAAWI,EAAK,iBAAkBJ,MAC9BC,EACJC,IAAAA,KAIZiB,EAAUd,YAAc,YAKjB,MAAMe,EAAerB,EACxB,EAAGC,UAAAA,KAAcC,GAAQC,IACrBC,EAAC,MAAA,CACGH,UAAWI,EAAK,oBAAqBJ,MACjCC,EACJC,IAAAA,KAIZkB,EAAaf,YAAc"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { ModalContainer, ModalOverlay, Modal, ModalHeader, ModalTitle, ModalCloseButton, ModalBody, ModalActions, } from './Modal.js';
|
|
2
2
|
export { useModal, type ModalInstance } from './useModal.js';
|
|
3
|
-
export type { ModalProps, BaseModalProps,
|
|
3
|
+
export type { ModalProps, BaseModalProps, ModalOverlayProps, UseModalOptions, ModalConfig, } from './types.js';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { A11yDialogConfig, A11yDialogProps } from 'react-a11y-dialog';
|
|
2
|
-
import { WithOptionalChildren } from '../../
|
|
3
|
-
export type ModalPlacement = "center" | "left" | "bottom" | "right";
|
|
2
|
+
import { WithOptionalChildren } from '../../utilities/types.js';
|
|
4
3
|
export interface UseModalOptions extends Omit<A11yDialogProps, "id" | "closeButtonPosition"> {
|
|
5
4
|
id?: string;
|
|
6
5
|
/**
|
|
@@ -35,26 +34,9 @@ export interface ModalProps extends WithOptionalChildren {
|
|
|
35
34
|
padding?: 16 | 24 | 40;
|
|
36
35
|
}
|
|
37
36
|
export type BaseModalProps = Omit<ModalProps, "padding" | "component">;
|
|
38
|
-
export type ModalContainerProps = ModalConfig["container"] & BaseModalProps & {
|
|
39
|
-
/**
|
|
40
|
-
* Plassering og animasjon styres av containeren, siden det er den som
|
|
41
|
-
* håndterer viewport-layout og `aria-hidden`-tilstand.
|
|
42
|
-
*
|
|
43
|
-
* @default "center"
|
|
44
|
-
*/
|
|
45
|
-
placement?: ModalPlacement;
|
|
46
|
-
/**
|
|
47
|
-
* Slå på enkel slide-in-animasjon når modalen vises.
|
|
48
|
-
*
|
|
49
|
-
* @default false
|
|
50
|
-
*/
|
|
51
|
-
slideIn?: boolean;
|
|
52
|
-
};
|
|
53
37
|
export type ModalOverlayProps = ModalConfig["overlay"] & BaseModalProps & {
|
|
54
38
|
/**
|
|
55
39
|
* Rendre uten bakgrunnsfarge, men med click target for å lukke modalen ved klikk utenfor.
|
|
56
|
-
*
|
|
57
|
-
* @default false
|
|
58
40
|
*/
|
|
59
41
|
transparent?: boolean;
|
|
60
42
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { NavLink } from './NavLink.js';
|
|
2
2
|
export type { NavLinkProps } from './types.js';
|
|
3
|
-
export { NavLink as BETA_NavLink } from '
|
|
4
|
-
export type { NavLinkProps as BETA_NavLinkProps } from '
|
|
3
|
+
export { NavLink as BETA_NavLink } from '../beta/nav-link/NavLink.jsx';
|
|
4
|
+
export type { NavLinkProps as BETA_NavLinkProps } from '../beta/nav-link/types.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{NavLink as a}from"./NavLink.js";import{NavLink as
|
|
1
|
+
import{NavLink as a}from"./NavLink.js";import{NavLink as i}from"../beta/nav-link/NavLink.js";export{i as BETA_NavLink,a as NavLink};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radioGroupContext.js","sources":["../../../../src/components/radio-button/radioGroupContext.tsx"],"sourcesContent":["import React, {\n createContext,\n useContext,\n type ChangeEventHandler,\n} from \"react\";\nimport type { WithChildren } from \"../../
|
|
1
|
+
{"version":3,"file":"radioGroupContext.js","sources":["../../../../src/components/radio-button/radioGroupContext.tsx"],"sourcesContent":["import React, {\n createContext,\n useContext,\n type ChangeEventHandler,\n} from \"react\";\nimport type { WithChildren } from \"../../utilities/types.js\";\n\ntype RadioGroupContext = {\n name: string | undefined;\n value: string | undefined;\n inline: boolean;\n invalid: boolean;\n onChange: ChangeEventHandler<HTMLInputElement> | undefined;\n};\n\nconst radioGroupContext = createContext<RadioGroupContext>({\n name: undefined,\n value: undefined,\n onChange: () => {\n return;\n },\n inline: false,\n invalid: false,\n});\n\nexport const useRadioGroupContext = (): RadioGroupContext =>\n useContext(radioGroupContext);\n\ninterface Props extends WithChildren {\n state: RadioGroupContext;\n}\n\nexport const RadioGroupContextProvider: React.FC<Props> = ({\n state,\n children,\n}) => (\n <radioGroupContext.Provider value={state}>\n {children}\n </radioGroupContext.Provider>\n);\n"],"names":["radioGroupContext","createContext","name","value","onChange","inline","invalid","useRadioGroupContext","useContext","RadioGroupContextProvider","state","children","Provider"],"mappings":"8FAeA,MAAMA,EAAoBC,EAAiC,CACvDC,UAAM,EACNC,WAAO,EACPC,SAAU,OAGVC,QAAQ,EACRC,SAAS,IAGAC,EAAuB,IAChCC,EAAWR,GAMFS,EAA6C,EACtDC,MAAAA,EACAC,SAAAA,OAECX,EAAkBY,SAAlB,CAA2BT,MAAOO,EAC9BC,SAAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Select } from './Select.js';
|
|
2
2
|
export { NativeSelect } from './NativeSelect.js';
|
|
3
3
|
export type { SelectProps, SelectChangeEventHandler, SelectPartialChangeEvent, NativeSelectProps, } from './types.js';
|
|
4
|
-
export { Select as BETA_Select } from '
|
|
5
|
-
export type { SelectProps as BETA_SelectProps } from '
|
|
4
|
+
export { Select as BETA_Select } from '../beta/select/Select.jsx';
|
|
5
|
+
export type { SelectProps as BETA_SelectProps } from '../beta/select/types.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Select as e}from"./Select.js";import{NativeSelect as t}from"./NativeSelect.js";import{Select as
|
|
1
|
+
import{Select as e}from"./Select.js";import{NativeSelect as t}from"./NativeSelect.js";import{Select as a}from"../beta/select/Select.js";export{a as BETA_Select,t as NativeSelect,e as Select};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeEvent, SelectHTMLAttributes } from 'react';
|
|
2
|
-
import { DataTestAutoId } from '../../
|
|
2
|
+
import { DataTestAutoId } from '../../utilities/types.js';
|
|
3
3
|
import { ValuePair } from '../../utilities/valuePair.js';
|
|
4
4
|
import { LabelProps, InputGroupProps } from '../input-group/types.js';
|
|
5
5
|
export interface NativeSelectProps extends Omit<InputGroupProps, "children">, SelectHTMLAttributes<HTMLSelectElement> {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React, ChangeEventHandler, ColgroupHTMLAttributes, ColHTMLAttributes, HTMLAttributes, ReactNode, TableHTMLAttributes, TdHTMLAttributes, ThHTMLAttributes } from 'react';
|
|
2
|
-
import { WithChildren } from '../../
|
|
2
|
+
import { WithChildren } from '../../utilities/types.js';
|
|
3
3
|
import { TableSortProps } from './utils.js';
|
|
4
4
|
export interface DataTableProps extends TableHTMLAttributes<HTMLTableElement> {
|
|
5
5
|
/** Beskrivelse av tabellen for skjermlesere */
|
|
@@ -2,5 +2,5 @@ import { default as React } from 'react';
|
|
|
2
2
|
import { TableOfContentsProps } from './types.js';
|
|
3
3
|
export declare const TableOfContents: {
|
|
4
4
|
({ label, className, ...rest }: TableOfContentsProps): React.JSX.Element;
|
|
5
|
-
Link: React.ForwardRefExoticComponent<Omit<import('../../index.js').PolymorphicPropsWithRef<React.ElementType<any, keyof React.JSX.IntrinsicElements>>, "ref"> & React.RefAttributes<unknown>>;
|
|
5
|
+
Link: React.ForwardRefExoticComponent<Omit<import('../../utilities/index.js').PolymorphicPropsWithRef<React.ElementType<any, keyof React.JSX.IntrinsicElements>>, "ref"> & React.RefAttributes<unknown>>;
|
|
6
6
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { WithChildren } from '../../core/types.js';
|
|
2
1
|
import { PolymorphicPropsWithRef } from '../../utilities/index.js';
|
|
2
|
+
import { WithChildren } from '../../utilities/types.js';
|
|
3
3
|
export type NavTabProps<ElementType extends React.ElementType> = PolymorphicPropsWithRef<ElementType, {
|
|
4
4
|
/**
|
|
5
5
|
* Hook for å kunne stoppe default oppførsel ved tastaturnavigasjon.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ToastOptions as StatelyToastOptions } from '@react-stately/toast';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { WithChildren } from '../../
|
|
3
|
+
import { WithChildren } from '../../utilities/types.js';
|
|
4
4
|
export type ToastContent = {
|
|
5
5
|
content: ReactNode;
|
|
6
6
|
title?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ButtonHTMLAttributes } from 'react';
|
|
2
|
-
import { WithChildren } from '../../core/types.js';
|
|
3
2
|
import { SwipeChangeHandler } from '../../hooks/useSwipeGesture/useSwipeGesture.js';
|
|
3
|
+
import { WithChildren } from '../../utilities/types.js';
|
|
4
4
|
export interface ToggleSliderProps extends WithChildren {
|
|
5
5
|
labels: [string, string];
|
|
6
6
|
onToggle: (value: string) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UseFloatingReturn, useInteractions } from '@floating-ui/react';
|
|
2
2
|
import { default as React, FC } from 'react';
|
|
3
|
-
import { WithChildren } from '../../
|
|
3
|
+
import { WithChildren } from '../../utilities/types.js';
|
|
4
4
|
import { TooltipProps } from './types.js';
|
|
5
5
|
type UseTooltipReturn = {
|
|
6
6
|
triggerOn: NonNullable<TooltipProps["triggerOn"]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sources":["../../../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import {\n type UseFloatingReturn,\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\";\nimport React, {\n type FC,\n createContext,\n useContext,\n useRef,\n useState,\n} from \"react\";\nimport type { WithChildren } from \"../../
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../../../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import {\n type UseFloatingReturn,\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\";\nimport React, {\n type FC,\n createContext,\n useContext,\n useRef,\n useState,\n} from \"react\";\nimport type { WithChildren } from \"../../utilities/types.js\";\nimport type { TooltipProps } from \"./types.js\";\n\ntype UseTooltipReturn = {\n triggerOn: NonNullable<TooltipProps[\"triggerOn\"]>;\n isOpen: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n arrowElement: React.RefObject<SVGSVGElement>;\n refs: {\n description: React.MutableRefObject<HTMLElement | null>;\n setDescription: (element: HTMLElement | null) => void;\n } & UseFloatingReturn[\"refs\"];\n} & UseFloatingReturn &\n ReturnType<typeof useInteractions>;\n\nconst useTooltip = ({\n initialOpen = false,\n placement = \"top\",\n delay = 250,\n triggerOn = \"hover\",\n onOpenChange,\n}: TooltipProps): UseTooltipReturn => {\n const [isOpen, setOpen] = useState(initialOpen);\n const arrowElement = useRef<SVGSVGElement>(null);\n const description = useRef<HTMLElement | null>(null);\n const setDescription = (element: HTMLElement | null) => {\n description.current = element;\n };\n\n const data = useFloating({\n open: isOpen,\n onOpenChange: (open) => {\n onOpenChange?.(open);\n setOpen(open);\n },\n placement,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(16),\n flip(),\n shift({ padding: 16 }),\n arrow({ element: arrowElement, padding: 8 }),\n ],\n });\n\n const role = useRole(data.context, { role: \"tooltip\" });\n const dismiss = useDismiss(data.context);\n const click = useClick(data.context, {\n enabled: triggerOn === \"click\",\n });\n const hover = useHover(data.context, {\n enabled: triggerOn === \"hover\",\n delay: isOpen ? 0 : delay,\n });\n const focus = useFocus(data.context, {\n enabled: triggerOn === \"hover\",\n });\n\n const interactions = useInteractions([dismiss, focus, role, click, hover]);\n\n return {\n triggerOn,\n isOpen,\n setOpen,\n arrowElement,\n ...data,\n refs: {\n ...data.refs,\n description,\n setDescription,\n },\n ...interactions,\n };\n};\n\nexport type TooltipContext = ReturnType<typeof useTooltip> | null;\n\nconst tooltipContext = createContext<TooltipContext>(null);\n\nexport const TooltipProvider = tooltipContext.Provider;\n\nexport const useTooltipContext = () => {\n const context = useContext(tooltipContext);\n\n if (context === null) {\n throw new Error(\n \"Tooltip-komponentene kan kun brukes inne i <Tooltip />\",\n );\n }\n\n return context;\n};\n\nexport const Tooltip: FC<TooltipProps & WithChildren> = ({\n children,\n ...options\n}) => {\n const tooltip = useTooltip(options);\n\n return <TooltipProvider value={tooltip}>{children}</TooltipProvider>;\n};\n"],"names":["tooltipContext","createContext","TooltipProvider","Provider","useTooltipContext","context","useContext","Error","Tooltip","children","options","tooltip","initialOpen","placement","delay","triggerOn","onOpenChange","isOpen","setOpen","useState","arrowElement","useRef","description","data","useFloating","open","whileElementsMounted","autoUpdate","middleware","offset","flip","shift","padding","arrow","element","role","useRole","dismiss","useDismiss","click","useClick","enabled","hover","useHover","focus","useFocus","interactions","useInteractions","refs","setDescription","current","useTooltip","jsx","value"],"mappings":"iUAqCA,MA8DMA,EAAiBC,EAA8B,MAExCC,EAAkBF,EAAeG,SAEjCC,EAAoB,KAC7B,MAAMC,EAAUC,EAAWN,GAE3B,GAAgB,OAAZK,EACA,MAAM,IAAIE,MACN,0DAIR,OAAOF,GAGEG,EAA2C,EACpDC,SAAAA,KACGC,MAEH,MAAMC,EAlFS,GACfC,YAAAA,GAAc,EACdC,UAAAA,EAAY,MACZC,MAAAA,EAAQ,IACRC,UAAAA,EAAY,QACZC,aAAAA,MAEA,MAAOC,EAAQC,GAAWC,EAASP,GAC7BQ,EAAeC,EAAsB,MACrCC,EAAcD,EAA2B,MAKzCE,EAAOC,EAAY,CACrBC,KAAMR,EACND,aAAeS,IACXT,IAAeS,GACfP,EAAQO,IAEZZ,UAAAA,EACAa,qBAAsBC,EACtBC,WAAY,CACRC,EAAO,IACPC,IACAC,EAAM,CAAEC,QAAS,KACjBC,EAAM,CAAEC,QAASd,EAAcY,QAAS,OAI1CG,EAAOC,EAAQb,EAAKlB,QAAS,CAAE8B,KAAM,YACrCE,EAAUC,EAAWf,EAAKlB,SAC1BkC,EAAQC,EAASjB,EAAKlB,QAAS,CACjCoC,QAAuB,UAAd1B,IAEP2B,EAAQC,EAASpB,EAAKlB,QAAS,CACjCoC,QAAuB,UAAd1B,EACTD,MAAOG,EAAS,EAAIH,IAElB8B,EAAQC,EAAStB,EAAKlB,QAAS,CACjCoC,QAAuB,UAAd1B,IAGP+B,EAAeC,EAAgB,CAACV,EAASO,EAAOT,EAAMI,EAAOG,IAEnE,MAAO,CACH3B,UAAAA,EACAE,OAAAA,EACAC,QAAAA,EACAE,aAAAA,KACGG,EACHyB,KAAM,IACCzB,EAAKyB,KACR1B,YAAAA,EACA2B,eA5CgBf,IACpBZ,EAAY4B,QAAUhB,OA6CnBY,IA0BSK,CAAWzC,GAE3B,OAAO0C,EAAClD,EAAA,CAAgBmD,MAAO1C,EAAUF,SAAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
|
-
import { Easing, Timing } from '../../
|
|
2
|
+
import { Easing, Timing } from '../../utilities/types.js';
|
|
3
3
|
export interface UseAnimatedHeightOptions<T extends HTMLElement = HTMLElement> {
|
|
4
4
|
display?: "block" | "grid" | "flex";
|
|
5
5
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRef as e,useCallback as t,useEffect as r}from"react";import n from"../../
|
|
1
|
+
import{useRef as e,useCallback as t,useEffect as r}from"react";import n from"../../tokens.js";import{useBrowserPreferences as i}from"../useBrowserPreferences/useBrowserPreferences.js";import{usePreviousValue as s}from"../usePreviousValue/usePreviousValue.js";function o(o,a){const u=s(o),l=a?.easing||"standard",c=a?.timing||"productive",m=a?.display||"block",d=`${n.motion.timing[c]} height ${n.motion.easing[l]}`,{prefersReducedMotion:f}=i(),y=e(),h=e(),p=e(null);function v(e){const t=p.current;t&&e.target===t&&(o?t.removeAttribute("style"):(t.removeAttribute("style"),t.style.display="none"),a?.onTransitionEnd?.(o,p))}const g=t(()=>{const e=p.current;if(e&&void 0!==u){if(o){if(o&&u)return}else if(e.style.display="none",!u)return;if(a?.onTransitionStart?.(o,p),f)return e.removeAttribute("style"),o?a?.onFirstVisible?.(o,p):e.style.display="none",void a?.onTransitionEnd?.(o,p);if(e.style.transition=d,e.style.display=m,e.style.overflow="hidden",o)a?.onFirstVisible?.(o,p),e.style.height="0",e.style.height=`${e.scrollHeight}px`;else{if(0===e.scrollHeight)return void e.removeAttribute("style");e.style.height=`${e.scrollHeight}px`,y.current=requestAnimationFrame(()=>{h.current=requestAnimationFrame(()=>{e.style.height="0px"})})}}},[o,a,u,d,f,m]);return r(()=>{g()},[o,g]),r(()=>{const e=p.current;return e&&e.addEventListener("transitionend",v),()=>{e&&e.removeEventListener("transitionend",v)}},[o]),r(()=>{const e=y.current,t=h.current;return()=>{e&&cancelAnimationFrame(e),t&&cancelAnimationFrame(t)}},[]),[p,g]}export{o as useAnimatedHeight};
|
|
2
2
|
//# sourceMappingURL=useAnimatedHeight.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnimatedHeight.js","sources":["../../../../src/hooks/useAnimatedHeight/useAnimatedHeight.ts"],"sourcesContent":["import { type RefObject, useCallback, useEffect, useRef } from \"react\";\nimport tokens from \"../../
|
|
1
|
+
{"version":3,"file":"useAnimatedHeight.js","sources":["../../../../src/hooks/useAnimatedHeight/useAnimatedHeight.ts"],"sourcesContent":["import { type RefObject, useCallback, useEffect, useRef } from \"react\";\nimport tokens from \"../../tokens.js\";\nimport { useBrowserPreferences } from \"../useBrowserPreferences/useBrowserPreferences.js\";\nimport { usePreviousValue } from \"../usePreviousValue/usePreviousValue.js\";\nimport type { UseAnimatedHeightOptions } from \"./types.js\";\n\nconst defaultDisplay = \"block\";\nconst defaultEasing = \"standard\";\nconst defaultTiming = \"productive\";\n\n/**\n * Lar deg animere et element opp til sin maksimale høyde, eller ned til 0.\n *\n * @param isOpen Om elementet er åpent eller lukket.\n * @param options Konfigurer display-property, easing og timing, og eventuelle callbacks for life cycle til animasjonen.\n * @returns Ref til elementet som skal animeres, og en funksjon for å trigge animasjonen manuelt.\n */\nexport function useAnimatedHeight<T extends HTMLElement>(\n isOpen: boolean,\n options?: UseAnimatedHeightOptions<T>,\n): [RefObject<T>, () => void] {\n const wasOpen = usePreviousValue(isOpen);\n const easing = options?.easing || defaultEasing;\n const timing = options?.timing || defaultTiming;\n const display = options?.display || defaultDisplay;\n const transition = `${tokens.motion.timing[timing]} height ${tokens.motion.easing[easing]}`;\n\n const { prefersReducedMotion } = useBrowserPreferences();\n\n const raf1 = useRef<number>();\n const raf2 = useRef<number>();\n const elementRef = useRef<T>(null);\n\n function handleTransitionEnd(event: TransitionEvent) {\n const element = elementRef.current;\n\n // Ignore bubbling transitions from within container\n if (element && event.target === element) {\n if (isOpen) {\n element.removeAttribute(\"style\");\n } else {\n element.removeAttribute(\"style\");\n element.style.display = \"none\";\n }\n options?.onTransitionEnd?.(isOpen, elementRef);\n }\n }\n\n const runAnimation = useCallback(() => {\n const element = elementRef.current;\n\n // Ikke kjør animasjonen hvis elementet ikke er rendret,\n // eller hvis det er første render.\n if (!element || wasOpen === undefined) {\n return;\n }\n\n if (!isOpen) {\n element.style.display = \"none\";\n if (!wasOpen) {\n // Første render eller rerender med isOpen false\n return;\n }\n } else if (isOpen && wasOpen) {\n // Re-render etter å ha vært lukket, men forblitt åpen.\n return;\n }\n\n options?.onTransitionStart?.(isOpen, elementRef);\n\n if (prefersReducedMotion) {\n element.removeAttribute(\"style\");\n if (isOpen) {\n options?.onFirstVisible?.(isOpen, elementRef);\n } else {\n element.style.display = \"none\";\n }\n options?.onTransitionEnd?.(isOpen, elementRef); // make sure to call callback when animation is off\n return;\n }\n\n element.style.transition = transition;\n element.style.display = display;\n element.style.overflow = \"hidden\";\n\n if (isOpen) {\n options?.onFirstVisible?.(isOpen, elementRef);\n element.style.height = \"0\";\n element.style.height = `${element.scrollHeight}px`;\n } else {\n // If the scrollHeight is 0 it means that we are transitioning from height 0 -> 0.\n // This causes the \"transitionend\"-event to never fire and the element gets stuck with\n // style: height: 0; display: block; overflow:hidden\n if (element.scrollHeight === 0) {\n element.removeAttribute(\"style\");\n return;\n }\n\n element.style.height = `${element.scrollHeight}px`;\n\n raf1.current = requestAnimationFrame(() => {\n raf2.current = requestAnimationFrame(() => {\n element.style.height = `${0}px`;\n });\n });\n }\n }, [isOpen, options, wasOpen, transition, prefersReducedMotion, display]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: Vi trigger med isOpen\n useEffect(() => {\n runAnimation();\n }, [isOpen, runAnimation]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies:\n useEffect(() => {\n const element = elementRef.current;\n if (element) {\n element.addEventListener(\"transitionend\", handleTransitionEnd);\n }\n\n return () => {\n if (element) {\n element.removeEventListener(\n \"transitionend\",\n handleTransitionEnd,\n );\n }\n };\n }, [isOpen]);\n\n useEffect(() => {\n const r1 = raf1.current;\n const r2 = raf2.current;\n return () => {\n r1 && cancelAnimationFrame(r1);\n r2 && cancelAnimationFrame(r2);\n };\n }, []);\n\n return [elementRef, runAnimation];\n}\n"],"names":["useAnimatedHeight","isOpen","options","wasOpen","usePreviousValue","easing","timing","display","transition","tokens","motion","prefersReducedMotion","useBrowserPreferences","raf1","useRef","raf2","elementRef","handleTransitionEnd","event","element","current","target","removeAttribute","style","onTransitionEnd","runAnimation","useCallback","onTransitionStart","onFirstVisible","overflow","height","scrollHeight","requestAnimationFrame","useEffect","addEventListener","removeEventListener","r1","r2","cancelAnimationFrame"],"mappings":"mQAiBO,SAASA,EACZC,EACAC,GAEA,MAAMC,EAAUC,EAAiBH,GAC3BI,EAASH,GAASG,QAfN,WAgBZC,EAASJ,GAASI,QAfN,aAgBZC,EAAUL,GAASK,SAlBN,QAmBbC,EAAa,GAAGC,EAAOC,OAAOJ,OAAOA,aAAkBG,EAAOC,OAAOL,OAAOA,MAE1EM,qBAAAA,GAAyBC,IAE3BC,EAAOC,IACPC,EAAOD,IACPE,EAAaF,EAAU,MAE7B,SAASG,EAAoBC,GACzB,MAAMC,EAAUH,EAAWI,QAGvBD,GAAWD,EAAMG,SAAWF,IACxBlB,EACAkB,EAAQG,gBAAgB,UAExBH,EAAQG,gBAAgB,SACxBH,EAAQI,MAAMhB,QAAU,QAE5BL,GAASsB,kBAAkBvB,EAAQe,GAE3C,CAEA,MAAMS,EAAeC,EAAY,KAC7B,MAAMP,EAAUH,EAAWI,QAI3B,GAAKD,QAAuB,IAAZhB,EAIhB,CAAA,GAAKF,GAML,GAAWA,GAAUE,EAEjB,YAAA,GAPAgB,EAAQI,MAAMhB,QAAU,QACnBJ,EAED,OASR,GAFAD,GAASyB,oBAAoB1B,EAAQe,GAEjCL,EAQA,OAPAQ,EAAQG,gBAAgB,SACpBrB,EACAC,GAAS0B,iBAAiB3B,EAAQe,GAElCG,EAAQI,MAAMhB,QAAU,YAE5BL,GAASsB,kBAAkBvB,EAAQe,GAQvC,GAJAG,EAAQI,MAAMf,WAAaA,EAC3BW,EAAQI,MAAMhB,QAAUA,EACxBY,EAAQI,MAAMM,SAAW,SAErB5B,EACAC,GAAS0B,iBAAiB3B,EAAQe,GAClCG,EAAQI,MAAMO,OAAS,IACvBX,EAAQI,MAAMO,OAAS,GAAGX,EAAQY,qBAC/B,CAIH,GAA6B,IAAzBZ,EAAQY,aAER,YADAZ,EAAQG,gBAAgB,SAI5BH,EAAQI,MAAMO,OAAS,GAAGX,EAAQY,iBAElClB,EAAKO,QAAUY,sBAAsB,KACjCjB,EAAKK,QAAUY,sBAAsB,KACjCb,EAAQI,MAAMO,OAAS,SAGnC,CAAA,GACD,CAAC7B,EAAQC,EAASC,EAASK,EAAYG,EAAsBJ,IAGhE,OAAA0B,EAAU,KACNR,KACD,CAACxB,EAAQwB,IAGZQ,EAAU,KACN,MAAMd,EAAUH,EAAWI,QAC3B,OAAID,GACAA,EAAQe,iBAAiB,gBAAiBjB,GAGvC,KACCE,GACAA,EAAQgB,oBACJ,gBACAlB,KAIb,CAAChB,IAEJgC,EAAU,KACN,MAAMG,EAAKvB,EAAKO,QACViB,EAAKtB,EAAKK,QAChB,MAAO,KACHgB,GAAME,qBAAqBF,GAC3BC,GAAMC,qBAAqBD,KAEhC,IAEI,CAACrB,EAAYS,EACxB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRef as e,useCallback as t,useEffect as r}from"react";import n from"../../
|
|
1
|
+
import{useRef as e,useCallback as t,useEffect as r}from"react";import n from"../../tokens.js";import{useBrowserPreferences as s}from"../useBrowserPreferences/useBrowserPreferences.js";import{usePreviousValue as o}from"../usePreviousValue/usePreviousValue.js";function i(i,a){const u=o(i),c=a?.easing||"standard",d=a?.timing||"productive",l=`${n.motion.timing[d]} height ${n.motion.easing[c]}`,{prefersReducedMotion:m}=s(),p=e(),y=e(),f=e(null),g=t(e=>{const t=f.current;t&&e.target===t&&(t.removeAttribute("style"),a?.onTransitionEnd?.(i,f))},[a,i]),h=t(()=>{const e=f.current;if(e&&(void 0===u&&(e.dataset.expanded=i?"true":"false"),!(!i&&!u||i&&u))){if(a?.onTransitionStart?.(i,f),m)return e.removeAttribute("style"),e.dataset.expanded=i?"true":"false",void a?.onTransitionEnd?.(i,f);i?function(e,t,r,n){const s=e.current;if(!s)return;s.removeAttribute("style");const o=s.scrollHeight;r.current=requestAnimationFrame(()=>{s.style.removeProperty("transition"),s.dataset.expanded="false";const e=s.getBoundingClientRect().height;s.style.setProperty("height",`${e}px`),s.style.setProperty("overflow-y","hidden"),n.current=requestAnimationFrame(()=>{s.style.setProperty("transition",t),s.style.setProperty("height",`${o}px`),s.dataset.expanded="true"})})}(f,l,p,y):function(e,t,r,n){const s=e.current;if(!s)return;s.removeAttribute("style");const o=s.scrollHeight;r.current=requestAnimationFrame(()=>{s.style.removeProperty("transition"),s.dataset.expanded="false";const e=s.getBoundingClientRect().height;s.dataset.expanded="true",s.style.setProperty("height",`${o}px`),s.style.setProperty("overflow-y","hidden"),n.current=requestAnimationFrame(()=>{s.style.setProperty("transition",t),s.style.setProperty("height",`${e}px`),s.dataset.expanded="false"})})}(f,l,p,y)}},[u,i,a,m,l]);return r(()=>{h()},[i,h]),r(()=>{const e=f.current;return e&&e.addEventListener("transitionend",g),()=>{e&&e.removeEventListener("transitionend",g)}},[i]),r(()=>{const e=p.current,t=y.current;return()=>{e&&cancelAnimationFrame(e),t&&cancelAnimationFrame(t)}},[]),[f,h]}export{i as useAnimatedHeightBetween};
|
|
2
2
|
//# sourceMappingURL=useAnimatedHeightBetween.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnimatedHeightBetween.js","sources":["../../../../src/hooks/useAnimatedHeight/useAnimatedHeightBetween.ts"],"sourcesContent":["import { type RefObject, useCallback, useEffect, useRef } from \"react\";\nimport tokens from \"../../
|
|
1
|
+
{"version":3,"file":"useAnimatedHeightBetween.js","sources":["../../../../src/hooks/useAnimatedHeight/useAnimatedHeightBetween.ts"],"sourcesContent":["import { type RefObject, useCallback, useEffect, useRef } from \"react\";\nimport tokens from \"../../tokens.js\";\nimport { useBrowserPreferences } from \"../useBrowserPreferences/useBrowserPreferences.js\";\nimport { usePreviousValue } from \"../usePreviousValue/usePreviousValue.js\";\nimport type { UseAnimatedHeightOptions } from \"./types.js\";\n\nconst defaultEasing = \"standard\";\nconst defaultTiming = \"productive\";\n\nfunction collapseElement<T extends HTMLElement>(\n elementRef: RefObject<T | null>,\n transition: string,\n raf1: React.MutableRefObject<number | undefined>,\n raf2: React.MutableRefObject<number | undefined>,\n) {\n const element = elementRef.current;\n\n if (!element) return;\n\n element.removeAttribute(\"style\");\n const expandedHeight = element.scrollHeight;\n\n raf1.current = requestAnimationFrame(() => {\n // Hent kollapset høyde\n element.style.removeProperty(\"transition\");\n element.dataset.expanded = \"false\";\n const collapsedHeight = element.getBoundingClientRect().height;\n element.dataset.expanded = \"true\";\n\n // Sett høyde tilbake til utvidet høyde\n element.style.setProperty(\"height\", `${expandedHeight}px`);\n element.style.setProperty(\"overflow-y\", \"hidden\");\n\n raf2.current = requestAnimationFrame(() => {\n // Sett høyde til kollapset høyde og start transition\n element.style.setProperty(\"transition\", transition);\n element.style.setProperty(\"height\", `${collapsedHeight}px`);\n element.dataset.expanded = \"false\";\n });\n });\n}\n\nfunction expandElement<T extends HTMLElement>(\n elementRef: RefObject<T | null>,\n transition: string,\n raf1: React.MutableRefObject<number | undefined>,\n raf2: React.MutableRefObject<number | undefined>,\n) {\n const element = elementRef.current;\n\n if (!element) return;\n\n element.removeAttribute(\"style\");\n const expandedHeight = element.scrollHeight;\n\n raf1.current = requestAnimationFrame(() => {\n // Hent utvidet høyde\n element.style.removeProperty(\"transition\");\n element.dataset.expanded = \"false\";\n const collapsedHeight = element.getBoundingClientRect().height;\n\n // Sett høyde tilbake til kollapset høyde\n element.style.setProperty(\"height\", `${collapsedHeight}px`);\n element.style.setProperty(\"overflow-y\", \"hidden\");\n\n raf2.current = requestAnimationFrame(() => {\n // Sett høyde til utvidet høyde og start transition\n element.style.setProperty(\"transition\", transition);\n element.style.setProperty(\"height\", `${expandedHeight}px`);\n element.dataset.expanded = \"true\";\n });\n });\n}\n\n/**\n * Lar deg enklere animere mellom to tilstander, gitt ved å sette `data-expanded` på et element til `true` eller `false`.\n * Du bestemmer selv hvilke stiler elementet skal ha i de to tilstandene (vha CSS/Sass), og høyden animeres dersom den endrer seg.\n * @param isExpanded indikerer om elementet skal være utvidet eller ikke\n * @param options konfigurasjon for animasjonen, og lyttere for når animasjonen starter og slutter\n * @returns En tuple med referanse til elementet og en funksjon som kan trigge animasjonen\n */\nexport function useAnimatedHeightBetween<T extends HTMLElement>(\n isExpanded: boolean,\n options?: Omit<UseAnimatedHeightOptions<T>, \"display\" | \"onFirstVisible\">,\n): [RefObject<T>, () => void] {\n const wasExpanded = usePreviousValue(isExpanded);\n const easing = options?.easing || defaultEasing;\n const timing = options?.timing || defaultTiming;\n const transition = `${tokens.motion.timing[timing]} height ${tokens.motion.easing[easing]}`;\n\n const { prefersReducedMotion } = useBrowserPreferences();\n\n const raf1 = useRef<number>();\n const raf2 = useRef<number>();\n const elementRef = useRef<T>(null);\n\n const handleTransitionEnd = useCallback(\n (event: TransitionEvent) => {\n const element = elementRef.current;\n\n // Ignore bubbling transitions from within container\n if (element && event.target === element) {\n element.removeAttribute(\"style\");\n options?.onTransitionEnd?.(isExpanded, elementRef);\n }\n },\n [options, isExpanded],\n );\n\n const runAnimation = useCallback(() => {\n const element = elementRef.current;\n\n if (!element) return;\n\n if (wasExpanded === undefined) {\n // Første render\n element.dataset.expanded = isExpanded ? \"true\" : \"false\";\n }\n\n if ((!isExpanded && !wasExpanded) || (isExpanded && wasExpanded)) {\n // Ingen endring\n return;\n }\n\n options?.onTransitionStart?.(isExpanded, elementRef);\n\n if (prefersReducedMotion) {\n element.removeAttribute(\"style\");\n element.dataset.expanded = isExpanded ? \"true\" : \"false\";\n options?.onTransitionEnd?.(isExpanded, elementRef); // make sure to call callback when animation is off\n return;\n }\n\n if (isExpanded) {\n expandElement(elementRef, transition, raf1, raf2);\n } else {\n collapseElement(elementRef, transition, raf1, raf2);\n }\n }, [wasExpanded, isExpanded, options, prefersReducedMotion, transition]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: Vi trigger med isExpanded\n useEffect(() => {\n runAnimation();\n }, [isExpanded, runAnimation]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies:\n useEffect(() => {\n const element = elementRef.current;\n if (element) {\n element.addEventListener(\"transitionend\", handleTransitionEnd);\n }\n\n return () => {\n if (element) {\n element.removeEventListener(\n \"transitionend\",\n handleTransitionEnd,\n );\n }\n };\n }, [isExpanded]);\n\n useEffect(() => {\n const r1 = raf1.current;\n const r2 = raf2.current;\n return () => {\n r1 && cancelAnimationFrame(r1);\n r2 && cancelAnimationFrame(r2);\n };\n }, []);\n\n return [elementRef, runAnimation];\n}\n"],"names":["useAnimatedHeightBetween","isExpanded","options","wasExpanded","usePreviousValue","easing","timing","transition","tokens","motion","prefersReducedMotion","useBrowserPreferences","raf1","useRef","raf2","elementRef","handleTransitionEnd","useCallback","event","element","current","target","removeAttribute","onTransitionEnd","runAnimation","dataset","expanded","onTransitionStart","expandedHeight","scrollHeight","requestAnimationFrame","style","removeProperty","collapsedHeight","getBoundingClientRect","height","setProperty","expandElement","collapseElement","useEffect","addEventListener","removeEventListener","r1","r2","cancelAnimationFrame"],"mappings":"mQAiFO,SAASA,EACZC,EACAC,GAEA,MAAMC,EAAcC,EAAiBH,GAC/BI,EAASH,GAASG,QAhFN,WAiFZC,EAASJ,GAASI,QAhFN,aAiFZC,EAAa,GAAGC,EAAOC,OAAOH,OAAOA,aAAkBE,EAAOC,OAAOJ,OAAOA,MAE1EK,qBAAAA,GAAyBC,IAE3BC,EAAOC,IACPC,EAAOD,IACPE,EAAaF,EAAU,MAEvBG,EAAsBC,EACvBC,IACG,MAAMC,EAAUJ,EAAWK,QAGvBD,GAAWD,EAAMG,SAAWF,IAC5BA,EAAQG,gBAAgB,SACxBpB,GAASqB,kBAAkBtB,EAAYc,KAG/C,CAACb,EAASD,IAGRuB,EAAeP,EAAY,KAC7B,MAAME,EAAUJ,EAAWK,QAE3B,GAAKD,SAEe,IAAhBhB,IAEAgB,EAAQM,QAAQC,SAAWzB,EAAa,OAAS,YAG/CA,IAAeE,GAAiBF,GAAcE,IAOpD,CAAA,GAFAD,GAASyB,oBAAoB1B,EAAYc,GAErCL,EAIA,OAHAS,EAAQG,gBAAgB,SACxBH,EAAQM,QAAQC,SAAWzB,EAAa,OAAS,aACjDC,GAASqB,kBAAkBtB,EAAYc,GAIvCd,EA3FZ,SACIc,EACAR,EACAK,EACAE,GAEA,MAAMK,EAAUJ,EAAWK,QAE3B,IAAKD,EAAS,OAEdA,EAAQG,gBAAgB,SACxB,MAAMM,EAAiBT,EAAQU,aAE/BjB,EAAKQ,QAAUU,sBAAsB,KAEjCX,EAAQY,MAAMC,eAAe,cAC7Bb,EAAQM,QAAQC,SAAW,QAC3B,MAAMO,EAAkBd,EAAQe,wBAAwBC,OAGxDhB,EAAQY,MAAMK,YAAY,SAAU,GAAGH,OACvCd,EAAQY,MAAMK,YAAY,aAAc,UAExCtB,EAAKM,QAAUU,sBAAsB,KAEjCX,EAAQY,MAAMK,YAAY,aAAc7B,GACxCY,EAAQY,MAAMK,YAAY,SAAU,GAAGR,OACvCT,EAAQM,QAAQC,SAAW,UAGvC,CA8DYW,CAActB,EAAYR,EAAYK,EAAME,GA7HxD,SACIC,EACAR,EACAK,EACAE,GAEA,MAAMK,EAAUJ,EAAWK,QAE3B,IAAKD,EAAS,OAEdA,EAAQG,gBAAgB,SACxB,MAAMM,EAAiBT,EAAQU,aAE/BjB,EAAKQ,QAAUU,sBAAsB,KAEjCX,EAAQY,MAAMC,eAAe,cAC7Bb,EAAQM,QAAQC,SAAW,QAC3B,MAAMO,EAAkBd,EAAQe,wBAAwBC,OACxDhB,EAAQM,QAAQC,SAAW,OAG3BP,EAAQY,MAAMK,YAAY,SAAU,GAAGR,OACvCT,EAAQY,MAAMK,YAAY,aAAc,UAExCtB,EAAKM,QAAUU,sBAAsB,KAEjCX,EAAQY,MAAMK,YAAY,aAAc7B,GACxCY,EAAQY,MAAMK,YAAY,SAAU,GAAGH,OACvCd,EAAQM,QAAQC,SAAW,WAGvC,CAgGYY,CAAgBvB,EAAYR,EAAYK,EAAME,EAAI,GAEvD,CAACX,EAAaF,EAAYC,EAASQ,EAAsBH,IAG5D,OAAAgC,EAAU,KACNf,KACD,CAACvB,EAAYuB,IAGhBe,EAAU,KACN,MAAMpB,EAAUJ,EAAWK,QAC3B,OAAID,GACAA,EAAQqB,iBAAiB,gBAAiBxB,GAGvC,KACCG,GACAA,EAAQsB,oBACJ,gBACAzB,KAIb,CAACf,IAEJsC,EAAU,KACN,MAAMG,EAAK9B,EAAKQ,QACVuB,EAAK7B,EAAKM,QAChB,MAAO,KACHsB,GAAME,qBAAqBF,GAC3BC,GAAMC,qBAAqBD,KAEhC,IAEI,CAAC5B,EAAYS,EACxB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useState as e,useRef as r,useCallback as t,useEffect as n}from"react";import s from"../../
|
|
1
|
+
import{useState as e,useRef as r,useCallback as t,useEffect as n}from"react";import s from"../../tokens.js";import{useBrowserPreferences as o}from"../useBrowserPreferences/useBrowserPreferences.js";import{usePreviousValue as i}from"../usePreviousValue/usePreviousValue.js";function a(a,u){const c=i(a),[m,l]=e(0),f=u?.easing||"standard",d=u?.timing||"expressive",p=`${s.motion.timing[d]} height ${s.motion.easing[f]}`,{prefersReducedMotion:v}=o(),y=r(),g=r(),P=r(null),h=t(e=>{const r=P.current;r&&e.target===r&&(r.removeAttribute("style"),u?.onTransitionEnd?.(P))},[u]),A=t(()=>{const e=P.current;if(!e)return;e.removeAttribute("style");const r=e.scrollHeight;y.current=requestAnimationFrame(()=>{e.style.removeProperty("transition"),e.style.setProperty("height",`${m}px`),e.style.setProperty("overflow-y","hidden"),g.current=requestAnimationFrame(()=>{e.style.setProperty("transition",p),e.style.setProperty("height",`${r}px`)})}),l(r)},[p,m]),E=t(()=>{const e=P.current;if(e){if(void 0===c)return void l(e.scrollHeight);if(a!==c){if(u?.onTransitionStart?.(P),v)return void u?.onTransitionEnd?.(P);A()}}},[A,a,c,u,v]);return n(()=>{E()},[a,E]),n(()=>{const e=P.current;return e&&e.addEventListener("transitionend",h),()=>{e&&e.removeEventListener("transitionend",h)}},[h]),n(()=>{const e=y.current,r=g.current;return()=>{e&&cancelAnimationFrame(e),r&&cancelAnimationFrame(r)}},[]),P}export{a as useAutoAnimatedHeight};
|
|
2
2
|
//# sourceMappingURL=useAutoAnimateHeight.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAutoAnimateHeight.js","sources":["../../../../src/hooks/useAnimatedHeight/useAutoAnimateHeight.ts"],"sourcesContent":["import {\n type RefObject,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport tokens from \"../../
|
|
1
|
+
{"version":3,"file":"useAutoAnimateHeight.js","sources":["../../../../src/hooks/useAnimatedHeight/useAutoAnimateHeight.ts"],"sourcesContent":["import {\n type RefObject,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport tokens from \"../../tokens.js\";\nimport type { Easing, Timing } from \"../../utilities/types.js\";\nimport { useBrowserPreferences } from \"../useBrowserPreferences/useBrowserPreferences.js\";\nimport { usePreviousValue } from \"../usePreviousValue/usePreviousValue.js\";\n\nconst defaultEasing = \"standard\";\nconst defaultTiming = \"expressive\";\n\nexport type UseAutoAnimatedHeightOptions<T extends HTMLElement> = {\n easing?: Easing;\n /**\n * Overstyr standard timing\n * @default \"expressive\"\n */\n timing?: Timing;\n onTransitionStart?: (ref: RefObject<T | null>) => void;\n onTransitionEnd?: (ref: RefObject<T | null>) => void;\n};\n\n/**\n * Gjør det enklere å animere høyden på et element når innholdet endrer seg, men kan brukes på mer generelt grunnlag.\n * Hooken tar inn en triggerverdi, og når denne endrer seg animeres høyden på elementet dersom den har endret seg.\n * @param trigger verdien som brukes til å trigge animasjonen. Dersom denne endrer seg animeres høyden på elementet.\n * @param options konfigurasjon for animasjonen, og lyttere for når animasjonen starter og slutter\n * @returns en referanse til elementet som skal animeres\n */\nexport function useAutoAnimatedHeight<T extends HTMLElement = HTMLElement>(\n trigger: any,\n options?: UseAutoAnimatedHeightOptions<T>,\n) {\n const previousTriggerValue = usePreviousValue(trigger);\n const [previousHeight, setPreviousHeight] = useState(0);\n\n const easing = options?.easing || defaultEasing;\n const timing = options?.timing || defaultTiming;\n const transition = `${tokens.motion.timing[timing]} height ${tokens.motion.easing[easing]}`;\n\n const { prefersReducedMotion } = useBrowserPreferences();\n\n const raf1 = useRef<number>();\n const raf2 = useRef<number>();\n const elementRef = useRef<T>(null);\n\n const handleTransitionEnd = useCallback(\n (event: TransitionEvent) => {\n const element = elementRef.current;\n\n // Ignore bubbling transitions from within container\n if (element && event.target === element) {\n element.removeAttribute(\"style\");\n options?.onTransitionEnd?.(elementRef);\n }\n },\n [options],\n );\n\n const animateElement = useCallback(() => {\n const element = elementRef.current;\n\n if (!element) return;\n\n element.removeAttribute(\"style\");\n const newHeight = element.scrollHeight;\n\n raf1.current = requestAnimationFrame(() => {\n // Sett høyde tilbake til forrige høyde\n element.style.removeProperty(\"transition\");\n element.style.setProperty(\"height\", `${previousHeight}px`);\n element.style.setProperty(\"overflow-y\", \"hidden\");\n\n raf2.current = requestAnimationFrame(() => {\n // Sett høyde til kollapset høyde og start transition\n element.style.setProperty(\"transition\", transition);\n element.style.setProperty(\"height\", `${newHeight}px`);\n });\n });\n\n setPreviousHeight(newHeight);\n }, [transition, previousHeight]);\n\n const runAnimation = useCallback(() => {\n const element = elementRef.current;\n\n if (!element) return;\n\n if (previousTriggerValue === undefined) {\n // Første render\n setPreviousHeight(element.scrollHeight);\n return;\n }\n\n if (trigger === previousTriggerValue) {\n // Ingen endring\n return;\n }\n\n options?.onTransitionStart?.(elementRef);\n\n if (prefersReducedMotion) {\n options?.onTransitionEnd?.(elementRef); // make sure to call callback when animation is off\n return;\n }\n\n animateElement();\n }, [\n animateElement,\n trigger,\n previousTriggerValue,\n options,\n prefersReducedMotion,\n ]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: Vi vil trige med trigger\n useEffect(() => {\n runAnimation();\n }, [trigger, runAnimation]);\n\n useEffect(() => {\n const element = elementRef.current;\n if (element) {\n element.addEventListener(\"transitionend\", handleTransitionEnd);\n }\n\n return () => {\n if (element) {\n element.removeEventListener(\n \"transitionend\",\n handleTransitionEnd,\n );\n }\n };\n }, [handleTransitionEnd]);\n\n useEffect(() => {\n const r1 = raf1.current;\n const r2 = raf2.current;\n return () => {\n r1 && cancelAnimationFrame(r1);\n r2 && cancelAnimationFrame(r2);\n };\n }, []);\n\n return elementRef;\n}\n"],"names":["useAutoAnimatedHeight","trigger","options","previousTriggerValue","usePreviousValue","previousHeight","setPreviousHeight","useState","easing","timing","transition","tokens","motion","prefersReducedMotion","useBrowserPreferences","raf1","useRef","raf2","elementRef","handleTransitionEnd","useCallback","event","element","current","target","removeAttribute","onTransitionEnd","animateElement","newHeight","scrollHeight","requestAnimationFrame","style","removeProperty","setProperty","runAnimation","onTransitionStart","useEffect","addEventListener","removeEventListener","r1","r2","cancelAnimationFrame"],"mappings":"iRAiCO,SAASA,EACZC,EACAC,GAEA,MAAMC,EAAuBC,EAAiBH,IACvCI,EAAgBC,GAAqBC,EAAS,GAE/CC,EAASN,GAASM,QA5BN,WA6BZC,EAASP,GAASO,QA5BN,aA6BZC,EAAa,GAAGC,EAAOC,OAAOH,OAAOA,aAAkBE,EAAOC,OAAOJ,OAAOA,MAE1EK,qBAAAA,GAAyBC,IAE3BC,EAAOC,IACPC,EAAOD,IACPE,EAAaF,EAAU,MAEvBG,EAAsBC,EACvBC,IACG,MAAMC,EAAUJ,EAAWK,QAGvBD,GAAWD,EAAMG,SAAWF,IAC5BA,EAAQG,gBAAgB,SACxBvB,GAASwB,kBAAkBR,KAGnC,CAAChB,IAGCyB,EAAiBP,EAAY,KAC/B,MAAME,EAAUJ,EAAWK,QAE3B,IAAKD,EAAS,OAEdA,EAAQG,gBAAgB,SACxB,MAAMG,EAAYN,EAAQO,aAE1Bd,EAAKQ,QAAUO,sBAAsB,KAEjCR,EAAQS,MAAMC,eAAe,cAC7BV,EAAQS,MAAME,YAAY,SAAU,GAAG5B,OACvCiB,EAAQS,MAAME,YAAY,aAAc,UAExChB,EAAKM,QAAUO,sBAAsB,KAEjCR,EAAQS,MAAME,YAAY,aAAcvB,GACxCY,EAAQS,MAAME,YAAY,SAAU,GAAGL,WAI/CtB,EAAkBsB,IACnB,CAAClB,EAAYL,IAEV6B,EAAed,EAAY,KAC7B,MAAME,EAAUJ,EAAWK,QAE3B,GAAKD,EAEL,CAAA,QAA6B,IAAzBnB,EAGA,YADAG,EAAkBgB,EAAQO,cAI9B,GAAI5B,IAAYE,EAOhB,CAAA,GAFAD,GAASiC,oBAAoBjB,GAEzBL,EAEA,YADAX,GAASwB,kBAAkBR,GAI/BS,GAAA,CAAA,GACD,CACCA,EACA1B,EACAE,EACAD,EACAW,IAIJ,OAAAuB,EAAU,KACNF,KACD,CAACjC,EAASiC,IAEbE,EAAU,KACN,MAAMd,EAAUJ,EAAWK,QAC3B,OAAID,GACAA,EAAQe,iBAAiB,gBAAiBlB,GAGvC,KACCG,GACAA,EAAQgB,oBACJ,gBACAnB,KAIb,CAACA,IAEJiB,EAAU,KACN,MAAMG,EAAKxB,EAAKQ,QACViB,EAAKvB,EAAKM,QAChB,MAAO,KACHgB,GAAME,qBAAqBF,GAC3BC,GAAMC,qBAAqBD,KAEhC,IAEItB,CACX"}
|
|
@@ -11,5 +11,5 @@ export interface UseAriaLiveRegionOptions {
|
|
|
11
11
|
* @returns
|
|
12
12
|
*/
|
|
13
13
|
export declare function useAriaLiveRegion(watch: unknown | unknown[], options?: UseAriaLiveRegionOptions): {
|
|
14
|
-
"aria-live": "
|
|
14
|
+
"aria-live": "off" | "assertive" | "polite" | undefined;
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBrowserPreferences.js","sources":["../../../../src/hooks/useBrowserPreferences/useBrowserPreferences.tsx"],"sourcesContent":["import { type Reducer, useEffect, useReducer, useState } from \"react\";\nimport type { ColorScheme } from \"../../
|
|
1
|
+
{"version":3,"file":"useBrowserPreferences.js","sources":["../../../../src/hooks/useBrowserPreferences/useBrowserPreferences.tsx"],"sourcesContent":["import { type Reducer, useEffect, useReducer, useState } from \"react\";\nimport type { ColorScheme } from \"../../utilities/types.js\";\nimport {\n addMediaQueryListener,\n getInitialMediaQueryMatch,\n removeMediaQueryListener,\n} from \"../mediaQueryUtils.js\";\n\ntype BrowserPreferences = {\n prefersReducedMotion: boolean;\n prefersColorScheme: ColorScheme;\n forcedColors: boolean;\n};\n\nconst ActionType = {\n PrefersColorScheme: \"COLOR_SCHEME_CHANGED\",\n PrefersReducedMotion: \"REDUCED_MOTION_CHANGED\",\n ForcedColors: \"FORCED_COLORS_CHANGED\",\n} as const;\n\ntype Action =\n | {\n type: typeof ActionType.PrefersColorScheme;\n value: ColorScheme;\n }\n | {\n type: typeof ActionType.PrefersReducedMotion;\n value: boolean;\n }\n | {\n type: typeof ActionType.ForcedColors;\n value: boolean;\n };\n\nconst PREFERS_REDUCED_MOTION = \"(prefers-reduced-motion: reduce)\";\nconst PREFERS_LIGHT_COLOR_SCHEME = \"(prefers-color-scheme: light)\";\nconst FORCED_COLORS = \"(forced-colors: active)\";\n\nconst initialState: BrowserPreferences = {\n prefersReducedMotion: false,\n prefersColorScheme: \"light\",\n forcedColors: false,\n};\n\nconst reducer: Reducer<BrowserPreferences, Action> = (state, action) => {\n switch (action.type) {\n case ActionType.PrefersColorScheme:\n return {\n ...state,\n prefersColorScheme: action.value,\n };\n case ActionType.PrefersReducedMotion:\n return {\n ...state,\n prefersReducedMotion: action.value,\n };\n case ActionType.ForcedColors:\n return {\n ...state,\n forcedColors: action.value,\n };\n default:\n return state;\n }\n};\n\n/**\n * Hook som gir informasjon om brukerens foretrukne konfigurasjon.\n * @returns Objekt med informasjon om brukerens foretrukne tema (lyst vs mørkt), redusert bevegelse, og høykontrast (forced colors).\n */\nexport const useBrowserPreferences = (): BrowserPreferences => {\n const [hasMounted, setHasMounted] = useState(false);\n\n const [state, dispatch] = useReducer(reducer, initialState);\n\n useEffect(() => {\n setHasMounted(true);\n const prefersReducedMotion = getInitialMediaQueryMatch(\n PREFERS_REDUCED_MOTION,\n );\n const prefersColorScheme = getInitialMediaQueryMatch(\n PREFERS_LIGHT_COLOR_SCHEME,\n )\n ? \"light\"\n : \"dark\";\n const forcedColors = getInitialMediaQueryMatch(FORCED_COLORS);\n dispatch({\n type: ActionType.PrefersReducedMotion,\n value: prefersReducedMotion,\n });\n dispatch({\n type: ActionType.PrefersColorScheme,\n value: prefersColorScheme,\n });\n dispatch({ type: ActionType.ForcedColors, value: forcedColors });\n }, []);\n\n useEffect(() => {\n if (!hasMounted || !window.matchMedia) {\n return;\n }\n const onPrefersReducedMotionChange = (e: MediaQueryListEvent) => {\n dispatch({\n type: ActionType.PrefersReducedMotion,\n value: e.matches,\n });\n };\n const onPrefersColorSchemeChange = (e: MediaQueryListEvent) => {\n dispatch({\n type: ActionType.PrefersColorScheme,\n value: e.matches ? \"light\" : \"dark\",\n });\n };\n const onForcedColorsChange = (e: MediaQueryListEvent) => {\n dispatch({ type: ActionType.ForcedColors, value: e.matches });\n };\n\n addMediaQueryListener(\n window.matchMedia(PREFERS_REDUCED_MOTION),\n onPrefersReducedMotionChange,\n );\n addMediaQueryListener(\n window.matchMedia(PREFERS_LIGHT_COLOR_SCHEME),\n onPrefersColorSchemeChange,\n );\n addMediaQueryListener(\n window.matchMedia(FORCED_COLORS),\n onForcedColorsChange,\n );\n\n return () => {\n removeMediaQueryListener(\n window.matchMedia(PREFERS_REDUCED_MOTION),\n onPrefersReducedMotionChange,\n );\n removeMediaQueryListener(\n window.matchMedia(PREFERS_LIGHT_COLOR_SCHEME),\n onPrefersColorSchemeChange,\n );\n removeMediaQueryListener(\n window.matchMedia(FORCED_COLORS),\n onForcedColorsChange,\n );\n };\n }, [hasMounted]);\n\n return { ...state };\n};\n"],"names":["ActionType","PREFERS_REDUCED_MOTION","PREFERS_LIGHT_COLOR_SCHEME","FORCED_COLORS","initialState","prefersReducedMotion","prefersColorScheme","forcedColors","reducer","state","action","type","value","useBrowserPreferences","hasMounted","setHasMounted","useState","dispatch","useReducer","useEffect","getInitialMediaQueryMatch","window","matchMedia","onPrefersReducedMotionChange","e","matches","onPrefersColorSchemeChange","onForcedColorsChange","addMediaQueryListener","removeMediaQueryListener"],"mappings":"2LAcA,MAAMA,EACkB,uBADlBA,EAEoB,yBAFpBA,EAGY,wBAiBZC,EAAyB,mCACzBC,EAA6B,gCAC7BC,EAAgB,0BAEhBC,EAAmC,CACrCC,sBAAsB,EACtBC,mBAAoB,QACpBC,cAAc,GAGZC,EAA+C,CAACC,EAAOC,KACzD,OAAQA,EAAOC,MACX,KAAKX,EACD,MAAO,IACAS,EACHH,mBAAoBI,EAAOE,OAEnC,KAAKZ,EACD,MAAO,IACAS,EACHJ,qBAAsBK,EAAOE,OAErC,KAAKZ,EACD,MAAO,IACAS,EACHF,aAAcG,EAAOE,OAE7B,QACI,OAAOH,IAQNI,EAAwB,KACjC,MAAOC,EAAYC,GAAiBC,GAAS,IAEtCP,EAAOQ,GAAYC,EAAWV,EAASJ,GAE9C,OAAAe,EAAU,KACNJ,GAAc,GACd,MAAMV,EAAuBe,EACzBnB,GAEEK,EAAqBc,EACvBlB,GAEE,QACA,OACAK,EAAea,EAA0BjB,GAC/Cc,EAAS,CACLN,KAAMX,EACNY,MAAOP,IAEXY,EAAS,CACLN,KAAMX,EACNY,MAAON,IAEXW,EAAS,CAAEN,KAAMX,EAAyBY,MAAOL,KAClD,IAEHY,EAAU,KACN,IAAKL,IAAeO,OAAOC,WACvB,OAEJ,MAAMC,EAAgCC,IAClCP,EAAS,CACLN,KAAMX,EACNY,MAAOY,EAAEC,WAGXC,EAA8BF,IAChCP,EAAS,CACLN,KAAMX,EACNY,MAAOY,EAAEC,QAAU,QAAU,UAG/BE,EAAwBH,IAC1BP,EAAS,CAAEN,KAAMX,EAAyBY,MAAOY,EAAEC,WAGvD,OAAAG,EACIP,OAAOC,WAAWrB,GAClBsB,GAEJK,EACIP,OAAOC,WAAWpB,GAClBwB,GAEJE,EACIP,OAAOC,WAAWnB,GAClBwB,GAGG,KACHE,EACIR,OAAOC,WAAWrB,GAClBsB,GAEJM,EACIR,OAAOC,WAAWpB,GAClBwB,GAEJG,EACIR,OAAOC,WAAWnB,GAClBwB,KAGT,CAACb,IAEG,IAAKL"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useState as e,useReducer as i,useEffect as t,useCallback as a}from"react";import
|
|
1
|
+
import{useState as e,useReducer as i,useEffect as t,useCallback as a}from"react";import s from"../../tokens.js";import{getInitialMediaQueryMatch as r,addMediaQueryListener as o,removeMediaQueryListener as n}from"../mediaQueryUtils.js";import{reducer as c,ActionType as m}from"./state.js";const{breakpoint:d}=s,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[s,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,r(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(!s||!window.matchMedia)return;const e=[];for(const[i,t]of Object.entries(u)){const a=window.matchMedia(t),s=f(i);e.push([a,s]),o(a,s)}return()=>{for(const[i,t]of e)n(i,t)}},[f,s]),{...d}};export{f as useScreen};
|
|
2
2
|
//# sourceMappingURL=useScreen.js.map
|