@dataengineeringformachinelearning/viking-ui 4.0.3 → 4.0.5

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 (246) hide show
  1. package/README.md +35 -11
  2. package/dist/README.md +35 -11
  3. package/dist/design-tokens.css +300 -85
  4. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +135 -70
  5. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +1 -1
  6. package/dist/icons.js +306 -0
  7. package/dist/package.json +24 -5
  8. package/{src/lib/site-drakkar/site-drakkar.config.ts → dist/site-drakkar.js} +64 -130
  9. package/dist/src/tokens/viking-tokens.json +9 -7
  10. package/dist/types/dataengineeringformachinelearning-viking-ui.d.ts +98 -4
  11. package/dist/viking-components.css +161 -70
  12. package/dist/viking-tokens.json +9 -7
  13. package/dist/viking-ui-elements.js +45 -33
  14. package/dist/viking-ui.css +1 -1
  15. package/dist/web-components.js +46 -36
  16. package/package.json +30 -8
  17. package/dist/scripts/build-web-components.mjs +0 -37
  18. package/dist/src/web/badge/viking-badge-wc.ts +0 -116
  19. package/dist/src/web/button/viking-button-wc.ts +0 -165
  20. package/dist/src/web/callout/viking-callout-wc.ts +0 -105
  21. package/dist/src/web/card/viking-card-wc.ts +0 -70
  22. package/dist/src/web/core/base.ts +0 -56
  23. package/dist/src/web/core/dom.ts +0 -53
  24. package/dist/src/web/core/icons-inline.ts +0 -44
  25. package/dist/src/web/core/styles.ts +0 -1261
  26. package/dist/src/web/core/types.ts +0 -19
  27. package/dist/src/web/field/viking-field-wc.ts +0 -154
  28. package/dist/src/web/index.ts +0 -73
  29. package/dist/src/web/input/viking-input-wc.ts +0 -211
  30. package/dist/src/web/modal/viking-modal-wc.ts +0 -187
  31. package/dist/src/web/search-palette/viking-search-palette-wc.ts +0 -494
  32. package/dist/src/web/select/viking-select-wc.ts +0 -218
  33. package/dist/src/web/suite-header/viking-suite-header-wc.ts +0 -729
  34. package/dist/src/web/suite-search-palette/viking-suite-search-palette-wc.ts +0 -234
  35. package/dist/src/web/theme-toggle/viking-theme-toggle-wc.ts +0 -139
  36. package/dist/src/web/types.ts +0 -37
  37. package/dist/src/web/web-components.spec.ts +0 -297
  38. package/src/assets/drakkar-favicon.svg +0 -17
  39. package/src/assets/fonts/inter/InterVariable-Italic.woff2 +0 -0
  40. package/src/assets/fonts/inter/InterVariable.woff2 +0 -0
  41. package/src/core/brand/deml-lockup.svg +0 -5
  42. package/src/core/brand/deml-mark-compact.svg +0 -4
  43. package/src/core/brand/deml-mark-filled.svg +0 -3
  44. package/src/core/brand/deml-mark-outline.svg +0 -4
  45. package/src/core/brand-icons.ts +0 -62
  46. package/src/core/icons.spec.ts +0 -52
  47. package/src/core/icons.ts +0 -206
  48. package/src/core/integration-brand-icons.ts +0 -77
  49. package/src/core/lucide-paths.generated.ts +0 -130
  50. package/src/core/types.ts +0 -85
  51. package/src/core/uid.ts +0 -7
  52. package/src/elements/button/viking-button.ts +0 -201
  53. package/src/elements/card/viking-card.ts +0 -60
  54. package/src/elements/core/dom.ts +0 -33
  55. package/src/elements/core/styles.ts +0 -28
  56. package/src/elements/modal/viking-modal.ts +0 -154
  57. package/src/index.ts +0 -1
  58. package/src/lib/accordion/accordion.ts +0 -126
  59. package/src/lib/app-header/app-header.scss +0 -274
  60. package/src/lib/app-header/app-header.ts +0 -43
  61. package/src/lib/app-sidebar/app-sidebar.scss +0 -415
  62. package/src/lib/app-sidebar/app-sidebar.ts +0 -29
  63. package/src/lib/auth-panel/auth-panel.spec.ts +0 -132
  64. package/src/lib/auth-panel/auth-panel.ts +0 -228
  65. package/src/lib/autocomplete/autocomplete.ts +0 -223
  66. package/src/lib/avatar/avatar.ts +0 -126
  67. package/src/lib/badge/badge.ts +0 -182
  68. package/src/lib/bar/bar.ts +0 -31
  69. package/src/lib/brand/brand.ts +0 -60
  70. package/src/lib/breadcrumbs/breadcrumbs.ts +0 -81
  71. package/src/lib/button/button-group.ts +0 -40
  72. package/src/lib/button/button.scss +0 -119
  73. package/src/lib/button/button.ts +0 -98
  74. package/src/lib/calendar/calendar.ts +0 -253
  75. package/src/lib/callout/callout.ts +0 -211
  76. package/src/lib/card/card-title.spec.ts +0 -27
  77. package/src/lib/card/card-title.ts +0 -50
  78. package/src/lib/card/card.ts +0 -198
  79. package/src/lib/carousel/carousel.ts +0 -206
  80. package/src/lib/chart/chart-zoom.spec.ts +0 -65
  81. package/src/lib/chart/chart-zoom.ts +0 -71
  82. package/src/lib/chart/chart.ts +0 -1257
  83. package/src/lib/chart-card-header/chart-card-header.ts +0 -80
  84. package/src/lib/chart-empty-state/chart-empty-state.ts +0 -146
  85. package/src/lib/chart-panel/chart-panel.ts +0 -133
  86. package/src/lib/checkbox/checkbox.ts +0 -139
  87. package/src/lib/color-picker/color-picker.ts +0 -148
  88. package/src/lib/command/command.ts +0 -260
  89. package/src/lib/composer/composer.ts +0 -180
  90. package/src/lib/confirm-dialog/confirm-dialog.ts +0 -163
  91. package/src/lib/confirm-dialog/dialog.service.ts +0 -79
  92. package/src/lib/context/context.ts +0 -75
  93. package/src/lib/core/brand-icons.ts +0 -62
  94. package/src/lib/core/cva.ts +0 -33
  95. package/src/lib/core/icons.ts +0 -206
  96. package/src/lib/core/integration-brand-icons.ts +0 -77
  97. package/src/lib/core/lucide-paths.generated.ts +0 -130
  98. package/src/lib/date-picker/date-picker.ts +0 -139
  99. package/src/lib/dropdown/dropdown.ts +0 -188
  100. package/src/lib/editor/editor.ts +0 -170
  101. package/src/lib/empty-state/empty-state.ts +0 -100
  102. package/src/lib/fab/fab.ts +0 -76
  103. package/src/lib/field/field.ts +0 -111
  104. package/src/lib/file-upload/file-upload.ts +0 -208
  105. package/src/lib/footer/footer.scss +0 -155
  106. package/src/lib/footer/footer.ts +0 -28
  107. package/src/lib/form-section/form-section.ts +0 -200
  108. package/src/lib/forms.spec.ts +0 -92
  109. package/src/lib/gauge-arc/gauge-arc.ts +0 -85
  110. package/src/lib/hud-panel/hud-panel.ts +0 -27
  111. package/src/lib/icon/icon.ts +0 -284
  112. package/src/lib/icon-badge/icon-badge.ts +0 -87
  113. package/src/lib/icon-heading/icon-heading.spec.ts +0 -32
  114. package/src/lib/icon-heading/icon-heading.ts +0 -38
  115. package/src/lib/icon-text/icon-text.ts +0 -120
  116. package/src/lib/input/input.ts +0 -119
  117. package/src/lib/kanban/kanban.ts +0 -211
  118. package/src/lib/kbd/kbd.ts +0 -32
  119. package/src/lib/label/label.ts +0 -39
  120. package/src/lib/loading-overlay/loading-overlay.ts +0 -80
  121. package/src/lib/menubar/menubar.ts +0 -77
  122. package/src/lib/metric-card/metric-card.ts +0 -33
  123. package/src/lib/modal/modal.ts +0 -207
  124. package/src/lib/native-select/native-select.ts +0 -124
  125. package/src/lib/navbar/navbar.ts +0 -124
  126. package/src/lib/navigation-menu/navigation-menu.ts +0 -116
  127. package/src/lib/otp-input/otp-input.ts +0 -164
  128. package/src/lib/page-back-link/page-back-link.ts +0 -74
  129. package/src/lib/page-header/page-header.ts +0 -70
  130. package/src/lib/pagination/pagination.ts +0 -157
  131. package/src/lib/pillbox/pillbox.ts +0 -157
  132. package/src/lib/popover/popover.ts +0 -92
  133. package/src/lib/profile/profile.ts +0 -73
  134. package/src/lib/progress/progress.ts +0 -123
  135. package/src/lib/radio/radio.ts +0 -132
  136. package/src/lib/ring-gauge/ring-gauge.ts +0 -75
  137. package/src/lib/scroll-area/scroll-area.ts +0 -57
  138. package/src/lib/search-palette/search-palette.scss +0 -288
  139. package/src/lib/search-palette/search-palette.ts +0 -114
  140. package/src/lib/select/select.ts +0 -292
  141. package/src/lib/separator/separator.ts +0 -59
  142. package/src/lib/sheet/sheet.ts +0 -192
  143. package/src/lib/sidebar-nav/sidebar-nav.scss +0 -218
  144. package/src/lib/sidebar-nav/sidebar-nav.ts +0 -158
  145. package/src/lib/site-drakkar/site-footer.ts +0 -129
  146. package/src/lib/site-drakkar/site-navbar.scss +0 -2
  147. package/src/lib/site-drakkar/site-navbar.ts +0 -277
  148. package/src/lib/site-drakkar/suite-search-items.spec.ts +0 -61
  149. package/src/lib/site-drakkar/suite-search-items.ts +0 -246
  150. package/src/lib/skeleton/skeleton.ts +0 -51
  151. package/src/lib/slider/slider.ts +0 -133
  152. package/src/lib/spinner/spinner.ts +0 -75
  153. package/src/lib/status-metric-row/status-metric-row.ts +0 -74
  154. package/src/lib/suite-search-palette/suite-search-palette.ts +0 -95
  155. package/src/lib/switch/switch.ts +0 -131
  156. package/src/lib/table/table.ts +0 -137
  157. package/src/lib/tabs/tab-panel.ts +0 -61
  158. package/src/lib/tabs/tab.ts +0 -107
  159. package/src/lib/tabs/tabs.ts +0 -109
  160. package/src/lib/textarea/textarea.ts +0 -103
  161. package/src/lib/theme-toggle/theme-toggle.spec.ts +0 -40
  162. package/src/lib/theme-toggle/theme-toggle.ts +0 -39
  163. package/src/lib/time-picker/time-picker.ts +0 -197
  164. package/src/lib/timeline/timeline.ts +0 -152
  165. package/src/lib/toast/toast.ts +0 -196
  166. package/src/lib/toggle/toggle-group.ts +0 -60
  167. package/src/lib/toggle/toggle.ts +0 -101
  168. package/src/lib/tooltip/tooltip.ts +0 -119
  169. package/src/lib/typography/heading.ts +0 -52
  170. package/src/lib/typography/text.ts +0 -51
  171. package/src/lib/uptime-bar/uptime-bar.ts +0 -55
  172. package/src/lib/verification-code-field/verification-code-field.ts +0 -149
  173. package/src/lib/whitepaper-cta/whitepaper-cta.scss +0 -130
  174. package/src/lib/whitepaper-cta/whitepaper-cta.ts +0 -78
  175. package/src/lib/wizard/wizard.ts +0 -80
  176. package/src/public-api.ts +0 -172
  177. package/src/styles/_buttons.scss +0 -386
  178. package/src/styles/_component-primitives.scss +0 -183
  179. package/src/styles/_drakkar-buttons.scss +0 -85
  180. package/src/styles/_fonts.scss +0 -22
  181. package/src/styles/_forms.scss +0 -66
  182. package/src/styles/_input.scss +0 -106
  183. package/src/styles/_layout-enforcement.scss +0 -229
  184. package/src/styles/_layout-rhythm.scss +0 -158
  185. package/src/styles/_legacy-aliases.scss +0 -212
  186. package/src/styles/_series-colors.scss +0 -24
  187. package/src/styles/_static-primitives.scss +0 -857
  188. package/src/styles/_typography.scss +0 -87
  189. package/src/styles/_variables.scss +0 -527
  190. package/src/styles/components/a11y.scss +0 -90
  191. package/src/styles/components/badges.scss +0 -102
  192. package/src/styles/components/extracted-utilities.scss +0 -459
  193. package/src/styles/components/footer.scss +0 -155
  194. package/src/styles/components/icon-heading.scss +0 -47
  195. package/src/styles/components/icon-inline.scss +0 -101
  196. package/src/styles/components/layout.scss +0 -59
  197. package/src/styles/components/utilities.scss +0 -131
  198. package/src/styles/components/viking-inspired.scss +0 -204
  199. package/src/styles/components/whitepaper-cta.scss +0 -130
  200. package/src/styles/components-bundle.scss +0 -9
  201. package/src/styles/components.scss +0 -442
  202. package/src/styles/deml-components.scss +0 -10
  203. package/src/styles/index.scss +0 -8
  204. package/src/styles/layout-shell.scss +0 -111
  205. package/src/styles/page-shell.scss +0 -859
  206. package/src/styles/static-navbar.scss +0 -1215
  207. package/src/styles/surfaces/backend.scss +0 -154
  208. package/src/styles/surfaces/docs-global.scss +0 -73
  209. package/src/styles/surfaces/docs-shell.scss +0 -437
  210. package/src/styles/surfaces/docs-showcase.scss +0 -1153
  211. package/src/styles/surfaces/marketing-cta.scss +0 -62
  212. package/src/styles/surfaces/marketing-docs-bento.scss +0 -67
  213. package/src/styles/surfaces/marketing-global.scss +0 -748
  214. package/src/styles/surfaces/marketing-landing.scss +0 -1526
  215. package/src/styles/surfaces/marketing-publication.scss +0 -535
  216. package/src/styles/surfaces/marketing-theme.scss +0 -14
  217. package/src/styles/surfaces/swagger-ui.scss +0 -922
  218. package/src/styles/tokens-export.scss +0 -18
  219. package/src/styles/tokens.scss +0 -5
  220. package/src/styles/viking-ui-bundle.scss +0 -23
  221. package/src/styles/viking-ui.scss +0 -270
  222. package/src/tokens/series-presets.ts +0 -15
  223. package/src/tokens/tailwind.preset.js +0 -209
  224. package/src/tokens/viking-tokens.json +0 -318
  225. package/src/viking-ui.spec.ts +0 -416
  226. package/src/web/badge/viking-badge-wc.ts +0 -116
  227. package/src/web/button/viking-button-wc.ts +0 -165
  228. package/src/web/callout/viking-callout-wc.ts +0 -105
  229. package/src/web/card/viking-card-wc.ts +0 -70
  230. package/src/web/core/base.ts +0 -56
  231. package/src/web/core/dom.ts +0 -53
  232. package/src/web/core/icons-inline.ts +0 -44
  233. package/src/web/core/styles.ts +0 -1261
  234. package/src/web/core/types.ts +0 -19
  235. package/src/web/field/viking-field-wc.ts +0 -154
  236. package/src/web/index.ts +0 -73
  237. package/src/web/input/viking-input-wc.ts +0 -211
  238. package/src/web/modal/viking-modal-wc.ts +0 -187
  239. package/src/web/search-palette/viking-search-palette-wc.ts +0 -494
  240. package/src/web/select/viking-select-wc.ts +0 -218
  241. package/src/web/suite-header/viking-suite-header-wc.ts +0 -729
  242. package/src/web/suite-search-palette/viking-suite-search-palette-wc.ts +0 -234
  243. package/src/web/theme-toggle/viking-theme-toggle-wc.ts +0 -139
  244. package/src/web/types.ts +0 -37
  245. package/src/web/web-components.spec.ts +0 -297
  246. package/src/web-components/index.ts +0 -1
