@nanahoshi/mona-ui 0.1.0 → 0.2.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 (176) hide show
  1. package/auto-complete/package.json +4 -0
  2. package/avatar/package.json +4 -0
  3. package/breadcrumb/package.json +4 -0
  4. package/button/package.json +4 -0
  5. package/button-group/package.json +4 -0
  6. package/calendar/package.json +4 -0
  7. package/check-box/package.json +4 -0
  8. package/chip/package.json +4 -0
  9. package/circular-progress-bar/package.json +4 -0
  10. package/color-gradient/package.json +4 -0
  11. package/color-palette/package.json +4 -0
  12. package/color-picker/package.json +4 -0
  13. package/combo-box/package.json +4 -0
  14. package/common/package.json +4 -0
  15. package/contextmenu/package.json +4 -0
  16. package/date-input/package.json +4 -0
  17. package/date-picker/package.json +4 -0
  18. package/datetime-picker/package.json +4 -0
  19. package/dialog/package.json +4 -0
  20. package/dropdown-button/package.json +4 -0
  21. package/dropdown-list/package.json +4 -0
  22. package/dropdowns/package.json +4 -0
  23. package/editor/package.json +4 -0
  24. package/expansion-panel/package.json +4 -0
  25. package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +40 -55
  26. package/fesm2022/nanahoshi-mona-ui-breadcrumb.mjs +24 -58
  27. package/fesm2022/nanahoshi-mona-ui-button-group.mjs +37 -48
  28. package/fesm2022/nanahoshi-mona-ui-button.mjs +130 -129
  29. package/fesm2022/nanahoshi-mona-ui-calendar.mjs +69 -165
  30. package/fesm2022/nanahoshi-mona-ui-check-box.mjs +81 -128
  31. package/fesm2022/nanahoshi-mona-ui-chip.mjs +102 -112
  32. package/fesm2022/nanahoshi-mona-ui-circular-progress-bar.mjs +11 -25
  33. package/fesm2022/nanahoshi-mona-ui-color-gradient.mjs +41 -92
  34. package/fesm2022/nanahoshi-mona-ui-color-palette.mjs +27 -49
  35. package/fesm2022/nanahoshi-mona-ui-color-picker.mjs +64 -65
  36. package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +39 -61
  37. package/fesm2022/nanahoshi-mona-ui-date-input.mjs +12 -15
  38. package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +44 -33
  39. package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +58 -60
  40. package/fesm2022/nanahoshi-mona-ui-dialog.mjs +52 -165
  41. package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +36 -59
  42. package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +56 -61
  43. package/fesm2022/nanahoshi-mona-ui-editor.mjs +302 -81
  44. package/fesm2022/nanahoshi-mona-ui-expansion-panel.mjs +33 -84
  45. package/fesm2022/nanahoshi-mona-ui-fieldset.mjs +12 -45
  46. package/fesm2022/nanahoshi-mona-ui-filter.mjs +18 -48
  47. package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-cell.component-B9SQH5N-.mjs → nanahoshi-mona-ui-grid-grid-footer-cell.component-B6FBLtrr.mjs} +14 -14
  48. package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DlLwcCFT.mjs → nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-OJe4UYuw.mjs} +4 -8
  49. package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-DCd8K6ng.mjs +121 -0
  50. package/fesm2022/{nanahoshi-mona-ui-grid-grid-toggle.component-DIUutx9s.mjs → nanahoshi-mona-ui-grid-grid-toggle.component-Dl8Hlkhj.mjs} +26 -55
  51. package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-C5FRZlvv.mjs +231 -0
  52. package/fesm2022/{nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-C3eZIaJK.mjs → nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-BRZUd8cE.mjs} +167 -451
  53. package/fesm2022/nanahoshi-mona-ui-grid.mjs +1 -1
  54. package/fesm2022/nanahoshi-mona-ui-internal-indicator-icon.mjs +10 -28
  55. package/fesm2022/nanahoshi-mona-ui-internal-list.mjs +57 -87
  56. package/fesm2022/nanahoshi-mona-ui-internal-tree.mjs +48 -139
  57. package/fesm2022/nanahoshi-mona-ui-internal.mjs +29 -1
  58. package/fesm2022/nanahoshi-mona-ui-list-box.mjs +10 -32
  59. package/fesm2022/nanahoshi-mona-ui-list-view.mjs +8 -21
  60. package/fesm2022/nanahoshi-mona-ui-menubar.mjs +50 -156
  61. package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +40 -69
  62. package/fesm2022/nanahoshi-mona-ui-notification.mjs +32 -116
  63. package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +81 -107
  64. package/fesm2022/nanahoshi-mona-ui-pager.mjs +33 -85
  65. package/fesm2022/nanahoshi-mona-ui-placeholder.mjs +12 -34
  66. package/fesm2022/nanahoshi-mona-ui-popover.mjs +31 -52
  67. package/fesm2022/nanahoshi-mona-ui-popup-menu.mjs +38 -110
  68. package/fesm2022/nanahoshi-mona-ui-popup.mjs +4 -4
  69. package/fesm2022/nanahoshi-mona-ui-progress-bar.mjs +21 -62
  70. package/fesm2022/nanahoshi-mona-ui-radio-button.mjs +66 -111
  71. package/fesm2022/nanahoshi-mona-ui-scroll-view.mjs +60 -151
  72. package/fesm2022/nanahoshi-mona-ui-slider.mjs +117 -173
  73. package/fesm2022/nanahoshi-mona-ui-split-button.mjs +32 -45
  74. package/fesm2022/nanahoshi-mona-ui-splitter.mjs +29 -64
  75. package/fesm2022/nanahoshi-mona-ui-stepper.mjs +38 -101
  76. package/fesm2022/nanahoshi-mona-ui-switch.mjs +58 -79
  77. package/fesm2022/nanahoshi-mona-ui-tabs.mjs +42 -118
  78. package/fesm2022/nanahoshi-mona-ui-text-area.mjs +29 -37
  79. package/fesm2022/nanahoshi-mona-ui-text-box.mjs +60 -81
  80. package/fesm2022/nanahoshi-mona-ui-theme.mjs +1111 -269
  81. package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +45 -39
  82. package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +45 -109
  83. package/fesm2022/nanahoshi-mona-ui-tooltip.mjs +54 -82
  84. package/fesm2022/nanahoshi-mona-ui-tree-view.mjs +2 -2
  85. package/fesm2022/nanahoshi-mona-ui-window.mjs +35 -115
  86. package/fieldset/package.json +4 -0
  87. package/filter/package.json +4 -0
  88. package/grid/package.json +4 -0
  89. package/internal/filter-input/package.json +4 -0
  90. package/internal/indicator-icon/package.json +4 -0
  91. package/internal/list/package.json +4 -0
  92. package/internal/package.json +4 -0
  93. package/internal/tree/package.json +4 -0
  94. package/list/package.json +4 -0
  95. package/list-box/package.json +4 -0
  96. package/list-view/package.json +4 -0
  97. package/menubar/package.json +4 -0
  98. package/multi-select/package.json +4 -0
  99. package/notification/package.json +4 -0
  100. package/numeric-text-box/package.json +4 -0
  101. package/package.json +31 -5
  102. package/pager/package.json +4 -0
  103. package/placeholder/package.json +4 -0
  104. package/popover/package.json +4 -0
  105. package/popup/package.json +4 -0
  106. package/popup-menu/package.json +4 -0
  107. package/progress-bar/package.json +4 -0
  108. package/query/package.json +4 -0
  109. package/radio-button/package.json +4 -0
  110. package/scroll-view/package.json +4 -0
  111. package/slider/package.json +4 -0
  112. package/split-button/package.json +4 -0
  113. package/splitter/package.json +4 -0
  114. package/stepper/package.json +4 -0
  115. package/switch/package.json +4 -0
  116. package/tabs/package.json +4 -0
  117. package/text-area/package.json +4 -0
  118. package/text-box/package.json +4 -0
  119. package/theme/package.json +4 -0
  120. package/time-picker/package.json +4 -0
  121. package/time-selector/package.json +4 -0
  122. package/tooltip/package.json +4 -0
  123. package/tree-view/package.json +4 -0
  124. package/types/nanahoshi-mona-ui-auto-complete.d.ts +6 -7
  125. package/types/nanahoshi-mona-ui-breadcrumb.d.ts +4 -6
  126. package/types/nanahoshi-mona-ui-button-group.d.ts +2 -3
  127. package/types/nanahoshi-mona-ui-button.d.ts +6 -6
  128. package/types/nanahoshi-mona-ui-calendar.d.ts +21 -22
  129. package/types/nanahoshi-mona-ui-check-box.d.ts +6 -9
  130. package/types/nanahoshi-mona-ui-chip.d.ts +2 -3
  131. package/types/nanahoshi-mona-ui-circular-progress-bar.d.ts +2 -4
  132. package/types/nanahoshi-mona-ui-color-gradient.d.ts +10 -11
  133. package/types/nanahoshi-mona-ui-color-palette.d.ts +4 -5
  134. package/types/nanahoshi-mona-ui-color-picker.d.ts +6 -8
  135. package/types/nanahoshi-mona-ui-combo-box.d.ts +6 -7
  136. package/types/nanahoshi-mona-ui-date-input.d.ts +2 -3
  137. package/types/nanahoshi-mona-ui-date-picker.d.ts +2 -3
  138. package/types/nanahoshi-mona-ui-dialog.d.ts +7 -8
  139. package/types/nanahoshi-mona-ui-dropdown-list.d.ts +6 -7
  140. package/types/nanahoshi-mona-ui-dropdowns.d.ts +2 -3
  141. package/types/nanahoshi-mona-ui-editor.d.ts +17 -17
  142. package/types/nanahoshi-mona-ui-expansion-panel.d.ts +8 -10
  143. package/types/nanahoshi-mona-ui-fieldset.d.ts +6 -8
  144. package/types/nanahoshi-mona-ui-filter.d.ts +3 -4
  145. package/types/nanahoshi-mona-ui-grid.d.ts +16 -17
  146. package/types/nanahoshi-mona-ui-internal-indicator-icon.d.ts +0 -1
  147. package/types/nanahoshi-mona-ui-internal-tree.d.ts +16 -16
  148. package/types/nanahoshi-mona-ui-internal.d.ts +8 -1
  149. package/types/nanahoshi-mona-ui-list-box.d.ts +4 -5
  150. package/types/nanahoshi-mona-ui-list-view.d.ts +2 -3
  151. package/types/nanahoshi-mona-ui-menubar.d.ts +7 -8
  152. package/types/nanahoshi-mona-ui-multi-select.d.ts +8 -9
  153. package/types/nanahoshi-mona-ui-numeric-text-box.d.ts +2 -3
  154. package/types/nanahoshi-mona-ui-pager.d.ts +6 -7
  155. package/types/nanahoshi-mona-ui-placeholder.d.ts +4 -6
  156. package/types/nanahoshi-mona-ui-popover.d.ts +8 -9
  157. package/types/nanahoshi-mona-ui-popup-menu.d.ts +12 -13
  158. package/types/nanahoshi-mona-ui-progress-bar.d.ts +8 -9
  159. package/types/nanahoshi-mona-ui-radio-button.d.ts +8 -11
  160. package/types/nanahoshi-mona-ui-scroll-view.d.ts +18 -20
  161. package/types/nanahoshi-mona-ui-slider.d.ts +18 -18
  162. package/types/nanahoshi-mona-ui-split-button.d.ts +2 -3
  163. package/types/nanahoshi-mona-ui-splitter.d.ts +6 -8
  164. package/types/nanahoshi-mona-ui-stepper.d.ts +13 -14
  165. package/types/nanahoshi-mona-ui-switch.d.ts +6 -7
  166. package/types/nanahoshi-mona-ui-tabs.d.ts +15 -17
  167. package/types/nanahoshi-mona-ui-text-area.d.ts +2 -4
  168. package/types/nanahoshi-mona-ui-text-box.d.ts +4 -6
  169. package/types/nanahoshi-mona-ui-theme.d.ts +111 -12
  170. package/types/nanahoshi-mona-ui-time-picker.d.ts +2 -3
  171. package/types/nanahoshi-mona-ui-time-selector.d.ts +10 -11
  172. package/types/nanahoshi-mona-ui-tooltip.d.ts +4 -5
  173. package/types/nanahoshi-mona-ui-window.d.ts +16 -17
  174. package/window/package.json +4 -0
  175. package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-Dgea-O0X.mjs +0 -130
  176. package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-DRHycGIh.mjs +0 -240
