@qwickapps/react-framework 1.3.4 → 1.4.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 (325) hide show
  1. package/README.md +1688 -2
  2. package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts +66 -0
  3. package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +1 -0
  4. package/dist/components/ErrorBoundary.d.ts +7 -0
  5. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  6. package/dist/components/Html.d.ts +28 -18
  7. package/dist/components/Html.d.ts.map +1 -1
  8. package/dist/components/Logo.d.ts +12 -35
  9. package/dist/components/Logo.d.ts.map +1 -1
  10. package/dist/components/Markdown.d.ts +18 -13
  11. package/dist/components/Markdown.d.ts.map +1 -1
  12. package/dist/components/QwickApp.d.ts +16 -3
  13. package/dist/components/QwickApp.d.ts.map +1 -1
  14. package/dist/components/QwickIcon.d.ts +23 -0
  15. package/dist/components/QwickIcon.d.ts.map +1 -0
  16. package/dist/components/SafeSpan.d.ts +12 -5
  17. package/dist/components/SafeSpan.d.ts.map +1 -1
  18. package/dist/components/Scaffold.d.ts.map +1 -1
  19. package/dist/components/base/ModelView.d.ts +101 -0
  20. package/dist/components/base/ModelView.d.ts.map +1 -0
  21. package/dist/components/base/index.d.ts +11 -0
  22. package/dist/components/base/index.d.ts.map +1 -0
  23. package/dist/components/blocks/Article.d.ts +12 -2
  24. package/dist/components/blocks/Article.d.ts.map +1 -1
  25. package/dist/components/blocks/Code.d.ts +13 -2
  26. package/dist/components/blocks/Code.d.ts.map +1 -1
  27. package/dist/components/blocks/Content.d.ts.map +1 -1
  28. package/dist/components/blocks/CoverImageHeader.d.ts.map +1 -1
  29. package/dist/components/blocks/FeatureCard.d.ts.map +1 -1
  30. package/dist/components/blocks/FeatureGrid.d.ts.map +1 -1
  31. package/dist/components/blocks/Footer.d.ts.map +1 -1
  32. package/dist/components/blocks/HeroBlock.d.ts +27 -13
  33. package/dist/components/blocks/HeroBlock.d.ts.map +1 -1
  34. package/dist/components/blocks/Image.d.ts +41 -0
  35. package/dist/components/blocks/Image.d.ts.map +1 -0
  36. package/dist/components/blocks/PageBannerHeader.d.ts.map +1 -1
  37. package/dist/components/blocks/ProductCard.d.ts.map +1 -1
  38. package/dist/components/blocks/Section.d.ts +16 -2
  39. package/dist/components/blocks/Section.d.ts.map +1 -1
  40. package/dist/components/blocks/Text.d.ts +41 -0
  41. package/dist/components/blocks/Text.d.ts.map +1 -0
  42. package/dist/components/blocks/index.d.ts +4 -0
  43. package/dist/components/blocks/index.d.ts.map +1 -1
  44. package/dist/components/buttons/Button.d.ts +23 -7
  45. package/dist/components/buttons/Button.d.ts.map +1 -1
  46. package/dist/components/forms/FormBlock.d.ts +19 -13
  47. package/dist/components/forms/FormBlock.d.ts.map +1 -1
  48. package/dist/components/index.d.ts +4 -0
  49. package/dist/components/index.d.ts.map +1 -1
  50. package/dist/components/input/ChoiceInputField.d.ts +17 -11
  51. package/dist/components/input/ChoiceInputField.d.ts.map +1 -1
  52. package/dist/components/input/HtmlInputField.d.ts +17 -11
  53. package/dist/components/input/HtmlInputField.d.ts.map +1 -1
  54. package/dist/components/input/SelectInputField.d.ts +16 -10
  55. package/dist/components/input/SelectInputField.d.ts.map +1 -1
  56. package/dist/components/input/SwitchInputField.d.ts +16 -10
  57. package/dist/components/input/SwitchInputField.d.ts.map +1 -1
  58. package/dist/components/input/TextField.d.ts.map +1 -1
  59. package/dist/components/input/TextInputField.d.ts +16 -11
  60. package/dist/components/input/TextInputField.d.ts.map +1 -1
  61. package/dist/components/layout/GridCell.d.ts +23 -6
  62. package/dist/components/layout/GridCell.d.ts.map +1 -1
  63. package/dist/components/layout/GridLayout.d.ts +24 -23
  64. package/dist/components/layout/GridLayout.d.ts.map +1 -1
  65. package/dist/components/pages/FormPage.d.ts.map +1 -1
  66. package/dist/components/pages/Page.d.ts +49 -87
  67. package/dist/components/pages/Page.d.ts.map +1 -1
  68. package/dist/components/pages/index.d.ts +2 -2
  69. package/dist/components/pages/index.d.ts.map +1 -1
  70. package/dist/config/AppConfig.d.ts +49 -0
  71. package/dist/config/AppConfig.d.ts.map +1 -0
  72. package/dist/config/AppConfigBuilder.d.ts +75 -0
  73. package/dist/config/AppConfigBuilder.d.ts.map +1 -0
  74. package/dist/config/index.d.ts +13 -0
  75. package/dist/config/index.d.ts.map +1 -0
  76. package/dist/config/types.d.ts +130 -0
  77. package/dist/config/types.d.ts.map +1 -0
  78. package/dist/config.d.ts +15 -0
  79. package/dist/config.d.ts.map +1 -0
  80. package/dist/config.esm.js +451 -0
  81. package/dist/config.js +455 -0
  82. package/dist/contexts/PrintModeContext.d.ts +27 -0
  83. package/dist/contexts/PrintModeContext.d.ts.map +1 -0
  84. package/dist/contexts/QwickAppContext.d.ts +2 -2
  85. package/dist/contexts/QwickAppContext.d.ts.map +1 -1
  86. package/dist/contexts/ThemeContext.d.ts.map +1 -1
  87. package/dist/contexts/index.d.ts +2 -0
  88. package/dist/contexts/index.d.ts.map +1 -1
  89. package/dist/hooks/index.d.ts +2 -0
  90. package/dist/hooks/index.d.ts.map +1 -1
  91. package/dist/hooks/usePrintMode.d.ts +39 -0
  92. package/dist/hooks/usePrintMode.d.ts.map +1 -0
  93. package/dist/index.css +1 -1
  94. package/dist/index.d.ts +1 -0
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.esm.css +1 -1
  97. package/dist/index.esm.js +20722 -16021
  98. package/dist/index.js +20725 -16010
  99. package/dist/schemas/CodeSchema.d.ts +2 -1
  100. package/dist/schemas/CodeSchema.d.ts.map +1 -1
  101. package/dist/schemas/CollapsibleLayoutSchema.d.ts +2 -1
  102. package/dist/schemas/CollapsibleLayoutSchema.d.ts.map +1 -1
  103. package/dist/schemas/ContentSchema.d.ts +2 -1
  104. package/dist/schemas/ContentSchema.d.ts.map +1 -1
  105. package/dist/schemas/GridCellSchema.d.ts +25 -0
  106. package/dist/schemas/GridCellSchema.d.ts.map +1 -0
  107. package/dist/schemas/GridLayoutSchema.d.ts +23 -0
  108. package/dist/schemas/GridLayoutSchema.d.ts.map +1 -0
  109. package/dist/schemas/HtmlSchema.d.ts +14 -0
  110. package/dist/schemas/HtmlSchema.d.ts.map +1 -0
  111. package/dist/schemas/ImageSchema.d.ts +32 -0
  112. package/dist/schemas/ImageSchema.d.ts.map +1 -0
  113. package/dist/schemas/LogoSchema.d.ts +35 -0
  114. package/dist/schemas/LogoSchema.d.ts.map +1 -0
  115. package/dist/schemas/MarkdownSchema.d.ts +14 -0
  116. package/dist/schemas/MarkdownSchema.d.ts.map +1 -0
  117. package/dist/schemas/PageTemplateSchema.d.ts +31 -0
  118. package/dist/schemas/PageTemplateSchema.d.ts.map +1 -0
  119. package/dist/schemas/PrintConfigSchema.d.ts +31 -0
  120. package/dist/schemas/PrintConfigSchema.d.ts.map +1 -0
  121. package/dist/schemas/SectionSchema.d.ts +2 -1
  122. package/dist/schemas/SectionSchema.d.ts.map +1 -1
  123. package/dist/schemas/TextSchema.d.ts +37 -0
  124. package/dist/schemas/TextSchema.d.ts.map +1 -0
  125. package/dist/schemas/ViewModelSchema.d.ts +23 -0
  126. package/dist/schemas/ViewModelSchema.d.ts.map +1 -0
  127. package/dist/schemas/index.d.ts +15 -1
  128. package/dist/schemas/index.d.ts.map +1 -1
  129. package/dist/schemas/transformers/ComponentTransformer.d.ts +116 -0
  130. package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -0
  131. package/dist/schemas/transformers/ReactNodeTransformer.d.ts +53 -0
  132. package/dist/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -0
  133. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts +66 -0
  134. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts.map +1 -0
  135. package/dist/schemas/transformers/registry.d.ts +15 -0
  136. package/dist/schemas/transformers/registry.d.ts.map +1 -0
  137. package/dist/schemas/types/Serializable.d.ts +46 -0
  138. package/dist/schemas/types/Serializable.d.ts.map +1 -0
  139. package/dist/utils/htmlTransform.d.ts.map +1 -1
  140. package/dist/utils/reactUtils.d.ts +12 -3
  141. package/dist/utils/reactUtils.d.ts.map +1 -1
  142. package/package.json +17 -3
  143. package/src/{components/__tests__ → __tests__/components}/AccessibilityProvider.test.tsx +1 -1
  144. package/src/{components/__tests__ → __tests__/components}/Article.test.tsx +1 -1
  145. package/src/{components/__tests__ → __tests__/components}/Breadcrumbs.test.tsx +1 -1
  146. package/src/{components/__tests__ → __tests__/components}/Button.test.tsx +1 -1
  147. package/src/{components/__tests__ → __tests__/components}/CardListGrid.test.tsx +2 -2
  148. package/src/{components/__tests__ → __tests__/components}/ChoiceInputField.test.tsx +1 -1
  149. package/src/{components/__tests__ → __tests__/components}/Code.test.tsx +1 -1
  150. package/src/{components/__tests__ → __tests__/components}/Content.integration.test.tsx +1 -1
  151. package/src/{components/__tests__ → __tests__/components}/Content.test.tsx +1 -1
  152. package/src/{components/__tests__ → __tests__/components}/CoverImageHeader.test.tsx +2 -2
  153. package/src/{components/__tests__ → __tests__/components}/ErrorBoundary.test.tsx +1 -1
  154. package/src/{components/__tests__ → __tests__/components}/FeatureCard.integration.test.tsx +2 -2
  155. package/src/{components/__tests__ → __tests__/components}/FeatureGrid.integration.test.tsx +2 -2
  156. package/src/{components/__tests__ → __tests__/components}/FeatureGrid.test.tsx +2 -2
  157. package/src/{components/__tests__ → __tests__/components}/Footer.test.tsx +4 -4
  158. package/src/{components/__tests__ → __tests__/components}/FormBlock.test.tsx +1 -1
  159. package/src/{components/__tests__ → __tests__/components}/HeroBlock.integration.test.tsx +2 -2
  160. package/src/{components/__tests__ → __tests__/components}/HeroBlock.test.tsx +233 -7
  161. package/src/{components/__tests__ → __tests__/components}/Html.test.tsx +11 -2
  162. package/src/{components/__tests__ → __tests__/components}/HtmlInputField.test.tsx +3 -3
  163. package/src/__tests__/components/Logo.test.js +3 -3
  164. package/src/{components/__tests__ → __tests__/components}/Markdown.test.tsx +1 -1
  165. package/src/{components/__tests__ → __tests__/components}/PageBannerHeader.test.tsx +3 -3
  166. package/src/{components/__tests__ → __tests__/components}/PaletteSwitcher.test.tsx +3 -3
  167. package/src/{components/__tests__ → __tests__/components}/ProductCard.test.tsx +4 -4
  168. package/src/{components/__tests__ → __tests__/components}/SafeSpan.integration.test.tsx +2 -2
  169. package/src/{components/__tests__ → __tests__/components}/SafeSpan.simple.test.tsx +1 -1
  170. package/src/{components/__tests__ → __tests__/components}/SafeSpan.test.tsx +1 -1
  171. package/src/{components/__tests__ → __tests__/components}/Section.integration.test.tsx +1 -1
  172. package/src/{components/__tests__ → __tests__/components}/Section.test.tsx +1 -1
  173. package/src/{components/__tests__ → __tests__/components}/SelectInputField.test.tsx +1 -1
  174. package/src/{components/__tests__ → __tests__/components}/TextInputField.test.tsx +3 -3
  175. package/src/{components/__tests__ → __tests__/components}/ThemeSwitcher.test.tsx +3 -3
  176. package/src/__tests__/components/base/ModelView.test.tsx +220 -0
  177. package/src/__tests__/components/blocks/Code.performance.test.tsx +625 -0
  178. package/src/__tests__/components/blocks/Code.serialization.test.tsx +507 -0
  179. package/src/__tests__/components/blocks/HeroBlock.serialization.test.tsx +414 -0
  180. package/src/__tests__/components/blocks/Image.serialization.test.tsx +257 -0
  181. package/src/__tests__/components/blocks/Section.serialization.test.tsx +553 -0
  182. package/src/__tests__/components/blocks/Text.performance.test.tsx +442 -0
  183. package/src/__tests__/components/blocks/Text.serialization.test.tsx +491 -0
  184. package/src/__tests__/components/buttons/Button.serialization.test.tsx +443 -0
  185. package/src/__tests__/components/input/FormComponents.serialization.test.tsx +482 -0
  186. package/src/__tests__/components/input/SelectInputField.serialization.test.tsx +439 -0
  187. package/src/__tests__/components/input/TextInputField.serialization.test.tsx +359 -0
  188. package/src/{components/layout/CollapsibleLayout/__tests__ → __tests__/components/layout}/CollapsibleLayout.test.tsx +4 -4
  189. package/src/__tests__/components/layout/GridCell.serialization.test.tsx +403 -0
  190. package/src/__tests__/components/layout/GridLayout.serialization.test.tsx +311 -0
  191. package/src/__tests__/hooks/usePrintMode.test.ts +89 -0
  192. package/src/__tests__/schemas/PageTemplateSchema.test.ts +161 -0
  193. package/src/__tests__/schemas/PrintConfigSchema.test.ts +127 -0
  194. package/src/__tests__/schemas/ViewModelSchema.test.ts +80 -0
  195. package/src/__tests__/schemas/transformers/ComponentSerializationPatterns.test.tsx +602 -0
  196. package/src/__tests__/schemas/transformers/ComponentTransformer.htmlPatterns.test.ts +301 -0
  197. package/src/__tests__/schemas/transformers/ComponentTransformer.test.ts +521 -0
  198. package/src/__tests__/schemas/transformers/CrossBrowserCompatibility.test.ts +586 -0
  199. package/src/__tests__/schemas/transformers/MockSerializableComponent.ts +103 -0
  200. package/src/__tests__/schemas/transformers/RealWorldScenarios.test.tsx +1165 -0
  201. package/src/__tests__/schemas/transformers/SerializationErrorHandling.test.ts +602 -0
  202. package/src/__tests__/schemas/transformers/SerializationIntegration.test.tsx +691 -0
  203. package/src/__tests__/schemas/transformers/SerializationPerformance.test.ts +460 -0
  204. package/src/__tests__/schemas/transformers/TestAutomation.test.ts +597 -0
  205. package/src/{utils/__tests__ → __tests__/utils}/nested-dom-fix.test.tsx +1 -1
  206. package/src/components/ErrorBoundary.tsx +8 -8
  207. package/src/components/Html.tsx +147 -44
  208. package/src/components/Logo.tsx +198 -100
  209. package/src/components/Markdown.tsx +125 -16
  210. package/src/components/QwickApp.tsx +64 -31
  211. package/src/components/QwickIcon.tsx +59 -0
  212. package/src/components/SafeSpan.tsx +65 -10
  213. package/src/components/Scaffold.tsx +2 -8
  214. package/src/components/base/ModelView.tsx +199 -0
  215. package/src/components/base/index.ts +11 -0
  216. package/src/components/blocks/Article.tsx +57 -18
  217. package/src/components/blocks/Code.md +529 -0
  218. package/src/components/blocks/Code.tsx +102 -15
  219. package/src/components/blocks/Content.tsx +25 -77
  220. package/src/components/blocks/CoverImageHeader.tsx +9 -4
  221. package/src/components/blocks/FeatureCard.tsx +1 -2
  222. package/src/components/blocks/FeatureGrid.tsx +19 -1
  223. package/src/components/blocks/Footer.tsx +13 -1
  224. package/src/components/blocks/HeroBlock.tsx +87 -20
  225. package/src/components/blocks/Image.tsx +395 -0
  226. package/src/components/blocks/PageBannerHeader.tsx +14 -12
  227. package/src/components/blocks/ProductCard.tsx +51 -52
  228. package/src/components/blocks/Section.tsx +113 -8
  229. package/src/components/blocks/Text.tsx +285 -0
  230. package/src/components/blocks/index.ts +4 -0
  231. package/src/components/buttons/Button.tsx +184 -15
  232. package/src/components/forms/FormBlock.tsx +70 -17
  233. package/src/components/index.ts +5 -0
  234. package/src/components/input/ChoiceInputField.tsx +48 -18
  235. package/src/components/input/HtmlInputField.tsx +48 -18
  236. package/src/components/input/SelectInputField.tsx +48 -16
  237. package/src/components/input/SwitchInputField.tsx +48 -17
  238. package/src/components/input/TextField.tsx +41 -1
  239. package/src/components/input/TextInputField.tsx +52 -18
  240. package/src/components/layout/GridCell.tsx +118 -9
  241. package/src/components/layout/GridLayout.tsx +125 -24
  242. package/src/components/pages/FormPage.tsx +0 -1
  243. package/src/components/pages/Page.css +304 -332
  244. package/src/components/pages/Page.tsx +307 -255
  245. package/src/components/pages/index.ts +2 -2
  246. package/src/config/AppConfig.ts +133 -0
  247. package/src/config/AppConfigBuilder.ts +421 -0
  248. package/src/config/__tests__/AppConfig.test.ts +385 -0
  249. package/src/config/__tests__/AppConfigBuilder.test.ts +432 -0
  250. package/src/config/index.ts +24 -0
  251. package/src/config/types.ts +170 -0
  252. package/src/config.ts +25 -0
  253. package/src/contexts/PrintModeContext.tsx +332 -0
  254. package/src/contexts/QwickAppContext.tsx +2 -2
  255. package/src/contexts/ThemeContext.tsx +1 -2
  256. package/src/contexts/index.ts +2 -0
  257. package/src/hooks/index.ts +5 -1
  258. package/src/hooks/usePrintMode.ts +73 -0
  259. package/src/index.ts +3 -0
  260. package/src/schemas/CodeSchema.ts +3 -3
  261. package/src/schemas/CollapsibleLayoutSchema.ts +2 -1
  262. package/src/schemas/ContentSchema.ts +2 -1
  263. package/src/schemas/GridCellSchema.ts +164 -0
  264. package/src/schemas/GridLayoutSchema.ts +133 -0
  265. package/src/schemas/HtmlSchema.ts +47 -0
  266. package/src/schemas/ImageSchema.ts +235 -0
  267. package/src/schemas/LogoSchema.ts +241 -0
  268. package/src/schemas/MarkdownSchema.ts +47 -0
  269. package/src/schemas/PageTemplateSchema.ts +186 -0
  270. package/src/schemas/PrintConfigSchema.ts +207 -0
  271. package/src/schemas/README.md +661 -0
  272. package/src/schemas/SectionSchema.ts +2 -1
  273. package/src/schemas/TextSchema.ts +329 -0
  274. package/src/schemas/ViewModelSchema.ts +115 -0
  275. package/src/schemas/index.ts +21 -2
  276. package/src/schemas/transformers/ComponentTransformer.ts +403 -0
  277. package/src/schemas/transformers/ReactNodeTransformer.ts +236 -0
  278. package/src/schemas/transformers/registry.ts +72 -0
  279. package/src/schemas/types/Serializable.ts +51 -0
  280. package/src/stories/AccessibilityProvider.stories.tsx +253 -253
  281. package/src/stories/Article.stories.tsx +433 -433
  282. package/src/stories/Button.stories.tsx +1 -1
  283. package/src/stories/CardListGrid.stories.tsx +451 -451
  284. package/src/stories/ChoiceInputField.stories.tsx +503 -503
  285. package/src/stories/Code.stories.tsx +1 -1
  286. package/src/stories/CollapsibleLayout.stories.tsx +1414 -1414
  287. package/src/stories/Content.stories.tsx +393 -393
  288. package/src/stories/CoverImageHeader.stories.tsx +701 -701
  289. package/src/stories/DataBinding.advanced.stories.tsx +432 -432
  290. package/src/stories/DataProvider.stories.tsx +1192 -1192
  291. package/src/stories/FeatureCard.stories.tsx +557 -557
  292. package/src/stories/FeatureGrid.stories.tsx +594 -594
  293. package/src/stories/Footer.stories.tsx +640 -640
  294. package/src/stories/FormBlock.stories.tsx +760 -760
  295. package/src/stories/FormComponents.stories.tsx +349 -541
  296. package/src/stories/GridCell.stories.tsx +417 -0
  297. package/src/stories/GridLayout.stories.tsx +353 -0
  298. package/src/stories/HeroBlock.stories.tsx +862 -373
  299. package/src/stories/HtmlInputField.stories.tsx +474 -474
  300. package/src/stories/Image.stories.tsx +819 -0
  301. package/src/stories/Introduction.stories.tsx +667 -667
  302. package/src/stories/LayoutBlocks.stories.tsx +324 -324
  303. package/src/stories/Logo.stories.tsx +165 -6
  304. package/src/stories/Markdown.stories.tsx +137 -137
  305. package/src/stories/ModelView.stories.tsx +477 -0
  306. package/src/stories/Page.stories.tsx +688 -688
  307. package/src/stories/PageBannerHeader.stories.tsx +864 -864
  308. package/src/stories/PaletteSwitcher.stories.tsx +119 -119
  309. package/src/stories/ProductCard.stories.tsx +424 -424
  310. package/src/stories/QwickApp.stories.tsx +368 -368
  311. package/src/stories/ResponsiveMenu.stories.tsx +249 -249
  312. package/src/stories/SafeSpan.stories.tsx +531 -531
  313. package/src/stories/Section.stories.tsx +90 -2
  314. package/src/stories/SelectInputField.stories.tsx +524 -524
  315. package/src/stories/Text.stories.tsx +560 -0
  316. package/src/stories/TextInputField.stories.tsx +443 -443
  317. package/src/stories/ThemeSwitcher.stories.tsx +123 -123
  318. package/src/utils/htmlTransform.tsx +74 -53
  319. package/src/utils/reactUtils.tsx +57 -6
  320. package/dist/index.bundled.css +0 -12
  321. /package/src/{hooks/__tests__ → __tests__/hooks}/useDataBinding.test.tsx.disabled +0 -0
  322. /package/src/{schemas/__tests__ → __tests__/schemas}/builders.test.ts +0 -0
  323. /package/src/{utils/__tests__ → __tests__/utils}/createDataDrivenComponent.test.tsx.disabled +0 -0
  324. /package/src/{utils/__tests__ → __tests__/utils}/htmlTransform.test.tsx +0 -0
  325. /package/src/{utils/__tests__ → __tests__/utils}/optional-logging.test.ts +0 -0
