@qwickapps/react-framework 1.3.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 (441) hide show
  1. package/LICENSE +44 -0
  2. package/README.md +794 -0
  3. package/dist/components/AccessibilityChecker.d.ts +12 -0
  4. package/dist/components/AccessibilityChecker.d.ts.map +1 -0
  5. package/dist/components/Html.d.ts +48 -0
  6. package/dist/components/Html.d.ts.map +1 -0
  7. package/dist/components/Logo.d.ts +79 -0
  8. package/dist/components/Logo.d.ts.map +1 -0
  9. package/dist/components/Markdown.d.ts +47 -0
  10. package/dist/components/Markdown.d.ts.map +1 -0
  11. package/dist/components/QwickApp.d.ts +56 -0
  12. package/dist/components/QwickApp.d.ts.map +1 -0
  13. package/dist/components/QwickAppsLogo.d.ts +25 -0
  14. package/dist/components/QwickAppsLogo.d.ts.map +1 -0
  15. package/dist/components/ResponsiveMenu.d.ts +38 -0
  16. package/dist/components/ResponsiveMenu.d.ts.map +1 -0
  17. package/dist/components/SafeSpan.d.ts +23 -0
  18. package/dist/components/SafeSpan.d.ts.map +1 -0
  19. package/dist/components/Scaffold.d.ts +57 -0
  20. package/dist/components/Scaffold.d.ts.map +1 -0
  21. package/dist/components/blocks/Article.d.ts +23 -0
  22. package/dist/components/blocks/Article.d.ts.map +1 -0
  23. package/dist/components/blocks/CardListGrid.d.ts +23 -0
  24. package/dist/components/blocks/CardListGrid.d.ts.map +1 -0
  25. package/dist/components/blocks/Code.d.ts +21 -0
  26. package/dist/components/blocks/Code.d.ts.map +1 -0
  27. package/dist/components/blocks/Content.d.ts +24 -0
  28. package/dist/components/blocks/Content.d.ts.map +1 -0
  29. package/dist/components/blocks/CoverImageHeader.d.ts +44 -0
  30. package/dist/components/blocks/CoverImageHeader.d.ts.map +1 -0
  31. package/dist/components/blocks/FeatureCard.d.ts +66 -0
  32. package/dist/components/blocks/FeatureCard.d.ts.map +1 -0
  33. package/dist/components/blocks/FeatureGrid.d.ts +48 -0
  34. package/dist/components/blocks/FeatureGrid.d.ts.map +1 -0
  35. package/dist/components/blocks/Footer.d.ts +56 -0
  36. package/dist/components/blocks/Footer.d.ts.map +1 -0
  37. package/dist/components/blocks/HeroBlock.d.ts +33 -0
  38. package/dist/components/blocks/HeroBlock.d.ts.map +1 -0
  39. package/dist/components/blocks/PageBannerHeader.d.ts +30 -0
  40. package/dist/components/blocks/PageBannerHeader.d.ts.map +1 -0
  41. package/dist/components/blocks/ProductCard.d.ts +57 -0
  42. package/dist/components/blocks/ProductCard.d.ts.map +1 -0
  43. package/dist/components/blocks/Section.d.ts +40 -0
  44. package/dist/components/blocks/Section.d.ts.map +1 -0
  45. package/dist/components/blocks/index.d.ts +37 -0
  46. package/dist/components/blocks/index.d.ts.map +1 -0
  47. package/dist/components/buttons/Button.d.ts +38 -0
  48. package/dist/components/buttons/Button.d.ts.map +1 -0
  49. package/dist/components/buttons/PaletteSwitcher.d.ts +24 -0
  50. package/dist/components/buttons/PaletteSwitcher.d.ts.map +1 -0
  51. package/dist/components/buttons/ThemeSwitcher.d.ts +24 -0
  52. package/dist/components/buttons/ThemeSwitcher.d.ts.map +1 -0
  53. package/dist/components/buttons/index.d.ts +11 -0
  54. package/dist/components/buttons/index.d.ts.map +1 -0
  55. package/dist/components/forms/FormBlock.d.ts +45 -0
  56. package/dist/components/forms/FormBlock.d.ts.map +1 -0
  57. package/dist/components/forms/index.d.ts +8 -0
  58. package/dist/components/forms/index.d.ts.map +1 -0
  59. package/dist/components/index.d.ts +32 -0
  60. package/dist/components/index.d.ts.map +1 -0
  61. package/dist/components/input/ChoiceInputField.d.ts +30 -0
  62. package/dist/components/input/ChoiceInputField.d.ts.map +1 -0
  63. package/dist/components/input/HtmlInputField.d.ts +29 -0
  64. package/dist/components/input/HtmlInputField.d.ts.map +1 -0
  65. package/dist/components/input/SelectInputField.d.ts +29 -0
  66. package/dist/components/input/SelectInputField.d.ts.map +1 -0
  67. package/dist/components/input/TextField.d.ts +18 -0
  68. package/dist/components/input/TextField.d.ts.map +1 -0
  69. package/dist/components/input/TextInputField.d.ts +32 -0
  70. package/dist/components/input/TextInputField.d.ts.map +1 -0
  71. package/dist/components/input/index.d.ts +17 -0
  72. package/dist/components/input/index.d.ts.map +1 -0
  73. package/dist/components/layout/GridCell.d.ts +16 -0
  74. package/dist/components/layout/GridCell.d.ts.map +1 -0
  75. package/dist/components/layout/GridCellWrapper.d.ts +46 -0
  76. package/dist/components/layout/GridCellWrapper.d.ts.map +1 -0
  77. package/dist/components/layout/GridLayout.d.ts +38 -0
  78. package/dist/components/layout/GridLayout.d.ts.map +1 -0
  79. package/dist/components/layout/index.d.ts +12 -0
  80. package/dist/components/layout/index.d.ts.map +1 -0
  81. package/dist/components/menu/Menu.d.ts +1 -0
  82. package/dist/components/menu/Menu.d.ts.map +1 -0
  83. package/dist/components/menu/MenuItem.d.ts +31 -0
  84. package/dist/components/menu/MenuItem.d.ts.map +1 -0
  85. package/dist/components/menu/index.d.ts +7 -0
  86. package/dist/components/menu/index.d.ts.map +1 -0
  87. package/dist/components/pages/FormPage.d.ts +66 -0
  88. package/dist/components/pages/FormPage.d.ts.map +1 -0
  89. package/dist/components/pages/Page.d.ts +124 -0
  90. package/dist/components/pages/Page.d.ts.map +1 -0
  91. package/dist/components/pages/index.d.ts +11 -0
  92. package/dist/components/pages/index.d.ts.map +1 -0
  93. package/dist/contexts/DataContext.d.ts +139 -0
  94. package/dist/contexts/DataContext.d.ts.map +1 -0
  95. package/dist/contexts/DimensionsContext.d.ts +42 -0
  96. package/dist/contexts/DimensionsContext.d.ts.map +1 -0
  97. package/dist/contexts/PaletteContext.d.ts +53 -0
  98. package/dist/contexts/PaletteContext.d.ts.map +1 -0
  99. package/dist/contexts/QwickAppContext.d.ts +71 -0
  100. package/dist/contexts/QwickAppContext.d.ts.map +1 -0
  101. package/dist/contexts/ThemeContext.d.ts +65 -0
  102. package/dist/contexts/ThemeContext.d.ts.map +1 -0
  103. package/dist/contexts/index.d.ts +9 -0
  104. package/dist/contexts/index.d.ts.map +1 -0
  105. package/dist/hooks/index.d.ts +10 -0
  106. package/dist/hooks/index.d.ts.map +1 -0
  107. package/dist/hooks/useBaseProps.d.ts +101 -0
  108. package/dist/hooks/useBaseProps.d.ts.map +1 -0
  109. package/dist/hooks/useDataBinding.d.ts +22 -0
  110. package/dist/hooks/useDataBinding.d.ts.map +1 -0
  111. package/dist/index.css +1 -0
  112. package/dist/index.d.ts +8 -0
  113. package/dist/index.d.ts.map +1 -0
  114. package/dist/index.esm.css +1 -0
  115. package/dist/index.esm.js +24143 -0
  116. package/dist/index.js +24245 -0
  117. package/dist/palettes/PaletteAutumn.d.ts +10 -0
  118. package/dist/palettes/PaletteAutumn.d.ts.map +1 -0
  119. package/dist/palettes/PaletteCosmic.d.ts +10 -0
  120. package/dist/palettes/PaletteCosmic.d.ts.map +1 -0
  121. package/dist/palettes/PaletteDefault.d.ts +10 -0
  122. package/dist/palettes/PaletteDefault.d.ts.map +1 -0
  123. package/dist/palettes/PaletteOcean.d.ts +10 -0
  124. package/dist/palettes/PaletteOcean.d.ts.map +1 -0
  125. package/dist/palettes/PaletteSpring.d.ts +10 -0
  126. package/dist/palettes/PaletteSpring.d.ts.map +1 -0
  127. package/dist/palettes/PaletteWinter.d.ts +10 -0
  128. package/dist/palettes/PaletteWinter.d.ts.map +1 -0
  129. package/dist/palettes/index.d.ts +13 -0
  130. package/dist/palettes/index.d.ts.map +1 -0
  131. package/dist/schemas/ActionSchema.d.ts +21 -0
  132. package/dist/schemas/ActionSchema.d.ts.map +1 -0
  133. package/dist/schemas/ArticleSchema.d.ts +13 -0
  134. package/dist/schemas/ArticleSchema.d.ts.map +1 -0
  135. package/dist/schemas/Builders.d.ts +7 -0
  136. package/dist/schemas/Builders.d.ts.map +1 -0
  137. package/dist/schemas/ButtonSchema.d.ts +19 -0
  138. package/dist/schemas/ButtonSchema.d.ts.map +1 -0
  139. package/dist/schemas/CardListGridSchema.d.ts +17 -0
  140. package/dist/schemas/CardListGridSchema.d.ts.map +1 -0
  141. package/dist/schemas/ChoiceInputFieldSchema.d.ts +18 -0
  142. package/dist/schemas/ChoiceInputFieldSchema.d.ts.map +1 -0
  143. package/dist/schemas/CodeSchema.d.ts +18 -0
  144. package/dist/schemas/CodeSchema.d.ts.map +1 -0
  145. package/dist/schemas/ContentSchema.d.ts +20 -0
  146. package/dist/schemas/ContentSchema.d.ts.map +1 -0
  147. package/dist/schemas/CoverImageHeaderSchema.d.ts +28 -0
  148. package/dist/schemas/CoverImageHeaderSchema.d.ts.map +1 -0
  149. package/dist/schemas/FeatureCardSchema.d.ts +28 -0
  150. package/dist/schemas/FeatureCardSchema.d.ts.map +1 -0
  151. package/dist/schemas/FeatureGridSchema.d.ts +17 -0
  152. package/dist/schemas/FeatureGridSchema.d.ts.map +1 -0
  153. package/dist/schemas/FeatureItemSchema.d.ts +16 -0
  154. package/dist/schemas/FeatureItemSchema.d.ts.map +1 -0
  155. package/dist/schemas/FooterItemSchema.d.ts +15 -0
  156. package/dist/schemas/FooterItemSchema.d.ts.map +1 -0
  157. package/dist/schemas/FooterSchema.d.ts +20 -0
  158. package/dist/schemas/FooterSchema.d.ts.map +1 -0
  159. package/dist/schemas/FooterSectionSchema.d.ts +15 -0
  160. package/dist/schemas/FooterSectionSchema.d.ts.map +1 -0
  161. package/dist/schemas/FormBlockSchema.d.ts +19 -0
  162. package/dist/schemas/FormBlockSchema.d.ts.map +1 -0
  163. package/dist/schemas/HeaderActionSchema.d.ts +17 -0
  164. package/dist/schemas/HeaderActionSchema.d.ts.map +1 -0
  165. package/dist/schemas/HeroBlockSchema.d.ts +22 -0
  166. package/dist/schemas/HeroBlockSchema.d.ts.map +1 -0
  167. package/dist/schemas/HtmlInputFieldSchema.d.ts +18 -0
  168. package/dist/schemas/HtmlInputFieldSchema.d.ts.map +1 -0
  169. package/dist/schemas/MetadataItemSchema.d.ts +13 -0
  170. package/dist/schemas/MetadataItemSchema.d.ts.map +1 -0
  171. package/dist/schemas/PageBannerHeaderSchema.d.ts +28 -0
  172. package/dist/schemas/PageBannerHeaderSchema.d.ts.map +1 -0
  173. package/dist/schemas/PaletteSwitcherSchema.d.ts +16 -0
  174. package/dist/schemas/PaletteSwitcherSchema.d.ts.map +1 -0
  175. package/dist/schemas/ProductCardSchema.d.ts +39 -0
  176. package/dist/schemas/ProductCardSchema.d.ts.map +1 -0
  177. package/dist/schemas/SafeSpanSchema.d.ts +13 -0
  178. package/dist/schemas/SafeSpanSchema.d.ts.map +1 -0
  179. package/dist/schemas/SectionSchema.d.ts +17 -0
  180. package/dist/schemas/SectionSchema.d.ts.map +1 -0
  181. package/dist/schemas/SelectInputFieldSchema.d.ts +27 -0
  182. package/dist/schemas/SelectInputFieldSchema.d.ts.map +1 -0
  183. package/dist/schemas/TextInputFieldSchema.d.ts +22 -0
  184. package/dist/schemas/TextInputFieldSchema.d.ts.map +1 -0
  185. package/dist/schemas/ThemeSwitcherSchema.d.ts +19 -0
  186. package/dist/schemas/ThemeSwitcherSchema.d.ts.map +1 -0
  187. package/dist/schemas/index.d.ts +33 -0
  188. package/dist/schemas/index.d.ts.map +1 -0
  189. package/dist/schemas/types.d.ts +7 -0
  190. package/dist/schemas/types.d.ts.map +1 -0
  191. package/dist/templates/TemplateResolver.d.ts +52 -0
  192. package/dist/templates/TemplateResolver.d.ts.map +1 -0
  193. package/dist/templates/index.d.ts +7 -0
  194. package/dist/templates/index.d.ts.map +1 -0
  195. package/dist/tests/ConsoleWarningTest.d.ts +5 -0
  196. package/dist/tests/ConsoleWarningTest.d.ts.map +1 -0
  197. package/dist/tests/StorageKeyTest.d.ts +6 -0
  198. package/dist/tests/StorageKeyTest.d.ts.map +1 -0
  199. package/dist/tests/ThemeStorageKeyTest.d.ts +6 -0
  200. package/dist/tests/ThemeStorageKeyTest.d.ts.map +1 -0
  201. package/dist/types/CacheProvider.d.ts +18 -0
  202. package/dist/types/CacheProvider.d.ts.map +1 -0
  203. package/dist/types/ContentProxy.d.ts +47 -0
  204. package/dist/types/ContentProxy.d.ts.map +1 -0
  205. package/dist/types/DataBinding.d.ts +7 -0
  206. package/dist/types/DataBinding.d.ts.map +1 -0
  207. package/dist/types/DataProvider.d.ts +7 -0
  208. package/dist/types/DataProvider.d.ts.map +1 -0
  209. package/dist/types/DataTypes.d.ts +185 -0
  210. package/dist/types/DataTypes.d.ts.map +1 -0
  211. package/dist/types/TemplateProvider.d.ts +10 -0
  212. package/dist/types/TemplateProvider.d.ts.map +1 -0
  213. package/dist/types/TemplateResolver.d.ts +23 -0
  214. package/dist/types/TemplateResolver.d.ts.map +1 -0
  215. package/dist/types/index.d.ts +81 -0
  216. package/dist/types/index.d.ts.map +1 -0
  217. package/dist/utils/breakpoints.d.ts +35 -0
  218. package/dist/utils/breakpoints.d.ts.map +1 -0
  219. package/dist/utils/customPaletteManager.d.ts +8 -0
  220. package/dist/utils/customPaletteManager.d.ts.map +1 -0
  221. package/dist/utils/dimensions.d.ts +34 -0
  222. package/dist/utils/dimensions.d.ts.map +1 -0
  223. package/dist/utils/htmlTransform.d.ts +44 -0
  224. package/dist/utils/htmlTransform.d.ts.map +1 -0
  225. package/dist/utils/index.d.ts +15 -0
  226. package/dist/utils/index.d.ts.map +1 -0
  227. package/dist/utils/logger.d.ts +14 -0
  228. package/dist/utils/logger.d.ts.map +1 -0
  229. package/dist/utils/paletteUtils.d.ts +38 -0
  230. package/dist/utils/paletteUtils.d.ts.map +1 -0
  231. package/dist/utils/persistenceUtils.d.ts +31 -0
  232. package/dist/utils/persistenceUtils.d.ts.map +1 -0
  233. package/dist/utils/reactUtils.d.ts +24 -0
  234. package/dist/utils/reactUtils.d.ts.map +1 -0
  235. package/dist/utils/spacing.d.ts +34 -0
  236. package/dist/utils/spacing.d.ts.map +1 -0
  237. package/dist/utils/themePerformanceMonitor.d.ts +32 -0
  238. package/dist/utils/themePerformanceMonitor.d.ts.map +1 -0
  239. package/dist/utils/themeUtils.d.ts +27 -0
  240. package/dist/utils/themeUtils.d.ts.map +1 -0
  241. package/package.json +141 -0
  242. package/src/__tests__/components/Logo.test.js +172 -0
  243. package/src/__tests__/contexts/DataContext.test.js +505 -0
  244. package/src/__tests__/contexts/PaletteContext.test.js +115 -0
  245. package/src/__tests__/contexts/ThemeContext.test.js +123 -0
  246. package/src/__tests__/utils/paletteUtils.test.js +142 -0
  247. package/src/__tests__/utils/themeUtils.test.js +142 -0
  248. package/src/components/AccessibilityChecker.tsx +264 -0
  249. package/src/components/Html.tsx +191 -0
  250. package/src/components/Logo.css +217 -0
  251. package/src/components/Logo.tsx +370 -0
  252. package/src/components/Markdown.tsx +191 -0
  253. package/src/components/QwickApp.css +257 -0
  254. package/src/components/QwickApp.tsx +157 -0
  255. package/src/components/QwickAppsLogo.tsx +77 -0
  256. package/src/components/ResponsiveMenu.css +416 -0
  257. package/src/components/ResponsiveMenu.tsx +310 -0
  258. package/src/components/SafeSpan.tsx +128 -0
  259. package/src/components/Scaffold.css +541 -0
  260. package/src/components/Scaffold.tsx +463 -0
  261. package/src/components/__tests__/Article.test.tsx +419 -0
  262. package/src/components/__tests__/Button.test.tsx +702 -0
  263. package/src/components/__tests__/CardListGrid.test.tsx +478 -0
  264. package/src/components/__tests__/ChoiceInputField.test.tsx +864 -0
  265. package/src/components/__tests__/Code.test.tsx +595 -0
  266. package/src/components/__tests__/Content.integration.test.tsx +193 -0
  267. package/src/components/__tests__/Content.test.tsx +504 -0
  268. package/src/components/__tests__/CoverImageHeader.test.tsx +456 -0
  269. package/src/components/__tests__/FeatureCard.integration.test.tsx +384 -0
  270. package/src/components/__tests__/FeatureGrid.integration.test.tsx +364 -0
  271. package/src/components/__tests__/FeatureGrid.test.tsx +494 -0
  272. package/src/components/__tests__/Footer.test.tsx +544 -0
  273. package/src/components/__tests__/FormBlock.test.tsx +857 -0
  274. package/src/components/__tests__/HeroBlock.integration.test.tsx +272 -0
  275. package/src/components/__tests__/HeroBlock.test.tsx +463 -0
  276. package/src/components/__tests__/Html.test.tsx +174 -0
  277. package/src/components/__tests__/HtmlInputField.test.tsx +856 -0
  278. package/src/components/__tests__/Markdown.test.tsx +233 -0
  279. package/src/components/__tests__/PageBannerHeader.test.tsx +614 -0
  280. package/src/components/__tests__/PaletteSwitcher.test.tsx +864 -0
  281. package/src/components/__tests__/ProductCard.test.tsx +377 -0
  282. package/src/components/__tests__/SafeSpan.integration.test.tsx +123 -0
  283. package/src/components/__tests__/SafeSpan.simple.test.tsx +65 -0
  284. package/src/components/__tests__/SafeSpan.test.tsx +388 -0
  285. package/src/components/__tests__/Section.integration.test.tsx +288 -0
  286. package/src/components/__tests__/Section.test.tsx +494 -0
  287. package/src/components/__tests__/SelectInputField.test.tsx +886 -0
  288. package/src/components/__tests__/TextInputField.test.tsx +749 -0
  289. package/src/components/__tests__/ThemeSwitcher.test.tsx +777 -0
  290. package/src/components/blocks/Article.tsx +194 -0
  291. package/src/components/blocks/CardListGrid.tsx +132 -0
  292. package/src/components/blocks/Code.tsx +313 -0
  293. package/src/components/blocks/Content.tsx +265 -0
  294. package/src/components/blocks/CoverImageHeader.css +17 -0
  295. package/src/components/blocks/CoverImageHeader.tsx +435 -0
  296. package/src/components/blocks/FeatureCard.tsx +321 -0
  297. package/src/components/blocks/FeatureGrid.tsx +147 -0
  298. package/src/components/blocks/Footer.tsx +343 -0
  299. package/src/components/blocks/HeroBlock.tsx +280 -0
  300. package/src/components/blocks/PageBannerHeader.tsx +471 -0
  301. package/src/components/blocks/ProductCard.tsx +472 -0
  302. package/src/components/blocks/Section.tsx +209 -0
  303. package/src/components/blocks/index.ts +37 -0
  304. package/src/components/buttons/Button.tsx +233 -0
  305. package/src/components/buttons/PaletteSwitcher.tsx +268 -0
  306. package/src/components/buttons/ThemeSwitcher.tsx +283 -0
  307. package/src/components/buttons/index.ts +11 -0
  308. package/src/components/forms/FormBlock.tsx +291 -0
  309. package/src/components/forms/index.ts +7 -0
  310. package/src/components/index.ts +37 -0
  311. package/src/components/input/ChoiceInputField.tsx +188 -0
  312. package/src/components/input/HtmlInputField.tsx +326 -0
  313. package/src/components/input/SelectInputField.tsx +197 -0
  314. package/src/components/input/TextField.tsx +47 -0
  315. package/src/components/input/TextInputField.tsx +144 -0
  316. package/src/components/input/index.ts +17 -0
  317. package/src/components/layout/GridCell.tsx +46 -0
  318. package/src/components/layout/GridCellWrapper.tsx +87 -0
  319. package/src/components/layout/GridLayout.tsx +169 -0
  320. package/src/components/layout/index.ts +13 -0
  321. package/src/components/menu/Menu.tsx +0 -0
  322. package/src/components/menu/MenuItem.tsx +32 -0
  323. package/src/components/menu/index.ts +6 -0
  324. package/src/components/pages/FormPage.tsx +108 -0
  325. package/src/components/pages/Page.css +460 -0
  326. package/src/components/pages/Page.tsx +345 -0
  327. package/src/components/pages/index.ts +11 -0
  328. package/src/contexts/DataContext.tsx +355 -0
  329. package/src/contexts/DimensionsContext.tsx +154 -0
  330. package/src/contexts/PaletteContext.tsx +217 -0
  331. package/src/contexts/QwickAppContext.tsx +95 -0
  332. package/src/contexts/ThemeContext.tsx +376 -0
  333. package/src/contexts/index.ts +9 -0
  334. package/src/hooks/__tests__/useDataBinding.test.tsx.disabled +229 -0
  335. package/src/hooks/index.ts +11 -0
  336. package/src/hooks/useBaseProps.ts +267 -0
  337. package/src/hooks/useDataBinding.ts +77 -0
  338. package/src/index.ts +23 -0
  339. package/src/palettes/PaletteAutumn.css +172 -0
  340. package/src/palettes/PaletteAutumn.ts +16 -0
  341. package/src/palettes/PaletteCosmic.css +172 -0
  342. package/src/palettes/PaletteCosmic.ts +16 -0
  343. package/src/palettes/PaletteDefault.css +178 -0
  344. package/src/palettes/PaletteDefault.ts +17 -0
  345. package/src/palettes/PaletteOcean.css +172 -0
  346. package/src/palettes/PaletteOcean.ts +16 -0
  347. package/src/palettes/PaletteSpring.css +160 -0
  348. package/src/palettes/PaletteSpring.ts +16 -0
  349. package/src/palettes/PaletteWinter.css +172 -0
  350. package/src/palettes/PaletteWinter.ts +16 -0
  351. package/src/palettes/index.css +12 -0
  352. package/src/palettes/index.ts +29 -0
  353. package/src/schemas/ActionSchema.ts +140 -0
  354. package/src/schemas/ArticleSchema.ts +35 -0
  355. package/src/schemas/ButtonSchema.ts +99 -0
  356. package/src/schemas/CardListGridSchema.ts +102 -0
  357. package/src/schemas/ChoiceInputFieldSchema.ts +89 -0
  358. package/src/schemas/CodeSchema.ts +88 -0
  359. package/src/schemas/ContentSchema.ts +128 -0
  360. package/src/schemas/CoverImageHeaderSchema.ts +208 -0
  361. package/src/schemas/FeatureCardSchema.ts +161 -0
  362. package/src/schemas/FeatureGridSchema.ts +87 -0
  363. package/src/schemas/FeatureItemSchema.ts +68 -0
  364. package/src/schemas/FooterItemSchema.ts +57 -0
  365. package/src/schemas/FooterSchema.ts +116 -0
  366. package/src/schemas/FooterSectionSchema.ts +50 -0
  367. package/src/schemas/FormBlockSchema.ts +102 -0
  368. package/src/schemas/HeaderActionSchema.ts +83 -0
  369. package/src/schemas/HeroBlockSchema.ts +149 -0
  370. package/src/schemas/HtmlInputFieldSchema.ts +88 -0
  371. package/src/schemas/MetadataItemSchema.ts +35 -0
  372. package/src/schemas/PageBannerHeaderSchema.ts +206 -0
  373. package/src/schemas/PaletteSwitcherSchema.ts +66 -0
  374. package/src/schemas/ProductCardSchema.ts +264 -0
  375. package/src/schemas/SafeSpanSchema.ts +36 -0
  376. package/src/schemas/SectionSchema.ts +106 -0
  377. package/src/schemas/SelectInputFieldSchema.ts +137 -0
  378. package/src/schemas/TextInputFieldSchema.ts +129 -0
  379. package/src/schemas/ThemeSwitcherSchema.ts +97 -0
  380. package/src/schemas/__tests__/builders.test.ts +313 -0
  381. package/src/schemas/index.ts +34 -0
  382. package/src/setupTests.js +60 -0
  383. package/src/stories/Article.stories.tsx +549 -0
  384. package/src/stories/Button.stories.tsx +498 -0
  385. package/src/stories/CardListGrid.stories.tsx +539 -0
  386. package/src/stories/ChoiceInputField.stories.tsx +591 -0
  387. package/src/stories/Code.stories.tsx +711 -0
  388. package/src/stories/Content.stories.tsx +463 -0
  389. package/src/stories/CoverImageHeader.stories.tsx +794 -0
  390. package/src/stories/DataBinding.advanced.stories.tsx +548 -0
  391. package/src/stories/DataBinding.stories.tsx +452 -0
  392. package/src/stories/DataProvider.stories.tsx +1361 -0
  393. package/src/stories/FeatureCard.stories.tsx +642 -0
  394. package/src/stories/FeatureGrid.stories.tsx +669 -0
  395. package/src/stories/Footer.stories.tsx +724 -0
  396. package/src/stories/FormBlock.stories.tsx +834 -0
  397. package/src/stories/HeroBlock.stories.tsx +442 -0
  398. package/src/stories/Html.stories.tsx +264 -0
  399. package/src/stories/HtmlInputField.stories.tsx +558 -0
  400. package/src/stories/Introduction.stories.tsx +721 -0
  401. package/src/stories/LayoutBlocks.stories.tsx +382 -0
  402. package/src/stories/LayoutSystem.stories.tsx +253 -0
  403. package/src/stories/Logo.stories.tsx +400 -0
  404. package/src/stories/Markdown.stories.tsx +349 -0
  405. package/src/stories/Page.stories.tsx +762 -0
  406. package/src/stories/PageBannerHeader.stories.tsx +949 -0
  407. package/src/stories/PaletteSwitcher.stories.tsx +156 -0
  408. package/src/stories/ProductCard.stories.tsx +504 -0
  409. package/src/stories/QwickApp.stories.tsx +461 -0
  410. package/src/stories/ResponsiveMenu.stories.tsx +299 -0
  411. package/src/stories/SafeSpan.stories.tsx +612 -0
  412. package/src/stories/Section.stories.tsx +613 -0
  413. package/src/stories/SelectInputField.stories.tsx +605 -0
  414. package/src/stories/TextInputField.stories.tsx +526 -0
  415. package/src/stories/ThemeSwitcher.stories.tsx +170 -0
  416. package/src/stories/form/FormComponents.stories.tsx +588 -0
  417. package/src/templates/TemplateResolver.ts +156 -0
  418. package/src/templates/index.ts +6 -0
  419. package/src/tests/ConsoleWarningTest.tsx +30 -0
  420. package/src/tests/StorageKeyTest.tsx +110 -0
  421. package/src/tests/ThemeStorageKeyTest.tsx +114 -0
  422. package/src/types/CacheProvider.ts +14 -0
  423. package/src/types/ContentProxy.ts +99 -0
  424. package/src/types/DataTypes.ts +196 -0
  425. package/src/types/TemplateProvider.ts +9 -0
  426. package/src/types/TemplateResolver.ts +26 -0
  427. package/src/types/index.ts +99 -0
  428. package/src/utils/__tests__/createDataDrivenComponent.test.tsx.disabled +193 -0
  429. package/src/utils/__tests__/htmlTransform.test.tsx +255 -0
  430. package/src/utils/breakpoints.ts +87 -0
  431. package/src/utils/customPaletteManager.js +214 -0
  432. package/src/utils/dimensions.ts +147 -0
  433. package/src/utils/htmlTransform.tsx +323 -0
  434. package/src/utils/index.ts +16 -0
  435. package/src/utils/logger.ts +28 -0
  436. package/src/utils/paletteUtils.ts +78 -0
  437. package/src/utils/persistenceUtils.ts +107 -0
  438. package/src/utils/reactUtils.tsx +37 -0
  439. package/src/utils/spacing.ts +155 -0
  440. package/src/utils/themePerformanceMonitor.js +113 -0
  441. package/src/utils/themeUtils.ts +67 -0
