@qwickapps/react-framework 1.4.8 β†’ 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (730) hide show
  1. package/README.md +36 -3
  2. package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts +9 -9
  3. package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +1 -1
  4. package/dist/components/AccessibilityProvider.d.ts +1 -1
  5. package/dist/components/AccessibilityProvider.d.ts.map +1 -1
  6. package/dist/components/ErrorBoundary.d.ts +1 -1
  7. package/dist/components/Html.d.ts +8 -8
  8. package/dist/components/Html.d.ts.map +1 -1
  9. package/dist/components/Logo.d.ts +2 -2
  10. package/dist/components/Logo.d.ts.map +1 -1
  11. package/dist/components/Markdown.d.ts +5 -5
  12. package/dist/components/Markdown.d.ts.map +1 -1
  13. package/dist/components/ProductLogo.d.ts +60 -0
  14. package/dist/components/ProductLogo.d.ts.map +1 -0
  15. package/dist/components/QwickAppsLogo.d.ts +1 -1
  16. package/dist/components/QwickAppsLogo.d.ts.map +1 -1
  17. package/dist/components/ResponsiveMenu.d.ts.map +1 -1
  18. package/dist/components/SafeSpan.d.ts +4 -4
  19. package/dist/components/SafeSpan.d.ts.map +1 -1
  20. package/dist/components/Scaffold.d.ts.map +1 -1
  21. package/dist/components/base/Container.d.ts +3 -2
  22. package/dist/components/base/Container.d.ts.map +1 -1
  23. package/dist/components/base/ModelView.d.ts +16 -16
  24. package/dist/components/base/ModelView.d.ts.map +1 -1
  25. package/dist/components/base/index.d.ts +1 -1
  26. package/dist/components/base/index.d.ts.map +1 -1
  27. package/dist/components/blocks/Article.d.ts +4 -18
  28. package/dist/components/blocks/Article.d.ts.map +1 -1
  29. package/dist/components/blocks/CardListGrid.d.ts +3 -3
  30. package/dist/components/blocks/CardListGrid.d.ts.map +1 -1
  31. package/dist/components/blocks/Code.d.ts +5 -31
  32. package/dist/components/blocks/Code.d.ts.map +1 -1
  33. package/dist/components/blocks/Content.d.ts +2 -17
  34. package/dist/components/blocks/Content.d.ts.map +1 -1
  35. package/dist/components/blocks/CoverImageHeader.d.ts +2 -12
  36. package/dist/components/blocks/CoverImageHeader.d.ts.map +1 -1
  37. package/dist/components/blocks/FeatureCard.d.ts +0 -17
  38. package/dist/components/blocks/FeatureCard.d.ts.map +1 -1
  39. package/dist/components/blocks/FeatureGrid.d.ts.map +1 -1
  40. package/dist/components/blocks/Footer.d.ts +2 -14
  41. package/dist/components/blocks/Footer.d.ts.map +1 -1
  42. package/dist/components/blocks/HeroBlock.d.ts +35 -26
  43. package/dist/components/blocks/HeroBlock.d.ts.map +1 -1
  44. package/dist/components/blocks/Image.d.ts +23 -23
  45. package/dist/components/blocks/Image.d.ts.map +1 -1
  46. package/dist/components/blocks/PageBannerHeader.d.ts +2 -13
  47. package/dist/components/blocks/PageBannerHeader.d.ts.map +1 -1
  48. package/dist/components/blocks/ProductCard.d.ts +0 -9
  49. package/dist/components/blocks/ProductCard.d.ts.map +1 -1
  50. package/dist/components/blocks/Section.d.ts +16 -24
  51. package/dist/components/blocks/Section.d.ts.map +1 -1
  52. package/dist/components/blocks/Text.d.ts +5 -20
  53. package/dist/components/blocks/Text.d.ts.map +1 -1
  54. package/dist/components/buttons/Button.d.ts +19 -23
  55. package/dist/components/buttons/Button.d.ts.map +1 -1
  56. package/dist/components/buttons/PaletteSwitcher.d.ts +2 -2
  57. package/dist/components/buttons/PaletteSwitcher.d.ts.map +1 -1
  58. package/dist/components/buttons/ThemeSwitcher.d.ts +2 -2
  59. package/dist/components/buttons/ThemeSwitcher.d.ts.map +1 -1
  60. package/dist/components/dialogs/Dialog.d.ts +35 -0
  61. package/dist/components/dialogs/Dialog.d.ts.map +1 -0
  62. package/dist/components/dialogs/index.d.ts +8 -0
  63. package/dist/components/dialogs/index.d.ts.map +1 -0
  64. package/dist/components/forms/Captcha.d.ts +55 -0
  65. package/dist/components/forms/Captcha.d.ts.map +1 -0
  66. package/dist/components/forms/FormBlock.d.ts +6 -6
  67. package/dist/components/forms/FormBlock.d.ts.map +1 -1
  68. package/dist/components/forms/FormCheckbox.d.ts +27 -0
  69. package/dist/components/forms/FormCheckbox.d.ts.map +1 -0
  70. package/dist/components/forms/FormField.d.ts +43 -0
  71. package/dist/components/forms/FormField.d.ts.map +1 -0
  72. package/dist/components/forms/FormSelect.d.ts +35 -0
  73. package/dist/components/forms/FormSelect.d.ts.map +1 -0
  74. package/dist/components/forms/index.d.ts +8 -0
  75. package/dist/components/forms/index.d.ts.map +1 -1
  76. package/dist/components/index.d.ts +10 -2
  77. package/dist/components/index.d.ts.map +1 -1
  78. package/dist/components/input/ChoiceInputField.d.ts +13 -19
  79. package/dist/components/input/ChoiceInputField.d.ts.map +1 -1
  80. package/dist/components/input/HtmlInputField.d.ts +16 -17
  81. package/dist/components/input/HtmlInputField.d.ts.map +1 -1
  82. package/dist/components/input/SelectInputField.d.ts +14 -17
  83. package/dist/components/input/SelectInputField.d.ts.map +1 -1
  84. package/dist/components/input/SwitchInputField.d.ts +11 -18
  85. package/dist/components/input/SwitchInputField.d.ts.map +1 -1
  86. package/dist/components/input/TextInputField.d.ts +16 -19
  87. package/dist/components/input/TextInputField.d.ts.map +1 -1
  88. package/dist/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +1 -1
  89. package/dist/components/layout/GridCell.d.ts +18 -19
  90. package/dist/components/layout/GridCell.d.ts.map +1 -1
  91. package/dist/components/layout/GridLayout.d.ts +36 -25
  92. package/dist/components/layout/GridLayout.d.ts.map +1 -1
  93. package/dist/components/menu/MenuItem.d.ts +2 -2
  94. package/dist/components/menu/MenuItem.d.ts.map +1 -1
  95. package/dist/components/pages/FormPage.d.ts.map +1 -1
  96. package/dist/components/pages/Page.d.ts +1 -1
  97. package/dist/components/pages/Page.d.ts.map +1 -1
  98. package/dist/components/shared/createSerializableView.d.ts +22 -10
  99. package/dist/components/shared/createSerializableView.d.ts.map +1 -1
  100. package/dist/components/shared/viewProps.d.ts +3 -3
  101. package/dist/components/shared/viewProps.d.ts.map +1 -1
  102. package/dist/config/AppConfig.d.ts +2 -2
  103. package/dist/config/AppConfig.d.ts.map +1 -1
  104. package/dist/config/types.d.ts +1 -1
  105. package/dist/config/types.d.ts.map +1 -1
  106. package/dist/contexts/DataContext.d.ts +3 -3
  107. package/dist/contexts/DataContext.d.ts.map +1 -1
  108. package/dist/contexts/PaletteContext.d.ts.map +1 -1
  109. package/dist/contexts/ThemeContext.d.ts.map +1 -1
  110. package/dist/hooks/useDataBinding.d.ts +2 -2
  111. package/dist/hooks/useDataBinding.d.ts.map +1 -1
  112. package/dist/hooks/usePrintMode.d.ts +2 -2
  113. package/dist/hooks/usePrintMode.d.ts.map +1 -1
  114. package/dist/index.css +1 -1
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.esm.css +1 -1
  117. package/dist/index.esm.js +4929 -2942
  118. package/dist/index.js +4426 -2410
  119. package/dist/palettes/manifest.json +90 -0
  120. package/dist/palettes/palette-autumn.1.4.9.min.css +1 -0
  121. package/dist/palettes/palette-autumn.1.5.0.css +172 -0
  122. package/dist/palettes/palette-autumn.1.5.0.min.css +1 -0
  123. package/dist/palettes/palette-autumn.latest.css +172 -0
  124. package/dist/palettes/palette-autumn.latest.min.css +1 -0
  125. package/dist/palettes/palette-cosmic.1.4.9.min.css +1 -0
  126. package/dist/palettes/palette-cosmic.1.5.0.css +172 -0
  127. package/dist/palettes/palette-cosmic.1.5.0.min.css +1 -0
  128. package/dist/palettes/palette-cosmic.latest.css +172 -0
  129. package/dist/palettes/palette-cosmic.latest.min.css +1 -0
  130. package/dist/palettes/palette-default.1.4.9.min.css +1 -0
  131. package/dist/palettes/palette-default.1.5.0.css +178 -0
  132. package/dist/palettes/palette-default.1.5.0.min.css +1 -0
  133. package/dist/palettes/palette-default.latest.css +178 -0
  134. package/dist/palettes/palette-default.latest.min.css +1 -0
  135. package/dist/palettes/palette-ocean.1.4.9.min.css +1 -0
  136. package/dist/palettes/palette-ocean.1.5.0.css +172 -0
  137. package/dist/palettes/palette-ocean.1.5.0.min.css +1 -0
  138. package/dist/palettes/palette-ocean.latest.css +172 -0
  139. package/dist/palettes/palette-ocean.latest.min.css +1 -0
  140. package/dist/palettes/palette-spring.1.4.9.min.css +1 -0
  141. package/dist/palettes/palette-spring.1.5.0.css +160 -0
  142. package/dist/palettes/palette-spring.1.5.0.min.css +1 -0
  143. package/dist/palettes/palette-spring.latest.css +160 -0
  144. package/dist/palettes/palette-spring.latest.min.css +1 -0
  145. package/dist/palettes/palette-winter.1.4.9.min.css +1 -0
  146. package/dist/palettes/palette-winter.1.5.0.css +172 -0
  147. package/dist/palettes/palette-winter.1.5.0.min.css +1 -0
  148. package/dist/palettes/palette-winter.latest.css +172 -0
  149. package/dist/palettes/palette-winter.latest.min.css +1 -0
  150. package/dist/schemas/ButtonSchema.d.ts +5 -2
  151. package/dist/schemas/ButtonSchema.d.ts.map +1 -1
  152. package/dist/schemas/CardListGridSchema.d.ts +4 -4
  153. package/dist/schemas/CardListGridSchema.d.ts.map +1 -1
  154. package/dist/schemas/ChoiceInputFieldSchema.d.ts +2 -2
  155. package/dist/schemas/ChoiceInputFieldSchema.d.ts.map +1 -1
  156. package/dist/schemas/CodeSchema.d.ts +1 -2
  157. package/dist/schemas/CodeSchema.d.ts.map +1 -1
  158. package/dist/schemas/FormBlockSchema.d.ts +2 -2
  159. package/dist/schemas/FormBlockSchema.d.ts.map +1 -1
  160. package/dist/schemas/GridCellSchema.d.ts +2 -4
  161. package/dist/schemas/GridCellSchema.d.ts.map +1 -1
  162. package/dist/schemas/GridLayoutSchema.d.ts +3 -5
  163. package/dist/schemas/GridLayoutSchema.d.ts.map +1 -1
  164. package/dist/schemas/HeroBlockSchema.d.ts +2 -2
  165. package/dist/schemas/HeroBlockSchema.d.ts.map +1 -1
  166. package/dist/schemas/HtmlInputFieldSchema.d.ts +2 -2
  167. package/dist/schemas/HtmlInputFieldSchema.d.ts.map +1 -1
  168. package/dist/schemas/ImageSchema.d.ts +2 -2
  169. package/dist/schemas/ImageSchema.d.ts.map +1 -1
  170. package/dist/schemas/SectionSchema.d.ts +2 -4
  171. package/dist/schemas/SectionSchema.d.ts.map +1 -1
  172. package/dist/schemas/SelectInputFieldSchema.d.ts +2 -2
  173. package/dist/schemas/SelectInputFieldSchema.d.ts.map +1 -1
  174. package/dist/schemas/SwitchInputFieldSchema.d.ts +2 -2
  175. package/dist/schemas/SwitchInputFieldSchema.d.ts.map +1 -1
  176. package/dist/schemas/TextInputFieldSchema.d.ts +2 -2
  177. package/dist/schemas/TextInputFieldSchema.d.ts.map +1 -1
  178. package/dist/schemas/ViewSchema.d.ts +8 -7
  179. package/dist/schemas/ViewSchema.d.ts.map +1 -1
  180. package/dist/schemas/transformers/ComponentTransformer.d.ts +2 -2
  181. package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -1
  182. package/dist/schemas/transformers/ReactNodeTransformer.d.ts +2 -2
  183. package/dist/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -1
  184. package/dist/schemas/transformers/registry.d.ts +0 -7
  185. package/dist/schemas/transformers/registry.d.ts.map +1 -1
  186. package/dist/schemas/types/Serializable.d.ts +3 -3
  187. package/dist/schemas/types/Serializable.d.ts.map +1 -1
  188. package/dist/stories/_templates/SerializationTemplate.d.ts.map +1 -0
  189. package/dist/types/CollapsibleLayout.d.ts +3 -3
  190. package/dist/types/CollapsibleLayout.d.ts.map +1 -1
  191. package/dist/types/ContentProxy.d.ts +4 -4
  192. package/dist/types/ContentProxy.d.ts.map +1 -1
  193. package/dist/types/DataTypes.d.ts +4 -4
  194. package/dist/types/DataTypes.d.ts.map +1 -1
  195. package/dist/types/TemplateProvider.d.ts +1 -1
  196. package/dist/types/TemplateProvider.d.ts.map +1 -1
  197. package/dist/types/TemplateResolver.d.ts +1 -1
  198. package/dist/types/TemplateResolver.d.ts.map +1 -1
  199. package/dist/utils/htmlTransform.d.ts +1 -1
  200. package/dist/utils/htmlTransform.d.ts.map +1 -1
  201. package/dist/utils/iconMap.d.ts +48 -0
  202. package/dist/utils/iconMap.d.ts.map +1 -0
  203. package/dist/utils/index.d.ts +3 -0
  204. package/dist/utils/index.d.ts.map +1 -1
  205. package/dist/utils/logger.d.ts +11 -7
  206. package/dist/utils/logger.d.ts.map +1 -1
  207. package/dist/utils/paletteLoader.d.ts +34 -0
  208. package/dist/utils/paletteLoader.d.ts.map +1 -0
  209. package/dist/utils/paletteManifest.d.ts +51 -0
  210. package/dist/utils/paletteManifest.d.ts.map +1 -0
  211. package/dist/utils/paletteUtils.d.ts.map +1 -1
  212. package/dist/utils/reactUtils.d.ts +12 -6
  213. package/dist/utils/reactUtils.d.ts.map +1 -1
  214. package/dist/utils/spacing.d.ts +2 -2
  215. package/dist/utils/spacing.d.ts.map +1 -1
  216. package/dist/utils/themePerformanceMonitor.d.ts.map +1 -1
  217. package/dist/utils/themeUtils.d.ts.map +1 -1
  218. package/package.json +28 -9
  219. package/scripts/build-palettes.cjs +120 -0
  220. package/src/__tests__/components/Article.test.tsx +1 -1
  221. package/src/__tests__/components/Breadcrumbs.test.tsx +2 -2
  222. package/src/__tests__/components/Button.test.tsx +3 -3
  223. package/src/__tests__/components/CardListGrid.test.tsx +5 -5
  224. package/src/__tests__/components/ChoiceInputField.test.tsx +2 -2
  225. package/src/__tests__/components/Code.test.tsx +2 -2
  226. package/src/__tests__/components/Content.integration.test.tsx +1 -1
  227. package/src/__tests__/components/Content.test.tsx +5 -5
  228. package/src/__tests__/components/CoverImageHeader.test.tsx +3 -3
  229. package/src/__tests__/components/FeatureCard.integration.test.tsx +1 -1
  230. package/src/__tests__/components/FeatureGrid.integration.test.tsx +1 -1
  231. package/src/__tests__/components/FeatureGrid.test.tsx +3 -3
  232. package/src/__tests__/components/Footer.test.tsx +3 -3
  233. package/src/__tests__/components/FormBlock.test.tsx +2 -2
  234. package/src/__tests__/components/HeroBlock.integration.test.tsx +1 -1
  235. package/src/__tests__/components/HeroBlock.test.tsx +4 -4
  236. package/src/__tests__/components/HtmlInputField.test.tsx +8 -8
  237. package/src/__tests__/components/PageBannerHeader.test.tsx +7 -7
  238. package/src/__tests__/components/PaletteSwitcher.test.tsx +3 -3
  239. package/src/__tests__/components/ProductCard.test.tsx +1 -1
  240. package/src/__tests__/components/Section.integration.test.tsx +1 -1
  241. package/src/__tests__/components/Section.test.tsx +1 -1
  242. package/src/__tests__/components/SelectInputField.test.tsx +2 -2
  243. package/src/__tests__/components/TextInputField.test.tsx +4 -4
  244. package/src/__tests__/components/ThemeSwitcher.test.tsx +3 -3
  245. package/src/__tests__/components/base/Container.test.tsx +22 -21
  246. package/src/__tests__/components/blocks/Code.performance.test.tsx +10 -10
  247. package/src/__tests__/components/blocks/Code.serialization.test.tsx +9 -9
  248. package/src/__tests__/components/blocks/HeroBlock.serialization.test.tsx +2 -3
  249. package/src/__tests__/components/blocks/Image.serialization.test.tsx +8 -7
  250. package/src/__tests__/components/blocks/Section.serialization.test.tsx +8 -8
  251. package/src/__tests__/components/blocks/Text.performance.test.tsx +5 -5
  252. package/src/__tests__/components/blocks/Text.serialization.test.tsx +9 -9
  253. package/src/__tests__/components/buttons/Button.serialization.test.tsx +4 -4
  254. package/src/__tests__/components/input/FormComponents.serialization.test.tsx +9 -9
  255. package/src/__tests__/components/input/SelectInputField.serialization.test.tsx +16 -18
  256. package/src/__tests__/components/input/TextInputField.serialization.test.tsx +9 -9
  257. package/src/__tests__/components/layout/CollapsibleLayout.test.tsx +5 -9
  258. package/src/__tests__/components/layout/GridCell.serialization.test.tsx +5 -5
  259. package/src/__tests__/components/layout/GridLayout.serialization.test.tsx +5 -5
  260. package/src/__tests__/hooks/usePrintMode.test.ts +1 -0
  261. package/src/__tests__/schemas/builders.test.ts +2 -2
  262. package/src/__tests__/schemas/transformers/ComponentSerializationPatterns.test.tsx +28 -28
  263. package/src/__tests__/schemas/transformers/ComponentTransformer.htmlPatterns.test.ts +5 -5
  264. package/src/__tests__/schemas/transformers/ComponentTransformer.test.ts +11 -11
  265. package/src/__tests__/schemas/transformers/CrossBrowserCompatibility.test.ts +10 -10
  266. package/src/__tests__/schemas/transformers/MockSerializableComponent.ts +15 -15
  267. package/src/__tests__/schemas/transformers/RealWorldScenarios.test.tsx +19 -19
  268. package/src/__tests__/schemas/transformers/SerializationErrorHandling.test.ts +15 -15
  269. package/src/__tests__/schemas/transformers/SerializationIntegration.test.tsx +19 -21
  270. package/src/__tests__/schemas/transformers/SerializationPerformance.test.ts +15 -15
  271. package/src/__tests__/schemas/transformers/TestAutomation.test.ts +3 -3
  272. package/src/__tests__/schemas/transformers/nested-serialization.test.tsx +1 -1
  273. package/src/__tests__/schemas/transformers/round-trip-component-serialization.test.tsx +10 -10
  274. package/src/__tests__/utils/optional-logging.test.ts +3 -3
  275. package/src/components/AccessibilityProvider.tsx +4 -2
  276. package/src/components/ErrorBoundary.tsx +1 -1
  277. package/src/components/Html.tsx +14 -17
  278. package/src/components/Logo.tsx +44 -33
  279. package/src/components/Markdown.tsx +9 -9
  280. package/src/components/ProductLogo.tsx +118 -0
  281. package/src/components/QwickApp.css +46 -1063
  282. package/src/components/QwickApp.tsx +1 -1
  283. package/src/components/QwickAppsLogo.tsx +1 -1
  284. package/src/components/ResponsiveMenu.tsx +13 -2
  285. package/src/components/SafeSpan.tsx +8 -9
  286. package/src/components/Scaffold.css +14 -0
  287. package/src/components/Scaffold.tsx +71 -27
  288. package/src/components/base/Container.tsx +2 -2
  289. package/src/components/base/ModelView.tsx +28 -27
  290. package/src/components/base/index.ts +1 -1
  291. package/src/components/blocks/Article.tsx +251 -36
  292. package/src/components/blocks/CardListGrid.tsx +18 -14
  293. package/src/components/blocks/Code.tsx +18 -13
  294. package/src/components/blocks/Content.tsx +15 -10
  295. package/src/components/blocks/CoverImageHeader.tsx +15 -10
  296. package/src/components/blocks/FeatureCard.tsx +16 -11
  297. package/src/components/blocks/FeatureGrid.tsx +13 -8
  298. package/src/components/blocks/Footer.tsx +44 -35
  299. package/src/components/blocks/HeroBlock.tsx +12 -13
  300. package/src/components/blocks/Image.tsx +16 -8
  301. package/src/components/blocks/PageBannerHeader.tsx +16 -12
  302. package/src/components/blocks/ProductCard.tsx +32 -25
  303. package/src/components/blocks/Section.tsx +21 -13
  304. package/src/components/blocks/Text.tsx +33 -15
  305. package/src/components/buttons/Button.tsx +110 -30
  306. package/src/components/buttons/PaletteSwitcher.tsx +11 -8
  307. package/src/components/buttons/ThemeSwitcher.tsx +20 -16
  308. package/src/components/dialogs/Dialog.tsx +126 -0
  309. package/src/components/dialogs/index.ts +15 -0
  310. package/src/components/forms/Captcha.tsx +291 -0
  311. package/src/components/forms/FormBlock.tsx +22 -15
  312. package/src/components/forms/FormCheckbox.tsx +116 -0
  313. package/src/components/forms/FormField.tsx +180 -0
  314. package/src/components/forms/FormSelect.tsx +140 -0
  315. package/src/components/forms/index.ts +13 -1
  316. package/src/components/index.ts +13 -2
  317. package/src/components/input/ChoiceInputField.tsx +1 -2
  318. package/src/components/input/HtmlInputField.tsx +2 -3
  319. package/src/components/input/SelectInputField.tsx +31 -5
  320. package/src/components/input/SwitchInputField.tsx +3 -4
  321. package/src/components/input/TextField.tsx +2 -2
  322. package/src/components/input/TextInputField.tsx +32 -6
  323. package/src/components/layout/CollapsibleLayout/CollapsibleLayout.tsx +13 -13
  324. package/src/components/layout/GridCell.tsx +10 -9
  325. package/src/components/layout/GridCellWrapper.tsx +1 -1
  326. package/src/components/layout/GridLayout.tsx +29 -32
  327. package/src/components/menu/MenuItem.tsx +2 -2
  328. package/src/components/pages/FormPage.tsx +0 -1
  329. package/src/components/pages/Page.tsx +2 -2
  330. package/src/components/shared/createSerializableView.tsx +24 -23
  331. package/src/components/shared/viewProps.ts +11 -11
  332. package/src/config/AppConfig.ts +2 -2
  333. package/src/config/__tests__/AppConfig.test.ts +3 -3
  334. package/src/config/__tests__/AppConfigBuilder.test.ts +10 -11
  335. package/src/config/types.ts +1 -1
  336. package/src/contexts/DataContext.tsx +58 -52
  337. package/src/contexts/PaletteContext.tsx +22 -9
  338. package/src/contexts/PrintModeContext.tsx +4 -4
  339. package/src/contexts/ThemeContext.tsx +3 -2
  340. package/src/hooks/useBaseProps.ts +10 -10
  341. package/src/hooks/useDataBinding.ts +15 -18
  342. package/src/hooks/usePrintMode.ts +3 -3
  343. package/src/index.ts +2 -0
  344. package/src/palettes/manifest.json +72 -0
  345. package/src/palettes/manifest.schema.json +74 -0
  346. package/src/schemas/ButtonSchema.ts +33 -0
  347. package/src/schemas/CardListGridSchema.ts +3 -3
  348. package/src/schemas/CodeSchema.ts +0 -1
  349. package/src/schemas/FeatureGridSchema.ts +1 -1
  350. package/src/schemas/FormBlockSchema.ts +1 -1
  351. package/src/schemas/GridCellSchema.ts +0 -1
  352. package/src/schemas/GridLayoutSchema.ts +0 -1
  353. package/src/schemas/SectionSchema.ts +0 -1
  354. package/src/schemas/ViewSchema.ts +7 -7
  355. package/src/schemas/transformers/ComponentTransformer.ts +39 -28
  356. package/src/schemas/transformers/ReactNodeTransformer.ts +18 -17
  357. package/src/schemas/transformers/registry.ts +28 -24
  358. package/src/schemas/types/Serializable.ts +3 -3
  359. package/src/setupTests.js +9 -0
  360. package/src/stories/AccessibilityProvider.stories.tsx +0 -1
  361. package/src/stories/Article.stories.tsx +1 -1
  362. package/src/stories/CardListGrid.stories.tsx +1 -1
  363. package/src/stories/ChoiceInputField.stories.tsx +2 -2
  364. package/src/stories/Code.stories.tsx +2 -3
  365. package/src/stories/CollapsibleLayout.stories.tsx +41 -37
  366. package/src/stories/Container.stories.tsx +1 -2
  367. package/src/stories/DataBinding.advanced.stories.tsx +15 -9
  368. package/src/stories/DataProvider.stories.tsx +33 -16
  369. package/src/stories/ErrorBoundary.stories.tsx +28 -26
  370. package/src/stories/FeatureGrid.stories.tsx +0 -1
  371. package/src/stories/FormBlock.stories.tsx +8 -8
  372. package/src/stories/FormComponents.stories.tsx +15 -11
  373. package/src/stories/GridCell.stories.tsx +5 -5
  374. package/src/stories/GridLayout.stories.tsx +5 -5
  375. package/src/stories/Image.stories.tsx +5 -7
  376. package/src/stories/Introduction.stories.tsx +0 -1
  377. package/src/stories/ModelView.stories.tsx +7 -7
  378. package/src/stories/SafeSpan.stories.tsx +7 -3
  379. package/src/stories/Section.stories.tsx +2 -2
  380. package/src/stories/Text.stories.tsx +1 -3
  381. package/src/stories/_templates/SerializationTemplate.tsx +0 -1
  382. package/src/templates/TemplateResolver.ts +2 -2
  383. package/src/types/CollapsibleLayout.ts +2 -2
  384. package/src/types/ContentProxy.ts +6 -6
  385. package/src/types/DataTypes.ts +4 -4
  386. package/src/types/TemplateProvider.ts +1 -1
  387. package/src/types/TemplateResolver.ts +1 -1
  388. package/src/utils/htmlTransform.tsx +17 -11
  389. package/src/utils/iconMap.tsx +221 -0
  390. package/src/utils/index.ts +4 -1
  391. package/src/utils/logger.ts +20 -14
  392. package/src/utils/paletteLoader.ts +218 -0
  393. package/src/utils/paletteManifest.ts +268 -0
  394. package/src/utils/paletteUtils.ts +19 -1
  395. package/src/utils/reactUtils.tsx +34 -33
  396. package/src/utils/spacing.ts +16 -17
  397. package/src/utils/themePerformanceMonitor.js +14 -6
  398. package/src/utils/themeUtils.ts +17 -2
  399. package/dist/components/base/ContainerView.d.ts +0 -65
  400. package/dist/components/base/ContainerView.d.ts.map +0 -1
  401. package/dist/components/blocks/Code-factory.d.ts +0 -22
  402. package/dist/components/blocks/Code-factory.d.ts.map +0 -1
  403. package/dist/components/blocks/Code-old.d.ts +0 -31
  404. package/dist/components/blocks/Code-old.d.ts.map +0 -1
  405. package/dist/qa/ConsoleWarningTest.d.ts +0 -5
  406. package/dist/qa/ConsoleWarningTest.d.ts.map +0 -1
  407. package/dist/qa/StorageKeyTest.d.ts +0 -6
  408. package/dist/qa/StorageKeyTest.d.ts.map +0 -1
  409. package/dist/qa/ThemeStorageKeyTest.d.ts +0 -6
  410. package/dist/qa/ThemeStorageKeyTest.d.ts.map +0 -1
  411. package/dist/schemas/ViewModelSchema.d.ts +0 -63
  412. package/dist/schemas/ViewModelSchema.d.ts.map +0 -1
  413. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts +0 -66
  414. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts.map +0 -1
  415. package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts +0 -66
  416. package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +0 -1
  417. package/dist/src/components/AccessibilityChecker.d.ts +0 -12
  418. package/dist/src/components/AccessibilityChecker.d.ts.map +0 -1
  419. package/dist/src/components/AccessibilityProvider.d.ts +0 -64
  420. package/dist/src/components/AccessibilityProvider.d.ts.map +0 -1
  421. package/dist/src/components/Breadcrumbs.d.ts +0 -39
  422. package/dist/src/components/Breadcrumbs.d.ts.map +0 -1
  423. package/dist/src/components/ErrorBoundary.d.ts +0 -46
  424. package/dist/src/components/ErrorBoundary.d.ts.map +0 -1
  425. package/dist/src/components/Html.d.ts +0 -58
  426. package/dist/src/components/Html.d.ts.map +0 -1
  427. package/dist/src/components/Logo.d.ts +0 -56
  428. package/dist/src/components/Logo.d.ts.map +0 -1
  429. package/dist/src/components/Markdown.d.ts +0 -51
  430. package/dist/src/components/Markdown.d.ts.map +0 -1
  431. package/dist/src/components/QwickApp.d.ts +0 -69
  432. package/dist/src/components/QwickApp.d.ts.map +0 -1
  433. package/dist/src/components/QwickAppsLogo.d.ts +0 -25
  434. package/dist/src/components/QwickAppsLogo.d.ts.map +0 -1
  435. package/dist/src/components/QwickIcon.d.ts +0 -23
  436. package/dist/src/components/QwickIcon.d.ts.map +0 -1
  437. package/dist/src/components/ResponsiveMenu.d.ts +0 -38
  438. package/dist/src/components/ResponsiveMenu.d.ts.map +0 -1
  439. package/dist/src/components/SafeSpan.d.ts +0 -29
  440. package/dist/src/components/SafeSpan.d.ts.map +0 -1
  441. package/dist/src/components/Scaffold.d.ts +0 -57
  442. package/dist/src/components/Scaffold.d.ts.map +0 -1
  443. package/dist/src/components/base/Container.d.ts +0 -33
  444. package/dist/src/components/base/Container.d.ts.map +0 -1
  445. package/dist/src/components/base/ModelView.d.ts +0 -92
  446. package/dist/src/components/base/ModelView.d.ts.map +0 -1
  447. package/dist/src/components/base/index.d.ts +0 -12
  448. package/dist/src/components/base/index.d.ts.map +0 -1
  449. package/dist/src/components/blocks/Article.d.ts +0 -32
  450. package/dist/src/components/blocks/Article.d.ts.map +0 -1
  451. package/dist/src/components/blocks/CardListGrid.d.ts +0 -23
  452. package/dist/src/components/blocks/CardListGrid.d.ts.map +0 -1
  453. package/dist/src/components/blocks/Code.d.ts +0 -37
  454. package/dist/src/components/blocks/Code.d.ts.map +0 -1
  455. package/dist/src/components/blocks/Content.d.ts +0 -24
  456. package/dist/src/components/blocks/Content.d.ts.map +0 -1
  457. package/dist/src/components/blocks/CoverImageHeader.d.ts +0 -44
  458. package/dist/src/components/blocks/CoverImageHeader.d.ts.map +0 -1
  459. package/dist/src/components/blocks/FeatureCard.d.ts +0 -66
  460. package/dist/src/components/blocks/FeatureCard.d.ts.map +0 -1
  461. package/dist/src/components/blocks/FeatureGrid.d.ts +0 -48
  462. package/dist/src/components/blocks/FeatureGrid.d.ts.map +0 -1
  463. package/dist/src/components/blocks/Footer.d.ts +0 -56
  464. package/dist/src/components/blocks/Footer.d.ts.map +0 -1
  465. package/dist/src/components/blocks/HeroBlock.d.ts +0 -55
  466. package/dist/src/components/blocks/HeroBlock.d.ts.map +0 -1
  467. package/dist/src/components/blocks/Image.d.ts +0 -40
  468. package/dist/src/components/blocks/Image.d.ts.map +0 -1
  469. package/dist/src/components/blocks/PageBannerHeader.d.ts +0 -30
  470. package/dist/src/components/blocks/PageBannerHeader.d.ts.map +0 -1
  471. package/dist/src/components/blocks/ProductCard.d.ts +0 -57
  472. package/dist/src/components/blocks/ProductCard.d.ts.map +0 -1
  473. package/dist/src/components/blocks/Section.d.ts +0 -45
  474. package/dist/src/components/blocks/Section.d.ts.map +0 -1
  475. package/dist/src/components/blocks/Text.d.ts +0 -34
  476. package/dist/src/components/blocks/Text.d.ts.map +0 -1
  477. package/dist/src/components/blocks/index.d.ts +0 -41
  478. package/dist/src/components/blocks/index.d.ts.map +0 -1
  479. package/dist/src/components/buttons/Button.d.ts +0 -41
  480. package/dist/src/components/buttons/Button.d.ts.map +0 -1
  481. package/dist/src/components/buttons/PaletteSwitcher.d.ts +0 -24
  482. package/dist/src/components/buttons/PaletteSwitcher.d.ts.map +0 -1
  483. package/dist/src/components/buttons/ThemeSwitcher.d.ts +0 -24
  484. package/dist/src/components/buttons/ThemeSwitcher.d.ts.map +0 -1
  485. package/dist/src/components/buttons/index.d.ts +0 -11
  486. package/dist/src/components/buttons/index.d.ts.map +0 -1
  487. package/dist/src/components/forms/FormBlock.d.ts +0 -51
  488. package/dist/src/components/forms/FormBlock.d.ts.map +0 -1
  489. package/dist/src/components/forms/index.d.ts +0 -8
  490. package/dist/src/components/forms/index.d.ts.map +0 -1
  491. package/dist/src/components/index.d.ts +0 -41
  492. package/dist/src/components/index.d.ts.map +0 -1
  493. package/dist/src/components/input/ChoiceInputField.d.ts +0 -29
  494. package/dist/src/components/input/ChoiceInputField.d.ts.map +0 -1
  495. package/dist/src/components/input/HtmlInputField.d.ts +0 -33
  496. package/dist/src/components/input/HtmlInputField.d.ts.map +0 -1
  497. package/dist/src/components/input/SelectInputField.d.ts +0 -31
  498. package/dist/src/components/input/SelectInputField.d.ts.map +0 -1
  499. package/dist/src/components/input/SwitchInputField.d.ts +0 -27
  500. package/dist/src/components/input/SwitchInputField.d.ts.map +0 -1
  501. package/dist/src/components/input/TextField.d.ts +0 -18
  502. package/dist/src/components/input/TextField.d.ts.map +0 -1
  503. package/dist/src/components/input/TextInputField.d.ts +0 -34
  504. package/dist/src/components/input/TextInputField.d.ts.map +0 -1
  505. package/dist/src/components/input/index.d.ts +0 -19
  506. package/dist/src/components/input/index.d.ts.map +0 -1
  507. package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts +0 -34
  508. package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +0 -1
  509. package/dist/src/components/layout/CollapsibleLayout/index.d.ts +0 -9
  510. package/dist/src/components/layout/CollapsibleLayout/index.d.ts.map +0 -1
  511. package/dist/src/components/layout/GridCell.d.ts +0 -32
  512. package/dist/src/components/layout/GridCell.d.ts.map +0 -1
  513. package/dist/src/components/layout/GridCellWrapper.d.ts +0 -46
  514. package/dist/src/components/layout/GridCellWrapper.d.ts.map +0 -1
  515. package/dist/src/components/layout/GridLayout.d.ts +0 -50
  516. package/dist/src/components/layout/GridLayout.d.ts.map +0 -1
  517. package/dist/src/components/layout/index.d.ts +0 -14
  518. package/dist/src/components/layout/index.d.ts.map +0 -1
  519. package/dist/src/components/menu/Menu.d.ts +0 -1
  520. package/dist/src/components/menu/Menu.d.ts.map +0 -1
  521. package/dist/src/components/menu/MenuItem.d.ts +0 -31
  522. package/dist/src/components/menu/MenuItem.d.ts.map +0 -1
  523. package/dist/src/components/menu/index.d.ts +0 -7
  524. package/dist/src/components/menu/index.d.ts.map +0 -1
  525. package/dist/src/components/pages/FormPage.d.ts +0 -66
  526. package/dist/src/components/pages/FormPage.d.ts.map +0 -1
  527. package/dist/src/components/pages/Page.d.ts +0 -68
  528. package/dist/src/components/pages/Page.d.ts.map +0 -1
  529. package/dist/src/components/pages/index.d.ts +0 -10
  530. package/dist/src/components/pages/index.d.ts.map +0 -1
  531. package/dist/src/components/shared/createSerializableView.d.ts +0 -81
  532. package/dist/src/components/shared/createSerializableView.d.ts.map +0 -1
  533. package/dist/src/components/shared/viewProps.d.ts +0 -37
  534. package/dist/src/components/shared/viewProps.d.ts.map +0 -1
  535. package/dist/src/config/AppConfig.d.ts +0 -49
  536. package/dist/src/config/AppConfig.d.ts.map +0 -1
  537. package/dist/src/config/AppConfigBuilder.d.ts +0 -75
  538. package/dist/src/config/AppConfigBuilder.d.ts.map +0 -1
  539. package/dist/src/config/index.d.ts +0 -13
  540. package/dist/src/config/index.d.ts.map +0 -1
  541. package/dist/src/config/types.d.ts +0 -130
  542. package/dist/src/config/types.d.ts.map +0 -1
  543. package/dist/src/config.d.ts +0 -15
  544. package/dist/src/config.d.ts.map +0 -1
  545. package/dist/src/contexts/DataContext.d.ts +0 -139
  546. package/dist/src/contexts/DataContext.d.ts.map +0 -1
  547. package/dist/src/contexts/DimensionsContext.d.ts +0 -42
  548. package/dist/src/contexts/DimensionsContext.d.ts.map +0 -1
  549. package/dist/src/contexts/PaletteContext.d.ts +0 -53
  550. package/dist/src/contexts/PaletteContext.d.ts.map +0 -1
  551. package/dist/src/contexts/PrintModeContext.d.ts +0 -27
  552. package/dist/src/contexts/PrintModeContext.d.ts.map +0 -1
  553. package/dist/src/contexts/QwickAppContext.d.ts +0 -71
  554. package/dist/src/contexts/QwickAppContext.d.ts.map +0 -1
  555. package/dist/src/contexts/ThemeContext.d.ts +0 -65
  556. package/dist/src/contexts/ThemeContext.d.ts.map +0 -1
  557. package/dist/src/contexts/index.d.ts +0 -11
  558. package/dist/src/contexts/index.d.ts.map +0 -1
  559. package/dist/src/hooks/index.d.ts +0 -12
  560. package/dist/src/hooks/index.d.ts.map +0 -1
  561. package/dist/src/hooks/useBaseProps.d.ts +0 -101
  562. package/dist/src/hooks/useBaseProps.d.ts.map +0 -1
  563. package/dist/src/hooks/useDataBinding.d.ts +0 -22
  564. package/dist/src/hooks/useDataBinding.d.ts.map +0 -1
  565. package/dist/src/hooks/usePrintMode.d.ts +0 -39
  566. package/dist/src/hooks/usePrintMode.d.ts.map +0 -1
  567. package/dist/src/index.d.ts +0 -9
  568. package/dist/src/index.d.ts.map +0 -1
  569. package/dist/src/palettes/PaletteAutumn.d.ts +0 -10
  570. package/dist/src/palettes/PaletteAutumn.d.ts.map +0 -1
  571. package/dist/src/palettes/PaletteCosmic.d.ts +0 -10
  572. package/dist/src/palettes/PaletteCosmic.d.ts.map +0 -1
  573. package/dist/src/palettes/PaletteDefault.d.ts +0 -10
  574. package/dist/src/palettes/PaletteDefault.d.ts.map +0 -1
  575. package/dist/src/palettes/PaletteOcean.d.ts +0 -10
  576. package/dist/src/palettes/PaletteOcean.d.ts.map +0 -1
  577. package/dist/src/palettes/PaletteSpring.d.ts +0 -10
  578. package/dist/src/palettes/PaletteSpring.d.ts.map +0 -1
  579. package/dist/src/palettes/PaletteWinter.d.ts +0 -10
  580. package/dist/src/palettes/PaletteWinter.d.ts.map +0 -1
  581. package/dist/src/palettes/index.d.ts +0 -13
  582. package/dist/src/palettes/index.d.ts.map +0 -1
  583. package/dist/src/schemas/ActionSchema.d.ts +0 -21
  584. package/dist/src/schemas/ActionSchema.d.ts.map +0 -1
  585. package/dist/src/schemas/ArticleSchema.d.ts +0 -13
  586. package/dist/src/schemas/ArticleSchema.d.ts.map +0 -1
  587. package/dist/src/schemas/ButtonSchema.d.ts +0 -19
  588. package/dist/src/schemas/ButtonSchema.d.ts.map +0 -1
  589. package/dist/src/schemas/CardListGridSchema.d.ts +0 -17
  590. package/dist/src/schemas/CardListGridSchema.d.ts.map +0 -1
  591. package/dist/src/schemas/ChoiceInputFieldSchema.d.ts +0 -18
  592. package/dist/src/schemas/ChoiceInputFieldSchema.d.ts.map +0 -1
  593. package/dist/src/schemas/CodeSchema.d.ts +0 -18
  594. package/dist/src/schemas/CodeSchema.d.ts.map +0 -1
  595. package/dist/src/schemas/CollapsibleLayoutSchema.d.ts +0 -32
  596. package/dist/src/schemas/CollapsibleLayoutSchema.d.ts.map +0 -1
  597. package/dist/src/schemas/ContainerSchema.d.ts +0 -12
  598. package/dist/src/schemas/ContainerSchema.d.ts.map +0 -1
  599. package/dist/src/schemas/ContentSchema.d.ts +0 -21
  600. package/dist/src/schemas/ContentSchema.d.ts.map +0 -1
  601. package/dist/src/schemas/CoverImageHeaderSchema.d.ts +0 -28
  602. package/dist/src/schemas/CoverImageHeaderSchema.d.ts.map +0 -1
  603. package/dist/src/schemas/FeatureCardSchema.d.ts +0 -28
  604. package/dist/src/schemas/FeatureCardSchema.d.ts.map +0 -1
  605. package/dist/src/schemas/FeatureGridSchema.d.ts +0 -17
  606. package/dist/src/schemas/FeatureGridSchema.d.ts.map +0 -1
  607. package/dist/src/schemas/FeatureItemSchema.d.ts +0 -16
  608. package/dist/src/schemas/FeatureItemSchema.d.ts.map +0 -1
  609. package/dist/src/schemas/FooterItemSchema.d.ts +0 -15
  610. package/dist/src/schemas/FooterItemSchema.d.ts.map +0 -1
  611. package/dist/src/schemas/FooterSchema.d.ts +0 -20
  612. package/dist/src/schemas/FooterSchema.d.ts.map +0 -1
  613. package/dist/src/schemas/FooterSectionSchema.d.ts +0 -15
  614. package/dist/src/schemas/FooterSectionSchema.d.ts.map +0 -1
  615. package/dist/src/schemas/FormBlockSchema.d.ts +0 -19
  616. package/dist/src/schemas/FormBlockSchema.d.ts.map +0 -1
  617. package/dist/src/schemas/GridCellSchema.d.ts +0 -23
  618. package/dist/src/schemas/GridCellSchema.d.ts.map +0 -1
  619. package/dist/src/schemas/GridLayoutSchema.d.ts +0 -21
  620. package/dist/src/schemas/GridLayoutSchema.d.ts.map +0 -1
  621. package/dist/src/schemas/HeaderActionSchema.d.ts +0 -17
  622. package/dist/src/schemas/HeaderActionSchema.d.ts.map +0 -1
  623. package/dist/src/schemas/HeroBlockSchema.d.ts +0 -22
  624. package/dist/src/schemas/HeroBlockSchema.d.ts.map +0 -1
  625. package/dist/src/schemas/HtmlInputFieldSchema.d.ts +0 -18
  626. package/dist/src/schemas/HtmlInputFieldSchema.d.ts.map +0 -1
  627. package/dist/src/schemas/HtmlSchema.d.ts +0 -14
  628. package/dist/src/schemas/HtmlSchema.d.ts.map +0 -1
  629. package/dist/src/schemas/ImageSchema.d.ts +0 -32
  630. package/dist/src/schemas/ImageSchema.d.ts.map +0 -1
  631. package/dist/src/schemas/LogoSchema.d.ts +0 -35
  632. package/dist/src/schemas/LogoSchema.d.ts.map +0 -1
  633. package/dist/src/schemas/MarkdownSchema.d.ts +0 -14
  634. package/dist/src/schemas/MarkdownSchema.d.ts.map +0 -1
  635. package/dist/src/schemas/MetadataItemSchema.d.ts +0 -13
  636. package/dist/src/schemas/MetadataItemSchema.d.ts.map +0 -1
  637. package/dist/src/schemas/PageBannerHeaderSchema.d.ts +0 -28
  638. package/dist/src/schemas/PageBannerHeaderSchema.d.ts.map +0 -1
  639. package/dist/src/schemas/PageTemplateSchema.d.ts +0 -31
  640. package/dist/src/schemas/PageTemplateSchema.d.ts.map +0 -1
  641. package/dist/src/schemas/PaletteSwitcherSchema.d.ts +0 -16
  642. package/dist/src/schemas/PaletteSwitcherSchema.d.ts.map +0 -1
  643. package/dist/src/schemas/PrintConfigSchema.d.ts +0 -31
  644. package/dist/src/schemas/PrintConfigSchema.d.ts.map +0 -1
  645. package/dist/src/schemas/ProductCardSchema.d.ts +0 -39
  646. package/dist/src/schemas/ProductCardSchema.d.ts.map +0 -1
  647. package/dist/src/schemas/SafeSpanSchema.d.ts +0 -13
  648. package/dist/src/schemas/SafeSpanSchema.d.ts.map +0 -1
  649. package/dist/src/schemas/SectionSchema.d.ts +0 -16
  650. package/dist/src/schemas/SectionSchema.d.ts.map +0 -1
  651. package/dist/src/schemas/SelectInputFieldSchema.d.ts +0 -27
  652. package/dist/src/schemas/SelectInputFieldSchema.d.ts.map +0 -1
  653. package/dist/src/schemas/SwitchInputFieldSchema.d.ts +0 -18
  654. package/dist/src/schemas/SwitchInputFieldSchema.d.ts.map +0 -1
  655. package/dist/src/schemas/TextInputFieldSchema.d.ts +0 -22
  656. package/dist/src/schemas/TextInputFieldSchema.d.ts.map +0 -1
  657. package/dist/src/schemas/TextSchema.d.ts +0 -37
  658. package/dist/src/schemas/TextSchema.d.ts.map +0 -1
  659. package/dist/src/schemas/ThemeSwitcherSchema.d.ts +0 -19
  660. package/dist/src/schemas/ThemeSwitcherSchema.d.ts.map +0 -1
  661. package/dist/src/schemas/ViewSchema.d.ts +0 -66
  662. package/dist/src/schemas/ViewSchema.d.ts.map +0 -1
  663. package/dist/src/schemas/index.d.ts +0 -47
  664. package/dist/src/schemas/index.d.ts.map +0 -1
  665. package/dist/src/schemas/transformers/ComponentTransformer.d.ts +0 -128
  666. package/dist/src/schemas/transformers/ComponentTransformer.d.ts.map +0 -1
  667. package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts +0 -53
  668. package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts.map +0 -1
  669. package/dist/src/schemas/transformers/registry.d.ts +0 -18
  670. package/dist/src/schemas/transformers/registry.d.ts.map +0 -1
  671. package/dist/src/schemas/types/Serializable.d.ts +0 -46
  672. package/dist/src/schemas/types/Serializable.d.ts.map +0 -1
  673. package/dist/src/stories/_templates/SerializationTemplate.d.ts.map +0 -1
  674. package/dist/src/templates/TemplateResolver.d.ts +0 -52
  675. package/dist/src/templates/TemplateResolver.d.ts.map +0 -1
  676. package/dist/src/templates/index.d.ts +0 -7
  677. package/dist/src/templates/index.d.ts.map +0 -1
  678. package/dist/src/types/CacheProvider.d.ts +0 -18
  679. package/dist/src/types/CacheProvider.d.ts.map +0 -1
  680. package/dist/src/types/CollapsibleLayout.d.ts +0 -142
  681. package/dist/src/types/CollapsibleLayout.d.ts.map +0 -1
  682. package/dist/src/types/ContentProxy.d.ts +0 -47
  683. package/dist/src/types/ContentProxy.d.ts.map +0 -1
  684. package/dist/src/types/DataTypes.d.ts +0 -185
  685. package/dist/src/types/DataTypes.d.ts.map +0 -1
  686. package/dist/src/types/TemplateProvider.d.ts +0 -10
  687. package/dist/src/types/TemplateProvider.d.ts.map +0 -1
  688. package/dist/src/types/TemplateResolver.d.ts +0 -23
  689. package/dist/src/types/TemplateResolver.d.ts.map +0 -1
  690. package/dist/src/types/index.d.ts +0 -82
  691. package/dist/src/types/index.d.ts.map +0 -1
  692. package/dist/src/utils/breakpoints.d.ts +0 -35
  693. package/dist/src/utils/breakpoints.d.ts.map +0 -1
  694. package/dist/src/utils/cssUtils.d.ts +0 -17
  695. package/dist/src/utils/cssUtils.d.ts.map +0 -1
  696. package/dist/src/utils/customPaletteManager.d.ts +0 -8
  697. package/dist/src/utils/customPaletteManager.d.ts.map +0 -1
  698. package/dist/src/utils/dimensions.d.ts +0 -34
  699. package/dist/src/utils/dimensions.d.ts.map +0 -1
  700. package/dist/src/utils/htmlTransform.d.ts +0 -44
  701. package/dist/src/utils/htmlTransform.d.ts.map +0 -1
  702. package/dist/src/utils/index.d.ts +0 -16
  703. package/dist/src/utils/index.d.ts.map +0 -1
  704. package/dist/src/utils/logger.d.ts +0 -26
  705. package/dist/src/utils/logger.d.ts.map +0 -1
  706. package/dist/src/utils/paletteUtils.d.ts +0 -38
  707. package/dist/src/utils/paletteUtils.d.ts.map +0 -1
  708. package/dist/src/utils/persistenceUtils.d.ts +0 -31
  709. package/dist/src/utils/persistenceUtils.d.ts.map +0 -1
  710. package/dist/src/utils/reactUtils.d.ts +0 -33
  711. package/dist/src/utils/reactUtils.d.ts.map +0 -1
  712. package/dist/src/utils/spacing.d.ts +0 -34
  713. package/dist/src/utils/spacing.d.ts.map +0 -1
  714. package/dist/src/utils/themePerformanceMonitor.d.ts +0 -32
  715. package/dist/src/utils/themePerformanceMonitor.d.ts.map +0 -1
  716. package/dist/src/utils/themeUtils.d.ts +0 -27
  717. package/dist/src/utils/themeUtils.d.ts.map +0 -1
  718. package/dist/tests/ConsoleWarningTest.d.ts +0 -5
  719. package/dist/tests/ConsoleWarningTest.d.ts.map +0 -1
  720. package/dist/tests/StorageKeyTest.d.ts +0 -6
  721. package/dist/tests/StorageKeyTest.d.ts.map +0 -1
  722. package/dist/tests/ThemeStorageKeyTest.d.ts +0 -6
  723. package/dist/tests/ThemeStorageKeyTest.d.ts.map +0 -1
  724. /package/dist/palettes/{PaletteAutumn.css β†’ palette-autumn.1.4.9.css} +0 -0
  725. /package/dist/palettes/{PaletteCosmic.css β†’ palette-cosmic.1.4.9.css} +0 -0
  726. /package/dist/palettes/{PaletteDefault.css β†’ palette-default.1.4.9.css} +0 -0
  727. /package/dist/palettes/{PaletteOcean.css β†’ palette-ocean.1.4.9.css} +0 -0
  728. /package/dist/palettes/{PaletteSpring.css β†’ palette-spring.1.4.9.css} +0 -0
  729. /package/dist/palettes/{PaletteWinter.css β†’ palette-winter.1.4.9.css} +0 -0
  730. /package/dist/{src/stories β†’ stories}/_templates/SerializationTemplate.d.ts +0 -0
