@raqm/ui 0.0.0-stage → 0.1.1
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.
- package/CHANGELOG.md +22 -0
- package/LICENSE +21 -0
- package/NOTICE.md +28 -0
- package/README.md +126 -3
- package/combobox/README.md +17 -0
- package/fesm2022/raqm-ui-accordion.mjs +414 -0
- package/fesm2022/raqm-ui-accordion.mjs.map +1 -0
- package/fesm2022/raqm-ui-alert-dialog.mjs +457 -0
- package/fesm2022/raqm-ui-alert-dialog.mjs.map +1 -0
- package/fesm2022/raqm-ui-alert.mjs +195 -0
- package/fesm2022/raqm-ui-alert.mjs.map +1 -0
- package/fesm2022/raqm-ui-aspect-ratio.mjs +66 -0
- package/fesm2022/raqm-ui-aspect-ratio.mjs.map +1 -0
- package/fesm2022/raqm-ui-attachment.mjs +435 -0
- package/fesm2022/raqm-ui-attachment.mjs.map +1 -0
- package/fesm2022/raqm-ui-avatar.mjs +337 -0
- package/fesm2022/raqm-ui-avatar.mjs.map +1 -0
- package/fesm2022/raqm-ui-badge.mjs +68 -0
- package/fesm2022/raqm-ui-badge.mjs.map +1 -0
- package/fesm2022/raqm-ui-breadcrumb.mjs +309 -0
- package/fesm2022/raqm-ui-breadcrumb.mjs.map +1 -0
- package/fesm2022/raqm-ui-button-group.mjs +138 -0
- package/fesm2022/raqm-ui-button-group.mjs.map +1 -0
- package/fesm2022/raqm-ui-button.mjs +295 -0
- package/fesm2022/raqm-ui-button.mjs.map +1 -0
- package/fesm2022/raqm-ui-calendar.mjs +1394 -0
- package/fesm2022/raqm-ui-calendar.mjs.map +1 -0
- package/fesm2022/raqm-ui-card.mjs +331 -0
- package/fesm2022/raqm-ui-card.mjs.map +1 -0
- package/fesm2022/raqm-ui-carousel.mjs +410 -0
- package/fesm2022/raqm-ui-carousel.mjs.map +1 -0
- package/fesm2022/raqm-ui-checkbox.mjs +86 -0
- package/fesm2022/raqm-ui-checkbox.mjs.map +1 -0
- package/fesm2022/raqm-ui-collapsible.mjs +266 -0
- package/fesm2022/raqm-ui-collapsible.mjs.map +1 -0
- package/fesm2022/raqm-ui-combobox.mjs +1584 -0
- package/fesm2022/raqm-ui-combobox.mjs.map +1 -0
- package/fesm2022/raqm-ui-command.mjs +1210 -0
- package/fesm2022/raqm-ui-command.mjs.map +1 -0
- package/fesm2022/raqm-ui-context-menu.mjs +723 -0
- package/fesm2022/raqm-ui-context-menu.mjs.map +1 -0
- package/fesm2022/raqm-ui-dialog.mjs +1214 -0
- package/fesm2022/raqm-ui-dialog.mjs.map +1 -0
- package/fesm2022/raqm-ui-drawer.mjs +687 -0
- package/fesm2022/raqm-ui-drawer.mjs.map +1 -0
- package/fesm2022/raqm-ui-dropdown-menu.mjs +1168 -0
- package/fesm2022/raqm-ui-dropdown-menu.mjs.map +1 -0
- package/fesm2022/raqm-ui-empty.mjs +272 -0
- package/fesm2022/raqm-ui-empty.mjs.map +1 -0
- package/fesm2022/raqm-ui-field.mjs +517 -0
- package/fesm2022/raqm-ui-field.mjs.map +1 -0
- package/fesm2022/raqm-ui-hover-card.mjs +828 -0
- package/fesm2022/raqm-ui-hover-card.mjs.map +1 -0
- package/fesm2022/raqm-ui-input-group.mjs +270 -0
- package/fesm2022/raqm-ui-input-group.mjs.map +1 -0
- package/fesm2022/raqm-ui-input-otp.mjs +788 -0
- package/fesm2022/raqm-ui-input-otp.mjs.map +1 -0
- package/fesm2022/raqm-ui-input.mjs +73 -0
- package/fesm2022/raqm-ui-input.mjs.map +1 -0
- package/fesm2022/raqm-ui-item.mjs +495 -0
- package/fesm2022/raqm-ui-item.mjs.map +1 -0
- package/fesm2022/raqm-ui-kbd.mjs +80 -0
- package/fesm2022/raqm-ui-kbd.mjs.map +1 -0
- package/fesm2022/raqm-ui-label.mjs +44 -0
- package/fesm2022/raqm-ui-label.mjs.map +1 -0
- package/fesm2022/raqm-ui-menubar.mjs +536 -0
- package/fesm2022/raqm-ui-menubar.mjs.map +1 -0
- package/fesm2022/raqm-ui-native-select.mjs +131 -0
- package/fesm2022/raqm-ui-native-select.mjs.map +1 -0
- package/fesm2022/raqm-ui-navigation-menu.mjs +1399 -0
- package/fesm2022/raqm-ui-navigation-menu.mjs.map +1 -0
- package/fesm2022/raqm-ui-overlay-internal.mjs +185 -0
- package/fesm2022/raqm-ui-overlay-internal.mjs.map +1 -0
- package/fesm2022/raqm-ui-pagination.mjs +440 -0
- package/fesm2022/raqm-ui-pagination.mjs.map +1 -0
- package/fesm2022/raqm-ui-popover.mjs +1495 -0
- package/fesm2022/raqm-ui-popover.mjs.map +1 -0
- package/fesm2022/raqm-ui-progress.mjs +369 -0
- package/fesm2022/raqm-ui-progress.mjs.map +1 -0
- package/fesm2022/raqm-ui-questionnaire.mjs +1005 -0
- package/fesm2022/raqm-ui-questionnaire.mjs.map +1 -0
- package/fesm2022/raqm-ui-radio-group.mjs +151 -0
- package/fesm2022/raqm-ui-radio-group.mjs.map +1 -0
- package/fesm2022/raqm-ui-resizable.mjs +439 -0
- package/fesm2022/raqm-ui-resizable.mjs.map +1 -0
- package/fesm2022/raqm-ui-scroll-area.mjs +510 -0
- package/fesm2022/raqm-ui-scroll-area.mjs.map +1 -0
- package/fesm2022/raqm-ui-select.mjs +1073 -0
- package/fesm2022/raqm-ui-select.mjs.map +1 -0
- package/fesm2022/raqm-ui-separator.mjs +103 -0
- package/fesm2022/raqm-ui-separator.mjs.map +1 -0
- package/fesm2022/raqm-ui-sheet.mjs +411 -0
- package/fesm2022/raqm-ui-sheet.mjs.map +1 -0
- package/fesm2022/raqm-ui-sidebar.mjs +1784 -0
- package/fesm2022/raqm-ui-sidebar.mjs.map +1 -0
- package/fesm2022/raqm-ui-skeleton.mjs +50 -0
- package/fesm2022/raqm-ui-skeleton.mjs.map +1 -0
- package/fesm2022/raqm-ui-slider.mjs +609 -0
- package/fesm2022/raqm-ui-slider.mjs.map +1 -0
- package/fesm2022/raqm-ui-spinner.mjs +137 -0
- package/fesm2022/raqm-ui-spinner.mjs.map +1 -0
- package/fesm2022/raqm-ui-switch.mjs +109 -0
- package/fesm2022/raqm-ui-switch.mjs.map +1 -0
- package/fesm2022/raqm-ui-table.mjs +271 -0
- package/fesm2022/raqm-ui-table.mjs.map +1 -0
- package/fesm2022/raqm-ui-tabs.mjs +536 -0
- package/fesm2022/raqm-ui-tabs.mjs.map +1 -0
- package/fesm2022/raqm-ui-textarea.mjs +37 -0
- package/fesm2022/raqm-ui-textarea.mjs.map +1 -0
- package/fesm2022/raqm-ui-toast.mjs +918 -0
- package/fesm2022/raqm-ui-toast.mjs.map +1 -0
- package/fesm2022/raqm-ui-toggle-group.mjs +462 -0
- package/fesm2022/raqm-ui-toggle-group.mjs.map +1 -0
- package/fesm2022/raqm-ui-toggle.mjs +158 -0
- package/fesm2022/raqm-ui-toggle.mjs.map +1 -0
- package/fesm2022/raqm-ui-tooltip.mjs +1226 -0
- package/fesm2022/raqm-ui-tooltip.mjs.map +1 -0
- package/fesm2022/raqm-ui.mjs +50 -0
- package/input-otp/README.md +12 -0
- package/package.json +275 -3
- package/styles/theme.css +4324 -0
- package/types/raqm-ui-accordion.d.ts +124 -0
- package/types/raqm-ui-alert-dialog.d.ts +81 -0
- package/types/raqm-ui-alert.d.ts +29 -0
- package/types/raqm-ui-aspect-ratio.d.ts +13 -0
- package/types/raqm-ui-attachment.d.ts +72 -0
- package/types/raqm-ui-avatar.d.ts +67 -0
- package/types/raqm-ui-badge.d.ts +20 -0
- package/types/raqm-ui-breadcrumb.d.ts +35 -0
- package/types/raqm-ui-button-group.d.ts +27 -0
- package/types/raqm-ui-button.d.ts +80 -0
- package/types/raqm-ui-calendar.d.ts +359 -0
- package/types/raqm-ui-card.d.ts +34 -0
- package/types/raqm-ui-carousel.d.ts +81 -0
- package/types/raqm-ui-checkbox.d.ts +24 -0
- package/types/raqm-ui-collapsible.d.ts +72 -0
- package/types/raqm-ui-combobox.d.ts +405 -0
- package/types/raqm-ui-command.d.ts +256 -0
- package/types/raqm-ui-context-menu.d.ts +196 -0
- package/types/raqm-ui-dialog.d.ts +232 -0
- package/types/raqm-ui-drawer.d.ts +121 -0
- package/types/raqm-ui-dropdown-menu.d.ts +319 -0
- package/types/raqm-ui-empty.d.ts +35 -0
- package/types/raqm-ui-field.d.ts +88 -0
- package/types/raqm-ui-hover-card.d.ts +139 -0
- package/types/raqm-ui-input-group.d.ts +45 -0
- package/types/raqm-ui-input-otp.d.ts +197 -0
- package/types/raqm-ui-input.d.ts +16 -0
- package/types/raqm-ui-item.d.ts +71 -0
- package/types/raqm-ui-kbd.d.ts +12 -0
- package/types/raqm-ui-label.d.ts +6 -0
- package/types/raqm-ui-menubar.d.ts +159 -0
- package/types/raqm-ui-native-select.d.ts +23 -0
- package/types/raqm-ui-navigation-menu.d.ts +230 -0
- package/types/raqm-ui-overlay-internal.d.ts +5 -0
- package/types/raqm-ui-pagination.d.ts +84 -0
- package/types/raqm-ui-popover.d.ts +235 -0
- package/types/raqm-ui-progress.d.ts +79 -0
- package/types/raqm-ui-questionnaire.d.ts +217 -0
- package/types/raqm-ui-radio-group.d.ts +48 -0
- package/types/raqm-ui-resizable.d.ts +98 -0
- package/types/raqm-ui-scroll-area.d.ts +132 -0
- package/types/raqm-ui-select.d.ts +205 -0
- package/types/raqm-ui-separator.d.ts +21 -0
- package/types/raqm-ui-sheet.d.ts +79 -0
- package/types/raqm-ui-sidebar.d.ts +285 -0
- package/types/raqm-ui-skeleton.d.ts +6 -0
- package/types/raqm-ui-slider.d.ts +129 -0
- package/types/raqm-ui-spinner.d.ts +32 -0
- package/types/raqm-ui-switch.d.ts +32 -0
- package/types/raqm-ui-table.d.ts +36 -0
- package/types/raqm-ui-tabs.d.ts +154 -0
- package/types/raqm-ui-textarea.d.ts +6 -0
- package/types/raqm-ui-toast.d.ts +190 -0
- package/types/raqm-ui-toggle-group.d.ts +167 -0
- package/types/raqm-ui-toggle.d.ts +42 -0
- package/types/raqm-ui-tooltip.d.ts +207 -0
- package/types/raqm-ui.d.ts +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raqm-ui-dropdown-menu.mjs","names":[],"sources":["../../../projects/ui/dropdown-menu/menu-overlay.ts","../../../projects/ui/dropdown-menu/dropdown-menu.directive.ts","../../../projects/ui/dropdown-menu/dropdown-menu-trigger.directive.ts","../../../projects/ui/dropdown-menu/dropdown-menu-item.directive.ts","../../../projects/ui/dropdown-menu/dropdown-menu-checkbox-item.directive.ts","../../../projects/ui/dropdown-menu/dropdown-menu-radio-context.ts","../../../projects/ui/dropdown-menu/dropdown-menu-radio.directive.ts","../../../projects/ui/dropdown-menu/public-api.ts"],"sourcesContent":["import { DestroyRef, Directive, ElementRef, forwardRef, inject } from '@angular/core';\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n CdkContextMenuTrigger,\r\n CdkMenuTrigger,\r\n CdkMenuTriggerBase,\r\n MENU_STACK,\r\n MENU_TRIGGER,\r\n MenuStack,\r\n PARENT_OR_NEW_MENU_STACK_PROVIDER,\r\n} from '@angular/cdk/menu';\r\nimport {\r\n ConnectedPosition,\r\n FlexibleConnectedPositionStrategy,\r\n OverlayRef,\r\n} from '@angular/cdk/overlay';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { registerOverlayOwnership } from '@raqm/ui/overlay-internal';\r\n\r\n/** @internal Computed CSS direction, including plain ancestors without CDK Dir. */\r\n@Directive({\r\n providers: [{ provide: Directionality, useExisting: forwardRef(() => RaqmMenuDirection) }],\r\n})\r\nexport class RaqmMenuDirection extends Directionality {\r\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\r\n private observer: MutationObserver | null = null;\r\n private disposed = false;\r\n\r\n override get value(): Direction {\r\n const view = this.element.ownerDocument.defaultView;\r\n return view\r\n ? view.getComputedStyle(this.element).direction === 'rtl'\r\n ? 'rtl'\r\n : 'ltr'\r\n : super.value;\r\n }\r\n\r\n constructor() {\r\n super();\r\n queueMicrotask(() => {\r\n if (this.disposed) return;\r\n const view = this.element.ownerDocument.defaultView;\r\n if (!view) return;\r\n const sync = (): void => {\r\n const next = this.value;\r\n if (next !== this.valueSignal()) {\r\n this.valueSignal.set(next);\r\n this.change.emit(next);\r\n }\r\n };\r\n this.observer = new view.MutationObserver(sync);\r\n for (let node: HTMLElement | null = this.element; node; node = node.parentElement) {\r\n this.observer.observe(node, {\r\n attributes: true,\r\n attributeFilter: ['dir', 'class', 'style'],\r\n });\r\n }\r\n sync();\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this.disposed = true;\r\n this.observer?.disconnect();\r\n super.ngOnDestroy();\r\n }\r\n}\r\n\r\n/** @internal Bridge only the documented protected overlay extension point. */\r\n@Directive({\r\n providers: [\r\n { provide: CdkMenuTrigger, useExisting: forwardRef(() => RaqmMenuTriggerBase) },\r\n { provide: MENU_TRIGGER, useExisting: forwardRef(() => RaqmMenuTriggerBase) },\r\n PARENT_OR_NEW_MENU_STACK_PROVIDER,\r\n ],\r\n})\r\nexport class RaqmMenuTriggerBase extends CdkMenuTrigger {\r\n get menuOverlay(): OverlayRef | null {\r\n return this.overlayRef;\r\n }\r\n}\r\n\r\n@Directive({\r\n providers: [\r\n { provide: CdkContextMenuTrigger, useExisting: forwardRef(() => RaqmContextMenuTriggerBase) },\r\n { provide: MENU_TRIGGER, useExisting: forwardRef(() => RaqmContextMenuTriggerBase) },\r\n { provide: MENU_STACK, useClass: MenuStack },\r\n ],\r\n})\r\nexport class RaqmContextMenuTriggerBase extends CdkContextMenuTrigger {\r\n readonly geometryChanged = new Subject<void>();\r\n get menuOverlay(): OverlayRef | null {\r\n return this.overlayRef;\r\n }\r\n menuAnchorPoint: RaqmMenuAnchorPoint | null = null;\r\n override open(coordinates: { x: number; y: number }): void {\r\n this.menuAnchorPoint = coordinates;\r\n super.open(coordinates);\r\n this.geometryChanged.next();\r\n }\r\n override ngOnDestroy(): void {\r\n this.geometryChanged.complete();\r\n super.ngOnDestroy();\r\n }\r\n}\r\n\r\n/** @internal Pointer anchor coordinates used only by the shipped overlay bridge. */\r\nexport interface RaqmMenuAnchorPoint {\r\n readonly x: number;\r\n readonly y: number;\r\n}\r\n/** @internal Bridge options for shipped menu wrappers, not consumer configuration. */\r\nexport interface RaqmMenuOverlaySyncOptions {\r\n readonly matchAnchorWidth: boolean;\r\n readonly anchorPoint?: () => RaqmMenuAnchorPoint | null;\r\n /** Recompute family defaults only; preserve explicit consumer positions. */\r\n readonly positions?: () => ConnectedPosition[];\r\n}\r\n\r\n/** @internal Synchronizes the exact trigger overlay through public OverlayRef APIs. */\r\nexport class RaqmMenuOverlaySync {\r\n private generation = 0;\r\n private disposed = false;\r\n private frame = 0;\r\n private overlay: OverlayRef | null = null;\r\n private releaseOwnership: (() => void) | undefined;\r\n private resizeObserver: ResizeObserver | null = null;\r\n private connection: ConnectedPosition | undefined;\r\n private readonly subscriptions = new Subscription();\r\n private readonly schedule = (): void => {\r\n const view = this.anchor.ownerDocument.defaultView;\r\n if (!view || !this.overlay || this.frame || this.disposed) return;\r\n this.frame = view.requestAnimationFrame(() => {\r\n this.frame = 0;\r\n this.measure();\r\n });\r\n };\r\n\r\n constructor(\r\n private readonly trigger: CdkMenuTriggerBase & { readonly menuOverlay: OverlayRef | null },\r\n private readonly anchor: HTMLElement,\r\n destroyRef: DestroyRef,\r\n private readonly directionality: Directionality,\r\n private readonly options: RaqmMenuOverlaySyncOptions,\r\n ) {\r\n this.subscriptions.add(\r\n trigger.opened.subscribe(() => {\r\n const generation = ++this.generation;\r\n queueMicrotask(() => {\r\n if (this.disposed || generation !== this.generation || !trigger.isOpen()) return;\r\n this.detach();\r\n this.overlay = trigger.menuOverlay;\r\n if (!this.overlay) return;\r\n this.releaseOwnership = registerOverlayOwnership(this.anchor, this.overlay);\r\n this.observe();\r\n this.measure();\r\n });\r\n }),\r\n );\r\n this.subscriptions.add(\r\n trigger.closed.subscribe(() => {\r\n ++this.generation;\r\n this.detach();\r\n }),\r\n );\r\n this.subscriptions.add(directionality.change.subscribe(this.schedule));\r\n if (trigger instanceof RaqmContextMenuTriggerBase) {\r\n this.subscriptions.add(trigger.geometryChanged.subscribe(this.schedule));\r\n }\r\n destroyRef.onDestroy(() => {\r\n this.disposed = true;\r\n ++this.generation;\r\n this.detach();\r\n this.subscriptions.unsubscribe();\r\n });\r\n }\r\n\r\n refresh(): void {\r\n this.schedule();\r\n }\r\n\r\n private measure(): void {\r\n const overlay = this.overlay;\r\n if (this.disposed || !overlay?.hasAttached()) return;\r\n const strategy = overlay.getConfig().positionStrategy;\r\n if (!(strategy instanceof FlexibleConnectedPositionStrategy)) return;\r\n const pane = overlay.overlayElement;\r\n const height = this.anchor.ownerDocument.documentElement.clientHeight;\r\n overlay.setDirection(this.directionality.value);\r\n const positions = this.options.positions?.() ?? strategy.positions;\r\n strategy.withPositions(positions.map((position) => ({ ...position })));\r\n if (this.options.matchAnchorWidth) {\r\n pane.style.setProperty(\r\n '--raqm-menu-anchor-width',\r\n `${this.anchor.getBoundingClientRect().width}px`,\r\n );\r\n pane.setAttribute('data-raqm-anchor-width', '');\r\n }\r\n pane.style.setProperty('--raqm-menu-available-height', `${Math.max(0, height - 10)}px`);\r\n strategy\r\n .withViewportMargin(5)\r\n .withFlexibleDimensions(false)\r\n .withLockedPosition(false)\r\n .withPush(true);\r\n const selection = strategy.positionChanges.subscribe((event) => {\r\n this.connection = event.connectionPair;\r\n });\r\n overlay.updatePosition();\r\n selection.unsubscribe();\r\n if (!this.connection) return;\r\n const pair = this.connection;\r\n const point = this.options.anchorPoint?.();\r\n const rect = this.anchor.getBoundingClientRect();\r\n const origin = point\r\n ? point.y\r\n : pair.originY === 'top'\r\n ? rect.top\r\n : pair.originY === 'bottom'\r\n ? rect.bottom\r\n : rect.top + rect.height / 2;\r\n const edge = Math.max(5, Math.min(height - 5, origin + (pair.offsetY ?? 0)));\r\n const available =\r\n pair.overlayY === 'bottom'\r\n ? edge - 5\r\n : pair.overlayY === 'center'\r\n ? 2 * Math.min(edge - 5, height - 5 - edge)\r\n : height - 5 - edge;\r\n pane.style.setProperty(\r\n '--raqm-menu-available-height',\r\n `${Math.max(0, Math.min(height - 10, available))}px`,\r\n );\r\n strategy.reapplyLastPosition();\r\n }\r\n\r\n private observe(): void {\r\n const view = this.anchor.ownerDocument.defaultView;\r\n view?.addEventListener('resize', this.schedule, { passive: true });\r\n view?.document.addEventListener('scroll', this.schedule, { capture: true, passive: true });\r\n if (view && typeof view.ResizeObserver !== 'undefined' && this.overlay) {\r\n this.resizeObserver = new view.ResizeObserver(this.schedule);\r\n this.resizeObserver.observe(this.overlay.overlayElement);\r\n this.resizeObserver.observe(this.anchor);\r\n }\r\n }\r\n\r\n private detach(): void {\r\n this.releaseOwnership?.();\r\n this.releaseOwnership = undefined;\r\n const view = this.anchor.ownerDocument.defaultView;\r\n view?.removeEventListener('resize', this.schedule);\r\n view?.document.removeEventListener('scroll', this.schedule, { capture: true });\r\n if (this.frame) view?.cancelAnimationFrame(this.frame);\r\n this.frame = 0;\r\n this.resizeObserver?.disconnect();\r\n this.resizeObserver = null;\r\n this.overlay = null;\r\n this.connection = undefined;\r\n }\r\n}\r\n","import { Directive, booleanAttribute, input } from '@angular/core';\r\n\r\nimport { CdkMenu } from '@angular/cdk/menu';\r\nimport { RaqmMenuDirection } from './menu-overlay';\r\n\r\n@Directive({\r\n selector: '[raqm-menu]',\r\n // The CDK supplies role, focus, keyboard and typeahead; the wrapper adds the class.\r\n hostDirectives: [RaqmMenuDirection, { directive: CdkMenu }],\r\n // Detached from the trigger's DOM scope, the panel publishes its own live direction.\r\n host: {\r\n class: 'raqm-menu',\r\n },\r\n})\r\nexport class RaqmMenuDirective {}\r\n\r\n@Directive({\r\n selector: '[raqm-menu-group]',\r\n host: {\r\n class: 'raqm-menu-group',\r\n // A group inside a `role=\"menu\"` is a real ARIA group; the name is the app's.\r\n role: 'group',\r\n },\r\n})\r\nexport class RaqmMenuGroupDirective {}\r\n\r\n@Directive({\r\n selector: '[raqm-menu-label]',\r\n host: {\r\n class: 'raqm-menu-label',\r\n // Presence-only inset hook (the `data-raqm-inset` attribute exists or not).\r\n '[attr.data-raqm-inset]': 'inset() ? \"\" : null',\r\n },\r\n})\r\nexport class RaqmMenuLabelDirective {\r\n readonly inset = input(false, { transform: booleanAttribute });\r\n}\r\n\r\n/**\r\n * Attribute directive marking a non-focusable decorative 1px rule between menu regions.\r\n *\r\n * @remarks\r\n * Carries `role=\"separator\"`/`aria-orientation` and is never a roving-tabindex item.\r\n */\r\n@Directive({\r\n selector: '[raqm-menu-separator]',\r\n host: {\r\n class: 'raqm-menu-separator',\r\n // A real (non-focusable) ARIA separator in the horizontal orientation.\r\n role: 'separator',\r\n 'aria-orientation': 'horizontal',\r\n },\r\n})\r\nexport class RaqmMenuSeparatorDirective {}\r\n\r\n/**\r\n * Attribute directive styling a passive keyboard-hint span inside a menu row.\r\n *\r\n * @remarks\r\n * Display-only: no accelerator registration, global key listener or command service.\r\n */\r\n@Directive({\r\n selector: '[raqm-menu-shortcut]',\r\n host: {\r\n class: 'raqm-menu-shortcut',\r\n },\r\n})\r\nexport class RaqmMenuShortcutDirective {}\r\n","import { DestroyRef, Directive, ElementRef, InjectionToken, OnInit, inject } from '@angular/core';\r\n\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { CDK_MENU } from '@angular/cdk/menu';\r\nimport { ConnectedPosition } from '@angular/cdk/overlay';\r\n\r\nimport { RaqmMenuDirection, RaqmMenuOverlaySync, RaqmMenuTriggerBase } from './menu-overlay';\r\n\r\nconst ROOT_MENU_SIDE_OFFSET = 4;\r\n\r\n// Opens below the trigger's inline start and flips above when there is no room. The\r\n// CDK resolves logical `start` against the nearest direction, so RTL needs no override;\r\n// `offsetY` is physical and its sign follows the flipped side.\r\nconst ROOT_MENU_POSITIONS: ConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: ROOT_MENU_SIDE_OFFSET,\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -ROOT_MENU_SIDE_OFFSET,\r\n },\r\n];\r\n\r\n// The submenu is nudged 3px up along its vertical alignment axis. The offset is\r\n// vertical, so its sign is direction-independent (unlike a horizontal align nudge).\r\nconst SUBMENU_ALIGN_OFFSET = -3;\r\n\r\n// Opens at the trigger's inline end, top-aligned with the 3px nudge, and flips to the\r\n// inline start when there is no room. Logical `end`/`start` resolve against the nearest\r\n// direction, so a submenu always opens away from the text direction.\r\nconst SUBMENU_POSITIONS: ConnectedPosition[] = [\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: SUBMENU_ALIGN_OFFSET,\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n offsetY: SUBMENU_ALIGN_OFFSET,\r\n },\r\n];\r\n\r\nexport const RAQM_MENU_SUBMENU_POSITIONS = new InjectionToken<ConnectedPosition[]>(\r\n 'RAQM_MENU_SUBMENU_POSITIONS',\r\n);\r\n\r\n@Directive({\r\n selector: 'button[raqm-menu-trigger-for], a[raqm-menu-trigger-for]',\r\n // The CDK owns the trigger engine; the wrapper renames the surface and adds the class.\r\n hostDirectives: [\r\n RaqmMenuDirection,\r\n {\r\n directive: RaqmMenuTriggerBase,\r\n inputs: ['cdkMenuTriggerFor: raqm-menu-trigger-for', 'cdkMenuPosition: positions'],\r\n outputs: ['cdkMenuOpened: opened', 'cdkMenuClosed: closed'],\r\n },\r\n ],\r\n host: {\r\n class: 'raqm-menu-trigger',\r\n // Presence-only hook marking a trigger inside a menu panel; the chevron rules use it.\r\n '[attr.data-raqm-submenu]': 'submenu ? \"\" : null',\r\n },\r\n})\r\nexport class RaqmMenuTriggerDirective implements OnInit {\r\n private readonly trigger = inject(RaqmMenuTriggerBase);\r\n\r\n // Present only for a submenu trigger (a root trigger sits outside any panel).\r\n private readonly parentMenu = inject(CDK_MENU, { optional: true });\r\n\r\n readonly submenu = this.parentMenu !== null;\r\n\r\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n private readonly directionality = inject(Directionality);\r\n\r\n // A family-owned submenu default (e.g. Context Menu's +4) injected from an ancestor.\r\n private readonly submenuPositionsDefault =\r\n inject(RAQM_MENU_SUBMENU_POSITIONS, { optional: true }) ?? SUBMENU_POSITIONS;\r\n\r\n // Only a root Dropdown panel matches the trigger width; submenus keep `w-auto`.\r\n private readonly overlaySync = new RaqmMenuOverlaySync(\r\n this.trigger,\r\n this.element.nativeElement,\r\n inject(DestroyRef),\r\n this.directionality,\r\n { matchAnchorWidth: !this.submenu },\r\n );\r\n\r\n /**\r\n * Installs the default placement when the application did not supply `positions`.\r\n *\r\n * @remarks\r\n * Runs in `ngOnInit` so host-directive inputs are already applied; a non-null\r\n * `menuPosition` is left untouched, so an application's list always wins.\r\n */\r\n ngOnInit(): void {\r\n if (this.trigger.menuPosition == null) {\r\n this.trigger.menuPosition = this.submenu ? this.submenuPositionsDefault : ROOT_MENU_POSITIONS;\r\n }\r\n }\r\n}\r\n","import {\r\n Directive,\r\n DestroyRef,\r\n ElementRef,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\n\r\nimport { CdkMenuItem } from '@angular/cdk/menu';\r\n\r\n// Legacy Space key code: the CDK's own item engine switches on `keyCode` too.\r\nconst SPACE_KEY_CODE = 32;\r\n\r\n@Directive({\r\n selector: 'button[raqm-menu-item], a[raqm-menu-item]',\r\n hostDirectives: [\r\n {\r\n directive: CdkMenuItem,\r\n inputs: ['cdkMenuItemDisabled: disabled'],\r\n outputs: ['cdkMenuItemTriggered: triggered'],\r\n },\r\n ],\r\n host: {\r\n class: 'raqm-menu-item',\r\n // Exposes the active row appearance to the shipped styles, with no DOM mutation.\r\n '[attr.data-raqm-variant]': 'activeAppearance()',\r\n // Presence-only inset hook (the `data-raqm-inset` attribute exists or not).\r\n '[attr.data-raqm-inset]': 'inset() ? \"\" : null',\r\n // Focus-follows-pointer on a real pointer entry (see `onPointerEnter`).\r\n '(pointerenter)': 'onPointerEnter($event)',\r\n },\r\n})\r\nexport class RaqmMenuItemDirective {\r\n // Used only to install the anchor-only capture-phase guards.\r\n private readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\r\n\r\n // Scoped teardown, so a destroyed row never leaks listeners on a recycled node.\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n // Moves real DOM focus on pointer entry (the shipped `:focus` rule paints it).\r\n private readonly item = inject(CdkMenuItem);\r\n\r\n // Bare/absent is `default`; `destructive` is the only other treatment.\r\n readonly appearance = input<'default' | 'destructive' | ''>('', { alias: 'raqm-menu-item' });\r\n\r\n // The value marker or the default row treatment.\r\n protected readonly activeAppearance = computed(() => this.appearance() || 'default');\r\n\r\n // Indents the row to line up with indicator-bearing rows.\r\n readonly inset = input(false, { transform: booleanAttribute });\r\n\r\n // Capture-phase guard for a disabled anchor: `preventDefault` blocks the native and\r\n // router destination, `stopImmediatePropagation` later same-element listeners.\r\n private readonly guardDisabledAnchor = (event: Event): void => {\r\n if (!this.item.disabled) {\r\n return;\r\n }\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n };\r\n\r\n // Capture-phase Space activation for an anchor row: Space is not native anchor\r\n // activation, so stop the CDK keydown path and page default, then dispatch exactly one\r\n // `click()`; Enter stays native and a repeat never re-activates.\r\n private readonly activateAnchorWithSpace = (event: KeyboardEvent): void => {\r\n if (\r\n event.keyCode !== SPACE_KEY_CODE ||\r\n event.altKey ||\r\n event.ctrlKey ||\r\n event.metaKey ||\r\n event.shiftKey\r\n ) {\r\n return;\r\n }\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n if (event.repeat || this.item.disabled) {\r\n return;\r\n }\r\n this.elementRef.nativeElement.click();\r\n };\r\n\r\n // Anchors only: the CDK covers `<button>` hosts; capture phase runs before the CDK's,\r\n // the router's and the app's same-element listeners.\r\n constructor() {\r\n const element = this.elementRef.nativeElement;\r\n if (element.nodeName !== 'A') {\r\n return;\r\n }\r\n element.addEventListener('click', this.guardDisabledAnchor, true);\r\n element.addEventListener('auxclick', this.guardDisabledAnchor, true);\r\n element.addEventListener('keydown', this.activateAnchorWithSpace, true);\r\n this.destroyRef.onDestroy(() => {\r\n element.removeEventListener('click', this.guardDisabledAnchor, true);\r\n element.removeEventListener('auxclick', this.guardDisabledAnchor, true);\r\n element.removeEventListener('keydown', this.activateAnchorWithSpace, true);\r\n });\r\n }\r\n\r\n // Hover highlight: an enabled, non-touch pointer entry goes through the public\r\n // `CdkMenuItem.focus()`, reusing the single `:focus` rule instead of adding a second\r\n // paint. It never activates the row.\r\n protected onPointerEnter(event: Event): void {\r\n if (!(event instanceof PointerEvent) || event.pointerType === 'touch' || this.item.disabled) {\r\n return;\r\n }\r\n this.item.focus();\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n OnDestroy,\r\n booleanAttribute,\r\n effect,\r\n inject,\r\n input,\r\n model,\r\n} from '@angular/core';\r\n\r\nimport { CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemSelectable } from '@angular/cdk/menu';\r\n\r\n@Directive({\r\n providers: [\r\n // The same alias chain the CDK declares on its own subclasses, retargeted here.\r\n { provide: CdkMenuItemSelectable, useExisting: RaqmMenuCheckboxItemBase },\r\n { provide: CdkMenuItem, useExisting: RaqmMenuCheckboxItemBase },\r\n ],\r\n})\r\nexport class RaqmMenuCheckboxItemBase extends CdkMenuItemCheckbox {\r\n // Caller-supplied options are preserved; the CDK still emits and toggles.\r\n override trigger(options?: { keepOpen: boolean }): void {\r\n super.trigger({ ...options, keepOpen: true });\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'button[raqm-menu-checkbox-item]',\r\n // The CDK owns the checkbox engine; the internal base adds keep-open.\r\n hostDirectives: [\r\n {\r\n directive: RaqmMenuCheckboxItemBase,\r\n inputs: ['cdkMenuItemDisabled: disabled'],\r\n },\r\n ],\r\n host: {\r\n class: 'raqm-menu-checkbox-item',\r\n // Presence-only inset hook (the `data-raqm-inset` attribute exists or not).\r\n '[attr.data-raqm-inset]': 'inset() ? \"\" : null',\r\n // Focus-follows-pointer, identical to `RaqmMenuItemDirective`.\r\n '(pointerenter)': 'onPointerEnter($event)',\r\n },\r\n})\r\nexport class RaqmMenuCheckboxItemDirective implements OnDestroy {\r\n // Reads the event-time checked value when `triggered` fires.\r\n private readonly checkbox = inject(RaqmMenuCheckboxItemBase);\r\n\r\n // Receives the committed state directly, so the model write paints before the CDK's\r\n // own binding re-runs.\r\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n /** Indents the row to line up with indicator-bearing rows. */\r\n readonly inset = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * The public two-way checked model.\r\n *\r\n * @remarks\r\n * Bound-only: the CDK's `checked` attribute transform is not exposed. The model is the\r\n * single state channel.\r\n */\r\n readonly checked = model(false);\r\n\r\n // Typed structurally (no rxjs import), matching the Select component's pattern.\r\n private readonly triggerSubscription: { unsubscribe(): void };\r\n\r\n constructor() {\r\n // Push application writes into the CDK row and paint `aria-checked` in the same pass;\r\n // the CDK's plain-field `checked` would otherwise leave the attribute one pass stale.\r\n effect(() => {\r\n const checked = this.checked();\r\n this.checkbox.checked = checked;\r\n this.element.nativeElement.setAttribute('aria-checked', String(checked));\r\n });\r\n\r\n // Negating the event-time `checked` keeps the write aligned with the CDK's own toggle.\r\n this.triggerSubscription = this.checkbox.triggered.subscribe(() => {\r\n this.checked.set(!this.checkbox.checked);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.triggerSubscription.unsubscribe();\r\n }\r\n\r\n // An enabled, non-touch entry focuses the row through `CdkMenuItem.focus()`, which\r\n // never toggles.\r\n protected onPointerEnter(event: Event): void {\r\n if (\r\n !(event instanceof PointerEvent) ||\r\n event.pointerType === 'touch' ||\r\n this.checkbox.disabled\r\n ) {\r\n return;\r\n }\r\n this.checkbox.focus();\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface RaqmMenuRadioGroupContext {\r\n isSelected(value: string): boolean;\r\n /** Commits one user selection using the group's two-way model. */\r\n select(value: string): void;\r\n /** Registers an item value and rejects duplicate claims in development. */\r\n register(value: string): void;\r\n /** Releases a previously registered item value. */\r\n unregister(value: string): void;\r\n}\r\n\r\nexport const RAQM_MENU_RADIO_GROUP = new InjectionToken<RaqmMenuRadioGroupContext>(\r\n 'raqm-menu-radio-group',\r\n);\r\n","import {\r\n Directive,\r\n OnDestroy,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n booleanAttribute,\r\n effect,\r\n inject,\r\n input,\r\n isDevMode,\r\n model,\r\n} from '@angular/core';\r\n\r\nimport {\r\n CdkMenuGroup,\r\n CdkMenuItem,\r\n CdkMenuItemRadio,\r\n CdkMenuItemSelectable,\r\n} from '@angular/cdk/menu';\r\n\r\nimport { RAQM_MENU_RADIO_GROUP, RaqmMenuRadioGroupContext } from './dropdown-menu-radio-context';\r\n\r\n@Directive({\r\n providers: [\r\n { provide: CdkMenuItemSelectable, useExisting: RaqmMenuRadioItemBase },\r\n { provide: CdkMenuItem, useExisting: RaqmMenuRadioItemBase },\r\n ],\r\n})\r\nexport class RaqmMenuRadioItemBase extends CdkMenuItemRadio {\r\n /** Keeps the menu open while retaining the CDK's standard activation path. */\r\n override trigger(options?: { keepOpen: boolean }): void {\r\n super.trigger({ ...options, keepOpen: true });\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[raqm-menu-radio-group]',\r\n hostDirectives: [{ directive: CdkMenuGroup }],\r\n providers: [{ provide: RAQM_MENU_RADIO_GROUP, useExisting: RaqmMenuRadioGroupDirective }],\r\n})\r\nexport class RaqmMenuRadioGroupDirective implements RaqmMenuRadioGroupContext {\r\n /** Selected item value, or null when the group has no current selection. */\r\n readonly value = model<string | null>(null);\r\n\r\n /** Tracks live item claims so duplicate values are rejected within this group. */\r\n private readonly registrations = new Map<string, number>();\r\n\r\n /** Checks the model without normalizing unknown externally supplied values. */\r\n isSelected(value: string): boolean {\r\n return this.value() === value;\r\n }\r\n\r\n /** Commits a user selection; model signals suppress unchanged-value emissions. */\r\n select(value: string): void {\r\n this.value.set(value);\r\n }\r\n\r\n /** Adds a value claim and reports duplicate/nonempty violations clearly in development. */\r\n register(value: string): void {\r\n if (!value && isDevMode()) {\r\n throw new Error('Raqm menu radio item: a non-empty `value` is required.');\r\n }\r\n const count = this.registrations.get(value) ?? 0;\r\n if (count > 0 && isDevMode()) {\r\n throw new Error(\r\n `Raqm menu radio group: duplicate radio item value \"${value}\". ` +\r\n 'Each radio item inside one group needs a unique non-empty value.',\r\n );\r\n }\r\n this.registrations.set(value, count + 1);\r\n }\r\n\r\n /** Removes a value claim and permits later reuse when the last item is destroyed. */\r\n unregister(value: string): void {\r\n const count = this.registrations.get(value) ?? 0;\r\n if (count <= 1) {\r\n this.registrations.delete(value);\r\n } else {\r\n this.registrations.set(value, count - 1);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Menu radio item deriving its checked state from the enclosing group's value.\r\n * CDK owns ARIA, keyboard navigation, dispatch and disabled activation behavior.\r\n */\r\n@Directive({\r\n selector: 'button[raqm-menu-radio-item]',\r\n hostDirectives: [\r\n {\r\n directive: RaqmMenuRadioItemBase,\r\n inputs: ['cdkMenuItemDisabled: disabled'],\r\n },\r\n ],\r\n host: {\r\n class: 'raqm-menu-radio-item',\r\n '[attr.data-raqm-inset]': 'inset() ? \"\" : null',\r\n '(pointerenter)': 'onPointerEnter($event)',\r\n },\r\n})\r\nexport class RaqmMenuRadioItemDirective implements OnInit, OnChanges, OnDestroy {\r\n private readonly radio = inject(RaqmMenuRadioItemBase);\r\n\r\n private readonly group: RaqmMenuRadioGroupContext;\r\n\r\n readonly value = input.required<string>();\r\n\r\n readonly inset = input(false, { transform: booleanAttribute });\r\n\r\n /** CDK triggered subscription, used to make exactly one model commit per activation. */\r\n private readonly triggerSubscription: { unsubscribe(): void };\r\n\r\n /** Registered value retained so input changes and teardown release the correct claim. */\r\n private registeredValue: string | null = null;\r\n\r\n constructor() {\r\n const group = inject(RAQM_MENU_RADIO_GROUP, { optional: true });\r\n if (!group) {\r\n throw new Error('Raqm menu radio item: an enclosing [raqm-menu-radio-group] is required.');\r\n }\r\n this.group = group;\r\n\r\n effect(() => {\r\n this.radio.checked = this.group.isSelected(this.value());\r\n });\r\n\r\n this.triggerSubscription = this.radio.triggered.subscribe(() => {\r\n if (!this.radio.disabled) {\r\n this.group.select(this.value());\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateRegistration(this.value());\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['value'] && this.registeredValue !== null) {\r\n this.updateRegistration(this.value());\r\n }\r\n }\r\n\r\n /** Swaps the registered claim only after the proposed value passes group validation. */\r\n private updateRegistration(value: string): void {\r\n if (value === this.registeredValue) {\r\n return;\r\n }\r\n this.group.register(value);\r\n const previousValue = this.registeredValue;\r\n this.registeredValue = value;\r\n if (previousValue !== null) {\r\n this.group.unregister(previousValue);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.registeredValue !== null) {\r\n this.group.unregister(this.registeredValue);\r\n }\r\n this.triggerSubscription.unsubscribe();\r\n }\r\n\r\n protected onPointerEnter(event: Event): void {\r\n if (!(event instanceof PointerEvent) || event.pointerType === 'touch' || this.radio.disabled) {\r\n return;\r\n }\r\n this.radio.focus();\r\n }\r\n}\r\n","import {\r\n RaqmMenuDirective,\r\n RaqmMenuGroupDirective,\r\n RaqmMenuLabelDirective,\r\n RaqmMenuSeparatorDirective,\r\n RaqmMenuShortcutDirective,\r\n} from './dropdown-menu.directive';\r\nimport {\r\n RaqmMenuTriggerDirective,\r\n RAQM_MENU_SUBMENU_POSITIONS,\r\n} from './dropdown-menu-trigger.directive';\r\nimport {\r\n RaqmMenuOverlaySync,\r\n RaqmMenuDirection,\r\n RaqmMenuTriggerBase,\r\n RaqmContextMenuTriggerBase,\r\n} from './menu-overlay';\r\nimport type { RaqmMenuAnchorPoint, RaqmMenuOverlaySyncOptions } from './menu-overlay';\r\nimport { RaqmMenuItemDirective } from './dropdown-menu-item.directive';\r\nimport {\r\n RaqmMenuCheckboxItemBase,\r\n RaqmMenuCheckboxItemDirective,\r\n} from './dropdown-menu-checkbox-item.directive';\r\nimport {\r\n RaqmMenuRadioGroupDirective,\r\n RaqmMenuRadioItemBase,\r\n RaqmMenuRadioItemDirective,\r\n} from './dropdown-menu-radio.directive';\r\n\r\nexport {\r\n RaqmMenuDirective,\r\n RaqmMenuGroupDirective,\r\n RaqmMenuLabelDirective,\r\n RaqmMenuSeparatorDirective,\r\n RaqmMenuShortcutDirective,\r\n};\r\nexport { RaqmMenuTriggerDirective, RAQM_MENU_SUBMENU_POSITIONS };\r\n// INTERNAL — shared across entrypoints; not supported application-facing API.\r\n// NG3001 also requires exported host-directive bases/direction to be visible here.\r\nexport { RaqmMenuOverlaySync, RaqmMenuDirection, RaqmMenuTriggerBase, RaqmContextMenuTriggerBase };\r\nexport type { RaqmMenuAnchorPoint, RaqmMenuOverlaySyncOptions };\r\nexport { RaqmMenuItemDirective };\r\nexport { RaqmMenuCheckboxItemDirective };\r\nexport { RaqmMenuRadioGroupDirective, RaqmMenuRadioItemDirective };\r\n// INTERNAL — do not remove and do not treat as supported API. NG3001 requires classes\r\n// named in exported `hostDirectives` to be exported, so both keep-open bases ship here.\r\nexport { RaqmMenuCheckboxItemBase };\r\nexport { RaqmMenuRadioItemBase };\r\n\r\nexport const RaqmDropdownMenu = [\r\n RaqmMenuDirective,\r\n RaqmMenuTriggerDirective,\r\n RaqmMenuItemDirective,\r\n RaqmMenuCheckboxItemDirective,\r\n RaqmMenuRadioGroupDirective,\r\n RaqmMenuRadioItemDirective,\r\n RaqmMenuGroupDirective,\r\n RaqmMenuLabelDirective,\r\n RaqmMenuSeparatorDirective,\r\n RaqmMenuShortcutDirective,\r\n] as const;\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, booleanAttribute, input } from "@angular/core";
|
|
3
|
+
var RaqmEmptyComponent = class RaqmEmptyComponent {
|
|
4
|
+
icon = input(false, {
|
|
5
|
+
...ngDevMode ? { debugName: "icon" } : /* istanbul ignore next */ {},
|
|
6
|
+
transform: booleanAttribute
|
|
7
|
+
});
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
9
|
+
minVersion: "12.0.0",
|
|
10
|
+
version: "22.2.2",
|
|
11
|
+
ngImport: i0,
|
|
12
|
+
type: RaqmEmptyComponent,
|
|
13
|
+
deps: [],
|
|
14
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
15
|
+
});
|
|
16
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
17
|
+
minVersion: "17.1.0",
|
|
18
|
+
version: "22.2.2",
|
|
19
|
+
type: RaqmEmptyComponent,
|
|
20
|
+
isStandalone: true,
|
|
21
|
+
selector: "raqm-empty",
|
|
22
|
+
inputs: { icon: {
|
|
23
|
+
classPropertyName: "icon",
|
|
24
|
+
publicName: "icon",
|
|
25
|
+
isSignal: true,
|
|
26
|
+
isRequired: false,
|
|
27
|
+
transformFunction: null
|
|
28
|
+
} },
|
|
29
|
+
host: {
|
|
30
|
+
properties: { "attr.data-raqm-icon": "icon() ? \"\" : null" },
|
|
31
|
+
classAttribute: "raqm-empty"
|
|
32
|
+
},
|
|
33
|
+
ngImport: i0,
|
|
34
|
+
template: "<ng-content />",
|
|
35
|
+
isInline: true,
|
|
36
|
+
styles: [":host{box-sizing:border-box;display:flex;flex:1 1 0%;flex-direction:column;align-items:center;justify-content:center;inline-size:100%;min-inline-size:0;gap:calc(var(--raqm-spacing) * 4);padding:calc(var(--raqm-spacing) * 6);border-radius:var(--raqm-radius-xl);text-align:center;text-wrap:balance}\n"],
|
|
37
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
41
|
+
minVersion: "12.0.0",
|
|
42
|
+
version: "22.2.2",
|
|
43
|
+
ngImport: i0,
|
|
44
|
+
type: RaqmEmptyComponent,
|
|
45
|
+
decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{
|
|
48
|
+
selector: "raqm-empty",
|
|
49
|
+
template: "<ng-content />",
|
|
50
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
51
|
+
host: {
|
|
52
|
+
class: "raqm-empty",
|
|
53
|
+
"[attr.data-raqm-icon]": "icon() ? \"\" : null"
|
|
54
|
+
},
|
|
55
|
+
styles: [":host{box-sizing:border-box;display:flex;flex:1 1 0%;flex-direction:column;align-items:center;justify-content:center;inline-size:100%;min-inline-size:0;gap:calc(var(--raqm-spacing) * 4);padding:calc(var(--raqm-spacing) * 6);border-radius:var(--raqm-radius-xl);text-align:center;text-wrap:balance}\n"]
|
|
56
|
+
}]
|
|
57
|
+
}],
|
|
58
|
+
propDecorators: { icon: [{
|
|
59
|
+
type: i0.Input,
|
|
60
|
+
args: [{
|
|
61
|
+
isSignal: true,
|
|
62
|
+
alias: "icon",
|
|
63
|
+
required: false
|
|
64
|
+
}]
|
|
65
|
+
}] }
|
|
66
|
+
});
|
|
67
|
+
var RaqmEmptyHeaderComponent = class RaqmEmptyHeaderComponent {
|
|
68
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
69
|
+
minVersion: "12.0.0",
|
|
70
|
+
version: "22.2.2",
|
|
71
|
+
ngImport: i0,
|
|
72
|
+
type: RaqmEmptyHeaderComponent,
|
|
73
|
+
deps: [],
|
|
74
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
75
|
+
});
|
|
76
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
77
|
+
minVersion: "14.0.0",
|
|
78
|
+
version: "22.2.2",
|
|
79
|
+
type: RaqmEmptyHeaderComponent,
|
|
80
|
+
isStandalone: true,
|
|
81
|
+
selector: "raqm-empty-header",
|
|
82
|
+
host: { classAttribute: "raqm-empty-header" },
|
|
83
|
+
ngImport: i0,
|
|
84
|
+
template: "<ng-content />",
|
|
85
|
+
isInline: true,
|
|
86
|
+
styles: [":host{display:flex;flex-direction:column;align-items:center;gap:calc(var(--raqm-spacing) * 2);max-inline-size:24rem}\n"],
|
|
87
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
91
|
+
minVersion: "12.0.0",
|
|
92
|
+
version: "22.2.2",
|
|
93
|
+
ngImport: i0,
|
|
94
|
+
type: RaqmEmptyHeaderComponent,
|
|
95
|
+
decorators: [{
|
|
96
|
+
type: Component,
|
|
97
|
+
args: [{
|
|
98
|
+
selector: "raqm-empty-header",
|
|
99
|
+
template: "<ng-content />",
|
|
100
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
101
|
+
host: { class: "raqm-empty-header" },
|
|
102
|
+
styles: [":host{display:flex;flex-direction:column;align-items:center;gap:calc(var(--raqm-spacing) * 2);max-inline-size:24rem}\n"]
|
|
103
|
+
}]
|
|
104
|
+
}]
|
|
105
|
+
});
|
|
106
|
+
var RaqmEmptyMediaComponent = class RaqmEmptyMediaComponent {
|
|
107
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
108
|
+
minVersion: "12.0.0",
|
|
109
|
+
version: "22.2.2",
|
|
110
|
+
ngImport: i0,
|
|
111
|
+
type: RaqmEmptyMediaComponent,
|
|
112
|
+
deps: [],
|
|
113
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
114
|
+
});
|
|
115
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
116
|
+
minVersion: "14.0.0",
|
|
117
|
+
version: "22.2.2",
|
|
118
|
+
type: RaqmEmptyMediaComponent,
|
|
119
|
+
isStandalone: true,
|
|
120
|
+
selector: "raqm-empty-media",
|
|
121
|
+
host: { classAttribute: "raqm-empty-media" },
|
|
122
|
+
ngImport: i0,
|
|
123
|
+
template: "<ng-content />",
|
|
124
|
+
isInline: true,
|
|
125
|
+
styles: [":host{display:flex;flex-shrink:0;align-items:center;justify-content:center;margin-block-end:calc(var(--raqm-spacing) * 2)}\n"],
|
|
126
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
130
|
+
minVersion: "12.0.0",
|
|
131
|
+
version: "22.2.2",
|
|
132
|
+
ngImport: i0,
|
|
133
|
+
type: RaqmEmptyMediaComponent,
|
|
134
|
+
decorators: [{
|
|
135
|
+
type: Component,
|
|
136
|
+
args: [{
|
|
137
|
+
selector: "raqm-empty-media",
|
|
138
|
+
template: "<ng-content />",
|
|
139
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
140
|
+
host: { class: "raqm-empty-media" },
|
|
141
|
+
styles: [":host{display:flex;flex-shrink:0;align-items:center;justify-content:center;margin-block-end:calc(var(--raqm-spacing) * 2)}\n"]
|
|
142
|
+
}]
|
|
143
|
+
}]
|
|
144
|
+
});
|
|
145
|
+
var RaqmEmptyTitleComponent = class RaqmEmptyTitleComponent {
|
|
146
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
147
|
+
minVersion: "12.0.0",
|
|
148
|
+
version: "22.2.2",
|
|
149
|
+
ngImport: i0,
|
|
150
|
+
type: RaqmEmptyTitleComponent,
|
|
151
|
+
deps: [],
|
|
152
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
153
|
+
});
|
|
154
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
155
|
+
minVersion: "14.0.0",
|
|
156
|
+
version: "22.2.2",
|
|
157
|
+
type: RaqmEmptyTitleComponent,
|
|
158
|
+
isStandalone: true,
|
|
159
|
+
selector: "raqm-empty-title, h1[raqm-empty-title], h2[raqm-empty-title], h3[raqm-empty-title], h4[raqm-empty-title], h5[raqm-empty-title], h6[raqm-empty-title]",
|
|
160
|
+
host: { classAttribute: "raqm-empty-title" },
|
|
161
|
+
ngImport: i0,
|
|
162
|
+
template: "<ng-content />",
|
|
163
|
+
isInline: true,
|
|
164
|
+
styles: [":host{display:block;font-size:var(--raqm-font-size-sm);line-height:calc(var(--raqm-spacing) * 5);font-weight:var(--raqm-font-weight-medium);letter-spacing:-.025em}:host:is(h1,h2,h3,h4,h5,h6){margin:0}\n"],
|
|
165
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
169
|
+
minVersion: "12.0.0",
|
|
170
|
+
version: "22.2.2",
|
|
171
|
+
ngImport: i0,
|
|
172
|
+
type: RaqmEmptyTitleComponent,
|
|
173
|
+
decorators: [{
|
|
174
|
+
type: Component,
|
|
175
|
+
args: [{
|
|
176
|
+
selector: "raqm-empty-title, h1[raqm-empty-title], h2[raqm-empty-title], h3[raqm-empty-title], h4[raqm-empty-title], h5[raqm-empty-title], h6[raqm-empty-title]",
|
|
177
|
+
template: "<ng-content />",
|
|
178
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
179
|
+
host: { class: "raqm-empty-title" },
|
|
180
|
+
styles: [":host{display:block;font-size:var(--raqm-font-size-sm);line-height:calc(var(--raqm-spacing) * 5);font-weight:var(--raqm-font-weight-medium);letter-spacing:-.025em}:host:is(h1,h2,h3,h4,h5,h6){margin:0}\n"]
|
|
181
|
+
}]
|
|
182
|
+
}]
|
|
183
|
+
});
|
|
184
|
+
var RaqmEmptyDescriptionComponent = class RaqmEmptyDescriptionComponent {
|
|
185
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
186
|
+
minVersion: "12.0.0",
|
|
187
|
+
version: "22.2.2",
|
|
188
|
+
ngImport: i0,
|
|
189
|
+
type: RaqmEmptyDescriptionComponent,
|
|
190
|
+
deps: [],
|
|
191
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
192
|
+
});
|
|
193
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
194
|
+
minVersion: "14.0.0",
|
|
195
|
+
version: "22.2.2",
|
|
196
|
+
type: RaqmEmptyDescriptionComponent,
|
|
197
|
+
isStandalone: true,
|
|
198
|
+
selector: "raqm-empty-description, p[raqm-empty-description]",
|
|
199
|
+
host: { classAttribute: "raqm-empty-description" },
|
|
200
|
+
ngImport: i0,
|
|
201
|
+
template: "<ng-content />",
|
|
202
|
+
isInline: true,
|
|
203
|
+
styles: [":host{display:block;color:var(--raqm-muted-foreground);font-size:var(--raqm-font-size-sm);line-height:var(--raqm-line-height-relaxed)}:host:is(p){margin:0}\n"],
|
|
204
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
208
|
+
minVersion: "12.0.0",
|
|
209
|
+
version: "22.2.2",
|
|
210
|
+
ngImport: i0,
|
|
211
|
+
type: RaqmEmptyDescriptionComponent,
|
|
212
|
+
decorators: [{
|
|
213
|
+
type: Component,
|
|
214
|
+
args: [{
|
|
215
|
+
selector: "raqm-empty-description, p[raqm-empty-description]",
|
|
216
|
+
template: "<ng-content />",
|
|
217
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
218
|
+
host: { class: "raqm-empty-description" },
|
|
219
|
+
styles: [":host{display:block;color:var(--raqm-muted-foreground);font-size:var(--raqm-font-size-sm);line-height:var(--raqm-line-height-relaxed)}:host:is(p){margin:0}\n"]
|
|
220
|
+
}]
|
|
221
|
+
}]
|
|
222
|
+
});
|
|
223
|
+
var RaqmEmptyContentComponent = class RaqmEmptyContentComponent {
|
|
224
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
225
|
+
minVersion: "12.0.0",
|
|
226
|
+
version: "22.2.2",
|
|
227
|
+
ngImport: i0,
|
|
228
|
+
type: RaqmEmptyContentComponent,
|
|
229
|
+
deps: [],
|
|
230
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
231
|
+
});
|
|
232
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
233
|
+
minVersion: "14.0.0",
|
|
234
|
+
version: "22.2.2",
|
|
235
|
+
type: RaqmEmptyContentComponent,
|
|
236
|
+
isStandalone: true,
|
|
237
|
+
selector: "raqm-empty-content",
|
|
238
|
+
host: { classAttribute: "raqm-empty-content" },
|
|
239
|
+
ngImport: i0,
|
|
240
|
+
template: "<ng-content />",
|
|
241
|
+
isInline: true,
|
|
242
|
+
styles: [":host{display:flex;flex-direction:column;align-items:center;inline-size:100%;min-inline-size:0;max-inline-size:24rem;gap:calc(var(--raqm-spacing) * 2.5);font-size:var(--raqm-font-size-sm);line-height:calc(var(--raqm-spacing) * 5);text-wrap:balance}\n"],
|
|
243
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
244
|
+
});
|
|
245
|
+
};
|
|
246
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
247
|
+
minVersion: "12.0.0",
|
|
248
|
+
version: "22.2.2",
|
|
249
|
+
ngImport: i0,
|
|
250
|
+
type: RaqmEmptyContentComponent,
|
|
251
|
+
decorators: [{
|
|
252
|
+
type: Component,
|
|
253
|
+
args: [{
|
|
254
|
+
selector: "raqm-empty-content",
|
|
255
|
+
template: "<ng-content />",
|
|
256
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
257
|
+
host: { class: "raqm-empty-content" },
|
|
258
|
+
styles: [":host{display:flex;flex-direction:column;align-items:center;inline-size:100%;min-inline-size:0;max-inline-size:24rem;gap:calc(var(--raqm-spacing) * 2.5);font-size:var(--raqm-font-size-sm);line-height:calc(var(--raqm-spacing) * 5);text-wrap:balance}\n"]
|
|
259
|
+
}]
|
|
260
|
+
}]
|
|
261
|
+
});
|
|
262
|
+
const RaqmEmpty = [
|
|
263
|
+
RaqmEmptyComponent,
|
|
264
|
+
RaqmEmptyHeaderComponent,
|
|
265
|
+
RaqmEmptyMediaComponent,
|
|
266
|
+
RaqmEmptyTitleComponent,
|
|
267
|
+
RaqmEmptyDescriptionComponent,
|
|
268
|
+
RaqmEmptyContentComponent
|
|
269
|
+
];
|
|
270
|
+
export { RaqmEmpty, RaqmEmptyComponent, RaqmEmptyContentComponent, RaqmEmptyDescriptionComponent, RaqmEmptyHeaderComponent, RaqmEmptyMediaComponent, RaqmEmptyTitleComponent };
|
|
271
|
+
|
|
272
|
+
//# sourceMappingURL=raqm-ui-empty.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raqm-ui-empty.mjs","names":[],"sources":["../../../projects/ui/empty/empty.ts","../../../projects/ui/empty/public-api.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core';\r\n\r\n/** Layout only; the dashed border stays application-authored (no border-width reset ships). */\r\n@Component({\r\n selector: 'raqm-empty',\r\n template: '<ng-content />',\r\n styleUrl: './empty.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-empty',\r\n '[attr.data-raqm-icon]': 'icon() ? \"\" : null',\r\n },\r\n})\r\nexport class RaqmEmptyComponent {\r\n readonly icon = input(false, { transform: booleanAttribute });\r\n}\r\n\r\n@Component({\r\n selector: 'raqm-empty-header',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: calc(var(--raqm-spacing) * 2);\r\n max-inline-size: 24rem;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-empty-header' },\r\n})\r\nexport class RaqmEmptyHeaderComponent {}\r\n\r\n@Component({\r\n selector: 'raqm-empty-media',\r\n template: '<ng-content />',\r\n styleUrl: './empty-media.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-empty-media',\r\n },\r\n})\r\nexport class RaqmEmptyMediaComponent {}\r\n\r\n/** Heading selectors keep native heading semantics without a wrapper. */\r\n@Component({\r\n selector:\r\n 'raqm-empty-title, h1[raqm-empty-title], h2[raqm-empty-title], h3[raqm-empty-title], h4[raqm-empty-title], h5[raqm-empty-title], h6[raqm-empty-title]',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n font-size: var(--raqm-font-size-sm);\r\n line-height: calc(var(--raqm-spacing) * 5);\r\n font-weight: var(--raqm-font-weight-medium);\r\n letter-spacing: -0.025em;\r\n }\r\n\r\n :host:is(h1, h2, h3, h4, h5, h6) {\r\n margin: 0;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-empty-title' },\r\n})\r\nexport class RaqmEmptyTitleComponent {}\r\n\r\n@Component({\r\n selector: 'raqm-empty-description, p[raqm-empty-description]',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n color: var(--raqm-muted-foreground);\r\n font-size: var(--raqm-font-size-sm);\r\n line-height: var(--raqm-line-height-relaxed);\r\n }\r\n\r\n :host:is(p) {\r\n margin: 0;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-empty-description' },\r\n})\r\nexport class RaqmEmptyDescriptionComponent {}\r\n\r\n@Component({\r\n selector: 'raqm-empty-content',\r\n template: '<ng-content />',\r\n styles: [\r\n `\r\n :host {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n inline-size: 100%;\r\n min-inline-size: 0;\r\n max-inline-size: 24rem;\r\n gap: calc(var(--raqm-spacing) * 2.5);\r\n font-size: var(--raqm-font-size-sm);\r\n line-height: calc(var(--raqm-spacing) * 5);\r\n text-wrap: balance;\r\n }\r\n `,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-empty-content' },\r\n})\r\nexport class RaqmEmptyContentComponent {}\r\n","// Public API for `@raqm/ui/empty`; the root entry point re-exports these symbols.\r\nimport {\r\n RaqmEmptyComponent,\r\n RaqmEmptyContentComponent,\r\n RaqmEmptyDescriptionComponent,\r\n RaqmEmptyHeaderComponent,\r\n RaqmEmptyMediaComponent,\r\n RaqmEmptyTitleComponent,\r\n} from './empty';\r\n\r\nexport {\r\n RaqmEmptyComponent,\r\n RaqmEmptyContentComponent,\r\n RaqmEmptyDescriptionComponent,\r\n RaqmEmptyHeaderComponent,\r\n RaqmEmptyMediaComponent,\r\n RaqmEmptyTitleComponent,\r\n};\r\n\r\n// A nested readonly array lets Angular imports accept `RaqmEmpty` directly.\r\nexport const RaqmEmpty = [\r\n RaqmEmptyComponent,\r\n RaqmEmptyHeaderComponent,\r\n RaqmEmptyMediaComponent,\r\n RaqmEmptyTitleComponent,\r\n RaqmEmptyDescriptionComponent,\r\n RaqmEmptyContentComponent,\r\n] as const;\r\n"],"mappings":";;AAaA,IAAa,qBAAb,MAAa,mBAAkB;CACpB,OAAO,MAAM,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,OAAA,+BAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAD/C,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAkB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAlB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAkB,cAAA;EAAA,UAAA;EAAA,QAAA,EAAA,MAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,UAAA;GAAA,YAAA;GAAA,mBAAA;EAAA,EAAA;EAAA,MAAA;GAAA,YAAA,EAAA,uBAAA,uBAAA;GAAA,gBAAA;EAAA;EAAA,UAAA;EAAA,UARnB;EAAgB,UAAA;EAAA,QAAA,CAAA,4SAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAQf,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA;EAV9B,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAY,UACZ;GAAgB,iBAET,wBAAwB;GAAM,MACzC;IACJ,OAAO;IACP,yBAAyB;GAC1B;GAAA,QAAA,CAAA,4SAAA;EAAA,CAAA;;;;;;;;;;;AAuBH,IAAa,2BAAb,MAAa,yBAAwB;CAAxB,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAwB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAxB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAwB,cAAA;EAAA,UAAA;EAAA,MAAA,EAAA,gBAAA,oBAAA;EAAA,UAAA;EAAA,UAfzB;EAAgB,UAAA;EAAA,QAAA,CAAA,wHAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAef,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAwB,YAAA,CAAA;EAjBpC,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAmB,UACnB;GAAgB,iBAYT,wBAAwB;GAAM,MACzC,EAAE,OAAO,oBAAmB;GAAE,QAAA,CAAA,wHAAA;EAAA,CAAA;;;AAatC,IAAa,0BAAb,MAAa,wBAAuB;CAAvB,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAuB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAvB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAuB,cAAA;EAAA,UAAA;EAAA,MAAA,EAAA,gBAAA,mBAAA;EAAA,UAAA;EAAA,UAPxB;EAAgB,UAAA;EAAA,QAAA,CAAA,8HAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAOf,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAuB,YAAA,CAAA;EATnC,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAkB,UAClB;GAAgB,iBAET,wBAAwB;GAAM,MACzC,EACJ,OAAO,mBACR;GAAA,QAAA,CAAA,8HAAA;EAAA,CAAA;;;AA2BH,IAAa,0BAAb,MAAa,wBAAuB;CAAvB,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAuB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAvB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAuB,cAAA;EAAA,UAAA;EAAA,MAAA,EAAA,gBAAA,mBAAA;EAAA,UAAA;EAAA,UAnBxB;EAAgB,UAAA;EAAA,QAAA,CAAA,4MAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAmBf,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAuB,YAAA,CAAA;EAtBnC,MAAA;EAEG,MAAA,CAAA;GAAA,UAAA;GAAsJ,UAC9I;GAAgB,iBAgBT,wBAAwB;GAAM,MACzC,EAAE,OAAO,mBAAkB;GAAE,QAAA,CAAA,4MAAA;EAAA,CAAA;;;AAwBrC,IAAa,gCAAb,MAAa,8BAA6B;CAA7B,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAA6B,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAA7B,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAA6B,cAAA;EAAA,UAAA;EAAA,MAAA,EAAA,gBAAA,yBAAA;EAAA,UAAA;EAAA,UAlB9B;EAAgB,UAAA;EAAA,QAAA,CAAA,+JAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAkBf,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAA6B,YAAA,CAAA;EApBzC,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAmD,UACnD;GAAgB,iBAeT,wBAAwB;GAAM,MACzC,EAAE,OAAO,yBAAwB;GAAE,QAAA,CAAA,+JAAA;EAAA,CAAA;;;AA0B3C,IAAa,4BAAb,MAAa,0BAAyB;CAAzB,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAyB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAzB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAyB,cAAA;EAAA,UAAA;EAAA,MAAA,EAAA,gBAAA,qBAAA;EAAA,UAAA;EAAA,UApB1B;EAAgB,UAAA;EAAA,QAAA,CAAA,4PAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAoBf,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAyB,YAAA,CAAA;EAtBrC,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAoB,UACpB;GAAgB,iBAiBT,wBAAwB;GAAM,MACzC,EAAE,OAAO,qBAAoB;GAAE,QAAA,CAAA,4PAAA;EAAA,CAAA;;;AC9FvC,MAAa,YAAY;CACvB;CACA;CACA;CACA;CACA;CACA;AACQ"}
|