@qwickapps/react-framework 1.5.12 → 1.5.13

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.
Files changed (38) hide show
  1. package/README.md +23 -0
  2. package/dist/components/blocks/ImageGallery.d.ts +30 -0
  3. package/dist/components/blocks/ImageGallery.d.ts.map +1 -0
  4. package/dist/components/blocks/OptionSelector.d.ts +45 -0
  5. package/dist/components/blocks/OptionSelector.d.ts.map +1 -0
  6. package/dist/components/blocks/index.d.ts +4 -0
  7. package/dist/components/blocks/index.d.ts.map +1 -1
  8. package/dist/index.esm.js +1192 -265
  9. package/dist/index.js +1194 -263
  10. package/dist/palettes/manifest.json +19 -19
  11. package/dist/schemas/ImageGallerySchema.d.ts +27 -0
  12. package/dist/schemas/ImageGallerySchema.d.ts.map +1 -0
  13. package/dist/schemas/OptionSelectorSchema.d.ts +34 -0
  14. package/dist/schemas/OptionSelectorSchema.d.ts.map +1 -0
  15. package/dist/schemas/index.d.ts +2 -0
  16. package/dist/schemas/index.d.ts.map +1 -1
  17. package/package.json +1 -1
  18. package/src/components/blocks/Article.tsx +1 -1
  19. package/src/components/blocks/ImageGallery.tsx +464 -0
  20. package/src/components/blocks/OptionSelector.tsx +459 -0
  21. package/src/components/blocks/index.ts +4 -0
  22. package/src/schemas/ImageGallerySchema.ts +148 -0
  23. package/src/schemas/OptionSelectorSchema.ts +216 -0
  24. package/src/schemas/index.ts +2 -0
  25. package/src/stories/ImageGallery.stories.tsx +497 -0
  26. package/src/stories/OptionSelector.stories.tsx +506 -0
  27. /package/dist/palettes/{palette-autumn.1.5.12.css → palette-autumn.1.5.13.css} +0 -0
  28. /package/dist/palettes/{palette-autumn.1.5.12.min.css → palette-autumn.1.5.13.min.css} +0 -0
  29. /package/dist/palettes/{palette-cosmic.1.5.12.css → palette-cosmic.1.5.13.css} +0 -0
  30. /package/dist/palettes/{palette-cosmic.1.5.12.min.css → palette-cosmic.1.5.13.min.css} +0 -0
  31. /package/dist/palettes/{palette-default.1.5.12.css → palette-default.1.5.13.css} +0 -0
  32. /package/dist/palettes/{palette-default.1.5.12.min.css → palette-default.1.5.13.min.css} +0 -0
  33. /package/dist/palettes/{palette-ocean.1.5.12.css → palette-ocean.1.5.13.css} +0 -0
  34. /package/dist/palettes/{palette-ocean.1.5.12.min.css → palette-ocean.1.5.13.min.css} +0 -0
  35. /package/dist/palettes/{palette-spring.1.5.12.css → palette-spring.1.5.13.css} +0 -0
  36. /package/dist/palettes/{palette-spring.1.5.12.min.css → palette-spring.1.5.13.min.css} +0 -0
  37. /package/dist/palettes/{palette-winter.1.5.12.css → palette-winter.1.5.13.css} +0 -0
  38. /package/dist/palettes/{palette-winter.1.5.12.min.css → palette-winter.1.5.13.min.css} +0 -0
package/README.md CHANGED
@@ -4,6 +4,29 @@ A complete React framework for building modern, responsive applications with int
4
4
 
5
5
  ## What's New
6
6
 
7
+ ### January 25, 2026 - E-Commerce Components (v1.5.13)
8
+
9
+ #### New Components
10
+
11
+ - **ImageGallery Component**: Professional image gallery with multiple display variants
12
+ - Three display modes: thumbnails (left/bottom/right), carousel, and grid
13
+ - Built-in zoom modal for full-screen viewing
14
+ - Customizable aspect ratios (1:1, 4:3, 16:9, custom)
15
+ - Responsive design with mobile-first approach
16
+ - Full theme compliance using CSS custom properties
17
+
18
+ - **OptionSelector Component**: Universal option selector for e-commerce and forms
19
+ - Text mode: Button grid for sizes, quantities (S, M, L, XL, etc.)
20
+ - Color mode: Circular swatches with hex color backgrounds
21
+ - Image mode: Rounded rectangle pattern/texture swatches
22
+ - Features: availability states, disabled options, tooltips, price adjustments
23
+ - Dropdown fallback for accessibility
24
+ - Consolidates previous SizeSelector and ColorSelector into unified component
25
+
26
+ #### Bug Fixes
27
+
28
+ - **Article Component**: Fixed TypeScript type error in Article component
29
+
7
30
  ### December 6, 2025 - Repository URLs Update (v1.5.5)
8
31
 
9
32
  - Updated repository and homepage URLs to point to public GitHub org