@@ -15,707 +15,707 @@ import { GridLayout, GridCell } from '../components/layout';
15
15
  import { Section, Content, FeatureGrid, HeroBlock } from '../components/blocks';
16
16
  import { BrowserRouter, Routes, Route } from 'react-router-dom';
17
17
  import {
18
- Rocket as RocketIcon,
19
- Palette as PaletteIcon,
20
- Phone as PhoneIcon,
21
- Code as CodeIcon,
22
- Speed as SpeedIcon,
23
- Security as SecurityIcon,
24
- Accessibility as AccessibilityIcon,
25
- GitHub as GitHubIcon,
26
- Download as DownloadIcon,
27
- MenuBook as DocsIcon,
28
- PlayArrow as DemoIcon,
29
- Category as ComponentsIcon,
30
- Layers as LayersIcon,
31
- Settings as SettingsIcon
18
+ Rocket as RocketIcon,
19
+ Palette as PaletteIcon,
20
+ Phone as PhoneIcon,
21
+ Code as CodeIcon,
22
+ Speed as SpeedIcon,
23
+ Security as SecurityIcon,
24
+ Accessibility as AccessibilityIcon,
25
+ GitHub as GitHubIcon,
26
+ Download as DownloadIcon,
27
+ MenuBook as DocsIcon,
28
+ PlayArrow as DemoIcon,
29
+ Category as ComponentsIcon,
30
+ Layers as LayersIcon,
31
+ Settings as SettingsIcon
32
32
  } from '@mui/icons-material';
