codexly-ui 0.11.1 → 0.11.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.
@@ -11271,6 +11271,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
11271
11271
  }]
11272
11272
  }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], showClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClose", required: false }] }], confirmButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "confirmButton", required: false }] }], cancelButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelButton", required: false }] }], showCancelButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCancelButton", required: false }] }], confirmClick: [{ type: i0.Output, args: ["confirmClick"] }], cancelClick: [{ type: i0.Output, args: ["cancelClick"] }] } });
11273
11273
 
11274
+ class ClxPageEmptyComponent {
11275
+ _themeSvc = inject(ClxThemeService);
11276
+ icon = input('inbox', ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
11277
+ /** Named "heading", not "title" — the latter shadows the native HTML title attribute (tooltip
11278
+ * on hover) when bound without brackets, e.g. `title="..."` instead of `[title]="..."`. */
11279
+ heading = input('Sin resultados', ...(ngDevMode ? [{ debugName: "heading" }] : /* istanbul ignore next */ []));
11280
+ description = input('', ...(ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []));
11281
+ ctaLabel = input('', ...(ngDevMode ? [{ debugName: "ctaLabel" }] : /* istanbul ignore next */ []));
11282
+ ctaIcon = input('add', ...(ngDevMode ? [{ debugName: "ctaIcon" }] : /* istanbul ignore next */ []));
11283
+ ctaColor = input(undefined, ...(ngDevMode ? [{ debugName: "ctaColor" }] : /* istanbul ignore next */ []));
11284
+ _ctaColor = computed(() => this.ctaColor() ?? this._themeSvc.config().primaryColor, ...(ngDevMode ? [{ debugName: "_ctaColor" }] : /* istanbul ignore next */ []));
11285
+ cta = output();
11286
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxPageEmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11287
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ClxPageEmptyComponent, isStandalone: true, selector: "clx-page-empty", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, ctaLabel: { classPropertyName: "ctaLabel", publicName: "ctaLabel", isSignal: true, isRequired: false, transformFunction: null }, ctaIcon: { classPropertyName: "ctaIcon", publicName: "ctaIcon", isSignal: true, isRequired: false, transformFunction: null }, ctaColor: { classPropertyName: "ctaColor", publicName: "ctaColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cta: "cta" }, host: { classAttribute: "flex flex-col items-center justify-center w-full px-6 text-center text-sm" }, ngImport: i0, template: `
11288
+ <div class="w-20 h-20 rounded-2xl bg-clx-surface-2 flex items-center justify-center mb-6">
11289
+ <span clx-icon [name]="icon()" size="xl" class="text-clx-text-faint"></span>
11290
+ </div>
11291
+
11292
+ <h1 class="text-base font-semibold text-clx-text-label mb-2">{{ heading() }}</h1>
11293
+
11294
+ @if (description()) {
11295
+ <p class="text-clx-text-subtle max-w-sm mb-8">{{ description() }}</p>
11296
+ }
11297
+
11298
+ @if (ctaLabel()) {
11299
+ <button
11300
+ clx-button
11301
+ type="button"
11302
+ [color]="_ctaColor()"
11303
+ variant="solid"
11304
+ [icon]="ctaIcon()"
11305
+ (click)="cta.emit()">
11306
+ {{ ctaLabel() }}
11307
+ </button>
11308
+ }
11309
+ `, isInline: true, dependencies: [{ kind: "component", type: ClxButtonComponent, selector: "button[clx-button], a[clx-button]", inputs: ["variant", "color", "textColor", "size", "shape", "loading", "disabled", "block", "icon", "iconPosition", "iconOnly", "badge", "badgeColor"] }, { kind: "component", type: ClxIconComponent, selector: "span[clx-icon]", inputs: ["name", "size", "color", "fill"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11310
+ }
11311
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxPageEmptyComponent, decorators: [{
11312
+ type: Component,
11313
+ args: [{
11314
+ selector: 'clx-page-empty',
11315
+ standalone: true,
11316
+ imports: [ClxButtonComponent, ClxIconComponent],
11317
+ encapsulation: ViewEncapsulation.None,
11318
+ changeDetection: ChangeDetectionStrategy.OnPush,
11319
+ host: { class: 'flex flex-col items-center justify-center w-full px-6 text-center text-sm' },
11320
+ template: `
11321
+ <div class="w-20 h-20 rounded-2xl bg-clx-surface-2 flex items-center justify-center mb-6">
11322
+ <span clx-icon [name]="icon()" size="xl" class="text-clx-text-faint"></span>
11323
+ </div>
11324
+
11325
+ <h1 class="text-base font-semibold text-clx-text-label mb-2">{{ heading() }}</h1>
11326
+
11327
+ @if (description()) {
11328
+ <p class="text-clx-text-subtle max-w-sm mb-8">{{ description() }}</p>
11329
+ }
11330
+
11331
+ @if (ctaLabel()) {
11332
+ <button
11333
+ clx-button
11334
+ type="button"
11335
+ [color]="_ctaColor()"
11336
+ variant="solid"
11337
+ [icon]="ctaIcon()"
11338
+ (click)="cta.emit()">
11339
+ {{ ctaLabel() }}
11340
+ </button>
11341
+ }
11342
+ `,
11343
+ }]
11344
+ }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], ctaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ctaLabel", required: false }] }], ctaIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "ctaIcon", required: false }] }], ctaColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "ctaColor", required: false }] }], cta: [{ type: i0.Output, args: ["cta"] }] } });
11345
+
11274
11346
  // ── Size map — same density-token shape as LIST_SIZE_MAP ──────────────────────
11275
11347
  const NOTIFICATION_SIZE_MAP = {
11276
11348
  sm: { row: 'py-2', iconWrap: 'w-7 h-7', iconSize: 'xs', title: 'text-xs', detail: 'text-[11px]', time: 'text-[10px]' },
@@ -11440,10 +11512,8 @@ class ClxNotificationComponent {
11440
11512
  Marcar todo leído
11441
11513
  </button>
11442
11514
  }
11443
- <button type="button" class="w-6 h-6 flex items-center justify-center rounded-md text-clx-text-muted hover:bg-clx-surface-2"
11444
- aria-label="Cerrar" (click)="_close()">
11445
- <span clx-icon name="close" size="xs"></span>
11446
- </button>
11515
+ <button clx-button type="button" variant="ghost" color="slate" shape="circle" size="xs"
11516
+ icon="close" [iconOnly]="true" aria-label="Cerrar" (click)="_close()"></button>
11447
11517
  </div>
11448
11518
  </div>
11449
11519
 
@@ -11494,33 +11564,29 @@ class ClxNotificationComponent {
11494
11564
  }
11495
11565
  }
11496
11566
  } @else {
11497
- <div class="flex flex-col items-center justify-center gap-2 py-14 text-center">
11498
- <span clx-icon name="notifications_off" size="xl" class="text-clx-text-subtle"></span>
11499
- <p class="text-sm font-medium text-clx-text-label">
11500
- {{ _filter() === 'unread' ? 'No tienes notificaciones sin leer' : 'No hay notificaciones' }}
11501
- </p>
11502
- </div>
11567
+ <clx-page-empty icon="notifications_off" class="py-10"
11568
+ [heading]="_filter() === 'unread' ? 'No tienes notificaciones sin leer' : 'No hay notificaciones'" />
11503
11569
  }
11504
11570
  </div>
11505
11571
 
11506
11572
  @if (_readCount() > 0) {
11507
- <div class="flex justify-end px-4 py-2.5 border-t border-clx-border-soft">
11508
- <button type="button" class="text-xs font-semibold text-clx-text-subtle hover:text-red-500"
11509
- (click)="deleteAllRead.emit()">
11573
+ <div class="flex justify-end px-3 py-2.5 border-t border-clx-border-soft">
11574
+ <button clx-button type="button" variant="ghost" color="red" size="xs"
11575
+ icon="delete_sweep" (click)="deleteAllRead.emit()">
11510
11576
  Eliminar leídas
11511
11577
  </button>
11512
11578
  </div>
11513
11579
  }
11514
11580
  </div>
11515
11581
  </ng-template>
11516
- `, 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: ClxIconComponent, selector: "span[clx-icon]", inputs: ["name", "size", "color", "fill"] }, { kind: "component", type: ClxBadgeComponent, selector: "span[clx-badge]", inputs: ["variant", "color", "size", "shape", "positioned"] }, { kind: "component", type: ClxTabsComponent, selector: "clx-tabs", inputs: ["tabs", "clxColor", "activeTab"], outputs: ["activeTabChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11582
+ `, 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: ClxIconComponent, selector: "span[clx-icon]", inputs: ["name", "size", "color", "fill"] }, { kind: "component", type: ClxBadgeComponent, selector: "span[clx-badge]", inputs: ["variant", "color", "size", "shape", "positioned"] }, { kind: "component", type: ClxButtonComponent, selector: "button[clx-button], a[clx-button]", inputs: ["variant", "color", "textColor", "size", "shape", "loading", "disabled", "block", "icon", "iconPosition", "iconOnly", "badge", "badgeColor"] }, { kind: "component", type: ClxPageEmptyComponent, selector: "clx-page-empty", inputs: ["icon", "heading", "description", "ctaLabel", "ctaIcon", "ctaColor"], outputs: ["cta"] }, { kind: "component", type: ClxTabsComponent, selector: "clx-tabs", inputs: ["tabs", "clxColor", "activeTab"], outputs: ["activeTabChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11517
11583
  }
11518
11584
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxNotificationComponent, decorators: [{
11519
11585
  type: Component,
11520
11586
  args: [{
11521
11587
  selector: 'clx-notification',
11522
11588
  standalone: true,
11523
- imports: [OverlayModule, ClxIconComponent, ClxBadgeComponent, ClxTabsComponent],
11589
+ imports: [OverlayModule, ClxIconComponent, ClxBadgeComponent, ClxButtonComponent, ClxPageEmptyComponent, ClxTabsComponent],
11524
11590
  template: `
11525
11591
  <!-- Trigger -->
11526
11592
  <button
@@ -11560,10 +11626,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
11560
11626
  Marcar todo leído
11561
11627
  </button>
11562
11628
  }
11563
- <button type="button" class="w-6 h-6 flex items-center justify-center rounded-md text-clx-text-muted hover:bg-clx-surface-2"
11564
- aria-label="Cerrar" (click)="_close()">
11565
- <span clx-icon name="close" size="xs"></span>
11566
- </button>
11629
+ <button clx-button type="button" variant="ghost" color="slate" shape="circle" size="xs"
11630
+ icon="close" [iconOnly]="true" aria-label="Cerrar" (click)="_close()"></button>
11567
11631
  </div>
11568
11632
  </div>
11569
11633
 
@@ -11614,19 +11678,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
11614
11678
  }
11615
11679
  }
11616
11680
  } @else {
11617
- <div class="flex flex-col items-center justify-center gap-2 py-14 text-center">
11618
- <span clx-icon name="notifications_off" size="xl" class="text-clx-text-subtle"></span>
11619
- <p class="text-sm font-medium text-clx-text-label">
11620
- {{ _filter() === 'unread' ? 'No tienes notificaciones sin leer' : 'No hay notificaciones' }}
11621
- </p>
11622
- </div>
11681
+ <clx-page-empty icon="notifications_off" class="py-10"
11682
+ [heading]="_filter() === 'unread' ? 'No tienes notificaciones sin leer' : 'No hay notificaciones'" />
11623
11683
  }
