@qwickapps/react-framework 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/QUICK_START_GUIDE.md +82 -0
  2. package/README.md +231 -21
  3. package/dist/components/Html.d.ts.map +1 -1
  4. package/dist/components/Markdown.d.ts +1 -2
  5. package/dist/components/Markdown.d.ts.map +1 -1
  6. package/dist/components/SafeSpan.d.ts +1 -2
  7. package/dist/components/SafeSpan.d.ts.map +1 -1
  8. package/dist/components/base/Container.d.ts +32 -0
  9. package/dist/components/base/Container.d.ts.map +1 -0
  10. package/dist/components/base/ContainerView.d.ts +65 -0
  11. package/dist/components/base/ContainerView.d.ts.map +1 -0
  12. package/dist/components/base/ModelView.d.ts +37 -46
  13. package/dist/components/base/ModelView.d.ts.map +1 -1
  14. package/dist/components/base/index.d.ts +3 -2
  15. package/dist/components/base/index.d.ts.map +1 -1
  16. package/dist/components/blocks/Article.d.ts +1 -2
  17. package/dist/components/blocks/Article.d.ts.map +1 -1
  18. package/dist/components/blocks/Code-factory.d.ts +22 -0
  19. package/dist/components/blocks/Code-factory.d.ts.map +1 -0
  20. package/dist/components/blocks/Code-old.d.ts +31 -0
  21. package/dist/components/blocks/Code-old.d.ts.map +1 -0
  22. package/dist/components/blocks/Code.d.ts +30 -18
  23. package/dist/components/blocks/Code.d.ts.map +1 -1
  24. package/dist/components/blocks/HeroBlock.d.ts +1 -2
  25. package/dist/components/blocks/HeroBlock.d.ts.map +1 -1
  26. package/dist/components/blocks/Image.d.ts +1 -2
  27. package/dist/components/blocks/Image.d.ts.map +1 -1
  28. package/dist/components/blocks/Section.d.ts +1 -2
  29. package/dist/components/blocks/Section.d.ts.map +1 -1
  30. package/dist/components/blocks/Text.d.ts +35 -27
  31. package/dist/components/blocks/Text.d.ts.map +1 -1
  32. package/dist/components/buttons/Button.d.ts +1 -2
  33. package/dist/components/buttons/Button.d.ts.map +1 -1
  34. package/dist/components/index.d.ts +2 -0
  35. package/dist/components/index.d.ts.map +1 -1
  36. package/dist/components/input/ChoiceInputField.d.ts +1 -2
  37. package/dist/components/input/ChoiceInputField.d.ts.map +1 -1
  38. package/dist/components/input/HtmlInputField.d.ts +1 -2
  39. package/dist/components/input/HtmlInputField.d.ts.map +1 -1
  40. package/dist/components/input/SelectInputField.d.ts +1 -2
  41. package/dist/components/input/SelectInputField.d.ts.map +1 -1
  42. package/dist/components/pages/Page.d.ts +29 -47
  43. package/dist/components/pages/Page.d.ts.map +1 -1
  44. package/dist/components/pages/index.d.ts +2 -3
  45. package/dist/components/pages/index.d.ts.map +1 -1
  46. package/dist/components/shared/createSerializableView.d.ts +68 -0
  47. package/dist/components/shared/createSerializableView.d.ts.map +1 -0
  48. package/dist/components/shared/viewProps.d.ts +37 -0
  49. package/dist/components/shared/viewProps.d.ts.map +1 -0
  50. package/dist/index.esm.js +21782 -22580
  51. package/dist/index.js +21782 -22579
  52. package/dist/qa/ConsoleWarningTest.d.ts +5 -0
  53. package/dist/qa/ConsoleWarningTest.d.ts.map +1 -0
  54. package/dist/qa/StorageKeyTest.d.ts +6 -0
  55. package/dist/qa/StorageKeyTest.d.ts.map +1 -0
  56. package/dist/qa/ThemeStorageKeyTest.d.ts +6 -0
  57. package/dist/qa/ThemeStorageKeyTest.d.ts.map +1 -0
  58. package/dist/schemas/CodeSchema.d.ts +2 -2
  59. package/dist/schemas/CodeSchema.d.ts.map +1 -1
  60. package/dist/schemas/ContainerSchema.d.ts +12 -0
  61. package/dist/schemas/ContainerSchema.d.ts.map +1 -0
  62. package/dist/schemas/PageTemplateSchema.d.ts +3 -3
  63. package/dist/schemas/PageTemplateSchema.d.ts.map +1 -1
  64. package/dist/schemas/ViewModelSchema.d.ts +46 -6
  65. package/dist/schemas/ViewModelSchema.d.ts.map +1 -1
  66. package/dist/schemas/ViewSchema.d.ts +65 -0
  67. package/dist/schemas/ViewSchema.d.ts.map +1 -0
  68. package/dist/schemas/index.d.ts +1 -1
  69. package/dist/schemas/index.d.ts.map +1 -1
  70. package/dist/schemas/transformers/ComponentTransformer.d.ts +27 -15
  71. package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -1
  72. package/dist/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -1
  73. package/dist/schemas/transformers/registry.d.ts +3 -0
  74. package/dist/schemas/transformers/registry.d.ts.map +1 -1
  75. package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts +66 -0
  76. package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +1 -0
  77. package/dist/src/components/AccessibilityChecker.d.ts +12 -0
  78. package/dist/src/components/AccessibilityChecker.d.ts.map +1 -0
  79. package/dist/src/components/AccessibilityProvider.d.ts +64 -0
  80. package/dist/src/components/AccessibilityProvider.d.ts.map +1 -0
  81. package/dist/src/components/Breadcrumbs.d.ts +39 -0
  82. package/dist/src/components/Breadcrumbs.d.ts.map +1 -0
  83. package/dist/src/components/ErrorBoundary.d.ts +46 -0
  84. package/dist/src/components/ErrorBoundary.d.ts.map +1 -0
  85. package/dist/src/components/Html.d.ts +58 -0
  86. package/dist/src/components/Html.d.ts.map +1 -0
  87. package/dist/src/components/Logo.d.ts +56 -0
  88. package/dist/src/components/Logo.d.ts.map +1 -0
  89. package/dist/src/components/Markdown.d.ts +51 -0
  90. package/dist/src/components/Markdown.d.ts.map +1 -0
  91. package/dist/src/components/QwickApp.d.ts +69 -0
  92. package/dist/src/components/QwickApp.d.ts.map +1 -0
  93. package/dist/src/components/QwickAppsLogo.d.ts +25 -0
  94. package/dist/src/components/QwickAppsLogo.d.ts.map +1 -0
  95. package/dist/src/components/QwickIcon.d.ts +23 -0
  96. package/dist/src/components/QwickIcon.d.ts.map +1 -0
  97. package/dist/src/components/ResponsiveMenu.d.ts +38 -0
  98. package/dist/src/components/ResponsiveMenu.d.ts.map +1 -0
  99. package/dist/src/components/SafeSpan.d.ts +29 -0
  100. package/dist/src/components/SafeSpan.d.ts.map +1 -0
  101. package/dist/src/components/Scaffold.d.ts +57 -0
  102. package/dist/src/components/Scaffold.d.ts.map +1 -0
  103. package/dist/src/components/base/Container.d.ts +33 -0
  104. package/dist/src/components/base/Container.d.ts.map +1 -0
  105. package/dist/src/components/base/ModelView.d.ts +92 -0
  106. package/dist/src/components/base/ModelView.d.ts.map +1 -0
  107. package/dist/src/components/base/index.d.ts +12 -0
  108. package/dist/src/components/base/index.d.ts.map +1 -0
  109. package/dist/src/components/blocks/Article.d.ts +32 -0
  110. package/dist/src/components/blocks/Article.d.ts.map +1 -0
  111. package/dist/src/components/blocks/CardListGrid.d.ts +23 -0
  112. package/dist/src/components/blocks/CardListGrid.d.ts.map +1 -0
  113. package/dist/src/components/blocks/Code.d.ts +37 -0
  114. package/dist/src/components/blocks/Code.d.ts.map +1 -0
  115. package/dist/src/components/blocks/Content.d.ts +24 -0
  116. package/dist/src/components/blocks/Content.d.ts.map +1 -0
  117. package/dist/src/components/blocks/CoverImageHeader.d.ts +44 -0
  118. package/dist/src/components/blocks/CoverImageHeader.d.ts.map +1 -0
  119. package/dist/src/components/blocks/FeatureCard.d.ts +66 -0
  120. package/dist/src/components/blocks/FeatureCard.d.ts.map +1 -0
  121. package/dist/src/components/blocks/FeatureGrid.d.ts +48 -0
  122. package/dist/src/components/blocks/FeatureGrid.d.ts.map +1 -0
  123. package/dist/src/components/blocks/Footer.d.ts +56 -0
  124. package/dist/src/components/blocks/Footer.d.ts.map +1 -0
  125. package/dist/src/components/blocks/HeroBlock.d.ts +55 -0
  126. package/dist/src/components/blocks/HeroBlock.d.ts.map +1 -0
  127. package/dist/src/components/blocks/Image.d.ts +40 -0
  128. package/dist/src/components/blocks/Image.d.ts.map +1 -0
  129. package/dist/src/components/blocks/PageBannerHeader.d.ts +30 -0
  130. package/dist/src/components/blocks/PageBannerHeader.d.ts.map +1 -0
  131. package/dist/src/components/blocks/ProductCard.d.ts +57 -0
  132. package/dist/src/components/blocks/ProductCard.d.ts.map +1 -0
  133. package/dist/src/components/blocks/Section.d.ts +45 -0
  134. package/dist/src/components/blocks/Section.d.ts.map +1 -0
  135. package/dist/src/components/blocks/Text.d.ts +34 -0
  136. package/dist/src/components/blocks/Text.d.ts.map +1 -0
  137. package/dist/src/components/blocks/index.d.ts +41 -0
  138. package/dist/src/components/blocks/index.d.ts.map +1 -0
  139. package/dist/src/components/buttons/Button.d.ts +41 -0
  140. package/dist/src/components/buttons/Button.d.ts.map +1 -0
  141. package/dist/src/components/buttons/PaletteSwitcher.d.ts +24 -0
  142. package/dist/src/components/buttons/PaletteSwitcher.d.ts.map +1 -0
  143. package/dist/src/components/buttons/ThemeSwitcher.d.ts +24 -0
  144. package/dist/src/components/buttons/ThemeSwitcher.d.ts.map +1 -0
  145. package/dist/src/components/buttons/index.d.ts +11 -0
  146. package/dist/src/components/buttons/index.d.ts.map +1 -0
  147. package/dist/src/components/forms/FormBlock.d.ts +51 -0
  148. package/dist/src/components/forms/FormBlock.d.ts.map +1 -0
  149. package/dist/src/components/forms/index.d.ts +8 -0
  150. package/dist/src/components/forms/index.d.ts.map +1 -0
  151. package/dist/src/components/index.d.ts +41 -0
  152. package/dist/src/components/index.d.ts.map +1 -0
  153. package/dist/src/components/input/ChoiceInputField.d.ts +29 -0
  154. package/dist/src/components/input/ChoiceInputField.d.ts.map +1 -0
  155. package/dist/src/components/input/HtmlInputField.d.ts +33 -0
  156. package/dist/src/components/input/HtmlInputField.d.ts.map +1 -0
  157. package/dist/src/components/input/SelectInputField.d.ts +31 -0
  158. package/dist/src/components/input/SelectInputField.d.ts.map +1 -0
  159. package/dist/src/components/input/SwitchInputField.d.ts +27 -0
  160. package/dist/src/components/input/SwitchInputField.d.ts.map +1 -0
  161. package/dist/src/components/input/TextField.d.ts +18 -0
  162. package/dist/src/components/input/TextField.d.ts.map +1 -0
  163. package/dist/src/components/input/TextInputField.d.ts +34 -0
  164. package/dist/src/components/input/TextInputField.d.ts.map +1 -0
  165. package/dist/src/components/input/index.d.ts +19 -0
  166. package/dist/src/components/input/index.d.ts.map +1 -0
  167. package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts +34 -0
  168. package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +1 -0
  169. package/dist/src/components/layout/CollapsibleLayout/index.d.ts +9 -0
  170. package/dist/src/components/layout/CollapsibleLayout/index.d.ts.map +1 -0
  171. package/dist/src/components/layout/GridCell.d.ts +32 -0
  172. package/dist/src/components/layout/GridCell.d.ts.map +1 -0
  173. package/dist/src/components/layout/GridCellWrapper.d.ts +46 -0
  174. package/dist/src/components/layout/GridCellWrapper.d.ts.map +1 -0
  175. package/dist/src/components/layout/GridLayout.d.ts +50 -0
  176. package/dist/src/components/layout/GridLayout.d.ts.map +1 -0
  177. package/dist/src/components/layout/index.d.ts +14 -0
  178. package/dist/src/components/layout/index.d.ts.map +1 -0
  179. package/dist/src/components/menu/Menu.d.ts +1 -0
  180. package/dist/src/components/menu/Menu.d.ts.map +1 -0
  181. package/dist/src/components/menu/MenuItem.d.ts +31 -0
  182. package/dist/src/components/menu/MenuItem.d.ts.map +1 -0
  183. package/dist/src/components/menu/index.d.ts +7 -0
  184. package/dist/src/components/menu/index.d.ts.map +1 -0
  185. package/dist/src/components/pages/FormPage.d.ts +66 -0
  186. package/dist/src/components/pages/FormPage.d.ts.map +1 -0
  187. package/dist/src/components/pages/Page.d.ts +68 -0
  188. package/dist/src/components/pages/Page.d.ts.map +1 -0
  189. package/dist/src/components/pages/index.d.ts +10 -0
  190. package/dist/src/components/pages/index.d.ts.map +1 -0
  191. package/dist/src/components/shared/createSerializableView.d.ts +81 -0
  192. package/dist/src/components/shared/createSerializableView.d.ts.map +1 -0
  193. package/dist/src/components/shared/viewProps.d.ts +37 -0
  194. package/dist/src/components/shared/viewProps.d.ts.map +1 -0
  195. package/dist/src/config/AppConfig.d.ts +49 -0
  196. package/dist/src/config/AppConfig.d.ts.map +1 -0
  197. package/dist/src/config/AppConfigBuilder.d.ts +75 -0
  198. package/dist/src/config/AppConfigBuilder.d.ts.map +1 -0
  199. package/dist/src/config/index.d.ts +13 -0
  200. package/dist/src/config/index.d.ts.map +1 -0
  201. package/dist/src/config/types.d.ts +130 -0
  202. package/dist/src/config/types.d.ts.map +1 -0
  203. package/dist/src/config.d.ts +15 -0
  204. package/dist/src/config.d.ts.map +1 -0
  205. package/dist/src/contexts/DataContext.d.ts +139 -0
  206. package/dist/src/contexts/DataContext.d.ts.map +1 -0
  207. package/dist/src/contexts/DimensionsContext.d.ts +42 -0
  208. package/dist/src/contexts/DimensionsContext.d.ts.map +1 -0
  209. package/dist/src/contexts/PaletteContext.d.ts +53 -0
  210. package/dist/src/contexts/PaletteContext.d.ts.map +1 -0
  211. package/dist/src/contexts/PrintModeContext.d.ts +27 -0
  212. package/dist/src/contexts/PrintModeContext.d.ts.map +1 -0
  213. package/dist/src/contexts/QwickAppContext.d.ts +71 -0
  214. package/dist/src/contexts/QwickAppContext.d.ts.map +1 -0
  215. package/dist/src/contexts/ThemeContext.d.ts +65 -0
  216. package/dist/src/contexts/ThemeContext.d.ts.map +1 -0
  217. package/dist/src/contexts/index.d.ts +11 -0
  218. package/dist/src/contexts/index.d.ts.map +1 -0
  219. package/dist/src/hooks/index.d.ts +12 -0
  220. package/dist/src/hooks/index.d.ts.map +1 -0
  221. package/dist/src/hooks/useBaseProps.d.ts +101 -0
  222. package/dist/src/hooks/useBaseProps.d.ts.map +1 -0
  223. package/dist/src/hooks/useDataBinding.d.ts +22 -0
  224. package/dist/src/hooks/useDataBinding.d.ts.map +1 -0
  225. package/dist/src/hooks/usePrintMode.d.ts +39 -0
  226. package/dist/src/hooks/usePrintMode.d.ts.map +1 -0
  227. package/dist/src/index.d.ts +9 -0
  228. package/dist/src/index.d.ts.map +1 -0
  229. package/dist/src/palettes/PaletteAutumn.d.ts +10 -0
  230. package/dist/src/palettes/PaletteAutumn.d.ts.map +1 -0
  231. package/dist/src/palettes/PaletteCosmic.d.ts +10 -0
  232. package/dist/src/palettes/PaletteCosmic.d.ts.map +1 -0
  233. package/dist/src/palettes/PaletteDefault.d.ts +10 -0
  234. package/dist/src/palettes/PaletteDefault.d.ts.map +1 -0
  235. package/dist/src/palettes/PaletteOcean.d.ts +10 -0
  236. package/dist/src/palettes/PaletteOcean.d.ts.map +1 -0
  237. package/dist/src/palettes/PaletteSpring.d.ts +10 -0
  238. package/dist/src/palettes/PaletteSpring.d.ts.map +1 -0
  239. package/dist/src/palettes/PaletteWinter.d.ts +10 -0
  240. package/dist/src/palettes/PaletteWinter.d.ts.map +1 -0
  241. package/dist/src/palettes/index.d.ts +13 -0
  242. package/dist/src/palettes/index.d.ts.map +1 -0
  243. package/dist/src/schemas/ActionSchema.d.ts +21 -0
  244. package/dist/src/schemas/ActionSchema.d.ts.map +1 -0
  245. package/dist/src/schemas/ArticleSchema.d.ts +13 -0
  246. package/dist/src/schemas/ArticleSchema.d.ts.map +1 -0
  247. package/dist/src/schemas/ButtonSchema.d.ts +19 -0
  248. package/dist/src/schemas/ButtonSchema.d.ts.map +1 -0
  249. package/dist/src/schemas/CardListGridSchema.d.ts +17 -0
  250. package/dist/src/schemas/CardListGridSchema.d.ts.map +1 -0
  251. package/dist/src/schemas/ChoiceInputFieldSchema.d.ts +18 -0
  252. package/dist/src/schemas/ChoiceInputFieldSchema.d.ts.map +1 -0
  253. package/dist/src/schemas/CodeSchema.d.ts +18 -0
  254. package/dist/src/schemas/CodeSchema.d.ts.map +1 -0
  255. package/dist/src/schemas/CollapsibleLayoutSchema.d.ts +32 -0
  256. package/dist/src/schemas/CollapsibleLayoutSchema.d.ts.map +1 -0
  257. package/dist/src/schemas/ContainerSchema.d.ts +12 -0
  258. package/dist/src/schemas/ContainerSchema.d.ts.map +1 -0
  259. package/dist/src/schemas/ContentSchema.d.ts +21 -0
  260. package/dist/src/schemas/ContentSchema.d.ts.map +1 -0
  261. package/dist/src/schemas/CoverImageHeaderSchema.d.ts +28 -0
  262. package/dist/src/schemas/CoverImageHeaderSchema.d.ts.map +1 -0
  263. package/dist/src/schemas/FeatureCardSchema.d.ts +28 -0
  264. package/dist/src/schemas/FeatureCardSchema.d.ts.map +1 -0
  265. package/dist/src/schemas/FeatureGridSchema.d.ts +17 -0
  266. package/dist/src/schemas/FeatureGridSchema.d.ts.map +1 -0
  267. package/dist/src/schemas/FeatureItemSchema.d.ts +16 -0
  268. package/dist/src/schemas/FeatureItemSchema.d.ts.map +1 -0
  269. package/dist/src/schemas/FooterItemSchema.d.ts +15 -0
  270. package/dist/src/schemas/FooterItemSchema.d.ts.map +1 -0
  271. package/dist/src/schemas/FooterSchema.d.ts +20 -0
  272. package/dist/src/schemas/FooterSchema.d.ts.map +1 -0
  273. package/dist/src/schemas/FooterSectionSchema.d.ts +15 -0
  274. package/dist/src/schemas/FooterSectionSchema.d.ts.map +1 -0
  275. package/dist/src/schemas/FormBlockSchema.d.ts +19 -0
  276. package/dist/src/schemas/FormBlockSchema.d.ts.map +1 -0
  277. package/dist/src/schemas/GridCellSchema.d.ts +23 -0
  278. package/dist/src/schemas/GridCellSchema.d.ts.map +1 -0
  279. package/dist/src/schemas/GridLayoutSchema.d.ts +21 -0
  280. package/dist/src/schemas/GridLayoutSchema.d.ts.map +1 -0
  281. package/dist/src/schemas/HeaderActionSchema.d.ts +17 -0
  282. package/dist/src/schemas/HeaderActionSchema.d.ts.map +1 -0
  283. package/dist/src/schemas/HeroBlockSchema.d.ts +22 -0
  284. package/dist/src/schemas/HeroBlockSchema.d.ts.map +1 -0
  285. package/dist/src/schemas/HtmlInputFieldSchema.d.ts +18 -0
  286. package/dist/src/schemas/HtmlInputFieldSchema.d.ts.map +1 -0
  287. package/dist/src/schemas/HtmlSchema.d.ts +14 -0
  288. package/dist/src/schemas/HtmlSchema.d.ts.map +1 -0
  289. package/dist/src/schemas/ImageSchema.d.ts +32 -0
  290. package/dist/src/schemas/ImageSchema.d.ts.map +1 -0
  291. package/dist/src/schemas/LogoSchema.d.ts +35 -0
  292. package/dist/src/schemas/LogoSchema.d.ts.map +1 -0
  293. package/dist/src/schemas/MarkdownSchema.d.ts +14 -0
  294. package/dist/src/schemas/MarkdownSchema.d.ts.map +1 -0
  295. package/dist/src/schemas/MetadataItemSchema.d.ts +13 -0
  296. package/dist/src/schemas/MetadataItemSchema.d.ts.map +1 -0
  297. package/dist/src/schemas/PageBannerHeaderSchema.d.ts +28 -0
  298. package/dist/src/schemas/PageBannerHeaderSchema.d.ts.map +1 -0
  299. package/dist/src/schemas/PageTemplateSchema.d.ts +31 -0
  300. package/dist/src/schemas/PageTemplateSchema.d.ts.map +1 -0
  301. package/dist/src/schemas/PaletteSwitcherSchema.d.ts +16 -0
  302. package/dist/src/schemas/PaletteSwitcherSchema.d.ts.map +1 -0
  303. package/dist/src/schemas/PrintConfigSchema.d.ts +31 -0
  304. package/dist/src/schemas/PrintConfigSchema.d.ts.map +1 -0
  305. package/dist/src/schemas/ProductCardSchema.d.ts +39 -0
  306. package/dist/src/schemas/ProductCardSchema.d.ts.map +1 -0
  307. package/dist/src/schemas/SafeSpanSchema.d.ts +13 -0
  308. package/dist/src/schemas/SafeSpanSchema.d.ts.map +1 -0
  309. package/dist/src/schemas/SectionSchema.d.ts +16 -0
  310. package/dist/src/schemas/SectionSchema.d.ts.map +1 -0
  311. package/dist/src/schemas/SelectInputFieldSchema.d.ts +27 -0
  312. package/dist/src/schemas/SelectInputFieldSchema.d.ts.map +1 -0
  313. package/dist/src/schemas/SwitchInputFieldSchema.d.ts +18 -0
  314. package/dist/src/schemas/SwitchInputFieldSchema.d.ts.map +1 -0
  315. package/dist/src/schemas/TextInputFieldSchema.d.ts +22 -0
  316. package/dist/src/schemas/TextInputFieldSchema.d.ts.map +1 -0
  317. package/dist/src/schemas/TextSchema.d.ts +37 -0
  318. package/dist/src/schemas/TextSchema.d.ts.map +1 -0
  319. package/dist/src/schemas/ThemeSwitcherSchema.d.ts +19 -0
  320. package/dist/src/schemas/ThemeSwitcherSchema.d.ts.map +1 -0
  321. package/dist/src/schemas/ViewSchema.d.ts +66 -0
  322. package/dist/src/schemas/ViewSchema.d.ts.map +1 -0
  323. package/dist/src/schemas/index.d.ts +47 -0
  324. package/dist/src/schemas/index.d.ts.map +1 -0
  325. package/dist/src/schemas/transformers/ComponentTransformer.d.ts +128 -0
  326. package/dist/src/schemas/transformers/ComponentTransformer.d.ts.map +1 -0
  327. package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts +53 -0
  328. package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -0
  329. package/dist/src/schemas/transformers/registry.d.ts +18 -0
  330. package/dist/src/schemas/transformers/registry.d.ts.map +1 -0
  331. package/dist/src/schemas/types/Serializable.d.ts +46 -0
  332. package/dist/src/schemas/types/Serializable.d.ts.map +1 -0
  333. package/dist/src/stories/_templates/SerializationTemplate.d.ts +44 -0
  334. package/dist/src/stories/_templates/SerializationTemplate.d.ts.map +1 -0
  335. package/dist/src/templates/TemplateResolver.d.ts +52 -0
  336. package/dist/src/templates/TemplateResolver.d.ts.map +1 -0
  337. package/dist/src/templates/index.d.ts +7 -0
  338. package/dist/src/templates/index.d.ts.map +1 -0
  339. package/dist/src/types/CacheProvider.d.ts +18 -0
  340. package/dist/src/types/CacheProvider.d.ts.map +1 -0
  341. package/dist/src/types/CollapsibleLayout.d.ts +142 -0
  342. package/dist/src/types/CollapsibleLayout.d.ts.map +1 -0
  343. package/dist/src/types/ContentProxy.d.ts +47 -0
  344. package/dist/src/types/ContentProxy.d.ts.map +1 -0
  345. package/dist/src/types/DataTypes.d.ts +185 -0
  346. package/dist/src/types/DataTypes.d.ts.map +1 -0
  347. package/dist/src/types/TemplateProvider.d.ts +10 -0
  348. package/dist/src/types/TemplateProvider.d.ts.map +1 -0
  349. package/dist/src/types/TemplateResolver.d.ts +23 -0
  350. package/dist/src/types/TemplateResolver.d.ts.map +1 -0
  351. package/dist/src/types/index.d.ts +82 -0
  352. package/dist/src/types/index.d.ts.map +1 -0
  353. package/dist/src/utils/breakpoints.d.ts +35 -0
  354. package/dist/src/utils/breakpoints.d.ts.map +1 -0
  355. package/dist/src/utils/cssUtils.d.ts +17 -0
  356. package/dist/src/utils/cssUtils.d.ts.map +1 -0
  357. package/dist/src/utils/customPaletteManager.d.ts +8 -0
  358. package/dist/src/utils/customPaletteManager.d.ts.map +1 -0
  359. package/dist/src/utils/dimensions.d.ts +34 -0
  360. package/dist/src/utils/dimensions.d.ts.map +1 -0
  361. package/dist/src/utils/htmlTransform.d.ts +44 -0
  362. package/dist/src/utils/htmlTransform.d.ts.map +1 -0
  363. package/dist/src/utils/index.d.ts +16 -0
  364. package/dist/src/utils/index.d.ts.map +1 -0
  365. package/dist/src/utils/logger.d.ts +26 -0
  366. package/dist/src/utils/logger.d.ts.map +1 -0
  367. package/dist/src/utils/paletteUtils.d.ts +38 -0
  368. package/dist/src/utils/paletteUtils.d.ts.map +1 -0
  369. package/dist/src/utils/persistenceUtils.d.ts +31 -0
  370. package/dist/src/utils/persistenceUtils.d.ts.map +1 -0
  371. package/dist/src/utils/reactUtils.d.ts +33 -0
  372. package/dist/src/utils/reactUtils.d.ts.map +1 -0
  373. package/dist/src/utils/spacing.d.ts +34 -0
  374. package/dist/src/utils/spacing.d.ts.map +1 -0
  375. package/dist/src/utils/themePerformanceMonitor.d.ts +32 -0
  376. package/dist/src/utils/themePerformanceMonitor.d.ts.map +1 -0
  377. package/dist/src/utils/themeUtils.d.ts +27 -0
  378. package/dist/src/utils/themeUtils.d.ts.map +1 -0
  379. package/dist/utils/cssUtils.d.ts +17 -0
  380. package/dist/utils/cssUtils.d.ts.map +1 -0
  381. package/dist/utils/index.d.ts +1 -0
  382. package/dist/utils/index.d.ts.map +1 -1
  383. package/package.json +5 -2
  384. package/scripts/bundle-css.cjs +27 -0
  385. package/scripts/create-project.sh +28 -0
  386. package/scripts/create-qwickapps-project.js +284 -0
  387. package/src/__tests__/components/base/Container.test.tsx +966 -0
  388. package/src/__tests__/schemas/PageTemplateSchema.test.ts +1 -1
  389. package/src/__tests__/schemas/ViewSchema.test.ts +805 -0
  390. package/src/__tests__/schemas/builders.test.ts +2 -2
  391. package/src/__tests__/schemas/transformers/ComponentTransformer.test.ts +19 -19
  392. package/src/__tests__/schemas/transformers/CrossBrowserCompatibility.test.ts +13 -13
  393. package/src/__tests__/schemas/transformers/SerializationErrorHandling.test.ts +39 -39
  394. package/src/__tests__/schemas/transformers/SerializationPerformance.test.ts +14 -14
  395. package/src/__tests__/schemas/transformers/TestAutomation.test.ts +8 -8
  396. package/src/__tests__/schemas/transformers/nested-serialization.test.tsx +181 -0
  397. package/src/__tests__/schemas/transformers/round-trip-component-serialization.test.tsx +458 -0
  398. package/src/__tests__/test_image_accessibility.test.tsx +226 -0
  399. package/src/__tests__/utils/optional-logging.test.ts +3 -3
  400. package/src/components/Html.tsx +24 -15
  401. package/src/components/Logo.tsx +2 -2
  402. package/src/components/Markdown.tsx +2 -7
  403. package/src/components/SafeSpan.tsx +2 -7
  404. package/src/components/base/Container.tsx +61 -0
  405. package/src/components/base/ModelView.tsx +225 -91
  406. package/src/components/base/index.ts +3 -2
  407. package/src/components/blocks/Article.tsx +2 -7
  408. package/src/components/blocks/CardListGrid.tsx +2 -2
  409. package/src/components/blocks/Code.tsx +91 -179
  410. package/src/components/blocks/Content.tsx +2 -2
  411. package/src/components/blocks/CoverImageHeader.tsx +2 -2
  412. package/src/components/blocks/HeroBlock.tsx +54 -146
  413. package/src/components/blocks/Image.tsx +82 -196
  414. package/src/components/blocks/PageBannerHeader.tsx +2 -2
  415. package/src/components/blocks/Section.tsx +79 -181
  416. package/src/components/blocks/Text.tsx +100 -198
  417. package/src/components/buttons/Button.tsx +85 -183
  418. package/src/components/buttons/PaletteSwitcher.tsx +2 -2
  419. package/src/components/buttons/ThemeSwitcher.tsx +2 -2
  420. package/src/components/forms/FormBlock.tsx +2 -2
  421. package/src/components/index.ts +5 -0
  422. package/src/components/input/ChoiceInputField.tsx +76 -160
  423. package/src/components/input/HtmlInputField.tsx +141 -264
  424. package/src/components/input/SelectInputField.tsx +48 -153
  425. package/src/components/input/SwitchInputField.tsx +41 -139
  426. package/src/components/input/TextInputField.tsx +39 -116
  427. package/src/components/layout/GridCell.tsx +36 -122
  428. package/src/components/layout/GridLayout.tsx +55 -127
  429. package/src/components/pages/Page.tsx +268 -276
  430. package/src/components/pages/index.ts +2 -3
  431. package/src/components/shared/createSerializableView.tsx +280 -0
  432. package/src/components/shared/viewProps.ts +207 -0
  433. package/src/config/__tests__/AppConfigBuilder.test.ts +2 -2
  434. package/src/contexts/DataContext.tsx +1 -1
  435. package/src/schemas/ButtonSchema.ts +3 -2
  436. package/src/schemas/CardListGridSchema.ts +3 -2
  437. package/src/schemas/ChoiceInputFieldSchema.ts +3 -2
  438. package/src/schemas/CodeSchema.ts +8 -6
  439. package/src/schemas/ContainerSchema.ts +25 -0
  440. package/src/schemas/FeatureCardSchema.ts +1 -1
  441. package/src/schemas/FormBlockSchema.ts +3 -2
  442. package/src/schemas/GridCellSchema.ts +4 -10
  443. package/src/schemas/GridLayoutSchema.ts +8 -14
  444. package/src/schemas/HeroBlockSchema.ts +3 -2
  445. package/src/schemas/HtmlInputFieldSchema.ts +3 -2
  446. package/src/schemas/ImageSchema.ts +3 -2
  447. package/src/schemas/PageTemplateSchema.ts +5 -5
  448. package/src/schemas/SectionSchema.ts +4 -12
  449. package/src/schemas/SelectInputFieldSchema.ts +3 -2
  450. package/src/schemas/SwitchInputFieldSchema.ts +2 -2
  451. package/src/schemas/TextInputFieldSchema.ts +3 -2
  452. package/src/schemas/ViewSchema.ts +570 -0
  453. package/src/schemas/index.ts +1 -1
  454. package/src/schemas/transformers/ComponentTransformer.ts +185 -163
  455. package/src/schemas/transformers/ReactNodeTransformer.ts +31 -28
  456. package/src/schemas/transformers/registry.ts +17 -10
  457. package/src/stories/Button.stories.tsx +24 -0
  458. package/src/stories/ChoiceInputField.stories.tsx +28 -1
  459. package/src/stories/Code.stories.tsx +61 -1
  460. package/src/stories/Container.stories.tsx +954 -0
  461. package/src/stories/FormBlock.stories.tsx +54 -0
  462. package/src/stories/FormComponents.stories.tsx +8 -13
  463. package/src/stories/GridCell.stories.tsx +23 -64
  464. package/src/stories/GridLayout.stories.tsx +22 -47
  465. package/src/stories/HeroBlock.stories.tsx +28 -0
  466. package/src/stories/HtmlInputField.stories.tsx +23 -1
  467. package/src/stories/Image.stories.tsx +45 -233
  468. package/src/stories/Markdown.stories.tsx +1 -1
  469. package/src/stories/Section.stories.tsx +38 -4
  470. package/src/stories/SelectInputField.stories.tsx +26 -1
  471. package/src/stories/Text.stories.tsx +22 -54
  472. package/src/stories/TextInputField.stories.tsx +24 -1
  473. package/src/stories/_templates/SerializationTemplate.tsx +165 -0
  474. package/src/templates/TemplateResolver.ts +2 -2
  475. package/src/types/CollapsibleLayout.ts +2 -2
  476. package/src/utils/cssUtils.ts +49 -0
  477. package/src/utils/index.ts +1 -0
  478. package/src/utils/logger.ts +13 -13
  479. package/src/__tests__/components/base/ModelView.test.tsx +0 -220
  480. package/src/__tests__/schemas/ViewModelSchema.test.ts +0 -80
  481. package/src/components/blocks/Code.md +0 -529
  482. package/src/schemas/README.md +0 -661
  483. package/src/schemas/ViewModelSchema.ts +0 -115
  484. package/src/tests/ConsoleWarningTest.tsx +0 -30
  485. package/src/tests/StorageKeyTest.tsx +0 -110
  486. package/src/tests/ThemeStorageKeyTest.tsx +0 -114
