@qwickapps/react-framework 1.3.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 (441) hide show
  1. package/LICENSE +44 -0
  2. package/README.md +794 -0
  3. package/dist/components/AccessibilityChecker.d.ts +12 -0
  4. package/dist/components/AccessibilityChecker.d.ts.map +1 -0
  5. package/dist/components/Html.d.ts +48 -0
  6. package/dist/components/Html.d.ts.map +1 -0
  7. package/dist/components/Logo.d.ts +79 -0
  8. package/dist/components/Logo.d.ts.map +1 -0
  9. package/dist/components/Markdown.d.ts +47 -0
  10. package/dist/components/Markdown.d.ts.map +1 -0
  11. package/dist/components/QwickApp.d.ts +56 -0
  12. package/dist/components/QwickApp.d.ts.map +1 -0
  13. package/dist/components/QwickAppsLogo.d.ts +25 -0
  14. package/dist/components/QwickAppsLogo.d.ts.map +1 -0
  15. package/dist/components/ResponsiveMenu.d.ts +38 -0
  16. package/dist/components/ResponsiveMenu.d.ts.map +1 -0
  17. package/dist/components/SafeSpan.d.ts +23 -0
  18. package/dist/components/SafeSpan.d.ts.map +1 -0
  19. package/dist/components/Scaffold.d.ts +57 -0
  20. package/dist/components/Scaffold.d.ts.map +1 -0
  21. package/dist/components/blocks/Article.d.ts +23 -0
  22. package/dist/components/blocks/Article.d.ts.map +1 -0
  23. package/dist/components/blocks/CardListGrid.d.ts +23 -0
  24. package/dist/components/blocks/CardListGrid.d.ts.map +1 -0
  25. package/dist/components/blocks/Code.d.ts +21 -0
  26. package/dist/components/blocks/Code.d.ts.map +1 -0
  27. package/dist/components/blocks/Content.d.ts +24 -0
  28. package/dist/components/blocks/Content.d.ts.map +1 -0
  29. package/dist/components/blocks/CoverImageHeader.d.ts +44 -0
  30. package/dist/components/blocks/CoverImageHeader.d.ts.map +1 -0
  31. package/dist/components/blocks/FeatureCard.d.ts +66 -0
  32. package/dist/components/blocks/FeatureCard.d.ts.map +1 -0
  33. package/dist/components/blocks/FeatureGrid.d.ts +48 -0
  34. package/dist/components/blocks/FeatureGrid.d.ts.map +1 -0
  35. package/dist/components/blocks/Footer.d.ts +56 -0
  36. package/dist/components/blocks/Footer.d.ts.map +1 -0
  37. package/dist/components/blocks/HeroBlock.d.ts +33 -0
  38. package/dist/components/blocks/HeroBlock.d.ts.map +1 -0
  39. package/dist/components/blocks/PageBannerHeader.d.ts +30 -0
  40. package/dist/components/blocks/PageBannerHeader.d.ts.map +1 -0
  41. package/dist/components/blocks/ProductCard.d.ts +57 -0
  42. package/dist/components/blocks/ProductCard.d.ts.map +1 -0
  43. package/dist/components/blocks/Section.d.ts +40 -0
  44. package/dist/components/blocks/Section.d.ts.map +1 -0
  45. package/dist/components/blocks/index.d.ts +37 -0
  46. package/dist/components/blocks/index.d.ts.map +1 -0
  47. package/dist/components/buttons/Button.d.ts +38 -0
  48. package/dist/components/buttons/Button.d.ts.map +1 -0
  49. package/dist/components/buttons/PaletteSwitcher.d.ts +24 -0
  50. package/dist/components/buttons/PaletteSwitcher.d.ts.map +1 -0
  51. package/dist/components/buttons/ThemeSwitcher.d.ts +24 -0
  52. package/dist/components/buttons/ThemeSwitcher.d.ts.map +1 -0
  53. package/dist/components/buttons/index.d.ts +11 -0
  54. package/dist/components/buttons/index.d.ts.map +1 -0
  55. package/dist/components/forms/FormBlock.d.ts +45 -0
  56. package/dist/components/forms/FormBlock.d.ts.map +1 -0
  57. package/dist/components/forms/index.d.ts +8 -0
  58. package/dist/components/forms/index.d.ts.map +1 -0
  59. package/dist/components/index.d.ts +32 -0
  60. package/dist/components/index.d.ts.map +1 -0
  61. package/dist/components/input/ChoiceInputField.d.ts +30 -0
  62. package/dist/components/input/ChoiceInputField.d.ts.map +1 -0
  63. package/dist/components/input/HtmlInputField.d.ts +29 -0
  64. package/dist/components/input/HtmlInputField.d.ts.map +1 -0
  65. package/dist/components/input/SelectInputField.d.ts +29 -0
  66. package/dist/components/input/SelectInputField.d.ts.map +1 -0
  67. package/dist/components/input/TextField.d.ts +18 -0
  68. package/dist/components/input/TextField.d.ts.map +1 -0
  69. package/dist/components/input/TextInputField.d.ts +32 -0
  70. package/dist/components/input/TextInputField.d.ts.map +1 -0
  71. package/dist/components/input/index.d.ts +17 -0
  72. package/dist/components/input/index.d.ts.map +1 -0
  73. package/dist/components/layout/GridCell.d.ts +16 -0
  74. package/dist/components/layout/GridCell.d.ts.map +1 -0
  75. package/dist/components/layout/GridCellWrapper.d.ts +46 -0
  76. package/dist/components/layout/GridCellWrapper.d.ts.map +1 -0
  77. package/dist/components/layout/GridLayout.d.ts +38 -0
  78. package/dist/components/layout/GridLayout.d.ts.map +1 -0
  79. package/dist/components/layout/index.d.ts +12 -0
  80. package/dist/components/layout/index.d.ts.map +1 -0
  81. package/dist/components/menu/Menu.d.ts +1 -0
  82. package/dist/components/menu/Menu.d.ts.map +1 -0
  83. package/dist/components/menu/MenuItem.d.ts +31 -0
  84. package/dist/components/menu/MenuItem.d.ts.map +1 -0
  85. package/dist/components/menu/index.d.ts +7 -0
  86. package/dist/components/menu/index.d.ts.map +1 -0
  87. package/dist/components/pages/FormPage.d.ts +66 -0
  88. package/dist/components/pages/FormPage.d.ts.map +1 -0
  89. package/dist/components/pages/Page.d.ts +124 -0
  90. package/dist/components/pages/Page.d.ts.map +1 -0
  91. package/dist/components/pages/index.d.ts +11 -0
  92. package/dist/components/pages/index.d.ts.map +1 -0
  93. package/dist/contexts/DataContext.d.ts +139 -0
  94. package/dist/contexts/DataContext.d.ts.map +1 -0
  95. package/dist/contexts/DimensionsContext.d.ts +42 -0
  96. package/dist/contexts/DimensionsContext.d.ts.map +1 -0
  97. package/dist/contexts/PaletteContext.d.ts +53 -0
  98. package/dist/contexts/PaletteContext.d.ts.map +1 -0
  99. package/dist/contexts/QwickAppContext.d.ts +71 -0
  100. package/dist/contexts/QwickAppContext.d.ts.map +1 -0
  101. package/dist/contexts/ThemeContext.d.ts +65 -0
  102. package/dist/contexts/ThemeContext.d.ts.map +1 -0
  103. package/dist/contexts/index.d.ts +9 -0
  104. package/dist/contexts/index.d.ts.map +1 -0
  105. package/dist/hooks/index.d.ts +10 -0
  106. package/dist/hooks/index.d.ts.map +1 -0
  107. package/dist/hooks/useBaseProps.d.ts +101 -0
  108. package/dist/hooks/useBaseProps.d.ts.map +1 -0
  109. package/dist/hooks/useDataBinding.d.ts +22 -0
  110. package/dist/hooks/useDataBinding.d.ts.map +1 -0
  111. package/dist/index.css +1 -0
  112. package/dist/index.d.ts +8 -0
  113. package/dist/index.d.ts.map +1 -0
  114. package/dist/index.esm.css +1 -0
  115. package/dist/index.esm.js +24143 -0
  116. package/dist/index.js +24245 -0
  117. package/dist/palettes/PaletteAutumn.d.ts +10 -0
  118. package/dist/palettes/PaletteAutumn.d.ts.map +1 -0
  119. package/dist/palettes/PaletteCosmic.d.ts +10 -0
  120. package/dist/palettes/PaletteCosmic.d.ts.map +1 -0
  121. package/dist/palettes/PaletteDefault.d.ts +10 -0
  122. package/dist/palettes/PaletteDefault.d.ts.map +1 -0
  123. package/dist/palettes/PaletteOcean.d.ts +10 -0
  124. package/dist/palettes/PaletteOcean.d.ts.map +1 -0
  125. package/dist/palettes/PaletteSpring.d.ts +10 -0
  126. package/dist/palettes/PaletteSpring.d.ts.map +1 -0
  127. package/dist/palettes/PaletteWinter.d.ts +10 -0
  128. package/dist/palettes/PaletteWinter.d.ts.map +1 -0
  129. package/dist/palettes/index.d.ts +13 -0
  130. package/dist/palettes/index.d.ts.map +1 -0
  131. package/dist/schemas/ActionSchema.d.ts +21 -0
  132. package/dist/schemas/ActionSchema.d.ts.map +1 -0
  133. package/dist/schemas/ArticleSchema.d.ts +13 -0
  134. package/dist/schemas/ArticleSchema.d.ts.map +1 -0
  135. package/dist/schemas/Builders.d.ts +7 -0
  136. package/dist/schemas/Builders.d.ts.map +1 -0
  137. package/dist/schemas/ButtonSchema.d.ts +19 -0
  138. package/dist/schemas/ButtonSchema.d.ts.map +1 -0
  139. package/dist/schemas/CardListGridSchema.d.ts +17 -0
  140. package/dist/schemas/CardListGridSchema.d.ts.map +1 -0
  141. package/dist/schemas/ChoiceInputFieldSchema.d.ts +18 -0
  142. package/dist/schemas/ChoiceInputFieldSchema.d.ts.map +1 -0
  143. package/dist/schemas/CodeSchema.d.ts +18 -0
  144. package/dist/schemas/CodeSchema.d.ts.map +1 -0
  145. package/dist/schemas/ContentSchema.d.ts +20 -0
  146. package/dist/schemas/ContentSchema.d.ts.map +1 -0
  147. package/dist/schemas/CoverImageHeaderSchema.d.ts +28 -0
  148. package/dist/schemas/CoverImageHeaderSchema.d.ts.map +1 -0
  149. package/dist/schemas/FeatureCardSchema.d.ts +28 -0
  150. package/dist/schemas/FeatureCardSchema.d.ts.map +1 -0
  151. package/dist/schemas/FeatureGridSchema.d.ts +17 -0
  152. package/dist/schemas/FeatureGridSchema.d.ts.map +1 -0
  153. package/dist/schemas/FeatureItemSchema.d.ts +16 -0
  154. package/dist/schemas/FeatureItemSchema.d.ts.map +1 -0
  155. package/dist/schemas/FooterItemSchema.d.ts +15 -0
  156. package/dist/schemas/FooterItemSchema.d.ts.map +1 -0
  157. package/dist/schemas/FooterSchema.d.ts +20 -0
  158. package/dist/schemas/FooterSchema.d.ts.map +1 -0
  159. package/dist/schemas/FooterSectionSchema.d.ts +15 -0
  160. package/dist/schemas/FooterSectionSchema.d.ts.map +1 -0
  161. package/dist/schemas/FormBlockSchema.d.ts +19 -0
  162. package/dist/schemas/FormBlockSchema.d.ts.map +1 -0
  163. package/dist/schemas/HeaderActionSchema.d.ts +17 -0
  164. package/dist/schemas/HeaderActionSchema.d.ts.map +1 -0
  165. package/dist/schemas/HeroBlockSchema.d.ts +22 -0
  166. package/dist/schemas/HeroBlockSchema.d.ts.map +1 -0
  167. package/dist/schemas/HtmlInputFieldSchema.d.ts +18 -0
  168. package/dist/schemas/HtmlInputFieldSchema.d.ts.map +1 -0
  169. package/dist/schemas/MetadataItemSchema.d.ts +13 -0
  170. package/dist/schemas/MetadataItemSchema.d.ts.map +1 -0
  171. package/dist/schemas/PageBannerHeaderSchema.d.ts +28 -0
  172. package/dist/schemas/PageBannerHeaderSchema.d.ts.map +1 -0
  173. package/dist/schemas/PaletteSwitcherSchema.d.ts +16 -0
  174. package/dist/schemas/PaletteSwitcherSchema.d.ts.map +1 -0
  175. package/dist/schemas/ProductCardSchema.d.ts +39 -0
  176. package/dist/schemas/ProductCardSchema.d.ts.map +1 -0
  177. package/dist/schemas/SafeSpanSchema.d.ts +13 -0
  178. package/dist/schemas/SafeSpanSchema.d.ts.map +1 -0
  179. package/dist/schemas/SectionSchema.d.ts +17 -0
  180. package/dist/schemas/SectionSchema.d.ts.map +1 -0
  181. package/dist/schemas/SelectInputFieldSchema.d.ts +27 -0
  182. package/dist/schemas/SelectInputFieldSchema.d.ts.map +1 -0
  183. package/dist/schemas/TextInputFieldSchema.d.ts +22 -0
  184. package/dist/schemas/TextInputFieldSchema.d.ts.map +1 -0
  185. package/dist/schemas/ThemeSwitcherSchema.d.ts +19 -0
  186. package/dist/schemas/ThemeSwitcherSchema.d.ts.map +1 -0
  187. package/dist/schemas/index.d.ts +33 -0
  188. package/dist/schemas/index.d.ts.map +1 -0
  189. package/dist/schemas/types.d.ts +7 -0
  190. package/dist/schemas/types.d.ts.map +1 -0
  191. package/dist/templates/TemplateResolver.d.ts +52 -0
  192. package/dist/templates/TemplateResolver.d.ts.map +1 -0
  193. package/dist/templates/index.d.ts +7 -0
  194. package/dist/templates/index.d.ts.map +1 -0
  195. package/dist/tests/ConsoleWarningTest.d.ts +5 -0
  196. package/dist/tests/ConsoleWarningTest.d.ts.map +1 -0
  197. package/dist/tests/StorageKeyTest.d.ts +6 -0
  198. package/dist/tests/StorageKeyTest.d.ts.map +1 -0
  199. package/dist/tests/ThemeStorageKeyTest.d.ts +6 -0
  200. package/dist/tests/ThemeStorageKeyTest.d.ts.map +1 -0
  201. package/dist/types/CacheProvider.d.ts +18 -0
  202. package/dist/types/CacheProvider.d.ts.map +1 -0
  203. package/dist/types/ContentProxy.d.ts +47 -0
  204. package/dist/types/ContentProxy.d.ts.map +1 -0
  205. package/dist/types/DataBinding.d.ts +7 -0
  206. package/dist/types/DataBinding.d.ts.map +1 -0
  207. package/dist/types/DataProvider.d.ts +7 -0
  208. package/dist/types/DataProvider.d.ts.map +1 -0
  209. package/dist/types/DataTypes.d.ts +185 -0
  210. package/dist/types/DataTypes.d.ts.map +1 -0
  211. package/dist/types/TemplateProvider.d.ts +10 -0
  212. package/dist/types/TemplateProvider.d.ts.map +1 -0
  213. package/dist/types/TemplateResolver.d.ts +23 -0
  214. package/dist/types/TemplateResolver.d.ts.map +1 -0
  215. package/dist/types/index.d.ts +81 -0
  216. package/dist/types/index.d.ts.map +1 -0
  217. package/dist/utils/breakpoints.d.ts +35 -0
  218. package/dist/utils/breakpoints.d.ts.map +1 -0
  219. package/dist/utils/customPaletteManager.d.ts +8 -0
  220. package/dist/utils/customPaletteManager.d.ts.map +1 -0
  221. package/dist/utils/dimensions.d.ts +34 -0
  222. package/dist/utils/dimensions.d.ts.map +1 -0
  223. package/dist/utils/htmlTransform.d.ts +44 -0
  224. package/dist/utils/htmlTransform.d.ts.map +1 -0
  225. package/dist/utils/index.d.ts +15 -0
  226. package/dist/utils/index.d.ts.map +1 -0
  227. package/dist/utils/logger.d.ts +14 -0
  228. package/dist/utils/logger.d.ts.map +1 -0
  229. package/dist/utils/paletteUtils.d.ts +38 -0
  230. package/dist/utils/paletteUtils.d.ts.map +1 -0
  231. package/dist/utils/persistenceUtils.d.ts +31 -0
  232. package/dist/utils/persistenceUtils.d.ts.map +1 -0
  233. package/dist/utils/reactUtils.d.ts +24 -0
  234. package/dist/utils/reactUtils.d.ts.map +1 -0
  235. package/dist/utils/spacing.d.ts +34 -0
  236. package/dist/utils/spacing.d.ts.map +1 -0
  237. package/dist/utils/themePerformanceMonitor.d.ts +32 -0
  238. package/dist/utils/themePerformanceMonitor.d.ts.map +1 -0
  239. package/dist/utils/themeUtils.d.ts +27 -0
  240. package/dist/utils/themeUtils.d.ts.map +1 -0
  241. package/package.json +141 -0
  242. package/src/__tests__/components/Logo.test.js +172 -0
  243. package/src/__tests__/contexts/DataContext.test.js +505 -0
  244. package/src/__tests__/contexts/PaletteContext.test.js +115 -0
  245. package/src/__tests__/contexts/ThemeContext.test.js +123 -0
  246. package/src/__tests__/utils/paletteUtils.test.js +142 -0
  247. package/src/__tests__/utils/themeUtils.test.js +142 -0
  248. package/src/components/AccessibilityChecker.tsx +264 -0
  249. package/src/components/Html.tsx +191 -0
  250. package/src/components/Logo.css +217 -0
  251. package/src/components/Logo.tsx +370 -0
  252. package/src/components/Markdown.tsx +191 -0
  253. package/src/components/QwickApp.css +257 -0
  254. package/src/components/QwickApp.tsx +157 -0
  255. package/src/components/QwickAppsLogo.tsx +77 -0
  256. package/src/components/ResponsiveMenu.css +416 -0
  257. package/src/components/ResponsiveMenu.tsx +310 -0
  258. package/src/components/SafeSpan.tsx +128 -0
  259. package/src/components/Scaffold.css +541 -0
  260. package/src/components/Scaffold.tsx +463 -0
  261. package/src/components/__tests__/Article.test.tsx +419 -0
  262. package/src/components/__tests__/Button.test.tsx +702 -0
  263. package/src/components/__tests__/CardListGrid.test.tsx +478 -0
  264. package/src/components/__tests__/ChoiceInputField.test.tsx +864 -0
  265. package/src/components/__tests__/Code.test.tsx +595 -0
  266. package/src/components/__tests__/Content.integration.test.tsx +193 -0
  267. package/src/components/__tests__/Content.test.tsx +504 -0
  268. package/src/components/__tests__/CoverImageHeader.test.tsx +456 -0
  269. package/src/components/__tests__/FeatureCard.integration.test.tsx +384 -0
  270. package/src/components/__tests__/FeatureGrid.integration.test.tsx +364 -0
  271. package/src/components/__tests__/FeatureGrid.test.tsx +494 -0
  272. package/src/components/__tests__/Footer.test.tsx +544 -0
  273. package/src/components/__tests__/FormBlock.test.tsx +857 -0
  274. package/src/components/__tests__/HeroBlock.integration.test.tsx +272 -0
  275. package/src/components/__tests__/HeroBlock.test.tsx +463 -0
  276. package/src/components/__tests__/Html.test.tsx +174 -0
  277. package/src/components/__tests__/HtmlInputField.test.tsx +856 -0
  278. package/src/components/__tests__/Markdown.test.tsx +233 -0
  279. package/src/components/__tests__/PageBannerHeader.test.tsx +614 -0
  280. package/src/components/__tests__/PaletteSwitcher.test.tsx +864 -0
  281. package/src/components/__tests__/ProductCard.test.tsx +377 -0
  282. package/src/components/__tests__/SafeSpan.integration.test.tsx +123 -0
  283. package/src/components/__tests__/SafeSpan.simple.test.tsx +65 -0
  284. package/src/components/__tests__/SafeSpan.test.tsx +388 -0
  285. package/src/components/__tests__/Section.integration.test.tsx +288 -0
  286. package/src/components/__tests__/Section.test.tsx +494 -0
  287. package/src/components/__tests__/SelectInputField.test.tsx +886 -0
  288. package/src/components/__tests__/TextInputField.test.tsx +749 -0
  289. package/src/components/__tests__/ThemeSwitcher.test.tsx +777 -0
  290. package/src/components/blocks/Article.tsx +194 -0
  291. package/src/components/blocks/CardListGrid.tsx +132 -0
  292. package/src/components/blocks/Code.tsx +313 -0
  293. package/src/components/blocks/Content.tsx +265 -0
  294. package/src/components/blocks/CoverImageHeader.css +17 -0
  295. package/src/components/blocks/CoverImageHeader.tsx +435 -0
  296. package/src/components/blocks/FeatureCard.tsx +321 -0
  297. package/src/components/blocks/FeatureGrid.tsx +147 -0
  298. package/src/components/blocks/Footer.tsx +343 -0
  299. package/src/components/blocks/HeroBlock.tsx +280 -0
  300. package/src/components/blocks/PageBannerHeader.tsx +471 -0
  301. package/src/components/blocks/ProductCard.tsx +472 -0
  302. package/src/components/blocks/Section.tsx +209 -0
  303. package/src/components/blocks/index.ts +37 -0
  304. package/src/components/buttons/Button.tsx +233 -0
  305. package/src/components/buttons/PaletteSwitcher.tsx +268 -0
  306. package/src/components/buttons/ThemeSwitcher.tsx +283 -0
  307. package/src/components/buttons/index.ts +11 -0
  308. package/src/components/forms/FormBlock.tsx +291 -0
  309. package/src/components/forms/index.ts +7 -0
  310. package/src/components/index.ts +37 -0
  311. package/src/components/input/ChoiceInputField.tsx +188 -0
  312. package/src/components/input/HtmlInputField.tsx +326 -0
  313. package/src/components/input/SelectInputField.tsx +197 -0
  314. package/src/components/input/TextField.tsx +47 -0
  315. package/src/components/input/TextInputField.tsx +144 -0
  316. package/src/components/input/index.ts +17 -0
  317. package/src/components/layout/GridCell.tsx +46 -0
  318. package/src/components/layout/GridCellWrapper.tsx +87 -0
  319. package/src/components/layout/GridLayout.tsx +169 -0
  320. package/src/components/layout/index.ts +13 -0
  321. package/src/components/menu/Menu.tsx +0 -0
  322. package/src/components/menu/MenuItem.tsx +32 -0
  323. package/src/components/menu/index.ts +6 -0
  324. package/src/components/pages/FormPage.tsx +108 -0
  325. package/src/components/pages/Page.css +460 -0
  326. package/src/components/pages/Page.tsx +345 -0
  327. package/src/components/pages/index.ts +11 -0
  328. package/src/contexts/DataContext.tsx +355 -0
  329. package/src/contexts/DimensionsContext.tsx +154 -0
  330. package/src/contexts/PaletteContext.tsx +217 -0
  331. package/src/contexts/QwickAppContext.tsx +95 -0
  332. package/src/contexts/ThemeContext.tsx +376 -0
  333. package/src/contexts/index.ts +9 -0
  334. package/src/hooks/__tests__/useDataBinding.test.tsx.disabled +229 -0
  335. package/src/hooks/index.ts +11 -0
  336. package/src/hooks/useBaseProps.ts +267 -0
  337. package/src/hooks/useDataBinding.ts +77 -0
  338. package/src/index.ts +23 -0
  339. package/src/palettes/PaletteAutumn.css +172 -0
  340. package/src/palettes/PaletteAutumn.ts +16 -0
  341. package/src/palettes/PaletteCosmic.css +172 -0
  342. package/src/palettes/PaletteCosmic.ts +16 -0
  343. package/src/palettes/PaletteDefault.css +178 -0
  344. package/src/palettes/PaletteDefault.ts +17 -0
  345. package/src/palettes/PaletteOcean.css +172 -0
  346. package/src/palettes/PaletteOcean.ts +16 -0
  347. package/src/palettes/PaletteSpring.css +160 -0
  348. package/src/palettes/PaletteSpring.ts +16 -0
  349. package/src/palettes/PaletteWinter.css +172 -0
  350. package/src/palettes/PaletteWinter.ts +16 -0
  351. package/src/palettes/index.css +12 -0
  352. package/src/palettes/index.ts +29 -0
  353. package/src/schemas/ActionSchema.ts +140 -0
  354. package/src/schemas/ArticleSchema.ts +35 -0
  355. package/src/schemas/ButtonSchema.ts +99 -0
  356. package/src/schemas/CardListGridSchema.ts +102 -0
  357. package/src/schemas/ChoiceInputFieldSchema.ts +89 -0
  358. package/src/schemas/CodeSchema.ts +88 -0
  359. package/src/schemas/ContentSchema.ts +128 -0
  360. package/src/schemas/CoverImageHeaderSchema.ts +208 -0
  361. package/src/schemas/FeatureCardSchema.ts +161 -0
  362. package/src/schemas/FeatureGridSchema.ts +87 -0
  363. package/src/schemas/FeatureItemSchema.ts +68 -0
  364. package/src/schemas/FooterItemSchema.ts +57 -0
  365. package/src/schemas/FooterSchema.ts +116 -0
  366. package/src/schemas/FooterSectionSchema.ts +50 -0
  367. package/src/schemas/FormBlockSchema.ts +102 -0
  368. package/src/schemas/HeaderActionSchema.ts +83 -0
  369. package/src/schemas/HeroBlockSchema.ts +149 -0
  370. package/src/schemas/HtmlInputFieldSchema.ts +88 -0
  371. package/src/schemas/MetadataItemSchema.ts +35 -0
  372. package/src/schemas/PageBannerHeaderSchema.ts +206 -0
  373. package/src/schemas/PaletteSwitcherSchema.ts +66 -0
  374. package/src/schemas/ProductCardSchema.ts +264 -0
  375. package/src/schemas/SafeSpanSchema.ts +36 -0
  376. package/src/schemas/SectionSchema.ts +106 -0
  377. package/src/schemas/SelectInputFieldSchema.ts +137 -0
  378. package/src/schemas/TextInputFieldSchema.ts +129 -0
  379. package/src/schemas/ThemeSwitcherSchema.ts +97 -0
  380. package/src/schemas/__tests__/builders.test.ts +313 -0
  381. package/src/schemas/index.ts +34 -0
  382. package/src/setupTests.js +60 -0
  383. package/src/stories/Article.stories.tsx +549 -0
  384. package/src/stories/Button.stories.tsx +498 -0
  385. package/src/stories/CardListGrid.stories.tsx +539 -0
  386. package/src/stories/ChoiceInputField.stories.tsx +591 -0
  387. package/src/stories/Code.stories.tsx +711 -0
  388. package/src/stories/Content.stories.tsx +463 -0
  389. package/src/stories/CoverImageHeader.stories.tsx +794 -0
  390. package/src/stories/DataBinding.advanced.stories.tsx +548 -0
  391. package/src/stories/DataBinding.stories.tsx +452 -0
  392. package/src/stories/DataProvider.stories.tsx +1361 -0
  393. package/src/stories/FeatureCard.stories.tsx +642 -0
  394. package/src/stories/FeatureGrid.stories.tsx +669 -0
  395. package/src/stories/Footer.stories.tsx +724 -0
  396. package/src/stories/FormBlock.stories.tsx +834 -0
  397. package/src/stories/HeroBlock.stories.tsx +442 -0
  398. package/src/stories/Html.stories.tsx +264 -0
  399. package/src/stories/HtmlInputField.stories.tsx +558 -0
  400. package/src/stories/Introduction.stories.tsx +721 -0
  401. package/src/stories/LayoutBlocks.stories.tsx +382 -0
  402. package/src/stories/LayoutSystem.stories.tsx +253 -0
  403. package/src/stories/Logo.stories.tsx +400 -0
  404. package/src/stories/Markdown.stories.tsx +349 -0
  405. package/src/stories/Page.stories.tsx +762 -0
  406. package/src/stories/PageBannerHeader.stories.tsx +949 -0
  407. package/src/stories/PaletteSwitcher.stories.tsx +156 -0
  408. package/src/stories/ProductCard.stories.tsx +504 -0
  409. package/src/stories/QwickApp.stories.tsx +461 -0
  410. package/src/stories/ResponsiveMenu.stories.tsx +299 -0
  411. package/src/stories/SafeSpan.stories.tsx +612 -0
  412. package/src/stories/Section.stories.tsx +613 -0
  413. package/src/stories/SelectInputField.stories.tsx +605 -0
  414. package/src/stories/TextInputField.stories.tsx +526 -0
  415. package/src/stories/ThemeSwitcher.stories.tsx +170 -0
  416. package/src/stories/form/FormComponents.stories.tsx +588 -0
  417. package/src/templates/TemplateResolver.ts +156 -0
  418. package/src/templates/index.ts +6 -0
  419. package/src/tests/ConsoleWarningTest.tsx +30 -0
  420. package/src/tests/StorageKeyTest.tsx +110 -0
  421. package/src/tests/ThemeStorageKeyTest.tsx +114 -0
  422. package/src/types/CacheProvider.ts +14 -0
  423. package/src/types/ContentProxy.ts +99 -0
  424. package/src/types/DataTypes.ts +196 -0
  425. package/src/types/TemplateProvider.ts +9 -0
  426. package/src/types/TemplateResolver.ts +26 -0
  427. package/src/types/index.ts +99 -0
  428. package/src/utils/__tests__/createDataDrivenComponent.test.tsx.disabled +193 -0
  429. package/src/utils/__tests__/htmlTransform.test.tsx +255 -0
  430. package/src/utils/breakpoints.ts +87 -0
  431. package/src/utils/customPaletteManager.js +214 -0
  432. package/src/utils/dimensions.ts +147 -0
  433. package/src/utils/htmlTransform.tsx +323 -0
  434. package/src/utils/index.ts +16 -0
  435. package/src/utils/logger.ts +28 -0
  436. package/src/utils/paletteUtils.ts +78 -0
  437. package/src/utils/persistenceUtils.ts +107 -0
  438. package/src/utils/reactUtils.tsx +37 -0
  439. package/src/utils/spacing.ts +155 -0
  440. package/src/utils/themePerformanceMonitor.js +113 -0
  441. package/src/utils/themeUtils.ts +67 -0
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Base props hook for QwickApps React Framework components
3
+ *
4
+ * Provides standardized prop handling for all framework components
5
+ * including grid behavior, dimensions, spacing, and styling
6
+ *
7
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
8
+ */
9
+
10
+ import { useMemo } from 'react';
11
+ import { SxProps, Theme } from '@mui/material';
12
+ import { DimensionValue, resolveDimensions } from '../utils/dimensions';
13
+ import { SpacingValue, resolveSpacingProps } from '../utils/spacing';
14
+
15
+ /**
16
+ * Base props that all QwickApps components support
17
+ */
18
+ export interface BaseComponentProps {
19
+ // Grid behavior - when used inside ColumnLayout
20
+ span?: number | 'auto' | 'grow';
21
+ xs?: number | 'auto';
22
+ sm?: number | 'auto';
23
+ md?: number | 'auto';
24
+ lg?: number | 'auto';
25
+ xl?: number | 'auto';
26
+
27
+ // Common styling
28
+ className?: string;
29
+ sx?: SxProps<Theme>;
30
+ style?: React.CSSProperties;
31
+
32
+ // Dimensions with t-shirt sizing
33
+ width?: DimensionValue;
34
+ height?: DimensionValue;
35
+ minWidth?: DimensionValue;
36
+ minHeight?: DimensionValue;
37
+ maxWidth?: DimensionValue;
38
+ maxHeight?: DimensionValue;
39
+
40
+ // Spacing with t-shirt sizing
41
+ padding?: SpacingValue;
42
+ paddingTop?: SpacingValue;
43
+ paddingRight?: SpacingValue;
44
+ paddingBottom?: SpacingValue;
45
+ paddingLeft?: SpacingValue;
46
+ paddingX?: SpacingValue;
47
+ paddingY?: SpacingValue;
48
+ margin?: SpacingValue;
49
+ marginTop?: SpacingValue;
50
+ marginRight?: SpacingValue;
51
+ marginBottom?: SpacingValue;
52
+ marginLeft?: SpacingValue;
53
+ marginX?: SpacingValue;
54
+ marginY?: SpacingValue;
55
+
56
+ // Background
57
+ background?: string; // color, gradient, or theme path
58
+ backgroundImage?: string;
59
+ backgroundGradient?: string;
60
+
61
+ // Text alignment
62
+ textAlign?: 'left' | 'center' | 'right' | 'justify';
63
+
64
+ // Common HTML attributes
65
+ id?: string;
66
+ role?: string;
67
+ 'aria-label'?: string;
68
+ 'aria-labelledby'?: string;
69
+ 'aria-describedby'?: string;
70
+ 'data-testid'?: string;
71
+
72
+ // Common event handlers (generic for compatibility)
73
+ onClick?: React.MouseEventHandler<any>;
74
+ onMouseEnter?: React.MouseEventHandler<any>;
75
+ onMouseLeave?: React.MouseEventHandler<any>;
76
+ onFocus?: React.FocusEventHandler<any>;
77
+ onBlur?: React.FocusEventHandler<any>;
78
+ }
79
+
80
+ /**
81
+ * Marker to identify QwickApps components
82
+ */
83
+ export const QWICKAPP_COMPONENT = Symbol('QwickAppComponent');
84
+
85
+ /**
86
+ * Hook to process base component props
87
+ */
88
+ export function useBaseProps<T extends BaseComponentProps>(props: T) {
89
+ const {
90
+ // Grid props
91
+ span,
92
+ xs,
93
+ sm,
94
+ md,
95
+ lg,
96
+ xl,
97
+
98
+ // Style props
99
+ className,
100
+ sx,
101
+ style,
102
+
103
+ // Dimension props
104
+ width,
105
+ height,
106
+ minWidth,
107
+ minHeight,
108
+ maxWidth,
109
+ maxHeight,
110
+
111
+ // Spacing props
112
+ padding,
113
+ paddingTop,
114
+ paddingRight,
115
+ paddingBottom,
116
+ paddingLeft,
117
+ paddingX,
118
+ paddingY,
119
+ margin,
120
+ marginTop,
121
+ marginRight,
122
+ marginBottom,
123
+ marginLeft,
124
+ marginX,
125
+ marginY,
126
+
127
+ // Background props
128
+ background,
129
+ backgroundImage,
130
+ backgroundGradient,
131
+
132
+ // Text alignment
133
+ textAlign,
134
+
135
+ // HTML attributes
136
+ id,
137
+ role,
138
+ 'aria-label': ariaLabel,
139
+ 'aria-labelledby': ariaLabelledby,
140
+ 'aria-describedby': ariaDescribedby,
141
+ 'data-testid': dataTestId,
142
+
143
+ // Event handlers
144
+ onClick,
145
+ onMouseEnter,
146
+ onMouseLeave,
147
+ onFocus,
148
+ onBlur,
149
+
150
+ // Rest of the props
151
+ ...restProps
152
+ } = props;
153
+
154
+ // Memoize grid props
155
+ const gridProps = useMemo(() => {
156
+ if (span || xs || sm || md || lg || xl) {
157
+ return {
158
+ span,
159
+ xs: span || xs,
160
+ sm: span || sm,
161
+ md: span || md,
162
+ lg: span || lg,
163
+ xl: span || xl,
164
+ };
165
+ }
166
+ return null;
167
+ }, [span, xs, sm, md, lg, xl]);
168
+
169
+ // Memoize resolved dimensions
170
+ const dimensions = useMemo(() => {
171
+ return resolveDimensions({
172
+ width,
173
+ height,
174
+ minWidth,
175
+ minHeight,
176
+ maxWidth,
177
+ maxHeight,
178
+ });
179
+ }, [width, height, minWidth, minHeight, maxWidth, maxHeight]);
180
+
181
+ // Memoize resolved spacing
182
+ const spacing = useMemo(() => {
183
+ return resolveSpacingProps({
184
+ padding,
185
+ paddingTop,
186
+ paddingRight,
187
+ paddingBottom,
188
+ paddingLeft,
189
+ paddingX,
190
+ paddingY,
191
+ margin,
192
+ marginTop,
193
+ marginRight,
194
+ marginBottom,
195
+ marginLeft,
196
+ marginX,
197
+ marginY,
198
+ });
199
+ }, [
200
+ padding, paddingTop, paddingRight, paddingBottom, paddingLeft, paddingX, paddingY,
201
+ margin, marginTop, marginRight, marginBottom, marginLeft, marginX, marginY
202
+ ]);
203
+
204
+ // Memoize background and text styles
205
+ const backgroundAndTextStyles = useMemo(() => {
206
+ const styles: any = {};
207
+
208
+ if (backgroundGradient) {
209
+ styles.background = backgroundGradient;
210
+ } else if (backgroundImage) {
211
+ styles.backgroundImage = `url(${backgroundImage})`;
212
+ styles.backgroundSize = 'cover';
213
+ styles.backgroundPosition = 'center';
214
+ styles.backgroundRepeat = 'no-repeat';
215
+ } else if (background) {
216
+ // Could be a color or theme path
217
+ styles.background = background;
218
+ }
219
+
220
+ if (textAlign) {
221
+ styles.textAlign = textAlign;
222
+ }
223
+
224
+ return styles;
225
+ }, [background, backgroundImage, backgroundGradient, textAlign]);
226
+
227
+ // Combine all style props
228
+ const combinedSx = useMemo(() => {
229
+ return {
230
+ ...dimensions,
231
+ ...spacing,
232
+ ...backgroundAndTextStyles,
233
+ ...sx,
234
+ };
235
+ }, [dimensions, spacing, backgroundAndTextStyles, sx]);
236
+
237
+ // HTML attributes and event handlers
238
+ const htmlProps = {
239
+ id,
240
+ role,
241
+ 'aria-label': ariaLabel,
242
+ 'aria-labelledby': ariaLabelledby,
243
+ 'aria-describedby': ariaDescribedby,
244
+ 'data-testid': dataTestId,
245
+ onClick,
246
+ onMouseEnter,
247
+ onMouseLeave,
248
+ onFocus,
249
+ onBlur,
250
+ };
251
+
252
+ return {
253
+ gridProps,
254
+ styleProps: {
255
+ className,
256
+ sx: combinedSx,
257
+ style,
258
+ },
259
+ htmlProps,
260
+ restProps: restProps as Omit<T, keyof BaseComponentProps>,
261
+ };
262
+ }
263
+
264
+ /**
265
+ * Type helper for components using base props
266
+ */
267
+ export type WithBaseProps<P = {}> = P & BaseComponentProps;
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Data Binding Hook for AI-Driven Component System
3
+ *
4
+ * This hook enables components to resolve props from CMS data sources
5
+ * instead of hardcoded props, allowing AI agents to generate both
6
+ * content and presentation dynamically.
7
+ *
8
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
9
+ */
10
+
11
+ import { DataBindingMeta, DataBindingOptions, Model, SchemaDefinition } from '@qwickapps/schema';
12
+ import { useMemo } from 'react';
13
+ import { useDataSafe } from '../contexts/DataContext';
14
+
15
+ /**
16
+ * Hook for resolving component props from data sources
17
+ *
18
+ * @param dataSource - Data source identifier (e.g., "company.description", "pages.home.hero-block")
19
+ * @param fallbackProps - Props to use when dataSource is unavailable
20
+ * @param schema - Component schema for validation
21
+ * @param options - Data binding configuration options
22
+ * @returns Resolved props with data binding metadata
23
+ */
24
+ export function useDataBinding<T extends Model>(
25
+ dataSource?: string,
26
+ fallbackProps?: Partial<T>,
27
+ schema?: SchemaDefinition,
28
+ options?: DataBindingOptions
29
+ ): T & DataBindingMeta {
30
+ // Determine if we should use data binding
31
+ const isDataSourceAvailable = dataSource && dataSource.trim().length > 0;
32
+
33
+ // Get data if dataSource is provided
34
+ const safeDataResult = isDataSourceAvailable ? useDataSafe(dataSource) : { data: undefined, loading: false, error: null };
35
+
36
+ // Resolve the final props
37
+ const resolvedData = useMemo(() => {
38
+ if (!isDataSourceAvailable || safeDataResult.data === undefined) {
39
+ // No data source provided, use fallback props as-is
40
+ return fallbackProps || ({} as Partial<T>);
41
+ }
42
+
43
+ const resolved = {
44
+ ...(fallbackProps || {}),
45
+ ...safeDataResult.data
46
+ } as Partial<T>;
47
+
48
+ return resolved;
49
+
50
+ }, [isDataSourceAvailable, safeDataResult.data, fallbackProps, schema, options]);
51
+
52
+ // Build the data binding metadata
53
+ const metadata: DataBindingMeta = {
54
+ loading: safeDataResult.loading,
55
+ error: safeDataResult.error,
56
+ dataSource,
57
+ cached: false // TODO: Implement cache detection
58
+ };
59
+
60
+ // Return resolved data with metadata, ensuring data properties aren't overridden
61
+ return {
62
+ ...resolvedData,
63
+ // Metadata with explicit property names to avoid conflicts with data
64
+ $loading: safeDataResult.loading,
65
+ $error: safeDataResult.error,
66
+ $dataSource: dataSource,
67
+ $cached: false,
68
+ // Keep old names for backward compatibility, but data takes precedence
69
+ ...(resolvedData.hasOwnProperty('loading') ? {} : { loading: safeDataResult.loading }),
70
+ ...(resolvedData.hasOwnProperty('error') ? {} : { error: safeDataResult.error }),
71
+ cached: false
72
+ } as any;
73
+ }
74
+
75
+ // Old validation function removed - using new schema system
76
+
77
+ export default useDataBinding;
package/src/index.ts ADDED
@@ -0,0 +1,23 @@
1
+ // QwickApps React Framework
2
+ // Main export file for the QwickApps React Framework
3
+
4
+ // Components
5
+ export * from './components';
6
+
7
+ // Contexts (includes DataProvider)
8
+ export * from './contexts';
9
+
10
+ // Hooks
11
+ export * from './hooks';
12
+
13
+ // Palette Configurations
14
+ export * from './palettes';
15
+
16
+ // Utilities
17
+ export * from './utils';
18
+
19
+ // Types (includes ContentTypes)
20
+ export * from './types';
21
+
22
+ // Schemas (includes component schemas and builders)
23
+ export * from './schemas';
@@ -0,0 +1,172 @@
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-error-border: #fecaca;
65
+
66
+ /* Warning palette - Amber */
67
+ --palette-warning-main: #f59e0b;
68
+ --palette-warning-light: #fef3c7;
69
+ --palette-warning-dark: #78350f;
70
+ --palette-warning-border: #fde68a;
71
+
72
+ /* Info palette - Teal */
73
+ --palette-info-main: #0891b2;
74
+ --palette-info-light: #e6fffa;
75
+ --palette-info-dark: #164e63;
76
+ --palette-on-info: #ffffff;
77
+ --palette-info-border: #67e8f9;
78
+
79
+ /* Accent palette - Deep crimson */
80
+ --palette-accent-main: #dc2626;
81
+ --palette-accent-light: #f87171;
82
+ --palette-accent-dark: #991b1b;
83
+ --palette-on-accent: #ffffff;
84
+
85
+ /* Control palette - Walnut */
86
+ --palette-control-main: #451a03;
87
+ --palette-control-light: #78350f;
88
+ --palette-control-text: #fef3c7;
89
+ --palette-control-border: #92400e;
90
+ }
91
+
92
+ /* ===== AUTUMN PALETTE - DARK THEME ===== */
93
+ html[data-palette="autumn"][data-theme="dark"] {
94
+ /* Primary palette - Glowing ember */
95
+ --palette-primary-main: #fb923c;
96
+ --palette-primary-light: #fdba74;
97
+ --palette-primary-dark: #ea580c;
98
+ --palette-on-primary: #1c1917;
99
+
100
+ /* Secondary palette - Golden glow */
101
+ --palette-secondary-main: #fbbf24;
102
+ --palette-secondary-light: #fcd34d;
103
+ --palette-secondary-dark: #f59e0b;
104
+ --palette-on-secondary: #1c1917;
105
+
106
+ /* Surface palette - Dark wood */
107
+ --palette-surface-main: #1c1917;
108
+ --palette-surface-variant: #292524;
109
+ --palette-surface-elevated: #44403c;
110
+ --palette-on-surface: #fef3c7;
111
+
112
+ /* Background palette - Deep earth */
113
+ --palette-background-main: #0c0a09;
114
+ --palette-background-dark: #1c1917;
115
+ --palette-background-overlay: rgba(28, 25, 23, 0.95);
116
+ --palette-on-background: #d6d3d1;
117
+
118
+ /* Header background with transparency */
119
+ --palette-header-bg-start: rgba(12, 10, 9, 0.98);
120
+ --palette-header-bg-end: rgba(12, 10, 9, 0.95);
121
+ --palette-header-collapsed-bg-start: rgba(12, 10, 9, 0.99);
122
+ --palette-header-collapsed-bg-end: rgba(12, 10, 9, 0.96);
123
+
124
+ /* Text palette - Warm light */
125
+ --palette-text-primary: #fef3c7;
126
+ --palette-text-secondary: #d6d3d1;
127
+ --palette-text-disabled: rgba(254, 243, 199, 0.38);
128
+ --palette-text-inverted: #0c0a09;
129
+
130
+ /* Border palette - Copper */
131
+ --palette-border-main: #78716c;
132
+ --palette-border-light: rgba(254, 243, 199, 0.12);
133
+ --palette-border-lighter: rgba(254, 243, 199, 0.05);
134
+ --palette-border-medium: #57534e;
135
+
136
+ /* Success palette - Pine */
137
+ --palette-success-main: #4ade80;
138
+ --palette-success-light: #14532d;
139
+ --palette-success-dark: #22c55e;
140
+ --palette-success-border: #166534;
141
+
142
+ /* Error palette - Fire */
143
+ --palette-error-main: #f87171;
144
+ --palette-error-light: #7f1d1d;
145
+ --palette-error-dark: #ef4444;
146
+ --palette-error-border: #991b1b;
147
+
148
+ /* Warning palette - Harvest gold */
149
+ --palette-warning-main: #eab308;
150
+ --palette-warning-light: #78350f;
151
+ --palette-warning-dark: #ca8a04;
152
+ --palette-warning-border: #a16207;
153
+
154
+ /* Info palette - River teal */
155
+ --palette-info-main: #22d3ee;
156
+ --palette-info-light: #164e63;
157
+ --palette-info-dark: #06b6d4;
158
+ --palette-on-info: #0c0a09;
159
+ --palette-info-border: #0891b2;
160
+
161
+ /* Accent palette - Harvest crimson */
162
+ --palette-accent-main: #b91c1c;
163
+ --palette-accent-light: #dc2626;
164
+ --palette-accent-dark: #7f1d1d;
165
+ --palette-on-accent: #fef3c7;
166
+
167
+ /* Control palette - Charcoal */
168
+ --palette-control-main: #292524;
169
+ --palette-control-light: #44403c;
170
+ --palette-control-text: #f5f5f4;
171
+ --palette-control-border: #57534e;
172
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Autumn Palette Configuration
3
+ *
4
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
5
+ */
6
+ import "./PaletteAutumn.css";
7
+ import type { PaletteConfig } from '../contexts/PaletteContext';
8
+
9
+ export const PaletteAutumn: PaletteConfig = {
10
+ id: 'autumn',
11
+ name: 'Autumn',
12
+ description: 'Warm oranges and golden yellows',
13
+ primaryColor: '#ea580c',
14
+ };
15
+
16
+ export default PaletteAutumn;