@fremtind/jokul 5.0.0-next.6 → 5.0.0-next.8
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/card/Card.cjs +1 -1
- package/build/cjs/components/card/Card.cjs.map +1 -1
- package/build/cjs/components/card/index.d.cts +1 -1
- package/build/cjs/components/card/types.cjs +1 -1
- package/build/cjs/components/card/types.cjs.map +1 -1
- package/build/cjs/components/card/types.d.cts +3 -6
- package/build/cjs/tokens.cjs +1 -1
- package/build/cjs/tokens.cjs.map +1 -1
- package/build/cjs/tokens.d.cts +25 -32
- package/build/es/components/card/Card.js +1 -1
- package/build/es/components/card/Card.js.map +1 -1
- package/build/es/components/card/index.d.ts +1 -1
- package/build/es/components/card/types.d.ts +3 -6
- package/build/es/components/card/types.js +1 -1
- package/build/es/components/card/types.js.map +1 -1
- package/build/es/tokens.d.ts +25 -32
- package/build/es/tokens.js +1 -1
- package/build/es/tokens.js.map +1 -1
- package/codemods/__tests__/import-paths.test.mjs +189 -0
- package/codemods/import-paths.mjs +137 -3
- package/package.json +2 -1
- package/styles/base.css +550 -562
- package/styles/base.min.css +1 -1
- package/styles/components/autosuggest/autosuggest.css +2 -2
- package/styles/components/autosuggest/autosuggest.min.css +1 -1
- package/styles/components/autosuggest/autosuggest.scss +2 -2
- package/styles/components/beta/nav-link/navlink.css +1 -1
- package/styles/components/beta/nav-link/navlink.min.css +1 -1
- package/styles/components/beta/nav-link/navlink.scss +4 -2
- package/styles/components/button/button.css +2 -2
- package/styles/components/button/button.min.css +1 -1
- package/styles/components/button/button.scss +2 -2
- package/styles/components/card/card.css +3 -5
- package/styles/components/card/card.min.css +1 -1
- package/styles/components/card/card.scss +4 -7
- package/styles/components/checkbox/checkbox.css +1 -7
- package/styles/components/checkbox/checkbox.min.css +1 -1
- package/styles/components/checkbox/checkbox.scss +2 -8
- package/styles/components/checkbox-panel/checkbox-panel.css +2 -8
- package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
- package/styles/components/chip/chip.css +4 -4
- package/styles/components/chip/chip.min.css +1 -1
- package/styles/components/chip/chip.scss +5 -5
- package/styles/components/combobox/combobox.css +7 -8
- package/styles/components/combobox/combobox.min.css +1 -1
- package/styles/components/combobox/combobox.scss +6 -12
- 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 +6 -4
- package/styles/components/datepicker/datepicker.css +3 -3
- package/styles/components/datepicker/datepicker.min.css +1 -1
- package/styles/components/expander/expandable.css +5 -2
- package/styles/components/expander/expandable.min.css +1 -1
- package/styles/components/expander/expandable.scss +6 -2
- package/styles/components/feedback/feedback.css +2 -2
- package/styles/components/feedback/feedback.min.css +1 -1
- package/styles/components/file-input/file-input.css +11 -11
- package/styles/components/file-input/file-input.min.css +1 -1
- package/styles/components/help/help.css +2 -2
- package/styles/components/help/help.min.css +1 -1
- package/styles/components/help/help.scss +4 -4
- package/styles/components/icon/icon.css +4 -4
- package/styles/components/icon/icon.min.css +1 -1
- package/styles/components/icon/icon.scss +73 -73
- package/styles/components/icon-button/icon-button.css +1 -1
- package/styles/components/icon-button/icon-button.min.css +1 -1
- package/styles/components/icon-button/icon-button.scss +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.css +1 -1
- package/styles/components/input-panel/input-panel.min.css +1 -1
- package/styles/components/input-panel/input-panel.scss +2 -3
- package/styles/components/link-list/link-list.css +2 -2
- package/styles/components/link-list/link-list.min.css +1 -1
- package/styles/components/link-list/link-list.scss +2 -2
- 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/menu/_menu-item.scss +2 -2
- package/styles/components/menu/menu.css +2 -2
- package/styles/components/menu/menu.min.css +1 -1
- package/styles/components/message/message.css +3 -3
- package/styles/components/message/message.min.css +1 -1
- package/styles/components/message/message.scss +3 -6
- package/styles/components/pagination/pagination.css +2 -2
- package/styles/components/pagination/pagination.min.css +1 -1
- package/styles/components/pagination/pagination.scss +2 -2
- package/styles/components/progress-bar/progress-bar.css +1 -1
- package/styles/components/progress-bar/progress-bar.min.css +1 -1
- package/styles/components/radio-button/radio-button.css +1 -1
- package/styles/components/radio-button/radio-button.min.css +1 -1
- package/styles/components/radio-button/radio-button.scss +1 -1
- package/styles/components/radio-panel/radio-panel.css +1 -1
- package/styles/components/radio-panel/radio-panel.min.css +1 -1
- package/styles/components/segmented-control/segmented-control.css +13 -13
- package/styles/components/segmented-control/segmented-control.min.css +1 -1
- package/styles/components/segmented-control/segmented-control.scss +2 -2
- package/styles/components/select/select.css +2 -3
- package/styles/components/select/select.min.css +1 -1
- package/styles/components/select/select.scss +14 -19
- package/styles/components/system-message/system-message.css +5 -5
- package/styles/components/system-message/system-message.min.css +1 -1
- package/styles/components/system-message/system-message.scss +119 -118
- package/styles/components/table/_table-row.scss +3 -1
- package/styles/components/table/table.css +3 -1
- package/styles/components/table/table.min.css +1 -1
- package/styles/components/tabs/tabs.css +2 -2
- package/styles/components/tabs/tabs.min.css +1 -1
- package/styles/components/tabs/tabs.scss +3 -4
- package/styles/components/tag/tag.scss +2 -1
- package/styles/components/text-area/text-area.css +4 -4
- package/styles/components/text-area/text-area.min.css +1 -1
- package/styles/components/text-input/text-input.css +4 -4
- package/styles/components/text-input/text-input.min.css +1 -1
- package/styles/components/toast/toast.css +5 -5
- package/styles/components/toast/toast.min.css +1 -1
- package/styles/components/toast/toast.scss +4 -6
- package/styles/components/toggle-switch/toggle-switch.css +4 -9
- package/styles/components/toggle-switch/toggle-switch.min.css +1 -3
- package/styles/components/toggle-switch/toggle-switch.scss +4 -9
- package/styles/components/tooltip/tooltip.css +4 -4
- package/styles/components/tooltip/tooltip.min.css +1 -1
- package/styles/components/tooltip/tooltip.scss +4 -4
- package/styles/components.css +97 -107
- package/styles/components.min.css +1 -3
- package/styles/jkl/_tokens.scss +67 -73
- package/styles/shared/input/shared-input-styles.scss +5 -9
- package/styles/tailwind.css +110 -108
- package/styles/theme/_color-scheme.scss +110 -132
- package/styles/theme/brands/dnb/_color-scheme.scss +110 -108
- package/styles/theme/brands/eika/_color-scheme.scss +110 -108
- package/styles/theme/brands/fremtind/_color-scheme.scss +110 -108
- package/styles/theme/brands/sparebank1/_color-scheme.scss +110 -108
- 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/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/es/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sources":["../../src/tokens.ts"],"sourcesContent":["/**\n * Do not edit directly, this file was auto-generated.\n */\n\nexport default {\n color: {\n neutral: {\n background: {\n page: \"var(--jkl-color-neutral-background-page)\",\n container: \"var(--jkl-color-neutral-background-container)\",\n action: \"var(--jkl-color-neutral-background-action)\",\n },\n text: {\n default: \"var(--jkl-color-neutral-text-default)\",\n subdued: \"var(--jkl-color-neutral-text-subdued)\",\n \"on-action\": \"var(--jkl-color-neutral-text-on-action)\",\n },\n border: {\n strong: \"var(--jkl-color-neutral-border-strong)\",\n default: \"var(--jkl-color-neutral-border-default)\",\n subdued: \"var(--jkl-color-neutral-border-subdued)\",\n },\n },\n accent: {\n background: {\n page: \"var(--jkl-color-accent-background-page)\",\n container: \"var(--jkl-color-accent-background-container)\",\n action: \"var(--jkl-color-accent-background-action)\",\n },\n text: {\n default: \"var(--jkl-color-accent-text-default)\",\n subdued: \"var(--jkl-color-accent-text-subdued)\",\n \"on-action\": \"var(--jkl-color-accent-text-on-action)\",\n },\n border: {\n strong: \"var(--jkl-color-accent-border-strong)\",\n default: \"var(--jkl-color-accent-border-default)\",\n subdued: \"var(--jkl-color-accent-border-subdued)\",\n },\n },\n warning: {\n background: {\n page: \"var(--jkl-color-warning-background-page)\",\n container: \"var(--jkl-color-warning-background-container)\",\n action: \"var(--jkl-color-warning-background-action)\",\n },\n text: {\n default: \"var(--jkl-color-warning-text-default)\",\n subdued: \"var(--jkl-color-warning-text-subdued)\",\n \"on-action\": \"var(--jkl-color-warning-text-on-action)\",\n },\n border: {\n strong: \"var(--jkl-color-warning-border-strong)\",\n default: \"var(--jkl-color-warning-border-default)\",\n subdued: \"var(--jkl-color-warning-border-subdued)\",\n },\n },\n success: {\n background: {\n page: \"var(--jkl-color-success-background-page)\",\n container: \"var(--jkl-color-success-background-container)\",\n action: \"var(--jkl-color-success-background-action)\",\n },\n text: {\n default: \"var(--jkl-color-success-text-default)\",\n subdued: \"var(--jkl-color-success-text-subdued)\",\n \"on-action\": \"var(--jkl-color-success-text-on-action)\",\n },\n border: {\n strong: \"var(--jkl-color-success-border-strong)\",\n default: \"var(--jkl-color-success-border-default)\",\n subdued: \"var(--jkl-color-success-border-subdued)\",\n },\n },\n info: {\n background: {\n page: \"var(--jkl-color-info-background-page)\",\n container: \"var(--jkl-color-info-background-container)\",\n action: \"var(--jkl-color-info-background-action)\",\n },\n text: {\n default: \"var(--jkl-color-info-text-default)\",\n subdued: \"var(--jkl-color-info-text-subdued)\",\n \"on-action\": \"var(--jkl-color-info-text-on-action)\",\n },\n border: {\n strong: \"var(--jkl-color-info-border-strong)\",\n default: \"var(--jkl-color-info-border-default)\",\n subdued: \"var(--jkl-color-info-border-subdued)\",\n },\n },\n error: {\n background: {\n page: \"var(--jkl-color-error-background-page)\",\n container: \"var(--jkl-color-error-background-container)\",\n action: \"var(--jkl-color-error-background-action)\",\n },\n text: {\n default: \"var(--jkl-color-error-text-default)\",\n subdued: \"var(--jkl-color-error-text-subdued)\",\n \"on-action\": \"var(--jkl-color-error-text-on-action)\",\n },\n border: {\n strong: \"var(--jkl-color-error-border-strong)\",\n default: \"var(--jkl-color-error-border-default)\",\n subdued: \"var(--jkl-color-error-border-subdued)\",\n },\n },\n },\n unit: {\n 0: \"var(--jkl-unit-0)\",\n 10: \"var(--jkl-unit-10)\",\n 15: \"var(--jkl-unit-15)\",\n 20: \"var(--jkl-unit-20)\",\n 25: \"var(--jkl-unit-25)\",\n 30: \"var(--jkl-unit-30)\",\n 35: \"var(--jkl-unit-35)\",\n 40: \"var(--jkl-unit-40)\",\n 50: \"var(--jkl-unit-50)\",\n 60: \"var(--jkl-unit-60)\",\n 70: \"var(--jkl-unit-70)\",\n 80: \"var(--jkl-unit-80)\",\n 90: \"var(--jkl-unit-90)\",\n 100: \"var(--jkl-unit-100)\",\n 130: \"var(--jkl-unit-130)\",\n 210: \"var(--jkl-unit-210)\",\n base: \"var(--jkl-unit-base)\",\n \"02\": \"var(--jkl-unit-02)\",\n \"05\": \"var(--jkl-unit-05)\",\n },\n spacing: {\n 0: \"var(--jkl-spacing-0)\",\n 2: \"var(--jkl-spacing-2)\",\n 4: \"var(--jkl-spacing-4)\",\n 8: \"var(--jkl-spacing-8)\",\n 12: \"var(--jkl-spacing-12)\",\n 16: \"var(--jkl-spacing-16)\",\n 24: \"var(--jkl-spacing-24)\",\n 32: \"var(--jkl-spacing-32)\",\n 40: \"var(--jkl-spacing-40)\",\n 64: \"var(--jkl-spacing-64)\",\n 104: \"var(--jkl-spacing-104)\",\n 168: \"var(--jkl-spacing-168)\",\n none: \"var(--jkl-spacing-none)\",\n \"2xs\": \"var(--jkl-spacing-2xs)\",\n xs: \"var(--jkl-spacing-xs)\",\n s: \"var(--jkl-spacing-s)\",\n m: \"var(--jkl-spacing-m)\",\n l: \"var(--jkl-spacing-l)\",\n xl: \"var(--jkl-spacing-xl)\",\n \"2xl\": \"var(--jkl-spacing-2xl)\",\n },\n border: {\n width: {\n 1: \"var(--jkl-border-width-1)\",\n 2: \"var(--jkl-border-width-2)\",\n 3: \"var(--jkl-border-width-3)\",\n },\n radius: {\n none: \"var(--jkl-border-radius-none)\",\n xs: \"var(--jkl-border-radius-xs)\",\n s: \"var(--jkl-border-radius-s)\",\n m: \"var(--jkl-border-radius-m)\",\n l: \"var(--jkl-border-radius-l)\",\n full: \"var(--jkl-border-radius-full)\",\n },\n },\n breakpoint: {\n small: \"var(--jkl-breakpoint-small)\",\n medium: \"var(--jkl-breakpoint-medium)\",\n large: \"var(--jkl-breakpoint-large)\",\n xl: \"var(--jkl-breakpoint-xl)\",\n },\n motion: {\n timing: {\n energetic: \"var(--jkl-motion-timing-energetic)\",\n snappy: \"var(--jkl-motion-timing-snappy)\",\n productive: \"var(--jkl-motion-timing-productive)\",\n polite: \"var(--jkl-motion-timing-polite)\",\n expressive: \"var(--jkl-motion-timing-expressive)\",\n lazy: \"var(--jkl-motion-timing-lazy)\",\n },\n easing: {\n standard: \"var(--jkl-motion-easing-standard)\",\n entrance: \"var(--jkl-motion-easing-entrance)\",\n exit: \"var(--jkl-motion-easing-exit)\",\n easeInBounceOut: \"var(--jkl-motion-easing-ease-in-bounce-out)\",\n focus: \"var(--jkl-motion-easing-focus)\",\n },\n },\n font: {\n size: {\n 1: \"var(--jkl-font-size-1)\",\n 2: \"var(--jkl-font-size-2)\",\n 3: \"var(--jkl-font-size-3)\",\n 4: \"var(--jkl-font-size-4)\",\n 5: \"var(--jkl-font-size-5)\",\n 6: \"var(--jkl-font-size-6)\",\n 7: \"var(--jkl-font-size-7)\",\n 8: \"var(--jkl-font-size-8)\",\n 9: \"var(--jkl-font-size-9)\",\n 10: \"var(--jkl-font-size-10)\",\n },\n weight: {\n normal: \"var(--jkl-font-weight-normal)\",\n bold: \"var(--jkl-font-weight-bold)\",\n },\n family: {\n regular: \"var(--jkl-font-family-regular)\",\n display: \"var(--jkl-font-family-display)\",\n mono: \"var(--jkl-font-family-mono)\",\n },\n },\n lineHeight: {\n flush: \"var(--jkl-line-height-flush)\",\n tight: \"var(--jkl-line-height-tight)\",\n relaxed: \"var(--jkl-line-height-relaxed)\",\n },\n textStyle: {\n title: \"var(--jkl-text-style-title)\",\n \"title-small\": \"var(--jkl-text-style-title-small)\",\n \"heading-1\": \"var(--jkl-text-style-heading-1)\",\n \"heading-2\": \"var(--jkl-text-style-heading-2)\",\n \"heading-3\": \"var(--jkl-text-style-heading-3)\",\n \"heading-4\": \"var(--jkl-text-style-heading-4)\",\n \"heading-5\": \"var(--jkl-text-style-heading-5)\",\n \"paragraph-large\": \"var(--jkl-text-style-paragraph-large)\",\n \"paragraph-medium\": \"var(--jkl-text-style-paragraph-medium)\",\n \"paragraph-small\": \"var(--jkl-text-style-paragraph-small)\",\n \"text-large\": \"var(--jkl-text-style-text-large)\",\n \"text-medium\": \"var(--jkl-text-style-text-medium)\",\n \"text-small\": \"var(--jkl-text-style-text-small)\",\n \"text-micro\": \"var(--jkl-text-style-text-micro)\",\n },\n};\n"],"names":["tokens","color","neutral","background","page","container","action","text","default","subdued","border","strong","accent","warning","success","info","error","unit","base","spacing","none","xs","s","m","l","xl","width","radius","full","breakpoint","small","medium","large","motion","timing","energetic","snappy","productive","polite","expressive","lazy","easing","standard","entrance","exit","easeInBounceOut","focus","font","size","weight","normal","bold","family","regular","display","mono","lineHeight","flush","tight","relaxed","textStyle","title"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tokens.js","sources":["../../src/tokens.ts"],"sourcesContent":["/**\n * Do not edit directly, this file was auto-generated.\n */\n\nexport default {\n color: {\n \"@\": {\n background: {\n page: \"var(--jkl-color-background-page)\",\n container: \"var(--jkl-color-background-container)\",\n \"container-accent\": \"var(--jkl-color-background-container-accent)\",\n contrast: \"var(--jkl-color-background-contrast)\",\n },\n text: {\n default: \"var(--jkl-color-text-default)\",\n subdued: \"var(--jkl-color-text-subdued)\",\n accent: \"var(--jkl-color-text-accent)\",\n \"on-contrast\": \"var(--jkl-color-text-on-contrast)\",\n },\n border: {\n default: \"var(--jkl-color-border-default)\",\n subdued: \"var(--jkl-color-border-subdued)\",\n strong: \"var(--jkl-color-border-strong)\",\n },\n },\n warning: {\n background: {\n page: \"var(--jkl-color-warning-background-page)\",\n container: \"var(--jkl-color-warning-background-container)\",\n \"container-accent\":\n \"var(--jkl-color-warning-background-container-accent)\",\n contrast: \"var(--jkl-color-warning-background-contrast)\",\n },\n text: {\n default: \"var(--jkl-color-warning-text-default)\",\n subdued: \"var(--jkl-color-warning-text-subdued)\",\n accent: \"var(--jkl-color-warning-text-accent)\",\n \"on-contrast\": \"var(--jkl-color-warning-text-on-contrast)\",\n },\n border: {\n default: \"var(--jkl-color-warning-border-default)\",\n subdued: \"var(--jkl-color-warning-border-subdued)\",\n strong: \"var(--jkl-color-warning-border-strong)\",\n },\n },\n success: {\n background: {\n page: \"var(--jkl-color-success-background-page)\",\n container: \"var(--jkl-color-success-background-container)\",\n \"container-accent\":\n \"var(--jkl-color-success-background-container-accent)\",\n contrast: \"var(--jkl-color-success-background-contrast)\",\n },\n text: {\n default: \"var(--jkl-color-success-text-default)\",\n subdued: \"var(--jkl-color-success-text-subdued)\",\n accent: \"var(--jkl-color-success-text-accent)\",\n \"on-contrast\": \"var(--jkl-color-success-text-on-contrast)\",\n },\n border: {\n default: \"var(--jkl-color-success-border-default)\",\n subdued: \"var(--jkl-color-success-border-subdued)\",\n strong: \"var(--jkl-color-success-border-strong)\",\n },\n },\n info: {\n background: {\n page: \"var(--jkl-color-info-background-page)\",\n container: \"var(--jkl-color-info-background-container)\",\n \"container-accent\": \"var(--jkl-color-info-background-container-accent)\",\n contrast: \"var(--jkl-color-info-background-contrast)\",\n },\n text: {\n default: \"var(--jkl-color-info-text-default)\",\n subdued: \"var(--jkl-color-info-text-subdued)\",\n accent: \"var(--jkl-color-info-text-accent)\",\n \"on-contrast\": \"var(--jkl-color-info-text-on-contrast)\",\n },\n border: {\n default: \"var(--jkl-color-info-border-default)\",\n subdued: \"var(--jkl-color-info-border-subdued)\",\n strong: \"var(--jkl-color-info-border-strong)\",\n },\n },\n error: {\n background: {\n page: \"var(--jkl-color-error-background-page)\",\n container: \"var(--jkl-color-error-background-container)\",\n \"container-accent\":\n \"var(--jkl-color-error-background-container-accent)\",\n contrast: \"var(--jkl-color-error-background-contrast)\",\n },\n text: {\n default: \"var(--jkl-color-error-text-default)\",\n subdued: \"var(--jkl-color-error-text-subdued)\",\n accent: \"var(--jkl-color-error-text-accent)\",\n \"on-contrast\": \"var(--jkl-color-error-text-on-contrast)\",\n },\n border: {\n default: \"var(--jkl-color-error-border-default)\",\n subdued: \"var(--jkl-color-error-border-subdued)\",\n strong: \"var(--jkl-color-error-border-strong)\",\n },\n },\n },\n unit: {\n 0: \"var(--jkl-unit0)\",\n 10: \"var(--jkl-unit10)\",\n 15: \"var(--jkl-unit15)\",\n 20: \"var(--jkl-unit20)\",\n 25: \"var(--jkl-unit25)\",\n 30: \"var(--jkl-unit30)\",\n 35: \"var(--jkl-unit35)\",\n 40: \"var(--jkl-unit40)\",\n 50: \"var(--jkl-unit50)\",\n 60: \"var(--jkl-unit60)\",\n 70: \"var(--jkl-unit70)\",\n 80: \"var(--jkl-unit80)\",\n 90: \"var(--jkl-unit90)\",\n 100: \"var(--jkl-unit100)\",\n 130: \"var(--jkl-unit130)\",\n 210: \"var(--jkl-unit210)\",\n base: \"var(--jkl-unit-base)\",\n \"02\": \"var(--jkl-unit02)\",\n \"05\": \"var(--jkl-unit05)\",\n },\n spacing: {\n 0: \"var(--jkl-spacing0)\",\n 2: \"var(--jkl-spacing2)\",\n 4: \"var(--jkl-spacing4)\",\n 8: \"var(--jkl-spacing8)\",\n 12: \"var(--jkl-spacing12)\",\n 16: \"var(--jkl-spacing16)\",\n 24: \"var(--jkl-spacing24)\",\n 32: \"var(--jkl-spacing32)\",\n 40: \"var(--jkl-spacing40)\",\n 64: \"var(--jkl-spacing64)\",\n 104: \"var(--jkl-spacing104)\",\n 168: \"var(--jkl-spacing168)\",\n none: \"var(--jkl-spacing-none)\",\n \"2xs\": \"var(--jkl-spacing2xs)\",\n xs: \"var(--jkl-spacing-xs)\",\n s: \"var(--jkl-spacing-s)\",\n m: \"var(--jkl-spacing-m)\",\n l: \"var(--jkl-spacing-l)\",\n xl: \"var(--jkl-spacing-xl)\",\n \"2xl\": \"var(--jkl-spacing2xl)\",\n },\n border: {\n width: {\n 1: \"var(--jkl-border-width1)\",\n 2: \"var(--jkl-border-width2)\",\n 3: \"var(--jkl-border-width3)\",\n },\n radius: {\n none: \"var(--jkl-border-radius-none)\",\n xs: \"var(--jkl-border-radius-xs)\",\n s: \"var(--jkl-border-radius-s)\",\n m: \"var(--jkl-border-radius-m)\",\n l: \"var(--jkl-border-radius-l)\",\n full: \"var(--jkl-border-radius-full)\",\n },\n },\n breakpoint: {\n small: \"var(--jkl-breakpoint-small)\",\n medium: \"var(--jkl-breakpoint-medium)\",\n large: \"var(--jkl-breakpoint-large)\",\n xl: \"var(--jkl-breakpoint-xl)\",\n },\n motion: {\n timing: {\n energetic: \"var(--jkl-motion-timing-energetic)\",\n snappy: \"var(--jkl-motion-timing-snappy)\",\n productive: \"var(--jkl-motion-timing-productive)\",\n polite: \"var(--jkl-motion-timing-polite)\",\n expressive: \"var(--jkl-motion-timing-expressive)\",\n lazy: \"var(--jkl-motion-timing-lazy)\",\n },\n easing: {\n standard: \"var(--jkl-motion-easing-standard)\",\n entrance: \"var(--jkl-motion-easing-entrance)\",\n exit: \"var(--jkl-motion-easing-exit)\",\n easeInBounceOut: \"var(--jkl-motion-easing-ease-in-bounce-out)\",\n focus: \"var(--jkl-motion-easing-focus)\",\n },\n },\n font: {\n size: {\n 1: \"var(--jkl-font-size1)\",\n 2: \"var(--jkl-font-size2)\",\n 3: \"var(--jkl-font-size3)\",\n 4: \"var(--jkl-font-size4)\",\n 5: \"var(--jkl-font-size5)\",\n 6: \"var(--jkl-font-size6)\",\n 7: \"var(--jkl-font-size7)\",\n 8: \"var(--jkl-font-size8)\",\n 9: \"var(--jkl-font-size9)\",\n 10: \"var(--jkl-font-size10)\",\n },\n weight: {\n normal: \"var(--jkl-font-weight-normal)\",\n bold: \"var(--jkl-font-weight-bold)\",\n },\n family: {\n regular: \"var(--jkl-font-family-regular)\",\n display: \"var(--jkl-font-family-display)\",\n mono: \"var(--jkl-font-family-mono)\",\n },\n },\n lineHeight: {\n flush: \"var(--jkl-line-height-flush)\",\n tight: \"var(--jkl-line-height-tight)\",\n relaxed: \"var(--jkl-line-height-relaxed)\",\n },\n textStyle: {\n title: \"var(--jkl-text-style-title)\",\n \"title-small\": \"var(--jkl-text-style-title-small)\",\n \"heading-1\": \"var(--jkl-text-style-heading1)\",\n \"heading-2\": \"var(--jkl-text-style-heading2)\",\n \"heading-3\": \"var(--jkl-text-style-heading3)\",\n \"heading-4\": \"var(--jkl-text-style-heading4)\",\n \"heading-5\": \"var(--jkl-text-style-heading5)\",\n \"paragraph-large\": \"var(--jkl-text-style-paragraph-large)\",\n \"paragraph-medium\": \"var(--jkl-text-style-paragraph-medium)\",\n \"paragraph-small\": \"var(--jkl-text-style-paragraph-small)\",\n \"text-large\": \"var(--jkl-text-style-text-large)\",\n \"text-medium\": \"var(--jkl-text-style-text-medium)\",\n \"text-small\": \"var(--jkl-text-style-text-small)\",\n \"text-micro\": \"var(--jkl-text-style-text-micro)\",\n },\n};\n"],"names":["tokens","color","background","page","container","contrast","text","default","subdued","accent","border","strong","warning","success","info","error","unit","base","spacing","none","xs","s","m","l","xl","width","radius","full","breakpoint","small","medium","large","motion","timing","energetic","snappy","productive","polite","expressive","lazy","easing","standard","entrance","exit","easeInBounceOut","focus","font","size","weight","normal","bold","family","regular","display","mono","lineHeight","flush","tight","relaxed","textStyle","title"],"mappings":"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"}
|
|
@@ -82,3 +82,192 @@ import "@fremtind/jokul/styles/components/nav-link";
|
|
|
82
82
|
assert.equal(result.changed, false);
|
|
83
83
|
assert.equal(result.warnings.length, 1);
|
|
84
84
|
});
|
|
85
|
+
|
|
86
|
+
test("removes redundant webfonts.css imports when base or components css is also imported", () => {
|
|
87
|
+
const source = `import "@fremtind/jokul/styles/styles.css";
|
|
88
|
+
import "@fremtind/jokul/styles/core/core.css";
|
|
89
|
+
import "@fremtind/jokul/styles/fonts/webfonts.css";
|
|
90
|
+
`;
|
|
91
|
+
|
|
92
|
+
const result = transformImportPaths(source, "/tmp/main.tsx");
|
|
93
|
+
|
|
94
|
+
assert.equal(
|
|
95
|
+
result.text.includes("@fremtind/jokul/styles/fonts/webfonts.css"),
|
|
96
|
+
false,
|
|
97
|
+
);
|
|
98
|
+
assert.equal(
|
|
99
|
+
result.text.includes('import "@fremtind/jokul/styles/components.css";'),
|
|
100
|
+
true,
|
|
101
|
+
);
|
|
102
|
+
assert.equal(
|
|
103
|
+
result.text.includes('import "@fremtind/jokul/styles/base.css";'),
|
|
104
|
+
true,
|
|
105
|
+
);
|
|
106
|
+
assert.deepEqual(result.warnings, []);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
test("removes minified webfonts.css imports as well", () => {
|
|
110
|
+
const source = `import "@fremtind/jokul/styles/core/core.min.css";
|
|
111
|
+
import "@fremtind/jokul/styles/fonts/webfonts.min.css";
|
|
112
|
+
`;
|
|
113
|
+
|
|
114
|
+
const result = transformImportPaths(source, "/tmp/main.ts");
|
|
115
|
+
|
|
116
|
+
assert.equal(
|
|
117
|
+
result.text.includes("webfonts"),
|
|
118
|
+
false,
|
|
119
|
+
);
|
|
120
|
+
assert.equal(
|
|
121
|
+
result.text.includes('import "@fremtind/jokul/styles/base.min.css";'),
|
|
122
|
+
true,
|
|
123
|
+
);
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
test("warns when webfonts.css is removed without a base or components import", () => {
|
|
127
|
+
const source = `import "@fremtind/jokul/styles/fonts/webfonts.css";
|
|
128
|
+
`;
|
|
129
|
+
|
|
130
|
+
const result = transformImportPaths(source, "/tmp/main.tsx");
|
|
131
|
+
|
|
132
|
+
assert.equal(result.text.includes("webfonts"), false);
|
|
133
|
+
assert.equal(result.warnings.length, 1);
|
|
134
|
+
assert.match(result.warnings[0], /styles\/base\.css/);
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
test("removes css @import of webfonts.css", () => {
|
|
138
|
+
const source = `@import "@fremtind/jokul/styles/components.css";
|
|
139
|
+
@import "@fremtind/jokul/styles/fonts/webfonts.css";
|
|
140
|
+
`;
|
|
141
|
+
|
|
142
|
+
const result = transformImportPaths(source, "/tmp/global.css");
|
|
143
|
+
|
|
144
|
+
assert.equal(result.text.includes("webfonts"), false);
|
|
145
|
+
assert.equal(
|
|
146
|
+
result.text.includes('@import "@fremtind/jokul/styles/components.css";'),
|
|
147
|
+
true,
|
|
148
|
+
);
|
|
149
|
+
assert.deepEqual(result.warnings, []);
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
test("warns about removed sass color variables", () => {
|
|
153
|
+
const source = `@use "@fremtind/jokul/styles/jkl";
|
|
154
|
+
|
|
155
|
+
.banner {
|
|
156
|
+
background: jkl.$color-granitt;
|
|
157
|
+
color: jkl.$color-snohvit;
|
|
158
|
+
}
|
|
159
|
+
`;
|
|
160
|
+
|
|
161
|
+
const result = transformImportPaths(source, "/tmp/banner.scss");
|
|
162
|
+
|
|
163
|
+
assert.equal(
|
|
164
|
+
result.warnings.some((warning) =>
|
|
165
|
+
/jkl\.\$color-\*/.test(warning),
|
|
166
|
+
),
|
|
167
|
+
true,
|
|
168
|
+
);
|
|
169
|
+
// Bare én advarsel per mønster, selv om det er flere forekomster
|
|
170
|
+
assert.equal(
|
|
171
|
+
result.warnings.filter((warning) =>
|
|
172
|
+
/jkl\.\$color-\*/.test(warning),
|
|
173
|
+
).length,
|
|
174
|
+
1,
|
|
175
|
+
);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
test("warns about removed light/dark mode mixins", () => {
|
|
179
|
+
const source = `@use "@fremtind/jokul/styles/jkl";
|
|
180
|
+
|
|
181
|
+
@include jkl.light-mode-variables {
|
|
182
|
+
--min-farge: jkl.$color-granitt;
|
|
183
|
+
}
|
|
184
|
+
@include jkl.dark-mode-variables {
|
|
185
|
+
--min-farge: jkl.$color-snohvit;
|
|
186
|
+
}
|
|
187
|
+
`;
|
|
188
|
+
|
|
189
|
+
const result = transformImportPaths(source, "/tmp/theme.scss");
|
|
190
|
+
|
|
191
|
+
assert.equal(
|
|
192
|
+
result.warnings.some((warning) =>
|
|
193
|
+
/light-mode-variables/.test(warning),
|
|
194
|
+
),
|
|
195
|
+
true,
|
|
196
|
+
);
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
test("warns about deprecated text-style names", () => {
|
|
200
|
+
const source = `@use "@fremtind/jokul/styles/jkl";
|
|
201
|
+
|
|
202
|
+
.lead {
|
|
203
|
+
@include jkl.text-style("body");
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.fineprint {
|
|
207
|
+
@include jkl.text-style("small");
|
|
208
|
+
}
|
|
209
|
+
`;
|
|
210
|
+
|
|
211
|
+
const result = transformImportPaths(source, "/tmp/typography.scss");
|
|
212
|
+
|
|
213
|
+
assert.equal(
|
|
214
|
+
result.warnings.some((warning) =>
|
|
215
|
+
/paragraph-large\/medium\/small/.test(warning),
|
|
216
|
+
),
|
|
217
|
+
true,
|
|
218
|
+
);
|
|
219
|
+
assert.equal(
|
|
220
|
+
result.warnings.some((warning) => /<Text>-komponenten/.test(warning)),
|
|
221
|
+
true,
|
|
222
|
+
);
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
test("renames Fremtind Material Symbols font-family", () => {
|
|
226
|
+
const source = `.icon {
|
|
227
|
+
font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
|
|
228
|
+
}
|
|
229
|
+
`;
|
|
230
|
+
|
|
231
|
+
const result = transformImportPaths(source, "/tmp/icons.scss");
|
|
232
|
+
|
|
233
|
+
assert.equal(
|
|
234
|
+
result.text.includes("Fremtind Material Symbols"),
|
|
235
|
+
false,
|
|
236
|
+
);
|
|
237
|
+
assert.equal(
|
|
238
|
+
result.text.includes(
|
|
239
|
+
'"Jokul Icons", "Jokul Icons Fallback", sans-serif',
|
|
240
|
+
),
|
|
241
|
+
true,
|
|
242
|
+
);
|
|
243
|
+
assert.equal(result.replacements, 2);
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
test("renames Fremtind Material Symbols inside CSS files too", () => {
|
|
247
|
+
const source = `.icon {
|
|
248
|
+
font-family: 'Fremtind Material Symbols';
|
|
249
|
+
}
|
|
250
|
+
`;
|
|
251
|
+
|
|
252
|
+
const result = transformImportPaths(source, "/tmp/icons.css");
|
|
253
|
+
|
|
254
|
+
assert.equal(
|
|
255
|
+
result.text.includes("Fremtind Material Symbols"),
|
|
256
|
+
false,
|
|
257
|
+
);
|
|
258
|
+
assert.equal(result.text.includes("'Jokul Icons'"), true);
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
test("does not warn about valid 5.0 patterns", () => {
|
|
262
|
+
const source = `@use "@fremtind/jokul/styles/jkl";
|
|
263
|
+
|
|
264
|
+
.title {
|
|
265
|
+
@include jkl.text-style("heading-1");
|
|
266
|
+
color: var(--jkl-color-text-default);
|
|
267
|
+
}
|
|
268
|
+
`;
|
|
269
|
+
|
|
270
|
+
const result = transformImportPaths(source, "/tmp/title.scss");
|
|
271
|
+
|
|
272
|
+
assert.deepEqual(result.warnings, []);
|
|
273
|
+
});
|
|
@@ -226,6 +226,120 @@ function applyBetaStyleReplacements(text) {
|
|
|
226
226
|
return { text: next, replacements, warnings };
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
+
/**
|
|
230
|
+
* Font-family-navnet "Fremtind Material Symbols" (og tilhørende fallback) ble
|
|
231
|
+
* omdøpt til "Jokul Icons" i Jøkul 5. Konsumenter som har skrevet font-family
|
|
232
|
+
* direkte i sin egen CSS/SCSS får ellers en stille brutt referanse.
|
|
233
|
+
*
|
|
234
|
+
* Fallback-navnet erstattes først (lengst først), slik at det ikke blir
|
|
235
|
+
* delvis overskrevet av kortere mønster.
|
|
236
|
+
*/
|
|
237
|
+
const FONT_FAMILY_REPLACEMENTS = [
|
|
238
|
+
["Fremtind Material Symbols Fallback", "Jokul Icons Fallback"],
|
|
239
|
+
["Fremtind Material Symbols", "Jokul Icons"],
|
|
240
|
+
];
|
|
241
|
+
|
|
242
|
+
function applyFontFamilyReplacements(text) {
|
|
243
|
+
let next = text;
|
|
244
|
+
let count = 0;
|
|
245
|
+
|
|
246
|
+
for (const [from, to] of FONT_FAMILY_REPLACEMENTS) {
|
|
247
|
+
const pattern = new RegExp(escapeRegExp(from), "g");
|
|
248
|
+
next = next.replace(pattern, () => {
|
|
249
|
+
count += 1;
|
|
250
|
+
return to;
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
return { text: next, count };
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
const WEBFONTS_CSS_SPECIFIER =
|
|
258
|
+
"@fremtind/jokul/styles/fonts/webfonts(?:\\.min)?\\.css";
|
|
259
|
+
|
|
260
|
+
const BASE_OR_COMPONENT_CSS_PATTERN = new RegExp(
|
|
261
|
+
"@fremtind/jokul/styles/(?:base|components)(?:\\.min)?\\.css",
|
|
262
|
+
);
|
|
263
|
+
|
|
264
|
+
const WEBFONTS_CSS_REMOVAL_PATTERNS = [
|
|
265
|
+
// import "@fremtind/jokul/styles/fonts/webfonts.css"; (ESM)
|
|
266
|
+
new RegExp(
|
|
267
|
+
`^[ \\t]*import\\s+["']${WEBFONTS_CSS_SPECIFIER}["']\\s*;?[ \\t]*\\r?\\n?`,
|
|
268
|
+
"gm",
|
|
269
|
+
),
|
|
270
|
+
// require("@fremtind/jokul/styles/fonts/webfonts.css"); (CJS)
|
|
271
|
+
new RegExp(
|
|
272
|
+
`^[ \\t]*require\\(\\s*["']${WEBFONTS_CSS_SPECIFIER}["']\\s*\\)\\s*;?[ \\t]*\\r?\\n?`,
|
|
273
|
+
"gm",
|
|
274
|
+
),
|
|
275
|
+
// @import "@fremtind/jokul/styles/fonts/webfonts.css"; (CSS / SCSS)
|
|
276
|
+
new RegExp(
|
|
277
|
+
`^[ \\t]*@import\\s+["']${WEBFONTS_CSS_SPECIFIER}["']\\s*;?[ \\t]*\\r?\\n?`,
|
|
278
|
+
"gm",
|
|
279
|
+
),
|
|
280
|
+
];
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* I Jøkul 5 er `@font-face`-definisjonene flyttet inn i `styles/base.css`, og den
|
|
284
|
+
* frittstående `styles/fonts/webfonts.css` finnes ikke lenger i pakken. For
|
|
285
|
+
* .css-konsumenter betyr det at gamle `webfonts.css`-imports må fjernes – ellers
|
|
286
|
+
* blir bygget brutt fordi filen er borte. SCSS-konsumenter håndteres av
|
|
287
|
+
* `DIRECT_REPLACEMENTS` siden de kan ha behov for å overstyre `$webfonts-dir`.
|
|
288
|
+
*/
|
|
289
|
+
function removeRedundantWebfontsCssImport(text) {
|
|
290
|
+
let next = text;
|
|
291
|
+
let count = 0;
|
|
292
|
+
|
|
293
|
+
for (const pattern of WEBFONTS_CSS_REMOVAL_PATTERNS) {
|
|
294
|
+
next = next.replace(pattern, () => {
|
|
295
|
+
count += 1;
|
|
296
|
+
return "";
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
return { text: next, count };
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Patterns som ikke kan auto-erstattes, men som krever manuell migrering ved
|
|
305
|
+
* oppgradering fra Jøkul 4 til 5. Hvert mønster gir én advarsel per fil det
|
|
306
|
+
* matcher i (uavhengig av antall forekomster), med peker til hva man skal
|
|
307
|
+
* gjøre i stedet.
|
|
308
|
+
*/
|
|
309
|
+
const MANUAL_MIGRATION_WARNINGS = [
|
|
310
|
+
{
|
|
311
|
+
// jkl.$color-granitt, jkl.$color-varde, osv. Alle Sass-fargevariabler
|
|
312
|
+
// ble fjernet i Jøkul 5 til fordel for semantiske CSS-variabler.
|
|
313
|
+
pattern: /\bjkl\.\$color-[a-z][a-z0-9-]*/i,
|
|
314
|
+
message:
|
|
315
|
+
"Fjernede Sass-fargevariabler (jkl.$color-*). I Jøkul 5 er alle gamle fargenavn (granitt, varde, snohvit osv.) fjernet — bruk semantiske CSS-variabler, f.eks. var(--jkl-color-text-default). Se https://jokul-portal.intern.app.prodaws.fremtind.no/fundamenter/farger.",
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
// @include jkl.light-mode-variables { ... } / dark-mode-variables { ... }
|
|
319
|
+
pattern: /@include\s+jkl\.(?:light|dark)-mode-variables\b/,
|
|
320
|
+
message:
|
|
321
|
+
"Fjernede mixins for custom light/dark-farger (jkl.light-mode-variables / jkl.dark-mode-variables). I Jøkul 5 må du bruke semantiske CSS-variabler i stedet for å definere egne dark/light-varianter.",
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
// @include jkl.text-style("body") / text-style("small")
|
|
325
|
+
pattern: /\btext-style\(\s*["'](?:body|small)["']\s*\)/,
|
|
326
|
+
message:
|
|
327
|
+
'Fjernede tekststiler ("body", "small") i text-style-mixin. Foretrekk å bruke <Text>-komponenten der det er mulig (`import { Text } from "@fremtind/jokul/components/typography"`). Hvis du må sette stiler direkte, bytt til "paragraph-large/medium/small" eller "text-large/medium/small/micro" — se https://jokul-portal.intern.app.prodaws.fremtind.no/fundamenter/typografi.',
|
|
328
|
+
},
|
|
329
|
+
];
|
|
330
|
+
|
|
331
|
+
function collectManualMigrationWarnings(text) {
|
|
332
|
+
const warnings = [];
|
|
333
|
+
|
|
334
|
+
for (const { pattern, message } of MANUAL_MIGRATION_WARNINGS) {
|
|
335
|
+
if (pattern.test(text)) {
|
|
336
|
+
warnings.push(`Manuell vurdering: ${message}`);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
return warnings;
|
|
341
|
+
}
|
|
342
|
+
|
|
229
343
|
function reorderConfiguredFontImport(text) {
|
|
230
344
|
const fontImportPattern =
|
|
231
345
|
/^@use\s+["']@fremtind\/jokul\/styles\/theme\/fonts["'][\s\S]*?;\s*/m;
|
|
@@ -257,7 +371,9 @@ function reorderConfiguredFontImport(text) {
|
|
|
257
371
|
}
|
|
258
372
|
|
|
259
373
|
export function transformImportPaths(text, filePath = "") {
|
|
260
|
-
const
|
|
374
|
+
const webfontsRemoval = removeRedundantWebfontsCssImport(text);
|
|
375
|
+
const fontFamily = applyFontFamilyReplacements(webfontsRemoval.text);
|
|
376
|
+
const direct = applyDirectReplacements(fontFamily.text);
|
|
261
377
|
const beta = applyBetaStyleReplacements(direct.text);
|
|
262
378
|
let next = beta.text;
|
|
263
379
|
let reordered = false;
|
|
@@ -268,11 +384,29 @@ export function transformImportPaths(text, filePath = "") {
|
|
|
268
384
|
reordered = reorderedResult.reordered;
|
|
269
385
|
}
|
|
270
386
|
|
|
387
|
+
const warnings = [
|
|
388
|
+
...beta.warnings,
|
|
389
|
+
...collectManualMigrationWarnings(text),
|
|
390
|
+
];
|
|
391
|
+
|
|
392
|
+
if (
|
|
393
|
+
webfontsRemoval.count > 0 &&
|
|
394
|
+
!BASE_OR_COMPONENT_CSS_PATTERN.test(next)
|
|
395
|
+
) {
|
|
396
|
+
warnings.push(
|
|
397
|
+
"Manuell vurdering: fjernet import av `styles/fonts/webfonts.css`. `@font-face`-definisjonene ligger nå i `@fremtind/jokul/styles/base.css`, så den må importeres for at fontene skal lastes.",
|
|
398
|
+
);
|
|
399
|
+
}
|
|
400
|
+
|
|
271
401
|
return {
|
|
272
402
|
text: next,
|
|
273
403
|
changed: next !== text,
|
|
274
|
-
replacements:
|
|
275
|
-
|
|
404
|
+
replacements:
|
|
405
|
+
direct.replacements +
|
|
406
|
+
beta.replacements +
|
|
407
|
+
webfontsRemoval.count +
|
|
408
|
+
fontFamily.count,
|
|
409
|
+
warnings,
|
|
276
410
|
reordered,
|
|
277
411
|
};
|
|
278
412
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fremtind/jokul",
|
|
3
|
-
"version": "5.0.0-next.
|
|
3
|
+
"version": "5.0.0-next.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"exports": {
|
|
28
28
|
"./package.json": "./package.json",
|
|
29
|
+
"./styles/jkl": "./styles/jkl/_index.scss",
|
|
29
30
|
"./styles/*": "./styles/*",
|
|
30
31
|
"./tailwind": {
|
|
31
32
|
"import": {
|