@qwickapps/react-framework 1.4.8 → 1.5.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 (730) hide show
  1. package/README.md +36 -3
  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 +4929 -2942
  118. package/dist/index.js +4426 -2410
  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.latest.css +172 -0
  124. package/dist/palettes/palette-autumn.latest.min.css +1 -0
  125. package/dist/palettes/palette-cosmic.1.4.9.min.css +1 -0
  126. package/dist/palettes/palette-cosmic.1.5.0.css +172 -0
  127. package/dist/palettes/palette-cosmic.1.5.0.min.css +1 -0
  128. package/dist/palettes/palette-cosmic.latest.css +172 -0
  129. package/dist/palettes/palette-cosmic.latest.min.css +1 -0
  130. package/dist/palettes/palette-default.1.4.9.min.css +1 -0
  131. package/dist/palettes/palette-default.1.5.0.css +178 -0
  132. package/dist/palettes/palette-default.1.5.0.min.css +1 -0
  133. package/dist/palettes/palette-default.latest.css +178 -0
  134. package/dist/palettes/palette-default.latest.min.css +1 -0
  135. package/dist/palettes/palette-ocean.1.4.9.min.css +1 -0
  136. package/dist/palettes/palette-ocean.1.5.0.css +172 -0
  137. package/dist/palettes/palette-ocean.1.5.0.min.css +1 -0
  138. package/dist/palettes/palette-ocean.latest.css +172 -0
  139. package/dist/palettes/palette-ocean.latest.min.css +1 -0
  140. package/dist/palettes/palette-spring.1.4.9.min.css +1 -0
  141. package/dist/palettes/palette-spring.1.5.0.css +160 -0
  142. package/dist/palettes/palette-spring.1.5.0.min.css +1 -0
  143. package/dist/palettes/palette-spring.latest.css +160 -0
  144. package/dist/palettes/palette-spring.latest.min.css +1 -0
  145. package/dist/palettes/palette-winter.1.4.9.min.css +1 -0
  146. package/dist/palettes/palette-winter.1.5.0.css +172 -0
  147. package/dist/palettes/palette-winter.1.5.0.min.css +1 -0
  148. package/dist/palettes/palette-winter.latest.css +172 -0
  149. package/dist/palettes/palette-winter.latest.min.css +1 -0
  150. package/dist/schemas/ButtonSchema.d.ts +5 -2
  151. package/dist/schemas/ButtonSchema.d.ts.map +1 -1
  152. package/dist/schemas/CardListGridSchema.d.ts +4 -4
  153. package/dist/schemas/CardListGridSchema.d.ts.map +1 -1
  154. package/dist/schemas/ChoiceInputFieldSchema.d.ts +2 -2
  155. package/dist/schemas/ChoiceInputFieldSchema.d.ts.map +1 -1
  156. package/dist/schemas/CodeSchema.d.ts +1 -2
  157. package/dist/schemas/CodeSchema.d.ts.map +1 -1
  158. package/dist/schemas/FormBlockSchema.d.ts +2 -2
  159. package/dist/schemas/FormBlockSchema.d.ts.map +1 -1
  160. package/dist/schemas/GridCellSchema.d.ts +2 -4
  161. package/dist/schemas/GridCellSchema.d.ts.map +1 -1
  162. package/dist/schemas/GridLayoutSchema.d.ts +3 -5
  163. package/dist/schemas/GridLayoutSchema.d.ts.map +1 -1
  164. package/dist/schemas/HeroBlockSchema.d.ts +2 -2
  165. package/dist/schemas/HeroBlockSchema.d.ts.map +1 -1
  166. package/dist/schemas/HtmlInputFieldSchema.d.ts +2 -2
  167. package/dist/schemas/HtmlInputFieldSchema.d.ts.map +1 -1
  168. package/dist/schemas/ImageSchema.d.ts +2 -2
  169. package/dist/schemas/ImageSchema.d.ts.map +1 -1
  170. package/dist/schemas/SectionSchema.d.ts +2 -4
  171. package/dist/schemas/SectionSchema.d.ts.map +1 -1
  172. package/dist/schemas/SelectInputFieldSchema.d.ts +2 -2
  173. package/dist/schemas/SelectInputFieldSchema.d.ts.map +1 -1
  174. package/dist/schemas/SwitchInputFieldSchema.d.ts +2 -2
  175. package/dist/schemas/SwitchInputFieldSchema.d.ts.map +1 -1
  176. package/dist/schemas/TextInputFieldSchema.d.ts +2 -2
  177. package/dist/schemas/TextInputFieldSchema.d.ts.map +1 -1
  178. package/dist/schemas/ViewSchema.d.ts +8 -7
  179. package/dist/schemas/ViewSchema.d.ts.map +1 -1
  180. package/dist/schemas/transformers/ComponentTransformer.d.ts +2 -2
  181. package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -1
  182. package/dist/schemas/transformers/ReactNodeTransformer.d.ts +2 -2
  183. package/dist/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -1
  184. package/dist/schemas/transformers/registry.d.ts +0 -7
  185. package/dist/schemas/transformers/registry.d.ts.map +1 -1
  186. package/dist/schemas/types/Serializable.d.ts +3 -3
  187. package/dist/schemas/types/Serializable.d.ts.map +1 -1
  188. package/dist/stories/_templates/SerializationTemplate.d.ts.map +1 -0
  189. package/dist/types/CollapsibleLayout.d.ts +3 -3
  190. package/dist/types/CollapsibleLayout.d.ts.map +1 -1
  191. package/dist/types/ContentProxy.d.ts +4 -4
  192. package/dist/types/ContentProxy.d.ts.map +1 -1
  193. package/dist/types/DataTypes.d.ts +4 -4
  194. package/dist/types/DataTypes.d.ts.map +1 -1
  195. package/dist/types/TemplateProvider.d.ts +1 -1
  196. package/dist/types/TemplateProvider.d.ts.map +1 -1
  197. package/dist/types/TemplateResolver.d.ts +1 -1
  198. package/dist/types/TemplateResolver.d.ts.map +1 -1
  199. package/dist/utils/htmlTransform.d.ts +1 -1
  200. package/dist/utils/htmlTransform.d.ts.map +1 -1
  201. package/dist/utils/iconMap.d.ts +48 -0
  202. package/dist/utils/iconMap.d.ts.map +1 -0
  203. package/dist/utils/index.d.ts +3 -0
  204. package/dist/utils/index.d.ts.map +1 -1
  205. package/dist/utils/logger.d.ts +11 -7
  206. package/dist/utils/logger.d.ts.map +1 -1
  207. package/dist/utils/paletteLoader.d.ts +34 -0
  208. package/dist/utils/paletteLoader.d.ts.map +1 -0
  209. package/dist/utils/paletteManifest.d.ts +51 -0
  210. package/dist/utils/paletteManifest.d.ts.map +1 -0
  211. package/dist/utils/paletteUtils.d.ts.map +1 -1
  212. package/dist/utils/reactUtils.d.ts +12 -6
  213. package/dist/utils/reactUtils.d.ts.map +1 -1
  214. package/dist/utils/spacing.d.ts +2 -2
  215. package/dist/utils/spacing.d.ts.map +1 -1
  216. package/dist/utils/themePerformanceMonitor.d.ts.map +1 -1
  217. package/dist/utils/themeUtils.d.ts.map +1 -1
  218. package/package.json +28 -9
  219. package/scripts/build-palettes.cjs +120 -0
  220. package/src/__tests__/components/Article.test.tsx +1 -1
  221. package/src/__tests__/components/Breadcrumbs.test.tsx +2 -2
  222. package/src/__tests__/components/Button.test.tsx +3 -3
  223. package/src/__tests__/components/CardListGrid.test.tsx +5 -5
  224. package/src/__tests__/components/ChoiceInputField.test.tsx +2 -2
  225. package/src/__tests__/components/Code.test.tsx +2 -2
  226. package/src/__tests__/components/Content.integration.test.tsx +1 -1
  227. package/src/__tests__/components/Content.test.tsx +5 -5
  228. package/src/__tests__/components/CoverImageHeader.test.tsx +3 -3
  229. package/src/__tests__/components/FeatureCard.integration.test.tsx +1 -1
  230. package/src/__tests__/components/FeatureGrid.integration.test.tsx +1 -1
  231. package/src/__tests__/components/FeatureGrid.test.tsx +3 -3
  232. package/src/__tests__/components/Footer.test.tsx +3 -3
  233. package/src/__tests__/components/FormBlock.test.tsx +2 -2
  234. package/src/__tests__/components/HeroBlock.integration.test.tsx +1 -1
  235. package/src/__tests__/components/HeroBlock.test.tsx +4 -4
  236. package/src/__tests__/components/HtmlInputField.test.tsx +8 -8
  237. package/src/__tests__/components/PageBannerHeader.test.tsx +7 -7
  238. package/src/__tests__/components/PaletteSwitcher.test.tsx +3 -3
  239. package/src/__tests__/components/ProductCard.test.tsx +1 -1
  240. package/src/__tests__/components/Section.integration.test.tsx +1 -1
  241. package/src/__tests__/components/Section.test.tsx +1 -1
  242. package/src/__tests__/components/SelectInputField.test.tsx +2 -2
  243. package/src/__tests__/components/TextInputField.test.tsx +4 -4
  244. package/src/__tests__/components/ThemeSwitcher.test.tsx +3 -3
  245. package/src/__tests__/components/base/Container.test.tsx +22 -21
  246. package/src/__tests__/components/blocks/Code.performance.test.tsx +10 -10
  247. package/src/__tests__/components/blocks/Code.serialization.test.tsx +9 -9
  248. package/src/__tests__/components/blocks/HeroBlock.serialization.test.tsx +2 -3
  249. package/src/__tests__/components/blocks/Image.serialization.test.tsx +8 -7
  250. package/src/__tests__/components/blocks/Section.serialization.test.tsx +8 -8
  251. package/src/__tests__/components/blocks/Text.performance.test.tsx +5 -5
  252. package/src/__tests__/components/blocks/Text.serialization.test.tsx +9 -9
  253. package/src/__tests__/components/buttons/Button.serialization.test.tsx +4 -4
  254. package/src/__tests__/components/input/FormComponents.serialization.test.tsx +9 -9
  255. package/src/__tests__/components/input/SelectInputField.serialization.test.tsx +16 -18
  256. package/src/__tests__/components/input/TextInputField.serialization.test.tsx +9 -9
  257. package/src/__tests__/components/layout/CollapsibleLayout.test.tsx +5 -9
  258. package/src/__tests__/components/layout/GridCell.serialization.test.tsx +5 -5
  259. package/src/__tests__/components/layout/GridLayout.serialization.test.tsx +5 -5
  260. package/src/__tests__/hooks/usePrintMode.test.ts +1 -0
  261. package/src/__tests__/schemas/builders.test.ts +2 -2
  262. package/src/__tests__/schemas/transformers/ComponentSerializationPatterns.test.tsx +28 -28
  263. package/src/__tests__/schemas/transformers/ComponentTransformer.htmlPatterns.test.ts +5 -5
  264. package/src/__tests__/schemas/transformers/ComponentTransformer.test.ts +11 -11
  265. package/src/__tests__/schemas/transformers/CrossBrowserCompatibility.test.ts +10 -10
  266. package/src/__tests__/schemas/transformers/MockSerializableComponent.ts +15 -15
  267. package/src/__tests__/schemas/transformers/RealWorldScenarios.test.tsx +19 -19
  268. package/src/__tests__/schemas/transformers/SerializationErrorHandling.test.ts +15 -15
  269. package/src/__tests__/schemas/transformers/SerializationIntegration.test.tsx +19 -21
  270. package/src/__tests__/schemas/transformers/SerializationPerformance.test.ts +15 -15
  271. package/src/__tests__/schemas/transformers/TestAutomation.test.ts +3 -3
  272. package/src/__tests__/schemas/transformers/nested-serialization.test.tsx +1 -1
  273. package/src/__tests__/schemas/transformers/round-trip-component-serialization.test.tsx +10 -10
  274. package/src/__tests__/utils/optional-logging.test.ts +3 -3
  275. package/src/components/AccessibilityProvider.tsx +4 -2
  276. package/src/components/ErrorBoundary.tsx +1 -1
  277. package/src/components/Html.tsx +14 -17
  278. package/src/components/Logo.tsx +44 -33
  279. package/src/components/Markdown.tsx +9 -9
  280. package/src/components/ProductLogo.tsx +118 -0
  281. package/src/components/QwickApp.css +46 -1063
  282. package/src/components/QwickApp.tsx +1 -1
  283. package/src/components/QwickAppsLogo.tsx +1 -1
  284. package/src/components/ResponsiveMenu.tsx +13 -2
  285. package/src/components/SafeSpan.tsx +8 -9
  286. package/src/components/Scaffold.css +14 -0
  287. package/src/components/Scaffold.tsx +71 -27
  288. package/src/components/base/Container.tsx +2 -2
  289. package/src/components/base/ModelView.tsx +28 -27
  290. package/src/components/base/index.ts +1 -1
  291. package/src/components/blocks/Article.tsx +251 -36
  292. package/src/components/blocks/CardListGrid.tsx +18 -14
  293. package/src/components/blocks/Code.tsx +18 -13
  294. package/src/components/blocks/Content.tsx +15 -10
  295. package/src/components/blocks/CoverImageHeader.tsx +15 -10
  296. package/src/components/blocks/FeatureCard.tsx +16 -11
  297. package/src/components/blocks/FeatureGrid.tsx +13 -8
  298. package/src/components/blocks/Footer.tsx +44 -35
  299. package/src/components/blocks/HeroBlock.tsx +12 -13
  300. package/src/components/blocks/Image.tsx +16 -8
  301. package/src/components/blocks/PageBannerHeader.tsx +16 -12
  302. package/src/components/blocks/ProductCard.tsx +32 -25
  303. package/src/components/blocks/Section.tsx +21 -13
  304. package/src/components/blocks/Text.tsx +33 -15
  305. package/src/components/buttons/Button.tsx +110 -30
  306. package/src/components/buttons/PaletteSwitcher.tsx +11 -8
  307. package/src/components/buttons/ThemeSwitcher.tsx +20 -16
  308. package/src/components/dialogs/Dialog.tsx +126 -0
  309. package/src/components/dialogs/index.ts +15 -0
  310. package/src/components/forms/Captcha.tsx +291 -0
  311. package/src/components/forms/FormBlock.tsx +22 -15
  312. package/src/components/forms/FormCheckbox.tsx +116 -0
  313. package/src/components/forms/FormField.tsx +180 -0
  314. package/src/components/forms/FormSelect.tsx +140 -0
  315. package/src/components/forms/index.ts +13 -1
  316. package/src/components/index.ts +13 -2
  317. package/src/components/input/ChoiceInputField.tsx +1 -2
  318. package/src/components/input/HtmlInputField.tsx +2 -3
  319. package/src/components/input/SelectInputField.tsx +31 -5
  320. package/src/components/input/SwitchInputField.tsx +3 -4
  321. package/src/components/input/TextField.tsx +2 -2
  322. package/src/components/input/TextInputField.tsx +32 -6
  323. package/src/components/layout/CollapsibleLayout/CollapsibleLayout.tsx +13 -13
  324. package/src/components/layout/GridCell.tsx +10 -9
  325. package/src/components/layout/GridCellWrapper.tsx +1 -1
  326. package/src/components/layout/GridLayout.tsx +29 -32
  327. package/src/components/menu/MenuItem.tsx +2 -2
  328. package/src/components/pages/FormPage.tsx +0 -1
  329. package/src/components/pages/Page.tsx +2 -2
  330. package/src/components/shared/createSerializableView.tsx +24 -23
  331. package/src/components/shared/viewProps.ts +11 -11
  332. package/src/config/AppConfig.ts +2 -2
  333. package/src/config/__tests__/AppConfig.test.ts +3 -3
  334. package/src/config/__tests__/AppConfigBuilder.test.ts +10 -11
  335. package/src/config/types.ts +1 -1
  336. package/src/contexts/DataContext.tsx +58 -52
  337. package/src/contexts/PaletteContext.tsx +22 -9
  338. package/src/contexts/PrintModeContext.tsx +4 -4
  339. package/src/contexts/ThemeContext.tsx +3 -2
  340. package/src/hooks/useBaseProps.ts +10 -10
  341. package/src/hooks/useDataBinding.ts +15 -18
  342. package/src/hooks/usePrintMode.ts +3 -3
  343. package/src/index.ts +2 -0
  344. package/src/palettes/manifest.json +72 -0
  345. package/src/palettes/manifest.schema.json +74 -0
  346. package/src/schemas/ButtonSchema.ts +33 -0
  347. package/src/schemas/CardListGridSchema.ts +3 -3
  348. package/src/schemas/CodeSchema.ts +0 -1
  349. package/src/schemas/FeatureGridSchema.ts +1 -1
  350. package/src/schemas/FormBlockSchema.ts +1 -1
  351. package/src/schemas/GridCellSchema.ts +0 -1
  352. package/src/schemas/GridLayoutSchema.ts +0 -1
  353. package/src/schemas/SectionSchema.ts +0 -1
  354. package/src/schemas/ViewSchema.ts +7 -7
  355. package/src/schemas/transformers/ComponentTransformer.ts +39 -28
  356. package/src/schemas/transformers/ReactNodeTransformer.ts +18 -17
  357. package/src/schemas/transformers/registry.ts +28 -24
  358. package/src/schemas/types/Serializable.ts +3 -3
  359. package/src/setupTests.js +9 -0
  360. package/src/stories/AccessibilityProvider.stories.tsx +0 -1
  361. package/src/stories/Article.stories.tsx +1 -1
  362. package/src/stories/CardListGrid.stories.tsx +1 -1
  363. package/src/stories/ChoiceInputField.stories.tsx +2 -2
  364. package/src/stories/Code.stories.tsx +2 -3
  365. package/src/stories/CollapsibleLayout.stories.tsx +41 -37
  366. package/src/stories/Container.stories.tsx +1 -2
  367. package/src/stories/DataBinding.advanced.stories.tsx +15 -9
  368. package/src/stories/DataProvider.stories.tsx +33 -16
  369. package/src/stories/ErrorBoundary.stories.tsx +28 -26
  370. package/src/stories/FeatureGrid.stories.tsx +0 -1
  371. package/src/stories/FormBlock.stories.tsx +8 -8
  372. package/src/stories/FormComponents.stories.tsx +15 -11
  373. package/src/stories/GridCell.stories.tsx +5 -5
  374. package/src/stories/GridLayout.stories.tsx +5 -5
  375. package/src/stories/Image.stories.tsx +5 -7
  376. package/src/stories/Introduction.stories.tsx +0 -1
  377. package/src/stories/ModelView.stories.tsx +7 -7
  378. package/src/stories/SafeSpan.stories.tsx +7 -3
  379. package/src/stories/Section.stories.tsx +2 -2
  380. package/src/stories/Text.stories.tsx +1 -3
  381. package/src/stories/_templates/SerializationTemplate.tsx +0 -1
  382. package/src/templates/TemplateResolver.ts +2 -2
  383. package/src/types/CollapsibleLayout.ts +2 -2
  384. package/src/types/ContentProxy.ts +6 -6
  385. package/src/types/DataTypes.ts +4 -4
  386. package/src/types/TemplateProvider.ts +1 -1
  387. package/src/types/TemplateResolver.ts +1 -1
  388. package/src/utils/htmlTransform.tsx +17 -11
  389. package/src/utils/iconMap.tsx +221 -0
  390. package/src/utils/index.ts +4 -1
  391. package/src/utils/logger.ts +20 -14
  392. package/src/utils/paletteLoader.ts +218 -0
  393. package/src/utils/paletteManifest.ts +268 -0
  394. package/src/utils/paletteUtils.ts +19 -1
  395. package/src/utils/reactUtils.tsx +34 -33
  396. package/src/utils/spacing.ts +16 -17
  397. package/src/utils/themePerformanceMonitor.js +14 -6
  398. package/src/utils/themeUtils.ts +17 -2
  399. package/dist/components/base/ContainerView.d.ts +0 -65
  400. package/dist/components/base/ContainerView.d.ts.map +0 -1
  401. package/dist/components/blocks/Code-factory.d.ts +0 -22
  402. package/dist/components/blocks/Code-factory.d.ts.map +0 -1
  403. package/dist/components/blocks/Code-old.d.ts +0 -31
  404. package/dist/components/blocks/Code-old.d.ts.map +0 -1
  405. package/dist/qa/ConsoleWarningTest.d.ts +0 -5
  406. package/dist/qa/ConsoleWarningTest.d.ts.map +0 -1
  407. package/dist/qa/StorageKeyTest.d.ts +0 -6
  408. package/dist/qa/StorageKeyTest.d.ts.map +0 -1
  409. package/dist/qa/ThemeStorageKeyTest.d.ts +0 -6
  410. package/dist/qa/ThemeStorageKeyTest.d.ts.map +0 -1
  411. package/dist/schemas/ViewModelSchema.d.ts +0 -63
  412. package/dist/schemas/ViewModelSchema.d.ts.map +0 -1
  413. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts +0 -66
  414. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts.map +0 -1
  415. package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts +0 -66
  416. package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +0 -1
  417. package/dist/src/components/AccessibilityChecker.d.ts +0 -12
  418. package/dist/src/components/AccessibilityChecker.d.ts.map +0 -1
  419. package/dist/src/components/AccessibilityProvider.d.ts +0 -64
  420. package/dist/src/components/AccessibilityProvider.d.ts.map +0 -1
  421. package/dist/src/components/Breadcrumbs.d.ts +0 -39
  422. package/dist/src/components/Breadcrumbs.d.ts.map +0 -1
  423. package/dist/src/components/ErrorBoundary.d.ts +0 -46
  424. package/dist/src/components/ErrorBoundary.d.ts.map +0 -1
  425. package/dist/src/components/Html.d.ts +0 -58
  426. package/dist/src/components/Html.d.ts.map +0 -1
  427. package/dist/src/components/Logo.d.ts +0 -56
  428. package/dist/src/components/Logo.d.ts.map +0 -1
  429. package/dist/src/components/Markdown.d.ts +0 -51
  430. package/dist/src/components/Markdown.d.ts.map +0 -1
  431. package/dist/src/components/QwickApp.d.ts +0 -69
  432. package/dist/src/components/QwickApp.d.ts.map +0 -1
  433. package/dist/src/components/QwickAppsLogo.d.ts +0 -25
  434. package/dist/src/components/QwickAppsLogo.d.ts.map +0 -1
  435. package/dist/src/components/QwickIcon.d.ts +0 -23
  436. package/dist/src/components/QwickIcon.d.ts.map +0 -1
  437. package/dist/src/components/ResponsiveMenu.d.ts +0 -38
  438. package/dist/src/components/ResponsiveMenu.d.ts.map +0 -1
  439. package/dist/src/components/SafeSpan.d.ts +0 -29
  440. package/dist/src/components/SafeSpan.d.ts.map +0 -1
  441. package/dist/src/components/Scaffold.d.ts +0 -57
  442. package/dist/src/components/Scaffold.d.ts.map +0 -1
  443. package/dist/src/components/base/Container.d.ts +0 -33
  444. package/dist/src/components/base/Container.d.ts.map +0 -1
  445. package/dist/src/components/base/ModelView.d.ts +0 -92
  446. package/dist/src/components/base/ModelView.d.ts.map +0 -1
  447. package/dist/src/components/base/index.d.ts +0 -12
  448. package/dist/src/components/base/index.d.ts.map +0 -1
  449. package/dist/src/components/blocks/Article.d.ts +0 -32
  450. package/dist/src/components/blocks/Article.d.ts.map +0 -1
  451. package/dist/src/components/blocks/CardListGrid.d.ts +0 -23
  452. package/dist/src/components/blocks/CardListGrid.d.ts.map +0 -1
  453. package/dist/src/components/blocks/Code.d.ts +0 -37
  454. package/dist/src/components/blocks/Code.d.ts.map +0 -1
  455. package/dist/src/components/blocks/Content.d.ts +0 -24
  456. package/dist/src/components/blocks/Content.d.ts.map +0 -1
  457. package/dist/src/components/blocks/CoverImageHeader.d.ts +0 -44
  458. package/dist/src/components/blocks/CoverImageHeader.d.ts.map +0 -1
  459. package/dist/src/components/blocks/FeatureCard.d.ts +0 -66
  460. package/dist/src/components/blocks/FeatureCard.d.ts.map +0 -1
  461. package/dist/src/components/blocks/FeatureGrid.d.ts +0 -48
  462. package/dist/src/components/blocks/FeatureGrid.d.ts.map +0 -1
  463. package/dist/src/components/blocks/Footer.d.ts +0 -56
  464. package/dist/src/components/blocks/Footer.d.ts.map +0 -1
  465. package/dist/src/components/blocks/HeroBlock.d.ts +0 -55
  466. package/dist/src/components/blocks/HeroBlock.d.ts.map +0 -1
  467. package/dist/src/components/blocks/Image.d.ts +0 -40
  468. package/dist/src/components/blocks/Image.d.ts.map +0 -1
  469. package/dist/src/components/blocks/PageBannerHeader.d.ts +0 -30
  470. package/dist/src/components/blocks/PageBannerHeader.d.ts.map +0 -1
  471. package/dist/src/components/blocks/ProductCard.d.ts +0 -57
  472. package/dist/src/components/blocks/ProductCard.d.ts.map +0 -1
  473. package/dist/src/components/blocks/Section.d.ts +0 -45
  474. package/dist/src/components/blocks/Section.d.ts.map +0 -1
  475. package/dist/src/components/blocks/Text.d.ts +0 -34
  476. package/dist/src/components/blocks/Text.d.ts.map +0 -1
  477. package/dist/src/components/blocks/index.d.ts +0 -41
  478. package/dist/src/components/blocks/index.d.ts.map +0 -1
  479. package/dist/src/components/buttons/Button.d.ts +0 -41
  480. package/dist/src/components/buttons/Button.d.ts.map +0 -1
  481. package/dist/src/components/buttons/PaletteSwitcher.d.ts +0 -24
  482. package/dist/src/components/buttons/PaletteSwitcher.d.ts.map +0 -1
  483. package/dist/src/components/buttons/ThemeSwitcher.d.ts +0 -24
  484. package/dist/src/components/buttons/ThemeSwitcher.d.ts.map +0 -1
  485. package/dist/src/components/buttons/index.d.ts +0 -11
  486. package/dist/src/components/buttons/index.d.ts.map +0 -1
  487. package/dist/src/components/forms/FormBlock.d.ts +0 -51
  488. package/dist/src/components/forms/FormBlock.d.ts.map +0 -1
  489. package/dist/src/components/forms/index.d.ts +0 -8
  490. package/dist/src/components/forms/index.d.ts.map +0 -1
  491. package/dist/src/components/index.d.ts +0 -41
  492. package/dist/src/components/index.d.ts.map +0 -1
  493. package/dist/src/components/input/ChoiceInputField.d.ts +0 -29
  494. package/dist/src/components/input/ChoiceInputField.d.ts.map +0 -1
  495. package/dist/src/components/input/HtmlInputField.d.ts +0 -33
  496. package/dist/src/components/input/HtmlInputField.d.ts.map +0 -1
  497. package/dist/src/components/input/SelectInputField.d.ts +0 -31
  498. package/dist/src/components/input/SelectInputField.d.ts.map +0 -1
  499. package/dist/src/components/input/SwitchInputField.d.ts +0 -27
  500. package/dist/src/components/input/SwitchInputField.d.ts.map +0 -1
  501. package/dist/src/components/input/TextField.d.ts +0 -18
  502. package/dist/src/components/input/TextField.d.ts.map +0 -1
  503. package/dist/src/components/input/TextInputField.d.ts +0 -34
  504. package/dist/src/components/input/TextInputField.d.ts.map +0 -1
  505. package/dist/src/components/input/index.d.ts +0 -19
  506. package/dist/src/components/input/index.d.ts.map +0 -1
  507. package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts +0 -34
  508. package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +0 -1
  509. package/dist/src/components/layout/CollapsibleLayout/index.d.ts +0 -9
  510. package/dist/src/components/layout/CollapsibleLayout/index.d.ts.map +0 -1
  511. package/dist/src/components/layout/GridCell.d.ts +0 -32
  512. package/dist/src/components/layout/GridCell.d.ts.map +0 -1
  513. package/dist/src/components/layout/GridCellWrapper.d.ts +0 -46
  514. package/dist/src/components/layout/GridCellWrapper.d.ts.map +0 -1
  515. package/dist/src/components/layout/GridLayout.d.ts +0 -50
  516. package/dist/src/components/layout/GridLayout.d.ts.map +0 -1
  517. package/dist/src/components/layout/index.d.ts +0 -14
  518. package/dist/src/components/layout/index.d.ts.map +0 -1
  519. package/dist/src/components/menu/Menu.d.ts +0 -1
  520. package/dist/src/components/menu/Menu.d.ts.map +0 -1
  521. package/dist/src/components/menu/MenuItem.d.ts +0 -31
  522. package/dist/src/components/menu/MenuItem.d.ts.map +0 -1
  523. package/dist/src/components/menu/index.d.ts +0 -7
  524. package/dist/src/components/menu/index.d.ts.map +0 -1
  525. package/dist/src/components/pages/FormPage.d.ts +0 -66
  526. package/dist/src/components/pages/FormPage.d.ts.map +0 -1
  527. package/dist/src/components/pages/Page.d.ts +0 -68
  528. package/dist/src/components/pages/Page.d.ts.map +0 -1
  529. package/dist/src/components/pages/index.d.ts +0 -10
  530. package/dist/src/components/pages/index.d.ts.map +0 -1
  531. package/dist/src/components/shared/createSerializableView.d.ts +0 -81
  532. package/dist/src/components/shared/createSerializableView.d.ts.map +0 -1
  533. package/dist/src/components/shared/viewProps.d.ts +0 -37
  534. package/dist/src/components/shared/viewProps.d.ts.map +0 -1
  535. package/dist/src/config/AppConfig.d.ts +0 -49
  536. package/dist/src/config/AppConfig.d.ts.map +0 -1
  537. package/dist/src/config/AppConfigBuilder.d.ts +0 -75
  538. package/dist/src/config/AppConfigBuilder.d.ts.map +0 -1
  539. package/dist/src/config/index.d.ts +0 -13
  540. package/dist/src/config/index.d.ts.map +0 -1
  541. package/dist/src/config/types.d.ts +0 -130
  542. package/dist/src/config/types.d.ts.map +0 -1
  543. package/dist/src/config.d.ts +0 -15
  544. package/dist/src/config.d.ts.map +0 -1
  545. package/dist/src/contexts/DataContext.d.ts +0 -139
  546. package/dist/src/contexts/DataContext.d.ts.map +0 -1
  547. package/dist/src/contexts/DimensionsContext.d.ts +0 -42
  548. package/dist/src/contexts/DimensionsContext.d.ts.map +0 -1
  549. package/dist/src/contexts/PaletteContext.d.ts +0 -53
  550. package/dist/src/contexts/PaletteContext.d.ts.map +0 -1
  551. package/dist/src/contexts/PrintModeContext.d.ts +0 -27
  552. package/dist/src/contexts/PrintModeContext.d.ts.map +0 -1
  553. package/dist/src/contexts/QwickAppContext.d.ts +0 -71
  554. package/dist/src/contexts/QwickAppContext.d.ts.map +0 -1
  555. package/dist/src/contexts/ThemeContext.d.ts +0 -65
  556. package/dist/src/contexts/ThemeContext.d.ts.map +0 -1
  557. package/dist/src/contexts/index.d.ts +0 -11
  558. package/dist/src/contexts/index.d.ts.map +0 -1
  559. package/dist/src/hooks/index.d.ts +0 -12
  560. package/dist/src/hooks/index.d.ts.map +0 -1
  561. package/dist/src/hooks/useBaseProps.d.ts +0 -101
  562. package/dist/src/hooks/useBaseProps.d.ts.map +0 -1
  563. package/dist/src/hooks/useDataBinding.d.ts +0 -22
  564. package/dist/src/hooks/useDataBinding.d.ts.map +0 -1
  565. package/dist/src/hooks/usePrintMode.d.ts +0 -39
  566. package/dist/src/hooks/usePrintMode.d.ts.map +0 -1
  567. package/dist/src/index.d.ts +0 -9
  568. package/dist/src/index.d.ts.map +0 -1
  569. package/dist/src/palettes/PaletteAutumn.d.ts +0 -10
  570. package/dist/src/palettes/PaletteAutumn.d.ts.map +0 -1
  571. package/dist/src/palettes/PaletteCosmic.d.ts +0 -10
  572. package/dist/src/palettes/PaletteCosmic.d.ts.map +0 -1
  573. package/dist/src/palettes/PaletteDefault.d.ts +0 -10
  574. package/dist/src/palettes/PaletteDefault.d.ts.map +0 -1
  575. package/dist/src/palettes/PaletteOcean.d.ts +0 -10
  576. package/dist/src/palettes/PaletteOcean.d.ts.map +0 -1
  577. package/dist/src/palettes/PaletteSpring.d.ts +0 -10
  578. package/dist/src/palettes/PaletteSpring.d.ts.map +0 -1
  579. package/dist/src/palettes/PaletteWinter.d.ts +0 -10
  580. package/dist/src/palettes/PaletteWinter.d.ts.map +0 -1
  581. package/dist/src/palettes/index.d.ts +0 -13
  582. package/dist/src/palettes/index.d.ts.map +0 -1
  583. package/dist/src/schemas/ActionSchema.d.ts +0 -21
  584. package/dist/src/schemas/ActionSchema.d.ts.map +0 -1
  585. package/dist/src/schemas/ArticleSchema.d.ts +0 -13
  586. package/dist/src/schemas/ArticleSchema.d.ts.map +0 -1
  587. package/dist/src/schemas/ButtonSchema.d.ts +0 -19
  588. package/dist/src/schemas/ButtonSchema.d.ts.map +0 -1
  589. package/dist/src/schemas/CardListGridSchema.d.ts +0 -17
  590. package/dist/src/schemas/CardListGridSchema.d.ts.map +0 -1
  591. package/dist/src/schemas/ChoiceInputFieldSchema.d.ts +0 -18
  592. package/dist/src/schemas/ChoiceInputFieldSchema.d.ts.map +0 -1
  593. package/dist/src/schemas/CodeSchema.d.ts +0 -18
  594. package/dist/src/schemas/CodeSchema.d.ts.map +0 -1
  595. package/dist/src/schemas/CollapsibleLayoutSchema.d.ts +0 -32
  596. package/dist/src/schemas/CollapsibleLayoutSchema.d.ts.map +0 -1
  597. package/dist/src/schemas/ContainerSchema.d.ts +0 -12
  598. package/dist/src/schemas/ContainerSchema.d.ts.map +0 -1
  599. package/dist/src/schemas/ContentSchema.d.ts +0 -21
  600. package/dist/src/schemas/ContentSchema.d.ts.map +0 -1
  601. package/dist/src/schemas/CoverImageHeaderSchema.d.ts +0 -28
  602. package/dist/src/schemas/CoverImageHeaderSchema.d.ts.map +0 -1
  603. package/dist/src/schemas/FeatureCardSchema.d.ts +0 -28
  604. package/dist/src/schemas/FeatureCardSchema.d.ts.map +0 -1
  605. package/dist/src/schemas/FeatureGridSchema.d.ts +0 -17
  606. package/dist/src/schemas/FeatureGridSchema.d.ts.map +0 -1
  607. package/dist/src/schemas/FeatureItemSchema.d.ts +0 -16
  608. package/dist/src/schemas/FeatureItemSchema.d.ts.map +0 -1
  609. package/dist/src/schemas/FooterItemSchema.d.ts +0 -15
  610. package/dist/src/schemas/FooterItemSchema.d.ts.map +0 -1
  611. package/dist/src/schemas/FooterSchema.d.ts +0 -20
  612. package/dist/src/schemas/FooterSchema.d.ts.map +0 -1
  613. package/dist/src/schemas/FooterSectionSchema.d.ts +0 -15
  614. package/dist/src/schemas/FooterSectionSchema.d.ts.map +0 -1
  615. package/dist/src/schemas/FormBlockSchema.d.ts +0 -19
  616. package/dist/src/schemas/FormBlockSchema.d.ts.map +0 -1
  617. package/dist/src/schemas/GridCellSchema.d.ts +0 -23
  618. package/dist/src/schemas/GridCellSchema.d.ts.map +0 -1
  619. package/dist/src/schemas/GridLayoutSchema.d.ts +0 -21
  620. package/dist/src/schemas/GridLayoutSchema.d.ts.map +0 -1
  621. package/dist/src/schemas/HeaderActionSchema.d.ts +0 -17
  622. package/dist/src/schemas/HeaderActionSchema.d.ts.map +0 -1
  623. package/dist/src/schemas/HeroBlockSchema.d.ts +0 -22
  624. package/dist/src/schemas/HeroBlockSchema.d.ts.map +0 -1
  625. package/dist/src/schemas/HtmlInputFieldSchema.d.ts +0 -18
  626. package/dist/src/schemas/HtmlInputFieldSchema.d.ts.map +0 -1
  627. package/dist/src/schemas/HtmlSchema.d.ts +0 -14
  628. package/dist/src/schemas/HtmlSchema.d.ts.map +0 -1
  629. package/dist/src/schemas/ImageSchema.d.ts +0 -32
  630. package/dist/src/schemas/ImageSchema.d.ts.map +0 -1
  631. package/dist/src/schemas/LogoSchema.d.ts +0 -35
  632. package/dist/src/schemas/LogoSchema.d.ts.map +0 -1
  633. package/dist/src/schemas/MarkdownSchema.d.ts +0 -14
  634. package/dist/src/schemas/MarkdownSchema.d.ts.map +0 -1
  635. package/dist/src/schemas/MetadataItemSchema.d.ts +0 -13
  636. package/dist/src/schemas/MetadataItemSchema.d.ts.map +0 -1
  637. package/dist/src/schemas/PageBannerHeaderSchema.d.ts +0 -28
  638. package/dist/src/schemas/PageBannerHeaderSchema.d.ts.map +0 -1
  639. package/dist/src/schemas/PageTemplateSchema.d.ts +0 -31
  640. package/dist/src/schemas/PageTemplateSchema.d.ts.map +0 -1
  641. package/dist/src/schemas/PaletteSwitcherSchema.d.ts +0 -16
  642. package/dist/src/schemas/PaletteSwitcherSchema.d.ts.map +0 -1
  643. package/dist/src/schemas/PrintConfigSchema.d.ts +0 -31
  644. package/dist/src/schemas/PrintConfigSchema.d.ts.map +0 -1
  645. package/dist/src/schemas/ProductCardSchema.d.ts +0 -39
  646. package/dist/src/schemas/ProductCardSchema.d.ts.map +0 -1
  647. package/dist/src/schemas/SafeSpanSchema.d.ts +0 -13
  648. package/dist/src/schemas/SafeSpanSchema.d.ts.map +0 -1
  649. package/dist/src/schemas/SectionSchema.d.ts +0 -16
  650. package/dist/src/schemas/SectionSchema.d.ts.map +0 -1
  651. package/dist/src/schemas/SelectInputFieldSchema.d.ts +0 -27
  652. package/dist/src/schemas/SelectInputFieldSchema.d.ts.map +0 -1
  653. package/dist/src/schemas/SwitchInputFieldSchema.d.ts +0 -18
  654. package/dist/src/schemas/SwitchInputFieldSchema.d.ts.map +0 -1
  655. package/dist/src/schemas/TextInputFieldSchema.d.ts +0 -22
  656. package/dist/src/schemas/TextInputFieldSchema.d.ts.map +0 -1
  657. package/dist/src/schemas/TextSchema.d.ts +0 -37
  658. package/dist/src/schemas/TextSchema.d.ts.map +0 -1
  659. package/dist/src/schemas/ThemeSwitcherSchema.d.ts +0 -19
  660. package/dist/src/schemas/ThemeSwitcherSchema.d.ts.map +0 -1
  661. package/dist/src/schemas/ViewSchema.d.ts +0 -66
  662. package/dist/src/schemas/ViewSchema.d.ts.map +0 -1
  663. package/dist/src/schemas/index.d.ts +0 -47
  664. package/dist/src/schemas/index.d.ts.map +0 -1
  665. package/dist/src/schemas/transformers/ComponentTransformer.d.ts +0 -128
  666. package/dist/src/schemas/transformers/ComponentTransformer.d.ts.map +0 -1
  667. package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts +0 -53
  668. package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts.map +0 -1
  669. package/dist/src/schemas/transformers/registry.d.ts +0 -18
  670. package/dist/src/schemas/transformers/registry.d.ts.map +0 -1
  671. package/dist/src/schemas/types/Serializable.d.ts +0 -46
  672. package/dist/src/schemas/types/Serializable.d.ts.map +0 -1
  673. package/dist/src/stories/_templates/SerializationTemplate.d.ts.map +0 -1
  674. package/dist/src/templates/TemplateResolver.d.ts +0 -52
  675. package/dist/src/templates/TemplateResolver.d.ts.map +0 -1
  676. package/dist/src/templates/index.d.ts +0 -7
  677. package/dist/src/templates/index.d.ts.map +0 -1
  678. package/dist/src/types/CacheProvider.d.ts +0 -18
  679. package/dist/src/types/CacheProvider.d.ts.map +0 -1
  680. package/dist/src/types/CollapsibleLayout.d.ts +0 -142
  681. package/dist/src/types/CollapsibleLayout.d.ts.map +0 -1
  682. package/dist/src/types/ContentProxy.d.ts +0 -47
  683. package/dist/src/types/ContentProxy.d.ts.map +0 -1
  684. package/dist/src/types/DataTypes.d.ts +0 -185
  685. package/dist/src/types/DataTypes.d.ts.map +0 -1
  686. package/dist/src/types/TemplateProvider.d.ts +0 -10
  687. package/dist/src/types/TemplateProvider.d.ts.map +0 -1
  688. package/dist/src/types/TemplateResolver.d.ts +0 -23
  689. package/dist/src/types/TemplateResolver.d.ts.map +0 -1
  690. package/dist/src/types/index.d.ts +0 -82
  691. package/dist/src/types/index.d.ts.map +0 -1
  692. package/dist/src/utils/breakpoints.d.ts +0 -35
  693. package/dist/src/utils/breakpoints.d.ts.map +0 -1
  694. package/dist/src/utils/cssUtils.d.ts +0 -17
  695. package/dist/src/utils/cssUtils.d.ts.map +0 -1
  696. package/dist/src/utils/customPaletteManager.d.ts +0 -8
  697. package/dist/src/utils/customPaletteManager.d.ts.map +0 -1
  698. package/dist/src/utils/dimensions.d.ts +0 -34
  699. package/dist/src/utils/dimensions.d.ts.map +0 -1
  700. package/dist/src/utils/htmlTransform.d.ts +0 -44
  701. package/dist/src/utils/htmlTransform.d.ts.map +0 -1
  702. package/dist/src/utils/index.d.ts +0 -16
  703. package/dist/src/utils/index.d.ts.map +0 -1
  704. package/dist/src/utils/logger.d.ts +0 -26
  705. package/dist/src/utils/logger.d.ts.map +0 -1
  706. package/dist/src/utils/paletteUtils.d.ts +0 -38
  707. package/dist/src/utils/paletteUtils.d.ts.map +0 -1
  708. package/dist/src/utils/persistenceUtils.d.ts +0 -31
  709. package/dist/src/utils/persistenceUtils.d.ts.map +0 -1
  710. package/dist/src/utils/reactUtils.d.ts +0 -33
  711. package/dist/src/utils/reactUtils.d.ts.map +0 -1
  712. package/dist/src/utils/spacing.d.ts +0 -34
  713. package/dist/src/utils/spacing.d.ts.map +0 -1
  714. package/dist/src/utils/themePerformanceMonitor.d.ts +0 -32
  715. package/dist/src/utils/themePerformanceMonitor.d.ts.map +0 -1
  716. package/dist/src/utils/themeUtils.d.ts +0 -27
  717. package/dist/src/utils/themeUtils.d.ts.map +0 -1
  718. package/dist/tests/ConsoleWarningTest.d.ts +0 -5
  719. package/dist/tests/ConsoleWarningTest.d.ts.map +0 -1
  720. package/dist/tests/StorageKeyTest.d.ts +0 -6
  721. package/dist/tests/StorageKeyTest.d.ts.map +0 -1
  722. package/dist/tests/ThemeStorageKeyTest.d.ts +0 -6
  723. package/dist/tests/ThemeStorageKeyTest.d.ts.map +0 -1
  724. /package/dist/palettes/{PaletteAutumn.css → palette-autumn.1.4.9.css} +0 -0
  725. /package/dist/palettes/{PaletteCosmic.css → palette-cosmic.1.4.9.css} +0 -0
  726. /package/dist/palettes/{PaletteDefault.css → palette-default.1.4.9.css} +0 -0
  727. /package/dist/palettes/{PaletteOcean.css → palette-ocean.1.4.9.css} +0 -0
  728. /package/dist/palettes/{PaletteSpring.css → palette-spring.1.4.9.css} +0 -0
  729. /package/dist/palettes/{PaletteWinter.css → palette-winter.1.4.9.css} +0 -0
  730. /package/dist/{src/stories → stories}/_templates/SerializationTemplate.d.ts +0 -0
