@qwickapps/react-framework 1.4.9 → 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 +23 -0
- 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 +3980 -2194
- package/dist/index.js +4006 -2191
- 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 +20 -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 +13 -16
- package/src/components/Logo.tsx +42 -29
- package/src/components/Markdown.tsx +9 -9
- package/src/components/ProductLogo.tsx +118 -0
- package/src/components/QwickApp.css +37 -1060
- package/src/components/QwickApp.tsx +1 -1
- package/src/components/QwickAppsLogo.tsx +1 -1
- package/src/components/ResponsiveMenu.tsx +1 -1
- package/src/components/SafeSpan.tsx +8 -8
- package/src/components/Scaffold.tsx +55 -25
- 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 +213 -69
- 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 +14 -9
- package/src/components/blocks/FeatureCard.tsx +16 -11
- package/src/components/blocks/FeatureGrid.tsx +13 -8
- package/src/components/blocks/Footer.tsx +25 -16
- package/src/components/blocks/HeroBlock.tsx +12 -13
- package/src/components/blocks/Image.tsx +16 -8
- package/src/components/blocks/PageBannerHeader.tsx +15 -11
- package/src/components/blocks/ProductCard.tsx +32 -25
- package/src/components/blocks/Section.tsx +21 -13
- package/src/components/blocks/Text.tsx +26 -11
- package/src/components/buttons/Button.tsx +18 -112
- 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/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 +2 -1
- 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/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 +6 -6
- package/src/schemas/transformers/ComponentTransformer.ts +37 -20
- package/src/schemas/transformers/ReactNodeTransformer.ts +18 -16
- 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/CardListGrid.stories.tsx +1 -1
- 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 -57
- 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 -22
- 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
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* FeatureCard Component - Unified feature card with data binding support
|
|
3
5
|
*
|
|
@@ -153,8 +155,8 @@ function FeatureCardView({
|
|
|
153
155
|
onClick: onClick || (() => {})
|
|
154
156
|
}] : []);
|
|
155
157
|
|
|
156
|
-
const handleClick = onClick || htmlProps
|
|
157
|
-
const { onClick:
|
|
158
|
+
const handleClick = onClick || htmlProps?.onClick;
|
|
159
|
+
const { onClick: _htmlOnClick, ...filteredHtmlProps } = htmlProps || {};
|
|
158
160
|
|
|
159
161
|
return (
|
|
160
162
|
<Paper
|
|
@@ -256,22 +258,25 @@ function FeatureCardView({
|
|
|
256
258
|
*/
|
|
257
259
|
function FeatureCard(props: FeatureCardProps) {
|
|
258
260
|
const { dataSource, bindingOptions, ...restProps } = props;
|
|
259
|
-
|
|
261
|
+
|
|
260
262
|
// Mark as QwickApp component
|
|
261
|
-
(FeatureCard as
|
|
263
|
+
(FeatureCard as Record<string, unknown>)[QWICKAPP_COMPONENT] = true;
|
|
264
|
+
|
|
265
|
+
// Always call hooks unconditionally
|
|
266
|
+
const bindingResult = useDataBinding<FeatureCardModel>(
|
|
267
|
+
dataSource || '',
|
|
268
|
+
restProps as Partial<FeatureCardModel>,
|
|
269
|
+
FeatureCardModel.getSchema(),
|
|
270
|
+
{ cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
|
|
271
|
+
);
|
|
262
272
|
|
|
263
273
|
// If no dataSource, use traditional props
|
|
264
274
|
if (!dataSource) {
|
|
265
275
|
return <FeatureCardView {...restProps} />;
|
|
266
276
|
}
|
|
267
277
|
|
|
268
|
-
// Use data binding
|
|
269
|
-
const {
|
|
270
|
-
dataSource,
|
|
271
|
-
restProps as Partial<FeatureCardModel>,
|
|
272
|
-
FeatureCardModel.getSchema(),
|
|
273
|
-
{ cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
|
|
274
|
-
);
|
|
278
|
+
// Use data binding result
|
|
279
|
+
const { loading, error, ...featureProps } = bindingResult;
|
|
275
280
|
|
|
276
281
|
// Show loading state
|
|
277
282
|
if (loading) {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* FeatureGrid Component - Responsive grid for showcasing features with data binding support
|
|
3
5
|
*
|
|
@@ -62,7 +64,7 @@ function FeatureGridView({
|
|
|
62
64
|
const { styleProps, htmlProps } = useBaseProps(restProps);
|
|
63
65
|
|
|
64
66
|
// Mark as QwickApp component
|
|
65
|
-
(FeatureGridView as
|
|
67
|
+
(FeatureGridView as Record<string, unknown>)[QWICKAPP_COMPONENT] = true;
|
|
66
68
|
|
|
67
69
|
// Map gap to spacing value for GridLayout
|
|
68
70
|
const getSpacing = (): 'none' | 'tiny' | 'small' | 'medium' | 'large' | 'huge' => {
|
|
@@ -90,18 +92,21 @@ function FeatureGridView({
|
|
|
90
92
|
function FeatureGrid(props: FeatureGridProps) {
|
|
91
93
|
const { dataSource, bindingOptions, ...restProps } = props;
|
|
92
94
|
|
|
95
|
+
// Always call hooks unconditionally
|
|
96
|
+
const bindingResult = useDataBinding<FeatureGridModel>(
|
|
97
|
+
dataSource || '',
|
|
98
|
+
restProps as Partial<FeatureGridModel>,
|
|
99
|
+
FeatureGridModel.getSchema(),
|
|
100
|
+
{ cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
|
|
101
|
+
);
|
|
102
|
+
|
|
93
103
|
// If no dataSource, use traditional props
|
|
94
104
|
if (!dataSource) {
|
|
95
105
|
return <FeatureGridView {...restProps} />;
|
|
96
106
|
}
|
|
97
107
|
|
|
98
|
-
// Use data binding
|
|
99
|
-
const {
|
|
100
|
-
dataSource,
|
|
101
|
-
restProps as Partial<FeatureGridModel>,
|
|
102
|
-
FeatureGridModel.getSchema(),
|
|
103
|
-
{ cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
|
|
104
|
-
);
|
|
108
|
+
// Use data binding result
|
|
109
|
+
const { loading, error, ...featureGridProps } = bindingResult;
|
|
105
110
|
|
|
106
111
|
// Show loading state
|
|
107
112
|
if (loading) {
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Footer - Reusable footer component with flexible layout options
|
|
3
|
-
*
|
|
5
|
+
*
|
|
4
6
|
* Provides a clean footer layout with:
|
|
5
7
|
* - Configurable orientation (vertical/horizontal)
|
|
6
8
|
* - Optional logo/branding
|
|
7
9
|
* - Multiple sections for links, text, or custom content
|
|
8
10
|
* - Responsive design with MUI components
|
|
9
11
|
* - Copyright and legal information support
|
|
10
|
-
*
|
|
12
|
+
*
|
|
11
13
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
12
14
|
*/
|
|
13
15
|
|
|
@@ -52,8 +54,8 @@ interface FooterViewProps extends WithBaseProps {
|
|
|
52
54
|
sections?: FooterSection[];
|
|
53
55
|
/** Optional logo or branding element */
|
|
54
56
|
logo?: React.ReactNode;
|
|
55
|
-
/** Copyright text */
|
|
56
|
-
copyright?: string;
|
|
57
|
+
/** Copyright text or custom React element */
|
|
58
|
+
copyright?: string | React.ReactNode;
|
|
57
59
|
/** Additional legal or info text */
|
|
58
60
|
legalText?: string;
|
|
59
61
|
/** Layout orientation */
|
|
@@ -64,7 +66,7 @@ interface FooterViewProps extends WithBaseProps {
|
|
|
64
66
|
showDivider?: boolean;
|
|
65
67
|
}
|
|
66
68
|
|
|
67
|
-
export interface FooterProps extends FooterViewProps, WithDataBinding {
|
|
69
|
+
export interface FooterProps extends FooterViewProps, WithDataBinding {}
|
|
68
70
|
|
|
69
71
|
function FooterView({
|
|
70
72
|
sections = [],
|
|
@@ -79,7 +81,7 @@ function FooterView({
|
|
|
79
81
|
const { gridProps, styleProps, htmlProps } = useBaseProps(restProps);
|
|
80
82
|
|
|
81
83
|
// Mark as QwickApp component
|
|
82
|
-
(FooterView as
|
|
84
|
+
(FooterView as Record<string, unknown>)[QWICKAPP_COMPONENT] = true;
|
|
83
85
|
const theme = useTheme();
|
|
84
86
|
const isMobile = useMediaQuery(theme.breakpoints.down('md'));
|
|
85
87
|
|
|
@@ -263,9 +265,13 @@ function FooterView({
|
|
|
263
265
|
}}
|
|
264
266
|
>
|
|
265
267
|
{copyright && (
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
268
|
+
typeof copyright === 'string' ? (
|
|
269
|
+
<Text variant="caption" customColor='var(--theme-text-secondary)'>
|
|
270
|
+
{copyright}
|
|
271
|
+
</Text>
|
|
272
|
+
) : (
|
|
273
|
+
copyright
|
|
274
|
+
)
|
|
269
275
|
)}
|
|
270
276
|
{legalText && (
|
|
271
277
|
<Text variant="caption" customColor="var(--theme-text-secondary)">
|
|
@@ -283,18 +289,21 @@ function FooterView({
|
|
|
283
289
|
function Footer(props: FooterProps) {
|
|
284
290
|
const { dataSource, bindingOptions, ...restProps } = props;
|
|
285
291
|
|
|
292
|
+
// Always call hooks unconditionally
|
|
293
|
+
const bindingResult = useDataBinding<FooterModel>(
|
|
294
|
+
dataSource || '',
|
|
295
|
+
restProps as Partial<FooterModel>,
|
|
296
|
+
FooterModel.getSchema(),
|
|
297
|
+
{ cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
|
|
298
|
+
);
|
|
299
|
+
|
|
286
300
|
// If no dataSource, use traditional props
|
|
287
301
|
if (!dataSource) {
|
|
288
302
|
return <FooterView {...restProps} />;
|
|
289
303
|
}
|
|
290
304
|
|
|
291
|
-
// Use data binding
|
|
292
|
-
const {
|
|
293
|
-
dataSource,
|
|
294
|
-
restProps as Partial<FooterModel>,
|
|
295
|
-
FooterModel.getSchema(),
|
|
296
|
-
{ cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
|
|
297
|
-
);
|
|
305
|
+
// Use data binding result
|
|
306
|
+
const { loading, error, ...footerProps } = bindingResult;
|
|
298
307
|
|
|
299
308
|
// Show loading state
|
|
300
309
|
if (loading) {
|
|
@@ -19,11 +19,12 @@
|
|
|
19
19
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
import { Box, Container, Stack,
|
|
22
|
+
import { Box, Container, Stack, useTheme } from '@mui/material';
|
|
23
23
|
import React from 'react';
|
|
24
24
|
import { createSerializableView, SerializableComponent } from '../shared/createSerializableView';
|
|
25
25
|
import { ViewProps } from '../shared/viewProps';
|
|
26
26
|
import { Button, ButtonProps } from '../buttons/Button';
|
|
27
|
+
import Text from './Text';
|
|
27
28
|
|
|
28
29
|
/**
|
|
29
30
|
* Props interface for HeroBlock component - extends ViewProps
|
|
@@ -68,7 +69,7 @@ function HeroBlockView({
|
|
|
68
69
|
overlayOpacity = 0.5,
|
|
69
70
|
gridProps,
|
|
70
71
|
...props
|
|
71
|
-
}: HeroBlockProps & { gridProps?:
|
|
72
|
+
}: HeroBlockProps & { gridProps?: unknown }) {
|
|
72
73
|
const theme = useTheme();
|
|
73
74
|
|
|
74
75
|
// Map height variants to actual heights
|
|
@@ -107,10 +108,6 @@ function HeroBlockView({
|
|
|
107
108
|
|
|
108
109
|
// Get text color based on background
|
|
109
110
|
const getTextColor = () => {
|
|
110
|
-
if (backgroundImage || backgroundGradient) {
|
|
111
|
-
return '#ffffff'; // White text on images/gradients
|
|
112
|
-
}
|
|
113
|
-
|
|
114
111
|
switch (backgroundColor) {
|
|
115
112
|
case 'primary':
|
|
116
113
|
return theme.palette.primary.contrastText;
|
|
@@ -127,7 +124,7 @@ function HeroBlockView({
|
|
|
127
124
|
<Box
|
|
128
125
|
component="section"
|
|
129
126
|
{...props}
|
|
130
|
-
{...(gridProps
|
|
127
|
+
{...(gridProps ? { 'data-grid': JSON.stringify(gridProps) } : {})}
|
|
131
128
|
sx={{
|
|
132
129
|
position: 'relative',
|
|
133
130
|
display: 'flex',
|
|
@@ -172,9 +169,10 @@ function HeroBlockView({
|
|
|
172
169
|
>
|
|
173
170
|
<Stack spacing={3} alignItems={textAlign === 'center' ? 'center' : textAlign === 'right' ? 'flex-end' : 'flex-start'}>
|
|
174
171
|
{/* Title */}
|
|
175
|
-
<
|
|
172
|
+
<Text
|
|
176
173
|
variant="h2"
|
|
177
174
|
component="h1"
|
|
175
|
+
customColor='var(--theme-on-primary)'
|
|
178
176
|
sx={{
|
|
179
177
|
fontWeight: 700,
|
|
180
178
|
fontSize: {
|
|
@@ -188,21 +186,22 @@ function HeroBlockView({
|
|
|
188
186
|
}}
|
|
189
187
|
>
|
|
190
188
|
{title}
|
|
191
|
-
</
|
|
189
|
+
</Text>
|
|
192
190
|
|
|
193
191
|
{/* Subtitle */}
|
|
194
192
|
{subtitle && (
|
|
195
|
-
<
|
|
193
|
+
<Text
|
|
196
194
|
variant="h5"
|
|
197
195
|
component="p"
|
|
196
|
+
customColor='var(--theme-on-primary)'
|
|
197
|
+
fontWeight='400'
|
|
198
198
|
sx={{
|
|
199
199
|
opacity: 0.9,
|
|
200
|
-
maxWidth: '600px'
|
|
201
|
-
fontWeight: 400,
|
|
200
|
+
maxWidth: '600px'
|
|
202
201
|
}}
|
|
203
202
|
>
|
|
204
203
|
{subtitle}
|
|
205
|
-
</
|
|
204
|
+
</Text>
|
|
206
205
|
)}
|
|
207
206
|
|
|
208
207
|
{/* Actions */}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Image - Comprehensive image display component with serialization support
|
|
3
|
-
*
|
|
5
|
+
*
|
|
4
6
|
* Features:
|
|
5
7
|
* - Responsive image handling with srcSet and sizes
|
|
6
8
|
* - Multiple fit modes and positioning options
|
|
@@ -9,14 +11,14 @@
|
|
|
9
11
|
* - Lazy loading support
|
|
10
12
|
* - Fallback image handling
|
|
11
13
|
* - Full serialization support via factory pattern
|
|
12
|
-
*
|
|
14
|
+
*
|
|
13
15
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
14
16
|
*/
|
|
15
17
|
|
|
16
|
-
import React, {
|
|
18
|
+
import React, { useState, useCallback } from 'react';
|
|
17
19
|
import { Box, Skeleton, Typography, useTheme } from '@mui/material';
|
|
18
20
|
import { BrokenImage as BrokenImageIcon } from '@mui/icons-material';
|
|
19
|
-
import
|
|
21
|
+
import { ImageFit, ImageLoading, ImagePosition } from '../../schemas/ImageSchema';
|
|
20
22
|
import { createSerializableView, SerializableComponent } from '../shared/createSerializableView';
|
|
21
23
|
import { ViewProps } from '../shared/viewProps';
|
|
22
24
|
|
|
@@ -221,13 +223,19 @@ export const Image: SerializableComponent<ImageProps> = createSerializableView<I
|
|
|
221
223
|
// Image component uses default react-children strategy
|
|
222
224
|
});
|
|
223
225
|
|
|
226
|
+
// Type for pattern registry with basic methods
|
|
227
|
+
interface PatternRegistry {
|
|
228
|
+
hasPattern(pattern: string): boolean;
|
|
229
|
+
registerPattern(pattern: string, handler: (element: Element) => unknown): void;
|
|
230
|
+
}
|
|
231
|
+
|
|
224
232
|
// Register HTML patterns that Image component can handle
|
|
225
|
-
(Image as
|
|
233
|
+
(Image as unknown as { registerPatternHandlers: (registry: PatternRegistry) => void }).registerPatternHandlers = (registry: PatternRegistry): void => {
|
|
226
234
|
// Register img elements
|
|
227
235
|
if (!registry.hasPattern('img')) {
|
|
228
236
|
registry.registerPattern('img', transformImage);
|
|
229
237
|
}
|
|
230
|
-
|
|
238
|
+
|
|
231
239
|
// Register figure elements with img
|
|
232
240
|
if (!registry.hasPattern('figure img')) {
|
|
233
241
|
registry.registerPattern('figure img', transformFigureImage);
|
|
@@ -235,7 +243,7 @@ export const Image: SerializableComponent<ImageProps> = createSerializableView<I
|
|
|
235
243
|
};
|
|
236
244
|
|
|
237
245
|
// Transform img elements to Image component
|
|
238
|
-
function transformImage(element: Element):
|
|
246
|
+
function transformImage(element: Element): unknown {
|
|
239
247
|
const src = element.getAttribute('src') || '';
|
|
240
248
|
const alt = element.getAttribute('alt') || '';
|
|
241
249
|
const width = element.getAttribute('width');
|
|
@@ -255,7 +263,7 @@ function transformImage(element: Element): any {
|
|
|
255
263
|
}
|
|
256
264
|
|
|
257
265
|
// Transform figure > img elements to Image component with caption support
|
|
258
|
-
function transformFigureImage(element: Element):
|
|
266
|
+
function transformFigureImage(element: Element): unknown {
|
|
259
267
|
const figure = element.closest('figure');
|
|
260
268
|
const figcaption = figure?.querySelector('figcaption');
|
|
261
269
|
const caption = figcaption?.textContent || '';
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* PageBannerHeader - Facebook-style banner header with cover image and profile info
|
|
3
|
-
*
|
|
5
|
+
*
|
|
4
6
|
* Similar to social media banners with:
|
|
5
7
|
* - Large cover/banner image background
|
|
6
8
|
* - Profile image overlay (typically bottom-left)
|
|
7
9
|
* - Info section with title, subtitle, and metadata
|
|
8
10
|
* - Action buttons in various positions
|
|
9
|
-
*
|
|
11
|
+
*
|
|
10
12
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
11
13
|
*/
|
|
12
14
|
|
|
@@ -26,7 +28,7 @@ import {
|
|
|
26
28
|
} from '@mui/material';
|
|
27
29
|
import { WithDataBinding, SchemaProps } from '@qwickapps/schema';
|
|
28
30
|
import React from 'react';
|
|
29
|
-
import { useBaseProps, useDataBinding
|
|
31
|
+
import { useBaseProps, useDataBinding} from '../../hooks';
|
|
30
32
|
import PageBannerHeaderModel from '../../schemas/PageBannerHeaderSchema';
|
|
31
33
|
import { HeaderAction } from './CoverImageHeader';
|
|
32
34
|
|
|
@@ -45,7 +47,6 @@ export interface PageBannerHeaderProps extends PageBannerHeaderViewProps, WithDa
|
|
|
45
47
|
|
|
46
48
|
function PageBannerHeaderView({
|
|
47
49
|
coverImage,
|
|
48
|
-
coverImageAlt = '',
|
|
49
50
|
profileImage,
|
|
50
51
|
profileImageAlt = '',
|
|
51
52
|
profileImageSize = 'large',
|
|
@@ -383,18 +384,21 @@ function PageBannerHeaderView({
|
|
|
383
384
|
function PageBannerHeader(props: PageBannerHeaderProps) {
|
|
384
385
|
const { dataSource, bindingOptions, ...restProps } = props;
|
|
385
386
|
|
|
387
|
+
// Always call hooks unconditionally
|
|
388
|
+
const bindingResult = useDataBinding<PageBannerHeaderModel>(
|
|
389
|
+
dataSource || '',
|
|
390
|
+
restProps as Partial<PageBannerHeaderModel>,
|
|
391
|
+
PageBannerHeaderModel.getSchema(),
|
|
392
|
+
{ cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
|
|
393
|
+
);
|
|
394
|
+
|
|
386
395
|
// If no dataSource, use traditional props
|
|
387
396
|
if (!dataSource) {
|
|
388
397
|
return <PageBannerHeaderView {...restProps} />;
|
|
389
398
|
}
|
|
390
399
|
|
|
391
|
-
// Use data binding
|
|
392
|
-
const {
|
|
393
|
-
dataSource,
|
|
394
|
-
restProps as Partial<PageBannerHeaderModel>,
|
|
395
|
-
PageBannerHeaderModel.getSchema(),
|
|
396
|
-
{ cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
|
|
397
|
-
);
|
|
400
|
+
// Use data binding result
|
|
401
|
+
const { loading, error, ...modelProps } = bindingResult;
|
|
398
402
|
|
|
399
403
|
// Convert HeaderActionModel[] to HeaderAction[] by adding default onClick handlers
|
|
400
404
|
const convertedActions: HeaderAction[] | undefined = modelProps.actions
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* ProductCard - Unified product card component with variants
|
|
3
|
-
*
|
|
5
|
+
*
|
|
4
6
|
* A flexible product card that can display products in different formats:
|
|
5
7
|
* - Compact variant: For showcases and lists (shows limited features)
|
|
6
8
|
* - Detailed variant: For product pages (shows full details)
|
|
7
|
-
*
|
|
9
|
+
*
|
|
8
10
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
9
11
|
*/
|
|
10
12
|
|
|
@@ -115,7 +117,7 @@ function ProductCardView({
|
|
|
115
117
|
const actions: ProductCardAction[] = [
|
|
116
118
|
{
|
|
117
119
|
id: 'primary',
|
|
118
|
-
label: product.status === 'launched' ? '
|
|
120
|
+
label: product.status === 'launched' ? 'Learn More' :
|
|
119
121
|
product.status === 'beta' ? 'Try Beta' :
|
|
120
122
|
product.status === 'coming-soon' ? 'Coming Soon' :
|
|
121
123
|
product.status,
|
|
@@ -286,6 +288,8 @@ function ProductCardView({
|
|
|
286
288
|
fontWeight: 500,
|
|
287
289
|
textTransform: 'capitalize',
|
|
288
290
|
zIndex: 2,
|
|
291
|
+
height: '28px',
|
|
292
|
+
px: 1.5,
|
|
289
293
|
'& .MuiChip-icon': {
|
|
290
294
|
color: 'white'
|
|
291
295
|
}
|
|
@@ -327,21 +331,21 @@ function ProductCardView({
|
|
|
327
331
|
|
|
328
332
|
{/* Product Info */}
|
|
329
333
|
<Box sx={{ flex: 1, display: 'flex', flexDirection: 'column' }}>
|
|
330
|
-
<Box sx={{ mb:
|
|
331
|
-
<Typography
|
|
332
|
-
variant="h4"
|
|
334
|
+
<Box sx={{ mb: 3 }}>
|
|
335
|
+
<Typography
|
|
336
|
+
variant="h4"
|
|
333
337
|
component="h3"
|
|
334
|
-
sx={{
|
|
335
|
-
mb: 1,
|
|
338
|
+
sx={{
|
|
339
|
+
mb: 1,
|
|
336
340
|
fontSize: variant === 'detailed' ? '1.75rem' : '1.5rem',
|
|
337
341
|
fontWeight: 600
|
|
338
342
|
}}
|
|
339
343
|
>
|
|
340
344
|
{product.name}
|
|
341
345
|
</Typography>
|
|
342
|
-
<Typography
|
|
346
|
+
<Typography
|
|
343
347
|
variant="overline"
|
|
344
|
-
sx={{
|
|
348
|
+
sx={{
|
|
345
349
|
mb: 1.5,
|
|
346
350
|
color: 'primary.main',
|
|
347
351
|
fontSize: '0.9rem',
|
|
@@ -352,9 +356,9 @@ function ProductCardView({
|
|
|
352
356
|
>
|
|
353
357
|
{product.category}
|
|
354
358
|
</Typography>
|
|
355
|
-
<Typography
|
|
359
|
+
<Typography
|
|
356
360
|
variant="body1"
|
|
357
|
-
sx={{
|
|
361
|
+
sx={{
|
|
358
362
|
opacity: 0.8,
|
|
359
363
|
lineHeight: 1.6
|
|
360
364
|
}}
|
|
@@ -363,11 +367,11 @@ function ProductCardView({
|
|
|
363
367
|
</Typography>
|
|
364
368
|
</Box>
|
|
365
369
|
|
|
366
|
-
{/* Features */}
|
|
367
|
-
{featuresListElement}
|
|
370
|
+
{/* Features - only show if features exist */}
|
|
371
|
+
{product.features && product.features.length > 0 && featuresListElement}
|
|
368
372
|
|
|
369
|
-
{/* Technologies */}
|
|
370
|
-
{technologiesSectionElement}
|
|
373
|
+
{/* Technologies - only show if technologies exist */}
|
|
374
|
+
{product.technologies && product.technologies.length > 0 && technologiesSectionElement}
|
|
371
375
|
|
|
372
376
|
{/* Action Buttons */}
|
|
373
377
|
<Box sx={{
|
|
@@ -400,22 +404,25 @@ function ProductCardView({
|
|
|
400
404
|
*/
|
|
401
405
|
function ProductCard(props: ProductCardProps) {
|
|
402
406
|
const { dataSource, bindingOptions, ...restProps } = props;
|
|
403
|
-
|
|
407
|
+
|
|
404
408
|
// Mark as QwickApp component
|
|
405
|
-
(ProductCard as
|
|
409
|
+
(ProductCard as Record<string, unknown>)[QWICKAPP_COMPONENT] = true;
|
|
410
|
+
|
|
411
|
+
// Always call hooks unconditionally
|
|
412
|
+
const bindingResult = useDataBinding<ProductCardModel>(
|
|
413
|
+
dataSource || '',
|
|
414
|
+
restProps as Partial<ProductCardModel>,
|
|
415
|
+
ProductCardModel.getSchema(),
|
|
416
|
+
{ cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
|
|
417
|
+
);
|
|
406
418
|
|
|
407
419
|
// If no dataSource, use traditional props
|
|
408
420
|
if (!dataSource) {
|
|
409
421
|
return <ProductCardView {...restProps} />;
|
|
410
422
|
}
|
|
411
423
|
|
|
412
|
-
// Use data binding
|
|
413
|
-
const {
|
|
414
|
-
dataSource,
|
|
415
|
-
restProps as Partial<ProductCardModel>,
|
|
416
|
-
ProductCardModel.getSchema(),
|
|
417
|
-
{ cache: true, cacheTTL: 300000, strict: false, ...bindingOptions }
|
|
418
|
-
);
|
|
424
|
+
// Use data binding result
|
|
425
|
+
const { loading, error, ...productProps } = bindingResult;
|
|
419
426
|
|
|
420
427
|
// Show loading state
|
|
421
428
|
if (loading) {
|
|
@@ -55,7 +55,7 @@ function SectionView({
|
|
|
55
55
|
component = 'section',
|
|
56
56
|
gridProps,
|
|
57
57
|
...props
|
|
58
|
-
}: SectionProps & { gridProps?:
|
|
58
|
+
}: SectionProps & { gridProps?: unknown }) {
|
|
59
59
|
|
|
60
60
|
// Return empty state if no content
|
|
61
61
|
if (!children) {
|
|
@@ -63,7 +63,7 @@ function SectionView({
|
|
|
63
63
|
<Box
|
|
64
64
|
component={component}
|
|
65
65
|
{...props}
|
|
66
|
-
{...(gridProps
|
|
66
|
+
{...(gridProps ? { 'data-grid': JSON.stringify(gridProps) } : {})}
|
|
67
67
|
sx={{
|
|
68
68
|
backgroundColor: background,
|
|
69
69
|
color,
|
|
@@ -117,7 +117,7 @@ function SectionView({
|
|
|
117
117
|
<Box
|
|
118
118
|
component={component}
|
|
119
119
|
{...props}
|
|
120
|
-
{...(gridProps
|
|
120
|
+
{...(gridProps ? { 'data-grid': JSON.stringify(gridProps) } : {})}
|
|
121
121
|
sx={{
|
|
122
122
|
backgroundColor: background,
|
|
123
123
|
color,
|
|
@@ -153,35 +153,42 @@ export const Section: SerializableComponent<SectionProps> = createSerializableVi
|
|
|
153
153
|
View: SectionView,
|
|
154
154
|
finalize: (props: SectionProps) => {
|
|
155
155
|
// Handle type conversion for contentMaxWidth - convert "false" string to boolean false
|
|
156
|
-
if ((props.contentMaxWidth as
|
|
156
|
+
if ((props.contentMaxWidth as unknown) === "false") {
|
|
157
157
|
return { ...props, contentMaxWidth: false as BreakpointValue };
|
|
158
158
|
}
|
|
159
159
|
return props;
|
|
160
160
|
}
|
|
161
161
|
});
|
|
162
162
|
|
|
163
|
+
// Type for pattern registry with basic methods
|
|
164
|
+
interface PatternRegistry {
|
|
165
|
+
hasPattern(pattern: string): boolean;
|
|
166
|
+
registerPattern(pattern: string, handler: (element: Element) => unknown): void;
|
|
167
|
+
}
|
|
168
|
+
|
|
163
169
|
// Register HTML patterns that Section component can handle
|
|
164
|
-
(Section as
|
|
170
|
+
(Section as unknown as { registerPatternHandlers: (registry: PatternRegistry) => void }).registerPatternHandlers = (registry: PatternRegistry): void => {
|
|
165
171
|
// Register section element pattern
|
|
166
172
|
if (!registry.hasPattern('section')) {
|
|
167
|
-
registry.registerPattern('section', (Section as
|
|
173
|
+
registry.registerPattern('section', (Section as unknown as { transformSection: (element: Element) => unknown }).transformSection);
|
|
168
174
|
}
|
|
169
|
-
|
|
175
|
+
|
|
170
176
|
// Register section with specific classes
|
|
171
177
|
if (!registry.hasPattern('section.blog-section')) {
|
|
172
|
-
registry.registerPattern('section.blog-section', (Section as
|
|
178
|
+
registry.registerPattern('section.blog-section', (Section as unknown as { transformBlogSection: (element: Element) => unknown }).transformBlogSection);
|
|
173
179
|
}
|
|
174
180
|
};
|
|
175
181
|
|
|
176
182
|
// Transform generic section elements to Section component
|
|
177
|
-
(Section as
|
|
183
|
+
(Section as unknown as { transformSection: (element: Element) => unknown }).transformSection = (element: Element): unknown => {
|
|
178
184
|
const padding = element.getAttribute('data-padding') || 'medium';
|
|
179
185
|
const background = element.getAttribute('data-background');
|
|
180
186
|
const contentMaxWidth = element.getAttribute('data-max-width') || 'lg';
|
|
181
187
|
|
|
182
188
|
return {
|
|
183
189
|
tagName: 'Section',
|
|
184
|
-
|
|
190
|
+
version: '1.0.0',
|
|
191
|
+
data: {
|
|
185
192
|
padding,
|
|
186
193
|
background,
|
|
187
194
|
contentMaxWidth,
|
|
@@ -191,13 +198,14 @@ export const Section: SerializableComponent<SectionProps> = createSerializableVi
|
|
|
191
198
|
};
|
|
192
199
|
|
|
193
200
|
// Transform blog section elements to Section component with specific styling
|
|
194
|
-
(Section as
|
|
201
|
+
(Section as unknown as { transformBlogSection: (element: Element) => unknown }).transformBlogSection = (element: Element): unknown => {
|
|
195
202
|
const padding = element.getAttribute('data-padding') || 'large';
|
|
196
203
|
const background = element.getAttribute('data-background') || 'var(--theme-surface)';
|
|
197
|
-
|
|
204
|
+
|
|
198
205
|
return {
|
|
199
206
|
tagName: 'Section',
|
|
200
|
-
|
|
207
|
+
version: '1.0.0',
|
|
208
|
+
data: {
|
|
201
209
|
padding,
|
|
202
210
|
background,
|
|
203
211
|
contentMaxWidth: 'md',
|