@@ -299,13 +299,15 @@
299
299
  "controlHeightXs": "24px",
300
300
  "btnMinWidth": "120px",
301
301
  "touchTargetMin": "44px",
302
- "pageGutter": "16px",
303
- "pageGutterLg": "24px",
304
- "pageStackGap": "24px",
305
- "pageSectionGap": "32px",
306
- "cardPadding": "24px",
307
- "cardPaddingCompact": "16px",
308
- "panelPadding": "24px",
302
+ "pageGutter": "24px",
303
+ "pageGutterLg": "32px",
304
+ "pageStackGap": "32px",
305
+ "pageSectionGap": "48px",
306
+ "cardPadding": "32px",
307
+ "cardPaddingCompact": "24px",
308
+ "cardContentGap": "24px",
309
+ "cardContentGapCompact": "16px",
310
+ "panelPadding": "32px",
309
311
  "formMaxWidth": "42rem",
310
312
  "formNarrowMaxWidth": "28rem",
311
313
  "contentReadableMaxWidth": "48rem"
@@ -23,6 +23,12 @@
23
23
  }
24
24
 
25
25
  .viking-btn {
26
+ --viking-btn-depth-shadow: var(--viking-shadow-sm);
27
+ --viking-btn-hover-shadow: var(--viking-shadow-hover);
28
+ --viking-btn-press-shadow:
29
+ inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent),
30
+ var(--viking-shadow-xs);
31
+
26
32
  font-family: inherit;
