@dataengineeringformachinelearning/viking-ui 1.0.2 → 3.0.0-alpha.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.
Files changed (129) hide show
  1. package/README.md +180 -41
  2. package/dist/deml-components.css +1122 -0
  3. package/dist/design-tokens.css +688 -0
  4. package/dist/elements/button/viking-button.d.ts +14 -0
  5. package/dist/elements/card/viking-card.d.ts +8 -0
  6. package/dist/elements/core/dom.d.ts +4 -0
  7. package/dist/elements/core/styles.d.ts +2 -0
  8. package/dist/elements/modal/viking-modal.d.ts +15 -0
  9. package/dist/fonts/inter/InterVariable-Italic.woff2 +0 -0
  10. package/dist/fonts/inter/InterVariable.woff2 +0 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.js +4051 -0
  13. package/dist/lib/core/brand-icons.d.ts +29 -0
  14. package/dist/lib/core/icons.d.ts +132 -0
  15. package/dist/lib/core/integration-brand-icons.d.ts +18 -0
  16. package/dist/lib/core/lucide-paths.generated.d.ts +90 -0
  17. package/dist/lib/site-drakkar/site-drakkar.config.d.ts +50 -0
  18. package/dist/lib/site-drakkar/suite-search-items.d.ts +17 -0
  19. package/dist/viking-components.css +1837 -0
  20. package/dist/viking-tokens.json +318 -0
  21. package/dist/viking-ui-elements.js +1750 -0
  22. package/dist/viking-ui.css +1 -0
  23. package/dist/web/badge/viking-badge-wc.d.ts +28 -0
  24. package/dist/web/button/viking-button-wc.d.ts +28 -0
  25. package/dist/web/callout/viking-callout-wc.d.ts +27 -0
  26. package/dist/web/card/viking-card-wc.d.ts +29 -0
  27. package/dist/web/core/base.d.ts +12 -0
  28. package/dist/web/core/dom.d.ts +11 -0
  29. package/dist/web/core/icons-inline.d.ts +7 -0
  30. package/dist/web/core/styles.d.ts +12 -0
  31. package/dist/web/core/types.d.ts +10 -0
  32. package/dist/web/field/viking-field-wc.d.ts +32 -0
  33. package/dist/web/index.d.ts +15 -0
  34. package/dist/web/input/viking-input-wc.d.ts +32 -0
  35. package/dist/web/modal/viking-modal-wc.d.ts +50 -0
  36. package/dist/web/search-palette/viking-search-palette-wc.d.ts +64 -0
  37. package/dist/web/select/viking-select-wc.d.ts +48 -0
  38. package/dist/web/suite-header/viking-suite-header-wc.d.ts +36 -0
  39. package/dist/web/suite-search-palette/viking-suite-search-palette-wc.d.ts +39 -0
  40. package/dist/web/theme-toggle/viking-theme-toggle-wc.d.ts +19 -0
  41. package/dist/web/types.d.ts +40 -0
  42. package/dist/web-components/index.d.ts +1 -0
  43. package/dist/web-components.js +1750 -0
  44. package/dist/widget.js +1182 -0
  45. package/package.json +89 -30
  46. package/src/assets/fonts/inter/InterVariable-Italic.woff2 +0 -0
  47. package/src/assets/fonts/inter/InterVariable.woff2 +0 -0
  48. package/src/elements/button/viking-button.ts +201 -0
  49. package/src/elements/card/viking-card.ts +60 -0
  50. package/src/elements/core/dom.ts +33 -0
  51. package/src/elements/core/styles.ts +28 -0
  52. package/src/elements/modal/viking-modal.ts +154 -0
  53. package/src/index.ts +1 -0
  54. package/src/lib/core/brand-icons.ts +62 -0
  55. package/src/lib/core/icons.ts +206 -0
  56. package/src/lib/core/integration-brand-icons.ts +77 -0
  57. package/src/lib/core/lucide-paths.generated.ts +130 -0
  58. package/src/lib/site-drakkar/site-drakkar.config.ts +295 -0
  59. package/src/lib/site-drakkar/suite-search-items.ts +246 -0
  60. package/src/styles/_buttons.scss +301 -0
  61. package/src/styles/_component-primitives.scss +183 -0
  62. package/src/styles/_drakkar-buttons.scss +85 -0
  63. package/src/styles/_fonts.scss +22 -0
  64. package/src/styles/_forms.scss +66 -0
  65. package/src/styles/_input.scss +106 -0
  66. package/src/styles/_layout-enforcement.scss +166 -0
  67. package/src/styles/_layout-rhythm.scss +158 -0
  68. package/src/styles/_legacy-aliases.scss +212 -0
  69. package/src/styles/_series-colors.scss +24 -0
  70. package/src/styles/_static-primitives.scss +857 -0
  71. package/src/styles/_typography.scss +87 -0
  72. package/src/styles/_variables.scss +527 -0
  73. package/src/styles/components/a11y.scss +90 -0
  74. package/src/styles/components/badges.scss +102 -0
  75. package/src/styles/components/extracted-utilities.scss +459 -0
  76. package/src/styles/components/footer.scss +155 -0
  77. package/src/styles/components/icon-heading.scss +47 -0
  78. package/src/styles/components/icon-inline.scss +78 -0
  79. package/src/styles/components/layout.scss +59 -0
  80. package/src/styles/components/utilities.scss +131 -0
  81. package/src/styles/components/viking-inspired.scss +204 -0
  82. package/src/styles/components/whitepaper-cta.scss +130 -0
  83. package/src/styles/components-bundle.scss +9 -0
  84. package/src/styles/components.scss +175 -0
  85. package/src/styles/deml-components.scss +10 -0
  86. package/src/styles/index.scss +8 -0
  87. package/src/styles/layout-shell.scss +39 -11
  88. package/src/styles/page-shell.scss +663 -33
  89. package/src/styles/static-navbar.scss +862 -146
  90. package/src/styles/surfaces/backend.scss +142 -0
  91. package/src/styles/surfaces/docs-global.scss +73 -0
  92. package/src/styles/surfaces/docs-shell.scss +412 -0
  93. package/src/styles/surfaces/docs-showcase.scss +1051 -0
  94. package/src/styles/surfaces/marketing-cta.scss +62 -0
  95. package/src/styles/surfaces/marketing-docs-bento.scss +67 -0
  96. package/src/styles/surfaces/marketing-global.scss +748 -0
  97. package/src/styles/surfaces/marketing-landing.scss +1260 -0
  98. package/src/styles/surfaces/marketing-publication.scss +535 -0
  99. package/src/styles/surfaces/marketing-theme.scss +14 -0
  100. package/src/styles/surfaces/swagger-ui.scss +921 -0
  101. package/src/styles/tokens-export.scss +18 -0
  102. package/src/styles/tokens.scss +5 -0
  103. package/src/styles/viking-ui-bundle.scss +20 -2
  104. package/src/styles/viking-ui.scss +213 -51
  105. package/src/tokens/viking-tokens.json +318 -0
  106. package/src/web/badge/viking-badge-wc.ts +116 -0
  107. package/src/web/button/viking-button-wc.ts +165 -0
  108. package/src/web/callout/viking-callout-wc.ts +105 -0
  109. package/src/web/card/viking-card-wc.ts +66 -0
  110. package/src/web/core/base.ts +56 -0
  111. package/src/web/core/dom.ts +53 -0
  112. package/src/web/core/icons-inline.ts +44 -0
  113. package/src/web/core/styles.ts +1138 -0
  114. package/src/web/core/types.ts +19 -0
  115. package/src/web/field/viking-field-wc.ts +154 -0
  116. package/src/web/index.ts +73 -0
  117. package/src/web/input/viking-input-wc.ts +211 -0
  118. package/src/web/modal/viking-modal-wc.ts +187 -0
  119. package/src/web/search-palette/viking-search-palette-wc.ts +494 -0
  120. package/src/web/select/viking-select-wc.ts +218 -0
  121. package/src/web/suite-header/viking-suite-header-wc.ts +714 -0
  122. package/src/web/suite-search-palette/viking-suite-search-palette-wc.ts +234 -0
  123. package/src/web/theme-toggle/viking-theme-toggle-wc.ts +139 -0
  124. package/src/web/types.ts +37 -0
  125. package/src/web-components/index.ts +1 -0
  126. package/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +0 -6114
  127. package/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +0 -1
  128. package/types/dataengineeringformachinelearning-viking-ui.d.ts +0 -1397
  129. package/viking.manifest.json +0 -238
