@a.nemreen/dga-ui 0.2.9 → 0.3.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.
@@ -5,6 +5,54 @@ import { ControlValueAccessor } from '@angular/forms';
5
5
  export { ControlValueAccessor } from '@angular/forms';
6
6
  import * as _a_nemreen_dga_ui from '@a.nemreen/dga-ui';
7
7
 
8
+ /** Creative named page transitions for `dga-page-transition`. */
9
+ declare const DGA_PAGE_TRANSITION_NAMES: readonly ["fade-up", "slide-stack", "curtain-wipe", "zoom-blur", "book-flip", "circle-reveal", "shared-axis", "glitch", "iris-open", "split-reveal", "stagger-cascade", "liquid-swipe", "push-depth", "skew-slide", "bounce-in", "film-strip", "portal-warp", "ripple-expand", "origami-fold", "swipe-cards", "none"];
10
+ type DgaPageTransitionName = (typeof DGA_PAGE_TRANSITION_NAMES)[number];
11
+ /**
12
+ * Easy page / content transition wrapper.
13
+ *
14
+ * ```html
15
+ * <dga-page-transition name="fade-up">
16
+ * <router-outlet />
17
+ * </dga-page-transition>
18
+ * ```
19
+ *
20
+ * Triggers: Angular `NavigationEnd`, or a change to `key` (playground / content swap).
21
+ * Progressive enhancement: sets `view-transition-name: dga-page` so apps using
22
+ * `withViewTransitions()` get named snapshot animations. Keyframe enter runs as fallback.
23
+ * Honors `prefers-reduced-motion` and DGA a11y `reduce-motion`.
24
+ */
25
+ declare class DgaPageTransition {
26
+ private readonly host;
27
+ private readonly doc;
28
+ private readonly destroyRef;
29
+ private readonly a11y;
30
+ private readonly router;
31
+ /** Named creative transition. Unknown values resolve to `none`. */
32
+ readonly name: _angular_core.InputSignal<string>;
33
+ /** Duration in milliseconds (also drives `--dga-pt-ms`). */
34
+ readonly duration: _angular_core.InputSignalWithTransform<number, unknown>;
35
+ /** Skip all motion. */
36
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
37
+ /**
38
+ * Bump this to re-play the enter animation (content swaps / gallery playground).
39
+ * For View Transition snapshots, wrap the key update in `document.startViewTransition`.
40
+ */
41
+ readonly key: _angular_core.InputSignal<string | number | null>;
42
+ readonly phase: _angular_core.WritableSignal<"idle" | "enter">;
43
+ readonly resolvedName: _angular_core.Signal<"none" | "fade-up" | "slide-stack" | "curtain-wipe" | "zoom-blur" | "book-flip" | "circle-reveal" | "shared-axis" | "glitch" | "iris-open" | "split-reveal" | "stagger-cascade" | "liquid-swipe" | "push-depth" | "skew-slide" | "bounce-in" | "film-strip" | "portal-warp" | "ripple-expand" | "origami-fold" | "swipe-cards">;
44
+ readonly durationCss: _angular_core.Signal<string>;
45
+ private htmlAttr;
46
+ private keyPrimed;
47
+ constructor();
48
+ /** Re-trigger the enter animation (e.g. from a Play control). */
49
+ play(): void;
50
+ protected onAnimationEnd(event: AnimationEvent): void;
51
+ private shouldReduceMotion;
52
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaPageTransition, never>;
53
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaPageTransition, "dga-page-transition", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "key": { "alias": "key"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
54
+ }
55
+
8
56
  type DgaButtonVariant = 'primary' | 'secondary' | 'subtle' | 'outline' | 'outlineMuted' | 'outlineInverse' | 'ghost' | 'danger' | 'inverse';
9
57
  type DgaButtonSize = 'sm' | 'md' | 'lg';
10
58
  declare class DgaButton {
@@ -19,6 +67,11 @@ declare class DgaButton {
19
67
  readonly cooldownMs: _angular_core.InputSignal<number>;
20
68
  /** Manual loading state — shows spinner and disables the control. */
21
69
  readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
70
+ /**
71
+ * Extra classes merged with variant styles.
72
+ * Prefer this over a bare `[class]` on the host — the directive owns `[class]`.
73
+ */
74
+ readonly buttonClass: _angular_core.InputSignal<string>;
22
75
  /** Exposed for host bindings (Angular 22 requires public host expressions). */
23
76
  readonly cooling: _angular_core.WritableSignal<boolean>;
24
77
  private cooldownTimer;
@@ -31,7 +84,7 @@ declare class DgaButton {
31
84
  private detachSpinner;
32
85
  private clearCooldown;
33
86
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaButton, never>;
34
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DgaButton, "button[dgaButton], a[dgaButton]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "cooldownMs": { "alias": "cooldownMs"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
87
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DgaButton, "button[dgaButton], a[dgaButton]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "cooldownMs": { "alias": "cooldownMs"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "buttonClass": { "alias": "dgaButtonClass"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
35
88
  }
36
89
 
37
90
  type DgaBadgeVariant = 'neutral' | 'primary' | 'success' | 'info' | 'warning' | 'error';
@@ -55,6 +108,34 @@ declare class DgaChip {
55
108
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaChip, "dga-chip", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
56
109
  }
57
110
 
111
+ /**
112
+ * Keyboard key badge — mirrors shadcn `Kbd` for shortcut hints.
113
+ *
114
+ * @see https://ui.shadcn.com/docs/components/base/kbd
115
+ *
116
+ * @example
117
+ * ```html
118
+ * <dga-kbd>Ctrl</dga-kbd>
119
+ * <dga-kbd-group>
120
+ * <dga-kbd>⌘</dga-kbd>
121
+ * <dga-kbd>K</dga-kbd>
122
+ * </dga-kbd-group>
123
+ * ```
124
+ */
125
+ declare class DgaKbd {
126
+ readonly size: _angular_core.InputSignal<"sm" | "md">;
127
+ readonly classes: _angular_core.Signal<string>;
128
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaKbd, never>;
129
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaKbd, "dga-kbd", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
130
+ }
131
+ /**
132
+ * Groups related keyboard keys (e.g. ⌘ + K).
133
+ */
134
+ declare class DgaKbdGroup {
135
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaKbdGroup, never>;
136
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaKbdGroup, "dga-kbd-group", never, {}, {}, never, ["*"], true, never>;
137
+ }
138
+
58
139
  type DgaDividerOrientation = 'horizontal' | 'vertical';
59
140
  declare class DgaDivider {
60
141
  readonly orientation: _angular_core.InputSignal<DgaDividerOrientation>;
@@ -155,7 +236,7 @@ declare class DgaAvatar {
155
236
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaAvatar, "dga-avatar", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
156
237
  }
157
238
 
158
- type DgaIconName = 'access' | 'check' | 'close' | 'info' | 'helpCircle' | 'warning' | 'alertCircle' | 'error' | 'eye' | 'eyeOff' | 'eyeOffSlash' | 'success' | 'checkCircle' | 'checkCircleAlt' | 'chevronDown' | 'chevronLeft' | 'chevronRight' | 'arrowUp' | 'arrowDown' | 'arrowLeft' | 'arrowRight' | 'arrowUp02' | 'arrowDown02' | 'arrowLeft02' | 'arrowRight02' | 'arrowNext' | 'arrowPrev' | 'arrowNext02' | 'arrowPrev02' | 'shrink' | 'search' | 'user' | 'users' | 'menu' | 'menuAlt' | 'moreHorizontal' | 'moreVertical' | 'mic' | 'home' | 'download' | 'upload' | 'calendar' | 'calendarAlt' | 'clock' | 'star' | 'starFilled' | 'plus' | 'plusSign' | 'minus' | 'external' | 'bell' | 'bellAlt' | 'lock' | 'lockPassword' | 'logout' | 'idCard' | 'link' | 'linkAlt' | 'globe' | 'moon' | 'moonAlt' | 'sun' | 'sunAlt' | 'translation' | 'mail' | 'message' | 'phone' | 'building' | 'share' | 'refresh' | 'highlighter' | 'door' | 'zoomIn' | 'zoomOut' | 'sort' | 'sortUp' | 'sortDown' | 'tradeUp' | 'tradeDown' | 'paintBoard' | 'cloud' | 'sunCloud' | 'moonCloud' | 'rain' | 'rainZap' | 'snow' | 'wind' | 'desert' | 'cart' | 'award' | 'cookie' | 'x' | 'linkedin' | 'whatsapp' | 'book' | 'headphones' | 'devices' | 'badgeCheck' | 'riyal' | 'copy' | 'location' | 'folder' | 'printer' | 'instagram' | 'smartphone' | 'ambulance' | 'police' | 'fire' | 'facebook' | 'youtube' | 'apple' | 'playStore' | 'huawei' | 'textFont' | 'glasses' | 'heading' | 'mask' | 'pause' | 'textAlign' | 'letterSpacing' | 'textUnderline' | 'maximize' | 'colors' | 'colorPicker' | 'droplet' | 'disability' | 'wheelchair' | 'brain' | 'flash' | 'touch';
239
+ type DgaIconName = 'access' | 'check' | 'close' | 'info' | 'helpCircle' | 'warning' | 'alertCircle' | 'error' | 'eye' | 'eyeOff' | 'eyeOffSlash' | 'filter' | 'success' | 'checkCircle' | 'checkCircleAlt' | 'chevronDown' | 'chevronLeft' | 'chevronRight' | 'arrowUp' | 'arrowDown' | 'arrowLeft' | 'arrowRight' | 'arrowUp02' | 'arrowDown02' | 'arrowLeft02' | 'arrowRight02' | 'arrowNext' | 'arrowPrev' | 'arrowNext02' | 'arrowPrev02' | 'shrink' | 'search' | 'user' | 'users' | 'menu' | 'menuAlt' | 'moreHorizontal' | 'moreVertical' | 'mic' | 'home' | 'download' | 'upload' | 'calendar' | 'calendarAlt' | 'clock' | 'star' | 'starFilled' | 'plus' | 'plusSign' | 'minus' | 'external' | 'bell' | 'bellAlt' | 'lock' | 'lockPassword' | 'logout' | 'idCard' | 'link' | 'linkAlt' | 'globe' | 'moon' | 'moonAlt' | 'sun' | 'sunAlt' | 'translation' | 'mail' | 'message' | 'phone' | 'building' | 'share' | 'refresh' | 'highlighter' | 'door' | 'zoomIn' | 'zoomOut' | 'sort' | 'sortUp' | 'sortDown' | 'tradeUp' | 'tradeDown' | 'paintBoard' | 'cloud' | 'sunCloud' | 'moonCloud' | 'rain' | 'rainZap' | 'snow' | 'wind' | 'desert' | 'cart' | 'award' | 'cookie' | 'x' | 'linkedin' | 'whatsapp' | 'book' | 'headphones' | 'devices' | 'badgeCheck' | 'riyal' | 'copy' | 'location' | 'folder' | 'printer' | 'instagram' | 'smartphone' | 'ambulance' | 'police' | 'fire' | 'facebook' | 'youtube' | 'apple' | 'playStore' | 'huawei' | 'textFont' | 'glasses' | 'heading' | 'mask' | 'pause' | 'textAlign' | 'letterSpacing' | 'textUnderline' | 'maximize' | 'colors' | 'colorPicker' | 'droplet' | 'disability' | 'wheelchair' | 'brain' | 'flash' | 'touch';
159
240
  /** Decode `@platformscode/icons` data-URI exports into inline SVG markup. */
160
241
  declare function decodePlatformscodeSvg(dataUri: string): string;
161
242
  /** Pre-decoded SVG markup keyed by friendly `DgaIconName`. */
@@ -359,6 +440,8 @@ interface DgaSelectOption {
359
440
  label: string;
360
441
  value: string;
361
442
  disabled?: boolean;
443
+ /** Extra text matched when `searchable` (e.g. country name). */
444
+ keywords?: string;
362
445
  }
363
446
  type DgaSelectOpenMode = 'dropdown' | 'always';
364
447
  type DgaSelectSize = DgaFormControlSize;
@@ -513,6 +596,10 @@ declare class DgaSlider {
513
596
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DgaSlider, "input[type=\"range\"][dgaSlider]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
514
597
  }
515
598
 
599
+ /**
600
+ * Multi-cell one-time password input.
601
+ * The control group is always LTR so digits read and fill left-to-right on RTL pages.
602
+ */
516
603
  declare class DgaOtp implements ControlValueAccessor {
517
604
  private cells;
518
605
  readonly length: _angular_core.InputSignal<number>;
@@ -534,6 +621,9 @@ declare class DgaOtp implements ControlValueAccessor {
534
621
  onInput(index: number, raw: string): void;
535
622
  onKey(index: number, event: KeyboardEvent): void;
536
623
  onPaste(event: ClipboardEvent): void;
624
+ private focusAt;
625
+ /** Keep native inputs in sync when autofill bypasses `maxlength`. */
626
+ private syncDom;
537
627
  private commit;
538
628
  writeValue(value: string): void;
539
629
  registerOnChange(fn: (value: string) => void): void;
@@ -629,13 +719,13 @@ interface DgaPhoneCountry {
629
719
  code: string;
630
720
  /** Short label shown in the prefix select. */
631
721
  label: string;
632
- /** Optional longer name for option text. */
722
+ /** Optional longer name for option text / search. */
633
723
  name?: string;
634
724
  }
635
725
  /** GCC-first dial codes for contact forms. */
636
726
  declare const DGA_PHONE_COUNTRIES: DgaPhoneCountry[];
637
727
  /**
638
- * Phone field with country-code prefix select.
728
+ * Phone field with searchable country-code prefix select.
639
729
  * The control group is always LTR so digits and codes read correctly in RTL pages.
640
730
  */
641
731
  declare class DgaPhoneInput implements ControlValueAccessor {
@@ -654,10 +744,13 @@ declare class DgaPhoneInput implements ControlValueAccessor {
654
744
  readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
655
745
  /** Full E.164-ish combined value: country code + national digits. */
656
746
  readonly value: _angular_core.ModelSignal<string>;
747
+ readonly countryOptions: _angular_core.Signal<DgaSelectOption[]>;
748
+ readonly resolvedStatus: _angular_core.Signal<_a_nemreen_dga_ui.DgaFormStatus>;
657
749
  readonly groupClasses: _angular_core.Signal<string>;
658
750
  private onChange;
659
751
  onTouched: () => void;
660
752
  constructor();
753
+ onCountryCode(next: string | string[]): void;
661
754
  writeValue(value: string): void;
662
755
  registerOnChange(fn: (value: string) => void): void;
663
756
  registerOnTouched(fn: () => void): void;
@@ -809,7 +902,7 @@ declare class DgaDatePickerComponent implements ControlValueAccessor {
809
902
  readonly viewParts: _angular_core.WritableSignal<DgaCalendarParts>;
810
903
  readonly draftStart: _angular_core.WritableSignal<Date | null>;
811
904
  readonly draftEnd: _angular_core.WritableSignal<Date | null>;
812
- readonly rangePickPhase: _angular_core.WritableSignal<"start" | "end">;
905
+ readonly rangePickPhase: _angular_core.WritableSignal<"end" | "start">;
813
906
  readonly typedValue: _angular_core.WritableSignal<string | null>;
814
907
  readonly effectiveStatus: _angular_core.Signal<DgaFormStatus>;
815
908
  readonly panelMode: _angular_core.Signal<DgaDatePickerMode>;
@@ -1026,7 +1119,22 @@ declare class DgaModal {
1026
1119
  }
1027
1120
 
1028
1121
  type DgaToastVariant = 'neutral' | 'success' | 'info' | 'warning' | 'error';
1122
+ /**
1123
+ * Enter / exit motion:
1124
+ * - `fade` — opacity only
1125
+ * - `push` — drop in from the nearest vertical edge (default)
1126
+ * - `slide` — slide in from the nearest inline edge
1127
+ * - `scale` — fade + slight scale
1128
+ * - `none` — instant
1129
+ */
1130
+ type DgaToastAnimation = 'fade' | 'push' | 'slide' | 'scale' | 'none';
1131
+ /**
1132
+ * Viewport placement (logical start/end follow `dir`).
1133
+ * Default `top-end` matches prior fixed `end` + top chrome offset.
1134
+ */
1135
+ type DgaToastLocation = 'top-start' | 'top-center' | 'top-end' | 'bottom-start' | 'bottom-center' | 'bottom-end';
1029
1136
  declare class DgaToast implements OnDestroy {
1137
+ private readonly destroyRef;
1030
1138
  readonly open: _angular_core.ModelSignal<boolean>;
1031
1139
  readonly variant: _angular_core.InputSignal<DgaToastVariant>;
1032
1140
  readonly title: _angular_core.InputSignal<string>;
@@ -1034,27 +1142,83 @@ declare class DgaToast implements OnDestroy {
1034
1142
  readonly closeLabel: _angular_core.InputSignal<string>;
1035
1143
  /** Auto-dismiss after ms; `0` disables. Default 5s per a11y guidance. */
1036
1144
  readonly duration: _angular_core.InputSignal<number>;
1145
+ /** Circular countdown ring on the dismiss control when `duration > 0`. */
1146
+ readonly countdown: _angular_core.InputSignalWithTransform<boolean, unknown>;
1147
+ /** Pause auto-dismiss while the pointer is over the toast. */
1148
+ readonly pauseOnHover: _angular_core.InputSignalWithTransform<boolean, unknown>;
1149
+ /** Pause auto-dismiss while focus is inside the toast. */
1150
+ readonly pauseOnFocus: _angular_core.InputSignalWithTransform<boolean, unknown>;
1151
+ /** Enter / exit motion. Default `push` (from nearest vertical edge). */
1152
+ readonly animation: _angular_core.InputSignal<DgaToastAnimation>;
1153
+ /** Viewport corner / edge. Default `top-end`. */
1154
+ readonly location: _angular_core.InputSignal<DgaToastLocation>;
1037
1155
  readonly closed: _angular_core.OutputEmitterRef<void>;
1038
- private timer;
1156
+ /** Keeps the toast mounted while the exit animation plays. */
1157
+ readonly rendered: _angular_core.WritableSignal<boolean>;
1158
+ readonly leaving: _angular_core.WritableSignal<boolean>;
1159
+ /** Remaining fraction of duration (1 → 0). */
1160
+ readonly progress: _angular_core.WritableSignal<number>;
1161
+ readonly ringR = 10;
1162
+ readonly ringC: number;
1163
+ private remainingMs;
1164
+ private totalMs;
1165
+ private paused;
1166
+ private hoverPaused;
1167
+ private focusPaused;
1168
+ private rafId;
1169
+ private lastTick;
1170
+ private exitTimer;
1171
+ private readonly reduceMotionFlag;
1039
1172
  readonly classes: _angular_core.Signal<string>;
1173
+ readonly hostClass: _angular_core.Signal<string>;
1174
+ readonly isTop: _angular_core.Signal<boolean>;
1175
+ /** Clear sticky announcement / reserved chrome, then a small gap. */
1176
+ readonly edgeTop: _angular_core.Signal<"calc(var(--dga-announcement-offset, 0px) + 1rem)" | null>;
1177
+ readonly edgeBottom: _angular_core.Signal<"1rem" | null>;
1040
1178
  readonly iconName: _angular_core.Signal<DgaIconName>;
1041
- readonly iconTone: _angular_core.Signal<"success" | "warning" | "error" | "muted" | "current">;
1179
+ readonly iconTone: _angular_core.Signal<"warning" | "error" | "success" | "muted" | "current">;
1180
+ readonly showCountdown: _angular_core.Signal<boolean>;
1181
+ readonly reduceMotion: _angular_core.WritableSignal<boolean>;
1182
+ readonly ringDashOffset: _angular_core.Signal<number>;
1183
+ private readonly animClass;
1042
1184
  constructor();
1043
1185
  ngOnDestroy(): void;
1044
1186
  dismiss(): void;
1045
- private clearTimer;
1187
+ onAnimationEnd(event: AnimationEvent): void;
1188
+ onPointerEnter(): void;
1189
+ onPointerLeave(): void;
1190
+ onFocusIn(): void;
1191
+ onFocusOut(event: FocusEvent): void;
1192
+ private beginClose;
1193
+ private finishClose;
1194
+ private resetTicker;
1195
+ private syncPaused;
1196
+ private startTicker;
1197
+ private stopTicker;
1198
+ private clearExitTimer;
1046
1199
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaToast, never>;
1047
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaToast, "dga-toast", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, ["*"], true, never>;
1200
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaToast, "dga-toast", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "countdown": { "alias": "countdown"; "required": false; "isSignal": true; }; "pauseOnHover": { "alias": "pauseOnHover"; "required": false; "isSignal": true; }; "pauseOnFocus": { "alias": "pauseOnFocus"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "location": { "alias": "location"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, ["*"], true, never>;
1048
1201
  }
1049
1202
 
1050
1203
  interface DgaToastShowOptions {
1051
1204
  title?: string;
1052
1205
  message?: string;
1053
1206
  variant?: DgaToastVariant;
1207
+ /** Auto-dismiss after ms; `0` disables. Default 5000. */
1054
1208
  duration?: number;
1055
1209
  dismissible?: boolean;
1056
- }
1057
- interface DgaToastRequest extends Required<Pick<DgaToastShowOptions, 'title' | 'message' | 'variant' | 'duration' | 'dismissible'>> {
1210
+ /** Circular countdown on the dismiss control. Default true when duration > 0. */
1211
+ countdown?: boolean;
1212
+ /** Pause auto-dismiss while hovered. Default true. */
1213
+ pauseOnHover?: boolean;
1214
+ /** Pause auto-dismiss while focused. Default true. */
1215
+ pauseOnFocus?: boolean;
1216
+ /** Enter / exit motion. Default `push`. */
1217
+ animation?: DgaToastAnimation;
1218
+ /** Viewport placement. Default `top-end`. */
1219
+ location?: DgaToastLocation;
1220
+ }
1221
+ interface DgaToastRequest extends Required<Pick<DgaToastShowOptions, 'title' | 'message' | 'variant' | 'duration' | 'dismissible' | 'countdown' | 'pauseOnHover' | 'pauseOnFocus' | 'animation' | 'location'>> {
1058
1222
  id: number;
1059
1223
  }
1060
1224
  /**
@@ -1222,9 +1386,194 @@ declare class DgaMenu {
1222
1386
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaMenu, "dga-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "triggerLabel": { "alias": "triggerLabel"; "required": false; "isSignal": true; }; "leadingIcon": { "alias": "leadingIcon"; "required": false; "isSignal": true; }; "showChevron": { "alias": "showChevron"; "required": false; "isSignal": true; }; "menuMinWidth": { "alias": "menuMinWidth"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "selected": "selected"; "selectedValue": "selectedValue"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
1223
1387
  }
1224
1388
 
1389
+ type DgaContextMenuItemType = 'item' | 'checkbox' | 'radio' | 'divider' | 'label';
1390
+ interface DgaContextMenuItem {
1391
+ /** Required for actionable items. */
1392
+ label?: string;
1393
+ value?: string;
1394
+ icon?: DgaIconName;
1395
+ /** Shortcut keys shown trailing — `"⌘K"` or `['Ctrl', 'K']`. */
1396
+ shortcut?: string | readonly string[];
1397
+ danger?: boolean;
1398
+ disabled?: boolean;
1399
+ divider?: boolean;
1400
+ type?: DgaContextMenuItemType;
1401
+ /** Checkbox / radio checked state. */
1402
+ checked?: boolean;
1403
+ /** Nested submenu items. */
1404
+ children?: DgaContextMenuItem[];
1405
+ }
1406
+ /** Marks projected content as the context-menu trigger surface. */
1407
+ declare class DgaContextMenuTrigger {
1408
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaContextMenuTrigger, never>;
1409
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DgaContextMenuTrigger, "[dgaContextMenuTrigger]", never, {}, {}, never, never, true, never>;
1410
+ }
1411
+ /**
1412
+ * Right-click / long-press context menu (shadcn-style).
1413
+ *
1414
+ * @see https://ui.shadcn.com/docs/components/base/context-menu
1415
+ *
1416
+ * @example
1417
+ * ```html
1418
+ * <dga-context-menu [items]="items" (selected)="onSelect($event)">
1419
+ * <div dgaContextMenuTrigger class="rounded-md border p-3xl">
1420
+ * Right click here
1421
+ * </div>
1422
+ * </dga-context-menu>
1423
+ * ```
1424
+ */
1425
+ declare class DgaContextMenu {
1426
+ private readonly host;
1427
+ private readonly injector;
1428
+ private readonly destroyRef;
1429
+ private readonly surfaceRef;
1430
+ private readonly menuRef;
1431
+ readonly items: _angular_core.InputSignal<DgaContextMenuItem[]>;
1432
+ readonly open: _angular_core.ModelSignal<boolean>;
1433
+ /** Enable long-press on touch (default true). */
1434
+ readonly longPress: _angular_core.InputSignalWithTransform<boolean, unknown>;
1435
+ readonly longPressMs: _angular_core.InputSignal<number>;
1436
+ readonly menuMinWidth: _angular_core.InputSignal<string>;
1437
+ readonly selected: _angular_core.OutputEmitterRef<DgaContextMenuItem>;
1438
+ readonly selectedValue: _angular_core.OutputEmitterRef<string>;
1439
+ readonly opened: _angular_core.OutputEmitterRef<void>;
1440
+ readonly closed: _angular_core.OutputEmitterRef<void>;
1441
+ readonly panelStyle: _angular_core.WritableSignal<Record<string, string>>;
1442
+ readonly subStyle: _angular_core.WritableSignal<Record<string, string>>;
1443
+ readonly openSubIndex: _angular_core.WritableSignal<number | null>;
1444
+ readonly isRtl: _angular_core.WritableSignal<boolean>;
1445
+ private readonly seq;
1446
+ readonly listId: string;
1447
+ private activeIndex;
1448
+ private pointer;
1449
+ private longPressTimer;
1450
+ private readonly onReposition;
1451
+ constructor();
1452
+ menuClasses(): string;
1453
+ itemId(index: number): string;
1454
+ trackItem(item: DgaContextMenuItem, index: number): string;
1455
+ shortcutKeys(item: DgaContextMenuItem): string[] | null;
1456
+ itemClass(item: DgaContextMenuItem): string;
1457
+ onContextMenu(event: MouseEvent): void;
1458
+ onTouchStart(event: TouchEvent): void;
1459
+ onTouchEnd(): void;
1460
+ onItemClick(item: DgaContextMenuItem, event: MouseEvent): void;
1461
+ onItemEnter(item: DgaContextMenuItem, index: number, event: PointerEvent): void;
1462
+ selectItem(item: DgaContextMenuItem): void;
1463
+ close(restoreFocus?: boolean): void;
1464
+ onMenuKey(event: KeyboardEvent): void;
1465
+ onDocumentPointer(event: PointerEvent): void;
1466
+ onDocumentKeydown(event: KeyboardEvent): void;
1467
+ private openAtPointer;
1468
+ private clearLongPress;
1469
+ private isSelectable;
1470
+ private firstSelectableIndex;
1471
+ private stepIndex;
1472
+ private portalMenuToBody;
1473
+ private detachPortaledMenu;
1474
+ private syncPanelPosition;
1475
+ private syncSubPosition;
1476
+ private focusItem;
1477
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaContextMenu, never>;
1478
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaContextMenu, "dga-context-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "longPress": { "alias": "longPress"; "required": false; "isSignal": true; }; "longPressMs": { "alias": "longPressMs"; "required": false; "isSignal": true; }; "menuMinWidth": { "alias": "menuMinWidth"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "selected": "selected"; "selectedValue": "selectedValue"; "opened": "opened"; "closed": "closed"; }, never, ["*"], true, never>;
1479
+ }
1480
+
1481
+ interface DgaCommandItem {
1482
+ /** Stable id used for tracking / selection. */
1483
+ id: string;
1484
+ label: string;
1485
+ value?: string;
1486
+ icon?: DgaIconName;
1487
+ /** Shortcut keys — `"⌘P"` or `['Ctrl', 'P']`. */
1488
+ shortcut?: string | readonly string[];
1489
+ disabled?: boolean;
1490
+ /** Extra search tokens (labels are always searchable). */
1491
+ keywords?: readonly string[];
1492
+ }
1493
+ interface DgaCommandGroup {
1494
+ heading?: string;
1495
+ items: DgaCommandItem[];
1496
+ }
1497
+ type DgaCommandAppearance = 'panel' | 'dialog';
1498
+ /**
1499
+ * Command palette — searchable actions (cmdk / shadcn-style).
1500
+ *
1501
+ * Use `appearance="dialog"` for a centered modal palette, or `panel` for inline.
1502
+ *
1503
+ * @see https://ui.shadcn.com/docs/components/base/command
1504
+ *
1505
+ * @example
1506
+ * ```html
1507
+ * <dga-command
1508
+ * [(open)]="cmdOpen"
1509
+ * appearance="dialog"
1510
+ * [groups]="commandGroups"
1511
+ * (selected)="run($event)"
1512
+ * />
1513
+ * ```
1514
+ */
1515
+ declare class DgaCommand {
1516
+ private readonly destroyRef;
1517
+ private readonly injector;
1518
+ private readonly queryInput;
1519
+ readonly groups: _angular_core.InputSignal<DgaCommandGroup[]>;
1520
+ /** Flat items when you do not need group headings. */
1521
+ readonly items: _angular_core.InputSignal<DgaCommandItem[]>;
1522
+ readonly open: _angular_core.ModelSignal<boolean>;
1523
+ readonly appearance: _angular_core.InputSignal<DgaCommandAppearance>;
1524
+ readonly placeholder: _angular_core.InputSignal<string>;
1525
+ readonly emptyLabel: _angular_core.InputSignal<string>;
1526
+ readonly clearLabel: _angular_core.InputSignal<string>;
1527
+ readonly dialogLabel: _angular_core.InputSignal<string>;
1528
+ readonly listLabel: _angular_core.InputSignal<string>;
1529
+ readonly closeOnSelect: _angular_core.InputSignalWithTransform<boolean, unknown>;
1530
+ readonly closeOnBackdrop: _angular_core.InputSignalWithTransform<boolean, unknown>;
1531
+ /** Optional global shortcut to toggle (Ctrl/⌘+K). Dialog mode only. */
1532
+ readonly hotkey: _angular_core.InputSignalWithTransform<boolean, unknown>;
1533
+ readonly selected: _angular_core.OutputEmitterRef<DgaCommandItem>;
1534
+ readonly selectedValue: _angular_core.OutputEmitterRef<string>;
1535
+ readonly opened: _angular_core.OutputEmitterRef<void>;
1536
+ readonly closed: _angular_core.OutputEmitterRef<void>;
1537
+ readonly queryChange: _angular_core.OutputEmitterRef<string>;
1538
+ readonly query: _angular_core.WritableSignal<string>;
1539
+ readonly activeId: _angular_core.WritableSignal<string | null>;
1540
+ private readonly seq;
1541
+ readonly listId: string;
1542
+ private previousFocus;
1543
+ private wasOpen;
1544
+ /** Panel is always shown; dialog only when `open`. */
1545
+ readonly show: _angular_core.Signal<boolean>;
1546
+ readonly filteredGroups: _angular_core.Signal<DgaCommandGroup[]>;
1547
+ readonly flatFiltered: _angular_core.Signal<DgaCommandItem[]>;
1548
+ readonly activeDescendant: _angular_core.Signal<string | null>;
1549
+ constructor();
1550
+ optionId(id: string): string;
1551
+ shortcutKeys(item: DgaCommandItem): string[] | null;
1552
+ onQueryInput(event: Event): void;
1553
+ clearQuery(): void;
1554
+ setActive(id: string): void;
1555
+ select(item: DgaCommandItem): void;
1556
+ close(): void;
1557
+ onBackdrop(): void;
1558
+ onRootKey(event: KeyboardEvent): void;
1559
+ onInputKey(event: KeyboardEvent): void;
1560
+ onHotkey(event: KeyboardEvent): void;
1561
+ private moveActive;
1562
+ private resolveGroups;
1563
+ private matches;
1564
+ private normalize;
1565
+ private focusInput;
1566
+ private restoreFocus;
1567
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaCommand, never>;
1568
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaCommand, "dga-command", never, { "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "dialogLabel": { "alias": "dialogLabel"; "required": false; "isSignal": true; }; "listLabel": { "alias": "listLabel"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; "hotkey": { "alias": "hotkey"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "selected": "selected"; "selectedValue": "selectedValue"; "opened": "opened"; "closed": "closed"; "queryChange": "queryChange"; }, never, never, true, never>;
1569
+ }
1570
+
1225
1571
  type DgaDrawerSide = 'start' | 'end';
1226
1572
  declare class DgaDrawer {
1573
+ private readonly doc;
1574
+ private readonly destroyRef;
1227
1575
  private readonly injector;
1576
+ private readonly rootRef;
1228
1577
  private readonly panel;
1229
1578
  readonly open: _angular_core.ModelSignal<boolean>;
1230
1579
  readonly title: _angular_core.InputSignal<string>;
@@ -1235,12 +1584,16 @@ declare class DgaDrawer {
1235
1584
  readonly closed: _angular_core.OutputEmitterRef<void>;
1236
1585
  readonly titleId: string;
1237
1586
  private previousFocus;
1238
- private previousOverflow;
1587
+ private previousBodyOverflow;
1588
+ private previousHtmlOverflow;
1589
+ private scrollLocked;
1239
1590
  readonly panelClasses: _angular_core.Signal<string>;
1240
1591
  constructor();
1241
1592
  close(): void;
1242
1593
  onBackdrop(): void;
1243
1594
  onKeydown(event: KeyboardEvent): void;
1595
+ private portalToBody;
1596
+ private removePortaledRoot;
1244
1597
  private focusInitial;
1245
1598
  private trapFocus;
1246
1599
  private getFocusable;
@@ -1316,6 +1669,114 @@ declare class DgaImagePopup {
1316
1669
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaImagePopup, "dga-image-popup", never, { "images": { "alias": "images"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "imageTransition": { "alias": "imageTransition"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "prevLabel": { "alias": "prevLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "activeIndex": "activeIndexChange"; "closed": "closed"; "opened": "opened"; }, never, never, true, never>;
1317
1670
  }
1318
1671
 
1672
+ /** Logical placements (RTL-aware via inset-inline). */
1673
+ type DgaTourPlacement = 'top' | 'bottom' | 'start' | 'end' | 'auto';
1674
+ type DgaTourPersist = 'local' | 'session' | 'none';
1675
+ interface DgaTourStep {
1676
+ /** Optional stable id for analytics. */
1677
+ id?: string;
1678
+ /**
1679
+ * CSS selector for the highlighted element.
1680
+ * Omit or leave empty for a centered intro / outro card.
1681
+ */
1682
+ target?: string;
1683
+ title: string;
1684
+ description: string;
1685
+ placement?: DgaTourPlacement;
1686
+ /** Scroll the target into view before measuring (default true). */
1687
+ scroll?: boolean;
1688
+ /** Extra padding around the spotlight hole (px). */
1689
+ padding?: number;
1690
+ }
1691
+ interface SpotRect {
1692
+ top: number;
1693
+ left: number;
1694
+ width: number;
1695
+ height: number;
1696
+ }
1697
+ interface PopoverPos {
1698
+ top: number;
1699
+ left: number;
1700
+ placement: Exclude<DgaTourPlacement, 'auto'>;
1701
+ }
1702
+ /**
1703
+ * Multi-step onboarding tour with spotlight + coachmark.
1704
+ *
1705
+ * Targets elements via CSS selectors (e.g. `[data-dga-action="login"]`).
1706
+ * Empty `target` steps render a centered welcome / finish card.
1707
+ *
1708
+ * @example
1709
+ * ```html
1710
+ * <dga-tour
1711
+ * [(open)]="tourOpen"
1712
+ * [steps]="tourSteps"
1713
+ * persist="local"
1714
+ * persistKey="portal-onboarding"
1715
+ * />
1716
+ * ```
1717
+ */
1718
+ declare class DgaTour {
1719
+ private readonly doc;
1720
+ private readonly destroyRef;
1721
+ private readonly injector;
1722
+ private readonly rootRef;
1723
+ readonly open: _angular_core.ModelSignal<boolean>;
1724
+ readonly steps: _angular_core.InputSignal<DgaTourStep[]>;
1725
+ readonly stepIndex: _angular_core.ModelSignal<number>;
1726
+ readonly nextLabel: _angular_core.InputSignal<string>;
1727
+ readonly prevLabel: _angular_core.InputSignal<string>;
1728
+ readonly skipLabel: _angular_core.InputSignal<string>;
1729
+ readonly doneLabel: _angular_core.InputSignal<string>;
1730
+ /** Template: `{current}` and `{total}` */
1731
+ readonly stepOfLabel: _angular_core.InputSignal<string>;
1732
+ readonly allowSkip: _angular_core.InputSignalWithTransform<boolean, unknown>;
1733
+ readonly closeOnBackdrop: _angular_core.InputSignalWithTransform<boolean, unknown>;
1734
+ /** Auto-open on first visit when persist storage has no flag. */
1735
+ readonly autoStart: _angular_core.InputSignalWithTransform<boolean, unknown>;
1736
+ readonly persist: _angular_core.InputSignal<DgaTourPersist>;
1737
+ readonly persistKey: _angular_core.InputSignal<string>;
1738
+ readonly completed: _angular_core.OutputEmitterRef<void>;
1739
+ readonly skipped: _angular_core.OutputEmitterRef<void>;
1740
+ readonly closed: _angular_core.OutputEmitterRef<void>;
1741
+ readonly stepChange: _angular_core.OutputEmitterRef<number>;
1742
+ readonly titleId: string;
1743
+ readonly spot: _angular_core.WritableSignal<SpotRect | null>;
1744
+ readonly popover: _angular_core.WritableSignal<PopoverPos | null>;
1745
+ private previousFocus;
1746
+ private resizeObserver;
1747
+ private measureRaf;
1748
+ private unbindViewport;
1749
+ private autoStarted;
1750
+ readonly visible: _angular_core.Signal<boolean>;
1751
+ readonly current: _angular_core.Signal<DgaTourStep>;
1752
+ readonly isLast: _angular_core.Signal<boolean>;
1753
+ readonly progressLabel: _angular_core.Signal<string>;
1754
+ constructor();
1755
+ next(): void;
1756
+ prev(): void;
1757
+ skip(): void;
1758
+ onBackdrop(): void;
1759
+ onKeydown(event: KeyboardEvent): void;
1760
+ private goTo;
1761
+ private finish;
1762
+ private scheduleMeasure;
1763
+ private measure;
1764
+ private placePopover;
1765
+ private bindObservers;
1766
+ /** Move layer to `document.body` so sticky announcement / headers cannot sit above it. */
1767
+ private portalToBody;
1768
+ private removePortaledRoot;
1769
+ private teardownObservers;
1770
+ private focusCard;
1771
+ private restoreFocus;
1772
+ private clampIndex;
1773
+ private storage;
1774
+ private hasSeen;
1775
+ private markSeen;
1776
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaTour, never>;
1777
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaTour, "dga-tour", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "stepIndex": { "alias": "stepIndex"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "prevLabel": { "alias": "prevLabel"; "required": false; "isSignal": true; }; "skipLabel": { "alias": "skipLabel"; "required": false; "isSignal": true; }; "doneLabel": { "alias": "doneLabel"; "required": false; "isSignal": true; }; "stepOfLabel": { "alias": "stepOfLabel"; "required": false; "isSignal": true; }; "allowSkip": { "alias": "allowSkip"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; "autoStart": { "alias": "autoStart"; "required": false; "isSignal": true; }; "persist": { "alias": "persist"; "required": false; "isSignal": true; }; "persistKey": { "alias": "persistKey"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "stepIndex": "stepIndexChange"; "completed": "completed"; "skipped": "skipped"; "closed": "closed"; "stepChange": "stepChange"; }, never, never, true, never>;
1778
+ }
1779
+
1319
1780
  type DgaAlertVariant = 'neutral' | 'critical' | 'error' | 'warning' | 'info' | 'success';
1320
1781
  /** Layout: default card alert, or compact single-line banner. */
1321
1782
  type DgaAlertDisplay = 'default' | 'inline';
@@ -1337,7 +1798,7 @@ declare class DgaAlert {
1337
1798
  readonly titleClasses: _angular_core.Signal<string>;
1338
1799
  readonly descriptionClasses: _angular_core.Signal<string>;
1339
1800
  readonly iconName: _angular_core.Signal<DgaIconName>;
1340
- readonly iconTone: _angular_core.Signal<"success" | "warning" | "error" | "muted" | "current">;
1801
+ readonly iconTone: _angular_core.Signal<"warning" | "error" | "success" | "muted" | "current">;
1341
1802
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaAlert, never>;
1342
1803
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaAlert, "dga-alert", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; }, never, ["*", "[dgaAlertActions]"], true, never>;
1343
1804
  }
@@ -1856,6 +2317,7 @@ type DgaA11yLetterSpacing = '0' | '0.04em' | '0.08em' | '0.12em';
1856
2317
  type DgaA11yWordSpacing = '0' | '0.16em' | '0.32em' | '0.48em';
1857
2318
  declare class DgaAccessibilityService {
1858
2319
  private readonly doc;
2320
+ private readonly zone;
1859
2321
  private liveRegion;
1860
2322
  private opener;
1861
2323
  private mqMotion;
@@ -1872,15 +2334,20 @@ declare class DgaAccessibilityService {
1872
2334
  readonly maskBand: _angular_core.WritableSignal<number>;
1873
2335
  /** Center Y of the reading-mask band in px. */
1874
2336
  readonly maskY: _angular_core.WritableSignal<number>;
1875
- readonly reduceMotion: _angular_core.WritableSignal<boolean>;
1876
- readonly highlightLinks: _angular_core.WritableSignal<boolean>;
1877
- readonly highlightTitles: _angular_core.WritableSignal<boolean>;
1878
- readonly highContrast: _angular_core.WritableSignal<boolean>;
1879
- readonly dyslexia: _angular_core.WritableSignal<boolean>;
1880
- readonly readingMask: _angular_core.WritableSignal<boolean>;
1881
- readonly motorTargets: _angular_core.WritableSignal<boolean>;
1882
- /** Signal bumped when locale attrs change (for computed copy). */
1883
- readonly localeEpoch: _angular_core.WritableSignal<number>;
2337
+ readonly reduceMotion: _angular_core.Signal<boolean>;
2338
+ readonly highlightLinks: _angular_core.Signal<boolean>;
2339
+ readonly highlightTitles: _angular_core.Signal<boolean>;
2340
+ readonly highContrast: _angular_core.Signal<boolean>;
2341
+ readonly dyslexia: _angular_core.Signal<boolean>;
2342
+ readonly readingMask: _angular_core.Signal<boolean>;
2343
+ readonly motorTargets: _angular_core.Signal<boolean>;
2344
+ /**
2345
+ * Reactive UI locale — kept in sync with `<html lang>` / `data-locale`
2346
+ * (including when `DgaLocaleService` updates the document).
2347
+ */
2348
+ readonly locale: _angular_core.WritableSignal<"ar" | "en">;
2349
+ private readonly effectiveModes;
2350
+ private localeObserver;
1884
2351
  constructor();
1885
2352
  open(opener?: HTMLElement | null): void;
1886
2353
  close(): void;
@@ -1896,23 +2363,29 @@ declare class DgaAccessibilityService {
1896
2363
  cycleLineHeight(): void;
1897
2364
  cycleLetterSpacing(): void;
1898
2365
  cycleWordSpacing(): void;
2366
+ /** Step font size (−1 / +1), wrapping within available levels. */
2367
+ stepFontStep(delta: number): void;
2368
+ stepTextAlign(delta: number): void;
2369
+ stepLineHeight(delta: number): void;
2370
+ stepLetterSpacing(delta: number): void;
2371
+ stepWordSpacing(delta: number): void;
1899
2372
  adjustMaskBand(delta: number): void;
1900
2373
  setMaskY(y: number): void;
1901
2374
  reset(): void;
1902
2375
  announce(msg: string): void;
1903
- /** Current UI locale inferred from `<html lang>`. */
1904
- get locale(): 'ar' | 'en';
2376
+ /** Current UI locale inferred from `<html lang>` / `data-locale`. */
2377
+ private readDomLocale;
2378
+ /** Keep `locale` reactive when portal / DgaLocaleService mutates `<html>`. */
2379
+ private bindLocaleObserver;
1905
2380
  /**
1906
2381
  * Toggle AR/EN on `<html>` (`lang` / `dir` / `data-locale`).
1907
2382
  * Compatible with DgaLocaleService attribute contract.
1908
2383
  */
1909
2384
  toggleLocale(): 'ar' | 'en';
1910
2385
  activeModeCount(section: 'modes' | 'readable' | 'visual'): number;
2386
+ /** Total active settings across profiles + tools + filters (for FAB badge). */
2387
+ activeSettingCount(): number;
1911
2388
  private applyBundleExtras;
1912
- /** Primitive left on by direct toggle (not only via a bundle). */
1913
- private userKeptPrimitive;
1914
- private syncDerived;
1915
- /** Lazily inject OpenDyslexic (Latin). Arabic falls through to Readex Pro. */
1916
2389
  private ensureDyslexiaFont;
1917
2390
  private applyToDocument;
1918
2391
  private persist;
@@ -1924,8 +2397,8 @@ declare class DgaAccessibilityService {
1924
2397
  }
1925
2398
 
1926
2399
  type DgaAccessibilityPosition = 'end' | 'start' | 'left' | 'right';
1927
- type SectionId = 'modes' | 'readable' | 'visual';
1928
- type SectionOpen = SectionId | null;
2400
+ type AdjustToggleId = 'dyslexia' | 'highlight-titles' | 'highlight-links' | 'reading-mask' | 'reduce-motion';
2401
+ type AdjustStepperId = 'font' | 'align' | 'line' | 'letter' | 'word';
1929
2402
  declare class DgaAccessibility {
1930
2403
  readonly a11y: DgaAccessibilityService;
1931
2404
  readonly position: _angular_core.InputSignal<DgaAccessibilityPosition>;
@@ -1937,7 +2410,6 @@ declare class DgaAccessibility {
1937
2410
  readonly panelId = "dga-accessibility-panel";
1938
2411
  private readonly panelRef;
1939
2412
  readonly fabBottom: _angular_core.Signal<string>;
1940
- readonly sectionOpen: _angular_core.WritableSignal<SectionOpen>;
1941
2413
  readonly resetArmed: _angular_core.WritableSignal<boolean>;
1942
2414
  readonly liveMsg: _angular_core.WritableSignal<string>;
1943
2415
  private resetTimer;
@@ -1947,10 +2419,14 @@ declare class DgaAccessibility {
1947
2419
  close: string;
1948
2420
  panelLabel: string;
1949
2421
  title: string;
1950
- sectionModes: string;
1951
- sectionReadable: string;
1952
- sectionVisual: string;
1953
- langToggle: string;
2422
+ sectionActive: string;
2423
+ sectionProfiles: string;
2424
+ sectionAdjust: string;
2425
+ sectionFilters: string;
2426
+ profilesHint: string;
2427
+ chipJump: string;
2428
+ stepDecrease: string;
2429
+ stepIncrease: string;
1954
2430
  reset: string;
1955
2431
  resetConfirm: string;
1956
2432
  announcedReset: string;
@@ -2020,23 +2496,32 @@ declare class DgaAccessibility {
2020
2496
  label: string;
2021
2497
  desc: string;
2022
2498
  }[]>;
2023
- readonly readableTiles: _angular_core.Signal<{
2024
- id: string;
2499
+ readonly adjustToggles: _angular_core.Signal<{
2500
+ id: AdjustToggleId;
2501
+ mode: DgaA11yMode;
2502
+ icon: DgaIconName;
2503
+ label: string;
2504
+ active: boolean;
2505
+ }[]>;
2506
+ readonly adjustSteppers: _angular_core.Signal<{
2507
+ id: AdjustStepperId;
2025
2508
  icon: DgaIconName;
2026
2509
  label: string;
2027
- kind: "cycle" | "toggle";
2028
2510
  active: boolean;
2029
- level: number;
2030
2511
  valueLabel: string;
2031
- ariaLabel: string;
2032
- onClick: () => void;
2033
2512
  }[]>;
2034
2513
  readonly visualTiles: _angular_core.Signal<{
2035
- value: DgaA11yVisualFilter;
2514
+ value: Exclude<DgaA11yVisualFilter, "none">;
2036
2515
  label: string;
2037
2516
  icon: DgaIconName;
2038
2517
  active: boolean;
2039
2518
  }[]>;
2519
+ readonly activeChips: _angular_core.Signal<{
2520
+ id: string;
2521
+ label: string;
2522
+ controlId: string;
2523
+ }[]>;
2524
+ readonly activeBadgeCount: _angular_core.Signal<number>;
2040
2525
  readonly fabClasses: _angular_core.Signal<string>;
2041
2526
  readonly panelClasses: _angular_core.Signal<string>;
2042
2527
  constructor();
@@ -2044,14 +2529,13 @@ declare class DgaAccessibility {
2044
2529
  onPointerMove(event: PointerEvent): void;
2045
2530
  onPointerUp(): void;
2046
2531
  onFabClick(event: MouseEvent): void;
2047
- toggleSection(id: SectionId): void;
2048
2532
  onBundle(id: DgaA11yBundle, enabled: boolean): void;
2049
- onToggleMode(mode: DgaA11yMode): void;
2533
+ onToggleMode(mode: DgaA11yMode, enabled?: boolean): void;
2534
+ onStep(id: AdjustStepperId, delta: number): void;
2050
2535
  onFilter(value: DgaA11yVisualFilter): void;
2051
- onLocale(): void;
2536
+ focusControl(controlId: string): void;
2052
2537
  onReset(): void;
2053
2538
  onMaskDragStart(event: PointerEvent): void;
2054
- tileClasses(active: boolean): string;
2055
2539
  private panelPositionClass;
2056
2540
  private announce;
2057
2541
  private onMaskKeys;
@@ -2233,6 +2717,11 @@ declare class DgaStepper {
2233
2717
  readonly steps: _angular_core.InputSignal<DgaStep[]>;
2234
2718
  readonly active: _angular_core.ModelSignal<number>;
2235
2719
  readonly label: _angular_core.InputSignal<string>;
2720
+ /**
2721
+ * Optional veto for step clicks (e.g. form wizard validation).
2722
+ * Return false to keep the current step.
2723
+ */
2724
+ readonly beforeActiveChange: _angular_core.InputSignal<((next: number, current: number) => boolean) | undefined>;
2236
2725
  stepStatus(index: number): DgaStepStatus;
2237
2726
  stepButtonClasses(index: number): string;
2238
2727
  labelClasses(index: number): string;
@@ -2240,7 +2729,7 @@ declare class DgaStepper {
2240
2729
  railTone(index: number): string;
2241
2730
  go(index: number): void;
2242
2731
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaStepper, never>;
2243
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaStepper, "dga-stepper", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, never, never, true, never>;
2732
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaStepper, "dga-stepper", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "beforeActiveChange": { "alias": "beforeActiveChange"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, never, never, true, never>;
2244
2733
  }
2245
2734
 
2246
2735
  interface DgaTocItem {
@@ -2294,7 +2783,7 @@ declare class DgaSideNav {
2294
2783
  /**
2295
2784
  * `auto` = horizontal chips below lg; `vertical` = always sidebar (use in drawers).
2296
2785
  */
2297
- readonly layout: _angular_core.InputSignal<"vertical" | "auto">;
2786
+ readonly layout: _angular_core.InputSignal<"auto" | "vertical">;
2298
2787
  readonly label: _angular_core.InputSignal<string>;
2299
2788
  readonly toggleLabel: _angular_core.InputSignal<string>;
2300
2789
  readonly select: _angular_core.OutputEmitterRef<DgaSideNavItem>;
@@ -2394,9 +2883,9 @@ declare class DgaNavRail {
2394
2883
  readonly smoothScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
2395
2884
  readonly select: _angular_core.OutputEmitterRef<DgaNavRailItem>;
2396
2885
  readonly expandChange: _angular_core.OutputEmitterRef<boolean>;
2397
- readonly edgeAttr: _angular_core.Signal<"start" | "end" | "right" | "left" | null>;
2886
+ readonly edgeAttr: _angular_core.Signal<"end" | "start" | "right" | "left" | null>;
2398
2887
  readonly offsetCss: _angular_core.Signal<string>;
2399
- readonly tooltipPlacement: _angular_core.Signal<"start" | "end">;
2888
+ readonly tooltipPlacement: _angular_core.Signal<"end" | "start">;
2400
2889
  readonly iconSize: _angular_core.Signal<"sm" | "md" | "lg">;
2401
2890
  readonly expandIcon: _angular_core.Signal<"chevronLeft" | "chevronRight">;
2402
2891
  readonly listGapClass: _angular_core.Signal<"gap-xs" | "gap-sm" | "gap-md">;
@@ -2985,6 +3474,9 @@ declare class DgaHeader {
2985
3474
  onAction(action: DgaHeaderAction, event?: Event): void;
2986
3475
  onMobileAction(action: DgaHeaderAction, event?: Event): void;
2987
3476
  closeUtilityOverlays(): void;
3477
+ /** Ask demo portal font/brand menus to close so they don't stack over header panels. */
3478
+ private closePortalChromeMenus;
3479
+ onCloseHeaderOverlays(): void;
2988
3480
  toggleSearch(): void;
2989
3481
  onSearchModalOpenChange(open: boolean): void;
2990
3482
  focusSearchInput(): void;
@@ -3337,7 +3829,14 @@ declare class DgaAnnouncementBar {
3337
3829
  /** Fired when the action control has no `actionHref` (button / chip / link-as-button). */
3338
3830
  readonly action: _angular_core.OutputEmitterRef<void>;
3339
3831
  readonly dismissed: _angular_core.WritableSignal<boolean>;
3832
+ private readonly doc;
3833
+ private readonly hostEl;
3834
+ private readonly destroyRef;
3835
+ private resizeObserver;
3340
3836
  constructor();
3837
+ private bindLayoutOffset;
3838
+ private syncLayoutOffset;
3839
+ private clearLayoutOffset;
3341
3840
  readonly iconTone: _angular_core.Signal<DgaIconTone>;
3342
3841
  readonly iconShellClasses: _angular_core.Signal<string>;
3343
3842
  readonly barClasses: _angular_core.Signal<string>;
@@ -3988,5 +4487,5 @@ declare function dgaSaudiCityOptions(locale?: 'ar' | 'en', cities?: readonly Dga
3988
4487
  value: string;
3989
4488
  }[];
3990
4489
 
3991
- export { DGA_GREGORIAN_MONTHS, DGA_HIJRI_MONTHS, DGA_ICON_NAMES, DGA_ICON_SVG, DGA_LOGICAL_ICON_NAMES, DGA_PHONE_COUNTRIES, DGA_RIYAL_SVG_PATH, DGA_RIYAL_VIEWBOX, DGA_SAUDI_CITIES, DGA_WEEKDAYS, DgaAccessibility, DgaAccessibilityService, DgaAccordion, DgaAccordionItem, DgaAlert, DgaAnnouncementBar, DgaAppShell, DgaAuthCard, DgaAutocomplete, DgaAvatar, DgaBadge, DgaBreadcrumb, DgaButton, DgaCard, DgaCardMedia, DgaCarousel, DgaCarouselSlideDirective, DgaChart, DgaChatbot, DgaCheckbox, DgaChip, DgaChipInput, DgaClamp, DgaCode, DgaContentSwitcher, DgaContentSwitcherPanel, DgaCookies, DgaCopy, DgaDatePickerComponent as DgaDatePicker, DgaDescriptionList, DgaDialog, DgaDivider, DgaDrawer, DgaDualNav, DgaEmpty, DgaExpandable, DgaExport, DgaExportToolbar, DgaFeedback, DgaField, DgaFilterBar, DgaFooter, DgaFormControl, DgaFormEnd, DgaFormStart, DgaGrid, DgaHeader, DgaHero, DgaIcon, DgaIconBadge, DgaIconFontService, DgaImagePopup, DgaInfoList, DgaInput, DgaLabel, DgaLink, DgaList, DgaLogoTile, DgaMenu, DgaMetric, DgaModal, DgaMultiselect, DgaNativeSelect, DgaNavRail, DgaNumber, DgaNumberInput, DgaOtp, DgaPageFeedback, DgaPageHero, DgaPagination, DgaPersona, DgaPhoneInput, DgaPreloader, DgaProgress, DgaQuote, DgaRadio, DgaRating, DgaRiyal, DgaScrollTop, DgaSection, DgaSelect, DgaShare, DgaSideInfo, DgaSideNav, DgaSkeleton, DgaSkipLink, DgaSlider, DgaSpinner, DgaStepper, DgaSwitch, DgaTab, DgaTable, DgaTabs, DgaTimePicker, DgaTimeline, DgaToast, DgaToastOutlet, DgaToastService, DgaToc, DgaToolbar, DgaTooltip, DgaTopBar, DgaUpload, decodePlatformscodeSvg, dgaAddMonths, dgaClampDate, dgaCoerceDate, dgaCompareDays, dgaDaysInMonth, dgaFormatDate, dgaGetCalendarParts, dgaGroupSaudiCitiesByRegion, dgaModeFromFormat, dgaMonthNames, dgaMonthStartWeekday, dgaNormalizeTime, dgaParseDate, dgaPartsToDate, dgaProvideValueAccessor, dgaSameDay, dgaSaudiCityOptions, dgaTodayUtc };
3992
- export type { DgaA11yBundle, DgaA11yMode, DgaA11yVisualFilter, DgaAccessibilityPosition, DgaAccordionSection, DgaAlertDisplay, DgaAlertVariant, DgaAnnouncementActionVariant, DgaAnnouncementAlign, DgaAnnouncementDensity, DgaAnnouncementElevation, DgaAnnouncementPersist, DgaAnnouncementTone, DgaAppShellAppearance, DgaAutocompleteOption, DgaAvatarSize, DgaBadgeSize, DgaBadgeVariant, DgaBreadcrumbItem, DgaBreadcrumbSeparator, DgaButtonSize, DgaButtonVariant, DgaCalendar, DgaCalendarParts, DgaCardActionsAlign, DgaCardAppearance, DgaCardBadge, DgaCardBorder, DgaCardPadding, DgaCardShadow, DgaCarouselSlide, DgaChartDataset, DgaChartPoint, DgaChartType, DgaChatbotAnimation, DgaChatbotFabTone, DgaChatbotMessage, DgaChatbotPosition, DgaChatbotSize, DgaCheckboxSize, DgaChipVariant, DgaContentSwitcherItem, DgaCookieCategory, DgaCookieConsent, DgaCookieDecision, DgaCookiePreferences, DgaCookiesAlign, DgaCookiesPosition, DgaCurrency, DgaDateCalendar, DgaDatePickerMode, DgaDateRangeValue, DgaDescriptionItem, DgaDescriptionLayout, DgaDialogSize, DgaDividerOrientation, DgaDrawerSide, DgaDualNavCategory, DgaDualNavSection, DgaEmptyAppearance, DgaExportColumn, DgaExportData, DgaExportScope, DgaFeedbackSubmit, DgaFilterItem, DgaFooterAppearance, DgaFooterColumn, DgaFooterIconGroup, DgaFooterIconLink, DgaFooterLink, DgaFooterLogo, DgaFormControlSize, DgaFormStatus, DgaGridCols, DgaGridGap, DgaHeaderAction, DgaHeaderAppearance, DgaHeaderLoginConfig, DgaHeaderNotification, DgaHeaderNotificationAction, DgaHeaderNotificationTone, DgaHeaderNotificationsConfig, DgaHeaderSearchConfig, DgaHeaderSearchSuggestion, DgaHeaderUserConfig, DgaHeaderUserMenuLink, DgaHeroAppearance, DgaHeroImageMask, DgaHeroOverlayTone, DgaHeroSlide, DgaHeroTransition, DgaIconBadgeAppearance, DgaIconBadgeSize, DgaIconName, DgaIconSize, DgaIconTone, DgaImagePopupAnimation, DgaImagePopupImage, DgaImagePopupImageTransition, DgaImagePopupSource, DgaInfoListItem, DgaInputSize, DgaLinkVariant, DgaMenuItem, DgaMetricAppearance, DgaMetricTrend, DgaMobileNavMode, DgaModalAnimation, DgaModalSize, DgaMultiselectOption, DgaNativeSelectSize, DgaNavColumn, DgaNavDropdown, DgaNavDropdownLayout, DgaNavDropdownVariant, DgaNavFeatured, DgaNavItem, DgaNavLink, DgaNavRailActiveStyle, DgaNavRailAppearance, DgaNavRailItem, DgaNavRailPosition, DgaNavRailSize, DgaPageFeedbackAgreementLink, DgaPageFeedbackAnswer, DgaPageFeedbackOption, DgaPageFeedbackPhase, DgaPageFeedbackSubmit, DgaPageHeroTone, DgaPhoneCountry, DgaPreloaderPersist, DgaProgressAppearance, DgaProgressSize, DgaProgressTone, DgaRadioSize, DgaRatingSize, DgaRiyalAppearance, DgaRiyalSize, DgaRiyalTone, DgaSaudiCity, DgaScrollTopPosition, DgaSectionTone, DgaSectionWidth, DgaSelectOpenMode, DgaSelectOption, DgaSelectSize, DgaShareAppearance, DgaSideInfoItem, DgaSideNavGroup, DgaSideNavItem, DgaSkeletonAnimation, DgaSkeletonRadius, DgaSkeletonShape, DgaSkeletonSize, DgaSortDir, DgaSpinnerSize, DgaSpinnerTone, DgaStampNotice, DgaStep, DgaStepStatus, DgaSwitchSize, DgaTabItem, DgaTableColumn, DgaTableDensity, DgaTimeFormat, DgaTimePickerFormat, DgaTimePickerSize, DgaTimelineItem, DgaToastRequest, DgaToastShowOptions, DgaToastVariant, DgaTocItem, DgaTooltipPlacement, DgaTooltipVariant, DgaUploadAppearance, DgaUploadFile, DgaUploadRejectReason, DgaUploadRejection };
4490
+ export { DGA_GREGORIAN_MONTHS, DGA_HIJRI_MONTHS, DGA_ICON_NAMES, DGA_ICON_SVG, DGA_LOGICAL_ICON_NAMES, DGA_PAGE_TRANSITION_NAMES, DGA_PHONE_COUNTRIES, DGA_RIYAL_SVG_PATH, DGA_RIYAL_VIEWBOX, DGA_SAUDI_CITIES, DGA_WEEKDAYS, DgaAccessibility, DgaAccessibilityService, DgaAccordion, DgaAccordionItem, DgaAlert, DgaAnnouncementBar, DgaAppShell, DgaAuthCard, DgaAutocomplete, DgaAvatar, DgaBadge, DgaBreadcrumb, DgaButton, DgaCard, DgaCardMedia, DgaCarousel, DgaCarouselSlideDirective, DgaChart, DgaChatbot, DgaCheckbox, DgaChip, DgaChipInput, DgaClamp, DgaCode, DgaCommand, DgaContentSwitcher, DgaContentSwitcherPanel, DgaContextMenu, DgaContextMenuTrigger, DgaCookies, DgaCopy, DgaDatePickerComponent as DgaDatePicker, DgaDescriptionList, DgaDialog, DgaDivider, DgaDrawer, DgaDualNav, DgaEmpty, DgaExpandable, DgaExport, DgaExportToolbar, DgaFeedback, DgaField, DgaFilterBar, DgaFooter, DgaFormControl, DgaFormEnd, DgaFormStart, DgaGrid, DgaHeader, DgaHero, DgaIcon, DgaIconBadge, DgaIconFontService, DgaImagePopup, DgaInfoList, DgaInput, DgaKbd, DgaKbdGroup, DgaLabel, DgaLink, DgaList, DgaLogoTile, DgaMenu, DgaMetric, DgaModal, DgaMultiselect, DgaNativeSelect, DgaNavRail, DgaNumber, DgaNumberInput, DgaOtp, DgaPageFeedback, DgaPageHero, DgaPageTransition, DgaPagination, DgaPersona, DgaPhoneInput, DgaPreloader, DgaProgress, DgaQuote, DgaRadio, DgaRating, DgaRiyal, DgaScrollTop, DgaSection, DgaSelect, DgaShare, DgaSideInfo, DgaSideNav, DgaSkeleton, DgaSkipLink, DgaSlider, DgaSpinner, DgaStepper, DgaSwitch, DgaTab, DgaTable, DgaTabs, DgaTimePicker, DgaTimeline, DgaToast, DgaToastOutlet, DgaToastService, DgaToc, DgaToolbar, DgaTooltip, DgaTopBar, DgaTour, DgaUpload, decodePlatformscodeSvg, dgaAddMonths, dgaClampDate, dgaCoerceDate, dgaCompareDays, dgaDaysInMonth, dgaFormatDate, dgaGetCalendarParts, dgaGroupSaudiCitiesByRegion, dgaModeFromFormat, dgaMonthNames, dgaMonthStartWeekday, dgaNormalizeTime, dgaParseDate, dgaPartsToDate, dgaProvideValueAccessor, dgaSameDay, dgaSaudiCityOptions, dgaTodayUtc };
4491
+ export type { DgaA11yBundle, DgaA11yMode, DgaA11yVisualFilter, DgaAccessibilityPosition, DgaAccordionSection, DgaAlertDisplay, DgaAlertVariant, DgaAnnouncementActionVariant, DgaAnnouncementAlign, DgaAnnouncementDensity, DgaAnnouncementElevation, DgaAnnouncementPersist, DgaAnnouncementTone, DgaAppShellAppearance, DgaAutocompleteOption, DgaAvatarSize, DgaBadgeSize, DgaBadgeVariant, DgaBreadcrumbItem, DgaBreadcrumbSeparator, DgaButtonSize, DgaButtonVariant, DgaCalendar, DgaCalendarParts, DgaCardActionsAlign, DgaCardAppearance, DgaCardBadge, DgaCardBorder, DgaCardPadding, DgaCardShadow, DgaCarouselSlide, DgaChartDataset, DgaChartPoint, DgaChartType, DgaChatbotAnimation, DgaChatbotFabTone, DgaChatbotMessage, DgaChatbotPosition, DgaChatbotSize, DgaCheckboxSize, DgaChipVariant, DgaCommandAppearance, DgaCommandGroup, DgaCommandItem, DgaContentSwitcherItem, DgaContextMenuItem, DgaContextMenuItemType, DgaCookieCategory, DgaCookieConsent, DgaCookieDecision, DgaCookiePreferences, DgaCookiesAlign, DgaCookiesPosition, DgaCurrency, DgaDateCalendar, DgaDatePickerMode, DgaDateRangeValue, DgaDescriptionItem, DgaDescriptionLayout, DgaDialogSize, DgaDividerOrientation, DgaDrawerSide, DgaDualNavCategory, DgaDualNavSection, DgaEmptyAppearance, DgaExportColumn, DgaExportData, DgaExportScope, DgaFeedbackSubmit, DgaFilterItem, DgaFooterAppearance, DgaFooterColumn, DgaFooterIconGroup, DgaFooterIconLink, DgaFooterLink, DgaFooterLogo, DgaFormControlSize, DgaFormStatus, DgaGridCols, DgaGridGap, DgaHeaderAction, DgaHeaderAppearance, DgaHeaderLoginConfig, DgaHeaderNotification, DgaHeaderNotificationAction, DgaHeaderNotificationTone, DgaHeaderNotificationsConfig, DgaHeaderSearchConfig, DgaHeaderSearchSuggestion, DgaHeaderUserConfig, DgaHeaderUserMenuLink, DgaHeroAppearance, DgaHeroImageMask, DgaHeroOverlayTone, DgaHeroSlide, DgaHeroTransition, DgaIconBadgeAppearance, DgaIconBadgeSize, DgaIconName, DgaIconSize, DgaIconTone, DgaImagePopupAnimation, DgaImagePopupImage, DgaImagePopupImageTransition, DgaImagePopupSource, DgaInfoListItem, DgaInputSize, DgaLinkVariant, DgaMenuItem, DgaMetricAppearance, DgaMetricTrend, DgaMobileNavMode, DgaModalAnimation, DgaModalSize, DgaMultiselectOption, DgaNativeSelectSize, DgaNavColumn, DgaNavDropdown, DgaNavDropdownLayout, DgaNavDropdownVariant, DgaNavFeatured, DgaNavItem, DgaNavLink, DgaNavRailActiveStyle, DgaNavRailAppearance, DgaNavRailItem, DgaNavRailPosition, DgaNavRailSize, DgaPageFeedbackAgreementLink, DgaPageFeedbackAnswer, DgaPageFeedbackOption, DgaPageFeedbackPhase, DgaPageFeedbackSubmit, DgaPageHeroTone, DgaPageTransitionName, DgaPhoneCountry, DgaPreloaderPersist, DgaProgressAppearance, DgaProgressSize, DgaProgressTone, DgaRadioSize, DgaRatingSize, DgaRiyalAppearance, DgaRiyalSize, DgaRiyalTone, DgaSaudiCity, DgaScrollTopPosition, DgaSectionTone, DgaSectionWidth, DgaSelectOpenMode, DgaSelectOption, DgaSelectSize, DgaShareAppearance, DgaSideInfoItem, DgaSideNavGroup, DgaSideNavItem, DgaSkeletonAnimation, DgaSkeletonRadius, DgaSkeletonShape, DgaSkeletonSize, DgaSortDir, DgaSpinnerSize, DgaSpinnerTone, DgaStampNotice, DgaStep, DgaStepStatus, DgaSwitchSize, DgaTabItem, DgaTableColumn, DgaTableDensity, DgaTimeFormat, DgaTimePickerFormat, DgaTimePickerSize, DgaTimelineItem, DgaToastAnimation, DgaToastLocation, DgaToastRequest, DgaToastShowOptions, DgaToastVariant, DgaTocItem, DgaTooltipPlacement, DgaTooltipVariant, DgaTourPersist, DgaTourPlacement, DgaTourStep, DgaUploadAppearance, DgaUploadFile, DgaUploadRejectReason, DgaUploadRejection };