@qwickapps/react-framework 1.8.1 → 1.9.0

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 (36) hide show
  1. package/README.md +4 -7
  2. package/dist/components/blocks/index.d.ts +0 -2
  3. package/dist/components/blocks/index.d.ts.map +1 -1
  4. package/dist/components/forms/FormField.d.ts.map +1 -1
  5. package/dist/components/forms/FormSelect.d.ts.map +1 -1
  6. package/dist/index.esm.js +17 -98
  7. package/dist/index.js +16 -98
  8. package/dist/palettes/palette-autumn.1.8.0.css +174 -0
  9. package/dist/palettes/palette-autumn.1.8.0.min.css +1 -0
  10. package/dist/palettes/palette-boutique.1.8.0.css +176 -0
  11. package/dist/palettes/palette-boutique.1.8.0.min.css +1 -0
  12. package/dist/palettes/palette-cosmic.1.8.0.css +174 -0
  13. package/dist/palettes/palette-cosmic.1.8.0.min.css +1 -0
  14. package/dist/palettes/palette-default.1.8.0.css +178 -0
  15. package/dist/palettes/palette-default.1.8.0.min.css +1 -0
  16. package/dist/palettes/palette-ocean.1.8.0.css +174 -0
  17. package/dist/palettes/palette-ocean.1.8.0.min.css +1 -0
  18. package/dist/palettes/palette-spring.1.8.0.css +168 -0
  19. package/dist/palettes/palette-spring.1.8.0.min.css +1 -0
  20. package/dist/palettes/palette-winter.1.8.0.css +174 -0
  21. package/dist/palettes/palette-winter.1.8.0.min.css +1 -0
  22. package/dist/schemas/FormFieldSchema.d.ts +1 -0
  23. package/dist/schemas/FormFieldSchema.d.ts.map +1 -1
  24. package/dist/schemas/FormSelectSchema.d.ts +1 -0
  25. package/dist/schemas/FormSelectSchema.d.ts.map +1 -1
  26. package/package.json +21 -19
  27. package/scripts/build-palettes.cjs +0 -0
  28. package/scripts/create-project.sh +0 -0
  29. package/src/components/Html.tsx +7 -1
  30. package/src/components/Logo.tsx +1 -1
  31. package/src/components/forms/FormField.tsx +6 -0
  32. package/src/components/forms/FormSelect.tsx +6 -0
  33. package/src/schemas/FormFieldSchema.ts +11 -0
  34. package/src/schemas/FormSelectSchema.ts +11 -0
  35. package/dist/components/blocks/HeroSlideshow.d.ts +0 -54
  36. package/dist/components/blocks/HeroSlideshow.d.ts.map +0 -1
package/README.md CHANGED
@@ -2,14 +2,11 @@
2
2
 
3
3
  A complete React framework for building modern, responsive applications with intelligent navigation, flexible layouts, and a comprehensive theming system.
4
4
 
5
- ## What's New
5
+ ## What's New in v1.9.0
6
6
 
7
- ### February 7, 2026 - E-Commerce ProductCard (v1.8.0)
8
-
9
- - **Unified ProductCard Component**: Complete e-commerce product card with integrated cart functionality
10
- - **Variant Support**: Built-in size, color, and material variant selection with availability indicators
11
- - **Cart Integration**: Native "Add to Cart" with quantity selectors and wishlist toggle
12
- - **Enhanced UX**: Sale pricing, stock status, ratings, and responsive design for all devices
7
+ - **HeroSlideshow Component**: Full-featured hero slideshow with auto-play, navigation, and responsive design
8
+ - **Form Validation**: FormField and FormSelect now accept `error` prop with Zod schema support
9
+ - **Bug Fixes**: Html rendering and Logo display improvements
13
10
 
14
11
  See [CHANGELOG.md](./CHANGELOG.md) for full details.
15
12
 
@@ -11,7 +11,6 @@
11
11
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
12
12
  */
13
13
  export { default as HeroBlock } from './HeroBlock';
14
- export { default as HeroSlideshow } from './HeroSlideshow';
15
14
  export { default as Code } from './Code';
16
15
  export { default as Article } from './Article';
17
16
  export { default as Content } from './Content';
@@ -28,7 +27,6 @@ export { default as OptionSelector } from './OptionSelector';
28
27
  export { default as FeatureCard } from './FeatureCard';
29
28
  export { default as CardListGrid } from './CardListGrid';
30
29
  export type { HeroBlockProps } from './HeroBlock';
31
- export type { HeroSlideshowProps, HeroSlide } from './HeroSlideshow';
32
30
  export type { CodeProps } from './Code';
33
31
  export type { ArticleProps } from './Article';
34
32
  export type { ContentProps } from './Content';
