@qwickapps/react-framework 1.9.1 → 1.9.2

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 (50) hide show
  1. package/README.md +7 -4
  2. package/dist/components/Html.d.ts.map +1 -1
  3. package/dist/components/blocks/index.d.ts +0 -2
  4. package/dist/components/blocks/index.d.ts.map +1 -1
  5. package/dist/components/forms/FormField.d.ts +0 -2
  6. package/dist/components/forms/FormField.d.ts.map +1 -1
  7. package/dist/components/forms/FormSelect.d.ts +0 -2
  8. package/dist/components/forms/FormSelect.d.ts.map +1 -1
  9. package/dist/index.css +1 -1
  10. package/dist/index.esm.css +1 -1
  11. package/dist/index.esm.js +2104 -1589
  12. package/dist/index.js +2103 -1589
  13. package/dist/palettes/manifest.json +22 -22
  14. package/dist/palettes/{palette-boutique.1.9.1.css → palette-boutique.1.9.2.css} +29 -29
  15. package/dist/palettes/{palette-boutique.1.9.1.min.css → palette-boutique.1.9.2.min.css} +1 -1
  16. package/dist/palettes/palette-boutique.latest.css +29 -29
  17. package/dist/palettes/palette-boutique.latest.min.css +1 -1
  18. package/dist/schemas/FormFieldSchema.d.ts +0 -1
  19. package/dist/schemas/FormFieldSchema.d.ts.map +1 -1
  20. package/dist/schemas/FormSelectSchema.d.ts +0 -1
  21. package/dist/schemas/FormSelectSchema.d.ts.map +1 -1
  22. package/package.json +3 -3
  23. package/src/components/Html.tsx +1 -7
  24. package/src/components/Logo.tsx +1 -1
  25. package/src/components/QwickApp.css +2 -2
  26. package/src/components/Scaffold.css +0 -3
  27. package/src/components/blocks/index.ts +0 -2
  28. package/src/components/forms/FormField.tsx +0 -6
  29. package/src/components/forms/FormSelect.tsx +0 -6
  30. package/src/components/layout/GridCellWrapper.tsx +4 -4
  31. package/src/palettes/PaletteBoutique.css +29 -29
  32. package/src/schemas/FormFieldSchema.ts +0 -11
  33. package/src/schemas/FormSelectSchema.ts +0 -11
  34. package/src/schemas/transformers/ReactNodeTransformer.ts +1 -1
  35. package/dist/components/blocks/HeroSlideshow.d.ts +0 -54
  36. package/dist/components/blocks/HeroSlideshow.d.ts.map +0 -1
  37. package/src/components/blocks/HeroSlideshow.tsx +0 -156
  38. package/src/stories/HeroSlideshow.stories.tsx +0 -164
  39. /package/dist/palettes/{palette-autumn.1.9.1.css → palette-autumn.1.9.2.css} +0 -0
  40. /package/dist/palettes/{palette-autumn.1.9.1.min.css → palette-autumn.1.9.2.min.css} +0 -0
  41. /package/dist/palettes/{palette-cosmic.1.9.1.css → palette-cosmic.1.9.2.css} +0 -0
  42. /package/dist/palettes/{palette-cosmic.1.9.1.min.css → palette-cosmic.1.9.2.min.css} +0 -0
  43. /package/dist/palettes/{palette-default.1.9.1.css → palette-default.1.9.2.css} +0 -0
  44. /package/dist/palettes/{palette-default.1.9.1.min.css → palette-default.1.9.2.min.css} +0 -0
  45. /package/dist/palettes/{palette-ocean.1.9.1.css → palette-ocean.1.9.2.css} +0 -0
  46. /package/dist/palettes/{palette-ocean.1.9.1.min.css → palette-ocean.1.9.2.min.css} +0 -0
  47. /package/dist/palettes/{palette-spring.1.9.1.css → palette-spring.1.9.2.css} +0 -0
  48. /package/dist/palettes/{palette-spring.1.9.1.min.css → palette-spring.1.9.2.min.css} +0 -0
  49. /package/dist/palettes/{palette-winter.1.9.1.css → palette-winter.1.9.2.css} +0 -0
  50. /package/dist/palettes/{palette-winter.1.9.1.min.css → palette-winter.1.9.2.min.css} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./manifest.schema.json",
3
- "version": "1.9.1",
3
+ "version": "1.9.2",
4
4
  "palettes": [
5
5
  {
6
6
  "id": "default",
@@ -8,11 +8,11 @@
8
8
  "description": "Classic blue and neutral color scheme - the original QwickApps palette",
9
9
  "author": "QwickApps",
10
10
  "license": "PolyForm-Shield-1.0.0",
11
- "version": "1.9.1",
12
- "file": "palette-default.1.9.1.css",
11
+ "version": "1.9.2",
12
+ "file": "palette-default.1.9.2.css",
13
13
  "primaryColor": "#007bff",
14
14
  "inlined": true,
15
- "fileMinified": "palette-default.1.9.1.min.css",
15
+ "fileMinified": "palette-default.1.9.2.min.css",
16
16
  "fileLatest": "palette-default.latest.css",
17
17
  "fileLatestMinified": "palette-default.latest.min.css"
18
18
  },
@@ -22,11 +22,11 @@
22
22
  "description": "Warm oranges, golden yellows, and earthy browns - inspired by fall foliage",
23
23
  "author": "QwickApps",
24
24
  "license": "PolyForm-Shield-1.0.0",
25
- "version": "1.9.1",
26
- "file": "palette-autumn.1.9.1.css",
25
+ "version": "1.9.2",
26
+ "file": "palette-autumn.1.9.2.css",
27
27
  "primaryColor": "#ea580c",
28
28
  "inlined": false,
29
- "fileMinified": "palette-autumn.1.9.1.min.css",
29
+ "fileMinified": "palette-autumn.1.9.2.min.css",
30
30
  "fileLatest": "palette-autumn.latest.css",
31
31
  "fileLatestMinified": "palette-autumn.latest.min.css"
32
32
  },
@@ -36,11 +36,11 @@
36
36
  "description": "Sophisticated teal, bronze, and navy - perfect for premium retail and fashion brands",
37
37
  "author": "QwickApps",
38
38
  "license": "PolyForm-Shield-1.0.0",
39
- "version": "1.9.1",
40
- "file": "palette-boutique.1.9.1.css",
39
+ "version": "1.9.2",
40
+ "file": "palette-boutique.1.9.2.css",
41
41
  "primaryColor": "#3ca6b6",
42
42
  "inlined": false,
43
- "fileMinified": "palette-boutique.1.9.1.min.css",
43
+ "fileMinified": "palette-boutique.1.9.2.min.css",
44
44
  "fileLatest": "palette-boutique.latest.css",
45
45
  "fileLatestMinified": "palette-boutique.latest.min.css"
