ngx-com 0.0.21 → 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 (114) hide show
  1. package/README.md +137 -33
  2. package/fesm2022/ngx-com-components-alert.mjs +21 -11
  3. package/fesm2022/ngx-com-components-alert.mjs.map +1 -1
  4. package/fesm2022/ngx-com-components-avatar.mjs +9 -7
  5. package/fesm2022/ngx-com-components-avatar.mjs.map +1 -1
  6. package/fesm2022/ngx-com-components-button.mjs +1 -1
  7. package/fesm2022/ngx-com-components-button.mjs.map +1 -1
  8. package/fesm2022/ngx-com-components-calendar.mjs +27 -3112
  9. package/fesm2022/ngx-com-components-calendar.mjs.map +1 -1
  10. package/fesm2022/ngx-com-components-card.mjs +8 -8
  11. package/fesm2022/ngx-com-components-card.mjs.map +1 -1
  12. package/fesm2022/ngx-com-components-carousel.mjs +16 -4
  13. package/fesm2022/ngx-com-components-carousel.mjs.map +1 -1
  14. package/fesm2022/ngx-com-components-checkbox.mjs +1 -1
  15. package/fesm2022/ngx-com-components-checkbox.mjs.map +1 -1
  16. package/fesm2022/ngx-com-components-code-block.mjs +9 -9
  17. package/fesm2022/ngx-com-components-code-block.mjs.map +1 -1
  18. package/fesm2022/ngx-com-components-collapsible.mjs +15 -13
  19. package/fesm2022/ngx-com-components-collapsible.mjs.map +1 -1
  20. package/fesm2022/ngx-com-components-confirm.mjs +4 -4
  21. package/fesm2022/ngx-com-components-confirm.mjs.map +1 -1
  22. package/fesm2022/ngx-com-components-datepicker.mjs +2334 -0
  23. package/fesm2022/ngx-com-components-datepicker.mjs.map +1 -0
  24. package/fesm2022/ngx-com-components-dialog.mjs +47 -45
  25. package/fesm2022/ngx-com-components-dialog.mjs.map +1 -1
  26. package/fesm2022/ngx-com-components-dropdown.mjs +446 -340
  27. package/fesm2022/ngx-com-components-dropdown.mjs.map +1 -1
  28. package/fesm2022/ngx-com-components-empty-state.mjs +5 -3
  29. package/fesm2022/ngx-com-components-empty-state.mjs.map +1 -1
  30. package/fesm2022/ngx-com-components-form-field.mjs +11 -6
  31. package/fesm2022/ngx-com-components-form-field.mjs.map +1 -1
  32. package/fesm2022/ngx-com-components-icon-lucide.mjs +41 -0
  33. package/fesm2022/ngx-com-components-icon-lucide.mjs.map +1 -0
  34. package/fesm2022/ngx-com-components-icon.mjs +89 -61
  35. package/fesm2022/ngx-com-components-icon.mjs.map +1 -1
  36. package/fesm2022/ngx-com-components-item.mjs +14 -4
  37. package/fesm2022/ngx-com-components-item.mjs.map +1 -1
  38. package/fesm2022/ngx-com-components-menu.mjs +61 -69
  39. package/fesm2022/ngx-com-components-menu.mjs.map +1 -1
  40. package/fesm2022/ngx-com-components-native-control.mjs +170 -0
  41. package/fesm2022/ngx-com-components-native-control.mjs.map +1 -0
  42. package/fesm2022/ngx-com-components-paginator.mjs +11 -3
  43. package/fesm2022/ngx-com-components-paginator.mjs.map +1 -1
  44. package/fesm2022/ngx-com-components-popover.mjs +58 -33
  45. package/fesm2022/ngx-com-components-popover.mjs.map +1 -1
  46. package/fesm2022/ngx-com-components-radio.mjs +4 -4
  47. package/fesm2022/ngx-com-components-radio.mjs.map +1 -1
  48. package/fesm2022/ngx-com-components-segmented-control.mjs +6 -4
  49. package/fesm2022/ngx-com-components-segmented-control.mjs.map +1 -1
  50. package/fesm2022/ngx-com-components-sort.mjs +63 -57
  51. package/fesm2022/ngx-com-components-sort.mjs.map +1 -1
  52. package/fesm2022/ngx-com-components-spinner.mjs +6 -6
  53. package/fesm2022/ngx-com-components-spinner.mjs.map +1 -1
  54. package/fesm2022/ngx-com-components-switch.mjs +18 -9
  55. package/fesm2022/ngx-com-components-switch.mjs.map +1 -1
  56. package/fesm2022/ngx-com-components-table.mjs +23 -9
  57. package/fesm2022/ngx-com-components-table.mjs.map +1 -1
  58. package/fesm2022/ngx-com-components-tabs.mjs +81 -58
  59. package/fesm2022/ngx-com-components-tabs.mjs.map +1 -1
  60. package/fesm2022/ngx-com-components-timepicker.mjs +1048 -0
  61. package/fesm2022/ngx-com-components-timepicker.mjs.map +1 -0
  62. package/fesm2022/ngx-com-components-toast.mjs +18 -14
  63. package/fesm2022/ngx-com-components-toast.mjs.map +1 -1
  64. package/fesm2022/ngx-com-components-tooltip.mjs +5 -5
  65. package/fesm2022/ngx-com-components-tooltip.mjs.map +1 -1
  66. package/fesm2022/ngx-com-components.mjs +0 -13
  67. package/fesm2022/ngx-com-components.mjs.map +1 -1
  68. package/fesm2022/ngx-com-tokens.mjs +0 -8
  69. package/fesm2022/ngx-com-tokens.mjs.map +1 -1
  70. package/fesm2022/ngx-com-utils.mjs +13 -1
  71. package/fesm2022/ngx-com-utils.mjs.map +1 -1
  72. package/fesm2022/ngx-com.mjs +1 -1
  73. package/fesm2022/ngx-com.mjs.map +1 -1
  74. package/package.json +51 -8
  75. package/styles/animations.css +38 -0
  76. package/styles/candy.css +121 -0
  77. package/styles/dark.css +159 -0
  78. package/styles/forest.css +117 -0
  79. package/styles/ocean.css +117 -0
  80. package/styles/themes.css +7 -0
  81. package/styles/tokens.css +277 -0
  82. package/styles/utilities.css +16 -0
  83. package/types/ngx-com-components-alert.d.ts +14 -4
  84. package/types/ngx-com-components-avatar.d.ts +2 -0
  85. package/types/ngx-com-components-calendar.d.ts +3 -747
  86. package/types/ngx-com-components-card.d.ts +2 -2
  87. package/types/ngx-com-components-carousel.d.ts +11 -1
  88. package/types/ngx-com-components-code-block.d.ts +4 -4
  89. package/types/ngx-com-components-collapsible.d.ts +10 -2
  90. package/types/ngx-com-components-confirm.d.ts +2 -2
  91. package/types/ngx-com-components-datepicker.d.ts +623 -0
  92. package/types/ngx-com-components-dialog.d.ts +5 -2
  93. package/types/ngx-com-components-dropdown.d.ts +22 -4
  94. package/types/ngx-com-components-empty-state.d.ts +2 -0
  95. package/types/ngx-com-components-form-field.d.ts +4 -1
  96. package/types/ngx-com-components-icon-lucide.d.ts +32 -0
  97. package/types/ngx-com-components-icon.d.ts +49 -35
  98. package/types/ngx-com-components-item.d.ts +12 -2
  99. package/types/ngx-com-components-menu.d.ts +38 -38
  100. package/types/ngx-com-components-native-control.d.ts +99 -0
  101. package/types/ngx-com-components-paginator.d.ts +2 -0
  102. package/types/ngx-com-components-popover.d.ts +19 -12
  103. package/types/ngx-com-components-segmented-control.d.ts +3 -1
  104. package/types/ngx-com-components-sort.d.ts +13 -10
  105. package/types/ngx-com-components-switch.d.ts +7 -2
  106. package/types/ngx-com-components-table.d.ts +16 -2
  107. package/types/ngx-com-components-tabs.d.ts +46 -34
  108. package/types/ngx-com-components-timepicker.d.ts +273 -0
  109. package/types/ngx-com-components-toast.d.ts +4 -2
  110. package/types/ngx-com-components-tooltip.d.ts +1 -1
  111. package/types/ngx-com-components.d.ts +6 -7
  112. package/types/ngx-com-tokens.d.ts +5 -3
  113. package/types/ngx-com-utils.d.ts +11 -1
  114. package/types/ngx-com.d.ts +1 -1