package/README.md CHANGED
@@ -4,15 +4,48 @@ A complete React framework for building modern, responsive applications with int
4
4
 
5
5
  ## What's New
6
6
 
7
- ### January 5, 2025 - Component Serialization System ("WebView for React")
7
+ ### September 29, 2025 - Production Ready Release (v1.4.2)
8
+
9
+ - **NPM Publishing Ready**: Package prepared for official NPM distribution with optimized build configuration and comprehensive exports
10
+ - **Enhanced Build System**: Improved rollup configuration with both development and production builds, automatic CSS bundling, and TypeScript declarations
11
+ - **Complete API Exports**: All framework components, utilities, and configuration modules properly exported for external consumption
12
+ - **Project Creation Scripts**: Included automated project scaffolding tools for rapid QwickApps React Framework adoption
13
+ - **Storybook Integration**: Full component documentation and interactive examples ready for developers
14
+ - **Production Optimizations**: Stripped logging in production builds, optimized bundle sizes, and enhanced performance characteristics
15
+ - **Publishing Pipeline**: Configured with proper package metadata, repository links, and NPM publishing workflows
16
+
17
+ ### September 13, 2025 - Schema-Driven Factory Pattern Architecture Completed ✅
18
+
19
+ - **Phase 2 Migration Complete**: Successfully migrated 10+ core components to schema-driven factory pattern with 100% feature parity maintained
20
+ - **Factory Pattern Architecture**: Complete implementation of `createSerializableView` factory generating functional components with static serialization methods
21
+ - **Container vs View Components**: Clear architectural distinction established - Container components (Section, HeroBlock, GridLayout) use `react-children` strategy, View components use appropriate serialization patterns
22
+ - **Security Enhancement**: Content-prop strategy from Phase 1 successfully maintained, preventing JSON deserialization vulnerabilities
23
+ - **Schema Integration**: Components extend ViewSchema or ContainerSchema for standardized prop definitions with existing BaseComponentProps compatibility
24
+ - **QA Results**: All unit tests updated and passing, all Storybook stories rendering correctly, serialization round-trip tests working, build passes successfully
25
+ - **Component Roster**: Section, HeroBlock, GridLayout, GridCell, Image, Button, TextInputField, SelectInputField, HtmlInputField, ChoiceInputField, SwitchInputField migrated
26
+ - **Performance**: All components maintain sub-millisecond serialization performance, factory pattern establishes foundation for future development
27
+ - **Architecture Ready**: Phase 3 cleanup now ready to remove ModelView legacy code and complete transition to modern schema-driven architecture
28
+
29
+ ### September 9, 2025 - Advanced Print System with Professional Layout Control (v1.4.1)
30
+
31
+ - **Complete Print View System**: Professional print functionality for React Framework with intelligent detection, dynamic configuration, and sophisticated print layouts
32
+ - **Multi-Channel Print Detection**: Browser event integration (Ctrl+P/Cmd+P), and manual print mode controls with comprehensive state management
33
+ - **Advanced Print Configuration**: Complete PrintConfigSchema with theme control (light/dark), palette selection, monochrome optimization, and interactive element hiding
34
+ - **Dynamic Header/Footer System**: ReactNode | string support for print headers and footers with separate first-page variants, automatic height measurement, and CSS variable-driven positioning
35
+ - **Edge-to-Edge Printing**: Configurable page margins (0mm, 6mm, 12mm, 20mm, 25mm) with automatic CSS class application and complete borderless printing capabilities
36
+ - **Print Background Control**: Full background image/color support for printed pages with separate first-page backgrounds and professional document styling
37
+ - **CSS Variable Architecture**: Dynamic injection of print-specific variables (--print-header-height, --print-footer-height, --print-background) with automatic @page rule generation
38
+ - **Schema-Driven Architecture**: Complete integration with PageTemplateSchema for CMS-managed print configurations and serializable page content
39
+
40
+ ### September 5, 2025 - Component Serialization System ("WebView for React")
8
41
 
