@qwickapps/react-framework 1.4.9 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (738) hide show
  1. package/README.md +23 -0
  2. package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts +9 -9
  3. package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +1 -1
  4. package/dist/components/AccessibilityProvider.d.ts +1 -1
  5. package/dist/components/AccessibilityProvider.d.ts.map +1 -1
  6. package/dist/components/ErrorBoundary.d.ts +1 -1
  7. package/dist/components/Html.d.ts +8 -8
  8. package/dist/components/Html.d.ts.map +1 -1
  9. package/dist/components/Logo.d.ts +2 -2
  10. package/dist/components/Logo.d.ts.map +1 -1
  11. package/dist/components/Markdown.d.ts +5 -5
  12. package/dist/components/Markdown.d.ts.map +1 -1
  13. package/dist/components/ProductLogo.d.ts +60 -0
  14. package/dist/components/ProductLogo.d.ts.map +1 -0
  15. package/dist/components/QwickAppsLogo.d.ts +1 -1
  16. package/dist/components/QwickAppsLogo.d.ts.map +1 -1
  17. package/dist/components/ResponsiveMenu.d.ts.map +1 -1
  18. package/dist/components/SafeSpan.d.ts +4 -4
  19. package/dist/components/SafeSpan.d.ts.map +1 -1
  20. package/dist/components/Scaffold.d.ts.map +1 -1
  21. package/dist/components/base/Container.d.ts +3 -2
  22. package/dist/components/base/Container.d.ts.map +1 -1
  23. package/dist/components/base/ModelView.d.ts +16 -16
  24. package/dist/components/base/ModelView.d.ts.map +1 -1
  25. package/dist/components/base/index.d.ts +1 -1
  26. package/dist/components/base/index.d.ts.map +1 -1
  27. package/dist/components/blocks/Article.d.ts +4 -18
  28. package/dist/components/blocks/Article.d.ts.map +1 -1
  29. package/dist/components/blocks/CardListGrid.d.ts +3 -3
  30. package/dist/components/blocks/CardListGrid.d.ts.map +1 -1
  31. package/dist/components/blocks/Code.d.ts +5 -31
  32. package/dist/components/blocks/Code.d.ts.map +1 -1
  33. package/dist/components/blocks/Content.d.ts +2 -17
  34. package/dist/components/blocks/Content.d.ts.map +1 -1
  35. package/dist/components/blocks/CoverImageHeader.d.ts +2 -12
  36. package/dist/components/blocks/CoverImageHeader.d.ts.map +1 -1
  37. package/dist/components/blocks/FeatureCard.d.ts +0 -17
  38. package/dist/components/blocks/FeatureCard.d.ts.map +1 -1
  39. package/dist/components/blocks/FeatureGrid.d.ts.map +1 -1
  40. package/dist/components/blocks/Footer.d.ts +2 -14
  41. package/dist/components/blocks/Footer.d.ts.map +1 -1
  42. package/dist/components/blocks/HeroBlock.d.ts +35 -26
  43. package/dist/components/blocks/HeroBlock.d.ts.map +1 -1
  44. package/dist/components/blocks/Image.d.ts +23 -23
  45. package/dist/components/blocks/Image.d.ts.map +1 -1
  46. package/dist/components/blocks/PageBannerHeader.d.ts +2 -13
  47. package/dist/components/blocks/PageBannerHeader.d.ts.map +1 -1
  48. package/dist/components/blocks/ProductCard.d.ts +0 -9
  49. package/dist/components/blocks/ProductCard.d.ts.map +1 -1
  50. package/dist/components/blocks/Section.d.ts +16 -24
  51. package/dist/components/blocks/Section.d.ts.map +1 -1
  52. package/dist/components/blocks/Text.d.ts +5 -20
  53. package/dist/components/blocks/Text.d.ts.map +1 -1
  54. package/dist/components/buttons/Button.d.ts +19 -23
  55. package/dist/components/buttons/Button.d.ts.map +1 -1
  56. package/dist/components/buttons/PaletteSwitcher.d.ts +2 -2
  57. package/dist/components/buttons/PaletteSwitcher.d.ts.map +1 -1
  58. package/dist/components/buttons/ThemeSwitcher.d.ts +2 -2
  59. package/dist/components/buttons/ThemeSwitcher.d.ts.map +1 -1
  60. package/dist/components/dialogs/Dialog.d.ts +35 -0
  61. package/dist/components/dialogs/Dialog.d.ts.map +1 -0
  62. package/dist/components/dialogs/index.d.ts +8 -0
  63. package/dist/components/dialogs/index.d.ts.map +1 -0
  64. package/dist/components/forms/Captcha.d.ts +55 -0
  65. package/dist/components/forms/Captcha.d.ts.map +1 -0
  66. package/dist/components/forms/FormBlock.d.ts +6 -6
  67. package/dist/components/forms/FormBlock.d.ts.map +1 -1
  68. package/dist/components/forms/FormCheckbox.d.ts +27 -0
  69. package/dist/components/forms/FormCheckbox.d.ts.map +1 -0
  70. package/dist/components/forms/FormField.d.ts +43 -0
  71. package/dist/components/forms/FormField.d.ts.map +1 -0
  72. package/dist/components/forms/FormSelect.d.ts +35 -0
  73. package/dist/components/forms/FormSelect.d.ts.map +1 -0
  74. package/dist/components/forms/index.d.ts +8 -0
  75. package/dist/components/forms/index.d.ts.map +1 -1
  76. package/dist/components/index.d.ts +10 -2
  77. package/dist/components/index.d.ts.map +1 -1
  78. package/dist/components/input/ChoiceInputField.d.ts +13 -19
  79. package/dist/components/input/ChoiceInputField.d.ts.map +1 -1
  80. package/dist/components/input/HtmlInputField.d.ts +16 -17
  81. package/dist/components/input/HtmlInputField.d.ts.map +1 -1
  82. package/dist/components/input/SelectInputField.d.ts +14 -17
  83. package/dist/components/input/SelectInputField.d.ts.map +1 -1
  84. package/dist/components/input/SwitchInputField.d.ts +11 -18
  85. package/dist/components/input/SwitchInputField.d.ts.map +1 -1
  86. package/dist/components/input/TextInputField.d.ts +16 -19
  87. package/dist/components/input/TextInputField.d.ts.map +1 -1
  88. package/dist/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +1 -1
  89. package/dist/components/layout/GridCell.d.ts +18 -19
  90. package/dist/components/layout/GridCell.d.ts.map +1 -1
  91. package/dist/components/layout/GridLayout.d.ts +36 -25
  92. package/dist/components/layout/GridLayout.d.ts.map +1 -1
  93. package/dist/components/menu/MenuItem.d.ts +2 -2
  94. package/dist/components/menu/MenuItem.d.ts.map +1 -1
  95. package/dist/components/pages/FormPage.d.ts.map +1 -1
  96. package/dist/components/pages/Page.d.ts +1 -1
  97. package/dist/components/pages/Page.d.ts.map +1 -1
  98. package/dist/components/shared/createSerializableView.d.ts +22 -10
  99. package/dist/components/shared/createSerializableView.d.ts.map +1 -1
  100. package/dist/components/shared/viewProps.d.ts +3 -3
  101. package/dist/components/shared/viewProps.d.ts.map +1 -1
  102. package/dist/config/AppConfig.d.ts +2 -2
  103. package/dist/config/AppConfig.d.ts.map +1 -1
  104. package/dist/config/types.d.ts +1 -1
  105. package/dist/config/types.d.ts.map +1 -1
  106. package/dist/contexts/DataContext.d.ts +3 -3
  107. package/dist/contexts/DataContext.d.ts.map +1 -1
  108. package/dist/contexts/PaletteContext.d.ts.map +1 -1
  109. package/dist/contexts/ThemeContext.d.ts.map +1 -1
  110. package/dist/hooks/useDataBinding.d.ts +2 -2
  111. package/dist/hooks/useDataBinding.d.ts.map +1 -1
  112. package/dist/hooks/usePrintMode.d.ts +2 -2
  113. package/dist/hooks/usePrintMode.d.ts.map +1 -1
  114. package/dist/index.css +1 -1
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.esm.css +1 -1
  117. package/dist/index.esm.js +4143 -2318
  118. package/dist/index.js +4169 -2315
  119. package/dist/palettes/manifest.json +90 -0
  120. package/dist/palettes/palette-autumn.1.4.9.min.css +1 -0
  121. package/dist/palettes/palette-autumn.1.5.0.css +172 -0
  122. package/dist/palettes/palette-autumn.1.5.0.min.css +1 -0
  123. package/dist/palettes/palette-autumn.1.5.1.css +172 -0
  124. package/dist/palettes/palette-autumn.1.5.1.min.css +1 -0
  125. package/dist/palettes/palette-autumn.latest.css +172 -0
  126. package/dist/palettes/palette-autumn.latest.min.css +1 -0
  127. package/dist/palettes/palette-cosmic.1.4.9.min.css +1 -0
  128. package/dist/palettes/palette-cosmic.1.5.0.css +172 -0
  129. package/dist/palettes/palette-cosmic.1.5.0.min.css +1 -0
  130. package/dist/palettes/palette-cosmic.1.5.1.css +172 -0
  131. package/dist/palettes/palette-cosmic.1.5.1.min.css +1 -0
  132. package/dist/palettes/palette-cosmic.latest.css +172 -0
  133. package/dist/palettes/palette-cosmic.latest.min.css +1 -0
  134. package/dist/palettes/palette-default.1.4.9.min.css +1 -0
  135. package/dist/palettes/palette-default.1.5.0.css +178 -0
  136. package/dist/palettes/palette-default.1.5.0.min.css +1 -0
  137. package/dist/palettes/palette-default.1.5.1.css +178 -0
  138. package/dist/palettes/palette-default.1.5.1.min.css +1 -0
  139. package/dist/palettes/palette-default.latest.css +178 -0
  140. package/dist/palettes/palette-default.latest.min.css +1 -0
  141. package/dist/palettes/palette-ocean.1.4.9.min.css +1 -0
  142. package/dist/palettes/palette-ocean.1.5.0.css +172 -0
  143. package/dist/palettes/palette-ocean.1.5.0.min.css +1 -0
  144. package/dist/palettes/palette-ocean.1.5.1.css +172 -0
  145. package/dist/palettes/palette-ocean.1.5.1.min.css +1 -0
  146. package/dist/palettes/palette-ocean.latest.css +172 -0
  147. package/dist/palettes/palette-ocean.latest.min.css +1 -0
  148. package/dist/palettes/palette-spring.1.4.9.min.css +1 -0
  149. package/dist/palettes/palette-spring.1.5.0.css +160 -0
  150. package/dist/palettes/palette-spring.1.5.0.min.css +1 -0
  151. package/dist/palettes/palette-spring.1.5.1.css +160 -0
  152. package/dist/palettes/palette-spring.1.5.1.min.css +1 -0
  153. package/dist/palettes/palette-spring.latest.css +160 -0
  154. package/dist/palettes/palette-spring.latest.min.css +1 -0
  155. package/dist/palettes/palette-winter.1.4.9.min.css +1 -0
  156. package/dist/palettes/palette-winter.1.5.0.css +172 -0
  157. package/dist/palettes/palette-winter.1.5.0.min.css +1 -0
  158. package/dist/palettes/palette-winter.1.5.1.css +172 -0
  159. package/dist/palettes/palette-winter.1.5.1.min.css +1 -0
  160. package/dist/palettes/palette-winter.latest.css +172 -0
  161. package/dist/palettes/palette-winter.latest.min.css +1 -0
  162. package/dist/schemas/ButtonSchema.d.ts +5 -2
  163. package/dist/schemas/ButtonSchema.d.ts.map +1 -1
  164. package/dist/schemas/CardListGridSchema.d.ts +4 -4
  165. package/dist/schemas/CardListGridSchema.d.ts.map +1 -1
  166. package/dist/schemas/ChoiceInputFieldSchema.d.ts +2 -2
  167. package/dist/schemas/ChoiceInputFieldSchema.d.ts.map +1 -1
  168. package/dist/schemas/CodeSchema.d.ts +1 -2
  169. package/dist/schemas/CodeSchema.d.ts.map +1 -1
  170. package/dist/schemas/FormBlockSchema.d.ts +2 -2
  171. package/dist/schemas/FormBlockSchema.d.ts.map +1 -1
  172. package/dist/schemas/GridCellSchema.d.ts +2 -4
  173. package/dist/schemas/GridCellSchema.d.ts.map +1 -1
  174. package/dist/schemas/GridLayoutSchema.d.ts +3 -5
  175. package/dist/schemas/GridLayoutSchema.d.ts.map +1 -1
  176. package/dist/schemas/HeroBlockSchema.d.ts +2 -2
  177. package/dist/schemas/HeroBlockSchema.d.ts.map +1 -1
  178. package/dist/schemas/HtmlInputFieldSchema.d.ts +2 -2
  179. package/dist/schemas/HtmlInputFieldSchema.d.ts.map +1 -1
  180. package/dist/schemas/ImageSchema.d.ts +2 -2
  181. package/dist/schemas/ImageSchema.d.ts.map +1 -1
  182. package/dist/schemas/SectionSchema.d.ts +2 -4
  183. package/dist/schemas/SectionSchema.d.ts.map +1 -1
  184. package/dist/schemas/SelectInputFieldSchema.d.ts +2 -2
  185. package/dist/schemas/SelectInputFieldSchema.d.ts.map +1 -1
  186. package/dist/schemas/SwitchInputFieldSchema.d.ts +2 -2
  187. package/dist/schemas/SwitchInputFieldSchema.d.ts.map +1 -1
  188. package/dist/schemas/TextInputFieldSchema.d.ts +2 -2
  189. package/dist/schemas/TextInputFieldSchema.d.ts.map +1 -1
  190. package/dist/schemas/ViewSchema.d.ts +8 -7
  191. package/dist/schemas/ViewSchema.d.ts.map +1 -1
  192. package/dist/schemas/transformers/ComponentTransformer.d.ts +2 -2
  193. package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -1
  194. package/dist/schemas/transformers/ReactNodeTransformer.d.ts +2 -2
  195. package/dist/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -1
  196. package/dist/schemas/transformers/registry.d.ts +0 -7
  197. package/dist/schemas/transformers/registry.d.ts.map +1 -1
  198. package/dist/schemas/types/Serializable.d.ts +3 -3
  199. package/dist/schemas/types/Serializable.d.ts.map +1 -1
  200. package/dist/stories/_templates/SerializationTemplate.d.ts.map +1 -0
  201. package/dist/types/CollapsibleLayout.d.ts +3 -3
  202. package/dist/types/CollapsibleLayout.d.ts.map +1 -1
  203. package/dist/types/ContentProxy.d.ts +4 -4
  204. package/dist/types/ContentProxy.d.ts.map +1 -1
  205. package/dist/types/DataTypes.d.ts +4 -4
  206. package/dist/types/DataTypes.d.ts.map +1 -1
  207. package/dist/types/TemplateProvider.d.ts +1 -1
  208. package/dist/types/TemplateProvider.d.ts.map +1 -1
  209. package/dist/types/TemplateResolver.d.ts +1 -1
  210. package/dist/types/TemplateResolver.d.ts.map +1 -1
  211. package/dist/utils/htmlTransform.d.ts +1 -1
  212. package/dist/utils/htmlTransform.d.ts.map +1 -1
  213. package/dist/utils/iconMap.d.ts +48 -0
  214. package/dist/utils/iconMap.d.ts.map +1 -0
  215. package/dist/utils/index.d.ts +3 -0
  216. package/dist/utils/index.d.ts.map +1 -1
  217. package/dist/utils/logger.d.ts +11 -7
  218. package/dist/utils/logger.d.ts.map +1 -1
  219. package/dist/utils/paletteLoader.d.ts +34 -0
  220. package/dist/utils/paletteLoader.d.ts.map +1 -0
  221. package/dist/utils/paletteManifest.d.ts +51 -0
  222. package/dist/utils/paletteManifest.d.ts.map +1 -0
  223. package/dist/utils/paletteUtils.d.ts.map +1 -1
  224. package/dist/utils/reactUtils.d.ts +12 -6
  225. package/dist/utils/reactUtils.d.ts.map +1 -1
  226. package/dist/utils/spacing.d.ts +2 -2
  227. package/dist/utils/spacing.d.ts.map +1 -1
  228. package/dist/utils/themePerformanceMonitor.d.ts.map +1 -1
  229. package/dist/utils/themeUtils.d.ts.map +1 -1
  230. package/package.json +20 -9
  231. package/scripts/build-palettes.cjs +120 -0
  232. package/src/__tests__/components/Article.test.tsx +1 -1
  233. package/src/__tests__/components/Breadcrumbs.test.tsx +2 -2
  234. package/src/__tests__/components/Button.test.tsx +3 -3
  235. package/src/__tests__/components/CardListGrid.test.tsx +5 -5
  236. package/src/__tests__/components/ChoiceInputField.test.tsx +2 -2
  237. package/src/__tests__/components/Code.test.tsx +2 -2
  238. package/src/__tests__/components/Content.integration.test.tsx +1 -1
  239. package/src/__tests__/components/Content.test.tsx +5 -5
  240. package/src/__tests__/components/CoverImageHeader.test.tsx +3 -3
  241. package/src/__tests__/components/FeatureCard.integration.test.tsx +1 -1
  242. package/src/__tests__/components/FeatureGrid.integration.test.tsx +1 -1
  243. package/src/__tests__/components/FeatureGrid.test.tsx +3 -3
  244. package/src/__tests__/components/Footer.test.tsx +3 -3
  245. package/src/__tests__/components/FormBlock.test.tsx +2 -2
  246. package/src/__tests__/components/HeroBlock.integration.test.tsx +1 -1
  247. package/src/__tests__/components/HeroBlock.test.tsx +4 -4
  248. package/src/__tests__/components/HtmlInputField.test.tsx +8 -8
  249. package/src/__tests__/components/PageBannerHeader.test.tsx +7 -7
  250. package/src/__tests__/components/PaletteSwitcher.test.tsx +3 -3
  251. package/src/__tests__/components/ProductCard.test.tsx +1 -1
  252. package/src/__tests__/components/Section.integration.test.tsx +1 -1
  253. package/src/__tests__/components/Section.test.tsx +1 -1
  254. package/src/__tests__/components/SelectInputField.test.tsx +2 -2
  255. package/src/__tests__/components/TextInputField.test.tsx +4 -4
  256. package/src/__tests__/components/ThemeSwitcher.test.tsx +3 -3
  257. package/src/__tests__/components/base/Container.test.tsx +22 -21
  258. package/src/__tests__/components/blocks/Code.performance.test.tsx +10 -10
  259. package/src/__tests__/components/blocks/Code.serialization.test.tsx +9 -9
  260. package/src/__tests__/components/blocks/HeroBlock.serialization.test.tsx +2 -3
  261. package/src/__tests__/components/blocks/Image.serialization.test.tsx +8 -7
  262. package/src/__tests__/components/blocks/Section.serialization.test.tsx +8 -8
  263. package/src/__tests__/components/blocks/Text.performance.test.tsx +5 -5
  264. package/src/__tests__/components/blocks/Text.serialization.test.tsx +9 -9
  265. package/src/__tests__/components/buttons/Button.serialization.test.tsx +4 -4
  266. package/src/__tests__/components/input/FormComponents.serialization.test.tsx +9 -9
  267. package/src/__tests__/components/input/SelectInputField.serialization.test.tsx +16 -18
  268. package/src/__tests__/components/input/TextInputField.serialization.test.tsx +9 -9
  269. package/src/__tests__/components/layout/CollapsibleLayout.test.tsx +5 -9
  270. package/src/__tests__/components/layout/GridCell.serialization.test.tsx +5 -5
  271. package/src/__tests__/components/layout/GridLayout.serialization.test.tsx +5 -5
  272. package/src/__tests__/hooks/usePrintMode.test.ts +1 -0
  273. package/src/__tests__/schemas/builders.test.ts +2 -2
  274. package/src/__tests__/schemas/transformers/ComponentSerializationPatterns.test.tsx +28 -28
  275. package/src/__tests__/schemas/transformers/ComponentTransformer.htmlPatterns.test.ts +5 -5
  276. package/src/__tests__/schemas/transformers/ComponentTransformer.test.ts +11 -11
  277. package/src/__tests__/schemas/transformers/CrossBrowserCompatibility.test.ts +10 -10
  278. package/src/__tests__/schemas/transformers/MockSerializableComponent.ts +15 -15
  279. package/src/__tests__/schemas/transformers/RealWorldScenarios.test.tsx +19 -19
  280. package/src/__tests__/schemas/transformers/SerializationErrorHandling.test.ts +15 -15
  281. package/src/__tests__/schemas/transformers/SerializationIntegration.test.tsx +19 -21
  282. package/src/__tests__/schemas/transformers/SerializationPerformance.test.ts +15 -15
  283. package/src/__tests__/schemas/transformers/TestAutomation.test.ts +3 -3
  284. package/src/__tests__/schemas/transformers/nested-serialization.test.tsx +1 -1
  285. package/src/__tests__/schemas/transformers/round-trip-component-serialization.test.tsx +10 -10
  286. package/src/__tests__/utils/optional-logging.test.ts +3 -3
  287. package/src/components/AccessibilityProvider.tsx +4 -2
  288. package/src/components/ErrorBoundary.tsx +1 -1
  289. package/src/components/Html.tsx +13 -16
  290. package/src/components/Logo.tsx +42 -29
  291. package/src/components/Markdown.tsx +9 -9
  292. package/src/components/ProductLogo.tsx +118 -0
  293. package/src/components/QwickApp.css +37 -1060
  294. package/src/components/QwickApp.tsx +1 -1
  295. package/src/components/QwickAppsLogo.tsx +1 -1
  296. package/src/components/ResponsiveMenu.tsx +1 -1
  297. package/src/components/SafeSpan.tsx +8 -8
  298. package/src/components/Scaffold.css +11 -1
  299. package/src/components/Scaffold.tsx +55 -25
  300. package/src/components/base/Container.tsx +2 -2
  301. package/src/components/base/ModelView.tsx +28 -27
  302. package/src/components/base/index.ts +1 -1
  303. package/src/components/blocks/Article.tsx +213 -69
  304. package/src/components/blocks/CardListGrid.tsx +18 -14
  305. package/src/components/blocks/Code.tsx +18 -13
  306. package/src/components/blocks/Content.tsx +15 -10
  307. package/src/components/blocks/CoverImageHeader.tsx +14 -9
  308. package/src/components/blocks/FeatureCard.tsx +16 -11
  309. package/src/components/blocks/FeatureGrid.tsx +13 -8
  310. package/src/components/blocks/Footer.tsx +25 -16
  311. package/src/components/blocks/HeroBlock.tsx +12 -13
  312. package/src/components/blocks/Image.tsx +16 -8
  313. package/src/components/blocks/PageBannerHeader.tsx +15 -11
  314. package/src/components/blocks/ProductCard.tsx +32 -25
  315. package/src/components/blocks/Section.tsx +21 -13
  316. package/src/components/blocks/Text.tsx +26 -11
  317. package/src/components/buttons/Button.tsx +22 -118
  318. package/src/components/buttons/PaletteSwitcher.tsx +11 -8
  319. package/src/components/buttons/ThemeSwitcher.tsx +20 -16
  320. package/src/components/dialogs/Dialog.tsx +126 -0
  321. package/src/components/dialogs/index.ts +15 -0
  322. package/src/components/forms/Captcha.tsx +291 -0
  323. package/src/components/forms/FormBlock.tsx +22 -15
  324. package/src/components/forms/FormCheckbox.tsx +116 -0
  325. package/src/components/forms/FormField.tsx +180 -0
  326. package/src/components/forms/FormSelect.tsx +140 -0
  327. package/src/components/forms/index.ts +13 -1
  328. package/src/components/index.ts +13 -2
  329. package/src/components/input/ChoiceInputField.tsx +1 -2
  330. package/src/components/input/HtmlInputField.tsx +2 -3
  331. package/src/components/input/SelectInputField.tsx +31 -5
  332. package/src/components/input/SwitchInputField.tsx +3 -4
  333. package/src/components/input/TextField.tsx +2 -2
  334. package/src/components/input/TextInputField.tsx +32 -6
  335. package/src/components/layout/CollapsibleLayout/CollapsibleLayout.tsx +13 -13
  336. package/src/components/layout/GridCell.tsx +10 -9
  337. package/src/components/layout/GridCellWrapper.tsx +1 -1
  338. package/src/components/layout/GridLayout.tsx +29 -32
  339. package/src/components/pages/FormPage.tsx +0 -1
  340. package/src/components/pages/Page.tsx +2 -2
  341. package/src/components/shared/createSerializableView.tsx +24 -23
  342. package/src/components/shared/viewProps.ts +11 -11
  343. package/src/config/AppConfig.ts +2 -2
  344. package/src/config/__tests__/AppConfig.test.ts +3 -3
  345. package/src/config/__tests__/AppConfigBuilder.test.ts +10 -11
  346. package/src/config/types.ts +1 -1
  347. package/src/contexts/DataContext.tsx +58 -52
  348. package/src/contexts/PaletteContext.tsx +22 -9
  349. package/src/contexts/PrintModeContext.tsx +4 -4
  350. package/src/contexts/ThemeContext.tsx +2 -1
  351. package/src/hooks/useBaseProps.ts +10 -10
  352. package/src/hooks/useDataBinding.ts +15 -18
  353. package/src/hooks/usePrintMode.ts +3 -3
  354. package/src/index.ts +2 -0
  355. package/src/palettes/manifest.json +72 -0
  356. package/src/palettes/manifest.schema.json +74 -0
  357. package/src/schemas/CardListGridSchema.ts +3 -3
  358. package/src/schemas/CodeSchema.ts +0 -1
  359. package/src/schemas/FeatureGridSchema.ts +1 -1
  360. package/src/schemas/FormBlockSchema.ts +1 -1
  361. package/src/schemas/GridCellSchema.ts +0 -1
  362. package/src/schemas/GridLayoutSchema.ts +0 -1
  363. package/src/schemas/SectionSchema.ts +0 -1
  364. package/src/schemas/ViewSchema.ts +6 -6
  365. package/src/schemas/transformers/ComponentTransformer.ts +37 -20
  366. package/src/schemas/transformers/ReactNodeTransformer.ts +18 -16
  367. package/src/schemas/transformers/registry.ts +28 -24
  368. package/src/schemas/types/Serializable.ts +3 -3
  369. package/src/setupTests.js +9 -0
  370. package/src/stories/AccessibilityProvider.stories.tsx +0 -1
  371. package/src/stories/CardListGrid.stories.tsx +1 -1
  372. package/src/stories/Code.stories.tsx +2 -3
  373. package/src/stories/CollapsibleLayout.stories.tsx +41 -37
  374. package/src/stories/Container.stories.tsx +1 -2
  375. package/src/stories/DataBinding.advanced.stories.tsx +15 -9
  376. package/src/stories/DataProvider.stories.tsx +33 -16
  377. package/src/stories/ErrorBoundary.stories.tsx +28 -26
  378. package/src/stories/FeatureGrid.stories.tsx +0 -1
  379. package/src/stories/FormBlock.stories.tsx +8 -8
  380. package/src/stories/FormComponents.stories.tsx +15 -11
  381. package/src/stories/GridCell.stories.tsx +5 -5
  382. package/src/stories/GridLayout.stories.tsx +5 -5
  383. package/src/stories/Image.stories.tsx +5 -7
  384. package/src/stories/Introduction.stories.tsx +0 -1
  385. package/src/stories/ModelView.stories.tsx +7 -7
  386. package/src/stories/SafeSpan.stories.tsx +7 -3
  387. package/src/stories/Section.stories.tsx +2 -2
  388. package/src/stories/Text.stories.tsx +1 -3
  389. package/src/stories/_templates/SerializationTemplate.tsx +0 -1
  390. package/src/templates/TemplateResolver.ts +2 -2
  391. package/src/types/CollapsibleLayout.ts +2 -2
  392. package/src/types/ContentProxy.ts +6 -6
  393. package/src/types/DataTypes.ts +4 -4
  394. package/src/types/TemplateProvider.ts +1 -1
  395. package/src/types/TemplateResolver.ts +1 -1
  396. package/src/utils/htmlTransform.tsx +17 -11
  397. package/src/utils/iconMap.tsx +244 -0
  398. package/src/utils/index.ts +4 -1
  399. package/src/utils/logger.ts +20 -14
  400. package/src/utils/paletteLoader.ts +218 -0
  401. package/src/utils/paletteManifest.ts +268 -0
  402. package/src/utils/paletteUtils.ts +19 -1
  403. package/src/utils/reactUtils.tsx +34 -33
  404. package/src/utils/spacing.ts +16 -17
  405. package/src/utils/themePerformanceMonitor.js +14 -6
  406. package/src/utils/themeUtils.ts +17 -2
  407. package/dist/components/base/ContainerView.d.ts +0 -65
  408. package/dist/components/base/ContainerView.d.ts.map +0 -1
  409. package/dist/components/blocks/Code-factory.d.ts +0 -22
  410. package/dist/components/blocks/Code-factory.d.ts.map +0 -1
  411. package/dist/components/blocks/Code-old.d.ts +0 -31
  412. package/dist/components/blocks/Code-old.d.ts.map +0 -1
  413. package/dist/qa/ConsoleWarningTest.d.ts +0 -5
  414. package/dist/qa/ConsoleWarningTest.d.ts.map +0 -1
  415. package/dist/qa/StorageKeyTest.d.ts +0 -6
  416. package/dist/qa/StorageKeyTest.d.ts.map +0 -1
  417. package/dist/qa/ThemeStorageKeyTest.d.ts +0 -6
  418. package/dist/qa/ThemeStorageKeyTest.d.ts.map +0 -1
  419. package/dist/schemas/ViewModelSchema.d.ts +0 -63
  420. package/dist/schemas/ViewModelSchema.d.ts.map +0 -1
  421. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts +0 -66
  422. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts.map +0 -1
  423. package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts +0 -66
  424. package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +0 -1
  425. package/dist/src/components/AccessibilityChecker.d.ts +0 -12
  426. package/dist/src/components/AccessibilityChecker.d.ts.map +0 -1
  427. package/dist/src/components/AccessibilityProvider.d.ts +0 -64
  428. package/dist/src/components/AccessibilityProvider.d.ts.map +0 -1
  429. package/dist/src/components/Breadcrumbs.d.ts +0 -39
  430. package/dist/src/components/Breadcrumbs.d.ts.map +0 -1
  431. package/dist/src/components/ErrorBoundary.d.ts +0 -46
  432. package/dist/src/components/ErrorBoundary.d.ts.map +0 -1
  433. package/dist/src/components/Html.d.ts +0 -58
  434. package/dist/src/components/Html.d.ts.map +0 -1
  435. package/dist/src/components/Logo.d.ts +0 -56
  436. package/dist/src/components/Logo.d.ts.map +0 -1
  437. package/dist/src/components/Markdown.d.ts +0 -51
  438. package/dist/src/components/Markdown.d.ts.map +0 -1
  439. package/dist/src/components/QwickApp.d.ts +0 -69
  440. package/dist/src/components/QwickApp.d.ts.map +0 -1
  441. package/dist/src/components/QwickAppsLogo.d.ts +0 -25
  442. package/dist/src/components/QwickAppsLogo.d.ts.map +0 -1
  443. package/dist/src/components/QwickIcon.d.ts +0 -23
  444. package/dist/src/components/QwickIcon.d.ts.map +0 -1
  445. package/dist/src/components/ResponsiveMenu.d.ts +0 -38
  446. package/dist/src/components/ResponsiveMenu.d.ts.map +0 -1
  447. package/dist/src/components/SafeSpan.d.ts +0 -29
  448. package/dist/src/components/SafeSpan.d.ts.map +0 -1
  449. package/dist/src/components/Scaffold.d.ts +0 -57
  450. package/dist/src/components/Scaffold.d.ts.map +0 -1
  451. package/dist/src/components/base/Container.d.ts +0 -33
  452. package/dist/src/components/base/Container.d.ts.map +0 -1
  453. package/dist/src/components/base/ModelView.d.ts +0 -92
  454. package/dist/src/components/base/ModelView.d.ts.map +0 -1
  455. package/dist/src/components/base/index.d.ts +0 -12
  456. package/dist/src/components/base/index.d.ts.map +0 -1
  457. package/dist/src/components/blocks/Article.d.ts +0 -32
  458. package/dist/src/components/blocks/Article.d.ts.map +0 -1
  459. package/dist/src/components/blocks/CardListGrid.d.ts +0 -23
  460. package/dist/src/components/blocks/CardListGrid.d.ts.map +0 -1
  461. package/dist/src/components/blocks/Code.d.ts +0 -37
  462. package/dist/src/components/blocks/Code.d.ts.map +0 -1
  463. package/dist/src/components/blocks/Content.d.ts +0 -24
  464. package/dist/src/components/blocks/Content.d.ts.map +0 -1
  465. package/dist/src/components/blocks/CoverImageHeader.d.ts +0 -44
  466. package/dist/src/components/blocks/CoverImageHeader.d.ts.map +0 -1
  467. package/dist/src/components/blocks/FeatureCard.d.ts +0 -66
  468. package/dist/src/components/blocks/FeatureCard.d.ts.map +0 -1
  469. package/dist/src/components/blocks/FeatureGrid.d.ts +0 -48
  470. package/dist/src/components/blocks/FeatureGrid.d.ts.map +0 -1
  471. package/dist/src/components/blocks/Footer.d.ts +0 -56
  472. package/dist/src/components/blocks/Footer.d.ts.map +0 -1
  473. package/dist/src/components/blocks/HeroBlock.d.ts +0 -55
  474. package/dist/src/components/blocks/HeroBlock.d.ts.map +0 -1
  475. package/dist/src/components/blocks/Image.d.ts +0 -40
  476. package/dist/src/components/blocks/Image.d.ts.map +0 -1
  477. package/dist/src/components/blocks/PageBannerHeader.d.ts +0 -30
  478. package/dist/src/components/blocks/PageBannerHeader.d.ts.map +0 -1
  479. package/dist/src/components/blocks/ProductCard.d.ts +0 -57
  480. package/dist/src/components/blocks/ProductCard.d.ts.map +0 -1
  481. package/dist/src/components/blocks/Section.d.ts +0 -45
  482. package/dist/src/components/blocks/Section.d.ts.map +0 -1
  483. package/dist/src/components/blocks/Text.d.ts +0 -34
  484. package/dist/src/components/blocks/Text.d.ts.map +0 -1
  485. package/dist/src/components/blocks/index.d.ts +0 -41
  486. package/dist/src/components/blocks/index.d.ts.map +0 -1
  487. package/dist/src/components/buttons/Button.d.ts +0 -57
  488. package/dist/src/components/buttons/Button.d.ts.map +0 -1
  489. package/dist/src/components/buttons/PaletteSwitcher.d.ts +0 -24
  490. package/dist/src/components/buttons/PaletteSwitcher.d.ts.map +0 -1
  491. package/dist/src/components/buttons/ThemeSwitcher.d.ts +0 -24
  492. package/dist/src/components/buttons/ThemeSwitcher.d.ts.map +0 -1
  493. package/dist/src/components/buttons/index.d.ts +0 -11
  494. package/dist/src/components/buttons/index.d.ts.map +0 -1
  495. package/dist/src/components/forms/FormBlock.d.ts +0 -51
  496. package/dist/src/components/forms/FormBlock.d.ts.map +0 -1
  497. package/dist/src/components/forms/index.d.ts +0 -8
  498. package/dist/src/components/forms/index.d.ts.map +0 -1
  499. package/dist/src/components/index.d.ts +0 -41
  500. package/dist/src/components/index.d.ts.map +0 -1
  501. package/dist/src/components/input/ChoiceInputField.d.ts +0 -29
  502. package/dist/src/components/input/ChoiceInputField.d.ts.map +0 -1
  503. package/dist/src/components/input/HtmlInputField.d.ts +0 -33
  504. package/dist/src/components/input/HtmlInputField.d.ts.map +0 -1
  505. package/dist/src/components/input/SelectInputField.d.ts +0 -31
  506. package/dist/src/components/input/SelectInputField.d.ts.map +0 -1
  507. package/dist/src/components/input/SwitchInputField.d.ts +0 -27
  508. package/dist/src/components/input/SwitchInputField.d.ts.map +0 -1
  509. package/dist/src/components/input/TextField.d.ts +0 -18
  510. package/dist/src/components/input/TextField.d.ts.map +0 -1
  511. package/dist/src/components/input/TextInputField.d.ts +0 -34
  512. package/dist/src/components/input/TextInputField.d.ts.map +0 -1
  513. package/dist/src/components/input/index.d.ts +0 -19
  514. package/dist/src/components/input/index.d.ts.map +0 -1
  515. package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts +0 -34
  516. package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +0 -1
  517. package/dist/src/components/layout/CollapsibleLayout/index.d.ts +0 -9
  518. package/dist/src/components/layout/CollapsibleLayout/index.d.ts.map +0 -1
  519. package/dist/src/components/layout/GridCell.d.ts +0 -32
  520. package/dist/src/components/layout/GridCell.d.ts.map +0 -1
  521. package/dist/src/components/layout/GridCellWrapper.d.ts +0 -46
  522. package/dist/src/components/layout/GridCellWrapper.d.ts.map +0 -1
  523. package/dist/src/components/layout/GridLayout.d.ts +0 -50
  524. package/dist/src/components/layout/GridLayout.d.ts.map +0 -1
  525. package/dist/src/components/layout/index.d.ts +0 -14
  526. package/dist/src/components/layout/index.d.ts.map +0 -1
  527. package/dist/src/components/menu/Menu.d.ts +0 -1
  528. package/dist/src/components/menu/Menu.d.ts.map +0 -1
  529. package/dist/src/components/menu/MenuItem.d.ts +0 -31
  530. package/dist/src/components/menu/MenuItem.d.ts.map +0 -1
  531. package/dist/src/components/menu/index.d.ts +0 -7
  532. package/dist/src/components/menu/index.d.ts.map +0 -1
  533. package/dist/src/components/pages/FormPage.d.ts +0 -66
  534. package/dist/src/components/pages/FormPage.d.ts.map +0 -1
  535. package/dist/src/components/pages/Page.d.ts +0 -68
  536. package/dist/src/components/pages/Page.d.ts.map +0 -1
  537. package/dist/src/components/pages/index.d.ts +0 -10
  538. package/dist/src/components/pages/index.d.ts.map +0 -1
  539. package/dist/src/components/shared/createSerializableView.d.ts +0 -81
  540. package/dist/src/components/shared/createSerializableView.d.ts.map +0 -1
  541. package/dist/src/components/shared/viewProps.d.ts +0 -37
  542. package/dist/src/components/shared/viewProps.d.ts.map +0 -1
  543. package/dist/src/config/AppConfig.d.ts +0 -49
  544. package/dist/src/config/AppConfig.d.ts.map +0 -1
  545. package/dist/src/config/AppConfigBuilder.d.ts +0 -75
  546. package/dist/src/config/AppConfigBuilder.d.ts.map +0 -1
  547. package/dist/src/config/index.d.ts +0 -13
  548. package/dist/src/config/index.d.ts.map +0 -1
  549. package/dist/src/config/types.d.ts +0 -130
  550. package/dist/src/config/types.d.ts.map +0 -1
  551. package/dist/src/config.d.ts +0 -15
  552. package/dist/src/config.d.ts.map +0 -1
  553. package/dist/src/contexts/DataContext.d.ts +0 -139
  554. package/dist/src/contexts/DataContext.d.ts.map +0 -1
  555. package/dist/src/contexts/DimensionsContext.d.ts +0 -42
  556. package/dist/src/contexts/DimensionsContext.d.ts.map +0 -1
  557. package/dist/src/contexts/PaletteContext.d.ts +0 -53
  558. package/dist/src/contexts/PaletteContext.d.ts.map +0 -1
  559. package/dist/src/contexts/PrintModeContext.d.ts +0 -27
  560. package/dist/src/contexts/PrintModeContext.d.ts.map +0 -1
  561. package/dist/src/contexts/QwickAppContext.d.ts +0 -71
  562. package/dist/src/contexts/QwickAppContext.d.ts.map +0 -1
  563. package/dist/src/contexts/ThemeContext.d.ts +0 -65
  564. package/dist/src/contexts/ThemeContext.d.ts.map +0 -1
  565. package/dist/src/contexts/index.d.ts +0 -11
  566. package/dist/src/contexts/index.d.ts.map +0 -1
  567. package/dist/src/hooks/index.d.ts +0 -12
  568. package/dist/src/hooks/index.d.ts.map +0 -1
  569. package/dist/src/hooks/useBaseProps.d.ts +0 -101
  570. package/dist/src/hooks/useBaseProps.d.ts.map +0 -1
  571. package/dist/src/hooks/useDataBinding.d.ts +0 -22
  572. package/dist/src/hooks/useDataBinding.d.ts.map +0 -1
  573. package/dist/src/hooks/usePrintMode.d.ts +0 -39
  574. package/dist/src/hooks/usePrintMode.d.ts.map +0 -1
  575. package/dist/src/index.d.ts +0 -9
  576. package/dist/src/index.d.ts.map +0 -1
  577. package/dist/src/palettes/PaletteAutumn.d.ts +0 -10
  578. package/dist/src/palettes/PaletteAutumn.d.ts.map +0 -1
  579. package/dist/src/palettes/PaletteCosmic.d.ts +0 -10
  580. package/dist/src/palettes/PaletteCosmic.d.ts.map +0 -1
  581. package/dist/src/palettes/PaletteDefault.d.ts +0 -10
  582. package/dist/src/palettes/PaletteDefault.d.ts.map +0 -1
  583. package/dist/src/palettes/PaletteOcean.d.ts +0 -10
  584. package/dist/src/palettes/PaletteOcean.d.ts.map +0 -1
  585. package/dist/src/palettes/PaletteSpring.d.ts +0 -10
  586. package/dist/src/palettes/PaletteSpring.d.ts.map +0 -1
  587. package/dist/src/palettes/PaletteWinter.d.ts +0 -10
  588. package/dist/src/palettes/PaletteWinter.d.ts.map +0 -1
  589. package/dist/src/palettes/index.d.ts +0 -13
  590. package/dist/src/palettes/index.d.ts.map +0 -1
  591. package/dist/src/schemas/ActionSchema.d.ts +0 -21
  592. package/dist/src/schemas/ActionSchema.d.ts.map +0 -1
  593. package/dist/src/schemas/ArticleSchema.d.ts +0 -13
  594. package/dist/src/schemas/ArticleSchema.d.ts.map +0 -1
  595. package/dist/src/schemas/ButtonSchema.d.ts +0 -22
  596. package/dist/src/schemas/ButtonSchema.d.ts.map +0 -1
  597. package/dist/src/schemas/CardListGridSchema.d.ts +0 -17
  598. package/dist/src/schemas/CardListGridSchema.d.ts.map +0 -1
  599. package/dist/src/schemas/ChoiceInputFieldSchema.d.ts +0 -18
  600. package/dist/src/schemas/ChoiceInputFieldSchema.d.ts.map +0 -1
  601. package/dist/src/schemas/CodeSchema.d.ts +0 -18
  602. package/dist/src/schemas/CodeSchema.d.ts.map +0 -1
  603. package/dist/src/schemas/CollapsibleLayoutSchema.d.ts +0 -32
  604. package/dist/src/schemas/CollapsibleLayoutSchema.d.ts.map +0 -1
  605. package/dist/src/schemas/ContainerSchema.d.ts +0 -12
  606. package/dist/src/schemas/ContainerSchema.d.ts.map +0 -1
  607. package/dist/src/schemas/ContentSchema.d.ts +0 -21
  608. package/dist/src/schemas/ContentSchema.d.ts.map +0 -1
  609. package/dist/src/schemas/CoverImageHeaderSchema.d.ts +0 -28
  610. package/dist/src/schemas/CoverImageHeaderSchema.d.ts.map +0 -1
  611. package/dist/src/schemas/FeatureCardSchema.d.ts +0 -28
  612. package/dist/src/schemas/FeatureCardSchema.d.ts.map +0 -1
  613. package/dist/src/schemas/FeatureGridSchema.d.ts +0 -17
  614. package/dist/src/schemas/FeatureGridSchema.d.ts.map +0 -1
  615. package/dist/src/schemas/FeatureItemSchema.d.ts +0 -16
  616. package/dist/src/schemas/FeatureItemSchema.d.ts.map +0 -1
  617. package/dist/src/schemas/FooterItemSchema.d.ts +0 -15
  618. package/dist/src/schemas/FooterItemSchema.d.ts.map +0 -1
  619. package/dist/src/schemas/FooterSchema.d.ts +0 -20
  620. package/dist/src/schemas/FooterSchema.d.ts.map +0 -1
  621. package/dist/src/schemas/FooterSectionSchema.d.ts +0 -15
  622. package/dist/src/schemas/FooterSectionSchema.d.ts.map +0 -1
  623. package/dist/src/schemas/FormBlockSchema.d.ts +0 -19
  624. package/dist/src/schemas/FormBlockSchema.d.ts.map +0 -1
  625. package/dist/src/schemas/GridCellSchema.d.ts +0 -23
  626. package/dist/src/schemas/GridCellSchema.d.ts.map +0 -1
  627. package/dist/src/schemas/GridLayoutSchema.d.ts +0 -21
  628. package/dist/src/schemas/GridLayoutSchema.d.ts.map +0 -1
  629. package/dist/src/schemas/HeaderActionSchema.d.ts +0 -17
  630. package/dist/src/schemas/HeaderActionSchema.d.ts.map +0 -1
  631. package/dist/src/schemas/HeroBlockSchema.d.ts +0 -22
  632. package/dist/src/schemas/HeroBlockSchema.d.ts.map +0 -1
  633. package/dist/src/schemas/HtmlInputFieldSchema.d.ts +0 -18
  634. package/dist/src/schemas/HtmlInputFieldSchema.d.ts.map +0 -1
  635. package/dist/src/schemas/HtmlSchema.d.ts +0 -14
  636. package/dist/src/schemas/HtmlSchema.d.ts.map +0 -1
  637. package/dist/src/schemas/ImageSchema.d.ts +0 -32
  638. package/dist/src/schemas/ImageSchema.d.ts.map +0 -1
  639. package/dist/src/schemas/LogoSchema.d.ts +0 -35
  640. package/dist/src/schemas/LogoSchema.d.ts.map +0 -1
  641. package/dist/src/schemas/MarkdownSchema.d.ts +0 -14
  642. package/dist/src/schemas/MarkdownSchema.d.ts.map +0 -1
  643. package/dist/src/schemas/MetadataItemSchema.d.ts +0 -13
  644. package/dist/src/schemas/MetadataItemSchema.d.ts.map +0 -1
  645. package/dist/src/schemas/PageBannerHeaderSchema.d.ts +0 -28
  646. package/dist/src/schemas/PageBannerHeaderSchema.d.ts.map +0 -1
  647. package/dist/src/schemas/PageTemplateSchema.d.ts +0 -31
  648. package/dist/src/schemas/PageTemplateSchema.d.ts.map +0 -1
  649. package/dist/src/schemas/PaletteSwitcherSchema.d.ts +0 -16
  650. package/dist/src/schemas/PaletteSwitcherSchema.d.ts.map +0 -1
  651. package/dist/src/schemas/PrintConfigSchema.d.ts +0 -31
  652. package/dist/src/schemas/PrintConfigSchema.d.ts.map +0 -1
  653. package/dist/src/schemas/ProductCardSchema.d.ts +0 -39
  654. package/dist/src/schemas/ProductCardSchema.d.ts.map +0 -1
  655. package/dist/src/schemas/SafeSpanSchema.d.ts +0 -13
  656. package/dist/src/schemas/SafeSpanSchema.d.ts.map +0 -1
  657. package/dist/src/schemas/SectionSchema.d.ts +0 -16
  658. package/dist/src/schemas/SectionSchema.d.ts.map +0 -1
  659. package/dist/src/schemas/SelectInputFieldSchema.d.ts +0 -27
  660. package/dist/src/schemas/SelectInputFieldSchema.d.ts.map +0 -1
  661. package/dist/src/schemas/SwitchInputFieldSchema.d.ts +0 -18
  662. package/dist/src/schemas/SwitchInputFieldSchema.d.ts.map +0 -1
  663. package/dist/src/schemas/TextInputFieldSchema.d.ts +0 -22
  664. package/dist/src/schemas/TextInputFieldSchema.d.ts.map +0 -1
  665. package/dist/src/schemas/TextSchema.d.ts +0 -37
  666. package/dist/src/schemas/TextSchema.d.ts.map +0 -1
  667. package/dist/src/schemas/ThemeSwitcherSchema.d.ts +0 -19
  668. package/dist/src/schemas/ThemeSwitcherSchema.d.ts.map +0 -1
  669. package/dist/src/schemas/ViewSchema.d.ts +0 -66
  670. package/dist/src/schemas/ViewSchema.d.ts.map +0 -1
  671. package/dist/src/schemas/index.d.ts +0 -47
  672. package/dist/src/schemas/index.d.ts.map +0 -1
  673. package/dist/src/schemas/transformers/ComponentTransformer.d.ts +0 -128
  674. package/dist/src/schemas/transformers/ComponentTransformer.d.ts.map +0 -1
  675. package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts +0 -53
  676. package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts.map +0 -1
  677. package/dist/src/schemas/transformers/registry.d.ts +0 -18
  678. package/dist/src/schemas/transformers/registry.d.ts.map +0 -1
  679. package/dist/src/schemas/types/Serializable.d.ts +0 -46
  680. package/dist/src/schemas/types/Serializable.d.ts.map +0 -1
  681. package/dist/src/stories/_templates/SerializationTemplate.d.ts.map +0 -1
  682. package/dist/src/templates/TemplateResolver.d.ts +0 -52
  683. package/dist/src/templates/TemplateResolver.d.ts.map +0 -1
  684. package/dist/src/templates/index.d.ts +0 -7
  685. package/dist/src/templates/index.d.ts.map +0 -1
  686. package/dist/src/types/CacheProvider.d.ts +0 -18
  687. package/dist/src/types/CacheProvider.d.ts.map +0 -1
  688. package/dist/src/types/CollapsibleLayout.d.ts +0 -142
  689. package/dist/src/types/CollapsibleLayout.d.ts.map +0 -1
  690. package/dist/src/types/ContentProxy.d.ts +0 -47
  691. package/dist/src/types/ContentProxy.d.ts.map +0 -1
  692. package/dist/src/types/DataTypes.d.ts +0 -185
  693. package/dist/src/types/DataTypes.d.ts.map +0 -1
  694. package/dist/src/types/TemplateProvider.d.ts +0 -10
  695. package/dist/src/types/TemplateProvider.d.ts.map +0 -1
  696. package/dist/src/types/TemplateResolver.d.ts +0 -23
  697. package/dist/src/types/TemplateResolver.d.ts.map +0 -1
  698. package/dist/src/types/index.d.ts +0 -82
  699. package/dist/src/types/index.d.ts.map +0 -1
  700. package/dist/src/utils/breakpoints.d.ts +0 -35
  701. package/dist/src/utils/breakpoints.d.ts.map +0 -1
  702. package/dist/src/utils/cssUtils.d.ts +0 -17
  703. package/dist/src/utils/cssUtils.d.ts.map +0 -1
  704. package/dist/src/utils/customPaletteManager.d.ts +0 -8
  705. package/dist/src/utils/customPaletteManager.d.ts.map +0 -1
  706. package/dist/src/utils/dimensions.d.ts +0 -34
  707. package/dist/src/utils/dimensions.d.ts.map +0 -1
  708. package/dist/src/utils/htmlTransform.d.ts +0 -44
  709. package/dist/src/utils/htmlTransform.d.ts.map +0 -1
  710. package/dist/src/utils/index.d.ts +0 -16
  711. package/dist/src/utils/index.d.ts.map +0 -1
  712. package/dist/src/utils/logger.d.ts +0 -26
  713. package/dist/src/utils/logger.d.ts.map +0 -1
  714. package/dist/src/utils/paletteUtils.d.ts +0 -38
  715. package/dist/src/utils/paletteUtils.d.ts.map +0 -1
  716. package/dist/src/utils/persistenceUtils.d.ts +0 -31
  717. package/dist/src/utils/persistenceUtils.d.ts.map +0 -1
  718. package/dist/src/utils/reactUtils.d.ts +0 -33
  719. package/dist/src/utils/reactUtils.d.ts.map +0 -1
  720. package/dist/src/utils/spacing.d.ts +0 -34
  721. package/dist/src/utils/spacing.d.ts.map +0 -1
  722. package/dist/src/utils/themePerformanceMonitor.d.ts +0 -32
  723. package/dist/src/utils/themePerformanceMonitor.d.ts.map +0 -1
  724. package/dist/src/utils/themeUtils.d.ts +0 -27
  725. package/dist/src/utils/themeUtils.d.ts.map +0 -1
  726. package/dist/tests/ConsoleWarningTest.d.ts +0 -5
  727. package/dist/tests/ConsoleWarningTest.d.ts.map +0 -1
  728. package/dist/tests/StorageKeyTest.d.ts +0 -6
  729. package/dist/tests/StorageKeyTest.d.ts.map +0 -1
  730. package/dist/tests/ThemeStorageKeyTest.d.ts +0 -6
  731. package/dist/tests/ThemeStorageKeyTest.d.ts.map +0 -1
  732. /package/dist/palettes/{PaletteAutumn.css → palette-autumn.1.4.9.css} +0 -0
  733. /package/dist/palettes/{PaletteCosmic.css → palette-cosmic.1.4.9.css} +0 -0
  734. /package/dist/palettes/{PaletteDefault.css → palette-default.1.4.9.css} +0 -0
  735. /package/dist/palettes/{PaletteOcean.css → palette-ocean.1.4.9.css} +0 -0
  736. /package/dist/palettes/{PaletteSpring.css → palette-spring.1.4.9.css} +0 -0
  737. /package/dist/palettes/{PaletteWinter.css → palette-winter.1.4.9.css} +0 -0
  738. /package/dist/{src/stories → stories}/_templates/SerializationTemplate.d.ts +0 -0
