@fremtind/jokul 5.2.3 → 6.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 +37 -36
- package/build/cjs/components/autosuggest/BaseAutosuggest.cjs +1 -1
- package/build/cjs/components/autosuggest/BaseAutosuggest.cjs.map +1 -1
- package/build/cjs/components/date-input/DateInput.cjs +2 -0
- package/build/cjs/components/date-input/DateInput.cjs.map +1 -0
- package/build/cjs/components/date-input/DateInput.d.cts +7 -0
- package/build/cjs/components/date-input/calendar/Calendar.cjs +2 -0
- package/build/cjs/components/date-input/calendar/Calendar.cjs.map +1 -0
- package/build/cjs/components/date-input/calendar/Calendar.d.cts +6 -0
- package/build/cjs/components/date-input/calendar/CalendarDay.cjs +2 -0
- package/build/cjs/components/date-input/calendar/CalendarDay.cjs.map +1 -0
- package/build/cjs/components/date-input/calendar/CalendarDay.d.cts +16 -0
- package/build/cjs/components/date-input/calendar/CalendarWeek.cjs +2 -0
- package/build/cjs/components/date-input/calendar/CalendarWeek.cjs.map +1 -0
- package/build/cjs/components/date-input/calendar/CalendarWeek.d.cts +8 -0
- package/build/cjs/components/date-input/calendar/types.d.cts +6 -0
- package/build/cjs/components/date-input/calendar/utils.cjs +2 -0
- package/build/cjs/components/date-input/calendar/utils.cjs.map +1 -0
- package/build/cjs/components/date-input/calendar/utils.d.cts +19 -0
- package/build/cjs/components/date-input/index.cjs +2 -0
- package/build/cjs/components/date-input/index.d.cts +3 -0
- package/build/cjs/components/date-input/types.d.cts +35 -0
- package/build/cjs/components/date-input/utils.cjs +2 -0
- package/build/cjs/components/date-input/utils.cjs.map +1 -0
- package/build/cjs/components/date-input/utils.d.cts +34 -0
- package/build/cjs/components/file/File.cjs +1 -1
- package/build/cjs/components/file/File.cjs.map +1 -1
- package/build/cjs/components/file/types.d.cts +10 -1
- package/build/cjs/components/search/Search.cjs +1 -1
- package/build/cjs/components/search/Search.cjs.map +1 -1
- package/build/cjs/components/select/Option.cjs +2 -0
- package/build/cjs/components/select/Option.cjs.map +1 -0
- package/build/cjs/components/select/Option.d.cts +12 -0
- package/build/cjs/components/select/Select.cjs +1 -1
- package/build/cjs/components/select/Select.cjs.map +1 -1
- package/build/cjs/components/select/Select.d.cts +18 -3
- package/build/cjs/components/select/index.cjs +1 -1
- package/build/cjs/components/select/index.d.cts +1 -5
- package/build/cjs/components/select/utils.cjs +2 -0
- package/build/cjs/components/select/utils.cjs.map +1 -0
- package/build/cjs/components/select/utils.d.cts +5 -0
- package/build/cjs/components/table/TablePagination.cjs +1 -1
- package/build/cjs/components/table/TablePagination.cjs.map +1 -1
- package/build/cjs/components/tabs/Tabs.cjs.map +1 -1
- package/build/cjs/hooks/index.cjs +1 -1
- package/build/cjs/hooks/index.d.cts +0 -1
- package/build/cjs/hooks/useListNavigation/useListNavigation.cjs +1 -1
- package/build/cjs/hooks/useListNavigation/useListNavigation.cjs.map +1 -1
- package/build/cjs/hooks/useListNavigation/useListNavigation.d.cts +4 -2
- package/build/cjs/utilities/formatters/index.cjs +1 -1
- package/build/cjs/utilities/formatters/index.d.cts +1 -1
- package/build/cjs/utilities/formatters/util/registerWithMask.cjs +1 -1
- package/build/cjs/utilities/formatters/util/registerWithMask.cjs.map +1 -1
- package/build/cjs/utilities/formatters/util/registerWithMask.d.cts +0 -8
- package/build/cjs/utilities/index.cjs +1 -1
- package/build/cjs/utilities/validators/index.cjs +1 -1
- package/build/cjs/utilities/validators/index.d.cts +0 -1
- package/build/cjs/utilities/valuePair.cjs.map +1 -1
- package/build/cjs/utilities/valuePair.d.cts +2 -0
- package/build/es/components/autosuggest/BaseAutosuggest.js +1 -1
- package/build/es/components/autosuggest/BaseAutosuggest.js.map +1 -1
- package/build/es/components/date-input/DateInput.d.ts +7 -0
- package/build/es/components/date-input/DateInput.js +2 -0
- package/build/es/components/date-input/DateInput.js.map +1 -0
- package/build/es/components/date-input/calendar/Calendar.d.ts +6 -0
- package/build/es/components/date-input/calendar/Calendar.js +2 -0
- package/build/es/components/date-input/calendar/Calendar.js.map +1 -0
- package/build/es/components/date-input/calendar/CalendarDay.d.ts +16 -0
- package/build/es/components/date-input/calendar/CalendarDay.js +2 -0
- package/build/es/components/date-input/calendar/CalendarDay.js.map +1 -0
- package/build/es/components/date-input/calendar/CalendarWeek.d.ts +8 -0
- package/build/es/components/date-input/calendar/CalendarWeek.js +2 -0
- package/build/es/components/date-input/calendar/CalendarWeek.js.map +1 -0
- package/build/es/components/date-input/calendar/types.d.ts +6 -0
- package/build/es/components/date-input/calendar/utils.d.ts +19 -0
- package/build/es/components/date-input/calendar/utils.js +2 -0
- package/build/es/components/date-input/calendar/utils.js.map +1 -0
- package/build/es/components/date-input/index.d.ts +3 -0
- package/build/es/components/date-input/index.js +2 -0
- package/build/es/components/date-input/types.d.ts +35 -0
- package/build/es/components/date-input/utils.d.ts +34 -0
- package/build/es/components/date-input/utils.js +2 -0
- package/build/es/components/date-input/utils.js.map +1 -0
- package/build/es/components/file/File.js +1 -1
- package/build/es/components/file/File.js.map +1 -1
- package/build/es/components/file/types.d.ts +10 -1
- package/build/es/components/search/Search.js +1 -1
- package/build/es/components/search/Search.js.map +1 -1
- package/build/es/components/select/Option.d.ts +12 -0
- package/build/es/components/select/Option.js +2 -0
- package/build/es/components/select/Option.js.map +1 -0
- package/build/es/components/select/Select.d.ts +18 -3
- package/build/es/components/select/Select.js +1 -1
- package/build/es/components/select/Select.js.map +1 -1
- package/build/es/components/select/index.d.ts +1 -5
- package/build/es/components/select/index.js +1 -1
- package/build/es/components/select/utils.d.ts +5 -0
- package/build/es/components/select/utils.js +2 -0
- package/build/es/components/select/utils.js.map +1 -0
- package/build/es/components/table/TablePagination.js +1 -1
- package/build/es/components/table/TablePagination.js.map +1 -1
- package/build/es/components/tabs/Tabs.js.map +1 -1
- package/build/es/hooks/index.d.ts +0 -1
- package/build/es/hooks/index.js +1 -1
- package/build/es/hooks/useListNavigation/useListNavigation.d.ts +4 -2
- package/build/es/hooks/useListNavigation/useListNavigation.js +1 -1
- package/build/es/hooks/useListNavigation/useListNavigation.js.map +1 -1
- package/build/es/utilities/formatters/index.d.ts +1 -1
- package/build/es/utilities/formatters/index.js +1 -1
- package/build/es/utilities/formatters/util/registerWithMask.d.ts +0 -8
- package/build/es/utilities/formatters/util/registerWithMask.js +1 -1
- package/build/es/utilities/formatters/util/registerWithMask.js.map +1 -1
- package/build/es/utilities/index.js +1 -1
- package/build/es/utilities/validators/index.d.ts +0 -1
- package/build/es/utilities/validators/index.js +1 -1
- package/build/es/utilities/valuePair.d.ts +2 -0
- package/build/es/utilities/valuePair.js.map +1 -1
- package/codemods/CODEMODS.md +55 -0
- package/codemods/__tests__/import-paths.test.mjs +155 -0
- package/codemods/import-paths.mjs +10 -2
- package/codemods/transforms/date-input.mjs +225 -0
- package/codemods/transforms/import-specifiers.mjs +26 -0
- package/codemods/transforms/register-with-mask.mjs +267 -0
- package/package.json +14 -13
- package/src/fonts/Jokul-Icons.woff2 +0 -0
- package/src/fonts/brands/fremtind/Jokul-Icons.woff2 +0 -0
- package/styles/base.css +8 -1
- package/styles/base.min.css +1 -1
- package/styles/components/autosuggest/autosuggest.min.css +1 -1
- package/styles/components/beta/description-list/description-list.min.css +1 -1
- package/styles/components/beta/nav-link/navlink.min.css +1 -1
- package/styles/components/breadcrumb/breadcrumb.min.css +1 -1
- package/styles/components/button/button.min.css +1 -1
- package/styles/components/card/card.min.css +1 -1
- package/styles/components/checkbox/checkbox.min.css +1 -1
- package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
- package/styles/components/checkbox-panel/development/styles.min.css +1 -1
- package/styles/components/chip/chip.min.css +1 -1
- package/styles/components/combobox/combobox.min.css +1 -1
- package/styles/components/cookie-consent/cookie-consent.min.css +1 -1
- package/styles/components/countdown/countdown.css +2 -2
- package/styles/components/countdown/countdown.min.css +1 -1
- package/styles/components/date-input/_index.scss +8 -0
- package/styles/components/date-input/calendar/_index.scss +8 -0
- package/styles/components/date-input/calendar/calendar.css +60 -0
- package/styles/components/date-input/calendar/calendar.min.css +1 -0
- package/styles/components/date-input/calendar/calendar.scss +79 -0
- package/styles/components/date-input/date-input.css +187 -0
- package/styles/components/date-input/date-input.min.css +1 -0
- package/styles/components/date-input/date-input.scss +67 -0
- package/styles/components/description-list/description-list.min.css +1 -1
- package/styles/components/expander/accordion.min.css +1 -1
- package/styles/components/expander/expandable.min.css +1 -1
- package/styles/components/feedback/feedback.css +2 -2
- package/styles/components/feedback/feedback.min.css +1 -1
- package/styles/components/file/file.css +50 -61
- package/styles/components/file/file.min.css +1 -1
- package/styles/components/file/file.scss +66 -79
- package/styles/components/file-input/file-input.css +59 -70
- package/styles/components/file-input/file-input.min.css +1 -1
- package/styles/components/flex/flex.min.css +1 -1
- package/styles/components/help/help.min.css +1 -1
- package/styles/components/icon/icon.css +1 -1
- package/styles/components/icon/icon.min.css +1 -1
- package/styles/components/icon/icon.scss +1 -0
- package/styles/components/icon-button/icon-button.min.css +1 -1
- package/styles/components/image/development/style.min.css +1 -1
- package/styles/components/image/image.min.css +1 -1
- package/styles/components/input-group/input-group.css +2 -2
- package/styles/components/input-group/input-group.min.css +1 -1
- package/styles/components/input-panel/input-panel.min.css +1 -1
- package/styles/components/link/link.min.css +1 -1
- package/styles/components/link-list/link-list.min.css +1 -1
- package/styles/components/list/list.min.css +1 -1
- package/styles/components/loader/loader.css +6 -6
- package/styles/components/loader/loader.min.css +1 -1
- package/styles/components/loader/skeleton-loader.css +3 -3
- package/styles/components/loader/skeleton-loader.min.css +1 -1
- package/styles/components/logo/development/styles.min.css +1 -1
- package/styles/components/logo/logo.min.css +1 -1
- package/styles/components/menu/menu.min.css +1 -1
- package/styles/components/message/message.css +2 -2
- package/styles/components/message/message.min.css +1 -1
- package/styles/components/modal/modal.min.css +1 -1
- package/styles/components/nav-link/nav-link.min.css +1 -1
- package/styles/components/number-input/number-input.min.css +1 -1
- package/styles/components/pagination/development/styles.min.css +1 -1
- package/styles/components/pagination/pagination.min.css +1 -1
- package/styles/components/popover/popover.min.css +1 -1
- package/styles/components/progress-bar/progress-bar.css +1 -1
- package/styles/components/progress-bar/progress-bar.min.css +1 -1
- package/styles/components/radio-button/radio-button.min.css +1 -1
- package/styles/components/radio-panel/development/styles.min.css +1 -1
- package/styles/components/radio-panel/radio-panel.min.css +1 -1
- package/styles/components/search/search-with-submit-button.min.css +1 -1
- package/styles/components/search/search.min.css +1 -1
- package/styles/components/segmented-control/segmented-control.css +3 -3
- package/styles/components/segmented-control/segmented-control.min.css +1 -1
- package/styles/components/select/_index.scss +5 -0
- package/styles/components/select/option.css +73 -0
- package/styles/components/select/option.min.css +1 -0
- package/styles/components/select/option.scss +74 -0
- package/styles/components/select/select.css +84 -264
- package/styles/components/select/select.min.css +1 -1
- package/styles/components/select/select.scss +79 -328
- package/styles/components/summary-table/summary-table.min.css +1 -1
- package/styles/components/system-message/system-message.css +2 -2
- package/styles/components/system-message/system-message.min.css +1 -1
- package/styles/components/table/table.min.css +3 -1
- package/styles/components/table-of-contents/table-of-contents.min.css +1 -1
- package/styles/components/tabs/tabs.min.css +1 -1
- package/styles/components/tag/tag.min.css +1 -1
- package/styles/components/text-area/text-area.min.css +1 -1
- package/styles/components/text-input/text-input.min.css +1 -1
- package/styles/components/toast/toast.css +4 -4
- package/styles/components/toast/toast.min.css +1 -1
- package/styles/components/toggle-switch/toggle-switch.min.css +1 -1
- package/styles/components/tooltip/tooltip.min.css +1 -1
- package/styles/components/typography/title.min.css +1 -1
- package/styles/components.css +4391 -4612
- package/styles/components.min.css +3 -1
- package/styles/components.scss +2 -3
- package/styles/jkl/_shadows.scss +0 -12
- package/styles/theme/_fonts.scss +1 -1
- package/styles/utility/_index.scss +2 -1
- package/styles/utility/_lists.scss +7 -0
- package/build/_commonjsHelpers-C37NGDzP.cjs +0 -2
- package/build/_commonjsHelpers-C37NGDzP.cjs.map +0 -1
- package/build/_commonjsHelpers-CXUWDbkB.js +0 -2
- package/build/_commonjsHelpers-CXUWDbkB.js.map +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/Select.d.cts +0 -3
- package/build/cjs/components/beta/select/index.cjs +0 -2
- package/build/cjs/components/beta/select/index.d.cts +0 -2
- package/build/cjs/components/beta/select/types.d.cts +0 -10
- package/build/cjs/components/datepicker/DatePicker.cjs +0 -2
- package/build/cjs/components/datepicker/DatePicker.cjs.map +0 -1
- package/build/cjs/components/datepicker/DatePicker.d.cts +0 -3
- package/build/cjs/components/datepicker/index.cjs +0 -2
- package/build/cjs/components/datepicker/index.cjs.map +0 -1
- package/build/cjs/components/datepicker/index.d.cts +0 -4
- package/build/cjs/components/datepicker/internal/Calendar.cjs +0 -2
- package/build/cjs/components/datepicker/internal/Calendar.cjs.map +0 -1
- package/build/cjs/components/datepicker/internal/Calendar.d.cts +0 -15
- package/build/cjs/components/datepicker/internal/calendarReducer.cjs +0 -2
- package/build/cjs/components/datepicker/internal/calendarReducer.cjs.map +0 -1
- package/build/cjs/components/datepicker/internal/calendarReducer.d.cts +0 -18
- package/build/cjs/components/datepicker/internal/useCalendar.cjs +0 -2
- package/build/cjs/components/datepicker/internal/useCalendar.cjs.map +0 -1
- package/build/cjs/components/datepicker/internal/useCalendar.d.cts +0 -59
- package/build/cjs/components/datepicker/internal/utils.cjs +0 -2
- package/build/cjs/components/datepicker/internal/utils.cjs.map +0 -1
- package/build/cjs/components/datepicker/internal/utils.d.cts +0 -167
- package/build/cjs/components/datepicker/types.d.cts +0 -280
- package/build/cjs/components/datepicker/utils.cjs +0 -2
- package/build/cjs/components/datepicker/utils.cjs.map +0 -1
- package/build/cjs/components/datepicker/utils.d.cts +0 -22
- package/build/cjs/components/datepicker/validation.cjs +0 -2
- package/build/cjs/components/datepicker/validation.cjs.map +0 -1
- package/build/cjs/components/datepicker/validation.d.cts +0 -4
- package/build/cjs/components/select/NativeSelect.cjs +0 -2
- package/build/cjs/components/select/NativeSelect.cjs.map +0 -1
- package/build/cjs/components/select/NativeSelect.d.cts +0 -3
- package/build/cjs/components/select/select-utils.cjs +0 -2
- package/build/cjs/components/select/select-utils.cjs.map +0 -1
- package/build/cjs/components/select/select-utils.d.cts +0 -2
- package/build/cjs/components/select/types.cjs +0 -2
- package/build/cjs/components/select/types.cjs.map +0 -1
- package/build/cjs/components/select/types.d.cts +0 -66
- package/build/cjs/hooks/useAnimatedDetails/index.cjs +0 -2
- package/build/cjs/hooks/useAnimatedDetails/index.cjs.map +0 -1
- package/build/cjs/hooks/useAnimatedDetails/index.d.cts +0 -1
- package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.cjs +0 -2
- package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.cjs.map +0 -1
- package/build/cjs/hooks/useAnimatedDetails/useAnimatedDetails.d.cts +0 -21
- package/build/cjs/utilities/validators/isValidDogId/isValidDogId.cjs +0 -2
- package/build/cjs/utilities/validators/isValidDogId/isValidDogId.cjs.map +0 -1
- package/build/cjs/utilities/validators/isValidDogId/isValidDogId.d.cts +0 -7
- package/build/es/components/beta/select/Select.d.ts +0 -3
- 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/components/beta/select/index.js +0 -2
- package/build/es/components/beta/select/types.d.ts +0 -10
- package/build/es/components/datepicker/DatePicker.d.ts +0 -3
- package/build/es/components/datepicker/DatePicker.js +0 -2
- package/build/es/components/datepicker/DatePicker.js.map +0 -1
- package/build/es/components/datepicker/index.d.ts +0 -4
- package/build/es/components/datepicker/index.js +0 -2
- package/build/es/components/datepicker/index.js.map +0 -1
- package/build/es/components/datepicker/internal/Calendar.d.ts +0 -15
- package/build/es/components/datepicker/internal/Calendar.js +0 -2
- package/build/es/components/datepicker/internal/Calendar.js.map +0 -1
- package/build/es/components/datepicker/internal/calendarReducer.d.ts +0 -18
- package/build/es/components/datepicker/internal/calendarReducer.js +0 -2
- package/build/es/components/datepicker/internal/calendarReducer.js.map +0 -1
- package/build/es/components/datepicker/internal/useCalendar.d.ts +0 -59
- package/build/es/components/datepicker/internal/useCalendar.js +0 -2
- package/build/es/components/datepicker/internal/useCalendar.js.map +0 -1
- package/build/es/components/datepicker/internal/utils.d.ts +0 -167
- package/build/es/components/datepicker/internal/utils.js +0 -2
- package/build/es/components/datepicker/internal/utils.js.map +0 -1
- package/build/es/components/datepicker/types.d.ts +0 -280
- package/build/es/components/datepicker/utils.d.ts +0 -22
- package/build/es/components/datepicker/utils.js +0 -2
- package/build/es/components/datepicker/utils.js.map +0 -1
- package/build/es/components/datepicker/validation.d.ts +0 -4
- package/build/es/components/datepicker/validation.js +0 -2
- package/build/es/components/datepicker/validation.js.map +0 -1
- package/build/es/components/select/NativeSelect.d.ts +0 -3
- package/build/es/components/select/NativeSelect.js +0 -2
- package/build/es/components/select/NativeSelect.js.map +0 -1
- package/build/es/components/select/select-utils.d.ts +0 -2
- package/build/es/components/select/select-utils.js +0 -2
- package/build/es/components/select/select-utils.js.map +0 -1
- package/build/es/components/select/types.d.ts +0 -66
- package/build/es/components/select/types.js +0 -2
- package/build/es/components/select/types.js.map +0 -1
- package/build/es/hooks/useAnimatedDetails/index.d.ts +0 -1
- package/build/es/hooks/useAnimatedDetails/index.js +0 -2
- package/build/es/hooks/useAnimatedDetails/index.js.map +0 -1
- package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.d.ts +0 -21
- package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.js +0 -2
- package/build/es/hooks/useAnimatedDetails/useAnimatedDetails.js.map +0 -1
- package/build/es/utilities/validators/isValidDogId/isValidDogId.d.ts +0 -7
- package/build/es/utilities/validators/isValidDogId/isValidDogId.js +0 -2
- package/build/es/utilities/validators/isValidDogId/isValidDogId.js.map +0 -1
- package/build/utils-C5AH4j8B.js +0 -2
- package/build/utils-C5AH4j8B.js.map +0 -1
- package/build/utils-CD_aHC6R.cjs +0 -2
- package/build/utils-CD_aHC6R.cjs.map +0 -1
- package/src/fonts/Fremtind-Material-Symbols.woff2 +0 -0
- package/src/fonts/brands/fremtind/Fremtind-Material-Symbols.woff2 +0 -0
- package/styles/components/beta/select/_index.scss +0 -3
- package/styles/components/beta/select/select.css +0 -101
- package/styles/components/beta/select/select.min.css +0 -1
- package/styles/components/beta/select/select.scss +0 -99
- package/styles/components/datepicker/_calendar-date-button.scss +0 -72
- package/styles/components/datepicker/_calendar-navigation-dropdown.scss +0 -55
- package/styles/components/datepicker/_calendar-navigation.scss +0 -14
- package/styles/components/datepicker/_calendar-table.scss +0 -29
- package/styles/components/datepicker/_calendar.scss +0 -28
- package/styles/components/datepicker/_index.scss +0 -6
- package/styles/components/datepicker/datepicker.css +0 -246
- package/styles/components/datepicker/datepicker.min.css +0 -1
- package/styles/components/datepicker/datepicker.scss +0 -49
- /package/build/cjs/components/{beta/select → date-input/calendar}/types.cjs +0 -0
- /package/build/cjs/components/{beta/select → date-input/calendar}/types.cjs.map +0 -0
- /package/build/cjs/components/{beta/select → date-input}/index.cjs.map +0 -0
- /package/build/cjs/components/{datepicker → date-input}/types.cjs +0 -0
- /package/build/cjs/components/{datepicker → date-input}/types.cjs.map +0 -0
- /package/build/es/components/{beta/select → date-input/calendar}/types.js +0 -0
- /package/build/es/components/{beta/select → date-input/calendar}/types.js.map +0 -0
- /package/build/es/components/{beta/select → date-input}/index.js.map +0 -0
- /package/build/es/components/{datepicker → date-input}/types.js +0 -0
- /package/build/es/components/{datepicker → date-input}/types.js.map +0 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
// DatePicker er omdøpt til DateInput og Calendar er skrevet om til å bygge på det native
|
|
2
|
+
// <input type="date">-elementet i Jøkul 6. Denne transformen håndterer de
|
|
3
|
+
// mekaniske delene av migreringen og varsler om det som må vurderes manuelt.
|
|
4
|
+
//
|
|
5
|
+
// Automatiske endringer:
|
|
6
|
+
// - Import path: @fremtind/jokul/datepicker → @fremtind/jokul/date-input
|
|
7
|
+
// - Komponentnavn: DatePicker → DateInput
|
|
8
|
+
// - Props på <DateInput>:
|
|
9
|
+
// disableBeforeDate={...} → min={...}
|
|
10
|
+
// disableAfterDate={...} → max={...}
|
|
11
|
+
//
|
|
12
|
+
// Manuell oppfølging (varsler):
|
|
13
|
+
// - value/defaultValue/min/max bruker nå ISO-format (yyyy-mm-dd), ikke dd.mm.yyyy
|
|
14
|
+
// - onChange gir nå et standard React ChangeEvent (les event.target.value)
|
|
15
|
+
// - defaultShow, initialShow, extended, invalid, yearsToShow, days, months,
|
|
16
|
+
// monthLabel, yearLabel, action, showCalendarLabel, hideCalendarLabel og
|
|
17
|
+
// textInputProps er fjernet
|
|
18
|
+
// - hjelpefunksjonen formatInput er fjernet – bruk toValidInputValue
|
|
19
|
+
|
|
20
|
+
const IMPORT_PATH_RENAMES = [
|
|
21
|
+
[
|
|
22
|
+
/from\s+["']@fremtind\/jokul\/datepicker["']/g,
|
|
23
|
+
'from "@fremtind/jokul/date-input"',
|
|
24
|
+
],
|
|
25
|
+
[
|
|
26
|
+
/from\s+["']@fremtind\/jokul\/date-inputs["']/g,
|
|
27
|
+
'from "@fremtind/jokul/date-input"',
|
|
28
|
+
],
|
|
29
|
+
[
|
|
30
|
+
/from\s+["']@fremtind\/jokul\/date-picker["']/g,
|
|
31
|
+
'from "@fremtind/jokul/date-input"',
|
|
32
|
+
],
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
// Component name replacements (imports + JSX tags)
|
|
36
|
+
const COMPONENT_RENAMES = [
|
|
37
|
+
// Import specifiers: `import { DatePicker } ...` -> `import { DateInput } ...`
|
|
38
|
+
[/\bDatePicker\b(?=\s*(?:,|}|as\b))/g, "DateInput"],
|
|
39
|
+
// JSX opening/closing tags
|
|
40
|
+
[/<\s*DatePicker\b/g, "<DateInput"],
|
|
41
|
+
[/<\s*\/\s*DatePicker\b/g, "</DateInput"],
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
// Prop name replacements - Kun JSX-attributter (etterfulgt av `=`) matches
|
|
45
|
+
const PROP_RENAMES = [
|
|
46
|
+
[/\bdisableBeforeDate(?=\s*=)/g, "min"],
|
|
47
|
+
[/\bdisableAfterDate(?=\s*=)/g, "max"],
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
// Fjernede props uten direkte erstatning. Codemoden kan ikke gjette intensjonen,
|
|
51
|
+
// så vi varsler i stedet for å endre koden. Boolske props brukes ofte uten `=`,
|
|
52
|
+
// derfor to lister.
|
|
53
|
+
const REMOVED_BOOLEAN_PROPS = [
|
|
54
|
+
["defaultShow", "Kalenderen åpnes via kalenderknappen (popover)."],
|
|
55
|
+
["initialShow", "Kalenderen åpnes via kalenderknappen (popover)."],
|
|
56
|
+
["extended", "Kalenderen har alltid måneds- og årsvelger."],
|
|
57
|
+
[
|
|
58
|
+
"invalid",
|
|
59
|
+
"Bruk `errorLabel`, som setter både `aria-invalid` og feilstilen.",
|
|
60
|
+
],
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
const REMOVED_VALUE_PROPS = [
|
|
64
|
+
[
|
|
65
|
+
"yearsToShow",
|
|
66
|
+
"Årsvelgeren utledes fra `min`/`max` (±5 år som standard).",
|
|
67
|
+
],
|
|
68
|
+
["months", "Månedsnavn hentes fra `Intl` med `nb-NO`."],
|
|
69
|
+
["days", "Ukedagsnavn hentes fra `Intl` med `nb-NO`."],
|
|
70
|
+
["monthLabel", "Månedsvelgeren har fast, skjult label «Måned»."],
|
|
71
|
+
["yearLabel", "Årsvelgeren har fast, skjult label «År»."],
|
|
72
|
+
[
|
|
73
|
+
"showCalendarLabel",
|
|
74
|
+
"Kalenderknappen har fast aria-label «Åpne kalender».",
|
|
75
|
+
],
|
|
76
|
+
["hideCalendarLabel", "Kalenderen lukkes med Esc eller klikk utenfor."],
|
|
77
|
+
["action", "Egne handlinger må plasseres utenfor feltet."],
|
|
78
|
+
[
|
|
79
|
+
"textInputProps",
|
|
80
|
+
'Send attributtene direkte på <DateInput>; de videresendes til <input type="date">.',
|
|
81
|
+
],
|
|
82
|
+
];
|
|
83
|
+
|
|
84
|
+
const USES_DATE_COMPONENT = /<\s*(?:DateInput|DatePicker)\b/;
|
|
85
|
+
|
|
86
|
+
// Kun JSX-attributter: hopp over `aria-invalid`, `obj.invalid`, `isInvalid`,
|
|
87
|
+
// variabeldeklarasjoner (`const months = ...`) og sammenligninger (`days === 3`).
|
|
88
|
+
const NOT_PART_OF_IDENTIFIER = "(?<![-\\w.$])";
|
|
89
|
+
const NOT_A_DECLARATION = "(?<!\\b(?:const|let|var)\\s+)";
|
|
90
|
+
|
|
91
|
+
const DATE_COMPONENT_TAG_START = /<\s*(?:DateInput|DatePicker)\b/g;
|
|
92
|
+
|
|
93
|
+
// Leser en JSX-tag fra `<DateInput` til matchende `>`. Hopper over `>` inne i
|
|
94
|
+
// uttrykk (`onChange={(e) => ...}`), strenger og template-literaler.
|
|
95
|
+
function replaceInDateComponentTags(text, replaceTag) {
|
|
96
|
+
let output = "";
|
|
97
|
+
let lastIndex = 0;
|
|
98
|
+
DATE_COMPONENT_TAG_START.lastIndex = 0;
|
|
99
|
+
|
|
100
|
+
for (
|
|
101
|
+
let match = DATE_COMPONENT_TAG_START.exec(text);
|
|
102
|
+
match !== null;
|
|
103
|
+
match = DATE_COMPONENT_TAG_START.exec(text)
|
|
104
|
+
) {
|
|
105
|
+
const start = match.index;
|
|
106
|
+
let i = DATE_COMPONENT_TAG_START.lastIndex;
|
|
107
|
+
let depth = 0;
|
|
108
|
+
let stringChar = null;
|
|
109
|
+
let end = -1;
|
|
110
|
+
|
|
111
|
+
while (i < text.length) {
|
|
112
|
+
const char = text[i];
|
|
113
|
+
|
|
114
|
+
if (stringChar) {
|
|
115
|
+
if (char === "\\") {
|
|
116
|
+
i += 2;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
if (char === stringChar) stringChar = null;
|
|
120
|
+
i += 1;
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
if (char === '"' || char === "'" || char === "`") {
|
|
124
|
+
stringChar = char;
|
|
125
|
+
} else if (char === "{") {
|
|
126
|
+
depth += 1;
|
|
127
|
+
} else if (char === "}") {
|
|
128
|
+
depth -= 1;
|
|
129
|
+
} else if (char === ">" && depth === 0) {
|
|
130
|
+
end = i + 1;
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
i += 1;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (end === -1) break;
|
|
137
|
+
|
|
138
|
+
output +=
|
|
139
|
+
text.slice(lastIndex, start) + replaceTag(text.slice(start, end));
|
|
140
|
+
lastIndex = end;
|
|
141
|
+
DATE_COMPONENT_TAG_START.lastIndex = end;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return output + text.slice(lastIndex);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export function applyDateInputTransforms(text) {
|
|
148
|
+
let next = text;
|
|
149
|
+
let count = 0;
|
|
150
|
+
|
|
151
|
+
// Replace import paths
|
|
152
|
+
for (const [pattern, replacement] of IMPORT_PATH_RENAMES) {
|
|
153
|
+
next = next.replace(pattern, () => {
|
|
154
|
+
count += 1;
|
|
155
|
+
return replacement;
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Replace component names in JSX
|
|
160
|
+
for (const [pattern, replacement] of COMPONENT_RENAMES) {
|
|
161
|
+
const matches = next.match(pattern);
|
|
162
|
+
if (matches) {
|
|
163
|
+
next = next.replace(pattern, replacement);
|
|
164
|
+
count += matches.length;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// Replace prop names
|
|
169
|
+
for (const [pattern, replacement] of PROP_RENAMES) {
|
|
170
|
+
next = replaceInDateComponentTags(next, (tag) => {
|
|
171
|
+
let replacedTag = tag;
|
|
172
|
+
for (const [pattern, replacement] of PROP_RENAMES) {
|
|
173
|
+
replacedTag = replacedTag.replace(pattern, () => {
|
|
174
|
+
count += 1;
|
|
175
|
+
return replacement;
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
return replacedTag;
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const warnings = [];
|
|
183
|
+
|
|
184
|
+
if (USES_DATE_COMPONENT.test(next)) {
|
|
185
|
+
warnings.push(
|
|
186
|
+
"Manuell vurdering: DateInput `onChange`, `onFocus` og `onBlur` er nå vanlige React-handlere som kun får `event`. Les datoen fra `event.target.value` i stedet for `(event, date, { error, value })`.",
|
|
187
|
+
);
|
|
188
|
+
warnings.push(
|
|
189
|
+
"Manuell vurdering: DateInput bruker nå ISO-datoformat (yyyy-mm-dd) for `value`, `defaultValue`, `min` og `max`. Konverter eventuelle `dd.mm.yyyy`-strenger.",
|
|
190
|
+
);
|
|
191
|
+
warnings.push(
|
|
192
|
+
"Manuell vurdering: DateInput `onChange` gir nå et standard React change-event. Les datoen fra `event.target.value` i stedet for `(event, date, { error, value })`.",
|
|
193
|
+
);
|
|
194
|
+
|
|
195
|
+
for (const [prop, hint] of REMOVED_BOOLEAN_PROPS) {
|
|
196
|
+
const pattern = new RegExp(
|
|
197
|
+
`${NOT_PART_OF_IDENTIFIER}${prop}\\b(?=[\\s/>=}])`,
|
|
198
|
+
);
|
|
199
|
+
if (pattern.test(next)) {
|
|
200
|
+
warnings.push(
|
|
201
|
+
`Manuell vurdering: \`${prop}\` er fjernet fra DateInput. ${hint}`,
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
for (const [prop, hint] of REMOVED_VALUE_PROPS) {
|
|
207
|
+
const pattern = new RegExp(
|
|
208
|
+
`${NOT_PART_OF_IDENTIFIER}${NOT_A_DECLARATION}${prop}\\s*=(?!=)`,
|
|
209
|
+
);
|
|
210
|
+
if (pattern.test(next)) {
|
|
211
|
+
warnings.push(
|
|
212
|
+
`Manuell vurdering: \`${prop}\` er fjernet fra DateInput. ${hint}`,
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
if (/\bformatInput\b/.test(next)) {
|
|
219
|
+
warnings.push(
|
|
220
|
+
"Manuell vurdering: hjelpefunksjonen `formatInput` er fjernet. Bruk `toValidInputValue` for å normalisere datostrenger til ISO-format.",
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return { text: next, count, warnings };
|
|
225
|
+
}
|
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
import { escapeRegExp, replaceSpecifier } from "../utils.mjs";
|
|
2
2
|
|
|
3
|
+
// DatePicker ble omdøpt til DateInput i Jøkul 6. Den publiserte stilmappa følger
|
|
4
|
+
// komponentmappa, så både mappe- og filnavn må skrives om.
|
|
5
|
+
const DATE_INPUT_LEGACY_STYLE_DIRS = [
|
|
6
|
+
"datepicker",
|
|
7
|
+
"date-picker",
|
|
8
|
+
"date-inputs",
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
const DATE_INPUT_STYLE_REPLACEMENTS = DATE_INPUT_LEGACY_STYLE_DIRS.flatMap(
|
|
12
|
+
(legacy) => {
|
|
13
|
+
const from = `@fremtind/jokul/styles/components/${legacy}`;
|
|
14
|
+
const to = "@fremtind/jokul/styles/components/date-input";
|
|
15
|
+
|
|
16
|
+
return [
|
|
17
|
+
[`${from}/${legacy}.min.css`, `${to}/date-input.min.css`],
|
|
18
|
+
[`${from}/${legacy}.css`, `${to}/date-input.css`],
|
|
19
|
+
[`${from}/${legacy}.scss`, `${to}/date-input.scss`],
|
|
20
|
+
[`${from}/${legacy}`, `${to}/date-input`],
|
|
21
|
+
[`${from}/_index.scss`, `${to}/_index.scss`],
|
|
22
|
+
[from, to],
|
|
23
|
+
];
|
|
24
|
+
},
|
|
25
|
+
);
|
|
26
|
+
|
|
3
27
|
const DIRECT_REPLACEMENTS = [
|
|
4
28
|
[
|
|
5
29
|
"@fremtind/jokul/styles/core/core.min.css",
|
|
@@ -45,6 +69,8 @@ const DIRECT_REPLACEMENTS = [
|
|
|
45
69
|
["@fremtind/jokul/styles/core", "@fremtind/jokul/styles/base.scss"],
|
|
46
70
|
["@fremtind/jokul/styles", "@fremtind/jokul/styles/components.scss"],
|
|
47
71
|
["@fremtind/jokul/core", "@fremtind/jokul/utilities"],
|
|
72
|
+
["@fremtind/jokul/datepicker", "@fremtind/jokul/date-input"],
|
|
73
|
+
...DATE_INPUT_STYLE_REPLACEMENTS,
|
|
48
74
|
].sort(([a], [b]) => b.length - a.length);
|
|
49
75
|
|
|
50
76
|
const BETA_STYLE_MIGRATIONS = [
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
// De frittstående, utgåtte maskefunksjonene er fjernet i Jøkul 6:
|
|
2
|
+
// registerWithFodselsnummerMask
|
|
3
|
+
// registerWithKontonummerMask
|
|
4
|
+
// registerWithKortnummerMask
|
|
5
|
+
// registerWithTelefonnummerMask
|
|
6
|
+
//
|
|
7
|
+
// De erstattes av metodene på `registerWithMasks(form)`. Signaturen endres fra
|
|
8
|
+
// registerWithXMask(form, name, options)
|
|
9
|
+
// til
|
|
10
|
+
// registerWithMasks(form).registerWithXMask(name, options)
|
|
11
|
+
//
|
|
12
|
+
// Transformen skriver om kallsteder, rydder importene og varsler når et kall
|
|
13
|
+
// ikke kan migreres automatisk (mangler form-argument) eller er aliased.
|
|
14
|
+
|
|
15
|
+
const REMOVED_MASKS = [
|
|
16
|
+
"registerWithFodselsnummerMask",
|
|
17
|
+
"registerWithKontonummerMask",
|
|
18
|
+
"registerWithKortnummerMask",
|
|
19
|
+
"registerWithTelefonnummerMask",
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
const CALL_PATTERN = new RegExp(`(${REMOVED_MASKS.join("|")})\\s*\\(`, "g");
|
|
23
|
+
|
|
24
|
+
const IMPORT_PATTERN =
|
|
25
|
+
/(import\s+(?:type\s+)?\{)([^}]*)(\}\s*from\s*)(["'])(@fremtind\/jokul\/(?:utilities|core))\4(\s*;?)/g;
|
|
26
|
+
|
|
27
|
+
function isMemberOrIdentifier(text, nameIndex) {
|
|
28
|
+
const prev = text[nameIndex - 1];
|
|
29
|
+
if (prev === undefined) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (/[\w$]/.test(prev)) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
if (prev === ".") {
|
|
36
|
+
const isSpread =
|
|
37
|
+
text[nameIndex - 2] === "." && text[nameIndex - 3] === ".";
|
|
38
|
+
return !isSpread;
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Leser argumentlisten fra og med `(` på openParenIndex, og deler den i
|
|
44
|
+
// argumenter på toppnivå. Håndterer nøstede parenteser/klammer, strenger,
|
|
45
|
+
// template-literaler og kommentarer.
|
|
46
|
+
function readArguments(text, openParenIndex) {
|
|
47
|
+
const args = [];
|
|
48
|
+
let current = "";
|
|
49
|
+
let i = openParenIndex + 1;
|
|
50
|
+
const stack = ["("];
|
|
51
|
+
let stringChar = null;
|
|
52
|
+
let inLineComment = false;
|
|
53
|
+
let inBlockComment = false;
|
|
54
|
+
|
|
55
|
+
while (i < text.length) {
|
|
56
|
+
const char = text[i];
|
|
57
|
+
const next = text[i + 1];
|
|
58
|
+
|
|
59
|
+
if (inLineComment) {
|
|
60
|
+
current += char;
|
|
61
|
+
if (char === "\n") {
|
|
62
|
+
inLineComment = false;
|
|
63
|
+
}
|
|
64
|
+
i += 1;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (inBlockComment) {
|
|
69
|
+
current += char;
|
|
70
|
+
if (char === "*" && next === "/") {
|
|
71
|
+
current += next;
|
|
72
|
+
i += 2;
|
|
73
|
+
inBlockComment = false;
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
i += 1;
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (stringChar) {
|
|
81
|
+
current += char;
|
|
82
|
+
if (char === "\\") {
|
|
83
|
+
if (next !== undefined) {
|
|
84
|
+
current += next;
|
|
85
|
+
i += 2;
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
} else if (char === stringChar) {
|
|
89
|
+
stringChar = null;
|
|
90
|
+
}
|
|
91
|
+
i += 1;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (char === "/" && next === "/") {
|
|
96
|
+
inLineComment = true;
|
|
97
|
+
current += char;
|
|
98
|
+
i += 1;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (char === "/" && next === "*") {
|
|
103
|
+
inBlockComment = true;
|
|
104
|
+
current += char;
|
|
105
|
+
i += 1;
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (char === '"' || char === "'" || char === "`") {
|
|
110
|
+
stringChar = char;
|
|
111
|
+
current += char;
|
|
112
|
+
i += 1;
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (char === "(" || char === "[" || char === "{") {
|
|
117
|
+
stack.push(char);
|
|
118
|
+
current += char;
|
|
119
|
+
i += 1;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (char === ")" || char === "]" || char === "}") {
|
|
124
|
+
stack.pop();
|
|
125
|
+
if (stack.length === 0) {
|
|
126
|
+
if (current.trim() !== "" || args.length > 0) {
|
|
127
|
+
args.push(current);
|
|
128
|
+
}
|
|
129
|
+
return { args, endIndex: i + 1 };
|
|
130
|
+
}
|
|
131
|
+
current += char;
|
|
132
|
+
i += 1;
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (char === "," && stack.length === 1) {
|
|
137
|
+
args.push(current);
|
|
138
|
+
current = "";
|
|
139
|
+
i += 1;
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
current += char;
|
|
144
|
+
i += 1;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function transformCallSites(text) {
|
|
151
|
+
let count = 0;
|
|
152
|
+
const warnings = [];
|
|
153
|
+
let output = "";
|
|
154
|
+
let lastIndex = 0;
|
|
155
|
+
|
|
156
|
+
CALL_PATTERN.lastIndex = 0;
|
|
157
|
+
for (
|
|
158
|
+
let match = CALL_PATTERN.exec(text);
|
|
159
|
+
match !== null;
|
|
160
|
+
match = CALL_PATTERN.exec(text)
|
|
161
|
+
) {
|
|
162
|
+
const name = match[1];
|
|
163
|
+
const nameIndex = match.index;
|
|
164
|
+
|
|
165
|
+
if (isMemberOrIdentifier(text, nameIndex)) {
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const openParenIndex = CALL_PATTERN.lastIndex - 1;
|
|
170
|
+
const parsed = readArguments(text, openParenIndex);
|
|
171
|
+
if (!parsed) {
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const { args, endIndex } = parsed;
|
|
176
|
+
const form = args.length > 0 ? args[0].trim() : "";
|
|
177
|
+
|
|
178
|
+
if (form === "") {
|
|
179
|
+
warnings.push(
|
|
180
|
+
`Kunne ikke migrere \`${name}\` automatisk: fant ikke form-argumentet. Migrer manuelt til \`registerWithMasks(form).${name}(...)\`.`,
|
|
181
|
+
);
|
|
182
|
+
CALL_PATTERN.lastIndex = endIndex;
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const restArgs = args
|
|
187
|
+
.slice(1)
|
|
188
|
+
.map((arg) => arg.trim())
|
|
189
|
+
.filter((arg) => arg !== "");
|
|
190
|
+
|
|
191
|
+
const replacement = `registerWithMasks(${form}).${name}(${restArgs.join(", ")})`;
|
|
192
|
+
|
|
193
|
+
output += text.slice(lastIndex, nameIndex) + replacement;
|
|
194
|
+
lastIndex = endIndex;
|
|
195
|
+
count += 1;
|
|
196
|
+
CALL_PATTERN.lastIndex = endIndex;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
output += text.slice(lastIndex);
|
|
200
|
+
|
|
201
|
+
return { text: output, count, warnings };
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function transformImports(text) {
|
|
205
|
+
let count = 0;
|
|
206
|
+
const warnings = [];
|
|
207
|
+
|
|
208
|
+
const next = text.replace(
|
|
209
|
+
IMPORT_PATTERN,
|
|
210
|
+
(full, open, body, mid, quote, specifierPath, tail) => {
|
|
211
|
+
const specifiers = body
|
|
212
|
+
.split(",")
|
|
213
|
+
.map((entry) => entry.trim())
|
|
214
|
+
.filter((entry) => entry !== "");
|
|
215
|
+
|
|
216
|
+
let removedAny = false;
|
|
217
|
+
let hasRegisterWithMasks = false;
|
|
218
|
+
const kept = [];
|
|
219
|
+
|
|
220
|
+
for (const specifier of specifiers) {
|
|
221
|
+
const baseName = specifier.split(/\s+as\s+/)[0].trim();
|
|
222
|
+
|
|
223
|
+
if (baseName === "registerWithMasks") {
|
|
224
|
+
hasRegisterWithMasks = true;
|
|
225
|
+
kept.push(specifier);
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
if (REMOVED_MASKS.includes(baseName)) {
|
|
230
|
+
removedAny = true;
|
|
231
|
+
count += 1;
|
|
232
|
+
if (/\s+as\s+/.test(specifier)) {
|
|
233
|
+
warnings.push(
|
|
234
|
+
`\`${baseName}\` importeres med alias (\`${specifier}\`). Importen er fjernet, men kallstedene bruker aliaset og må migreres manuelt til \`registerWithMasks(form).${baseName}(...)\`.`,
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
kept.push(specifier);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
if (!removedAny) {
|
|
244
|
+
return full;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
if (!hasRegisterWithMasks) {
|
|
248
|
+
kept.unshift("registerWithMasks");
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
return `${open} ${kept.join(", ")} ${mid}${quote}${specifierPath}${quote}${tail}`;
|
|
252
|
+
},
|
|
253
|
+
);
|
|
254
|
+
|
|
255
|
+
return { text: next, count, warnings };
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
export function applyRegisterWithMaskTransforms(text) {
|
|
259
|
+
const calls = transformCallSites(text);
|
|
260
|
+
const imports = transformImports(calls.text);
|
|
261
|
+
|
|
262
|
+
return {
|
|
263
|
+
text: imports.text,
|
|
264
|
+
count: calls.count + imports.count,
|
|
265
|
+
warnings: [...calls.warnings, ...imports.warnings],
|
|
266
|
+
};
|
|
267
|
+
}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fremtind/jokul",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-next.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
|
-
"node": "^
|
|
6
|
+
"node": "^22.22.2 || ^24.15.0 || ^26.0.0"
|
|
7
7
|
},
|
|
8
8
|
"publishConfig": {
|
|
9
9
|
"access": "public"
|
|
@@ -75,8 +75,8 @@
|
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"downshift": "^
|
|
79
|
-
"match-sorter": "^
|
|
78
|
+
"downshift": "^9.4.0",
|
|
79
|
+
"match-sorter": "^8.3.0"
|
|
80
80
|
},
|
|
81
81
|
"optionalDependencies": {
|
|
82
82
|
"@floating-ui/react": "0.24.1 - 0.27",
|
|
@@ -86,36 +86,37 @@
|
|
|
86
86
|
"tailwindcss": "^3.4.17"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
|
-
"@babel/
|
|
90
|
-
"@babel/
|
|
89
|
+
"@babel/core": "^8.0.1",
|
|
90
|
+
"@babel/cli": "^8.0.4",
|
|
91
|
+
"@babel/preset-react": "^8.0.1",
|
|
91
92
|
"@figma/code-connect": "^1.5.2",
|
|
92
93
|
"@rollup/plugin-terser": "^1.0.0",
|
|
93
94
|
"@types/react": "18.3.1",
|
|
94
95
|
"@vitejs/plugin-react": "^4.7.0",
|
|
95
|
-
"@vitejs/plugin-react-swc": "^3.
|
|
96
|
+
"@vitejs/plugin-react-swc": "^4.3.3",
|
|
96
97
|
"autoprefixer": "^10.5.4",
|
|
97
98
|
"change-case": "^5.4.4",
|
|
98
|
-
"cssnano": "^
|
|
99
|
-
"cssnano-preset-lite": "^
|
|
99
|
+
"cssnano": "^8.0.2",
|
|
100
|
+
"cssnano-preset-lite": "^5.0.1",
|
|
100
101
|
"dayjs": "^1.11.21",
|
|
101
102
|
"glob": "^13.0.6",
|
|
102
103
|
"ink": "^5.1.0",
|
|
103
104
|
"ink-select-input": "^6.0.0",
|
|
104
|
-
"jsdom": "^
|
|
105
|
-
"nanoid": "^
|
|
105
|
+
"jsdom": "^30.0.1",
|
|
106
|
+
"nanoid": "^6.0.1",
|
|
106
107
|
"postcss": "^8.5.10",
|
|
107
108
|
"react": "18.3.1",
|
|
108
109
|
"react-dom": "18.3.1",
|
|
109
110
|
"react-hook-form": "^7.84.0",
|
|
110
111
|
"react-is": "18.3.1",
|
|
111
112
|
"rollup-plugin-node-externals": "^8.0.1",
|
|
112
|
-
"rollup-plugin-visualizer": "^
|
|
113
|
+
"rollup-plugin-visualizer": "^7.0.1",
|
|
113
114
|
"sass-embedded": "^1.100.0",
|
|
114
115
|
"style-dictionary": "^5.5.0",
|
|
115
116
|
"tailwindcss": "^3.4.17",
|
|
116
117
|
"tsx": "^4.23.5",
|
|
117
118
|
"vite": "^7.3.6",
|
|
118
|
-
"vite-plugin-dts": "^5.0.
|
|
119
|
+
"vite-plugin-dts": "^5.0.3",
|
|
119
120
|
"vitest": "^4.1.10",
|
|
120
121
|
"vitest-axe": "^0.1.0"
|
|
121
122
|
},
|
|
Binary file
|
|
Binary file
|
package/styles/base.css
CHANGED
|
@@ -278,7 +278,7 @@
|
|
|
278
278
|
font-family: "Jokul Icons";
|
|
279
279
|
font-weight: 300 400;
|
|
280
280
|
font-style: normal;
|
|
281
|
-
src: url("/fonts/
|
|
281
|
+
src: url("/fonts/Jokul-Icons.woff2") format("woff2");
|
|
282
282
|
}
|
|
283
283
|
@font-face {
|
|
284
284
|
font-family: "Adjusted Arial Fallback";
|
|
@@ -1405,4 +1405,11 @@
|
|
|
1405
1405
|
.jkl-spacing-2xl--right {
|
|
1406
1406
|
margin-right: var(--jkl-spacing-2xl);
|
|
1407
1407
|
}
|
|
1408
|
+
}
|
|
1409
|
+
@layer jokul.utility {
|
|
1410
|
+
:is(ul, ol):is(.jkl-list-reset) {
|
|
1411
|
+
list-style-type: none;
|
|
1412
|
+
margin: 0;
|
|
1413
|
+
padding: 0;
|
|
1414
|
+
}
|
|
1408
1415
|
}
|