@fristil/designsystem 0.5.1 → 0.5.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/dist/components/css/select/select.d.ts +18 -1
  3. package/dist/components/css/select/select.d.ts.map +1 -1
  4. package/dist/components/css/select/select.js +15 -2
  5. package/dist/components/css/select/select.js.map +1 -1
  6. package/dist/components/ramme/error-summary/fs-error-summary.d.ts.map +1 -1
  7. package/dist/components/ramme/error-summary/fs-error-summary.js +12 -3
  8. package/dist/components/ramme/error-summary/fs-error-summary.js.map +1 -1
  9. package/dist/components/ramme/field/field-core.d.ts +15 -6
  10. package/dist/components/ramme/field/field-core.d.ts.map +1 -1
  11. package/dist/components/ramme/field/field-core.js +15 -6
  12. package/dist/components/ramme/field/field-core.js.map +1 -1
  13. package/dist/components/ramme/suggestion/fs-suggestion.d.ts +11 -1
  14. package/dist/components/ramme/suggestion/fs-suggestion.d.ts.map +1 -1
  15. package/dist/components/ramme/suggestion/fs-suggestion.js +24 -4
  16. package/dist/components/ramme/suggestion/fs-suggestion.js.map +1 -1
  17. package/dist/components/ramme/suggestion/suggestion.d.ts +10 -0
  18. package/dist/components/ramme/suggestion/suggestion.d.ts.map +1 -1
  19. package/dist/components/ramme/suggestion/suggestion.js +13 -1
  20. package/dist/components/ramme/suggestion/suggestion.js.map +1 -1
  21. package/dist/dom.d.ts.map +1 -1
  22. package/dist/dom.js +2 -0
  23. package/dist/dom.js.map +1 -1
  24. package/dist/fs.d.ts +5 -1
  25. package/dist/fs.d.ts.map +1 -1
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/react.d.ts +5 -1
  31. package/dist/react.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/components/css/select/select.css +193 -5
  34. package/src/components/css/select/select.ts +24 -1
  35. package/src/components/ramme/error-summary/fs-error-summary.ts +13 -3
  36. package/src/components/ramme/field/field-core.ts +15 -6
  37. package/src/components/ramme/suggestion/fs-suggestion.ts +27 -4
  38. package/src/components/ramme/suggestion/suggestion.ts +13 -1
package/CHANGELOG.md CHANGED
@@ -16,6 +16,83 @@ kommer i et nytt undertall.
16
16
 
17
17
  ## Ikke utgitt
18
18
 
19
+ ## 0.5.2 (2026-09-22)
20
+
21
+ ### Lagt til
22
+
23
+ - **`<select>` kan tegne nedtrekkslista inne i siden.** `fs.select({ picker:
24
+ "styled" })` gir `data-picker="styled"`, og da bruker feltet
25
+ `appearance: base-select`: lista blir et vanlig element i siden i stedet for
26
+ et vindu fra operativsystemet, og får Fristils farger, avstander og skygge.
27
+ Elementet er fortsatt en helt vanlig `<select>`, så innsending, tastatur og
28
+ skjermleser er uendret.
29
+
30
+ Det må slås på, og det er med vilje. Chromium 148 og WebKit 26.4 har
31
+ `appearance: base-select`; Firefox 150 har det ikke og viser nettleserens
32
+ egen liste som før. Begge deler er testet i hver sin motor. I
33
+ høykontrastmodus faller alle tre tilbake til nettleserens egen liste, siden
34
+ systemfargene er de eneste som er garantert lesbare der.
35
+
36
+ Nye variabler: `--fs-select-option-padding` og
37
+ `--fs-select-viewport-margin`. `--fs-select-radius` gjelder nå også lista.
38
+
39
+ ### Rettet
40
+
41
+ - **`FIELD_PRESERVED_ATTRIBUTES` dekker nå hjelpeteksten og feilmeldingen.**
42
+ Skriver malen ingen id-er, lager `<fs-field>` dem selv, og
43
+ `aria-describedby` på kontrollen peker på dem. `id` sto ikke i noen liste,
44
+ så en morfing fjernet den, og koblingen pekte på noe som ikke fantes: verken
45
+ hjelpeteksten eller feilmeldingen ble lest opp. Lista har nå en `help`-nøkkel,
46
+ `error` har fått `id` og ledeteksten har fått `for`.
47
+
48
+ - **`<fs-error-summary>` tar fokus hver gang boksen vises på nytt.** Den tok
49
+ det bare første gang. Mønsteret i en Datastar-app er at serveren sender
50
+ boksen skjult og bare slår `hidden` av og på, mens lista står med de samme
51
+ lenkene, og da nullstilte ingenting flagget. Andre gang det samme skjemaet
52
+ feilet, ble brukeren stående i feltet uten å få vite hvorfor innsendingen
53
+ ikke gikk gjennom. Flagget nullstilles nå når boksen skjules.
54
+
55
+ - **`<fs-suggestion>` leser hvilket alternativ som er markert fra markupen.**
56
+ Komponenten holdt en egen teller ved siden av `aria-selected`. Satte
57
+ serveren markeringen selv med `fs.suggestion({ activeIndex })`, hoppet
58
+ første piltast til toppen av lista i stedet for til alternativet etter, og
59
+ markeringen serveren nettopp sendte var borte.
60
+
61
+ - **Pil opp åpner lista, og går til det siste alternativet.** Den markerte før
62
+ et alternativ uten å åpne lista, så `aria-activedescendant` pekte inn i noe
63
+ feltet samtidig meldte som lukket, og skjermleseren leste opp et alternativ
64
+ som ikke sto på skjermen. Uten noe markert fra før gikk den dessuten til det
65
+ nest siste, ikke det siste.
66
+
67
+ - **`fs.suggestion().empty` bevarer `hidden` gjennom en oppdatering.**
68
+ Komponenten skjuler «Ingen treff» når noe passer, men elementet hadde ingen
69
+ `data-preserve-attr`, så teksten dukket opp igjen ved hver patch, også midt
70
+ i en liste med treff. Byggefunksjonen sender nå `hidden` når serveren har
71
+ noe å velge mellom, og navnet står i lista.
72
+
73
+ Begge ble funnet av en ny vaktpost, `morfing.browser.test.ts`, som kjører
74
+ Datastars egen attributtsynkronisering mot ekte markup etter at komponenten
75
+ har gjort jobben sin. Den dekker felt, forslagsfelt, faner og
76
+ sprettoppvindu.
77
+
78
+ - **`.fs-select` snur riktig i språk som skrives fra høyre mot venstre.**
79
+ Feltet holdt av plass til pila si med en `padding` på fire verdier, altså
80
+ over, høyre, under og venstre. De to fysiske sidene snur ikke med språket,
81
+ så i RTL lå plassen på feil side og teksten la seg oppå pila. Plassen settes
82
+ nå logisk, og pila, som er to gradienter og derfor ikke har noen logisk
83
+ variant, speilvendes med `:dir(rtl)`. Nedtrekkslista var ikke dekket av
84
+ retningstesten i det hele tatt, og er det nå. En ny vaktpost i
85
+ `pakke-css.browser.test.ts` avviser fysiske kortformer med fire verdier i
86
+ alle stilark.
87
+
88
+ - **`fs.setAttributes` fjerner nå `data-size` og `data-picker` igjen.** Den
89
+ rydder bare i en lukket liste av attributtnavn, og de to sto utenfor. En
90
+ avatar eller en overskrift som gikk tilbake til standardstørrelsen beholdt
91
+ altså `data-size` fra forrige kall, og fikk aldri standardutseendet sitt
92
+ igjen. En ny vaktpost kaller hver byggefunksjon med hver lovlige verdi den
93
+ selv oppgir, regner et attributt som valgfritt når det ikke er med i kallet
94
+ uten argumenter, og krever at hvert av dem lar seg fjerne.
95
+
19
96
  ## 0.5.1 (2026-09-21)
20
97
 
21
98
  ### Rettet
@@ -1,12 +1,26 @@
1
1
  import { type FieldState, type NonDefaultFieldState } from "../shared.js";
2
2
  export declare const SELECT_CLASS: "fs-select";
