@qwickapps/react-framework 1.4.8 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -3
- package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts +9 -9
- package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +1 -1
- package/dist/components/AccessibilityProvider.d.ts +1 -1
- package/dist/components/AccessibilityProvider.d.ts.map +1 -1
- package/dist/components/ErrorBoundary.d.ts +1 -1
- package/dist/components/Html.d.ts +8 -8
- package/dist/components/Html.d.ts.map +1 -1
- package/dist/components/Logo.d.ts +2 -2
- package/dist/components/Logo.d.ts.map +1 -1
- package/dist/components/Markdown.d.ts +5 -5
- package/dist/components/Markdown.d.ts.map +1 -1
- package/dist/components/ProductLogo.d.ts +60 -0
- package/dist/components/ProductLogo.d.ts.map +1 -0
- package/dist/components/QwickAppsLogo.d.ts +1 -1
- package/dist/components/QwickAppsLogo.d.ts.map +1 -1
- package/dist/components/ResponsiveMenu.d.ts.map +1 -1
- package/dist/components/SafeSpan.d.ts +4 -4
- package/dist/components/SafeSpan.d.ts.map +1 -1
- package/dist/components/Scaffold.d.ts.map +1 -1
- package/dist/components/base/Container.d.ts +3 -2
- package/dist/components/base/Container.d.ts.map +1 -1
- package/dist/components/base/ModelView.d.ts +16 -16
- package/dist/components/base/ModelView.d.ts.map +1 -1
- package/dist/components/base/index.d.ts +1 -1
- package/dist/components/base/index.d.ts.map +1 -1
- package/dist/components/blocks/Article.d.ts +4 -18
- package/dist/components/blocks/Article.d.ts.map +1 -1
- package/dist/components/blocks/CardListGrid.d.ts +3 -3
- package/dist/components/blocks/CardListGrid.d.ts.map +1 -1
- package/dist/components/blocks/Code.d.ts +5 -31
- package/dist/components/blocks/Code.d.ts.map +1 -1
- package/dist/components/blocks/Content.d.ts +2 -17
- package/dist/components/blocks/Content.d.ts.map +1 -1
- package/dist/components/blocks/CoverImageHeader.d.ts +2 -12
- package/dist/components/blocks/CoverImageHeader.d.ts.map +1 -1
- package/dist/components/blocks/FeatureCard.d.ts +0 -17
- package/dist/components/blocks/FeatureCard.d.ts.map +1 -1
- package/dist/components/blocks/FeatureGrid.d.ts.map +1 -1
- package/dist/components/blocks/Footer.d.ts +2 -14
- package/dist/components/blocks/Footer.d.ts.map +1 -1
- package/dist/components/blocks/HeroBlock.d.ts +35 -26
- package/dist/components/blocks/HeroBlock.d.ts.map +1 -1
- package/dist/components/blocks/Image.d.ts +23 -23
- package/dist/components/blocks/Image.d.ts.map +1 -1
- package/dist/components/blocks/PageBannerHeader.d.ts +2 -13
- package/dist/components/blocks/PageBannerHeader.d.ts.map +1 -1
- package/dist/components/blocks/ProductCard.d.ts +0 -9
- package/dist/components/blocks/ProductCard.d.ts.map +1 -1
- package/dist/components/blocks/Section.d.ts +16 -24
- package/dist/components/blocks/Section.d.ts.map +1 -1
- package/dist/components/blocks/Text.d.ts +5 -20
- package/dist/components/blocks/Text.d.ts.map +1 -1
- package/dist/components/buttons/Button.d.ts +19 -23
- package/dist/components/buttons/Button.d.ts.map +1 -1
- package/dist/components/buttons/PaletteSwitcher.d.ts +2 -2
- package/dist/components/buttons/PaletteSwitcher.d.ts.map +1 -1
- package/dist/components/buttons/ThemeSwitcher.d.ts +2 -2
- package/dist/components/buttons/ThemeSwitcher.d.ts.map +1 -1
- package/dist/components/dialogs/Dialog.d.ts +35 -0
- package/dist/components/dialogs/Dialog.d.ts.map +1 -0
- package/dist/components/dialogs/index.d.ts +8 -0
- package/dist/components/dialogs/index.d.ts.map +1 -0
- package/dist/components/forms/Captcha.d.ts +55 -0
- package/dist/components/forms/Captcha.d.ts.map +1 -0
- package/dist/components/forms/FormBlock.d.ts +6 -6
- package/dist/components/forms/FormBlock.d.ts.map +1 -1
- package/dist/components/forms/FormCheckbox.d.ts +27 -0
- package/dist/components/forms/FormCheckbox.d.ts.map +1 -0
- package/dist/components/forms/FormField.d.ts +43 -0
- package/dist/components/forms/FormField.d.ts.map +1 -0
- package/dist/components/forms/FormSelect.d.ts +35 -0
- package/dist/components/forms/FormSelect.d.ts.map +1 -0
- package/dist/components/forms/index.d.ts +8 -0
- package/dist/components/forms/index.d.ts.map +1 -1
- package/dist/components/index.d.ts +10 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/input/ChoiceInputField.d.ts +13 -19
- package/dist/components/input/ChoiceInputField.d.ts.map +1 -1
- package/dist/components/input/HtmlInputField.d.ts +16 -17
- package/dist/components/input/HtmlInputField.d.ts.map +1 -1
- package/dist/components/input/SelectInputField.d.ts +14 -17
- package/dist/components/input/SelectInputField.d.ts.map +1 -1
- package/dist/components/input/SwitchInputField.d.ts +11 -18
- package/dist/components/input/SwitchInputField.d.ts.map +1 -1
- package/dist/components/input/TextInputField.d.ts +16 -19
- package/dist/components/input/TextInputField.d.ts.map +1 -1
- package/dist/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +1 -1
- package/dist/components/layout/GridCell.d.ts +18 -19
- package/dist/components/layout/GridCell.d.ts.map +1 -1
- package/dist/components/layout/GridLayout.d.ts +36 -25
- package/dist/components/layout/GridLayout.d.ts.map +1 -1
- package/dist/components/menu/MenuItem.d.ts +2 -2
- package/dist/components/menu/MenuItem.d.ts.map +1 -1
- package/dist/components/pages/FormPage.d.ts.map +1 -1
- package/dist/components/pages/Page.d.ts +1 -1
- package/dist/components/pages/Page.d.ts.map +1 -1
- package/dist/components/shared/createSerializableView.d.ts +22 -10
- package/dist/components/shared/createSerializableView.d.ts.map +1 -1
- package/dist/components/shared/viewProps.d.ts +3 -3
- package/dist/components/shared/viewProps.d.ts.map +1 -1
- package/dist/config/AppConfig.d.ts +2 -2
- package/dist/config/AppConfig.d.ts.map +1 -1
- package/dist/config/types.d.ts +1 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/contexts/DataContext.d.ts +3 -3
- package/dist/contexts/DataContext.d.ts.map +1 -1
- package/dist/contexts/PaletteContext.d.ts.map +1 -1
- package/dist/contexts/ThemeContext.d.ts.map +1 -1
- package/dist/hooks/useDataBinding.d.ts +2 -2
- package/dist/hooks/useDataBinding.d.ts.map +1 -1
- package/dist/hooks/usePrintMode.d.ts +2 -2
- package/dist/hooks/usePrintMode.d.ts.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.js +4929 -2942
- package/dist/index.js +4426 -2410
- package/dist/palettes/manifest.json +90 -0
- package/dist/palettes/palette-autumn.1.4.9.min.css +1 -0
- package/dist/palettes/palette-autumn.1.5.0.css +172 -0
- package/dist/palettes/palette-autumn.1.5.0.min.css +1 -0
- package/dist/palettes/palette-autumn.latest.css +172 -0
- package/dist/palettes/palette-autumn.latest.min.css +1 -0
- package/dist/palettes/palette-cosmic.1.4.9.min.css +1 -0
- package/dist/palettes/palette-cosmic.1.5.0.css +172 -0
- package/dist/palettes/palette-cosmic.1.5.0.min.css +1 -0
- package/dist/palettes/palette-cosmic.latest.css +172 -0
- package/dist/palettes/palette-cosmic.latest.min.css +1 -0
- package/dist/palettes/palette-default.1.4.9.min.css +1 -0
- package/dist/palettes/palette-default.1.5.0.css +178 -0
- package/dist/palettes/palette-default.1.5.0.min.css +1 -0
- package/dist/palettes/palette-default.latest.css +178 -0
- package/dist/palettes/palette-default.latest.min.css +1 -0
- package/dist/palettes/palette-ocean.1.4.9.min.css +1 -0
- package/dist/palettes/palette-ocean.1.5.0.css +172 -0
- package/dist/palettes/palette-ocean.1.5.0.min.css +1 -0
- package/dist/palettes/palette-ocean.latest.css +172 -0
- package/dist/palettes/palette-ocean.latest.min.css +1 -0
- package/dist/palettes/palette-spring.1.4.9.min.css +1 -0
- package/dist/palettes/palette-spring.1.5.0.css +160 -0
- package/dist/palettes/palette-spring.1.5.0.min.css +1 -0
- package/dist/palettes/palette-spring.latest.css +160 -0
- package/dist/palettes/palette-spring.latest.min.css +1 -0
- package/dist/palettes/palette-winter.1.4.9.min.css +1 -0
- package/dist/palettes/palette-winter.1.5.0.css +172 -0
- package/dist/palettes/palette-winter.1.5.0.min.css +1 -0
- package/dist/palettes/palette-winter.latest.css +172 -0
- package/dist/palettes/palette-winter.latest.min.css +1 -0
- package/dist/schemas/ButtonSchema.d.ts +5 -2
- package/dist/schemas/ButtonSchema.d.ts.map +1 -1
- package/dist/schemas/CardListGridSchema.d.ts +4 -4
- package/dist/schemas/CardListGridSchema.d.ts.map +1 -1
- package/dist/schemas/ChoiceInputFieldSchema.d.ts +2 -2
- package/dist/schemas/ChoiceInputFieldSchema.d.ts.map +1 -1
- package/dist/schemas/CodeSchema.d.ts +1 -2
- package/dist/schemas/CodeSchema.d.ts.map +1 -1
- package/dist/schemas/FormBlockSchema.d.ts +2 -2
- package/dist/schemas/FormBlockSchema.d.ts.map +1 -1
- package/dist/schemas/GridCellSchema.d.ts +2 -4
- package/dist/schemas/GridCellSchema.d.ts.map +1 -1
- package/dist/schemas/GridLayoutSchema.d.ts +3 -5
- package/dist/schemas/GridLayoutSchema.d.ts.map +1 -1
- package/dist/schemas/HeroBlockSchema.d.ts +2 -2
- package/dist/schemas/HeroBlockSchema.d.ts.map +1 -1
- package/dist/schemas/HtmlInputFieldSchema.d.ts +2 -2
- package/dist/schemas/HtmlInputFieldSchema.d.ts.map +1 -1
- package/dist/schemas/ImageSchema.d.ts +2 -2
- package/dist/schemas/ImageSchema.d.ts.map +1 -1
- package/dist/schemas/SectionSchema.d.ts +2 -4
- package/dist/schemas/SectionSchema.d.ts.map +1 -1
- package/dist/schemas/SelectInputFieldSchema.d.ts +2 -2
- package/dist/schemas/SelectInputFieldSchema.d.ts.map +1 -1
- package/dist/schemas/SwitchInputFieldSchema.d.ts +2 -2
- package/dist/schemas/SwitchInputFieldSchema.d.ts.map +1 -1
- package/dist/schemas/TextInputFieldSchema.d.ts +2 -2
- package/dist/schemas/TextInputFieldSchema.d.ts.map +1 -1
- package/dist/schemas/ViewSchema.d.ts +8 -7
- package/dist/schemas/ViewSchema.d.ts.map +1 -1
- package/dist/schemas/transformers/ComponentTransformer.d.ts +2 -2
- package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -1
- package/dist/schemas/transformers/ReactNodeTransformer.d.ts +2 -2
- package/dist/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -1
- package/dist/schemas/transformers/registry.d.ts +0 -7
- package/dist/schemas/transformers/registry.d.ts.map +1 -1
- package/dist/schemas/types/Serializable.d.ts +3 -3
- package/dist/schemas/types/Serializable.d.ts.map +1 -1
- package/dist/stories/_templates/SerializationTemplate.d.ts.map +1 -0
- package/dist/types/CollapsibleLayout.d.ts +3 -3
- package/dist/types/CollapsibleLayout.d.ts.map +1 -1
- package/dist/types/ContentProxy.d.ts +4 -4
- package/dist/types/ContentProxy.d.ts.map +1 -1
- package/dist/types/DataTypes.d.ts +4 -4
- package/dist/types/DataTypes.d.ts.map +1 -1
- package/dist/types/TemplateProvider.d.ts +1 -1
- package/dist/types/TemplateProvider.d.ts.map +1 -1
- package/dist/types/TemplateResolver.d.ts +1 -1
- package/dist/types/TemplateResolver.d.ts.map +1 -1
- package/dist/utils/htmlTransform.d.ts +1 -1
- package/dist/utils/htmlTransform.d.ts.map +1 -1
- package/dist/utils/iconMap.d.ts +48 -0
- package/dist/utils/iconMap.d.ts.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +11 -7
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/paletteLoader.d.ts +34 -0
- package/dist/utils/paletteLoader.d.ts.map +1 -0
- package/dist/utils/paletteManifest.d.ts +51 -0
- package/dist/utils/paletteManifest.d.ts.map +1 -0
- package/dist/utils/paletteUtils.d.ts.map +1 -1
- package/dist/utils/reactUtils.d.ts +12 -6
- package/dist/utils/reactUtils.d.ts.map +1 -1
- package/dist/utils/spacing.d.ts +2 -2
- package/dist/utils/spacing.d.ts.map +1 -1
- package/dist/utils/themePerformanceMonitor.d.ts.map +1 -1
- package/dist/utils/themeUtils.d.ts.map +1 -1
- package/package.json +28 -9
- package/scripts/build-palettes.cjs +120 -0
- package/src/__tests__/components/Article.test.tsx +1 -1
- package/src/__tests__/components/Breadcrumbs.test.tsx +2 -2
- package/src/__tests__/components/Button.test.tsx +3 -3
- package/src/__tests__/components/CardListGrid.test.tsx +5 -5
- package/src/__tests__/components/ChoiceInputField.test.tsx +2 -2
- package/src/__tests__/components/Code.test.tsx +2 -2
- package/src/__tests__/components/Content.integration.test.tsx +1 -1
- package/src/__tests__/components/Content.test.tsx +5 -5
- package/src/__tests__/components/CoverImageHeader.test.tsx +3 -3
- package/src/__tests__/components/FeatureCard.integration.test.tsx +1 -1
- package/src/__tests__/components/FeatureGrid.integration.test.tsx +1 -1
- package/src/__tests__/components/FeatureGrid.test.tsx +3 -3
- package/src/__tests__/components/Footer.test.tsx +3 -3
- package/src/__tests__/components/FormBlock.test.tsx +2 -2
- package/src/__tests__/components/HeroBlock.integration.test.tsx +1 -1
- package/src/__tests__/components/HeroBlock.test.tsx +4 -4
- package/src/__tests__/components/HtmlInputField.test.tsx +8 -8
- package/src/__tests__/components/PageBannerHeader.test.tsx +7 -7
- package/src/__tests__/components/PaletteSwitcher.test.tsx +3 -3
- package/src/__tests__/components/ProductCard.test.tsx +1 -1
- package/src/__tests__/components/Section.integration.test.tsx +1 -1
- package/src/__tests__/components/Section.test.tsx +1 -1
- package/src/__tests__/components/SelectInputField.test.tsx +2 -2
- package/src/__tests__/components/TextInputField.test.tsx +4 -4
- package/src/__tests__/components/ThemeSwitcher.test.tsx +3 -3
- package/src/__tests__/components/base/Container.test.tsx +22 -21
- package/src/__tests__/components/blocks/Code.performance.test.tsx +10 -10
- package/src/__tests__/components/blocks/Code.serialization.test.tsx +9 -9
- package/src/__tests__/components/blocks/HeroBlock.serialization.test.tsx +2 -3
- package/src/__tests__/components/blocks/Image.serialization.test.tsx +8 -7
- package/src/__tests__/components/blocks/Section.serialization.test.tsx +8 -8
- package/src/__tests__/components/blocks/Text.performance.test.tsx +5 -5
- package/src/__tests__/components/blocks/Text.serialization.test.tsx +9 -9
- package/src/__tests__/components/buttons/Button.serialization.test.tsx +4 -4
- package/src/__tests__/components/input/FormComponents.serialization.test.tsx +9 -9
- package/src/__tests__/components/input/SelectInputField.serialization.test.tsx +16 -18
- package/src/__tests__/components/input/TextInputField.serialization.test.tsx +9 -9
- package/src/__tests__/components/layout/CollapsibleLayout.test.tsx +5 -9
- package/src/__tests__/components/layout/GridCell.serialization.test.tsx +5 -5
- package/src/__tests__/components/layout/GridLayout.serialization.test.tsx +5 -5
- package/src/__tests__/hooks/usePrintMode.test.ts +1 -0
- package/src/__tests__/schemas/builders.test.ts +2 -2
- package/src/__tests__/schemas/transformers/ComponentSerializationPatterns.test.tsx +28 -28
- package/src/__tests__/schemas/transformers/ComponentTransformer.htmlPatterns.test.ts +5 -5
- package/src/__tests__/schemas/transformers/ComponentTransformer.test.ts +11 -11
- package/src/__tests__/schemas/transformers/CrossBrowserCompatibility.test.ts +10 -10
- package/src/__tests__/schemas/transformers/MockSerializableComponent.ts +15 -15
- package/src/__tests__/schemas/transformers/RealWorldScenarios.test.tsx +19 -19
- package/src/__tests__/schemas/transformers/SerializationErrorHandling.test.ts +15 -15
- package/src/__tests__/schemas/transformers/SerializationIntegration.test.tsx +19 -21
- package/src/__tests__/schemas/transformers/SerializationPerformance.test.ts +15 -15
- package/src/__tests__/schemas/transformers/TestAutomation.test.ts +3 -3
- package/src/__tests__/schemas/transformers/nested-serialization.test.tsx +1 -1
- package/src/__tests__/schemas/transformers/round-trip-component-serialization.test.tsx +10 -10
- package/src/__tests__/utils/optional-logging.test.ts +3 -3
- package/src/components/AccessibilityProvider.tsx +4 -2
- package/src/components/ErrorBoundary.tsx +1 -1
- package/src/components/Html.tsx +14 -17
- package/src/components/Logo.tsx +44 -33
- package/src/components/Markdown.tsx +9 -9
- package/src/components/ProductLogo.tsx +118 -0
- package/src/components/QwickApp.css +46 -1063
- package/src/components/QwickApp.tsx +1 -1
- package/src/components/QwickAppsLogo.tsx +1 -1
- package/src/components/ResponsiveMenu.tsx +13 -2
- package/src/components/SafeSpan.tsx +8 -9
- package/src/components/Scaffold.css +14 -0
- package/src/components/Scaffold.tsx +71 -27
- package/src/components/base/Container.tsx +2 -2
- package/src/components/base/ModelView.tsx +28 -27
- package/src/components/base/index.ts +1 -1
- package/src/components/blocks/Article.tsx +251 -36
- package/src/components/blocks/CardListGrid.tsx +18 -14
- package/src/components/blocks/Code.tsx +18 -13
- package/src/components/blocks/Content.tsx +15 -10
- package/src/components/blocks/CoverImageHeader.tsx +15 -10
- package/src/components/blocks/FeatureCard.tsx +16 -11
- package/src/components/blocks/FeatureGrid.tsx +13 -8
- package/src/components/blocks/Footer.tsx +44 -35
- package/src/components/blocks/HeroBlock.tsx +12 -13
- package/src/components/blocks/Image.tsx +16 -8
- package/src/components/blocks/PageBannerHeader.tsx +16 -12
- package/src/components/blocks/ProductCard.tsx +32 -25
- package/src/components/blocks/Section.tsx +21 -13
- package/src/components/blocks/Text.tsx +33 -15
- package/src/components/buttons/Button.tsx +110 -30
- package/src/components/buttons/PaletteSwitcher.tsx +11 -8
- package/src/components/buttons/ThemeSwitcher.tsx +20 -16
- package/src/components/dialogs/Dialog.tsx +126 -0
- package/src/components/dialogs/index.ts +15 -0
- package/src/components/forms/Captcha.tsx +291 -0
- package/src/components/forms/FormBlock.tsx +22 -15
- package/src/components/forms/FormCheckbox.tsx +116 -0
- package/src/components/forms/FormField.tsx +180 -0
- package/src/components/forms/FormSelect.tsx +140 -0
- package/src/components/forms/index.ts +13 -1
- package/src/components/index.ts +13 -2
- package/src/components/input/ChoiceInputField.tsx +1 -2
- package/src/components/input/HtmlInputField.tsx +2 -3
- package/src/components/input/SelectInputField.tsx +31 -5
- package/src/components/input/SwitchInputField.tsx +3 -4
- package/src/components/input/TextField.tsx +2 -2
- package/src/components/input/TextInputField.tsx +32 -6
- package/src/components/layout/CollapsibleLayout/CollapsibleLayout.tsx +13 -13
- package/src/components/layout/GridCell.tsx +10 -9
- package/src/components/layout/GridCellWrapper.tsx +1 -1
- package/src/components/layout/GridLayout.tsx +29 -32
- package/src/components/menu/MenuItem.tsx +2 -2
- package/src/components/pages/FormPage.tsx +0 -1
- package/src/components/pages/Page.tsx +2 -2
- package/src/components/shared/createSerializableView.tsx +24 -23
- package/src/components/shared/viewProps.ts +11 -11
- package/src/config/AppConfig.ts +2 -2
- package/src/config/__tests__/AppConfig.test.ts +3 -3
- package/src/config/__tests__/AppConfigBuilder.test.ts +10 -11
- package/src/config/types.ts +1 -1
- package/src/contexts/DataContext.tsx +58 -52
- package/src/contexts/PaletteContext.tsx +22 -9
- package/src/contexts/PrintModeContext.tsx +4 -4
- package/src/contexts/ThemeContext.tsx +3 -2
- package/src/hooks/useBaseProps.ts +10 -10
- package/src/hooks/useDataBinding.ts +15 -18
- package/src/hooks/usePrintMode.ts +3 -3
- package/src/index.ts +2 -0
- package/src/palettes/manifest.json +72 -0
- package/src/palettes/manifest.schema.json +74 -0
- package/src/schemas/ButtonSchema.ts +33 -0
- package/src/schemas/CardListGridSchema.ts +3 -3
- package/src/schemas/CodeSchema.ts +0 -1
- package/src/schemas/FeatureGridSchema.ts +1 -1
- package/src/schemas/FormBlockSchema.ts +1 -1
- package/src/schemas/GridCellSchema.ts +0 -1
- package/src/schemas/GridLayoutSchema.ts +0 -1
- package/src/schemas/SectionSchema.ts +0 -1
- package/src/schemas/ViewSchema.ts +7 -7
- package/src/schemas/transformers/ComponentTransformer.ts +39 -28
- package/src/schemas/transformers/ReactNodeTransformer.ts +18 -17
- package/src/schemas/transformers/registry.ts +28 -24
- package/src/schemas/types/Serializable.ts +3 -3
- package/src/setupTests.js +9 -0
- package/src/stories/AccessibilityProvider.stories.tsx +0 -1
- package/src/stories/Article.stories.tsx +1 -1
- package/src/stories/CardListGrid.stories.tsx +1 -1
- package/src/stories/ChoiceInputField.stories.tsx +2 -2
- package/src/stories/Code.stories.tsx +2 -3
- package/src/stories/CollapsibleLayout.stories.tsx +41 -37
- package/src/stories/Container.stories.tsx +1 -2
- package/src/stories/DataBinding.advanced.stories.tsx +15 -9
- package/src/stories/DataProvider.stories.tsx +33 -16
- package/src/stories/ErrorBoundary.stories.tsx +28 -26
- package/src/stories/FeatureGrid.stories.tsx +0 -1
- package/src/stories/FormBlock.stories.tsx +8 -8
- package/src/stories/FormComponents.stories.tsx +15 -11
- package/src/stories/GridCell.stories.tsx +5 -5
- package/src/stories/GridLayout.stories.tsx +5 -5
- package/src/stories/Image.stories.tsx +5 -7
- package/src/stories/Introduction.stories.tsx +0 -1
- package/src/stories/ModelView.stories.tsx +7 -7
- package/src/stories/SafeSpan.stories.tsx +7 -3
- package/src/stories/Section.stories.tsx +2 -2
- package/src/stories/Text.stories.tsx +1 -3
- package/src/stories/_templates/SerializationTemplate.tsx +0 -1
- package/src/templates/TemplateResolver.ts +2 -2
- package/src/types/CollapsibleLayout.ts +2 -2
- package/src/types/ContentProxy.ts +6 -6
- package/src/types/DataTypes.ts +4 -4
- package/src/types/TemplateProvider.ts +1 -1
- package/src/types/TemplateResolver.ts +1 -1
- package/src/utils/htmlTransform.tsx +17 -11
- package/src/utils/iconMap.tsx +221 -0
- package/src/utils/index.ts +4 -1
- package/src/utils/logger.ts +20 -14
- package/src/utils/paletteLoader.ts +218 -0
- package/src/utils/paletteManifest.ts +268 -0
- package/src/utils/paletteUtils.ts +19 -1
- package/src/utils/reactUtils.tsx +34 -33
- package/src/utils/spacing.ts +16 -17
- package/src/utils/themePerformanceMonitor.js +14 -6
- package/src/utils/themeUtils.ts +17 -2
- package/dist/components/base/ContainerView.d.ts +0 -65
- package/dist/components/base/ContainerView.d.ts.map +0 -1
- package/dist/components/blocks/Code-factory.d.ts +0 -22
- package/dist/components/blocks/Code-factory.d.ts.map +0 -1
- package/dist/components/blocks/Code-old.d.ts +0 -31
- package/dist/components/blocks/Code-old.d.ts.map +0 -1
- package/dist/qa/ConsoleWarningTest.d.ts +0 -5
- package/dist/qa/ConsoleWarningTest.d.ts.map +0 -1
- package/dist/qa/StorageKeyTest.d.ts +0 -6
- package/dist/qa/StorageKeyTest.d.ts.map +0 -1
- package/dist/qa/ThemeStorageKeyTest.d.ts +0 -6
- package/dist/qa/ThemeStorageKeyTest.d.ts.map +0 -1
- package/dist/schemas/ViewModelSchema.d.ts +0 -63
- package/dist/schemas/ViewModelSchema.d.ts.map +0 -1
- package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts +0 -66
- package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts.map +0 -1
- package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts +0 -66
- package/dist/src/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +0 -1
- package/dist/src/components/AccessibilityChecker.d.ts +0 -12
- package/dist/src/components/AccessibilityChecker.d.ts.map +0 -1
- package/dist/src/components/AccessibilityProvider.d.ts +0 -64
- package/dist/src/components/AccessibilityProvider.d.ts.map +0 -1
- package/dist/src/components/Breadcrumbs.d.ts +0 -39
- package/dist/src/components/Breadcrumbs.d.ts.map +0 -1
- package/dist/src/components/ErrorBoundary.d.ts +0 -46
- package/dist/src/components/ErrorBoundary.d.ts.map +0 -1
- package/dist/src/components/Html.d.ts +0 -58
- package/dist/src/components/Html.d.ts.map +0 -1
- package/dist/src/components/Logo.d.ts +0 -56
- package/dist/src/components/Logo.d.ts.map +0 -1
- package/dist/src/components/Markdown.d.ts +0 -51
- package/dist/src/components/Markdown.d.ts.map +0 -1
- package/dist/src/components/QwickApp.d.ts +0 -69
- package/dist/src/components/QwickApp.d.ts.map +0 -1
- package/dist/src/components/QwickAppsLogo.d.ts +0 -25
- package/dist/src/components/QwickAppsLogo.d.ts.map +0 -1
- package/dist/src/components/QwickIcon.d.ts +0 -23
- package/dist/src/components/QwickIcon.d.ts.map +0 -1
- package/dist/src/components/ResponsiveMenu.d.ts +0 -38
- package/dist/src/components/ResponsiveMenu.d.ts.map +0 -1
- package/dist/src/components/SafeSpan.d.ts +0 -29
- package/dist/src/components/SafeSpan.d.ts.map +0 -1
- package/dist/src/components/Scaffold.d.ts +0 -57
- package/dist/src/components/Scaffold.d.ts.map +0 -1
- package/dist/src/components/base/Container.d.ts +0 -33
- package/dist/src/components/base/Container.d.ts.map +0 -1
- package/dist/src/components/base/ModelView.d.ts +0 -92
- package/dist/src/components/base/ModelView.d.ts.map +0 -1
- package/dist/src/components/base/index.d.ts +0 -12
- package/dist/src/components/base/index.d.ts.map +0 -1
- package/dist/src/components/blocks/Article.d.ts +0 -32
- package/dist/src/components/blocks/Article.d.ts.map +0 -1
- package/dist/src/components/blocks/CardListGrid.d.ts +0 -23
- package/dist/src/components/blocks/CardListGrid.d.ts.map +0 -1
- package/dist/src/components/blocks/Code.d.ts +0 -37
- package/dist/src/components/blocks/Code.d.ts.map +0 -1
- package/dist/src/components/blocks/Content.d.ts +0 -24
- package/dist/src/components/blocks/Content.d.ts.map +0 -1
- package/dist/src/components/blocks/CoverImageHeader.d.ts +0 -44
- package/dist/src/components/blocks/CoverImageHeader.d.ts.map +0 -1
- package/dist/src/components/blocks/FeatureCard.d.ts +0 -66
- package/dist/src/components/blocks/FeatureCard.d.ts.map +0 -1
- package/dist/src/components/blocks/FeatureGrid.d.ts +0 -48
- package/dist/src/components/blocks/FeatureGrid.d.ts.map +0 -1
- package/dist/src/components/blocks/Footer.d.ts +0 -56
- package/dist/src/components/blocks/Footer.d.ts.map +0 -1
- package/dist/src/components/blocks/HeroBlock.d.ts +0 -55
- package/dist/src/components/blocks/HeroBlock.d.ts.map +0 -1
- package/dist/src/components/blocks/Image.d.ts +0 -40
- package/dist/src/components/blocks/Image.d.ts.map +0 -1
- package/dist/src/components/blocks/PageBannerHeader.d.ts +0 -30
- package/dist/src/components/blocks/PageBannerHeader.d.ts.map +0 -1
- package/dist/src/components/blocks/ProductCard.d.ts +0 -57
- package/dist/src/components/blocks/ProductCard.d.ts.map +0 -1
- package/dist/src/components/blocks/Section.d.ts +0 -45
- package/dist/src/components/blocks/Section.d.ts.map +0 -1
- package/dist/src/components/blocks/Text.d.ts +0 -34
- package/dist/src/components/blocks/Text.d.ts.map +0 -1
- package/dist/src/components/blocks/index.d.ts +0 -41
- package/dist/src/components/blocks/index.d.ts.map +0 -1
- package/dist/src/components/buttons/Button.d.ts +0 -41
- package/dist/src/components/buttons/Button.d.ts.map +0 -1
- package/dist/src/components/buttons/PaletteSwitcher.d.ts +0 -24
- package/dist/src/components/buttons/PaletteSwitcher.d.ts.map +0 -1
- package/dist/src/components/buttons/ThemeSwitcher.d.ts +0 -24
- package/dist/src/components/buttons/ThemeSwitcher.d.ts.map +0 -1
- package/dist/src/components/buttons/index.d.ts +0 -11
- package/dist/src/components/buttons/index.d.ts.map +0 -1
- package/dist/src/components/forms/FormBlock.d.ts +0 -51
- package/dist/src/components/forms/FormBlock.d.ts.map +0 -1
- package/dist/src/components/forms/index.d.ts +0 -8
- package/dist/src/components/forms/index.d.ts.map +0 -1
- package/dist/src/components/index.d.ts +0 -41
- package/dist/src/components/index.d.ts.map +0 -1
- package/dist/src/components/input/ChoiceInputField.d.ts +0 -29
- package/dist/src/components/input/ChoiceInputField.d.ts.map +0 -1
- package/dist/src/components/input/HtmlInputField.d.ts +0 -33
- package/dist/src/components/input/HtmlInputField.d.ts.map +0 -1
- package/dist/src/components/input/SelectInputField.d.ts +0 -31
- package/dist/src/components/input/SelectInputField.d.ts.map +0 -1
- package/dist/src/components/input/SwitchInputField.d.ts +0 -27
- package/dist/src/components/input/SwitchInputField.d.ts.map +0 -1
- package/dist/src/components/input/TextField.d.ts +0 -18
- package/dist/src/components/input/TextField.d.ts.map +0 -1
- package/dist/src/components/input/TextInputField.d.ts +0 -34
- package/dist/src/components/input/TextInputField.d.ts.map +0 -1
- package/dist/src/components/input/index.d.ts +0 -19
- package/dist/src/components/input/index.d.ts.map +0 -1
- package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts +0 -34
- package/dist/src/components/layout/CollapsibleLayout/CollapsibleLayout.d.ts.map +0 -1
- package/dist/src/components/layout/CollapsibleLayout/index.d.ts +0 -9
- package/dist/src/components/layout/CollapsibleLayout/index.d.ts.map +0 -1
- package/dist/src/components/layout/GridCell.d.ts +0 -32
- package/dist/src/components/layout/GridCell.d.ts.map +0 -1
- package/dist/src/components/layout/GridCellWrapper.d.ts +0 -46
- package/dist/src/components/layout/GridCellWrapper.d.ts.map +0 -1
- package/dist/src/components/layout/GridLayout.d.ts +0 -50
- package/dist/src/components/layout/GridLayout.d.ts.map +0 -1
- package/dist/src/components/layout/index.d.ts +0 -14
- package/dist/src/components/layout/index.d.ts.map +0 -1
- package/dist/src/components/menu/Menu.d.ts +0 -1
- package/dist/src/components/menu/Menu.d.ts.map +0 -1
- package/dist/src/components/menu/MenuItem.d.ts +0 -31
- package/dist/src/components/menu/MenuItem.d.ts.map +0 -1
- package/dist/src/components/menu/index.d.ts +0 -7
- package/dist/src/components/menu/index.d.ts.map +0 -1
- package/dist/src/components/pages/FormPage.d.ts +0 -66
- package/dist/src/components/pages/FormPage.d.ts.map +0 -1
- package/dist/src/components/pages/Page.d.ts +0 -68
- package/dist/src/components/pages/Page.d.ts.map +0 -1
- package/dist/src/components/pages/index.d.ts +0 -10
- package/dist/src/components/pages/index.d.ts.map +0 -1
- package/dist/src/components/shared/createSerializableView.d.ts +0 -81
- package/dist/src/components/shared/createSerializableView.d.ts.map +0 -1
- package/dist/src/components/shared/viewProps.d.ts +0 -37
- package/dist/src/components/shared/viewProps.d.ts.map +0 -1
- package/dist/src/config/AppConfig.d.ts +0 -49
- package/dist/src/config/AppConfig.d.ts.map +0 -1
- package/dist/src/config/AppConfigBuilder.d.ts +0 -75
- package/dist/src/config/AppConfigBuilder.d.ts.map +0 -1
- package/dist/src/config/index.d.ts +0 -13
- package/dist/src/config/index.d.ts.map +0 -1
- package/dist/src/config/types.d.ts +0 -130
- package/dist/src/config/types.d.ts.map +0 -1
- package/dist/src/config.d.ts +0 -15
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/contexts/DataContext.d.ts +0 -139
- package/dist/src/contexts/DataContext.d.ts.map +0 -1
- package/dist/src/contexts/DimensionsContext.d.ts +0 -42
- package/dist/src/contexts/DimensionsContext.d.ts.map +0 -1
- package/dist/src/contexts/PaletteContext.d.ts +0 -53
- package/dist/src/contexts/PaletteContext.d.ts.map +0 -1
- package/dist/src/contexts/PrintModeContext.d.ts +0 -27
- package/dist/src/contexts/PrintModeContext.d.ts.map +0 -1
- package/dist/src/contexts/QwickAppContext.d.ts +0 -71
- package/dist/src/contexts/QwickAppContext.d.ts.map +0 -1
- package/dist/src/contexts/ThemeContext.d.ts +0 -65
- package/dist/src/contexts/ThemeContext.d.ts.map +0 -1
- package/dist/src/contexts/index.d.ts +0 -11
- package/dist/src/contexts/index.d.ts.map +0 -1
- package/dist/src/hooks/index.d.ts +0 -12
- package/dist/src/hooks/index.d.ts.map +0 -1
- package/dist/src/hooks/useBaseProps.d.ts +0 -101
- package/dist/src/hooks/useBaseProps.d.ts.map +0 -1
- package/dist/src/hooks/useDataBinding.d.ts +0 -22
- package/dist/src/hooks/useDataBinding.d.ts.map +0 -1
- package/dist/src/hooks/usePrintMode.d.ts +0 -39
- package/dist/src/hooks/usePrintMode.d.ts.map +0 -1
- package/dist/src/index.d.ts +0 -9
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/palettes/PaletteAutumn.d.ts +0 -10
- package/dist/src/palettes/PaletteAutumn.d.ts.map +0 -1
- package/dist/src/palettes/PaletteCosmic.d.ts +0 -10
- package/dist/src/palettes/PaletteCosmic.d.ts.map +0 -1
- package/dist/src/palettes/PaletteDefault.d.ts +0 -10
- package/dist/src/palettes/PaletteDefault.d.ts.map +0 -1
- package/dist/src/palettes/PaletteOcean.d.ts +0 -10
- package/dist/src/palettes/PaletteOcean.d.ts.map +0 -1
- package/dist/src/palettes/PaletteSpring.d.ts +0 -10
- package/dist/src/palettes/PaletteSpring.d.ts.map +0 -1
- package/dist/src/palettes/PaletteWinter.d.ts +0 -10
- package/dist/src/palettes/PaletteWinter.d.ts.map +0 -1
- package/dist/src/palettes/index.d.ts +0 -13
- package/dist/src/palettes/index.d.ts.map +0 -1
- package/dist/src/schemas/ActionSchema.d.ts +0 -21
- package/dist/src/schemas/ActionSchema.d.ts.map +0 -1
- package/dist/src/schemas/ArticleSchema.d.ts +0 -13
- package/dist/src/schemas/ArticleSchema.d.ts.map +0 -1
- package/dist/src/schemas/ButtonSchema.d.ts +0 -19
- package/dist/src/schemas/ButtonSchema.d.ts.map +0 -1
- package/dist/src/schemas/CardListGridSchema.d.ts +0 -17
- package/dist/src/schemas/CardListGridSchema.d.ts.map +0 -1
- package/dist/src/schemas/ChoiceInputFieldSchema.d.ts +0 -18
- package/dist/src/schemas/ChoiceInputFieldSchema.d.ts.map +0 -1
- package/dist/src/schemas/CodeSchema.d.ts +0 -18
- package/dist/src/schemas/CodeSchema.d.ts.map +0 -1
- package/dist/src/schemas/CollapsibleLayoutSchema.d.ts +0 -32
- package/dist/src/schemas/CollapsibleLayoutSchema.d.ts.map +0 -1
- package/dist/src/schemas/ContainerSchema.d.ts +0 -12
- package/dist/src/schemas/ContainerSchema.d.ts.map +0 -1
- package/dist/src/schemas/ContentSchema.d.ts +0 -21
- package/dist/src/schemas/ContentSchema.d.ts.map +0 -1
- package/dist/src/schemas/CoverImageHeaderSchema.d.ts +0 -28
- package/dist/src/schemas/CoverImageHeaderSchema.d.ts.map +0 -1
- package/dist/src/schemas/FeatureCardSchema.d.ts +0 -28
- package/dist/src/schemas/FeatureCardSchema.d.ts.map +0 -1
- package/dist/src/schemas/FeatureGridSchema.d.ts +0 -17
- package/dist/src/schemas/FeatureGridSchema.d.ts.map +0 -1
- package/dist/src/schemas/FeatureItemSchema.d.ts +0 -16
- package/dist/src/schemas/FeatureItemSchema.d.ts.map +0 -1
- package/dist/src/schemas/FooterItemSchema.d.ts +0 -15
- package/dist/src/schemas/FooterItemSchema.d.ts.map +0 -1
- package/dist/src/schemas/FooterSchema.d.ts +0 -20
- package/dist/src/schemas/FooterSchema.d.ts.map +0 -1
- package/dist/src/schemas/FooterSectionSchema.d.ts +0 -15
- package/dist/src/schemas/FooterSectionSchema.d.ts.map +0 -1
- package/dist/src/schemas/FormBlockSchema.d.ts +0 -19
- package/dist/src/schemas/FormBlockSchema.d.ts.map +0 -1
- package/dist/src/schemas/GridCellSchema.d.ts +0 -23
- package/dist/src/schemas/GridCellSchema.d.ts.map +0 -1
- package/dist/src/schemas/GridLayoutSchema.d.ts +0 -21
- package/dist/src/schemas/GridLayoutSchema.d.ts.map +0 -1
- package/dist/src/schemas/HeaderActionSchema.d.ts +0 -17
- package/dist/src/schemas/HeaderActionSchema.d.ts.map +0 -1
- package/dist/src/schemas/HeroBlockSchema.d.ts +0 -22
- package/dist/src/schemas/HeroBlockSchema.d.ts.map +0 -1
- package/dist/src/schemas/HtmlInputFieldSchema.d.ts +0 -18
- package/dist/src/schemas/HtmlInputFieldSchema.d.ts.map +0 -1
- package/dist/src/schemas/HtmlSchema.d.ts +0 -14
- package/dist/src/schemas/HtmlSchema.d.ts.map +0 -1
- package/dist/src/schemas/ImageSchema.d.ts +0 -32
- package/dist/src/schemas/ImageSchema.d.ts.map +0 -1
- package/dist/src/schemas/LogoSchema.d.ts +0 -35
- package/dist/src/schemas/LogoSchema.d.ts.map +0 -1
- package/dist/src/schemas/MarkdownSchema.d.ts +0 -14
- package/dist/src/schemas/MarkdownSchema.d.ts.map +0 -1
- package/dist/src/schemas/MetadataItemSchema.d.ts +0 -13
- package/dist/src/schemas/MetadataItemSchema.d.ts.map +0 -1
- package/dist/src/schemas/PageBannerHeaderSchema.d.ts +0 -28
- package/dist/src/schemas/PageBannerHeaderSchema.d.ts.map +0 -1
- package/dist/src/schemas/PageTemplateSchema.d.ts +0 -31
- package/dist/src/schemas/PageTemplateSchema.d.ts.map +0 -1
- package/dist/src/schemas/PaletteSwitcherSchema.d.ts +0 -16
- package/dist/src/schemas/PaletteSwitcherSchema.d.ts.map +0 -1
- package/dist/src/schemas/PrintConfigSchema.d.ts +0 -31
- package/dist/src/schemas/PrintConfigSchema.d.ts.map +0 -1
- package/dist/src/schemas/ProductCardSchema.d.ts +0 -39
- package/dist/src/schemas/ProductCardSchema.d.ts.map +0 -1
- package/dist/src/schemas/SafeSpanSchema.d.ts +0 -13
- package/dist/src/schemas/SafeSpanSchema.d.ts.map +0 -1
- package/dist/src/schemas/SectionSchema.d.ts +0 -16
- package/dist/src/schemas/SectionSchema.d.ts.map +0 -1
- package/dist/src/schemas/SelectInputFieldSchema.d.ts +0 -27
- package/dist/src/schemas/SelectInputFieldSchema.d.ts.map +0 -1
- package/dist/src/schemas/SwitchInputFieldSchema.d.ts +0 -18
- package/dist/src/schemas/SwitchInputFieldSchema.d.ts.map +0 -1
- package/dist/src/schemas/TextInputFieldSchema.d.ts +0 -22
- package/dist/src/schemas/TextInputFieldSchema.d.ts.map +0 -1
- package/dist/src/schemas/TextSchema.d.ts +0 -37
- package/dist/src/schemas/TextSchema.d.ts.map +0 -1
- package/dist/src/schemas/ThemeSwitcherSchema.d.ts +0 -19
- package/dist/src/schemas/ThemeSwitcherSchema.d.ts.map +0 -1
- package/dist/src/schemas/ViewSchema.d.ts +0 -66
- package/dist/src/schemas/ViewSchema.d.ts.map +0 -1
- package/dist/src/schemas/index.d.ts +0 -47
- package/dist/src/schemas/index.d.ts.map +0 -1
- package/dist/src/schemas/transformers/ComponentTransformer.d.ts +0 -128
- package/dist/src/schemas/transformers/ComponentTransformer.d.ts.map +0 -1
- package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts +0 -53
- package/dist/src/schemas/transformers/ReactNodeTransformer.d.ts.map +0 -1
- package/dist/src/schemas/transformers/registry.d.ts +0 -18
- package/dist/src/schemas/transformers/registry.d.ts.map +0 -1
- package/dist/src/schemas/types/Serializable.d.ts +0 -46
- package/dist/src/schemas/types/Serializable.d.ts.map +0 -1
- package/dist/src/stories/_templates/SerializationTemplate.d.ts.map +0 -1
- package/dist/src/templates/TemplateResolver.d.ts +0 -52
- package/dist/src/templates/TemplateResolver.d.ts.map +0 -1
- package/dist/src/templates/index.d.ts +0 -7
- package/dist/src/templates/index.d.ts.map +0 -1
- package/dist/src/types/CacheProvider.d.ts +0 -18
- package/dist/src/types/CacheProvider.d.ts.map +0 -1
- package/dist/src/types/CollapsibleLayout.d.ts +0 -142
- package/dist/src/types/CollapsibleLayout.d.ts.map +0 -1
- package/dist/src/types/ContentProxy.d.ts +0 -47
- package/dist/src/types/ContentProxy.d.ts.map +0 -1
- package/dist/src/types/DataTypes.d.ts +0 -185
- package/dist/src/types/DataTypes.d.ts.map +0 -1
- package/dist/src/types/TemplateProvider.d.ts +0 -10
- package/dist/src/types/TemplateProvider.d.ts.map +0 -1
- package/dist/src/types/TemplateResolver.d.ts +0 -23
- package/dist/src/types/TemplateResolver.d.ts.map +0 -1
- package/dist/src/types/index.d.ts +0 -82
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/utils/breakpoints.d.ts +0 -35
- package/dist/src/utils/breakpoints.d.ts.map +0 -1
- package/dist/src/utils/cssUtils.d.ts +0 -17
- package/dist/src/utils/cssUtils.d.ts.map +0 -1
- package/dist/src/utils/customPaletteManager.d.ts +0 -8
- package/dist/src/utils/customPaletteManager.d.ts.map +0 -1
- package/dist/src/utils/dimensions.d.ts +0 -34
- package/dist/src/utils/dimensions.d.ts.map +0 -1
- package/dist/src/utils/htmlTransform.d.ts +0 -44
- package/dist/src/utils/htmlTransform.d.ts.map +0 -1
- package/dist/src/utils/index.d.ts +0 -16
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/logger.d.ts +0 -26
- package/dist/src/utils/logger.d.ts.map +0 -1
- package/dist/src/utils/paletteUtils.d.ts +0 -38
- package/dist/src/utils/paletteUtils.d.ts.map +0 -1
- package/dist/src/utils/persistenceUtils.d.ts +0 -31
- package/dist/src/utils/persistenceUtils.d.ts.map +0 -1
- package/dist/src/utils/reactUtils.d.ts +0 -33
- package/dist/src/utils/reactUtils.d.ts.map +0 -1
- package/dist/src/utils/spacing.d.ts +0 -34
- package/dist/src/utils/spacing.d.ts.map +0 -1
- package/dist/src/utils/themePerformanceMonitor.d.ts +0 -32
- package/dist/src/utils/themePerformanceMonitor.d.ts.map +0 -1
- package/dist/src/utils/themeUtils.d.ts +0 -27
- package/dist/src/utils/themeUtils.d.ts.map +0 -1
- package/dist/tests/ConsoleWarningTest.d.ts +0 -5
- package/dist/tests/ConsoleWarningTest.d.ts.map +0 -1
- package/dist/tests/StorageKeyTest.d.ts +0 -6
- package/dist/tests/StorageKeyTest.d.ts.map +0 -1
- package/dist/tests/ThemeStorageKeyTest.d.ts +0 -6
- package/dist/tests/ThemeStorageKeyTest.d.ts.map +0 -1
- /package/dist/palettes/{PaletteAutumn.css → palette-autumn.1.4.9.css} +0 -0
- /package/dist/palettes/{PaletteCosmic.css → palette-cosmic.1.4.9.css} +0 -0
- /package/dist/palettes/{PaletteDefault.css → palette-default.1.4.9.css} +0 -0
- /package/dist/palettes/{PaletteOcean.css → palette-ocean.1.4.9.css} +0 -0
- /package/dist/palettes/{PaletteSpring.css → palette-spring.1.4.9.css} +0 -0
- /package/dist/palettes/{PaletteWinter.css → palette-winter.1.4.9.css} +0 -0
- /package/dist/{src/stories → stories}/_templates/SerializationTemplate.d.ts +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { IsArray, IsOptional, IsNumber, IsIn, IsBoolean, IsString, ValidateNested
|
|
7
|
+
import { IsArray, IsOptional, IsNumber, IsIn, IsBoolean, IsString, ValidateNested } from 'class-validator';
|
|
8
8
|
import { Type } from 'class-transformer';
|
|
9
9
|
import 'reflect-metadata';
|
|
10
10
|
import { Editor, Field, Schema, Model, FieldType } from '@qwickapps/schema';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { IsIn, IsOptional, IsString } from 'class-validator';
|
|
8
8
|
import 'reflect-metadata';
|
|
9
9
|
import { Editor, Field, Schema, FieldType } from '@qwickapps/schema';
|
|
10
10
|
import { ContainerSchema } from './ContainerSchema';
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { ReactNode } from 'react';
|
|
8
7
|
import { IsOptional, IsString, IsNumber, IsIn } from 'class-validator';
|
|
9
8
|
import 'reflect-metadata';
|
|
10
9
|
import { Editor, Field, Schema, FieldType } from '@qwickapps/schema';
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { ReactNode } from 'react';
|
|
8
7
|
import { IsBoolean, IsOptional, IsString, IsNumber, IsIn, Min } from 'class-validator';
|
|
9
8
|
import 'reflect-metadata';
|
|
10
9
|
import { Editor, Field, Schema, FieldType } from '@qwickapps/schema';
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
import { IsOptional, IsString, IsIn } from 'class-validator';
|
|
8
8
|
import 'reflect-metadata';
|
|
9
9
|
import { Editor, Field, Schema, FieldType } from '@qwickapps/schema';
|
|
10
|
-
import { ReactNode } from 'react';
|
|
11
10
|
import { ContainerSchema } from './ContainerSchema';
|
|
12
11
|
|
|
13
12
|
@Schema('Section', '1.0.0')
|
|
@@ -170,7 +170,7 @@ export class ViewSchema extends Model {
|
|
|
170
170
|
})
|
|
171
171
|
@IsOptional()
|
|
172
172
|
@IsString()
|
|
173
|
-
height?: string | number
|
|
173
|
+
height?: string | number;
|
|
174
174
|
|
|
175
175
|
@Field()
|
|
176
176
|
@Editor({
|
|
@@ -516,11 +516,11 @@ export class ViewSchema extends Model {
|
|
|
516
516
|
field_type: FieldType.TEXTAREA,
|
|
517
517
|
label: 'Click Handler',
|
|
518
518
|
description: 'JavaScript function for click events',
|
|
519
|
-
placeholder: 'function(event) { console.
|
|
519
|
+
placeholder: 'function(event) { console.debug("clicked"); }'
|
|
520
520
|
})
|
|
521
521
|
@IsOptional()
|
|
522
522
|
@IsString()
|
|
523
|
-
onClick?: MouseEventHandler<
|
|
523
|
+
onClick?: MouseEventHandler<unknown>;
|
|
524
524
|
|
|
525
525
|
@Field()
|
|
526
526
|
@Editor({
|
|
@@ -531,7 +531,7 @@ export class ViewSchema extends Model {
|
|
|
531
531
|
})
|
|
532
532
|
@IsOptional()
|
|
533
533
|
@IsString()
|
|
534
|
-
onMouseEnter?: MouseEventHandler<
|
|
534
|
+
onMouseEnter?: MouseEventHandler<unknown>;
|
|
535
535
|
|
|
536
536
|
@Field()
|
|
537
537
|
@Editor({
|
|
@@ -542,7 +542,7 @@ export class ViewSchema extends Model {
|
|
|
542
542
|
})
|
|
543
543
|
@IsOptional()
|
|
544
544
|
@IsString()
|
|
545
|
-
onMouseLeave?: MouseEventHandler<
|
|
545
|
+
onMouseLeave?: MouseEventHandler<unknown>;
|
|
546
546
|
|
|
547
547
|
@Field()
|
|
548
548
|
@Editor({
|
|
@@ -553,7 +553,7 @@ export class ViewSchema extends Model {
|
|
|
553
553
|
})
|
|
554
554
|
@IsOptional()
|
|
555
555
|
@IsString()
|
|
556
|
-
onFocus?: FocusEventHandler<
|
|
556
|
+
onFocus?: FocusEventHandler<unknown>;
|
|
557
557
|
|
|
558
558
|
@Field()
|
|
559
559
|
@Editor({
|
|
@@ -564,7 +564,7 @@ export class ViewSchema extends Model {
|
|
|
564
564
|
})
|
|
565
565
|
@IsOptional()
|
|
566
566
|
@IsString()
|
|
567
|
-
onBlur?: FocusEventHandler<
|
|
567
|
+
onBlur?: FocusEventHandler<unknown>;
|
|
568
568
|
}
|
|
569
569
|
|
|
570
570
|
export default ViewSchema;
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import React, { ReactNode, ReactElement } from 'react';
|
|
13
13
|
import { SerializableConstructor } from '../types/Serializable';
|
|
14
14
|
import { ReactNodeTransformer } from './ReactNodeTransformer';
|
|
15
|
+
import SafeSpan from '../../components/SafeSpan';
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Registry for component classes that support serialization
|
|
@@ -26,7 +27,7 @@ const patternRegistry = new Map<string, PatternHandler>();
|
|
|
26
27
|
/**
|
|
27
28
|
* Type for HTML pattern transformation handlers
|
|
28
29
|
*/
|
|
29
|
-
export type PatternHandler = (element: Element) =>
|
|
30
|
+
export type PatternHandler = (element: Element) => unknown;
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
33
|
* Strict mode: throw on unregistered components
|
|
@@ -77,7 +78,7 @@ export class ComponentTransformer {
|
|
|
77
78
|
throw new Error(`Component class '${tagName}' must have a static 'version' property`);
|
|
78
79
|
}
|
|
79
80
|
|
|
80
|
-
if (typeof (componentClass as
|
|
81
|
+
if (typeof (componentClass as { fromJson?: unknown }).fromJson !== 'function') {
|
|
81
82
|
throw new Error(`Component class '${tagName}' must implement static 'fromJson' method`);
|
|
82
83
|
}
|
|
83
84
|
|
|
@@ -85,12 +86,12 @@ export class ComponentTransformer {
|
|
|
85
86
|
console.warn(`Component '${tagName}' is already registered. Overwriting existing registration.`);
|
|
86
87
|
}
|
|
87
88
|
|
|
88
|
-
console.log(`TEST: Registering component: ${tagName} (version ${version})`);
|
|
89
89
|
componentRegistry.set(tagName, componentClass);
|
|
90
90
|
|
|
91
91
|
// Register HTML patterns if component supports them
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
const classWithPatterns = componentClass as SerializableConstructor & { registerPatternHandlers?: (transformer: typeof ComponentTransformer) => void };
|
|
93
|
+
if (typeof classWithPatterns.registerPatternHandlers === 'function') {
|
|
94
|
+
classWithPatterns.registerPatternHandlers(ComponentTransformer);
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
97
|
|
|
@@ -100,7 +101,7 @@ export class ComponentTransformer {
|
|
|
100
101
|
* In legacy mode: uses fallback tag for unregistered components/html/text
|
|
101
102
|
*/
|
|
102
103
|
static serialize(node: ReactNode | ReactNode[]): string {
|
|
103
|
-
const serializedData = ComponentTransformer.serializeNode(node
|
|
104
|
+
const serializedData = ComponentTransformer.serializeNode(node);
|
|
104
105
|
return JSON.stringify(serializedData);
|
|
105
106
|
}
|
|
106
107
|
|
|
@@ -123,20 +124,20 @@ export class ComponentTransformer {
|
|
|
123
124
|
}
|
|
124
125
|
|
|
125
126
|
if (input == null) return null;
|
|
126
|
-
return ComponentTransformer.deserializeData(input
|
|
127
|
+
return ComponentTransformer.deserializeData(input);
|
|
127
128
|
}
|
|
128
129
|
|
|
129
130
|
/**
|
|
130
131
|
* Type guard for serialized component schema objects
|
|
131
|
-
* Requires: { tagName: string; version: string; data:
|
|
132
|
+
* Requires: { tagName: string; version: string; data: unknown }
|
|
132
133
|
* Optional: key?: string
|
|
133
134
|
*/
|
|
134
|
-
private static isSerializedComponent(obj:
|
|
135
|
+
private static isSerializedComponent(obj: unknown): obj is { tagName: string; version: string; data: unknown; key?: string } {
|
|
135
136
|
return !!obj
|
|
136
137
|
&& typeof obj === 'object'
|
|
137
|
-
&& typeof (obj as
|
|
138
|
-
&& typeof (obj as
|
|
139
|
-
&& 'data' in
|
|
138
|
+
&& typeof (obj as { tagName?: string }).tagName === 'string'
|
|
139
|
+
&& typeof (obj as { version?: string }).version === 'string'
|
|
140
|
+
&& 'data' in obj;
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
/**
|
|
@@ -144,7 +145,7 @@ export class ComponentTransformer {
|
|
|
144
145
|
* @param data - Data to deserialize
|
|
145
146
|
* @returns React node(s)
|
|
146
147
|
*/
|
|
147
|
-
private static deserializeData(data:
|
|
148
|
+
private static deserializeData(data: unknown): ReactNode | ReactNode[] {
|
|
148
149
|
if (data == null) return null;
|
|
149
150
|
|
|
150
151
|
// Arrays: map recursively
|
|
@@ -178,8 +179,21 @@ export class ComponentTransformer {
|
|
|
178
179
|
}
|
|
179
180
|
}
|
|
180
181
|
|
|
182
|
+
// Handle primitives that are valid React children
|
|
183
|
+
if (typeof data === 'string' || typeof data === 'number' || typeof data === 'boolean') {
|
|
184
|
+
return data;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// For objects, we can't render them directly
|
|
181
188
|
console.warn(`TEST: Unrecognized data:`, data);
|
|
182
|
-
|
|
189
|
+
|
|
190
|
+
// In development, show debug info; in production, return null
|
|
191
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
192
|
+
const displayText = typeof data === 'object' ? JSON.stringify(data, null, 2) : String(data);
|
|
193
|
+
return React.createElement(SafeSpan, { html: `<pre>${displayText}</pre>` });
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return null;
|
|
183
197
|
}
|
|
184
198
|
|
|
185
199
|
/**
|
|
@@ -187,7 +201,7 @@ export class ComponentTransformer {
|
|
|
187
201
|
* @param node - React node to serialize
|
|
188
202
|
* @returns Serializable data structure { tagName, version, data }
|
|
189
203
|
*/
|
|
190
|
-
private static serializeNode(node:
|
|
204
|
+
private static serializeNode(node: unknown): unknown {
|
|
191
205
|
if (node == null) return null;
|
|
192
206
|
|
|
193
207
|
// Handle arrays of nodes (produce array of schema objects/null)
|
|
@@ -210,15 +224,12 @@ export class ComponentTransformer {
|
|
|
210
224
|
if (typeof componentType === 'function') {
|
|
211
225
|
const tagName = ComponentTransformer.findTagNameForComponent(componentType);
|
|
212
226
|
if (tagName) {
|
|
213
|
-
console.log(`TEST: Serializing component instance of ${tagName}:`, element.props);
|
|
214
227
|
const componentClass = componentRegistry.get(tagName)!;
|
|
215
228
|
|
|
216
|
-
let serializedData:
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
console.log(`TEST: Serializing via component toJson method ${tagName}:`, element.props);
|
|
221
|
-
serializedData = (componentClass as any).toJson(element.props);
|
|
229
|
+
let serializedData: unknown = null;
|
|
230
|
+
const classWithToJson = componentClass as SerializableConstructor & { toJson?: (props: unknown) => unknown };
|
|
231
|
+
if (typeof classWithToJson.toJson === 'function') {
|
|
232
|
+
serializedData = classWithToJson.toJson(element.props);
|
|
222
233
|
}
|
|
223
234
|
|
|
224
235
|
if (serializedData !== null) {
|
|
@@ -231,12 +242,13 @@ export class ComponentTransformer {
|
|
|
231
242
|
...key,
|
|
232
243
|
...serializedData
|
|
233
244
|
};
|
|
234
|
-
|
|
245
|
+
|
|
235
246
|
return result;
|
|
236
247
|
}
|
|
237
248
|
} else if (strictMode) {
|
|
238
249
|
// In strict mode, throw if we can't find a tag name for the component
|
|
239
|
-
const
|
|
250
|
+
const typeWithName = componentType as { displayName?: string; name?: string };
|
|
251
|
+
const componentName = typeWithName.displayName || typeWithName.name || 'Unknown';
|
|
240
252
|
throw new Error(`Unregistered component '${componentName}' cannot be serialized in strict mode`);
|
|
241
253
|
}
|
|
242
254
|
}
|
|
@@ -251,8 +263,7 @@ export class ComponentTransformer {
|
|
|
251
263
|
version: FALLBACK_VERSION,
|
|
252
264
|
data: ReactNodeTransformer.serialize(node)
|
|
253
265
|
};
|
|
254
|
-
|
|
255
|
-
console.log(`TEST: Component Registry:`, componentRegistry);
|
|
266
|
+
|
|
256
267
|
return result;
|
|
257
268
|
}
|
|
258
269
|
|
|
@@ -261,7 +272,7 @@ export class ComponentTransformer {
|
|
|
261
272
|
* @param data - Serialized data from ReactNodeTransformer
|
|
262
273
|
* @returns React node
|
|
263
274
|
*/
|
|
264
|
-
private static deserializeUnregisteredComponent(data:
|
|
275
|
+
private static deserializeUnregisteredComponent(data: unknown): ReactNode {
|
|
265
276
|
return ReactNodeTransformer.deserialize(data);
|
|
266
277
|
}
|
|
267
278
|
|
|
@@ -270,7 +281,7 @@ export class ComponentTransformer {
|
|
|
270
281
|
* @param componentType - Component constructor function
|
|
271
282
|
* @returns Tag name or null if not found
|
|
272
283
|
*/
|
|
273
|
-
private static findTagNameForComponent(componentType:
|
|
284
|
+
private static findTagNameForComponent(componentType: unknown): string | null {
|
|
274
285
|
// Direct constructor match
|
|
275
286
|
for (const [tagName, registeredClass] of componentRegistry.entries()) {
|
|
276
287
|
if (registeredClass === componentType) return tagName;
|
|
@@ -21,7 +21,7 @@ export class ReactNodeTransformer {
|
|
|
21
21
|
* @param node - React node to serialize
|
|
22
22
|
* @returns Serializable data structure
|
|
23
23
|
*/
|
|
24
|
-
static serialize(node: ReactNode):
|
|
24
|
+
static serialize(node: ReactNode): unknown {
|
|
25
25
|
if (node === null || node === undefined) {
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
@@ -45,9 +45,8 @@ export class ReactNodeTransformer {
|
|
|
45
45
|
// Handle React elements
|
|
46
46
|
if (isValidElement(node)) {
|
|
47
47
|
const element = node as ReactElement;
|
|
48
|
-
console.log(`TEST: isValidElement:`, element);
|
|
49
48
|
|
|
50
|
-
const comp:
|
|
49
|
+
const comp: unknown = element.type;
|
|
51
50
|
const rawName =
|
|
52
51
|
typeof comp === 'string'
|
|
53
52
|
? comp
|
|
@@ -70,7 +69,7 @@ export class ReactNodeTransformer {
|
|
|
70
69
|
// Handle plain objects
|
|
71
70
|
if (typeof node === 'object' && node !== null) {
|
|
72
71
|
try {
|
|
73
|
-
const serialized:
|
|
72
|
+
const serialized: unknown = { type: 'object', data: {} };
|
|
74
73
|
for (const [key, value] of Object.entries(node)) {
|
|
75
74
|
serialized.data[key] = ReactNodeTransformer.serialize(value);
|
|
76
75
|
}
|
|
@@ -95,7 +94,7 @@ export class ReactNodeTransformer {
|
|
|
95
94
|
* @param data - Data to deserialize
|
|
96
95
|
* @returns React node
|
|
97
96
|
*/
|
|
98
|
-
static deserialize(data:
|
|
97
|
+
static deserialize(data: unknown): ReactNode {
|
|
99
98
|
if (data === null || data === undefined) {
|
|
100
99
|
return null;
|
|
101
100
|
}
|
|
@@ -110,19 +109,20 @@ export class ReactNodeTransformer {
|
|
|
110
109
|
return data.value;
|
|
111
110
|
|
|
112
111
|
case 'array':
|
|
113
|
-
return data.children?.map((child:
|
|
112
|
+
return data.children?.map((child: unknown) => ReactNodeTransformer.deserialize(child)) || [];
|
|
114
113
|
|
|
115
114
|
case 'react-element':
|
|
116
115
|
return ReactNodeTransformer.deserializeReactElement(data);
|
|
117
116
|
|
|
118
|
-
case 'object':
|
|
119
|
-
const result:
|
|
117
|
+
case 'object': {
|
|
118
|
+
const result: Record<string, unknown> = {};
|
|
120
119
|
if (data.data && typeof data.data === 'object') {
|
|
121
120
|
for (const [key, value] of Object.entries(data.data)) {
|
|
122
121
|
result[key] = ReactNodeTransformer.deserialize(value);
|
|
123
122
|
}
|
|
124
123
|
}
|
|
125
124
|
return result;
|
|
125
|
+
}
|
|
126
126
|
|
|
127
127
|
default:
|
|
128
128
|
return String(data.value || data);
|
|
@@ -143,12 +143,12 @@ export class ReactNodeTransformer {
|
|
|
143
143
|
* @param props - Props object to serialize
|
|
144
144
|
* @returns Serialized props
|
|
145
145
|
*/
|
|
146
|
-
private static serializeProps(props:
|
|
146
|
+
private static serializeProps(props: unknown): unknown {
|
|
147
147
|
if (!props || typeof props !== 'object') {
|
|
148
148
|
return props;
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
const serialized:
|
|
151
|
+
const serialized: Record<string, unknown> = {};
|
|
152
152
|
for (const [key, value] of Object.entries(props)) {
|
|
153
153
|
if (key === 'children') {
|
|
154
154
|
// Special handling for children prop
|
|
@@ -169,14 +169,15 @@ export class ReactNodeTransformer {
|
|
|
169
169
|
* @param data - Serialized React element data
|
|
170
170
|
* @returns React element or fallback content
|
|
171
171
|
*/
|
|
172
|
-
private static deserializeReactElement(data:
|
|
173
|
-
const { elementType
|
|
172
|
+
private static deserializeReactElement(data: unknown): ReactNode {
|
|
173
|
+
const typedData = data as { elementType?: string; props?: unknown; key?: string };
|
|
174
|
+
const { elementType, props, key } = typedData;
|
|
174
175
|
|
|
175
176
|
try {
|
|
176
177
|
// Handle HTML elements
|
|
177
178
|
if (typeof elementType === 'string') {
|
|
178
|
-
const deserializedProps = ReactNodeTransformer.deserializeProps(props)
|
|
179
|
-
|
|
179
|
+
const deserializedProps = ReactNodeTransformer.deserializeProps(props) as Record<string, unknown>;
|
|
180
|
+
|
|
180
181
|
return createElement(elementType, { key, ...deserializedProps });
|
|
181
182
|
}
|
|
182
183
|
} catch (error) {
|
|
@@ -192,12 +193,12 @@ export class ReactNodeTransformer {
|
|
|
192
193
|
* @param props - Serialized props object
|
|
193
194
|
* @returns Deserialized props
|
|
194
195
|
*/
|
|
195
|
-
private static deserializeProps(props:
|
|
196
|
+
private static deserializeProps(props: unknown): unknown {
|
|
196
197
|
if (!props || typeof props !== 'object') {
|
|
197
198
|
return props;
|
|
198
199
|
}
|
|
199
200
|
|
|
200
|
-
const deserialized:
|
|
201
|
+
const deserialized: Record<string, unknown> = {};
|
|
201
202
|
for (const [key, value] of Object.entries(props)) {
|
|
202
203
|
if (key === 'children') {
|
|
203
204
|
// Special handling for children prop
|
|
@@ -215,7 +216,7 @@ export class ReactNodeTransformer {
|
|
|
215
216
|
* @param props - Props object
|
|
216
217
|
* @returns Text content or null
|
|
217
218
|
*/
|
|
218
|
-
private static extractTextContent(props:
|
|
219
|
+
private static extractTextContent(props: unknown): string | null {
|
|
219
220
|
if (!props) return null;
|
|
220
221
|
|
|
221
222
|
if (typeof props.children === 'string') {
|
|
@@ -23,7 +23,6 @@ import { SwitchInputField } from '../../components/input/SwitchInputField';
|
|
|
23
23
|
import { TextInputField } from '../../components/input/TextInputField';
|
|
24
24
|
import { GridCell } from '../../components/layout/GridCell';
|
|
25
25
|
import { GridLayout } from '../../components/layout/GridLayout';
|
|
26
|
-
import { ComponentTransformer } from './ComponentTransformer';
|
|
27
26
|
|
|
28
27
|
/**
|
|
29
28
|
* Register all serializable components with the ComponentTransformer
|
|
@@ -32,41 +31,46 @@ import { ComponentTransformer } from './ComponentTransformer';
|
|
|
32
31
|
* Phase 0: Foundation in place - ready for component migration
|
|
33
32
|
* Phase 1+: Components will be migrated to createSerializableView factory
|
|
34
33
|
*/
|
|
34
|
+
import { ComponentTransformer } from './ComponentTransformer';
|
|
35
|
+
|
|
35
36
|
export function registerSerializableComponents(): void {
|
|
37
|
+
// Type for serializable components
|
|
38
|
+
type SerializableComponent = { tagName: string; version: string; fromJson: (data: unknown) => React.ReactElement };
|
|
39
|
+
|
|
36
40
|
// Register Container component - Base layout component with child serialization support
|
|
37
|
-
ComponentTransformer.registerComponent(Container as
|
|
41
|
+
ComponentTransformer.registerComponent(Container as unknown as SerializableComponent);
|
|
38
42
|
|
|
39
43
|
// Register Code component - First production component with serialization support
|
|
40
|
-
ComponentTransformer.registerComponent(Code as
|
|
41
|
-
|
|
44
|
+
ComponentTransformer.registerComponent(Code as unknown as SerializableComponent);
|
|
45
|
+
|
|
42
46
|
// Register Section component - Layout container component with child serialization support
|
|
43
|
-
ComponentTransformer.registerComponent(Section as
|
|
44
|
-
|
|
47
|
+
ComponentTransformer.registerComponent(Section as unknown as SerializableComponent);
|
|
48
|
+
|
|
45
49
|
// Register Button component - Interactive component with action serialization support
|
|
46
|
-
ComponentTransformer.registerComponent(Button as
|
|
47
|
-
|
|
50
|
+
ComponentTransformer.registerComponent(Button as unknown as SerializableComponent);
|
|
51
|
+
|
|
48
52
|
// Register Image component - Display component with comprehensive image handling and serialization support
|
|
49
|
-
ComponentTransformer.registerComponent(Image as
|
|
50
|
-
|
|
53
|
+
ComponentTransformer.registerComponent(Image as unknown as SerializableComponent);
|
|
54
|
+
|
|
51
55
|
// Register Text component - Typography component with comprehensive text styling and serialization support
|
|
52
|
-
ComponentTransformer.registerComponent(Text as
|
|
53
|
-
|
|
56
|
+
ComponentTransformer.registerComponent(Text as unknown as SerializableComponent);
|
|
57
|
+
|
|
54
58
|
// Register HeroBlock component - Full-width hero section with nested component serialization support
|
|
55
|
-
ComponentTransformer.registerComponent(HeroBlock as
|
|
56
|
-
|
|
59
|
+
ComponentTransformer.registerComponent(HeroBlock as unknown as SerializableComponent);
|
|
60
|
+
|
|
57
61
|
// Register GridLayout component - Flexible grid layout with nested component serialization support
|
|
58
|
-
ComponentTransformer.registerComponent(GridLayout as
|
|
59
|
-
|
|
62
|
+
ComponentTransformer.registerComponent(GridLayout as unknown as SerializableComponent);
|
|
63
|
+
|
|
60
64
|
// Register GridCell component - Grid cell wrapper with nested component serialization support
|
|
61
|
-
ComponentTransformer.registerComponent(GridCell as
|
|
62
|
-
|
|
65
|
+
ComponentTransformer.registerComponent(GridCell as unknown as SerializableComponent);
|
|
66
|
+
|
|
63
67
|
// Register Form Components - Complete form field components with serialization support
|
|
64
|
-
ComponentTransformer.registerComponent(TextInputField as
|
|
65
|
-
ComponentTransformer.registerComponent(SelectInputField as
|
|
66
|
-
ComponentTransformer.registerComponent(HtmlInputField as
|
|
67
|
-
ComponentTransformer.registerComponent(ChoiceInputField as
|
|
68
|
-
ComponentTransformer.registerComponent(SwitchInputField as
|
|
69
|
-
ComponentTransformer.registerComponent(FormBlock as
|
|
68
|
+
ComponentTransformer.registerComponent(TextInputField as unknown as SerializableComponent);
|
|
69
|
+
ComponentTransformer.registerComponent(SelectInputField as unknown as SerializableComponent);
|
|
70
|
+
ComponentTransformer.registerComponent(HtmlInputField as unknown as SerializableComponent);
|
|
71
|
+
ComponentTransformer.registerComponent(ChoiceInputField as unknown as SerializableComponent);
|
|
72
|
+
ComponentTransformer.registerComponent(SwitchInputField as unknown as SerializableComponent);
|
|
73
|
+
ComponentTransformer.registerComponent(FormBlock as unknown as SerializableComponent);
|
|
70
74
|
|
|
71
75
|
// Future components will be registered here as they implement Serializable
|
|
72
76
|
// etc.
|
|
@@ -19,7 +19,7 @@ export interface Serializable {
|
|
|
19
19
|
* Convert component instance to JSON data
|
|
20
20
|
* @returns Serializable data structure
|
|
21
21
|
*/
|
|
22
|
-
toJson():
|
|
22
|
+
toJson(): unknown;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/**
|
|
@@ -45,7 +45,7 @@ export interface SerializableConstructor {
|
|
|
45
45
|
* @param jsonData - Serialized component data
|
|
46
46
|
* @returns React element representing the component
|
|
47
47
|
*/
|
|
48
|
-
fromJson(jsonData:
|
|
48
|
+
fromJson(jsonData: unknown): ReactElement;
|
|
49
49
|
|
|
50
|
-
new (...args:
|
|
50
|
+
new (...args: unknown[]): Serializable;
|
|
51
51
|
}
|
package/src/setupTests.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
// Jest setup for QwickApps Theme System tests
|
|
2
2
|
import '@testing-library/jest-dom';
|
|
3
3
|
|
|
4
|
+
// Mock paletteLoader to avoid import.meta.env issues in Jest
|
|
5
|
+
jest.mock('./utils/paletteLoader', () => ({
|
|
6
|
+
loadPalette: jest.fn().mockResolvedValue(undefined),
|
|
7
|
+
loadPaletteSync: jest.fn(),
|
|
8
|
+
isPaletteLoaded: jest.fn().mockReturnValue(true),
|
|
9
|
+
getLoadedPalettes: jest.fn().mockReturnValue([]),
|
|
10
|
+
preloadPalettes: jest.fn().mockResolvedValue(undefined),
|
|
11
|
+
}));
|
|
12
|
+
|
|
4
13
|
// Mock CSS imports for components
|
|
5
14
|
jest.mock('./components/QwickApp.css', () => ({}));
|
|
6
15
|
jest.mock('./components/Logo.css', () => ({}));
|
|
@@ -58,7 +58,7 @@ function MyApp() {
|
|
|
58
58
|
<ProductCard dataSource="products.featured" />
|
|
59
59
|
</QwickApp></code></pre>
|
|
60
60
|
|
|
61
|
-
<p>You can also use inline code like <code>console.
|
|
61
|
+
<p>You can also use inline code like <code>console.debug('hello')</code> within paragraphs.</p>
|
|
62
62
|
|
|
63
63
|
<h2>Complex Multi-line Code</h2>
|
|
64
64
|
<code>
|
|
@@ -197,7 +197,7 @@ export const FeatureGrid: Story = {
|
|
|
197
197
|
|
|
198
198
|
export const CustomRenderFunction: Story = {
|
|
199
199
|
render: () => {
|
|
200
|
-
const customRenderItem = (item:
|
|
200
|
+
const customRenderItem = (item: { id?: string; title?: string; description?: string }, index: number) => (
|
|
201
201
|
<Box
|
|
202
202
|
key={item.id || index}
|
|
203
203
|
sx={{
|
|
@@ -198,12 +198,12 @@ function InteractiveChoiceExample({
|
|
|
198
198
|
const newOptions = [...options];
|
|
199
199
|
newOptions[optionIndex] = value;
|
|
200
200
|
setOptions(newOptions);
|
|
201
|
-
console.
|
|
201
|
+
console.debug('Option changed:', { optionIndex, value, allOptions: newOptions });
|
|
202
202
|
};
|
|
203
203
|
|
|
204
204
|
const handleAddOption = () => {
|
|
205
205
|
setOptions([...options, '']);
|
|
206
|
-
console.
|
|
206
|
+
console.debug('Added new option, total:', options.length + 1);
|
|
207
207
|
};
|
|
208
208
|
|
|
209
209
|
return (
|
|
@@ -4,12 +4,11 @@
|
|
|
4
4
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { Box, Divider, Typography } from '@mui/material';
|
|
8
8
|
import { JsonDataProvider } from '@qwickapps/schema';
|
|
9
9
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
10
10
|
import { Code } from '../components/blocks';
|
|
11
11
|
import QwickApp from '../components/QwickApp';
|
|
12
|
-
import { ComponentTransformer } from '../schemas/transformers/ComponentTransformer';
|
|
13
12
|
import { makeSerializationStory } from './_templates/SerializationTemplate';
|
|
14
13
|
|
|
15
14
|
// Sample code content for different languages
|
|
@@ -661,7 +660,7 @@ export const SerializationDemo: Story = {
|
|
|
661
660
|
wrapLines={false}
|
|
662
661
|
codeBackground="linear-gradient(135deg, #667eea20, #764ba220)"
|
|
663
662
|
sx={{ mb: 2, border: "1px solid #ddd" }}
|
|
664
|
-
onClick={(
|
|
663
|
+
onClick={() => { console.log("Code component clicked!"); }}
|
|
665
664
|
role="region"
|
|
666
665
|
aria-label="TypeScript code demonstration"
|
|
667
666
|
data-testid="serializable-code-block"
|