codexly-ui 0.6.7 → 0.6.9
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/codexly-ui.mjs +57 -142
- package/fesm2022/codexly-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/codexly-ui.d.ts +7 -21
package/fesm2022/codexly-ui.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, computed, ChangeDetectionStrategy, ViewEncapsulation, Component, InjectionToken, inject, PLATFORM_ID, signal, effect, Injectable, ElementRef, HostAttributeToken, output, Directive, forwardRef, contentChild, Renderer2, ApplicationRef, EnvironmentInjector, DestroyRef, createComponent, untracked, HostListener, viewChild, ViewChild, Injector, ChangeDetectorRef, NgZone, model, contentChildren, ContentChildren, ViewChildren, numberAttribute, booleanAttribute,
|
|
2
|
+
import { input, computed, ChangeDetectionStrategy, ViewEncapsulation, Component, InjectionToken, inject, PLATFORM_ID, signal, effect, Injectable, ElementRef, HostAttributeToken, output, Directive, forwardRef, contentChild, Renderer2, ApplicationRef, EnvironmentInjector, DestroyRef, createComponent, untracked, HostListener, viewChild, ViewChild, Injector, ChangeDetectorRef, NgZone, model, contentChildren, ContentChildren, ViewChildren, numberAttribute, booleanAttribute, Input } from '@angular/core';
|
|
3
3
|
import { isPlatformBrowser, NgTemplateOutlet, DOCUMENT, NgStyle, CurrencyPipe, DecimalPipe } from '@angular/common';
|
|
4
4
|
import * as i1$1 from '@angular/forms';
|
|
5
5
|
import { NG_VALUE_ACCESSOR, FormControl, NgControl, ReactiveFormsModule, FormGroup, Validators, FormsModule } from '@angular/forms';
|
|
@@ -12352,8 +12352,6 @@ const SHADOW_CLASS_MAP = {
|
|
|
12352
12352
|
'2xl': 'shadow-2xl',
|
|
12353
12353
|
};
|
|
12354
12354
|
const DEFAULT_POSITION = { right: 24, bottom: 24 };
|
|
12355
|
-
/** Movement below this, in pixels, is treated as a click rather than a drag. */
|
|
12356
|
-
const DRAG_THRESHOLD = 4;
|
|
12357
12355
|
class ClxFabComponent {
|
|
12358
12356
|
// ── Inputs — personalización tipo clx-button ─────────────────────────────────
|
|
12359
12357
|
items = input([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
@@ -12363,19 +12361,13 @@ class ClxFabComponent {
|
|
|
12363
12361
|
size = input('sm', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
12364
12362
|
shadow = input('lg', ...(ngDevMode ? [{ debugName: "shadow" }] : /* istanbul ignore next */ []));
|
|
12365
12363
|
triggerLabel = input('Accesos directos', ...(ngDevMode ? [{ debugName: "triggerLabel" }] : /* istanbul ignore next */ []));
|
|
12366
|
-
/**
|
|
12367
|
-
position = input(
|
|
12368
|
-
/** Initial corner used only when the user hasn't dragged/saved a position yet. */
|
|
12369
|
-
defaultPosition = input(DEFAULT_POSITION, ...(ngDevMode ? [{ debugName: "defaultPosition" }] : /* istanbul ignore next */ []));
|
|
12364
|
+
/** Fixed offset from the bottom-right corner of the viewport. */
|
|
12365
|
+
position = input(DEFAULT_POSITION, ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
|
|
12370
12366
|
// ── Outputs ─────────────────────────────────────────────────────────────────
|
|
12371
12367
|
itemClick = output();
|
|
12372
|
-
/** Emitted once, after a drag ends, with the new position to persist. */
|
|
12373
|
-
positionChange = output();
|
|
12374
12368
|
_themeSvc = inject(ClxThemeService);
|
|
12375
|
-
_document = inject(DOCUMENT$1);
|
|
12376
12369
|
_color = computed(() => this.color() ?? this._themeSvc.config().primaryColor, ...(ngDevMode ? [{ debugName: "_color" }] : /* istanbul ignore next */ []));
|
|
12377
|
-
|
|
12378
|
-
_position = computed(() => this._draggedPosition() ?? this.position() ?? this.defaultPosition(), ...(ngDevMode ? [{ debugName: "_position" }] : /* istanbul ignore next */ []));
|
|
12370
|
+
_position = computed(() => this.position() ?? DEFAULT_POSITION, ...(ngDevMode ? [{ debugName: "_position" }] : /* istanbul ignore next */ []));
|
|
12379
12371
|
_triggerClass = computed(() => `transition-transform duration-200 hover:scale-110 ${SHADOW_CLASS_MAP[this.shadow()]}`.trim(), ...(ngDevMode ? [{ debugName: "_triggerClass" }] : /* istanbul ignore next */ []));
|
|
12380
12372
|
/** Los botones de la pila de accesos van un paso más pequeños que el trigger. */
|
|
12381
12373
|
_itemSize = computed(() => {
|
|
@@ -12384,7 +12376,7 @@ class ClxFabComponent {
|
|
|
12384
12376
|
};
|
|
12385
12377
|
return map[this.size()] ?? 'sm';
|
|
12386
12378
|
}, ...(ngDevMode ? [{ debugName: "_itemSize" }] : /* istanbul ignore next */ []));
|
|
12387
|
-
// ── CDK Overlay
|
|
12379
|
+
// ── CDK Overlay — always expands upward from the trigger ────────────────────
|
|
12388
12380
|
_sso = inject(ScrollStrategyOptions);
|
|
12389
12381
|
_scrollStrategy = this._sso.reposition();
|
|
12390
12382
|
_positions = [
|
|
@@ -12393,59 +12385,6 @@ class ClxFabComponent {
|
|
|
12393
12385
|
];
|
|
12394
12386
|
// ── State ────────────────────────────────────────────────────────────────────
|
|
12395
12387
|
_isOpen = signal(false, ...(ngDevMode ? [{ debugName: "_isOpen" }] : /* istanbul ignore next */ []));
|
|
12396
|
-
// ── Drag ─────────────────────────────────────────────────────────────────────
|
|
12397
|
-
_dragging = false;
|
|
12398
|
-
_dragMoved = false;
|
|
12399
|
-
_dragStartX = 0;
|
|
12400
|
-
_dragStartY = 0;
|
|
12401
|
-
_dragStartRight = 0;
|
|
12402
|
-
_dragStartBottom = 0;
|
|
12403
|
-
_onPointerDown(event) {
|
|
12404
|
-
if (event.button !== 0 && event.pointerType === 'mouse')
|
|
12405
|
-
return;
|
|
12406
|
-
this._dragging = true;
|
|
12407
|
-
this._dragMoved = false;
|
|
12408
|
-
this._dragStartX = event.clientX;
|
|
12409
|
-
this._dragStartY = event.clientY;
|
|
12410
|
-
const current = this._position();
|
|
12411
|
-
this._dragStartRight = current.right;
|
|
12412
|
-
this._dragStartBottom = current.bottom;
|
|
12413
|
-
const onMove = (e) => this._onPointerMove(e);
|
|
12414
|
-
const onUp = (e) => {
|
|
12415
|
-
this._onPointerUp(e);
|
|
12416
|
-
this._document.removeEventListener('pointermove', onMove);
|
|
12417
|
-
this._document.removeEventListener('pointerup', onUp);
|
|
12418
|
-
};
|
|
12419
|
-
this._document.addEventListener('pointermove', onMove);
|
|
12420
|
-
this._document.addEventListener('pointerup', onUp);
|
|
12421
|
-
}
|
|
12422
|
-
_onPointerMove(event) {
|
|
12423
|
-
if (!this._dragging)
|
|
12424
|
-
return;
|
|
12425
|
-
const dx = event.clientX - this._dragStartX;
|
|
12426
|
-
const dy = event.clientY - this._dragStartY;
|
|
12427
|
-
if (!this._dragMoved && Math.hypot(dx, dy) < DRAG_THRESHOLD)
|
|
12428
|
-
return;
|
|
12429
|
-
this._dragMoved = true;
|
|
12430
|
-
const win = this._document.defaultView;
|
|
12431
|
-
const maxRight = win ? win.innerWidth - 56 : Infinity;
|
|
12432
|
-
const maxBottom = win ? win.innerHeight - 56 : Infinity;
|
|
12433
|
-
const right = Math.min(Math.max(this._dragStartRight - dx, 8), maxRight);
|
|
12434
|
-
const bottom = Math.min(Math.max(this._dragStartBottom - dy, 8), maxBottom);
|
|
12435
|
-
this._draggedPosition.set({ right, bottom });
|
|
12436
|
-
}
|
|
12437
|
-
_onPointerUp(_event) {
|
|
12438
|
-
this._dragging = false;
|
|
12439
|
-
if (this._dragMoved) {
|
|
12440
|
-
this.positionChange.emit(this._position());
|
|
12441
|
-
}
|
|
12442
|
-
this._dragMoved = false;
|
|
12443
|
-
}
|
|
12444
|
-
_onTriggerClick() {
|
|
12445
|
-
if (this._dragMoved)
|
|
12446
|
-
return;
|
|
12447
|
-
this._toggle();
|
|
12448
|
-
}
|
|
12449
12388
|
_toggle() { this._isOpen.update(v => !v); }
|
|
12450
12389
|
_close() { this._isOpen.set(false); }
|
|
12451
12390
|
_onKeydown(event) {
|
|
@@ -12457,33 +12396,29 @@ class ClxFabComponent {
|
|
|
12457
12396
|
this._close();
|
|
12458
12397
|
}
|
|
12459
12398
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxFabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12460
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ClxFabComponent, isStandalone: true, selector: "clx-fab", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null }, triggerLabel: { classPropertyName: "triggerLabel", publicName: "triggerLabel", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }
|
|
12461
|
-
<!-- ── Trigger
|
|
12462
|
-
<
|
|
12399
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ClxFabComponent, isStandalone: true, selector: "clx-fab", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null }, triggerLabel: { classPropertyName: "triggerLabel", publicName: "triggerLabel", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick" }, ngImport: i0, template: `
|
|
12400
|
+
<!-- ── Trigger, fixed to the bottom-right corner (offset configurable via position()) ── -->
|
|
12401
|
+
<button
|
|
12463
12402
|
#origin="cdkOverlayOrigin"
|
|
12464
12403
|
cdkOverlayOrigin
|
|
12465
|
-
|
|
12404
|
+
clx-button
|
|
12405
|
+
type="button"
|
|
12406
|
+
class="fixed z-40"
|
|
12407
|
+
[variant]="variant()"
|
|
12408
|
+
shape="circle"
|
|
12409
|
+
[iconOnly]="true"
|
|
12410
|
+
[icon]="_isOpen() ? 'close' : icon()"
|
|
12411
|
+
[color]="_color()"
|
|
12412
|
+
[size]="size()"
|
|
12413
|
+
[class]="_triggerClass()"
|
|
12466
12414
|
[style.right.px]="_position().right"
|
|
12467
12415
|
[style.bottom.px]="_position().bottom"
|
|
12468
|
-
[
|
|
12469
|
-
|
|
12470
|
-
|
|
12471
|
-
|
|
12472
|
-
type="button"
|
|
12473
|
-
[variant]="variant()"
|
|
12474
|
-
shape="circle"
|
|
12475
|
-
[iconOnly]="true"
|
|
12476
|
-
[icon]="_isOpen() ? 'close' : icon()"
|
|
12477
|
-
[color]="_color()"
|
|
12478
|
-
[size]="size()"
|
|
12479
|
-
[class]="_triggerClass()"
|
|
12480
|
-
[attr.aria-label]="triggerLabel()"
|
|
12481
|
-
[attr.aria-expanded]="_isOpen()"
|
|
12482
|
-
(click)="_onTriggerClick()">
|
|
12483
|
-
</button>
|
|
12484
|
-
</div>
|
|
12416
|
+
[attr.aria-label]="triggerLabel()"
|
|
12417
|
+
[attr.aria-expanded]="_isOpen()"
|
|
12418
|
+
(click)="_toggle()">
|
|
12419
|
+
</button>
|
|
12485
12420
|
|
|
12486
|
-
<!-- ── Overlay panel:
|
|
12421
|
+
<!-- ── Overlay panel: accordion-style stack expanding upward from the trigger ── -->
|
|
12487
12422
|
<ng-template
|
|
12488
12423
|
cdkConnectedOverlay
|
|
12489
12424
|
[cdkConnectedOverlayOrigin]="origin"
|
|
@@ -12496,59 +12431,47 @@ class ClxFabComponent {
|
|
|
12496
12431
|
|
|
12497
12432
|
<div class="flex flex-col items-end gap-2 mb-2" role="menu">
|
|
12498
12433
|
@for (item of items(); track item.key; let i = $index) {
|
|
12499
|
-
<
|
|
12500
|
-
|
|
12501
|
-
trigger="onEnter"
|
|
12502
|
-
[
|
|
12503
|
-
[
|
|
12504
|
-
|
|
12505
|
-
|
|
12506
|
-
{{ item.label }}
|
|
12507
|
-
</span>
|
|
12508
|
-
<button clx-button type="button" shape="circle" [iconOnly]="true" [icon]="item.icon"
|
|
12509
|
-
variant="light" [color]="_color()" [size]="_itemSize()" class="shadow-md"
|
|
12510
|
-
[attr.aria-label]="item.label"
|
|
12511
|
-
(click)="_onItemClick(item)">
|
|
12512
|
-
</button>
|
|
12513
|
-
</div>
|
|
12434
|
+
<button clx-button type="button" shape="circle" [iconOnly]="true" [icon]="item.icon"
|
|
12435
|
+
variant="light" [color]="item.color ?? _color()" [size]="_itemSize()" class="shadow-md"
|
|
12436
|
+
clxAnimate="slideInUp" trigger="onEnter" [delay]="i * 60" [duration]="220"
|
|
12437
|
+
[clxTooltip]="item.label" clxTooltipPosition="right"
|
|
12438
|
+
[attr.aria-label]="item.label"
|
|
12439
|
+
(click)="_onItemClick(item)">
|
|
12440
|
+
</button>
|
|
12514
12441
|
}
|
|
12515
12442
|
</div>
|
|
12516
12443
|
</ng-template>
|
|
12517
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: ClxButtonComponent, selector: "button[clx-button], a[clx-button]", inputs: ["variant", "color", "size", "shape", "loading", "disabled", "block", "icon", "iconPosition", "iconOnly", "badge", "badgeColor"] }, { kind: "directive", type: ClxAnimateDirective, selector: "[clxAnimate]", inputs: ["clxAnimate", "trigger", "duration", "delay", "repeat", "easing", "fillMode", "once", "threshold"], outputs: ["animationStart", "animationEnd"], exportAs: ["clxAnimate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
12444
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: ClxButtonComponent, selector: "button[clx-button], a[clx-button]", inputs: ["variant", "color", "size", "shape", "loading", "disabled", "block", "icon", "iconPosition", "iconOnly", "badge", "badgeColor"] }, { kind: "directive", type: ClxAnimateDirective, selector: "[clxAnimate]", inputs: ["clxAnimate", "trigger", "duration", "delay", "repeat", "easing", "fillMode", "once", "threshold"], outputs: ["animationStart", "animationEnd"], exportAs: ["clxAnimate"] }, { kind: "directive", type: ClxTooltipDirective, selector: "[clxTooltip]", inputs: ["clxTooltip", "clxTooltipPosition", "clxTooltipColor", "clxTooltipSize", "clxTooltipDelay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
12518
12445
|
}
|
|
12519
12446
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxFabComponent, decorators: [{
|
|
12520
12447
|
type: Component,
|
|
12521
12448
|
args: [{
|
|
12522
12449
|
selector: 'clx-fab',
|
|
12523
12450
|
standalone: true,
|
|
12524
|
-
imports: [OverlayModule, ClxButtonComponent, ClxAnimateDirective],
|
|
12451
|
+
imports: [OverlayModule, ClxButtonComponent, ClxAnimateDirective, ClxTooltipDirective],
|
|
12525
12452
|
template: `
|
|
12526
|
-
<!-- ── Trigger
|
|
12527
|
-
<
|
|
12453
|
+
<!-- ── Trigger, fixed to the bottom-right corner (offset configurable via position()) ── -->
|
|
12454
|
+
<button
|
|
12528
12455
|
#origin="cdkOverlayOrigin"
|
|
12529
12456
|
cdkOverlayOrigin
|
|
12530
|
-
|
|
12457
|
+
clx-button
|
|
12458
|
+
type="button"
|
|
12459
|
+
class="fixed z-40"
|
|
12460
|
+
[variant]="variant()"
|
|
12461
|
+
shape="circle"
|
|
12462
|
+
[iconOnly]="true"
|
|
12463
|
+
[icon]="_isOpen() ? 'close' : icon()"
|
|
12464
|
+
[color]="_color()"
|
|
12465
|
+
[size]="size()"
|
|
12466
|
+
[class]="_triggerClass()"
|
|
12531
12467
|
[style.right.px]="_position().right"
|
|
12532
12468
|
[style.bottom.px]="_position().bottom"
|
|
12533
|
-
[
|
|
12534
|
-
|
|
12535
|
-
|
|
12536
|
-
|
|
12537
|
-
type="button"
|
|
12538
|
-
[variant]="variant()"
|
|
12539
|
-
shape="circle"
|
|
12540
|
-
[iconOnly]="true"
|
|
12541
|
-
[icon]="_isOpen() ? 'close' : icon()"
|
|
12542
|
-
[color]="_color()"
|
|
12543
|
-
[size]="size()"
|
|
12544
|
-
[class]="_triggerClass()"
|
|
12545
|
-
[attr.aria-label]="triggerLabel()"
|
|
12546
|
-
[attr.aria-expanded]="_isOpen()"
|
|
12547
|
-
(click)="_onTriggerClick()">
|
|
12548
|
-
</button>
|
|
12549
|
-
</div>
|
|
12469
|
+
[attr.aria-label]="triggerLabel()"
|
|
12470
|
+
[attr.aria-expanded]="_isOpen()"
|
|
12471
|
+
(click)="_toggle()">
|
|
12472
|
+
</button>
|
|
12550
12473
|
|
|
12551
|
-
<!-- ── Overlay panel:
|
|
12474
|
+
<!-- ── Overlay panel: accordion-style stack expanding upward from the trigger ── -->
|
|
12552
12475
|
<ng-template
|
|
12553
12476
|
cdkConnectedOverlay
|
|
12554
12477
|
[cdkConnectedOverlayOrigin]="origin"
|
|
@@ -12561,21 +12484,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
12561
12484
|
|
|
12562
12485
|
<div class="flex flex-col items-end gap-2 mb-2" role="menu">
|
|
12563
12486
|
@for (item of items(); track item.key; let i = $index) {
|
|
12564
|
-
<
|
|
12565
|
-
|
|
12566
|
-
trigger="onEnter"
|
|
12567
|
-
[
|
|
12568
|
-
[
|
|
12569
|
-
|
|
12570
|
-
|
|
12571
|
-
{{ item.label }}
|
|
12572
|
-
</span>
|
|
12573
|
-
<button clx-button type="button" shape="circle" [iconOnly]="true" [icon]="item.icon"
|
|
12574
|
-
variant="light" [color]="_color()" [size]="_itemSize()" class="shadow-md"
|
|
12575
|
-
[attr.aria-label]="item.label"
|
|
12576
|
-
(click)="_onItemClick(item)">
|
|
12577
|
-
</button>
|
|
12578
|
-
</div>
|
|
12487
|
+
<button clx-button type="button" shape="circle" [iconOnly]="true" [icon]="item.icon"
|
|
12488
|
+
variant="light" [color]="item.color ?? _color()" [size]="_itemSize()" class="shadow-md"
|
|
12489
|
+
clxAnimate="slideInUp" trigger="onEnter" [delay]="i * 60" [duration]="220"
|
|
12490
|
+
[clxTooltip]="item.label" clxTooltipPosition="right"
|
|
12491
|
+
[attr.aria-label]="item.label"
|
|
12492
|
+
(click)="_onItemClick(item)">
|
|
12493
|
+
</button>
|
|
12579
12494
|
}
|
|
12580
12495
|
</div>
|
|
12581
12496
|
</ng-template>
|
|
@@ -12583,7 +12498,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
12583
12498
|
encapsulation: ViewEncapsulation.None,
|
|
12584
12499
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12585
12500
|
}]
|
|
12586
|
-
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }], triggerLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerLabel", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }],
|
|
12501
|
+
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }], triggerLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerLabel", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] } });
|
|
12587
12502
|
|
|
12588
12503
|
// ── Base classes ─────────────────────────────────────────────────────────────
|
|
12589
12504
|
const TABLE_BASE_CLASS = 'w-full text-left border-collapse text-sm';
|