@@ -3,13 +3,13 @@ import * as i0 from '@angular/core';
3
3
  import { Directive, inject, DestroyRef, Renderer2, computed, contentChild, TemplateRef, viewChild, input, output, effect, ElementRef, Component } from '@angular/core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { PopupService, fadePopupAnimation } from '@nanahoshi/mona-ui/popup';
6
- import { ThemeService } from '@nanahoshi/mona-ui/theme';
7
- import { tooltipArrowThemeVariants, getPositionConnectionPoints, getOffsetForPosition } from '@nanahoshi/mona-ui/tooltip';
6
+ import { getPositionConnectionPoints, getOffsetForPosition } from '@nanahoshi/mona-ui/tooltip';
8
7
  import { takeUntil, take, fromEvent, filter, tap } from 'rxjs';
9
8
  import { twMerge } from 'tailwind-merge';
10
9
  import { v4 } from 'uuid';
11
10
  import { PreventableEvent } from '@nanahoshi/mona-ui/common';
12
11
  import { cva } from 'class-variance-authority';
12
+ import { themeOverlaySurfaceClasses } from '@nanahoshi/mona-ui/internal';
13
13
 
14
14
  class PopoverFooterTemplateDirective {
15
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PopoverFooterTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -55,10 +55,10 @@ class PopoverShownEvent {
55
55
  }
56
56
  }
57
57
 
58
- const popoverBaseVariants = cva(`
59
- flex flex-col items-center justify-center relative
60
- bg-background border border-border
61
- shadow-[0_2px_8px_rgba(0,0,0,0.12)] z-1
58
+ const popoverBaseThemeVariants = cva(`
59
+ relative z-1 flex flex-col items-center justify-center
60
+ ${themeOverlaySurfaceClasses} text-foreground
61
+ border border-border shadow-(--shadow-overlay)
62
62
  `, {
63
63
  variants: {
64
64
  rounded: {
@@ -69,9 +69,9 @@ const popoverBaseVariants = cva(`
69
69
  }
70
70
  }
71
71
  });
72
- const popoverHeaderVariants = cva(`
73
- flex items-center justify-between w-full
74
- font-semibold overflow-hidden
72
+ const popoverHeaderThemeVariants = cva(`
73
+ flex w-full items-center justify-between overflow-hidden
74
+ font-semibold
75
75
  `, {
76
76
  variants: {
77
77
  rounded: {
@@ -82,76 +82,55 @@ const popoverHeaderVariants = cva(`
82
82
  }
83
83
  }
84
84
  });