33
33
  import Logo from '../components/Logo';
34
34
  import { Code } from '../components/blocks';
35
35
  import { Button } from '../components/buttons/Button';
36
36
 
37
37
  const meta: Meta = {
38
- title: 'Introduction',
39
- parameters: {
40
- layout: 'fullscreen',
41
- docs: {
42
- page: () => (
43
- <div style={{ padding: '2rem', maxWidth: '1200px', margin: '0 auto' }}>
44
- <div style={{ textAlign: 'center', marginBottom: '3rem' }}>
45
- <h1 style={{ fontSize: '3rem', margin: '0 0 1rem 0', background: 'linear-gradient(45deg, #2196F3, #21CBF3)', WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent' }}>
46
- QwickApps React Framework
47
- </h1>
48
- <p style={{ fontSize: '1.5rem', color: 'var(--theme-on-background)', opacity: 0.8, margin: '0 0 2rem 0' }}>
49
- The most developer-friendly React framework that turns complex UI development into a joy. Build production-ready applications in hours, not weeks.
50
- </p>
51
- <div style={{ display: 'flex', gap: '1rem', justifyContent: 'center', flexWrap: 'wrap' }}>
52
- <span style={{ padding: '0.5rem 1rem', backgroundColor: 'var(--theme-primary)', color: 'white', borderRadius: '20px', fontSize: '0.875rem' }}>
53
- 50+ Components
54
- </span>
55
- <span style={{ padding: '0.5rem 1rem', backgroundColor: 'var(--theme-secondary)', color: 'white', borderRadius: '20px', fontSize: '0.875rem' }}>
56
- TypeScript
57
- </span>
58
- <span style={{ padding: '0.5rem 1rem', backgroundColor: 'var(--theme-success)', color: 'white', borderRadius: '20px', fontSize: '0.875rem' }}>
59
- Material UI
60
- </span>
61
- <span style={{ padding: '0.5rem 1rem', backgroundColor: 'var(--theme-warning)', color: 'white', borderRadius: '20px', fontSize: '0.875rem' }}>
62
- Responsive
63
- </span>
64
- </div>
65
- </div>
38
+ title: 'Introduction',
39
+ parameters: {
40
+ layout: 'fullscreen',
41
+ docs: {
42
+ page: () => (
43
+ <div style={{ padding: '2rem', maxWidth: '1200px', margin: '0 auto' }}>
44
+ <div style={{ textAlign: 'center', marginBottom: '3rem' }}>
45
+ <h1 style={{ fontSize: '3rem', margin: '0 0 1rem 0', background: 'linear-gradient(45deg, #2196F3, #21CBF3)', WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent' }}>
46
+ QwickApps React Framework
47
+ </h1>
48
+ <p style={{ fontSize: '1.5rem', color: 'var(--theme-on-background)', opacity: 0.8, margin: '0 0 2rem 0' }}>
49
+ The most developer-friendly React framework that turns complex UI development into a joy. Build production-ready applications in hours, not weeks.
50
+ </p>
51
+ <div style={{ display: 'flex', gap: '1rem', justifyContent: 'center', flexWrap: 'wrap' }}>
52
+ <span style={{ padding: '0.5rem 1rem', backgroundColor: 'var(--theme-primary)', color: 'white', borderRadius: '20px', fontSize: '0.875rem' }}>
53
+ 50+ Components
54
+ </span>
55
+ <span style={{ padding: '0.5rem 1rem', backgroundColor: 'var(--theme-secondary)', color: 'white', borderRadius: '20px', fontSize: '0.875rem' }}>
56
+ TypeScript
57
+ </span>
58
+ <span style={{ padding: '0.5rem 1rem', backgroundColor: 'var(--theme-success)', color: 'white', borderRadius: '20px', fontSize: '0.875rem' }}>
59
+ Material UI
60
+ </span>
61
+ <span style={{ padding: '0.5rem 1rem', backgroundColor: 'var(--theme-warning)', color: 'white', borderRadius: '20px', fontSize: '0.875rem' }}>
62
+ Responsive
63
+ </span>
64
+ </div>
65
+ </div>
66
66
 
67
- {/* Quick Start Section */}
68
- <div style={{ marginBottom: '3rem' }}>
69
- <h2>🚀 Quick Start</h2>
70
- <div style={{ marginBottom: '1rem' }}>
71
- <h3>Installation</h3>
72
- <Code language="bash" title="terminal" maxHeight={60}>
67
+ {/* Quick Start Section */}
68
+ <div style={{ marginBottom: '3rem' }}>
69
+ <h2> Quick Start</h2>
70
+ <div style={{ marginBottom: '1rem' }}>
71
+ <h3>Installation</h3>
72
+ <Code language="bash" title="terminal" maxHeight={60}>
73
73
  npm install @qwickapps/react-framework
74
- </Code>
75
- </div>
76
-
77
- <div style={{ marginBottom: '1rem' }}>
78
- <h3>Basic Setup</h3>
79
- <Code language="typescript" title="App.tsx">
74
+ </Code>
75
+ </div>
76
+
77
+ <div style={{ marginBottom: '1rem' }}>
78
+ <h3>Basic Setup</h3>
79
+ <Code language="typescript" title="App.tsx">
80
80
  {`import { QwickApp } from '@qwickapps/react-framework';
81
81
 
82
82
  function App() {
83
- return (
84
- <QwickApp appId="com.mycompany.myapp">
85
- {/* Your app content */}
86
- </QwickApp>
87
- );
83
+ return (
84
+ <QwickApp appId="com.mycompany.myapp">
85
+ {/* Your app content */}
86
+ </QwickApp>
87
+ );
88
88
  }`}
89
- </Code>
90
- </div>
91
-
92
- <div style={{ marginBottom: '1rem' }}>
93
- <h3>With Navigation</h3>
94
- <Code language="typescript" title="App.tsx">
89
+ </Code>
90
+ </div>
91
+
92
+ <div style={{ marginBottom: '1rem' }}>
93
+ <h3>With Navigation</h3>
94
+ <Code language="typescript" title="App.tsx">
95
95
  {`import { QwickApp, Page, Scaffold } from '@qwickapps/react-framework';
96
96
 
97
97
  const navigationItems = [
98
- {
99
- id: 'home',
100
- label: 'Home',
101
- icon: <HomeIcon />,
102
- onClick: () => navigate('/'),
103
- active: true,
104
- },
105
- {
106
- id: 'about',
107
- label: 'About',
108
- icon: <AboutIcon />,
109
- onClick: () => navigate('/about'),
110
- },
98
+ {
99
+ id: 'home',
100
+ label: 'Home',
101
+ icon: <HomeIcon />,
102
+ onClick: () => navigate('/'),
103
+ active: true,
104
+ },
105
+ {
106
+ id: 'about',
107
+ label: 'About',
108
+ icon: <AboutIcon />,
109
+ onClick: () => navigate('/about'),
110
+ },
111
111
  ];
112
112
 
113
113
  function App() {
114
- return (
115
- <QwickApp appId="com.mycompany.myapp">
116
- <Scaffold
117
- appName="My App"
118
- navigationItems={navigationItems}
119
- showAppBar={true}
120
- >
121
- <Page title="Welcome" route="/">
122
- {/* Your page content */}
123
- </Page>
124
- </Scaffold>
125
- </QwickApp>
126
- );
114
+ return (
115
+ <QwickApp appId="com.mycompany.myapp">
116
+ <Scaffold
117
+ appName="My App"
118
+ navigationItems={navigationItems}
119
+ showAppBar={true}
120
+ >
121
+ <Page title="Welcome" route="/">
122
+ {/* Your page content */}
123
+ </Page>
124
+ </Scaffold>
125
+ </QwickApp>
126
+ );
127
127
  }`}
128
- </Code>
129
- </div>
130
-
131
- <div style={{ marginBottom: '1rem' }}>
132
- <h3>Complete Example</h3>
133
- <Code language="typescript" title="App.tsx" maxHeight={500}>
128
+ </Code>
129
+ </div>
130
+
131
+ <div style={{ marginBottom: '1rem' }}>
132
+ <h3>Complete Example</h3>
133
+ <Code language="typescript" title="App.tsx" maxHeight={500}>
134
134
  {`import {
135
- QwickApp,
136
- Page,
137
- HeroBlock,
138
- Section,
139
- Content,
140
- GridLayout,
141
- GridCell,
142
- FeatureGrid,
143
- Scaffold
135
+ QwickApp,
136
+ Page,
137
+ HeroBlock,
138
+ Section,
139
+ Content,
140
+ GridLayout,
141
+ GridCell,
142
+ FeatureGrid,
143
+ Scaffold
144
144
  } from '@qwickapps/react-framework';
145
145
 
146
146
  function App() {
147
- return (
148
- <QwickApp appId="com.mycompany.myapp">
149
- <Scaffold appName="My App" showAppBar={true}>
150
- <Page title="Home">
151
- <HeroBlock
152
- title="Welcome to My App"
153
- subtitle="Build amazing applications with QwickApps React Framework"
154
- backgroundGradient="linear-gradient(135deg, #667eea 0%, #764ba2 100%)"
155
- actions={[{
156
- label: 'Get Started',
157
- variant: 'primary',
158
- onClick: () => console.log('Getting started!')
159
- }]}
160
- />
161
-
162
- <Section padding="large" background="alternate">
163
- <Content title="Features" centered>
164
- <FeatureGrid
165
- columns={3}
166
- features={[{
167
- id: 'responsive',
168
- title: 'Responsive Design',
169
- description: 'Works perfectly on all devices',
170
- icon: <span>📱</span>
171
- }, {
172
- id: 'accessible',
173
- title: 'Accessible',
174
- description: 'WCAG compliant out of the box',
175
- icon: <span>♿</span>
176
- }, {
177
- id: 'secure',
178
- title: 'Secure',
179
- description: 'Built-in XSS protection',
180
- icon: <span>🔒</span>
181
- }]}
182
- />
183
- </Content>
184
- </Section>
185
-
186
- <Section padding="large">
187
- <GridLayout columns={2} gap="large">
188
- <GridCell>
189
- <Content variant="elevated" spacing="spacious">
190
- <h3>Easy to Use</h3>
191
- <p>Simple, intuitive API that gets you productive immediately.</p>
192
- </Content>
193
- </GridCell>
194
- <GridCell>
195
- <Content variant="elevated" spacing="spacious">
196
- <h3>Fully Featured</h3>
197
- <p>Everything you need for modern web applications.</p>
198
- </Content>
199
- </GridCell>
200
- </GridLayout>
201
- </Section>
202
- </Page>
203
- </Scaffold>
204
- </QwickApp>
205
- );
147
+ return (
148
+ <QwickApp appId="com.mycompany.myapp">
149
+ <Scaffold appName="My App" showAppBar={true}>
150
+ <Page title="Home">
151
+ <HeroBlock
152
+ title="Welcome to My App"
153
+ subtitle="Build amazing applications with QwickApps React Framework"
154
+ backgroundGradient="linear-gradient(135deg, #667eea 0%, #764ba2 100%)"
155
+ actions={[{
156
+ label: 'Get Started',
157
+ variant: 'primary',
158
+ onClick: () => console.log('Getting started!')
159
+ }]}
160
+ />
161
+
162
+ <Section padding="large" background="alternate">
163
+ <Content title="Features" centered>
164
+ <FeatureGrid
165
+ columns={3}
166
+ features={[{
167
+ id: 'responsive',
168
+ title: 'Responsive Design',
169
+ description: 'Works perfectly on all devices',
170
+ icon: <span></span>
171
+ }, {
172
+ id: 'accessible',
173
+ title: 'Accessible',
174
+ description: 'WCAG compliant out of the box',
175
+ icon: <span>♿</span>
176
+ }, {
177
+ id: 'secure',
178
+ title: 'Secure',
179
+ description: 'Built-in XSS protection',
180
+ icon: <span>🔒</span>
181
+ }]}
182
+ />
183
+ </Content>
184
+ </Section>
185
+
186
+ <Section padding="large">
187
+ <GridLayout columns={2} gap="large">
188
+ <GridCell>
189
+ <Content variant="elevated" spacing="spacious">
190
+ <h3>Easy to Use</h3>
191
+ <p>Simple, intuitive API that gets you productive immediately.</p>
192
+ </Content>
193
+ </GridCell>
194
+ <GridCell>
195
+ <Content variant="elevated" spacing="spacious">
196
+ <h3>Fully Featured</h3>
197
+ <p>Everything you need for modern web applications.</p>
198
+ </Content>
199
+ </GridCell>
200
+ </GridLayout>
201
+ </Section>
202
+ </Page>
203
+ </Scaffold>
204
+ </QwickApp>
205
+ );
206
206
  }`}
207
- </Code>
208
- </div>
209
- </div>
207
+ </Code>
208
+ </div>
209
+ </div>
210
210
 
211
- {/* What's New Section */}
212
- <div style={{ marginBottom: '3rem' }}>
213
- <h2>✨ What's New in 2025</h2>
214
- <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))', gap: '1.5rem' }}>
215
- <div style={{ padding: '1.5rem', border: '1px solid var(--theme-outline)', borderRadius: '8px' }}>
216
- <h3>🎯 Page Component Redesign</h3>
217
- <p>Simplified with optional header and footer props. No more complex menu/actions logic!</p>
218
- </div>
219
- <div style={{ padding: '1.5rem', border: '1px solid var(--theme-outline)', borderRadius: '8px' }}>
220
- <h3>🖼️ New Header Components</h3>
221
- <p>CoverImageHeader and PageBannerHeader for flexible page layouts and social media style designs.</p>
222
- </div>
223
- <div style={{ padding: '1.5rem', border: '1px solid var(--theme-outline)', borderRadius: '8px' }}>
224
- <h3>🦶 Footer Component</h3>
225
- <p>Comprehensive footer with sections, legal info, and responsive vertical/horizontal layouts.</p>
226
- </div>
227
- <div style={{ padding: '1.5rem', border: '1px solid var(--theme-outline)', borderRadius: '8px' }}>
228
- <h3>💻 Code Component</h3>
229
- <p>Syntax-highlighted code display with copy functionality and theme-aware styling for documentation.</p>
230
- </div>
231
- </div>
232
- </div>
211
+ {/* What's New Section */}
212
+ <div style={{ marginBottom: '3rem' }}>
213
+ <h2> What's New in 2025</h2>
214
+ <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))', gap: '1.5rem' }}>
215
+ <div style={{ padding: '1.5rem', border: '1px solid var(--theme-outline)', borderRadius: '8px' }}>
216
+ <h3> Page Component Redesign</h3>
217
+ <p>Simplified with optional header and footer props. No more complex menu/actions logic!</p>
218
+ </div>
219
+ <div style={{ padding: '1.5rem', border: '1px solid var(--theme-outline)', borderRadius: '8px' }}>
220
+ <h3>🖼 New Header Components</h3>
221
+ <p>CoverImageHeader and PageBannerHeader for flexible page layouts and social media style designs.</p>
222
+ </div>
223
+ <div style={{ padding: '1.5rem', border: '1px solid var(--theme-outline)', borderRadius: '8px' }}>
224
+ <h3>🦶 Footer Component</h3>
225
+ <p>Comprehensive footer with sections, legal info, and responsive vertical/horizontal layouts.</p>
226
+ </div>
227
+ <div style={{ padding: '1.5rem', border: '1px solid var(--theme-outline)', borderRadius: '8px' }}>
228
+ <h3> Code Component</h3>
229
+ <p>Syntax-highlighted code display with copy functionality and theme-aware styling for documentation.</p>
230
+ </div>
231
+ </div>
232
+ </div>
233
233
 
234
- {/* Key Features Section */}
235
- <div style={{ marginBottom: '3rem' }}>
236
- <h2>🎨 Key Features</h2>
237
- <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(250px, 1fr))', gap: '1rem' }}>
238
- <div style={{ textAlign: 'center', padding: '1rem' }}>
239
- <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}>🎨</div>
240
- <h4>Theming System</h4>
241
- <p>Dark/light mode with custom palettes</p>
242
- </div>
243
- <div style={{ textAlign: 'center', padding: '1rem' }}>
244
- <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}>📱</div>
245
- <h4>Responsive Design</h4>
246
- <p>Mobile-first with Material UI breakpoints</p>
247
- </div>
248
- <div style={{ textAlign: 'center', padding: '1rem' }}>
249
- <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}>♿</div>
250
- <h4>Accessibility</h4>
251
- <p>WCAG compliant with screen reader support</p>
252
- </div>
253
- <div style={{ textAlign: 'center', padding: '1rem' }}>
254
- <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}>⚡</div>
255
- <h4>Performance</h4>
256
- <p>Optimized components with lazy loading</p>
257
- </div>
258
- <div style={{ textAlign: 'center', padding: '1rem' }}>
259
- <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}>🔧</div>
260
- <h4>TypeScript</h4>
261
- <p>Full type safety and IntelliSense support</p>
262
- </div>
263
- <div style={{ textAlign: 'center', padding: '1rem' }}>
264
- <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}>🏗️</div>
265
- <h4>Layout System</h4>
266
- <p>Flexible sections, columns, and grids</p>
267
- </div>
268
- </div>
269
- </div>
234
+ {/* Key Features Section */}
235
+ <div style={{ marginBottom: '3rem' }}>
236
+ <h2> Key Features</h2>
237
+ <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(250px, 1fr))', gap: '1rem' }}>
238
+ <div style={{ textAlign: 'center', padding: '1rem' }}>
239
+ <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}></div>
240
+ <h4>Theming System</h4>
241
+ <p>Dark/light mode with custom palettes</p>
242
+ </div>
243
+ <div style={{ textAlign: 'center', padding: '1rem' }}>
244
+ <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}></div>
245
+ <h4>Responsive Design</h4>
246
+ <p>Mobile-first with Material UI breakpoints</p>
247
+ </div>
248
+ <div style={{ textAlign: 'center', padding: '1rem' }}>
249
+ <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}>♿</div>
250
+ <h4>Accessibility</h4>
251
+ <p>WCAG compliant with screen reader support</p>
252
+ </div>
253
+ <div style={{ textAlign: 'center', padding: '1rem' }}>
254
+ <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}></div>
255
+ <h4>Performance</h4>
256
+ <p>Optimized components with lazy loading</p>
257
+ </div>
258
+ <div style={{ textAlign: 'center', padding: '1rem' }}>
259
+ <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}></div>
260
+ <h4>TypeScript</h4>
261
+ <p>Full type safety and IntelliSense support</p>
262
+ </div>
263
+ <div style={{ textAlign: 'center', padding: '1rem' }}>
264
+ <div style={{ fontSize: '2rem', marginBottom: '0.5rem' }}></div>
265
+ <h4>Layout System</h4>
266
+ <p>Flexible sections, columns, and grids</p>
267
+ </div>
268
+ </div>
269
+ </div>
270
270
 