46
46
  },
@@ -50,11 +50,11 @@
50
50
  "description": "Modern purple gradient for creative and tech brands - inspired by cosmic nebulae",
51
51
  "author": "QwickApps",
52
52
  "license": "PolyForm-Shield-1.0.0",
53
- "version": "1.9.1",
54
- "file": "palette-cosmic.1.9.1.css",
53
+ "version": "1.9.2",
54
+ "file": "palette-cosmic.1.9.2.css",
55
55
  "primaryColor": "#8b5cf6",
56
56
  "inlined": false,
57
- "fileMinified": "palette-cosmic.1.9.1.min.css",
57
+ "fileMinified": "palette-cosmic.1.9.2.min.css",
58
58
  "fileLatest": "palette-cosmic.latest.css",
59
59
  "fileLatestMinified": "palette-cosmic.latest.min.css"
60
60
  },
@@ -64,11 +64,11 @@
64
64
  "description": "Deep blues, aqua teals, and seafoam greens - inspired by ocean depths",
65
65
  "author": "QwickApps",
66
66
  "license": "PolyForm-Shield-1.0.0",
67
- "version": "1.9.1",
68
- "file": "palette-ocean.1.9.1.css",
67
+ "version": "1.9.2",
68
+ "file": "palette-ocean.1.9.2.css",
69
69
  "primaryColor": "#0891b2",
70
70
  "inlined": false,
71
- "fileMinified": "palette-ocean.1.9.1.min.css",
71
+ "fileMinified": "palette-ocean.1.9.2.min.css",
72
72
  "fileLatest": "palette-ocean.latest.css",
73
73
  "fileLatestMinified": "palette-ocean.latest.min.css"
74
74
  },
@@ -78,11 +78,11 @@
78
78
  "description": "Fresh greens, soft pinks, and bright yellows - inspired by spring blooms",
79
79
  "author": "QwickApps",
80
80
  "license": "PolyForm-Shield-1.0.0",
81
- "version": "1.9.1",
82
- "file": "palette-spring.1.9.1.css",
81
+ "version": "1.9.2",
82
+ "file": "palette-spring.1.9.2.css",
83
83
  "primaryColor": "#16a34a",
84
84
  "inlined": false,
85
- "fileMinified": "palette-spring.1.9.1.min.css",
85
+ "fileMinified": "palette-spring.1.9.2.min.css",
86
86
  "fileLatest": "palette-spring.latest.css",
87
87
  "fileLatestMinified": "palette-spring.latest.min.css"
88
88
  },
@@ -92,11 +92,11 @@
92
92
  "description": "Cool blues, icy whites, and frosty grays - inspired by winter landscapes",
93
93
  "author": "QwickApps",
94
94
  "license": "PolyForm-Shield-1.0.0",
95
- "version": "1.9.1",
96
- "file": "palette-winter.1.9.1.css",
95
+ "version": "1.9.2",
96
+ "file": "palette-winter.1.9.2.css",
97
97
  "primaryColor": "#0077be",
98
98
  "inlined": false,
99
- "fileMinified": "palette-winter.1.9.1.min.css",
99
+ "fileMinified": "palette-winter.1.9.2.min.css",
100
100
  "fileLatest": "palette-winter.latest.css",
101
101
  "fileLatestMinified": "palette-winter.latest.min.css"
102
102
  }
@@ -9,16 +9,16 @@
9
9
  /* ===== BOUTIQUE PALETTE - LIGHT THEME ===== */
10
10
  html[data-palette="boutique"]:not([data-theme="dark"]),
