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

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 (239) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +52 -12
  3. package/dist/core/brand-icons.d.ts +29 -0
  4. package/dist/core/icons.d.ts +132 -0
  5. package/dist/core/integration-brand-icons.d.ts +18 -0
  6. package/dist/core/lucide-paths.generated.d.ts +90 -0
  7. package/dist/core/types.d.ts +56 -0
  8. package/dist/core/uid.d.ts +2 -0
  9. package/dist/lib/accordion/accordion.d.ts +19 -0
  10. package/dist/lib/app-header/app-header.d.ts +8 -0
  11. package/dist/lib/app-sidebar/app-sidebar.d.ts +10 -0
  12. package/dist/lib/auth-panel/auth-panel.d.ts +13 -0
  13. package/dist/lib/autocomplete/autocomplete.d.ts +25 -0
  14. package/dist/lib/avatar/avatar.d.ts +14 -0
  15. package/dist/lib/badge/badge.d.ts +16 -0
  16. package/dist/lib/bar/bar.d.ts +4 -0
  17. package/dist/lib/brand/brand.d.ts +8 -0
  18. package/dist/lib/breadcrumbs/breadcrumbs.d.ts +10 -0
  19. package/dist/lib/button/button-group.d.ts +6 -0
  20. package/dist/lib/button/button.d.ts +25 -0
  21. package/dist/lib/calendar/calendar.d.ts +22 -0
  22. package/dist/lib/callout/callout.d.ts +14 -0
  23. package/dist/lib/card/card-title.d.ts +12 -0
  24. package/dist/lib/card/card.d.ts +19 -0
  25. package/dist/lib/carousel/carousel.d.ts +13 -0
  26. package/dist/lib/chart/chart-zoom.d.ts +14 -0
  27. package/dist/lib/chart/chart.d.ts +119 -0
  28. package/dist/lib/chart-card-header/chart-card-header.d.ts +10 -0
  29. package/dist/lib/chart-empty-state/chart-empty-state.d.ts +13 -0
  30. package/dist/lib/chart-panel/chart-panel.d.ts +10 -0
  31. package/dist/lib/checkbox/checkbox.d.ts +13 -0
  32. package/dist/lib/color-picker/color-picker.d.ts +16 -0
  33. package/dist/lib/command/command.d.ts +23 -0
  34. package/dist/lib/composer/composer.d.ts +15 -0
  35. package/dist/lib/confirm-dialog/confirm-dialog.d.ts +18 -0
  36. package/dist/lib/confirm-dialog/dialog.service.d.ts +28 -0
  37. package/dist/lib/context/context.d.ts +17 -0
  38. package/dist/lib/core/cva.d.ts +15 -0
  39. package/dist/lib/date-picker/date-picker.d.ts +18 -0
  40. package/dist/lib/dropdown/dropdown.d.ts +29 -0
  41. package/dist/lib/editor/editor.d.ts +26 -0
  42. package/dist/lib/empty-state/empty-state.d.ts +9 -0
  43. package/dist/lib/fab/fab.d.ts +9 -0
  44. package/dist/lib/field/field.d.ts +14 -0
  45. package/dist/lib/file-upload/file-upload.d.ts +19 -0
  46. package/dist/lib/footer/footer.d.ts +6 -0
  47. package/dist/lib/form-section/form-section.d.ts +15 -0
  48. package/dist/lib/gauge-arc/gauge-arc.d.ts +8 -0
  49. package/dist/lib/hud-panel/hud-panel.d.ts +5 -0
  50. package/dist/lib/icon/icon.d.ts +44 -0
  51. package/dist/lib/icon-badge/icon-badge.d.ts +14 -0
  52. package/dist/lib/icon-heading/icon-heading.d.ts +9 -0
  53. package/dist/lib/icon-text/icon-text.d.ts +12 -0
  54. package/dist/lib/input/input.d.ts +23 -0
  55. package/dist/lib/kanban/kanban.d.ts +16 -0
  56. package/dist/lib/kbd/kbd.d.ts +5 -0
  57. package/dist/lib/label/label.d.ts +7 -0
  58. package/dist/lib/loading-overlay/loading-overlay.d.ts +10 -0
  59. package/dist/lib/menubar/menubar.d.ts +10 -0
  60. package/dist/lib/metric-card/metric-card.d.ts +9 -0
  61. package/dist/lib/modal/modal.d.ts +13 -0
  62. package/dist/lib/native-select/native-select.d.ts +17 -0
  63. package/dist/lib/navbar/navbar.d.ts +13 -0
  64. package/dist/lib/navigation-menu/navigation-menu.d.ts +13 -0
  65. package/dist/lib/otp-input/otp-input.d.ts +23 -0
  66. package/dist/lib/page-back-link/page-back-link.d.ts +11 -0
  67. package/dist/lib/page-header/page-header.d.ts +15 -0
  68. package/dist/lib/pagination/pagination.d.ts +10 -0
  69. package/dist/lib/pillbox/pillbox.d.ts +15 -0
  70. package/dist/lib/popover/popover.d.ts +15 -0
  71. package/dist/lib/profile/profile.d.ts +11 -0
  72. package/dist/lib/progress/progress.d.ts +12 -0
  73. package/dist/lib/radio/radio.d.ts +16 -0
  74. package/dist/lib/ring-gauge/ring-gauge.d.ts +8 -0
  75. package/dist/lib/scroll-area/scroll-area.d.ts +7 -0
  76. package/dist/lib/search-palette/search-palette.d.ts +16 -0
  77. package/dist/lib/select/select.d.ts +26 -0
  78. package/dist/lib/separator/separator.d.ts +8 -0
  79. package/dist/lib/sheet/sheet.d.ts +13 -0
  80. package/dist/lib/sidebar-nav/sidebar-nav.d.ts +46 -0
  81. package/dist/lib/site-drakkar/site-footer.d.ts +18 -0
  82. package/dist/lib/site-drakkar/site-navbar.d.ts +25 -0
  83. package/dist/lib/skeleton/skeleton.d.ts +8 -0
  84. package/dist/lib/slider/slider.d.ts +17 -0
  85. package/dist/lib/spinner/spinner.d.ts +7 -0
  86. package/dist/lib/status-metric-row/status-metric-row.d.ts +9 -0
  87. package/dist/lib/suite-search-palette/suite-search-palette.d.ts +25 -0
  88. package/dist/lib/switch/switch.d.ts +12 -0
  89. package/dist/lib/table/table.d.ts +10 -0
  90. package/dist/lib/tabs/tab-panel.d.ts +12 -0
  91. package/dist/lib/tabs/tab.d.ts +14 -0
  92. package/dist/lib/tabs/tabs.d.ts +10 -0
  93. package/dist/lib/textarea/textarea.d.ts +16 -0
  94. package/dist/lib/theme-toggle/theme-toggle.d.ts +9 -0
  95. package/dist/lib/time-picker/time-picker.d.ts +21 -0
  96. package/dist/lib/timeline/timeline.d.ts +14 -0
  97. package/dist/lib/toast/toast.d.ts +21 -0
  98. package/dist/lib/toggle/toggle-group.d.ts +9 -0
  99. package/dist/lib/toggle/toggle.d.ts +15 -0
  100. package/dist/lib/tooltip/tooltip.d.ts +20 -0
  101. package/dist/lib/typography/heading.d.ts +9 -0
  102. package/dist/lib/typography/text.d.ts +11 -0
  103. package/dist/lib/uptime-bar/uptime-bar.d.ts +6 -0
  104. package/dist/lib/verification-code-field/verification-code-field.d.ts +19 -0
  105. package/dist/lib/whitepaper-cta/whitepaper-cta.d.ts +15 -0
  106. package/dist/lib/wizard/wizard.d.ts +13 -0
  107. package/dist/public-api.d.ts +109 -0
  108. package/dist/tokens/series-presets.d.ts +4 -0
  109. package/package.json +1 -1
  110. package/src/assets/drakkar-favicon.svg +17 -0
  111. package/src/core/brand/deml-lockup.svg +5 -0
  112. package/src/core/brand/deml-mark-compact.svg +4 -0
  113. package/src/core/brand/deml-mark-filled.svg +3 -0
  114. package/src/core/brand/deml-mark-outline.svg +4 -0
  115. package/src/core/brand-icons.ts +62 -0
  116. package/src/core/icons.spec.ts +52 -0
  117. package/src/core/icons.ts +206 -0
  118. package/src/core/integration-brand-icons.ts +77 -0
  119. package/src/core/lucide-paths.generated.ts +130 -0
  120. package/src/core/types.ts +85 -0
  121. package/src/core/uid.ts +7 -0
  122. package/src/lib/accordion/accordion.ts +126 -0
  123. package/src/lib/app-header/app-header.scss +274 -0
  124. package/src/lib/app-header/app-header.ts +43 -0
  125. package/src/lib/app-sidebar/app-sidebar.scss +415 -0
  126. package/src/lib/app-sidebar/app-sidebar.ts +29 -0
  127. package/src/lib/auth-panel/auth-panel.spec.ts +132 -0
  128. package/src/lib/auth-panel/auth-panel.ts +228 -0
  129. package/src/lib/autocomplete/autocomplete.ts +223 -0
  130. package/src/lib/avatar/avatar.ts +126 -0
  131. package/src/lib/badge/badge.ts +182 -0
  132. package/src/lib/bar/bar.ts +31 -0
  133. package/src/lib/brand/brand.ts +60 -0
  134. package/src/lib/breadcrumbs/breadcrumbs.ts +81 -0
  135. package/src/lib/button/button-group.ts +40 -0
  136. package/src/lib/button/button.scss +96 -0
  137. package/src/lib/button/button.ts +98 -0
  138. package/src/lib/calendar/calendar.ts +253 -0
  139. package/src/lib/callout/callout.ts +211 -0
  140. package/src/lib/card/card-title.spec.ts +27 -0
  141. package/src/lib/card/card-title.ts +50 -0
  142. package/src/lib/card/card.ts +170 -0
  143. package/src/lib/carousel/carousel.ts +206 -0
  144. package/src/lib/chart/chart-zoom.spec.ts +65 -0
  145. package/src/lib/chart/chart-zoom.ts +71 -0
  146. package/src/lib/chart/chart.ts +1257 -0
  147. package/src/lib/chart-card-header/chart-card-header.ts +80 -0
  148. package/src/lib/chart-empty-state/chart-empty-state.ts +146 -0
  149. package/src/lib/chart-panel/chart-panel.ts +133 -0
  150. package/src/lib/checkbox/checkbox.ts +139 -0
  151. package/src/lib/color-picker/color-picker.ts +148 -0
  152. package/src/lib/command/command.ts +260 -0
  153. package/src/lib/composer/composer.ts +180 -0
  154. package/src/lib/confirm-dialog/confirm-dialog.ts +163 -0
  155. package/src/lib/confirm-dialog/dialog.service.ts +79 -0
  156. package/src/lib/context/context.ts +75 -0
  157. package/src/lib/core/cva.ts +33 -0
  158. package/src/lib/date-picker/date-picker.ts +139 -0
  159. package/src/lib/dropdown/dropdown.ts +188 -0
  160. package/src/lib/editor/editor.ts +170 -0
  161. package/src/lib/empty-state/empty-state.ts +100 -0
  162. package/src/lib/fab/fab.ts +76 -0
  163. package/src/lib/field/field.ts +111 -0
  164. package/src/lib/file-upload/file-upload.ts +208 -0
  165. package/src/lib/footer/footer.scss +155 -0
  166. package/src/lib/footer/footer.ts +28 -0
  167. package/src/lib/form-section/form-section.ts +200 -0
  168. package/src/lib/forms.spec.ts +92 -0
  169. package/src/lib/gauge-arc/gauge-arc.ts +85 -0
  170. package/src/lib/hud-panel/hud-panel.ts +27 -0
  171. package/src/lib/icon/icon.ts +284 -0
  172. package/src/lib/icon-badge/icon-badge.ts +87 -0
  173. package/src/lib/icon-heading/icon-heading.spec.ts +32 -0
  174. package/src/lib/icon-heading/icon-heading.ts +38 -0
  175. package/src/lib/icon-text/icon-text.ts +120 -0
  176. package/src/lib/input/input.ts +119 -0
  177. package/src/lib/kanban/kanban.ts +211 -0
  178. package/src/lib/kbd/kbd.ts +32 -0
  179. package/src/lib/label/label.ts +39 -0
  180. package/src/lib/loading-overlay/loading-overlay.ts +80 -0
  181. package/src/lib/menubar/menubar.ts +77 -0
  182. package/src/lib/metric-card/metric-card.ts +33 -0
  183. package/src/lib/modal/modal.ts +207 -0
  184. package/src/lib/native-select/native-select.ts +124 -0
  185. package/src/lib/navbar/navbar.ts +124 -0
  186. package/src/lib/navigation-menu/navigation-menu.ts +116 -0
  187. package/src/lib/otp-input/otp-input.ts +164 -0
  188. package/src/lib/page-back-link/page-back-link.ts +74 -0
  189. package/src/lib/page-header/page-header.ts +70 -0
  190. package/src/lib/pagination/pagination.ts +157 -0
  191. package/src/lib/pillbox/pillbox.ts +157 -0
  192. package/src/lib/popover/popover.ts +92 -0
  193. package/src/lib/profile/profile.ts +73 -0
  194. package/src/lib/progress/progress.ts +123 -0
  195. package/src/lib/radio/radio.ts +132 -0
  196. package/src/lib/ring-gauge/ring-gauge.ts +75 -0
  197. package/src/lib/scroll-area/scroll-area.ts +57 -0
  198. package/src/lib/search-palette/search-palette.scss +288 -0
  199. package/src/lib/search-palette/search-palette.ts +114 -0
  200. package/src/lib/select/select.ts +292 -0
  201. package/src/lib/separator/separator.ts +59 -0
  202. package/src/lib/sheet/sheet.ts +192 -0
  203. package/src/lib/sidebar-nav/sidebar-nav.scss +218 -0
  204. package/src/lib/sidebar-nav/sidebar-nav.ts +158 -0
  205. package/src/lib/site-drakkar/site-footer.ts +129 -0
  206. package/src/lib/site-drakkar/site-navbar.scss +2 -0
  207. package/src/lib/site-drakkar/site-navbar.ts +267 -0
  208. package/src/lib/site-drakkar/suite-search-items.spec.ts +61 -0
  209. package/src/lib/skeleton/skeleton.ts +51 -0
  210. package/src/lib/slider/slider.ts +133 -0
  211. package/src/lib/spinner/spinner.ts +75 -0
  212. package/src/lib/status-metric-row/status-metric-row.ts +74 -0
  213. package/src/lib/suite-search-palette/suite-search-palette.ts +95 -0
  214. package/src/lib/switch/switch.ts +131 -0
  215. package/src/lib/table/table.ts +137 -0
  216. package/src/lib/tabs/tab-panel.ts +61 -0
  217. package/src/lib/tabs/tab.ts +107 -0
  218. package/src/lib/tabs/tabs.ts +109 -0
  219. package/src/lib/textarea/textarea.ts +103 -0
  220. package/src/lib/theme-toggle/theme-toggle.spec.ts +40 -0
  221. package/src/lib/theme-toggle/theme-toggle.ts +39 -0
  222. package/src/lib/time-picker/time-picker.ts +197 -0
  223. package/src/lib/timeline/timeline.ts +152 -0
  224. package/src/lib/toast/toast.ts +196 -0
  225. package/src/lib/toggle/toggle-group.ts +60 -0
  226. package/src/lib/toggle/toggle.ts +101 -0
  227. package/src/lib/tooltip/tooltip.ts +119 -0
  228. package/src/lib/typography/heading.ts +52 -0
  229. package/src/lib/typography/text.ts +51 -0
  230. package/src/lib/uptime-bar/uptime-bar.ts +55 -0
  231. package/src/lib/verification-code-field/verification-code-field.ts +149 -0
  232. package/src/lib/whitepaper-cta/whitepaper-cta.scss +130 -0
  233. package/src/lib/whitepaper-cta/whitepaper-cta.ts +78 -0
  234. package/src/lib/wizard/wizard.ts +80 -0
  235. package/src/public-api.ts +172 -0
  236. package/src/tokens/series-presets.ts +15 -0
  237. package/src/tokens/tailwind.preset.js +209 -0
  238. package/src/viking-ui.spec.ts +416 -0
  239. package/src/web/web-components.spec.ts +297 -0
