@klodd/ds 5.16.0 → 5.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -23,6 +23,9 @@
|
|
|
23
23
|
line-height: var(--lh-tight);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
/* --sm ar dekorativ storlek (28px) - INTE en sjalvstandig tap-target.
|
|
27
|
+
Wrapper-elementet (<a>, <button>) ansvarar for min 44px klickyta.
|
|
28
|
+
Anvand aldrig .avatar--sm som ensamt klickbart element. */
|
|
26
29
|
.avatar--sm {
|
|
27
30
|
width: var(--circle-size-sm);
|
|
28
31
|
height: var(--circle-size-sm);
|
package/css/components/chip.css
CHANGED
|
@@ -19,10 +19,14 @@
|
|
|
19
19
|
v3.13.0: .install-chip (PWA install-prompt) borttagen tillsammans
|
|
20
20
|
med tillhörande JS i pwa-register.js.
|
|
21
21
|
================================================================ */
|
|
22
|
+
/* 2026-05-26: min-height var(--touch-min) (44px) for WCAG AA tap-
|
|
23
|
+
target. Padding/font-size oforandrade - chipset stannar visuellt
|
|
24
|
+
kompakt men yta blir 44px tall sa klickytan motsvarar standarden. */
|
|
22
25
|
.chip {
|
|
23
26
|
display: inline-flex;
|
|
24
27
|
align-items: center;
|
|
25
28
|
gap: var(--space-6);
|
|
29
|
+
min-height: var(--touch-min);
|
|
26
30
|
font-size: var(--fs-11);
|
|
27
31
|
font-weight: var(--fw-medium);
|
|
28
32
|
padding: var(--space-4) var(--space-10);
|
|
@@ -87,12 +91,15 @@
|
|
|
87
91
|
padding: 0;
|
|
88
92
|
}
|
|
89
93
|
|
|
94
|
+
/* 2026-05-26: 18x18 -> --touch-min (44x44) for WCAG AA. Den visuella
|
|
95
|
+
x-ikonen inuti behaller sin smaa storlek (template-SVG-attribut) -
|
|
96
|
+
bara tap-targeten utokas till 44x44. */
|
|
90
97
|
.chip-list__delete {
|
|
91
98
|
display: inline-flex;
|
|
92
99
|
align-items: center;
|
|
93
100
|
justify-content: center;
|
|
94
|
-
width: var(--
|
|
95
|
-
height: var(--
|
|
101
|
+
width: var(--touch-min);
|
|
102
|
+
height: var(--touch-min);
|
|
96
103
|
padding: 0;
|
|
97
104
|
background: transparent;
|
|
98
105
|
border: 0;
|
|
@@ -127,7 +134,11 @@
|
|
|
127
134
|
pointer-events: none;
|
|
128
135
|
}
|
|
129
136
|
|
|
137
|
+
/* 2026-05-26: min-height var(--touch-min) (44px) for WCAG AA tap-
|
|
138
|
+
target. Bredd, padding och font behalls (komposition med .chip-list
|
|
139
|
+
__item-styling). */
|
|
130
140
|
.chip-list__add {
|
|
141
|
+
min-height: var(--touch-min);
|
|
131
142
|
background: transparent;
|
|
132
143
|
border-style: dashed;
|
|
133
144
|
color: var(--text-subtle);
|
|
@@ -41,11 +41,15 @@
|
|
|
41
41
|
display: block;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
/* 2026-05-26: min-height var(--touch-min) (44px) for WCAG AA tap-
|
|
45
|
+
target. Text centreras vertikalt via existerande align-items.
|
|
46
|
+
Padding-inline 12 + fs-14 behalls - menyrad blir luftigare. */
|
|
44
47
|
.dropdown__item {
|
|
45
48
|
display: flex;
|
|
46
49
|
align-items: center;
|
|
47
50
|
gap: var(--space-8);
|
|
48
51
|
width: 100%;
|
|
52
|
+
min-height: var(--touch-min);
|
|
49
53
|
padding: var(--space-8) var(--space-12);
|
|
50
54
|
font-family: inherit;
|
|
51
55
|
font-size: var(--fs-14);
|
|
@@ -45,11 +45,14 @@
|
|
|
45
45
|
display: none;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
/* 2026-05-26: height var(--circle-size) (36px) -> min-height
|
|
49
|
+
var(--touch-min) (44px) for WCAG AA tap-target. Padding och fs-13
|
|
50
|
+
behalls - pillen vaxer bara vertikalt. */
|
|
48
51
|
.pill-nav__item {
|
|
49
52
|
display: inline-flex;
|
|
50
53
|
align-items: center;
|
|
51
54
|
justify-content: center;
|
|
52
|
-
height: var(--
|
|
55
|
+
min-height: var(--touch-min);
|
|
53
56
|
padding: 0 var(--space-16);
|
|
54
57
|
background: var(--surface-default);
|
|
55
58
|
border: 1px solid var(--border-subtle);
|
|
@@ -200,9 +200,13 @@
|
|
|
200
200
|
gap: var(--space-8);
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
+
/* 2026-05-26: min-height var(--touch-min) (44px) for WCAG AA tap-
|
|
204
|
+
target. Tidigare ~43px (1px under). Padding och centrering
|
|
205
|
+
oforandrade. */
|
|
203
206
|
.sheet__item {
|
|
204
207
|
display: block;
|
|
205
208
|
width: 100%;
|
|
209
|
+
min-height: var(--touch-min);
|
|
206
210
|
padding: var(--space-12) var(--space-14);
|
|
207
211
|
background: var(--surface-default);
|
|
208
212
|
border: 1px solid var(--border-default);
|
package/js/turbo-nav.js
CHANGED
|
@@ -66,6 +66,15 @@
|
|
|
66
66
|
let currentController = null;
|
|
67
67
|
let inFlightSwap = null; // Promise som resolvar nar pagaende VT/swap ar klar.
|
|
68
68
|
|
|
69
|
+
/*--------------------------------------------------------------
|
|
70
|
+
Track senaste pathname+search sa popstate-handlern kan skilja
|
|
71
|
+
mellan riktig back/forward-nav (path/search andras) och hash-
|
|
72
|
+
only-nav (browser default scroll-to-anchor + hashchange). Vid
|
|
73
|
+
hash-only ska turbo INTE fetch+swap - det skulle overrida
|
|
74
|
+
browser-default-scrollen med scrollTo(0, cachedScroll=0).
|
|
75
|
+
--------------------------------------------------------------*/
|
|
76
|
+
let lastPathSearch = window.location.pathname + window.location.search;
|
|
77
|
+
|
|
69
78
|
/*--------------------------------------------------------------
|
|
70
79
|
Lank-eligibility: ska denna <a> hanteras av Turbo eller browsern?
|
|
71
80
|
--------------------------------------------------------------*/
|
|
@@ -316,6 +325,13 @@
|
|
|
316
325
|
history.pushState( mergeState( { scrollY: 0 } ), '', finalUrl );
|
|
317
326
|
}
|
|
318
327
|
|
|
328
|
+
// Spara nya path+search sa popstate-handlern kan upptacka
|
|
329
|
+
// hash-only-navigations (path/search aterstaller, bara hash byter).
|
|
330
|
+
try {
|
|
331
|
+
const parsed = new URL( finalUrl );
|
|
332
|
+
lastPathSearch = parsed.pathname + parsed.search;
|
|
333
|
+
} catch ( _ ) { /* ignore */ }
|
|
334
|
+
|
|
319
335
|
// Notify subscribers (nav-optimistic.js, hero-roll.js, future modules).
|
|
320
336
|
document.dispatchEvent( new CustomEvent( 'turbo:navigated', {
|
|
321
337
|
detail: { url: finalUrl, fromUrl: fromUrl, popstate: !! options.popstate },
|
|
@@ -357,8 +373,26 @@
|
|
|
357
373
|
turbo: true via mergeState sa popstate-handling vet att vi ar
|
|
358
374
|
i turbo-modell hela vagen. Browser-internals (scroll-cache,
|
|
359
375
|
etc.) bevaras eftersom vi merge:ar istallet for replace:ar.
|
|
376
|
+
|
|
377
|
+
Chrome firar popstate aven for hash-only-navs pa samma
|
|
378
|
+
dokument (a href="#x"-klick laggs som history-entry + ev.
|
|
379
|
+
popstate beroende pa browser-version). Vi vill INTE turbo-
|
|
380
|
+
fetch+swap i de fallen - browser default-scroll till anchor
|
|
381
|
+
+ hashchange-event hanterar det helt natively. Att fetch+swap
|
|
382
|
+
trots det leder till scrollTo(0, 0) i swap-callbacken (state
|
|
383
|
+
null fran browser-skapad entry), vilket overrider anchor-
|
|
384
|
+
scrollen och blir "scrollade tillbaka till toppen"-bugg.
|
|
385
|
+
|
|
386
|
+
Detektion: jamfor nuvarande pathname+search mot lastPathSearch
|
|
387
|
+
(updateras vid varje lyckad navigateTo). Identiska = hash-only.
|
|
360
388
|
--------------------------------------------------------------*/
|
|
361
389
|
window.addEventListener( 'popstate', function () {
|
|
390
|
+
const currentPathSearch = window.location.pathname + window.location.search;
|
|
391
|
+
if ( currentPathSearch === lastPathSearch ) {
|
|
392
|
+
// Hash-only-nav pa samma dokument - browser default + hashchange
|
|
393
|
+
// gor jobbet. Inget att swappa.
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
362
396
|
navigateTo( window.location.href, { popstate: true } );
|
|
363
397
|
} );
|
|
364
398
|
|