@dataengineeringformachinelearning/viking-ui 4.0.2 → 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 +180 -21
- 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/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/docs-showcase.scss +64 -1
- package/src/styles/surfaces/marketing-landing.scss +247 -6
- 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/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
|
"types": "./types/dataengineeringformachinelearning-viking-ui.d.ts",
|
|
25
25
|
"default": "./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",
|
|
@@ -28,7 +28,7 @@ export class VikingCardWc extends HTMLElementBase {
|
|
|
28
28
|
static readonly legacyTag = "viking-card-wc";
|
|
29
29
|
|
|
30
30
|
static get observedAttributes(): string[] {
|
|
31
|
-
return ["compact", "interactive", "title"];
|
|
31
|
+
return ["compact", "interactive", "title", "loading"];
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
connectedCallback(): void {
|
|
@@ -48,6 +48,10 @@ export class VikingCardWc extends HTMLElementBase {
|
|
|
48
48
|
"viking-card-interactive",
|
|
49
49
|
this.hasAttribute("interactive"),
|
|
50
50
|
);
|
|
51
|
+
this.classList.toggle(
|
|
52
|
+
"viking-card-loading",
|
|
53
|
+
this.hasAttribute("loading"),
|
|
54
|
+
);
|
|
51
55
|
|
|
52
56
|
const title = this.getAttribute("title");
|
|
53
57
|
if (title) {
|
|
@@ -39,7 +39,7 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
39
39
|
gap: var(--viking-space-1);
|
|
40
40
|
min-height: var(--viking-control-height);
|
|
41
41
|
padding: 0 var(--viking-control-padding-x);
|
|
42
|
-
border-radius: var(--viking-radius);
|
|
42
|
+
border-radius: var(--viking-radius-lg);
|
|
43
43
|
border: 1px solid transparent;
|
|
44
44
|
cursor: pointer;
|
|
45
45
|
text-decoration: none;
|
|
@@ -48,9 +48,29 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
48
48
|
min-width: var(--viking-btn-min-width, 120px);
|
|
49
49
|
white-space: nowrap;
|
|
50
50
|
position: relative;
|
|
51
|
+
background-clip: padding-box;
|
|
52
|
+
isolation: isolate;
|
|
51
53
|
user-select: none;
|
|
52
54
|
-webkit-tap-highlight-color: transparent;
|
|
53
55
|
box-sizing: border-box;
|
|
56
|
+
overflow: hidden;
|
|
57
|
+
box-shadow: var(--viking-shadow-sm);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.viking-btn::before {
|
|
61
|
+
content: "";
|
|
62
|
+
position: absolute;
|
|
63
|
+
inset: 1px 1px auto;
|
|
64
|
+
height: 1px;
|
|
65
|
+
background: linear-gradient(
|
|
66
|
+
90deg,
|
|
67
|
+
transparent,
|
|
68
|
+
color-mix(in srgb, var(--viking-metallic-100) 45%, transparent),
|
|
69
|
+
transparent
|
|
70
|
+
);
|
|
71
|
+
pointer-events: none;
|
|
72
|
+
opacity: 0.82;
|
|
73
|
+
transition: var(--viking-transition-interactive);
|
|
54
74
|
}
|
|
55
75
|
|
|
56
76
|
.viking-btn:focus-visible {
|
|
@@ -67,6 +87,36 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
67
87
|
box-shadow: none !important;
|
|
68
88
|
}
|
|
69
89
|
|
|
90
|
+
.viking-btn[aria-busy='true']::before,
|
|
91
|
+
.viking-btn[aria-busy='true'] .viking-btn-label {
|
|
92
|
+
opacity: 0.85;
|
|
93
|
+
transform: translateY(1px);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.viking-btn[aria-busy='true'] .viking-btn-spinner {
|
|
97
|
+
opacity: 0.85;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.viking-btn::after {
|
|
101
|
+
content: "";
|
|
102
|
+
position: absolute;
|
|
103
|
+
inset: auto 0 0 0;
|
|
104
|
+
height: 1px;
|
|
105
|
+
background: linear-gradient(
|
|
106
|
+
90deg,
|
|
107
|
+
transparent,
|
|
108
|
+
color-mix(
|
|
109
|
+
in srgb,
|
|
110
|
+
var(--viking-metallic-100) 18%,
|
|
111
|
+
transparent
|
|
112
|
+
),
|
|
113
|
+
transparent
|
|
114
|
+
);
|
|
115
|
+
pointer-events: none;
|
|
116
|
+
opacity: 0.45;
|
|
117
|
+
transition: var(--viking-transition-interactive);
|
|
118
|
+
}
|
|
119
|
+
|
|
70
120
|
.viking-btn-sm {
|
|
71
121
|
min-height: var(--viking-control-height-sm);
|
|
72
122
|
padding: 0 var(--viking-space-2);
|
|
@@ -131,6 +181,20 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
131
181
|
height: var(--viking-icon-size-md, 20px);
|
|
132
182
|
}
|
|
133
183
|
|
|
184
|
+
::slotted(viking-icon),
|
|
185
|
+
::slotted(.viking-icon),
|
|
186
|
+
::slotted([data-viking-icon]) {
|
|
187
|
+
display: inline-flex;
|
|
188
|
+
align-items: center;
|
|
189
|
+
justify-content: center;
|
|
190
|
+
width: var(--viking-icon-size-md);
|
|
191
|
+
height: var(--viking-icon-size-md);
|
|
192
|
+
line-height: 1;
|
|
193
|
+
flex-shrink: 0;
|
|
194
|
+
pointer-events: none;
|
|
195
|
+
flex: 0 0 auto;
|
|
196
|
+
}
|
|
197
|
+
|
|
134
198
|
.viking-btn-outline {
|
|
135
199
|
background: var(--viking-surface);
|
|
136
200
|
color: var(--viking-text);
|
|
@@ -145,6 +209,14 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
145
209
|
transform: translateY(var(--viking-state-hover-lift));
|
|
146
210
|
}
|
|
147
211
|
|
|
212
|
+
.viking-btn-outline:active:not(:disabled):not([aria-busy='true']) {
|
|
213
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
214
|
+
box-shadow: inset 0 1px 2px
|
|
215
|
+
color-mix(in srgb, var(--viking-black) 28%, transparent),
|
|
216
|
+
var(--viking-shadow-sm);
|
|
217
|
+
border-color: var(--viking-border-strong);
|
|
218
|
+
}
|
|
219
|
+
|
|
148
220
|
.viking-btn-primary {
|
|
149
221
|
background: var(--viking-accent);
|
|
150
222
|
color: var(--viking-accent-content);
|
|
@@ -159,6 +231,14 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
159
231
|
transform: translateY(var(--viking-state-hover-lift));
|
|
160
232
|
}
|
|
161
233
|
|
|
234
|
+
.viking-btn-primary:active:not(:disabled):not([aria-busy='true']) {
|
|
235
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
236
|
+
box-shadow: inset 0 1px 2px
|
|
237
|
+
color-mix(in srgb, var(--viking-black) 28%, transparent),
|
|
238
|
+
var(--viking-shadow-sm);
|
|
239
|
+
border-color: color-mix(in srgb, var(--viking-accent) 82%, var(--viking-black));
|
|
240
|
+
}
|
|
241
|
+
|
|
162
242
|
.viking-btn-secondary {
|
|
163
243
|
background: var(--viking-accent-secondary);
|
|
164
244
|
color: var(--viking-accent-secondary-content);
|
|
@@ -173,6 +253,14 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
173
253
|
transform: translateY(var(--viking-state-hover-lift));
|
|
174
254
|
}
|
|
175
255
|
|
|
256
|
+
.viking-btn-secondary:active:not(:disabled):not([aria-busy='true']) {
|
|
257
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
258
|
+
box-shadow: inset 0 1px 2px
|
|
259
|
+
color-mix(in srgb, var(--viking-black) 28%, transparent),
|
|
260
|
+
var(--viking-shadow-sm);
|
|
261
|
+
border-color: color-mix(in srgb, var(--viking-accent-secondary) 82%, var(--viking-black));
|
|
262
|
+
}
|
|
263
|
+
|
|
176
264
|
.viking-btn-filled {
|
|
177
265
|
background: var(--viking-surface-alt);
|
|
178
266
|
color: var(--viking-text);
|
|
@@ -187,6 +275,13 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
187
275
|
transform: translateY(var(--viking-state-hover-lift));
|
|
188
276
|
}
|
|
189
277
|
|
|
278
|
+
.viking-btn-filled:active:not(:disabled):not([aria-busy='true']) {
|
|
279
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
280
|
+
box-shadow: var(--viking-shadow-sm);
|
|
281
|
+
border-color: color-mix(in srgb, var(--viking-accent) 20%, var(--viking-border));
|
|
282
|
+
background: color-mix(in srgb, var(--viking-surface-alt) 84%, var(--viking-accent));
|
|
283
|
+
}
|
|
284
|
+
|
|
190
285
|
.viking-btn-danger {
|
|
191
286
|
background: var(--viking-danger);
|
|
192
287
|
color: var(--viking-on-danger);
|
|
@@ -196,10 +291,20 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
196
291
|
|
|
197
292
|
.viking-btn-danger:hover:not(:disabled):not([aria-busy='true']) {
|
|
198
293
|
background: color-mix(in srgb, var(--viking-danger) 88%, var(--viking-white));
|
|
294
|
+
border-color: color-mix(in srgb, var(--viking-danger) 92%, var(--viking-white));
|
|
199
295
|
box-shadow: var(--viking-shadow-hover);
|
|
200
296
|
transform: translateY(var(--viking-state-hover-lift));
|
|
201
297
|
}
|
|
202
298
|
|
|
299
|
+
.viking-btn-danger:active:not(:disabled):not([aria-busy='true']) {
|
|
300
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
301
|
+
border-color: color-mix(in srgb, var(--viking-danger) 72%, var(--viking-black));
|
|
302
|
+
background: color-mix(in srgb, var(--viking-danger) 84%, var(--viking-black));
|
|
303
|
+
box-shadow: inset 0 1px 2px
|
|
304
|
+
color-mix(in srgb, var(--viking-black) 28%, transparent),
|
|
305
|
+
var(--viking-shadow-sm);
|
|
306
|
+
}
|
|
307
|
+
|
|
203
308
|
.viking-btn-ghost {
|
|
204
309
|
background: transparent;
|
|
205
310
|
color: var(--viking-text);
|
|
@@ -213,6 +318,12 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
213
318
|
color: var(--viking-accent-strong);
|
|
214
319
|
}
|
|
215
320
|
|
|
321
|
+
.viking-btn-ghost:active:not(:disabled):not([aria-busy='true']) {
|
|
322
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
323
|
+
background: var(--viking-accent-soft);
|
|
324
|
+
color: var(--viking-accent-strong);
|
|
325
|
+
}
|
|
326
|
+
|
|
216
327
|
.viking-btn-subtle {
|
|
217
328
|
background: transparent;
|
|
218
329
|
color: var(--viking-text-muted);
|
|
@@ -227,6 +338,13 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
227
338
|
border-color: var(--viking-border-strong);
|
|
228
339
|
}
|
|
229
340
|
|
|
341
|
+
.viking-btn-subtle:active:not(:disabled):not([aria-busy='true']) {
|
|
342
|
+
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
343
|
+
border-color: var(--viking-border);
|
|
344
|
+
background: color-mix(in srgb, var(--viking-accent-soft) 70%, var(--viking-surface));
|
|
345
|
+
box-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 24%, transparent);
|
|
346
|
+
}
|
|
347
|
+
|
|
230
348
|
.viking-btn:active:not(:disabled):not([aria-busy='true']) {
|
|
231
349
|
transform: translateY(0) scale(var(--viking-state-active-scale));
|
|
232
350
|
}
|
|
@@ -234,7 +352,12 @@ export const VIKING_BUTTON_STYLES = `
|
|
|
234
352
|
.viking-btn-label {
|
|
235
353
|
display: inline-flex;
|
|
236
354
|
align-items: center;
|
|
237
|
-
|
|
355
|
+
gap: var(--viking-space-1);
|
|
356
|
+
line-height: 1.2;
|
|
357
|
+
min-width: 0;
|
|
358
|
+
justify-content: center;
|
|
359
|
+
text-align: center;
|
|
360
|
+
white-space: nowrap;
|
|
238
361
|
}
|
|
239
362
|
|
|
240
363
|
.viking-btn-spinner {
|
|
@@ -204,6 +204,17 @@ const VIKING_SUITE_HEADER_STYLES = `
|
|
|
204
204
|
text-transform: uppercase;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
+
.suite-header__auth-icon,
|
|
208
|
+
.suite-header__menu-icon,
|
|
209
|
+
.suite-header__action-icon,
|
|
210
|
+
.suite-header__avatar-icon,
|
|
211
|
+
.suite-header__chevron {
|
|
212
|
+
display: inline-flex;
|
|
213
|
+
align-items: center;
|
|
214
|
+
justify-content: center;
|
|
215
|
+
flex-shrink: 0;
|
|
216
|
+
}
|
|
217
|
+
|
|
207
218
|
.suite-header__auth-link:hover {
|
|
208
219
|
background: var(--viking-accent-hover);
|
|
209
220
|
color: var(--viking-accent-content);
|
|
@@ -356,6 +367,10 @@ viking-suite-command-palette {
|
|
|
356
367
|
.suite-header__menu-button {
|
|
357
368
|
display: none;
|
|
358
369
|
}
|
|
370
|
+
|
|
371
|
+
.suite-header[data-menu-open='true'] .suite-header__mobile {
|
|
372
|
+
display: none;
|
|
373
|
+
}
|
|
359
374
|
}
|
|
360
375
|
`;
|
|
361
376
|
|
|
@@ -888,6 +888,7 @@ declare class VikingSiteNavbar {
|
|
|
888
888
|
readonly context: _angular_core.InputSignal<SiteDrakkarContext>;
|
|
889
889
|
readonly urls: _angular_core.InputSignal<SiteUrls>;
|
|
890
890
|
readonly isAuthenticated: _angular_core.InputSignal<boolean>;
|
|
891
|
+
readonly isBusy: _angular_core.InputSignal<boolean>;
|
|
891
892
|
readonly theme: _angular_core.InputSignal<"dark" | "light">;
|
|
892
893
|
readonly showSearch: _angular_core.InputSignal<boolean>;
|
|
893
894
|
readonly login: _angular_core.OutputEmitterRef<void>;
|
|
@@ -904,7 +905,7 @@ declare class VikingSiteNavbar {
|
|
|
904
905
|
protected closeMobileMenu(): void;
|
|
905
906
|
protected openSearch(): void;
|
|
906
907
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<VikingSiteNavbar, never>;
|
|
907
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<VikingSiteNavbar, "viking-site-navbar", never, { "context": { "alias": "context"; "required": false; "isSignal": true; }; "urls": { "alias": "urls"; "required": false; "isSignal": true; }; "isAuthenticated": { "alias": "isAuthenticated"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; }, { "login": "login"; "logout": "logout"; "themeToggle": "themeToggle"; "searchOpen": "searchOpen"; }, never, never, true, never>;
|
|
908
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<VikingSiteNavbar, "viking-site-navbar", never, { "context": { "alias": "context"; "required": false; "isSignal": true; }; "urls": { "alias": "urls"; "required": false; "isSignal": true; }; "isAuthenticated": { "alias": "isAuthenticated"; "required": false; "isSignal": true; }; "isBusy": { "alias": "isBusy"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; }, { "login": "login"; "logout": "logout"; "themeToggle": "themeToggle"; "searchOpen": "searchOpen"; }, never, never, true, never>;
|
|
908
909
|
}
|
|
909
910
|
|
|
910
911
|
/**
|