11
11
  html[data-palette="boutique"][data-theme="light"] {
12
- /* Primary palette - Teal */
13
- --palette-primary-main: #3ca6b6;
14
- --palette-primary-light: #6bc4d1;
15
- --palette-primary-dark: #2a7a86;
12
+ /* Primary palette - Teal (WCAG AA compliant) */
13
+ --palette-primary-main: #0e7490; /* cyan-700: 4.9:1 on white */
14
+ --palette-primary-light: #0c6d80; /* 6.0:1 white text on this bg */
15
+ --palette-primary-dark: #155e75; /* cyan-800: 8.1:1 on white */
16
16
  --palette-on-primary: #ffffff;
17
17
 
18
- /* Secondary palette - Bronze */
19
- --palette-secondary-main: #be765e;
20
- --palette-secondary-light: #d4987e;
21
- --palette-secondary-dark: #9a5742;
18
+ /* Secondary palette - Bronze (WCAG AA compliant) */
19
+ --palette-secondary-main: #9a5742; /* 5.5:1 on white */
20
+ --palette-secondary-light: #8b5a3a; /* 5.8:1 on white */
21
+ --palette-secondary-dark: #78350f; /* amber-900: 9.4:1 on white */
22
22
  --palette-on-secondary: #ffffff;
23
23
 
24
24
  /* Surface palette - Warm ivory */
@@ -51,30 +51,30 @@ html[data-palette="boutique"][data-theme="light"] {
51
51
  --palette-border-lighter: rgba(44, 37, 32, 0.05);
52
52
  --palette-border-medium: #b8afa4;
53
53
 
54
- /* Success palette - Emerald */
55
- --palette-success-main: #10b981;
56
- --palette-success-light: #d1fae5;
57
- --palette-success-dark: #047857;
54
+ /* Success palette - Emerald (WCAG AA compliant) */
55
+ --palette-success-main: #15803d; /* green-700: 5.1:1 on white */
56
+ --palette-success-light: #dcfce7; /* green-100 */
57
+ --palette-success-dark: #047857; /* 5.9:1 on white */
58
58
  --palette-success-border: #a7f3d0;
59
59
 
60
- /* Error palette - Rose */
61
- --palette-error-main: #f43f5e;
62
- --palette-error-light: #ffe4e6;
63
- --palette-error-dark: #9f1239;
60
+ /* Error palette - Rose (WCAG AA compliant) */
61
+ --palette-error-main: #b91c1c; /* red-700: 5.0:1 on white */
62
+ --palette-error-light: #fee2e2; /* red-100 */
63
+ --palette-error-dark: #9f1239; /* 7.3:1 on white */
64
64
  --palette-on-error: #ffffff;
65
65
  --palette-error-border: #fecdd3;
66
66
 
67
- /* Warning palette - Amber */
68
- --palette-warning-main: #f59e0b;
69
- --palette-warning-light: #fef3c7;
70
- --palette-warning-dark: #d97706;
71
- --palette-on-warning: #000000;
67
+ /* Warning palette - Amber (WCAG AA compliant) */
68
+ --palette-warning-main: #92400e; /* amber-800: 5.5:1 on amber-100 bg */
69
+ --palette-warning-light: #fef3c7; /* amber-100 */
70
+ --palette-warning-dark: #78350f; /* amber-900: 9.4:1 on white */
71
+ --palette-on-warning: #ffffff;
72
72
  --palette-warning-border: #fde68a;
73
73
 
74
- /* Info palette - Sky blue */
75
- --palette-info-main: #0284c7;
76
- --palette-info-light: #e0f2fe;
77
- --palette-info-dark: #075985;
74
+ /* Info palette - Sky blue (WCAG AA compliant) */
75
+ --palette-info-main: #0369a1; /* sky-700: 5.9:1 on white */
76
+ --palette-info-light: #e0f2fe; /* sky-100 */
77
+ --palette-info-dark: #075985; /* sky-800: 7.8:1 on white */
78
78
  --palette-on-info: #ffffff;
79
79
  --palette-info-border: #7dd3fc;
80
80
 
@@ -84,11 +84,11 @@ html[data-palette="boutique"][data-theme="light"] {
84
84
  --palette-accent-dark: #050d1f;
85
85
  --palette-on-accent: #ffffff;
86
86
 
87
- /* Control palette - Deep teal */
88
- --palette-control-main: #2a7a86;
89
- --palette-control-light: #3ca6b6;
87
+ /* Control palette - Deep teal (WCAG AA compliant) */
88
+ --palette-control-main: #0e7490; /* cyan-700: 4.9:1 on white */
89
+ --palette-control-light: #0c6d80; /* 6.0:1 white text on bg */
90
90
  --palette-control-text: #ffffff;
91
- --palette-control-border: #217380;
91
+ --palette-control-border: #155e75;
92
92
  }
93
93
 
94
94
  /* ===== BOUTIQUE PALETTE - DARK THEME ===== */
@@ -1 +1 @@
1
- html[data-palette="boutique"]:not([data-theme="dark"]),html[data-palette="boutique"][data-theme="light"]{--palette-primary-main:#3ca6b6;--palette-primary-light:#6bc4d1;--palette-primary-dark:#2a7a86;--palette-on-primary:#ffffff;--palette-secondary-main:#be765e;--palette-secondary-light:#d4987e;--palette-secondary-dark:#9a5742;--palette-on-secondary:#ffffff;--palette-surface-main:#fefcf8;--palette-surface-variant:#f5f0ea;--palette-surface-elevated:#ffffff;--palette-on-surface:#2c2520;--palette-background-main:#fffdf9;--palette-background-dark:#f8f4ed;--palette-background-overlay:rgba(255,253,249,0.95);--palette-on-background:#3d3530;--palette-header-bg-start:rgba(255,253,249,0.98);--palette-header-bg-end:rgba(255,253,249,0.95);--palette-header-collapsed-bg-start:rgba(255,253,249,0.99);--palette-header-collapsed-bg-end:rgba(255,253,249,0.96);--palette-text-primary:#2c2520;--palette-text-secondary:#5d5349;--palette-text-disabled:rgba(44,37,32,0.38);--palette-text-inverted:#ffffff;--palette-border-main:#d4cdc4;--palette-border-light:rgba(44,37,32,0.12);--palette-border-lighter:rgba(44,37,32,0.05);--palette-border-medium:#b8afa4;--palette-success-main:#10b981;--palette-success-light:#d1fae5;--palette-success-dark:#047857;--palette-success-border:#a7f3d0;--palette-error-main:#f43f5e;--palette-error-light:#ffe4e6;--palette-error-dark:#9f1239;--palette-on-error:#ffffff;--palette-error-border:#fecdd3;--palette-warning-main:#f59e0b;--palette-warning-light:#fef3c7;--palette-warning-dark:#d97706;--palette-on-warning:#000000;--palette-warning-border:#fde68a;--palette-info-main:#0284c7;--palette-info-light:#e0f2fe;--palette-info-dark:#075985;--palette-on-info:#ffffff;--palette-info-border:#7dd3fc;--palette-accent-main:#0a1a3e;--palette-accent-light:#1e3a73;--palette-accent-dark:#050d1f;--palette-on-accent:#ffffff;--palette-control-main:#2a7a86;--palette-control-light:#3ca6b6;--palette-control-text:#ffffff;--palette-control-border:#217380}html[data-palette="boutique"][data-theme="dark"]{--palette-primary-main:#6bc4d1;--palette-primary-light:#8fd5de;--palette-primary-dark:#3ca6b6;--palette-on-primary:#0a1a1d;--palette-secondary-main:#d4987e;--palette-secondary-light:#e3b9a4;--palette-secondary-dark:#be765e;--palette-on-secondary:#1a1210;--palette-surface-main:#1a1614;--palette-surface-variant:#252220;--palette-surface-elevated:#332f2c;--palette-on-surface:#f5f0ea;--palette-background-main:#0f0d0c;--palette-background-dark:#1a1614;--palette-background-overlay:rgba(26,22,20,0.95);--palette-on-background:#e8e4de;--palette-header-bg-start:rgba(15,13,12,0.98);--palette-header-bg-end:rgba(15,13,12,0.95);--palette-header-collapsed-bg-start:rgba(15,13,12,0.99);--palette-header-collapsed-bg-end:rgba(15,13,12,0.96);--palette-text-primary:#f5f0ea;--palette-text-secondary:#cdc5bc;--palette-text-disabled:rgba(245,240,234,0.38);--palette-text-inverted:#0f0d0c;--palette-border-main:#4a4440;--palette-border-light:rgba(245,240,234,0.12);--palette-border-lighter:rgba(245,240,234,0.05);--palette-border-medium:#3d3833;--palette-success-main:#34d399;--palette-success-light:#064e3b;--palette-success-dark:#10b981;--palette-success-border:#065f46;--palette-error-main:#fb7185;--palette-error-light:#4c0519;--palette-error-dark:#f43f5e;--palette-on-error:#ffffff;--palette-error-border:#881337;--palette-warning-main:#fbbf24;--palette-warning-light:#451a03;--palette-warning-dark:#f59e0b;--palette-on-warning:#1c1917;--palette-warning-border:#78350f;--palette-info-main:#38bdf8;--palette-info-light:#0c4a6e;--palette-info-dark:#0284c7;--palette-on-info:#ffffff;--palette-info-border:#075985;--palette-accent-main:#3b5ba3;--palette-accent-light:#5a7cc4;--palette-accent-dark:#1e3a73;--palette-on-accent:#ffffff;--palette-control-main:#6bc4d1;--palette-control-light:#8fd5de;--palette-control-text:#0a1a1d;--palette-control-border:#3ca6b6}
1
+ html[data-palette="boutique"]:not([data-theme="dark"]),html[data-palette="boutique"][data-theme="light"]{--palette-primary-main:#0e7490;--palette-primary-light:#0c6d80;--palette-primary-dark:#155e75;--palette-on-primary:#ffffff;--palette-secondary-main:#9a5742;--palette-secondary-light:#8b5a3a;--palette-secondary-dark:#78350f;--palette-on-secondary:#ffffff;--palette-surface-main:#fefcf8;--palette-surface-variant:#f5f0ea;--palette-surface-elevated:#ffffff;--palette-on-surface:#2c2520;--palette-background-main:#fffdf9;--palette-background-dark:#f8f4ed;--palette-background-overlay:rgba(255,253,249,0.95);--palette-on-background:#3d3530;--palette-header-bg-start:rgba(255,253,249,0.98);--palette-header-bg-end:rgba(255,253,249,0.95);--palette-header-collapsed-bg-start:rgba(255,253,249,0.99);--palette-header-collapsed-bg-end:rgba(255,253,249,0.96);--palette-text-primary:#2c2520;--palette-text-secondary:#5d5349;--palette-text-disabled:rgba(44,37,32,0.38);--palette-text-inverted:#ffffff;--palette-border-main:#d4cdc4;--palette-border-light:rgba(44,37,32,0.12);--palette-border-lighter:rgba(44,37,32,0.05);--palette-border-medium:#b8afa4;--palette-success-main:#15803d;--palette-success-light:#dcfce7;--palette-success-dark:#047857;--palette-success-border:#a7f3d0;--palette-error-main:#b91c1c;--palette-error-light:#fee2e2;--palette-error-dark:#9f1239;--palette-on-error:#ffffff;--palette-error-border:#fecdd3;--palette-warning-main:#92400e;--palette-warning-light:#fef3c7;--palette-warning-dark:#78350f;--palette-on-warning:#ffffff;--palette-warning-border:#fde68a;--palette-info-main:#0369a1;--palette-info-light:#e0f2fe;--palette-info-dark:#075985;--palette-on-info:#ffffff;--palette-info-border:#7dd3fc;--palette-accent-main:#0a1a3e;--palette-accent-light:#1e3a73;--palette-accent-dark:#050d1f;--palette-on-accent:#ffffff;--palette-control-main:#0e7490;--palette-control-light:#0c6d80;--palette-control-text:#ffffff;--palette-control-border:#155e75}html[data-palette="boutique"][data-theme="dark"]{--palette-primary-main:#6bc4d1;--palette-primary-light:#8fd5de;--palette-primary-dark:#3ca6b6;--palette-on-primary:#0a1a1d;--palette-secondary-main:#d4987e;--palette-secondary-light:#e3b9a4;--palette-secondary-dark:#be765e;--palette-on-secondary:#1a1210;--palette-surface-main:#1a1614;--palette-surface-variant:#252220;--palette-surface-elevated:#332f2c;--palette-on-surface:#f5f0ea;--palette-background-main:#0f0d0c;--palette-background-dark:#1a1614;--palette-background-overlay:rgba(26,22,20,0.95);--palette-on-background:#e8e4de;--palette-header-bg-start:rgba(15,13,12,0.98);--palette-header-bg-end:rgba(15,13,12,0.95);--palette-header-collapsed-bg-start:rgba(15,13,12,0.99);--palette-header-collapsed-bg-end:rgba(15,13,12,0.96);--palette-text-primary:#f5f0ea;--palette-text-secondary:#cdc5bc;--palette-text-disabled:rgba(245,240,234,0.38);--palette-text-inverted:#0f0d0c;--palette-border-main:#4a4440;--palette-border-light:rgba(245,240,234,0.12);--palette-border-lighter:rgba(245,240,234,0.05);--palette-border-medium:#3d3833;--palette-success-main:#34d399;--palette-success-light:#064e3b;--palette-success-dark:#10b981;--palette-success-border:#065f46;--palette-error-main:#fb7185;--palette-error-light:#4c0519;--palette-error-dark:#f43f5e;--palette-on-error:#ffffff;--palette-error-border:#881337;--palette-warning-main:#fbbf24;--palette-warning-light:#451a03;--palette-warning-dark:#f59e0b;--palette-on-warning:#1c1917;--palette-warning-border:#78350f;--palette-info-main:#38bdf8;--palette-info-light:#0c4a6e;--palette-info-dark:#0284c7;--palette-on-info:#ffffff;--palette-info-border:#075985;--palette-accent-main:#3b5ba3;--palette-accent-light:#5a7cc4;--palette-accent-dark:#1e3a73;--palette-on-accent:#ffffff;--palette-control-main:#6bc4d1;--palette-control-light:#8fd5de;--palette-control-text:#0a1a1d;--palette-control-border:#3ca6b6}
@@ -9,16 +9,16 @@
9
9
  /* ===== BOUTIQUE PALETTE - LIGHT THEME ===== */
10
10
  html[data-palette="boutique"]:not([data-theme="dark"]),
11
11
  html[data-palette="boutique"][data-theme="light"] {
12
- /* Primary palette - Teal */
13
- --palette-primary-main: #3ca6b6;
14
- --palette-primary-light: #6bc4d1;
15
- --palette-primary-dark: #2a7a86;
12
+ /* Primary palette - Teal (WCAG AA compliant) */
13
+ --palette-primary-main: #0e7490; /* cyan-700: 4.9:1 on white */
14
+ --palette-primary-light: #0c6d80; /* 6.0:1 white text on this bg */
15
+ --palette-primary-dark: #155e75; /* cyan-800: 8.1:1 on white */
16
16
  --palette-on-primary: #ffffff;
17
17
 
18
- /* Secondary palette - Bronze */
19
- --palette-secondary-main: #be765e;
20
- --palette-secondary-light: #d4987e;
21
- --palette-secondary-dark: #9a5742;
18
+ /* Secondary palette - Bronze (WCAG AA compliant) */
19
+ --palette-secondary-main: #9a5742; /* 5.5:1 on white */
20
+ --palette-secondary-light: #8b5a3a; /* 5.8:1 on white */
21
+ --palette-secondary-dark: #78350f; /* amber-900: 9.4:1 on white */
22
22
  --palette-on-secondary: #ffffff;
23
23
 
24
24
  /* Surface palette - Warm ivory */
@@ -51,30 +51,30 @@ html[data-palette="boutique"][data-theme="light"] {
51
51
  --palette-border-lighter: rgba(44, 37, 32, 0.05);
52
52
  --palette-border-medium: #b8afa4;
53
53
 
54
- /* Success palette - Emerald */
55
- --palette-success-main: #10b981;
56
- --palette-success-light: #d1fae5;
57
- --palette-success-dark: #047857;
54
+ /* Success palette - Emerald (WCAG AA compliant) */
55
+ --palette-success-main: #15803d; /* green-700: 5.1:1 on white */
56
+ --palette-success-light: #dcfce7; /* green-100 */
57
+ --palette-success-dark: #047857; /* 5.9:1 on white */
58
58
  --palette-success-border: #a7f3d0;
59
59
 
60
- /* Error palette - Rose */
61
- --palette-error-main: #f43f5e;
62
- --palette-error-light: #ffe4e6;
63
- --palette-error-dark: #9f1239;
60
+ /* Error palette - Rose (WCAG AA compliant) */
61
+ --palette-error-main: #b91c1c; /* red-700: 5.0:1 on white */
62
+ --palette-error-light: #fee2e2; /* red-100 */
63
+ --palette-error-dark: #9f1239; /* 7.3:1 on white */
64
64
  --palette-on-error: #ffffff;
65
65
  --palette-error-border: #fecdd3;
66
66
 
67
- /* Warning palette - Amber */
68
- --palette-warning-main: #f59e0b;
69
- --palette-warning-light: #fef3c7;
70
- --palette-warning-dark: #d97706;
71
- --palette-on-warning: #000000;
67
+ /* Warning palette - Amber (WCAG AA compliant) */
68
+ --palette-warning-main: #92400e; /* amber-800: 5.5:1 on amber-100 bg */
69
+ --palette-warning-light: #fef3c7; /* amber-100 */
70
+ --palette-warning-dark: #78350f; /* amber-900: 9.4:1 on white */
71
+ --palette-on-warning: #ffffff;
72
72
  --palette-warning-border: #fde68a;
73
73
 
74
- /* Info palette - Sky blue */
75
- --palette-info-main: #0284c7;
76
- --palette-info-light: #e0f2fe;
77
- --palette-info-dark: #075985;
74
+ /* Info palette - Sky blue (WCAG AA compliant) */
75
+ --palette-info-main: #0369a1; /* sky-700: 5.9:1 on white */
76
+ --palette-info-light: #e0f2fe; /* sky-100 */
77
+ --palette-info-dark: #075985; /* sky-800: 7.8:1 on white */
78
78
  --palette-on-info: #ffffff;
79
79
  --palette-info-border: #7dd3fc;
80
80
 
@@ -84,11 +84,11 @@ html[data-palette="boutique"][data-theme="light"] {
84
84
  --palette-accent-dark: #050d1f;
85
85
  --palette-on-accent: #ffffff;
86
86
 
87
- /* Control palette - Deep teal */
88
- --palette-control-main: #2a7a86;
89
- --palette-control-light: #3ca6b6;
87
+ /* Control palette - Deep teal (WCAG AA compliant) */
88
+ --palette-control-main: #0e7490; /* cyan-700: 4.9:1 on white */
89
+ --palette-control-light: #0c6d80; /* 6.0:1 white text on bg */
90
90
  --palette-control-text: #ffffff;
91
- --palette-control-border: #217380;
91
+ --palette-control-border: #155e75;
92
92
  }
93
93
 
94
94
  /* ===== BOUTIQUE PALETTE - DARK THEME ===== */
@@ -1 +1 @@
1
- html[data-palette="boutique"]:not([data-theme="dark"]),html[data-palette="boutique"][data-theme="light"]{--palette-primary-main:#3ca6b6;--palette-primary-light:#6bc4d1;--palette-primary-dark:#2a7a86;--palette-on-primary:#ffffff;--palette-secondary-main:#be765e;--palette-secondary-light:#d4987e;--palette-secondary-dark:#9a5742;--palette-on-secondary:#ffffff;--palette-surface-main:#fefcf8;--palette-surface-variant:#f5f0ea;--palette-surface-elevated:#ffffff;--palette-on-surface:#2c2520;--palette-background-main:#fffdf9;--palette-background-dark:#f8f4ed;--palette-background-overlay:rgba(255,253,249,0.95);--palette-on-background:#3d3530;--palette-header-bg-start:rgba(255,253,249,0.98);--palette-header-bg-end:rgba(255,253,249,0.95);--palette-header-collapsed-bg-start:rgba(255,253,249,0.99);--palette-header-collapsed-bg-end:rgba(255,253,249,0.96);--palette-text-primary:#2c2520;--palette-text-secondary:#5d5349;--palette-text-disabled:rgba(44,37,32,0.38);--palette-text-inverted:#ffffff;--palette-border-main:#d4cdc4;--palette-border-light:rgba(44,37,32,0.12);--palette-border-lighter:rgba(44,37,32,0.05);--palette-border-medium:#b8afa4;--palette-success-main:#10b981;--palette-success-light:#d1fae5;--palette-success-dark:#047857;--palette-success-border:#a7f3d0;--palette-error-main:#f43f5e;--palette-error-light:#ffe4e6;--palette-error-dark:#9f1239;--palette-on-error:#ffffff;--palette-error-border:#fecdd3;--palette-warning-main:#f59e0b;--palette-warning-light:#fef3c7;--palette-warning-dark:#d97706;--palette-on-warning:#000000;--palette-warning-border:#fde68a;--palette-info-main:#0284c7;--palette-info-light:#e0f2fe;--palette-info-dark:#075985;--palette-on-info:#ffffff;--palette-info-border:#7dd3fc;--palette-accent-main:#0a1a3e;--palette-accent-light:#1e3a73;--palette-accent-dark:#050d1f;--palette-on-accent:#ffffff;--palette-control-main:#2a7a86;--palette-control-light:#3ca6b6;--palette-control-text:#ffffff;--palette-control-border:#217380}html[data-palette="boutique"][data-theme="dark"]{--palette-primary-main:#6bc4d1;--palette-primary-light:#8fd5de;--palette-primary-dark:#3ca6b6;--palette-on-primary:#0a1a1d;--palette-secondary-main:#d4987e;--palette-secondary-light:#e3b9a4;--palette-secondary-dark:#be765e;--palette-on-secondary:#1a1210;--palette-surface-main:#1a1614;--palette-surface-variant:#252220;--palette-surface-elevated:#332f2c;--palette-on-surface:#f5f0ea;--palette-background-main:#0f0d0c;--palette-background-dark:#1a1614;--palette-background-overlay:rgba(26,22,20,0.95);--palette-on-background:#e8e4de;--palette-header-bg-start:rgba(15,13,12,0.98);--palette-header-bg-end:rgba(15,13,12,0.95);--palette-header-collapsed-bg-start:rgba(15,13,12,0.99);--palette-header-collapsed-bg-end:rgba(15,13,12,0.96);--palette-text-primary:#f5f0ea;--palette-text-secondary:#cdc5bc;--palette-text-disabled:rgba(245,240,234,0.38);--palette-text-inverted:#0f0d0c;--palette-border-main:#4a4440;--palette-border-light:rgba(245,240,234,0.12);--palette-border-lighter:rgba(245,240,234,0.05);--palette-border-medium:#3d3833;--palette-success-main:#34d399;--palette-success-light:#064e3b;--palette-success-dark:#10b981;--palette-success-border:#065f46;--palette-error-main:#fb7185;--palette-error-light:#4c0519;--palette-error-dark:#f43f5e;--palette-on-error:#ffffff;--palette-error-border:#881337;--palette-warning-main:#fbbf24;--palette-warning-light:#451a03;--palette-warning-dark:#f59e0b;--palette-on-warning:#1c1917;--palette-warning-border:#78350f;--palette-info-main:#38bdf8;--palette-info-light:#0c4a6e;--palette-info-dark:#0284c7;--palette-on-info:#ffffff;--palette-info-border:#075985;--palette-accent-main:#3b5ba3;--palette-accent-light:#5a7cc4;--palette-accent-dark:#1e3a73;--palette-on-accent:#ffffff;--palette-control-main:#6bc4d1;--palette-control-light:#8fd5de;--palette-control-text:#0a1a1d;--palette-control-border:#3ca6b6}
1
+ html[data-palette="boutique"]:not([data-theme="dark"]),html[data-palette="boutique"][data-theme="light"]{--palette-primary-main:#0e7490;--palette-primary-light:#0c6d80;--palette-primary-dark:#155e75;--palette-on-primary:#ffffff;--palette-secondary-main:#9a5742;--palette-secondary-light:#8b5a3a;--palette-secondary-dark:#78350f;--palette-on-secondary:#ffffff;--palette-surface-main:#fefcf8;--palette-surface-variant:#f5f0ea;--palette-surface-elevated:#ffffff;--palette-on-surface:#2c2520;--palette-background-main:#fffdf9;--palette-background-dark:#f8f4ed;--palette-background-overlay:rgba(255,253,249,0.95);--palette-on-background:#3d3530;--palette-header-bg-start:rgba(255,253,249,0.98);--palette-header-bg-end:rgba(255,253,249,0.95);--palette-header-collapsed-bg-start:rgba(255,253,249,0.99);--palette-header-collapsed-bg-end:rgba(255,253,249,0.96);--palette-text-primary:#2c2520;--palette-text-secondary:#5d5349;--palette-text-disabled:rgba(44,37,32,0.38);--palette-text-inverted:#ffffff;--palette-border-main:#d4cdc4;--palette-border-light:rgba(44,37,32,0.12);--palette-border-lighter:rgba(44,37,32,0.05);--palette-border-medium:#b8afa4;--palette-success-main:#15803d;--palette-success-light:#dcfce7;--palette-success-dark:#047857;--palette-success-border:#a7f3d0;--palette-error-main:#b91c1c;--palette-error-light:#fee2e2;--palette-error-dark:#9f1239;--palette-on-error:#ffffff;--palette-error-border:#fecdd3;--palette-warning-main:#92400e;--palette-warning-light:#fef3c7;--palette-warning-dark:#78350f;--palette-on-warning:#ffffff;--palette-warning-border:#fde68a;--palette-info-main:#0369a1;--palette-info-light:#e0f2fe;--palette-info-dark:#075985;--palette-on-info:#ffffff;--palette-info-border:#7dd3fc;--palette-accent-main:#0a1a3e;--palette-accent-light:#1e3a73;--palette-accent-dark:#050d1f;--palette-on-accent:#ffffff;--palette-control-main:#0e7490;--palette-control-light:#0c6d80;--palette-control-text:#ffffff;--palette-control-border:#155e75}html[data-palette="boutique"][data-theme="dark"]{--palette-primary-main:#6bc4d1;--palette-primary-light:#8fd5de;--palette-primary-dark:#3ca6b6;--palette-on-primary:#0a1a1d;--palette-secondary-main:#d4987e;--palette-secondary-light:#e3b9a4;--palette-secondary-dark:#be765e;--palette-on-secondary:#1a1210;--palette-surface-main:#1a1614;--palette-surface-variant:#252220;--palette-surface-elevated:#332f2c;--palette-on-surface:#f5f0ea;--palette-background-main:#0f0d0c;--palette-background-dark:#1a1614;--palette-background-overlay:rgba(26,22,20,0.95);--palette-on-background:#e8e4de;--palette-header-bg-start:rgba(15,13,12,0.98);--palette-header-bg-end:rgba(15,13,12,0.95);--palette-header-collapsed-bg-start:rgba(15,13,12,0.99);--palette-header-collapsed-bg-end:rgba(15,13,12,0.96);--palette-text-primary:#f5f0ea;--palette-text-secondary:#cdc5bc;--palette-text-disabled:rgba(245,240,234,0.38);--palette-text-inverted:#0f0d0c;--palette-border-main:#4a4440;--palette-border-light:rgba(245,240,234,0.12);--palette-border-lighter:rgba(245,240,234,0.05);--palette-border-medium:#3d3833;--palette-success-main:#34d399;--palette-success-light:#064e3b;--palette-success-dark:#10b981;--palette-success-border:#065f46;--palette-error-main:#fb7185;--palette-error-light:#4c0519;--palette-error-dark:#f43f5e;--palette-on-error:#ffffff;--palette-error-border:#881337;--palette-warning-main:#fbbf24;--palette-warning-light:#451a03;--palette-warning-dark:#f59e0b;--palette-on-warning:#1c1917;--palette-warning-border:#78350f;--palette-info-main:#38bdf8;--palette-info-light:#0c4a6e;--palette-info-dark:#0284c7;--palette-on-info:#ffffff;--palette-info-border:#075985;--palette-accent-main:#3b5ba3;--palette-accent-light:#5a7cc4;--palette-accent-dark:#1e3a73;--palette-on-accent:#ffffff;--palette-control-main:#6bc4d1;--palette-control-light:#8fd5de;--palette-control-text:#0a1a1d;--palette-control-border:#3ca6b6}
@@ -18,7 +18,6 @@ export declare class FormFieldModel extends ViewSchema {
18
18
  multiline?: boolean;
19
19
  rows?: number;
20
20
  placeholder?: string;
21
- name?: string;
22
21
  }
23
22
  export default FormFieldModel;
24
23
  //# sourceMappingURL=FormFieldSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/FormFieldSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,qBACa,cAAe,SAAQ,UAAU;IAS5C,KAAK,EAAG,MAAM,CAAC;IAUf,KAAK,EAAG,MAAM,GAAG,MAAM,CAAC;IAUxB,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC;IAWxD,UAAU,CAAC,EAAE,MAAM,CAAC;IAUpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAUnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAUnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAWnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAUvB,SAAS,CAAC,EAAE,OAAO,CAAC;IAUpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAYpB,IAAI,CAAC,EAAE,MAAM,CAAC;IAWd,WAAW,CAAC,EAAE,MAAM,CAAC;IAWrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"FormFieldSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/FormFieldSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,qBACa,cAAe,SAAQ,UAAU;IAS5C,KAAK,EAAG,MAAM,CAAC;IAUf,KAAK,EAAG,MAAM,GAAG,MAAM,CAAC;IAUxB,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC;IAWxD,UAAU,CAAC,EAAE,MAAM,CAAC;IAUpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAUnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAUnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAWnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAUvB,SAAS,CAAC,EAAE,OAAO,CAAC;IAUpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAYpB,IAAI,CAAC,EAAE,MAAM,CAAC;IAWd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAe,cAAc,CAAC"}
@@ -15,7 +15,6 @@ export declare class FormSelectModel extends ViewSchema {
15
15
  fullWidth?: boolean;
16
16
  size?: 'small' | 'medium';
17
17
  placeholder?: string;
18
- name?: string;
19
18
  }
20
19
  export default FormSelectModel;
21
20
  //# sourceMappingURL=FormSelectSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormSelectSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/FormSelectSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,qBACa,eAAgB,SAAQ,UAAU;IAU7C,KAAK,CAAC,EAAE,MAAM,CAAC;IAUf,KAAK,EAAG,MAAM,GAAG,MAAM,CAAC;IAUxB,OAAO,EAAG,MAAM,CAAC;IAWjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAUpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAUnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAUnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAUpB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAW1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAWrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"FormSelectSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/FormSelectSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,kBAAkB,CAAC;AAE1B,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,qBACa,eAAgB,SAAQ,UAAU;IAU7C,KAAK,CAAC,EAAE,MAAM,CAAC;IAUf,KAAK,EAAG,MAAM,GAAG,MAAM,CAAC;IAUxB,OAAO,EAAG,MAAM,CAAC;IAWjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAUpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAUnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAUnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAUpB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAW1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAe,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@qwickapps/react-framework",
3
- "version": "1.9.1",
3
+ "version": "1.9.2",
4
4
  "description": "Complete React framework with responsive navigation, flexible layouts, theming system, and reusable components for building modern applications.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "bin": {
9
- "create": "scripts/create-qwickapps-project.js"
9
+ "create": "./scripts/create-qwickapps-project.js"
10
10
  },
11
11
  "exports": {
12
12
  ".": {
@@ -180,7 +180,7 @@
180
180
  },
181
181
  "repository": {
182
182
  "type": "git",
183
- "url": "git+https://github.com/qwickapps/react-framework.git"
183
+ "url": "https://github.com/qwickapps/react-framework.git"
184
184
  },
185
185
  "homepage": "https://github.com/qwickapps/react-framework#readme"
186
186
  }
@@ -137,13 +137,7 @@ function HtmlView({
137
137
  ...styleProps.sx
138
138
  }}
139
139
  >
140
- {Array.isArray(components)
141
- ? components.map((child, idx) =>
142
- React.isValidElement(child) && child.key == null
143
- ? React.cloneElement(child as ReactElement, { key: `html-child-${idx}` })
144
- : child
145
- )
146
- : components}
140
+ {components}
147
141
  </Box>
148
142
  );
149
143
 
@@ -233,7 +233,7 @@ function LogoView({
233
233
  setCalculatedBadgePosition(badgePos);
234
234
  setSvgWidth(requiredWidth);
235
235
  }
236
- }, [name, badge, badgeOffset, calculateBadgePosition, fontSize, height, parseNameParts]);
236
+ }, [name, badge, badgeOffset, calculateBadgePosition, fontSize, height, parseNameParts, svgWidth]);
237
237
 
238
238
  // Determine CSS class for variant
239
239
  let variantClass = '';
@@ -472,12 +472,12 @@ a {
472
472
  transition: color 0.2s ease;
473
473
  }
474
474
 
475
- a:hover:not(.MuiButton-root) {
475
+ a:hover {
476
476
  color: var(--theme-link-hover);
477
477
  text-decoration: underline;
478
478
  }
479
479
 
480
- a:visited:not(.MuiButton-root) {
480
+ a:visited {
481
481
  color: var(--theme-link-color);
482
482
  opacity: 0.8;
483
483
  }
@@ -458,9 +458,6 @@
458
458
  background: var(--scaffold-background);
459
459
  transition: padding 0.3s ease;
460
460
  box-sizing: border-box;
461
- /* Establish stacking context below app bar to prevent content bleed-through on scroll (GH-1) */
462
- position: relative;
463
- z-index: 1;
464
461
  }
465
462
 
466
463
  /* =================== ANIMATIONS =================== */
@@ -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';
@@ -29,7 +28,6 @@ export { default as FeatureCard } from './FeatureCard';
29
28
  export { default as CardListGrid } from './CardListGrid';
30
29
 
31
30
  export type { HeroBlockProps } from './HeroBlock';
32
- export type { HeroSlideshowProps, HeroSlide } from './HeroSlideshow';
33
31
  export type { CodeProps } from './Code';
34
32
  export type { ArticleProps } from './Article';
35
33
  export type { ContentProps } from './Content';
@@ -40,8 +40,6 @@ export interface FormFieldProps extends ViewProps, SchemaProps<typeof FormFieldM
40
40
  endAdornment?: React.ReactNode;
41
41
  /** Additional input props */
42
42
  inputProps?: unknown;
43
- /** Show error state styling */
44
- error?: boolean;
45
43
  }
46
44
 
47
45
  /**
@@ -62,11 +60,9 @@ function FormFieldView({
62
60
  multiline = false,
63
61
  rows,
64
62
  placeholder,
65
- name,
66
63
  startAdornment,
67
64
  endAdornment,
68
65
  inputProps,
69
- error,
70
66
  // Exclude ViewProps that conflict with MUI FormControl types
71
67
  margin: _margin,
72
68
  marginTop: _marginTop,
@@ -132,7 +128,6 @@ function FormFieldView({
132
128
  return (
133
129
  <FormControl
134
130
  fullWidth={fullWidth}
135
- error={error}
136
131
  {...restProps}
137
132
  >
138
133
  <InputLabel htmlFor={fieldId} sx={labelStyles} shrink>
@@ -141,7 +136,6 @@ function FormFieldView({
141
136
 
142
137
  <Input
143
138
  id={fieldId}
144
- name={name}
145
139
  type={type}
146
140
  value={value}
147
141
  onChange={handleChange}
@@ -38,8 +38,6 @@ export interface FormSelectProps extends ViewProps, SchemaProps<typeof FormSelec
38
38
  onChange: (value: string | number) => void;
39
39
  /** Options array (runtime prop, overrides schema) */
40
40
  options: FormSelectOption[];
41
- /** Show error state styling */
42
- error?: boolean;
43
41
  }
44
42
 
45
43
  /**
@@ -56,8 +54,6 @@ function FormSelectView({
56
54
  fullWidth = true,
57
55
  size = 'small',
58
56
  placeholder,
59
- name,
60
- error,
61
57
  // Exclude ViewProps that conflict with MUI FormControl types
62
58
  margin: _margin,
63
59
  marginTop: _marginTop,
@@ -103,7 +99,6 @@ function FormSelectView({
103
99
  <FormControl
104
100
  fullWidth={fullWidth}
105
101
  size={size}
106
- error={error}
107
102
  {...restProps}
108
103
  >
109
104
  {label && (
@@ -113,7 +108,6 @@ function FormSelectView({
113
108
  )}
114
109
 
115
110
  <Select
116
- name={name}
117
111
  value={value}
118
112
  onChange={handleChange}
119
113
  disabled={disabled}
@@ -55,22 +55,22 @@ const GridCellWrapper: React.FC<GridCellWrapperProps> = ({
55
55
  ...gridProps
56
56
  }) => {
57
57
  // If fullWidth is true, force size=12; otherwise build responsive size object for MUI v6
58
- const responsiveSizing = fullWidth
58
+ const responsiveSizing = fullWidth
59
59
  ? { size: 12 }
60
60
  : (() => {
61
- const sizeConfig: Partial<Record<'xs' | 'sm' | 'md' | 'lg' | 'xl', number | 'auto'>> = {};
61
+ const sizeConfig: unknown = {};
62
62
  if (xs !== undefined) sizeConfig.xs = xs;
63
63
  if (sm !== undefined) sizeConfig.sm = sm;
64
64
  if (md !== undefined) sizeConfig.md = md;
65
65
  if (lg !== undefined) sizeConfig.lg = lg;
66
66
  if (xl !== undefined) sizeConfig.xl = xl;
67
-
67
+
68
68
  // If only one value provided, use it as a simple size value
69
69
  const definedBreakpoints = Object.keys(sizeConfig);
70
70
  if (definedBreakpoints.length === 1 && xs !== undefined && sm === undefined && md === undefined && lg === undefined && xl === undefined) {
71
71
  return { size: xs };
72
72
  }
73
-
73
+
74
74
  return { size: sizeConfig };
75
75
  })();
76
76
 
@@ -9,16 +9,16 @@
9
9
  /* ===== BOUTIQUE PALETTE - LIGHT THEME ===== */
10
10
  html[data-palette="boutique"]:not([data-theme="dark"]),
11
11
  html[data-palette="boutique"][data-theme="light"] {
12
- /* Primary palette - Teal */
13
- --palette-primary-main: #3ca6b6;
14
- --palette-primary-light: #6bc4d1;
15
- --palette-primary-dark: #2a7a86;
12
+ /* Primary palette - Teal (WCAG AA compliant) */
13
+ --palette-primary-main: #0e7490; /* cyan-700: 4.9:1 on white */
14
+ --palette-primary-light: #0c6d80; /* 6.0:1 white text on this bg */
15
+ --palette-primary-dark: #155e75; /* cyan-800: 8.1:1 on white */
16
16
  --palette-on-primary: #ffffff;
17
17
 
18
- /* Secondary palette - Bronze */
19
- --palette-secondary-main: #be765e;
20
- --palette-secondary-light: #d4987e;
21
- --palette-secondary-dark: #9a5742;
18
+ /* Secondary palette - Bronze (WCAG AA compliant) */
19
+ --palette-secondary-main: #9a5742; /* 5.5:1 on white */
20
+ --palette-secondary-light: #8b5a3a; /* 5.8:1 on white */
21
+ --palette-secondary-dark: #78350f; /* amber-900: 9.4:1 on white */
22
22
  --palette-on-secondary: #ffffff;
23
23
 
24
24
  /* Surface palette - Warm ivory */
@@ -51,30 +51,30 @@ html[data-palette="boutique"][data-theme="light"] {
51
51
  --palette-border-lighter: rgba(44, 37, 32, 0.05);
52
52
  --palette-border-medium: #b8afa4;
53
53
 
54
- /* Success palette - Emerald */
55
- --palette-success-main: #10b981;
56
- --palette-success-light: #d1fae5;
57
- --palette-success-dark: #047857;
54
+ /* Success palette - Emerald (WCAG AA compliant) */
55
+ --palette-success-main: #15803d; /* green-700: 5.1:1 on white */
56
+ --palette-success-light: #dcfce7; /* green-100 */
57
+ --palette-success-dark: #047857; /* 5.9:1 on white */
58
58
  --palette-success-border: #a7f3d0;
59
59
 
60
- /* Error palette - Rose */
61
- --palette-error-main: #f43f5e;
62
- --palette-error-light: #ffe4e6;
63
- --palette-error-dark: #9f1239;
60
+ /* Error palette - Rose (WCAG AA compliant) */
61
+ --palette-error-main: #b91c1c; /* red-700: 5.0:1 on white */
62
+ --palette-error-light: #fee2e2; /* red-100 */
63
+ --palette-error-dark: #9f1239; /* 7.3:1 on white */
64
64
  --palette-on-error: #ffffff;
65
65
  --palette-error-border: #fecdd3;
66
66
 
67
- /* Warning palette - Amber */
68
- --palette-warning-main: #f59e0b;
69
- --palette-warning-light: #fef3c7;
70
- --palette-warning-dark: #d97706;
71
- --palette-on-warning: #000000;
67
+ /* Warning palette - Amber (WCAG AA compliant) */
68
+ --palette-warning-main: #92400e; /* amber-800: 5.5:1 on amber-100 bg */
69
+ --palette-warning-light: #fef3c7; /* amber-100 */
70
+ --palette-warning-dark: #78350f; /* amber-900: 9.4:1 on white */
71
+ --palette-on-warning: #ffffff;
72
72
  --palette-warning-border: #fde68a;
73
73
 
74
- /* Info palette - Sky blue */
75
- --palette-info-main: #0284c7;
76
- --palette-info-light: #e0f2fe;
77
- --palette-info-dark: #075985;
74
+ /* Info palette - Sky blue (WCAG AA compliant) */
75
+ --palette-info-main: #0369a1; /* sky-700: 5.9:1 on white */
76
+ --palette-info-light: #e0f2fe; /* sky-100 */
77
+ --palette-info-dark: #075985; /* sky-800: 7.8:1 on white */
78
78
  --palette-on-info: #ffffff;
79
79
  --palette-info-border: #7dd3fc;
80
80
 
@@ -84,11 +84,11 @@ html[data-palette="boutique"][data-theme="light"] {
84
84
  --palette-accent-dark: #050d1f;
85
85
  --palette-on-accent: #ffffff;
86
86
 
87
- /* Control palette - Deep teal */
88
- --palette-control-main: #2a7a86;
89
- --palette-control-light: #3ca6b6;
87
+ /* Control palette - Deep teal (WCAG AA compliant) */
88
+ --palette-control-main: #0e7490; /* cyan-700: 4.9:1 on white */
89
+ --palette-control-light: #0c6d80; /* 6.0:1 white text on bg */
90
90
  --palette-control-text: #ffffff;
91
- --palette-control-border: #217380;
91
+ --palette-control-border: #155e75;
92
92
  }
93
93
 
94
94
  /* ===== BOUTIQUE PALETTE - DARK THEME ===== */