27
33
  font-size: var(--viking-font-size-ui, var(--viking-font-size-sm));
28
34
  font-weight: var(--viking-font-weight-semibold);
@@ -31,10 +37,10 @@
31
37
  display: inline-flex;
32
38
  align-items: center;
33
39
  justify-content: center;
34
- gap: var(--viking-space-1);
40
+ gap: var(--viking-space-1-5);
35
41
  min-height: var(--viking-control-height);
36
- padding: 0 var(--viking-control-padding-x);
37
- border-radius: var(--viking-radius-lg);
42
+ padding: var(--viking-space-half) var(--viking-control-padding-x);
43
+ border-radius: var(--viking-radius-md);
38
44
  border: 1px solid transparent;
39
45
  cursor: pointer;
40
46
  text-decoration: none;
@@ -49,7 +55,7 @@
49
55
  -webkit-tap-highlight-color: transparent;
50
56
  box-sizing: border-box;
51
57
  overflow: hidden;
52
- box-shadow: var(--viking-shadow-sm);
58
+ box-shadow: var(--viking-btn-depth-shadow);
53
59
  }
54
60
 
55
61
  .viking-btn::before {
@@ -64,7 +70,7 @@
64
70
  transparent
65
71
  );
66
72
  pointer-events: none;
67
- opacity: 0.82;
73
+ opacity: 0.88;
68
74
  transition: var(--viking-transition-interactive);