@@ -0,0 +1,130 @@
1
+ .viking-whitepaper-cta {
2
+ position: relative;
3
+ max-width: 720px;
4
+ margin: 0 auto;
5
+ padding: var(--viking-space-4) var(--viking-space-3);
6
+ border-radius: var(--viking-radius-xl);
7
+ overflow: hidden;
8
+ border: 1px solid color-mix(in srgb, var(--viking-accent) 22%, transparent);
9
+ background: color-mix(in srgb, var(--viking-accent) 6%, var(--viking-surface));
10
+ text-align: center;
11
+ box-shadow: var(--viking-shadow-sm);
12
+ transition: var(--viking-transition-colors);
13
+
14
+ @media (min-width: 768px) {
15
+ padding: var(--viking-space-5) var(--viking-space-4);
16
+ }
17
+ }
18
+
19
+ .viking-whitepaper-cta-bg {
20
+ position: absolute;
21
+ inset: 0;
22
+ pointer-events: none;
23
+ opacity: 0.5;
24
+ }
25
+
26
+ .viking-whitepaper-polars-grid {
27
+ position: absolute;
28
+ inset: 0;
29
+ display: flex;
30
+ align-items: flex-end;
31
+ justify-content: center;
32
+ gap: var(--viking-space-half);
33
+ padding: 0 var(--viking-space-3);
34
+ mask-image: linear-gradient(to top, black 30%, transparent 85%);
35
+ }
36
+
37
+ .viking-bar,
38
+ .viking-whitepaper-polars-bar {
39
+ display: block;
40
+ flex: 1;
41
+ max-width: 28px;
42
+ height: calc(var(--viking-bar-height, 50) * 1%);
43
+ background: var(--viking-accent);
44
+ border-radius: var(--viking-radius-xs) var(--viking-radius-xs) 0 0;
45
+ opacity: 0.75;
46
+ }
47
+
48
+ .viking-whitepaper-polars-bar {
49
+ animation: vikingWhitepaperBarPulse 4s var(--viking-ease-default) infinite;
50
+
51
+ @for $i from 1 through 12 {
52
+ &:nth-child(#{$i}) {
53
+ animation-delay: #{$i * 0.12}s;
54
+ }
55
+ }
56
+ }
57
+
58
+ @keyframes vikingWhitepaperBarPulse {
59
+ 0%,
60
+ 100% {
61
+ opacity: 0.4;
62
+ transform: scaleY(1);
63
+ }
64
+ 50% {
65
+ opacity: 0.75;
66
+ transform: scaleY(1.06);
67
+ }
68
+ }
69
+
70
+ @media (prefers-reduced-motion: reduce) {
71
+ .viking-whitepaper-polars-bar {
72
+ animation: none;
73
+ opacity: 0.5;
74
+ }
75
+ }
76
+
77
+ .viking-whitepaper-sparkline {
78
+ position: absolute;
79
+ bottom: 0;
80
+ left: 0;
81
+ width: 100%;
82
+ height: 40%;
83
+ opacity: 0.65;
84
+ }
85
+
86
+ .viking-whitepaper-cta-content {
87
+ position: relative;
88
+ z-index: 1;
89
+ display: flex;
90
+ flex-direction: column;
91
+ align-items: center;
92
+ gap: var(--viking-space-1-5);
93
+ }
94
+
95
+ .viking-whitepaper-tag {
96
+ font-size: var(--viking-font-size-ui);
97
+ font-weight: var(--viking-font-weight-bold);
98
+ letter-spacing: var(--viking-letter-spacing-caps);
99
+ color: var(--viking-accent);
100
+ text-transform: uppercase;
101
+ }
102
+
103
+ .viking-whitepaper-title {
104
+ font-size: clamp(1.375rem, 3vw, 1.75rem);
105
+ font-weight: var(--viking-font-weight-bold);
106
+ margin: 0;
107
+ text-transform: uppercase;
108
+ letter-spacing: var(--viking-letter-spacing-tight);
109
+ color: var(--viking-text);
110
+ line-height: var(--viking-line-height-tight);
111
+ }
112
+
113
+ .viking-whitepaper-description {
114
+ color: var(--viking-text-muted);
115
+ margin: 0;
116
+ max-width: 30rem;
117
+ line-height: var(--viking-line-height-relaxed);
118
+ font-size: var(--viking-font-size);
119
+ }
120
+
121
+ .viking-whitepaper-btn {
122
+ margin-top: var(--viking-space-1);
123
+ color: var(--viking-accent-content);
124
+
125
+ &:hover,
126
+ &:focus-visible {
127
+ color: var(--viking-accent-content);
128
+ border-bottom-color: transparent;
129
+ }
130
+ }
@@ -0,0 +1,9 @@
1
+ /*! Viking-UI Interactive Components — framework-agnostic CSS primitives.
2
+ * Load after design-tokens.css for Astro, Django, or any HTML project.
3
+ * Build: npm run build:viking-ui:package */
4
+ @use 'fonts';
5
+ @use 'component-primitives';
6
+ @use 'static-primitives';
7
+ @use 'buttons' as *;
8
+ @use 'forms' as *;
9
+ @use 'input' as *;
@@ -0,0 +1,175 @@
1
+ /*! Viking-UI Static Components. Source: packages/viking-ui/src/styles/components.scss */
2
+ *,
3
+ *::before,
4
+ *::after {
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ html {
9
+ background: var(--viking-bg);
10
+ color: var(--viking-text);
11
+ font-family: var(--viking-font-family);
12
+ font-size: var(--viking-font-size);
13
+ line-height: var(--viking-line-height-normal);
14
+ }
15
+
16
+ body {
17
+ margin: 0;
18
+ background: var(--viking-bg);
19
+ color: var(--viking-text);
20
+ }
21
+
22
+ a {
23
+ color: var(--viking-accent-strong);
24
+ text-decoration-thickness: var(--viking-space-px);
25
+ text-underline-offset: var(--viking-space-half);
26
+ }
27
+
28
+ :focus-visible {
29
+ outline: var(--viking-ring-width) solid var(--viking-ring);
30
+ outline-offset: var(--viking-ring-offset);
31
+ }
32
+
33
+ .page-inner-wrapper,
34
+ .viking-page-inner {
35
+ width: min(
36
+ 100% - (var(--viking-page-gutter) * 2),
37
+ var(--viking-container-max-width)
38
+ );
39
+ margin-inline: auto;
40
+ }
41
+
42
+ @media (min-width: 768px) {
43
+ .page-inner-wrapper,
44
+ .viking-page-inner {
45
+ width: min(
46
+ 100% - (var(--viking-page-gutter-lg) * 2),
47
+ var(--viking-container-max-width)
48
+ );
49
+ }
50
+ }
51
+
52
+ .viking-stack {
53
+ display: grid;
54
+ gap: var(--viking-page-stack-gap);
55
+ }
56
+
57
+ .viking-section {
58
+ padding-block: var(--viking-page-section-gap);
59
+ }
60
+
61
+ .viking-card {
62
+ display: block;
63
+ padding: var(--viking-card-padding);
64
+ border: 1px solid var(--viking-border);
65
+ border-radius: var(--viking-radius-lg);
66
+ background: var(--viking-surface-recipe);
67
+ color: var(--viking-text);
68
+ box-shadow: var(--viking-shadow-sm);
69
+ }
70
+
71
+ .viking-card[data-compact="true"] {
72
+ padding: var(--viking-card-padding-compact);
73
+ }
74
+
75
+ .viking-button,
76
+ .viking-btn {
77
+ display: inline-flex;
78
+ min-height: var(--viking-control-height);
79
+ align-items: center;
80
+ justify-content: center;
81
+ gap: var(--viking-space-1);
82
+ padding: 0 var(--viking-control-padding-x);
83
+ border: 1px solid var(--viking-border-strong);
84
+ border-radius: var(--viking-radius);
85
+ background: var(--viking-surface);
86
+ color: var(--viking-text);
87
+ box-shadow: var(--viking-shadow-sm);
88
+ cursor: pointer;
89
+ font: inherit;
90
+ font-size: var(--viking-font-size-sm);
91
+ font-weight: var(--viking-font-weight-semibold);
92
+ line-height: var(--viking-line-height-snug);
93
+ text-decoration: none;
94
+ transition: var(--viking-transition-interactive);
95
+ }
96
+
97
+ .viking-button:hover,
98
+ .viking-btn:hover {
99
+ border-color: color-mix(
100
+ in srgb,
101
+ var(--viking-accent) 45%,
102
+ var(--viking-border-strong)
103
+ );
104
+ transform: translateY(var(--viking-state-hover-lift));
105
+ }
106
+
107
+ .viking-button[data-variant="primary"],
108
+ .viking-btn-primary {
109
+ border-color: color-mix(
110
+ in srgb,
111
+ var(--viking-accent) 82%,
112
+ var(--viking-black)
113
+ );
114
+ background: var(--viking-accent);
115
+ color: var(--viking-accent-content);
116
+ }
117
+
118
+ .viking-button[data-variant="secondary"],
119
+ .viking-btn-secondary {
120
+ border-color: color-mix(
121
+ in srgb,
122
+ var(--viking-accent-secondary) 82%,
123
+ var(--viking-black)
124
+ );
125
+ background: var(--viking-accent-secondary);
126
+ color: var(--viking-accent-secondary-content);
127
+ }
128
+
129
+ .viking-button[data-variant="ghost"],
130
+ .viking-btn-ghost {
131
+ border-color: transparent;
132
+ background: transparent;
133
+ box-shadow: none;
134
+ }
135
+
136
+ .viking-field {
137
+ display: grid;
138
+ gap: var(--viking-space-1);
139
+ }
140
+
141
+ .viking-label {
142
+ color: var(--viking-text);
143
+ font-size: var(--viking-font-size-sm);
144
+ font-weight: var(--viking-font-weight-semibold);
145
+ }
146
+
147
+ .viking-input,
148
+ .viking-select,
149
+ .viking-textarea {
150
+ width: 100%;
151
+ min-height: var(--viking-control-height);
152
+ border: 1px solid var(--viking-border);
153
+ border-radius: var(--viking-radius);
154
+ background: var(--viking-surface-alt);
155
+ color: var(--viking-text);
156
+ font: inherit;
157
+ padding: 0 var(--viking-space-2);
158
+ }
159
+
160
+ .viking-textarea {
161
+ min-height: calc(var(--viking-control-height) * 2.5);
162
+ padding-block: var(--viking-space-1);
163
+ resize: vertical;
164
+ }
165
+
166
+ @media (prefers-reduced-motion: reduce) {
167
+ *,
168
+ *::before,
169
+ *::after {
170
+ animation-duration: 0.01ms !important;
171
+ animation-iteration-count: 1 !important;
172
+ scroll-behavior: auto !important;
173
+ transition-duration: 0.01ms !important;
174
+ }
175
+ }
@@ -0,0 +1,10 @@
1
+ /*! DEML Shared Components — canonical source: packages/viking-ui/src/styles/components/
2
+ * Static CSS: npm run build:viking-ui:package */
3
+ @use 'components/a11y';
4
+ @use 'components/badges';
5
+ @use 'components/icon-inline';
6
+ @use 'components/icon-heading';
7
+ @use 'components/layout';
8
+ @use 'components/utilities';
9
+ @use 'components/extracted-utilities';
10
+ @use 'components/viking-inspired';
@@ -0,0 +1,8 @@
1
+ @forward 'tokens';
2
+ @forward 'components/a11y';
3
+ @forward 'components/badges';
4
+ @forward 'components/icon-inline';
5
+ @forward 'components/layout';
6
+ @forward 'components/utilities';
7
+ @forward 'components/extracted-utilities';
8
+ @forward 'components/viking-inspired';
@@ -6,25 +6,53 @@
6
6
  width: 100%;
7
7
  max-width: var(--viking-container-max-width, var(--container-max-width, 1260px));
8
8
  margin-inline: auto;
9
- padding-inline: var(--viking-space-2, var(--space-2, 16px));
9
+ padding-inline: var(--viking-page-gutter, var(--viking-space-2, var(--space-2, 16px)));
10
+ padding-block: var(--viking-page-gutter-lg, var(--viking-space-4, var(--space-4, 32px)));
10
11
  box-sizing: border-box;
11
12
  }
