@vadem/ui 0.0.0-stage → 0.0.1
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-lucide.txt +43 -0
- package/README.md +19 -2
- package/fesm2022/vadem-ui-accordion.mjs +139 -0
- package/fesm2022/vadem-ui-accordion.mjs.map +1 -0
- package/fesm2022/vadem-ui-active-filters.mjs +355 -0
- package/fesm2022/vadem-ui-active-filters.mjs.map +1 -0
- package/fesm2022/vadem-ui-alert-dialog.mjs +433 -0
- package/fesm2022/vadem-ui-alert-dialog.mjs.map +1 -0
- package/fesm2022/vadem-ui-alert.mjs +266 -0
- package/fesm2022/vadem-ui-alert.mjs.map +1 -0
- package/fesm2022/vadem-ui-autocomplete.mjs +715 -0
- package/fesm2022/vadem-ui-autocomplete.mjs.map +1 -0
- package/fesm2022/vadem-ui-avatar.mjs +219 -0
- package/fesm2022/vadem-ui-avatar.mjs.map +1 -0
- package/fesm2022/vadem-ui-badge.mjs +86 -0
- package/fesm2022/vadem-ui-badge.mjs.map +1 -0
- package/fesm2022/vadem-ui-breadcrumbs.mjs +61 -0
- package/fesm2022/vadem-ui-breadcrumbs.mjs.map +1 -0
- package/fesm2022/vadem-ui-button.mjs +220 -0
- package/fesm2022/vadem-ui-button.mjs.map +1 -0
- package/fesm2022/vadem-ui-calendar.mjs +1314 -0
- package/fesm2022/vadem-ui-calendar.mjs.map +1 -0
- package/fesm2022/vadem-ui-card.mjs +271 -0
- package/fesm2022/vadem-ui-card.mjs.map +1 -0
- package/fesm2022/vadem-ui-character-count.mjs +269 -0
- package/fesm2022/vadem-ui-character-count.mjs.map +1 -0
- package/fesm2022/vadem-ui-chart.mjs +1984 -0
- package/fesm2022/vadem-ui-chart.mjs.map +1 -0
- package/fesm2022/vadem-ui-checkbox.mjs +67 -0
- package/fesm2022/vadem-ui-checkbox.mjs.map +1 -0
- package/fesm2022/vadem-ui-color-picker.mjs +815 -0
- package/fesm2022/vadem-ui-color-picker.mjs.map +1 -0
- package/fesm2022/vadem-ui-command.mjs +735 -0
- package/fesm2022/vadem-ui-command.mjs.map +1 -0
- package/fesm2022/vadem-ui-copy-button.mjs +375 -0
- package/fesm2022/vadem-ui-copy-button.mjs.map +1 -0
- package/fesm2022/vadem-ui-date-range-picker.mjs +1011 -0
- package/fesm2022/vadem-ui-date-range-picker.mjs.map +1 -0
- package/fesm2022/vadem-ui-description-list.mjs +59 -0
- package/fesm2022/vadem-ui-description-list.mjs.map +1 -0
- package/fesm2022/vadem-ui-dialog.mjs +587 -0
- package/fesm2022/vadem-ui-dialog.mjs.map +1 -0
- package/fesm2022/vadem-ui-dropzone.mjs +176 -0
- package/fesm2022/vadem-ui-dropzone.mjs.map +1 -0
- package/fesm2022/vadem-ui-editable-text.mjs +641 -0
- package/fesm2022/vadem-ui-editable-text.mjs.map +1 -0
- package/fesm2022/vadem-ui-empty-state.mjs +175 -0
- package/fesm2022/vadem-ui-empty-state.mjs.map +1 -0
- package/fesm2022/vadem-ui-expandable-text.mjs +244 -0
- package/fesm2022/vadem-ui-expandable-text.mjs.map +1 -0
- package/fesm2022/vadem-ui-field.mjs +583 -0
- package/fesm2022/vadem-ui-field.mjs.map +1 -0
- package/fesm2022/vadem-ui-file-preview.mjs +532 -0
- package/fesm2022/vadem-ui-file-preview.mjs.map +1 -0
- package/fesm2022/vadem-ui-file-size.mjs +83 -0
- package/fesm2022/vadem-ui-file-size.mjs.map +1 -0
- package/fesm2022/vadem-ui-form-error-summary.mjs +201 -0
- package/fesm2022/vadem-ui-form-error-summary.mjs.map +1 -0
- package/fesm2022/vadem-ui-icon.mjs +303 -0
- package/fesm2022/vadem-ui-icon.mjs.map +1 -0
- package/fesm2022/vadem-ui-input.mjs +120 -0
- package/fesm2022/vadem-ui-input.mjs.map +1 -0
- package/fesm2022/vadem-ui-kbd.mjs +286 -0
- package/fesm2022/vadem-ui-kbd.mjs.map +1 -0
- package/fesm2022/vadem-ui-keyboard.mjs +105 -0
- package/fesm2022/vadem-ui-keyboard.mjs.map +1 -0
- package/fesm2022/vadem-ui-locale.mjs +443 -0
- package/fesm2022/vadem-ui-locale.mjs.map +1 -0
- package/fesm2022/vadem-ui-menu.mjs +637 -0
- package/fesm2022/vadem-ui-menu.mjs.map +1 -0
- package/fesm2022/vadem-ui-navigation-list.mjs +130 -0
- package/fesm2022/vadem-ui-navigation-list.mjs.map +1 -0
- package/fesm2022/vadem-ui-number-input.mjs +264 -0
- package/fesm2022/vadem-ui-number-input.mjs.map +1 -0
- package/fesm2022/vadem-ui-otp-input.mjs +86 -0
- package/fesm2022/vadem-ui-otp-input.mjs.map +1 -0
- package/fesm2022/vadem-ui-pagination.mjs +353 -0
- package/fesm2022/vadem-ui-pagination.mjs.map +1 -0
- package/fesm2022/vadem-ui-password-input.mjs +213 -0
- package/fesm2022/vadem-ui-password-input.mjs.map +1 -0
- package/fesm2022/vadem-ui-popover.mjs +178 -0
- package/fesm2022/vadem-ui-popover.mjs.map +1 -0
- package/fesm2022/vadem-ui-progress.mjs +331 -0
- package/fesm2022/vadem-ui-progress.mjs.map +1 -0
- package/fesm2022/vadem-ui-radio.mjs +39 -0
- package/fesm2022/vadem-ui-radio.mjs.map +1 -0
- package/fesm2022/vadem-ui-range-slider.mjs +561 -0
- package/fesm2022/vadem-ui-range-slider.mjs.map +1 -0
- package/fesm2022/vadem-ui-rating.mjs +404 -0
- package/fesm2022/vadem-ui-rating.mjs.map +1 -0
- package/fesm2022/vadem-ui-relative-time.mjs +217 -0
- package/fesm2022/vadem-ui-relative-time.mjs.map +1 -0
- package/fesm2022/vadem-ui-reorder-list.mjs +601 -0
- package/fesm2022/vadem-ui-reorder-list.mjs.map +1 -0
- package/fesm2022/vadem-ui-scroll-area.mjs +65 -0
- package/fesm2022/vadem-ui-scroll-area.mjs.map +1 -0
- package/fesm2022/vadem-ui-search-input.mjs +307 -0
- package/fesm2022/vadem-ui-search-input.mjs.map +1 -0
- package/fesm2022/vadem-ui-segmented.mjs +297 -0
- package/fesm2022/vadem-ui-segmented.mjs.map +1 -0
- package/fesm2022/vadem-ui-select.mjs +1462 -0
- package/fesm2022/vadem-ui-select.mjs.map +1 -0
- package/fesm2022/vadem-ui-sidebar.mjs +493 -0
- package/fesm2022/vadem-ui-sidebar.mjs.map +1 -0
- package/fesm2022/vadem-ui-skeleton.mjs +106 -0
- package/fesm2022/vadem-ui-skeleton.mjs.map +1 -0
- package/fesm2022/vadem-ui-slider.mjs +60 -0
- package/fesm2022/vadem-ui-slider.mjs.map +1 -0
- package/fesm2022/vadem-ui-splitter.mjs +438 -0
- package/fesm2022/vadem-ui-splitter.mjs.map +1 -0
- package/fesm2022/vadem-ui-stat.mjs +369 -0
- package/fesm2022/vadem-ui-stat.mjs.map +1 -0
- package/fesm2022/vadem-ui-stepper.mjs +483 -0
- package/fesm2022/vadem-ui-stepper.mjs.map +1 -0
- package/fesm2022/vadem-ui-switch.mjs +45 -0
- package/fesm2022/vadem-ui-switch.mjs.map +1 -0
- package/fesm2022/vadem-ui-table.mjs +593 -0
- package/fesm2022/vadem-ui-table.mjs.map +1 -0
- package/fesm2022/vadem-ui-tabs.mjs +405 -0
- package/fesm2022/vadem-ui-tabs.mjs.map +1 -0
- package/fesm2022/vadem-ui-tag-input.mjs +685 -0
- package/fesm2022/vadem-ui-tag-input.mjs.map +1 -0
- package/fesm2022/vadem-ui-text-highlight.mjs +126 -0
- package/fesm2022/vadem-ui-text-highlight.mjs.map +1 -0
- package/fesm2022/vadem-ui-time-input.mjs +430 -0
- package/fesm2022/vadem-ui-time-input.mjs.map +1 -0
- package/fesm2022/vadem-ui-timeline.mjs +313 -0
- package/fesm2022/vadem-ui-timeline.mjs.map +1 -0
- package/fesm2022/vadem-ui-toast.mjs +397 -0
- package/fesm2022/vadem-ui-toast.mjs.map +1 -0
- package/fesm2022/vadem-ui-toolbar.mjs +396 -0
- package/fesm2022/vadem-ui-toolbar.mjs.map +1 -0
- package/fesm2022/vadem-ui-tooltip.mjs +218 -0
- package/fesm2022/vadem-ui-tooltip.mjs.map +1 -0
- package/fesm2022/vadem-ui-tree.mjs +551 -0
- package/fesm2022/vadem-ui-tree.mjs.map +1 -0
- package/fesm2022/vadem-ui-upload-list.mjs +408 -0
- package/fesm2022/vadem-ui-upload-list.mjs.map +1 -0
- package/fesm2022/vadem-ui.mjs +4 -0
- package/fesm2022/vadem-ui.mjs.map +1 -0
- package/fonts/jetbrains-mono/OFL.txt +93 -0
- package/fonts/jetbrains-mono/jetbrains-mono-cyrillic.woff2 +0 -0
- package/fonts/jetbrains-mono/jetbrains-mono-latin.woff2 +0 -0
- package/fonts/manrope/OFL.txt +93 -0
- package/fonts/manrope/manrope-cyrillic.woff2 +0 -0
- package/fonts/manrope/manrope-latin.woff2 +0 -0
- package/package.json +306 -3
- package/styles/base.css +160 -0
- package/styles/components/accordion.css +130 -0
- package/styles/components/active-filters.css +42 -0
- package/styles/components/alert-dialog.css +34 -0
- package/styles/components/alert.css +159 -0
- package/styles/components/autocomplete.css +97 -0
- package/styles/components/avatar.css +90 -0
- package/styles/components/badge.css +91 -0
- package/styles/components/breadcrumbs.css +94 -0
- package/styles/components/button.css +174 -0
- package/styles/components/calendar.css +186 -0
- package/styles/components/card.css +206 -0
- package/styles/components/character-count.css +41 -0
- package/styles/components/chart.css +308 -0
- package/styles/components/checkbox.css +115 -0
- package/styles/components/color-picker.css +158 -0
- package/styles/components/command.css +175 -0
- package/styles/components/copy-button.css +58 -0
- package/styles/components/date-range-picker.css +153 -0
- package/styles/components/description-list.css +69 -0
- package/styles/components/dialog.css +334 -0
- package/styles/components/dropzone.css +89 -0
- package/styles/components/editable-text.css +58 -0
- package/styles/components/empty-state.css +72 -0
- package/styles/components/expandable-text.css +24 -0
- package/styles/components/field.css +148 -0
- package/styles/components/file-preview.css +65 -0
- package/styles/components/form-error-summary.css +71 -0
- package/styles/components/icon.css +38 -0
- package/styles/components/index.css +80 -0
- package/styles/components/input.css +171 -0
- package/styles/components/kbd.css +42 -0
- package/styles/components/menu.css +168 -0
- package/styles/components/multi-select.css +156 -0
- package/styles/components/navigation-list.css +147 -0
- package/styles/components/number-input.css +33 -0
- package/styles/components/otp-input.css +26 -0
- package/styles/components/pagination.css +127 -0
- package/styles/components/password-input.css +20 -0
- package/styles/components/popover.css +93 -0
- package/styles/components/progress-ring.css +112 -0
- package/styles/components/progress.css +162 -0
- package/styles/components/radio.css +117 -0
- package/styles/components/range-slider.css +158 -0
- package/styles/components/rating.css +100 -0
- package/styles/components/reorder-list.css +143 -0
- package/styles/components/scroll-area.css +39 -0
- package/styles/components/search-input.css +25 -0
- package/styles/components/segmented.css +136 -0
- package/styles/components/select.css +257 -0
- package/styles/components/sidebar.css +105 -0
- package/styles/components/skeleton.css +83 -0
- package/styles/components/slider.css +132 -0
- package/styles/components/splitter.css +83 -0
- package/styles/components/stat.css +62 -0
- package/styles/components/stepper.css +236 -0
- package/styles/components/switch.css +107 -0
- package/styles/components/table.css +195 -0
- package/styles/components/tabs.css +198 -0
- package/styles/components/tag-input.css +138 -0
- package/styles/components/text-highlight.css +22 -0
- package/styles/components/time-input.css +96 -0
- package/styles/components/timeline.css +182 -0
- package/styles/components/toast.css +146 -0
- package/styles/components/toolbar.css +72 -0
- package/styles/components/tooltip.css +93 -0
- package/styles/components/tree.css +88 -0
- package/styles/components/upload-list.css +113 -0
- package/styles/fonts.css +67 -0
- package/styles/index.css +14 -0
- package/styles/reset.css +57 -0
- package/styles/tokens/primitives.css +364 -0
- package/styles/tokens/semantic.css +233 -0
- package/types/vadem-ui-accordion.d.ts +43 -0
- package/types/vadem-ui-active-filters.d.ts +73 -0
- package/types/vadem-ui-alert-dialog.d.ts +87 -0
- package/types/vadem-ui-alert.d.ts +64 -0
- package/types/vadem-ui-autocomplete.d.ts +156 -0
- package/types/vadem-ui-avatar.d.ts +59 -0
- package/types/vadem-ui-badge.d.ts +25 -0
- package/types/vadem-ui-breadcrumbs.d.ts +22 -0
- package/types/vadem-ui-button.d.ts +52 -0
- package/types/vadem-ui-calendar.d.ts +327 -0
- package/types/vadem-ui-card.d.ts +58 -0
- package/types/vadem-ui-character-count.d.ts +71 -0
- package/types/vadem-ui-chart.d.ts +452 -0
- package/types/vadem-ui-checkbox.d.ts +20 -0
- package/types/vadem-ui-color-picker.d.ts +171 -0
- package/types/vadem-ui-command.d.ts +145 -0
- package/types/vadem-ui-copy-button.d.ts +90 -0
- package/types/vadem-ui-date-range-picker.d.ts +216 -0
- package/types/vadem-ui-description-list.d.ts +15 -0
- package/types/vadem-ui-dialog.d.ts +174 -0
- package/types/vadem-ui-dropzone.d.ts +73 -0
- package/types/vadem-ui-editable-text.d.ts +141 -0
- package/types/vadem-ui-empty-state.d.ts +34 -0
- package/types/vadem-ui-expandable-text.d.ts +52 -0
- package/types/vadem-ui-field.d.ts +180 -0
- package/types/vadem-ui-file-preview.d.ts +108 -0
- package/types/vadem-ui-file-size.d.ts +18 -0
- package/types/vadem-ui-form-error-summary.d.ts +46 -0
- package/types/vadem-ui-icon.d.ts +152 -0
- package/types/vadem-ui-input.d.ts +31 -0
- package/types/vadem-ui-kbd.d.ts +66 -0
- package/types/vadem-ui-keyboard.d.ts +61 -0
- package/types/vadem-ui-locale.d.ts +241 -0
- package/types/vadem-ui-menu.d.ts +132 -0
- package/types/vadem-ui-navigation-list.d.ts +28 -0
- package/types/vadem-ui-number-input.d.ts +39 -0
- package/types/vadem-ui-otp-input.d.ts +15 -0
- package/types/vadem-ui-pagination.d.ts +96 -0
- package/types/vadem-ui-password-input.d.ts +36 -0
- package/types/vadem-ui-popover.d.ts +48 -0
- package/types/vadem-ui-progress.d.ts +95 -0
- package/types/vadem-ui-radio.d.ts +11 -0
- package/types/vadem-ui-range-slider.d.ts +136 -0
- package/types/vadem-ui-rating.d.ts +95 -0
- package/types/vadem-ui-relative-time.d.ts +58 -0
- package/types/vadem-ui-reorder-list.d.ts +120 -0
- package/types/vadem-ui-scroll-area.d.ts +13 -0
- package/types/vadem-ui-search-input.d.ts +58 -0
- package/types/vadem-ui-segmented.d.ts +76 -0
- package/types/vadem-ui-select.d.ts +303 -0
- package/types/vadem-ui-sidebar.d.ts +70 -0
- package/types/vadem-ui-skeleton.d.ts +28 -0
- package/types/vadem-ui-slider.d.ts +17 -0
- package/types/vadem-ui-splitter.d.ts +99 -0
- package/types/vadem-ui-stat.d.ts +101 -0
- package/types/vadem-ui-stepper.d.ts +108 -0
- package/types/vadem-ui-switch.d.ts +10 -0
- package/types/vadem-ui-table.d.ts +172 -0
- package/types/vadem-ui-tabs.d.ts +101 -0
- package/types/vadem-ui-tag-input.d.ts +170 -0
- package/types/vadem-ui-text-highlight.d.ts +27 -0
- package/types/vadem-ui-time-input.d.ts +47 -0
- package/types/vadem-ui-timeline.d.ts +54 -0
- package/types/vadem-ui-toast.d.ts +104 -0
- package/types/vadem-ui-toolbar.d.ts +80 -0
- package/types/vadem-ui-tooltip.d.ts +71 -0
- package/types/vadem-ui-tree.d.ts +123 -0
- package/types/vadem-ui-upload-list.d.ts +70 -0
- package/types/vadem-ui.d.ts +1 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
type VdAvatarSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
3
|
+
/**
|
|
4
|
+
* A person or team picture with an initials fallback (no image, or it failed to load).
|
|
5
|
+
* Spec: specs/avatar.md
|
|
6
|
+
*/
|
|
7
|
+
export declare class VdAvatar {
|
|
8
|
+
/** Who it is: the accessible name and the source of the initials. */
|
|
9
|
+
readonly name: import("@angular/core").InputSignal<string>;
|
|
10
|
+
readonly src: import("@angular/core").InputSignal<string | undefined>;
|
|
11
|
+
readonly size: import("@angular/core").InputSignal<VdAvatarSize>;
|
|
12
|
+
/** Overrides the computed initials (e.g. "+3" in a group). */
|
|
13
|
+
readonly initials: import("@angular/core").InputSignal<string | undefined>;
|
|
14
|
+
/** Hide from assistive tech when the name is already shown next to the avatar. */
|
|
15
|
+
readonly decorative: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
16
|
+
protected readonly text: import("@angular/core").Signal<string>;
|
|
17
|
+
/** Reset whenever the source changes. */
|
|
18
|
+
protected readonly failed: import("@angular/core").WritableSignal<boolean>;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdAvatar, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VdAvatar, "vd-avatar", never, {
|
|
21
|
+
"name": {
|
|
22
|
+
"alias": "name";
|
|
23
|
+
"required": true;
|
|
24
|
+
"isSignal": true;
|
|
25
|
+
};
|
|
26
|
+
"src": {
|
|
27
|
+
"alias": "src";
|
|
28
|
+
"required": false;
|
|
29
|
+
"isSignal": true;
|
|
30
|
+
};
|
|
31
|
+
"size": {
|
|
32
|
+
"alias": "size";
|
|
33
|
+
"required": false;
|
|
34
|
+
"isSignal": true;
|
|
35
|
+
};
|
|
36
|
+
"initials": {
|
|
37
|
+
"alias": "initials";
|
|
38
|
+
"required": false;
|
|
39
|
+
"isSignal": true;
|
|
40
|
+
};
|
|
41
|
+
"decorative": {
|
|
42
|
+
"alias": "decorative";
|
|
43
|
+
"required": false;
|
|
44
|
+
"isSignal": true;
|
|
45
|
+
};
|
|
46
|
+
}, {}, never, never, true, never>;
|
|
47
|
+
}
|
|
48
|
+
/** Overlapping stack of avatars. */
|
|
49
|
+
export declare class VdAvatarGroup {
|
|
50
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdAvatarGroup, never>;
|
|
51
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdAvatarGroup, "[vdAvatarGroup]", never, {}, {}, never, never, true, never>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Initials for an avatar fallback: the first letter of the first and last word
|
|
55
|
+
* ("Олена Коваленко" -> "ОК", "Prince" -> "P"). Grapheme-safe for surrogate pairs and
|
|
56
|
+
* locale-aware uppercasing; words without letters or digits (dashes, emoji) are skipped.
|
|
57
|
+
*/
|
|
58
|
+
export declare function vdInitials(name: string, locale?: string): string;
|
|
59
|
+
export type { VdAvatarSize };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
type VdBadgeVariant = 'neutral' | 'accent' | 'success' | 'warning' | 'danger' | 'info';
|
|
3
|
+
/**
|
|
4
|
+
* Small status or metadata label in the mono eyebrow style. Not interactive.
|
|
5
|
+
* Spec: specs/badge.md
|
|
6
|
+
*/
|
|
7
|
+
export declare class VdBadge {
|
|
8
|
+
readonly variant: import("@angular/core").InputSignal<VdBadgeVariant>;
|
|
9
|
+
/** Leading status dot in the variant's solid color. */
|
|
10
|
+
readonly dot: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdBadge, never>;
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdBadge, "[vdBadge]", never, {
|
|
13
|
+
"variant": {
|
|
14
|
+
"alias": "variant";
|
|
15
|
+
"required": false;
|
|
16
|
+
"isSignal": true;
|
|
17
|
+
};
|
|
18
|
+
"dot": {
|
|
19
|
+
"alias": "dot";
|
|
20
|
+
"required": false;
|
|
21
|
+
"isSignal": true;
|
|
22
|
+
};
|
|
23
|
+
}, {}, never, never, true, never>;
|
|
24
|
+
}
|
|
25
|
+
export type { VdBadgeVariant };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Breadcrumb trail on a `<nav>` holding an `<ol>` of links; the last item is the current page
|
|
4
|
+
* (`aria-current="page"`, not a link). Separators are drawn in CSS and mirror in RTL.
|
|
5
|
+
* Spec: specs/breadcrumbs.md
|
|
6
|
+
*/
|
|
7
|
+
export declare class VdBreadcrumbs {
|
|
8
|
+
/** Landmark name. */
|
|
9
|
+
readonly label: import("@angular/core").InputSignal<string | undefined>;
|
|
10
|
+
/** Text inputs resolved against the active VD_LOCALE. */
|
|
11
|
+
protected readonly t: import("@angular/core").Signal<Pick<{
|
|
12
|
+
label: string;
|
|
13
|
+
}, "label">>;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdBreadcrumbs, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdBreadcrumbs, "nav[vdBreadcrumbs]", never, {
|
|
16
|
+
"label": {
|
|
17
|
+
"alias": "label";
|
|
18
|
+
"required": false;
|
|
19
|
+
"isSignal": true;
|
|
20
|
+
};
|
|
21
|
+
}, {}, never, never, true, never>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
type VdButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
3
|
+
type VdButtonSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
/**
|
|
5
|
+
* Styles a native `<button>` or `<a>` and adds loading and consistent disabled behavior.
|
|
6
|
+
* Spec: specs/button.md
|
|
7
|
+
*/
|
|
8
|
+
export declare class VdButton {
|
|
9
|
+
readonly variant: import("@angular/core").InputSignal<VdButtonVariant>;
|
|
10
|
+
readonly size: import("@angular/core").InputSignal<VdButtonSize>;
|
|
11
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
12
|
+
readonly loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
13
|
+
readonly iconOnly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
14
|
+
readonly type: import("@angular/core").InputSignal<"button" | "submit" | "reset">;
|
|
15
|
+
private readonly el;
|
|
16
|
+
protected readonly isButton: boolean;
|
|
17
|
+
constructor();
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdButton, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VdButton, "button[vdButton], a[vdButton]", never, {
|
|
20
|
+
"variant": {
|
|
21
|
+
"alias": "variant";
|
|
22
|
+
"required": false;
|
|
23
|
+
"isSignal": true;
|
|
24
|
+
};
|
|
25
|
+
"size": {
|
|
26
|
+
"alias": "size";
|
|
27
|
+
"required": false;
|
|
28
|
+
"isSignal": true;
|
|
29
|
+
};
|
|
30
|
+
"disabled": {
|
|
31
|
+
"alias": "disabled";
|
|
32
|
+
"required": false;
|
|
33
|
+
"isSignal": true;
|
|
34
|
+
};
|
|
35
|
+
"loading": {
|
|
36
|
+
"alias": "loading";
|
|
37
|
+
"required": false;
|
|
38
|
+
"isSignal": true;
|
|
39
|
+
};
|
|
40
|
+
"iconOnly": {
|
|
41
|
+
"alias": "iconOnly";
|
|
42
|
+
"required": false;
|
|
43
|
+
"isSignal": true;
|
|
44
|
+
};
|
|
45
|
+
"type": {
|
|
46
|
+
"alias": "type";
|
|
47
|
+
"required": false;
|
|
48
|
+
"isSignal": true;
|
|
49
|
+
};
|
|
50
|
+
}, {}, never, ["[slot=start]", "*", "[slot=end]"], true, never>;
|
|
51
|
+
}
|
|
52
|
+
export type { VdButtonSize, VdButtonVariant };
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { OnInit, Signal } from "@angular/core";
|
|
3
|
+
import { ControlValueAccessor } from "@angular/forms";
|
|
4
|
+
/**
|
|
5
|
+
* Plain calendar dates as ISO strings ("2026-10-02"): no time, no time zone, so a date never
|
|
6
|
+
* shifts by a day between server, client and DST changes. All math goes through UTC.
|
|
7
|
+
*/
|
|
8
|
+
type VdIsoDate = string;
|
|
9
|
+
/** Parses "YYYY-MM-DD"; null when malformed or not a real date (e.g. 2026-02-30). */
|
|
10
|
+
export declare function vdParseIso(value: string | null | undefined): Date | null;
|
|
11
|
+
export declare function vdToIso(date: Date): VdIsoDate;
|
|
12
|
+
/** Today in the user's local calendar (not UTC). */
|
|
13
|
+
export declare function vdToday(now?: Date): VdIsoDate;
|
|
14
|
+
export declare function vdAddDays(iso: VdIsoDate, days: number): VdIsoDate;
|
|
15
|
+
/** Adds months, clamping the day (Jan 31 + 1 month = Feb 28/29). */
|
|
16
|
+
export declare function vdAddMonths(iso: VdIsoDate, months: number): VdIsoDate;
|
|
17
|
+
/** 0 = Sunday ... 6 = Saturday. */
|
|
18
|
+
declare function vdWeekday(iso: VdIsoDate): number;
|
|
19
|
+
declare function vdStartOfMonth(iso: VdIsoDate): VdIsoDate;
|
|
20
|
+
/** Earlier/later than, as strings compare lexicographically for ISO dates. */
|
|
21
|
+
export declare function vdClampDate(iso: VdIsoDate, min?: VdIsoDate | null, max?: VdIsoDate | null): VdIsoDate;
|
|
22
|
+
interface VdCalendarDay {
|
|
23
|
+
date: VdIsoDate;
|
|
24
|
+
day: number;
|
|
25
|
+
inMonth: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Weeks of the month that contains `month` (any date in it), starting on `firstDay`
|
|
29
|
+
* (0 = Sunday, 1 = Monday...). Always 6 weeks, so the grid height never jumps between months.
|
|
30
|
+
*/
|
|
31
|
+
export declare function vdMonthGrid(month: VdIsoDate, firstDay: number): VdCalendarDay[][];
|
|
32
|
+
/** First day of the week for a locale (0 = Sunday), from Intl when available. */
|
|
33
|
+
export declare function vdFirstDayOfWeek(locale: string): number;
|
|
34
|
+
/** Narrow/short weekday names in grid order. */
|
|
35
|
+
export declare function vdWeekdayNames(locale: string, firstDay: number, width?: 'narrow' | 'short' | 'long'): string[];
|
|
36
|
+
export declare function vdFormatDate(iso: VdIsoDate, locale: string, options: Intl.DateTimeFormatOptions): string;
|
|
37
|
+
/**
|
|
38
|
+
* Order of the numeric parts in the locale's short date ("dd.mm.yyyy" for uk, "mm/dd/yyyy" for
|
|
39
|
+
* en-US), used to parse typed dates and to show a placeholder.
|
|
40
|
+
*/
|
|
41
|
+
export declare function vdDateOrder(locale: string): ('day' | 'month' | 'year')[];
|
|
42
|
+
/**
|
|
43
|
+
* Parses a typed date: ISO ("2026-10-02") or three numbers in the locale's order with any
|
|
44
|
+
* separators ("2.10.2026", "02/10/26"). Two-digit years map to 2000-2099. Null when invalid.
|
|
45
|
+
*/
|
|
46
|
+
export declare function vdParseDate(text: string, locale: string): VdIsoDate | null;
|
|
47
|
+
/** Numeric short format used in the text field ("02.10.2026" for uk). */
|
|
48
|
+
export declare function vdFormatShort(iso: VdIsoDate, locale: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* APG date-grid keys. Returns the date focus should move to, or null for keys the grid ignores.
|
|
51
|
+
* Arrows move by day/week (mirrored when `rtl`), Home/End to the week start/end, PageUp/Down
|
|
52
|
+
* by month, Shift+PageUp/Down by year.
|
|
53
|
+
*/
|
|
54
|
+
export declare function vdCalendarKey(key: string, current: VdIsoDate, options: {
|
|
55
|
+
firstDay: number;
|
|
56
|
+
rtl?: boolean;
|
|
57
|
+
shift?: boolean;
|
|
58
|
+
}): VdIsoDate | null;
|
|
59
|
+
/**
|
|
60
|
+
* Month grid for picking one date (APG date picker grid). Arrows, Home/End, PageUp/PageDown
|
|
61
|
+
* (Shift: by year), Enter/Space to choose. Value is an ISO date string. Spec: specs/calendar.md
|
|
62
|
+
*/
|
|
63
|
+
export declare class VdCalendar {
|
|
64
|
+
/** Selected date, "YYYY-MM-DD" (two-way). */
|
|
65
|
+
readonly value: import("@angular/core").ModelSignal<string | null>;
|
|
66
|
+
readonly selectionMode: import("@angular/core").InputSignal<"single" | "range">;
|
|
67
|
+
readonly rangeStart: import("@angular/core").InputSignal<string | null>;
|
|
68
|
+
readonly rangeEnd: import("@angular/core").InputSignal<string | null>;
|
|
69
|
+
/** Every explicit available date activation, including repeated same-day choices. */
|
|
70
|
+
readonly dateSelected: import("@angular/core").OutputEmitterRef<string>;
|
|
71
|
+
readonly min: import("@angular/core").InputSignal<string | null>;
|
|
72
|
+
readonly max: import("@angular/core").InputSignal<string | null>;
|
|
73
|
+
/** Extra rule for unavailable dates (weekends, booked days...). */
|
|
74
|
+
readonly dateDisabled: import("@angular/core").InputSignal<(date: VdIsoDate) => boolean>;
|
|
75
|
+
/** BCP 47 locale for names, week start and labels. Defaults to the app's LOCALE_ID. */
|
|
76
|
+
readonly locale: import("@angular/core").InputSignal<string>;
|
|
77
|
+
/** 0 = Sunday ... 6 = Saturday. Defaults to the locale's week start. */
|
|
78
|
+
readonly firstDayOfWeek: import("@angular/core").InputSignal<number | undefined>;
|
|
79
|
+
readonly previousLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
80
|
+
readonly nextLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
81
|
+
/** Text inputs resolved against the active VD_LOCALE. */
|
|
82
|
+
protected readonly t: import("@angular/core").Signal<Pick<{
|
|
83
|
+
previousLabel: string;
|
|
84
|
+
nextLabel: string;
|
|
85
|
+
}, "previousLabel" | "nextLabel">>;
|
|
86
|
+
protected readonly today: string;
|
|
87
|
+
protected readonly titleId: string;
|
|
88
|
+
private readonly el;
|
|
89
|
+
private readonly initialDate;
|
|
90
|
+
/** The date that has (or would get) keyboard focus. */
|
|
91
|
+
readonly focused: import("@angular/core").WritableSignal<string>;
|
|
92
|
+
private readonly displayed;
|
|
93
|
+
/** Set when the keyboard moved focus, so the grid moves DOM focus after rendering. */
|
|
94
|
+
private readonly focusRequested;
|
|
95
|
+
protected readonly firstDay: import("@angular/core").Signal<number>;
|
|
96
|
+
protected readonly grid: import("@angular/core").Signal<VdCalendarDay[][]>;
|
|
97
|
+
/** Short names, or narrow ones where "short" is a whole word (e.g. Arabic). */
|
|
98
|
+
protected readonly weekdays: import("@angular/core").Signal<string[]>;
|
|
99
|
+
private readonly numbers;
|
|
100
|
+
protected readonly weekdaysLong: import("@angular/core").Signal<string[]>;
|
|
101
|
+
protected readonly title: import("@angular/core").Signal<string>;
|
|
102
|
+
protected readonly canGoBack: import("@angular/core").Signal<boolean>;
|
|
103
|
+
protected readonly canGoForward: import("@angular/core").Signal<boolean>;
|
|
104
|
+
constructor();
|
|
105
|
+
/** Moves DOM focus to the focused date (e.g. when a date picker opens). */
|
|
106
|
+
focus(): void;
|
|
107
|
+
isSelected(date: VdIsoDate): boolean;
|
|
108
|
+
isDisabled(date: VdIsoDate): boolean;
|
|
109
|
+
/** The date itself if available, else the closest available one (forward first, within a year). */
|
|
110
|
+
private nearestAvailable;
|
|
111
|
+
protected dayLabel(day: VdCalendarDay): string;
|
|
112
|
+
protected onDayFocus(date: VdIsoDate, event: FocusEvent): void;
|
|
113
|
+
protected choose(date: VdIsoDate): void;
|
|
114
|
+
protected shiftMonth(months: number): void;
|
|
115
|
+
protected onKey(event: KeyboardEvent): void;
|
|
116
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdCalendar, never>;
|
|
117
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VdCalendar, "vd-calendar", never, {
|
|
118
|
+
"value": {
|
|
119
|
+
"alias": "value";
|
|
120
|
+
"required": false;
|
|
121
|
+
"isSignal": true;
|
|
122
|
+
};
|
|
123
|
+
"selectionMode": {
|
|
124
|
+
"alias": "selectionMode";
|
|
125
|
+
"required": false;
|
|
126
|
+
"isSignal": true;
|
|
127
|
+
};
|
|
128
|
+
"rangeStart": {
|
|
129
|
+
"alias": "rangeStart";
|
|
130
|
+
"required": false;
|
|
131
|
+
"isSignal": true;
|
|
132
|
+
};
|
|
133
|
+
"rangeEnd": {
|
|
134
|
+
"alias": "rangeEnd";
|
|
135
|
+
"required": false;
|
|
136
|
+
"isSignal": true;
|
|
137
|
+
};
|
|
138
|
+
"min": {
|
|
139
|
+
"alias": "min";
|
|
140
|
+
"required": false;
|
|
141
|
+
"isSignal": true;
|
|
142
|
+
};
|
|
143
|
+
"max": {
|
|
144
|
+
"alias": "max";
|
|
145
|
+
"required": false;
|
|
146
|
+
"isSignal": true;
|
|
147
|
+
};
|
|
148
|
+
"dateDisabled": {
|
|
149
|
+
"alias": "dateDisabled";
|
|
150
|
+
"required": false;
|
|
151
|
+
"isSignal": true;
|
|
152
|
+
};
|
|
153
|
+
"locale": {
|
|
154
|
+
"alias": "locale";
|
|
155
|
+
"required": false;
|
|
156
|
+
"isSignal": true;
|
|
157
|
+
};
|
|
158
|
+
"firstDayOfWeek": {
|
|
159
|
+
"alias": "firstDayOfWeek";
|
|
160
|
+
"required": false;
|
|
161
|
+
"isSignal": true;
|
|
162
|
+
};
|
|
163
|
+
"previousLabel": {
|
|
164
|
+
"alias": "previousLabel";
|
|
165
|
+
"required": false;
|
|
166
|
+
"isSignal": true;
|
|
167
|
+
};
|
|
168
|
+
"nextLabel": {
|
|
169
|
+
"alias": "nextLabel";
|
|
170
|
+
"required": false;
|
|
171
|
+
"isSignal": true;
|
|
172
|
+
};
|
|
173
|
+
}, {
|
|
174
|
+
"value": "valueChange";
|
|
175
|
+
"dateSelected": "dateSelected";
|
|
176
|
+
}, never, never, true, never>;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Date field: type a date in the locale's numeric format or pick it from a calendar popover
|
|
180
|
+
* (APG date picker dialog). Value is an ISO date string; works with forms and `vd-field`.
|
|
181
|
+
* Spec: specs/calendar.md
|
|
182
|
+
*/
|
|
183
|
+
export declare class VdDatePicker implements ControlValueAccessor, OnInit {
|
|
184
|
+
readonly value: import("@angular/core").ModelSignal<string | null>;
|
|
185
|
+
readonly min: import("@angular/core").InputSignal<string | null>;
|
|
186
|
+
readonly max: import("@angular/core").InputSignal<string | null>;
|
|
187
|
+
readonly dateDisabled: import("@angular/core").InputSignal<(date: VdIsoDate) => boolean>;
|
|
188
|
+
readonly locale: import("@angular/core").InputSignal<string>;
|
|
189
|
+
readonly firstDayOfWeek: import("@angular/core").InputSignal<number | undefined>;
|
|
190
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
191
|
+
readonly invalid: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
192
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
193
|
+
/** Defaults to an example date in the locale's format ("31.12.2026"). */
|
|
194
|
+
readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
|
|
195
|
+
/** Name of the text field when there is no `vd-field` label. */
|
|
196
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
197
|
+
readonly openLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
198
|
+
readonly dialogLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
199
|
+
readonly previousLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
200
|
+
readonly nextLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
201
|
+
/** Text inputs resolved against the active VD_LOCALE. */
|
|
202
|
+
protected readonly t: Signal<Pick<{
|
|
203
|
+
openLabel: string;
|
|
204
|
+
dialogLabel: string;
|
|
205
|
+
previousLabel: string;
|
|
206
|
+
nextLabel: string;
|
|
207
|
+
}, "previousLabel" | "nextLabel" | "openLabel" | "dialogLabel">>;
|
|
208
|
+
protected readonly open: import("@angular/core").WritableSignal<boolean>;
|
|
209
|
+
/** What the user typed; follows the value until they type. */
|
|
210
|
+
protected readonly text: import("@angular/core").WritableSignal<string>;
|
|
211
|
+
/** Typed text that isn't a valid, available date. */
|
|
212
|
+
private readonly parseError;
|
|
213
|
+
private readonly formDisabled;
|
|
214
|
+
private readonly ngSource;
|
|
215
|
+
private readonly ngState;
|
|
216
|
+
protected readonly isDisabled: Signal<boolean>;
|
|
217
|
+
protected readonly isRequired: Signal<boolean>;
|
|
218
|
+
protected readonly showInvalid: Signal<boolean>;
|
|
219
|
+
/** Gate for the inner input: never hide our own invalid state. */
|
|
220
|
+
protected readonly touchedState: Signal<true | undefined>;
|
|
221
|
+
protected readonly placeholderText: Signal<string>;
|
|
222
|
+
private readonly panel;
|
|
223
|
+
private readonly group;
|
|
224
|
+
private readonly field;
|
|
225
|
+
private readonly calendar;
|
|
226
|
+
private readonly injector;
|
|
227
|
+
private readonly destroyRef;
|
|
228
|
+
private readonly anchorName;
|
|
229
|
+
private openAtPress;
|
|
230
|
+
private onChange;
|
|
231
|
+
private onTouched;
|
|
232
|
+
constructor();
|
|
233
|
+
ngOnInit(): void;
|
|
234
|
+
protected rememberState(): void;
|
|
235
|
+
protected toggle(): void;
|
|
236
|
+
protected pick(date: VdIsoDate | null): void;
|
|
237
|
+
protected onType(event: Event): void;
|
|
238
|
+
protected onBlur(): void;
|
|
239
|
+
/** Turns the typed text into the value (or flags it). */
|
|
240
|
+
protected commit(): void;
|
|
241
|
+
private setValue;
|
|
242
|
+
writeValue(value: VdIsoDate | null): void;
|
|
243
|
+
registerOnChange(fn: (value: VdIsoDate | null) => void): void;
|
|
244
|
+
registerOnTouched(fn: () => void): void;
|
|
245
|
+
setDisabledState(disabled: boolean): void;
|
|
246
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdDatePicker, never>;
|
|
247
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VdDatePicker, "vd-date-picker", never, {
|
|
248
|
+
"value": {
|
|
249
|
+
"alias": "value";
|
|
250
|
+
"required": false;
|
|
251
|
+
"isSignal": true;
|
|
252
|
+
};
|
|
253
|
+
"min": {
|
|
254
|
+
"alias": "min";
|
|
255
|
+
"required": false;
|
|
256
|
+
"isSignal": true;
|
|
257
|
+
};
|
|
258
|
+
"max": {
|
|
259
|
+
"alias": "max";
|
|
260
|
+
"required": false;
|
|
261
|
+
"isSignal": true;
|
|
262
|
+
};
|
|
263
|
+
"dateDisabled": {
|
|
264
|
+
"alias": "dateDisabled";
|
|
265
|
+
"required": false;
|
|
266
|
+
"isSignal": true;
|
|
267
|
+
};
|
|
268
|
+
"locale": {
|
|
269
|
+
"alias": "locale";
|
|
270
|
+
"required": false;
|
|
271
|
+
"isSignal": true;
|
|
272
|
+
};
|
|
273
|
+
"firstDayOfWeek": {
|
|
274
|
+
"alias": "firstDayOfWeek";
|
|
275
|
+
"required": false;
|
|
276
|
+
"isSignal": true;
|
|
277
|
+
};
|
|
278
|
+
"disabled": {
|
|
279
|
+
"alias": "disabled";
|
|
280
|
+
"required": false;
|
|
281
|
+
"isSignal": true;
|
|
282
|
+
};
|
|
283
|
+
"invalid": {
|
|
284
|
+
"alias": "invalid";
|
|
285
|
+
"required": false;
|
|
286
|
+
"isSignal": true;
|
|
287
|
+
};
|
|
288
|
+
"required": {
|
|
289
|
+
"alias": "required";
|
|
290
|
+
"required": false;
|
|
291
|
+
"isSignal": true;
|
|
292
|
+
};
|
|
293
|
+
"placeholder": {
|
|
294
|
+
"alias": "placeholder";
|
|
295
|
+
"required": false;
|
|
296
|
+
"isSignal": true;
|
|
297
|
+
};
|
|
298
|
+
"ariaLabel": {
|
|
299
|
+
"alias": "aria-label";
|
|
300
|
+
"required": false;
|
|
301
|
+
"isSignal": true;
|
|
302
|
+
};
|
|
303
|
+
"openLabel": {
|
|
304
|
+
"alias": "openLabel";
|
|
305
|
+
"required": false;
|
|
306
|
+
"isSignal": true;
|
|
307
|
+
};
|
|
308
|
+
"dialogLabel": {
|
|
309
|
+
"alias": "dialogLabel";
|
|
310
|
+
"required": false;
|
|
311
|
+
"isSignal": true;
|
|
312
|
+
};
|
|
313
|
+
"previousLabel": {
|
|
314
|
+
"alias": "previousLabel";
|
|
315
|
+
"required": false;
|
|
316
|
+
"isSignal": true;
|
|
317
|
+
};
|
|
318
|
+
"nextLabel": {
|
|
319
|
+
"alias": "nextLabel";
|
|
320
|
+
"required": false;
|
|
321
|
+
"isSignal": true;
|
|
322
|
+
};
|
|
323
|
+
}, {
|
|
324
|
+
"value": "valueChange";
|
|
325
|
+
}, never, never, true, never>;
|
|
326
|
+
}
|
|
327
|
+
export type { VdCalendarDay, VdIsoDate };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
type VdCardVariant = 'default' | 'raised';
|
|
3
|
+
/**
|
|
4
|
+
* Surface container. Interactive cards (links, buttons, or `interactive`) get the
|
|
5
|
+
* cursor-following glow. Spec: specs/card.md
|
|
6
|
+
*/
|
|
7
|
+
export declare class VdCard {
|
|
8
|
+
readonly variant: import("@angular/core").InputSignal<VdCardVariant>;
|
|
9
|
+
/**
|
|
10
|
+
* Hover/glow treatment for cards that act as one target. Automatic on `<a>`/`<button>`;
|
|
11
|
+
* set it on a container whose primary link uses `vdCardLink`.
|
|
12
|
+
*/
|
|
13
|
+
readonly interactive: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
14
|
+
private readonly el;
|
|
15
|
+
private readonly nativeInteractive;
|
|
16
|
+
protected readonly isInteractive: import("@angular/core").Signal<boolean>;
|
|
17
|
+
constructor();
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdCard, never>;
|
|
19
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdCard, "[vdCard]", never, {
|
|
20
|
+
"variant": {
|
|
21
|
+
"alias": "variant";
|
|
22
|
+
"required": false;
|
|
23
|
+
"isSignal": true;
|
|
24
|
+
};
|
|
25
|
+
"interactive": {
|
|
26
|
+
"alias": "interactive";
|
|
27
|
+
"required": false;
|
|
28
|
+
"isSignal": true;
|
|
29
|
+
};
|
|
30
|
+
}, {}, never, never, true, never>;
|
|
31
|
+
}
|
|
32
|
+
/** Card header: title, description, and optional actions at the end. */
|
|
33
|
+
export declare class VdCardHeader {
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdCardHeader, never>;
|
|
35
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdCardHeader, "[vdCardHeader]", never, {}, {}, never, never, true, never>;
|
|
36
|
+
}
|
|
37
|
+
export declare class VdCardTitle {
|
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdCardTitle, never>;
|
|
39
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdCardTitle, "[vdCardTitle]", never, {}, {}, never, never, true, never>;
|
|
40
|
+
}
|
|
41
|
+
export declare class VdCardDescription {
|
|
42
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdCardDescription, never>;
|
|
43
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdCardDescription, "[vdCardDescription]", never, {}, {}, never, never, true, never>;
|
|
44
|
+
}
|
|
45
|
+
export declare class VdCardFooter {
|
|
46
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdCardFooter, never>;
|
|
47
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdCardFooter, "[vdCardFooter]", never, {}, {}, never, never, true, never>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The card's primary link. Its hit area stretches over the whole card (pseudo-element), so the
|
|
51
|
+
* card is clickable while keeping one tab stop and a short accessible name.
|
|
52
|
+
*/
|
|
53
|
+
export declare class VdCardLink {
|
|
54
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdCardLink, never>;
|
|
55
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdCardLink, "a[vdCardLink]", never, {}, {}, never, never, true, never>;
|
|
56
|
+
}
|
|
57
|
+
export declare const VD_CARD: readonly [typeof VdCard, typeof VdCardHeader, typeof VdCardTitle, typeof VdCardDescription, typeof VdCardFooter, typeof VdCardLink];
|
|
58
|
+
export type { VdCardVariant };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/** Advisory text length; validation, native value binding and IME remain application-owned. */
|
|
3
|
+
export declare class VdCharacterCount {
|
|
4
|
+
readonly value: import("@angular/core").InputSignal<string>;
|
|
5
|
+
readonly maxLength: import("@angular/core").InputSignal<number | null>;
|
|
6
|
+
readonly descriptionId: import("@angular/core").InputSignal<string>;
|
|
7
|
+
readonly controlId: import("@angular/core").InputSignal<string | undefined>;
|
|
8
|
+
readonly countText: import("@angular/core").InputSignal<((used: number, limit: number | null) => string) | undefined>;
|
|
9
|
+
readonly remainingText: import("@angular/core").InputSignal<((remaining: number) => string) | undefined>;
|
|
10
|
+
readonly overText: import("@angular/core").InputSignal<((excess: number) => string) | undefined>;
|
|
11
|
+
readonly limitText: import("@angular/core").InputSignal<string | undefined>;
|
|
12
|
+
protected readonly t: import("@angular/core").Signal<Pick<{
|
|
13
|
+
countText: (used: number, limit: number | null) => string;
|
|
14
|
+
remainingText: (remaining: number) => string;
|
|
15
|
+
overText: (excess: number) => string;
|
|
16
|
+
limitText: string;
|
|
17
|
+
}, "countText" | "remainingText" | "overText" | "limitText">>;
|
|
18
|
+
protected readonly count: import("@angular/core").Signal<{
|
|
19
|
+
readonly used: number;
|
|
20
|
+
readonly limit: number | null;
|
|
21
|
+
readonly remaining: number | null;
|
|
22
|
+
readonly state: "unlimited" | "over" | "limit" | "within";
|
|
23
|
+
}>;
|
|
24
|
+
protected readonly message: import("@angular/core").Signal<string>;
|
|
25
|
+
protected readonly announcement: import("@angular/core").WritableSignal<string>;
|
|
26
|
+
private readonly host;
|
|
27
|
+
constructor();
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdCharacterCount, never>;
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VdCharacterCount, "vd-character-count", never, {
|
|
30
|
+
"value": {
|
|
31
|
+
"alias": "value";
|
|
32
|
+
"required": false;
|
|
33
|
+
"isSignal": true;
|
|
34
|
+
};
|
|
35
|
+
"maxLength": {
|
|
36
|
+
"alias": "maxLength";
|
|
37
|
+
"required": false;
|
|
38
|
+
"isSignal": true;
|
|
39
|
+
};
|
|
40
|
+
"descriptionId": {
|
|
41
|
+
"alias": "descriptionId";
|
|
42
|
+
"required": false;
|
|
43
|
+
"isSignal": true;
|
|
44
|
+
};
|
|
45
|
+
"controlId": {
|
|
46
|
+
"alias": "controlId";
|
|
47
|
+
"required": false;
|
|
48
|
+
"isSignal": true;
|
|
49
|
+
};
|
|
50
|
+
"countText": {
|
|
51
|
+
"alias": "countText";
|
|
52
|
+
"required": false;
|
|
53
|
+
"isSignal": true;
|
|
54
|
+
};
|
|
55
|
+
"remainingText": {
|
|
56
|
+
"alias": "remainingText";
|
|
57
|
+
"required": false;
|
|
58
|
+
"isSignal": true;
|
|
59
|
+
};
|
|
60
|
+
"overText": {
|
|
61
|
+
"alias": "overText";
|
|
62
|
+
"required": false;
|
|
63
|
+
"isSignal": true;
|
|
64
|
+
};
|
|
65
|
+
"limitText": {
|
|
66
|
+
"alias": "limitText";
|
|
67
|
+
"required": false;
|
|
68
|
+
"isSignal": true;
|
|
69
|
+
};
|
|
70
|
+
}, {}, never, never, true, never>;
|
|
71
|
+
}
|