69
75
  }
70
76
 
@@ -82,9 +88,13 @@
82
88
  box-shadow: none !important;
83
89
  }
84
90
 
91
+ .viking-btn[aria-busy='true'] {
92
+ cursor: wait;
93
+ }
94
+
85
95
  .viking-btn[aria-busy='true']::before,
86
96
  .viking-btn[aria-busy='true'] .viking-btn-label {
87
- opacity: 0.85;
97
+ opacity: 0.78;
88
98
  transform: translateY(1px);
89
99
  }
90
100
 
@@ -188,27 +198,26 @@
188
198
  flex-shrink: 0;
189
199
  pointer-events: none;
190
200
  flex: 0 0 auto;
201
+ margin-block: calc(var(--viking-space-half) * -1);
191
202
  }
192
203
 
193
204
  .viking-btn-outline {
194
205
  background: var(--viking-surface);
195
206
  color: var(--viking-text);
196
207
  border-color: var(--viking-border-strong);
197
- box-shadow: var(--viking-shadow-sm);
208
+ box-shadow: var(--viking-btn-depth-shadow);
198
209
  }
199
210
 
200
211
  .viking-btn-outline:hover:not(:disabled):not([aria-busy='true']) {
201
- background: var(--viking-surface-alt);
212
+ background: color-mix(in srgb, var(--viking-accent) 5%, var(--viking-surface-alt));
202
213
  border-color: color-mix(in srgb, var(--viking-accent) 45%, var(--viking-border-strong));
203
- box-shadow: var(--viking-shadow-md);
214
+ box-shadow: var(--viking-btn-hover-shadow);
204
215
  transform: translateY(var(--viking-state-hover-lift));
205
216
  }