12
13
 
14
+ /* Phone → TV: keep content centered with breathable gutters on ultra-wide displays */
15
+ @media (min-width: 1440px) {
16
+ .viking-page-shell,
17
+ .page-inner-wrapper,
18
+ .viking-section-inner {
19
+ padding-inline: var(--viking-page-gutter-lg, var(--viking-space-3, var(--space-3, 24px)));
20
+ }
21
+ }
22
+
23
+ @media (min-width: 1920px) {
24
+ .viking-page-shell,
25
+ .page-inner-wrapper,
26
+ .viking-section-inner {
27
+ padding-inline: var(--viking-page-gutter-xl, var(--viking-space-4, var(--space-4, 32px)));
28
+ }
29
+ }
30
+
13
31
  .viking-section {
14
32
  width: 100%;
15
- padding-block: var(--viking-space-6, var(--space-6, 48px));
33
+ padding-block: var(--viking-section-padding-y, var(--viking-space-6, var(--space-6, 48px)));
34
+ }
35
+
36
+ .viking-content-stack {
37
+ display: flex;
38
+ flex-direction: column;
39
+ gap: var(--viking-page-stack-gap, var(--viking-space-3, var(--space-3, 24px)));
40
+ width: 100%;
41
+ }
42
+
43
+ .viking-content-stack--tight {
44
+ gap: var(--viking-space-3, var(--space-3, 24px));
16
45
  }