3
+ /**
4
+ * Hvem som tegner nedtrekkslista.
5
+ *
6
+ * `auto` er nettleserens egen liste, et vindu fra operativsystemet som ikke
7
+ * kan styles. `styled` ber nettleseren tegne den inne i siden i stedet, slik
8
+ * at den får designsystemets farger, avstander og skygge.
9
+ */
10
+ export declare const selectPickers: readonly ["auto", "styled"];
11
+ export type SelectPicker = (typeof selectPickers)[number];
12
+ export type NonDefaultSelectPicker = Exclude<SelectPicker, "auto">;
13
+ export declare const isSelectPicker: (value: string) => value is "auto" | "styled";
3
14
  export type SelectOptions = {
4
15
  /** Valideringstilstand. Standard: `default`. */
5
16
  state?: FieldState;
17
+ /** Hvem som tegner nedtrekkslista. Standard: `auto`. */
18
+ picker?: SelectPicker;
6
19
  };
7
20
  export type SelectAttributes = {
8
21
  class: typeof SELECT_CLASS;
9
22
  "data-state"?: NonDefaultFieldState;
23
+ "data-picker"?: NonDefaultSelectPicker;
10
24
  "aria-invalid"?: "true";
11
25
  };
12
26
  /**
@@ -14,10 +28,13 @@ export type SelectAttributes = {
14
28
  *
15
29
  * ```ts
16
30
  * <select {...select({ state: "invalid" })} />
31
+ * <select {...select({ picker: "styled" })} />
17
32
  * ```
18
33
  */
