@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,132 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/** Menu panel: a `popover="auto"` with `role="menu"`. Open it with `vdMenuTrigger`. */
|
|
3
|
+
export declare class VdMenu {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly el: HTMLElement;
|
|
6
|
+
readonly labelledBy: import("@angular/core").WritableSignal<string | null>;
|
|
7
|
+
items(): HTMLElement[];
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdMenu, never>;
|
|
9
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdMenu, "[vdMenu]", ["vdMenu"], {}, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
11
|
+
/** Opens a `vdMenu`. Use on a button (works with `vdButton`). Spec: specs/menu.md */
|
|
12
|
+
export declare class VdMenuTrigger {
|
|
13
|
+
readonly vdMenuTrigger: import("@angular/core").InputSignal<VdMenu>;
|
|
14
|
+
protected readonly open: import("@angular/core").WritableSignal<boolean>;
|
|
15
|
+
private readonly el;
|
|
16
|
+
constructor();
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdMenuTrigger, never>;
|
|
18
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdMenuTrigger, "button[vdMenuTrigger]", never, {
|
|
19
|
+
"vdMenuTrigger": {
|
|
20
|
+
"alias": "vdMenuTrigger";
|
|
21
|
+
"required": true;
|
|
22
|
+
"isSignal": true;
|
|
23
|
+
};
|
|
24
|
+
}, {}, never, never, true, never>;
|
|
25
|
+
}
|
|
26
|
+
type VdMenuItemVariant = 'default' | 'danger';
|
|
27
|
+
export declare class VdMenuItem {
|
|
28
|
+
readonly variant: import("@angular/core").InputSignal<VdMenuItemVariant>;
|
|
29
|
+
/** Disabled items stay in the menu (discoverable) but are skipped and inert. */
|
|
30
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
31
|
+
protected readonly isButton: boolean;
|
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdMenuItem, never>;
|
|
33
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdMenuItem, "button[vdMenuItem], a[vdMenuItem]", never, {
|
|
34
|
+
"variant": {
|
|
35
|
+
"alias": "variant";
|
|
36
|
+
"required": false;
|
|
37
|
+
"isSignal": true;
|
|
38
|
+
};
|
|
39
|
+
"disabled": {
|
|
40
|
+
"alias": "disabled";
|
|
41
|
+
"required": false;
|
|
42
|
+
"isSignal": true;
|
|
43
|
+
};
|
|
44
|
+
}, {}, never, never, true, never>;
|
|
45
|
+
}
|
|
46
|
+
export declare class VdMenuSeparator {
|
|
47
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdMenuSeparator, never>;
|
|
48
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdMenuSeparator, "[vdMenuSeparator]", never, {}, {}, never, never, true, never>;
|
|
49
|
+
}
|
|
50
|
+
/** Group heading inside a menu (mono eyebrow). Presentational. */
|
|
51
|
+
export declare class VdMenuLabel {
|
|
52
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdMenuLabel, never>;
|
|
53
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdMenuLabel, "[vdMenuLabel]", never, {}, {}, never, never, true, never>;
|
|
54
|
+
}
|
|
55
|
+
export declare const VD_MENU: readonly [typeof VdMenu, typeof VdMenuTrigger, typeof VdMenuItem, typeof VdMenuSeparator, typeof VdMenuLabel];
|
|
56
|
+
interface VdMenuControllerOptions {
|
|
57
|
+
/** Items in DOM order (role="menuitem", including disabled ones). */
|
|
58
|
+
items(): HTMLElement[];
|
|
59
|
+
onOpenChange?(open: boolean): void;
|
|
60
|
+
/** Where focus returns on close; defaults to the trigger (context menus return to the opener). */
|
|
61
|
+
returnFocusTo?(): HTMLElement | null;
|
|
62
|
+
}
|
|
63
|
+
export declare class VdMenuController {
|
|
64
|
+
private readonly trigger;
|
|
65
|
+
private readonly menu;
|
|
66
|
+
private readonly options;
|
|
67
|
+
private readonly typeahead;
|
|
68
|
+
private returnFocus;
|
|
69
|
+
/** Light dismiss closes on pointerdown over the trigger; the click must not reopen. */
|
|
70
|
+
private wasOpen;
|
|
71
|
+
constructor(trigger: HTMLElement, menu: HTMLElement, options: VdMenuControllerOptions);
|
|
72
|
+
get isOpen(): boolean;
|
|
73
|
+
open(focus?: 'first' | 'last'): void;
|
|
74
|
+
close(returnFocus: boolean): void;
|
|
75
|
+
destroy(): void;
|
|
76
|
+
private enabledItems;
|
|
77
|
+
private readonly onTriggerPointerDown;
|
|
78
|
+
private readonly onTriggerClick;
|
|
79
|
+
private readonly onTriggerKeydown;
|
|
80
|
+
private readonly onMenuKeydown;
|
|
81
|
+
private readonly onMenuClick;
|
|
82
|
+
/** Pointer and keyboard share one "current" item: hovering focuses it. */
|
|
83
|
+
private readonly onPointerMove;
|
|
84
|
+
private readonly onToggle;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Opens a `vdMenu` at the pointer on right-click / long-press, or at the focused element on
|
|
88
|
+
* the ContextMenu key and Shift+F10. Spec: specs/menu.md
|
|
89
|
+
*/
|
|
90
|
+
export declare class VdContextMenu {
|
|
91
|
+
readonly vdContextMenu: import("@angular/core").InputSignal<VdMenu>;
|
|
92
|
+
/** Accessible name of the menu while this region opened it. */
|
|
93
|
+
readonly label: import("@angular/core").InputSignal<string | undefined>;
|
|
94
|
+
/** Fires before the menu opens, so the consumer can point it at this region's item. */
|
|
95
|
+
readonly opened: import("@angular/core").OutputEmitterRef<void>;
|
|
96
|
+
protected readonly t: import("@angular/core").Signal<Pick<{
|
|
97
|
+
label: string;
|
|
98
|
+
}, "label">>;
|
|
99
|
+
private readonly el;
|
|
100
|
+
private readonly doc;
|
|
101
|
+
private entry;
|
|
102
|
+
private pressTimer;
|
|
103
|
+
constructor();
|
|
104
|
+
protected onContextMenu(event: MouseEvent): void;
|
|
105
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
106
|
+
protected onPointerDown(event: PointerEvent): void;
|
|
107
|
+
private openAt;
|
|
108
|
+
/**
|
|
109
|
+
* Puts the zero-size anchor at viewport point (x, y). An ancestor with a transform, filter or
|
|
110
|
+
* container query becomes the fixed containing block, so the first guess is measured and
|
|
111
|
+
* corrected by the difference. Insets stay logical: in RTL inline-start grows leftwards.
|
|
112
|
+
*/
|
|
113
|
+
private place;
|
|
114
|
+
/** Focus returns to the nearest focusable element of this region, or the region itself. */
|
|
115
|
+
private focusable;
|
|
116
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdContextMenu, never>;
|
|
117
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdContextMenu, "[vdContextMenu]", never, {
|
|
118
|
+
"vdContextMenu": {
|
|
119
|
+
"alias": "vdContextMenu";
|
|
120
|
+
"required": true;
|
|
121
|
+
"isSignal": true;
|
|
122
|
+
};
|
|
123
|
+
"label": {
|
|
124
|
+
"alias": "label";
|
|
125
|
+
"required": false;
|
|
126
|
+
"isSignal": true;
|
|
127
|
+
};
|
|
128
|
+
}, {
|
|
129
|
+
"opened": "opened";
|
|
130
|
+
}, never, never, true, never>;
|
|
131
|
+
}
|
|
132
|
+
export type { VdMenuControllerOptions, VdMenuItemVariant };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/** Native navigation landmark; applications supply groups, links and current state. */
|
|
3
|
+
export declare class VdNavigationList {
|
|
4
|
+
readonly label: import("@angular/core").InputSignal<string | undefined>;
|
|
5
|
+
/** Text inputs resolved against the active VD_LOCALE. */
|
|
6
|
+
protected readonly t: import("@angular/core").Signal<Pick<{
|
|
7
|
+
label: string;
|
|
8
|
+
}, "label">>;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdNavigationList, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdNavigationList, "nav[vdNavigationList]", never, {
|
|
11
|
+
"label": {
|
|
12
|
+
"alias": "label";
|
|
13
|
+
"required": false;
|
|
14
|
+
"isSignal": true;
|
|
15
|
+
};
|
|
16
|
+
}, {}, never, never, true, never>;
|
|
17
|
+
}
|
|
18
|
+
/** Keeps href, router integration, keyboard and modified-click behavior native. */
|
|
19
|
+
export declare class VdNavigationLink {
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdNavigationLink, never>;
|
|
21
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdNavigationLink, "a[vdNavigationLink]", never, {}, {}, never, never, true, never>;
|
|
22
|
+
}
|
|
23
|
+
/** Preserves the consumer's heading level and section labelling. */
|
|
24
|
+
export declare class VdNavigationLabel {
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdNavigationLabel, never>;
|
|
26
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdNavigationLabel, "[vdNavigationLabel]", never, {}, {}, never, never, true, never>;
|
|
27
|
+
}
|
|
28
|
+
export declare const VD_NAVIGATION_LIST: readonly [typeof VdNavigationList, typeof VdNavigationLink, typeof VdNavigationLabel];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { VdInput } from "@vadem/ui/input";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** Numeric native Input: the platform/forms accessor remains the source of value. */
|
|
4
|
+
export declare class VdNumberInput extends VdInput {
|
|
5
|
+
private readonly el;
|
|
6
|
+
private readonly snapshot;
|
|
7
|
+
readonly locked: import("@angular/core").Signal<boolean>;
|
|
8
|
+
readonly canDecrease: import("@angular/core").Signal<boolean>;
|
|
9
|
+
readonly canIncrease: import("@angular/core").Signal<boolean>;
|
|
10
|
+
constructor();
|
|
11
|
+
refresh(): void;
|
|
12
|
+
step(direction: -1 | 1): void;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdNumberInput, never>;
|
|
14
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdNumberInput, "input[type=number][vdNumberInput]", ["vdNumberInput"], {}, {}, never, never, true, never>;
|
|
15
|
+
}
|
|
16
|
+
export declare class VdNumberInputGroup {
|
|
17
|
+
readonly decreaseLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
18
|
+
readonly increaseLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
19
|
+
/** Text inputs resolved against the active VD_LOCALE. */
|
|
20
|
+
protected readonly t: import("@angular/core").Signal<Pick<{
|
|
21
|
+
decreaseLabel: string;
|
|
22
|
+
increaseLabel: string;
|
|
23
|
+
}, "decreaseLabel" | "increaseLabel">>;
|
|
24
|
+
protected readonly control: import("@angular/core").Signal<VdNumberInput | undefined>;
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdNumberInputGroup, never>;
|
|
26
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VdNumberInputGroup, "vd-number-input", never, {
|
|
27
|
+
"decreaseLabel": {
|
|
28
|
+
"alias": "decreaseLabel";
|
|
29
|
+
"required": false;
|
|
30
|
+
"isSignal": true;
|
|
31
|
+
};
|
|
32
|
+
"increaseLabel": {
|
|
33
|
+
"alias": "increaseLabel";
|
|
34
|
+
"required": false;
|
|
35
|
+
"isSignal": true;
|
|
36
|
+
};
|
|
37
|
+
}, {}, ["control"], ["input[vdNumberInput]"], true, never>;
|
|
38
|
+
}
|
|
39
|
+
export declare const VD_NUMBER_INPUT: readonly [typeof VdNumberInputGroup, typeof VdNumberInput];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { VdInput } from "@vadem/ui/input";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** One native code field: editing, clipboard, autofill and value accessors remain native. */
|
|
4
|
+
export declare class VdOtpInput extends VdInput {
|
|
5
|
+
readonly length: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
6
|
+
protected readonly codeLength: import("@angular/core").Signal<number>;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdOtpInput, never>;
|
|
8
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdOtpInput, "input[vdOtpInput]", never, {
|
|
9
|
+
"length": {
|
|
10
|
+
"alias": "length";
|
|
11
|
+
"required": false;
|
|
12
|
+
"isSignal": true;
|
|
13
|
+
};
|
|
14
|
+
}, {}, never, never, true, never>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
type VdPaginationSize = 'sm' | 'md';
|
|
3
|
+
/**
|
|
4
|
+
* Page navigation for paged lists and tables. Buttons (not links): the consumer loads the page.
|
|
5
|
+
* Spec: specs/pagination.md
|
|
6
|
+
*/
|
|
7
|
+
export declare class VdPagination {
|
|
8
|
+
/** Current page, 1-based (two-way). */
|
|
9
|
+
readonly page: import("@angular/core").ModelSignal<number>;
|
|
10
|
+
readonly pageCount: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
11
|
+
readonly size: import("@angular/core").InputSignal<VdPaginationSize>;
|
|
12
|
+
/** Pages shown on each side of the current one. */
|
|
13
|
+
readonly siblings: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
14
|
+
/** "3 / 12" instead of page buttons (narrow spaces). */
|
|
15
|
+
readonly compact: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
16
|
+
/** Landmark name; name each pagination on a page differently. */
|
|
17
|
+
readonly label: import("@angular/core").InputSignal<string | undefined>;
|
|
18
|
+
readonly previousLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
19
|
+
readonly nextLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
20
|
+
readonly pageLabel: import("@angular/core").InputSignal<((page: number) => string) | undefined>;
|
|
21
|
+
/** Text inputs resolved against the active VD_LOCALE. */
|
|
22
|
+
protected readonly t: import("@angular/core").Signal<Pick<{
|
|
23
|
+
label: string;
|
|
24
|
+
previousLabel: string;
|
|
25
|
+
nextLabel: string;
|
|
26
|
+
pageLabel: (page: number) => string;
|
|
27
|
+
}, "label" | "previousLabel" | "nextLabel" | "pageLabel">>;
|
|
28
|
+
protected readonly current: import("@angular/core").Signal<number>;
|
|
29
|
+
protected readonly isFirst: import("@angular/core").Signal<boolean>;
|
|
30
|
+
protected readonly isLast: import("@angular/core").Signal<boolean>;
|
|
31
|
+
protected readonly items: import("@angular/core").Signal<import("@vadem/ui/pagination").VdPageItem[]>;
|
|
32
|
+
/** Native focus scrolling can leave a partially visible button clipped. */
|
|
33
|
+
protected revealFocused(event: FocusEvent): void;
|
|
34
|
+
/** Disabled steps use aria-disabled (they keep focus at the edges), so guard here. */
|
|
35
|
+
protected go(page: number): void;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdPagination, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VdPagination, "vd-pagination", never, {
|
|
38
|
+
"page": {
|
|
39
|
+
"alias": "page";
|
|
40
|
+
"required": false;
|
|
41
|
+
"isSignal": true;
|
|
42
|
+
};
|
|
43
|
+
"pageCount": {
|
|
44
|
+
"alias": "pageCount";
|
|
45
|
+
"required": true;
|
|
46
|
+
"isSignal": true;
|
|
47
|
+
};
|
|
48
|
+
"size": {
|
|
49
|
+
"alias": "size";
|
|
50
|
+
"required": false;
|
|
51
|
+
"isSignal": true;
|
|
52
|
+
};
|
|
53
|
+
"siblings": {
|
|
54
|
+
"alias": "siblings";
|
|
55
|
+
"required": false;
|
|
56
|
+
"isSignal": true;
|
|
57
|
+
};
|
|
58
|
+
"compact": {
|
|
59
|
+
"alias": "compact";
|
|
60
|
+
"required": false;
|
|
61
|
+
"isSignal": true;
|
|
62
|
+
};
|
|
63
|
+
"label": {
|
|
64
|
+
"alias": "label";
|
|
65
|
+
"required": false;
|
|
66
|
+
"isSignal": true;
|
|
67
|
+
};
|
|
68
|
+
"previousLabel": {
|
|
69
|
+
"alias": "previousLabel";
|
|
70
|
+
"required": false;
|
|
71
|
+
"isSignal": true;
|
|
72
|
+
};
|
|
73
|
+
"nextLabel": {
|
|
74
|
+
"alias": "nextLabel";
|
|
75
|
+
"required": false;
|
|
76
|
+
"isSignal": true;
|
|
77
|
+
};
|
|
78
|
+
"pageLabel": {
|
|
79
|
+
"alias": "pageLabel";
|
|
80
|
+
"required": false;
|
|
81
|
+
"isSignal": true;
|
|
82
|
+
};
|
|
83
|
+
}, {
|
|
84
|
+
"page": "pageChange";
|
|
85
|
+
}, never, never, true, never>;
|
|
86
|
+
}
|
|
87
|
+
type VdPageItem = number | 'ellipsis';
|
|
88
|
+
/**
|
|
89
|
+
* Page items to render: first/last `boundaries` pages, `siblings` around the current page,
|
|
90
|
+
* and 'ellipsis' for gaps. The length stays constant while paging (no jumping layout), and an
|
|
91
|
+
* ellipsis never hides a single page (that page is shown instead).
|
|
92
|
+
*
|
|
93
|
+
* vdPageRange(6, 12) -> [1, 'ellipsis', 5, 6, 7, 'ellipsis', 12]
|
|
94
|
+
*/
|
|
95
|
+
export declare function vdPageRange(page: number, count: number, siblings?: number, boundaries?: number): VdPageItem[];
|
|
96
|
+
export type { VdPageItem, VdPaginationSize };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { VdInput } from "@vadem/ui/input";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** Native password value and forms accessor remain on the input. This directive owns type. */
|
|
4
|
+
export declare class VdPasswordInput extends VdInput {
|
|
5
|
+
readonly element: HTMLInputElement;
|
|
6
|
+
private readonly document;
|
|
7
|
+
private readonly visible;
|
|
8
|
+
readonly revealed: import("@angular/core").Signal<boolean>;
|
|
9
|
+
private readonly unavailable;
|
|
10
|
+
readonly locked: import("@angular/core").Signal<boolean>;
|
|
11
|
+
constructor();
|
|
12
|
+
/** Pointer activation while editing preserves input focus; keyboard focus stays on the button. */
|
|
13
|
+
preserveEditingFocus(event: MouseEvent): void;
|
|
14
|
+
toggle(): void;
|
|
15
|
+
private setVisible;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdPasswordInput, never>;
|
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdPasswordInput, "input[vdPasswordInput]", ["vdPasswordInput"], {}, {}, never, never, true, never>;
|
|
18
|
+
}
|
|
19
|
+
export declare class VdPasswordInputGroup {
|
|
20
|
+
/** Stable toggle name; aria-pressed conveys whether revealing is enabled. */
|
|
21
|
+
readonly revealLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
22
|
+
/** Text inputs resolved against the active VD_LOCALE. */
|
|
23
|
+
protected readonly t: import("@angular/core").Signal<Pick<{
|
|
24
|
+
revealLabel: string;
|
|
25
|
+
}, "revealLabel">>;
|
|
26
|
+
protected readonly control: import("@angular/core").Signal<VdPasswordInput | undefined>;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdPasswordInputGroup, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VdPasswordInputGroup, "vd-password-input", never, {
|
|
29
|
+
"revealLabel": {
|
|
30
|
+
"alias": "revealLabel";
|
|
31
|
+
"required": false;
|
|
32
|
+
"isSignal": true;
|
|
33
|
+
};
|
|
34
|
+
}, {}, ["control"], ["[slot=start]", "input[vdPasswordInput]"], true, never>;
|
|
35
|
+
}
|
|
36
|
+
export declare const VD_PASSWORD_INPUT: readonly [typeof VdPasswordInputGroup, typeof VdPasswordInput];
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
type VdPopoverPlacement = 'bottom' | 'top' | 'start' | 'end';
|
|
3
|
+
/**
|
|
4
|
+
* Non-modal floating panel with any content (filters, a share form, details): a
|
|
5
|
+
* `popover="auto"` in the top layer, anchored to its trigger with CSS anchor positioning.
|
|
6
|
+
* Light dismiss and Escape are native. Give it a name (`aria-label` / `aria-labelledby`).
|
|
7
|
+
* Spec: specs/popover.md
|
|
8
|
+
*/
|
|
9
|
+
export declare class VdPopover {
|
|
10
|
+
readonly placement: import("@angular/core").InputSignal<VdPopoverPlacement>;
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly el: HTMLElement;
|
|
13
|
+
hide(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdPopover, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdPopover, "[vdPopover]", ["vdPopover"], {
|
|
16
|
+
"placement": {
|
|
17
|
+
"alias": "placement";
|
|
18
|
+
"required": false;
|
|
19
|
+
"isSignal": true;
|
|
20
|
+
};
|
|
21
|
+
}, {}, never, never, true, never>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Toggles a `vdPopover` from a button. On open, focus moves to the popover's `[autofocus]`
|
|
25
|
+
* element or its first focusable one; closing returns focus to the trigger (the trigger is the
|
|
26
|
+
* popover's invoker).
|
|
27
|
+
*/
|
|
28
|
+
export declare class VdPopoverTrigger {
|
|
29
|
+
readonly vdPopoverTrigger: import("@angular/core").InputSignal<VdPopover>;
|
|
30
|
+
protected readonly open: import("@angular/core").WritableSignal<boolean>;
|
|
31
|
+
private readonly el;
|
|
32
|
+
constructor();
|
|
33
|
+
/** Open state when the press started: light dismiss may already have closed it by click. */
|
|
34
|
+
private openAtPress;
|
|
35
|
+
protected rememberState(): void;
|
|
36
|
+
protected toggle(): void;
|
|
37
|
+
private focusInside;
|
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdPopoverTrigger, never>;
|
|
39
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdPopoverTrigger, "button[vdPopoverTrigger]", never, {
|
|
40
|
+
"vdPopoverTrigger": {
|
|
41
|
+
"alias": "vdPopoverTrigger";
|
|
42
|
+
"required": true;
|
|
43
|
+
"isSignal": true;
|
|
44
|
+
};
|
|
45
|
+
}, {}, never, never, true, never>;
|
|
46
|
+
}
|
|
47
|
+
export declare const VD_POPOVER: readonly [typeof VdPopover, typeof VdPopoverTrigger];
|
|
48
|
+
export type { VdPopoverPlacement };
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
type VdProgressSize = 'sm' | 'md';
|
|
3
|
+
type VdProgressVariant = 'accent' | 'success' | 'warning' | 'danger';
|
|
4
|
+
/**
|
|
5
|
+
* Styles a native `<progress>`: completion of a task. Without `value` it is indeterminate.
|
|
6
|
+
* Role, value and labelling (`<label for>`, `aria-label`) stay native. Spec: specs/progress.md
|
|
7
|
+
*/
|
|
8
|
+
export declare class VdProgress {
|
|
9
|
+
readonly size: import("@angular/core").InputSignal<VdProgressSize>;
|
|
10
|
+
readonly variant: import("@angular/core").InputSignal<VdProgressVariant>;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdProgress, never>;
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdProgress, "progress[vdProgress]", never, {
|
|
13
|
+
"size": {
|
|
14
|
+
"alias": "size";
|
|
15
|
+
"required": false;
|
|
16
|
+
"isSignal": true;
|
|
17
|
+
};
|
|
18
|
+
"variant": {
|
|
19
|
+
"alias": "variant";
|
|
20
|
+
"required": false;
|
|
21
|
+
"isSignal": true;
|
|
22
|
+
};
|
|
23
|
+
}, {}, never, never, true, never>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Styles a native `<meter>`: a measurement within a known range (quota, disk, score).
|
|
27
|
+
* Colors follow the native `low` / `high` / `optimum` regions. Spec: specs/progress.md
|
|
28
|
+
*/
|
|
29
|
+
export declare class VdMeter {
|
|
30
|
+
readonly size: import("@angular/core").InputSignal<VdProgressSize>;
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdMeter, never>;
|
|
32
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdMeter, "meter[vdMeter]", never, {
|
|
33
|
+
"size": {
|
|
34
|
+
"alias": "size";
|
|
35
|
+
"required": false;
|
|
36
|
+
"isSignal": true;
|
|
37
|
+
};
|
|
38
|
+
}, {}, never, never, true, never>;
|
|
39
|
+
}
|
|
40
|
+
type VdProgressRingSize = 'sm' | 'md' | 'lg';
|
|
41
|
+
/**
|
|
42
|
+
* Circular progress. Without `value` it is indeterminate (a spinner); with `value` it shows
|
|
43
|
+
* completion. Spec: specs/progress.md
|
|
44
|
+
*/
|
|
45
|
+
export declare class VdProgressRing {
|
|
46
|
+
/** Completed amount; leave empty for an indeterminate spinner. */
|
|
47
|
+
readonly value: import("@angular/core").InputSignalWithTransform<number | null, unknown>;
|
|
48
|
+
readonly max: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
49
|
+
readonly size: import("@angular/core").InputSignal<VdProgressRingSize>;
|
|
50
|
+
readonly variant: import("@angular/core").InputSignal<VdProgressVariant>;
|
|
51
|
+
/** Percentage in the centre; shown at size lg only. */
|
|
52
|
+
readonly showValue: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
53
|
+
/** Accessible name; defaults to the locale's "Loading". */
|
|
54
|
+
readonly label: import("@angular/core").InputSignal<string | undefined>;
|
|
55
|
+
protected readonly t: import("@angular/core").Signal<Pick<{
|
|
56
|
+
label: string;
|
|
57
|
+
}, "label">>;
|
|
58
|
+
protected readonly determinate: import("@angular/core").Signal<boolean>;
|
|
59
|
+
protected readonly clamped: import("@angular/core").Signal<number>;
|
|
60
|
+
protected readonly percent: import("@angular/core").Signal<number>;
|
|
61
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdProgressRing, never>;
|
|
62
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VdProgressRing, "vd-progress-ring", never, {
|
|
63
|
+
"value": {
|
|
64
|
+
"alias": "value";
|
|
65
|
+
"required": false;
|
|
66
|
+
"isSignal": true;
|
|
67
|
+
};
|
|
68
|
+
"max": {
|
|
69
|
+
"alias": "max";
|
|
70
|
+
"required": false;
|
|
71
|
+
"isSignal": true;
|
|
72
|
+
};
|
|
73
|
+
"size": {
|
|
74
|
+
"alias": "size";
|
|
75
|
+
"required": false;
|
|
76
|
+
"isSignal": true;
|
|
77
|
+
};
|
|
78
|
+
"variant": {
|
|
79
|
+
"alias": "variant";
|
|
80
|
+
"required": false;
|
|
81
|
+
"isSignal": true;
|
|
82
|
+
};
|
|
83
|
+
"showValue": {
|
|
84
|
+
"alias": "showValue";
|
|
85
|
+
"required": false;
|
|
86
|
+
"isSignal": true;
|
|
87
|
+
};
|
|
88
|
+
"label": {
|
|
89
|
+
"alias": "label";
|
|
90
|
+
"required": false;
|
|
91
|
+
"isSignal": true;
|
|
92
|
+
};
|
|
93
|
+
}, {}, never, never, true, never>;
|
|
94
|
+
}
|
|
95
|
+
export type { VdProgressRingSize, VdProgressSize, VdProgressVariant };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { VdFieldControlBase } from "@vadem/ui/field";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Styles a native `<input type="radio">`. Grouping (shared `name`), arrow keys and form values
|
|
5
|
+
* stay native; wrap each in `label[vdChoice]` and the group in `fieldset[vdFieldset]`.
|
|
6
|
+
* Spec: specs/radio.md
|
|
7
|
+
*/
|
|
8
|
+
export declare class VdRadio extends VdFieldControlBase {
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdRadio, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<VdRadio, "input[type=radio][vdRadio]", never, {}, {}, never, never, true, never>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { OnInit, Signal } from "@angular/core";
|
|
3
|
+
import { FormValueControl } from "@angular/forms/signals";
|
|
4
|
+
type VdRangeValue = readonly [number, number];
|
|
5
|
+
interface VdRangeBounds {
|
|
6
|
+
min: number;
|
|
7
|
+
max: number;
|
|
8
|
+
step: number;
|
|
9
|
+
}
|
|
10
|
+
declare function vdRangeBounds(min: number, max: number, step: number): VdRangeBounds;
|
|
11
|
+
declare function vdRangeSnap(value: number, bounds: VdRangeBounds): number;
|
|
12
|
+
declare function vdRangeValue(value: VdRangeValue | null, bounds: VdRangeBounds): VdRangeValue;
|
|
13
|
+
declare function vdRangeMove(value: VdRangeValue, index: 0 | 1, next: number, bounds: VdRangeBounds): VdRangeValue;
|
|
14
|
+
declare function vdRangeKey(key: string, current: number, min: number, max: number, step: number, rtl: boolean): number | null;
|
|
15
|
+
export declare class VdRangeSlider implements FormValueControl<VdRangeValue | null>, OnInit {
|
|
16
|
+
readonly value: import("@angular/core").ModelSignal<VdRangeValue | null>;
|
|
17
|
+
readonly minValue: import("@angular/core").InputSignal<number>;
|
|
18
|
+
readonly maxValue: import("@angular/core").InputSignal<number>;
|
|
19
|
+
readonly step: import("@angular/core").InputSignal<number>;
|
|
20
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
21
|
+
readonly lowerLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
22
|
+
readonly upperLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
23
|
+
/** Text inputs resolved against the active VD_LOCALE. */
|
|
24
|
+
protected readonly t: Signal<Pick<{
|
|
25
|
+
lowerLabel: string;
|
|
26
|
+
upperLabel: string;
|
|
27
|
+
}, "lowerLabel" | "upperLabel">>;
|
|
28
|
+
readonly valueText: import("@angular/core").InputSignal<(value: number) => string>;
|
|
29
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
30
|
+
readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
31
|
+
readonly invalid: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
32
|
+
readonly touched: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
33
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
34
|
+
readonly touch: import("@angular/core").OutputEmitterRef<void>;
|
|
35
|
+
readonly controlId: string;
|
|
36
|
+
protected readonly labelId: string;
|
|
37
|
+
protected readonly indices: readonly [0, 1];
|
|
38
|
+
protected readonly bounds: Signal<VdRangeBounds>;
|
|
39
|
+
protected readonly selected: Signal<VdRangeValue>;
|
|
40
|
+
protected readonly dragging: import("@angular/core").WritableSignal<boolean>;
|
|
41
|
+
protected readonly field: import("@vadem/ui/field").VdFieldContext | null;
|
|
42
|
+
private readonly host;
|
|
43
|
+
private readonly rail;
|
|
44
|
+
private drag;
|
|
45
|
+
private readonly injector;
|
|
46
|
+
private readonly destroyRef;
|
|
47
|
+
private readonly formBound;
|
|
48
|
+
private readonly ngSource;
|
|
49
|
+
private readonly ngState;
|
|
50
|
+
protected readonly isDisabled: Signal<boolean>;
|
|
51
|
+
protected readonly locked: Signal<boolean>;
|
|
52
|
+
protected readonly isRequired: Signal<boolean>;
|
|
53
|
+
protected readonly showInvalid: Signal<boolean>;
|
|
54
|
+
constructor();
|
|
55
|
+
ngOnInit(): void;
|
|
56
|
+
protected percent(index: 0 | 1): number;
|
|
57
|
+
private choose;
|
|
58
|
+
protected onKeydown(event: KeyboardEvent, index: 0 | 1): void;
|
|
59
|
+
private pointerValue;
|
|
60
|
+
protected onPointerDown(event: PointerEvent): void;
|
|
61
|
+
protected onPointerMove(event: PointerEvent): void;
|
|
62
|
+
protected endDrag(event: PointerEvent): void;
|
|
63
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
64
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VdRangeSlider, never>;
|
|
65
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VdRangeSlider, "vd-range-slider", never, {
|
|
66
|
+
"value": {
|
|
67
|
+
"alias": "value";
|
|
68
|
+
"required": false;
|
|
69
|
+
"isSignal": true;
|
|
70
|
+
};
|
|
71
|
+
"minValue": {
|
|
72
|
+
"alias": "minValue";
|
|
73
|
+
"required": false;
|
|
74
|
+
"isSignal": true;
|
|
75
|
+
};
|
|
76
|
+
"maxValue": {
|
|
77
|
+
"alias": "maxValue";
|
|
78
|
+
"required": false;
|
|
79
|
+
"isSignal": true;
|
|
80
|
+
};
|
|
81
|
+
"step": {
|
|
82
|
+
"alias": "step";
|
|
83
|
+
"required": false;
|
|
84
|
+
"isSignal": true;
|
|
85
|
+
};
|
|
86
|
+
"label": {
|
|
87
|
+
"alias": "label";
|
|
88
|
+
"required": true;
|
|
89
|
+
"isSignal": true;
|
|
90
|
+
};
|
|
91
|
+
"lowerLabel": {
|
|
92
|
+
"alias": "lowerLabel";
|
|
93
|
+
"required": false;
|
|
94
|
+
"isSignal": true;
|
|
95
|
+
};
|
|
96
|
+
"upperLabel": {
|
|
97
|
+
"alias": "upperLabel";
|
|
98
|
+
"required": false;
|
|
99
|
+
"isSignal": true;
|
|
100
|
+
};
|
|
101
|
+
"valueText": {
|
|
102
|
+
"alias": "valueText";
|
|
103
|
+
"required": false;
|
|
104
|
+
"isSignal": true;
|
|
105
|
+
};
|
|
106
|
+
"disabled": {
|
|
107
|
+
"alias": "disabled";
|
|
108
|
+
"required": false;
|
|
109
|
+
"isSignal": true;
|
|
110
|
+
};
|
|
111
|
+
"readonly": {
|
|
112
|
+
"alias": "readonly";
|
|
113
|
+
"required": false;
|
|
114
|
+
"isSignal": true;
|
|
115
|
+
};
|
|
116
|
+
"invalid": {
|
|
117
|
+
"alias": "invalid";
|
|
118
|
+
"required": false;
|
|
119
|
+
"isSignal": true;
|
|
120
|
+
};
|
|
121
|
+
"touched": {
|
|
122
|
+
"alias": "touched";
|
|
123
|
+
"required": false;
|
|
124
|
+
"isSignal": true;
|
|
125
|
+
};
|
|
126
|
+
"required": {
|
|
127
|
+
"alias": "required";
|
|
128
|
+
"required": false;
|
|
129
|
+
"isSignal": true;
|
|
130
|
+
};
|
|
131
|
+
}, {
|
|
132
|
+
"value": "valueChange";
|
|
133
|
+
"touch": "touch";
|
|
134
|
+
}, never, never, true, never>;
|
|
135
|
+
}
|
|
136
|
+
export type { VdRangeValue };
|