@ojiepermana/angular-component 22.0.44 → 22.0.46

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.
Files changed (65) hide show
  1. package/fesm2022/ojiepermana-angular-component-accordion.mjs +9 -11
  2. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +100 -32
  3. package/fesm2022/ojiepermana-angular-component-alert.mjs +5 -9
  4. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +2 -3
  5. package/fesm2022/ojiepermana-angular-component-avatar.mjs +7 -13
  6. package/fesm2022/ojiepermana-angular-component-badge.mjs +2 -3
  7. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +16 -19
  8. package/fesm2022/ojiepermana-angular-component-button-group.mjs +4 -7
  9. package/fesm2022/ojiepermana-angular-component-button.mjs +2 -3
  10. package/fesm2022/ojiepermana-angular-component-calendar.mjs +7 -5
  11. package/fesm2022/ojiepermana-angular-component-card.mjs +8 -15
  12. package/fesm2022/ojiepermana-angular-component-carousel.mjs +15 -18
  13. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +40 -11
  14. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +8 -6
  15. package/fesm2022/ojiepermana-angular-component-combobox.mjs +36 -16
  16. package/fesm2022/ojiepermana-angular-component-command.mjs +25 -21
  17. package/fesm2022/ojiepermana-angular-component-composer.mjs +15 -18
  18. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +36 -11
  19. package/fesm2022/ojiepermana-angular-component-dialog.mjs +85 -30
  20. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +31 -26
  21. package/fesm2022/ojiepermana-angular-component-editor.mjs +37 -28
  22. package/fesm2022/ojiepermana-angular-component-empty.mjs +7 -13
  23. package/fesm2022/ojiepermana-angular-component-form.mjs +32 -24
  24. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +2 -3
  25. package/fesm2022/ojiepermana-angular-component-icon.mjs +51 -6
  26. package/fesm2022/ojiepermana-angular-component-input-group.mjs +17 -15
  27. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +15 -14
  28. package/fesm2022/ojiepermana-angular-component-input.mjs +2 -3
  29. package/fesm2022/ojiepermana-angular-component-item.mjs +11 -21
  30. package/fesm2022/ojiepermana-angular-component-kanban.mjs +27 -26
  31. package/fesm2022/ojiepermana-angular-component-kbd.mjs +3 -5
  32. package/fesm2022/ojiepermana-angular-component-label.mjs +2 -3
  33. package/fesm2022/ojiepermana-angular-component-menubar.mjs +6 -6
  34. package/fesm2022/ojiepermana-angular-component-native-select.mjs +3 -3
  35. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +25 -12
  36. package/fesm2022/ojiepermana-angular-component-pagination.mjs +22 -13
  37. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +70 -36
  38. package/fesm2022/ojiepermana-angular-component-progress.mjs +7 -5
  39. package/fesm2022/ojiepermana-angular-component-radio.mjs +21 -10
  40. package/fesm2022/ojiepermana-angular-component-resizable.mjs +22 -11
  41. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +8 -6
  42. package/fesm2022/ojiepermana-angular-component-select.mjs +29 -17
  43. package/fesm2022/ojiepermana-angular-component-separator.mjs +2 -3
  44. package/fesm2022/ojiepermana-angular-component-sheet.mjs +89 -30
  45. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +2 -3
  46. package/fesm2022/ojiepermana-angular-component-slider.mjs +25 -13
  47. package/fesm2022/ojiepermana-angular-component-spinner.mjs +6 -5
  48. package/fesm2022/ojiepermana-angular-component-switch.mjs +17 -8
  49. package/fesm2022/ojiepermana-angular-component-table.mjs +9 -17
  50. package/fesm2022/ojiepermana-angular-component-tabs.mjs +5 -9
  51. package/fesm2022/ojiepermana-angular-component-textarea.mjs +2 -3
  52. package/fesm2022/ojiepermana-angular-component-timeline.mjs +22 -17
  53. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +12 -6
  54. package/fesm2022/ojiepermana-angular-component-toggle.mjs +2 -3
  55. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +7 -6
  56. package/package.json +10 -1
  57. package/types/ojiepermana-angular-component-alert-dialog.d.ts +42 -3
  58. package/types/ojiepermana-angular-component-combobox.d.ts +4 -1
  59. package/types/ojiepermana-angular-component-command.d.ts +7 -2
  60. package/types/ojiepermana-angular-component-dialog.d.ts +33 -3
  61. package/types/ojiepermana-angular-component-form.d.ts +9 -0
  62. package/types/ojiepermana-angular-component-icon.d.ts +48 -1
  63. package/types/ojiepermana-angular-component-radio.d.ts +4 -1
  64. package/types/ojiepermana-angular-component-sheet.d.ts +33 -3
  65. package/types/ojiepermana-angular-component-timeline.d.ts +2 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, input, model, computed, forwardRef, ChangeDetectionStrategy, Component, inject } from '@angular/core';