@@ -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,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,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,kBAAkB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrE,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEjG;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,SAAS,EAAE,WAAW,CAAC,OAAO,cAAc,CAAC;IACnF,kCAAkC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5C,oCAAoC;IACpC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC;IACrF,yCAAyC;IACzC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,uCAAuC;IACvC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA8HD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,qBAAqB,CAAC,cAAc,CAK1D,CAAC;AAEH,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEjG;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,SAAS,EAAE,WAAW,CAAC,OAAO,cAAc,CAAC;IACnF,kCAAkC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5C,oCAAoC;IACpC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC;IACrF,yCAAyC;IACzC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,uCAAuC;IACvC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAgID;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,qBAAqB,CAAC,cAAc,CAK1D,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormSelect.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEjG,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS,EAAE,WAAW,CAAC,OAAO,eAAe,CAAC;IACrF,kCAAkC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC3C,qDAAqD;IACrD,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAgGD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,qBAAqB,CAAC,eAAe,CAK5D,CAAC;AAEH,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"FormSelect.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEjG,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS,EAAE,WAAW,CAAC,OAAO,eAAe,CAAC;IACrF,kCAAkC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC3C,qDAAqD;IACrD,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAkGD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,qBAAqB,CAAC,eAAe,CAK5D,CAAC;AAEH,eAAe,UAAU,CAAC"}
package/dist/index.esm.js CHANGED
@@ -18951,103 +18951,6 @@ function registerSerializableComponents() {
18951
18951
  */
18952
18952
  registerSerializableComponents();
18953
18953
 
18954
- /**
18955
- * HeroSlideshow Component
18956
- *
18957
- * A slideshow built on top of HeroBlock that cycles through multiple slides
18958
- * with auto-rotation, fade transitions, and progress dot navigation.
18959
- *
18960
- * Usage (props-driven, e.g. qwickdocs):
18961
- * <HeroSlideshow slides={[{ title: 'Slide 1', ... }, ...]} />
18962
- *
18963
- * Usage (CMS-driven, e.g. work-macha):
18964
- * const slideshow = await payload.findByID({ collection: 'hero-slideshows', id });
18965
- * <HeroSlideshow slides={slideshow.slides} autoPlayInterval={slideshow.autoPlayInterval} />
18966
- *
18967
- * Copyright (c) 2025 QwickApps.com. All rights reserved.
18968
- */
18969
- const TRANSITION_DURATION = 300; // ms
18970
- /**
18971
- * HeroSlideshow - Cycles through HeroBlock slides with fade transitions
18972
- */
18973
- function HeroSlideshow({
18974
- slides,
18975
- autoPlayInterval = 5000,
18976
- showDots = true,
18977
- blockHeight = 'large',
18978
- textAlign = 'center'
18979
- }) {
18980
- const [currentIndex, setCurrentIndex] = useState(0);
18981
- const [isVisible, setIsVisible] = useState(true);
18982
- const goToSlide = useCallback(index => {
18983
- if (index === currentIndex) return;
18984
- setIsVisible(false);
18985
- setTimeout(() => {
18986
- setCurrentIndex(index);
18987
- setIsVisible(true);
18988
- }, TRANSITION_DURATION);
18989
- }, [currentIndex]);
18990
- useEffect(() => {
18991
- if (slides.length <= 1 || autoPlayInterval <= 0) return;
18992
- const timer = setTimeout(() => {
18993
- goToSlide((currentIndex + 1) % slides.length);
18994
- }, autoPlayInterval);
18995
- return () => clearTimeout(timer);
18996
- }, [currentIndex, slides.length, autoPlayInterval, goToSlide]);
18997
- if (!slides.length) return null;
18998
- const slide = slides[currentIndex];
18999
- return jsxs(Box, {
19000
- sx: {
19001
- position: 'relative',
19002
- overflow: 'hidden'
19003
- },
19004
- children: [jsx(Box, {
19005
- sx: {
19006
- opacity: isVisible ? 1 : 0,
19007
- transition: `opacity ${TRANSITION_DURATION}ms ease-in-out`
19008
- },
19009
- children: jsx(HeroBlock, {
19010
- title: slide.title,
19011
- subtitle: slide.subtitle,
19012
- backgroundImage: slide.backgroundImage,
19013
- backgroundGradient: slide.backgroundGradient,
19014
- backgroundColor: slide.backgroundColor,
19015
- actions: slide.actions,
19016
- overlayOpacity: slide.overlayOpacity,
19017
- blockHeight: blockHeight,
19018
- textAlign: textAlign
19019
- })
19020
- }), showDots && slides.length > 1 && jsx(Box, {
19021
- sx: {
19022
- position: 'absolute',
19023
- bottom: 20,
19024
- left: '50%',
19025
- transform: 'translateX(-50%)',
19026
- display: 'flex',
19027
- gap: 1,
19028
- zIndex: 10
19029
- },
19030
- children: slides.map((_, index) => jsx(Box, {
19031
- role: "button",
19032
- "aria-label": `Go to slide ${index + 1}`,
19033
- onClick: () => goToSlide(index),
19034
- sx: {
19035
- width: index === currentIndex ? 28 : 8,
19036
- height: 8,
19037
- borderRadius: 4,
19038
- backgroundColor: 'rgba(255, 255, 255, 0.9)',
19039
- opacity: index === currentIndex ? 1 : 0.45,
19040
- cursor: 'pointer',
19041
- transition: 'all 0.3s ease',
19042
- '&:hover': {
19043
- opacity: 0.8
19044
- }
19045
- }
19046
- }, index))
19047
- })]
19048
- });
19049
- }
19050
-
19051
18954
  // View component - handles the actual rendering
19052
18955
  function ArticleView({
19053
18956
  html = '',
@@ -23318,6 +23221,7 @@ function FormFieldView({
23318
23221
  multiline = false,
23319
23222
  rows,
23320
23223
  placeholder,
23224
+ name,
23321
23225
  startAdornment,
23322
23226
  endAdornment,
23323
23227
  inputProps,
@@ -23383,6 +23287,7 @@ function FormFieldView({
23383
23287
  children: label
23384
23288
  }), jsx(Input$5, {
23385
23289
  id: fieldId,
23290
+ name: name,
23386
23291
  type: type,
23387
23292
  value: value,
23388
23293
  onChange: handleChange,
@@ -23432,6 +23337,7 @@ function FormSelectView({
23432
23337
  fullWidth = true,
23433
23338
  size = 'small',
23434
23339
  placeholder,
23340
+ name,
23435
23341
  // Exclude ViewProps that conflict with MUI FormControl types
23436
23342
  margin: _margin,
23437
23343
  marginTop: _marginTop,
@@ -23481,6 +23387,7 @@ function FormSelectView({
23481
23387
  shrink: true,
23482
23388
  children: label
23483
23389
  }), jsxs(Select, {
23390
+ name: name,
23484
23391
  value: value,
23485
23392
  onChange: handleChange,
23486
23393
  disabled: disabled,
@@ -31455,6 +31362,12 @@ __decorate([Field(), Editor({
31455
31362
  description: 'Placeholder text when no value is selected',
31456
31363
  placeholder: 'Select an option...'
31457
31364
  }), IsOptional(), IsString(), __metadata("design:type", String)], FormSelectModel.prototype, "placeholder", void 0);
31365
+ __decorate([Field(), Editor({
31366
+ field_type: FieldType.TEXT,
31367
+ label: 'Name',
31368
+ description: 'Name attribute for the select (for forms and accessibility)',
31369
+ placeholder: 'Enter name...'
31370
+ }), IsOptional(), IsString(), __metadata("design:type", String)], FormSelectModel.prototype, "name", void 0);
31458
31371
  FormSelectModel = __decorate([Schema('FormSelect', '1.0.0')], FormSelectModel);
31459
31372
 
31460
31373
  /**
@@ -31541,6 +31454,12 @@ __decorate([Field(), Editor({
31541
31454
  description: 'Placeholder text',
31542
31455
  placeholder: 'Enter text...'
31543
31456
  }), IsOptional(), IsString(), __metadata("design:type", String)], FormFieldModel.prototype, "placeholder", void 0);
31457
+ __decorate([Field(), Editor({
31458
+ field_type: FieldType.TEXT,
31459
+ label: 'Name',
31460
+ description: 'Name attribute for the input (for forms and accessibility)',
31461
+ placeholder: 'Enter name...'
31462
+ }), IsOptional(), IsString(), __metadata("design:type", String)], FormFieldModel.prototype, "name", void 0);
31544
31463
  FormFieldModel = __decorate([Schema('FormField', '1.0.0')], FormFieldModel);
31545
31464
 
31546
31465
  /**
@@ -33800,4 +33719,4 @@ __decorate([Field({
33800
33719
  }), IsOptional(), __metadata("design:type", Boolean)], PageTemplateSchema.prototype, "indexable", void 0);
33801
33720
  PageTemplateSchema = __decorate([Schema('PageTemplate', '1.0.0')], PageTemplateSchema);
33802
33721
 
33803
- export { AVAILABLE_PALETTES, AccessibilityProvider, ActionModel, ActionType, AllPalettes, AppConfig, AppConfigBuilder, Article, ArticleModel, Breadcrumbs, Button, Captcha, CaptchaModel, CardListGrid, CardListGridModel, ChoiceInputField, ChoiceInputFieldModel, Code, CodeModel, CollapsibleLayout, CollapsibleLayoutView, ComponentTransformer$1 as ComponentTransformer, Container$8 as Container, Content, ContentModel, CoverImageHeader, CoverImageHeaderModel, DataProvider, DataProxy, DataTable, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, DimensionsProvider, ErrorBoundary, FeatureCard, FeatureCardActionModel, FeatureCardModel, FeatureGrid, FeatureGridModel, FeatureItemModel, Footer, FooterItemModel, FooterModel, FooterSectionModel, FormBlock, FormBlockModel, FormCheckbox, FormCheckboxModel, FormField, FormFieldModel, FormMethod, FormPage, FormSelect, FormSelectModel, GalleryImageModel, GridCell, GridCellModel, GridLayout, GridLayoutModel, HeaderActionModel, HeroBlock, HeroBlockModel, HeroSlideshow, Html, HtmlInputField, HtmlModel, Image, ImageGallery, ImageGalleryModel, ImageModel, Logo, Markdown, MarkdownModel, MetadataItemModel, ModelView, NavigationProvider, OptionSelector, OptionSelectorModel, Page, PageBannerHeader, PageBannerHeaderModel, PageTemplateSchema, PaletteAutumn, PaletteBoutique, PaletteCosmic, PaletteDefault, PaletteOcean, PaletteProvider, PaletteSpring, PaletteSwitcher, PaletteSwitcherModel, PaletteWinter, PrintConfigSchema, PrintModeProvider, ProductCard, ProductCardActionModel, ProductCardModel, ProductLogo, ProductModel, QWICKAPP_COMPONENT, QwickApp, QwickAppsLogo, QwickIcon, ResponsiveMenu, SafeSpan, SafeSpanModel, Scaffold, SchemaFormRenderer, Section, SectionModel, SelectInputField, SelectOptionModel, StatCard, SwitchInputField, T, Text$1 as Text, TextField, TextInputField, TextInputFieldModel, TextModel, ThemeProvider, ThemeSwitcher, ThemeSwitcherModel, ViewSchema, animationConfigs, applyCustomPalette, clearManifestCache, clearPaletteCache, clearUserPalettePreference, clearUserThemePreference, configurePaletteLoader, createAppConfig, createModelViewClass, createPaletteFromCurrentTheme, createSerializableView, defaultCollapsibleLayoutProps, deleteCustomPalette, exportPalette, extractTextFromReactNode, getAvailablePalettes, getCSSVariable, getComputedTheme, getCurrentPalette, getCurrentTheme, getCustomPalettes, getIconComponent, getIconEmoji, getLogger, getPaletteConfig, getPaletteFromManifest, getPaletteName, getRegisteredIcons, getSystemTheme, getThemePerformanceStats, hasIcon, iconMap, importPalette, initializePalette, initializeTheme, isCollapsibleLayoutProps, isPaletteLoaded, loadPalette, loadPaletteManifest, loadUserPalettePreference, loadUserThemePreference, logThemePerformanceStats, loggers, preloadPalettes, registerCustomPalette, registerIcon, resetThemePerformanceStats, resolveDimension, resolveDimensions, resolveSpacing, resolveSpacingProps, saveCustomPalette, savePalettePreference, saveThemePreference, saveUserPalettePreference, saveUserThemePreference, setCSSVariable, setPalette, setTheme, spacingConfigs, t, toCssLength, useAccessibility, useBaseProps, useBreadcrumbs, useCollapsibleState, useData, useDataBinding, useDataContext, useDataProvider, useDimensions, useNavigation, usePageContext, usePalette, usePrintMode$1 as usePrintMode, usePrintMode as usePrintModeHook, useQwickApp, useResolveTemplate, useTemplate, useTheme, withAccessibility, withErrorBoundary };
33722
+ export { AVAILABLE_PALETTES, AccessibilityProvider, ActionModel, ActionType, AllPalettes, AppConfig, AppConfigBuilder, Article, ArticleModel, Breadcrumbs, Button, Captcha, CaptchaModel, CardListGrid, CardListGridModel, ChoiceInputField, ChoiceInputFieldModel, Code, CodeModel, CollapsibleLayout, CollapsibleLayoutView, ComponentTransformer$1 as ComponentTransformer, Container$8 as Container, Content, ContentModel, CoverImageHeader, CoverImageHeaderModel, DataProvider, DataProxy, DataTable, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, DimensionsProvider, ErrorBoundary, FeatureCard, FeatureCardActionModel, FeatureCardModel, FeatureGrid, FeatureGridModel, FeatureItemModel, Footer, FooterItemModel, FooterModel, FooterSectionModel, FormBlock, FormBlockModel, FormCheckbox, FormCheckboxModel, FormField, FormFieldModel, FormMethod, FormPage, FormSelect, FormSelectModel, GalleryImageModel, GridCell, GridCellModel, GridLayout, GridLayoutModel, HeaderActionModel, HeroBlock, HeroBlockModel, Html, HtmlInputField, HtmlModel, Image, ImageGallery, ImageGalleryModel, ImageModel, Logo, Markdown, MarkdownModel, MetadataItemModel, ModelView, NavigationProvider, OptionSelector, OptionSelectorModel, Page, PageBannerHeader, PageBannerHeaderModel, PageTemplateSchema, PaletteAutumn, PaletteBoutique, PaletteCosmic, PaletteDefault, PaletteOcean, PaletteProvider, PaletteSpring, PaletteSwitcher, PaletteSwitcherModel, PaletteWinter, PrintConfigSchema, PrintModeProvider, ProductCard, ProductCardActionModel, ProductCardModel, ProductLogo, ProductModel, QWICKAPP_COMPONENT, QwickApp, QwickAppsLogo, QwickIcon, ResponsiveMenu, SafeSpan, SafeSpanModel, Scaffold, SchemaFormRenderer, Section, SectionModel, SelectInputField, SelectOptionModel, StatCard, SwitchInputField, T, Text$1 as Text, TextField, TextInputField, TextInputFieldModel, TextModel, ThemeProvider, ThemeSwitcher, ThemeSwitcherModel, ViewSchema, animationConfigs, applyCustomPalette, clearManifestCache, clearPaletteCache, clearUserPalettePreference, clearUserThemePreference, configurePaletteLoader, createAppConfig, createModelViewClass, createPaletteFromCurrentTheme, createSerializableView, defaultCollapsibleLayoutProps, deleteCustomPalette, exportPalette, extractTextFromReactNode, getAvailablePalettes, getCSSVariable, getComputedTheme, getCurrentPalette, getCurrentTheme, getCustomPalettes, getIconComponent, getIconEmoji, getLogger, getPaletteConfig, getPaletteFromManifest, getPaletteName, getRegisteredIcons, getSystemTheme, getThemePerformanceStats, hasIcon, iconMap, importPalette, initializePalette, initializeTheme, isCollapsibleLayoutProps, isPaletteLoaded, loadPalette, loadPaletteManifest, loadUserPalettePreference, loadUserThemePreference, logThemePerformanceStats, loggers, preloadPalettes, registerCustomPalette, registerIcon, resetThemePerformanceStats, resolveDimension, resolveDimensions, resolveSpacing, resolveSpacingProps, saveCustomPalette, savePalettePreference, saveThemePreference, saveUserPalettePreference, saveUserThemePreference, setCSSVariable, setPalette, setTheme, spacingConfigs, t, toCssLength, useAccessibility, useBaseProps, useBreadcrumbs, useCollapsibleState, useData, useDataBinding, useDataContext, useDataProvider, useDimensions, useNavigation, usePageContext, usePalette, usePrintMode$1 as usePrintMode, usePrintMode as usePrintModeHook, useQwickApp, useResolveTemplate, useTemplate, useTheme, withAccessibility, withErrorBoundary };
package/dist/index.js CHANGED
@@ -18953,103 +18953,6 @@ function registerSerializableComponents() {
18953
18953
  */
18954
18954
  registerSerializableComponents();
18955
18955
 
18956
- /**
18957
- * HeroSlideshow Component
18958
- *
18959
- * A slideshow built on top of HeroBlock that cycles through multiple slides
18960
- * with auto-rotation, fade transitions, and progress dot navigation.
18961
- *
18962
- * Usage (props-driven, e.g. qwickdocs):
18963
- * <HeroSlideshow slides={[{ title: 'Slide 1', ... }, ...]} />
18964
- *
18965
- * Usage (CMS-driven, e.g. work-macha):
18966
- * const slideshow = await payload.findByID({ collection: 'hero-slideshows', id });
18967
- * <HeroSlideshow slides={slideshow.slides} autoPlayInterval={slideshow.autoPlayInterval} />
18968
- *
18969
- * Copyright (c) 2025 QwickApps.com. All rights reserved.
18970
- */
18971
- const TRANSITION_DURATION = 300; // ms
18972
- /**
18973
- * HeroSlideshow - Cycles through HeroBlock slides with fade transitions
18974
- */
18975
- function HeroSlideshow({
18976
- slides,
18977
- autoPlayInterval = 5000,
18978
- showDots = true,
18979
- blockHeight = 'large',
18980
- textAlign = 'center'
18981
- }) {
18982
- const [currentIndex, setCurrentIndex] = React.useState(0);
18983
- const [isVisible, setIsVisible] = React.useState(true);
18984
- const goToSlide = React.useCallback(index => {
18985
- if (index === currentIndex) return;
18986
- setIsVisible(false);
18987
- setTimeout(() => {
18988
- setCurrentIndex(index);
18989
- setIsVisible(true);
18990
- }, TRANSITION_DURATION);
18991
- }, [currentIndex]);
18992
- React.useEffect(() => {
18993
- if (slides.length <= 1 || autoPlayInterval <= 0) return;
18994
- const timer = setTimeout(() => {
18995
- goToSlide((currentIndex + 1) % slides.length);
18996
- }, autoPlayInterval);
18997
- return () => clearTimeout(timer);
18998
- }, [currentIndex, slides.length, autoPlayInterval, goToSlide]);
18999
- if (!slides.length) return null;
19000
- const slide = slides[currentIndex];
19001
- return jsxRuntime.jsxs(material.Box, {
19002
- sx: {
19003
- position: 'relative',
19004
- overflow: 'hidden'
19005
- },
19006
- children: [jsxRuntime.jsx(material.Box, {
19007
- sx: {
19008
- opacity: isVisible ? 1 : 0,
19009
- transition: `opacity ${TRANSITION_DURATION}ms ease-in-out`
19010
- },
19011
- children: jsxRuntime.jsx(HeroBlock, {
19012
- title: slide.title,
19013
- subtitle: slide.subtitle,
19014
- backgroundImage: slide.backgroundImage,
19015
- backgroundGradient: slide.backgroundGradient,
19016
- backgroundColor: slide.backgroundColor,
19017
- actions: slide.actions,
19018
- overlayOpacity: slide.overlayOpacity,
19019
- blockHeight: blockHeight,
19020
- textAlign: textAlign
19021
- })
19022
- }), showDots && slides.length > 1 && jsxRuntime.jsx(material.Box, {
19023
- sx: {
19024
- position: 'absolute',
19025
- bottom: 20,
19026
- left: '50%',
19027
- transform: 'translateX(-50%)',
19028
- display: 'flex',
19029
- gap: 1,
19030
- zIndex: 10
19031
- },
19032
- children: slides.map((_, index) => jsxRuntime.jsx(material.Box, {
19033
- role: "button",
19034
- "aria-label": `Go to slide ${index + 1}`,
19035
- onClick: () => goToSlide(index),
19036
- sx: {
19037
- width: index === currentIndex ? 28 : 8,
19038
- height: 8,
19039
- borderRadius: 4,
19040
- backgroundColor: 'rgba(255, 255, 255, 0.9)',
19041
- opacity: index === currentIndex ? 1 : 0.45,
19042
- cursor: 'pointer',
19043
- transition: 'all 0.3s ease',
19044
- '&:hover': {
19045
- opacity: 0.8
19046
- }
19047
- }
19048
- }, index))
19049
- })]
19050
- });
19051
- }
19052
-
19053
18956
  // View component - handles the actual rendering
19054
18957
  function ArticleView({
19055
18958
  html = '',
@@ -23320,6 +23223,7 @@ function FormFieldView({
23320
23223
  multiline = false,
23321
23224
  rows,
23322
23225
  placeholder,
23226
+ name,
23323
23227
  startAdornment,
23324
23228
  endAdornment,
23325
23229
  inputProps,
@@ -23385,6 +23289,7 @@ function FormFieldView({
23385
23289
  children: label
23386
23290
  }), jsxRuntime.jsx(material.Input, {
23387
23291
  id: fieldId,
23292
+ name: name,
23388
23293
  type: type,
23389
23294
  value: value,
23390
23295
  onChange: handleChange,
@@ -23434,6 +23339,7 @@ function FormSelectView({
23434
23339
  fullWidth = true,
23435
23340
  size = 'small',
23436
23341
  placeholder,
23342
+ name,
23437
23343
  // Exclude ViewProps that conflict with MUI FormControl types
23438
23344
  margin: _margin,
23439
23345
  marginTop: _marginTop,
@@ -23483,6 +23389,7 @@ function FormSelectView({
23483
23389
  shrink: true,
23484
23390
  children: label
23485
23391
  }), jsxRuntime.jsxs(material.Select, {
23392
+ name: name,
23486
23393
  value: value,
23487
23394
  onChange: handleChange,
23488
23395
  disabled: disabled,
@@ -31457,6 +31364,12 @@ __decorate([schema.Field(), schema.Editor({
31457
31364
  description: 'Placeholder text when no value is selected',
31458
31365
  placeholder: 'Select an option...'
31459
31366
  }), classValidator.IsOptional(), classValidator.IsString(), __metadata("design:type", String)], exports.FormSelectModel.prototype, "placeholder", void 0);
31367
+ __decorate([schema.Field(), schema.Editor({
31368
+ field_type: schema.FieldType.TEXT,
31369
+ label: 'Name',
31370
+ description: 'Name attribute for the select (for forms and accessibility)',
31371
+ placeholder: 'Enter name...'
31372
+ }), classValidator.IsOptional(), classValidator.IsString(), __metadata("design:type", String)], exports.FormSelectModel.prototype, "name", void 0);
31460
31373
  exports.FormSelectModel = __decorate([schema.Schema('FormSelect', '1.0.0')], exports.FormSelectModel);
31461
31374
 
31462
31375
  /**
@@ -31543,6 +31456,12 @@ __decorate([schema.Field(), schema.Editor({
31543
31456
  description: 'Placeholder text',
31544
31457
  placeholder: 'Enter text...'
31545
31458
  }), classValidator.IsOptional(), classValidator.IsString(), __metadata("design:type", String)], exports.FormFieldModel.prototype, "placeholder", void 0);
31459
+ __decorate([schema.Field(), schema.Editor({
31460
+ field_type: schema.FieldType.TEXT,
31461
+ label: 'Name',
31462
+ description: 'Name attribute for the input (for forms and accessibility)',
31463
+ placeholder: 'Enter name...'
31464
+ }), classValidator.IsOptional(), classValidator.IsString(), __metadata("design:type", String)], exports.FormFieldModel.prototype, "name", void 0);
31546
31465
  exports.FormFieldModel = __decorate([schema.Schema('FormField', '1.0.0')], exports.FormFieldModel);
31547
31466
 
31548
31467
  /**
@@ -33842,7 +33761,6 @@ exports.GalleryImageModel = GalleryImageModel;
33842
33761
  exports.GridCell = GridCell;
33843
33762
  exports.GridLayout = GridLayout;
33844
33763
  exports.HeroBlock = HeroBlock;
33845
- exports.HeroSlideshow = HeroSlideshow;
33846
33764
  exports.Html = Html;
33847
33765
  exports.HtmlInputField = HtmlInputField;
33848
33766
  exports.Image = Image;
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Autumn Color Palette
3
+ *
4
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
5
+ *
6
+ * Warm oranges, golden yellows, and earthy browns - inspired by fall foliage
7
+ */
8
+
9
+ /* ===== AUTUMN PALETTE - LIGHT THEME ===== */
10
+ html[data-palette="autumn"]:not([data-theme="dark"]),
11
+ html[data-palette="autumn"][data-theme="light"] {
12
+ /* Primary palette - Burnt orange */
13
+ --palette-primary-main: #ea580c;
14
+ --palette-primary-light: #fb923c;
15
+ --palette-primary-dark: #c2410c;
16
+ --palette-on-primary: #ffffff;
17
+
18
+ /* Secondary palette - Rich amber */
19
+ --palette-secondary-main: #b45309;
20
+ --palette-secondary-light: #d97706;
21
+ --palette-secondary-dark: #92400e;
22
+ --palette-on-secondary: #ffffff;
23
+
24
+ /* Surface palette - Cream */
25
+ --palette-surface-main: #fffbeb;
26
+ --palette-surface-variant: #fef3c7;
27
+ --palette-surface-elevated: #ffffff;
28
+ --palette-on-surface: #451a03;
29
+
30
+ /* Background palette - Warm ivory */
31
+ --palette-background-main: #fefce8;
32
+ --palette-background-dark: #fef3c7;
33
+ --palette-background-overlay: rgba(254, 252, 232, 0.95);
34
+ --palette-on-background: #78350f;
35
+
36
+ /* Header background with transparency */
37
+ --palette-header-bg-start: rgba(254, 252, 232, 0.98);
38
+ --palette-header-bg-end: rgba(254, 252, 232, 0.95);
39
+ --palette-header-collapsed-bg-start: rgba(254, 252, 232, 0.99);
40
+ --palette-header-collapsed-bg-end: rgba(254, 252, 232, 0.96);
41
+
42
+ /* Text palette - Rich brown */
43
+ --palette-text-primary: #451a03;
44
+ --palette-text-secondary: #78350f;
45
+ --palette-text-disabled: rgba(69, 26, 3, 0.38);
46
+ --palette-text-inverted: #ffffff;
47
+
48
+ /* Border palette - Tan */
49
+ --palette-border-main: #d4d4aa;
50
+ --palette-border-light: rgba(69, 26, 3, 0.12);
51
+ --palette-border-lighter: rgba(69, 26, 3, 0.05);
52
+ --palette-border-medium: #a8a29e;
53
+
54
+ /* Success palette - Forest green */
55
+ --palette-success-main: #16a34a;
56
+ --palette-success-light: #dcfce7;
57
+ --palette-success-dark: #14532d;
58
+ --palette-success-border: #bbf7d0;
59
+
60
+ /* Error palette - Crimson */
61
+ --palette-error-main: #dc2626;
62
+ --palette-error-light: #fee2e2;
63
+ --palette-error-dark: #7f1d1d;
64
+ --palette-on-error: #ffffff;
65
+ --palette-error-border: #fecaca;
66
+
67
+ /* Warning palette - Amber */
68
+ --palette-warning-main: #f59e0b;
69
+ --palette-warning-light: #fef3c7;
70
+ --palette-warning-dark: #78350f;
71
+ --palette-on-warning: #000000;
72
+ --palette-warning-border: #fde68a;
73
+
74
+ /* Info palette - Teal */
75
+ --palette-info-main: #0891b2;
76
+ --palette-info-light: #e6fffa;
77
+ --palette-info-dark: #164e63;
78
+ --palette-on-info: #ffffff;
79
+ --palette-info-border: #67e8f9;
80
+
81
+ /* Accent palette - Deep crimson */
82
+ --palette-accent-main: #dc2626;
83
+ --palette-accent-light: #f87171;
84
+ --palette-accent-dark: #991b1b;
85
+ --palette-on-accent: #ffffff;
86
+
87
+ /* Control palette - Walnut */
88
+ --palette-control-main: #451a03;
89
+ --palette-control-light: #78350f;
90
+ --palette-control-text: #fef3c7;
91
+ --palette-control-border: #92400e;
92
+ }
93
+
94
+ /* ===== AUTUMN PALETTE - DARK THEME ===== */
95
+ html[data-palette="autumn"][data-theme="dark"] {
96
+ /* Primary palette - Glowing ember */
97
+ --palette-primary-main: #fb923c;
98
+ --palette-primary-light: #fdba74;
99
+ --palette-primary-dark: #ea580c;
100
+ --palette-on-primary: #1c1917;
101
+
102
+ /* Secondary palette - Golden glow */
103
+ --palette-secondary-main: #fbbf24;
104
+ --palette-secondary-light: #fcd34d;
105
+ --palette-secondary-dark: #f59e0b;
106
+ --palette-on-secondary: #1c1917;
107
+
108
+ /* Surface palette - Dark wood */
109
+ --palette-surface-main: #231f1d;
110
+ --palette-surface-variant: #302a27;
111
+ --palette-surface-elevated: #44403c;
112
+ --palette-on-surface: #fef3c7;
113
+
114
+ /* Background palette - Deep earth */
115
+ --palette-background-main: #0a0807;
116
+ --palette-background-dark: #151210;
117
+ --palette-background-overlay: rgba(28, 25, 23, 0.95);
118
+ --palette-on-background: #d6d3d1;
119
+
120
+ /* Header background with transparency */
121
+ --palette-header-bg-start: rgba(10, 8, 7, 0.98);
122
+ --palette-header-bg-end: rgba(10, 8, 7, 0.95);
123
+ --palette-header-collapsed-bg-start: rgba(10, 8, 7, 0.99);
124
+ --palette-header-collapsed-bg-end: rgba(10, 8, 7, 0.96);
125
+
126
+ /* Text palette - Warm light */
127
+ --palette-text-primary: #fef3c7;
128
+ --palette-text-secondary: #d6d3d1;
129
+ --palette-text-disabled: rgba(254, 243, 199, 0.38);
130
+ --palette-text-inverted: #0c0a09;
131
+
132
+ /* Border palette - Copper */
133
+ --palette-border-main: #78716c;
134
+ --palette-border-light: rgba(254, 243, 199, 0.12);
135
+ --palette-border-lighter: rgba(254, 243, 199, 0.05);
136
+ --palette-border-medium: #57534e;
137
+
138
+ /* Success palette - Pine */
139
+ --palette-success-main: #4ade80;
140
+ --palette-success-light: #14532d;
141
+ --palette-success-dark: #22c55e;
142
+ --palette-success-border: #166534;
143
+
144
+ /* Error palette - Fire */
145
+ --palette-error-main: #f87171;
146
+ --palette-error-light: #7f1d1d;
147
+ --palette-error-dark: #ef4444;
148
+ --palette-error-border: #991b1b;
149
+
150
+ /* Warning palette - Harvest gold */
151
+ --palette-warning-main: #eab308;
152
+ --palette-warning-light: #78350f;
153
+ --palette-warning-dark: #ca8a04;
154
+ --palette-warning-border: #a16207;
155
+
156
+ /* Info palette - River teal */
157
+ --palette-info-main: #22d3ee;
158
+ --palette-info-light: #164e63;
159
+ --palette-info-dark: #06b6d4;
160
+ --palette-on-info: #0c0a09;
161
+ --palette-info-border: #0891b2;
162
+
163
+ /* Accent palette - Harvest crimson */
164
+ --palette-accent-main: #b91c1c;
165
+ --palette-accent-light: #dc2626;
166
+ --palette-accent-dark: #7f1d1d;
167
+ --palette-on-accent: #fef3c7;
168
+
169
+ /* Control palette - Charcoal */
170
+ --palette-control-main: #292524;
171
+ --palette-control-light: #44403c;
172
+ --palette-control-text: #f5f5f4;
173
+ --palette-control-border: #57534e;
174
+ }
@@ -0,0 +1 @@
1
+ html[data-palette="autumn"]:not([data-theme="dark"]),html[data-palette="autumn"][data-theme="light"]{--palette-primary-main:#ea580c;--palette-primary-light:#fb923c;--palette-primary-dark:#c2410c;--palette-on-primary:#ffffff;--palette-secondary-main:#b45309;--palette-secondary-light:#d97706;--palette-secondary-dark:#92400e;--palette-on-secondary:#ffffff;--palette-surface-main:#fffbeb;--palette-surface-variant:#fef3c7;--palette-surface-elevated:#ffffff;--palette-on-surface:#451a03;--palette-background-main:#fefce8;--palette-background-dark:#fef3c7;--palette-background-overlay:rgba(254,252,232,0.95);--palette-on-background:#78350f;--palette-header-bg-start:rgba(254,252,232,0.98);--palette-header-bg-end:rgba(254,252,232,0.95);--palette-header-collapsed-bg-start:rgba(254,252,232,0.99);--palette-header-collapsed-bg-end:rgba(254,252,232,0.96);--palette-text-primary:#451a03;--palette-text-secondary:#78350f;--palette-text-disabled:rgba(69,26,3,0.38);--palette-text-inverted:#ffffff;--palette-border-main:#d4d4aa;--palette-border-light:rgba(69,26,3,0.12);--palette-border-lighter:rgba(69,26,3,0.05);--palette-border-medium:#a8a29e;--palette-success-main:#16a34a;--palette-success-light:#dcfce7;--palette-success-dark:#14532d;--palette-success-border:#bbf7d0;--palette-error-main:#dc2626;--palette-error-light:#fee2e2;--palette-error-dark:#7f1d1d;--palette-on-error:#ffffff;--palette-error-border:#fecaca;--palette-warning-main:#f59e0b;--palette-warning-light:#fef3c7;--palette-warning-dark:#78350f;--palette-on-warning:#000000;--palette-warning-border:#fde68a;--palette-info-main:#0891b2;--palette-info-light:#e6fffa;--palette-info-dark:#164e63;--palette-on-info:#ffffff;--palette-info-border:#67e8f9;--palette-accent-main:#dc2626;--palette-accent-light:#f87171;--palette-accent-dark:#991b1b;--palette-on-accent:#ffffff;--palette-control-main:#451a03;--palette-control-light:#78350f;--palette-control-text:#fef3c7;--palette-control-border:#92400e}html[data-palette="autumn"][data-theme="dark"]{--palette-primary-main:#fb923c;--palette-primary-light:#fdba74;--palette-primary-dark:#ea580c;--palette-on-primary:#1c1917;--palette-secondary-main:#fbbf24;--palette-secondary-light:#fcd34d;--palette-secondary-dark:#f59e0b;--palette-on-secondary:#1c1917;--palette-surface-main:#231f1d;--palette-surface-variant:#302a27;--palette-surface-elevated:#44403c;--palette-on-surface:#fef3c7;--palette-background-main:#0a0807;--palette-background-dark:#151210;--palette-background-overlay:rgba(28,25,23,0.95);--palette-on-background:#d6d3d1;--palette-header-bg-start:rgba(10,8,7,0.98);--palette-header-bg-end:rgba(10,8,7,0.95);--palette-header-collapsed-bg-start:rgba(10,8,7,0.99);--palette-header-collapsed-bg-end:rgba(10,8,7,0.96);--palette-text-primary:#fef3c7;--palette-text-secondary:#d6d3d1;--palette-text-disabled:rgba(254,243,199,0.38);--palette-text-inverted:#0c0a09;--palette-border-main:#78716c;--palette-border-light:rgba(254,243,199,0.12);--palette-border-lighter:rgba(254,243,199,0.05);--palette-border-medium:#57534e;--palette-success-main:#4ade80;--palette-success-light:#14532d;--palette-success-dark:#22c55e;--palette-success-border:#166534;--palette-error-main:#f87171;--palette-error-light:#7f1d1d;--palette-error-dark:#ef4444;--palette-error-border:#991b1b;--palette-warning-main:#eab308;--palette-warning-light:#78350f;--palette-warning-dark:#ca8a04;--palette-warning-border:#a16207;--palette-info-main:#22d3ee;--palette-info-light:#164e63;--palette-info-dark:#06b6d4;--palette-on-info:#0c0a09;--palette-info-border:#0891b2;--palette-accent-main:#b91c1c;--palette-accent-light:#dc2626;--palette-accent-dark:#7f1d1d;--palette-on-accent:#fef3c7;--palette-control-main:#292524;--palette-control-light:#44403c;--palette-control-text:#f5f5f4;--palette-control-border:#57534e}