17
46
 
18
47
  .viking-section--compact {
19
- padding-block: var(--viking-space-4, var(--space-4, 32px));
48
+ padding-block: var(--viking-section-padding-y-compact, var(--viking-space-4, var(--space-4, 32px)));
20
49
  }
21
50
 
22
51
  .viking-section--hero {
23
- padding-block: var(--viking-space-6, var(--space-6, 48px)) var(--viking-space-4, var(--space-4, 32px));
52
+ padding-block: var(--viking-space-8, var(--space-8, 64px)) var(--viking-space-6, var(--space-6, 48px));
24
53
 
25
54
  @media (min-width: 768px) {
26
- padding-block: calc(var(--viking-space-6, 48px) + var(--viking-space-2, 16px))
27
- var(--viking-space-6, 48px);
55
+ padding-block: var(--viking-space-10, 96px) var(--viking-space-8, 64px);
28
56
  }
29
57
  }
30
58
 
@@ -32,21 +60,21 @@
32
60
  width: 100%;
33
61
  max-width: var(--viking-container-max-width, var(--container-max-width, 1260px));
34
62
  margin-inline: auto;
35
- padding-inline: var(--viking-space-2, var(--space-2, 16px));
63
+ padding-inline: var(--viking-page-gutter, var(--viking-space-3, var(--space-3, 24px)));
36
64
  box-sizing: border-box;
