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 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(test) finns för att underlätta skapandet av enhetliga, tillgängliga och användbara webbapplikationer.
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 = 'npx scb-wc init <html|html-service|react|react-service|blazor|blazor-service> [mapp]';
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 { ScbMenuItem as re } from "./scb-menu/scb-menu-item.js";
59
- import { ScbmenuSection as ie } from "./scb-menu/scb-menu-section.js";
60
- import { ScbSubmenu as ae } from "./scb-menu/scb-sub-menu.js";
61
- import { ScbMenu as oe } from "./scb-menu/scb-menu.js";
62
- import { ScbSkeleton as se } from "./scb-skeleton/scb-skeleton.js";
63
- import { ScbHeader as ce } from "./scb-header/scb-header.js";
64
- import { ScbKeyFigureCard as le } from "./scb-keyfigure-card/scb-keyfigure-card.js";
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, ce as ScbHeader, $ as ScbHeaderMenuGroup, ee as ScbHeaderMenuItem, te as ScbHeaderTab, ne as ScbHeaderUtility, X as ScbHorizontalScroller, i as ScbIconButton, le as ScbKeyFigureCard, d as ScbLink, j as ScbLinkCard, o as ScbList, M as ScbListCard, a as ScbListItem, oe as ScbMenu, re 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, se as ScbSkeleton, Se as ScbSlider, Ce as ScbSnackbar, N as ScbSocialCard, q as ScbStack, we as ScbStatusPill, Te as ScbStep, Ee as ScbStepper, ae 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, ie 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 };
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 };
@@ -444,7 +444,6 @@ import"../../vendor/vendor-material.js";import{_ as lt,b as dt,g as $,h as a,v a
444
444
  inline-size: 100%;
445
445
  min-inline-size: 0;
446
446
  max-inline-size: 100%;
447
- height: 100%;
448
447
  }
449
448
 
450
449
  :host([type='social']) .scb-card {