@oslokommune/punkt-css 16.26.2 → 17.0.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 (75) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/dist/css/components/accordion.css +27 -5
  3. package/dist/css/components/accordion.min.css +1 -1
  4. package/dist/css/components/alert.css +37 -9
  5. package/dist/css/components/alert.min.css +1 -1
  6. package/dist/css/components/calendar.css +4 -0
  7. package/dist/css/components/calendar.min.css +1 -1
  8. package/dist/css/components/combobox.css +82 -0
  9. package/dist/css/components/combobox.min.css +1 -1
  10. package/dist/css/components/datepicker.css +82 -3
  11. package/dist/css/components/datepicker.min.css +1 -1
  12. package/dist/css/components/footer.css +232 -108
  13. package/dist/css/components/footer.min.css +1 -1
  14. package/dist/css/components/header-global.css +287 -0
  15. package/dist/css/components/header-global.min.css +1 -0
  16. package/dist/css/components/header-menu.css +364 -123
  17. package/dist/css/components/header-menu.min.css +1 -1
  18. package/dist/css/components/header-service-mobile.css +71 -22
  19. package/dist/css/components/header-service-mobile.min.css +1 -1
  20. package/dist/css/components/header-service.css +68 -14
  21. package/dist/css/components/header-service.min.css +1 -1
  22. package/dist/css/components/header-shared.css +49 -0
  23. package/dist/css/components/header-shared.min.css +0 -0
  24. package/dist/css/components/inputwrapper.css +59 -5
  25. package/dist/css/components/inputwrapper.min.css +1 -1
  26. package/dist/css/components/modal.css +0 -5
  27. package/dist/css/components/modal.min.css +1 -1
  28. package/dist/css/components/searchinput.css +71 -2
  29. package/dist/css/components/searchinput.min.css +1 -1
  30. package/dist/css/components/textarea.css +41 -0
  31. package/dist/css/components/textarea.min.css +1 -0
  32. package/dist/css/components/textinput.css +126 -6
  33. package/dist/css/components/textinput.min.css +1 -1
  34. package/dist/css/components/timepicker.css +133 -38
  35. package/dist/css/components/timepicker.min.css +1 -1
  36. package/dist/css/elements/button.css +20 -4
  37. package/dist/css/elements/button.min.css +1 -1
  38. package/dist/css/elements/checkbox-radio.css +3 -3
  39. package/dist/css/elements/checkbox-radio.min.css +1 -1
  40. package/dist/css/elements/input.css +121 -6
  41. package/dist/css/elements/input.min.css +1 -1
  42. package/dist/css/elements/select.css +137 -9
  43. package/dist/css/elements/select.min.css +1 -1
  44. package/dist/css/pkt-base.css +434 -1
  45. package/dist/css/pkt-base.min.css +1 -1
  46. package/dist/css/pkt-components.css +1595 -348
  47. package/dist/css/pkt-components.min.css +1 -1
  48. package/dist/css/pkt-docs.css +2077 -364
  49. package/dist/css/pkt-docs.min.css +1 -1
  50. package/dist/css/pkt-elements.css +160 -16
  51. package/dist/css/pkt-elements.min.css +1 -1
  52. package/dist/css/pkt.css +2077 -364
  53. package/dist/css/pkt.min.css +1 -1
  54. package/dist/scss/abstracts/variables/_index.scss +1 -1
  55. package/dist/scss/abstracts/variables/_spacing.scss +1 -0
  56. package/dist/scss/components/_accordion.scss +7 -11
  57. package/dist/scss/components/_alert.scss +34 -11
  58. package/dist/scss/components/_calendar.scss +3 -0
  59. package/dist/scss/components/_combobox.scss +74 -0
  60. package/dist/scss/components/_datepicker.scss +75 -8
  61. package/dist/scss/components/_footer.scss +149 -123
  62. package/dist/scss/components/_header-global.scss +192 -0
  63. package/dist/scss/components/_header-menu.scss +30 -31
  64. package/dist/scss/components/_header-service-mobile.scss +4 -28
  65. package/dist/scss/components/_header-service.scss +4 -21
  66. package/dist/scss/components/_header-shared.scss +190 -0
  67. package/dist/scss/components/_index.scss +2 -0
  68. package/dist/scss/components/_inputwrapper.scss +66 -10
  69. package/dist/scss/components/_modal.scss +1 -5
  70. package/dist/scss/components/_searchinput.scss +58 -2
  71. package/dist/scss/components/_textarea.scss +48 -0
  72. package/dist/scss/components/_timepicker.scss +95 -34
  73. package/dist/scss/elements/_button.scss +12 -3
  74. package/dist/scss/elements/_input.scss +141 -7
  75. package/package.json +3 -3
