@dataengineeringformachinelearning/viking-ui 3.0.0-alpha.2 → 4.0.0

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 (198) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +55 -12
  3. package/dist/LICENSE +201 -0
  4. package/dist/README.md +251 -0
  5. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +13751 -0
  6. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +1 -0
  7. package/dist/index.js +1 -4051
  8. package/dist/package.json +87 -0
  9. package/dist/scripts/build-web-components.mjs +37 -0
  10. package/dist/src/tokens/series-presets.ts +15 -0
  11. package/dist/src/tokens/tailwind.preset.js +209 -0
  12. package/dist/src/tokens/viking-tokens.json +318 -0
  13. package/dist/src/web/badge/viking-badge-wc.ts +116 -0
  14. package/dist/src/web/button/viking-button-wc.ts +165 -0
  15. package/dist/src/web/callout/viking-callout-wc.ts +105 -0
  16. package/dist/src/web/card/viking-card-wc.ts +66 -0
  17. package/dist/src/web/core/base.ts +56 -0
  18. package/dist/src/web/core/dom.ts +53 -0
  19. package/dist/src/web/core/icons-inline.ts +44 -0
  20. package/dist/src/web/core/styles.ts +1138 -0
  21. package/dist/src/web/core/types.ts +19 -0
  22. package/dist/src/web/field/viking-field-wc.ts +154 -0
  23. package/dist/src/web/index.ts +73 -0
  24. package/dist/src/web/input/viking-input-wc.ts +211 -0
  25. package/dist/src/web/modal/viking-modal-wc.ts +187 -0
  26. package/dist/src/web/search-palette/viking-search-palette-wc.ts +494 -0
  27. package/dist/src/web/select/viking-select-wc.ts +218 -0
  28. package/dist/src/web/suite-header/viking-suite-header-wc.ts +714 -0
  29. package/dist/src/web/suite-search-palette/viking-suite-search-palette-wc.ts +234 -0
  30. package/dist/src/web/theme-toggle/viking-theme-toggle-wc.ts +139 -0
  31. package/dist/src/web/types.ts +37 -0
  32. package/dist/src/web/web-components.spec.ts +297 -0
  33. package/dist/types/dataengineeringformachinelearning-viking-ui.d.ts +2658 -0
  34. package/dist/viking.manifest.json +271 -0
  35. package/dist/web-components.js +2427 -126
  36. package/package.json +25 -11
  37. package/src/assets/drakkar-favicon.svg +17 -0
  38. package/src/core/brand/deml-lockup.svg +5 -0
  39. package/src/core/brand/deml-mark-compact.svg +4 -0
  40. package/src/core/brand/deml-mark-filled.svg +3 -0
  41. package/src/core/brand/deml-mark-outline.svg +4 -0
  42. package/src/core/brand-icons.ts +62 -0
  43. package/src/core/icons.spec.ts +52 -0
  44. package/src/core/icons.ts +206 -0
  45. package/src/core/integration-brand-icons.ts +77 -0
  46. package/src/core/lucide-paths.generated.ts +130 -0
  47. package/src/core/types.ts +85 -0
  48. package/src/core/uid.ts +7 -0
  49. package/src/lib/accordion/accordion.ts +126 -0
  50. package/src/lib/app-header/app-header.scss +274 -0
  51. package/src/lib/app-header/app-header.ts +43 -0
  52. package/src/lib/app-sidebar/app-sidebar.scss +415 -0
  53. package/src/lib/app-sidebar/app-sidebar.ts +29 -0
  54. package/src/lib/auth-panel/auth-panel.spec.ts +132 -0
  55. package/src/lib/auth-panel/auth-panel.ts +228 -0
  56. package/src/lib/autocomplete/autocomplete.ts +223 -0
  57. package/src/lib/avatar/avatar.ts +126 -0
  58. package/src/lib/badge/badge.ts +182 -0
  59. package/src/lib/bar/bar.ts +31 -0
  60. package/src/lib/brand/brand.ts +60 -0
  61. package/src/lib/breadcrumbs/breadcrumbs.ts +81 -0
  62. package/src/lib/button/button-group.ts +40 -0
  63. package/src/lib/button/button.scss +96 -0
  64. package/src/lib/button/button.ts +98 -0
  65. package/src/lib/calendar/calendar.ts +253 -0
  66. package/src/lib/callout/callout.ts +211 -0
  67. package/src/lib/card/card-title.spec.ts +27 -0
  68. package/src/lib/card/card-title.ts +50 -0
  69. package/src/lib/card/card.ts +170 -0
  70. package/src/lib/carousel/carousel.ts +206 -0
  71. package/src/lib/chart/chart-zoom.spec.ts +65 -0
  72. package/src/lib/chart/chart-zoom.ts +71 -0
  73. package/src/lib/chart/chart.ts +1257 -0
  74. package/src/lib/chart-card-header/chart-card-header.ts +80 -0
  75. package/src/lib/chart-empty-state/chart-empty-state.ts +146 -0
  76. package/src/lib/chart-panel/chart-panel.ts +133 -0
  77. package/src/lib/checkbox/checkbox.ts +139 -0
  78. package/src/lib/color-picker/color-picker.ts +148 -0
  79. package/src/lib/command/command.ts +260 -0
  80. package/src/lib/composer/composer.ts +180 -0
  81. package/src/lib/confirm-dialog/confirm-dialog.ts +163 -0
  82. package/src/lib/confirm-dialog/dialog.service.ts +79 -0
  83. package/src/lib/context/context.ts +75 -0
  84. package/src/lib/core/cva.ts +33 -0
  85. package/src/lib/date-picker/date-picker.ts +139 -0
  86. package/src/lib/dropdown/dropdown.ts +188 -0
  87. package/src/lib/editor/editor.ts +170 -0
  88. package/src/lib/empty-state/empty-state.ts +100 -0
  89. package/src/lib/fab/fab.ts +76 -0
  90. package/src/lib/field/field.ts +111 -0
  91. package/src/lib/file-upload/file-upload.ts +208 -0
  92. package/src/lib/footer/footer.scss +155 -0
  93. package/src/lib/footer/footer.ts +28 -0
  94. package/src/lib/form-section/form-section.ts +200 -0
  95. package/src/lib/forms.spec.ts +92 -0
  96. package/src/lib/gauge-arc/gauge-arc.ts +85 -0
  97. package/src/lib/hud-panel/hud-panel.ts +27 -0
  98. package/src/lib/icon/icon.ts +284 -0
  99. package/src/lib/icon-badge/icon-badge.ts +87 -0
  100. package/src/lib/icon-heading/icon-heading.spec.ts +32 -0
  101. package/src/lib/icon-heading/icon-heading.ts +38 -0
  102. package/src/lib/icon-text/icon-text.ts +120 -0
  103. package/src/lib/input/input.ts +119 -0
  104. package/src/lib/kanban/kanban.ts +211 -0
  105. package/src/lib/kbd/kbd.ts +32 -0
  106. package/src/lib/label/label.ts +39 -0
  107. package/src/lib/loading-overlay/loading-overlay.ts +80 -0
  108. package/src/lib/menubar/menubar.ts +77 -0
  109. package/src/lib/metric-card/metric-card.ts +33 -0
  110. package/src/lib/modal/modal.ts +207 -0
  111. package/src/lib/native-select/native-select.ts +124 -0
  112. package/src/lib/navbar/navbar.ts +124 -0
  113. package/src/lib/navigation-menu/navigation-menu.ts +116 -0
  114. package/src/lib/otp-input/otp-input.ts +164 -0
  115. package/src/lib/page-back-link/page-back-link.ts +74 -0
  116. package/src/lib/page-header/page-header.ts +70 -0
  117. package/src/lib/pagination/pagination.ts +157 -0
  118. package/src/lib/pillbox/pillbox.ts +157 -0
  119. package/src/lib/popover/popover.ts +92 -0
  120. package/src/lib/profile/profile.ts +73 -0
  121. package/src/lib/progress/progress.ts +123 -0
  122. package/src/lib/radio/radio.ts +132 -0
  123. package/src/lib/ring-gauge/ring-gauge.ts +75 -0
  124. package/src/lib/scroll-area/scroll-area.ts +57 -0
  125. package/src/lib/search-palette/search-palette.scss +288 -0
  126. package/src/lib/search-palette/search-palette.ts +114 -0
  127. package/src/lib/select/select.ts +292 -0
  128. package/src/lib/separator/separator.ts +59 -0
  129. package/src/lib/sheet/sheet.ts +192 -0
  130. package/src/lib/sidebar-nav/sidebar-nav.scss +218 -0
  131. package/src/lib/sidebar-nav/sidebar-nav.ts +158 -0
  132. package/src/lib/site-drakkar/site-footer.ts +129 -0
  133. package/src/lib/site-drakkar/site-navbar.scss +2 -0
  134. package/src/lib/site-drakkar/site-navbar.ts +267 -0
  135. package/src/lib/site-drakkar/suite-search-items.spec.ts +61 -0
  136. package/src/lib/skeleton/skeleton.ts +51 -0
  137. package/src/lib/slider/slider.ts +133 -0
  138. package/src/lib/spinner/spinner.ts +75 -0
  139. package/src/lib/status-metric-row/status-metric-row.ts +74 -0
  140. package/src/lib/suite-search-palette/suite-search-palette.ts +95 -0
  141. package/src/lib/switch/switch.ts +131 -0
  142. package/src/lib/table/table.ts +137 -0
  143. package/src/lib/tabs/tab-panel.ts +61 -0
  144. package/src/lib/tabs/tab.ts +107 -0
  145. package/src/lib/tabs/tabs.ts +109 -0
  146. package/src/lib/textarea/textarea.ts +103 -0
  147. package/src/lib/theme-toggle/theme-toggle.spec.ts +40 -0
  148. package/src/lib/theme-toggle/theme-toggle.ts +39 -0
  149. package/src/lib/time-picker/time-picker.ts +197 -0
  150. package/src/lib/timeline/timeline.ts +152 -0
  151. package/src/lib/toast/toast.ts +196 -0
  152. package/src/lib/toggle/toggle-group.ts +60 -0
  153. package/src/lib/toggle/toggle.ts +101 -0
  154. package/src/lib/tooltip/tooltip.ts +119 -0
  155. package/src/lib/typography/heading.ts +52 -0
  156. package/src/lib/typography/text.ts +51 -0
  157. package/src/lib/uptime-bar/uptime-bar.ts +55 -0
  158. package/src/lib/verification-code-field/verification-code-field.ts +149 -0
  159. package/src/lib/whitepaper-cta/whitepaper-cta.scss +130 -0
  160. package/src/lib/whitepaper-cta/whitepaper-cta.ts +78 -0
  161. package/src/lib/wizard/wizard.ts +80 -0
  162. package/src/public-api.ts +172 -0
  163. package/src/tokens/series-presets.ts +15 -0
  164. package/src/tokens/tailwind.preset.js +209 -0
  165. package/src/viking-ui.spec.ts +416 -0
  166. package/src/web/web-components.spec.ts +297 -0
  167. package/dist/elements/button/viking-button.d.ts +0 -14
  168. package/dist/elements/card/viking-card.d.ts +0 -8
  169. package/dist/elements/core/dom.d.ts +0 -4
  170. package/dist/elements/core/styles.d.ts +0 -2
  171. package/dist/elements/modal/viking-modal.d.ts +0 -15
  172. package/dist/index.d.ts +0 -1
  173. package/dist/lib/core/brand-icons.d.ts +0 -29
  174. package/dist/lib/core/icons.d.ts +0 -132
  175. package/dist/lib/core/integration-brand-icons.d.ts +0 -18
  176. package/dist/lib/core/lucide-paths.generated.d.ts +0 -90
  177. package/dist/lib/site-drakkar/site-drakkar.config.d.ts +0 -50
  178. package/dist/lib/site-drakkar/suite-search-items.d.ts +0 -17
  179. package/dist/web/badge/viking-badge-wc.d.ts +0 -28
  180. package/dist/web/button/viking-button-wc.d.ts +0 -28
  181. package/dist/web/callout/viking-callout-wc.d.ts +0 -27
  182. package/dist/web/card/viking-card-wc.d.ts +0 -29
  183. package/dist/web/core/base.d.ts +0 -12
  184. package/dist/web/core/dom.d.ts +0 -11
  185. package/dist/web/core/icons-inline.d.ts +0 -7
  186. package/dist/web/core/styles.d.ts +0 -12
  187. package/dist/web/core/types.d.ts +0 -10
  188. package/dist/web/field/viking-field-wc.d.ts +0 -32
  189. package/dist/web/index.d.ts +0 -15
  190. package/dist/web/input/viking-input-wc.d.ts +0 -32
  191. package/dist/web/modal/viking-modal-wc.d.ts +0 -50
  192. package/dist/web/search-palette/viking-search-palette-wc.d.ts +0 -64
  193. package/dist/web/select/viking-select-wc.d.ts +0 -48
  194. package/dist/web/suite-header/viking-suite-header-wc.d.ts +0 -36
  195. package/dist/web/suite-search-palette/viking-suite-search-palette-wc.d.ts +0 -39
  196. package/dist/web/theme-toggle/viking-theme-toggle-wc.d.ts +0 -19
  197. package/dist/web/types.d.ts +0 -40
  198. package/dist/web-components/index.d.ts +0 -1
