@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.
- package/README.md +1688 -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/Content.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/ProductCard.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/ThemeContext.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 +20722 -16021
- package/dist/index.js +20725 -16010
- 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/Content.tsx +25 -77
- 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 +51 -52
- 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/ThemeContext.tsx +1 -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
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
HeroBlock,
|
|
4
|
+
Content,
|
|
5
|
+
FeatureGrid,
|
|
6
|
+
Section
|
|
7
7
|
} from '../components/blocks';
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
GridLayout,
|
|
10
|
+
GridCell
|
|
11
11
|
} from '../components/layout';
|
|
12
12
|
import { QwickApp } from '../components/QwickApp';
|
|
13
13
|
import { Button } from '../components/buttons/Button';
|
|
14
14
|
|
|
15
15
|
const meta: Meta = {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
16
|
+
title: 'Layout/LayoutBlocks',
|
|
17
|
+
decorators: [
|
|
18
|
+
(Story) => (
|
|
19
|
+
<QwickApp appName="Layout Demo">
|
|
20
|
+
<Story />
|
|
21
|
+
</QwickApp>
|
|
22
|
+
),
|
|
23
|
+
],
|
|
24
|
+
parameters: {
|
|
25
|
+
layout: 'fullscreen',
|
|
26
|
+
docs: {
|
|
27
|
+
description: {
|
|
28
|
+
component: `Comprehensive collection of layout components for building responsive, professional content layouts with minimal effort.
|
|
29
29
|
|
|
30
30
|
**Key Features:**
|
|
31
31
|
- **HeroBlock**: Full-width hero sections with background images, gradients, and call-to-action buttons
|
|
@@ -45,338 +45,338 @@ const meta: Meta = {
|
|
|
45
45
|
- Blog posts and article layouts
|
|
46
46
|
- Portfolio and showcase websites
|
|
47
47
|
- Any application requiring structured content presentation`,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
export default meta;
|
|
54
54
|
|
|
55
55
|
// Hero Block Stories
|
|
56
56
|
export const HeroBlocks: StoryObj = {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
57
|
+
render: () => (
|
|
58
|
+
<div>
|
|
59
|
+
<HeroBlock
|
|
60
|
+
title="Welcome to QwickApps React Framework"
|
|
61
|
+
subtitle="Build beautiful, responsive React applications with ease"
|
|
62
|
+
backgroundGradient="linear-gradient(135deg, #667eea 0%, #764ba2 100%)"
|
|
63
|
+
height="medium"
|
|
64
|
+
actions={[
|
|
65
|
+
{
|
|
66
|
+
label: 'Get Started',
|
|
67
|
+
variant: 'primary',
|
|
68
|
+
onClick: () => { alert('Get Started clicked'); }
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
label: 'Learn More',
|
|
72
|
+
variant: 'outlined',
|
|
73
|
+
onClick: () => { alert('Learn More clicked'); }
|
|
74
|
+
}
|
|
75
|
+
]}
|
|
76
|
+
/>
|
|
77
|
+
|
|
78
|
+
<Section spacing="spacious">
|
|
79
|
+
<HeroBlock
|
|
80
|
+
title="Small Hero with Image"
|
|
81
|
+
subtitle="This hero uses a background image with overlay"
|
|
82
|
+
backgroundImage="https://images.unsplash.com/photo-1558618666-fcd25c85cd64?ixlib=rb-4.0.3&auto=format&fit=crop&w=1200&q=80"
|
|
83
|
+
height="small"
|
|
84
|
+
overlayOpacity={0.7}
|
|
85
|
+
textAlign="left"
|
|
86
|
+
/>
|
|
87
|
+
</Section>
|
|
88
|
+
</div>
|
|
89
|
+
),
|
|
90
90
|
};
|
|
91
91
|
|
|
92
92
|
// GridCell Layout Stories
|
|
93
93
|
export const ColumnLayouts: StoryObj = {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
94
|
+
render: () => (
|
|
95
|
+
<div>
|
|
96
|
+
<Section spacing="spacious">
|
|
97
|
+
<Content title="Two GridCell Layout" centered>
|
|
98
|
+
<GridLayout columns={2} spacing="large">
|
|
99
|
+
<GridCell background="background.paper">
|
|
100
|
+
<h3>Left GridCell</h3>
|
|
101
|
+
<p>This is the left column content with automatic responsive behavior.</p>
|
|
102
|
+
</GridCell>
|
|
103
|
+
<GridCell background="grey.100">
|
|
104
|
+
<h3>Right GridCell</h3>
|
|
105
|
+
<p>This is the right column content that will stack below on mobile.</p>
|
|
106
|
+
</GridCell>
|
|
107
|
+
</GridLayout>
|
|
108
|
+
</Content>
|
|
109
|
+
</Section>
|
|
110
110
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
111
|
+
<Section background="grey.50">
|
|
112
|
+
<Content title="Three GridCell Layout" centered>
|
|
113
|
+
<GridLayout columns={3} spacing="medium" equalHeight>
|
|
114
|
+
<GridCell background="background.paper">
|
|
115
|
+
<h4>Feature One</h4>
|
|
116
|
+
<p>Equal height columns ensure consistent layout.</p>
|
|
117
|
+
</GridCell>
|
|
118
|
+
<GridCell background="background.paper">
|
|
119
|
+
<h4>Feature Two</h4>
|
|
120
|
+
<p>This column has more content to demonstrate the equal height functionality working properly.</p>
|
|
121
|
+
</GridCell>
|
|
122
|
+
<GridCell background="background.paper">
|
|
123
|
+
<h4>Feature Three</h4>
|
|
124
|
+
<p>Short content.</p>
|
|
125
|
+
</GridCell>
|
|
126
|
+
</GridLayout>
|
|
127
|
+
</Content>
|
|
128
|
+
</Section>
|
|
129
129
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
130
|
+
<Section spacing="spacious">
|
|
131
|
+
<Content title="Four & Five GridCell Layouts" centered>
|
|
132
|
+
<GridLayout columns={4} spacing="small" sx={{ mb: 3 }}>
|
|
133
|
+
{[1, 2, 3, 4].map((i) => (
|
|
134
|
+
<GridCell key={i} background="primary.main" sx={{ textAlign: 'center' }}>
|
|
135
|
+
<strong>Col {i}</strong>
|
|
136
|
+
</GridCell>
|
|
137
|
+
))}
|
|
138
|
+
</GridLayout>
|
|
139
|
+
|
|
140
|
+
<GridLayout columns={5} spacing="small">
|
|
141
|
+
{[1, 2, 3, 4, 5].map((i) => (
|
|
142
|
+
<GridCell key={i} background="grey.200" sx={{ textAlign: 'center' }}>
|
|
143
|
+
<strong>{i}</strong>
|
|
144
|
+
</GridCell>
|
|
145
|
+
))}
|
|
146
|
+
</GridLayout>
|
|
147
|
+
</Content>
|
|
148
|
+
</Section>
|
|
149
|
+
</div>
|
|
150
|
+
),
|
|
151
151
|
};
|
|
152
152
|
|
|
153
153
|
// Content Block Stories
|
|
154
154
|
export const Contents: StoryObj = {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
155
|
+
render: () => (
|
|
156
|
+
<div>
|
|
157
|
+
<Section spacing="spacious">
|
|
158
|
+
<Content
|
|
159
|
+
title="Default Content Block"
|
|
160
|
+
centered
|
|
161
|
+
maxWidth="md"
|
|
162
|
+
>
|
|
163
|
+
<p>This is a default content block with automatic responsive behavior and theme-aware styling.</p>
|
|
164
|
+
</Content>
|
|
165
|
+
</Section>
|
|
166
166
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
167
|
+
<Section background="default">
|
|
168
|
+
<Content
|
|
169
|
+
title="Elevated Content Block"
|
|
170
|
+
variant="elevated"
|
|
171
|
+
spacing="spacious"
|
|
172
|
+
centered
|
|
173
|
+
maxWidth="md"
|
|
174
|
+
>
|
|
175
|
+
<p>This elevated content block has a subtle shadow and stands out from the background.</p>
|
|
176
|
+
</Content>
|
|
177
|
+
</Section>
|
|
178
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
|
-
|
|
179
|
+
<Section spacing="spacious">
|
|
180
|
+
<GridLayout columns={2} spacing="large">
|
|
181
|
+
<GridCell>
|
|
182
|
+
<Content
|
|
183
|
+
title="Outlined Block"
|
|
184
|
+
variant="outlined"
|
|
185
|
+
spacing="spacious"
|
|
186
|
+
>
|
|
187
|
+
<p>This content block has a border instead of a shadow.</p>
|
|
188
|
+
</Content>
|
|
189
|
+
</GridCell>
|
|
190
|
+
<GridCell>
|
|
191
|
+
<Content
|
|
192
|
+
title="Filled Block"
|
|
193
|
+
variant="filled"
|
|
194
|
+
spacing="spacious"
|
|
195
|
+
>
|
|
196
|
+
<p>This content block has a filled background color.</p>
|
|
197
|
+
</Content>
|
|
198
|
+
</GridCell>
|
|
199
|
+
</GridLayout>
|
|
200
|
+
</Section>
|
|
201
|
+
</div>
|
|
202
|
+
),
|
|
203
203
|
};
|
|
204
204
|
|
|
205
205
|
// Feature Grid Stories
|
|
206
206
|
export const FeatureGrids: StoryObj = {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
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
|
-
|
|
207
|
+
render: () => (
|
|
208
|
+
<div>
|
|
209
|
+
<Section spacing="spacious">
|
|
210
|
+
<Content title="Feature Grid" centered maxWidth="lg">
|
|
211
|
+
<FeatureGrid
|
|
212
|
+
columns={3}
|
|
213
|
+
gap="large"
|
|
214
|
+
features={[
|
|
215
|
+
{
|
|
216
|
+
id: 'responsive',
|
|
217
|
+
icon: <span style={{ fontSize: '2rem' }}></span>,
|
|
218
|
+
title: 'Responsive Design',
|
|
219
|
+
description: 'All components automatically adapt to different screen sizes for optimal user experience.',
|
|
220
|
+
action: <Button label="Learn More" buttonSize="small" onClick={() => { alert('Learn More clicked'); }} />
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
id: 'themes',
|
|
224
|
+
icon: <span style={{ fontSize: '2rem' }}></span>,
|
|
225
|
+
title: 'Theme Support',
|
|
226
|
+
description: 'Built-in light/dark theme support with customizable color palettes.',
|
|
227
|
+
action: <Button label="Explore" buttonSize="small" onClick={() => { alert('Explore clicked'); }} />
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
id: 'accessible',
|
|
231
|
+
icon: <span style={{ fontSize: '2rem' }}>♿</span>,
|
|
232
|
+
title: 'Accessibility First',
|
|
233
|
+
description: 'All components follow WCAG guidelines and include proper ARIA labels.',
|
|
234
|
+
action: <Button label="Details" buttonSize="small" onClick={() => { alert('Details clicked'); }} />
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
id: 'typescript',
|
|
238
|
+
icon: <span style={{ fontSize: '2rem' }}>🔷</span>,
|
|
239
|
+
title: 'TypeScript Ready',
|
|
240
|
+
description: 'Full TypeScript support with comprehensive type definitions.',
|
|
241
|
+
action: <Button label="Documentation" buttonSize="small" onClick={() => { alert('Documentation clicked'); }} />
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
id: 'performance',
|
|
245
|
+
icon: <span style={{ fontSize: '2rem' }}></span>,
|
|
246
|
+
title: 'High Performance',
|
|
247
|
+
description: 'Optimized for speed with minimal bundle size and efficient rendering.',
|
|
248
|
+
action: <Button label="Benchmarks" buttonSize="small" onClick={() => { alert('Benchmarks clicked'); }} />
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
id: 'customizable',
|
|
252
|
+
icon: <span style={{ fontSize: '2rem' }}>🛠</span>,
|
|
253
|
+
title: 'Highly Customizable',
|
|
254
|
+
description: 'Easy to customize and extend with your own design system.',
|
|
255
|
+
action: <Button label="Customize" buttonSize="small" onClick={() => { alert('Customize clicked'); }} />
|
|
256
|
+
},
|
|
257
|
+
]}
|
|
258
|
+
/>
|
|
259
|
+
</Content>
|
|
260
|
+
</Section>
|
|
261
|
+
</div>
|
|
262
|
+
),
|
|
263
263
|
};
|
|
264
264
|
|
|
265
265
|
// Complete Layout Example
|
|
266
266
|
export const CompleteLayout: StoryObj = {
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
267
|
+
render: () => (
|
|
268
|
+
<div>
|
|
269
|
+
{/* Hero Section */}
|
|
270
|
+
<HeroBlock
|
|
271
|
+
title="QwickApps React Framework"
|
|
272
|
+
subtitle="The complete React framework for building modern applications"
|
|
273
|
+
backgroundGradient="linear-gradient(135deg, #667eea 0%, #764ba2 100%)"
|
|
274
|
+
height="large"
|
|
275
|
+
actions={[
|
|
276
|
+
{
|
|
277
|
+
label: 'Get Started',
|
|
278
|
+
variant: 'primary',
|
|
279
|
+
size: 'large',
|
|
280
|
+
onClick: () => { alert('Get Started clicked'); }
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
label: 'View Demo',
|
|
284
|
+
variant: 'outlined',
|
|
285
|
+
size: 'large',
|
|
286
|
+
onClick: () => { alert('View Demo clicked'); }
|
|
287
|
+
}
|
|
288
|
+
]}
|
|
289
|
+
/>
|
|
290
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
|
-
|
|
321
|
-
|
|
322
|
-
|
|
291
|
+
{/* Features Section */}
|
|
292
|
+
<Section background="alternate">
|
|
293
|
+
<Content title="Why Choose QwickApps?" centered maxWidth="lg">
|
|
294
|
+
<p style={{ fontSize: '1.2rem', textAlign: 'center', marginBottom: '3rem', opacity: 0.8 }}>
|
|
295
|
+
Everything you need to build beautiful, responsive applications
|
|
296
|
+
</p>
|
|
297
|
+
<FeatureGrid
|
|
298
|
+
columns={3}
|
|
299
|
+
gap="large"
|
|
300
|
+
features={[
|
|
301
|
+
{
|
|
302
|
+
id: 'components',
|
|
303
|
+
icon: <span style={{ fontSize: '3rem' }}>🧩</span>,
|
|
304
|
+
title: 'Rich Components',
|
|
305
|
+
description: 'Comprehensive set of pre-built, customizable components for rapid development.',
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
id: 'layouts',
|
|
309
|
+
icon: <span style={{ fontSize: '3rem' }}>📐</span>,
|
|
310
|
+
title: 'Flexible Layouts',
|
|
311
|
+
description: 'Powerful layout blocks that adapt to any design and screen size automatically.',
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
id: 'navigation',
|
|
315
|
+
icon: <span style={{ fontSize: '3rem' }}>🧭</span>,
|
|
316
|
+
title: 'Smart Navigation',
|
|
317
|
+
description: 'Responsive navigation that transforms based on device: bottom nav, rail, or top nav.',
|
|
318
|
+
},
|
|
319
|
+
]}
|
|
320
|
+
/>
|
|
321
|
+
</Content>
|
|
322
|
+
</Section>
|
|
323
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
|
-
|
|
324
|
+
{/* Content Sections */}
|
|
325
|
+
<Section spacing="spacious">
|
|
326
|
+
<GridLayout columns={2} spacing="large">
|
|
327
|
+
<GridCell>
|
|
328
|
+
<Content title="Easy to Use" variant="elevated" spacing="spacious">
|
|
329
|
+
<p>QwickApps React Framework is designed for developers who want to build great applications without spending time on boilerplate.</p>
|
|
330
|
+
<ul>
|
|
331
|
+
<li>Simple API design</li>
|
|
332
|
+
<li>Comprehensive documentation</li>
|
|
333
|
+
<li>TypeScript support</li>
|
|
334
|
+
<li>Storybook examples</li>
|
|
335
|
+
</ul>
|
|
336
|
+
</Content>
|
|
337
|
+
</GridCell>
|
|
338
|
+
<GridCell>
|
|
339
|
+
<Content title="Production Ready" variant="elevated" spacing="spacious">
|
|
340
|
+
<p>Built with best practices and tested in real-world applications to ensure reliability and performance.</p>
|
|
341
|
+
<ul>
|
|
342
|
+
<li>Accessibility compliant</li>
|
|
343
|
+
<li>Performance optimized</li>
|
|
344
|
+
<li>Theme system</li>
|
|
345
|
+
<li>Mobile-first design</li>
|
|
346
|
+
</ul>
|
|
347
|
+
</Content>
|
|
348
|
+
</GridCell>
|
|
349
|
+
</GridLayout>
|
|
350
|
+
</Section>
|
|
351
351
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
352
|
+
{/* Call to Action */}
|
|
353
|
+
<Section background="primary">
|
|
354
|
+
<Content
|
|
355
|
+
centered
|
|
356
|
+
maxWidth="md"
|
|
357
|
+
actions={[
|
|
358
|
+
{
|
|
359
|
+
label: 'Start Building',
|
|
360
|
+
variant: 'secondary',
|
|
361
|
+
size: 'large',
|
|
362
|
+
onClick: () => { alert('Start Building clicked'); }
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
label: 'Documentation',
|
|
366
|
+
variant: 'outlined',
|
|
367
|
+
size: 'large',
|
|
368
|
+
onClick: () => console.log('Documentation clicked')
|
|
369
|
+
}
|
|
370
|
+
]}
|
|
371
|
+
>
|
|
372
|
+
<h2 style={{ fontSize: '2.5rem', marginBottom: '1rem' }}>
|
|
373
|
+
Ready to Get Started?
|
|
374
|
+
</h2>
|
|
375
|
+
<p style={{ fontSize: '1.2rem', opacity: 0.9, marginBottom: '2rem' }}>
|
|
376
|
+
Join thousands of developers building with QwickApps React Framework
|
|
377
|
+
</p>
|
|
378
|
+
</Content>
|
|
379
|
+
</Section>
|
|
380
|
+
</div>
|
|
381
|
+
),
|
|
382
382
|
};
|