@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.
- package/LICENSE +201 -0
- package/README.md +52 -12
- package/dist/core/brand-icons.d.ts +29 -0
- package/dist/core/icons.d.ts +132 -0
- package/dist/core/integration-brand-icons.d.ts +18 -0
- package/dist/core/lucide-paths.generated.d.ts +90 -0
- package/dist/core/types.d.ts +56 -0
- package/dist/core/uid.d.ts +2 -0
- package/dist/lib/accordion/accordion.d.ts +19 -0
- package/dist/lib/app-header/app-header.d.ts +8 -0
- package/dist/lib/app-sidebar/app-sidebar.d.ts +10 -0
- package/dist/lib/auth-panel/auth-panel.d.ts +13 -0
- package/dist/lib/autocomplete/autocomplete.d.ts +25 -0
- package/dist/lib/avatar/avatar.d.ts +14 -0
- package/dist/lib/badge/badge.d.ts +16 -0
- package/dist/lib/bar/bar.d.ts +4 -0
- package/dist/lib/brand/brand.d.ts +8 -0
- package/dist/lib/breadcrumbs/breadcrumbs.d.ts +10 -0
- package/dist/lib/button/button-group.d.ts +6 -0
- package/dist/lib/button/button.d.ts +25 -0
- package/dist/lib/calendar/calendar.d.ts +22 -0
- package/dist/lib/callout/callout.d.ts +14 -0
- package/dist/lib/card/card-title.d.ts +12 -0
- package/dist/lib/card/card.d.ts +19 -0
- package/dist/lib/carousel/carousel.d.ts +13 -0
- package/dist/lib/chart/chart-zoom.d.ts +14 -0
- package/dist/lib/chart/chart.d.ts +119 -0
- package/dist/lib/chart-card-header/chart-card-header.d.ts +10 -0
- package/dist/lib/chart-empty-state/chart-empty-state.d.ts +13 -0
- package/dist/lib/chart-panel/chart-panel.d.ts +10 -0
- package/dist/lib/checkbox/checkbox.d.ts +13 -0
- package/dist/lib/color-picker/color-picker.d.ts +16 -0
- package/dist/lib/command/command.d.ts +23 -0
- package/dist/lib/composer/composer.d.ts +15 -0
- package/dist/lib/confirm-dialog/confirm-dialog.d.ts +18 -0
- package/dist/lib/confirm-dialog/dialog.service.d.ts +28 -0
- package/dist/lib/context/context.d.ts +17 -0
- package/dist/lib/core/cva.d.ts +15 -0
- package/dist/lib/date-picker/date-picker.d.ts +18 -0
- package/dist/lib/dropdown/dropdown.d.ts +29 -0
- package/dist/lib/editor/editor.d.ts +26 -0
- package/dist/lib/empty-state/empty-state.d.ts +9 -0
- package/dist/lib/fab/fab.d.ts +9 -0
- package/dist/lib/field/field.d.ts +14 -0
- package/dist/lib/file-upload/file-upload.d.ts +19 -0
- package/dist/lib/footer/footer.d.ts +6 -0
- package/dist/lib/form-section/form-section.d.ts +15 -0
- package/dist/lib/gauge-arc/gauge-arc.d.ts +8 -0
- package/dist/lib/hud-panel/hud-panel.d.ts +5 -0
- package/dist/lib/icon/icon.d.ts +44 -0
- package/dist/lib/icon-badge/icon-badge.d.ts +14 -0
- package/dist/lib/icon-heading/icon-heading.d.ts +9 -0
- package/dist/lib/icon-text/icon-text.d.ts +12 -0
- package/dist/lib/input/input.d.ts +23 -0
- package/dist/lib/kanban/kanban.d.ts +16 -0
- package/dist/lib/kbd/kbd.d.ts +5 -0
- package/dist/lib/label/label.d.ts +7 -0
- package/dist/lib/loading-overlay/loading-overlay.d.ts +10 -0
- package/dist/lib/menubar/menubar.d.ts +10 -0
- package/dist/lib/metric-card/metric-card.d.ts +9 -0
- package/dist/lib/modal/modal.d.ts +13 -0
- package/dist/lib/native-select/native-select.d.ts +17 -0
- package/dist/lib/navbar/navbar.d.ts +13 -0
- package/dist/lib/navigation-menu/navigation-menu.d.ts +13 -0
- package/dist/lib/otp-input/otp-input.d.ts +23 -0
- package/dist/lib/page-back-link/page-back-link.d.ts +11 -0
- package/dist/lib/page-header/page-header.d.ts +15 -0
- package/dist/lib/pagination/pagination.d.ts +10 -0
- package/dist/lib/pillbox/pillbox.d.ts +15 -0
- package/dist/lib/popover/popover.d.ts +15 -0
- package/dist/lib/profile/profile.d.ts +11 -0
- package/dist/lib/progress/progress.d.ts +12 -0
- package/dist/lib/radio/radio.d.ts +16 -0
- package/dist/lib/ring-gauge/ring-gauge.d.ts +8 -0
- package/dist/lib/scroll-area/scroll-area.d.ts +7 -0
- package/dist/lib/search-palette/search-palette.d.ts +16 -0
- package/dist/lib/select/select.d.ts +26 -0
- package/dist/lib/separator/separator.d.ts +8 -0
- package/dist/lib/sheet/sheet.d.ts +13 -0
- package/dist/lib/sidebar-nav/sidebar-nav.d.ts +46 -0
- package/dist/lib/site-drakkar/site-footer.d.ts +18 -0
- package/dist/lib/site-drakkar/site-navbar.d.ts +25 -0
- package/dist/lib/skeleton/skeleton.d.ts +8 -0
- package/dist/lib/slider/slider.d.ts +17 -0
- package/dist/lib/spinner/spinner.d.ts +7 -0
- package/dist/lib/status-metric-row/status-metric-row.d.ts +9 -0
- package/dist/lib/suite-search-palette/suite-search-palette.d.ts +25 -0
- package/dist/lib/switch/switch.d.ts +12 -0
- package/dist/lib/table/table.d.ts +10 -0
- package/dist/lib/tabs/tab-panel.d.ts +12 -0
- package/dist/lib/tabs/tab.d.ts +14 -0
- package/dist/lib/tabs/tabs.d.ts +10 -0
- package/dist/lib/textarea/textarea.d.ts +16 -0
- package/dist/lib/theme-toggle/theme-toggle.d.ts +9 -0
- package/dist/lib/time-picker/time-picker.d.ts +21 -0
- package/dist/lib/timeline/timeline.d.ts +14 -0
- package/dist/lib/toast/toast.d.ts +21 -0
- package/dist/lib/toggle/toggle-group.d.ts +9 -0
- package/dist/lib/toggle/toggle.d.ts +15 -0
- package/dist/lib/tooltip/tooltip.d.ts +20 -0
- package/dist/lib/typography/heading.d.ts +9 -0
- package/dist/lib/typography/text.d.ts +11 -0
- package/dist/lib/uptime-bar/uptime-bar.d.ts +6 -0
- package/dist/lib/verification-code-field/verification-code-field.d.ts +19 -0
- package/dist/lib/whitepaper-cta/whitepaper-cta.d.ts +15 -0
- package/dist/lib/wizard/wizard.d.ts +13 -0
- package/dist/public-api.d.ts +109 -0
- package/dist/tokens/series-presets.d.ts +4 -0
- package/package.json +1 -1
- package/src/assets/drakkar-favicon.svg +17 -0
- package/src/core/brand/deml-lockup.svg +5 -0
- package/src/core/brand/deml-mark-compact.svg +4 -0
- package/src/core/brand/deml-mark-filled.svg +3 -0
- package/src/core/brand/deml-mark-outline.svg +4 -0
- package/src/core/brand-icons.ts +62 -0
- package/src/core/icons.spec.ts +52 -0
- package/src/core/icons.ts +206 -0
- package/src/core/integration-brand-icons.ts +77 -0
- package/src/core/lucide-paths.generated.ts +130 -0
- package/src/core/types.ts +85 -0
- package/src/core/uid.ts +7 -0
- package/src/lib/accordion/accordion.ts +126 -0
- package/src/lib/app-header/app-header.scss +274 -0
- package/src/lib/app-header/app-header.ts +43 -0
- package/src/lib/app-sidebar/app-sidebar.scss +415 -0
- package/src/lib/app-sidebar/app-sidebar.ts +29 -0
- package/src/lib/auth-panel/auth-panel.spec.ts +132 -0
- package/src/lib/auth-panel/auth-panel.ts +228 -0
- package/src/lib/autocomplete/autocomplete.ts +223 -0
- package/src/lib/avatar/avatar.ts +126 -0
- package/src/lib/badge/badge.ts +182 -0
- package/src/lib/bar/bar.ts +31 -0
- package/src/lib/brand/brand.ts +60 -0
- package/src/lib/breadcrumbs/breadcrumbs.ts +81 -0
- package/src/lib/button/button-group.ts +40 -0
- package/src/lib/button/button.scss +96 -0
- package/src/lib/button/button.ts +98 -0
- package/src/lib/calendar/calendar.ts +253 -0
- package/src/lib/callout/callout.ts +211 -0
- package/src/lib/card/card-title.spec.ts +27 -0
- package/src/lib/card/card-title.ts +50 -0
- package/src/lib/card/card.ts +170 -0
- package/src/lib/carousel/carousel.ts +206 -0
- package/src/lib/chart/chart-zoom.spec.ts +65 -0
- package/src/lib/chart/chart-zoom.ts +71 -0
- package/src/lib/chart/chart.ts +1257 -0
- package/src/lib/chart-card-header/chart-card-header.ts +80 -0
- package/src/lib/chart-empty-state/chart-empty-state.ts +146 -0
- package/src/lib/chart-panel/chart-panel.ts +133 -0
- package/src/lib/checkbox/checkbox.ts +139 -0
- package/src/lib/color-picker/color-picker.ts +148 -0
- package/src/lib/command/command.ts +260 -0
- package/src/lib/composer/composer.ts +180 -0
- package/src/lib/confirm-dialog/confirm-dialog.ts +163 -0
- package/src/lib/confirm-dialog/dialog.service.ts +79 -0
- package/src/lib/context/context.ts +75 -0
- package/src/lib/core/cva.ts +33 -0
- package/src/lib/date-picker/date-picker.ts +139 -0
- package/src/lib/dropdown/dropdown.ts +188 -0
- package/src/lib/editor/editor.ts +170 -0
- package/src/lib/empty-state/empty-state.ts +100 -0
- package/src/lib/fab/fab.ts +76 -0
- package/src/lib/field/field.ts +111 -0
- package/src/lib/file-upload/file-upload.ts +208 -0
- package/src/lib/footer/footer.scss +155 -0
- package/src/lib/footer/footer.ts +28 -0
- package/src/lib/form-section/form-section.ts +200 -0
- package/src/lib/forms.spec.ts +92 -0
- package/src/lib/gauge-arc/gauge-arc.ts +85 -0
- package/src/lib/hud-panel/hud-panel.ts +27 -0
- package/src/lib/icon/icon.ts +284 -0
- package/src/lib/icon-badge/icon-badge.ts +87 -0
- package/src/lib/icon-heading/icon-heading.spec.ts +32 -0
- package/src/lib/icon-heading/icon-heading.ts +38 -0
- package/src/lib/icon-text/icon-text.ts +120 -0
- package/src/lib/input/input.ts +119 -0
- package/src/lib/kanban/kanban.ts +211 -0
- package/src/lib/kbd/kbd.ts +32 -0
- package/src/lib/label/label.ts +39 -0
- package/src/lib/loading-overlay/loading-overlay.ts +80 -0
- package/src/lib/menubar/menubar.ts +77 -0
- package/src/lib/metric-card/metric-card.ts +33 -0
- package/src/lib/modal/modal.ts +207 -0
- package/src/lib/native-select/native-select.ts +124 -0
- package/src/lib/navbar/navbar.ts +124 -0
- package/src/lib/navigation-menu/navigation-menu.ts +116 -0
- package/src/lib/otp-input/otp-input.ts +164 -0
- package/src/lib/page-back-link/page-back-link.ts +74 -0
- package/src/lib/page-header/page-header.ts +70 -0
- package/src/lib/pagination/pagination.ts +157 -0
- package/src/lib/pillbox/pillbox.ts +157 -0
- package/src/lib/popover/popover.ts +92 -0
- package/src/lib/profile/profile.ts +73 -0
- package/src/lib/progress/progress.ts +123 -0
- package/src/lib/radio/radio.ts +132 -0
- package/src/lib/ring-gauge/ring-gauge.ts +75 -0
- package/src/lib/scroll-area/scroll-area.ts +57 -0
- package/src/lib/search-palette/search-palette.scss +288 -0
- package/src/lib/search-palette/search-palette.ts +114 -0
- package/src/lib/select/select.ts +292 -0
- package/src/lib/separator/separator.ts +59 -0
- package/src/lib/sheet/sheet.ts +192 -0
- package/src/lib/sidebar-nav/sidebar-nav.scss +218 -0
- package/src/lib/sidebar-nav/sidebar-nav.ts +158 -0
- package/src/lib/site-drakkar/site-footer.ts +129 -0
- package/src/lib/site-drakkar/site-navbar.scss +2 -0
- package/src/lib/site-drakkar/site-navbar.ts +267 -0
- package/src/lib/site-drakkar/suite-search-items.spec.ts +61 -0
- package/src/lib/skeleton/skeleton.ts +51 -0
- package/src/lib/slider/slider.ts +133 -0
- package/src/lib/spinner/spinner.ts +75 -0
- package/src/lib/status-metric-row/status-metric-row.ts +74 -0
- package/src/lib/suite-search-palette/suite-search-palette.ts +95 -0
- package/src/lib/switch/switch.ts +131 -0
- package/src/lib/table/table.ts +137 -0
- package/src/lib/tabs/tab-panel.ts +61 -0
- package/src/lib/tabs/tab.ts +107 -0
- package/src/lib/tabs/tabs.ts +109 -0
- package/src/lib/textarea/textarea.ts +103 -0
- package/src/lib/theme-toggle/theme-toggle.spec.ts +40 -0
- package/src/lib/theme-toggle/theme-toggle.ts +39 -0
- package/src/lib/time-picker/time-picker.ts +197 -0
- package/src/lib/timeline/timeline.ts +152 -0
- package/src/lib/toast/toast.ts +196 -0
- package/src/lib/toggle/toggle-group.ts +60 -0
- package/src/lib/toggle/toggle.ts +101 -0
- package/src/lib/tooltip/tooltip.ts +119 -0
- package/src/lib/typography/heading.ts +52 -0
- package/src/lib/typography/text.ts +51 -0
- package/src/lib/uptime-bar/uptime-bar.ts +55 -0
- package/src/lib/verification-code-field/verification-code-field.ts +149 -0
- package/src/lib/whitepaper-cta/whitepaper-cta.scss +130 -0
- package/src/lib/whitepaper-cta/whitepaper-cta.ts +78 -0
- package/src/lib/wizard/wizard.ts +80 -0
- package/src/public-api.ts +172 -0
- package/src/tokens/series-presets.ts +15 -0
- package/src/tokens/tailwind.preset.js +209 -0
- package/src/viking-ui.spec.ts +416 -0
- package/src/web/web-components.spec.ts +297 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type VikingChartEmptyTone = "default" | "secure";
|
|
2
|
+
export type VikingChartEmptyLayout = "fill" | "overlay" | "compact" | "inline";
|
|
3
|
+
/**
|
|
4
|
+
* viking-chart-empty-state — standardized dashed “waiting for data” overlay for chart panels.
|
|
5
|
+
* Fills its parent chart body by default; use layout="overlay" for map/canvas stacks.
|
|
6
|
+
*/
|
|
7
|
+
export declare class VikingChartEmptyState {
|
|
8
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
9
|
+
readonly description: import("@angular/core").InputSignal<string>;
|
|
10
|
+
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">;
|
|
11
|
+
readonly tone: import("@angular/core").InputSignal<VikingChartEmptyTone>;
|
|
12
|
+
readonly layout: import("@angular/core").InputSignal<VikingChartEmptyLayout>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type VikingChartPanelSize = "large" | "medium";
|
|
2
|
+
export type VikingChartPanelBody = "default" | "origin-map";
|
|
3
|
+
/**
|
|
4
|
+
* viking-chart-panel — outlined analytics card shell with consistent header/body rhythm.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VikingChartPanel {
|
|
7
|
+
readonly size: import("@angular/core").InputSignal<VikingChartPanelSize>;
|
|
8
|
+
readonly body: import("@angular/core").InputSignal<VikingChartPanelBody>;
|
|
9
|
+
protected readonly bodyClasses: import("@angular/core").Signal<string>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { VikingControl } from "../core/cva";
|
|
2
|
+
/**
|
|
3
|
+
* viking-checkbox — custom checkbox.
|
|
4
|
+
* ControlValueAccessor-compatible.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VikingCheckbox extends VikingControl<boolean> {
|
|
7
|
+
readonly checked: import("@angular/core").ModelSignal<boolean>;
|
|
8
|
+
readonly indeterminate: import("@angular/core").InputSignal<boolean>;
|
|
9
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
10
|
+
readonly description: import("@angular/core").InputSignal<string>;
|
|
11
|
+
writeValue(value: boolean): void;
|
|
12
|
+
protected toggle: (event: Event) => void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { VikingControl } from "../core/cva";
|
|
2
|
+
/**
|
|
3
|
+
* viking-color-picker — swatch presets + custom color input
|
|
4
|
+
*. ControlValueAccessor-compatible.
|
|
5
|
+
* Default presets are the THEME.md palette.
|
|
6
|
+
*/
|
|
7
|
+
export declare class VikingColorPicker extends VikingControl<string> {
|
|
8
|
+
readonly value: import("@angular/core").ModelSignal<string>;
|
|
9
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
10
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
11
|
+
/** Preset swatches — THEME.md Series color palette (premium charcoal / teal / crimson). */
|
|
12
|
+
readonly presets: import("@angular/core").InputSignal<string[]>;
|
|
13
|
+
writeValue(value: string): void;
|
|
14
|
+
protected pick: (color: string) => void;
|
|
15
|
+
protected onInput: (event: Event) => void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { VikingCommandItem } from "../../core/types";
|
|
2
|
+
/**
|
|
3
|
+
* viking-command — command palette.
|
|
4
|
+
* Toggle with the `open` model; emits `executed` when an item is chosen.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VikingCommand {
|
|
7
|
+
readonly items: import("@angular/core").InputSignal<VikingCommandItem[]>;
|
|
8
|
+
readonly open: import("@angular/core").ModelSignal<boolean>;
|
|
9
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
10
|
+
readonly executed: import("@angular/core").OutputEmitterRef<VikingCommandItem>;
|
|
11
|
+
private readonly queryInput;
|
|
12
|
+
protected readonly query: import("@angular/core").WritableSignal<string>;
|
|
13
|
+
protected readonly activeId: import("@angular/core").WritableSignal<string>;
|
|
14
|
+
constructor();
|
|
15
|
+
protected readonly filtered: import("@angular/core").Signal<VikingCommandItem[]>;
|
|
16
|
+
protected readonly groups: import("@angular/core").Signal<{
|
|
17
|
+
name: string;
|
|
18
|
+
items: VikingCommandItem[];
|
|
19
|
+
}[]>;
|
|
20
|
+
protected onQuery: (event: Event) => void;
|
|
21
|
+
protected run: (item: VikingCommandItem) => void;
|
|
22
|
+
protected onKeydown: (event: KeyboardEvent) => void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* viking-composer — message composer with attachments and send action
|
|
3
|
+
*.
|
|
4
|
+
*/
|
|
5
|
+
export declare class VikingComposer {
|
|
6
|
+
readonly value: import("@angular/core").ModelSignal<string>;
|
|
7
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
8
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
9
|
+
readonly allowAttachments: import("@angular/core").InputSignal<boolean>;
|
|
10
|
+
readonly sent: import("@angular/core").OutputEmitterRef<string>;
|
|
11
|
+
readonly attach: import("@angular/core").OutputEmitterRef<void>;
|
|
12
|
+
protected onInput: (event: Event) => void;
|
|
13
|
+
protected onKeydown: (event: KeyboardEvent) => void;
|
|
14
|
+
protected send: () => void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { VikingConfirmDialogData, VikingDialogService } from "./dialog.service";
|
|
2
|
+
/**
|
|
3
|
+
* viking-confirm-dialog — alert / confirm / prompt modal wired to VikingDialogService.
|
|
4
|
+
*/
|
|
5
|
+
export declare class VikingConfirmDialog {
|
|
6
|
+
private readonly vikingDialog;
|
|
7
|
+
constructor(vikingDialog: VikingDialogService);
|
|
8
|
+
protected readonly inputValue: import("@angular/core").WritableSignal<string>;
|
|
9
|
+
protected readonly data: import("@angular/core").Signal<VikingConfirmDialogData>;
|
|
10
|
+
protected readonly open: import("@angular/core").Signal<boolean>;
|
|
11
|
+
protected readonly heading: import("@angular/core").Signal<string>;
|
|
12
|
+
protected readonly iconName: 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 readonly isValid: import("@angular/core").Signal<boolean>;
|
|
14
|
+
protected onCancel: () => void;
|
|
15
|
+
protected onConfirm: () => void;
|
|
16
|
+
protected onOpenChange: (next: boolean) => void;
|
|
17
|
+
}
|
|
18
|
+
export type { VikingConfirmDialogData };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type VikingDialogKind = "confirm" | "search" | "onboarding";
|
|
2
|
+
export interface VikingConfirmDialogData {
|
|
3
|
+
title?: string;
|
|
4
|
+
message: string;
|
|
5
|
+
type?: "alert" | "confirm" | "prompt";
|
|
6
|
+
confirmText?: string;
|
|
7
|
+
confirmBtnText?: string;
|
|
8
|
+
confirmBtnColor?: "primary" | "warn" | "accent";
|
|
9
|
+
}
|
|
10
|
+
export interface VikingDialogState {
|
|
11
|
+
kind: VikingDialogKind;
|
|
12
|
+
data?: VikingConfirmDialogData & {
|
|
13
|
+
force?: boolean;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** Programmatic confirm / prompt / overlay orchestration for Viking-UI modals. */
|
|
17
|
+
export declare class VikingDialogService {
|
|
18
|
+
readonly active: import("@angular/core").WritableSignal<VikingDialogState>;
|
|
19
|
+
private confirmResolver;
|
|
20
|
+
private onboardingResolver;
|
|
21
|
+
openConfirm(data: VikingConfirmDialogData): Promise<boolean>;
|
|
22
|
+
resolveConfirm(result: boolean): void;
|
|
23
|
+
openSearch(): void;
|
|
24
|
+
closeSearch(): void;
|
|
25
|
+
openOnboarding(force?: boolean): Promise<boolean | undefined>;
|
|
26
|
+
resolveOnboarding(result?: boolean): void;
|
|
27
|
+
closeActive(cancelPending?: boolean): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ElementRef } from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* viking-context — right-click context menu.
|
|
4
|
+
* Wrap the target content and project menu content with the `vikingMenu` attribute
|
|
5
|
+
* (typically viking-menu-item elements).
|
|
6
|
+
*/
|
|
7
|
+
export declare class VikingContext {
|
|
8
|
+
private readonly host;
|
|
9
|
+
protected readonly open: import("@angular/core").WritableSignal<boolean>;
|
|
10
|
+
protected readonly position: import("@angular/core").WritableSignal<{
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
}>;
|
|
14
|
+
constructor(host: ElementRef<HTMLElement>);
|
|
15
|
+
protected onContextMenu: (event: MouseEvent) => void;
|
|
16
|
+
protected closed: () => void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Provider, Type } from "@angular/core";
|
|
2
|
+
import { ControlValueAccessor } from "@angular/forms";
|
|
3
|
+
/** Registers a component as a ControlValueAccessor. */
|
|
4
|
+
export declare const provideVikingCva: (component: Type<unknown>) => Provider;
|
|
5
|
+
/** Shared ControlValueAccessor plumbing for Viking-Material form controls. */
|
|
6
|
+
export declare abstract class VikingControl<T> implements ControlValueAccessor {
|
|
7
|
+
protected onChange: (value: T) => void;
|
|
8
|
+
protected onTouched: () => void;
|
|
9
|
+
/** Disabled state driven by Angular forms (setDisabledState). */
|
|
10
|
+
readonly formDisabled: import("@angular/core").WritableSignal<boolean>;
|
|
11
|
+
abstract writeValue(value: T): void;
|
|
12
|
+
registerOnChange(fn: (value: T) => void): void;
|
|
13
|
+
registerOnTouched(fn: () => void): void;
|
|
14
|
+
setDisabledState(isDisabled: boolean): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ElementRef } from "@angular/core";
|
|
2
|
+
import { VikingControl } from "../core/cva";
|
|
3
|
+
/**
|
|
4
|
+
* viking-date-picker — input + calendar popover.
|
|
5
|
+
* Value is an ISO date string (YYYY-MM-DD). ControlValueAccessor-compatible.
|
|
6
|
+
*/
|
|
7
|
+
export declare class VikingDatePicker extends VikingControl<string | null> {
|
|
8
|
+
private readonly host;
|
|
9
|
+
readonly value: import("@angular/core").ModelSignal<string>;
|
|
10
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
11
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
12
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
13
|
+
protected readonly open: import("@angular/core").WritableSignal<boolean>;
|
|
14
|
+
constructor(host: ElementRef<HTMLElement>);
|
|
15
|
+
writeValue(value: string | null): void;
|
|
16
|
+
protected pick: (iso: string | null) => void;
|
|
17
|
+
protected onDocumentClick: (event: Event) => void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ElementRef } from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* viking-dropdown — expandable menu.
|
|
4
|
+
* Project the trigger with `vikingTrigger`; fill the menu with viking-menu-item.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VikingDropdown {
|
|
7
|
+
private readonly host;
|
|
8
|
+
readonly open: import("@angular/core").ModelSignal<boolean>;
|
|
9
|
+
readonly align: import("@angular/core").InputSignal<"end" | "start">;
|
|
10
|
+
constructor(host: ElementRef<HTMLElement>);
|
|
11
|
+
/** Closes the menu; called by viking-menu-item on selection. */
|
|
12
|
+
readonly close: () => void;
|
|
13
|
+
/** Toggles when the (focusable, projected) trigger is activated. */
|
|
14
|
+
protected onHostClick: (event: Event) => void;
|
|
15
|
+
protected onDocumentClick: (event: Event) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* viking-menu-item — action row inside viking-dropdown / viking-context menus.
|
|
19
|
+
*/
|
|
20
|
+
export declare class VikingMenuItem {
|
|
21
|
+
private readonly dropdown;
|
|
22
|
+
constructor(dropdown: VikingDropdown | null);
|
|
23
|
+
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">;
|
|
24
|
+
readonly kbd: import("@angular/core").InputSignal<string>;
|
|
25
|
+
readonly danger: import("@angular/core").InputSignal<boolean>;
|
|
26
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
27
|
+
readonly selected: import("@angular/core").OutputEmitterRef<MouseEvent>;
|
|
28
|
+
protected select: (event: MouseEvent) => void;
|
|
29
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ElementRef } from "@angular/core";
|
|
2
|
+
import { VikingControl } from "../core/cva";
|
|
3
|
+
import { VikingIconName } from "../../core/icons";
|
|
4
|
+
interface EditorAction {
|
|
5
|
+
icon: VikingIconName;
|
|
6
|
+
command: string;
|
|
7
|
+
label: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* viking-editor — lightweight rich text editor.
|
|
11
|
+
* Zero-dependency contenteditable with a formatting toolbar.
|
|
12
|
+
* Value is HTML. ControlValueAccessor-compatible.
|
|
13
|
+
*/
|
|
14
|
+
export declare class VikingEditor extends VikingControl<string> {
|
|
15
|
+
private readonly surface;
|
|
16
|
+
private readonly document;
|
|
17
|
+
readonly value: import("@angular/core").ModelSignal<string>;
|
|
18
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
19
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
20
|
+
protected readonly actions: EditorAction[];
|
|
21
|
+
constructor(elementRef: ElementRef<HTMLElement>);
|
|
22
|
+
writeValue(value: string): void;
|
|
23
|
+
protected exec: (command: string) => void;
|
|
24
|
+
protected onInput: () => void;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* viking-empty-state — reusable empty / zero-data placeholder.
|
|
3
|
+
*/
|
|
4
|
+
export declare class VikingEmptyState {
|
|
5
|
+
readonly heading: import("@angular/core").InputSignal<string>;
|
|
6
|
+
readonly description: import("@angular/core").InputSignal<string>;
|
|
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 iconSize: import("@angular/core").InputSignal<number>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* viking-fab — floating action button (fixed bottom-right).
|
|
3
|
+
*/
|
|
4
|
+
export declare class VikingFab {
|
|
5
|
+
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">;
|
|
6
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
7
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
8
|
+
readonly pressed: import("@angular/core").OutputEmitterRef<MouseEvent>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* viking-field — label / description / error wrapper for any control
|
|
3
|
+
*.
|
|
4
|
+
* The projected control is associated with the label by wrapping.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VikingField {
|
|
7
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
8
|
+
readonly description: import("@angular/core").InputSignal<string>;
|
|
9
|
+
readonly error: import("@angular/core").InputSignal<string>;
|
|
10
|
+
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
11
|
+
protected readonly descriptionId: string;
|
|
12
|
+
protected readonly errorId: string;
|
|
13
|
+
protected readonly labelId: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* viking-file-upload — drag & drop file zone.
|
|
3
|
+
*/
|
|
4
|
+
export declare class VikingFileUpload {
|
|
5
|
+
readonly heading: import("@angular/core").InputSignal<string>;
|
|
6
|
+
readonly hint: import("@angular/core").InputSignal<string>;
|
|
7
|
+
readonly accept: import("@angular/core").InputSignal<string>;
|
|
8
|
+
readonly multiple: import("@angular/core").InputSignal<boolean>;
|
|
9
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
10
|
+
readonly filesChanged: import("@angular/core").OutputEmitterRef<File[]>;
|
|
11
|
+
protected readonly dragOver: import("@angular/core").WritableSignal<boolean>;
|
|
12
|
+
protected readonly fileList: import("@angular/core").WritableSignal<File[]>;
|
|
13
|
+
protected onDragOver: (event: DragEvent) => void;
|
|
14
|
+
protected onDrop: (event: DragEvent) => void;
|
|
15
|
+
protected onSelect: (event: Event) => void;
|
|
16
|
+
protected removeFile: (file: File) => void;
|
|
17
|
+
protected formatSize: (bytes: number) => string;
|
|
18
|
+
private addFiles;
|
|
19
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type VikingFormSectionLayout = "inline" | "stack" | "status";
|
|
2
|
+
/**
|
|
3
|
+
* viking-form-panel — groups related form sections inside a card without nested outlines.
|
|
4
|
+
*/
|
|
5
|
+
export declare class VikingFormPanel {
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* viking-form-section — standard dashboard form row: heading, fields, and actions.
|
|
9
|
+
* Use inside viking-form-panel (or a card body) to avoid nested bordered sub-forms.
|
|
10
|
+
*/
|
|
11
|
+
export declare class VikingFormSection {
|
|
12
|
+
readonly heading: import("@angular/core").InputSignal<string>;
|
|
13
|
+
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">;
|
|
14
|
+
readonly layout: import("@angular/core").InputSignal<VikingFormSectionLayout>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** viking-gauge-arc — semicircle gauge fill driven by value / max. */
|
|
2
|
+
export declare class VikingGaugeArc {
|
|
3
|
+
readonly value: import("@angular/core").InputSignal<number>;
|
|
4
|
+
readonly max: import("@angular/core").InputSignal<number>;
|
|
5
|
+
readonly circumference: import("@angular/core").InputSignal<number>;
|
|
6
|
+
readonly tone: import("@angular/core").InputSignal<"accent" | "danger" | "primary" | "amber">;
|
|
7
|
+
protected readonly strokeDasharray: import("@angular/core").Signal<string>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** viking-hud-panel — bordered dashboard panel with icon header. */
|
|
2
|
+
export declare class VikingHudPanel {
|
|
3
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
4
|
+
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">;
|
|
5
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { DomSanitizer, SafeHtml } from "@angular/platform-browser";
|
|
2
|
+
import { VikingIconSizePreset, VikingIconVariant } from "../../core/icons";
|
|
3
|
+
/**
|
|
4
|
+
* viking-icon — themeable inline SVG icon (Lucide-sourced registry + DEML brand marks).
|
|
5
|
+
* Zero runtime dependencies; paths are inlined at build time from Lucide.
|
|
6
|
+
*
|
|
7
|
+
* @example Outline with semantic color
|
|
8
|
+
* ```html
|
|
9
|
+
* <viking-icon name="search" sizePreset="md" color="accent" />
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @example Brand mark (outline)
|
|
13
|
+
* ```html
|
|
14
|
+
* <viking-icon name="drakkar" [size]="28" color="accent" />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare class VikingIcon {
|
|
18
|
+
private readonly sanitizer;
|
|
19
|
+
readonly name: import("@angular/core").InputSignal<string>;
|
|
20
|
+
/** Explicit pixel size — overridden by sizePreset when set. */
|
|
21
|
+
readonly size: import("@angular/core").InputSignal<number>;
|
|
22
|
+
/** sm (16px) · md (20px) · lg (24px) */
|
|
23
|
+
readonly sizePreset: import("@angular/core").InputSignal<VikingIconSizePreset>;
|
|
24
|
+
/** outline (stroke) or filled (solid) */
|
|
25
|
+
readonly variant: import("@angular/core").InputSignal<VikingIconVariant>;
|
|
26
|
+
/** Semantic token (accent, success, …) or any CSS color value. */
|
|
27
|
+
readonly color: import("@angular/core").InputSignal<string>;
|
|
28
|
+
/** Renders icon inside a padded tokenized backdrop (matches viking-icon-badge). */
|
|
29
|
+
readonly backdrop: import("@angular/core").InputSignal<boolean>;
|
|
30
|
+
readonly backdropTone: import("@angular/core").InputSignal<"success" | "warning" | "danger" | "info" | "default">;
|
|
31
|
+
readonly spin: import("@angular/core").InputSignal<boolean>;
|
|
32
|
+
protected readonly resolvedName: 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">;
|
|
33
|
+
protected readonly resolvedSize: import("@angular/core").Signal<number>;
|
|
34
|
+
protected readonly resolvedColor: import("@angular/core").Signal<string>;
|
|
35
|
+
protected readonly viewBox: import("@angular/core").Signal<string>;
|
|
36
|
+
protected readonly isFilled: import("@angular/core").Signal<boolean>;
|
|
37
|
+
protected readonly isDrakkarBrand: import("@angular/core").Signal<boolean>;
|
|
38
|
+
protected readonly isIntegrationBrand: import("@angular/core").Signal<boolean>;
|
|
39
|
+
protected readonly integrationBrandSvg: import("@angular/core").Signal<SafeHtml>;
|
|
40
|
+
protected readonly paths: import("@angular/core").Signal<SafeHtml>;
|
|
41
|
+
constructor(sanitizer: DomSanitizer);
|
|
42
|
+
}
|
|
43
|
+
/** Alias for consumers expecting VikingIconComponent. */
|
|
44
|
+
export { VikingIcon as VikingIconComponent };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { VikingIconSizePreset } from "../../core/icons";
|
|
2
|
+
export type VikingIconBadgeTone = "default" | "success" | "warning" | "danger" | "info";
|
|
3
|
+
/**
|
|
4
|
+
* viking-icon-badge — consistent icon backdrop for empty states, callouts, and metric headers.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VikingIconBadge {
|
|
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 size: import("@angular/core").InputSignal<number>;
|
|
10
|
+
readonly sizePreset: import("@angular/core").InputSignal<VikingIconSizePreset>;
|
|
11
|
+
readonly color: import("@angular/core").InputSignal<string>;
|
|
12
|
+
readonly variant: import("@angular/core").InputSignal<"outline" | "filled">;
|
|
13
|
+
readonly decorative: import("@angular/core").InputSignal<boolean>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* viking-icon-heading — icon + title row with shared vertical alignment.
|
|
3
|
+
* Use in bento cards, integration tiles, and docs panels.
|
|
4
|
+
*/
|
|
5
|
+
export declare class VikingIconHeading {
|
|
6
|
+
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">;
|
|
7
|
+
readonly size: import("@angular/core").InputSignal<"md" | "lg">;
|
|
8
|
+
readonly headingLevel: import("@angular/core").InputSignal<"h2" | "h3">;
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { VikingTone } from "../../core/types";
|
|
2
|
+
/**
|
|
3
|
+
* viking-icon-text — icon aligned beside a title and optional description.
|
|
4
|
+
* Use for status rows (MFA enrolled, connected accounts, subscription state).
|
|
5
|
+
*/
|
|
6
|
+
export declare class VikingIconText {
|
|
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 title: import("@angular/core").InputSignal<string>;
|
|
9
|
+
readonly description: import("@angular/core").InputSignal<string>;
|
|
10
|
+
readonly tone: import("@angular/core").InputSignal<VikingTone>;
|
|
11
|
+
readonly iconSize: import("@angular/core").InputSignal<number>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { VikingControl } from "../core/cva";
|
|
2
|
+
/**
|
|
3
|
+
* viking-input — thin Angular wrapper around `viking-input-wc`.
|
|
4
|
+
* ControlValueAccessor-compatible.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VikingInput extends VikingControl<string> {
|
|
7
|
+
readonly value: import("@angular/core").ModelSignal<string>;
|
|
8
|
+
readonly type: import("@angular/core").InputSignal<string>;
|
|
9
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
10
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
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 kbd: import("@angular/core").InputSignal<string>;
|
|
14
|
+
readonly clearable: import("@angular/core").InputSignal<boolean>;
|
|
15
|
+
readonly loading: import("@angular/core").InputSignal<boolean>;
|
|
16
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
17
|
+
readonly autocomplete: import("@angular/core").InputSignal<string>;
|
|
18
|
+
readonly cleared: import("@angular/core").OutputEmitterRef<void>;
|
|
19
|
+
protected isDisabled: () => boolean;
|
|
20
|
+
writeValue(value: string): void;
|
|
21
|
+
protected onWcInput: (event: Event) => void;
|
|
22
|
+
protected clear: () => void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { VikingKanbanCard, VikingKanbanColumn, VikingKanbanMove } from "../../core/types";
|
|
2
|
+
/**
|
|
3
|
+
* viking-kanban — drag & drop board.
|
|
4
|
+
* Native HTML5 drag and drop; emits `moved` and updates the `columns` model.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VikingKanban {
|
|
7
|
+
readonly columns: import("@angular/core").ModelSignal<VikingKanbanColumn[]>;
|
|
8
|
+
readonly moved: import("@angular/core").OutputEmitterRef<VikingKanbanMove>;
|
|
9
|
+
protected readonly draggingId: import("@angular/core").WritableSignal<string>;
|
|
10
|
+
protected readonly dropColumnId: import("@angular/core").WritableSignal<string>;
|
|
11
|
+
private dragSource;
|
|
12
|
+
protected onDragStart: (card: VikingKanbanCard, columnId: string) => void;
|
|
13
|
+
protected onDragOver: (event: DragEvent, columnId: string) => void;
|
|
14
|
+
protected onDrop: (event: DragEvent, toColumnId: string) => void;
|
|
15
|
+
protected resetDrag: () => void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* viking-loading-overlay — blocks interaction with a centered spinner.
|
|
3
|
+
* Use on cards, panels, or full-page surfaces during async operations.
|
|
4
|
+
*/
|
|
5
|
+
export declare class VikingLoadingOverlay {
|
|
6
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
7
|
+
readonly message: import("@angular/core").InputSignal<string>;
|
|
8
|
+
readonly spinnerSize: import("@angular/core").InputSignal<number>;
|
|
9
|
+
readonly full: import("@angular/core").InputSignal<boolean>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** viking-metric-row — responsive grid row for HUD metric cards. */
|
|
2
|
+
export declare class VikingMetricRow {
|
|
3
|
+
}
|
|
4
|
+
/** viking-metric-card — single KPI tile in a metric row. */
|
|
5
|
+
export declare class VikingMetricCard {
|
|
6
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
7
|
+
readonly value: import("@angular/core").InputSignal<string | number>;
|
|
8
|
+
readonly variant: import("@angular/core").InputSignal<"warning" | "default" | "critical">;
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ElementRef } from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* viking-modal — dialog built on the native <dialog> element
|
|
4
|
+
*. Toggle via the `open` model.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VikingModal {
|
|
7
|
+
private readonly dialogRef;
|
|
8
|
+
readonly open: import("@angular/core").ModelSignal<boolean>;
|
|
9
|
+
readonly heading: import("@angular/core").InputSignal<string>;
|
|
10
|
+
readonly dismissible: import("@angular/core").InputSignal<boolean>;
|
|
11
|
+
constructor(host: ElementRef<HTMLElement>);
|
|
12
|
+
protected onBackdropClick: (event: MouseEvent) => void;
|
|
13
|
+
}
|