85
- const popoverContentVariants = cva(`
86
- flex-1 w-full h-full
87
- overflow-hidden
85
+ const popoverContentThemeVariants = cva(`
86
+ h-full w-full flex-1 overflow-hidden
87
+ `);
88
+ const popoverArrowThemeVariants = cva(`
89
+ absolute z-0 h-3 w-3 rotate-45 transform-center box-border
90
+ pointer-events-none
91
+ ${themeOverlaySurfaceClasses} text-foreground
92
+ border border-border
93
+ data-[position="top"]:-bottom-1.5 data-[position="top"]:border-t-0 data-[position="top"]:border-l-0
94
+ data-[position="top"]:[clip-path:inset(1px_0_0_1px)]
95
+ data-[position="bottom"]:-top-1.5 data-[position="bottom"]:border-r-0 data-[position="bottom"]:border-b-0
96
+ data-[position="bottom"]:[clip-path:inset(0_1px_1px_0)]
97
+ data-[position="left"]:-right-1.5 data-[position="left"]:border-b-0 data-[position="left"]:border-l-0
98
+ data-[position="left"]:[clip-path:inset(0_0_1px_1px)]
99
+ data-[position="right"]:-left-1.5 data-[position="right"]:border-t-0 data-[position="right"]:border-r-0
100
+ data-[position="right"]:[clip-path:inset(1px_1px_0_0)]
88
101
  `);
89
-
90
- const popoverBaseThemeVariants = (theme) => {
91
- switch (theme) {
92
- case "mona":
93
- return popoverBaseVariants;
94
- default:
95
- return popoverBaseVariants;
96
- }
97
- };
98
- const popoverHeaderThemeVariants = (theme) => {
99
- switch (theme) {
100
- case "mona":
101
- return popoverHeaderVariants;
102
- default:
103
- return popoverHeaderVariants;
104
- }
105
- };
106
- const popoverContentThemeVariants = (theme) => {
107
- switch (theme) {
108
- case "mona":
109
- return popoverContentVariants;
110
- default:
111
- return popoverContentVariants;
112
- }
113
- };
114
- const popoverArrowThemeVariants = (theme) => {
115
- return tooltipArrowThemeVariants(theme);
116
- };
117
102
 
118
103
  class PopoverComponent {
119
104
  #destroyRef;
120
105
  #popupService;
121
106
  #renderer;
122
- #themeService;
123
107
  #subscription;
124
108
  constructor() {
125
109
  this.#destroyRef = inject(DestroyRef);
126
110
  this.#popupService = inject(PopupService);
127
111
  this.#renderer = inject(Renderer2);
128
- this.#themeService = inject(ThemeService);
129
112
  this.#subscription = null;
130
113
  this.arrowClasses = computed(() => {
131
- const theme = this.#themeService.theme();
132
- return popoverArrowThemeVariants(theme)();
114
+ return popoverArrowThemeVariants();
133
115
  }, /* @ts-ignore */
134
116
  ...(ngDevMode ? [{ debugName: "arrowClasses" }] : /* istanbul ignore next */ []));
135
117
  this.baseClasses = computed(() => {
136
- const theme = this.#themeService.theme();
137
118
  const rounded = this.rounded();
138
- return popoverBaseThemeVariants(theme)({ rounded });
119
+ return popoverBaseThemeVariants({ rounded });
139
120
  }, /* @ts-ignore */
140
121
  ...(ngDevMode ? [{ debugName: "baseClasses" }] : /* istanbul ignore next */ []));
141
122
  this.contentClasses = computed(() => {
142
- const theme = this.#themeService.theme();
143
- return popoverContentThemeVariants(theme)();
123
+ return popoverContentThemeVariants();
144
124
  }, /* @ts-ignore */
145
125
  ...(ngDevMode ? [{ debugName: "contentClasses" }] : /* istanbul ignore next */ []));
146
126
  this.currentArrowPosition = computed(() => this.position(), /* @ts-ignore */
147
127
  ...(ngDevMode ? [{ debugName: "currentArrowPosition" }] : /* istanbul ignore next */ []));
148
128
  this.footerTemplateRef = contentChild(PopoverFooterTemplateDirective, { ...(ngDevMode ? { debugName: "footerTemplateRef" } : /* istanbul ignore next */ {}), read: TemplateRef });
149
129
  this.headerClasses = computed(() => {
150
- const theme = this.#themeService.theme();
151
130
  const rounded = this.rounded();
152
131
  const hasTemplate = !!this.titleTemplateRef();
153
132
  const padding = hasTemplate ? "p-0" : "p-2";
154
- const variants = popoverHeaderThemeVariants(theme)({ rounded });
133
+ const variants = popoverHeaderThemeVariants({ rounded });
155
134
  return twMerge(variants, padding);
156
135
  }, /* @ts-ignore */
157
136
  ...(ngDevMode ? [{ debugName: "headerClasses" }] : /* istanbul ignore next */ []));
@@ -306,11 +285,11 @@ class PopoverComponent {
306
285
  return target instanceof ElementRef ? target.nativeElement : target;
307
286
  }
308
287
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
309
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: PopoverComponent, isStandalone: true, selector: "mona-popover", inputs: { displayArrow: { classPropertyName: "displayArrow", publicName: "displayArrow", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hide: "hide", hidden: "hidden", show: "show", shown: "shown" }, queries: [{ propertyName: "footerTemplateRef", first: true, predicate: PopoverFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "titleTemplateRef", first: true, predicate: PopoverTitleTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], exportAs: ["monaPopover"], ngImport: i0, template: "<ng-template>\r\n <div [class]=\"baseClasses()\" [id]=\"uid\" role=\"dialog\" [attr.aria-labelledby]=\"headerId()\" [attr.data-uid]=\"uid\">\r\n <div>\r\n @if (title() || titleTemplateRef()) {\r\n <div [class]=\"headerClasses()\" [id]=\"headerId()\">\r\n @if (titleTemplateRef()) {\r\n <ng-container [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-container>\r\n } @else {\r\n <span>{{ title() }}</span>\r\n }\r\n </div>\r\n }\r\n <div [class]=\"contentClasses()\">\r\n <ng-content></ng-content>\r\n </div>\r\n @if (footerTemplateRef()) {\r\n <div class=\"mona-popover-footer\">\r\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef()\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (displayArrow()) {\r\n <div [class]=\"arrowClasses()\" [attr.data-position]=\"currentArrowPosition()\"></div>\r\n }\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
288
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: PopoverComponent, isStandalone: true, selector: "mona-popover", inputs: { displayArrow: { classPropertyName: "displayArrow", publicName: "displayArrow", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hide: "hide", hidden: "hidden", show: "show", shown: "shown" }, queries: [{ propertyName: "footerTemplateRef", first: true, predicate: PopoverFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "titleTemplateRef", first: true, predicate: PopoverTitleTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], exportAs: ["monaPopover"], ngImport: i0, template: "<ng-template>\n <div [class]=\"baseClasses()\" [id]=\"uid\" role=\"dialog\" [attr.aria-labelledby]=\"headerId()\" [attr.data-uid]=\"uid\">\n <div>\n @if (title() || titleTemplateRef()) {\n <div [class]=\"headerClasses()\" [id]=\"headerId()\">\n @if (titleTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-container>\n } @else {\n <span>{{ title() }}</span>\n }\n </div>\n }\n <div [class]=\"contentClasses()\">\n <ng-content></ng-content>\n </div>\n @if (footerTemplateRef()) {\n <div class=\"mona-popover-footer\">\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef()\"></ng-container>\n </div>\n }\n </div>\n @if (displayArrow()) {\n <div [class]=\"arrowClasses()\" [attr.data-position]=\"currentArrowPosition()\"></div>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
310
289
  }
311
290
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PopoverComponent, decorators: [{
312
291
  type: Component,
313
- args: [{ selector: "mona-popover", exportAs: "monaPopover", imports: [NgTemplateOutlet], template: "<ng-template>\r\n <div [class]=\"baseClasses()\" [id]=\"uid\" role=\"dialog\" [attr.aria-labelledby]=\"headerId()\" [attr.data-uid]=\"uid\">\r\n <div>\r\n @if (title() || titleTemplateRef()) {\r\n <div [class]=\"headerClasses()\" [id]=\"headerId()\">\r\n @if (titleTemplateRef()) {\r\n <ng-container [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-container>\r\n } @else {\r\n <span>{{ title() }}</span>\r\n }\r\n </div>\r\n }\r\n <div [class]=\"contentClasses()\">\r\n <ng-content></ng-content>\r\n </div>\r\n @if (footerTemplateRef()) {\r\n <div class=\"mona-popover-footer\">\r\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef()\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (displayArrow()) {\r\n <div [class]=\"arrowClasses()\" [attr.data-position]=\"currentArrowPosition()\"></div>\r\n }\r\n </div>\r\n</ng-template>\r\n" }]
292
+ args: [{ selector: "mona-popover", exportAs: "monaPopover", imports: [NgTemplateOutlet], template: "<ng-template>\n <div [class]=\"baseClasses()\" [id]=\"uid\" role=\"dialog\" [attr.aria-labelledby]=\"headerId()\" [attr.data-uid]=\"uid\">\n <div>\n @if (title() || titleTemplateRef()) {\n <div [class]=\"headerClasses()\" [id]=\"headerId()\">\n @if (titleTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-container>\n } @else {\n <span>{{ title() }}</span>\n }\n </div>\n }\n <div [class]=\"contentClasses()\">\n <ng-content></ng-content>\n </div>\n @if (footerTemplateRef()) {\n <div class=\"mona-popover-footer\">\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef()\"></ng-container>\n </div>\n }\n </div>\n @if (displayArrow()) {\n <div [class]=\"arrowClasses()\" [attr.data-position]=\"currentArrowPosition()\"></div>\n }\n </div>\n</ng-template>\n" }]
314
293
  }], ctorParameters: () => [], propDecorators: { footerTemplateRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => PopoverFooterTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], titleTemplateRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => PopoverTitleTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], templateRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], displayArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayArrow", required: false }] }], hide: [{ type: i0.Output, args: ["hide"] }], hidden: [{ type: i0.Output, args: ["hidden"] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], show: [{ type: i0.Output, args: ["show"] }], shown: [{ type: i0.Output, args: ["shown"] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], trigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "trigger", required: false }] }] } });
315
294
 
316
295
  /*
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, signal, computed, inject, DestroyRef, ElementRef, afterNextRender, Component, contentChild, contentChildren, input, output, afterRenderEffect, ChangeDetectionStrategy, linkedSignal, forwardRef, model, TemplateRef, Directive } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { createElementControlId, isNavigationKey, isTypeaheadKey, setupTypeahead, toCssValue, rxTimeout } from '@nanahoshi/mona-ui/internal';
4
+ import { themeOverlaySurfaceClasses, createElementControlId, isNavigationKey, isTypeaheadKey, setupTypeahead, toCssValue, rxTimeout } from '@nanahoshi/mona-ui/internal';
5
5
  import { PopupDataInjectionToken, PopupService } from '@nanahoshi/mona-ui/popup';
6
6
  import { forEach, select, groupBy, selectMany, any } from '@mirei/ts-collections';
7
7
  import { Subject, take, tap, fromEvent, takeUntil, filter, switchMap } from 'rxjs';
@@ -9,7 +9,6 @@ import { PreventableEvent } from '@nanahoshi/mona-ui/common';
9
9
  import { v4 } from 'uuid';
10
10
  import { NgTemplateOutlet } from '@angular/common';
11
11
  import { LucideChevronRight, LucideCheck } from '@lucide/angular';
12
- import { ThemeService } from '@nanahoshi/mona-ui/theme';
13
12
  import { twMerge } from 'tailwind-merge';
14
13
  import { cva } from 'class-variance-authority';
15
14
 
@@ -134,7 +133,7 @@ class PopupMenuItemClickEvent extends PreventableEvent {
134
133
  }
135
134
  }
136
135
 
137
- const popupMenuBaseVariants = cva(`w-full h-full overflow-hidden`, {
136
+ const popupMenuBaseThemeVariants = cva(`h-full w-full overflow-hidden`, {
138
137
  variants: {
139
138
  rounded: {
140
139
  small: "rounded-sm",
@@ -144,12 +143,10 @@ const popupMenuBaseVariants = cva(`w-full h-full overflow-hidden`, {
144
143
  }
145
144
  }
146
145
  });
147
- const popupMenuContainerVariants = cva(`
148
- flex flex-col
149
- bg-background text-foreground
150
- border border-border
151
- outline-none
152
- p-1 shadow-md
146
+ const popupMenuContainerThemeVariants = cva(`
147
+ flex flex-col p-1
148
+ ${themeOverlaySurfaceClasses} text-foreground
149
+ border border-border shadow-(--shadow-overlay) outline-none
153
150
  `, {
154
151
  variants: {
155
152
  rounded: {
@@ -160,7 +157,7 @@ const popupMenuContainerVariants = cva(`
160
157
  }
161
158
  }
162
159
  });
163
- const popupMenuGroupHeaderVariants = cva(`font-bold inline-flex select-none px-2 py-1 w-full`, {
160
+ const popupMenuGroupHeaderThemeVariants = cva(`inline-flex w-full select-none px-2 py-1 font-bold text-muted-foreground`, {
164
161
  variants: {
165
162
  size: {
166
163
  small: "text-xs",
@@ -169,25 +166,17 @@ const popupMenuGroupHeaderVariants = cva(`font-bold inline-flex select-none px-2
169
166
  }
170
167
  }
171
168
  });
172
- const popupMenuIconContainerVariants = cva(`absolute left-2 flex items-center justify-center`);
173
- const popupMenuItemVariants = cva(`
174
- relative flex gap-2
175
- cursor-pointer select-none items-center pl-8 pr-2 py-1
176
- outline-none
177
-
178
- hover:bg-hover
179
- hover:text-hover-foreground
180
-
181
- focus-within:bg-accent
182
- focus-within:text-accent-foreground
183
- focus-within:outline-none
184
-
185
- data-[disabled='true']:pointer-events-none
186
- data-[disabled='true']:cursor-not-allowed
187
- data-[disabled='true']:opacity-50
188
-
189
- data-[active='true']:bg-hover
190
- data-[active='true']:text-hover-foreground
169
+ const popupMenuIconContainerThemeVariants = cva(`absolute left-2 flex items-center justify-center`);
170
+ const popupMenuItemThemeVariants = cva(`
171
+ relative flex cursor-pointer select-none items-center gap-2 py-1 pr-2 pl-8
172
+ text-foreground outline-none
173
+ hover:bg-[var(--mona-menu-item-hover-background,var(--color-hover))] hover:text-foreground
174
+ focus-within:bg-[var(--mona-menu-item-hover-background,var(--color-hover))]
175
+ focus-within:text-foreground focus-within:outline-none
176
+ data-[disabled='true']:pointer-events-none data-[disabled='true']:cursor-not-allowed
177
+ data-[disabled='true']:text-disabled-foreground
178
+ data-[active='true']:bg-[var(--mona-menu-item-hover-background,var(--color-hover))]
179
+ data-[active='true']:text-foreground
191
180
  `, {
192
181
  variants: {
193
182
  rounded: {
@@ -203,56 +192,7 @@ const popupMenuItemVariants = cva(`
203
192
  }
204
193
  }
205
194
  });
