@dataengineeringformachinelearning/viking-ui 4.0.2 → 4.0.4
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 +7 -5
- package/dist/README.md +7 -5
- package/dist/deml-components.css +23 -0
- package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +211 -23
- package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +1 -1
- package/dist/package.json +7 -1
- package/dist/src/web/card/viking-card-wc.ts +2 -1
- package/dist/src/web/core/styles.ts +125 -2
- package/dist/src/web/search-palette/viking-search-palette-wc.ts +1 -0
- package/dist/src/web/suite-header/viking-suite-header-wc.ts +15 -0
- package/dist/types/dataengineeringformachinelearning-viking-ui.d.ts +3 -2
- package/dist/viking-components.css +425 -31
- package/dist/viking-ui-elements.js +180 -42
- package/dist/viking-ui.css +1 -1
- package/dist/web-components.js +143 -3
- package/package.json +7 -1
- package/src/index.ts +1 -1
- package/src/lib/button/button.scss +23 -0
- package/src/lib/card/card.ts +35 -5
- package/src/lib/footer/footer.scss +8 -1
- package/src/lib/site-drakkar/site-footer.ts +5 -1
- package/src/lib/site-drakkar/site-navbar.ts +23 -4
- package/src/lib/theme-toggle/theme-toggle.ts +1 -0
- package/src/styles/_buttons.scss +92 -7
- package/src/styles/_layout-enforcement.scss +66 -3
- package/src/styles/components/footer.scss +26 -13
- package/src/styles/components/icon-inline.scss +23 -0
- package/src/styles/components.scss +276 -9
- package/src/styles/static-navbar.scss +110 -36
- package/src/styles/surfaces/docs-showcase.scss +64 -1
- package/src/styles/surfaces/marketing-landing.scss +247 -6
- package/src/styles/surfaces/swagger-ui.scss +92 -1
- package/src/styles/viking-ui.scss +2 -0
- package/src/web/card/viking-card-wc.ts +2 -1
- package/src/web/core/styles.ts +125 -2
- package/src/web/search-palette/viking-search-palette-wc.ts +1 -0
- package/src/web/suite-header/viking-suite-header-wc.ts +15 -0
package/dist/web-components.js
CHANGED
|
@@ -375,7 +375,7 @@ var VIKING_BUTTON_STYLES = `
|
|
|
375
375
|
gap: var(--viking-space-1);
|
|
376
376
|
min-height: var(--viking-control-height);
|
|
377
377
|
padding: 0 var(--viking-control-padding-x);
|
|
378
|
-
border-radius: var(--viking-radius);
|
|
378
|
+
border-radius: var(--viking-radius-lg);
|
|
379
379
|
border: 1px solid transparent;
|
|
380
380
|
cursor: pointer;
|
|
381
381
|
text-decoration: none;
|
|
@@ -384,9 +384,29 @@ var VIKING_BUTTON_STYLES = `
|
|
|
384
384
|
min-width: var(--viking-btn-min-width, 120px);
|
|
385
385
|
white-space: nowrap;
|
|
386
386
|
position: relative;
|
|
387
|
+
background-clip: padding-box;
|
|
388
|
+
isolation: isolate;
|
|
387
389
|
user-select: none;
|
|
388
390
|
-webkit-tap-highlight-color: transparent;
|
|
389
391
|
box-sizing: border-box;
|
|
392
|
+
overflow: hidden;
|
|
393
|
+
box-shadow: var(--viking-shadow-sm);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
.viking-btn::before {
|
|
397
|
+
content: "";
|
|
398
|
+
position: absolute;
|
|
399
|
+
inset: 1px 1px auto;
|
|
400
|
+
height: 1px;
|
|
401
|
+
background: linear-gradient(
|
|
402
|
+
90deg,
|
|
403
|
+
transparent,
|
|
404
|
+
color-mix(in srgb, var(--viking-metallic-100) 45%, transparent),
|
|
405
|
+
transparent
|
|
406
|
+
);
|
|
407
|
+
pointer-events: none;
|
|
408
|
+
opacity: 0.82;
|
|
409
|
+
transition: var(--viking-transition-interactive);
|
|
390
410
|
}
|
|
391
411
|
|
|
392
412
|
.viking-btn:focus-visible {
|
|
@@ -403,6 +423,36 @@ var VIKING_BUTTON_STYLES = `
|
|
|
403
423
|
box-shadow: none !important;
|
|
404
424
|
}
|
|
405
425
|
|
|
426
|
+
.viking-btn[aria-busy='true']::before,
|
|
427
|
+
.viking-btn[aria-busy='true'] .viking-btn-label {
|
|
428
|
+
opacity: 0.85;
|
|
429
|
+
transform: translateY(1px);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
.viking-btn[aria-busy='true'] .viking-btn-spinner {
|
|
433
|
+
opacity: 0.85;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
.viking-btn::after {
|
|
437
|
+
content: "";
|
|
438
|
+
position: absolute;
|
|
439
|
+
inset: auto 0 0 0;
|
|
440
|
+
height: 1px;
|
|
441
|
+
background: linear-gradient(
|
|
442
|
+
90deg,
|
|
443
|
+
transparent,
|
|
444
|
+
color-mix(
|
|
445
|
+
in srgb,
|
|
446
|
+
var(--viking-metallic-100) 18%,
|
|
447
|
+
transparent
|
|
448
|
+
),
|
|
449
|
+
transparent
|
|
450
|
+
);
|
|
451
|
+
pointer-events: none;
|
|
452
|
+
opacity: 0.45;
|
|
453
|
+
transition: var(--viking-transition-interactive);
|
|
454
|
+
}
|
|
455
|
+
|
|
406
456
|
.viking-btn-sm {
|
|
407
457
|
min-height: var(--viking-control-height-sm);
|
|
408
458
|
padding: 0 var(--viking-space-2);
|
|
@@ -467,6 +517,20 @@ var VIKING_BUTTON_STYLES = `
|
|
|
467
517
|
height: var(--viking-icon-size-md, 20px);
|
|
468
518
|
}
|
|
469
519
|
|
|
520
|
+
::slotted(viking-icon),
|
|
521
|
+
::slotted(.viking-icon),
|
|
522
|
+
::slotted([data-viking-icon]) {
|
|
523
|
+
display: inline-flex;
|
|
524
|
+
align-items: center;
|
|
525
|
+
justify-content: center;
|
|
526
|
+
width: var(--viking-icon-size-md);
|
|
527
|
+
height: var(--viking-icon-size-md);
|
|
528
|
+
line-height: 1;
|
|
529
|
+
flex-shrink: 0;
|
|
530
|
+
pointer-events: none;
|
|
531
|
+
flex: 0 0 auto;
|
|
532
|
+
}
|
|
533
|
+
|
|
470
534
|
.viking-btn-outline {
|
|
471
535
|
background: var(--viking-surface);
|
|
472
536
|
color: var(--viking-text);
|
|
@@ -481,6 +545,14 @@ var VIKING_BUTTON_STYLES = `
|
|
|
481
545
|
transform: translateY(var(--viking-state-hover-lift));
|
|
482
546
|
}
|
|
483
547
|
|
|
548
|
+
.viking-btn-outline:active:not(:disabled):not([aria-busy='true']) {
|
|
549
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
550
|
+
box-shadow: inset 0 1px 2px
|
|
551
|
+
color-mix(in srgb, var(--viking-black) 28%, transparent),
|
|
552
|
+
var(--viking-shadow-sm);
|
|
553
|
+
border-color: var(--viking-border-strong);
|
|
554
|
+
}
|
|
555
|
+
|
|
484
556
|
.viking-btn-primary {
|
|
485
557
|
background: var(--viking-accent);
|
|
486
558
|
color: var(--viking-accent-content);
|
|
@@ -495,6 +567,14 @@ var VIKING_BUTTON_STYLES = `
|
|
|
495
567
|
transform: translateY(var(--viking-state-hover-lift));
|
|
496
568
|
}
|
|
497
569
|
|
|
570
|
+
.viking-btn-primary:active:not(:disabled):not([aria-busy='true']) {
|
|
571
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
572
|
+
box-shadow: inset 0 1px 2px
|
|
573
|
+
color-mix(in srgb, var(--viking-black) 28%, transparent),
|
|
574
|
+
var(--viking-shadow-sm);
|
|
575
|
+
border-color: color-mix(in srgb, var(--viking-accent) 82%, var(--viking-black));
|
|
576
|
+
}
|
|
577
|
+
|
|
498
578
|
.viking-btn-secondary {
|
|
499
579
|
background: var(--viking-accent-secondary);
|
|
500
580
|
color: var(--viking-accent-secondary-content);
|
|
@@ -509,6 +589,14 @@ var VIKING_BUTTON_STYLES = `
|
|
|
509
589
|
transform: translateY(var(--viking-state-hover-lift));
|
|
510
590
|
}
|
|
511
591
|
|
|
592
|
+
.viking-btn-secondary:active:not(:disabled):not([aria-busy='true']) {
|
|
593
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
594
|
+
box-shadow: inset 0 1px 2px
|
|
595
|
+
color-mix(in srgb, var(--viking-black) 28%, transparent),
|
|
596
|
+
var(--viking-shadow-sm);
|
|
597
|
+
border-color: color-mix(in srgb, var(--viking-accent-secondary) 82%, var(--viking-black));
|
|
598
|
+
}
|
|
599
|
+
|
|
512
600
|
.viking-btn-filled {
|
|
513
601
|
background: var(--viking-surface-alt);
|
|
514
602
|
color: var(--viking-text);
|
|
@@ -523,6 +611,13 @@ var VIKING_BUTTON_STYLES = `
|
|
|
523
611
|
transform: translateY(var(--viking-state-hover-lift));
|
|
524
612
|
}
|
|
525
613
|
|
|
614
|
+
.viking-btn-filled:active:not(:disabled):not([aria-busy='true']) {
|
|
615
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
616
|
+
box-shadow: var(--viking-shadow-sm);
|
|
617
|
+
border-color: color-mix(in srgb, var(--viking-accent) 20%, var(--viking-border));
|
|
618
|
+
background: color-mix(in srgb, var(--viking-surface-alt) 84%, var(--viking-accent));
|
|
619
|
+
}
|
|
620
|
+
|
|
526
621
|
.viking-btn-danger {
|
|
527
622
|
background: var(--viking-danger);
|
|
528
623
|
color: var(--viking-on-danger);
|
|
@@ -532,10 +627,20 @@ var VIKING_BUTTON_STYLES = `
|
|
|
532
627
|
|
|
533
628
|
.viking-btn-danger:hover:not(:disabled):not([aria-busy='true']) {
|
|
534
629
|
background: color-mix(in srgb, var(--viking-danger) 88%, var(--viking-white));
|
|
630
|
+
border-color: color-mix(in srgb, var(--viking-danger) 92%, var(--viking-white));
|
|
535
631
|
box-shadow: var(--viking-shadow-hover);
|
|
536
632
|
transform: translateY(var(--viking-state-hover-lift));
|
|
537
633
|
}
|
|
538
634
|
|
|
635
|
+
.viking-btn-danger:active:not(:disabled):not([aria-busy='true']) {
|
|
636
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
637
|
+
border-color: color-mix(in srgb, var(--viking-danger) 72%, var(--viking-black));
|
|
638
|
+
background: color-mix(in srgb, var(--viking-danger) 84%, var(--viking-black));
|
|
639
|
+
box-shadow: inset 0 1px 2px
|
|
640
|
+
color-mix(in srgb, var(--viking-black) 28%, transparent),
|
|
641
|
+
var(--viking-shadow-sm);
|
|
642
|
+
}
|
|
643
|
+
|
|
539
644
|
.viking-btn-ghost {
|
|
540
645
|
background: transparent;
|
|
541
646
|
color: var(--viking-text);
|
|
@@ -549,6 +654,12 @@ var VIKING_BUTTON_STYLES = `
|
|
|
549
654
|
color: var(--viking-accent-strong);
|
|
550
655
|
}
|
|
551
656
|
|
|
657
|
+
.viking-btn-ghost:active:not(:disabled):not([aria-busy='true']) {
|
|
658
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
659
|
+
background: var(--viking-accent-soft);
|
|
660
|
+
color: var(--viking-accent-strong);
|
|
661
|
+
}
|
|
662
|
+
|
|
552
663
|
.viking-btn-subtle {
|
|
553
664
|
background: transparent;
|
|
554
665
|
color: var(--viking-text-muted);
|
|
@@ -563,6 +674,13 @@ var VIKING_BUTTON_STYLES = `
|
|
|
563
674
|
border-color: var(--viking-border-strong);
|
|
564
675
|
}
|
|
565
676
|
|
|
677
|
+
.viking-btn-subtle:active:not(:disabled):not([aria-busy='true']) {
|
|
678
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
679
|
+
border-color: var(--viking-border);
|
|
680
|
+
background: color-mix(in srgb, var(--viking-accent-soft) 70%, var(--viking-surface));
|
|
681
|
+
box-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 24%, transparent);
|
|
682
|
+
}
|
|
683
|
+
|
|
566
684
|
.viking-btn:active:not(:disabled):not([aria-busy='true']) {
|
|
567
685
|
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
568
686
|
}
|
|
@@ -570,7 +688,12 @@ var VIKING_BUTTON_STYLES = `
|
|
|
570
688
|
.viking-btn-label {
|
|
571
689
|
display: inline-flex;
|
|
572
690
|
align-items: center;
|
|
573
|
-
|
|
691
|
+
gap: var(--viking-space-1);
|
|
692
|
+
line-height: 1.2;
|
|
693
|
+
min-width: 0;
|
|
694
|
+
justify-content: center;
|
|
695
|
+
text-align: center;
|
|
696
|
+
white-space: nowrap;
|
|
574
697
|
}
|
|
575
698
|
|
|
576
699
|
.viking-btn-spinner {
|
|
@@ -1737,7 +1860,7 @@ var VikingCardWc = class extends HTMLElementBase {
|
|
|
1737
1860
|
static tag = "viking-card";
|
|
1738
1861
|
static legacyTag = "viking-card-wc";
|
|
1739
1862
|
static get observedAttributes() {
|
|
1740
|
-
return ["compact", "interactive", "title"];
|
|
1863
|
+
return ["compact", "interactive", "title", "loading"];
|
|
1741
1864
|
}
|
|
1742
1865
|
connectedCallback() {
|
|
1743
1866
|
this.syncClasses();
|
|
@@ -1754,6 +1877,7 @@ var VikingCardWc = class extends HTMLElementBase {
|
|
|
1754
1877
|
"viking-card-interactive",
|
|
1755
1878
|
this.hasAttribute("interactive")
|
|
1756
1879
|
);
|
|
1880
|
+
this.classList.toggle("viking-card-loading", this.hasAttribute("loading"));
|
|
1757
1881
|
const title = this.getAttribute("title");
|
|
1758
1882
|
if (title) {
|
|
1759
1883
|
this.setAttribute("role", "region");
|
|
@@ -2234,6 +2358,7 @@ var VikingSearchPaletteWc = class extends HTMLElementBase {
|
|
|
2234
2358
|
}
|
|
2235
2359
|
connectedCallback() {
|
|
2236
2360
|
this.render();
|
|
2361
|
+
this.removeAttribute("open");
|
|
2237
2362
|
this.syncOpen();
|
|
2238
2363
|
this.bindGlobalShortcut();
|
|
2239
2364
|
this.dialogEl?.addEventListener("close", this.onClose);
|
|
@@ -3402,6 +3527,17 @@ var VIKING_SUITE_HEADER_STYLES = `
|
|
|
3402
3527
|
text-transform: uppercase;
|
|
3403
3528
|
}
|
|
3404
3529
|
|
|
3530
|
+
.suite-header__auth-icon,
|
|
3531
|
+
.suite-header__menu-icon,
|
|
3532
|
+
.suite-header__action-icon,
|
|
3533
|
+
.suite-header__avatar-icon,
|
|
3534
|
+
.suite-header__chevron {
|
|
3535
|
+
display: inline-flex;
|
|
3536
|
+
align-items: center;
|
|
3537
|
+
justify-content: center;
|
|
3538
|
+
flex-shrink: 0;
|
|
3539
|
+
}
|
|
3540
|
+
|
|
3405
3541
|
.suite-header__auth-link:hover {
|
|
3406
3542
|
background: var(--viking-accent-hover);
|
|
3407
3543
|
color: var(--viking-accent-content);
|
|
@@ -3554,6 +3690,10 @@ viking-suite-command-palette {
|
|
|
3554
3690
|
.suite-header__menu-button {
|
|
3555
3691
|
display: none;
|
|
3556
3692
|
}
|
|
3693
|
+
|
|
3694
|
+
.suite-header[data-menu-open='true'] .suite-header__mobile {
|
|
3695
|
+
display: none;
|
|
3696
|
+
}
|
|
3557
3697
|
}
|
|
3558
3698
|
`;
|
|
3559
3699
|
var detectContext2 = () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dataengineeringformachinelearning/viking-ui",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.4",
|
|
4
4
|
"description": "Universal Viking-UI design system for Astro, Angular, and Django.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -24,7 +24,13 @@
|
|
|
24
24
|
"import": "./dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs",
|
|
25
25
|
"default": "./dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs"
|
|
26
26
|
},
|
|
27
|
+
"./angular": {
|
|
28
|
+
"types": "./dist/types/dataengineeringformachinelearning-viking-ui.d.ts",
|
|
29
|
+
"import": "./dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs",
|
|
30
|
+
"default": "./dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs"
|
|
31
|
+
},
|
|
27
32
|
"./dist/index.js": "./dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs",
|
|
33
|
+
"./dist/index.d.ts": "./dist/types/dataengineeringformachinelearning-viking-ui.d.ts",
|
|
28
34
|
"./dist/viking-ui.css": "./dist/viking-ui.css",
|
|
29
35
|
"./dist/viking-ui-elements.js": "./dist/viking-ui-elements.js",
|
|
30
36
|
"./dist/web-components.js": "./dist/web-components.js",
|
package/src/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./
|
|
1
|
+
export * from "./public-api";
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
:host {
|
|
4
4
|
display: inline-flex;
|
|
5
|
+
align-items: center;
|
|
5
6
|
}
|
|
6
7
|
|
|
7
8
|
:host(.viking-full) {
|
|
@@ -18,6 +19,20 @@
|
|
|
18
19
|
|
|
19
20
|
.viking-btn {
|
|
20
21
|
@include btn.viking-btn-base;
|
|
22
|
+
line-height: 1;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.viking-btn viking-icon,
|
|
26
|
+
.viking-btn .viking-icon,
|
|
27
|
+
.viking-btn [data-viking-icon] {
|
|
28
|
+
flex-shrink: 0;
|
|
29
|
+
display: inline-flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
justify-content: center;
|
|
32
|
+
width: var(--viking-icon-size-md);
|
|
33
|
+
height: var(--viking-icon-size-md);
|
|
34
|
+
line-height: 1;
|
|
35
|
+
pointer-events: none;
|
|
21
36
|
}
|
|
22
37
|
|
|
23
38
|
.viking-sm {
|
|
@@ -79,7 +94,15 @@
|
|
|
79
94
|
.viking-btn-label {
|
|
80
95
|
display: inline-flex;
|
|
81
96
|
align-items: center;
|
|
97
|
+
gap: var(--viking-space-1);
|
|
82
98
|
line-height: inherit;
|
|
99
|
+
min-width: 0;
|
|
100
|
+
justify-content: center;
|
|
101
|
+
white-space: nowrap;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.viking-btn kbd {
|
|
105
|
+
margin-top: 0;
|
|
83
106
|
}
|
|
84
107
|
|
|
85
108
|
.viking-btn-kbd {
|
package/src/lib/card/card.ts
CHANGED
|
@@ -42,13 +42,18 @@ import { VikingSkeleton } from "../skeleton/skeleton";
|
|
|
42
42
|
background: var(--viking-surface-recipe, var(--viking-surface));
|
|
43
43
|
border: 1px solid var(--viking-border);
|
|
44
44
|
border-radius: var(--viking-radius-lg);
|
|
45
|
-
box-shadow:
|
|
45
|
+
box-shadow:
|
|
46
|
+
var(--viking-shadow-sm),
|
|
47
|
+
inset 0 1px 0
|
|
48
|
+
color-mix(in srgb, var(--viking-white-pure) 6%, transparent);
|
|
46
49
|
padding: var(--viking-card-padding, var(--viking-space-3));
|
|
47
50
|
color: var(--viking-text);
|
|
48
51
|
transition: var(--viking-transition-interactive);
|
|
49
52
|
position: relative;
|
|
53
|
+
isolation: isolate;
|
|
50
54
|
overflow: hidden;
|
|
51
55
|
min-width: 0;
|
|
56
|
+
background-clip: padding-box;
|
|
52
57
|
}
|
|
53
58
|
:host(.viking-card-headerless) .viking-card-header,
|
|
54
59
|
:host(.viking-card-headerless) viking-card-header {
|
|
@@ -72,17 +77,44 @@ import { VikingSkeleton } from "../skeleton/skeleton";
|
|
|
72
77
|
);
|
|
73
78
|
pointer-events: none;
|
|
74
79
|
}
|
|
80
|
+
|
|
81
|
+
:host::after {
|
|
82
|
+
content: "";
|
|
83
|
+
position: absolute;
|
|
84
|
+
inset: 0 auto auto 0;
|
|
85
|
+
right: 0;
|
|
86
|
+
width: 1px;
|
|
87
|
+
height: 28px;
|
|
88
|
+
background: linear-gradient(
|
|
89
|
+
180deg,
|
|
90
|
+
color-mix(in srgb, var(--viking-metallic-100) 22%, transparent),
|
|
91
|
+
transparent
|
|
92
|
+
);
|
|
93
|
+
pointer-events: none;
|
|
94
|
+
}
|
|
95
|
+
|
|
75
96
|
:host(.viking-card-interactive) {
|
|
76
97
|
cursor: pointer;
|
|
77
98
|
}
|
|
99
|
+
|
|
100
|
+
:host(.viking-card-interactive):focus-visible {
|
|
101
|
+
outline: var(--viking-ring-width) solid var(--viking-ring);
|
|
102
|
+
outline-offset: var(--viking-ring-offset);
|
|
103
|
+
}
|
|
78
104
|
:host(.viking-card-interactive):hover {
|
|
79
105
|
border-color: var(--viking-accent-strong);
|
|
80
|
-
box-shadow:
|
|
106
|
+
box-shadow:
|
|
107
|
+
var(--viking-shadow-hover),
|
|
108
|
+
inset 0 1px 0
|
|
109
|
+
color-mix(in srgb, var(--viking-white-pure) 6%, transparent);
|
|
81
110
|
transform: translateY(var(--viking-state-hover-lift));
|
|
82
111
|
}
|
|
83
112
|
:host(.viking-card-interactive):active {
|
|
84
113
|
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
85
|
-
box-shadow:
|
|
114
|
+
box-shadow:
|
|
115
|
+
inset 0 1px 2px
|
|
116
|
+
color-mix(in srgb, var(--viking-black) 24%, transparent),
|
|
117
|
+
var(--viking-shadow-sm);
|
|
86
118
|
}
|
|
87
119
|
:host(.viking-card-interactive):focus-visible {
|
|
88
120
|
outline: var(--viking-ring-width) solid var(--viking-ring);
|
|
@@ -132,7 +164,6 @@ export class VikingCard {
|
|
|
132
164
|
gap: var(--viking-space-2);
|
|
133
165
|
padding-bottom: var(--viking-space-2);
|
|
134
166
|
margin-bottom: var(--viking-space-2);
|
|
135
|
-
border-bottom: 1px solid var(--viking-border-subtle);
|
|
136
167
|
}
|
|
137
168
|
/* Support slotted left meta + right actions uniformly */
|
|
138
169
|
:host ::ng-deep > * {
|
|
@@ -162,7 +193,6 @@ export class VikingCardHeader {}
|
|
|
162
193
|
gap: var(--viking-space-2);
|
|
163
194
|
padding-top: var(--viking-space-2);
|
|
164
195
|
margin-top: var(--viking-space-2);
|
|
165
|
-
border-top: 1px solid var(--viking-border-subtle);
|
|
166
196
|
}
|
|
167
197
|
`,
|
|
168
198
|
],
|
|
@@ -127,13 +127,20 @@
|
|
|
127
127
|
border-radius: var(--viking-radius-pill);
|
|
128
128
|
background-color: transparent;
|
|
129
129
|
border: 1px solid var(--viking-border);
|
|
130
|
-
cursor:
|
|
130
|
+
cursor: pointer;
|
|
131
131
|
transition: var(--viking-transition-colors);
|
|
132
132
|
font-size: var(--viking-font-size);
|
|
133
133
|
font-weight: 500;
|
|
134
134
|
color: var(--viking-text-muted);
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
+
.viking-usa-badge:focus-visible,
|
|
138
|
+
.usa-badge:focus-visible {
|
|
139
|
+
outline: var(--viking-ring-width, 2px) solid
|
|
140
|
+
var(--viking-ring, var(--viking-ring));
|
|
141
|
+
outline-offset: var(--viking-ring-offset, 2px);
|
|
142
|
+
}
|
|
143
|
+
|
|
137
144
|
.viking-usa-badge:hover,
|
|
138
145
|
.usa-badge:hover {
|
|
139
146
|
background-color: color-mix(in srgb, var(--viking-surface) 95%, var(--viking-accent) 5%);
|
|
@@ -71,6 +71,10 @@ import {
|
|
|
71
71
|
class="usa-badge viking-usa-badge"
|
|
72
72
|
id="usa-badge"
|
|
73
73
|
(mouseenter)="usaBadgeHover.emit($event)"
|
|
74
|
+
(focusin)="usaBadgeHover.emit($event)"
|
|
75
|
+
(click)="usaBadgeHover.emit($event)"
|
|
76
|
+
role="button"
|
|
77
|
+
tabindex="0"
|
|
74
78
|
>
|
|
75
79
|
<span
|
|
76
80
|
class="usa-badge-icon viking-usa-badge-icon"
|
|
@@ -105,7 +109,7 @@ export class VikingSiteFooter {
|
|
|
105
109
|
|
|
106
110
|
readonly cookieSettings = output<Event>();
|
|
107
111
|
readonly bugReport = output<Event>();
|
|
108
|
-
readonly usaBadgeHover = output<
|
|
112
|
+
readonly usaBadgeHover = output<Event>();
|
|
109
113
|
|
|
110
114
|
protected readonly columns = SITE_FOOTER_COLUMNS;
|
|
111
115
|
|
|
@@ -100,8 +100,10 @@ import {
|
|
|
100
100
|
<div class="navbar-search" role="search">
|
|
101
101
|
<viking-button
|
|
102
102
|
variant="outline"
|
|
103
|
+
class="navbar-search-trigger"
|
|
103
104
|
[square]="true"
|
|
104
105
|
[compact]="true"
|
|
106
|
+
id="navbar-search-trigger"
|
|
105
107
|
icon="search"
|
|
106
108
|
label="Open search (⌘K)"
|
|
107
109
|
(pressed)="openSearch()"
|
|
@@ -114,6 +116,9 @@ import {
|
|
|
114
116
|
<viking-button
|
|
115
117
|
variant="primary"
|
|
116
118
|
icon="arrow-right"
|
|
119
|
+
class="auth-btn auth-btn-desktop"
|
|
120
|
+
id="auth-btn-desktop"
|
|
121
|
+
[loading]="isBusy()"
|
|
117
122
|
(pressed)="login.emit()"
|
|
118
123
|
>
|
|
119
124
|
Sign In
|
|
@@ -122,11 +127,18 @@ import {
|
|
|
122
127
|
<viking-button
|
|
123
128
|
variant="primary"
|
|
124
129
|
icon="home"
|
|
130
|
+
class="auth-btn auth-btn-desktop"
|
|
131
|
+
id="auth-btn-desktop"
|
|
125
132
|
[href]="urls().app + '/dashboard'"
|
|
126
133
|
>
|
|
127
134
|
Dashboard
|
|
128
135
|
</viking-button>
|
|
129
|
-
<viking-button
|
|
136
|
+
<viking-button
|
|
137
|
+
variant="ghost"
|
|
138
|
+
class="auth-btn auth-signout-btn"
|
|
139
|
+
id="auth-signout-desktop"
|
|
140
|
+
[loading]="isBusy()"
|
|
141
|
+
(pressed)="logout.emit()"
|
|
130
142
|
>Sign Out</viking-button
|
|
131
143
|
>
|
|
132
144
|
}
|
|
@@ -142,6 +154,7 @@ import {
|
|
|
142
154
|
[square]="true"
|
|
143
155
|
class="menu-toggle-btn"
|
|
144
156
|
[icon]="mobileMenuOpen() ? 'x' : 'menu'"
|
|
157
|
+
id="mobile-menu-btn"
|
|
145
158
|
[label]="
|
|
146
159
|
mobileMenuOpen()
|
|
147
160
|
? 'Close navigation menu'
|
|
@@ -187,7 +200,9 @@ import {
|
|
|
187
200
|
<viking-button
|
|
188
201
|
variant="primary"
|
|
189
202
|
icon="arrow-right"
|
|
190
|
-
class="mobile-auth-btn"
|
|
203
|
+
class="mobile-auth-btn auth-btn"
|
|
204
|
+
id="auth-btn-mobile"
|
|
205
|
+
[loading]="isBusy()"
|
|
191
206
|
[fullWidth]="true"
|
|
192
207
|
(pressed)="login.emit(); closeMobileMenu()"
|
|
193
208
|
>
|
|
@@ -197,7 +212,8 @@ import {
|
|
|
197
212
|
<viking-button
|
|
198
213
|
variant="primary"
|
|
199
214
|
icon="home"
|
|
200
|
-
class="mobile-auth-btn"
|
|
215
|
+
class="mobile-auth-btn auth-btn"
|
|
216
|
+
id="auth-btn-mobile"
|
|
201
217
|
[fullWidth]="true"
|
|
202
218
|
[href]="urls().app + '/dashboard'"
|
|
203
219
|
(pressed)="closeMobileMenu()"
|
|
@@ -206,7 +222,9 @@ import {
|
|
|
206
222
|
</viking-button>
|
|
207
223
|
<viking-button
|
|
208
224
|
variant="ghost"
|
|
209
|
-
class="mobile-auth-btn"
|
|
225
|
+
class="mobile-auth-btn auth-btn auth-signout-btn"
|
|
226
|
+
id="auth-signout-mobile"
|
|
227
|
+
[loading]="isBusy()"
|
|
210
228
|
[fullWidth]="true"
|
|
211
229
|
(pressed)="logout.emit(); closeMobileMenu()"
|
|
212
230
|
>
|
|
@@ -221,6 +239,7 @@ export class VikingSiteNavbar {
|
|
|
221
239
|
readonly context = input<SiteDrakkarContext>("app");
|
|
222
240
|
readonly urls = input<SiteUrls>(DEFAULT_SITE_URLS);
|
|
223
241
|
readonly isAuthenticated = input<boolean>(false);
|
|
242
|
+
readonly isBusy = input<boolean>(false);
|
|
224
243
|
readonly theme = input<"light" | "dark">("dark");
|
|
225
244
|
readonly showSearch = input<boolean>(false);
|
|
226
245
|
|