@@ -0,0 +1,90 @@
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;
@@ -0,0 +1,56 @@
1
+ import type { VikingIconName } from "./icons";
2
+ /** Semantic tones — every tone resolves to a THEME.md token. */
3
+ export type VikingTone = "accent" | "secondary" | "success" | "warning" | "danger" | "info" | "muted";
4
+ export type VikingSize = "base" | "sm" | "xs";
5
+ export interface VikingSelectOption<T = unknown> {
6
+ label: string;
7
+ value: T;
8
+ disabled?: boolean;
9
+ }
10
+ export interface VikingCommandItem {
11
+ id: string;
12
+ label: string;
13
+ group?: string;
14
+ icon?: VikingIconName;
15
+ kbd?: string;
16
+ }
17
+ export interface VikingKanbanCard {
18
+ id: string;
19
+ title: string;
20
+ description?: string;
21
+ tone?: VikingTone;
22
+ }
23
+ export interface VikingKanbanColumn {
24
+ id: string;
25
+ title: string;
26
+ cards: VikingKanbanCard[];
27
+ }
28
+ export interface VikingKanbanMove {
29
+ cardId: string;
30
+ fromColumnId: string;
31
+ toColumnId: string;
32
+ toIndex: number;
33
+ }
34
+ export interface VikingChartSeries {
35
+ name: string;
36
+ data: number[];
37
+ tone?: VikingTone;
38
+ }
39
+ export type VikingChartKind = "line" | "area" | "bar" | "grouped-bar" | "stacked-bar" | "sparkline" | "donut";
40
+ export type VikingChartCurve = "linear" | "smooth";
41
+ export interface VikingDonutSegment {
42
+ label: string;
43
+ value: number;
44
+ tone?: VikingTone;
45
+ }
46
+ export interface VikingToastOptions {
47
+ heading?: string;
48
+ text: string;
49
+ tone?: VikingTone;
50
+ /** Auto-dismiss duration in ms. 0 disables auto-dismiss. */
51
+ duration?: number;
52
+ }
53
+ export interface VikingToastInstance extends Required<Omit<VikingToastOptions, "heading">> {
54
+ id: number;
55
+ heading: string;
56
+ }
@@ -0,0 +1,2 @@
1
+ /** Generates a stable, unique DOM id for label/control associations. */
2
+ export declare const vikingUid: (prefix: string) => string;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * viking-accordion — collapsible content panels.
3
+ * Set exclusive to allow only one open item at a time.
4
+ */
5
+ export declare class VikingAccordion {
6
+ readonly exclusive: import("@angular/core").InputSignal<boolean>;
7
+ private openItem;
8
+ /** Called by items when they open, to enforce exclusive mode. */
9
+ readonly notifyOpened: (item: VikingAccordionItem) => void;
10
+ }
11
+ /** A single expandable section within viking-accordion. */
12
+ export declare class VikingAccordionItem {
13
+ private readonly accordion;
14
+ constructor(accordion: VikingAccordion | null);
15
+ readonly heading: import("@angular/core").InputSignal<string>;
16
+ readonly expanded: import("@angular/core").ModelSignal<boolean>;
17
+ protected readonly panelId: string;
18
+ protected toggle: () => void;
19
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * viking-app-header — sticky application header with brand, nav, actions, and mobile menu slots.
3
+ * Styles live in the component library so all apps share one navbar implementation.
4
+ */
5
+ export declare class VikingAppHeader {
6
+ readonly mobileMenuOpen: import("@angular/core").InputSignal<boolean>;
7
+ readonly mobileMenuLabel: import("@angular/core").InputSignal<string>;
8
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * viking-app-sidebar — dashboard sidebar shell styles (project nav markup inside).
3
+ * Width is driven by the `--viking-sidebar-width` CSS variable on the host.
4
+ */
5
+ export declare class VikingAppSidebar {
6
+ readonly collapsed: import("@angular/core").InputSignal<boolean>;
7
+ readonly dragging: import("@angular/core").InputSignal<boolean>;
8
+ readonly width: import("@angular/core").InputSignal<number>;
9
+ readonly resizeStart: import("@angular/core").OutputEmitterRef<MouseEvent>;
10
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * viking-auth-panel — access portal / sign-in layout template.
3
+ * Full-width stacked actions, Google + Apple OAuth row, WCAG-friendly structure.
4
+ */
5
+ export declare class VikingAuthPanel {
6
+ readonly tag: import("@angular/core").InputSignal<string>;
7
+ readonly title: import("@angular/core").InputSignal<string>;
8
+ readonly subtitle: import("@angular/core").InputSignal<string>;
9
+ readonly showSocial: import("@angular/core").InputSignal<boolean>;
10
+ readonly socialLoading: import("@angular/core").InputSignal<boolean>;
11
+ readonly googleSignIn: import("@angular/core").OutputEmitterRef<void>;
12
+ readonly appleSignIn: import("@angular/core").OutputEmitterRef<void>;
13
+ }
@@ -0,0 +1,25 @@
1
+ import { ElementRef } from "@angular/core";
2
+ import { VikingControl } from "../core/cva";
3
+ /**
4
+ * viking-autocomplete — text input with filtered suggestions
5
+ *. ControlValueAccessor-compatible.
6
+ */
7
+ export declare class VikingAutocomplete extends VikingControl<string> {
8
+ private readonly host;
9
+ readonly suggestions: import("@angular/core").InputSignal<string[]>;
10
+ readonly value: import("@angular/core").ModelSignal<string>;
11
+ readonly placeholder: import("@angular/core").InputSignal<string>;
12
+ readonly label: import("@angular/core").InputSignal<string>;
13
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
14
+ readonly selected: import("@angular/core").OutputEmitterRef<string>;
15
+ constructor(host: ElementRef<HTMLElement>);
16
+ protected readonly open: import("@angular/core").WritableSignal<boolean>;
17
+ protected readonly activeIndex: import("@angular/core").WritableSignal<number>;
18
+ protected readonly panelId: string;
19
+ protected readonly filtered: import("@angular/core").Signal<string[]>;
20
+ writeValue(value: string): void;
21
+ protected onInput: (event: Event) => void;
22
+ protected pick: (item: string) => void;
23
+ protected onKeydown: (event: KeyboardEvent) => void;
24
+ protected onDocumentClick: (event: Event) => void;
25
+ }
@@ -0,0 +1,14 @@
1
+ import { VikingTone } from "../../core/types";
2
+ /**
3
+ * viking-avatar — image or initials avatar with optional status indicator
4
+ *.
5
+ */
6
+ export declare class VikingAvatar {
7
+ readonly src: import("@angular/core").InputSignal<string>;
8
+ readonly name: import("@angular/core").InputSignal<string>;
9
+ readonly size: import("@angular/core").InputSignal<number>;
10
+ readonly square: import("@angular/core").InputSignal<boolean>;
11
+ readonly status: import("@angular/core").InputSignal<VikingTone>;
12
+ protected readonly imageFailed: import("@angular/core").WritableSignal<boolean>;
13
+ protected readonly initials: import("@angular/core").Signal<string>;
14
+ }
@@ -0,0 +1,16 @@
1
+ import { VikingSize, VikingTone } from "../../core/types";
2
+ /**
3
+ * viking-badge — status pill.
4
+ * Tones map to THEME.md semantic colors only.
5
+ */
6
+ export declare class VikingBadge {
7
+ readonly tone: import("@angular/core").InputSignal<VikingTone | "neutral">;
8
+ readonly size: import("@angular/core").InputSignal<VikingSize>;
9
+ readonly icon: import("@angular/core").InputSignal<"link" | "menu" | "search" | "deml" | "deml-compact" | "deml-lockup" | "drakkar" | "drakkar-compact" | "drakkar-lockup" | "kubernetes" | "tensorflow" | "pytorch" | "apache-spark" | "databricks" | "aws-redshift" | "info" | "hub" | "model" | "google" | "apple" | "alert-circle" | "alert-triangle" | "arrow-left" | "arrow-right" | "arrow-up-right" | "bar-chart" | "bell" | "bold" | "bolt" | "brain" | "bug" | "building" | "calendar" | "check" | "check-circle" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "chip" | "clock" | "cloud" | "cookie" | "copy" | "dots-horizontal" | "dots-vertical" | "download" | "external" | "eye" | "eye-off" | "file" | "filter" | "fingerprint" | "folder" | "globe" | "grip-vertical" | "heart" | "home" | "image" | "insights" | "italic" | "key" | "list" | "list-ordered" | "loader" | "lock" | "log-in" | "log-out" | "mail" | "minus" | "moon" | "network" | "paperclip" | "pencil" | "phone" | "play" | "plus" | "policy" | "refresh" | "rocket" | "search-off" | "send" | "server" | "settings" | "shield" | "ship" | "sparkle" | "speed" | "star" | "sun" | "terminal" | "trash" | "trending-up" | "underline" | "upload" | "user" | "user-shield" | "x">;
10
+ readonly removable: import("@angular/core").InputSignal<boolean>;
11
+ readonly removed: import("@angular/core").OutputEmitterRef<void>;
12
+ protected readonly hostClass: import("@angular/core").Signal<{
13
+ [x: string]: boolean;
14
+ "viking-badge-sm": boolean;
15
+ }>;
16
+ }
@@ -0,0 +1,4 @@
1
+ /** viking-bar — vertical bar for mock charts and decorative grids. */
2
+ export declare class VikingBar {
3
+ readonly height: import("@angular/core").InputSignal<number>;
4
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * viking-brand — logo + wordmark lockup.
3
+ * Project a custom logo (img/svg) or fall back to a monogram tile.
4
+ */
5
+ export declare class VikingBrand {
6
+ readonly name: import("@angular/core").InputSignal<string>;
7
+ readonly logoSrc: import("@angular/core").InputSignal<string>;
8
+ }
@@ -0,0 +1,10 @@
1
+ export interface VikingBreadcrumb {
2
+ label: string;
3
+ href?: string;
4
+ }
5
+ /**
6
+ * viking-breadcrumbs — hierarchy navigation.
7
+ */
8
+ export declare class VikingBreadcrumbs {
9
+ readonly items: import("@angular/core").InputSignal<VikingBreadcrumb[]>;
10
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * viking-button-group — fuses buttons with shared borders
3
+ *.
4
+ */
5
+ export declare class VikingButtonGroup {
6
+ }
@@ -0,0 +1,25 @@
1
+ import { VikingSize } from "../../core/types";
2
+ export type VikingButtonVariant = "outline" | "primary" | "secondary" | "filled" | "danger" | "ghost" | "subtle";
3
+ /**
4
+ * viking-button — thin Angular wrapper around `viking-button-wc`.
5
+ * Variants: outline (default), primary, filled, danger, ghost, subtle.
6
+ */
7
+ export declare class VikingButton {
8
+ readonly variant: import("@angular/core").InputSignal<VikingButtonVariant>;
9
+ readonly size: import("@angular/core").InputSignal<VikingSize>;
10
+ readonly type: import("@angular/core").InputSignal<"button" | "submit">;
11
+ readonly icon: import("@angular/core").InputSignal<"link" | "menu" | "search" | "deml" | "deml-compact" | "deml-lockup" | "drakkar" | "drakkar-compact" | "drakkar-lockup" | "kubernetes" | "tensorflow" | "pytorch" | "apache-spark" | "databricks" | "aws-redshift" | "info" | "hub" | "model" | "google" | "apple" | "alert-circle" | "alert-triangle" | "arrow-left" | "arrow-right" | "arrow-up-right" | "bar-chart" | "bell" | "bold" | "bolt" | "brain" | "bug" | "building" | "calendar" | "check" | "check-circle" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "chip" | "clock" | "cloud" | "cookie" | "copy" | "dots-horizontal" | "dots-vertical" | "download" | "external" | "eye" | "eye-off" | "file" | "filter" | "fingerprint" | "folder" | "globe" | "grip-vertical" | "heart" | "home" | "image" | "insights" | "italic" | "key" | "list" | "list-ordered" | "loader" | "lock" | "log-in" | "log-out" | "mail" | "minus" | "moon" | "network" | "paperclip" | "pencil" | "phone" | "play" | "plus" | "policy" | "refresh" | "rocket" | "search-off" | "send" | "server" | "settings" | "shield" | "ship" | "sparkle" | "speed" | "star" | "sun" | "terminal" | "trash" | "trending-up" | "underline" | "upload" | "user" | "user-shield" | "x">;
12
+ readonly iconTrailing: import("@angular/core").InputSignal<"link" | "menu" | "search" | "deml" | "deml-compact" | "deml-lockup" | "drakkar" | "drakkar-compact" | "drakkar-lockup" | "kubernetes" | "tensorflow" | "pytorch" | "apache-spark" | "databricks" | "aws-redshift" | "info" | "hub" | "model" | "google" | "apple" | "alert-circle" | "alert-triangle" | "arrow-left" | "arrow-right" | "arrow-up-right" | "bar-chart" | "bell" | "bold" | "bolt" | "brain" | "bug" | "building" | "calendar" | "check" | "check-circle" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "chip" | "clock" | "cloud" | "cookie" | "copy" | "dots-horizontal" | "dots-vertical" | "download" | "external" | "eye" | "eye-off" | "file" | "filter" | "fingerprint" | "folder" | "globe" | "grip-vertical" | "heart" | "home" | "image" | "insights" | "italic" | "key" | "list" | "list-ordered" | "loader" | "lock" | "log-in" | "log-out" | "mail" | "minus" | "moon" | "network" | "paperclip" | "pencil" | "phone" | "play" | "plus" | "policy" | "refresh" | "rocket" | "search-off" | "send" | "server" | "settings" | "shield" | "ship" | "sparkle" | "speed" | "star" | "sun" | "terminal" | "trash" | "trending-up" | "underline" | "upload" | "user" | "user-shield" | "x">;
13
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
14
+ readonly loading: import("@angular/core").InputSignal<boolean>;
15
+ readonly square: import("@angular/core").InputSignal<boolean>;
16
+ readonly fullWidth: import("@angular/core").InputSignal<boolean>;
17
+ readonly compact: import("@angular/core").InputSignal<boolean>;
18
+ readonly href: import("@angular/core").InputSignal<string>;
19
+ readonly target: import("@angular/core").InputSignal<string>;
20
+ readonly kbd: import("@angular/core").InputSignal<string>;
21
+ readonly label: import("@angular/core").InputSignal<string>;
22
+ readonly pressed: import("@angular/core").OutputEmitterRef<MouseEvent>;
23
+ protected readonly iconSize: import("@angular/core").Signal<22 | 18>;
24
+ protected onPress: (event: Event) => void;
25
+ }
@@ -0,0 +1,22 @@
1
+ import { VikingControl } from "../core/cva";
2
+ interface CalendarDay {
3
+ iso: string;
4
+ day: number;
5
+ inMonth: boolean;
6
+ isToday: boolean;
7
+ }
8
+ /**
9
+ * viking-calendar — month-grid date selection.
10
+ * Value is an ISO date string (YYYY-MM-DD). ControlValueAccessor-compatible.
11
+ */
12
+ export declare class VikingCalendar extends VikingControl<string | null> {
13
+ readonly value: import("@angular/core").ModelSignal<string>;
14
+ protected readonly weekdays: string[];
15
+ protected readonly viewDate: import("@angular/core").WritableSignal<Date>;
16
+ protected readonly title: import("@angular/core").Signal<string>;
17
+ protected readonly days: import("@angular/core").Signal<CalendarDay[]>;
18
+ writeValue(value: string | null): void;
19
+ protected move: (delta: number) => void;
20
+ protected pick: (day: CalendarDay) => void;
21
+ }
22
+ export {};
@@ -0,0 +1,14 @@
1
+ import { VikingTone } from "../../core/types";
2
+ /**
3
+ * viking-callout — highlighted message block.
4
+ */
5
+ export declare class VikingCallout {
6
+ readonly tone: import("@angular/core").InputSignal<VikingTone>;
7
+ readonly heading: import("@angular/core").InputSignal<string>;
8
+ readonly icon: import("@angular/core").InputSignal<"link" | "menu" | "search" | "deml" | "deml-compact" | "deml-lockup" | "drakkar" | "drakkar-compact" | "drakkar-lockup" | "kubernetes" | "tensorflow" | "pytorch" | "apache-spark" | "databricks" | "aws-redshift" | "info" | "hub" | "model" | "google" | "apple" | "alert-circle" | "alert-triangle" | "arrow-left" | "arrow-right" | "arrow-up-right" | "bar-chart" | "bell" | "bold" | "bolt" | "brain" | "bug" | "building" | "calendar" | "check" | "check-circle" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "chip" | "clock" | "cloud" | "cookie" | "copy" | "dots-horizontal" | "dots-vertical" | "download" | "external" | "eye" | "eye-off" | "file" | "filter" | "fingerprint" | "folder" | "globe" | "grip-vertical" | "heart" | "home" | "image" | "insights" | "italic" | "key" | "list" | "list-ordered" | "loader" | "lock" | "log-in" | "log-out" | "mail" | "minus" | "moon" | "network" | "paperclip" | "pencil" | "phone" | "play" | "plus" | "policy" | "refresh" | "rocket" | "search-off" | "send" | "server" | "settings" | "shield" | "ship" | "sparkle" | "speed" | "star" | "sun" | "terminal" | "trash" | "trending-up" | "underline" | "upload" | "user" | "user-shield" | "x">;
9
+ readonly dismissible: import("@angular/core").InputSignal<boolean>;
10
+ readonly closed: import("@angular/core").OutputEmitterRef<void>;
11
+ protected readonly dismissed: import("@angular/core").WritableSignal<boolean>;
12
+ protected readonly resolvedIcon: import("@angular/core").Signal<"link" | "menu" | "search" | "deml" | "deml-compact" | "deml-lockup" | "drakkar" | "drakkar-compact" | "drakkar-lockup" | "kubernetes" | "tensorflow" | "pytorch" | "apache-spark" | "databricks" | "aws-redshift" | "info" | "hub" | "model" | "google" | "apple" | "alert-circle" | "alert-triangle" | "arrow-left" | "arrow-right" | "arrow-up-right" | "bar-chart" | "bell" | "bold" | "bolt" | "brain" | "bug" | "building" | "calendar" | "check" | "check-circle" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "chip" | "clock" | "cloud" | "cookie" | "copy" | "dots-horizontal" | "dots-vertical" | "download" | "external" | "eye" | "eye-off" | "file" | "filter" | "fingerprint" | "folder" | "globe" | "grip-vertical" | "heart" | "home" | "image" | "insights" | "italic" | "key" | "list" | "list-ordered" | "loader" | "lock" | "log-in" | "log-out" | "mail" | "minus" | "moon" | "network" | "paperclip" | "pencil" | "phone" | "play" | "plus" | "policy" | "refresh" | "rocket" | "search-off" | "send" | "server" | "settings" | "shield" | "ship" | "sparkle" | "speed" | "star" | "sun" | "terminal" | "trash" | "trending-up" | "underline" | "upload" | "user" | "user-shield" | "x">;
13
+ protected dismiss: () => void;
14
+ }
@@ -0,0 +1,12 @@
1
+ import { VikingIconBadgeTone } from "../icon-badge/icon-badge";
2
+ /**
3
+ * viking-card-title — card header title row with tokenized icon badge + heading.
4
+ * Compose inside viking-card-header for premium, consistent section titles.
5
+ */
6
+ export declare class VikingCardTitle {
7
+ readonly icon: import("@angular/core").InputSignal<"link" | "menu" | "search" | "deml" | "deml-compact" | "deml-lockup" | "drakkar" | "drakkar-compact" | "drakkar-lockup" | "kubernetes" | "tensorflow" | "pytorch" | "apache-spark" | "databricks" | "aws-redshift" | "info" | "hub" | "model" | "google" | "apple" | "alert-circle" | "alert-triangle" | "arrow-left" | "arrow-right" | "arrow-up-right" | "bar-chart" | "bell" | "bold" | "bolt" | "brain" | "bug" | "building" | "calendar" | "check" | "check-circle" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "chip" | "clock" | "cloud" | "cookie" | "copy" | "dots-horizontal" | "dots-vertical" | "download" | "external" | "eye" | "eye-off" | "file" | "filter" | "fingerprint" | "folder" | "globe" | "grip-vertical" | "heart" | "home" | "image" | "insights" | "italic" | "key" | "list" | "list-ordered" | "loader" | "lock" | "log-in" | "log-out" | "mail" | "minus" | "moon" | "network" | "paperclip" | "pencil" | "phone" | "play" | "plus" | "policy" | "refresh" | "rocket" | "search-off" | "send" | "server" | "settings" | "shield" | "ship" | "sparkle" | "speed" | "star" | "sun" | "terminal" | "trash" | "trending-up" | "underline" | "upload" | "user" | "user-shield" | "x">;
8
+ readonly tone: import("@angular/core").InputSignal<VikingIconBadgeTone>;
9
+ readonly level: import("@angular/core").InputSignal<2 | 1 | 4 | 3>;
10
+ readonly size: import("@angular/core").InputSignal<"base" | "sm" | "lg" | "xl">;
11
+ readonly iconSize: import("@angular/core").InputSignal<number>;
12
+ }
@@ -0,0 +1,19 @@
1
+ import { ElementRef } from "@angular/core";
2
+ /**
3
+ * viking-card — surface container.
4
+ * Compose with viking-card-header / viking-card-footer for structured layouts.
5
+ */
6
+ export declare class VikingCard {
7
+ private readonly host;
8
+ readonly interactive: import("@angular/core").InputSignal<boolean>;
9
+ readonly loading: import("@angular/core").InputSignal<boolean>;
10
+ readonly compact: import("@angular/core").InputSignal<boolean>;
11
+ constructor(host: ElementRef<HTMLElement>);
12
+ protected onActivate: (event: Event) => void;
13
+ }
14
+ /** Header row for viking-card. */
15
+ export declare class VikingCardHeader {
16
+ }
17
+ /** Footer row for viking-card. */
18
+ export declare class VikingCardFooter {
19
+ }
@@ -0,0 +1,13 @@
1
+ /** A single slide inside viking-carousel. */
2
+ export declare class VikingCarouselSlide {
3
+ }
4
+ /**
5
+ * viking-carousel — scroll-snap slideshow.
6
+ */
7
+ export declare class VikingCarousel {
8
+ private readonly viewport;
9
+ protected readonly slides: import("@angular/core").Signal<readonly VikingCarouselSlide[]>;
10
+ protected readonly index: import("@angular/core").WritableSignal<number>;
11
+ protected goTo: (target: number) => void;
12
+ protected onScroll: () => void;
13
+ }
@@ -0,0 +1,14 @@
1
+ /** Visible index window for chart zoom/pan (inclusive start, exclusive end). */
2
+ export interface ChartZoomWindow {
3
+ start: number;
4
+ end: number;
5
+ }
6
+ export declare const fullChartWindow: (count: number) => ChartZoomWindow;
7
+ /** Clamp zoom window to valid bounds with a minimum visible span. */
8
+ export declare const clampChartWindow: (window: ChartZoomWindow, count: number, minSpan?: number) => ChartZoomWindow;
9
+ /** Wheel delta → narrower/wider window centered on cursor fraction (0–1). */
10
+ export declare const zoomChartWindow: (current: ChartZoomWindow, count: number, cursorFraction: number, deltaY: number, minSpan?: number) => ChartZoomWindow;
11
+ /** Drag delta in data points → pan window. */
12
+ export declare const panChartWindow: (current: ChartZoomWindow, count: number, deltaPoints: number, minSpan?: number) => ChartZoomWindow;
13
+ /** Slice series rows and category labels for the active window. */
14
+ export declare const sliceChartData: <T>(values: T[], window: ChartZoomWindow) => T[];
@@ -0,0 +1,119 @@
1
+ import { VikingChartCurve, VikingChartKind, VikingChartSeries, VikingDonutSegment, VikingTone } from "../../core/types";
2
+ import { ChartZoomWindow } from "./chart-zoom";
3
+ interface ChartPath {
4
+ name: string;
5
+ tone: VikingTone;
6
+ line: string;
7
+ area: string;
8
+ }
9
+ interface ChartPoint {
10
+ x: number;
11
+ y: number;
12
+ tone: VikingTone;
13
+ }
14
+ interface BarRect {
15
+ x: number;
16
+ y: number;
17
+ width: number;
18
+ height: number;
19
+ tone: VikingTone;
20
+ radiusTop: boolean;
21
+ }
22
+ interface DonutSlice {
23
+ label: string;
24
+ tone: VikingTone;
25
+ path: string;
26
+ }
27
+ interface AxisLabel {
28
+ x: number;
29
+ y: number;
30
+ text: string;
31
+ anchor: "start" | "middle" | "end";
32
+ }
33
+ interface TickMark {
34
+ x: number;
35
+ y1: number;
36
+ y2: number;
37
+ }
38
+ interface Gutter {
39
+ top: number;
40
+ right: number;
41
+ bottom: number;
42
+ left: number;
43
+ }
44
+ /**
45
+ * viking-chart — zero-dependency native SVG charts styled after Viking UI.
46
+ */
47
+ export declare class VikingChart {
48
+ protected readonly chartId: string;
49
+ readonly kind: import("@angular/core").InputSignal<VikingChartKind>;
50
+ readonly series: import("@angular/core").InputSignal<VikingChartSeries[]>;
51
+ readonly categories: import("@angular/core").InputSignal<string[]>;
52
+ readonly segments: import("@angular/core").InputSignal<VikingDonutSegment[]>;
53
+ readonly label: import("@angular/core").InputSignal<string>;
54
+ readonly showArea: import("@angular/core").InputSignal<boolean>;
55
+ readonly compact: import("@angular/core").InputSignal<boolean>;
56
+ readonly fill: import("@angular/core").InputSignal<boolean>;
57
+ readonly curve: import("@angular/core").InputSignal<VikingChartCurve>;
58
+ readonly showPoints: import("@angular/core").InputSignal<boolean>;
59
+ readonly pointRadius: import("@angular/core").InputSignal<number>;
60
+ readonly barWidth: import("@angular/core").InputSignal<number>;
61
+ readonly barRadius: import("@angular/core").InputSignal<number>;
62
+ readonly barMinHeight: import("@angular/core").InputSignal<number>;
63
+ readonly gutter: import("@angular/core").InputSignal<string | number>;
64
+ readonly tickCount: import("@angular/core").InputSignal<number>;
65
+ readonly showLegend: import("@angular/core").InputSignal<boolean>;
66
+ readonly summary: import("@angular/core").InputSignal<string>;
67
+ /** Enable wheel zoom + drag pan on line/bar charts (Flux-style interaction). */
68
+ readonly zoomable: import("@angular/core").InputSignal<boolean>;
69
+ private readonly zoomWindow;
70
+ private panStartX;
71
+ private panStartWindow;
72
+ constructor();
73
+ /** Slice series/categories to the active zoom window. */
74
+ protected readonly dataWindow: import("@angular/core").Signal<ChartZoomWindow>;
75
+ protected readonly effectiveSeries: import("@angular/core").Signal<{
76
+ data: number[];
77
+ name: string;
78
+ tone?: VikingTone;
79
+ }[]>;
80
+ protected readonly effectiveCategories: import("@angular/core").Signal<string[]>;
81
+ protected readonly zoomActive: import("@angular/core").Signal<boolean>;
82
+ protected resetZoom: () => void;
83
+ protected onWheel: (event: WheelEvent) => void;
84
+ protected onPanStart: (event: PointerEvent) => void;
85
+ protected onPanMove: (event: PointerEvent) => void;
86
+ protected onPanEnd: () => void;
87
+ protected readonly width = 720;
88
+ protected readonly isSparkline: import("@angular/core").Signal<boolean>;
89
+ protected readonly resolvedGutter: import("@angular/core").Signal<Gutter>;
90
+ protected readonly legendVisible: import("@angular/core").Signal<boolean>;
91
+ protected readonly height: import("@angular/core").Signal<720 | 240 | 200 | 400 | 48>;
92
+ protected readonly preserveAspectRatio: import("@angular/core").Signal<string>;
93
+ protected readonly plotBottom: import("@angular/core").Signal<number>;
94
+ protected readonly plotTop: import("@angular/core").Signal<number>;
95
+ protected readonly plotCy: import("@angular/core").Signal<number>;
96
+ protected readonly donutInnerRadius: import("@angular/core").Signal<number>;
97
+ protected readonly isBarKind: import("@angular/core").Signal<boolean>;
98
+ protected readonly isLineKind: import("@angular/core").Signal<boolean>;
99
+ protected readonly renderArea: import("@angular/core").Signal<boolean>;
100
+ protected readonly renderPoints: import("@angular/core").Signal<boolean>;
101
+ protected toneVar: (tone: VikingTone) => string;
102
+ protected readonly valueRange: import("@angular/core").Signal<{
103
+ min: number;
104
+ max: number;
105
+ }>;
106
+ protected readonly gridLines: import("@angular/core").Signal<number[]>;
107
+ protected readonly yAxisLabels: import("@angular/core").Signal<AxisLabel[]>;
108
+ protected readonly xAxisLabels: import("@angular/core").Signal<AxisLabel[]>;
109
+ protected readonly xTickMarks: import("@angular/core").Signal<TickMark[]>;
110
+ protected readonly paths: import("@angular/core").Signal<ChartPath[]>;
111
+ protected readonly linePoints: import("@angular/core").Signal<ChartPoint[]>;
112
+ protected readonly barRects: import("@angular/core").Signal<BarRect[]>;
113
+ private readonly singleBarRects;
114
+ private readonly groupedBarRects;
115
+ private readonly stackedBarRects;
116
+ protected readonly donutTotalLabel: import("@angular/core").Signal<string>;
117
+ protected readonly donutSlices: import("@angular/core").Signal<DonutSlice[]>;
118
+ }
119
+ export {};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * viking-chart-card-header — shared label / value / trend header for analytics chart cards.
3
+ */
4
+ export declare class VikingChartCardHeader {
5
+ readonly title: import("@angular/core").InputSignal<string>;
6
+ readonly value: import("@angular/core").InputSignal<string>;
7
+ readonly emptyLabel: import("@angular/core").InputSignal<string>;
8
+ readonly trend: import("@angular/core").InputSignal<string>;
9
+ readonly hasData: import("@angular/core").InputSignal<boolean>;
10
+ }