@raintonic/formaui 0.9.2 → 0.9.3
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/fesm2022/raintonic-formaui-components-alert.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-avatar.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-avatar.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-card.mjs +78 -8
- package/fesm2022/raintonic-formaui-components-card.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-chip.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-chip.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-data-table.mjs +80 -11
- package/fesm2022/raintonic-formaui-components-data-table.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-drawer.mjs +37 -6
- package/fesm2022/raintonic-formaui-components-drawer.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-dual-tier-navigation.mjs +1 -1
- package/fesm2022/raintonic-formaui-components-dual-tier-navigation.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-form-field.mjs +21 -2
- package/fesm2022/raintonic-formaui-components-form-field.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-input.mjs +14 -0
- package/fesm2022/raintonic-formaui-components-input.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-select.mjs +13 -5
- package/fesm2022/raintonic-formaui-components-select.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-side-panel.mjs +40 -6
- package/fesm2022/raintonic-formaui-components-side-panel.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-toggle-group.mjs +16 -5
- package/fesm2022/raintonic-formaui-components-toggle-group.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-toolbar.mjs +10 -4
- package/fesm2022/raintonic-formaui-components-toolbar.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-tooltip.mjs +102 -8
- package/fesm2022/raintonic-formaui-components-tooltip.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-services-dialog.mjs +8 -4
- package/fesm2022/raintonic-formaui-services-dialog.mjs.map +1 -1
- package/fesm2022/raintonic-formaui.mjs +1 -1
- package/fesm2022/raintonic-formaui.mjs.map +1 -1
- package/llms-full.txt +64 -19
- package/package.json +1 -1
- package/styles/generated/_tokens.scss +1 -1
- package/styles/partials/components/_dialog.scss +24 -0
- package/styles/styles.css +16 -1
- package/types/raintonic-formaui-components-card.d.ts +46 -2
- package/types/raintonic-formaui-components-card.d.ts.map +1 -1
- package/types/raintonic-formaui-components-data-table.d.ts +50 -3
- package/types/raintonic-formaui-components-data-table.d.ts.map +1 -1
- package/types/raintonic-formaui-components-drawer.d.ts +20 -2
- package/types/raintonic-formaui-components-drawer.d.ts.map +1 -1
- package/types/raintonic-formaui-components-form-field.d.ts +10 -0
- package/types/raintonic-formaui-components-form-field.d.ts.map +1 -1
- package/types/raintonic-formaui-components-input.d.ts +9 -0
- package/types/raintonic-formaui-components-input.d.ts.map +1 -1
- package/types/raintonic-formaui-components-select.d.ts +8 -1
- package/types/raintonic-formaui-components-select.d.ts.map +1 -1
- package/types/raintonic-formaui-components-side-panel.d.ts +24 -2
- package/types/raintonic-formaui-components-side-panel.d.ts.map +1 -1
- package/types/raintonic-formaui-components-toggle-group.d.ts +1 -1
- package/types/raintonic-formaui-components-toggle-group.d.ts.map +1 -1
- package/types/raintonic-formaui-components-toolbar.d.ts +5 -1
- package/types/raintonic-formaui-components-toolbar.d.ts.map +1 -1
- package/types/raintonic-formaui-components-tooltip.d.ts +55 -4
- package/types/raintonic-formaui-components-tooltip.d.ts.map +1 -1
- package/types/raintonic-formaui-services-dialog.d.ts +12 -1
- package/types/raintonic-formaui-services-dialog.d.ts.map +1 -1
- package/types/raintonic-formaui.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raintonic-formaui-components-tooltip.mjs","sources":["../../../lib/components/tooltip/tooltip.types.ts","../../../lib/components/tooltip/tooltip.component.ts","../../../lib/components/tooltip/tooltip.component.html","../../../lib/components/tooltip/tooltip.directive.ts","../../../lib/components/tooltip/index.ts","../../../lib/components/tooltip/raintonic-formaui-components-tooltip.ts"],"sourcesContent":["/**\r\n * Available tooltip positions relative to the trigger element\r\n */\r\nexport type TooltipPosition =\r\n | 'top'\r\n | 'top-start'\r\n | 'top-end'\r\n | 'bottom'\r\n | 'bottom-start'\r\n | 'bottom-end'\r\n | 'left'\r\n | 'left-start'\r\n | 'left-end'\r\n | 'right'\r\n | 'right-start'\r\n | 'right-end';\r\n\r\n/**\r\n * Available tooltip sizes\r\n */\r\nexport type TooltipSize = 'sm' | 'md' | 'lg';\r\n\r\n/**\r\n * Tooltip trigger events\r\n */\r\nexport type TooltipTrigger = 'hover' | 'focus' | 'click' | 'manual';\r\n\r\n/**\r\n * Constants for validation\r\n */\r\nexport const TOOLTIP_POSITIONS = [\r\n 'top',\r\n 'top-start',\r\n 'top-end',\r\n 'bottom',\r\n 'bottom-start',\r\n 'bottom-end',\r\n 'left',\r\n 'left-start',\r\n 'left-end',\r\n 'right',\r\n 'right-start',\r\n 'right-end',\r\n] as const;\r\n\r\nexport const TOOLTIP_SIZES = ['sm', 'md', 'lg'] as const;\r\nexport const TOOLTIP_TRIGGERS = ['hover', 'focus', 'click', 'manual'] as const;\r\n\r\n/**\r\n * Tooltip configuration interface\r\n */\r\nexport interface TooltipConfig {\r\n position?: TooltipPosition;\r\n size?: TooltipSize;\r\n trigger?: TooltipTrigger;\r\n showDelay?: number;\r\n hideDelay?: number;\r\n disabled?: boolean;\r\n maxWidth?: string;\r\n offset?: number;\r\n arrow?: boolean;\r\n}\r\n","import { Component, input, computed, Signal, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { TooltipPosition, TooltipSize } from './tooltip.types';\r\n\r\n/**\r\n * @component FuiTooltipComponent\r\n * @selector fui-tooltip\r\n * @description Internal tooltip component rendered by FuiTooltipDirective via the overlay system.\r\n * Not intended for direct use; created programmatically by the directive.\r\n *\r\n * @input content - (required) Tooltip text content.\r\n * @input position - (required) Tooltip position relative to the trigger element.\r\n * @input size - (required) Tooltip size variant.\r\n * @input maxWidth - (required) Maximum CSS width of the tooltip.\r\n * @input arrow - (required) Whether to render an arrow indicator.\r\n * @input tooltipId - (required) Unique ID for ARIA accessibility linking.\r\n *\r\n * @example\r\n * <!-- Used internally by FuiTooltipDirective -->\r\n * <button fuiTooltip=\"Save your changes\">Save</button>\r\n *\r\n * @internal\r\n */\r\n@Component({\r\n selector: 'fui-tooltip',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './tooltip.component.html',\r\n styleUrl: './tooltip.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n class: 'fui-tooltip',\r\n '[class]': 'computedClasses()',\r\n '[id]': 'tooltipId()',\r\n '[attr.role]': '\"tooltip\"',\r\n '[style.max-width]': 'maxWidth()',\r\n },\r\n})\r\nexport class FuiTooltipComponent {\r\n /**\r\n * Tooltip content text\r\n */\r\n readonly content = input.required<string>();\r\n\r\n /**\r\n * Tooltip position\r\n */\r\n readonly position = input.required<TooltipPosition>();\r\n\r\n /**\r\n * Tooltip size\r\n */\r\n readonly size = input.required<TooltipSize>();\r\n\r\n /**\r\n * Maximum width of the tooltip\r\n */\r\n readonly maxWidth = input.required<string>();\r\n\r\n /**\r\n * Whether to show arrow\r\n */\r\n readonly arrow = input.required<boolean>();\r\n\r\n /**\r\n * Tooltip ID for accessibility\r\n */\r\n readonly tooltipId = input.required<string>();\r\n\r\n /**\r\n * Computed CSS classes for the tooltip\r\n */\r\n readonly computedClasses: Signal<string> = computed(() => {\r\n const classes: string[] = ['fui-tooltip', `fui-tooltip--${this.size()}`, `fui-tooltip--${this.position()}`];\r\n\r\n if (this.arrow()) {\r\n classes.push('fui-tooltip--with-arrow');\r\n }\r\n\r\n return classes.join(' ');\r\n });\r\n\r\n /**\r\n * Computed arrow classes based on position\r\n */\r\n readonly arrowClasses: Signal<string> = computed(() => {\r\n const position = this.position();\r\n const baseClass = 'fui-tooltip__arrow';\r\n\r\n if (position.startsWith('top')) {\r\n return `${baseClass} ${baseClass}--bottom`;\r\n } else if (position.startsWith('bottom')) {\r\n return `${baseClass} ${baseClass}--top`;\r\n } else if (position.startsWith('left')) {\r\n return `${baseClass} ${baseClass}--right`;\r\n } else if (position.startsWith('right')) {\r\n return `${baseClass} ${baseClass}--left`;\r\n }\r\n\r\n return baseClass;\r\n });\r\n}\r\n","<div class=\"fui-tooltip__content\">\r\n {{ content() }}\r\n</div>\r\n@if (arrow()) {\r\n <div [class]=\"arrowClasses()\"></div>\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n input,\r\n computed,\r\n effect,\r\n HostListener,\r\n inject,\r\n Signal,\r\n OnDestroy,\r\n booleanAttribute,\r\n numberAttribute,\r\n ComponentRef,\r\n createComponent,\r\n EnvironmentInjector,\r\n signal,\r\n WritableSignal,\r\n} from '@angular/core';\r\nimport {\r\n TooltipPosition,\r\n TooltipSize,\r\n TooltipTrigger,\r\n TOOLTIP_POSITIONS,\r\n TOOLTIP_SIZES,\r\n TOOLTIP_TRIGGERS,\r\n} from './tooltip.types';\r\nimport { FuiTooltipComponent } from './tooltip.component';\r\nimport { FuiOverlayService, FuiOverlayRef, FuiConnectedPosition } from '@raintonic/formaui/cdk/overlay';\r\n\r\n/**\r\n * # Tooltip Directive\r\n *\r\n * A professional tooltip directive that provides contextual information on hover, focus, or click.\r\n * Follows Material Design patterns with full accessibility support and advanced positioning.\r\n *\r\n * ## Features\r\n * - Multiple positioning options (12 positions)\r\n * - Configurable trigger events (hover, focus, click, manual)\r\n * - Multiple variants for different semantic meanings\r\n * - Flexible sizing options\r\n * - Smart positioning with collision detection\r\n * - Customizable delays and animations\r\n * - Full accessibility support (ARIA attributes, keyboard navigation)\r\n * - Arrow indicator support\r\n * - Responsive design with max-width control\r\n * - Theme support (light/dark)\r\n *\r\n * ## Usage\r\n *\r\n * ### Basic Tooltip\r\n * ```html\r\n * <button fuiTooltip=\"Save your changes\">Save</button>\r\n * ```\r\n *\r\n * ### Advanced Configuration\r\n * ```html\r\n * <button fuiTooltip=\"Delete this item permanently\"\r\n * fuiTooltipPosition=\"top\"\r\n * fuiTooltipVariant=\"error\"\r\n * fuiTooltipSize=\"lg\"\r\n * [fuiTooltipShowDelay]=\"500\">\r\n * Delete\r\n * </button>\r\n * ```\r\n *\r\n * ### Click Trigger\r\n * ```html\r\n * <span fuiTooltip=\"Click to copy\"\r\n * fuiTooltipTrigger=\"click\"\r\n * fuiTooltipPosition=\"bottom\">\r\n * 📋 Copy to clipboard\r\n * </span>\r\n * ```\r\n *\r\n * ### Manual Control\r\n * ```html\r\n * <div fuiTooltip=\"Manual tooltip\"\r\n * fuiTooltipTrigger=\"manual\"\r\n * [fuiTooltipShow]=\"showTooltip\">\r\n * Hover me\r\n * </div>\r\n * ```\r\n *\r\n * @example\r\n * ```typescript\r\n * import { FuiTooltipDirective } from '@raintonic/formaui/components/tooltip';\r\n *\r\n * @Component({\r\n * standalone: true,\r\n * imports: [FuiTooltipDirective],\r\n * template: `\r\n * <button fuiTooltip=\"This will save your work\"\r\n * fuiTooltipPosition=\"top\"\r\n * fuiTooltipVariant=\"info\">\r\n * Save Document\r\n * </button>\r\n * `\r\n * })\r\n * export class MyComponent { }\r\n * ```\r\n */\r\n@Directive({\r\n selector: '[fuiTooltip]',\r\n standalone: true,\r\n exportAs: 'fuiTooltip',\r\n host: {\r\n '[attr.aria-describedby]': 'isVisible() ? tooltipId() : null',\r\n },\r\n})\r\nexport class FuiTooltipDirective implements OnDestroy {\r\n private static _nextId = 0;\r\n /**\r\n * Tooltip content text\r\n */\r\n readonly fuiTooltip = input.required<string>();\r\n\r\n /**\r\n * Tooltip position relative to the trigger element\r\n * @default 'top'\r\n */\r\n readonly fuiTooltipPosition = input<TooltipPosition, TooltipPosition | string>('top', {\r\n transform: (v) => ((TOOLTIP_POSITIONS as readonly string[]).includes(v) ? (v as TooltipPosition) : 'top'),\r\n });\r\n\r\n /**\r\n * Tooltip size\r\n * @default 'md'\r\n */\r\n readonly fuiTooltipSize = input<TooltipSize, TooltipSize | string>('md', {\r\n transform: (v) => ((TOOLTIP_SIZES as readonly string[]).includes(v) ? (v as TooltipSize) : 'md'),\r\n });\r\n\r\n /**\r\n * Tooltip trigger event\r\n * @default 'hover'\r\n */\r\n readonly fuiTooltipTrigger = input<TooltipTrigger, TooltipTrigger | string>('hover', {\r\n transform: (v) => ((TOOLTIP_TRIGGERS as readonly string[]).includes(v) ? (v as TooltipTrigger) : 'hover'),\r\n });\r\n\r\n /**\r\n * Delay before showing tooltip (in milliseconds)\r\n * @default 500\r\n */\r\n readonly fuiTooltipShowDelay = input<number, unknown>(500, { transform: numberAttribute });\r\n\r\n /**\r\n * Delay before hiding tooltip (in milliseconds)\r\n * @default 0\r\n */\r\n readonly fuiTooltipHideDelay = input<number, unknown>(0, { transform: numberAttribute });\r\n\r\n /**\r\n * Whether the tooltip is disabled\r\n * @default false\r\n */\r\n readonly fuiTooltipDisabled = input<boolean, unknown>(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Maximum width of the tooltip\r\n * @default '200px'\r\n */\r\n readonly fuiTooltipMaxWidth = input('200px');\r\n\r\n /**\r\n * Offset distance from the trigger element (in pixels)\r\n * @default 8\r\n */\r\n readonly fuiTooltipOffset = input<number, unknown>(8, { transform: numberAttribute });\r\n\r\n /**\r\n * Whether to show an arrow pointing to the trigger element\r\n * @default true\r\n */\r\n readonly fuiTooltipArrow = input<boolean, unknown>(true, { transform: booleanAttribute });\r\n\r\n /**\r\n * Manual control for showing/hiding tooltip (only works with trigger=\"manual\")\r\n * @default false\r\n */\r\n readonly fuiTooltipShow = input<boolean, unknown>(false, { transform: booleanAttribute });\r\n\r\n // Internal state\r\n private readonly _isVisible: WritableSignal<boolean> = signal(false);\r\n private readonly _tooltipId: WritableSignal<string> = signal('');\r\n private _overlayRef: FuiOverlayRef | null = null;\r\n private _tooltipComponent: ComponentRef<FuiTooltipComponent> | null = null;\r\n private _showTimeout: number | null = null;\r\n private _hideTimeout: number | null = null;\r\n private _destroyed = false;\r\n private _isHoveringTooltip = false;\r\n\r\n // Computed properties\r\n readonly isVisible: Signal<boolean> = computed(() => this._isVisible());\r\n readonly tooltipId: Signal<string> = computed(() => this._tooltipId());\r\n\r\n // Injected dependencies\r\n private readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\r\n private readonly _overlayService: FuiOverlayService = inject(FuiOverlayService);\r\n private readonly _environmentInjector: EnvironmentInjector = inject(EnvironmentInjector);\r\n\r\n constructor() {\r\n // Generate unique tooltip ID\r\n this._tooltipId.set(`fui-tooltip-${FuiTooltipDirective._nextId++}`);\r\n\r\n // Handle manual control\r\n effect(() => {\r\n if (this.fuiTooltipTrigger() === 'manual') {\r\n if (this.fuiTooltipShow()) {\r\n this._showTooltip();\r\n } else {\r\n this._hideTooltip();\r\n }\r\n }\r\n });\r\n\r\n // Handle disabled state\r\n effect(() => {\r\n if (this.fuiTooltipDisabled() && this._isVisible()) {\r\n this._hideTooltip();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroyed = true;\r\n this._clearTimeouts();\r\n this._destroyTooltip();\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter(): void {\r\n if (this.fuiTooltipTrigger() === 'hover' && !this.fuiTooltipDisabled()) {\r\n this._scheduleShow();\r\n }\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave(): void {\r\n if (this.fuiTooltipTrigger() === 'hover' && !this.fuiTooltipDisabled()) {\r\n this._scheduleHide();\r\n }\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus(): void {\r\n if ((this.fuiTooltipTrigger() === 'focus' || this.fuiTooltipTrigger() === 'hover') && !this.fuiTooltipDisabled()) {\r\n this._scheduleShow();\r\n }\r\n }\r\n\r\n @HostListener('blur')\r\n onBlur(): void {\r\n if ((this.fuiTooltipTrigger() === 'focus' || this.fuiTooltipTrigger() === 'hover') && !this.fuiTooltipDisabled()) {\r\n this._scheduleHide();\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n onClick(): void {\r\n if (this.fuiTooltipTrigger() === 'click' && !this.fuiTooltipDisabled()) {\r\n if (this._isVisible()) {\r\n this._hideTooltip();\r\n } else {\r\n this._showTooltip();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'Escape' && this._isVisible()) {\r\n this._hideTooltip();\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * Programmatically show the tooltip\r\n */\r\n show(): void {\r\n if (!this.fuiTooltipDisabled()) {\r\n this._showTooltip();\r\n }\r\n }\r\n\r\n /**\r\n * Programmatically hide the tooltip\r\n */\r\n hide(): void {\r\n this._hideTooltip();\r\n }\r\n\r\n /**\r\n * Toggle tooltip visibility\r\n */\r\n toggle(): void {\r\n if (this._isVisible()) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n }\r\n\r\n private _scheduleShow(): void {\r\n if (this._destroyed) {\r\n return;\r\n }\r\n this._clearTimeouts();\r\n\r\n if (this.fuiTooltipShowDelay() > 0) {\r\n this._showTimeout = window.setTimeout(() => {\r\n this._showTooltip();\r\n }, this.fuiTooltipShowDelay());\r\n } else {\r\n this._showTooltip();\r\n }\r\n }\r\n\r\n private _scheduleHide(): void {\r\n this._clearTimeouts();\r\n\r\n if (this.fuiTooltipHideDelay() > 0) {\r\n this._hideTimeout = window.setTimeout(() => {\r\n if (!this._isHoveringTooltip) {\r\n this._hideTooltip();\r\n }\r\n }, this.fuiTooltipHideDelay());\r\n } else {\r\n if (!this._isHoveringTooltip) {\r\n this._hideTooltip();\r\n }\r\n }\r\n }\r\n\r\n private _showTooltip(): void {\r\n if (this._destroyed || this._isVisible() || this.fuiTooltipDisabled() || !this.fuiTooltip().trim()) {\r\n return;\r\n }\r\n\r\n this._createTooltip();\r\n this._isVisible.set(true);\r\n\r\n // Add click outside listener for click trigger\r\n if (this.fuiTooltipTrigger() === 'click') {\r\n setTimeout(() => {\r\n document.addEventListener('click', this._onDocumentClick, true);\r\n });\r\n }\r\n }\r\n\r\n private _hideTooltip(): void {\r\n if (!this._isVisible()) {\r\n return;\r\n }\r\n\r\n this._isVisible.set(false);\r\n this._destroyTooltip();\r\n document.removeEventListener('click', this._onDocumentClick, true);\r\n }\r\n\r\n private _createTooltip(): void {\r\n if (this._overlayRef) {\r\n return;\r\n }\r\n\r\n // Create tooltip component first\r\n this._tooltipComponent = createComponent(FuiTooltipComponent, {\r\n environmentInjector: this._environmentInjector,\r\n });\r\n\r\n // Set tooltip properties immediately\r\n this._tooltipComponent.setInput('content', this.fuiTooltip());\r\n this._tooltipComponent.setInput('position', this.fuiTooltipPosition());\r\n this._tooltipComponent.setInput('size', this.fuiTooltipSize());\r\n this._tooltipComponent.setInput('maxWidth', this.fuiTooltipMaxWidth());\r\n this._tooltipComponent.setInput('arrow', this.fuiTooltipArrow());\r\n this._tooltipComponent.setInput('tooltipId', this.tooltipId());\r\n\r\n // Trigger change detection to ensure component is rendered with correct props\r\n this._tooltipComponent.changeDetectorRef.detectChanges();\r\n\r\n // Now create overlay with positioning strategy\r\n const positions = this._getPositionsForTooltipPosition(this.fuiTooltipPosition());\r\n const positionStrategy = this._overlayService\r\n .position()\r\n .connectedTo(this._elementRef, positions)\r\n .withPush(true)\r\n .withViewportMargin(8);\r\n\r\n // Create overlay\r\n this._overlayRef = this._overlayService.create({\r\n positionStrategy,\r\n scrollStrategy: this._overlayService.scrollStrategies.reposition(20),\r\n panelClass: 'fui-tooltip-panel',\r\n });\r\n\r\n // Attach component to overlay\r\n this._overlayRef.attach(this._tooltipComponent);\r\n\r\n // Set up hover events for tooltip persistence\r\n const tooltipElement = this._tooltipComponent.location.nativeElement;\r\n\r\n tooltipElement.addEventListener('mouseenter', () => {\r\n this._isHoveringTooltip = true;\r\n this._clearTimeouts();\r\n });\r\n\r\n tooltipElement.addEventListener('mouseleave', () => {\r\n this._isHoveringTooltip = false;\r\n if (this.fuiTooltipTrigger() === 'hover') {\r\n this._scheduleHide();\r\n }\r\n });\r\n }\r\n\r\n private _getPositionsForTooltipPosition(position: TooltipPosition): FuiConnectedPosition[] {\r\n const offset = this.fuiTooltipOffset();\r\n const positionMap: Record<TooltipPosition, FuiConnectedPosition[]> = {\r\n top: [\r\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -offset },\r\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: offset },\r\n ],\r\n 'top-start': [\r\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -offset },\r\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: offset },\r\n ],\r\n 'top-end': [\r\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -offset },\r\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: offset },\r\n ],\r\n bottom: [\r\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: offset },\r\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -offset },\r\n ],\r\n 'bottom-start': [\r\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: offset },\r\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -offset },\r\n ],\r\n 'bottom-end': [\r\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: offset },\r\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -offset },\r\n ],\r\n left: [\r\n { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -offset },\r\n { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: offset },\r\n ],\r\n 'left-start': [\r\n { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top', offsetX: -offset },\r\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top', offsetX: offset },\r\n ],\r\n 'left-end': [\r\n { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom', offsetX: -offset },\r\n { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom', offsetX: offset },\r\n ],\r\n right: [\r\n { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: offset },\r\n { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -offset },\r\n ],\r\n 'right-start': [\r\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top', offsetX: offset },\r\n { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top', offsetX: -offset },\r\n ],\r\n 'right-end': [\r\n { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom', offsetX: offset },\r\n { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom', offsetX: -offset },\r\n ],\r\n };\r\n\r\n return positionMap[position] || positionMap.top;\r\n }\r\n\r\n private _destroyTooltip(): void {\r\n if (this._overlayRef) {\r\n this._overlayRef.dispose();\r\n this._overlayRef = null;\r\n }\r\n\r\n if (this._tooltipComponent) {\r\n this._tooltipComponent.destroy();\r\n this._tooltipComponent = null;\r\n }\r\n }\r\n\r\n private _clearTimeouts(): void {\r\n if (this._showTimeout) {\r\n clearTimeout(this._showTimeout);\r\n this._showTimeout = null;\r\n }\r\n if (this._hideTimeout) {\r\n clearTimeout(this._hideTimeout);\r\n this._hideTimeout = null;\r\n }\r\n }\r\n\r\n private readonly _onDocumentClick = (event: Event): void => {\r\n const target = event.target as HTMLElement;\r\n const triggerElement = this._elementRef.nativeElement;\r\n const tooltipElement = this._tooltipComponent?.location.nativeElement;\r\n\r\n if (target && !triggerElement.contains(target) && !tooltipElement?.contains(target)) {\r\n this._hideTooltip();\r\n }\r\n };\r\n}\r\n","// Public API for tooltip component\r\nexport * from './tooltip.directive';\r\nexport * from './tooltip.component';\r\nexport * from './tooltip.types';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"raintonic-formaui-components-tooltip.mjs","sources":["../../../lib/components/tooltip/tooltip.types.ts","../../../lib/components/tooltip/tooltip.component.ts","../../../lib/components/tooltip/tooltip.component.html","../../../lib/components/tooltip/tooltip.directive.ts","../../../lib/components/tooltip/index.ts","../../../lib/components/tooltip/raintonic-formaui-components-tooltip.ts"],"sourcesContent":["/**\r\n * Available tooltip positions relative to the trigger element\r\n */\r\nexport type TooltipPosition =\r\n | 'top'\r\n | 'top-start'\r\n | 'top-end'\r\n | 'bottom'\r\n | 'bottom-start'\r\n | 'bottom-end'\r\n | 'left'\r\n | 'left-start'\r\n | 'left-end'\r\n | 'right'\r\n | 'right-start'\r\n | 'right-end';\r\n\r\n/**\r\n * Available tooltip sizes\r\n */\r\nexport type TooltipSize = 'sm' | 'md' | 'lg';\r\n\r\n/**\r\n * Available tooltip text alignments\r\n */\r\nexport type TooltipTextAlign = 'left' | 'center' | 'right';\r\n\r\n/**\r\n * Tooltip trigger events\r\n */\r\nexport type TooltipTrigger = 'hover' | 'focus' | 'click' | 'manual';\r\n\r\n/**\r\n * Constants for validation\r\n */\r\nexport const TOOLTIP_POSITIONS = [\r\n 'top',\r\n 'top-start',\r\n 'top-end',\r\n 'bottom',\r\n 'bottom-start',\r\n 'bottom-end',\r\n 'left',\r\n 'left-start',\r\n 'left-end',\r\n 'right',\r\n 'right-start',\r\n 'right-end',\r\n] as const;\r\n\r\nexport const TOOLTIP_SIZES = ['sm', 'md', 'lg'] as const;\r\nexport const TOOLTIP_TRIGGERS = ['hover', 'focus', 'click', 'manual'] as const;\r\nexport const TOOLTIP_TEXT_ALIGNS = ['left', 'center', 'right'] as const;\r\n\r\n/**\r\n * Tooltip configuration interface\r\n */\r\nexport interface TooltipConfig {\r\n position?: TooltipPosition;\r\n size?: TooltipSize;\r\n textAlign?: TooltipTextAlign;\r\n trigger?: TooltipTrigger;\r\n showDelay?: number;\r\n hideDelay?: number;\r\n disabled?: boolean;\r\n maxWidth?: string;\r\n offset?: number;\r\n arrow?: boolean;\r\n}\r\n","import { Component, input, computed, Signal, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { TooltipPosition, TooltipSize, TooltipTextAlign } from './tooltip.types';\r\n\r\n/**\r\n * @component FuiTooltipComponent\r\n * @selector fui-tooltip\r\n * @description Internal tooltip component rendered by FuiTooltipDirective via the overlay system.\r\n * Not intended for direct use; created programmatically by the directive.\r\n *\r\n * @input content - (required) Tooltip text content.\r\n * @input position - (required) Tooltip position relative to the trigger element.\r\n * @input size - (required) Tooltip size variant.\r\n * @input maxWidth - (required) Maximum CSS width of the tooltip.\r\n * @input arrow - (required) Whether to render an arrow indicator.\r\n * @input tooltipId - (required) Unique ID for ARIA accessibility linking.\r\n *\r\n * @example\r\n * <!-- Used internally by FuiTooltipDirective -->\r\n * <button fuiTooltip=\"Save your changes\">Save</button>\r\n *\r\n * @internal\r\n */\r\n@Component({\r\n selector: 'fui-tooltip',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './tooltip.component.html',\r\n styleUrl: './tooltip.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n class: 'fui-tooltip',\r\n '[class]': 'computedClasses()',\r\n '[id]': 'tooltipId()',\r\n '[attr.role]': '\"tooltip\"',\r\n '[style.max-width]': 'maxWidth()',\r\n },\r\n})\r\nexport class FuiTooltipComponent {\r\n /**\r\n * Tooltip content text\r\n */\r\n readonly content = input.required<string>();\r\n\r\n /**\r\n * Tooltip position\r\n */\r\n readonly position = input.required<TooltipPosition>();\r\n\r\n /**\r\n * Tooltip size\r\n */\r\n readonly size = input.required<TooltipSize>();\r\n\r\n /**\r\n * Tooltip text alignment\r\n */\r\n readonly textAlign = input.required<TooltipTextAlign>();\r\n\r\n /**\r\n * Maximum width of the tooltip\r\n */\r\n readonly maxWidth = input.required<string>();\r\n\r\n /**\r\n * Whether to show arrow\r\n */\r\n readonly arrow = input.required<boolean>();\r\n\r\n /**\r\n * Tooltip ID for accessibility\r\n */\r\n readonly tooltipId = input.required<string>();\r\n\r\n /**\r\n * Computed CSS classes for the tooltip\r\n */\r\n readonly computedClasses: Signal<string> = computed(() => {\r\n const classes: string[] = [\r\n 'fui-tooltip',\r\n `fui-tooltip--${this.size()}`,\r\n `fui-tooltip--${this.position()}`,\r\n `fui-tooltip--align-${this.textAlign()}`,\r\n ];\r\n\r\n if (this.arrow()) {\r\n classes.push('fui-tooltip--with-arrow');\r\n }\r\n\r\n return classes.join(' ');\r\n });\r\n\r\n /**\r\n * Computed arrow classes based on position\r\n */\r\n readonly arrowClasses: Signal<string> = computed(() => {\r\n const position = this.position();\r\n const baseClass = 'fui-tooltip__arrow';\r\n\r\n if (position.startsWith('top')) {\r\n return `${baseClass} ${baseClass}--bottom`;\r\n } else if (position.startsWith('bottom')) {\r\n return `${baseClass} ${baseClass}--top`;\r\n } else if (position.startsWith('left')) {\r\n return `${baseClass} ${baseClass}--right`;\r\n } else if (position.startsWith('right')) {\r\n return `${baseClass} ${baseClass}--left`;\r\n }\r\n\r\n return baseClass;\r\n });\r\n}\r\n","<div class=\"fui-tooltip__content\">\r\n {{ content() }}\r\n</div>\r\n@if (arrow()) {\r\n <div [class]=\"arrowClasses()\"></div>\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n input,\r\n computed,\r\n effect,\r\n HostListener,\r\n inject,\r\n Signal,\r\n OnDestroy,\r\n booleanAttribute,\r\n numberAttribute,\r\n ComponentRef,\r\n createComponent,\r\n EnvironmentInjector,\r\n Renderer2,\r\n signal,\r\n WritableSignal,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n TooltipPosition,\r\n TooltipSize,\r\n TooltipTextAlign,\r\n TooltipTrigger,\r\n TOOLTIP_POSITIONS,\r\n TOOLTIP_SIZES,\r\n TOOLTIP_TEXT_ALIGNS,\r\n TOOLTIP_TRIGGERS,\r\n} from './tooltip.types';\r\nimport { FuiTooltipComponent } from './tooltip.component';\r\nimport { FuiOverlayService, FuiOverlayRef, FuiConnectedPosition } from '@raintonic/formaui/cdk/overlay';\r\n\r\n/**\r\n * # Tooltip Directive\r\n *\r\n * A professional tooltip directive that provides contextual information on hover, focus, or click.\r\n * Follows Material Design patterns with full accessibility support and advanced positioning.\r\n *\r\n * ## Features\r\n * - Multiple positioning options (12 positions)\r\n * - Configurable trigger events (hover, focus, click, manual)\r\n * - Multiple variants for different semantic meanings\r\n * - Flexible sizing options\r\n * - Smart positioning with collision detection\r\n * - Customizable delays and animations\r\n * - Full accessibility support (ARIA attributes, keyboard navigation)\r\n * - Arrow indicator support\r\n * - Responsive design with max-width control\r\n * - Theme support (light/dark)\r\n *\r\n * ## Usage\r\n *\r\n * ### Basic Tooltip\r\n * ```html\r\n * <button fuiTooltip=\"Save your changes\">Save</button>\r\n * ```\r\n *\r\n * ### Advanced Configuration\r\n * ```html\r\n * <button fuiTooltip=\"Delete this item permanently\"\r\n * fuiTooltipPosition=\"top\"\r\n * fuiTooltipVariant=\"error\"\r\n * fuiTooltipSize=\"lg\"\r\n * [fuiTooltipShowDelay]=\"500\">\r\n * Delete\r\n * </button>\r\n * ```\r\n *\r\n * ### Click Trigger\r\n * ```html\r\n * <span fuiTooltip=\"Click to copy\"\r\n * fuiTooltipTrigger=\"click\"\r\n * fuiTooltipPosition=\"bottom\">\r\n * 📋 Copy to clipboard\r\n * </span>\r\n * ```\r\n *\r\n * ### Manual Control\r\n * ```html\r\n * <div fuiTooltip=\"Manual tooltip\"\r\n * fuiTooltipTrigger=\"manual\"\r\n * [fuiTooltipShow]=\"showTooltip\">\r\n * Hover me\r\n * </div>\r\n * ```\r\n *\r\n * @example\r\n * ```typescript\r\n * import { FuiTooltipDirective } from '@raintonic/formaui/components/tooltip';\r\n *\r\n * @Component({\r\n * standalone: true,\r\n * imports: [FuiTooltipDirective],\r\n * template: `\r\n * <button fuiTooltip=\"This will save your work\"\r\n * fuiTooltipPosition=\"top\"\r\n * fuiTooltipVariant=\"info\">\r\n * Save Document\r\n * </button>\r\n * `\r\n * })\r\n * export class MyComponent { }\r\n * ```\r\n */\r\n@Directive({\r\n selector: '[fuiTooltip]',\r\n standalone: true,\r\n exportAs: 'fuiTooltip',\r\n host: {\r\n '[attr.aria-describedby]': 'isVisible() ? tooltipId() : null',\r\n },\r\n})\r\nexport class FuiTooltipDirective implements OnDestroy {\r\n private static _nextId = 0;\r\n /**\r\n * Tooltip content text\r\n */\r\n readonly fuiTooltip = input.required<string>();\r\n\r\n /**\r\n * Tooltip position relative to the trigger element\r\n * @default 'top'\r\n */\r\n readonly fuiTooltipPosition = input<TooltipPosition, TooltipPosition | string>('top', {\r\n transform: (v) => ((TOOLTIP_POSITIONS as readonly string[]).includes(v) ? (v as TooltipPosition) : 'top'),\r\n });\r\n\r\n /**\r\n * Tooltip size\r\n * @default 'md'\r\n */\r\n readonly fuiTooltipSize = input<TooltipSize, TooltipSize | string>('md', {\r\n transform: (v) => ((TOOLTIP_SIZES as readonly string[]).includes(v) ? (v as TooltipSize) : 'md'),\r\n });\r\n\r\n /**\r\n * Tooltip text alignment\r\n * @default 'left'\r\n */\r\n readonly fuiTooltipTextAlign = input<TooltipTextAlign, TooltipTextAlign | string>('left', {\r\n transform: (v) => ((TOOLTIP_TEXT_ALIGNS as readonly string[]).includes(v) ? (v as TooltipTextAlign) : 'left'),\r\n });\r\n\r\n /**\r\n * Tooltip trigger event\r\n * @default 'hover'\r\n */\r\n readonly fuiTooltipTrigger = input<TooltipTrigger, TooltipTrigger | string>('hover', {\r\n transform: (v) => ((TOOLTIP_TRIGGERS as readonly string[]).includes(v) ? (v as TooltipTrigger) : 'hover'),\r\n });\r\n\r\n /**\r\n * Delay before showing tooltip (in milliseconds)\r\n * @default 500\r\n */\r\n readonly fuiTooltipShowDelay = input<number, unknown>(500, { transform: numberAttribute });\r\n\r\n /**\r\n * Delay before hiding tooltip (in milliseconds)\r\n * @default 0\r\n */\r\n readonly fuiTooltipHideDelay = input<number, unknown>(0, { transform: numberAttribute });\r\n\r\n /**\r\n * Whether the tooltip is disabled\r\n * @default false\r\n */\r\n readonly fuiTooltipDisabled = input<boolean, unknown>(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Maximum width of the tooltip\r\n * @default '200px'\r\n */\r\n readonly fuiTooltipMaxWidth = input('200px');\r\n\r\n /**\r\n * Offset distance from the trigger element (in pixels)\r\n * @default 8\r\n */\r\n readonly fuiTooltipOffset = input<number, unknown>(8, { transform: numberAttribute });\r\n\r\n /**\r\n * Whether to show an arrow pointing to the trigger element\r\n * @default true\r\n */\r\n readonly fuiTooltipArrow = input<boolean, unknown>(true, { transform: booleanAttribute });\r\n\r\n /**\r\n * Manual control for showing/hiding tooltip (only works with trigger=\"manual\")\r\n * @default false\r\n */\r\n readonly fuiTooltipShow = input<boolean, unknown>(false, { transform: booleanAttribute });\r\n\r\n // Internal state\r\n private readonly _isVisible: WritableSignal<boolean> = signal(false);\r\n private readonly _tooltipId: WritableSignal<string> = signal('');\r\n private _overlayRef: FuiOverlayRef | null = null;\r\n private _tooltipComponent: ComponentRef<FuiTooltipComponent> | null = null;\r\n private _showTimeout: number | null = null;\r\n private _hideTimeout: number | null = null;\r\n private _destroyed = false;\r\n private _isHoveringTooltip = false;\r\n private _positionChangesSub: Subscription | null = null;\r\n\r\n // Computed properties\r\n readonly isVisible: Signal<boolean> = computed(() => this._isVisible());\r\n readonly tooltipId: Signal<string> = computed(() => this._tooltipId());\r\n\r\n // Injected dependencies\r\n private readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\r\n private readonly _overlayService: FuiOverlayService = inject(FuiOverlayService);\r\n private readonly _environmentInjector: EnvironmentInjector = inject(EnvironmentInjector);\r\n private readonly _renderer: Renderer2 = inject(Renderer2);\r\n\r\n constructor() {\r\n // Generate unique tooltip ID\r\n this._tooltipId.set(`fui-tooltip-${FuiTooltipDirective._nextId++}`);\r\n\r\n // Handle manual control\r\n effect(() => {\r\n if (this.fuiTooltipTrigger() === 'manual') {\r\n if (this.fuiTooltipShow()) {\r\n this._showTooltip();\r\n } else {\r\n this._hideTooltip();\r\n }\r\n }\r\n });\r\n\r\n // Handle disabled state\r\n effect(() => {\r\n if (this.fuiTooltipDisabled() && this._isVisible()) {\r\n this._hideTooltip();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroyed = true;\r\n this._clearTimeouts();\r\n this._destroyTooltip();\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter(): void {\r\n if (this.fuiTooltipTrigger() === 'hover' && !this.fuiTooltipDisabled()) {\r\n this._scheduleShow();\r\n }\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave(): void {\r\n if (this.fuiTooltipTrigger() === 'hover' && !this.fuiTooltipDisabled()) {\r\n this._scheduleHide();\r\n }\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus(): void {\r\n if ((this.fuiTooltipTrigger() === 'focus' || this.fuiTooltipTrigger() === 'hover') && !this.fuiTooltipDisabled()) {\r\n this._scheduleShow();\r\n }\r\n }\r\n\r\n @HostListener('blur')\r\n onBlur(): void {\r\n if ((this.fuiTooltipTrigger() === 'focus' || this.fuiTooltipTrigger() === 'hover') && !this.fuiTooltipDisabled()) {\r\n this._scheduleHide();\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n onClick(): void {\r\n if (this.fuiTooltipTrigger() === 'click' && !this.fuiTooltipDisabled()) {\r\n if (this._isVisible()) {\r\n this._hideTooltip();\r\n } else {\r\n this._showTooltip();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'Escape' && this._isVisible()) {\r\n this._hideTooltip();\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * Programmatically show the tooltip\r\n */\r\n show(): void {\r\n if (!this.fuiTooltipDisabled()) {\r\n this._showTooltip();\r\n }\r\n }\r\n\r\n /**\r\n * Programmatically hide the tooltip\r\n */\r\n hide(): void {\r\n this._hideTooltip();\r\n }\r\n\r\n /**\r\n * Toggle tooltip visibility\r\n */\r\n toggle(): void {\r\n if (this._isVisible()) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n }\r\n\r\n private _scheduleShow(): void {\r\n if (this._destroyed) {\r\n return;\r\n }\r\n this._clearTimeouts();\r\n\r\n if (this.fuiTooltipShowDelay() > 0) {\r\n this._showTimeout = window.setTimeout(() => {\r\n this._showTooltip();\r\n }, this.fuiTooltipShowDelay());\r\n } else {\r\n this._showTooltip();\r\n }\r\n }\r\n\r\n private _scheduleHide(): void {\r\n this._clearTimeouts();\r\n\r\n if (this.fuiTooltipHideDelay() > 0) {\r\n this._hideTimeout = window.setTimeout(() => {\r\n if (!this._isHoveringTooltip) {\r\n this._hideTooltip();\r\n }\r\n }, this.fuiTooltipHideDelay());\r\n } else {\r\n if (!this._isHoveringTooltip) {\r\n this._hideTooltip();\r\n }\r\n }\r\n }\r\n\r\n private _showTooltip(): void {\r\n if (this._destroyed || this._isVisible() || this.fuiTooltipDisabled() || !this.fuiTooltip().trim()) {\r\n return;\r\n }\r\n\r\n this._createTooltip();\r\n this._isVisible.set(true);\r\n\r\n // Add click outside listener for click trigger\r\n if (this.fuiTooltipTrigger() === 'click') {\r\n setTimeout(() => {\r\n document.addEventListener('click', this._onDocumentClick, true);\r\n });\r\n }\r\n }\r\n\r\n private _hideTooltip(): void {\r\n if (!this._isVisible()) {\r\n return;\r\n }\r\n\r\n this._isVisible.set(false);\r\n this._destroyTooltip();\r\n document.removeEventListener('click', this._onDocumentClick, true);\r\n }\r\n\r\n private _createTooltip(): void {\r\n if (this._overlayRef) {\r\n return;\r\n }\r\n\r\n // Create tooltip component first\r\n this._tooltipComponent = createComponent(FuiTooltipComponent, {\r\n environmentInjector: this._environmentInjector,\r\n });\r\n\r\n // Set tooltip properties immediately\r\n this._tooltipComponent.setInput('content', this.fuiTooltip());\r\n this._tooltipComponent.setInput('position', this.fuiTooltipPosition());\r\n this._tooltipComponent.setInput('size', this.fuiTooltipSize());\r\n this._tooltipComponent.setInput('textAlign', this.fuiTooltipTextAlign());\r\n this._tooltipComponent.setInput('maxWidth', this.fuiTooltipMaxWidth());\r\n this._tooltipComponent.setInput('arrow', this.fuiTooltipArrow());\r\n this._tooltipComponent.setInput('tooltipId', this.tooltipId());\r\n\r\n // Trigger change detection to ensure component is rendered with correct props\r\n this._tooltipComponent.changeDetectorRef.detectChanges();\r\n\r\n // Now create overlay with positioning strategy\r\n const positions = this._getPositionsForTooltipPosition(this.fuiTooltipPosition());\r\n const positionStrategy = this._overlayService\r\n .position()\r\n .connectedTo(this._elementRef, positions)\r\n .withPush(true)\r\n .withViewportMargin(8);\r\n\r\n // Keep the arrow pointing at the trigger center whenever the overlay is\r\n // (re)positioned — e.g. when `withPush` shifts the tooltip to stay within\r\n // the viewport, the CSS-centered arrow would otherwise miss the trigger.\r\n this._positionChangesSub = positionStrategy.positionChanges.subscribe(() => {\r\n this._updateArrowPosition();\r\n });\r\n\r\n // Create overlay\r\n this._overlayRef = this._overlayService.create({\r\n positionStrategy,\r\n scrollStrategy: this._overlayService.scrollStrategies.reposition(20),\r\n panelClass: 'fui-tooltip-panel',\r\n });\r\n\r\n // Attach component to overlay\r\n this._overlayRef.attach(this._tooltipComponent);\r\n\r\n // Set up hover events for tooltip persistence\r\n const tooltipElement = this._tooltipComponent.location.nativeElement;\r\n\r\n tooltipElement.addEventListener('mouseenter', () => {\r\n this._isHoveringTooltip = true;\r\n this._clearTimeouts();\r\n });\r\n\r\n tooltipElement.addEventListener('mouseleave', () => {\r\n this._isHoveringTooltip = false;\r\n if (this.fuiTooltipTrigger() === 'hover') {\r\n this._scheduleHide();\r\n }\r\n });\r\n }\r\n\r\n private _getPositionsForTooltipPosition(position: TooltipPosition): FuiConnectedPosition[] {\r\n const offset = this.fuiTooltipOffset();\r\n const positionMap: Record<TooltipPosition, FuiConnectedPosition[]> = {\r\n top: [\r\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -offset },\r\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: offset },\r\n ],\r\n 'top-start': [\r\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -offset },\r\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: offset },\r\n ],\r\n 'top-end': [\r\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -offset },\r\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: offset },\r\n ],\r\n bottom: [\r\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: offset },\r\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -offset },\r\n ],\r\n 'bottom-start': [\r\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: offset },\r\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -offset },\r\n ],\r\n 'bottom-end': [\r\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: offset },\r\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -offset },\r\n ],\r\n left: [\r\n { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -offset },\r\n { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: offset },\r\n ],\r\n 'left-start': [\r\n { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top', offsetX: -offset },\r\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top', offsetX: offset },\r\n ],\r\n 'left-end': [\r\n { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom', offsetX: -offset },\r\n { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom', offsetX: offset },\r\n ],\r\n right: [\r\n { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: offset },\r\n { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -offset },\r\n ],\r\n 'right-start': [\r\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top', offsetX: offset },\r\n { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top', offsetX: -offset },\r\n ],\r\n 'right-end': [\r\n { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom', offsetX: offset },\r\n { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom', offsetX: -offset },\r\n ],\r\n };\r\n\r\n return positionMap[position] || positionMap.top;\r\n }\r\n\r\n /**\r\n * Repositions the tooltip arrow so its tip stays aligned with the center of\r\n * the trigger element. The overlay's `withPush` behavior can slide the tooltip\r\n * sideways to keep it on-screen; without this correction the CSS-centered\r\n * arrow would drift away from the trigger.\r\n */\r\n private _updateArrowPosition(): void {\r\n if (!this._tooltipComponent || !this.fuiTooltipArrow()) {\r\n return;\r\n }\r\n\r\n const tooltipEl = this._tooltipComponent.location.nativeElement as HTMLElement;\r\n const arrowEl = tooltipEl.querySelector<HTMLElement>('.fui-tooltip__arrow');\r\n if (!arrowEl) {\r\n return;\r\n }\r\n\r\n // Measure against the overlay pane: it is the arrow's positioned ancestor\r\n // (position: fixed), so the computed offset maps directly to the arrow's\r\n // `left`/`top` without assuming the tooltip host fills the pane.\r\n const paneEl = this._overlayRef?.overlayElement ?? tooltipEl;\r\n const triggerRect = this._elementRef.nativeElement.getBoundingClientRect();\r\n const paneRect = paneEl.getBoundingClientRect();\r\n const position = this.fuiTooltipPosition();\r\n const isVertical = position.startsWith('left') || position.startsWith('right');\r\n const arrowEdge = (isVertical ? arrowEl.offsetHeight : arrowEl.offsetWidth) || 8;\r\n\r\n const { axis, offset } = computeTooltipArrowOffset(triggerRect, paneRect, position, arrowEdge);\r\n\r\n if (axis === 'y') {\r\n this._renderer.setStyle(arrowEl, 'top', `${offset}px`);\r\n this._renderer.setStyle(arrowEl, 'bottom', 'auto');\r\n this._renderer.setStyle(arrowEl, 'transform', 'translateY(-50%)');\r\n } else {\r\n this._renderer.setStyle(arrowEl, 'left', `${offset}px`);\r\n this._renderer.setStyle(arrowEl, 'right', 'auto');\r\n this._renderer.setStyle(arrowEl, 'transform', 'translateX(-50%)');\r\n }\r\n }\r\n\r\n private _destroyTooltip(): void {\r\n if (this._positionChangesSub) {\r\n this._positionChangesSub.unsubscribe();\r\n this._positionChangesSub = null;\r\n }\r\n\r\n if (this._overlayRef) {\r\n this._overlayRef.dispose();\r\n this._overlayRef = null;\r\n }\r\n\r\n if (this._tooltipComponent) {\r\n this._tooltipComponent.destroy();\r\n this._tooltipComponent = null;\r\n }\r\n }\r\n\r\n private _clearTimeouts(): void {\r\n if (this._showTimeout) {\r\n clearTimeout(this._showTimeout);\r\n this._showTimeout = null;\r\n }\r\n if (this._hideTimeout) {\r\n clearTimeout(this._hideTimeout);\r\n this._hideTimeout = null;\r\n }\r\n }\r\n\r\n private readonly _onDocumentClick = (event: Event): void => {\r\n const target = event.target as HTMLElement;\r\n const triggerElement = this._elementRef.nativeElement;\r\n const tooltipElement = this._tooltipComponent?.location.nativeElement;\r\n\r\n if (target && !triggerElement.contains(target) && !tooltipElement?.contains(target)) {\r\n this._hideTooltip();\r\n }\r\n };\r\n}\r\n\r\n/** A minimal rectangle shape (subset of `DOMRect`) used for arrow math. */\r\nexport interface TooltipArrowRect {\r\n left: number;\r\n top: number;\r\n width: number;\r\n height: number;\r\n}\r\n\r\n/** Result of {@link computeTooltipArrowOffset}. */\r\nexport interface TooltipArrowOffset {\r\n /** Axis the offset applies to: `x` for top/bottom tooltips, `y` for left/right. */\r\n axis: 'x' | 'y';\r\n /** Pixel offset of the arrow center from the tooltip's top/left edge. */\r\n offset: number;\r\n}\r\n\r\n/**\r\n * Computes where the tooltip arrow must sit so that it points at the center of\r\n * the trigger, regardless of how far the overlay was pushed to stay on-screen.\r\n *\r\n * The offset is measured from the tooltip's own top/left edge and is clamped so\r\n * the arrow never overlaps the tooltip's rounded corners.\r\n *\r\n * @param triggerRect Bounding rect of the trigger element.\r\n * @param tooltipRect Bounding rect of the (already positioned) tooltip.\r\n * @param position Resolved tooltip position.\r\n * @param arrowEdge Size in px kept clear at each edge (typically the arrow's own extent).\r\n */\r\nexport function computeTooltipArrowOffset(\r\n triggerRect: TooltipArrowRect,\r\n tooltipRect: TooltipArrowRect,\r\n position: TooltipPosition,\r\n arrowEdge: number,\r\n): TooltipArrowOffset {\r\n const isVertical = position.startsWith('left') || position.startsWith('right');\r\n\r\n if (isVertical) {\r\n const triggerCenterY = triggerRect.top + triggerRect.height / 2;\r\n return { axis: 'y', offset: clampArrowOffset(triggerCenterY - tooltipRect.top, tooltipRect.height, arrowEdge) };\r\n }\r\n\r\n const triggerCenterX = triggerRect.left + triggerRect.width / 2;\r\n return { axis: 'x', offset: clampArrowOffset(triggerCenterX - tooltipRect.left, tooltipRect.width, arrowEdge) };\r\n}\r\n\r\n/** Clamps an arrow offset into `[edge, size - edge]`, falling back to center when the tooltip is too small. */\r\nfunction clampArrowOffset(offset: number, size: number, edge: number): number {\r\n const min = edge;\r\n const max = size - edge;\r\n if (min >= max) {\r\n return size / 2;\r\n }\r\n return Math.min(Math.max(offset, min), max);\r\n}\r\n","// Public API for tooltip component\r\nexport * from './tooltip.directive';\r\nexport * from './tooltip.component';\r\nexport * from './tooltip.types';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -424,7 +424,7 @@ class FuiDialogContainerComponent {
|
|
|
424
424
|
<ng-content></ng-content>
|
|
425
425
|
</div>
|
|
426
426
|
</div>
|
|
427
|
-
`, isInline: true, styles: [":host{display:block;outline:0}.fui-dialog-container{display:flex;flex-direction:column;box-sizing:border-box;overflow:auto;outline:0;max-height:inherit;border:1px solid var(--fui-border-default);border-radius:var(--fui-radius-md);background:var(--fui-bg-default);box-shadow:var(--fui-dialog-box-shadow, var(--fui-shadow-xl))}.fui-dialog-content{display:contents}.fui-dialog-enter{animation:fui-dialog-enter var(--fui-duration-moderate) var(--fui-ease-out)}.fui-dialog-exit{animation:fui-dialog-exit var(--fui-duration-base) var(--fui-ease-in)}@keyframes fui-dialog-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fui-dialog-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@media(prefers-reduced-motion:reduce){.fui-dialog-enter,.fui-dialog-exit{animation:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
427
|
+
`, isInline: true, styles: [":host{display:block;outline:0}.fui-dialog-container{display:flex;flex-direction:column;box-sizing:border-box;overflow:auto;outline:0;max-height:inherit;padding:var(--fui-dialog-container-padding, var(--fui-spacing-9));border:1px solid var(--fui-border-default);border-radius:var(--fui-radius-md);background:var(--fui-bg-default);box-shadow:var(--fui-dialog-box-shadow, var(--fui-shadow-xl))}.fui-dialog-content{display:contents}.fui-dialog-enter{animation:fui-dialog-enter var(--fui-duration-moderate) var(--fui-ease-out)}.fui-dialog-exit{animation:fui-dialog-exit var(--fui-duration-base) var(--fui-ease-in)}@keyframes fui-dialog-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fui-dialog-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@media(prefers-reduced-motion:reduce){.fui-dialog-enter,.fui-dialog-exit{animation:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
428
428
|
}
|
|
429
429
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: FuiDialogContainerComponent, decorators: [{
|
|
430
430
|
type: Component,
|
|
@@ -447,7 +447,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
|
|
|
447
447
|
</div>
|
|
448
448
|
`, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
449
449
|
class: 'fui-dialog-container-host',
|
|
450
|
-
}, styles: [":host{display:block;outline:0}.fui-dialog-container{display:flex;flex-direction:column;box-sizing:border-box;overflow:auto;outline:0;max-height:inherit;border:1px solid var(--fui-border-default);border-radius:var(--fui-radius-md);background:var(--fui-bg-default);box-shadow:var(--fui-dialog-box-shadow, var(--fui-shadow-xl))}.fui-dialog-content{display:contents}.fui-dialog-enter{animation:fui-dialog-enter var(--fui-duration-moderate) var(--fui-ease-out)}.fui-dialog-exit{animation:fui-dialog-exit var(--fui-duration-base) var(--fui-ease-in)}@keyframes fui-dialog-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fui-dialog-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@media(prefers-reduced-motion:reduce){.fui-dialog-enter,.fui-dialog-exit{animation:none}}\n"] }]
|
|
450
|
+
}, styles: [":host{display:block;outline:0}.fui-dialog-container{display:flex;flex-direction:column;box-sizing:border-box;overflow:auto;outline:0;max-height:inherit;padding:var(--fui-dialog-container-padding, var(--fui-spacing-9));border:1px solid var(--fui-border-default);border-radius:var(--fui-radius-md);background:var(--fui-bg-default);box-shadow:var(--fui-dialog-box-shadow, var(--fui-shadow-xl))}.fui-dialog-content{display:contents}.fui-dialog-enter{animation:fui-dialog-enter var(--fui-duration-moderate) var(--fui-ease-out)}.fui-dialog-exit{animation:fui-dialog-exit var(--fui-duration-base) var(--fui-ease-in)}@keyframes fui-dialog-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fui-dialog-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@media(prefers-reduced-motion:reduce){.fui-dialog-enter,.fui-dialog-exit{animation:none}}\n"] }]
|
|
451
451
|
}], propDecorators: { _dialogContainer: [{
|
|
452
452
|
type: ViewChild,
|
|
453
453
|
args: ['dialogContainer', { static: true }]
|
|
@@ -614,7 +614,11 @@ class FuiConfirmDialogComponent {
|
|
|
614
614
|
return 'info';
|
|
615
615
|
}
|
|
616
616
|
}, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
617
|
+
cancelButtonVariant = this.data.cancelButtonVariant ?? 'tertiary';
|
|
617
618
|
confirmButtonVariant = computed(() => {
|
|
619
|
+
if (this.data.confirmButtonVariant) {
|
|
620
|
+
return this.data.confirmButtonVariant;
|
|
621
|
+
}
|
|
618
622
|
switch (this.variant) {
|
|
619
623
|
case 'danger':
|
|
620
624
|
return 'destructive';
|
|
@@ -631,11 +635,11 @@ class FuiConfirmDialogComponent {
|
|
|
631
635
|
this.dialogRef.close(false);
|
|
632
636
|
}
|
|
633
637
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: FuiConfirmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
634
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.6", type: FuiConfirmDialogComponent, isStandalone: true, selector: "fui-confirm-dialog", host: { classAttribute: "fui-confirm-dialog" }, ngImport: i0, template: "<div class=\"fui-confirm-dialog__header\">\r\n <fui-icon class=\"fui-confirm-dialog__icon fui-confirm-dialog__icon--{{ variant }}\" [name]=\"icon()\" size=\"lg\" />\r\n <h2 class=\"fui-confirm-dialog__title\" id=\"confirm-dialog-title\">{{ title }}</h2>\r\n</div>\r\n\r\n<div class=\"fui-confirm-dialog__body\" id=\"confirm-dialog-description\">\r\n <p class=\"fui-confirm-dialog__message\">{{ message }}</p>\r\n</div>\r\n\r\n<div class=\"fui-confirm-dialog__actions\">\r\n <button fuiButton variant=\"
|
|
638
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.6", type: FuiConfirmDialogComponent, isStandalone: true, selector: "fui-confirm-dialog", host: { classAttribute: "fui-confirm-dialog" }, ngImport: i0, template: "<div class=\"fui-confirm-dialog__header\">\r\n <fui-icon class=\"fui-confirm-dialog__icon fui-confirm-dialog__icon--{{ variant }}\" [name]=\"icon()\" size=\"lg\" />\r\n <h2 class=\"fui-confirm-dialog__title\" id=\"confirm-dialog-title\">{{ title }}</h2>\r\n</div>\r\n\r\n<div class=\"fui-confirm-dialog__body\" id=\"confirm-dialog-description\">\r\n <p class=\"fui-confirm-dialog__message\">{{ message }}</p>\r\n</div>\r\n\r\n<div class=\"fui-confirm-dialog__actions\">\r\n <button fuiButton [variant]=\"cancelButtonVariant\" (click)=\"onCancel()\">{{ cancelText }}</button>\r\n <button fuiButton [variant]=\"confirmButtonVariant()\" (click)=\"onConfirm()\">{{ confirmText }}</button>\r\n</div>\r\n", styles: [".fui-confirm-dialog{display:flex;flex-direction:column}.fui-confirm-dialog__header{display:flex;align-items:center;gap:var(--fui-spacing-6, .75rem);margin-bottom:var(--fui-spacing-7, 1rem)}.fui-confirm-dialog__icon{flex-shrink:0}.fui-confirm-dialog__icon--info{color:var(--fui-text-info)}.fui-confirm-dialog__icon--warning{color:var(--fui-text-warning)}.fui-confirm-dialog__icon--danger{color:var(--fui-text-error)}.fui-confirm-dialog__title{font-family:var(--fui-font-sans);font-size:var(--fui-text-lg);font-weight:var(--fui-weight-semibold, 600);color:var(--fui-text-primary);margin:0}.fui-confirm-dialog__body{margin-bottom:var(--fui-spacing-9, 1.5rem)}.fui-confirm-dialog__message{font-size:var(--fui-text-base);color:var(--fui-text-secondary);line-height:1.5;margin:0}.fui-confirm-dialog__actions{display:flex;justify-content:flex-end;gap:var(--fui-spacing-4, .5rem)}\n"], dependencies: [{ kind: "component", type: FuiIconComponent, selector: "fui-icon", inputs: ["name", "size", "weight", "color", "ariaLabel", "spin", "pulse"] }, { kind: "directive", type: FuiButtonDirective, selector: "button[fuiButton], a[fuiButton]", inputs: ["variant", "size", "disabled", "fullWidth", "loading", "iconOnly", "aria-label", "type"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
635
639
|
}
|
|
636
640
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: FuiConfirmDialogComponent, decorators: [{
|
|
637
641
|
type: Component,
|
|
638
|
-
args: [{ selector: 'fui-confirm-dialog', standalone: true, imports: [FuiIconComponent, FuiButtonDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'fui-confirm-dialog' }, template: "<div class=\"fui-confirm-dialog__header\">\r\n <fui-icon class=\"fui-confirm-dialog__icon fui-confirm-dialog__icon--{{ variant }}\" [name]=\"icon()\" size=\"lg\" />\r\n <h2 class=\"fui-confirm-dialog__title\" id=\"confirm-dialog-title\">{{ title }}</h2>\r\n</div>\r\n\r\n<div class=\"fui-confirm-dialog__body\" id=\"confirm-dialog-description\">\r\n <p class=\"fui-confirm-dialog__message\">{{ message }}</p>\r\n</div>\r\n\r\n<div class=\"fui-confirm-dialog__actions\">\r\n <button fuiButton variant=\"
|
|
642
|
+
args: [{ selector: 'fui-confirm-dialog', standalone: true, imports: [FuiIconComponent, FuiButtonDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'fui-confirm-dialog' }, template: "<div class=\"fui-confirm-dialog__header\">\r\n <fui-icon class=\"fui-confirm-dialog__icon fui-confirm-dialog__icon--{{ variant }}\" [name]=\"icon()\" size=\"lg\" />\r\n <h2 class=\"fui-confirm-dialog__title\" id=\"confirm-dialog-title\">{{ title }}</h2>\r\n</div>\r\n\r\n<div class=\"fui-confirm-dialog__body\" id=\"confirm-dialog-description\">\r\n <p class=\"fui-confirm-dialog__message\">{{ message }}</p>\r\n</div>\r\n\r\n<div class=\"fui-confirm-dialog__actions\">\r\n <button fuiButton [variant]=\"cancelButtonVariant\" (click)=\"onCancel()\">{{ cancelText }}</button>\r\n <button fuiButton [variant]=\"confirmButtonVariant()\" (click)=\"onConfirm()\">{{ confirmText }}</button>\r\n</div>\r\n", styles: [".fui-confirm-dialog{display:flex;flex-direction:column}.fui-confirm-dialog__header{display:flex;align-items:center;gap:var(--fui-spacing-6, .75rem);margin-bottom:var(--fui-spacing-7, 1rem)}.fui-confirm-dialog__icon{flex-shrink:0}.fui-confirm-dialog__icon--info{color:var(--fui-text-info)}.fui-confirm-dialog__icon--warning{color:var(--fui-text-warning)}.fui-confirm-dialog__icon--danger{color:var(--fui-text-error)}.fui-confirm-dialog__title{font-family:var(--fui-font-sans);font-size:var(--fui-text-lg);font-weight:var(--fui-weight-semibold, 600);color:var(--fui-text-primary);margin:0}.fui-confirm-dialog__body{margin-bottom:var(--fui-spacing-9, 1.5rem)}.fui-confirm-dialog__message{font-size:var(--fui-text-base);color:var(--fui-text-secondary);line-height:1.5;margin:0}.fui-confirm-dialog__actions{display:flex;justify-content:flex-end;gap:var(--fui-spacing-4, .5rem)}\n"] }]
|
|
639
643
|
}] });
|
|
640
644
|
|
|
641
645
|
/**
|