9
42
  - **Complete Component Serialization**: Full "WebView for React" functionality enabling components to be serialized to JSON and reconstructed while preserving functionality
10
43
  - **Data Binding Preservation**: Serialization system seamlessly preserves data binding configuration across serialize/deserialize cycles
11
44
  - **Code Component Reference Implementation**: Code component serves as the canonical example with <1ms serialization performance and comprehensive ReactNode handling
12
- - **Image Component ModelView Integration**: Image component successfully converted to ModelView architecture with 300-500x performance targets exceeded and 100% backward compatibility
13
- - **Text Component ModelView Integration**: Text component successfully converted to ModelView architecture with 125-500x performance targets exceeded, comprehensive typography serialization, and 96.3% test coverage
45
+ - **Image Component Schema Integration**: Image component successfully converted to Schema architecture with 300-500x performance targets exceeded and 100% backward compatibility
46
+ - **Text Component Schema Integration**: Text component successfully converted to Schema architecture with 125-500x performance targets exceeded, comprehensive typography serialization, and 96.3% test coverage
14
47
  - **HeroBlock Component Complex Serialization**: **First component with nested component serialization** - HeroBlock successfully converted with Button actions array support and 500x performance targets exceeded (0.0009ms basic, 0.0058ms complex serialization)
15
- - **GridLayout & GridCell Components**: **First responsive grid system with complete serialization** - GridLayout and GridCell components successfully converted to ModelView with 3-169x performance targets exceeded and complete responsive breakpoint preservation
48
+ - **GridLayout & GridCell Components**: **First responsive grid system with complete serialization** - GridLayout and GridCell components successfully converted to Schema with 3-169x performance targets exceeded and complete responsive breakpoint preservation
16
49
  - **Responsive Grid Breakthrough**: GridLayout and GridCell establish patterns for responsive layout serialization with all breakpoint configurations (xs,sm,md,lg,xl) preserved through serialization cycles
