@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,6 +1,6 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { ChangeDetectionStrategy, Component, EventEmitter, Output, APP_INITIALIZER, NgModule, makeEnvironmentProviders } from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component, EventEmitter, Output, NgModule } from '@angular/core';
4
4
  import { fromEvent } from 'rxjs';
5
5
  import { defineCustomElement as defineCustomElement$1 } from '@aegov/designsystem/components/aegov-accordion.js';
6
6
  import { defineCustomElement as defineCustomElement$2 } from '@aegov/designsystem/components/aegov-accordion-item.js';
@@ -59,7 +59,6 @@ import { defineCustomElement as defineCustomElement$S } from '@aegov/designsyste
59
59
  import { defineCustomElement as defineCustomElement$T } from '@aegov/designsystem/components/aegov-toast.js';
60
60
  import { defineCustomElement as defineCustomElement$U } from '@aegov/designsystem/components/aegov-toggle.js';
61
61
  import { defineCustomElement as defineCustomElement$V } from '@aegov/designsystem/components/aegov-tooltip.js';
62
- import { defineCustomElements } from '@aegov/designsystem/loader';
63
62
 
64
63
  /* eslint-disable */
65
64
  /* tslint:disable */
@@ -119,16 +118,121 @@ function ProxyCmp(opts) {
119
118
  return decorator;
120
119
  }
121
120
 
