@dataengineeringformachinelearning/viking-ui 4.0.1 → 4.0.3
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 +182 -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 +5 -1
- package/dist/src/web/core/styles.ts +125 -2
- package/dist/src/web/suite-header/viking-suite-header-wc.ts +15 -0
- package/dist/types/dataengineeringformachinelearning-viking-ui.d.ts +2 -1
- 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 +145 -3
- package/package.json +7 -1
- package/src/index.ts +1 -1
- package/src/lib/auth-panel/auth-panel.ts +9 -9
- package/src/lib/button/button.scss +23 -0
- package/src/lib/card/card.ts +33 -5
- package/src/lib/site-drakkar/site-navbar.ts +14 -4
- package/src/styles/_buttons.scss +92 -7
- package/src/styles/_layout-enforcement.scss +66 -3
- package/src/styles/components/icon-inline.scss +23 -0
- package/src/styles/components.scss +276 -9
- package/src/styles/static-navbar.scss +43 -4
- package/src/styles/surfaces/backend.scss +22 -10
- package/src/styles/surfaces/docs-shell.scss +40 -15
- package/src/styles/surfaces/docs-showcase.scss +132 -30
- package/src/styles/surfaces/marketing-landing.scss +311 -45
- package/src/styles/surfaces/swagger-ui.scss +9 -8
- package/src/styles/viking-ui.scss +12 -12
- package/src/web/card/viking-card-wc.ts +5 -1
- package/src/web/core/styles.ts +125 -2
- 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,10 @@ var VikingCardWc = class extends HTMLElementBase {
|
|
|
1754
1877
|
"viking-card-interactive",
|
|
1755
1878
|
this.hasAttribute("interactive")
|
|
1756
1879
|
);
|
|
1880
|
+
this.classList.toggle(
|
|
1881
|
+
"viking-card-loading",
|
|
1882
|
+
this.hasAttribute("loading")
|
|
1883
|
+
);
|
|
1757
1884
|
const title = this.getAttribute("title");
|
|
1758
1885
|
if (title) {
|
|
1759
1886
|
this.setAttribute("role", "region");
|
|
@@ -3402,6 +3529,17 @@ var VIKING_SUITE_HEADER_STYLES = `
|
|
|
3402
3529
|
text-transform: uppercase;
|
|
3403
3530
|
}
|
|
3404
3531
|
|
|
3532
|
+
.suite-header__auth-icon,
|
|
3533
|
+
.suite-header__menu-icon,
|
|
3534
|
+
.suite-header__action-icon,
|
|
3535
|
+
.suite-header__avatar-icon,
|
|
3536
|
+
.suite-header__chevron {
|
|
3537
|
+
display: inline-flex;
|
|
3538
|
+
align-items: center;
|
|
3539
|
+
justify-content: center;
|
|
3540
|
+
flex-shrink: 0;
|
|
3541
|
+
}
|
|
3542
|
+
|
|
3405
3543
|
.suite-header__auth-link:hover {
|
|
3406
3544
|
background: var(--viking-accent-hover);
|
|
3407
3545
|
color: var(--viking-accent-content);
|
|
@@ -3554,6 +3692,10 @@ viking-suite-command-palette {
|
|
|
3554
3692
|
.suite-header__menu-button {
|
|
3555
3693
|
display: none;
|
|
3556
3694
|
}
|
|
3695
|
+
|
|
3696
|
+
.suite-header[data-menu-open='true'] .suite-header__mobile {
|
|
3697
|
+
display: none;
|
|
3698
|
+
}
|
|
3557
3699
|
}
|
|
3558
3700
|
`;
|
|
3559
3701
|
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.3",
|
|
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";
|
|
@@ -78,16 +78,16 @@ import { VikingSeparator } from "../separator/separator";
|
|
|
78
78
|
:host {
|
|
79
79
|
display: block;
|
|
80
80
|
width: 100%;
|
|
81
|
-
max-width:
|
|
81
|
+
max-width: 520px;
|
|
82
82
|
margin-inline: auto;
|
|
83
83
|
font-family: var(--viking-font-family);
|
|
84
84
|
}
|
|
85
85
|
.viking-auth-panel {
|
|
86
86
|
display: flex;
|
|
87
87
|
flex-direction: column;
|
|
88
|
-
gap: var(--viking-space-
|
|
88
|
+
gap: var(--viking-space-4);
|
|
89
89
|
width: 100%;
|
|
90
|
-
padding: var(--viking-
|
|
90
|
+
padding: var(--viking-card-padding);
|
|
91
91
|
background: var(--viking-surface);
|
|
92
92
|
border: 1px solid var(--viking-border);
|
|
93
93
|
border-radius: var(--viking-radius-lg);
|
|
@@ -111,8 +111,8 @@ import { VikingSeparator } from "../separator/separator";
|
|
|
111
111
|
.viking-auth-header {
|
|
112
112
|
display: flex;
|
|
113
113
|
flex-direction: column;
|
|
114
|
-
gap: var(--viking-space-
|
|
115
|
-
margin-bottom: var(--viking-space-
|
|
114
|
+
gap: var(--viking-space-2);
|
|
115
|
+
margin-bottom: var(--viking-space-2);
|
|
116
116
|
}
|
|
117
117
|
.viking-auth-tag-row {
|
|
118
118
|
display: flex;
|
|
@@ -158,13 +158,13 @@ import { VikingSeparator } from "../separator/separator";
|
|
|
158
158
|
.viking-auth-body {
|
|
159
159
|
display: flex;
|
|
160
160
|
flex-direction: column;
|
|
161
|
-
gap: var(--viking-space-
|
|
161
|
+
gap: var(--viking-space-3);
|
|
162
162
|
width: 100%;
|
|
163
163
|
}
|
|
164
164
|
:host ::ng-deep .viking-auth-stack {
|
|
165
165
|
display: flex;
|
|
166
166
|
flex-direction: column;
|
|
167
|
-
gap: var(--viking-space-
|
|
167
|
+
gap: var(--viking-space-3);
|
|
168
168
|
width: 100%;
|
|
169
169
|
}
|
|
170
170
|
:host ::ng-deep .viking-auth-stack viking-callout {
|
|
@@ -174,13 +174,13 @@ import { VikingSeparator } from "../separator/separator";
|
|
|
174
174
|
:host ::ng-deep .login-form {
|
|
175
175
|
display: flex;
|
|
176
176
|
flex-direction: column;
|
|
177
|
-
gap: var(--viking-space-
|
|
177
|
+
gap: var(--viking-space-3);
|
|
178
178
|
width: 100%;
|
|
179
179
|
}
|
|
180
180
|
.viking-auth-social {
|
|
181
181
|
display: flex;
|
|
182
182
|
flex-direction: column;
|
|
183
|
-
gap: var(--viking-space-
|
|
183
|
+
gap: var(--viking-space-3);
|
|
184
184
|
width: 100%;
|
|
185
185
|
}
|
|
186
186
|
.viking-auth-footer {
|
|
@@ -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,19 @@ 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: var(--viking-shadow-sm)
|
|
45
|
+
box-shadow: var(--viking-shadow-sm), inset 0 1px 0 color-mix(
|
|
46
|
+
in srgb,
|
|
47
|
+
var(--viking-white-pure) 6%,
|
|
48
|
+
transparent
|
|
49
|
+
);
|
|
46
50
|
padding: var(--viking-card-padding, var(--viking-space-3));
|
|
47
51
|
color: var(--viking-text);
|
|
48
52
|
transition: var(--viking-transition-interactive);
|
|
49
53
|
position: relative;
|
|
54
|
+
isolation: isolate;
|
|
50
55
|
overflow: hidden;
|
|
51
56
|
min-width: 0;
|
|
57
|
+
background-clip: padding-box;
|
|
52
58
|
}
|
|
53
59
|
:host(.viking-card-headerless) .viking-card-header,
|
|
54
60
|
:host(.viking-card-headerless) viking-card-header {
|
|
@@ -72,17 +78,41 @@ import { VikingSkeleton } from "../skeleton/skeleton";
|
|
|
72
78
|
);
|
|
73
79
|
pointer-events: none;
|
|
74
80
|
}
|
|
81
|
+
|
|
82
|
+
:host::after {
|
|
83
|
+
content: "";
|
|
84
|
+
position: absolute;
|
|
85
|
+
inset: 0 auto auto 0;
|
|
86
|
+
right: 0;
|
|
87
|
+
width: 1px;
|
|
88
|
+
height: 28px;
|
|
89
|
+
background: linear-gradient(
|
|
90
|
+
180deg,
|
|
91
|
+
color-mix(in srgb, var(--viking-metallic-100) 22%, transparent),
|
|
92
|
+
transparent
|
|
93
|
+
);
|
|
94
|
+
pointer-events: none;
|
|
95
|
+
}
|
|
96
|
+
|
|
75
97
|
:host(.viking-card-interactive) {
|
|
76
98
|
cursor: pointer;
|
|
77
99
|
}
|
|
100
|
+
|
|
101
|
+
:host(.viking-card-interactive):focus-visible {
|
|
102
|
+
outline: var(--viking-ring-width) solid var(--viking-ring);
|
|
103
|
+
outline-offset: var(--viking-ring-offset);
|
|
104
|
+
}
|
|
78
105
|
:host(.viking-card-interactive):hover {
|
|
79
106
|
border-color: var(--viking-accent-strong);
|
|
80
|
-
box-shadow: var(--viking-shadow-hover)
|
|
107
|
+
box-shadow: var(--viking-shadow-hover),
|
|
108
|
+
inset 0 1px 0 color-mix(in srgb, var(--viking-white-pure) 6%, transparent);
|
|
81
109
|
transform: translateY(var(--viking-state-hover-lift));
|
|
82
110
|
}
|
|
83
111
|
:host(.viking-card-interactive):active {
|
|
84
112
|
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
85
|
-
box-shadow:
|
|
113
|
+
box-shadow: inset 0 1px 2px
|
|
114
|
+
color-mix(in srgb, var(--viking-black) 24%, transparent),
|
|
115
|
+
var(--viking-shadow-sm);
|
|
86
116
|
}
|
|
87
117
|
:host(.viking-card-interactive):focus-visible {
|
|
88
118
|
outline: var(--viking-ring-width) solid var(--viking-ring);
|
|
@@ -132,7 +162,6 @@ export class VikingCard {
|
|
|
132
162
|
gap: var(--viking-space-2);
|
|
133
163
|
padding-bottom: var(--viking-space-2);
|
|
134
164
|
margin-bottom: var(--viking-space-2);
|
|
135
|
-
border-bottom: 1px solid var(--viking-border-subtle);
|
|
136
165
|
}
|
|
137
166
|
/* Support slotted left meta + right actions uniformly */
|
|
138
167
|
:host ::ng-deep > * {
|
|
@@ -162,7 +191,6 @@ export class VikingCardHeader {}
|
|
|
162
191
|
gap: var(--viking-space-2);
|
|
163
192
|
padding-top: var(--viking-space-2);
|
|
164
193
|
margin-top: var(--viking-space-2);
|
|
165
|
-
border-top: 1px solid var(--viking-border-subtle);
|
|
166
194
|
}
|
|
167
195
|
`,
|
|
168
196
|
],
|
|
@@ -114,6 +114,8 @@ import {
|
|
|
114
114
|
<viking-button
|
|
115
115
|
variant="primary"
|
|
116
116
|
icon="arrow-right"
|
|
117
|
+
class="auth-btn"
|
|
118
|
+
[loading]="isBusy()"
|
|
117
119
|
(pressed)="login.emit()"
|
|
118
120
|
>
|
|
119
121
|
Sign In
|
|
@@ -122,11 +124,16 @@ import {
|
|
|
122
124
|
<viking-button
|
|
123
125
|
variant="primary"
|
|
124
126
|
icon="home"
|
|
127
|
+
class="auth-btn"
|
|
125
128
|
[href]="urls().app + '/dashboard'"
|
|
126
129
|
>
|
|
127
130
|
Dashboard
|
|
128
131
|
</viking-button>
|
|
129
|
-
<viking-button
|
|
132
|
+
<viking-button
|
|
133
|
+
variant="ghost"
|
|
134
|
+
class="auth-btn auth-signout-btn"
|
|
135
|
+
[loading]="isBusy()"
|
|
136
|
+
(pressed)="logout.emit()"
|
|
130
137
|
>Sign Out</viking-button
|
|
131
138
|
>
|
|
132
139
|
}
|
|
@@ -187,7 +194,8 @@ import {
|
|
|
187
194
|
<viking-button
|
|
188
195
|
variant="primary"
|
|
189
196
|
icon="arrow-right"
|
|
190
|
-
class="mobile-auth-btn"
|
|
197
|
+
class="mobile-auth-btn auth-btn"
|
|
198
|
+
[loading]="isBusy()"
|
|
191
199
|
[fullWidth]="true"
|
|
192
200
|
(pressed)="login.emit(); closeMobileMenu()"
|
|
193
201
|
>
|
|
@@ -197,7 +205,7 @@ import {
|
|
|
197
205
|
<viking-button
|
|
198
206
|
variant="primary"
|
|
199
207
|
icon="home"
|
|
200
|
-
class="mobile-auth-btn"
|
|
208
|
+
class="mobile-auth-btn auth-btn"
|
|
201
209
|
[fullWidth]="true"
|
|
202
210
|
[href]="urls().app + '/dashboard'"
|
|
203
211
|
(pressed)="closeMobileMenu()"
|
|
@@ -206,7 +214,8 @@ import {
|
|
|
206
214
|
</viking-button>
|
|
207
215
|
<viking-button
|
|
208
216
|
variant="ghost"
|
|
209
|
-
class="mobile-auth-btn"
|
|
217
|
+
class="mobile-auth-btn auth-btn auth-signout-btn"
|
|
218
|
+
[loading]="isBusy()"
|
|
210
219
|
[fullWidth]="true"
|
|
211
220
|
(pressed)="logout.emit(); closeMobileMenu()"
|
|
212
221
|
>
|
|
@@ -221,6 +230,7 @@ export class VikingSiteNavbar {
|
|
|
221
230
|
readonly context = input<SiteDrakkarContext>("app");
|
|
222
231
|
readonly urls = input<SiteUrls>(DEFAULT_SITE_URLS);
|
|
223
232
|
readonly isAuthenticated = input<boolean>(false);
|
|
233
|
+
readonly isBusy = input<boolean>(false);
|
|
224
234
|
readonly theme = input<"light" | "dark">("dark");
|
|
225
235
|
readonly showSearch = input<boolean>(false);
|
|
226
236
|
|