271
- {/* Component Categories Section */}
272
- <div style={{ marginBottom: '3rem' }}>
273
- <h2>📚 Component Categories</h2>
274
- <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))', gap: '1rem' }}>
275
- <div style={{ padding: '1rem', backgroundColor: 'var(--theme-surface)', borderRadius: '8px', border: '1px solid var(--theme-outline)' }}>
276
- <h4>🏗️ Layout</h4>
277
- <ul style={{ margin: 0, paddingLeft: '1rem' }}>
278
- <li>Page</li>
279
- <li>Section</li>
280
- <li>GridLayout</li>
281
- <li>Content</li>
282
- <li>FeatureGrid</li>
283
- </ul>
284
- </div>
285
- <div style={{ padding: '1rem', backgroundColor: 'var(--theme-surface)', borderRadius: '8px', border: '1px solid var(--theme-outline)' }}>
286
- <h4>🎯 Headers</h4>
287
- <ul style={{ margin: 0, paddingLeft: '1rem' }}>
288
- <li>CoverImageHeader</li>
289
- <li>PageBannerHeader</li>
290
- <li>HeroBlock</li>
291
- </ul>
292
- </div>
293
- <div style={{ padding: '1rem', backgroundColor: 'var(--theme-surface)', borderRadius: '8px', border: '1px solid var(--theme-outline)' }}>
294
- <h4>🧭 Navigation</h4>
295
- <ul style={{ margin: 0, paddingLeft: '1rem' }}>
296
- <li>Scaffold</li>
297
- <li>ResponsiveMenu</li>
298
- <li>Footer</li>
299
- </ul>
300
- </div>
301
- <div style={{ padding: '1rem', backgroundColor: 'var(--theme-surface)', borderRadius: '8px', border: '1px solid var(--theme-outline)' }}>
302
- <h4>🎨 Branding</h4>
303
- <ul style={{ margin: 0, paddingLeft: '1rem' }}>
304
- <li>Logo</li>
305
- <li>ThemeSwitcher</li>
306
- <li>PaletteSwitcher</li>
307
- </ul>
308
- </div>
309
- <div style={{ padding: '1rem', backgroundColor: 'var(--theme-surface)', borderRadius: '8px', border: '1px solid var(--theme-outline)' }}>
310
- <h4>🔧 Utilities</h4>
311
- <ul style={{ margin: 0, paddingLeft: '1rem' }}>
312
- <li>SafeSpan</li>
313
- <li>HtmlInputField</li>
314
- <li>Button</li>
315
- <li>Code</li>
316
- <li>AccessibilityChecker</li>
317
- </ul>
318
- </div>
319
- </div>
320
- </div>
271
+ {/* Component Categories Section */}
272
+ <div style={{ marginBottom: '3rem' }}>
273
+ <h2>📚 Component Categories</h2>
274
+ <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))', gap: '1rem' }}>
275
+ <div style={{ padding: '1rem', backgroundColor: 'var(--theme-surface)', borderRadius: '8px', border: '1px solid var(--theme-outline)' }}>
276
+ <h4> Layout</h4>
277
+ <ul style={{ margin: 0, paddingLeft: '1rem' }}>
278
+ <li>Page</li>
279
+ <li>Section</li>
280
+ <li>GridLayout</li>
281
+ <li>Content</li>
282
+ <li>FeatureGrid</li>
283
+ </ul>
284
+ </div>
285
+ <div style={{ padding: '1rem', backgroundColor: 'var(--theme-surface)', borderRadius: '8px', border: '1px solid var(--theme-outline)' }}>
286
+ <h4> Headers</h4>
287
+ <ul style={{ margin: 0, paddingLeft: '1rem' }}>
288
+ <li>CoverImageHeader</li>
289
+ <li>PageBannerHeader</li>
290
+ <li>HeroBlock</li>
291
+ </ul>
292
+ </div>
293
+ <div style={{ padding: '1rem', backgroundColor: 'var(--theme-surface)', borderRadius: '8px', border: '1px solid var(--theme-outline)' }}>
294
+ <h4>🧭 Navigation</h4>
295
+ <ul style={{ margin: 0, paddingLeft: '1rem' }}>
296
+ <li>Scaffold</li>
297
+ <li>ResponsiveMenu</li>
298
+ <li>Footer</li>
299
+ </ul>
300
+ </div>
301
+ <div style={{ padding: '1rem', backgroundColor: 'var(--theme-surface)', borderRadius: '8px', border: '1px solid var(--theme-outline)' }}>
302
+ <h4> Branding</h4>
303
+ <ul style={{ margin: 0, paddingLeft: '1rem' }}>
304
+ <li>Logo</li>
305
+ <li>ThemeSwitcher</li>
306
+ <li>PaletteSwitcher</li>
307
+ </ul>
308
+ </div>
309
+ <div style={{ padding: '1rem', backgroundColor: 'var(--theme-surface)', borderRadius: '8px', border: '1px solid var(--theme-outline)' }}>
310
+ <h4> Utilities</h4>
311
+ <ul style={{ margin: 0, paddingLeft: '1rem' }}>
312
+ <li>SafeSpan</li>
313
+ <li>HtmlInputField</li>
314
+ <li>Button</li>
315
+ <li>Code</li>
316
+ <li>AccessibilityChecker</li>
317
+ </ul>
318
+ </div>
319
+ </div>
320
+ </div>
321
321
 
