@dataengineeringformachinelearning/viking-ui 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -5
- package/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +390 -225
- package/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/src/styles/viking-ui-bundle.scss +2 -1
- package/src/styles/viking-ui.scss +1 -1
- package/types/dataengineeringformachinelearning-viking-ui.d.ts +90 -67
- package/viking.manifest.json +146 -97
|
@@ -66,7 +66,14 @@ const VIKING_ICON_PATHS = {
|
|
|
66
66
|
shield: '<path d="M12 3 4.5 6v5c0 5 3 8.5 7.5 10 4.5-1.5 7.5-5 7.5-10V6L12 3z"/>',
|
|
67
67
|
'bar-chart': '<path d="M4 4v16h16M8 16v-5M12 16V8M16 16v-3"/>',
|
|
68
68
|
phone: '<path d="M5 4h4l1.5 4L8 10a12 12 0 0 0 6 6l2-2.5L20 15v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z"/>',
|
|
69
|
+
google: '<path d="M12 11.2v2.4h6.6c-.3 1.5-1.8 4.4-6.6 4.4-4 0-7.2-3.3-7.2-7.3S8 3.4 12 3.4c2.3 0 3.9 1 4.8 1.8l3.2-3.1C17.5.8 14.9 0 12 0 5.4 0 0 5.4 0 12s5.4 12 12 12c6.9 0 11.5-4.8 11.5-11.6 0-.8-.1-1.4-.2-1.9H12z"/>',
|
|
70
|
+
apple: '<path d="M16.365 12.14c.02 2.53 2.21 3.38 2.23 3.39-.02.07-.35 1.21-1.16 2.4-.7 1.02-1.43 2.03-2.58 2.05-1.13.02-1.49-.67-2.78-.67-1.29 0-1.69.65-2.75.69-1.11.04-1.95-1.12-2.66-2.13-1.44-2.08-2.54-5.87-1.07-8.43.73-1.27 2.04-2.08 3.46-2.1 1.08-.02 2.1.72 2.78.72.67 0 2.14-.89 3.61-.76.61.03 2.33.25 3.44 1.88-.09.06-2.05 1.2-2.03 3.55M13.75 3.64c.59-.71 1-1.7.89-2.68-.86.03-1.9.57-2.52 1.28-.55.63-1.03 1.65-.9 2.62.95.07 1.92-.49 2.53-1.22"/>',
|
|
69
71
|
};
|
|
72
|
+
/** Icons rendered with fill instead of stroke (brand marks). */
|
|
73
|
+
const VIKING_FILLED_ICON_NAMES = [
|
|
74
|
+
'google',
|
|
75
|
+
'apple',
|
|
76
|
+
];
|
|
70
77
|
const VIKING_ICON_NAMES = Object.keys(VIKING_ICON_PATHS);
|
|
71
78
|
|
|
72
79
|
/** Registers a component as a ControlValueAccessor. */
|
|
@@ -193,7 +200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
193
200
|
}], propDecorators: { collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }], dragging: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragging", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], resizeStart: [{ type: i0.Output, args: ["resizeStart"] }] } });
|
|
194
201
|
|
|
195
202
|
/**
|
|
196
|
-
* viking-icon — inline SVG icon
|
|
203
|
+
* viking-icon — inline SVG icon.
|
|
197
204
|
* Zero-dependency 24x24 stroke icons from the internal registry.
|
|
198
205
|
*/
|
|
199
206
|
class VikingIcon {
|
|
@@ -204,6 +211,8 @@ class VikingIcon {
|
|
|
204
211
|
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
205
212
|
spin = input(false, /* @ts-ignore */
|
|
206
213
|
...(ngDevMode ? [{ debugName: "spin" }] : /* istanbul ignore next */ []));
|
|
214
|
+
filled = computed(() => VIKING_FILLED_ICON_NAMES.includes(this.name()), /* @ts-ignore */
|
|
215
|
+
...(ngDevMode ? [{ debugName: "filled" }] : /* istanbul ignore next */ []));
|
|
207
216
|
paths = computed(() =>
|
|
208
217
|
// Registry content is a static, trusted constant defined inside this package.
|
|
209
218
|
this.sanitizer.bypassSecurityTrustHtml(VIKING_ICON_PATHS[this.name()] ?? ''), /* @ts-ignore */
|
|
@@ -213,9 +222,9 @@ class VikingIcon {
|
|
|
213
222
|
<svg
|
|
214
223
|
xmlns="http://www.w3.org/2000/svg"
|
|
215
224
|
viewBox="0 0 24 24"
|
|
216
|
-
fill="none"
|
|
217
|
-
stroke="currentColor"
|
|
218
|
-
stroke-width="1.8"
|
|
225
|
+
[attr.fill]="filled() ? 'currentColor' : 'none'"
|
|
226
|
+
[attr.stroke]="filled() ? 'none' : 'currentColor'"
|
|
227
|
+
[attr.stroke-width]="filled() ? null : '1.8'"
|
|
219
228
|
stroke-linecap="round"
|
|
220
229
|
stroke-linejoin="round"
|
|
221
230
|
[style.width.px]="size()"
|
|
@@ -233,9 +242,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
233
242
|
<svg
|
|
234
243
|
xmlns="http://www.w3.org/2000/svg"
|
|
235
244
|
viewBox="0 0 24 24"
|
|
236
|
-
fill="none"
|
|
237
|
-
stroke="currentColor"
|
|
238
|
-
stroke-width="1.8"
|
|
245
|
+
[attr.fill]="filled() ? 'currentColor' : 'none'"
|
|
246
|
+
[attr.stroke]="filled() ? 'none' : 'currentColor'"
|
|
247
|
+
[attr.stroke-width]="filled() ? null : '1.8'"
|
|
239
248
|
stroke-linecap="round"
|
|
240
249
|
stroke-linejoin="round"
|
|
241
250
|
[style.width.px]="size()"
|
|
@@ -253,7 +262,7 @@ const fluxUid = (prefix) => {
|
|
|
253
262
|
};
|
|
254
263
|
|
|
255
264
|
/**
|
|
256
|
-
* viking-accordion — collapsible content panels
|
|
265
|
+
* viking-accordion — collapsible content panels.
|
|
257
266
|
* Set exclusive to allow only one open item at a time.
|
|
258
267
|
*/
|
|
259
268
|
class VikingAccordion {
|
|
@@ -328,9 +337,308 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
328
337
|
`, styles: [":host{display:block}.viking-accordion-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--viking-space-2);width:100%;border:none;background:transparent;color:var(--viking-text);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:700;padding:var(--viking-space-2);cursor:pointer;text-align:left;transition:var(--viking-transition)}.viking-accordion-trigger:hover{background:var(--viking-accent-soft)}.viking-accordion-trigger:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:-3px}.viking-accordion-panel{padding:0 var(--viking-space-2) var(--viking-space-2);color:var(--viking-text-muted);font-family:var(--viking-font-family);font-size:var(--viking-font-size);line-height:1.6}\n"] }]
|
|
329
338
|
}], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: true }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }, { type: i0.Output, args: ["expandedChange"] }] } });
|
|
330
339
|
|
|
340
|
+
/**
|
|
341
|
+
* viking-button — composable button.
|
|
342
|
+
* Variants: outline (default), primary, filled, danger, ghost, subtle.
|
|
343
|
+
*/
|
|
344
|
+
class VikingButton {
|
|
345
|
+
variant = input('outline', /* @ts-ignore */
|
|
346
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
347
|
+
size = input('base', /* @ts-ignore */
|
|
348
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
349
|
+
type = input('button', /* @ts-ignore */
|
|
350
|
+
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
351
|
+
icon = input(null, /* @ts-ignore */
|
|
352
|
+
...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
353
|
+
iconTrailing = input(null, /* @ts-ignore */
|
|
354
|
+
...(ngDevMode ? [{ debugName: "iconTrailing" }] : /* istanbul ignore next */ []));
|
|
355
|
+
disabled = input(false, /* @ts-ignore */
|
|
356
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
357
|
+
loading = input(false, /* @ts-ignore */
|
|
358
|
+
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
359
|
+
square = input(false, /* @ts-ignore */
|
|
360
|
+
...(ngDevMode ? [{ debugName: "square" }] : /* istanbul ignore next */ []));
|
|
361
|
+
/** Stretch button to 100% of container width. */
|
|
362
|
+
fullWidth = input(false, /* @ts-ignore */
|
|
363
|
+
...(ngDevMode ? [{ debugName: "fullWidth" }] : /* istanbul ignore next */ []));
|
|
364
|
+
href = input(null, /* @ts-ignore */
|
|
365
|
+
...(ngDevMode ? [{ debugName: "href" }] : /* istanbul ignore next */ []));
|
|
366
|
+
target = input(null, /* @ts-ignore */
|
|
367
|
+
...(ngDevMode ? [{ debugName: "target" }] : /* istanbul ignore next */ []));
|
|
368
|
+
kbd = input(null, /* @ts-ignore */
|
|
369
|
+
...(ngDevMode ? [{ debugName: "kbd" }] : /* istanbul ignore next */ []));
|
|
370
|
+
/** Accessible name; required for icon-only (square) buttons. */
|
|
371
|
+
label = input('', /* @ts-ignore */
|
|
372
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
373
|
+
pressed = output();
|
|
374
|
+
iconSize = computed(() => (this.size() === 'base' ? 22 : 18), /* @ts-ignore */
|
|
375
|
+
...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
|
|
376
|
+
classes = computed(() => ({
|
|
377
|
+
[`viking-${this.variant()}`]: true,
|
|
378
|
+
[`viking-${this.size()}`]: this.size() !== 'base',
|
|
379
|
+
'viking-square': this.square(),
|
|
380
|
+
}), /* @ts-ignore */
|
|
381
|
+
...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
382
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
383
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: VikingButton, isStandalone: true, selector: "viking-button", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconTrailing: { classPropertyName: "iconTrailing", publicName: "iconTrailing", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, square: { classPropertyName: "square", publicName: "square", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, kbd: { classPropertyName: "kbd", publicName: "kbd", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pressed: "pressed" }, host: { properties: { "style.pointer-events": "disabled() ? 'none' : null", "class.viking-full": "fullWidth()" } }, ngImport: i0, template: `
|
|
384
|
+
@if (href()) {
|
|
385
|
+
<a
|
|
386
|
+
class="viking-btn"
|
|
387
|
+
[class]="classes()"
|
|
388
|
+
[href]="href()"
|
|
389
|
+
[attr.target]="target()"
|
|
390
|
+
[attr.aria-label]="label() || null"
|
|
391
|
+
[attr.rel]="target() === '_blank' ? 'noopener noreferrer' : null"
|
|
392
|
+
>
|
|
393
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
394
|
+
</a>
|
|
395
|
+
} @else {
|
|
396
|
+
<button
|
|
397
|
+
class="viking-btn"
|
|
398
|
+
[class]="classes()"
|
|
399
|
+
[type]="type()"
|
|
400
|
+
[disabled]="disabled() || loading()"
|
|
401
|
+
[attr.aria-label]="label() || null"
|
|
402
|
+
[attr.aria-busy]="loading() ? 'true' : null"
|
|
403
|
+
(click)="pressed.emit($event)"
|
|
404
|
+
>
|
|
405
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
406
|
+
</button>
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
<ng-template #content>
|
|
410
|
+
@if (loading()) {
|
|
411
|
+
<viking-icon name="loader" [size]="iconSize()" [spin]="true" />
|
|
412
|
+
} @else if (icon()) {
|
|
413
|
+
<viking-icon [name]="icon()!" [size]="iconSize()" />
|
|
414
|
+
}
|
|
415
|
+
<span class="viking-btn-label"><ng-content /></span>
|
|
416
|
+
@if (iconTrailing()) {
|
|
417
|
+
<viking-icon [name]="iconTrailing()!" [size]="iconSize()" />
|
|
418
|
+
}
|
|
419
|
+
@if (kbd()) {
|
|
420
|
+
<kbd class="viking-btn-kbd">{{ kbd() }}</kbd>
|
|
421
|
+
}
|
|
422
|
+
</ng-template>
|
|
423
|
+
`, isInline: true, styles: [":host{display:inline-flex}:host(.viking-full){display:flex}:host(.viking-full) .viking-btn{width:100%}.viking-btn{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap}:host(.viking-full) .viking-btn{min-width:0}.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset)}.viking-btn:disabled{opacity:.55;cursor:not-allowed}.viking-sm{min-height:var(--viking-control-height-sm);padding:0 var(--viking-space-2)}.viking-xs{min-height:var(--viking-control-height-xs);padding:0 var(--viking-space-1)}.viking-square{width:var(--viking-control-height);padding:0}.viking-square.viking-sm{width:var(--viking-control-height-sm)}.viking-square.viking-xs{width:var(--viking-control-height-xs)}.viking-square .viking-btn-label{display:none}.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-shadow-sm)}.viking-outline:hover:not(:disabled){background:var(--viking-surface-alt);border-color:var(--viking-accent-strong)}.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:var(--viking-accent);box-shadow:var(--viking-shadow-sm)}.viking-primary:hover:not(:disabled){background:var(--viking-accent-strong);border-color:var(--viking-accent-strong);border-bottom-color:var(--hover-color, #fdca40)}.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border)}.viking-filled:hover:not(:disabled){border-color:var(--viking-accent-strong)}.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger, #31393c);border-color:var(--viking-danger)}.viking-danger:hover:not(:disabled){opacity:.9}.viking-ghost{background:transparent;color:var(--viking-text)}.viking-ghost:hover:not(:disabled){background:var(--viking-accent-soft)}.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border)}.viking-subtle:hover:not(:disabled){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn-kbd{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);color:var(--viking-text-muted);background:var(--viking-surface-alt);border:1px solid var(--viking-border);border-radius:calc(var(--viking-radius) / 2);padding:0 var(--viking-space-1);line-height:1.4}\n"], dependencies: [{ kind: "component", type: VikingIcon, selector: "viking-icon", inputs: ["name", "size", "spin"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
424
|
+
}
|
|
425
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingButton, decorators: [{
|
|
426
|
+
type: Component,
|
|
427
|
+
args: [{ selector: 'viking-button', imports: [VikingIcon, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
428
|
+
'[style.pointer-events]': "disabled() ? 'none' : null",
|
|
429
|
+
'[class.viking-full]': 'fullWidth()',
|
|
430
|
+
}, template: `
|
|
431
|
+
@if (href()) {
|
|
432
|
+
<a
|
|
433
|
+
class="viking-btn"
|
|
434
|
+
[class]="classes()"
|
|
435
|
+
[href]="href()"
|
|
436
|
+
[attr.target]="target()"
|
|
437
|
+
[attr.aria-label]="label() || null"
|
|
438
|
+
[attr.rel]="target() === '_blank' ? 'noopener noreferrer' : null"
|
|
439
|
+
>
|
|
440
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
441
|
+
</a>
|
|
442
|
+
} @else {
|
|
443
|
+
<button
|
|
444
|
+
class="viking-btn"
|
|
445
|
+
[class]="classes()"
|
|
446
|
+
[type]="type()"
|
|
447
|
+
[disabled]="disabled() || loading()"
|
|
448
|
+
[attr.aria-label]="label() || null"
|
|
449
|
+
[attr.aria-busy]="loading() ? 'true' : null"
|
|
450
|
+
(click)="pressed.emit($event)"
|
|
451
|
+
>
|
|
452
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
453
|
+
</button>
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
<ng-template #content>
|
|
457
|
+
@if (loading()) {
|
|
458
|
+
<viking-icon name="loader" [size]="iconSize()" [spin]="true" />
|
|
459
|
+
} @else if (icon()) {
|
|
460
|
+
<viking-icon [name]="icon()!" [size]="iconSize()" />
|
|
461
|
+
}
|
|
462
|
+
<span class="viking-btn-label"><ng-content /></span>
|
|
463
|
+
@if (iconTrailing()) {
|
|
464
|
+
<viking-icon [name]="iconTrailing()!" [size]="iconSize()" />
|
|
465
|
+
}
|
|
466
|
+
@if (kbd()) {
|
|
467
|
+
<kbd class="viking-btn-kbd">{{ kbd() }}</kbd>
|
|
468
|
+
}
|
|
469
|
+
</ng-template>
|
|
470
|
+
`, styles: [":host{display:inline-flex}:host(.viking-full){display:flex}:host(.viking-full) .viking-btn{width:100%}.viking-btn{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap}:host(.viking-full) .viking-btn{min-width:0}.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset)}.viking-btn:disabled{opacity:.55;cursor:not-allowed}.viking-sm{min-height:var(--viking-control-height-sm);padding:0 var(--viking-space-2)}.viking-xs{min-height:var(--viking-control-height-xs);padding:0 var(--viking-space-1)}.viking-square{width:var(--viking-control-height);padding:0}.viking-square.viking-sm{width:var(--viking-control-height-sm)}.viking-square.viking-xs{width:var(--viking-control-height-xs)}.viking-square .viking-btn-label{display:none}.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-shadow-sm)}.viking-outline:hover:not(:disabled){background:var(--viking-surface-alt);border-color:var(--viking-accent-strong)}.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:var(--viking-accent);box-shadow:var(--viking-shadow-sm)}.viking-primary:hover:not(:disabled){background:var(--viking-accent-strong);border-color:var(--viking-accent-strong);border-bottom-color:var(--hover-color, #fdca40)}.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border)}.viking-filled:hover:not(:disabled){border-color:var(--viking-accent-strong)}.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger, #31393c);border-color:var(--viking-danger)}.viking-danger:hover:not(:disabled){opacity:.9}.viking-ghost{background:transparent;color:var(--viking-text)}.viking-ghost:hover:not(:disabled){background:var(--viking-accent-soft)}.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border)}.viking-subtle:hover:not(:disabled){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn-kbd{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);color:var(--viking-text-muted);background:var(--viking-surface-alt);border:1px solid var(--viking-border);border-radius:calc(var(--viking-radius) / 2);padding:0 var(--viking-space-1);line-height:1.4}\n"] }]
|
|
471
|
+
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconTrailing", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], square: [{ type: i0.Input, args: [{ isSignal: true, alias: "square", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], kbd: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbd", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], pressed: [{ type: i0.Output, args: ["pressed"] }] } });
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* viking-separator — horizontal/vertical rule with optional label
|
|
475
|
+
*.
|
|
476
|
+
*/
|
|
477
|
+
class VikingSeparator {
|
|
478
|
+
orientation = input('horizontal', /* @ts-ignore */
|
|
479
|
+
...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
480
|
+
text = input('', /* @ts-ignore */
|
|
481
|
+
...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
482
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
483
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: VikingSeparator, isStandalone: true, selector: "viking-separator", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "separator" }, properties: { "attr.aria-orientation": "orientation()", "class.viking-vertical": "orientation() === 'vertical'" } }, ngImport: i0, template: `
|
|
484
|
+
@if (text() && orientation() === 'horizontal') {
|
|
485
|
+
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
486
|
+
<span class="viking-separator-text">{{ text() }}</span>
|
|
487
|
+
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
488
|
+
} @else {
|
|
489
|
+
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
490
|
+
}
|
|
491
|
+
`, isInline: true, styles: [":host{display:flex;align-items:center;gap:var(--viking-space-2);width:100%}:host(.viking-vertical){width:auto;align-self:stretch}.viking-separator-line{flex:1;border-top:1px solid var(--viking-border)}:host(.viking-vertical) .viking-separator-line{flex:none;border-top:none;border-left:1px solid var(--viking-border);height:100%;min-height:var(--viking-space-3)}.viking-separator-text{font-family:var(--viking-font-family);font-size:var(--viking-font-size);color:var(--viking-text-muted);white-space:nowrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
492
|
+
}
|
|
493
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingSeparator, decorators: [{
|
|
494
|
+
type: Component,
|
|
495
|
+
args: [{ selector: 'viking-separator', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
496
|
+
role: 'separator',
|
|
497
|
+
'[attr.aria-orientation]': 'orientation()',
|
|
498
|
+
'[class.viking-vertical]': "orientation() === 'vertical'",
|
|
499
|
+
}, template: `
|
|
500
|
+
@if (text() && orientation() === 'horizontal') {
|
|
501
|
+
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
502
|
+
<span class="viking-separator-text">{{ text() }}</span>
|
|
503
|
+
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
504
|
+
} @else {
|
|
505
|
+
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
506
|
+
}
|
|
507
|
+
`, styles: [":host{display:flex;align-items:center;gap:var(--viking-space-2);width:100%}:host(.viking-vertical){width:auto;align-self:stretch}.viking-separator-line{flex:1;border-top:1px solid var(--viking-border)}:host(.viking-vertical) .viking-separator-line{flex:none;border-top:none;border-left:1px solid var(--viking-border);height:100%;min-height:var(--viking-space-3)}.viking-separator-text{font-family:var(--viking-font-family);font-size:var(--viking-font-size);color:var(--viking-text-muted);white-space:nowrap}\n"] }]
|
|
508
|
+
}], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }] } });
|
|
509
|
+
|
|
510
|
+
/**
|
|
511
|
+
* viking-auth-panel — access portal / sign-in layout template.
|
|
512
|
+
* Full-width stacked actions, Google + Apple OAuth row, WCAG-friendly structure.
|
|
513
|
+
*/
|
|
514
|
+
class VikingAuthPanel {
|
|
515
|
+
tag = input('Access Portal', /* @ts-ignore */
|
|
516
|
+
...(ngDevMode ? [{ debugName: "tag" }] : /* istanbul ignore next */ []));
|
|
517
|
+
title = input.required(/* @ts-ignore */
|
|
518
|
+
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
519
|
+
subtitle = input('Secure entry to the DEML (DATA ENGINEERING FOR MACHINE LEARNING).', /* @ts-ignore */
|
|
520
|
+
...(ngDevMode ? [{ debugName: "subtitle" }] : /* istanbul ignore next */ []));
|
|
521
|
+
showSocial = input(true, /* @ts-ignore */
|
|
522
|
+
...(ngDevMode ? [{ debugName: "showSocial" }] : /* istanbul ignore next */ []));
|
|
523
|
+
socialLoading = input(false, /* @ts-ignore */
|
|
524
|
+
...(ngDevMode ? [{ debugName: "socialLoading" }] : /* istanbul ignore next */ []));
|
|
525
|
+
googleSignIn = output();
|
|
526
|
+
appleSignIn = output();
|
|
527
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingAuthPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
528
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: VikingAuthPanel, isStandalone: true, selector: "viking-auth-panel", inputs: { tag: { classPropertyName: "tag", publicName: "tag", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, showSocial: { classPropertyName: "showSocial", publicName: "showSocial", isSignal: true, isRequired: false, transformFunction: null }, socialLoading: { classPropertyName: "socialLoading", publicName: "socialLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { googleSignIn: "googleSignIn", appleSignIn: "appleSignIn" }, host: { classAttribute: "viking-auth-panel-host" }, ngImport: i0, template: `
|
|
529
|
+
<section class="viking-auth-panel" aria-labelledby="viking-auth-title">
|
|
530
|
+
<header class="viking-auth-header">
|
|
531
|
+
@if (tag()) {
|
|
532
|
+
<div class="viking-auth-tag-row">
|
|
533
|
+
<span class="viking-auth-tag">{{ tag() }}</span>
|
|
534
|
+
</div>
|
|
535
|
+
}
|
|
536
|
+
<h1 id="viking-auth-title" class="viking-auth-title">{{ title() }}</h1>
|
|
537
|
+
@if (subtitle()) {
|
|
538
|
+
<p class="viking-auth-subtitle">{{ subtitle() }}</p>
|
|
539
|
+
}
|
|
540
|
+
</header>
|
|
541
|
+
|
|
542
|
+
<div class="viking-auth-body">
|
|
543
|
+
<ng-content />
|
|
544
|
+
</div>
|
|
545
|
+
|
|
546
|
+
<ng-content select="[vikingAuthLinks]" />
|
|
547
|
+
|
|
548
|
+
@if (showSocial()) {
|
|
549
|
+
<viking-separator text="or" />
|
|
550
|
+
<div class="viking-auth-social" role="group" aria-label="Social sign-in">
|
|
551
|
+
<viking-button
|
|
552
|
+
variant="outline"
|
|
553
|
+
type="button"
|
|
554
|
+
icon="google"
|
|
555
|
+
[fullWidth]="true"
|
|
556
|
+
[loading]="socialLoading()"
|
|
557
|
+
[disabled]="socialLoading()"
|
|
558
|
+
(pressed)="googleSignIn.emit()"
|
|
559
|
+
>
|
|
560
|
+
Sign In with Google
|
|
561
|
+
</viking-button>
|
|
562
|
+
<viking-button
|
|
563
|
+
variant="outline"
|
|
564
|
+
type="button"
|
|
565
|
+
icon="apple"
|
|
566
|
+
[fullWidth]="true"
|
|
567
|
+
[loading]="socialLoading()"
|
|
568
|
+
[disabled]="socialLoading()"
|
|
569
|
+
(pressed)="appleSignIn.emit()"
|
|
570
|
+
>
|
|
571
|
+
Sign In with Apple
|
|
572
|
+
</viking-button>
|
|
573
|
+
</div>
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
<footer class="viking-auth-footer">
|
|
577
|
+
<ng-content select="[vikingAuthFooter]" />
|
|
578
|
+
</footer>
|
|
579
|
+
</section>
|
|
580
|
+
`, isInline: true, styles: [":host{display:block;width:100%;max-width:480px;margin-inline:auto;font-family:var(--viking-font-family)}.viking-auth-panel{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}.viking-auth-header{display:flex;flex-direction:column;gap:var(--viking-space-1);margin-bottom:var(--viking-space-1)}.viking-auth-tag-row{display:flex;align-items:center}.viking-auth-tag{display:inline-flex;align-items:center;gap:var(--viking-space-1);font-size:var(--viking-font-size-ui);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--viking-text-muted);padding:var(--viking-space-1) var(--viking-space-2);border:1px solid var(--viking-border);border-radius:var(--viking-radius-pill);background:var(--viking-surface);box-shadow:var(--viking-shadow-sm)}.viking-auth-tag:before{content:\"\";width:8px;height:8px;border-radius:50%;background:var(--viking-accent);flex-shrink:0}.viking-auth-title{margin:0;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;letter-spacing:var(--header-letter-spacing, -.02em);color:var(--viking-text);line-height:1.2}.viking-auth-subtitle{margin:0;font-size:var(--viking-font-size);line-height:1.6;color:var(--viking-text-muted)}.viking-auth-body{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}.viking-auth-social{display:flex;flex-direction:column;gap:var(--viking-space-1);width:100%}.viking-auth-footer{display:flex;flex-direction:column;gap:var(--viking-space-1);width:100%;padding-top:var(--viking-space-1);border-top:1px solid var(--viking-border)}:host ::ng-deep [vikingAuthLinks].viking-auth-links,:host ::ng-deep .viking-auth-links{display:flex;flex-direction:column;gap:var(--viking-space-1);width:100%}:host ::ng-deep viking-field{width:100%}\n"], dependencies: [{ kind: "component", type: VikingButton, selector: "viking-button", inputs: ["variant", "size", "type", "icon", "iconTrailing", "disabled", "loading", "square", "fullWidth", "href", "target", "kbd", "label"], outputs: ["pressed"] }, { kind: "component", type: VikingSeparator, selector: "viking-separator", inputs: ["orientation", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
581
|
+
}
|
|
582
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingAuthPanel, decorators: [{
|
|
583
|
+
type: Component,
|
|
584
|
+
args: [{ selector: 'viking-auth-panel', imports: [VikingButton, VikingSeparator], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'viking-auth-panel-host' }, template: `
|
|
585
|
+
<section class="viking-auth-panel" aria-labelledby="viking-auth-title">
|
|
586
|
+
<header class="viking-auth-header">
|
|
587
|
+
@if (tag()) {
|
|
588
|
+
<div class="viking-auth-tag-row">
|
|
589
|
+
<span class="viking-auth-tag">{{ tag() }}</span>
|
|
590
|
+
</div>
|
|
591
|
+
}
|
|
592
|
+
<h1 id="viking-auth-title" class="viking-auth-title">{{ title() }}</h1>
|
|
593
|
+
@if (subtitle()) {
|
|
594
|
+
<p class="viking-auth-subtitle">{{ subtitle() }}</p>
|
|
595
|
+
}
|
|
596
|
+
</header>
|
|
597
|
+
|
|
598
|
+
<div class="viking-auth-body">
|
|
599
|
+
<ng-content />
|
|
600
|
+
</div>
|
|
601
|
+
|
|
602
|
+
<ng-content select="[vikingAuthLinks]" />
|
|
603
|
+
|
|
604
|
+
@if (showSocial()) {
|
|
605
|
+
<viking-separator text="or" />
|
|
606
|
+
<div class="viking-auth-social" role="group" aria-label="Social sign-in">
|
|
607
|
+
<viking-button
|
|
608
|
+
variant="outline"
|
|
609
|
+
type="button"
|
|
610
|
+
icon="google"
|
|
611
|
+
[fullWidth]="true"
|
|
612
|
+
[loading]="socialLoading()"
|
|
613
|
+
[disabled]="socialLoading()"
|
|
614
|
+
(pressed)="googleSignIn.emit()"
|
|
615
|
+
>
|
|
616
|
+
Sign In with Google
|
|
617
|
+
</viking-button>
|
|
618
|
+
<viking-button
|
|
619
|
+
variant="outline"
|
|
620
|
+
type="button"
|
|
621
|
+
icon="apple"
|
|
622
|
+
[fullWidth]="true"
|
|
623
|
+
[loading]="socialLoading()"
|
|
624
|
+
[disabled]="socialLoading()"
|
|
625
|
+
(pressed)="appleSignIn.emit()"
|
|
626
|
+
>
|
|
627
|
+
Sign In with Apple
|
|
628
|
+
</viking-button>
|
|
629
|
+
</div>
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
<footer class="viking-auth-footer">
|
|
633
|
+
<ng-content select="[vikingAuthFooter]" />
|
|
634
|
+
</footer>
|
|
635
|
+
</section>
|
|
636
|
+
`, styles: [":host{display:block;width:100%;max-width:480px;margin-inline:auto;font-family:var(--viking-font-family)}.viking-auth-panel{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}.viking-auth-header{display:flex;flex-direction:column;gap:var(--viking-space-1);margin-bottom:var(--viking-space-1)}.viking-auth-tag-row{display:flex;align-items:center}.viking-auth-tag{display:inline-flex;align-items:center;gap:var(--viking-space-1);font-size:var(--viking-font-size-ui);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--viking-text-muted);padding:var(--viking-space-1) var(--viking-space-2);border:1px solid var(--viking-border);border-radius:var(--viking-radius-pill);background:var(--viking-surface);box-shadow:var(--viking-shadow-sm)}.viking-auth-tag:before{content:\"\";width:8px;height:8px;border-radius:50%;background:var(--viking-accent);flex-shrink:0}.viking-auth-title{margin:0;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;letter-spacing:var(--header-letter-spacing, -.02em);color:var(--viking-text);line-height:1.2}.viking-auth-subtitle{margin:0;font-size:var(--viking-font-size);line-height:1.6;color:var(--viking-text-muted)}.viking-auth-body{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}.viking-auth-social{display:flex;flex-direction:column;gap:var(--viking-space-1);width:100%}.viking-auth-footer{display:flex;flex-direction:column;gap:var(--viking-space-1);width:100%;padding-top:var(--viking-space-1);border-top:1px solid var(--viking-border)}:host ::ng-deep [vikingAuthLinks].viking-auth-links,:host ::ng-deep .viking-auth-links{display:flex;flex-direction:column;gap:var(--viking-space-1);width:100%}:host ::ng-deep viking-field{width:100%}\n"] }]
|
|
637
|
+
}], propDecorators: { tag: [{ type: i0.Input, args: [{ isSignal: true, alias: "tag", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], showSocial: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSocial", required: false }] }], socialLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "socialLoading", required: false }] }], googleSignIn: [{ type: i0.Output, args: ["googleSignIn"] }], appleSignIn: [{ type: i0.Output, args: ["appleSignIn"] }] } });
|
|
638
|
+
|
|
331
639
|
/**
|
|
332
640
|
* viking-autocomplete — text input with filtered suggestions
|
|
333
|
-
|
|
641
|
+
*. ControlValueAccessor-compatible.
|
|
334
642
|
*/
|
|
335
643
|
class VikingAutocomplete extends VikingControl {
|
|
336
644
|
host = inject(ElementRef);
|
|
@@ -488,7 +796,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
488
796
|
|
|
489
797
|
/**
|
|
490
798
|
* viking-avatar — image or initials avatar with optional status indicator
|
|
491
|
-
|
|
799
|
+
*.
|
|
492
800
|
*/
|
|
493
801
|
class VikingAvatar {
|
|
494
802
|
src = input(null, /* @ts-ignore */
|
|
@@ -552,7 +860,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
552
860
|
}], propDecorators: { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], square: [{ type: i0.Input, args: [{ isSignal: true, alias: "square", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }] } });
|
|
553
861
|
|
|
554
862
|
/**
|
|
555
|
-
* viking-badge — status pill
|
|
863
|
+
* viking-badge — status pill.
|
|
556
864
|
* Tones map to THEME.md semantic colors only.
|
|
557
865
|
*/
|
|
558
866
|
class VikingBadge {
|
|
@@ -624,7 +932,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
624
932
|
}], propDecorators: { height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }] } });
|
|
625
933
|
|
|
626
934
|
/**
|
|
627
|
-
* viking-brand — logo + wordmark lockup
|
|
935
|
+
* viking-brand — logo + wordmark lockup.
|
|
628
936
|
* Project a custom logo (img/svg) or fall back to a monogram tile.
|
|
629
937
|
*/
|
|
630
938
|
class VikingBrand {
|
|
@@ -657,7 +965,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
657
965
|
}], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], logoSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "logoSrc", required: false }] }] } });
|
|
658
966
|
|
|
659
967
|
/**
|
|
660
|
-
* viking-breadcrumbs — hierarchy navigation
|
|
968
|
+
* viking-breadcrumbs — hierarchy navigation.
|
|
661
969
|
*/
|
|
662
970
|
class VikingBreadcrumbs {
|
|
663
971
|
items = input.required(/* @ts-ignore */
|
|
@@ -704,136 +1012,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
704
1012
|
`, styles: [".viking-breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:var(--viking-space-1);margin:0;padding:0;list-style:none;font-family:var(--viking-font-family);font-size:var(--viking-font-size)}.viking-breadcrumb{display:inline-flex;align-items:center;gap:var(--viking-space-1);color:var(--viking-text-muted)}.viking-breadcrumb a{color:var(--viking-text-muted);text-decoration:none;border-bottom:1px solid transparent;transition:var(--viking-transition)}.viking-breadcrumb a:hover,.viking-breadcrumb a:focus-visible{color:var(--viking-accent);border-bottom-color:var(--viking-accent)}.viking-breadcrumb a:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);border-radius:3px}.viking-breadcrumb span[aria-current=page]{color:var(--viking-text);font-weight:600}\n"] }]
|
|
705
1013
|
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }] } });
|
|
706
1014
|
|
|
707
|
-
/**
|
|
708
|
-
* viking-button — composable button (https://fluxui.dev/components/button).
|
|
709
|
-
* Variants: outline (default), primary, filled, danger, ghost, subtle.
|
|
710
|
-
*/
|
|
711
|
-
class VikingButton {
|
|
712
|
-
variant = input('outline', /* @ts-ignore */
|
|
713
|
-
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
714
|
-
size = input('base', /* @ts-ignore */
|
|
715
|
-
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
716
|
-
type = input('button', /* @ts-ignore */
|
|
717
|
-
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
718
|
-
icon = input(null, /* @ts-ignore */
|
|
719
|
-
...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
720
|
-
iconTrailing = input(null, /* @ts-ignore */
|
|
721
|
-
...(ngDevMode ? [{ debugName: "iconTrailing" }] : /* istanbul ignore next */ []));
|
|
722
|
-
disabled = input(false, /* @ts-ignore */
|
|
723
|
-
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
724
|
-
loading = input(false, /* @ts-ignore */
|
|
725
|
-
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
726
|
-
square = input(false, /* @ts-ignore */
|
|
727
|
-
...(ngDevMode ? [{ debugName: "square" }] : /* istanbul ignore next */ []));
|
|
728
|
-
href = input(null, /* @ts-ignore */
|
|
729
|
-
...(ngDevMode ? [{ debugName: "href" }] : /* istanbul ignore next */ []));
|
|
730
|
-
target = input(null, /* @ts-ignore */
|
|
731
|
-
...(ngDevMode ? [{ debugName: "target" }] : /* istanbul ignore next */ []));
|
|
732
|
-
kbd = input(null, /* @ts-ignore */
|
|
733
|
-
...(ngDevMode ? [{ debugName: "kbd" }] : /* istanbul ignore next */ []));
|
|
734
|
-
/** Accessible name; required for icon-only (square) buttons. */
|
|
735
|
-
label = input('', /* @ts-ignore */
|
|
736
|
-
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
737
|
-
pressed = output();
|
|
738
|
-
iconSize = computed(() => (this.size() === 'base' ? 22 : 18), /* @ts-ignore */
|
|
739
|
-
...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
|
|
740
|
-
classes = computed(() => ({
|
|
741
|
-
[`viking-${this.variant()}`]: true,
|
|
742
|
-
[`viking-${this.size()}`]: this.size() !== 'base',
|
|
743
|
-
'viking-square': this.square(),
|
|
744
|
-
}), /* @ts-ignore */
|
|
745
|
-
...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
746
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
747
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: VikingButton, isStandalone: true, selector: "viking-button", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconTrailing: { classPropertyName: "iconTrailing", publicName: "iconTrailing", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, square: { classPropertyName: "square", publicName: "square", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, kbd: { classPropertyName: "kbd", publicName: "kbd", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pressed: "pressed" }, host: { properties: { "style.pointer-events": "disabled() ? 'none' : null" } }, ngImport: i0, template: `
|
|
748
|
-
@if (href()) {
|
|
749
|
-
<a
|
|
750
|
-
class="viking-btn"
|
|
751
|
-
[class]="classes()"
|
|
752
|
-
[href]="href()"
|
|
753
|
-
[attr.target]="target()"
|
|
754
|
-
[attr.aria-label]="label() || null"
|
|
755
|
-
[attr.rel]="target() === '_blank' ? 'noopener noreferrer' : null"
|
|
756
|
-
>
|
|
757
|
-
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
758
|
-
</a>
|
|
759
|
-
} @else {
|
|
760
|
-
<button
|
|
761
|
-
class="viking-btn"
|
|
762
|
-
[class]="classes()"
|
|
763
|
-
[type]="type()"
|
|
764
|
-
[disabled]="disabled() || loading()"
|
|
765
|
-
[attr.aria-label]="label() || null"
|
|
766
|
-
[attr.aria-busy]="loading() ? 'true' : null"
|
|
767
|
-
(click)="pressed.emit($event)"
|
|
768
|
-
>
|
|
769
|
-
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
770
|
-
</button>
|
|
771
|
-
}
|
|
772
|
-
|
|
773
|
-
<ng-template #content>
|
|
774
|
-
@if (loading()) {
|
|
775
|
-
<viking-icon name="loader" [size]="iconSize()" [spin]="true" />
|
|
776
|
-
} @else if (icon()) {
|
|
777
|
-
<viking-icon [name]="icon()!" [size]="iconSize()" />
|
|
778
|
-
}
|
|
779
|
-
<span class="viking-btn-label"><ng-content /></span>
|
|
780
|
-
@if (iconTrailing()) {
|
|
781
|
-
<viking-icon [name]="iconTrailing()!" [size]="iconSize()" />
|
|
782
|
-
}
|
|
783
|
-
@if (kbd()) {
|
|
784
|
-
<kbd class="viking-btn-kbd">{{ kbd() }}</kbd>
|
|
785
|
-
}
|
|
786
|
-
</ng-template>
|
|
787
|
-
`, isInline: true, styles: [":host{display:inline-flex}:host(.viking-full){display:flex}:host(.viking-full) .viking-btn{width:100%}.viking-btn{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap}:host(.viking-full) .viking-btn{min-width:0}.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset)}.viking-btn:disabled{opacity:.55;cursor:not-allowed}.viking-sm{min-height:var(--viking-control-height-sm);padding:0 var(--viking-space-2)}.viking-xs{min-height:var(--viking-control-height-xs);padding:0 var(--viking-space-1)}.viking-square{width:var(--viking-control-height);padding:0}.viking-square.viking-sm{width:var(--viking-control-height-sm)}.viking-square.viking-xs{width:var(--viking-control-height-xs)}.viking-square .viking-btn-label{display:none}.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-shadow-sm)}.viking-outline:hover:not(:disabled){background:var(--viking-surface-alt);border-color:var(--viking-accent-strong)}.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:var(--viking-accent);box-shadow:var(--viking-shadow-sm)}.viking-primary:hover:not(:disabled){background:var(--viking-accent-strong);border-color:var(--viking-accent-strong);border-bottom-color:var(--hover-color, #fdca40)}.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border)}.viking-filled:hover:not(:disabled){border-color:var(--viking-accent-strong)}.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger, #31393c);border-color:var(--viking-danger)}.viking-danger:hover:not(:disabled){opacity:.9}.viking-ghost{background:transparent;color:var(--viking-text)}.viking-ghost:hover:not(:disabled){background:var(--viking-accent-soft)}.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border)}.viking-subtle:hover:not(:disabled){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn-kbd{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);color:var(--viking-text-muted);background:var(--viking-surface-alt);border:1px solid var(--viking-border);border-radius:calc(var(--viking-radius) / 2);padding:0 var(--viking-space-1);line-height:1.4}\n"], dependencies: [{ kind: "component", type: VikingIcon, selector: "viking-icon", inputs: ["name", "size", "spin"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
788
|
-
}
|
|
789
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingButton, decorators: [{
|
|
790
|
-
type: Component,
|
|
791
|
-
args: [{ selector: 'viking-button', imports: [VikingIcon, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[style.pointer-events]': "disabled() ? 'none' : null" }, template: `
|
|
792
|
-
@if (href()) {
|
|
793
|
-
<a
|
|
794
|
-
class="viking-btn"
|
|
795
|
-
[class]="classes()"
|
|
796
|
-
[href]="href()"
|
|
797
|
-
[attr.target]="target()"
|
|
798
|
-
[attr.aria-label]="label() || null"
|
|
799
|
-
[attr.rel]="target() === '_blank' ? 'noopener noreferrer' : null"
|
|
800
|
-
>
|
|
801
|
-
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
802
|
-
</a>
|
|
803
|
-
} @else {
|
|
804
|
-
<button
|
|
805
|
-
class="viking-btn"
|
|
806
|
-
[class]="classes()"
|
|
807
|
-
[type]="type()"
|
|
808
|
-
[disabled]="disabled() || loading()"
|
|
809
|
-
[attr.aria-label]="label() || null"
|
|
810
|
-
[attr.aria-busy]="loading() ? 'true' : null"
|
|
811
|
-
(click)="pressed.emit($event)"
|
|
812
|
-
>
|
|
813
|
-
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
814
|
-
</button>
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
<ng-template #content>
|
|
818
|
-
@if (loading()) {
|
|
819
|
-
<viking-icon name="loader" [size]="iconSize()" [spin]="true" />
|
|
820
|
-
} @else if (icon()) {
|
|
821
|
-
<viking-icon [name]="icon()!" [size]="iconSize()" />
|
|
822
|
-
}
|
|
823
|
-
<span class="viking-btn-label"><ng-content /></span>
|
|
824
|
-
@if (iconTrailing()) {
|
|
825
|
-
<viking-icon [name]="iconTrailing()!" [size]="iconSize()" />
|
|
826
|
-
}
|
|
827
|
-
@if (kbd()) {
|
|
828
|
-
<kbd class="viking-btn-kbd">{{ kbd() }}</kbd>
|
|
829
|
-
}
|
|
830
|
-
</ng-template>
|
|
831
|
-
`, styles: [":host{display:inline-flex}:host(.viking-full){display:flex}:host(.viking-full) .viking-btn{width:100%}.viking-btn{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap}:host(.viking-full) .viking-btn{min-width:0}.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset)}.viking-btn:disabled{opacity:.55;cursor:not-allowed}.viking-sm{min-height:var(--viking-control-height-sm);padding:0 var(--viking-space-2)}.viking-xs{min-height:var(--viking-control-height-xs);padding:0 var(--viking-space-1)}.viking-square{width:var(--viking-control-height);padding:0}.viking-square.viking-sm{width:var(--viking-control-height-sm)}.viking-square.viking-xs{width:var(--viking-control-height-xs)}.viking-square .viking-btn-label{display:none}.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-shadow-sm)}.viking-outline:hover:not(:disabled){background:var(--viking-surface-alt);border-color:var(--viking-accent-strong)}.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:var(--viking-accent);box-shadow:var(--viking-shadow-sm)}.viking-primary:hover:not(:disabled){background:var(--viking-accent-strong);border-color:var(--viking-accent-strong);border-bottom-color:var(--hover-color, #fdca40)}.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border)}.viking-filled:hover:not(:disabled){border-color:var(--viking-accent-strong)}.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger, #31393c);border-color:var(--viking-danger)}.viking-danger:hover:not(:disabled){opacity:.9}.viking-ghost{background:transparent;color:var(--viking-text)}.viking-ghost:hover:not(:disabled){background:var(--viking-accent-soft)}.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border)}.viking-subtle:hover:not(:disabled){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn-kbd{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);color:var(--viking-text-muted);background:var(--viking-surface-alt);border:1px solid var(--viking-border);border-radius:calc(var(--viking-radius) / 2);padding:0 var(--viking-space-1);line-height:1.4}\n"] }]
|
|
832
|
-
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconTrailing", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], square: [{ type: i0.Input, args: [{ isSignal: true, alias: "square", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], kbd: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbd", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], pressed: [{ type: i0.Output, args: ["pressed"] }] } });
|
|
833
|
-
|
|
834
1015
|
/**
|
|
835
1016
|
* viking-button-group — fuses buttons with shared borders
|
|
836
|
-
|
|
1017
|
+
*.
|
|
837
1018
|
*/
|
|
838
1019
|
class VikingButtonGroup {
|
|
839
1020
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingButtonGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -861,7 +1042,7 @@ const MONTHS = [
|
|
|
861
1042
|
const WEEKDAYS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
|
|
862
1043
|
const toIso = (date) => `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
|
|
863
1044
|
/**
|
|
864
|
-
* viking-calendar — month-grid date selection
|
|
1045
|
+
* viking-calendar — month-grid date selection.
|
|
865
1046
|
* Value is an ISO date string (YYYY-MM-DD). ControlValueAccessor-compatible.
|
|
866
1047
|
*/
|
|
867
1048
|
class VikingCalendar extends VikingControl {
|
|
@@ -997,7 +1178,7 @@ const TONE_ICONS$1 = {
|
|
|
997
1178
|
muted: 'info',
|
|
998
1179
|
};
|
|
999
1180
|
/**
|
|
1000
|
-
* viking-callout — highlighted message block
|
|
1181
|
+
* viking-callout — highlighted message block.
|
|
1001
1182
|
*/
|
|
1002
1183
|
class VikingCallout {
|
|
1003
1184
|
tone = input('accent', /* @ts-ignore */
|
|
@@ -1056,7 +1237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
1056
1237
|
}], propDecorators: { tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
|
|
1057
1238
|
|
|
1058
1239
|
/**
|
|
1059
|
-
* viking-card — surface container
|
|
1240
|
+
* viking-card — surface container.
|
|
1060
1241
|
* Compose with viking-card-header / viking-card-footer for structured layouts.
|
|
1061
1242
|
*/
|
|
1062
1243
|
class VikingCard {
|
|
@@ -1098,7 +1279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
1098
1279
|
args: [{ selector: 'viking-carousel-slide', changeDetection: ChangeDetectionStrategy.OnPush, host: { role: 'group', 'aria-roledescription': 'slide' }, template: `<ng-content />`, styles: [":host{flex:0 0 100%;scroll-snap-align:start;display:block;box-sizing:border-box}\n"] }]
|
|
1099
1280
|
}] });
|
|
1100
1281
|
/**
|
|
1101
|
-
* viking-carousel — scroll-snap slideshow
|
|
1282
|
+
* viking-carousel — scroll-snap slideshow.
|
|
1102
1283
|
*/
|
|
1103
1284
|
class VikingCarousel {
|
|
1104
1285
|
viewport = viewChild.required('viewport');
|
|
@@ -1292,6 +1473,7 @@ const buildSmoothPath = (points) => {
|
|
|
1292
1473
|
* viking-chart — zero-dependency native SVG charts styled after Viking UI.
|
|
1293
1474
|
*/
|
|
1294
1475
|
class VikingChart {
|
|
1476
|
+
chartId = `vc-${Math.random().toString(36).slice(2, 9)}`;
|
|
1295
1477
|
kind = input('line', /* @ts-ignore */
|
|
1296
1478
|
...(ngDevMode ? [{ debugName: "kind" }] : /* istanbul ignore next */ []));
|
|
1297
1479
|
series = input([{ name: 'Series', data: [] }], /* @ts-ignore */
|
|
@@ -1324,6 +1506,8 @@ class VikingChart {
|
|
|
1324
1506
|
...(ngDevMode ? [{ debugName: "tickCount" }] : /* istanbul ignore next */ []));
|
|
1325
1507
|
showLegend = input(undefined, /* @ts-ignore */
|
|
1326
1508
|
...(ngDevMode ? [{ debugName: "showLegend" }] : /* istanbul ignore next */ []));
|
|
1509
|
+
summary = input('', /* @ts-ignore */
|
|
1510
|
+
...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
|
|
1327
1511
|
width = WIDTH;
|
|
1328
1512
|
isSparkline = computed(() => this.kind() === 'sparkline', /* @ts-ignore */
|
|
1329
1513
|
...(ngDevMode ? [{ debugName: "isSparkline" }] : /* istanbul ignore next */ []));
|
|
@@ -1666,19 +1850,28 @@ class VikingChart {
|
|
|
1666
1850
|
}, /* @ts-ignore */
|
|
1667
1851
|
...(ngDevMode ? [{ debugName: "donutSlices" }] : /* istanbul ignore next */ []));
|
|
1668
1852
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingChart, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1669
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: VikingChart, isStandalone: true, selector: "viking-chart", inputs: { kind: { classPropertyName: "kind", publicName: "kind", isSignal: true, isRequired: false, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: false, transformFunction: null }, categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: false, transformFunction: null }, segments: { classPropertyName: "segments", publicName: "segments", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showArea: { classPropertyName: "showArea", publicName: "showArea", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, showPoints: { classPropertyName: "showPoints", publicName: "showPoints", isSignal: true, isRequired: false, transformFunction: null }, pointRadius: { classPropertyName: "pointRadius", publicName: "pointRadius", isSignal: true, isRequired: false, transformFunction: null }, barWidth: { classPropertyName: "barWidth", publicName: "barWidth", isSignal: true, isRequired: false, transformFunction: null }, barRadius: { classPropertyName: "barRadius", publicName: "barRadius", isSignal: true, isRequired: false, transformFunction: null }, gutter: { classPropertyName: "gutter", publicName: "gutter", isSignal: true, isRequired: false, transformFunction: null }, tickCount: { classPropertyName: "tickCount", publicName: "tickCount", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.viking-chart-fill-host": "fill()", "class.viking-chart-sparkline-host": "kind() === 'sparkline'" } }, ngImport: i0, template: `
|
|
1853
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: VikingChart, isStandalone: true, selector: "viking-chart", inputs: { kind: { classPropertyName: "kind", publicName: "kind", isSignal: true, isRequired: false, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: false, transformFunction: null }, categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: false, transformFunction: null }, segments: { classPropertyName: "segments", publicName: "segments", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showArea: { classPropertyName: "showArea", publicName: "showArea", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, showPoints: { classPropertyName: "showPoints", publicName: "showPoints", isSignal: true, isRequired: false, transformFunction: null }, pointRadius: { classPropertyName: "pointRadius", publicName: "pointRadius", isSignal: true, isRequired: false, transformFunction: null }, barWidth: { classPropertyName: "barWidth", publicName: "barWidth", isSignal: true, isRequired: false, transformFunction: null }, barRadius: { classPropertyName: "barRadius", publicName: "barRadius", isSignal: true, isRequired: false, transformFunction: null }, gutter: { classPropertyName: "gutter", publicName: "gutter", isSignal: true, isRequired: false, transformFunction: null }, tickCount: { classPropertyName: "tickCount", publicName: "tickCount", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, summary: { classPropertyName: "summary", publicName: "summary", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.viking-chart-fill-host": "fill()", "class.viking-chart-sparkline-host": "kind() === 'sparkline'" } }, ngImport: i0, template: `
|
|
1670
1854
|
<figure
|
|
1671
1855
|
class="viking-chart"
|
|
1672
1856
|
[class.viking-chart-fill]="fill()"
|
|
1673
1857
|
[class.viking-chart-compact]="compact() && !fill()"
|
|
1674
1858
|
[class.viking-chart-sparkline]="isSparkline()"
|
|
1675
1859
|
[class.viking-chart-has-legend]="legendVisible()"
|
|
1860
|
+
[attr.aria-labelledby]="label() ? 'viking-chart-label-' + chartId : null"
|
|
1861
|
+
[attr.aria-describedby]="summary() ? 'viking-chart-summary-' + chartId : null"
|
|
1676
1862
|
>
|
|
1863
|
+
@if (label()) {
|
|
1864
|
+
<figcaption class="sr-only" [id]="'viking-chart-label-' + chartId">{{ label() }}</figcaption>
|
|
1865
|
+
}
|
|
1866
|
+
@if (summary()) {
|
|
1867
|
+
<p class="sr-only" [id]="'viking-chart-summary-' + chartId">{{ summary() }}</p>
|
|
1868
|
+
}
|
|
1677
1869
|
<svg
|
|
1678
1870
|
[attr.viewBox]="'0 0 ' + width + ' ' + height()"
|
|
1679
1871
|
preserveAspectRatio="xMidYMid meet"
|
|
1680
1872
|
role="img"
|
|
1681
1873
|
[attr.aria-label]="label() || 'Chart'"
|
|
1874
|
+
aria-hidden="true"
|
|
1682
1875
|
>
|
|
1683
1876
|
@if (kind() === 'donut') {
|
|
1684
1877
|
@for (slice of donutSlices(); track slice.label) {
|
|
@@ -1836,7 +2029,7 @@ class VikingChart {
|
|
|
1836
2029
|
</figcaption>
|
|
1837
2030
|
}
|
|
1838
2031
|
</figure>
|
|
1839
|
-
`, isInline: true, styles: [":host{display:block;width:100%}:host(.viking-chart-fill-host){display:flex;flex-direction:column;flex:1 1 auto;min-height:240px;height:100%}:host(.viking-chart-sparkline-host){display:inline-block;width:auto;max-width:100%}:host(.viking-chart-wide){display:block;width:100%}.viking-chart{margin:0;font-family:var(--viking-font-family);overflow:hidden;width:100%;max-width:100
|
|
2032
|
+
`, isInline: true, styles: [":host{display:block;width:100%}:host(.viking-chart-fill-host){display:flex;flex-direction:column;flex:1 1 auto;min-height:240px;height:100%}:host(.viking-chart-sparkline-host){display:inline-block;width:auto;max-width:100%}:host(.viking-chart-wide){display:block;width:100%}.viking-chart{margin:0;font-family:var(--viking-font-family);overflow:hidden;width:100%;max-width:100%;container-type:inline-size}.viking-chart:not(.viking-chart-fill):not(.viking-chart-sparkline){aspect-ratio:3 / 1}.viking-chart-fill{flex:1 1 auto;display:flex;flex-direction:column;min-height:240px;height:100%}.viking-chart-sparkline{width:5rem;aspect-ratio:3 / 1}:host(.viking-chart-wide) .viking-chart-sparkline{width:100%;aspect-ratio:auto;height:3rem}svg{display:block;width:100%;height:100%;min-height:120px;background:transparent;overflow:visible}.viking-chart-fill svg{flex:1 1 auto;min-height:200px;max-height:none}.viking-chart-sparkline svg{min-height:0;border:none}.viking-chart-compact svg{max-height:220px}.viking-chart-grid{stroke:color-mix(in srgb,var(--viking-border) 55%,transparent);stroke-width:1}.viking-chart-axis-line,.viking-chart-tick{stroke:color-mix(in srgb,var(--viking-border) 85%,transparent);stroke-width:1}.viking-chart-axis-y,.viking-chart-axis-x{fill:var(--viking-text-muted);font-size:max(11px,var(--viking-chart-axis-size, 12px));font-family:var(--viking-font-family)}.viking-chart-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.viking-chart-area{opacity:.28;stroke:none}.viking-chart-point{stroke:var(--viking-surface);stroke-width:2;vector-effect:non-scaling-stroke}.viking-chart-bar{opacity:.95}.viking-chart-donut-slice{stroke:var(--viking-surface);stroke-width:2}.viking-chart-donut-hole{fill:var(--viking-surface)}.viking-chart-donut-total{fill:var(--viking-text);font-size:max(12px,min(16px,3.5cqw));font-weight:700;font-family:var(--viking-font-family)}.viking-chart-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--viking-space-2);margin-top:var(--viking-space-2);font-size:calc(var(--viking-font-size) * .9);color:var(--viking-text-muted)}.viking-chart-legend-item{display:inline-flex;align-items:center;gap:calc(var(--viking-space-1) / 1.5);line-height:1.2}.viking-chart-swatch{width:10px;height:10px;border-radius:999px;display:inline-block;flex-shrink:0}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1840
2033
|
}
|
|
1841
2034
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingChart, decorators: [{
|
|
1842
2035
|
type: Component,
|
|
@@ -1850,12 +2043,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
1850
2043
|
[class.viking-chart-compact]="compact() && !fill()"
|
|
1851
2044
|
[class.viking-chart-sparkline]="isSparkline()"
|
|
1852
2045
|
[class.viking-chart-has-legend]="legendVisible()"
|
|
2046
|
+
[attr.aria-labelledby]="label() ? 'viking-chart-label-' + chartId : null"
|
|
2047
|
+
[attr.aria-describedby]="summary() ? 'viking-chart-summary-' + chartId : null"
|
|
1853
2048
|
>
|
|
2049
|
+
@if (label()) {
|
|
2050
|
+
<figcaption class="sr-only" [id]="'viking-chart-label-' + chartId">{{ label() }}</figcaption>
|
|
2051
|
+
}
|
|
2052
|
+
@if (summary()) {
|
|
2053
|
+
<p class="sr-only" [id]="'viking-chart-summary-' + chartId">{{ summary() }}</p>
|
|
2054
|
+
}
|
|
1854
2055
|
<svg
|
|
1855
2056
|
[attr.viewBox]="'0 0 ' + width + ' ' + height()"
|
|
1856
2057
|
preserveAspectRatio="xMidYMid meet"
|
|
1857
2058
|
role="img"
|
|
1858
2059
|
[attr.aria-label]="label() || 'Chart'"
|
|
2060
|
+
aria-hidden="true"
|
|
1859
2061
|
>
|
|
1860
2062
|
@if (kind() === 'donut') {
|
|
1861
2063
|
@for (slice of donutSlices(); track slice.label) {
|
|
@@ -2013,11 +2215,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
2013
2215
|
</figcaption>
|
|
2014
2216
|
}
|
|
2015
2217
|
</figure>
|
|
2016
|
-
`, styles: [":host{display:block;width:100%}:host(.viking-chart-fill-host){display:flex;flex-direction:column;flex:1 1 auto;min-height:240px;height:100%}:host(.viking-chart-sparkline-host){display:inline-block;width:auto;max-width:100%}:host(.viking-chart-wide){display:block;width:100%}.viking-chart{margin:0;font-family:var(--viking-font-family);overflow:hidden;width:100%;max-width:100
|
|
2017
|
-
}], propDecorators: { kind: [{ type: i0.Input, args: [{ isSignal: true, alias: "kind", required: false }] }], series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: false }] }], categories: [{ type: i0.Input, args: [{ isSignal: true, alias: "categories", required: false }] }], segments: [{ type: i0.Input, args: [{ isSignal: true, alias: "segments", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], showArea: [{ type: i0.Input, args: [{ isSignal: true, alias: "showArea", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }], curve: [{ type: i0.Input, args: [{ isSignal: true, alias: "curve", required: false }] }], showPoints: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPoints", required: false }] }], pointRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "pointRadius", required: false }] }], barWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "barWidth", required: false }] }], barRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "barRadius", required: false }] }], gutter: [{ type: i0.Input, args: [{ isSignal: true, alias: "gutter", required: false }] }], tickCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "tickCount", required: false }] }], showLegend: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLegend", required: false }] }] } });
|
|
2218
|
+
`, styles: [":host{display:block;width:100%}:host(.viking-chart-fill-host){display:flex;flex-direction:column;flex:1 1 auto;min-height:240px;height:100%}:host(.viking-chart-sparkline-host){display:inline-block;width:auto;max-width:100%}:host(.viking-chart-wide){display:block;width:100%}.viking-chart{margin:0;font-family:var(--viking-font-family);overflow:hidden;width:100%;max-width:100%;container-type:inline-size}.viking-chart:not(.viking-chart-fill):not(.viking-chart-sparkline){aspect-ratio:3 / 1}.viking-chart-fill{flex:1 1 auto;display:flex;flex-direction:column;min-height:240px;height:100%}.viking-chart-sparkline{width:5rem;aspect-ratio:3 / 1}:host(.viking-chart-wide) .viking-chart-sparkline{width:100%;aspect-ratio:auto;height:3rem}svg{display:block;width:100%;height:100%;min-height:120px;background:transparent;overflow:visible}.viking-chart-fill svg{flex:1 1 auto;min-height:200px;max-height:none}.viking-chart-sparkline svg{min-height:0;border:none}.viking-chart-compact svg{max-height:220px}.viking-chart-grid{stroke:color-mix(in srgb,var(--viking-border) 55%,transparent);stroke-width:1}.viking-chart-axis-line,.viking-chart-tick{stroke:color-mix(in srgb,var(--viking-border) 85%,transparent);stroke-width:1}.viking-chart-axis-y,.viking-chart-axis-x{fill:var(--viking-text-muted);font-size:max(11px,var(--viking-chart-axis-size, 12px));font-family:var(--viking-font-family)}.viking-chart-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.viking-chart-area{opacity:.28;stroke:none}.viking-chart-point{stroke:var(--viking-surface);stroke-width:2;vector-effect:non-scaling-stroke}.viking-chart-bar{opacity:.95}.viking-chart-donut-slice{stroke:var(--viking-surface);stroke-width:2}.viking-chart-donut-hole{fill:var(--viking-surface)}.viking-chart-donut-total{fill:var(--viking-text);font-size:max(12px,min(16px,3.5cqw));font-weight:700;font-family:var(--viking-font-family)}.viking-chart-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--viking-space-2);margin-top:var(--viking-space-2);font-size:calc(var(--viking-font-size) * .9);color:var(--viking-text-muted)}.viking-chart-legend-item{display:inline-flex;align-items:center;gap:calc(var(--viking-space-1) / 1.5);line-height:1.2}.viking-chart-swatch{width:10px;height:10px;border-radius:999px;display:inline-block;flex-shrink:0}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}\n"] }]
|
|
2219
|
+
}], propDecorators: { kind: [{ type: i0.Input, args: [{ isSignal: true, alias: "kind", required: false }] }], series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: false }] }], categories: [{ type: i0.Input, args: [{ isSignal: true, alias: "categories", required: false }] }], segments: [{ type: i0.Input, args: [{ isSignal: true, alias: "segments", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], showArea: [{ type: i0.Input, args: [{ isSignal: true, alias: "showArea", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }], curve: [{ type: i0.Input, args: [{ isSignal: true, alias: "curve", required: false }] }], showPoints: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPoints", required: false }] }], pointRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "pointRadius", required: false }] }], barWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "barWidth", required: false }] }], barRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "barRadius", required: false }] }], gutter: [{ type: i0.Input, args: [{ isSignal: true, alias: "gutter", required: false }] }], tickCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "tickCount", required: false }] }], showLegend: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLegend", required: false }] }], summary: [{ type: i0.Input, args: [{ isSignal: true, alias: "summary", required: false }] }] } });
|
|
2018
2220
|
|
|
2019
2221
|
/**
|
|
2020
|
-
* viking-checkbox — custom checkbox
|
|
2222
|
+
* viking-checkbox — custom checkbox.
|
|
2021
2223
|
* ControlValueAccessor-compatible.
|
|
2022
2224
|
*/
|
|
2023
2225
|
class VikingCheckbox extends VikingControl {
|
|
@@ -2095,7 +2297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
2095
2297
|
|
|
2096
2298
|
/**
|
|
2097
2299
|
* viking-color-picker — swatch presets + custom color input
|
|
2098
|
-
|
|
2300
|
+
*. ControlValueAccessor-compatible.
|
|
2099
2301
|
* Default presets are the THEME.md palette.
|
|
2100
2302
|
*/
|
|
2101
2303
|
class VikingColorPicker extends VikingControl {
|
|
@@ -2186,7 +2388,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
2186
2388
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], presets: [{ type: i0.Input, args: [{ isSignal: true, alias: "presets", required: false }] }] } });
|
|
2187
2389
|
|
|
2188
2390
|
/**
|
|
2189
|
-
* viking-command — command palette
|
|
2391
|
+
* viking-command — command palette.
|
|
2190
2392
|
* Toggle with the `open` model; emits `executed` when an item is chosen.
|
|
2191
2393
|
*/
|
|
2192
2394
|
class VikingCommand {
|
|
@@ -2356,7 +2558,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
2356
2558
|
|
|
2357
2559
|
/**
|
|
2358
2560
|
* viking-composer — message composer with attachments and send action
|
|
2359
|
-
|
|
2561
|
+
*.
|
|
2360
2562
|
*/
|
|
2361
2563
|
class VikingComposer {
|
|
2362
2564
|
value = model('', /* @ts-ignore */
|
|
@@ -2471,7 +2673,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
2471
2673
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], allowAttachments: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowAttachments", required: false }] }], sent: [{ type: i0.Output, args: ["sent"] }], attach: [{ type: i0.Output, args: ["attach"] }] } });
|
|
2472
2674
|
|
|
2473
2675
|
/**
|
|
2474
|
-
* viking-context — right-click context menu
|
|
2676
|
+
* viking-context — right-click context menu.
|
|
2475
2677
|
* Wrap the target content and project menu content with the `vikingMenu` attribute
|
|
2476
2678
|
* (typically viking-menu-item elements).
|
|
2477
2679
|
*/
|
|
@@ -2527,7 +2729,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
2527
2729
|
}] });
|
|
2528
2730
|
|
|
2529
2731
|
/**
|
|
2530
|
-
* viking-date-picker — input + calendar popover
|
|
2732
|
+
* viking-date-picker — input + calendar popover.
|
|
2531
2733
|
* Value is an ISO date string (YYYY-MM-DD). ControlValueAccessor-compatible.
|
|
2532
2734
|
*/
|
|
2533
2735
|
class VikingDatePicker extends VikingControl {
|
|
@@ -2610,7 +2812,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
2610
2812
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
2611
2813
|
|
|
2612
2814
|
/**
|
|
2613
|
-
* viking-dropdown — expandable menu
|
|
2815
|
+
* viking-dropdown — expandable menu.
|
|
2614
2816
|
* Project the trigger with `vikingTrigger`; fill the menu with viking-menu-item.
|
|
2615
2817
|
*/
|
|
2616
2818
|
class VikingDropdown {
|
|
@@ -2732,7 +2934,7 @@ const ACTIONS = [
|
|
|
2732
2934
|
{ icon: 'list-ordered', command: 'insertOrderedList', label: 'Numbered list' },
|
|
2733
2935
|
];
|
|
2734
2936
|
/**
|
|
2735
|
-
* viking-editor — lightweight rich text editor
|
|
2937
|
+
* viking-editor — lightweight rich text editor.
|
|
2736
2938
|
* Zero-dependency contenteditable with a formatting toolbar.
|
|
2737
2939
|
* Value is HTML. ControlValueAccessor-compatible.
|
|
2738
2940
|
*/
|
|
@@ -2876,7 +3078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
2876
3078
|
|
|
2877
3079
|
/**
|
|
2878
3080
|
* viking-field — label / description / error wrapper for any control
|
|
2879
|
-
|
|
3081
|
+
*.
|
|
2880
3082
|
* The projected control is associated with the label by wrapping.
|
|
2881
3083
|
*/
|
|
2882
3084
|
class VikingField {
|
|
@@ -2970,7 +3172,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
2970
3172
|
}] });
|
|
2971
3173
|
|
|
2972
3174
|
/**
|
|
2973
|
-
* viking-file-upload — drag & drop file zone
|
|
3175
|
+
* viking-file-upload — drag & drop file zone.
|
|
2974
3176
|
*/
|
|
2975
3177
|
class VikingFileUpload {
|
|
2976
3178
|
heading = input('Drop files here or click to browse', /* @ts-ignore */
|
|
@@ -3196,7 +3398,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
3196
3398
|
|
|
3197
3399
|
/**
|
|
3198
3400
|
* viking-input — text input with icons, kbd hint and clearable state
|
|
3199
|
-
|
|
3401
|
+
*. ControlValueAccessor-compatible.
|
|
3200
3402
|
*/
|
|
3201
3403
|
class VikingInput extends VikingControl {
|
|
3202
3404
|
value = model('', /* @ts-ignore */
|
|
@@ -3297,7 +3499,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
3297
3499
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconTrailing", required: false }] }], kbd: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbd", required: false }] }], clearable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearable", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], cleared: [{ type: i0.Output, args: ["cleared"] }] } });
|
|
3298
3500
|
|
|
3299
3501
|
/**
|
|
3300
|
-
* viking-kanban — drag & drop board
|
|
3502
|
+
* viking-kanban — drag & drop board.
|
|
3301
3503
|
* Native HTML5 drag and drop; emits `moved` and updates the `columns` model.
|
|
3302
3504
|
*/
|
|
3303
3505
|
class VikingKanban {
|
|
@@ -3552,7 +3754,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
3552
3754
|
|
|
3553
3755
|
/**
|
|
3554
3756
|
* viking-modal — dialog built on the native <dialog> element
|
|
3555
|
-
|
|
3757
|
+
*. Toggle via the `open` model.
|
|
3556
3758
|
*/
|
|
3557
3759
|
class VikingModal {
|
|
3558
3760
|
dialogRef = viewChild.required('dialog');
|
|
@@ -3803,7 +4005,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
3803
4005
|
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }] } });
|
|
3804
4006
|
|
|
3805
4007
|
/**
|
|
3806
|
-
* viking-navbar — horizontal navigation container
|
|
4008
|
+
* viking-navbar — horizontal navigation container.
|
|
3807
4009
|
* Compose with viking-navbar-item and any other inline content.
|
|
3808
4010
|
*/
|
|
3809
4011
|
class VikingNavbar {
|
|
@@ -3875,7 +4077,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
3875
4077
|
}], propDecorators: { href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], current: [{ type: i0.Input, args: [{ isSignal: true, alias: "current", required: false }] }] } });
|
|
3876
4078
|
|
|
3877
4079
|
/**
|
|
3878
|
-
* viking-otp-input — one-time-passcode input
|
|
4080
|
+
* viking-otp-input — one-time-passcode input.
|
|
3879
4081
|
* Auto-advances between cells and supports paste. ControlValueAccessor-compatible.
|
|
3880
4082
|
*/
|
|
3881
4083
|
class VikingOtpInput extends VikingControl {
|
|
@@ -4001,7 +4203,7 @@ class VikingPageHeader {
|
|
|
4001
4203
|
[class.hud-header]="layout() === 'hud'"
|
|
4002
4204
|
>
|
|
4003
4205
|
<div class="viking-page-header-main title-group topbar-left">
|
|
4004
|
-
<ng-content select="[
|
|
4206
|
+
<ng-content select="[vikingPageHeaderBack]" />
|
|
4005
4207
|
@if (tag()) {
|
|
4006
4208
|
<div class="section-tag-row">
|
|
4007
4209
|
<span class="section-tag viking-page-header-tag">{{ tag() }}</span>
|
|
@@ -4011,10 +4213,10 @@ class VikingPageHeader {
|
|
|
4011
4213
|
@if (subtitle()) {
|
|
4012
4214
|
<p class="viking-page-header-subtitle hud-subtitle page-description">{{ subtitle() }}</p>
|
|
4013
4215
|
}
|
|
4014
|
-
<ng-content select="[
|
|
4216
|
+
<ng-content select="[vikingPageHeaderExtra]" />
|
|
4015
4217
|
</div>
|
|
4016
4218
|
<div class="viking-page-header-actions topbar-right">
|
|
4017
|
-
<ng-content select="[
|
|
4219
|
+
<ng-content select="[vikingPageHeaderActions]" />
|
|
4018
4220
|
</div>
|
|
4019
4221
|
</header>
|
|
4020
4222
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
@@ -4034,7 +4236,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
4034
4236
|
[class.hud-header]="layout() === 'hud'"
|
|
4035
4237
|
>
|
|
4036
4238
|
<div class="viking-page-header-main title-group topbar-left">
|
|
4037
|
-
<ng-content select="[
|
|
4239
|
+
<ng-content select="[vikingPageHeaderBack]" />
|
|
4038
4240
|
@if (tag()) {
|
|
4039
4241
|
<div class="section-tag-row">
|
|
4040
4242
|
<span class="section-tag viking-page-header-tag">{{ tag() }}</span>
|
|
@@ -4044,10 +4246,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
4044
4246
|
@if (subtitle()) {
|
|
4045
4247
|
<p class="viking-page-header-subtitle hud-subtitle page-description">{{ subtitle() }}</p>
|
|
4046
4248
|
}
|
|
4047
|
-
<ng-content select="[
|
|
4249
|
+
<ng-content select="[vikingPageHeaderExtra]" />
|
|
4048
4250
|
</div>
|
|
4049
4251
|
<div class="viking-page-header-actions topbar-right">
|
|
4050
|
-
<ng-content select="[
|
|
4252
|
+
<ng-content select="[vikingPageHeaderActions]" />
|
|
4051
4253
|
</div>
|
|
4052
4254
|
</header>
|
|
4053
4255
|
`,
|
|
@@ -4055,7 +4257,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
4055
4257
|
}], propDecorators: { tag: [{ type: i0.Input, args: [{ isSignal: true, alias: "tag", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }] } });
|
|
4056
4258
|
|
|
4057
4259
|
/**
|
|
4058
|
-
* viking-pagination — page navigation
|
|
4260
|
+
* viking-pagination — page navigation.
|
|
4059
4261
|
*/
|
|
4060
4262
|
class VikingPagination {
|
|
4061
4263
|
page = model(1, /* @ts-ignore */
|
|
@@ -4170,7 +4372,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
4170
4372
|
}], propDecorators: { page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }, { type: i0.Output, args: ["pageChange"] }], totalPages: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPages", required: true }] }] } });
|
|
4171
4373
|
|
|
4172
4374
|
/**
|
|
4173
|
-
* viking-pillbox — multi-value tag input
|
|
4375
|
+
* viking-pillbox — multi-value tag input.
|
|
4174
4376
|
* Type and press Enter (or comma) to add pills. ControlValueAccessor-compatible.
|
|
4175
4377
|
*/
|
|
4176
4378
|
class VikingPillbox extends VikingControl {
|
|
@@ -4278,7 +4480,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
4278
4480
|
}], propDecorators: { values: [{ type: i0.Input, args: [{ isSignal: true, alias: "values", required: false }] }, { type: i0.Output, args: ["valuesChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
4279
4481
|
|
|
4280
4482
|
/**
|
|
4281
|
-
* viking-popover — anchored floating panel
|
|
4483
|
+
* viking-popover — anchored floating panel.
|
|
4282
4484
|
* Project the trigger with the `vikingTrigger` attribute; everything else becomes
|
|
4283
4485
|
* the panel content. Closes on Escape or outside interaction.
|
|
4284
4486
|
*/
|
|
@@ -4339,7 +4541,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
4339
4541
|
}], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }] } });
|
|
4340
4542
|
|
|
4341
4543
|
/**
|
|
4342
|
-
* viking-profile — user identity block
|
|
4544
|
+
* viking-profile — user identity block.
|
|
4343
4545
|
* Project actions (e.g. viking-button) as content.
|
|
4344
4546
|
*/
|
|
4345
4547
|
class VikingProfile {
|
|
@@ -4379,7 +4581,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
4379
4581
|
|
|
4380
4582
|
/**
|
|
4381
4583
|
* viking-progress — determinate/indeterminate progress bar
|
|
4382
|
-
|
|
4584
|
+
*.
|
|
4383
4585
|
*/
|
|
4384
4586
|
class VikingProgress {
|
|
4385
4587
|
value = input(0, /* @ts-ignore */
|
|
@@ -4449,7 +4651,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
4449
4651
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }] } });
|
|
4450
4652
|
|
|
4451
4653
|
/**
|
|
4452
|
-
* viking-radio-group — radio group
|
|
4654
|
+
* viking-radio-group — radio group.
|
|
4453
4655
|
* ControlValueAccessor-compatible; options-driven for symmetry with viking-select.
|
|
4454
4656
|
*/
|
|
4455
4657
|
class VikingRadioGroup extends VikingControl {
|
|
@@ -4707,7 +4909,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
4707
4909
|
}], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], query: [{ type: i0.Input, args: [{ isSignal: true, alias: "query", required: false }] }, { type: i0.Output, args: ["queryChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], paletteKeydown: [{ type: i0.Output, args: ["paletteKeydown"] }], queryInput: [{ type: i0.ViewChild, args: ['queryInput', { isSignal: true }] }] } });
|
|
4708
4910
|
|
|
4709
4911
|
/**
|
|
4710
|
-
* viking-select — custom listbox select
|
|
4912
|
+
* viking-select — custom listbox select.
|
|
4711
4913
|
* ControlValueAccessor-compatible with full keyboard support.
|
|
4712
4914
|
*/
|
|
4713
4915
|
class VikingSelect extends VikingControl {
|
|
@@ -4864,43 +5066,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
4864
5066
|
`, styles: [":host{position:relative;display:block}.viking-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--viking-space-1);width:100%;min-height:var(--viking-control-height);padding:0 var(--viking-space-2);background:var(--viking-surface);border:1px solid var(--viking-border-strong);border-radius:var(--viking-radius);box-shadow:var(--viking-shadow-sm);color:var(--viking-text);font-family:var(--viking-font-family);font-size:var(--viking-font-size);cursor:pointer;transition:var(--viking-transition);text-align:left}.viking-select-trigger:hover:not(:disabled){border-color:var(--viking-accent-strong)}.viking-select-trigger:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset)}.viking-select-trigger:disabled{opacity:.55;cursor:not-allowed}.viking-select-placeholder{color:var(--viking-text-muted)}.viking-select-panel{position:absolute;top:calc(100% + var(--viking-space-1));left:0;right:0;display:flex;flex-direction:column;gap:2px;margin:0;padding:var(--viking-space-1);background:var(--viking-surface);border:1px solid var(--viking-border-strong);border-radius:var(--viking-radius);box-shadow:var(--viking-shadow-md);z-index:var(--viking-z-overlay);max-height:315px;overflow:auto}.viking-select-option{display:flex;align-items:center;justify-content:space-between;gap:var(--viking-space-1);padding:var(--viking-space-1);border:none;background:transparent;text-align:left;width:100%;border-radius:calc(var(--viking-radius) / 1.5);font-family:var(--viking-font-family);font-size:var(--viking-font-size);color:var(--viking-text);cursor:pointer}.viking-select-option:disabled{opacity:.55;cursor:not-allowed}.viking-select-option:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:-2px}.viking-active{background:var(--viking-accent-soft)}.viking-selected{font-weight:600;color:var(--viking-accent)}\n"] }]
|
|
4865
5067
|
}], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
4866
5068
|
|
|
4867
|
-
/**
|
|
4868
|
-
* viking-separator — horizontal/vertical rule with optional label
|
|
4869
|
-
* (https://fluxui.dev/components/separator).
|
|
4870
|
-
*/
|
|
4871
|
-
class VikingSeparator {
|
|
4872
|
-
orientation = input('horizontal', /* @ts-ignore */
|
|
4873
|
-
...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
4874
|
-
text = input('', /* @ts-ignore */
|
|
4875
|
-
...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
4876
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4877
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: VikingSeparator, isStandalone: true, selector: "viking-separator", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "separator" }, properties: { "attr.aria-orientation": "orientation()", "class.viking-vertical": "orientation() === 'vertical'" } }, ngImport: i0, template: `
|
|
4878
|
-
@if (text() && orientation() === 'horizontal') {
|
|
4879
|
-
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
4880
|
-
<span class="viking-separator-text">{{ text() }}</span>
|
|
4881
|
-
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
4882
|
-
} @else {
|
|
4883
|
-
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
4884
|
-
}
|
|
4885
|
-
`, isInline: true, styles: [":host{display:flex;align-items:center;gap:var(--viking-space-2);width:100%}:host(.viking-vertical){width:auto;align-self:stretch}.viking-separator-line{flex:1;border-top:1px solid var(--viking-border)}:host(.viking-vertical) .viking-separator-line{flex:none;border-top:none;border-left:1px solid var(--viking-border);height:100%;min-height:var(--viking-space-3)}.viking-separator-text{font-family:var(--viking-font-family);font-size:var(--viking-font-size);color:var(--viking-text-muted);white-space:nowrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4886
|
-
}
|
|
4887
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: VikingSeparator, decorators: [{
|
|
4888
|
-
type: Component,
|
|
4889
|
-
args: [{ selector: 'viking-separator', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
4890
|
-
role: 'separator',
|
|
4891
|
-
'[attr.aria-orientation]': 'orientation()',
|
|
4892
|
-
'[class.viking-vertical]': "orientation() === 'vertical'",
|
|
4893
|
-
}, template: `
|
|
4894
|
-
@if (text() && orientation() === 'horizontal') {
|
|
4895
|
-
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
4896
|
-
<span class="viking-separator-text">{{ text() }}</span>
|
|
4897
|
-
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
4898
|
-
} @else {
|
|
4899
|
-
<span class="viking-separator-line" aria-hidden="true"></span>
|
|
4900
|
-
}
|
|
4901
|
-
`, styles: [":host{display:flex;align-items:center;gap:var(--viking-space-2);width:100%}:host(.viking-vertical){width:auto;align-self:stretch}.viking-separator-line{flex:1;border-top:1px solid var(--viking-border)}:host(.viking-vertical) .viking-separator-line{flex:none;border-top:none;border-left:1px solid var(--viking-border);height:100%;min-height:var(--viking-space-3)}.viking-separator-text{font-family:var(--viking-font-family);font-size:var(--viking-font-size);color:var(--viking-text-muted);white-space:nowrap}\n"] }]
|
|
4902
|
-
}], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }] } });
|
|
4903
|
-
|
|
4904
5069
|
/**
|
|
4905
5070
|
* viking-scroll-area — constrained scroll region with clinical scrollbar styling.
|
|
4906
5071
|
*/
|
|
@@ -5024,7 +5189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
5024
5189
|
}], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }], dialogRef: [{ type: i0.ViewChild, args: ['dialog', { isSignal: true }] }] } });
|
|
5025
5190
|
|
|
5026
5191
|
/**
|
|
5027
|
-
* viking-skeleton — loading placeholder
|
|
5192
|
+
* viking-skeleton — loading placeholder.
|
|
5028
5193
|
*/
|
|
5029
5194
|
class VikingSkeleton {
|
|
5030
5195
|
shape = input('line', /* @ts-ignore */
|
|
@@ -5093,7 +5258,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
5093
5258
|
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
|
|
5094
5259
|
|
|
5095
5260
|
/**
|
|
5096
|
-
* viking-slider — range slider
|
|
5261
|
+
* viking-slider — range slider.
|
|
5097
5262
|
* ControlValueAccessor-compatible.
|
|
5098
5263
|
*/
|
|
5099
5264
|
class VikingSlider extends VikingControl {
|
|
@@ -5178,7 +5343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
5178
5343
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], showValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValue", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
5179
5344
|
|
|
5180
5345
|
/**
|
|
5181
|
-
* viking-switch — toggle switch
|
|
5346
|
+
* viking-switch — toggle switch.
|
|
5182
5347
|
* ControlValueAccessor-compatible.
|
|
5183
5348
|
*/
|
|
5184
5349
|
class VikingSwitch extends VikingControl {
|
|
@@ -5364,7 +5529,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
5364
5529
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
|
|
5365
5530
|
|
|
5366
5531
|
/**
|
|
5367
|
-
* viking-textarea — auto-growing textarea
|
|
5532
|
+
* viking-textarea — auto-growing textarea.
|
|
5368
5533
|
* ControlValueAccessor-compatible.
|
|
5369
5534
|
*/
|
|
5370
5535
|
class VikingTextarea extends VikingControl {
|
|
@@ -5510,7 +5675,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
5510
5675
|
}], propDecorators: { pressed: [{ type: i0.Input, args: [{ isSignal: true, alias: "pressed", required: false }] }, { type: i0.Output, args: ["pressedChange"] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], toggled: [{ type: i0.Output, args: ["toggled"] }] } });
|
|
5511
5676
|
|
|
5512
5677
|
/**
|
|
5513
|
-
* viking-time-picker — dropdown time selection
|
|
5678
|
+
* viking-time-picker — dropdown time selection.
|
|
5514
5679
|
* Value is a 24h HH:MM string. ControlValueAccessor-compatible.
|
|
5515
5680
|
*/
|
|
5516
5681
|
class VikingTimePicker extends VikingControl {
|
|
@@ -5629,7 +5794,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
5629
5794
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], stepMinutes: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepMinutes", required: false }] }] } });
|
|
5630
5795
|
|
|
5631
5796
|
/**
|
|
5632
|
-
* viking-timeline — vertical event feed
|
|
5797
|
+
* viking-timeline — vertical event feed.
|
|
5633
5798
|
* Compose with viking-timeline-item.
|
|
5634
5799
|
*/
|
|
5635
5800
|
class VikingTimeline {
|
|
@@ -5706,7 +5871,7 @@ const TONE_ICONS = {
|
|
|
5706
5871
|
muted: 'info',
|
|
5707
5872
|
};
|
|
5708
5873
|
/**
|
|
5709
|
-
* VikingToastService — imperative toast API
|
|
5874
|
+
* VikingToastService — imperative toast API.
|
|
5710
5875
|
* Render a single <viking-toaster> outlet near the app root.
|
|
5711
5876
|
*/
|
|
5712
5877
|
class VikingToastService {
|
|
@@ -5814,7 +5979,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
5814
5979
|
}], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }] } });
|
|
5815
5980
|
|
|
5816
5981
|
/**
|
|
5817
|
-
* fluxTooltip — attribute directive tooltip
|
|
5982
|
+
* fluxTooltip — attribute directive tooltip.
|
|
5818
5983
|
* Shows on hover and keyboard focus; positions itself relative to the host.
|
|
5819
5984
|
*/
|
|
5820
5985
|
class VikingTooltip {
|
|
@@ -5891,7 +6056,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
5891
6056
|
}], propDecorators: { fluxTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "fluxTooltip", required: true }] }], tooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipPosition", required: false }] }], tooltipKbd: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipKbd", required: false }] }] } });
|
|
5892
6057
|
|
|
5893
6058
|
/**
|
|
5894
|
-
* viking-heading — consistent heading sizes
|
|
6059
|
+
* viking-heading — consistent heading sizes.
|
|
5895
6060
|
*/
|
|
5896
6061
|
class VikingHeading {
|
|
5897
6062
|
size = input('base', /* @ts-ignore */
|
|
@@ -5915,7 +6080,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
5915
6080
|
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: false }] }] } });
|
|
5916
6081
|
|
|
5917
6082
|
/**
|
|
5918
|
-
* viking-text — body text with semantic variants
|
|
6083
|
+
* viking-text — body text with semantic variants.
|
|
5919
6084
|
*/
|
|
5920
6085
|
class VikingText {
|
|
5921
6086
|
variant = input('default', /* @ts-ignore */
|
|
@@ -5945,5 +6110,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
5945
6110
|
* Generated bundle index. Do not edit.
|
|
5946
6111
|
*/
|
|
5947
6112
|
|
|
5948
|
-
export { VIKING_ICON_NAMES, VIKING_ICON_PATHS, VIKING_TABS, VIKING_TOGGLE_GROUP, VikingAccordion, VikingAccordionItem, VikingAppHeader, VikingAppSidebar, VikingAutocomplete, VikingAvatar, VikingBadge, VikingBar, VikingBrand, VikingBreadcrumbs, VikingButton, VikingButtonGroup, VikingCalendar, VikingCallout, VikingCard, VikingCardFooter, VikingCardHeader, VikingCarousel, VikingCarouselSlide, VikingChart, VikingCheckbox, VikingColorPicker, VikingCommand, VikingComposer, VikingContext, VikingControl, VikingDatePicker, VikingDropdown, VikingEditor, VikingFab, VikingField, VikingFileUpload, VikingFooter, VikingGaugeArc, VikingHeading, VikingHudPanel, VikingIcon, VikingInput, VikingKanban, VikingKbd, VikingLabel, VikingMenuItem, VikingMenubar, VikingMenubarItem, VikingMetricCard, VikingMetricRow, VikingModal, VikingNativeSelect, VikingNavbar, VikingNavbarItem, VikingNavigationMenu, VikingOtpInput, VikingPageHeader, VikingPagination, VikingPillbox, VikingPopover, VikingProfile, VikingProgress, VikingRadioGroup, VikingRingGauge, VikingScrollArea, VikingSearchPalette, VikingSelect, VikingSeparator, VikingSheet, VikingSkeleton, VikingSlider, VikingSpinner, VikingSwitch, VikingTab, VikingTabPanel, VikingTable, VikingTabs, VikingText, VikingTextarea, VikingTimePicker, VikingTimeline, VikingTimelineItem, VikingToastService, VikingToaster, VikingToggle, VikingToggleGroup, VikingTooltip, VikingUptimeBar, provideVikingCva };
|
|
6113
|
+
export { VIKING_ICON_NAMES, VIKING_ICON_PATHS, VIKING_TABS, VIKING_TOGGLE_GROUP, VikingAccordion, VikingAccordionItem, VikingAppHeader, VikingAppSidebar, VikingAuthPanel, VikingAutocomplete, VikingAvatar, VikingBadge, VikingBar, VikingBrand, VikingBreadcrumbs, VikingButton, VikingButtonGroup, VikingCalendar, VikingCallout, VikingCard, VikingCardFooter, VikingCardHeader, VikingCarousel, VikingCarouselSlide, VikingChart, VikingCheckbox, VikingColorPicker, VikingCommand, VikingComposer, VikingContext, VikingControl, VikingDatePicker, VikingDropdown, VikingEditor, VikingFab, VikingField, VikingFileUpload, VikingFooter, VikingGaugeArc, VikingHeading, VikingHudPanel, VikingIcon, VikingInput, VikingKanban, VikingKbd, VikingLabel, VikingMenuItem, VikingMenubar, VikingMenubarItem, VikingMetricCard, VikingMetricRow, VikingModal, VikingNativeSelect, VikingNavbar, VikingNavbarItem, VikingNavigationMenu, VikingOtpInput, VikingPageHeader, VikingPagination, VikingPillbox, VikingPopover, VikingProfile, VikingProgress, VikingRadioGroup, VikingRingGauge, VikingScrollArea, VikingSearchPalette, VikingSelect, VikingSeparator, VikingSheet, VikingSkeleton, VikingSlider, VikingSpinner, VikingSwitch, VikingTab, VikingTabPanel, VikingTable, VikingTabs, VikingText, VikingTextarea, VikingTimePicker, VikingTimeline, VikingTimelineItem, VikingToastService, VikingToaster, VikingToggle, VikingToggleGroup, VikingTooltip, VikingUptimeBar, provideVikingCva };
|
|
5949
6114
|
//# sourceMappingURL=dataengineeringformachinelearning-viking-ui.mjs.map
|