@@ -1,90 +0,0 @@
1
- /**
2
- * AUTO-GENERATED by scripts/sync_lucide_icons.mjs — do not edit by hand.
3
- * Lucide paths are inlined at build time; lucide is a devDependency only.
4
- * @see https://lucide.dev
5
- */
6
- export declare const LUCIDE_ICON_PATHS: {
7
- readonly "alert-circle": "<circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\"/><line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\"/>";
8
- readonly "alert-triangle": "<path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/>";
9
- readonly "arrow-left": "<path d=\"m12 19-7-7 7-7\"/><path d=\"M19 12H5\"/>";
10
- readonly "arrow-right": "<path d=\"M5 12h14\"/><path d=\"m12 5 7 7-7 7\"/>";
11
- readonly "arrow-up-right": "<path d=\"M7 7h10v10\"/><path d=\"M7 17 17 7\"/>";
12
- readonly "bar-chart": "<path d=\"M3 3v16a2 2 0 0 0 2 2h16\"/><path d=\"M18 17V9\"/><path d=\"M13 17V5\"/><path d=\"M8 17v-3\"/>";
13
- readonly bell: "<path d=\"M10.268 21a2 2 0 0 0 3.464 0\"/><path d=\"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\"/>";
14
- readonly bold: "<path d=\"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8\"/>";
15
- readonly bolt: "<path d=\"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\"/>";
16
- readonly brain: "<path d=\"M12 18V5\"/><path d=\"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4\"/><path d=\"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5\"/><path d=\"M17.997 5.125a4 4 0 0 1 2.526 5.77\"/><path d=\"M18 18a4 4 0 0 0 2-7.464\"/><path d=\"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517\"/><path d=\"M6 18a4 4 0 0 1-2-7.464\"/><path d=\"M6.003 5.125a4 4 0 0 0-2.526 5.77\"/>";
17
- readonly bug: "<path d=\"M12 20v-9\"/><path d=\"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z\"/><path d=\"M14.12 3.88 16 2\"/><path d=\"M21 21a4 4 0 0 0-3.81-4\"/><path d=\"M21 5a4 4 0 0 1-3.55 3.97\"/><path d=\"M22 13h-4\"/><path d=\"M3 21a4 4 0 0 1 3.81-4\"/><path d=\"M3 5a4 4 0 0 0 3.55 3.97\"/><path d=\"M6 13H2\"/><path d=\"m8 2 1.88 1.88\"/><path d=\"M9 7.13V6a3 3 0 1 1 6 0v1.13\"/>";
18
- readonly building: "<path d=\"M12 10h.01\"/><path d=\"M12 14h.01\"/><path d=\"M12 6h.01\"/><path d=\"M16 10h.01\"/><path d=\"M16 14h.01\"/><path d=\"M16 6h.01\"/><path d=\"M8 10h.01\"/><path d=\"M8 14h.01\"/><path d=\"M8 6h.01\"/><path d=\"M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3\"/><rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\"/>";
19
- readonly calendar: "<path d=\"M8 2v4\"/><path d=\"M16 2v4\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"/><path d=\"M3 10h18\"/>";
20
- readonly check: "<path d=\"M20 6 9 17l-5-5\"/>";
21
- readonly "check-circle": "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m9 12 2 2 4-4\"/>";
22
- readonly "chevron-down": "<path d=\"m6 9 6 6 6-6\"/>";
23
- readonly "chevron-left": "<path d=\"m15 18-6-6 6-6\"/>";
24
- readonly "chevron-right": "<path d=\"m9 18 6-6-6-6\"/>";
25
- readonly "chevron-up": "<path d=\"m18 15-6-6-6 6\"/>";
26
- readonly chip: "<path d=\"M12 20v2\"/><path d=\"M12 2v2\"/><path d=\"M17 20v2\"/><path d=\"M17 2v2\"/><path d=\"M2 12h2\"/><path d=\"M2 17h2\"/><path d=\"M2 7h2\"/><path d=\"M20 12h2\"/><path d=\"M20 17h2\"/><path d=\"M20 7h2\"/><path d=\"M7 20v2\"/><path d=\"M7 2v2\"/><rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"/><rect x=\"8\" y=\"8\" width=\"8\" height=\"8\" rx=\"1\"/>";
27
- readonly clock: "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 6v6l4 2\"/>";
28
- readonly cloud: "<path d=\"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z\"/>";
29
- readonly cookie: "<path d=\"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5\"/><path d=\"M8.5 8.5v.01\"/><path d=\"M16 15.5v.01\"/><path d=\"M12 12v.01\"/><path d=\"M11 17v.01\"/><path d=\"M7 14v.01\"/>";
30
- readonly copy: "<rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/>";
31
- readonly "dots-horizontal": "<circle cx=\"12\" cy=\"12\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"19\" cy=\"12\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"5\" cy=\"12\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/>";
32
- readonly "dots-vertical": "<circle cx=\"12\" cy=\"12\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"12\" cy=\"5\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"12\" cy=\"19\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/>";
33
- readonly download: "<path d=\"M12 15V3\"/><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"/><path d=\"m7 10 5 5 5-5\"/>";
34
- readonly external: "<path d=\"M15 3h6v6\"/><path d=\"M10 14 21 3\"/><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"/>";
35
- readonly eye: "<path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/>";
36
- readonly "eye-off": "<path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\"/><path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\"/><path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\"/><path d=\"m2 2 20 20\"/>";
37
- readonly file: "<path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5\"/>";
38
- readonly filter: "<path d=\"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z\"/>";
39
- readonly fingerprint: "<path d=\"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4\"/><path d=\"M14 13.12c0 2.38 0 6.38-1 8.88\"/><path d=\"M17.29 21.02c.12-.6.43-2.3.5-3.02\"/><path d=\"M2 12a10 10 0 0 1 18-6\"/><path d=\"M2 16h.01\"/><path d=\"M21.8 16c.2-2 .131-5.354 0-6\"/><path d=\"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2\"/><path d=\"M8.65 22c.21-.66.45-1.32.57-2\"/><path d=\"M9 6.8a6 6 0 0 1 9 5.2v2\"/>";
40
- readonly folder: "<path d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\"/>";
41
- readonly globe: "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\"/><path d=\"M2 12h20\"/>";
42
- readonly "grip-vertical": "<circle cx=\"9\" cy=\"12\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"9\" cy=\"5\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"9\" cy=\"19\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"15\" cy=\"12\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"15\" cy=\"5\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"15\" cy=\"19\" r=\"1\" fill=\"currentColor\" stroke=\"none\"/>";
43
- readonly heart: "<path d=\"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5\"/>";
44
- readonly home: "<path d=\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"/><path d=\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/>";
45
- readonly image: "<rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"/><circle cx=\"9\" cy=\"9\" r=\"2\"/><path d=\"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"/>";
46
- readonly info: "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/>";
47
- readonly insights: "<path d=\"M3 3v16a2 2 0 0 0 2 2h16\"/><path d=\"m19 9-5 5-4-4-3 3\"/>";
48
- readonly italic: "<line x1=\"19\" x2=\"10\" y1=\"4\" y2=\"4\"/><line x1=\"14\" x2=\"5\" y1=\"20\" y2=\"20\"/><line x1=\"15\" x2=\"9\" y1=\"4\" y2=\"20\"/>";
49
- readonly key: "<path d=\"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z\"/><circle cx=\"16.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"/>";
50
- readonly link: "<path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"/><path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"/>";
51
- readonly list: "<path d=\"M3 5h.01\"/><path d=\"M3 12h.01\"/><path d=\"M3 19h.01\"/><path d=\"M8 5h13\"/><path d=\"M8 12h13\"/><path d=\"M8 19h13\"/>";
52
- readonly "list-ordered": "<path d=\"M11 5h10\"/><path d=\"M11 12h10\"/><path d=\"M11 19h10\"/><path d=\"M4 4h1v5\"/><path d=\"M4 9h2\"/><path d=\"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02\"/>";
53
- readonly loader: "<path d=\"M21 12a9 9 0 1 1-6.219-8.56\"/>";
54
- readonly lock: "<rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\"/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"/>";
55
- readonly "log-in": "<path d=\"m10 17 5-5-5-5\"/><path d=\"M15 12H3\"/><path d=\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"/>";
56
- readonly "log-out": "<path d=\"m16 17 5-5-5-5\"/><path d=\"M21 12H9\"/><path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"/>";
57
- readonly mail: "<path d=\"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"/><rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\"/>";
58
- readonly menu: "<path d=\"M4 5h16\"/><path d=\"M4 12h16\"/><path d=\"M4 19h16\"/>";
59
- readonly minus: "<path d=\"M5 12h14\"/>";
60
- readonly moon: "<path d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"/>";
61
- readonly network: "<rect x=\"16\" y=\"16\" width=\"6\" height=\"6\" rx=\"1\"/><rect x=\"2\" y=\"16\" width=\"6\" height=\"6\" rx=\"1\"/><rect x=\"9\" y=\"2\" width=\"6\" height=\"6\" rx=\"1\"/><path d=\"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3\"/><path d=\"M12 12V8\"/>";
62
- readonly paperclip: "<path d=\"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551\"/>";
63
- readonly pencil: "<path d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\"/><path d=\"m15 5 4 4\"/>";
64
- readonly phone: "<path d=\"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\"/>";
65
- readonly play: "<path d=\"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\" fill=\"currentColor\" stroke=\"none\"/>";
66
- readonly plus: "<path d=\"M5 12h14\"/><path d=\"M12 5v14\"/>";
67
- readonly policy: "<path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"/><path d=\"m9 12 2 2 4-4\"/>";
68
- readonly refresh: "<path d=\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\"/><path d=\"M21 3v5h-5\"/><path d=\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\"/><path d=\"M8 16H3v5\"/>";
69
- readonly rocket: "<path d=\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\"/><path d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09\"/><path d=\"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z\"/><path d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05\"/>";
70
- readonly search: "<path d=\"m21 21-4.34-4.34\"/><circle cx=\"11\" cy=\"11\" r=\"8\"/>";
71
- readonly "search-off": "<path d=\"m13.5 8.5-5 5\"/><path d=\"m8.5 8.5 5 5\"/><circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/>";
72
- readonly send: "<path d=\"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\"/><path d=\"m21.854 2.147-10.94 10.939\"/>";
73
- readonly server: "<rect width=\"20\" height=\"8\" x=\"2\" y=\"2\" rx=\"2\" ry=\"2\"/><rect width=\"20\" height=\"8\" x=\"2\" y=\"14\" rx=\"2\" ry=\"2\"/><line x1=\"6\" x2=\"6.01\" y1=\"6\" y2=\"6\"/><line x1=\"6\" x2=\"6.01\" y1=\"18\" y2=\"18\"/>";
74
- readonly settings: "<path d=\"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/>";
75
- readonly shield: "<path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"/>";
76
- readonly ship: "<path d=\"M12 10.189V14\"/><path d=\"M12 2v3\"/><path d=\"M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6\"/><path d=\"M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76\"/><path d=\"M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\"/>";
77
- readonly sparkle: "<path d=\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z\"/><path d=\"M20 2v4\"/><path d=\"M22 4h-4\"/><circle cx=\"4\" cy=\"20\" r=\"2\"/>";
78
- readonly speed: "<path d=\"m12 14 4-4\"/><path d=\"M3.34 19a10 10 0 1 1 17.32 0\"/>";
79
- readonly star: "<path d=\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\"/>";
80
- readonly sun: "<circle cx=\"12\" cy=\"12\" r=\"4\"/><path d=\"M12 2v2\"/><path d=\"M12 20v2\"/><path d=\"m4.93 4.93 1.41 1.41\"/><path d=\"m17.66 17.66 1.41 1.41\"/><path d=\"M2 12h2\"/><path d=\"M20 12h2\"/><path d=\"m6.34 17.66-1.41 1.41\"/><path d=\"m19.07 4.93-1.41 1.41\"/>";
81
- readonly terminal: "<path d=\"M12 19h8\"/><path d=\"m4 17 6-6-6-6\"/>";
82
- readonly trash: "<path d=\"M10 11v6\"/><path d=\"M14 11v6\"/><path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\"/><path d=\"M3 6h18\"/><path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"/>";
83
- readonly "trending-up": "<path d=\"M16 7h6v6\"/><path d=\"m22 7-8.5 8.5-5-5L2 17\"/>";
84
- readonly underline: "<path d=\"M6 4v6a6 6 0 0 0 12 0V4\"/><line x1=\"4\" x2=\"20\" y1=\"20\" y2=\"20\"/>";
85
- readonly upload: "<path d=\"M12 3v12\"/><path d=\"m17 8-5-5-5 5\"/><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"/>";
86
- readonly user: "<path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"/><circle cx=\"12\" cy=\"7\" r=\"4\"/>";
87
- readonly "user-shield": "<path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"/><path d=\"M6.376 18.91a6 6 0 0 1 11.249.003\"/><circle cx=\"12\" cy=\"11\" r=\"4\"/>";
88
- readonly x: "<path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/>";
89
- };
90
- export type LucideIconName = keyof typeof LUCIDE_ICON_PATHS;
@@ -1,50 +0,0 @@
1
- import { VikingIconName } from "../core/icons";
2
- /**
3
- * Drakkar — the Viking longship that carries the site shell (navbar, footer, nav links)
4
- * across marketing, app, and backend surfaces.
5
- */
6
- /** Which DEML surface the Drakkar shell is rendering on (navbar + footer). */
7
- export type SiteDrakkarContext = "app" | "marketing" | "backend" | "docs";
8
- export interface SiteUrls {
9
- app: string;
10
- marketing: string;
11
- backend: string;
12
- }
13
- export interface SiteNavLink {
14
- id: string;
15
- label: string;
16
- icon: VikingIconName;
17
- appHref: string;
18
- marketingHref: string;
19
- external?: boolean;
20
- requireAuth?: boolean;
21
- /** Routes served by deml.app — resolved to absolute app URLs off-app. */
22
- platform?: boolean;
23
- }
24
- export interface SiteFooterLink {
25
- label: string;
26
- appHref: string;
27
- marketingHref: string;
28
- external?: boolean;
29
- action?: "cookie-settings" | "bug-report";
30
- /** Routes served by deml.app — resolved to absolute app URLs off-app. */
31
- platform?: boolean;
32
- }
33
- export interface SiteFooterColumn {
34
- title: string;
35
- links: SiteFooterLink[];
36
- }
37
- /** Primary navbar links (desktop + mobile). Shown on every surface. */
38
- export declare const SITE_NAV_LINKS: readonly SiteNavLink[];
39
- export declare const SITE_FOOTER_COLUMNS: readonly SiteFooterColumn[];
40
- export declare const BUG_REPORT_QUERY = "reportBug=1";
41
- export declare const COOKIE_SETTINGS_QUERY = "cookieSettings=1";
42
- export declare const bugReportHref: (urls: SiteUrls) => string;
43
- export declare const cookieSettingsHref: (urls: SiteUrls) => string;
44
- export declare const resolveNavHref: (link: SiteNavLink, context: SiteDrakkarContext, urls: SiteUrls) => string;
45
- export declare const resolveFooterHref: (link: SiteFooterLink, context: SiteDrakkarContext, urls: SiteUrls) => string;
46
- export declare const resolveBrandHref: (context: SiteDrakkarContext, urls: SiteUrls) => string;
47
- /** Navbar links; auth-gated entries appear only when the session is active. */
48
- export declare const visibleNavLinks: (links: readonly SiteNavLink[], isAuthenticated?: boolean) => SiteNavLink[];
49
- export declare const isAppRouterPath: (href: string) => boolean;
50
- export declare const DEFAULT_SITE_URLS: SiteUrls;
@@ -1,17 +0,0 @@
1
- import type { SiteDrakkarContext, SiteUrls } from "./site-drakkar.config";
2
- /** Curated command-palette entry for cross-surface navigation. */
3
- export type SuiteSearchItem = {
4
- title: string;
5
- href: string;
6
- snippet?: string;
7
- group?: string;
8
- keywords?: string[];
9
- action?: "cookie-settings" | "bug-report";
10
- };
11
- /**
12
- * Builds curated command-palette links for deml.app, marketing, backend, and docs.
13
- * Used by the static widget and Angular `viking-suite-search-palette`.
14
- */
15
- export declare const buildSuiteSearchItems: (context: SiteDrakkarContext, urls: SiteUrls, options?: {
16
- docsOrigin?: string;
17
- }) => SuiteSearchItem[];
@@ -1,28 +0,0 @@
1
- import { HTMLElementBase } from "../core/dom";
2
- /**
3
- * Framework-agnostic Viking badge Web Component.
4
- * Tag: `viking-badge` (legacy alias: `viking-badge-wc`)
5
- *
6
- * @attr tone - Semantic color: accent | secondary | success | warning | danger | info | muted
7
- * @attr size - Compact density: sm
8
- * @attr icon - Viking icon registry name (pairs with label for a11y)
9
- * @attr removable - Shows remove control; dispatches `viking-removed`
10
- *
11
- * @example
12
- * <viking-badge-wc tone="success" icon="check">Healthy</viking-badge-wc>
13
- */
14
- export declare class VikingBadgeWc extends HTMLElementBase {
15
- static readonly tag = "viking-badge";
16
- static readonly legacyTag = "viking-badge-wc";
17
- static get observedAttributes(): string[];
18
- private readonly shadow;
19
- constructor();
20
- connectedCallback(): void;
21
- attributeChangedCallback(): void;
22
- private get tone();
23
- private get size();
24
- private get removable();
25
- private readonly onRemove;
26
- private render;
27
- }
28
- export declare const registerVikingBadgeWc: () => void;
@@ -1,28 +0,0 @@
1
- import { HTMLElementBase } from "../core/dom";
2
- /**
3
- * Framework-agnostic Viking button Web Component.
4
- * Tag: `viking-button` (legacy alias: `viking-button-wc`)
5
- *
6
- * @example
7
- * <viking-button variant="primary">Launch</viking-button>
8
- */
9
- export declare class VikingButtonWc extends HTMLElementBase {
10
- static readonly tag = "viking-button";
11
- static readonly legacyTag = "viking-button-wc";
12
- static get observedAttributes(): string[];
13
- private readonly shadow;
14
- private control;
15
- constructor();
16
- connectedCallback(): void;
17
- disconnectedCallback(): void;
18
- attributeChangedCallback(): void;
19
- private readonly onClick;
20
- private get variant();
21
- private get size();
22
- private get disabled();
23
- private get loading();
24
- private get square();
25
- private syncHostSemantics;
26
- private render;
27
- }
28
- export declare const registerVikingButtonWc: () => void;
@@ -1,27 +0,0 @@
1
- import { HTMLElementBase } from "../core/dom";
2
- /**
3
- * Framework-agnostic Viking callout Web Component.
4
- * Tag: `viking-callout` (legacy alias: `viking-callout-wc`)
5
- *
6
- * @attr tone - Semantic tone (default: info)
7
- * @attr heading - Bold callout title
8
- * @attr icon - Override leading icon from the Viking registry
9
- * @attr dismissible - Shows dismiss control; dispatches `viking-close`
10
- *
11
- * @example
12
- * <viking-callout-wc tone="warning" heading="Degraded worker">Lag exceeds 3s.</viking-callout-wc>
13
- */
14
- export declare class VikingCalloutWc extends HTMLElementBase {
15
- static readonly tag = "viking-callout";
16
- static readonly legacyTag = "viking-callout-wc";
17
- static get observedAttributes(): string[];
18
- private readonly shadow;
19
- constructor();
20
- connectedCallback(): void;
21
- attributeChangedCallback(): void;
22
- private get tone();
23
- private get dismissible();
24
- private readonly onDismiss;
25
- private render;
26
- }
27
- export declare const registerVikingCalloutWc: () => void;
@@ -1,29 +0,0 @@
1
- import { HTMLElementBase } from "../core/dom";
2
- /**
3
- * Framework-agnostic Viking card Web Component (light DOM — inherits global viking-card CSS).
4
- * Tag: `viking-card` (legacy alias: `viking-card-wc`)
5
- *
6
- * Uses light DOM so slotted content inherits `viking-card`, `viking-card-header`, and related
7
- * classes from the synced static CSS bundle.
8
- *
9
- * @attr compact - Applies `viking-card-compact` padding
10
- * @attr interactive - Hover lift for clickable cards
11
- * @attr title - Accessible name when the card is a landmark region
12
- *
13
- * @example
14
- * <viking-card-wc compact title="Event throughput">
15
- * <div class="viking-card-header">
16
- * <h3 class="viking-heading viking-heading-sm">Event throughput</h3>
17
- * </div>
18
- * <p class="viking-text-muted">8.2K events/sec</p>
19
- * </viking-card-wc>
20
- */
21
- export declare class VikingCardWc extends HTMLElementBase {
22
- static readonly tag = "viking-card";
23
- static readonly legacyTag = "viking-card-wc";
24
- static get observedAttributes(): string[];
25
- connectedCallback(): void;
26
- attributeChangedCallback(): void;
27
- private syncClasses;
28
- }
29
- export declare const registerVikingCardWc: () => void;
@@ -1,12 +0,0 @@
1
- /** Attaches constructable stylesheet to a shadow root (with fallback). */
2
- export declare const attachShadowStyles: (shadow: ShadowRoot, css: string) => void;
3
- /** Reads a boolean attribute presence/value. */
4
- export declare const readBoolAttr: (el: HTMLElement, name: string) => boolean;
5
- /** Safely sets form value when ElementInternals is fully supported (e.g. not in jsdom). */
6
- export declare const setFormValue: (internals: ElementInternals | null, value: string) => void;
7
- /** Attaches ElementInternals where available without breaking older WebKit or test DOMs. */
8
- export declare const attachElementInternals: (el: HTMLElement) => ElementInternals | null;
9
- /** Opens a native dialog when showModal is available. */
10
- export declare const showModalDialog: (dialog: HTMLDialogElement | null) => void;
11
- /** Closes a native dialog when close is available. */
12
- export declare const closeModalDialog: (dialog: HTMLDialogElement | null) => void;
@@ -1,11 +0,0 @@
1
- export declare const HTMLElementBase: typeof HTMLElement;
2
- /** Stable unique id for associating labels and controls. */
3
- export declare const vikingWcUid: (prefix: string) => string;
4
- /** Escape text for safe innerHTML insertion. */
5
- export declare const escapeHtml: (value: string) => string;
6
- /** Platform modifier label for keyboard shortcut hints. */
7
- export declare const modKeyLabel: () => string;
8
- /** Register a custom element when the runtime supports it (skip during SSR/prerender). */
9
- export declare const defineCustomElement: (tag: string, ctor: CustomElementConstructor) => void;
10
- /** Register an alias tag with a fresh subclass; customElements disallows reusing constructors. */
11
- export declare const defineCustomElementAlias: <T extends CustomElementConstructor>(tag: string, ctor: T) => void;
@@ -1,7 +0,0 @@
1
- /**
2
- * Renders a zero-dependency inline SVG icon for Web Components.
3
- * Uses the same registry as `viking-icon` in Angular.
4
- */
5
- export declare const renderInlineIcon: (name: string, size?: number, className?: string) => string;
6
- /** Default tone → icon mapping shared by callout and badge surfaces. */
7
- export declare const TONE_ICON_NAMES: Record<string, string>;
@@ -1,12 +0,0 @@
1
- /**
2
- * Shadow DOM styles for Viking-UI Web Components.
3
- * All values reference --viking-* tokens inherited from the document :root.
4
- */
5
- export declare const VIKING_BUTTON_STYLES = "\n:host {\n display: inline-flex;\n font-family: var(--viking-font-family);\n}\n\n:host([full-width]) {\n display: flex;\n width: 100%;\n}\n\n:host([full-width]) .viking-btn {\n width: 100%;\n min-width: 0;\n}\n\n:host([compact]) .viking-btn {\n min-width: 0;\n}\n\n:host([square]) {\n flex: 0 0 auto;\n}\n\n.viking-btn {\n font-family: inherit;\n font-size: var(--viking-font-size-ui, var(--viking-font-size-sm));\n font-weight: var(--viking-font-weight-semibold);\n letter-spacing: var(--viking-letter-spacing-wide);\n line-height: var(--viking-line-height-snug);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--viking-space-1);\n min-height: var(--viking-control-height);\n padding: 0 var(--viking-control-padding-x);\n border-radius: var(--viking-radius);\n border: 1px solid transparent;\n cursor: pointer;\n text-decoration: none;\n transition: var(--viking-transition-interactive);\n width: auto;\n min-width: var(--viking-btn-min-width, 120px);\n white-space: nowrap;\n position: relative;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n box-sizing: border-box;\n}\n\n.viking-btn:focus-visible {\n outline: var(--viking-ring-width) solid var(--viking-ring);\n outline-offset: var(--viking-ring-offset);\n z-index: 1;\n}\n\n.viking-btn:disabled,\n.viking-btn[aria-busy='true'] {\n opacity: var(--viking-state-disabled-opacity);\n cursor: not-allowed;\n transform: none !important;\n box-shadow: none !important;\n}\n\n.viking-btn-sm {\n min-height: var(--viking-control-height-sm);\n padding: 0 var(--viking-space-2);\n font-size: var(--viking-font-size-xs);\n min-width: auto;\n}\n\n.viking-btn-xs {\n min-height: var(--viking-control-height-xs);\n padding: 0 var(--viking-space-1);\n font-size: var(--viking-font-size-xs);\n min-width: auto;\n}\n\n.viking-btn-square {\n display: inline-grid;\n place-items: center;\n width: var(--viking-control-height);\n min-width: var(--viking-control-height);\n max-width: var(--viking-control-height);\n height: var(--viking-control-height);\n min-height: var(--viking-control-height);\n padding: 0;\n line-height: 1;\n}\n\n.viking-btn-square.viking-btn-sm {\n width: var(--viking-control-height-sm);\n min-width: var(--viking-control-height-sm);\n max-width: var(--viking-control-height-sm);\n height: var(--viking-control-height-sm);\n min-height: var(--viking-control-height-sm);\n}\n\n.viking-btn-square.viking-btn-xs {\n width: var(--viking-control-height-xs);\n min-width: var(--viking-control-height-xs);\n max-width: var(--viking-control-height-xs);\n height: var(--viking-control-height-xs);\n min-height: var(--viking-control-height-xs);\n}\n\n.viking-btn-square .viking-btn-label {\n display: inline-grid;\n place-items: center;\n width: 100%;\n height: 100%;\n line-height: 1;\n}\n\n.viking-btn-square ::slotted(*) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin: 0;\n line-height: 1;\n}\n\n.viking-btn-square ::slotted(svg),\n.viking-btn-square ::slotted([data-viking-icon]) {\n width: var(--viking-icon-size-md, 20px);\n height: var(--viking-icon-size-md, 20px);\n}\n\n.viking-btn-outline {\n background: var(--viking-surface);\n color: var(--viking-text);\n border-color: var(--viking-border-strong);\n box-shadow: var(--viking-shadow-sm);\n}\n\n.viking-btn-outline:hover:not(:disabled):not([aria-busy='true']) {\n background: var(--viking-surface-alt);\n border-color: color-mix(in srgb, var(--viking-accent) 45%, var(--viking-border-strong));\n box-shadow: var(--viking-shadow-md);\n transform: translateY(var(--viking-state-hover-lift));\n}\n\n.viking-btn-primary {\n background: var(--viking-accent);\n color: var(--viking-accent-content);\n border-color: color-mix(in srgb, var(--viking-accent) 82%, var(--viking-black));\n box-shadow: var(--viking-shadow-sm);\n}\n\n.viking-btn-primary:hover:not(:disabled):not([aria-busy='true']) {\n background: var(--viking-accent-hover);\n border-color: var(--viking-accent-hover);\n box-shadow: var(--viking-shadow-hover);\n transform: translateY(var(--viking-state-hover-lift));\n}\n\n.viking-btn-secondary {\n background: var(--viking-accent-secondary);\n color: var(--viking-accent-secondary-content);\n border-color: color-mix(in srgb, var(--viking-accent-secondary) 82%, var(--viking-black));\n box-shadow: var(--viking-shadow-sm);\n}\n\n.viking-btn-secondary:hover:not(:disabled):not([aria-busy='true']) {\n background: var(--viking-accent-secondary-hover);\n border-color: var(--viking-accent-secondary-hover);\n box-shadow: var(--viking-shadow-hover);\n transform: translateY(var(--viking-state-hover-lift));\n}\n\n.viking-btn-filled {\n background: var(--viking-surface-alt);\n color: var(--viking-text);\n border-color: var(--viking-border);\n box-shadow: var(--viking-shadow-xs);\n}\n\n.viking-btn-filled:hover:not(:disabled):not([aria-busy='true']) {\n border-color: color-mix(in srgb, var(--viking-accent) 45%, var(--viking-border));\n background: color-mix(in srgb, var(--viking-accent) 8%, var(--viking-surface-alt));\n box-shadow: var(--viking-shadow-sm);\n transform: translateY(var(--viking-state-hover-lift));\n}\n\n.viking-btn-danger {\n background: var(--viking-danger);\n color: var(--viking-on-danger);\n border-color: color-mix(in srgb, var(--viking-danger) 85%, var(--viking-black));\n box-shadow: var(--viking-shadow-sm);\n}\n\n.viking-btn-danger:hover:not(:disabled):not([aria-busy='true']) {\n background: color-mix(in srgb, var(--viking-danger) 88%, var(--viking-white));\n box-shadow: var(--viking-shadow-hover);\n transform: translateY(var(--viking-state-hover-lift));\n}\n\n.viking-btn-ghost {\n background: transparent;\n color: var(--viking-text);\n min-width: auto;\n box-shadow: none;\n border-color: transparent;\n}\n\n.viking-btn-ghost:hover:not(:disabled):not([aria-busy='true']) {\n background: var(--viking-accent-soft);\n color: var(--viking-accent-strong);\n}\n\n.viking-btn-subtle {\n background: transparent;\n color: var(--viking-text-muted);\n border-color: var(--viking-border-subtle);\n min-width: auto;\n box-shadow: none;\n}\n\n.viking-btn-subtle:hover:not(:disabled):not([aria-busy='true']) {\n color: var(--viking-text);\n background: var(--viking-accent-soft);\n border-color: var(--viking-border-strong);\n}\n\n.viking-btn:active:not(:disabled):not([aria-busy='true']) {\n transform: translateY(0) scale(var(--viking-state-active-scale));\n}\n\n.viking-btn-label {\n display: inline-flex;\n align-items: center;\n line-height: inherit;\n}\n\n.viking-btn-spinner {\n width: 1.125rem;\n height: 1.125rem;\n border: 2px solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: viking-spin 0.8s linear infinite;\n}\n\n@keyframes viking-spin {\n to { transform: rotate(360deg); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .viking-btn-spinner { animation-duration: 0.01ms; }\n .viking-btn { transition-duration: 0.01ms; }\n}\n";
6
- export declare const VIKING_INPUT_STYLES = "\n:host {\n display: block;\n font-family: var(--viking-font-family);\n}\n\n.viking-input-shell {\n display: flex;\n align-items: center;\n gap: var(--viking-space-1);\n min-height: var(--viking-control-height);\n padding: 0 var(--viking-space-2);\n font-family: inherit;\n font-size: var(--viking-font-size);\n color: var(--viking-text);\n background: var(--viking-surface-alt);\n border: 1px solid var(--viking-border);\n border-radius: var(--viking-radius-sm);\n box-shadow: var(--viking-shadow-xs);\n transition: var(--viking-transition-interactive);\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n}\n\n.viking-input-shell:hover:not(.viking-disabled):not(.viking-loading) {\n border-color: color-mix(in srgb, var(--viking-accent) 35%, var(--viking-border-strong));\n box-shadow: var(--viking-shadow-sm);\n}\n\n.viking-input-shell:focus-within:not(.viking-loading) {\n outline: var(--viking-ring-width) solid var(--viking-ring);\n outline-offset: var(--viking-ring-offset);\n border-color: var(--viking-accent);\n box-shadow: var(--viking-shadow-sm);\n}\n\n.viking-input-shell.viking-disabled,\n.viking-input-shell.viking-loading {\n opacity: var(--viking-state-disabled-opacity);\n}\n\n.viking-input-shell.viking-loading {\n cursor: wait;\n}\n\n.viking-input-native {\n flex: 1;\n min-width: 0;\n width: 100%;\n border: none;\n outline: none !important;\n background: transparent;\n color: var(--viking-text);\n font-family: inherit;\n font-size: inherit;\n padding: 0;\n}\n\n.viking-input-native::placeholder {\n color: var(--viking-text-muted);\n}\n\ninput {\n flex: 1;\n min-width: 0;\n border: none;\n outline: none !important;\n background: transparent;\n color: var(--viking-text);\n font-family: inherit;\n font-size: inherit;\n padding: 0;\n}\n\ninput::placeholder {\n color: var(--viking-text-muted);\n}\n\ninput:disabled {\n cursor: not-allowed;\n}\n\n.viking-input-clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--viking-touch-target-comfort, 44px);\n min-height: var(--viking-touch-target-comfort, 44px);\n border: none;\n background: transparent;\n color: var(--viking-text-muted);\n cursor: pointer;\n padding: var(--viking-space-half);\n border-radius: var(--viking-radius-pill);\n transition: var(--viking-transition-interactive);\n flex-shrink: 0;\n -webkit-tap-highlight-color: transparent;\n}\n\n.viking-input-clear:hover {\n color: var(--viking-text);\n background: var(--viking-accent-soft);\n}\n\n.viking-input-clear:focus-visible {\n outline: var(--viking-ring-width) solid var(--viking-ring);\n outline-offset: var(--viking-ring-offset);\n}\n\n.viking-input-spinner {\n width: 1rem;\n height: 1rem;\n border: 2px solid var(--viking-text-muted);\n border-right-color: transparent;\n border-radius: 50%;\n animation: viking-spin 0.8s linear infinite;\n flex-shrink: 0;\n}\n\n@keyframes viking-spin {\n to { transform: rotate(360deg); }\n}\n";
7
- export declare const VIKING_FIELD_STYLES = "\n:host {\n display: block;\n font-family: var(--viking-font-family);\n color: var(--viking-text);\n min-width: 0;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([width='full']) {\n width: 100%;\n}\n\n:host([width='half']) {\n width: 100%;\n max-width: var(--viking-select-half-max-width, min(100%, 24rem));\n}\n\n.viking-field {\n display: flex;\n flex-direction: column;\n gap: var(--viking-space-1);\n}\n\n.viking-field-label-row {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--viking-space-2);\n}\n\n.viking-field-label {\n display: inline-flex;\n align-items: center;\n gap: var(--viking-space-half);\n font-size: var(--viking-font-size-ui);\n font-weight: var(--viking-font-weight-bold);\n color: var(--viking-text);\n line-height: var(--viking-line-height-snug);\n cursor: pointer;\n}\n\n.viking-field-required {\n color: var(--viking-danger-text);\n}\n\n.viking-field-control {\n min-width: 0;\n}\n\n.viking-field-description,\n.viking-field-error {\n margin: 0;\n font-size: var(--viking-font-size-xs);\n line-height: var(--viking-line-height-relaxed);\n}\n\n.viking-field-description {\n color: var(--viking-text-muted);\n}\n\n.viking-field-error {\n color: var(--viking-danger-text);\n}\n";
8
- export declare const VIKING_BADGE_STYLES = "\n:host {\n display: inline-flex;\n align-items: center;\n gap: var(--viking-space-half);\n padding: var(--viking-space-half) var(--viking-space-1);\n font-family: var(--viking-font-family);\n font-size: var(--viking-font-size-xs);\n font-weight: var(--viking-font-weight-semibold);\n letter-spacing: var(--viking-letter-spacing-wide);\n line-height: var(--viking-line-height-snug);\n border-radius: var(--viking-radius-pill);\n border: 1px solid var(--viking-border);\n background: var(--viking-surface-alt);\n color: var(--viking-text);\n white-space: nowrap;\n transition: var(--viking-transition-interactive);\n box-shadow: var(--viking-shadow-xs);\n}\n\n:host([size='sm']) {\n padding: 0 var(--viking-space-1);\n font-size: var(--viking-font-size-2xs);\n}\n\n:host([tone='accent']) {\n background: var(--viking-accent);\n border-color: color-mix(in srgb, var(--viking-accent) 80%, var(--viking-black));\n color: var(--viking-accent-content);\n box-shadow: var(--viking-shadow-sm);\n}\n\n:host([tone='secondary']) {\n background: color-mix(in srgb, var(--viking-accent-secondary) 16%, var(--viking-surface));\n border-color: color-mix(in srgb, var(--viking-accent-secondary) 55%, transparent);\n color: var(--viking-accent-secondary);\n}\n\n:host([tone='success']) {\n background: color-mix(in srgb, var(--viking-success) 16%, var(--viking-surface));\n border-color: color-mix(in srgb, var(--viking-success) 55%, transparent);\n color: var(--viking-success);\n}\n\n:host([tone='warning']) {\n background: color-mix(in srgb, var(--viking-warning) 18%, var(--viking-surface));\n border-color: color-mix(in srgb, var(--viking-warning) 55%, transparent);\n color: var(--viking-warning);\n}\n\n:host([tone='danger']) {\n background: color-mix(in srgb, var(--viking-danger) 14%, var(--viking-surface));\n border-color: color-mix(in srgb, var(--viking-danger) 50%, transparent);\n color: var(--viking-danger-text);\n}\n\n:host([tone='info']) {\n background: color-mix(in srgb, var(--viking-info) 14%, var(--viking-surface));\n border-color: color-mix(in srgb, var(--viking-info) 50%, transparent);\n color: var(--viking-info);\n}\n\n:host([tone='muted']),\n:host([tone='subtle']) {\n color: var(--viking-text-muted);\n background: var(--viking-surface);\n border-color: var(--viking-border-subtle);\n}\n\n.viking-wc-icon {\n flex-shrink: 0;\n}\n\n.viking-badge-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--viking-touch-target-comfort, 44px);\n min-height: var(--viking-touch-target-comfort, 44px);\n border: none;\n background: transparent;\n color: currentColor;\n cursor: pointer;\n padding: var(--viking-space-half);\n border-radius: var(--viking-radius-pill);\n transition: var(--viking-transition-interactive);\n margin-left: calc(var(--viking-space-half) * -1);\n}\n\n.viking-badge-remove:hover {\n background: color-mix(in srgb, currentColor 12%, transparent);\n}\n\n.viking-badge-remove:focus-visible {\n outline: var(--viking-ring-width) solid var(--viking-ring);\n outline-offset: var(--viking-ring-offset);\n}\n";
9
- export declare const VIKING_CALLOUT_STYLES = "\n:host {\n display: block;\n font-family: var(--viking-font-family);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.viking-callout {\n display: flex;\n align-items: flex-start;\n gap: var(--viking-space-2);\n padding: var(--viking-space-2);\n border-radius: var(--viking-radius-lg);\n border: 1px solid var(--viking-border);\n border-left-width: 3px;\n background: var(--viking-surface-alt);\n color: var(--viking-text);\n font-size: var(--viking-font-size-sm);\n box-shadow: var(--viking-shadow-sm);\n}\n\n.viking-callout-icon {\n flex-shrink: 0;\n margin-top: 2px;\n color: var(--viking-text-muted);\n}\n\n.viking-callout-body {\n flex: 1;\n min-width: 0;\n}\n\n.viking-callout-heading {\n margin: 0 0 var(--viking-space-half);\n font-size: var(--viking-font-size-ui);\n font-weight: var(--viking-font-weight-bold);\n color: var(--viking-text);\n}\n\n.viking-callout-text {\n margin: 0;\n color: var(--viking-text);\n line-height: var(--viking-line-height-relaxed);\n}\n\n.viking-callout-close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--viking-touch-target-comfort, 44px);\n min-height: var(--viking-touch-target-comfort, 44px);\n border: none;\n background: transparent;\n color: var(--viking-text-muted);\n cursor: pointer;\n padding: var(--viking-space-half);\n border-radius: var(--viking-radius);\n transition: var(--viking-transition-interactive);\n flex-shrink: 0;\n}\n\n.viking-callout-close:hover {\n color: var(--viking-text);\n background: color-mix(in srgb, currentColor 8%, transparent);\n}\n\n.viking-callout-close:focus-visible {\n outline: var(--viking-ring-width) solid var(--viking-ring);\n outline-offset: var(--viking-ring-offset);\n}\n\n.viking-callout-accent {\n border-color: var(--viking-accent);\n border-left-color: var(--viking-accent);\n background: var(--viking-accent-soft);\n}\n\n.viking-callout-accent .viking-callout-icon {\n color: var(--viking-accent);\n}\n\n.viking-callout-secondary {\n border-color: color-mix(in srgb, var(--viking-accent-secondary) 45%, transparent);\n border-left-color: var(--viking-accent-secondary);\n background: var(--viking-accent-secondary-soft);\n}\n\n.viking-callout-secondary .viking-callout-icon {\n color: var(--viking-accent-secondary);\n}\n\n.viking-callout-info {\n border-color: color-mix(in srgb, var(--viking-info) 45%, transparent);\n border-left-color: var(--viking-info);\n background: color-mix(in srgb, var(--viking-info) 10%, var(--viking-surface));\n}\n\n.viking-callout-info .viking-callout-icon {\n color: var(--viking-info);\n}\n\n.viking-callout-success {\n border-color: color-mix(in srgb, var(--viking-success) 45%, transparent);\n border-left-color: var(--viking-success);\n background: color-mix(in srgb, var(--viking-success) 10%, var(--viking-surface));\n}\n\n.viking-callout-success .viking-callout-icon {\n color: var(--viking-success);\n}\n\n.viking-callout-warning {\n border-color: color-mix(in srgb, var(--viking-warning) 45%, transparent);\n border-left-color: var(--viking-warning);\n background: color-mix(in srgb, var(--viking-warning) 12%, var(--viking-surface));\n}\n\n.viking-callout-warning .viking-callout-icon {\n color: var(--viking-warning);\n}\n\n.viking-callout-danger {\n border-color: var(--viking-danger);\n border-left-color: var(--viking-danger);\n background: color-mix(in srgb, var(--viking-crimson-600) 22%, var(--viking-surface));\n color: var(--viking-white);\n}\n\n.viking-callout-danger .viking-callout-icon {\n color: var(--viking-crimson-400);\n}\n\n.viking-callout-danger .viking-callout-text {\n color: var(--viking-white);\n}\n";
10
- export declare const VIKING_SELECT_STYLES = "\n:host {\n display: block;\n font-family: var(--viking-font-family);\n min-width: 0;\n}\n\n:host([width='full']) {\n width: 100%;\n}\n\n:host([width='half']) {\n width: 100%;\n max-width: var(--viking-select-half-max-width, min(100%, 24rem));\n}\n\n.viking-field {\n display: flex;\n flex-direction: column;\n gap: var(--viking-space-1);\n}\n\n.viking-field-label {\n font-size: var(--viking-font-size-ui);\n font-weight: var(--viking-font-weight-bold);\n color: var(--viking-text);\n}\n\n.viking-field-description {\n margin: 0;\n font-size: var(--viking-font-size-xs);\n color: var(--viking-text-muted);\n}\n\n.viking-field-error {\n margin: 0;\n font-size: var(--viking-font-size-xs);\n color: var(--viking-danger);\n}\n\n.viking-select-native {\n width: 100%;\n min-height: var(--viking-control-height);\n padding: 0 var(--viking-space-2);\n border: 1px solid var(--viking-border-strong);\n border-radius: var(--viking-radius);\n background: var(--viking-surface);\n color: var(--viking-text);\n font-family: inherit;\n font-size: var(--viking-font-size);\n cursor: pointer;\n transition: var(--viking-transition-interactive);\n box-shadow: var(--viking-shadow-sm);\n}\n\n.viking-select-native:hover:not(:disabled) {\n border-color: var(--viking-accent-strong);\n box-shadow: var(--viking-shadow-md);\n}\n\n.viking-select-native:focus-visible {\n outline: var(--viking-ring-width) solid var(--viking-ring);\n outline-offset: var(--viking-ring-offset);\n}\n\n.viking-select-native:disabled {\n opacity: var(--viking-state-disabled-opacity);\n cursor: not-allowed;\n}\n\n.viking-select-native[aria-invalid='true'] {\n border-color: var(--viking-danger);\n}\n";
11
- export declare const VIKING_MODAL_STYLES = "\n:host {\n display: contents;\n}\n\n.viking-modal-backdrop {\n position: fixed;\n inset: 0;\n z-index: var(--viking-z-overlay, 10001);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--viking-space-3);\n background: var(--viking-overlay-backdrop);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n border: none;\n animation: viking-backdrop-in var(--viking-duration-fast) var(--viking-ease-out);\n}\n\n.viking-modal-panel {\n display: flex;\n flex-direction: column;\n gap: var(--viking-space-2);\n width: min(522px, calc(100vw - var(--viking-space-4)));\n max-height: calc(100vh - var(--viking-space-6));\n padding: var(--viking-space-3);\n border: 1px solid var(--viking-border-strong);\n border-radius: var(--viking-radius-lg);\n background: var(--viking-surface);\n color: var(--viking-text);\n box-shadow: var(--viking-shadow-lg);\n font-family: var(--viking-font-family);\n position: relative;\n overflow: hidden;\n animation: viking-modal-in var(--viking-duration) var(--viking-ease-default);\n}\n\n.viking-modal-panel::before {\n content: '';\n position: absolute;\n inset: 0 0 auto;\n height: 1px;\n background: linear-gradient(\n 90deg,\n transparent,\n color-mix(in srgb, var(--viking-metallic-200) 22%, transparent),\n transparent\n );\n pointer-events: none;\n}\n\n.viking-modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--viking-space-2);\n padding-bottom: var(--viking-space-1);\n border-bottom: 1px solid var(--viking-border-subtle);\n}\n\n.viking-modal-heading {\n margin: 0;\n font-size: var(--viking-font-size-md);\n font-weight: var(--viking-font-weight-bold);\n letter-spacing: var(--viking-letter-spacing-tight);\n color: var(--viking-text);\n line-height: var(--viking-line-height-tight);\n}\n\n.viking-modal-close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--viking-touch-target-comfort, 44px);\n min-height: var(--viking-touch-target-comfort, 44px);\n border: 1px solid transparent;\n background: transparent;\n color: var(--viking-text-muted);\n cursor: pointer;\n border-radius: var(--viking-radius);\n transition: var(--viking-transition-interactive);\n flex-shrink: 0;\n}\n\n.viking-modal-close:hover {\n color: var(--viking-text);\n background: var(--viking-accent-soft);\n border-color: var(--viking-border-subtle);\n}\n\n.viking-modal-close:focus-visible {\n outline: var(--viking-ring-width) solid var(--viking-ring);\n outline-offset: var(--viking-ring-offset);\n}\n\n.viking-modal-body {\n overflow-y: auto;\n color: var(--viking-text-muted);\n font-size: var(--viking-font-size);\n line-height: var(--viking-line-height-relaxed);\n}\n\n.viking-modal-footer {\n display: flex;\n flex-wrap: wrap;\n gap: var(--viking-space-2);\n justify-content: flex-end;\n padding-top: var(--viking-space-2);\n border-top: 1px solid var(--viking-border-subtle);\n}\n\n.viking-modal-footer:empty {\n display: none;\n}\n\n@keyframes viking-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes viking-modal-in {\n from {\n opacity: 0;\n transform: translateY(var(--viking-space-1)) scale(0.98);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .viking-modal-backdrop,\n .viking-modal-panel {\n animation: none;\n }\n}\n";
12
- export declare const VIKING_SEARCH_PALETTE_STYLES = "\n:host {\n display: contents;\n}\n\n.viking-search-palette-backdrop {\n position: fixed;\n inset: 0;\n z-index: var(--viking-z-overlay, 10001);\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: 10vh var(--viking-space-2) var(--viking-space-2);\n background: var(--viking-overlay-backdrop);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n border: none;\n animation: viking-backdrop-in var(--viking-duration-fast) var(--viking-ease-out);\n}\n\n.viking-search-palette-backdrop:not([open]) {\n display: none !important;\n pointer-events: none;\n}\n\n.viking-search-palette {\n display: flex;\n flex-direction: column;\n background: var(--viking-surface-raised, var(--viking-surface));\n border: 1px solid var(--viking-border-strong);\n border-radius: var(--viking-radius-lg);\n box-shadow: var(--viking-shadow-lg);\n overflow: hidden;\n max-width: 600px;\n width: min(100%, 600px);\n margin: 0 auto;\n font-family: var(--viking-font-family);\n color: var(--viking-text);\n animation: viking-modal-in var(--viking-duration) var(--viking-ease-default);\n position: relative;\n isolation: isolate;\n}\n\n.viking-search-palette::before {\n content: '';\n position: absolute;\n inset: 0 0 auto;\n height: 1px;\n background: linear-gradient(\n 90deg,\n transparent,\n color-mix(in srgb, var(--viking-metallic-200) 22%, transparent),\n transparent\n );\n pointer-events: none;\n z-index: 1;\n}\n\n.viking-search-palette-header {\n display: flex;\n align-items: center;\n padding: var(--viking-space-2);\n border-bottom: 1px solid var(--viking-border);\n gap: var(--viking-space-1);\n background: color-mix(in srgb, var(--viking-bg) 26%, var(--viking-surface-raised));\n}\n\n.viking-search-palette-header:focus-within {\n border-bottom-color: var(--viking-accent);\n box-shadow: inset 0 -2px 0 var(--viking-accent-soft);\n}\n\n.viking-search-palette-icon {\n color: var(--viking-text-muted);\n flex-shrink: 0;\n}\n\n.viking-search-palette-input {\n flex: 1;\n background: none;\n border: none;\n outline: none;\n font-size: calc(var(--viking-font-size) * 1.05);\n color: var(--viking-text);\n font-family: inherit;\n min-width: 0;\n}\n\n.viking-search-palette-input::placeholder {\n color: var(--viking-text-muted);\n}\n\n.viking-search-palette-close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--viking-touch-target-comfort, 44px);\n min-height: var(--viking-touch-target-comfort, 44px);\n border: none;\n background: transparent;\n color: var(--viking-text-muted);\n cursor: pointer;\n padding: var(--viking-space-half);\n border-radius: var(--viking-radius);\n transition: var(--viking-transition-interactive);\n flex-shrink: 0;\n}\n\n.viking-search-palette-close:hover {\n color: var(--viking-text);\n background: var(--viking-accent-soft);\n}\n\n.viking-search-palette-close:focus-visible {\n outline: var(--viking-ring-width) solid var(--viking-ring);\n outline-offset: var(--viking-ring-offset);\n}\n\n.viking-search-palette-body {\n max-height: 50vh;\n overflow-y: auto;\n padding: var(--viking-space-2);\n}\n\n.viking-search-palette-footer {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--viking-space-1);\n padding: var(--viking-space-1) var(--viking-space-2);\n border-top: 1px solid var(--viking-border);\n font-size: calc(var(--viking-font-size) * 0.85);\n color: var(--viking-text-muted);\n}\n\n.viking-kbd {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 1.5rem;\n padding: 2px 6px;\n font-family: inherit;\n font-size: calc(var(--viking-font-size) * 0.75);\n border-radius: calc(var(--viking-radius) / 2);\n border: 1px solid var(--viking-border);\n background: var(--viking-surface-alt);\n}\n\n.viking-search-results {\n display: flex;\n flex-direction: column;\n gap: var(--viking-space-1);\n}\n\n.viking-search-group-label {\n margin: var(--viking-space-1) 0 var(--viking-space-half);\n padding: 0 var(--viking-space-1);\n font-size: var(--viking-font-size-2xs);\n font-weight: var(--viking-font-weight-semibold);\n letter-spacing: var(--viking-letter-spacing-caps);\n text-transform: uppercase;\n color: var(--viking-text-muted);\n}\n\n.viking-search-result {\n display: flex;\n align-items: center;\n min-height: var(--viking-control-height-sm, 36px);\n padding: var(--viking-space-1) var(--viking-space-2);\n border-radius: var(--viking-radius);\n background: var(--viking-surface-alt);\n border: 1px solid var(--viking-border-subtle);\n cursor: pointer;\n transition: var(--viking-transition-interactive);\n gap: var(--viking-space-1);\n text-decoration: none;\n color: inherit;\n}\n\n.viking-search-result:hover,\n.viking-search-result.is-selected {\n background: color-mix(in srgb, var(--viking-accent) 10%, var(--viking-surface-alt));\n border-color: color-mix(in srgb, var(--viking-accent) 42%, var(--viking-border-strong));\n box-shadow: var(--viking-shadow-sm);\n}\n\n.viking-search-result:focus-visible {\n outline: var(--viking-ring-width) solid var(--viking-ring);\n outline-offset: var(--viking-ring-offset);\n}\n\n.viking-search-result-title {\n font-size: var(--viking-font-size-sm);\n font-weight: var(--viking-font-weight-semibold);\n color: var(--viking-text);\n}\n\n.viking-search-result-snippet {\n font-size: var(--viking-font-size-xs);\n color: var(--viking-text-muted);\n}\n\n.viking-search-empty {\n padding: var(--viking-space-3);\n text-align: center;\n color: var(--viking-text-muted);\n font-size: var(--viking-font-size-sm);\n}\n\n@keyframes viking-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes viking-modal-in {\n from {\n opacity: 0;\n transform: translateY(var(--viking-space-1)) scale(0.98);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .viking-search-palette-backdrop,\n .viking-search-palette {\n animation: none;\n }\n}\n";
@@ -1,10 +0,0 @@
1
- /** Shared Web Component item types. */
2
- export type VikingSearchPaletteItem = {
3
- title: string;
4
- href: string;
5
- snippet?: string;
6
- group?: string;
7
- keywords?: string[];
8
- action?: "cookie-settings" | "bug-report";
9
- };
10
- export type VikingWcTone = "accent" | "secondary" | "success" | "warning" | "danger" | "info" | "muted" | "subtle";
@@ -1,32 +0,0 @@
1
- import { HTMLElementBase } from "../core/dom";
2
- /**
3
- * Framework-agnostic Viking field stack Web Component.
4
- * Tag: `viking-field` (legacy alias: `viking-field-wc`)
5
- *
6
- * @attr label - Visible field label
7
- * @attr description - Helper text below the control
8
- * @attr error - Validation message; sets aria-invalid on the slotted control
9
- * @attr required - Adds a non-color-only required marker
10
- * @attr width - full | half
11
- *
12
- * @slot default - Form control, usually `viking-input`, `viking-select`, or native input/select
13
- */
14
- export declare class VikingFieldWc extends HTMLElementBase {
15
- static readonly tag = "viking-field";
16
- static readonly legacyTag = "viking-field-wc";
17
- static get observedAttributes(): string[];
18
- private readonly shadow;
19
- private readonly labelId;
20
- private readonly descriptionId;
21
- private readonly errorId;
22
- private slotEl;
23
- constructor();
24
- connectedCallback(): void;
25
- disconnectedCallback(): void;
26
- attributeChangedCallback(): void;
27
- private get control();
28
- private readonly focusControl;
29
- private readonly syncControlA11y;
30
- private render;
31
- }
32
- export declare const registerVikingFieldWc: () => void;
@@ -1,15 +0,0 @@
1
- export { VikingBadgeWc, registerVikingBadgeWc } from "./badge/viking-badge-wc";
2
- export { VikingButtonWc, registerVikingButtonWc, } from "./button/viking-button-wc";
3
- export { VikingCalloutWc, registerVikingCalloutWc, } from "./callout/viking-callout-wc";
4
- export { VikingCardWc, registerVikingCardWc } from "./card/viking-card-wc";
5
- export { VikingFieldWc, registerVikingFieldWc } from "./field/viking-field-wc";
6
- export { VikingInputWc, registerVikingInputWc } from "./input/viking-input-wc";
7
- export { VikingModalWc, registerVikingModalWc } from "./modal/viking-modal-wc";
8
- export { VikingSearchPaletteWc, registerVikingSearchPaletteWc, type VikingSearchPaletteItem, } from "./search-palette/viking-search-palette-wc";
9
- export { VikingSuiteSearchPaletteWc, registerVikingSuiteSearchPaletteWc, } from "./suite-search-palette/viking-suite-search-palette-wc";
10
- export { VikingSuiteHeaderWc, registerVikingSuiteHeaderWc, } from "./suite-header/viking-suite-header-wc";
11
- export { VikingSelectWc, registerVikingSelectWc, } from "./select/viking-select-wc";
12
- export { VikingThemeToggleWc, registerVikingThemeToggleWc, } from "./theme-toggle/viking-theme-toggle-wc";
13
- export type { VikingWcTone } from "./core/types";
14
- /** Register all Viking-UI Web Components. Safe to call multiple times. */
15
- export declare const registerVikingElements: () => void;
@@ -1,32 +0,0 @@
1
- import { HTMLElementBase } from "../core/dom";
2
- /**
3
- * Framework-agnostic Viking input Web Component with form association.
4
- * Tag: `viking-input` (legacy alias: `viking-input-wc`)
5
- *
6
- * @example
7
- * <viking-input placeholder="Email" name="email" type="email"></viking-input>
8
- */
9
- export declare class VikingInputWc extends HTMLElementBase {
10
- static readonly formAssociated = true;
11
- static readonly tag = "viking-input";
12
- static readonly legacyTag = "viking-input-wc";
13
- static get observedAttributes(): string[];
14
- private readonly shadow;
15
- private readonly internals;
16
- private input;
17
- constructor();
18
- connectedCallback(): void;
19
- attributeChangedCallback(name: string): void;
20
- get value(): string;
21
- set value(next: string);
22
- private get disabled();
23
- private get loading();
24
- private get clearable();
25
- private get bare();
26
- private readonly onInput;
27
- private readonly onBlur;
28
- private readonly onClear;
29
- private syncFormValue;
30
- private render;
31
- }
32
- export declare const registerVikingInputWc: () => void;
@@ -1,50 +0,0 @@
1
- import { HTMLElementBase } from "../core/dom";
2
- /**
3
- * Framework-agnostic modal Web Component using native `<dialog>` semantics.
4
- * Tag: `viking-modal` (legacy aliases: `viking-modal-wc`, `viking-dialog`)
5
- *
6
- * @attr open - When present, shows the modal
7
- * @attr title - Dialog title for aria-label / heading
8
- * @attr dismissible - Allow Escape and backdrop click to close (default: true)
9
- *
10
- * @slot default - Modal body content
11
- * @slot actions - Footer action buttons
12
- *
13
- * @method openModal() - Programmatically open
14
- * @method closeModal() - Programmatically close
15
- *
16
- * @event viking-close - Fired when the dialog closes
17
- *
18
- * @example
19
- * <viking-modal title="Confirm deploy">
20
- * <p>Push v2.0.0 to production?</p>
21
- * <viking-button slot="actions" variant="primary">Deploy</viking-button>
22
- * </viking-modal>
23
- */
24
- export declare class VikingModalWc extends HTMLElementBase {
25
- static readonly tag = "viking-modal";
26
- static readonly legacyTag = "viking-modal-wc";
27
- static readonly dialogTag = "viking-dialog";
28
- static get observedAttributes(): string[];
29
- private readonly shadow;
30
- private dialogEl;
31
- constructor();
32
- connectedCallback(): void;
33
- disconnectedCallback(): void;
34
- attributeChangedCallback(name: string): void;
35
- /** Opens the modal dialog. */
36
- openModal(): void;
37
- /** Closes the modal dialog. */
38
- closeModal(): void;
39
- /** @deprecated Use openModal() */
40
- open(): void;
41
- /** @deprecated Use closeModal() */
42
- close(): void;
43
- private get dismissible();
44
- private readonly onClose;
45
- private readonly onBackdropClick;
46
- private syncOpen;
47
- private updateTitle;
48
- private render;
49
- }
50
- export declare const registerVikingModalWc: () => void;
@@ -1,64 +0,0 @@
1
- import { HTMLElementBase } from "../core/dom";
2
- import type { VikingSearchPaletteItem } from "../core/types";
3
- export type { VikingSearchPaletteItem };
4
- /**
5
- * Framework-agnostic command palette / search overlay Web Component.
6
- * Tag: `viking-command-palette`
7
- * Aliases: `viking-search-palette`, `viking-search-palette-wc`
8
- *
9
- * @attr open - When present, shows the palette
10
- * @attr global-shortcut - Bind ⌘K / Ctrl+K to open
11
- * @attr placeholder - Search input placeholder
12
- * @attr items - JSON array of `{ title, href, snippet?, group? }`
13
- *
14
- * @method openPalette() - Programmatically open
15
- * @method closePalette() - Programmatically close
16
- *
17
- * @event viking-close - Palette closed
18
- * @event viking-query - `{ detail: { query: string } }` on input
19
- * @event viking-select - `{ detail: { item } }` when a result is activated
20
- *
21
- * @example
22
- * <viking-command-palette
23
- * global-shortcut
24
- * items='[{"title":"Components","href":"/components","group":"Docs"}]'
25
- * ></viking-command-palette>
26
- */
27
- export declare class VikingSearchPaletteWc extends HTMLElementBase {
28
- static readonly tag = "viking-command-palette";
29
- static readonly searchTag = "viking-search-palette";
30
- static readonly legacyTag = "viking-search-palette-wc";
31
- static get observedAttributes(): string[];
32
- private readonly shadow;
33
- private dialogEl;
34
- private inputEl;
35
- private resultsEl;
36
- private globalKeyHandler;
37
- private readonly resultsId;
38
- private readonly inputId;
39
- private query;
40
- private activeIndex;
41
- private flatResults;
42
- constructor();
43
- connectedCallback(): void;
44
- disconnectedCallback(): void;
45
- attributeChangedCallback(name: string): void;
46
- /** Opens the command palette. */
47
- openPalette(): void;
48
- /** Closes the command palette. */
49
- closePalette(): void;
50
- /** Sets the query string and re-renders filtered results. */
51
- search(query: string): void;
52
- private readonly onClose;
53
- private readonly onBackdropClick;
54
- private readonly onInput;
55
- private readonly onInputKeydown;
56
- private bindGlobalShortcut;
57
- private unbindGlobalShortcut;
58
- private syncOpen;
59
- private scrollActiveIntoView;
60
- private activateItem;
61
- private renderResults;
62
- private render;
63
- }
64
- export declare const registerVikingSearchPaletteWc: () => void;