206
217
 
207
218
  .viking-btn-outline:active:not(:disabled):not([aria-busy='true']) {
208
219
  transform: translateY(0) scale(var(--viking-state-active-scale));
209
- box-shadow: inset 0 1px 2px
210
- color-mix(in srgb, var(--viking-black) 28%, transparent),
211
- var(--viking-shadow-sm);
220
+ box-shadow: var(--viking-btn-press-shadow);
212
221
  border-color: var(--viking-border-strong);
213
222
  }
214
223
 
@@ -216,21 +225,21 @@
216
225
  background: var(--viking-accent);
217
226
  color: var(--viking-accent-content);
218
227
  border-color: color-mix(in srgb, var(--viking-accent) 82%, var(--viking-black));
219
- box-shadow: var(--viking-shadow-sm);
228
+ box-shadow:
229
+ var(--viking-btn-depth-shadow),
230
+ inset 0 1px 0 color-mix(in srgb, var(--viking-white-pure) 12%, transparent);
220
231
  }
221
232
 
222
233
  .viking-btn-primary:hover:not(:disabled):not([aria-busy='true']) {
223
234
  background: var(--viking-accent-hover);
224
235
  border-color: var(--viking-accent-hover);
225
- box-shadow: var(--viking-shadow-hover);
236
+ box-shadow: var(--viking-btn-hover-shadow);
226
237
  transform: translateY(var(--viking-state-hover-lift));
227
238
  }
228
239
 
229
240
  .viking-btn-primary:active:not(:disabled):not([aria-busy='true']) {
230
241
  transform: translateY(0) scale(var(--viking-state-active-scale));
231
- box-shadow: inset 0 1px 2px
232
- color-mix(in srgb, var(--viking-black) 28%, transparent),
233
- var(--viking-shadow-sm);
242
+ box-shadow: var(--viking-btn-press-shadow);
234
243
  border-color: color-mix(in srgb, var(--viking-accent) 82%, var(--viking-black));
235
244
  }
236
245
 
@@ -238,21 +247,21 @@
238
247
  background: var(--viking-accent-secondary);
239
248
  color: var(--viking-accent-secondary-content);
240
249
  border-color: color-mix(in srgb, var(--viking-accent-secondary) 82%, var(--viking-black));
241
- box-shadow: var(--viking-shadow-sm);
250
+ box-shadow:
251
+ var(--viking-btn-depth-shadow),
252
+ inset 0 1px 0 color-mix(in srgb, var(--viking-white-pure) 10%, transparent);
242
253
  }
243
254
 
244
255
  .viking-btn-secondary:hover:not(:disabled):not([aria-busy='true']) {
245
256
  background: var(--viking-accent-secondary-hover);
246
257
  border-color: var(--viking-accent-secondary-hover);
247
- box-shadow: var(--viking-shadow-hover);
258
+ box-shadow: var(--viking-btn-hover-shadow);
248
259
  transform: translateY(var(--viking-state-hover-lift));
249
260
  }
250
261
 
251
262
  .viking-btn-secondary:active:not(:disabled):not([aria-busy='true']) {
252
263
  transform: translateY(0) scale(var(--viking-state-active-scale));
253
- box-shadow: inset 0 1px 2px
254
- color-mix(in srgb, var(--viking-black) 28%, transparent),
255
- var(--viking-shadow-sm);
264
+ box-shadow: var(--viking-btn-press-shadow);
256
265
  border-color: color-mix(in srgb, var(--viking-accent-secondary) 82%, var(--viking-black));
257
266
  }
258
267
 
@@ -266,13 +275,13 @@
266
275
  .viking-btn-filled:hover:not(:disabled):not([aria-busy='true']) {
267
276
  border-color: color-mix(in srgb, var(--viking-accent) 45%, var(--viking-border));
268
277
  background: color-mix(in srgb, var(--viking-accent) 8%, var(--viking-surface-alt));
269
- box-shadow: var(--viking-shadow-sm);
278
+ box-shadow: var(--viking-btn-depth-shadow);
270
279
  transform: translateY(var(--viking-state-hover-lift));
271
280
  }
272
281
 
273
282
  .viking-btn-filled:active:not(:disabled):not([aria-busy='true']) {
274
283
  transform: translateY(0) scale(var(--viking-state-active-scale));
275
- box-shadow: var(--viking-shadow-sm);
284
+ box-shadow: var(--viking-btn-press-shadow);
276
285
  border-color: color-mix(in srgb, var(--viking-accent) 20%, var(--viking-border));
277
286
  background: color-mix(in srgb, var(--viking-surface-alt) 84%, var(--viking-accent));
278
287
  }
@@ -281,13 +290,15 @@
281
290
  background: var(--viking-danger);
282
291
  color: var(--viking-on-danger);
283
292
  border-color: color-mix(in srgb, var(--viking-danger) 85%, var(--viking-black));
284
- box-shadow: var(--viking-shadow-sm);
293
+ box-shadow:
294
+ var(--viking-btn-depth-shadow),
295
+ inset 0 1px 0 color-mix(in srgb, var(--viking-white-pure) 10%, transparent);
285
296
  }
286
297
 