17
50
  - **Complex Layout Support**: GridLayout handles 1-6 column responsive layouts with nested GridCell components, maintaining complete functionality after reconstruction
18
51
  - **Nested Component Breakthrough**: HeroBlock establishes architectural patterns for complex components with nested React elements, demonstrating serialization system capability for sophisticated component hierarchies
@@ -28,8 +61,8 @@ A complete React framework for building modern, responsive applications with int
28
61
  - **Preventive Lint Rule**: Repo now enforces a custom `no-inline-component-wrapper` ESLint rule (scoped rollout) to block reintroduction of the remount pattern.
29
62
  - **Internal Refactor Only**: No public API changes; safe patch update.
30
63
 
31
-
32
64
  ### September 2, 2025 - Built-in Error Handling & Accessibility
65
+
33
66
  - **Automatic Error Boundaries**: QwickApp now automatically wraps all content with ErrorBoundary for robust error handling
34
67
  - **Built-in Accessibility**: AccessibilityProvider automatically included for WCAG 2.1 AA compliance
35
68
  - **Generic Components**: Moved ErrorBoundary, AccessibilityProvider, and Breadcrumbs to framework level
@@ -37,12 +70,14 @@ A complete React framework for building modern, responsive applications with int
37
70
  - **Zero Configuration**: Error handling and accessibility features work out-of-the-box with QwickApp