206
- const popupMenuLinkVariants = cva(`flex items-center justify-center`);
207
-
208
- const popupMenuBaseThemeVariants = (theme) => {
209
- switch (theme) {
210
- case "mona":
211
- return popupMenuBaseVariants;
212
- default:
213
- return popupMenuBaseVariants;
214
- }
215
- };
216
- const popupMenuContainerThemeVariants = (theme) => {
217
- switch (theme) {
218
- case "mona":
219
- return popupMenuContainerVariants;
220
- default:
221
- return popupMenuContainerVariants;
222
- }
223
- };
224
- const popupMenuGroupHeaderThemeVariants = (theme) => {
225
- switch (theme) {
226
- case "mona":
227
- return popupMenuGroupHeaderVariants;
228
- default:
229
- return popupMenuGroupHeaderVariants;
230
- }
231
- };
232
- const popupMenuIconContainerThemeVariants = (theme) => {
233
- switch (theme) {
234
- case "mona":
235
- return popupMenuIconContainerVariants;
236
- default:
237
- return popupMenuIconContainerVariants;
238
- }
239
- };
240
- const popupMenuItemThemeVariants = (theme) => {
241
- switch (theme) {
242
- case "mona":
243
- return popupMenuItemVariants;
244
- default:
245
- return popupMenuItemVariants;
246
- }
247
- };
248
- const popupMenuLinkThemeVariants = (theme) => {
249
- switch (theme) {
250
- case "mona":
251
- return popupMenuLinkVariants;
252
- default:
253
- return popupMenuLinkVariants;
254
- }
255
- };
195
+ const popupMenuLinkThemeVariants = cva(`flex items-center justify-center`);
256
196
 
