nve-designsystem 0.1.11 → 0.1.13

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 (77) hide show
  1. package/README.md +41 -16
  2. package/dist/components/nve-alert/nve-alert.component.d.ts +15 -0
  3. package/dist/components/nve-button/nve-button.component.d.ts +21 -0
  4. package/dist/components/nve-checkbox/nve-checkbox.component.d.ts +15 -0
  5. package/dist/components/nve-checkbox-group/nve-checkbox-group.component.d.ts +43 -0
  6. package/dist/components/nve-dialog/nve-dialog.component.d.ts +45 -0
  7. package/dist/components/nve-divider/nve-divider.component.d.ts +14 -0
  8. package/dist/components/nve-dropdown/nve-dropdown.component.d.ts +18 -0
  9. package/dist/components/nve-icon/nve-icon.component.d.ts +19 -0
  10. package/dist/components/nve-input/nve-input.component.d.ts +27 -0
  11. package/dist/components/nve-label/nve-label.component.d.ts +38 -0
  12. package/dist/components/nve-menu/nve-menu.component.d.ts +10 -0
  13. package/dist/components/nve-menu-item/nve-menu-item.component.d.ts +39 -0
  14. package/dist/components/nve-radio/nve-radio.component.d.ts +16 -0
  15. package/dist/components/nve-radio-button/nve-radio-button.component.d.ts +10 -0
  16. package/dist/components/nve-radio-group/nve-radio-group.component.d.ts +35 -0
  17. package/dist/components/nve-spinner/nve-spinner.component.d.ts +14 -0
  18. package/dist/components/nve-tooltip/nve-tooltip.component.d.ts +13 -0
  19. package/dist/css/nve.css +363 -0
  20. package/dist/css/nve_dark.css +104 -0
  21. package/dist/css/varsom.css +410 -0
  22. package/dist/css/varsom_dark.css +104 -0
  23. package/dist/index.d.ts +13 -0
  24. package/dist/nve-designsystem.js +18461 -0
  25. package/dist/nve-designsystem.umd.cjs +7626 -0
  26. package/dist/vite.svg +1 -0
  27. package/index.html +2 -5
  28. package/package.json +14 -6
  29. package/scripts/build.js +29 -0
  30. package/scripts/nextTask.js +20 -0
  31. package/scripts/prepublish.js +40 -0
  32. package/src/components/nve-alert/{nve-alert.ts → nve-alert.component.ts} +5 -3
  33. package/src/components/nve-button/{nve-button.ts → nve-button.component.ts} +1 -1
  34. package/src/components/nve-checkbox/{nve-checkbox.ts → nve-checkbox.component.ts} +1 -1
  35. package/src/components/nve-checkbox-group/{nve-checkbox-group.ts → nve-checkbox-group.component.ts} +2 -2
  36. package/src/components/nve-dialog/nve-dialog.demo.ts +117 -0
  37. package/src/components/nve-dropdown/{nve-dropdown.ts → nve-dropdown.component.ts} +7 -10
  38. package/src/components/nve-icon/{nve-icon.ts → nve-icon.component.ts} +2 -2
  39. package/src/components/nve-input/{nve-input.ts → nve-input.component.ts} +1 -2
  40. package/src/components/nve-input/{nve-input-demo.ts → nve-input.demo.ts} +162 -162
  41. package/src/components/nve-label/{nve-label.ts → nve-label.component.ts} +12 -18
  42. package/src/components/nve-label/{nve-label-demo.ts → nve-label.demo.ts} +93 -93
  43. package/src/components/nve-menu/{nve-menu.ts → nve-menu.component.ts} +5 -5
  44. package/src/components/nve-menu-item/{nve-menu-item.ts → nve-menu-item.component.ts} +2 -3
  45. package/src/components/nve-radio/nve-radio.component.ts +1 -1
  46. package/src/components/nve-radio-button/nve-radio-button.component.ts +12 -13
  47. package/src/components/nve-radio-group/nve-radio-group.component.ts +3 -3
  48. package/src/components/nve-spinner/{nve-spinner.ts → nve-spinner.component.ts} +1 -1
  49. package/src/components/nve-tooltip/{nve-tooltip.ts → nve-tooltip.component.ts} +2 -2
  50. package/src/components/nve-tooltip/{nve-tooltip-demo.ts → nve-tooltip.demo.ts} +38 -38
  51. package/src/index.ts +15 -0
  52. package/src/main.ts +28 -13
  53. package/src/stories/NveCheckbox.stories.ts +1 -1
  54. package/src/stories/NveCheckboxGroup.stories.ts +2 -2
  55. package/src/stories/NveDialog.stories.ts +71 -57
  56. package/src/stories/NveDropdown.stories.ts +12 -14
  57. package/src/stories/{NveAlert.stories.ts → nve-alert/NveAlert.stories.ts} +6 -9
  58. package/src/stories/nve-button/NveButton.stories.ts +10 -13
  59. package/src/stories/nve-input/NveInput.stories.ts +7 -7
  60. package/src/stories/nve-label/NveLabel.stories.ts +9 -9
  61. package/src/stories/nve-radio/NveRadio.stories.ts +3 -1
  62. package/tsconfig.json +4 -2
  63. package/vite.config.ts +16 -2
  64. package/src/components/index.ts +0 -21
  65. package/src/components/nve-dialog/nve-dialog-demo.ts +0 -91
  66. /package/src/components/nve-alert/{nve-alert-demo.ts → nve-alert.demo.ts} +0 -0
  67. /package/src/components/nve-button/{nve-button-demo.ts → nve-button.demo.ts} +0 -0
  68. /package/src/components/nve-checkbox/{nve-checkbox-demo.ts → nve-checkbox.demo.ts} +0 -0
  69. /package/src/components/nve-checkbox-group/{nve-checkbox-group-demo.ts → nve-checkbox-group.demo.ts} +0 -0
  70. /package/src/components/nve-dialog/{nve-dialog.ts → nve-dialog.component.ts} +0 -0
  71. /package/src/components/nve-divider/{nve-divider.ts → nve-divider.component.ts} +0 -0
  72. /package/src/components/nve-dropdown/{nve-dropdown-demo.ts → nve-dropdown.demo.ts} +0 -0
  73. /package/src/components/nve-menu/{nve-menu-styles.ts → nve-menu.styles.ts} +0 -0
  74. /package/src/components/nve-menu-item/{nve-menu-item-demo.ts → nve-menu-item.demo.ts} +0 -0
  75. /package/src/components/nve-menu-item/{nve-menu-item-styles.ts → nve-menu-item.styles.ts} +0 -0
  76. /package/src/components/nve-radio/{nve-radio-demo.ts → nve-radio.demo.ts} +0 -0
  77. /package/src/stories/{NveAlert.ts → nve-alert/NveAlert.ts} +0 -0