121
+ /**
122
+ * Input transform for number properties, so a static attribute such as `pages="5"`
123
+ * type-checks while `[pages]="'five'"` and `pages="five"` are compile errors.
124
+ *
125
+ * The number counterpart of the output target's `nullableBooleanAttribute`:
126
+ * - the parameter type is what Angular derives `ngAcceptInputType_*` from, and
127
+ * `` `${number}` `` accepts only numeric string literals;
128
+ * - `null` and `undefined` pass through (the `async` pipe and form values produce them);
129
+ * - strings are parsed with `parseFloat`, as Stencil parses number props, so the
130
+ * value the component receives is unchanged.
131
+ *
132
+ * The template literal type is behind an alias because the Angular compiler emits
133
+ * `ngAcceptInputType_*` from this parameter type and mangles an inline template
134
+ * literal type in the published declarations (it came out as `mElenumbers`).
135
+ *
136
+ * Declared as a function so Angular can resolve it statically in partial compilation.
137
+ * Wired up by `angularNumberAttributes()` in `packages/designsystem/stencil.config.ts`.
138
+ */
139
+ function nullableNumberAttribute(value) {
140
+ if (value === null || value === undefined) {
141
+ return value;
142
+ }
143
+ return typeof value === 'number' ? value : parseFloat(value);
144
+ }
145
+
146
+ /* eslint-disable */
147
+ /* tslint:disable */
148
+ /**
149
+ * Transforms a value to a boolean so that boolean properties can be set by attribute presence,
150
+ * e.g. `<my-component disabled>` instead of `<my-component [disabled]="true">`.
151
+ *
152
+ * Strings are coerced the same way Angular's `booleanAttribute` coerces them, so `''` (a bare
153
+ * attribute) becomes `true` and `'false'` becomes `false`.
154
+ *
155
+ * Unlike Angular's `booleanAttribute`, `null` and `undefined` are passed through rather than
156
+ * coerced to `false`. Components frequently treat them as a state distinct from `false`:
157
+ *
158
+ * ```tsx
159
+ * // `undefined` means "decide based on the mode", which is not the same as `false`
160
+ * const showDetail = detail !== undefined ? detail : mode === 'ios';
161
+ *
162
+ * // a strict comparison also behaves differently for `null` than it does for `false`
163
+ * const showHandle = handle !== false;
164
+ * ```
165
+ *
166
+ * Both values reach inputs routinely in Angular templates, from the `async` pipe before its
167
+ * first emission and from form control values, so coercing them would change the behavior of
168
+ * bindings that work today.
169
+ *
170
+ * This is implemented here rather than imported from `@angular/core` so that consumers on
171
+ * Angular versions without `booleanAttribute` are unaffected by this file being generated.
172
+ *
173
+ * The parameter type is what Angular derives `ngAcceptInputType_*` from, so it decides which
174
+ * template bindings compile. Widening it to `unknown` would let any expression through.
175
+ *
176
+ * Declared as a function rather than an arrow constant because Angular has to resolve input
177
+ * transforms statically when compiling a library in partial compilation mode.
178
+ *
179
+ * This lives in its own file, separate from `utils.ts`, so that it carries no runtime imports.
180
+ * That keeps it independently type-checkable without pulling `rxjs` in for `proxyOutputs`.
181
+ */
182
+ function nullableBooleanAttribute(value) {
183
+ if (value === null || value === undefined) {
184
+ return value;
185
+ }
186
+ return typeof value === 'boolean' ? value : value !== 'false';
187
+ }
188
+
122
189
  let AegovAccordion = class AegovAccordion {
123
190
  z;
124
191
  el;
192
+ /**
193
+ * Unique ID for the accordion wrapper element. Auto-generated if not provided.
194
+ */
195
+ set fieldId(_) { }
196
+ ;
197
+ /**
198
+ * Whether multiple accordion items can be open at the same time @default false
199
+ */
200
+ set isMultiple(_) { }
201
+ ;
202
+ /**
203
+ * Index of the accordion item to open by default (0-based)
204
+ */
205
+ set defaultOpen(_) { }
206
+ ;
207
+ /**
208
+ * Icon style for accordion items @default 'chevron'
209
+ */
210
+ set icon(_) { }
211
+ ;
212
+ /**
213
+ * Whether to show border around the accordion @default false
214
+ */
215
+ set isBordered(_) { }
216
+ ;
217
+ /**
218
+ * Size of the accordion items — controls heading font size.
219
+ sm = 14px, base = 16px (default), lg = 18px @default 'base'
220
+ */
221
+ set size(_) { }
222
+ ;
223
+ /**
224
+ * Heading level for accordion item triggers (1–6).
225
+ Cascaded to all child aegov-accordion-item elements. @default 3
226
+ */
227
+ set headingLevel(_) { }
228
+ ;
125
229
  constructor(c, r, z) {
126
230
  this.z = z;
127
231
  c.detach();
128
232
  this.el = r.nativeElement;
129
233
  }
130
234
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
131
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovAccordion, isStandalone: true, selector: "aegov-accordion", inputs: { defaultOpen: "defaultOpen", fieldId: "fieldId", headingLevel: "headingLevel", icon: "icon", isBordered: "isBordered", isMultiple: "isMultiple", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
235
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovAccordion, isStandalone: true, selector: "aegov-accordion", inputs: { defaultOpen: ["defaultOpen", "defaultOpen", nullableNumberAttribute], fieldId: "fieldId", headingLevel: ["headingLevel", "headingLevel", nullableNumberAttribute], icon: "icon", isBordered: ["isBordered", "isBordered", nullableBooleanAttribute], isMultiple: ["isMultiple", "isMultiple", nullableBooleanAttribute], size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
132
236
  };
133
237
  AegovAccordion = __decorate([
134
238
  ProxyCmp({
@@ -143,12 +247,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
143
247
  changeDetection: ChangeDetectionStrategy.OnPush,
144
248
  template: '<ng-content></ng-content>',
145
249
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
146
- inputs: ['defaultOpen', 'fieldId', 'headingLevel', 'icon', 'isBordered', 'isMultiple', 'size'],
250
+ inputs: [{ name: 'defaultOpen', transform: nullableNumberAttribute }, 'fieldId', { name: 'headingLevel', transform: nullableNumberAttribute }, 'icon', { name: 'isBordered', transform: nullableBooleanAttribute }, { name: 'isMultiple', transform: nullableBooleanAttribute }, 'size'],
147
251
  }]
148
252
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
149
253
  let AegovAccordionItem = class AegovAccordionItem {
150
254
  z;
151
255
  el;
256
+ /**
257
+ * Heading text for the accordion item (alternative to using the slot)
258
+ Note: If both heading property and slot are provided, the slot takes precedence
259
+ */
260
+ set heading(_) { }
261
+ ;
262
+ /**
263
+ * Whether the accordion item is disabled @default false
264
+ */
265
+ set isDisabled(_) { }
266
+ ;
152
267
  aegovAccordionItemToggle = new EventEmitter();
153
268
  constructor(c, r, z) {
154
269
  this.z = z;
@@ -156,7 +271,7 @@ let AegovAccordionItem = class AegovAccordionItem {
156
271
  this.el = r.nativeElement;
157
272
  }
158
273
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovAccordionItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
159
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovAccordionItem, isStandalone: true, selector: "aegov-accordion-item", inputs: { heading: "heading", isDisabled: "isDisabled" }, outputs: { aegovAccordionItemToggle: "aegovAccordionItemToggle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
274
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovAccordionItem, isStandalone: true, selector: "aegov-accordion-item", inputs: { heading: "heading", isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute] }, outputs: { aegovAccordionItemToggle: "aegovAccordionItemToggle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
160
275
  };
161
276
  AegovAccordionItem = __decorate([
162
277
  ProxyCmp({
@@ -171,7 +286,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
171
286
  changeDetection: ChangeDetectionStrategy.OnPush,
172
287
  template: '<ng-content></ng-content>',
173
288
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
174
- inputs: ['heading', 'isDisabled'],
289
+ inputs: ['heading', { name: 'isDisabled', transform: nullableBooleanAttribute }],
175
290
  outputs: ['aegovAccordionItemToggle'],
176
291
  }]
177
292
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovAccordionItemToggle: [{
@@ -180,6 +295,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
180
295
  let AegovAspectRatio = class AegovAspectRatio {
181
296
  z;
182
297
  el;
298
+ /**
299
+ * The aspect ratio to apply. Accepts named presets (`'auto'`, `'square'`,
300
+ `'video'`) or any custom ratio string such as `'5/4'`, `'21/9'`,
301
+ `'2.35/1'`. Supports a Tailwind-style responsive string with breakpoint
302
+ prefixes, e.g. `"square md:video lg:21/9"`. @default 'auto'
303
+ */
304
+ set ratio(_) { }
305
+ ;
306
+ /**
307
+ * How slotted media (img, video, iframe) should fit within the aspect
308
+ ratio container. @default 'cover'
309
+ */
310
+ set fit(_) { }
311
+ ;
312
+ /**
313
+ * Additional CSS classes merged onto the inner aspect-ratio container.
314
+ */
315
+ set extraClass(_) { }
316
+ ;
183
317
  constructor(c, r, z) {
184
318
  this.z = z;
185
319
  c.detach();
@@ -207,6 +341,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
207
341
  let AegovAvatar = class AegovAvatar {
208
342
  z;
209
343
  el;
344
+ /**
345
+ * Unique ID for the inner avatar element. Auto-generated if not provided.
346
+ */
347
+ set fieldId(_) { }
348
+ ;
349
+ /**
350
+ * The avatar size @default 'base'
351
+ */
352
+ set size(_) { }
353
+ ;
354
+ /**
355
+ * The avatar appearance (shape) @default 'square'
356
+ */
357
+ set appearance(_) { }
358
+ ;
359
+ /**
360
+ * The image source URL
361
+ */
362
+ set src(_) { }
363
+ ;
364
+ /**
365
+ * Alternative text for the image (required for accessibility)
366
+ */
367
+ set alt(_) { }
368
+ ;
369
+ /**
370
+ * Status indicator. Set to a status string to show the indicator, or `false` to hide it.
371
+ Accepts: `'online'`, `'offline'`, `'away'`, `'unavailable'`, `'busy'`, or boolean (`true` maps to `'online'`). @default false
372
+ */
373
+ set status(_) { }
374
+ ;
210
375
  constructor(c, r, z) {
211
376
  this.z = z;
212
377
  c.detach();
@@ -234,6 +399,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
234
399
  let AegovAvatarGroup = class AegovAvatarGroup {
235
400
  z;
236
401
  el;
402
+ /**
403
+ * The layout variant: 'default' (spaced) or 'compact' (overlapping) @default 'default'
404
+ */
405
+ set variant(_) { }
406
+ ;
407
+ /**
408
+ * The size enforced on all child avatars @default 'base'
409
+ */
410
+ set size(_) { }
411
+ ;
412
+ /**
413
+ * Number of additional users not shown. When > 0, displays "+N" indicator. @default 0
414
+ */
415
+ set moreCount(_) { }
416
+ ;
417
+ /**
418
+ * Custom text for the "more" indicator. Defaults to "{moreCount}+"
419
+ */
420
+ set moreText(_) { }
421
+ ;
237
422
  aegovAvatarGroupMore = new EventEmitter();
238
423
  constructor(c, r, z) {
239
424
  this.z = z;
@@ -241,7 +426,7 @@ let AegovAvatarGroup = class AegovAvatarGroup {
241
426
  this.el = r.nativeElement;
242
427
  }
243
428
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovAvatarGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
244
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovAvatarGroup, isStandalone: true, selector: "aegov-avatar-group", inputs: { moreCount: "moreCount", moreText: "moreText", size: "size", variant: "variant" }, outputs: { aegovAvatarGroupMore: "aegovAvatarGroupMore" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
429
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovAvatarGroup, isStandalone: true, selector: "aegov-avatar-group", inputs: { moreCount: ["moreCount", "moreCount", nullableNumberAttribute], moreText: "moreText", size: "size", variant: "variant" }, outputs: { aegovAvatarGroupMore: "aegovAvatarGroupMore" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
245
430
  };
246
431
  AegovAvatarGroup = __decorate([
247
432
  ProxyCmp({
@@ -256,7 +441,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
256
441
  changeDetection: ChangeDetectionStrategy.OnPush,
257
442
  template: '<ng-content></ng-content>',
258
443
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
259
- inputs: ['moreCount', 'moreText', 'size', 'variant'],
444
+ inputs: [{ name: 'moreCount', transform: nullableNumberAttribute }, 'moreText', 'size', 'variant'],
260
445
  outputs: ['aegovAvatarGroupMore'],
261
446
  }]
262
447
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovAvatarGroupMore: [{
@@ -265,6 +450,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
265
450
  let AegovBadge = class AegovBadge {
266
451
  z;
267
452
  el;
453
+ /**
454
+ * Unique ID for the badge element. Auto-generated if not provided.
455
+ */
456
+ set fieldId(_) { }
457
+ ;
458
+ /**
459
+ * The appearance style of the badge. @default 'soft'
460
+ */
461
+ set appearance(_) { }
462
+ ;
463
+ /**
464
+ * The color variant of the badge. @default 'default'
465
+ */
466
+ set variant(_) { }
467
+ ;
468
+ /**
469
+ * Whether the badge can be dismissed/closed. @default false
470
+ */
471
+ set isDismissible(_) { }
472
+ ;
473
+ /**
474
+ * The badge size @default 'base'
475
+ */
476
+ set size(_) { }
477
+ ;
268
478
  aegovBadgeDismiss = new EventEmitter();
269
479
  constructor(c, r, z) {
270
480
  this.z = z;
@@ -272,7 +482,7 @@ let AegovBadge = class AegovBadge {
272
482
  this.el = r.nativeElement;
273
483
  }
274
484
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
275
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovBadge, isStandalone: true, selector: "aegov-badge", inputs: { appearance: "appearance", fieldId: "fieldId", isDismissible: "isDismissible", size: "size", variant: "variant" }, outputs: { aegovBadgeDismiss: "aegovBadgeDismiss" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
485
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovBadge, isStandalone: true, selector: "aegov-badge", inputs: { appearance: "appearance", fieldId: "fieldId", isDismissible: ["isDismissible", "isDismissible", nullableBooleanAttribute], size: "size", variant: "variant" }, outputs: { aegovBadgeDismiss: "aegovBadgeDismiss" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
276
486
  };
277
487
  AegovBadge = __decorate([
278
488
  ProxyCmp({
@@ -287,7 +497,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
287
497
  changeDetection: ChangeDetectionStrategy.OnPush,
288
498
  template: '<ng-content></ng-content>',
289
499
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
290
- inputs: ['appearance', 'fieldId', 'isDismissible', 'size', 'variant'],
500
+ inputs: ['appearance', 'fieldId', { name: 'isDismissible', transform: nullableBooleanAttribute }, 'size', 'variant'],
291
501
  outputs: ['aegovBadgeDismiss'],
292
502
  }]
293
503
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovBadgeDismiss: [{
@@ -296,6 +506,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
296
506
  let AegovBanner = class AegovBanner {
297
507
  z;
298
508
  el;
509
+ /**
510
+ * Unique ID for the banner element. Auto-generated if not provided.
511
+ */
512
+ set fieldId(_) { }
513
+ ;
514
+ /**
515
+ * The variant of the banner. Determines the color scheme. @default 'default'
516
+ */
517
+ set variant(_) { }
518
+ ;
519
+ /**
520
+ * The appearance style of the banner. @default 'soft'
521
+ */
522
+ set appearance(_) { }
523
+ ;
524
+ /**
525
+ * Vertical position of the banner (top or bottom of viewport/page). @default 'top'
526
+ */
527
+ set position(_) { }
528
+ ;
529
+ /**
530
+ * CSS positioning strategy: fixed (stays in viewport), sticky (scrolls then sticks). @default 'fixed'
531
+ */
532
+ set display(_) { }
533
+ ;
534
+ /**
535
+ * Layout mode: push (takes up space in page flow), overlay (floats over content). @default 'push'
536
+ */
537
+ set mode(_) { }
538
+ ;
539
+ /**
540
+ * Whether the banner can be dismissed/closed. @default true
541
+ */
542
+ set isDismissible(_) { }
543
+ ;
544
+ /**
545
+ * Size of the banner. Controls font size and vertical padding.
546
+ Accepts a plain value (`"sm"`, `"base"`, `"lg"`) or a responsive string
547
+ using Tailwind-style breakpoint prefixes (`"sm xl:lg"`). @default 'base'
548
+ */
549
+ set size(_) { }
550
+ ;
551
+ /**
552
+ * Auto-focus the banner when mounted (for critical alerts only). @default false
553
+ */
554
+ set isFocusable(_) { }
555
+ ;
299
556
  aegovBannerDismiss = new EventEmitter();
300
557
  aegovBannerHeightChange = new EventEmitter();
301
558
  constructor(c, r, z) {
@@ -304,7 +561,7 @@ let AegovBanner = class AegovBanner {
304
561
  this.el = r.nativeElement;
305
562
  }
306
563
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovBanner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
307
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovBanner, isStandalone: true, selector: "aegov-banner", inputs: { appearance: "appearance", display: "display", fieldId: "fieldId", isDismissible: "isDismissible", isFocusable: "isFocusable", mode: "mode", position: "position", size: "size", variant: "variant" }, outputs: { aegovBannerDismiss: "aegovBannerDismiss", aegovBannerHeightChange: "aegovBannerHeightChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
564
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovBanner, isStandalone: true, selector: "aegov-banner", inputs: { appearance: "appearance", display: "display", fieldId: "fieldId", isDismissible: ["isDismissible", "isDismissible", nullableBooleanAttribute], isFocusable: ["isFocusable", "isFocusable", nullableBooleanAttribute], mode: "mode", position: "position", size: "size", variant: "variant" }, outputs: { aegovBannerDismiss: "aegovBannerDismiss", aegovBannerHeightChange: "aegovBannerHeightChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
308
565
  };
309
566
  AegovBanner = __decorate([
310
567
  ProxyCmp({
@@ -319,7 +576,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
319
576
  changeDetection: ChangeDetectionStrategy.OnPush,
320
577
  template: '<ng-content></ng-content>',
321
578
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
322
- inputs: ['appearance', 'display', 'fieldId', 'isDismissible', 'isFocusable', 'mode', 'position', 'size', 'variant'],
579
+ inputs: ['appearance', 'display', 'fieldId', { name: 'isDismissible', transform: nullableBooleanAttribute }, { name: 'isFocusable', transform: nullableBooleanAttribute }, 'mode', 'position', 'size', 'variant'],
323
580
  outputs: ['aegovBannerDismiss', 'aegovBannerHeightChange'],
324
581
  }]
325
582
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovBannerDismiss: [{
@@ -330,6 +587,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
330
587
  let AegovBentoGrid = class AegovBentoGrid {
331
588
  z;
332
589
  el;
590
+ /**
591
+ * Optional id reflected on the inner wrapper. Auto-generated if not provided.
592
+ */
593
+ set fieldId(_) { }
594
+ ;
595
+ /**
596
+ * Number of columns. Tailwind-style breakpoint syntax supported,
597
+ e.g. `cols="1 md:2 lg:4"`. Use `cols="1 md:..."` to stack on mobile. @default '1 md:2 lg:3'
598
+ */
599
+ set cols(_) { }
600
+ ;
601
+ /**
602
+ * Gap between cards. Named sizes: 'none', 'xs', 'sm', 'md', 'lg', 'xl'.
603
+ Responsive syntax supported: `gap="sm md:md lg:lg"`. @default 'md'
604
+ */
605
+ set gap(_) { }
606
+ ;
607
+ /**
608
+ * Auto-flow mode. 'dense' fills holes left by larger spans (bento packing),
609
+ 'row' keeps strict DOM order. @default 'dense'
610
+ */
611
+ set flow(_) { }
612
+ ;
333
613
  constructor(c, r, z) {
334
614
  this.z = z;
335
615
  c.detach();
@@ -357,6 +637,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
357
637
  let AegovBlockquote = class AegovBlockquote {
358
638
  z;
359
639
  el;
640
+ /**
641
+ * The blockquote appearance style @default 'primary'
642
+ */
643
+ set appearance(_) { }
644
+ ;
645
+ /**
646
+ * The citation source
647
+ */
648
+ set cite(_) { }
649
+ ;
650
+ /**
651
+ * The author source
652
+ */
653
+ set author(_) { }
654
+ ;
655
+ /**
656
+ * The author's title/position
657
+ */
658
+ set authorTitle(_) { }
659
+ ;
660
+ /**
661
+ * Additional CSS classes merged onto the inner blockquote element.
662
+
663
+ This component renders in a real shadow root, which normally blocks the page's CSS
664
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
665
+ in from the page's own stylesheets at runtime and work as expected; other utilities
666
+ (colour, border, typography, etc.) still have no effect — see #35.
667
+ */
668
+ set extraClass(_) { }
669
+ ;
360
670
  constructor(c, r, z) {
361
671
  this.z = z;
362
672
  c.detach();
@@ -384,13 +694,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
384
694
  let AegovBreadcrumbs = class AegovBreadcrumbs {
385
695
  z;
386
696
  el;
697
+ /**
698
+ * Unique ID for the breadcrumbs nav element. Auto-generated if not provided.
699
+ */
700
+ set fieldId(_) { }
701
+ ;
702
+ /**
703
+ * The separator style to use between breadcrumb items @default 'slash'
704
+ */
705
+ set separator(_) { }
706
+ ;
707
+ /**
708
+ * Maximum number of characters before truncating breadcrumb item text.
709
+ If not set, text will not be truncated.
710
+ */
711
+ set maxLength(_) { }
712
+ ;
713
+ /**
714
+ * Whether to add schema.org microdata for structured data @default false
715
+ */
716
+ set isMicrodata(_) { }
717
+ ;
387
718
  constructor(c, r, z) {
388
719
  this.z = z;
389
720
  c.detach();
390
721
  this.el = r.nativeElement;
391
722
  }
392
723
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovBreadcrumbs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
393
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovBreadcrumbs, isStandalone: true, selector: "aegov-breadcrumbs", inputs: { fieldId: "fieldId", isMicrodata: "isMicrodata", maxLength: "maxLength", separator: "separator" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
724
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovBreadcrumbs, isStandalone: true, selector: "aegov-breadcrumbs", inputs: { fieldId: "fieldId", isMicrodata: ["isMicrodata", "isMicrodata", nullableBooleanAttribute], maxLength: ["maxLength", "maxLength", nullableNumberAttribute], separator: "separator" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
394
725
  };
395
726
  AegovBreadcrumbs = __decorate([
396
727
  ProxyCmp({
@@ -405,12 +736,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
405
736
  changeDetection: ChangeDetectionStrategy.OnPush,
406
737
  template: '<ng-content></ng-content>',
407
738
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
408
- inputs: ['fieldId', 'isMicrodata', 'maxLength', 'separator'],
739
+ inputs: ['fieldId', { name: 'isMicrodata', transform: nullableBooleanAttribute }, { name: 'maxLength', transform: nullableNumberAttribute }, 'separator'],
409
740
  }]
410
741
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
411
742
  let AegovBreadcrumbsItem = class AegovBreadcrumbsItem {
412
743
  z;
413
744
  el;
745
+ /**
746
+ * The URL that the breadcrumb item links to.
747
+ If not provided, the item will be rendered as plain text (current page).
748
+ */
749
+ set href(_) { }
750
+ ;
751
+ /**
752
+ * Where to open the linked document @default '_self'
753
+ */
754
+ set target(_) { }
755
+ ;
414
756
  aegovBreadcrumbItemClick = new EventEmitter();
415
757
  constructor(c, r, z) {
416
758
  this.z = z;
@@ -442,6 +784,74 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
442
784
  let AegovButton = class AegovButton {
443
785
  z;
444
786
  el;
787
+ /**
788
+ * Unique ID for the button element. Auto-generated if not provided.
789
+ */
790
+ set fieldId(_) { }
791
+ ;
792
+ /**
793
+ * The button variant (color scheme) @default 'primary'
794
+ */
795
+ set variant(_) { }
796
+ ;
797
+ /**
798
+ * The button size @default 'base'
799
+ */
800
+ set size(_) { }
801
+ ;
802
+ /**
803
+ * The button type attribute @default 'button'
804
+ */
805
+ set type(_) { }
806
+ ;
807
+ /**
808
+ * Name submitted with the form, paired with `value`, when this button submits
809
+ it — as on a native `<button>`.
810
+ */
811
+ set name(_) { }
812
+ ;
813
+ /**
814
+ * Value submitted with `name` when this button submits the form.
815
+ */
816
+ set value(_) { }
817
+ ;
818
+ /**
819
+ * The button appearance (visual style) @default 'solid'
820
+ */
821
+ set appearance(_) { }
822
+ ;
823
+ /**
824
+ * Whether the button is disabled @default false
825
+ */
826
+ set isDisabled(_) { }
827
+ ;
828
+ /**
829
+ * Whether the button is only an icon @default false
830
+ */
831
+ set isIcon(_) { }
832
+ ;
833
+ /**
834
+ * Whether the button should take full width @default false
835
+
836
+ Reflected to the `is-full` attribute: the host-level `:host([is-full])` CSS rule
837
+ (in aegov-button.css) that switches the host to `display: block` only matches a
838
+ real attribute, so a framework that sets this as a JS property binding instead of
839
+ a literal string attribute (e.g. Angular's `[isFull]="true"`, React's JSX `isFull`
840
+ shorthand) would otherwise never trigger it — only `reflect: true` makes every
841
+ binding style reach the attribute the CSS depends on.
842
+ */
843
+ set isFull(_) { }
844
+ ;
845
+ /**
846
+ * Whether the button should have bold text or not @default true
847
+ */
848
+ set isBold(_) { }
849
+ ;
850
+ /**
851
+ * Whether the button is in a loading state @default false
852
+ */
853
+ set isLoading(_) { }
854
+ ;
445
855
  aegovButtonClick = new EventEmitter();
446
856
  aegovButtonFocus = new EventEmitter();
447
857
  aegovButtonBlur = new EventEmitter();
@@ -451,12 +861,12 @@ let AegovButton = class AegovButton {
451
861
  this.el = r.nativeElement;
452
862
  }
453
863
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
454
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovButton, isStandalone: true, selector: "aegov-button", inputs: { appearance: "appearance", fieldId: "fieldId", isBold: "isBold", isDisabled: "isDisabled", isFull: "isFull", isIcon: "isIcon", isLoading: "isLoading", size: "size", type: "type", variant: "variant" }, outputs: { aegovButtonClick: "aegovButtonClick", aegovButtonFocus: "aegovButtonFocus", aegovButtonBlur: "aegovButtonBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
864
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovButton, isStandalone: true, selector: "aegov-button", inputs: { appearance: "appearance", fieldId: "fieldId", isBold: ["isBold", "isBold", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isFull: ["isFull", "isFull", nullableBooleanAttribute], isIcon: ["isIcon", "isIcon", nullableBooleanAttribute], isLoading: ["isLoading", "isLoading", nullableBooleanAttribute], name: "name", size: "size", type: "type", value: "value", variant: "variant" }, outputs: { aegovButtonClick: "aegovButtonClick", aegovButtonFocus: "aegovButtonFocus", aegovButtonBlur: "aegovButtonBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
455
865
  };
456
866
  AegovButton = __decorate([
457
867
  ProxyCmp({
458
868
  defineCustomElementFn: defineCustomElement$c,
459
- inputs: ['appearance', 'fieldId', 'isBold', 'isDisabled', 'isFull', 'isIcon', 'isLoading', 'size', 'type', 'variant'],
869
+ inputs: ['appearance', 'fieldId', 'isBold', 'isDisabled', 'isFull', 'isIcon', 'isLoading', 'name', 'size', 'type', 'value', 'variant'],
460
870
  methods: ['setFocus']
461
871
  })
462
872
  ], AegovButton);
@@ -467,7 +877,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
467
877
  changeDetection: ChangeDetectionStrategy.OnPush,
468
878
  template: '<ng-content></ng-content>',
469
879
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
470
- inputs: ['appearance', 'fieldId', 'isBold', 'isDisabled', 'isFull', 'isIcon', 'isLoading', 'size', 'type', 'variant'],
880
+ inputs: ['appearance', 'fieldId', { name: 'isBold', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isFull', transform: nullableBooleanAttribute }, { name: 'isIcon', transform: nullableBooleanAttribute }, { name: 'isLoading', transform: nullableBooleanAttribute }, 'name', 'size', 'type', 'value', 'variant'],
471
881
  outputs: ['aegovButtonClick', 'aegovButtonFocus', 'aegovButtonBlur'],
472
882
  }]
473
883
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovButtonClick: [{
@@ -480,6 +890,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
480
890
  let AegovButtonGroup = class AegovButtonGroup {
481
891
  z;
482
892
  el;
893
+ /**
894
+ * The orientation of the button group @default 'horizontal'
895
+ */
896
+ set orientation(_) { }
897
+ ;
483
898
  constructor(c, r, z) {
484
899
  this.z = z;
485
900
  c.detach();
@@ -507,6 +922,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
507
922
  let AegovCallout = class AegovCallout {
508
923
  z;
509
924
  el;
925
+ /**
926
+ * Unique ID for the callout element. Auto-generated if not provided.
927
+ */
928
+ set fieldId(_) { }
929
+ ;
930
+ /**
931
+ * The variant of the callout. Determines the color scheme. @default 'default'
932
+ */
933
+ set variant(_) { }
934
+ ;
935
+ /**
936
+ * The appearance style of the callout. @default 'soft'
937
+ */
938
+ set appearance(_) { }
939
+ ;
940
+ /**
941
+ * The size of the callout. Controls font size, icon size, and padding.
942
+ Accepts a plain value (`"sm"`, `"base"`, `"lg"`) or a responsive string
943
+ using Tailwind-style breakpoint prefixes (`"sm xl:lg"`). @default 'base'
944
+ */
945
+ set size(_) { }
946
+ ;
947
+ /**
948
+ * Whether the callout can be dismissed/closed. @default false
949
+ */
950
+ set isDismissible(_) { }
951
+ ;
510
952
  aegovCalloutDismiss = new EventEmitter();
511
953
  constructor(c, r, z) {
512
954
  this.z = z;
@@ -514,7 +956,7 @@ let AegovCallout = class AegovCallout {
514
956
  this.el = r.nativeElement;
515
957
  }
516
958
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovCallout, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
517
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovCallout, isStandalone: true, selector: "aegov-callout", inputs: { appearance: "appearance", fieldId: "fieldId", isDismissible: "isDismissible", size: "size", variant: "variant" }, outputs: { aegovCalloutDismiss: "aegovCalloutDismiss" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
959
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovCallout, isStandalone: true, selector: "aegov-callout", inputs: { appearance: "appearance", fieldId: "fieldId", isDismissible: ["isDismissible", "isDismissible", nullableBooleanAttribute], size: "size", variant: "variant" }, outputs: { aegovCalloutDismiss: "aegovCalloutDismiss" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
518
960
  };
519
961
  AegovCallout = __decorate([
520
962
  ProxyCmp({
@@ -529,7 +971,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
529
971
  changeDetection: ChangeDetectionStrategy.OnPush,
530
972
  template: '<ng-content></ng-content>',
531
973
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
532
- inputs: ['appearance', 'fieldId', 'isDismissible', 'size', 'variant'],
974
+ inputs: ['appearance', 'fieldId', { name: 'isDismissible', transform: nullableBooleanAttribute }, 'size', 'variant'],
533
975
  outputs: ['aegovCalloutDismiss'],
534
976
  }]
535
977
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovCalloutDismiss: [{
@@ -538,13 +980,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
538
980
  let AegovCard = class AegovCard {
539
981
  z;
540
982
  el;
983
+ /**
984
+ * Unique ID for the card element. Auto-generated if not provided.
985
+ */
986
+ set fieldId(_) { }
987
+ ;
988
+ /**
989
+ * Whether to apply inner padding. On by default. The amount varies by `size`: 1rem/16px
990
+ (sm), 1.25rem/20px (base), 1.5rem/24px (lg). @default true
991
+ */
992
+ set isPadding(_) { }
993
+ ;
994
+ /**
995
+ * Border thickness: 1, 2, or 3. @default 2
996
+ */
997
+ set borderWidth(_) { }
998
+ ;
999
+ /**
1000
+ * Appearance: 'solid' (full-strength border), 'light' (subtle low-contrast border), or 'creative' (gradient border via CSS mask). Border colour resolves from `variant`. @default 'solid'
1001
+ */
1002
+ set appearance(_) { }
1003
+ ;
1004
+ /**
1005
+ * Variant: colour family applied to border + glow. 'primary' (default), 'secondary', 'neutral-max' (aeblack-800 family), or 'neutral-min' (aeblack-100 family). @default 'primary'
1006
+ */
1007
+ set variant(_) { }
1008
+ ;
1009
+ /**
1010
+ * Hover effect: 'off' (none), 'standard' (border color change), or 'glow' (shadow glow). @default 'off'
1011
+ */
1012
+ set hover(_) { }
1013
+ ;
1014
+ /**
1015
+ * Size: 'sm' (compact padding/radius), 'base' (default), or 'lg' (generous padding/radius). A fixed
1016
+ token — unlike Badge, Banner, and Callout's `size`, this does not accept a responsive breakpoint
1017
+ string, and padding/radius do not change by viewport width. @default 'base'
1018
+ */
1019
+ set size(_) { }
1020
+ ;
1021
+ /**
1022
+ * Number of grid columns this card should span inside an `aegov-bento-grid`.
1023
+ Supports responsive syntax, e.g. `"1 md:2 lg:3"`. Reflected as the
1024
+ `data-col-span` attribute so the parent grid can read it correctly even
1025
+ when set via JSX camelCase (`dataColSpan`).
1026
+ */
1027
+ set dataColSpan(_) { }
1028
+ ;
1029
+ /**
1030
+ * Number of grid rows this card should span inside an `aegov-bento-grid`.
1031
+ Supports responsive syntax, e.g. `"1 md:2"`. Reflected as the
1032
+ `data-row-span` attribute so the parent grid can read it correctly even
1033
+ when set via JSX camelCase (`dataRowSpan`).
1034
+ */
1035
+ set dataRowSpan(_) { }
1036
+ ;
541
1037
  constructor(c, r, z) {
542
1038
  this.z = z;
543
1039
  c.detach();
544
1040
  this.el = r.nativeElement;
545
1041
  }
546
1042
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
547
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovCard, isStandalone: true, selector: "aegov-card", inputs: { appearance: "appearance", borderWidth: "borderWidth", dataColSpan: "dataColSpan", dataRowSpan: "dataRowSpan", fieldId: "fieldId", hover: "hover", isPadding: "isPadding", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1043
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovCard, isStandalone: true, selector: "aegov-card", inputs: { appearance: "appearance", borderWidth: ["borderWidth", "borderWidth", nullableNumberAttribute], dataColSpan: "dataColSpan", dataRowSpan: "dataRowSpan", fieldId: "fieldId", hover: "hover", isPadding: ["isPadding", "isPadding", nullableBooleanAttribute], size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
548
1044
  };
549
1045
  AegovCard = __decorate([
550
1046
  ProxyCmp({
@@ -559,12 +1055,98 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
559
1055
  changeDetection: ChangeDetectionStrategy.OnPush,
560
1056
  template: '<ng-content></ng-content>',
561
1057
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
562
- inputs: ['appearance', 'borderWidth', 'dataColSpan', 'dataRowSpan', 'fieldId', 'hover', 'isPadding', 'size', 'variant'],
1058
+ inputs: ['appearance', { name: 'borderWidth', transform: nullableNumberAttribute }, 'dataColSpan', 'dataRowSpan', 'fieldId', 'hover', { name: 'isPadding', transform: nullableBooleanAttribute }, 'size', 'variant'],
563
1059
  }]
564
1060
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
565
1061
  let AegovCheckbox = class AegovCheckbox {
566
1062
  z;
567
1063
  el;
1064
+ /**
1065
+ * Unique ID for the native checkbox element. Auto-generated if not provided.
1066
+ */
1067
+ set fieldId(_) { }
1068
+ ;
1069
+ /**
1070
+ * The name attribute for the checkbox. Reflected so ElementInternals can read it for form submission.
1071
+ */
1072
+ set name(_) { }
1073
+ ;
1074
+ /**
1075
+ * The value attribute for the checkbox.
1076
+ */
1077
+ set value(_) { }
1078
+ ;
1079
+ /**
1080
+ * Whether the checkbox is checked. @default false
1081
+ */
1082
+ set isChecked(_) { }
1083
+ ;
1084
+ /**
1085
+ * The size of the checkbox. @default 'base'
1086
+ */
1087
+ set size(_) { }
1088
+ ;
1089
+ /**
1090
+ * Colour family. Drives rest border, checked bg/border. Focus ring stays camel; error stays aered.
1091
+ */
1092
+ set variant(_) { }
1093
+ ;
1094
+ /**
1095
+ * Visual appearance set by a parent aegov-checkbox-group. Not meant to be set directly. @default 'default'
1096
+ */
1097
+ set appearance(_) { }
1098
+ ;
1099
+ /**
1100
+ * Whether the checkbox is disabled. @default false
1101
+ */
1102
+ set isDisabled(_) { }
1103
+ ;
1104
+ /**
1105
+ * Whether the checkbox is required. @default false
1106
+ */
1107
+ set isRequired(_) { }
1108
+ ;
1109
+ /**
1110
+ * Label text for the checkbox. When provided, generates an associated <label> element.
1111
+ */
1112
+ set label(_) { }
1113
+ ;
1114
+ /**
1115
+ * Helper hint text displayed below the label. Only rendered when label is provided
1116
+ and no error is shown. Renamed from `description` (decision §6.6).
1117
+ */
1118
+ set hint(_) { }
1119
+ ;
1120
+ /**
1121
+ * Marks this checkbox as a "check all" controller within a checkbox group. @default false
1122
+ */
1123
+ set isCheckAll(_) { }
1124
+ ;
1125
+ /**
1126
+ * Whether the checkbox is in an indeterminate state. Set by parent group for check-all. @default false
1127
+ */
1128
+ set isIndeterminate(_) { }
1129
+ ;
1130
+ /**
1131
+ * Visual + a11y invalid state. Toggles `aria-invalid` + `is-invalid` host class. See §2.3. @default false
1132
+ */
1133
+ set isInvalid(_) { }
1134
+ ;
1135
+ /**
1136
+ * Inline error message. Use `error` slot for rich markup. @default ''
1137
+ */
1138
+ set errorMessage(_) { }
1139
+ ;
1140
+ /**
1141
+ * Additional CSS classes to apply.
1142
+
1143
+ This component renders in a real shadow root, which normally blocks the page's CSS
1144
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
1145
+ in from the page's own stylesheets at runtime and work as expected; other utilities
1146
+ (colour, border, typography, etc.) still have no effect — see #35.
1147
+ */
1148
+ set extraClass(_) { }
1149
+ ;
568
1150
  aegovCheckboxChange = new EventEmitter();
569
1151
  aegovValidate = new EventEmitter();
570
1152
  constructor(c, r, z) {
@@ -573,7 +1155,7 @@ let AegovCheckbox = class AegovCheckbox {
573
1155
  this.el = r.nativeElement;
574
1156
  }
575
1157
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
576
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovCheckbox, isStandalone: true, selector: "aegov-checkbox", inputs: { appearance: "appearance", errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isCheckAll: "isCheckAll", isChecked: "isChecked", isDisabled: "isDisabled", isIndeterminate: "isIndeterminate", isInvalid: "isInvalid", isRequired: "isRequired", label: "label", name: "name", size: "size", value: "value", variant: "variant" }, outputs: { aegovCheckboxChange: "aegovCheckboxChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1158
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovCheckbox, isStandalone: true, selector: "aegov-checkbox", inputs: { appearance: "appearance", errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isCheckAll: ["isCheckAll", "isCheckAll", nullableBooleanAttribute], isChecked: ["isChecked", "isChecked", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isIndeterminate: ["isIndeterminate", "isIndeterminate", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], label: "label", name: "name", size: "size", value: "value", variant: "variant" }, outputs: { aegovCheckboxChange: "aegovCheckboxChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
577
1159
  };
578
1160
  AegovCheckbox = __decorate([
579
1161
  ProxyCmp({
@@ -589,7 +1171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
589
1171
  changeDetection: ChangeDetectionStrategy.OnPush,
590
1172
  template: '<ng-content></ng-content>',
591
1173
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
592
- inputs: ['appearance', 'errorMessage', 'extraClass', 'fieldId', 'hint', 'isCheckAll', 'isChecked', 'isDisabled', 'isIndeterminate', 'isInvalid', 'isRequired', 'label', 'name', 'size', 'value', 'variant'],
1174
+ inputs: ['appearance', 'errorMessage', 'extraClass', 'fieldId', 'hint', { name: 'isCheckAll', transform: nullableBooleanAttribute }, { name: 'isChecked', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isIndeterminate', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, 'label', 'name', 'size', 'value', 'variant'],
593
1175
  outputs: ['aegovCheckboxChange', 'aegovValidate'],
594
1176
  }]
595
1177
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovCheckboxChange: [{
@@ -600,6 +1182,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
600
1182
  let AegovCheckboxGroup = class AegovCheckboxGroup {
601
1183
  z;
602
1184
  el;
1185
+ /**
1186
+ * Visual appearance for the group layout. @default 'default'
1187
+ */
1188
+ set appearance(_) { }
1189
+ ;
1190
+ /**
1191
+ * Stack direction for checkbox items. @default 'vertical'
1192
+ */
1193
+ set orientation(_) { }
1194
+ ;
1195
+ /**
1196
+ * Optional label rendered as a <legend> for accessibility.
1197
+ */
1198
+ set label(_) { }
1199
+ ;
1200
+ /**
1201
+ * Size of all checkboxes in the group. Propagated to children. @default 'base'
1202
+ */
1203
+ set size(_) { }
1204
+ ;
1205
+ /**
1206
+ * Colour family. Cascades to child checkboxes (only if child has no own variant). Focus ring stays camel; error stays aered regardless.
1207
+ */
1208
+ set variant(_) { }
1209
+ ;
1210
+ /**
1211
+ * Disables all checkboxes within the group via native fieldset disabled. @default false
1212
+ */
1213
+ set isDisabled(_) { }
1214
+ ;
1215
+ /**
1216
+ * Group is required — at least one child checkbox must be checked. Aggregate-level only. @default false
1217
+ */
1218
+ set isRequired(_) { }
1219
+ ;
1220
+ /**
1221
+ * Visual + a11y invalid state. See §2.3. @default false
1222
+ */
1223
+ set isInvalid(_) { }
1224
+ ;
1225
+ /**
1226
+ * Inline error message rendered below the legend when `isInvalid`. @default ''
1227
+ */
1228
+ set errorMessage(_) { }
1229
+ ;
1230
+ /**
1231
+ * Helper hint shown below the legend when not invalid. @default ''
1232
+ */
1233
+ set hint(_) { }
1234
+ ;
1235
+ /**
1236
+ * Additional CSS classes to apply.
1237
+ */
1238
+ set extraClass(_) { }
1239
+ ;
603
1240
  aegovCheckboxGroupChange = new EventEmitter();
604
1241
  aegovValidate = new EventEmitter();
605
1242
  constructor(c, r, z) {
@@ -608,7 +1245,7 @@ let AegovCheckboxGroup = class AegovCheckboxGroup {
608
1245
  this.el = r.nativeElement;
609
1246
  }
610
1247
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovCheckboxGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
611
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovCheckboxGroup, isStandalone: true, selector: "aegov-checkbox-group", inputs: { appearance: "appearance", errorMessage: "errorMessage", extraClass: "extraClass", hint: "hint", isDisabled: "isDisabled", isInvalid: "isInvalid", isRequired: "isRequired", label: "label", orientation: "orientation", size: "size", variant: "variant" }, outputs: { aegovCheckboxGroupChange: "aegovCheckboxGroupChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1248
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovCheckboxGroup, isStandalone: true, selector: "aegov-checkbox-group", inputs: { appearance: "appearance", errorMessage: "errorMessage", extraClass: "extraClass", hint: "hint", isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], label: "label", orientation: "orientation", size: "size", variant: "variant" }, outputs: { aegovCheckboxGroupChange: "aegovCheckboxGroupChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
612
1249
  };
613
1250
  AegovCheckboxGroup = __decorate([
614
1251
  ProxyCmp({
@@ -624,7 +1261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
624
1261
  changeDetection: ChangeDetectionStrategy.OnPush,
625
1262
  template: '<ng-content></ng-content>',
626
1263
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
627
- inputs: ['appearance', 'errorMessage', 'extraClass', 'hint', 'isDisabled', 'isInvalid', 'isRequired', 'label', 'orientation', 'size', 'variant'],
1264
+ inputs: ['appearance', 'errorMessage', 'extraClass', 'hint', { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, 'label', 'orientation', 'size', 'variant'],
628
1265
  outputs: ['aegovCheckboxGroupChange', 'aegovValidate'],
629
1266
  }]
630
1267
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovCheckboxGroupChange: [{
@@ -635,6 +1272,158 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
635
1272
  let AegovDatepicker = class AegovDatepicker {
636
1273
  z;
637
1274
  el;
1275
+ /**
1276
+ * Selection appearance: single date or date range @default 'single'
1277
+ */
1278
+ set appearance(_) { }
1279
+ ;
1280
+ /**
1281
+ * Pre-selected value. Single: "YYYY-MM-DD". Range: "YYYY-MM-DD / YYYY-MM-DD" @default ''
1282
+ */
1283
+ set value(_) { }
1284
+ ;
1285
+ /**
1286
+ * Output format using tokens: YYYY, YY, MM, M, DD, D, MMM, MMMM, dd, ddd @default 'YYYY-MM-DD'
1287
+ */
1288
+ set format(_) { }
1289
+ ;
1290
+ /**
1291
+ * Placeholder text for single mode input. Empty defaults to text in the UI language (see `locale`). @default ''
1292
+ */
1293
+ set placeholder(_) { }
1294
+ ;
1295
+ /**
1296
+ * Placeholder for range start input. Empty defaults to text in the UI language (see `locale`). @default ''
1297
+ */
1298
+ set labelRangeStart(_) { }
1299
+ ;
1300
+ /**
1301
+ * Placeholder for range end input. Empty defaults to text in the UI language (see `locale`). @default ''
1302
+ */
1303
+ set labelRangeEnd(_) { }
1304
+ ;
1305
+ /**
1306
+ * Minimum selectable date (ISO string or "today") @default ''
1307
+ */
1308
+ set min(_) { }
1309
+ ;
1310
+ /**
1311
+ * Maximum selectable date (ISO string or "today") @default ''
1312
+ */
1313
+ set max(_) { }
1314
+ ;
1315
+ /**
1316
+ * Disable all future dates (shorthand for max="today") @default false
1317
+ */
1318
+ set isDisableFuture(_) { }
1319
+ ;
1320
+ /**
1321
+ * Week start day: 0=Sunday, 1=Monday, ...6=Saturday @default 0
1322
+ */
1323
+ set startDay(_) { }
1324
+ ;
1325
+ /**
1326
+ * Locale (BCP 47, e.g. `en`, `ar-AE`, `fr`) for day and month names and formatted dates.
1327
+ Dates use `en` when it is not set.
1328
+
1329
+ An Arabic or English locale (`ar`, `ar-*`, `en`, `en-*`) also sets the language of the
1330
+ datepicker's own text: labels, placeholders, buttons, presets, validation messages and
1331
+ screen-reader text. With no locale, or any other locale, that text follows the text
1332
+ direction like the rest of the library: Arabic when `dir` is `rtl`, English otherwise.
1333
+ Layout direction always follows `dir`.
1334
+ */
1335
+ set locale(_) { }
1336
+ ;
1337
+ /**
1338
+ * Minimum number of days for range selection @default 0
1339
+ */
1340
+ set minRange(_) { }
1341
+ ;
1342
+ /**
1343
+ * Maximum number of days for range selection (0 = unlimited) @default 0
1344
+ */
1345
+ set maxRange(_) { }
1346
+ ;
1347
+ /**
1348
+ * Comma-separated ISO dates that cannot be selected @default ''
1349
+ */
1350
+ set blackout(_) { }
1351
+ ;
1352
+ /**
1353
+ * Comma-separated preset IDs for range mode (e.g., "today,last7Days,thisMonth") @default ''
1354
+ */
1355
+ set presets(_) { }
1356
+ ;
1357
+ /**
1358
+ * Whether the datepicker is disabled @default false
1359
+ */
1360
+ set isDisabled(_) { }
1361
+ ;
1362
+ /**
1363
+ * Marks the datepicker as required for form validation. Sets `required` on the inner input. @default false
1364
+ */
1365
+ set isRequired(_) { }
1366
+ ;
1367
+ /**
1368
+ * Show clear button when value is set @default true
1369
+ */
1370
+ set isClearable(_) { }
1371
+ ;
1372
+ /**
1373
+ * Show month/year select dropdowns in header @default true
1374
+ */
1375
+ set isHeaderSelectable(_) { }
1376
+ ;
1377
+ /**
1378
+ * Start year for the year dropdown (default: current year - 100) @default 0
1379
+ */
1380
+ set yearRangeStart(_) { }
1381
+ ;
1382
+ /**
1383
+ * End year for the year dropdown (default: current year + 100) @default 0
1384
+ */
1385
+ set yearRangeEnd(_) { }
1386
+ ;
1387
+ /**
1388
+ * Show Apply/Cancel buttons for confirming selection @default false
1389
+ */
1390
+ set isWithConfirmation(_) { }
1391
+ ;
1392
+ /**
1393
+ * The size of the datepicker input. @default 'base'
1394
+ */
1395
+ set size(_) { }
1396
+ ;
1397
+ /**
1398
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
1399
+ */
1400
+ set variant(_) { }
1401
+ ;
1402
+ /**
1403
+ * Optional unique field ID. Used by aegov-form-field for label linking + error/hint id derivation.
1404
+ */
1405
+ set fieldId(_) { }
1406
+ ;
1407
+ /**
1408
+ * Form field name for FormAssociated submission (§2.5).
1409
+ */
1410
+ set name(_) { }
1411
+ ;
1412
+ /**
1413
+ * Visual + a11y invalid state. See §2.3. @default false
1414
+ */
1415
+ set isInvalid(_) { }
1416
+ ;
1417
+ /**
1418
+ * Inline error message. Use `error` slot for rich markup. @default ''
1419
+ */
1420
+ set errorMessage(_) { }
1421
+ ;
1422
+ /**
1423
+ * Helper hint shown below the control. Hidden when an error is shown. @default ''
1424
+ */
1425
+ set hint(_) { }
1426
+ ;
638
1427
  aegovDatepickerChange = new EventEmitter();
639
1428
  aegovDatepickerOpen = new EventEmitter();
640
1429
  aegovDatepickerClose = new EventEmitter();
@@ -647,7 +1436,7 @@ let AegovDatepicker = class AegovDatepicker {
647
1436
  this.el = r.nativeElement;
648
1437
  }
649
1438
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovDatepicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
650
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovDatepicker, isStandalone: true, selector: "aegov-datepicker", inputs: { appearance: "appearance", blackout: "blackout", errorMessage: "errorMessage", fieldId: "fieldId", format: "format", hint: "hint", isClearable: "isClearable", isDisableFuture: "isDisableFuture", isDisabled: "isDisabled", isHeaderSelectable: "isHeaderSelectable", isInvalid: "isInvalid", isRequired: "isRequired", isWithConfirmation: "isWithConfirmation", labelRangeEnd: "labelRangeEnd", labelRangeStart: "labelRangeStart", locale: "locale", max: "max", maxRange: "maxRange", min: "min", minRange: "minRange", name: "name", placeholder: "placeholder", presets: "presets", size: "size", startDay: "startDay", value: "value", variant: "variant", yearRangeEnd: "yearRangeEnd", yearRangeStart: "yearRangeStart" }, outputs: { aegovDatepickerChange: "aegovDatepickerChange", aegovDatepickerOpen: "aegovDatepickerOpen", aegovDatepickerClose: "aegovDatepickerClose", aegovDatepickerClear: "aegovDatepickerClear", aegovDatepickerMonthChange: "aegovDatepickerMonthChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1439
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovDatepicker, isStandalone: true, selector: "aegov-datepicker", inputs: { appearance: "appearance", blackout: "blackout", errorMessage: "errorMessage", fieldId: "fieldId", format: "format", hint: "hint", isClearable: ["isClearable", "isClearable", nullableBooleanAttribute], isDisableFuture: ["isDisableFuture", "isDisableFuture", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isHeaderSelectable: ["isHeaderSelectable", "isHeaderSelectable", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], isWithConfirmation: ["isWithConfirmation", "isWithConfirmation", nullableBooleanAttribute], labelRangeEnd: "labelRangeEnd", labelRangeStart: "labelRangeStart", locale: "locale", max: "max", maxRange: ["maxRange", "maxRange", nullableNumberAttribute], min: "min", minRange: ["minRange", "minRange", nullableNumberAttribute], name: "name", placeholder: "placeholder", presets: "presets", size: "size", startDay: ["startDay", "startDay", nullableNumberAttribute], value: "value", variant: "variant", yearRangeEnd: ["yearRangeEnd", "yearRangeEnd", nullableNumberAttribute], yearRangeStart: ["yearRangeStart", "yearRangeStart", nullableNumberAttribute] }, outputs: { aegovDatepickerChange: "aegovDatepickerChange", aegovDatepickerOpen: "aegovDatepickerOpen", aegovDatepickerClose: "aegovDatepickerClose", aegovDatepickerClear: "aegovDatepickerClear", aegovDatepickerMonthChange: "aegovDatepickerMonthChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
651
1440
  };
652
1441
  AegovDatepicker = __decorate([
653
1442
  ProxyCmp({
@@ -663,7 +1452,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
663
1452
  changeDetection: ChangeDetectionStrategy.OnPush,
664
1453
  template: '<ng-content></ng-content>',
665
1454
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
666
- inputs: ['appearance', 'blackout', 'errorMessage', 'fieldId', 'format', 'hint', 'isClearable', 'isDisableFuture', 'isDisabled', 'isHeaderSelectable', 'isInvalid', 'isRequired', 'isWithConfirmation', 'labelRangeEnd', 'labelRangeStart', 'locale', 'max', 'maxRange', 'min', 'minRange', 'name', 'placeholder', 'presets', 'size', 'startDay', 'value', 'variant', 'yearRangeEnd', 'yearRangeStart'],
1455
+ inputs: ['appearance', 'blackout', 'errorMessage', 'fieldId', 'format', 'hint', { name: 'isClearable', transform: nullableBooleanAttribute }, { name: 'isDisableFuture', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isHeaderSelectable', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, { name: 'isWithConfirmation', transform: nullableBooleanAttribute }, 'labelRangeEnd', 'labelRangeStart', 'locale', 'max', { name: 'maxRange', transform: nullableNumberAttribute }, 'min', { name: 'minRange', transform: nullableNumberAttribute }, 'name', 'placeholder', 'presets', 'size', { name: 'startDay', transform: nullableNumberAttribute }, 'value', 'variant', { name: 'yearRangeEnd', transform: nullableNumberAttribute }, { name: 'yearRangeStart', transform: nullableNumberAttribute }],
667
1456
  outputs: ['aegovDatepickerChange', 'aegovDatepickerOpen', 'aegovDatepickerClose', 'aegovDatepickerClear', 'aegovDatepickerMonthChange', 'aegovValidate'],
668
1457
  }]
669
1458
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovDatepickerChange: [{
@@ -682,6 +1471,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
682
1471
  let AegovDrawer = class AegovDrawer {
683
1472
  z;
684
1473
  el;
1474
+ /**
1475
+ * Unique ID for the drawer dialog element. Auto-generated if not provided.
1476
+ */
1477
+ set fieldId(_) { }
1478
+ ;
1479
+ /**
1480
+ * Whether the drawer is currently open/visible @default false
1481
+ */
1482
+ set isOpen(_) { }
1483
+ ;
1484
+ /**
1485
+ * Which edge the drawer slides from @default 'right'
1486
+ */
1487
+ set position(_) { }
1488
+ ;
1489
+ /**
1490
+ * Animation strategy for open/close transitions @default 'slide'
1491
+ */
1492
+ set animation(_) { }
1493
+ ;
1494
+ /**
1495
+ * Whether the drawer is pinned flush to edges (true) or has a gap with rounded corners (false) @default true
1496
+ */
1497
+ set isPinned(_) { }
1498
+ ;
1499
+ /**
1500
+ * Whether to show a backdrop overlay behind the drawer @default true
1501
+ */
1502
+ set isOverlay(_) { }
1503
+ ;
1504
+ /**
1505
+ * Backdrop overlay opacity level @default 'base'
1506
+ */
1507
+ set overlayOpacity(_) { }
1508
+ ;
1509
+ /**
1510
+ * Whether clicking the backdrop closes the drawer @default true
1511
+ */
1512
+ set isCloseWithOverlay(_) { }
1513
+ ;
1514
+ /**
1515
+ * Whether to prevent body scroll when drawer is open @default true
1516
+ */
1517
+ set isPreventScroll(_) { }
1518
+ ;
1519
+ /**
1520
+ * Whether the drawer may move itself while open when an ancestor would trap
1521
+ it (a `transform`, `filter`, `contain`, `z-index` stacking context, or a
1522
+ hidden ancestor), so it still covers and stacks above the page. It moves
1523
+ only out of that ancestor, and opens in place when there is none. (It
1524
+ returns to where it was declared when it closes, and leaves with its
1525
+ declared parent if that is removed.)
1526
+
1527
+ Set to `false` when the drawer is rendered inside another component's
1528
+ shadow DOM and forwards a `<slot>` into its content: relocating would take
1529
+ that slot out of its shadow tree, where it projects nothing. The panel and
1530
+ backdrop are `position: fixed`, so they still cover the viewport in place —
1531
+ unless an ancestor creates a containing block (`transform`, `filter`,
1532
+ `contain`, `will-change`), in which case leave this on. @default true
1533
+ */
1534
+ set isPortal(_) { }
1535
+ ;
1536
+ /**
1537
+ * Panel width for left/right drawers, or panel height for top/bottom drawers.
1538
+ xs=320px · sm=384px · base=480px (default) · lg=640px · xl=800px · full=100vw/100dvh.
1539
+ Also scales padding and, when `is-pinned="false"`, the edge gap and border-radius.
1540
+ On viewports narrower than 640px all left/right sizes collapse to full width. @default 'base'
1541
+ */
1542
+ set size(_) { }
1543
+ ;
1544
+ /**
1545
+ * Whether to apply inner content padding. On by default; scales with size. @default true
1546
+ */
1547
+ set isPadding(_) { }
1548
+ ;
1549
+ /**
1550
+ * Accessible label for the dialog. Passed as `aria-label` on the dialog element.
1551
+ Required for screen readers unless you pass `aria-labelledby` pointing to a
1552
+ heading rendered inside the drawer's slot.
1553
+ */
1554
+ set label(_) { }
1555
+ ;
685
1556
  aegovDrawerOpen = new EventEmitter();
686
1557
  aegovDrawerClose = new EventEmitter();
687
1558
  aegovDrawerBeforeClose = new EventEmitter();
@@ -693,7 +1564,7 @@ let AegovDrawer = class AegovDrawer {
693
1564
  this.el = r.nativeElement;
694
1565
  }
695
1566
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovDrawer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
696
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovDrawer, isStandalone: true, selector: "aegov-drawer", inputs: { animation: "animation", fieldId: "fieldId", isCloseWithOverlay: "isCloseWithOverlay", isOpen: "isOpen", isOverlay: "isOverlay", isPadding: "isPadding", isPinned: "isPinned", isPortal: "isPortal", isPreventScroll: "isPreventScroll", label: "label", overlayOpacity: "overlayOpacity", position: "position", size: "size" }, outputs: { aegovDrawerOpen: "aegovDrawerOpen", aegovDrawerClose: "aegovDrawerClose", aegovDrawerBeforeClose: "aegovDrawerBeforeClose", aegovDrawerBackdropClick: "aegovDrawerBackdropClick", aegovDrawerEscapePress: "aegovDrawerEscapePress" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1567
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovDrawer, isStandalone: true, selector: "aegov-drawer", inputs: { animation: "animation", fieldId: "fieldId", isCloseWithOverlay: ["isCloseWithOverlay", "isCloseWithOverlay", nullableBooleanAttribute], isOpen: ["isOpen", "isOpen", nullableBooleanAttribute], isOverlay: ["isOverlay", "isOverlay", nullableBooleanAttribute], isPadding: ["isPadding", "isPadding", nullableBooleanAttribute], isPinned: ["isPinned", "isPinned", nullableBooleanAttribute], isPortal: ["isPortal", "isPortal", nullableBooleanAttribute], isPreventScroll: ["isPreventScroll", "isPreventScroll", nullableBooleanAttribute], label: "label", overlayOpacity: "overlayOpacity", position: "position", size: "size" }, outputs: { aegovDrawerOpen: "aegovDrawerOpen", aegovDrawerClose: "aegovDrawerClose", aegovDrawerBeforeClose: "aegovDrawerBeforeClose", aegovDrawerBackdropClick: "aegovDrawerBackdropClick", aegovDrawerEscapePress: "aegovDrawerEscapePress" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
697
1568
  };
698
1569
  AegovDrawer = __decorate([
699
1570
  ProxyCmp({
@@ -709,7 +1580,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
709
1580
  changeDetection: ChangeDetectionStrategy.OnPush,
710
1581
  template: '<ng-content></ng-content>',
711
1582
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
712
- inputs: ['animation', 'fieldId', 'isCloseWithOverlay', 'isOpen', 'isOverlay', 'isPadding', 'isPinned', 'isPortal', 'isPreventScroll', 'label', 'overlayOpacity', 'position', 'size'],
1583
+ inputs: ['animation', 'fieldId', { name: 'isCloseWithOverlay', transform: nullableBooleanAttribute }, { name: 'isOpen', transform: nullableBooleanAttribute }, { name: 'isOverlay', transform: nullableBooleanAttribute }, { name: 'isPadding', transform: nullableBooleanAttribute }, { name: 'isPinned', transform: nullableBooleanAttribute }, { name: 'isPortal', transform: nullableBooleanAttribute }, { name: 'isPreventScroll', transform: nullableBooleanAttribute }, 'label', 'overlayOpacity', 'position', 'size'],
713
1584
  outputs: ['aegovDrawerOpen', 'aegovDrawerClose', 'aegovDrawerBeforeClose', 'aegovDrawerBackdropClick', 'aegovDrawerEscapePress'],
714
1585
  }]
715
1586
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovDrawerOpen: [{
@@ -726,6 +1597,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
726
1597
  let AegovDropdown = class AegovDropdown {
727
1598
  z;
728
1599
  el;
1600
+ /**
1601
+ * Unique ID for the dropdown menu element. Auto-generated if not provided.
1602
+ The trigger element receives a derived ID `${fieldId}-trigger` for ARIA linkage.
1603
+ */
1604
+ set fieldId(_) { }
1605
+ ;
1606
+ /**
1607
+ * Trigger type for showing the dropdown @default 'click'
1608
+ */
1609
+ set trigger(_) { }
1610
+ ;
1611
+ /**
1612
+ * Controls Tab key behaviour when the dropdown is open.
1613
+
1614
+ - `'menu-button'` (default): Tab and Shift+Tab trap focus inside the open
1615
+ menu, cycling through its items with wraparound — identical to
1616
+ ArrowDown/ArrowUp. Use this for action menus, settings menus, and other
1617
+ non-navigation dropdowns.
1618
+
1619
+ - `'disclosure'`: Tab moves focus through the links inside the open menu,
1620
+ then closes it when focus leaves the last item — follows the WAI-ARIA
1621
+ Disclosure Navigation Hybrid pattern. Set automatically by
1622
+ `aegov-navbar-item` when the dropdown is used as a nav sub-menu. @default 'menu-button'
1623
+ */
1624
+ set tabBehavior(_) { }
1625
+ ;
1626
+ /**
1627
+ * Position of the dropdown relative to the trigger element @default 'bottom'
1628
+ */
1629
+ set position(_) { }
1630
+ ;
1631
+ /**
1632
+ * Alignment of the dropdown @default 'start'
1633
+ */
1634
+ set align(_) { }
1635
+ ;
1636
+ /**
1637
+ * Gap between dropdown and trigger element (in pixels) @default 8
1638
+ */
1639
+ set gap(_) { }
1640
+ ;
1641
+ /**
1642
+ * Additional offset for dropdown positioning (in pixels) @default 0
1643
+ */
1644
+ set offset(_) { }
1645
+ ;
1646
+ /**
1647
+ * Whether the dropdown is disabled @default false
1648
+ */
1649
+ set isDisabled(_) { }
1650
+ ;
1651
+ /**
1652
+ * Delay before showing dropdown (in milliseconds) @default 200
1653
+ */
1654
+ set delayStart(_) { }
1655
+ ;
1656
+ /**
1657
+ * Delay before hiding dropdown (in milliseconds) @default 0
1658
+ */
1659
+ set delayEnd(_) { }
1660
+ ;
729
1661
  aegovDropdownOpen = new EventEmitter();
730
1662
  aegovDropdownClose = new EventEmitter();
731
1663
  constructor(c, r, z) {
@@ -734,7 +1666,7 @@ let AegovDropdown = class AegovDropdown {
734
1666
  this.el = r.nativeElement;
735
1667
  }
736
1668
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
737
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovDropdown, isStandalone: true, selector: "aegov-dropdown", inputs: { align: "align", delayEnd: "delayEnd", delayStart: "delayStart", fieldId: "fieldId", gap: "gap", isDisabled: "isDisabled", offset: "offset", position: "position", tabBehavior: "tabBehavior", trigger: "trigger" }, outputs: { aegovDropdownOpen: "aegovDropdownOpen", aegovDropdownClose: "aegovDropdownClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1669
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovDropdown, isStandalone: true, selector: "aegov-dropdown", inputs: { align: "align", delayEnd: ["delayEnd", "delayEnd", nullableNumberAttribute], delayStart: ["delayStart", "delayStart", nullableNumberAttribute], fieldId: "fieldId", gap: ["gap", "gap", nullableNumberAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], offset: ["offset", "offset", nullableNumberAttribute], position: "position", tabBehavior: "tabBehavior", trigger: "trigger" }, outputs: { aegovDropdownOpen: "aegovDropdownOpen", aegovDropdownClose: "aegovDropdownClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
738
1670
  };
739
1671
  AegovDropdown = __decorate([
740
1672
  ProxyCmp({
@@ -750,7 +1682,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
750
1682
  changeDetection: ChangeDetectionStrategy.OnPush,
751
1683
  template: '<ng-content></ng-content>',
752
1684
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
753
- inputs: ['align', 'delayEnd', 'delayStart', 'fieldId', 'gap', 'isDisabled', 'offset', 'position', 'tabBehavior', 'trigger'],
1685
+ inputs: ['align', { name: 'delayEnd', transform: nullableNumberAttribute }, { name: 'delayStart', transform: nullableNumberAttribute }, 'fieldId', { name: 'gap', transform: nullableNumberAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'offset', transform: nullableNumberAttribute }, 'position', 'tabBehavior', 'trigger'],
754
1686
  outputs: ['aegovDropdownOpen', 'aegovDropdownClose'],
755
1687
  }]
756
1688
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovDropdownOpen: [{
@@ -761,6 +1693,94 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
761
1693
  let AegovFileupload = class AegovFileupload {
762
1694
  z;
763
1695
  el;
1696
+ /**
1697
+ * Unique field ID. Auto-generated if not provided.
1698
+ */
1699
+ set fieldId(_) { }
1700
+ ;
1701
+ /**
1702
+ * Variant style: 'default' (styled input + button), 'button' (hidden input, label-as-button),
1703
+ or 'dropzone' (drag-and-drop area). @default 'default'
1704
+ */
1705
+ set appearance(_) { }
1706
+ ;
1707
+ /**
1708
+ * Component size. @default 'base'
1709
+ */
1710
+ set size(_) { }
1711
+ ;
1712
+ /**
1713
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
1714
+ */
1715
+ set variant(_) { }
1716
+ ;
1717
+ /**
1718
+ * Allow multiple file selection. @default false
1719
+ */
1720
+ set isMultiple(_) { }
1721
+ ;
1722
+ /**
1723
+ * Accepted file types (e.g. ".pdf,.jpg,image/*").
1724
+ */
1725
+ set accept(_) { }
1726
+ ;
1727
+ /**
1728
+ * Maximum file size in bytes.
1729
+ */
1730
+ set maxFileSize(_) { }
1731
+ ;
1732
+ /**
1733
+ * Maximum number of files (multiple mode only). No limit by default.
1734
+ */
1735
+ set maxFiles(_) { }
1736
+ ;
1737
+ /**
1738
+ * Disables the file upload. @default false
1739
+ */
1740
+ set isDisabled(_) { }
1741
+ ;
1742
+ /**
1743
+ * Marks the field as required. @default false
1744
+ */
1745
+ set isRequired(_) { }
1746
+ ;
1747
+ /**
1748
+ * Visual + a11y invalid state. See §2.3. @default false
1749
+ */
1750
+ set isInvalid(_) { }
1751
+ ;
1752
+ /**
1753
+ * Inline error message. Use `error` slot for rich markup. @default ''
1754
+ */
1755
+ set errorMessage(_) { }
1756
+ ;
1757
+ /**
1758
+ * Form field name.
1759
+ */
1760
+ set name(_) { }
1761
+ ;
1762
+ /**
1763
+ * Label text displayed above the control.
1764
+ */
1765
+ set label(_) { }
1766
+ ;
1767
+ /**
1768
+ * Helper hint text displayed below the label. Renamed from `description` per §6.6
1769
+ (pre-production rename, no compat shim). Hidden when an error is shown.
1770
+ */
1771
+ set hint(_) { }
1772
+ ;
1773
+ /**
1774
+ * Custom helper text for allowed file types. Overrides auto-generated text from `accept`.
1775
+ Shown alongside the hint, distinct from validation error text.
1776
+ */
1777
+ set labelHelp(_) { }
1778
+ ;
1779
+ /**
1780
+ * Custom text for the browse/trigger button.
1781
+ */
1782
+ set labelButton(_) { }
1783
+ ;
764
1784
  aegovFileuploadChange = new EventEmitter();
765
1785
  aegovFileuploadRemove = new EventEmitter();
766
1786
  aegovValidate = new EventEmitter();
@@ -770,7 +1790,7 @@ let AegovFileupload = class AegovFileupload {
770
1790
  this.el = r.nativeElement;
771
1791
  }
772
1792
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovFileupload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
773
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovFileupload, isStandalone: true, selector: "aegov-fileupload", inputs: { accept: "accept", appearance: "appearance", errorMessage: "errorMessage", fieldId: "fieldId", hint: "hint", isDisabled: "isDisabled", isInvalid: "isInvalid", isMultiple: "isMultiple", isRequired: "isRequired", label: "label", labelButton: "labelButton", labelHelp: "labelHelp", maxFileSize: "maxFileSize", maxFiles: "maxFiles", name: "name", size: "size", variant: "variant" }, outputs: { aegovFileuploadChange: "aegovFileuploadChange", aegovFileuploadRemove: "aegovFileuploadRemove", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1793
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovFileupload, isStandalone: true, selector: "aegov-fileupload", inputs: { accept: "accept", appearance: "appearance", errorMessage: "errorMessage", fieldId: "fieldId", hint: "hint", isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isMultiple: ["isMultiple", "isMultiple", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], label: "label", labelButton: "labelButton", labelHelp: "labelHelp", maxFileSize: ["maxFileSize", "maxFileSize", nullableNumberAttribute], maxFiles: ["maxFiles", "maxFiles", nullableNumberAttribute], name: "name", size: "size", variant: "variant" }, outputs: { aegovFileuploadChange: "aegovFileuploadChange", aegovFileuploadRemove: "aegovFileuploadRemove", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
774
1794
  };
775
1795
  AegovFileupload = __decorate([
776
1796
  ProxyCmp({
@@ -786,7 +1806,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
786
1806
  changeDetection: ChangeDetectionStrategy.OnPush,
787
1807
  template: '<ng-content></ng-content>',
788
1808
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
789
- inputs: ['accept', 'appearance', 'errorMessage', 'fieldId', 'hint', 'isDisabled', 'isInvalid', 'isMultiple', 'isRequired', 'label', 'labelButton', 'labelHelp', 'maxFileSize', 'maxFiles', 'name', 'size', 'variant'],
1809
+ inputs: ['accept', 'appearance', 'errorMessage', 'fieldId', 'hint', { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isMultiple', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, 'label', 'labelButton', 'labelHelp', { name: 'maxFileSize', transform: nullableNumberAttribute }, { name: 'maxFiles', transform: nullableNumberAttribute }, 'name', 'size', 'variant'],
790
1810
  outputs: ['aegovFileuploadChange', 'aegovFileuploadRemove', 'aegovValidate'],
791
1811
  }]
792
1812
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovFileuploadChange: [{
@@ -799,6 +1819,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
799
1819
  let AegovFooter = class AegovFooter {
800
1820
  z;
801
1821
  el;
1822
+ /**
1823
+ * Controls how footer link columns behave below the `sm` breakpoint (640px)
1824
+ — the point at which the reference footer block stops being collapsible
1825
+ altogether, well before the grid switches from 2 to 4 columns at `lg`.
1826
+ - "collapsible" (default): each column's content toggles below `sm`, always expanded at `sm+`.
1827
+ - "flat": columns are always expanded, at every breakpoint.
1828
+ Author each column as a plain title element + content — no extra markup needed for either value. @default 'collapsible'
1829
+ */
1830
+ set navVariant(_) { }
1831
+ ;
1832
+ /**
1833
+ * Forwarded to the embedded `aegov-footer-highlights`.
1834
+ */
1835
+ set entityContactNumber(_) { }
1836
+ ;
1837
+ /**
1838
+ * Forwarded to the embedded `aegov-footer-highlights`.
1839
+ */
1840
+ set entityContactNumberLabel(_) { }
1841
+ ;
1842
+ /**
1843
+ * Forwarded to the embedded `aegov-footer-highlights`.
1844
+ */
1845
+ set entityEmail(_) { }
1846
+ ;
1847
+ /**
1848
+ * Forwarded to the embedded `aegov-footer-highlights`.
1849
+ */
1850
+ set entityEmailLabel(_) { }
1851
+ ;
1852
+ /**
1853
+ * Forwarded to the embedded `aegov-footer-highlights`.
1854
+ */
1855
+ set entityContactHref(_) { }
1856
+ ;
1857
+ /**
1858
+ * Link to the entity's app on Apple's App Store. When set (alone or with
1859
+ `googlePlayHref`), a "Download our app" badge block renders in the
1860
+ `brand` column, below the slotted logo/description/social links.
1861
+ Entirely optional — nothing renders unless at least one of the two is
1862
+ provided.
1863
+ */
1864
+ set appStoreHref(_) { }
1865
+ ;
1866
+ /**
1867
+ * Link to the entity's app on Google Play, shown alongside `appStoreHref`
1868
+ in the same "Download our app" block.
1869
+ */
1870
+ set googlePlayHref(_) { }
1871
+ ;
802
1872
  constructor(c, r, z) {
803
1873
  this.z = z;
804
1874
  c.detach();
@@ -826,6 +1896,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
826
1896
  let AegovFooterHighlights = class AegovFooterHighlights {
827
1897
  z;
828
1898
  el;
1899
+ /**
1900
+ * The entity's own contact number (e.g. "800 8877"), shown in the fixed
1901
+ "Contact us" card alongside the Tawasul 171/WhatsApp channels. Entirely
1902
+ optional and site-specific — nothing renders unless it's provided.
1903
+ */
1904
+ set entityContactNumber(_) { }
1905
+ ;
1906
+ /**
1907
+ * Overrides the label shown before `entityContactNumber` (defaults to the
1908
+ bilingual "Toll free"/"الرقم المجاني" text used elsewhere in this block).
1909
+ */
1910
+ set entityContactNumberLabel(_) { }
1911
+ ;
1912
+ /**
1913
+ * The entity's own contact email, shown below the contact number. Entirely
1914
+ optional — nothing renders unless it's provided.
1915
+ */
1916
+ set entityEmail(_) { }
1917
+ ;
1918
+ /**
1919
+ * Overrides the label shown before `entityEmail` (defaults to the
1920
+ bilingual "Email"/"البريد الإلكتروني" text).
1921
+ */
1922
+ set entityEmailLabel(_) { }
1923
+ ;
1924
+ /**
1925
+ * Target for the fixed "Contact us" link at the end of the card. The link
1926
+ text itself is fixed — only the destination is site-specific — so
1927
+ nothing renders unless this is provided.
1928
+ */
1929
+ set entityContactHref(_) { }
1930
+ ;
829
1931
  constructor(c, r, z) {
830
1932
  this.z = z;
831
1933
  c.detach();
@@ -853,13 +1955,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
853
1955
  let AegovFormField = class AegovFormField {
854
1956
  z;
855
1957
  el;
1958
+ /**
1959
+ * Unique ID for the form-field wrapper. Auto-generated if not provided.
1960
+ */
1961
+ set fieldId(_) { }
1962
+ ;
1963
+ /**
1964
+ * Wrapper-level invalid state. Cascades to the first form-control descendant if the
1965
+ child has not set its own value; setting it back to `false` clears what it
1966
+ cascaded. See validation-engine-addon.md §2.7. @default false
1967
+ */
1968
+ set isInvalid(_) { }
1969
+ ;
1970
+ /**
1971
+ * Wrapper-level error message — cascaded to first form-control descendant unless it has its own; changing or clearing it updates the cascaded value. @default ''
1972
+ */
1973
+ set errorMessage(_) { }
1974
+ ;
1975
+ /**
1976
+ * Wrapper-level hint — cascaded to first form-control descendant unless it has its own; changing or clearing it updates the cascaded value. @default ''
1977
+ */
1978
+ set hint(_) { }
1979
+ ;
1980
+ /**
1981
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Cascades to first form-control descendant.
1982
+ */
1983
+ set variant(_) { }
1984
+ ;
1985
+ /**
1986
+ * Additional CSS classes to apply.
1987
+ */
1988
+ set extraClass(_) { }
1989
+ ;
856
1990
  constructor(c, r, z) {
857
1991
  this.z = z;
858
1992
  c.detach();
859
1993
  this.el = r.nativeElement;
860
1994
  }
861
1995
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovFormField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
862
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovFormField, isStandalone: true, selector: "aegov-form-field", inputs: { errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isInvalid: "isInvalid", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1996
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovFormField, isStandalone: true, selector: "aegov-form-field", inputs: { errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
863
1997
  };
864
1998
  AegovFormField = __decorate([
865
1999
  ProxyCmp({
@@ -874,12 +2008,74 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
874
2008
  changeDetection: ChangeDetectionStrategy.OnPush,
875
2009
  template: '<ng-content></ng-content>',
876
2010
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
877
- inputs: ['errorMessage', 'extraClass', 'fieldId', 'hint', 'isInvalid', 'variant'],
2011
+ inputs: ['errorMessage', 'extraClass', 'fieldId', 'hint', { name: 'isInvalid', transform: nullableBooleanAttribute }, 'variant'],
878
2012
  }]
879
2013
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
880
2014
  let AegovHeader = class AegovHeader {
881
2015
  z;
882
2016
  el;
2017
+ /**
2018
+ * The variant of the header. Determines the layout and style.
2019
+ - "ministry": Header for ministry-level entities
2020
+ - "authority": Header for authority-level entities @default 'ministry'
2021
+ */
2022
+ set variant(_) { }
2023
+ ;
2024
+ /**
2025
+ * The name of the government entity. Required. Forwarded to the embedded aegov-header-banner.
2026
+ */
2027
+ set entityName(_) { }
2028
+ ;
2029
+ /**
2030
+ * The domain/URL of the government entity. Required. Forwarded to the embedded aegov-header-banner.
2031
+ */
2032
+ set entityDomain(_) { }
2033
+ ;
2034
+ /**
2035
+ * 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.
2036
+ */
2037
+ set skipContentContainer(_) { }
2038
+ ;
2039
+ /**
2040
+ * Accessible name for the logo anchor. When provided, applied as aria-label on the <a> element.
2041
+ */
2042
+ set logoLabel(_) { }
2043
+ ;
2044
+ /**
2045
+ * Accessible name for the menu toggle, and the accessible name of the drawer it opens. Defaults to "Menu" / "القائمة".
2046
+ */
2047
+ set labelMenu(_) { }
2048
+ ;
2049
+ /**
2050
+ * Accessible name for the close button inside the menu drawer. Defaults to "Close menu" / "إغلاق القائمة".
2051
+ */
2052
+ set labelMenuClose(_) { }
2053
+ ;
2054
+ /**
2055
+ * Breakpoint at which the `navigation` slot appears and the menu toggle
2056
+ disappears. Below it, navigation is hidden and the toggle opens the drawer.
2057
+ `"lg"` (1024px) by default; `"md"` is the narrowest allowed. @default 'lg'
2058
+ */
2059
+ set collapseAt(_) { }
2060
+ ;
2061
+ /**
2062
+ * Panel width of the menu drawer. Below 640px all widths collapse to full width. @default 'base'
2063
+ */
2064
+ set drawerSize(_) { }
2065
+ ;
2066
+ /**
2067
+ * Whether the main bar pins to the top of the viewport on scroll. The
2068
+ `aegov-header-banner` above it scrolls away; once it has, the bar gains a
2069
+ translucent blurred background and a shadow.
2070
+
2071
+ Implemented by making the host itself sticky with a negative `top` equal to
2072
+ the banner's height — `position: sticky` on the bar alone cannot work,
2073
+ because a sticky element is confined to its parent's box and would unstick
2074
+ as soon as the header scrolled past. Like any sticky element, an ancestor
2075
+ with `overflow: hidden` / `auto` in the consumer's page breaks it. @default false
2076
+ */
2077
+ set isSticky(_) { }
2078
+ ;
883
2079
  aegovHeaderMenuOpen = new EventEmitter();
884
2080
  aegovHeaderMenuClose = new EventEmitter();
885
2081
  aegovHeaderStuck = new EventEmitter();
@@ -890,7 +2086,7 @@ let AegovHeader = class AegovHeader {
890
2086
  this.el = r.nativeElement;
891
2087
  }
892
2088
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
893
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovHeader, isStandalone: true, selector: "aegov-header", inputs: { collapseAt: "collapseAt", drawerSize: "drawerSize", entityDomain: "entityDomain", entityName: "entityName", isSticky: "isSticky", labelMenu: "labelMenu", labelMenuClose: "labelMenuClose", logoLabel: "logoLabel", skipContentContainer: "skipContentContainer", variant: "variant" }, outputs: { aegovHeaderMenuOpen: "aegovHeaderMenuOpen", aegovHeaderMenuClose: "aegovHeaderMenuClose", aegovHeaderStuck: "aegovHeaderStuck", aegovHeaderUnstuck: "aegovHeaderUnstuck" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2089
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovHeader, isStandalone: true, selector: "aegov-header", inputs: { collapseAt: "collapseAt", drawerSize: "drawerSize", entityDomain: "entityDomain", entityName: "entityName", isSticky: ["isSticky", "isSticky", nullableBooleanAttribute], labelMenu: "labelMenu", labelMenuClose: "labelMenuClose", logoLabel: "logoLabel", skipContentContainer: "skipContentContainer", variant: "variant" }, outputs: { aegovHeaderMenuOpen: "aegovHeaderMenuOpen", aegovHeaderMenuClose: "aegovHeaderMenuClose", aegovHeaderStuck: "aegovHeaderStuck", aegovHeaderUnstuck: "aegovHeaderUnstuck" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
894
2090
  };
895
2091
  AegovHeader = __decorate([
896
2092
  ProxyCmp({
@@ -906,7 +2102,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
906
2102
  changeDetection: ChangeDetectionStrategy.OnPush,
907
2103
  template: '<ng-content></ng-content>',
908
2104
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
909
- inputs: ['collapseAt', 'drawerSize', 'entityDomain', 'entityName', 'isSticky', 'labelMenu', 'labelMenuClose', 'logoLabel', 'skipContentContainer', 'variant'],
2105
+ inputs: ['collapseAt', 'drawerSize', 'entityDomain', 'entityName', { name: 'isSticky', transform: nullableBooleanAttribute }, 'labelMenu', 'labelMenuClose', 'logoLabel', 'skipContentContainer', 'variant'],
910
2106
  outputs: ['aegovHeaderMenuOpen', 'aegovHeaderMenuClose', 'aegovHeaderStuck', 'aegovHeaderUnstuck'],
911
2107
  }]
912
2108
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovHeaderMenuOpen: [{
@@ -921,6 +2117,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
921
2117
  let AegovHeaderBanner = class AegovHeaderBanner {
922
2118
  z;
923
2119
  el;
2120
+ /**
2121
+ * The name of the government entity. Required.
2122
+ */
2123
+ set entityName(_) { }
2124
+ ;
2125
+ /**
2126
+ * The domain/URL of the government entity. Required.
2127
+ */
2128
+ set entityDomain(_) { }
2129
+ ;
2130
+ /**
2131
+ * 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.
2132
+ */
2133
+ set skipContentContainer(_) { }
2134
+ ;
924
2135
  constructor(c, r, z) {
925
2136
  this.z = z;
926
2137
  c.detach();
@@ -948,6 +2159,96 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
948
2159
  let AegovInput = class AegovInput {
949
2160
  z;
950
2161
  el;
2162
+ /**
2163
+ * Unique ID for the native input element. Auto-generated if not provided.
2164
+ */
2165
+ set fieldId(_) { }
2166
+ ;
2167
+ /**
2168
+ * The type of the input field. @default 'text'
2169
+ */
2170
+ set type(_) { }
2171
+ ;
2172
+ /**
2173
+ * The size of the input field. @default 'base'
2174
+ */
2175
+ set size(_) { }
2176
+ ;
2177
+ /**
2178
+ * Colour family. Drives idle ring, value text, and accent hover. Focus ring stays camel; error stays aered regardless.
2179
+ */
2180
+ set variant(_) { }
2181
+ ;
2182
+ /**
2183
+ * Whether the input is disabled. @default false
2184
+ */
2185
+ set isDisabled(_) { }
2186
+ ;
2187
+ /**
2188
+ * Whether the input is readonly. @default false
2189
+ */
2190
+ set isReadonly(_) { }
2191
+ ;
2192
+ /**
2193
+ * Placeholder text for the input.
2194
+ */
2195
+ set placeholder(_) { }
2196
+ ;
2197
+ /**
2198
+ * The current value of the input. @default ''
2199
+ */
2200
+ set value(_) { }
2201
+ ;
2202
+ /**
2203
+ * The name attribute for the input. Reflected so ElementInternals can read it for form submission.
2204
+ */
2205
+ set name(_) { }
2206
+ ;
2207
+ /**
2208
+ * Whether the input is required. @default false
2209
+ */
2210
+ set isRequired(_) { }
2211
+ ;
2212
+ /**
2213
+ * Show a toggle button to reveal/hide password. Only applies when type="password". @default false
2214
+ */
2215
+ set isRevealable(_) { }
2216
+ ;
2217
+ /**
2218
+ * Show a copy button to copy the input value to clipboard. Only applies when readonly. @default false
2219
+ */
2220
+ set isCopyable(_) { }
2221
+ ;
2222
+ /**
2223
+ * Visual + a11y invalid state. Toggles `aria-invalid="true"` on the inner input
2224
+ and adds the `is-invalid` class on the host. See validation-engine-addon.md §2.3. @default false
2225
+ */
2226
+ set isInvalid(_) { }
2227
+ ;
2228
+ /**
2229
+ * Inline error message rendered below the control when `isInvalid` is true.
2230
+ Auto-wires `aria-describedby` on the inner input. Use the `error` slot for
2231
+ richer markup. @default ''
2232
+ */
2233
+ set errorMessage(_) { }
2234
+ ;
2235
+ /**
2236
+ * Helper hint rendered below the control. Hidden when an error is shown so the
2237
+ two text regions don't compete for the user's attention. Use the `hint` slot
2238
+ for richer markup. @default ''
2239
+ */
2240
+ set hint(_) { }
2241
+ ;
2242
+ /**
2243
+ * Additional CSS classes to apply.
2244
+
2245
+ This component renders in a real shadow root, which normally blocks the page's CSS
2246
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
2247
+ in from the page's own stylesheets at runtime and work as expected; other utilities
2248
+ (colour, border, typography, etc.) still have no effect — see #35.
2249
+ */
2250
+ set extraClass(_) { }
2251
+ ;
951
2252
  aegovInputChange = new EventEmitter();
952
2253
  aegovInputValue = new EventEmitter();
953
2254
  aegovInputFocus = new EventEmitter();
@@ -959,7 +2260,7 @@ let AegovInput = class AegovInput {
959
2260
  this.el = r.nativeElement;
960
2261
  }
961
2262
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
962
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovInput, isStandalone: true, selector: "aegov-input", inputs: { errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isCopyable: "isCopyable", isDisabled: "isDisabled", isInvalid: "isInvalid", isReadonly: "isReadonly", isRequired: "isRequired", isRevealable: "isRevealable", name: "name", placeholder: "placeholder", size: "size", type: "type", value: "value", variant: "variant" }, outputs: { aegovInputChange: "aegovInputChange", aegovInputValue: "aegovInputValue", aegovInputFocus: "aegovInputFocus", aegovInputBlur: "aegovInputBlur", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2263
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovInput, isStandalone: true, selector: "aegov-input", inputs: { errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isCopyable: ["isCopyable", "isCopyable", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isReadonly: ["isReadonly", "isReadonly", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], isRevealable: ["isRevealable", "isRevealable", nullableBooleanAttribute], name: "name", placeholder: "placeholder", size: "size", type: "type", value: "value", variant: "variant" }, outputs: { aegovInputChange: "aegovInputChange", aegovInputValue: "aegovInputValue", aegovInputFocus: "aegovInputFocus", aegovInputBlur: "aegovInputBlur", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
963
2264
  };
964
2265
  AegovInput = __decorate([
965
2266
  ProxyCmp({
@@ -975,7 +2276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
975
2276
  changeDetection: ChangeDetectionStrategy.OnPush,
976
2277
  template: '<ng-content></ng-content>',
977
2278
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
978
- inputs: ['errorMessage', 'extraClass', 'fieldId', 'hint', 'isCopyable', 'isDisabled', 'isInvalid', 'isReadonly', 'isRequired', 'isRevealable', 'name', 'placeholder', 'size', 'type', 'value', 'variant'],
2279
+ inputs: ['errorMessage', 'extraClass', 'fieldId', 'hint', { name: 'isCopyable', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isReadonly', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, { name: 'isRevealable', transform: nullableBooleanAttribute }, 'name', 'placeholder', 'size', 'type', 'value', 'variant'],
979
2280
  outputs: ['aegovInputChange', 'aegovInputValue', 'aegovInputFocus', 'aegovInputBlur', 'aegovValidate'],
980
2281
  }]
981
2282
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovInputChange: [{
@@ -992,6 +2293,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
992
2293
  let AegovInputGroup = class AegovInputGroup {
993
2294
  z;
994
2295
  el;
2296
+ /**
2297
+ * The size of the input group. Propagated to child aegov-input and aegov-button. @default 'base'
2298
+ */
2299
+ set size(_) { }
2300
+ ;
2301
+ /**
2302
+ * Text to display as a prefix addon before the input.
2303
+ */
2304
+ set addonPrefix(_) { }
2305
+ ;
2306
+ /**
2307
+ * Text to display as a suffix addon after the input.
2308
+ */
2309
+ set addonSuffix(_) { }
2310
+ ;
2311
+ /**
2312
+ * Accessible label for the group. Sets `aria-label` on the group wrapper.
2313
+ Use this to describe the purpose of a combined phone/URL/similar input group.
2314
+ */
2315
+ set groupLabel(_) { }
2316
+ ;
2317
+ /**
2318
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
2319
+ */
2320
+ set variant(_) { }
2321
+ ;
2322
+ /**
2323
+ * Additional CSS classes to apply.
2324
+ */
2325
+ set extraClass(_) { }
2326
+ ;
995
2327
  constructor(c, r, z) {
996
2328
  this.z = z;
997
2329
  c.detach();
@@ -1019,6 +2351,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1019
2351
  let AegovLabel = class AegovLabel {
1020
2352
  z;
1021
2353
  el;
2354
+ /**
2355
+ * Unique ID for the label element. Auto-generated if not provided.
2356
+ */
2357
+ set fieldId(_) { }
2358
+ ;
2359
+ /**
2360
+ * The ID of the form element this label is for. Automatically set by parent aegov-form-field.
2361
+ */
2362
+ set htmlFor(_) { }
2363
+ ;
2364
+ /**
2365
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
2366
+ */
2367
+ set variant(_) { }
2368
+ ;
2369
+ /**
2370
+ * Additional CSS classes to apply.
2371
+ */
2372
+ set extraClass(_) { }
2373
+ ;
1022
2374
  constructor(c, r, z) {
1023
2375
  this.z = z;
1024
2376
  c.detach();
@@ -1046,6 +2398,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1046
2398
  let AegovLink = class AegovLink {
1047
2399
  z;
1048
2400
  el;
2401
+ /**
2402
+ * Unique ID for the inner anchor element. Auto-generated if not provided.
2403
+ */
2404
+ set fieldId(_) { }
2405
+ ;
2406
+ /**
2407
+ * The URL that the link points to. @required undefined
2408
+ */
2409
+ set href(_) { }
2410
+ ;
2411
+ /**
2412
+ * Target attribute for the link (_blank, _self, _parent, _top).
2413
+ */
2414
+ set target(_) { }
2415
+ ;
2416
+ /**
2417
+ * Rel attribute for the link (e.g., "noopener noreferrer" for external links).
2418
+ */
2419
+ set rel(_) { }
2420
+ ;
2421
+ /**
2422
+ * Additional CSS classes to apply to the link.
2423
+ */
2424
+ set extraClass(_) { }
2425
+ ;
2426
+ /**
2427
+ * Button-style color variant. Setting this opts into button styling.
2428
+ */
2429
+ set variant(_) { }
2430
+ ;
2431
+ /**
2432
+ * Button-style appearance. Setting this opts into button styling.
2433
+ */
2434
+ set appearance(_) { }
2435
+ ;
2436
+ /**
2437
+ * Button-style size (xs/sm/base/lg/xl, optionally responsive).
2438
+ */
2439
+ set size(_) { }
2440
+ ;
2441
+ /**
2442
+ * Render as icon-only (square). Requires a button-style appearance. @default false
2443
+ */
2444
+ set isIcon(_) { }
2445
+ ;
2446
+ /**
2447
+ * Stretch to fill container width. @default false
2448
+ */
2449
+ set isFull(_) { }
2450
+ ;
2451
+ /**
2452
+ * Bold text. @default true
2453
+ */
2454
+ set isBold(_) { }
2455
+ ;
2456
+ /**
2457
+ * Disable navigation and apply disabled styling. Adds `aria-disabled="true"`,
2458
+ removes the link from tab order, and prevents default click navigation.
2459
+ Native `<a>` does not support `disabled`; this is a polyfill. @default false
2460
+ */
2461
+ set isDisabled(_) { }
2462
+ ;
1049
2463
  aegovLinkClick = new EventEmitter();
1050
2464
  constructor(c, r, z) {
1051
2465
  this.z = z;
@@ -1053,7 +2467,7 @@ let AegovLink = class AegovLink {
1053
2467
  this.el = r.nativeElement;
1054
2468
  }
1055
2469
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovLink, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1056
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovLink, isStandalone: true, selector: "aegov-link", inputs: { appearance: "appearance", extraClass: "extraClass", fieldId: "fieldId", href: "href", isBold: "isBold", isDisabled: "isDisabled", isFull: "isFull", isIcon: "isIcon", rel: "rel", size: "size", target: "target", variant: "variant" }, outputs: { aegovLinkClick: "aegovLinkClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2470
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovLink, isStandalone: true, selector: "aegov-link", inputs: { appearance: "appearance", extraClass: "extraClass", fieldId: "fieldId", href: "href", isBold: ["isBold", "isBold", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isFull: ["isFull", "isFull", nullableBooleanAttribute], isIcon: ["isIcon", "isIcon", nullableBooleanAttribute], rel: "rel", size: "size", target: "target", variant: "variant" }, outputs: { aegovLinkClick: "aegovLinkClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1057
2471
  };
1058
2472
  AegovLink = __decorate([
1059
2473
  ProxyCmp({
@@ -1068,7 +2482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1068
2482
  changeDetection: ChangeDetectionStrategy.OnPush,
1069
2483
  template: '<ng-content></ng-content>',
1070
2484
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1071
- inputs: ['appearance', 'extraClass', 'fieldId', { name: 'href', required: true }, 'isBold', 'isDisabled', 'isFull', 'isIcon', 'rel', 'size', 'target', 'variant'],
2485
+ inputs: ['appearance', 'extraClass', 'fieldId', { name: 'href', required: true }, { name: 'isBold', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isFull', transform: nullableBooleanAttribute }, { name: 'isIcon', transform: nullableBooleanAttribute }, 'rel', 'size', 'target', 'variant'],
1072
2486
  outputs: ['aegovLinkClick'],
1073
2487
  }]
1074
2488
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovLinkClick: [{
@@ -1077,6 +2491,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1077
2491
  let AegovModal = class AegovModal {
1078
2492
  z;
1079
2493
  el;
2494
+ /**
2495
+ * Unique ID for the modal dialog element. Auto-generated if not provided.
2496
+ */
2497
+ set fieldId(_) { }
2498
+ ;
2499
+ /**
2500
+ * Whether the modal is currently open/visible @default false
2501
+ */
2502
+ set isOpen(_) { }
2503
+ ;
2504
+ /**
2505
+ * Whether clicking the overlay closes the modal @default true
2506
+ */
2507
+ set isCloseWithOverlay(_) { }
2508
+ ;
2509
+ /**
2510
+ * Whether to prevent body scroll when modal is open @default true
2511
+ */
2512
+ set isPreventScroll(_) { }
2513
+ ;
2514
+ /**
2515
+ * Overlay opacity level @default 'base'
2516
+ */
2517
+ set overlayOpacity(_) { }
2518
+ ;
2519
+ /**
2520
+ * Position of the modal on screen @default 'center'
2521
+ */
2522
+ set position(_) { }
2523
+ ;
2524
+ /**
2525
+ * Size: 'sm' (compact padding/radius), 'base' (default), 'lg' (generous padding/radius), or 'xl' (extra-wide). Mirrors aegov-card sizing tokens. @default 'base'
2526
+ */
2527
+ set size(_) { }
2528
+ ;
2529
+ /**
2530
+ * Whether to apply inner content padding. On by default; scales with size. @default true
2531
+ */
2532
+ set isPadding(_) { }
2533
+ ;
2534
+ /**
2535
+ * Accessible label for the dialog. Passed as `aria-label` on the dialog element.
2536
+ Required for screen readers unless you pass `aria-labelledby` pointing to a
2537
+ heading rendered inside the modal's slot.
2538
+ */
2539
+ set label(_) { }
2540
+ ;
1080
2541
  aegovModalOpen = new EventEmitter();
1081
2542
  aegovModalClose = new EventEmitter();
1082
2543
  aegovModalBeforeClose = new EventEmitter();
@@ -1088,7 +2549,7 @@ let AegovModal = class AegovModal {
1088
2549
  this.el = r.nativeElement;
1089
2550
  }
1090
2551
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1091
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovModal, isStandalone: true, selector: "aegov-modal", inputs: { fieldId: "fieldId", isCloseWithOverlay: "isCloseWithOverlay", isOpen: "isOpen", isPadding: "isPadding", isPreventScroll: "isPreventScroll", label: "label", overlayOpacity: "overlayOpacity", position: "position", size: "size" }, outputs: { aegovModalOpen: "aegovModalOpen", aegovModalClose: "aegovModalClose", aegovModalBeforeClose: "aegovModalBeforeClose", aegovModalBackdropClick: "aegovModalBackdropClick", aegovModalEscapePress: "aegovModalEscapePress" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2552
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovModal, isStandalone: true, selector: "aegov-modal", inputs: { fieldId: "fieldId", isCloseWithOverlay: ["isCloseWithOverlay", "isCloseWithOverlay", nullableBooleanAttribute], isOpen: ["isOpen", "isOpen", nullableBooleanAttribute], isPadding: ["isPadding", "isPadding", nullableBooleanAttribute], isPreventScroll: ["isPreventScroll", "isPreventScroll", nullableBooleanAttribute], label: "label", overlayOpacity: "overlayOpacity", position: "position", size: "size" }, outputs: { aegovModalOpen: "aegovModalOpen", aegovModalClose: "aegovModalClose", aegovModalBeforeClose: "aegovModalBeforeClose", aegovModalBackdropClick: "aegovModalBackdropClick", aegovModalEscapePress: "aegovModalEscapePress" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1092
2553
  };
1093
2554
  AegovModal = __decorate([
1094
2555
  ProxyCmp({
@@ -1104,7 +2565,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1104
2565
  changeDetection: ChangeDetectionStrategy.OnPush,
1105
2566
  template: '<ng-content></ng-content>',
1106
2567
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1107
- inputs: ['fieldId', 'isCloseWithOverlay', 'isOpen', 'isPadding', 'isPreventScroll', 'label', 'overlayOpacity', 'position', 'size'],
2568
+ inputs: ['fieldId', { name: 'isCloseWithOverlay', transform: nullableBooleanAttribute }, { name: 'isOpen', transform: nullableBooleanAttribute }, { name: 'isPadding', transform: nullableBooleanAttribute }, { name: 'isPreventScroll', transform: nullableBooleanAttribute }, 'label', 'overlayOpacity', 'position', 'size'],
1108
2569
  outputs: ['aegovModalOpen', 'aegovModalClose', 'aegovModalBeforeClose', 'aegovModalBackdropClick', 'aegovModalEscapePress'],
1109
2570
  }]
1110
2571
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovModalOpen: [{
@@ -1121,6 +2582,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1121
2582
  let AegovNavbar = class AegovNavbar {
1122
2583
  z;
1123
2584
  el;
2585
+ /**
2586
+ * Size of the navbar items. Accepts a Tailwind-style responsive string,
2587
+ e.g. `"sm md:base lg:lg"`, resolved against the active viewport width.
2588
+ The resolved token cascades to all aegov-navbar-item children. @default 'base'
2589
+ */
2590
+ set size(_) { }
2591
+ ;
2592
+ /**
2593
+ * Tailwind gap utility class applied between items, e.g. "gap-4", "gap-6", "gap-10". @default 'gap-3'
2594
+ */
2595
+ set gap(_) { }
2596
+ ;
2597
+ /**
2598
+ * Accessible label for the navigation landmark. Defaults to "Main navigation" (LTR) or "التنقل الرئيسي" (RTL). @default ''
2599
+ */
2600
+ set labelNav(_) { }
2601
+ ;
1124
2602
  constructor(c, r, z) {
1125
2603
  this.z = z;
1126
2604
  c.detach();
@@ -1148,13 +2626,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1148
2626
  let AegovNavbarItem = class AegovNavbarItem {
1149
2627
  z;
1150
2628
  el;
2629
+ /**
2630
+ * URL the item links to. If unset, item renders as a non-link span.
2631
+ */
2632
+ set href(_) { }
2633
+ ;
2634
+ /**
2635
+ * Anchor target attribute.
2636
+ */
2637
+ set target(_) { }
2638
+ ;
2639
+ /**
2640
+ * Anchor rel attribute.
2641
+ */
2642
+ set rel(_) { }
2643
+ ;
2644
+ /**
2645
+ * Mark this item as the current page. Sets `aria-current="page"`. @default false
2646
+ */
2647
+ set isActive(_) { }
2648
+ ;
2649
+ /**
2650
+ * Visually disabled, not clickable, removed from arrow-key cycle. @default false
2651
+ */
2652
+ set isDisabled(_) { }
2653
+ ;
2654
+ /**
2655
+ * Size token. Accepts a Tailwind-style responsive string (e.g.
2656
+ `"sm md:base lg:lg"`). Parent aegov-navbar sets this to its resolved
2657
+ value; standalone use also supports breakpoint syntax. @default 'base'
2658
+ */
2659
+ set size(_) { }
2660
+ ;
1151
2661
  constructor(c, r, z) {
1152
2662
  this.z = z;
1153
2663
  c.detach();
1154
2664
  this.el = r.nativeElement;
1155
2665
  }
1156
2666
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovNavbarItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1157
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovNavbarItem, isStandalone: true, selector: "aegov-navbar-item", inputs: { href: "href", isActive: "isActive", isDisabled: "isDisabled", rel: "rel", size: "size", target: "target" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2667
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovNavbarItem, isStandalone: true, selector: "aegov-navbar-item", inputs: { href: "href", isActive: ["isActive", "isActive", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], rel: "rel", size: "size", target: "target" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1158
2668
  };
1159
2669
  AegovNavbarItem = __decorate([
1160
2670
  ProxyCmp({
@@ -1169,19 +2679,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1169
2679
  changeDetection: ChangeDetectionStrategy.OnPush,
1170
2680
  template: '<ng-content></ng-content>',
1171
2681
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1172
- inputs: ['href', 'isActive', 'isDisabled', 'rel', 'size', 'target'],
2682
+ inputs: ['href', { name: 'isActive', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, 'rel', 'size', 'target'],
1173
2683
  }]
1174
2684
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1175
2685
  let AegovNavblock = class AegovNavblock {
1176
2686
  z;
1177
2687
  el;
2688
+ /**
2689
+ * Unique ID for the block wrapper. Auto-generated if not provided.
2690
+ */
2691
+ set fieldId(_) { }
2692
+ ;
2693
+ /**
2694
+ * Block title text shown above items. The `title` slot overrides this.
2695
+ */
2696
+ set blockTitle(_) { }
2697
+ ;
2698
+ /**
2699
+ * Accessible label for the navigation landmark. Defaults to "Sidebar navigation" (LTR) or "التنقل في الشريط الجانبي" (RTL). @default ''
2700
+ */
2701
+ set labelNav(_) { }
2702
+ ;
2703
+ /**
2704
+ * Allow multiple items to be open at the same level simultaneously. @default false
2705
+ */
2706
+ set isMultiple(_) { }
2707
+ ;
2708
+ /**
2709
+ * Expand/collapse icon style for items. @default 'chevron'
2710
+ */
2711
+ set icon(_) { }
2712
+ ;
2713
+ /**
2714
+ * Size token. Accepts a Tailwind-style responsive string (e.g.
2715
+ `"sm md:base lg:lg"`). Resolves at runtime and cascades to all items. @default 'base'
2716
+ */
2717
+ set size(_) { }
2718
+ ;
2719
+ /**
2720
+ * Wrap the block in a bordered container with padding. @default false
2721
+ */
2722
+ set isBordered(_) { }
2723
+ ;
2724
+ /**
2725
+ * Visual variant. `collapsible` (default) shows nested items in an
2726
+ animated accordion; `flat` renders all items at the same indentation
2727
+ level with group headers styled bold. @default 'collapsible'
2728
+ */
2729
+ set variant(_) { }
2730
+ ;
2731
+ /**
2732
+ * When `true` and `variant="flat"`, the active item shows a coloured
2733
+ inline-start border as an active indicator (matches the Flux sidebar style). @default false
2734
+ */
2735
+ set activeBorder(_) { }
2736
+ ;
1178
2737
  constructor(c, r, z) {
1179
2738
  this.z = z;
1180
2739
  c.detach();
1181
2740
  this.el = r.nativeElement;
1182
2741
  }
1183
2742
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovNavblock, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1184
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovNavblock, isStandalone: true, selector: "aegov-navblock", inputs: { activeBorder: "activeBorder", blockTitle: "blockTitle", fieldId: "fieldId", icon: "icon", isBordered: "isBordered", isMultiple: "isMultiple", labelNav: "labelNav", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2743
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovNavblock, isStandalone: true, selector: "aegov-navblock", inputs: { activeBorder: ["activeBorder", "activeBorder", nullableBooleanAttribute], blockTitle: "blockTitle", fieldId: "fieldId", icon: "icon", isBordered: ["isBordered", "isBordered", nullableBooleanAttribute], isMultiple: ["isMultiple", "isMultiple", nullableBooleanAttribute], labelNav: "labelNav", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1185
2744
  };
1186
2745
  AegovNavblock = __decorate([
1187
2746
  ProxyCmp({
@@ -1196,12 +2755,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1196
2755
  changeDetection: ChangeDetectionStrategy.OnPush,
1197
2756
  template: '<ng-content></ng-content>',
1198
2757
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1199
- inputs: ['activeBorder', 'blockTitle', 'fieldId', 'icon', 'isBordered', 'isMultiple', 'labelNav', 'size', 'variant'],
2758
+ inputs: [{ name: 'activeBorder', transform: nullableBooleanAttribute }, 'blockTitle', 'fieldId', 'icon', { name: 'isBordered', transform: nullableBooleanAttribute }, { name: 'isMultiple', transform: nullableBooleanAttribute }, 'labelNav', 'size', 'variant'],
1200
2759
  }]
1201
2760
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1202
2761
  let AegovNavblockItem = class AegovNavblockItem {
1203
2762
  z;
1204
2763
  el;
2764
+ /**
2765
+ * Destination URL. If set and the item has no sub-items, renders an `<a>`.
2766
+ */
2767
+ set href(_) { }
2768
+ ;
2769
+ /**
2770
+ * Anchor target.
2771
+ */
2772
+ set target(_) { }
2773
+ ;
2774
+ /**
2775
+ * Anchor rel.
2776
+ */
2777
+ set rel(_) { }
2778
+ ;
2779
+ /**
2780
+ * Mark as the current page. Sets `aria-current="page"` on the link. @default false
2781
+ */
2782
+ set isActive(_) { }
2783
+ ;
2784
+ /**
2785
+ * Visually disabled, not focusable, click no-op. @default false
2786
+ */
2787
+ set isDisabled(_) { }
2788
+ ;
2789
+ /**
2790
+ * Whether the sub-region is open. Set by parent navblock or parent
2791
+ navblock-item; mutable so the row can self-toggle. @default false
2792
+ */
2793
+ set isOpen(_) { }
2794
+ ;
1205
2795
  aegovNavblockItemToggle = new EventEmitter();
1206
2796
  constructor(c, r, z) {
1207
2797
  this.z = z;
@@ -1209,7 +2799,7 @@ let AegovNavblockItem = class AegovNavblockItem {
1209
2799
  this.el = r.nativeElement;
1210
2800
  }
1211
2801
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovNavblockItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1212
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovNavblockItem, isStandalone: true, selector: "aegov-navblock-item", inputs: { href: "href", isActive: "isActive", isDisabled: "isDisabled", isOpen: "isOpen", rel: "rel", target: "target" }, outputs: { aegovNavblockItemToggle: "aegovNavblockItemToggle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2802
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovNavblockItem, isStandalone: true, selector: "aegov-navblock-item", inputs: { href: "href", isActive: ["isActive", "isActive", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isOpen: ["isOpen", "isOpen", nullableBooleanAttribute], rel: "rel", target: "target" }, outputs: { aegovNavblockItemToggle: "aegovNavblockItemToggle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1213
2803
  };
1214
2804
  AegovNavblockItem = __decorate([
1215
2805
  ProxyCmp({
@@ -1224,7 +2814,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1224
2814
  changeDetection: ChangeDetectionStrategy.OnPush,
1225
2815
  template: '<ng-content></ng-content>',
1226
2816
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1227
- inputs: ['href', 'isActive', 'isDisabled', 'isOpen', 'rel', 'target'],
2817
+ inputs: ['href', { name: 'isActive', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isOpen', transform: nullableBooleanAttribute }, 'rel', 'target'],
1228
2818
  outputs: ['aegovNavblockItemToggle'],
1229
2819
  }]
1230
2820
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovNavblockItemToggle: [{
@@ -1233,6 +2823,87 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1233
2823
  let AegovOtp = class AegovOtp {
1234
2824
  z;
1235
2825
  el;
2826
+ /**
2827
+ * Unique ID for the first input cell. Auto-generated if not provided. Used by aegov-label for linking.
2828
+ */
2829
+ set fieldId(_) { }
2830
+ ;
2831
+ /**
2832
+ * Visual appearance. "continuous" = single bordered box with dividers between cells.
2833
+ "individual" = separate bordered boxes per digit. @default 'continuous'
2834
+ */
2835
+ set appearance(_) { }
2836
+ ;
2837
+ /**
2838
+ * Number of input cells (digits/characters expected). @default 5
2839
+ */
2840
+ set length(_) { }
2841
+ ;
2842
+ /**
2843
+ * Size of the input cells. @default 'base'
2844
+ */
2845
+ set size(_) { }
2846
+ ;
2847
+ /**
2848
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
2849
+ */
2850
+ set variant(_) { }
2851
+ ;
2852
+ /**
2853
+ * Allow letters and numbers when true. Numbers only when false. @default false
2854
+ */
2855
+ set isAlphanumeric(_) { }
2856
+ ;
2857
+ /**
2858
+ * Regex pattern string for validation. Checked when all cells are filled.
2859
+ */
2860
+ set pattern(_) { }
2861
+ ;
2862
+ /**
2863
+ * Disables all input cells. @default false
2864
+ */
2865
+ set isDisabled(_) { }
2866
+ ;
2867
+ /**
2868
+ * Marks the field as required for form submission. Used by FormAssociated for `valueMissing`. @default false
2869
+ */
2870
+ set isRequired(_) { }
2871
+ ;
2872
+ /**
2873
+ * Form field name for FormAssociated submission.
2874
+ */
2875
+ set name(_) { }
2876
+ ;
2877
+ /**
2878
+ * Current OTP value. Can be set externally to pre-fill cells. @default ''
2879
+ */
2880
+ set value(_) { }
2881
+ ;
2882
+ /**
2883
+ * Visual + a11y invalid state. See §2.3. @default false
2884
+ */
2885
+ set isInvalid(_) { }
2886
+ ;
2887
+ /**
2888
+ * Inline error message. Use `error` slot for rich markup. @default ''
2889
+ */
2890
+ set errorMessage(_) { }
2891
+ ;
2892
+ /**
2893
+ * Helper hint shown below the control. Hidden when an error is shown. @default ''
2894
+ */
2895
+ set hint(_) { }
2896
+ ;
2897
+ /**
2898
+ * Additional CSS classes.
2899
+
2900
+ This component renders in a real shadow root, which normally blocks the page's CSS
2901
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
2902
+ in from the page's own stylesheets at runtime and work as expected; other utilities
2903
+ (colour, border, typography, etc.) still have no effect — see #35.
2904
+ */
2905
+ set extraClass(_) { }
2906
+ ;
1236
2907
  aegovOtpChange = new EventEmitter();
1237
2908
  aegovOtpComplete = new EventEmitter();
1238
2909
  aegovValidate = new EventEmitter();
@@ -1242,7 +2913,7 @@ let AegovOtp = class AegovOtp {
1242
2913
  this.el = r.nativeElement;
1243
2914
  }
1244
2915
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovOtp, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1245
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovOtp, isStandalone: true, selector: "aegov-otp", inputs: { appearance: "appearance", errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isAlphanumeric: "isAlphanumeric", isDisabled: "isDisabled", isInvalid: "isInvalid", isRequired: "isRequired", length: "length", name: "name", pattern: "pattern", size: "size", value: "value", variant: "variant" }, outputs: { aegovOtpChange: "aegovOtpChange", aegovOtpComplete: "aegovOtpComplete", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2916
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovOtp, isStandalone: true, selector: "aegov-otp", inputs: { appearance: "appearance", errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isAlphanumeric: ["isAlphanumeric", "isAlphanumeric", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], length: ["length", "length", nullableNumberAttribute], name: "name", pattern: "pattern", size: "size", value: "value", variant: "variant" }, outputs: { aegovOtpChange: "aegovOtpChange", aegovOtpComplete: "aegovOtpComplete", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1246
2917
  };
1247
2918
  AegovOtp = __decorate([
1248
2919
  ProxyCmp({
@@ -1258,7 +2929,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1258
2929
  changeDetection: ChangeDetectionStrategy.OnPush,
1259
2930
  template: '<ng-content></ng-content>',
1260
2931
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1261
- inputs: ['appearance', 'errorMessage', 'extraClass', 'fieldId', 'hint', 'isAlphanumeric', 'isDisabled', 'isInvalid', 'isRequired', 'length', 'name', 'pattern', 'size', 'value', 'variant'],
2932
+ inputs: ['appearance', 'errorMessage', 'extraClass', 'fieldId', 'hint', { name: 'isAlphanumeric', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, { name: 'length', transform: nullableNumberAttribute }, 'name', 'pattern', 'size', 'value', 'variant'],
1262
2933
  outputs: ['aegovOtpChange', 'aegovOtpComplete', 'aegovValidate'],
1263
2934
  }]
1264
2935
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovOtpChange: [{
@@ -1271,6 +2942,74 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1271
2942
  let AegovPagination = class AegovPagination {
1272
2943
  z;
1273
2944
  el;
2945
+ /**
2946
+ * Unique ID for the pagination nav element. Auto-generated if not provided.
2947
+ */
2948
+ set fieldId(_) { }
2949
+ ;
2950
+ /**
2951
+ * Total number of pages. @default 1
2952
+ */
2953
+ set pages(_) { }
2954
+ ;
2955
+ /**
2956
+ * Currently active page (1-indexed).
2957
+ This is a controlled prop — you must update it on every aegovPaginationPageChange event. @default 1
2958
+ */
2959
+ set pageCurrent(_) { }
2960
+ ;
2961
+ /**
2962
+ * Show First and Last navigation buttons alongside Previous and Next. @default false
2963
+ */
2964
+ set isEnabledFirstLast(_) { }
2965
+ ;
2966
+ /**
2967
+ * Number of sibling pages shown on each side of the current page. @default 1
2968
+ */
2969
+ set countSibling(_) { }
2970
+ ;
2971
+ /**
2972
+ * Number of pages always visible at each boundary (start and end of the list). @default 1
2973
+ */
2974
+ set countBoundary(_) { }
2975
+ ;
2976
+ /**
2977
+ * Display variant.
2978
+ - 'default': shows page numbers, ellipsis, and prev/next buttons.
2979
+ - 'compact': shows only prev/next buttons (and first/last when isEnabledFirstLast is true). @default 'default'
2980
+ */
2981
+ set variant(_) { }
2982
+ ;
2983
+ /**
2984
+ * Size variant of the pagination. @default 'base'
2985
+ */
2986
+ set size(_) { }
2987
+ ;
2988
+ /**
2989
+ * Disables all pagination interaction. @default false
2990
+ */
2991
+ set isDisabled(_) { }
2992
+ ;
2993
+ /**
2994
+ * Label for the Previous page button. Empty defaults to localized text via isRtl. @default ''
2995
+ */
2996
+ set labelPrev(_) { }
2997
+ ;
2998
+ /**
2999
+ * Label for the Next page button. Empty defaults to localized text via isRtl. @default ''
3000
+ */
3001
+ set labelNext(_) { }
3002
+ ;
3003
+ /**
3004
+ * Label for the First page button (only shown when isEnabledFirstLast is true). Empty defaults to localized text via isRtl. @default ''
3005
+ */
3006
+ set labelFirst(_) { }
3007
+ ;
3008
+ /**
3009
+ * Label for the Last page button (only shown when isEnabledFirstLast is true). Empty defaults to localized text via isRtl. @default ''
3010
+ */
3011
+ set labelLast(_) { }
3012
+ ;
1274
3013
  aegovPaginationPageChange = new EventEmitter();
1275
3014
  constructor(c, r, z) {
1276
3015
  this.z = z;
@@ -1278,7 +3017,7 @@ let AegovPagination = class AegovPagination {
1278
3017
  this.el = r.nativeElement;
1279
3018
  }
1280
3019
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1281
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovPagination, isStandalone: true, selector: "aegov-pagination", inputs: { countBoundary: "countBoundary", countSibling: "countSibling", fieldId: "fieldId", isDisabled: "isDisabled", isEnabledFirstLast: "isEnabledFirstLast", labelFirst: "labelFirst", labelLast: "labelLast", labelNext: "labelNext", labelPrev: "labelPrev", pageCurrent: "pageCurrent", pages: "pages", size: "size", variant: "variant" }, outputs: { aegovPaginationPageChange: "aegovPaginationPageChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3020
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovPagination, isStandalone: true, selector: "aegov-pagination", inputs: { countBoundary: ["countBoundary", "countBoundary", nullableNumberAttribute], countSibling: ["countSibling", "countSibling", nullableNumberAttribute], fieldId: "fieldId", isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isEnabledFirstLast: ["isEnabledFirstLast", "isEnabledFirstLast", nullableBooleanAttribute], labelFirst: "labelFirst", labelLast: "labelLast", labelNext: "labelNext", labelPrev: "labelPrev", pageCurrent: ["pageCurrent", "pageCurrent", nullableNumberAttribute], pages: ["pages", "pages", nullableNumberAttribute], size: "size", variant: "variant" }, outputs: { aegovPaginationPageChange: "aegovPaginationPageChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1282
3021
  };
1283
3022
  AegovPagination = __decorate([
1284
3023
  ProxyCmp({
@@ -1293,7 +3032,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1293
3032
  changeDetection: ChangeDetectionStrategy.OnPush,
1294
3033
  template: '<ng-content></ng-content>',
1295
3034
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1296
- inputs: ['countBoundary', 'countSibling', 'fieldId', 'isDisabled', 'isEnabledFirstLast', 'labelFirst', 'labelLast', 'labelNext', 'labelPrev', 'pageCurrent', 'pages', 'size', 'variant'],
3035
+ inputs: [{ name: 'countBoundary', transform: nullableNumberAttribute }, { name: 'countSibling', transform: nullableNumberAttribute }, 'fieldId', { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isEnabledFirstLast', transform: nullableBooleanAttribute }, 'labelFirst', 'labelLast', 'labelNext', 'labelPrev', { name: 'pageCurrent', transform: nullableNumberAttribute }, { name: 'pages', transform: nullableNumberAttribute }, 'size', 'variant'],
1297
3036
  outputs: ['aegovPaginationPageChange'],
1298
3037
  }]
1299
3038
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovPaginationPageChange: [{
@@ -1302,6 +3041,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1302
3041
  let AegovPopover = class AegovPopover {
1303
3042
  z;
1304
3043
  el;
3044
+ /**
3045
+ * Unique ID for the popover element. Auto-generated if not provided.
3046
+ The trigger element receives a derived ID `${fieldId}-trigger` for ARIA linkage.
3047
+ */
3048
+ set fieldId(_) { }
3049
+ ;
3050
+ /**
3051
+ * Trigger type for showing the popover @default 'click'
3052
+ */
3053
+ set trigger(_) { }
3054
+ ;
3055
+ /**
3056
+ * Position of the popover relative to the trigger element @default 'bottom'
3057
+ */
3058
+ set position(_) { }
3059
+ ;
3060
+ /**
3061
+ * Alignment of the popover @default 'center'
3062
+ */
3063
+ set align(_) { }
3064
+ ;
3065
+ /**
3066
+ * Gap between popover and trigger element (in pixels) @default 10
3067
+ */
3068
+ set gap(_) { }
3069
+ ;
3070
+ /**
3071
+ * Additional offset for popover positioning (in pixels) @default 0
3072
+ */
3073
+ set offset(_) { }
3074
+ ;
3075
+ /**
3076
+ * Whether the popover is disabled @default false
3077
+ */
3078
+ set isDisabled(_) { }
3079
+ ;
3080
+ /**
3081
+ * Delay before showing popover on hover (in milliseconds) @default 200
3082
+ */
3083
+ set delayStart(_) { }
3084
+ ;
3085
+ /**
3086
+ * Delay before hiding popover on hover (in milliseconds) @default 0
3087
+ */
3088
+ set delayEnd(_) { }
3089
+ ;
1305
3090
  aegovPopoverOpen = new EventEmitter();
1306
3091
  aegovPopoverClose = new EventEmitter();
1307
3092
  constructor(c, r, z) {
@@ -1310,7 +3095,7 @@ let AegovPopover = class AegovPopover {
1310
3095
  this.el = r.nativeElement;
1311
3096
  }
1312
3097
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovPopover, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1313
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovPopover, isStandalone: true, selector: "aegov-popover", inputs: { align: "align", delayEnd: "delayEnd", delayStart: "delayStart", fieldId: "fieldId", gap: "gap", isDisabled: "isDisabled", offset: "offset", position: "position", trigger: "trigger" }, outputs: { aegovPopoverOpen: "aegovPopoverOpen", aegovPopoverClose: "aegovPopoverClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3098
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovPopover, isStandalone: true, selector: "aegov-popover", inputs: { align: "align", delayEnd: ["delayEnd", "delayEnd", nullableNumberAttribute], delayStart: ["delayStart", "delayStart", nullableNumberAttribute], fieldId: "fieldId", gap: ["gap", "gap", nullableNumberAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], offset: ["offset", "offset", nullableNumberAttribute], position: "position", trigger: "trigger" }, outputs: { aegovPopoverOpen: "aegovPopoverOpen", aegovPopoverClose: "aegovPopoverClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1314
3099
  };
1315
3100
  AegovPopover = __decorate([
1316
3101
  ProxyCmp({
@@ -1326,7 +3111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1326
3111
  changeDetection: ChangeDetectionStrategy.OnPush,
1327
3112
  template: '<ng-content></ng-content>',
1328
3113
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1329
- inputs: ['align', 'delayEnd', 'delayStart', 'fieldId', 'gap', 'isDisabled', 'offset', 'position', 'trigger'],
3114
+ inputs: ['align', { name: 'delayEnd', transform: nullableNumberAttribute }, { name: 'delayStart', transform: nullableNumberAttribute }, 'fieldId', { name: 'gap', transform: nullableNumberAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'offset', transform: nullableNumberAttribute }, 'position', 'trigger'],
1330
3115
  outputs: ['aegovPopoverOpen', 'aegovPopoverClose'],
1331
3116
  }]
1332
3117
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovPopoverOpen: [{
@@ -1337,13 +3122,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1337
3122
  let AegovProgress = class AegovProgress {
1338
3123
  z;
1339
3124
  el;
3125
+ /**
3126
+ * Unique ID for the native progress element. Auto-generated if not provided.
3127
+ */
3128
+ set fieldId(_) { }
3129
+ ;
3130
+ /**
3131
+ * Current value. When not set, shows indeterminate state.
3132
+ */
3133
+ set value(_) { }
3134
+ ;
3135
+ /**
3136
+ * Maximum value. @default 100
3137
+ */
3138
+ set max(_) { }
3139
+ ;
3140
+ /**
3141
+ * Height using Tailwind spacing scale (1, 1.5, 2, 2.5, 3, 3.5, 4, etc.).
3142
+ Each unit = 0.25rem. Default "2" = h-2 = 0.5rem (8px). @default '2'
3143
+ */
3144
+ set height(_) { }
3145
+ ;
3146
+ /**
3147
+ * Counter placement. Hidden when not set.
3148
+ */
3149
+ set counter(_) { }
3150
+ ;
3151
+ /**
3152
+ * Suffix appended directly to the counter value. No automatic spacing. @default ''
3153
+ */
3154
+ set counterSuffix(_) { }
3155
+ ;
3156
+ /**
3157
+ * Accessible label applied as aria-label on the native progress element. Provide this or a visible <label for="fieldId"> for screen reader support.
3158
+ */
3159
+ set label(_) { }
3160
+ ;
3161
+ /**
3162
+ * Description text displayed below the progress bar.
3163
+ */
3164
+ set description(_) { }
3165
+ ;
3166
+ /**
3167
+ * Additional CSS classes.
3168
+ */
3169
+ set extraClass(_) { }
3170
+ ;
1340
3171
  constructor(c, r, z) {
1341
3172
  this.z = z;
1342
3173
  c.detach();
1343
3174
  this.el = r.nativeElement;
1344
3175
  }
1345
3176
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovProgress, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1346
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovProgress, isStandalone: true, selector: "aegov-progress", inputs: { counter: "counter", counterSuffix: "counterSuffix", description: "description", extraClass: "extraClass", fieldId: "fieldId", height: "height", label: "label", max: "max", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3177
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovProgress, isStandalone: true, selector: "aegov-progress", inputs: { counter: "counter", counterSuffix: "counterSuffix", description: "description", extraClass: "extraClass", fieldId: "fieldId", height: "height", label: "label", max: ["max", "max", nullableNumberAttribute], value: ["value", "value", nullableNumberAttribute] }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1347
3178
  };
1348
3179
  AegovProgress = __decorate([
1349
3180
  ProxyCmp({
@@ -1358,12 +3189,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1358
3189
  changeDetection: ChangeDetectionStrategy.OnPush,
1359
3190
  template: '<ng-content></ng-content>',
1360
3191
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1361
- inputs: ['counter', 'counterSuffix', 'description', 'extraClass', 'fieldId', 'height', 'label', 'max', 'value'],
3192
+ inputs: ['counter', 'counterSuffix', 'description', 'extraClass', 'fieldId', 'height', 'label', { name: 'max', transform: nullableNumberAttribute }, { name: 'value', transform: nullableNumberAttribute }],
1362
3193
  }]
1363
3194
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1364
3195
  let AegovRadio = class AegovRadio {
1365
3196
  z;
1366
3197
  el;
3198
+ /**
3199
+ * Unique ID for the native radio element. Auto-generated if not provided.
3200
+ */
3201
+ set fieldId(_) { }
3202
+ ;
3203
+ /**
3204
+ * 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.
3205
+ */
3206
+ set name(_) { }
3207
+ ;
3208
+ /**
3209
+ * The value attribute for the radio.
3210
+ */
3211
+ set value(_) { }
3212
+ ;
3213
+ /**
3214
+ * Whether the radio is checked. @default false
3215
+ */
3216
+ set isChecked(_) { }
3217
+ ;
3218
+ /**
3219
+ * The size of the radio. @default 'base'
3220
+ */
3221
+ set size(_) { }
3222
+ ;
3223
+ /**
3224
+ * Colour family. Drives rest border, checked bg/border. Focus ring stays camel; error stays aered.
3225
+ */
3226
+ set variant(_) { }
3227
+ ;
3228
+ /**
3229
+ * Visual appearance set by a parent aegov-radio-group. Not meant to be set directly. @default 'default'
3230
+ */
3231
+ set appearance(_) { }
3232
+ ;
3233
+ /**
3234
+ * Whether the radio is disabled. @default false
3235
+ */
3236
+ set isDisabled(_) { }
3237
+ ;
3238
+ /**
3239
+ * Whether the radio is required. @default false
3240
+ */
3241
+ set isRequired(_) { }
3242
+ ;
3243
+ /**
3244
+ * Label text for the radio. When provided, generates an associated <label> element.
3245
+ */
3246
+ set label(_) { }
3247
+ ;
3248
+ /**
3249
+ * Helper hint text displayed below the label. Renamed from `description` per §6.6.
3250
+ Hidden when an error is shown.
3251
+ */
3252
+ set hint(_) { }
3253
+ ;
3254
+ /**
3255
+ * Visual + a11y invalid state. See §2.3. @default false
3256
+ */
3257
+ set isInvalid(_) { }
3258
+ ;
3259
+ /**
3260
+ * Inline error message. Use `error` slot for rich markup. @default ''
3261
+ */
3262
+ set errorMessage(_) { }
3263
+ ;
3264
+ /**
3265
+ * Additional CSS classes to apply.
3266
+
3267
+ This component renders in a real shadow root, which normally blocks the page's CSS
3268
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
3269
+ in from the page's own stylesheets at runtime and work as expected; other utilities
3270
+ (colour, border, typography, etc.) still have no effect — see #35.
3271
+ */
3272
+ set extraClass(_) { }
3273
+ ;
1367
3274
  aegovRadioChange = new EventEmitter();
1368
3275
  aegovValidate = new EventEmitter();
1369
3276
  constructor(c, r, z) {
@@ -1372,7 +3279,7 @@ let AegovRadio = class AegovRadio {
1372
3279
  this.el = r.nativeElement;
1373
3280
  }
1374
3281
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1375
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovRadio, isStandalone: true, selector: "aegov-radio", inputs: { appearance: "appearance", errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isChecked: "isChecked", isDisabled: "isDisabled", isInvalid: "isInvalid", isRequired: "isRequired", label: "label", name: "name", size: "size", value: "value", variant: "variant" }, outputs: { aegovRadioChange: "aegovRadioChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3282
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovRadio, isStandalone: true, selector: "aegov-radio", inputs: { appearance: "appearance", errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isChecked: ["isChecked", "isChecked", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], label: "label", name: "name", size: "size", value: "value", variant: "variant" }, outputs: { aegovRadioChange: "aegovRadioChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1376
3283
  };
1377
3284
  AegovRadio = __decorate([
1378
3285
  ProxyCmp({
@@ -1388,7 +3295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1388
3295
  changeDetection: ChangeDetectionStrategy.OnPush,
1389
3296
  template: '<ng-content></ng-content>',
1390
3297
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1391
- inputs: ['appearance', 'errorMessage', 'extraClass', 'fieldId', 'hint', 'isChecked', 'isDisabled', 'isInvalid', 'isRequired', 'label', 'name', 'size', 'value', 'variant'],
3298
+ inputs: ['appearance', 'errorMessage', 'extraClass', 'fieldId', 'hint', { name: 'isChecked', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, 'label', 'name', 'size', 'value', 'variant'],
1392
3299
  outputs: ['aegovRadioChange', 'aegovValidate'],
1393
3300
  }]
1394
3301
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovRadioChange: [{
@@ -1399,6 +3306,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1399
3306
  let AegovRadioGroup = class AegovRadioGroup {
1400
3307
  z;
1401
3308
  el;
3309
+ /**
3310
+ * Visual appearance for the group layout. @default 'default'
3311
+ */
3312
+ set appearance(_) { }
3313
+ ;
3314
+ /**
3315
+ * Stack direction for radio items. @default 'vertical'
3316
+ */
3317
+ set orientation(_) { }
3318
+ ;
3319
+ /**
3320
+ * Optional label rendered as a <legend> for accessibility.
3321
+ */
3322
+ set label(_) { }
3323
+ ;
3324
+ /**
3325
+ * Size of all radios in the group. Propagated to children. @default 'base'
3326
+ */
3327
+ set size(_) { }
3328
+ ;
3329
+ /**
3330
+ * Colour family. Cascades to child radios (only if child has no own variant). Focus ring stays camel; error stays aered regardless.
3331
+ */
3332
+ set variant(_) { }
3333
+ ;
3334
+ /**
3335
+ * The name shared by all radios in the group. Ensures native single-select behavior.
3336
+ */
3337
+ set name(_) { }
3338
+ ;
3339
+ /**
3340
+ * Disables all radios within the group via native fieldset disabled. @default false
3341
+ */
3342
+ set isDisabled(_) { }
3343
+ ;
3344
+ /**
3345
+ * Group is required — at least one radio must be selected. Aggregate-level only. @default false
3346
+ */
3347
+ set isRequired(_) { }
3348
+ ;
3349
+ /**
3350
+ * Visual + a11y invalid state. See §2.3. @default false
3351
+ */
3352
+ set isInvalid(_) { }
3353
+ ;
3354
+ /**
3355
+ * Inline error message. @default ''
3356
+ */
3357
+ set errorMessage(_) { }
3358
+ ;
3359
+ /**
3360
+ * Helper hint shown below the legend when not invalid. @default ''
3361
+ */
3362
+ set hint(_) { }
3363
+ ;
3364
+ /**
3365
+ * Additional CSS classes to apply.
3366
+
3367
+ This component renders in a real shadow root, which normally blocks the page's CSS
3368
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
3369
+ in from the page's own stylesheets at runtime and work as expected; other utilities
3370
+ (colour, border, typography, etc.) still have no effect — see #35.
3371
+ */
3372
+ set extraClass(_) { }
3373
+ ;
1402
3374
  aegovRadioGroupChange = new EventEmitter();
1403
3375
  aegovValidate = new EventEmitter();
1404
3376
  constructor(c, r, z) {
@@ -1407,7 +3379,7 @@ let AegovRadioGroup = class AegovRadioGroup {
1407
3379
  this.el = r.nativeElement;
1408
3380
  }
1409
3381
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovRadioGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1410
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovRadioGroup, isStandalone: true, selector: "aegov-radio-group", inputs: { appearance: "appearance", errorMessage: "errorMessage", extraClass: "extraClass", hint: "hint", isDisabled: "isDisabled", isInvalid: "isInvalid", isRequired: "isRequired", label: "label", name: "name", orientation: "orientation", size: "size", variant: "variant" }, outputs: { aegovRadioGroupChange: "aegovRadioGroupChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3382
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovRadioGroup, isStandalone: true, selector: "aegov-radio-group", inputs: { appearance: "appearance", errorMessage: "errorMessage", extraClass: "extraClass", hint: "hint", isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], label: "label", name: "name", orientation: "orientation", size: "size", variant: "variant" }, outputs: { aegovRadioGroupChange: "aegovRadioGroupChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1411
3383
  };
1412
3384
  AegovRadioGroup = __decorate([
1413
3385
  ProxyCmp({
@@ -1423,7 +3395,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1423
3395
  changeDetection: ChangeDetectionStrategy.OnPush,
1424
3396
  template: '<ng-content></ng-content>',
1425
3397
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1426
- inputs: ['appearance', 'errorMessage', 'extraClass', 'hint', 'isDisabled', 'isInvalid', 'isRequired', 'label', { name: 'name', required: true }, 'orientation', 'size', 'variant'],
3398
+ inputs: ['appearance', 'errorMessage', 'extraClass', 'hint', { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, 'label', { name: 'name', required: true }, 'orientation', 'size', 'variant'],
1427
3399
  outputs: ['aegovRadioGroupChange', 'aegovValidate'],
1428
3400
  }]
1429
3401
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovRadioGroupChange: [{
@@ -1434,6 +3406,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1434
3406
  let AegovRange = class AegovRange {
1435
3407
  z;
1436
3408
  el;
3409
+ /**
3410
+ * Unique ID for the native range input element. Auto-generated if not provided.
3411
+ */
3412
+ set fieldId(_) { }
3413
+ ;
3414
+ /**
3415
+ * The name attribute for the range. Reflected so ElementInternals reads it for form submission.
3416
+ */
3417
+ set name(_) { }
3418
+ ;
3419
+ /**
3420
+ * Current value (single mode). Sanitized like a native `<input type="range">`:
3421
+ clamped to `min`/`max` and rounded to the nearest `step`, on load and
3422
+ whenever it, `min`, `max` or `step` changes. @default 50
3423
+ */
3424
+ set value(_) { }
3425
+ ;
3426
+ /**
3427
+ * Low thumb value (range mode). Sanitized like `value`. @default 25
3428
+ */
3429
+ set valueLow(_) { }
3430
+ ;
3431
+ /**
3432
+ * High thumb value (range mode). Sanitized like `value`. @default 75
3433
+ */
3434
+ set valueHigh(_) { }
3435
+ ;
3436
+ /**
3437
+ * Minimum value. @default 0
3438
+ */
3439
+ set min(_) { }
3440
+ ;
3441
+ /**
3442
+ * Maximum value. @default 100
3443
+ */
3444
+ set max(_) { }
3445
+ ;
3446
+ /**
3447
+ * Step increment. @default 1
3448
+ */
3449
+ set step(_) { }
3450
+ ;
3451
+ /**
3452
+ * Size of the range track. Thumb remains constant. @default 'base'
3453
+ */
3454
+ set size(_) { }
3455
+ ;
3456
+ /**
3457
+ * Value display mode. @default 'none'
3458
+ */
3459
+ set display(_) { }
3460
+ ;
3461
+ /**
3462
+ * Layout orientation. @default 'horizontal'
3463
+ */
3464
+ set orientation(_) { }
3465
+ ;
3466
+ /**
3467
+ * Single thumb or dual thumb (range selection). @default 'single'
3468
+ */
3469
+ set mode(_) { }
3470
+ ;
3471
+ /**
3472
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
3473
+ */
3474
+ set variant(_) { }
3475
+ ;
3476
+ /**
3477
+ * Whether the range is disabled. @default false
3478
+ */
3479
+ set isDisabled(_) { }
3480
+ ;
3481
+ /**
3482
+ * Whether the range is required. @default false
3483
+ */
3484
+ set isRequired(_) { }
3485
+ ;
3486
+ /**
3487
+ * Optional label text.
3488
+ */
3489
+ set label(_) { }
3490
+ ;
3491
+ /**
3492
+ * Helper hint shown below the control. Hidden when an error is shown. @default ''
3493
+ */
3494
+ set hint(_) { }
3495
+ ;
3496
+ /**
3497
+ * Visual + a11y invalid state. See §2.3. @default false
3498
+ */
3499
+ set isInvalid(_) { }
3500
+ ;
3501
+ /**
3502
+ * Inline error message. Use `error` slot for rich markup. @default ''
3503
+ */
3504
+ set errorMessage(_) { }
3505
+ ;
3506
+ /**
3507
+ * Additional CSS classes.
3508
+
3509
+ This component renders in a real shadow root, which normally blocks the page's CSS
3510
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
3511
+ in from the page's own stylesheets at runtime and work as expected; other utilities
3512
+ (colour, border, typography, etc.) still have no effect — see #35.
3513
+ */
3514
+ set extraClass(_) { }
3515
+ ;
1437
3516
  aegovRangeInput = new EventEmitter();
1438
3517
  aegovRangeChange = new EventEmitter();
1439
3518
  aegovValidate = new EventEmitter();
@@ -1443,7 +3522,7 @@ let AegovRange = class AegovRange {
1443
3522
  this.el = r.nativeElement;
1444
3523
  }
1445
3524
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovRange, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1446
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovRange, isStandalone: true, selector: "aegov-range", inputs: { display: "display", errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isDisabled: "isDisabled", isInvalid: "isInvalid", isRequired: "isRequired", label: "label", max: "max", min: "min", mode: "mode", name: "name", orientation: "orientation", size: "size", step: "step", value: "value", valueHigh: "valueHigh", valueLow: "valueLow", variant: "variant" }, outputs: { aegovRangeInput: "aegovRangeInput", aegovRangeChange: "aegovRangeChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3525
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovRange, isStandalone: true, selector: "aegov-range", inputs: { display: "display", errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], label: "label", max: ["max", "max", nullableNumberAttribute], min: ["min", "min", nullableNumberAttribute], mode: "mode", name: "name", orientation: "orientation", size: "size", step: ["step", "step", nullableNumberAttribute], value: ["value", "value", nullableNumberAttribute], valueHigh: ["valueHigh", "valueHigh", nullableNumberAttribute], valueLow: ["valueLow", "valueLow", nullableNumberAttribute], variant: "variant" }, outputs: { aegovRangeInput: "aegovRangeInput", aegovRangeChange: "aegovRangeChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1447
3526
  };
1448
3527
  AegovRange = __decorate([
1449
3528
  ProxyCmp({
@@ -1459,7 +3538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1459
3538
  changeDetection: ChangeDetectionStrategy.OnPush,
1460
3539
  template: '<ng-content></ng-content>',
1461
3540
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1462
- inputs: ['display', 'errorMessage', 'extraClass', 'fieldId', 'hint', 'isDisabled', 'isInvalid', 'isRequired', 'label', 'max', 'min', 'mode', 'name', 'orientation', 'size', 'step', 'value', 'valueHigh', 'valueLow', 'variant'],
3541
+ inputs: ['display', 'errorMessage', 'extraClass', 'fieldId', 'hint', { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, 'label', { name: 'max', transform: nullableNumberAttribute }, { name: 'min', transform: nullableNumberAttribute }, 'mode', 'name', 'orientation', 'size', { name: 'step', transform: nullableNumberAttribute }, { name: 'value', transform: nullableNumberAttribute }, { name: 'valueHigh', transform: nullableNumberAttribute }, { name: 'valueLow', transform: nullableNumberAttribute }, 'variant'],
1463
3542
  outputs: ['aegovRangeInput', 'aegovRangeChange', 'aegovValidate'],
1464
3543
  }]
1465
3544
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovRangeInput: [{
@@ -1472,6 +3551,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1472
3551
  let AegovSelect = class AegovSelect {
1473
3552
  z;
1474
3553
  el;
3554
+ /**
3555
+ * Unique ID for the select element. Auto-generated if not provided.
3556
+ */
3557
+ set fieldId(_) { }
3558
+ ;
3559
+ /**
3560
+ * The visual appearance. 'default' renders a native select; 'listbox' renders a custom dropdown. @default 'default'
3561
+ */
3562
+ set appearance(_) { }
3563
+ ;
3564
+ /**
3565
+ * The size of the select. Matches aegov-input height. @default 'base'
3566
+ */
3567
+ set size(_) { }
3568
+ ;
3569
+ /**
3570
+ * Colour family. Drives idle ring/border, selected/checked fill, and value/accent text. Focus ring stays camel; error stays aered regardless.
3571
+ */
3572
+ set variant(_) { }
3573
+ ;
3574
+ /**
3575
+ * Whether multiple selection is enabled. Forces listbox behaviour. @default false
3576
+ */
3577
+ set isMultiple(_) { }
3578
+ ;
3579
+ /**
3580
+ * Whether the select is disabled. @default false
3581
+ */
3582
+ set isDisabled(_) { }
3583
+ ;
3584
+ /**
3585
+ * Placeholder text shown when nothing is selected.
3586
+ */
3587
+ set placeholder(_) { }
3588
+ ;
3589
+ /**
3590
+ * The current selected value. For multiple, a comma-separated string. @default ''
3591
+ */
3592
+ set value(_) { }
3593
+ ;
3594
+ /**
3595
+ * The name attribute for form submission.
3596
+ */
3597
+ set name(_) { }
3598
+ ;
3599
+ /**
3600
+ * Whether the select is required. @default false
3601
+ */
3602
+ set isRequired(_) { }
3603
+ ;
3604
+ /**
3605
+ * Show a search input in the listbox dropdown to filter options. Only works with listbox appearance. @default false
3606
+ */
3607
+ set isSearchable(_) { }
3608
+ ;
3609
+ /**
3610
+ * Message shown when search yields no results. Empty string defaults to localized text via isRtl. @default ''
3611
+ */
3612
+ set emptyMessage(_) { }
3613
+ ;
3614
+ /**
3615
+ * Max visible items in the dropdown before scrolling. @default 6
3616
+ */
3617
+ set visibleItems(_) { }
3618
+ ;
3619
+ /**
3620
+ * Show a clear button to reset selection. @default false
3621
+ */
3622
+ set isClearable(_) { }
3623
+ ;
3624
+ /**
3625
+ * Visual + a11y invalid state. See §2.3. @default false
3626
+ */
3627
+ set isInvalid(_) { }
3628
+ ;
3629
+ /**
3630
+ * Inline error message. Use `error` slot for rich markup. @default ''
3631
+ */
3632
+ set errorMessage(_) { }
3633
+ ;
3634
+ /**
3635
+ * Helper hint shown below the control. Hidden when an error is shown. @default ''
3636
+ */
3637
+ set hint(_) { }
3638
+ ;
3639
+ /**
3640
+ * Additional CSS classes to apply.
3641
+
3642
+ This component renders in a real shadow root, which normally blocks the page's CSS
3643
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
3644
+ in from the page's own stylesheets at runtime and work as expected; other utilities
3645
+ (colour, border, typography, etc.) still have no effect — see #35.
3646
+ */
3647
+ set extraClass(_) { }
3648
+ ;
1475
3649
  aegovSelectChange = new EventEmitter();
1476
3650
  aegovSelectOpen = new EventEmitter();
1477
3651
  aegovSelectClose = new EventEmitter();
@@ -1482,7 +3656,7 @@ let AegovSelect = class AegovSelect {
1482
3656
  this.el = r.nativeElement;
1483
3657
  }
1484
3658
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1485
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovSelect, isStandalone: true, selector: "aegov-select", inputs: { appearance: "appearance", emptyMessage: "emptyMessage", errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isClearable: "isClearable", isDisabled: "isDisabled", isInvalid: "isInvalid", isMultiple: "isMultiple", isRequired: "isRequired", isSearchable: "isSearchable", name: "name", placeholder: "placeholder", size: "size", value: "value", variant: "variant", visibleItems: "visibleItems" }, outputs: { aegovSelectChange: "aegovSelectChange", aegovSelectOpen: "aegovSelectOpen", aegovSelectClose: "aegovSelectClose", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3659
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovSelect, isStandalone: true, selector: "aegov-select", inputs: { appearance: "appearance", emptyMessage: "emptyMessage", errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isClearable: ["isClearable", "isClearable", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isMultiple: ["isMultiple", "isMultiple", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], isSearchable: ["isSearchable", "isSearchable", nullableBooleanAttribute], name: "name", placeholder: "placeholder", size: "size", value: "value", variant: "variant", visibleItems: ["visibleItems", "visibleItems", nullableNumberAttribute] }, outputs: { aegovSelectChange: "aegovSelectChange", aegovSelectOpen: "aegovSelectOpen", aegovSelectClose: "aegovSelectClose", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1486
3660
  };
1487
3661
  AegovSelect = __decorate([
1488
3662
  ProxyCmp({
@@ -1498,7 +3672,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1498
3672
  changeDetection: ChangeDetectionStrategy.OnPush,
1499
3673
  template: '<ng-content></ng-content>',
1500
3674
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1501
- inputs: ['appearance', 'emptyMessage', 'errorMessage', 'extraClass', 'fieldId', 'hint', 'isClearable', 'isDisabled', 'isInvalid', 'isMultiple', 'isRequired', 'isSearchable', 'name', 'placeholder', 'size', 'value', 'variant', 'visibleItems'],
3675
+ inputs: ['appearance', 'emptyMessage', 'errorMessage', 'extraClass', 'fieldId', 'hint', { name: 'isClearable', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isMultiple', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, { name: 'isSearchable', transform: nullableBooleanAttribute }, 'name', 'placeholder', 'size', 'value', 'variant', { name: 'visibleItems', transform: nullableNumberAttribute }],
1502
3676
  outputs: ['aegovSelectChange', 'aegovSelectOpen', 'aegovSelectClose', 'aegovValidate'],
1503
3677
  }]
1504
3678
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovSelectChange: [{
@@ -1513,13 +3687,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1513
3687
  let AegovSelectOption = class AegovSelectOption {
1514
3688
  z;
1515
3689
  el;
3690
+ /**
3691
+ * The value of this option. @default ''
3692
+ */
3693
+ set value(_) { }
3694
+ ;
3695
+ /**
3696
+ * Whether this option is disabled. @default false
3697
+ */
3698
+ set isDisabled(_) { }
3699
+ ;
1516
3700
  constructor(c, r, z) {
1517
3701
  this.z = z;
1518
3702
  c.detach();
1519
3703
  this.el = r.nativeElement;
1520
3704
  }
1521
3705
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovSelectOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1522
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovSelectOption, isStandalone: true, selector: "aegov-select-option", inputs: { isDisabled: "isDisabled", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3706
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovSelectOption, isStandalone: true, selector: "aegov-select-option", inputs: { isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1523
3707
  };
1524
3708
  AegovSelectOption = __decorate([
1525
3709
  ProxyCmp({
@@ -1534,12 +3718,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1534
3718
  changeDetection: ChangeDetectionStrategy.OnPush,
1535
3719
  template: '<ng-content></ng-content>',
1536
3720
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1537
- inputs: ['isDisabled', 'value'],
3721
+ inputs: [{ name: 'isDisabled', transform: nullableBooleanAttribute }, 'value'],
1538
3722
  }]
1539
3723
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1540
3724
  let AegovSelectOptionGroup = class AegovSelectOptionGroup {
1541
3725
  z;
1542
3726
  el;
3727
+ /**
3728
+ * The label for this option group. @default ''
3729
+ */
3730
+ set label(_) { }
3731
+ ;
1543
3732
  constructor(c, r, z) {
1544
3733
  this.z = z;
1545
3734
  c.detach();
@@ -1567,13 +3756,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1567
3756
  let AegovSeparator = class AegovSeparator {
1568
3757
  z;
1569
3758
  el;
3759
+ /**
3760
+ * Orientation of the separator @default 'horizontal'
3761
+ */
3762
+ set orientation(_) { }
3763
+ ;
3764
+ /**
3765
+ * Appearance: 'solid' (full-strength line) or 'light' (subtle low-contrast line). Colour resolves from `variant`. @default 'solid'
3766
+ */
3767
+ set appearance(_) { }
3768
+ ;
3769
+ /**
3770
+ * Variant: colour family applied to line + text label. 'primary' (default), 'secondary', 'neutral-max' (aeblack-800 family), or 'neutral-min' (aeblack-100 family). @default 'primary'
3771
+ */
3772
+ set variant(_) { }
3773
+ ;
3774
+ /**
3775
+ * Optional text label displayed at the center of the separator
3776
+ */
3777
+ set text(_) { }
3778
+ ;
3779
+ /**
3780
+ * Numeric spacing applied on either side of the separator line, in Tailwind
3781
+ spacing units (1 unit = 0.25rem = 4px). Horizontal orientation → padding
3782
+ is applied on the block axis (top + bottom); vertical → inline axis
3783
+ (start + end). Accepts any non-negative number. `0` (default) keeps no
3784
+ padding.
3785
+
3786
+ Example: `gap="4"` produces `1rem` (16px) padding-block on a horizontal
3787
+ separator. @default 0
3788
+ */
3789
+ set gap(_) { }
3790
+ ;
3791
+ /**
3792
+ * Whether the separator is purely decorative (no semantic meaning) @default true
3793
+ */
3794
+ set isDecorative(_) { }
3795
+ ;
3796
+ /**
3797
+ * Additional CSS classes merged onto the inner separator element.
3798
+ */
3799
+ set extraClass(_) { }
3800
+ ;
1570
3801
  constructor(c, r, z) {
1571
3802
  this.z = z;
1572
3803
  c.detach();
1573
3804
  this.el = r.nativeElement;
1574
3805
  }
1575
3806
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovSeparator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1576
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovSeparator, isStandalone: true, selector: "aegov-separator", inputs: { appearance: "appearance", extraClass: "extraClass", gap: "gap", isDecorative: "isDecorative", orientation: "orientation", text: "text", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3807
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovSeparator, isStandalone: true, selector: "aegov-separator", inputs: { appearance: "appearance", extraClass: "extraClass", gap: ["gap", "gap", nullableNumberAttribute], isDecorative: ["isDecorative", "isDecorative", nullableBooleanAttribute], orientation: "orientation", text: "text", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1577
3808
  };
1578
3809
  AegovSeparator = __decorate([
1579
3810
  ProxyCmp({
@@ -1588,12 +3819,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1588
3819
  changeDetection: ChangeDetectionStrategy.OnPush,
1589
3820
  template: '<ng-content></ng-content>',
1590
3821
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1591
- inputs: ['appearance', 'extraClass', 'gap', 'isDecorative', 'orientation', 'text', 'variant'],
3822
+ inputs: ['appearance', 'extraClass', { name: 'gap', transform: nullableNumberAttribute }, { name: 'isDecorative', transform: nullableBooleanAttribute }, 'orientation', 'text', 'variant'],
1592
3823
  }]
1593
3824
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1594
3825
  let AegovTab = class AegovTab {
1595
3826
  z;
1596
3827
  el;
3828
+ /**
3829
+ * Unique identifier that must match the corresponding aegov-tab-panel's tab-id.
3830
+ */
3831
+ set tabId(_) { }
3832
+ ;
3833
+ /**
3834
+ * Disables this tab and its associated panel. @default false
3835
+ */
3836
+ set isDisabled(_) { }
3837
+ ;
3838
+ /**
3839
+ * The currently active tab id. Set automatically by the parent aegov-tabs. @default ''
3840
+ */
3841
+ set activeTabId(_) { }
3842
+ ;
3843
+ /**
3844
+ * Visual variant of the tabs. Set automatically by the parent aegov-tabs. @default 'simple'
3845
+ */
3846
+ set variant(_) { }
3847
+ ;
3848
+ /**
3849
+ * Size of the tab. Set automatically by the parent aegov-tabs. @default 'base'
3850
+ */
3851
+ set size(_) { }
3852
+ ;
3853
+ /**
3854
+ * Orientation of the tabs. Set automatically by the parent aegov-tabs. @default 'horizontal'
3855
+ */
3856
+ set orientation(_) { }
3857
+ ;
1597
3858
  aegovTabSelect = new EventEmitter();
1598
3859
  constructor(c, r, z) {
1599
3860
  this.z = z;
@@ -1601,7 +3862,7 @@ let AegovTab = class AegovTab {
1601
3862
  this.el = r.nativeElement;
1602
3863
  }
1603
3864
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1604
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovTab, isStandalone: true, selector: "aegov-tab", inputs: { activeTabId: "activeTabId", isDisabled: "isDisabled", orientation: "orientation", size: "size", tabId: "tabId", variant: "variant" }, outputs: { aegovTabSelect: "aegovTabSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3865
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovTab, isStandalone: true, selector: "aegov-tab", inputs: { activeTabId: "activeTabId", isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], orientation: "orientation", size: "size", tabId: "tabId", variant: "variant" }, outputs: { aegovTabSelect: "aegovTabSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1605
3866
  };
1606
3867
  AegovTab = __decorate([
1607
3868
  ProxyCmp({
@@ -1616,7 +3877,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1616
3877
  changeDetection: ChangeDetectionStrategy.OnPush,
1617
3878
  template: '<ng-content></ng-content>',
1618
3879
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1619
- inputs: ['activeTabId', 'isDisabled', 'orientation', 'size', { name: 'tabId', required: true }, 'variant'],
3880
+ inputs: ['activeTabId', { name: 'isDisabled', transform: nullableBooleanAttribute }, 'orientation', 'size', { name: 'tabId', required: true }, 'variant'],
1620
3881
  outputs: ['aegovTabSelect'],
1621
3882
  }]
1622
3883
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovTabSelect: [{
@@ -1625,13 +3886,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1625
3886
  let AegovTabPanel = class AegovTabPanel {
1626
3887
  z;
1627
3888
  el;
3889
+ /**
3890
+ * Unique identifier that must match the corresponding aegov-tab's tab-id.
3891
+ */
3892
+ set tabId(_) { }
3893
+ ;
3894
+ /**
3895
+ * Whether this panel is currently active. Set automatically by the parent aegov-tabs. @default false
3896
+ */
3897
+ set active(_) { }
3898
+ ;
3899
+ /**
3900
+ * Additional CSS classes merged onto the inner panel element.
3901
+ */
3902
+ set extraClass(_) { }
3903
+ ;
1628
3904
  constructor(c, r, z) {
1629
3905
  this.z = z;
1630
3906
  c.detach();
1631
3907
  this.el = r.nativeElement;
1632
3908
  }
1633
3909
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovTabPanel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1634
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovTabPanel, isStandalone: true, selector: "aegov-tab-panel", inputs: { active: "active", extraClass: "extraClass", tabId: "tabId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3910
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovTabPanel, isStandalone: true, selector: "aegov-tab-panel", inputs: { active: ["active", "active", nullableBooleanAttribute], extraClass: "extraClass", tabId: "tabId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1635
3911
  };
1636
3912
  AegovTabPanel = __decorate([
1637
3913
  ProxyCmp({
@@ -1646,12 +3922,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1646
3922
  changeDetection: ChangeDetectionStrategy.OnPush,
1647
3923
  template: '<ng-content></ng-content>',
1648
3924
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1649
- inputs: ['active', 'extraClass', { name: 'tabId', required: true }],
3925
+ inputs: [{ name: 'active', transform: nullableBooleanAttribute }, 'extraClass', { name: 'tabId', required: true }],
1650
3926
  }]
1651
3927
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1652
3928
  let AegovTabs = class AegovTabs {
1653
3929
  z;
1654
3930
  el;
3931
+ /**
3932
+ * Unique ID for the tabs container. Auto-generated if not provided.
3933
+ */
3934
+ set fieldId(_) { }
3935
+ ;
3936
+ /**
3937
+ * Visual style variant of the tabs.
3938
+ - `simple`: Underline style (default)
3939
+ - `segmented`: Button-group style, ideal for toggling views
3940
+ - `pill`: Pill-shaped individual tabs @default 'simple'
3941
+ */
3942
+ set variant(_) { }
3943
+ ;
3944
+ /**
3945
+ * The tab-id of the tab that should be active on initial render.
3946
+ If not provided, the first non-disabled tab is activated. @default ''
3947
+ */
3948
+ set defaultOpen(_) { }
3949
+ ;
3950
+ /**
3951
+ * Size of the tabs. @default 'base'
3952
+ */
3953
+ set size(_) { }
3954
+ ;
3955
+ /**
3956
+ * Enables horizontal scrolling when tabs overflow the container.
3957
+ A faded gradient edge is shown to indicate scrollable content. @default false
3958
+ */
3959
+ set isScrollable(_) { }
3960
+ ;
3961
+ /**
3962
+ * Distributes tabs evenly to fill the full width of the container.
3963
+ Each tab grows equally to occupy available space. @default false
3964
+ */
3965
+ set isStretchable(_) { }
3966
+ ;
3967
+ /**
3968
+ * Layout orientation of the tabs.
3969
+ - `horizontal`: Tabs appear above the panels (default)
3970
+ - `vertical`: Tabs appear to the side of the panels @default 'horizontal'
3971
+ */
3972
+ set orientation(_) { }
3973
+ ;
3974
+ /**
3975
+ * Accessible label for the tablist element.
3976
+ Provides context for screen readers about what the tabs control.
3977
+ Defaults to a bilingual auto-detected string ("Tabs" / "علامات التبويب"). @default ''
3978
+ */
3979
+ set labelTablist(_) { }
3980
+ ;
1655
3981
  aegovTabChange = new EventEmitter();
1656
3982
  constructor(c, r, z) {
1657
3983
  this.z = z;
@@ -1659,7 +3985,7 @@ let AegovTabs = class AegovTabs {
1659
3985
  this.el = r.nativeElement;
1660
3986
  }
1661
3987
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1662
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovTabs, isStandalone: true, selector: "aegov-tabs", inputs: { defaultOpen: "defaultOpen", fieldId: "fieldId", isScrollable: "isScrollable", isStretchable: "isStretchable", labelTablist: "labelTablist", orientation: "orientation", size: "size", variant: "variant" }, outputs: { aegovTabChange: "aegovTabChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3988
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovTabs, isStandalone: true, selector: "aegov-tabs", inputs: { defaultOpen: "defaultOpen", fieldId: "fieldId", isScrollable: ["isScrollable", "isScrollable", nullableBooleanAttribute], isStretchable: ["isStretchable", "isStretchable", nullableBooleanAttribute], labelTablist: "labelTablist", orientation: "orientation", size: "size", variant: "variant" }, outputs: { aegovTabChange: "aegovTabChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1663
3989
  };
1664
3990
  AegovTabs = __decorate([
1665
3991
  ProxyCmp({
@@ -1674,7 +4000,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1674
4000
  changeDetection: ChangeDetectionStrategy.OnPush,
1675
4001
  template: '<ng-content></ng-content>',
1676
4002
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1677
- inputs: ['defaultOpen', 'fieldId', 'isScrollable', 'isStretchable', 'labelTablist', 'orientation', 'size', 'variant'],
4003
+ inputs: ['defaultOpen', 'fieldId', { name: 'isScrollable', transform: nullableBooleanAttribute }, { name: 'isStretchable', transform: nullableBooleanAttribute }, 'labelTablist', 'orientation', 'size', 'variant'],
1678
4004
  outputs: ['aegovTabChange'],
1679
4005
  }]
1680
4006
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovTabChange: [{
@@ -1683,6 +4009,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1683
4009
  let AegovText = class AegovText {
1684
4010
  z;
1685
4011
  el;
4012
+ /**
4013
+ * The size of the text. @default 'base'
4014
+ */
4015
+ set size(_) { }
4016
+ ;
4017
+ /**
4018
+ * Additional CSS classes to apply to the text.
4019
+ */
4020
+ set extraClass(_) { }
4021
+ ;
1686
4022
  constructor(c, r, z) {
1687
4023
  this.z = z;
1688
4024
  c.detach();
@@ -1710,6 +4046,91 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1710
4046
  let AegovTextarea = class AegovTextarea {
1711
4047
  z;
1712
4048
  el;
4049
+ /**
4050
+ * Unique ID for the native textarea element. Auto-generated if not provided.
4051
+ */
4052
+ set fieldId(_) { }
4053
+ ;
4054
+ /**
4055
+ * The size of the textarea (affects font size only). @default 'base'
4056
+ */
4057
+ set size(_) { }
4058
+ ;
4059
+ /**
4060
+ * Colour family. Drives idle ring, value text, and accent hover.
4061
+ */
4062
+ set variant(_) { }
4063
+ ;
4064
+ /**
4065
+ * Whether the textarea is disabled. @default false
4066
+ */
4067
+ set isDisabled(_) { }
4068
+ ;
4069
+ /**
4070
+ * Whether the textarea is readonly. @default false
4071
+ */
4072
+ set isReadonly(_) { }
4073
+ ;
4074
+ /**
4075
+ * Placeholder text for the textarea.
4076
+ */
4077
+ set placeholder(_) { }
4078
+ ;
4079
+ /**
4080
+ * The current value of the textarea. @default ''
4081
+ */
4082
+ set value(_) { }
4083
+ ;
4084
+ /**
4085
+ * The name attribute for the textarea. Reflected so ElementInternals can read it for form submission.
4086
+ */
4087
+ set name(_) { }
4088
+ ;
4089
+ /**
4090
+ * Whether the textarea is required. @default false
4091
+ */
4092
+ set isRequired(_) { }
4093
+ ;
4094
+ /**
4095
+ * Resize behaviour of the textarea. @default 'vertical'
4096
+ */
4097
+ set resize(_) { }
4098
+ ;
4099
+ /**
4100
+ * Maximum number of characters. When set, a character counter is displayed.
4101
+ */
4102
+ set maxlength(_) { }
4103
+ ;
4104
+ /**
4105
+ * Show a copy button to copy the textarea value to clipboard. Only applies when readonly. @default false
4106
+ */
4107
+ set isCopyable(_) { }
4108
+ ;
4109
+ /**
4110
+ * Visual + a11y invalid state. Toggles `aria-invalid` and `.is-invalid` host class. See validation-engine-addon.md §2.3. @default false
4111
+ */
4112
+ set isInvalid(_) { }
4113
+ ;
4114
+ /**
4115
+ * Inline error message rendered below the control when `isInvalid` is true. Use `error` slot for richer markup. @default ''
4116
+ */
4117
+ set errorMessage(_) { }
4118
+ ;
4119
+ /**
4120
+ * Helper hint rendered below the control. Hidden when an error is shown. Use `hint` slot for richer markup. @default ''
4121
+ */
4122
+ set hint(_) { }
4123
+ ;
4124
+ /**
4125
+ * Additional CSS classes to apply.
4126
+
4127
+ This component renders in a real shadow root, which normally blocks the page's CSS
4128
+ from reaching inside it. Margin/padding utilities (e.g. `mt-4`, `md:px-6`) are copied
4129
+ in from the page's own stylesheets at runtime and work as expected; other utilities
4130
+ (colour, border, typography, etc.) still have no effect — see #35.
4131
+ */
4132
+ set extraClass(_) { }
4133
+ ;
1713
4134
  aegovTextareaChange = new EventEmitter();
1714
4135
  aegovTextareaValue = new EventEmitter();
1715
4136
  aegovTextareaFocus = new EventEmitter();
@@ -1721,7 +4142,7 @@ let AegovTextarea = class AegovTextarea {
1721
4142
  this.el = r.nativeElement;
1722
4143
  }
1723
4144
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1724
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovTextarea, isStandalone: true, selector: "aegov-textarea", inputs: { errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isCopyable: "isCopyable", isDisabled: "isDisabled", isInvalid: "isInvalid", isReadonly: "isReadonly", isRequired: "isRequired", maxlength: "maxlength", name: "name", placeholder: "placeholder", resize: "resize", size: "size", value: "value", variant: "variant" }, outputs: { aegovTextareaChange: "aegovTextareaChange", aegovTextareaValue: "aegovTextareaValue", aegovTextareaFocus: "aegovTextareaFocus", aegovTextareaBlur: "aegovTextareaBlur", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
4145
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovTextarea, isStandalone: true, selector: "aegov-textarea", inputs: { errorMessage: "errorMessage", extraClass: "extraClass", fieldId: "fieldId", hint: "hint", isCopyable: ["isCopyable", "isCopyable", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isReadonly: ["isReadonly", "isReadonly", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], maxlength: ["maxlength", "maxlength", nullableNumberAttribute], name: "name", placeholder: "placeholder", resize: "resize", size: "size", value: "value", variant: "variant" }, outputs: { aegovTextareaChange: "aegovTextareaChange", aegovTextareaValue: "aegovTextareaValue", aegovTextareaFocus: "aegovTextareaFocus", aegovTextareaBlur: "aegovTextareaBlur", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1725
4146
  };
1726
4147
  AegovTextarea = __decorate([
1727
4148
  ProxyCmp({
@@ -1737,7 +4158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1737
4158
  changeDetection: ChangeDetectionStrategy.OnPush,
1738
4159
  template: '<ng-content></ng-content>',
1739
4160
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1740
- inputs: ['errorMessage', 'extraClass', 'fieldId', 'hint', 'isCopyable', 'isDisabled', 'isInvalid', 'isReadonly', 'isRequired', 'maxlength', 'name', 'placeholder', 'resize', 'size', 'value', 'variant'],
4161
+ inputs: ['errorMessage', 'extraClass', 'fieldId', 'hint', { name: 'isCopyable', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isReadonly', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, { name: 'maxlength', transform: nullableNumberAttribute }, 'name', 'placeholder', 'resize', 'size', 'value', 'variant'],
1741
4162
  outputs: ['aegovTextareaChange', 'aegovTextareaValue', 'aegovTextareaFocus', 'aegovTextareaBlur', 'aegovValidate'],
1742
4163
  }]
1743
4164
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovTextareaChange: [{
@@ -1754,6 +4175,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1754
4175
  let AegovTimeline = class AegovTimeline {
1755
4176
  z;
1756
4177
  el;
4178
+ /**
4179
+ * Unique ID for the timeline nav element. Auto-generated if not provided.
4180
+ */
4181
+ set fieldId(_) { }
4182
+ ;
4183
+ /**
4184
+ * Visual variant: default (numbered circles) or compact (dots). @default 'default'
4185
+ */
4186
+ set variant(_) { }
4187
+ ;
4188
+ /**
4189
+ * Size of step indicators. @default 'base'
4190
+ */
4191
+ set size(_) { }
4192
+ ;
4193
+ /**
4194
+ * Layout orientation. @default 'horizontal'
4195
+ */
4196
+ set orientation(_) { }
4197
+ ;
1757
4198
  constructor(c, r, z) {
1758
4199
  this.z = z;
1759
4200
  c.detach();
@@ -1781,6 +4222,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1781
4222
  let AegovTimelineStep = class AegovTimelineStep {
1782
4223
  z;
1783
4224
  el;
4225
+ /**
4226
+ * Step status. @default 'pending'
4227
+ */
4228
+ set status(_) { }
4229
+ ;
4230
+ /**
4231
+ * Optional description shown below the label.
4232
+ */
4233
+ set description(_) { }
4234
+ ;
1784
4235
  constructor(c, r, z) {
1785
4236
  this.z = z;
1786
4237
  c.detach();
@@ -1808,6 +4259,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1808
4259
  let AegovTitle = class AegovTitle {
1809
4260
  z;
1810
4261
  el;
4262
+ /**
4263
+ * Unique ID for the title element. Auto-generated if not provided.
4264
+ */
4265
+ set fieldId(_) { }
4266
+ ;
4267
+ /**
4268
+ * The size of the title text. @default 'base'
4269
+ */
4270
+ set size(_) { }
4271
+ ;
4272
+ /**
4273
+ * The semantic wrapper tag for the title. When set, renders the title
4274
+ inside the specified heading tag (`h2`–`h6`) or a `p`. When omitted,
4275
+ the title renders as a `<p>` (default).
4276
+ */
4277
+ set headingType(_) { }
4278
+ ;
4279
+ /**
4280
+ * Additional CSS classes to apply to the title.
4281
+ */
4282
+ set extraClass(_) { }
4283
+ ;
1811
4284
  constructor(c, r, z) {
1812
4285
  this.z = z;
1813
4286
  c.detach();
@@ -1835,6 +4308,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1835
4308
  let AegovToast = class AegovToast {
1836
4309
  z;
1837
4310
  el;
4311
+ /**
4312
+ * Semantic color variant of the toast. @default 'default'
4313
+ */
4314
+ set variant(_) { }
4315
+ ;
4316
+ /**
4317
+ * Appearance style: soft (light bg) or solid (dark bg). @default 'soft'
4318
+ */
4319
+ set appearance(_) { }
4320
+ ;
4321
+ /**
4322
+ * Screen position where the toast appears. @default 'top-right'
4323
+ */
4324
+ set position(_) { }
4325
+ ;
4326
+ /**
4327
+ * Auto-dismiss duration in milliseconds. 0 = no auto-dismiss. @default 5000
4328
+ */
4329
+ set duration(_) { }
4330
+ ;
4331
+ /**
4332
+ * Whether the toast shows a close button. @default true
4333
+ */
4334
+ set isDismissible(_) { }
4335
+ ;
4336
+ /**
4337
+ * Display mode for multiple toasts at the same position.
4338
+ 'stack' = all toasts visible with gap between them (default).
4339
+ 'rack' = toasts collapse into a deck; hover to expand. @default 'stack'
4340
+ */
4341
+ set mode(_) { }
4342
+ ;
4343
+ /**
4344
+ * Whether to show a countdown progress bar. @default false
4345
+ */
4346
+ set isProgressEnabled(_) { }
4347
+ ;
1838
4348
  aegovToastOpen = new EventEmitter();
1839
4349
  aegovToastClose = new EventEmitter();
1840
4350
  aegovToastDismiss = new EventEmitter();
@@ -1844,7 +4354,7 @@ let AegovToast = class AegovToast {
1844
4354
  this.el = r.nativeElement;
1845
4355
  }
1846
4356
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1847
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovToast, isStandalone: true, selector: "aegov-toast", inputs: { appearance: "appearance", duration: "duration", isDismissible: "isDismissible", isProgressEnabled: "isProgressEnabled", mode: "mode", position: "position", variant: "variant" }, outputs: { aegovToastOpen: "aegovToastOpen", aegovToastClose: "aegovToastClose", aegovToastDismiss: "aegovToastDismiss" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
4357
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovToast, isStandalone: true, selector: "aegov-toast", inputs: { appearance: "appearance", duration: ["duration", "duration", nullableNumberAttribute], isDismissible: ["isDismissible", "isDismissible", nullableBooleanAttribute], isProgressEnabled: ["isProgressEnabled", "isProgressEnabled", nullableBooleanAttribute], mode: "mode", position: "position", variant: "variant" }, outputs: { aegovToastOpen: "aegovToastOpen", aegovToastClose: "aegovToastClose", aegovToastDismiss: "aegovToastDismiss" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1848
4358
  };
1849
4359
  AegovToast = __decorate([
1850
4360
  ProxyCmp({
@@ -1860,7 +4370,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1860
4370
  changeDetection: ChangeDetectionStrategy.OnPush,
1861
4371
  template: '<ng-content></ng-content>',
1862
4372
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1863
- inputs: ['appearance', 'duration', 'isDismissible', 'isProgressEnabled', 'mode', 'position', 'variant'],
4373
+ inputs: ['appearance', { name: 'duration', transform: nullableNumberAttribute }, { name: 'isDismissible', transform: nullableBooleanAttribute }, { name: 'isProgressEnabled', transform: nullableBooleanAttribute }, 'mode', 'position', 'variant'],
1864
4374
  outputs: ['aegovToastOpen', 'aegovToastClose', 'aegovToastDismiss'],
1865
4375
  }]
1866
4376
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovToastOpen: [{
@@ -1873,6 +4383,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1873
4383
  let AegovToggle = class AegovToggle {
1874
4384
  z;
1875
4385
  el;
4386
+ /**
4387
+ * Unique ID for the native checkbox element. Auto-generated if not provided.
4388
+ */
4389
+ set fieldId(_) { }
4390
+ ;
4391
+ /**
4392
+ * The name attribute for the toggle. Reflected so ElementInternals can read it for form submission.
4393
+ */
4394
+ set name(_) { }
4395
+ ;
4396
+ /**
4397
+ * The value attribute for the toggle.
4398
+ */
4399
+ set value(_) { }
4400
+ ;
4401
+ /**
4402
+ * Whether the toggle is checked/on. @default false
4403
+ */
4404
+ set isChecked(_) { }
4405
+ ;
4406
+ /**
4407
+ * The size of the toggle. @default 'base'
4408
+ */
4409
+ set size(_) { }
4410
+ ;
4411
+ /**
4412
+ * Colour family. Drives ON track bg. OFF track stays aeblack-200. Focus ring stays camel; error stays aered.
4413
+ */
4414
+ set variant(_) { }
4415
+ ;
4416
+ /**
4417
+ * Whether the toggle is disabled. @default false
4418
+ */
4419
+ set isDisabled(_) { }
4420
+ ;
4421
+ /**
4422
+ * Whether the toggle is required. @default false
4423
+ */
4424
+ set isRequired(_) { }
4425
+ ;
4426
+ /**
4427
+ * Label text for the toggle. Rendered at the end (inline-end).
4428
+ */
4429
+ set label(_) { }
4430
+ ;
4431
+ /**
4432
+ * Helper hint text displayed below the label. Renamed from `description` per §6.6.
4433
+ Hidden when an error is shown.
4434
+ */
4435
+ set hint(_) { }
4436
+ ;
4437
+ /**
4438
+ * Visual + a11y invalid state. See §2.3. @default false
4439
+ */
4440
+ set isInvalid(_) { }
4441
+ ;
4442
+ /**
4443
+ * Inline error message. Use `error` slot for rich markup. @default ''
4444
+ */
4445
+ set errorMessage(_) { }
4446
+ ;
1876
4447
  aegovToggleChange = new EventEmitter();
1877
4448
  aegovValidate = new EventEmitter();
1878
4449
  constructor(c, r, z) {
@@ -1881,7 +4452,7 @@ let AegovToggle = class AegovToggle {
1881
4452
  this.el = r.nativeElement;
1882
4453
  }
1883
4454
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1884
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovToggle, isStandalone: true, selector: "aegov-toggle", inputs: { errorMessage: "errorMessage", fieldId: "fieldId", hint: "hint", isChecked: "isChecked", isDisabled: "isDisabled", isInvalid: "isInvalid", isRequired: "isRequired", label: "label", name: "name", size: "size", value: "value", variant: "variant" }, outputs: { aegovToggleChange: "aegovToggleChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
4455
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovToggle, isStandalone: true, selector: "aegov-toggle", inputs: { errorMessage: "errorMessage", fieldId: "fieldId", hint: "hint", isChecked: ["isChecked", "isChecked", nullableBooleanAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], isInvalid: ["isInvalid", "isInvalid", nullableBooleanAttribute], isRequired: ["isRequired", "isRequired", nullableBooleanAttribute], label: "label", name: "name", size: "size", value: "value", variant: "variant" }, outputs: { aegovToggleChange: "aegovToggleChange", aegovValidate: "aegovValidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1885
4456
  };
1886
4457
  AegovToggle = __decorate([
1887
4458
  ProxyCmp({
@@ -1897,7 +4468,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1897
4468
  changeDetection: ChangeDetectionStrategy.OnPush,
1898
4469
  template: '<ng-content></ng-content>',
1899
4470
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1900
- inputs: ['errorMessage', 'fieldId', 'hint', 'isChecked', 'isDisabled', 'isInvalid', 'isRequired', 'label', 'name', 'size', 'value', 'variant'],
4471
+ inputs: ['errorMessage', 'fieldId', 'hint', { name: 'isChecked', transform: nullableBooleanAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'isInvalid', transform: nullableBooleanAttribute }, { name: 'isRequired', transform: nullableBooleanAttribute }, 'label', 'name', 'size', 'value', 'variant'],
1901
4472
  outputs: ['aegovToggleChange', 'aegovValidate'],
1902
4473
  }]
1903
4474
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { aegovToggleChange: [{
@@ -1908,13 +4479,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1908
4479
  let AegovTooltip = class AegovTooltip {
1909
4480
  z;
1910
4481
  el;
4482
+ /**
4483
+ * Tooltip content text (alternative to using slot)
4484
+ */
4485
+ set content(_) { }
4486
+ ;
4487
+ /**
4488
+ * Position of the tooltip relative to the trigger element @default 'top'
4489
+ */
4490
+ set position(_) { }
4491
+ ;
4492
+ /**
4493
+ * Alignment of the tooltip @default 'center'
4494
+ */
4495
+ set align(_) { }
4496
+ ;
4497
+ /**
4498
+ * Trigger type for showing the tooltip @default 'hover'
4499
+ */
4500
+ set trigger(_) { }
4501
+ ;
4502
+ /**
4503
+ * Gap between tooltip and trigger element (in pixels) @default 8
4504
+ */
4505
+ set gap(_) { }
4506
+ ;
4507
+ /**
4508
+ * Additional offset for tooltip positioning (in pixels) @default 0
4509
+ */
4510
+ set offset(_) { }
4511
+ ;
4512
+ /**
4513
+ * Whether the tooltip is disabled @default false
4514
+ */
4515
+ set isDisabled(_) { }
4516
+ ;
4517
+ /**
4518
+ * Delay before showing tooltip (in milliseconds) @default 200
4519
+ */
4520
+ set delayStart(_) { }
4521
+ ;
4522
+ /**
4523
+ * Delay before hiding tooltip (in milliseconds) @default 0
4524
+ */
4525
+ set delayEnd(_) { }
4526
+ ;
1911
4527
  constructor(c, r, z) {
1912
4528
  this.z = z;
1913
4529
  c.detach();
1914
4530
  this.el = r.nativeElement;
1915
4531
  }
1916
4532
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: AegovTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1917
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: AegovTooltip, isStandalone: true, selector: "aegov-tooltip", inputs: { align: "align", content: "content", delayEnd: "delayEnd", delayStart: "delayStart", gap: "gap", isDisabled: "isDisabled", offset: "offset", position: "position", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
4533
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.1", type: AegovTooltip, isStandalone: true, selector: "aegov-tooltip", inputs: { align: "align", content: "content", delayEnd: ["delayEnd", "delayEnd", nullableNumberAttribute], delayStart: ["delayStart", "delayStart", nullableNumberAttribute], gap: ["gap", "gap", nullableNumberAttribute], isDisabled: ["isDisabled", "isDisabled", nullableBooleanAttribute], offset: ["offset", "offset", nullableNumberAttribute], position: "position", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1918
4534
  };
1919
4535
  AegovTooltip = __decorate([
1920
4536
  ProxyCmp({
@@ -1929,7 +4545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
1929
4545
  changeDetection: ChangeDetectionStrategy.OnPush,
1930
4546
  template: '<ng-content></ng-content>',
1931
4547
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1932
- inputs: ['align', 'content', 'delayEnd', 'delayStart', 'gap', 'isDisabled', 'offset', 'position', 'trigger'],
4548
+ inputs: ['align', 'content', { name: 'delayEnd', transform: nullableNumberAttribute }, { name: 'delayStart', transform: nullableNumberAttribute }, { name: 'gap', transform: nullableNumberAttribute }, { name: 'isDisabled', transform: nullableBooleanAttribute }, { name: 'offset', transform: nullableNumberAttribute }, 'position', 'trigger'],
1933
4549
  }]
1934
4550
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1935
4551
 
@@ -1993,30 +4609,27 @@ const DIRECTIVES = [
1993
4609
  AegovTooltip
1994
4610
  ];
1995
4611
 
1996
- function initializeDesignSystem() {
1997
- return () => defineCustomElements();
1998
- }
1999
- const APP_INIT_PROVIDER = {
2000
- provide: APP_INITIALIZER,
2001
- useFactory: initializeDesignSystem,
2002
- multi: true,
2003
- };
4612
+ /**
4613
+ * Re-exports every wrapper. Has no providers, so importing it into a standalone
4614
+ * component adds no code beyond the wrappers. Each wrapper registers its own element.
4615
+ *
4616
+ * Apps that want the global setup add `provideDesignSystem()` from
4617
+ * `@aegov/designsystem-angular/provider` to their providers. This entry point never
4618
+ * references it: a bundler emits the lazy loader's ~70 chunk files for any module it
4619
+ * includes that imports the loader, even when the app never calls the function.
4620
+ */
2004
4621
  class DesignSystemModule {
2005
4622
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: DesignSystemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2006
4623
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: DesignSystemModule, imports: [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], exports: [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] });
2007
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: DesignSystemModule, providers: [APP_INIT_PROVIDER] });
4624
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: DesignSystemModule });
2008
4625
  }
2009
4626
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: DesignSystemModule, decorators: [{
2010
4627
  type: NgModule,
2011
4628
  args: [{
2012
4629
  imports: [...DIRECTIVES],
2013
4630
  exports: [...DIRECTIVES],
2014
- providers: [APP_INIT_PROVIDER],
2015
4631
  }]
2016
4632
  }] });
2017
- function provideDesignSystem() {
2018
- return makeEnvironmentProviders([APP_INIT_PROVIDER]);
2019
- }
2020
4633
 
2021
4634
  /*
2022
4635
  * Public API Surface of component-library
@@ -2026,5 +4639,5 @@ function provideDesignSystem() {
2026
4639
  * Generated bundle index. Do not edit.
2027
4640
  */
2028
4641
 
2029
- 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 };
4642
+ 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 };
2030
4643
  //# sourceMappingURL=aegov-designsystem-angular.mjs.map