38
71
 
39
72
  ### September 1, 2025 - Optional Dependencies & Performance
73
+
40
74
  - **Optional Logging**: Made `@qwickapps/logging` an optional dependency with console fallback
41
75
  - **Reduced Bundle Size**: Core framework no longer includes logging overhead by default
42
76
  - **React Error Fixes**: Fixed React error #62 in Markdown mixed content scenarios
43
77
  - **DOM Nesting**: Added automatic cleanup of invalid DOM nesting from marked.js output
44
78
 
45
79
  ### August 31, 2025 - CMS Content Components
80
+
46
81
  - **Html Component**: Transform HTML strings into React components with configurable transformation rules
47
82
  - **Markdown Component**: Convert Markdown to React components using marked library with Html component integration
48
83
  - **Transform System**: Extensible HTML transformation architecture with optimized rule sets for Article and Markdown content
@@ -51,12 +86,14 @@ A complete React framework for building modern, responsive applications with int
51
86
  ## Features
52
87
 
53
88
  ### 🧭 **Responsive Navigation**
89
+
54
90
  - **Mobile**: Bottom navigation bar for touch-friendly access
55
91
  - **Tablet**: Expandable nav rail with collapsible sidebar
56
92
  - **Desktop**: Top navigation with overflow drawer
57
93
  - **Automatic**: Adapts based on screen size without configuration
58
94
 
59
95
  ### 📐 **Flexible Layout System**
96
+
60
97
  - **Hero Blocks**: Full-width hero sections with background images/gradients
61
98
  - **Multi-Column Layouts**: Responsive 2-5 column layouts with equal heights
62
99
  - **Content Blocks**: Styled containers with variants (elevated, outlined, filled)
@@ -65,12 +102,14 @@ A complete React framework for building modern, responsive applications with int
65
102
  - **CollapsibleLayout**: Advanced expandable/collapsible containers with state management
66
103
 
67
104
  ### 🎨 **Advanced Theming**
105
+
68
106
  - **Theme Management**: Light, dark, and system theme support
69
107
  - **Color Palettes**: Multiple built-in palettes (Ocean, Autumn, Spring, Winter)
70
108
  - **CSS Variables**: Dynamic theme switching without re-renders
71
109
  - **Custom Palettes**: Easy to create and integrate custom color schemes
72
110
 
73
111
  ### 🧩 **Component Library**
112
+
74
113
  - **Logo Component**: Dynamic, customizable logos with badges and animations
75
114
  - **Theme Controls**: Built-in theme and palette switchers
76
115
  - **Form Components**: Accessible, themed form inputs with complete serialization support
@@ -82,9 +121,10 @@ A complete React framework for building modern, responsive applications with int
82
121
  - **Transform System**: Extensible HTML element transformation with fallback handling
83
122
 
84
123
  ### 🔄 **Component Serialization System**
124
+
85
125
  - **"WebView for React" Functionality**: Serialize React components to JSON and reconstruct with full functionality preserved
86
126
  - **Complete Form Serialization**: **First form state management serialization system** - All form components preserve controlled component state, validation rules, and error handling
87
- - **Production-Ready Components**: 11 components with complete ModelView architecture and comprehensive QA validation (Code, Image, Text, HeroBlock, GridLayout, GridCell, TextInputField, SelectInputField, HtmlInputField, ChoiceInputField, SwitchInputField, FormBlock)
127
+ - **Production-Ready Components**: 11 components with complete Schema architecture and comprehensive QA validation (Code, Image, Text, HeroBlock, GridLayout, GridCell, TextInputField, SelectInputField, HtmlInputField, ChoiceInputField, SwitchInputField, FormBlock)
88
128
  - **Form Components Innovation**: TextInputField, SelectInputField, HtmlInputField, ChoiceInputField, SwitchInputField, and FormBlock with 97.5% test pass rate and 0.4ms average serialization
