@fremtind/jokul 3.5.3 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/build/_commonjsHelpers-C37NGDzP.cjs +2 -0
  2. package/build/_commonjsHelpers-C37NGDzP.cjs.map +1 -0
  3. package/build/_commonjsHelpers-CXUWDbkB.js +2 -0
  4. package/build/_commonjsHelpers-CXUWDbkB.js.map +1 -0
  5. package/build/build-stats.html +1 -1
  6. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs +1 -1
  7. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs.map +1 -1
  8. package/build/cjs/components/datepicker/DatePicker.cjs +1 -1
  9. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  10. package/build/cjs/components/datepicker/internal/Calendar.cjs +1 -1
  11. package/build/cjs/components/datepicker/internal/Calendar.cjs.map +1 -1
  12. package/build/cjs/components/datepicker/internal/useCalendar.cjs +1 -1
  13. package/build/cjs/components/datepicker/internal/useCalendar.cjs.map +1 -1
  14. package/build/cjs/components/datepicker/internal/utils.cjs +1 -1
  15. package/build/cjs/components/datepicker/internal/utils.cjs.map +1 -1
  16. package/build/cjs/core/tokens/build-tailwind-4.cjs +2 -0
  17. package/build/cjs/core/tokens/build-tailwind-4.cjs.map +1 -0
  18. package/build/cjs/core/tokens/build-tailwind-4.d.cts +1 -0
  19. package/build/es/components/autosuggest/BaseAutosuggest.js +1 -1
  20. package/build/es/components/autosuggest/BaseAutosuggest.js.map +1 -1
  21. package/build/es/components/datepicker/DatePicker.js +1 -1
  22. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  23. package/build/es/components/datepicker/internal/Calendar.js +1 -1
  24. package/build/es/components/datepicker/internal/Calendar.js.map +1 -1
  25. package/build/es/components/datepicker/internal/useCalendar.js +1 -1
  26. package/build/es/components/datepicker/internal/useCalendar.js.map +1 -1
  27. package/build/es/components/datepicker/internal/utils.js +1 -1
  28. package/build/es/components/datepicker/internal/utils.js.map +1 -1
  29. package/build/es/core/tokens/build-tailwind-4.d.ts +1 -0
  30. package/build/es/core/tokens/build-tailwind-4.js +2 -0
  31. package/build/es/core/tokens/build-tailwind-4.js.map +1 -0
  32. package/build/utils-CcE6HjQp.js +2 -0
  33. package/build/utils-CcE6HjQp.js.map +1 -0
  34. package/build/utils-DxmZDrR9.cjs +2 -0
  35. package/build/utils-DxmZDrR9.cjs.map +1 -0
  36. package/package.json +2 -2
  37. package/styles/components/checkbox/checkbox.css +4 -4
  38. package/styles/components/checkbox/checkbox.min.css +1 -1
  39. package/styles/components/checkbox/development/public/fonts/webfonts.css +115 -0
  40. package/styles/components/checkbox/development/public/fonts/webfonts.min.css +1 -0
  41. package/styles/components/checkbox-panel/checkbox-panel.css +6 -6
  42. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  43. package/styles/components/countdown/countdown.css +2 -2
  44. package/styles/components/countdown/countdown.min.css +1 -1
  45. package/styles/components/feedback/feedback.css +2 -2
  46. package/styles/components/feedback/feedback.min.css +1 -1
  47. package/styles/components/file-input/development/public/fonts/_index.scss +1 -0
  48. package/styles/components/file-input/development/public/fonts/webfonts.css +108 -0
  49. package/styles/components/file-input/development/public/fonts/webfonts.min.css +1 -0
  50. package/styles/components/file-input/development/public/fonts/webfonts.scss +137 -0
  51. package/styles/components/file-input/file-input.css +9 -9
  52. package/styles/components/file-input/file-input.min.css +1 -1
  53. package/styles/components/input-group/input-group.css +2 -2
  54. package/styles/components/input-group/input-group.min.css +1 -1
  55. package/styles/components/loader/loader.css +6 -6
  56. package/styles/components/loader/loader.min.css +1 -1
  57. package/styles/components/loader/skeleton-loader.css +3 -3
  58. package/styles/components/loader/skeleton-loader.min.css +1 -1
  59. package/styles/components/menu/development/public/fonts/_index.scss +1 -0
  60. package/styles/components/menu/development/public/fonts/webfonts.css +108 -0
  61. package/styles/components/menu/development/public/fonts/webfonts.min.css +1 -0
  62. package/styles/components/menu/development/public/fonts/webfonts.scss +137 -0
  63. package/styles/components/message/message.css +2 -2
  64. package/styles/components/message/message.min.css +1 -1
  65. package/styles/components/progress-bar/progress-bar.css +1 -1
  66. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  67. package/styles/components/radio-button/development/public/fonts/_index.scss +1 -0
  68. package/styles/components/radio-button/development/public/fonts/webfonts.css +115 -0
  69. package/styles/components/radio-button/development/public/fonts/webfonts.min.css +1 -0
  70. package/styles/components/radio-button/development/public/fonts/webfonts.scss +145 -0
  71. package/styles/components/radio-button/radio-button.css +2 -2
  72. package/styles/components/radio-button/radio-button.min.css +1 -1
  73. package/styles/components/radio-panel/radio-panel.css +2 -2
  74. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  75. package/styles/components/segmented-control/segmented-control.css +4 -4
  76. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  77. package/styles/components/system-message/system-message.css +2 -2
  78. package/styles/components/system-message/system-message.min.css +1 -1
  79. package/styles/components/text-input/development/public/fonts/_index.scss +1 -0
  80. package/styles/components/text-input/development/public/fonts/webfonts.css +115 -0
  81. package/styles/components/text-input/development/public/fonts/webfonts.min.css +1 -0
  82. package/styles/components/text-input/development/public/fonts/webfonts.scss +145 -0
  83. package/styles/components/toast/toast.css +4 -4
  84. package/styles/components/toast/toast.min.css +1 -1
  85. package/styles/components/toggle-switch/development/public/fonts/_index.scss +1 -0
  86. package/styles/components/toggle-switch/development/public/fonts/webfonts.css +115 -0
  87. package/styles/components/toggle-switch/development/public/fonts/webfonts.min.css +1 -0
  88. package/styles/components/toggle-switch/development/public/fonts/webfonts.scss +145 -0
  89. package/styles/styles.css +34 -34
  90. package/styles/styles.min.css +2 -2
  91. package/styles/components/autosuggest/_index.scss +0 -2
  92. package/styles/components/autosuggest/autosuggest.scss +0 -87
  93. package/styles/components/breadcrumb/_index.scss +0 -2
  94. package/styles/components/breadcrumb/breadcrumb.scss +0 -38
  95. package/styles/components/button/_index.scss +0 -2
  96. package/styles/components/button/button.scss +0 -169
  97. package/styles/components/card/_index.scss +0 -3
  98. package/styles/components/card/card.scss +0 -105
  99. package/styles/components/checkbox/_index.scss +0 -1
  100. package/styles/components/checkbox/checkbox.scss +0 -248
  101. package/styles/components/checkbox-panel/_index.scss +0 -1
  102. package/styles/components/checkbox-panel/checkbox-panel.scss +0 -95
  103. package/styles/components/checkbox-panel/development/styles.scss +0 -27
  104. package/styles/components/chip/_index.scss +0 -2
  105. package/styles/components/chip/chip.scss +0 -104
  106. package/styles/components/combobox/_index.scss +0 -6
  107. package/styles/components/combobox/combobox.scss +0 -238
  108. package/styles/components/cookie-consent/_index.scss +0 -5
  109. package/styles/components/cookie-consent/cookie-consent.scss +0 -31
  110. package/styles/components/countdown/_index.scss +0 -1
  111. package/styles/components/countdown/countdown.scss +0 -25
  112. package/styles/components/datepicker/_calendar-date-button.scss +0 -85
  113. package/styles/components/datepicker/_calendar-navigation-dropdown.scss +0 -52
  114. package/styles/components/datepicker/_calendar-navigation.scss +0 -12
  115. package/styles/components/datepicker/_calendar-table.scss +0 -27
  116. package/styles/components/datepicker/_calendar.scss +0 -36
  117. package/styles/components/datepicker/_index.scss +0 -6
  118. package/styles/components/datepicker/datepicker.scss +0 -47
  119. package/styles/components/description-list/_index.scss +0 -1
  120. package/styles/components/description-list/description-list.scss +0 -58
  121. package/styles/components/expander/_index.scss +0 -4
  122. package/styles/components/expander/expandable.scss +0 -141
  123. package/styles/components/feedback/_index.scss +0 -10
  124. package/styles/components/feedback/feedback.scss +0 -113
  125. package/styles/components/file/_index.scss +0 -3
  126. package/styles/components/file/file.scss +0 -164
  127. package/styles/components/file-input/_index.scss +0 -5
  128. package/styles/components/file-input/file-input.scss +0 -130
  129. package/styles/components/flex/_index.scss +0 -1
  130. package/styles/components/flex/flex.scss +0 -252
  131. package/styles/components/help/_index.scss +0 -2
  132. package/styles/components/help/help.scss +0 -47
  133. package/styles/components/icon/_base-styles.scss +0 -21
  134. package/styles/components/icon/_index.scss +0 -1
  135. package/styles/components/icon/development/internal/icons-example-grid.scss +0 -13
  136. package/styles/components/icon/icon.scss +0 -139
  137. package/styles/components/icon-button/_index.scss +0 -1
  138. package/styles/components/icon-button/icon-button.scss +0 -38
  139. package/styles/components/image/_index.scss +0 -1
  140. package/styles/components/image/development/style.scss +0 -9
  141. package/styles/components/image/image.scss +0 -37
  142. package/styles/components/image/stories/styles.scss +0 -9
  143. package/styles/components/input-group/_field-group.scss +0 -5
  144. package/styles/components/input-group/_index.scss +0 -3
  145. package/styles/components/input-group/_labels.scss +0 -159
  146. package/styles/components/input-group/input-group.scss +0 -11
  147. package/styles/components/input-panel/input-panel.scss +0 -84
  148. package/styles/components/link/_index.scss +0 -1
  149. package/styles/components/link/link.scss +0 -62
  150. package/styles/components/link-list/_index.scss +0 -2
  151. package/styles/components/link-list/link-list.scss +0 -94
  152. package/styles/components/list/_index.scss +0 -1
  153. package/styles/components/list/list.scss +0 -98
  154. package/styles/components/loader/_index.scss +0 -2
  155. package/styles/components/loader/development/styles.scss +0 -11
  156. package/styles/components/loader/loader.scss +0 -139
  157. package/styles/components/loader/skeleton-loader.scss +0 -137
  158. package/styles/components/logo/_index.scss +0 -1
  159. package/styles/components/logo/development/styles.scss +0 -9
  160. package/styles/components/logo/logo.scss +0 -90
  161. package/styles/components/menu/_index.scss +0 -1
  162. package/styles/components/menu/_menu-divider.scss +0 -10
  163. package/styles/components/menu/_menu-item.scss +0 -71
  164. package/styles/components/menu/menu.scss +0 -40
  165. package/styles/components/message/_index.scss +0 -2
  166. package/styles/components/message/message.scss +0 -187
  167. package/styles/components/modal/_index.scss +0 -3
  168. package/styles/components/modal/modal.scss +0 -107
  169. package/styles/components/nav-link/_index.scss +0 -1
  170. package/styles/components/nav-link/nav-link.scss +0 -66
  171. package/styles/components/pagination/_index.scss +0 -5
  172. package/styles/components/pagination/development/styles.scss +0 -35
  173. package/styles/components/pagination/pagination.scss +0 -49
  174. package/styles/components/popover/_index.scss +0 -1
  175. package/styles/components/popover/popover.scss +0 -19
  176. package/styles/components/progress-bar/_index.scss +0 -1
  177. package/styles/components/progress-bar/progress-bar.scss +0 -27
  178. package/styles/components/radio-button/_index.scss +0 -2
  179. package/styles/components/radio-button/radio-button.scss +0 -219
  180. package/styles/components/radio-panel/_index.scss +0 -1
  181. package/styles/components/radio-panel/development/styles.scss +0 -27
  182. package/styles/components/radio-panel/radio-panel.scss +0 -82
  183. package/styles/components/segmented-control/_index.scss +0 -3
  184. package/styles/components/segmented-control/segmented-control.scss +0 -99
  185. package/styles/components/select/_index.scss +0 -3
  186. package/styles/components/select/select.scss +0 -299
  187. package/styles/components/summary-table/_index.scss +0 -1
  188. package/styles/components/summary-table/development/summary-table-example.scss +0 -10
  189. package/styles/components/summary-table/summary-table.scss +0 -49
  190. package/styles/components/system-message/_index.scss +0 -2
  191. package/styles/components/system-message/system-message.scss +0 -177
  192. package/styles/components/table/_index.scss +0 -6
  193. package/styles/components/table/_table-caption.scss +0 -7
  194. package/styles/components/table/_table-cell.scss +0 -86
  195. package/styles/components/table/_table-head.scss +0 -36
  196. package/styles/components/table/_table-header.scss +0 -65
  197. package/styles/components/table/_table-pagination.scss +0 -126
  198. package/styles/components/table/_table-row.scss +0 -177
  199. package/styles/components/table/table.scss +0 -53
  200. package/styles/components/table-of-contents/_index.scss +0 -1
  201. package/styles/components/tabs/_index.scss +0 -1
  202. package/styles/components/tabs/tabs.scss +0 -114
  203. package/styles/components/tag/_index.scss +0 -3
  204. package/styles/components/tag/tag.scss +0 -65
  205. package/styles/components/text-area/_index.scss +0 -4
  206. package/styles/components/text-area/text-area.scss +0 -111
  207. package/styles/components/text-input/_index.scss +0 -4
  208. package/styles/components/text-input/text-input.scss +0 -43
  209. package/styles/components/toast/_index.scss +0 -4
  210. package/styles/components/toast/toast.scss +0 -219
  211. package/styles/components/toggle-switch/_index.scss +0 -2
  212. package/styles/components/toggle-switch/_toggle-slider.scss +0 -123
  213. package/styles/components/toggle-switch/toggle-switch.scss +0 -137
  214. package/styles/components/tooltip/_index.scss +0 -3
  215. package/styles/components/tooltip/popuptip.scss +0 -5
  216. package/styles/components/tooltip/tooltip.scss +0 -87
  217. package/styles/components-beta/description-list/_index.scss +0 -1
  218. package/styles/components-beta/description-list/description-list.scss +0 -80
  219. package/styles/components-beta/link-list/_index.scss +0 -2
  220. package/styles/components-beta/link-list/link-list.scss +0 -81
  221. package/styles/components-beta/nav-link/_index.scss +0 -1
  222. package/styles/components-beta/nav-link/navlink.scss +0 -66
  223. package/styles/components-beta/search/_index.scss +0 -4
  224. package/styles/components-beta/search/search-with-submit-button.scss +0 -37
  225. package/styles/components-beta/search/search.scss +0 -106
  226. package/styles/components-beta/select/_index.scss +0 -3
  227. package/styles/components-beta/select/select.scss +0 -128
  228. package/styles/components-beta/table-of-contents/_index.scss +0 -2
  229. package/styles/components-beta/table-of-contents/table-of-contents.scss +0 -88
  230. package/styles/core/_layers.scss +0 -3
  231. package/styles/core/core.scss +0 -6
  232. package/styles/core/global/_base-class.scss +0 -36
  233. package/styles/core/global/_index.scss +0 -2
  234. package/styles/core/global/_top-layer.scss +0 -20
  235. package/styles/core/jkl/_colors.scss +0 -26
  236. package/styles/core/jkl/_convert.scss +0 -102
  237. package/styles/core/jkl/_helpers.scss +0 -26
  238. package/styles/core/jkl/_index.scss +0 -18
  239. package/styles/core/jkl/_motion.scss +0 -63
  240. package/styles/core/jkl/_navigation.scss +0 -9
  241. package/styles/core/jkl/_ornaments.scss +0 -28
  242. package/styles/core/jkl/_reset.scss +0 -45
  243. package/styles/core/jkl/_responsive-units.scss +0 -30
  244. package/styles/core/jkl/_screenreader.scss +0 -59
  245. package/styles/core/jkl/_screens.scss +0 -135
  246. package/styles/core/jkl/_shadows.scss +0 -25
  247. package/styles/core/jkl/_spacing.scss +0 -149
  248. package/styles/core/jkl/_theme.scss +0 -119
  249. package/styles/core/jkl/_tokens.scss +0 -58
  250. package/styles/core/jkl/_typography.scss +0 -269
  251. package/styles/core/jkl/_underline.scss +0 -16
  252. package/styles/core/jkl/_z-index.scss +0 -23
  253. package/styles/core/jkl/legacy/_dynamic-colors.scss +0 -40
  254. package/styles/core/jkl/legacy/_index.scss +0 -2
  255. package/styles/core/jkl/legacy/_tokens.scss +0 -396
  256. package/styles/core/resets/_index.scss +0 -2
  257. package/styles/core/resets/_normalize.scss +0 -251
  258. package/styles/core/resets/_reset.scss +0 -68
  259. package/styles/core/theme/_color-tokens.scss +0 -73
  260. package/styles/core/theme/_dynamic-spacing.scss +0 -55
  261. package/styles/core/theme/_index.scss +0 -8
  262. package/styles/core/theme/_legacy-color-tokens.scss +0 -81
  263. package/styles/core/theme/_legacy-tokens.scss +0 -159
  264. package/styles/core/theme/_old-vars.scss +0 -30
  265. package/styles/core/theme/_spacing-tokens.scss +0 -32
  266. package/styles/core/theme/_tokens.scss +0 -32
  267. package/styles/core/theme/_typography.scss +0 -27
  268. package/styles/core/utility/_headings.scss +0 -31
  269. package/styles/core/utility/_index.scss +0 -4
  270. package/styles/core/utility/_paragraphs.scss +0 -18
  271. package/styles/core/utility/_screen-reader.scss +0 -11
  272. package/styles/core/utility/_spacing.scss +0 -49
  273. package/styles/hooks/stories/styles.scss +0 -78
  274. package/styles/shared/input/shared-input-styles.scss +0 -181
  275. package/styles/shared/track/track.scss +0 -27
  276. package/styles/styles.scss +0 -52
  277. /package/styles/{fonts → components/checkbox/development/public/fonts}/_index.scss +0 -0
  278. /package/styles/{fonts → components/checkbox/development/public/fonts}/webfonts.scss +0 -0
