scb-wc 0.1.40 → 0.1.42
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 +17 -1
- package/bin/scb-wc.mjs +274 -1
- package/icons.json +178 -0
- package/index.js +8 -8
- package/mvc/components/scb-card/scb-card.js +0 -1
- package/mvc/components/scb-collapse/scb-collapse.js +30 -24
- package/mvc/components/scb-drawer/scb-drawer.js +1 -1
- package/mvc/components/scb-footer/scb-footer.js +1 -0
- package/mvc/components/scb-grid/scb-grid-item.js +4 -1
- package/mvc/components/scb-header/scb-header.js +48 -39
- package/mvc/components/scb-menu/scb-menu-item.js +58 -11
- package/mvc/components/scb-menu/scb-menu.js +4 -4
- package/mvc/components/scb-toc/scb-toc-item.js +3 -21
- package/mvc/scb-wc-core.css +1 -0
- package/mvc/scb-wc-selfhost.css +29 -0
- package/package.json +5 -2
- package/scb-card/scb-card.js +0 -1
- package/scb-collapse/scb-collapse.js +145 -90
- package/scb-components/scb-collapse/scb-collapse.d.ts +0 -2
- package/scb-components/scb-header/scb-header.d.ts +7 -0
- package/scb-components/scb-menu/scb-menu-item.d.ts +5 -0
- package/scb-components/scb-menu/scb-menu.d.ts +24 -0
- package/scb-footer/scb-footer.js +1 -0
- package/scb-grid/scb-grid-item.js +4 -1
- package/scb-header/scb-header.js +73 -40
- package/scb-menu/scb-menu-item.js +94 -28
- package/scb-menu/scb-menu.js +126 -3
- package/scb-toc/scb-toc-item.js +2 -21
- package/scb-wc-core.css +1 -0
- package/scb-wc.bundle.js +245 -199
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> ⚠️ **Previewkanal**
|
|
4
4
|
> Installera `scb-wc` via `@next` för komponenter under utveckling. API, utseende och beteende kan ändras eller tas bort mellan versioner.
|
|
5
5
|
|
|
6
|
-
SCB Web Components
|
|
6
|
+
SCB Web Components preview finns för att underlätta skapandet av enhetliga, tillgängliga och användbara webbapplikationer.
|
|
7
7
|
|
|
8
8
|
Komponenterna bygger på:
|
|
9
9
|
- [Lit](https://lit.dev/)
|
|
@@ -68,6 +68,22 @@ import 'scb-wc/scb-wc-selfhost.css';
|
|
|
68
68
|
|
|
69
69
|
Då används paketets egna fontfiler under `node_modules/scb-wc/fonts/`.
|
|
70
70
|
|
|
71
|
+
### Optimera Material Symbols med eget ikon-subset
|
|
72
|
+
|
|
73
|
+
Vill du selfhosta bara de Material Symbols-ikoner din app använder kan du generera en liten ikonfont i din app:
|
|
74
|
+
|
|
75
|
+
```sh
|
|
76
|
+
npx scb-wc subset-icons --icons ./src/scb-icons.json --out ./public/scb-icons
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Om `--icons` utelämnas används paketets standardlista `icons.json`. Kommandot skapar `scb-wc-icons.css`, en lokal fontfil och en kopia av ikonlistan i målmappen. Ladda då den fontlösa bas-CSS:en plus den genererade ikon-CSS:en:
|
|
80
|
+
|
|
81
|
+
```js
|
|
82
|
+
import 'scb-wc/scb-wc-core.css';
|
|
83
|
+
import '/scb-icons/scb-wc-icons.css';
|
|
84
|
+
import 'scb-wc/scb-typography.css';
|
|
85
|
+
```
|
|
86
|
+
|
|
71
87
|
---
|
|
72
88
|
|
|
73
89
|
## Alternativ 2: Använd i MVC/MPA via `<script type="module">`
|
package/bin/scb-wc.mjs
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import fs from 'node:fs';
|
|
4
|
+
import http from 'node:http';
|
|
5
|
+
import https from 'node:https';
|
|
4
6
|
import path from 'node:path';
|
|
5
7
|
import { fileURLToPath } from 'node:url';
|
|
6
8
|
|
|
@@ -10,7 +12,30 @@ const packageRoot = path.resolve(__dirname, '..');
|
|
|
10
12
|
const packageJson = JSON.parse(fs.readFileSync(path.join(packageRoot, 'package.json'), 'utf8'));
|
|
11
13
|
const starterRoot = path.join(packageRoot, 'starters');
|
|
12
14
|
const templates = new Set(['html', 'html-service', 'react', 'react-service', 'blazor', 'blazor-service']);
|
|
13
|
-
const usage =
|
|
15
|
+
const usage = [
|
|
16
|
+
'npx scb-wc init <html|html-service|react|react-service|blazor|blazor-service> [mapp]',
|
|
17
|
+
'npx scb-wc subset-icons [--icons icons.json] [--out public/scb-icons] [--css-file scb-wc-icons.css]',
|
|
18
|
+
].join('\n');
|
|
19
|
+
|
|
20
|
+
const defaultSubsetOutDir = 'public/scb-icons';
|
|
21
|
+
const defaultSubsetCssFile = 'scb-wc-icons.css';
|
|
22
|
+
const defaultSubsetFontBase = 'material-symbols-outlined-subset';
|
|
23
|
+
const materialSymbolsCssUrl = 'https://fonts.googleapis.com/css2';
|
|
24
|
+
const materialSymbolsFamilyQuery = 'Material Symbols Outlined:opsz,wght,FILL,GRAD@24,400,0,0';
|
|
25
|
+
const requiredIconNames = [
|
|
26
|
+
'arrow_back',
|
|
27
|
+
'arrow_forward',
|
|
28
|
+
'check',
|
|
29
|
+
'chevron_left',
|
|
30
|
+
'chevron_right',
|
|
31
|
+
'close',
|
|
32
|
+
'expand_less',
|
|
33
|
+
'expand_more',
|
|
34
|
+
'keyboard_arrow_down',
|
|
35
|
+
'keyboard_arrow_up',
|
|
36
|
+
'menu',
|
|
37
|
+
'search',
|
|
38
|
+
];
|
|
14
39
|
|
|
15
40
|
function fail(message) {
|
|
16
41
|
console.error(message);
|
|
@@ -66,8 +91,256 @@ function copyStarter(sourceDir, targetDir, targetName) {
|
|
|
66
91
|
}
|
|
67
92
|
}
|
|
68
93
|
|
|
94
|
+
function parseFlags(args) {
|
|
95
|
+
const flags = {};
|
|
96
|
+
|
|
97
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
98
|
+
const arg = args[index];
|
|
99
|
+
|
|
100
|
+
if (!arg.startsWith('--')) {
|
|
101
|
+
fail(`Okänt argument: ${arg}`);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const [rawKey, inlineValue] = arg.slice(2).split(/=(.*)/s, 2);
|
|
105
|
+
const key = rawKey.trim();
|
|
106
|
+
|
|
107
|
+
if (!key) {
|
|
108
|
+
fail(`Ogiltigt argument: ${arg}`);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (key === 'dry-run' || key === 'help') {
|
|
112
|
+
flags[key] = true;
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const value = inlineValue ?? args[index + 1];
|
|
117
|
+
if (!value || value.startsWith('--')) {
|
|
118
|
+
fail(`Saknar värde för --${key}.`);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
flags[key] = value;
|
|
122
|
+
if (inlineValue === undefined) {
|
|
123
|
+
index += 1;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return flags;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function resolveDefaultIconsPath() {
|
|
131
|
+
const candidates = [
|
|
132
|
+
path.join(packageRoot, 'icons.json'),
|
|
133
|
+
path.join(packageRoot, 'scripts', 'icons.json'),
|
|
134
|
+
];
|
|
135
|
+
|
|
136
|
+
return candidates.find((candidate) => fs.existsSync(candidate));
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function readIconList(iconsPath) {
|
|
140
|
+
if (!iconsPath) {
|
|
141
|
+
fail('Saknar standardlista for ikoner.');
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const absolutePath = path.resolve(process.cwd(), iconsPath);
|
|
145
|
+
if (!fs.existsSync(absolutePath)) {
|
|
146
|
+
fail(`Hittar inte ikonfilen: ${absolutePath}`);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
let parsed;
|
|
150
|
+
try {
|
|
151
|
+
parsed = JSON.parse(fs.readFileSync(absolutePath, 'utf8'));
|
|
152
|
+
} catch (error) {
|
|
153
|
+
fail(`Kunde inte lasa ikonfilen ${absolutePath}: ${error.message}`);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const list = Array.isArray(parsed) ? parsed : parsed?.icons;
|
|
157
|
+
if (!Array.isArray(list)) {
|
|
158
|
+
fail('Ikonfilen ska vara en JSON-array eller ett objekt med egenskapen "icons".');
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return list.map((icon) => String(icon ?? '').trim()).filter(Boolean);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function normalizeIconNames(iconNames) {
|
|
165
|
+
const normalized = Array.from(new Set([...requiredIconNames, ...iconNames]))
|
|
166
|
+
.map((icon) => icon.trim())
|
|
167
|
+
.filter(Boolean)
|
|
168
|
+
.sort((a, b) => a.localeCompare(b));
|
|
169
|
+
|
|
170
|
+
const invalid = normalized.filter((icon) => !/^[a-z0-9_]+$/.test(icon));
|
|
171
|
+
if (invalid.length) {
|
|
172
|
+
fail(`Ogiltiga ikon-namn: ${invalid.join(', ')}`);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return normalized;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function buildMaterialSymbolsUrl(iconNames, display) {
|
|
179
|
+
const params = new URLSearchParams({
|
|
180
|
+
family: materialSymbolsFamilyQuery,
|
|
181
|
+
icon_names: iconNames.join(','),
|
|
182
|
+
display,
|
|
183
|
+
});
|
|
184
|
+
return `${materialSymbolsCssUrl}?${params.toString()}`;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
function requestUrl(url, redirects = 5) {
|
|
188
|
+
return new Promise((resolve, reject) => {
|
|
189
|
+
const client = url.startsWith('http:') ? http : https;
|
|
190
|
+
const request = client.get(
|
|
191
|
+
url,
|
|
192
|
+
{
|
|
193
|
+
headers: {
|
|
194
|
+
'User-Agent': `${packageJson.name}/${packageJson.version} subset-icons`,
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
(response) => {
|
|
198
|
+
const statusCode = response.statusCode ?? 0;
|
|
199
|
+
const location = response.headers.location;
|
|
200
|
+
|
|
201
|
+
if ([301, 302, 303, 307, 308].includes(statusCode) && location) {
|
|
202
|
+
response.resume();
|
|
203
|
+
if (redirects <= 0) {
|
|
204
|
+
reject(new Error(`For manga redirects for ${url}`));
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
resolve(requestUrl(new URL(location, url).href, redirects - 1));
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if (statusCode < 200 || statusCode >= 300) {
|
|
212
|
+
response.resume();
|
|
213
|
+
reject(new Error(`HTTP ${statusCode} for ${url}`));
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
const chunks = [];
|
|
218
|
+
response.on('data', (chunk) => chunks.push(Buffer.from(chunk)));
|
|
219
|
+
response.on('end', () => {
|
|
220
|
+
resolve({
|
|
221
|
+
buffer: Buffer.concat(chunks),
|
|
222
|
+
contentType: response.headers['content-type'] ?? '',
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
},
|
|
226
|
+
);
|
|
227
|
+
|
|
228
|
+
request.on('error', reject);
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
async function fetchText(url) {
|
|
233
|
+
const { buffer } = await requestUrl(url);
|
|
234
|
+
return buffer.toString('utf8');
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
async function fetchBuffer(url) {
|
|
238
|
+
const { buffer } = await requestUrl(url);
|
|
239
|
+
return buffer;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function fontExtensionForFormat(format) {
|
|
243
|
+
switch (format) {
|
|
244
|
+
case 'woff2':
|
|
245
|
+
return 'woff2';
|
|
246
|
+
case 'woff':
|
|
247
|
+
return 'woff';
|
|
248
|
+
case 'opentype':
|
|
249
|
+
return 'otf';
|
|
250
|
+
case 'truetype':
|
|
251
|
+
default:
|
|
252
|
+
return 'ttf';
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
function findFontSources(cssText) {
|
|
257
|
+
const matches = Array.from(
|
|
258
|
+
cssText.matchAll(/url\((https:\/\/fonts\.gstatic\.com\/[^)]+)\)\s*format\(['"]([^'"]+)['"]\)/g),
|
|
259
|
+
);
|
|
260
|
+
|
|
261
|
+
return matches.map((match) => ({
|
|
262
|
+
url: match[1],
|
|
263
|
+
format: match[2],
|
|
264
|
+
}));
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
async function writeSubsetFiles({ cssText, iconNames, outDir, cssFile }) {
|
|
268
|
+
const sources = findFontSources(cssText);
|
|
269
|
+
if (!sources.length) {
|
|
270
|
+
fail('Google Fonts-svaret innehöll inga fontfiler att ladda ner.');
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
fs.mkdirSync(outDir, { recursive: true });
|
|
274
|
+
|
|
275
|
+
let localCss = cssText;
|
|
276
|
+
for (const [index, source] of sources.entries()) {
|
|
277
|
+
const ext = fontExtensionForFormat(source.format);
|
|
278
|
+
const suffix = sources.length > 1 ? `-${index + 1}` : '';
|
|
279
|
+
const fileName = `${defaultSubsetFontBase}${suffix}.${ext}`;
|
|
280
|
+
const fontBuffer = await fetchBuffer(source.url);
|
|
281
|
+
fs.writeFileSync(path.join(outDir, fileName), fontBuffer);
|
|
282
|
+
localCss = localCss.split(source.url).join(`./${fileName}`);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
const header = [
|
|
286
|
+
'/* Generated by `npx scb-wc subset-icons`. */',
|
|
287
|
+
`/* Icons: ${iconNames.join(', ')} */`,
|
|
288
|
+
'',
|
|
289
|
+
].join('\n');
|
|
290
|
+
|
|
291
|
+
fs.writeFileSync(path.join(outDir, cssFile), `${header}${localCss.trim()}\n`, 'utf8');
|
|
292
|
+
fs.writeFileSync(path.join(outDir, 'icons.json'), `${JSON.stringify(iconNames, null, 2)}\n`, 'utf8');
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
async function runSubsetIcons(args) {
|
|
296
|
+
const flags = parseFlags(args);
|
|
297
|
+
if (flags.help) {
|
|
298
|
+
console.log(usage);
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
const iconsPath = flags.icons ?? resolveDefaultIconsPath();
|
|
303
|
+
const outDir = path.resolve(process.cwd(), flags.out ?? defaultSubsetOutDir);
|
|
304
|
+
const cssFile = flags['css-file'] ?? defaultSubsetCssFile;
|
|
305
|
+
const display = flags.display ?? 'swap';
|
|
306
|
+
|
|
307
|
+
if (!/^[a-z0-9._-]+\.css$/i.test(cssFile)) {
|
|
308
|
+
fail('--css-file måste vara ett css-filnamn, till exempel scb-wc-icons.css.');
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (!['auto', 'block', 'swap', 'fallback', 'optional'].includes(display)) {
|
|
312
|
+
fail('--display måste vara auto, block, swap, fallback eller optional.');
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
const iconNames = normalizeIconNames(readIconList(iconsPath));
|
|
316
|
+
const cssUrl = buildMaterialSymbolsUrl(iconNames, display);
|
|
317
|
+
|
|
318
|
+
if (flags['dry-run']) {
|
|
319
|
+
console.log(`Skulle skapa Material Symbols-subset med ${iconNames.length} ikoner.`);
|
|
320
|
+
console.log(`Källa: ${path.resolve(process.cwd(), iconsPath)}`);
|
|
321
|
+
console.log(`Mål: ${outDir}`);
|
|
322
|
+
console.log(`CSS: ${cssFile}`);
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
const cssText = await fetchText(cssUrl);
|
|
327
|
+
await writeSubsetFiles({ cssText, iconNames, outDir, cssFile });
|
|
328
|
+
console.log(`Skapade ikon-subset med ${iconNames.length} ikoner i ${outDir}`);
|
|
329
|
+
console.log(`Ladda CSS-filen: ${path.join(outDir, cssFile)}`);
|
|
330
|
+
}
|
|
331
|
+
|
|
69
332
|
const [, , command, template, targetArg] = process.argv;
|
|
70
333
|
|
|
334
|
+
if (!command || command === '--help' || command === 'help') {
|
|
335
|
+
console.log(usage);
|
|
336
|
+
process.exit(0);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
if (command === 'subset-icons') {
|
|
340
|
+
await runSubsetIcons(process.argv.slice(3));
|
|
341
|
+
process.exit(0);
|
|
342
|
+
}
|
|
343
|
+
|
|
71
344
|
if (command !== 'init') {
|
|
72
345
|
fail('Okänt kommando.');
|
|
73
346
|
}
|
package/icons.json
ADDED
|
@@ -0,0 +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
|
+
]
|
package/index.js
CHANGED
|
@@ -55,13 +55,13 @@ import { ScbHeaderMenuGroup as $ } from "./scb-header/scb-header-menu-group.js";
|
|
|
55
55
|
import { ScbHeaderMenuItem as ee } from "./scb-header/scb-header-menu-item.js";
|
|
56
56
|
import { ScbHeaderTab as te } from "./scb-header/scb-header-tab.js";
|
|
57
57
|
import { ScbHeaderUtility as ne } from "./scb-header/scb-header-utility.js";
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
60
|
-
import {
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
63
|
-
import {
|
|
64
|
-
import {
|
|
58
|
+
import { ScbSkeleton as re } from "./scb-skeleton/scb-skeleton.js";
|
|
59
|
+
import { ScbHeader as ie } from "./scb-header/scb-header.js";
|
|
60
|
+
import { ScbKeyFigureCard as ae } from "./scb-keyfigure-card/scb-keyfigure-card.js";
|
|
61
|
+
import { ScbMenuItem as oe } from "./scb-menu/scb-menu-item.js";
|
|
62
|
+
import { ScbmenuSection as se } from "./scb-menu/scb-menu-section.js";
|
|
63
|
+
import { ScbSubmenu as ce } from "./scb-menu/scb-sub-menu.js";
|
|
64
|
+
import { ScbMenu as le } from "./scb-menu/scb-menu.js";
|
|
65
65
|
import { ScbNavItem as ue } from "./scb-nav/scb-nav-item.js";
|
|
66
66
|
import { ScbNav as de } from "./scb-nav/scb-nav.js";
|
|
67
67
|
import { ScbNotificationCard as fe } from "./scb-notification-card/scb-notification-card.js";
|
|
@@ -92,4 +92,4 @@ import { appendScbVizSeriesDifferentiationPatternMarks as Ye, getScbVizSeriesDif
|
|
|
92
92
|
import { clearScbVizSeriesDifferentiationColorClass as tt, clearScbVizSeriesDifferentiationMetadata as nt, ensureScbVizGroupedSeriesDifferentiationStore as rt, ensureScbVizStyledModeSeriesPattern as it, getScbVizGroupedSeriesDifferentiationKey as at, getScbVizGroupedSeriesDifferentiationVariant as ot, getScbVizGroupedSeriesDifferentiationVariantIndex as st, getScbVizHighchartsColorClassName as ct, getScbVizHighchartsSvgElement as lt, getScbVizHighchartsSvgRoot as ut, getScbVizLegendSeriesDifferentiationTargets as dt, getScbVizSeriesDifferentiationColorIndex as ft, getScbVizSeriesDifferentiationVariantByIndex as pt, isScbVizGroupedSeriesDifferentiationChart as mt, isScbVizHighchartsStyledMode as ht, setScbVizSeriesDifferentiationColorClass as gt, setScbVizSeriesDifferentiationMetadata as _t, shouldShowScbVizSeriesDifferentiationAction as vt, usesScbVizGroupedPointDifferentiation as yt } from "./scb-viz/scb-viz-series-differentiation-runtime.js";
|
|
93
93
|
import { buildScbVizResolvedTableView as bt, createScbVizCsvRows as xt, inferScbVizTableAlignments as St, normalizeScbVizRenderableCell as Ct, readScbVizTableDataFromSlot as wt } from "./scb-viz/scb-viz-table-runtime.js";
|
|
94
94
|
import { ScbViz as Tt } from "./scb-viz/scb-viz.js";
|
|
95
|
-
export { p as SCBBreadcrumb, f as SCBBreadcrumbItem, r as ScbAccordion, t as ScbAccordionItem, O as ScbActionCard, l as ScbAppBar, c as ScbAvatar, u as ScbBadge, n as ScbButton, T as ScbCalendar, E as ScbCalendarCard, m as ScbCalendarEvent, k as ScbCard, y as ScbCheckbox, v as ScbCheckboxGroup, e as ScbChevron, C as ScbChip, P as ScbCollapse, A as ScbContainerCard, F as ScbCookiesConsent, g as ScbDatepicker, w as ScbDialog, h as ScbDivider, I as ScbDrawer, L as ScbDropZone, V as ScbDropdown, H as ScbFab, W as ScbFactCard, U as ScbFactCardContent, Y as ScbFooter, G as ScbFooterSection, Q as ScbGalleryGrid, J as ScbGrid, K as ScbGridItem,
|
|
95
|
+
export { p as SCBBreadcrumb, f as SCBBreadcrumbItem, r as ScbAccordion, t as ScbAccordionItem, O as ScbActionCard, l as ScbAppBar, c as ScbAvatar, u as ScbBadge, n as ScbButton, T as ScbCalendar, E as ScbCalendarCard, m as ScbCalendarEvent, k as ScbCard, y as ScbCheckbox, v as ScbCheckboxGroup, e as ScbChevron, C as ScbChip, P as ScbCollapse, A as ScbContainerCard, F as ScbCookiesConsent, g as ScbDatepicker, w as ScbDialog, h as ScbDivider, I as ScbDrawer, L as ScbDropZone, V as ScbDropdown, H as ScbFab, W as ScbFactCard, U as ScbFactCardContent, Y as ScbFooter, G as ScbFooterSection, Q as ScbGalleryGrid, J as ScbGrid, K as ScbGridItem, ie as ScbHeader, $ as ScbHeaderMenuGroup, ee as ScbHeaderMenuItem, te as ScbHeaderTab, ne as ScbHeaderUtility, X as ScbHorizontalScroller, i as ScbIconButton, ae as ScbKeyFigureCard, d as ScbLink, j as ScbLinkCard, o as ScbList, M as ScbListCard, a as ScbListItem, le as ScbMenu, oe as ScbMenuItem, de as ScbNav, ue as ScbNavItem, fe as ScbNotificationCard, B as ScbOptionsMenu, R as ScbOptionsMenuItem, z as ScbOptionsSubMenu, Z as ScbOverlay, pe as ScbPagination, ke as ScbPrimaryTab, me as ScbProgressIndicator, he as ScbProgressStep, ge as ScbProgressStepper, x as ScbRadioButton, b as ScbRadioGroup, _e as ScbScrollspy, s as ScbSearch, Ae as ScbSecondaryTab, ye as ScbSegmentedButton, ve as ScbSegmentedItem, xe as ScbSelect, be as ScbSelectOption, re as ScbSkeleton, Se as ScbSlider, Ce as ScbSnackbar, N as ScbSocialCard, q as ScbStack, we as ScbStatusPill, Te as ScbStep, Ee as ScbStepper, ce as ScbSubmenu, S as ScbSwitch, De as ScbTable, Oe as ScbTableAdvanced, je as ScbTabs, _ as ScbTextField, Ne as ScbToc, Me as ScbTocItem, D as ScbTooltip, Tt as ScbViz, se as ScbmenuSection, Ye as appendScbVizSeriesDifferentiationPatternMarks, Pe as buildScbVizExportFileName, Ke as buildScbVizPrintDocumentHtml, qe as buildScbVizPrintableFooterHtml, Je as buildScbVizPrintableTableHtml, bt as buildScbVizResolvedTableView, tt as clearScbVizSeriesDifferentiationColorClass, nt as clearScbVizSeriesDifferentiationMetadata, Fe as createScbVizCsvBlob, xt as createScbVizCsvRows, Ie as createScbVizRasterBlobFromElement, Le as createScbVizRasterDataUrlFromElement, Re as downloadScbVizBlob, rt as ensureScbVizGroupedSeriesDifferentiationStore, it as ensureScbVizStyledModeSeriesPattern, ze as getScbVizCurrentFullscreenElement, Be as getScbVizExportBaseFileName, Ve as getScbVizFullscreenDocument, at as getScbVizGroupedSeriesDifferentiationKey, ot as getScbVizGroupedSeriesDifferentiationVariant, st as getScbVizGroupedSeriesDifferentiationVariantIndex, ct as getScbVizHighchartsColorClassName, lt as getScbVizHighchartsSvgElement, ut as getScbVizHighchartsSvgRoot, dt as getScbVizLegendSeriesDifferentiationTargets, ft as getScbVizSeriesDifferentiationColorIndex, Xe as getScbVizSeriesDifferentiationPatternDefinition, Ze as getScbVizSeriesDifferentiationPatternKinds, Qe as getScbVizSeriesDifferentiationRegistry, $e as getScbVizSeriesDifferentiationVariant, pt as getScbVizSeriesDifferentiationVariantByIndex, St as inferScbVizTableAlignments, He as isScbVizFullscreenSupported, mt as isScbVizGroupedSeriesDifferentiationChart, ht as isScbVizHighchartsStyledMode, Ct as normalizeScbVizRenderableCell, Ue as openScbVizPrintFrame, wt as readScbVizTableDataFromSlot, We as runWithScbVizForcedPrintLightMode, et as scbVizSeriesDifferentiationRegistry, gt as setScbVizSeriesDifferentiationColorClass, _t as setScbVizSeriesDifferentiationMetadata, vt as shouldShowScbVizSeriesDifferentiationAction, Ge as toggleScbVizFullscreen, yt as usesScbVizGroupedPointDifferentiation };
|