@@ -35,7 +35,7 @@ function generateMenuId() {
35
35
  * **Root context** (outside a menu): Opens on click, has backdrop.
36
36
  * **Submenu context** (inside a menu): Opens on hover/ArrowRight, no backdrop.
37
37
  *
38
- * @tokens `--color-popover`, `--color-popover-foreground`, `--color-border`, `--shadow-lg`
38
+ * @tokens `--color-popover`, `--color-popover-foreground`, `--color-border`, `--shadow-overlay`
39
39
  *
40
40
  * @example Root trigger
41
41
  * ```html
@@ -56,7 +56,7 @@ function generateMenuId() {
56
56
  * </button>
57
57
  * ```
58
58
  */
59
- class MenuTriggerDirective {
59
+ class ComMenuTrigger {
60
60
  overlay = inject(Overlay);
61
61
  elementRef = inject(ElementRef);
62
62
  viewContainerRef = inject(ViewContainerRef);
@@ -149,7 +149,7 @@ class MenuTriggerDirective {
149
149
  this.open();
150
150
  }
151
151
  }
152
- /** Called by MenuComponent to register itself when attached. */
152
+ /** Called by ComMenuComponent to register itself when attached. */
153
153
  registerMenu(menu) {
154
154
  this.attachedMenu = menu;
155
155
  }
@@ -349,12 +349,6 @@ class MenuTriggerDirective {
349
349
  event.preventDefault();
350
350
  this.close();
351
351
  });
352
- this.overlayRef
353
- .detachments()
354
- .pipe(takeUntilDestroyed(this.destroyRef))
355
- .subscribe(() => {
356
- this.menuOpen.set(false);
357
- });
358
352
  }
359
353
  subscribeToSubmenuCloseEvents() {
360
354
  if (!this.overlayRef)
@@ -369,12 +363,6 @@ class MenuTriggerDirective {
369
363
  this.closeSubmenu();
370
364
  this.elementRef.nativeElement.focus();
371
365
  });
