@aegov/designsystem-angular 0.2.24 → 4.0.0

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.
@@ -1,25 +1,72 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgZone, ChangeDetectorRef, ElementRef, EventEmitter, EnvironmentProviders } from '@angular/core';
2
+ import { NgZone, ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
3
3
  import { Components, AegovAccordionItemCustomEvent, AegovAvatarGroupCustomEvent, AegovBadgeCustomEvent, AegovBannerCustomEvent, AegovBreadcrumbsItemCustomEvent, AegovButtonCustomEvent, AegovCalloutCustomEvent, AegovCheckboxCustomEvent, AegovValidationDetail, AegovCheckboxGroupCustomEvent, AegovDatepickerCustomEvent, DatepickerChangeDetail, DatepickerMonthChangeDetail, AegovDatepickerValue, AegovDrawerCustomEvent, AegovDropdownCustomEvent, AegovFileuploadCustomEvent, AegovHeaderCustomEvent, AegovInputCustomEvent, AegovLinkCustomEvent, AegovModalCustomEvent, AegovNavblockItemCustomEvent, AegovOtpCustomEvent, AegovPaginationCustomEvent, AegovPopoverCustomEvent, AegovRadioCustomEvent, AegovRadioGroupCustomEvent, AegovRangeCustomEvent, AegovRangeValue, AegovSelectCustomEvent, SelectChangeDetail, AegovSelectValue, AegovTabCustomEvent, AegovTabsCustomEvent, AegovTextareaCustomEvent, AegovToastCustomEvent, AegovToggleCustomEvent } from '@aegov/designsystem/components';
4
4
 
5
+ /** A string that parses as a number, such as `'5'` or `'0.5'`. */
6
+ type NumericString = `${number}`;
7
+
5
8
  declare class AegovAccordion {
6
9
  protected z: NgZone;
7
10
  protected el: HTMLAegovAccordionElement;
11
+ /**
12
+ * Unique ID for the accordion wrapper element. Auto-generated if not provided.
13
+ */
14
+ set fieldId(_: Components.AegovAccordion['fieldId']);
15
+ /**
16
+ * Whether multiple accordion items can be open at the same time @default false
17
+ */
18
+ set isMultiple(_: Components.AegovAccordion['isMultiple']);
19
+ /**
20
+ * Index of the accordion item to open by default (0-based)
21
+ */
22
+ set defaultOpen(_: Components.AegovAccordion['defaultOpen']);
23
+ /**
24
+ * Icon style for accordion items @default 'chevron'
25
+ */
26
+ set icon(_: Components.AegovAccordion['icon']);
27
+ /**
28
+ * Whether to show border around the accordion @default false
29
+ */
30
+ set isBordered(_: Components.AegovAccordion['isBordered']);
31
+ /**
32
+ * Size of the accordion items — controls heading font size.
33
+ sm = 14px, base = 16px (default), lg = 18px @default 'base'
34
+ */
35
+ set size(_: Components.AegovAccordion['size']);
36
+ /**
37
+ * Heading level for accordion item triggers (1–6).
38
+ Cascaded to all child aegov-accordion-item elements. @default 3
39
+ */
40
+ set headingLevel(_: Components.AegovAccordion['headingLevel']);
8
41
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
9
42
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovAccordion, never>;
10
43
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovAccordion, "aegov-accordion", never, { "defaultOpen": { "alias": "defaultOpen"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "headingLevel": { "alias": "headingLevel"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "isBordered": { "alias": "isBordered"; "required": false; }; "isMultiple": { "alias": "isMultiple"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
44
+ static ngAcceptInputType_defaultOpen: number | NumericString | null | undefined;
45
+ static ngAcceptInputType_headingLevel: number | NumericString | null | undefined;
46
+ static ngAcceptInputType_isBordered: boolean | string | null | undefined;
47
+ static ngAcceptInputType_isMultiple: boolean | string | null | undefined;
11
48
  }
12
49
  declare interface AegovAccordion extends Components.AegovAccordion {
13
50
  }
14
51
  declare class AegovAccordionItem {
15
52
  protected z: NgZone;
16
53
  protected el: HTMLAegovAccordionItemElement;
54
+ /**
55
+ * Heading text for the accordion item (alternative to using the slot)
56
+ Note: If both heading property and slot are provided, the slot takes precedence
57
+ */
58
+ set heading(_: Components.AegovAccordionItem['heading']);
59
+ /**
60
+ * Whether the accordion item is disabled @default false
61
+ */
62
+ set isDisabled(_: Components.AegovAccordionItem['isDisabled']);
17
63
  aegovAccordionItemToggle: EventEmitter<AegovAccordionItemCustomEvent<{
18
64
  open: boolean;
19
65
  }>>;
20
66
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
21
67
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovAccordionItem, never>;
22
68
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovAccordionItem, "aegov-accordion-item", never, { "heading": { "alias": "heading"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; }, { "aegovAccordionItemToggle": "aegovAccordionItemToggle"; }, never, ["*"], true, never>;
69
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
23
70
  }
24
71
  declare interface AegovAccordionItem extends Components.AegovAccordionItem {
25
72
  /**
@@ -32,6 +79,22 @@ declare interface AegovAccordionItem extends Components.AegovAccordionItem {
32
79
  declare class AegovAspectRatio {
33
80
  protected z: NgZone;
34
81
  protected el: HTMLAegovAspectRatioElement;
82
+ /**
83
+ * The aspect ratio to apply. Accepts named presets (`'auto'`, `'square'`,
84
+ `'video'`) or any custom ratio string such as `'5/4'`, `'21/9'`,
85
+ `'2.35/1'`. Supports a Tailwind-style responsive string with breakpoint
86
+ prefixes, e.g. `"square md:video lg:21/9"`. @default 'auto'
87
+ */
88
+ set ratio(_: Components.AegovAspectRatio['ratio']);
89
+ /**
90
+ * How slotted media (img, video, iframe) should fit within the aspect
91
+ ratio container. @default 'cover'
92
+ */
93
+ set fit(_: Components.AegovAspectRatio['fit']);
94
+ /**
95
+ * Additional CSS classes merged onto the inner aspect-ratio container.
96
+ */
97
+ set extraClass(_: Components.AegovAspectRatio['extraClass']);
35
98
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
36
99
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovAspectRatio, never>;
37
100
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovAspectRatio, "aegov-aspect-ratio", never, { "extraClass": { "alias": "extraClass"; "required": false; }; "fit": { "alias": "fit"; "required": false; }; "ratio": { "alias": "ratio"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -41,6 +104,31 @@ declare interface AegovAspectRatio extends Components.AegovAspectRatio {
41
104
  declare class AegovAvatar {
42
105
  protected z: NgZone;
43
106
  protected el: HTMLAegovAvatarElement;
107
+ /**
108
+ * Unique ID for the inner avatar element. Auto-generated if not provided.
109
+ */
110
+ set fieldId(_: Components.AegovAvatar['fieldId']);
111
+ /**
112
+ * The avatar size @default 'base'
113
+ */
114
+ set size(_: Components.AegovAvatar['size']);
115
+ /**
116
+ * The avatar appearance (shape) @default 'square'
117
+ */
118
+ set appearance(_: Components.AegovAvatar['appearance']);
119
+ /**
120
+ * The image source URL
121
+ */
122
+ set src(_: Components.AegovAvatar['src']);
123
+ /**
124
+ * Alternative text for the image (required for accessibility)
125
+ */
126
+ set alt(_: Components.AegovAvatar['alt']);
127
+ /**
128
+ * Status indicator. Set to a status string to show the indicator, or `false` to hide it.
129
+ Accepts: `'online'`, `'offline'`, `'away'`, `'unavailable'`, `'busy'`, or boolean (`true` maps to `'online'`). @default false
130
+ */
131
+ set status(_: Components.AegovAvatar['status']);
44
132
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
45
133
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovAvatar, never>;
46
134
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovAvatar, "aegov-avatar", never, { "alt": { "alias": "alt"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "size": { "alias": "size"; "required": false; }; "src": { "alias": "src"; "required": false; }; "status": { "alias": "status"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -50,10 +138,27 @@ declare interface AegovAvatar extends Components.AegovAvatar {
50
138
  declare class AegovAvatarGroup {
51
139
  protected z: NgZone;
52
140
  protected el: HTMLAegovAvatarGroupElement;
141
+ /**
142
+ * The layout variant: 'default' (spaced) or 'compact' (overlapping) @default 'default'
143
+ */
144
+ set variant(_: Components.AegovAvatarGroup['variant']);
145
+ /**
146
+ * The size enforced on all child avatars @default 'base'
147
+ */
148
+ set size(_: Components.AegovAvatarGroup['size']);
149
+ /**
150
+ * Number of additional users not shown. When > 0, displays "+N" indicator. @default 0
151
+ */
152
+ set moreCount(_: Components.AegovAvatarGroup['moreCount']);
153
+ /**
154
+ * Custom text for the "more" indicator. Defaults to "{moreCount}+"
155
+ */
156
+ set moreText(_: Components.AegovAvatarGroup['moreText']);
53
157
  aegovAvatarGroupMore: EventEmitter<AegovAvatarGroupCustomEvent<void>>;
54
158
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
55
159
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovAvatarGroup, never>;
56
160
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovAvatarGroup, "aegov-avatar-group", never, { "moreCount": { "alias": "moreCount"; "required": false; }; "moreText": { "alias": "moreText"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovAvatarGroupMore": "aegovAvatarGroupMore"; }, never, ["*"], true, never>;
161
+ static ngAcceptInputType_moreCount: number | NumericString | null | undefined;
57
162
  }
58
163
  declare interface AegovAvatarGroup extends Components.AegovAvatarGroup {
59
164
  /**
@@ -64,10 +169,31 @@ declare interface AegovAvatarGroup extends Components.AegovAvatarGroup {
64
169
  declare class AegovBadge {
65
170
  protected z: NgZone;
66
171
  protected el: HTMLAegovBadgeElement;
172
+ /**
173
+ * Unique ID for the badge element. Auto-generated if not provided.
174
+ */
175
+ set fieldId(_: Components.AegovBadge['fieldId']);
176
+ /**
177
+ * The appearance style of the badge. @default 'soft'
178
+ */
179
+ set appearance(_: Components.AegovBadge['appearance']);
180
+ /**
181
+ * The color variant of the badge. @default 'default'
182
+ */
183
+ set variant(_: Components.AegovBadge['variant']);
184
+ /**
185
+ * Whether the badge can be dismissed/closed. @default false
186
+ */
187
+ set isDismissible(_: Components.AegovBadge['isDismissible']);
188
+ /**
189
+ * The badge size @default 'base'
190
+ */
191
+ set size(_: Components.AegovBadge['size']);
67
192
  aegovBadgeDismiss: EventEmitter<AegovBadgeCustomEvent<void>>;
68
193
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
69
194
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovBadge, never>;
70
195
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovBadge, "aegov-badge", never, { "appearance": { "alias": "appearance"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "isDismissible": { "alias": "isDismissible"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovBadgeDismiss": "aegovBadgeDismiss"; }, never, ["*"], true, never>;
196
+ static ngAcceptInputType_isDismissible: boolean | string | null | undefined;
71
197
  }
72
198
  declare interface AegovBadge extends Components.AegovBadge {
73
199
  /**
@@ -78,6 +204,44 @@ declare interface AegovBadge extends Components.AegovBadge {
78
204
  declare class AegovBanner {
79
205
  protected z: NgZone;
80
206
  protected el: HTMLAegovBannerElement;
207
+ /**
208
+ * Unique ID for the banner element. Auto-generated if not provided.
209
+ */
210
+ set fieldId(_: Components.AegovBanner['fieldId']);
211
+ /**
212
+ * The variant of the banner. Determines the color scheme. @default 'default'
213
+ */
214
+ set variant(_: Components.AegovBanner['variant']);
215
+ /**
216
+ * The appearance style of the banner. @default 'soft'
217
+ */
218
+ set appearance(_: Components.AegovBanner['appearance']);
219
+ /**
220
+ * Vertical position of the banner (top or bottom of viewport/page). @default 'top'
221
+ */
222
+ set position(_: Components.AegovBanner['position']);
223
+ /**
224
+ * CSS positioning strategy: fixed (stays in viewport), sticky (scrolls then sticks). @default 'fixed'
225
+ */
226
+ set display(_: Components.AegovBanner['display']);
227
+ /**
228
+ * Layout mode: push (takes up space in page flow), overlay (floats over content). @default 'push'
229
+ */
230
+ set mode(_: Components.AegovBanner['mode']);
231
+ /**
232
+ * Whether the banner can be dismissed/closed. @default true
233
+ */
234
+ set isDismissible(_: Components.AegovBanner['isDismissible']);
235
+ /**
236
+ * Size of the banner. Controls font size and vertical padding.
237
+ Accepts a plain value (`"sm"`, `"base"`, `"lg"`) or a responsive string
238
+ using Tailwind-style breakpoint prefixes (`"sm xl:lg"`). @default 'base'
239
+ */
240
+ set size(_: Components.AegovBanner['size']);
241
+ /**
242
+ * Auto-focus the banner when mounted (for critical alerts only). @default false
243
+ */
244
+ set isFocusable(_: Components.AegovBanner['isFocusable']);
81
245
  aegovBannerDismiss: EventEmitter<AegovBannerCustomEvent<void>>;
82
246
  aegovBannerHeightChange: EventEmitter<AegovBannerCustomEvent<{
83
247
  height: number;
@@ -85,6 +249,8 @@ declare class AegovBanner {
85
249
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
86
250
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovBanner, never>;
87
251
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovBanner, "aegov-banner", never, { "appearance": { "alias": "appearance"; "required": false; }; "display": { "alias": "display"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "isDismissible": { "alias": "isDismissible"; "required": false; }; "isFocusable": { "alias": "isFocusable"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "position": { "alias": "position"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovBannerDismiss": "aegovBannerDismiss"; "aegovBannerHeightChange": "aegovBannerHeightChange"; }, never, ["*"], true, never>;
252
+ static ngAcceptInputType_isDismissible: boolean | string | null | undefined;
253
+ static ngAcceptInputType_isFocusable: boolean | string | null | undefined;
88
254
  }
89
255
  declare interface AegovBanner extends Components.AegovBanner {
90
256
  /**
@@ -101,6 +267,25 @@ declare interface AegovBanner extends Components.AegovBanner {
101
267
  declare class AegovBentoGrid {
102
268
  protected z: NgZone;
103
269
  protected el: HTMLAegovBentoGridElement;
270
+ /**
271
+ * Optional id reflected on the inner wrapper. Auto-generated if not provided.
272
+ */
273
+ set fieldId(_: Components.AegovBentoGrid['fieldId']);
274
+ /**
275
+ * Number of columns. Tailwind-style breakpoint syntax supported,
276
+ e.g. `cols="1 md:2 lg:4"`. Use `cols="1 md:..."` to stack on mobile. @default '1 md:2 lg:3'
277
+ */
278
+ set cols(_: Components.AegovBentoGrid['cols']);
279
+ /**
280
+ * Gap between cards. Named sizes: 'none', 'xs', 'sm', 'md', 'lg', 'xl'.
281
+ Responsive syntax supported: `gap="sm md:md lg:lg"`. @default 'md'
282
+ */
283
+ set gap(_: Components.AegovBentoGrid['gap']);
284
+ /**
285
+ * Auto-flow mode. 'dense' fills holes left by larger spans (bento packing),
286
+ 'row' keeps strict DOM order. @default 'dense'
287
+ */
288
+ set flow(_: Components.AegovBentoGrid['flow']);
104
289
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
105
290
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovBentoGrid, never>;
106
291
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovBentoGrid, "aegov-bento-grid", never, { "cols": { "alias": "cols"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "flow": { "alias": "flow"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -110,6 +295,31 @@ declare interface AegovBentoGrid extends Components.AegovBentoGrid {
110
295
  declare class AegovBlockquote {
111
296
  protected z: NgZone;
112
297
  protected el: HTMLAegovBlockquoteElement;
298
+ /**
299
+ * The blockquote appearance style @default 'primary'
300
+ */
301
+ set appearance(_: Components.AegovBlockquote['appearance']);
302
+ /**
303
+ * The citation source
304
+ */
305
+ set cite(_: Components.AegovBlockquote['cite']);
306
+ /**
307
+ * The author source
308
+ */
309
+ set author(_: Components.AegovBlockquote['author']);
310
+ /**
311
+ * The author's title/position
312
+ */
313
+ set authorTitle(_: Components.AegovBlockquote['authorTitle']);
314
+ /**
315
+ * Additional CSS classes merged onto the inner blockquote element.
316
+
317
+ This component renders in a real shadow root, which normally blocks the page's CSS
318
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
319
+ in from the page's own stylesheets at runtime and work as expected; other utilities
320
+ (colour, border, typography, etc.) still have no effect — see #35.
321
+ */
322
+ set extraClass(_: Components.AegovBlockquote['extraClass']);
113
323
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
114
324
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovBlockquote, never>;
115
325
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovBlockquote, "aegov-blockquote", never, { "appearance": { "alias": "appearance"; "required": false; }; "author": { "alias": "author"; "required": false; }; "authorTitle": { "alias": "authorTitle"; "required": false; }; "cite": { "alias": "cite"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -119,15 +329,43 @@ declare interface AegovBlockquote extends Components.AegovBlockquote {
119
329
  declare class AegovBreadcrumbs {
120
330
  protected z: NgZone;
121
331
  protected el: HTMLAegovBreadcrumbsElement;
332
+ /**
333
+ * Unique ID for the breadcrumbs nav element. Auto-generated if not provided.
334
+ */
335
+ set fieldId(_: Components.AegovBreadcrumbs['fieldId']);
336
+ /**
337
+ * The separator style to use between breadcrumb items @default 'slash'
338
+ */
339
+ set separator(_: Components.AegovBreadcrumbs['separator']);
340
+ /**
341
+ * Maximum number of characters before truncating breadcrumb item text.
342
+ If not set, text will not be truncated.
343
+ */
344
+ set maxLength(_: Components.AegovBreadcrumbs['maxLength']);
345
+ /**
346
+ * Whether to add schema.org microdata for structured data @default false
347
+ */
348
+ set isMicrodata(_: Components.AegovBreadcrumbs['isMicrodata']);
122
349
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
123
350
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovBreadcrumbs, never>;
124
351
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovBreadcrumbs, "aegov-breadcrumbs", never, { "fieldId": { "alias": "fieldId"; "required": false; }; "isMicrodata": { "alias": "isMicrodata"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "separator": { "alias": "separator"; "required": false; }; }, {}, never, ["*"], true, never>;
352
+ static ngAcceptInputType_isMicrodata: boolean | string | null | undefined;
353
+ static ngAcceptInputType_maxLength: number | NumericString | null | undefined;
125
354
  }
126
355
  declare interface AegovBreadcrumbs extends Components.AegovBreadcrumbs {
127
356
  }
128
357
  declare class AegovBreadcrumbsItem {
129
358
  protected z: NgZone;
130
359
  protected el: HTMLAegovBreadcrumbsItemElement;
360
+ /**
361
+ * The URL that the breadcrumb item links to.
362
+ If not provided, the item will be rendered as plain text (current page).
363
+ */
364
+ set href(_: Components.AegovBreadcrumbsItem['href']);
365
+ /**
366
+ * Where to open the linked document @default '_self'
367
+ */
368
+ set target(_: Components.AegovBreadcrumbsItem['target']);
131
369
  aegovBreadcrumbItemClick: EventEmitter<AegovBreadcrumbsItemCustomEvent<{
132
370
  href?: string;
133
371
  event: MouseEvent;
@@ -148,12 +386,73 @@ declare interface AegovBreadcrumbsItem extends Components.AegovBreadcrumbsItem {
148
386
  declare class AegovButton {
149
387
  protected z: NgZone;
150
388
  protected el: HTMLAegovButtonElement;
389
+ /**
390
+ * Unique ID for the button element. Auto-generated if not provided.
391
+ */
392
+ set fieldId(_: Components.AegovButton['fieldId']);
393
+ /**
394
+ * The button variant (color scheme) @default 'primary'
395
+ */
396
+ set variant(_: Components.AegovButton['variant']);
397
+ /**
398
+ * The button size @default 'base'
399
+ */
400
+ set size(_: Components.AegovButton['size']);
401
+ /**
402
+ * The button type attribute @default 'button'
403
+ */
404
+ set type(_: Components.AegovButton['type']);
405
+ /**
406
+ * Name submitted with the form, paired with `value`, when this button submits
407
+ it — as on a native `<button>`.
408
+ */
409
+ set name(_: Components.AegovButton['name']);
410
+ /**
411
+ * Value submitted with `name` when this button submits the form.
412
+ */
413
+ set value(_: Components.AegovButton['value']);
414
+ /**
415
+ * The button appearance (visual style) @default 'solid'
416
+ */
417
+ set appearance(_: Components.AegovButton['appearance']);
418
+ /**
419
+ * Whether the button is disabled @default false
420
+ */
421
+ set isDisabled(_: Components.AegovButton['isDisabled']);
422
+ /**
423
+ * Whether the button is only an icon @default false
424
+ */
425
+ set isIcon(_: Components.AegovButton['isIcon']);
426
+ /**
427
+ * Whether the button should take full width @default false
428
+
429
+ Reflected to the `is-full` attribute: the host-level `:host([is-full])` CSS rule
430
+ (in aegov-button.css) that switches the host to `display: block` only matches a
431
+ real attribute, so a framework that sets this as a JS property binding instead of
432
+ a literal string attribute (e.g. Angular's `[isFull]="true"`, React's JSX `isFull`
433
+ shorthand) would otherwise never trigger it — only `reflect: true` makes every
434
+ binding style reach the attribute the CSS depends on.
435
+ */
436
+ set isFull(_: Components.AegovButton['isFull']);
437
+ /**
438
+ * Whether the button should have bold text or not @default true
439
+ */
440
+ set isBold(_: Components.AegovButton['isBold']);
441
+ /**
442
+ * Whether the button is in a loading state @default false
443
+ */
444
+ set isLoading(_: Components.AegovButton['isLoading']);
151
445
  aegovButtonClick: EventEmitter<AegovButtonCustomEvent<MouseEvent>>;
152
446
  aegovButtonFocus: EventEmitter<AegovButtonCustomEvent<FocusEvent>>;
153
447
  aegovButtonBlur: EventEmitter<AegovButtonCustomEvent<FocusEvent>>;
154
448
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
155
449
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovButton, never>;
156
- static ɵcmp: i0.ɵɵComponentDeclaration<AegovButton, "aegov-button", never, { "appearance": { "alias": "appearance"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "isBold": { "alias": "isBold"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isFull": { "alias": "isFull"; "required": false; }; "isIcon": { "alias": "isIcon"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovButtonClick": "aegovButtonClick"; "aegovButtonFocus": "aegovButtonFocus"; "aegovButtonBlur": "aegovButtonBlur"; }, never, ["*"], true, never>;
450
+ static ɵcmp: i0.ɵɵComponentDeclaration<AegovButton, "aegov-button", never, { "appearance": { "alias": "appearance"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "isBold": { "alias": "isBold"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isFull": { "alias": "isFull"; "required": false; }; "isIcon": { "alias": "isIcon"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovButtonClick": "aegovButtonClick"; "aegovButtonFocus": "aegovButtonFocus"; "aegovButtonBlur": "aegovButtonBlur"; }, never, ["*"], true, never>;
451
+ static ngAcceptInputType_isBold: boolean | string | null | undefined;
452
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
453
+ static ngAcceptInputType_isFull: boolean | string | null | undefined;
454
+ static ngAcceptInputType_isIcon: boolean | string | null | undefined;
455
+ static ngAcceptInputType_isLoading: boolean | string | null | undefined;
157
456
  }
158
457
  declare interface AegovButton extends Components.AegovButton {
159
458
  /**
@@ -172,6 +471,10 @@ declare interface AegovButton extends Components.AegovButton {
172
471
  declare class AegovButtonGroup {
173
472
  protected z: NgZone;
174
473
  protected el: HTMLAegovButtonGroupElement;
474
+ /**
475
+ * The orientation of the button group @default 'horizontal'
476
+ */
477
+ set orientation(_: Components.AegovButtonGroup['orientation']);
175
478
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
176
479
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovButtonGroup, never>;
177
480
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovButtonGroup, "aegov-button-group", never, { "orientation": { "alias": "orientation"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -181,10 +484,33 @@ declare interface AegovButtonGroup extends Components.AegovButtonGroup {
181
484
  declare class AegovCallout {
182
485
  protected z: NgZone;
183
486
  protected el: HTMLAegovCalloutElement;
487
+ /**
488
+ * Unique ID for the callout element. Auto-generated if not provided.
489
+ */
490
+ set fieldId(_: Components.AegovCallout['fieldId']);
491
+ /**
492
+ * The variant of the callout. Determines the color scheme. @default 'default'
493
+ */
494
+ set variant(_: Components.AegovCallout['variant']);
495
+ /**
496
+ * The appearance style of the callout. @default 'soft'
497
+ */
498
+ set appearance(_: Components.AegovCallout['appearance']);
499
+ /**
500
+ * The size of the callout. Controls font size, icon size, and padding.
501
+ Accepts a plain value (`"sm"`, `"base"`, `"lg"`) or a responsive string
502
+ using Tailwind-style breakpoint prefixes (`"sm xl:lg"`). @default 'base'
503
+ */
504
+ set size(_: Components.AegovCallout['size']);
505
+ /**
506
+ * Whether the callout can be dismissed/closed. @default false
507
+ */
508
+ set isDismissible(_: Components.AegovCallout['isDismissible']);
184
509
  aegovCalloutDismiss: EventEmitter<AegovCalloutCustomEvent<void>>;
185
510
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
186
511
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovCallout, never>;
187
512
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovCallout, "aegov-callout", never, { "appearance": { "alias": "appearance"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "isDismissible": { "alias": "isDismissible"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovCalloutDismiss": "aegovCalloutDismiss"; }, never, ["*"], true, never>;
513
+ static ngAcceptInputType_isDismissible: boolean | string | null | undefined;
188
514
  }
189
515
  declare interface AegovCallout extends Components.AegovCallout {
190
516
  /**
@@ -195,15 +521,132 @@ declare interface AegovCallout extends Components.AegovCallout {
195
521
  declare class AegovCard {
196
522
  protected z: NgZone;
197
523
  protected el: HTMLAegovCardElement;
524
+ /**
525
+ * Unique ID for the card element. Auto-generated if not provided.
526
+ */
527
+ set fieldId(_: Components.AegovCard['fieldId']);
528
+ /**
529
+ * Whether to apply inner padding. On by default. The amount varies by `size`: 1rem/16px
530
+ (sm), 1.25rem/20px (base), 1.5rem/24px (lg). @default true
531
+ */
532
+ set isPadding(_: Components.AegovCard['isPadding']);
533
+ /**
534
+ * Border thickness: 1, 2, or 3. @default 2
535
+ */
536
+ set borderWidth(_: Components.AegovCard['borderWidth']);
537
+ /**
538
+ * Appearance: 'solid' (full-strength border), 'light' (subtle low-contrast border), or 'creative' (gradient border via CSS mask). Border colour resolves from `variant`. @default 'solid'
539
+ */
540
+ set appearance(_: Components.AegovCard['appearance']);
541
+ /**
542
+ * Variant: colour family applied to border + glow. 'primary' (default), 'secondary', 'neutral-max' (aeblack-800 family), or 'neutral-min' (aeblack-100 family). @default 'primary'
543
+ */
544
+ set variant(_: Components.AegovCard['variant']);
545
+ /**
546
+ * Hover effect: 'off' (none), 'standard' (border color change), or 'glow' (shadow glow). @default 'off'
547
+ */
548
+ set hover(_: Components.AegovCard['hover']);
549
+ /**
550
+ * Size: 'sm' (compact padding/radius), 'base' (default), or 'lg' (generous padding/radius). A fixed
551
+ token — unlike Badge, Banner, and Callout's `size`, this does not accept a responsive breakpoint
552
+ string, and padding/radius do not change by viewport width. @default 'base'
553
+ */
554
+ set size(_: Components.AegovCard['size']);
555
+ /**
556
+ * Number of grid columns this card should span inside an `aegov-bento-grid`.
557
+ Supports responsive syntax, e.g. `"1 md:2 lg:3"`. Reflected as the
558
+ `data-col-span` attribute so the parent grid can read it correctly even
559
+ when set via JSX camelCase (`dataColSpan`).
560
+ */
561
+ set dataColSpan(_: Components.AegovCard['dataColSpan']);
562
+ /**
563
+ * Number of grid rows this card should span inside an `aegov-bento-grid`.
564
+ Supports responsive syntax, e.g. `"1 md:2"`. Reflected as the
565
+ `data-row-span` attribute so the parent grid can read it correctly even
566
+ when set via JSX camelCase (`dataRowSpan`).
567
+ */
568
+ set dataRowSpan(_: Components.AegovCard['dataRowSpan']);
198
569
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
199
570
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovCard, never>;
200
571
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovCard, "aegov-card", never, { "appearance": { "alias": "appearance"; "required": false; }; "borderWidth": { "alias": "borderWidth"; "required": false; }; "dataColSpan": { "alias": "dataColSpan"; "required": false; }; "dataRowSpan": { "alias": "dataRowSpan"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hover": { "alias": "hover"; "required": false; }; "isPadding": { "alias": "isPadding"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
572
+ static ngAcceptInputType_borderWidth: number | NumericString | null | undefined;
573
+ static ngAcceptInputType_isPadding: boolean | string | null | undefined;
201
574
  }
202
575
  declare interface AegovCard extends Components.AegovCard {
203
576
  }
204
577
  declare class AegovCheckbox {
205
578
  protected z: NgZone;
206
579
  protected el: HTMLAegovCheckboxElement;
580
+ /**
581
+ * Unique ID for the native checkbox element. Auto-generated if not provided.
582
+ */
583
+ set fieldId(_: Components.AegovCheckbox['fieldId']);
584
+ /**
585
+ * The name attribute for the checkbox. Reflected so ElementInternals can read it for form submission.
586
+ */
587
+ set name(_: Components.AegovCheckbox['name']);
588
+ /**
589
+ * The value attribute for the checkbox.
590
+ */
591
+ set value(_: Components.AegovCheckbox['value']);
592
+ /**
593
+ * Whether the checkbox is checked. @default false
594
+ */
595
+ set isChecked(_: Components.AegovCheckbox['isChecked']);
596
+ /**
597
+ * The size of the checkbox. @default 'base'
598
+ */
599
+ set size(_: Components.AegovCheckbox['size']);
600
+ /**
601
+ * Colour family. Drives rest border, checked bg/border. Focus ring stays camel; error stays aered.
602
+ */
603
+ set variant(_: Components.AegovCheckbox['variant']);
604
+ /**
605
+ * Visual appearance set by a parent aegov-checkbox-group. Not meant to be set directly. @default 'default'
606
+ */
607
+ set appearance(_: Components.AegovCheckbox['appearance']);
608
+ /**
609
+ * Whether the checkbox is disabled. @default false
610
+ */
611
+ set isDisabled(_: Components.AegovCheckbox['isDisabled']);
612
+ /**
613
+ * Whether the checkbox is required. @default false
614
+ */
615
+ set isRequired(_: Components.AegovCheckbox['isRequired']);
616
+ /**
617
+ * Label text for the checkbox. When provided, generates an associated <label> element.
618
+ */
619
+ set label(_: Components.AegovCheckbox['label']);
620
+ /**
621
+ * Helper hint text displayed below the label. Only rendered when label is provided
622
+ and no error is shown. Renamed from `description` (decision §6.6).
623
+ */
624
+ set hint(_: Components.AegovCheckbox['hint']);
625
+ /**
626
+ * Marks this checkbox as a "check all" controller within a checkbox group. @default false
627
+ */
628
+ set isCheckAll(_: Components.AegovCheckbox['isCheckAll']);
629
+ /**
630
+ * Whether the checkbox is in an indeterminate state. Set by parent group for check-all. @default false
631
+ */
632
+ set isIndeterminate(_: Components.AegovCheckbox['isIndeterminate']);
633
+ /**
634
+ * Visual + a11y invalid state. Toggles `aria-invalid` + `is-invalid` host class. See §2.3. @default false
635
+ */
636
+ set isInvalid(_: Components.AegovCheckbox['isInvalid']);
637
+ /**
638
+ * Inline error message. Use `error` slot for rich markup. @default ''
639
+ */
640
+ set errorMessage(_: Components.AegovCheckbox['errorMessage']);
641
+ /**
642
+ * Additional CSS classes to apply.
643
+
644
+ This component renders in a real shadow root, which normally blocks the page's CSS
645
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
646
+ in from the page's own stylesheets at runtime and work as expected; other utilities
647
+ (colour, border, typography, etc.) still have no effect — see #35.
648
+ */
649
+ set extraClass(_: Components.AegovCheckbox['extraClass']);
207
650
  aegovCheckboxChange: EventEmitter<AegovCheckboxCustomEvent<{
208
651
  checked: boolean;
209
652
  value?: string;
@@ -212,6 +655,12 @@ declare class AegovCheckbox {
212
655
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
213
656
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovCheckbox, never>;
214
657
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovCheckbox, "aegov-checkbox", never, { "appearance": { "alias": "appearance"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isCheckAll": { "alias": "isCheckAll"; "required": false; }; "isChecked": { "alias": "isChecked"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isIndeterminate": { "alias": "isIndeterminate"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovCheckboxChange": "aegovCheckboxChange"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
658
+ static ngAcceptInputType_isCheckAll: boolean | string | null | undefined;
659
+ static ngAcceptInputType_isChecked: boolean | string | null | undefined;
660
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
661
+ static ngAcceptInputType_isIndeterminate: boolean | string | null | undefined;
662
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
663
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
215
664
  }
216
665
  declare interface AegovCheckbox extends Components.AegovCheckbox {
217
666
  /**
@@ -229,6 +678,50 @@ declare interface AegovCheckbox extends Components.AegovCheckbox {
229
678
  declare class AegovCheckboxGroup {
230
679
  protected z: NgZone;
231
680
  protected el: HTMLAegovCheckboxGroupElement;
681
+ /**
682
+ * Visual appearance for the group layout. @default 'default'
683
+ */
684
+ set appearance(_: Components.AegovCheckboxGroup['appearance']);
685
+ /**
686
+ * Stack direction for checkbox items. @default 'vertical'
687
+ */
688
+ set orientation(_: Components.AegovCheckboxGroup['orientation']);
689
+ /**
690
+ * Optional label rendered as a <legend> for accessibility.
691
+ */
692
+ set label(_: Components.AegovCheckboxGroup['label']);
693
+ /**
694
+ * Size of all checkboxes in the group. Propagated to children. @default 'base'
695
+ */
696
+ set size(_: Components.AegovCheckboxGroup['size']);
697
+ /**
698
+ * Colour family. Cascades to child checkboxes (only if child has no own variant). Focus ring stays camel; error stays aered regardless.
699
+ */
700
+ set variant(_: Components.AegovCheckboxGroup['variant']);
701
+ /**
702
+ * Disables all checkboxes within the group via native fieldset disabled. @default false
703
+ */
704
+ set isDisabled(_: Components.AegovCheckboxGroup['isDisabled']);
705
+ /**
706
+ * Group is required — at least one child checkbox must be checked. Aggregate-level only. @default false
707
+ */
708
+ set isRequired(_: Components.AegovCheckboxGroup['isRequired']);
709
+ /**
710
+ * Visual + a11y invalid state. See §2.3. @default false
711
+ */
712
+ set isInvalid(_: Components.AegovCheckboxGroup['isInvalid']);
713
+ /**
714
+ * Inline error message rendered below the legend when `isInvalid`. @default ''
715
+ */
716
+ set errorMessage(_: Components.AegovCheckboxGroup['errorMessage']);
717
+ /**
718
+ * Helper hint shown below the legend when not invalid. @default ''
719
+ */
720
+ set hint(_: Components.AegovCheckboxGroup['hint']);
721
+ /**
722
+ * Additional CSS classes to apply.
723
+ */
724
+ set extraClass(_: Components.AegovCheckboxGroup['extraClass']);
232
725
  aegovCheckboxGroupChange: EventEmitter<AegovCheckboxGroupCustomEvent<{
233
726
  values: string[];
234
727
  }>>;
@@ -236,6 +729,9 @@ declare class AegovCheckboxGroup {
236
729
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
237
730
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovCheckboxGroup, never>;
238
731
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovCheckboxGroup, "aegov-checkbox-group", never, { "appearance": { "alias": "appearance"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "label": { "alias": "label"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovCheckboxGroupChange": "aegovCheckboxGroupChange"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
732
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
733
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
734
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
239
735
  }
240
736
  declare interface AegovCheckboxGroup extends Components.AegovCheckboxGroup {
241
737
  /**
@@ -252,6 +748,129 @@ declare interface AegovCheckboxGroup extends Components.AegovCheckboxGroup {
252
748
  declare class AegovDatepicker {
253
749
  protected z: NgZone;
254
750
  protected el: HTMLAegovDatepickerElement;
751
+ /**
752
+ * Selection appearance: single date or date range @default 'single'
753
+ */
754
+ set appearance(_: Components.AegovDatepicker['appearance']);
755
+ /**
756
+ * Pre-selected value. Single: "YYYY-MM-DD". Range: "YYYY-MM-DD / YYYY-MM-DD" @default ''
757
+ */
758
+ set value(_: Components.AegovDatepicker['value']);
759
+ /**
760
+ * Output format using tokens: YYYY, YY, MM, M, DD, D, MMM, MMMM, dd, ddd @default 'YYYY-MM-DD'
761
+ */
762
+ set format(_: Components.AegovDatepicker['format']);
763
+ /**
764
+ * Placeholder text for single mode input. Empty defaults to text in the UI language (see `locale`). @default ''
765
+ */
766
+ set placeholder(_: Components.AegovDatepicker['placeholder']);
767
+ /**
768
+ * Placeholder for range start input. Empty defaults to text in the UI language (see `locale`). @default ''
769
+ */
770
+ set labelRangeStart(_: Components.AegovDatepicker['labelRangeStart']);
771
+ /**
772
+ * Placeholder for range end input. Empty defaults to text in the UI language (see `locale`). @default ''
773
+ */
774
+ set labelRangeEnd(_: Components.AegovDatepicker['labelRangeEnd']);
775
+ /**
776
+ * Minimum selectable date (ISO string or "today") @default ''
777
+ */
778
+ set min(_: Components.AegovDatepicker['min']);
779
+ /**
780
+ * Maximum selectable date (ISO string or "today") @default ''
781
+ */
782
+ set max(_: Components.AegovDatepicker['max']);
783
+ /**
784
+ * Disable all future dates (shorthand for max="today") @default false
785
+ */
786
+ set isDisableFuture(_: Components.AegovDatepicker['isDisableFuture']);
787
+ /**
788
+ * Week start day: 0=Sunday, 1=Monday, ...6=Saturday @default 0
789
+ */
790
+ set startDay(_: Components.AegovDatepicker['startDay']);
791
+ /**
792
+ * Locale (BCP 47, e.g. `en`, `ar-AE`, `fr`) for day and month names and formatted dates.
793
+ Dates use `en` when it is not set.
794
+
795
+ An Arabic or English locale (`ar`, `ar-*`, `en`, `en-*`) also sets the language of the
796
+ datepicker's own text: labels, placeholders, buttons, presets, validation messages and
797
+ screen-reader text. With no locale, or any other locale, that text follows the text
798
+ direction like the rest of the library: Arabic when `dir` is `rtl`, English otherwise.
799
+ Layout direction always follows `dir`.
800
+ */
801
+ set locale(_: Components.AegovDatepicker['locale']);
802
+ /**
803
+ * Minimum number of days for range selection @default 0
804
+ */
805
+ set minRange(_: Components.AegovDatepicker['minRange']);
806
+ /**
807
+ * Maximum number of days for range selection (0 = unlimited) @default 0
808
+ */
809
+ set maxRange(_: Components.AegovDatepicker['maxRange']);
810
+ /**
811
+ * Comma-separated ISO dates that cannot be selected @default ''
812
+ */
813
+ set blackout(_: Components.AegovDatepicker['blackout']);
814
+ /**
815
+ * Comma-separated preset IDs for range mode (e.g., "today,last7Days,thisMonth") @default ''
816
+ */
817
+ set presets(_: Components.AegovDatepicker['presets']);
818
+ /**
819
+ * Whether the datepicker is disabled @default false
820
+ */
821
+ set isDisabled(_: Components.AegovDatepicker['isDisabled']);
822
+ /**
823
+ * Marks the datepicker as required for form validation. Sets `required` on the inner input. @default false
824
+ */
825
+ set isRequired(_: Components.AegovDatepicker['isRequired']);
826
+ /**
827
+ * Show clear button when value is set @default true
828
+ */
829
+ set isClearable(_: Components.AegovDatepicker['isClearable']);
830
+ /**
831
+ * Show month/year select dropdowns in header @default true
832
+ */
833
+ set isHeaderSelectable(_: Components.AegovDatepicker['isHeaderSelectable']);
834
+ /**
835
+ * Start year for the year dropdown (default: current year - 100) @default 0
836
+ */
837
+ set yearRangeStart(_: Components.AegovDatepicker['yearRangeStart']);
838
+ /**
839
+ * End year for the year dropdown (default: current year + 100) @default 0
840
+ */
841
+ set yearRangeEnd(_: Components.AegovDatepicker['yearRangeEnd']);
842
+ /**
843
+ * Show Apply/Cancel buttons for confirming selection @default false
844
+ */
845
+ set isWithConfirmation(_: Components.AegovDatepicker['isWithConfirmation']);
846
+ /**
847
+ * The size of the datepicker input. @default 'base'
848
+ */
849
+ set size(_: Components.AegovDatepicker['size']);
850
+ /**
851
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
852
+ */
853
+ set variant(_: Components.AegovDatepicker['variant']);
854
+ /**
855
+ * Optional unique field ID. Used by aegov-form-field for label linking + error/hint id derivation.
856
+ */
857
+ set fieldId(_: Components.AegovDatepicker['fieldId']);
858
+ /**
859
+ * Form field name for FormAssociated submission (§2.5).
860
+ */
861
+ set name(_: Components.AegovDatepicker['name']);
862
+ /**
863
+ * Visual + a11y invalid state. See §2.3. @default false
864
+ */
865
+ set isInvalid(_: Components.AegovDatepicker['isInvalid']);
866
+ /**
867
+ * Inline error message. Use `error` slot for rich markup. @default ''
868
+ */
869
+ set errorMessage(_: Components.AegovDatepicker['errorMessage']);
870
+ /**
871
+ * Helper hint shown below the control. Hidden when an error is shown. @default ''
872
+ */
873
+ set hint(_: Components.AegovDatepicker['hint']);
255
874
  aegovDatepickerChange: EventEmitter<AegovDatepickerCustomEvent<DatepickerChangeDetail>>;
256
875
  aegovDatepickerOpen: EventEmitter<AegovDatepickerCustomEvent<void>>;
257
876
  aegovDatepickerClose: EventEmitter<AegovDatepickerCustomEvent<void>>;
@@ -261,6 +880,18 @@ declare class AegovDatepicker {
261
880
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
262
881
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovDatepicker, never>;
263
882
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovDatepicker, "aegov-datepicker", never, { "appearance": { "alias": "appearance"; "required": false; }; "blackout": { "alias": "blackout"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "format": { "alias": "format"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isClearable": { "alias": "isClearable"; "required": false; }; "isDisableFuture": { "alias": "isDisableFuture"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isHeaderSelectable": { "alias": "isHeaderSelectable"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "isWithConfirmation": { "alias": "isWithConfirmation"; "required": false; }; "labelRangeEnd": { "alias": "labelRangeEnd"; "required": false; }; "labelRangeStart": { "alias": "labelRangeStart"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "max": { "alias": "max"; "required": false; }; "maxRange": { "alias": "maxRange"; "required": false; }; "min": { "alias": "min"; "required": false; }; "minRange": { "alias": "minRange"; "required": false; }; "name": { "alias": "name"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "presets": { "alias": "presets"; "required": false; }; "size": { "alias": "size"; "required": false; }; "startDay": { "alias": "startDay"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "yearRangeEnd": { "alias": "yearRangeEnd"; "required": false; }; "yearRangeStart": { "alias": "yearRangeStart"; "required": false; }; }, { "aegovDatepickerChange": "aegovDatepickerChange"; "aegovDatepickerOpen": "aegovDatepickerOpen"; "aegovDatepickerClose": "aegovDatepickerClose"; "aegovDatepickerClear": "aegovDatepickerClear"; "aegovDatepickerMonthChange": "aegovDatepickerMonthChange"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
883
+ static ngAcceptInputType_isClearable: boolean | string | null | undefined;
884
+ static ngAcceptInputType_isDisableFuture: boolean | string | null | undefined;
885
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
886
+ static ngAcceptInputType_isHeaderSelectable: boolean | string | null | undefined;
887
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
888
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
889
+ static ngAcceptInputType_isWithConfirmation: boolean | string | null | undefined;
890
+ static ngAcceptInputType_maxRange: number | NumericString | null | undefined;
891
+ static ngAcceptInputType_minRange: number | NumericString | null | undefined;
892
+ static ngAcceptInputType_startDay: number | NumericString | null | undefined;
893
+ static ngAcceptInputType_yearRangeEnd: number | NumericString | null | undefined;
894
+ static ngAcceptInputType_yearRangeStart: number | NumericString | null | undefined;
264
895
  }
265
896
  declare interface AegovDatepicker extends Components.AegovDatepicker {
266
897
  aegovDatepickerChange: EventEmitter<AegovDatepickerCustomEvent<DatepickerChangeDetail>>;
@@ -276,6 +907,75 @@ declare interface AegovDatepicker extends Components.AegovDatepicker {
276
907
  declare class AegovDrawer {
277
908
  protected z: NgZone;
278
909
  protected el: HTMLAegovDrawerElement;
910
+ /**
911
+ * Unique ID for the drawer dialog element. Auto-generated if not provided.
912
+ */
913
+ set fieldId(_: Components.AegovDrawer['fieldId']);
914
+ /**
915
+ * Whether the drawer is currently open/visible @default false
916
+ */
917
+ set isOpen(_: Components.AegovDrawer['isOpen']);
918
+ /**
919
+ * Which edge the drawer slides from @default 'right'
920
+ */
921
+ set position(_: Components.AegovDrawer['position']);
922
+ /**
923
+ * Animation strategy for open/close transitions @default 'slide'
924
+ */
925
+ set animation(_: Components.AegovDrawer['animation']);
926
+ /**
927
+ * Whether the drawer is pinned flush to edges (true) or has a gap with rounded corners (false) @default true
928
+ */
929
+ set isPinned(_: Components.AegovDrawer['isPinned']);
930
+ /**
931
+ * Whether to show a backdrop overlay behind the drawer @default true
932
+ */
933
+ set isOverlay(_: Components.AegovDrawer['isOverlay']);
934
+ /**
935
+ * Backdrop overlay opacity level @default 'base'
936
+ */
937
+ set overlayOpacity(_: Components.AegovDrawer['overlayOpacity']);
938
+ /**
939
+ * Whether clicking the backdrop closes the drawer @default true
940
+ */
941
+ set isCloseWithOverlay(_: Components.AegovDrawer['isCloseWithOverlay']);
942
+ /**
943
+ * Whether to prevent body scroll when drawer is open @default true
944
+ */
945
+ set isPreventScroll(_: Components.AegovDrawer['isPreventScroll']);
946
+ /**
947
+ * Whether the drawer may move itself while open when an ancestor would trap
948
+ it (a `transform`, `filter`, `contain`, `z-index` stacking context, or a
949
+ hidden ancestor), so it still covers and stacks above the page. It moves
950
+ only out of that ancestor, and opens in place when there is none. (It
951
+ returns to where it was declared when it closes, and leaves with its
952
+ declared parent if that is removed.)
953
+
954
+ Set to `false` when the drawer is rendered inside another component's
955
+ shadow DOM and forwards a `<slot>` into its content: relocating would take
956
+ that slot out of its shadow tree, where it projects nothing. The panel and
957
+ backdrop are `position: fixed`, so they still cover the viewport in place —
958
+ unless an ancestor creates a containing block (`transform`, `filter`,
959
+ `contain`, `will-change`), in which case leave this on. @default true
960
+ */
961
+ set isPortal(_: Components.AegovDrawer['isPortal']);
962
+ /**
963
+ * Panel width for left/right drawers, or panel height for top/bottom drawers.
964
+ xs=320px · sm=384px · base=480px (default) · lg=640px · xl=800px · full=100vw/100dvh.
965
+ Also scales padding and, when `is-pinned="false"`, the edge gap and border-radius.
966
+ On viewports narrower than 640px all left/right sizes collapse to full width. @default 'base'
967
+ */
968
+ set size(_: Components.AegovDrawer['size']);
969
+ /**
970
+ * Whether to apply inner content padding. On by default; scales with size. @default true
971
+ */
972
+ set isPadding(_: Components.AegovDrawer['isPadding']);
973
+ /**
974
+ * Accessible label for the dialog. Passed as `aria-label` on the dialog element.
975
+ Required for screen readers unless you pass `aria-labelledby` pointing to a
976
+ heading rendered inside the drawer's slot.
977
+ */
978
+ set label(_: Components.AegovDrawer['label']);
279
979
  aegovDrawerOpen: EventEmitter<AegovDrawerCustomEvent<void>>;
280
980
  aegovDrawerClose: EventEmitter<AegovDrawerCustomEvent<void>>;
281
981
  aegovDrawerBeforeClose: EventEmitter<AegovDrawerCustomEvent<void>>;
@@ -284,6 +984,13 @@ declare class AegovDrawer {
284
984
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
285
985
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovDrawer, never>;
286
986
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovDrawer, "aegov-drawer", never, { "animation": { "alias": "animation"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "isCloseWithOverlay": { "alias": "isCloseWithOverlay"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "isOverlay": { "alias": "isOverlay"; "required": false; }; "isPadding": { "alias": "isPadding"; "required": false; }; "isPinned": { "alias": "isPinned"; "required": false; }; "isPortal": { "alias": "isPortal"; "required": false; }; "isPreventScroll": { "alias": "isPreventScroll"; "required": false; }; "label": { "alias": "label"; "required": false; }; "overlayOpacity": { "alias": "overlayOpacity"; "required": false; }; "position": { "alias": "position"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "aegovDrawerOpen": "aegovDrawerOpen"; "aegovDrawerClose": "aegovDrawerClose"; "aegovDrawerBeforeClose": "aegovDrawerBeforeClose"; "aegovDrawerBackdropClick": "aegovDrawerBackdropClick"; "aegovDrawerEscapePress": "aegovDrawerEscapePress"; }, never, ["*"], true, never>;
987
+ static ngAcceptInputType_isCloseWithOverlay: boolean | string | null | undefined;
988
+ static ngAcceptInputType_isOpen: boolean | string | null | undefined;
989
+ static ngAcceptInputType_isOverlay: boolean | string | null | undefined;
990
+ static ngAcceptInputType_isPadding: boolean | string | null | undefined;
991
+ static ngAcceptInputType_isPinned: boolean | string | null | undefined;
992
+ static ngAcceptInputType_isPortal: boolean | string | null | undefined;
993
+ static ngAcceptInputType_isPreventScroll: boolean | string | null | undefined;
287
994
  }
288
995
  declare interface AegovDrawer extends Components.AegovDrawer {
289
996
  /**
@@ -311,11 +1018,67 @@ declare interface AegovDrawer extends Components.AegovDrawer {
311
1018
  declare class AegovDropdown {
312
1019
  protected z: NgZone;
313
1020
  protected el: HTMLAegovDropdownElement;
1021
+ /**
1022
+ * Unique ID for the dropdown menu element. Auto-generated if not provided.
1023
+ The trigger element receives a derived ID `${fieldId}-trigger` for ARIA linkage.
1024
+ */
1025
+ set fieldId(_: Components.AegovDropdown['fieldId']);
1026
+ /**
1027
+ * Trigger type for showing the dropdown @default 'click'
1028
+ */
1029
+ set trigger(_: Components.AegovDropdown['trigger']);
1030
+ /**
1031
+ * Controls Tab key behaviour when the dropdown is open.
1032
+
1033
+ - `'menu-button'` (default): Tab and Shift+Tab trap focus inside the open
1034
+ menu, cycling through its items with wraparound — identical to
1035
+ ArrowDown/ArrowUp. Use this for action menus, settings menus, and other
1036
+ non-navigation dropdowns.
1037
+
1038
+ - `'disclosure'`: Tab moves focus through the links inside the open menu,
1039
+ then closes it when focus leaves the last item — follows the WAI-ARIA
1040
+ Disclosure Navigation Hybrid pattern. Set automatically by
1041
+ `aegov-navbar-item` when the dropdown is used as a nav sub-menu. @default 'menu-button'
1042
+ */
1043
+ set tabBehavior(_: Components.AegovDropdown['tabBehavior']);
1044
+ /**
1045
+ * Position of the dropdown relative to the trigger element @default 'bottom'
1046
+ */
1047
+ set position(_: Components.AegovDropdown['position']);
1048
+ /**
1049
+ * Alignment of the dropdown @default 'start'
1050
+ */
1051
+ set align(_: Components.AegovDropdown['align']);
1052
+ /**
1053
+ * Gap between dropdown and trigger element (in pixels) @default 8
1054
+ */
1055
+ set gap(_: Components.AegovDropdown['gap']);
1056
+ /**
1057
+ * Additional offset for dropdown positioning (in pixels) @default 0
1058
+ */
1059
+ set offset(_: Components.AegovDropdown['offset']);
1060
+ /**
1061
+ * Whether the dropdown is disabled @default false
1062
+ */
1063
+ set isDisabled(_: Components.AegovDropdown['isDisabled']);
1064
+ /**
1065
+ * Delay before showing dropdown (in milliseconds) @default 200
1066
+ */
1067
+ set delayStart(_: Components.AegovDropdown['delayStart']);
1068
+ /**
1069
+ * Delay before hiding dropdown (in milliseconds) @default 0
1070
+ */
1071
+ set delayEnd(_: Components.AegovDropdown['delayEnd']);
314
1072
  aegovDropdownOpen: EventEmitter<AegovDropdownCustomEvent<void>>;
315
1073
  aegovDropdownClose: EventEmitter<AegovDropdownCustomEvent<void>>;
316
1074
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
317
1075
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovDropdown, never>;
318
1076
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovDropdown, "aegov-dropdown", never, { "align": { "alias": "align"; "required": false; }; "delayEnd": { "alias": "delayEnd"; "required": false; }; "delayStart": { "alias": "delayStart"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "position": { "alias": "position"; "required": false; }; "tabBehavior": { "alias": "tabBehavior"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; }, { "aegovDropdownOpen": "aegovDropdownOpen"; "aegovDropdownClose": "aegovDropdownClose"; }, never, ["*"], true, never>;
1077
+ static ngAcceptInputType_delayEnd: number | NumericString | null | undefined;
1078
+ static ngAcceptInputType_delayStart: number | NumericString | null | undefined;
1079
+ static ngAcceptInputType_gap: number | NumericString | null | undefined;
1080
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
1081
+ static ngAcceptInputType_offset: number | NumericString | null | undefined;
319
1082
  }
320
1083
  declare interface AegovDropdown extends Components.AegovDropdown {
321
1084
  /**
@@ -330,6 +1093,77 @@ declare interface AegovDropdown extends Components.AegovDropdown {
330
1093
  declare class AegovFileupload {
331
1094
  protected z: NgZone;
332
1095
  protected el: HTMLAegovFileuploadElement;
1096
+ /**
1097
+ * Unique field ID. Auto-generated if not provided.
1098
+ */
1099
+ set fieldId(_: Components.AegovFileupload['fieldId']);
1100
+ /**
1101
+ * Variant style: 'default' (styled input + button), 'button' (hidden input, label-as-button),
1102
+ or 'dropzone' (drag-and-drop area). @default 'default'
1103
+ */
1104
+ set appearance(_: Components.AegovFileupload['appearance']);
1105
+ /**
1106
+ * Component size. @default 'base'
1107
+ */
1108
+ set size(_: Components.AegovFileupload['size']);
1109
+ /**
1110
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
1111
+ */
1112
+ set variant(_: Components.AegovFileupload['variant']);
1113
+ /**
1114
+ * Allow multiple file selection. @default false
1115
+ */
1116
+ set isMultiple(_: Components.AegovFileupload['isMultiple']);
1117
+ /**
1118
+ * Accepted file types (e.g. ".pdf,.jpg,image/*").
1119
+ */
1120
+ set accept(_: Components.AegovFileupload['accept']);
1121
+ /**
1122
+ * Maximum file size in bytes.
1123
+ */
1124
+ set maxFileSize(_: Components.AegovFileupload['maxFileSize']);
1125
+ /**
1126
+ * Maximum number of files (multiple mode only). No limit by default.
1127
+ */
1128
+ set maxFiles(_: Components.AegovFileupload['maxFiles']);
1129
+ /**
1130
+ * Disables the file upload. @default false
1131
+ */
1132
+ set isDisabled(_: Components.AegovFileupload['isDisabled']);
1133
+ /**
1134
+ * Marks the field as required. @default false
1135
+ */
1136
+ set isRequired(_: Components.AegovFileupload['isRequired']);
1137
+ /**
1138
+ * Visual + a11y invalid state. See §2.3. @default false
1139
+ */
1140
+ set isInvalid(_: Components.AegovFileupload['isInvalid']);
1141
+ /**
1142
+ * Inline error message. Use `error` slot for rich markup. @default ''
1143
+ */
1144
+ set errorMessage(_: Components.AegovFileupload['errorMessage']);
1145
+ /**
1146
+ * Form field name.
1147
+ */
1148
+ set name(_: Components.AegovFileupload['name']);
1149
+ /**
1150
+ * Label text displayed above the control.
1151
+ */
1152
+ set label(_: Components.AegovFileupload['label']);
1153
+ /**
1154
+ * Helper hint text displayed below the label. Renamed from `description` per §6.6
1155
+ (pre-production rename, no compat shim). Hidden when an error is shown.
1156
+ */
1157
+ set hint(_: Components.AegovFileupload['hint']);
1158
+ /**
1159
+ * Custom helper text for allowed file types. Overrides auto-generated text from `accept`.
1160
+ Shown alongside the hint, distinct from validation error text.
1161
+ */
1162
+ set labelHelp(_: Components.AegovFileupload['labelHelp']);
1163
+ /**
1164
+ * Custom text for the browse/trigger button.
1165
+ */
1166
+ set labelButton(_: Components.AegovFileupload['labelButton']);
333
1167
  aegovFileuploadChange: EventEmitter<AegovFileuploadCustomEvent<{
334
1168
  files: File[];
335
1169
  }>>;
@@ -341,6 +1175,12 @@ declare class AegovFileupload {
341
1175
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
342
1176
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovFileupload, never>;
343
1177
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovFileupload, "aegov-fileupload", never, { "accept": { "alias": "accept"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isMultiple": { "alias": "isMultiple"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelButton": { "alias": "labelButton"; "required": false; }; "labelHelp": { "alias": "labelHelp"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "maxFiles": { "alias": "maxFiles"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovFileuploadChange": "aegovFileuploadChange"; "aegovFileuploadRemove": "aegovFileuploadRemove"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
1178
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
1179
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
1180
+ static ngAcceptInputType_isMultiple: boolean | string | null | undefined;
1181
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
1182
+ static ngAcceptInputType_maxFileSize: number | NumericString | null | undefined;
1183
+ static ngAcceptInputType_maxFiles: number | NumericString | null | undefined;
344
1184
  }
345
1185
  declare interface AegovFileupload extends Components.AegovFileupload {
346
1186
  /**
@@ -364,6 +1204,48 @@ declare interface AegovFileupload extends Components.AegovFileupload {
364
1204
  declare class AegovFooter {
365
1205
  protected z: NgZone;
366
1206
  protected el: HTMLAegovFooterElement;
1207
+ /**
1208
+ * Controls how footer link columns behave below the `sm` breakpoint (640px)
1209
+ — the point at which the reference footer block stops being collapsible
1210
+ altogether, well before the grid switches from 2 to 4 columns at `lg`.
1211
+ - "collapsible" (default): each column's content toggles below `sm`, always expanded at `sm+`.
1212
+ - "flat": columns are always expanded, at every breakpoint.
1213
+ Author each column as a plain title element + content — no extra markup needed for either value. @default 'collapsible'
1214
+ */
1215
+ set navVariant(_: Components.AegovFooter['navVariant']);
1216
+ /**
1217
+ * Forwarded to the embedded `aegov-footer-highlights`.
1218
+ */
1219
+ set entityContactNumber(_: Components.AegovFooter['entityContactNumber']);
1220
+ /**
1221
+ * Forwarded to the embedded `aegov-footer-highlights`.
1222
+ */
1223
+ set entityContactNumberLabel(_: Components.AegovFooter['entityContactNumberLabel']);
1224
+ /**
1225
+ * Forwarded to the embedded `aegov-footer-highlights`.
1226
+ */
1227
+ set entityEmail(_: Components.AegovFooter['entityEmail']);
1228
+ /**
1229
+ * Forwarded to the embedded `aegov-footer-highlights`.
1230
+ */
1231
+ set entityEmailLabel(_: Components.AegovFooter['entityEmailLabel']);
1232
+ /**
1233
+ * Forwarded to the embedded `aegov-footer-highlights`.
1234
+ */
1235
+ set entityContactHref(_: Components.AegovFooter['entityContactHref']);
1236
+ /**
1237
+ * Link to the entity's app on Apple's App Store. When set (alone or with
1238
+ `googlePlayHref`), a "Download our app" badge block renders in the
1239
+ `brand` column, below the slotted logo/description/social links.
1240
+ Entirely optional — nothing renders unless at least one of the two is
1241
+ provided.
1242
+ */
1243
+ set appStoreHref(_: Components.AegovFooter['appStoreHref']);
1244
+ /**
1245
+ * Link to the entity's app on Google Play, shown alongside `appStoreHref`
1246
+ in the same "Download our app" block.
1247
+ */
1248
+ set googlePlayHref(_: Components.AegovFooter['googlePlayHref']);
367
1249
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
368
1250
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovFooter, never>;
369
1251
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovFooter, "aegov-footer", never, { "appStoreHref": { "alias": "appStoreHref"; "required": false; }; "entityContactHref": { "alias": "entityContactHref"; "required": false; }; "entityContactNumber": { "alias": "entityContactNumber"; "required": false; }; "entityContactNumberLabel": { "alias": "entityContactNumberLabel"; "required": false; }; "entityEmail": { "alias": "entityEmail"; "required": false; }; "entityEmailLabel": { "alias": "entityEmailLabel"; "required": false; }; "googlePlayHref": { "alias": "googlePlayHref"; "required": false; }; "navVariant": { "alias": "navVariant"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -373,6 +1255,33 @@ declare interface AegovFooter extends Components.AegovFooter {
373
1255
  declare class AegovFooterHighlights {
374
1256
  protected z: NgZone;
375
1257
  protected el: HTMLAegovFooterHighlightsElement;
1258
+ /**
1259
+ * The entity's own contact number (e.g. "800 8877"), shown in the fixed
1260
+ "Contact us" card alongside the Tawasul 171/WhatsApp channels. Entirely
1261
+ optional and site-specific — nothing renders unless it's provided.
1262
+ */
1263
+ set entityContactNumber(_: Components.AegovFooterHighlights['entityContactNumber']);
1264
+ /**
1265
+ * Overrides the label shown before `entityContactNumber` (defaults to the
1266
+ bilingual "Toll free"/"الرقم المجاني" text used elsewhere in this block).
1267
+ */
1268
+ set entityContactNumberLabel(_: Components.AegovFooterHighlights['entityContactNumberLabel']);
1269
+ /**
1270
+ * The entity's own contact email, shown below the contact number. Entirely
1271
+ optional — nothing renders unless it's provided.
1272
+ */
1273
+ set entityEmail(_: Components.AegovFooterHighlights['entityEmail']);
1274
+ /**
1275
+ * Overrides the label shown before `entityEmail` (defaults to the
1276
+ bilingual "Email"/"البريد الإلكتروني" text).
1277
+ */
1278
+ set entityEmailLabel(_: Components.AegovFooterHighlights['entityEmailLabel']);
1279
+ /**
1280
+ * Target for the fixed "Contact us" link at the end of the card. The link
1281
+ text itself is fixed — only the destination is site-specific — so
1282
+ nothing renders unless this is provided.
1283
+ */
1284
+ set entityContactHref(_: Components.AegovFooterHighlights['entityContactHref']);
376
1285
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
377
1286
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovFooterHighlights, never>;
378
1287
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovFooterHighlights, "aegov-footer-highlights", never, { "entityContactHref": { "alias": "entityContactHref"; "required": false; }; "entityContactNumber": { "alias": "entityContactNumber"; "required": false; }; "entityContactNumberLabel": { "alias": "entityContactNumberLabel"; "required": false; }; "entityEmail": { "alias": "entityEmail"; "required": false; }; "entityEmailLabel": { "alias": "entityEmailLabel"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -382,15 +1291,94 @@ declare interface AegovFooterHighlights extends Components.AegovFooterHighlights
382
1291
  declare class AegovFormField {
383
1292
  protected z: NgZone;
384
1293
  protected el: HTMLAegovFormFieldElement;
1294
+ /**
1295
+ * Unique ID for the form-field wrapper. Auto-generated if not provided.
1296
+ */
1297
+ set fieldId(_: Components.AegovFormField['fieldId']);
1298
+ /**
1299
+ * Wrapper-level invalid state. Cascades to the first form-control descendant if the
1300
+ child has not set its own value; setting it back to `false` clears what it
1301
+ cascaded. See validation-engine-addon.md §2.7. @default false
1302
+ */
1303
+ set isInvalid(_: Components.AegovFormField['isInvalid']);
1304
+ /**
1305
+ * Wrapper-level error message — cascaded to first form-control descendant unless it has its own; changing or clearing it updates the cascaded value. @default ''
1306
+ */
1307
+ set errorMessage(_: Components.AegovFormField['errorMessage']);
1308
+ /**
1309
+ * Wrapper-level hint — cascaded to first form-control descendant unless it has its own; changing or clearing it updates the cascaded value. @default ''
1310
+ */
1311
+ set hint(_: Components.AegovFormField['hint']);
1312
+ /**
1313
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Cascades to first form-control descendant.
1314
+ */
1315
+ set variant(_: Components.AegovFormField['variant']);
1316
+ /**
1317
+ * Additional CSS classes to apply.
1318
+ */
1319
+ set extraClass(_: Components.AegovFormField['extraClass']);
385
1320
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
386
1321
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovFormField, never>;
387
1322
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovFormField, "aegov-form-field", never, { "errorMessage": { "alias": "errorMessage"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
1323
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
388
1324
  }
389
1325
  declare interface AegovFormField extends Components.AegovFormField {
390
1326
  }
391
1327
  declare class AegovHeader {
392
1328
  protected z: NgZone;
393
1329
  protected el: HTMLAegovHeaderElement;
1330
+ /**
1331
+ * The variant of the header. Determines the layout and style.
1332
+ - "ministry": Header for ministry-level entities
1333
+ - "authority": Header for authority-level entities @default 'ministry'
1334
+ */
1335
+ set variant(_: Components.AegovHeader['variant']);
1336
+ /**
1337
+ * The name of the government entity. Required. Forwarded to the embedded aegov-header-banner.
1338
+ */
1339
+ set entityName(_: Components.AegovHeader['entityName']);
1340
+ /**
1341
+ * The domain/URL of the government entity. Required. Forwarded to the embedded aegov-header-banner.
1342
+ */
1343
+ set entityDomain(_: Components.AegovHeader['entityDomain']);
1344
+ /**
1345
+ * Forwarded to the embedded aegov-header-banner. The CSS selector or ID of the main content container to skip to (e.g. "#main-content"). When provided, the banner injects a "Skip to content" link at the top of the document body.
1346
+ */
1347
+ set skipContentContainer(_: Components.AegovHeader['skipContentContainer']);
1348
+ /**
1349
+ * Accessible name for the logo anchor. When provided, applied as aria-label on the <a> element.
1350
+ */
1351
+ set logoLabel(_: Components.AegovHeader['logoLabel']);
1352
+ /**
1353
+ * Accessible name for the menu toggle, and the accessible name of the drawer it opens. Defaults to "Menu" / "القائمة".
1354
+ */
1355
+ set labelMenu(_: Components.AegovHeader['labelMenu']);
1356
+ /**
1357
+ * Accessible name for the close button inside the menu drawer. Defaults to "Close menu" / "إغلاق القائمة".
1358
+ */
1359
+ set labelMenuClose(_: Components.AegovHeader['labelMenuClose']);
1360
+ /**
1361
+ * Breakpoint at which the `navigation` slot appears and the menu toggle
1362
+ disappears. Below it, navigation is hidden and the toggle opens the drawer.
1363
+ `"lg"` (1024px) by default; `"md"` is the narrowest allowed. @default 'lg'
1364
+ */
1365
+ set collapseAt(_: Components.AegovHeader['collapseAt']);
1366
+ /**
1367
+ * Panel width of the menu drawer. Below 640px all widths collapse to full width. @default 'base'
1368
+ */
1369
+ set drawerSize(_: Components.AegovHeader['drawerSize']);
1370
+ /**
1371
+ * Whether the main bar pins to the top of the viewport on scroll. The
1372
+ `aegov-header-banner` above it scrolls away; once it has, the bar gains a
1373
+ translucent blurred background and a shadow.
1374
+
1375
+ Implemented by making the host itself sticky with a negative `top` equal to
1376
+ the banner's height — `position: sticky` on the bar alone cannot work,
1377
+ because a sticky element is confined to its parent's box and would unstick
1378
+ as soon as the header scrolled past. Like any sticky element, an ancestor
1379
+ with `overflow: hidden` / `auto` in the consumer's page breaks it. @default false
1380
+ */
1381
+ set isSticky(_: Components.AegovHeader['isSticky']);
394
1382
  aegovHeaderMenuOpen: EventEmitter<AegovHeaderCustomEvent<void>>;
395
1383
  aegovHeaderMenuClose: EventEmitter<AegovHeaderCustomEvent<void>>;
396
1384
  aegovHeaderStuck: EventEmitter<AegovHeaderCustomEvent<void>>;
@@ -398,6 +1386,7 @@ declare class AegovHeader {
398
1386
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
399
1387
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovHeader, never>;
400
1388
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovHeader, "aegov-header", never, { "collapseAt": { "alias": "collapseAt"; "required": false; }; "drawerSize": { "alias": "drawerSize"; "required": false; }; "entityDomain": { "alias": "entityDomain"; "required": false; }; "entityName": { "alias": "entityName"; "required": false; }; "isSticky": { "alias": "isSticky"; "required": false; }; "labelMenu": { "alias": "labelMenu"; "required": false; }; "labelMenuClose": { "alias": "labelMenuClose"; "required": false; }; "logoLabel": { "alias": "logoLabel"; "required": false; }; "skipContentContainer": { "alias": "skipContentContainer"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovHeaderMenuOpen": "aegovHeaderMenuOpen"; "aegovHeaderMenuClose": "aegovHeaderMenuClose"; "aegovHeaderStuck": "aegovHeaderStuck"; "aegovHeaderUnstuck": "aegovHeaderUnstuck"; }, never, ["*"], true, never>;
1389
+ static ngAcceptInputType_isSticky: boolean | string | null | undefined;
401
1390
  }
402
1391
  declare interface AegovHeader extends Components.AegovHeader {
403
1392
  /**
@@ -420,6 +1409,18 @@ declare interface AegovHeader extends Components.AegovHeader {
420
1409
  declare class AegovHeaderBanner {
421
1410
  protected z: NgZone;
422
1411
  protected el: HTMLAegovHeaderBannerElement;
1412
+ /**
1413
+ * The name of the government entity. Required.
1414
+ */
1415
+ set entityName(_: Components.AegovHeaderBanner['entityName']);
1416
+ /**
1417
+ * The domain/URL of the government entity. Required.
1418
+ */
1419
+ set entityDomain(_: Components.AegovHeaderBanner['entityDomain']);
1420
+ /**
1421
+ * The CSS selector or ID of the main content container to skip to (e.g. "#main-content"). When provided, renders a "Skip to content" link before the header for keyboard accessibility.
1422
+ */
1423
+ set skipContentContainer(_: Components.AegovHeaderBanner['skipContentContainer']);
423
1424
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
424
1425
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovHeaderBanner, never>;
425
1426
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovHeaderBanner, "aegov-header-banner", never, { "entityDomain": { "alias": "entityDomain"; "required": false; }; "entityName": { "alias": "entityName"; "required": false; }; "skipContentContainer": { "alias": "skipContentContainer"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -429,6 +1430,80 @@ declare interface AegovHeaderBanner extends Components.AegovHeaderBanner {
429
1430
  declare class AegovInput {
430
1431
  protected z: NgZone;
431
1432
  protected el: HTMLAegovInputElement;
1433
+ /**
1434
+ * Unique ID for the native input element. Auto-generated if not provided.
1435
+ */
1436
+ set fieldId(_: Components.AegovInput['fieldId']);
1437
+ /**
1438
+ * The type of the input field. @default 'text'
1439
+ */
1440
+ set type(_: Components.AegovInput['type']);
1441
+ /**
1442
+ * The size of the input field. @default 'base'
1443
+ */
1444
+ set size(_: Components.AegovInput['size']);
1445
+ /**
1446
+ * Colour family. Drives idle ring, value text, and accent hover. Focus ring stays camel; error stays aered regardless.
1447
+ */
1448
+ set variant(_: Components.AegovInput['variant']);
1449
+ /**
1450
+ * Whether the input is disabled. @default false
1451
+ */
1452
+ set isDisabled(_: Components.AegovInput['isDisabled']);
1453
+ /**
1454
+ * Whether the input is readonly. @default false
1455
+ */
1456
+ set isReadonly(_: Components.AegovInput['isReadonly']);
1457
+ /**
1458
+ * Placeholder text for the input.
1459
+ */
1460
+ set placeholder(_: Components.AegovInput['placeholder']);
1461
+ /**
1462
+ * The current value of the input. @default ''
1463
+ */
1464
+ set value(_: Components.AegovInput['value']);
1465
+ /**
1466
+ * The name attribute for the input. Reflected so ElementInternals can read it for form submission.
1467
+ */
1468
+ set name(_: Components.AegovInput['name']);
1469
+ /**
1470
+ * Whether the input is required. @default false
1471
+ */
1472
+ set isRequired(_: Components.AegovInput['isRequired']);
1473
+ /**
1474
+ * Show a toggle button to reveal/hide password. Only applies when type="password". @default false
1475
+ */
1476
+ set isRevealable(_: Components.AegovInput['isRevealable']);
1477
+ /**
1478
+ * Show a copy button to copy the input value to clipboard. Only applies when readonly. @default false
1479
+ */
1480
+ set isCopyable(_: Components.AegovInput['isCopyable']);
1481
+ /**
1482
+ * Visual + a11y invalid state. Toggles `aria-invalid="true"` on the inner input
1483
+ and adds the `is-invalid` class on the host. See validation-engine-addon.md §2.3. @default false
1484
+ */
1485
+ set isInvalid(_: Components.AegovInput['isInvalid']);
1486
+ /**
1487
+ * Inline error message rendered below the control when `isInvalid` is true.
1488
+ Auto-wires `aria-describedby` on the inner input. Use the `error` slot for
1489
+ richer markup. @default ''
1490
+ */
1491
+ set errorMessage(_: Components.AegovInput['errorMessage']);
1492
+ /**
1493
+ * Helper hint rendered below the control. Hidden when an error is shown so the
1494
+ two text regions don't compete for the user's attention. Use the `hint` slot
1495
+ for richer markup. @default ''
1496
+ */
1497
+ set hint(_: Components.AegovInput['hint']);
1498
+ /**
1499
+ * Additional CSS classes to apply.
1500
+
1501
+ This component renders in a real shadow root, which normally blocks the page's CSS
1502
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
1503
+ in from the page's own stylesheets at runtime and work as expected; other utilities
1504
+ (colour, border, typography, etc.) still have no effect — see #35.
1505
+ */
1506
+ set extraClass(_: Components.AegovInput['extraClass']);
432
1507
  aegovInputChange: EventEmitter<AegovInputCustomEvent<{
433
1508
  value: string;
434
1509
  event: globalThis.Event;
@@ -443,6 +1518,12 @@ declare class AegovInput {
443
1518
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
444
1519
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovInput, never>;
445
1520
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovInput, "aegov-input", never, { "errorMessage": { "alias": "errorMessage"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isCopyable": { "alias": "isCopyable"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isReadonly": { "alias": "isReadonly"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "isRevealable": { "alias": "isRevealable"; "required": false; }; "name": { "alias": "name"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovInputChange": "aegovInputChange"; "aegovInputValue": "aegovInputValue"; "aegovInputFocus": "aegovInputFocus"; "aegovInputBlur": "aegovInputBlur"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
1521
+ static ngAcceptInputType_isCopyable: boolean | string | null | undefined;
1522
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
1523
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
1524
+ static ngAcceptInputType_isReadonly: boolean | string | null | undefined;
1525
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
1526
+ static ngAcceptInputType_isRevealable: boolean | string | null | undefined;
446
1527
  }
447
1528
  declare interface AegovInput extends Components.AegovInput {
448
1529
  /**
@@ -477,6 +1558,31 @@ declare interface AegovInput extends Components.AegovInput {
477
1558
  declare class AegovInputGroup {
478
1559
  protected z: NgZone;
479
1560
  protected el: HTMLAegovInputGroupElement;
1561
+ /**
1562
+ * The size of the input group. Propagated to child aegov-input and aegov-button. @default 'base'
1563
+ */
1564
+ set size(_: Components.AegovInputGroup['size']);
1565
+ /**
1566
+ * Text to display as a prefix addon before the input.
1567
+ */
1568
+ set addonPrefix(_: Components.AegovInputGroup['addonPrefix']);
1569
+ /**
1570
+ * Text to display as a suffix addon after the input.
1571
+ */
1572
+ set addonSuffix(_: Components.AegovInputGroup['addonSuffix']);
1573
+ /**
1574
+ * Accessible label for the group. Sets `aria-label` on the group wrapper.
1575
+ Use this to describe the purpose of a combined phone/URL/similar input group.
1576
+ */
1577
+ set groupLabel(_: Components.AegovInputGroup['groupLabel']);
1578
+ /**
1579
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
1580
+ */
1581
+ set variant(_: Components.AegovInputGroup['variant']);
1582
+ /**
1583
+ * Additional CSS classes to apply.
1584
+ */
1585
+ set extraClass(_: Components.AegovInputGroup['extraClass']);
480
1586
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
481
1587
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovInputGroup, never>;
482
1588
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovInputGroup, "aegov-input-group", never, { "addonPrefix": { "alias": "addonPrefix"; "required": false; }; "addonSuffix": { "alias": "addonSuffix"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "groupLabel": { "alias": "groupLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -486,6 +1592,22 @@ declare interface AegovInputGroup extends Components.AegovInputGroup {
486
1592
  declare class AegovLabel {
487
1593
  protected z: NgZone;
488
1594
  protected el: HTMLAegovLabelElement;
1595
+ /**
1596
+ * Unique ID for the label element. Auto-generated if not provided.
1597
+ */
1598
+ set fieldId(_: Components.AegovLabel['fieldId']);
1599
+ /**
1600
+ * The ID of the form element this label is for. Automatically set by parent aegov-form-field.
1601
+ */
1602
+ set htmlFor(_: Components.AegovLabel['htmlFor']);
1603
+ /**
1604
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
1605
+ */
1606
+ set variant(_: Components.AegovLabel['variant']);
1607
+ /**
1608
+ * Additional CSS classes to apply.
1609
+ */
1610
+ set extraClass(_: Components.AegovLabel['extraClass']);
489
1611
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
490
1612
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovLabel, never>;
491
1613
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovLabel, "aegov-label", never, { "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "htmlFor": { "alias": "htmlFor"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -495,6 +1617,56 @@ declare interface AegovLabel extends Components.AegovLabel {
495
1617
  declare class AegovLink {
496
1618
  protected z: NgZone;
497
1619
  protected el: HTMLAegovLinkElement;
1620
+ /**
1621
+ * Unique ID for the inner anchor element. Auto-generated if not provided.
1622
+ */
1623
+ set fieldId(_: Components.AegovLink['fieldId']);
1624
+ /**
1625
+ * The URL that the link points to. @required undefined
1626
+ */
1627
+ set href(_: Components.AegovLink['href']);
1628
+ /**
1629
+ * Target attribute for the link (_blank, _self, _parent, _top).
1630
+ */
1631
+ set target(_: Components.AegovLink['target']);
1632
+ /**
1633
+ * Rel attribute for the link (e.g., "noopener noreferrer" for external links).
1634
+ */
1635
+ set rel(_: Components.AegovLink['rel']);
1636
+ /**
1637
+ * Additional CSS classes to apply to the link.
1638
+ */
1639
+ set extraClass(_: Components.AegovLink['extraClass']);
1640
+ /**
1641
+ * Button-style color variant. Setting this opts into button styling.
1642
+ */
1643
+ set variant(_: Components.AegovLink['variant']);
1644
+ /**
1645
+ * Button-style appearance. Setting this opts into button styling.
1646
+ */
1647
+ set appearance(_: Components.AegovLink['appearance']);
1648
+ /**
1649
+ * Button-style size (xs/sm/base/lg/xl, optionally responsive).
1650
+ */
1651
+ set size(_: Components.AegovLink['size']);
1652
+ /**
1653
+ * Render as icon-only (square). Requires a button-style appearance. @default false
1654
+ */
1655
+ set isIcon(_: Components.AegovLink['isIcon']);
1656
+ /**
1657
+ * Stretch to fill container width. @default false
1658
+ */
1659
+ set isFull(_: Components.AegovLink['isFull']);
1660
+ /**
1661
+ * Bold text. @default true
1662
+ */
1663
+ set isBold(_: Components.AegovLink['isBold']);
1664
+ /**
1665
+ * Disable navigation and apply disabled styling. Adds `aria-disabled="true"`,
1666
+ removes the link from tab order, and prevents default click navigation.
1667
+ Native `<a>` does not support `disabled`; this is a polyfill. @default false
1668
+ */
1669
+ set isDisabled(_: Components.AegovLink['isDisabled']);
498
1670
  aegovLinkClick: EventEmitter<AegovLinkCustomEvent<{
499
1671
  href: string;
500
1672
  event: MouseEvent;
@@ -502,6 +1674,10 @@ declare class AegovLink {
502
1674
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
503
1675
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovLink, never>;
504
1676
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovLink, "aegov-link", never, { "appearance": { "alias": "appearance"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "href": { "alias": "href"; "required": true; }; "isBold": { "alias": "isBold"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isFull": { "alias": "isFull"; "required": false; }; "isIcon": { "alias": "isIcon"; "required": false; }; "rel": { "alias": "rel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "target": { "alias": "target"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovLinkClick": "aegovLinkClick"; }, never, ["*"], true, never>;
1677
+ static ngAcceptInputType_isBold: boolean | string | null | undefined;
1678
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
1679
+ static ngAcceptInputType_isFull: boolean | string | null | undefined;
1680
+ static ngAcceptInputType_isIcon: boolean | string | null | undefined;
505
1681
  }
506
1682
  declare interface AegovLink extends Components.AegovLink {
507
1683
  /**
@@ -516,6 +1692,44 @@ declare interface AegovLink extends Components.AegovLink {
516
1692
  declare class AegovModal {
517
1693
  protected z: NgZone;
518
1694
  protected el: HTMLAegovModalElement;
1695
+ /**
1696
+ * Unique ID for the modal dialog element. Auto-generated if not provided.
1697
+ */
1698
+ set fieldId(_: Components.AegovModal['fieldId']);
1699
+ /**
1700
+ * Whether the modal is currently open/visible @default false
1701
+ */
1702
+ set isOpen(_: Components.AegovModal['isOpen']);
1703
+ /**
1704
+ * Whether clicking the overlay closes the modal @default true
1705
+ */
1706
+ set isCloseWithOverlay(_: Components.AegovModal['isCloseWithOverlay']);
1707
+ /**
1708
+ * Whether to prevent body scroll when modal is open @default true
1709
+ */
1710
+ set isPreventScroll(_: Components.AegovModal['isPreventScroll']);
1711
+ /**
1712
+ * Overlay opacity level @default 'base'
1713
+ */
1714
+ set overlayOpacity(_: Components.AegovModal['overlayOpacity']);
1715
+ /**
1716
+ * Position of the modal on screen @default 'center'
1717
+ */
1718
+ set position(_: Components.AegovModal['position']);
1719
+ /**
1720
+ * Size: 'sm' (compact padding/radius), 'base' (default), 'lg' (generous padding/radius), or 'xl' (extra-wide). Mirrors aegov-card sizing tokens. @default 'base'
1721
+ */
1722
+ set size(_: Components.AegovModal['size']);
1723
+ /**
1724
+ * Whether to apply inner content padding. On by default; scales with size. @default true
1725
+ */
1726
+ set isPadding(_: Components.AegovModal['isPadding']);
1727
+ /**
1728
+ * Accessible label for the dialog. Passed as `aria-label` on the dialog element.
1729
+ Required for screen readers unless you pass `aria-labelledby` pointing to a
1730
+ heading rendered inside the modal's slot.
1731
+ */
1732
+ set label(_: Components.AegovModal['label']);
519
1733
  aegovModalOpen: EventEmitter<AegovModalCustomEvent<void>>;
520
1734
  aegovModalClose: EventEmitter<AegovModalCustomEvent<void>>;
521
1735
  aegovModalBeforeClose: EventEmitter<AegovModalCustomEvent<void>>;
@@ -524,6 +1738,10 @@ declare class AegovModal {
524
1738
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
525
1739
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovModal, never>;
526
1740
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovModal, "aegov-modal", never, { "fieldId": { "alias": "fieldId"; "required": false; }; "isCloseWithOverlay": { "alias": "isCloseWithOverlay"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "isPadding": { "alias": "isPadding"; "required": false; }; "isPreventScroll": { "alias": "isPreventScroll"; "required": false; }; "label": { "alias": "label"; "required": false; }; "overlayOpacity": { "alias": "overlayOpacity"; "required": false; }; "position": { "alias": "position"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "aegovModalOpen": "aegovModalOpen"; "aegovModalClose": "aegovModalClose"; "aegovModalBeforeClose": "aegovModalBeforeClose"; "aegovModalBackdropClick": "aegovModalBackdropClick"; "aegovModalEscapePress": "aegovModalEscapePress"; }, never, ["*"], true, never>;
1741
+ static ngAcceptInputType_isCloseWithOverlay: boolean | string | null | undefined;
1742
+ static ngAcceptInputType_isOpen: boolean | string | null | undefined;
1743
+ static ngAcceptInputType_isPadding: boolean | string | null | undefined;
1744
+ static ngAcceptInputType_isPreventScroll: boolean | string | null | undefined;
527
1745
  }
528
1746
  declare interface AegovModal extends Components.AegovModal {
529
1747
  /**
@@ -550,6 +1768,20 @@ declare interface AegovModal extends Components.AegovModal {
550
1768
  declare class AegovNavbar {
551
1769
  protected z: NgZone;
552
1770
  protected el: HTMLAegovNavbarElement;
1771
+ /**
1772
+ * Size of the navbar items. Accepts a Tailwind-style responsive string,
1773
+ e.g. `"sm md:base lg:lg"`, resolved against the active viewport width.
1774
+ The resolved token cascades to all aegov-navbar-item children. @default 'base'
1775
+ */
1776
+ set size(_: Components.AegovNavbar['size']);
1777
+ /**
1778
+ * Tailwind gap utility class applied between items, e.g. "gap-4", "gap-6", "gap-10". @default 'gap-3'
1779
+ */
1780
+ set gap(_: Components.AegovNavbar['gap']);
1781
+ /**
1782
+ * Accessible label for the navigation landmark. Defaults to "Main navigation" (LTR) or "التنقل الرئيسي" (RTL). @default ''
1783
+ */
1784
+ set labelNav(_: Components.AegovNavbar['labelNav']);
553
1785
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
554
1786
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovNavbar, never>;
555
1787
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovNavbar, "aegov-navbar", never, { "gap": { "alias": "gap"; "required": false; }; "labelNav": { "alias": "labelNav"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -559,30 +1791,129 @@ declare interface AegovNavbar extends Components.AegovNavbar {
559
1791
  declare class AegovNavbarItem {
560
1792
  protected z: NgZone;
561
1793
  protected el: HTMLAegovNavbarItemElement;
1794
+ /**
1795
+ * URL the item links to. If unset, item renders as a non-link span.
1796
+ */
1797
+ set href(_: Components.AegovNavbarItem['href']);
1798
+ /**
1799
+ * Anchor target attribute.
1800
+ */
1801
+ set target(_: Components.AegovNavbarItem['target']);
1802
+ /**
1803
+ * Anchor rel attribute.
1804
+ */
1805
+ set rel(_: Components.AegovNavbarItem['rel']);
1806
+ /**
1807
+ * Mark this item as the current page. Sets `aria-current="page"`. @default false
1808
+ */
1809
+ set isActive(_: Components.AegovNavbarItem['isActive']);
1810
+ /**
1811
+ * Visually disabled, not clickable, removed from arrow-key cycle. @default false
1812
+ */
1813
+ set isDisabled(_: Components.AegovNavbarItem['isDisabled']);
1814
+ /**
1815
+ * Size token. Accepts a Tailwind-style responsive string (e.g.
1816
+ `"sm md:base lg:lg"`). Parent aegov-navbar sets this to its resolved
1817
+ value; standalone use also supports breakpoint syntax. @default 'base'
1818
+ */
1819
+ set size(_: Components.AegovNavbarItem['size']);
562
1820
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
563
1821
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovNavbarItem, never>;
564
1822
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovNavbarItem, "aegov-navbar-item", never, { "href": { "alias": "href"; "required": false; }; "isActive": { "alias": "isActive"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "rel": { "alias": "rel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "target": { "alias": "target"; "required": false; }; }, {}, never, ["*"], true, never>;
1823
+ static ngAcceptInputType_isActive: boolean | string | null | undefined;
1824
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
565
1825
  }
566
1826
  declare interface AegovNavbarItem extends Components.AegovNavbarItem {
567
1827
  }
568
1828
  declare class AegovNavblock {
569
1829
  protected z: NgZone;
570
1830
  protected el: HTMLAegovNavblockElement;
1831
+ /**
1832
+ * Unique ID for the block wrapper. Auto-generated if not provided.
1833
+ */
1834
+ set fieldId(_: Components.AegovNavblock['fieldId']);
1835
+ /**
1836
+ * Block title text shown above items. The `title` slot overrides this.
1837
+ */
1838
+ set blockTitle(_: Components.AegovNavblock['blockTitle']);
1839
+ /**
1840
+ * Accessible label for the navigation landmark. Defaults to "Sidebar navigation" (LTR) or "التنقل في الشريط الجانبي" (RTL). @default ''
1841
+ */
1842
+ set labelNav(_: Components.AegovNavblock['labelNav']);
1843
+ /**
1844
+ * Allow multiple items to be open at the same level simultaneously. @default false
1845
+ */
1846
+ set isMultiple(_: Components.AegovNavblock['isMultiple']);
1847
+ /**
1848
+ * Expand/collapse icon style for items. @default 'chevron'
1849
+ */
1850
+ set icon(_: Components.AegovNavblock['icon']);
1851
+ /**
1852
+ * Size token. Accepts a Tailwind-style responsive string (e.g.
1853
+ `"sm md:base lg:lg"`). Resolves at runtime and cascades to all items. @default 'base'
1854
+ */
1855
+ set size(_: Components.AegovNavblock['size']);
1856
+ /**
1857
+ * Wrap the block in a bordered container with padding. @default false
1858
+ */
1859
+ set isBordered(_: Components.AegovNavblock['isBordered']);
1860
+ /**
1861
+ * Visual variant. `collapsible` (default) shows nested items in an
1862
+ animated accordion; `flat` renders all items at the same indentation
1863
+ level with group headers styled bold. @default 'collapsible'
1864
+ */
1865
+ set variant(_: Components.AegovNavblock['variant']);
1866
+ /**
1867
+ * When `true` and `variant="flat"`, the active item shows a coloured
1868
+ inline-start border as an active indicator (matches the Flux sidebar style). @default false
1869
+ */
1870
+ set activeBorder(_: Components.AegovNavblock['activeBorder']);
571
1871
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
572
1872
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovNavblock, never>;
573
1873
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovNavblock, "aegov-navblock", never, { "activeBorder": { "alias": "activeBorder"; "required": false; }; "blockTitle": { "alias": "blockTitle"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "isBordered": { "alias": "isBordered"; "required": false; }; "isMultiple": { "alias": "isMultiple"; "required": false; }; "labelNav": { "alias": "labelNav"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
1874
+ static ngAcceptInputType_activeBorder: boolean | string | null | undefined;
1875
+ static ngAcceptInputType_isBordered: boolean | string | null | undefined;
1876
+ static ngAcceptInputType_isMultiple: boolean | string | null | undefined;
574
1877
  }
575
1878
  declare interface AegovNavblock extends Components.AegovNavblock {
576
1879
  }
577
1880
  declare class AegovNavblockItem {
578
1881
  protected z: NgZone;
579
1882
  protected el: HTMLAegovNavblockItemElement;
1883
+ /**
1884
+ * Destination URL. If set and the item has no sub-items, renders an `<a>`.
1885
+ */
1886
+ set href(_: Components.AegovNavblockItem['href']);
1887
+ /**
1888
+ * Anchor target.
1889
+ */
1890
+ set target(_: Components.AegovNavblockItem['target']);
1891
+ /**
1892
+ * Anchor rel.
1893
+ */
1894
+ set rel(_: Components.AegovNavblockItem['rel']);
1895
+ /**
1896
+ * Mark as the current page. Sets `aria-current="page"` on the link. @default false
1897
+ */
1898
+ set isActive(_: Components.AegovNavblockItem['isActive']);
1899
+ /**
1900
+ * Visually disabled, not focusable, click no-op. @default false
1901
+ */
1902
+ set isDisabled(_: Components.AegovNavblockItem['isDisabled']);
1903
+ /**
1904
+ * Whether the sub-region is open. Set by parent navblock or parent
1905
+ navblock-item; mutable so the row can self-toggle. @default false
1906
+ */
1907
+ set isOpen(_: Components.AegovNavblockItem['isOpen']);
580
1908
  aegovNavblockItemToggle: EventEmitter<AegovNavblockItemCustomEvent<{
581
1909
  open: boolean;
582
1910
  }>>;
583
1911
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
584
1912
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovNavblockItem, never>;
585
1913
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovNavblockItem, "aegov-navblock-item", never, { "href": { "alias": "href"; "required": false; }; "isActive": { "alias": "isActive"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "rel": { "alias": "rel"; "required": false; }; "target": { "alias": "target"; "required": false; }; }, { "aegovNavblockItemToggle": "aegovNavblockItemToggle"; }, never, ["*"], true, never>;
1914
+ static ngAcceptInputType_isActive: boolean | string | null | undefined;
1915
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
1916
+ static ngAcceptInputType_isOpen: boolean | string | null | undefined;
586
1917
  }
587
1918
  declare interface AegovNavblockItem extends Components.AegovNavblockItem {
588
1919
  /**
@@ -595,6 +1926,72 @@ declare interface AegovNavblockItem extends Components.AegovNavblockItem {
595
1926
  declare class AegovOtp {
596
1927
  protected z: NgZone;
597
1928
  protected el: HTMLAegovOtpElement;
1929
+ /**
1930
+ * Unique ID for the first input cell. Auto-generated if not provided. Used by aegov-label for linking.
1931
+ */
1932
+ set fieldId(_: Components.AegovOtp['fieldId']);
1933
+ /**
1934
+ * Visual appearance. "continuous" = single bordered box with dividers between cells.
1935
+ "individual" = separate bordered boxes per digit. @default 'continuous'
1936
+ */
1937
+ set appearance(_: Components.AegovOtp['appearance']);
1938
+ /**
1939
+ * Number of input cells (digits/characters expected). @default 5
1940
+ */
1941
+ set length(_: Components.AegovOtp['length']);
1942
+ /**
1943
+ * Size of the input cells. @default 'base'
1944
+ */
1945
+ set size(_: Components.AegovOtp['size']);
1946
+ /**
1947
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
1948
+ */
1949
+ set variant(_: Components.AegovOtp['variant']);
1950
+ /**
1951
+ * Allow letters and numbers when true. Numbers only when false. @default false
1952
+ */
1953
+ set isAlphanumeric(_: Components.AegovOtp['isAlphanumeric']);
1954
+ /**
1955
+ * Regex pattern string for validation. Checked when all cells are filled.
1956
+ */
1957
+ set pattern(_: Components.AegovOtp['pattern']);
1958
+ /**
1959
+ * Disables all input cells. @default false
1960
+ */
1961
+ set isDisabled(_: Components.AegovOtp['isDisabled']);
1962
+ /**
1963
+ * Marks the field as required for form submission. Used by FormAssociated for `valueMissing`. @default false
1964
+ */
1965
+ set isRequired(_: Components.AegovOtp['isRequired']);
1966
+ /**
1967
+ * Form field name for FormAssociated submission.
1968
+ */
1969
+ set name(_: Components.AegovOtp['name']);
1970
+ /**
1971
+ * Current OTP value. Can be set externally to pre-fill cells. @default ''
1972
+ */
1973
+ set value(_: Components.AegovOtp['value']);
1974
+ /**
1975
+ * Visual + a11y invalid state. See §2.3. @default false
1976
+ */
1977
+ set isInvalid(_: Components.AegovOtp['isInvalid']);
1978
+ /**
1979
+ * Inline error message. Use `error` slot for rich markup. @default ''
1980
+ */
1981
+ set errorMessage(_: Components.AegovOtp['errorMessage']);
1982
+ /**
1983
+ * Helper hint shown below the control. Hidden when an error is shown. @default ''
1984
+ */
1985
+ set hint(_: Components.AegovOtp['hint']);
1986
+ /**
1987
+ * Additional CSS classes.
1988
+
1989
+ This component renders in a real shadow root, which normally blocks the page's CSS
1990
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
1991
+ in from the page's own stylesheets at runtime and work as expected; other utilities
1992
+ (colour, border, typography, etc.) still have no effect — see #35.
1993
+ */
1994
+ set extraClass(_: Components.AegovOtp['extraClass']);
598
1995
  aegovOtpChange: EventEmitter<AegovOtpCustomEvent<{
599
1996
  value: string;
600
1997
  }>>;
@@ -605,6 +2002,11 @@ declare class AegovOtp {
605
2002
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
606
2003
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovOtp, never>;
607
2004
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovOtp, "aegov-otp", never, { "appearance": { "alias": "appearance"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isAlphanumeric": { "alias": "isAlphanumeric"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "length": { "alias": "length"; "required": false; }; "name": { "alias": "name"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovOtpChange": "aegovOtpChange"; "aegovOtpComplete": "aegovOtpComplete"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
2005
+ static ngAcceptInputType_isAlphanumeric: boolean | string | null | undefined;
2006
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
2007
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
2008
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
2009
+ static ngAcceptInputType_length: number | NumericString | null | undefined;
608
2010
  }
609
2011
  declare interface AegovOtp extends Components.AegovOtp {
610
2012
  /**
@@ -627,10 +2029,71 @@ declare interface AegovOtp extends Components.AegovOtp {
627
2029
  declare class AegovPagination {
628
2030
  protected z: NgZone;
629
2031
  protected el: HTMLAegovPaginationElement;
2032
+ /**
2033
+ * Unique ID for the pagination nav element. Auto-generated if not provided.
2034
+ */
2035
+ set fieldId(_: Components.AegovPagination['fieldId']);
2036
+ /**
2037
+ * Total number of pages. @default 1
2038
+ */
2039
+ set pages(_: Components.AegovPagination['pages']);
2040
+ /**
2041
+ * Currently active page (1-indexed).
2042
+ This is a controlled prop — you must update it on every aegovPaginationPageChange event. @default 1
2043
+ */
2044
+ set pageCurrent(_: Components.AegovPagination['pageCurrent']);
2045
+ /**
2046
+ * Show First and Last navigation buttons alongside Previous and Next. @default false
2047
+ */
2048
+ set isEnabledFirstLast(_: Components.AegovPagination['isEnabledFirstLast']);
2049
+ /**
2050
+ * Number of sibling pages shown on each side of the current page. @default 1
2051
+ */
2052
+ set countSibling(_: Components.AegovPagination['countSibling']);
2053
+ /**
2054
+ * Number of pages always visible at each boundary (start and end of the list). @default 1
2055
+ */
2056
+ set countBoundary(_: Components.AegovPagination['countBoundary']);
2057
+ /**
2058
+ * Display variant.
2059
+ - 'default': shows page numbers, ellipsis, and prev/next buttons.
2060
+ - 'compact': shows only prev/next buttons (and first/last when isEnabledFirstLast is true). @default 'default'
2061
+ */
2062
+ set variant(_: Components.AegovPagination['variant']);
2063
+ /**
2064
+ * Size variant of the pagination. @default 'base'
2065
+ */
2066
+ set size(_: Components.AegovPagination['size']);
2067
+ /**
2068
+ * Disables all pagination interaction. @default false
2069
+ */
2070
+ set isDisabled(_: Components.AegovPagination['isDisabled']);
2071
+ /**
2072
+ * Label for the Previous page button. Empty defaults to localized text via isRtl. @default ''
2073
+ */
2074
+ set labelPrev(_: Components.AegovPagination['labelPrev']);
2075
+ /**
2076
+ * Label for the Next page button. Empty defaults to localized text via isRtl. @default ''
2077
+ */
2078
+ set labelNext(_: Components.AegovPagination['labelNext']);
2079
+ /**
2080
+ * Label for the First page button (only shown when isEnabledFirstLast is true). Empty defaults to localized text via isRtl. @default ''
2081
+ */
2082
+ set labelFirst(_: Components.AegovPagination['labelFirst']);
2083
+ /**
2084
+ * Label for the Last page button (only shown when isEnabledFirstLast is true). Empty defaults to localized text via isRtl. @default ''
2085
+ */
2086
+ set labelLast(_: Components.AegovPagination['labelLast']);
630
2087
  aegovPaginationPageChange: EventEmitter<AegovPaginationCustomEvent<number>>;
631
2088
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
632
2089
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovPagination, never>;
633
2090
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovPagination, "aegov-pagination", never, { "countBoundary": { "alias": "countBoundary"; "required": false; }; "countSibling": { "alias": "countSibling"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isEnabledFirstLast": { "alias": "isEnabledFirstLast"; "required": false; }; "labelFirst": { "alias": "labelFirst"; "required": false; }; "labelLast": { "alias": "labelLast"; "required": false; }; "labelNext": { "alias": "labelNext"; "required": false; }; "labelPrev": { "alias": "labelPrev"; "required": false; }; "pageCurrent": { "alias": "pageCurrent"; "required": false; }; "pages": { "alias": "pages"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovPaginationPageChange": "aegovPaginationPageChange"; }, never, ["*"], true, never>;
2091
+ static ngAcceptInputType_countBoundary: number | NumericString | null | undefined;
2092
+ static ngAcceptInputType_countSibling: number | NumericString | null | undefined;
2093
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
2094
+ static ngAcceptInputType_isEnabledFirstLast: boolean | string | null | undefined;
2095
+ static ngAcceptInputType_pageCurrent: number | NumericString | null | undefined;
2096
+ static ngAcceptInputType_pages: number | NumericString | null | undefined;
634
2097
  }
635
2098
  declare interface AegovPagination extends Components.AegovPagination {
636
2099
  /**
@@ -642,11 +2105,53 @@ declare interface AegovPagination extends Components.AegovPagination {
642
2105
  declare class AegovPopover {
643
2106
  protected z: NgZone;
644
2107
  protected el: HTMLAegovPopoverElement;
2108
+ /**
2109
+ * Unique ID for the popover element. Auto-generated if not provided.
2110
+ The trigger element receives a derived ID `${fieldId}-trigger` for ARIA linkage.
2111
+ */
2112
+ set fieldId(_: Components.AegovPopover['fieldId']);
2113
+ /**
2114
+ * Trigger type for showing the popover @default 'click'
2115
+ */
2116
+ set trigger(_: Components.AegovPopover['trigger']);
2117
+ /**
2118
+ * Position of the popover relative to the trigger element @default 'bottom'
2119
+ */
2120
+ set position(_: Components.AegovPopover['position']);
2121
+ /**
2122
+ * Alignment of the popover @default 'center'
2123
+ */
2124
+ set align(_: Components.AegovPopover['align']);
2125
+ /**
2126
+ * Gap between popover and trigger element (in pixels) @default 10
2127
+ */
2128
+ set gap(_: Components.AegovPopover['gap']);
2129
+ /**
2130
+ * Additional offset for popover positioning (in pixels) @default 0
2131
+ */
2132
+ set offset(_: Components.AegovPopover['offset']);
2133
+ /**
2134
+ * Whether the popover is disabled @default false
2135
+ */
2136
+ set isDisabled(_: Components.AegovPopover['isDisabled']);
2137
+ /**
2138
+ * Delay before showing popover on hover (in milliseconds) @default 200
2139
+ */
2140
+ set delayStart(_: Components.AegovPopover['delayStart']);
2141
+ /**
2142
+ * Delay before hiding popover on hover (in milliseconds) @default 0
2143
+ */
2144
+ set delayEnd(_: Components.AegovPopover['delayEnd']);
645
2145
  aegovPopoverOpen: EventEmitter<AegovPopoverCustomEvent<void>>;
646
2146
  aegovPopoverClose: EventEmitter<AegovPopoverCustomEvent<void>>;
647
2147
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
648
2148
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovPopover, never>;
649
2149
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovPopover, "aegov-popover", never, { "align": { "alias": "align"; "required": false; }; "delayEnd": { "alias": "delayEnd"; "required": false; }; "delayStart": { "alias": "delayStart"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "position": { "alias": "position"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; }, { "aegovPopoverOpen": "aegovPopoverOpen"; "aegovPopoverClose": "aegovPopoverClose"; }, never, ["*"], true, never>;
2150
+ static ngAcceptInputType_delayEnd: number | NumericString | null | undefined;
2151
+ static ngAcceptInputType_delayStart: number | NumericString | null | undefined;
2152
+ static ngAcceptInputType_gap: number | NumericString | null | undefined;
2153
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
2154
+ static ngAcceptInputType_offset: number | NumericString | null | undefined;
650
2155
  }
651
2156
  declare interface AegovPopover extends Components.AegovPopover {
652
2157
  /**
@@ -661,15 +2166,116 @@ declare interface AegovPopover extends Components.AegovPopover {
661
2166
  declare class AegovProgress {
662
2167
  protected z: NgZone;
663
2168
  protected el: HTMLAegovProgressElement;
2169
+ /**
2170
+ * Unique ID for the native progress element. Auto-generated if not provided.
2171
+ */
2172
+ set fieldId(_: Components.AegovProgress['fieldId']);
2173
+ /**
2174
+ * Current value. When not set, shows indeterminate state.
2175
+ */
2176
+ set value(_: Components.AegovProgress['value']);
2177
+ /**
2178
+ * Maximum value. @default 100
2179
+ */
2180
+ set max(_: Components.AegovProgress['max']);
2181
+ /**
2182
+ * Height using Tailwind spacing scale (1, 1.5, 2, 2.5, 3, 3.5, 4, etc.).
2183
+ Each unit = 0.25rem. Default "2" = h-2 = 0.5rem (8px). @default '2'
2184
+ */
2185
+ set height(_: Components.AegovProgress['height']);
2186
+ /**
2187
+ * Counter placement. Hidden when not set.
2188
+ */
2189
+ set counter(_: Components.AegovProgress['counter']);
2190
+ /**
2191
+ * Suffix appended directly to the counter value. No automatic spacing. @default ''
2192
+ */
2193
+ set counterSuffix(_: Components.AegovProgress['counterSuffix']);
2194
+ /**
2195
+ * Accessible label applied as aria-label on the native progress element. Provide this or a visible <label for="fieldId"> for screen reader support.
2196
+ */
2197
+ set label(_: Components.AegovProgress['label']);
2198
+ /**
2199
+ * Description text displayed below the progress bar.
2200
+ */
2201
+ set description(_: Components.AegovProgress['description']);
2202
+ /**
2203
+ * Additional CSS classes.
2204
+ */
2205
+ set extraClass(_: Components.AegovProgress['extraClass']);
664
2206
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
665
2207
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovProgress, never>;
666
2208
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovProgress, "aegov-progress", never, { "counter": { "alias": "counter"; "required": false; }; "counterSuffix": { "alias": "counterSuffix"; "required": false; }; "description": { "alias": "description"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "height": { "alias": "height"; "required": false; }; "label": { "alias": "label"; "required": false; }; "max": { "alias": "max"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, ["*"], true, never>;
2209
+ static ngAcceptInputType_max: number | NumericString | null | undefined;
2210
+ static ngAcceptInputType_value: number | NumericString | null | undefined;
667
2211
  }
668
2212
  declare interface AegovProgress extends Components.AegovProgress {
669
2213
  }
670
2214
  declare class AegovRadio {
671
2215
  protected z: NgZone;
672
2216
  protected el: HTMLAegovRadioElement;
2217
+ /**
2218
+ * Unique ID for the native radio element. Auto-generated if not provided.
2219
+ */
2220
+ set fieldId(_: Components.AegovRadio['fieldId']);
2221
+ /**
2222
+ * The name attribute for the radio. Reflected so ElementInternals reads it for form submission, and so radio-group can propagate it via JS property assignment.
2223
+ */
2224
+ set name(_: Components.AegovRadio['name']);
2225
+ /**
2226
+ * The value attribute for the radio.
2227
+ */
2228
+ set value(_: Components.AegovRadio['value']);
2229
+ /**
2230
+ * Whether the radio is checked. @default false
2231
+ */
2232
+ set isChecked(_: Components.AegovRadio['isChecked']);
2233
+ /**
2234
+ * The size of the radio. @default 'base'
2235
+ */
2236
+ set size(_: Components.AegovRadio['size']);
2237
+ /**
2238
+ * Colour family. Drives rest border, checked bg/border. Focus ring stays camel; error stays aered.
2239
+ */
2240
+ set variant(_: Components.AegovRadio['variant']);
2241
+ /**
2242
+ * Visual appearance set by a parent aegov-radio-group. Not meant to be set directly. @default 'default'
2243
+ */
2244
+ set appearance(_: Components.AegovRadio['appearance']);
2245
+ /**
2246
+ * Whether the radio is disabled. @default false
2247
+ */
2248
+ set isDisabled(_: Components.AegovRadio['isDisabled']);
2249
+ /**
2250
+ * Whether the radio is required. @default false
2251
+ */
2252
+ set isRequired(_: Components.AegovRadio['isRequired']);
2253
+ /**
2254
+ * Label text for the radio. When provided, generates an associated <label> element.
2255
+ */
2256
+ set label(_: Components.AegovRadio['label']);
2257
+ /**
2258
+ * Helper hint text displayed below the label. Renamed from `description` per §6.6.
2259
+ Hidden when an error is shown.
2260
+ */
2261
+ set hint(_: Components.AegovRadio['hint']);
2262
+ /**
2263
+ * Visual + a11y invalid state. See §2.3. @default false
2264
+ */
2265
+ set isInvalid(_: Components.AegovRadio['isInvalid']);
2266
+ /**
2267
+ * Inline error message. Use `error` slot for rich markup. @default ''
2268
+ */
2269
+ set errorMessage(_: Components.AegovRadio['errorMessage']);
2270
+ /**
2271
+ * Additional CSS classes to apply.
2272
+
2273
+ This component renders in a real shadow root, which normally blocks the page's CSS
2274
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
2275
+ in from the page's own stylesheets at runtime and work as expected; other utilities
2276
+ (colour, border, typography, etc.) still have no effect — see #35.
2277
+ */
2278
+ set extraClass(_: Components.AegovRadio['extraClass']);
673
2279
  aegovRadioChange: EventEmitter<AegovRadioCustomEvent<{
674
2280
  checked: boolean;
675
2281
  value?: string;
@@ -678,6 +2284,10 @@ declare class AegovRadio {
678
2284
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
679
2285
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovRadio, never>;
680
2286
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovRadio, "aegov-radio", never, { "appearance": { "alias": "appearance"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isChecked": { "alias": "isChecked"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovRadioChange": "aegovRadioChange"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
2287
+ static ngAcceptInputType_isChecked: boolean | string | null | undefined;
2288
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
2289
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
2290
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
681
2291
  }
682
2292
  declare interface AegovRadio extends Components.AegovRadio {
683
2293
  /**
@@ -695,6 +2305,59 @@ declare interface AegovRadio extends Components.AegovRadio {
695
2305
  declare class AegovRadioGroup {
696
2306
  protected z: NgZone;
697
2307
  protected el: HTMLAegovRadioGroupElement;
2308
+ /**
2309
+ * Visual appearance for the group layout. @default 'default'
2310
+ */
2311
+ set appearance(_: Components.AegovRadioGroup['appearance']);
2312
+ /**
2313
+ * Stack direction for radio items. @default 'vertical'
2314
+ */
2315
+ set orientation(_: Components.AegovRadioGroup['orientation']);
2316
+ /**
2317
+ * Optional label rendered as a <legend> for accessibility.
2318
+ */
2319
+ set label(_: Components.AegovRadioGroup['label']);
2320
+ /**
2321
+ * Size of all radios in the group. Propagated to children. @default 'base'
2322
+ */
2323
+ set size(_: Components.AegovRadioGroup['size']);
2324
+ /**
2325
+ * Colour family. Cascades to child radios (only if child has no own variant). Focus ring stays camel; error stays aered regardless.
2326
+ */
2327
+ set variant(_: Components.AegovRadioGroup['variant']);
2328
+ /**
2329
+ * The name shared by all radios in the group. Ensures native single-select behavior.
2330
+ */
2331
+ set name(_: Components.AegovRadioGroup['name']);
2332
+ /**
2333
+ * Disables all radios within the group via native fieldset disabled. @default false
2334
+ */
2335
+ set isDisabled(_: Components.AegovRadioGroup['isDisabled']);
2336
+ /**
2337
+ * Group is required — at least one radio must be selected. Aggregate-level only. @default false
2338
+ */
2339
+ set isRequired(_: Components.AegovRadioGroup['isRequired']);
2340
+ /**
2341
+ * Visual + a11y invalid state. See §2.3. @default false
2342
+ */
2343
+ set isInvalid(_: Components.AegovRadioGroup['isInvalid']);
2344
+ /**
2345
+ * Inline error message. @default ''
2346
+ */
2347
+ set errorMessage(_: Components.AegovRadioGroup['errorMessage']);
2348
+ /**
2349
+ * Helper hint shown below the legend when not invalid. @default ''
2350
+ */
2351
+ set hint(_: Components.AegovRadioGroup['hint']);
2352
+ /**
2353
+ * Additional CSS classes to apply.
2354
+
2355
+ This component renders in a real shadow root, which normally blocks the page's CSS
2356
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
2357
+ in from the page's own stylesheets at runtime and work as expected; other utilities
2358
+ (colour, border, typography, etc.) still have no effect — see #35.
2359
+ */
2360
+ set extraClass(_: Components.AegovRadioGroup['extraClass']);
698
2361
  aegovRadioGroupChange: EventEmitter<AegovRadioGroupCustomEvent<{
699
2362
  value: string | undefined;
700
2363
  }>>;
@@ -702,6 +2365,9 @@ declare class AegovRadioGroup {
702
2365
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
703
2366
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovRadioGroup, never>;
704
2367
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovRadioGroup, "aegov-radio-group", never, { "appearance": { "alias": "appearance"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": true; }; "orientation": { "alias": "orientation"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovRadioGroupChange": "aegovRadioGroupChange"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
2368
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
2369
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
2370
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
705
2371
  }
706
2372
  declare interface AegovRadioGroup extends Components.AegovRadioGroup {
707
2373
  /**
@@ -718,6 +2384,93 @@ declare interface AegovRadioGroup extends Components.AegovRadioGroup {
718
2384
  declare class AegovRange {
719
2385
  protected z: NgZone;
720
2386
  protected el: HTMLAegovRangeElement;
2387
+ /**
2388
+ * Unique ID for the native range input element. Auto-generated if not provided.
2389
+ */
2390
+ set fieldId(_: Components.AegovRange['fieldId']);
2391
+ /**
2392
+ * The name attribute for the range. Reflected so ElementInternals reads it for form submission.
2393
+ */
2394
+ set name(_: Components.AegovRange['name']);
2395
+ /**
2396
+ * Current value (single mode). Sanitized like a native `<input type="range">`:
2397
+ clamped to `min`/`max` and rounded to the nearest `step`, on load and
2398
+ whenever it, `min`, `max` or `step` changes. @default 50
2399
+ */
2400
+ set value(_: Components.AegovRange['value']);
2401
+ /**
2402
+ * Low thumb value (range mode). Sanitized like `value`. @default 25
2403
+ */
2404
+ set valueLow(_: Components.AegovRange['valueLow']);
2405
+ /**
2406
+ * High thumb value (range mode). Sanitized like `value`. @default 75
2407
+ */
2408
+ set valueHigh(_: Components.AegovRange['valueHigh']);
2409
+ /**
2410
+ * Minimum value. @default 0
2411
+ */
2412
+ set min(_: Components.AegovRange['min']);
2413
+ /**
2414
+ * Maximum value. @default 100
2415
+ */
2416
+ set max(_: Components.AegovRange['max']);
2417
+ /**
2418
+ * Step increment. @default 1
2419
+ */
2420
+ set step(_: Components.AegovRange['step']);
2421
+ /**
2422
+ * Size of the range track. Thumb remains constant. @default 'base'
2423
+ */
2424
+ set size(_: Components.AegovRange['size']);
2425
+ /**
2426
+ * Value display mode. @default 'none'
2427
+ */
2428
+ set display(_: Components.AegovRange['display']);
2429
+ /**
2430
+ * Layout orientation. @default 'horizontal'
2431
+ */
2432
+ set orientation(_: Components.AegovRange['orientation']);
2433
+ /**
2434
+ * Single thumb or dual thumb (range selection). @default 'single'
2435
+ */
2436
+ set mode(_: Components.AegovRange['mode']);
2437
+ /**
2438
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
2439
+ */
2440
+ set variant(_: Components.AegovRange['variant']);
2441
+ /**
2442
+ * Whether the range is disabled. @default false
2443
+ */
2444
+ set isDisabled(_: Components.AegovRange['isDisabled']);
2445
+ /**
2446
+ * Whether the range is required. @default false
2447
+ */
2448
+ set isRequired(_: Components.AegovRange['isRequired']);
2449
+ /**
2450
+ * Optional label text.
2451
+ */
2452
+ set label(_: Components.AegovRange['label']);
2453
+ /**
2454
+ * Helper hint shown below the control. Hidden when an error is shown. @default ''
2455
+ */
2456
+ set hint(_: Components.AegovRange['hint']);
2457
+ /**
2458
+ * Visual + a11y invalid state. See §2.3. @default false
2459
+ */
2460
+ set isInvalid(_: Components.AegovRange['isInvalid']);
2461
+ /**
2462
+ * Inline error message. Use `error` slot for rich markup. @default ''
2463
+ */
2464
+ set errorMessage(_: Components.AegovRange['errorMessage']);
2465
+ /**
2466
+ * Additional CSS classes.
2467
+
2468
+ This component renders in a real shadow root, which normally blocks the page's CSS
2469
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
2470
+ in from the page's own stylesheets at runtime and work as expected; other utilities
2471
+ (colour, border, typography, etc.) still have no effect — see #35.
2472
+ */
2473
+ set extraClass(_: Components.AegovRange['extraClass']);
721
2474
  aegovRangeInput: EventEmitter<AegovRangeCustomEvent<{
722
2475
  value?: number;
723
2476
  valueLow?: number;
@@ -732,6 +2485,15 @@ declare class AegovRange {
732
2485
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
733
2486
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovRange, never>;
734
2487
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovRange, "aegov-range", never, { "display": { "alias": "display"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "label": { "alias": "label"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "name": { "alias": "name"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "size": { "alias": "size"; "required": false; }; "step": { "alias": "step"; "required": false; }; "value": { "alias": "value"; "required": false; }; "valueHigh": { "alias": "valueHigh"; "required": false; }; "valueLow": { "alias": "valueLow"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovRangeInput": "aegovRangeInput"; "aegovRangeChange": "aegovRangeChange"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
2488
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
2489
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
2490
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
2491
+ static ngAcceptInputType_max: number | NumericString | null | undefined;
2492
+ static ngAcceptInputType_min: number | NumericString | null | undefined;
2493
+ static ngAcceptInputType_step: number | NumericString | null | undefined;
2494
+ static ngAcceptInputType_value: number | NumericString | null | undefined;
2495
+ static ngAcceptInputType_valueHigh: number | NumericString | null | undefined;
2496
+ static ngAcceptInputType_valueLow: number | NumericString | null | undefined;
735
2497
  }
736
2498
  declare interface AegovRange extends Components.AegovRange {
737
2499
  /**
@@ -758,6 +2520,83 @@ declare interface AegovRange extends Components.AegovRange {
758
2520
  declare class AegovSelect {
759
2521
  protected z: NgZone;
760
2522
  protected el: HTMLAegovSelectElement;
2523
+ /**
2524
+ * Unique ID for the select element. Auto-generated if not provided.
2525
+ */
2526
+ set fieldId(_: Components.AegovSelect['fieldId']);
2527
+ /**
2528
+ * The visual appearance. 'default' renders a native select; 'listbox' renders a custom dropdown. @default 'default'
2529
+ */
2530
+ set appearance(_: Components.AegovSelect['appearance']);
2531
+ /**
2532
+ * The size of the select. Matches aegov-input height. @default 'base'
2533
+ */
2534
+ set size(_: Components.AegovSelect['size']);
2535
+ /**
2536
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
2537
+ */
2538
+ set variant(_: Components.AegovSelect['variant']);
2539
+ /**
2540
+ * Whether multiple selection is enabled. Forces listbox behaviour. @default false
2541
+ */
2542
+ set isMultiple(_: Components.AegovSelect['isMultiple']);
2543
+ /**
2544
+ * Whether the select is disabled. @default false
2545
+ */
2546
+ set isDisabled(_: Components.AegovSelect['isDisabled']);
2547
+ /**
2548
+ * Placeholder text shown when nothing is selected.
2549
+ */
2550
+ set placeholder(_: Components.AegovSelect['placeholder']);
2551
+ /**
2552
+ * The current selected value. For multiple, a comma-separated string. @default ''
2553
+ */
2554
+ set value(_: Components.AegovSelect['value']);
2555
+ /**
2556
+ * The name attribute for form submission.
2557
+ */
2558
+ set name(_: Components.AegovSelect['name']);
2559
+ /**
2560
+ * Whether the select is required. @default false
2561
+ */
2562
+ set isRequired(_: Components.AegovSelect['isRequired']);
2563
+ /**
2564
+ * Show a search input in the listbox dropdown to filter options. Only works with listbox appearance. @default false
2565
+ */
2566
+ set isSearchable(_: Components.AegovSelect['isSearchable']);
2567
+ /**
2568
+ * Message shown when search yields no results. Empty string defaults to localized text via isRtl. @default ''
2569
+ */
2570
+ set emptyMessage(_: Components.AegovSelect['emptyMessage']);
2571
+ /**
2572
+ * Max visible items in the dropdown before scrolling. @default 6
2573
+ */
2574
+ set visibleItems(_: Components.AegovSelect['visibleItems']);
2575
+ /**
2576
+ * Show a clear button to reset selection. @default false
2577
+ */
2578
+ set isClearable(_: Components.AegovSelect['isClearable']);
2579
+ /**
2580
+ * Visual + a11y invalid state. See §2.3. @default false
2581
+ */
2582
+ set isInvalid(_: Components.AegovSelect['isInvalid']);
2583
+ /**
2584
+ * Inline error message. Use `error` slot for rich markup. @default ''
2585
+ */
2586
+ set errorMessage(_: Components.AegovSelect['errorMessage']);
2587
+ /**
2588
+ * Helper hint shown below the control. Hidden when an error is shown. @default ''
2589
+ */
2590
+ set hint(_: Components.AegovSelect['hint']);
2591
+ /**
2592
+ * Additional CSS classes to apply.
2593
+
2594
+ This component renders in a real shadow root, which normally blocks the page's CSS
2595
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
2596
+ in from the page's own stylesheets at runtime and work as expected; other utilities
2597
+ (colour, border, typography, etc.) still have no effect — see #35.
2598
+ */
2599
+ set extraClass(_: Components.AegovSelect['extraClass']);
761
2600
  aegovSelectChange: EventEmitter<AegovSelectCustomEvent<SelectChangeDetail>>;
762
2601
  aegovSelectOpen: EventEmitter<AegovSelectCustomEvent<void>>;
763
2602
  aegovSelectClose: EventEmitter<AegovSelectCustomEvent<void>>;
@@ -765,6 +2604,13 @@ declare class AegovSelect {
765
2604
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
766
2605
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovSelect, never>;
767
2606
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovSelect, "aegov-select", never, { "appearance": { "alias": "appearance"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isClearable": { "alias": "isClearable"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isMultiple": { "alias": "isMultiple"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "isSearchable": { "alias": "isSearchable"; "required": false; }; "name": { "alias": "name"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "visibleItems": { "alias": "visibleItems"; "required": false; }; }, { "aegovSelectChange": "aegovSelectChange"; "aegovSelectOpen": "aegovSelectOpen"; "aegovSelectClose": "aegovSelectClose"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
2607
+ static ngAcceptInputType_isClearable: boolean | string | null | undefined;
2608
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
2609
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
2610
+ static ngAcceptInputType_isMultiple: boolean | string | null | undefined;
2611
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
2612
+ static ngAcceptInputType_isSearchable: boolean | string | null | undefined;
2613
+ static ngAcceptInputType_visibleItems: number | NumericString | null | undefined;
768
2614
  }
769
2615
  declare interface AegovSelect extends Components.AegovSelect {
770
2616
  /**
@@ -787,15 +2633,28 @@ declare interface AegovSelect extends Components.AegovSelect {
787
2633
  declare class AegovSelectOption {
788
2634
  protected z: NgZone;
789
2635
  protected el: HTMLAegovSelectOptionElement;
2636
+ /**
2637
+ * The value of this option. @default ''
2638
+ */
2639
+ set value(_: Components.AegovSelectOption['value']);
2640
+ /**
2641
+ * Whether this option is disabled. @default false
2642
+ */
2643
+ set isDisabled(_: Components.AegovSelectOption['isDisabled']);
790
2644
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
791
2645
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovSelectOption, never>;
792
2646
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovSelectOption, "aegov-select-option", never, { "isDisabled": { "alias": "isDisabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, ["*"], true, never>;
2647
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
793
2648
  }
794
2649
  declare interface AegovSelectOption extends Components.AegovSelectOption {
795
2650
  }
796
2651
  declare class AegovSelectOptionGroup {
797
2652
  protected z: NgZone;
798
2653
  protected el: HTMLAegovSelectOptionGroupElement;
2654
+ /**
2655
+ * The label for this option group. @default ''
2656
+ */
2657
+ set label(_: Components.AegovSelectOptionGroup['label']);
799
2658
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
800
2659
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovSelectOptionGroup, never>;
801
2660
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovSelectOptionGroup, "aegov-select-option-group", never, { "label": { "alias": "label"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -805,19 +2664,81 @@ declare interface AegovSelectOptionGroup extends Components.AegovSelectOptionGro
805
2664
  declare class AegovSeparator {
806
2665
  protected z: NgZone;
807
2666
  protected el: HTMLAegovSeparatorElement;
2667
+ /**
2668
+ * Orientation of the separator @default 'horizontal'
2669
+ */
2670
+ set orientation(_: Components.AegovSeparator['orientation']);
2671
+ /**
2672
+ * Appearance: 'solid' (full-strength line) or 'light' (subtle low-contrast line). Colour resolves from `variant`. @default 'solid'
2673
+ */
2674
+ set appearance(_: Components.AegovSeparator['appearance']);
2675
+ /**
2676
+ * Variant: colour family applied to line + text label. 'primary' (default), 'secondary', 'neutral-max' (aeblack-800 family), or 'neutral-min' (aeblack-100 family). @default 'primary'
2677
+ */
2678
+ set variant(_: Components.AegovSeparator['variant']);
2679
+ /**
2680
+ * Optional text label displayed at the center of the separator
2681
+ */
2682
+ set text(_: Components.AegovSeparator['text']);
2683
+ /**
2684
+ * Numeric spacing applied on either side of the separator line, in Tailwind
2685
+ spacing units (1 unit = 0.25rem = 4px). Horizontal orientation → padding
2686
+ is applied on the block axis (top + bottom); vertical → inline axis
2687
+ (start + end). Accepts any non-negative number. `0` (default) keeps no
2688
+ padding.
2689
+
2690
+ Example: `gap="4"` produces `1rem` (16px) padding-block on a horizontal
2691
+ separator. @default 0
2692
+ */
2693
+ set gap(_: Components.AegovSeparator['gap']);
2694
+ /**
2695
+ * Whether the separator is purely decorative (no semantic meaning) @default true
2696
+ */
2697
+ set isDecorative(_: Components.AegovSeparator['isDecorative']);
2698
+ /**
2699
+ * Additional CSS classes merged onto the inner separator element.
2700
+ */
2701
+ set extraClass(_: Components.AegovSeparator['extraClass']);
808
2702
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
809
2703
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovSeparator, never>;
810
2704
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovSeparator, "aegov-separator", never, { "appearance": { "alias": "appearance"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "isDecorative": { "alias": "isDecorative"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "text": { "alias": "text"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
2705
+ static ngAcceptInputType_gap: number | NumericString | null | undefined;
2706
+ static ngAcceptInputType_isDecorative: boolean | string | null | undefined;
811
2707
  }
812
2708
  declare interface AegovSeparator extends Components.AegovSeparator {
813
2709
  }
814
2710
  declare class AegovTab {
815
2711
  protected z: NgZone;
816
2712
  protected el: HTMLAegovTabElement;
2713
+ /**
2714
+ * Unique identifier that must match the corresponding aegov-tab-panel's tab-id.
2715
+ */
2716
+ set tabId(_: Components.AegovTab['tabId']);
2717
+ /**
2718
+ * Disables this tab and its associated panel. @default false
2719
+ */
2720
+ set isDisabled(_: Components.AegovTab['isDisabled']);
2721
+ /**
2722
+ * The currently active tab id. Set automatically by the parent aegov-tabs. @default ''
2723
+ */
2724
+ set activeTabId(_: Components.AegovTab['activeTabId']);
2725
+ /**
2726
+ * Visual variant of the tabs. Set automatically by the parent aegov-tabs. @default 'simple'
2727
+ */
2728
+ set variant(_: Components.AegovTab['variant']);
2729
+ /**
2730
+ * Size of the tab. Set automatically by the parent aegov-tabs. @default 'base'
2731
+ */
2732
+ set size(_: Components.AegovTab['size']);
2733
+ /**
2734
+ * Orientation of the tabs. Set automatically by the parent aegov-tabs. @default 'horizontal'
2735
+ */
2736
+ set orientation(_: Components.AegovTab['orientation']);
817
2737
  aegovTabSelect: EventEmitter<AegovTabCustomEvent<string>>;
818
2738
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
819
2739
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovTab, never>;
820
2740
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovTab, "aegov-tab", never, { "activeTabId": { "alias": "activeTabId"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "size": { "alias": "size"; "required": false; }; "tabId": { "alias": "tabId"; "required": true; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovTabSelect": "aegovTabSelect"; }, never, ["*"], true, never>;
2741
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
821
2742
  }
822
2743
  declare interface AegovTab extends Components.AegovTab {
823
2744
  /**
@@ -828,19 +2749,76 @@ declare interface AegovTab extends Components.AegovTab {
828
2749
  declare class AegovTabPanel {
829
2750
  protected z: NgZone;
830
2751
  protected el: HTMLAegovTabPanelElement;
2752
+ /**
2753
+ * Unique identifier that must match the corresponding aegov-tab's tab-id.
2754
+ */
2755
+ set tabId(_: Components.AegovTabPanel['tabId']);
2756
+ /**
2757
+ * Whether this panel is currently active. Set automatically by the parent aegov-tabs. @default false
2758
+ */
2759
+ set active(_: Components.AegovTabPanel['active']);
2760
+ /**
2761
+ * Additional CSS classes merged onto the inner panel element.
2762
+ */
2763
+ set extraClass(_: Components.AegovTabPanel['extraClass']);
831
2764
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
832
2765
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovTabPanel, never>;
833
2766
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovTabPanel, "aegov-tab-panel", never, { "active": { "alias": "active"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "tabId": { "alias": "tabId"; "required": true; }; }, {}, never, ["*"], true, never>;
2767
+ static ngAcceptInputType_active: boolean | string | null | undefined;
834
2768
  }
835
2769
  declare interface AegovTabPanel extends Components.AegovTabPanel {
836
2770
  }
837
2771
  declare class AegovTabs {
838
2772
  protected z: NgZone;
839
2773
  protected el: HTMLAegovTabsElement;
2774
+ /**
2775
+ * Unique ID for the tabs container. Auto-generated if not provided.
2776
+ */
2777
+ set fieldId(_: Components.AegovTabs['fieldId']);
2778
+ /**
2779
+ * Visual style variant of the tabs.
2780
+ - `simple`: Underline style (default)
2781
+ - `segmented`: Button-group style, ideal for toggling views
2782
+ - `pill`: Pill-shaped individual tabs @default 'simple'
2783
+ */
2784
+ set variant(_: Components.AegovTabs['variant']);
2785
+ /**
2786
+ * The tab-id of the tab that should be active on initial render.
2787
+ If not provided, the first non-disabled tab is activated. @default ''
2788
+ */
2789
+ set defaultOpen(_: Components.AegovTabs['defaultOpen']);
2790
+ /**
2791
+ * Size of the tabs. @default 'base'
2792
+ */
2793
+ set size(_: Components.AegovTabs['size']);
2794
+ /**
2795
+ * Enables horizontal scrolling when tabs overflow the container.
2796
+ A faded gradient edge is shown to indicate scrollable content. @default false
2797
+ */
2798
+ set isScrollable(_: Components.AegovTabs['isScrollable']);
2799
+ /**
2800
+ * Distributes tabs evenly to fill the full width of the container.
2801
+ Each tab grows equally to occupy available space. @default false
2802
+ */
2803
+ set isStretchable(_: Components.AegovTabs['isStretchable']);
2804
+ /**
2805
+ * Layout orientation of the tabs.
2806
+ - `horizontal`: Tabs appear above the panels (default)
2807
+ - `vertical`: Tabs appear to the side of the panels @default 'horizontal'
2808
+ */
2809
+ set orientation(_: Components.AegovTabs['orientation']);
2810
+ /**
2811
+ * Accessible label for the tablist element.
2812
+ Provides context for screen readers about what the tabs control.
2813
+ Defaults to a bilingual auto-detected string ("Tabs" / "علامات التبويب"). @default ''
2814
+ */
2815
+ set labelTablist(_: Components.AegovTabs['labelTablist']);
840
2816
  aegovTabChange: EventEmitter<AegovTabsCustomEvent<string>>;
841
2817
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
842
2818
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovTabs, never>;
843
2819
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovTabs, "aegov-tabs", never, { "defaultOpen": { "alias": "defaultOpen"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "isScrollable": { "alias": "isScrollable"; "required": false; }; "isStretchable": { "alias": "isStretchable"; "required": false; }; "labelTablist": { "alias": "labelTablist"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovTabChange": "aegovTabChange"; }, never, ["*"], true, never>;
2820
+ static ngAcceptInputType_isScrollable: boolean | string | null | undefined;
2821
+ static ngAcceptInputType_isStretchable: boolean | string | null | undefined;
844
2822
  }
845
2823
  declare interface AegovTabs extends Components.AegovTabs {
846
2824
  /**
@@ -852,6 +2830,14 @@ declare interface AegovTabs extends Components.AegovTabs {
852
2830
  declare class AegovText {
853
2831
  protected z: NgZone;
854
2832
  protected el: HTMLAegovTextElement;
2833
+ /**
2834
+ * The size of the text. @default 'base'
2835
+ */
2836
+ set size(_: Components.AegovText['size']);
2837
+ /**
2838
+ * Additional CSS classes to apply to the text.
2839
+ */
2840
+ set extraClass(_: Components.AegovText['extraClass']);
855
2841
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
856
2842
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovText, never>;
857
2843
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovText, "aegov-text", never, { "extraClass": { "alias": "extraClass"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -861,6 +2847,75 @@ declare interface AegovText extends Components.AegovText {
861
2847
  declare class AegovTextarea {
862
2848
  protected z: NgZone;
863
2849
  protected el: HTMLAegovTextareaElement;
2850
+ /**
2851
+ * Unique ID for the native textarea element. Auto-generated if not provided.
2852
+ */
2853
+ set fieldId(_: Components.AegovTextarea['fieldId']);
2854
+ /**
2855
+ * The size of the textarea (affects font size only). @default 'base'
2856
+ */
2857
+ set size(_: Components.AegovTextarea['size']);
2858
+ /**
2859
+ * Colour family. Drives idle ring, value text, and accent hover.
2860
+ */
2861
+ set variant(_: Components.AegovTextarea['variant']);
2862
+ /**
2863
+ * Whether the textarea is disabled. @default false
2864
+ */
2865
+ set isDisabled(_: Components.AegovTextarea['isDisabled']);
2866
+ /**
2867
+ * Whether the textarea is readonly. @default false
2868
+ */
2869
+ set isReadonly(_: Components.AegovTextarea['isReadonly']);
2870
+ /**
2871
+ * Placeholder text for the textarea.
2872
+ */
2873
+ set placeholder(_: Components.AegovTextarea['placeholder']);
2874
+ /**
2875
+ * The current value of the textarea. @default ''
2876
+ */
2877
+ set value(_: Components.AegovTextarea['value']);
2878
+ /**
2879
+ * The name attribute for the textarea. Reflected so ElementInternals can read it for form submission.
2880
+ */
2881
+ set name(_: Components.AegovTextarea['name']);
2882
+ /**
2883
+ * Whether the textarea is required. @default false
2884
+ */
2885
+ set isRequired(_: Components.AegovTextarea['isRequired']);
2886
+ /**
2887
+ * Resize behaviour of the textarea. @default 'vertical'
2888
+ */
2889
+ set resize(_: Components.AegovTextarea['resize']);
2890
+ /**
2891
+ * Maximum number of characters. When set, a character counter is displayed.
2892
+ */
2893
+ set maxlength(_: Components.AegovTextarea['maxlength']);
2894
+ /**
2895
+ * Show a copy button to copy the textarea value to clipboard. Only applies when readonly. @default false
2896
+ */
2897
+ set isCopyable(_: Components.AegovTextarea['isCopyable']);
2898
+ /**
2899
+ * Visual + a11y invalid state. Toggles `aria-invalid` and `.is-invalid` host class. See validation-engine-addon.md §2.3. @default false
2900
+ */
2901
+ set isInvalid(_: Components.AegovTextarea['isInvalid']);
2902
+ /**
2903
+ * Inline error message rendered below the control when `isInvalid` is true. Use `error` slot for richer markup. @default ''
2904
+ */
2905
+ set errorMessage(_: Components.AegovTextarea['errorMessage']);
2906
+ /**
2907
+ * Helper hint rendered below the control. Hidden when an error is shown. Use `hint` slot for richer markup. @default ''
2908
+ */
2909
+ set hint(_: Components.AegovTextarea['hint']);
2910
+ /**
2911
+ * Additional CSS classes to apply.
2912
+
2913
+ This component renders in a real shadow root, which normally blocks the page's CSS
2914
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
2915
+ in from the page's own stylesheets at runtime and work as expected; other utilities
2916
+ (colour, border, typography, etc.) still have no effect — see #35.
2917
+ */
2918
+ set extraClass(_: Components.AegovTextarea['extraClass']);
864
2919
  aegovTextareaChange: EventEmitter<AegovTextareaCustomEvent<{
865
2920
  value: string;
866
2921
  event: globalThis.Event;
@@ -875,6 +2930,12 @@ declare class AegovTextarea {
875
2930
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
876
2931
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovTextarea, never>;
877
2932
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovTextarea, "aegov-textarea", never, { "errorMessage": { "alias": "errorMessage"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isCopyable": { "alias": "isCopyable"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isReadonly": { "alias": "isReadonly"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "name": { "alias": "name"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "resize": { "alias": "resize"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovTextareaChange": "aegovTextareaChange"; "aegovTextareaValue": "aegovTextareaValue"; "aegovTextareaFocus": "aegovTextareaFocus"; "aegovTextareaBlur": "aegovTextareaBlur"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
2933
+ static ngAcceptInputType_isCopyable: boolean | string | null | undefined;
2934
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
2935
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
2936
+ static ngAcceptInputType_isReadonly: boolean | string | null | undefined;
2937
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
2938
+ static ngAcceptInputType_maxlength: number | NumericString | null | undefined;
878
2939
  }
879
2940
  declare interface AegovTextarea extends Components.AegovTextarea {
880
2941
  /**
@@ -907,6 +2968,22 @@ declare interface AegovTextarea extends Components.AegovTextarea {
907
2968
  declare class AegovTimeline {
908
2969
  protected z: NgZone;
909
2970
  protected el: HTMLAegovTimelineElement;
2971
+ /**
2972
+ * Unique ID for the timeline nav element. Auto-generated if not provided.
2973
+ */
2974
+ set fieldId(_: Components.AegovTimeline['fieldId']);
2975
+ /**
2976
+ * Visual variant: default (numbered circles) or compact (dots). @default 'default'
2977
+ */
2978
+ set variant(_: Components.AegovTimeline['variant']);
2979
+ /**
2980
+ * Size of step indicators. @default 'base'
2981
+ */
2982
+ set size(_: Components.AegovTimeline['size']);
2983
+ /**
2984
+ * Layout orientation. @default 'horizontal'
2985
+ */
2986
+ set orientation(_: Components.AegovTimeline['orientation']);
910
2987
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
911
2988
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovTimeline, never>;
912
2989
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovTimeline, "aegov-timeline", never, { "fieldId": { "alias": "fieldId"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -916,6 +2993,14 @@ declare interface AegovTimeline extends Components.AegovTimeline {
916
2993
  declare class AegovTimelineStep {
917
2994
  protected z: NgZone;
918
2995
  protected el: HTMLAegovTimelineStepElement;
2996
+ /**
2997
+ * Step status. @default 'pending'
2998
+ */
2999
+ set status(_: Components.AegovTimelineStep['status']);
3000
+ /**
3001
+ * Optional description shown below the label.
3002
+ */
3003
+ set description(_: Components.AegovTimelineStep['description']);
919
3004
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
920
3005
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovTimelineStep, never>;
921
3006
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovTimelineStep, "aegov-timeline-step", never, { "description": { "alias": "description"; "required": false; }; "status": { "alias": "status"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -925,6 +3010,24 @@ declare interface AegovTimelineStep extends Components.AegovTimelineStep {
925
3010
  declare class AegovTitle {
926
3011
  protected z: NgZone;
927
3012
  protected el: HTMLAegovTitleElement;
3013
+ /**
3014
+ * Unique ID for the title element. Auto-generated if not provided.
3015
+ */
3016
+ set fieldId(_: Components.AegovTitle['fieldId']);
3017
+ /**
3018
+ * The size of the title text. @default 'base'
3019
+ */
3020
+ set size(_: Components.AegovTitle['size']);
3021
+ /**
3022
+ * The semantic wrapper tag for the title. When set, renders the title
3023
+ inside the specified heading tag (`h2`–`h6`) or a `p`. When omitted,
3024
+ the title renders as a `<p>` (default).
3025
+ */
3026
+ set headingType(_: Components.AegovTitle['headingType']);
3027
+ /**
3028
+ * Additional CSS classes to apply to the title.
3029
+ */
3030
+ set extraClass(_: Components.AegovTitle['extraClass']);
928
3031
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
929
3032
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovTitle, never>;
930
3033
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovTitle, "aegov-title", never, { "extraClass": { "alias": "extraClass"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "headingType": { "alias": "headingType"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -934,12 +3037,45 @@ declare interface AegovTitle extends Components.AegovTitle {
934
3037
  declare class AegovToast {
935
3038
  protected z: NgZone;
936
3039
  protected el: HTMLAegovToastElement;
3040
+ /**
3041
+ * Semantic color variant of the toast. @default 'default'
3042
+ */
3043
+ set variant(_: Components.AegovToast['variant']);
3044
+ /**
3045
+ * Appearance style: soft (light bg) or solid (dark bg). @default 'soft'
3046
+ */
3047
+ set appearance(_: Components.AegovToast['appearance']);
3048
+ /**
3049
+ * Screen position where the toast appears. @default 'top-right'
3050
+ */
3051
+ set position(_: Components.AegovToast['position']);
3052
+ /**
3053
+ * Auto-dismiss duration in milliseconds. 0 = no auto-dismiss. @default 5000
3054
+ */
3055
+ set duration(_: Components.AegovToast['duration']);
3056
+ /**
3057
+ * Whether the toast shows a close button. @default true
3058
+ */
3059
+ set isDismissible(_: Components.AegovToast['isDismissible']);
3060
+ /**
3061
+ * Display mode for multiple toasts at the same position.
3062
+ 'stack' = all toasts visible with gap between them (default).
3063
+ 'rack' = toasts collapse into a deck; hover to expand. @default 'stack'
3064
+ */
3065
+ set mode(_: Components.AegovToast['mode']);
3066
+ /**
3067
+ * Whether to show a countdown progress bar. @default false
3068
+ */
3069
+ set isProgressEnabled(_: Components.AegovToast['isProgressEnabled']);
937
3070
  aegovToastOpen: EventEmitter<AegovToastCustomEvent<void>>;
938
3071
  aegovToastClose: EventEmitter<AegovToastCustomEvent<void>>;
939
3072
  aegovToastDismiss: EventEmitter<AegovToastCustomEvent<void>>;
940
3073
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
941
3074
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovToast, never>;
942
3075
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovToast, "aegov-toast", never, { "appearance": { "alias": "appearance"; "required": false; }; "duration": { "alias": "duration"; "required": false; }; "isDismissible": { "alias": "isDismissible"; "required": false; }; "isProgressEnabled": { "alias": "isProgressEnabled"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "position": { "alias": "position"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovToastOpen": "aegovToastOpen"; "aegovToastClose": "aegovToastClose"; "aegovToastDismiss": "aegovToastDismiss"; }, never, ["*"], true, never>;
3076
+ static ngAcceptInputType_duration: number | NumericString | null | undefined;
3077
+ static ngAcceptInputType_isDismissible: boolean | string | null | undefined;
3078
+ static ngAcceptInputType_isProgressEnabled: boolean | string | null | undefined;
943
3079
  }
944
3080
  declare interface AegovToast extends Components.AegovToast {
945
3081
  /**
@@ -958,6 +3094,55 @@ declare interface AegovToast extends Components.AegovToast {
958
3094
  declare class AegovToggle {
959
3095
  protected z: NgZone;
960
3096
  protected el: HTMLAegovToggleElement;
3097
+ /**
3098
+ * Unique ID for the native checkbox element. Auto-generated if not provided.
3099
+ */
3100
+ set fieldId(_: Components.AegovToggle['fieldId']);
3101
+ /**
3102
+ * The name attribute for the toggle. Reflected so ElementInternals can read it for form submission.
3103
+ */
3104
+ set name(_: Components.AegovToggle['name']);
3105
+ /**
3106
+ * The value attribute for the toggle.
3107
+ */
3108
+ set value(_: Components.AegovToggle['value']);
3109
+ /**
3110
+ * Whether the toggle is checked/on. @default false
3111
+ */
3112
+ set isChecked(_: Components.AegovToggle['isChecked']);
3113
+ /**
3114
+ * The size of the toggle. @default 'base'
3115
+ */
3116
+ set size(_: Components.AegovToggle['size']);
3117
+ /**
3118
+ * Colour family. Drives ON track bg. OFF track stays aeblack-200. Focus ring stays camel; error stays aered.
3119
+ */
3120
+ set variant(_: Components.AegovToggle['variant']);
3121
+ /**
3122
+ * Whether the toggle is disabled. @default false
3123
+ */
3124
+ set isDisabled(_: Components.AegovToggle['isDisabled']);
3125
+ /**
3126
+ * Whether the toggle is required. @default false
3127
+ */
3128
+ set isRequired(_: Components.AegovToggle['isRequired']);
3129
+ /**
3130
+ * Label text for the toggle. Rendered at the end (inline-end).
3131
+ */
3132
+ set label(_: Components.AegovToggle['label']);
3133
+ /**
3134
+ * Helper hint text displayed below the label. Renamed from `description` per §6.6.
3135
+ Hidden when an error is shown.
3136
+ */
3137
+ set hint(_: Components.AegovToggle['hint']);
3138
+ /**
3139
+ * Visual + a11y invalid state. See §2.3. @default false
3140
+ */
3141
+ set isInvalid(_: Components.AegovToggle['isInvalid']);
3142
+ /**
3143
+ * Inline error message. Use `error` slot for rich markup. @default ''
3144
+ */
3145
+ set errorMessage(_: Components.AegovToggle['errorMessage']);
961
3146
  aegovToggleChange: EventEmitter<AegovToggleCustomEvent<{
962
3147
  checked: boolean;
963
3148
  value?: string;
@@ -966,6 +3151,10 @@ declare class AegovToggle {
966
3151
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
967
3152
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovToggle, never>;
968
3153
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovToggle, "aegov-toggle", never, { "errorMessage": { "alias": "errorMessage"; "required": false; }; "fieldId": { "alias": "fieldId"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "isChecked": { "alias": "isChecked"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "aegovToggleChange": "aegovToggleChange"; "aegovValidate": "aegovValidate"; }, never, ["*"], true, never>;
3154
+ static ngAcceptInputType_isChecked: boolean | string | null | undefined;
3155
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
3156
+ static ngAcceptInputType_isInvalid: boolean | string | null | undefined;
3157
+ static ngAcceptInputType_isRequired: boolean | string | null | undefined;
969
3158
  }
970
3159
  declare interface AegovToggle extends Components.AegovToggle {
971
3160
  /**
@@ -983,20 +3172,69 @@ declare interface AegovToggle extends Components.AegovToggle {
983
3172
  declare class AegovTooltip {
984
3173
  protected z: NgZone;
985
3174
  protected el: HTMLAegovTooltipElement;
3175
+ /**
3176
+ * Tooltip content text (alternative to using slot)
3177
+ */
3178
+ set content(_: Components.AegovTooltip['content']);
3179
+ /**
3180
+ * Position of the tooltip relative to the trigger element @default 'top'
3181
+ */
3182
+ set position(_: Components.AegovTooltip['position']);
3183
+ /**
3184
+ * Alignment of the tooltip @default 'center'
3185
+ */
3186
+ set align(_: Components.AegovTooltip['align']);
3187
+ /**
3188
+ * Trigger type for showing the tooltip @default 'hover'
3189
+ */
3190
+ set trigger(_: Components.AegovTooltip['trigger']);
3191
+ /**
3192
+ * Gap between tooltip and trigger element (in pixels) @default 8
3193
+ */
3194
+ set gap(_: Components.AegovTooltip['gap']);
3195
+ /**
3196
+ * Additional offset for tooltip positioning (in pixels) @default 0
3197
+ */
3198
+ set offset(_: Components.AegovTooltip['offset']);
3199
+ /**
3200
+ * Whether the tooltip is disabled @default false
3201
+ */
3202
+ set isDisabled(_: Components.AegovTooltip['isDisabled']);
3203
+ /**
3204
+ * Delay before showing tooltip (in milliseconds) @default 200
3205
+ */
3206
+ set delayStart(_: Components.AegovTooltip['delayStart']);
3207
+ /**
3208
+ * Delay before hiding tooltip (in milliseconds) @default 0
3209
+ */
3210
+ set delayEnd(_: Components.AegovTooltip['delayEnd']);
986
3211
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
987
3212
  static ɵfac: i0.ɵɵFactoryDeclaration<AegovTooltip, never>;
988
3213
  static ɵcmp: i0.ɵɵComponentDeclaration<AegovTooltip, "aegov-tooltip", never, { "align": { "alias": "align"; "required": false; }; "content": { "alias": "content"; "required": false; }; "delayEnd": { "alias": "delayEnd"; "required": false; }; "delayStart": { "alias": "delayStart"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "position": { "alias": "position"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; }, {}, never, ["*"], true, never>;
3214
+ static ngAcceptInputType_delayEnd: number | NumericString | null | undefined;
3215
+ static ngAcceptInputType_delayStart: number | NumericString | null | undefined;
3216
+ static ngAcceptInputType_gap: number | NumericString | null | undefined;
3217
+ static ngAcceptInputType_isDisabled: boolean | string | null | undefined;
3218
+ static ngAcceptInputType_offset: number | NumericString | null | undefined;
989
3219
  }
990
3220
  declare interface AegovTooltip extends Components.AegovTooltip {
991
3221
  }
992
3222
 
993
3223
  declare const DIRECTIVES: (typeof AegovAccordion | typeof AegovAccordionItem | typeof AegovAspectRatio | typeof AegovAvatar | typeof AegovAvatarGroup | typeof AegovBadge | typeof AegovBanner | typeof AegovBentoGrid | typeof AegovBlockquote | typeof AegovBreadcrumbs | typeof AegovBreadcrumbsItem | typeof AegovButton | typeof AegovButtonGroup | typeof AegovCallout | typeof AegovCard | typeof AegovCheckbox | typeof AegovCheckboxGroup | typeof AegovDatepicker | typeof AegovDrawer | typeof AegovDropdown | typeof AegovFileupload | typeof AegovFooter | typeof AegovFooterHighlights | typeof AegovFormField | typeof AegovHeader | typeof AegovHeaderBanner | typeof AegovInput | typeof AegovInputGroup | typeof AegovLabel | typeof AegovLink | typeof AegovModal | typeof AegovNavbar | typeof AegovNavbarItem | typeof AegovNavblock | typeof AegovNavblockItem | typeof AegovOtp | typeof AegovPagination | typeof AegovPopover | typeof AegovProgress | typeof AegovRadio | typeof AegovRadioGroup | typeof AegovRange | typeof AegovSelect | typeof AegovSelectOption | typeof AegovSelectOptionGroup | typeof AegovSeparator | typeof AegovTab | typeof AegovTabPanel | typeof AegovTabs | typeof AegovText | typeof AegovTextarea | typeof AegovTimeline | typeof AegovTimelineStep | typeof AegovTitle | typeof AegovToast | typeof AegovToggle | typeof AegovTooltip)[];
994
3224
 
3225
+ /**
3226
+ * Re-exports every wrapper. Has no providers, so importing it into a standalone
3227
+ * component adds no code beyond the wrappers. Each wrapper registers its own element.
3228
+ *
3229
+ * Apps that want the global setup add `provideDesignSystem()` from
3230
+ * `@aegov/designsystem-angular/provider` to their providers. This entry point never
3231
+ * references it: a bundler emits the lazy loader's ~70 chunk files for any module it
3232
+ * includes that imports the loader, even when the app never calls the function.
3233
+ */
995
3234
  declare class DesignSystemModule {
996
3235
  static ɵfac: i0.ɵɵFactoryDeclaration<DesignSystemModule, never>;
997
3236
  static ɵmod: i0.ɵɵNgModuleDeclaration<DesignSystemModule, never, [typeof AegovAccordion, typeof AegovAccordionItem, typeof AegovAspectRatio, typeof AegovAvatar, typeof AegovAvatarGroup, typeof AegovBadge, typeof AegovBanner, typeof AegovBentoGrid, typeof AegovBlockquote, typeof AegovBreadcrumbs, typeof AegovBreadcrumbsItem, typeof AegovButton, typeof AegovButtonGroup, typeof AegovCallout, typeof AegovCard, typeof AegovCheckbox, typeof AegovCheckboxGroup, typeof AegovDatepicker, typeof AegovDrawer, typeof AegovDropdown, typeof AegovFileupload, typeof AegovFooter, typeof AegovFooterHighlights, typeof AegovFormField, typeof AegovHeader, typeof AegovHeaderBanner, typeof AegovInput, typeof AegovInputGroup, typeof AegovLabel, typeof AegovLink, typeof AegovModal, typeof AegovNavbar, typeof AegovNavbarItem, typeof AegovNavblock, typeof AegovNavblockItem, typeof AegovOtp, typeof AegovPagination, typeof AegovPopover, typeof AegovProgress, typeof AegovRadio, typeof AegovRadioGroup, typeof AegovRange, typeof AegovSelect, typeof AegovSelectOption, typeof AegovSelectOptionGroup, typeof AegovSeparator, typeof AegovTab, typeof AegovTabPanel, typeof AegovTabs, typeof AegovText, typeof AegovTextarea, typeof AegovTimeline, typeof AegovTimelineStep, typeof AegovTitle, typeof AegovToast, typeof AegovToggle, typeof AegovTooltip], [typeof AegovAccordion, typeof AegovAccordionItem, typeof AegovAspectRatio, typeof AegovAvatar, typeof AegovAvatarGroup, typeof AegovBadge, typeof AegovBanner, typeof AegovBentoGrid, typeof AegovBlockquote, typeof AegovBreadcrumbs, typeof AegovBreadcrumbsItem, typeof AegovButton, typeof AegovButtonGroup, typeof AegovCallout, typeof AegovCard, typeof AegovCheckbox, typeof AegovCheckboxGroup, typeof AegovDatepicker, typeof AegovDrawer, typeof AegovDropdown, typeof AegovFileupload, typeof AegovFooter, typeof AegovFooterHighlights, typeof AegovFormField, typeof AegovHeader, typeof AegovHeaderBanner, typeof AegovInput, typeof AegovInputGroup, typeof AegovLabel, typeof AegovLink, typeof AegovModal, typeof AegovNavbar, typeof AegovNavbarItem, typeof AegovNavblock, typeof AegovNavblockItem, typeof AegovOtp, typeof AegovPagination, typeof AegovPopover, typeof AegovProgress, typeof AegovRadio, typeof AegovRadioGroup, typeof AegovRange, typeof AegovSelect, typeof AegovSelectOption, typeof AegovSelectOptionGroup, typeof AegovSeparator, typeof AegovTab, typeof AegovTabPanel, typeof AegovTabs, typeof AegovText, typeof AegovTextarea, typeof AegovTimeline, typeof AegovTimelineStep, typeof AegovTitle, typeof AegovToast, typeof AegovToggle, typeof AegovTooltip]>;
998
3237
  static ɵinj: i0.ɵɵInjectorDeclaration<DesignSystemModule>;
999
3238
  }
1000
- declare function provideDesignSystem(): EnvironmentProviders;
1001
3239
 
1002
- export { AegovAccordion, AegovAccordionItem, AegovAspectRatio, AegovAvatar, AegovAvatarGroup, AegovBadge, AegovBanner, AegovBentoGrid, AegovBlockquote, AegovBreadcrumbs, AegovBreadcrumbsItem, AegovButton, AegovButtonGroup, AegovCallout, AegovCard, AegovCheckbox, AegovCheckboxGroup, AegovDatepicker, AegovDrawer, AegovDropdown, AegovFileupload, AegovFooter, AegovFooterHighlights, AegovFormField, AegovHeader, AegovHeaderBanner, AegovInput, AegovInputGroup, AegovLabel, AegovLink, AegovModal, AegovNavbar, AegovNavbarItem, AegovNavblock, AegovNavblockItem, AegovOtp, AegovPagination, AegovPopover, AegovProgress, AegovRadio, AegovRadioGroup, AegovRange, AegovSelect, AegovSelectOption, AegovSelectOptionGroup, AegovSeparator, AegovTab, AegovTabPanel, AegovTabs, AegovText, AegovTextarea, AegovTimeline, AegovTimelineStep, AegovTitle, AegovToast, AegovToggle, AegovTooltip, DIRECTIVES, DesignSystemModule, provideDesignSystem };
3240
+ export { AegovAccordion, AegovAccordionItem, AegovAspectRatio, AegovAvatar, AegovAvatarGroup, AegovBadge, AegovBanner, AegovBentoGrid, AegovBlockquote, AegovBreadcrumbs, AegovBreadcrumbsItem, AegovButton, AegovButtonGroup, AegovCallout, AegovCard, AegovCheckbox, AegovCheckboxGroup, AegovDatepicker, AegovDrawer, AegovDropdown, AegovFileupload, AegovFooter, AegovFooterHighlights, AegovFormField, AegovHeader, AegovHeaderBanner, AegovInput, AegovInputGroup, AegovLabel, AegovLink, AegovModal, AegovNavbar, AegovNavbarItem, AegovNavblock, AegovNavblockItem, AegovOtp, AegovPagination, AegovPopover, AegovProgress, AegovRadio, AegovRadioGroup, AegovRange, AegovSelect, AegovSelectOption, AegovSelectOptionGroup, AegovSeparator, AegovTab, AegovTabPanel, AegovTabs, AegovText, AegovTextarea, AegovTimeline, AegovTimelineStep, AegovTitle, AegovToast, AegovToggle, AegovTooltip, DIRECTIVES, DesignSystemModule };