@@ -0,0 +1,287 @@
1
+ @charset "UTF-8";
2
+ /*
3
+ * HeaderGlobal component
4
+ */
5
+ /*
6
+ * Shared header patterns
7
+ *
8
+ * Mixins shared by the header variants (`pkt-header-service` and
9
+ * `pkt-header-global`). The service header is the source of truth — these
10
+ * mixins are extracted from it so the global header stays aligned.
11
+ *
12
+ * This file only defines mixins; it emits no CSS on its own and therefore
13
+ * is not `@forward`ed from the component index.
14
+ */
15
+ /**
16
+ * Header chrome shared by every variant: base positioning plus the
17
+ * `--fixed`, `--sticky`, `--scroll-to-hide` and `--hidden` modifier states.
18
+ *
19
+ * Call inside a header base block; `&` resolves to the calling class
20
+ * (`.pkt-header-service` or `.pkt-header-global`).
21
+ */
22
+ /**
23
+ * Mobile user area shared by every variant: on small screens the user
24
+ * button becomes a full-width bar with top/bottom borders and the user
25
+ * menu renders in flow directly below it (rather than as a floating
26
+ * dropdown). Placement of the user area into its own row is left to the
27
+ * caller (grid row for the service header, a flex row for the global
28
+ * header).
29
+ *
30
+ * `$base` is the variant's BEM block, e.g. `pkt-header-service`.
31
+ */
32
+ /**
33
+ * Shared header grid. Logo (col 1), a flexible content cell (col 2,
34
+ * right-aligned) and the user cell (col 3). Row height follows
35
+ * `--pkt-header-height`, which steps down at the tablet and mobile
36
+ * breakpoints. On mobile the grid collapses to two columns and the user
37
+ * cell drops to a full-width second row — the same layout the service
38
+ * header uses.
39
+ *
40
+ * Call inside a header base block. `$base` is the variant's BEM block.
41
+ * `$mobile-height` lets a variant keep a taller bar on mobile (the service
42
+ * header drops to 64px, the global header stays at 88px).
43
+ */
44
+ /**
45
+ * Standalone Oslo logo sizing shared by header variants: 64px on
46
+ * desktop/tablet, shrinking to 32px on mobile (the same sizes the service
47
+ * header uses for its logo without a service name).
48
+ *
49
+ * Call inside a header base block; `&` resolves to the calling class.
50
+ * `$mobile-height` is the logo height on mobile (the service header drops to
51
+ * 32px, the global header to 3.2rem).
52
+ */
53
+ .pkt-header-global-spacer {
54
+ height: 6.5rem;
55
+ }
56
+ .pkt-header-global-spacer--tablet {
57
+ height: 5.5rem;
58
+ }
59
+ .pkt-header-global-spacer--mobile {
60
+ height: 5.5rem;
61
+ }
62
+ .pkt-header-global-spacer--mobile.pkt-header-global-spacer--has-user {
63
+ height: calc(5.5rem + 3.5rem);
64
+ }
65
+
66
+ .pkt-header-global {
67
+ position: relative;
68
+ z-index: 10;
69
+ background-color: var(--pkt-color-background-default);
70
+ border-bottom: 1px solid var(--pkt-color-border-subtle);
71
+ }
72
+ .pkt-header-global--fixed {
73
+ width: 100vw;
74
+ position: fixed;
75
+ top: 0;
76
+ left: 0;
77
+ }
78
+ .pkt-header-global--sticky {
79
+ position: sticky;
80
+ top: 0;
81
+ }
82
+ .pkt-header-global--scroll-to-hide {
83
+ transform: translate3d(0, 0, 0);
84
+ transition: 0.5s transform ease-in-out;
85
+ }
86
+ .pkt-header-global--hidden {
87
+ transform: translate3d(0, -100%, 0);
88
+ }
89
+ .pkt-header-global {
90
+ --pkt-header-height: 6.5rem;
91
+ }
92
+ .pkt-header-global--tablet {
93
+ --pkt-header-height: 5.5rem;
94
+ }
95
+ .pkt-header-global--mobile {
96
+ --pkt-header-height: 5.5rem;
97
+ }
98
+ .pkt-header-global {
99
+ display: grid;
100
+ align-items: center;
101
+ grid-template-columns: auto minmax(0, 1fr) auto;
102
+ grid-template-rows: var(--pkt-header-height) auto;
103
+ column-gap: 1.5rem;
104
+ }
105
+ .pkt-header-global--tablet {
106
+ column-gap: 1rem;
107
+ }
108
+ .pkt-header-global--mobile {
109
+ grid-template-columns: auto minmax(0, 1fr);
110
+ column-gap: 0.5rem;
111
+ }
112
+ .pkt-header-global__logo-area {
113
+ grid-column: 1;
114
+ grid-row: 1;
115
+ }
116
+ .pkt-header-global__content {
117
+ grid-column: 2;
118
+ grid-row: 1;
119
+ justify-self: end;
120
+ max-width: 100%;
121
+ }
122
+ .pkt-header-global__user {
123
+ grid-column: 3;
124
+ grid-row: 1;
125
+ }
126
+ .pkt-header-global--mobile .pkt-header-global__user {
127
+ grid-column: 1/-1;
128
+ grid-row: 2;
129
+ justify-self: stretch;
130
+ padding: 0;
131
+ }
132
+ .pkt-header-global__logo-area {
133
+ align-items: center;
134
+ display: inline-flex;
135
+ padding-left: 2rem;
136
+ }
137
+ .pkt-header-global--tablet .pkt-header-global__logo-area {
138
+ padding-left: 1rem;
139
+ }
140
+ .pkt-header-global--mobile .pkt-header-global__logo-area {
141
+ padding-left: 0.5rem;
142
+ }
143
+ .pkt-header-global__content, .pkt-header-global__user {
144
+ align-items: center;
145
+ display: inline-flex;
146
+ min-width: 0;
147
+ }
148
+ .pkt-header-global__content {
149
+ column-gap: 1.5rem;
150
+ }
151
+ .pkt-header-global--tablet .pkt-header-global__content {
152
+ column-gap: 0.5rem;
153
+ }
154
+ .pkt-header-global--mobile .pkt-header-global__content {
155
+ column-gap: 0.5rem;
156
+ padding-right: 0.5rem;
157
+ }
158
+ .pkt-header-global__menu-toggle, .pkt-header-global__contact {
159
+ flex: 0 0 auto;
160
+ }
161
+ .pkt-header-global__user {
162
+ justify-self: end;
163
+ padding-right: 2rem;
164
+ }
165
+ .pkt-header-global--tablet:not(.pkt-header-global--mobile) .pkt-header-global__user {
166
+ padding-right: 1rem;
167
+ }
168
+ .pkt-header-global__user-container {
169
+ position: relative;
170
+ flex: 0 0 auto;
171
+ }
172
+ .pkt-header-global__user-container.is-open {
173
+ z-index: 100;
174
+ }
175
+ .pkt-header-global__logo {
176
+ --fg-color: var(--pkt-color-text-body-default);
177
+ flex: 0 0 auto;
178
+ display: flex;
179
+ align-items: center;
180
+ }
181
+ .pkt-header-global__logo a,
182
+ .pkt-header-global__logo button {
183
+ display: flex;
184
+ align-items: center;
185
+ }
186
+ .pkt-header-global__logo svg {
187
+ aspect-ratio: 6/3;
188
+ height: 4rem;
189
+ }
190
+ .pkt-header-global--mobile .pkt-header-global__logo svg {
191
+ height: 3.2rem;
192
+ }
193
+ .pkt-header-global__search {
194
+ flex: 0 1 auto;
195
+ width: 22rem;
196
+ max-width: 100%;
197
+ min-width: 0;
198
+ }
199
+ .pkt-header-global__search .pkt-searchinput,
200
+ .pkt-header-global__search .pkt-searchinput__field {
201
+ width: 100%;
202
+ }
203
+ .pkt-header-global__contact {
204
+ flex: 0 0 auto;
205
+ white-space: nowrap;
206
+ }
207
+ .pkt-header-global__user-button {
208
+ max-width: 20rem;
209
+ }
210
+ .pkt-header-global__user-button .pkt-btn__text {
211
+ overflow: hidden;
212
+ text-overflow: ellipsis;
213
+ white-space: nowrap;
214
+ min-width: 0;
215
+ flex: 1 1 auto;
216
+ }
217
+ .pkt-header-global__user-menu {
218
+ position: absolute;
219
+ right: 0;
220
+ width: max(15.5rem, 100%);
221
+ max-width: min(32rem, 90vw);
222
+ }
223
+ .pkt-header-global__user-menu.is-open {
224
+ z-index: 100;
225
+ }
226
+ .pkt-header-global__search-toggle, .pkt-header-global__search-toggle button {
227
+ flex: 0 0 auto;
228
+ border-radius: 50%;
229
+ }
230
+ .pkt-header-global--mobile .pkt-header-global__menu-toggle, .pkt-header-global--mobile .pkt-header-global__menu-toggle button {
231
+ border-radius: 50%;
232
+ }
233
+ .pkt-header-global__menu, .pkt-header-global__search-panel {
234
+ position: fixed;
235
+ top: max(0px, var(--pkt-header-global-top, 0px) + 6.5rem);
236
+ left: 0;
237
+ right: 0;
238
+ bottom: 0;
239
+ z-index: 90;
240
+ background-color: rgba(0, 0, 0, 0.55);
241
+ overflow-y: auto;
242
+ overscroll-behavior: contain;
243
+ -webkit-overflow-scrolling: touch;
244
+ }
245
+ .pkt-header-global__menu--tablet, .pkt-header-global__menu--mobile, .pkt-header-global__search-panel--tablet, .pkt-header-global__search-panel--mobile {
246
+ top: max(0px, var(--pkt-header-global-top, 0px) + 5.5rem);
247
+ }
248
+ .pkt-header-global__menu .pkt-header-menu {
249
+ width: min(var(--pkt-header-global-width, 100%), 75rem);
250
+ margin: 0 0 0 calc(var(--pkt-header-global-left, 0px) + max(0px, (var(--pkt-header-global-width, 100%) - 75rem) / 2));
251
+ box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.1), 0px 2px 4px -2px rgba(0, 0, 0, 0.1);
252
+ }
253
+ .pkt-header-global__search-panel-inner {
254
+ margin-left: var(--pkt-header-global-left, 0px);
255
+ width: var(--pkt-header-global-width, 100%);
256
+ background-color: var(--pkt-color-background-default);
257
+ border-bottom: 1px solid var(--pkt-color-border-subtle);
258
+ box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.1), 0px 2px 4px -2px rgba(0, 0, 0, 0.1);
259
+ padding: 1rem;
260
+ }
261
+ .pkt-header-global__search-panel-inner .pkt-searchinput,
262
+ .pkt-header-global__search-panel-inner .pkt-searchinput__field {
263
+ width: 100%;
264
+ }
265
+
266
+ .pkt-header-global.pkt-header-global--mobile .pkt-header-global__user-container {
267
+ background-color: var(--pkt-color-background-default);
268
+ height: 3.5rem;
269
+ width: 100%;
270
+ z-index: 99;
271
+ }
272
+ .pkt-header-global.pkt-header-global--mobile .pkt-header-global__user-button:is(button), .pkt-header-global.pkt-header-global--mobile .pkt-header-global__user-button button {
273
+ height: 100%;
274
+ padding: 0 1.5rem;
275
+ width: 100%;
276
+ max-width: 100%;
277
+ border: none;
278
+ border-top: 1px solid var(--pkt-color-border-subtle, #f2f2f2);
279
+ border-bottom: 1px solid var(--pkt-color-border-subtle, #f2f2f2);
280
+ }
281
+ .pkt-header-global.pkt-header-global--mobile .pkt-header-global__user-button:not(button) {
282
+ display: contents;
283
+ }
284
+ .pkt-header-global.pkt-header-global--mobile .pkt-header-global__user-menu {
285
+ max-width: 100%;
286
+ position: unset;
287
+ }
@@ -0,0 +1 @@
1
+ .pkt-header-global-spacer{height:6.5rem}.pkt-header-global-spacer--tablet{height:5.5rem}.pkt-header-global-spacer--mobile{height:5.5rem}.pkt-header-global-spacer--mobile.pkt-header-global-spacer--has-user{height:calc(5.5rem + 3.5rem)}.pkt-header-global{position:relative;z-index:10;background-color:var(--pkt-color-background-default);border-bottom:1px solid var(--pkt-color-border-subtle)}.pkt-header-global--fixed{width:100vw;position:fixed;top:0;left:0}.pkt-header-global--sticky{position:sticky;top:0}.pkt-header-global--scroll-to-hide{transform:translate3d(0, 0, 0);transition:.5s transform ease-in-out}.pkt-header-global--hidden{transform:translate3d(0, -100%, 0)}.pkt-header-global{--pkt-header-height: 6.5rem}.pkt-header-global--tablet{--pkt-header-height: 5.5rem}.pkt-header-global--mobile{--pkt-header-height: 5.5rem}.pkt-header-global{display:grid;align-items:center;grid-template-columns:auto minmax(0, 1fr) auto;grid-template-rows:var(--pkt-header-height) auto;column-gap:1.5rem}.pkt-header-global--tablet{column-gap:1rem}.pkt-header-global--mobile{grid-template-columns:auto minmax(0, 1fr);column-gap:.5rem}.pkt-header-global__logo-area{grid-column:1;grid-row:1}.pkt-header-global__content{grid-column:2;grid-row:1;justify-self:end;max-width:100%}.pkt-header-global__user{grid-column:3;grid-row:1}.pkt-header-global--mobile .pkt-header-global__user{grid-column:1/-1;grid-row:2;justify-self:stretch;padding:0}.pkt-header-global__logo-area{align-items:center;display:inline-flex;padding-left:2rem}.pkt-header-global--tablet .pkt-header-global__logo-area{padding-left:1rem}.pkt-header-global--mobile .pkt-header-global__logo-area{padding-left:.5rem}.pkt-header-global__content,.pkt-header-global__user{align-items:center;display:inline-flex;min-width:0}.pkt-header-global__content{column-gap:1.5rem}.pkt-header-global--tablet .pkt-header-global__content{column-gap:.5rem}.pkt-header-global--mobile .pkt-header-global__content{column-gap:.5rem;padding-right:.5rem}.pkt-header-global__menu-toggle,.pkt-header-global__contact{flex:0 0 auto}.pkt-header-global__user{justify-self:end;padding-right:2rem}.pkt-header-global--tablet:not(.pkt-header-global--mobile) .pkt-header-global__user{padding-right:1rem}.pkt-header-global__user-container{position:relative;flex:0 0 auto}.pkt-header-global__user-container.is-open{z-index:100}.pkt-header-global__logo{--fg-color: var(--pkt-color-text-body-default);flex:0 0 auto;display:flex;align-items:center}.pkt-header-global__logo a,.pkt-header-global__logo button{display:flex;align-items:center}.pkt-header-global__logo svg{aspect-ratio:6/3;height:4rem}.pkt-header-global--mobile .pkt-header-global__logo svg{height:3.2rem}.pkt-header-global__search{flex:0 1 auto;width:22rem;max-width:100%;min-width:0}.pkt-header-global__search .pkt-searchinput,.pkt-header-global__search .pkt-searchinput__field{width:100%}.pkt-header-global__contact{flex:0 0 auto;white-space:nowrap}.pkt-header-global__user-button{max-width:20rem}.pkt-header-global__user-button .pkt-btn__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.pkt-header-global__user-menu{position:absolute;right:0;width:max(15.5rem,100%);max-width:min(32rem,90vw)}.pkt-header-global__user-menu.is-open{z-index:100}.pkt-header-global__search-toggle,.pkt-header-global__search-toggle button{flex:0 0 auto;border-radius:50%}.pkt-header-global--mobile .pkt-header-global__menu-toggle,.pkt-header-global--mobile .pkt-header-global__menu-toggle button{border-radius:50%}.pkt-header-global__menu,.pkt-header-global__search-panel{position:fixed;top:max(0px,var(--pkt-header-global-top, 0px) + 6.5rem);left:0;right:0;bottom:0;z-index:90;background-color:rgba(0,0,0,.55);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.pkt-header-global__menu--tablet,.pkt-header-global__menu--mobile,.pkt-header-global__search-panel--tablet,.pkt-header-global__search-panel--mobile{top:max(0px,var(--pkt-header-global-top, 0px) + 5.5rem)}.pkt-header-global__menu .pkt-header-menu{width:min(var(--pkt-header-global-width, 100%),75rem);margin:0 0 0 calc(var(--pkt-header-global-left, 0px) + max(0px,(var(--pkt-header-global-width, 100%) - 75rem)/2));box-shadow:0px 4px 6px -1px rgba(0,0,0,.1),0px 2px 4px -2px rgba(0,0,0,.1)}.pkt-header-global__search-panel-inner{margin-left:var(--pkt-header-global-left, 0px);width:var(--pkt-header-global-width, 100%);background-color:var(--pkt-color-background-default);border-bottom:1px solid var(--pkt-color-border-subtle);box-shadow:0px 4px 6px -1px rgba(0,0,0,.1),0px 2px 4px -2px rgba(0,0,0,.1);padding:1rem}.pkt-header-global__search-panel-inner .pkt-searchinput,.pkt-header-global__search-panel-inner .pkt-searchinput__field{width:100%}.pkt-header-global.pkt-header-global--mobile .pkt-header-global__user-container{background-color:var(--pkt-color-background-default);height:3.5rem;width:100%;z-index:99}.pkt-header-global.pkt-header-global--mobile .pkt-header-global__user-button:is(button),.pkt-header-global.pkt-header-global--mobile .pkt-header-global__user-button button{height:100%;padding:0 1.5rem;width:100%;max-width:100%;border:none;border-top:1px solid var(--pkt-color-border-subtle, #f2f2f2);border-bottom:1px solid var(--pkt-color-border-subtle, #f2f2f2)}.pkt-header-global.pkt-header-global--mobile .pkt-header-global__user-button:not(button){display:contents}.pkt-header-global.pkt-header-global--mobile .pkt-header-global__user-menu{max-width:100%;position:unset}