257
197
  class PopupMenuListComponent {
258
198
  #childCloseRequest$;
@@ -264,7 +204,6 @@ class PopupMenuListComponent {
264
204
  #navigationItems;
265
205
  #parentConfig;
266
206
  #popupService;
267
- #themeService;
268
207
  #typeaheadKey$;
269
208
  #viaKeyboardNavigation;
270
209
  constructor() {
@@ -312,29 +251,25 @@ class PopupMenuListComponent {
312
251
  ...(ngDevMode ? [{ debugName: "#navigationItems" }] : /* istanbul ignore next */ []));
313
252
  this.#parentConfig = inject(PopupDataInjectionToken);
314
253
  this.#popupService = inject(PopupService);
315
- this.#themeService = inject(ThemeService);
316
254
  this.#typeaheadKey$ = new Subject();
317
255
  this.#viaKeyboardNavigation = signal(false, /* @ts-ignore */
318
256
  ...(ngDevMode ? [{ debugName: "#viaKeyboardNavigation" }] : /* istanbul ignore next */ []));
319
257
  this.activeMenuItem = signal(null, /* @ts-ignore */
320
258
  ...(ngDevMode ? [{ debugName: "activeMenuItem" }] : /* istanbul ignore next */ []));
321
259
  this.baseClasses = computed(() => {
322
- const theme = this.#themeService.theme();
323
260
  const rounded = this.#parentConfig.rounded();
324
- return popupMenuBaseThemeVariants(theme)({ rounded });
261
+ return popupMenuBaseThemeVariants({ rounded });
325
262
  }, /* @ts-ignore */
326
263
  ...(ngDevMode ? [{ debugName: "baseClasses" }] : /* istanbul ignore next */ []));
327
264
  this.containerClasses = computed(() => {
328
- const theme = this.#themeService.theme();
329
265
  const rounded = this.#parentConfig.rounded();
330
- return popupMenuContainerThemeVariants(theme)({ rounded });
266
+ return popupMenuContainerThemeVariants({ rounded });
331
267
  }, /* @ts-ignore */
332
268
  ...(ngDevMode ? [{ debugName: "containerClasses" }] : /* istanbul ignore next */ []));
333
269
  this.groupHeaderClasses = computed(() => {
334
- const theme = this.#themeService.theme();
335
270
  const size = this.#parentConfig.size();
336
271
  const hasIcon = this.iconAreaVisible();
337
- const variantClasses = popupMenuGroupHeaderThemeVariants(theme)({ size });
272
+ const variantClasses = popupMenuGroupHeaderThemeVariants({ size });
338
273
  const iconClasses = hasIcon ? "pl-8" : "pl-2";
339
274
  return twMerge(variantClasses, iconClasses);
340
275
  }, /* @ts-ignore */
@@ -346,23 +281,20 @@ class PopupMenuListComponent {
346
281
  }, /* @ts-ignore */
347
282
  ...(ngDevMode ? [{ debugName: "iconAreaVisible" }] : /* istanbul ignore next */ []));
348
283
  this.iconContainerClasses = computed(() => {
349
- const theme = this.#themeService.theme();
350
- return popupMenuIconContainerThemeVariants(theme)();
284
+ return popupMenuIconContainerThemeVariants();
351
285
  }, /* @ts-ignore */
352
286
  ...(ngDevMode ? [{ debugName: "iconContainerClasses" }] : /* istanbul ignore next */ []));
353
287
  this.linkContainerClasses = computed(() => {
354
- const theme = this.#themeService.theme();
355
- return popupMenuLinkThemeVariants(theme)();
288
+ return popupMenuLinkThemeVariants();
356
289
  }, /* @ts-ignore */
357
290
  ...(ngDevMode ? [{ debugName: "linkContainerClasses" }] : /* istanbul ignore next */ []));
358
291
  this.menuId = computed(() => this.#parentConfig.menuId, /* @ts-ignore */
359
292
  ...(ngDevMode ? [{ debugName: "menuId" }] : /* istanbul ignore next */ []));
360
293
  this.menuItemClasses = computed(() => {
361
- const theme = this.#themeService.theme();
362
294
  const rounded = this.#parentConfig.rounded();
363
295
  const size = this.#parentConfig.size();
364
296
  const hasIcon = this.iconAreaVisible();
365
- const variantClasses = popupMenuItemThemeVariants(theme)({ rounded, size });
297
+ const variantClasses = popupMenuItemThemeVariants({ rounded, size });
366
298
  const iconClasses = hasIcon ? "pl-8" : "pl-2";
367
299
  return twMerge(variantClasses, iconClasses);
368
300
  }, /* @ts-ignore */
@@ -401,6 +333,13 @@ class PopupMenuListComponent {
401
333
  }
402
334
  this.#parentConfig.menuItemClick$.next(popupMenuItemClickEvent);
403
335
  }
336
+ closePopup() {
337
+ if (this.popupRef) {
338
+ this.popupRef.close();
339
+ this.popupRef = null;
340
+ }
341
+ this.#close$.next();
342
+ }
404
343
  createSubmenu(target, viaKeyboard) {
405
344
  this.#viaKeyboardNavigation.set(viaKeyboard);
406
345
  const minWidth = this.#parentConfig.minWidth?.() ?? undefined;
@@ -533,10 +472,7 @@ class PopupMenuListComponent {
533
472
  }
534
473
  }
535
474
  handleEscapeKey() {
536
- if (this.popupRef) {
537
- this.popupRef.close();
538
- this.popupRef = null;
539
- }
475
+ this.closePopup();
540
476
  }
541
477
  handleHomeKey() {
542
478
  const firstItem = this.#navigationItems().firstOrDefault();
@@ -608,28 +544,20 @@ class PopupMenuListComponent {
608
544
  }
609
545
  setPopupCloseSubscription() {
610
546
  this.#parentConfig.parentClose$
611
- .pipe(takeUntilDestroyed(this.#destroyRef), tap(() => {
612
- if (this.popupRef) {
613
- this.popupRef.close();
614
- this.popupRef = null;
615
- }
616
- }))
547
+ .pipe(takeUntilDestroyed(this.#destroyRef), tap(() => this.closePopup()))
617
548
  .subscribe();
618
549
  this.#childCloseRequest$
619
550
  .pipe(takeUntilDestroyed(this.#destroyRef), tap(() => {
620
551
  const activeItem = this.activeMenuItem();
621
552
  this.notifyNavigation(activeItem, "left");
622
- if (this.popupRef) {
623
- this.popupRef.close();
624
- this.popupRef = null;
625
- }
553
+ this.closePopup();
626
554
  }))
627
555
  .subscribe();
628
556
  }
629
557
  setPointerSubscriptions() {
630
558
  this.pointerEnter$
631
559
  .pipe(takeUntilDestroyed(this.#destroyRef), takeUntil(this.#parentConfig.parentClose$), filter(e => e.item !== this.activeMenuItem()), tap(e => {
632
- this.popupRef?.close();
560
+ this.closePopup();
633
561
  if (e.item.items.length === 0) {
634
562
  this.activeMenuItem.set(null);
635
563
  }
@@ -654,13 +582,13 @@ class PopupMenuListComponent {
654
582
  .subscribe(buffer => this.cycleThroughMatchedItems(buffer));
655
583
  }
656
584
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PopupMenuListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
657
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: PopupMenuListComponent, isStandalone: true, selector: "mona-popup-menu-list", host: { properties: { "class": "baseClasses()" } }, ngImport: i0, template: "<div\r\n role=\"menu\"\r\n [attr.tabindex]=\"0\"\r\n [attr.aria-orientation]=\"'vertical'\"\r\n [attr.aria-activedescendant]=\"activeMenuItem()?.uid\"\r\n [attr.id]=\"menuId()\"\r\n [class]=\"containerClasses()\">\r\n @for (group of menuItems(); track $index) {\r\n @if (typeof group.key === \"string\") {\r\n @let groupTemplate = group.first().groupTemplate?.() ?? popupGroupTemplate() ?? null;\r\n <div role=\"group\" [attr.aria-labelledby]=\"`${group.key}-${$index}`\" [class]=\"groupHeaderClasses()\">\r\n <div [id]=\"`${group.key}-${$index}`\" role=\"presentation\">\r\n @if (groupTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"groupTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: group.key }\"></ng-container>\r\n } @else {\r\n <span>{{ group.key }}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @for (item of group.source; track $index) {\r\n @if (item.separator) {\r\n <div role=\"separator\" class=\"bg-border my-1 h-px\"></div>\r\n } @else {\r\n @let iconTemplate = item.iconTemplate?.() ?? popupIconTemplate() ?? null;\r\n @let shortcutTemplate = item.shortcutTemplate?.() ?? popupShortcutTemplate() ?? null;\r\n @let textTemplate = item.textTemplate?.() ?? popupTextTemplate() ?? null;\r\n <div\r\n role=\"menuitem\"\r\n [id]=\"item.uid\"\r\n (pointerenter)=\"pointerEnter$.next({ event: $event, item: item })\"\r\n (pointerleave)=\"pointerLeave$.next({ event: $event, item: item })\"\r\n (click)=\"onItemClick($event, item)\"\r\n [attr.data-active]=\"item === activeMenuItem()\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-expanded]=\"item.items.length > 0 && item === activeMenuItem() && !!popupRef\"\r\n [attr.aria-haspopup]=\"item.items.length > 0 ? 'menu' : null\"\r\n [attr.aria-label]=\"item.label || null\"\r\n [attr.data-disabled]=\"item.disabled\"\r\n [class]=\"menuItemClasses()\">\r\n @if (iconAreaVisible()) {\r\n <div [class]=\"iconContainerClasses()\">\r\n @if (!item.checkable && !item.radio) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"iconTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n } @else if (item.checkable) {\r\n @if (item.checked?.()) {\r\n <svg lucideCheck [size]=\"14\"></svg>\r\n }\r\n } @else if (item.radio) {\r\n @if (item.selected?.()) {\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n class=\"lucide lucide-circle size-2 fill-current\">\r\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\r\n </svg>\r\n }\r\n }\r\n </div>\r\n }\r\n <div class=\"flex-1\">\r\n @if (textTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"textTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n } @else {\r\n {{ item.label }}\r\n }\r\n </div>\r\n @if (item.items.length > 0) {\r\n @if (!item.checkable) {\r\n <div [class]=\"linkContainerClasses()\">\r\n <svg lucideChevronRight [size]=\"16\"></svg>\r\n </div>\r\n }\r\n } @else if (shortcutTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"shortcutTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "component", type: LucideCheck, selector: "svg[lucideCheck]" }] }); }
585
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: PopupMenuListComponent, isStandalone: true, selector: "mona-popup-menu-list", host: { properties: { "class": "baseClasses()" } }, ngImport: i0, template: "<div\n role=\"menu\"\n [attr.tabindex]=\"0\"\n [attr.aria-orientation]=\"'vertical'\"\n [attr.aria-activedescendant]=\"activeMenuItem()?.uid\"\n [attr.id]=\"menuId()\"\n [class]=\"containerClasses()\">\n @for (group of menuItems(); track $index) {\n @if (typeof group.key === \"string\") {\n @let groupTemplate = group.first().groupTemplate?.() ?? popupGroupTemplate() ?? null;\n <div role=\"group\" [attr.aria-labelledby]=\"`${group.key}-${$index}`\" [class]=\"groupHeaderClasses()\">\n <div [id]=\"`${group.key}-${$index}`\" role=\"presentation\">\n @if (groupTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: group.key }\"></ng-container>\n } @else {\n <span>{{ group.key }}</span>\n }\n </div>\n </div>\n }\n @for (item of group.source; track $index) {\n @if (item.separator) {\n <div role=\"separator\" class=\"bg-border my-1 h-px\"></div>\n } @else {\n @let iconTemplate = item.iconTemplate?.() ?? popupIconTemplate() ?? null;\n @let shortcutTemplate = item.shortcutTemplate?.() ?? popupShortcutTemplate() ?? null;\n @let textTemplate = item.textTemplate?.() ?? popupTextTemplate() ?? null;\n <div\n role=\"menuitem\"\n [id]=\"item.uid\"\n (pointerenter)=\"pointerEnter$.next({ event: $event, item: item })\"\n (pointerleave)=\"pointerLeave$.next({ event: $event, item: item })\"\n (click)=\"onItemClick($event, item)\"\n [attr.data-active]=\"item === activeMenuItem()\"\n [attr.aria-disabled]=\"item.disabled\"\n [attr.aria-expanded]=\"item.items.length > 0 && item === activeMenuItem() && !!popupRef\"\n [attr.aria-haspopup]=\"item.items.length > 0 ? 'menu' : null\"\n [attr.aria-label]=\"item.label || null\"\n [attr.data-disabled]=\"item.disabled\"\n [class]=\"menuItemClasses()\">\n @if (iconAreaVisible()) {\n <div [class]=\"iconContainerClasses()\">\n @if (!item.checkable && !item.radio) {\n <ng-container\n [ngTemplateOutlet]=\"iconTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n } @else if (item.checkable) {\n @if (item.checked?.()) {\n <svg lucideCheck [size]=\"14\"></svg>\n }\n } @else if (item.radio) {\n @if (item.selected?.()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"lucide lucide-circle size-2 fill-current\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n </svg>\n }\n }\n </div>\n }\n <div class=\"flex-1\">\n @if (textTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"textTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n } @else {\n {{ item.label }}\n }\n </div>\n @if (item.items.length > 0) {\n @if (!item.checkable) {\n <div [class]=\"linkContainerClasses()\">\n <svg lucideChevronRight [size]=\"16\"></svg>\n </div>\n }\n } @else if (shortcutTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"shortcutTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n }\n </div>\n }\n }\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "component", type: LucideCheck, selector: "svg[lucideCheck]" }] }); }
658
586
  }
