@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.
- package/CHANGELOG.md +77 -0
- package/dist/components/css/select/select.d.ts +18 -1
- package/dist/components/css/select/select.d.ts.map +1 -1
- package/dist/components/css/select/select.js +15 -2
- package/dist/components/css/select/select.js.map +1 -1
- package/dist/components/ramme/error-summary/fs-error-summary.d.ts.map +1 -1
- package/dist/components/ramme/error-summary/fs-error-summary.js +12 -3
- package/dist/components/ramme/error-summary/fs-error-summary.js.map +1 -1
- package/dist/components/ramme/field/field-core.d.ts +15 -6
- package/dist/components/ramme/field/field-core.d.ts.map +1 -1
- package/dist/components/ramme/field/field-core.js +15 -6
- package/dist/components/ramme/field/field-core.js.map +1 -1
- package/dist/components/ramme/suggestion/fs-suggestion.d.ts +11 -1
- package/dist/components/ramme/suggestion/fs-suggestion.d.ts.map +1 -1
- package/dist/components/ramme/suggestion/fs-suggestion.js +24 -4
- package/dist/components/ramme/suggestion/fs-suggestion.js.map +1 -1
- package/dist/components/ramme/suggestion/suggestion.d.ts +10 -0
- package/dist/components/ramme/suggestion/suggestion.d.ts.map +1 -1
- package/dist/components/ramme/suggestion/suggestion.js +13 -1
- package/dist/components/ramme/suggestion/suggestion.js.map +1 -1
- package/dist/dom.d.ts.map +1 -1
- package/dist/dom.js +2 -0
- package/dist/dom.js.map +1 -1
- package/dist/fs.d.ts +5 -1
- package/dist/fs.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +5 -1
- package/dist/react.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/css/select/select.css +193 -5
- package/src/components/css/select/select.ts +24 -1
- package/src/components/ramme/error-summary/fs-error-summary.ts +13 -3
- package/src/components/ramme/field/field-core.ts +15 -6
- package/src/components/ramme/suggestion/fs-suggestion.ts +27 -4
- 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,
|
|
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,
|
|
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;
|
|
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
|
-
//
|
|
100
|
-
//
|
|
101
|
-
|
|
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":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAA2B,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,cAAe,SAAQ,WAAW;IAA/C;;QAGU,eAAU,GAAG,KAAK,CAAA;QAET,UAAK,GAAG,IAAI,GAAG,EAAqB,CAAA;
|
|
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"
|
|
93
|
-
* data-preserve-attr="class data-required data-optional aria-disabled">E-post</label>
|
|
94
|
-
* <input class="fs-input"
|
|
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-
|
|
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
|
|
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"
|
|
83
|
-
* data-preserve-attr="class data-required data-optional aria-disabled">E-post</label>
|
|
84
|
-
* <input class="fs-input"
|
|
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-
|
|
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":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAwDhD,IAAI,OAAO,GAAG,CAAC,CAAA;AAEf,mDAAmD;AACnD,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,CAAA;IACZ,OAAO,YAAY,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAsC;IAEtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE;YAAE,SAAQ;QACjB,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,UAAwB,EAAE;IAE1B,MAAM,EACJ,EAAE,GAAG,aAAa,EAAE,EACpB,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,KAAK,EACb,QAAQ,EACR,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,EAAE,EAChB,MAAM,GAAG,GAAG,EAAE,OAAO,EACrB,OAAO,GAAG,GAAG,EAAE,QAAQ,GACxB,GAAG,OAAO,CAAA;IAEX,OAAO;QACL,KAAK,EAAE,UAAU,CAAC;YAChB,KAAK,EAAE,UAAmB;YAC1B,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,QAAQ;YACzB,eAAe,EAAE,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAY,CAAC,CAAC,CAAC,SAAS;YAClE,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,SAAS;SAC1D,CAAC;QACF,OAAO,EAAE,UAAU,CAAC;YAClB,EAAE;YACF,kBAAkB,EAAE,eAAe,CAAC;gBAClC,IAAI,IAAI,MAAM;gBACd,OAAO,IAAI,KAAK,IAAI,OAAO;gBAC3B,GAAG,WAAW;aACf,CAAC;YACF,cAAc,EAAE,OAAO,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,SAAS;YACvD,sEAAsE;YACtE,wEAAwE;YACxE,8DAA8D;YAC9D,YAAY,EAAE,OAAO,CAAC,CAAC,CAAE,SAAmB,CAAC,CAAC,CAAC,SAAS;YACxD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAE,IAAc,CAAC,CAAC,CAAC,SAAS;SACjD,CAAC;QACF,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;QACpB,KAAK,EAAE,UAAU,CAAC;YAChB,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAc;SAC9C,CAAC;QACF,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACvC,CAAA;AACH,CAAC;AAED
|
|
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,
|
|
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
|
-
|
|
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":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAwB,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,YAAa,SAAQ,WAAW;IAA7C;;
|
|
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;;;;;;
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAA;AAE/B,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAwB,CAAA;AACxD,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAA+B,CAAA;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAA8B,CAAA;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,uBAAgC,CAAA;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAA+B,CAAA;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAqB,CAAA;AAa5D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,EAAE,EACF,KAAK,GAAG,CAAC,EACT,WAAW,GAAG,CAAC,CAAC,EAChB,IAAI,GAAG,KAAK,EACZ,GAAG,KAAK,EACU,EAAE,EAAE;IACtB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,CAAA;IAC3B,MAAM,QAAQ,GAAG,GAAG,EAAE,SAAS,CAAA;IAC/B,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,EAAE,CAAA;IAC3D,MAAM,KAAK,GAAG,IAAI,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,GAAG,KAAK,CAAA;IAE7D,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;QACxC,OAAO,EAAE,UAAU,CAAC;YAClB,GAAG,QAAQ,CAAC,OAAO;YACnB,KAAK,EAAE,UAAmB;YAC1B,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE,UAAmB;YACzB,YAAY,EAAE,KAAc;YAC5B,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAqB;YAC9D,eAAe,EAAE,MAAM;YACvB,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC;iBACjE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC;YACZ,mBAAmB,EAAE,MAAe;YACpC,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;YAClE,oBAAoB,EAAE,qCAA8C;SACrE,CAAC;QACF,IAAI,EAAE,UAAU,CAAC;YACf,KAAK,EAAE,qBAAqB;YAC5B,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,SAAkB;YACxB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAc;YAC1C,oBAAoB,EAAE,QAAiB;SACxC,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAClD,UAAU,CAAC;YACT,KAAK,EAAE,uBAAuB;YAC9B,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE,QAAiB;YACvB,eAAe,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAE/C;YACX,oBAAoB,EAAE,sBAA+B;SACtD,CAAC,CACH;QACD,KAAK,EAAE,
|
|
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;
|
|
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
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
|
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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";
|
package/dist/react.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
display: block;
|
|
9
9
|
width: 100%;
|
|
10
|
-
padding: var(--size-2)
|
|
11
|
-
|
|
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
|
|
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
|
-
({
|
|
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
|
-
//
|
|
81
|
-
//
|
|
82
|
-
|
|
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"
|
|
157
|
-
* data-preserve-attr="class data-required data-optional aria-disabled">E-post</label>
|
|
158
|
-
* <input class="fs-input"
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
*
|