19
- export declare const select: (({ state }?: SelectOptions) => SelectAttributes) & {
34
+ export declare const select: (({ state, picker, }?: SelectOptions) => SelectAttributes) & {
20
35
  states: readonly ["default", "invalid", "success"];
21
36
  isState: (value: string) => value is "default" | "success" | "invalid";
37
+ pickers: readonly ["auto", "styled"];
38
+ isPicker: (value: string) => value is "auto" | "styled";
22
39
  };
23
40
  //# sourceMappingURL=select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../src/components/css/select/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAGf,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAA;AAErB,eAAO,MAAM,YAAY,EAAG,WAAoB,CAAA;AAEhD,MAAM,MAAM,aAAa,GAAG;IAC1B,gDAAgD;IAChD,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,OAAO,YAAY,CAAA;IAC1B,YAAY,CAAC,EAAE,oBAAoB,CAAA;IACnC,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,gBACO,aAAa,KAAQ,gBAAgB;;;CAU9D,CAAA"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../src/components/css/select/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EAGf,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAA;AAErB,eAAO,MAAM,YAAY,EAAG,WAAoB,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,6BAA8B,CAAA;AACxD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AACzD,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;AAClE,eAAO,MAAM,cAAc,+CAA6B,CAAA;AAExD,MAAM,MAAM,aAAa,GAAG;IAC1B,gDAAgD;IAChD,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,wDAAwD;IACxD,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,OAAO,YAAY,CAAA;IAC1B,YAAY,CAAC,EAAE,oBAAoB,CAAA;IACnC,aAAa,CAAC,EAAE,sBAAsB,CAAA;IACtC,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,yBAId,aAAa,KAAQ,gBAAgB;;;;;CAazC,CAAA"}
@@ -1,18 +1,31 @@
1
- import { attributes, fieldStates, isFieldState, } from "../shared.js";
1
+ import { attributes, createGuard, fieldStates, isFieldState, } from "../shared.js";
2
2
  export const SELECT_CLASS = "fs-select";
3
+ /**
4
+ * Hvem som tegner nedtrekkslista.
5
+ *
6
+ * `auto` er nettleserens egen liste, et vindu fra operativsystemet som ikke
7
+ * kan styles. `styled` ber nettleseren tegne den inne i siden i stedet, slik
8
+ * at den får designsystemets farger, avstander og skygge.
9
+ */
10
+ export const selectPickers = ["auto", "styled"];
11
+ export const isSelectPicker = createGuard(selectPickers);
3
12
  /**
4
13
  * Attributtene for en nedtrekksliste.
5
14
  *
6
15
  * ```ts
7
16
  * <select {...select({ state: "invalid" })} />
17
+ * <select {...select({ picker: "styled" })} />
8
18
  * ```
9
19
  */
10
- export const select = Object.assign(({ state = "default" } = {}) => attributes({
20
+ export const select = Object.assign(({ state = "default", picker = "auto", } = {}) => attributes({
11
21
  class: SELECT_CLASS,
12
22
  "data-state": state === "default" ? undefined : state,
23
+ "data-picker": picker === "auto" ? undefined : picker,
13
24
  "aria-invalid": state === "invalid" ? "true" : undefined,
14
25
  }), {
15
26
  states: fieldStates,
16
27
  isState: isFieldState,
28
+ pickers: selectPickers,
29
+ isPicker: isSelectPicker,
17
30
  });
18
31
  //# sourceMappingURL=select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/components/css/select/select.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,WAAW,EACX,YAAY,GAEb,MAAM,cAAc,CAAA;AAErB,MAAM,CAAC,MAAM,YAAY,GAAG,WAAoB,CAAA;AAahD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CACjC,CAAC,EAAE,KAAK,GAAG,SAAS,KAAoB,EAAE,EAAoB,EAAE,CAC9D,UAAU,CAAC;IACT,KAAK,EAAE,YAAY;IACnB,YAAY,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;IACrD,cAAc,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,SAAS;CACpE,CAAC,EACJ;IACE,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;CACtB,CACF,CAAA"}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/components/css/select/select.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EAEX,WAAW,EACX,YAAY,GAEb,MAAM,cAAc,CAAA;AAErB,MAAM,CAAC,MAAM,YAAY,GAAG,WAAoB,CAAA;AAEhD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAU,CAAA;AAGxD,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC,aAAa,CAAC,CAAA;AAgBxD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CACjC,CAAC,EACC,KAAK,GAAG,SAAS,EACjB,MAAM,GAAG,MAAM,MACE,EAAE,EAAoB,EAAE,CACzC,UAAU,CAAC;IACT,KAAK,EAAE,YAAY;IACnB,YAAY,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;IACrD,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;IACrD,cAAc,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,SAAS;CACpE,CAAC,EACJ;IACE,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;CACzB,CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fs-error-summary.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/error-summary/fs-error-summary.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,EAAG,kBAA2B,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC7C,MAAM,CAAC,kBAAkB,WAA0B;IAEnD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IAErD,iBAAiB,IAAI,IAAI;IASzB,wBAAwB,IAAI,IAAI;IAOhC,oBAAoB,IAAI,IAAI;IAS5B,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,CAAC,IAAI;IAwBZ,OAAO,CAAC,eAAe,CA6BtB;CACF;AAYD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAA;KACnC;CACF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,qBAAuB,GAAG,IAAI,CAIzE"}
1
+ {"version":3,"file":"fs-error-summary.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/error-summary/fs-error-summary.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,EAAG,kBAA2B,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC7C,MAAM,CAAC,kBAAkB,WAA0B;IAEnD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IAErD,iBAAiB,IAAI,IAAI;IASzB,wBAAwB,IAAI,IAAI;IAOhC,oBAAoB,IAAI,IAAI;IAS5B,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,CAAC,IAAI;IAkCZ,OAAO,CAAC,eAAe,CA6BtB;CACF;AAYD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAA;KACnC;CACF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,qBAAuB,GAAG,IAAI,CAIzE"}
@@ -96,9 +96,18 @@ export class FsErrorSummary extends HTMLElement {
96
96
  link.addEventListener("click", this.handleLinkClick);
97
97
  this.links.add(link);
98
98
  }
99
- // Boksen er skjult av serveren når lista er tom. Er den synlig nå, og vi
100
- // ikke har flyttet fokus hit ennå, er det denne innsendingen som feilet.
101
- if (this.shouldFocus && !this.hasFocused && !this.hidden) {
99
+ // Skjuler serveren boksen igjen, er den innsendingen over. Uten denne
100
+ // nullstillingen tok boksen fokus bare første gang: mønsteret i en
101
+ // Datastar-app er at lista står med de samme lenkene hele veien og bare
102
+ // `hidden` slås av og på, så «har jeg flyttet fokus hit før» er ikke et
103
+ // svar på om dette er en ny innsending.
104
+ if (this.hidden) {
105
+ this.hasFocused = false;
106
+ return;
107
+ }
108
+ // Er boksen synlig nå, og vi ikke har flyttet fokus hit ennå, er det
109
+ // denne innsendingen som feilet.
110
+ if (this.shouldFocus && !this.hasFocused) {
102
111
  this.hasFocused = true;
103
112
  this.focus();
104
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fs-error-summary.js","sourceRoot":"","sources":["../../../../src/components/ramme/error-summary/fs-error-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs-error-summary.js","sourceRoot":"","sources":["../../../../src/components/ramme/error-summary/fs-error-summary.ts"],"names":[],"mappings":"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"}
@@ -88,20 +88,29 @@ export declare function computeFieldAttributes(options?: FieldOptions): FieldAtt
88
88
  * lister på de to andre forsvinner klassen og feilmeldingen ved neste
89
89
  * morfing, som er nøyaktig den feilen kontrakten skal hindre.
90
90
  *
91
+ * Hjelpeteksten og feilmeldingen må ha `id` med i lista selv om malen ikke
92
+ * skriver noen. Komponenten lager dem i så fall selv, og `aria-describedby`
93
+ * på kontrollen peker på dem. Forsvinner id-en i en morfing, peker
94
+ * koblingen på noe som ikke finnes, og skjermleseren leser verken
95
+ * hjelpeteksten eller feilen. `for` på ledeteksten er der av samme grunn.
96
+ *
91
97
  * ```html
92
- * <label class="fs-label" for="epost"
93
- * data-preserve-attr="class data-required data-optional aria-disabled">E-post</label>
94
- * <input class="fs-input" id="epost"
98
+ * <label class="fs-label"
99
+ * data-preserve-attr="class for data-required data-optional aria-disabled">E-post</label>
100
+ * <input class="fs-input"
95
101
  * data-preserve-attr="id aria-describedby aria-invalid data-state disabled aria-disabled">
96
- * <p class="fs-error-text" hidden data-preserve-attr="hidden">Skriv en gyldig adresse.</p>
102
+ * <p class="fs-help-text" data-preserve-attr="id">Vi sender aldri spam.</p>
103
+ * <p class="fs-error-text" hidden data-preserve-attr="id hidden">Skriv en gyldig adresse.</p>
97
104
  * ```
98
105
  */
99
106
  export declare const FIELD_PRESERVED_ATTRIBUTES: {
100
107
  /** På ledeteksten. */
101
- readonly label: "class data-required data-optional aria-disabled";
108
+ readonly label: "class for data-required data-optional aria-disabled";
102
109
  /** På selve kontrollen. */
103
110
  readonly control: "id aria-describedby aria-invalid data-state disabled aria-disabled";
111
+ /** På hjelpeteksten. */
112
+ readonly help: "id";
104
113
  /** På feilmeldingen. */
105
- readonly error: "hidden";
114
+ readonly error: "id hidden";
106
115
  };
107
116
  //# sourceMappingURL=field-core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-core.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/field/field-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGrE;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG;IACzB,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE;QACL,KAAK,EAAE,UAAU,CAAA;QACjB,GAAG,EAAE,MAAM,CAAA;QACX,eAAe,CAAC,EAAE,cAAc,CAAA;QAChC,eAAe,CAAC,EAAE,EAAE,CAAA;QACpB,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAA;QACV,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,YAAY,CAAC,EAAE,SAAS,CAAA;QACxB,QAAQ,CAAC,EAAE,IAAI,CAAA;KAChB,CAAA;IACD,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACpB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,CAAA;IACpC,gFAAgF;IAChF,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAID,mDAAmD;AACnD,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,GACrC,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,YAAiB,GACzB,eAAe,CA2CjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,0BAA0B;IACrC,sBAAsB;;IAEtB,2BAA2B;;IAE3B,wBAAwB;;CAEhB,CAAA"}
1
+ {"version":3,"file":"field-core.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/field/field-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGrE;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG;IACzB,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE;QACL,KAAK,EAAE,UAAU,CAAA;QACjB,GAAG,EAAE,MAAM,CAAA;QACX,eAAe,CAAC,EAAE,cAAc,CAAA;QAChC,eAAe,CAAC,EAAE,EAAE,CAAA;QACpB,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAA;QACV,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,YAAY,CAAC,EAAE,SAAS,CAAA;QACxB,QAAQ,CAAC,EAAE,IAAI,CAAA;KAChB,CAAA;IACD,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACpB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,CAAA;IACpC,gFAAgF;IAChF,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAID,mDAAmD;AACnD,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,GACrC,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,YAAiB,GACzB,eAAe,CA2CjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,0BAA0B;IACrC,sBAAsB;;IAEtB,2BAA2B;;IAE3B,wBAAwB;;IAExB,wBAAwB;;CAEhB,CAAA"}
@@ -78,20 +78,29 @@ export function computeFieldAttributes(options = {}) {
78
78
  * lister på de to andre forsvinner klassen og feilmeldingen ved neste
79
79
  * morfing, som er nøyaktig den feilen kontrakten skal hindre.
80
80
  *
81
+ * Hjelpeteksten og feilmeldingen må ha `id` med i lista selv om malen ikke
82
+ * skriver noen. Komponenten lager dem i så fall selv, og `aria-describedby`
83
+ * på kontrollen peker på dem. Forsvinner id-en i en morfing, peker
84
+ * koblingen på noe som ikke finnes, og skjermleseren leser verken
85
+ * hjelpeteksten eller feilen. `for` på ledeteksten er der av samme grunn.
86
+ *
81
87
  * ```html
82
- * <label class="fs-label" for="epost"
83
- * data-preserve-attr="class data-required data-optional aria-disabled">E-post</label>
84
- * <input class="fs-input" id="epost"
88
+ * <label class="fs-label"
89
+ * data-preserve-attr="class for data-required data-optional aria-disabled">E-post</label>
90
+ * <input class="fs-input"
85
91
  * data-preserve-attr="id aria-describedby aria-invalid data-state disabled aria-disabled">
86
- * <p class="fs-error-text" hidden data-preserve-attr="hidden">Skriv en gyldig adresse.</p>
92
+ * <p class="fs-help-text" data-preserve-attr="id">Vi sender aldri spam.</p>
93
+ * <p class="fs-error-text" hidden data-preserve-attr="id hidden">Skriv en gyldig adresse.</p>
87
94
  * ```
88
95
  */
89
96
  export const FIELD_PRESERVED_ATTRIBUTES = {
90
97
  /** På ledeteksten. */
91
- label: "class data-required data-optional aria-disabled",
98
+ label: "class for data-required data-optional aria-disabled",
92
99
  /** På selve kontrollen. */
93
100
  control: "id aria-describedby aria-invalid data-state disabled aria-disabled",
101
+ /** På hjelpeteksten. */
102
+ help: "id",
94
103
  /** På feilmeldingen. */
95
- error: "hidden",
104
+ error: "id hidden",
96
105
  };
97
106
  //# sourceMappingURL=field-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-core.js","sourceRoot":"","sources":["../../../../src/components/ramme/field/field-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-core.js","sourceRoot":"","sources":["../../../../src/components/ramme/field/field-core.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,6 @@ export declare const FS_SUGGESTION_TAG: "fs-suggestion";
31
31
  */
32
32
  export declare class FsSuggestion extends HTMLElement {
33
33
  static observedAttributes: string[];
34
- private activeIndex;
35
34
  private observer?;
36
35
  private control?;
37
36
  /** Alternativene som alt har fått lytteren sin. */
@@ -44,6 +43,17 @@ export declare class FsSuggestion extends HTMLElement {
44
43
  get serverFiltered(): boolean;
45
44
  private get listElement();
46
45
  private get options();
46
+ /**
47
+ * Hvilket synlig alternativ som er markert nå.
48
+ *
49
+ * Den leses fra `aria-selected` i markupen, ikke fra en teller inni
50
+ * komponenten. Serveren kan sette markeringen selv med
51
+ * `fs.suggestion({ activeIndex })`, og en parallell teller ville hoppet
52
+ * til toppen av lista ved første piltast i stedet for til alternativet
53
+ * etter. Filtreringen flytter også på alternativene, og da svarer
54
+ * oppslaget riktig av seg selv.
55
+ */
56
+ private get activeIndex();
47
57
  /** Alternativene som er synlige nå. */
48
58
  private get visible();
49
59
  private unbind;
@@ -1 +1 @@
1
- {"version":3,"file":"fs-suggestion.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/suggestion/fs-suggestion.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,EAAG,eAAwB,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,CAAC,kBAAkB,WAAsB;IAE/C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,CAAkB;IACnC,OAAO,CAAC,OAAO,CAAC,CAAkB;IAClC,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAQ;IAExB,iBAAiB,IAAI,IAAI;IAOzB,oBAAoB,IAAI,IAAI;IAO5B,0EAA0E;IAC1E,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,OAAO,GAIlB;IAED,uCAAuC;IACvC,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,IAAI;IAuBZ,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,MAAM;IAgBd;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,MAAM;IAyBd,OAAO,CAAC,WAAW,CAIlB;IAED,OAAO,CAAC,WAAW,CAGlB;IAED,OAAO,CAAC,aAAa,CAqBpB;IAED,OAAO,CAAC,qBAAqB,CAK5B;IAED,OAAO,CAAC,kBAAkB,CAGzB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,YAAY,CAAA;KAC9B;CACF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,kBAAoB,GAAG,IAAI,CAIpE"}
1
+ {"version":3,"file":"fs-suggestion.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/suggestion/fs-suggestion.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,EAAG,eAAwB,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,CAAC,kBAAkB,WAAsB;IAE/C,OAAO,CAAC,QAAQ,CAAC,CAAkB;IACnC,OAAO,CAAC,OAAO,CAAC,CAAkB;IAClC,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAQ;IAExB,iBAAiB,IAAI,IAAI;IAOzB,oBAAoB,IAAI,IAAI;IAO5B,0EAA0E;IAC1E,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,OAAO,GAIlB;IAED;;;;;;;;;OASG;IACH,OAAO,KAAK,WAAW,GAItB;IAED,uCAAuC;IACvC,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,IAAI;IAuBZ,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,MAAM;IAgBd;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,MAAM;IAyBd,OAAO,CAAC,WAAW,CAIlB;IAED,OAAO,CAAC,WAAW,CAGlB;IAED,OAAO,CAAC,aAAa,CA+BpB;IAED,OAAO,CAAC,qBAAqB,CAK5B;IAED,OAAO,CAAC,kBAAkB,CAGzB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,YAAY,CAAA;KAC9B;CACF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,kBAAoB,GAAG,IAAI,CAIpE"}
@@ -33,7 +33,6 @@ export const FS_SUGGESTION_TAG = "fs-suggestion";
33
33
  export class FsSuggestion extends HTMLElement {
34
34
  constructor() {
35
35
  super(...arguments);
36
- this.activeIndex = -1;
37
36
  /** Alternativene som alt har fått lytteren sin. */
38
37
  this.bundne = new WeakSet();
39
38
  /** Sant mens komponenten selv sender hendelser, så den ikke svarer seg selv. */
@@ -60,7 +59,17 @@ export class FsSuggestion extends HTMLElement {
60
59
  }
61
60
  else if (event.key === "ArrowUp") {
62
61
  event.preventDefault();
63
- this.markActive(this.activeIndex - 1);
62
+ // Lista må åpnes først, som med pil ned. Uten det pekte
63
+ // `aria-activedescendant` på et alternativ i en liste feltet samtidig
64
+ // meldte som lukket, og skjermleseren leste opp noe som ikke sto på
65
+ // skjermen.
66
+ if (!åpen) {
67
+ this.filter();
68
+ this.setOpen(true);
69
+ }
70
+ // Er ingenting markert, går pil opp til det siste. `activeIndex - 1`
71
+ // ville gitt det nest siste, siden ingenting markert er -1.
72
+ this.markActive(this.activeIndex < 0 ? -1 : this.activeIndex - 1);
64
73
  }
65
74
  else if (event.key === "Enter" && åpen && this.activeIndex >= 0) {
66
75
  event.preventDefault();
@@ -109,6 +118,19 @@ export class FsSuggestion extends HTMLElement {
109
118
  ...this.querySelectorAll(`.${SUGGESTION_OPTION_CLASS}`),
110
119
  ];
111
120
  }
121
+ /**
122
+ * Hvilket synlig alternativ som er markert nå.
123
+ *
124
+ * Den leses fra `aria-selected` i markupen, ikke fra en teller inni
125
+ * komponenten. Serveren kan sette markeringen selv med
126
+ * `fs.suggestion({ activeIndex })`, og en parallell teller ville hoppet
127
+ * til toppen av lista ved første piltast i stedet for til alternativet
128
+ * etter. Filtreringen flytter også på alternativene, og da svarer
129
+ * oppslaget riktig av seg selv.
130
+ */
131
+ get activeIndex() {
132
+ return this.visible.findIndex((option) => option.getAttribute("aria-selected") === "true");
133
+ }
112
134
  /** Alternativene som er synlige nå. */
113
135
  get visible() {
114
136
  return this.options.filter((option) => !option.hidden);
@@ -151,7 +173,6 @@ export class FsSuggestion extends HTMLElement {
151
173
  list.hidden = !open;
152
174
  this.control.setAttribute("aria-expanded", String(open));
153
175
  if (!open) {
154
- this.activeIndex = -1;
155
176
  this.control.removeAttribute("aria-activedescendant");
156
177
  for (const option of this.options) {
157
178
  option.setAttribute("aria-selected", "false");
@@ -192,7 +213,6 @@ export class FsSuggestion extends HTMLElement {
192
213
  if (synlige.length === 0 || !this.control)
193
214
  return;
194
215
  const neste = (index + synlige.length) % synlige.length;
195
- this.activeIndex = neste;
196
216
  for (const option of this.options) {
197
217
  option.setAttribute("aria-selected", "false");
198
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fs-suggestion.js","sourceRoot":"","sources":["../../../../src/components/ramme/suggestion/fs-suggestion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs-suggestion.js","sourceRoot":"","sources":["../../../../src/components/ramme/suggestion/fs-suggestion.ts"],"names":[],"mappings":"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"}
@@ -67,8 +67,18 @@ export declare const suggestion: ({ id, count, activeIndex, open, ...field }: Su
67
67
  "aria-selected": "true" | "false";
68
68
  "data-preserve-attr": "aria-selected hidden";
69
69
  }[];
70
+ /**
71
+ * Teksten som vises når ingenting passer.
72
+ *
73
+ * Den er skjult så lenge serveren sender noe å velge mellom, og
74
+ * komponenten skjuler og viser den igjen mens brukeren skriver.
75
+ * `data-preserve-attr` må derfor ha `hidden` med: uten den dukket
76
+ * «Ingen treff» opp igjen ved hver patch, også når noe passet.
77
+ */
70
78
  empty: {
71
79
  class: "fs-suggestion__empty";
80
+ hidden: true | undefined;
81
+ "data-preserve-attr": "hidden";
72
82
  };
73
83
  /**
74
84
  * Området som melder antall treff til skjermlesere.
@@ -1 +1 @@
1
- {"version":3,"file":"suggestion.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/suggestion/suggestion.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAA;AAE/B,eAAO,MAAM,gBAAgB,EAAG,eAAwB,CAAA;AACxD,eAAO,MAAM,sBAAsB,EAAG,sBAA+B,CAAA;AACrE,eAAO,MAAM,qBAAqB,EAAG,qBAA8B,CAAA;AACnE,eAAO,MAAM,uBAAuB,EAAG,uBAAgC,CAAA;AACvE,eAAO,MAAM,sBAAsB,EAAG,sBAA+B,CAAA;AACrE,eAAO,MAAM,uBAAuB,EAAG,YAAqB,CAAA;AAE5D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG;IACzD,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAA;IACV,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,4CAMxB,iBAAiB;;;;;;;;;;;;;;;;yBAgBgC,MAAM,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;yBAsBxD,MAAM,GACN,OAAO;;;;;;IAKf;;;;;;;OAOG;;;;;;;;;;;;;;;;CAYN,CAAA"}
1
+ {"version":3,"file":"suggestion.d.ts","sourceRoot":"","sources":["../../../../src/components/ramme/suggestion/suggestion.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAA;AAE/B,eAAO,MAAM,gBAAgB,EAAG,eAAwB,CAAA;AACxD,eAAO,MAAM,sBAAsB,EAAG,sBAA+B,CAAA;AACrE,eAAO,MAAM,qBAAqB,EAAG,qBAA8B,CAAA;AACnE,eAAO,MAAM,uBAAuB,EAAG,uBAAgC,CAAA;AACvE,eAAO,MAAM,sBAAsB,EAAG,sBAA+B,CAAA;AACrE,eAAO,MAAM,uBAAuB,EAAG,YAAqB,CAAA;AAE5D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG;IACzD,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAA;IACV,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,4CAMxB,iBAAiB;;;;;;;;;;;;;;;;yBAgBgC,MAAM,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;yBAsBxD,MAAM,GACN,OAAO;;;IAIf;;;;;;;OAOG;;;;;;IAMH;;;;;;;OAOG;;;;;;;;;;;;;;;;CAYN,CAAA"}
@@ -55,7 +55,19 @@ export const suggestion = ({ id, count = 0, activeIndex = -1, open = false, ...f
55
55
  "aria-selected": (index === activeIndex ? "true" : "false"),
56
56
  "data-preserve-attr": "aria-selected hidden",
57
57
  })),
58
- empty: { class: SUGGESTION_EMPTY_CLASS },
58
+ /**
59
+ * Teksten som vises når ingenting passer.
60
+ *
61
+ * Den er skjult så lenge serveren sender noe å velge mellom, og
62
+ * komponenten skjuler og viser den igjen mens brukeren skriver.
63
+ * `data-preserve-attr` må derfor ha `hidden` med: uten den dukket
64
+ * «Ingen treff» opp igjen ved hver patch, også når noe passet.
65
+ */
66
+ empty: attributes({
67
+ class: SUGGESTION_EMPTY_CLASS,
68
+ hidden: count > 0 ? true : undefined,
69
+ "data-preserve-attr": "hidden",
70
+ }),
59
71
  /**
60
72
  * Området som melder antall treff til skjermlesere.
61
73
  *
@@ -1 +1 @@
1
- {"version":3,"file":"suggestion.js","sourceRoot":"","sources":["../../../../src/components/ramme/suggestion/suggestion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suggestion.js","sourceRoot":"","sources":["../../../../src/components/ramme/suggestion/suggestion.ts"],"names":[],"mappings":"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"}
package/dist/dom.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2BH;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;AAErE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAwB5E"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6BH;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;AAErE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAwB5E"}
package/dist/dom.js CHANGED
@@ -17,6 +17,8 @@ const SYSTEM_ATTRIBUTES = [
17
17
  "data-variant",
18
18
  "data-state",
19
19
  "data-color",
20
+ "data-size",
21
+ "data-picker",
20
22
  "data-required",
21
23
  "data-optional",
22
24
  "aria-invalid",
package/dist/dom.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG;IACxB,MAAM;IACN,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,eAAe;IACf,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,UAAU;IACV,UAAU;IACV,QAAQ;IACR,QAAQ;CACA,CAAA;AAEV,kEAAkE;AAClE,MAAM,eAAe,GAAG,MAAM,CAAA;AAY9B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,UAAsB;IACpE,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAA;IAEjC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAC9C,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAC1C,CAAA;QACD,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;aACxE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,uEAAuE;IACvE,6CAA6C;IAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,IAAI,KAAK,OAAO;YAAE,SAAQ;QAC9B,IAAK,iBAAuC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAQ;QACrE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK;YAAE,SAAQ;QACpD,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACzD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,OAAgB,EAChB,IAAY,EACZ,KAAmC;IAEnC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAC3C,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACzD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG;IACxB,MAAM;IACN,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,aAAa;IACb,eAAe;IACf,eAAe;IACf,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,UAAU;IACV,UAAU;IACV,QAAQ;IACR,QAAQ;CACA,CAAA;AAEV,kEAAkE;AAClE,MAAM,eAAe,GAAG,MAAM,CAAA;AAY9B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,UAAsB;IACpE,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAA;IAEjC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAC9C,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAC1C,CAAA;QACD,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;aACxE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,uEAAuE;IACvE,6CAA6C;IAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,IAAI,KAAK,OAAO;YAAE,SAAQ;QAC9B,IAAK,iBAAuC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAQ;QACrE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK;YAAE,SAAQ;QACpD,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACzD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,OAAgB,EAChB,IAAY,EACZ,KAAmC;IAEnC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAC3C,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACzD,CAAC;AACH,CAAC"}
package/dist/fs.d.ts CHANGED
@@ -158,9 +158,11 @@ export declare const fs: {
158
158
  states: readonly ["default", "invalid", "success"];
159
159
  isState: (value: string) => value is "default" | "success" | "invalid";
160
160
  };
161
- readonly select: (({ state }?: import("./index.js").SelectOptions) => import("./index.js").SelectAttributes) & {
161
+ readonly select: (({ state, picker, }?: import("./index.js").SelectOptions) => import("./index.js").SelectAttributes) & {
162
162
  states: readonly ["default", "invalid", "success"];
163
163
  isState: (value: string) => value is "default" | "success" | "invalid";
164
+ pickers: readonly ["auto", "styled"];
165
+ isPicker: (value: string) => value is "auto" | "styled";
164
166
  };
165
167
  /**
166
168
  * Varselet om at innlogget økt går ut. Nedtellingen er klientens klokke,
@@ -225,6 +227,8 @@ export declare const fs: {
225
227
  }[];
226
228
  empty: {
227
229
  class: "fs-suggestion__empty";
230
+ hidden: true | undefined;
231
+ "data-preserve-attr": "hidden";
228
232
  };
229
233
  status: {
230
234
  class: "fs-sr-only";
package/dist/fs.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AA4CA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASb;;;OAGG;;;;;;;;;;;;;;;IAKH;;;OAGG;;IAEH;;;;;;;;;;;;;;OAcG;;IAEH,yEAAyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYzE;;;OAGG;;;;;;;;;;;;;;;;IAKH;;;OAGG;;;;;;;;;;;IAKH,6DAA6D;;IAE7D;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH,qEAAqE;;;;IAErE;;;OAGG;;IAEH;;;OAGG;;;;;;;;;;;;;;;;;;;;;IAQH;;;;;OAKG;;IAGH,qEAAqE;;;IAGrE,8CAA8C;;;CAGtC,CAAA;AAEV,MAAM,MAAM,EAAE,GAAG,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AA4CA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASb;;;OAGG;;;;;;;;;;;;;;;IAKH;;;OAGG;;IAEH;;;;;;;;;;;;;;OAcG;;IAEH,yEAAyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYzE;;;OAGG;;;;;;;;;;;;;;;;;;IAKH;;;OAGG;;;;;;;;;;;IAKH,6DAA6D;;IAE7D;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH,qEAAqE;;;;IAErE;;;OAGG;;IAEH;;;OAGG;;;;;;;;;;;;;;;;;;;;;IAQH;;;;;OAKG;;IAGH,qEAAqE;;;IAGrE,8CAA8C;;;CAGtC,CAAA;AAEV,MAAM,MAAM,EAAE,GAAG,OAAO,EAAE,CAAA"}
package/dist/index.d.ts CHANGED
@@ -44,8 +44,8 @@ export type { RadioAttributes, RadioOptions, } from "./components/css/radio/radi
44
44
  export { radio } from "./components/css/radio/radio.js";
45
45
  export type { SearchAttributes, SearchOptions, } from "./components/css/search/search.js";
46
46
  export { search } from "./components/css/search/search.js";
47
- export type { SelectAttributes, SelectOptions, } from "./components/css/select/select.js";
48
- export { select } from "./components/css/select/select.js";
47
+ export type { NonDefaultSelectPicker, SelectAttributes, SelectOptions, SelectPicker, } from "./components/css/select/select.js";
48
+ export { isSelectPicker, select, selectPickers, } from "./components/css/select/select.js";
49
49
  export * from "./components/css/shared.js";
50
50
  export type { SkeletonAttributes, SkeletonOptions, SkeletonVariant, } from "./components/css/skeleton/skeleton.js";
51
51
  export { skeleton } from "./components/css/skeleton/skeleton.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ export { pagination } from "./components/css/pagination/pagination.js";
21
21
  export { paragraph } from "./components/css/paragraph/paragraph.js";
22
22
  export { radio } from "./components/css/radio/radio.js";
23
23
  export { search } from "./components/css/search/search.js";
24
- export { select } from "./components/css/select/select.js";
24
+ export { isSelectPicker, select, selectPickers, } from "./components/css/select/select.js";
25
25
  export * from "./components/css/shared.js";
26
26
  export { skeleton } from "./components/css/skeleton/skeleton.js";
27
27
  export { skipLink } from "./components/css/skip-link/skip-link.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAMnE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAOvD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAM1D,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAA;AAMzE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAM1D,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAKpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAM1D,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAM7D,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAOrE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAA;AAKxE,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AAMxE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAM7D,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAA;AAMlE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAKvD,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAMpD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAA;AAOtE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAKnE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAKvD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAK1D,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,cAAc,4BAA4B,CAAA;AAM1C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAA;AAMlE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAK5D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAMjE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAMvD,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AAKjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAC7D,cAAc,kEAAkE,CAAA;AAChF,cAAc,qEAAqE,CAAA;AACnF,cAAc,iEAAiE,CAAA;AAC/E,cAAc,8DAA8D,CAAA;AAC5E,cAAc,6CAA6C,CAAA;AAC3D,cAAc,0CAA0C,CAAA;AACxD,cAAc,mDAAmD,CAAA;AACjE,cAAc,sDAAsD,CAAA;AACpE,cAAc,wCAAwC,CAAA;AACtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,0CAA0C,CAAA;AACxD,cAAc,uCAAuC,CAAA;AACrD,cAAc,gDAAgD,CAAA;AAC9D,cAAc,6CAA6C,CAAA;AAC3D,cAAc,oCAAoC,CAAA;AAClD,cAAc,iCAAiC,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAMnE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAOvD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAM1D,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAA;AAMzE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAM1D,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAKpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAM1D,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAM7D,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAOrE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAA;AAKxE,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AAMxE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAM7D,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAA;AAMlE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAKvD,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAMpD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAA;AAOtE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAKnE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAKvD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAO1D,OAAO,EACL,cAAc,EACd,MAAM,EACN,aAAa,GACd,MAAM,mCAAmC,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAM1C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAA;AAMlE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAK5D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAMjE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAMvD,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AAKjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAC7D,cAAc,kEAAkE,CAAA;AAChF,cAAc,qEAAqE,CAAA;AACnF,cAAc,iEAAiE,CAAA;AAC/E,cAAc,8DAA8D,CAAA;AAC5E,cAAc,6CAA6C,CAAA;AAC3D,cAAc,0CAA0C,CAAA;AACxD,cAAc,mDAAmD,CAAA;AACjE,cAAc,sDAAsD,CAAA;AACpE,cAAc,wCAAwC,CAAA;AACtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,0CAA0C,CAAA;AACxD,cAAc,uCAAuC,CAAA;AACrD,cAAc,gDAAgD,CAAA;AAC9D,cAAc,6CAA6C,CAAA;AAC3D,cAAc,oCAAoC,CAAA;AAClD,cAAc,iCAAiC,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,cAAc,oBAAoB,CAAA"}
package/dist/react.d.ts CHANGED
@@ -137,9 +137,11 @@ export declare const fs: {
137
137
  states: readonly ["default", "invalid", "success"];
138
138
  isState: (value: string) => value is "default" | "success" | "invalid";
139
139
  };
140
- readonly select: ((options?: import("./index.js").SelectOptions | undefined) => ReactAttributes<import("./index.js").SelectAttributes>) & (({ state }?: import("./index.js").SelectOptions) => import("./index.js").SelectAttributes) & {
140
+ readonly select: ((options?: import("./index.js").SelectOptions | undefined) => ReactAttributes<import("./index.js").SelectAttributes>) & (({ state, picker, }?: import("./index.js").SelectOptions) => import("./index.js").SelectAttributes) & {
141
141
  states: readonly ["default", "invalid", "success"];
142
142
  isState: (value: string) => value is "default" | "success" | "invalid";
143
+ pickers: readonly ["auto", "styled"];
144
+ isPicker: (value: string) => value is "auto" | "styled";
143
145
  };
144
146
  readonly skeleton: ((options?: import("./index.js").SkeletonOptions | undefined) => ReactAttributes<import("./index.js").SkeletonAttributes>) & (({ variant }?: import("./index.js").SkeletonOptions) => import("./index.js").SkeletonAttributes) & {
145
147
  variants: readonly ["block", "text", "circle"];
@@ -306,6 +308,8 @@ export declare const fs: {
306
308
  }>[];
307
309
  empty: ReactAttributes<{
308
310
  class: "fs-suggestion__empty";
311
+ hidden: true | undefined;
312
+ "data-preserve-attr": "hidden";
309
313
  }>;
310
314
  status: ReactAttributes<{
311
315
  class: "fs-sr-only";
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AA0CA,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAA;AAChF,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,2CAA2C;AAC3C,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,GAC9B,WAAW,GACX,CAAC,SAAS,KAAK,GACb,SAAS,GACT,CAAC,SAAS,UAAU,GAClB,UAAU,GACV,CAAC,SAAS,cAAc,GACtB,cAAc,GACd,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACnB,CAAA;AAqBD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,EAAE,CAAC,GACZ,eAAe,CAAC,CAAC,CAAC,CAMpB;AAgBD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqCb;;;;;OAKG;+BACc,YAAY;;;;;;;;;;8BAlJjB,CAAC;0BACR,CAAA;wBAAyB,CAAC;oBAAwB,CAAC;;;;;;;kBACF,CAAC;;;;IAqJvD;;;;OAIG;sCACqB,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;gCAQvC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;6BAShC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;mCASpB,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAcrC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;CAkBpC,CAAA"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AA0CA,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAA;AAChF,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,2CAA2C;AAC3C,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,GAC9B,WAAW,GACX,CAAC,SAAS,KAAK,GACb,SAAS,GACT,CAAC,SAAS,UAAU,GAClB,UAAU,GACV,CAAC,SAAS,cAAc,GACtB,cAAc,GACd,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACnB,CAAA;AAqBD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,EAAE,CAAC,GACZ,eAAe,CAAC,CAAC,CAAC,CAMpB;AAgBD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqCb;;;;;OAKG;+BACc,YAAY;;;;;;;;;;8BAlJjB,CAAC;0BACR,CAAA;wBAAyB,CAAC;oBAAwB,CAAC;;;;;;;kBACF,CAAC;;;;IAqJvD;;;;OAIG;sCACqB,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;gCAQvC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;6BAShC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;mCASpB,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAcrC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;CAkBpC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fristil/designsystem",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "Rammeverksuavhengig designsystem: tokens, CSS-komponenter og web components.",
5
5
  "license": "MIT",
6
6
  "author": "MarkusAugust",
@@ -7,8 +7,8 @@
7
7
 
8
8
  display: block;
9
9
  width: 100%;
10
- padding: var(--size-2) calc(var(--size-4) + var(--size-2)) var(--size-2)
11
- var(--size-3);
10
+ padding-block: var(--size-2);
11
+ padding-inline: var(--size-3) calc(var(--size-4) + var(--size-2));
12
12
  font-family: inherit;
13
13
  font-size: var(--font-size-m);
14
14
  line-height: 1.5;
@@ -37,6 +37,15 @@
37
37
  background-repeat: no-repeat;
38
38
  }
39
39
 
40
+ /* Pila er to gradienter, og `background-position` har ingen logisk
41
+ variant. Speilvendingen er de samme to bitene, flyttet til venstre kant
42
+ og byttet om: den som lå ytterst ligger nå innerst. */
43
+ .fs-select:dir(rtl) {
44
+ background-position:
45
+ calc(0.75rem - 0.35rem) calc(50% - 0.1rem),
46
+ calc(1rem - 0.35rem) calc(50% - 0.1rem);
47
+ }
48
+
40
49
  .fs-select:hover {
41
50
  border-color: var(--semantic-field-border-hover);
42
51
  }
@@ -83,13 +92,192 @@
83
92
  outline-color: var(--semantic-success-foreground);
84
93
  }
85
94
 
95
+ /*
96
+ * Nedtrekkslista er et vindu fra operativsystemet, og ingen CSS når inn i
97
+ * den. `appearance: base-select` ber nettleseren tegne den inne i siden i
98
+ * stedet: `::picker(select)` blir et vanlig element, og hvert `<option>`
99
+ * kan få systemets egne farger og avstander.
100
+ *
101
+ * Det er valgfritt, og slås på med `data-picker="styled"`. Firefox 150 har
102
+ * det ikke, og der beholder feltet nettleserens egen liste. Det er den
103
+ * samme komponenten med to utseender, ikke noe som går i stykker.
104
+ */
105
+ @supports (appearance: base-select) {
106
+ .fs-select[data-picker="styled"],
107
+ .fs-select[data-picker="styled"]::picker(select) {
108
+ appearance: base-select;
109
+ }
110
+
111
+ /* Knappen tegner nå sin egen pil med `::picker-icon`, så gradientene skal
112
+ bort. Pila tar ekte plass i oppsettet, og plassen vi holdt av til den
113
+ tegnede pila ville da blitt liggende dobbelt. */
114
+ .fs-select[data-picker="styled"] {
115
+ display: flex;
116
+ align-items: center;
117
+ justify-content: space-between;
118
+ gap: var(--size-2);
119
+ background-image: none;
120
+ padding-inline: var(--size-3);
121
+ }
122
+
123
+ /* Teksten i knappen er valget som står nå. Lange valg skal klippes, ikke
124
+ skyve pila ut av feltet. Uten `min-inline-size: 0` krymper den ikke,
125
+ for flex gir den minstebredden til innholdet. */
126
+ /* biome-ignore lint/correctness/noUnknownTypeSelector: <selectedcontent> er
127
+ elementet nettleseren lager for det valgte alternativet i en tilpassbar
128
+ nedtrekksliste. Biome kjenner det ennå ikke. */
129
+ .fs-select[data-picker="styled"] selectedcontent {
130
+ min-inline-size: 0;
131
+ overflow: hidden;
132
+ white-space: nowrap;
133
+ text-overflow: ellipsis;
134
+ }
135
+
136
+ .fs-select[data-picker="styled"]::picker-icon {
137
+ color: var(--semantic-muted-foreground);
138
+ transition: rotate 120ms ease;
139
+ }
140
+
141
+ .fs-select[data-picker="styled"]:open::picker-icon {
142
+ rotate: 180deg;
143
+ }
144
+
145
+ .fs-select[data-picker="styled"]::picker(select) {
146
+ box-sizing: border-box;
147
+ min-inline-size: anchor-size(self-inline);
148
+ /* Lista skal fylle plassen som faktisk er igjen ned til kanten av
149
+ vinduet, ikke strekke seg utenfor den. `stretch` er nettopp den
150
+ plassen, og margen trekkes fra. */
151
+ max-block-size: stretch;
152
+ margin-block: var(--fs-select-viewport-margin, var(--size-2));
153
+ padding: 0;
154
+ overflow-y: auto;
155
+ background: var(--semantic-page-background);
156
+ border: 1px solid var(--semantic-field-border);
157
+ border-radius: var(--fs-select-radius, var(--size-1));
158
+ box-shadow: var(--semantic-shadow-overlay);
159
+ /* Er det ikke plass under feltet, legges lista over det. */
160
+ position-try-fallbacks: flip-block;
161
+ opacity: 0;
162
+ transition:
163
+ opacity 120ms ease,
164
+ overlay 120ms allow-discrete,
165
+ display 120ms allow-discrete;
166
+ }
167
+
168
+ .fs-select[data-picker="styled"]:open::picker(select) {
169
+ opacity: 1;
170
+ }
171
+
172
+ @starting-style {
173
+ .fs-select[data-picker="styled"]:open::picker(select) {
174
+ opacity: 0;
175
+ }
176
+ }
177
+
178
+ /* Høyden kan bare animeres der `calc-size` finnes, siden `auto` ellers
179
+ ikke er en verdi det går an å gå til. Uten støtte står høyden på
180
+ `auto`, og bare gjennomsiktigheten tones. */
181
+ @supports (block-size: calc-size(auto, size)) {
182
+ .fs-select[data-picker="styled"]::picker(select) {
183
+ block-size: 0;
184
+ transition:
185
+ opacity 120ms ease,
186
+ block-size 120ms ease,
187
+ overlay 120ms allow-discrete,
188
+ display 120ms allow-discrete;
189
+ }
190
+
191
+ .fs-select[data-picker="styled"]:open::picker(select) {
192
+ block-size: calc-size(auto, size);
193
+ }
194
+
195
+ @starting-style {
196
+ .fs-select[data-picker="styled"]:open::picker(select) {
197
+ block-size: 0;
198
+ }
199
+ }
200
+ }
201
+
202
+ /* Gruppeoverskriften er ikke et element vi kan treffe når den kommer fra
203
+ `label=`, bare fra `<legend>`. Derfor settes den på gruppa, og arves
204
+ ned: størrelsen og fargen skiller den fra valgene, og `text-indent`
205
+ gir den samme venstrekant som teksten i et valg. Valgene setter de tre
206
+ tilbake til sine egne verdier. */
207
+ .fs-select[data-picker="styled"] optgroup {
208
+ padding-block: var(--size-2) var(--size-1);
209
+ font-size: var(--font-size-s);
210
+ color: var(--semantic-muted-foreground);
211
+ text-indent: var(--size-3);
212
+ }
213
+
214
+ .fs-select[data-picker="styled"] option {
215
+ text-indent: 0;
216
+ display: flex;
217
+ align-items: center;
218
+ gap: var(--size-2);
219
+ padding: var(--fs-select-option-padding, var(--size-2) var(--size-3));
220
+ font-family: inherit;
221
+ font-size: var(--font-size-m);
222
+ line-height: 1.5;
223
+ color: var(--semantic-page-foreground);
224
+ background: var(--semantic-page-background);
225
+ cursor: pointer;
226
+ }
227
+
228
+ /* Haken står etter teksten, ikke foran den, slik at alle valgene får
229
+ teksten på samme sted. */
230
+ .fs-select[data-picker="styled"] option::checkmark {
231
+ order: 1;
232
+ margin-inline-start: auto;
233
+ }
234
+
235
+ .fs-select[data-picker="styled"] option:hover {
236
+ background: var(--semantic-interactive-background);
237
+ }
238
+
239
+ .fs-select[data-picker="styled"] option:checked {
240
+ background: var(--semantic-interactive-main);
241
+ color: var(--semantic-interactive-contrast);
242
+ }
243
+
244
+ /* Fokus vises med en ramme, ikke med en flate. Piltastene flytter fokus
245
+ mellom valgene, og det valgte har allerede sin egen flate. En annen
246
+ bakgrunnsfarge ville derfor forsvunnet nettopp der brukeren står. */
247
+ .fs-select[data-picker="styled"] option:focus {
248
+ outline: 2px solid var(--semantic-interactive-main);
249
+ outline-offset: -2px;
250
+ }
251
+
252
+ .fs-select[data-picker="styled"] option:checked:focus {
253
+ outline-color: var(--semantic-interactive-contrast);
254
+ }
255
+
256
+ .fs-select[data-picker="styled"] option:disabled {
257
+ color: var(--semantic-disabled-foreground);
258
+ background: var(--semantic-disabled-background);
259
+ cursor: not-allowed;
260
+ }
261
+
262
+ @media (prefers-reduced-motion: reduce) {
263
+ .fs-select[data-picker="styled"]::picker(select),
264
+ .fs-select[data-picker="styled"]::picker-icon {
265
+ transition: none;
266
+ }
267
+ }
268
+ }
269
+
86
270
  /* Høykontrast: pilen er to gradienter, og de fjernes i modusen. Da er
87
- nettleserens egen pil bedre enn ingen. */
271
+ nettleserens egen pil bedre enn ingen. Lista som tegnes i siden
272
+ faller tilbake av samme grunn: nettleserens egen liste bruker systemfargene, og de er
273
+ de eneste som er garantert lesbare i modusen. */
88
274
  @media (forced-colors: active) {
89
- .fs-select {
275
+ .fs-select,
276
+ .fs-select[data-picker="styled"] {
277
+ display: block;
90
278
  appearance: auto;
91
279
  background-image: none;
92
- padding-inline-end: var(--size-3);
280
+ padding-inline: var(--size-3);
93
281
  }
94
282
  }
95
283
  }
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  attributes,
3
+ createGuard,
3
4
  type FieldState,
4
5
  fieldStates,
5
6
  isFieldState,
@@ -8,14 +9,29 @@ import {
8
9
 
9
10
  export const SELECT_CLASS = "fs-select" as const
10
11
 
12
+ /**
13
+ * Hvem som tegner nedtrekkslista.
14
+ *
15
+ * `auto` er nettleserens egen liste, et vindu fra operativsystemet som ikke
16
+ * kan styles. `styled` ber nettleseren tegne den inne i siden i stedet, slik
17
+ * at den får designsystemets farger, avstander og skygge.
18
+ */
19
+ export const selectPickers = ["auto", "styled"] as const
20
+ export type SelectPicker = (typeof selectPickers)[number]
21
+ export type NonDefaultSelectPicker = Exclude<SelectPicker, "auto">
22
+ export const isSelectPicker = createGuard(selectPickers)
23
+
11
24
  export type SelectOptions = {
12
25
  /** Valideringstilstand. Standard: `default`. */
13
26
  state?: FieldState
27
+ /** Hvem som tegner nedtrekkslista. Standard: `auto`. */
28
+ picker?: SelectPicker
14
29
  }
15
30
 
16
31
  export type SelectAttributes = {
17
32
  class: typeof SELECT_CLASS
18
33
  "data-state"?: NonDefaultFieldState
34
+ "data-picker"?: NonDefaultSelectPicker
19
35
  "aria-invalid"?: "true"
20
36
  }
21
37
 
@@ -24,17 +40,24 @@ export type SelectAttributes = {
24
40
  *
25
41
  * ```ts
26
42
  * <select {...select({ state: "invalid" })} />
43
+ * <select {...select({ picker: "styled" })} />
27
44
  * ```
28
45
  */
29
46
  export const select = Object.assign(
30
- ({ state = "default" }: SelectOptions = {}): SelectAttributes =>
47
+ ({
48
+ state = "default",
49
+ picker = "auto",
50
+ }: SelectOptions = {}): SelectAttributes =>
31
51
  attributes({
32
52
  class: SELECT_CLASS,
33
53
  "data-state": state === "default" ? undefined : state,
54
+ "data-picker": picker === "auto" ? undefined : picker,
34
55
  "aria-invalid": state === "invalid" ? ("true" as const) : undefined,
35
56
  }),
36
57
  {
37
58
  states: fieldStates,
38
59
  isState: isFieldState,
60
+ pickers: selectPickers,
61
+ isPicker: isSelectPicker,
39
62
  },
40
63
  )
@@ -77,9 +77,19 @@ export class FsErrorSummary extends HTMLElement {
77
77
  this.links.add(link)
78
78
  }
79
79
 
80
- // Boksen er skjult av serveren når lista er tom. Er den synlig nå, og vi
81
- // ikke har flyttet fokus hit ennå, er det denne innsendingen som feilet.
82
- if (this.shouldFocus && !this.hasFocused && !this.hidden) {
80
+ // Skjuler serveren boksen igjen, er den innsendingen over. Uten denne
81
+ // nullstillingen tok boksen fokus bare første gang: mønsteret i en
82
+ // Datastar-app er at lista står med de samme lenkene hele veien og bare
83
+ // `hidden` slås av og på, så «har jeg flyttet fokus hit før» er ikke et
84
+ // svar på om dette er en ny innsending.
85
+ if (this.hidden) {
86
+ this.hasFocused = false
87
+ return
88
+ }
89
+
90
+ // Er boksen synlig nå, og vi ikke har flyttet fokus hit ennå, er det
91
+ // denne innsendingen som feilet.
92
+ if (this.shouldFocus && !this.hasFocused) {
83
93
  this.hasFocused = true
84
94
  this.focus()
85
95
  }
@@ -152,19 +152,28 @@ export function computeFieldAttributes(
152
152
  * lister på de to andre forsvinner klassen og feilmeldingen ved neste
153
153
  * morfing, som er nøyaktig den feilen kontrakten skal hindre.
154
154
  *
155
+ * Hjelpeteksten og feilmeldingen må ha `id` med i lista selv om malen ikke
156
+ * skriver noen. Komponenten lager dem i så fall selv, og `aria-describedby`
157
+ * på kontrollen peker på dem. Forsvinner id-en i en morfing, peker
158
+ * koblingen på noe som ikke finnes, og skjermleseren leser verken
159
+ * hjelpeteksten eller feilen. `for` på ledeteksten er der av samme grunn.
160
+ *
155
161
  * ```html
156
- * <label class="fs-label" for="epost"
157
- * data-preserve-attr="class data-required data-optional aria-disabled">E-post</label>
158
- * <input class="fs-input" id="epost"
162
+ * <label class="fs-label"
163
+ * data-preserve-attr="class for data-required data-optional aria-disabled">E-post</label>
164
+ * <input class="fs-input"
159
165
  * data-preserve-attr="id aria-describedby aria-invalid data-state disabled aria-disabled">
160
- * <p class="fs-error-text" hidden data-preserve-attr="hidden">Skriv en gyldig adresse.</p>
166
+ * <p class="fs-help-text" data-preserve-attr="id">Vi sender aldri spam.</p>
167
+ * <p class="fs-error-text" hidden data-preserve-attr="id hidden">Skriv en gyldig adresse.</p>
161
168
  * ```
162
169
  */
163
170
  export const FIELD_PRESERVED_ATTRIBUTES = {
164
171
  /** På ledeteksten. */
165
- label: "class data-required data-optional aria-disabled",
172
+ label: "class for data-required data-optional aria-disabled",
166
173
  /** På selve kontrollen. */
167
174
  control: "id aria-describedby aria-invalid data-state disabled aria-disabled",
175
+ /** På hjelpeteksten. */
176
+ help: "id",
168
177
  /** På feilmeldingen. */
169
- error: "hidden",
178
+ error: "id hidden",
170
179
  } as const
@@ -38,7 +38,6 @@ export const FS_SUGGESTION_TAG = "fs-suggestion" as const
38
38
  export class FsSuggestion extends HTMLElement {
39
39
  static observedAttributes = ["server-filtered"]
40
40
 
41
- private activeIndex = -1
42
41
  private observer?: MutationObserver
43
42
  private control?: HTMLInputElement
44
43
  /** Alternativene som alt har fått lytteren sin. */
@@ -75,6 +74,22 @@ export class FsSuggestion extends HTMLElement {
75
74
  ]
76
75
  }
77
76
 
77
+ /**
78
+ * Hvilket synlig alternativ som er markert nå.
79
+ *
80
+ * Den leses fra `aria-selected` i markupen, ikke fra en teller inni
81
+ * komponenten. Serveren kan sette markeringen selv med
82
+ * `fs.suggestion({ activeIndex })`, og en parallell teller ville hoppet
83
+ * til toppen av lista ved første piltast i stedet for til alternativet
84
+ * etter. Filtreringen flytter også på alternativene, og da svarer
85
+ * oppslaget riktig av seg selv.
86
+ */
87
+ private get activeIndex(): number {
88
+ return this.visible.findIndex(
89
+ (option) => option.getAttribute("aria-selected") === "true",
90
+ )
91
+ }
92
+
78
93
  /** Alternativene som er synlige nå. */
79
94
  private get visible(): HTMLElement[] {
80
95
  return this.options.filter((option) => !option.hidden)
@@ -120,7 +135,6 @@ export class FsSuggestion extends HTMLElement {
120
135
  this.control.setAttribute("aria-expanded", String(open))
121
136
 
122
137
  if (!open) {
123
- this.activeIndex = -1
124
138
  this.control.removeAttribute("aria-activedescendant")
125
139
  for (const option of this.options) {
126
140
  option.setAttribute("aria-selected", "false")
@@ -166,7 +180,6 @@ export class FsSuggestion extends HTMLElement {
166
180
  if (synlige.length === 0 || !this.control) return
167
181
 
168
182
  const neste = (index + synlige.length) % synlige.length
169
- this.activeIndex = neste
170
183
 
171
184
  for (const option of this.options) {
172
185
  option.setAttribute("aria-selected", "false")
@@ -228,7 +241,17 @@ export class FsSuggestion extends HTMLElement {
228
241
  this.markActive(this.activeIndex + 1)
229
242
  } else if (event.key === "ArrowUp") {
230
243
  event.preventDefault()
231
- this.markActive(this.activeIndex - 1)
244
+ // Lista må åpnes først, som med pil ned. Uten det pekte
245
+ // `aria-activedescendant` på et alternativ i en liste feltet samtidig
246
+ // meldte som lukket, og skjermleseren leste opp noe som ikke sto på
247
+ // skjermen.
248
+ if (!åpen) {
249
+ this.filter()
250
+ this.setOpen(true)
251
+ }
252
+ // Er ingenting markert, går pil opp til det siste. `activeIndex - 1`
253
+ // ville gitt det nest siste, siden ingenting markert er -1.
254
+ this.markActive(this.activeIndex < 0 ? -1 : this.activeIndex - 1)
232
255
  } else if (event.key === "Enter" && åpen && this.activeIndex >= 0) {
233
256
  event.preventDefault()
234
257
  const valgt = this.visible[this.activeIndex]
@@ -82,7 +82,19 @@ export const suggestion = ({
82
82
  "data-preserve-attr": "aria-selected hidden" as const,
83
83
  }),
84
84
  ),
85
- empty: { class: SUGGESTION_EMPTY_CLASS },
85
+ /**
86
+ * Teksten som vises når ingenting passer.
87
+ *
88
+ * Den er skjult så lenge serveren sender noe å velge mellom, og
89
+ * komponenten skjuler og viser den igjen mens brukeren skriver.
90
+ * `data-preserve-attr` må derfor ha `hidden` med: uten den dukket
91
+ * «Ingen treff» opp igjen ved hver patch, også når noe passet.
92
+ */
93
+ empty: attributes({
94
+ class: SUGGESTION_EMPTY_CLASS,
95
+ hidden: count > 0 ? (true as const) : undefined,
96
+ "data-preserve-attr": "hidden" as const,
97
+ }),
86
98
  /**
87
99
  * Området som melder antall treff til skjermlesere.
88
100
  *