322
- {/* Final Call to Action Section */}
323
- <div style={{ textAlign: 'center', padding: '3rem 2rem', backgroundColor: 'var(--theme-surface)', borderRadius: '12px', margin: '2rem 0' }}>
324
- <h2>Ready to build amazing applications?</h2>
325
- <p style={{ fontSize: '1.1rem', margin: '1rem 0 2rem' }}>
326
- Explore the component stories to see everything in action!
327
- </p>
328
- <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '1rem' }}>
329
- <span>Made with ❤️ by</span>
330
- <Logo size="tiny" badgeShape="heart" style={{ display: 'inline-block' }} />
331
- </div>
332
- <div style={{ display: 'flex', gap: '1rem', justifyContent: 'center', flexWrap: 'wrap', marginTop: '2rem' }}>
333
- <button style={{
334
- padding: '1rem 2rem',
335
- fontSize: '1.1rem',
336
- backgroundColor: 'var(--theme-primary)',
337
- color: 'var(--theme-on-primary)',
338
- border: 'none',
339
- borderRadius: '8px',
340
- cursor: 'pointer',
341
- fontWeight: 'bold'
342
- }}>
343
- Browse Components
344
- </button>
345
- <button style={{
346
- padding: '1rem 2rem',
347
- fontSize: '1.1rem',
348
- backgroundColor: 'transparent',
349
- color: 'var(--theme-primary)',
350
- border: '2px solid var(--theme-primary)',
351
- borderRadius: '8px',
352
- cursor: 'pointer',
353
- fontWeight: 'bold'
354
- }}>
355
- View on GitHub
356
- </button>
357
- </div>
358
- </div>
359
- </div>
360
- ),
361
- },
362
- },
363
- tags: ['autodocs'],
322
+ {/* Final Call to Action Section */}
323
+ <div style={{ textAlign: 'center', padding: '3rem 2rem', backgroundColor: 'var(--theme-surface)', borderRadius: '12px', margin: '2rem 0' }}>
324
+ <h2>Ready to build amazing applications?</h2>
325
+ <p style={{ fontSize: '1.1rem', margin: '1rem 0 2rem' }}>
326
+ Explore the component stories to see everything in action!
327
+ </p>
328
+ <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '1rem' }}>
329
+ <span>Made with by</span>
330
+ <Logo size="tiny" badgeShape="heart" style={{ display: 'inline-block' }} />
331
+ </div>
332
+ <div style={{ display: 'flex', gap: '1rem', justifyContent: 'center', flexWrap: 'wrap', marginTop: '2rem' }}>
333
+ <button style={{
334
+ padding: '1rem 2rem',
335
+ fontSize: '1.1rem',
336
+ backgroundColor: 'var(--theme-primary)',
337
+ color: 'var(--theme-on-primary)',
338
+ border: 'none',
339
+ borderRadius: '8px',
340
+ cursor: 'pointer',
341
+ fontWeight: 'bold'
342
+ }}>
343
+ Browse Components
344
+ </button>
345
+ <button style={{
346
+ padding: '1rem 2rem',
347
+ fontSize: '1.1rem',
348
+ backgroundColor: 'transparent',
349
+ color: 'var(--theme-primary)',
350
+ border: '2px solid var(--theme-primary)',
351
+ borderRadius: '8px',
352
+ cursor: 'pointer',
353
+ fontWeight: 'bold'
354
+ }}>
355
+ View on GitHub
356
+ </button>
357
+ </div>
358
+ </div>
359
+ </div>
360
+ ),
361
+ },
362
+ },
363
+ tags: ['autodocs'],
364
364
  };