11624
11684
  </div>
11625
11685
 
11626
11686
  @if (_readCount() > 0) {
11627
- <div class="flex justify-end px-4 py-2.5 border-t border-clx-border-soft">
11628
- <button type="button" class="text-xs font-semibold text-clx-text-subtle hover:text-red-500"
11629
- (click)="deleteAllRead.emit()">
11687
+ <div class="flex justify-end px-3 py-2.5 border-t border-clx-border-soft">
11688
+ <button clx-button type="button" variant="ghost" color="red" size="xs"
11689
+ icon="delete_sweep" (click)="deleteAllRead.emit()">
11630
11690
  Eliminar leídas
11631
11691
  </button>
11632
11692
  </div>
@@ -14030,78 +14090,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
14030
14090
  args: ['clxColumn']
14031
14091
  }], headerCell: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ClxHeaderCellDirective), { isSignal: true }] }], cell: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ClxCellDirective), { isSignal: true }] }] } });
14032
14092
 
14033
- class ClxPageEmptyComponent {
14034
- _themeSvc = inject(ClxThemeService);
14035
- icon = input('inbox', ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
14036
- /** Named "heading", not "title" — the latter shadows the native HTML title attribute (tooltip
14037
- * on hover) when bound without brackets, e.g. `title="..."` instead of `[title]="..."`. */
14038
- heading = input('Sin resultados', ...(ngDevMode ? [{ debugName: "heading" }] : /* istanbul ignore next */ []));
14039
- description = input('', ...(ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []));
14040
- ctaLabel = input('', ...(ngDevMode ? [{ debugName: "ctaLabel" }] : /* istanbul ignore next */ []));
14041
- ctaIcon = input('add', ...(ngDevMode ? [{ debugName: "ctaIcon" }] : /* istanbul ignore next */ []));
14042
- ctaColor = input(undefined, ...(ngDevMode ? [{ debugName: "ctaColor" }] : /* istanbul ignore next */ []));
14043
- _ctaColor = computed(() => this.ctaColor() ?? this._themeSvc.config().primaryColor, ...(ngDevMode ? [{ debugName: "_ctaColor" }] : /* istanbul ignore next */ []));
14044
- cta = output();
14045
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxPageEmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14046
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ClxPageEmptyComponent, isStandalone: true, selector: "clx-page-empty", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, ctaLabel: { classPropertyName: "ctaLabel", publicName: "ctaLabel", isSignal: true, isRequired: false, transformFunction: null }, ctaIcon: { classPropertyName: "ctaIcon", publicName: "ctaIcon", isSignal: true, isRequired: false, transformFunction: null }, ctaColor: { classPropertyName: "ctaColor", publicName: "ctaColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cta: "cta" }, host: { classAttribute: "flex flex-col items-center justify-center w-full px-6 text-center text-sm" }, ngImport: i0, template: `
14047
- <div class="w-20 h-20 rounded-2xl bg-clx-surface-2 flex items-center justify-center mb-6">
14048
- <span clx-icon [name]="icon()" size="xl" class="text-clx-text-faint"></span>
14049
- </div>
14050
-
14051
- <h1 class="text-base font-semibold text-clx-text-label mb-2">{{ heading() }}</h1>
14052
-
14053
- @if (description()) {
14054
- <p class="text-clx-text-subtle max-w-sm mb-8">{{ description() }}</p>
14055
- }
14056
-
14057
- @if (ctaLabel()) {
14058
- <button
14059
- clx-button
14060
- type="button"
14061
- [color]="_ctaColor()"
14062
- variant="solid"
14063
- [icon]="ctaIcon()"
14064
- (click)="cta.emit()">
14065
- {{ ctaLabel() }}
14066
- </button>
14067
- }
14068
- `, isInline: true, dependencies: [{ kind: "component", type: ClxButtonComponent, selector: "button[clx-button], a[clx-button]", inputs: ["variant", "color", "textColor", "size", "shape", "loading", "disabled", "block", "icon", "iconPosition", "iconOnly", "badge", "badgeColor"] }, { kind: "component", type: ClxIconComponent, selector: "span[clx-icon]", inputs: ["name", "size", "color", "fill"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
14069
- }
14070
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxPageEmptyComponent, decorators: [{
14071
- type: Component,
14072
- args: [{
14073
- selector: 'clx-page-empty',
14074
- standalone: true,
14075
- imports: [ClxButtonComponent, ClxIconComponent],
14076
- encapsulation: ViewEncapsulation.None,
14077
- changeDetection: ChangeDetectionStrategy.OnPush,
14078
- host: { class: 'flex flex-col items-center justify-center w-full px-6 text-center text-sm' },
14079
- template: `
14080
- <div class="w-20 h-20 rounded-2xl bg-clx-surface-2 flex items-center justify-center mb-6">
14081
- <span clx-icon [name]="icon()" size="xl" class="text-clx-text-faint"></span>
14082
- </div>
14083
-
14084
- <h1 class="text-base font-semibold text-clx-text-label mb-2">{{ heading() }}</h1>
14085
-
14086
- @if (description()) {
14087
- <p class="text-clx-text-subtle max-w-sm mb-8">{{ description() }}</p>
14088
- }
14089
-
14090
- @if (ctaLabel()) {
14091
- <button
14092
- clx-button
14093
- type="button"
14094
- [color]="_ctaColor()"
14095
- variant="solid"
14096
- [icon]="ctaIcon()"
14097
- (click)="cta.emit()">
14098
- {{ ctaLabel() }}
14099
- </button>
14100
- }
14101
- `,
14102
- }]
14103
- }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], ctaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ctaLabel", required: false }] }], ctaIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "ctaIcon", required: false }] }], ctaColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "ctaColor", required: false }] }], cta: [{ type: i0.Output, args: ["cta"] }] } });
14104
-
14105
14093
  class ClxTableComponent {
14106
14094
  _themeSvc = inject(ClxThemeService);
14107
14095
  // ── Inputs ─────────────────────────────────────────────────────────────────