37
65
  }
38
66
 
39
67
  .viking-section-header {
40
68
  display: flex;
41
69
  flex-direction: column;
42
- gap: var(--viking-space-1, var(--space-1, 8px));
43
- margin-bottom: var(--viking-space-4, var(--space-4, 32px));
70
+ gap: var(--viking-space-2, var(--space-2, 16px));
71
+ margin-bottom: var(--viking-page-section-gap, var(--viking-space-6, var(--space-6, 48px)));
44
72
  max-width: 48rem;
45
73
  }
46
74
 
47
75
  .viking-section-title {
48
76
  margin: 0;
49
- font-family: var(--viking-font-family, 'Inter', sans-serif);
77
+ font-family: var(--viking-font-family);
50
78
  font-size: clamp(1.5rem, 3vw, 2rem);
51
79
  font-weight: 700;
52
80
  letter-spacing: var(--header-letter-spacing, -0.02em);
@@ -55,7 +83,7 @@
55
83
 
56
84
  .viking-section-lead {
57
85
  margin: 0;
58
- font-family: var(--viking-font-family, 'Inter', sans-serif);
86
+ font-family: var(--viking-font-family);
59
87
  font-size: var(--viking-font-size, var(--base-font-size, 16px));
60
88
  line-height: 1.6;
61
89
  color: var(--viking-text-muted, var(--text-muted));