@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.
- package/README.md +23 -0
- package/dist/components/blocks/ImageGallery.d.ts +30 -0
- package/dist/components/blocks/ImageGallery.d.ts.map +1 -0
- package/dist/components/blocks/OptionSelector.d.ts +45 -0
- package/dist/components/blocks/OptionSelector.d.ts.map +1 -0
- package/dist/components/blocks/index.d.ts +4 -0
- package/dist/components/blocks/index.d.ts.map +1 -1
- package/dist/index.esm.js +1192 -265
- package/dist/index.js +1194 -263
- package/dist/palettes/manifest.json +19 -19
- package/dist/schemas/ImageGallerySchema.d.ts +27 -0
- package/dist/schemas/ImageGallerySchema.d.ts.map +1 -0
- package/dist/schemas/OptionSelectorSchema.d.ts +34 -0
- package/dist/schemas/OptionSelectorSchema.d.ts.map +1 -0
- package/dist/schemas/index.d.ts +2 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/blocks/Article.tsx +1 -1
- package/src/components/blocks/ImageGallery.tsx +464 -0
- package/src/components/blocks/OptionSelector.tsx +459 -0
- package/src/components/blocks/index.ts +4 -0
- package/src/schemas/ImageGallerySchema.ts +148 -0
- package/src/schemas/OptionSelectorSchema.ts +216 -0
- package/src/schemas/index.ts +2 -0
- package/src/stories/ImageGallery.stories.tsx +497 -0
- package/src/stories/OptionSelector.stories.tsx +506 -0
- /package/dist/palettes/{palette-autumn.1.5.12.css → palette-autumn.1.5.13.css} +0 -0
- /package/dist/palettes/{palette-autumn.1.5.12.min.css → palette-autumn.1.5.13.min.css} +0 -0
- /package/dist/palettes/{palette-cosmic.1.5.12.css → palette-cosmic.1.5.13.css} +0 -0
- /package/dist/palettes/{palette-cosmic.1.5.12.min.css → palette-cosmic.1.5.13.min.css} +0 -0
- /package/dist/palettes/{palette-default.1.5.12.css → palette-default.1.5.13.css} +0 -0
- /package/dist/palettes/{palette-default.1.5.12.min.css → palette-default.1.5.13.min.css} +0 -0
- /package/dist/palettes/{palette-ocean.1.5.12.css → palette-ocean.1.5.13.css} +0 -0
- /package/dist/palettes/{palette-ocean.1.5.12.min.css → palette-ocean.1.5.13.min.css} +0 -0
- /package/dist/palettes/{palette-spring.1.5.12.css → palette-spring.1.5.13.css} +0 -0
- /package/dist/palettes/{palette-spring.1.5.12.min.css → palette-spring.1.5.13.min.css} +0 -0
- /package/dist/palettes/{palette-winter.1.5.12.css → palette-winter.1.5.13.css} +0 -0
- /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"}
|