@qwickapps/react-framework 1.4.1 → 1.4.3
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/QUICK_START_GUIDE.md +82 -0
- package/README.md +221 -21
- package/dist/components/Html.d.ts.map +1 -1
- package/dist/components/Markdown.d.ts +1 -2
- package/dist/components/Markdown.d.ts.map +1 -1
- package/dist/components/SafeSpan.d.ts +1 -2
- package/dist/components/SafeSpan.d.ts.map +1 -1
- package/dist/components/base/Container.d.ts +32 -0
- package/dist/components/base/Container.d.ts.map +1 -0
- package/dist/components/base/ContainerView.d.ts +65 -0
- package/dist/components/base/ContainerView.d.ts.map +1 -0
- package/dist/components/base/ModelView.d.ts +37 -46
- package/dist/components/base/ModelView.d.ts.map +1 -1
- package/dist/components/base/index.d.ts +3 -2
- package/dist/components/base/index.d.ts.map +1 -1
- package/dist/components/blocks/Article.d.ts +1 -2
- package/dist/components/blocks/Article.d.ts.map +1 -1
- package/dist/components/blocks/Code-factory.d.ts +22 -0
- package/dist/components/blocks/Code-factory.d.ts.map +1 -0
- package/dist/components/blocks/Code-old.d.ts +31 -0
- package/dist/components/blocks/Code-old.d.ts.map +1 -0
- package/dist/components/blocks/Code.d.ts +30 -18
- package/dist/components/blocks/Code.d.ts.map +1 -1
- package/dist/components/blocks/HeroBlock.d.ts +1 -2
- package/dist/components/blocks/HeroBlock.d.ts.map +1 -1
- package/dist/components/blocks/Image.d.ts +1 -2
- package/dist/components/blocks/Image.d.ts.map +1 -1
- package/dist/components/blocks/Section.d.ts +1 -2
- package/dist/components/blocks/Section.d.ts.map +1 -1
- package/dist/components/blocks/Text.d.ts +35 -27
- package/dist/components/blocks/Text.d.ts.map +1 -1
- package/dist/components/buttons/Button.d.ts +1 -2
- package/dist/components/buttons/Button.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/input/ChoiceInputField.d.ts +1 -2
- package/dist/components/input/ChoiceInputField.d.ts.map +1 -1
- package/dist/components/input/HtmlInputField.d.ts +1 -2
- package/dist/components/input/HtmlInputField.d.ts.map +1 -1
- package/dist/components/input/SelectInputField.d.ts +1 -2
- package/dist/components/input/SelectInputField.d.ts.map +1 -1
- package/dist/components/pages/Page.d.ts +29 -47
- package/dist/components/pages/Page.d.ts.map +1 -1
- package/dist/components/pages/index.d.ts +2 -3
- package/dist/components/pages/index.d.ts.map +1 -1
- package/dist/components/shared/createSerializableView.d.ts +68 -0
- package/dist/components/shared/createSerializableView.d.ts.map +1 -0
- package/dist/components/shared/viewProps.d.ts +37 -0
- package/dist/components/shared/viewProps.d.ts.map +1 -0
- package/dist/index.esm.js +21782 -22580
- package/dist/index.js +21782 -22579
- package/dist/qa/ConsoleWarningTest.d.ts +5 -0
- package/dist/qa/ConsoleWarningTest.d.ts.map +1 -0
- package/dist/qa/StorageKeyTest.d.ts +6 -0
- package/dist/qa/StorageKeyTest.d.ts.map +1 -0
- package/dist/qa/ThemeStorageKeyTest.d.ts +6 -0
- package/dist/qa/ThemeStorageKeyTest.d.ts.map +1 -0
- package/dist/schemas/CodeSchema.d.ts +2 -2
- package/dist/schemas/CodeSchema.d.ts.map +1 -1
- package/dist/schemas/ContainerSchema.d.ts +12 -0
- package/dist/schemas/ContainerSchema.d.ts.map +1 -0
- package/dist/schemas/PageTemplateSchema.d.ts +3 -3
- package/dist/schemas/PageTemplateSchema.d.ts.map +1 -1
- package/dist/schemas/ViewModelSchema.d.ts +46 -6
- package/dist/schemas/ViewModelSchema.d.ts.map +1 -1
- package/dist/schemas/ViewSchema.d.ts +65 -0
- package/dist/schemas/ViewSchema.d.ts.map +1 -0
- package/dist/schemas/index.d.ts +1 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/transformers/ComponentTransformer.d.ts +27 -15
- package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -1
- package/dist/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -1
- package/dist/schemas/transformers/registry.d.ts +3 -0
- package/dist/schemas/transformers/registry.d.ts.map +1 -1
- package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts +66 -0
- package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +1 -0
- package/dist/src/components/AccessibilityChecker.d.ts +12 -0
- package/dist/src/components/AccessibilityChecker.d.ts.map +1 -0
- package/dist/src/components/AccessibilityProvider.d.ts +64 -0
- package/dist/src/components/AccessibilityProvider.d.ts.map +1 -0
- package/dist/src/components/Breadcrumbs.d.ts +39 -0
- package/dist/src/components/Breadcrumbs.d.ts.map +1 -0
- package/dist/src/components/ErrorBoundary.d.ts +46 -0
- package/dist/src/components/ErrorBoundary.d.ts.map +1 -0
- package/dist/src/components/Html.d.ts +58 -0
- package/dist/src/components/Html.d.ts.map +1 -0
- package/dist/src/components/Logo.d.ts +56 -0
- package/dist/src/components/Logo.d.ts.map +1 -0
- package/dist/src/components/Markdown.d.ts +51 -0
- package/dist/src/components/Markdown.d.ts.map +1 -0
- package/dist/src/components/QwickApp.d.ts +69 -0
- package/dist/src/components/QwickApp.d.ts.map +1 -0
- package/dist/src/components/QwickAppsLogo.d.ts +25 -0
- package/dist/src/components/QwickAppsLogo.d.ts.map +1 -0
- package/dist/src/components/QwickIcon.d.ts +23 -0
- package/dist/src/components/QwickIcon.d.ts.map +1 -0
- package/dist/src/components/ResponsiveMenu.d.ts +38 -0
- package/dist/src/components/ResponsiveMenu.d.ts.map +1 -0
- package/dist/src/components/SafeSpan.d.ts +29 -0
- package/dist/src/components/SafeSpan.d.ts.map +1 -0
- package/dist/src/components/Scaffold.d.ts +57 -0
- package/dist/src/components/Scaffold.d.ts.map +1 -0
- package/dist/src/components/base/Container.d.ts +33 -0
- package/dist/src/components/base/Container.d.ts.map +1 -0
- package/dist/src/components/base/ModelView.d.ts +92 -0
- package/dist/src/components/base/ModelView.d.ts.map +1 -0
- package/dist/src/components/base/index.d.ts +12 -0
- package/dist/src/components/base/index.d.ts.map +1 -0
- package/dist/src/components/blocks/Article.d.ts +32 -0
- package/dist/src/components/blocks/Article.d.ts.map +1 -0
- package/dist/src/components/blocks/CardListGrid.d.ts +23 -0
- package/dist/src/components/blocks/CardListGrid.d.ts.map +1 -0
- package/dist/src/components/blocks/Code.d.ts +37 -0
- package/dist/src/components/blocks/Code.d.ts.map +1 -0
- package/dist/src/components/blocks/Content.d.ts +24 -0
- package/dist/src/components/blocks/Content.d.ts.map +1 -0
- package/dist/src/components/blocks/CoverImageHeader.d.ts +44 -0
- package/dist/src/components/blocks/CoverImageHeader.d.ts.map +1 -0
- package/dist/src/components/blocks/FeatureCard.d.ts +66 -0
- package/dist/src/components/blocks/FeatureCard.d.ts.map +1 -0
- package/dist/src/components/blocks/FeatureGrid.d.ts +48 -0
- package/dist/src/components/blocks/FeatureGrid.d.ts.map +1 -0
- package/dist/src/components/blocks/Footer.d.ts +56 -0
- package/dist/src/components/blocks/Footer.d.ts.map +1 -0
- package/dist/src/components/blocks/HeroBlock.d.ts +55 -0
- package/dist/src/components/blocks/HeroBlock.d.ts.map +1 -0
- package/dist/src/components/blocks/Image.d.ts +40 -0
- package/dist/src/components/blocks/Image.d.ts.map +1 -0
- package/dist/src/components/blocks/PageBannerHeader.d.ts +30 -0
- package/dist/src/components/blocks/PageBannerHeader.d.ts.map +1 -0
- package/dist/src/components/blocks/ProductCard.d.ts +57 -0
- package/dist/src/components/blocks/ProductCard.d.ts.map +1 -0
- package/dist/src/components/blocks/Section.d.ts +45 -0
- package/dist/src/components/blocks/Section.d.ts.map +1 -0
- package/dist/src/components/blocks/Text.d.ts +34 -0
- package/dist/src/components/blocks/Text.d.ts.map +1 -0
- package/dist/src/components/blocks/index.d.ts +41 -0
- package/dist/src/components/blocks/index.d.ts.map +1 -0
- package/dist/src/components/buttons/Button.d.ts +41 -0
- package/dist/src/components/buttons/Button.d.ts.map +1 -0
- package/dist/src/components/buttons/PaletteSwitcher.d.ts +24 -0
- package/dist/src/components/buttons/PaletteSwitcher.d.ts.map +1 -0
- package/dist/src/components/buttons/ThemeSwitcher.d.ts +24 -0
- package/dist/src/components/buttons/ThemeSwitcher.d.ts.map +1 -0
- package/dist/src/components/buttons/index.d.ts +11 -0
- package/dist/src/components/buttons/index.d.ts.map +1 -0
- package/dist/src/components/forms/FormBlock.d.ts +51 -0
- package/dist/src/components/forms/FormBlock.d.ts.map +1 -0
- package/dist/src/components/forms/index.d.ts +8 -0
- package/dist/src/components/forms/index.d.ts.map +1 -0
- package/dist/src/components/index.d.ts +41 -0
- package/dist/src/components/index.d.ts.map +1 -0
- package/dist/src/components/input/ChoiceInputField.d.ts +29 -0
- package/dist/src/components/input/ChoiceInputField.d.ts.map +1 -0
- package/dist/src/components/input/HtmlInputField.d.ts +33 -0
- package/dist/src/components/input/HtmlInputField.d.ts.map +1 -0
- package/dist/src/components/input/SelectInputField.d.ts +31 -0
- package/dist/src/components/input/SelectInputField.d.ts.map +1 -0
- package/dist/src/components/input/SwitchInputField.d.ts +27 -0
- package/dist/src/components/input/SwitchInputField.d.ts.map +1 -0
- package/dist/src/components/input/TextField.d.ts +18 -0
- package/dist/src/components/input/TextField.d.ts.map +1 -0
- package/dist/src/components/input/TextInputField.d.ts +34 -0
- package/dist/src/components/input/TextInputField.d.ts.map +1 -0
- package/dist/src/components/input/index.d.ts +19 -0
- package/dist/src/components/input/index.d.ts.map +1 -0
- package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts +34 -0
- package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +1 -0
- package/dist/src/components/layout/CollapsibleLayout/index.d.ts +9 -0
- package/dist/src/components/layout/CollapsibleLayout/index.d.ts.map +1 -0
- package/dist/src/components/layout/GridCell.d.ts +32 -0
- package/dist/src/components/layout/GridCell.d.ts.map +1 -0
- package/dist/src/components/layout/GridCellWrapper.d.ts +46 -0
- package/dist/src/components/layout/GridCellWrapper.d.ts.map +1 -0
- package/dist/src/components/layout/GridLayout.d.ts +50 -0
- package/dist/src/components/layout/GridLayout.d.ts.map +1 -0
- package/dist/src/components/layout/index.d.ts +14 -0
- package/dist/src/components/layout/index.d.ts.map +1 -0
- package/dist/src/components/menu/Menu.d.ts +1 -0
- package/dist/src/components/menu/Menu.d.ts.map +1 -0
- package/dist/src/components/menu/MenuItem.d.ts +31 -0
- package/dist/src/components/menu/MenuItem.d.ts.map +1 -0
- package/dist/src/components/menu/index.d.ts +7 -0
- package/dist/src/components/menu/index.d.ts.map +1 -0
- package/dist/src/components/pages/FormPage.d.ts +66 -0
- package/dist/src/components/pages/FormPage.d.ts.map +1 -0
- package/dist/src/components/pages/Page.d.ts +68 -0
- package/dist/src/components/pages/Page.d.ts.map +1 -0
- package/dist/src/components/pages/index.d.ts +10 -0
- package/dist/src/components/pages/index.d.ts.map +1 -0
- package/dist/src/components/shared/createSerializableView.d.ts +81 -0
- package/dist/src/components/shared/createSerializableView.d.ts.map +1 -0
- package/dist/src/components/shared/viewProps.d.ts +37 -0
- package/dist/src/components/shared/viewProps.d.ts.map +1 -0
- package/dist/src/config/AppConfig.d.ts +49 -0
- package/dist/src/config/AppConfig.d.ts.map +1 -0
- package/dist/src/config/AppConfigBuilder.d.ts +75 -0
- package/dist/src/config/AppConfigBuilder.d.ts.map +1 -0
- package/dist/src/config/index.d.ts +13 -0
- package/dist/src/config/index.d.ts.map +1 -0
- package/dist/src/config/types.d.ts +130 -0
- package/dist/src/config/types.d.ts.map +1 -0
- package/dist/src/config.d.ts +15 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/contexts/DataContext.d.ts +139 -0
- package/dist/src/contexts/DataContext.d.ts.map +1 -0
- package/dist/src/contexts/DimensionsContext.d.ts +42 -0
- package/dist/src/contexts/DimensionsContext.d.ts.map +1 -0
- package/dist/src/contexts/PaletteContext.d.ts +53 -0
- package/dist/src/contexts/PaletteContext.d.ts.map +1 -0
- package/dist/src/contexts/PrintModeContext.d.ts +27 -0
- package/dist/src/contexts/PrintModeContext.d.ts.map +1 -0
- package/dist/src/contexts/QwickAppContext.d.ts +71 -0
- package/dist/src/contexts/QwickAppContext.d.ts.map +1 -0
- package/dist/src/contexts/ThemeContext.d.ts +65 -0
- package/dist/src/contexts/ThemeContext.d.ts.map +1 -0
- package/dist/src/contexts/index.d.ts +11 -0
- package/dist/src/contexts/index.d.ts.map +1 -0
- package/dist/src/hooks/index.d.ts +12 -0
- package/dist/src/hooks/index.d.ts.map +1 -0
- package/dist/src/hooks/useBaseProps.d.ts +101 -0
- package/dist/src/hooks/useBaseProps.d.ts.map +1 -0
- package/dist/src/hooks/useDataBinding.d.ts +22 -0
- package/dist/src/hooks/useDataBinding.d.ts.map +1 -0
- package/dist/src/hooks/usePrintMode.d.ts +39 -0
- package/dist/src/hooks/usePrintMode.d.ts.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/palettes/PaletteAutumn.d.ts +10 -0
- package/dist/src/palettes/PaletteAutumn.d.ts.map +1 -0
- package/dist/src/palettes/PaletteCosmic.d.ts +10 -0
- package/dist/src/palettes/PaletteCosmic.d.ts.map +1 -0
- package/dist/src/palettes/PaletteDefault.d.ts +10 -0
- package/dist/src/palettes/PaletteDefault.d.ts.map +1 -0
- package/dist/src/palettes/PaletteOcean.d.ts +10 -0
- package/dist/src/palettes/PaletteOcean.d.ts.map +1 -0
- package/dist/src/palettes/PaletteSpring.d.ts +10 -0
- package/dist/src/palettes/PaletteSpring.d.ts.map +1 -0
- package/dist/src/palettes/PaletteWinter.d.ts +10 -0
- package/dist/src/palettes/PaletteWinter.d.ts.map +1 -0
- package/dist/src/palettes/index.d.ts +13 -0
- package/dist/src/palettes/index.d.ts.map +1 -0
- package/dist/src/schemas/ActionSchema.d.ts +21 -0
- package/dist/src/schemas/ActionSchema.d.ts.map +1 -0
- package/dist/src/schemas/ArticleSchema.d.ts +13 -0
- package/dist/src/schemas/ArticleSchema.d.ts.map +1 -0
- package/dist/src/schemas/ButtonSchema.d.ts +19 -0
- package/dist/src/schemas/ButtonSchema.d.ts.map +1 -0
- package/dist/src/schemas/CardListGridSchema.d.ts +17 -0
- package/dist/src/schemas/CardListGridSchema.d.ts.map +1 -0
- package/dist/src/schemas/ChoiceInputFieldSchema.d.ts +18 -0
- package/dist/src/schemas/ChoiceInputFieldSchema.d.ts.map +1 -0
- package/dist/src/schemas/CodeSchema.d.ts +18 -0
- package/dist/src/schemas/CodeSchema.d.ts.map +1 -0
- package/dist/src/schemas/CollapsibleLayoutSchema.d.ts +32 -0
- package/dist/src/schemas/CollapsibleLayoutSchema.d.ts.map +1 -0
- package/dist/src/schemas/ContainerSchema.d.ts +12 -0
- package/dist/src/schemas/ContainerSchema.d.ts.map +1 -0
- package/dist/src/schemas/ContentSchema.d.ts +21 -0
- package/dist/src/schemas/ContentSchema.d.ts.map +1 -0
- package/dist/src/schemas/CoverImageHeaderSchema.d.ts +28 -0
- package/dist/src/schemas/CoverImageHeaderSchema.d.ts.map +1 -0
- package/dist/src/schemas/FeatureCardSchema.d.ts +28 -0
- package/dist/src/schemas/FeatureCardSchema.d.ts.map +1 -0
- package/dist/src/schemas/FeatureGridSchema.d.ts +17 -0
- package/dist/src/schemas/FeatureGridSchema.d.ts.map +1 -0
- package/dist/src/schemas/FeatureItemSchema.d.ts +16 -0
- package/dist/src/schemas/FeatureItemSchema.d.ts.map +1 -0
- package/dist/src/schemas/FooterItemSchema.d.ts +15 -0
- package/dist/src/schemas/FooterItemSchema.d.ts.map +1 -0
- package/dist/src/schemas/FooterSchema.d.ts +20 -0
- package/dist/src/schemas/FooterSchema.d.ts.map +1 -0
- package/dist/src/schemas/FooterSectionSchema.d.ts +15 -0
- package/dist/src/schemas/FooterSectionSchema.d.ts.map +1 -0
- package/dist/src/schemas/FormBlockSchema.d.ts +19 -0
- package/dist/src/schemas/FormBlockSchema.d.ts.map +1 -0
- package/dist/src/schemas/GridCellSchema.d.ts +23 -0
- package/dist/src/schemas/GridCellSchema.d.ts.map +1 -0
- package/dist/src/schemas/GridLayoutSchema.d.ts +21 -0
- package/dist/src/schemas/GridLayoutSchema.d.ts.map +1 -0
- package/dist/src/schemas/HeaderActionSchema.d.ts +17 -0
- package/dist/src/schemas/HeaderActionSchema.d.ts.map +1 -0
- package/dist/src/schemas/HeroBlockSchema.d.ts +22 -0
- package/dist/src/schemas/HeroBlockSchema.d.ts.map +1 -0
- package/dist/src/schemas/HtmlInputFieldSchema.d.ts +18 -0
- package/dist/src/schemas/HtmlInputFieldSchema.d.ts.map +1 -0
- package/dist/src/schemas/HtmlSchema.d.ts +14 -0
- package/dist/src/schemas/HtmlSchema.d.ts.map +1 -0
- package/dist/src/schemas/ImageSchema.d.ts +32 -0
- package/dist/src/schemas/ImageSchema.d.ts.map +1 -0
- package/dist/src/schemas/LogoSchema.d.ts +35 -0
- package/dist/src/schemas/LogoSchema.d.ts.map +1 -0
- package/dist/src/schemas/MarkdownSchema.d.ts +14 -0
- package/dist/src/schemas/MarkdownSchema.d.ts.map +1 -0
- package/dist/src/schemas/MetadataItemSchema.d.ts +13 -0
- package/dist/src/schemas/MetadataItemSchema.d.ts.map +1 -0
- package/dist/src/schemas/PageBannerHeaderSchema.d.ts +28 -0
- package/dist/src/schemas/PageBannerHeaderSchema.d.ts.map +1 -0
- package/dist/src/schemas/PageTemplateSchema.d.ts +31 -0
- package/dist/src/schemas/PageTemplateSchema.d.ts.map +1 -0
- package/dist/src/schemas/PaletteSwitcherSchema.d.ts +16 -0
- package/dist/src/schemas/PaletteSwitcherSchema.d.ts.map +1 -0
- package/dist/src/schemas/PrintConfigSchema.d.ts +31 -0
- package/dist/src/schemas/PrintConfigSchema.d.ts.map +1 -0
- package/dist/src/schemas/ProductCardSchema.d.ts +39 -0
- package/dist/src/schemas/ProductCardSchema.d.ts.map +1 -0
- package/dist/src/schemas/SafeSpanSchema.d.ts +13 -0
- package/dist/src/schemas/SafeSpanSchema.d.ts.map +1 -0
- package/dist/src/schemas/SectionSchema.d.ts +16 -0
- package/dist/src/schemas/SectionSchema.d.ts.map +1 -0
- package/dist/src/schemas/SelectInputFieldSchema.d.ts +27 -0
- package/dist/src/schemas/SelectInputFieldSchema.d.ts.map +1 -0
- package/dist/src/schemas/SwitchInputFieldSchema.d.ts +18 -0
- package/dist/src/schemas/SwitchInputFieldSchema.d.ts.map +1 -0
- package/dist/src/schemas/TextInputFieldSchema.d.ts +22 -0
- package/dist/src/schemas/TextInputFieldSchema.d.ts.map +1 -0
- package/dist/src/schemas/TextSchema.d.ts +37 -0
- package/dist/src/schemas/TextSchema.d.ts.map +1 -0
- package/dist/src/schemas/ThemeSwitcherSchema.d.ts +19 -0
- package/dist/src/schemas/ThemeSwitcherSchema.d.ts.map +1 -0
- package/dist/src/schemas/ViewSchema.d.ts +66 -0
- package/dist/src/schemas/ViewSchema.d.ts.map +1 -0
- package/dist/src/schemas/index.d.ts +47 -0
- package/dist/src/schemas/index.d.ts.map +1 -0
- package/dist/src/schemas/transformers/ComponentTransformer.d.ts +128 -0
- package/dist/src/schemas/transformers/ComponentTransformer.d.ts.map +1 -0
- package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts +53 -0
- package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -0
- package/dist/src/schemas/transformers/registry.d.ts +18 -0
- package/dist/src/schemas/transformers/registry.d.ts.map +1 -0
- package/dist/src/schemas/types/Serializable.d.ts +46 -0
- package/dist/src/schemas/types/Serializable.d.ts.map +1 -0
- package/dist/src/stories/_templates/SerializationTemplate.d.ts +44 -0
- package/dist/src/stories/_templates/SerializationTemplate.d.ts.map +1 -0
- package/dist/src/templates/TemplateResolver.d.ts +52 -0
- package/dist/src/templates/TemplateResolver.d.ts.map +1 -0
- package/dist/src/templates/index.d.ts +7 -0
- package/dist/src/templates/index.d.ts.map +1 -0
- package/dist/src/types/CacheProvider.d.ts +18 -0
- package/dist/src/types/CacheProvider.d.ts.map +1 -0
- package/dist/src/types/CollapsibleLayout.d.ts +142 -0
- package/dist/src/types/CollapsibleLayout.d.ts.map +1 -0
- package/dist/src/types/ContentProxy.d.ts +47 -0
- package/dist/src/types/ContentProxy.d.ts.map +1 -0
- package/dist/src/types/DataTypes.d.ts +185 -0
- package/dist/src/types/DataTypes.d.ts.map +1 -0
- package/dist/src/types/TemplateProvider.d.ts +10 -0
- package/dist/src/types/TemplateProvider.d.ts.map +1 -0
- package/dist/src/types/TemplateResolver.d.ts +23 -0
- package/dist/src/types/TemplateResolver.d.ts.map +1 -0
- package/dist/src/types/index.d.ts +82 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/utils/breakpoints.d.ts +35 -0
- package/dist/src/utils/breakpoints.d.ts.map +1 -0
- package/dist/src/utils/cssUtils.d.ts +17 -0
- package/dist/src/utils/cssUtils.d.ts.map +1 -0
- package/dist/src/utils/customPaletteManager.d.ts +8 -0
- package/dist/src/utils/customPaletteManager.d.ts.map +1 -0
- package/dist/src/utils/dimensions.d.ts +34 -0
- package/dist/src/utils/dimensions.d.ts.map +1 -0
- package/dist/src/utils/htmlTransform.d.ts +44 -0
- package/dist/src/utils/htmlTransform.d.ts.map +1 -0
- package/dist/src/utils/index.d.ts +16 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/logger.d.ts +26 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/paletteUtils.d.ts +38 -0
- package/dist/src/utils/paletteUtils.d.ts.map +1 -0
- package/dist/src/utils/persistenceUtils.d.ts +31 -0
- package/dist/src/utils/persistenceUtils.d.ts.map +1 -0
- package/dist/src/utils/reactUtils.d.ts +33 -0
- package/dist/src/utils/reactUtils.d.ts.map +1 -0
- package/dist/src/utils/spacing.d.ts +34 -0
- package/dist/src/utils/spacing.d.ts.map +1 -0
- package/dist/src/utils/themePerformanceMonitor.d.ts +32 -0
- package/dist/src/utils/themePerformanceMonitor.d.ts.map +1 -0
- package/dist/src/utils/themeUtils.d.ts +27 -0
- package/dist/src/utils/themeUtils.d.ts.map +1 -0
- package/dist/utils/cssUtils.d.ts +17 -0
- package/dist/utils/cssUtils.d.ts.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +8 -2
- package/scripts/bundle-css.cjs +27 -0
- package/scripts/create-project.sh +28 -0
- package/scripts/create-qwickapps-project.js +284 -0
- package/src/__tests__/components/base/Container.test.tsx +966 -0
- package/src/__tests__/schemas/PageTemplateSchema.test.ts +1 -1
- package/src/__tests__/schemas/ViewSchema.test.ts +805 -0
- package/src/__tests__/schemas/builders.test.ts +2 -2
- package/src/__tests__/schemas/transformers/ComponentTransformer.test.ts +19 -19
- package/src/__tests__/schemas/transformers/CrossBrowserCompatibility.test.ts +13 -13
- package/src/__tests__/schemas/transformers/SerializationErrorHandling.test.ts +39 -39
- package/src/__tests__/schemas/transformers/SerializationPerformance.test.ts +14 -14
- package/src/__tests__/schemas/transformers/TestAutomation.test.ts +8 -8
- package/src/__tests__/schemas/transformers/nested-serialization.test.tsx +181 -0
- package/src/__tests__/schemas/transformers/round-trip-component-serialization.test.tsx +458 -0
- package/src/__tests__/test_image_accessibility.test.tsx +226 -0
- package/src/__tests__/utils/optional-logging.test.ts +3 -3
- package/src/components/Html.tsx +24 -15
- package/src/components/Logo.tsx +2 -2
- package/src/components/Markdown.tsx +2 -7
- package/src/components/SafeSpan.tsx +2 -7
- package/src/components/base/Container.tsx +61 -0
- package/src/components/base/ModelView.tsx +225 -91
- package/src/components/base/index.ts +3 -2
- package/src/components/blocks/Article.tsx +2 -7
- package/src/components/blocks/CardListGrid.tsx +2 -2
- package/src/components/blocks/Code.tsx +91 -179
- package/src/components/blocks/Content.tsx +2 -2
- package/src/components/blocks/CoverImageHeader.tsx +2 -2
- package/src/components/blocks/HeroBlock.tsx +54 -146
- package/src/components/blocks/Image.tsx +82 -196
- package/src/components/blocks/PageBannerHeader.tsx +2 -2
- package/src/components/blocks/Section.tsx +79 -181
- package/src/components/blocks/Text.tsx +100 -198
- package/src/components/buttons/Button.tsx +85 -183
- package/src/components/buttons/PaletteSwitcher.tsx +2 -2
- package/src/components/buttons/ThemeSwitcher.tsx +2 -2
- package/src/components/forms/FormBlock.tsx +2 -2
- package/src/components/index.ts +5 -0
- package/src/components/input/ChoiceInputField.tsx +76 -160
- package/src/components/input/HtmlInputField.tsx +141 -264
- package/src/components/input/SelectInputField.tsx +48 -153
- package/src/components/input/SwitchInputField.tsx +41 -139
- package/src/components/input/TextInputField.tsx +39 -116
- package/src/components/layout/GridCell.tsx +36 -122
- package/src/components/layout/GridLayout.tsx +55 -127
- package/src/components/pages/Page.tsx +268 -276
- package/src/components/pages/index.ts +2 -3
- package/src/components/shared/createSerializableView.tsx +280 -0
- package/src/components/shared/viewProps.ts +207 -0
- package/src/config/__tests__/AppConfigBuilder.test.ts +2 -2
- package/src/contexts/DataContext.tsx +1 -1
- package/src/schemas/ButtonSchema.ts +3 -2
- package/src/schemas/CardListGridSchema.ts +3 -2
- package/src/schemas/ChoiceInputFieldSchema.ts +3 -2
- package/src/schemas/CodeSchema.ts +8 -6
- package/src/schemas/ContainerSchema.ts +25 -0
- package/src/schemas/FeatureCardSchema.ts +1 -1
- package/src/schemas/FormBlockSchema.ts +3 -2
- package/src/schemas/GridCellSchema.ts +4 -10
- package/src/schemas/GridLayoutSchema.ts +8 -14
- package/src/schemas/HeroBlockSchema.ts +3 -2
- package/src/schemas/HtmlInputFieldSchema.ts +3 -2
- package/src/schemas/ImageSchema.ts +3 -2
- package/src/schemas/PageTemplateSchema.ts +5 -5
- package/src/schemas/SectionSchema.ts +4 -12
- package/src/schemas/SelectInputFieldSchema.ts +3 -2
- package/src/schemas/SwitchInputFieldSchema.ts +2 -2
- package/src/schemas/TextInputFieldSchema.ts +3 -2
- package/src/schemas/ViewSchema.ts +570 -0
- package/src/schemas/index.ts +1 -1
- package/src/schemas/transformers/ComponentTransformer.ts +185 -163
- package/src/schemas/transformers/ReactNodeTransformer.ts +31 -28
- package/src/schemas/transformers/registry.ts +17 -10
- package/src/stories/Button.stories.tsx +24 -0
- package/src/stories/ChoiceInputField.stories.tsx +28 -1
- package/src/stories/Code.stories.tsx +61 -1
- package/src/stories/Container.stories.tsx +954 -0
- package/src/stories/FormBlock.stories.tsx +54 -0
- package/src/stories/FormComponents.stories.tsx +8 -13
- package/src/stories/GridCell.stories.tsx +23 -64
- package/src/stories/GridLayout.stories.tsx +22 -47
- package/src/stories/HeroBlock.stories.tsx +28 -0
- package/src/stories/HtmlInputField.stories.tsx +23 -1
- package/src/stories/Image.stories.tsx +45 -233
- package/src/stories/Markdown.stories.tsx +1 -1
- package/src/stories/Section.stories.tsx +38 -4
- package/src/stories/SelectInputField.stories.tsx +26 -1
- package/src/stories/Text.stories.tsx +22 -54
- package/src/stories/TextInputField.stories.tsx +24 -1
- package/src/stories/_templates/SerializationTemplate.tsx +165 -0
- package/src/templates/TemplateResolver.ts +2 -2
- package/src/types/CollapsibleLayout.ts +2 -2
- package/src/utils/cssUtils.ts +49 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/logger.ts +13 -13
- package/src/__tests__/components/base/ModelView.test.tsx +0 -220
- package/src/__tests__/schemas/ViewModelSchema.test.ts +0 -80
- package/src/components/blocks/Code.md +0 -529
- package/src/schemas/README.md +0 -661
- package/src/schemas/ViewModelSchema.ts +0 -115
- package/src/tests/ConsoleWarningTest.tsx +0 -30
- package/src/tests/StorageKeyTest.tsx +0 -110
- package/src/tests/ThemeStorageKeyTest.tsx +0 -114
package/README.md
CHANGED
|
@@ -4,9 +4,32 @@ A complete React framework for building modern, responsive applications with int
|
|
|
4
4
|
|
|
5
5
|
## What's New
|
|
6
6
|
|
|
7
|
+
### September 29, 2025 - Production Ready Release (v1.4.3)
|
|
8
|
+
|
|
9
|
+
- **NPM Publishing Ready**: Package prepared for official NPM distribution with optimized build configuration and comprehensive exports
|
|
10
|
+
- **Enhanced Build System**: Improved rollup configuration with both development and production builds, automatic CSS bundling, and TypeScript declarations
|
|
11
|
+
- **Complete API Exports**: All framework components, utilities, and configuration modules properly exported for external consumption
|
|
12
|
+
- **Project Creation Scripts**: Included automated project scaffolding tools for rapid QwickApps React Framework adoption
|
|
13
|
+
- **Storybook Integration**: Full component documentation and interactive examples ready for developers
|
|
14
|
+
- **Production Optimizations**: Stripped logging in production builds, optimized bundle sizes, and enhanced performance characteristics
|
|
15
|
+
- **Publishing Pipeline**: Configured with proper package metadata, repository links, and NPM publishing workflows
|
|
16
|
+
|
|
17
|
+
### September 13, 2025 - Schema-Driven Factory Pattern Architecture Completed ✅
|
|
18
|
+
|
|
19
|
+
- **Phase 2 Migration Complete**: Successfully migrated 10+ core components to schema-driven factory pattern with 100% feature parity maintained
|
|
20
|
+
- **Factory Pattern Architecture**: Complete implementation of `createSerializableView` factory generating functional components with static serialization methods
|
|
21
|
+
- **Container vs View Components**: Clear architectural distinction established - Container components (Section, HeroBlock, GridLayout) use `react-children` strategy, View components use appropriate serialization patterns
|
|
22
|
+
- **Security Enhancement**: Content-prop strategy from Phase 1 successfully maintained, preventing JSON deserialization vulnerabilities
|
|
23
|
+
- **Schema Integration**: Components extend ViewSchema or ContainerSchema for standardized prop definitions with existing BaseComponentProps compatibility
|
|
24
|
+
- **QA Results**: All unit tests updated and passing, all Storybook stories rendering correctly, serialization round-trip tests working, build passes successfully
|
|
25
|
+
- **Component Roster**: Section, HeroBlock, GridLayout, GridCell, Image, Button, TextInputField, SelectInputField, HtmlInputField, ChoiceInputField, SwitchInputField migrated
|
|
26
|
+
- **Performance**: All components maintain sub-millisecond serialization performance, factory pattern establishes foundation for future development
|
|
27
|
+
- **Architecture Ready**: Phase 3 cleanup now ready to remove ModelView legacy code and complete transition to modern schema-driven architecture
|
|
28
|
+
|
|
7
29
|
### September 9, 2025 - Advanced Print System with Professional Layout Control (v1.4.1)
|
|
30
|
+
|
|
8
31
|
- **Complete Print View System**: Professional print functionality for React Framework with intelligent detection, dynamic configuration, and sophisticated print layouts
|
|
9
|
-
- **Multi-Channel Print Detection**:
|
|
32
|
+
- **Multi-Channel Print Detection**: Browser event integration (Ctrl+P/Cmd+P), and manual print mode controls with comprehensive state management
|
|
10
33
|
- **Advanced Print Configuration**: Complete PrintConfigSchema with theme control (light/dark), palette selection, monochrome optimization, and interactive element hiding
|
|
11
34
|
- **Dynamic Header/Footer System**: ReactNode | string support for print headers and footers with separate first-page variants, automatic height measurement, and CSS variable-driven positioning
|
|
12
35
|
- **Edge-to-Edge Printing**: Configurable page margins (0mm, 6mm, 12mm, 20mm, 25mm) with automatic CSS class application and complete borderless printing capabilities
|
|
@@ -19,10 +42,10 @@ A complete React framework for building modern, responsive applications with int
|
|
|
19
42
|
- **Complete Component Serialization**: Full "WebView for React" functionality enabling components to be serialized to JSON and reconstructed while preserving functionality
|
|
20
43
|
- **Data Binding Preservation**: Serialization system seamlessly preserves data binding configuration across serialize/deserialize cycles
|
|
21
44
|
- **Code Component Reference Implementation**: Code component serves as the canonical example with <1ms serialization performance and comprehensive ReactNode handling
|
|
22
|
-
- **Image Component
|
|
23
|
-
- **Text Component
|
|
45
|
+
- **Image Component Schema Integration**: Image component successfully converted to Schema architecture with 300-500x performance targets exceeded and 100% backward compatibility
|
|
46
|
+
- **Text Component Schema Integration**: Text component successfully converted to Schema architecture with 125-500x performance targets exceeded, comprehensive typography serialization, and 96.3% test coverage
|
|
24
47
|
- **HeroBlock Component Complex Serialization**: **First component with nested component serialization** - HeroBlock successfully converted with Button actions array support and 500x performance targets exceeded (0.0009ms basic, 0.0058ms complex serialization)
|
|
25
|
-
- **GridLayout & GridCell Components**: **First responsive grid system with complete serialization** - GridLayout and GridCell components successfully converted to
|
|
48
|
+
- **GridLayout & GridCell Components**: **First responsive grid system with complete serialization** - GridLayout and GridCell components successfully converted to Schema with 3-169x performance targets exceeded and complete responsive breakpoint preservation
|
|
26
49
|
- **Responsive Grid Breakthrough**: GridLayout and GridCell establish patterns for responsive layout serialization with all breakpoint configurations (xs,sm,md,lg,xl) preserved through serialization cycles
|
|
27
50
|
- **Complex Layout Support**: GridLayout handles 1-6 column responsive layouts with nested GridCell components, maintaining complete functionality after reconstruction
|
|
28
51
|
- **Nested Component Breakthrough**: HeroBlock establishes architectural patterns for complex components with nested React elements, demonstrating serialization system capability for sophisticated component hierarchies
|
|
@@ -38,8 +61,8 @@ A complete React framework for building modern, responsive applications with int
|
|
|
38
61
|
- **Preventive Lint Rule**: Repo now enforces a custom `no-inline-component-wrapper` ESLint rule (scoped rollout) to block reintroduction of the remount pattern.
|
|
39
62
|
- **Internal Refactor Only**: No public API changes; safe patch update.
|
|
40
63
|
|
|
41
|
-
|
|
42
64
|
### September 2, 2025 - Built-in Error Handling & Accessibility
|
|
65
|
+
|
|
43
66
|
- **Automatic Error Boundaries**: QwickApp now automatically wraps all content with ErrorBoundary for robust error handling
|
|
44
67
|
- **Built-in Accessibility**: AccessibilityProvider automatically included for WCAG 2.1 AA compliance
|
|
45
68
|
- **Generic Components**: Moved ErrorBoundary, AccessibilityProvider, and Breadcrumbs to framework level
|
|
@@ -47,12 +70,14 @@ A complete React framework for building modern, responsive applications with int
|
|
|
47
70
|
- **Zero Configuration**: Error handling and accessibility features work out-of-the-box with QwickApp
|
|
48
71
|
|
|
49
72
|
### September 1, 2025 - Optional Dependencies & Performance
|
|
73
|
+
|
|
50
74
|
- **Optional Logging**: Made `@qwickapps/logging` an optional dependency with console fallback
|
|
51
75
|
- **Reduced Bundle Size**: Core framework no longer includes logging overhead by default
|
|
52
76
|
- **React Error Fixes**: Fixed React error #62 in Markdown mixed content scenarios
|
|
53
77
|
- **DOM Nesting**: Added automatic cleanup of invalid DOM nesting from marked.js output
|
|
54
78
|
|
|
55
79
|
### August 31, 2025 - CMS Content Components
|
|
80
|
+
|
|
56
81
|
- **Html Component**: Transform HTML strings into React components with configurable transformation rules
|
|
57
82
|
- **Markdown Component**: Convert Markdown to React components using marked library with Html component integration
|
|
58
83
|
- **Transform System**: Extensible HTML transformation architecture with optimized rule sets for Article and Markdown content
|
|
@@ -61,12 +86,14 @@ A complete React framework for building modern, responsive applications with int
|
|
|
61
86
|
## Features
|
|
62
87
|
|
|
63
88
|
### 🧭 **Responsive Navigation**
|
|
89
|
+
|
|
64
90
|
- **Mobile**: Bottom navigation bar for touch-friendly access
|
|
65
91
|
- **Tablet**: Expandable nav rail with collapsible sidebar
|
|
66
92
|
- **Desktop**: Top navigation with overflow drawer
|
|
67
93
|
- **Automatic**: Adapts based on screen size without configuration
|
|
68
94
|
|
|
69
95
|
### 📐 **Flexible Layout System**
|
|
96
|
+
|
|
70
97
|
- **Hero Blocks**: Full-width hero sections with background images/gradients
|
|
71
98
|
- **Multi-Column Layouts**: Responsive 2-5 column layouts with equal heights
|
|
72
99
|
- **Content Blocks**: Styled containers with variants (elevated, outlined, filled)
|
|
@@ -75,12 +102,14 @@ A complete React framework for building modern, responsive applications with int
|
|
|
75
102
|
- **CollapsibleLayout**: Advanced expandable/collapsible containers with state management
|
|
76
103
|
|
|
77
104
|
### 🎨 **Advanced Theming**
|
|
105
|
+
|
|
78
106
|
- **Theme Management**: Light, dark, and system theme support
|
|
79
107
|
- **Color Palettes**: Multiple built-in palettes (Ocean, Autumn, Spring, Winter)
|
|
80
108
|
- **CSS Variables**: Dynamic theme switching without re-renders
|
|
81
109
|
- **Custom Palettes**: Easy to create and integrate custom color schemes
|
|
82
110
|
|
|
83
111
|
### 🧩 **Component Library**
|
|
112
|
+
|
|
84
113
|
- **Logo Component**: Dynamic, customizable logos with badges and animations
|
|
85
114
|
- **Theme Controls**: Built-in theme and palette switchers
|
|
86
115
|
- **Form Components**: Accessible, themed form inputs with complete serialization support
|
|
@@ -92,9 +121,10 @@ A complete React framework for building modern, responsive applications with int
|
|
|
92
121
|
- **Transform System**: Extensible HTML element transformation with fallback handling
|
|
93
122
|
|
|
94
123
|
### 🔄 **Component Serialization System**
|
|
124
|
+
|
|
95
125
|
- **"WebView for React" Functionality**: Serialize React components to JSON and reconstruct with full functionality preserved
|
|
96
126
|
- **Complete Form Serialization**: **First form state management serialization system** - All form components preserve controlled component state, validation rules, and error handling
|
|
97
|
-
- **Production-Ready Components**: 11 components with complete
|
|
127
|
+
- **Production-Ready Components**: 11 components with complete Schema architecture and comprehensive QA validation (Code, Image, Text, HeroBlock, GridLayout, GridCell, TextInputField, SelectInputField, HtmlInputField, ChoiceInputField, SwitchInputField, FormBlock)
|
|
98
128
|
- **Form Components Innovation**: TextInputField, SelectInputField, HtmlInputField, ChoiceInputField, SwitchInputField, and FormBlock with 97.5% test pass rate and 0.4ms average serialization
|
|
99
129
|
- **Complex Form Data Handling**: Options arrays, HTML content, validation configurations, choice fields, and boolean controls fully supported through serialization
|
|
100
130
|
- **Production Form Workflows**: Complete form creation, editing, validation, and submission workflows preserved through serialize/deserialize cycles
|
|
@@ -109,13 +139,15 @@ A complete React framework for building modern, responsive applications with int
|
|
|
109
139
|
- **Cross-Platform**: Consistent serialization across all major browsers and environments
|
|
110
140
|
|
|
111
141
|
### 🛡️ **Built-in Error Handling & Accessibility**
|
|
142
|
+
|
|
112
143
|
- **ErrorBoundary**: Automatic error catching with user-friendly fallback UI and retry functionality
|
|
113
144
|
- **AccessibilityProvider**: WCAG 2.1 AA compliance with system preference detection and ARIA announcements
|
|
114
145
|
- **Breadcrumbs**: Accessible navigation hierarchy with keyboard support and customization
|
|
115
146
|
- **Automatic Integration**: All features automatically enabled in QwickApp without configuration
|
|
116
147
|
|
|
117
148
|
### 📄 **Serializable Page System with Advanced Print Support**
|
|
118
|
-
|
|
149
|
+
|
|
150
|
+
- **Schema-Driven Architecture**: Complete page templates with ViewSchema, PrintConfigSchema, and PageTemplateSchema for full serialization
|
|
119
151
|
- **Intelligent Print Detection**: Automatic print mode activation via browser events (Ctrl+P/Cmd+P) with comprehensive state management
|
|
120
152
|
- **Advanced Print Configuration**: Complete print theming system with headers, footers, backgrounds, page margins (0mm-25mm), and CSS variable-driven positioning
|
|
121
153
|
- **Dynamic Print Layout**: Edge-to-edge printing capabilities with configurable page margins, automatic height measurement, and proper page break handling
|
|
@@ -125,6 +157,7 @@ A complete React framework for building modern, responsive applications with int
|
|
|
125
157
|
- **Page Context System**: Automatic QwickApp scaffolding integration with print-aware navigation and routing
|
|
126
158
|
|
|
127
159
|
### 🚀 **Developer Experience**
|
|
160
|
+
|
|
128
161
|
- **TypeScript First**: Full TypeScript support with comprehensive types
|
|
129
162
|
- **Storybook**: Interactive component documentation
|
|
130
163
|
- **Performance**: Optimized rendering and minimal bundle size
|
|
@@ -132,8 +165,31 @@ A complete React framework for building modern, responsive applications with int
|
|
|
132
165
|
|
|
133
166
|
## Installation
|
|
134
167
|
|
|
168
|
+
### 🚀 Quick Start (Recommended)
|
|
169
|
+
|
|
170
|
+
**Create a new QwickApps project in one command:**
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
npx @qwickapps/react-framework/scripts/create-qwickapps-project my-qwickapps-project
|
|
174
|
+
cd my-qwickapps-project
|
|
175
|
+
npm start
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
This will:
|
|
179
|
+
|
|
180
|
+
1. Create a new React app with TypeScript
|
|
181
|
+
2. Install QwickApps React Framework and all dependencies
|
|
182
|
+
3. Set up a complete QwickApps application template
|
|
183
|
+
4. Start the development server
|
|
184
|
+
|
|
185
|
+
Your app will be running at `http://localhost:3000` with QwickApps pre-configured!
|
|
186
|
+
|
|
187
|
+
### 📦 Manual Installation
|
|
188
|
+
|
|
189
|
+
If you have an existing React project, install the framework manually:
|
|
190
|
+
|
|
135
191
|
```bash
|
|
136
|
-
npm install @qwickapps/react-framework
|
|
192
|
+
npm install @qwickapps/react-framework @emotion/react @emotion/styled @mui/material @mui/icons-material react-router-dom
|
|
137
193
|
```
|
|
138
194
|
|
|
139
195
|
### Optional Dependencies
|
|
@@ -148,7 +204,13 @@ This will enable structured logging with configurable levels and outputs. If not
|
|
|
148
204
|
|
|
149
205
|
## Quick Start
|
|
150
206
|
|
|
151
|
-
###
|
|
207
|
+
### ⚡ Already Used the Quick Start Script?
|
|
208
|
+
|
|
209
|
+
If you used the quick start script above, your app is already set up and running! Skip to the [Advanced Usage](#advanced-usage) section.
|
|
210
|
+
|
|
211
|
+
### 🔧 Manual Setup (for existing React projects)
|
|
212
|
+
|
|
213
|
+
If you're adding QwickApps to an existing React project or installed manually:
|
|
152
214
|
|
|
153
215
|
```tsx
|
|
154
216
|
import {
|
|
@@ -265,6 +327,7 @@ function App() {
|
|
|
265
327
|
```
|
|
266
328
|
|
|
267
329
|
**Responsive Behavior:**
|
|
330
|
+
|
|
268
331
|
- **Mobile (< 768px)**: Bottom navigation bar
|
|
269
332
|
- **Tablet (768-1024px)**: Collapsible sidebar nav rail
|
|
270
333
|
- **Desktop (> 1024px)**: Top navigation with drawer for overflow
|
|
@@ -396,6 +459,7 @@ import { CollapsibleLayout } from '@qwickapps/react-framework';
|
|
|
396
459
|
```
|
|
397
460
|
|
|
398
461
|
**Key Features:**
|
|
462
|
+
|
|
399
463
|
- **Controlled & Uncontrolled State**: Use `collapsed` prop for controlled state or `defaultCollapsed` for uncontrolled
|
|
400
464
|
- **State Persistence**: `persistState` option saves collapsed state to localStorage
|
|
401
465
|
- **Multiple Animations**: Choose from fade, slide, or scale animations with customizable duration
|
|
@@ -477,6 +541,7 @@ const customRules = [
|
|
|
477
541
|
```
|
|
478
542
|
|
|
479
543
|
**Default Transformations:**
|
|
544
|
+
|
|
480
545
|
- `<pre><code>` → Code component with syntax highlighting
|
|
481
546
|
- `<section class="blog-section">` → Section component
|
|
482
547
|
- `<button>` → Button component
|
|
@@ -527,9 +592,10 @@ And some inline \`code\` here.
|
|
|
527
592
|
```
|
|
528
593
|
|
|
529
594
|
**Key Features:**
|
|
595
|
+
|
|
530
596
|
- GitHub Flavored Markdown support via marked library
|
|
531
597
|
- Automatic syntax highlighting for code blocks
|
|
532
|
-
- Inline code preservation
|
|
598
|
+
- Inline code preservation
|
|
533
599
|
- Custom transformation rules for HTML elements
|
|
534
600
|
- Error handling with development debugging
|
|
535
601
|
- TypeScript support with comprehensive props interface
|
|
@@ -577,6 +643,7 @@ const config: TransformConfig = {
|
|
|
577
643
|
```
|
|
578
644
|
|
|
579
645
|
**Built-in Rule Sets:**
|
|
646
|
+
|
|
580
647
|
- `defaultArticleRules` - Optimized for blog/article content with header stripping
|
|
581
648
|
- `defaultMarkdownRules` - Optimized for Markdown content with inline code preservation
|
|
582
649
|
|
|
@@ -632,18 +699,21 @@ The QwickApps React Framework includes a sophisticated Page System that enables
|
|
|
632
699
|
### Core Page System Features
|
|
633
700
|
|
|
634
701
|
#### 🎯 **Schema-Driven Architecture**
|
|
635
|
-
|
|
702
|
+
|
|
703
|
+
- **ViewSchema**: Base schema with common UI attributes (styling, accessibility, layout)
|
|
636
704
|
- **PrintConfigSchema**: Complete print mode configuration with theming and optimization
|
|
637
|
-
- **PageTemplateSchema**: Full page models extending
|
|
705
|
+
- **PageTemplateSchema**: Full page models extending ViewSchema with metadata, SEO, and print settings
|
|
638
706
|
- **JSON Serialization**: Complete page configurations stored and transmitted as JSON
|
|
639
707
|
|
|
640
708
|
#### 🖨️ **Intelligent Print Detection**
|
|
709
|
+
|
|
641
710
|
- **Automatic URL Detection**: `?print=true` parameter triggers print mode instantly
|
|
642
711
|
- **Browser Event Integration**: Captures Ctrl+P and print menu events automatically
|
|
643
712
|
- **Manual Control**: Programmatic print mode activation with custom configurations
|
|
644
713
|
- **Scaffolding Awareness**: Automatically hides navigation and headers in print mode
|
|
645
714
|
|
|
646
715
|
#### 📊 **CMS Integration Ready**
|
|
716
|
+
|
|
647
717
|
- **Database Storage**: Store complete page templates as JSON in any database
|
|
648
718
|
- **Headless CMS**: Direct integration with Strapi, Contentful, Sanity, and custom APIs
|
|
649
719
|
- **Dynamic Loading**: Fetch page templates at runtime with fallback handling
|
|
@@ -652,6 +722,7 @@ The QwickApps React Framework includes a sophisticated Page System that enables
|
|
|
652
722
|
### Page Component Usage
|
|
653
723
|
|
|
654
724
|
#### Basic Page Implementation
|
|
725
|
+
|
|
655
726
|
```tsx
|
|
656
727
|
import { Page, usePrintMode, PageTemplateSchema } from '@qwickapps/react-framework';
|
|
657
728
|
|
|
@@ -713,12 +784,13 @@ function AboutPage() {
|
|
|
713
784
|
|
|
714
785
|
### Schema Architecture
|
|
715
786
|
|
|
716
|
-
####
|
|
787
|
+
#### ViewSchema - Base UI Schema
|
|
788
|
+
|
|
717
789
|
```tsx
|
|
718
|
-
import {
|
|
790
|
+
import { ViewSchema } from '@qwickapps/react-framework';
|
|
719
791
|
|
|
720
792
|
// Base schema for all UI components - provides consistent styling and accessibility
|
|
721
|
-
interface
|
|
793
|
+
interface ViewSchema {
|
|
722
794
|
// Styling Properties
|
|
723
795
|
className?: string; // CSS class name for custom styling
|
|
724
796
|
style?: string; // Inline styles as JSON string
|
|
@@ -735,19 +807,20 @@ interface ViewModelSchema {
|
|
|
735
807
|
'data-testid'?: string; // Test automation identifier
|
|
736
808
|
}
|
|
737
809
|
|
|
738
|
-
// Example: Custom component extending
|
|
739
|
-
class CustomCard extends
|
|
810
|
+
// Example: Custom component extending ViewSchema
|
|
811
|
+
class CustomCard extends ViewSchema {
|
|
740
812
|
@Field()
|
|
741
813
|
title?: string;
|
|
742
814
|
|
|
743
815
|
@Field()
|
|
744
816
|
content?: string;
|
|
745
817
|
|
|
746
|
-
// Inherits all styling and accessibility properties from
|
|
818
|
+
// Inherits all styling and accessibility properties from ViewSchema
|
|
747
819
|
}
|
|
748
820
|
```
|
|
749
821
|
|
|
750
822
|
#### PrintConfigSchema - Print Configuration
|
|
823
|
+
|
|
751
824
|
```tsx
|
|
752
825
|
import { PrintConfigSchema } from '@qwickapps/react-framework';
|
|
753
826
|
|
|
@@ -792,10 +865,11 @@ const invoicePrintConfig: PrintConfigSchema = {
|
|
|
792
865
|
```
|
|
793
866
|
|
|
794
867
|
#### PageTemplateSchema - Complete Page Model
|
|
868
|
+
|
|
795
869
|
```tsx
|
|
796
870
|
import { PageTemplateSchema, PrintConfigSchema } from '@qwickapps/react-framework';
|
|
797
871
|
|
|
798
|
-
interface PageTemplateSchema extends
|
|
872
|
+
interface PageTemplateSchema extends ViewSchema {
|
|
799
873
|
// Page Identity & Navigation
|
|
800
874
|
slug?: string; // URL-friendly identifier (e.g., "about-us")
|
|
801
875
|
name?: string; // Human-readable page name
|
|
@@ -908,6 +982,7 @@ const adminDashboardTemplate: PageTemplateSchema = {
|
|
|
908
982
|
### Print Mode Integration
|
|
909
983
|
|
|
910
984
|
#### usePrintMode Hook - Comprehensive Print Control
|
|
985
|
+
|
|
911
986
|
```tsx
|
|
912
987
|
import { usePrintMode } from '@qwickapps/react-framework';
|
|
913
988
|
|
|
@@ -984,6 +1059,7 @@ function DocumentPage() {
|
|
|
984
1059
|
```
|
|
985
1060
|
|
|
986
1061
|
#### Print URL Integration
|
|
1062
|
+
|
|
987
1063
|
```tsx
|
|
988
1064
|
// Automatic print mode via URL
|
|
989
1065
|
// Navigate to: https://yourapp.com/document?print=true
|
|
@@ -1015,6 +1091,7 @@ function App() {
|
|
|
1015
1091
|
### CMS and Database Integration
|
|
1016
1092
|
|
|
1017
1093
|
#### Dynamic Page Loading from CMS
|
|
1094
|
+
|
|
1018
1095
|
```tsx
|
|
1019
1096
|
import { Page, PageTemplateSchema } from '@qwickapps/react-framework';
|
|
1020
1097
|
|
|
@@ -1110,6 +1187,7 @@ async function fetchPageFromCMS(slug: string): Promise<PageTemplateSchema> {
|
|
|
1110
1187
|
```
|
|
1111
1188
|
|
|
1112
1189
|
#### Database Storage Example
|
|
1190
|
+
|
|
1113
1191
|
```tsx
|
|
1114
1192
|
// Example: Storing page templates in database
|
|
1115
1193
|
const pageTemplates = [
|
|
@@ -1150,6 +1228,7 @@ function DatabasePage({ pageId }: { pageId: number }) {
|
|
|
1150
1228
|
### Page Context and Lifecycle
|
|
1151
1229
|
|
|
1152
1230
|
#### Advanced Page Context Usage
|
|
1231
|
+
|
|
1153
1232
|
```tsx
|
|
1154
1233
|
import { usePageContext, usePage } from '@qwickapps/react-framework';
|
|
1155
1234
|
|
|
@@ -1192,6 +1271,7 @@ function PageAwareComponent() {
|
|
|
1192
1271
|
### Page Variants and Layout Options
|
|
1193
1272
|
|
|
1194
1273
|
#### Advanced Page Styling
|
|
1274
|
+
|
|
1195
1275
|
```tsx
|
|
1196
1276
|
// Different page layout variants for different use cases
|
|
1197
1277
|
function LayoutExamples() {
|
|
@@ -1264,6 +1344,7 @@ The QwickApps React Framework includes a sophisticated print system that enables
|
|
|
1264
1344
|
The print system automatically detects print mode through multiple channels:
|
|
1265
1345
|
|
|
1266
1346
|
#### URL Parameter Detection
|
|
1347
|
+
|
|
1267
1348
|
```tsx
|
|
1268
1349
|
// Navigate to URL with print parameter to automatically enter print mode
|
|
1269
1350
|
https://yourapp.com/document?print=true
|
|
@@ -1272,6 +1353,7 @@ https://yourapp.com/document?print=true
|
|
|
1272
1353
|
```
|
|
1273
1354
|
|
|
1274
1355
|
#### Browser Print Event Detection
|
|
1356
|
+
|
|
1275
1357
|
```tsx
|
|
1276
1358
|
// Automatic detection of Ctrl+P (Windows/Linux) or Cmd+P (Mac)
|
|
1277
1359
|
// Also detects File > Print menu usage
|
|
@@ -1279,6 +1361,7 @@ https://yourapp.com/document?print=true
|
|
|
1279
1361
|
```
|
|
1280
1362
|
|
|
1281
1363
|
#### Manual Print Mode Control
|
|
1364
|
+
|
|
1282
1365
|
```tsx
|
|
1283
1366
|
import { usePrintMode } from '@qwickapps/react-framework';
|
|
1284
1367
|
|
|
@@ -1327,6 +1410,7 @@ function DocumentPage() {
|
|
|
1327
1410
|
### Print Configuration System
|
|
1328
1411
|
|
|
1329
1412
|
#### Complete Print Configuration Options
|
|
1413
|
+
|
|
1330
1414
|
```tsx
|
|
1331
1415
|
import { PrintConfigSchema } from '@qwickapps/react-framework';
|
|
1332
1416
|
|
|
@@ -1362,6 +1446,7 @@ const advancedPrintConfig: PrintConfigSchema = {
|
|
|
1362
1446
|
```
|
|
1363
1447
|
|
|
1364
1448
|
#### Page Component with Print Configuration
|
|
1449
|
+
|
|
1365
1450
|
```tsx
|
|
1366
1451
|
import { Page, PrintConfigSchema } from '@qwickapps/react-framework';
|
|
1367
1452
|
|
|
@@ -1397,6 +1482,7 @@ function ReportPage() {
|
|
|
1397
1482
|
### Page Margins and Layout Options
|
|
1398
1483
|
|
|
1399
1484
|
#### Edge-to-Edge Printing (0mm margins)
|
|
1485
|
+
|
|
1400
1486
|
```tsx
|
|
1401
1487
|
const borderlessPrintConfig = {
|
|
1402
1488
|
pageMargins: '0mm', // Complete edge-to-edge printing
|
|
@@ -1405,6 +1491,7 @@ const borderlessPrintConfig = {
|
|
|
1405
1491
|
```
|
|
1406
1492
|
|
|
1407
1493
|
#### Standard Margin Options
|
|
1494
|
+
|
|
1408
1495
|
```tsx
|
|
1409
1496
|
const marginOptions = {
|
|
1410
1497
|
compact: { pageMargins: '6mm' }, // Minimal margins
|
|
@@ -1439,6 +1526,7 @@ The print system uses CSS variables for dynamic header/footer positioning:
|
|
|
1439
1526
|
### Advanced Print Headers and Footers
|
|
1440
1527
|
|
|
1441
1528
|
#### ReactNode Headers/Footers
|
|
1529
|
+
|
|
1442
1530
|
```tsx
|
|
1443
1531
|
import { SafeSpan } from '@qwickapps/react-framework';
|
|
1444
1532
|
|
|
@@ -1471,6 +1559,7 @@ const customPrintConfig = {
|
|
|
1471
1559
|
```
|
|
1472
1560
|
|
|
1473
1561
|
#### Template Variables in Headers/Footers
|
|
1562
|
+
|
|
1474
1563
|
```tsx
|
|
1475
1564
|
const templatePrintConfig = {
|
|
1476
1565
|
printFooter: 'Page [page] of [total] • Generated on [date] • company.com',
|
|
@@ -1488,6 +1577,7 @@ const templatePrintConfig = {
|
|
|
1488
1577
|
### Print-Specific Page Variants
|
|
1489
1578
|
|
|
1490
1579
|
#### Different Layout Variants for Print
|
|
1580
|
+
|
|
1491
1581
|
```tsx
|
|
1492
1582
|
function DocumentPage() {
|
|
1493
1583
|
return (
|
|
@@ -1532,6 +1622,7 @@ function DataTablePage() {
|
|
|
1532
1622
|
### Integration with Page Templates
|
|
1533
1623
|
|
|
1534
1624
|
#### Schema-Driven Print Configuration
|
|
1625
|
+
|
|
1535
1626
|
```tsx
|
|
1536
1627
|
import { PageTemplateSchema } from '@qwickapps/react-framework';
|
|
1537
1628
|
|
|
@@ -1574,6 +1665,7 @@ function FinancialReportPage() {
|
|
|
1574
1665
|
### Print Mode Context and State Management
|
|
1575
1666
|
|
|
1576
1667
|
#### Accessing Print State Throughout App
|
|
1668
|
+
|
|
1577
1669
|
```tsx
|
|
1578
1670
|
import { usePageContext } from '@qwickapps/react-framework';
|
|
1579
1671
|
|
|
@@ -1612,6 +1704,7 @@ function PrintAwareComponent() {
|
|
|
1612
1704
|
### Print CSS Classes and Styling
|
|
1613
1705
|
|
|
1614
1706
|
#### Automatic Print Mode Classes
|
|
1707
|
+
|
|
1615
1708
|
```css
|
|
1616
1709
|
/* Page automatically gets print mode classes */
|
|
1617
1710
|
.page-print-mode {
|
|
@@ -1640,6 +1733,7 @@ function PrintAwareComponent() {
|
|
|
1640
1733
|
```
|
|
1641
1734
|
|
|
1642
1735
|
#### Custom Print Styling
|
|
1736
|
+
|
|
1643
1737
|
```css
|
|
1644
1738
|
/* Print-specific component styling */
|
|
1645
1739
|
@media print {
|
|
@@ -1689,6 +1783,7 @@ function PrintAwareComponent() {
|
|
|
1689
1783
|
### Print System Best Practices
|
|
1690
1784
|
|
|
1691
1785
|
#### Performance Optimization
|
|
1786
|
+
|
|
1692
1787
|
```tsx
|
|
1693
1788
|
// Efficient print mode detection
|
|
1694
1789
|
const { isPrintMode } = usePrintMode();
|
|
@@ -1705,6 +1800,7 @@ const printConfig = useMemo(() => ({
|
|
|
1705
1800
|
```
|
|
1706
1801
|
|
|
1707
1802
|
#### Accessibility in Print Mode
|
|
1803
|
+
|
|
1708
1804
|
```tsx
|
|
1709
1805
|
const accessiblePrintConfig = {
|
|
1710
1806
|
// High contrast for accessibility
|
|
@@ -1720,6 +1816,7 @@ const accessiblePrintConfig = {
|
|
|
1720
1816
|
```
|
|
1721
1817
|
|
|
1722
1818
|
#### Multi-Page Document Handling
|
|
1819
|
+
|
|
1723
1820
|
```tsx
|
|
1724
1821
|
function MultiPageDocument() {
|
|
1725
1822
|
return (
|
|
@@ -1751,6 +1848,7 @@ function MultiPageDocument() {
|
|
|
1751
1848
|
### Migration Guide
|
|
1752
1849
|
|
|
1753
1850
|
#### Converting Legacy Pages to New System
|
|
1851
|
+
|
|
1754
1852
|
```tsx
|
|
1755
1853
|
// BEFORE: Legacy page implementation
|
|
1756
1854
|
function LegacyHomePage() {
|
|
@@ -1828,6 +1926,7 @@ function CMSHomePage() {
|
|
|
1828
1926
|
```
|
|
1829
1927
|
|
|
1830
1928
|
#### Print-Aware Migration
|
|
1929
|
+
|
|
1831
1930
|
```tsx
|
|
1832
1931
|
// BEFORE: Manual print handling
|
|
1833
1932
|
function LegacyPrintablePage() {
|
|
@@ -1877,6 +1976,7 @@ function NewPrintablePage() {
|
|
|
1877
1976
|
### Best Practices
|
|
1878
1977
|
|
|
1879
1978
|
#### Page System Best Practices
|
|
1979
|
+
|
|
1880
1980
|
1. **Use Templates for CMS**: Always use `PageTemplateSchema` for CMS-driven content
|
|
1881
1981
|
2. **Print Configuration**: Define print behavior early in development
|
|
1882
1982
|
3. **SEO Optimization**: Always include title, description, and metadata
|
|
@@ -1884,6 +1984,7 @@ function NewPrintablePage() {
|
|
|
1884
1984
|
5. **Performance**: Lazy load heavy content and optimize images for print
|
|
1885
1985
|
|
|
1886
1986
|
#### Schema Design Patterns
|
|
1987
|
+
|
|
1887
1988
|
```tsx
|
|
1888
1989
|
// Good: Comprehensive page template
|
|
1889
1990
|
const wellDesignedTemplate: PageTemplateSchema = {
|
|
@@ -2312,6 +2413,7 @@ The framework exposes CSS custom properties for consistent theming:
|
|
|
2312
2413
|
```
|
|
2313
2414
|
|
|
2314
2415
|
**Available Variables:**
|
|
2416
|
+
|
|
2315
2417
|
- `--theme-primary`, `--theme-on-primary`
|
|
2316
2418
|
- `--theme-secondary`, `--theme-on-secondary`
|
|
2317
2419
|
- `--theme-surface`, `--theme-on-surface`
|
|
@@ -2683,6 +2785,7 @@ myLogger.info('Component initialized');
|
|
|
2683
2785
|
```
|
|
2684
2786
|
|
|
2685
2787
|
**Key Benefits:**
|
|
2788
|
+
|
|
2686
2789
|
- ✅ No boilerplate conditionals
|
|
2687
2790
|
- ✅ Automatic production silencing
|
|
2688
2791
|
- ✅ Namespaced for clarity
|
|
@@ -2733,6 +2836,7 @@ QwickApp automatically includes robust error handling and accessibility features
|
|
|
2733
2836
|
### ErrorBoundary
|
|
2734
2837
|
|
|
2735
2838
|
All QwickApp instances are automatically wrapped with an ErrorBoundary that:
|
|
2839
|
+
|
|
2736
2840
|
- Catches JavaScript errors anywhere in the component tree
|
|
2737
2841
|
- Displays user-friendly fallback UI with retry functionality
|
|
2738
2842
|
- Shows error details in development mode
|
|
@@ -2755,6 +2859,7 @@ const SafeComponent = withErrorBoundary(MyComponent, {
|
|
|
2755
2859
|
### AccessibilityProvider
|
|
2756
2860
|
|
|
2757
2861
|
All QwickApp instances automatically include accessibility features:
|
|
2862
|
+
|
|
2758
2863
|
- **System Preferences**: Detects high contrast, reduced motion preferences
|
|
2759
2864
|
- **Keyboard Navigation**: Enhanced focus indicators for keyboard users
|
|
2760
2865
|
- **Screen Reader Support**: ARIA live announcements
|
|
@@ -2824,12 +2929,14 @@ function DynamicBreadcrumbs() {
|
|
|
2824
2929
|
This software is licensed under the **PolyForm Shield License 1.0.0**.
|
|
2825
2930
|
|
|
2826
2931
|
### 📋 **Quick Summary**
|
|
2932
|
+
|
|
2827
2933
|
- ✅ **Free to use** for non-competitive purposes
|
|
2828
2934
|
- ✅ **Source code available** for learning and development
|
|
2829
2935
|
- ❌ **Cannot be used** to compete with QwickApps
|
|
2830
2936
|
- ❌ **Cannot be reverse engineered** for competitive purposes
|
|
2831
2937
|
|
|
2832
2938
|
### ✅ **Permitted Uses**
|
|
2939
|
+
|
|
2833
2940
|
- Internal business applications
|
|
2834
2941
|
- Learning and educational projects
|
|
2835
2942
|
- Non-competitive commercial applications
|
|
@@ -2837,6 +2944,7 @@ This software is licensed under the **PolyForm Shield License 1.0.0**.
|
|
|
2837
2944
|
- Contributing to this project
|
|
2838
2945
|
|
|
2839
2946
|
### ❌ **Prohibited Uses**
|
|
2947
|
+
|
|
2840
2948
|
- Creating competing React frameworks
|
|
2841
2949
|
- Building competing CMS or application builder tools
|
|
2842
2950
|
- Reselling or redistributing as a competing product
|
|
@@ -2844,10 +2952,102 @@ This software is licensed under the **PolyForm Shield License 1.0.0**.
|
|
|
2844
2952
|
|
|
2845
2953
|
For complete license terms, see [LICENSE](./LICENSE) and [LICENSE-POLYFORM-SHIELD.txt](./LICENSE-POLYFORM-SHIELD.txt).
|
|
2846
2954
|
|
|
2847
|
-
**Need commercial licensing?** Contact us at
|
|
2955
|
+
**Need commercial licensing?** Contact us at **<legal@qwickapps.com>**
|
|
2956
|
+
|
|
2957
|
+
## 📚 Complete Documentation
|
|
2958
|
+
|
|
2959
|
+
The QwickApps React Framework includes comprehensive documentation covering all aspects of development, architecture, and usage.
|
|
2960
|
+
|
|
2961
|
+
### 🎯 **Quick Links**
|
|
2962
|
+
|
|
2963
|
+
- **[📖 Documentation Hub](./docs/README.md)** - Complete documentation index and navigation
|
|
2964
|
+
- **[🏗️ Component Architecture](./docs/architecture/component-system.md)** - Modern component architecture with ViewSchema v2.0.0
|
|
2965
|
+
- **[🔄 Migration Guide](./docs/architecture/migration-guides/useBaseProps-to-viewmodelschema.md)** - Migrate from useBaseProps to ViewSchema pattern
|
|
2966
|
+
- **[⚡ Serialization Guide](./docs/guides/COMPONENT_SERIALIZATION_GUIDE.md)** - Complete component serialization implementation guide
|
|
2967
|
+
|
|
2968
|
+
### 🧩 **Component Documentation**
|
|
2969
|
+
|
|
2970
|
+
#### Core Components
|
|
2971
|
+
|
|
2972
|
+
- **[ViewSchema v2.0.0](./docs/components/base/ViewSchema.md)** - Comprehensive base schema (40+ properties)
|
|
2973
|
+
- **[Container](./docs/components/Container.md)** - Core schema-driven component implementation
|
|
2974
|
+
- **[Page System](./docs/components/pages/Page.md)** - Advanced page component with print support
|
|
2975
|
+
|
|
2976
|
+
#### Layout & Content
|
|
2977
|
+
|
|
2978
|
+
- **[GridLayout](./docs/components/layout/GridLayout.md)** - Responsive grid system with serialization
|
|
2979
|
+
- **[HeroBlock](./docs/components/blocks/HeroBlock.md)** - Hero sections with complex serialization
|
|
2980
|
+
- **[Code Component](./docs/components/blocks/Code.md)** - Reference implementation for serialization
|
|
2981
|
+
|
|
2982
|
+
#### Form System
|
|
2983
|
+
|
|
2984
|
+
- **[FormBlock](./docs/components/forms/FormBlock.md)** - Form container with state management
|
|
2985
|
+
- **[TextInputField](./docs/components/input/TextInputField.md)** - Text input with serialization support
|
|
2986
|
+
- **[SelectInputField](./docs/components/input/SelectInputField.md)** - Select dropdown with options serialization
|
|
2987
|
+
|
|
2988
|
+
### 📋 **Quick Start with Documentation**
|
|
2989
|
+
|
|
2990
|
+
```tsx
|
|
2991
|
+
import {
|
|
2992
|
+
QwickApp,
|
|
2993
|
+
Container,
|
|
2994
|
+
ViewSchema
|
|
2995
|
+
} from '@qwickapps/react-framework';
|
|
2996
|
+
|
|
2997
|
+
// Use ViewSchema v2.0.0 for complete UI control
|
|
2998
|
+
interface MyComponentProps extends SchemaProps<ViewSchema> {
|
|
2999
|
+
title: string;
|
|
3000
|
+
}
|
|
3001
|
+
|
|
3002
|
+
function MyComponent({ title, ...schemaProps }: MyComponentProps) {
|
|
3003
|
+
return (
|
|
3004
|
+
<Container {...schemaProps}>
|
|
3005
|
+
<h1>{title}</h1>
|
|
3006
|
+
</Container>
|
|
3007
|
+
);
|
|
3008
|
+
}
|
|
3009
|
+
```
|
|
3010
|
+
|
|
3011
|
+
For detailed implementation examples, architecture explanations, and migration guides, visit the **[Documentation Hub](./docs/README.md)**.
|
|
2848
3012
|
|
|
2849
3013
|
## About QwickApps
|
|
2850
3014
|
|
|
2851
3015
|
This framework is part of the QwickApps ecosystem, providing high-quality solutions for educational and productivity applications.
|
|
2852
3016
|
|
|
2853
|
-
For more information, visit [QwickApps.com](https://qwickapps.com).
|
|
3017
|
+
For more information, visit [QwickApps.com](https://qwickapps.com).
|
|
3018
|
+
|
|
3019
|
+
## Troubleshooting
|
|
3020
|
+
|
|
3021
|
+
### ❌ "react-scripts is not recognized" Error
|
|
3022
|
+
|
|
3023
|
+
**Problem**: You're getting an error like `'react-scripts' is not recognized as an internal or external command`
|
|
3024
|
+
|
|
3025
|
+
**Solution**: This happens when trying to use QwickApps React Framework without first setting up a React project. QwickApps is a React framework library, not a project generator.
|
|
3026
|
+
|
|
3027
|
+
**Fix Options:**
|
|
3028
|
+
|
|
3029
|
+
1. **Use the Quick Start Script (Recommended)**:
|
|
3030
|
+
|
|
3031
|
+
```bash
|
|
3032
|
+
npx @qwickapps/react-framework/scripts/create-qwickapps-project my-project-name
|
|
3033
|
+
```
|
|
3034
|
+
|
|
3035
|
+
2. **Create React App First**:
|
|
3036
|
+
|
|
3037
|
+
```bash
|
|
3038
|
+
npx create-react-app my-project --template typescript
|
|
3039
|
+
cd my-project
|
|
3040
|
+
npm install @qwickapps/react-framework @emotion/react @emotion/styled @mui/material @mui/icons-material react-router-dom
|
|
3041
|
+
```
|
|
3042
|
+
|
|
3043
|
+
3. **Use with Existing React Project**:
|
|
3044
|
+
- QwickApps works with any existing React 16.8+ project
|
|
3045
|
+
- Just install the dependencies and follow the manual setup guide above
|
|
3046
|
+
|
|
3047
|
+
### Other Common Issues
|
|
3048
|
+
|
|
3049
|
+
- **Node.js Version**: Make sure you're using Node.js 16 or later
|
|
3050
|
+
- **Clear Cache**: If installation fails, try `npm cache clean --force`
|
|
3051
|
+
- **Dependency Conflicts**: Delete `node_modules` and `package-lock.json`, then run `npm install`
|
|
3052
|
+
|
|
3053
|
+
For more help, [open an issue](https://github.com/raajkumars/qwickapps/issues) on GitHub.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Html.d.ts","sourceRoot":"","sources":["../../src/components/Html.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CACxE;AAED,KAAK,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG;IAC3C,yFAAyF;IACzF,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,qGAAqG;IACrG,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,SAAU,SAAQ,aAAa,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"Html.d.ts","sourceRoot":"","sources":["../../src/components/Html.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CACxE;AAED,KAAK,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG;IAC3C,yFAAyF;IACzF,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,qGAAqG;IACrG,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,SAAU,SAAQ,aAAa,EAAE,eAAe;CAAI;AAkIrE,qBAAa,IAAK,SAAQ,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAEvD,MAAM,CAAC,QAAQ,CAAC,OAAO,UAAU;IACjC,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAGlC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,YAAY;IAc5C,SAAS,CAAC,yBAAyB,IAAI,GAAG;IAS1C,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY;IAM1C,SAAS,CAAC,qBAAqB,IAAI,KAAK,CAAC,YAAY;IAKrD,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAanD,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAe/B,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAcjC;AAsCD,eAAe,IAAI,CAAC"}
|