@qwickapps/react-framework 1.4.9 → 1.5.1

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 (738) hide show
  1. package/README.md +23 -0
  2. package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts +9 -9
  3. package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +1 -1
  4. package/dist/components/AccessibilityProvider.d.ts +1 -1
  5. package/dist/components/AccessibilityProvider.d.ts.map +1 -1
  6. package/dist/components/ErrorBoundary.d.ts +1 -1
  7. package/dist/components/Html.d.ts +8 -8
  8. package/dist/components/Html.d.ts.map +1 -1
  9. package/dist/components/Logo.d.ts +2 -2
  10. package/dist/components/Logo.d.ts.map +1 -1
  11. package/dist/components/Markdown.d.ts +5 -5
  12. package/dist/components/Markdown.d.ts.map +1 -1
  13. package/dist/components/ProductLogo.d.ts +60 -0
  14. package/dist/components/ProductLogo.d.ts.map +1 -0
  15. package/dist/components/QwickAppsLogo.d.ts +1 -1
  16. package/dist/components/QwickAppsLogo.d.ts.map +1 -1
  17. package/dist/components/ResponsiveMenu.d.ts.map +1 -1
  18. package/dist/components/SafeSpan.d.ts +4 -4
  19. package/dist/components/SafeSpan.d.ts.map +1 -1
  20. package/dist/components/Scaffold.d.ts.map +1 -1
  21. package/dist/components/base/Container.d.ts +3 -2
  22. package/dist/components/base/Container.d.ts.map +1 -1
  23. package/dist/components/base/ModelView.d.ts +16 -16
  24. package/dist/components/base/ModelView.d.ts.map +1 -1
  25. package/dist/components/base/index.d.ts +1 -1
  26. package/dist/components/base/index.d.ts.map +1 -1
  27. package/dist/components/blocks/Article.d.ts +4 -18
  28. package/dist/components/blocks/Article.d.ts.map +1 -1
  29. package/dist/components/blocks/CardListGrid.d.ts +3 -3
  30. package/dist/components/blocks/CardListGrid.d.ts.map +1 -1
  31. package/dist/components/blocks/Code.d.ts +5 -31
  32. package/dist/components/blocks/Code.d.ts.map +1 -1
  33. package/dist/components/blocks/Content.d.ts +2 -17
  34. package/dist/components/blocks/Content.d.ts.map +1 -1
  35. package/dist/components/blocks/CoverImageHeader.d.ts +2 -12
  36. package/dist/components/blocks/CoverImageHeader.d.ts.map +1 -1
  37. package/dist/components/blocks/FeatureCard.d.ts +0 -17
  38. package/dist/components/blocks/FeatureCard.d.ts.map +1 -1
  39. package/dist/components/blocks/FeatureGrid.d.ts.map +1 -1
  40. package/dist/components/blocks/Footer.d.ts +2 -14
  41. package/dist/components/blocks/Footer.d.ts.map +1 -1
  42. package/dist/components/blocks/HeroBlock.d.ts +35 -26
  43. package/dist/components/blocks/HeroBlock.d.ts.map +1 -1
  44. package/dist/components/blocks/Image.d.ts +23 -23
  45. package/dist/components/blocks/Image.d.ts.map +1 -1
  46. package/dist/components/blocks/PageBannerHeader.d.ts +2 -13
  47. package/dist/components/blocks/PageBannerHeader.d.ts.map +1 -1
  48. package/dist/components/blocks/ProductCard.d.ts +0 -9
  49. package/dist/components/blocks/ProductCard.d.ts.map +1 -1
  50. package/dist/components/blocks/Section.d.ts +16 -24
  51. package/dist/components/blocks/Section.d.ts.map +1 -1
  52. package/dist/components/blocks/Text.d.ts +5 -20
  53. package/dist/components/blocks/Text.d.ts.map +1 -1
  54. package/dist/components/buttons/Button.d.ts +19 -23
  55. package/dist/components/buttons/Button.d.ts.map +1 -1
  56. package/dist/components/buttons/PaletteSwitcher.d.ts +2 -2
  57. package/dist/components/buttons/PaletteSwitcher.d.ts.map +1 -1
  58. package/dist/components/buttons/ThemeSwitcher.d.ts +2 -2
  59. package/dist/components/buttons/ThemeSwitcher.d.ts.map +1 -1
  60. package/dist/components/dialogs/Dialog.d.ts +35 -0
  61. package/dist/components/dialogs/Dialog.d.ts.map +1 -0
  62. package/dist/components/dialogs/index.d.ts +8 -0
  63. package/dist/components/dialogs/index.d.ts.map +1 -0
  64. package/dist/components/forms/Captcha.d.ts +55 -0
  65. package/dist/components/forms/Captcha.d.ts.map +1 -0
  66. package/dist/components/forms/FormBlock.d.ts +6 -6
  67. package/dist/components/forms/FormBlock.d.ts.map +1 -1
  68. package/dist/components/forms/FormCheckbox.d.ts +27 -0
  69. package/dist/components/forms/FormCheckbox.d.ts.map +1 -0
  70. package/dist/components/forms/FormField.d.ts +43 -0
  71. package/dist/components/forms/FormField.d.ts.map +1 -0
  72. package/dist/components/forms/FormSelect.d.ts +35 -0
  73. package/dist/components/forms/FormSelect.d.ts.map +1 -0
  74. package/dist/components/forms/index.d.ts +8 -0
  75. package/dist/components/forms/index.d.ts.map +1 -1
  76. package/dist/components/index.d.ts +10 -2
  77. package/dist/components/index.d.ts.map +1 -1
  78. package/dist/components/input/ChoiceInputField.d.ts +13 -19
  79. package/dist/components/input/ChoiceInputField.d.ts.map +1 -1
  80. package/dist/components/input/HtmlInputField.d.ts +16 -17
  81. package/dist/components/input/HtmlInputField.d.ts.map +1 -1
  82. package/dist/components/input/SelectInputField.d.ts +14 -17
  83. package/dist/components/input/SelectInputField.d.ts.map +1 -1
  84. package/dist/components/input/SwitchInputField.d.ts +11 -18
  85. package/dist/components/input/SwitchInputField.d.ts.map +1 -1
  86. package/dist/components/input/TextInputField.d.ts +16 -19
  87. package/dist/components/input/TextInputField.d.ts.map +1 -1
  88. package/dist/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +1 -1
  89. package/dist/components/layout/GridCell.d.ts +18 -19
  90. package/dist/components/layout/GridCell.d.ts.map +1 -1
  91. package/dist/components/layout/GridLayout.d.ts +36 -25
  92. package/dist/components/layout/GridLayout.d.ts.map +1 -1
  93. package/dist/components/menu/MenuItem.d.ts +2 -2
  94. package/dist/components/menu/MenuItem.d.ts.map +1 -1
  95. package/dist/components/pages/FormPage.d.ts.map +1 -1
  96. package/dist/components/pages/Page.d.ts +1 -1
  97. package/dist/components/pages/Page.d.ts.map +1 -1
  98. package/dist/components/shared/createSerializableView.d.ts +22 -10
  99. package/dist/components/shared/createSerializableView.d.ts.map +1 -1
  100. package/dist/components/shared/viewProps.d.ts +3 -3
  101. package/dist/components/shared/viewProps.d.ts.map +1 -1
  102. package/dist/config/AppConfig.d.ts +2 -2
  103. package/dist/config/AppConfig.d.ts.map +1 -1
  104. package/dist/config/types.d.ts +1 -1
  105. package/dist/config/types.d.ts.map +1 -1
  106. package/dist/contexts/DataContext.d.ts +3 -3
  107. package/dist/contexts/DataContext.d.ts.map +1 -1
  108. package/dist/contexts/PaletteContext.d.ts.map +1 -1
  109. package/dist/contexts/ThemeContext.d.ts.map +1 -1
  110. package/dist/hooks/useDataBinding.d.ts +2 -2
  111. package/dist/hooks/useDataBinding.d.ts.map +1 -1
  112. package/dist/hooks/usePrintMode.d.ts +2 -2
  113. package/dist/hooks/usePrintMode.d.ts.map +1 -1
  114. package/dist/index.css +1 -1
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.esm.css +1 -1
  117. package/dist/index.esm.js +4143 -2318
  118. package/dist/index.js +4169 -2315
  119. package/dist/palettes/manifest.json +90 -0
  120. package/dist/palettes/palette-autumn.1.4.9.min.css +1 -0
  121. package/dist/palettes/palette-autumn.1.5.0.css +172 -0
  122. package/dist/palettes/palette-autumn.1.5.0.min.css +1 -0
  123. package/dist/palettes/palette-autumn.1.5.1.css +172 -0
  124. package/dist/palettes/palette-autumn.1.5.1.min.css +1 -0
  125. package/dist/palettes/palette-autumn.latest.css +172 -0
  126. package/dist/palettes/palette-autumn.latest.min.css +1 -0
  127. package/dist/palettes/palette-cosmic.1.4.9.min.css +1 -0
  128. package/dist/palettes/palette-cosmic.1.5.0.css +172 -0
  129. package/dist/palettes/palette-cosmic.1.5.0.min.css +1 -0
  130. package/dist/palettes/palette-cosmic.1.5.1.css +172 -0
  131. package/dist/palettes/palette-cosmic.1.5.1.min.css +1 -0
  132. package/dist/palettes/palette-cosmic.latest.css +172 -0
  133. package/dist/palettes/palette-cosmic.latest.min.css +1 -0
  134. package/dist/palettes/palette-default.1.4.9.min.css +1 -0
  135. package/dist/palettes/palette-default.1.5.0.css +178 -0
  136. package/dist/palettes/palette-default.1.5.0.min.css +1 -0
  137. package/dist/palettes/palette-default.1.5.1.css +178 -0
  138. package/dist/palettes/palette-default.1.5.1.min.css +1 -0
  139. package/dist/palettes/palette-default.latest.css +178 -0
  140. package/dist/palettes/palette-default.latest.min.css +1 -0
  141. package/dist/palettes/palette-ocean.1.4.9.min.css +1 -0
  142. package/dist/palettes/palette-ocean.1.5.0.css +172 -0
  143. package/dist/palettes/palette-ocean.1.5.0.min.css +1 -0
  144. package/dist/palettes/palette-ocean.1.5.1.css +172 -0
  145. package/dist/palettes/palette-ocean.1.5.1.min.css +1 -0
  146. package/dist/palettes/palette-ocean.latest.css +172 -0
  147. package/dist/palettes/palette-ocean.latest.min.css +1 -0
  148. package/dist/palettes/palette-spring.1.4.9.min.css +1 -0
  149. package/dist/palettes/palette-spring.1.5.0.css +160 -0
  150. package/dist/palettes/palette-spring.1.5.0.min.css +1 -0
  151. package/dist/palettes/palette-spring.1.5.1.css +160 -0
  152. package/dist/palettes/palette-spring.1.5.1.min.css +1 -0
  153. package/dist/palettes/palette-spring.latest.css +160 -0
  154. package/dist/palettes/palette-spring.latest.min.css +1 -0
  155. package/dist/palettes/palette-winter.1.4.9.min.css +1 -0
  156. package/dist/palettes/palette-winter.1.5.0.css +172 -0
  157. package/dist/palettes/palette-winter.1.5.0.min.css +1 -0
  158. package/dist/palettes/palette-winter.1.5.1.css +172 -0
  159. package/dist/palettes/palette-winter.1.5.1.min.css +1 -0
  160. package/dist/palettes/palette-winter.latest.css +172 -0
  161. package/dist/palettes/palette-winter.latest.min.css +1 -0
  162. package/dist/schemas/ButtonSchema.d.ts +5 -2
  163. package/dist/schemas/ButtonSchema.d.ts.map +1 -1
  164. package/dist/schemas/CardListGridSchema.d.ts +4 -4
  165. package/dist/schemas/CardListGridSchema.d.ts.map +1 -1
  166. package/dist/schemas/ChoiceInputFieldSchema.d.ts +2 -2
  167. package/dist/schemas/ChoiceInputFieldSchema.d.ts.map +1 -1
  168. package/dist/schemas/CodeSchema.d.ts +1 -2
  169. package/dist/schemas/CodeSchema.d.ts.map +1 -1
  170. package/dist/schemas/FormBlockSchema.d.ts +2 -2
  171. package/dist/schemas/FormBlockSchema.d.ts.map +1 -1
  172. package/dist/schemas/GridCellSchema.d.ts +2 -4
  173. package/dist/schemas/GridCellSchema.d.ts.map +1 -1
  174. package/dist/schemas/GridLayoutSchema.d.ts +3 -5
  175. package/dist/schemas/GridLayoutSchema.d.ts.map +1 -1
  176. package/dist/schemas/HeroBlockSchema.d.ts +2 -2
  177. package/dist/schemas/HeroBlockSchema.d.ts.map +1 -1
  178. package/dist/schemas/HtmlInputFieldSchema.d.ts +2 -2
  179. package/dist/schemas/HtmlInputFieldSchema.d.ts.map +1 -1
  180. package/dist/schemas/ImageSchema.d.ts +2 -2
  181. package/dist/schemas/ImageSchema.d.ts.map +1 -1
  182. package/dist/schemas/SectionSchema.d.ts +2 -4
  183. package/dist/schemas/SectionSchema.d.ts.map +1 -1
  184. package/dist/schemas/SelectInputFieldSchema.d.ts +2 -2
  185. package/dist/schemas/SelectInputFieldSchema.d.ts.map +1 -1
  186. package/dist/schemas/SwitchInputFieldSchema.d.ts +2 -2
  187. package/dist/schemas/SwitchInputFieldSchema.d.ts.map +1 -1
  188. package/dist/schemas/TextInputFieldSchema.d.ts +2 -2
  189. package/dist/schemas/TextInputFieldSchema.d.ts.map +1 -1
  190. package/dist/schemas/ViewSchema.d.ts +8 -7
  191. package/dist/schemas/ViewSchema.d.ts.map +1 -1
  192. package/dist/schemas/transformers/ComponentTransformer.d.ts +2 -2
  193. package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -1
  194. package/dist/schemas/transformers/ReactNodeTransformer.d.ts +2 -2
  195. package/dist/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -1
  196. package/dist/schemas/transformers/registry.d.ts +0 -7
  197. package/dist/schemas/transformers/registry.d.ts.map +1 -1
  198. package/dist/schemas/types/Serializable.d.ts +3 -3
  199. package/dist/schemas/types/Serializable.d.ts.map +1 -1
  200. package/dist/stories/_templates/SerializationTemplate.d.ts.map +1 -0
  201. package/dist/types/CollapsibleLayout.d.ts +3 -3
  202. package/dist/types/CollapsibleLayout.d.ts.map +1 -1
  203. package/dist/types/ContentProxy.d.ts +4 -4
  204. package/dist/types/ContentProxy.d.ts.map +1 -1
  205. package/dist/types/DataTypes.d.ts +4 -4
  206. package/dist/types/DataTypes.d.ts.map +1 -1
  207. package/dist/types/TemplateProvider.d.ts +1 -1
  208. package/dist/types/TemplateProvider.d.ts.map +1 -1
  209. package/dist/types/TemplateResolver.d.ts +1 -1
  210. package/dist/types/TemplateResolver.d.ts.map +1 -1
  211. package/dist/utils/htmlTransform.d.ts +1 -1
  212. package/dist/utils/htmlTransform.d.ts.map +1 -1
  213. package/dist/utils/iconMap.d.ts +48 -0
  214. package/dist/utils/iconMap.d.ts.map +1 -0
  215. package/dist/utils/index.d.ts +3 -0
  216. package/dist/utils/index.d.ts.map +1 -1
  217. package/dist/utils/logger.d.ts +11 -7
  218. package/dist/utils/logger.d.ts.map +1 -1
  219. package/dist/utils/paletteLoader.d.ts +34 -0
  220. package/dist/utils/paletteLoader.d.ts.map +1 -0
  221. package/dist/utils/paletteManifest.d.ts +51 -0
  222. package/dist/utils/paletteManifest.d.ts.map +1 -0
  223. package/dist/utils/paletteUtils.d.ts.map +1 -1
  224. package/dist/utils/reactUtils.d.ts +12 -6
  225. package/dist/utils/reactUtils.d.ts.map +1 -1
  226. package/dist/utils/spacing.d.ts +2 -2
  227. package/dist/utils/spacing.d.ts.map +1 -1
  228. package/dist/utils/themePerformanceMonitor.d.ts.map +1 -1
  229. package/dist/utils/themeUtils.d.ts.map +1 -1
  230. package/package.json +20 -9
  231. package/scripts/build-palettes.cjs +120 -0
  232. package/src/__tests__/components/Article.test.tsx +1 -1
  233. package/src/__tests__/components/Breadcrumbs.test.tsx +2 -2
  234. package/src/__tests__/components/Button.test.tsx +3 -3
  235. package/src/__tests__/components/CardListGrid.test.tsx +5 -5
  236. package/src/__tests__/components/ChoiceInputField.test.tsx +2 -2
  237. package/src/__tests__/components/Code.test.tsx +2 -2
  238. package/src/__tests__/components/Content.integration.test.tsx +1 -1
  239. package/src/__tests__/components/Content.test.tsx +5 -5
  240. package/src/__tests__/components/CoverImageHeader.test.tsx +3 -3
  241. package/src/__tests__/components/FeatureCard.integration.test.tsx +1 -1
  242. package/src/__tests__/components/FeatureGrid.integration.test.tsx +1 -1
  243. package/src/__tests__/components/FeatureGrid.test.tsx +3 -3
  244. package/src/__tests__/components/Footer.test.tsx +3 -3
  245. package/src/__tests__/components/FormBlock.test.tsx +2 -2
  246. package/src/__tests__/components/HeroBlock.integration.test.tsx +1 -1
  247. package/src/__tests__/components/HeroBlock.test.tsx +4 -4
  248. package/src/__tests__/components/HtmlInputField.test.tsx +8 -8
  249. package/src/__tests__/components/PageBannerHeader.test.tsx +7 -7
  250. package/src/__tests__/components/PaletteSwitcher.test.tsx +3 -3
  251. package/src/__tests__/components/ProductCard.test.tsx +1 -1
  252. package/src/__tests__/components/Section.integration.test.tsx +1 -1
  253. package/src/__tests__/components/Section.test.tsx +1 -1
  254. package/src/__tests__/components/SelectInputField.test.tsx +2 -2
  255. package/src/__tests__/components/TextInputField.test.tsx +4 -4
  256. package/src/__tests__/components/ThemeSwitcher.test.tsx +3 -3
  257. package/src/__tests__/components/base/Container.test.tsx +22 -21
  258. package/src/__tests__/components/blocks/Code.performance.test.tsx +10 -10
  259. package/src/__tests__/components/blocks/Code.serialization.test.tsx +9 -9
  260. package/src/__tests__/components/blocks/HeroBlock.serialization.test.tsx +2 -3
  261. package/src/__tests__/components/blocks/Image.serialization.test.tsx +8 -7
  262. package/src/__tests__/components/blocks/Section.serialization.test.tsx +8 -8
  263. package/src/__tests__/components/blocks/Text.performance.test.tsx +5 -5
  264. package/src/__tests__/components/blocks/Text.serialization.test.tsx +9 -9
  265. package/src/__tests__/components/buttons/Button.serialization.test.tsx +4 -4
  266. package/src/__tests__/components/input/FormComponents.serialization.test.tsx +9 -9
  267. package/src/__tests__/components/input/SelectInputField.serialization.test.tsx +16 -18
  268. package/src/__tests__/components/input/TextInputField.serialization.test.tsx +9 -9
  269. package/src/__tests__/components/layout/CollapsibleLayout.test.tsx +5 -9
  270. package/src/__tests__/components/layout/GridCell.serialization.test.tsx +5 -5
  271. package/src/__tests__/components/layout/GridLayout.serialization.test.tsx +5 -5
  272. package/src/__tests__/hooks/usePrintMode.test.ts +1 -0
  273. package/src/__tests__/schemas/builders.test.ts +2 -2
  274. package/src/__tests__/schemas/transformers/ComponentSerializationPatterns.test.tsx +28 -28
  275. package/src/__tests__/schemas/transformers/ComponentTransformer.htmlPatterns.test.ts +5 -5
  276. package/src/__tests__/schemas/transformers/ComponentTransformer.test.ts +11 -11
  277. package/src/__tests__/schemas/transformers/CrossBrowserCompatibility.test.ts +10 -10
  278. package/src/__tests__/schemas/transformers/MockSerializableComponent.ts +15 -15
  279. package/src/__tests__/schemas/transformers/RealWorldScenarios.test.tsx +19 -19
  280. package/src/__tests__/schemas/transformers/SerializationErrorHandling.test.ts +15 -15
  281. package/src/__tests__/schemas/transformers/SerializationIntegration.test.tsx +19 -21
  282. package/src/__tests__/schemas/transformers/SerializationPerformance.test.ts +15 -15
  283. package/src/__tests__/schemas/transformers/TestAutomation.test.ts +3 -3
  284. package/src/__tests__/schemas/transformers/nested-serialization.test.tsx +1 -1
  285. package/src/__tests__/schemas/transformers/round-trip-component-serialization.test.tsx +10 -10
  286. package/src/__tests__/utils/optional-logging.test.ts +3 -3
  287. package/src/components/AccessibilityProvider.tsx +4 -2
  288. package/src/components/ErrorBoundary.tsx +1 -1
  289. package/src/components/Html.tsx +13 -16
  290. package/src/components/Logo.tsx +42 -29
  291. package/src/components/Markdown.tsx +9 -9
  292. package/src/components/ProductLogo.tsx +118 -0
  293. package/src/components/QwickApp.css +37 -1060
  294. package/src/components/QwickApp.tsx +1 -1
  295. package/src/components/QwickAppsLogo.tsx +1 -1
  296. package/src/components/ResponsiveMenu.tsx +1 -1
  297. package/src/components/SafeSpan.tsx +8 -8
  298. package/src/components/Scaffold.css +11 -1
  299. package/src/components/Scaffold.tsx +55 -25
  300. package/src/components/base/Container.tsx +2 -2
  301. package/src/components/base/ModelView.tsx +28 -27
  302. package/src/components/base/index.ts +1 -1
  303. package/src/components/blocks/Article.tsx +213 -69
  304. package/src/components/blocks/CardListGrid.tsx +18 -14
  305. package/src/components/blocks/Code.tsx +18 -13
  306. package/src/components/blocks/Content.tsx +15 -10
  307. package/src/components/blocks/CoverImageHeader.tsx +14 -9
  308. package/src/components/blocks/FeatureCard.tsx +16 -11
  309. package/src/components/blocks/FeatureGrid.tsx +13 -8
  310. package/src/components/blocks/Footer.tsx +25 -16
  311. package/src/components/blocks/HeroBlock.tsx +12 -13
  312. package/src/components/blocks/Image.tsx +16 -8
  313. package/src/components/blocks/PageBannerHeader.tsx +15 -11
  314. package/src/components/blocks/ProductCard.tsx +32 -25
  315. package/src/components/blocks/Section.tsx +21 -13
  316. package/src/components/blocks/Text.tsx +26 -11
  317. package/src/components/buttons/Button.tsx +22 -118
  318. package/src/components/buttons/PaletteSwitcher.tsx +11 -8
  319. package/src/components/buttons/ThemeSwitcher.tsx +20 -16
  320. package/src/components/dialogs/Dialog.tsx +126 -0
  321. package/src/components/dialogs/index.ts +15 -0
  322. package/src/components/forms/Captcha.tsx +291 -0
  323. package/src/components/forms/FormBlock.tsx +22 -15
  324. package/src/components/forms/FormCheckbox.tsx +116 -0
  325. package/src/components/forms/FormField.tsx +180 -0
  326. package/src/components/forms/FormSelect.tsx +140 -0
  327. package/src/components/forms/index.ts +13 -1
  328. package/src/components/index.ts +13 -2
  329. package/src/components/input/ChoiceInputField.tsx +1 -2
  330. package/src/components/input/HtmlInputField.tsx +2 -3
  331. package/src/components/input/SelectInputField.tsx +31 -5
  332. package/src/components/input/SwitchInputField.tsx +3 -4
  333. package/src/components/input/TextField.tsx +2 -2
  334. package/src/components/input/TextInputField.tsx +32 -6
  335. package/src/components/layout/CollapsibleLayout/CollapsibleLayout.tsx +13 -13
  336. package/src/components/layout/GridCell.tsx +10 -9
  337. package/src/components/layout/GridCellWrapper.tsx +1 -1
  338. package/src/components/layout/GridLayout.tsx +29 -32
  339. package/src/components/pages/FormPage.tsx +0 -1
  340. package/src/components/pages/Page.tsx +2 -2
  341. package/src/components/shared/createSerializableView.tsx +24 -23
  342. package/src/components/shared/viewProps.ts +11 -11
  343. package/src/config/AppConfig.ts +2 -2
  344. package/src/config/__tests__/AppConfig.test.ts +3 -3
  345. package/src/config/__tests__/AppConfigBuilder.test.ts +10 -11
  346. package/src/config/types.ts +1 -1
  347. package/src/contexts/DataContext.tsx +58 -52
  348. package/src/contexts/PaletteContext.tsx +22 -9
  349. package/src/contexts/PrintModeContext.tsx +4 -4
  350. package/src/contexts/ThemeContext.tsx +2 -1
  351. package/src/hooks/useBaseProps.ts +10 -10
  352. package/src/hooks/useDataBinding.ts +15 -18
  353. package/src/hooks/usePrintMode.ts +3 -3
  354. package/src/index.ts +2 -0
  355. package/src/palettes/manifest.json +72 -0
  356. package/src/palettes/manifest.schema.json +74 -0
  357. package/src/schemas/CardListGridSchema.ts +3 -3
  358. package/src/schemas/CodeSchema.ts +0 -1
  359. package/src/schemas/FeatureGridSchema.ts +1 -1
  360. package/src/schemas/FormBlockSchema.ts +1 -1
  361. package/src/schemas/GridCellSchema.ts +0 -1
  362. package/src/schemas/GridLayoutSchema.ts +0 -1
  363. package/src/schemas/SectionSchema.ts +0 -1
  364. package/src/schemas/ViewSchema.ts +6 -6
  365. package/src/schemas/transformers/ComponentTransformer.ts +37 -20
  366. package/src/schemas/transformers/ReactNodeTransformer.ts +18 -16
  367. package/src/schemas/transformers/registry.ts +28 -24
  368. package/src/schemas/types/Serializable.ts +3 -3
  369. package/src/setupTests.js +9 -0
  370. package/src/stories/AccessibilityProvider.stories.tsx +0 -1
  371. package/src/stories/CardListGrid.stories.tsx +1 -1
  372. package/src/stories/Code.stories.tsx +2 -3
  373. package/src/stories/CollapsibleLayout.stories.tsx +41 -37
  374. package/src/stories/Container.stories.tsx +1 -2
  375. package/src/stories/DataBinding.advanced.stories.tsx +15 -9
  376. package/src/stories/DataProvider.stories.tsx +33 -16
  377. package/src/stories/ErrorBoundary.stories.tsx +28 -26
  378. package/src/stories/FeatureGrid.stories.tsx +0 -1
  379. package/src/stories/FormBlock.stories.tsx +8 -8
  380. package/src/stories/FormComponents.stories.tsx +15 -11
  381. package/src/stories/GridCell.stories.tsx +5 -5
  382. package/src/stories/GridLayout.stories.tsx +5 -5
  383. package/src/stories/Image.stories.tsx +5 -7
  384. package/src/stories/Introduction.stories.tsx +0 -1
  385. package/src/stories/ModelView.stories.tsx +7 -7
  386. package/src/stories/SafeSpan.stories.tsx +7 -3
  387. package/src/stories/Section.stories.tsx +2 -2
  388. package/src/stories/Text.stories.tsx +1 -3
  389. package/src/stories/_templates/SerializationTemplate.tsx +0 -1
  390. package/src/templates/TemplateResolver.ts +2 -2
  391. package/src/types/CollapsibleLayout.ts +2 -2
  392. package/src/types/ContentProxy.ts +6 -6
  393. package/src/types/DataTypes.ts +4 -4
  394. package/src/types/TemplateProvider.ts +1 -1
  395. package/src/types/TemplateResolver.ts +1 -1
  396. package/src/utils/htmlTransform.tsx +17 -11
  397. package/src/utils/iconMap.tsx +244 -0
  398. package/src/utils/index.ts +4 -1
  399. package/src/utils/logger.ts +20 -14
  400. package/src/utils/paletteLoader.ts +218 -0
  401. package/src/utils/paletteManifest.ts +268 -0
  402. package/src/utils/paletteUtils.ts +19 -1
  403. package/src/utils/reactUtils.tsx +34 -33
  404. package/src/utils/spacing.ts +16 -17
  405. package/src/utils/themePerformanceMonitor.js +14 -6
  406. package/src/utils/themeUtils.ts +17 -2
  407. package/dist/components/base/ContainerView.d.ts +0 -65
  408. package/dist/components/base/ContainerView.d.ts.map +0 -1
  409. package/dist/components/blocks/Code-factory.d.ts +0 -22
  410. package/dist/components/blocks/Code-factory.d.ts.map +0 -1
  411. package/dist/components/blocks/Code-old.d.ts +0 -31
  412. package/dist/components/blocks/Code-old.d.ts.map +0 -1
  413. package/dist/qa/ConsoleWarningTest.d.ts +0 -5
  414. package/dist/qa/ConsoleWarningTest.d.ts.map +0 -1
  415. package/dist/qa/StorageKeyTest.d.ts +0 -6
  416. package/dist/qa/StorageKeyTest.d.ts.map +0 -1
  417. package/dist/qa/ThemeStorageKeyTest.d.ts +0 -6
  418. package/dist/qa/ThemeStorageKeyTest.d.ts.map +0 -1
  419. package/dist/schemas/ViewModelSchema.d.ts +0 -63
  420. package/dist/schemas/ViewModelSchema.d.ts.map +0 -1
  421. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts +0 -66
  422. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts.map +0 -1
  423. package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts +0 -66
  424. package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +0 -1
  425. package/dist/src/components/AccessibilityChecker.d.ts +0 -12
  426. package/dist/src/components/AccessibilityChecker.d.ts.map +0 -1
  427. package/dist/src/components/AccessibilityProvider.d.ts +0 -64
  428. package/dist/src/components/AccessibilityProvider.d.ts.map +0 -1
  429. package/dist/src/components/Breadcrumbs.d.ts +0 -39
  430. package/dist/src/components/Breadcrumbs.d.ts.map +0 -1
  431. package/dist/src/components/ErrorBoundary.d.ts +0 -46
  432. package/dist/src/components/ErrorBoundary.d.ts.map +0 -1
  433. package/dist/src/components/Html.d.ts +0 -58
  434. package/dist/src/components/Html.d.ts.map +0 -1
  435. package/dist/src/components/Logo.d.ts +0 -56
  436. package/dist/src/components/Logo.d.ts.map +0 -1
  437. package/dist/src/components/Markdown.d.ts +0 -51
  438. package/dist/src/components/Markdown.d.ts.map +0 -1
  439. package/dist/src/components/QwickApp.d.ts +0 -69
  440. package/dist/src/components/QwickApp.d.ts.map +0 -1
  441. package/dist/src/components/QwickAppsLogo.d.ts +0 -25
  442. package/dist/src/components/QwickAppsLogo.d.ts.map +0 -1
  443. package/dist/src/components/QwickIcon.d.ts +0 -23
  444. package/dist/src/components/QwickIcon.d.ts.map +0 -1
  445. package/dist/src/components/ResponsiveMenu.d.ts +0 -38
  446. package/dist/src/components/ResponsiveMenu.d.ts.map +0 -1
  447. package/dist/src/components/SafeSpan.d.ts +0 -29
  448. package/dist/src/components/SafeSpan.d.ts.map +0 -1
  449. package/dist/src/components/Scaffold.d.ts +0 -57
  450. package/dist/src/components/Scaffold.d.ts.map +0 -1
  451. package/dist/src/components/base/Container.d.ts +0 -33
  452. package/dist/src/components/base/Container.d.ts.map +0 -1
  453. package/dist/src/components/base/ModelView.d.ts +0 -92
  454. package/dist/src/components/base/ModelView.d.ts.map +0 -1
  455. package/dist/src/components/base/index.d.ts +0 -12
  456. package/dist/src/components/base/index.d.ts.map +0 -1
  457. package/dist/src/components/blocks/Article.d.ts +0 -32
  458. package/dist/src/components/blocks/Article.d.ts.map +0 -1
  459. package/dist/src/components/blocks/CardListGrid.d.ts +0 -23
  460. package/dist/src/components/blocks/CardListGrid.d.ts.map +0 -1
  461. package/dist/src/components/blocks/Code.d.ts +0 -37
  462. package/dist/src/components/blocks/Code.d.ts.map +0 -1
  463. package/dist/src/components/blocks/Content.d.ts +0 -24
  464. package/dist/src/components/blocks/Content.d.ts.map +0 -1
  465. package/dist/src/components/blocks/CoverImageHeader.d.ts +0 -44
  466. package/dist/src/components/blocks/CoverImageHeader.d.ts.map +0 -1
  467. package/dist/src/components/blocks/FeatureCard.d.ts +0 -66
  468. package/dist/src/components/blocks/FeatureCard.d.ts.map +0 -1
  469. package/dist/src/components/blocks/FeatureGrid.d.ts +0 -48
  470. package/dist/src/components/blocks/FeatureGrid.d.ts.map +0 -1
  471. package/dist/src/components/blocks/Footer.d.ts +0 -56
  472. package/dist/src/components/blocks/Footer.d.ts.map +0 -1
  473. package/dist/src/components/blocks/HeroBlock.d.ts +0 -55
  474. package/dist/src/components/blocks/HeroBlock.d.ts.map +0 -1
  475. package/dist/src/components/blocks/Image.d.ts +0 -40
  476. package/dist/src/components/blocks/Image.d.ts.map +0 -1
  477. package/dist/src/components/blocks/PageBannerHeader.d.ts +0 -30
  478. package/dist/src/components/blocks/PageBannerHeader.d.ts.map +0 -1
  479. package/dist/src/components/blocks/ProductCard.d.ts +0 -57
  480. package/dist/src/components/blocks/ProductCard.d.ts.map +0 -1
  481. package/dist/src/components/blocks/Section.d.ts +0 -45
  482. package/dist/src/components/blocks/Section.d.ts.map +0 -1
  483. package/dist/src/components/blocks/Text.d.ts +0 -34
  484. package/dist/src/components/blocks/Text.d.ts.map +0 -1
  485. package/dist/src/components/blocks/index.d.ts +0 -41
  486. package/dist/src/components/blocks/index.d.ts.map +0 -1
  487. package/dist/src/components/buttons/Button.d.ts +0 -57
  488. package/dist/src/components/buttons/Button.d.ts.map +0 -1
  489. package/dist/src/components/buttons/PaletteSwitcher.d.ts +0 -24
  490. package/dist/src/components/buttons/PaletteSwitcher.d.ts.map +0 -1
  491. package/dist/src/components/buttons/ThemeSwitcher.d.ts +0 -24
  492. package/dist/src/components/buttons/ThemeSwitcher.d.ts.map +0 -1
  493. package/dist/src/components/buttons/index.d.ts +0 -11
  494. package/dist/src/components/buttons/index.d.ts.map +0 -1
  495. package/dist/src/components/forms/FormBlock.d.ts +0 -51
  496. package/dist/src/components/forms/FormBlock.d.ts.map +0 -1
  497. package/dist/src/components/forms/index.d.ts +0 -8
  498. package/dist/src/components/forms/index.d.ts.map +0 -1
  499. package/dist/src/components/index.d.ts +0 -41
  500. package/dist/src/components/index.d.ts.map +0 -1
  501. package/dist/src/components/input/ChoiceInputField.d.ts +0 -29
  502. package/dist/src/components/input/ChoiceInputField.d.ts.map +0 -1
  503. package/dist/src/components/input/HtmlInputField.d.ts +0 -33
  504. package/dist/src/components/input/HtmlInputField.d.ts.map +0 -1
  505. package/dist/src/components/input/SelectInputField.d.ts +0 -31
  506. package/dist/src/components/input/SelectInputField.d.ts.map +0 -1
  507. package/dist/src/components/input/SwitchInputField.d.ts +0 -27
  508. package/dist/src/components/input/SwitchInputField.d.ts.map +0 -1
  509. package/dist/src/components/input/TextField.d.ts +0 -18
  510. package/dist/src/components/input/TextField.d.ts.map +0 -1
  511. package/dist/src/components/input/TextInputField.d.ts +0 -34
  512. package/dist/src/components/input/TextInputField.d.ts.map +0 -1
  513. package/dist/src/components/input/index.d.ts +0 -19
  514. package/dist/src/components/input/index.d.ts.map +0 -1
  515. package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts +0 -34
  516. package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +0 -1
  517. package/dist/src/components/layout/CollapsibleLayout/index.d.ts +0 -9
  518. package/dist/src/components/layout/CollapsibleLayout/index.d.ts.map +0 -1
  519. package/dist/src/components/layout/GridCell.d.ts +0 -32
  520. package/dist/src/components/layout/GridCell.d.ts.map +0 -1
  521. package/dist/src/components/layout/GridCellWrapper.d.ts +0 -46
  522. package/dist/src/components/layout/GridCellWrapper.d.ts.map +0 -1
  523. package/dist/src/components/layout/GridLayout.d.ts +0 -50
  524. package/dist/src/components/layout/GridLayout.d.ts.map +0 -1
  525. package/dist/src/components/layout/index.d.ts +0 -14
  526. package/dist/src/components/layout/index.d.ts.map +0 -1
  527. package/dist/src/components/menu/Menu.d.ts +0 -1
  528. package/dist/src/components/menu/Menu.d.ts.map +0 -1
  529. package/dist/src/components/menu/MenuItem.d.ts +0 -31
  530. package/dist/src/components/menu/MenuItem.d.ts.map +0 -1
  531. package/dist/src/components/menu/index.d.ts +0 -7
  532. package/dist/src/components/menu/index.d.ts.map +0 -1
  533. package/dist/src/components/pages/FormPage.d.ts +0 -66
  534. package/dist/src/components/pages/FormPage.d.ts.map +0 -1
  535. package/dist/src/components/pages/Page.d.ts +0 -68
  536. package/dist/src/components/pages/Page.d.ts.map +0 -1
  537. package/dist/src/components/pages/index.d.ts +0 -10
  538. package/dist/src/components/pages/index.d.ts.map +0 -1
  539. package/dist/src/components/shared/createSerializableView.d.ts +0 -81
  540. package/dist/src/components/shared/createSerializableView.d.ts.map +0 -1
  541. package/dist/src/components/shared/viewProps.d.ts +0 -37
  542. package/dist/src/components/shared/viewProps.d.ts.map +0 -1
  543. package/dist/src/config/AppConfig.d.ts +0 -49
  544. package/dist/src/config/AppConfig.d.ts.map +0 -1
  545. package/dist/src/config/AppConfigBuilder.d.ts +0 -75
  546. package/dist/src/config/AppConfigBuilder.d.ts.map +0 -1
  547. package/dist/src/config/index.d.ts +0 -13
  548. package/dist/src/config/index.d.ts.map +0 -1
  549. package/dist/src/config/types.d.ts +0 -130
  550. package/dist/src/config/types.d.ts.map +0 -1
  551. package/dist/src/config.d.ts +0 -15
  552. package/dist/src/config.d.ts.map +0 -1
  553. package/dist/src/contexts/DataContext.d.ts +0 -139
  554. package/dist/src/contexts/DataContext.d.ts.map +0 -1
  555. package/dist/src/contexts/DimensionsContext.d.ts +0 -42
  556. package/dist/src/contexts/DimensionsContext.d.ts.map +0 -1
  557. package/dist/src/contexts/PaletteContext.d.ts +0 -53
  558. package/dist/src/contexts/PaletteContext.d.ts.map +0 -1
  559. package/dist/src/contexts/PrintModeContext.d.ts +0 -27
  560. package/dist/src/contexts/PrintModeContext.d.ts.map +0 -1
  561. package/dist/src/contexts/QwickAppContext.d.ts +0 -71
  562. package/dist/src/contexts/QwickAppContext.d.ts.map +0 -1
  563. package/dist/src/contexts/ThemeContext.d.ts +0 -65
  564. package/dist/src/contexts/ThemeContext.d.ts.map +0 -1
  565. package/dist/src/contexts/index.d.ts +0 -11
  566. package/dist/src/contexts/index.d.ts.map +0 -1
  567. package/dist/src/hooks/index.d.ts +0 -12
  568. package/dist/src/hooks/index.d.ts.map +0 -1
  569. package/dist/src/hooks/useBaseProps.d.ts +0 -101
  570. package/dist/src/hooks/useBaseProps.d.ts.map +0 -1
  571. package/dist/src/hooks/useDataBinding.d.ts +0 -22
  572. package/dist/src/hooks/useDataBinding.d.ts.map +0 -1
  573. package/dist/src/hooks/usePrintMode.d.ts +0 -39
  574. package/dist/src/hooks/usePrintMode.d.ts.map +0 -1
  575. package/dist/src/index.d.ts +0 -9
  576. package/dist/src/index.d.ts.map +0 -1
  577. package/dist/src/palettes/PaletteAutumn.d.ts +0 -10
  578. package/dist/src/palettes/PaletteAutumn.d.ts.map +0 -1
  579. package/dist/src/palettes/PaletteCosmic.d.ts +0 -10
  580. package/dist/src/palettes/PaletteCosmic.d.ts.map +0 -1
  581. package/dist/src/palettes/PaletteDefault.d.ts +0 -10
  582. package/dist/src/palettes/PaletteDefault.d.ts.map +0 -1
  583. package/dist/src/palettes/PaletteOcean.d.ts +0 -10
  584. package/dist/src/palettes/PaletteOcean.d.ts.map +0 -1
  585. package/dist/src/palettes/PaletteSpring.d.ts +0 -10
  586. package/dist/src/palettes/PaletteSpring.d.ts.map +0 -1
  587. package/dist/src/palettes/PaletteWinter.d.ts +0 -10
  588. package/dist/src/palettes/PaletteWinter.d.ts.map +0 -1
  589. package/dist/src/palettes/index.d.ts +0 -13
  590. package/dist/src/palettes/index.d.ts.map +0 -1
  591. package/dist/src/schemas/ActionSchema.d.ts +0 -21
  592. package/dist/src/schemas/ActionSchema.d.ts.map +0 -1
  593. package/dist/src/schemas/ArticleSchema.d.ts +0 -13
  594. package/dist/src/schemas/ArticleSchema.d.ts.map +0 -1
  595. package/dist/src/schemas/ButtonSchema.d.ts +0 -22
  596. package/dist/src/schemas/ButtonSchema.d.ts.map +0 -1
  597. package/dist/src/schemas/CardListGridSchema.d.ts +0 -17
  598. package/dist/src/schemas/CardListGridSchema.d.ts.map +0 -1
  599. package/dist/src/schemas/ChoiceInputFieldSchema.d.ts +0 -18
  600. package/dist/src/schemas/ChoiceInputFieldSchema.d.ts.map +0 -1
  601. package/dist/src/schemas/CodeSchema.d.ts +0 -18
  602. package/dist/src/schemas/CodeSchema.d.ts.map +0 -1
  603. package/dist/src/schemas/CollapsibleLayoutSchema.d.ts +0 -32
  604. package/dist/src/schemas/CollapsibleLayoutSchema.d.ts.map +0 -1
  605. package/dist/src/schemas/ContainerSchema.d.ts +0 -12
  606. package/dist/src/schemas/ContainerSchema.d.ts.map +0 -1
  607. package/dist/src/schemas/ContentSchema.d.ts +0 -21
  608. package/dist/src/schemas/ContentSchema.d.ts.map +0 -1
  609. package/dist/src/schemas/CoverImageHeaderSchema.d.ts +0 -28
  610. package/dist/src/schemas/CoverImageHeaderSchema.d.ts.map +0 -1
  611. package/dist/src/schemas/FeatureCardSchema.d.ts +0 -28
  612. package/dist/src/schemas/FeatureCardSchema.d.ts.map +0 -1
  613. package/dist/src/schemas/FeatureGridSchema.d.ts +0 -17
  614. package/dist/src/schemas/FeatureGridSchema.d.ts.map +0 -1
  615. package/dist/src/schemas/FeatureItemSchema.d.ts +0 -16
  616. package/dist/src/schemas/FeatureItemSchema.d.ts.map +0 -1
  617. package/dist/src/schemas/FooterItemSchema.d.ts +0 -15
  618. package/dist/src/schemas/FooterItemSchema.d.ts.map +0 -1
  619. package/dist/src/schemas/FooterSchema.d.ts +0 -20
  620. package/dist/src/schemas/FooterSchema.d.ts.map +0 -1
  621. package/dist/src/schemas/FooterSectionSchema.d.ts +0 -15
  622. package/dist/src/schemas/FooterSectionSchema.d.ts.map +0 -1
  623. package/dist/src/schemas/FormBlockSchema.d.ts +0 -19
  624. package/dist/src/schemas/FormBlockSchema.d.ts.map +0 -1
  625. package/dist/src/schemas/GridCellSchema.d.ts +0 -23
  626. package/dist/src/schemas/GridCellSchema.d.ts.map +0 -1
  627. package/dist/src/schemas/GridLayoutSchema.d.ts +0 -21
  628. package/dist/src/schemas/GridLayoutSchema.d.ts.map +0 -1
  629. package/dist/src/schemas/HeaderActionSchema.d.ts +0 -17
  630. package/dist/src/schemas/HeaderActionSchema.d.ts.map +0 -1
  631. package/dist/src/schemas/HeroBlockSchema.d.ts +0 -22
  632. package/dist/src/schemas/HeroBlockSchema.d.ts.map +0 -1
  633. package/dist/src/schemas/HtmlInputFieldSchema.d.ts +0 -18
  634. package/dist/src/schemas/HtmlInputFieldSchema.d.ts.map +0 -1
  635. package/dist/src/schemas/HtmlSchema.d.ts +0 -14
  636. package/dist/src/schemas/HtmlSchema.d.ts.map +0 -1
  637. package/dist/src/schemas/ImageSchema.d.ts +0 -32
  638. package/dist/src/schemas/ImageSchema.d.ts.map +0 -1
  639. package/dist/src/schemas/LogoSchema.d.ts +0 -35
  640. package/dist/src/schemas/LogoSchema.d.ts.map +0 -1
  641. package/dist/src/schemas/MarkdownSchema.d.ts +0 -14
  642. package/dist/src/schemas/MarkdownSchema.d.ts.map +0 -1
  643. package/dist/src/schemas/MetadataItemSchema.d.ts +0 -13
  644. package/dist/src/schemas/MetadataItemSchema.d.ts.map +0 -1
  645. package/dist/src/schemas/PageBannerHeaderSchema.d.ts +0 -28
  646. package/dist/src/schemas/PageBannerHeaderSchema.d.ts.map +0 -1
  647. package/dist/src/schemas/PageTemplateSchema.d.ts +0 -31
  648. package/dist/src/schemas/PageTemplateSchema.d.ts.map +0 -1
  649. package/dist/src/schemas/PaletteSwitcherSchema.d.ts +0 -16
  650. package/dist/src/schemas/PaletteSwitcherSchema.d.ts.map +0 -1
  651. package/dist/src/schemas/PrintConfigSchema.d.ts +0 -31
  652. package/dist/src/schemas/PrintConfigSchema.d.ts.map +0 -1
  653. package/dist/src/schemas/ProductCardSchema.d.ts +0 -39
  654. package/dist/src/schemas/ProductCardSchema.d.ts.map +0 -1
  655. package/dist/src/schemas/SafeSpanSchema.d.ts +0 -13
  656. package/dist/src/schemas/SafeSpanSchema.d.ts.map +0 -1
  657. package/dist/src/schemas/SectionSchema.d.ts +0 -16
  658. package/dist/src/schemas/SectionSchema.d.ts.map +0 -1
  659. package/dist/src/schemas/SelectInputFieldSchema.d.ts +0 -27
  660. package/dist/src/schemas/SelectInputFieldSchema.d.ts.map +0 -1
  661. package/dist/src/schemas/SwitchInputFieldSchema.d.ts +0 -18
  662. package/dist/src/schemas/SwitchInputFieldSchema.d.ts.map +0 -1
  663. package/dist/src/schemas/TextInputFieldSchema.d.ts +0 -22
  664. package/dist/src/schemas/TextInputFieldSchema.d.ts.map +0 -1
  665. package/dist/src/schemas/TextSchema.d.ts +0 -37
  666. package/dist/src/schemas/TextSchema.d.ts.map +0 -1
  667. package/dist/src/schemas/ThemeSwitcherSchema.d.ts +0 -19
  668. package/dist/src/schemas/ThemeSwitcherSchema.d.ts.map +0 -1
  669. package/dist/src/schemas/ViewSchema.d.ts +0 -66
  670. package/dist/src/schemas/ViewSchema.d.ts.map +0 -1
  671. package/dist/src/schemas/index.d.ts +0 -47
  672. package/dist/src/schemas/index.d.ts.map +0 -1
  673. package/dist/src/schemas/transformers/ComponentTransformer.d.ts +0 -128
  674. package/dist/src/schemas/transformers/ComponentTransformer.d.ts.map +0 -1
  675. package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts +0 -53
  676. package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts.map +0 -1
  677. package/dist/src/schemas/transformers/registry.d.ts +0 -18
  678. package/dist/src/schemas/transformers/registry.d.ts.map +0 -1
  679. package/dist/src/schemas/types/Serializable.d.ts +0 -46
  680. package/dist/src/schemas/types/Serializable.d.ts.map +0 -1
  681. package/dist/src/stories/_templates/SerializationTemplate.d.ts.map +0 -1
  682. package/dist/src/templates/TemplateResolver.d.ts +0 -52
  683. package/dist/src/templates/TemplateResolver.d.ts.map +0 -1
  684. package/dist/src/templates/index.d.ts +0 -7
  685. package/dist/src/templates/index.d.ts.map +0 -1
  686. package/dist/src/types/CacheProvider.d.ts +0 -18
  687. package/dist/src/types/CacheProvider.d.ts.map +0 -1
  688. package/dist/src/types/CollapsibleLayout.d.ts +0 -142
  689. package/dist/src/types/CollapsibleLayout.d.ts.map +0 -1
  690. package/dist/src/types/ContentProxy.d.ts +0 -47
  691. package/dist/src/types/ContentProxy.d.ts.map +0 -1
  692. package/dist/src/types/DataTypes.d.ts +0 -185
  693. package/dist/src/types/DataTypes.d.ts.map +0 -1
  694. package/dist/src/types/TemplateProvider.d.ts +0 -10
  695. package/dist/src/types/TemplateProvider.d.ts.map +0 -1
  696. package/dist/src/types/TemplateResolver.d.ts +0 -23
  697. package/dist/src/types/TemplateResolver.d.ts.map +0 -1
  698. package/dist/src/types/index.d.ts +0 -82
  699. package/dist/src/types/index.d.ts.map +0 -1
  700. package/dist/src/utils/breakpoints.d.ts +0 -35
  701. package/dist/src/utils/breakpoints.d.ts.map +0 -1
  702. package/dist/src/utils/cssUtils.d.ts +0 -17
  703. package/dist/src/utils/cssUtils.d.ts.map +0 -1
  704. package/dist/src/utils/customPaletteManager.d.ts +0 -8
  705. package/dist/src/utils/customPaletteManager.d.ts.map +0 -1
  706. package/dist/src/utils/dimensions.d.ts +0 -34
  707. package/dist/src/utils/dimensions.d.ts.map +0 -1
  708. package/dist/src/utils/htmlTransform.d.ts +0 -44
  709. package/dist/src/utils/htmlTransform.d.ts.map +0 -1
  710. package/dist/src/utils/index.d.ts +0 -16
  711. package/dist/src/utils/index.d.ts.map +0 -1
  712. package/dist/src/utils/logger.d.ts +0 -26
  713. package/dist/src/utils/logger.d.ts.map +0 -1
  714. package/dist/src/utils/paletteUtils.d.ts +0 -38
  715. package/dist/src/utils/paletteUtils.d.ts.map +0 -1
  716. package/dist/src/utils/persistenceUtils.d.ts +0 -31
  717. package/dist/src/utils/persistenceUtils.d.ts.map +0 -1
  718. package/dist/src/utils/reactUtils.d.ts +0 -33
  719. package/dist/src/utils/reactUtils.d.ts.map +0 -1
  720. package/dist/src/utils/spacing.d.ts +0 -34
  721. package/dist/src/utils/spacing.d.ts.map +0 -1
  722. package/dist/src/utils/themePerformanceMonitor.d.ts +0 -32
  723. package/dist/src/utils/themePerformanceMonitor.d.ts.map +0 -1
  724. package/dist/src/utils/themeUtils.d.ts +0 -27
  725. package/dist/src/utils/themeUtils.d.ts.map +0 -1
  726. package/dist/tests/ConsoleWarningTest.d.ts +0 -5
  727. package/dist/tests/ConsoleWarningTest.d.ts.map +0 -1
  728. package/dist/tests/StorageKeyTest.d.ts +0 -6
  729. package/dist/tests/StorageKeyTest.d.ts.map +0 -1
  730. package/dist/tests/ThemeStorageKeyTest.d.ts +0 -6
  731. package/dist/tests/ThemeStorageKeyTest.d.ts.map +0 -1
  732. /package/dist/palettes/{PaletteAutumn.css → palette-autumn.1.4.9.css} +0 -0
  733. /package/dist/palettes/{PaletteCosmic.css → palette-cosmic.1.4.9.css} +0 -0
  734. /package/dist/palettes/{PaletteDefault.css → palette-default.1.4.9.css} +0 -0
  735. /package/dist/palettes/{PaletteOcean.css → palette-ocean.1.4.9.css} +0 -0
  736. /package/dist/palettes/{PaletteSpring.css → palette-spring.1.4.9.css} +0 -0
  737. /package/dist/palettes/{PaletteWinter.css → palette-winter.1.4.9.css} +0 -0
  738. /package/dist/{src/stories → stories}/_templates/SerializationTemplate.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"reactUtils.d.ts","sourceRoot":"","sources":["../../src/utils/reactUtils.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlC,qCAAqC;AACrC,KAAK,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,YAAY,GAAG,SAOjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,QAqBlC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CA2BhE"}