2
+ import { Directive, input, model, computed, forwardRef, Component, inject } from '@angular/core';
3
3
  import { cn, radiusBaseValue, densityBaseValue, uniqueId } from '@ojiepermana/angular-component/utils';
4
4
 
5
5
  class AccordionContextBase {
@@ -58,13 +58,12 @@ class AccordionComponent extends AccordionContextBase {
58
58
  }
59
59
  }
60
60
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
61
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AccordionComponent, isStandalone: true, selector: "Accordion", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "classes()", "style.--radius-base": "radiusBase()", "style.--spacing-base": "densityBase()" } }, providers: [{ provide: AccordionContextBase, useExisting: forwardRef(() => AccordionComponent) }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
61
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AccordionComponent, isStandalone: true, selector: "Accordion", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "classes()", "style.--radius-base": "radiusBase()", "style.--spacing-base": "densityBase()" } }, providers: [{ provide: AccordionContextBase, useExisting: forwardRef(() => AccordionComponent) }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true });
62
62
  }
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AccordionComponent, decorators: [{
64
64
  type: Component,
65
65
  args: [{
66
66
  selector: 'Accordion',
67
- changeDetection: ChangeDetectionStrategy.OnPush,
68
67
  providers: [{ provide: AccordionContextBase, useExisting: forwardRef(() => AccordionComponent) }],
69
68
  host: {
70
69
  '[class]': 'classes()',
@@ -93,13 +92,12 @@ class AccordionItemComponent {
93
92
  this.ctx.toggle(this.value());
94
93
  }
95
94
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AccordionItemComponent, isStandalone: true, selector: "AccordionItem", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-state": "open() ? \"open\" : \"closed\"", "attr.data-disabled": "disabled() ? \"\" : null" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
95
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AccordionItemComponent, isStandalone: true, selector: "AccordionItem", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-state": "open() ? \"open\" : \"closed\"", "attr.data-disabled": "disabled() ? \"\" : null" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
97
96
  }
98
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AccordionItemComponent, decorators: [{
99
98
  type: Component,
100
99
  args: [{
101
100
  selector: 'AccordionItem',
102
- changeDetection: ChangeDetectionStrategy.OnPush,
103
101
  host: {
104
102
  '[class]': 'classes()',
105
103
  '[attr.data-state]': 'open() ? "open" : "closed"',
@@ -126,16 +124,16 @@ class AccordionTriggerComponent {
126
124
  stroke="currentColor"
127
125
  stroke-width="2"
128
126
  stroke-linecap="round"
129
- stroke-linejoin="round">
127
+ stroke-linejoin="round"
128
+ >
130
129
  <polyline points="6 9 12 15 18 9" />
131
130
  </svg>
132
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
131
+ `, isInline: true });
133
132
  }
134
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AccordionTriggerComponent, decorators: [{
135
134
  type: Component,
136
135
  args: [{
137
136
  selector: 'button[AccordionTrigger]',
138
- changeDetection: ChangeDetectionStrategy.OnPush,
139
137
  host: {
140
138
  '[class]': 'classes()',
141
139
  type: 'button',
@@ -157,7 +155,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
157
155
  stroke="currentColor"
158
156
  stroke-width="2"
159
157
  stroke-linecap="round"
160
- stroke-linejoin="round">
158
+ stroke-linejoin="round"
159
+ >
161
160
  <polyline points="6 9 12 15 18 9" />
162
161
  </svg>
163
162
  `,
@@ -170,13 +169,12 @@ class AccordionContentComponent {
170
169
  classes = computed(() => cn('block overflow-hidden text-sm', this.class()), /* @ts-ignore */
171
170
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
172
171
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AccordionContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
173
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AccordionContentComponent, isStandalone: true, selector: "AccordionContent", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.id": "item.contentId", "attr.role": "\"region\"", "attr.aria-labelledby": "item.triggerId", "attr.data-state": "item.open() ? \"open\" : \"closed\"", "hidden": "!item.open()" } }, ngImport: i0, template: `<div class="pb-4 pt-0 text-sm"><ng-content /></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
172
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AccordionContentComponent, isStandalone: true, selector: "AccordionContent", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.id": "item.contentId", "attr.role": "\"region\"", "attr.aria-labelledby": "item.triggerId", "attr.data-state": "item.open() ? \"open\" : \"closed\"", "hidden": "!item.open()" } }, ngImport: i0, template: `<div class="pb-4 pt-0 text-sm"><ng-content /></div>`, isInline: true });
174
173
  }
175
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AccordionContentComponent, decorators: [{
176
175
  type: Component,
177
176
  args: [{
178
177
  selector: 'AccordionContent',
179
- changeDetection: ChangeDetectionStrategy.OnPush,
180
178
  host: {
181
179
  '[class]': 'classes()',
182
180
  '[attr.id]': 'item.contentId',
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { model, input, output, signal, computed, ChangeDetectionStrategy, Component, inject, effect, ElementRef } from '@angular/core';
3
- import { cn } from '@ojiepermana/angular-component/utils';
2
+ import { model, input, output, signal, computed, Component, inject, effect, DestroyRef, ElementRef } from '@angular/core';
3
+ import { cn, uniqueId } from '@ojiepermana/angular-component/utils';
4
4
  import { DialogComponent } from '@ojiepermana/angular-component/dialog';
5
5
  import { buttonVariants } from '@ojiepermana/angular-component/button';
6
6
 
@@ -8,6 +8,15 @@ const ALERT_DIALOG_SIZE_CLASSES = {
8
8
  default: 'sm:max-w-lg',
9
9
  sm: 'sm:max-w-sm',
10
10
  };
11
+ /**
12
+ * Confirmation dialog with `role="alertdialog"`.
13
+ *
14
+ * For the accessible name/description to wire up automatically, project the
15
+ * matching `AlertDialogTitle` / `AlertDialogDescription` parts (they register
16
+ * their ids with this component). Plain `DialogTitle` / `DialogDescription` will
17
+ * not auto-wire here — pass `aria-labelledby` / `aria-describedby` explicitly if
18
+ * you use custom markup.
19
+ */
11
20
  class AlertDialogComponent {
12
21
  open = model(false, /* @ts-ignore */
13
22
  ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
@@ -21,6 +30,9 @@ class AlertDialogComponent {
21
30
  ...(ngDevMode ? [{ debugName: "closeButtonLabel" }] : /* istanbul ignore next */ []));
22
31
  labelledBy = input(null, { ...(ngDevMode ? { debugName: "labelledBy" } : /* istanbul ignore next */ {}), alias: 'aria-labelledby' });
23
32
  describedBy = input(null, { ...(ngDevMode ? { debugName: "describedBy" } : /* istanbul ignore next */ {}), alias: 'aria-describedby' });
33
+ /** ARIA role passed to the underlying dialog surface. `'alertdialog'` by default. */
34
+ role = input('alertdialog', /* @ts-ignore */
35
+ ...(ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []));
24
36
  class = input('', /* @ts-ignore */
25
37
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
26
38
  radius = input('inherit', /* @ts-ignore */
@@ -30,58 +42,98 @@ class AlertDialogComponent {
30
42
  openedChange = output();
31
43
  contentSize = signal('default', /* @ts-ignore */
32
44
  ...(ngDevMode ? [{ debugName: "contentSize" }] : /* istanbul ignore next */ []));
45
+ registeredTitleId = signal(null, /* @ts-ignore */
46
+ ...(ngDevMode ? [{ debugName: "registeredTitleId" }] : /* istanbul ignore next */ []));
47
+ registeredDescriptionId = signal(null, /* @ts-ignore */
48
+ ...(ngDevMode ? [{ debugName: "registeredDescriptionId" }] : /* istanbul ignore next */ []));
33
49
  resolvedSize = computed(() => this.contentSize(), /* @ts-ignore */
34
50
  ...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
35
51
  surfaceClasses = computed(() => cn(ALERT_DIALOG_SIZE_CLASSES[this.resolvedSize()], this.class()), /* @ts-ignore */
36
52
  ...(ngDevMode ? [{ debugName: "surfaceClasses" }] : /* istanbul ignore next */ []));
53
+ /** Explicit `aria-labelledby` wins; otherwise a projected `AlertDialogTitle` supplies the id. */
54
+ resolvedLabelledBy = computed(() => this.labelledBy() ?? this.registeredTitleId(), /* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "resolvedLabelledBy" }] : /* istanbul ignore next */ []));
56
+ /** Explicit `aria-describedby` wins; otherwise a projected `AlertDialogDescription` supplies the id. */
57
+ resolvedDescribedBy = computed(() => this.describedBy() ?? this.registeredDescriptionId(), /* @ts-ignore */
58
+ ...(ngDevMode ? [{ debugName: "resolvedDescribedBy" }] : /* istanbul ignore next */ []));
37
59
  setContentSize(size) {
38
60
  this.contentSize.set(size);
39
61
  }
62
+ /** Called by a projected `AlertDialogTitle` so default usage has an accessible name (AXE-safe). */
63
+ registerTitleId(id) {
64
+ this.registeredTitleId.set(id);
65
+ }
66
+ /** Cleared by an `AlertDialogTitle` on destroy so a reopened alert never points at a stale id. */
67
+ unregisterTitleId(id) {
68
+ if (this.registeredTitleId() === id) {
69
+ this.registeredTitleId.set(null);
70
+ }
71
+ }
72
+ /** Called by a projected `AlertDialogDescription`. */
73
+ registerDescriptionId(id) {
74
+ this.registeredDescriptionId.set(id);
75
+ }
76
+ /** Cleared by an `AlertDialogDescription` on destroy. */
77
+ unregisterDescriptionId(id) {
78
+ if (this.registeredDescriptionId() === id) {
79
+ this.registeredDescriptionId.set(null);
80
+ }
81
+ }
40
82
  close() {
41
83
  this.open.set(false);
42
84
  }
43
85
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogComponent, isStandalone: true, selector: "AlertDialog", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, labelledBy: { classPropertyName: "labelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, describedBy: { classPropertyName: "describedBy", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", openedChange: "openedChange" }, ngImport: i0, template: `
86
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogComponent, isStandalone: true, selector: "AlertDialog", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, labelledBy: { classPropertyName: "labelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, describedBy: { classPropertyName: "describedBy", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", openedChange: "openedChange" }, host: { properties: { "attr.aria-labelledby": "null", "attr.aria-describedby": "null" } }, ngImport: i0, template: `
45
87
  <Dialog
46
88
  [(open)]="open"
89
+ [role]="role()"
47
90
  [closeOnEscape]="closeOnEscape()"
48
91
  [closeOnBackdropClick]="closeOnBackdropClick()"
49
92
  [showCloseButton]="showCloseButton()"
50
93
  [closeButtonLabel]="closeButtonLabel()"
51
- [aria-labelledby]="labelledBy()"
52
- [aria-describedby]="describedBy()"
94
+ [aria-labelledby]="resolvedLabelledBy()"
95
+ [aria-describedby]="resolvedDescribedBy()"
53
96
  [class]="surfaceClasses()"
54
97
  [radius]="radius()"
55
98
  [density]="density()"
56
- (openedChange)="openedChange.emit($event)">
99
+ (openedChange)="openedChange.emit($event)"
100
+ >
57
101
  <ng-content />
58
102
  </Dialog>
59
- `, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "Dialog", inputs: ["open", "closeOnEscape", "closeOnBackdropClick", "showCloseButton", "closeButtonLabel", "aria-labelledby", "aria-describedby", "class", "radius", "density"], outputs: ["openChange", "openedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
103
+ `, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "Dialog", inputs: ["open", "closeOnEscape", "closeOnBackdropClick", "showCloseButton", "closeButtonLabel", "aria-labelledby", "aria-describedby", "role", "class", "radius", "density"], outputs: ["openChange", "openedChange"] }] });
60
104
  }
61
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogComponent, decorators: [{
62
106
  type: Component,
63
107
  args: [{
64
108
  selector: 'AlertDialog',
65
- changeDetection: ChangeDetectionStrategy.OnPush,
109
+ // `<AlertDialog>` is a roleless host element; the consumer's
110
+ // aria-labelledby/aria-describedby are re-applied on the inner dialog surface,
111
+ // so strip them from the host (axe `aria-prohibited-attr`).
112
+ host: {
113
+ '[attr.aria-labelledby]': 'null',
114
+ '[attr.aria-describedby]': 'null',
115
+ },
66
116
  imports: [DialogComponent],
67
117
  template: `
68
118
  <Dialog
69
119
  [(open)]="open"
120
+ [role]="role()"
70
121
  [closeOnEscape]="closeOnEscape()"
71
122
  [closeOnBackdropClick]="closeOnBackdropClick()"
72
123
  [showCloseButton]="showCloseButton()"
73
124
  [closeButtonLabel]="closeButtonLabel()"
74
- [aria-labelledby]="labelledBy()"
75
- [aria-describedby]="describedBy()"
125
+ [aria-labelledby]="resolvedLabelledBy()"
126
+ [aria-describedby]="resolvedDescribedBy()"
76
127
  [class]="surfaceClasses()"
77
128
  [radius]="radius()"
78
129
  [density]="density()"
79
- (openedChange)="openedChange.emit($event)">
130
+ (openedChange)="openedChange.emit($event)"
131
+ >
80
132
  <ng-content />
81
133
  </Dialog>
82
134
  `,
83
135
  }]
84
- }], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], closeOnBackdropClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdropClick", required: false }] }], showCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCloseButton", required: false }] }], closeButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonLabel", required: false }] }], labelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], describedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-describedby", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], density: [{ type: i0.Input, args: [{ isSignal: true, alias: "density", required: false }] }], openedChange: [{ type: i0.Output, args: ["openedChange"] }] } });
136
+ }], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], closeOnBackdropClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdropClick", required: false }] }], showCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCloseButton", required: false }] }], closeButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonLabel", required: false }] }], labelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], describedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-describedby", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], density: [{ type: i0.Input, args: [{ isSignal: true, alias: "density", required: false }] }], openedChange: [{ type: i0.Output, args: ["openedChange"] }] } });
85
137
 
86
138
  const ALERT_DIALOG_MEDIA_SIZE_CLASSES = {
87
139
  default: 'h-12 w-12 [&_svg]:h-5 [&_svg]:w-5',
@@ -99,13 +151,12 @@ class AlertDialogContentComponent {
99
151
  effect(() => this.alertDialog?.setContentSize(this.size()));
100
152
  }
101
153
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
102
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogContentComponent, isStandalone: true, selector: "AlertDialogContent", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-size": "size()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
154
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogContentComponent, isStandalone: true, selector: "AlertDialogContent", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-size": "size()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
103
155
  }
104
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogContentComponent, decorators: [{
105
157
  type: Component,
106
158
  args: [{
107
159
  selector: 'AlertDialogContent',
108
- changeDetection: ChangeDetectionStrategy.OnPush,
109
160
  host: {
110
161
  '[class]': 'classes()',
111
162
  '[attr.data-size]': 'size()',
@@ -119,51 +170,72 @@ class AlertDialogHeaderComponent {
119
170
  classes = computed(() => cn('flex flex-col gap-2 text-center sm:text-left', this.class()), /* @ts-ignore */
120
171
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
121
172
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
122
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogHeaderComponent, isStandalone: true, selector: "AlertDialogHeader", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
173
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogHeaderComponent, isStandalone: true, selector: "AlertDialogHeader", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
123
174
  }
124
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogHeaderComponent, decorators: [{
125
176
  type: Component,
126
177
  args: [{
127
178
  selector: 'AlertDialogHeader',
128
- changeDetection: ChangeDetectionStrategy.OnPush,
129
179
  host: { '[class]': 'classes()' },
130
180
  template: `<ng-content />`,
131
181
  }]
132
182
  }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
133
183
  class AlertDialogTitleComponent {
184
+ /** Explicit id override; when omitted a document-unique id is generated. */
185
+ id = input(null, /* @ts-ignore */
186
+ ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
134
187
  class = input('', /* @ts-ignore */
135
188
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
189
+ autoId = uniqueId('alert-dialog-title');
190
+ alertDialog = inject(AlertDialogComponent, { optional: true });
191
+ /** The id rendered on the element, used by the parent alert dialog for aria-labelledby. */
192
+ resolvedId = computed(() => this.id() ?? this.autoId, /* @ts-ignore */
193
+ ...(ngDevMode ? [{ debugName: "resolvedId" }] : /* istanbul ignore next */ []));
136
194
  classes = computed(() => cn('text-lg font-semibold leading-none tracking-tight', this.class()), /* @ts-ignore */
137
195
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
196
+ constructor() {
197
+ effect(() => this.alertDialog?.registerTitleId(this.resolvedId()));
198
+ inject(DestroyRef).onDestroy(() => this.alertDialog?.unregisterTitleId(this.resolvedId()));
199
+ }
138
200
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
139
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogTitleComponent, isStandalone: true, selector: "AlertDialogTitle, h2[AlertDialogTitle]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
201
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogTitleComponent, isStandalone: true, selector: "AlertDialogTitle, h2[AlertDialogTitle]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.id": "resolvedId()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
140
202
  }
141
203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogTitleComponent, decorators: [{
142
204
  type: Component,
143
205
  args: [{
144
206
  selector: 'AlertDialogTitle, h2[AlertDialogTitle]',
145
- changeDetection: ChangeDetectionStrategy.OnPush,
146
- host: { '[class]': 'classes()' },
207
+ host: { '[class]': 'classes()', '[attr.id]': 'resolvedId()' },
147
208
  template: `<ng-content />`,
148
209
  }]
149
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
210
+ }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
150
211
  class AlertDialogDescriptionComponent {
212
+ /** Explicit id override; when omitted a document-unique id is generated. */
213
+ id = input(null, /* @ts-ignore */
214
+ ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
151
215
  class = input('', /* @ts-ignore */
152
216
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
217
+ autoId = uniqueId('alert-dialog-description');
218
+ alertDialog = inject(AlertDialogComponent, { optional: true });
219
+ /** The id rendered on the element, used by the parent alert dialog for aria-describedby. */
220
+ resolvedId = computed(() => this.id() ?? this.autoId, /* @ts-ignore */
221
+ ...(ngDevMode ? [{ debugName: "resolvedId" }] : /* istanbul ignore next */ []));
153
222
  classes = computed(() => cn('text-sm leading-6 text-muted-foreground', this.class()), /* @ts-ignore */
154
223
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
224
+ constructor() {
225
+ effect(() => this.alertDialog?.registerDescriptionId(this.resolvedId()));
226
+ inject(DestroyRef).onDestroy(() => this.alertDialog?.unregisterDescriptionId(this.resolvedId()));
227
+ }
155
228
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
156
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogDescriptionComponent, isStandalone: true, selector: "AlertDialogDescription, p[AlertDialogDescription]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
229
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogDescriptionComponent, isStandalone: true, selector: "AlertDialogDescription, p[AlertDialogDescription]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.id": "resolvedId()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
157
230
  }
158
231
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogDescriptionComponent, decorators: [{
159
232
  type: Component,
160
233
  args: [{
161
234
  selector: 'AlertDialogDescription, p[AlertDialogDescription]',
162
- changeDetection: ChangeDetectionStrategy.OnPush,
163
- host: { '[class]': 'classes()' },
235
+ host: { '[class]': 'classes()', '[attr.id]': 'resolvedId()' },
164
236
  template: `<ng-content />`,
165
237
  }]
166
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
238
+ }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
167
239
  class AlertDialogMediaComponent {
168
240
  class = input('', /* @ts-ignore */
169
241
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
@@ -171,13 +243,12 @@ class AlertDialogMediaComponent {
171
243
  classes = computed(() => cn('mx-auto flex shrink-0 items-center justify-center rounded-full border border-border bg-muted/60 text-foreground sm:mx-0', ALERT_DIALOG_MEDIA_SIZE_CLASSES[this.alertDialog?.resolvedSize() ?? 'default'], this.class()), /* @ts-ignore */
172
244
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
173
245
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
174
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogMediaComponent, isStandalone: true, selector: "AlertDialogMedia", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
246
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogMediaComponent, isStandalone: true, selector: "AlertDialogMedia", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
175
247
  }
176
248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogMediaComponent, decorators: [{
177
249
  type: Component,
178
250
  args: [{
179
251
  selector: 'AlertDialogMedia',
180
- changeDetection: ChangeDetectionStrategy.OnPush,
181
252
  host: { '[class]': 'classes()' },
182
253
  template: `<ng-content />`,
183
254
  }]
@@ -188,13 +259,12 @@ class AlertDialogFooterComponent {
188
259
  classes = computed(() => cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:gap-2', this.class()), /* @ts-ignore */
189
260
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
190
261
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
191
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogFooterComponent, isStandalone: true, selector: "AlertDialogFooter", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
262
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogFooterComponent, isStandalone: true, selector: "AlertDialogFooter", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
192
263
  }
193
264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogFooterComponent, decorators: [{
194
265
  type: Component,
195
266
  args: [{
196
267
  selector: 'AlertDialogFooter',
197
- changeDetection: ChangeDetectionStrategy.OnPush,
198
268
  host: { '[class]': 'classes()' },
199
269
  template: `<ng-content />`,
200
270
  }]
@@ -220,13 +290,12 @@ class AlertDialogCancelComponent {
220
290
  }
221
291
  }
222
292
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogCancelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
223
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogCancelComponent, isStandalone: true, selector: "button[AlertDialogCancel], a[AlertDialogCancel]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, closeOnClick: { classPropertyName: "closeOnClick", publicName: "closeOnClick", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "handleClick()" }, properties: { "class": "classes()", "attr.data-size": "size()", "attr.data-variant": "variant()", "attr.type": "buttonType()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
293
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogCancelComponent, isStandalone: true, selector: "button[AlertDialogCancel], a[AlertDialogCancel]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, closeOnClick: { classPropertyName: "closeOnClick", publicName: "closeOnClick", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "handleClick()" }, properties: { "class": "classes()", "attr.data-size": "size()", "attr.data-variant": "variant()", "attr.type": "buttonType()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
224
294
  }
225
295
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogCancelComponent, decorators: [{
226
296
  type: Component,
227
297
  args: [{
228
298
  selector: 'button[AlertDialogCancel], a[AlertDialogCancel]',
229
- changeDetection: ChangeDetectionStrategy.OnPush,
230
299
  host: {
231
300
  '[class]': 'classes()',
232
301
  '[attr.data-size]': 'size()',
@@ -258,13 +327,12 @@ class AlertDialogActionComponent {
258
327
  }
259
328
  }
260
329
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
261
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogActionComponent, isStandalone: true, selector: "button[AlertDialogAction], a[AlertDialogAction]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, closeOnClick: { classPropertyName: "closeOnClick", publicName: "closeOnClick", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "handleClick()" }, properties: { "class": "classes()", "attr.data-size": "size()", "attr.data-variant": "variant()", "attr.type": "buttonType()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
330
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDialogActionComponent, isStandalone: true, selector: "button[AlertDialogAction], a[AlertDialogAction]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, closeOnClick: { classPropertyName: "closeOnClick", publicName: "closeOnClick", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "handleClick()" }, properties: { "class": "classes()", "attr.data-size": "size()", "attr.data-variant": "variant()", "attr.type": "buttonType()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
262
331
  }
263
332
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDialogActionComponent, decorators: [{
264
333
  type: Component,
265
334
  args: [{
266
335
  selector: 'button[AlertDialogAction], a[AlertDialogAction]',
267
- changeDetection: ChangeDetectionStrategy.OnPush,
268
336
  host: {
269
337
  '[class]': 'classes()',
270
338
  '[attr.data-size]': 'size()',
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, computed, Component } from '@angular/core';
3
3
  import { cn, radiusBaseValue, densityBaseValue } from '@ojiepermana/angular-component/utils';
4
4
  import { cva } from 'class-variance-authority';
5
5
 
@@ -33,13 +33,12 @@ class AlertComponent {
33
33
  densityBase = computed(() => densityBaseValue(this.density()), /* @ts-ignore */
34
34
  ...(ngDevMode ? [{ debugName: "densityBase" }] : /* istanbul ignore next */ []));
35
35
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertComponent, isStandalone: true, selector: "Alert", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "\"alert\"", "style.--radius-base": "radiusBase()", "style.--spacing-base": "densityBase()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertComponent, isStandalone: true, selector: "Alert", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "\"alert\"", "style.--radius-base": "radiusBase()", "style.--spacing-base": "densityBase()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
37
37
  }
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{
41
41
  selector: 'Alert',
42
- changeDetection: ChangeDetectionStrategy.OnPush,
43
42
  host: {
44
43
  '[class]': 'classes()',
45
44
  '[attr.role]': '"alert"',
@@ -55,13 +54,12 @@ class AlertTitleComponent {
55
54
  classes = computed(() => cn('mb-1 block font-medium leading-none tracking-tight', this.class()), /* @ts-ignore */
56
55
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
57
56
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
58
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertTitleComponent, isStandalone: true, selector: "AlertTitle, h5[AlertTitle]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertTitleComponent, isStandalone: true, selector: "AlertTitle, h5[AlertTitle]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
59
58
  }
60
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertTitleComponent, decorators: [{
61
60
  type: Component,
62
61
  args: [{
63
62
  selector: 'AlertTitle, h5[AlertTitle]',
64
- changeDetection: ChangeDetectionStrategy.OnPush,
65
63
  host: { '[class]': 'classes()' },
66
64
  template: `<ng-content />`,
67
65
  }]
@@ -72,13 +70,12 @@ class AlertDescriptionComponent {
72
70
  classes = computed(() => cn('block text-sm [&_p]:leading-relaxed', this.class()), /* @ts-ignore */
73
71
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
74
72
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
75
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDescriptionComponent, isStandalone: true, selector: "AlertDescription", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertDescriptionComponent, isStandalone: true, selector: "AlertDescription", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
76
74
  }
77
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertDescriptionComponent, decorators: [{
78
76
  type: Component,
79
77
  args: [{
80
78
  selector: 'AlertDescription',
81
- changeDetection: ChangeDetectionStrategy.OnPush,
82
79
  host: { '[class]': 'classes()' },
83
80
  template: `<ng-content />`,
84
81
  }]
@@ -89,13 +86,12 @@ class AlertActionComponent {
89
86
  classes = computed(() => cn('mt-3 flex items-center justify-end sm:absolute sm:right-4 sm:top-4 sm:mt-0', this.class()), /* @ts-ignore */
90
87
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
91
88
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
92
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertActionComponent, isStandalone: true, selector: "AlertAction", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
89
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AlertActionComponent, isStandalone: true, selector: "AlertAction", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
93
90
  }
94
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AlertActionComponent, decorators: [{
95
92
  type: Component,
96
93
  args: [{
97
94
  selector: 'AlertAction',
98
- changeDetection: ChangeDetectionStrategy.OnPush,
99
95
  host: { '[class]': 'classes()' },
100
96
  template: `<ng-content />`,
101
97
  }]
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, computed, Component } from '@angular/core';
3
3
  import { cn } from '@ojiepermana/angular-component/utils';
4
4
 
5
5
  class AspectRatioComponent {
@@ -15,13 +15,12 @@ class AspectRatioComponent {
15
15
  }, /* @ts-ignore */
16
16
  ...(ngDevMode ? [{ debugName: "paddingBottom" }] : /* istanbul ignore next */ []));
17
17
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AspectRatioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AspectRatioComponent, isStandalone: true, selector: "AspectRatio", inputs: { ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: true, isRequired: true, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: '<div [style.padding-bottom]="paddingBottom()" class="block w-full"></div><div class="absolute inset-0"><ng-content /></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: AspectRatioComponent, isStandalone: true, selector: "AspectRatio", inputs: { ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: true, isRequired: true, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: '<div [style.padding-bottom]="paddingBottom()" class="block w-full"></div><div class="absolute inset-0"><ng-content /></div>', isInline: true });
19
19
  }
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AspectRatioComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{
23
23
  selector: 'AspectRatio',
24
- changeDetection: ChangeDetectionStrategy.OnPush,
25
24
  host: {
26
25
  '[class]': 'classes()',
27
26
  },