659
587
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PopupMenuListComponent, decorators: [{
660
588
  type: Component,
661
589
  args: [{ selector: "mona-popup-menu-list", imports: [NgTemplateOutlet, LucideChevronRight, LucideCheck], host: {
662
590
  "[class]": "baseClasses()"
663
- }, template: "<div\r\n role=\"menu\"\r\n [attr.tabindex]=\"0\"\r\n [attr.aria-orientation]=\"'vertical'\"\r\n [attr.aria-activedescendant]=\"activeMenuItem()?.uid\"\r\n [attr.id]=\"menuId()\"\r\n [class]=\"containerClasses()\">\r\n @for (group of menuItems(); track $index) {\r\n @if (typeof group.key === \"string\") {\r\n @let groupTemplate = group.first().groupTemplate?.() ?? popupGroupTemplate() ?? null;\r\n <div role=\"group\" [attr.aria-labelledby]=\"`${group.key}-${$index}`\" [class]=\"groupHeaderClasses()\">\r\n <div [id]=\"`${group.key}-${$index}`\" role=\"presentation\">\r\n @if (groupTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"groupTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: group.key }\"></ng-container>\r\n } @else {\r\n <span>{{ group.key }}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @for (item of group.source; track $index) {\r\n @if (item.separator) {\r\n <div role=\"separator\" class=\"bg-border my-1 h-px\"></div>\r\n } @else {\r\n @let iconTemplate = item.iconTemplate?.() ?? popupIconTemplate() ?? null;\r\n @let shortcutTemplate = item.shortcutTemplate?.() ?? popupShortcutTemplate() ?? null;\r\n @let textTemplate = item.textTemplate?.() ?? popupTextTemplate() ?? null;\r\n <div\r\n role=\"menuitem\"\r\n [id]=\"item.uid\"\r\n (pointerenter)=\"pointerEnter$.next({ event: $event, item: item })\"\r\n (pointerleave)=\"pointerLeave$.next({ event: $event, item: item })\"\r\n (click)=\"onItemClick($event, item)\"\r\n [attr.data-active]=\"item === activeMenuItem()\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-expanded]=\"item.items.length > 0 && item === activeMenuItem() && !!popupRef\"\r\n [attr.aria-haspopup]=\"item.items.length > 0 ? 'menu' : null\"\r\n [attr.aria-label]=\"item.label || null\"\r\n [attr.data-disabled]=\"item.disabled\"\r\n [class]=\"menuItemClasses()\">\r\n @if (iconAreaVisible()) {\r\n <div [class]=\"iconContainerClasses()\">\r\n @if (!item.checkable && !item.radio) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"iconTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n } @else if (item.checkable) {\r\n @if (item.checked?.()) {\r\n <svg lucideCheck [size]=\"14\"></svg>\r\n }\r\n } @else if (item.radio) {\r\n @if (item.selected?.()) {\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n class=\"lucide lucide-circle size-2 fill-current\">\r\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\r\n </svg>\r\n }\r\n }\r\n </div>\r\n }\r\n <div class=\"flex-1\">\r\n @if (textTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"textTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n } @else {\r\n {{ item.label }}\r\n }\r\n </div>\r\n @if (item.items.length > 0) {\r\n @if (!item.checkable) {\r\n <div [class]=\"linkContainerClasses()\">\r\n <svg lucideChevronRight [size]=\"16\"></svg>\r\n </div>\r\n }\r\n } @else if (shortcutTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"shortcutTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n</div>\r\n" }]
591
+ }, template: "<div\n role=\"menu\"\n [attr.tabindex]=\"0\"\n [attr.aria-orientation]=\"'vertical'\"\n [attr.aria-activedescendant]=\"activeMenuItem()?.uid\"\n [attr.id]=\"menuId()\"\n [class]=\"containerClasses()\">\n @for (group of menuItems(); track $index) {\n @if (typeof group.key === \"string\") {\n @let groupTemplate = group.first().groupTemplate?.() ?? popupGroupTemplate() ?? null;\n <div role=\"group\" [attr.aria-labelledby]=\"`${group.key}-${$index}`\" [class]=\"groupHeaderClasses()\">\n <div [id]=\"`${group.key}-${$index}`\" role=\"presentation\">\n @if (groupTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: group.key }\"></ng-container>\n } @else {\n <span>{{ group.key }}</span>\n }\n </div>\n </div>\n }\n @for (item of group.source; track $index) {\n @if (item.separator) {\n <div role=\"separator\" class=\"bg-border my-1 h-px\"></div>\n } @else {\n @let iconTemplate = item.iconTemplate?.() ?? popupIconTemplate() ?? null;\n @let shortcutTemplate = item.shortcutTemplate?.() ?? popupShortcutTemplate() ?? null;\n @let textTemplate = item.textTemplate?.() ?? popupTextTemplate() ?? null;\n <div\n role=\"menuitem\"\n [id]=\"item.uid\"\n (pointerenter)=\"pointerEnter$.next({ event: $event, item: item })\"\n (pointerleave)=\"pointerLeave$.next({ event: $event, item: item })\"\n (click)=\"onItemClick($event, item)\"\n [attr.data-active]=\"item === activeMenuItem()\"\n [attr.aria-disabled]=\"item.disabled\"\n [attr.aria-expanded]=\"item.items.length > 0 && item === activeMenuItem() && !!popupRef\"\n [attr.aria-haspopup]=\"item.items.length > 0 ? 'menu' : null\"\n [attr.aria-label]=\"item.label || null\"\n [attr.data-disabled]=\"item.disabled\"\n [class]=\"menuItemClasses()\">\n @if (iconAreaVisible()) {\n <div [class]=\"iconContainerClasses()\">\n @if (!item.checkable && !item.radio) {\n <ng-container\n [ngTemplateOutlet]=\"iconTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n } @else if (item.checkable) {\n @if (item.checked?.()) {\n <svg lucideCheck [size]=\"14\"></svg>\n }\n } @else if (item.radio) {\n @if (item.selected?.()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"lucide lucide-circle size-2 fill-current\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n </svg>\n }\n }\n </div>\n }\n <div class=\"flex-1\">\n @if (textTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"textTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n } @else {\n {{ item.label }}\n }\n </div>\n @if (item.items.length > 0) {\n @if (!item.checkable) {\n <div [class]=\"linkContainerClasses()\">\n <svg lucideChevronRight [size]=\"16\"></svg>\n </div>\n }\n } @else if (shortcutTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"shortcutTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n }\n </div>\n }\n }\n }\n</div>\n" }]
664
592
  }], ctorParameters: () => [] });
