@fremtind/jokul 6.0.0-next.0 → 6.0.0-next.2
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/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/message/Message.cjs +1 -1
- package/build/cjs/components/message/Message.cjs.map +1 -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/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/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/message/Message.js +1 -1
- package/build/es/components/message/Message.js.map +1 -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/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/valuePair.d.ts +2 -0
- package/build/es/utilities/valuePair.js.map +1 -1
- package/codemods/CODEMODS.md +39 -0
- package/codemods/__tests__/import-paths.test.mjs +132 -20
- package/codemods/import-paths.mjs +8 -6
- package/codemods/transforms/date-input.mjs +225 -0
- package/codemods/transforms/import-specifiers.mjs +26 -0
- package/package.json +14 -13
- package/styles/base.css +7 -0
- 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.min.css +1 -1
- package/styles/components/file-input/file-input.css +9 -9
- 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 +4343 -4553
- package/styles/components.min.css +3 -1
- package/styles/components.scss +2 -3
- 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/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/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/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
package/codemods/CODEMODS.md
CHANGED
|
@@ -118,6 +118,41 @@ Tilsvarende omdøping for alle Tailwind v4-fargeklasser generert fra `--color-*`
|
|
|
118
118
|
|
|
119
119
|
Tailwind-modifikatorer (`hover:`, `dark:`, `md:`, `focus:` o.l.), opacity-modifikatorer (`/50`) og viktig-prefiks (`!`) håndteres korrekt.
|
|
120
120
|
|
|
121
|
+
#### DateInput (Jøkul 6)
|
|
122
|
+
|
|
123
|
+
Import path, stilimporter og komponentnavn omdøpes automatisk:
|
|
124
|
+
|
|
125
|
+
| Gammel import | Ny import |
|
|
126
|
+
|---|---|
|
|
127
|
+
| `@fremtind/jokul/datepicker` | `@fremtind/jokul/date-input` |
|
|
128
|
+
| `@fremtind/jokul/date-inputs` | `@fremtind/jokul/date-input` |
|
|
129
|
+
| `@fremtind/jokul/date-picker` | `@fremtind/jokul/date-input` |
|
|
130
|
+
|
|
131
|
+
Stilmappa følger komponentmappa, så både mappe- og filnavn skrives om. Gjelder både `import "..."` og Sass `@use`/`@forward`:
|
|
132
|
+
|
|
133
|
+
| Gammel stilimport | Ny stilimport |
|
|
134
|
+
|---|---|
|
|
135
|
+
| `@fremtind/jokul/styles/components/datepicker` | `@fremtind/jokul/styles/components/date-input` |
|
|
136
|
+
| `@fremtind/jokul/styles/components/datepicker/_index.scss` | `@fremtind/jokul/styles/components/date-input/_index.scss` |
|
|
137
|
+
| `@fremtind/jokul/styles/components/datepicker/datepicker.scss` | `@fremtind/jokul/styles/components/date-input/date-input.scss` |
|
|
138
|
+
| `@fremtind/jokul/styles/components/datepicker/datepicker.css` | `@fremtind/jokul/styles/components/date-input/date-input.css` |
|
|
139
|
+
| `@fremtind/jokul/styles/components/datepicker/datepicker.min.css` | `@fremtind/jokul/styles/components/date-input/date-input.min.css` |
|
|
140
|
+
|
|
141
|
+
De samme variantene håndteres for de eldre mappenavnene `date-picker` og `date-inputs`.
|
|
142
|
+
|
|
143
|
+
| Gammel komponent | Ny komponent |
|
|
144
|
+
|---|---|
|
|
145
|
+
| `DatePicker` | `DateInput` |
|
|
146
|
+
|
|
147
|
+
Prop-navnene som begrenser datovalg omdøpes automatisk:
|
|
148
|
+
|
|
149
|
+
| Gammel prop | Ny prop |
|
|
150
|
+
|---|---|
|
|
151
|
+
| `disableBeforeDate` | `min` |
|
|
152
|
+
| `disableAfterDate` | `max` |
|
|
153
|
+
|
|
154
|
+
Fjernede props endres ikke automatisk, men gir varsel når de finnes i en fil som bruker `DateInput`/`DatePicker`: `defaultShow`, `initialShow`, `extended`, `invalid`, `yearsToShow`, `days`, `months`, `monthLabel`, `yearLabel`, `action`, `showCalendarLabel`, `hideCalendarLabel` og `textInputProps`. Se [MIGRATION.md](../MIGRATION.md#fjernede-props-og-hjelpefunksjoner) for erstatninger.
|
|
155
|
+
|
|
121
156
|
---
|
|
122
157
|
|
|
123
158
|
#### Fjernede maskefunksjoner
|
|
@@ -147,3 +182,7 @@ Disse mønstrene kan ikke omdøpes automatisk. Codemoden skriver ut ett varsel p
|
|
|
147
182
|
| `variant="outlined\|high\|low"` (på `Card`) | `variant`-prop er fjernet. Bruk `outlined` (boolean) for ramme, fjern `high`/`low`. |
|
|
148
183
|
| `bg-background-interactive` o.l. (Tailwind) | Fjernede Tailwind-klasser basert på `background-interactive`/`text-interactive`. |
|
|
149
184
|
| `border-border-separator` o.l. (Tailwind) | Fjernede Tailwind-kantklasser. Bruk `border-border-default`, `-subdued` eller `-strong`. |
|
|
185
|
+
| `<DateInput>` | Datoverdier bruker nå ISO-format (`yyyy-mm-dd`), ikke `dd.mm.yyyy`. |
|
|
186
|
+
| `<DateInput>` `onChange` | Gir nå et standard React change-event. Les datoen fra `event.target.value`. |
|
|
187
|
+
| `defaultShow` | Fjernet fra DateInput. Kalenderen åpnes via kalenderknappen. |
|
|
188
|
+
| `extended`, `invalid`, `yearsToShow`, `days`, `months`, `monthLabel`, `yearLabel`, `action`, `showCalendarLabel`, `hideCalendarLabel`, `textInputProps` | Fjernet fra DateInput. Se migrasjonsguiden for erstatninger. |
|
|
@@ -746,45 +746,157 @@ test("ExpandablePanel: håndterer flerlinjet JSX korrekt", () => {
|
|
|
746
746
|
assert.equal(result.changed, true);
|
|
747
747
|
});
|
|
748
748
|
|
|
749
|
-
test("
|
|
750
|
-
const source =
|
|
749
|
+
test("renames DatePicker disable-bound props to min/max", () => {
|
|
750
|
+
const source = `import { DatePicker } from "@fremtind/jokul/date-inputs";
|
|
751
|
+
|
|
752
|
+
<DatePicker
|
|
753
|
+
disableBeforeDate={lower}
|
|
754
|
+
disableAfterDate={upper}
|
|
755
|
+
onChange={(event, date, { error }) => handle(date)}
|
|
756
|
+
/>;
|
|
757
|
+
`;
|
|
758
|
+
|
|
759
|
+
const result = transformImportPaths(source, "/tmp/Form.tsx");
|
|
760
|
+
|
|
761
|
+
assert.equal(result.text.includes("min={lower}"), true);
|
|
762
|
+
assert.equal(result.text.includes("max={upper}"), true);
|
|
763
|
+
assert.equal(result.text.includes("disableBeforeDate"), false);
|
|
764
|
+
assert.equal(result.text.includes("disableAfterDate"), false);
|
|
765
|
+
});
|
|
766
|
+
|
|
767
|
+
test("warns about breaking DatePicker changes that need manual review", () => {
|
|
768
|
+
const source = `import { DatePicker } from "@fremtind/jokul/date-inputs";
|
|
769
|
+
const iso = formatInput(new Date());
|
|
770
|
+
<DatePicker defaultShow onChange={(e, d) => save(d)} />;
|
|
771
|
+
`;
|
|
772
|
+
|
|
751
773
|
const result = transformImportPaths(source, "/tmp/Form.tsx");
|
|
774
|
+
|
|
752
775
|
assert.equal(
|
|
753
|
-
result.
|
|
754
|
-
|
|
776
|
+
result.warnings.some((w) => w.includes("ISO-datoformat")),
|
|
777
|
+
true,
|
|
778
|
+
);
|
|
779
|
+
assert.equal(
|
|
780
|
+
result.warnings.some((w) => w.includes("event.target.value")),
|
|
781
|
+
true,
|
|
782
|
+
);
|
|
783
|
+
assert.equal(
|
|
784
|
+
result.warnings.some((w) => w.includes("defaultShow")),
|
|
785
|
+
true,
|
|
786
|
+
);
|
|
787
|
+
assert.equal(
|
|
788
|
+
result.warnings.some((w) => w.includes("formatInput")),
|
|
789
|
+
true,
|
|
755
790
|
);
|
|
756
|
-
assert.equal(result.changed, true);
|
|
757
791
|
});
|
|
758
792
|
|
|
759
|
-
test("
|
|
760
|
-
const source = `
|
|
761
|
-
|
|
793
|
+
test("migrerer DatePicker-stilimporter (ESM import)", () => {
|
|
794
|
+
const source = `import "@fremtind/jokul/styles/components/datepicker/_index.scss";
|
|
795
|
+
import "@fremtind/jokul/styles/components/datepicker/datepicker.min.css";
|
|
796
|
+
import "@fremtind/jokul/styles/components/datepicker/datepicker.css";
|
|
797
|
+
`;
|
|
798
|
+
|
|
799
|
+
const result = transformImportPaths(source, "/tmp/App.tsx");
|
|
800
|
+
|
|
762
801
|
assert.equal(
|
|
763
802
|
result.text,
|
|
764
|
-
`
|
|
803
|
+
`import "@fremtind/jokul/styles/components/date-input/_index.scss";
|
|
804
|
+
import "@fremtind/jokul/styles/components/date-input/date-input.min.css";
|
|
805
|
+
import "@fremtind/jokul/styles/components/date-input/date-input.css";
|
|
806
|
+
`,
|
|
765
807
|
);
|
|
808
|
+
assert.equal(result.text.includes("datepicker"), false);
|
|
766
809
|
});
|
|
767
810
|
|
|
768
|
-
test("
|
|
769
|
-
const source =
|
|
770
|
-
|
|
811
|
+
test("migrerer DatePicker-stilimporter (Sass @use/@forward)", () => {
|
|
812
|
+
const source = `@use "@fremtind/jokul/styles/components/datepicker";
|
|
813
|
+
@use "@fremtind/jokul/styles/components/datepicker/datepicker.scss";
|
|
814
|
+
@forward "@fremtind/jokul/styles/components/date-inputs";
|
|
815
|
+
`;
|
|
816
|
+
|
|
817
|
+
const result = transformImportPaths(source, "/tmp/global.scss");
|
|
818
|
+
|
|
771
819
|
assert.equal(
|
|
772
820
|
result.text,
|
|
773
|
-
|
|
821
|
+
`@use "@fremtind/jokul/styles/components/date-input";
|
|
822
|
+
@use "@fremtind/jokul/styles/components/date-input/date-input.scss";
|
|
823
|
+
@forward "@fremtind/jokul/styles/components/date-input";
|
|
824
|
+
`,
|
|
774
825
|
);
|
|
826
|
+
assert.deepEqual(result.warnings, []);
|
|
775
827
|
});
|
|
776
828
|
|
|
777
|
-
test("
|
|
778
|
-
const source = `import {
|
|
829
|
+
test("migrerer komponent- og stilimport i samme fil", () => {
|
|
830
|
+
const source = `import { DatePicker } from "@fremtind/jokul/datepicker";
|
|
831
|
+
import "@fremtind/jokul/styles/components/datepicker/_index.scss";
|
|
832
|
+
|
|
833
|
+
<DatePicker defaultValue={value} />;
|
|
834
|
+
`;
|
|
835
|
+
|
|
779
836
|
const result = transformImportPaths(source, "/tmp/Form.tsx");
|
|
837
|
+
|
|
838
|
+
assert.equal(result.text.includes("datepicker"), false);
|
|
780
839
|
assert.equal(
|
|
781
|
-
result.text
|
|
782
|
-
|
|
840
|
+
result.text.includes(
|
|
841
|
+
'import "@fremtind/jokul/styles/components/date-input/_index.scss";',
|
|
842
|
+
),
|
|
843
|
+
true,
|
|
783
844
|
);
|
|
845
|
+
assert.equal(result.text.includes("<DateInput"), true);
|
|
784
846
|
});
|
|
785
847
|
|
|
786
|
-
test("
|
|
787
|
-
const source = `
|
|
848
|
+
test("warns about removed DatePicker props", () => {
|
|
849
|
+
const source = `import { DatePicker } from "@fremtind/jokul/datepicker";
|
|
850
|
+
<DatePicker extended yearsToShow={10} textInputProps={{}} action={reset} />;
|
|
851
|
+
`;
|
|
788
852
|
const result = transformImportPaths(source, "/tmp/Form.tsx");
|
|
789
|
-
|
|
853
|
+
|
|
854
|
+
for (const prop of [
|
|
855
|
+
"extended",
|
|
856
|
+
"yearsToShow",
|
|
857
|
+
"textInputProps",
|
|
858
|
+
"action",
|
|
859
|
+
]) {
|
|
860
|
+
assert.equal(
|
|
861
|
+
result.warnings.some((w) => w.includes(prop)),
|
|
862
|
+
true,
|
|
863
|
+
);
|
|
864
|
+
}
|
|
865
|
+
});
|
|
866
|
+
|
|
867
|
+
test("does not warn about identifiers that look like removed props", () => {
|
|
868
|
+
const source = `import { DateInput } from "@fremtind/jokul/date-input";
|
|
869
|
+
const months = ["januar"];
|
|
870
|
+
<DateInput aria-invalid={true} label={months[0]} />;
|
|
871
|
+
`;
|
|
872
|
+
const result = transformImportPaths(source, "/tmp/Form.tsx");
|
|
873
|
+
|
|
874
|
+
assert.equal(
|
|
875
|
+
result.warnings.some((w) => w.includes("`months`")),
|
|
876
|
+
false,
|
|
877
|
+
);
|
|
878
|
+
assert.equal(
|
|
879
|
+
result.warnings.some((w) => w.includes("`invalid`")),
|
|
880
|
+
false,
|
|
881
|
+
);
|
|
882
|
+
});
|
|
883
|
+
|
|
884
|
+
test("DateInput: rører ikke like prop-navn på andre komponenter", () => {
|
|
885
|
+
const source =
|
|
886
|
+
"<OtherComponent disableBeforeDate={x} disableAfterDate={y} />;";
|
|
887
|
+
const result = transformImportPaths(source, "src/App.tsx");
|
|
888
|
+
assert.equal(result.text.includes("disableBeforeDate={x}"), true);
|
|
889
|
+
assert.equal(result.text.includes("disableAfterDate={y}"), true);
|
|
890
|
+
});
|
|
891
|
+
|
|
892
|
+
test("DateInput: håndterer piluttrykk i props ved omdøping", () => {
|
|
893
|
+
const source = `<DateInput onChange={(e) => setX(e)} disableBeforeDate={a} />;
|
|
894
|
+
<Other disableAfterDate={b} />;
|
|
895
|
+
`;
|
|
896
|
+
const result = transformImportPaths(source, "src/App.tsx");
|
|
897
|
+
assert.equal(
|
|
898
|
+
result.text.includes("<DateInput onChange={(e) => setX(e)} min={a} />"),
|
|
899
|
+
true,
|
|
900
|
+
);
|
|
901
|
+
assert.equal(result.text.includes("<Other disableAfterDate={b} />"), true);
|
|
790
902
|
});
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
applyCssTokenRenames,
|
|
6
6
|
applyTailwindColorRenames,
|
|
7
7
|
} from "./transforms/color-tokens.mjs";
|
|
8
|
+
import { applyDateInputTransforms } from "./transforms/date-input.mjs";
|
|
8
9
|
import { applyExpandablePanelTransforms } from "./transforms/expandable-panel.mjs";
|
|
9
10
|
import { applyFontFamilyReplacements } from "./transforms/font-family.mjs";
|
|
10
11
|
import {
|
|
@@ -73,10 +74,9 @@ export function transformImportPaths(text, filePath = "") {
|
|
|
73
74
|
const cssTokens = applyCssTokenRenames(beta.text);
|
|
74
75
|
const tailwindColors = applyTailwindColorRenames(cssTokens.text);
|
|
75
76
|
const expandablePanel = applyExpandablePanelTransforms(tailwindColors.text);
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
let next = registerWithMask.text;
|
|
77
|
+
const dateInput = applyDateInputTransforms(expandablePanel.text);
|
|
78
|
+
const masks = applyRegisterWithMaskTransforms(dateInput.text);
|
|
79
|
+
let next = masks.text;
|
|
80
80
|
let reordered = false;
|
|
81
81
|
|
|
82
82
|
if (/\.(sass|scss)$/i.test(filePath)) {
|
|
@@ -87,7 +87,8 @@ export function transformImportPaths(text, filePath = "") {
|
|
|
87
87
|
|
|
88
88
|
const warnings = [
|
|
89
89
|
...beta.warnings,
|
|
90
|
-
...
|
|
90
|
+
...dateInput.warnings,
|
|
91
|
+
...masks.warnings,
|
|
91
92
|
...collectManualMigrationWarnings(text),
|
|
92
93
|
];
|
|
93
94
|
|
|
@@ -111,7 +112,8 @@ export function transformImportPaths(text, filePath = "") {
|
|
|
111
112
|
cssTokens.count +
|
|
112
113
|
tailwindColors.count +
|
|
113
114
|
expandablePanel.count +
|
|
114
|
-
|
|
115
|
+
dateInput.count +
|
|
116
|
+
masks.count,
|
|
115
117
|
warnings,
|
|
116
118
|
reordered,
|
|
117
119
|
};
|
|
@@ -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 = [
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fremtind/jokul",
|
|
3
|
-
"version": "6.0.0-next.
|
|
3
|
+
"version": "6.0.0-next.2",
|
|
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
|
},
|
package/styles/base.css
CHANGED