1
+ {"version":3,"file":"reactUtils.d.ts","sourceRoot":"","sources":["../../src/utils/reactUtils.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,gCAAgC;AAChC,KAAK,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAO,YAAY,GAAG,SAUjD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAO,gBAalC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CA2BhE"}
@@ -11,7 +11,7 @@ export type SpacingContext = 'padding' | 'margin' | 'gap';
11
11
  /**
12
12
  * Resolves a spacing value to MUI spacing units or CSS value
13
13
  */
14
- export declare function resolveSpacing(value: SpacingValue, context?: SpacingContext): number | string | undefined;
14
+ export declare function resolveSpacing(value: SpacingValue): number | string | undefined;
15
15
  /**
16
16
  * Resolves spacing props with support for directional values
17
17
  */
@@ -30,5 +30,5 @@ export declare function resolveSpacingProps(props: {
30
30
  marginLeft?: SpacingValue;
31
31
  marginX?: SpacingValue;
32
32
  marginY?: SpacingValue;
33
- }): any;
33
+ }): Record<string, string | number | undefined>;
34
34
  //# sourceMappingURL=spacing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spacing.d.ts","sourceRoot":"","sources":["../../src/utils/spacing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEjH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAoB1D;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,cAA0B,GAClC,MAAM,GAAG,MAAM,GAAG,SAAS,CA+C7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,OAkDA"}