89
129
  - **Complex Form Data Handling**: Options arrays, HTML content, validation configurations, choice fields, and boolean controls fully supported through serialization
90
130
  - **Production Form Workflows**: Complete form creation, editing, validation, and submission workflows preserved through serialize/deserialize cycles
@@ -99,13 +139,15 @@ A complete React framework for building modern, responsive applications with int
99
139
  - **Cross-Platform**: Consistent serialization across all major browsers and environments
100
140
 
101
141
  ### 🛡️ **Built-in Error Handling & Accessibility**
142
+
102
143
  - **ErrorBoundary**: Automatic error catching with user-friendly fallback UI and retry functionality
103
144
  - **AccessibilityProvider**: WCAG 2.1 AA compliance with system preference detection and ARIA announcements
104
145
  - **Breadcrumbs**: Accessible navigation hierarchy with keyboard support and customization
105
146
  - **Automatic Integration**: All features automatically enabled in QwickApp without configuration
106
147
 
107
148
  ### 📄 **Serializable Page System with Advanced Print Support**
108
- - **Schema-Driven Architecture**: Complete page templates with ViewModelSchema, PrintConfigSchema, and PageTemplateSchema for full serialization
149
+
150
+ - **Schema-Driven Architecture**: Complete page templates with ViewSchema, PrintConfigSchema, and PageTemplateSchema for full serialization
109
151
  - **Intelligent Print Detection**: Automatic print mode activation via browser events (Ctrl+P/Cmd+P) with comprehensive state management
110
152
  - **Advanced Print Configuration**: Complete print theming system with headers, footers, backgrounds, page margins (0mm-25mm), and CSS variable-driven positioning
111
153
  - **Dynamic Print Layout**: Edge-to-edge printing capabilities with configurable page margins, automatic height measurement, and proper page break handling
@@ -115,6 +157,7 @@ A complete React framework for building modern, responsive applications with int
115
157
  - **Page Context System**: Automatic QwickApp scaffolding integration with print-aware navigation and routing
116
158
 
117
159
  ### 🚀 **Developer Experience**
160
+
118
161
  - **TypeScript First**: Full TypeScript support with comprehensive types
119
162
  - **Storybook**: Interactive component documentation
120
163
  - **Performance**: Optimized rendering and minimal bundle size
@@ -122,8 +165,31 @@ A complete React framework for building modern, responsive applications with int
122
165
 
123
166
  ## Installation
124
167
 
168
+ ### 🚀 Quick Start (Recommended)
169
+
170
+ **Create a new QwickApps project in one command:**
171
+
125
172
  ```bash
126
- npm install @qwickapps/react-framework
173
+ npx @qwickapps/react-framework/scripts/create-qwickapps-project my-qwickapps-project
174
+ cd my-qwickapps-project
175
+ npm start
176
+ ```
177
+
178
+ This will:
179
+
180
+ 1. Create a new React app with TypeScript
181
+ 2. Install QwickApps React Framework and all dependencies
182
+ 3. Set up a complete QwickApps application template
183
+ 4. Start the development server
184
+
185
+ Your app will be running at `http://localhost:3000` with QwickApps pre-configured!
186
+
187
+ ### 📦 Manual Installation
188
+
189
+ If you have an existing React project, install the framework manually:
190
+
191
+ ```bash
192
+ npm install @qwickapps/react-framework @emotion/react @emotion/styled @mui/material @mui/icons-material react-router-dom
127
193
  ```
128
194
 
129
195
  ### Optional Dependencies
@@ -138,7 +204,13 @@ This will enable structured logging with configurable levels and outputs. If not
138
204
 
139
205
  ## Quick Start
140
206
 