package/README.md CHANGED
@@ -20,29 +20,26 @@ export default defineConfig({
20
20
  plugins: [
21
21
  vue({
22
22
  template: {
23
+ transformAssetUrls,
23
24
  compilerOptions: {
24
25
  isCustomElement: (tag) => tag.includes('nve-'),
25
26
  },
26
27
  },
27
28
  }),
29
+ ],
30
+ });
28
31
  ```
29
32
 
30
- 3. Importer stiler fra global.css i enten main.ts eller index.html:
31
-
32
- ```
33
- import 'nve-designsystem/src/styles/global.css';
34
- ```
35
-
36
- 4. I tillegg trenger du å importere en .css-fil for farge-tema i main.ts. Filene finnes i mappa `nve-designsystem/build/css/`. For NVE-tema, bruk:
33
+ 3. I tillegg trenger du å importere en .css-fil for farge-tema i main.ts. Filene finnes i mappa `nve-designsystem/build/css/`. For NVE-tema, bruk:
37
34
 
38
35
  ```ts
39
- import 'nve-designsystem/build/css/nve.css';
36
+ import 'nve-designsystem/dist/css/nve.css';
40
37
  ```
41
38
 
42
39
  For Varsom-tema, bruk:
43
40
 
44
41
  ```ts
45
- import 'nve-designsystem/build/css/varsom.css';
42
+ import 'nve-designsystem/dist/css/varsom.css';
46
43
  ```
47
44
 
48
45
  Du har også mulighet til å velge enten lyst eller mørkt tema. Lyst er standard.
@@ -54,7 +51,7 @@ Du har også mulighet til å velge enten lyst eller mørkt tema. Lyst er standar
54
51
  <nve-button variant="primary" size="small" @click="send">Button</nve-button>
55
52
  </template>
56
53
  <script setup lang="ts">
57
- import { NveButton } from 'nve-designsystem/src/components/nve-button/nve-button';
54
+ import { NveButton } from 'nve-designsystem';
58
55
  </script>
59
56
  ```