@@ -484,8 +484,8 @@ export const SecurityTestingExample: Story = {
484
484
  ),
485
485
  };
486
486
 
487
- export const InteractiveExample: Story = {
488
- render: () => {
487
+ // Interactive SafeSpan Component
488
+ const InteractiveSafeSpanComponent = () => {
489
489
  const [htmlContent, setHtmlContent] = useState(safeHtml);
490
490
  const [placeholder, setPlaceholder] = useState('Enter some HTML content...');
491
491
 
@@ -608,5 +608,9 @@ export const InteractiveExample: Story = {
608
608
  </Content>
609
609
  </Section>
610
610
  );
611
- },
611
+ };
612
+ InteractiveSafeSpanComponent.displayName = 'InteractiveSafeSpanComponent';
613
+
614
+ export const InteractiveExample: Story = {
615
+ render: () => <InteractiveSafeSpanComponent />,
612
616
  };
@@ -212,7 +212,7 @@ export const ContentWidthVariants: Story = {
212
212
  <Typography variant="body2">Extra large container width (1536px max)</Typography>
213
213
  </Section>
214
214
 
215
- <Section background="#fce4ec" padding="medium" contentMaxWidth={false as any}>
215
+ <Section background="#fce4ec" padding="medium" contentMaxWidth={undefined}>
216
216
  <Typography variant="h6" gutterBottom>Full Width (No Max Width)</Typography>
217
217
  <Typography variant="body2">Full width container with no maximum width constraint</Typography>
218
218
  </Section>
@@ -628,7 +628,7 @@ export const ModelViewBasic: Story = {
628
628
  });
629
629
 
630
630
  // Show ModelView metadata
631
- const ComponentClass = sectionInstance.constructor as any;
631
+ const ComponentClass = sectionInstance.constructor as { tagName?: string; version?: string };
632
632
  const metadata = {
633
633
  tagName: ComponentClass.tagName,
634
634
  version: ComponentClass.version,
@@ -4,12 +4,10 @@
4
4
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
5
5
  */
6
6
 
7
- import { Box, Divider, Typography, Alert, Paper, Grid } from '@mui/material';
7
+ import { Box, Typography, Alert } from '@mui/material';
8
8
  import { JsonDataProvider } from '@qwickapps/schema';
9
9
  import type { Meta, StoryObj } from '@storybook/react';
10
10
  import { Text } from '../components/blocks';
11
- import { ComponentTransformer } from '../schemas/transformers/ComponentTransformer';
12
- import { ModelView } from '../components/base/ModelView';
13
11
  import { makeSerializationStory } from './_templates/SerializationTemplate';
14
12
  import QwickApp from '../components/QwickApp';
15
13
  import React from 'react';
@@ -20,7 +20,6 @@
20
20
  */
21
21
 
22
22
  import React from 'react';
23
- import { ComponentTransformer } from '../../schemas/transformers/ComponentTransformer';
24
23
  import { registerSerializableComponents } from '../../schemas/transformers/registry';
25
24
  import { Code } from '../../components/blocks/Code';
26
25
  import { Box, Typography } from '@mui/material';
@@ -111,7 +111,7 @@ export class TemplateResolver implements ITemplateResolver {
111
111
  * Create lazy loading context for template resolution
112
112
  * Only fetches data when accessed by mustache template
113
113
  */
114
- private async createLazyContext(template: string): Promise<any> {
114
+ private async createLazyContext(template: string): Promise<unknown> {
115
115
  // Extract field group IDs from template
116
116
  const mustachePattern = /\{\{([^}]+)\}\}/g;
117
117
  const matches = Array.from(template.matchAll(mustachePattern));
@@ -124,7 +124,7 @@ export class TemplateResolver implements ITemplateResolver {
124
124
  }
125
125
 
126
126
  // Fetch all needed data
127
- const contextData: Record<string, any> = {};
127
+ const contextData: Record<string, unknown> = {};
128
128
 
129
129
  for (const fieldGroupId of fieldGroups) {
130
130
  try {
@@ -7,7 +7,7 @@
7
7
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
8
8
  */
9
9
 
10
- import React, { ReactNode } from 'react';
10
+ import { ReactNode } from 'react';
11
11
  import type { WithDataBinding, SchemaProps } from '@qwickapps/schema';
12
12
  import type { WithBaseProps } from '../hooks/useBaseProps';
13
13
  import CollapsibleLayoutModel from '../schemas/CollapsibleLayoutSchema';
@@ -133,7 +133,7 @@ export interface CollapsibleLayoutProps extends CollapsibleLayoutViewProps, With
133
133
  /**
134
134
  * Type guard to check if a component has CollapsibleLayout props
135
135
  */
136
- export function isCollapsibleLayoutProps(props: any): props is CollapsibleLayoutProps {
136
+ export function isCollapsibleLayoutProps(props: unknown): props is CollapsibleLayoutProps {
137
137
  return props && typeof props === 'object' && ('collapsed' in props || 'defaultCollapsed' in props);
138
138
  }
139
139
 
@@ -26,9 +26,9 @@ export class DataProxy implements Data {
26
26
  public maxRows?: number;
27
27
  public autoCreate?: boolean;
28
28
 
29
- private data: Record<string, any>;
29
+ private data: Record<string, unknown>;
30
30
 
31
- constructor(content: Data, data: Record<string, any> = {}) {
31
+ constructor(content: Data, data: Record<string, unknown> = {}) {
32
32
  Object.assign(this, content);
33
33
  this.data = data;
34
34
 
@@ -50,7 +50,7 @@ export class DataProxy implements Data {
50
50
  * Get nested value from data using dot notation
51
51
  * Supports: company.name, user.profile.avatar.url, etc.
52
52
  */
53
- private getNestedValue(path: string): any {
53
+ private getNestedValue(path: string): unknown {
54
54
  const keys = path.split('.');
55
55
  let current = this.data;
56
56
 
@@ -67,7 +67,7 @@ export class DataProxy implements Data {
67
67
  /**
68
68
  * Set nested value in data using dot notation
69
69
  */
70
- public setNestedValue(path: string, value: any): void {
70
+ public setNestedValue(path: string, value: unknown): void {
71
71
  const keys = path.split('.');
72
72
  const lastKey = keys.pop()!;
73
73
  let current = this.data;
@@ -86,14 +86,14 @@ export class DataProxy implements Data {
86
86
  /**
87
87
  * Get all data including nested structures
88
88
  */
89
- public getData(): Record<string, any> {
89
+ public getData(): Record<string, unknown> {
90
90
  return this.data;
91
91
  }
92
92
 
93
93
  /**
94
94
  * Update data while preserving nested structure
95
95
  */
96
- public updateData(newData: Record<string, any>): void {
96
+ public updateData(newData: Record<string, unknown>): void {
97
97
  this.data = { ...this.data, ...newData };
98
98
  }
99
99
  }
@@ -33,9 +33,9 @@ export interface Field extends BaseContent {
33
33
  /** The type of field */
34
34
  type: string;
35
35
  /** Current value of the field */
36
- value?: any;
36
+ value?: unknown;
37
37
  /** Default value for the field */
38
- defaultValue?: any;
38
+ defaultValue?: unknown;
39
39
  /** Whether this field is required */
40
40
  required?: boolean;
41
41
  /** Placeholder text for input fields */
@@ -43,7 +43,7 @@ export interface Field extends BaseContent {
43
43
  /** Help text or instructions */
44
44
  instructions?: string;
45
45
  /** Options for select/radio/checkbox fields */
46
- choices?: Array<{ label: string; value: any }>;
46
+ choices?: Array<{ label: string; value: unknown }>;
47
47
  /** Minimum value (for numbers) or length (for text) */
48
48
  min?: number;
49
49
  /** Maximum value (for numbers) or length (for text) */
@@ -113,7 +113,7 @@ export interface FormField extends Field {
113
113
  minLength?: number;
114
114
  maxLength?: number;
115
115
  pattern?: RegExp;
116
- custom?: (value: any) => boolean | string;
116
+ custom?: (value: unknown) => boolean | string;
117
117
  };
118
118
  }
119
119
 
@@ -5,5 +5,5 @@
5
5
  */
6
6
  export interface TemplateProvider {
7
7
  /** Resolve template with given context using mustache syntax */
8
- resolve(template: string, context: any): string;
8
+ resolve(template: string, context: unknown): string;
9
9
  }
@@ -11,7 +11,7 @@ export interface TemplateResolverConfig {
11
11
  /** Template resolver (optional, defaults to MustacheTemplateResolver) */
12
12
  templateResolver?: TemplateProvider;
13
13
  /** Cache provider (optional, defaults to MemoryCacheProvider, false = no cache) */
14
- cacheProvider?: ICacheProvider<any[]> | boolean;
14
+ cacheProvider?: ICacheProvider<unknown[]> | boolean;
15
15
  /** Enable debug logging */
16
16
  enableLogging?: boolean;
17
17
  }/**
@@ -7,7 +7,7 @@
7
7
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
8
8
  */
9
9
 
10
- import { Box, Typography } from '@mui/material';
10
+ import { Box } from '@mui/material';
11
11
  import React from 'react';
12
12
  import { ComponentTransformer } from '../schemas/transformers/ComponentTransformer';
13
13
 
@@ -19,7 +19,7 @@ export interface TransformRule {
19
19
  export interface TransformConfig {
20
20
  rules: TransformRule[];
21
21
  sanitize?: boolean;
22
- sanitizeOptions?: any;
22
+ sanitizeOptions?: Record<string, unknown>;
23
23
  fallbackComponent?: (element: Element, key: string) => React.ReactNode;
24
24
  }
25
25
 
@@ -41,7 +41,8 @@ export const defaultArticleRules: TransformRule[] = [
41
41
  // Use ComponentTransformer to create Code component
42
42
  const codeData = {
43
43
  tagName: 'Code',
44
- props: {
44
+ version: '1.0.0',
45
+ data: {
45
46
  language,
46
47
  showCopy: true,
47
48
  showLineNumbers: false,
@@ -76,7 +77,8 @@ export const defaultArticleRules: TransformRule[] = [
76
77
  // Use ComponentTransformer to create Code component
77
78
  const codeData = {
78
79
  tagName: 'Code',
79
- props: {
80
+ version: '1.0.0',
81
+ data: {
80
82
  language: 'text',
81
83
  showCopy: true,
82
84
  showLineNumbers: false,
@@ -107,12 +109,14 @@ export const defaultArticleRules: TransformRule[] = [
107
109
  // Use ComponentTransformer to create Section component
108
110
  const sectionData = {
109
111
  tagName: 'Section',
110
- props: {
112
+ version: '1.0.0',
113
+ data: {
111
114
  padding: spacing || 'medium',
112
115
  children: [
113
116
  title && {
114
117
  tagName: 'Typography',
115
- props: {
118
+ version: '1.0.0',
119
+ data: {
116
120
  variant: 'h4',
117
121
  component: 'h2',
118
122
  sx: { mb: 2 },
@@ -133,7 +137,7 @@ export const defaultArticleRules: TransformRule[] = [
133
137
  // Button elements β†’ Button component
134
138
  {
135
139
  selector: 'button',
136
- transform: (element: Element, key: string) => {
140
+ transform: (element: Element) => {
137
141
  const text = element.textContent || '';
138
142
  const variant = element.getAttribute('data-variant') || 'contained';
139
143
  const disabled = element.hasAttribute('disabled');
@@ -141,7 +145,8 @@ export const defaultArticleRules: TransformRule[] = [
141
145
  // Use ComponentTransformer to create Button component
142
146
  const buttonData = {
143
147
  tagName: 'Button',
144
- props: {
148
+ version: '1.0.0',
149
+ data: {
145
150
  variant,
146
151
  disabled,
147
152
  label: text
@@ -171,7 +176,8 @@ export const defaultMarkdownRules: TransformRule[] = [
171
176
  // Use ComponentTransformer to create Code component
172
177
  const codeData = {
173
178
  tagName: 'Code',
174
- props: {
179
+ version: '1.0.0',
180
+ data: {
175
181
  language,
176
182
  showCopy: true,
177
183
  showLineNumbers: false,
@@ -190,7 +196,7 @@ export const defaultMarkdownRules: TransformRule[] = [
190
196
  // Inline code β†’ preserve as regular code element (no transformation)
191
197
  {
192
198
  selector: 'code',
193
- transform: (element: Element, key: string) => {
199
+ transform: (element: Element) => {
194
200
  // Skip if inside pre (already handled above)
195
201
  if (element.closest('pre')) return null;
196
202
 
@@ -213,7 +219,7 @@ function parseStyleString(styleStr: string): React.CSSProperties {
213
219
  if (property && value) {
214
220
  // Convert kebab-case to camelCase
215
221
  const camelProperty = property.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
216
- styles[camelProperty as keyof React.CSSProperties] = value as any;
222
+ styles[camelProperty as keyof React.CSSProperties] = value as string;
217
223
  }
218
224
  });
219
225
 
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Icon Mapping Utility
3
+ *
4
+ * Provides centralized icon mapping for both Material-UI components and emoji representations.
5
+ * Used across the framework for consistent icon rendering in buttons, navigation, admin UI, etc.
6
+ *
7
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
8
+ */
9
+
10
+ import React from 'react';
11
+ import {
12
+ Article,
13
+ Home,
14
+ Book,
15
+ Download,
16
+ CloudDownload,
17
+ CloudUpload,
18
+ Computer,
19
+ Settings,
20
+ Dashboard,
21
+ Info,
22
+ Inventory,
23
+ Inventory2,
24
+ Help,
25
+ Add,
26
+ Edit,
27
+ Delete,
28
+ Check,
29
+ Close,
30
+ ArrowForward,
31
+ ArrowBack,
32
+ Menu,
33
+ Search,
34
+ Favorite,
35
+ Star,
36
+ Share,
37
+ Save,
38
+ Send,
39
+ Email,
40
+ Phone,
41
+ Person,
42
+ Group,
43
+ Business,
44
+ ShoppingCart,
45
+ Speed,
46
+ SupportAgent,
47
+ Tune,
48
+ AttachMoney,
49
+ Lock,
50
+ LockOpen,
51
+ Visibility,
52
+ VisibilityOff,
53
+ // New icons for seed content
54
+ Psychology,
55
+ Autorenew,
56
+ Code,
57
+ IntegrationInstructions,
58
+ Construction,
59
+ Work,
60
+ Layers,
61
+ TrendingUp,
62
+ Route,
63
+ Sync,
64
+ Architecture,
65
+ Security,
66
+ VerifiedUser,
67
+ } from '@mui/icons-material';
68
+
69
+ /**
70
+ * Icon mapping entry with both Material-UI component and emoji representation
71
+ */
72
+ export interface IconMapping {
73
+ emoji: string;
74
+ component: React.ComponentType;
75
+ }
76
+
77
+ /**
78
+ * Centralized icon registry mapping icon names to their representations
79
+ * Supports both Material-UI components and emoji for different contexts
80
+ */
81
+ export const iconMap: Record<string, IconMapping> = {
82
+ // Navigation & Layout
83
+ home: { emoji: '🏠', component: Home },
84
+ menu: { emoji: '☰', component: Menu },
85
+ dashboard: { emoji: 'πŸ“Š', component: Dashboard },
86
+
87
+ // Information & Help
88
+ info: { emoji: 'ℹ️', component: Info },
89
+ about: { emoji: 'ℹ️', component: Info },
90
+ help: { emoji: '❓', component: Help },
91
+ book: { emoji: 'πŸ“–', component: Book },
92
+
93
+ // Communication
94
+ email: { emoji: 'πŸ“§', component: Email },
95
+ contact: { emoji: 'πŸ“§', component: Email },
96
+ phone: { emoji: 'πŸ“±', component: Phone },
97
+ send: { emoji: 'πŸ“€', component: Send },
98
+
99
+ // Actions
100
+ add: { emoji: 'βž•', component: Add },
101
+ edit: { emoji: '✏️', component: Edit },
102
+ delete: { emoji: 'πŸ—‘οΈ', component: Delete },
103
+ save: { emoji: 'πŸ’Ύ', component: Save },
104
+ check: { emoji: 'βœ“', component: Check },
105
+ close: { emoji: 'βœ•', component: Close },
106
+
107
+ // Navigation
108
+ arrowforward: { emoji: 'β†’', component: ArrowForward },
109
+ arrowback: { emoji: '←', component: ArrowBack },
110
+
111
+ // Content
112
+ search: { emoji: 'πŸ”', component: Search },
113
+ share: { emoji: 'πŸ”—', component: Share },
114
+ download: { emoji: '⬇️', component: Download },
115
+ clouddownload: { emoji: 'β˜οΈβ¬‡οΈ', component: CloudDownload },
116
+ cloudupload: { emoji: 'β˜οΈβ¬†οΈ', component: CloudUpload },
117
+
118
+ // User & Social
119
+ person: { emoji: 'πŸ‘€', component: Person },
120
+ user: { emoji: 'πŸ‘€', component: Person },
121
+ group: { emoji: 'πŸ‘₯', component: Group },
122
+ favorite: { emoji: '❀️', component: Favorite },
123
+ star: { emoji: '⭐', component: Star },
124
+ verified_user: { emoji: 'βœ…', component: VerifiedUser },
125
+
126
+ // Business
127
+ business: { emoji: '🏒', component: Business },
128
+ shoppingcart: { emoji: 'πŸ›’', component: ShoppingCart },
129
+ cart: { emoji: 'πŸ›’', component: ShoppingCart },
130
+ attachmoney: { emoji: 'πŸ’°', component: AttachMoney },
131
+
132
+ // Security
133
+ lock: { emoji: 'πŸ”’', component: Lock },
134
+ lockopen: { emoji: 'πŸ”“', component: LockOpen },
135
+ visibility: { emoji: 'πŸ‘οΈ', component: Visibility },
136
+ visibilityoff: { emoji: 'πŸ™ˆ', component: VisibilityOff },
137
+
138
+ // System
139
+ settings: { emoji: 'βš™οΈ', component: Settings },
140
+ computer: { emoji: 'πŸ’»', component: Computer },
141
+
142
+ // Content Types
143
+ article: { emoji: 'πŸ“°', component: Article },
144
+ blog: { emoji: 'πŸ“', component: Book },
145
+ news: { emoji: 'πŸ“°', component: Book },
146
+ products: { emoji: 'πŸ›οΈ', component: ShoppingCart },
147
+ services: { emoji: 'βš™οΈ', component: Settings },
148
+ portfolio: { emoji: 'πŸ’Ό', component: Business },
149
+ gallery: { emoji: 'πŸ–ΌοΈ', component: Business },
150
+ inventory: { emoji: 'πŸ“¦', component: Inventory },
151
+ inventory_2: { emoji: 'πŸ“¦', component: Inventory2 },
152
+ speed: { emoji: '⚑', component: Speed },
153
+ support_agent: { emoji: 'πŸ›ŽοΈ', component: SupportAgent },
154
+ tune: { emoji: 'πŸŽ›οΈ', component: Tune },
155
+
156
+ // Development & Technology
157
+ code: { emoji: 'πŸ’»', component: Code },
158
+ psychology: { emoji: '🧠', component: Psychology },
159
+ autorenew: { emoji: 'πŸ”„', component: Autorenew },
160
+ integration_instructions: { emoji: 'πŸ”Œ', component: IntegrationInstructions },
161
+ construction: { emoji: '🚧', component: Construction },
162
+ work: { emoji: 'πŸ’Ό', component: Work },
163
+ layers: { emoji: 'πŸ“š', component: Layers },
164
+ trending_up: { emoji: 'πŸ“ˆ', component: TrendingUp },
165
+ route: { emoji: 'πŸ—ΊοΈ', component: Route },
166
+ sync: { emoji: 'πŸ”„', component: Sync },
167
+ architecture: { emoji: 'πŸ›οΈ', component: Architecture },
168
+ security: { emoji: 'πŸ”', component: Security },
169
+ };
170
+
171
+ /**
172
+ * Get emoji representation of an icon
173
+ * @param iconName - Icon name (case-insensitive)
174
+ * @param fallback - Fallback emoji if icon not found (default: πŸ”—)
175
+ * @returns Emoji string
176
+ */
177
+ export function getIconEmoji(iconName: string | undefined, fallback: string = 'πŸ”—'): string {
178
+ if (!iconName) return fallback;
179
+ const mapping = iconMap[iconName.toLowerCase()];
180
+ return mapping?.emoji || iconName;
181
+ }
182
+
183
+ /**
184
+ * Get Material-UI component representation of an icon
185
+ * @param iconName - Icon name (case-insensitive)
186
+ * @returns React element or null if not found
187
+ */
188
+ export function getIconComponent(iconName: string | undefined): React.ReactElement | null {
189
+ if (!iconName) return null;
190
+
191
+ const mapping = iconMap[iconName.toLowerCase()];
192
+ if (!mapping?.component) {
193
+ console.warn(`[IconMap] Icon "${iconName}" not found in registry`);
194
+ return null;
195
+ }
196
+
197
+ const IconComponent = mapping.component;
198
+ return <IconComponent />;
199
+ }
200
+
201
+ /**
202
+ * Register a new icon or override an existing one
203
+ * Useful for application-specific icon extensions
204
+ */
205
+ export function registerIcon(name: string, mapping: IconMapping): void {
206
+ iconMap[name.toLowerCase()] = mapping;
207
+ }
208
+
209
+ /**
210
+ * Check if an icon is registered
211
+ */
212
+ export function hasIcon(iconName: string): boolean {
213
+ return iconName.toLowerCase() in iconMap;
214
+ }
215
+
216
+ /**
217
+ * Get all registered icon names
218
+ */
219
+ export function getRegisteredIcons(): string[] {
220
+ return Object.keys(iconMap);
221
+ }
@@ -1,12 +1,15 @@
1
1
  /**
2
2
  * Utility functions and types for QwickApps React Framework
3
- *
3
+ *
4
4
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
5
5
  */
6
6
  export * from './cssUtils';
7
7
  export * from './customPaletteManager';
8
8
  export * from './dimensions';
9
+ export * from './iconMap';
9
10
  export * from './logger';
11
+ export * from './paletteLoader';
12
+ export * from './paletteManifest';
10
13
  export * from './paletteUtils';
11
14
  export * from './persistenceUtils';
12
15
  export * from './reactUtils';
@@ -7,10 +7,10 @@
7
7
  */
8
8
 
9
9
  export interface Logger {
10
- debug(message: string, ...args: any[]): void;
11
- info(message: string, ...args: any[]): void;
12
- warn(message: string, ...args: any[]): void;
13
- error(message: string, ...args: any[]): void;
10
+ debug(message: string, ...args: unknown[]): void;
11
+ info(message: string, ...args: unknown[]): void;
12
+ warn(message: string, ...args: unknown[]): void;
13
+ error(message: string, ...args: unknown[]): void;
14
14
  }
15
15
 
16
16
  /**
@@ -19,34 +19,39 @@ export interface Logger {
19
19
  class ConsoleLogger implements Logger {
20
20
  constructor(private name: string) {}
21
21
 
22
- debug(message: string, ...args: any[]): void {
22
+ debug(message: string, ...args: unknown[]): void {
23
23
  if (process.env.NODE_ENV !== 'production') {
24
24
  console.debug(`[${this.name}] ${message}`, ...args);
25
25
  }
26
26
  }
27
27
 
28
- info(message: string, ...args: any[]): void {
28
+ info(message: string, ...args: unknown[]): void {
29
29
  console.info(`[${this.name}] ${message}`, ...args);
30
30
  }
31
31
 
32
- warn(message: string, ...args: any[]): void {
32
+ warn(message: string, ...args: unknown[]): void {
33
33
  console.warn(`[${this.name}] ${message}`, ...args);
34
34
  }
35
35
 
36
- error(message: string, ...args: any[]): void {
36
+ error(message: string, ...args: unknown[]): void {
37
37
  console.error(`[${this.name}] ${message}`, ...args);
38
38
  }
39
39
  }
40
40
 
41
41
  /**
42
42
  * No-op logger for when logging should be disabled
43
+ * Not currently used but available for future configuration options
43
44
  */
44
- class NoOpLogger implements Logger {
45
- debug(): void {}
46
- info(): void {}
47
- warn(): void {}
48
- error(): void {}
49
- }
45
+ // class NoOpLogger implements Logger {
46
+ // // intentionally empty - no-op logger
47
+ // debug(): void {}
48
+ // // intentionally empty - no-op logger
49
+ // info(): void {}
50
+ // // intentionally empty - no-op logger
51
+ // warn(): void {}
52
+ // // intentionally empty - no-op logger
53
+ // error(): void {}
54
+ // }
50
55
 
51
56
  /**
52
57
  * Create logger with optional @qwickapps/logging dependency
@@ -54,6 +59,7 @@ class NoOpLogger implements Logger {
54
59
  function getLogger(name: string): Logger {
55
60
  try {
56
61
  // Try to use @qwickapps/logging if available
62
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
57
63
  const logging = require('@qwickapps/logging');
58
64
  return logging.getLogger(name);
59
65
  } catch {