@qwickapps/react-framework 1.4.1 → 1.4.2
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 +5 -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
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QwickApps AppConfig Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the configuration contract for QwickApp applications.
|
|
5
|
+
* Separates static app configuration from runtime settings.
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
8
|
+
*/
|
|
9
|
+
import type { UserConfig as ViteUserConfig } from 'vite';
|
|
10
|
+
/**
|
|
11
|
+
* Static, immutable application configuration
|
|
12
|
+
*/
|
|
13
|
+
export interface AppConfig {
|
|
14
|
+
/** Application identity and metadata */
|
|
15
|
+
readonly app: AppIdentity;
|
|
16
|
+
/** Build and development settings */
|
|
17
|
+
readonly build: BuildConfig;
|
|
18
|
+
/** Progressive Web App configuration */
|
|
19
|
+
readonly pwa: PWAConfig;
|
|
20
|
+
/** Default theme and UI settings */
|
|
21
|
+
readonly ui: UIConfig;
|
|
22
|
+
/** Copyright and legal information */
|
|
23
|
+
readonly copyright: CopyrightConfig;
|
|
24
|
+
/** Computed Vite configuration */
|
|
25
|
+
readonly viteConfig: ViteUserConfig;
|
|
26
|
+
/** Computed PWA manifest */
|
|
27
|
+
readonly pwaManifest: Record<string, any>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Application identity and basic metadata
|
|
31
|
+
*/
|
|
32
|
+
export interface AppIdentity {
|
|
33
|
+
/** Unique application identifier */
|
|
34
|
+
readonly id: string;
|
|
35
|
+
/** Full application name */
|
|
36
|
+
readonly name: string;
|
|
37
|
+
/** Short name for PWA and limited spaces */
|
|
38
|
+
readonly shortName: string;
|
|
39
|
+
/** Application description */
|
|
40
|
+
readonly description: string;
|
|
41
|
+
/** Application version */
|
|
42
|
+
readonly version: string;
|
|
43
|
+
/** Path to application logo/icon */
|
|
44
|
+
readonly logo: string;
|
|
45
|
+
/** Application author/organization */
|
|
46
|
+
readonly author?: string;
|
|
47
|
+
/** Application homepage URL */
|
|
48
|
+
readonly homepage?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Build and development configuration
|
|
52
|
+
*/
|
|
53
|
+
export interface BuildConfig {
|
|
54
|
+
/** Development server port */
|
|
55
|
+
readonly port: number;
|
|
56
|
+
/** Preview server port */
|
|
57
|
+
readonly previewPort: number;
|
|
58
|
+
/** Build output directory */
|
|
59
|
+
readonly outputDir: string;
|
|
60
|
+
/** Public path for assets */
|
|
61
|
+
readonly publicPath: string;
|
|
62
|
+
/** Base URL for the application */
|
|
63
|
+
readonly base: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Progressive Web App configuration
|
|
67
|
+
*/
|
|
68
|
+
export interface PWAConfig {
|
|
69
|
+
/** PWA theme color */
|
|
70
|
+
readonly themeColor: string;
|
|
71
|
+
/** PWA background color */
|
|
72
|
+
readonly backgroundColor: string;
|
|
73
|
+
/** PWA start URL */
|
|
74
|
+
readonly startUrl: string;
|
|
75
|
+
/** PWA scope */
|
|
76
|
+
readonly scope: string;
|
|
77
|
+
/** PWA display mode */
|
|
78
|
+
readonly display: 'standalone' | 'fullscreen' | 'minimal-ui' | 'browser';
|
|
79
|
+
/** PWA orientation */
|
|
80
|
+
readonly orientation?: 'portrait' | 'landscape' | 'any';
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Default UI and theme configuration
|
|
84
|
+
*/
|
|
85
|
+
export interface UIConfig {
|
|
86
|
+
/** Default theme mode */
|
|
87
|
+
readonly defaultTheme: 'light' | 'dark' | 'system';
|
|
88
|
+
/** Default color palette */
|
|
89
|
+
readonly defaultPalette: string;
|
|
90
|
+
/** Enable scaffolding (navigation, layout) */
|
|
91
|
+
readonly enableScaffolding: boolean;
|
|
92
|
+
/** Show theme switcher */
|
|
93
|
+
readonly showThemeSwitcher: boolean;
|
|
94
|
+
/** Show palette switcher */
|
|
95
|
+
readonly showPaletteSwitcher: boolean;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Copyright and legal information
|
|
99
|
+
*/
|
|
100
|
+
export interface CopyrightConfig {
|
|
101
|
+
/** Copyright year ('auto' for current year or specific year) */
|
|
102
|
+
readonly year: 'auto' | number;
|
|
103
|
+
/** Copyright holder/owner */
|
|
104
|
+
readonly author: string;
|
|
105
|
+
/** Additional legal text */
|
|
106
|
+
readonly text?: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Configuration builder options
|
|
110
|
+
*/
|
|
111
|
+
export interface AppConfigOptions {
|
|
112
|
+
/** Base directory for resolving relative paths */
|
|
113
|
+
baseDir?: string;
|
|
114
|
+
/** Environment (development, production, test) */
|
|
115
|
+
env?: string;
|
|
116
|
+
/** Skip file existence validation */
|
|
117
|
+
skipValidation?: boolean;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Validation result
|
|
121
|
+
*/
|
|
122
|
+
export interface ValidationResult {
|
|
123
|
+
/** Validation warnings */
|
|
124
|
+
warnings: string[];
|
|
125
|
+
/** Validation errors */
|
|
126
|
+
errors: string[];
|
|
127
|
+
/** Whether configuration is valid */
|
|
128
|
+
isValid: boolean;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAE1B,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAE5B,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IAExB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAEtB,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAEpC,kCAAkC;IAClC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC,4BAA4B;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,8BAA8B;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,sCAAsC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,0BAA0B;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,6BAA6B;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,mCAAmC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,sBAAsB;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,2BAA2B;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,CAAC;IAEzE,sBAAsB;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,yBAAyB;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAEnD,4BAA4B;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,8CAA8C;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAEpC,0BAA0B;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAEpC,4BAA4B;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAE/B,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,qCAAqC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,wBAAwB;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QwickApps Configuration Module Entry
|
|
3
|
+
*
|
|
4
|
+
* Lightweight export for config-only usage at build time.
|
|
5
|
+
* This file only exports configuration types and builders
|
|
6
|
+
* without pulling in React or MUI dependencies.
|
|
7
|
+
*
|
|
8
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
9
|
+
*/
|
|
10
|
+
export { AppConfig } from './config/AppConfig';
|
|
11
|
+
export { AppConfigBuilder } from './config/AppConfigBuilder';
|
|
12
|
+
export type { AppConfig as IAppConfig, AppIdentity, BuildConfig, PWAConfig, UIConfig, AppConfigOptions, ValidationResult, } from './config/types';
|
|
13
|
+
import { AppConfigBuilder } from './config/AppConfigBuilder';
|
|
14
|
+
export declare const createAppConfig: typeof AppConfigBuilder.create;
|
|
15
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,YAAY,EACV,SAAS,IAAI,UAAU,EACvB,WAAW,EACX,WAAW,EACX,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,eAAO,MAAM,eAAe,gCAA0B,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DataContext - React Context for Data Provider
|
|
3
|
+
*
|
|
4
|
+
* Provides data templating capabilities throughout the React component tree
|
|
5
|
+
* via React Context API. Supports mustache template resolution and caching.
|
|
6
|
+
* Enables JSX components to use mustache syntax to reference named data elements.
|
|
7
|
+
*
|
|
8
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
9
|
+
*/
|
|
10
|
+
import React, { ReactNode } from 'react';
|
|
11
|
+
import { ITemplateResolver, TemplateResolverConfig } from '../types';
|
|
12
|
+
import { Model } from '@qwickapps/schema';
|
|
13
|
+
/**
|
|
14
|
+
* Data Context interface
|
|
15
|
+
*/
|
|
16
|
+
interface DataContextValue {
|
|
17
|
+
provider: ITemplateResolver | null;
|
|
18
|
+
get<T extends Model>(slug: string): Promise<T | undefined>;
|
|
19
|
+
select<T extends Model>(schema: string, options?: any): Promise<T[]>;
|
|
20
|
+
resolveTemplate(template: string): Promise<string>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Props for DataProvider component
|
|
24
|
+
*/
|
|
25
|
+
export interface DataProviderProps {
|
|
26
|
+
/** The data source configuration (follows new SRP architecture) */
|
|
27
|
+
dataSource: TemplateResolverConfig;
|
|
28
|
+
/** Child components that will have access to data templating */
|
|
29
|
+
children: ReactNode;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* DataProvider component that wraps children with data templating capabilities
|
|
33
|
+
*
|
|
34
|
+
* Enables JSX components to use mustache syntax for data interpolation:
|
|
35
|
+
* - {t`Welcome {{company.name}}!`}
|
|
36
|
+
* - {useData('users')} for data fetching
|
|
37
|
+
* - Template resolution with caching support
|
|
38
|
+
*
|
|
39
|
+
* Usage (new SRP architecture):
|
|
40
|
+
* ```tsx
|
|
41
|
+
* <DataProvider dataSource={{
|
|
42
|
+
* dataProvider: new JsonDataProvider({ data: { ... } }),
|
|
43
|
+
* cache: true,
|
|
44
|
+
* templateResolver: new MustacheTemplateResolver()
|
|
45
|
+
* }}>
|
|
46
|
+
* <MyComponent /> // Can use useData() hooks and t`` templates
|
|
47
|
+
* </DataProvider>
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function DataProvider({ dataSource, children }: DataProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
/**
|
|
52
|
+
* Hook to access the data context
|
|
53
|
+
*
|
|
54
|
+
* @throws Error if used outside of DataProvider
|
|
55
|
+
*/
|
|
56
|
+
export declare function useDataContext(): DataContextValue;
|
|
57
|
+
/**
|
|
58
|
+
* Hook to get data by unique slug (safe version that doesn't throw)
|
|
59
|
+
*
|
|
60
|
+
* @param slug - The unique slug to fetch data for
|
|
61
|
+
* @returns Data with loading state information
|
|
62
|
+
*/
|
|
63
|
+
export declare function useDataSafe<T extends Model>(slug: string): {
|
|
64
|
+
data: T | undefined;
|
|
65
|
+
loading: boolean;
|
|
66
|
+
error: Error | null;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Hook to get data by field group ID
|
|
70
|
+
*
|
|
71
|
+
* @param fieldGroupId - The field group to fetch
|
|
72
|
+
* @returns Data and loading state
|
|
73
|
+
*/
|
|
74
|
+
export declare function useData<T extends Model>(fieldGroupId: string): {
|
|
75
|
+
data: T | undefined;
|
|
76
|
+
loading: boolean;
|
|
77
|
+
error: Error | null;
|
|
78
|
+
refetch: () => void;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Hook to resolve a template string with mustache syntax
|
|
82
|
+
*
|
|
83
|
+
* @param template - Template string with {{fieldGroup.property}} syntax
|
|
84
|
+
* @returns Resolved template string and loading state
|
|
85
|
+
*/
|
|
86
|
+
export declare function useResolveTemplate(template: string): {
|
|
87
|
+
resolved: string;
|
|
88
|
+
loading: boolean;
|
|
89
|
+
error: Error | null;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Hook to access data provider directly for advanced use cases
|
|
93
|
+
*/
|
|
94
|
+
export declare function useDataProvider(): ITemplateResolver;
|
|
95
|
+
/**
|
|
96
|
+
* Template component for inline template resolution
|
|
97
|
+
*
|
|
98
|
+
* This is a React-friendly component for template resolution
|
|
99
|
+
* that works well with conditional rendering and fallbacks.
|
|
100
|
+
*
|
|
101
|
+
* Usage:
|
|
102
|
+
* ```tsx
|
|
103
|
+
* <T template="Welcome to {{company.name}}!" fallback="Loading..." />
|
|
104
|
+
* <T template="Hello {{user.name}}" fallback="Guest" />
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export declare const T: React.FC<{
|
|
108
|
+
template: string;
|
|
109
|
+
fallback?: ReactNode;
|
|
110
|
+
wrapper?: React.ComponentType<{
|
|
111
|
+
children: ReactNode;
|
|
112
|
+
}>;
|
|
113
|
+
}>;
|
|
114
|
+
/**
|
|
115
|
+
* Hook to resolve template with tagged template literal syntax
|
|
116
|
+
*
|
|
117
|
+
* This returns the resolved value directly so it can be used with || operator
|
|
118
|
+
*/
|
|
119
|
+
export declare function useTemplate(template: string): string | null;
|
|
120
|
+
/**
|
|
121
|
+
* Tagged template function for inline data templating
|
|
122
|
+
*
|
|
123
|
+
* Enables JSX components to use mustache syntax for data interpolation:
|
|
124
|
+
*
|
|
125
|
+
* Usage:
|
|
126
|
+
* ```tsx
|
|
127
|
+
* {t`Welcome to {{company.name}}!`}
|
|
128
|
+
* {t`Hello {{user.name}}` || 'Loading...'}
|
|
129
|
+
* {t.wrap(CustomComponent)`{{company.slogan}}`}
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export declare function t(strings: TemplateStringsArray, ...values: any[]): ReactNode;
|
|
133
|
+
export declare namespace t {
|
|
134
|
+
var wrap: (WrapperComponent: React.ComponentType<{
|
|
135
|
+
children: ReactNode;
|
|
136
|
+
}>) => (strings: TemplateStringsArray, ...values: any[]) => ReactNode;
|
|
137
|
+
}
|
|
138
|
+
export {};
|
|
139
|
+
//# sourceMappingURL=DataContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/DataContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C;;GAEG;AACH,UAAU,gBAAgB;IACxB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,GAAG,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC3D,MAAM,CAAC,CAAC,SAAS,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpD;AAOD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,UAAU,EAAE,sBAAsB,CAAC;IACnC,gEAAgE;IAChE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAsBvE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAMjD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG;IAC1D,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAiCA;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG;IAC9D,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAkCA;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;;EAyClD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAMnD;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;CAAE,CA4B1H,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,CAAC,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,CAW5E;yBAXe,CAAC;iCAqBW,KAAK,CAAC,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,MACrE,SAAS,oBAAoB,EAAE,GAAG,QAAQ,GAAG,EAAE,KAAG,SAAS"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dimensions Context - Responsive design tokens for typography, spacing, and sizing
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent design tokens that adapt to screen size and user preferences.
|
|
5
|
+
* Works alongside MUI theme system for comprehensive responsive design.
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
export interface DimensionTokens {
|
|
11
|
+
borderRadius: {
|
|
12
|
+
small: number;
|
|
13
|
+
medium: number;
|
|
14
|
+
large: number;
|
|
15
|
+
};
|
|
16
|
+
typography: {
|
|
17
|
+
scaleMultiplier: number;
|
|
18
|
+
lineHeightMultiplier: number;
|
|
19
|
+
};
|
|
20
|
+
spacing: {
|
|
21
|
+
scaleMultiplier: number;
|
|
22
|
+
};
|
|
23
|
+
component: {
|
|
24
|
+
buttonHeight: number;
|
|
25
|
+
inputHeight: number;
|
|
26
|
+
iconSize: number;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface DimensionsContextValue {
|
|
30
|
+
tokens: DimensionTokens;
|
|
31
|
+
screenSize: 'mobile' | 'tablet' | 'desktop';
|
|
32
|
+
isCompact: boolean;
|
|
33
|
+
setCompactMode: (compact: boolean) => void;
|
|
34
|
+
}
|
|
35
|
+
export interface DimensionsProviderProps {
|
|
36
|
+
children: React.ReactNode;
|
|
37
|
+
defaultCompactMode?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export declare const DimensionsProvider: React.FC<DimensionsProviderProps>;
|
|
40
|
+
export declare const useDimensions: () => DimensionsContextValue;
|
|
41
|
+
export default DimensionsProvider;
|
|
42
|
+
//# sourceMappingURL=DimensionsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DimensionsContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/DimensionsContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,MAAM,WAAW,eAAe;IAE9B,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAGF,UAAU,EAAE;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;IAGF,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IAGF,SAAS,EAAE;QACT,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAwDD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAuChE,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,sBAMhC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Palette Context - Manages color palette state and switching
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
|
+
*/
|
|
6
|
+
import React, { ReactNode } from 'react';
|
|
7
|
+
export interface PaletteConfig {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
primaryColor: string;
|
|
12
|
+
}
|
|
13
|
+
export interface PaletteContextValue {
|
|
14
|
+
/** The palette currently being applied to the UI (resolved from preferred/default) */
|
|
15
|
+
currentPalette: string;
|
|
16
|
+
/** The user's preferred palette setting, or null if not set */
|
|
17
|
+
preferredPalette: string | null;
|
|
18
|
+
/** List of all available palettes */
|
|
19
|
+
availablePalettes: PaletteConfig[];
|
|
20
|
+
/** Whether preferences are persisted to localStorage */
|
|
21
|
+
isPersistent: boolean;
|
|
22
|
+
/** Set user's preferred palette (saves to localStorage if persistent) */
|
|
23
|
+
setPreferredPalette: (paletteId: string) => void;
|
|
24
|
+
/** Clear user's preferred palette (removes from localStorage) */
|
|
25
|
+
clearPreferredPalette: () => void;
|
|
26
|
+
/** Get user's preferred palette */
|
|
27
|
+
getPreferredPalette: () => string | null;
|
|
28
|
+
/** Get currently applied palette */
|
|
29
|
+
getCurrentPalette: () => string;
|
|
30
|
+
/** Temporarily override current palette (does not affect user preference) */
|
|
31
|
+
setCurrentPalette: (paletteId: string) => void;
|
|
32
|
+
}
|
|
33
|
+
export interface PaletteProviderProps {
|
|
34
|
+
children: ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* App identifier for generating unique storage key, or persistence strategy.
|
|
37
|
+
* - string: Use as app identifier to generate key 'appId.palette'
|
|
38
|
+
* - true (default): Use default key 'qwickapps-react-framework-palette'
|
|
39
|
+
* - false: Disable persistence (session-only)
|
|
40
|
+
* @example 'com.mycompany.myapp' | true | false
|
|
41
|
+
*/
|
|
42
|
+
appId?: string | true | false;
|
|
43
|
+
/**
|
|
44
|
+
* Default palette for the application when no user preference exists. The default is 'default'.
|
|
45
|
+
* This can be overridden by user settings.
|
|
46
|
+
* @example 'ocean' | 'autumn' | 'spring' | 'winter' | 'default'
|
|
47
|
+
*/
|
|
48
|
+
defaultPalette?: string;
|
|
49
|
+
}
|
|
50
|
+
export declare const usePalette: () => PaletteContextValue;
|
|
51
|
+
export declare const PaletteProvider: React.FC<PaletteProviderProps>;
|
|
52
|
+
export default PaletteProvider;
|
|
53
|
+
//# sourceMappingURL=PaletteContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaletteContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/PaletteContext.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AASzF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,sFAAsF;IACtF,cAAc,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,qCAAqC;IACrC,iBAAiB,EAAE,aAAa,EAAE,CAAC;IACnC,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IAGtB,yEAAyE;IACzE,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,iEAAiE;IACjE,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,mCAAmC;IACnC,mBAAmB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAGzC,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,6EAA6E;IAC7E,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD,eAAO,MAAM,UAAU,QAAO,mBAM7B,CAAC;AAqBF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAuH1D,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PrintModeContext - App-level print state management
|
|
3
|
+
*
|
|
4
|
+
* Handles print mode state transitions at the application level,
|
|
5
|
+
* allowing pages to simply consume and react to print state changes.
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { PrintConfigSchema } from '../schemas/PrintConfigSchema';
|
|
11
|
+
export type PrintModeStateType = 'normal' | 'applying_print_config' | 'entering_print_mode' | 'view_loading' | 'config_applied' | 'print_mode' | 'exiting_print_mode' | 'restoring_config';
|
|
12
|
+
interface PrintModeContextValue {
|
|
13
|
+
printModeState: PrintModeStateType;
|
|
14
|
+
isPrintMode: boolean;
|
|
15
|
+
printConfig: PrintConfigSchema;
|
|
16
|
+
triggerPrint: (config?: Partial<PrintConfigSchema>) => void;
|
|
17
|
+
exitPrintMode: () => void;
|
|
18
|
+
onViewLoading: () => void;
|
|
19
|
+
onViewReady: () => void;
|
|
20
|
+
}
|
|
21
|
+
export declare const usePrintMode: () => PrintModeContextValue;
|
|
22
|
+
interface PrintModeProviderProps {
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
export declare const PrintModeProvider: React.FC<PrintModeProviderProps>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=PrintModeContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrintModeContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/PrintModeContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAwE,MAAM,OAAO,CAAC;AAI7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,uBAAuB,GACvB,qBAAqB,GACrB,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,oBAAoB,GACpB,kBAAkB,CAAC;AAkGvB,UAAU,qBAAqB;IAE7B,cAAc,EAAE,kBAAkB,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,iBAAiB,CAAC;IAG/B,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC5D,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAID,eAAO,MAAM,YAAY,QAAO,qBAM/B,CAAC;AAEF,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAuL9D,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QwickApp Context - Application-level context for QwickApp configuration
|
|
3
|
+
*
|
|
4
|
+
* Provides app-level state and configuration that can be accessed by components
|
|
5
|
+
* within the QwickApp provider hierarchy.
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import type { MenuItem } from '../components/menu';
|
|
11
|
+
import type { ScaffoldProps } from '../components/Scaffold';
|
|
12
|
+
export interface QwickAppProps {
|
|
13
|
+
/** Application name displayed in header/title (optional when config is provided) */
|
|
14
|
+
appName?: string;
|
|
15
|
+
/** Custom logo component - overrides the default logo */
|
|
16
|
+
logo?: React.ReactNode;
|
|
17
|
+
/** App identifier used for storage keys */
|
|
18
|
+
appId?: string | true | false;
|
|
19
|
+
/** Application version string */
|
|
20
|
+
appVersion?: string;
|
|
21
|
+
/** Theme mode preference (light/dark/auto) */
|
|
22
|
+
defaultTheme?: 'light' | 'dark' | 'system';
|
|
23
|
+
/** Default palette to use */
|
|
24
|
+
defaultPalette?: string;
|
|
25
|
+
/** Enable scaffolding with navigation system (default: false) */
|
|
26
|
+
enableScaffolding?: boolean;
|
|
27
|
+
/** Primary navigation items for scaffolding */
|
|
28
|
+
navigationItems?: MenuItem[];
|
|
29
|
+
/** App bar configuration for scaffolding */
|
|
30
|
+
appBar?: ScaffoldProps['appBar'];
|
|
31
|
+
/** Whether to show app bar when scaffolding is enabled (default: true) */
|
|
32
|
+
showAppBar?: boolean;
|
|
33
|
+
/** Custom app bar height when scaffolding is enabled */
|
|
34
|
+
appBarHeight?: number;
|
|
35
|
+
/** Whether to show theme switcher in app bar (default: false) */
|
|
36
|
+
showThemeSwitcher?: boolean;
|
|
37
|
+
/** Whether to show palette switcher in app bar (default: false) */
|
|
38
|
+
showPaletteSwitcher?: boolean;
|
|
39
|
+
/** Callback when logo is clicked */
|
|
40
|
+
onLogoClick?: () => void;
|
|
41
|
+
}
|
|
42
|
+
export interface QwickAppContextValue {
|
|
43
|
+
/** Application name */
|
|
44
|
+
appName: string;
|
|
45
|
+
/** Custom logo component */
|
|
46
|
+
logo?: React.ReactNode;
|
|
47
|
+
/** App identifier used for storage keys */
|
|
48
|
+
appId?: string | true | false;
|
|
49
|
+
/** Whether scaffolding is enabled */
|
|
50
|
+
enableScaffolding: boolean;
|
|
51
|
+
/** Navigation items for scaffolding */
|
|
52
|
+
navigationItems: MenuItem[];
|
|
53
|
+
/** App bar configuration */
|
|
54
|
+
appBar?: ScaffoldProps['appBar'];
|
|
55
|
+
/** Whether to show app bar */
|
|
56
|
+
showAppBar: boolean;
|
|
57
|
+
/** App bar height */
|
|
58
|
+
appBarHeight: number;
|
|
59
|
+
/** Whether to show theme switcher in app bar */
|
|
60
|
+
showThemeSwitcher: boolean;
|
|
61
|
+
/** Whether to show palette switcher in app bar */
|
|
62
|
+
showPaletteSwitcher: boolean;
|
|
63
|
+
/** Callback when logo is clicked */
|
|
64
|
+
onLogoClick?: () => void;
|
|
65
|
+
/** Update app configuration (excludes appName and appId for security) */
|
|
66
|
+
updateConfig: (updates: Partial<Pick<QwickAppProps, 'logo' | 'enableScaffolding' | 'navigationItems' | 'appBar' | 'showAppBar' | 'appBarHeight' | 'showThemeSwitcher' | 'showPaletteSwitcher'>>) => void;
|
|
67
|
+
}
|
|
68
|
+
declare const QwickAppContext: React.Context<QwickAppContextValue>;
|
|
69
|
+
export { QwickAppContext };
|
|
70
|
+
export declare const useQwickApp: () => QwickAppContextValue;
|
|
71
|
+
//# sourceMappingURL=QwickAppContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QwickAppContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/QwickAppContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9B,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,6BAA6B;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC7B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9B,qCAAqC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uCAAuC;IACvC,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,8BAA8B;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kDAAkD;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,yEAAyE;IACzE,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,QAAQ,GAAG,YAAY,GAAG,cAAc,GAAG,mBAAmB,GAAG,qBAAqB,CAAC,CAAC,KAAK,IAAI,CAAC;CAE1M;AAED,QAAA,MAAM,eAAe,qCAYnB,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,eAAO,MAAM,WAAW,QAAO,oBAM9B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme Context - Manages theme state and switching
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
|
+
*/
|
|
6
|
+
import React, { ReactNode } from 'react';
|
|
7
|
+
import { Theme } from '@mui/material/styles';
|
|
8
|
+
export type ThemeMode = 'light' | 'dark' | 'system';
|
|
9
|
+
export type ActualThemeMode = 'light' | 'dark';
|
|
10
|
+
export interface ThemeContextValue {
|
|
11
|
+
/** The theme currently being applied to the UI (resolved from preferred/system/default) */
|
|
12
|
+
currentTheme: ThemeMode;
|
|
13
|
+
/** The user's preferred theme setting, or null if not set */
|
|
14
|
+
preferredTheme: ThemeMode | null;
|
|
15
|
+
/** The resolved theme mode ('light' or 'dark') after system detection */
|
|
16
|
+
actualThemeMode: ActualThemeMode;
|
|
17
|
+
/** The MUI theme object */
|
|
18
|
+
theme: Theme;
|
|
19
|
+
/** Whether the current theme is dark mode */
|
|
20
|
+
isDark: boolean;
|
|
21
|
+
/** Whether preferences are persisted to localStorage */
|
|
22
|
+
isPersistent: boolean;
|
|
23
|
+
/** Set user's preferred theme (saves to localStorage if persistent) */
|
|
24
|
+
setPreferredTheme: (theme: ThemeMode) => void;
|
|
25
|
+
/** Clear user's preferred theme (removes from localStorage) */
|
|
26
|
+
clearPreferredTheme: () => void;
|
|
27
|
+
/** Get user's preferred theme */
|
|
28
|
+
getPreferredTheme: () => ThemeMode | null;
|
|
29
|
+
/** Get currently applied theme */
|
|
30
|
+
getCurrentTheme: () => ThemeMode;
|
|
31
|
+
/** Temporarily override current theme (does not affect user preference) */
|
|
32
|
+
setCurrentTheme: (theme: ThemeMode) => void;
|
|
33
|
+
}
|
|
34
|
+
export interface ThemeProviderProps {
|
|
35
|
+
children: ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* App identifier for generating unique storage keys, or persistence strategy.
|
|
38
|
+
* - string: Use as app identifier to generate keys 'appId.theme' and 'appId.palette'
|
|
39
|
+
* - true (default): Use default keys 'qwickapps-react-framework-theme' and 'qwickapps-react-framework-palette'
|
|
40
|
+
* - false: Disable persistence (session-only)
|
|
41
|
+
* @example 'com.mycompany.myapp' | true | false
|
|
42
|
+
*/
|
|
43
|
+
appId?: string | true | false;
|
|
44
|
+
/**
|
|
45
|
+
* Whether to automatically include PaletteProvider. Default: true
|
|
46
|
+
* Set to false if you want to use ThemeProvider without palette support
|
|
47
|
+
*/
|
|
48
|
+
includePalette?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Default theme for the application when no user preference exists. The default is 'system' which follows the user's system preference.
|
|
51
|
+
* This can be overridden by user settings or host device settings.
|
|
52
|
+
* @example 'light' | 'dark' | 'system'
|
|
53
|
+
*/
|
|
54
|
+
defaultTheme?: ThemeMode;
|
|
55
|
+
/**
|
|
56
|
+
* Default palette for the application when no user preference exists. The default is 'default'.
|
|
57
|
+
* This can be overridden by user settings.
|
|
58
|
+
* This is only used when includePalette is true.
|
|
59
|
+
* @example 'ocean' | 'autumn' | 'spring' | 'winter' | 'default'
|
|
60
|
+
*/
|
|
61
|
+
defaultPalette?: string;
|
|
62
|
+
}
|
|
63
|
+
export declare const useTheme: () => ThemeContextValue;
|
|
64
|
+
export declare const ThemeProvider: React.FC<ThemeProviderProps>;
|
|
65
|
+
//# sourceMappingURL=ThemeContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/ThemeContext.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AACzF,OAAO,EAAe,KAAK,EAAqC,MAAM,sBAAsB,CAAC;AAW7F,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,2FAA2F;IAC3F,YAAY,EAAE,SAAS,CAAC;IACxB,6DAA6D;IAC7D,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,yEAAyE;IACzE,eAAe,EAAE,eAAe,CAAC;IACjC,2BAA2B;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IAGtB,uEAAuE;IACvE,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9C,+DAA+D;IAC/D,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,iCAAiC;IACjC,iBAAiB,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IAG1C,kCAAkC;IAClC,eAAe,EAAE,MAAM,SAAS,CAAC;IACjC,2EAA2E;IAC3E,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD,eAAO,MAAM,QAAQ,QAAO,iBAM3B,CAAC;AAoBF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAyQtD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { DataProvider, t, T, useData, useDataContext, useDataProvider, useResolveTemplate, useTemplate } from './DataContext';
|
|
2
|
+
export type { DataProviderProps } from './DataContext';
|
|
3
|
+
export { DimensionsProvider, useDimensions } from './DimensionsContext';
|
|
4
|
+
export type { DimensionsContextValue, DimensionTokens } from './DimensionsContext';
|
|
5
|
+
export { PaletteProvider, usePalette } from './PaletteContext';
|
|
6
|
+
export type { PaletteConfig, PaletteContextValue } from './PaletteContext';
|
|
7
|
+
export { ThemeProvider, useTheme } from './ThemeContext';
|
|
8
|
+
export type { ActualThemeMode, ThemeContextValue, ThemeMode } from './ThemeContext';
|
|
9
|
+
export { PrintModeProvider, usePrintMode } from './PrintModeContext';
|
|
10
|
+
export type { PrintModeStateType } from './PrintModeContext';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9H,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hooks available in QwickApps React Framework
|
|
3
|
+
*
|
|
4
|
+
* Common hooks used across QwickApps components
|
|
5
|
+
*/
|
|
6
|
+
export { useBaseProps } from './useBaseProps';
|
|
7
|
+
export type { BaseComponentProps, WithBaseProps } from './useBaseProps';
|
|
8
|
+
export { useDataBinding } from './useDataBinding';
|
|
9
|
+
export { QWICKAPP_COMPONENT } from './useBaseProps';
|
|
10
|
+
export { usePrintMode as usePrintModeHook } from './usePrintMode';
|
|
11
|
+
export type { PrintModeState } from './usePrintMode';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|