@@ -1,130 +0,0 @@
1
- @use "../../core/jkl";
2
- @use "../file";
3
-
4
- @include jkl.comfortable-density-variables {
5
- @include jkl.declare-font-variables("jkl-file-input-drag", "heading-2");
6
- @include jkl.declare-font-variables("jkl-file-size-hint", "small");
7
-
8
- --jkl-file-input-dropzone-padding: #{jkl.$unit-30};
9
- --jkl-file-input-dropzone-gap: #{jkl.$unit-30};
10
- --jkl-file-cta-gap: #{jkl.$unit-30};
11
- --jkl-file-cta-with-files-gap: #{jkl.$unit-15};
12
- --jkl-file-list-gap: #{jkl.$unit-10};
13
- }
14
-
15
- @include jkl.compact-density-variables {
16
- @include jkl.declare-font-variables("jkl-file-input-drag", "body");
17
-
18
- --jkl-file-input-dropzone-padding: #{jkl.$unit-20};
19
- --jkl-file-input-dropzone-gap: #{jkl.$unit-20};
20
- --jkl-file-cta-gap: #{jkl.$unit-15};
21
- --jkl-file-cta-with-files-gap: #{jkl.$unit-05};
22
- --jkl-file-list-gap: #{jkl.$unit-10};
23
- }
24
-
25
- .jkl-file-input {
26
- &__dropzone {
27
- --border-color: var(--jkl-color-border-input);
28
- --background-color: transparent;
29
-
30
- border: var(--border-color) 1px dashed;
31
- border-radius: jkl.rem(4px);
32
- padding: var(--jkl-file-input-dropzone-padding);
33
- display: flex;
34
- justify-content: center;
35
- align-items: center;
36
- flex-direction: column;
37
- flex-wrap: nowrap;
38
- gap: var(--jkl-file-input-dropzone-gap);
39
-
40
- @include jkl.motion("standard", "productive");
41
- transition-property: background-color;
42
- background-color: var(--background-color);
43
-
44
- &--enter {
45
- --border-color: var(--jkl-color-border-input-focus);
46
- --background-color: var(--jkl-color-background-container-high);
47
- border-style: solid;
48
- }
49
-
50
- &__drag-text {
51
- @include jkl.use-font-variables("jkl-file-input-drag");
52
-
53
- @include jkl.small-device {
54
- display: none;
55
- }
56
- }
57
- }
58
-
59
- &__call-to-action {
60
- display: flex;
61
- justify-content: center;
62
- align-items: center;
63
- flex-direction: column;
64
- flex-wrap: nowrap;
65
-
66
- &:has(:focus-visible) {
67
- .jkl-button {
68
- transform: scale(1.05);
69
-
70
- @include jkl.focus-outline;
71
-
72
- &:active {
73
- transform: scale(1);
74
- }
75
- }
76
- }
77
- }
78
-
79
- &__dropzone-hint {
80
- margin-top: jkl.$unit-30;
81
- }
82
-
83
- &--has-files &__dropzone-hint {
84
- display: none;
85
- }
86
-
87
- &__max-size-text {
88
- @include jkl.use-font-variables("jkl-file-size-hint");
89
- color: var(--jkl-color-text-subdued);
90
- margin-top: jkl.$unit-30;
91
- }
92
-
93
- &__files {
94
- list-style: none;
95
- margin: 0;
96
- padding: 0;
97
- display: flex;
98
- flex-direction: column;
99
- gap: var(--jkl-file-list-gap);
100
- }
101
-
102
- &--small {
103
- .jkl-file-input__dropzone-hint {
104
- margin: 0;
105
- display: block;
106
- }
107
-
108
- .jkl-file-input__dropzone {
109
- padding: jkl.$unit-20;
110
- gap: jkl.$unit-20;
111
- margin-bottom: jkl.$unit-20;
112
- justify-content: flex-start;
113
- flex-direction: row;
114
- max-width: fit-content;
115
- }
116
-
117
- .jkl-file-input__call-to-action {
118
- @include jkl.use-font-variables("jkl-file-size-hint");
119
-
120
- gap: #{jkl.$unit-15};
121
- flex-direction: row;
122
- justify-content: flex-start;
123
- }
124
-
125
- .jkl-file-input__max-size-text {
126
- margin-top: calc(-1 * #{jkl.$unit-15});
127
- margin-bottom: jkl.$unit-20;
128
- }
129
- }
130
- }
@@ -1 +0,0 @@
1
- @forward "flex";
@@ -1,252 +0,0 @@
1
- @charset "UTF-8";
2
- @use "sass:math";
3
- @use "sass:map";
4
- @use "../../core/jkl";
5
-
6
- // ==========================================================================
7
- // 1. Konfigurasjon
8
- // ==========================================================================
9
-
10
- // Angir globale CSS custom properties for maksimale container-bredder.
11
- @layer jokul.components {
12
- :root {
13
- --container-m: 43.75rem;
14
- --container-l: 60rem;
15
- --container-xl: 75rem;
16
- --container-2xl: 90rem;
17
- --container-full: 100%;
18
- }
19
- }
20
-
21
- $jokul-breakpoints: map.get(jkl.$tokens, "breakpoint");
22
- $jokul-spacing: map.get(jkl.$tokens, "semantic-spacing");
23
-
24
- // Map for å generere klasser for uniforme (jevnt fordelte) kolonner.
25
- // Nøkkelen (key) representerer antall elementer, og verdien (value) er hvor mange
26
- // av de 12 grid-kolonnene hvert element skal oppta.
27
- $uniform-layouts: (
28
- "0": "auto",
29
- // Automatisk bredde basert på innhold
30
- "1": 12,
31
- // 1 element i full bredde
32
- "2": 6,
33
- // 2 elementer, 50% bredde hver
34
- "3": 4,
35
- // 3 elementer, 33.3% bredde hver
36
- "4": 3,
37
- // 4 elementer, 25% bredde hver
38
- "6": 2,
39
- // 6 elementer, 16.6% bredde hver
40
- );
41
-
42
- // Map for å generere asymmetriske layout-klasser (f.eks. .s-2\.10).
43
- // Nøkkelen (key) er klassens suffiks, og verdien (value) angir bredden i antall
44
- // grid-kolonner for elementer på oddetallsplassering (1, 3, 5, ...).
45
- // Bredden for partallselementer beregnes automatisk (12 - verdi).
46
- $asymmetric-layouts: (
47
- "2\\.10": 2,
48
- "10\\.2": 10,
49
- "3\\.9": 3,
50
- "9\\.3": 9,
51
- "4\\.8": 4,
52
- "8\\.4": 8,
53
- "5\\.7": 5,
54
- "7\\.5": 7,
55
- );
56
-
57
- // Sass-map for å generere generiske hjelpeklasser (utility classes).
58
- // Hver nøkkel på toppnivå er en CSS-egenskap, og de nøstede map-ene
59
- // definerer klassenavn og tilhørende verdi.
60
- $utility-classes: (
61
- "display": (inline-flex,
62
- ),
63
- "flex-wrap": (wrap-reverse,
64
- nowrap,
65
- ),
66
- "flex-direction": (column,
67
- column-reverse,
68
- row-reverse,
69
- ),
70
- "text-align": (left,
71
- center,
72
- right,
73
- ),
74
- "align-items": (start,
75
- center,
76
- end,
77
- baseline,
78
- stretch,
79
- ),
80
- "align-content": (start,
81
- center,
82
- end,
83
- stretch,
84
- baseline,
85
- space-around,
86
- space-between,
87
- space-evenly,
88
- ),
89
- "justify-content": (start,
90
- center,
91
- end,
92
- space-around,
93
- space-between,
94
- space-evenly,
95
- ),
96
- );
97
-
98
- // Map som definerer maksimale bredder for sentrerte containere (`.center-*`).
99
- // Brukes til å generere responsive breddebegrensninger.
100
- $containers: (
101
- "small": var(--container-m),
102
- "medium": var(--container-l),
103
- "large": var(--container-xl),
104
- "xl": var(--container-2xl),
105
- );
106
-
107
- // ==========================================================================
108
- // 2. Verktøy (Mixins)
109
- // ==========================================================================
110
-
111
- /// Mixin som genererer hjelpeklasser for de forskjellige egenskapene et
112
- /// flex-element kan ha. For eksempel vil man for `align-items`-egenskapen
113
- /// få generert ut hjelpeklasser som `.align-items-end`.
114
- /// @output Hjelpeklasser for de vanligste flex-egenskapene
115
- @mixin generate-utility-classes() {
116
- @each $property, $values in $utility-classes {
117
- @each $value in $values {
118
- .#{$property}-#{$value} {
119
- #{$property}: $value;
120
- }
121
- }
122
- }
123
- }
124
-
125
- // Mixin for å generere responsive layout-klasser basert på $asymmetric-layouts og $uniform-layouts.
126
- @mixin generate-layout-classes($breakpoint) {
127
-
128
- // --- Asymmetriske layouts ---
129
- // Genererer klasser for layouts der oddetalls- og partalls-elementer har ulik bredde.
130
- @each $layout, $odd-child-columns in $asymmetric-layouts {
131
- $even-child-columns: 12 - $odd-child-columns;
132
-
133
- .screen-#{$breakpoint}-#{$layout} {
134
- > :where(:nth-child(odd)) {
135
- --jkl-flex-layout: #{$odd-child-columns};
136
- }
137
-
138
- > :where(:nth-child(even)) {
139
- --jkl-flex-layout: #{$even-child-columns};
140
- }
141
- }
142
- }
143
-
144
- // --- Uniforme layouts ---
145
- // Genererer klasser for layouts der alle elementer har lik bredde.
146
- @each $layout, $value in $uniform-layouts {
147
- .screen-#{$breakpoint}-#{$layout} > * {
148
- --jkl-flex-layout: #{$value};
149
- }
150
- }
151
- }
152
-
153
-
154
- // Mixin for å generere klasser for `row-gap` og `column-gap`.
155
- @mixin generate-gap-classes($breakpoint) {
156
- @each $spacing, $value in $jokul-spacing {
157
- .screen-#{$breakpoint}-row-gap-#{$spacing} {
158
- row-gap: var(--jkl-spacing-#{$spacing});
159
- }
160
-
161
- .screen-#{$breakpoint}-col-gap-#{$spacing} {
162
- column-gap: var(--jkl-spacing-#{$spacing});
163
-
164
- // Setter en custom property for å kunne kalkulere nøyaktig kolonnebredde
165
- // i `flex-basis`, justert for `column-gap`.
166
- & > * {
167
- --jkl-flex-gap: var(--jkl-spacing-#{$spacing});
168
- }
169
- }
170
- }
171
- }
172
-
173
- // ==========================================================================
174
- // 3. Kjernestiler
175
- // ==========================================================================
176
-
177
- @layer jokul.components {
178
-
179
- // Basisstil for alle flex-containere.
180
- :is(.jkl-flex) {
181
- box-sizing: border-box;
182
- display: flex;
183
- flex-direction: row;
184
- flex-wrap: wrap;
185
- }
186
-
187
- // Sørger for at direkte barn av .fill-elementer fyller tilgjengelig plass.
188
- // :where brukes for å holde spesifisiteten lav.
189
- :where(.fill > *) {
190
- flex-grow: 1;
191
- }
192
-
193
- // Definerer standardoppførsel for alle direkte elementer av en `.flex`-container.
194
- :where(.jkl-flex > *) {
195
- --jkl-flex-gap: 0px; // Standard gap er null.
196
- --jkl-flex-layout: auto; // Standard layout er automatisk bredde.
197
-
198
- box-sizing: border-box;
199
-
200
- // Kalkulerer `flex-basis` for å lage et grid-system som tar hensyn til `gap`.
201
- // Formelen fordeler bredden basert på antall kolonner definert av `--jkl-flex-layout`.
202
- flex-basis: calc((100% - (12 / var(--jkl-flex-layout) - 1) * var(--jkl-flex-gap)) / 12 * var(--jkl-flex-layout));
203
-
204
- // Sørger for at elementene kan krympe, for å unngå at de flyter ut av containeren.
205
- min-width: calc(var(--jkl-flex-layout) * 0px);
206
- min-height: calc(var(--jkl-flex-layout) * 0px);
207
- }
208
-
209
- // Hindrer at elementer krymper når `flex-wrap: nowrap` er satt.
210
- :where(.wrap-nowrap > *) {
211
- flex-shrink: calc(var(--jkl-flex-layout) * 0);
212
- }
213
- }
214
-
215
- // ==========================================================================
216
- // 4. CSS-generering
217
- // ==========================================================================
218
-
219
- @layer jokul.components {
220
- @include generate-utility-classes;
221
-
222
- // Stiler for sentrerte containere.
223
- :is(.center-m, .center-l, .center-xl, .center-2xl) {
224
- box-sizing: border-box;
225
- margin-inline: auto;
226
- width: calc(100% - var(--jkl-unit-50));
227
- }
228
-
229
- // Genererer responsive `max-width` for hver container-størrelse.
230
- @each $size, $width in $containers {
231
- @media (width >=#{map.get($jokul-breakpoints, $size)}) {
232
- .center-#{$size} {
233
- max-width: $width;
234
- }
235
- }
236
- }
237
-
238
- // Itererer gjennom alle definerte breakpoints for å generere responsive layout- og gap-klasser.
239
- @each $breakpoint, $width in $jokul-breakpoints {
240
- @if $breakpoint =="small" {
241
- @include generate-layout-classes($breakpoint);
242
- @include generate-gap-classes($breakpoint);
243
- }
244
-
245
- @else {
246
- @media (width >=#{$width}) {
247
- @include generate-layout-classes($breakpoint);
248
- @include generate-gap-classes($breakpoint);
249
- }
250
- }
251
- }
252
- }
@@ -1,2 +0,0 @@
1
- @forward "help";
2
- @use "../icon/index" as icon;
@@ -1,47 +0,0 @@
1
- @use "../../core/jkl/index" as jkl;
2
-
3
- .jkl-help-trigger {
4
- vertical-align: middle;
5
- width: fit-content;
6
- height: fit-content;
7
- }
8
-
9
- .jkl-help-popover {
10
- max-width: 40ch;
11
- padding: var(--jkl-unit-30);
12
- margin: var(--jkl-unit-05);
13
- inset: auto;
14
- border: none;
15
- background-color: var(--jkl-color-background-container-inverted);
16
- color: var(--jkl-color-text-inverted);
17
-
18
- header button {
19
- display: none;
20
- }
21
-
22
- .title {
23
- @include jkl.text-style("body") {
24
- font-weight: bold;
25
- }
26
- }
27
-
28
- &[data-position="top"] {
29
- position-area: top center;
30
- position-try: top, bottom, right, left;
31
- }
32
-
33
- &[data-position="bottom"] {
34
- position-area: bottom center;
35
- position-try: bottom, top, right, left;
36
- }
37
-
38
- &[data-position="left"] {
39
- position-area: left center;
40
- position-try: left, right, top, bottom;
41
- }
42
-
43
- &[data-position="right"] {
44
- position-area: right center;
45
- position-try: right, left, top, bottom;
46
- }
47
- }
@@ -1,21 +0,0 @@
1
- @charset "UTF-8";
2
- @use "../../core/jkl";
3
-
4
- /// Vi tilbyr dette som en mixin for å kunne være konsekvent i stilsettingen
5
- /// av ikoner også der man ikke kan bruke jkl-icon-klassen.
6
- /// @output Basestiler for Jøkul-ikoner
7
- @mixin base-styles {
8
- font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
9
- font-variation-settings: "FILL" var(--jkl-icon-fill, 0),
10
- "GRAD" var(--jkl-icon-grade, 0), "opsz" var(--jkl-icon-opsz, 24);
11
- font-feature-settings: "liga";
12
- -webkit-font-feature-settings: "liga";
13
- font-size: var(--jkl-icon-size, #{jkl.rem(24px)});
14
- font-weight: var(--jkl-icon-weight, #{jkl.$icon-weight-normal});
15
- line-height: 1;
16
- display: inline-block;
17
- -webkit-font-smoothing: antialiased;
18
-
19
- @include jkl.motion("standard", "productive");
20
- transition-property: font-variation-settings, transform;
21
- }
@@ -1 +0,0 @@
1
- @forward "icon";
@@ -1,13 +0,0 @@
1
- .jkl-example-grid {
2
- display: grid;
3
- gap: 2rem 1rem;
4
- width: 100%;
5
- }
6
-
7
- .jkl-example-grid--four-columns {
8
- grid-template-columns: 1fr 1fr 1fr 1fr;
9
- }
10
-
11
- .jkl-example-grid--two-columns {
12
- grid-template-columns: 1fr 1fr;
13
- }
@@ -1,139 +0,0 @@
1
- @charset "UTF-8";
2
- @use "../../core/jkl";
3
- @use "./base-styles" as *;
4
-
5
- @layer jokul.theme {
6
- @include jkl.light-mode-variables {
7
- --jkl-icon-grade: 0;
8
- }
9
-
10
- @include jkl.dark-mode-variables {
11
- --jkl-icon-grade: -25;
12
- }
13
- }
14
-
15
- @layer jokul.components {
16
- .jkl-icon {
17
- --jkl-icon-fill: 0;
18
-
19
- @include base-styles;
20
-
21
- &--bold {
22
- --jkl-icon-weight: #{jkl.$icon-weight-bold};
23
- }
24
-
25
- &--filled {
26
- --jkl-icon-fill: 1;
27
- }
28
-
29
- &--medium {
30
- --jkl-icon-opsz: 24;
31
- --jkl-icon-size: #{jkl.rem(24px)};
32
- }
33
-
34
- &--small {
35
- --jkl-icon-opsz: 20;
36
- --jkl-icon-size: #{jkl.rem(20px)};
37
- }
38
-
39
- &--inherit {
40
- --jkl-icon-opsz: 20;
41
- --jkl-icon-size: 1.2em;
42
- }
43
-
44
- &--animated {
45
- display: block;
46
- }
47
- }
48
-
49
- .jkl-icon-red-cross {
50
- --red-cross-circle: var(--jkl-color-background-alert-error);
51
- --red-cross-path: var(--jkl-color-text-on-alert);
52
-
53
- width: jkl.rem(24px);
54
- height: jkl.rem(24px);
55
-
56
- & path {
57
- fill: var(--red-cross-path);
58
- }
59
-
60
- & circle {
61
- fill: var(--red-cross-circle);
62
- }
63
- }
64
-
65
- .jkl-icon-green-check {
66
- --green-check-circle: var(--jkl-color-background-alert-success);
67
- --green-check-path: var(--jkl-color-text-on-alert);
68
-
69
- width: jkl.rem(24px);
70
- height: jkl.rem(24px);
71
-
72
- & path {
73
- fill: var(--green-check-path);
74
- }
75
-
76
- & circle {
77
- fill: var(--green-check-circle);
78
- }
79
- }
80
-
81
- .jkl-animated-horizontal-arrows,
82
- .jkl-animated-vertical-arrows {
83
- overflow: hidden;
84
- width: var(--jkl-icon-size, #{jkl.rem(24px)});
85
- height: var(--jkl-icon-size, #{jkl.rem(24px)});
86
-
87
- &__slider {
88
- display: flex;
89
-
90
- @include jkl.motion(standard, expressive);
91
- transition-delay: calc(#{jkl.timing("expressive")} * (1 / 3));
92
- transition-property: transform;
93
- }
94
-
95
- &__arrow {
96
- flex-shrink: 0;
97
- }
98
- }
99
-
100
- .jkl-animated-vertical-arrows__slider {
101
- flex-direction: column;
102
- height: calc(var(--jkl-icon-size, #{jkl.rem(24px)}) * 2);
103
-
104
- &[data-show="up"] {
105
- transform: translate3d(0, 0, 0);
106
- }
107
-
108
- &[data-show="down"] {
109
- transform: translate3d(0, -50%, 0);
110
- }
111
- }
112
-
113
- .jkl-animated-horizontal-arrows__slider {
114
- flex-direction: row;
115
- width: calc(var(--jkl-icon-size, #{jkl.rem(24px)}) * 2);
116
-
117
- &[data-show="left"] {
118
- transform: translate3d(0, 0, 0);
119
- }
120
-
121
- &[data-show="right"] {
122
- transform: translate3d(-50%, 0, 0);
123
- }
124
- }
125
-
126
- .jkl-icons-animated__plus {
127
- @include jkl.motion("easeInBounceOut", "expressive");
128
- transition-property: transform;
129
- transform-origin: 50% 50%;
130
-
131
- &--plus {
132
- transform: rotate(0);
133
- }
134
-
135
- &--close {
136
- transform: rotate(135deg);
137
- }
138
- }
139
- }
@@ -1 +0,0 @@
1
- @forward "icon-button";
@@ -1,38 +0,0 @@
1
- @charset "UTF-8";
2
- @use "../../core/jkl";
3
-
4
- @layer jokul.components {
5
- .jkl-icon-button {
6
- background-color: transparent;
7
- cursor: pointer;
8
- color: inherit;
9
- position: relative;
10
- transition-property: box-shadow;
11
- padding: 0;
12
-
13
- @include jkl.motion(focus, snappy);
14
- @include jkl.reset-outline;
15
-
16
- .jkl-icon {
17
- display: flex;
18
- align-items: center;
19
-
20
- &--animated {
21
- display: revert;
22
- }
23
- }
24
-
25
- &:focus-visible {
26
- @include jkl.focus-outline;
27
- }
28
-
29
- &:hover {
30
- color: var(--jkl-color-text-interactive-hover);
31
- }
32
-
33
- @include jkl.forced-colors-mode {
34
- border: none;
35
- background: none;
36
- }
37
- }
38
- }
@@ -1 +0,0 @@
1
- @forward "image";
@@ -1,9 +0,0 @@
1
- .static {
2
- width: 100%;
3
- aspect-ratio: 4/3;
4
- }
5
-
6
- .fluid {
7
- width: 100%;
8
- height: 25rem;
9
- }