287
298
  .viking-btn-danger:hover:not(:disabled):not([aria-busy='true']) {
288
299
  background: color-mix(in srgb, var(--viking-danger) 88%, var(--viking-white));
289
300
  border-color: color-mix(in srgb, var(--viking-danger) 92%, var(--viking-white));
290
- box-shadow: var(--viking-shadow-hover);
301
+ box-shadow: var(--viking-btn-hover-shadow);
291
302
  transform: translateY(var(--viking-state-hover-lift));
292
303
  }
293
304
 
@@ -295,9 +306,7 @@
295
306
  transform: translateY(0) scale(var(--viking-state-active-scale));
296
307
  border-color: color-mix(in srgb, var(--viking-danger) 72%, var(--viking-black));
297
308
  background: color-mix(in srgb, var(--viking-danger) 84%, var(--viking-black));
298
- box-shadow: inset 0 1px 2px
299
- color-mix(in srgb, var(--viking-black) 28%, transparent),
300
- var(--viking-shadow-sm);
309
+ box-shadow: var(--viking-btn-press-shadow);
301
310
  }
302
311
 
303
312
  .viking-btn-ghost {
@@ -311,6 +320,8 @@
311
320
  .viking-btn-ghost:hover:not(:disabled):not([aria-busy='true']) {
312
321
  background: var(--viking-accent-soft);
313
322
  color: var(--viking-accent-strong);
323
+ border-color: var(--viking-border-subtle);
324
+ transform: translateY(var(--viking-state-hover-lift));
314
325
  }
315
326
 
316
327
  .viking-btn-ghost:active:not(:disabled):not([aria-busy='true']) {
@@ -356,11 +367,12 @@
356
367
  }
357
368
 
358
369
  .viking-btn-spinner {
359
- width: 1.125rem;
360
- height: 1.125rem;
370
+ flex: 0 0 auto;
371
+ width: var(--viking-icon-size-sm, 18px);
372
+ height: var(--viking-icon-size-sm, 18px);
361
373
  border: 2px solid currentColor;
362
374
  border-right-color: transparent;
363
- border-radius: 50%;
375
+ border-radius: var(--viking-radius-pill);
364
376
  animation: viking-spin 0.8s linear infinite;
365
377
  }
366
378
 
@@ -1325,7 +1337,7 @@ input:disabled {
1325
1337
  <footer class="viking-modal-footer" part="footer"><slot name="actions"></slot></footer>
1326
1338
  </div>
1327
1339
  </dialog>
1328
- `,this.dialogEl=this.shadow.querySelector("dialog"),this.shadow.querySelector(".viking-modal-close")?.addEventListener("click",()=>this.closeModal()),this.dialogEl?.addEventListener("keydown",i=>{i.key==="Escape"&&this.dismissible&&(i.preventDefault(),this.closeModal())})}},Q=()=>{c(m.tag,m),d(m.legacyTag,m),d(m.dialogTag,m)};var it=t=>{let e=t.getAttribute("items");if(!e)return[];try{let i=JSON.parse(e);return Array.isArray(i)?i:[]}catch{return[]}},nt=(t,e)=>[t.title,t.snippet??"",t.group??"",t.href,...t.keywords??[]].join(" ").toLowerCase().includes(e),rt=(t,e)=>{let i=e.trim().toLowerCase();return i?t.filter(n=>nt(n,i)):t},at=t=>{let e=new Map;return t.forEach(i=>{let n=i.group??null,r=e.get(n)??[];r.push(i),e.set(n,r)}),Array.from(e.entries()).map(([i,n])=>({group:i,items:n}))},b=class extends l{static tag="viking-command-palette";static searchTag="viking-search-palette";static legacyTag="viking-search-palette-wc";static get observedAttributes(){return["open","placeholder","items","global-shortcut"]}shadow;dialogEl=null;inputEl=null;resultsEl=null;globalKeyHandler=null;resultsId=x("viking-search-results");inputId=x("viking-search-input");query="";activeIndex=0;flatResults=[];constructor(){super(),this.shadow=this.attachShadow({mode:"open"}),v(this.shadow,Le)}connectedCallback(){this.render(),this.syncOpen(),this.bindGlobalShortcut(),this.dialogEl?.addEventListener("close",this.onClose),this.dialogEl?.addEventListener("click",this.onBackdropClick),this.inputEl?.addEventListener("input",this.onInput),this.inputEl?.addEventListener("keydown",this.onInputKeydown)}disconnectedCallback(){this.dialogEl?.removeEventListener("close",this.onClose),this.dialogEl?.removeEventListener("click",this.onBackdropClick),this.inputEl?.removeEventListener("input",this.onInput),this.inputEl?.removeEventListener("keydown",this.onInputKeydown),this.unbindGlobalShortcut()}attributeChangedCallback(e){if(this.isConnected&&(e==="open"&&this.syncOpen(),e==="global-shortcut"&&(this.unbindGlobalShortcut(),this.bindGlobalShortcut()),e==="items"||e==="placeholder"))if(e==="placeholder"&&this.inputEl){let i=this.getAttribute("placeholder")??"Search documentation, dashboard, API\u2026";this.inputEl.placeholder=i,this.inputEl.setAttribute("aria-label",i)}else this.renderResults()}openPalette(){this.setAttribute("open",""),this.syncOpen()}closePalette(){this.removeAttribute("open"),T(this.dialogEl)}search(e){this.query=e,this.inputEl&&(this.inputEl.value=e),this.activeIndex=0,this.renderResults(),this.dispatchEvent(new CustomEvent("viking-query",{bubbles:!0,composed:!0,detail:{query:this.query}}))}onClose=()=>{this.removeAttribute("open"),this.query="",this.activeIndex=0,this.inputEl&&(this.inputEl.value=""),this.dispatchEvent(new CustomEvent("viking-close",{bubbles:!0,composed:!0}))};onBackdropClick=e=>{e.target===this.dialogEl&&this.closePalette()};onInput=e=>{this.query=e.target.value??this.inputEl?.value??"",this.activeIndex=0,this.renderResults(),this.dispatchEvent(new CustomEvent("viking-query",{bubbles:!0,composed:!0,detail:{query:this.query}}))};onInputKeydown=e=>{if(this.flatResults.length===0){e.key==="Escape"&&(e.preventDefault(),this.closePalette());return}if(e.key==="ArrowDown"){e.preventDefault(),this.activeIndex=Math.min(this.flatResults.length-1,this.activeIndex+1),this.renderResults(),this.scrollActiveIntoView();return}if(e.key==="ArrowUp"){e.preventDefault(),this.activeIndex=Math.max(0,this.activeIndex-1),this.renderResults(),this.scrollActiveIntoView();return}if(e.key==="Enter"){e.preventDefault();let i=this.flatResults[this.activeIndex];i&&this.activateItem(i)}};bindGlobalShortcut(){h(this,"global-shortcut")&&(this.globalKeyHandler=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="k"&&(e.preventDefault(),this.hasAttribute("open")?this.closePalette():this.openPalette())},document.addEventListener("keydown",this.globalKeyHandler))}unbindGlobalShortcut(){this.globalKeyHandler&&(document.removeEventListener("keydown",this.globalKeyHandler),this.globalKeyHandler=null)}syncOpen(){if(!this.dialogEl)return;let e=this.hasAttribute("open");e&&!this.dialogEl.open?(this.dialogEl.removeAttribute("aria-hidden"),G(this.dialogEl),this.activeIndex=0,this.renderResults(),queueMicrotask(()=>this.inputEl?.focus())):!e&&this.dialogEl.open?(T(this.dialogEl),this.dialogEl.setAttribute("aria-hidden","true")):e||this.dialogEl.setAttribute("aria-hidden","true")}scrollActiveIntoView(){this.resultsEl?.querySelector(".viking-search-result.is-selected")?.scrollIntoView({block:"nearest"})}activateItem(e){if(this.dispatchEvent(new CustomEvent("viking-select",{bubbles:!0,composed:!0,detail:{item:e}})),this.closePalette(),e.action==="cookie-settings"){globalThis.DemlWidgets?.openCookieSettings?.();return}if(e.action==="bug-report"){let i=globalThis.DemlWidgets;if(i?.openBugReport){i.openBugReport();return}}e.href&&e.href!=="#"&&window.location.assign(e.href)}renderResults(){if(!this.resultsEl)return;let e=it(this),i=this.query.trim().toLowerCase(),n=rt(e,i);if(this.flatResults=n,n.length===0){let p=this.query.trim();this.resultsEl.innerHTML=`<p class="viking-search-empty" role="status">${p?"No results found":"Start typing to search\u2026"}</p>`,this.inputEl?.removeAttribute("aria-activedescendant");return}this.activeIndex>=n.length&&(this.activeIndex=n.length-1);let r=0,s=at(n).map(({group:p,items:k})=>{let y=p?`<p class="viking-search-group-label" role="presentation">${a(p)}</p>`:"",L=k.map(V=>{let re=`${this.resultsId}-result-${r}`,P=r===this.activeIndex;return r+=1,`
1340
+ `,this.dialogEl=this.shadow.querySelector("dialog"),this.shadow.querySelector(".viking-modal-close")?.addEventListener("click",()=>this.closeModal()),this.dialogEl?.addEventListener("keydown",i=>{i.key==="Escape"&&this.dismissible&&(i.preventDefault(),this.closeModal())})}},Q=()=>{c(m.tag,m),d(m.legacyTag,m),d(m.dialogTag,m)};var it=t=>{let e=t.getAttribute("items");if(!e)return[];try{let i=JSON.parse(e);return Array.isArray(i)?i:[]}catch{return[]}},nt=(t,e)=>[t.title,t.snippet??"",t.group??"",t.href,...t.keywords??[]].join(" ").toLowerCase().includes(e),rt=(t,e)=>{let i=e.trim().toLowerCase();return i?t.filter(n=>nt(n,i)):t},at=t=>{let e=new Map;return t.forEach(i=>{let n=i.group??null,r=e.get(n)??[];r.push(i),e.set(n,r)}),Array.from(e.entries()).map(([i,n])=>({group:i,items:n}))},b=class extends l{static tag="viking-command-palette";static searchTag="viking-search-palette";static legacyTag="viking-search-palette-wc";static get observedAttributes(){return["open","placeholder","items","global-shortcut"]}shadow;dialogEl=null;inputEl=null;resultsEl=null;globalKeyHandler=null;resultsId=x("viking-search-results");inputId=x("viking-search-input");query="";activeIndex=0;flatResults=[];constructor(){super(),this.shadow=this.attachShadow({mode:"open"}),v(this.shadow,Le)}connectedCallback(){this.render(),this.removeAttribute("open"),this.syncOpen(),this.bindGlobalShortcut(),this.dialogEl?.addEventListener("close",this.onClose),this.dialogEl?.addEventListener("click",this.onBackdropClick),this.inputEl?.addEventListener("input",this.onInput),this.inputEl?.addEventListener("keydown",this.onInputKeydown)}disconnectedCallback(){this.dialogEl?.removeEventListener("close",this.onClose),this.dialogEl?.removeEventListener("click",this.onBackdropClick),this.inputEl?.removeEventListener("input",this.onInput),this.inputEl?.removeEventListener("keydown",this.onInputKeydown),this.unbindGlobalShortcut()}attributeChangedCallback(e){if(this.isConnected&&(e==="open"&&this.syncOpen(),e==="global-shortcut"&&(this.unbindGlobalShortcut(),this.bindGlobalShortcut()),e==="items"||e==="placeholder"))if(e==="placeholder"&&this.inputEl){let i=this.getAttribute("placeholder")??"Search documentation, dashboard, API\u2026";this.inputEl.placeholder=i,this.inputEl.setAttribute("aria-label",i)}else this.renderResults()}openPalette(){this.setAttribute("open",""),this.syncOpen()}closePalette(){this.removeAttribute("open"),T(this.dialogEl)}search(e){this.query=e,this.inputEl&&(this.inputEl.value=e),this.activeIndex=0,this.renderResults(),this.dispatchEvent(new CustomEvent("viking-query",{bubbles:!0,composed:!0,detail:{query:this.query}}))}onClose=()=>{this.removeAttribute("open"),this.query="",this.activeIndex=0,this.inputEl&&(this.inputEl.value=""),this.dispatchEvent(new CustomEvent("viking-close",{bubbles:!0,composed:!0}))};onBackdropClick=e=>{e.target===this.dialogEl&&this.closePalette()};onInput=e=>{this.query=e.target.value??this.inputEl?.value??"",this.activeIndex=0,this.renderResults(),this.dispatchEvent(new CustomEvent("viking-query",{bubbles:!0,composed:!0,detail:{query:this.query}}))};onInputKeydown=e=>{if(this.flatResults.length===0){e.key==="Escape"&&(e.preventDefault(),this.closePalette());return}if(e.key==="ArrowDown"){e.preventDefault(),this.activeIndex=Math.min(this.flatResults.length-1,this.activeIndex+1),this.renderResults(),this.scrollActiveIntoView();return}if(e.key==="ArrowUp"){e.preventDefault(),this.activeIndex=Math.max(0,this.activeIndex-1),this.renderResults(),this.scrollActiveIntoView();return}if(e.key==="Enter"){e.preventDefault();let i=this.flatResults[this.activeIndex];i&&this.activateItem(i)}};bindGlobalShortcut(){h(this,"global-shortcut")&&(this.globalKeyHandler=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="k"&&(e.preventDefault(),this.hasAttribute("open")?this.closePalette():this.openPalette())},document.addEventListener("keydown",this.globalKeyHandler))}unbindGlobalShortcut(){this.globalKeyHandler&&(document.removeEventListener("keydown",this.globalKeyHandler),this.globalKeyHandler=null)}syncOpen(){if(!this.dialogEl)return;let e=this.hasAttribute("open");e&&!this.dialogEl.open?(this.dialogEl.removeAttribute("aria-hidden"),G(this.dialogEl),this.activeIndex=0,this.renderResults(),queueMicrotask(()=>this.inputEl?.focus())):!e&&this.dialogEl.open?(T(this.dialogEl),this.dialogEl.setAttribute("aria-hidden","true")):e||this.dialogEl.setAttribute("aria-hidden","true")}scrollActiveIntoView(){this.resultsEl?.querySelector(".viking-search-result.is-selected")?.scrollIntoView({block:"nearest"})}activateItem(e){if(this.dispatchEvent(new CustomEvent("viking-select",{bubbles:!0,composed:!0,detail:{item:e}})),this.closePalette(),e.action==="cookie-settings"){globalThis.DemlWidgets?.openCookieSettings?.();return}if(e.action==="bug-report"){let i=globalThis.DemlWidgets;if(i?.openBugReport){i.openBugReport();return}}e.href&&e.href!=="#"&&window.location.assign(e.href)}renderResults(){if(!this.resultsEl)return;let e=it(this),i=this.query.trim().toLowerCase(),n=rt(e,i);if(this.flatResults=n,n.length===0){let p=this.query.trim();this.resultsEl.innerHTML=`<p class="viking-search-empty" role="status">${p?"No results found":"Start typing to search\u2026"}</p>`,this.inputEl?.removeAttribute("aria-activedescendant");return}this.activeIndex>=n.length&&(this.activeIndex=n.length-1);let r=0,s=at(n).map(({group:p,items:k})=>{let y=p?`<p class="viking-search-group-label" role="presentation">${a(p)}</p>`:"",L=k.map(V=>{let re=`${this.resultsId}-result-${r}`,P=r===this.activeIndex;return r+=1,`
1329
1341
  <a
1330
1342
  id="${re}"
1331
1343
  class="viking-search-result${P?" is-selected":""}"