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.
@@ -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, DOCUMENT as DOCUMENT$1, Input } 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, 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
- /** Saved position (e.g. from user preferences). Takes precedence over defaultPosition when present. */
12367
- position = input(undefined, ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
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
- _draggedPosition = signal(null, ...(ngDevMode ? [{ debugName: "_draggedPosition" }] : /* istanbul ignore next */ []));
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 }, defaultPosition: { classPropertyName: "defaultPosition", publicName: "defaultPosition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", positionChange: "positionChange" }, ngImport: i0, template: `
12461
- <!-- ── Trigger (this wrapper owns the fixed positioning + drag; the button inside stays a plain clx-button) ── -->
12462
- <div
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
- class="fixed z-40 select-none"
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
- [style.touchAction]="'none'"
12469
- (pointerdown)="_onPointerDown($event)">
12470
- <button
12471
- clx-button
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: vertical stack expanding upward ────────────────── -->
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
- <div
12500
- clxAnimate="fadeInUp"
12501
- trigger="onEnter"
12502
- [delay]="i * 60"
12503
- [duration]="220"
12504
- class="flex items-center gap-2">
12505
- <span class="px-2.5 py-1 rounded-lg bg-clx-surface border border-clx-border shadow-sm text-xs font-medium text-clx-text-label whitespace-nowrap">
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 (this wrapper owns the fixed positioning + drag; the button inside stays a plain clx-button) ── -->
12527
- <div
12453
+ <!-- ── Trigger, fixed to the bottom-right corner (offset configurable via position()) ── -->
12454
+ <button
12528
12455
  #origin="cdkOverlayOrigin"
12529
12456
  cdkOverlayOrigin
12530
- class="fixed z-40 select-none"
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
- [style.touchAction]="'none'"
12534
- (pointerdown)="_onPointerDown($event)">
12535
- <button
12536
- clx-button
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: vertical stack expanding upward ────────────────── -->
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
- <div
12565
- clxAnimate="fadeInUp"
12566
- trigger="onEnter"
12567
- [delay]="i * 60"
12568
- [duration]="220"
12569
- class="flex items-center gap-2">
12570
- <span class="px-2.5 py-1 rounded-lg bg-clx-surface border border-clx-border shadow-sm text-xs font-medium text-clx-text-label whitespace-nowrap">
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 }] }], defaultPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultPosition", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }], positionChange: [{ type: i0.Output, args: ["positionChange"] }] } });
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';