@@ -0,0 +1,268 @@
1
+ /**
2
+ * Palette Manifest Utilities - Fetch and manage palette manifests
3
+ *
4
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
5
+ */
6
+
7
+ // Manifest structure
8
+ export interface PaletteManifestEntry {
9
+ id: string;
10
+ name: string;
11
+ description: string;
12
+ author?: string;
13
+ license?: string;
14
+ version: string;
15
+ file: string;
16
+ fileMinified?: string;
17
+ thumbnail?: string;
18
+ primaryColor: string;
19
+ inlined?: boolean;
20
+ }
21
+
22
+ export interface PaletteManifest {
23
+ version: string;
24
+ palettes: PaletteManifestEntry[];
25
+ }
26
+
27
+ // Configuration
28
+ export interface PaletteManifestConfig {
29
+ /** Enable/disable remote palette loading */
30
+ enableRemote?: boolean;
31
+ /** Custom remote URL for palette manifest */
32
+ remoteUrl?: string;
33
+ /** Custom local path for palette manifest */
34
+ localPath?: string;
35
+ }
36
+
37
+ // Default configuration
38
+ const DEFAULT_CONFIG: Required<PaletteManifestConfig> = {
39
+ enableRemote: true,
40
+ remoteUrl: 'https://qwickapps.com/palettes/manifest.json',
41
+ localPath: '/palettes/manifest.json',
42
+ };
43
+
44
+ // Cache for loaded manifests
45
+ let cachedManifest: PaletteManifest | null = null;
46
+ let manifestLoadAttempted = false;
47
+
48
+ /**
49
+ * Fetch a manifest from a URL
50
+ */
51
+ async function fetchManifestFromUrl(url: string): Promise<PaletteManifest | null> {
52
+ try {
53
+ const response = await fetch(url, {
54
+ method: 'GET',
55
+ headers: {
56
+ 'Accept': 'application/json',
57
+ },
58
+ // Short timeout for better UX
59
+ signal: AbortSignal.timeout(5000),
60
+ });
61
+
62
+ if (!response.ok) {
63
+ console.warn(`[PaletteManifest] Failed to fetch from ${url}: ${response.status} ${response.statusText}`);
64
+ return null;
65
+ }
66
+
67
+ const manifest: PaletteManifest = await response.json();
68
+
69
+ // Basic validation
70
+ if (!manifest.version || !Array.isArray(manifest.palettes)) {
71
+ console.warn(`[PaletteManifest] Invalid manifest structure from ${url}`);
72
+ return null;
73
+ }
74
+
75
+ return manifest;
76
+ } catch (error) {
77
+ // Only log in development
78
+ if ((import.meta as Record<string, unknown>).env?.DEV) {
79
+ console.warn(`[PaletteManifest] Error fetching from ${url}:`, error);
80
+ }
81
+ return null;
82
+ }
83
+ }
84
+
85
+ /**
86
+ * Merge multiple manifests, with later manifests overriding earlier ones
87
+ */
88
+ function mergeManifests(...manifests: (PaletteManifest | null)[]): PaletteManifest {
89
+ const paletteMap = new Map<string, PaletteManifestEntry>();
90
+ let latestVersion = '0.0.0';
91
+
92
+ for (const manifest of manifests) {
93
+ if (!manifest) continue;
94
+
95
+ // Track latest version
96
+ if (manifest.version > latestVersion) {
97
+ latestVersion = manifest.version;
98
+ }
99
+
100
+ // Merge palettes (later manifests override)
101
+ for (const palette of manifest.palettes) {
102
+ paletteMap.set(palette.id, palette);
103
+ }
104
+ }
105
+
106
+ return {
107
+ version: latestVersion,
108
+ palettes: Array.from(paletteMap.values()),
109
+ };
110
+ }
111
+
112
+ /**
113
+ * Load palette manifest from configured sources
114
+ */
115
+ export async function loadPaletteManifest(
116
+ config: PaletteManifestConfig = {}
117
+ ): Promise<PaletteManifest> {
118
+ // Return cached manifest if available
119
+ if (cachedManifest) {
120
+ return cachedManifest;
121
+ }
122
+
123
+ // Only attempt once
124
+ if (manifestLoadAttempted) {
125
+ return getFallbackManifest();
126
+ }
127
+
128
+ manifestLoadAttempted = true;
129
+
130
+ const finalConfig = { ...DEFAULT_CONFIG, ...config };
131
+ const manifests: (PaletteManifest | null)[] = [];
132
+
133
+ // Try remote manifest first (if enabled)
134
+ if (finalConfig.enableRemote) {
135
+ const remoteManifest = await fetchManifestFromUrl(finalConfig.remoteUrl);
136
+ manifests.push(remoteManifest);
137
+ }
138
+
139
+ // Try local manifest
140
+ if (typeof window !== 'undefined') {
141
+ const localManifest = await fetchManifestFromUrl(finalConfig.localPath);
142
+ manifests.push(localManifest);
143
+ }
144
+
145
+ // Merge all loaded manifests
146
+ const mergedManifest = mergeManifests(...manifests);
147
+
148
+ // If no manifests loaded, use fallback
149
+ if (mergedManifest.palettes.length === 0) {
150
+ if ((import.meta as Record<string, unknown>).env?.DEV) {
151
+ console.warn('[PaletteManifest] No manifests loaded, using fallback');
152
+ }
153
+ cachedManifest = getFallbackManifest();
154
+ return cachedManifest;
155
+ }
156
+
157
+ cachedManifest = mergedManifest;
158
+ return cachedManifest;
159
+ }
160
+
161
+ /**
162
+ * Get fallback manifest with built-in palettes
163
+ */
164
+ function getFallbackManifest(): PaletteManifest {
165
+ return {
166
+ version: '1.4.9',
167
+ palettes: [
168
+ {
169
+ id: 'default',
170
+ name: 'Default',
171
+ description: 'Classic blue and neutral color scheme',
172
+ version: '1.4.9',
173
+ file: 'PaletteDefault.css',
174
+ primaryColor: '#007bff',
175
+ inlined: true,
176
+ },
177
+ {
178
+ id: 'autumn',
179
+ name: 'Autumn',
180
+ description: 'Warm oranges, golden yellows, and earthy browns',
181
+ version: '1.4.9',
182
+ file: 'PaletteAutumn.css',
183
+ primaryColor: '#ea580c',
184
+ inlined: false,
185
+ },
186
+ {
187
+ id: 'cosmic',
188
+ name: 'Cosmic',
189
+ description: 'Modern purple gradient for creative and tech brands',
190
+ version: '1.4.9',
191
+ file: 'PaletteCosmic.css',
192
+ primaryColor: '#8b5cf6',
193
+ inlined: false,
194
+ },
195
+ {
196
+ id: 'ocean',
197
+ name: 'Ocean',
198
+ description: 'Deep blues, aqua teals, and seafoam greens',
199
+ version: '1.4.9',
200
+ file: 'PaletteOcean.css',
201
+ primaryColor: '#0891b2',
202
+ inlined: false,
203
+ },
204
+ {
205
+ id: 'spring',
206
+ name: 'Spring',
207
+ description: 'Fresh greens, soft pinks, and bright yellows',
208
+ version: '1.4.9',
209
+ file: 'PaletteSpring.css',
210
+ primaryColor: '#16a34a',
211
+ inlined: false,
212
+ },
213
+ {
214
+ id: 'winter',
215
+ name: 'Winter',
216
+ description: 'Cool blues, icy whites, and frosty grays',
217
+ version: '1.4.9',
218
+ file: 'PaletteWinter.css',
219
+ primaryColor: '#0077be',
220
+ inlined: false,
221
+ },
222
+ ],
223
+ };
224
+ }
225
+
226
+ /**
227
+ * Get a specific palette from the manifest
228
+ */
229
+ export async function getPaletteFromManifest(
230
+ paletteId: string,
231
+ config?: PaletteManifestConfig
232
+ ): Promise<PaletteManifestEntry | null> {
233
+ const manifest = await loadPaletteManifest(config);
234
+ return manifest.palettes.find(p => p.id === paletteId) || null;
235
+ }
236
+
237
+ /**
238
+ * Get all available palettes
239
+ */
240
+ export async function getAvailablePalettes(
241
+ config?: PaletteManifestConfig
242
+ ): Promise<PaletteManifestEntry[]> {
243
+ const manifest = await loadPaletteManifest(config);
244
+ return manifest.palettes;
245
+ }
246
+
247
+ /**
248
+ * Clear the cached manifest (useful for testing)
249
+ */
250
+ export function clearManifestCache(): void {
251
+ cachedManifest = null;
252
+ manifestLoadAttempted = false;
253
+ }
254
+
255
+ /**
256
+ * Register a custom palette dynamically
257
+ */
258
+ export function registerCustomPalette(palette: PaletteManifestEntry): void {
259
+ if (!cachedManifest) {
260
+ cachedManifest = getFallbackManifest();
261
+ }
262
+
263
+ // Remove existing palette with same ID
264
+ cachedManifest.palettes = cachedManifest.palettes.filter(p => p.id !== palette.id);
265
+
266
+ // Add new palette
267
+ cachedManifest.palettes.push(palette);
268
+ }
@@ -17,6 +17,9 @@ export const AVAILABLE_PALETTES: PaletteConfig[] = [
17
17
  * Get the current palette from CSS variables
18
18
  */
19
19
  export const getCurrentPalette = (): string => {
20
+ if (typeof document === 'undefined') {
21
+ return 'default'; // SSR fallback
22
+ }
20
23
  const root = document.documentElement;
21
24
  return root.getAttribute('data-palette') || 'default';
22
25
  };
@@ -25,9 +28,12 @@ export const getCurrentPalette = (): string => {
25
28
  * Set palette and update CSS variables
26
29
  */
27
30
  export const setPalette = (palette: string): void => {
31
+ if (typeof document === 'undefined' || typeof window === 'undefined') {
32
+ return; // SSR - no-op
33
+ }
28
34
  const root = document.documentElement;
29
35
  root.setAttribute('data-palette', palette);
30
-
36
+
31
37
  // Trigger custom event for palette change
32
38
  window.dispatchEvent(new CustomEvent('paletteChange', { detail: { palette } }));
33
39
  };
@@ -51,6 +57,9 @@ export const getPaletteConfig = (paletteId: string): PaletteConfig | undefined =
51
57
  * Initialize palette system
52
58
  */
53
59
  export const initializePalette = (): void => {
60
+ if (typeof localStorage === 'undefined') {
61
+ return; // SSR - no-op
62
+ }
54
63
  const savedPalette = localStorage.getItem('palette') || 'default';
55
64
  setPalette(savedPalette);
56
65
  };
@@ -59,6 +68,9 @@ export const initializePalette = (): void => {
59
68
  * Save palette preference to localStorage
60
69
  */
61
70
  export const savePalettePreference = (palette: string): void => {
71
+ if (typeof localStorage === 'undefined') {
72
+ return; // SSR - no-op
73
+ }
62
74
  localStorage.setItem('palette', palette);
63
75
  setPalette(palette);
64
76
  };
@@ -67,6 +79,9 @@ export const savePalettePreference = (palette: string): void => {
67
79
  * Get CSS custom property value
68
80
  */
69
81
  export const getCSSVariable = (property: string): string => {
82
+ if (typeof document === 'undefined') {
83
+ return ''; // SSR fallback
84
+ }
70
85
  return getComputedStyle(document.documentElement).getPropertyValue(property).trim();
71
86
  };
72
87
 
@@ -74,5 +89,8 @@ export const getCSSVariable = (property: string): string => {
74
89
  * Set CSS custom property value
75
90
  */
76
91
  export const setCSSVariable = (property: string, value: string): void => {
92
+ if (typeof document === 'undefined') {
93
+ return; // SSR - no-op
94
+ }
77
95
  document.documentElement.style.setProperty(property, value);
78
96
  };
@@ -1,54 +1,55 @@
1
1
  /**
2
2
  * QwickApps React Framework - React Utilities
3
3
  * This module provides utility functions for React components in the QwickApps React Framework.
4
- *
4
+ *
5
5
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
6
6
  */
7
7
 
8
8
  import { ReactNode } from 'react';
9
- import { useLocation, useNavigate } from 'react-router-dom';
10
9
 
11
- /** Location type for React Router */
10
+ /** Location type for routing */
12
11
  type LocationType = { pathname: string, search: string, hash: string };
13
12
 
14
13
  /**
15
- * Custom hook to get the current location
16
- * @returns {object | undefined} - The location object if React Router is available, otherwise undefined
14
+ * Get the current location from browser or undefined in SSR
15
+ * Works without relying on routing libraries
16
+ * @returns {object | undefined} - The location object if in browser, otherwise undefined
17
17
  */
18
18
  export const useSafeLocation = (): LocationType | undefined => {
19
- try {
20
- return useLocation();
21
- } catch (error) {
22
- console.warn('React Router context not available:', error);
23
- return undefined;
19
+ // Use browser location if available (works in any React app)
20
+ if (typeof window !== 'undefined') {
21
+ return {
22
+ pathname: window.location.pathname,
23
+ search: window.location.search,
24
+ hash: window.location.hash
25
+ };
24
26
  }
27
+ return undefined;
25
28
  };
26
29
 
27
30
  /**
28
- * Custom hook to get the navigate function with fallback
29
- * @returns {Function} - The navigate function (React Router or window.location fallback)
31
+ * Navigate function type
32
+ */
33
+ export type NavigateFunction = (to: string | number, options?: unknown) => void;
34
+
35
+ /**
36
+ * Get a navigation function with fallback to window.location
37
+ * Works without relying on routing libraries
38
+ * @returns {NavigateFunction} - The navigate function
30
39
  */
31
- export const useSafeNavigate = (): Function => {
32
- try {
33
- const navigate = useNavigate();
34
- return navigate;
35
- } catch (error) {
36
- // Return fallback function that uses window.location.href
37
- return (to: string | number, options?: any) => {
38
- console.warn('React Router context not available, using window.location as fallback to navigate to:', to);
39
- if (typeof to === 'string') {
40
- // Handle relative and absolute paths
41
- if (typeof window !== 'undefined') {
42
- window.location.href = to;
43
- }
44
- } else if (typeof to === 'number') {
45
- // Handle history.go() equivalent
46
- if (typeof window !== 'undefined' && window.history) {
47
- window.history.go(to);
48
- }
40
+ export const useSafeNavigate = (): NavigateFunction => {
41
+ // Return function that uses window.location
42
+ return (to: string | number) => {
43
+ if (typeof to === 'string') {
44
+ if (typeof window !== 'undefined') {
45
+ window.location.href = to;
49
46
  }
50
- };
51
- }
47
+ } else if (typeof to === 'number') {
48
+ if (typeof window !== 'undefined' && window.history) {
49
+ window.history.go(to);
50
+ }
51
+ }
52
+ };
52
53
  };
53
54
 
54
55
  /**
@@ -77,7 +78,7 @@ export function extractTextFromReactNode(node: ReactNode): string {
77
78
 
78
79
  // For React elements, try to extract text content
79
80
  if (typeof node === 'object' && node !== null && 'props' in node) {
80
- const element = node as any;
81
+ const element = node as { props?: { children?: ReactNode } };
81
82
  if (element.props && element.props.children) {
82
83
  return extractTextFromReactNode(element.props.children);
83
84
  }
@@ -33,8 +33,7 @@ const CSS_SPACING_PATTERN = /^(\d+(\.\d+)?(px|em|rem|%)|0|auto|inherit|initial|u
33
33
  * Resolves a spacing value to MUI spacing units or CSS value
34
34
  */
35
35
  export function resolveSpacing(
36
- value: SpacingValue,
37
- context: SpacingContext = 'padding'
36
+ value: SpacingValue
38
37
  ): number | string | undefined {
39
38
  if (value === undefined || value === null) {
40
39
  return undefined;
@@ -103,52 +102,52 @@ export function resolveSpacingProps(props: {
103
102
  marginX?: SpacingValue;
104
103
  marginY?: SpacingValue;
105
104
  }) {
106
- const resolved: any = {};
105
+ const resolved: Record<string, number | string | undefined> = {};
107
106
 
108
107
  // Padding
109
108
  if (props.padding !== undefined) {
110
- resolved.p = resolveSpacing(props.padding, 'padding');
109
+ resolved.p = resolveSpacing(props.padding);
111
110
  }
112
111
  if (props.paddingTop !== undefined) {
113
- resolved.pt = resolveSpacing(props.paddingTop, 'padding');
112
+ resolved.pt = resolveSpacing(props.paddingTop);
114
113
  }
115
114
  if (props.paddingRight !== undefined) {
116
- resolved.pr = resolveSpacing(props.paddingRight, 'padding');
115
+ resolved.pr = resolveSpacing(props.paddingRight);
117
116
  }
118
117
  if (props.paddingBottom !== undefined) {
119
- resolved.pb = resolveSpacing(props.paddingBottom, 'padding');
118
+ resolved.pb = resolveSpacing(props.paddingBottom);
120
119
  }
121
120
  if (props.paddingLeft !== undefined) {
122
- resolved.pl = resolveSpacing(props.paddingLeft, 'padding');
121
+ resolved.pl = resolveSpacing(props.paddingLeft);
123
122
  }
124
123
  if (props.paddingX !== undefined) {
125
- resolved.px = resolveSpacing(props.paddingX, 'padding');
124
+ resolved.px = resolveSpacing(props.paddingX);
126
125
  }
127
126
  if (props.paddingY !== undefined) {
128
- resolved.py = resolveSpacing(props.paddingY, 'padding');
127
+ resolved.py = resolveSpacing(props.paddingY);
129
128
  }
130
129
 
131
130
  // Margin
132
131
  if (props.margin !== undefined) {
133
- resolved.m = resolveSpacing(props.margin, 'margin');
132
+ resolved.m = resolveSpacing(props.margin);
134
133
  }
135
134
  if (props.marginTop !== undefined) {
136
- resolved.mt = resolveSpacing(props.marginTop, 'margin');
135
+ resolved.mt = resolveSpacing(props.marginTop);
137
136
  }
138
137
  if (props.marginRight !== undefined) {
139
- resolved.mr = resolveSpacing(props.marginRight, 'margin');
138
+ resolved.mr = resolveSpacing(props.marginRight);
140
139
  }
141
140
  if (props.marginBottom !== undefined) {
142
- resolved.mb = resolveSpacing(props.marginBottom, 'margin');
141
+ resolved.mb = resolveSpacing(props.marginBottom);
143
142
  }
144
143
  if (props.marginLeft !== undefined) {
145
- resolved.ml = resolveSpacing(props.marginLeft, 'margin');
144
+ resolved.ml = resolveSpacing(props.marginLeft);
146
145
  }
147
146
  if (props.marginX !== undefined) {
148
- resolved.mx = resolveSpacing(props.marginX, 'margin');
147
+ resolved.mx = resolveSpacing(props.marginX);
149
148
  }
150
149
  if (props.marginY !== undefined) {
151
- resolved.my = resolveSpacing(props.marginY, 'margin');
150
+ resolved.my = resolveSpacing(props.marginY);
152
151
  }
153
152
 
154
153
  return resolved;
@@ -15,6 +15,11 @@ class ThemePerformanceMonitor {
15
15
  }
16
16
 
17
17
  initializeListeners() {
18
+ // SSR guard - only initialize listeners in browser environment
19
+ if (typeof window === 'undefined') {
20
+ return;
21
+ }
22
+
18
23
  // Listen for theme changes
19
24
  window.addEventListener('theme-changed', (event) => {
20
25
  this.measureThemeSwitch('theme', event.detail?.theme);
@@ -27,31 +32,34 @@ class ThemePerformanceMonitor {
27
32
  }
28
33
 
29
34
  measureThemeSwitch(type, value) {
30
- if (!this.isEnabled) return;
35
+ // SSR guard
36
+ if (!this.isEnabled || typeof window === 'undefined' || typeof performance === 'undefined') {
37
+ return;
38
+ }
31
39
 
32
40
  const startTime = performance.now();
33
-
41
+
34
42
  // Use requestAnimationFrame to measure when the visual change is complete
35
43
  requestAnimationFrame(() => {
36
44
  // Wait for another frame to ensure CSS has been applied
37
45
  requestAnimationFrame(() => {
38
46
  const endTime = performance.now();
39
47
  const duration = endTime - startTime;
40
-
48
+
41
49
  const measurement = {
42
50
  type,
43
51
  value,
44
52
  duration,
45
53
  timestamp: new Date().toISOString(),
46
54
  };
47
-
55
+
48
56
  this.measurements.push(measurement);
49
-
57
+
50
58
  // Keep only last 50 measurements
51
59
  if (this.measurements.length > 50) {
52
60
  this.measurements.shift();
53
61
  }
54
-
62
+
55
63
  // Log if it takes too long
56
64
  if (duration > 100) {
57
65
  console.warn(`Slow ${type} switch detected:`, measurement);
@@ -9,6 +9,9 @@ export type { ThemeMode, ActualThemeMode } from '../contexts/ThemeContext';
9
9
  * Get the current theme mode from CSS variables
10
10
  */
11
11
  export const getCurrentTheme = (): ThemeMode => {
12
+ if (typeof document === 'undefined') {
13
+ return 'system'; // SSR fallback
14
+ }
12
15
  const root = document.documentElement;
13
16
  const theme = root.getAttribute('data-theme') as ThemeMode;
14
17
  return theme || 'system';
@@ -18,9 +21,12 @@ export const getCurrentTheme = (): ThemeMode => {
18
21
  * Set theme mode and update CSS variables
19
22
  */
20
23
  export const setTheme = (theme: ThemeMode): void => {
24
+ if (typeof document === 'undefined' || typeof window === 'undefined') {
25
+ return; // SSR - no-op
26
+ }
21
27
  const root = document.documentElement;
22
28
  root.setAttribute('data-theme', theme);
23
-
29
+
24
30
  // Trigger custom event for theme change
25
31
  window.dispatchEvent(new CustomEvent('themeChange', { detail: { theme } }));
26
32
  };
@@ -29,6 +35,9 @@ export const setTheme = (theme: ThemeMode): void => {
29
35
  * Get system preference for dark mode
30
36
  */
31
37
  export const getSystemTheme = (): ActualThemeMode => {
38
+ if (typeof window === 'undefined') {
39
+ return 'light'; // SSR fallback
40
+ }
32
41
  return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
33
42
  };
34
43
 
@@ -46,9 +55,12 @@ export const getComputedTheme = (theme: ThemeMode = getCurrentTheme()): ActualTh
46
55
  * Initialize theme system
47
56
  */
48
57
  export const initializeTheme = (): void => {
58
+ if (typeof window === 'undefined' || typeof localStorage === 'undefined') {
59
+ return; // SSR - no-op
60
+ }
49
61
  const savedTheme = (localStorage.getItem('theme') as ThemeMode) || 'system';
50
62
  setTheme(savedTheme);
51
-
63
+
52
64
  // Listen for system theme changes
53
65
  window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
54
66
  if (getCurrentTheme() === 'system') {
@@ -62,6 +74,9 @@ export const initializeTheme = (): void => {
62
74
  * Save theme preference to localStorage
63
75
  */
64
76
  export const saveThemePreference = (theme: ThemeMode): void => {
77
+ if (typeof localStorage === 'undefined') {
78
+ return; // SSR - no-op
79
+ }
65
80
  localStorage.setItem('theme', theme);
66
81
  setTheme(theme);
67
82
  };
@@ -1,65 +0,0 @@
1
- /**
2
- * ContainerView - Concrete Implementation Using ViewSchema
3
- *
4
- * A complete rewrite that replaces the abstract class pattern with a concrete
5
- * React component that accepts ViewSchema-typed props and renders all
6
- * comprehensive styling, layout, and behavioral features.
7
- *
8
- * Key Features:
9
- * - Uses ViewSchema as props interface
10
- * - Integrates with existing useBaseProps utility
11
- * - Processes all grid, dimension, spacing, and styling props
12
- * - Handles event conversion from strings to functions
13
- * - Supports children rendering and data binding
14
- * - Serialization support via component metadata
15
- *
16
- * Copyright (c) 2025 QwickApps.com. All rights reserved.
17
- */
18
- import type { ModelProps, WithDataBinding } from '@qwickapps/schema';
19
- import React, { FocusEventHandler, MouseEventHandler } from 'react';
20
- import ViewSchema from '../../schemas/ViewSchema';
21
- /**
22
- * Props interface for ContainerView component
23
- * Combines ViewSchema properties with React-specific props
24
- */
25
- import type { SxProps, Theme } from '@mui/material/styles';
26
- export interface ModelViewProps extends ModelProps<ViewSchema>, WithDataBinding {
27
- /** React children to render inside the component */
28
- children?: React.ReactNode;
29
- sx?: SxProps<Theme>;
30
- style?: React.CSSProperties;
31
- onClick?: MouseEventHandler<any>;
32
- onMouseEnter?: MouseEventHandler<any>;
33
- onMouseLeave?: MouseEventHandler<any>;
34
- onFocus?: FocusEventHandler<any>;
35
- onBlur?: FocusEventHandler<any>;
36
- }
37
- /**
38
- * ContainerView - Concrete React component implementing ViewSchema
39
- *
40
- * This component accepts ViewSchema props and renders a fully styled
41
- * container with all the comprehensive features from BaseComponentProps.
42
- */
43
- export declare function ContainerView({ children, dataSource, bindingOptions, ...schemaProps }: ModelViewProps): import("react/jsx-runtime").JSX.Element;
44
- export declare namespace ContainerView {
45
- var tagName: string;
46
- var version: string;
47
- var fromJson: (jsonData: any) => React.ReactElement;
48
- var toJson: (props: ModelViewProps) => any;
49
- }
50
- /**
51
- * Type helper for ContainerView component constructor
52
- * Provides compatibility with existing registration patterns
53
- */
54
- export interface ContainerViewConstructor {
55
- (props: ModelViewProps): React.ReactElement;
56
- readonly tagName: string;
57
- readonly version: string;
58
- fromJson(jsonData: any): React.ReactElement;
59
- toJson?(props: ModelViewProps): any;
60
- }
61
- /**
62
- * Export the new functional component as default
63
- */
64
- export default ContainerView;
65
- //# sourceMappingURL=ContainerView.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContainerView.d.ts","sourceRoot":"","sources":["../../../src/components/base/ContainerView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAE7E,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAElD;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,cAAe,SAAQ,UAAU,CAAC,UAAU,CAAC,EAAE,eAAe;IAC7E,oDAAoD;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;CACjC;AA0ED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,UAAU,EACV,cAAc,EACd,GAAG,WAAW,EACf,EAAE,cAAc,2CAgChB;yBArCe,aAAa;;;6BAgDO,GAAG,KAAG,KAAK,CAAC,YAAY;wBAO7B,cAAc,KAAG,GAAG;;AAsBnD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC;IAC5C,MAAM,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,CAAC;CACrC;AAED;;GAEG;AACH,eAAe,aAAa,CAAC"}