@sixbell-telco/sdk
Version:
A collection of reusable components designed for use in Sixbell Telco Angular projects
1 lines • 37.6 kB
Source Map (JSON)
{"version":3,"file":"sixbell-telco-sdk-components-dropdown-menu.mjs","sources":["../../../projects/sdk/components/dropdown-menu/src/services/dropdown-menu.service.ts","../../../projects/sdk/components/dropdown-menu/dropdown-menu-chevron/dropdown-menu-chevron.component.ts","../../../projects/sdk/components/dropdown-menu/dropdown-menu-chevron/dropdown-menu-chevron.component.html","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-content/dropdown-menu-content.component.ts","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-content/dropdown-menu-content.component.html","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-group/dropdown-menu-group.component.ts","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-group/dropdown-menu-group.component.html","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-item/dropdown-menu-item.component.ts","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-item/dropdown-menu-item.component.html","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-label/dropdown-menu-label.component.ts","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-label/dropdown-menu-label.component.html","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-separator/dropdown-menu-separator.component.ts","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-separator/dropdown-menu-separator.component.html","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-sub-content/dropdown-menu-sub-content.component.ts","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-sub-content/dropdown-menu-sub-content.component.html","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-sub-trigger/dropdown-menu-sub-trigger.component.ts","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-sub-trigger/dropdown-menu-sub-trigger.component.html","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-sub/dropdown-menu-sub.component.ts","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-sub/dropdown-menu-sub.component.html","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-trigger/dropdown-menu-trigger.component.ts","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu-trigger/dropdown-menu-trigger.component.html","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu/dropdown-menu.component.ts","../../../projects/sdk/components/dropdown-menu/src/dropdown-menu/dropdown-menu.component.html","../../../projects/sdk/components/dropdown-menu/src/directives/dropdown-menu.directive.ts","../../../projects/sdk/components/dropdown-menu/public-api.ts","../../../projects/sdk/components/dropdown-menu/sixbell-telco-sdk-components-dropdown-menu.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n/**\n * Service to manage dropdown menu state\n * Used by dropdown menu components to communicate state to chevron\n */\n@Injectable()\nexport class DropdownMenuStateService {\n\tprivate readonly _isOpen = signal(false);\n\n\t/**\n\t * Current open state of the dropdown menu\n\t */\n\treadonly isOpen = this._isOpen.asReadonly();\n\n\t/**\n\t * Set the open state\n\t */\n\tsetOpen(open: boolean): void {\n\t\tthis._isOpen.set(open);\n\t}\n\n\t/**\n\t * Toggle the open state\n\t */\n\ttoggle(): void {\n\t\tthis._isOpen.update((current) => !current);\n\t}\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { IconColorProps, IconComponent, IconSizeProps } from '@sixbell-telco/sdk/components/icon';\nimport { matChevronRight } from '@sixbell-telco/sdk/components/icon/material/baseline';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\nimport { DropdownMenuStateService } from '../src/services/dropdown-menu.service';\n\n/**\n * DropdownMenuChevron - Chevron indicator for dropdown menu triggers (especially submenus)\n * Automatically rotates based on menu state\n */\n@Component({\n\tselector: 'st-dropdown-menu-chevron',\n\tstandalone: true,\n\timports: [IconComponent],\n\ttemplateUrl: './dropdown-menu-chevron.component.html',\n})\nexport class DropdownMenuChevronComponent {\n\tprivate readonly dropdownMenuService = inject(DropdownMenuStateService, { optional: true });\n\n\t/**\n\t * Custom icon to use instead of default chevron right\n\t */\n\ticon = input<string>(matChevronRight);\n\n\t/**\n\t * Additional CSS classes\n\t */\n\tclass = input<string>('');\n\n\t/**\n\t * Size of the chevron using Icon component size types\n\t */\n\tsize = input<IconSizeProps>('md');\n\n\t/**\n\t * Color of the chevron using Icon component color types\n\t */\n\tcolor = input<IconColorProps>('inherit');\n\n\t/**\n\t * Position relative to content\n\t */\n\tposition = input<'left' | 'right'>('right');\n\n\t/**\n\t * Whether the menu is open (for rotation) - now uses service or input\n\t */\n\tisOpen = input<boolean>(false);\n\n\t/**\n\t * Computed open state that uses service first, then input\n\t */\n\tprivate readonly computedIsOpen = computed(() => {\n\t\tconst serviceState = this.dropdownMenuService?.isOpen() ?? false;\n\t\tconst inputState = this.isOpen();\n\t\treturn serviceState || inputState;\n\t});\n\n\t/**\n\t * Computed classes for the chevron\n\t */\n\treadonly chevronClasses = computed(() => {\n\t\tconst marginClasses = {\n\t\t\tleft: 'mr-2',\n\t\t\tright: 'ml-2',\n\t\t};\n\n\t\treturn cn(marginClasses[this.position()], 'transition-transform duration-200 ease-in-out', this.computedIsOpen() && 'rotate-90', this.class());\n\t});\n}\n","<st-icon [icon]=\"icon()\" [size]=\"size()\" [color]=\"color()\" [class]=\"chevronClasses()\"></st-icon>\n","import { CdkMenu, MENU_STACK } from '@angular/cdk/menu';\nimport { Component, inject, input, output, TemplateRef, ViewChild } from '@angular/core';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\n\n/**\n * DropdownMenuContent - Container for dropdown menu items\n */\n@Component({\n\tselector: 'st-dropdown-menu-content',\n\tstandalone: true,\n\timports: [CdkMenu],\n\ttemplateUrl: './dropdown-menu-content.component.html',\n\thost: {\n\t\t'(keydown.escape)': 'onEscapeKey($event)',\n\t},\n\texportAs: 'menuContent',\n})\nexport class DropdownMenuContentComponent {\n\tprivate readonly menuStack = inject(MENU_STACK, { optional: true });\n\n\t@ViewChild('menuTemplate', { static: true, read: TemplateRef })\n\ttemplate!: TemplateRef<unknown>;\n\n\t/**\n\t * Custom CSS classes\n\t */\n\tclass = input<string>('');\n\n\t/**\n\t * Size variant\n\t */\n\tsize = input<'xs' | 'sm' | 'md' | 'lg' | 'xl'>('md');\n\n\t/**\n\t * Emitted when the menu is closed\n\t */\n\tclosed = output<void>();\n\n\t/**\n\t * Handle ESC key press\n\t */\n\tonEscapeKey(event: KeyboardEvent): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.closeMenu();\n\t}\n\n\t/**\n\t * Handle menu closed event\n\t */\n\tonMenuClosed(): void {\n\t\tthis.closed.emit();\n\t\t// Additional cleanup can be done here if needed\n\t}\n\n\t/**\n\t * Close this menu and all child menus\n\t */\n\tcloseMenu(): void {\n\t\tthis.menuStack?.closeAll();\n\t}\n\n\t/**\n\t * Computed CSS classes for the menu\n\t */\n\tmenuClass = () =>\n\t\tcn(\n\t\t\t'menu',\n\t\t\t'bg-base-200',\n\t\t\t'rounded-box',\n\t\t\t'shadow-main',\n\t\t\t'border',\n\t\t\t'border-neutral',\n\t\t\t'min-w-full',\n\t\t\t{\n\t\t\t\t'menu-xs': this.size() === 'xs',\n\t\t\t\t'menu-sm': this.size() === 'sm',\n\t\t\t\t'menu-md': this.size() === 'md',\n\t\t\t\t'menu-lg': this.size() === 'lg',\n\t\t\t\t'menu-xl': this.size() === 'xl',\n\t\t\t},\n\t\t\tthis.class(),\n\t\t);\n}\n","<ng-template #menuTemplate>\n\t<ul cdkMenu role=\"menu\" [class]=\"menuClass()\" (closed)=\"onMenuClosed()\" tabindex=\"-1\">\n\t\t<ng-content></ng-content>\n\t</ul>\n</ng-template>\n","import { Component } from '@angular/core';\n\n/**\n * DropdownMenuGroup - Groups related menu items together\n */\n@Component({\n\tselector: 'st-dropdown-menu-group',\n\tstandalone: true,\n\timports: [],\n\ttemplateUrl: './dropdown-menu-group.component.html',\n})\nexport class DropdownMenuGroupComponent {}\n","<ng-content></ng-content>\n","import { CdkMenuItem, MENU_STACK } from '@angular/cdk/menu';\nimport { Component, inject, input, output } from '@angular/core';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\n\n/**\n * DropdownMenuItem - Individual menu item\n */\n@Component({\n\tselector: 'st-dropdown-menu-item',\n\tstandalone: true,\n\timports: [],\n\ttemplateUrl: './dropdown-menu-item.component.html',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuItem,\n\t\t\toutputs: ['cdkMenuItemTriggered: triggered'],\n\t\t},\n\t],\n})\nexport class DropdownMenuItemComponent {\n\tprivate readonly menuStack = inject(MENU_STACK, { optional: true });\n\n\t/**\n\t * Whether the menu item is disabled\n\t */\n\tdisabled = input<boolean>(false);\n\n\t/**\n\t * Whether the menu item is active\n\t */\n\tactive = input<boolean>(false);\n\n\t/**\n\t * Optional keyboard shortcut text\n\t */\n\tshortcut = input<string | undefined>();\n\n\t/**\n\t * Custom CSS classes\n\t */\n\tclass = input<string>('');\n\n\t/**\n\t * Emitted when the menu item is triggered/clicked\n\t */\n\ttriggered = output<void>();\n\n\t/**\n\t * Handle item click - close all menus unless disabled\n\t */\n\tonItemClick(): void {\n\t\tif (!this.disabled()) {\n\t\t\t// Emit the triggered event first\n\t\t\tthis.triggered.emit();\n\n\t\t\t// For context menus, we need to close ALL menus including nested ones\n\t\t\t// Use requestAnimationFrame to ensure the DOM has processed the click\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\t// Close all menus in the stack - this should close the entire hierarchy\n\t\t\t\tif (this.menuStack) {\n\t\t\t\t\tthis.menuStack.closeAll();\n\t\t\t\t}\n\n\t\t\t\t// Additional fallback: try to close any remaining open context menus\n\t\t\t\t// by dispatching escape key or clicking outside\n\t\t\t\tconst escapeEvent = new KeyboardEvent('keydown', {\n\t\t\t\t\tkey: 'Escape',\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcancelable: true,\n\t\t\t\t});\n\t\t\t\tdocument.dispatchEvent(escapeEvent);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Computed CSS classes for the menu item\n\t */\n\titemClass = () =>\n\t\tcn(\n\t\t\t{\n\t\t\t\t'menu-disabled': this.disabled(),\n\t\t\t\t'menu-active': this.active(),\n\t\t\t},\n\t\t\tthis.class(),\n\t\t);\n}\n","<li [class]=\"itemClass()\" (click)=\"onItemClick()\" (keydown.enter)=\"onItemClick()\" (keydown.space)=\"onItemClick()\" tabindex=\"0\" role=\"menuitem\">\n\t<a class=\"flex items-center justify-between\">\n\t\t<span class=\"flex-1\">\n\t\t\t<ng-content></ng-content>\n\t\t</span>\n\t\t@if (shortcut(); as shortcutText) {\n\t\t\t<span class=\"ml-auto text-xs opacity-60\">{{ shortcutText }}</span>\n\t\t}\n\t</a>\n</li>\n","import { Component, input } from '@angular/core';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\n\n/**\n * DropdownMenuLabel - Label for menu sections\n */\n@Component({\n\tselector: 'st-dropdown-menu-label',\n\tstandalone: true,\n\ttemplateUrl: './dropdown-menu-label.component.html',\n})\nexport class DropdownMenuLabelComponent {\n\t/**\n\t * Custom CSS classes\n\t */\n\tclass = input<string>('');\n\n\t/**\n\t * Computed CSS classes for the label\n\t */\n\tlabelClass = () => cn('menu-title', this.class());\n}\n","<li [class]=\"labelClass()\">\n\t<ng-content></ng-content>\n</li>\n","import { Component, input } from '@angular/core';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\n\n/**\n * DropdownMenuSeparator - Visual separator between menu sections\n */\n@Component({\n\tselector: 'st-dropdown-menu-separator',\n\tstandalone: true,\n\ttemplateUrl: './dropdown-menu-separator.component.html',\n})\nexport class DropdownMenuSeparatorComponent {\n\t/**\n\t * Custom CSS classes\n\t */\n\tclass = input<string>('');\n\n\t/**\n\t * Computed CSS classes for the separator\n\t */\n\tseparatorClass = () => cn('pointer-events-none w-full p-0 left-0 top-0 mx-0 my-1', this.class());\n}\n","<li [class]=\"separatorClass()\"></li>\n","import { CdkMenu, MENU_STACK } from '@angular/cdk/menu';\nimport { Component, inject, input, TemplateRef, ViewChild } from '@angular/core';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\n\n/**\n * DropdownMenuSubContent - Container for submenu items\n */\n@Component({\n\tselector: 'st-dropdown-menu-sub-content',\n\tstandalone: true,\n\timports: [CdkMenu],\n\ttemplateUrl: './dropdown-menu-sub-content.component.html',\n\texportAs: 'menuContent',\n\thost: {\n\t\t'(keydown.escape)': 'onEscapeKey($event)',\n\t},\n})\nexport class DropdownMenuSubContentComponent {\n\tprivate readonly menuStack = inject(MENU_STACK, { optional: true });\n\n\t@ViewChild('menuTemplate', { static: true, read: TemplateRef })\n\ttemplate!: TemplateRef<unknown>;\n\n\t/**\n\t * Custom CSS classes\n\t */\n\tclass = input<string>('');\n\n\t/**\n\t * Size variant\n\t */\n\tsize = input<'xs' | 'sm' | 'md' | 'lg' | 'xl'>('md');\n\n\t/**\n\t * Handle ESC key press\n\t */\n\tonEscapeKey(event: KeyboardEvent): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.closeMenu();\n\t}\n\n\t/**\n\t * Close this menu and all child menus\n\t */\n\tcloseMenu(): void {\n\t\tthis.menuStack?.closeAll();\n\t}\n\n\t/**\n\t * Computed CSS classes for the submenu\n\t */\n\tsubMenuClass = () =>\n\t\tcn(\n\t\t\t'menu',\n\t\t\t'bg-base-200',\n\t\t\t'rounded-box',\n\t\t\t'shadow-main',\n\t\t\t'border',\n\t\t\t'border-neutral',\n\t\t\t'min-w-full',\n\t\t\t{\n\t\t\t\t'menu-xs': this.size() === 'xs',\n\t\t\t\t'menu-sm': this.size() === 'sm',\n\t\t\t\t'menu-md': this.size() === 'md',\n\t\t\t\t'menu-lg': this.size() === 'lg',\n\t\t\t\t'menu-xl': this.size() === 'xl',\n\t\t\t},\n\t\t\tthis.class(),\n\t\t);\n}\n","<ng-template #menuTemplate>\n\t<ul cdkMenu role=\"menu\" [class]=\"subMenuClass()\" tabindex=\"-1\">\n\t\t<ng-content></ng-content>\n\t</ul>\n</ng-template>\n","import { CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { Component, computed, inject, input, signal } from '@angular/core';\nimport { IconComponent } from '@sixbell-telco/sdk/components/icon';\nimport { matChevronRight } from '@sixbell-telco/sdk/components/icon/material/baseline';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\nimport { DropdownMenuStateService } from '../services/dropdown-menu.service';\n\n/**\n * DropdownMenuSubTrigger - Trigger for opening a submenu\n */\n@Component({\n\tselector: 'st-dropdown-menu-sub-trigger',\n\tstandalone: true,\n\timports: [IconComponent],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuItem,\n\t\t},\n\t\t{\n\t\t\tdirective: CdkMenuTrigger,\n\t\t\tinputs: ['cdkMenuTriggerFor: menuTriggerFor'],\n\t\t\toutputs: ['cdkMenuOpened: cdkMenuOpened', 'cdkMenuClosed: cdkMenuClosed'],\n\t\t},\n\t],\n\ttemplateUrl: './dropdown-menu-sub-trigger.component.html',\n\thost: {\n\t\t'(cdkMenuOpened)': 'onMenuOpened()',\n\t\t'(cdkMenuClosed)': 'onMenuClosed()',\n\t},\n})\nexport class DropdownMenuSubTriggerComponent {\n\tprivate readonly dropdownMenuService = inject(DropdownMenuStateService, { optional: true });\n\n\t// Icons\n\treadonly iconChevronRight = matChevronRight;\n\n\t// Inputs\n\treadonly disabled = input(false);\n\treadonly className = input<string>();\n\n\t// State - use local signal for this specific submenu\n\tprivate readonly isOpen = signal(false);\n\n\t// Computed styles\n\treadonly triggerClass = computed(() =>\n\t\tcn(\n\t\t\t'focus:outline-none focus:bg-base-200 hover:bg-base-200 cursor-pointer',\n\t\t\tthis.disabled() && 'disabled pointer-events-none opacity-50',\n\t\t\tthis.className(),\n\t\t),\n\t);\n\n\treadonly chevronClass = computed(() => cn('w-4 h-4 transition-transform duration-200 ease-in-out', this.isOpen() && 'rotate-90'));\n\n\t// Event handlers\n\tonMenuOpened(): void {\n\t\tthis.isOpen.set(true);\n\t\t// Also sync with the dropdown menu service if available\n\t\tthis.dropdownMenuService?.setOpen(true);\n\t}\n\n\tonMenuClosed(): void {\n\t\tthis.isOpen.set(false);\n\t\t// Also sync with the dropdown menu service if available\n\t\tthis.dropdownMenuService?.setOpen(false);\n\t}\n}\n","<li [class]=\"triggerClass()\" (cdkMenuOpened)=\"onMenuOpened()\" (cdkMenuClosed)=\"onMenuClosed()\">\n\t<a class=\"flex items-center justify-between\">\n\t\t<span class=\"flex-1\">\n\t\t\t<ng-content></ng-content>\n\t\t</span>\n\t\t<st-icon [icon]=\"iconChevronRight\" color=\"inherit\" [class]=\"chevronClass()\"></st-icon>\n\t</a>\n</li>\n","import { MENU_STACK, MenuStack } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\n\n/**\n * DropdownMenuSub - Container for submenu functionality\n */\n@Component({\n\tselector: 'st-dropdown-menu-sub',\n\tstandalone: true,\n\ttemplateUrl: './dropdown-menu-sub.component.html',\n\tproviders: [\n\t\t{\n\t\t\tprovide: MENU_STACK,\n\t\t\tuseClass: MenuStack,\n\t\t},\n\t],\n})\nexport class DropdownMenuSubComponent {}\n","<ng-content></ng-content>\n","import { CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { DropdownMenuStateService } from '../services/dropdown-menu.service';\n\n/**\n * DropdownMenuTrigger - Trigger element for opening dropdown menu\n * The component acts as the trigger itself\n */\n@Component({\n\tselector: 'st-dropdown-menu-trigger',\n\tstandalone: true,\n\timports: [CommonModule],\n\ttemplateUrl: './dropdown-menu-trigger.component.html',\n\thost: {\n\t\tcdkMenuItem: '',\n\t\trole: 'button',\n\t\ttabindex: '0',\n\t\tstyle: 'display: inline-block; cursor: pointer;',\n\t\t'(cdkMenuOpened)': 'onMenuOpened()',\n\t\t'(cdkMenuClosed)': 'onMenuClosed()',\n\t},\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuTrigger,\n\t\t\tinputs: ['cdkMenuTriggerFor: menuTriggerFor'],\n\t\t\toutputs: ['cdkMenuOpened: cdkMenuOpened', 'cdkMenuClosed: cdkMenuClosed'],\n\t\t},\n\t\t{\n\t\t\tdirective: CdkMenuItem,\n\t\t},\n\t],\n})\nexport class DropdownMenuTriggerComponent {\n\tprivate readonly dropdownMenuService = inject(DropdownMenuStateService, { optional: true });\n\n\t/**\n\t * Handle menu opened event\n\t */\n\tonMenuOpened(): void {\n\t\tthis.dropdownMenuService?.setOpen(true);\n\t}\n\n\t/**\n\t * Handle menu closed event\n\t */\n\tonMenuClosed(): void {\n\t\tthis.dropdownMenuService?.setOpen(false);\n\t}\n}\n","<ng-content></ng-content>\n","import { MENU_STACK, MenuStack } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\nimport { DropdownMenuStateService } from '../services/dropdown-menu.service';\n\n/**\n * DropdownMenu - Container component that provides the menu context\n * Provides a shared MENU_STACK for all nested menus and DropdownMenuStateService for state management\n */\n@Component({\n\tselector: 'st-dropdown-menu',\n\tstandalone: true,\n\ttemplateUrl: './dropdown-menu.component.html',\n\tproviders: [\n\t\t{\n\t\t\tprovide: MENU_STACK,\n\t\t\tuseClass: MenuStack,\n\t\t},\n\t\tDropdownMenuStateService,\n\t],\n})\nexport class DropdownMenuComponent {}\n","<ng-content></ng-content>\n","import { Directive, ElementRef, Injectable, input } from '@angular/core';\n\n/**\n * Directive to mark an element as dropdown menu content\n * This allows the trigger to reference the content without ng-template\n */\n@Directive({\n\tselector: '[stDropdownMenuContent]',\n\tstandalone: true,\n\texportAs: 'dropdownMenuContent',\n})\nexport class DropdownMenuContentDirective {\n\t/**\n\t * Unique identifier for this menu content\n\t */\n\tcontentId = input.required<string>();\n\n\tconstructor(public elementRef: ElementRef) {}\n\n\t/**\n\t * Get the native element for CDK menu trigger\n\t */\n\tget element(): HTMLElement {\n\t\treturn this.elementRef.nativeElement;\n\t}\n}\n\n/**\n * Service to manage dropdown menu content references\n */\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class DropdownMenuService {\n\tprivate readonly contentRegistry = new Map<string, DropdownMenuContentDirective>();\n\n\t/**\n\t * Register a menu content directive\n\t */\n\tregisterContent(id: string, directive: DropdownMenuContentDirective): void {\n\t\tthis.contentRegistry.set(id, directive);\n\t}\n\n\t/**\n\t * Unregister a menu content directive\n\t */\n\tunregisterContent(id: string): void {\n\t\tthis.contentRegistry.delete(id);\n\t}\n\n\t/**\n\t * Get a registered menu content by ID\n\t */\n\tgetContent(id: string): DropdownMenuContentDirective | undefined {\n\t\treturn this.contentRegistry.get(id);\n\t}\n}\n","// Menu components\nexport * from './dropdown-menu-chevron/dropdown-menu-chevron.component';\nexport * from './src/dropdown-menu-content/dropdown-menu-content.component';\nexport * from './src/dropdown-menu-group/dropdown-menu-group.component';\nexport * from './src/dropdown-menu-item/dropdown-menu-item.component';\nexport * from './src/dropdown-menu-label/dropdown-menu-label.component';\nexport * from './src/dropdown-menu-separator/dropdown-menu-separator.component';\nexport * from './src/dropdown-menu-sub-content/dropdown-menu-sub-content.component';\nexport * from './src/dropdown-menu-sub-trigger/dropdown-menu-sub-trigger.component';\nexport * from './src/dropdown-menu-sub/dropdown-menu-sub.component';\nexport * from './src/dropdown-menu-trigger/dropdown-menu-trigger.component';\nexport * from './src/dropdown-menu/dropdown-menu.component';\nexport * from './src/services/dropdown-menu.service';\n\n// Shared components and directives\nexport * from './src/directives/dropdown-menu.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}