665
593
 
666
594
  class PopupMenuComponent {
@@ -203,13 +203,13 @@ class PopupWrapperComponent {
203
203
  this.#fallbackTimer = win.setTimeout(() => this.#completeClose(), duration + 50);
204
204
  }
205
205
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PopupWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
206
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: PopupWrapperComponent, isStandalone: true, selector: "mona-popup-wrapper", host: { properties: { "class": "hostClasses()" } }, viewQueries: [{ propertyName: "animationElement", first: true, predicate: ["animationElement"], descendants: true, isSignal: true }, { propertyName: "componentOutlet", first: true, predicate: ["componentOutlet"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "@if (visible()) {\r\n <div\r\n #animationElement\r\n class=\"w-full h-full origin-center\"\r\n [animate.enter]=\"enterAnimationClasses()\"\r\n [animate.leave]=\"leaveAnimationClasses()\"\r\n (animationcancel)=\"onNativeLeaveComplete($event)\"\r\n (animationend)=\"onNativeLeaveComplete($event)\"\r\n (transitioncancel)=\"onNativeLeaveComplete($event)\"\r\n (transitionend)=\"onNativeLeaveComplete($event)\">\r\n @if (templateRef()) {\r\n <ng-container [ngTemplateOutlet]=\"templateRef()\"></ng-container>\r\n }\r\n <ng-container #componentOutlet></ng-container>\r\n </div>\r\n}\r\n", styles: [":host{display:block}.mona-popup-enter{animation:mona-popup-scale-in .15s cubic-bezier(.4,0,.2,1)}.mona-popup-leave{animation:mona-popup-scale-out .15s cubic-bezier(.4,0,.2,1)}.mona-dropdown-popup-enter{animation:mona-dropdown-popup-scale-in .15s cubic-bezier(.4,0,.2,1);transform-origin:top center}.mona-dropdown-popup-leave{animation:mona-dropdown-popup-scale-out .15s cubic-bezier(.4,0,.2,1);transform-origin:top center}.mona-popup-fade-enter{animation:mona-popup-fade-in 50ms ease-in}.mona-popup-fade-leave{animation:mona-popup-fade-out .15s ease-out}@keyframes mona-popup-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes mona-popup-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes mona-dropdown-popup-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes mona-dropdown-popup-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes mona-popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes mona-popup-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.mona-popup-enter,.mona-popup-leave,.mona-dropdown-popup-enter,.mona-dropdown-popup-leave,.mona-popup-fade-enter,.mona-popup-fade-leave{animation-duration:1ms}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
206
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: PopupWrapperComponent, isStandalone: true, selector: "mona-popup-wrapper", host: { properties: { "class": "hostClasses()" } }, viewQueries: [{ propertyName: "animationElement", first: true, predicate: ["animationElement"], descendants: true, isSignal: true }, { propertyName: "componentOutlet", first: true, predicate: ["componentOutlet"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "@if (visible()) {\n <div\n #animationElement\n class=\"w-full h-full origin-center\"\n [animate.enter]=\"enterAnimationClasses()\"\n [animate.leave]=\"leaveAnimationClasses()\"\n (animationcancel)=\"onNativeLeaveComplete($event)\"\n (animationend)=\"onNativeLeaveComplete($event)\"\n (transitioncancel)=\"onNativeLeaveComplete($event)\"\n (transitionend)=\"onNativeLeaveComplete($event)\">\n @if (templateRef()) {\n <ng-container [ngTemplateOutlet]=\"templateRef()\"></ng-container>\n }\n <ng-container #componentOutlet></ng-container>\n </div>\n}\n", styles: [":host{display:block}.mona-popup-enter{animation:mona-popup-scale-in .15s cubic-bezier(.4,0,.2,1)}.mona-popup-leave{animation:mona-popup-scale-out .15s cubic-bezier(.4,0,.2,1)}.mona-dropdown-popup-enter{animation:mona-dropdown-popup-scale-in .15s cubic-bezier(.4,0,.2,1);transform-origin:top center}.mona-dropdown-popup-leave{animation:mona-dropdown-popup-scale-out .15s cubic-bezier(.4,0,.2,1);transform-origin:top center}.mona-popup-fade-enter{animation:mona-popup-fade-in 50ms ease-in}.mona-popup-fade-leave{animation:mona-popup-fade-out .15s ease-out}@keyframes mona-popup-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes mona-popup-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes mona-dropdown-popup-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes mona-dropdown-popup-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes mona-popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes mona-popup-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.mona-popup-enter,.mona-popup-leave,.mona-dropdown-popup-enter,.mona-dropdown-popup-leave,.mona-popup-fade-enter,.mona-popup-fade-leave{animation-duration:1ms}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
207
207
  }
208
208
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PopupWrapperComponent, decorators: [{
209
209
  type: Component,
210
210
  args: [{ selector: "mona-popup-wrapper", imports: [NgTemplateOutlet], host: {
211
211
  "[class]": "hostClasses()"
212
- }, template: "@if (visible()) {\r\n <div\r\n #animationElement\r\n class=\"w-full h-full origin-center\"\r\n [animate.enter]=\"enterAnimationClasses()\"\r\n [animate.leave]=\"leaveAnimationClasses()\"\r\n (animationcancel)=\"onNativeLeaveComplete($event)\"\r\n (animationend)=\"onNativeLeaveComplete($event)\"\r\n (transitioncancel)=\"onNativeLeaveComplete($event)\"\r\n (transitionend)=\"onNativeLeaveComplete($event)\">\r\n @if (templateRef()) {\r\n <ng-container [ngTemplateOutlet]=\"templateRef()\"></ng-container>\r\n }\r\n <ng-container #componentOutlet></ng-container>\r\n </div>\r\n}\r\n", styles: [":host{display:block}.mona-popup-enter{animation:mona-popup-scale-in .15s cubic-bezier(.4,0,.2,1)}.mona-popup-leave{animation:mona-popup-scale-out .15s cubic-bezier(.4,0,.2,1)}.mona-dropdown-popup-enter{animation:mona-dropdown-popup-scale-in .15s cubic-bezier(.4,0,.2,1);transform-origin:top center}.mona-dropdown-popup-leave{animation:mona-dropdown-popup-scale-out .15s cubic-bezier(.4,0,.2,1);transform-origin:top center}.mona-popup-fade-enter{animation:mona-popup-fade-in 50ms ease-in}.mona-popup-fade-leave{animation:mona-popup-fade-out .15s ease-out}@keyframes mona-popup-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes mona-popup-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes mona-dropdown-popup-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes mona-dropdown-popup-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes mona-popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes mona-popup-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.mona-popup-enter,.mona-popup-leave,.mona-dropdown-popup-enter,.mona-dropdown-popup-leave,.mona-popup-fade-enter,.mona-popup-fade-leave{animation-duration:1ms}}\n"] }]
212
+ }, template: "@if (visible()) {\n <div\n #animationElement\n class=\"w-full h-full origin-center\"\n [animate.enter]=\"enterAnimationClasses()\"\n [animate.leave]=\"leaveAnimationClasses()\"\n (animationcancel)=\"onNativeLeaveComplete($event)\"\n (animationend)=\"onNativeLeaveComplete($event)\"\n (transitioncancel)=\"onNativeLeaveComplete($event)\"\n (transitionend)=\"onNativeLeaveComplete($event)\">\n @if (templateRef()) {\n <ng-container [ngTemplateOutlet]=\"templateRef()\"></ng-container>\n }\n <ng-container #componentOutlet></ng-container>\n </div>\n}\n", styles: [":host{display:block}.mona-popup-enter{animation:mona-popup-scale-in .15s cubic-bezier(.4,0,.2,1)}.mona-popup-leave{animation:mona-popup-scale-out .15s cubic-bezier(.4,0,.2,1)}.mona-dropdown-popup-enter{animation:mona-dropdown-popup-scale-in .15s cubic-bezier(.4,0,.2,1);transform-origin:top center}.mona-dropdown-popup-leave{animation:mona-dropdown-popup-scale-out .15s cubic-bezier(.4,0,.2,1);transform-origin:top center}.mona-popup-fade-enter{animation:mona-popup-fade-in 50ms ease-in}.mona-popup-fade-leave{animation:mona-popup-fade-out .15s ease-out}@keyframes mona-popup-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes mona-popup-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes mona-dropdown-popup-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes mona-dropdown-popup-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes mona-popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes mona-popup-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.mona-popup-enter,.mona-popup-leave,.mona-dropdown-popup-enter,.mona-dropdown-popup-leave,.mona-popup-fade-enter,.mona-popup-fade-leave{animation-duration:1ms}}\n"] }]
213
213
  }], ctorParameters: () => [], propDecorators: { animationElement: [{ type: i0.ViewChild, args: ["animationElement", { isSignal: true }] }], componentOutlet: [{ type: i0.ViewChild, args: ["componentOutlet", { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
214
214
 
215
215
  class PopupRef {
@@ -1302,11 +1302,11 @@ class PopupComponent {
1302
1302
  });
1303
1303
  }
1304
1304
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1305
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.6", type: PopupComponent, isStandalone: true, selector: "mona-popup", inputs: { anchor: { classPropertyName: "anchor", publicName: "anchor", isSignal: true, isRequired: true, transformFunction: null }, anchorConnectionPoint: { classPropertyName: "anchorConnectionPoint", publicName: "anchorConnectionPoint", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnMouseLeave: { classPropertyName: "closeOnMouseLeave", publicName: "closeOnMouseLeave", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsideClick: { classPropertyName: "closeOnOutsideClick", publicName: "closeOnOutsideClick", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, popupClass: { classPropertyName: "popupClass", publicName: "popupClass", isSignal: true, isRequired: false, transformFunction: null }, popupConnectionPoint: { classPropertyName: "popupConnectionPoint", publicName: "popupConnectionPoint", isSignal: true, isRequired: false, transformFunction: null }, popupWrapperClass: { classPropertyName: "popupWrapperClass", publicName: "popupWrapperClass", isSignal: true, isRequired: false, transformFunction: null }, positionStrategy: { classPropertyName: "positionStrategy", publicName: "positionStrategy", isSignal: true, isRequired: false, transformFunction: null }, positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: false, transformFunction: null }, preventClose: { classPropertyName: "preventClose", publicName: "preventClose", isSignal: true, isRequired: false, transformFunction: null }, providers: { classPropertyName: "providers", publicName: "providers", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, withPush: { classPropertyName: "withPush", publicName: "withPush", isSignal: true, isRequired: false, transformFunction: null }, closeOnScroll: { classPropertyName: "closeOnScroll", publicName: "closeOnScroll", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, withScrollTracking: { classPropertyName: "withScrollTracking", publicName: "withScrollTracking", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close", open: "open" }, viewQueries: [{ propertyName: "contentTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n" }); }
1305
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.6", type: PopupComponent, isStandalone: true, selector: "mona-popup", inputs: { anchor: { classPropertyName: "anchor", publicName: "anchor", isSignal: true, isRequired: true, transformFunction: null }, anchorConnectionPoint: { classPropertyName: "anchorConnectionPoint", publicName: "anchorConnectionPoint", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnMouseLeave: { classPropertyName: "closeOnMouseLeave", publicName: "closeOnMouseLeave", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsideClick: { classPropertyName: "closeOnOutsideClick", publicName: "closeOnOutsideClick", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, popupClass: { classPropertyName: "popupClass", publicName: "popupClass", isSignal: true, isRequired: false, transformFunction: null }, popupConnectionPoint: { classPropertyName: "popupConnectionPoint", publicName: "popupConnectionPoint", isSignal: true, isRequired: false, transformFunction: null }, popupWrapperClass: { classPropertyName: "popupWrapperClass", publicName: "popupWrapperClass", isSignal: true, isRequired: false, transformFunction: null }, positionStrategy: { classPropertyName: "positionStrategy", publicName: "positionStrategy", isSignal: true, isRequired: false, transformFunction: null }, positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: false, transformFunction: null }, preventClose: { classPropertyName: "preventClose", publicName: "preventClose", isSignal: true, isRequired: false, transformFunction: null }, providers: { classPropertyName: "providers", publicName: "providers", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, withPush: { classPropertyName: "withPush", publicName: "withPush", isSignal: true, isRequired: false, transformFunction: null }, closeOnScroll: { classPropertyName: "closeOnScroll", publicName: "closeOnScroll", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, withScrollTracking: { classPropertyName: "withScrollTracking", publicName: "withScrollTracking", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close", open: "open" }, viewQueries: [{ propertyName: "contentTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n" }); }
1306
1306
  }
1307
1307
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PopupComponent, decorators: [{
1308
1308
  type: Component,
1309
- args: [{ selector: "mona-popup", template: "<ng-template>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n" }]
1309
+ args: [{ selector: "mona-popup", template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n" }]
1310
1310
  }], ctorParameters: () => [], propDecorators: { contentTemplate: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], anchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "anchor", required: true }] }], anchorConnectionPoint: [{ type: i0.Input, args: [{ isSignal: true, alias: "anchorConnectionPoint", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropClass", required: false }] }], close: [{ type: i0.Output, args: ["close"] }], closeOnBackdropClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdropClick", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], closeOnMouseLeave: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnMouseLeave", required: false }] }], closeOnOutsideClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnOutsideClick", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], hasBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasBackdrop", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeight", required: false }] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }], offset: [{ type: i0.Input, args: [{ isSignal: true, alias: "offset", required: false }] }], open: [{ type: i0.Output, args: ["open"] }], popupClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupClass", required: false }] }], popupConnectionPoint: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupConnectionPoint", required: false }] }], popupWrapperClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupWrapperClass", required: false }] }], positionStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "positionStrategy", required: false }] }], positions: [{ type: i0.Input, args: [{ isSignal: true, alias: "positions", required: false }] }], preventClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventClose", required: false }] }], providers: [{ type: i0.Input, args: [{ isSignal: true, alias: "providers", required: false }] }], trigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "trigger", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], withPush: [{ type: i0.Input, args: [{ isSignal: true, alias: "withPush", required: false }] }], closeOnScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnScroll", required: false }] }], restoreFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocus", required: false }] }], withScrollTracking: [{ type: i0.Input, args: [{ isSignal: true, alias: "withScrollTracking", required: false }] }] } });
1311
1311
 
1312
1312
  /*