@qwickapps/react-framework 1.3.5 → 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.
- package/README.md +1681 -2
- package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts +66 -0
- package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +1 -0
- package/dist/components/ErrorBoundary.d.ts +7 -0
- package/dist/components/ErrorBoundary.d.ts.map +1 -1
- package/dist/components/Html.d.ts +28 -18
- package/dist/components/Html.d.ts.map +1 -1
- package/dist/components/Logo.d.ts +12 -35
- package/dist/components/Logo.d.ts.map +1 -1
- package/dist/components/Markdown.d.ts +18 -13
- package/dist/components/Markdown.d.ts.map +1 -1
- package/dist/components/QwickApp.d.ts +16 -3
- package/dist/components/QwickApp.d.ts.map +1 -1
- package/dist/components/QwickIcon.d.ts +23 -0
- package/dist/components/QwickIcon.d.ts.map +1 -0
- package/dist/components/SafeSpan.d.ts +12 -5
- package/dist/components/SafeSpan.d.ts.map +1 -1
- package/dist/components/Scaffold.d.ts.map +1 -1
- package/dist/components/base/ModelView.d.ts +101 -0
- package/dist/components/base/ModelView.d.ts.map +1 -0
- package/dist/components/base/index.d.ts +11 -0
- package/dist/components/base/index.d.ts.map +1 -0
- package/dist/components/blocks/Article.d.ts +12 -2
- package/dist/components/blocks/Article.d.ts.map +1 -1
- package/dist/components/blocks/Code.d.ts +13 -2
- package/dist/components/blocks/Code.d.ts.map +1 -1
- package/dist/components/blocks/CoverImageHeader.d.ts.map +1 -1
- package/dist/components/blocks/FeatureCard.d.ts.map +1 -1
- package/dist/components/blocks/FeatureGrid.d.ts.map +1 -1
- package/dist/components/blocks/Footer.d.ts.map +1 -1
- package/dist/components/blocks/HeroBlock.d.ts +27 -13
- package/dist/components/blocks/HeroBlock.d.ts.map +1 -1
- package/dist/components/blocks/Image.d.ts +41 -0
- package/dist/components/blocks/Image.d.ts.map +1 -0
- package/dist/components/blocks/PageBannerHeader.d.ts.map +1 -1
- package/dist/components/blocks/Section.d.ts +16 -2
- package/dist/components/blocks/Section.d.ts.map +1 -1
- package/dist/components/blocks/Text.d.ts +41 -0
- package/dist/components/blocks/Text.d.ts.map +1 -0
- package/dist/components/blocks/index.d.ts +4 -0
- package/dist/components/blocks/index.d.ts.map +1 -1
- package/dist/components/buttons/Button.d.ts +23 -7
- package/dist/components/buttons/Button.d.ts.map +1 -1
- package/dist/components/forms/FormBlock.d.ts +19 -13
- package/dist/components/forms/FormBlock.d.ts.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/input/ChoiceInputField.d.ts +17 -11
- package/dist/components/input/ChoiceInputField.d.ts.map +1 -1
- package/dist/components/input/HtmlInputField.d.ts +17 -11
- package/dist/components/input/HtmlInputField.d.ts.map +1 -1
- package/dist/components/input/SelectInputField.d.ts +16 -10
- package/dist/components/input/SelectInputField.d.ts.map +1 -1
- package/dist/components/input/SwitchInputField.d.ts +16 -10
- package/dist/components/input/SwitchInputField.d.ts.map +1 -1
- package/dist/components/input/TextField.d.ts.map +1 -1
- package/dist/components/input/TextInputField.d.ts +16 -11
- package/dist/components/input/TextInputField.d.ts.map +1 -1
- package/dist/components/layout/GridCell.d.ts +23 -6
- package/dist/components/layout/GridCell.d.ts.map +1 -1
- package/dist/components/layout/GridLayout.d.ts +24 -23
- package/dist/components/layout/GridLayout.d.ts.map +1 -1
- package/dist/components/pages/FormPage.d.ts.map +1 -1
- package/dist/components/pages/Page.d.ts +49 -87
- package/dist/components/pages/Page.d.ts.map +1 -1
- package/dist/components/pages/index.d.ts +2 -2
- package/dist/components/pages/index.d.ts.map +1 -1
- package/dist/config/AppConfig.d.ts +49 -0
- package/dist/config/AppConfig.d.ts.map +1 -0
- package/dist/config/AppConfigBuilder.d.ts +75 -0
- package/dist/config/AppConfigBuilder.d.ts.map +1 -0
- package/dist/config/index.d.ts +13 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/types.d.ts +130 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config.d.ts +15 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.esm.js +451 -0
- package/dist/config.js +455 -0
- package/dist/contexts/PrintModeContext.d.ts +27 -0
- package/dist/contexts/PrintModeContext.d.ts.map +1 -0
- package/dist/contexts/QwickAppContext.d.ts +2 -2
- package/dist/contexts/QwickAppContext.d.ts.map +1 -1
- package/dist/contexts/index.d.ts +2 -0
- package/dist/contexts/index.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/usePrintMode.d.ts +39 -0
- package/dist/hooks/usePrintMode.d.ts.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.js +10951 -6238
- package/dist/index.js +11014 -6287
- package/dist/schemas/CodeSchema.d.ts +2 -1
- package/dist/schemas/CodeSchema.d.ts.map +1 -1
- package/dist/schemas/CollapsibleLayoutSchema.d.ts +2 -1
- package/dist/schemas/CollapsibleLayoutSchema.d.ts.map +1 -1
- package/dist/schemas/ContentSchema.d.ts +2 -1
- package/dist/schemas/ContentSchema.d.ts.map +1 -1
- package/dist/schemas/GridCellSchema.d.ts +25 -0
- package/dist/schemas/GridCellSchema.d.ts.map +1 -0
- package/dist/schemas/GridLayoutSchema.d.ts +23 -0
- package/dist/schemas/GridLayoutSchema.d.ts.map +1 -0
- package/dist/schemas/HtmlSchema.d.ts +14 -0
- package/dist/schemas/HtmlSchema.d.ts.map +1 -0
- package/dist/schemas/ImageSchema.d.ts +32 -0
- package/dist/schemas/ImageSchema.d.ts.map +1 -0
- package/dist/schemas/LogoSchema.d.ts +35 -0
- package/dist/schemas/LogoSchema.d.ts.map +1 -0
- package/dist/schemas/MarkdownSchema.d.ts +14 -0
- package/dist/schemas/MarkdownSchema.d.ts.map +1 -0
- package/dist/schemas/PageTemplateSchema.d.ts +31 -0
- package/dist/schemas/PageTemplateSchema.d.ts.map +1 -0
- package/dist/schemas/PrintConfigSchema.d.ts +31 -0
- package/dist/schemas/PrintConfigSchema.d.ts.map +1 -0
- package/dist/schemas/SectionSchema.d.ts +2 -1
- package/dist/schemas/SectionSchema.d.ts.map +1 -1
- package/dist/schemas/TextSchema.d.ts +37 -0
- package/dist/schemas/TextSchema.d.ts.map +1 -0
- package/dist/schemas/ViewModelSchema.d.ts +23 -0
- package/dist/schemas/ViewModelSchema.d.ts.map +1 -0
- package/dist/schemas/index.d.ts +15 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/transformers/ComponentTransformer.d.ts +116 -0
- package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -0
- package/dist/schemas/transformers/ReactNodeTransformer.d.ts +53 -0
- package/dist/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -0
- package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts +66 -0
- package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts.map +1 -0
- package/dist/schemas/transformers/registry.d.ts +15 -0
- package/dist/schemas/transformers/registry.d.ts.map +1 -0
- package/dist/schemas/types/Serializable.d.ts +46 -0
- package/dist/schemas/types/Serializable.d.ts.map +1 -0
- package/dist/utils/htmlTransform.d.ts.map +1 -1
- package/dist/utils/reactUtils.d.ts +12 -3
- package/dist/utils/reactUtils.d.ts.map +1 -1
- package/package.json +17 -3
- package/src/{components/__tests__ → __tests__/components}/AccessibilityProvider.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/Article.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/Breadcrumbs.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/Button.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/CardListGrid.test.tsx +2 -2
- package/src/{components/__tests__ → __tests__/components}/ChoiceInputField.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/Code.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/Content.integration.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/Content.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/CoverImageHeader.test.tsx +2 -2
- package/src/{components/__tests__ → __tests__/components}/ErrorBoundary.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/FeatureCard.integration.test.tsx +2 -2
- package/src/{components/__tests__ → __tests__/components}/FeatureGrid.integration.test.tsx +2 -2
- package/src/{components/__tests__ → __tests__/components}/FeatureGrid.test.tsx +2 -2
- package/src/{components/__tests__ → __tests__/components}/Footer.test.tsx +4 -4
- package/src/{components/__tests__ → __tests__/components}/FormBlock.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/HeroBlock.integration.test.tsx +2 -2
- package/src/{components/__tests__ → __tests__/components}/HeroBlock.test.tsx +233 -7
- package/src/{components/__tests__ → __tests__/components}/Html.test.tsx +11 -2
- package/src/{components/__tests__ → __tests__/components}/HtmlInputField.test.tsx +3 -3
- package/src/__tests__/components/Logo.test.js +3 -3
- package/src/{components/__tests__ → __tests__/components}/Markdown.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/PageBannerHeader.test.tsx +3 -3
- package/src/{components/__tests__ → __tests__/components}/PaletteSwitcher.test.tsx +3 -3
- package/src/{components/__tests__ → __tests__/components}/ProductCard.test.tsx +4 -4
- package/src/{components/__tests__ → __tests__/components}/SafeSpan.integration.test.tsx +2 -2
- package/src/{components/__tests__ → __tests__/components}/SafeSpan.simple.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/SafeSpan.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/Section.integration.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/Section.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/SelectInputField.test.tsx +1 -1
- package/src/{components/__tests__ → __tests__/components}/TextInputField.test.tsx +3 -3
- package/src/{components/__tests__ → __tests__/components}/ThemeSwitcher.test.tsx +3 -3
- package/src/__tests__/components/base/ModelView.test.tsx +220 -0
- package/src/__tests__/components/blocks/Code.performance.test.tsx +625 -0
- package/src/__tests__/components/blocks/Code.serialization.test.tsx +507 -0
- package/src/__tests__/components/blocks/HeroBlock.serialization.test.tsx +414 -0
- package/src/__tests__/components/blocks/Image.serialization.test.tsx +257 -0
- package/src/__tests__/components/blocks/Section.serialization.test.tsx +553 -0
- package/src/__tests__/components/blocks/Text.performance.test.tsx +442 -0
- package/src/__tests__/components/blocks/Text.serialization.test.tsx +491 -0
- package/src/__tests__/components/buttons/Button.serialization.test.tsx +443 -0
- package/src/__tests__/components/input/FormComponents.serialization.test.tsx +482 -0
- package/src/__tests__/components/input/SelectInputField.serialization.test.tsx +439 -0
- package/src/__tests__/components/input/TextInputField.serialization.test.tsx +359 -0
- package/src/{components/layout/CollapsibleLayout/__tests__ → __tests__/components/layout}/CollapsibleLayout.test.tsx +4 -4
- package/src/__tests__/components/layout/GridCell.serialization.test.tsx +403 -0
- package/src/__tests__/components/layout/GridLayout.serialization.test.tsx +311 -0
- package/src/__tests__/hooks/usePrintMode.test.ts +89 -0
- package/src/__tests__/schemas/PageTemplateSchema.test.ts +161 -0
- package/src/__tests__/schemas/PrintConfigSchema.test.ts +127 -0
- package/src/__tests__/schemas/ViewModelSchema.test.ts +80 -0
- package/src/__tests__/schemas/transformers/ComponentSerializationPatterns.test.tsx +602 -0
- package/src/__tests__/schemas/transformers/ComponentTransformer.htmlPatterns.test.ts +301 -0
- package/src/__tests__/schemas/transformers/ComponentTransformer.test.ts +521 -0
- package/src/__tests__/schemas/transformers/CrossBrowserCompatibility.test.ts +586 -0
- package/src/__tests__/schemas/transformers/MockSerializableComponent.ts +103 -0
- package/src/__tests__/schemas/transformers/RealWorldScenarios.test.tsx +1165 -0
- package/src/__tests__/schemas/transformers/SerializationErrorHandling.test.ts +602 -0
- package/src/__tests__/schemas/transformers/SerializationIntegration.test.tsx +691 -0
- package/src/__tests__/schemas/transformers/SerializationPerformance.test.ts +460 -0
- package/src/__tests__/schemas/transformers/TestAutomation.test.ts +597 -0
- package/src/{utils/__tests__ → __tests__/utils}/nested-dom-fix.test.tsx +1 -1
- package/src/components/ErrorBoundary.tsx +8 -8
- package/src/components/Html.tsx +147 -44
- package/src/components/Logo.tsx +198 -100
- package/src/components/Markdown.tsx +125 -16
- package/src/components/QwickApp.tsx +64 -31
- package/src/components/QwickIcon.tsx +59 -0
- package/src/components/SafeSpan.tsx +65 -10
- package/src/components/Scaffold.tsx +2 -8
- package/src/components/base/ModelView.tsx +199 -0
- package/src/components/base/index.ts +11 -0
- package/src/components/blocks/Article.tsx +57 -18
- package/src/components/blocks/Code.md +529 -0
- package/src/components/blocks/Code.tsx +102 -15
- package/src/components/blocks/CoverImageHeader.tsx +9 -4
- package/src/components/blocks/FeatureCard.tsx +1 -2
- package/src/components/blocks/FeatureGrid.tsx +19 -1
- package/src/components/blocks/Footer.tsx +13 -1
- package/src/components/blocks/HeroBlock.tsx +87 -20
- package/src/components/blocks/Image.tsx +395 -0
- package/src/components/blocks/PageBannerHeader.tsx +14 -12
- package/src/components/blocks/ProductCard.tsx +1 -1
- package/src/components/blocks/Section.tsx +113 -8
- package/src/components/blocks/Text.tsx +285 -0
- package/src/components/blocks/index.ts +4 -0
- package/src/components/buttons/Button.tsx +184 -15
- package/src/components/forms/FormBlock.tsx +70 -17
- package/src/components/index.ts +5 -0
- package/src/components/input/ChoiceInputField.tsx +48 -18
- package/src/components/input/HtmlInputField.tsx +48 -18
- package/src/components/input/SelectInputField.tsx +48 -16
- package/src/components/input/SwitchInputField.tsx +48 -17
- package/src/components/input/TextField.tsx +41 -1
- package/src/components/input/TextInputField.tsx +52 -18
- package/src/components/layout/GridCell.tsx +118 -9
- package/src/components/layout/GridLayout.tsx +125 -24
- package/src/components/pages/FormPage.tsx +0 -1
- package/src/components/pages/Page.css +304 -332
- package/src/components/pages/Page.tsx +307 -255
- package/src/components/pages/index.ts +2 -2
- package/src/config/AppConfig.ts +133 -0
- package/src/config/AppConfigBuilder.ts +421 -0
- package/src/config/__tests__/AppConfig.test.ts +385 -0
- package/src/config/__tests__/AppConfigBuilder.test.ts +432 -0
- package/src/config/index.ts +24 -0
- package/src/config/types.ts +170 -0
- package/src/config.ts +25 -0
- package/src/contexts/PrintModeContext.tsx +332 -0
- package/src/contexts/QwickAppContext.tsx +2 -2
- package/src/contexts/index.ts +2 -0
- package/src/hooks/index.ts +5 -1
- package/src/hooks/usePrintMode.ts +73 -0
- package/src/index.ts +3 -0
- package/src/schemas/CodeSchema.ts +3 -3
- package/src/schemas/CollapsibleLayoutSchema.ts +2 -1
- package/src/schemas/ContentSchema.ts +2 -1
- package/src/schemas/GridCellSchema.ts +164 -0
- package/src/schemas/GridLayoutSchema.ts +133 -0
- package/src/schemas/HtmlSchema.ts +47 -0
- package/src/schemas/ImageSchema.ts +235 -0
- package/src/schemas/LogoSchema.ts +241 -0
- package/src/schemas/MarkdownSchema.ts +47 -0
- package/src/schemas/PageTemplateSchema.ts +186 -0
- package/src/schemas/PrintConfigSchema.ts +207 -0
- package/src/schemas/README.md +661 -0
- package/src/schemas/SectionSchema.ts +2 -1
- package/src/schemas/TextSchema.ts +329 -0
- package/src/schemas/ViewModelSchema.ts +115 -0
- package/src/schemas/index.ts +21 -2
- package/src/schemas/transformers/ComponentTransformer.ts +403 -0
- package/src/schemas/transformers/ReactNodeTransformer.ts +236 -0
- package/src/schemas/transformers/registry.ts +72 -0
- package/src/schemas/types/Serializable.ts +51 -0
- package/src/stories/AccessibilityProvider.stories.tsx +253 -253
- package/src/stories/Article.stories.tsx +433 -433
- package/src/stories/Button.stories.tsx +1 -1
- package/src/stories/CardListGrid.stories.tsx +451 -451
- package/src/stories/ChoiceInputField.stories.tsx +503 -503
- package/src/stories/Code.stories.tsx +1 -1
- package/src/stories/CollapsibleLayout.stories.tsx +1414 -1414
- package/src/stories/Content.stories.tsx +393 -393
- package/src/stories/CoverImageHeader.stories.tsx +701 -701
- package/src/stories/DataBinding.advanced.stories.tsx +432 -432
- package/src/stories/DataProvider.stories.tsx +1192 -1192
- package/src/stories/FeatureCard.stories.tsx +557 -557
- package/src/stories/FeatureGrid.stories.tsx +594 -594
- package/src/stories/Footer.stories.tsx +640 -640
- package/src/stories/FormBlock.stories.tsx +760 -760
- package/src/stories/FormComponents.stories.tsx +349 -541
- package/src/stories/GridCell.stories.tsx +417 -0
- package/src/stories/GridLayout.stories.tsx +353 -0
- package/src/stories/HeroBlock.stories.tsx +862 -373
- package/src/stories/HtmlInputField.stories.tsx +474 -474
- package/src/stories/Image.stories.tsx +819 -0
- package/src/stories/Introduction.stories.tsx +667 -667
- package/src/stories/LayoutBlocks.stories.tsx +324 -324
- package/src/stories/Logo.stories.tsx +165 -6
- package/src/stories/Markdown.stories.tsx +137 -137
- package/src/stories/ModelView.stories.tsx +477 -0
- package/src/stories/Page.stories.tsx +688 -688
- package/src/stories/PageBannerHeader.stories.tsx +864 -864
- package/src/stories/PaletteSwitcher.stories.tsx +119 -119
- package/src/stories/ProductCard.stories.tsx +424 -424
- package/src/stories/QwickApp.stories.tsx +368 -368
- package/src/stories/ResponsiveMenu.stories.tsx +249 -249
- package/src/stories/SafeSpan.stories.tsx +531 -531
- package/src/stories/Section.stories.tsx +90 -2
- package/src/stories/SelectInputField.stories.tsx +524 -524
- package/src/stories/Text.stories.tsx +560 -0
- package/src/stories/TextInputField.stories.tsx +443 -443
- package/src/stories/ThemeSwitcher.stories.tsx +123 -123
- package/src/utils/htmlTransform.tsx +74 -53
- package/src/utils/reactUtils.tsx +57 -6
- package/dist/index.bundled.css +0 -12
- /package/src/{hooks/__tests__ → __tests__/hooks}/useDataBinding.test.tsx.disabled +0 -0
- /package/src/{schemas/__tests__ → __tests__/schemas}/builders.test.ts +0 -0
- /package/src/{utils/__tests__ → __tests__/utils}/createDataDrivenComponent.test.tsx.disabled +0 -0
- /package/src/{utils/__tests__ → __tests__/utils}/htmlTransform.test.tsx +0 -0
- /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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
return (
|
|
84
|
+
<QwickApp appId="com.mycompany.myapp">
|
|
85
|
+
{/* Your app content */}
|
|
86
|
+
</QwickApp>
|
|
87
|
+
);
|
|
88
88
|
}`}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
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
|
-
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
</Code>
|
|
208
|
+
</div>
|
|
209
|
+
</div>
|
|
210
210
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
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
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
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
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
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
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
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
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
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
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
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
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
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
|
};
|