@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
|
@@ -96,7 +96,7 @@ export const QwickApp: React.FC<QwickAppComponentProps> = ({
|
|
|
96
96
|
// Resolve configuration: explicit props override config defaults
|
|
97
97
|
const resolvedConfig = {
|
|
98
98
|
appName: appNameProp ?? config?.app.name,
|
|
99
|
-
appId: appIdProp ?? config?.app.id
|
|
99
|
+
appId: appIdProp ?? config?.app.id,
|
|
100
100
|
logo: logoProp ?? config?.app.logo,
|
|
101
101
|
enableScaffolding: enableScaffoldingProp ?? config?.ui.enableScaffolding ?? false,
|
|
102
102
|
showThemeSwitcher: showThemeSwitcherProp ?? config?.ui.showThemeSwitcher ?? false,
|
|
@@ -13,7 +13,7 @@ import { WithBaseProps, useBaseProps } from '../hooks/useBaseProps';
|
|
|
13
13
|
|
|
14
14
|
export type QwickAppsLogoSize = 'small' | 'medium' | 'large';
|
|
15
15
|
|
|
16
|
-
export interface QwickAppsLogoProps extends WithBaseProps
|
|
16
|
+
export interface QwickAppsLogoProps extends WithBaseProps {
|
|
17
17
|
/** Size variant of the logo */
|
|
18
18
|
size?: QwickAppsLogoSize;
|
|
19
19
|
/** Click handler for the logo */
|
|
@@ -57,7 +57,7 @@ const ResponsiveMenu: React.FC<ResponsiveMenuProps> = (props) => {
|
|
|
57
57
|
} = restProps;
|
|
58
58
|
|
|
59
59
|
// Mark as QwickApp component
|
|
60
|
-
(ResponsiveMenu as
|
|
60
|
+
(ResponsiveMenu as Record<string, unknown>)[QWICKAPP_COMPONENT] = true;
|
|
61
61
|
const [screenSize, setScreenSize] = useState<ScreenSize>('desktop');
|
|
62
62
|
const [isNavRailExpanded, setIsNavRailExpanded] = useState(false);
|
|
63
63
|
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import React
|
|
13
|
+
import React from 'react';
|
|
14
14
|
import { WithDataBinding, SchemaProps } from '@qwickapps/schema';
|
|
15
15
|
import sanitizeHtml from 'sanitize-html';
|
|
16
16
|
import { QWICKAPP_COMPONENT, useBaseProps, useDataBinding } from '../hooks';
|
|
@@ -23,10 +23,10 @@ export interface SafeSpanProps extends SafeSpanViewProps, WithDataBinding {}
|
|
|
23
23
|
// View component - handles the actual rendering
|
|
24
24
|
function SafeSpanView(props: SafeSpanViewProps) {
|
|
25
25
|
const { html, placeholder, ...restProps } = props;
|
|
26
|
-
const { styleProps, htmlProps
|
|
26
|
+
const { styleProps, htmlProps } = useBaseProps(restProps);
|
|
27
27
|
|
|
28
28
|
// Mark as QwickApp component
|
|
29
|
-
(SafeSpanView as
|
|
29
|
+
(SafeSpanView as Record<string, unknown>)[QWICKAPP_COMPONENT] = true;
|
|
30
30
|
|
|
31
31
|
// Enhanced HTML sanitization with strict security configuration
|
|
32
32
|
const sanitizeOptions = {
|
|
@@ -101,7 +101,7 @@ export class SafeSpan extends ModelView<SafeSpanProps, SafeSpanModel> {
|
|
|
101
101
|
static readonly version = '1.0.0';
|
|
102
102
|
|
|
103
103
|
// Component-specific serialization properties
|
|
104
|
-
protected getComponentSpecificProps():
|
|
104
|
+
protected getComponentSpecificProps(): unknown {
|
|
105
105
|
return {
|
|
106
106
|
html: this.props.html,
|
|
107
107
|
placeholder: this.props.placeholder
|
|
@@ -110,7 +110,7 @@ export class SafeSpan extends ModelView<SafeSpanProps, SafeSpanModel> {
|
|
|
110
110
|
|
|
111
111
|
// SafeSpan component renders traditional props view
|
|
112
112
|
protected renderView(): React.ReactElement {
|
|
113
|
-
const {
|
|
113
|
+
const { ...restProps } = this.props;
|
|
114
114
|
return <SafeSpanView {...restProps} />;
|
|
115
115
|
}
|
|
116
116
|
|
|
@@ -120,7 +120,7 @@ export class SafeSpan extends ModelView<SafeSpanProps, SafeSpanModel> {
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
// Register HTML patterns that SafeSpan component can handle
|
|
123
|
-
static registerPatternHandlers(registry:
|
|
123
|
+
static registerPatternHandlers(registry: unknown): void {
|
|
124
124
|
// Register span elements with specific classes or attributes
|
|
125
125
|
if (!registry.hasPattern('span.safe-content')) {
|
|
126
126
|
registry.registerPattern('span.safe-content', SafeSpan.transformSafeSpan);
|
|
@@ -133,7 +133,7 @@ export class SafeSpan extends ModelView<SafeSpanProps, SafeSpanModel> {
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
// Transform span elements to SafeSpan component
|
|
136
|
-
private static transformSafeSpan(element: Element):
|
|
136
|
+
private static transformSafeSpan(element: Element): unknown {
|
|
137
137
|
const placeholder = element.getAttribute('data-placeholder');
|
|
138
138
|
|
|
139
139
|
return {
|
|
@@ -151,7 +151,7 @@ function SafeSpanWithDataBinding(props: SafeSpanProps) {
|
|
|
151
151
|
const { dataSource, bindingOptions, ...restProps } = props;
|
|
152
152
|
|
|
153
153
|
// Use data binding
|
|
154
|
-
const {
|
|
154
|
+
const { loading, error, ...safeSpanProps } = useDataBinding<SafeSpanModel>(
|
|
155
155
|
dataSource!,
|
|
156
156
|
restProps as Partial<SafeSpanModel>,
|
|
157
157
|
SafeSpanModel.getSchema(),
|
|
@@ -90,11 +90,12 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
90
90
|
const [screenSize, setScreenSize] = useState<ScreenSize>('desktop');
|
|
91
91
|
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
|
|
92
92
|
const [isRailExpanded, setIsRailExpanded] = useState(false);
|
|
93
|
+
const [isMounted, setIsMounted] = useState(false);
|
|
93
94
|
|
|
94
95
|
// React Router hooks (if available)
|
|
95
96
|
const location = useSafeLocation();
|
|
96
97
|
const navigate = useSafeNavigate();
|
|
97
|
-
const currentPath = location?.pathname;
|
|
98
|
+
const currentPath = isMounted ? location?.pathname : undefined;
|
|
98
99
|
|
|
99
100
|
// Debug logging for navigation
|
|
100
101
|
React.useEffect(() => {
|
|
@@ -103,6 +104,11 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
103
104
|
}
|
|
104
105
|
}, [currentPath]);
|
|
105
106
|
|
|
107
|
+
// Set mounted state after hydration to prevent hydration mismatch
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
setIsMounted(true);
|
|
110
|
+
}, []);
|
|
111
|
+
|
|
106
112
|
const { appName: contextAppName, logo: contextLogo } = useQwickApp();
|
|
107
113
|
const appName = propAppName || contextAppName;
|
|
108
114
|
|
|
@@ -136,23 +142,26 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
136
142
|
// Material UI Guidelines: Split items based on screen size
|
|
137
143
|
const getNavigationSplit = () => {
|
|
138
144
|
switch (screenSize) {
|
|
139
|
-
case 'mobile':
|
|
145
|
+
case 'mobile': {
|
|
140
146
|
// Bottom Nav: 3-5 items, rest in drawer
|
|
141
147
|
const bottomNavItems = sortedItems.slice(0, 5);
|
|
142
148
|
const drawerItems = sortedItems.slice(5);
|
|
143
149
|
return { primaryItems: bottomNavItems, drawerItems };
|
|
150
|
+
}
|
|
144
151
|
|
|
145
|
-
case 'tablet':
|
|
152
|
+
case 'tablet': {
|
|
146
153
|
// Nav Rail: 3-7 items, rest in drawer
|
|
147
154
|
const railItems = sortedItems.slice(0, 7);
|
|
148
155
|
const railDrawerItems = sortedItems.slice(7);
|
|
149
156
|
return { primaryItems: railItems, drawerItems: railDrawerItems };
|
|
157
|
+
}
|
|
150
158
|
|
|
151
|
-
case 'desktop':
|
|
159
|
+
case 'desktop': {
|
|
152
160
|
// App Bar: 5-7 items, rest in drawer
|
|
153
161
|
const appBarItems = sortedItems.slice(0, 7);
|
|
154
162
|
const appBarDrawerItems = sortedItems.slice(7);
|
|
155
163
|
return { primaryItems: appBarItems, drawerItems: appBarDrawerItems };
|
|
164
|
+
}
|
|
156
165
|
|
|
157
166
|
default:
|
|
158
167
|
return { primaryItems: sortedItems, drawerItems: [] };
|
|
@@ -295,7 +304,7 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
295
304
|
// External links
|
|
296
305
|
if (item.href && !item.disabled) {
|
|
297
306
|
return (
|
|
298
|
-
<a
|
|
307
|
+
<a href={item.href} {...commonProps} target="_blank" rel="noopener noreferrer">
|
|
299
308
|
{content}
|
|
300
309
|
</a>
|
|
301
310
|
);
|
|
@@ -304,7 +313,6 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
304
313
|
// Internal navigation or custom click handlers
|
|
305
314
|
return (
|
|
306
315
|
<button
|
|
307
|
-
key={item.id}
|
|
308
316
|
type="button"
|
|
309
317
|
{...commonProps}
|
|
310
318
|
disabled={Boolean(item.disabled || (isActiveItem && item.route === currentPath))}
|
|
@@ -316,7 +324,7 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
316
324
|
|
|
317
325
|
// Calculate layout spacing
|
|
318
326
|
const getLayoutSpacing = () => {
|
|
319
|
-
|
|
327
|
+
const paddingTop = showAppBar ? appBarHeight : 0;
|
|
320
328
|
let paddingBottom = 0;
|
|
321
329
|
let paddingLeft = 0;
|
|
322
330
|
|
|
@@ -355,31 +363,36 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
355
363
|
{/* Menu button for drawer (when needed) */}
|
|
356
364
|
{(drawerItems.length > 0 || screenSize === 'tablet') && (
|
|
357
365
|
<button
|
|
366
|
+
key="menu-button"
|
|
358
367
|
type="button"
|
|
359
368
|
className="menu-button"
|
|
360
369
|
onClick={screenSize === 'tablet' ? toggleRail : toggleDrawer}
|
|
361
370
|
aria-label={screenSize === 'tablet' ? 'Toggle navigation rail' : 'Open drawer menu'}
|
|
362
371
|
>
|
|
363
372
|
<span className="hamburger-icon">
|
|
364
|
-
<span></span>
|
|
365
|
-
<span></span>
|
|
366
|
-
<span></span>
|
|
373
|
+
<span key="hamburger-line-1"></span>
|
|
374
|
+
<span key="hamburger-line-2"></span>
|
|
375
|
+
<span key="hamburger-line-3"></span>
|
|
367
376
|
</span>
|
|
368
377
|
</button>
|
|
369
378
|
)}
|
|
370
379
|
|
|
371
380
|
{/* Logo/Title */}
|
|
372
|
-
{(!enhancedAppBar?.logoPosition || enhancedAppBar.logoPosition === 'left') && <AppLogo />}
|
|
381
|
+
{(!enhancedAppBar?.logoPosition || enhancedAppBar.logoPosition === 'left') && <AppLogo key="app-logo-left" />}
|
|
373
382
|
</div>
|
|
374
383
|
|
|
375
384
|
{/* Center section */}
|
|
376
385
|
<div className="appbar-center">
|
|
377
|
-
{enhancedAppBar?.logoPosition === 'center' && <AppLogo />}
|
|
386
|
+
{enhancedAppBar?.logoPosition === 'center' && <AppLogo key="app-logo-center" />}
|
|
378
387
|
|
|
379
388
|
{/* Desktop navigation items */}
|
|
380
389
|
{screenSize === 'desktop' && (
|
|
381
|
-
<nav className="appbar-navigation">
|
|
382
|
-
{primaryItems.map(item =>
|
|
390
|
+
<nav key="desktop-navigation" className="appbar-navigation">
|
|
391
|
+
{primaryItems.map(item => (
|
|
392
|
+
<React.Fragment key={item.id}>
|
|
393
|
+
{renderMenuItem(item, 'appbar')}
|
|
394
|
+
</React.Fragment>
|
|
395
|
+
))}
|
|
383
396
|
</nav>
|
|
384
397
|
)}
|
|
385
398
|
</div>
|
|
@@ -387,14 +400,14 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
387
400
|
{/* Right section */}
|
|
388
401
|
<div className="appbar-right">
|
|
389
402
|
{enhancedAppBar?.actions && (
|
|
390
|
-
<div className="appbar-actions">
|
|
403
|
+
<div key="appbar-actions" className="appbar-actions">
|
|
391
404
|
{enhancedAppBar.actions}
|
|
392
405
|
</div>
|
|
393
406
|
)}
|
|
394
407
|
{/* Theme and Palette Switchers */}
|
|
395
|
-
<div className="appbar-theme-controls">
|
|
396
|
-
{showThemeSwitcher && <ThemeSwitcher />}
|
|
397
|
-
{showPaletteSwitcher && <PaletteSwitcher />}
|
|
408
|
+
<div key="appbar-theme-controls" className="appbar-theme-controls">
|
|
409
|
+
{showThemeSwitcher && <ThemeSwitcher key="theme-switcher" />}
|
|
410
|
+
{showPaletteSwitcher && <PaletteSwitcher key="palette-switcher" />}
|
|
398
411
|
</div>
|
|
399
412
|
</div>
|
|
400
413
|
</div>
|
|
@@ -405,7 +418,11 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
405
418
|
{screenSize === 'tablet' && (
|
|
406
419
|
<nav className={`navigation-rail ${isRailExpanded ? 'expanded' : 'collapsed'}`}>
|
|
407
420
|
<div className="rail-items">
|
|
408
|
-
{primaryItems.map(item =>
|
|
421
|
+
{primaryItems.map(item => (
|
|
422
|
+
<React.Fragment key={item.id}>
|
|
423
|
+
{renderMenuItem(item, 'rail')}
|
|
424
|
+
</React.Fragment>
|
|
425
|
+
))}
|
|
409
426
|
</div>
|
|
410
427
|
</nav>
|
|
411
428
|
)}
|
|
@@ -414,7 +431,11 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
414
431
|
{screenSize === 'mobile' && primaryItems.length > 0 && (
|
|
415
432
|
<nav className="bottom-navigation">
|
|
416
433
|
<div className="bottom-nav-items">
|
|
417
|
-
{primaryItems.map(item =>
|
|
434
|
+
{primaryItems.map(item => (
|
|
435
|
+
<React.Fragment key={item.id}>
|
|
436
|
+
{renderMenuItem(item, 'bottom')}
|
|
437
|
+
</React.Fragment>
|
|
438
|
+
))}
|
|
418
439
|
</div>
|
|
419
440
|
</nav>
|
|
420
441
|
)}
|
|
@@ -424,8 +445,9 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
424
445
|
<div className="drawer-overlay" onClick={toggleDrawer}>
|
|
425
446
|
<nav className="navigation-drawer" onClick={(e) => e.stopPropagation()}>
|
|
426
447
|
<div className="drawer-header">
|
|
427
|
-
<h3>Menu</h3>
|
|
448
|
+
<h3 key="drawer-title">Menu</h3>
|
|
428
449
|
<button
|
|
450
|
+
key="drawer-close-button"
|
|
429
451
|
type="button"
|
|
430
452
|
className="drawer-close"
|
|
431
453
|
onClick={toggleDrawer}
|
|
@@ -437,15 +459,23 @@ const Scaffold: React.FC<ScaffoldProps> = ({
|
|
|
437
459
|
<div className="drawer-items">
|
|
438
460
|
{/* Show all primary items in drawer for consistency */}
|
|
439
461
|
<div className="drawer-section">
|
|
440
|
-
<h4>Navigation</h4>
|
|
441
|
-
{primaryItems.map(item =>
|
|
462
|
+
<h4 key="navigation-header">Navigation</h4>
|
|
463
|
+
{primaryItems.map(item => (
|
|
464
|
+
<React.Fragment key={item.id}>
|
|
465
|
+
{renderMenuItem(item, 'drawer')}
|
|
466
|
+
</React.Fragment>
|
|
467
|
+
))}
|
|
442
468
|
</div>
|
|
443
469
|
|
|
444
470
|
{/* Additional items */}
|
|
445
471
|
{drawerItems.length > 0 && (
|
|
446
472
|
<div className="drawer-section">
|
|
447
|
-
<h4>More</h4>
|
|
448
|
-
{drawerItems.map(item =>
|
|
473
|
+
<h4 key="more-header">More</h4>
|
|
474
|
+
{drawerItems.map(item => (
|
|
475
|
+
<React.Fragment key={item.id}>
|
|
476
|
+
{renderMenuItem(item, 'drawer')}
|
|
477
|
+
</React.Fragment>
|
|
478
|
+
))}
|
|
449
479
|
</div>
|
|
450
480
|
)}
|
|
451
481
|
</div>
|
|
@@ -32,12 +32,12 @@ export type ContainerProps = ViewProps & SchemaProps<typeof ContainerSchema>;
|
|
|
32
32
|
* This component receives fully processed props from createSerializableView
|
|
33
33
|
* and renders the container using Material-UI Box with all styling applied.
|
|
34
34
|
*/
|
|
35
|
-
function ContainerView({ children, gridProps, ...props }: ContainerProps & { gridProps?:
|
|
35
|
+
function ContainerView({ children, gridProps, ...props }: ContainerProps & { gridProps?: unknown }) {
|
|
36
36
|
// Render the component as a Box with all processed props
|
|
37
37
|
return (
|
|
38
38
|
<Box
|
|
39
39
|
{...props}
|
|
40
|
-
{...(gridProps
|
|
40
|
+
{...(gridProps ? { 'data-grid': JSON.stringify(gridProps) } : {})}
|
|
41
41
|
component="div"
|
|
42
42
|
>
|
|
43
43
|
{children}
|
|
@@ -73,21 +73,21 @@ function convertSchemaToBaseProps(schema: Partial<ViewSchema>): WithBaseProps {
|
|
|
73
73
|
/**
|
|
74
74
|
* Convert string event handler to function
|
|
75
75
|
*/
|
|
76
|
-
function convertEventHandler(handlerStr?: string): ((event:
|
|
76
|
+
function convertEventHandler(handlerStr?: string): ((event: unknown) => void) | undefined {
|
|
77
77
|
if (!handlerStr || typeof handlerStr !== 'string') {
|
|
78
78
|
return undefined;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
try {
|
|
82
82
|
// Create function from string - handle both function declarations and expressions
|
|
83
|
-
let func:
|
|
83
|
+
let func: (...args: unknown[]) => unknown;
|
|
84
84
|
if (handlerStr.trim().startsWith('function')) {
|
|
85
|
-
func = new Function(`return (${handlerStr})`)();
|
|
85
|
+
func = new Function(`return (${handlerStr})`)() as (...args: unknown[]) => unknown;
|
|
86
86
|
} else {
|
|
87
|
-
func = new Function('event', handlerStr);
|
|
87
|
+
func = new Function('event', handlerStr) as (...args: unknown[]) => unknown;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
return (event:
|
|
90
|
+
return (event: unknown) => func(event);
|
|
91
91
|
} catch (error) {
|
|
92
92
|
console.error('Error parsing event handler:', error);
|
|
93
93
|
return undefined;
|
|
@@ -98,17 +98,17 @@ function convertEventHandler(handlerStr?: string): ((event: any) => void) | unde
|
|
|
98
98
|
* Processed props that subclasses receive
|
|
99
99
|
*/
|
|
100
100
|
export interface ProcessedProps {
|
|
101
|
-
gridProps:
|
|
102
|
-
styleProps:
|
|
103
|
-
htmlProps:
|
|
104
|
-
restProps:
|
|
101
|
+
gridProps: unknown;
|
|
102
|
+
styleProps: unknown;
|
|
103
|
+
htmlProps: unknown;
|
|
104
|
+
restProps: unknown;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
/**
|
|
108
108
|
* Abstract base class implementing ViewSchema
|
|
109
109
|
* All concrete components should extend this class
|
|
110
110
|
*/
|
|
111
|
-
export abstract class ModelView<TProps =
|
|
111
|
+
export abstract class ModelView<TProps = Record<string, unknown>>
|
|
112
112
|
extends React.Component<TProps & SchemaProps<ViewSchema> & WithDataBinding>
|
|
113
113
|
implements Serializable {
|
|
114
114
|
|
|
@@ -119,8 +119,9 @@ export abstract class ModelView<TProps = any, TModel = any>
|
|
|
119
119
|
/**
|
|
120
120
|
* Common fromJson implementation
|
|
121
121
|
*/
|
|
122
|
-
static fromJson(jsonData:
|
|
123
|
-
const { tagName
|
|
122
|
+
static fromJson(jsonData: unknown): ReactElement {
|
|
123
|
+
const typedData = jsonData as { tagName?: string; version?: string; data?: unknown };
|
|
124
|
+
const { tagName, version, data } = typedData;
|
|
124
125
|
if (tagName !== this.tagName) {
|
|
125
126
|
throw new Error(`Cannot deserialize: Expected tagName '${this.tagName}' but got '${tagName}'`);
|
|
126
127
|
}
|
|
@@ -128,15 +129,15 @@ export abstract class ModelView<TProps = any, TModel = any>
|
|
|
128
129
|
console.warn(`Version mismatch: Expected ${this.version} but got ${version}`);
|
|
129
130
|
}
|
|
130
131
|
|
|
131
|
-
return React.createElement(this as
|
|
132
|
+
return React.createElement(this as React.ComponentType<unknown>, data || {});
|
|
132
133
|
}
|
|
133
134
|
|
|
134
135
|
/**
|
|
135
136
|
* Common toJson implementation with hooks for customization
|
|
136
137
|
*/
|
|
137
|
-
toJson():
|
|
138
|
-
const baseProps = this.getBaseSerializableProps()
|
|
139
|
-
const componentProps = this.getComponentSpecificProps()
|
|
138
|
+
toJson(): unknown {
|
|
139
|
+
const baseProps = this.getBaseSerializableProps() as Record<string, unknown>;
|
|
140
|
+
const componentProps = this.getComponentSpecificProps() as Record<string, unknown>;
|
|
140
141
|
return {
|
|
141
142
|
tagName: (this.constructor as typeof ModelView).tagName,
|
|
142
143
|
version: (this.constructor as typeof ModelView).version,
|
|
@@ -152,7 +153,7 @@ export abstract class ModelView<TProps = any, TModel = any>
|
|
|
152
153
|
* This converts ViewSchema props and processes them through useBaseProps
|
|
153
154
|
*/
|
|
154
155
|
protected getProcessedProps(): ProcessedProps {
|
|
155
|
-
const { dataSource, bindingOptions, ...schemaProps } = this.props;
|
|
156
|
+
const { dataSource: _dataSource, bindingOptions: _bindingOptions, ...schemaProps } = this.props;
|
|
156
157
|
|
|
157
158
|
// Convert ViewSchema props to BaseComponentProps format
|
|
158
159
|
const convertedProps = convertSchemaToBaseProps(schemaProps);
|
|
@@ -221,8 +222,8 @@ export abstract class ModelView<TProps = any, TModel = any>
|
|
|
221
222
|
/**
|
|
222
223
|
* Common base props that all components serialize
|
|
223
224
|
*/
|
|
224
|
-
protected getBaseSerializableProps():
|
|
225
|
-
const props = this.props as
|
|
225
|
+
protected getBaseSerializableProps(): unknown {
|
|
226
|
+
const props = this.props as TProps & SchemaProps<ViewSchema> & WithDataBinding;
|
|
226
227
|
return {
|
|
227
228
|
children: props.children ? this.serializeChildren(props.children) : undefined,
|
|
228
229
|
dataSource: props.dataSource,
|
|
@@ -235,12 +236,12 @@ export abstract class ModelView<TProps = any, TModel = any>
|
|
|
235
236
|
/**
|
|
236
237
|
* Hook for subclasses to add component-specific serialization
|
|
237
238
|
*/
|
|
238
|
-
protected abstract getComponentSpecificProps():
|
|
239
|
+
protected abstract getComponentSpecificProps(): unknown;
|
|
239
240
|
|
|
240
241
|
/**
|
|
241
242
|
* Common children serialization logic
|
|
242
243
|
*/
|
|
243
|
-
protected serializeChildren(children: ReactNode):
|
|
244
|
+
protected serializeChildren(children: ReactNode): unknown {
|
|
244
245
|
if (typeof children === 'string') {
|
|
245
246
|
return children;
|
|
246
247
|
}
|
|
@@ -255,7 +256,7 @@ export abstract class ModelView<TProps = any, TModel = any>
|
|
|
255
256
|
/**
|
|
256
257
|
* Helper to determine if children contain other serializable components
|
|
257
258
|
*/
|
|
258
|
-
protected hasNestedComponents(
|
|
259
|
+
protected hasNestedComponents(_children: ReactNode): boolean {
|
|
259
260
|
return false;
|
|
260
261
|
}
|
|
261
262
|
|
|
@@ -263,7 +264,7 @@ export abstract class ModelView<TProps = any, TModel = any>
|
|
|
263
264
|
* Common render pattern
|
|
264
265
|
*/
|
|
265
266
|
render() {
|
|
266
|
-
const props = this.props as
|
|
267
|
+
const props = this.props as TProps & SchemaProps<ViewSchema> & WithDataBinding;
|
|
267
268
|
|
|
268
269
|
if (props.dataSource) {
|
|
269
270
|
return this.renderWithDataBinding();
|
|
@@ -285,7 +286,7 @@ export abstract class ModelView<TProps = any, TModel = any>
|
|
|
285
286
|
/**
|
|
286
287
|
* Register HTML pattern handlers for this component
|
|
287
288
|
*/
|
|
288
|
-
static registerPatternHandlers(_registry:
|
|
289
|
+
static registerPatternHandlers(_registry: unknown): void {
|
|
289
290
|
// Default: no patterns to register
|
|
290
291
|
}
|
|
291
292
|
}
|
|
@@ -298,18 +299,18 @@ export function createModelViewClass<TProps, TModel>(
|
|
|
298
299
|
config: {
|
|
299
300
|
tagName: string;
|
|
300
301
|
version: string;
|
|
301
|
-
getComponentSpecificProps: (props: TProps, processedProps: ProcessedProps) =>
|
|
302
|
+
getComponentSpecificProps: (props: TProps, processedProps: ProcessedProps) => Record<string, unknown>;
|
|
302
303
|
hasNestedComponents?: (children: ReactNode) => boolean;
|
|
303
304
|
renderView: (props: TProps, processedProps: ProcessedProps) => React.ReactElement;
|
|
304
305
|
renderWithDataBinding: (props: TProps & WithDataBinding, processedProps: ProcessedProps) => React.ReactElement;
|
|
305
306
|
}
|
|
306
|
-
):
|
|
307
|
+
): unknown {
|
|
307
308
|
|
|
308
309
|
class DynamicModelView extends ModelView<TProps, TModel> {
|
|
309
310
|
static readonly tagName = config.tagName;
|
|
310
311
|
static readonly version = config.version;
|
|
311
312
|
|
|
312
|
-
protected getComponentSpecificProps():
|
|
313
|
+
protected getComponentSpecificProps(): unknown {
|
|
313
314
|
const processedProps = this.getProcessedProps();
|
|
314
315
|
return config.getComponentSpecificProps(this.props as TProps, processedProps);
|
|
315
316
|
}
|