codexly-ui 0.14.4 → 0.15.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codexly-ui",
3
- "version": "0.14.4",
3
+ "version": "0.15.1",
4
4
  "description": "Standalone, signal-based Angular UI component library for Codexly, styled with Tailwind CSS.",
5
5
  "keywords": [
6
6
  "angular",
@@ -6,6 +6,7 @@ import { ControlValueAccessor, FormControl, FormGroup } from '@angular/forms';
6
6
  import * as _angular_cdk_overlay from '@angular/cdk/overlay';
7
7
  import { ConnectedPosition } from '@angular/cdk/overlay';
8
8
  import { Observable } from 'rxjs';
9
+ import { CdkDragDrop, CdkDragMove } from '@angular/cdk/drag-drop';
9
10
 
10
11
  type ClxSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
11
12
 
@@ -119,9 +120,9 @@ declare class ClxSocialIconComponent {
119
120
  readonly platform: _angular_core.InputSignal<ClxSocialPlatform>;
120
121
  readonly variant: _angular_core.InputSignal<ClxButtonVariant>;
121
122
  readonly color: _angular_core.InputSignal<ClxColorInput | undefined>;
122
- readonly size: _angular_core.InputSignal<"sm" | "md" | "lg" | "xxs" | "xs" | undefined>;
123
+ readonly size: _angular_core.InputSignal<"xxs" | "xs" | "sm" | "md" | "lg" | undefined>;
123
124
  protected readonly _color: _angular_core.Signal<ClxColorInput>;
124
- protected readonly _size: _angular_core.Signal<"sm" | "md" | "lg" | "xxs" | "xs">;
125
+ protected readonly _size: _angular_core.Signal<"xxs" | "xs" | "sm" | "md" | "lg">;
125
126
  protected readonly _markup: _angular_core.Signal<SafeHtml>;
126
127
  protected readonly _hostClass: _angular_core.Signal<string>;
127
128
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxSocialIconComponent, never>;
@@ -144,11 +145,11 @@ declare class ClxButtonComponent {
144
145
  * unusual background shade (bright yellow) where the variant's own resolved text color (white)
145
146
  * reads poorly and a themed text tone is needed instead. */
146
147
  readonly textColor: _angular_core.InputSignal<ClxColorInput | undefined>;
147
- readonly size: _angular_core.InputSignal<"sm" | "md" | "lg" | "xxs" | "xs" | undefined>;
148
+ readonly size: _angular_core.InputSignal<"xxs" | "xs" | "sm" | "md" | "lg" | undefined>;
148
149
  readonly shape: _angular_core.InputSignal<ClxShape | undefined>;
149
150
  private readonly _tableActionsColor;
150
151
  protected readonly _color: _angular_core.Signal<ClxColorInput>;
151
- protected readonly _size: _angular_core.Signal<"sm" | "md" | "lg" | "xxs" | "xs">;
152
+ protected readonly _size: _angular_core.Signal<"xxs" | "xs" | "sm" | "md" | "lg">;
152
153
  protected readonly _shape: _angular_core.Signal<ClxShape>;
153
154
  readonly loading: _angular_core.InputSignal<boolean>;
154
155
  readonly disabled: _angular_core.InputSignal<boolean>;
@@ -204,11 +205,11 @@ declare class ClxBadgeComponent {
204
205
  private readonly _themeSvc;
205
206
  readonly variant: _angular_core.InputSignal<ClxBadgeVariant>;
206
207
  readonly color: _angular_core.InputSignal<ClxColorInput | undefined>;
207
- readonly size: _angular_core.InputSignal<"sm" | "md" | "xs" | undefined>;
208
+ readonly size: _angular_core.InputSignal<"xs" | "sm" | "md" | undefined>;
208
209
  readonly shape: _angular_core.InputSignal<ClxShape | undefined>;
209
210
  readonly positioned: _angular_core.InputSignal<boolean>;
210
211
  protected readonly _color: _angular_core.Signal<ClxColorInput>;
211
- protected readonly _size: _angular_core.Signal<"sm" | "md" | "xs">;
212
+ protected readonly _size: _angular_core.Signal<"xs" | "sm" | "md">;
212
213
  protected readonly _shape: _angular_core.Signal<ClxShape>;
213
214
  protected readonly _hostClass: _angular_core.Signal<string>;
214
215
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxBadgeComponent, never>;
@@ -290,7 +291,7 @@ declare class ClxCardComponent {
290
291
  * product-cart-style layout) regardless of variant/color. */
291
292
  readonly border: _angular_core.InputSignal<boolean>;
292
293
  /** Per-instance border-radius override — falls back to the theme's global borderRadius when unset. */
293
- readonly radius: _angular_core.InputSignal<"sm" | "md" | "lg" | "none" | "xl" | "full" | undefined>;
294
+ readonly radius: _angular_core.InputSignal<"sm" | "md" | "lg" | "xl" | "none" | "full" | undefined>;
294
295
  /** Auto-generated header icon (Material Symbols name) — shown in a rounded primary-subtle
295
296
  * square next to headerTitle. Ignored when a manual [clxCardHeader] block is projected. */
296
297
  readonly icon: _angular_core.InputSignal<string | undefined>;
@@ -493,7 +494,14 @@ declare class ClxSpinnerComponent {
493
494
  }
494
495
 
495
496
  type ClxProgressBarSize = 'xs' | 'sm' | 'md' | 'lg';
496
- type ClxProgressBarVariant = 'solid' | 'striped' | 'indeterminate';
497
+ type ClxProgressBarVariant = 'solid' | 'striped' | 'indeterminate' | 'segmented';
498
+ /** One slice of a `variant="segmented"` progress bar — widths are normalized against the sum of
499
+ * every segment's `value`, independent of the bar's own `max`/`value` inputs. */
500
+ interface ClxProgressBarSegment {
501
+ value: number;
502
+ color: ClxColorInput;
503
+ label?: string;
504
+ }
497
505
 
498
506
  declare class ClxProgressBarComponent {
499
507
  private readonly _themeSvc;
@@ -505,15 +513,23 @@ declare class ClxProgressBarComponent {
505
513
  readonly variant: _angular_core.InputSignal<ClxProgressBarVariant>;
506
514
  readonly label: _angular_core.InputSignal<string>;
507
515
  readonly showValue: _angular_core.InputSignal<boolean>;
508
- readonly valueFormat: _angular_core.InputSignal<"value" | "percent" | "fraction">;
516
+ readonly valueFormat: _angular_core.InputSignal<"percent" | "fraction" | "value">;
517
+ /** Only read when variant()==='segmented' — ignores value()/max() entirely, each segment's
518
+ * width is its own value as a fraction of the segments' combined total. */
519
+ readonly segments: _angular_core.InputSignal<ClxProgressBarSegment[]>;
509
520
  protected readonly _pct: _angular_core.Signal<number>;
510
521
  protected readonly _pbSize: _angular_core.Signal<ClxProgressBarSize>;
511
522
  protected readonly _trackH: _angular_core.Signal<string>;
512
523
  protected readonly _labelCls: _angular_core.Signal<"text-xs text-clx-text-label" | "text-sm text-clx-text-label">;
513
524
  protected readonly _displayValue: _angular_core.Signal<string>;
514
525
  protected readonly _fillCls: _angular_core.Signal<string>;
526
+ protected readonly _segmentPcts: _angular_core.Signal<{
527
+ pct: number;
528
+ cls: string;
529
+ label: string | undefined;
530
+ }[]>;
515
531
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxProgressBarComponent, never>;
516
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxProgressBarComponent, "clx-progress-bar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
532
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxProgressBarComponent, "clx-progress-bar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "segments": { "alias": "segments"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
517
533
  }
518
534
 
519
535
  declare class ClxRatingComponent {
@@ -1950,7 +1966,7 @@ declare class ClxEditorComponent implements AfterViewInit, OnDestroy, ControlVal
1950
1966
  protected readonly _color: _angular_core.Signal<ClxColorInput>;
1951
1967
  readonly size: _angular_core.InputSignal<ClxEditorSize | undefined>;
1952
1968
  protected readonly _editorSize: _angular_core.Signal<ClxEditorSize>;
1953
- readonly status: _angular_core.InputSignal<"default" | "success" | "error">;
1969
+ readonly status: _angular_core.InputSignal<"success" | "error" | "default">;
1954
1970
  readonly statusMessage: _angular_core.InputSignal<string>;
1955
1971
  readonly hint: _angular_core.InputSignal<string>;
1956
1972
  readonly disabled: _angular_core.InputSignal<boolean>;
@@ -2126,6 +2142,9 @@ declare class ClxWizardComponent implements AfterContentInit {
2126
2142
  readonly prevLabel: _angular_core.InputSignal<string>;
2127
2143
  readonly nextLabel: _angular_core.InputSignal<string>;
2128
2144
  readonly finishLabel: _angular_core.InputSignal<string>;
2145
+ /** Shows a spinner on the finish button and disables it — for an async (finish) handler that
2146
+ * takes a moment (an HTTP call), so the consumer doesn't need its own separate loading label. */
2147
+ readonly finishLoading: _angular_core.InputSignal<boolean>;
2129
2148
  readonly stepChange: _angular_core.OutputEmitterRef<number>;
2130
2149
  readonly finish: _angular_core.OutputEmitterRef<void>;
2131
2150
  private readonly _destroyRef;
@@ -2151,7 +2170,7 @@ declare class ClxWizardComponent implements AfterContentInit {
2151
2170
  protected readonly _rootClass: _angular_core.Signal<string>;
2152
2171
  protected _circleClass(i: number): string;
2153
2172
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxWizardComponent, never>;
2154
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxWizardComponent, "clx-wizard", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "activeTextColor": { "alias": "activeTextColor"; "required": false; "isSignal": true; }; "underlineColor": { "alias": "underlineColor"; "required": false; "isSignal": true; }; "stepColor": { "alias": "stepColor"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "prevLabel": { "alias": "prevLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "finishLabel": { "alias": "finishLabel"; "required": false; "isSignal": true; }; }, { "stepChange": "stepChange"; "finish": "finish"; }, ["_stepQuery"], ["*", "[clx-wizard-footer-start]"], true, never>;
2173
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxWizardComponent, "clx-wizard", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "activeTextColor": { "alias": "activeTextColor"; "required": false; "isSignal": true; }; "underlineColor": { "alias": "underlineColor"; "required": false; "isSignal": true; }; "stepColor": { "alias": "stepColor"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "prevLabel": { "alias": "prevLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "finishLabel": { "alias": "finishLabel"; "required": false; "isSignal": true; }; "finishLoading": { "alias": "finishLoading"; "required": false; "isSignal": true; }; }, { "stepChange": "stepChange"; "finish": "finish"; }, ["_stepQuery"], ["*", "[clx-wizard-footer-start]"], true, never>;
2155
2174
  }
2156
2175
 
2157
2176
  declare class ClxAppLayoutComponent implements OnInit, OnDestroy {
@@ -2431,7 +2450,7 @@ declare class ClxMenuComponent implements AfterViewInit {
2431
2450
  readonly style: _angular_core.InputSignal<ClxNavZoneStyle | undefined>;
2432
2451
  protected readonly _resolved: _angular_core.Signal<{
2433
2452
  color: codexly_ui.ClxColorInput;
2434
- size: "sm" | "md" | "xs";
2453
+ size: "xs" | "sm" | "md";
2435
2454
  weight: codexly_ui.ClxFontWeight;
2436
2455
  }>;
2437
2456
  protected readonly _color: _angular_core.Signal<codexly_ui.ClxColorInput>;
@@ -2785,7 +2804,7 @@ declare class ClxNotificationComponent {
2785
2804
  } | undefined>;
2786
2805
  readonly buttonColor: _angular_core.InputSignal<ClxColorInput | undefined>;
2787
2806
  readonly buttonVariant: _angular_core.InputSignal<ClxButtonVariant>;
2788
- readonly buttonSize: _angular_core.InputSignal<"sm" | "md" | "lg" | "xxs" | "xs">;
2807
+ readonly buttonSize: _angular_core.InputSignal<"xxs" | "xs" | "sm" | "md" | "lg">;
2789
2808
  readonly buttonIcon: _angular_core.InputSignal<string>;
2790
2809
  /** Unread-count badge color — falls back to the theme's notification.unreadColor (then
2791
2810
  * primaryColor) when unset. */
@@ -3337,7 +3356,7 @@ declare class ClxFabComponent {
3337
3356
  protected readonly _position: _angular_core.Signal<ClxFabPosition>;
3338
3357
  protected readonly _triggerClass: _angular_core.Signal<string>;
3339
3358
  /** Los botones de la pila de accesos van un paso más pequeños que el trigger. */
3340
- protected readonly _itemSize: _angular_core.Signal<"sm" | "xxs" | "xs">;
3359
+ protected readonly _itemSize: _angular_core.Signal<"xxs" | "xs" | "sm">;
3341
3360
  private readonly _sso;
3342
3361
  readonly _scrollStrategy: _angular_cdk_overlay.RepositionScrollStrategy;
3343
3362
  readonly _positions: ConnectedPosition[];
@@ -3547,6 +3566,7 @@ interface SparkPoint {
3547
3566
  }
3548
3567
 
3549
3568
  declare class ClxStatCardComponent {
3569
+ private readonly _themeSvc;
3550
3570
  readonly metric: _angular_core.InputSignal<ClxStatMetric>;
3551
3571
  readonly chartData: _angular_core.InputSignal<number[]>;
3552
3572
  readonly color: _angular_core.InputSignal<ClxColorInput>;
@@ -3558,9 +3578,13 @@ declare class ClxStatCardComponent {
3558
3578
  protected readonly _iconTextBase: _angular_core.Signal<string>;
3559
3579
  protected readonly _lineColor: _angular_core.Signal<string>;
3560
3580
  protected readonly _gradId: _angular_core.Signal<string>;
3581
+ /** A widget with no meaningful period-over-period comparison (e.g. a plain point-in-time count
3582
+ * like "pending commissions") passes trend: '' — hides the trend badge/row entirely instead of
3583
+ * rendering an empty pill with just an arrow icon and no text. */
3584
+ protected readonly _hasTrend: _angular_core.Signal<boolean>;
3561
3585
  protected readonly _trendColor: _angular_core.Signal<"red" | "green" | "slate">;
3562
3586
  protected readonly _trendArrowIcon: _angular_core.Signal<"arrow_upward" | "arrow_downward" | "remove">;
3563
- protected readonly _trendTextClass: _angular_core.Signal<"text-red-500" | "text-green-500" | "text-slate-400">;
3587
+ protected readonly _trendTextClass: _angular_core.Signal<"text-clx-text-subtle" | "text-red-500" | "text-green-500">;
3564
3588
  protected readonly _trendIcon: _angular_core.Signal<"remove" | "arrow_outward" | "south_east">;
3565
3589
  protected readonly _formattedValue: _angular_core.Signal<string>;
3566
3590
  protected readonly _points: _angular_core.Signal<SparkPoint[]>;
@@ -3572,6 +3596,138 @@ declare class ClxStatCardComponent {
3572
3596
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxStatCardComponent, "clx-stat-card", never, { "metric": { "alias": "metric"; "required": true; "isSignal": true; }; "chartData": { "alias": "chartData"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3573
3597
  }
3574
3598
 
3599
+ type ClxWidgetCardState = 'ready' | 'loading' | 'empty' | 'error';
3600
+ interface ClxWidgetMenuAction {
3601
+ label: string;
3602
+ icon: string;
3603
+ action: string;
3604
+ /** Marks the action as destructive (e.g. "Remove from dashboard") — rendered in red regardless of theme. */
3605
+ danger?: boolean;
3606
+ }
3607
+
3608
+ /** Standard chrome for any dashboard widget (stat card, chart, table, list...) — header with
3609
+ * title + an optional drag handle + an overlay menu for per-widget actions (configure, resize,
3610
+ * remove), plus shared loading/empty/error states so individual widgets never re-implement them.
3611
+ * Widget content itself is projected via the default <ng-content>; callers keep full control of
3612
+ * what renders inside once state() is 'ready'. */
3613
+ declare class ClxWidgetCardComponent {
3614
+ private readonly _themeSvc;
3615
+ readonly title: _angular_core.InputSignal<string>;
3616
+ readonly state: _angular_core.InputSignal<ClxWidgetCardState>;
3617
+ readonly draggable: _angular_core.InputSignal<boolean>;
3618
+ readonly menuActions: _angular_core.InputSignal<ClxWidgetMenuAction[]>;
3619
+ readonly menuLabel: _angular_core.InputSignal<string>;
3620
+ readonly emptyMessage: _angular_core.InputSignal<string>;
3621
+ readonly errorMessage: _angular_core.InputSignal<string>;
3622
+ readonly retryLabel: _angular_core.InputSignal<string>;
3623
+ readonly menuAction: _angular_core.OutputEmitterRef<string>;
3624
+ readonly retry: _angular_core.OutputEmitterRef<void>;
3625
+ private readonly _sso;
3626
+ readonly _scrollStrategy: _angular_cdk_overlay.RepositionScrollStrategy;
3627
+ readonly _positions: ConnectedPosition[];
3628
+ protected readonly _menuOpen: _angular_core.WritableSignal<boolean>;
3629
+ protected readonly _menuPanelClass: _angular_core.Signal<string>;
3630
+ protected readonly _hostClass: _angular_core.Signal<string>;
3631
+ protected _toggleMenu(): void;
3632
+ protected _closeMenu(): void;
3633
+ protected _onMenuKeydown(event: KeyboardEvent): void;
3634
+ protected _onMenuAction(action: string): void;
3635
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxWidgetCardComponent, never>;
3636
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxWidgetCardComponent, "clx-widget-card", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "menuActions": { "alias": "menuActions"; "required": false; "isSignal": true; }; "menuLabel": { "alias": "menuLabel"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "retryLabel": { "alias": "retryLabel"; "required": false; "isSignal": true; }; }, { "menuAction": "menuAction"; "retry": "retry"; }, never, ["*"], true, never>;
3637
+ }
3638
+
3639
+ /** Drop-in cell for a `clxCell` table column: label + inline progress bar + trailing value —
3640
+ * e.g. "Canadá [████████░░] 6,192" rows in a "sales by country/branch" dashboard widget. Mount it
3641
+ * inside `<ng-template clxCell let-row>` instead of hand-building the flex row each time. */
3642
+ declare class ClxTableProgressCellComponent {
3643
+ readonly label: _angular_core.InputSignal<string>;
3644
+ readonly value: _angular_core.InputSignal<number>;
3645
+ readonly max: _angular_core.InputSignal<number>;
3646
+ readonly color: _angular_core.InputSignal<ClxColorInput | undefined>;
3647
+ /** Optional leading glyph (e.g. a flag emoji) shown before the label. */
3648
+ readonly leadingIcon: _angular_core.InputSignal<string | undefined>;
3649
+ /** Overrides the trailing number's text (e.g. a formatted "6,192") — falls back to the raw value(). */
3650
+ readonly displayValue: _angular_core.InputSignal<string | number | undefined>;
3651
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxTableProgressCellComponent, never>;
3652
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxTableProgressCellComponent, "clx-table-progress-cell", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "leadingIcon": { "alias": "leadingIcon"; "required": false; "isSignal": true; }; "displayValue": { "alias": "displayValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3653
+ }
3654
+
3655
+ /** Drop-in cell for a `clxCell` table column: avatar (or initials) + label on the left, a status
3656
+ * pill on the right — e.g. a "recent orders" dashboard widget row like "Orden #4582 ⋯ Entregado".
3657
+ * Mount it inside `<ng-template clxCell let-row>` instead of hand-building the flex row each time. */
3658
+ declare class ClxTableStatusCellComponent {
3659
+ readonly label: _angular_core.InputSignal<string>;
3660
+ readonly avatarSrc: _angular_core.InputSignal<string | null>;
3661
+ readonly avatarInitials: _angular_core.InputSignal<string | null>;
3662
+ readonly avatarColor: _angular_core.InputSignal<ClxColorInput | undefined>;
3663
+ readonly statusLabel: _angular_core.InputSignal<string>;
3664
+ readonly statusColor: _angular_core.InputSignal<ClxColorInput>;
3665
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxTableStatusCellComponent, never>;
3666
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxTableStatusCellComponent, "clx-table-status-cell", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; "isSignal": true; }; "avatarInitials": { "alias": "avatarInitials"; "required": false; "isSignal": true; }; "avatarColor": { "alias": "avatarColor"; "required": false; "isSignal": true; }; "statusLabel": { "alias": "statusLabel"; "required": true; "isSignal": true; }; "statusColor": { "alias": "statusColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3667
+ }
3668
+
3669
+ /** One widget's placement + size on the grid, in column/row units (not pixels) — this is the
3670
+ * shape persisted as the `layout` JSONB column of a saved dashboard (e.g. codexly's
3671
+ * rp_dashboard_layouts.layout: ClxGridItem[]). `id` is the caller's own widget instance id, used
3672
+ * only to correlate a layout entry back to whatever renders inside it (ClxDashboardGridComponent
3673
+ * itself is content-agnostic — it positions and resizes a projected element, nothing more). */
3674
+ interface ClxGridItem {
3675
+ id: string;
3676
+ x: number;
3677
+ y: number;
3678
+ w: number;
3679
+ h: number;
3680
+ /** Set on creation (e.g. 1x1) and raised on `minW`/`minH` violations — consumers typically
3681
+ * ignore this and just respect minW/minH when building a new item. */
3682
+ minW?: number;
3683
+ minH?: number;
3684
+ }
3685
+ interface ClxGridItemMoveEvent {
3686
+ id: string;
3687
+ x: number;
3688
+ y: number;
3689
+ }
3690
+ interface ClxGridItemResizeEvent {
3691
+ id: string;
3692
+ w: number;
3693
+ h: number;
3694
+ }
3695
+
3696
+ interface ClxGridItemContext {
3697
+ $implicit: ClxGridItem;
3698
+ }
3699
+ /** Content template for one grid cell — `<ng-template clxGridItem let-item>...</ng-template>`,
3700
+ * mirroring the `clxCell`/`clxColumn` convention ClxTableComponent already uses for projected
3701
+ * per-row templates. Typically a <clx-widget-card> wrapping whatever the widget actually renders. */
3702
+ declare class ClxGridItemDirective {
3703
+ readonly templateRef: TemplateRef<ClxGridItemContext>;
3704
+ constructor(templateRef: TemplateRef<ClxGridItemContext>);
3705
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxGridItemDirective, never>;
3706
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ClxGridItemDirective, "ng-template[clxGridItem]", never, {}, {}, never, never, true, never>;
3707
+ }
3708
+ /** Content-agnostic configurable dashboard grid: positions/sizes projected widgets on a CSS grid
3709
+ * using column/row units, supports drag-to-reorder (via Angular CDK's CdkDropList/CdkDrag — no
3710
+ * new dependency, @angular/cdk is already pulled in by ClxProfileComponent/ClxWidgetCardComponent's
3711
+ * overlay usage) and resize-by-dragging a corner handle. Persistence is the caller's job: listen
3712
+ * to (layoutChange) and save the resulting ClxGridItem[] (e.g. to rp_dashboard_layouts.layout). */
3713
+ declare class ClxDashboardGridComponent {
3714
+ readonly items: _angular_core.InputSignal<ClxGridItem[]>;
3715
+ readonly columns: _angular_core.InputSignal<number>;
3716
+ readonly rowHeight: _angular_core.InputSignal<number>;
3717
+ readonly gap: _angular_core.InputSignal<number>;
3718
+ readonly editable: _angular_core.InputSignal<boolean>;
3719
+ readonly layoutChange: _angular_core.OutputEmitterRef<ClxGridItem[]>;
3720
+ readonly itemResize: _angular_core.OutputEmitterRef<ClxGridItemResizeEvent>;
3721
+ protected readonly _itemTemplate: _angular_core.Signal<ClxGridItemDirective | undefined>;
3722
+ protected readonly _gridCols: _angular_core.Signal<string>;
3723
+ private _resizing;
3724
+ protected _onDrop(event: CdkDragDrop<ClxGridItem[]>): void;
3725
+ protected _onDragMoved(_event: CdkDragMove<ClxGridItem>): void;
3726
+ protected _startResize(event: PointerEvent, item: ClxGridItem): void;
3727
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxDashboardGridComponent, never>;
3728
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxDashboardGridComponent, "clx-dashboard-grid", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; }, { "layoutChange": "layoutChange"; "itemResize": "itemResize"; }, ["_itemTemplate"], never, true, never>;
3729
+ }
3730
+
3575
3731
  type ClxProductLayout = 'vertical' | 'horizontal';
3576
3732
  type ClxProductSize = 'sm' | 'md';
3577
3733
  /** Refleja st_variations + st_products (campos necesarios para la card) */
@@ -4185,7 +4341,7 @@ declare class ClxSearchComponent implements ControlValueAccessor {
4185
4341
  padDefaultL: string;
4186
4342
  padDefaultR: string;
4187
4343
  }>;
4188
- protected readonly _buttonSize: _angular_core.Signal<"sm" | "md" | "lg" | "xs">;
4344
+ protected readonly _buttonSize: _angular_core.Signal<"xs" | "sm" | "md" | "lg">;
4189
4345
  protected readonly _wrapperClass: _angular_core.Signal<string>;
4190
4346
  protected readonly _inputClass: _angular_core.Signal<string>;
4191
4347
  writeValue(val: string): void;
@@ -4544,5 +4700,5 @@ declare class ClxToastService {
4544
4700
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ClxToastService>;
4545
4701
  }
4546
4702
 
4547
- export { CLX_ADDON_BORDER, CLX_ADDON_TEXT, CLX_ALERT_OPTIONS, CLX_ALERT_RESOLVE, CLX_BG_ADDON, CLX_BG_DISABLED, CLX_BG_ICON_WRAP, CLX_BG_SECTION, CLX_BG_SURFACE, CLX_BORDER_DEFAULT, CLX_BORDER_DISABLED, CLX_BORDER_MEDIUM, CLX_COLOR_HEX, CLX_COLOR_HEX_100, CLX_COLOR_MAP, CLX_FONT_CATALOG, CLX_MODAL_ANIM_CONFIG, CLX_MODAL_DATA, CLX_MODAL_REF, CLX_OPTION_DISABLED, CLX_PLACEHOLDER, CLX_RADIO_GROUP, CLX_RADIUS_MAP, CLX_TEXT_BODY, CLX_TEXT_DISABLED, CLX_TEXT_HEADING, CLX_TEXT_HINT, CLX_TEXT_IDLE, CLX_TEXT_INPUT, CLX_TEXT_LABEL, CLX_TEXT_OPTION, CLX_TEXT_SUBTITLE, CLX_TEXT_TITLE, CLX_THEME_CONFIG, CLX_THEME_DEFAULTS, CLX_TOAST_DEFAULTS, ClxAlertComponent, ClxAlertService, ClxAnimateDirective, ClxAnimateGroupDirective, ClxAnimateService, ClxAppLayoutComponent, ClxAvatarComponent, ClxBadgeComponent, ClxBrandComponent, ClxButtonComponent, ClxButtonGroupComponent, ClxCardBodyDirective, ClxCardComponent, ClxCardExpiryInputComponent, ClxCardFooterDirective, ClxCardHeaderActionsDirective, ClxCardHeaderDirective, ClxCardNumberInputComponent, ClxCardValidators, ClxCarouselComponent, ClxCarouselDirective, ClxCartComponent, ClxCartSummaryDrawer, ClxCellDirective, ClxCheckboxComponent, ClxCollapseComponent, ClxColorPickerComponent, ClxColumnDefDirective, ClxDateRangePickerComponent, ClxDatepickerComponent, ClxDrawerComponent, ClxDrawerService, ClxEditorComponent, ClxEditorImageModalComponent, ClxEditorLinkModalComponent, ClxFabComponent, ClxFilterPanelComponent, ClxHeaderCellDirective, ClxIconComponent, ClxInputComponent, ClxListComponent, ClxListItemComponent, ClxMenuComponent, ClxMenuItemComponent, ClxMenuItemTrailingDirective, ClxModalComponent, ClxModalService, ClxNativeOverlayService, ClxNavGroupComponent, ClxNotificationComponent, ClxNumberComponent, ClxOtpComponent, ClxPageEmptyComponent, ClxPageHeaderComponent, ClxPageHeaderTitleDirective, ClxPageNotFoundComponent, ClxPageServerErrorComponent, ClxPageUnauthorizedComponent, ClxPaginationComponent, ClxProductComponent, ClxProductDetailComponent, ClxProductQuickViewComponent, ClxProfileComponent, ClxProgressBarComponent, ClxRadioComponent, ClxRadioGroupComponent, ClxRatingComponent, ClxSearchComponent, ClxSelectComponent, ClxSkeletonComponent, ClxSliderComponent, ClxSocialIconComponent, ClxSpinnerComponent, ClxStatCardComponent, ClxStepComponent, ClxStepperComponent, ClxSwitchComponent, ClxTabDirective, ClxTableActionsComponent, ClxTableComponent, ClxTabsComponent, ClxTagComponent, ClxTextareaComponent, ClxThemeService, ClxTimelineComponent, ClxTimelineItemComponent, ClxTimepickerComponent, ClxToastComponent, ClxToastContainerComponent, ClxToastService, ClxTooltipComponent, ClxTooltipDirective, ClxTreeComponent, ClxUploadComponent, ClxWishlistComponent, ClxWizardComponent, TIMEPICKER_SIZE_MAP, detectClxCardBrand, isClxCardExpired, parseColorInput, provideCodexlyTheme, resolveColor, resolveContainerRadius, resolveRadius };
4548
- export type { ClxAlertButtonOptions, ClxAlertOptions, ClxAlertResult, ClxAlertType, ClxAnimateAttentionSeeker, ClxAnimateBackEntrance, ClxAnimateBackExit, ClxAnimateBouncingEntrance, ClxAnimateBouncingExit, ClxAnimateConfig, ClxAnimateDefaults, ClxAnimateEvent, ClxAnimateFadingEntrance, ClxAnimateFadingExit, ClxAnimateFlipper, ClxAnimateLightspeed, ClxAnimateName, ClxAnimateRotatingEntrance, ClxAnimateRotatingExit, ClxAnimateSlidingEntrance, ClxAnimateSlidingExit, ClxAnimateSpecial, ClxAnimateTrigger, ClxAnimateZoomingEntrance, ClxAnimateZoomingExit, ClxAvatarContentType, ClxBadgeVariant, ClxBrandSize, ClxButtonColor, ClxButtonGroupShape, ClxButtonVariant, ClxCardBrand, ClxCardPadding, ClxCardShadow, ClxCardTitleZoneStyle, ClxCardVariant, ClxCarouselAspectRatio, ClxCarouselConfig, ClxCartItem, ClxCartSummaryData, ClxCellContext, ClxCheckboxVariant, ClxCollapseDivider, ClxCollapseSize, ClxColor, ClxColorInput, ClxColorPickerFormat, ClxColorPickerSize, ClxColorResolved, ClxColorTokens, ClxCouponResult, ClxDateRange, ClxDateRangePickerSize, ClxDateRangePickerStatus, ClxDatepickerSize, ClxDatepickerStatus, ClxDrawerButtonOptions, ClxDrawerConfig, ClxDrawerPosition, ClxDrawerRef, ClxDrawerSize, ClxEditorSize, ClxEditorTool, ClxEditorToolbarGroup, ClxExistingFile, ClxFabItem, ClxFabPosition, ClxFilterChangeEvent, ClxFilterField, ClxFilterFieldType, ClxFilterOption, ClxFilterValue, ClxFilterValues, ClxFontFamily, ClxFontOption, ClxFontWeight, ClxFormControlsTheme, ClxInputSize, ClxInputStatus, ClxInputType, ClxListItem, ClxListItemLabelZoneStyle, ClxListSize, ClxListVariant, ClxModalButtonOptions, ClxModalConfig, ClxModalRef, ClxModalSize, ClxNavZoneStyle, ClxNotificationItem, ClxNotificationSeverity, ClxNotificationSeverityColors, ClxNotificationSize, ClxNotificationTheme, ClxNumberSize, ClxNumberVariant, ClxOtpSize, ClxPageChangeEvent, ClxPageHeaderTextSize, ClxPageHeaderZoneStyle, ClxPageSizeChangeEvent, ClxPaginationSize, ClxPaginationTheme, ClxProduct, ClxProductDescription, ClxProductDetailData, ClxProductLayout, ClxProductQuickViewData, ClxProductQuickViewResult, ClxProductSize, ClxProductSpec, ClxProfileMenuItem, ClxProgressBarSize, ClxProgressBarVariant, ClxRadioVariant, ClxResolvedCardTitleZoneStyle, ClxResolvedListItemLabelZoneStyle, ClxResolvedNavZoneStyle, ClxResolvedNotificationStyle, ClxResolvedPageHeaderZoneStyle, ClxResolvedPaginationStyle, ClxResolvedTableStyle, ClxResolvedTabsStyle, ClxResolvedTimelineTitleZoneStyle, ClxResolvedWizardStyle, ClxReview, ClxRippleItem, ClxSelectOption, ClxSelectSize, ClxShade, ClxShape, ClxSize, ClxSkeletonVariant, ClxSliderSize, ClxSocialPlatform, ClxSpecOption, ClxSpecType, ClxSpinnerColor, ClxSpinnerVariant, ClxStatMetric, ClxStepperOrientation, ClxStepperSize, ClxStepperStatus, ClxStepperStep, ClxTabItem, ClxTableColumn, ClxTablePageEvent, ClxTableSelectionEvent, ClxTableShadow, ClxTableSort, ClxTableSortEvent, ClxTableTheme, ClxTabsTheme, ClxTagShape, ClxTagSize, ClxTagVariant, ClxTextareaResize, ClxTextareaSize, ClxTextareaStatus, ClxThemeConfig, ClxThemeMode, ClxTimelineLineStyle, ClxTimelineMode, ClxTimelineSize, ClxTimelineTitleZoneStyle, ClxTimepickerSize, ClxTimepickerStatus, ClxToastAction, ClxToastEntry, ClxToastOptions, ClxToastPosition, ClxToastType, ClxTooltipPosition, ClxTooltipSize, ClxTreeExpandEvent, ClxTreeNode, ClxTreeSelectEvent, ClxTreeSize, ClxTreeVariant, ClxTrendDirection, ClxUploadError, ClxUploadItemAction, ClxUploadItemActionResolver, ClxUploadPreviewItem, ClxUploadSize, ClxVariation, ClxWishlistItem, ClxWishlistPageChangeEvent, ClxWizardColor, ClxWizardOrientation, ClxWizardStepStatus, ClxWizardTheme, NativeOverlayRef, SparkPoint };
4703
+ export { CLX_ADDON_BORDER, CLX_ADDON_TEXT, CLX_ALERT_OPTIONS, CLX_ALERT_RESOLVE, CLX_BG_ADDON, CLX_BG_DISABLED, CLX_BG_ICON_WRAP, CLX_BG_SECTION, CLX_BG_SURFACE, CLX_BORDER_DEFAULT, CLX_BORDER_DISABLED, CLX_BORDER_MEDIUM, CLX_COLOR_HEX, CLX_COLOR_HEX_100, CLX_COLOR_MAP, CLX_FONT_CATALOG, CLX_MODAL_ANIM_CONFIG, CLX_MODAL_DATA, CLX_MODAL_REF, CLX_OPTION_DISABLED, CLX_PLACEHOLDER, CLX_RADIO_GROUP, CLX_RADIUS_MAP, CLX_TEXT_BODY, CLX_TEXT_DISABLED, CLX_TEXT_HEADING, CLX_TEXT_HINT, CLX_TEXT_IDLE, CLX_TEXT_INPUT, CLX_TEXT_LABEL, CLX_TEXT_OPTION, CLX_TEXT_SUBTITLE, CLX_TEXT_TITLE, CLX_THEME_CONFIG, CLX_THEME_DEFAULTS, CLX_TOAST_DEFAULTS, ClxAlertComponent, ClxAlertService, ClxAnimateDirective, ClxAnimateGroupDirective, ClxAnimateService, ClxAppLayoutComponent, ClxAvatarComponent, ClxBadgeComponent, ClxBrandComponent, ClxButtonComponent, ClxButtonGroupComponent, ClxCardBodyDirective, ClxCardComponent, ClxCardExpiryInputComponent, ClxCardFooterDirective, ClxCardHeaderActionsDirective, ClxCardHeaderDirective, ClxCardNumberInputComponent, ClxCardValidators, ClxCarouselComponent, ClxCarouselDirective, ClxCartComponent, ClxCartSummaryDrawer, ClxCellDirective, ClxCheckboxComponent, ClxCollapseComponent, ClxColorPickerComponent, ClxColumnDefDirective, ClxDashboardGridComponent, ClxDateRangePickerComponent, ClxDatepickerComponent, ClxDrawerComponent, ClxDrawerService, ClxEditorComponent, ClxEditorImageModalComponent, ClxEditorLinkModalComponent, ClxFabComponent, ClxFilterPanelComponent, ClxGridItemDirective, ClxHeaderCellDirective, ClxIconComponent, ClxInputComponent, ClxListComponent, ClxListItemComponent, ClxMenuComponent, ClxMenuItemComponent, ClxMenuItemTrailingDirective, ClxModalComponent, ClxModalService, ClxNativeOverlayService, ClxNavGroupComponent, ClxNotificationComponent, ClxNumberComponent, ClxOtpComponent, ClxPageEmptyComponent, ClxPageHeaderComponent, ClxPageHeaderTitleDirective, ClxPageNotFoundComponent, ClxPageServerErrorComponent, ClxPageUnauthorizedComponent, ClxPaginationComponent, ClxProductComponent, ClxProductDetailComponent, ClxProductQuickViewComponent, ClxProfileComponent, ClxProgressBarComponent, ClxRadioComponent, ClxRadioGroupComponent, ClxRatingComponent, ClxSearchComponent, ClxSelectComponent, ClxSkeletonComponent, ClxSliderComponent, ClxSocialIconComponent, ClxSpinnerComponent, ClxStatCardComponent, ClxStepComponent, ClxStepperComponent, ClxSwitchComponent, ClxTabDirective, ClxTableActionsComponent, ClxTableComponent, ClxTableProgressCellComponent, ClxTableStatusCellComponent, ClxTabsComponent, ClxTagComponent, ClxTextareaComponent, ClxThemeService, ClxTimelineComponent, ClxTimelineItemComponent, ClxTimepickerComponent, ClxToastComponent, ClxToastContainerComponent, ClxToastService, ClxTooltipComponent, ClxTooltipDirective, ClxTreeComponent, ClxUploadComponent, ClxWidgetCardComponent, ClxWishlistComponent, ClxWizardComponent, TIMEPICKER_SIZE_MAP, detectClxCardBrand, isClxCardExpired, parseColorInput, provideCodexlyTheme, resolveColor, resolveContainerRadius, resolveRadius };
4704
+ export type { ClxAlertButtonOptions, ClxAlertOptions, ClxAlertResult, ClxAlertType, ClxAnimateAttentionSeeker, ClxAnimateBackEntrance, ClxAnimateBackExit, ClxAnimateBouncingEntrance, ClxAnimateBouncingExit, ClxAnimateConfig, ClxAnimateDefaults, ClxAnimateEvent, ClxAnimateFadingEntrance, ClxAnimateFadingExit, ClxAnimateFlipper, ClxAnimateLightspeed, ClxAnimateName, ClxAnimateRotatingEntrance, ClxAnimateRotatingExit, ClxAnimateSlidingEntrance, ClxAnimateSlidingExit, ClxAnimateSpecial, ClxAnimateTrigger, ClxAnimateZoomingEntrance, ClxAnimateZoomingExit, ClxAvatarContentType, ClxBadgeVariant, ClxBrandSize, ClxButtonColor, ClxButtonGroupShape, ClxButtonVariant, ClxCardBrand, ClxCardPadding, ClxCardShadow, ClxCardTitleZoneStyle, ClxCardVariant, ClxCarouselAspectRatio, ClxCarouselConfig, ClxCartItem, ClxCartSummaryData, ClxCellContext, ClxCheckboxVariant, ClxCollapseDivider, ClxCollapseSize, ClxColor, ClxColorInput, ClxColorPickerFormat, ClxColorPickerSize, ClxColorResolved, ClxColorTokens, ClxCouponResult, ClxDateRange, ClxDateRangePickerSize, ClxDateRangePickerStatus, ClxDatepickerSize, ClxDatepickerStatus, ClxDrawerButtonOptions, ClxDrawerConfig, ClxDrawerPosition, ClxDrawerRef, ClxDrawerSize, ClxEditorSize, ClxEditorTool, ClxEditorToolbarGroup, ClxExistingFile, ClxFabItem, ClxFabPosition, ClxFilterChangeEvent, ClxFilterField, ClxFilterFieldType, ClxFilterOption, ClxFilterValue, ClxFilterValues, ClxFontFamily, ClxFontOption, ClxFontWeight, ClxFormControlsTheme, ClxGridItem, ClxGridItemContext, ClxGridItemMoveEvent, ClxGridItemResizeEvent, ClxInputSize, ClxInputStatus, ClxInputType, ClxListItem, ClxListItemLabelZoneStyle, ClxListSize, ClxListVariant, ClxModalButtonOptions, ClxModalConfig, ClxModalRef, ClxModalSize, ClxNavZoneStyle, ClxNotificationItem, ClxNotificationSeverity, ClxNotificationSeverityColors, ClxNotificationSize, ClxNotificationTheme, ClxNumberSize, ClxNumberVariant, ClxOtpSize, ClxPageChangeEvent, ClxPageHeaderTextSize, ClxPageHeaderZoneStyle, ClxPageSizeChangeEvent, ClxPaginationSize, ClxPaginationTheme, ClxProduct, ClxProductDescription, ClxProductDetailData, ClxProductLayout, ClxProductQuickViewData, ClxProductQuickViewResult, ClxProductSize, ClxProductSpec, ClxProfileMenuItem, ClxProgressBarSegment, ClxProgressBarSize, ClxProgressBarVariant, ClxRadioVariant, ClxResolvedCardTitleZoneStyle, ClxResolvedListItemLabelZoneStyle, ClxResolvedNavZoneStyle, ClxResolvedNotificationStyle, ClxResolvedPageHeaderZoneStyle, ClxResolvedPaginationStyle, ClxResolvedTableStyle, ClxResolvedTabsStyle, ClxResolvedTimelineTitleZoneStyle, ClxResolvedWizardStyle, ClxReview, ClxRippleItem, ClxSelectOption, ClxSelectSize, ClxShade, ClxShape, ClxSize, ClxSkeletonVariant, ClxSliderSize, ClxSocialPlatform, ClxSpecOption, ClxSpecType, ClxSpinnerColor, ClxSpinnerVariant, ClxStatMetric, ClxStepperOrientation, ClxStepperSize, ClxStepperStatus, ClxStepperStep, ClxTabItem, ClxTableColumn, ClxTablePageEvent, ClxTableSelectionEvent, ClxTableShadow, ClxTableSort, ClxTableSortEvent, ClxTableTheme, ClxTabsTheme, ClxTagShape, ClxTagSize, ClxTagVariant, ClxTextareaResize, ClxTextareaSize, ClxTextareaStatus, ClxThemeConfig, ClxThemeMode, ClxTimelineLineStyle, ClxTimelineMode, ClxTimelineSize, ClxTimelineTitleZoneStyle, ClxTimepickerSize, ClxTimepickerStatus, ClxToastAction, ClxToastEntry, ClxToastOptions, ClxToastPosition, ClxToastType, ClxTooltipPosition, ClxTooltipSize, ClxTreeExpandEvent, ClxTreeNode, ClxTreeSelectEvent, ClxTreeSize, ClxTreeVariant, ClxTrendDirection, ClxUploadError, ClxUploadItemAction, ClxUploadItemActionResolver, ClxUploadPreviewItem, ClxUploadSize, ClxVariation, ClxWidgetCardState, ClxWidgetMenuAction, ClxWishlistItem, ClxWishlistPageChangeEvent, ClxWizardColor, ClxWizardOrientation, ClxWizardStepStatus, ClxWizardTheme, NativeOverlayRef, SparkPoint };