@nanahoshi/mona-ui 0.1.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.
Files changed (134) hide show
  1. package/README.md +25 -0
  2. package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +590 -0
  3. package/fesm2022/nanahoshi-mona-ui-avatar.mjs +168 -0
  4. package/fesm2022/nanahoshi-mona-ui-breadcrumb.mjs +220 -0
  5. package/fesm2022/nanahoshi-mona-ui-button-group.mjs +225 -0
  6. package/fesm2022/nanahoshi-mona-ui-button.mjs +497 -0
  7. package/fesm2022/nanahoshi-mona-ui-calendar.mjs +1569 -0
  8. package/fesm2022/nanahoshi-mona-ui-check-box.mjs +339 -0
  9. package/fesm2022/nanahoshi-mona-ui-chip.mjs +453 -0
  10. package/fesm2022/nanahoshi-mona-ui-circular-progress-bar.mjs +200 -0
  11. package/fesm2022/nanahoshi-mona-ui-color-gradient.mjs +853 -0
  12. package/fesm2022/nanahoshi-mona-ui-color-palette.mjs +923 -0
  13. package/fesm2022/nanahoshi-mona-ui-color-picker.mjs +495 -0
  14. package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +686 -0
  15. package/fesm2022/nanahoshi-mona-ui-common.mjs +642 -0
  16. package/fesm2022/nanahoshi-mona-ui-contextmenu.mjs +485 -0
  17. package/fesm2022/nanahoshi-mona-ui-date-input.mjs +132 -0
  18. package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +460 -0
  19. package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +659 -0
  20. package/fesm2022/nanahoshi-mona-ui-dialog.mjs +828 -0
  21. package/fesm2022/nanahoshi-mona-ui-dropdown-button.mjs +523 -0
  22. package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +615 -0
  23. package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +701 -0
  24. package/fesm2022/nanahoshi-mona-ui-editor.mjs +1400 -0
  25. package/fesm2022/nanahoshi-mona-ui-expansion-panel.mjs +245 -0
  26. package/fesm2022/nanahoshi-mona-ui-fieldset.mjs +170 -0
  27. package/fesm2022/nanahoshi-mona-ui-filter.mjs +680 -0
  28. package/fesm2022/nanahoshi-mona-ui-grid-grid-footer-cell.component-B9SQH5N-.mjs +105 -0
  29. package/fesm2022/nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DlLwcCFT.mjs +42 -0
  30. package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-Dgea-O0X.mjs +130 -0
  31. package/fesm2022/nanahoshi-mona-ui-grid-grid-toggle.component-DIUutx9s.mjs +773 -0
  32. package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-DRHycGIh.mjs +240 -0
  33. package/fesm2022/nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-C3eZIaJK.mjs +5374 -0
  34. package/fesm2022/nanahoshi-mona-ui-grid.mjs +2 -0
  35. package/fesm2022/nanahoshi-mona-ui-internal-filter-input.mjs +87 -0
  36. package/fesm2022/nanahoshi-mona-ui-internal-indicator-icon.mjs +154 -0
  37. package/fesm2022/nanahoshi-mona-ui-internal-list.mjs +1356 -0
  38. package/fesm2022/nanahoshi-mona-ui-internal-tree.mjs +2263 -0
  39. package/fesm2022/nanahoshi-mona-ui-internal.mjs +379 -0
  40. package/fesm2022/nanahoshi-mona-ui-list-box.mjs +630 -0
  41. package/fesm2022/nanahoshi-mona-ui-list-view.mjs +527 -0
  42. package/fesm2022/nanahoshi-mona-ui-list.mjs +4 -0
  43. package/fesm2022/nanahoshi-mona-ui-menubar.mjs +966 -0
  44. package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +641 -0
  45. package/fesm2022/nanahoshi-mona-ui-notification.mjs +536 -0
  46. package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +597 -0
  47. package/fesm2022/nanahoshi-mona-ui-pager.mjs +790 -0
  48. package/fesm2022/nanahoshi-mona-ui-placeholder.mjs +83 -0
  49. package/fesm2022/nanahoshi-mona-ui-popover.mjs +325 -0
  50. package/fesm2022/nanahoshi-mona-ui-popup-menu.mjs +1559 -0
  51. package/fesm2022/nanahoshi-mona-ui-popup.mjs +1321 -0
  52. package/fesm2022/nanahoshi-mona-ui-progress-bar.mjs +294 -0
  53. package/fesm2022/nanahoshi-mona-ui-query.mjs +175 -0
  54. package/fesm2022/nanahoshi-mona-ui-radio-button.mjs +339 -0
  55. package/fesm2022/nanahoshi-mona-ui-scroll-view.mjs +565 -0
  56. package/fesm2022/nanahoshi-mona-ui-slider.mjs +1049 -0
  57. package/fesm2022/nanahoshi-mona-ui-split-button.mjs +636 -0
  58. package/fesm2022/nanahoshi-mona-ui-splitter.mjs +843 -0
  59. package/fesm2022/nanahoshi-mona-ui-stepper.mjs +537 -0
  60. package/fesm2022/nanahoshi-mona-ui-switch.mjs +308 -0
  61. package/fesm2022/nanahoshi-mona-ui-tabs.mjs +664 -0
  62. package/fesm2022/nanahoshi-mona-ui-text-area.mjs +111 -0
  63. package/fesm2022/nanahoshi-mona-ui-text-box.mjs +369 -0
  64. package/fesm2022/nanahoshi-mona-ui-theme.mjs +314 -0
  65. package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +450 -0
  66. package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +723 -0
  67. package/fesm2022/nanahoshi-mona-ui-tooltip.mjs +716 -0
  68. package/fesm2022/nanahoshi-mona-ui-tree-view.mjs +733 -0
  69. package/fesm2022/nanahoshi-mona-ui-window.mjs +1329 -0
  70. package/fesm2022/nanahoshi-mona-ui.mjs +9 -0
  71. package/package.json +289 -0
  72. package/types/nanahoshi-mona-ui-auto-complete.d.ts +223 -0
  73. package/types/nanahoshi-mona-ui-avatar.d.ts +642 -0
  74. package/types/nanahoshi-mona-ui-breadcrumb.d.ts +70 -0
  75. package/types/nanahoshi-mona-ui-button-group.d.ts +77 -0
  76. package/types/nanahoshi-mona-ui-button.d.ts +111 -0
  77. package/types/nanahoshi-mona-ui-calendar.d.ts +262 -0
  78. package/types/nanahoshi-mona-ui-check-box.d.ts +133 -0
  79. package/types/nanahoshi-mona-ui-chip.d.ts +130 -0
  80. package/types/nanahoshi-mona-ui-circular-progress-bar.d.ts +113 -0
  81. package/types/nanahoshi-mona-ui-color-gradient.d.ts +201 -0
  82. package/types/nanahoshi-mona-ui-color-palette.d.ts +102 -0
  83. package/types/nanahoshi-mona-ui-color-picker.d.ts +156 -0
  84. package/types/nanahoshi-mona-ui-combo-box.d.ts +232 -0
  85. package/types/nanahoshi-mona-ui-common.d.ts +386 -0
  86. package/types/nanahoshi-mona-ui-contextmenu.d.ts +129 -0
  87. package/types/nanahoshi-mona-ui-date-input.d.ts +60 -0
  88. package/types/nanahoshi-mona-ui-date-picker.d.ts +177 -0
  89. package/types/nanahoshi-mona-ui-datetime-picker.d.ts +199 -0
  90. package/types/nanahoshi-mona-ui-dialog.d.ts +261 -0
  91. package/types/nanahoshi-mona-ui-dropdown-button.d.ts +159 -0
  92. package/types/nanahoshi-mona-ui-dropdown-list.d.ts +219 -0
  93. package/types/nanahoshi-mona-ui-dropdowns.d.ts +176 -0
  94. package/types/nanahoshi-mona-ui-editor.d.ts +113 -0
  95. package/types/nanahoshi-mona-ui-expansion-panel.d.ts +87 -0
  96. package/types/nanahoshi-mona-ui-fieldset.d.ts +68 -0
  97. package/types/nanahoshi-mona-ui-filter.d.ts +115 -0
  98. package/types/nanahoshi-mona-ui-grid.d.ts +1114 -0
  99. package/types/nanahoshi-mona-ui-internal-filter-input.d.ts +25 -0
  100. package/types/nanahoshi-mona-ui-internal-indicator-icon.d.ts +28 -0
  101. package/types/nanahoshi-mona-ui-internal-list.d.ts +269 -0
  102. package/types/nanahoshi-mona-ui-internal-tree.d.ts +391 -0
  103. package/types/nanahoshi-mona-ui-internal.d.ts +136 -0
  104. package/types/nanahoshi-mona-ui-list-box.d.ts +225 -0
  105. package/types/nanahoshi-mona-ui-list-view.d.ts +188 -0
  106. package/types/nanahoshi-mona-ui-list.d.ts +1 -0
  107. package/types/nanahoshi-mona-ui-menubar.d.ts +198 -0
  108. package/types/nanahoshi-mona-ui-multi-select.d.ts +247 -0
  109. package/types/nanahoshi-mona-ui-notification.d.ts +106 -0
  110. package/types/nanahoshi-mona-ui-numeric-text-box.d.ts +161 -0
  111. package/types/nanahoshi-mona-ui-pager.d.ts +238 -0
  112. package/types/nanahoshi-mona-ui-placeholder.d.ts +35 -0
  113. package/types/nanahoshi-mona-ui-popover.d.ts +130 -0
  114. package/types/nanahoshi-mona-ui-popup-menu.d.ts +412 -0
  115. package/types/nanahoshi-mona-ui-popup.d.ts +485 -0
  116. package/types/nanahoshi-mona-ui-progress-bar.d.ts +139 -0
  117. package/types/nanahoshi-mona-ui-query.d.ts +89 -0
  118. package/types/nanahoshi-mona-ui-radio-button.d.ts +128 -0
  119. package/types/nanahoshi-mona-ui-scroll-view.d.ts +166 -0
  120. package/types/nanahoshi-mona-ui-slider.d.ts +305 -0
  121. package/types/nanahoshi-mona-ui-split-button.d.ts +182 -0
  122. package/types/nanahoshi-mona-ui-splitter.d.ts +70 -0
  123. package/types/nanahoshi-mona-ui-stepper.d.ts +173 -0
  124. package/types/nanahoshi-mona-ui-switch.d.ts +125 -0
  125. package/types/nanahoshi-mona-ui-tabs.d.ts +158 -0
  126. package/types/nanahoshi-mona-ui-text-area.d.ts +42 -0
  127. package/types/nanahoshi-mona-ui-text-box.d.ts +164 -0
  128. package/types/nanahoshi-mona-ui-theme.d.ts +23 -0
  129. package/types/nanahoshi-mona-ui-time-picker.d.ts +184 -0
  130. package/types/nanahoshi-mona-ui-time-selector.d.ts +143 -0
  131. package/types/nanahoshi-mona-ui-tooltip.d.ts +130 -0
  132. package/types/nanahoshi-mona-ui-tree-view.d.ts +274 -0
  133. package/types/nanahoshi-mona-ui-window.d.ts +295 -0
  134. package/types/nanahoshi-mona-ui.d.ts +2 -0