141
- ### Basic Setup
207
+ ### Already Used the Quick Start Script?
208
+
209
+ If you used the quick start script above, your app is already set up and running! Skip to the [Advanced Usage](#advanced-usage) section.
210
+
211
+ ### 🔧 Manual Setup (for existing React projects)
212
+
213
+ If you're adding QwickApps to an existing React project or installed manually:
142
214
 
143
215
  ```tsx
144
216
  import {
@@ -255,6 +327,7 @@ function App() {
255
327
  ```
256
328
 
257
329
  **Responsive Behavior:**
330
+
258
331
  - **Mobile (< 768px)**: Bottom navigation bar
259
332
  - **Tablet (768-1024px)**: Collapsible sidebar nav rail
260
333
  - **Desktop (> 1024px)**: Top navigation with drawer for overflow
@@ -386,6 +459,7 @@ import { CollapsibleLayout } from '@qwickapps/react-framework';
386
459
  ```
387
460
 
388
461
  **Key Features:**
462
+
389
463
  - **Controlled & Uncontrolled State**: Use `collapsed` prop for controlled state or `defaultCollapsed` for uncontrolled
390
464
  - **State Persistence**: `persistState` option saves collapsed state to localStorage
391
465
  - **Multiple Animations**: Choose from fade, slide, or scale animations with customizable duration
@@ -467,6 +541,7 @@ const customRules = [
467
541
  ```
468
542
 
469
543
  **Default Transformations:**
544
+
470
545
  - `<pre><code>` → Code component with syntax highlighting
471
546
  - `<section class="blog-section">` → Section component
472
547
  - `<button>` → Button component
@@ -517,9 +592,10 @@ And some inline \`code\` here.
517
592
  ```
518
593
 
519
594
  **Key Features:**
595
+
520
596
  - GitHub Flavored Markdown support via marked library
521
597
  - Automatic syntax highlighting for code blocks
522
- - Inline code preservation
598
+ - Inline code preservation
523
599
  - Custom transformation rules for HTML elements
524
600
  - Error handling with development debugging
525
601
  - TypeScript support with comprehensive props interface
@@ -567,6 +643,7 @@ const config: TransformConfig = {
567
643
  ```
568
644
 
569
645
  **Built-in Rule Sets:**
646
+
570
647
  - `defaultArticleRules` - Optimized for blog/article content with header stripping
571
648
  - `defaultMarkdownRules` - Optimized for Markdown content with inline code preservation
572
649
 
@@ -622,18 +699,21 @@ The QwickApps React Framework includes a sophisticated Page System that enables
622
699
  ### Core Page System Features
623
700
 
624
701
  #### 🎯 **Schema-Driven Architecture**
625
- - **ViewModelSchema**: Base schema with common UI attributes (styling, accessibility, layout)
702
+
703
+ - **ViewSchema**: Base schema with common UI attributes (styling, accessibility, layout)
626
704
  - **PrintConfigSchema**: Complete print mode configuration with theming and optimization
627
- - **PageTemplateSchema**: Full page models extending ViewModel with metadata, SEO, and print settings
705
+ - **PageTemplateSchema**: Full page models extending ViewSchema with metadata, SEO, and print settings
628
706
  - **JSON Serialization**: Complete page configurations stored and transmitted as JSON
629
707
 
630
708
  #### 🖨️ **Intelligent Print Detection**
709
+
631
710
  - **Automatic URL Detection**: `?print=true` parameter triggers print mode instantly
632
711
  - **Browser Event Integration**: Captures Ctrl+P and print menu events automatically
633
712
  - **Manual Control**: Programmatic print mode activation with custom configurations
634
713
  - **Scaffolding Awareness**: Automatically hides navigation and headers in print mode
635
714
 
636
715
  #### 📊 **CMS Integration Ready**
716
+
637
717
  - **Database Storage**: Store complete page templates as JSON in any database
638
718
  - **Headless CMS**: Direct integration with Strapi, Contentful, Sanity, and custom APIs
639
719
  - **Dynamic Loading**: Fetch page templates at runtime with fallback handling
@@ -642,6 +722,7 @@ The QwickApps React Framework includes a sophisticated Page System that enables
642
722
  ### Page Component Usage
643
723
 
644
724
  #### Basic Page Implementation
725
+
645
726
  ```tsx
646
727
  import { Page, usePrintMode, PageTemplateSchema } from '@qwickapps/react-framework';
647
728
 
@@ -703,12 +784,13 @@ function AboutPage() {
703
784
 
704
785
  ### Schema Architecture
705
786
 
706
- #### ViewModelSchema - Base UI Schema
787
+ #### ViewSchema - Base UI Schema
788
+
707
789
  ```tsx
708
- import { ViewModelSchema } from '@qwickapps/react-framework';
790
+ import { ViewSchema } from '@qwickapps/react-framework';
709
791
 
710
792
  // Base schema for all UI components - provides consistent styling and accessibility
711
- interface ViewModelSchema {
793
+ interface ViewSchema {
712
794
  // Styling Properties
713
795
  className?: string; // CSS class name for custom styling
714
796
  style?: string; // Inline styles as JSON string
@@ -725,19 +807,20 @@ interface ViewModelSchema {
725
807
  'data-testid'?: string; // Test automation identifier
726
808
  }
727
809
 
728
- // Example: Custom component extending ViewModelSchema
729
- class CustomCard extends ViewModelSchema {
810
+ // Example: Custom component extending ViewSchema
811
+ class CustomCard extends ViewSchema {
730
812
  @Field()
731
813
  title?: string;
732
814
 
733
815
  @Field()
734
816
  content?: string;
735
817
 
736
- // Inherits all styling and accessibility properties from ViewModelSchema
818
+ // Inherits all styling and accessibility properties from ViewSchema
737
819
  }
738
820
  ```
739
821
 
740
822
  #### PrintConfigSchema - Print Configuration
823
+
741
824
  ```tsx
742
825
  import { PrintConfigSchema } from '@qwickapps/react-framework';
743
826
 
@@ -782,10 +865,11 @@ const invoicePrintConfig: PrintConfigSchema = {
782
865
  ```
783
866
 
784
867
  #### PageTemplateSchema - Complete Page Model
868
+
785
869
  ```tsx
786
870
  import { PageTemplateSchema, PrintConfigSchema } from '@qwickapps/react-framework';
787
871
 
788
- interface PageTemplateSchema extends ViewModelSchema {
872
+ interface PageTemplateSchema extends ViewSchema {
789
873
  // Page Identity & Navigation
790
874
  slug?: string; // URL-friendly identifier (e.g., "about-us")
791
875
  name?: string; // Human-readable page name
@@ -898,6 +982,7 @@ const adminDashboardTemplate: PageTemplateSchema = {
898
982
  ### Print Mode Integration
899
983
 
900
984
  #### usePrintMode Hook - Comprehensive Print Control
985
+
901
986
  ```tsx
902
987
  import { usePrintMode } from '@qwickapps/react-framework';
903
988
 
@@ -974,6 +1059,7 @@ function DocumentPage() {
974
1059
  ```
975
1060
 
976
1061
  #### Print URL Integration
1062
+
977
1063
  ```tsx
978
1064
  // Automatic print mode via URL
979
1065
  // Navigate to: https://yourapp.com/document?print=true
@@ -1005,6 +1091,7 @@ function App() {
1005
1091
  ### CMS and Database Integration
1006
1092
 
1007
1093
  #### Dynamic Page Loading from CMS
1094
+
1008
1095
  ```tsx
1009
1096
  import { Page, PageTemplateSchema } from '@qwickapps/react-framework';
1010
1097
 
@@ -1100,6 +1187,7 @@ async function fetchPageFromCMS(slug: string): Promise<PageTemplateSchema> {
1100
1187
  ```
1101
1188
 
1102
1189
  #### Database Storage Example
1190
+
1103
1191
  ```tsx
1104
1192
  // Example: Storing page templates in database
1105
1193
  const pageTemplates = [
@@ -1140,6 +1228,7 @@ function DatabasePage({ pageId }: { pageId: number }) {
1140
1228
  ### Page Context and Lifecycle
1141
1229
 
1142
1230
  #### Advanced Page Context Usage
1231
+
1143
1232
  ```tsx
1144
1233
  import { usePageContext, usePage } from '@qwickapps/react-framework';
1145
1234
 
@@ -1182,6 +1271,7 @@ function PageAwareComponent() {
1182
1271
  ### Page Variants and Layout Options
1183
1272
 
1184
1273
  #### Advanced Page Styling
1274
+
1185
1275
  ```tsx
1186
1276
  // Different page layout variants for different use cases
1187
1277
  function LayoutExamples() {
@@ -1254,6 +1344,7 @@ The QwickApps React Framework includes a sophisticated print system that enables
1254
1344
  The print system automatically detects print mode through multiple channels:
1255
1345
 
1256
1346
  #### URL Parameter Detection
1347
+
1257
1348
  ```tsx
1258
1349
  // Navigate to URL with print parameter to automatically enter print mode
1259
1350
  https://yourapp.com/document?print=true
@@ -1262,6 +1353,7 @@ https://yourapp.com/document?print=true
1262
1353
  ```
1263
1354
 
1264
1355
  #### Browser Print Event Detection
1356
+
1265
1357
  ```tsx
1266
1358
  // Automatic detection of Ctrl+P (Windows/Linux) or Cmd+P (Mac)
1267
1359
  // Also detects File > Print menu usage
@@ -1269,6 +1361,7 @@ https://yourapp.com/document?print=true
1269
1361
  ```
1270
1362
 
1271
1363
  #### Manual Print Mode Control
1364
+
1272
1365
  ```tsx
1273
1366
  import { usePrintMode } from '@qwickapps/react-framework';
1274
1367
 
@@ -1317,6 +1410,7 @@ function DocumentPage() {
1317
1410
  ### Print Configuration System
1318
1411
 
1319
1412
  #### Complete Print Configuration Options
1413
+
1320
1414
  ```tsx
1321
1415
  import { PrintConfigSchema } from '@qwickapps/react-framework';
1322
1416
 
@@ -1352,6 +1446,7 @@ const advancedPrintConfig: PrintConfigSchema = {
1352
1446
  ```
1353
1447
 
1354
1448
  #### Page Component with Print Configuration
1449
+
1355
1450
  ```tsx
1356
1451
  import { Page, PrintConfigSchema } from '@qwickapps/react-framework';
1357
1452
 
@@ -1387,6 +1482,7 @@ function ReportPage() {
1387
1482
  ### Page Margins and Layout Options
1388
1483
 
1389
1484
  #### Edge-to-Edge Printing (0mm margins)
1485
+
1390
1486
  ```tsx
1391
1487
  const borderlessPrintConfig = {
1392
1488
  pageMargins: '0mm', // Complete edge-to-edge printing
@@ -1395,6 +1491,7 @@ const borderlessPrintConfig = {
1395
1491
  ```
1396
1492
 
1397
1493
  #### Standard Margin Options
1494
+
1398
1495
  ```tsx
1399
1496
  const marginOptions = {
1400
1497
  compact: { pageMargins: '6mm' }, // Minimal margins
@@ -1429,6 +1526,7 @@ The print system uses CSS variables for dynamic header/footer positioning:
1429
1526
  ### Advanced Print Headers and Footers
1430
1527
 
1431
1528
  #### ReactNode Headers/Footers
1529
+
1432
1530
  ```tsx
1433
1531
  import { SafeSpan } from '@qwickapps/react-framework';
1434
1532
 
@@ -1461,6 +1559,7 @@ const customPrintConfig = {
1461
1559
  ```
1462
1560
 
1463
1561
  #### Template Variables in Headers/Footers
1562
+
1464
1563
  ```tsx
1465
1564
  const templatePrintConfig = {
1466
1565
  printFooter: 'Page [page] of [total] • Generated on [date] • company.com',
@@ -1478,6 +1577,7 @@ const templatePrintConfig = {
1478
1577
  ### Print-Specific Page Variants
1479
1578
 
1480
1579
  #### Different Layout Variants for Print
1580
+
1481
1581
  ```tsx
1482
1582
  function DocumentPage() {
1483
1583
  return (
@@ -1522,6 +1622,7 @@ function DataTablePage() {
1522
1622
  ### Integration with Page Templates
1523
1623
 
1524
1624
  #### Schema-Driven Print Configuration
1625
+
1525
1626
  ```tsx
1526
1627
  import { PageTemplateSchema } from '@qwickapps/react-framework';
1527
1628
 
@@ -1564,6 +1665,7 @@ function FinancialReportPage() {
1564
1665
  ### Print Mode Context and State Management
1565
1666
 
1566
1667
  #### Accessing Print State Throughout App
1668
+
1567
1669
  ```tsx
1568
1670
  import { usePageContext } from '@qwickapps/react-framework';
1569
1671
 
@@ -1602,6 +1704,7 @@ function PrintAwareComponent() {
1602
1704
  ### Print CSS Classes and Styling
1603
1705
 
1604
1706
  #### Automatic Print Mode Classes
1707
+
1605
1708
  ```css
1606
1709
  /* Page automatically gets print mode classes */
1607
1710
  .page-print-mode {
@@ -1630,6 +1733,7 @@ function PrintAwareComponent() {
1630
1733
  ```
1631
1734
 
1632
1735
  #### Custom Print Styling
1736
+
1633
1737
  ```css
1634
1738
  /* Print-specific component styling */
1635
1739
  @media print {
@@ -1679,6 +1783,7 @@ function PrintAwareComponent() {
1679
1783
  ### Print System Best Practices
1680
1784
 
1681
1785
  #### Performance Optimization
1786
+
1682
1787
  ```tsx
1683
1788
  // Efficient print mode detection
1684
1789
  const { isPrintMode } = usePrintMode();
@@ -1695,6 +1800,7 @@ const printConfig = useMemo(() => ({
1695
1800
  ```
1696
1801
 
1697
1802
  #### Accessibility in Print Mode
1803
+
1698
1804
  ```tsx
1699
1805
  const accessiblePrintConfig = {
1700
1806
  // High contrast for accessibility
@@ -1710,6 +1816,7 @@ const accessiblePrintConfig = {
1710
1816
  ```
1711
1817
 
1712
1818
  #### Multi-Page Document Handling
1819
+
1713
1820
  ```tsx
1714
1821
  function MultiPageDocument() {
1715
1822
  return (
@@ -1741,6 +1848,7 @@ function MultiPageDocument() {
1741
1848
  ### Migration Guide
1742
1849
 
1743
1850
  #### Converting Legacy Pages to New System
1851
+
1744
1852
  ```tsx
1745
1853
  // BEFORE: Legacy page implementation
1746
1854
  function LegacyHomePage() {
@@ -1818,6 +1926,7 @@ function CMSHomePage() {
1818
1926
  ```
1819
1927
 
1820
1928
  #### Print-Aware Migration
1929
+
1821
1930
  ```tsx
1822
1931
  // BEFORE: Manual print handling
1823
1932
  function LegacyPrintablePage() {
@@ -1867,6 +1976,7 @@ function NewPrintablePage() {
1867
1976
  ### Best Practices
1868
1977
 
1869
1978
  #### Page System Best Practices
1979
+
1870
1980
  1. **Use Templates for CMS**: Always use `PageTemplateSchema` for CMS-driven content
1871
1981
  2. **Print Configuration**: Define print behavior early in development
1872
1982
  3. **SEO Optimization**: Always include title, description, and metadata
@@ -1874,6 +1984,7 @@ function NewPrintablePage() {
1874
1984
  5. **Performance**: Lazy load heavy content and optimize images for print
1875
1985
 
1876
1986
  #### Schema Design Patterns
1987
+
1877
1988
  ```tsx
1878
1989
  // Good: Comprehensive page template
1879
1990
  const wellDesignedTemplate: PageTemplateSchema = {
@@ -2302,6 +2413,7 @@ The framework exposes CSS custom properties for consistent theming:
2302
2413
  ```
2303
2414
 
2304
2415
  **Available Variables:**
2416
+
2305
2417
  - `--theme-primary`, `--theme-on-primary`
2306
2418
  - `--theme-secondary`, `--theme-on-secondary`
2307
2419
  - `--theme-surface`, `--theme-on-surface`
@@ -2673,6 +2785,7 @@ myLogger.info('Component initialized');
2673
2785
  ```
2674
2786
 
2675
2787
  **Key Benefits:**
2788
+
2676
2789
  - ✅ No boilerplate conditionals
2677
2790
  - ✅ Automatic production silencing
2678
2791
  - ✅ Namespaced for clarity
@@ -2723,6 +2836,7 @@ QwickApp automatically includes robust error handling and accessibility features
2723
2836
  ### ErrorBoundary
2724
2837
 
2725
2838
  All QwickApp instances are automatically wrapped with an ErrorBoundary that:
2839
+
2726
2840
  - Catches JavaScript errors anywhere in the component tree
2727
2841
  - Displays user-friendly fallback UI with retry functionality
2728
2842
  - Shows error details in development mode
@@ -2745,6 +2859,7 @@ const SafeComponent = withErrorBoundary(MyComponent, {
2745
2859
  ### AccessibilityProvider
2746
2860
 
2747
2861
  All QwickApp instances automatically include accessibility features:
2862
+
2748
2863
  - **System Preferences**: Detects high contrast, reduced motion preferences
2749
2864
  - **Keyboard Navigation**: Enhanced focus indicators for keyboard users
2750
2865
  - **Screen Reader Support**: ARIA live announcements
@@ -2814,12 +2929,14 @@ function DynamicBreadcrumbs() {
2814
2929
  This software is licensed under the **PolyForm Shield License 1.0.0**.
2815
2930
 
2816
2931
  ### 📋 **Quick Summary**
2932
+
2817
2933
  - ✅ **Free to use** for non-competitive purposes
2818
2934
  - ✅ **Source code available** for learning and development
2819
2935
  - ❌ **Cannot be used** to compete with QwickApps
2820
2936
  - ❌ **Cannot be reverse engineered** for competitive purposes
2821
2937
 
2822
2938
  ### ✅ **Permitted Uses**
2939
+
2823
2940
  - Internal business applications
2824
2941
  - Learning and educational projects
2825
2942
  - Non-competitive commercial applications
@@ -2827,6 +2944,7 @@ This software is licensed under the **PolyForm Shield License 1.0.0**.
2827
2944
  - Contributing to this project
2828
2945
 
2829
2946
  ### ❌ **Prohibited Uses**
2947
+
2830
2948
  - Creating competing React frameworks
2831
2949
  - Building competing CMS or application builder tools
2832
2950
  - Reselling or redistributing as a competing product
@@ -2834,10 +2952,102 @@ This software is licensed under the **PolyForm Shield License 1.0.0**.
2834
2952
 
2835
2953
  For complete license terms, see [LICENSE](./LICENSE) and [LICENSE-POLYFORM-SHIELD.txt](./LICENSE-POLYFORM-SHIELD.txt).
2836
2954
 
2837
- **Need commercial licensing?** Contact us at **legal@qwickapps.com**
2955
+ **Need commercial licensing?** Contact us at **<legal@qwickapps.com>**
2956
+
2957
+ ## 📚 Complete Documentation
2958
+
2959
+ The QwickApps React Framework includes comprehensive documentation covering all aspects of development, architecture, and usage.
2960
+
2961
+ ### 🎯 **Quick Links**
2962
+
2963
+ - **[📖 Documentation Hub](./docs/README.md)** - Complete documentation index and navigation
2964
+ - **[🏗️ Component Architecture](./docs/architecture/component-system.md)** - Modern component architecture with ViewSchema v2.0.0
2965
+ - **[🔄 Migration Guide](./docs/architecture/migration-guides/useBaseProps-to-viewmodelschema.md)** - Migrate from useBaseProps to ViewSchema pattern
2966
+ - **[⚡ Serialization Guide](./docs/guides/COMPONENT_SERIALIZATION_GUIDE.md)** - Complete component serialization implementation guide
2967
+
2968
+ ### 🧩 **Component Documentation**
2969
+
2970
+ #### Core Components
2971
+
2972
+ - **[ViewSchema v2.0.0](./docs/components/base/ViewSchema.md)** - Comprehensive base schema (40+ properties)
2973
+ - **[Container](./docs/components/Container.md)** - Core schema-driven component implementation
2974
+ - **[Page System](./docs/components/pages/Page.md)** - Advanced page component with print support
2975
+
2976
+ #### Layout & Content
2977
+
2978
+ - **[GridLayout](./docs/components/layout/GridLayout.md)** - Responsive grid system with serialization
2979
+ - **[HeroBlock](./docs/components/blocks/HeroBlock.md)** - Hero sections with complex serialization
2980
+ - **[Code Component](./docs/components/blocks/Code.md)** - Reference implementation for serialization
2981
+
2982
+ #### Form System
2983
+
2984
+ - **[FormBlock](./docs/components/forms/FormBlock.md)** - Form container with state management
2985
+ - **[TextInputField](./docs/components/input/TextInputField.md)** - Text input with serialization support
2986
+ - **[SelectInputField](./docs/components/input/SelectInputField.md)** - Select dropdown with options serialization
2987
+
2988
+ ### 📋 **Quick Start with Documentation**
2989
+
2990
+ ```tsx
2991
+ import {
2992
+ QwickApp,
2993
+ Container,
2994
+ ViewSchema
2995
+ } from '@qwickapps/react-framework';
2996
+
2997
+ // Use ViewSchema v2.0.0 for complete UI control
2998
+ interface MyComponentProps extends SchemaProps<ViewSchema> {
2999
+ title: string;
3000
+ }
3001
+
3002
+ function MyComponent({ title, ...schemaProps }: MyComponentProps) {
3003
+ return (
3004
+ <Container {...schemaProps}>
3005
+ <h1>{title}</h1>
3006
+ </Container>
3007
+ );
3008
+ }
3009
+ ```
3010
+
3011
+ For detailed implementation examples, architecture explanations, and migration guides, visit the **[Documentation Hub](./docs/README.md)**.
2838
3012
 
2839
3013
  ## About QwickApps
2840
3014
 
2841
3015
  This framework is part of the QwickApps ecosystem, providing high-quality solutions for educational and productivity applications.
2842
3016
 
2843
- For more information, visit [QwickApps.com](https://qwickapps.com).
3017
+ For more information, visit [QwickApps.com](https://qwickapps.com).
3018
+
3019
+ ## Troubleshooting
3020
+
3021
+ ### ❌ "react-scripts is not recognized" Error
3022
+
3023
+ **Problem**: You're getting an error like `'react-scripts' is not recognized as an internal or external command`
3024
+
3025
+ **Solution**: This happens when trying to use QwickApps React Framework without first setting up a React project. QwickApps is a React framework library, not a project generator.
3026
+
3027
+ **Fix Options:**
3028
+
3029
+ 1. **Use the Quick Start Script (Recommended)**:
3030
+
3031
+ ```bash
3032
+ npx @qwickapps/react-framework/scripts/create-qwickapps-project my-project-name
3033
+ ```
3034
+
3035
+ 2. **Create React App First**:
3036
+
3037
+ ```bash
3038
+ npx create-react-app my-project --template typescript
3039
+ cd my-project
3040
+ npm install @qwickapps/react-framework @emotion/react @emotion/styled @mui/material @mui/icons-material react-router-dom
3041
+ ```
3042
+
3043
+ 3. **Use with Existing React Project**:
3044
+ - QwickApps works with any existing React 16.8+ project
3045
+ - Just install the dependencies and follow the manual setup guide above
3046
+
3047
+ ### Other Common Issues
3048
+
3049
+ - **Node.js Version**: Make sure you're using Node.js 16 or later
3050
+ - **Clear Cache**: If installation fails, try `npm cache clean --force`
3051
+ - **Dependency Conflicts**: Delete `node_modules` and `package-lock.json`, then run `npm install`
3052
+
3053
+ For more help, [open an issue](https://github.com/raajkumars/qwickapps/issues) on GitHub.