@raqm/ui 0.1.0 → 0.1.2
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 +29 -12
- package/LICENSE +21 -21
- package/README.md +4 -3
- package/fesm2022/raqm-ui-alert-dialog.mjs +2 -2
- package/fesm2022/raqm-ui-alert-dialog.mjs.map +1 -1
- package/fesm2022/raqm-ui-calendar.mjs.map +1 -1
- package/fesm2022/raqm-ui-command.mjs +2 -2
- package/fesm2022/raqm-ui-command.mjs.map +1 -1
- package/fesm2022/raqm-ui-dialog.mjs +4 -4
- package/fesm2022/raqm-ui-dialog.mjs.map +1 -1
- package/fesm2022/raqm-ui-drawer.mjs +2 -2
- package/fesm2022/raqm-ui-drawer.mjs.map +1 -1
- package/fesm2022/raqm-ui-sheet.mjs +2 -2
- package/fesm2022/raqm-ui-sheet.mjs.map +1 -1
- package/fesm2022/raqm-ui-sidebar.mjs +2 -2
- package/fesm2022/raqm-ui-sidebar.mjs.map +1 -1
- package/fesm2022/raqm-ui-toast.mjs +2 -2
- package/fesm2022/raqm-ui-toast.mjs.map +1 -1
- package/package.json +3 -4
- package/styles/theme.css +9 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raqm-ui-sidebar.mjs","names":[],"sources":["../../../projects/ui/sidebar/sidebar-context.ts","../../../projects/ui/sidebar/sidebar-mobile.component.ts","../../../projects/ui/dialog/dialog.component.html","../../../projects/ui/sidebar/sidebar.component.ts","../../../projects/ui/sidebar/sidebar.component.html","../../../projects/ui/sidebar/sidebar-parts.ts","../../../projects/ui/sidebar/sidebar-provider.component.ts","../../../projects/ui/sidebar/public-api.ts"],"sourcesContent":["import { InjectionToken, Signal, inject } from '@angular/core';\r\n\r\n/** Nearest provider's reactive state; readable only in an injection context. */\r\nexport interface RaqmSidebarContext {\r\n readonly open: Signal<boolean>;\r\n readonly openMobile: Signal<boolean>;\r\n readonly mobile: Signal<boolean>;\r\n readonly state: Signal<'expanded' | 'collapsed'>;\r\n setOpen(value: boolean | ((open: boolean) => boolean)): void;\r\n setOpenMobile(value: boolean | ((open: boolean) => boolean)): void;\r\n toggleSidebar(): void;\r\n}\r\nexport const RAQM_SIDEBAR = new InjectionToken<RaqmSidebarContext>('RaqmSidebar');\r\nexport function useSidebar(): RaqmSidebarContext {\r\n return inject(RAQM_SIDEBAR);\r\n}\r\n","import { ChangeDetectionStrategy, Component, signal } from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { RaqmButton } from '@raqm/ui/button';\r\nimport { RaqmSheetComponent } from '@raqm/ui/sheet';\r\nimport { RAQM_DIALOG, RAQM_DIALOG_POLICY, RaqmDialogPolicy } from '@raqm/ui/dialog';\r\n\r\n/** Internal Sheet specialization, sharing the shipped modal stack/focus lifecycle. */\r\n@Component({\r\n selector: 'raqm-sidebar-mobile',\r\n imports: [NgTemplateOutlet, RaqmButton],\r\n templateUrl: '../dialog/dialog.component.html',\r\n styleUrls: ['../dialog/dialog.component.scss', '../sheet/sheet.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: RAQM_DIALOG, useExisting: RaqmSidebarMobileComponent },\r\n {\r\n provide: RAQM_DIALOG_POLICY,\r\n useFactory: (): RaqmDialogPolicy => ({\r\n role: 'dialog',\r\n contentClass: 'raqm-sheet-content',\r\n touchOpening: signal(false),\r\n dismissOnBackdrop: true,\r\n side: signal('left'),\r\n paneClass: 'raqm-sheet-overlay-pane',\r\n backdropClass: 'raqm-sheet-overlay-backdrop',\r\n exitAnimationMs: 200,\r\n allowWithoutTrigger: true,\r\n }),\r\n },\r\n ],\r\n})\r\nexport class RaqmSidebarMobileComponent extends RaqmSheetComponent {}\r\n","<ng-content />\r\n\r\n<!-- The CDK container, not this wrapper, is the role=dialog element. -->\r\n<ng-template #panel>\r\n <div\r\n class=\"raqm-dialog-content\"\r\n [class]=\"policy?.contentClass ?? ''\"\r\n [attr.data-raqm-small]=\"policy?.small?.() ? '' : null\"\r\n [attr.data-raqm-side]=\"policy?.side?.() ?? null\"\r\n [attr.dir]=\"panelDir()\"\r\n [class.raqm-dialog-content--entering]=\"entering()\"\r\n [class.raqm-dialog-content--closing]=\"closing()\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"contentTemplate()\" />\r\n\r\n <!-- showCloseButton=false hides only this control; Escape and backdrop dismissal still close. -->\r\n @if (closeButtonVisible()) {\r\n <button\r\n raqm-button=\"ghost\"\r\n icon-small\r\n class=\"raqm-dialog-close\"\r\n [attr.aria-label]=\"closeLabelText()\"\r\n (click)=\"onCloseButtonClick()\"\r\n >\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n >\r\n <path d=\"M18 6 6 18\" />\r\n <path d=\"m6 6 12 12\" />\r\n </svg>\r\n </button>\r\n }\r\n </div>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, effect, input, isDevMode } from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n RaqmSheetContentDirective,\r\n RaqmSheetDescriptionDirective,\r\n RaqmSheetTitleDirective,\r\n} from '@raqm/ui/sheet';\r\nimport { useSidebar } from './sidebar-context';\r\nimport { RaqmSidebarMobileComponent } from './sidebar-mobile.component';\r\n\r\n@Component({\r\n imports: [\r\n NgTemplateOutlet,\r\n RaqmSidebarMobileComponent,\r\n RaqmSheetContentDirective,\r\n RaqmSheetTitleDirective,\r\n RaqmSheetDescriptionDirective,\r\n ],\r\n selector: 'raqm-sidebar',\r\n styleUrl: './sidebar.component.scss',\r\n templateUrl: './sidebar.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-sidebar',\r\n 'data-raqm-slot': 'sidebar',\r\n '[attr.data-raqm-state]': 'context.state()',\r\n '[attr.data-raqm-collapsible]': 'context.mobile() || context.open() ? \"\" : collapsible()',\r\n '[attr.data-raqm-variant]': 'variant()',\r\n '[attr.data-raqm-side]': 'side()',\r\n '[attr.data-raqm-mobile]': 'context.mobile() && collapsible() !== \"none\" ? \"true\" : null',\r\n '[attr.data-raqm-static]': 'collapsible() === \"none\" ? \"true\" : null',\r\n },\r\n})\r\nexport class RaqmSidebarComponent {\r\n readonly context = useSidebar();\r\n readonly side = input<'left' | 'right'>('left');\r\n readonly variant = input<'sidebar' | 'floating' | 'inset'>('sidebar');\r\n readonly collapsible = input<'offcanvas' | 'icon' | 'none'>('offcanvas');\r\n readonly dir = input<'ltr' | 'rtl' | undefined>(undefined);\r\n\r\n /** The mobile sheet's accessible name and visible title; application-supplied. */\r\n readonly label = input<string | undefined>(undefined);\r\n\r\n readonly description = input<string | undefined>(undefined);\r\n\r\n constructor() {\r\n effect(() => {\r\n if (isDevMode() && this.context.mobile() && this.collapsible() !== 'none' && !this.label()) {\r\n console.error('[raqm-sidebar] The mobile sheet has no accessible name. Provide `label`.');\r\n }\r\n });\r\n }\r\n\r\n protected onMobileKeydown(event: KeyboardEvent): void {\r\n if (\r\n !event.defaultPrevented &&\r\n !event.repeat &&\r\n event.key.toLowerCase() === 'b' &&\r\n (event.ctrlKey || event.metaKey)\r\n ) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.context.toggleSidebar();\r\n }\r\n }\r\n}\r\n","<ng-template #body><ng-content /></ng-template>\r\n@if (context.mobile() && collapsible() !== 'none') {\r\n <raqm-sidebar-mobile\r\n [open]=\"context.openMobile()\"\r\n (openChange)=\"context.setOpenMobile($event)\"\r\n [dir]=\"dir()\"\r\n [label]=\"label()\"\r\n panelClass=\"raqm-sidebar-mobile-pane\"\r\n [side]=\"side()\"\r\n [showCloseButton]=\"false\"\r\n >\r\n <ng-template raqm-sheet-content>\r\n <div\r\n class=\"raqm-sidebar-mobile-body\"\r\n data-raqm-slot=\"sidebar\"\r\n data-raqm-mobile=\"true\"\r\n [attr.dir]=\"dir()\"\r\n (keydown)=\"onMobileKeydown($event)\"\r\n >\r\n @if (label() || description()) {\r\n <div class=\"raqm-sidebar-sr-only\">\r\n @if (label()) {\r\n <h2 raqm-sheet-title>{{ label() }}</h2>\r\n }\r\n @if (description()) {\r\n <p raqm-sheet-description>{{ description() }}</p>\r\n }\r\n </div>\r\n }\r\n <ng-container [ngTemplateOutlet]=\"body\" />\r\n </div>\r\n </ng-template>\r\n </raqm-sidebar-mobile>\r\n} @else {\r\n <div class=\"raqm-sidebar-gap\" data-raqm-slot=\"sidebar-gap\"></div>\r\n <div\r\n class=\"raqm-sidebar-container\"\r\n data-raqm-slot=\"sidebar-container\"\r\n [attr.data-raqm-side]=\"side()\"\r\n [attr.dir]=\"dir()\"\r\n >\r\n <div\r\n class=\"raqm-sidebar-inner\"\r\n data-raqm-slot=\"sidebar-inner\"\r\n [attr.inert]=\"!context.open() && collapsible() === 'offcanvas' ? '' : null\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"body\" />\r\n </div>\r\n <ng-content select=\"[raqm-sidebar-rail]\" />\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n ElementRef,\r\n afterNextRender,\r\n booleanAttribute,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n isDevMode,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { RaqmInput } from '@raqm/ui/input';\r\nimport { RaqmSkeleton } from '@raqm/ui/skeleton';\r\nimport { RaqmTooltip, RaqmTooltipComponent, RaqmTooltipTriggerRef } from '@raqm/ui/tooltip';\r\nimport { useSidebar } from './sidebar-context';\r\n\r\n@Directive({\r\n selector: '[raqm-sidebar-header]',\r\n host: {\r\n class: 'raqm-sidebar-header',\r\n 'data-raqm-slot': 'sidebar-header',\r\n 'data-raqm-sidebar': 'header',\r\n },\r\n})\r\nexport class RaqmSidebarHeaderDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-footer]',\r\n host: {\r\n class: 'raqm-sidebar-footer',\r\n 'data-raqm-slot': 'sidebar-footer',\r\n 'data-raqm-sidebar': 'footer',\r\n },\r\n})\r\nexport class RaqmSidebarFooterDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-content]',\r\n host: {\r\n class: 'raqm-sidebar-content',\r\n 'data-raqm-slot': 'sidebar-content',\r\n 'data-raqm-sidebar': 'content',\r\n },\r\n})\r\nexport class RaqmSidebarContentDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-group]',\r\n host: {\r\n class: 'raqm-sidebar-group',\r\n 'data-raqm-slot': 'sidebar-group',\r\n 'data-raqm-sidebar': 'group',\r\n },\r\n})\r\nexport class RaqmSidebarGroupDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-group-label]',\r\n host: {\r\n class: 'raqm-sidebar-group-label',\r\n 'data-raqm-slot': 'sidebar-group-label',\r\n 'data-raqm-sidebar': 'group-label',\r\n },\r\n})\r\nexport class RaqmSidebarGroupLabelDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-group-content]',\r\n host: {\r\n class: 'raqm-sidebar-group-content',\r\n 'data-raqm-slot': 'sidebar-group-content',\r\n 'data-raqm-sidebar': 'group-content',\r\n },\r\n})\r\nexport class RaqmSidebarGroupContentDirective {}\r\n@Directive({\r\n selector: 'button[raqm-sidebar-group-action]',\r\n host: {\r\n class: 'raqm-sidebar-group-action',\r\n 'data-raqm-slot': 'sidebar-group-action',\r\n 'data-raqm-sidebar': 'group-action',\r\n },\r\n})\r\nexport class RaqmSidebarGroupActionDirective {\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n }\r\n}\r\n@Directive({\r\n selector: 'ul[raqm-sidebar-menu]',\r\n host: {\r\n class: 'raqm-sidebar-menu',\r\n 'data-raqm-slot': 'sidebar-menu',\r\n 'data-raqm-sidebar': 'menu',\r\n },\r\n})\r\nexport class RaqmSidebarMenuDirective {}\r\n@Directive({\r\n selector: 'li[raqm-sidebar-menu-item]',\r\n host: {\r\n class: 'raqm-sidebar-menu-item',\r\n 'data-raqm-slot': 'sidebar-menu-item',\r\n 'data-raqm-sidebar': 'menu-item',\r\n },\r\n})\r\nexport class RaqmSidebarMenuItemDirective {}\r\n@Directive({\r\n selector: 'ul[raqm-sidebar-menu-sub]',\r\n host: {\r\n class: 'raqm-sidebar-menu-sub',\r\n 'data-raqm-slot': 'sidebar-menu-sub',\r\n 'data-raqm-sidebar': 'menu-sub',\r\n },\r\n})\r\nexport class RaqmSidebarMenuSubDirective {}\r\n@Directive({\r\n selector: 'li[raqm-sidebar-menu-sub-item]',\r\n host: {\r\n class: 'raqm-sidebar-menu-sub-item',\r\n 'data-raqm-slot': 'sidebar-menu-sub-item',\r\n 'data-raqm-sidebar': 'menu-sub-item',\r\n },\r\n})\r\nexport class RaqmSidebarMenuSubItemDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-menu-badge]',\r\n host: {\r\n class: 'raqm-sidebar-menu-badge',\r\n 'data-raqm-slot': 'sidebar-menu-badge',\r\n 'data-raqm-sidebar': 'menu-badge',\r\n },\r\n})\r\nexport class RaqmSidebarMenuBadgeDirective {}\r\n@Directive({\r\n selector: 'main[raqm-sidebar-inset]',\r\n host: { class: 'raqm-sidebar-inset', 'data-raqm-slot': 'sidebar-inset' },\r\n})\r\nexport class RaqmSidebarInsetDirective {}\r\n@Directive({\r\n selector: 'input[raqm-sidebar-input]',\r\n hostDirectives: [RaqmInput],\r\n host: {\r\n class: 'raqm-sidebar-input',\r\n 'data-raqm-slot': 'sidebar-input',\r\n 'data-raqm-sidebar': 'input',\r\n },\r\n})\r\nexport class RaqmSidebarInputDirective {}\r\n/** Separator part; keeps the shipped raqm-separator's semantic orientation. */\r\n@Directive({\r\n selector: 'raqm-separator[raqm-sidebar-separator]',\r\n host: {\r\n class: 'raqm-sidebar-separator',\r\n 'data-raqm-slot': 'sidebar-separator',\r\n 'data-raqm-sidebar': 'separator',\r\n },\r\n})\r\nexport class RaqmSidebarSeparatorDirective {}\r\n\r\n@Directive({\r\n selector: 'button[raqm-sidebar-menu-action]',\r\n host: {\r\n class: 'raqm-sidebar-menu-action',\r\n 'data-raqm-slot': 'sidebar-menu-action',\r\n 'data-raqm-sidebar': 'menu-action',\r\n '[attr.data-raqm-show-on-hover]': 'showOnHover() ? \"true\" : null',\r\n },\r\n})\r\nexport class RaqmSidebarMenuActionDirective {\r\n readonly showOnHover = input(false, { transform: booleanAttribute });\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n }\r\n}\r\n\r\n/** Native button/anchor host; routerLink and menu directives compose on it directly. */\r\n@Component({\r\n selector: 'button[raqm-sidebar-menu-button], a[raqm-sidebar-menu-button]',\r\n imports: [RaqmTooltip],\r\n template:\r\n '<ng-content /><raqm-tooltip [disabled]=\"!showTooltip()\" [side]=\"tooltipSide()\" [align]=\"tooltipAlign()\" [sideOffset]=\"tooltipOffset()\"><ng-template raqm-tooltip-content>{{ tooltipText() }}</ng-template></raqm-tooltip>',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-sidebar-menu-button',\r\n 'data-raqm-slot': 'sidebar-menu-button',\r\n 'data-raqm-sidebar': 'menu-button',\r\n '[attr.data-raqm-size]': 'activeSize()',\r\n '[attr.data-raqm-variant]': 'activeVariant()',\r\n '[attr.data-raqm-active]': 'active() ? \"true\" : null',\r\n '(pointerenter)': 'pointer($event, true)',\r\n '(pointerleave)': 'pointer($event, false)',\r\n '(focus)': 'focus(true)',\r\n '(blur)': 'focus(false)',\r\n '(pointerdown)': 'dismiss()',\r\n '(click)': 'dismiss()',\r\n '(keydown.escape)': 'dismiss()',\r\n },\r\n})\r\nexport class RaqmSidebarMenuButtonComponent {\r\n /** Bare or empty marker uses the default appearance. */\r\n readonly appearance = input<'' | 'default' | 'outline'>('', {\r\n alias: 'raqm-sidebar-menu-button',\r\n });\r\n readonly small = input(false, { transform: booleanAttribute });\r\n readonly large = input(false, { transform: booleanAttribute });\r\n readonly active = input(false, { transform: booleanAttribute });\r\n protected readonly activeVariant = computed(() => this.appearance() || 'default');\r\n protected readonly activeSize = computed<'sm' | 'lg' | null>(() => {\r\n if (this.small() && this.large()) {\r\n throw new Error('RaqmSidebarMenuButton: use only one size attribute per button.');\r\n }\r\n return this.small() ? 'sm' : this.large() ? 'lg' : null;\r\n });\r\n readonly tooltip = input<string | RaqmSidebarTooltip | undefined>(undefined);\r\n private readonly context = useSidebar();\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\r\n private readonly tip = viewChild(RaqmTooltipComponent);\r\n protected readonly tooltipText = computed(() => {\r\n const tip = this.tooltip();\r\n return typeof tip === 'string' ? tip : (tip?.text ?? '');\r\n });\r\n protected readonly tooltipSide = computed(() => {\r\n const tip = this.tooltip();\r\n return typeof tip === 'object' ? (tip.side ?? 'right') : 'right';\r\n });\r\n protected readonly tooltipAlign = computed(() => {\r\n const tip = this.tooltip();\r\n return typeof tip === 'object' ? (tip.align ?? 'center') : 'center';\r\n });\r\n protected readonly tooltipOffset = computed(() => {\r\n const tip = this.tooltip();\r\n return typeof tip === 'object' ? (tip.sideOffset ?? 4) : 4;\r\n });\r\n protected readonly showTooltip = computed(() => {\r\n const tip = this.tooltip();\r\n return (\r\n !!this.tooltipText() &&\r\n this.context.state() === 'collapsed' &&\r\n !this.context.mobile() &&\r\n !(typeof tip === 'object' && tip.hidden)\r\n );\r\n });\r\n private readonly ref: RaqmTooltipTriggerRef = {\r\n element: this.host,\r\n get disabled() {\r\n return (\r\n (this.element as HTMLButtonElement).disabled ||\r\n this.element.getAttribute('aria-disabled') === 'true'\r\n );\r\n },\r\n };\r\n constructor() {\r\n if (this.host.tagName === 'BUTTON' && !this.host.hasAttribute('type'))\r\n this.host.setAttribute('type', 'button');\r\n effect((onCleanup) => {\r\n const tip = this.tip();\r\n untracked(() => tip?.registerTrigger(this.ref));\r\n onCleanup(() => untracked(() => tip?.unregisterTrigger(this.ref)));\r\n });\r\n effect((onCleanup) => {\r\n const tip = this.tip();\r\n const id = tip?.open() ? tip.tooltipId() : null;\r\n if (!id) return;\r\n const tokens = new Set(\r\n (this.host.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter(Boolean),\r\n );\r\n tokens.add(id);\r\n this.host.setAttribute('aria-describedby', [...tokens].join(' '));\r\n onCleanup(() => {\r\n const remaining = (this.host.getAttribute('aria-describedby') ?? '')\r\n .split(/\\s+/)\r\n .filter((token) => token && token !== id);\r\n if (remaining.length) this.host.setAttribute('aria-describedby', remaining.join(' '));\r\n else this.host.removeAttribute('aria-describedby');\r\n });\r\n });\r\n }\r\n protected pointer(event: Event, entering: boolean): void {\r\n if ((event as PointerEvent).pointerType !== 'mouse') return;\r\n if (entering) this.tip()?.requestOpen(this.ref, 'mouse');\r\n else this.tip()?.requestClose(this.ref, 'mouse');\r\n }\r\n protected focus(entering: boolean): void {\r\n if (entering) this.tip()?.requestOpen(this.ref, 'focus');\r\n else this.tip()?.requestClose(this.ref, 'focus');\r\n }\r\n protected dismiss(): void {\r\n this.tip()?.requestClose(this.ref, 'press');\r\n }\r\n}\r\n\r\nexport interface RaqmSidebarTooltip {\r\n text: string;\r\n side?: 'top' | 'right' | 'bottom' | 'left';\r\n align?: 'start' | 'center' | 'end';\r\n sideOffset?: number;\r\n hidden?: boolean;\r\n}\r\n\r\n@Directive({\r\n selector: 'a[raqm-sidebar-menu-sub-button], button[raqm-sidebar-menu-sub-button]',\r\n host: {\r\n class: 'raqm-sidebar-menu-sub-button',\r\n 'data-raqm-slot': 'sidebar-menu-sub-button',\r\n 'data-raqm-sidebar': 'menu-sub-button',\r\n '[attr.data-raqm-size]': 'small() ? \"sm\" : null',\r\n '[attr.data-raqm-active]': 'active() ? \"true\" : null',\r\n },\r\n})\r\nexport class RaqmSidebarMenuSubButtonDirective {\r\n readonly small = input(false, { transform: booleanAttribute });\r\n readonly active = input(false, { transform: booleanAttribute });\r\n constructor() {\r\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\r\n if (host.tagName === 'BUTTON' && !host.hasAttribute('type'))\r\n host.setAttribute('type', 'button');\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'button[raqm-sidebar-trigger]',\r\n template:\r\n '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"/><path d=\"M9 3v18\"/></svg>',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-sidebar-trigger raqm-button',\r\n 'data-raqm-slot': 'sidebar-trigger',\r\n 'data-raqm-sidebar': 'trigger',\r\n 'data-raqm-variant': 'ghost',\r\n 'data-raqm-size': 'icon-sm',\r\n '(click)': 'toggle($event)',\r\n },\r\n})\r\nexport class RaqmSidebarTriggerComponent {\r\n private readonly context = useSidebar();\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n afterNextRender(() => {\r\n if (isDevMode() && !host.hasAttribute('aria-label')) {\r\n console.error('[raqm-sidebar] The trigger has no accessible name. Provide `aria-label`.');\r\n }\r\n });\r\n }\r\n protected toggle(event: MouseEvent): void {\r\n if (!event.defaultPrevented) this.context.toggleSidebar();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'button[raqm-sidebar-rail]',\r\n host: {\r\n class: 'raqm-sidebar-rail',\r\n tabindex: '-1',\r\n 'data-raqm-slot': 'sidebar-rail',\r\n 'data-raqm-sidebar': 'rail',\r\n '(click)': 'context.toggleSidebar()',\r\n },\r\n})\r\nexport class RaqmSidebarRailDirective {\r\n protected readonly context = useSidebar();\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n afterNextRender(() => {\r\n if (isDevMode() && !host.hasAttribute('aria-label')) {\r\n console.error('[raqm-sidebar] The rail has no accessible name. Provide `aria-label`.');\r\n }\r\n });\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'raqm-sidebar-menu-skeleton',\r\n imports: [RaqmSkeleton],\r\n template:\r\n '@if (showIcon()) { <raqm-skeleton class=\"raqm-sidebar-menu-skeleton-icon\" data-raqm-sidebar=\"menu-skeleton-icon\" /> }<raqm-skeleton class=\"raqm-sidebar-menu-skeleton-text\" data-raqm-sidebar=\"menu-skeleton-text\" />',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-sidebar-menu-skeleton',\r\n 'data-raqm-slot': 'sidebar-menu-skeleton',\r\n 'data-raqm-sidebar': 'menu-skeleton',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class RaqmSidebarMenuSkeletonComponent {\r\n readonly showIcon = input(false, { transform: booleanAttribute });\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n afterNextRender,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { RAQM_SIDEBAR, RaqmSidebarContext } from './sidebar-context';\r\n\r\n/** Provider-scoped state; the shortcut toggles only this provider and cookies are write-only. */\r\n@Component({\r\n selector: 'raqm-sidebar-provider',\r\n exportAs: 'raqmSidebarProvider',\r\n template: '<ng-content />',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [{ provide: RAQM_SIDEBAR, useExisting: RaqmSidebarProviderComponent }],\r\n host: {\r\n class: 'raqm-sidebar-provider',\r\n 'data-raqm-slot': 'sidebar-wrapper',\r\n '(keydown)': 'onKeydown($event)',\r\n },\r\n})\r\nexport class RaqmSidebarProviderComponent implements RaqmSidebarContext {\r\n readonly defaultOpen = input(true, { transform: booleanAttribute });\r\n readonly openInput = input<boolean | undefined>(undefined, { alias: 'open' });\r\n readonly openMobileInput = input<boolean | undefined>(undefined, { alias: 'openMobile' });\r\n readonly openChange = output<boolean>();\r\n readonly openMobileChange = output<boolean>();\r\n private readonly desktop = signal<boolean | undefined>(undefined);\r\n private readonly mobileOpen = signal(false);\r\n private readonly mobileState = signal(false);\r\n readonly open = computed(() => this.openInput() ?? this.desktop() ?? this.defaultOpen());\r\n readonly openMobile = computed(() => this.openMobileInput() ?? this.mobileOpen());\r\n readonly mobile = this.mobileState.asReadonly();\r\n readonly state = computed(() => (this.open() ? ('expanded' as const) : ('collapsed' as const)));\r\n private readonly document = inject(DOCUMENT);\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly destroy = inject(DestroyRef);\r\n\r\n constructor() {\r\n afterNextRender(() => {\r\n const media = this.document.defaultView?.matchMedia('(max-width: 767px)');\r\n if (!media) return;\r\n const update = () => this.mobileState.set(media.matches);\r\n update();\r\n media.addEventListener('change', update);\r\n this.destroy.onDestroy(() => media.removeEventListener('change', update));\r\n });\r\n }\r\n setOpen(value: boolean | ((open: boolean) => boolean)): void {\r\n const next = typeof value === 'function' ? value(this.open()) : value;\r\n if (this.openInput() === undefined) this.desktop.set(next);\r\n this.openChange.emit(next);\r\n if (this.document.defaultView) {\r\n try {\r\n this.document.cookie = `sidebar_state=${next}; path=/; max-age=604800; SameSite=Lax`;\r\n } catch {\r\n /* Blocked storage must not break disclosure. */\r\n }\r\n }\r\n }\r\n setOpenMobile(value: boolean | ((open: boolean) => boolean)): void {\r\n const next = typeof value === 'function' ? value(this.openMobile()) : value;\r\n if (this.openMobileInput() === undefined) this.mobileOpen.set(next);\r\n this.openMobileChange.emit(next);\r\n }\r\n toggleSidebar(): void {\r\n if (this.mobile()) this.setOpenMobile((open) => !open);\r\n else this.setOpen((open) => !open);\r\n }\r\n protected onKeydown(event: KeyboardEvent): void {\r\n const target = event.target as HTMLElement | null;\r\n if (\r\n event.defaultPrevented ||\r\n event.repeat ||\r\n event.key.toLowerCase() !== 'b' ||\r\n !(event.metaKey || event.ctrlKey)\r\n )\r\n return;\r\n if (target?.closest('raqm-sidebar-provider') !== this.host.nativeElement) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.toggleSidebar();\r\n }\r\n}\r\n","// Public API for the `@raqm/ui/sidebar` entry point; the root entry re-exports these.\r\nimport { RaqmSidebarComponent } from './sidebar.component';\r\nimport {\r\n RaqmSidebarContentDirective,\r\n RaqmSidebarFooterDirective,\r\n RaqmSidebarGroupActionDirective,\r\n RaqmSidebarGroupContentDirective,\r\n RaqmSidebarGroupDirective,\r\n RaqmSidebarGroupLabelDirective,\r\n RaqmSidebarHeaderDirective,\r\n RaqmSidebarInputDirective,\r\n RaqmSidebarInsetDirective,\r\n RaqmSidebarMenuActionDirective,\r\n RaqmSidebarMenuBadgeDirective,\r\n RaqmSidebarMenuButtonComponent,\r\n RaqmSidebarMenuDirective,\r\n RaqmSidebarMenuItemDirective,\r\n RaqmSidebarMenuSkeletonComponent,\r\n RaqmSidebarMenuSubButtonDirective,\r\n RaqmSidebarMenuSubDirective,\r\n RaqmSidebarMenuSubItemDirective,\r\n RaqmSidebarRailDirective,\r\n RaqmSidebarSeparatorDirective,\r\n RaqmSidebarTriggerComponent,\r\n} from './sidebar-parts';\r\nimport { RaqmSidebarProviderComponent } from './sidebar-provider.component';\r\n\r\nexport { RAQM_SIDEBAR, type RaqmSidebarContext, useSidebar } from './sidebar-context';\r\nexport { RaqmSidebarProviderComponent } from './sidebar-provider.component';\r\nexport { RaqmSidebarComponent } from './sidebar.component';\r\nexport {\r\n RaqmSidebarHeaderDirective,\r\n RaqmSidebarFooterDirective,\r\n RaqmSidebarContentDirective,\r\n RaqmSidebarGroupDirective,\r\n RaqmSidebarGroupLabelDirective,\r\n RaqmSidebarGroupContentDirective,\r\n RaqmSidebarGroupActionDirective,\r\n RaqmSidebarMenuDirective,\r\n RaqmSidebarMenuItemDirective,\r\n RaqmSidebarMenuSubDirective,\r\n RaqmSidebarMenuSubItemDirective,\r\n RaqmSidebarMenuBadgeDirective,\r\n RaqmSidebarInsetDirective,\r\n RaqmSidebarInputDirective,\r\n RaqmSidebarSeparatorDirective,\r\n RaqmSidebarMenuActionDirective,\r\n RaqmSidebarMenuButtonComponent,\r\n RaqmSidebarMenuSubButtonDirective,\r\n RaqmSidebarTriggerComponent,\r\n RaqmSidebarRailDirective,\r\n RaqmSidebarMenuSkeletonComponent,\r\n} from './sidebar-parts';\r\nexport type { RaqmSidebarTooltip } from './sidebar-parts';\r\n\r\nexport const RaqmSidebar = [\r\n RaqmSidebarProviderComponent,\r\n RaqmSidebarComponent,\r\n RaqmSidebarTriggerComponent,\r\n RaqmSidebarRailDirective,\r\n RaqmSidebarInsetDirective,\r\n RaqmSidebarInputDirective,\r\n RaqmSidebarHeaderDirective,\r\n RaqmSidebarFooterDirective,\r\n RaqmSidebarSeparatorDirective,\r\n RaqmSidebarContentDirective,\r\n RaqmSidebarGroupDirective,\r\n RaqmSidebarGroupLabelDirective,\r\n RaqmSidebarGroupActionDirective,\r\n RaqmSidebarGroupContentDirective,\r\n RaqmSidebarMenuDirective,\r\n RaqmSidebarMenuItemDirective,\r\n RaqmSidebarMenuButtonComponent,\r\n RaqmSidebarMenuActionDirective,\r\n RaqmSidebarMenuBadgeDirective,\r\n RaqmSidebarMenuSkeletonComponent,\r\n RaqmSidebarMenuSubDirective,\r\n RaqmSidebarMenuSubItemDirective,\r\n RaqmSidebarMenuSubButtonDirective,\r\n] as const;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"raqm-ui-sidebar.mjs","names":[],"sources":["../../../projects/ui/sidebar/sidebar-context.ts","../../../projects/ui/sidebar/sidebar-mobile.component.ts","../../../projects/ui/dialog/dialog.component.html","../../../projects/ui/sidebar/sidebar.component.ts","../../../projects/ui/sidebar/sidebar.component.html","../../../projects/ui/sidebar/sidebar-parts.ts","../../../projects/ui/sidebar/sidebar-provider.component.ts","../../../projects/ui/sidebar/public-api.ts"],"sourcesContent":["import { InjectionToken, Signal, inject } from '@angular/core';\r\n\r\n/** Nearest provider's reactive state; readable only in an injection context. */\r\nexport interface RaqmSidebarContext {\r\n readonly open: Signal<boolean>;\r\n readonly openMobile: Signal<boolean>;\r\n readonly mobile: Signal<boolean>;\r\n readonly state: Signal<'expanded' | 'collapsed'>;\r\n setOpen(value: boolean | ((open: boolean) => boolean)): void;\r\n setOpenMobile(value: boolean | ((open: boolean) => boolean)): void;\r\n toggleSidebar(): void;\r\n}\r\nexport const RAQM_SIDEBAR = new InjectionToken<RaqmSidebarContext>('RaqmSidebar');\r\nexport function useSidebar(): RaqmSidebarContext {\r\n return inject(RAQM_SIDEBAR);\r\n}\r\n","import { ChangeDetectionStrategy, Component, signal } from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { RaqmButton } from '@raqm/ui/button';\r\nimport { RaqmSheetComponent } from '@raqm/ui/sheet';\r\nimport { RAQM_DIALOG, RAQM_DIALOG_POLICY, RaqmDialogPolicy } from '@raqm/ui/dialog';\r\n\r\n/** Internal Sheet specialization, sharing the shipped modal stack/focus lifecycle. */\r\n@Component({\r\n selector: 'raqm-sidebar-mobile',\r\n imports: [NgTemplateOutlet, RaqmButton],\r\n templateUrl: '../dialog/dialog.component.html',\r\n styleUrls: ['../dialog/dialog.component.scss', '../sheet/sheet.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: RAQM_DIALOG, useExisting: RaqmSidebarMobileComponent },\r\n {\r\n provide: RAQM_DIALOG_POLICY,\r\n useFactory: (): RaqmDialogPolicy => ({\r\n role: 'dialog',\r\n contentClass: 'raqm-sheet-content',\r\n touchOpening: signal(false),\r\n dismissOnBackdrop: true,\r\n side: signal('left'),\r\n paneClass: 'raqm-sheet-overlay-pane',\r\n backdropClass: 'raqm-sheet-overlay-backdrop',\r\n exitAnimationMs: 200,\r\n allowWithoutTrigger: true,\r\n }),\r\n },\r\n ],\r\n})\r\nexport class RaqmSidebarMobileComponent extends RaqmSheetComponent {}\r\n","<ng-content />\r\n\r\n<!-- The CDK container, not this wrapper, is the role=dialog element. -->\r\n<ng-template #panel>\r\n <div\r\n class=\"raqm-dialog-content\"\r\n [class]=\"policy?.contentClass ?? ''\"\r\n [attr.data-raqm-small]=\"policy?.small?.() ? '' : null\"\r\n [attr.data-raqm-side]=\"policy?.side?.() ?? null\"\r\n [attr.dir]=\"panelDir()\"\r\n [class.raqm-dialog-content--entering]=\"entering()\"\r\n [class.raqm-dialog-content--closing]=\"closing()\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"contentTemplate()\" />\r\n\r\n <!-- showCloseButton=false hides only this control; Escape and backdrop dismissal still close. -->\r\n @if (closeButtonVisible()) {\r\n <button\r\n raqm-button=\"ghost\"\r\n icon-small\r\n class=\"raqm-dialog-close\"\r\n [attr.aria-label]=\"closeLabelText()\"\r\n (click)=\"onCloseButtonClick()\"\r\n >\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n >\r\n <path d=\"M18 6 6 18\" />\r\n <path d=\"m6 6 12 12\" />\r\n </svg>\r\n </button>\r\n }\r\n </div>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, effect, input, isDevMode } from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n RaqmSheetContentDirective,\r\n RaqmSheetDescriptionDirective,\r\n RaqmSheetTitleDirective,\r\n} from '@raqm/ui/sheet';\r\nimport { useSidebar } from './sidebar-context';\r\nimport { RaqmSidebarMobileComponent } from './sidebar-mobile.component';\r\n\r\n@Component({\r\n imports: [\r\n NgTemplateOutlet,\r\n RaqmSidebarMobileComponent,\r\n RaqmSheetContentDirective,\r\n RaqmSheetTitleDirective,\r\n RaqmSheetDescriptionDirective,\r\n ],\r\n selector: 'raqm-sidebar',\r\n styleUrl: './sidebar.component.scss',\r\n templateUrl: './sidebar.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-sidebar',\r\n 'data-raqm-slot': 'sidebar',\r\n '[attr.data-raqm-state]': 'context.state()',\r\n '[attr.data-raqm-collapsible]': 'context.mobile() || context.open() ? \"\" : collapsible()',\r\n '[attr.data-raqm-variant]': 'variant()',\r\n '[attr.data-raqm-side]': 'side()',\r\n '[attr.data-raqm-mobile]': 'context.mobile() && collapsible() !== \"none\" ? \"true\" : null',\r\n '[attr.data-raqm-static]': 'collapsible() === \"none\" ? \"true\" : null',\r\n },\r\n})\r\nexport class RaqmSidebarComponent {\r\n readonly context = useSidebar();\r\n readonly side = input<'left' | 'right'>('left');\r\n readonly variant = input<'sidebar' | 'floating' | 'inset'>('sidebar');\r\n readonly collapsible = input<'offcanvas' | 'icon' | 'none'>('offcanvas');\r\n readonly dir = input<'ltr' | 'rtl' | undefined>(undefined);\r\n\r\n /** The mobile sheet's accessible name and visible title; application-supplied. */\r\n readonly label = input<string | undefined>(undefined);\r\n\r\n readonly description = input<string | undefined>(undefined);\r\n\r\n constructor() {\r\n effect(() => {\r\n if (isDevMode() && this.context.mobile() && this.collapsible() !== 'none' && !this.label()) {\r\n console.error('[raqm-sidebar] The mobile sheet has no accessible name. Provide `label`.');\r\n }\r\n });\r\n }\r\n\r\n protected onMobileKeydown(event: KeyboardEvent): void {\r\n if (\r\n !event.defaultPrevented &&\r\n !event.repeat &&\r\n event.key.toLowerCase() === 'b' &&\r\n (event.ctrlKey || event.metaKey)\r\n ) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.context.toggleSidebar();\r\n }\r\n }\r\n}\r\n","<ng-template #body><ng-content /></ng-template>\r\n@if (context.mobile() && collapsible() !== 'none') {\r\n <raqm-sidebar-mobile\r\n [open]=\"context.openMobile()\"\r\n (openChange)=\"context.setOpenMobile($event)\"\r\n [dir]=\"dir()\"\r\n [label]=\"label()\"\r\n panelClass=\"raqm-sidebar-mobile-pane\"\r\n [side]=\"side()\"\r\n [showCloseButton]=\"false\"\r\n >\r\n <ng-template raqm-sheet-content>\r\n <div\r\n class=\"raqm-sidebar-mobile-body\"\r\n data-raqm-slot=\"sidebar\"\r\n data-raqm-mobile=\"true\"\r\n [attr.dir]=\"dir()\"\r\n (keydown)=\"onMobileKeydown($event)\"\r\n >\r\n @if (label() || description()) {\r\n <div class=\"raqm-sidebar-sr-only\">\r\n @if (label()) {\r\n <h2 raqm-sheet-title>{{ label() }}</h2>\r\n }\r\n @if (description()) {\r\n <p raqm-sheet-description>{{ description() }}</p>\r\n }\r\n </div>\r\n }\r\n <ng-container [ngTemplateOutlet]=\"body\" />\r\n </div>\r\n </ng-template>\r\n </raqm-sidebar-mobile>\r\n} @else {\r\n <div class=\"raqm-sidebar-gap\" data-raqm-slot=\"sidebar-gap\"></div>\r\n <div\r\n class=\"raqm-sidebar-container\"\r\n data-raqm-slot=\"sidebar-container\"\r\n [attr.data-raqm-side]=\"side()\"\r\n [attr.dir]=\"dir()\"\r\n >\r\n <div\r\n class=\"raqm-sidebar-inner\"\r\n data-raqm-slot=\"sidebar-inner\"\r\n [attr.inert]=\"!context.open() && collapsible() === 'offcanvas' ? '' : null\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"body\" />\r\n </div>\r\n <ng-content select=\"[raqm-sidebar-rail]\" />\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n ElementRef,\r\n afterNextRender,\r\n booleanAttribute,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n isDevMode,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { RaqmInput } from '@raqm/ui/input';\r\nimport { RaqmSkeleton } from '@raqm/ui/skeleton';\r\nimport { RaqmTooltip, RaqmTooltipComponent, RaqmTooltipTriggerRef } from '@raqm/ui/tooltip';\r\nimport { useSidebar } from './sidebar-context';\r\n\r\n@Directive({\r\n selector: '[raqm-sidebar-header]',\r\n host: {\r\n class: 'raqm-sidebar-header',\r\n 'data-raqm-slot': 'sidebar-header',\r\n 'data-raqm-sidebar': 'header',\r\n },\r\n})\r\nexport class RaqmSidebarHeaderDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-footer]',\r\n host: {\r\n class: 'raqm-sidebar-footer',\r\n 'data-raqm-slot': 'sidebar-footer',\r\n 'data-raqm-sidebar': 'footer',\r\n },\r\n})\r\nexport class RaqmSidebarFooterDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-content]',\r\n host: {\r\n class: 'raqm-sidebar-content',\r\n 'data-raqm-slot': 'sidebar-content',\r\n 'data-raqm-sidebar': 'content',\r\n },\r\n})\r\nexport class RaqmSidebarContentDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-group]',\r\n host: {\r\n class: 'raqm-sidebar-group',\r\n 'data-raqm-slot': 'sidebar-group',\r\n 'data-raqm-sidebar': 'group',\r\n },\r\n})\r\nexport class RaqmSidebarGroupDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-group-label]',\r\n host: {\r\n class: 'raqm-sidebar-group-label',\r\n 'data-raqm-slot': 'sidebar-group-label',\r\n 'data-raqm-sidebar': 'group-label',\r\n },\r\n})\r\nexport class RaqmSidebarGroupLabelDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-group-content]',\r\n host: {\r\n class: 'raqm-sidebar-group-content',\r\n 'data-raqm-slot': 'sidebar-group-content',\r\n 'data-raqm-sidebar': 'group-content',\r\n },\r\n})\r\nexport class RaqmSidebarGroupContentDirective {}\r\n@Directive({\r\n selector: 'button[raqm-sidebar-group-action]',\r\n host: {\r\n class: 'raqm-sidebar-group-action',\r\n 'data-raqm-slot': 'sidebar-group-action',\r\n 'data-raqm-sidebar': 'group-action',\r\n },\r\n})\r\nexport class RaqmSidebarGroupActionDirective {\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n }\r\n}\r\n@Directive({\r\n selector: 'ul[raqm-sidebar-menu]',\r\n host: {\r\n class: 'raqm-sidebar-menu',\r\n 'data-raqm-slot': 'sidebar-menu',\r\n 'data-raqm-sidebar': 'menu',\r\n },\r\n})\r\nexport class RaqmSidebarMenuDirective {}\r\n@Directive({\r\n selector: 'li[raqm-sidebar-menu-item]',\r\n host: {\r\n class: 'raqm-sidebar-menu-item',\r\n 'data-raqm-slot': 'sidebar-menu-item',\r\n 'data-raqm-sidebar': 'menu-item',\r\n },\r\n})\r\nexport class RaqmSidebarMenuItemDirective {}\r\n@Directive({\r\n selector: 'ul[raqm-sidebar-menu-sub]',\r\n host: {\r\n class: 'raqm-sidebar-menu-sub',\r\n 'data-raqm-slot': 'sidebar-menu-sub',\r\n 'data-raqm-sidebar': 'menu-sub',\r\n },\r\n})\r\nexport class RaqmSidebarMenuSubDirective {}\r\n@Directive({\r\n selector: 'li[raqm-sidebar-menu-sub-item]',\r\n host: {\r\n class: 'raqm-sidebar-menu-sub-item',\r\n 'data-raqm-slot': 'sidebar-menu-sub-item',\r\n 'data-raqm-sidebar': 'menu-sub-item',\r\n },\r\n})\r\nexport class RaqmSidebarMenuSubItemDirective {}\r\n@Directive({\r\n selector: '[raqm-sidebar-menu-badge]',\r\n host: {\r\n class: 'raqm-sidebar-menu-badge',\r\n 'data-raqm-slot': 'sidebar-menu-badge',\r\n 'data-raqm-sidebar': 'menu-badge',\r\n },\r\n})\r\nexport class RaqmSidebarMenuBadgeDirective {}\r\n@Directive({\r\n selector: 'main[raqm-sidebar-inset]',\r\n host: { class: 'raqm-sidebar-inset', 'data-raqm-slot': 'sidebar-inset' },\r\n})\r\nexport class RaqmSidebarInsetDirective {}\r\n@Directive({\r\n selector: 'input[raqm-sidebar-input]',\r\n hostDirectives: [RaqmInput],\r\n host: {\r\n class: 'raqm-sidebar-input',\r\n 'data-raqm-slot': 'sidebar-input',\r\n 'data-raqm-sidebar': 'input',\r\n },\r\n})\r\nexport class RaqmSidebarInputDirective {}\r\n/** Separator part; keeps the shipped raqm-separator's semantic orientation. */\r\n@Directive({\r\n selector: 'raqm-separator[raqm-sidebar-separator]',\r\n host: {\r\n class: 'raqm-sidebar-separator',\r\n 'data-raqm-slot': 'sidebar-separator',\r\n 'data-raqm-sidebar': 'separator',\r\n },\r\n})\r\nexport class RaqmSidebarSeparatorDirective {}\r\n\r\n@Directive({\r\n selector: 'button[raqm-sidebar-menu-action]',\r\n host: {\r\n class: 'raqm-sidebar-menu-action',\r\n 'data-raqm-slot': 'sidebar-menu-action',\r\n 'data-raqm-sidebar': 'menu-action',\r\n '[attr.data-raqm-show-on-hover]': 'showOnHover() ? \"true\" : null',\r\n },\r\n})\r\nexport class RaqmSidebarMenuActionDirective {\r\n readonly showOnHover = input(false, { transform: booleanAttribute });\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n }\r\n}\r\n\r\n/** Native button/anchor host; routerLink and menu directives compose on it directly. */\r\n@Component({\r\n selector: 'button[raqm-sidebar-menu-button], a[raqm-sidebar-menu-button]',\r\n imports: [RaqmTooltip],\r\n template:\r\n '<ng-content /><raqm-tooltip [disabled]=\"!showTooltip()\" [side]=\"tooltipSide()\" [align]=\"tooltipAlign()\" [sideOffset]=\"tooltipOffset()\"><ng-template raqm-tooltip-content>{{ tooltipText() }}</ng-template></raqm-tooltip>',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-sidebar-menu-button',\r\n 'data-raqm-slot': 'sidebar-menu-button',\r\n 'data-raqm-sidebar': 'menu-button',\r\n '[attr.data-raqm-size]': 'activeSize()',\r\n '[attr.data-raqm-variant]': 'activeVariant()',\r\n '[attr.data-raqm-active]': 'active() ? \"true\" : null',\r\n '(pointerenter)': 'pointer($event, true)',\r\n '(pointerleave)': 'pointer($event, false)',\r\n '(focus)': 'focus(true)',\r\n '(blur)': 'focus(false)',\r\n '(pointerdown)': 'dismiss()',\r\n '(click)': 'dismiss()',\r\n '(keydown.escape)': 'dismiss()',\r\n },\r\n})\r\nexport class RaqmSidebarMenuButtonComponent {\r\n /** Bare or empty marker uses the default appearance. */\r\n readonly appearance = input<'' | 'default' | 'outline'>('', {\r\n alias: 'raqm-sidebar-menu-button',\r\n });\r\n readonly small = input(false, { transform: booleanAttribute });\r\n readonly large = input(false, { transform: booleanAttribute });\r\n readonly active = input(false, { transform: booleanAttribute });\r\n protected readonly activeVariant = computed(() => this.appearance() || 'default');\r\n protected readonly activeSize = computed<'sm' | 'lg' | null>(() => {\r\n if (this.small() && this.large()) {\r\n throw new Error('RaqmSidebarMenuButton: use only one size attribute per button.');\r\n }\r\n return this.small() ? 'sm' : this.large() ? 'lg' : null;\r\n });\r\n readonly tooltip = input<string | RaqmSidebarTooltip | undefined>(undefined);\r\n private readonly context = useSidebar();\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\r\n private readonly tip = viewChild(RaqmTooltipComponent);\r\n protected readonly tooltipText = computed(() => {\r\n const tip = this.tooltip();\r\n return typeof tip === 'string' ? tip : (tip?.text ?? '');\r\n });\r\n protected readonly tooltipSide = computed(() => {\r\n const tip = this.tooltip();\r\n return typeof tip === 'object' ? (tip.side ?? 'right') : 'right';\r\n });\r\n protected readonly tooltipAlign = computed(() => {\r\n const tip = this.tooltip();\r\n return typeof tip === 'object' ? (tip.align ?? 'center') : 'center';\r\n });\r\n protected readonly tooltipOffset = computed(() => {\r\n const tip = this.tooltip();\r\n return typeof tip === 'object' ? (tip.sideOffset ?? 4) : 4;\r\n });\r\n protected readonly showTooltip = computed(() => {\r\n const tip = this.tooltip();\r\n return (\r\n !!this.tooltipText() &&\r\n this.context.state() === 'collapsed' &&\r\n !this.context.mobile() &&\r\n !(typeof tip === 'object' && tip.hidden)\r\n );\r\n });\r\n private readonly ref: RaqmTooltipTriggerRef = {\r\n element: this.host,\r\n get disabled() {\r\n return (\r\n (this.element as HTMLButtonElement).disabled ||\r\n this.element.getAttribute('aria-disabled') === 'true'\r\n );\r\n },\r\n };\r\n constructor() {\r\n if (this.host.tagName === 'BUTTON' && !this.host.hasAttribute('type'))\r\n this.host.setAttribute('type', 'button');\r\n effect((onCleanup) => {\r\n const tip = this.tip();\r\n untracked(() => tip?.registerTrigger(this.ref));\r\n onCleanup(() => untracked(() => tip?.unregisterTrigger(this.ref)));\r\n });\r\n effect((onCleanup) => {\r\n const tip = this.tip();\r\n const id = tip?.open() ? tip.tooltipId() : null;\r\n if (!id) return;\r\n const tokens = new Set(\r\n (this.host.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter(Boolean),\r\n );\r\n tokens.add(id);\r\n this.host.setAttribute('aria-describedby', [...tokens].join(' '));\r\n onCleanup(() => {\r\n const remaining = (this.host.getAttribute('aria-describedby') ?? '')\r\n .split(/\\s+/)\r\n .filter((token) => token && token !== id);\r\n if (remaining.length) this.host.setAttribute('aria-describedby', remaining.join(' '));\r\n else this.host.removeAttribute('aria-describedby');\r\n });\r\n });\r\n }\r\n protected pointer(event: Event, entering: boolean): void {\r\n if ((event as PointerEvent).pointerType !== 'mouse') return;\r\n if (entering) this.tip()?.requestOpen(this.ref, 'mouse');\r\n else this.tip()?.requestClose(this.ref, 'mouse');\r\n }\r\n protected focus(entering: boolean): void {\r\n if (entering) this.tip()?.requestOpen(this.ref, 'focus');\r\n else this.tip()?.requestClose(this.ref, 'focus');\r\n }\r\n protected dismiss(): void {\r\n this.tip()?.requestClose(this.ref, 'press');\r\n }\r\n}\r\n\r\nexport interface RaqmSidebarTooltip {\r\n text: string;\r\n side?: 'top' | 'right' | 'bottom' | 'left';\r\n align?: 'start' | 'center' | 'end';\r\n sideOffset?: number;\r\n hidden?: boolean;\r\n}\r\n\r\n@Directive({\r\n selector: 'a[raqm-sidebar-menu-sub-button], button[raqm-sidebar-menu-sub-button]',\r\n host: {\r\n class: 'raqm-sidebar-menu-sub-button',\r\n 'data-raqm-slot': 'sidebar-menu-sub-button',\r\n 'data-raqm-sidebar': 'menu-sub-button',\r\n '[attr.data-raqm-size]': 'small() ? \"sm\" : null',\r\n '[attr.data-raqm-active]': 'active() ? \"true\" : null',\r\n },\r\n})\r\nexport class RaqmSidebarMenuSubButtonDirective {\r\n readonly small = input(false, { transform: booleanAttribute });\r\n readonly active = input(false, { transform: booleanAttribute });\r\n constructor() {\r\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\r\n if (host.tagName === 'BUTTON' && !host.hasAttribute('type'))\r\n host.setAttribute('type', 'button');\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'button[raqm-sidebar-trigger]',\r\n template:\r\n '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"/><path d=\"M9 3v18\"/></svg>',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-sidebar-trigger raqm-button',\r\n 'data-raqm-slot': 'sidebar-trigger',\r\n 'data-raqm-sidebar': 'trigger',\r\n 'data-raqm-variant': 'ghost',\r\n 'data-raqm-size': 'icon-sm',\r\n '(click)': 'toggle($event)',\r\n },\r\n})\r\nexport class RaqmSidebarTriggerComponent {\r\n private readonly context = useSidebar();\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n afterNextRender(() => {\r\n if (isDevMode() && !host.hasAttribute('aria-label')) {\r\n console.error('[raqm-sidebar] The trigger has no accessible name. Provide `aria-label`.');\r\n }\r\n });\r\n }\r\n protected toggle(event: MouseEvent): void {\r\n if (!event.defaultPrevented) this.context.toggleSidebar();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'button[raqm-sidebar-rail]',\r\n host: {\r\n class: 'raqm-sidebar-rail',\r\n tabindex: '-1',\r\n 'data-raqm-slot': 'sidebar-rail',\r\n 'data-raqm-sidebar': 'rail',\r\n '(click)': 'context.toggleSidebar()',\r\n },\r\n})\r\nexport class RaqmSidebarRailDirective {\r\n protected readonly context = useSidebar();\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n afterNextRender(() => {\r\n if (isDevMode() && !host.hasAttribute('aria-label')) {\r\n console.error('[raqm-sidebar] The rail has no accessible name. Provide `aria-label`.');\r\n }\r\n });\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'raqm-sidebar-menu-skeleton',\r\n imports: [RaqmSkeleton],\r\n template:\r\n '@if (showIcon()) { <raqm-skeleton class=\"raqm-sidebar-menu-skeleton-icon\" data-raqm-sidebar=\"menu-skeleton-icon\" /> }<raqm-skeleton class=\"raqm-sidebar-menu-skeleton-text\" data-raqm-sidebar=\"menu-skeleton-text\" />',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-sidebar-menu-skeleton',\r\n 'data-raqm-slot': 'sidebar-menu-skeleton',\r\n 'data-raqm-sidebar': 'menu-skeleton',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class RaqmSidebarMenuSkeletonComponent {\r\n readonly showIcon = input(false, { transform: booleanAttribute });\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n afterNextRender,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { RAQM_SIDEBAR, RaqmSidebarContext } from './sidebar-context';\r\n\r\n/** Provider-scoped state; the shortcut toggles only this provider and cookies are write-only. */\r\n@Component({\r\n selector: 'raqm-sidebar-provider',\r\n exportAs: 'raqmSidebarProvider',\r\n template: '<ng-content />',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [{ provide: RAQM_SIDEBAR, useExisting: RaqmSidebarProviderComponent }],\r\n host: {\r\n class: 'raqm-sidebar-provider',\r\n 'data-raqm-slot': 'sidebar-wrapper',\r\n '(keydown)': 'onKeydown($event)',\r\n },\r\n})\r\nexport class RaqmSidebarProviderComponent implements RaqmSidebarContext {\r\n readonly defaultOpen = input(true, { transform: booleanAttribute });\r\n readonly openInput = input<boolean | undefined>(undefined, { alias: 'open' });\r\n readonly openMobileInput = input<boolean | undefined>(undefined, { alias: 'openMobile' });\r\n readonly openChange = output<boolean>();\r\n readonly openMobileChange = output<boolean>();\r\n private readonly desktop = signal<boolean | undefined>(undefined);\r\n private readonly mobileOpen = signal(false);\r\n private readonly mobileState = signal(false);\r\n readonly open = computed(() => this.openInput() ?? this.desktop() ?? this.defaultOpen());\r\n readonly openMobile = computed(() => this.openMobileInput() ?? this.mobileOpen());\r\n readonly mobile = this.mobileState.asReadonly();\r\n readonly state = computed(() => (this.open() ? ('expanded' as const) : ('collapsed' as const)));\r\n private readonly document = inject(DOCUMENT);\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly destroy = inject(DestroyRef);\r\n\r\n constructor() {\r\n afterNextRender(() => {\r\n const media = this.document.defaultView?.matchMedia('(max-width: 767px)');\r\n if (!media) return;\r\n const update = () => this.mobileState.set(media.matches);\r\n update();\r\n media.addEventListener('change', update);\r\n this.destroy.onDestroy(() => media.removeEventListener('change', update));\r\n });\r\n }\r\n setOpen(value: boolean | ((open: boolean) => boolean)): void {\r\n const next = typeof value === 'function' ? value(this.open()) : value;\r\n if (this.openInput() === undefined) this.desktop.set(next);\r\n this.openChange.emit(next);\r\n if (this.document.defaultView) {\r\n try {\r\n this.document.cookie = `sidebar_state=${next}; path=/; max-age=604800; SameSite=Lax`;\r\n } catch {\r\n /* Blocked storage must not break disclosure. */\r\n }\r\n }\r\n }\r\n setOpenMobile(value: boolean | ((open: boolean) => boolean)): void {\r\n const next = typeof value === 'function' ? value(this.openMobile()) : value;\r\n if (this.openMobileInput() === undefined) this.mobileOpen.set(next);\r\n this.openMobileChange.emit(next);\r\n }\r\n toggleSidebar(): void {\r\n if (this.mobile()) this.setOpenMobile((open) => !open);\r\n else this.setOpen((open) => !open);\r\n }\r\n protected onKeydown(event: KeyboardEvent): void {\r\n const target = event.target as HTMLElement | null;\r\n if (\r\n event.defaultPrevented ||\r\n event.repeat ||\r\n event.key.toLowerCase() !== 'b' ||\r\n !(event.metaKey || event.ctrlKey)\r\n )\r\n return;\r\n if (target?.closest('raqm-sidebar-provider') !== this.host.nativeElement) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.toggleSidebar();\r\n }\r\n}\r\n","// Public API for the `@raqm/ui/sidebar` entry point; the root entry re-exports these.\r\nimport { RaqmSidebarComponent } from './sidebar.component';\r\nimport {\r\n RaqmSidebarContentDirective,\r\n RaqmSidebarFooterDirective,\r\n RaqmSidebarGroupActionDirective,\r\n RaqmSidebarGroupContentDirective,\r\n RaqmSidebarGroupDirective,\r\n RaqmSidebarGroupLabelDirective,\r\n RaqmSidebarHeaderDirective,\r\n RaqmSidebarInputDirective,\r\n RaqmSidebarInsetDirective,\r\n RaqmSidebarMenuActionDirective,\r\n RaqmSidebarMenuBadgeDirective,\r\n RaqmSidebarMenuButtonComponent,\r\n RaqmSidebarMenuDirective,\r\n RaqmSidebarMenuItemDirective,\r\n RaqmSidebarMenuSkeletonComponent,\r\n RaqmSidebarMenuSubButtonDirective,\r\n RaqmSidebarMenuSubDirective,\r\n RaqmSidebarMenuSubItemDirective,\r\n RaqmSidebarRailDirective,\r\n RaqmSidebarSeparatorDirective,\r\n RaqmSidebarTriggerComponent,\r\n} from './sidebar-parts';\r\nimport { RaqmSidebarProviderComponent } from './sidebar-provider.component';\r\n\r\nexport { RAQM_SIDEBAR, type RaqmSidebarContext, useSidebar } from './sidebar-context';\r\nexport { RaqmSidebarProviderComponent } from './sidebar-provider.component';\r\nexport { RaqmSidebarComponent } from './sidebar.component';\r\nexport {\r\n RaqmSidebarHeaderDirective,\r\n RaqmSidebarFooterDirective,\r\n RaqmSidebarContentDirective,\r\n RaqmSidebarGroupDirective,\r\n RaqmSidebarGroupLabelDirective,\r\n RaqmSidebarGroupContentDirective,\r\n RaqmSidebarGroupActionDirective,\r\n RaqmSidebarMenuDirective,\r\n RaqmSidebarMenuItemDirective,\r\n RaqmSidebarMenuSubDirective,\r\n RaqmSidebarMenuSubItemDirective,\r\n RaqmSidebarMenuBadgeDirective,\r\n RaqmSidebarInsetDirective,\r\n RaqmSidebarInputDirective,\r\n RaqmSidebarSeparatorDirective,\r\n RaqmSidebarMenuActionDirective,\r\n RaqmSidebarMenuButtonComponent,\r\n RaqmSidebarMenuSubButtonDirective,\r\n RaqmSidebarTriggerComponent,\r\n RaqmSidebarRailDirective,\r\n RaqmSidebarMenuSkeletonComponent,\r\n} from './sidebar-parts';\r\nexport type { RaqmSidebarTooltip } from './sidebar-parts';\r\n\r\nexport const RaqmSidebar = [\r\n RaqmSidebarProviderComponent,\r\n RaqmSidebarComponent,\r\n RaqmSidebarTriggerComponent,\r\n RaqmSidebarRailDirective,\r\n RaqmSidebarInsetDirective,\r\n RaqmSidebarInputDirective,\r\n RaqmSidebarHeaderDirective,\r\n RaqmSidebarFooterDirective,\r\n RaqmSidebarSeparatorDirective,\r\n RaqmSidebarContentDirective,\r\n RaqmSidebarGroupDirective,\r\n RaqmSidebarGroupLabelDirective,\r\n RaqmSidebarGroupActionDirective,\r\n RaqmSidebarGroupContentDirective,\r\n RaqmSidebarMenuDirective,\r\n RaqmSidebarMenuItemDirective,\r\n RaqmSidebarMenuButtonComponent,\r\n RaqmSidebarMenuActionDirective,\r\n RaqmSidebarMenuBadgeDirective,\r\n RaqmSidebarMenuSkeletonComponent,\r\n RaqmSidebarMenuSubDirective,\r\n RaqmSidebarMenuSubItemDirective,\r\n RaqmSidebarMenuSubButtonDirective,\r\n] as const;\r\n"],"mappings":"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"}
|
|
@@ -593,7 +593,7 @@ var RaqmToastIconComponent = class RaqmToastIconComponent {
|
|
|
593
593
|
classAttribute: "raqm-toast-icon"
|
|
594
594
|
},
|
|
595
595
|
ngImport: i0,
|
|
596
|
-
template: "@if (type()) {\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n focusable=\"false\"\n >\n @switch (type()) {\n @case ('success') {\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n }\n @case ('info') {\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4M12 8h.01\" />\n }\n @case ('warning') {\n <path\n d=\"m10.3 3.9-8.1 14A2 2 0 0 0 3.9 21h16.2a2 2 0 0 0 1.7-3.1l-8.1-14a2 2 0 0 0-3.4 0ZM12 9v4M12 17h.01\"\n />\n }\n @case ('error') {\n <path d=\"m7.86 2-5.86 5.86v8.28l5.86 5.86h8.28l5.86-5.86V7.86L16.14 2ZM9 9l6 6M15 9l-6 6\" />\n }\n @case ('loading') {\n <path d=\"M12 2a10 10 0 1 1-7.07 2.93\" />\n }\n }\n </svg>\n}\n",
|
|
596
|
+
template: "@if (type()) {\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n width=\"16\"\r\n height=\"16\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n focusable=\"false\"\r\n >\r\n @switch (type()) {\r\n @case ('success') {\r\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\r\n <path d=\"m9 12 2 2 4-4\" />\r\n }\r\n @case ('info') {\r\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\r\n <path d=\"M12 16v-4M12 8h.01\" />\r\n }\r\n @case ('warning') {\r\n <path\r\n d=\"m10.3 3.9-8.1 14A2 2 0 0 0 3.9 21h16.2a2 2 0 0 0 1.7-3.1l-8.1-14a2 2 0 0 0-3.4 0ZM12 9v4M12 17h.01\"\r\n />\r\n }\r\n @case ('error') {\r\n <path d=\"m7.86 2-5.86 5.86v8.28l5.86 5.86h8.28l5.86-5.86V7.86L16.14 2ZM9 9l6 6M15 9l-6 6\" />\r\n }\r\n @case ('loading') {\r\n <path d=\"M12 2a10 10 0 1 1-7.07 2.93\" />\r\n }\r\n }\r\n </svg>\r\n}\r\n",
|
|
597
597
|
styles: [""],
|
|
598
598
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
599
599
|
});
|
|
@@ -613,7 +613,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
613
613
|
"aria-hidden": "true",
|
|
614
614
|
"[attr.data-raqm-type]": "type()"
|
|
615
615
|
},
|
|
616
|
-
template: "@if (type()) {\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n focusable=\"false\"\n >\n @switch (type()) {\n @case ('success') {\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n }\n @case ('info') {\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4M12 8h.01\" />\n }\n @case ('warning') {\n <path\n d=\"m10.3 3.9-8.1 14A2 2 0 0 0 3.9 21h16.2a2 2 0 0 0 1.7-3.1l-8.1-14a2 2 0 0 0-3.4 0ZM12 9v4M12 17h.01\"\n />\n }\n @case ('error') {\n <path d=\"m7.86 2-5.86 5.86v8.28l5.86 5.86h8.28l5.86-5.86V7.86L16.14 2ZM9 9l6 6M15 9l-6 6\" />\n }\n @case ('loading') {\n <path d=\"M12 2a10 10 0 1 1-7.07 2.93\" />\n }\n }\n </svg>\n}\n"
|
|
616
|
+
template: "@if (type()) {\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n width=\"16\"\r\n height=\"16\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n focusable=\"false\"\r\n >\r\n @switch (type()) {\r\n @case ('success') {\r\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\r\n <path d=\"m9 12 2 2 4-4\" />\r\n }\r\n @case ('info') {\r\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\r\n <path d=\"M12 16v-4M12 8h.01\" />\r\n }\r\n @case ('warning') {\r\n <path\r\n d=\"m10.3 3.9-8.1 14A2 2 0 0 0 3.9 21h16.2a2 2 0 0 0 1.7-3.1l-8.1-14a2 2 0 0 0-3.4 0ZM12 9v4M12 17h.01\"\r\n />\r\n }\r\n @case ('error') {\r\n <path d=\"m7.86 2-5.86 5.86v8.28l5.86 5.86h8.28l5.86-5.86V7.86L16.14 2ZM9 9l6 6M15 9l-6 6\" />\r\n }\r\n @case ('loading') {\r\n <path d=\"M12 2a10 10 0 1 1-7.07 2.93\" />\r\n }\r\n }\r\n </svg>\r\n}\r\n"
|
|
617
617
|
}]
|
|
618
618
|
}],
|
|
619
619
|
propDecorators: { type: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raqm-ui-toast.mjs","names":[],"sources":["../../../projects/ui/toast/toast.service.ts","../../../projects/ui/toast/toast.component.ts","../../../projects/ui/toast/toast-icon.component.html","../../../projects/ui/toast/toaster.component.ts","../../../projects/ui/toast/toaster.component.html","../../../projects/ui/toast/public-api.ts"],"sourcesContent":["import {\r\n DOCUMENT,\r\n Injectable,\r\n OnDestroy,\r\n PLATFORM_ID,\r\n computed,\r\n inject,\r\n signal,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\nexport type RaqmToastId = string;\r\nexport type RaqmToastType = 'success' | 'info' | 'warning' | 'error' | 'loading';\r\n/** Native action; its callback explicitly owns dismissal. */\r\nexport interface RaqmToastActionOptions {\r\n readonly label: string;\r\n readonly onClick: (id: RaqmToastId, event: MouseEvent) => void;\r\n readonly disabled?: boolean;\r\n}\r\n/** Text notification options; a timeout of 0 disables automatic dismissal. */\r\nexport interface RaqmToastOptions {\r\n readonly id?: RaqmToastId;\r\n readonly title?: string;\r\n readonly description?: string;\r\n readonly type?: RaqmToastType;\r\n readonly timeout?: number;\r\n readonly action?: RaqmToastActionOptions;\r\n readonly onClose?: () => void;\r\n}\r\n/** Immutable notification state; updates preserve its id and increment updateKey. */\r\nexport interface RaqmToastRecord extends Omit<RaqmToastOptions, 'id' | 'timeout'> {\r\n readonly id: RaqmToastId;\r\n readonly timeout: number;\r\n readonly updateKey: number;\r\n readonly ending?: boolean;\r\n}\r\ninterface ToastClock {\r\n remaining: number;\r\n started: number;\r\n timer?: ReturnType<typeof setTimeout>;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RaqmToastService implements OnDestroy {\r\n private readonly browser = isPlatformBrowser(inject(PLATFORM_ID));\r\n private readonly records = signal<readonly RaqmToastRecord[]>([]);\r\n private readonly clocks = new Map<RaqmToastId, ToastClock>();\r\n private readonly document = inject(DOCUMENT);\r\n private readonly exits = new Map<RaqmToastId, ReturnType<typeof setTimeout>>();\r\n private owner: object | null = null;\r\n private paused = false;\r\n private nextId = 0;\r\n private destroyed = false;\r\n /** Newest first; older records queue behind the visible three. */\r\n readonly toasts = this.records.asReadonly();\r\n readonly visibleToasts = computed(() =>\r\n this.toasts()\r\n .filter((t) => !t.ending)\r\n .slice(0, 3),\r\n );\r\n /** Visible roots plus retained, inert roots finishing the exit. */\r\n readonly renderedToasts = computed(() => {\r\n const visible = new Set(this.visibleToasts().map((t) => t.id));\r\n return this.toasts().filter((t) => t.ending || visible.has(t.id));\r\n });\r\n\r\n /** Adds a notification, or upserts an existing explicit id without duplication. */\r\n show(options: RaqmToastOptions): RaqmToastId {\r\n const id = options.id ?? this.createId();\r\n if (this.destroyed) return id;\r\n if (this.records().some((toast) => toast.id === id)) {\r\n this.update(id, options);\r\n return id;\r\n }\r\n const toast = { ...options, id, timeout: this.timeout(options.timeout), updateKey: 0 };\r\n this.records.update((records) => [toast, ...records]);\r\n this.clocks.set(id, { remaining: toast.timeout, started: 0 });\r\n this.syncClocks();\r\n return id;\r\n }\r\n success(options: Omit<RaqmToastOptions, 'type'>): RaqmToastId {\r\n return this.show({ ...options, type: 'success' });\r\n }\r\n error(options: Omit<RaqmToastOptions, 'type'>): RaqmToastId {\r\n return this.show({ ...options, type: 'error' });\r\n }\r\n /** Updates one id for loading → success/error workflows; dismissed ids stay dismissed. */\r\n update(id: RaqmToastId, options: Partial<Omit<RaqmToastOptions, 'id'>>): void {\r\n const previous = this.records().find((toast) => toast.id === id);\r\n if (!previous || previous.ending) return;\r\n const timeout = this.timeout(options.timeout ?? previous.timeout);\r\n this.stopClock(id);\r\n this.records.update((records) =>\r\n records.map((toast) =>\r\n toast.id === id\r\n ? { ...toast, ...options, id, timeout, updateKey: toast.updateKey + 1 }\r\n : toast,\r\n ),\r\n );\r\n this.clocks.set(id, { remaining: timeout, started: 0 });\r\n this.syncClocks();\r\n }\r\n /** Dismisses one notification, or all notifications when no id is supplied. */\r\n dismiss(id?: RaqmToastId): void {\r\n const visible = new Set(this.visibleToasts().map((t) => t.id));\r\n const removed = this.records().filter(\r\n (toast) => !toast.ending && (id === undefined || toast.id === id),\r\n );\r\n const animate =\r\n this.browser &&\r\n this.owner !== null &&\r\n !this.document.defaultView?.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n for (const toast of removed) {\r\n this.stopClock(toast.id);\r\n this.clocks.delete(toast.id);\r\n }\r\n this.records.update((records) =>\r\n records.flatMap((toast) =>\r\n !removed.includes(toast)\r\n ? [toast]\r\n : animate && visible.has(toast.id)\r\n ? [{ ...toast, ending: true }]\r\n : [],\r\n ),\r\n );\r\n for (const toast of removed) {\r\n if (animate && visible.has(toast.id))\r\n this.exits.set(\r\n toast.id,\r\n setTimeout(() => {\r\n this.exits.delete(toast.id);\r\n this.records.update((records) => records.filter((record) => record.id !== toast.id));\r\n }, 500),\r\n );\r\n }\r\n this.syncClocks();\r\n for (const toast of removed) toast.onClose?.();\r\n }\r\n /** Internal host ownership guard: duplicate hosts never create duplicate overlays. */\r\n claimViewport(owner: object): boolean {\r\n if (this.owner !== null && this.owner !== owner) return false;\r\n this.owner = owner;\r\n this.syncClocks();\r\n return true;\r\n }\r\n releaseViewport(owner: object): void {\r\n if (this.owner !== owner) return;\r\n this.owner = null;\r\n for (const timer of this.exits.values()) clearTimeout(timer);\r\n this.exits.clear();\r\n this.records.update((records) => records.filter((t) => !t.ending));\r\n this.paused = false;\r\n this.syncClocks();\r\n }\r\n pauseViewport(owner: object, paused: boolean): void {\r\n if (this.owner !== owner) return;\r\n this.paused = paused;\r\n this.syncClocks();\r\n }\r\n ngOnDestroy(): void {\r\n this.destroyed = true;\r\n for (const id of this.clocks.keys()) this.stopClock(id);\r\n this.clocks.clear();\r\n for (const timer of this.exits.values()) clearTimeout(timer);\r\n this.exits.clear();\r\n this.records.set([]);\r\n this.owner = null;\r\n }\r\n private timeout(value = 5000): number {\r\n return Number.isFinite(value) ? Math.max(0, Math.min(value, 2147483647)) : 5000;\r\n }\r\n private createId(): string {\r\n let id: string;\r\n do {\r\n id = `raqm-toast-${++this.nextId}`;\r\n } while (this.records().some((toast) => toast.id === id));\r\n return id;\r\n }\r\n private stopClock(id: RaqmToastId): void {\r\n const clock = this.clocks.get(id);\r\n if (clock?.timer !== undefined) {\r\n clearTimeout(clock.timer);\r\n clock.timer = undefined;\r\n clock.remaining = Math.max(0, clock.remaining - (Date.now() - clock.started));\r\n }\r\n }\r\n private syncClocks(): void {\r\n const visible = new Set(this.visibleToasts().map((toast) => toast.id));\r\n for (const [id, clock] of this.clocks) {\r\n if (!this.browser || !this.owner || this.paused || !visible.has(id)) {\r\n this.stopClock(id);\r\n } else if (clock.timer === undefined && this.records().find((t) => t.id === id)?.timeout) {\r\n clock.started = Date.now();\r\n clock.timer = setTimeout(() => {\r\n clock.timer = undefined;\r\n this.dismiss(id);\r\n }, clock.remaining);\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n ElementRef,\r\n OnDestroy,\r\n inject,\r\n input,\r\n output,\r\n effect,\r\n} from '@angular/core';\r\nimport { RaqmToastRecord, RaqmToastService, RaqmToastType } from './toast.service';\r\n\r\n/** Composable notification root; never takes focus automatically. */\r\n@Component({\r\n selector: 'raqm-toast',\r\n template: '<ng-content />',\r\n styleUrl: './toast.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-toast',\r\n tabindex: '-1',\r\n role: 'group',\r\n '[attr.data-raqm-type]': 'toast().type',\r\n '(keydown.escape)': 'dismiss($event)',\r\n '(pointerdown)': 'pointerDown($event)',\r\n '(pointermove)': 'pointerMove($event)',\r\n '(pointerup)': 'pointerEnd($event)',\r\n '(pointercancel)': 'pointerEnd($event)',\r\n '(lostpointercapture)': 'pointerEnd($event)',\r\n },\r\n})\r\nexport class RaqmToastComponent implements OnDestroy {\r\n readonly toast = input.required<RaqmToastRecord>();\r\n /** Internal viewport clock-pause signal for captured touch or mouse gestures. */\r\n readonly swipingChange = output<boolean>();\r\n private readonly service = inject(RaqmToastService);\r\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\r\n private pointer: number | null = null;\r\n private start = { x: 0, y: 0 };\r\n private initial = '';\r\n private axis: 'x' | 'y' | null = null;\r\n private firstMove = true;\r\n private maximum = 0;\r\n private baseline = { x: 0, y: 0 };\r\n private intended = false;\r\n private cancelled = false;\r\n private delta = 0;\r\n constructor() {\r\n effect(() => {\r\n if (this.toast().ending) this.releasePointer();\r\n });\r\n }\r\n protected pointerDown(event: PointerEvent): void {\r\n if (\r\n event.button !== 0 ||\r\n this.pointer !== null ||\r\n this.toast().ending ||\r\n (event.target as HTMLElement).closest(\r\n 'button,a,input,textarea,select,[role=\"button\"],[contenteditable],[data-base-ui-swipe-ignore],[data-swipe-ignore]',\r\n )\r\n )\r\n return;\r\n try {\r\n this.element.setPointerCapture(event.pointerId);\r\n } catch {\r\n return;\r\n }\r\n this.pointer = event.pointerId;\r\n this.swipingChange.emit(true);\r\n this.start = { x: event.clientX, y: event.clientY };\r\n this.baseline = { ...this.start };\r\n this.intended = false;\r\n this.initial =\r\n this.element.ownerDocument.defaultView?.getComputedStyle(this.element).transform ?? '';\r\n this.axis = null;\r\n this.firstMove = true;\r\n this.maximum = this.delta = 0;\r\n this.cancelled = false;\r\n this.element.setAttribute('data-raqm-swiping', '');\r\n }\r\n protected pointerMove(event: PointerEvent): void {\r\n if (event.pointerId !== this.pointer) return;\r\n event.preventDefault();\r\n if (this.firstMove) {\r\n this.start = { x: event.clientX, y: event.clientY };\r\n this.firstMove = false;\r\n }\r\n const x = event.clientX - this.start.x;\r\n const y = event.clientY - this.start.y;\r\n if (\r\n (event.movementX < 0 && event.clientX > this.baseline.x) ||\r\n (event.movementX > 0 && event.clientX < this.baseline.x)\r\n )\r\n this.baseline.x = event.clientX;\r\n if (\r\n (event.movementY < 0 && event.clientY > this.baseline.y) ||\r\n (event.movementY > 0 && event.clientY < this.baseline.y)\r\n )\r\n this.baseline.y = event.clientY;\r\n if (!this.axis && Math.hypot(x, y) >= 1) this.axis = Math.abs(x) > Math.abs(y) ? 'x' : 'y';\r\n this.delta = this.axis === 'x' ? x : this.axis === 'y' ? y : 0;\r\n if (!this.intended && this.delta > 0) {\r\n this.intended = true;\r\n this.maximum = this.delta;\r\n } else if (this.intended) {\r\n const displacement =\r\n this.axis === 'x' ? event.clientX - this.baseline.x : event.clientY - this.baseline.y;\r\n if (displacement > 40) this.cancelled = false;\r\n else if (this.maximum - displacement >= 10) this.cancelled = true;\r\n }\r\n const damped = this.delta < 0 ? -Math.sqrt(-this.delta) : this.delta;\r\n this.element.style.transform = `translate${this.axis === 'x' ? 'X' : 'Y'}(${damped}px) ${this.initial === 'none' ? '' : this.initial}`;\r\n this.element.style.setProperty(\r\n '--toast-swipe-movement-x',\r\n `${this.axis === 'x' ? damped : 0}px`,\r\n );\r\n this.element.style.setProperty(\r\n '--toast-swipe-movement-y',\r\n `${this.axis === 'y' ? damped : 0}px`,\r\n );\r\n }\r\n protected pointerEnd(event: PointerEvent): void {\r\n if (event.pointerId !== this.pointer) return;\r\n const dismiss = event.type === 'pointerup' && this.delta > 40 && !this.cancelled;\r\n const direction = this.axis === 'x' ? 'right' : 'down';\r\n this.releasePointer();\r\n if (dismiss) {\r\n this.element.setAttribute('data-raqm-swipe-direction', direction);\r\n this.dismiss();\r\n } else {\r\n this.element.style.removeProperty('--toast-swipe-movement-x');\r\n this.element.style.removeProperty('--toast-swipe-movement-y');\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this.releasePointer();\r\n }\r\n private releasePointer(): void {\r\n const pointer = this.pointer;\r\n this.pointer = null;\r\n if (pointer !== null) this.swipingChange.emit(false);\r\n if (pointer !== null && this.element.hasPointerCapture(pointer))\r\n this.element.releasePointerCapture(pointer);\r\n this.element.removeAttribute('data-raqm-swiping');\r\n this.element.style.removeProperty('transform');\r\n }\r\n /** Closes this record and contains Escape within the notification. */\r\n dismiss(event?: Event): void {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.service.dismiss(this.toast().id);\r\n }\r\n}\r\n@Directive({\r\n selector: '[raqm-toast-title]',\r\n host: { class: 'raqm-toast-title' },\r\n})\r\nexport class RaqmToastTitleDirective {}\r\n\r\n@Directive({\r\n selector: '[raqm-toast-content]',\r\n host: { class: 'raqm-toast-content' },\r\n})\r\nexport class RaqmToastContentDirective {}\r\n@Directive({\r\n selector: '[raqm-toast-description]',\r\n host: { class: 'raqm-toast-description' },\r\n})\r\nexport class RaqmToastDescriptionDirective {}\r\n/** Native action; the consumer click callback owns its behavior and dismissal. */\r\n@Directive({\r\n selector: 'button[raqm-toast-action]',\r\n host: {\r\n class: 'raqm-toast-action raqm-button',\r\n 'data-raqm-variant': 'outline',\r\n 'data-raqm-size': 'sm',\r\n },\r\n})\r\nexport class RaqmToastActionDirective {\r\n constructor() {\r\n const element = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!element.hasAttribute('type')) element.type = 'button';\r\n }\r\n}\r\n/** Native close button operating on its enclosing toast; the application names it. */\r\n@Component({\r\n selector: 'button[raqm-toast-close]',\r\n template:\r\n '<ng-content><svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m18 6-12 12M6 6l12 12\" /></svg></ng-content>',\r\n styleUrl: './toast.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-toast-close raqm-button',\r\n 'data-raqm-variant': 'ghost',\r\n 'data-raqm-size': 'icon-sm',\r\n '(click)': 'root.dismiss()',\r\n },\r\n})\r\nexport class RaqmToastCloseComponent {\r\n protected readonly root = inject(RaqmToastComponent);\r\n constructor() {\r\n const element = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!element.hasAttribute('type')) element.type = 'button';\r\n }\r\n}\r\n/** Decorative inline status glyphs. */\r\n@Component({\r\n selector: 'raqm-toast-icon',\r\n templateUrl: './toast-icon.component.html',\r\n styleUrl: './toast.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-toast-icon', 'aria-hidden': 'true', '[attr.data-raqm-type]': 'type()' },\r\n})\r\nexport class RaqmToastIconComponent {\r\n readonly type = input<RaqmToastType>();\r\n}\r\n","@if (type()) {\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n focusable=\"false\"\n >\n @switch (type()) {\n @case ('success') {\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n }\n @case ('info') {\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4M12 8h.01\" />\n }\n @case ('warning') {\n <path\n d=\"m10.3 3.9-8.1 14A2 2 0 0 0 3.9 21h16.2a2 2 0 0 0 1.7-3.1l-8.1-14a2 2 0 0 0-3.4 0ZM12 9v4M12 17h.01\"\n />\n }\n @case ('error') {\n <path d=\"m7.86 2-5.86 5.86v8.28l5.86 5.86h8.28l5.86-5.86V7.86L16.14 2ZM9 9l6 6M15 9l-6 6\" />\n }\n @case ('loading') {\n <path d=\"M12 2a10 10 0 1 1-7.07 2.93\" />\n }\n }\n </svg>\n}\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DOCUMENT,\r\n ElementRef,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewContainerRef,\r\n afterEveryRender,\r\n afterNextRender,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n signal,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n RaqmToastComponent,\r\n RaqmToastActionDirective,\r\n RaqmToastCloseComponent,\r\n RaqmToastContentDirective,\r\n RaqmToastDescriptionDirective,\r\n RaqmToastIconComponent,\r\n RaqmToastTitleDirective,\r\n} from './toast.component';\r\nimport { RaqmToastRecord, RaqmToastService } from './toast.service';\r\n\r\n/** Nonmodal CDK viewport; mounted once near the application root. */\r\n@Component({\r\n imports: [\r\n RaqmToastComponent,\r\n RaqmToastActionDirective,\r\n RaqmToastCloseComponent,\r\n RaqmToastContentDirective,\r\n RaqmToastDescriptionDirective,\r\n RaqmToastIconComponent,\r\n RaqmToastTitleDirective,\r\n ],\r\n selector: 'raqm-toaster',\r\n styleUrl: './toaster.component.scss',\r\n templateUrl: './toaster.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RaqmToasterComponent implements OnDestroy {\r\n /** Accessible name of the notification viewport region. */\r\n readonly label = input.required<string>();\r\n /** Accessible name of the close control the toaster renders for each toast. */\r\n readonly closeLabel = input.required<string>();\r\n protected readonly service = inject(RaqmToastService);\r\n private readonly document = inject(DOCUMENT);\r\n private readonly overlay = inject(Overlay);\r\n private readonly container = inject(ViewContainerRef);\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly panel = viewChild.required<TemplateRef<unknown>>('panel');\r\n private overlayRef?: OverlayRef;\r\n private observer?: ResizeObserver;\r\n private announcementTimer?: ReturnType<typeof setTimeout>;\r\n private previousFocus: HTMLElement | null = null;\r\n private hovered = false;\r\n private focused = false;\r\n private swiping = false;\r\n private readonly indices = new Map<string, number>();\r\n protected readonly expanded = signal(false);\r\n protected readonly announcement = signal('');\r\n protected readonly ready = signal(false);\r\n protected readonly announcementKey = computed(() =>\r\n this.service\r\n .visibleToasts()\r\n .map((t) => `${t.id}:${t.updateKey}`)\r\n .join('|'),\r\n );\r\n private announced = new Map<string, number>();\r\n private readonly pendingAnnouncements = new Map<string, RaqmToastRecord>();\r\n\r\n constructor() {\r\n afterNextRender(() => {\r\n if (!this.service.claimViewport(this)) return;\r\n const dir =\r\n this.document.defaultView?.getComputedStyle(this.host.nativeElement).direction === 'rtl'\r\n ? 'rtl'\r\n : 'ltr';\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy: this.overlay.position().global(),\r\n scrollStrategy: this.overlay.scrollStrategies.noop(),\r\n hasBackdrop: false,\r\n panelClass: 'raqm-toast-overlay-pane',\r\n direction: dir,\r\n });\r\n // The viewport owns fixed logical positioning; its zero-sized pane never intercepts the page.\r\n this.overlayRef.overlayElement.style.pointerEvents = 'none';\r\n this.overlayRef.attach(new TemplatePortal(this.panel(), this.container));\r\n this.document.addEventListener('keydown', this.onDocumentKeydown);\r\n if (typeof ResizeObserver !== 'undefined')\r\n this.observer = new ResizeObserver(() => this.measure());\r\n this.ready.set(true);\r\n });\r\n afterEveryRender(() => {\r\n const pane = this.overlayRef?.overlayElement;\r\n if (!pane) return;\r\n const retained = new Set(this.service.renderedToasts().map((t) => t.id));\r\n for (const id of this.indices.keys()) if (!retained.has(id)) this.indices.delete(id);\r\n const dir =\r\n this.document.defaultView?.getComputedStyle(this.host.nativeElement).direction === 'rtl'\r\n ? 'rtl'\r\n : 'ltr';\r\n this.overlayRef?.setDirection(dir);\r\n this.observer?.disconnect();\r\n pane\r\n .querySelectorAll('.raqm-toast-content')\r\n .forEach((element) => this.observer?.observe(element));\r\n this.measure();\r\n });\r\n effect(() => {\r\n const toasts = this.service.visibleToasts();\r\n // Runs before DOM removal so programmatic dismissal cannot strand focused controls.\r\n untracked(() => this.ensureFocus(toasts));\r\n });\r\n effect(() => {\r\n this.announcementKey();\r\n if (!this.ready()) return;\r\n untracked(() => {\r\n const fresh = this.service\r\n .visibleToasts()\r\n .filter((t) => this.announced.get(t.id) !== t.updateKey);\r\n this.announced = new Map(this.service.visibleToasts().map((t) => [t.id, t.updateKey]));\r\n if (!fresh.length) return;\r\n for (const toast of fresh) this.pendingAnnouncements.set(toast.id, toast);\r\n if (this.announcementTimer !== undefined) clearTimeout(this.announcementTimer);\r\n this.announcement.set('');\r\n this.announcementTimer = setTimeout(() => {\r\n this.announcementTimer = undefined;\r\n this.announcement.set(\r\n Array.from(this.pendingAnnouncements.values())\r\n .filter((t) =>\r\n this.service\r\n .visibleToasts()\r\n .some((current) => current.id === t.id && current.updateKey === t.updateKey),\r\n )\r\n .map((t) => [t.title, t.description].filter(Boolean).join('. '))\r\n .join('. '),\r\n );\r\n this.pendingAnnouncements.clear();\r\n }, 100);\r\n });\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.restoreFocus();\r\n this.document.removeEventListener('keydown', this.onDocumentKeydown);\r\n this.observer?.disconnect();\r\n if (this.announcementTimer !== undefined) clearTimeout(this.announcementTimer);\r\n this.overlayRef?.dispose();\r\n this.service.releaseViewport(this);\r\n }\r\n protected hover(value: boolean): void {\r\n this.hovered = value;\r\n this.syncPause();\r\n }\r\n protected focusIn(event: FocusEvent): void {\r\n const previous = event.relatedTarget as HTMLElement | null;\r\n if (previous && !this.overlayRef?.overlayElement.contains(previous))\r\n this.previousFocus = previous;\r\n this.focused = true;\r\n this.syncPause();\r\n }\r\n protected focusOut(event: FocusEvent): void {\r\n this.focused =\r\n !!event.relatedTarget &&\r\n !!this.overlayRef?.overlayElement.contains(event.relatedTarget as Node);\r\n this.syncPause();\r\n }\r\n protected action(toast: RaqmToastRecord, event: MouseEvent): void {\r\n toast.action?.onClick(toast.id, event);\r\n }\r\n protected toastIndex(toast: RaqmToastRecord): number {\r\n if (!toast.ending)\r\n this.indices.set(\r\n toast.id,\r\n Math.max(\r\n 0,\r\n this.service.visibleToasts().findIndex((t) => t.id === toast.id),\r\n ),\r\n );\r\n return this.indices.get(toast.id) ?? 0;\r\n }\r\n protected swipe(value: boolean): void {\r\n this.swiping = value;\r\n this.syncPause();\r\n }\r\n private syncPause(): void {\r\n this.expanded.set(this.hovered || this.focused);\r\n // Focus-in reveals the content synchronously, before Angular's next render.\r\n this.overlayRef?.overlayElement.querySelectorAll<HTMLElement>('.raqm-toast').forEach((root) => {\r\n root.toggleAttribute('data-raqm-expanded', this.hovered || this.focused);\r\n });\r\n this.service.pauseViewport(this, this.hovered || this.focused || this.swiping);\r\n }\r\n private measure(): void {\r\n const viewport =\r\n this.overlayRef?.overlayElement.querySelector<HTMLElement>('.raqm-toast-viewport');\r\n const roots = Array.from(\r\n viewport?.querySelectorAll<HTMLElement>('.raqm-toast:not([data-raqm-ending-style])') ?? [],\r\n );\r\n const frontHeight = roots[0]?.querySelector<HTMLElement>('.raqm-toast-content')?.offsetHeight;\r\n if (viewport && frontHeight)\r\n viewport.style.setProperty('--toast-frontmost-height', `${frontHeight + 2}px`);\r\n let offset = 0;\r\n for (const root of roots) {\r\n root.style.setProperty('--toast-offset-y', `${offset}px`);\r\n offset += (root.querySelector<HTMLElement>('.raqm-toast-content')?.offsetHeight ?? 0) + 2;\r\n }\r\n }\r\n private ensureFocus(toasts: readonly RaqmToastRecord[]): void {\r\n const active = this.document.activeElement as HTMLElement | null;\r\n const root = active?.closest<HTMLElement>('.raqm-toast');\r\n if (!root || !this.overlayRef?.overlayElement.contains(root)) return;\r\n if (toasts.some((t) => t.id === root.dataset['raqmToastId'])) return;\r\n const next = Array.from(\r\n this.overlayRef.overlayElement.querySelectorAll<HTMLElement>('.raqm-toast'),\r\n ).find(\r\n (element) => element !== root && toasts.some((t) => t.id === element.dataset['raqmToastId']),\r\n );\r\n if (toasts.length && next) next.focus();\r\n else this.restoreFocus();\r\n }\r\n private restoreFocus(): void {\r\n if (!this.overlayRef?.overlayElement.contains(this.document.activeElement)) return;\r\n if (\r\n this.previousFocus?.isConnected &&\r\n !this.previousFocus.closest('[inert]') &&\r\n !this.previousFocus.matches(':disabled')\r\n ) {\r\n this.previousFocus.focus({ preventScroll: true });\r\n } else {\r\n (this.document.activeElement as HTMLElement | null)?.blur();\r\n }\r\n this.focused = false;\r\n this.syncPause();\r\n }\r\n private readonly onDocumentKeydown = (event: KeyboardEvent): void => {\r\n if (event.key !== 'F6' || !this.service.visibleToasts().length) return;\r\n event.preventDefault();\r\n if (this.overlayRef?.overlayElement.contains(this.document.activeElement)) this.restoreFocus();\r\n else {\r\n this.previousFocus = this.document.activeElement as HTMLElement | null;\r\n this.overlayRef?.overlayElement.querySelector<HTMLElement>('.raqm-toast')?.focus();\r\n }\r\n };\r\n}\r\n","<ng-template #panel>\r\n <section\r\n class=\"raqm-toast-viewport\"\r\n [attr.aria-label]=\"label()\"\r\n tabindex=\"-1\"\r\n (mouseenter)=\"hover(true)\"\r\n (mouseleave)=\"hover(false)\"\r\n (focusin)=\"focusIn($event)\"\r\n (focusout)=\"focusOut($event)\"\r\n >\r\n <div class=\"raqm-toast-announcer\" aria-live=\"polite\" aria-atomic=\"true\">\r\n {{ announcement() }}\r\n </div>\r\n @for (toast of service.renderedToasts(); track toast.id) {\r\n <raqm-toast\r\n [toast]=\"toast\"\r\n (swipingChange)=\"swipe($event)\"\r\n [attr.data-raqm-toast-id]=\"toast.id\"\r\n [style.--toast-index]=\"toastIndex(toast)\"\r\n [attr.data-raqm-ending-style]=\"toast.ending ? '' : null\"\r\n [attr.inert]=\"toast.ending ? '' : null\"\r\n [attr.aria-hidden]=\"toast.ending ? 'true' : null\"\r\n [attr.data-raqm-expanded]=\"expanded() ? '' : null\"\r\n [attr.data-raqm-behind]=\"toastIndex(toast) > 0 ? '' : null\"\r\n [attr.aria-labelledby]=\"toast.title ? toast.id + '-title' : null\"\r\n [attr.aria-describedby]=\"toast.description ? toast.id + '-description' : null\"\r\n >\r\n <div raqm-toast-content>\r\n @if (toast.type) {\r\n <raqm-toast-icon [type]=\"toast.type\" />\r\n }\r\n <div class=\"raqm-toast-text\">\r\n @if (toast.title) {\r\n <h2 raqm-toast-title [id]=\"toast.id + '-title'\">{{ toast.title }}</h2>\r\n }\r\n @if (toast.description) {\r\n <p raqm-toast-description [id]=\"toast.id + '-description'\">{{ toast.description }}</p>\r\n }\r\n </div>\r\n @if (toast.action; as actionOptions) {\r\n <button\r\n raqm-toast-action\r\n [disabled]=\"actionOptions.disabled ?? false\"\r\n (click)=\"action(toast, $event)\"\r\n >\r\n {{ actionOptions.label }}\r\n </button>\r\n }\r\n <button raqm-toast-close [attr.aria-label]=\"closeLabel()\"></button>\r\n </div>\r\n </raqm-toast>\r\n }\r\n </section>\r\n</ng-template>\r\n","// Public API for the `@raqm/ui/toast` entry point; the root entry re-exports these.\r\nimport {\r\n RaqmToastActionDirective,\r\n RaqmToastCloseComponent,\r\n RaqmToastComponent,\r\n RaqmToastContentDirective,\r\n RaqmToastDescriptionDirective,\r\n RaqmToastIconComponent,\r\n RaqmToastTitleDirective,\r\n} from './toast.component';\r\nimport { RaqmToasterComponent } from './toaster.component';\r\n\r\nexport {\r\n RaqmToastComponent,\r\n RaqmToastTitleDirective,\r\n RaqmToastContentDirective,\r\n RaqmToastDescriptionDirective,\r\n RaqmToastActionDirective,\r\n RaqmToastCloseComponent,\r\n RaqmToastIconComponent,\r\n};\r\nexport { RaqmToasterComponent } from './toaster.component';\r\nexport { RaqmToastService } from './toast.service';\r\nexport type {\r\n RaqmToastActionOptions,\r\n RaqmToastId,\r\n RaqmToastOptions,\r\n RaqmToastRecord,\r\n RaqmToastType,\r\n} from './toast.service';\r\n\r\nexport const RaqmToast = [\r\n RaqmToastComponent,\r\n RaqmToastTitleDirective,\r\n RaqmToastContentDirective,\r\n RaqmToastDescriptionDirective,\r\n RaqmToastActionDirective,\r\n RaqmToastCloseComponent,\r\n RaqmToastIconComponent,\r\n RaqmToasterComponent,\r\n] as const;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"raqm-ui-toast.mjs","names":[],"sources":["../../../projects/ui/toast/toast.service.ts","../../../projects/ui/toast/toast.component.ts","../../../projects/ui/toast/toast-icon.component.html","../../../projects/ui/toast/toaster.component.ts","../../../projects/ui/toast/toaster.component.html","../../../projects/ui/toast/public-api.ts"],"sourcesContent":["import {\r\n DOCUMENT,\r\n Injectable,\r\n OnDestroy,\r\n PLATFORM_ID,\r\n computed,\r\n inject,\r\n signal,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\nexport type RaqmToastId = string;\r\nexport type RaqmToastType = 'success' | 'info' | 'warning' | 'error' | 'loading';\r\n/** Native action; its callback explicitly owns dismissal. */\r\nexport interface RaqmToastActionOptions {\r\n readonly label: string;\r\n readonly onClick: (id: RaqmToastId, event: MouseEvent) => void;\r\n readonly disabled?: boolean;\r\n}\r\n/** Text notification options; a timeout of 0 disables automatic dismissal. */\r\nexport interface RaqmToastOptions {\r\n readonly id?: RaqmToastId;\r\n readonly title?: string;\r\n readonly description?: string;\r\n readonly type?: RaqmToastType;\r\n readonly timeout?: number;\r\n readonly action?: RaqmToastActionOptions;\r\n readonly onClose?: () => void;\r\n}\r\n/** Immutable notification state; updates preserve its id and increment updateKey. */\r\nexport interface RaqmToastRecord extends Omit<RaqmToastOptions, 'id' | 'timeout'> {\r\n readonly id: RaqmToastId;\r\n readonly timeout: number;\r\n readonly updateKey: number;\r\n readonly ending?: boolean;\r\n}\r\ninterface ToastClock {\r\n remaining: number;\r\n started: number;\r\n timer?: ReturnType<typeof setTimeout>;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RaqmToastService implements OnDestroy {\r\n private readonly browser = isPlatformBrowser(inject(PLATFORM_ID));\r\n private readonly records = signal<readonly RaqmToastRecord[]>([]);\r\n private readonly clocks = new Map<RaqmToastId, ToastClock>();\r\n private readonly document = inject(DOCUMENT);\r\n private readonly exits = new Map<RaqmToastId, ReturnType<typeof setTimeout>>();\r\n private owner: object | null = null;\r\n private paused = false;\r\n private nextId = 0;\r\n private destroyed = false;\r\n /** Newest first; older records queue behind the visible three. */\r\n readonly toasts = this.records.asReadonly();\r\n readonly visibleToasts = computed(() =>\r\n this.toasts()\r\n .filter((t) => !t.ending)\r\n .slice(0, 3),\r\n );\r\n /** Visible roots plus retained, inert roots finishing the exit. */\r\n readonly renderedToasts = computed(() => {\r\n const visible = new Set(this.visibleToasts().map((t) => t.id));\r\n return this.toasts().filter((t) => t.ending || visible.has(t.id));\r\n });\r\n\r\n /** Adds a notification, or upserts an existing explicit id without duplication. */\r\n show(options: RaqmToastOptions): RaqmToastId {\r\n const id = options.id ?? this.createId();\r\n if (this.destroyed) return id;\r\n if (this.records().some((toast) => toast.id === id)) {\r\n this.update(id, options);\r\n return id;\r\n }\r\n const toast = { ...options, id, timeout: this.timeout(options.timeout), updateKey: 0 };\r\n this.records.update((records) => [toast, ...records]);\r\n this.clocks.set(id, { remaining: toast.timeout, started: 0 });\r\n this.syncClocks();\r\n return id;\r\n }\r\n success(options: Omit<RaqmToastOptions, 'type'>): RaqmToastId {\r\n return this.show({ ...options, type: 'success' });\r\n }\r\n error(options: Omit<RaqmToastOptions, 'type'>): RaqmToastId {\r\n return this.show({ ...options, type: 'error' });\r\n }\r\n /** Updates one id for loading → success/error workflows; dismissed ids stay dismissed. */\r\n update(id: RaqmToastId, options: Partial<Omit<RaqmToastOptions, 'id'>>): void {\r\n const previous = this.records().find((toast) => toast.id === id);\r\n if (!previous || previous.ending) return;\r\n const timeout = this.timeout(options.timeout ?? previous.timeout);\r\n this.stopClock(id);\r\n this.records.update((records) =>\r\n records.map((toast) =>\r\n toast.id === id\r\n ? { ...toast, ...options, id, timeout, updateKey: toast.updateKey + 1 }\r\n : toast,\r\n ),\r\n );\r\n this.clocks.set(id, { remaining: timeout, started: 0 });\r\n this.syncClocks();\r\n }\r\n /** Dismisses one notification, or all notifications when no id is supplied. */\r\n dismiss(id?: RaqmToastId): void {\r\n const visible = new Set(this.visibleToasts().map((t) => t.id));\r\n const removed = this.records().filter(\r\n (toast) => !toast.ending && (id === undefined || toast.id === id),\r\n );\r\n const animate =\r\n this.browser &&\r\n this.owner !== null &&\r\n !this.document.defaultView?.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n for (const toast of removed) {\r\n this.stopClock(toast.id);\r\n this.clocks.delete(toast.id);\r\n }\r\n this.records.update((records) =>\r\n records.flatMap((toast) =>\r\n !removed.includes(toast)\r\n ? [toast]\r\n : animate && visible.has(toast.id)\r\n ? [{ ...toast, ending: true }]\r\n : [],\r\n ),\r\n );\r\n for (const toast of removed) {\r\n if (animate && visible.has(toast.id))\r\n this.exits.set(\r\n toast.id,\r\n setTimeout(() => {\r\n this.exits.delete(toast.id);\r\n this.records.update((records) => records.filter((record) => record.id !== toast.id));\r\n }, 500),\r\n );\r\n }\r\n this.syncClocks();\r\n for (const toast of removed) toast.onClose?.();\r\n }\r\n /** Internal host ownership guard: duplicate hosts never create duplicate overlays. */\r\n claimViewport(owner: object): boolean {\r\n if (this.owner !== null && this.owner !== owner) return false;\r\n this.owner = owner;\r\n this.syncClocks();\r\n return true;\r\n }\r\n releaseViewport(owner: object): void {\r\n if (this.owner !== owner) return;\r\n this.owner = null;\r\n for (const timer of this.exits.values()) clearTimeout(timer);\r\n this.exits.clear();\r\n this.records.update((records) => records.filter((t) => !t.ending));\r\n this.paused = false;\r\n this.syncClocks();\r\n }\r\n pauseViewport(owner: object, paused: boolean): void {\r\n if (this.owner !== owner) return;\r\n this.paused = paused;\r\n this.syncClocks();\r\n }\r\n ngOnDestroy(): void {\r\n this.destroyed = true;\r\n for (const id of this.clocks.keys()) this.stopClock(id);\r\n this.clocks.clear();\r\n for (const timer of this.exits.values()) clearTimeout(timer);\r\n this.exits.clear();\r\n this.records.set([]);\r\n this.owner = null;\r\n }\r\n private timeout(value = 5000): number {\r\n return Number.isFinite(value) ? Math.max(0, Math.min(value, 2147483647)) : 5000;\r\n }\r\n private createId(): string {\r\n let id: string;\r\n do {\r\n id = `raqm-toast-${++this.nextId}`;\r\n } while (this.records().some((toast) => toast.id === id));\r\n return id;\r\n }\r\n private stopClock(id: RaqmToastId): void {\r\n const clock = this.clocks.get(id);\r\n if (clock?.timer !== undefined) {\r\n clearTimeout(clock.timer);\r\n clock.timer = undefined;\r\n clock.remaining = Math.max(0, clock.remaining - (Date.now() - clock.started));\r\n }\r\n }\r\n private syncClocks(): void {\r\n const visible = new Set(this.visibleToasts().map((toast) => toast.id));\r\n for (const [id, clock] of this.clocks) {\r\n if (!this.browser || !this.owner || this.paused || !visible.has(id)) {\r\n this.stopClock(id);\r\n } else if (clock.timer === undefined && this.records().find((t) => t.id === id)?.timeout) {\r\n clock.started = Date.now();\r\n clock.timer = setTimeout(() => {\r\n clock.timer = undefined;\r\n this.dismiss(id);\r\n }, clock.remaining);\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n ElementRef,\r\n OnDestroy,\r\n inject,\r\n input,\r\n output,\r\n effect,\r\n} from '@angular/core';\r\nimport { RaqmToastRecord, RaqmToastService, RaqmToastType } from './toast.service';\r\n\r\n/** Composable notification root; never takes focus automatically. */\r\n@Component({\r\n selector: 'raqm-toast',\r\n template: '<ng-content />',\r\n styleUrl: './toast.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-toast',\r\n tabindex: '-1',\r\n role: 'group',\r\n '[attr.data-raqm-type]': 'toast().type',\r\n '(keydown.escape)': 'dismiss($event)',\r\n '(pointerdown)': 'pointerDown($event)',\r\n '(pointermove)': 'pointerMove($event)',\r\n '(pointerup)': 'pointerEnd($event)',\r\n '(pointercancel)': 'pointerEnd($event)',\r\n '(lostpointercapture)': 'pointerEnd($event)',\r\n },\r\n})\r\nexport class RaqmToastComponent implements OnDestroy {\r\n readonly toast = input.required<RaqmToastRecord>();\r\n /** Internal viewport clock-pause signal for captured touch or mouse gestures. */\r\n readonly swipingChange = output<boolean>();\r\n private readonly service = inject(RaqmToastService);\r\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\r\n private pointer: number | null = null;\r\n private start = { x: 0, y: 0 };\r\n private initial = '';\r\n private axis: 'x' | 'y' | null = null;\r\n private firstMove = true;\r\n private maximum = 0;\r\n private baseline = { x: 0, y: 0 };\r\n private intended = false;\r\n private cancelled = false;\r\n private delta = 0;\r\n constructor() {\r\n effect(() => {\r\n if (this.toast().ending) this.releasePointer();\r\n });\r\n }\r\n protected pointerDown(event: PointerEvent): void {\r\n if (\r\n event.button !== 0 ||\r\n this.pointer !== null ||\r\n this.toast().ending ||\r\n (event.target as HTMLElement).closest(\r\n 'button,a,input,textarea,select,[role=\"button\"],[contenteditable],[data-base-ui-swipe-ignore],[data-swipe-ignore]',\r\n )\r\n )\r\n return;\r\n try {\r\n this.element.setPointerCapture(event.pointerId);\r\n } catch {\r\n return;\r\n }\r\n this.pointer = event.pointerId;\r\n this.swipingChange.emit(true);\r\n this.start = { x: event.clientX, y: event.clientY };\r\n this.baseline = { ...this.start };\r\n this.intended = false;\r\n this.initial =\r\n this.element.ownerDocument.defaultView?.getComputedStyle(this.element).transform ?? '';\r\n this.axis = null;\r\n this.firstMove = true;\r\n this.maximum = this.delta = 0;\r\n this.cancelled = false;\r\n this.element.setAttribute('data-raqm-swiping', '');\r\n }\r\n protected pointerMove(event: PointerEvent): void {\r\n if (event.pointerId !== this.pointer) return;\r\n event.preventDefault();\r\n if (this.firstMove) {\r\n this.start = { x: event.clientX, y: event.clientY };\r\n this.firstMove = false;\r\n }\r\n const x = event.clientX - this.start.x;\r\n const y = event.clientY - this.start.y;\r\n if (\r\n (event.movementX < 0 && event.clientX > this.baseline.x) ||\r\n (event.movementX > 0 && event.clientX < this.baseline.x)\r\n )\r\n this.baseline.x = event.clientX;\r\n if (\r\n (event.movementY < 0 && event.clientY > this.baseline.y) ||\r\n (event.movementY > 0 && event.clientY < this.baseline.y)\r\n )\r\n this.baseline.y = event.clientY;\r\n if (!this.axis && Math.hypot(x, y) >= 1) this.axis = Math.abs(x) > Math.abs(y) ? 'x' : 'y';\r\n this.delta = this.axis === 'x' ? x : this.axis === 'y' ? y : 0;\r\n if (!this.intended && this.delta > 0) {\r\n this.intended = true;\r\n this.maximum = this.delta;\r\n } else if (this.intended) {\r\n const displacement =\r\n this.axis === 'x' ? event.clientX - this.baseline.x : event.clientY - this.baseline.y;\r\n if (displacement > 40) this.cancelled = false;\r\n else if (this.maximum - displacement >= 10) this.cancelled = true;\r\n }\r\n const damped = this.delta < 0 ? -Math.sqrt(-this.delta) : this.delta;\r\n this.element.style.transform = `translate${this.axis === 'x' ? 'X' : 'Y'}(${damped}px) ${this.initial === 'none' ? '' : this.initial}`;\r\n this.element.style.setProperty(\r\n '--toast-swipe-movement-x',\r\n `${this.axis === 'x' ? damped : 0}px`,\r\n );\r\n this.element.style.setProperty(\r\n '--toast-swipe-movement-y',\r\n `${this.axis === 'y' ? damped : 0}px`,\r\n );\r\n }\r\n protected pointerEnd(event: PointerEvent): void {\r\n if (event.pointerId !== this.pointer) return;\r\n const dismiss = event.type === 'pointerup' && this.delta > 40 && !this.cancelled;\r\n const direction = this.axis === 'x' ? 'right' : 'down';\r\n this.releasePointer();\r\n if (dismiss) {\r\n this.element.setAttribute('data-raqm-swipe-direction', direction);\r\n this.dismiss();\r\n } else {\r\n this.element.style.removeProperty('--toast-swipe-movement-x');\r\n this.element.style.removeProperty('--toast-swipe-movement-y');\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this.releasePointer();\r\n }\r\n private releasePointer(): void {\r\n const pointer = this.pointer;\r\n this.pointer = null;\r\n if (pointer !== null) this.swipingChange.emit(false);\r\n if (pointer !== null && this.element.hasPointerCapture(pointer))\r\n this.element.releasePointerCapture(pointer);\r\n this.element.removeAttribute('data-raqm-swiping');\r\n this.element.style.removeProperty('transform');\r\n }\r\n /** Closes this record and contains Escape within the notification. */\r\n dismiss(event?: Event): void {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.service.dismiss(this.toast().id);\r\n }\r\n}\r\n@Directive({\r\n selector: '[raqm-toast-title]',\r\n host: { class: 'raqm-toast-title' },\r\n})\r\nexport class RaqmToastTitleDirective {}\r\n\r\n@Directive({\r\n selector: '[raqm-toast-content]',\r\n host: { class: 'raqm-toast-content' },\r\n})\r\nexport class RaqmToastContentDirective {}\r\n@Directive({\r\n selector: '[raqm-toast-description]',\r\n host: { class: 'raqm-toast-description' },\r\n})\r\nexport class RaqmToastDescriptionDirective {}\r\n/** Native action; the consumer click callback owns its behavior and dismissal. */\r\n@Directive({\r\n selector: 'button[raqm-toast-action]',\r\n host: {\r\n class: 'raqm-toast-action raqm-button',\r\n 'data-raqm-variant': 'outline',\r\n 'data-raqm-size': 'sm',\r\n },\r\n})\r\nexport class RaqmToastActionDirective {\r\n constructor() {\r\n const element = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!element.hasAttribute('type')) element.type = 'button';\r\n }\r\n}\r\n/** Native close button operating on its enclosing toast; the application names it. */\r\n@Component({\r\n selector: 'button[raqm-toast-close]',\r\n template:\r\n '<ng-content><svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m18 6-12 12M6 6l12 12\" /></svg></ng-content>',\r\n styleUrl: './toast.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-toast-close raqm-button',\r\n 'data-raqm-variant': 'ghost',\r\n 'data-raqm-size': 'icon-sm',\r\n '(click)': 'root.dismiss()',\r\n },\r\n})\r\nexport class RaqmToastCloseComponent {\r\n protected readonly root = inject(RaqmToastComponent);\r\n constructor() {\r\n const element = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!element.hasAttribute('type')) element.type = 'button';\r\n }\r\n}\r\n/** Decorative inline status glyphs. */\r\n@Component({\r\n selector: 'raqm-toast-icon',\r\n templateUrl: './toast-icon.component.html',\r\n styleUrl: './toast.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-toast-icon', 'aria-hidden': 'true', '[attr.data-raqm-type]': 'type()' },\r\n})\r\nexport class RaqmToastIconComponent {\r\n readonly type = input<RaqmToastType>();\r\n}\r\n","@if (type()) {\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n width=\"16\"\r\n height=\"16\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n focusable=\"false\"\r\n >\r\n @switch (type()) {\r\n @case ('success') {\r\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\r\n <path d=\"m9 12 2 2 4-4\" />\r\n }\r\n @case ('info') {\r\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\r\n <path d=\"M12 16v-4M12 8h.01\" />\r\n }\r\n @case ('warning') {\r\n <path\r\n d=\"m10.3 3.9-8.1 14A2 2 0 0 0 3.9 21h16.2a2 2 0 0 0 1.7-3.1l-8.1-14a2 2 0 0 0-3.4 0ZM12 9v4M12 17h.01\"\r\n />\r\n }\r\n @case ('error') {\r\n <path d=\"m7.86 2-5.86 5.86v8.28l5.86 5.86h8.28l5.86-5.86V7.86L16.14 2ZM9 9l6 6M15 9l-6 6\" />\r\n }\r\n @case ('loading') {\r\n <path d=\"M12 2a10 10 0 1 1-7.07 2.93\" />\r\n }\r\n }\r\n </svg>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DOCUMENT,\r\n ElementRef,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewContainerRef,\r\n afterEveryRender,\r\n afterNextRender,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n signal,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n RaqmToastComponent,\r\n RaqmToastActionDirective,\r\n RaqmToastCloseComponent,\r\n RaqmToastContentDirective,\r\n RaqmToastDescriptionDirective,\r\n RaqmToastIconComponent,\r\n RaqmToastTitleDirective,\r\n} from './toast.component';\r\nimport { RaqmToastRecord, RaqmToastService } from './toast.service';\r\n\r\n/** Nonmodal CDK viewport; mounted once near the application root. */\r\n@Component({\r\n imports: [\r\n RaqmToastComponent,\r\n RaqmToastActionDirective,\r\n RaqmToastCloseComponent,\r\n RaqmToastContentDirective,\r\n RaqmToastDescriptionDirective,\r\n RaqmToastIconComponent,\r\n RaqmToastTitleDirective,\r\n ],\r\n selector: 'raqm-toaster',\r\n styleUrl: './toaster.component.scss',\r\n templateUrl: './toaster.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RaqmToasterComponent implements OnDestroy {\r\n /** Accessible name of the notification viewport region. */\r\n readonly label = input.required<string>();\r\n /** Accessible name of the close control the toaster renders for each toast. */\r\n readonly closeLabel = input.required<string>();\r\n protected readonly service = inject(RaqmToastService);\r\n private readonly document = inject(DOCUMENT);\r\n private readonly overlay = inject(Overlay);\r\n private readonly container = inject(ViewContainerRef);\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly panel = viewChild.required<TemplateRef<unknown>>('panel');\r\n private overlayRef?: OverlayRef;\r\n private observer?: ResizeObserver;\r\n private announcementTimer?: ReturnType<typeof setTimeout>;\r\n private previousFocus: HTMLElement | null = null;\r\n private hovered = false;\r\n private focused = false;\r\n private swiping = false;\r\n private readonly indices = new Map<string, number>();\r\n protected readonly expanded = signal(false);\r\n protected readonly announcement = signal('');\r\n protected readonly ready = signal(false);\r\n protected readonly announcementKey = computed(() =>\r\n this.service\r\n .visibleToasts()\r\n .map((t) => `${t.id}:${t.updateKey}`)\r\n .join('|'),\r\n );\r\n private announced = new Map<string, number>();\r\n private readonly pendingAnnouncements = new Map<string, RaqmToastRecord>();\r\n\r\n constructor() {\r\n afterNextRender(() => {\r\n if (!this.service.claimViewport(this)) return;\r\n const dir =\r\n this.document.defaultView?.getComputedStyle(this.host.nativeElement).direction === 'rtl'\r\n ? 'rtl'\r\n : 'ltr';\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy: this.overlay.position().global(),\r\n scrollStrategy: this.overlay.scrollStrategies.noop(),\r\n hasBackdrop: false,\r\n panelClass: 'raqm-toast-overlay-pane',\r\n direction: dir,\r\n });\r\n // The viewport owns fixed logical positioning; its zero-sized pane never intercepts the page.\r\n this.overlayRef.overlayElement.style.pointerEvents = 'none';\r\n this.overlayRef.attach(new TemplatePortal(this.panel(), this.container));\r\n this.document.addEventListener('keydown', this.onDocumentKeydown);\r\n if (typeof ResizeObserver !== 'undefined')\r\n this.observer = new ResizeObserver(() => this.measure());\r\n this.ready.set(true);\r\n });\r\n afterEveryRender(() => {\r\n const pane = this.overlayRef?.overlayElement;\r\n if (!pane) return;\r\n const retained = new Set(this.service.renderedToasts().map((t) => t.id));\r\n for (const id of this.indices.keys()) if (!retained.has(id)) this.indices.delete(id);\r\n const dir =\r\n this.document.defaultView?.getComputedStyle(this.host.nativeElement).direction === 'rtl'\r\n ? 'rtl'\r\n : 'ltr';\r\n this.overlayRef?.setDirection(dir);\r\n this.observer?.disconnect();\r\n pane\r\n .querySelectorAll('.raqm-toast-content')\r\n .forEach((element) => this.observer?.observe(element));\r\n this.measure();\r\n });\r\n effect(() => {\r\n const toasts = this.service.visibleToasts();\r\n // Runs before DOM removal so programmatic dismissal cannot strand focused controls.\r\n untracked(() => this.ensureFocus(toasts));\r\n });\r\n effect(() => {\r\n this.announcementKey();\r\n if (!this.ready()) return;\r\n untracked(() => {\r\n const fresh = this.service\r\n .visibleToasts()\r\n .filter((t) => this.announced.get(t.id) !== t.updateKey);\r\n this.announced = new Map(this.service.visibleToasts().map((t) => [t.id, t.updateKey]));\r\n if (!fresh.length) return;\r\n for (const toast of fresh) this.pendingAnnouncements.set(toast.id, toast);\r\n if (this.announcementTimer !== undefined) clearTimeout(this.announcementTimer);\r\n this.announcement.set('');\r\n this.announcementTimer = setTimeout(() => {\r\n this.announcementTimer = undefined;\r\n this.announcement.set(\r\n Array.from(this.pendingAnnouncements.values())\r\n .filter((t) =>\r\n this.service\r\n .visibleToasts()\r\n .some((current) => current.id === t.id && current.updateKey === t.updateKey),\r\n )\r\n .map((t) => [t.title, t.description].filter(Boolean).join('. '))\r\n .join('. '),\r\n );\r\n this.pendingAnnouncements.clear();\r\n }, 100);\r\n });\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.restoreFocus();\r\n this.document.removeEventListener('keydown', this.onDocumentKeydown);\r\n this.observer?.disconnect();\r\n if (this.announcementTimer !== undefined) clearTimeout(this.announcementTimer);\r\n this.overlayRef?.dispose();\r\n this.service.releaseViewport(this);\r\n }\r\n protected hover(value: boolean): void {\r\n this.hovered = value;\r\n this.syncPause();\r\n }\r\n protected focusIn(event: FocusEvent): void {\r\n const previous = event.relatedTarget as HTMLElement | null;\r\n if (previous && !this.overlayRef?.overlayElement.contains(previous))\r\n this.previousFocus = previous;\r\n this.focused = true;\r\n this.syncPause();\r\n }\r\n protected focusOut(event: FocusEvent): void {\r\n this.focused =\r\n !!event.relatedTarget &&\r\n !!this.overlayRef?.overlayElement.contains(event.relatedTarget as Node);\r\n this.syncPause();\r\n }\r\n protected action(toast: RaqmToastRecord, event: MouseEvent): void {\r\n toast.action?.onClick(toast.id, event);\r\n }\r\n protected toastIndex(toast: RaqmToastRecord): number {\r\n if (!toast.ending)\r\n this.indices.set(\r\n toast.id,\r\n Math.max(\r\n 0,\r\n this.service.visibleToasts().findIndex((t) => t.id === toast.id),\r\n ),\r\n );\r\n return this.indices.get(toast.id) ?? 0;\r\n }\r\n protected swipe(value: boolean): void {\r\n this.swiping = value;\r\n this.syncPause();\r\n }\r\n private syncPause(): void {\r\n this.expanded.set(this.hovered || this.focused);\r\n // Focus-in reveals the content synchronously, before Angular's next render.\r\n this.overlayRef?.overlayElement.querySelectorAll<HTMLElement>('.raqm-toast').forEach((root) => {\r\n root.toggleAttribute('data-raqm-expanded', this.hovered || this.focused);\r\n });\r\n this.service.pauseViewport(this, this.hovered || this.focused || this.swiping);\r\n }\r\n private measure(): void {\r\n const viewport =\r\n this.overlayRef?.overlayElement.querySelector<HTMLElement>('.raqm-toast-viewport');\r\n const roots = Array.from(\r\n viewport?.querySelectorAll<HTMLElement>('.raqm-toast:not([data-raqm-ending-style])') ?? [],\r\n );\r\n const frontHeight = roots[0]?.querySelector<HTMLElement>('.raqm-toast-content')?.offsetHeight;\r\n if (viewport && frontHeight)\r\n viewport.style.setProperty('--toast-frontmost-height', `${frontHeight + 2}px`);\r\n let offset = 0;\r\n for (const root of roots) {\r\n root.style.setProperty('--toast-offset-y', `${offset}px`);\r\n offset += (root.querySelector<HTMLElement>('.raqm-toast-content')?.offsetHeight ?? 0) + 2;\r\n }\r\n }\r\n private ensureFocus(toasts: readonly RaqmToastRecord[]): void {\r\n const active = this.document.activeElement as HTMLElement | null;\r\n const root = active?.closest<HTMLElement>('.raqm-toast');\r\n if (!root || !this.overlayRef?.overlayElement.contains(root)) return;\r\n if (toasts.some((t) => t.id === root.dataset['raqmToastId'])) return;\r\n const next = Array.from(\r\n this.overlayRef.overlayElement.querySelectorAll<HTMLElement>('.raqm-toast'),\r\n ).find(\r\n (element) => element !== root && toasts.some((t) => t.id === element.dataset['raqmToastId']),\r\n );\r\n if (toasts.length && next) next.focus();\r\n else this.restoreFocus();\r\n }\r\n private restoreFocus(): void {\r\n if (!this.overlayRef?.overlayElement.contains(this.document.activeElement)) return;\r\n if (\r\n this.previousFocus?.isConnected &&\r\n !this.previousFocus.closest('[inert]') &&\r\n !this.previousFocus.matches(':disabled')\r\n ) {\r\n this.previousFocus.focus({ preventScroll: true });\r\n } else {\r\n (this.document.activeElement as HTMLElement | null)?.blur();\r\n }\r\n this.focused = false;\r\n this.syncPause();\r\n }\r\n private readonly onDocumentKeydown = (event: KeyboardEvent): void => {\r\n if (event.key !== 'F6' || !this.service.visibleToasts().length) return;\r\n event.preventDefault();\r\n if (this.overlayRef?.overlayElement.contains(this.document.activeElement)) this.restoreFocus();\r\n else {\r\n this.previousFocus = this.document.activeElement as HTMLElement | null;\r\n this.overlayRef?.overlayElement.querySelector<HTMLElement>('.raqm-toast')?.focus();\r\n }\r\n };\r\n}\r\n","<ng-template #panel>\r\n <section\r\n class=\"raqm-toast-viewport\"\r\n [attr.aria-label]=\"label()\"\r\n tabindex=\"-1\"\r\n (mouseenter)=\"hover(true)\"\r\n (mouseleave)=\"hover(false)\"\r\n (focusin)=\"focusIn($event)\"\r\n (focusout)=\"focusOut($event)\"\r\n >\r\n <div class=\"raqm-toast-announcer\" aria-live=\"polite\" aria-atomic=\"true\">\r\n {{ announcement() }}\r\n </div>\r\n @for (toast of service.renderedToasts(); track toast.id) {\r\n <raqm-toast\r\n [toast]=\"toast\"\r\n (swipingChange)=\"swipe($event)\"\r\n [attr.data-raqm-toast-id]=\"toast.id\"\r\n [style.--toast-index]=\"toastIndex(toast)\"\r\n [attr.data-raqm-ending-style]=\"toast.ending ? '' : null\"\r\n [attr.inert]=\"toast.ending ? '' : null\"\r\n [attr.aria-hidden]=\"toast.ending ? 'true' : null\"\r\n [attr.data-raqm-expanded]=\"expanded() ? '' : null\"\r\n [attr.data-raqm-behind]=\"toastIndex(toast) > 0 ? '' : null\"\r\n [attr.aria-labelledby]=\"toast.title ? toast.id + '-title' : null\"\r\n [attr.aria-describedby]=\"toast.description ? toast.id + '-description' : null\"\r\n >\r\n <div raqm-toast-content>\r\n @if (toast.type) {\r\n <raqm-toast-icon [type]=\"toast.type\" />\r\n }\r\n <div class=\"raqm-toast-text\">\r\n @if (toast.title) {\r\n <h2 raqm-toast-title [id]=\"toast.id + '-title'\">{{ toast.title }}</h2>\r\n }\r\n @if (toast.description) {\r\n <p raqm-toast-description [id]=\"toast.id + '-description'\">{{ toast.description }}</p>\r\n }\r\n </div>\r\n @if (toast.action; as actionOptions) {\r\n <button\r\n raqm-toast-action\r\n [disabled]=\"actionOptions.disabled ?? false\"\r\n (click)=\"action(toast, $event)\"\r\n >\r\n {{ actionOptions.label }}\r\n </button>\r\n }\r\n <button raqm-toast-close [attr.aria-label]=\"closeLabel()\"></button>\r\n </div>\r\n </raqm-toast>\r\n }\r\n </section>\r\n</ng-template>\r\n","// Public API for the `@raqm/ui/toast` entry point; the root entry re-exports these.\r\nimport {\r\n RaqmToastActionDirective,\r\n RaqmToastCloseComponent,\r\n RaqmToastComponent,\r\n RaqmToastContentDirective,\r\n RaqmToastDescriptionDirective,\r\n RaqmToastIconComponent,\r\n RaqmToastTitleDirective,\r\n} from './toast.component';\r\nimport { RaqmToasterComponent } from './toaster.component';\r\n\r\nexport {\r\n RaqmToastComponent,\r\n RaqmToastTitleDirective,\r\n RaqmToastContentDirective,\r\n RaqmToastDescriptionDirective,\r\n RaqmToastActionDirective,\r\n RaqmToastCloseComponent,\r\n RaqmToastIconComponent,\r\n};\r\nexport { RaqmToasterComponent } from './toaster.component';\r\nexport { RaqmToastService } from './toast.service';\r\nexport type {\r\n RaqmToastActionOptions,\r\n RaqmToastId,\r\n RaqmToastOptions,\r\n RaqmToastRecord,\r\n RaqmToastType,\r\n} from './toast.service';\r\n\r\nexport const RaqmToast = [\r\n RaqmToastComponent,\r\n RaqmToastTitleDirective,\r\n RaqmToastContentDirective,\r\n RaqmToastDescriptionDirective,\r\n RaqmToastActionDirective,\r\n RaqmToastCloseComponent,\r\n RaqmToastIconComponent,\r\n RaqmToasterComponent,\r\n] as const;\r\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@raqm/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Angular UI components with Raqm UI's own design and API: standalone, signal-based, RTL-ready and built on the Angular CDK.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Raqm UI contributors",
|
|
@@ -269,10 +269,9 @@
|
|
|
269
269
|
"@angular/forms": "^22.2.2"
|
|
270
270
|
},
|
|
271
271
|
"dependencies": {
|
|
272
|
-
"embla-carousel": "8.5.2"
|
|
273
|
-
"tslib": "^2.3.0"
|
|
272
|
+
"embla-carousel": "8.5.2"
|
|
274
273
|
},
|
|
275
274
|
"module": "fesm2022/raqm-ui.mjs",
|
|
276
275
|
"typings": "types/raqm-ui.d.ts",
|
|
277
276
|
"type": "module"
|
|
278
|
-
}
|
|
277
|
+
}
|