@@ -0,0 +1,523 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { forwardRef, Directive, inject, DestroyRef, contentChildren, viewChild, computed, signal, contentChild, TemplateRef, input, output, afterNextRender, Component, effect } from '@angular/core';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
+ import { fromEvent } from 'rxjs';
6
+ import { PopupMenuGroupTemplateDirective, PopupMenuTemplateOrigin, PopupMenuGroupTemplateToken, PopupMenuIconTemplateDirective, PopupMenuIconTemplateToken, PopupMenuShortcutTemplateDirective, PopupMenuShortcutTemplateToken, PopupMenuTextTemplateDirective, PopupMenuTextTemplateToken, PopupMenuToken, PopupMenuComponent, PopupMenuItemType, PopupMenuTemplateType, ensurePopupComponentTypes, PopupMenuOrigin, ensurePopupTemplateTypes, PopupMenuCheckboxItemComponent, PopupMenuGroupComponent, PopupMenuItemComponent, PopupMenuRadioGroupComponent, PopupMenuRadioItemComponent, PopupMenuRadioItemToken, PopupMenuSeparatorComponent } from '@nanahoshi/mona-ui/popup-menu';
7
+ import { createElementControlId } from '@nanahoshi/mona-ui/internal';
8
+ import { ButtonDirective } from '@nanahoshi/mona-ui/button';
9
+
10
+ class DropdownButtonMenuGroupTemplateDirective extends PopupMenuGroupTemplateDirective {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.origin = PopupMenuTemplateOrigin.DropdownButton;
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonMenuGroupTemplateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonMenuGroupTemplateDirective, isStandalone: true, selector: "ng-template[monaDropdownButtonMenuGroupTemplate]", providers: [
17
+ {
18
+ provide: PopupMenuGroupTemplateToken,
19
+ useExisting: forwardRef(() => DropdownButtonMenuGroupTemplateDirective)
20
+ }
21
+ ], usesInheritance: true, ngImport: i0 }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonMenuGroupTemplateDirective, decorators: [{
24
+ type: Directive,
25
+ args: [{
26
+ selector: "ng-template[monaDropdownButtonMenuGroupTemplate]",
27
+ providers: [
28
+ {
29
+ provide: PopupMenuGroupTemplateToken,
30
+ useExisting: forwardRef(() => DropdownButtonMenuGroupTemplateDirective)
31
+ }
32
+ ]
33
+ }]
34
+ }] });
35
+
36
+ class DropdownButtonMenuItemIconTemplateDirective extends PopupMenuIconTemplateDirective {
37
+ constructor() {
38
+ super(...arguments);
39
+ this.origin = PopupMenuTemplateOrigin.DropdownButton;
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonMenuItemIconTemplateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
42
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonMenuItemIconTemplateDirective, isStandalone: true, selector: "ng-template[monaDropdownButtonMenuItemIconTemplate]", providers: [
43
+ {
44
+ provide: PopupMenuIconTemplateToken,
45
+ useExisting: forwardRef(() => DropdownButtonMenuItemIconTemplateDirective)
46
+ }
47
+ ], usesInheritance: true, ngImport: i0 }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonMenuItemIconTemplateDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{
52
+ selector: "ng-template[monaDropdownButtonMenuItemIconTemplate]",
53
+ providers: [
54
+ {
55
+ provide: PopupMenuIconTemplateToken,
56
+ useExisting: forwardRef(() => DropdownButtonMenuItemIconTemplateDirective)
57
+ }
58
+ ]
59
+ }]
60
+ }] });
61
+
62
+ class DropdownButtonMenuItemShortcutTemplateDirective extends PopupMenuShortcutTemplateDirective {
63
+ constructor() {
64
+ super(...arguments);
65
+ this.origin = PopupMenuTemplateOrigin.DropdownButton;
66
+ }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonMenuItemShortcutTemplateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
68
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonMenuItemShortcutTemplateDirective, isStandalone: true, selector: "ng-template[monaDropdownButtonMenuItemShortcutTemplate]", providers: [
69
+ {
70
+ provide: PopupMenuShortcutTemplateToken,
71
+ useExisting: forwardRef(() => DropdownButtonMenuItemShortcutTemplateDirective)
72
+ }
73
+ ], usesInheritance: true, ngImport: i0 }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonMenuItemShortcutTemplateDirective, decorators: [{
76
+ type: Directive,
77
+ args: [{
78
+ selector: "ng-template[monaDropdownButtonMenuItemShortcutTemplate]",
79
+ providers: [
80
+ {
81
+ provide: PopupMenuShortcutTemplateToken,
82
+ useExisting: forwardRef(() => DropdownButtonMenuItemShortcutTemplateDirective)
83
+ }
84
+ ]
85
+ }]
86
+ }] });
87
+
88
+ class DropdownButtonMenuItemTextTemplateDirective extends PopupMenuTextTemplateDirective {
89
+ constructor() {
90
+ super(...arguments);
91
+ this.origin = PopupMenuTemplateOrigin.DropdownButton;
92
+ }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonMenuItemTextTemplateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
94
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonMenuItemTextTemplateDirective, isStandalone: true, selector: "ng-template[monaDropdownButtonMenuItemTextTemplate]", providers: [
95
+ {
96
+ provide: PopupMenuTextTemplateToken,
97
+ useExisting: forwardRef(() => DropdownButtonMenuItemTextTemplateDirective)
98
+ }
99
+ ], usesInheritance: true, ngImport: i0 }); }
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonMenuItemTextTemplateDirective, decorators: [{
102
+ type: Directive,
103
+ args: [{
104
+ selector: "ng-template[monaDropdownButtonMenuItemTextTemplate]",
105
+ providers: [
106
+ {
107
+ provide: PopupMenuTextTemplateToken,
108
+ useExisting: forwardRef(() => DropdownButtonMenuItemTextTemplateDirective)
109
+ }
110
+ ]
111
+ }]
112
+ }] });
113
+
114
+ class DropdownButtonTextTemplateDirective {
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonTextTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
116
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonTextTemplateDirective, isStandalone: true, selector: "ng-template[monaDropdownButtonTextTemplate]", ngImport: i0 }); }
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonTextTemplateDirective, decorators: [{
119
+ type: Directive,
120
+ args: [{
121
+ selector: "ng-template[monaDropdownButtonTextTemplate]"
122
+ }]
123
+ }] });
124
+
125
+ class DropdownButtonComponent {
126
+ #destroyRef;
127
+ constructor() {
128
+ this.#destroyRef = inject(DestroyRef);
129
+ this.menuItemComponents = contentChildren(PopupMenuToken, { ...(ngDevMode ? { debugName: "menuItemComponents" } : /* istanbul ignore next */ {}), descendants: false });
130
+ this.buttonRef = viewChild("dropdownButton", /* @ts-ignore */
131
+ ...(ngDevMode ? [{ debugName: "buttonRef" }] : /* istanbul ignore next */ []));
132
+ this.dropdownButtonAriaLabel = computed(() => {
133
+ const ariaLabel = this.ariaLabel();
134
+ const text = this.text();
135
+ return ariaLabel || `${text} dropdown button`.trim();
136
+ }, /* @ts-ignore */
137
+ ...(ngDevMode ? [{ debugName: "dropdownButtonAriaLabel" }] : /* istanbul ignore next */ []));
138
+ this.isMenuOpen = signal(false, /* @ts-ignore */
139
+ ...(ngDevMode ? [{ debugName: "isMenuOpen" }] : /* istanbul ignore next */ []));
140
+ this.menuId = createElementControlId();
141
+ this.groupTemplate = contentChild(DropdownButtonMenuGroupTemplateDirective, { ...(ngDevMode ? { debugName: "groupTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef,
142
+ descendants: false });
143
+ this.menuItemIconTemplate = contentChild(DropdownButtonMenuItemIconTemplateDirective, { ...(ngDevMode ? { debugName: "menuItemIconTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef,
144
+ descendants: false });
145
+ this.menuItems = computed(() => {
146
+ return this.menuItemComponents()
147
+ .map(item => item.getPopupMenuItem())
148
+ .flatMap(i => i);
149
+ }, /* @ts-ignore */
150
+ ...(ngDevMode ? [{ debugName: "menuItems" }] : /* istanbul ignore next */ []));
151
+ this.menuItemShortcutTemplate = contentChild(DropdownButtonMenuItemShortcutTemplateDirective, { ...(ngDevMode ? { debugName: "menuItemShortcutTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef,
152
+ descendants: false });
153
+ this.menuItemTextTemplate = contentChild(DropdownButtonMenuItemTextTemplateDirective, { ...(ngDevMode ? { debugName: "menuItemTextTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef,
154
+ descendants: false });
155
+ this.popupMenuRef = viewChild("popupMenu", /* @ts-ignore */
156
+ ...(ngDevMode ? [{ debugName: "popupMenuRef" }] : /* istanbul ignore next */ []));
157
+ this.textTemplate = contentChild(DropdownButtonTextTemplateDirective, { ...(ngDevMode ? { debugName: "textTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
158
+ /**
159
+ * @description Accessible name for the dropdown button.
160
+ * Falls back to `"{text} dropdown button"` when empty; provide an explicit value when no visible text is present.
161
+ * @default ""
162
+ */
163
+ this.ariaLabel = input("", { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: "aria-label" });
164
+ /**
165
+ * @description ID of an external element that provides the accessible name for the dropdown button.
166
+ * Takes precedence over `ariaLabel` when both are set.
167
+ * @default ""
168
+ */
169
+ this.ariaLabelledby = input("", { ...(ngDevMode ? { debugName: "ariaLabelledby" } : /* istanbul ignore next */ {}), alias: "aria-labelledby" });
170
+ /**
171
+ * @description Renders the button as a square for icon-only usage, removing horizontal text padding.
172
+ * Set `ariaLabel` when no visible text is present to ensure an accessible name.
173
+ * @default false
174
+ */
175
+ this.iconOnly = input(false, /* @ts-ignore */
176
+ ...(ngDevMode ? [{ debugName: "iconOnly" }] : /* istanbul ignore next */ []));
177
+ /**
178
+ * @description Renders the button with reduced visual emphasis and removes pointer interaction.
179
+ * @default false
180
+ */
181
+ this.disabled = input(false, /* @ts-ignore */
182
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
183
+ /**
184
+ * @description Displays a loading indicator and prevents interaction while an operation is in progress.
185
+ * @default false
186
+ */
187
+ this.loading = input(false, /* @ts-ignore */
188
+ ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
189
+ /**
190
+ * @description Visual style preset applied to the button.
191
+ * @default "default"
192
+ */
193
+ this.look = input("default", /* @ts-ignore */
194
+ ...(ngDevMode ? [{ debugName: "look" }] : /* istanbul ignore next */ []));
195
+ /**
196
+ * @description Emitted when a menu item in the dropdown menu is clicked.
197
+ */
198
+ this.menuItemClick = output();
199
+ /**
200
+ * @description Border-radius preset applied to the button.
201
+ * @default "medium"
202
+ */
203
+ this.rounded = input("medium", /* @ts-ignore */
204
+ ...(ngDevMode ? [{ debugName: "rounded" }] : /* istanbul ignore next */ []));
205
+ /**
206
+ * @description Size preset controlling the button's dimensions.
207
+ * @default "medium"
208
+ */
209
+ this.size = input("medium", /* @ts-ignore */
210
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
211
+ /**
212
+ * @description Primary text content displayed inside the dropdown button.
213
+ * Passed as `$implicit` to a `monaDropdownButtonTextTemplate` when one is provided.
214
+ * @default ""
215
+ */
216
+ this.text = input("", /* @ts-ignore */
217
+ ...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
218
+ /**
219
+ * @description Additional CSS classes merged onto the host element via `tailwind-merge`.
220
+ * @default ""
221
+ */
222
+ this.userClass = input("", { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: "class" });
223
+ afterNextRender({
224
+ read: () => this.#setKeyboardEvents()
225
+ });
226
+ }
227
+ onMenuClose() {
228
+ this.isMenuOpen.set(false);
229
+ }
230
+ onMenuItemClick(event) {
231
+ this.menuItemClick.emit(event);
232
+ }
233
+ onMenuOpen() {
234
+ this.isMenuOpen.set(true);
235
+ }
236
+ #closeMenu() {
237
+ const popupMenu = this.popupMenuRef();
238
+ if (popupMenu && this.isMenuOpen()) {
239
+ popupMenu.closeMenu();
240
+ this.buttonRef()?.nativeElement?.focus();
241
+ }
242
+ }
243
+ #openMenuViaKeyboard() {
244
+ const popupMenu = this.popupMenuRef();
245
+ if (popupMenu && !this.isMenuOpen()) {
246
+ popupMenu.openMenuViaKeyboard();
247
+ }
248
+ }
249
+ #setKeyboardEvents() {
250
+ const buttonElement = this.buttonRef()?.nativeElement;
251
+ if (!buttonElement) {
252
+ return;
253
+ }
254
+ fromEvent(buttonElement, "keydown")
255
+ .pipe(takeUntilDestroyed(this.#destroyRef))
256
+ .subscribe(event => {
257
+ switch (event.key) {
258
+ case "ArrowDown":
259
+ case "ArrowUp":
260
+ case " ":
261
+ case "Enter":
262
+ event.preventDefault();
263
+ this.#openMenuViaKeyboard();
264
+ break;
265
+ case "Escape":
266
+ if (this.isMenuOpen()) {
267
+ this.#closeMenu();
268
+ }
269
+ break;
270
+ }
271
+ });
272
+ }
273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
274
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: DropdownButtonComponent, isStandalone: true, selector: "mona-dropdown-button", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuItemClick: "menuItemClick" }, host: { properties: { "class": "userClass()" } }, queries: [{ propertyName: "menuItemComponents", predicate: PopupMenuToken, isSignal: true }, { propertyName: "groupTemplate", first: true, predicate: DropdownButtonMenuGroupTemplateDirective, read: TemplateRef, isSignal: true }, { propertyName: "menuItemIconTemplate", first: true, predicate: DropdownButtonMenuItemIconTemplateDirective, read: TemplateRef, isSignal: true }, { propertyName: "menuItemShortcutTemplate", first: true, predicate: DropdownButtonMenuItemShortcutTemplateDirective, read: TemplateRef, isSignal: true }, { propertyName: "menuItemTextTemplate", first: true, predicate: DropdownButtonMenuItemTextTemplateDirective, read: TemplateRef, isSignal: true }, { propertyName: "textTemplate", first: true, predicate: DropdownButtonTextTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "buttonRef", first: true, predicate: ["dropdownButton"], descendants: true, isSignal: true }, { propertyName: "popupMenuRef", first: true, predicate: ["popupMenu"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\n monaButton\n [look]=\"look()\"\n [size]=\"size()\"\n [iconOnly]=\"iconOnly()\"\n [loading]=\"loading()\"\n [rounded]=\"rounded()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabelledby() ? null : dropdownButtonAriaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby() || null\"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-expanded]=\"isMenuOpen()\"\n [attr.aria-controls]=\"menuId\"\n #dropdownButton>\n @if (textTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"textTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: text() }\"></ng-container>\n } @else {\n {{ text() }}\n }\n</button>\n\n<mona-popup-menu\n #popupMenu\n (close)=\"onMenuClose()\"\n (menuClick)=\"onMenuItemClick($event)\"\n (open)=\"onMenuOpen()\"\n [anchorConnectionPoint]=\"'bottomcenter'\"\n [id]=\"menuId\"\n [items]=\"menuItems()\"\n [offset]=\"{ horizontal: 0, vertical: 2 }\"\n [popupConnectionPoint]=\"'topcenter'\"\n [size]=\"size()\"\n [target]=\"dropdownButton\"\n [trigger]=\"'click'\">\n @if (groupTemplate()) {\n <ng-template monaPopupMenuGroupTemplate let-group>\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-container>\n </ng-template>\n }\n @if (menuItemIconTemplate()) {\n <ng-template monaPopupMenuIconTemplate let-item>\n <ng-container\n [ngTemplateOutlet]=\"menuItemIconTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </ng-template>\n }\n @if (menuItemShortcutTemplate()) {\n <ng-template monaPopupMenuShortcutTemplate let-item>\n <ng-container\n [ngTemplateOutlet]=\"menuItemShortcutTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </ng-template>\n }\n @if (menuItemTextTemplate()) {\n <ng-template monaPopupMenuTextTemplate let-item>\n <ng-container\n [ngTemplateOutlet]=\"menuItemTextTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </ng-template>\n }\n</mona-popup-menu>\n", dependencies: [{ kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "component", type: PopupMenuComponent, selector: "mona-popup-menu", inputs: ["anchor", "anchorConnectionPoint", "items", "id", "minWidth", "offset", "popupConnectionPoint", "precise", "rounded", "size", "target", "trigger", "width"], outputs: ["close", "menuClick", "navigate", "open"] }, { kind: "directive", type: PopupMenuGroupTemplateDirective, selector: "ng-template[monaPopupMenuGroupTemplate]" }, { kind: "directive", type: PopupMenuIconTemplateDirective, selector: "ng-template[monaPopupMenuIconTemplate]" }, { kind: "directive", type: PopupMenuShortcutTemplateDirective, selector: "ng-template[monaPopupMenuShortcutTemplate]" }, { kind: "directive", type: PopupMenuTextTemplateDirective, selector: "ng-template[monaPopupMenuTextTemplate]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
275
+ }
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonComponent, decorators: [{
277
+ type: Component,
278
+ args: [{ selector: "mona-dropdown-button", host: {
279
+ "[class]": "userClass()"
280
+ }, imports: [
281
+ ButtonDirective,
282
+ PopupMenuComponent,
283
+ PopupMenuGroupTemplateDirective,
284
+ PopupMenuIconTemplateDirective,
285
+ PopupMenuShortcutTemplateDirective,
286
+ PopupMenuTextTemplateDirective,
287
+ NgTemplateOutlet
288
+ ], template: "<button\n monaButton\n [look]=\"look()\"\n [size]=\"size()\"\n [iconOnly]=\"iconOnly()\"\n [loading]=\"loading()\"\n [rounded]=\"rounded()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabelledby() ? null : dropdownButtonAriaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby() || null\"\n [attr.aria-haspopup]=\"'menu'\"\n [attr.aria-expanded]=\"isMenuOpen()\"\n [attr.aria-controls]=\"menuId\"\n #dropdownButton>\n @if (textTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"textTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: text() }\"></ng-container>\n } @else {\n {{ text() }}\n }\n</button>\n\n<mona-popup-menu\n #popupMenu\n (close)=\"onMenuClose()\"\n (menuClick)=\"onMenuItemClick($event)\"\n (open)=\"onMenuOpen()\"\n [anchorConnectionPoint]=\"'bottomcenter'\"\n [id]=\"menuId\"\n [items]=\"menuItems()\"\n [offset]=\"{ horizontal: 0, vertical: 2 }\"\n [popupConnectionPoint]=\"'topcenter'\"\n [size]=\"size()\"\n [target]=\"dropdownButton\"\n [trigger]=\"'click'\">\n @if (groupTemplate()) {\n <ng-template monaPopupMenuGroupTemplate let-group>\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-container>\n </ng-template>\n }\n @if (menuItemIconTemplate()) {\n <ng-template monaPopupMenuIconTemplate let-item>\n <ng-container\n [ngTemplateOutlet]=\"menuItemIconTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </ng-template>\n }\n @if (menuItemShortcutTemplate()) {\n <ng-template monaPopupMenuShortcutTemplate let-item>\n <ng-container\n [ngTemplateOutlet]=\"menuItemShortcutTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </ng-template>\n }\n @if (menuItemTextTemplate()) {\n <ng-template monaPopupMenuTextTemplate let-item>\n <ng-container\n [ngTemplateOutlet]=\"menuItemTextTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </ng-template>\n }\n</mona-popup-menu>\n" }]
289
+ }], ctorParameters: () => [], propDecorators: { menuItemComponents: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => PopupMenuToken), { ...{ descendants: false }, isSignal: true }] }], buttonRef: [{ type: i0.ViewChild, args: ["dropdownButton", { isSignal: true }] }], groupTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownButtonMenuGroupTemplateDirective), { ...{
290
+ read: TemplateRef,
291
+ descendants: false
292
+ }, isSignal: true }] }], menuItemIconTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownButtonMenuItemIconTemplateDirective), { ...{
293
+ read: TemplateRef,
294
+ descendants: false
295
+ }, isSignal: true }] }], menuItemShortcutTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownButtonMenuItemShortcutTemplateDirective), { ...{
296
+ read: TemplateRef,
297
+ descendants: false
298
+ }, isSignal: true }] }], menuItemTextTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownButtonMenuItemTextTemplateDirective), { ...{
299
+ read: TemplateRef,
300
+ descendants: false
301
+ }, isSignal: true }] }], popupMenuRef: [{ type: i0.ViewChild, args: ["popupMenu", { isSignal: true }] }], textTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownButtonTextTemplateDirective), { ...{
302
+ read: TemplateRef
303
+ }, isSignal: true }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], iconOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOnly", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }], menuItemClick: [{ type: i0.Output, args: ["menuItemClick"] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
304
+
305
+ const componentTypeMap = {
306
+ [PopupMenuItemType.CheckboxMenuItem]: "mona-dropdown-button-checkbox-item",
307
+ [PopupMenuItemType.MenuGroup]: "mona-dropdown-button-group",
308
+ [PopupMenuItemType.MenuItem]: "mona-dropdown-button-item",
309
+ [PopupMenuItemType.RadioGroup]: "mona-dropdown-button-radio-group",
310
+ [PopupMenuItemType.RadioItem]: "mona-dropdown-button-radio-item",
311
+ [PopupMenuItemType.Separator]: "mona-dropdown-button-separator"
312
+ };
313
+ const templateTypeMap = {
314
+ [PopupMenuTemplateType.Group]: "monaDropdownButtonMenuGroupTemplate",
315
+ [PopupMenuTemplateType.Icon]: "monaDropdownButtonMenuItemIconTemplate",
316
+ [PopupMenuTemplateType.Shortcut]: "monaDropdownButtonMenuItemShortcutTemplate",
317
+ [PopupMenuTemplateType.Text]: "monaDropdownButtonMenuItemTextTemplate"
318
+ };
319
+ const ensureDropdownButtonComponentTypes = (components) => {
320
+ ensurePopupComponentTypes({
321
+ components,
322
+ componentTypeMap,
323
+ origin: PopupMenuOrigin.DropdownButton,
324
+ prefix: "mona-dropdown-button"
325
+ });
326
+ };
327
+ const ensureDropdownButtonTemplateTypes = (templates) => {
328
+ ensurePopupTemplateTypes({
329
+ templates,
330
+ templateTypeMap,
331
+ origin: PopupMenuTemplateOrigin.DropdownButton,
332
+ prefix: "mona-dropdown-button"
333
+ });
334
+ };
335
+
336
+ class DropdownButtonCheckboxItemComponent extends PopupMenuCheckboxItemComponent {
337
+ constructor() {
338
+ super();
339
+ this.origin = PopupMenuOrigin.DropdownButton;
340
+ effect(() => ensureDropdownButtonTemplateTypes([this.shortcutTemplateConfig(), this.textTemplateConfig()].filter(t => t !== undefined)));
341
+ }
342
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonCheckboxItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
343
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonCheckboxItemComponent, isStandalone: true, selector: "mona-dropdown-button-checkbox-item", providers: [
344
+ {
345
+ provide: PopupMenuToken,
346
+ useExisting: forwardRef(() => DropdownButtonCheckboxItemComponent)
347
+ }
348
+ ], usesInheritance: true, ngImport: i0, template: "", isInline: true }); }
349
+ }
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonCheckboxItemComponent, decorators: [{
351
+ type: Component,
352
+ args: [{
353
+ selector: "mona-dropdown-button-checkbox-item",
354
+ template: "",
355
+ providers: [
356
+ {
357
+ provide: PopupMenuToken,
358
+ useExisting: forwardRef(() => DropdownButtonCheckboxItemComponent)
359
+ }
360
+ ]
361
+ }]
362
+ }], ctorParameters: () => [] });
363
+
364
+ class DropdownButtonGroupComponent extends PopupMenuGroupComponent {
365
+ constructor() {
366
+ super();
367
+ this.origin = PopupMenuOrigin.DropdownButton;
368
+ effect(() => ensureDropdownButtonComponentTypes(this.items()));
369
+ effect(() => ensureDropdownButtonTemplateTypes([this.groupTemplateConfig()].filter(t => t !== undefined)));
370
+ }
371
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
372
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonGroupComponent, isStandalone: true, selector: "mona-dropdown-button-group", providers: [
373
+ {
374
+ provide: PopupMenuToken,
375
+ useExisting: forwardRef(() => DropdownButtonGroupComponent)
376
+ }
377
+ ], usesInheritance: true, ngImport: i0, template: "", isInline: true }); }
378
+ }
379
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonGroupComponent, decorators: [{
380
+ type: Component,
381
+ args: [{
382
+ selector: "mona-dropdown-button-group",
383
+ template: "",
384
+ providers: [
385
+ {
386
+ provide: PopupMenuToken,
387
+ useExisting: forwardRef(() => DropdownButtonGroupComponent)
388
+ }
389
+ ]
390
+ }]
391
+ }], ctorParameters: () => [] });
392
+
393
+ class DropdownButtonItemComponent extends PopupMenuItemComponent {
394
+ constructor() {
395
+ super();
396
+ this.origin = PopupMenuOrigin.DropdownButton;
397
+ effect(() => ensureDropdownButtonComponentTypes(this.items()));
398
+ effect(() => ensureDropdownButtonTemplateTypes([this.iconTemplateConfig(), this.shortcutTemplateConfig(), this.textTemplateConfig()].filter(t => t !== undefined)));
399
+ }
400
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
401
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonItemComponent, isStandalone: true, selector: "mona-dropdown-button-item", providers: [
402
+ {
403
+ provide: PopupMenuToken,
404
+ useExisting: forwardRef(() => DropdownButtonItemComponent)
405
+ }
406
+ ], usesInheritance: true, ngImport: i0, template: "", isInline: true }); }
407
+ }
408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonItemComponent, decorators: [{
409
+ type: Component,
410
+ args: [{
411
+ selector: "mona-dropdown-button-item",
412
+ template: "",
413
+ providers: [
414
+ {
415
+ provide: PopupMenuToken,
416
+ useExisting: forwardRef(() => DropdownButtonItemComponent)
417
+ }
418
+ ]
419
+ }]
420
+ }], ctorParameters: () => [] });
421
+
422
+ class DropdownButtonRadioGroupComponent extends PopupMenuRadioGroupComponent {
423
+ constructor() {
424
+ super();
425
+ this.origin = PopupMenuOrigin.DropdownButton;
426
+ effect(() => ensureDropdownButtonComponentTypes(this.items()));
427
+ effect(() => ensureDropdownButtonTemplateTypes([this.groupTemplateConfig()].filter(t => t !== undefined)));
428
+ }
429
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonRadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
430
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonRadioGroupComponent, isStandalone: true, selector: "mona-dropdown-button-radio-group", providers: [
431
+ {
432
+ provide: PopupMenuToken,
433
+ useExisting: forwardRef(() => DropdownButtonRadioGroupComponent)
434
+ }
435
+ ], usesInheritance: true, ngImport: i0, template: "", isInline: true }); }
436
+ }
437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonRadioGroupComponent, decorators: [{
438
+ type: Component,
439
+ args: [{
440
+ selector: "mona-dropdown-button-radio-group",
441
+ template: "",
442
+ providers: [
443
+ {
444
+ provide: PopupMenuToken,
445
+ useExisting: forwardRef(() => DropdownButtonRadioGroupComponent)
446
+ }
447
+ ]
448
+ }]
449
+ }], ctorParameters: () => [] });
450
+
451
+ class DropdownButtonRadioItemComponent extends PopupMenuRadioItemComponent {
452
+ constructor() {
453
+ super();
454
+ this.origin = PopupMenuOrigin.DropdownButton;
455
+ effect(() => ensureDropdownButtonTemplateTypes([this.shortcutTemplateConfig(), this.textTemplateConfig()].filter(t => t !== undefined)));
456
+ }
457
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonRadioItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
458
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonRadioItemComponent, isStandalone: true, selector: "mona-dropdown-button-radio-item", providers: [
459
+ {
460
+ provide: PopupMenuToken,
461
+ useExisting: forwardRef(() => DropdownButtonRadioItemComponent)
462
+ },
463
+ {
464
+ provide: PopupMenuRadioItemToken,
465
+ useExisting: forwardRef(() => DropdownButtonRadioItemComponent)
466
+ }
467
+ ], usesInheritance: true, ngImport: i0, template: "", isInline: true }); }
468
+ }
469
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonRadioItemComponent, decorators: [{
470
+ type: Component,
471
+ args: [{
472
+ selector: "mona-dropdown-button-radio-item",
473
+ template: "",
474
+ providers: [
475
+ {
476
+ provide: PopupMenuToken,
477
+ useExisting: forwardRef(() => DropdownButtonRadioItemComponent)
478
+ },
479
+ {
480
+ provide: PopupMenuRadioItemToken,
481
+ useExisting: forwardRef(() => DropdownButtonRadioItemComponent)
482
+ }
483
+ ]
484
+ }]
485
+ }], ctorParameters: () => [] });
486
+
487
+ class DropdownButtonSeparatorComponent extends PopupMenuSeparatorComponent {
488
+ constructor() {
489
+ super(...arguments);
490
+ this.origin = PopupMenuOrigin.DropdownButton;
491
+ }
492
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonSeparatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
493
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: DropdownButtonSeparatorComponent, isStandalone: true, selector: "mona-dropdown-button-separator", providers: [
494
+ {
495
+ provide: PopupMenuToken,
496
+ useExisting: forwardRef(() => DropdownButtonSeparatorComponent)
497
+ }
498
+ ], usesInheritance: true, ngImport: i0, template: "", isInline: true }); }
499
+ }
500
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DropdownButtonSeparatorComponent, decorators: [{
501
+ type: Component,
502
+ args: [{
503
+ selector: "mona-dropdown-button-separator",
504
+ template: "",
505
+ providers: [
506
+ {
507
+ provide: PopupMenuToken,
508
+ useExisting: forwardRef(() => DropdownButtonSeparatorComponent)
509
+ }
510
+ ]
511
+ }]
512
+ }] });
513
+
514
+ /*
515
+ * Public API Surface of @nanahoshi/mona-ui/dropdown-button
516
+ */
517
+
518
+ /**
519
+ * Generated bundle index. Do not edit.
520
+ */
521
+
522
+ export { DropdownButtonCheckboxItemComponent, DropdownButtonComponent, DropdownButtonGroupComponent, DropdownButtonItemComponent, DropdownButtonMenuGroupTemplateDirective, DropdownButtonMenuItemIconTemplateDirective, DropdownButtonMenuItemShortcutTemplateDirective, DropdownButtonMenuItemTextTemplateDirective, DropdownButtonRadioGroupComponent, DropdownButtonRadioItemComponent, DropdownButtonSeparatorComponent, DropdownButtonTextTemplateDirective };
523
+ //# sourceMappingURL=nanahoshi-mona-ui-dropdown-button.mjs.map