codexly-ui 0.10.24 → 0.10.26

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.24",
3
+ "version": "0.10.26",
4
4
  "description": "Standalone, signal-based Angular UI component library for Codexly, styled with Tailwind CSS.",
5
5
  "keywords": [
6
6
  "angular",
@@ -2841,6 +2841,11 @@ interface ClxProduct {
2841
2841
  tags: string[];
2842
2842
  main_image?: string;
2843
2843
  in_stock: boolean;
2844
+ /** Cuántas variantes/combinaciones distintas representa esta card (ej. un catálogo agrupado por
2845
+ * Color donde la card "Azul" cubre varias Tallas). > 1 hace que el botón de acción muestre "Ver
2846
+ * opciones" en vez de agregar directo al carrito, ya que la card no identifica una combinación
2847
+ * comprable única. undefined/1 se comporta igual que hoy. */
2848
+ option_count?: number;
2844
2849
  }
2845
2850
 
2846
2851
  type ClxProductTag = 'new' | 'sale' | 'out-of-stock' | 'featured' | 'limited' | 'hot';
@@ -2859,6 +2864,10 @@ declare class ClxProductComponent {
2859
2864
  readonly imageFit: _angular_core.InputSignal<"contain" | "cover">;
2860
2865
  readonly addToCart: _angular_core.OutputEmitterRef<ClxProduct>;
2861
2866
  readonly addToWishlist: _angular_core.OutputEmitterRef<ClxProduct>;
2867
+ /** Emitted instead of addToCart when option_count > 1 — the card can't identify a single
2868
+ * purchasable combination, so the host should route to the product page instead of adding
2869
+ * directly (see ClxProduct.option_count). */
2870
+ readonly viewOptions: _angular_core.OutputEmitterRef<ClxProduct>;
2862
2871
  protected readonly PRODUCT_TAG_LABEL: Record<ClxProductTag, string>;
2863
2872
  protected readonly PRODUCT_TAG_COLOR: Record<ClxProductTag, codexly_ui.ClxColor>;
2864
2873
  protected readonly PRODUCT_TAG_VARIANT: Record<ClxProductTag, codexly_ui.ClxBadgeVariant>;
@@ -2866,6 +2875,7 @@ declare class ClxProductComponent {
2866
2875
  protected readonly _sm: _angular_core.Signal<boolean>;
2867
2876
  protected readonly _tags: _angular_core.Signal<ClxProductTag[]>;
2868
2877
  protected readonly _disabled: _angular_core.Signal<boolean>;
2878
+ protected readonly _hasMultipleOptions: _angular_core.Signal<boolean>;
2869
2879
  protected readonly _price: _angular_core.Signal<number>;
2870
2880
  protected readonly _buttonSize: _angular_core.Signal<"sm" | "md">;
2871
2881
  protected readonly _skeletonW: _angular_core.Signal<"sm:w-32" | "sm:w-44">;
@@ -2880,7 +2890,7 @@ declare class ClxProductComponent {
2880
2890
  protected readonly _descClass: _angular_core.Signal<string>;
2881
2891
  protected readonly _priceClass: _angular_core.Signal<string>;
2882
2892
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxProductComponent, never>;
2883
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxProductComponent, "clx-product", never, { "product": { "alias": "product"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "priority": { "alias": "priority"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clxColor": { "alias": "clxColor"; "required": false; "isSignal": true; }; "imageFit": { "alias": "imageFit"; "required": false; "isSignal": true; }; }, { "addToCart": "addToCart"; "addToWishlist": "addToWishlist"; }, never, never, true, never>;
2893
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxProductComponent, "clx-product", never, { "product": { "alias": "product"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "priority": { "alias": "priority"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clxColor": { "alias": "clxColor"; "required": false; "isSignal": true; }; "imageFit": { "alias": "imageFit"; "required": false; "isSignal": true; }; }, { "addToCart": "addToCart"; "addToWishlist": "addToWishlist"; "viewOptions": "viewOptions"; }, never, never, true, never>;
2884
2894
  }
2885
2895
 
2886
2896
  /** st_spec_options */
@@ -2969,6 +2979,10 @@ interface ClxProductDetailData {
2969
2979
 
2970
2980
  declare class ClxProductDetailComponent {
2971
2981
  readonly product: _angular_core.InputSignal<ClxProductDetailData | null>;
2982
+ /** Variation id to preselect instead of variations[0] — set this when the visitor arrived from a
2983
+ * catalog card that already represents a specific variation (e.g. a "Color" group), so the specs
2984
+ * land pre-selected instead of defaulting to whichever variation happens to be first. */
2985
+ readonly initialVariationId: _angular_core.InputSignal<string | null>;
2972
2986
  readonly clxColor: _angular_core.InputSignal<ClxColorInput>;
2973
2987
  readonly loading: _angular_core.InputSignal<boolean>;
2974
2988
  readonly currency: _angular_core.InputSignal<string>;
@@ -3002,7 +3016,7 @@ declare class ClxProductDetailComponent {
3002
3016
  specsLeft<T>(specs: T[]): T[];
3003
3017
  specsRight<T>(specs: T[]): T[];
3004
3018
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClxProductDetailComponent, never>;
3005
- 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>;
3019
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClxProductDetailComponent, "clx-product-detail", never, { "product": { "alias": "product"; "required": false; "isSignal": true; }; "initialVariationId": { "alias": "initialVariationId"; "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>;
3006
3020
  }
3007
3021
 
3008
3022
  /** Refleja st_variations + st_products (campos necesarios para la wishlist card) */