@@ -0,0 +1,12 @@
1
+ /**
2
+ * AccessibilityChecker Component - Development tool for checking theme accessibility
3
+ *
4
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
5
+ *
6
+ * This component is only rendered in development mode and provides
7
+ * accessibility insights for the current theme/palette combination.
8
+ */
9
+ import React from 'react';
10
+ declare const AccessibilityChecker: React.FC;
11
+ export default AccessibilityChecker;
12
+ //# sourceMappingURL=AccessibilityChecker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessibilityChecker.d.ts","sourceRoot":"","sources":["../../src/components/AccessibilityChecker.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAwCnD,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAoNjC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Html Component - Transforms HTML strings into Framework components
3
+ *
4
+ * Accepts HTML string as children and transforms HTML elements to Framework
5
+ * components using configurable rules. Default transform rules include:
6
+ * - <header> → Remove (for articles) or transform to PageBannerHeader
7
+ * - <pre><code> → Code component with language detection
8
+ * - <section class="blog-section"> → Section component
9
+ * - <button> → Button component
10
+ * - Fall back to SafeSpan for other elements
11
+ *
12
+ * Features:
13
+ * - Sanitization enabled by default (lenient - allow Framework components)
14
+ * - Configurable transformation rules
15
+ * - TypeScript support with proper props interface
16
+ * - Error handling and fallback to SafeSpan
17
+ *
18
+ * Usage:
19
+ * - Basic: <Html>{htmlString}</Html>
20
+ * - Custom rules: <Html transformConfig={customConfig}>{htmlString}</Html>
21
+ *
22
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
23
+ */
24
+ import React from 'react';
25
+ import { WithBaseProps } from '../hooks';
26
+ import { TransformConfig } from '../utils/htmlTransform';
27
+ export interface HtmlProps extends WithBaseProps {
28
+ /** HTML content as string */
29
+ children: string;
30
+ /** Custom transformation configuration */
31
+ transformConfig?: TransformConfig;
32
+ /** Whether to strip header elements (useful for articles) */
33
+ stripHeaders?: boolean;
34
+ /** Whether to sanitize HTML (default: true) */
35
+ sanitize?: boolean;
36
+ /** Custom sanitization options */
37
+ sanitizeOptions?: any;
38
+ /** Fallback content when HTML is empty */
39
+ placeholder?: string;
40
+ /** Container element type */
41
+ component?: React.ElementType;
42
+ }
43
+ /**
44
+ * Html component - transforms HTML strings to React components
45
+ */
46
+ export declare function Html({ children, transformConfig, stripHeaders, sanitize, sanitizeOptions, placeholder, component, ...restProps }: HtmlProps): import("react/jsx-runtime").JSX.Element | null;
47
+ export default Html;
48
+ //# sourceMappingURL=Html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Html.d.ts","sourceRoot":"","sources":["../../src/components/Html.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoC,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3E,OAAO,EACL,eAAe,EAIhB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,EACnB,QAAa,EACb,eAAe,EACf,YAAoB,EACpB,QAAe,EACf,eAAe,EACf,WAAW,EACX,SAAiB,EACjB,GAAG,SAAS,EACb,EAAE,SAAS,kDA4HX;AAED,eAAe,IAAI,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Dynamic Logo Component - Generic theme-aware logo
3
+ *
4
+ * Features:
5
+ * - Automatic text width calculation with dynamic SVG sizing
6
+ * - Semantic badge positioning (top-left, top-right, center, etc.)
7
+ * - Customizable badge position via custom coordinates or relative offset
8
+ * - Multiple badge shapes: circle, star, square, heart
9
+ * - Theme-aware styling with multiple variants
10
+ * - Accessibility support with proper ARIA labels
11
+ * - Customizable styling via CSS classes for each text part
12
+ * - Text formatting with escape sequences
13
+ *
14
+ * Text Formatting (TWO PARTS MAXIMUM):
15
+ * - Use \n for line breaks (second part appears on new line)
16
+ * - Use \s for explicit spaces (useful for custom spacing)
17
+ * - Default: Two-word logos appear as one word in two colors (no space)
18
+ * - Limitation: Only TWO parts supported - multiple \n will not create more than two lines
19
+ * - Examples: "QwickApps" (one word, one color), "Qwick Apps" (two parts, two colors), "Qwick\sApps" (two parts with space), "Qwick\nApps" (two parts on two lines)
20
+ *
21
+ * Badge Positioning:
22
+ * - Semantic: Use 'top-left', 'top-right', 'center', etc. (automatically adapts to logo size)
23
+ * - Default: 'top-right' - positions at top-right of text
24
+ * - Offset: Use badgeOffset to fine-tune any position (automatically scales with size)
25
+ * - None: Use 'none' to hide the badge
26
+ * - Flexible: Combine any semantic position with custom offsets for precise control
27
+ *
28
+ * Text Styling:
29
+ * - Use firstPartClass and secondPartClass for custom CSS styling
30
+ * - Default classes: 'logo-first-part' and 'logo-second-part'
31
+ * - Font family and weight can be set via props for basic customization
32
+ * - Advanced styling (colors, effects, transforms) via CSS classes
33
+ *
34
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
35
+ */
36
+ import React from 'react';
37
+ import { WithBaseProps } from '../hooks/useBaseProps';
38
+ import './Logo.css';
39
+ export type LogoVariant = 'default' | 'high-contrast' | 'monochrome' | 'on-primary';
40
+ export type LogoSize = 'tiny' | 'small' | 'medium' | 'large' | 'extra-large';
41
+ export type LogoBadgeShape = 'circle' | 'star' | 'square' | 'heart';
42
+ export type BadgePositionType = 'none' | 'top-left' | 'top-center' | 'top-right' | 'center-left' | 'center' | 'center-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
43
+ export interface BadgeOffset {
44
+ /** Horizontal offset from the calculated position (positive = right, negative = left) */
45
+ x?: number;
46
+ /** Vertical offset from the calculated position (positive = down, negative = up) */
47
+ y?: number;
48
+ }
49
+ export interface LogoProps extends WithBaseProps, Omit<React.SVGProps<SVGSVGElement>, 'width' | 'height' | 'className' | 'style' | 'role' | 'onClick' | 'onMouseEnter' | 'onMouseLeave' | 'onFocus' | 'onBlur'> {
50
+ /** Logo name/text to display. Supports up to TWO parts with \n for line breaks and \s for explicit spaces. */
51
+ name?: string;
52
+ /** Click handler for the logo */
53
+ onClick?: (event: React.MouseEvent<SVGSVGElement>) => void;
54
+ /** Additional inline styles */
55
+ style?: React.CSSProperties;
56
+ /** Visual variant of the logo */
57
+ variant?: LogoVariant;
58
+ /** Size variant of the logo (controls both text size and visual height) */
59
+ size?: LogoSize;
60
+ /** Additional CSS class names */
61
+ className?: string;
62
+ /** Badge position and visibility. 'none' hides the badge, others show it at the specified position. */
63
+ badge?: BadgePositionType;
64
+ /** Shape of the badge */
65
+ badgeShape?: LogoBadgeShape;
66
+ /** Offset from the calculated badge position. Applied after position calculation. Automatically scales with logo size. */
67
+ badgeOffset?: BadgeOffset;
68
+ /** Font family for the logo text */
69
+ fontFamily?: string;
70
+ /** Font weight for the logo text */
71
+ fontWeight?: string | number;
72
+ /** CSS class name for the first part of the logo text. Defaults to 'logo-first-part'. */
73
+ firstPartClass?: string;
74
+ /** CSS class name for the second part of the logo text. Defaults to 'logo-second-part'. */
75
+ secondPartClass?: string;
76
+ }
77
+ declare const Logo: React.FC<LogoProps>;
78
+ export default Logo;
79
+ //# sourceMappingURL=Logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logo.d.ts","sourceRoot":"","sources":["../../src/components/Logo.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,aAAa,EAAoC,MAAM,uBAAuB,CAAC;AACxF,OAAO,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,GAAG,YAAY,GAAG,YAAY,CAAC;AACpF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAC;AAC7E,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AACpE,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,QAAQ,GACR,cAAc,GACd,aAAa,GACb,eAAe,GACf,cAAc,CAAC;AAEnB,MAAM,WAAW,WAAW;IAC1B,yFAAyF;IACzF,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,oFAAoF;IACpF,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,SAAU,SAAQ,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC7M,8GAA8G;IAC9G,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC3D,+BAA+B;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,iCAAiC;IACjC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,yBAAyB;IACzB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,0HAA0H;IAC1H,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAoR7B,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Markdown Component - Transforms Markdown strings into Framework components
3
+ *
4
+ * Accepts Markdown string as children and converts it through a
5
+ * Markdown → HTML → React components pipeline using the Html component
6
+ * with Markdown-optimized transformation rules.
7
+ *
8
+ * Features:
9
+ * - Full Markdown syntax support via marked library
10
+ * - Transform rules optimized for Markdown content
11
+ * - Code block syntax highlighting
12
+ * - Preserves inline code elements (no transformation)
13
+ * - TypeScript support with proper props interface
14
+ * - Error handling and fallback to Html component
15
+ *
16
+ * Usage:
17
+ * - Basic: <Markdown>{markdownString}</Markdown>
18
+ * - Custom config: <Markdown htmlTransformConfig={customConfig}>{markdownString}</Markdown>
19
+ *
20
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
21
+ */
22
+ import { marked } from 'marked';
23
+ import React from 'react';
24
+ import { WithBaseProps } from '../hooks';
25
+ import { TransformConfig } from '../utils/htmlTransform';
26
+ export interface MarkdownProps extends WithBaseProps {
27
+ /** Markdown content as string */
28
+ children: string;
29
+ /** Custom transformation configuration for HTML conversion */
30
+ htmlTransformConfig?: TransformConfig;
31
+ /** Whether to sanitize HTML output (default: true) */
32
+ sanitize?: boolean;
33
+ /** Custom sanitization options */
34
+ sanitizeOptions?: any;
35
+ /** Fallback content when Markdown is empty */
36
+ placeholder?: string;
37
+ /** Container element type */
38
+ component?: React.ElementType;
39
+ /** Marked options for Markdown parsing */
40
+ markedOptions?: marked.MarkedOptions;
41
+ }
42
+ /**
43
+ * Markdown component - converts Markdown to React components via Html
44
+ */
45
+ export declare function Markdown({ children, htmlTransformConfig, sanitize, sanitizeOptions, placeholder, component, markedOptions, ...restProps }: MarkdownProps): import("react/jsx-runtime").JSX.Element | null;
46
+ export default Markdown;
47
+ //# sourceMappingURL=Markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/components/Markdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoC,aAAa,EAAE,MAAM,UAAU,CAAC;AAG3E,OAAO,EAAE,eAAe,EAAwB,MAAM,wBAAwB,CAAC;AAE/E,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,eAAe,CAAC;IACtC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IAC9B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;CACtC;AAsBD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAa,EACb,mBAAmB,EACnB,QAAe,EACf,eAAe,EACf,WAAW,EACX,SAAiB,EACjB,aAAa,EACb,GAAG,SAAS,EACb,EAAE,aAAa,kDA6Gf;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * QwickApp - Main application wrapper with routing support
3
+ *
4
+ * This component eliminates the need to manually set up provider hierarchy.
5
+ * Provides theme system, app context, optional scaffolding, and routing.
6
+ *
7
+ * Example usage:
8
+ * ```tsx
9
+ * import { BrowserRouter } from 'react-router-dom';
10
+ * import { QwickApp, AuthProvider, JsonDataProvider } from '@qwickapps/react-framework';
11
+ *
12
+ * function App() {
13
+ * const dataSource = {
14
+ * dataProvider: new JsonDataProvider({ data: { company: [...] } }),
15
+ * cacheProvider: true, // Use default MemoryCacheProvider
16
+ * enableLogging: false
17
+ * };
18
+ *
19
+ * return (
20
+ * <QwickApp appName="My App" appId="my.app" dataSource={dataSource}>
21
+ * <AuthProvider router={<BrowserRouter />} user={user}>
22
+ * <Route path="/" component={HomePage} />
23
+ * <Route path="/admin" component={AdminPage} requiresRole="admin" />
24
+ * </AuthProvider>
25
+ * </QwickApp>
26
+ * );
27
+ * }
28
+ * ```
29
+ *
30
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
31
+ */
32
+ import React from 'react';
33
+ import { type ThemeMode } from '../contexts';
34
+ import { type QwickAppContextValue, type QwickAppProps } from '../contexts/QwickAppContext';
35
+ import { type TemplateResolverConfig } from '../types';
36
+ import './QwickApp.css';
37
+ interface QwickAppComponentProps extends QwickAppProps {
38
+ /** Child components to render when no routing is used */
39
+ children?: React.ReactNode;
40
+ /** CSS class name to apply to the root element */
41
+ className?: string;
42
+ /** Inline styles to apply to the root element */
43
+ style?: React.CSSProperties;
44
+ /** Additional content to show in footer */
45
+ footerContent?: React.ReactNode;
46
+ /** Theme mode preference (light/dark/auto) */
47
+ defaultTheme?: ThemeMode;
48
+ /** Optional router component to wrap the app (e.g., <BrowserRouter />, <HashRouter />) */
49
+ router?: React.ReactElement;
50
+ /** Data source configuration for content management and template resolution */
51
+ dataSource?: TemplateResolverConfig;
52
+ }
53
+ export declare const QwickApp: React.FC<QwickAppComponentProps>;
54
+ export declare const useQwickApp: () => QwickAppContextValue;
55
+ export default QwickApp;
56
+ //# sourceMappingURL=QwickApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QwickApp.d.ts","sourceRoot":"","sources":["../../src/components/QwickApp.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAiC,MAAM,OAAO,CAAC;AACtD,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAmB,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC7G,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,gBAAgB,CAAC;AAMxB,UAAU,sBAAuB,SAAQ,aAAa;IACpD,yDAAyD;IACzD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,2CAA2C;IAC3C,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC5B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,sBAAsB,CAAC;CAErC;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAuFrD,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,oBAM9B,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * QwickAppsLogo - Official QwickApps brand logo
3
+ *
4
+ * Features the official QwickApps logo SVG with proper brand colors
5
+ * and consistent sizing. This component should be used instead of the
6
+ * generic Logo component when displaying the QwickApps brand.
7
+ *
8
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
9
+ */
10
+ import React from 'react';
11
+ import { WithBaseProps } from '../hooks/useBaseProps';
12
+ export type QwickAppsLogoSize = 'small' | 'medium' | 'large';
13
+ export interface QwickAppsLogoProps extends WithBaseProps, Omit<React.SVGProps<SVGSVGElement>, 'width' | 'height' | 'className' | 'style' | 'onClick' | 'onBlur' | 'onFocus' | 'onMouseEnter' | 'onMouseLeave' | 'role'> {
14
+ /** Size variant of the logo */
15
+ size?: QwickAppsLogoSize;
16
+ /** Click handler for the logo */
17
+ onClick?: (event: React.MouseEvent<SVGSVGElement>) => void;
18
+ /** Additional inline styles */
19
+ style?: React.CSSProperties;
20
+ /** Additional CSS class names */
21
+ className?: string;
22
+ }
23
+ declare const QwickAppsLogo: React.FC<QwickAppsLogoProps>;
24
+ export default QwickAppsLogo;
25
+ //# sourceMappingURL=QwickAppsLogo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QwickAppsLogo.d.ts","sourceRoot":"","sources":["../../src/components/QwickAppsLogo.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAgB,MAAM,uBAAuB,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D,MAAM,WAAW,kBAAmB,SAAQ,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,MAAM,CAAC;IACtN,+BAA+B;IAC/B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC3D,+BAA+B;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgD/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * ResponsiveMenu - Adaptive navigation component
3
+ *
4
+ * Automatically renders different navigation styles based on screen size:
5
+ * - Mobile (< 768px): Bottom navigation bar
6
+ * - Tablet (768px - 1024px): Expandable nav rail (sidebar)
7
+ * - Desktop (> 1024px): Top navigation with drawer
8
+ *
9
+ * Features:
10
+ * - Theme-aware styling
11
+ * - Customizable menu items with icons
12
+ * - Automatic logo display using QwickApp context
13
+ * - Keyboard navigation support
14
+ * - ARIA accessibility
15
+ *
16
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
17
+ */
18
+ import React from 'react';
19
+ import { WithBaseProps } from '../hooks/useBaseProps';
20
+ import './ResponsiveMenu.css';
21
+ import type { MenuItem } from './menu/MenuItem';
22
+ export interface ResponsiveMenuProps extends WithBaseProps {
23
+ /** Array of menu items to display */
24
+ items: MenuItem[];
25
+ /** Custom logo component override (uses QwickApp context by default) */
26
+ logo?: React.ReactNode;
27
+ /** Whether to show the logo (default: true) */
28
+ showLogo?: boolean;
29
+ /** Position of the logo in desktop mode ('left' | 'center' | 'right') */
30
+ logoPosition?: 'left' | 'center' | 'right';
31
+ /** Custom brand text (uses QwickApp appName by default) */
32
+ brandText?: string;
33
+ /** Callback when menu state changes (open/closed) */
34
+ onMenuToggle?: (isOpen: boolean) => void;
35
+ }
36
+ declare const ResponsiveMenu: React.FC<ResponsiveMenuProps>;
37
+ export default ResponsiveMenu;
38
+ //# sourceMappingURL=ResponsiveMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponsiveMenu.d.ts","sourceRoot":"","sources":["../../src/components/ResponsiveMenu.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,aAAa,EAAoC,MAAM,uBAAuB,CAAC;AAGxF,OAAO,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,qCAAqC;IACrC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,wEAAwE;IACxE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3C,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAID,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqQjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * SafeSpan Component - Safely renders HTML content with sanitization
3
+ *
4
+ * Enhanced with data binding support through dataSource prop.
5
+ *
6
+ * Usage:
7
+ * - Traditional: <SafeSpan html="<p>Hello</p>" placeholder="Loading..." />
8
+ * - Data-driven: <SafeSpan dataSource="company.description" />
9
+ *
10
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
11
+ */
12
+ import { WithDataBinding, ModelProps } from '@qwickapps/schema';
13
+ import SafeSpanModel from '../schemas/SafeSpanSchema';
14
+ type SafeSpanViewProps = ModelProps<SafeSpanModel>;
15
+ export interface SafeSpanProps extends SafeSpanViewProps, WithDataBinding {
16
+ }
17
+ /**
18
+ * SafeSpan component with data binding support
19
+ * Supports both traditional props and dataSource-driven rendering
20
+ */
21
+ declare function SafeSpan(props: SafeSpanProps): import("react/jsx-runtime").JSX.Element | null;
22
+ export default SafeSpan;
23
+ //# sourceMappingURL=SafeSpan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeSpan.d.ts","sourceRoot":"","sources":["../../src/components/SafeSpan.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,aAAa,MAAM,2BAA2B,CAAC;AAEtD,KAAK,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;AACnD,MAAM,WAAW,aAAc,SAAQ,iBAAiB,EAAE,eAAe;CAAG;AAyE5E;;;GAGG;AACH,iBAAS,QAAQ,CAAC,KAAK,EAAE,aAAa,kDA8BrC;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Scaffold - Complete application scaffolding system
3
+ *
4
+ * Provides proper Material UI compliant layout scaffolding with:
5
+ * - AppBar with responsive behavior
6
+ * - Navigation rail/drawer with proper item limits
7
+ * - Bottom navigation with 3-5 items
8
+ * - Content area with proper spacing to avoid overlap
9
+ * - Responsive breakpoints following Material Design
10
+ *
11
+ * Material UI Navigation Guidelines:
12
+ * - Bottom Navigation: 3-5 destinations (excess in drawer)
13
+ * - Navigation Rail: 3-7 destinations (excess in drawer)
14
+ * - Navigation Drawer: All items, organized by priority
15
+ *
16
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
17
+ */
18
+ import React from 'react';
19
+ import './Scaffold.css';
20
+ import type { MenuItem } from './menu/MenuItem';
21
+ export interface AppBarProps {
22
+ /** Title to display in the app bar */
23
+ title?: string;
24
+ /** Actions to display on the right side */
25
+ actions?: React.ReactNode;
26
+ /** Whether to show the menu button (for drawer toggle) */
27
+ showMenuButton?: boolean;
28
+ /** Custom logo override */
29
+ logo?: React.ReactNode;
30
+ /** Logo position when in app bar */
31
+ logoPosition?: 'left' | 'center';
32
+ }
33
+ export interface ScaffoldProps {
34
+ /** Child components (page content) */
35
+ children: React.ReactNode;
36
+ /** Primary navigation items */
37
+ navigationItems: MenuItem[];
38
+ /** App bar configuration */
39
+ appBar?: AppBarProps;
40
+ /** Additional CSS class */
41
+ className?: string;
42
+ /** Whether to show app bar (default: true) */
43
+ showAppBar?: boolean;
44
+ /** Custom app bar height (default: 64px) */
45
+ appBarHeight?: number;
46
+ /** Application name for display purposes */
47
+ appName?: string;
48
+ /** Whether to show theme switcher in app bar (default: false) */
49
+ showThemeSwitcher?: boolean;
50
+ /** Whether to show palette switcher in app bar (default: false) */
51
+ showPaletteSwitcher?: boolean;
52
+ /** Callback when logo is clicked */
53
+ onLogoClick?: () => void;
54
+ }
55
+ declare const Scaffold: React.FC<ScaffoldProps>;
56
+ export default Scaffold;
57
+ //# sourceMappingURL=Scaffold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scaffold.d.ts","sourceRoot":"","sources":["../../src/components/Scaffold.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAMnD,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,+BAA+B;IAC/B,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAWD,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAgYrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Article - Transforms HTML content to use framework components with data binding support
3
+ *
4
+ * Automatically transforms:
5
+ * - <pre><code> blocks to Code components with syntax highlighting
6
+ * - Complex <code> elements to Code components
7
+ * - <section class="blog-section"> to Section components
8
+ * - Other framework-compatible elements
9
+ * - Preserves all other HTML structure and attributes
10
+ *
11
+ * Supports both traditional props and data binding through dataSource.
12
+ *
13
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
14
+ */
15
+ import { WithDataBinding, ModelProps } from '@qwickapps/schema';
16
+ import ArticleModel from '../../schemas/ArticleSchema';
17
+ type ArticleViewProps = ModelProps<ArticleModel>;
18
+ export interface ArticleProps extends ArticleViewProps, WithDataBinding {
19
+ }
20
+ declare function Article(props: ArticleProps): import("react/jsx-runtime").JSX.Element | null;
21
+ export default Article;
22
+ export { Article };
23
+ //# sourceMappingURL=Article.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Article.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/Article.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAIvD,KAAK,gBAAgB,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjD,MAAM,WAAW,YAAa,SAAQ,gBAAgB,EAAE,eAAe;CACtE;AAuGD,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,kDA6DnC;AAED,eAAe,OAAO,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * CardListGrid - Generic grid layout for cards with data binding support
3
+ *
4
+ * A unified grid component that can display any type of card component
5
+ * with consistent spacing and layout. Works with ProductCard, FeatureCard,
6
+ * or any other card-like components. Supports both traditional props and
7
+ * data binding through dataSource.
8
+ *
9
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
10
+ */
11
+ import { WithDataBinding, ModelProps } from '@qwickapps/schema';
12
+ import React from 'react';
13
+ import CardListGridModel from '../../schemas/CardListGridSchema';
14
+ type CardListGridViewProps = ModelProps<CardListGridModel> & {
15
+ /** Render function for each item (traditional usage) */
16
+ renderItem?: (item: any, index: number) => React.ReactNode;
17
+ };
18
+ export interface CardListGridProps extends CardListGridViewProps, WithDataBinding {
19
+ }
20
+ declare function CardListGrid(props: CardListGridProps): import("react/jsx-runtime").JSX.Element | null;
21
+ export default CardListGrid;
22
+ export { CardListGrid };
23
+ //# sourceMappingURL=CardListGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardListGrid.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/CardListGrid.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAKjE,KAAK,qBAAqB,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG;IAC3D,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CAC5D,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB,EAAE,eAAe;CAChF;AAwDD,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,kDA+C7C;AAED,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Code - Syntax-highlighted code display component
3
+ *
4
+ * Provides consistent code block rendering with:
5
+ * - Syntax highlighting support
6
+ * - Copy to clipboard functionality
7
+ * - Light/dark theme support
8
+ * - Multiple language support
9
+ * - Responsive design
10
+ *
11
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
12
+ */
13
+ import type { WithDataBinding, ModelProps } from '@qwickapps/schema';
14
+ import CodeModel from '../../schemas/CodeSchema';
15
+ type CodeViewProps = ModelProps<CodeModel>;
16
+ export interface CodeProps extends CodeViewProps, WithDataBinding {
17
+ }
18
+ declare function Code(props: CodeProps): import("react/jsx-runtime").JSX.Element | null;
19
+ export default Code;
20
+ export { Code };
21
+ //# sourceMappingURL=Code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Code.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/Code.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,SAAS,MAAM,0BAA0B,CAAC;AAEjD,KAAK,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AAE3C,MAAM,WAAW,SAAU,SAAQ,aAAa,EAAE,eAAe;CAAG;AAuNpE,iBAAS,IAAI,CAAC,KAAK,EAAE,SAAS,kDA4D7B;AAED,eAAe,IAAI,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Content Component - General-purpose content container with data binding support
3
+ *
4
+ * Usage:
5
+ * - Traditional: <Content title="Welcome" subtitle="Get started" actions={[...]} />
6
+ * - Data-driven: <Content dataSource="pages.home.intro" />
7
+ *
8
+ * Features:
9
+ * - Optional title, subtitle, and actions
10
+ * - Variant styles: default, elevated, outlined, filled
11
+ * - Responsive spacing, max width, and alignment
12
+ * - Theme-aware and flexible for layouts
13
+ *
14
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
15
+ */
16
+ import { WithDataBinding, ModelProps } from '@qwickapps/schema';
17
+ import ContentModel from '../../schemas/ContentSchema';
18
+ type ContentViewProps = ModelProps<ContentModel>;
19
+ export interface ContentProps extends ContentViewProps, WithDataBinding {
20
+ }
21
+ declare function Content(props: ContentProps): import("react/jsx-runtime").JSX.Element | null;
22
+ export default Content;
23
+ export { Content };
24
+ //# sourceMappingURL=Content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Content.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/Content.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAMvD,KAAK,gBAAgB,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjD,MAAM,WAAW,YAAa,SAAQ,gBAAgB,EAAE,eAAe;CAAG;AA4L1E,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,kDA6CnC;AAED,eAAe,OAAO,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * CoverImageHeader - Flexible header with optional image, info section, and context menu
3
+ *
4
+ * Provides a clean header layout similar to modern app interfaces with:
5
+ * - Optional image/avatar on the left
6
+ * - Info section with overline, title, subtitle, and tags
7
+ * - Context menu with up to 3 visible actions + overflow menu
8
+ *
9
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
10
+ */
11
+ import { WithDataBinding, ModelProps } from '@qwickapps/schema';
12
+ import React from 'react';
13
+ import { WithBaseProps } from '../../hooks';
14
+ import CoverImageHeaderModel from '../../schemas/CoverImageHeaderSchema';
15
+ import './CoverImageHeader.css';
16
+ export interface HeaderAction {
17
+ /** Unique identifier for the action */
18
+ id: string;
19
+ /** Display label for the action */
20
+ label: string;
21
+ /** Icon component or JSX element */
22
+ icon?: React.ReactNode;
23
+ /** Click handler */
24
+ onClick: () => void;
25
+ /** Whether this action is disabled */
26
+ disabled?: boolean;
27
+ /** Whether this action is destructive (shows with warning styling) */
28
+ destructive?: boolean;
29
+ /** Priority for ordering (lower numbers = higher priority, shown first) */
30
+ priority?: number;
31
+ }
32
+ type CoverImageHeaderViewProps = Omit<ModelProps<CoverImageHeaderModel>, 'actions' | 'tags' | 'image'> & WithBaseProps & {
33
+ /** Image URL or React component (extended from schema string) */
34
+ image?: string | React.ReactNode;
35
+ /** Array of tag strings or JSX elements (extended from schema string[]) */
36
+ tags?: (string | React.ReactNode)[];
37
+ /** Context menu actions (extended from schema HeaderActionModel[]) */
38
+ actions?: HeaderAction[];
39
+ };
40
+ export interface CoverImageHeaderProps extends CoverImageHeaderViewProps, WithDataBinding {
41
+ }
42
+ declare function CoverImageHeader(props: CoverImageHeaderProps): import("react/jsx-runtime").JSX.Element | null;
43
+ export default CoverImageHeader;
44
+ //# sourceMappingURL=CoverImageHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoverImageHeader.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/CoverImageHeader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAgC,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,oBAAoB;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,yBAAyB,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,aAAa,GAAG;IACvH,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IACpC,sEAAsE;IACtE,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB,EAAE,eAAe;CAAG;AAoV5F,iBAAS,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,kDAqCrD;AAED,eAAe,gBAAgB,CAAC"}