@@ -0,0 +1,30 @@
1
+ import { SerializableComponent } from '../shared/createSerializableView';
2
+ import { ViewProps } from '../shared/viewProps';
3
+ export interface GalleryImage {
4
+ url: string;
5
+ alt: string;
6
+ thumbnail?: string;
7
+ }
8
+ export interface ImageGalleryProps extends ViewProps {
9
+ /** Array of product images */
10
+ images: GalleryImage[];
11
+ /** Product name for accessibility */
12
+ productName: string;
13
+ /** Gallery display variant */
14
+ variant?: 'thumbnails' | 'carousel' | 'grid';
15
+ /** Position of thumbnails (only for thumbnails variant) */
16
+ thumbnailPosition?: 'left' | 'bottom' | 'right';
17
+ /** Aspect ratio for main image */
18
+ aspectRatio?: string;
19
+ /** Enable zoom functionality */
20
+ showZoom?: boolean;
21
+ /** Maximum number of images to display */
22
+ maxImages?: number;
23
+ /** Data source for dynamic loading */
24
+ dataSource?: string;
25
+ /** Data binding configuration */
26
+ bindingOptions?: Record<string, unknown>;
27
+ }
28
+ export declare const ImageGallery: SerializableComponent<ImageGalleryProps>;
29
+ export default ImageGallery;
30
+ //# sourceMappingURL=ImageGallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageGallery.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/ImageGallery.tsx"],"names":[],"mappings":"AAoCA,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,8BAA8B;IAC9B,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;IAE7C,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEhD,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AA+XD,eAAO,MAAM,YAAY,EAAE,qBAAqB,CAAC,iBAAiB,CAM9D,CAAC;AAEL,eAAe,YAAY,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { SerializableComponent } from '../shared/createSerializableView';
2
+ import { ViewProps } from '../shared/viewProps';
3
+ export interface SelectOption {
4
+ /** Unique identifier */
5
+ id: string;
6
+ /** Display label */
7
+ label: string;
8
+ /** Whether this option is available for selection */
9
+ available: boolean;
10
+ /** Optional price adjustment */
11
+ price?: number;
12
+ /** Hex color value (for color display mode) */
13
+ hexValue?: string;
14
+ /** Image URL (for image or color display mode) */
15
+ imageUrl?: string;
16
+ }
17
+ export interface OptionSelectorProps extends ViewProps {
18
+ /** Array of available options */
19
+ options: SelectOption[];
20
+ /** Currently selected option ID */
21
+ selectedOption?: string;
22
+ /** Callback when option is selected */
23
+ onOptionSelect?: (optionId: string) => void;
24
+ /** Display mode */
25
+ displayMode?: 'text' | 'color' | 'image';
26
+ /** Display variant */
27
+ variant?: 'buttons' | 'dropdown' | 'grid';
28
+ /** Layout direction (for buttons variant) */
29
+ layout?: 'horizontal' | 'vertical' | 'wrap';
30
+ /** Visual size (for color/image modes) */
31
+ visualSize?: 'small' | 'medium' | 'large';
32
+ /** Show label below visual (for color/image modes) */
33
+ showLabel?: boolean;
34
+ /** Disable all selections */
35
+ disabled?: boolean;
36
+ /** Label for the selector */
37
+ label?: string;
38
+ /** Data source for dynamic loading */
39
+ dataSource?: string;
40
+ /** Data binding configuration */
41
+ bindingOptions?: Record<string, unknown>;
42
+ }
43
+ export declare const OptionSelector: SerializableComponent<OptionSelectorProps>;
44
+ export default OptionSelector;
45
+ //# sourceMappingURL=OptionSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionSelector.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/OptionSelector.tsx"],"names":[],"mappings":"AAkDA,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;IAEnB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,iCAAiC;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uCAAuC;IACvC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5C,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAEzC,sBAAsB;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IAE1C,6CAA6C;IAC7C,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;IAE5C,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAE1C,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAqVD,eAAO,MAAM,cAAc,EAAE,qBAAqB,CAAC,mBAAmB,CAMlE,CAAC;AAEL,eAAe,cAAc,CAAC"}
@@ -22,6 +22,8 @@ export { default as Section } from './Section';
22
22
  export { default as Image } from './Image';
23
23
  export { default as Text } from './Text';
24
24
  export { default as ProductCard } from './ProductCard';
25
+ export { default as ImageGallery } from './ImageGallery';
26
+ export { default as OptionSelector } from './OptionSelector';
25
27
  export { default as FeatureCard } from './FeatureCard';
26
28
  export { default as CardListGrid } from './CardListGrid';
27
29
  export type { HeroBlockProps } from './HeroBlock';
@@ -36,6 +38,8 @@ export type { SectionProps } from './Section';
36
38
  export type { ImageProps } from './Image';
37
39
  export type { TextProps } from './Text';
38
40
  export type { ProductCardProps, Product, ProductCardAction } from './ProductCard';
41
+ export type { ImageGalleryProps, GalleryImage } from './ImageGallery';
42
+ export type { OptionSelectorProps, SelectOption } from './OptionSelector';
39
43
  export type { FeatureCardProps, FeatureItem, FeatureCardAction } from './FeatureCard';
40
44
  export type { CardListGridProps } from './CardListGrid';
41
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AACtF,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AACtF,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}