1
+ {"version":3,"file":"spacing.d.ts","sourceRoot":"","sources":["../../src/utils/spacing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEjH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAoB1D;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,GAClB,MAAM,GAAG,MAAM,GAAG,SAAS,CA+C7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,+CAkDA"}
@@ -1 +1 @@
1
- {"version":3,"file":"themePerformanceMonitor.d.ts","sourceRoot":"","sources":["../../src/utils/themePerformanceMonitor.js"],"names":[],"mappings":"AA2GO;;;;;;SAA8E;AAC9E,iDAA8E;AAC9E,mDAAwE;;AAL/E,+DAA8D;AAxG9D;;;;GAIG;AAEH;IAEI,oBAAsB;IACtB,mBAAuD;IAOzD,4BAUC;IAED,gDAkCC;IAED;;;;;;aAiBC;IAED,sBAaC;IAED,cAEC;CACF"}
1
+ {"version":3,"file":"themePerformanceMonitor.d.ts","sourceRoot":"","sources":["../../src/utils/themePerformanceMonitor.js"],"names":[],"mappings":"AAmHO;;;;;;SAA8E;AAC9E,iDAA8E;AAC9E,mDAAwE;;AAL/E,+DAA8D;AAhH9D;;;;GAIG;AAEH;IAEI,oBAAsB;IACtB,mBAAuD;IAOzD,4BAeC;IAED,gDAqCC;IAED;;;;;;aAiBC;IAED,sBAaC;IAED,cAEC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"themeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/themeUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGtE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,SAIlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,SAAS,KAAG,IAM3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,QAAO,eAEjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAO,SAA6B,KAAG,eAKvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,IAWlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,SAAS,KAAG,IAGtD,CAAC"}
1
+ {"version":3,"file":"themeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/themeUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGtE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,SAOlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,SAAS,KAAG,IAS3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,QAAO,eAKjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAO,SAA6B,KAAG,eAKvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,IAclC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,SAAS,KAAG,IAMtD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qwickapps/react-framework",
3
- "version": "1.4.9",
3
+ "version": "1.5.1",
4
4
  "type": "module",
5
5
  "description": "Complete React framework with responsive navigation, flexible layouts, theming system, and reusable components for building modern applications.",
6
6
  "main": "dist/index.js",
@@ -37,18 +37,20 @@
37
37
  "QUICK_START_GUIDE.md"
38
38
  ],
39
39
  "scripts": {
40
- "build": "rollup -c && npm run copy-palettes",
41
- "copy-palettes": "cp src/palettes/*.css dist/palettes/",
42
- "build:dev": "NODE_ENV=development rollup -c && npm run copy-palettes",
43
- "build:prod": "NODE_ENV=production STRIP_LOGS=true rollup -c && npm run copy-palettes",
40
+ "build": "rollup -c && npm run build-palettes",
41
+ "build-palettes": "node scripts/build-palettes.cjs",
42
+ "build:dev": "NODE_ENV=development rollup -c && npm run build-palettes",
43
+ "build:prod": "NODE_ENV=production STRIP_LOGS=true rollup -c && npm run build-palettes",
44
44
  "dev": "rollup -c -w",
45
45
  "test": "jest",
46
46
  "test:watch": "jest --watch",
47
47
  "test:coverage": "jest --coverage",
48
48
  "clean": "rm -rf dist node_modules .rollup.cache storybook-static",
49
49
  "create-project": "node scripts/create-qwickapps-project.js",
50
- "prepublishOnly": "npm run build",
50
+ "validate:clean-install": "./qa/clean-install/validate.sh",
51
+ "prepublishOnly": "npm run build && npm run validate:clean-install",
51
52
  "publish": "npm publish",
53
+ "publish:palettes": "../../products/qwickapps/anvil/publish-palettes.sh",
52
54
  "storybook": "storybook dev -p 6006",
53
55
  "build-storybook": "storybook build"
54
56
  },
@@ -69,7 +71,7 @@
69
71
  "author": "QwickApps",
70
72
  "license": "PolyForm-Shield-1.0.0",
71
73
  "dependencies": {
72
- "@qwickapps/schema": "^1.3.1",
74
+ "@qwickapps/schema": "^1.3.2",
73
75
  "marked": "^4.3.0",
74
76
  "md5": "^2.3.0",
75
77
  "sanitize-html": "^2.17.0"
@@ -112,8 +114,8 @@
112
114
  "@types/md5": "^2.3.5",
113
115
  "@types/mustache": "^4.2.5",
114
116
  "@types/node": "^24.1.0",
115
- "@types/react": "^18.0.0",
116
- "@types/react-dom": "^18.0.0",
117
+ "@types/react": "^19.0.0",
118
+ "@types/react-dom": "^19.0.0",
117
119
  "@types/react-router-dom": "^5.3.3",
118
120
  "@types/sanitize-html": "^2.16.0",
119
121
  "babel-jest": "^29.0.0",
@@ -141,6 +143,15 @@
141
143
  "moduleNameMapper": {
142
144
  "\\.(css|less|scss|sass)$": "identity-obj-proxy"
143
145
  },
146
+ "globals": {
147
+ "import.meta": {
148
+ "env": {
149
+ "DEV": false,
150
+ "PROD": true,
151
+ "MODE": "test"
152
+ }
153
+ }
154
+ },
144
155
  "transform": {
145
156
  "^.+\\.(js|jsx)$": "babel-jest",
146
157
  "^.+\\.(ts|tsx)$": "ts-jest"
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Build Palettes Script
5
+ * - Adds version numbers to filenames
6
+ * - Generates minified versions
7
+ * - Updates manifest.json with new filenames
8
+ */
9
+
10
+ const fs = require('fs');
11
+ const path = require('path');
12
+
13
+ const SRC_DIR = path.join(__dirname, '../src/palettes');
14
+ const DIST_DIR = path.join(__dirname, '../dist/palettes');
15
+ const PACKAGE_JSON = path.join(__dirname, '../package.json');
16
+
17
+ // Read version from package.json
18
+ const packageJson = JSON.parse(fs.readFileSync(PACKAGE_JSON, 'utf-8'));
19
+ const VERSION = packageJson.version;
20
+
21
+ console.log(`Building palettes v${VERSION}...`);
22
+
23
+ // Ensure dist directory exists
24
+ if (!fs.existsSync(DIST_DIR)) {
25
+ fs.mkdirSync(DIST_DIR, { recursive: true });
26
+ }
27
+
28
+ // Simple CSS minifier
29
+ function minifyCSS(css) {
30
+ return css
31
+ // Remove comments
32
+ .replace(/\/\*[\s\S]*?\*\//g, '')
33
+ // Remove whitespace around selectors and braces
34
+ .replace(/\s*([{}:;,])\s*/g, '$1')
35
+ // Remove trailing semicolons
36
+ .replace(/;}/g, '}')
37
+ // Remove empty rules
38
+ .replace(/[^{}]+\{\}/g, '')
39
+ // Trim
40
+ .trim();
41
+ }
42
+
43
+ // Convert PascalCase to kebab-case (PaletteAutumn -> palette-autumn)
44
+ function toKebabCase(str) {
45
+ return str
46
+ .replace(/^Palette/, '') // Remove 'Palette' prefix
47
+ .replace(/([a-z])([A-Z])/g, '$1-$2') // Add hyphen before capitals
48
+ .toLowerCase();
49
+ }
50
+
51
+ // Process palette files
52
+ const files = fs.readdirSync(SRC_DIR).filter(f => f.endsWith('.css') && f.startsWith('Palette'));
53
+
54
+ files.forEach(file => {
55
+ const baseName = file.replace('.css', '');
56
+ const paletteId = toKebabCase(baseName); // e.g., 'autumn'
57
+ const content = fs.readFileSync(path.join(SRC_DIR, file), 'utf-8');
58
+
59
+ // Generate filenames using kebab-case pattern
60
+ const versionedName = `palette-${paletteId}.${VERSION}.css`;
61
+ const versionedMinName = `palette-${paletteId}.${VERSION}.min.css`;
62
+ const latestName = `palette-${paletteId}.latest.css`;
63
+ const latestMinName = `palette-${paletteId}.latest.min.css`;
64
+
65
+ // Write versioned files
66
+ fs.writeFileSync(path.join(DIST_DIR, versionedName), content);
67
+ console.log(`✓ ${versionedName}`);
68
+
69
+ const minified = minifyCSS(content);
70
+ fs.writeFileSync(path.join(DIST_DIR, versionedMinName), minified);
71
+ console.log(`✓ ${versionedMinName}`);
72
+
73
+ // Write latest aliases (same content as versioned)
74
+ fs.writeFileSync(path.join(DIST_DIR, latestName), content);
75
+ console.log(`✓ ${latestName}`);
76
+
77
+ fs.writeFileSync(path.join(DIST_DIR, latestMinName), minified);
78
+ console.log(`✓ ${latestMinName}`);
79
+ });
80
+
81
+ // Copy and update manifest.json
82
+ const manifestPath = path.join(SRC_DIR, 'manifest.json');
83
+ const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
84
+
85
+ // Update version
86
+ manifest.version = VERSION;
87
+
88
+ // Update file references with kebab-case versioned names
89
+ manifest.palettes = manifest.palettes.map(palette => {
90
+ const paletteId = palette.id; // e.g., 'autumn', 'default'
91
+ return {
92
+ ...palette,
93
+ version: VERSION,
94
+ file: `palette-${paletteId}.${VERSION}.css`,
95
+ fileMinified: `palette-${paletteId}.${VERSION}.min.css`,
96
+ fileLatest: `palette-${paletteId}.latest.css`,
97
+ fileLatestMinified: `palette-${paletteId}.latest.min.css`
98
+ };
99
+ });
100
+
101
+ // Write updated manifest
102
+ fs.writeFileSync(
103
+ path.join(DIST_DIR, 'manifest.json'),
104
+ JSON.stringify(manifest, null, 2)
105
+ );
106
+ console.log(`✓ manifest.json (updated with kebab-case versioned filenames)`);
107
+
108
+ // Copy index.css if it exists
109
+ const indexCss = path.join(SRC_DIR, 'index.css');
110
+ if (fs.existsSync(indexCss)) {
111
+ fs.copyFileSync(indexCss, path.join(DIST_DIR, 'index.css'));
112
+ console.log(`✓ index.css`);
113
+ }
114
+
115
+ console.log('\n✅ Palette build complete!');
116
+ console.log(` ${files.length} palettes × 4 versions each:`);
117
+ console.log(` - palette-{id}.${VERSION}.css (versioned)`);
118
+ console.log(` - palette-{id}.${VERSION}.min.css (versioned minified)`);
119
+ console.log(` - palette-{id}.latest.css (latest alias)`);
120
+ console.log(` - palette-{id}.latest.min.css (latest minified alias)`);
@@ -81,7 +81,7 @@ const sampleCmsData = {
81
81
  };
82
82
 
83
83
  // Wrapper component for tests that need providers
84
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
84
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
85
85
  children,
86
86
  dataProvider
87
87
  }) => (
@@ -191,8 +191,8 @@ describe('Breadcrumbs', () => {
191
191
  it('handles default link behavior when no onNavigate is provided', () => {
192
192
  // Create a mock for window.location.href
193
193
  const originalLocation = window.location;
194
- delete (window as any).location;
195
- window.location = { ...originalLocation, href: '' } as any;
194
+ delete (window as Window & typeof globalThis).location;
195
+ window.location = { ...originalLocation, href: '' } as Location;
196
196
 
197
197
  const itemsWithHref: BreadcrumbItem[] = [
198
198
  { label: 'Home', href: '/' },
@@ -74,7 +74,7 @@ const sampleCmsData = {
74
74
  };
75
75
 
76
76
  // Wrapper component for tests that need providers
77
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
77
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
78
78
  children,
79
79
  dataProvider
80
80
  }) => (
@@ -573,7 +573,7 @@ describe('Button', () => {
573
573
  it.skip('preserves component marking for QwickApp framework', () => {
574
574
  // The component should be marked as a QwickApp component
575
575
  // This is important for framework identification - test skipped due to test environment limitations
576
- const buttonComponent = Button as any;
576
+ const buttonComponent = Button as unknown as { QWICKAPP_COMPONENT?: boolean };
577
577
  expect(buttonComponent.QWICKAPP_COMPONENT).toBeTruthy();
578
578
  });
579
579
  });
@@ -665,7 +665,7 @@ describe('Button', () => {
665
665
  it('handles invalid variant gracefully', () => {
666
666
  render(
667
667
  <TestWrapper>
668
- <Button label="Invalid Variant" variant={'invalid' as any} />
668
+ <Button label="Invalid Variant" variant={'invalid' as 'primary' | 'secondary' | 'outlined' | 'text' | 'contained'} />
669
669
  </TestWrapper>
670
670
  );
671
671
 
@@ -84,7 +84,7 @@ const sampleCmsData = {
84
84
  };
85
85
 
86
86
  // Wrapper component for tests that need providers
87
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
87
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
88
88
  children,
89
89
  dataProvider
90
90
  }) => (
@@ -104,9 +104,9 @@ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> =
104
104
  describe('CardListGrid', () => {
105
105
  describe('Traditional Props Usage', () => {
106
106
  it('renders with custom render function', () => {
107
- const customRenderItem = (item: any, index: number) => (
107
+ const customRenderItem = (item: Record<string, unknown>, index: number) => (
108
108
  <div key={index} data-testid={`custom-item-${index}`}>
109
- {item.name}
109
+ {item.name as string}
110
110
  </div>
111
111
  );
112
112
 
@@ -188,11 +188,11 @@ describe('CardListGrid', () => {
188
188
  });
189
189
 
190
190
  it('handles empty items array gracefully', () => {
191
- const customRenderItem = (item: any, index: number) => (
191
+ const customRenderItem = (item: Record<string, unknown>, index: number) => (
192
192
  <div key={index}>Empty</div>
193
193
  );
194
194
 
195
- const { container } = render(
195
+ render(
196
196
  <TestWrapper>
197
197
  <CardListGrid
198
198
  items={[]}
@@ -100,7 +100,7 @@ const sampleCmsData = {
100
100
  };
101
101
 
102
102
  // Wrapper component for tests that need providers
103
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
103
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
104
104
  children,
105
105
  dataProvider
106
106
  }) => (
@@ -641,7 +641,7 @@ describe('ChoiceInputField', () => {
641
641
  it.skip('preserves component marking for QwickApp framework', () => {
642
642
  // The component should be marked as a QwickApp component
643
643
  // This is important for framework identification - test skipped due to test environment limitations
644
- const choiceInputFieldComponent = ChoiceInputField as any;
644
+ const choiceInputFieldComponent = ChoiceInputField as unknown as { QWICKAPP_COMPONENT?: boolean };
645
645
  expect(choiceInputFieldComponent.QWICKAPP_COMPONENT).toBeTruthy();
646
646
  });
647
647
  });
@@ -80,7 +80,7 @@ const sampleCmsData = {
80
80
  };
81
81
 
82
82
  // Wrapper component for tests that need providers
83
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
83
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
84
84
  children,
85
85
  dataProvider
86
86
  }) => (
@@ -508,7 +508,7 @@ describe('Code', () => {
508
508
  it.skip('preserves component marking for QwickApp framework', () => {
509
509
  // The component should be marked as a QwickApp component
510
510
  // This is important for framework identification - test skipped due to test environment limitations
511
- const codeComponent = Code as any;
511
+ const codeComponent = Code as unknown as { QWICKAPP_COMPONENT?: boolean };
512
512
  expect(codeComponent.QWICKAPP_COMPONENT).toBeTruthy();
513
513
  });
514
514
  });
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import React from 'react';
8
- import { render, waitFor, screen } from '@testing-library/react';
8
+ import { render, waitFor } from '@testing-library/react';
9
9
  import Content from '../../components/blocks/Content';
10
10
  import { DataProvider } from '../../contexts/DataContext';
11
11
  import { JsonDataProvider } from '@qwickapps/schema';
@@ -52,7 +52,7 @@ const sampleCmsData = {
52
52
  };
53
53
 
54
54
  // Wrapper component for tests that need providers
55
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
55
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
56
56
  children,
57
57
  dataProvider
58
58
  }) => (
@@ -121,9 +121,9 @@ describe.skip('Content', () => {
121
121
  const variants = ['default', 'elevated', 'outlined', 'filled'] as const;
122
122
 
123
123
  variants.forEach(variant => {
124
- const { container, unmount } = render(
124
+ const { unmount } = render(
125
125
  <TestWrapper>
126
- <Content
126
+ <Content
127
127
  title={`${variant} variant`}
128
128
  variant={variant}
129
129
  />
@@ -470,9 +470,9 @@ describe.skip('Content', () => {
470
470
  });
471
471
 
472
472
  it('handles custom CSS classes and styles', () => {
473
- const { container } = render(
473
+ render(
474
474
  <TestWrapper>
475
- <Content
475
+ <Content
476
476
  title="Custom Styled"
477
477
  className="custom-content"
478
478
  sx={{ border: '1px solid red' }}
@@ -77,7 +77,7 @@ const mockActions = [
77
77
  ];
78
78
 
79
79
  // Wrapper component for tests that need providers
80
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
80
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
81
81
  children,
82
82
  dataProvider
83
83
  }) => {
@@ -430,9 +430,9 @@ describe('CoverImageHeader', () => {
430
430
  });
431
431
 
432
432
  it('handles custom CSS classes and styles', () => {
433
- const { container } = render(
433
+ render(
434
434
  <TestWrapper>
435
- <CoverImageHeader
435
+ <CoverImageHeader
436
436
  title="Custom Styled"
437
437
  className="custom-header"
438
438
  sx={{ border: '1px solid red' }}
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import React from 'react';
8
- import { render, waitFor, screen } from '@testing-library/react';
8
+ import { render, waitFor } from '@testing-library/react';
9
9
  import FeatureCard from '../../blocks/FeatureCard';
10
10
  import { DataProvider } from '../../../contexts/DataContext';
11
11
  import { JsonDataProvider } from '@qwickapps/schema';
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import React from 'react';
8
- import { render, waitFor, screen } from '@testing-library/react';
8
+ import { render, waitFor } from '@testing-library/react';
9
9
  import FeatureGrid from '../../blocks/FeatureGrid';
10
10
  import { DataProvider } from '../../../contexts/DataContext';
11
11
  import { JsonDataProvider } from '@qwickapps/schema';
@@ -99,7 +99,7 @@ const sampleFeatures: FeatureItem[] = [
99
99
  ];
100
100
 
101
101
  // Wrapper component for tests that need providers
102
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
102
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
103
103
  children,
104
104
  dataProvider
105
105
  }) => (
@@ -206,9 +206,9 @@ describe.skip('FeatureGrid', () => {
206
206
  });
207
207
 
208
208
  it('supports grid props', () => {
209
- const { container } = render(
209
+ render(
210
210
  <TestWrapper>
211
- <FeatureGrid
211
+ <FeatureGrid
212
212
  features={sampleFeatures}
213
213
  span={12}
214
214
  xs={12}
@@ -105,7 +105,7 @@ const sampleItems: FooterItem[] = [
105
105
  ];
106
106
 
107
107
  // Wrapper component for tests that need providers
108
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
108
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
109
109
  children,
110
110
  dataProvider
111
111
  }) => (
@@ -314,9 +314,9 @@ describe.skip('Footer', () => {
314
314
  });
315
315
 
316
316
  it('renders with custom CSS classes and styles', () => {
317
- const { container } = render(
317
+ render(
318
318
  <TestWrapper>
319
- <Footer
319
+ <Footer
320
320
  sections={sampleSections}
321
321
  className="custom-footer"
322
322
  sx={{ backgroundColor: 'red' }}
@@ -97,7 +97,7 @@ const MockFooter: React.FC = () => (
97
97
  );
98
98
 
99
99
  // Wrapper component for tests that need providers
100
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any; appName?: string }> = ({
100
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown; appName?: string }> = ({
101
101
  children,
102
102
  dataProvider,
103
103
  appName = 'Test App'
@@ -652,7 +652,7 @@ describe('FormBlock', () => {
652
652
  it.skip('preserves component marking for QwickApp framework', () => {
653
653
  // The component should be marked as a QwickApp component
654
654
  // This is important for framework identification - test skipped due to test environment limitations
655
- const formBlockComponent = FormBlock as any;
655
+ const formBlockComponent = FormBlock as unknown as { QWICKAPP_COMPONENT?: boolean };
656
656
  expect(formBlockComponent.QWICKAPP_COMPONENT).toBeTruthy();
657
657
  });
658
658
  });
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import React from 'react';
8
- import { render, waitFor, screen } from '@testing-library/react';
8
+ import { render, waitFor } from '@testing-library/react';
9
9
  import HeroBlock from '../../blocks/HeroBlock';
10
10
  import { DataProvider } from '../../../contexts/DataContext';
11
11
  import { JsonDataProvider } from '@qwickapps/schema';
@@ -58,7 +58,7 @@ const sampleActions: ButtonProps[] = [
58
58
  ];
59
59
 
60
60
  // Wrapper component for tests that need providers
61
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
61
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
62
62
  children,
63
63
  dataProvider
64
64
  }) => (
@@ -242,9 +242,9 @@ describe('HeroBlock', () => {
242
242
  });
243
243
 
244
244
  it('renders with custom CSS classes and styles', () => {
245
- const { container } = render(
245
+ render(
246
246
  <TestWrapper>
247
- <HeroBlock
247
+ <HeroBlock
248
248
  title="Custom Hero"
249
249
  className="custom-hero"
250
250
  sx={{ backgroundColor: 'red' }}
@@ -680,7 +680,7 @@ describe('HeroBlock', () => {
680
680
 
681
681
  expect(parsedData.data).toHaveProperty('title', 'Minimal Hero');
682
682
  // undefined properties should be either excluded or set to undefined
683
- expect(parsedData.data.subtitle === undefined || !parsedData.data.hasOwnProperty('subtitle')).toBe(true);
683
+ expect(parsedData.data.subtitle === undefined || !Object.prototype.hasOwnProperty.call(parsedData.data, 'subtitle')).toBe(true);
684
684
 
685
685
  const deserializedComponent = ComponentTransformer.deserialize(serializedData);
686
686
  expect(React.isValidElement(deserializedComponent)).toBe(true);
@@ -81,7 +81,7 @@ const sampleCmsData = {
81
81
  };
82
82
 
83
83
  // Wrapper component for tests that need providers
84
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
84
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
85
85
  children,
86
86
  dataProvider
87
87
  }) => (
@@ -316,7 +316,7 @@ describe.skip('HtmlInputField', () => {
316
316
  selectionEnd: 5,
317
317
  setSelectionRange: jest.fn(),
318
318
  focus: jest.fn()
319
- } as any;
319
+ } as unknown as HTMLTextAreaElement;
320
320
 
321
321
  jest.spyOn(document, 'getElementById').mockReturnValue(mockTextarea);
322
322
 
@@ -345,7 +345,7 @@ describe.skip('HtmlInputField', () => {
345
345
  selectionEnd: 5,
346
346
  setSelectionRange: jest.fn(),
347
347
  focus: jest.fn()
348
- } as any;
348
+ } as unknown as HTMLTextAreaElement;
349
349
 
350
350
  jest.spyOn(document, 'getElementById').mockReturnValue(mockTextarea);
351
351
 
@@ -475,8 +475,8 @@ describe.skip('HtmlInputField', () => {
475
475
  selectionEnd: 4,
476
476
  setSelectionRange: jest.fn(),
477
477
  focus: jest.fn()
478
- } as any;
479
-
478
+ } as unknown as HTMLTextAreaElement;
479
+
480
480
  jest.spyOn(document, 'getElementById').mockReturnValue(mockTextarea);
481
481
 
482
482
  const handleChange = jest.fn();
@@ -644,7 +644,7 @@ describe.skip('HtmlInputField', () => {
644
644
  it.skip('preserves component marking for QwickApp framework', () => {
645
645
  // The component should be marked as a QwickApp component
646
646
  // This is important for framework identification - test skipped due to test environment limitations
647
- const htmlInputFieldComponent = HtmlInputField as any;
647
+ const htmlInputFieldComponent = HtmlInputField as unknown as { QWICKAPP_COMPONENT?: boolean };
648
648
  expect(htmlInputFieldComponent.QWICKAPP_COMPONENT).toBeTruthy();
649
649
  });
650
650
  });
@@ -707,8 +707,8 @@ describe.skip('HtmlInputField', () => {
707
707
  selectionEnd: 4,
708
708
  setSelectionRange: jest.fn(),
709
709
  focus: jest.fn()
710
- } as any;
711
-
710
+ } as unknown as HTMLTextAreaElement;
711
+
712
712
  jest.spyOn(document, 'getElementById').mockReturnValue(mockTextarea);
713
713
 
714
714
  const handleChange = jest.fn();
@@ -79,7 +79,7 @@ const mockActions = [
79
79
  ];
80
80
 
81
81
  // Wrapper component for tests that need providers
82
- const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: any }> = ({
82
+ const TestWrapper: React.FC<{ children: React.ReactNode; dataProvider?: unknown }> = ({
83
83
  children,
84
84
  dataProvider
85
85
  }) => (
@@ -247,9 +247,9 @@ describe('PageBannerHeader', () => {
247
247
  });
248
248
 
249
249
  it('renders with custom height', () => {
250
- const { container } = render(
250
+ render(
251
251
  <TestWrapper>
252
- <PageBannerHeader
252
+ <PageBannerHeader
253
253
  title="Custom Height"
254
254
  coverImage="/test-cover.jpg"
255
255
  height={400}
@@ -505,8 +505,8 @@ describe('PageBannerHeader', () => {
505
505
  process.env.NODE_ENV = 'production';
506
506
 
507
507
  const emptyDataProvider = new JsonDataProvider({ data: {} });
508
-
509
- const { container } = render(
508
+
509
+ render(
510
510
  <TestWrapper dataProvider={emptyDataProvider}>
511
511
  <PageBannerHeader dataSource="pageBannerHeaders.nonexistentData" />
512
512
  </TestWrapper>
@@ -588,9 +588,9 @@ describe('PageBannerHeader', () => {
588
588
  });
589
589
 
590
590
  it('handles custom CSS classes and styles', () => {
591
- const { container } = render(
591
+ render(
592
592
  <TestWrapper>
593
- <PageBannerHeader
593
+ <PageBannerHeader
594
594
  title="Custom Styled"
595
595
  className="custom-header"
596
596
  sx={{ border: '1px solid red' }}