@a.nemreen/dga-ui 0.3.4 → 0.3.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a.nemreen/dga-ui",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "DGA Angular UI library — standalone forms, overlays, navigation, and portal shell with RTL-first Tailwind styling",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -5,7 +5,6 @@ import { ControlValueAccessor, DgaFormControlSize, DgaFormStatus } from '@a.nemr
5
5
  type DgaDateCalendar = 'gregorian' | 'hijri';
6
6
  /** Picker UI mode — inferred from `format` tokens when not set explicitly. */
7
7
  type DgaDatePickerMode = 'day' | 'month' | 'year';
8
- type DgaDateLocale = 'ar' | 'en';
9
8
  interface DgaCalendarParts {
10
9
  year: number;
11
10
  month: number;
@@ -39,7 +38,7 @@ declare function dgaParseDate(value: string, format: string, calendar: DgaDateCa
39
38
  declare function dgaSameDay(a: Date | null, b: Date | null, calendar?: DgaDateCalendar): boolean;
40
39
  declare function dgaCompareDays(a: Date | null, b: Date | null, calendar?: DgaDateCalendar): number;
41
40
  declare function dgaClampDate(date: Date, min?: Date | null, max?: Date | null, calendar?: DgaDateCalendar): Date;
42
- declare function dgaMonthNames(calendar: DgaDateCalendar, locale: 'ar' | 'en'): readonly string[];
41
+ declare function dgaMonthNames(calendar: DgaDateCalendar, locale: string): readonly string[];
43
42
  /** First weekday (0=Sun) of the given calendar month. */
44
43
  declare function dgaMonthStartWeekday(year: number, month: number, calendar: DgaDateCalendar): number;
45
44
  declare function dgaTodayUtc(): Date;
@@ -66,7 +65,7 @@ declare class DgaDatePickerComponent implements ControlValueAccessor {
66
65
  readonly range: _angular_core.InputSignalWithTransform<boolean, unknown>;
67
66
  readonly format: _angular_core.InputSignal<string>;
68
67
  readonly mode: _angular_core.InputSignal<DgaDatePickerMode | null>;
69
- readonly locale: _angular_core.InputSignal<DgaDateLocale>;
68
+ readonly locale: _angular_core.InputSignal<string>;
70
69
  readonly minDate: _angular_core.InputSignal<string | Date | null>;
71
70
  readonly maxDate: _angular_core.InputSignal<string | Date | null>;
72
71
  readonly yearBefore: _angular_core.InputSignal<number>;
@@ -124,6 +124,23 @@ interface DgaHeaderNotificationsConfig {
124
124
  items?: DgaHeaderNotification[];
125
125
  }
126
126
  type DgaHeaderNotificationAction = 'read' | 'view' | 'dismiss' | 'select';
127
+ /**
128
+ * Built-in language picker for the action whose `id` matches `actionId`
129
+ * (default `'lang'`). Lists registered locales with native names.
130
+ */
131
+ interface DgaHeaderLocaleOption {
132
+ code: string;
133
+ nativeName: string;
134
+ }
135
+ interface DgaHeaderLocaleConfig {
136
+ actionId?: string;
137
+ /** Panel heading. Default: `'Language'`. */
138
+ title?: string;
139
+ closeLabel?: string;
140
+ /** Active locale code. */
141
+ current: string;
142
+ options: DgaHeaderLocaleOption[];
143
+ }
127
144
  /** Link row inside the login panel footer. */
128
145
  interface DgaHeaderLoginLink {
129
146
  id?: string;
@@ -251,6 +268,11 @@ declare class DgaHeader {
251
268
  * (default `'login'`). After auth, the same action opens the user menu.
252
269
  */
253
270
  readonly login: _angular_core.InputSignal<DgaHeaderLoginConfig | null>;
271
+ /**
272
+ * When set, the header action matching `localeMenu.actionId`
273
+ * (default `'lang'`) opens the language picker dropdown.
274
+ */
275
+ readonly localeMenu: _angular_core.InputSignal<DgaHeaderLocaleConfig | null>;
254
276
  /** Authenticated user profile shown in the account menu. */
255
277
  readonly user: _angular_core.InputSignal<DgaHeaderUserConfig | null>;
256
278
  /** Whether the user is signed in (two-way). */
@@ -273,12 +295,15 @@ declare class DgaHeader {
273
295
  }>;
274
296
  readonly logout: _angular_core.OutputEmitterRef<void>;
275
297
  readonly userLinkClick: _angular_core.OutputEmitterRef<DgaHeaderUserMenuLink>;
298
+ /** Emits when a language is chosen from the locale menu. */
299
+ readonly localeSelect: _angular_core.OutputEmitterRef<string>;
276
300
  /** Emits on click of any top-level nav link or dropdown link (desktop + mobile). */
277
301
  readonly navLinkClick: _angular_core.OutputEmitterRef<DgaNavLink | DgaNavItem>;
278
302
  readonly mobileOpen: _angular_core.WritableSignal<boolean>;
279
303
  readonly openDropdown: _angular_core.WritableSignal<number | null>;
280
304
  readonly searchOpen: _angular_core.WritableSignal<boolean>;
281
305
  readonly notificationsOpen: _angular_core.WritableSignal<boolean>;
306
+ readonly localeMenuOpen: _angular_core.WritableSignal<boolean>;
282
307
  readonly loginOpen: _angular_core.WritableSignal<boolean>;
283
308
  readonly userMenuOpen: _angular_core.WritableSignal<boolean>;
284
309
  readonly voiceListening: _angular_core.WritableSignal<boolean>;
@@ -303,6 +328,7 @@ declare class DgaHeader {
303
328
  private readonly utilLayerRef;
304
329
  readonly searchPanelId = "dga-header-search-panel";
305
330
  readonly notificationsPanelId = "dga-header-notifications-panel";
331
+ readonly localePanelId = "dga-header-locale-panel";
306
332
  readonly loginPanelId = "dga-header-login-panel";
307
333
  readonly userPanelId = "dga-header-user-panel";
308
334
  readonly isPortal: _angular_core.Signal<boolean>;
@@ -312,6 +338,8 @@ declare class DgaHeader {
312
338
  readonly searchActionId: _angular_core.Signal<string>;
313
339
  readonly notificationsConfig: _angular_core.Signal<DgaHeaderNotificationsConfig | null>;
314
340
  readonly notificationsActionId: _angular_core.Signal<string>;
341
+ readonly localeMenuConfig: _angular_core.Signal<DgaHeaderLocaleConfig | null>;
342
+ readonly localeActionId: _angular_core.Signal<string>;
315
343
  readonly loginConfig: _angular_core.Signal<DgaHeaderLoginConfig | null>;
316
344
  readonly loginActionId: _angular_core.Signal<string>;
317
345
  readonly userConfig: _angular_core.Signal<DgaHeaderUserConfig | null>;
@@ -359,6 +387,7 @@ declare class DgaHeader {
359
387
  isIconOnly(action: DgaHeaderAction): boolean;
360
388
  isSearchAction(action: DgaHeaderAction): boolean;
361
389
  isNotificationsAction(action: DgaHeaderAction): boolean;
390
+ isLocaleAction(action: DgaHeaderAction): boolean;
362
391
  isLoginAction(action: DgaHeaderAction): boolean;
363
392
  actionTooltip(action: DgaHeaderAction): string;
364
393
  actionAriaLabel(action: DgaHeaderAction): string;
@@ -387,6 +416,9 @@ declare class DgaHeader {
387
416
  closeSearch(clearVoice?: boolean): void;
388
417
  toggleNotifications(trigger?: HTMLElement | null): void;
389
418
  closeNotifications(): void;
419
+ toggleLocaleMenu(trigger?: HTMLElement | null): void;
420
+ closeLocaleMenu(): void;
421
+ onLocalePick(code: string): void;
390
422
  toggleLogin(trigger?: HTMLElement | null): void;
391
423
  closeLogin(): void;
392
424
  toggleUserMenu(trigger?: HTMLElement | null): void;
@@ -420,8 +452,8 @@ declare class DgaHeader {
420
452
  onNavLinkClick(link: DgaNavLink | DgaNavItem, event: MouseEvent): void;
421
453
  onDocClick(event: MouseEvent): void;
422
454
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaHeader, never>;
423
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaHeader, "dga-header", never, { "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "brandSlogan": { "alias": "brandSlogan"; "required": false; "isSignal": true; }; "brandLogo": { "alias": "brandLogo"; "required": false; "isSignal": true; }; "brandLogoAlt": { "alias": "brandLogoAlt"; "required": false; "isSignal": true; }; "brandPlaceholder": { "alias": "brandPlaceholder"; "required": false; "isSignal": true; }; "brandHref": { "alias": "brandHref"; "required": false; "isSignal": true; }; "navLabel": { "alias": "navLabel"; "required": false; "isSignal": true; }; "menuToggleLabel": { "alias": "menuToggleLabel"; "required": false; "isSignal": true; }; "menuCloseLabel": { "alias": "menuCloseLabel"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "mobileNav": { "alias": "mobileNav"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "searchQuery": { "alias": "searchQuery"; "required": false; "isSignal": true; }; "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "login": { "alias": "login"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "authenticated": { "alias": "authenticated"; "required": false; "isSignal": true; }; "loginSubmitting": { "alias": "loginSubmitting"; "required": false; "isSignal": true; }; "loginError": { "alias": "loginError"; "required": false; "isSignal": true; }; }, { "searchQuery": "searchQueryChange"; "authenticated": "authenticatedChange"; "loginSubmitting": "loginSubmittingChange"; "loginError": "loginErrorChange"; "actionClick": "actionClick"; "searchSubmit": "searchSubmit"; "searchSuggestionSelect": "searchSuggestionSelect"; "searchVoice": "searchVoice"; "notificationAction": "notificationAction"; "loginSubmit": "loginSubmit"; "logout": "logout"; "userLinkClick": "userLinkClick"; "navLinkClick": "navLinkClick"; }, ["customLoginForm", "customLoginFooter"], ["[dgaHeaderBrand]", "*", "[dgaHeaderEnd]", "[dgaHeaderLoginBeforeForm]", "[dgaHeaderLoginForm]", "[dgaHeaderLoginAfterFields]", "[dgaHeaderLoginFooter]"], true, never>;
455
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaHeader, "dga-header", never, { "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "brandSlogan": { "alias": "brandSlogan"; "required": false; "isSignal": true; }; "brandLogo": { "alias": "brandLogo"; "required": false; "isSignal": true; }; "brandLogoAlt": { "alias": "brandLogoAlt"; "required": false; "isSignal": true; }; "brandPlaceholder": { "alias": "brandPlaceholder"; "required": false; "isSignal": true; }; "brandHref": { "alias": "brandHref"; "required": false; "isSignal": true; }; "navLabel": { "alias": "navLabel"; "required": false; "isSignal": true; }; "menuToggleLabel": { "alias": "menuToggleLabel"; "required": false; "isSignal": true; }; "menuCloseLabel": { "alias": "menuCloseLabel"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "mobileNav": { "alias": "mobileNav"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "searchQuery": { "alias": "searchQuery"; "required": false; "isSignal": true; }; "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "login": { "alias": "login"; "required": false; "isSignal": true; }; "localeMenu": { "alias": "localeMenu"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "authenticated": { "alias": "authenticated"; "required": false; "isSignal": true; }; "loginSubmitting": { "alias": "loginSubmitting"; "required": false; "isSignal": true; }; "loginError": { "alias": "loginError"; "required": false; "isSignal": true; }; }, { "searchQuery": "searchQueryChange"; "authenticated": "authenticatedChange"; "loginSubmitting": "loginSubmittingChange"; "loginError": "loginErrorChange"; "actionClick": "actionClick"; "searchSubmit": "searchSubmit"; "searchSuggestionSelect": "searchSuggestionSelect"; "searchVoice": "searchVoice"; "notificationAction": "notificationAction"; "loginSubmit": "loginSubmit"; "logout": "logout"; "userLinkClick": "userLinkClick"; "localeSelect": "localeSelect"; "navLinkClick": "navLinkClick"; }, ["customLoginForm", "customLoginFooter"], ["[dgaHeaderBrand]", "*", "[dgaHeaderEnd]", "[dgaHeaderLoginBeforeForm]", "[dgaHeaderLoginForm]", "[dgaHeaderLoginAfterFields]", "[dgaHeaderLoginFooter]"], true, never>;
424
456
  }
425
457
 
426
458
  export { DgaHeader, DgaHeaderLoginAfterFields, DgaHeaderLoginBeforeForm, DgaHeaderLoginFooter, DgaHeaderLoginForm };
427
- export type { DgaHeaderAction, DgaHeaderAppearance, DgaHeaderLoginConfig, DgaHeaderLoginLink, DgaHeaderNotification, DgaHeaderNotificationAction, DgaHeaderNotificationTone, DgaHeaderNotificationsConfig, DgaHeaderSearchConfig, DgaHeaderSearchSuggestion, DgaHeaderUserConfig, DgaHeaderUserMenuLink, DgaMobileNavMode, DgaNavColumn, DgaNavDropdown, DgaNavDropdownLayout, DgaNavDropdownVariant, DgaNavFeatured, DgaNavItem, DgaNavLink };
459
+ export type { DgaHeaderAction, DgaHeaderAppearance, DgaHeaderLocaleConfig, DgaHeaderLocaleOption, DgaHeaderLoginConfig, DgaHeaderLoginLink, DgaHeaderNotification, DgaHeaderNotificationAction, DgaHeaderNotificationTone, DgaHeaderNotificationsConfig, DgaHeaderSearchConfig, DgaHeaderSearchSuggestion, DgaHeaderUserConfig, DgaHeaderUserMenuLink, DgaMobileNavMode, DgaNavColumn, DgaNavDropdown, DgaNavDropdownLayout, DgaNavDropdownVariant, DgaNavFeatured, DgaNavItem, DgaNavLink };
@@ -761,22 +761,37 @@ declare class DgaUpload implements ControlValueAccessor {
761
761
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaUpload, "dga-upload", never, { "filesInput": { "alias": "files"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "browseLabel": { "alias": "browseLabel"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "dragging": { "alias": "dragging"; "required": false; "isSignal": true; }; }, { "filesChange": "filesChange"; "rejected": "rejected"; "dragging": "draggingChange"; }, never, never, true, never>;
762
762
  }
763
763
 
764
+ /** Infer UI locale from `<html lang>` (avoids importing `@a.nemreen/dga-tokens` into ng-packagr graph). */
765
+ declare function dgaCurrentLocale(): string;
766
+ /** True when document writing direction is RTL. */
767
+ declare function dgaIsRtl(): boolean;
768
+ /** @deprecated Prefer {@link dgaCurrentLocale} or {@link dgaIsRtl} depending on intent. */
769
+ declare function dgaIsArabic(): boolean;
770
+ /** Localized string: plain text or a map keyed by locale code. */
771
+ type DgaLocalizedString = string | Record<string, string>;
772
+ /** Resolve a localized map for the active locale with en/ar fallbacks. */
773
+ declare function dgaResolveLocalized(value: DgaLocalizedString | undefined | null, locale: string, fallbackLocales?: readonly string[]): string | undefined;
774
+
775
+ type DgaPhoneCountryName = DgaLocalizedString;
764
776
  interface DgaPhoneCountry {
765
777
  /** Dial code including `+`, e.g. `+966`. */
766
778
  code: string;
767
779
  /** Short label shown in the prefix select. */
768
780
  label: string;
769
- /** Optional longer name for option text / search. */
770
- name?: string;
781
+ /** Optional longer name for option text / search (`string` or locale map). */
782
+ name?: DgaPhoneCountryName;
771
783
  }
772
- /** GCC-first dial codes for contact forms. */
784
+ /** Default dial codes KSA only; pass extras via `[countries]` to append. */
773
785
  declare const DGA_PHONE_COUNTRIES: DgaPhoneCountry[];
774
786
  /**
775
787
  * Phone field with searchable country-code prefix select.
776
788
  * The control group is always LTR so digits and codes read correctly in RTL pages.
777
789
  */
778
790
  declare class DgaPhoneInput implements ControlValueAccessor {
791
+ /** Extra dial codes appended after `DGA_PHONE_COUNTRIES` (KSA). */
779
792
  readonly countries: _angular_core.InputSignal<DgaPhoneCountry[]>;
793
+ /** Resolves localized `name` maps on country options. */
794
+ readonly locale: _angular_core.InputSignal<string>;
780
795
  readonly countryCode: _angular_core.ModelSignal<string>;
781
796
  readonly nationalNumber: _angular_core.ModelSignal<string>;
782
797
  readonly controlId: _angular_core.InputSignal<string>;
@@ -791,7 +806,10 @@ declare class DgaPhoneInput implements ControlValueAccessor {
791
806
  readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
792
807
  /** Full E.164-ish combined value: country code + national digits. */
793
808
  readonly value: _angular_core.ModelSignal<string>;
809
+ /** KSA first, then `[countries]` extras; duplicate codes are skipped. */
810
+ readonly resolvedCountries: _angular_core.Signal<DgaPhoneCountry[]>;
794
811
  readonly countryOptions: _angular_core.Signal<DgaSelectOption[]>;
812
+ readonly emptyLabel: _angular_core.Signal<"لا نتائج" | "No results">;
795
813
  readonly resolvedStatus: _angular_core.Signal<_a_nemreen_dga_ui.DgaFormStatus>;
796
814
  readonly groupClasses: _angular_core.Signal<string>;
797
815
  private onChange;
@@ -804,7 +822,7 @@ declare class DgaPhoneInput implements ControlValueAccessor {
804
822
  setDisabledState(isDisabled: boolean): void;
805
823
  private parseValue;
806
824
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaPhoneInput, never>;
807
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaPhoneInput, "dga-phone-input", never, { "countries": { "alias": "countries"; "required": false; "isSignal": true; }; "countryCode": { "alias": "countryCode"; "required": false; "isSignal": true; }; "nationalNumber": { "alias": "nationalNumber"; "required": false; "isSignal": true; }; "controlId": { "alias": "controlId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "codeLabel": { "alias": "codeLabel"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "countryCode": "countryCodeChange"; "nationalNumber": "nationalNumberChange"; "value": "valueChange"; }, never, never, true, never>;
825
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaPhoneInput, "dga-phone-input", never, { "countries": { "alias": "countries"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "countryCode": { "alias": "countryCode"; "required": false; "isSignal": true; }; "nationalNumber": { "alias": "nationalNumber"; "required": false; "isSignal": true; }; "controlId": { "alias": "controlId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "codeLabel": { "alias": "codeLabel"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "countryCode": "countryCodeChange"; "nationalNumber": "nationalNumberChange"; "value": "valueChange"; }, never, never, true, never>;
808
826
  }
809
827
 
810
828
  /** @deprecated Prefer `DgaSelectOption` — alias kept for existing imports. */
@@ -2662,14 +2680,20 @@ declare class DgaTopBar implements OnInit {
2662
2680
  readonly timeFormat: _angular_core.ModelSignal<DgaTimeFormat>;
2663
2681
  readonly showDate: _angular_core.InputSignal<boolean>;
2664
2682
  readonly showTime: _angular_core.InputSignal<boolean>;
2665
- /** `ar` Arabic labels; `en` English. */
2666
- readonly locale: _angular_core.InputSignal<"ar" | "en">;
2667
- readonly regionLabel: _angular_core.InputSignal<string>;
2668
- readonly stampLabel: _angular_core.InputSignal<string>;
2669
- readonly tabTextLg: _angular_core.InputSignal<string>;
2670
- readonly tabTextSm: _angular_core.InputSignal<string>;
2671
- readonly verifyText: _angular_core.InputSignal<string>;
2672
- readonly registrationLabel: _angular_core.InputSignal<string>;
2683
+ /** Locale code for date/time formatting and default stamp copy (`ar` vs fallback English). */
2684
+ readonly locale: _angular_core.InputSignal<string>;
2685
+ /** Overrides the locale-aware default region `aria-label`. */
2686
+ readonly regionLabel: _angular_core.InputSignal<string | undefined>;
2687
+ /** Overrides the locale-aware default stamp panel `aria-label`. */
2688
+ readonly stampLabel: _angular_core.InputSignal<string | undefined>;
2689
+ /** Overrides the locale-aware default desktop stamp sentence. */
2690
+ readonly tabTextLg: _angular_core.InputSignal<string | undefined>;
2691
+ /** Overrides the locale-aware default compact stamp sentence. */
2692
+ readonly tabTextSm: _angular_core.InputSignal<string | undefined>;
2693
+ /** Overrides the locale-aware default "How to verify?" link. */
2694
+ readonly verifyText: _angular_core.InputSignal<string | undefined>;
2695
+ /** Overrides the locale-aware default registration caption. */
2696
+ readonly registrationLabel: _angular_core.InputSignal<string | undefined>;
2673
2697
  /** DGA platform registration / license number shown in the expanded stamp. */
2674
2698
  readonly registrationId: _angular_core.InputSignal<string>;
2675
2699
  /**
@@ -2677,8 +2701,17 @@ declare class DgaTopBar implements OnInit {
2677
2701
  * @example https://raqmi.dga.gov.sa/platforms/platforms/…/platform-license
2678
2702
  */
2679
2703
  readonly registrationHref: _angular_core.InputSignal<string>;
2680
- readonly notices: _angular_core.InputSignal<DgaStampNotice[]>;
2704
+ /** Overrides the locale-aware default gov.sa / HTTPS notices. */
2705
+ readonly notices: _angular_core.InputSignal<DgaStampNotice[] | undefined>;
2681
2706
  private readonly now;
2707
+ private readonly defaults;
2708
+ readonly resolvedRegionLabel: _angular_core.Signal<string>;
2709
+ readonly resolvedStampLabel: _angular_core.Signal<string>;
2710
+ readonly resolvedTabTextLg: _angular_core.Signal<string>;
2711
+ readonly resolvedTabTextSm: _angular_core.Signal<string>;
2712
+ readonly resolvedVerifyText: _angular_core.Signal<string>;
2713
+ readonly resolvedRegistrationLabel: _angular_core.Signal<string>;
2714
+ readonly resolvedNotices: _angular_core.Signal<DgaStampNotice[]>;
2682
2715
  readonly dateLabel: _angular_core.Signal<string>;
2683
2716
  readonly timeLabel: _angular_core.Signal<string>;
2684
2717
  readonly calendarToggleLabel: _angular_core.Signal<"التبديل إلى التقويم الميلادي" | "Switch to Gregorian calendar" | "التبديل إلى التقويم الهجري" | "Switch to Hijri calendar">;
@@ -3691,7 +3724,7 @@ declare const DGA_SAUDI_CITIES: readonly DgaSaudiCity[];
3691
3724
  /** Group cities by English region name. */
3692
3725
  declare function dgaGroupSaudiCitiesByRegion(cities?: readonly DgaSaudiCity[]): Record<string, DgaSaudiCity[]>;
3693
3726
  /** Autocomplete-ready options (Arabic labels by default). */
3694
- declare function dgaSaudiCityOptions(locale?: 'ar' | 'en', cities?: readonly DgaSaudiCity[]): {
3727
+ declare function dgaSaudiCityOptions(locale?: string, cities?: readonly DgaSaudiCity[]): {
3695
3728
  label: string;
3696
3729
  value: string;
3697
3730
  }[];
@@ -3708,8 +3741,5 @@ declare function dgaSafeCssColor(value: string | null | undefined, fallback?: st
3708
3741
  /** Join truthy class names. */
3709
3742
  declare function dgaCx(...parts: Array<string | false | null | undefined>): string;
3710
3743
 
3711
- /** Infer UI locale from `<html lang>` (avoids importing `@a.nemreen/dga-tokens` into ng-packagr graph). */
3712
- declare function dgaIsArabic(): boolean;
3713
-
3714
- export { 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, 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, DgaCopy, DgaDescriptionList, DgaDialog, DgaDivider, DgaDrawer, DgaDualNav, DgaEmpty, DgaExpandable, DgaExport, DgaExportToolbar, DgaFeedback, DgaField, DgaFilterBar, DgaFooter, DgaFormControl, DgaFormEnd, DgaFormStart, DgaGrid, 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, DgaVideoPlayer, DgaWriting, dgaCx, dgaFormStatusFromInvalid, dgaGroupSaudiCitiesByRegion, dgaIsArabic, dgaNormalizeTime, dgaProvideValueAccessor, dgaResolveAppHref, dgaResolveVideoSource, dgaSafeCssColor, dgaSafeHref, dgaSaudiCityOptions };
3715
- export type { DgaAccordionSection, DgaAlertDisplay, DgaAlertVariant, DgaAnnouncementActionVariant, DgaAnnouncementAlign, DgaAnnouncementDensity, DgaAnnouncementElevation, DgaAnnouncementPersist, DgaAnnouncementTone, DgaAppShellAppearance, DgaAutocompleteOption, DgaAvatarSize, DgaBadgeSize, DgaBadgeVariant, DgaBreadcrumbItem, DgaBreadcrumbSeparator, DgaButtonSize, DgaButtonVariant, DgaCalendar, DgaCardActionsAlign, DgaCardAppearance, DgaCardBadge, DgaCardBorder, DgaCardPadding, DgaCardShadow, DgaCarouselSlide, DgaChartDataset, DgaChartPoint, DgaChartType, DgaChatbotAnimation, DgaChatbotFabTone, DgaChatbotMessage, DgaChatbotPosition, DgaChatbotSize, DgaCheckboxSize, DgaChipVariant, DgaCommandAppearance, DgaCommandGroup, DgaCommandItem, DgaContentSwitcherItem, DgaContextMenuItem, DgaContextMenuItemType, DgaCurrency, DgaDescriptionItem, DgaDescriptionLayout, DgaDialogSize, DgaDividerOrientation, DgaDrawerSide, DgaDualNavCategory, DgaDualNavSection, DgaEmptyAppearance, DgaExportColumn, DgaExportData, DgaExportScope, DgaFeedbackSubmit, DgaFilterItem, DgaFooterAppearance, DgaFooterColumn, DgaFooterIconGroup, DgaFooterIconLink, DgaFooterLink, DgaFooterLogo, DgaFormControlSize, DgaFormStatus, DgaGridCols, DgaGridGap, DgaHeroAppearance, DgaHeroImageMask, DgaHeroOverlayTone, DgaHeroSlide, DgaHeroTransition, DgaIconBadgeAppearance, DgaIconBadgeSize, DgaIconName, DgaIconSize, DgaIconTone, DgaImagePopupAnimation, DgaImagePopupImage, DgaImagePopupImageTransition, DgaImagePopupSource, DgaInfoListItem, DgaInputSize, DgaLinkVariant, DgaMenuItem, DgaMetricAppearance, DgaMetricTrend, DgaModalAnimation, DgaModalSize, DgaMultiselectOption, DgaNativeSelectSize, 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, DgaVideoProvider, DgaVideoRatio, DgaVideoSourceInfo, DgaWritingEffect };
3744
+ export { 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, 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, DgaCopy, DgaDescriptionList, DgaDialog, DgaDivider, DgaDrawer, DgaDualNav, DgaEmpty, DgaExpandable, DgaExport, DgaExportToolbar, DgaFeedback, DgaField, DgaFilterBar, DgaFooter, DgaFormControl, DgaFormEnd, DgaFormStart, DgaGrid, 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, DgaVideoPlayer, DgaWriting, dgaCurrentLocale, dgaCx, dgaFormStatusFromInvalid, dgaGroupSaudiCitiesByRegion, dgaIsArabic, dgaIsRtl, dgaNormalizeTime, dgaProvideValueAccessor, dgaResolveAppHref, dgaResolveLocalized, dgaResolveVideoSource, dgaSafeCssColor, dgaSafeHref, dgaSaudiCityOptions };
3745
+ export type { DgaAccordionSection, DgaAlertDisplay, DgaAlertVariant, DgaAnnouncementActionVariant, DgaAnnouncementAlign, DgaAnnouncementDensity, DgaAnnouncementElevation, DgaAnnouncementPersist, DgaAnnouncementTone, DgaAppShellAppearance, DgaAutocompleteOption, DgaAvatarSize, DgaBadgeSize, DgaBadgeVariant, DgaBreadcrumbItem, DgaBreadcrumbSeparator, DgaButtonSize, DgaButtonVariant, DgaCalendar, DgaCardActionsAlign, DgaCardAppearance, DgaCardBadge, DgaCardBorder, DgaCardPadding, DgaCardShadow, DgaCarouselSlide, DgaChartDataset, DgaChartPoint, DgaChartType, DgaChatbotAnimation, DgaChatbotFabTone, DgaChatbotMessage, DgaChatbotPosition, DgaChatbotSize, DgaCheckboxSize, DgaChipVariant, DgaCommandAppearance, DgaCommandGroup, DgaCommandItem, DgaContentSwitcherItem, DgaContextMenuItem, DgaContextMenuItemType, DgaCurrency, DgaDescriptionItem, DgaDescriptionLayout, DgaDialogSize, DgaDividerOrientation, DgaDrawerSide, DgaDualNavCategory, DgaDualNavSection, DgaEmptyAppearance, DgaExportColumn, DgaExportData, DgaExportScope, DgaFeedbackSubmit, DgaFilterItem, DgaFooterAppearance, DgaFooterColumn, DgaFooterIconGroup, DgaFooterIconLink, DgaFooterLink, DgaFooterLogo, DgaFormControlSize, DgaFormStatus, DgaGridCols, DgaGridGap, DgaHeroAppearance, DgaHeroImageMask, DgaHeroOverlayTone, DgaHeroSlide, DgaHeroTransition, DgaIconBadgeAppearance, DgaIconBadgeSize, DgaIconName, DgaIconSize, DgaIconTone, DgaImagePopupAnimation, DgaImagePopupImage, DgaImagePopupImageTransition, DgaImagePopupSource, DgaInfoListItem, DgaInputSize, DgaLinkVariant, DgaLocalizedString, DgaMenuItem, DgaMetricAppearance, DgaMetricTrend, DgaModalAnimation, DgaModalSize, DgaMultiselectOption, DgaNativeSelectSize, DgaNavRailActiveStyle, DgaNavRailAppearance, DgaNavRailItem, DgaNavRailPosition, DgaNavRailSize, DgaPageFeedbackAgreementLink, DgaPageFeedbackAnswer, DgaPageFeedbackOption, DgaPageFeedbackPhase, DgaPageFeedbackSubmit, DgaPageHeroTone, DgaPageTransitionName, DgaPhoneCountry, DgaPhoneCountryName, 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, DgaVideoProvider, DgaVideoRatio, DgaVideoSourceInfo, DgaWritingEffect };