scb-wc 0.1.44 → 0.1.45

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/README.md CHANGED
@@ -1,6 +1,9 @@
1
- # Om SCB Web Components
1
+ # Om SCB Web Components Preview
2
2
 
3
- SCB Web Components finns för att underlätta skapandet av enhetliga, tillgängliga och användbara webbapplikationer.
3
+ > ⚠️ **Previewkanal**
4
+ > Installera `scb-wc` via `@next` för komponenter under utveckling. API, utseende och beteende kan ändras eller tas bort mellan versioner.
5
+
6
+ SCB Web Components preview finns för att underlätta skapandet av enhetliga, tillgängliga och användbara webbapplikationer.
4
7
 
5
8
  Komponenterna bygger på:
6
9
  - [Lit](https://lit.dev/)
@@ -8,54 +11,32 @@ Komponenterna bygger på:
8
11
 
9
12
  ## Storybook och dokumentation (internt)
10
13
 
11
- Produktionskomponenterna dokumenteras och demonstreras i Storybook på SCB:s interna adress:
14
+ Previewkomponenterna dokumenteras och demonstreras i Storybook på SCB:s interna testadress:
12
15
 
13
- - Prod: https://webcomponents.scb.intra
16
+ - Test: <https://webcomponentstest.scb.intra>
14
17
 
15
- Testkomponenterna finns på:
18
+ Den publika/stabila Storybooken finns på:
16
19
 
17
- - Test: https://webcomponentstest.scb.intra
20
+ - Prod: <https://webcomponents.scb.intra>
18
21
 
19
22
  ---
20
23
 
21
24
  ## Kom igång
22
25
 
23
- Rekommenderad startväg:
24
-
25
- ```sh
26
- npx scb-wc init html my-app
27
- npx scb-wc init html-service my-service
28
- npx scb-wc init react my-react-app
29
- npx scb-wc init react-service my-react-service
30
- npx scb-wc init blazor my-blazor-app
31
- npx scb-wc init blazor-service my-blazor-service
32
- ```
33
-
34
- Webbplatsmallarna skapar en liten starterapp med:
35
- - `scb-header`
36
- - `scb-footer`
37
- - `scb-grid`
38
- - några vanliga komponenter
39
-
40
- Webbtjänstmallarna skapar en starterapp med:
41
- - `scb-app-bar`
42
- - `scb-search`
43
- - `scb-table-advanced`
44
- - komponenter för actions och status
45
-
46
- Välj sedan den starter som ligger närmast din app och kör `npm install` i den nya mappen.
26
+ > **Obs:** Kör alla kommandon i mappen där din `package.json` ligger.
27
+ > Har du ingen? Kör `npm init -y` i projektroten (eller annan lämplig mapp).
47
28
 
48
- Om du redan har en app med `package.json`, kör kommandon i den mappen och installera paketet:
29
+ Installera previewkanalen:
49
30
 
50
31
  ```sh
51
- npm install scb-wc
32
+ npm install scb-wc@next
52
33
  ```
53
34
 
54
35
  ---
55
36
 
56
37
  ## Alternativ 1: Använd som ES‑moduler (t.ex. i React, Vue, SPA)
57
38
 
58
- Importera CSS och de komponenter du använder (bäst för tree‑shaking):
39
+ Importera CSS och de testkomponenter du använder (bäst för tree‑shaking):
59
40
 
60
41
  ```js
61
42
  // Global CSS + tokens (måste bara importeras en gång)
@@ -107,7 +88,7 @@ import 'scb-wc/scb-typography.css';
107
88
 
108
89
  ## Alternativ 2: Använd i MVC/MPA via `<script type="module">`
109
90
 
110
- Det här läget använder den färdig‑splittrade **MVC‑ESM**‑builden som följer med paketet under:
91
+ Det här läget använder den färdig‑splittade **MVC‑ESM**‑builden som följer med paketet under:
111
92
 
112
93
  ```text
113
94
  node_modules/scb-wc/mvc/
@@ -120,7 +101,7 @@ Lägg till i din apps `package.json`:
120
101
  ```jsonc
121
102
  {
122
103
  "scripts": {
123
- "ui:install": "node -e \"const fs=require('fs'),p=require('path');const src=p.resolve('node_modules/scb-wc/mvc');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc?');process.exit(1);}const start=process.env.INIT_CWD||process.cwd();const ov=process.env.npm_config_ui_wwwroot;function findBase(){if(ov){return p.isAbsolute(ov)?ov:p.resolve(start,ov);}let d=start;while(true){const cand=p.join(d,'wwwroot');if(fs.existsSync(cand)) return cand;const up=p.dirname(d);if(up===d) return p.resolve(start,'wwwroot');d=up;}}const base=findBase();const dst=p.resolve(base,'ui');fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(base,{recursive:true});fs.cpSync(src,dst,{recursive:true});console.log('Kopierade '+src+' → '+dst);\""
104
+ "ui:install": "node -e \"const fs=require('fs'),p=require('path');const src=p.resolve('node_modules/scb-wc/mvc');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc@next?');process.exit(1);}const start=process.env.INIT_CWD||process.cwd();const ov=process.env.npm_config_ui_wwwroot;function findBase(){if(ov){return p.isAbsolute(ov)?ov:p.resolve(start,ov);}let d=start;while(true){const cand=p.join(d,'wwwroot');if(fs.existsSync(cand)) return cand;const up=p.dirname(d);if(up===d) return p.resolve(start,'wwwroot');d=up;}}const base=findBase();const dst=p.resolve(base,'ui');fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(base,{recursive:true});fs.cpSync(src,dst,{recursive:true});console.log('Kopierade '+src+' → '+dst);\""
124
105
  }
125
106
  }
126
107
  ```
@@ -167,7 +148,7 @@ Behöver du en annan webbrotsökväg (t.ex. om din `wwwroot` ligger någon annan
167
148
 
168
149
  ## Alternativ 3: Bundlad version (IIFE) för äldre miljöer
169
150
 
170
- Om ESM inte stöds kan du använda den bundlade varianten från paketroten.
151
+ Om ESM inte stöds kan du använda den bundlade test‑varianten från paketroten.
171
152
  Flytta följande tre filer från `node_modules/scb-wc` och använd dem i applikationen:
172
153
 
173
154
  ```text
@@ -190,7 +171,7 @@ node_modules/scb-wc/scb-typography.css
190
171
 
191
172
  SCB Web Components fungerar även i Blazor‑appar när du vill använda samma komponenter i både MVC/MPA och Blazor.
192
173
 
193
- Grundprincipen är:
174
+ Grundprincipen är samma som för `scb-wc`:
194
175
 
195
176
  1. Använd MVC‑ESM‑builden (`node_modules/scb-wc/mvc`) och kopiera den till `wwwroot/ui` med `ui:install`.
196
177
  2. Ladda `scb-blazor-bridge.js` från `wwwroot/ui` i din Blazor‑layout.
@@ -203,8 +184,8 @@ Lägg till ett script som kopierar interop-filen från `node_modules` till ditt
203
184
  ```jsonc
204
185
  {
205
186
  "scripts": {
206
- "ui:install": "node -e \"const fs=require('fs'),p=require('path');const src=p.resolve('node_modules/scb-wc/mvc');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc?');process.exit(1);}const start=process.env.INIT_CWD||process.cwd();const ov=process.env.npm_config_ui_wwwroot;function findBase(){if(ov){return p.isAbsolute(ov)?ov:p.resolve(start,ov);}let d=start;while(true){const cand=p.join(d,'wwwroot');if(fs.existsSync(cand)) return cand;const up=p.dirname(d);if(up===d) return p.resolve(start,'wwwroot');d=up;}}const base=findBase();const dst=p.resolve(base,'ui');fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(base,{recursive:true});fs.cpSync(src,dst,{recursive:true});console.log('Kopierade '+src+' → '+dst);\"",
207
- "ui:blazor:interop": "node -e \"const fs=require('fs'),p=require('path');const start=process.env.INIT_CWD||process.cwd();const src=p.resolve('node_modules/scb-wc/blazor/ScbBlazorInteropBase.cs');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc?');process.exit(1);}const dst=p.resolve(start,'ScbBlazor/ScbBlazorInteropBase.cs');fs.mkdirSync(p.dirname(dst),{recursive:true});fs.copyFileSync(src,dst);console.log('Kopierade '+src+' → '+dst);\""
187
+ "ui:install": "node -e \"const fs=require('fs'),p=require('path');const src=p.resolve('node_modules/scb-wc/mvc');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc@next?');process.exit(1);}const start=process.env.INIT_CWD||process.cwd();const ov=process.env.npm_config_ui_wwwroot;function findBase(){if(ov){return p.isAbsolute(ov)?ov:p.resolve(start,ov);}let d=start;while(true){const cand=p.join(d,'wwwroot');if(fs.existsSync(cand)) return cand;const up=p.dirname(d);if(up===d) return p.resolve(start,'wwwroot');d=up;}}const base=findBase();const dst=p.resolve(base,'ui');fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(base,{recursive:true});fs.cpSync(src,dst,{recursive:true});console.log('Kopierade '+src+' → '+dst);\"",
188
+ "ui:blazor:interop": "node -e \"const fs=require('fs'),p=require('path');const start=process.env.INIT_CWD||process.cwd();const src=p.resolve('node_modules/scb-wc/blazor/ScbBlazorInteropBase.cs');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc@next?');process.exit(1);}const dst=p.resolve(start,'ScbBlazor/ScbBlazorInteropBase.cs');fs.mkdirSync(p.dirname(dst),{recursive:true});fs.copyFileSync(src,dst);console.log('Kopierade '+src+' → '+dst);\""
208
189
  }
209
190
  }
210
191
  ```
@@ -218,13 +199,13 @@ Exempel på layout:
218
199
  <script type="module" src="~/ui/scb-blazor-bridge.js"></script>
219
200
  ```
220
201
 
221
- `ScbBlazorInteropBase` kan återanvändas mellan projekt som använder både `scb-wc@latest` och `scb-wc@next`.
202
+ `ScbBlazorInteropBase` är samma bas‑klass i preview- och public-kanalen. Du kan därför dela samma C#‑fil mellan projekt som använder `scb-wc@next` och `scb-wc@latest`.
222
203
 
223
204
  ---
224
205
 
225
206
  ## Viktigt
226
207
 
227
- - `scb-wc@latest` är produktionskanalen. Använd `scb-wc@next` för komponenter under utveckling och experiment.
208
+ - `scb-wc@next` är **previewkanalen**. Komponenter kan ändras eller tas bort mellan versioner. Använd `scb-wc@latest` i externa produktionsmiljöer.
228
209
  - **Kör kommandon i mappen med din `package.json`.** Placeringen av `package.json` styr standardmål för `ui:install` (rot → `wwwroot/ui`, `ClientApp/` → använd `--ui_wwwroot=../wwwroot`).
229
210
  - **Blanda inte MVC‑ESM och IIFE på samma sida.** Välj en distributionsform per sida/app.
230
211
  - **Blazor:** Se till att `scb-blazor-bridge.js` laddas efter att komponent‑JS:et finns på sidan, och att `ScbBlazorInteropBase` inte dupliceras i flera namespaces i samma lösning.
package/all.js CHANGED
@@ -17,9 +17,11 @@ import './scb-card/scb-list-card.js';
17
17
  import './scb-card/scb-social-card.js';
18
18
  import './scb-checkbox/scb-checkbox-group.js';
19
19
  import './scb-checkbox/scb-checkbox.js';
20
+ import './scb-chevron/scb-chevron.js';
20
21
  import './scb-chip/scb-chip.js';
21
22
  import './scb-collapse/scb-collapse.js';
22
23
  import './scb-cookies-consent/scb-cookies-consent.js';
24
+ import './scb-datepicker/scb-datepicker.js';
23
25
  import './scb-dialog/scb-dialog.js';
24
26
  import './scb-divider/scb-divider.js';
25
27
  import './scb-drawer/scb-drawer.js';
package/icons.json CHANGED
@@ -1,178 +1,178 @@
1
- [
2
- "add",
3
- "remove",
4
- "add_circle",
5
- "remove_circle",
6
- "expand_more",
7
- "expand_less",
8
- "chevron_right",
9
- "chevron_left",
10
- "unfold_more",
11
- "unfold_less",
12
- "info",
13
- "warning",
14
- "menu",
15
- "code",
16
- "more_horiz",
17
- "more_vert",
18
- "check_circle",
19
- "check",
20
- "check_small",
21
- "close",
22
- "border_color",
23
- "error",
24
- "edit",
25
- "edit_square",
26
- "refresh",
27
- "print",
28
- "group",
29
- "person_add",
30
- "person",
31
- "download",
32
- "mobile_arrow_down",
33
- "upload",
34
- "mail",
35
- "calendar_month",
36
- "calendar_today",
37
- "volume_up",
38
- "description",
39
- "folder",
40
- "play_arrow",
41
- "grain",
42
- "check_box",
43
- "help",
44
- "check_box_outline_blank",
45
- "indeterminate_check_box",
46
- "radio_button_checked",
47
- "radio_button_unchecked",
48
- "face",
49
- "male",
50
- "female",
51
- "grid_on",
52
- "label",
53
- "delete",
54
- "pin",
55
- "location_on",
56
- "straighten",
57
- "compare_arrows",
58
- "swap_horiz",
59
- "filter_vintage",
60
- "deceased",
61
- "apartment",
62
- "eco",
63
- "texture",
64
- "table_chart",
65
- "bar_chart",
66
- "bid_landscape",
67
- "show_chart",
68
- "ssid_chart",
69
- "bubble_chart",
70
- "touch_app",
71
- "near_me",
72
- "toggle_off",
73
- "toggle_on",
74
- "cancel",
75
- "book",
76
- "public",
77
- "style",
78
- "restore",
79
- "payment",
80
- "shopping_cart",
81
- "list",
82
- "ballot",
83
- "list_alt",
84
- "view_list",
85
- "format_list_bulleted",
86
- "database",
87
- "database_search",
88
- "data_table",
89
- "share",
90
- "home",
91
- "arrow_back",
92
- "arrow_forward",
93
- "arrow_upward",
94
- "arrow_downward",
95
- "arrow_outward",
96
- "call_made",
97
- "arrow_back_ios",
98
- "arrow_forward_ios",
99
- "favorite",
100
- "filter_list",
101
- "sort",
102
- "view_module",
103
- "hearing",
104
- "event_note",
105
- "image",
106
- "language",
107
- "repeat",
108
- "insert_chart",
109
- "insert_chart_filled",
110
- "leaderboard",
111
- "article",
112
- "reorder",
113
- "subject",
114
- "visibility",
115
- "visibility_off",
116
- "arrow_right",
117
- "arrow_drop_down",
118
- "tune",
119
- "settings",
120
- "manufacturing",
121
- "preview",
122
- "mic",
123
- "laptop_windows",
124
- "mobile",
125
- "tablet",
126
- "table",
127
- "sell",
128
- "shoppingmode",
129
- "lightbulb",
130
- "content_copy",
131
- "colors",
132
- "link",
133
- "format_bold",
134
- "format_color_text",
135
- "format_align_left",
136
- "fiber_manual_record",
137
- "breaking_news",
138
- "release_alert",
139
- "person_play",
140
- "comment",
141
- "mode_comment",
142
- "fullscreen",
143
- "fullscreen_exit",
144
- "filter_alt",
145
- "open_in_new",
146
- "search",
147
- "support",
148
- "location_searching",
149
- "explore",
150
- "assistant_direction",
151
- "mouse",
152
- "thumb_up",
153
- "checklist",
154
- "progress_activity",
155
- "reply",
156
- "percent",
157
- "space_bar",
158
- "graph_7",
159
- "verified",
160
- "deployed_code",
161
- "build",
162
- "code_blocks",
163
- "inventory",
164
- "save",
165
- "data_info_alert",
166
- "auto_stories",
167
- "menu_book",
168
- "book_2",
169
- "import_contacts",
170
- "nature",
171
- "spa",
172
- "contact_support",
173
- "work",
174
- "person_4",
175
- "price_change",
176
- "keyboard_arrow_down",
177
- "keyboard_arrow_up"
178
- ]
1
+ [
2
+ "add",
3
+ "remove",
4
+ "add_circle",
5
+ "remove_circle",
6
+ "expand_more",
7
+ "expand_less",
8
+ "chevron_right",
9
+ "chevron_left",
10
+ "unfold_more",
11
+ "unfold_less",
12
+ "info",
13
+ "warning",
14
+ "menu",
15
+ "code",
16
+ "more_horiz",
17
+ "more_vert",
18
+ "check_circle",
19
+ "check",
20
+ "check_small",
21
+ "close",
22
+ "border_color",
23
+ "error",
24
+ "edit",
25
+ "edit_square",
26
+ "refresh",
27
+ "print",
28
+ "group",
29
+ "person_add",
30
+ "person",
31
+ "download",
32
+ "mobile_arrow_down",
33
+ "upload",
34
+ "mail",
35
+ "calendar_month",
36
+ "calendar_today",
37
+ "volume_up",
38
+ "description",
39
+ "folder",
40
+ "play_arrow",
41
+ "grain",
42
+ "check_box",
43
+ "help",
44
+ "check_box_outline_blank",
45
+ "indeterminate_check_box",
46
+ "radio_button_checked",
47
+ "radio_button_unchecked",
48
+ "face",
49
+ "male",
50
+ "female",
51
+ "grid_on",
52
+ "label",
53
+ "delete",
54
+ "pin",
55
+ "location_on",
56
+ "straighten",
57
+ "compare_arrows",
58
+ "swap_horiz",
59
+ "filter_vintage",
60
+ "deceased",
61
+ "apartment",
62
+ "eco",
63
+ "texture",
64
+ "table_chart",
65
+ "bar_chart",
66
+ "bid_landscape",
67
+ "show_chart",
68
+ "ssid_chart",
69
+ "bubble_chart",
70
+ "touch_app",
71
+ "near_me",
72
+ "toggle_off",
73
+ "toggle_on",
74
+ "cancel",
75
+ "book",
76
+ "public",
77
+ "style",
78
+ "restore",
79
+ "payment",
80
+ "shopping_cart",
81
+ "list",
82
+ "ballot",
83
+ "list_alt",
84
+ "view_list",
85
+ "format_list_bulleted",
86
+ "database",
87
+ "database_search",
88
+ "data_table",
89
+ "share",
90
+ "home",
91
+ "arrow_back",
92
+ "arrow_forward",
93
+ "arrow_upward",
94
+ "arrow_downward",
95
+ "arrow_outward",
96
+ "call_made",
97
+ "arrow_back_ios",
98
+ "arrow_forward_ios",
99
+ "favorite",
100
+ "filter_list",
101
+ "sort",
102
+ "view_module",
103
+ "hearing",
104
+ "event_note",
105
+ "image",
106
+ "language",
107
+ "repeat",
108
+ "insert_chart",
109
+ "insert_chart_filled",
110
+ "leaderboard",
111
+ "article",
112
+ "reorder",
113
+ "subject",
114
+ "visibility",
115
+ "visibility_off",
116
+ "arrow_right",
117
+ "arrow_drop_down",
118
+ "tune",
119
+ "settings",
120
+ "manufacturing",
121
+ "preview",
122
+ "mic",
123
+ "laptop_windows",
124
+ "mobile",
125
+ "tablet",
126
+ "table",
127
+ "sell",
128
+ "shoppingmode",
129
+ "lightbulb",
130
+ "content_copy",
131
+ "colors",
132
+ "link",
133
+ "format_bold",
134
+ "format_color_text",
135
+ "format_align_left",
136
+ "fiber_manual_record",
137
+ "breaking_news",
138
+ "release_alert",
139
+ "person_play",
140
+ "comment",
141
+ "mode_comment",
142
+ "fullscreen",
143
+ "fullscreen_exit",
144
+ "filter_alt",
145
+ "open_in_new",
146
+ "search",
147
+ "support",
148
+ "location_searching",
149
+ "explore",
150
+ "assistant_direction",
151
+ "mouse",
152
+ "thumb_up",
153
+ "checklist",
154
+ "progress_activity",
155
+ "reply",
156
+ "percent",
157
+ "space_bar",
158
+ "graph_7",
159
+ "verified",
160
+ "deployed_code",
161
+ "build",
162
+ "code_blocks",
163
+ "inventory",
164
+ "save",
165
+ "data_info_alert",
166
+ "auto_stories",
167
+ "menu_book",
168
+ "book_2",
169
+ "import_contacts",
170
+ "nature",
171
+ "spa",
172
+ "contact_support",
173
+ "work",
174
+ "person_4",
175
+ "price_change",
176
+ "keyboard_arrow_down",
177
+ "keyboard_arrow_up"
178
+ ]