372
- this.overlayRef
373
- .detachments()
374
- .pipe(takeUntilDestroyed(this.destroyRef))
375
- .subscribe(() => {
376
- this.menuOpen.set(false);
377
- });
378
366
  }
379
367
  // ─── Submenu Hover Tracking ───
380
368
  onSubmenuMouseEnter() {
@@ -418,10 +406,10 @@ class MenuTriggerDirective {
418
406
  this.submenuMouseLeaveCleanup?.();
419
407
  this.submenuMouseLeaveCleanup = null;
420
408
  }
421
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
422
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: MenuTriggerDirective, isStandalone: true, selector: "[comMenuTrigger]", inputs: { comMenuTrigger: { classPropertyName: "comMenuTrigger", publicName: "comMenuTrigger", isSignal: true, isRequired: true, transformFunction: null }, menuPosition: { classPropertyName: "menuPosition", publicName: "menuPosition", isSignal: true, isRequired: false, transformFunction: null }, menuAlignment: { classPropertyName: "menuAlignment", publicName: "menuAlignment", isSignal: true, isRequired: false, transformFunction: null }, menuOffset: { classPropertyName: "menuOffset", publicName: "menuOffset", isSignal: true, isRequired: false, transformFunction: null }, menuDisabled: { classPropertyName: "menuDisabled", publicName: "menuDisabled", isSignal: true, isRequired: false, transformFunction: null }, menuOpen: { classPropertyName: "menuOpen", publicName: "menuOpen", isSignal: true, isRequired: false, transformFunction: null }, menuPanelClass: { classPropertyName: "menuPanelClass", publicName: "menuPanelClass", isSignal: true, isRequired: false, transformFunction: null }, menuCloseOnSelect: { classPropertyName: "menuCloseOnSelect", publicName: "menuCloseOnSelect", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, subMenuOpenDelay: { classPropertyName: "subMenuOpenDelay", publicName: "subMenuOpenDelay", isSignal: true, isRequired: false, transformFunction: null }, subMenuCloseDelay: { classPropertyName: "subMenuCloseDelay", publicName: "subMenuCloseDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuOpen: "menuOpenChange", menuOpened: "menuOpened", menuClosed: "menuClosed" }, host: { listeners: { "click": "onClick($event)", "keydown.arrowdown": "onArrowDown($event)", "keydown.arrowup": "onArrowUp($event)", "keydown.arrowright": "onArrowRight($event)", "keydown.arrowleft": "onArrowLeft($event)", "keydown.enter": "onEnter($event)", "keydown.space": "onSpace($event)", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "attr.aria-haspopup": "\"menu\"", "attr.aria-expanded": "menuOpen()", "attr.aria-controls": "ariaControls()" } }, exportAs: ["comMenuTrigger"], ngImport: i0 });
409
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
410
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: ComMenuTrigger, isStandalone: true, selector: "[comMenuTrigger]", inputs: { comMenuTrigger: { classPropertyName: "comMenuTrigger", publicName: "comMenuTrigger", isSignal: true, isRequired: true, transformFunction: null }, menuPosition: { classPropertyName: "menuPosition", publicName: "menuPosition", isSignal: true, isRequired: false, transformFunction: null }, menuAlignment: { classPropertyName: "menuAlignment", publicName: "menuAlignment", isSignal: true, isRequired: false, transformFunction: null }, menuOffset: { classPropertyName: "menuOffset", publicName: "menuOffset", isSignal: true, isRequired: false, transformFunction: null }, menuDisabled: { classPropertyName: "menuDisabled", publicName: "menuDisabled", isSignal: true, isRequired: false, transformFunction: null }, menuOpen: { classPropertyName: "menuOpen", publicName: "menuOpen", isSignal: true, isRequired: false, transformFunction: null }, menuPanelClass: { classPropertyName: "menuPanelClass", publicName: "menuPanelClass", isSignal: true, isRequired: false, transformFunction: null }, menuCloseOnSelect: { classPropertyName: "menuCloseOnSelect", publicName: "menuCloseOnSelect", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, subMenuOpenDelay: { classPropertyName: "subMenuOpenDelay", publicName: "subMenuOpenDelay", isSignal: true, isRequired: false, transformFunction: null }, subMenuCloseDelay: { classPropertyName: "subMenuCloseDelay", publicName: "subMenuCloseDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuOpen: "menuOpenChange", menuOpened: "menuOpened", menuClosed: "menuClosed" }, host: { listeners: { "click": "onClick($event)", "keydown.arrowdown": "onArrowDown($event)", "keydown.arrowup": "onArrowUp($event)", "keydown.arrowright": "onArrowRight($event)", "keydown.arrowleft": "onArrowLeft($event)", "keydown.enter": "onEnter($event)", "keydown.space": "onSpace($event)", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "attr.aria-haspopup": "\"menu\"", "attr.aria-expanded": "menuOpen()", "attr.aria-controls": "ariaControls()" } }, exportAs: ["comMenuTrigger"], ngImport: i0 });
423
411
  }
