codexly-ui 0.10.12 → 0.10.14

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.10.12",
3
+ "version": "0.10.14",
4
4
  "description": "Standalone, signal-based Angular UI component library for Codexly, styled with Tailwind CSS.",
5
5
  "keywords": [
6
6
  "angular",
@@ -116,10 +116,14 @@ declare class ClxButtonComponent {
116
116
  private readonly _themeSvc;
117
117
  readonly variant: _angular_core.InputSignal<ClxButtonVariant>;
118
118
  readonly color: _angular_core.InputSignal<ClxColorInput | undefined>;
119
- readonly size: _angular_core.InputSignal<"sm" | "md" | "xxs" | "xs" | "lg" | undefined>;
119
+ /** Overrides only the text color, independent of `color`/`variant` e.g. a solid button on an
120
+ * unusual background shade (bright yellow) where the variant's own resolved text color (white)
121
+ * reads poorly and a themed text tone is needed instead. */
122
+ readonly textColor: _angular_core.InputSignal<ClxColorInput | undefined>;
123
+ readonly size: _angular_core.InputSignal<"xxs" | "xs" | "sm" | "md" | "lg" | undefined>;
120
124
  readonly shape: _angular_core.InputSignal<ClxShape | undefined>;
121
125
  protected readonly _color: _angular_core.Signal<ClxColorInput>;
122
- protected readonly _size: _angular_core.Signal<"sm" | "md" | "xxs" | "xs" | "lg">;
126
+ protected readonly _size: _angular_core.Signal<"xxs" | "xs" | "sm" | "md" | "lg">;
123
127
  protected readonly _shape: _angular_core.Signal<ClxShape>;
124
128
  readonly loading: _angular_core.InputSignal<boolean>;
125
129
  readonly disabled: _angular_core.InputSignal<boolean>;
@@ -148,7 +152,7 @@ declare class ClxButtonComponent {
148
152
  protected readonly _hostClass: _angular_core.Signal<string>;
149
153
  protected _onRipple(event: Event): void;
150
154
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxButtonComponent, never>;
151
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxButtonComponent, "button[clx-button], a[clx-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeColor": { "alias": "badgeColor"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
155
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxButtonComponent, "button[clx-button], a[clx-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "textColor": { "alias": "textColor"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeColor": { "alias": "badgeColor"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
152
156
  }
153
157
 
154
158
  type ClxButtonGroupShape = 'flat' | 'circular';
@@ -157,7 +161,7 @@ declare class ClxButtonGroupComponent {
157
161
  readonly label: _angular_core.InputSignal<string>;
158
162
  readonly shape: _angular_core.InputSignal<ClxButtonGroupShape>;
159
163
  readonly attached: _angular_core.InputSignal<boolean>;
160
- readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
164
+ readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
161
165
  protected readonly _groupClass: _angular_core.Signal<string>;
162
166
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxButtonGroupComponent, never>;
163
167
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxButtonGroupComponent, "clx-button-group", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "attached": { "alias": "attached"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
@@ -169,11 +173,11 @@ declare class ClxBadgeComponent {
169
173
  private readonly _themeSvc;
170
174
  readonly variant: _angular_core.InputSignal<ClxBadgeVariant>;
171
175
  readonly color: _angular_core.InputSignal<ClxColorInput | undefined>;
172
- readonly size: _angular_core.InputSignal<"sm" | "md" | "xs" | undefined>;
176
+ readonly size: _angular_core.InputSignal<"xs" | "sm" | "md" | undefined>;
173
177
  readonly shape: _angular_core.InputSignal<ClxShape | undefined>;
174
178
  readonly positioned: _angular_core.InputSignal<boolean>;
175
179
  protected readonly _color: _angular_core.Signal<ClxColorInput>;
176
- protected readonly _size: _angular_core.Signal<"sm" | "md" | "xs">;
180
+ protected readonly _size: _angular_core.Signal<"xs" | "sm" | "md">;
177
181
  protected readonly _shape: _angular_core.Signal<ClxShape>;
178
182
  protected readonly _hostClass: _angular_core.Signal<string>;
179
183
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxBadgeComponent, never>;
@@ -979,7 +983,7 @@ declare class ClxRadioGroupComponent implements ControlValueAccessor {
979
983
  readonly resolvedColor: _angular_core.Signal<ClxColorInput>;
980
984
  readonly variant: _angular_core.InputSignal<ClxRadioVariant>;
981
985
  readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
982
- readonly direction: _angular_core.InputSignal<"vertical" | "horizontal">;
986
+ readonly direction: _angular_core.InputSignal<"horizontal" | "vertical">;
983
987
  readonly disabled: _angular_core.InputSignal<boolean>;
984
988
  /** Current selected value — readable by child clx-radio via injection */
985
989
  readonly _value: _angular_core.WritableSignal<unknown>;
@@ -1889,7 +1893,7 @@ declare class ClxMenuComponent implements AfterViewInit {
1889
1893
  readonly style: _angular_core.InputSignal<ClxNavZoneStyle | undefined>;
1890
1894
  protected readonly _resolved: _angular_core.Signal<{
1891
1895
  color: codexly_ui.ClxColorInput;
1892
- size: "sm" | "md" | "xs";
1896
+ size: "xs" | "sm" | "md";
1893
1897
  weight: codexly_ui.ClxFontWeight;
1894
1898
  }>;
1895
1899
  protected readonly _color: _angular_core.Signal<codexly_ui.ClxColorInput>;
@@ -2604,7 +2608,7 @@ declare class ClxFabComponent {
2604
2608
  protected readonly _position: _angular_core.Signal<ClxFabPosition>;
2605
2609
  protected readonly _triggerClass: _angular_core.Signal<string>;
2606
2610
  /** Los botones de la pila de accesos van un paso más pequeños que el trigger. */
2607
- protected readonly _itemSize: _angular_core.Signal<"sm" | "xxs" | "xs">;
2611
+ protected readonly _itemSize: _angular_core.Signal<"xxs" | "xs" | "sm">;
2608
2612
  private readonly _sso;
2609
2613
  readonly _scrollStrategy: _angular_cdk_overlay.RepositionScrollStrategy;
2610
2614
  readonly _positions: ConnectedPosition[];
@@ -2791,7 +2795,7 @@ declare class ClxStatCardComponent {
2791
2795
  readonly metric: _angular_core.InputSignal<ClxStatMetric>;
2792
2796
  readonly chartData: _angular_core.InputSignal<number[]>;
2793
2797
  readonly color: _angular_core.InputSignal<ClxColorInput>;
2794
- readonly layout: _angular_core.InputSignal<"vertical" | "horizontal" | "bar">;
2798
+ readonly layout: _angular_core.InputSignal<"horizontal" | "vertical" | "bar">;
2795
2799
  protected readonly _hostClass: _angular_core.Signal<string>;
2796
2800
  protected readonly _barHeights: _angular_core.Signal<number[]>;
2797
2801
  protected readonly _iconBg: _angular_core.Signal<string>;
@@ -2847,7 +2851,7 @@ declare class ClxProductComponent {
2847
2851
  * fill the frame (apparel on a model). 'contain' keeps the whole image visible with padding
2848
2852
  * around it — right for products photographed against negative space (helmets, boxed goods),
2849
2853
  * where 'cover' would crop into the product itself. */
2850
- readonly imageFit: _angular_core.InputSignal<"cover" | "contain">;
2854
+ readonly imageFit: _angular_core.InputSignal<"contain" | "cover">;
2851
2855
  readonly addToCart: _angular_core.OutputEmitterRef<ClxProduct>;
2852
2856
  readonly addToWishlist: _angular_core.OutputEmitterRef<ClxProduct>;
2853
2857
  protected readonly PRODUCT_TAG_LABEL: Record<ClxProductTag, string>;
@@ -2954,6 +2958,18 @@ declare class ClxProductDetailComponent {
2954
2958
  readonly clxColor: _angular_core.InputSignal<ClxColorInput>;
2955
2959
  readonly loading: _angular_core.InputSignal<boolean>;
2956
2960
  readonly currency: _angular_core.InputSignal<string>;
2961
+ /** Emits the active variation's id + selected quantity — the host decides what "add to cart"
2962
+ * and "buy now" actually do (cart service, checkout redirect, etc.), this component only
2963
+ * knows about the product/variation model, not commerce flows. */
2964
+ readonly addToCart: _angular_core.OutputEmitterRef<{
2965
+ variationId: string;
2966
+ quantity: number;
2967
+ }>;
2968
+ readonly buyNow: _angular_core.OutputEmitterRef<{
2969
+ variationId: string;
2970
+ quantity: number;
2971
+ }>;
2972
+ readonly wishlist: _angular_core.OutputEmitterRef<void>;
2957
2973
  readonly _carousel: _angular_core.Signal<ClxCarouselComponent | undefined>;
2958
2974
  readonly quantity: _angular_core.WritableSignal<number>;
2959
2975
  readonly activeTab: _angular_core.WritableSignal<string>;
@@ -2967,11 +2983,13 @@ declare class ClxProductDetailComponent {
2967
2983
  selectSpec(specTypeId: string, specOptionId: string): void;
2968
2984
  isSpecSelected(specTypeId: string, specOptionId: string): boolean;
2969
2985
  selectedOptionLabel(specType: ClxSpecType): string;
2986
+ protected _emitAddToCart(): void;
2987
+ protected _emitBuyNow(): void;
2970
2988
  asColor(value: string): ClxColorInput;
2971
2989
  specsLeft<T>(specs: T[]): T[];
2972
2990
  specsRight<T>(specs: T[]): T[];
2973
2991
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxProductDetailComponent, never>;
2974
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxProductDetailComponent, "clx-product-detail", never, { "product": { "alias": "product"; "required": false; "isSignal": true; }; "clxColor": { "alias": "clxColor"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "currency": { "alias": "currency"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2992
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxProductDetailComponent, "clx-product-detail", never, { "product": { "alias": "product"; "required": false; "isSignal": true; }; "clxColor": { "alias": "clxColor"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "currency": { "alias": "currency"; "required": false; "isSignal": true; }; }, { "addToCart": "addToCart"; "buyNow": "buyNow"; "wishlist": "wishlist"; }, never, never, true, never>;
2975
2993
  }
2976
2994
 
2977
2995
  /** Refleja st_variations + st_products (campos necesarios para la wishlist card) */
@@ -3120,6 +3138,8 @@ declare class ClxSearchComponent implements ControlValueAccessor {
3120
3138
  private readonly _themeSvc;
3121
3139
  readonly color: _angular_core.InputSignal<ClxColorInput | undefined>;
3122
3140
  protected readonly _color: _angular_core.Signal<ClxColorInput>;
3141
+ /** Overrides only the search button's text color — see ClxButtonComponent's textColor input. */
3142
+ readonly buttonTextColor: _angular_core.InputSignal<ClxColorInput | undefined>;
3123
3143
  readonly size: _angular_core.InputSignal<ClxInputSize | undefined>;
3124
3144
  protected readonly _size: _angular_core.Signal<ClxInputSize>;
3125
3145
  readonly placeholder: _angular_core.InputSignal<string>;
@@ -3150,7 +3170,7 @@ declare class ClxSearchComponent implements ControlValueAccessor {
3150
3170
  padDefaultL: string;
3151
3171
  padDefaultR: string;
3152
3172
  }>;
3153
- protected readonly _buttonSize: _angular_core.Signal<"sm" | "md" | "xs" | "lg">;
3173
+ protected readonly _buttonSize: _angular_core.Signal<"xs" | "sm" | "md" | "lg">;
3154
3174
  protected readonly _wrapperClass: _angular_core.Signal<string>;
3155
3175
  protected readonly _inputClass: _angular_core.Signal<string>;
3156
3176
  writeValue(val: string): void;
@@ -3161,7 +3181,7 @@ declare class ClxSearchComponent implements ControlValueAccessor {
3161
3181
  protected _handleBlur(): void;
3162
3182
  protected _handleSubmit(): void;
3163
3183
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxSearchComponent, never>;
3164
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxSearchComponent, "clx-search", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "search": "search"; }, never, never, true, never>;
3184
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxSearchComponent, "clx-search", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "buttonTextColor": { "alias": "buttonTextColor"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "search": "search"; }, never, never, true, never>;
3165
3185
  }
3166
3186
 
3167
3187
  declare const CLX_TEXT_LABEL = "text-clx-text-label";