60
57
 
@@ -73,6 +70,28 @@ De fleste komponentene bygger på [Shoelace](https://shoelace.style/), men er ti
73
70
  Prosjektet importerer Shoelace sin npm-pakke. Kjør `npm run dev` for utvikling.
74
71
  For å teste en komponent i main.ts må man huske å legge til script tag med komponenten i index.html fila som f.eks. <script type="module" src="/src/nve-button.ts"></script>
75
72
 
73
+ ### **Mappe struktur**
74
+
75
+ Ved å lage en ny komponent opprett en mappe under src/components med komponent navn. Fil som inneholder selve komponent burde ha
76
+
77
+ - .component.ts suffiks på fil sin inneholder selve komponent f.eks. /components/nve-component/nve-component.component
78
+ - .styles.ts på filer med styling f.eks. /components/nve-component/nve-component.styles.ts
79
+ - .demo.ts på filer som skal demonstrere komponent (til utviklere) f.eks. /components/nve-component/nve-component.demo.ts
80
+
81
+ ### **Hvordan vi bygger komponenter**
82
+ Vi setter reflect: true på alle properties i komponenter (se eksempel under) for å kunne se properties som oppdateres i DOMen. Gjelder reaktive applikasjoner.
83
+ ```js
84
+ @property({ reflect: true }) title: string = '';
85
+ ```
86
+
87
+ ### **Komponent eksport**
88
+
89
+ Komponenter skal eksponeres i src/index.ts fila med
90
+
91
+ ```js
92
+ export { default as NveComponent } from './components/nve-component/nve-component.component';
93
+ ```
94
+
76
95
  ### **Styling**
77
96
 
78
97
  Når vi styler shoelace-komponenter kan vi enten overskrive Shoelace sine css-klasser eller bruke parts i shadow-DOM.
@@ -139,12 +158,6 @@ Pull requests på komponenter skal godkjennes av designere. Derfor har vi satt o
139
158
 
140
159
  Det er maks 10 apper som kan kjøres samtidig, så hvis det er flere enn 10 PR'er kan det være at appen ikke bygges. De skal slettes automatisk når en PR lukkes, men det er ikke alltid dette virker. I slike tilfeller må vi slette appene manuelt i Azure-portalen. Appene ligger i denne ressursgruppa: TEST-Designsystemet-RG.
141
160
 
142
- ### **Storybook**
143
-
144
- For å kjøre Storybook lokalt, kjør `npm run storybook`
145
-
146
- For å publisere Storybook på Chromatic, kjør `npm run build; npm run build-storybook`. Deretter må det kjøres en kommando med project token fra Chromatic: `npx chromatic --project-token=\<project-token\>`
147
-
148
161
  ### Dokumentasjon
149
162
 
150
163
  - Vi dokumenterer på norsk
@@ -165,6 +178,18 @@ For å publisere på npm, må man oppdatere versjonsnr. i package.json og packag
165
178
  Prosjektet importerer Shoelace sin npm-pakke. Kjør `npm run dev` for utvikling.
166
179
  For å teste en komponent i main.ts må man huske å legge til script tag med komponenten i index.html fila som f.eks. <script type="module" src="/src/nve-button.ts"></script>
167
180
 
181
+ ### **Test pakke lokalt**
182
+
183
+ Før man pusher til main er det lurt å teste pakke lokalt. Med `npm run pack` kan man teste hvordan pakken oppfører seg akkurat på samme måte som etter publisering. For å teste en nve-designsystem pakke lokalt:
184
+
185
+ 1. Kjør `npm run build`
186
+ 2. Kjør `npm run pack`. En .tgz fil med pakken navn og versjon burde dukke opp i dist mappe
187
+ 3. Åpen et annet prosjekt hvor du kan teste nve-designsystem pakken
188
+ 4. Kjør `npm i` <nve-designsystem-x.y.z.tgz med full sti>`
189
+ 5. Importer komponent i prosjektet og sjekk om alt fungerer som det burde
190
+
191
+ NB! Vi lager pakken i dist mappe fordi det er enklere å strukturere hvordan pakken skal se ut når man laster den ned. Vi prøvde med `exports` og `files` i package.json men det ga oss ikke result vi var fornøyd med.
192
+
168
193
  ### Storybook
169
194
 
170
195
  For å kjøre Storybook lokalt, kjør `npm run storybook`
@@ -0,0 +1,15 @@
1
+ import { SlAlert } from '@shoelace-style/shoelace';
2
+ export default class NveAlert extends SlAlert {
3
+ constructor();
4
+ title: string;
5
+ text: string;
6
+ emphasized: boolean;
7
+ leftStroke: boolean;
8
+ static styles: import("lit").CSSResultGroup[];
9
+ updated(changedProperties: any): void;
10
+ }
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'nve-alert': NveAlert;
14
+ }
15
+ }
@@ -0,0 +1,21 @@
1
+ import { SlButton } from '@shoelace-style/shoelace';
2
+ /**
3
+ * En Shoelace-knapp i NVE-forkledning.
4
+ * Se https://shoelace.style/components/button
5
+ *
6
+ * For å lage en lenke knapp legg til href på nve-button og den skal automatisk bli gjort om til <a>
7
+ *
8
+ * Vi skal ikke bruke properties:
9
+ * - circle
10
+ * - caret
11
+ * - pill
12
+ */
13
+ export default class NveButton extends SlButton {
14
+ constructor();
15
+ static styles: import("lit").CSSResultGroup[];
16
+ }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ 'nve-button': NveButton;
20
+ }
21
+ }
@@ -0,0 +1,15 @@
1
+ import { SlCheckbox } from '@shoelace-style/shoelace';
2
+ /**
3
+ * foreløpig finnes ikke noe hove
4
+ */
5
+ export default class NveCheckbox extends SlCheckbox {
6
+ constructor();
7
+ /** Checks if input is valid */
8
+ invalid: boolean;
9
+ static styles: import("lit").CSSResultGroup[];
10
+ }
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'nve-checkbox': NveCheckbox;
14
+ }
15
+ }
@@ -0,0 +1,43 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * Representerer en tilpasset sjekboksgruppekomponent.
4
+ * Denne komponenten burde brukes kun med <nve-checkbox> komponent. isValid property endrer fargene på alle
5
+ * <nve-checkbox> komponenter som er wrappet i <nve-checkbox-group>
6
+ * @slot default - innholder alle nve-checkbox komponenter for global style styring og validering
7
+ * */
8
+ export default class NveCheckboxGroup extends LitElement {
9
+ constructor();
10
+ /**
11
+ * Bestemmer om sjekkboksgruppe er valid. Hvis ikke alle sjekkbokser i gruppe blir markert som feil
12
+ */
13
+ invalid: boolean;
14
+ /**
15
+ * Disable eller enable gruppa
16
+ */
17
+ disabled: boolean;
18
+ /**
19
+ * Viser label til en gruppe
20
+ */
21
+ label?: string;
22
+ /**
23
+ * Viser i ikone og tooltip tekst ved siden av label. Skal ikke fungere uten label
24
+ */
25
+ tooltip?: string;
26
+ /**
27
+ * Om gruppen skal rendres horisontalt eller vertikalt
28
+ */
29
+ orientation: 'horizontal' | 'vertical';
30
+ /**
31
+ * Viser feil melding under gruppen
32
+ */
33
+ errorMessage?: string;
34
+ slot: any;
35
+ static styles: import("lit").CSSResult[];
36
+ updated(changedProperties: any): void;
37
+ render(): import("lit-html").TemplateResult<1>;
38
+ }
39
+ declare global {
40
+ interface HTMLElementTagNameMap {
41
+ 'nve-checkbox-group': NveCheckboxGroup;
42
+ }
43
+ }
@@ -0,0 +1,45 @@
1
+ import { SlDialog } from '@shoelace-style/shoelace';
2
+ /**
3
+ * En sl-dialog i NVE-forkledning.
4
+ * Mer info: https://shoelace.style/components/dialog
5
+ *
6
+ * Vil du ha ikon foran tittelen kan du angi navnet på ikonet som attributt "icon".
7
+ * Skal det ikke være mulig å trykke utenfor for å lukke dialogen, sett på disableDialog attributt
8
+ *
9
+ * @slot label - teksten som skal vises i overskriften. Eller du kan bruke label-attributtet
10
+ * @slot body - hovedinnholdet
11
+ * @slot footer - feltet i bunden hvor knappene er plassert
12
+ *
13
+ */
14
+ export declare class NveDialog extends SlDialog {
15
+ /**
16
+ * Ikonet som skal vises
17
+ */
18
+ icon: string;
19
+ /**
20
+ * Hvis disableBacground er true, kan man ikke trykke utenfor dialogen for å lukke den.
21
+ */
22
+ disableBackground: boolean;
23
+ constructor();
24
+ /**
25
+ *
26
+ * Stjålet fra shoelace eksempel. Hindrer at man lukker dialogen ved å trykke utenfor
27
+ */
28
+ handleRequestClose(event: any): void;
29
+ updated(changedProperties: any): void;
30
+ /**
31
+ * Oppdaterer ikonet som vises i dialogens tittel.
32
+ * Metoden søker først etter tittel-elementet i komponentens skygge-DOM.
33
+ * Hvis tittel-elementet finnes og `icon`-egenskapen er satt, oppdateres
34
+ * tittel-elementets stil for å inkludere det angitte ikonet.
35
+ * Hvis `icon`-egenskapen ikke er satt, settes ikoninnholdet til 'none'
36
+ * for å unngå å skape unødvendig mellomrom i layouten.
37
+ */
38
+ updateIcon(): void;
39
+ static styles: import("lit").CSSResultGroup[];
40
+ }
41
+ declare global {
42
+ interface HTMLElementTagNameMap {
43
+ 'nve-dialog': NveDialog;
44
+ }
45
+ }
@@ -0,0 +1,14 @@
1
+ import { SlDivider } from '@shoelace-style/shoelace';
2
+ /**
3
+ * En Shoelace-divider i NVE-forkledning.
4
+ * Se https://shoelace.style/components/divider
5
+ */
6
+ export declare class NveDivider extends SlDivider {
7
+ constructor();
8
+ static styles: import("lit").CSSResultGroup[];
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'nve-divider': NveDivider;
13
+ }
14
+ }
@@ -0,0 +1,18 @@
1
+ import { SlDropdown } from '@shoelace-style/shoelace';
2
+ import { NveMenu } from '../nve-menu/nve-menu.component';
3
+ /**
4
+ * En Shoelace-dropdown i NVE-forkledning.
5
+ * Se https://shoelace.style/components/dropdown
6
+ */
7
+ export default class NveDropdown extends SlDropdown {
8
+ constructor();
9
+ static styles: import("lit").CSSResultGroup[];
10
+ getMenu(): NveMenu | undefined;
11
+ updateAccessibleTrigger(): void;
12
+ private handlePanelSelect;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'nve-dropdown': NveDropdown;
17
+ }
18
+ }
@@ -0,0 +1,19 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * Et ikon.
4
+ * Vi bruker ikoner fra Material Symbols.
5
+ * @see https://fonts.google.com/icons
6
+ */
7
+ export default class NveIcon extends LitElement {
8
+ /**
9
+ * Navnet på ikonet i Material Symbols-biblioteket
10
+ */
11
+ name: string;
12
+ static styles: import("lit").CSSResult;
13
+ render(): import("lit-html").TemplateResult<1>;
14
+ }
15
+ declare global {
16
+ interface HTMLElementTagNameMap {
17
+ 'nve-icon': NveIcon;
18
+ }
19
+ }
@@ -0,0 +1,27 @@
1
+ import { SlInput } from '@shoelace-style/shoelace';
2
+ /**
3
+ * En sl-input i NVE-forkledning.
4
+ * Mer info: https://shoelace.style/components/input
5
+ *
6
+ * Vil du ha info-ikon med hjelpetekst etter ledeteksten, putt en nve-label i label-slot.
7
+ *
8
+ * Disse attributtene skal ikke brukes:
9
+ * - pill
10
+ *
11
+ * TODO: Utropstegn-ikon ved valideringsfeil
12
+ * TODO: Vise valideringsfeil med rød tekst under tekstfeltet
13
+ */
14
+ export default class NveInput extends SlInput {
15
+ /**
16
+ * Tekst som vises for å markere at et felt er obligatorisk. Er satt til "*Obligatorisk" som standard.
17
+ */
18
+ requiredLabel: string;
19
+ constructor();
20
+ static styles: import("lit").CSSResultGroup[];
21
+ updated(changedProperties: Map<string, unknown>): void;
22
+ }
23
+ declare global {
24
+ interface HTMLElementTagNameMap {
25
+ 'nve-input': NveInput;
26
+ }
27
+ }
@@ -0,0 +1,38 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * Ledetekst med valgfritt verktøy-hint (og tilhørende info-ikon)
4
+ *
5
+ * @slot (default) - teksten som skal vises. Eller du kan bruke value-attributtet
6
+ * @slot tooltip - innhold i denne blir vist som en tooltip hvis man svever over info-ikonet
7
+ *
8
+ * TODO: Skal være litt mer plass mellom tekst og info-ikon
9
+ * TODO: Hvis du angir både value og innhold i slot, er det value som vises. Det bør være motsatt.
10
+ */
11
+ export default class NveLabel extends LitElement {
12
+ private readonly hasSlotController;
13
+ /**
14
+ * Teksten som skal vises
15
+ */
16
+ value: string;
17
+ /**
18
+ * Størrelse
19
+ */
20
+ size: 'x-small' | 'small' | 'medium' | 'large';
21
+ /**
22
+ * Sett denne hvis du vil ha litt lettere skriftvekt
23
+ */
24
+ light: boolean;
25
+ /**
26
+ * Denne teksten blir vist som et verktøyhint hvis man svever over info-ikonet
27
+ */
28
+ tooltip?: string;
29
+ static styles: import("lit").CSSResult[];
30
+ private renderInfoIconWithTooltip;
31
+ private renderValueProperty;
32
+ render(): import("lit-html").TemplateResult<1>;
33
+ }
34
+ declare global {
35
+ interface HTMLElementTagNameMap {
36
+ 'nve-label': NveLabel;
37
+ }
38
+ }
@@ -0,0 +1,10 @@
1
+ import { SlMenu } from '@shoelace-style/shoelace';
2
+ export declare class NveMenu extends SlMenu {
3
+ constructor();
4
+ static styles: import("lit").CSSResultGroup[];
5
+ }
6
+ declare global {
7
+ interface HTMLElementTagNameMap {
8
+ 'nve-menu': NveMenu;
9
+ }
10
+ }
@@ -0,0 +1,39 @@
1
+ import { SlMenuItem } from '@shoelace-style/shoelace';
2
+ /**
3
+ * En sl-menu-item i NVE-forkledning.
4
+ * Mer info: https://shoelace.style/components/menu-item
5
+ *
6
+ */
7
+ export declare class NveMenuItem extends SlMenuItem {
8
+ /**
9
+ * Tekst som vises som subtext(undertekst).
10
+ */
11
+ subtext: string;
12
+ /**
13
+ * Setter en divider på toppen av item.
14
+ */
15
+ dividerTop: boolean;
16
+ /**
17
+ * Setter en divider på bunnen av item.
18
+ */
19
+ dividerBottom: boolean;
20
+ /**
21
+ * Gjør at teksten blir indent og mindre dominant farge
22
+ */
23
+ indent: boolean;
24
+ /**
25
+ * Gjør at teksten vises som en unclickable kategori
26
+ */
27
+ category: boolean;
28
+ constructor();
29
+ /**
30
+ * Sørger for at subtext blir satt på, hvis den er tilstede i properties
31
+ */
32
+ updated(changedProperties: any): void;
33
+ static styles: import("lit").CSSResultGroup[];
34
+ }
35
+ declare global {
36
+ interface HTMLElementTagNameMap {
37
+ 'nve-menu-item': NveMenuItem;
38
+ }
39
+ }
@@ -0,0 +1,16 @@
1
+ import { SlRadio } from '@shoelace-style/shoelace';
2
+ /**
3
+ * Representerer en tilpasset radio-komponent som utvider SlRadio-klassen og styler den i nve-drakt.
4
+ *
5
+ * @extends SlRadio
6
+ *
7
+ */
8
+ export default class NveRadio extends SlRadio {
9
+ constructor();
10
+ static styles: import("lit").CSSResultGroup[];
11
+ }
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'nve-radio': NveRadio;
15
+ }
16
+ }
@@ -0,0 +1,10 @@
1
+ import { SlRadioButton } from '@shoelace-style/shoelace';
2
+ export default class NveRadioButton extends SlRadioButton {
3
+ constructor();
4
+ static styles: import("lit").CSSResultGroup[];
5
+ }
6
+ declare global {
7
+ interface HTMLElementTagNameMap {
8
+ 'nve-radio-button': NveRadioButton;
9
+ }
10
+ }
@@ -0,0 +1,35 @@
1
+ import { SlRadioGroup } from '@shoelace-style/shoelace';
2
+ /**
3
+ * Representerer en tilpasset radiogruppekomponent som utvider SlRadioGroup-klassen.
4
+ * Denne komponenten tillater bruk av nve-radio og nve-radio-button elementer inne i <nve-radio-group></nve-radio-group>
5
+ * ved å overstyre noen private metoder i SlRadioGroup.
6
+ *
7
+ * @extends SlRadioGroup
8
+ *
9
+ * @dependency NveRadioButton, NveRadio
10
+ *
11
+ * @property {string} orientation = horizontal eller vertical - Om radio-gruppen skal rendres horisontalt
12
+ * @property {boolean} disabled = disable eller enable gruppen med radio-knapper
13
+ *
14
+ * @slot Standard slot hvor `<nve-radio>` eller `<nve-radio-button>` plasseres
15
+ *
16
+ * @example <nve-radio-group horizontal value="1"><nve-radio value="1">Value 1 (checked)</nve-radio></nve-radio-group>
17
+ * @example <nve-radio-group vertical value="1"><nve-radio value="1">Value 1 (checked)</nve-radio></nve-radio-group>
18
+ *
19
+ */
20
+ export default class NveRadioGroup extends SlRadioGroup {
21
+ constructor();
22
+ orientation: 'horizontal' | 'vertical';
23
+ disabled: boolean;
24
+ handlePropChange(oldValue: any, newValue: any): boolean;
25
+ static styles: import("lit").CSSResultGroup[];
26
+ private getAllRadios;
27
+ private handleRadioClick;
28
+ private syncRadioElements;
29
+ private syncRadios;
30
+ }
31
+ declare global {
32
+ interface HTMLElementTagNameMap {
33
+ 'nve-radio-group': NveRadioGroup;
34
+ }
35
+ }
@@ -0,0 +1,14 @@
1
+ import { SlSpinner } from '@shoelace-style/shoelace';
2
+ /**
3
+ * En Shoelace-spinner i NVE-forkledning.
4
+ * Se https://shoelace.style/components/spinner
5
+ */
6
+ export default class NveSpinner extends SlSpinner {
7
+ constructor();
8
+ static styles: import("lit").CSSResultGroup[];
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'nve-spinner': NveSpinner;
13
+ }
14
+ }
@@ -0,0 +1,13 @@
1
+ import { SlTooltip } from '@shoelace-style/shoelace';
2
+ /**
3
+ * En sl-tooltip i NVE-uniform. TODO: Denne har ingen NVE-styling ennå.
4
+ */
5
+ export default class NveTooltip extends SlTooltip {
6
+ constructor();
7
+ static styles: import("lit").CSSResultGroup[];
8
+ }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'nve-tooltip': NveTooltip;
12
+ }
13
+ }