424
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuTriggerDirective, decorators: [{
412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuTrigger, decorators: [{
425
413
  type: Directive,
426
414
  args: [{
427
415
  selector: '[comMenuTrigger]',
@@ -447,12 +435,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
447
435
  /**
448
436
  * Menu panel styling variants.
449
437
  *
450
- * @tokens `--color-popover`, `--color-popover-foreground`, `--color-border`, `--shadow-lg`, `--radius-popover`
438
+ * @tokens `--color-popover`, `--color-popover-foreground`, `--color-border`, `--shadow-overlay`, `--radius-popover`
451
439
  */
452
440
  const menuPanelVariants = cva([
453
441
  'bg-popover text-popover-foreground',
454
442
  'border border-border',
455
- 'rounded-popover shadow-lg',
443
+ 'rounded-popover shadow-overlay',
456
444
  'overflow-hidden',
457
445
  'py-1',
458
446
  ], {
@@ -481,7 +469,7 @@ const menuItemVariants = cva([
481
469
  'relative flex items-center w-full',
482
470
  'text-sm text-popover-foreground',
483
471
  'outline-none select-none',
484
- 'transition-colors duration-75',
472
+ 'transition-colors duration-fast',
485
473
  ], {
486
474
  variants: {
487
475
  size: {
@@ -564,13 +552,13 @@ const menuShortcutVariants = cva('ml-auto text-muted-foreground tracking-widest'
564
552
  * Base class for focusable menu items.
565
553
  * All item directives must implement this interface for FocusKeyManager.
566
554
  */
567
- class MenuItemBase {
555
+ class ComMenuItemBase {
568
556
  }
569
557
  /**
570
558
  * Menu panel component that renders inside an overlay.
571
559
  * Manages keyboard navigation across its items using CDK FocusKeyManager.
572
560
  *
573
- * @tokens `--color-popover`, `--color-popover-foreground`, `--color-border`, `--shadow-lg`
561
+ * @tokens `--color-popover`, `--color-popover-foreground`, `--color-border`, `--shadow-overlay`
574
562
  *
575
563
  * @example
576
564
  * ```html
@@ -580,7 +568,7 @@ class MenuItemBase {
580
568
  * </com-menu>
581
569
  * ```
582
570
  */
583
- class MenuComponent {
571
+ class ComMenuComponent {
584
572
  rootTrigger = inject(ROOT_MENU_TRIGGER, { optional: true });
585
573
  keyManager = null;
586
574
  // ─── Inputs ───
@@ -596,7 +584,7 @@ class MenuComponent {
596
584
  menuId = generateMenuId();
597
585
  animationState = signal('open', ...(ngDevMode ? [{ debugName: "animationState" }] : []));
598
586
  /** Query all focusable items in the menu. */
599
- items = contentChildren(MenuItemBase, ...(ngDevMode ? [{ debugName: "items" }] : []));
587
+ items = contentChildren(ComMenuItemBase, ...(ngDevMode ? [{ debugName: "items" }] : []));
600
588
  // ─── Computed ───
601
589
  panelClasses = computed(() => mergeClasses(menuPanelVariants({ size: this.menuSize(), variant: this.menuVariant() })), ...(ngDevMode ? [{ debugName: "panelClasses" }] : []));
602
590
  constructor() {
@@ -638,11 +626,12 @@ class MenuComponent {
638
626
  this.keyManager?.onKeydown(event);
639
627
  }
640
628
  }
641
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
642
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: MenuComponent, isStandalone: true, selector: "com-menu", inputs: { menuSize: { classPropertyName: "menuSize", publicName: "menuSize", isSignal: true, isRequired: false, transformFunction: null }, menuVariant: { classPropertyName: "menuVariant", publicName: "menuVariant", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: MENU_REF, useExisting: forwardRef(() => MenuComponent) }], queries: [{ propertyName: "items", predicate: MenuItemBase, isSignal: true }], ngImport: i0, template: `
629
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
630
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: ComMenuComponent, isStandalone: true, selector: "com-menu", inputs: { menuSize: { classPropertyName: "menuSize", publicName: "menuSize", isSignal: true, isRequired: false, transformFunction: null }, menuVariant: { classPropertyName: "menuVariant", publicName: "menuVariant", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: MENU_REF, useExisting: forwardRef(() => ComMenuComponent) }], queries: [{ propertyName: "items", predicate: ComMenuItemBase, isSignal: true }], ngImport: i0, template: `
643
631
  <div
644
632
  [class]="panelClasses()"
645
633
  role="menu"
634
+ tabindex="-1"
646
635
  [attr.aria-label]="ariaLabel() || null"
647
636
  [attr.aria-labelledby]="ariaLabelledBy() || null"
648
637
  [id]="menuId"
@@ -653,12 +642,13 @@ class MenuComponent {
653
642
  </div>
654
643
  `, isInline: true, styles: [":host{display:contents}[data-state=open]{animation:menu-in .15s ease-out}[data-state=closed]{animation:menu-out .1s ease-in forwards}@keyframes menu-in{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes menu-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){[data-state=open],[data-state=closed]{animation:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
655
644
  }
656
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuComponent, decorators: [{
645
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuComponent, decorators: [{
657
646
  type: Component,
658
647
  args: [{ selector: 'com-menu', template: `
659
648
  <div
660
649
  [class]="panelClasses()"
661
650
  role="menu"
651
+ tabindex="-1"
662
652
  [attr.aria-label]="ariaLabel() || null"
663
653
  [attr.aria-labelledby]="ariaLabelledBy() || null"
664
654
  [id]="menuId"
@@ -667,8 +657,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
667
657
  >
668
658
  <ng-content />
669
659
  </div>
670
- `, providers: [{ provide: MENU_REF, useExisting: forwardRef(() => MenuComponent) }], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}[data-state=open]{animation:menu-in .15s ease-out}[data-state=closed]{animation:menu-out .1s ease-in forwards}@keyframes menu-in{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes menu-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){[data-state=open],[data-state=closed]{animation:none}}\n"] }]
671
- }], ctorParameters: () => [], propDecorators: { menuSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuSize", required: false }] }], menuVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuVariant", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => MenuItemBase), { isSignal: true }] }] } });
660
+ `, providers: [{ provide: MENU_REF, useExisting: forwardRef(() => ComMenuComponent) }], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}[data-state=open]{animation:menu-in .15s ease-out}[data-state=closed]{animation:menu-out .1s ease-in forwards}@keyframes menu-in{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes menu-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){[data-state=open],[data-state=closed]{animation:none}}\n"] }]
661
+ }], ctorParameters: () => [], propDecorators: { menuSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuSize", required: false }] }], menuVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuVariant", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ComMenuItemBase), { isSignal: true }] }] } });
672
662
 
673
663
  /**
674
664
  * Menu item directive for actionable menu items.
@@ -683,7 +673,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
683
673
  * <button comMenuItem destructive>Delete</button>
684
674
  * ```
685
675
  */
686
- class MenuItemDirective extends MenuItemBase {
676
+ class ComMenuItem extends ComMenuItemBase {
687
677
  elementRef = inject(ElementRef);
688
678
  menu = inject(MENU_REF, { optional: true });
689
679
  rootTrigger = inject(ROOT_MENU_TRIGGER, { optional: true });
@@ -734,15 +724,15 @@ class MenuItemDirective extends MenuItemBase {
734
724
  onMouseLeave() {
735
725
  this.isFocused.set(false);
736
726
  }
737
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
738
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: MenuItemDirective, isStandalone: true, selector: "[comMenuItem]", inputs: { menuItemDisabled: { classPropertyName: "menuItemDisabled", publicName: "menuItemDisabled", isSignal: true, isRequired: false, transformFunction: null }, destructive: { classPropertyName: "destructive", publicName: "destructive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "click": "onAction($event)", "keydown.enter": "onAction($event)", "keydown.space": "onAction($event)", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "class": "itemClasses()", "attr.role": "\"menuitem\"", "attr.tabindex": "-1", "attr.aria-disabled": "menuItemDisabled() || null", "attr.disabled": "menuItemDisabled() || null" } }, providers: [{ provide: MenuItemBase, useExisting: forwardRef(() => MenuItemDirective) }], exportAs: ["comMenuItem"], usesInheritance: true, ngImport: i0 });
727
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuItem, deps: null, target: i0.ɵɵFactoryTarget.Directive });
728
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: ComMenuItem, isStandalone: true, selector: "[comMenuItem]", inputs: { menuItemDisabled: { classPropertyName: "menuItemDisabled", publicName: "menuItemDisabled", isSignal: true, isRequired: false, transformFunction: null }, destructive: { classPropertyName: "destructive", publicName: "destructive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "click": "onAction($event)", "keydown.enter": "onAction($event)", "keydown.space": "onAction($event)", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "class": "itemClasses()", "attr.role": "\"menuitem\"", "attr.tabindex": "-1", "attr.aria-disabled": "menuItemDisabled() || null", "attr.disabled": "menuItemDisabled() || null" } }, providers: [{ provide: ComMenuItemBase, useExisting: forwardRef(() => ComMenuItem) }], exportAs: ["comMenuItem"], usesInheritance: true, ngImport: i0 });
739
729
  }
740
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuItemDirective, decorators: [{
730
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuItem, decorators: [{
741
731
  type: Directive,
742
732
  args: [{
743
733
  selector: '[comMenuItem]',
744
734
  exportAs: 'comMenuItem',
745
- providers: [{ provide: MenuItemBase, useExisting: forwardRef(() => MenuItemDirective) }],
735
+ providers: [{ provide: ComMenuItemBase, useExisting: forwardRef(() => ComMenuItem) }],
746
736
  host: {
747
737
  '[class]': 'itemClasses()',
748
738
  '[attr.role]': '"menuitem"',
@@ -768,7 +758,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
768
758
  * <button comMenuItemCheckbox [(checked)]="showSidebar">Sidebar</button>
769
759
  * ```
770
760
  */
771
- class MenuItemCheckboxComponent extends MenuItemBase {
761
+ class ComMenuItemCheckbox extends ComMenuItemBase {
772
762
  elementRef = inject(ElementRef);
773
763
  menu = inject(MENU_REF, { optional: true });
774
764
  // ─── Inputs ───
@@ -812,8 +802,8 @@ class MenuItemCheckboxComponent extends MenuItemBase {
812
802
  onMouseLeave() {
813
803
  this.isFocused.set(false);
814
804
  }
815
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuItemCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
816
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: MenuItemCheckboxComponent, isStandalone: true, selector: "[comMenuItemCheckbox]", inputs: { menuItemDisabled: { classPropertyName: "menuItemDisabled", publicName: "menuItemDisabled", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { listeners: { "click": "toggle($event)", "keydown.enter": "toggle($event)", "keydown.space": "toggle($event)", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "class": "itemClasses()", "attr.role": "\"menuitemcheckbox\"", "attr.tabindex": "-1", "attr.aria-checked": "checked()", "attr.aria-disabled": "menuItemDisabled() || null", "attr.disabled": "menuItemDisabled() || null" } }, providers: [{ provide: MenuItemBase, useExisting: forwardRef(() => MenuItemCheckboxComponent) }], exportAs: ["comMenuItemCheckbox"], usesInheritance: true, ngImport: i0, template: `
805
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuItemCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });
806
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ComMenuItemCheckbox, isStandalone: true, selector: "[comMenuItemCheckbox]", inputs: { menuItemDisabled: { classPropertyName: "menuItemDisabled", publicName: "menuItemDisabled", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { listeners: { "click": "toggle($event)", "keydown.enter": "toggle($event)", "keydown.space": "toggle($event)", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "class": "itemClasses()", "attr.role": "\"menuitemcheckbox\"", "attr.tabindex": "-1", "attr.aria-checked": "checked()", "attr.aria-disabled": "menuItemDisabled() || null", "attr.disabled": "menuItemDisabled() || null" } }, providers: [{ provide: ComMenuItemBase, useExisting: forwardRef(() => ComMenuItemCheckbox) }], exportAs: ["comMenuItemCheckbox"], usesInheritance: true, ngImport: i0, template: `
817
807
  <span [class]="indicatorClasses()">
818
808
  @if (checked()) {
819
809
  <svg
@@ -834,9 +824,10 @@ class MenuItemCheckboxComponent extends MenuItemBase {
834
824
  <ng-content />
835
825
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
836
826
  }
837
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuItemCheckboxComponent, decorators: [{
827
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuItemCheckbox, decorators: [{
838
828
  type: Component,
839
829
  args: [{
830
+ // eslint-disable-next-line @angular-eslint/component-selector -- attribute selector used on <button> host elements
840
831
  selector: '[comMenuItemCheckbox]',
841
832
  exportAs: 'comMenuItemCheckbox',
842
833
  template: `
@@ -859,7 +850,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
859
850
  </span>
860
851
  <ng-content />
861
852
  `,
862
- providers: [{ provide: MenuItemBase, useExisting: forwardRef(() => MenuItemCheckboxComponent) }],
853
+ providers: [{ provide: ComMenuItemBase, useExisting: forwardRef(() => ComMenuItemCheckbox) }],
863
854
  host: {
864
855
  '[class]': 'itemClasses()',
865
856
  '[attr.role]': '"menuitemcheckbox"',
@@ -880,7 +871,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
880
871
  /**
881
872
  * Token for menu group to allow radio items to coordinate.
882
873
  */
883
- class MenuGroupRef {
874
+ class ComMenuGroupRef {
884
875
  }
885
876
  /**
886
877
  * Menu group directive for organizing related items.
@@ -896,7 +887,7 @@ class MenuGroupRef {
896
887
  *
897
888
  * @tokens None - uses only ARIA attributes
898
889
  */
899
- class MenuGroupDirective extends MenuGroupRef {
890
+ class ComMenuGroup extends ComMenuGroupRef {
900
891
  /** Optional accessible label for the group. */
901
892
  ariaLabel = input(null, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
902
893
  /** Two-way bindable value for radio groups. */
@@ -904,15 +895,15 @@ class MenuGroupDirective extends MenuGroupRef {
904
895
  setGroupValue(value) {
905
896
  this.groupValue.set(value);
906
897
  }
907
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuGroupDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
908
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: MenuGroupDirective, isStandalone: true, selector: "[comMenuGroup]", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, groupValue: { classPropertyName: "groupValue", publicName: "groupValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { groupValue: "groupValueChange" }, host: { properties: { "attr.role": "\"group\"", "attr.aria-label": "ariaLabel() || null" } }, providers: [{ provide: MenuGroupRef, useExisting: forwardRef(() => MenuGroupDirective) }], exportAs: ["comMenuGroup"], usesInheritance: true, ngImport: i0 });
898
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuGroup, deps: null, target: i0.ɵɵFactoryTarget.Directive });
899
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: ComMenuGroup, isStandalone: true, selector: "[comMenuGroup]", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, groupValue: { classPropertyName: "groupValue", publicName: "groupValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { groupValue: "groupValueChange" }, host: { properties: { "attr.role": "\"group\"", "attr.aria-label": "ariaLabel() || null" } }, providers: [{ provide: ComMenuGroupRef, useExisting: forwardRef(() => ComMenuGroup) }], exportAs: ["comMenuGroup"], usesInheritance: true, ngImport: i0 });
909
900
  }
910
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuGroupDirective, decorators: [{
901
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuGroup, decorators: [{
911
902
  type: Directive,
912
903
  args: [{
913
904
  selector: '[comMenuGroup]',
914
905
  exportAs: 'comMenuGroup',
915
- providers: [{ provide: MenuGroupRef, useExisting: forwardRef(() => MenuGroupDirective) }],
906
+ providers: [{ provide: ComMenuGroupRef, useExisting: forwardRef(() => ComMenuGroup) }],
916
907
  host: {
917
908
  '[attr.role]': '"group"',
918
909
  '[attr.aria-label]': 'ariaLabel() || null',
@@ -933,11 +924,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
933
924
  * </div>
934
925
  * ```
935
926
  */
936
- class MenuItemRadioComponent extends MenuItemBase {
927
+ class ComMenuItemRadio extends ComMenuItemBase {
937
928
  elementRef = inject(ElementRef);
938
929
  menu = inject(MENU_REF, { optional: true });
939
930
  rootTrigger = inject(ROOT_MENU_TRIGGER, { optional: true });
940
- group = inject(MenuGroupRef, { optional: true });
931
+ group = inject(ComMenuGroupRef, { optional: true });
941
932
  // ─── Inputs ───
942
933
  /** Disables the item. */
943
934
  menuItemDisabled = input(false, { ...(ngDevMode ? { debugName: "menuItemDisabled" } : {}), transform: booleanAttribute });
@@ -984,8 +975,8 @@ class MenuItemRadioComponent extends MenuItemBase {
984
975
  onMouseLeave() {
985
976
  this.isFocused.set(false);
986
977
  }
987
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuItemRadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
988
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: MenuItemRadioComponent, isStandalone: true, selector: "[comMenuItemRadio]", inputs: { menuItemDisabled: { classPropertyName: "menuItemDisabled", publicName: "menuItemDisabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "select($event)", "keydown.enter": "select($event)", "keydown.space": "select($event)", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "class": "itemClasses()", "attr.role": "\"menuitemradio\"", "attr.tabindex": "-1", "attr.aria-checked": "isChecked()", "attr.aria-disabled": "menuItemDisabled() || null", "attr.disabled": "menuItemDisabled() || null" } }, providers: [{ provide: MenuItemBase, useExisting: forwardRef(() => MenuItemRadioComponent) }], exportAs: ["comMenuItemRadio"], usesInheritance: true, ngImport: i0, template: `
978
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuItemRadio, deps: null, target: i0.ɵɵFactoryTarget.Component });
979
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ComMenuItemRadio, isStandalone: true, selector: "[comMenuItemRadio]", inputs: { menuItemDisabled: { classPropertyName: "menuItemDisabled", publicName: "menuItemDisabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "select($event)", "keydown.enter": "select($event)", "keydown.space": "select($event)", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "class": "itemClasses()", "attr.role": "\"menuitemradio\"", "attr.tabindex": "-1", "attr.aria-checked": "isChecked()", "attr.aria-disabled": "menuItemDisabled() || null", "attr.disabled": "menuItemDisabled() || null" } }, providers: [{ provide: ComMenuItemBase, useExisting: forwardRef(() => ComMenuItemRadio) }], exportAs: ["comMenuItemRadio"], usesInheritance: true, ngImport: i0, template: `
989
980
  <span [class]="indicatorClasses()">
990
981
  @if (isChecked()) {
991
982
  <svg
@@ -1002,9 +993,10 @@ class MenuItemRadioComponent extends MenuItemBase {
1002
993
  <ng-content />
1003
994
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1004
995
  }
1005
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuItemRadioComponent, decorators: [{
996
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuItemRadio, decorators: [{
1006
997
  type: Component,
1007
998
  args: [{
999
+ // eslint-disable-next-line @angular-eslint/component-selector -- attribute selector used on <button> host elements
1008
1000
  selector: '[comMenuItemRadio]',
1009
1001
  exportAs: 'comMenuItemRadio',
1010
1002
  template: `
@@ -1023,7 +1015,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1023
1015
  </span>
1024
1016
  <ng-content />
1025
1017
  `,
1026
- providers: [{ provide: MenuItemBase, useExisting: forwardRef(() => MenuItemRadioComponent) }],
1018
+ providers: [{ provide: ComMenuItemBase, useExisting: forwardRef(() => ComMenuItemRadio) }],
1027
1019
  host: {
1028
1020
  '[class]': 'itemClasses()',
1029
1021
  '[attr.role]': '"menuitemradio"',
@@ -1053,16 +1045,16 @@ let labelIdCounter = 0;
1053
1045
  * <button comMenuItem>View Members</button>
1054
1046
  * ```
1055
1047
  */
1056
- class MenuLabelDirective {
1048
+ class ComMenuLabel {
1057
1049
  menu = inject(MENU_REF, { optional: true });
1058
1050
  /** Unique ID that can be referenced by aria-labelledby. */
1059
1051
  labelId = `menu-label-${++labelIdCounter}`;
1060
1052
  size = computed(() => this.menu?.menuSize() ?? 'md', ...(ngDevMode ? [{ debugName: "size" }] : []));
1061
1053
  labelClasses = computed(() => mergeClasses(menuLabelVariants({ size: this.size() })), ...(ngDevMode ? [{ debugName: "labelClasses" }] : []));
1062
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1063
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: MenuLabelDirective, isStandalone: true, selector: "[comMenuLabel]", host: { properties: { "class": "labelClasses()", "attr.role": "\"presentation\"", "id": "labelId" } }, exportAs: ["comMenuLabel"], ngImport: i0 });
1054
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1055
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: ComMenuLabel, isStandalone: true, selector: "[comMenuLabel]", host: { properties: { "class": "labelClasses()", "attr.role": "\"presentation\"", "id": "labelId" } }, exportAs: ["comMenuLabel"], ngImport: i0 });
1064
1056
  }
1065
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuLabelDirective, decorators: [{
1057
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuLabel, decorators: [{
1066
1058
  type: Directive,
1067
1059
  args: [{
1068
1060
  selector: '[comMenuLabel]',
@@ -1087,11 +1079,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1087
1079
  * <button comMenuItem>Delete</button>
1088
1080
  * ```
1089
1081
  */
1090
- class MenuDividerDirective {
1091
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuDividerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1092
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: MenuDividerDirective, isStandalone: true, selector: "[comMenuDivider]", host: { properties: { "attr.role": "\"separator\"" }, classAttribute: "block border-t border-border my-1" }, exportAs: ["comMenuDivider"], ngImport: i0 });
1082
+ class ComMenuDivider {
1083
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuDivider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1084
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: ComMenuDivider, isStandalone: true, selector: "[comMenuDivider]", host: { properties: { "attr.role": "\"separator\"" }, classAttribute: "block border-t border-border my-1" }, exportAs: ["comMenuDivider"], ngImport: i0 });
1093
1085
  }
1094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuDividerDirective, decorators: [{
1086
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuDivider, decorators: [{
1095
1087
  type: Directive,
1096
1088
  args: [{
1097
1089
  selector: '[comMenuDivider]',
@@ -1117,9 +1109,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1117
1109
  * </button>
1118
1110
  * ```
1119
1111
  */
1120
- class MenuSubIndicatorComponent {
1121
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuSubIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1122
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: MenuSubIndicatorComponent, isStandalone: true, selector: "com-menu-sub-indicator", host: { properties: { "attr.aria-hidden": "true" }, classAttribute: "ml-auto inline-flex items-center justify-center w-4 h-4 text-muted-foreground" }, ngImport: i0, template: `
1112
+ class ComMenuSubIndicator {
1113
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuSubIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component });
1114
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: ComMenuSubIndicator, isStandalone: true, selector: "com-menu-sub-indicator", host: { properties: { "attr.aria-hidden": "true" }, classAttribute: "ml-auto inline-flex items-center justify-center w-4 h-4 text-muted-foreground" }, ngImport: i0, template: `
1123
1115
  <svg
1124
1116
  xmlns="http://www.w3.org/2000/svg"
1125
1117
  viewBox="0 0 24 24"
@@ -1133,7 +1125,7 @@ class MenuSubIndicatorComponent {
1133
1125
  </svg>
1134
1126
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1135
1127
  }
1136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuSubIndicatorComponent, decorators: [{
1128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuSubIndicator, decorators: [{
1137
1129
  type: Component,
1138
1130
  args: [{
1139
1131
  selector: 'com-menu-sub-indicator',
@@ -1171,14 +1163,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1171
1163
  * </button>
1172
1164
  * ```
1173
1165
  */
1174
- class MenuShortcutDirective {
1166
+ class ComMenuShortcut {
1175
1167
  menu = inject(MENU_REF, { optional: true });
1176
1168
  size = computed(() => this.menu?.menuSize() ?? 'md', ...(ngDevMode ? [{ debugName: "size" }] : []));
1177
1169
  shortcutClasses = computed(() => mergeClasses(menuShortcutVariants({ size: this.size() })), ...(ngDevMode ? [{ debugName: "shortcutClasses" }] : []));
1178
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuShortcutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1179
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: MenuShortcutDirective, isStandalone: true, selector: "[comMenuShortcut]", host: { properties: { "class": "shortcutClasses()" } }, exportAs: ["comMenuShortcut"], ngImport: i0 });
1170
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuShortcut, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1171
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: ComMenuShortcut, isStandalone: true, selector: "[comMenuShortcut]", host: { properties: { "class": "shortcutClasses()" } }, exportAs: ["comMenuShortcut"], ngImport: i0 });
1180
1172
  }
1181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MenuShortcutDirective, decorators: [{
1173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComMenuShortcut, decorators: [{
1182
1174
  type: Directive,
1183
1175
  args: [{
1184
1176
  selector: '[comMenuShortcut]',
@@ -1196,5 +1188,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1196
1188
  * Generated bundle index. Do not edit.
1197
1189
  */
1198
1190
 
1199
- export { MENU_REF, MenuComponent, MenuDividerDirective, MenuGroupDirective, MenuGroupRef, MenuItemBase, MenuItemCheckboxComponent, MenuItemDirective, MenuItemRadioComponent, MenuLabelDirective, MenuShortcutDirective, MenuSubIndicatorComponent, MenuTriggerDirective, ROOT_MENU_TRIGGER, menuCheckIndicatorVariants, menuItemVariants, menuLabelVariants, menuPanelVariants, menuShortcutVariants };
1191
+ export { ComMenuComponent, ComMenuDivider, ComMenuGroup, ComMenuGroupRef, ComMenuItem, ComMenuItemBase, ComMenuItemCheckbox, ComMenuItemRadio, ComMenuLabel, ComMenuShortcut, ComMenuSubIndicator, ComMenuTrigger, MENU_REF, ROOT_MENU_TRIGGER, menuCheckIndicatorVariants, menuItemVariants, menuLabelVariants, menuPanelVariants, menuShortcutVariants };
1200
1192
  //# sourceMappingURL=ngx-com-components-menu.mjs.map