365
365
 
366
366
  export default meta;
367
367
  type Story = StoryObj<typeof meta>;
368
368
 
369
369
  export const Welcome: Story = {
370
- render: () => (
371
- <QwickApp appId="framework-introduction" appName='Framework Introduction'>
372
- <BrowserRouter>
373
- <Scaffold
374
- appName="QwickApps React Framework"
375
- navigationItems={[
376
- {
377
- id: 'home',
378
- label: 'Home',
379
- icon: <RocketIcon />,
380
- route: '/',
381
- priority: 1,
382
- },
383
- {
384
- id: 'components',
385
- label: 'Components',
386
- icon: <ComponentsIcon />,
387
- route: '/components',
388
- priority: 2,
389
- },
390
- {
391
- id: 'examples',
392
- label: 'Examples',
393
- icon: <LayersIcon />,
394
- route: '/examples',
395
- priority: 3,
396
- },
397
- {
398
- id: 'docs',
399
- label: 'Documentation',
400
- icon: <DocsIcon />,
401
- route: '/docs',
402
- priority: 4,
403
- },
404
- ]}
405
- showAppBar={true}
406
- >
407
- <Routes>
408
- <Route path="/" element={
409
- <Page
410
- header={
411
- <PageBannerHeader
412
- coverImage="https://images.unsplash.com/photo-1557804506-669a67965ba0?ixlib=rb-4.0.3&auto=format&fit=crop&w=1200&q=80"
413
- profileImage={(
414
- <div style={{
415
- width: '100%',
416
- height: '100%',
417
- background: 'linear-gradient(45deg, #2196F3, #21CBF3)',
418
- borderRadius: '16px',
419
- display: 'flex',
420
- alignItems: 'center',
421
- justifyContent: 'center',
422
- fontSize: '3rem',
423
- fontWeight: 'bold',
424
- color: 'white',
425
- }}>
426
- Q
427
- </div>
428
- )}
429
- title="QwickApps React Framework"
430
- subtitle="Complete React framework for building modern applications"
431
- overline="VERSION 2025"
432
- metadata={[
433
- { label: 'Components', value: '50+' },
434
- { label: 'Downloads', value: '10K+' },
435
- { label: 'Stars', value: '2.1K' },
436
- ]}
437
- tags={['React', 'TypeScript', 'Material UI', 'Responsive', 'Accessible']}
438
- actions={[
439
- {
440
- id: 'demo',
441
- label: 'Try Demo',
442
- icon: <DemoIcon />,
443
- onClick: () => alert('Opening demo...'),
444
- priority: 1,
445
- },
446
- {
447
- id: 'github',
448
- label: 'GitHub',
449
- icon: <GitHubIcon />,
450
- onClick: () => alert('Opening GitHub...'),
451
- priority: 2,
452
- },
453
- {
454
- id: 'install',
455
- label: 'Install',
456
- icon: <DownloadIcon />,
457
- onClick: () => navigator.clipboard.writeText('npm install @qwickapps/react-framework'),
458
- priority: 3,
459
- },
460
- ]}
461
- height={200}
462
- />
463
- }
464
- footer={
465
- <Footer
466
- logo={
467
- <div style={{
468
- display: 'flex',
469
- alignItems: 'center',
470
- gap: '0.5rem',
471
- fontWeight: 'bold',
472
- fontSize: '1.2rem',
473
- background: 'linear-gradient(45deg, #2196F3, #21CBF3)',
474
- WebkitBackgroundClip: 'text',
475
- WebkitTextFillColor: 'transparent'
476
- }}>
477
- QwickApps
478
- </div>
479
- }
480
- sections={[
481
- {
482
- id: 'framework',
483
- title: 'Framework',
484
- items: [
485
- { id: 'components', label: 'Components', href: '#components' },
486
- { id: 'theming', label: 'Theming', href: '#theming' },
487
- { id: 'layout', label: 'Layout System', href: '#layout' },
488
- { id: 'examples', label: 'Examples', href: '#examples' },
489
- ],
490
- },
491
- {
492
- id: 'resources',
493
- title: 'Resources',
494
- items: [
495
- { id: 'docs', label: 'Documentation', href: '#docs' },
496
- { id: 'storybook', label: 'Storybook', href: '#storybook' },
497
- { id: 'changelog', label: 'Changelog', href: '#changelog' },
498
- { id: 'migration', label: 'Migration Guide', href: '#migration' },
499
- ],
500
- },
501
- {
502
- id: 'community',
503
- title: 'Community',
504
- items: [
505
- { id: 'github', label: 'GitHub', href: 'https://github.com/qwickapps', external: true },
506
- { id: 'discord', label: 'Discord', href: 'https://discord.gg/qwickapps', external: true },
507
- { id: 'twitter', label: 'Twitter', href: 'https://twitter.com/qwickapps', external: true },
508
- { id: 'support', label: 'Support', href: 'mailto:support@qwickapps.com' },
509
- ],
510
- },
511
- ]}
512
- copyright="© 2025 QwickApps. All rights reserved."
513
- legalText="Proprietary License • Privacy Policy • Terms of Service"
514
- orientation="horizontal"
515
- variant="contained"
516
- />
517
- }
518
- variant="fullwidth"
519
- padding="none"
520
- >
521
- <Section padding="large">
522
- <Content centered maxWidth="large">
523
- <HeroBlock
524
- title="Build Faster with QwickApps"
525
- subtitle="Everything you need to create modern React applications with professional UI components, responsive design, and accessible interfaces."
526
- actions={[
527
- {
528
- label: "Get Started",
529
- onClick: () => { alert('Get Started clicked'); }
530
- },
531
- {
532
- label: "View Components",
533
- variant: "outlined",
534
- onClick: () => { alert('View Components clicked'); }
535
- }
536
- ]}
537
- />
538
- </Content>
539
- </Section>
370
+ render: () => (
371
+ <QwickApp appId="framework-introduction" appName='Framework Introduction'>
372
+ <BrowserRouter>
373
+ <Scaffold
374
+ appName="QwickApps React Framework"
375
+ navigationItems={[
376
+ {
377
+ id: 'home',
378
+ label: 'Home',
379
+ icon: <RocketIcon />,
380
+ route: '/',
381
+ priority: 1,
382
+ },
383
+ {
384
+ id: 'components',
385
+ label: 'Components',
386
+ icon: <ComponentsIcon />,
387
+ route: '/components',
388
+ priority: 2,
389
+ },
390
+ {
391
+ id: 'examples',
392
+ label: 'Examples',
393
+ icon: <LayersIcon />,
394
+ route: '/examples',
395
+ priority: 3,
396
+ },
397
+ {
398
+ id: 'docs',
399
+ label: 'Documentation',
400
+ icon: <DocsIcon />,
401
+ route: '/docs',
402
+ priority: 4,
403
+ },
404
+ ]}
405
+ showAppBar={true}
406
+ >
407
+ <Routes>
408
+ <Route path="/" element={
409
+ <Page
410
+ header={
411
+ <PageBannerHeader
412
+ coverImage="https://images.unsplash.com/photo-1557804506-669a67965ba0?ixlib=rb-4.0.3&auto=format&fit=crop&w=1200&q=80"
413
+ profileImage={(
414
+ <div style={{
415
+ width: '100%',
416
+ height: '100%',
417
+ background: 'linear-gradient(45deg, #2196F3, #21CBF3)',
418
+ borderRadius: '16px',
419
+ display: 'flex',
420
+ alignItems: 'center',
421
+ justifyContent: 'center',
422
+ fontSize: '3rem',
423
+ fontWeight: 'bold',
424
+ color: 'white',
425
+ }}>
426
+ Q
427
+ </div>
428
+ )}
429
+ title="QwickApps React Framework"
430
+ subtitle="Complete React framework for building modern applications"
431
+ overline="VERSION 2025"
432
+ metadata={[
433
+ { label: 'Components', value: '50+' },
434
+ { label: 'Downloads', value: '10K+' },
435
+ { label: 'Stars', value: '2.1K' },
436
+ ]}
437
+ tags={['React', 'TypeScript', 'Material UI', 'Responsive', 'Accessible']}
438
+ actions={[
439
+ {
440
+ id: 'demo',
441
+ label: 'Try Demo',
442
+ icon: <DemoIcon />,
443
+ onClick: () => alert('Opening demo...'),
444
+ priority: 1,
445
+ },
446
+ {
447
+ id: 'github',
448
+ label: 'GitHub',
449
+ icon: <GitHubIcon />,
450
+ onClick: () => alert('Opening GitHub...'),
451
+ priority: 2,
452
+ },
453
+ {
454
+ id: 'install',
455
+ label: 'Install',
456
+ icon: <DownloadIcon />,
457
+ onClick: () => navigator.clipboard.writeText('npm install @qwickapps/react-framework'),
458
+ priority: 3,
459
+ },
460
+ ]}
461
+ height={200}
462
+ />
463
+ }
464
+ footer={
465
+ <Footer
466
+ logo={
467
+ <div style={{
468
+ display: 'flex',
469
+ alignItems: 'center',
470
+ gap: '0.5rem',
471
+ fontWeight: 'bold',
472
+ fontSize: '1.2rem',
473
+ background: 'linear-gradient(45deg, #2196F3, #21CBF3)',
474
+ WebkitBackgroundClip: 'text',
475
+ WebkitTextFillColor: 'transparent'
476
+ }}>
477
+ QwickApps
478
+ </div>
479
+ }
480
+ sections={[
481
+ {
482
+ id: 'framework',
483
+ title: 'Framework',
484
+ items: [
485
+ { id: 'components', label: 'Components', href: '#components' },
486
+ { id: 'theming', label: 'Theming', href: '#theming' },
487
+ { id: 'layout', label: 'Layout System', href: '#layout' },
488
+ { id: 'examples', label: 'Examples', href: '#examples' },
489
+ ],
490
+ },
491
+ {
492
+ id: 'resources',
493
+ title: 'Resources',
494
+ items: [
495
+ { id: 'docs', label: 'Documentation', href: '#docs' },
496
+ { id: 'storybook', label: 'Storybook', href: '#storybook' },
497
+ { id: 'changelog', label: 'Changelog', href: '#changelog' },
498
+ { id: 'migration', label: 'Migration Guide', href: '#migration' },
499
+ ],
500
+ },
501
+ {
502
+ id: 'community',
503
+ title: 'Community',
504
+ items: [
505
+ { id: 'github', label: 'GitHub', href: 'https://github.com/qwickapps', external: true },
506
+ { id: 'discord', label: 'Discord', href: 'https://discord.gg/qwickapps', external: true },
507
+ { id: 'twitter', label: 'Twitter', href: 'https://twitter.com/qwickapps', external: true },
508
+ { id: 'support', label: 'Support', href: 'mailto:support@qwickapps.com' },
509
+ ],
510
+ },
511
+ ]}
512
+ copyright="© 2025 QwickApps. All rights reserved."
513
+ legalText="Proprietary License • Privacy Policy • Terms of Service"
514
+ orientation="horizontal"
515
+ variant="contained"
516
+ />
517
+ }
518
+ variant="fullwidth"
519
+ padding="none"
520
+ >
521
+ <Section padding="large">
522
+ <Content centered maxWidth="large">
523
+ <HeroBlock
524
+ title="Build Faster with QwickApps"
525
+ subtitle="Everything you need to create modern React applications with professional UI components, responsive design, and accessible interfaces."
526
+ actions={[
527
+ {
528
+ label: "Get Started",
529
+ onClick: () => { alert('Get Started clicked'); }
530
+ },
531
+ {
532
+ label: "View Components",
533
+ variant: "outlined",
534
+ onClick: () => { alert('View Components clicked'); }
535
+ }
536
+ ]}
537
+ />
538
+ </Content>
539
+ </Section>
540
540
 
541
- <Section padding="large" background="alternate">
542
- <Content title=" What's New in 2025" centered maxWidth="extra-large">
543
- <FeatureGrid
544
- columns={3}
545
- gap="large"
546
- features={[
547
- {
548
- id: 'page-redesign',
549
- icon: <LayersIcon style={{ fontSize: '3rem', color: 'var(--theme-primary)' }} />,
550
- title: 'Page Component Redesign',
551
- description: 'Simplified architecture with optional header and footer props. Clean separation of concerns.',
552
- },
553
- {
554
- id: 'header-components',
555
- icon: <ComponentsIcon style={{ fontSize: '3rem', color: 'var(--theme-secondary)' }} />,
556
- title: 'Header Components',
557
- description: 'CoverImageHeader and PageBannerHeader for flexible page layouts and social media styles.',
558
- },
559
- {
560
- id: 'footer-system',
561
- icon: <SettingsIcon style={{ fontSize: '3rem', color: 'var(--theme-success)' }} />,
562
- title: 'Footer System',
563
- description: 'Comprehensive footer with sections, legal information, and responsive layouts.',
564
- },
565
- ]}
566
- />
567
- </Content>
568
- </Section>
541
+ <Section padding="large" background="alternate">
542
+ <Content title=" What's New in 2025" centered maxWidth="extra-large">
543
+ <FeatureGrid
544
+ columns={3}
545
+ gap="large"
546
+ features={[
547
+ {
548
+ id: 'page-redesign',
549
+ icon: <LayersIcon style={{ fontSize: '3rem', color: 'var(--theme-primary)' }} />,
550
+ title: 'Page Component Redesign',
551
+ description: 'Simplified architecture with optional header and footer props. Clean separation of concerns.',
552
+ },
553
+ {
554
+ id: 'header-components',
555
+ icon: <ComponentsIcon style={{ fontSize: '3rem', color: 'var(--theme-secondary)' }} />,
556
+ title: 'Header Components',
557
+ description: 'CoverImageHeader and PageBannerHeader for flexible page layouts and social media styles.',
558
+ },
559
+ {
560
+ id: 'footer-system',
561
+ icon: <SettingsIcon style={{ fontSize: '3rem', color: 'var(--theme-success)' }} />,
562
+ title: 'Footer System',
563
+ description: 'Comprehensive footer with sections, legal information, and responsive layouts.',
564
+ },
565
+ ]}
566
+ />
567
+ </Content>
568
+ </Section>
569
569
 
570
- <Section padding="large">
571
- <Content title="🚀 Key Features" centered maxWidth="large">
572
- <GridLayout columns={2} spacing="large">
573
- <GridCell>
574
- <FeatureGrid
575
- columns={1}
576
- gap="medium"
577
- features={[
578
- {
579
- id: 'theming',
580
- icon: <PaletteIcon style={{ fontSize: '2rem', color: 'var(--theme-primary)' }} />,
581
- title: 'Advanced Theming',
582
- description: 'Dark/light mode with custom color palettes and CSS variable system.',
583
- },
584
- {
585
- id: 'responsive',
586
- icon: <PhoneIcon style={{ fontSize: '2rem', color: 'var(--theme-secondary)' }} />,
587
- title: 'Mobile First',
588
- description: 'Responsive design with Material UI breakpoints and touch-friendly interfaces.',
589
- },
590
- {
591
- id: 'accessibility',
592
- icon: <AccessibilityIcon style={{ fontSize: '2rem', color: 'var(--theme-success)' }} />,
593
- title: 'Accessibility',
594
- description: 'WCAG 2.1 compliant with screen reader support and keyboard navigation.',
595
- },
596
- ]}
597
- />
598
- </GridCell>
599
-
600
- <GridCell>
601
- <FeatureGrid
602
- columns={1}
603
- gap="medium"
604
- features={[
605
- {
606
- id: 'typescript',
607
- icon: <CodeIcon style={{ fontSize: '2rem', color: 'var(--theme-warning)' }} />,
608
- title: 'TypeScript First',
609
- description: 'Full type safety with comprehensive interfaces and IntelliSense support.',
610
- },
611
- {
612
- id: 'performance',
613
- icon: <SpeedIcon style={{ fontSize: '2rem', color: 'var(--theme-error)' }} />,
614
- title: 'Performance',
615
- description: 'Optimized components with lazy loading and efficient re-rendering.',
616
- },
617
- {
618
- id: 'secure',
619
- icon: <SecurityIcon style={{ fontSize: '2rem', color: 'var(--theme-info)' }} />,
620
- title: 'Secure by Default',
621
- description: 'Built-in security features and protection against common vulnerabilities.',
622
- },
623
- ]}
624
- />
625
- </GridCell>
626
- </GridLayout>
627
- </Content>
628
- </Section>
629
- </Page>
630
- } />
631
-
632
- <Route path="/components" element={
633
- <Page
634
- header={
635
- <CoverImageHeader
636
- title="Component Library"
637
- subtitle="Explore 50+ production-ready components"
638
- overline="DOCUMENTATION"
639
- tags={['Components', 'TypeScript', 'Responsive']}
640
- />
641
- }
642
- >
643
- <Section padding="large">
644
- <Content title="Browse by Category" maxWidth="large">
645
- <FeatureGrid
646
- columns={3}
647
- gap="large"
648
- features={[
649
- {
650
- id: 'layout',
651
- icon: <LayersIcon style={{ fontSize: '2rem' }} />,
652
- title: 'Layout',
653
- description: 'Page, Section, GridLayout, Content, FeatureGrid',
654
- },
655
- {
656
- id: 'navigation',
657
- icon: <ComponentsIcon style={{ fontSize: '2rem' }} />,
658
- title: 'Navigation',
659
- description: 'Scaffold, ResponsiveMenu, Footer with responsive behavior',
660
- },
661
- {
662
- id: 'branding',
663
- icon: <PaletteIcon style={{ fontSize: '2rem' }} />,
664
- title: 'Branding',
665
- description: 'Logo, ThemeSwitcher, PaletteSwitcher for brand identity',
666
- },
667
- ]}
668
- />
669
- </Content>
670
- </Section>
671
- </Page>
672
- } />
673
-
674
- <Route path="/examples" element={
675
- <Page
676
- header={
677
- <CoverImageHeader
678
- title="Examples & Templates"
679
- subtitle="Ready-to-use templates and code examples"
680
- overline="EXAMPLES"
681
- />
682
- }
683
- >
684
- <Section padding="large">
685
- <Content title="Coming Soon" centered>
686
- <p>Example templates and code samples will be available here.</p>
687
- </Content>
688
- </Section>
689
- </Page>
690
- } />
691
-
692
- <Route path="/docs" element={
693
- <Page
694
- header={
695
- <CoverImageHeader
696
- title="Documentation"
697
- subtitle="Complete guides and API references"
698
- overline="DOCUMENTATION"
699
- />
700
- }
701
- >
702
- <Section padding="large">
703
- <Content title="Documentation Links" centered>
704
- <p>Full documentation will be available on our website.</p>
705
- </Content>
706
- </Section>
707
- </Page>
708
- } />
709
- </Routes>
710
- </Scaffold>
711
- </BrowserRouter>
712
- </QwickApp>
713
- ),
714
- parameters: {
715
- docs: {
716
- description: {
717
- story: 'Complete framework introduction with navigation, header components, and footer. Demonstrates the new Page architecture with flexible headers and footers.',
718
- },
719
- },
720
- },
570
+ <Section padding="large">
571
+ <Content title=" Key Features" centered maxWidth="large">
572
+ <GridLayout columns={2} spacing="large">
573
+ <GridCell>
574
+ <FeatureGrid
575
+ columns={1}
576
+ gap="medium"
577
+ features={[
578
+ {
579
+ id: 'theming',
580
+ icon: <PaletteIcon style={{ fontSize: '2rem', color: 'var(--theme-primary)' }} />,
581
+ title: 'Advanced Theming',
582
+ description: 'Dark/light mode with custom color palettes and CSS variable system.',
583
+ },
584
+ {
585
+ id: 'responsive',
586
+ icon: <PhoneIcon style={{ fontSize: '2rem', color: 'var(--theme-secondary)' }} />,
587
+ title: 'Mobile First',
588
+ description: 'Responsive design with Material UI breakpoints and touch-friendly interfaces.',
589
+ },
590
+ {
591
+ id: 'accessibility',
592
+ icon: <AccessibilityIcon style={{ fontSize: '2rem', color: 'var(--theme-success)' }} />,
593
+ title: 'Accessibility',
594
+ description: 'WCAG 2.1 compliant with screen reader support and keyboard navigation.',
595
+ },
596
+ ]}
597
+ />
598
+ </GridCell>
599
+
600
+ <GridCell>
601
+ <FeatureGrid
602
+ columns={1}
603
+ gap="medium"
604
+ features={[
605
+ {
606
+ id: 'typescript',
607
+ icon: <CodeIcon style={{ fontSize: '2rem', color: 'var(--theme-warning)' }} />,
608
+ title: 'TypeScript First',
609
+ description: 'Full type safety with comprehensive interfaces and IntelliSense support.',
610
+ },
611
+ {
612
+ id: 'performance',
613
+ icon: <SpeedIcon style={{ fontSize: '2rem', color: 'var(--theme-error)' }} />,
614
+ title: 'Performance',
615
+ description: 'Optimized components with lazy loading and efficient re-rendering.',
616
+ },
617
+ {
618
+ id: 'secure',
619
+ icon: <SecurityIcon style={{ fontSize: '2rem', color: 'var(--theme-info)' }} />,
620
+ title: 'Secure by Default',
621
+ description: 'Built-in security features and protection against common vulnerabilities.',
622
+ },
623
+ ]}
624
+ />
625
+ </GridCell>
626
+ </GridLayout>
627
+ </Content>
628
+ </Section>
629
+ </Page>
630
+ } />
631
+
632
+ <Route path="/components" element={
633
+ <Page
634
+ header={
635
+ <CoverImageHeader
636
+ title="Component Library"
637
+ subtitle="Explore 50+ production-ready components"
638
+ overline="DOCUMENTATION"
639
+ tags={['Components', 'TypeScript', 'Responsive']}
640
+ />
641
+ }
642
+ >
643
+ <Section padding="large">
644
+ <Content title="Browse by Category" maxWidth="large">
645
+ <FeatureGrid
646
+ columns={3}
647
+ gap="large"
648
+ features={[
649
+ {
650
+ id: 'layout',
651
+ icon: <LayersIcon style={{ fontSize: '2rem' }} />,
652
+ title: 'Layout',
653
+ description: 'Page, Section, GridLayout, Content, FeatureGrid',
654
+ },
655
+ {
656
+ id: 'navigation',
657
+ icon: <ComponentsIcon style={{ fontSize: '2rem' }} />,
658
+ title: 'Navigation',
659
+ description: 'Scaffold, ResponsiveMenu, Footer with responsive behavior',
660
+ },
661
+ {
662
+ id: 'branding',
663
+ icon: <PaletteIcon style={{ fontSize: '2rem' }} />,
664
+ title: 'Branding',
665
+ description: 'Logo, ThemeSwitcher, PaletteSwitcher for brand identity',
666
+ },
667
+ ]}
668
+ />
669
+ </Content>
670
+ </Section>
671
+ </Page>
672
+ } />
673
+
674
+ <Route path="/examples" element={
675
+ <Page
676
+ header={
677
+ <CoverImageHeader
678
+ title="Examples & Templates"
679
+ subtitle="Ready-to-use templates and code examples"
680
+ overline="EXAMPLES"
681
+ />
682
+ }
683
+ >
684
+ <Section padding="large">
685
+ <Content title="Coming Soon" centered>
686
+ <p>Example templates and code samples will be available here.</p>
687
+ </Content>
688
+ </Section>
689
+ </Page>
690
+ } />
691
+
692
+ <Route path="/docs" element={
693
+ <Page
694
+ header={
695
+ <CoverImageHeader
696
+ title="Documentation"
697
+ subtitle="Complete guides and API references"
698
+ overline="DOCUMENTATION"
699
+ />
700
+ }
701
+ >
702
+ <Section padding="large">
703
+ <Content title="Documentation Links" centered>
704
+ <p>Full documentation will be available on our website.</p>
705
+ </Content>
706
+ </Section>
707
+ </Page>
708
+ } />
709
+ </Routes>
710
+ </Scaffold>
711
+ </BrowserRouter>
712
+ </QwickApp>
713
+ ),
714
+ parameters: {
715
+ docs: {
716
+ description: {
717
+ story: 'Complete framework introduction with navigation, header components, and footer. Demonstrates the new Page architecture with flexible headers and footers.',
718
+ },
719
+ },
720
+ },
721
721
  };