@@ -1,21 +1,23 @@
1
+ 'use client';
2
+
1
3
  /**
2
4
  * Article - Transforms HTML content to use framework components with data binding support
3
- *
5
+ *
4
6
  * Automatically transforms:
5
7
  * - <pre><code> blocks to Code components with syntax highlighting
6
8
  * - Complex <code> elements to Code components
7
9
  * - <section class="blog-section"> to Section components
8
10
  * - Other framework-compatible elements
9
11
  * - Preserves all other HTML structure and attributes
10
- *
12
+ *
11
13
  * Supports both traditional props and data binding through dataSource.
12
- *
14
+ *
13
15
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
14
16
  */
15
17
 
16
18
  import { Box, Typography } from '@mui/material';
17
19
  import { WithDataBinding, SchemaProps } from '@qwickapps/schema';
18
- import React, { ReactElement } from 'react';
20
+ import React from 'react';
19
21
  import { QWICKAPP_COMPONENT, useBaseProps, useDataBinding } from '../../hooks';
20
22
  import ArticleModel from '../../schemas/ArticleSchema';
21
23
  import { ModelView } from '../base/ModelView';
@@ -37,7 +39,7 @@ function ArticleView({
37
39
  const { styleProps, htmlProps, restProps: otherProps } = useBaseProps(restProps);
38
40
 
39
41
  // Mark as QwickApp component
40
- (ArticleView as any)[QWICKAPP_COMPONENT] = true;
42
+ (ArticleView as Record<string, unknown>)[QWICKAPP_COMPONENT] = true;
41
43
 
42
44
  // Return empty state if no HTML content
43
45
  if (!html.trim()) {
@@ -55,10 +57,10 @@ function ArticleView({
55
57
  ...styleProps.sx
56
58
  }}
57
59
  >
58
- <Typography variant="h6" color="text.secondary">
60
+ <Typography variant="h6" color="var(--theme-text)">
59
61
  No Content Available
60
62
  </Typography>
61
- <Typography variant="body2" color="text.secondary">
63
+ <Typography variant="body2" color="var(--theme-text)">
62
64
  No HTML content provided for this article
63
65
  </Typography>
64
66
  </Box>
@@ -74,43 +76,257 @@ function ArticleView({
74
76
  {...otherProps}
75
77
  {...styleProps}
76
78
  {...{
77
- // Ensure proper width constraints for article content
78
- maxWidth: '800px',
79
+ // Modern article layout
80
+ maxWidth: '900px',
79
81
  mx: 'auto',
80
- // Header styling when headers are present
82
+ px: { xs: 2, sm: 3, md: 4 },
83
+ py: { xs: 3, md: 5 },
84
+
85
+ // Typography - Modern, readable hierarchy
81
86
  '& h1, & h2, & h3, & h4, & h5, & h6': {
82
- maxWidth: '100%',
83
- mb: 1.5,
84
- mt: 2,
87
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
88
+ fontWeight: 700,
89
+ letterSpacing: '-0.02em',
90
+ color: 'var(--theme-text)',
91
+ scrollMarginTop: '100px', // For anchor links
85
92
  '&:first-of-type': {
86
93
  mt: 0
87
94
  }
88
95
  },
89
96
  '& h1': {
90
- fontSize: '2.5rem',
91
- fontWeight: 700,
92
- lineHeight: 1.2
97
+ fontSize: { xs: '2rem', md: '2.75rem' },
98
+ lineHeight: 1.15,
99
+ mb: 3,
100
+ mt: 5
93
101
  },
94
102
  '& h2': {
95
- fontSize: '2rem',
96
- fontWeight: 600,
97
- lineHeight: 1.3
103
+ fontSize: { xs: '1.5rem', md: '2rem' },
104
+ lineHeight: 1.25,
105
+ mb: 2.5,
106
+ mt: 5,
107
+ pb: 1.5,
108
+ borderBottom: '1px solid var(--theme-border-lighter)'
98
109
  },
99
110
  '& h3': {
100
- fontSize: '1.5rem',
101
- fontWeight: 600,
102
- lineHeight: 1.4
111
+ fontSize: { xs: '1.25rem', md: '1.5rem' },
112
+ lineHeight: 1.3,
113
+ mb: 2,
114
+ mt: 4
103
115
  },
104
- // Ensure paragraphs have proper spacing
105
- '& p': {
116
+ '& h4': {
117
+ fontSize: { xs: '1.1rem', md: '1.25rem' },
118
+ lineHeight: 1.4,
106
119
  mb: 1.5,
107
- lineHeight: 1.6
120
+ mt: 3,
121
+ color: 'var(--theme-text)',
122
+ fontWeight: 600
123
+ },
124
+
125
+ // Body text - Optimized for reading
126
+ '& p': {
127
+ fontSize: { xs: '1rem', md: '1.0625rem' },
128
+ lineHeight: 1.75,
129
+ mb: 2,
130
+ color: 'var(--theme-text)',
131
+ fontFamily: 'Georgia, "Times New Roman", serif',
132
+ '&:last-child': {
133
+ mb: 0
134
+ }
108
135
  },
109
- // Ensure lists have proper spacing
136
+
137
+ // Lists - Better visual hierarchy
110
138
  '& ul, & ol': {
111
- mb: 1.5,
112
- pl: 3
139
+ mb: 3,
140
+ pl: { xs: 3, md: 4 },
141
+ '& li': {
142
+ mb: 1.25,
143
+ lineHeight: 1.7,
144
+ fontSize: { xs: '1rem', md: '1.0625rem' },
145
+ color: 'var(--theme-text)',
146
+ fontFamily: 'Georgia, "Times New Roman", serif',
147
+ '&::marker': {
148
+ color: 'var(--theme-primary)',
149
+ fontWeight: 600
150
+ },
151
+ '& p': {
152
+ mb: 0.5
153
+ }
154
+ },
155
+ '& ul, & ol': {
156
+ mt: 1,
157
+ mb: 0
158
+ }
159
+ },
160
+
161
+ // Code blocks - Modern syntax highlighting style
162
+ '& pre': {
163
+ backgroundColor: 'var(--theme-surface-elevated)',
164
+ color: 'var(--theme-text)',
165
+ borderRadius: 'var(--theme-border-radius)',
166
+ p: { xs: 2, md: 3 },
167
+ mb: 3,
168
+ overflow: 'auto',
169
+ fontSize: '0.9rem',
170
+ lineHeight: 1.6,
171
+ fontFamily: '"Fira Code", "Cascadia Code", "SF Mono", Monaco, Consolas, monospace',
172
+ border: '1px solid var(--theme-border-light)',
173
+ boxShadow: 'var(--theme-elevation-2)',
174
+ '& code': {
175
+ backgroundColor: 'transparent',
176
+ color: 'inherit',
177
+ padding: 0,
178
+ fontSize: 'inherit',
179
+ fontFamily: 'inherit'
180
+ }
181
+ },
182
+
183
+ // Inline code - Subtle highlight
184
+ '& code': {
185
+ backgroundColor: 'var(--theme-code-bg)',
186
+ color: 'var(--theme-error)',
187
+ padding: '0.2em 0.4em',
188
+ borderRadius: 'var(--theme-border-radius-small)',
189
+ fontSize: '0.9em',
190
+ fontFamily: '"Fira Code", "Cascadia Code", "SF Mono", Monaco, Consolas, monospace',
191
+ fontWeight: 500
192
+ },
193
+
194
+ // Blockquotes - Elegant callouts
195
+ '& blockquote': {
196
+ borderLeft: '4px solid var(--theme-primary)',
197
+ backgroundColor: 'var(--theme-surface-variant)',
198
+ borderRadius: `0 var(--theme-border-radius-small) var(--theme-border-radius-small) 0`,
199
+ pl: 3,
200
+ pr: 3,
201
+ py: 2.5,
202
+ my: 4,
203
+ ml: 0,
204
+ mr: 0,
205
+ '& p': {
206
+ fontSize: { xs: '1.05rem', md: '1.125rem' },
207
+ fontStyle: 'italic',
208
+ lineHeight: 1.6,
209
+ mb: 1.5,
210
+ color: 'var(--theme-text)',
211
+ '&:last-child': {
212
+ mb: 0
213
+ }
214
+ },
215
+ '& cite': {
216
+ display: 'block',
217
+ fontSize: '0.9rem',
218
+ fontStyle: 'normal',
219
+ fontWeight: 500,
220
+ color: 'var(--theme-text)',
221
+ mt: 1,
222
+ '&::before': {
223
+ content: '"— "',
224
+ color: 'var(--theme-primary)'
225
+ }
226
+ }
227
+ },
228
+
229
+ // Tables - Clean, modern design
230
+ '& table': {
231
+ width: '100%',
232
+ borderCollapse: 'separate',
233
+ borderSpacing: 0,
234
+ mb: 3,
235
+ fontSize: '0.95rem',
236
+ overflow: 'hidden',
237
+ borderRadius: 'var(--theme-border-radius-small)',
238
+ border: '1px solid var(--theme-border-light)',
239
+ '& thead': {
240
+ backgroundColor: 'var(--theme-surface-variant)',
241
+ '& th': {
242
+ padding: '12px 16px',
243
+ textAlign: 'left',
244
+ fontWeight: 600,
245
+ color: 'var(--theme-text)',
246
+ borderBottom: '2px solid var(--theme-border-main)',
247
+ fontSize: '0.875rem',
248
+ textTransform: 'uppercase',
249
+ letterSpacing: '0.05em'
250
+ }
251
+ },
252
+ '& tbody': {
253
+ '& tr': {
254
+ borderBottom: '1px solid var(--theme-border-lighter)',
255
+ transition: 'background-color 0.2s ease',
256
+ '&:hover': {
257
+ backgroundColor: 'var(--theme-surface-variant)'
258
+ },
259
+ '&:last-child': {
260
+ borderBottom: 'none'
261
+ }
262
+ },
263
+ '& td': {
264
+ padding: '12px 16px',
265
+ color: 'var(--theme-text)',
266
+ lineHeight: 1.6
267
+ }
268
+ }
269
+ },
270
+
271
+ // Text emphasis
272
+ '& strong': {
273
+ fontWeight: 700,
274
+ color: 'var(--theme-text)'
275
+ },
276
+ '& em': {
277
+ fontStyle: 'italic',
278
+ color: 'var(--theme-text)'
279
+ },
280
+
281
+ // Links - Modern, accessible
282
+ '& a': {
283
+ color: 'var(--theme-primary)',
284
+ textDecoration: 'none',
285
+ fontWeight: 500,
286
+ borderBottom: '1px solid transparent',
287
+ transition: 'border-color 0.2s ease',
288
+ '&:hover': {
289
+ borderBottomColor: 'var(--theme-primary)'
290
+ },
291
+ '&:focus-visible': {
292
+ outline: '2px solid var(--theme-primary)',
293
+ outlineOffset: '2px',
294
+ borderRadius: '2px'
295
+ }
296
+ },
297
+
298
+ // Images and figures
299
+ '& img': {
300
+ maxWidth: '100%',
301
+ height: 'auto',
302
+ borderRadius: 'var(--theme-border-radius-small)',
303
+ display: 'block',
304
+ my: 3
113
305
  },
306
+ '& figure': {
307
+ margin: '3rem 0',
308
+ '& img': {
309
+ maxWidth: '100%',
310
+ height: 'auto',
311
+ borderRadius: 'var(--theme-border-radius-small)',
312
+ boxShadow: 'var(--theme-elevation-2)'
313
+ },
314
+ '& figcaption': {
315
+ textAlign: 'center',
316
+ fontSize: '0.875rem',
317
+ color: 'var(--theme-text)',
318
+ mt: 1.5,
319
+ fontStyle: 'italic'
320
+ }
321
+ },
322
+
323
+ // Horizontal rules
324
+ '& hr': {
325
+ border: 'none',
326
+ borderTop: '1px solid var(--theme-border-light)',
327
+ my: 5
328
+ },
329
+
114
330
  ...styleProps.sx
115
331
  }}
116
332
  >
@@ -126,7 +342,7 @@ export class Article extends ModelView<ArticleProps, ArticleModel> {
126
342
  static readonly version = '1.0.0';
127
343
 
128
344
  // Component-specific serialization properties
129
- protected getComponentSpecificProps(): any {
345
+ protected getComponentSpecificProps(): unknown {
130
346
  return {
131
347
  html: this.props.html,
132
348
  skipHeader: this.props.skipHeader
@@ -135,7 +351,7 @@ export class Article extends ModelView<ArticleProps, ArticleModel> {
135
351
 
136
352
  // Article component renders traditional props view
137
353
  protected renderView(): React.ReactElement {
138
- const { dataSource, bindingOptions, ...restProps } = this.props;
354
+ const { ...restProps } = this.props;
139
355
  return <ArticleView {...restProps} />;
140
356
  }
141
357
 
@@ -145,7 +361,7 @@ export class Article extends ModelView<ArticleProps, ArticleModel> {
145
361
  }
146
362
 
147
363
  // Register HTML patterns that Article component can handle
148
- static registerPatternHandlers(registry: any): void {
364
+ static registerPatternHandlers(registry: unknown): void {
149
365
  // Register article elements
150
366
  if (!registry.hasPattern('article')) {
151
367
  registry.registerPattern('article', Article.transformArticle);
@@ -153,7 +369,7 @@ export class Article extends ModelView<ArticleProps, ArticleModel> {
153
369
  }
154
370
 
155
371
  // Transform article elements to Article component
156
- private static transformArticle(element: Element): any {
372
+ private static transformArticle(element: Element): unknown {
157
373
  const skipHeader = element.getAttribute('data-skip-header') === 'true';
158
374
 
159
375
  return {
@@ -171,7 +387,7 @@ function ArticleWithDataBinding(props: ArticleProps) {
171
387
  const { dataSource, bindingOptions, ...restProps } = props;
172
388
 
173
389
  // Use data binding
174
- const { dataSource: _source, loading, error, cached, ...articleProps } = useDataBinding<ArticleModel>(
390
+ const { loading, error, ...articleProps } = useDataBinding<ArticleModel>(
175
391
  dataSource!,
176
392
  restProps as Partial<ArticleModel>,
177
393
  ArticleModel.getSchema(),
@@ -191,7 +407,7 @@ function ArticleWithDataBinding(props: ArticleProps) {
191
407
  }}
192
408
  >
193
409
  <Typography variant="h6">Loading Article...</Typography>
194
- <Typography variant="body2" color="text.secondary">
410
+ <Typography variant="body2" color="var(--theme-text)">
195
411
  Loading
196
412
  </Typography>
197
413
  </Box>
@@ -212,7 +428,7 @@ function ArticleWithDataBinding(props: ArticleProps) {
212
428
  }}
213
429
  >
214
430
  <Typography variant="h6">Error Loading Article</Typography>
215
- <Typography variant="body2" color="text.secondary">
431
+ <Typography variant="body2" color="var(--theme-text)">
216
432
  {error.message}
217
433
  </Typography>
218
434
  </Box>
@@ -221,7 +437,6 @@ function ArticleWithDataBinding(props: ArticleProps) {
221
437
  return null;
222
438
  }
223
439
 
224
- console.log('Resolved props for Article:', articleProps);
225
440
  return <ArticleView {...articleProps} />;
226
441
  }
227
442
 
@@ -1,11 +1,13 @@
1
+ 'use client';
2
+
1
3
  /**
2
4
  * CardListGrid - Generic grid layout for cards with data binding support
3
- *
5
+ *
4
6
  * A unified grid component that can display any type of card component
5
7
  * with consistent spacing and layout. Works with ProductCard, FeatureCard,
6
- * or any other card-like components. Supports both traditional props and
8
+ * or any other card-like components. Supports both traditional props and
7
9
  * data binding through dataSource.
8
- *
10
+ *
9
11
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
10
12
  */
11
13
 
@@ -19,15 +21,15 @@ import { ProductCard } from './ProductCard';
19
21
 
20
22
  type CardListGridViewProps = SchemaProps<CardListGridModel> & {
21
23
  /** Render function for each item (traditional usage) */
22
- renderItem?: (item: any, index: number) => React.ReactNode;
24
+ renderItem?: (item: unknown, index: number) => React.ReactNode;
23
25
  };
24
26
 
25
27
  export interface CardListGridProps extends CardListGridViewProps, WithDataBinding {
26
28
  }
27
29
 
28
30
  // Default render function based on component type
29
- const getDefaultRenderItem = (renderComponent: string = 'ProductCard', itemProps: Record<string, any> = {}) => {
30
- return (item: any, index: number) => {
31
+ const getDefaultRenderItem = (renderComponent: string = 'ProductCard', itemProps: Record<string, unknown> = {}) => {
32
+ return (item: unknown, index: number) => {
31
33
  const key = item?.id || item?.key || index;
32
34
 
33
35
  switch (renderComponent) {
@@ -82,19 +84,21 @@ function CardListGridView({
82
84
  function CardListGrid(props: CardListGridProps) {
83
85
  const { dataSource, bindingOptions, ...restProps } = props;
84
86
 
85
- // If no dataSource, use traditional props
86
- if (!dataSource) {
87
- return <CardListGridView {...restProps} />;
88
- }
89
-
90
- // Use data binding
87
+ // Always call hooks unconditionally
91
88
  const result = useDataBinding<CardListGridModel>(
92
- dataSource,
89
+ dataSource || '',
93
90
  restProps as Partial<CardListGridModel>,
94
91
  CardListGridModel.getSchema(),
95
92
  { cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
96
93
  );
97
- const { dataSource: _source, loading, error, cached, ...cardListGridProps } = result;
94
+
95
+ // If no dataSource, use traditional props
96
+ if (!dataSource) {
97
+ return <CardListGridView {...restProps} />;
98
+ }
99
+
100
+ // Use data binding result
101
+ const { loading, error, ...cardListGridProps } = result;
98
102
 
99
103
  // Show loading state
100
104
  if (loading) {
@@ -1,25 +1,27 @@
1
+ 'use client';
2
+
1
3
  /**
2
4
  * Code - Content-prop leaf component for secure code display
3
- *
5
+ *
4
6
  * Uses content-prop strategy to prevent JSON deserialization vulnerabilities.
5
7
  * Code content is serialized as data.content (string), not data.children,
6
8
  * preventing recursive deserialization of example JSON that looks like components.
7
- *
9
+ *
8
10
  * Features preserved:
9
11
  * - Syntax highlighting support
10
- * - Copy to clipboard functionality
12
+ * - Copy to clipboard functionality
11
13
  * - Light/dark theme support
12
14
  * - Multiple language support
13
15
  * - Responsive design
14
16
  * - Line numbers support
15
17
  * - Title display
16
18
  * - Custom backgrounds
17
- *
19
+ *
18
20
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
19
21
  */
20
22
 
21
23
  import React, { useState } from 'react';
22
- import { Box, Paper, Typography, Tooltip, IconButton, Snackbar, Alert, useTheme } from '@mui/material';
24
+ import { Box, Typography, Tooltip, IconButton, Snackbar, Alert, useTheme, Paper } from '@mui/material';
23
25
  import { ContentCopy as CopyIcon, Check as CheckIcon } from '@mui/icons-material';
24
26
  import CodeSchema from '../../schemas/CodeSchema';
25
27
  import type { SchemaProps } from '@qwickapps/schema/src/types/ModelProps';
@@ -40,7 +42,7 @@ export type CodeProps = ViewProps & SchemaProps<typeof CodeSchema>;
40
42
  */
41
43
  function CodeView({
42
44
  content,
43
- language = 'text',
45
+ language: _language = 'text',
44
46
  showCopy = true,
45
47
  showLineNumbers = false,
46
48
  title,
@@ -54,7 +56,7 @@ function CodeView({
54
56
  const [copied, setCopied] = useState(false);
55
57
  const [showCopiedAlert, setShowCopiedAlert] = useState(false);
56
58
 
57
- const codeMaxHeight = (restProps.sx as any)?.maxHeight || 400;
59
+ const codeMaxHeight = (restProps.sx as Record<string, unknown>)?.maxHeight as number || 400;
58
60
 
59
61
  // Use content prop directly (already a string from content-prop strategy)
60
62
  const codeContent = content || '';
@@ -257,20 +259,23 @@ export const Code: SerializableComponent<CodeProps> = createSerializableView<Cod
257
259
  });
258
260
 
259
261
  // Register HTML patterns that Code component can handle
260
- (Code as any).registerPatternHandlers = (registry: any): void => {
262
+ (Code as Record<string, unknown>).registerPatternHandlers = (registry: Record<string, (...args: unknown[]) => unknown>): void => {
261
263
  // Register pre + code pattern
264
+ if (!registry.hasPattern) {
265
+ return;
266
+ }
262
267
  if (!registry.hasPattern('pre code')) {
263
- registry.registerPattern('pre code', (Code as any).transformPreCode);
268
+ registry.registerPattern('pre code', (Code as Record<string, unknown>).transformPreCode as (...args: unknown[]) => unknown);
264
269
  }
265
-
270
+
266
271
  // Register standalone code pattern for complex code blocks
267
272
  if (!registry.hasPattern('code.highlight')) {
268
- registry.registerPattern('code.highlight', (Code as any).transformCodeHighlight);
273
+ registry.registerPattern('code.highlight', (Code as Record<string, unknown>).transformCodeHighlight as (...args: unknown[]) => unknown);
269
274
  }
270
275
  };
271
276
 
272
277
  // Transform pre + code elements to Code component
273
- (Code as any).transformPreCode = (element: Element): any => {
278
+ (Code as Record<string, unknown>).transformPreCode = (element: Element): unknown => {
274
279
  const codeChild = element.querySelector('code');
275
280
  if (!codeChild) return null;
276
281
 
@@ -290,7 +295,7 @@ export const Code: SerializableComponent<CodeProps> = createSerializableView<Cod
290
295
  };
291
296
 
292
297
  // Transform highlighted code elements to Code component
293
- (Code as any).transformCodeHighlight = (element: Element): any => {
298
+ (Code as Record<string, unknown>).transformCodeHighlight = (element: Element): unknown => {
294
299
  const language = Array.from(element.classList)
295
300
  .find(cls => cls.startsWith('language-'))
296
301
  ?.replace('language-', '') || 'text';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  /**
2
4
  * Content Component - General-purpose content container with data binding support
3
5
  *
@@ -14,7 +16,7 @@
14
16
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
15
17
  */
16
18
 
17
- import { Box, Paper, Stack, SxProps, Theme, Typography, useTheme } from '@mui/material';
19
+ import { Box, Stack, SxProps, Theme, Typography, useTheme, Paper } from '@mui/material';
18
20
  import { WithDataBinding, SchemaProps } from '@qwickapps/schema';
19
21
  import React from 'react';
20
22
  import { QWICKAPP_COMPONENT, useBaseProps, useDataBinding } from '../../hooks';
@@ -43,7 +45,7 @@ function ContentView({
43
45
  const theme = useTheme();
44
46
 
45
47
  // Mark as QwickApp component
46
- (ContentView as any)[QWICKAPP_COMPONENT] = true;
48
+ (ContentView as Record<string, unknown>)[QWICKAPP_COMPONENT] = true;
47
49
 
48
50
  // Map spacing to padding values
49
51
  const getPadding = () => {
@@ -74,7 +76,7 @@ function ContentView({
74
76
  };
75
77
 
76
78
  let Wrapper: React.ElementType = Box;
77
- let wrapperProps: Record<string, any> = { ...htmlProps, ...otherProps, sx: commonSx };
79
+ let wrapperProps: Record<string, unknown> = { ...htmlProps, ...otherProps, sx: commonSx };
78
80
  if (variant === 'elevated') {
79
81
  Wrapper = Paper;
80
82
  wrapperProps = { ...wrapperProps, elevation: 4, sx: { ...commonSx, backgroundColor: theme.palette.background.paper } };
@@ -165,18 +167,21 @@ function ContentView({
165
167
  function Content(props: ContentProps) {
166
168
  const { dataSource, bindingOptions, ...restProps } = props;
167
169
 
170
+ // Always call hooks unconditionally
171
+ const bindingResult = useDataBinding<ContentModel>(
172
+ dataSource || '',
173
+ restProps as Partial<ContentModel>,
174
+ ContentModel.getSchema(),
175
+ { cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
176
+ );
177
+
168
178
  // If no dataSource, use traditional props
169
179
  if (!dataSource) {
170
180
  return <ContentView {...restProps} />;
171
181
  }
172
182
 
173
- // Use data binding
174
- const { dataSource: _source, loading, error, cached, ...contentProps } = useDataBinding<ContentModel>(
175
- dataSource,
176
- restProps as Partial<ContentModel>,
177
- ContentModel.getSchema(),
178
- { cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
179
- );
183
+ // Use data binding result
184
+ const { loading, error, ...contentProps } = bindingResult;
180
185
 
181
186
  // Show loading state
182
187
  if (loading) {
@@ -1,11 +1,13 @@
1
+ 'use client';
2
+
1
3
  /**
2
4
  * CoverImageHeader - Flexible header with optional image, info section, and context menu
3
- *
5
+ *
4
6
  * Provides a clean header layout similar to modern app interfaces with:
5
7
  * - Optional image/avatar on the left
6
8
  * - Info section with overline, title, subtitle, and tags
7
9
  * - Context menu with up to 3 visible actions + overflow menu
8
- *
10
+ *
9
11
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
10
12
  */
11
13
 
@@ -396,18 +398,21 @@ function ErrorState() {
396
398
  function CoverImageHeader(props: CoverImageHeaderProps) {
397
399
  const { dataSource, bindingOptions, ...restProps } = props;
398
400
 
401
+ // Always call hooks unconditionally
402
+ const bindingResult = useDataBinding<CoverImageHeaderModel>(
403
+ dataSource || '',
404
+ restProps as Partial<CoverImageHeaderModel>,
405
+ CoverImageHeaderModel.getSchema(),
406
+ { cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
407
+ );
408
+
399
409
  // If no dataSource, use traditional props
400
410
  if (!dataSource) {
401
411
  return <CoverImageHeaderView {...restProps} />;
402
412
  }
403
413
 
404
- // Use data binding
405
- const { dataSource: _source, loading, error, cached, ...coverImageHeaderProps } = useDataBinding<CoverImageHeaderModel>(
406
- dataSource,
407
- restProps as Partial<CoverImageHeaderModel>,
408
- CoverImageHeaderModel.getSchema(),
409
- { cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
410
- );
414
+ // Use data binding result
415
+ const { loading, error, ...coverImageHeaderProps } = bindingResult;
411
416
 
412
417
  // Show loading state
413
418
  if (loading) {
@@ -430,7 +435,7 @@ function CoverImageHeader(props: CoverImageHeaderProps) {
430
435
  .map(action => ({
431
436
  ...action,
432
437
  id: action.id as string,
433
- onClick: () => console.log(`Action clicked: ${action.id}`) // Default handler for data-driven actions
438
+ onClick: () => console.debug(`Action clicked: ${action.id}`) // Default handler for data-driven actions
434
439
  }))
435
440
  : [];
436
441