@brunoalz/smartgesti-site-editor 0.2.2 → 1.1.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/dist/editor/BlockSelector.d.ts +2 -1
- package/dist/editor/BlockSelector.d.ts.map +1 -1
- package/dist/editor/BlockSelector.js +55 -64
- package/dist/editor/BlockSelector.js.map +1 -1
- package/dist/editor/LandingPageEditor.d.ts +19 -0
- package/dist/editor/LandingPageEditor.d.ts.map +1 -0
- package/dist/editor/LandingPageEditor.js +239 -0
- package/dist/editor/LandingPageEditor.js.map +1 -0
- package/dist/editor/PageTabBar.d.ts +4 -1
- package/dist/editor/PageTabBar.d.ts.map +1 -1
- package/dist/editor/PageTabBar.js +179 -41
- package/dist/editor/PageTabBar.js.map +1 -1
- package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts +5 -3
- package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/BlockPropertyEditor.js +60 -113
- package/dist/editor/PropertyEditor/BlockPropertyEditor.js.map +1 -1
- package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts +3 -1
- package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js +47 -33
- package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js.map +1 -1
- package/dist/editor/PropertyEditor/PropertyGroup.d.ts +1 -1
- package/dist/editor/PropertyEditor/PropertyGroup.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/VariationSelector.d.ts +2 -1
- package/dist/editor/PropertyEditor/VariationSelector.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/VariationSelector.js +35 -31
- package/dist/editor/PropertyEditor/VariationSelector.js.map +1 -1
- package/dist/editor/PropertyEditor/index.js +30 -28
- package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts +16 -0
- package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts.map +1 -0
- package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js +170 -0
- package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js.map +1 -0
- package/dist/editor/PropertyEditor/inputs/ImageGridInput.d.ts +1 -1
- package/dist/editor/PropertyEditor/inputs/ImageGridInput.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/inputs/ImageGridInput.js +148 -121
- package/dist/editor/PropertyEditor/inputs/ImageGridInput.js.map +1 -1
- package/dist/editor/PropertyEditor/inputs/ImageInput.d.ts.map +1 -0
- package/dist/{components → editor/PropertyEditor}/inputs/ImageInput.js +41 -39
- package/dist/editor/PropertyEditor/inputs/ImageInput.js.map +1 -0
- package/dist/editor/PropertyEditor/inputs/TypographyInput.js +41 -44
- package/dist/editor/PropertyEditor/inputs/TypographyInput.js.map +1 -1
- package/dist/editor/PropertyEditor/inputs/index.d.ts +2 -0
- package/dist/editor/PropertyEditor/inputs/index.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/renderPropertyInput.d.ts +1 -1
- package/dist/editor/PropertyEditor/renderPropertyInput.d.ts.map +1 -1
- package/dist/editor/PropertyEditor/renderPropertyInput.js +167 -139
- package/dist/editor/PropertyEditor/renderPropertyInput.js.map +1 -1
- package/dist/editor/components/CenterPanel.d.ts +13 -4
- package/dist/editor/components/CenterPanel.d.ts.map +1 -1
- package/dist/editor/components/CenterPanel.js +40 -31
- package/dist/editor/components/CenterPanel.js.map +1 -1
- package/dist/editor/components/LeftPanel.d.ts +2 -1
- package/dist/editor/components/LeftPanel.d.ts.map +1 -1
- package/dist/editor/components/LeftPanel.js +13 -12
- package/dist/editor/components/LeftPanel.js.map +1 -1
- package/dist/editor/components/LoadingSpinner.d.ts.map +1 -0
- package/dist/editor/components/LoadingSpinner.js.map +1 -0
- package/dist/editor/components/RightPanel.d.ts +8 -2
- package/dist/editor/components/RightPanel.d.ts.map +1 -1
- package/dist/editor/components/RightPanel.js +24 -19
- package/dist/editor/components/RightPanel.js.map +1 -1
- package/dist/editor/components/Toolbar.d.ts +5 -1
- package/dist/editor/components/Toolbar.d.ts.map +1 -1
- package/dist/editor/components/Toolbar.js +56 -40
- package/dist/editor/components/Toolbar.js.map +1 -1
- package/dist/engine/export/exportHtml.d.ts +10 -5
- package/dist/engine/export/exportHtml.d.ts.map +1 -1
- package/dist/engine/export/exportHtml.js +38 -40
- package/dist/engine/export/exportHtml.js.map +1 -1
- package/dist/engine/export/exporters/content/HeadingExporter.d.ts.map +1 -1
- package/dist/engine/export/exporters/content/HeadingExporter.js +6 -6
- package/dist/engine/export/exporters/content/HeadingExporter.js.map +1 -1
- package/dist/engine/export/exporters/content/LinkExporter.d.ts.map +1 -1
- package/dist/engine/export/exporters/content/LinkExporter.js +6 -6
- package/dist/engine/export/exporters/content/LinkExporter.js.map +1 -1
- package/dist/engine/export/exporters/content/TextExporter.d.ts.map +1 -1
- package/dist/engine/export/exporters/content/TextExporter.js +7 -7
- package/dist/engine/export/exporters/content/TextExporter.js.map +1 -1
- package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts +6 -0
- package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts.map +1 -0
- package/dist/engine/export/exporters/sections/BlogPostExporters.js +101 -0
- package/dist/engine/export/exporters/sections/BlogPostExporters.js.map +1 -0
- package/dist/engine/export/exporters/sections/FooterExporter.d.ts.map +1 -1
- package/dist/engine/export/exporters/sections/FooterExporter.js +33 -40
- package/dist/engine/export/exporters/sections/FooterExporter.js.map +1 -1
- package/dist/engine/export/exporters/sections/HeroExporter.d.ts.map +1 -1
- package/dist/engine/export/exporters/sections/HeroExporter.js +222 -218
- package/dist/engine/export/exporters/sections/HeroExporter.js.map +1 -1
- package/dist/engine/export/exporters/sections/MarketingExporters.js +88 -88
- package/dist/engine/export/exporters/sections/MarketingExporters.js.map +1 -1
- package/dist/engine/export/exporters/sections/NavbarExporter.js +34 -34
- package/dist/engine/export/exporters/sections/NavbarExporter.js.map +1 -1
- package/dist/engine/export/exporters/sections/index.d.ts.map +1 -1
- package/dist/engine/export/exporters/sections/index.js +29 -22
- package/dist/engine/export/exporters/sections/index.js.map +1 -1
- package/dist/engine/export/sanitizeHtml.d.ts.map +1 -1
- package/dist/engine/export/sanitizeHtml.js +65 -18
- package/dist/engine/export/sanitizeHtml.js.map +1 -1
- package/dist/engine/export/styleResolver.d.ts.map +1 -1
- package/dist/engine/export/styleResolver.js +33 -33
- package/dist/engine/export/styleResolver.js.map +1 -1
- package/dist/engine/generators/generateLandingPage.d.ts +4 -4
- package/dist/engine/generators/generateLandingPage.d.ts.map +1 -1
- package/dist/engine/generators/generateLandingPage.js.map +1 -1
- package/dist/engine/index.d.ts +6 -3
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +99 -89
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/patch/PatchBuilder.d.ts +11 -11
- package/dist/engine/patch/PatchBuilder.d.ts.map +1 -1
- package/dist/engine/patch/PatchBuilder.js +92 -93
- package/dist/engine/patch/PatchBuilder.js.map +1 -1
- package/dist/engine/patch/applyPatch.js.map +1 -1
- package/dist/engine/plugins/builtin/blog/index.d.ts +3 -0
- package/dist/engine/plugins/builtin/blog/index.d.ts.map +1 -0
- package/dist/engine/plugins/builtin/blog/manifest.d.ts +3 -0
- package/dist/engine/plugins/builtin/blog/manifest.d.ts.map +1 -0
- package/dist/engine/plugins/builtin/blog/manifest.js +273 -0
- package/dist/engine/plugins/builtin/blog/manifest.js.map +1 -0
- package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts +7 -0
- package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts.map +1 -0
- package/dist/engine/plugins/builtin/blog/mockContentProvider.js +135 -0
- package/dist/engine/plugins/builtin/blog/mockContentProvider.js.map +1 -0
- package/dist/engine/plugins/contentHydration.d.ts +17 -0
- package/dist/engine/plugins/contentHydration.d.ts.map +1 -0
- package/dist/engine/plugins/contentHydration.js +121 -0
- package/dist/engine/plugins/contentHydration.js.map +1 -0
- package/dist/engine/plugins/dynamicPageResolver.d.ts +25 -0
- package/dist/engine/plugins/dynamicPageResolver.d.ts.map +1 -0
- package/dist/engine/plugins/dynamicPageResolver.js +32 -0
- package/dist/engine/plugins/dynamicPageResolver.js.map +1 -0
- package/dist/engine/plugins/index.d.ts +11 -0
- package/dist/engine/plugins/index.d.ts.map +1 -0
- package/dist/engine/plugins/pluginRegistry.d.ts +37 -0
- package/dist/engine/plugins/pluginRegistry.d.ts.map +1 -0
- package/dist/engine/plugins/pluginRegistry.js +134 -0
- package/dist/engine/plugins/pluginRegistry.js.map +1 -0
- package/dist/engine/plugins/types.d.ts +180 -0
- package/dist/engine/plugins/types.d.ts.map +1 -0
- package/dist/engine/presets/heroVariations.d.ts +5 -0
- package/dist/engine/presets/heroVariations.d.ts.map +1 -1
- package/dist/engine/presets/heroVariations.js +50 -6
- package/dist/engine/presets/heroVariations.js.map +1 -1
- package/dist/engine/preview/Preview.d.ts +19 -0
- package/dist/engine/preview/Preview.d.ts.map +1 -0
- package/dist/engine/preview/Preview.js +418 -0
- package/dist/engine/preview/Preview.js.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostCard.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/blogPostCard.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostCard.js +53 -0
- package/dist/engine/registry/blocks/sections/blogPostCard.js.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostDetail.js +49 -0
- package/dist/engine/registry/blocks/sections/blogPostDetail.js.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts.map +1 -0
- package/dist/engine/registry/blocks/sections/blogPostGrid.js +89 -0
- package/dist/engine/registry/blocks/sections/blogPostGrid.js.map +1 -0
- package/dist/engine/registry/blocks/sections/hero.d.ts.map +1 -1
- package/dist/engine/registry/blocks/sections/hero.js +67 -14
- package/dist/engine/registry/blocks/sections/hero.js.map +1 -1
- package/dist/engine/registry/blocks/sections/index.d.ts +3 -0
- package/dist/engine/registry/blocks/sections/index.d.ts.map +1 -1
- package/dist/engine/registry/blocks/sections/navbar.d.ts.map +1 -1
- package/dist/engine/registry/blocks/sections/navbar.js +2 -1
- package/dist/engine/registry/blocks/sections/navbar.js.map +1 -1
- package/dist/engine/registry/registry.d.ts.map +1 -1
- package/dist/engine/registry/registry.js +39 -36
- package/dist/engine/registry/registry.js.map +1 -1
- package/dist/engine/registry/types.d.ts +17 -13
- package/dist/engine/registry/types.d.ts.map +1 -1
- package/dist/engine/render/renderNodeImpl.js +85 -85
- package/dist/engine/render/renderNodeImpl.js.map +1 -1
- package/dist/engine/render/renderPage.d.ts +3 -3
- package/dist/engine/render/renderPage.d.ts.map +1 -1
- package/dist/engine/render/renderPage.js.map +1 -1
- package/dist/engine/render/renderers/composition/CardRenderer.js +4 -4
- package/dist/engine/render/renderers/content/LinkRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/content/LinkRenderer.js +41 -16
- package/dist/engine/render/renderers/content/LinkRenderer.js.map +1 -1
- package/dist/engine/render/renderers/content/SocialLinksRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/content/SocialLinksRenderer.js +16 -23
- package/dist/engine/render/renderers/content/SocialLinksRenderer.js.map +1 -1
- package/dist/engine/render/renderers/forms/FormRenderer.js +6 -6
- package/dist/engine/render/renderers/layout/GridRenderer.js +3 -3
- package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js +199 -0
- package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js +293 -0
- package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts +3 -0
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts.map +1 -0
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js +101 -0
- package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js.map +1 -0
- package/dist/engine/render/renderers/sections/CtaRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/CtaRenderer.js +33 -31
- package/dist/engine/render/renderers/sections/CtaRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FaqItemRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/FaqItemRenderer.js +7 -6
- package/dist/engine/render/renderers/sections/FaqItemRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FaqRenderer.js +7 -7
- package/dist/engine/render/renderers/sections/FaqRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FeatureGridRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/FeatureGridRenderer.js +19 -18
- package/dist/engine/render/renderers/sections/FeatureGridRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FeatureRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/FeatureRenderer.js +5 -4
- package/dist/engine/render/renderers/sections/FeatureRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/FooterRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/FooterRenderer.js +25 -30
- package/dist/engine/render/renderers/sections/FooterRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/HeroRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/HeroRenderer.js +293 -229
- package/dist/engine/render/renderers/sections/HeroRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/NavbarRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/NavbarRenderer.js +23 -22
- package/dist/engine/render/renderers/sections/NavbarRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/PricingCardRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/PricingCardRenderer.js +7 -6
- package/dist/engine/render/renderers/sections/PricingCardRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/PricingRenderer.js +9 -9
- package/dist/engine/render/renderers/sections/PricingRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/TestimonialGridRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js +17 -16
- package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/TestimonialRenderer.d.ts.map +1 -1
- package/dist/engine/render/renderers/sections/TestimonialRenderer.js +11 -10
- package/dist/engine/render/renderers/sections/TestimonialRenderer.js.map +1 -1
- package/dist/engine/render/renderers/sections/index.js +24 -18
- package/dist/engine/render/renderers/sections/index.js.map +1 -1
- package/dist/engine/schema/siteDocument.d.ts +118 -7
- package/dist/engine/schema/siteDocument.d.ts.map +1 -1
- package/dist/engine/schema/siteDocument.js +1 -1
- package/dist/engine/schema/siteDocument.js.map +1 -1
- package/dist/engine/schema/themeTokens.d.ts +1 -1
- package/dist/engine/schema/themeTokens.js.map +1 -1
- package/dist/engine/shared/carouselAnimation.d.ts +20 -0
- package/dist/engine/shared/carouselAnimation.d.ts.map +1 -0
- package/dist/engine/shared/carouselAnimation.js +62 -0
- package/dist/engine/shared/carouselAnimation.js.map +1 -0
- package/dist/engine/shared/imageGrid/presets.js +4 -12
- package/dist/engine/shared/imageGrid/presets.js.map +1 -1
- package/dist/engine/shared/imageGrid/types.d.ts +2 -0
- package/dist/engine/shared/imageGrid/types.d.ts.map +1 -1
- package/dist/engine/shared/layoutConstants.d.ts +13 -0
- package/dist/engine/shared/layoutConstants.d.ts.map +1 -0
- package/dist/engine/shared/layoutConstants.js +14 -0
- package/dist/engine/shared/layoutConstants.js.map +1 -0
- package/dist/engine/shared/shadowConstants.d.ts +5 -0
- package/dist/engine/shared/shadowConstants.d.ts.map +1 -0
- package/dist/engine/shared/shadowConstants.js +11 -0
- package/dist/engine/shared/shadowConstants.js.map +1 -0
- package/dist/engine/shared/showWhen.d.ts +44 -0
- package/dist/engine/shared/showWhen.d.ts.map +1 -0
- package/dist/engine/shared/showWhen.js +33 -0
- package/dist/engine/shared/showWhen.js.map +1 -0
- package/dist/engine/shared/socialIcons.d.ts +6 -0
- package/dist/engine/shared/socialIcons.d.ts.map +1 -0
- package/dist/engine/shared/socialIcons.js +13 -0
- package/dist/engine/shared/socialIcons.js.map +1 -0
- package/dist/engine/shared/typeGuards.d.ts +11 -0
- package/dist/engine/shared/typeGuards.d.ts.map +1 -0
- package/dist/hooks/useEditorState.d.ts +8 -5
- package/dist/hooks/useEditorState.d.ts.map +1 -1
- package/dist/hooks/useEditorState.js +150 -194
- package/dist/hooks/useEditorState.js.map +1 -1
- package/dist/hooks/useNavbarAutoSync.d.ts +2 -2
- package/dist/hooks/useNavbarAutoSync.d.ts.map +1 -1
- package/dist/hooks/useNavbarAutoSync.js.map +1 -1
- package/dist/index.d.ts +60 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +109 -124
- package/dist/index.js.map +1 -1
- package/dist/shared/index.d.ts +2 -2
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/schema.d.ts +4 -4
- package/dist/shared/schema.d.ts.map +1 -1
- package/dist/shared/schema.js.map +1 -1
- package/dist/shared/templates/escola-blog.d.ts +3 -0
- package/dist/shared/templates/escola-blog.d.ts.map +1 -0
- package/dist/shared/templates/escola-blog.js +160 -0
- package/dist/shared/templates/escola-blog.js.map +1 -0
- package/dist/shared/templates/escola-edvi.d.ts +2 -2
- package/dist/shared/templates/escola-edvi.d.ts.map +1 -1
- package/dist/shared/templates/escola-edvi.js.map +1 -1
- package/dist/shared/templates/escola-premium.d.ts +2 -2
- package/dist/shared/templates/escola-premium.d.ts.map +1 -1
- package/dist/shared/templates/escola-premium.js.map +1 -1
- package/dist/shared/templates/escola-zilom.d.ts +2 -2
- package/dist/shared/templates/escola-zilom.d.ts.map +1 -1
- package/dist/shared/templates/escola-zilom.js.map +1 -1
- package/dist/shared/templates/index.d.ts +7 -5
- package/dist/shared/templates/index.d.ts.map +1 -1
- package/dist/shared/templates/index.js +30 -12
- package/dist/shared/templates/index.js.map +1 -1
- package/dist/shared/validators.d.ts +3 -3
- package/dist/shared/validators.d.ts.map +1 -1
- package/dist/shared/validators.js.map +1 -1
- package/dist/site/BlockRenderer.d.ts +1 -1
- package/dist/site/BlockRenderer.d.ts.map +1 -1
- package/dist/site/BlockRenderer.js +22 -26
- package/dist/site/BlockRenderer.js.map +1 -1
- package/dist/site/blocks/Button.js +15 -17
- package/dist/site/blocks/Button.js.map +1 -1
- package/dist/site/blocks/Card.js +13 -15
- package/dist/site/blocks/Card.js.map +1 -1
- package/dist/site/blocks/Features.js +15 -17
- package/dist/site/blocks/Features.js.map +1 -1
- package/dist/site/blocks/Footer.js +10 -12
- package/dist/site/blocks/Footer.js.map +1 -1
- package/dist/site/blocks/Hero.js +12 -14
- package/dist/site/blocks/Hero.js.map +1 -1
- package/dist/site/blocks/Navbar.js +13 -15
- package/dist/site/blocks/Navbar.js.map +1 -1
- package/dist/site/blocks/Section.js +9 -11
- package/dist/site/blocks/Section.js.map +1 -1
- package/dist/site/blocks/SectionHeader.js +9 -11
- package/dist/site/blocks/SectionHeader.js.map +1 -1
- package/dist/site/blocks/SiteRoot.js +9 -12
- package/dist/site/blocks/SiteRoot.js.map +1 -1
- package/dist/site/index.js +73 -73
- package/dist/styles/site/sections.css.d.ts +1 -1
- package/dist/utils/blockUtils.d.ts +2 -2
- package/dist/utils/blockUtils.d.ts.map +1 -1
- package/dist/utils/blockUtils.js.map +1 -1
- package/dist/utils/changeDetector.d.ts +3 -2
- package/dist/utils/changeDetector.d.ts.map +1 -1
- package/dist/utils/changeDetector.js +39 -39
- package/dist/utils/changeDetector.js.map +1 -1
- package/dist/utils/cn.js +2 -2
- package/dist/utils/dataURLUtils.d.ts +24 -0
- package/dist/utils/dataURLUtils.d.ts.map +1 -0
- package/dist/utils/dataURLUtils.js +47 -0
- package/dist/utils/dataURLUtils.js.map +1 -0
- package/dist/utils/documentHash.d.ts +2 -2
- package/dist/utils/documentHash.d.ts.map +1 -1
- package/dist/utils/documentHash.js +8 -7
- package/dist/utils/documentHash.js.map +1 -1
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +13 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/navbarSync.d.ts +3 -3
- package/dist/utils/navbarSync.d.ts.map +1 -1
- package/dist/utils/navbarSync.js +25 -24
- package/dist/utils/navbarSync.js.map +1 -1
- package/dist/utils/sharedTemplateToEngine.d.ts +7 -8
- package/dist/utils/sharedTemplateToEngine.d.ts.map +1 -1
- package/dist/utils/sharedTemplateToEngine.js +14 -87
- package/dist/utils/sharedTemplateToEngine.js.map +1 -1
- package/dist/viewer/LandingPageViewer.d.ts +32 -0
- package/dist/viewer/LandingPageViewer.d.ts.map +1 -0
- package/dist/viewer/LandingPageViewer.js +300 -0
- package/dist/viewer/LandingPageViewer.js.map +1 -0
- package/package.json +10 -5
- package/dist/components/ComponentPalette/definitions.d.ts +0 -3
- package/dist/components/ComponentPalette/definitions.d.ts.map +0 -1
- package/dist/components/ComponentPalette/definitions.js +0 -206
- package/dist/components/ComponentPalette/definitions.js.map +0 -1
- package/dist/components/ComponentPalette/index.d.ts +0 -7
- package/dist/components/ComponentPalette/index.d.ts.map +0 -1
- package/dist/components/ComponentPalette/index.js +0 -86
- package/dist/components/ComponentPalette/index.js.map +0 -1
- package/dist/components/LoadingSpinner.d.ts.map +0 -1
- package/dist/components/LoadingSpinner.js.map +0 -1
- package/dist/components/PreviewPanel/index.d.ts +0 -12
- package/dist/components/PreviewPanel/index.d.ts.map +0 -1
- package/dist/components/PreviewPanel/index.js +0 -140
- package/dist/components/PreviewPanel/index.js.map +0 -1
- package/dist/components/PropertyPanel/index.d.ts +0 -8
- package/dist/components/PropertyPanel/index.d.ts.map +0 -1
- package/dist/components/PropertyPanel/index.js +0 -223
- package/dist/components/PropertyPanel/index.js.map +0 -1
- package/dist/components/SiteEditor/index.d.ts +0 -3
- package/dist/components/SiteEditor/index.d.ts.map +0 -1
- package/dist/components/SiteEditor/index.js +0 -251
- package/dist/components/SiteEditor/index.js.map +0 -1
- package/dist/components/SiteViewer/index.d.ts +0 -3
- package/dist/components/SiteViewer/index.d.ts.map +0 -1
- package/dist/components/SiteViewer/index.js +0 -55
- package/dist/components/SiteViewer/index.js.map +0 -1
- package/dist/components/TemplateSelector/index.d.ts +0 -7
- package/dist/components/TemplateSelector/index.d.ts.map +0 -1
- package/dist/components/TemplateSelector/index.js +0 -109
- package/dist/components/TemplateSelector/index.js.map +0 -1
- package/dist/components/Toolbar/index.d.ts +0 -15
- package/dist/components/Toolbar/index.d.ts.map +0 -1
- package/dist/components/Toolbar/index.js +0 -113
- package/dist/components/Toolbar/index.js.map +0 -1
- package/dist/components/editors/PaletteSelector.d.ts +0 -14
- package/dist/components/editors/PaletteSelector.d.ts.map +0 -1
- package/dist/components/editors/PaletteSelector.js +0 -175
- package/dist/components/editors/PaletteSelector.js.map +0 -1
- package/dist/components/effects/SectionGlow.d.ts +0 -12
- package/dist/components/effects/SectionGlow.d.ts.map +0 -1
- package/dist/components/effects/SectionGlow.js +0 -139
- package/dist/components/effects/SectionGlow.js.map +0 -1
- package/dist/components/inputs/CheckboxInput.d.ts +0 -3
- package/dist/components/inputs/CheckboxInput.d.ts.map +0 -1
- package/dist/components/inputs/CheckboxInput.js +0 -46
- package/dist/components/inputs/CheckboxInput.js.map +0 -1
- package/dist/components/inputs/ColorInput.d.ts +0 -7
- package/dist/components/inputs/ColorInput.d.ts.map +0 -1
- package/dist/components/inputs/ColorInput.js +0 -180
- package/dist/components/inputs/ColorInput.js.map +0 -1
- package/dist/components/inputs/GradientInput.d.ts +0 -7
- package/dist/components/inputs/GradientInput.d.ts.map +0 -1
- package/dist/components/inputs/GradientInput.js +0 -78
- package/dist/components/inputs/GradientInput.js.map +0 -1
- package/dist/components/inputs/ImageInput.d.ts.map +0 -1
- package/dist/components/inputs/ImageInput.js.map +0 -1
- package/dist/components/inputs/SelectInput.d.ts +0 -7
- package/dist/components/inputs/SelectInput.d.ts.map +0 -1
- package/dist/components/inputs/SelectInput.js +0 -97
- package/dist/components/inputs/SelectInput.js.map +0 -1
- package/dist/components/inputs/SliderInput.d.ts +0 -8
- package/dist/components/inputs/SliderInput.d.ts.map +0 -1
- package/dist/components/inputs/SliderInput.js +0 -77
- package/dist/components/inputs/SliderInput.js.map +0 -1
- package/dist/components/inputs/index.d.ts +0 -11
- package/dist/components/inputs/index.d.ts.map +0 -1
- package/dist/components/inputs/types.d.ts +0 -48
- package/dist/components/inputs/types.d.ts.map +0 -1
- package/dist/components/inputs/types.js +0 -9
- package/dist/components/inputs/types.js.map +0 -1
- package/dist/components/renderers/ComponentRenderer.d.ts +0 -8
- package/dist/components/renderers/ComponentRenderer.d.ts.map +0 -1
- package/dist/components/renderers/ComponentRenderer.js +0 -13
- package/dist/components/renderers/ComponentRenderer.js.map +0 -1
- package/dist/components/renderers/HeroRenderer.d.ts +0 -3
- package/dist/components/renderers/HeroRenderer.d.ts.map +0 -1
- package/dist/components/renderers/HeroRenderer.js +0 -10
- package/dist/components/renderers/HeroRenderer.js.map +0 -1
- package/dist/components/renderers/hero/HeroBanner.d.ts +0 -3
- package/dist/components/renderers/hero/HeroBanner.d.ts.map +0 -1
- package/dist/components/renderers/hero/HeroBanner.js +0 -122
- package/dist/components/renderers/hero/HeroBanner.js.map +0 -1
- package/dist/components/renderers/hero/HeroCinematic.d.ts +0 -3
- package/dist/components/renderers/hero/HeroCinematic.d.ts.map +0 -1
- package/dist/components/renderers/hero/HeroCinematic.js +0 -141
- package/dist/components/renderers/hero/HeroCinematic.js.map +0 -1
- package/dist/components/renderers/hero/HeroClassic.d.ts +0 -3
- package/dist/components/renderers/hero/HeroClassic.d.ts.map +0 -1
- package/dist/components/renderers/hero/HeroClassic.js +0 -241
- package/dist/components/renderers/hero/HeroClassic.js.map +0 -1
- package/dist/components/renderers/hero/HeroCollage.d.ts +0 -3
- package/dist/components/renderers/hero/HeroCollage.d.ts.map +0 -1
- package/dist/components/renderers/hero/HeroCollage.js +0 -131
- package/dist/components/renderers/hero/HeroCollage.js.map +0 -1
- package/dist/components/renderers/hero/HeroColumns.d.ts +0 -3
- package/dist/components/renderers/hero/HeroColumns.d.ts.map +0 -1
- package/dist/components/renderers/hero/HeroColumns.js +0 -114
- package/dist/components/renderers/hero/HeroColumns.js.map +0 -1
- package/dist/components/renderers/hero/HeroGlass.d.ts +0 -3
- package/dist/components/renderers/hero/HeroGlass.d.ts.map +0 -1
- package/dist/components/renderers/hero/HeroGlass.js +0 -119
- package/dist/components/renderers/hero/HeroGlass.js.map +0 -1
- package/dist/components/renderers/hero/HeroNeon.d.ts +0 -3
- package/dist/components/renderers/hero/HeroNeon.d.ts.map +0 -1
- package/dist/components/renderers/hero/HeroNeon.js +0 -136
- package/dist/components/renderers/hero/HeroNeon.js.map +0 -1
- package/dist/components/renderers/hero/HeroParallax.d.ts +0 -3
- package/dist/components/renderers/hero/HeroParallax.d.ts.map +0 -1
- package/dist/components/renderers/hero/HeroParallax.js +0 -99
- package/dist/components/renderers/hero/HeroParallax.js.map +0 -1
- package/dist/components/renderers/hero/HeroSplit.d.ts +0 -3
- package/dist/components/renderers/hero/HeroSplit.d.ts.map +0 -1
- package/dist/components/renderers/hero/HeroSplit.js +0 -142
- package/dist/components/renderers/hero/HeroSplit.js.map +0 -1
- package/dist/components/renderers/hero/HeroSpotlight.d.ts +0 -3
- package/dist/components/renderers/hero/HeroSpotlight.d.ts.map +0 -1
- package/dist/components/renderers/hero/HeroSpotlight.js +0 -213
- package/dist/components/renderers/hero/HeroSpotlight.js.map +0 -1
- package/dist/components/renderers/hero/index.d.ts +0 -14
- package/dist/components/renderers/hero/index.d.ts.map +0 -1
- package/dist/components/renderers/index.d.ts +0 -8
- package/dist/components/renderers/index.d.ts.map +0 -1
- package/dist/components/renderers/index.js +0 -89
- package/dist/components/renderers/index.js.map +0 -1
- package/dist/components/renderers/types.d.ts +0 -11
- package/dist/components/renderers/types.d.ts.map +0 -1
- package/dist/editor/LandingPageEditorV2.d.ts +0 -19
- package/dist/editor/LandingPageEditorV2.d.ts.map +0 -1
- package/dist/editor/LandingPageEditorV2.js +0 -311
- package/dist/editor/LandingPageEditorV2.js.map +0 -1
- package/dist/editor/PropertyEditor/PropertyGroup.js +0 -23
- package/dist/editor/PropertyEditor/PropertyGroup.js.map +0 -1
- package/dist/engine/preview/PreviewV2.d.ts +0 -15
- package/dist/engine/preview/PreviewV2.d.ts.map +0 -1
- package/dist/engine/preview/PreviewV2.js +0 -242
- package/dist/engine/preview/PreviewV2.js.map +0 -1
- package/dist/modules/registry.d.ts +0 -31
- package/dist/modules/registry.d.ts.map +0 -1
- package/dist/modules/registry.js +0 -67
- package/dist/modules/registry.js.map +0 -1
- package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +0 -57
- package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +0 -1
- package/dist/node_modules/@dnd-kit/core/dist/core.esm.js +0 -2345
- package/dist/node_modules/@dnd-kit/core/dist/core.esm.js.map +0 -1
- package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +0 -440
- package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +0 -1
- package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +0 -236
- package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.map +0 -1
- package/dist/node_modules/clsx/dist/clsx.js +0 -17
- package/dist/node_modules/clsx/dist/clsx.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/Icon.js +0 -35
- package/dist/node_modules/lucide-react/dist/esm/Icon.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +0 -18
- package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +0 -15
- package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/arrow-right.js +0 -9
- package/dist/node_modules/lucide-react/dist/esm/icons/arrow-right.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/briefcase.js +0 -9
- package/dist/node_modules/lucide-react/dist/esm/icons/briefcase.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/check.js +0 -6
- package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js +0 -8
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +0 -8
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js +0 -6
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/eye.js +0 -15
- package/dist/node_modules/lucide-react/dist/esm/icons/eye.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js +0 -12
- package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/globe.js +0 -10
- package/dist/node_modules/lucide-react/dist/esm/icons/globe.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/grid-3x3.js +0 -12
- package/dist/node_modules/lucide-react/dist/esm/icons/grid-3x3.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.js +0 -13
- package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/heading.js +0 -10
- package/dist/node_modules/lucide-react/dist/esm/icons/heading.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/image.js +0 -10
- package/dist/node_modules/lucide-react/dist/esm/icons/image.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/images.js +0 -11
- package/dist/node_modules/lucide-react/dist/esm/icons/images.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/list.js +0 -13
- package/dist/node_modules/lucide-react/dist/esm/icons/list.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.js +0 -8
- package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/minus.js +0 -6
- package/dist/node_modules/lucide-react/dist/esm/icons/minus.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/mouse-pointer-click.js +0 -18
- package/dist/node_modules/lucide-react/dist/esm/icons/mouse-pointer-click.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/navigation.js +0 -8
- package/dist/node_modules/lucide-react/dist/esm/icons/navigation.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js +0 -10
- package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/phone.js +0 -14
- package/dist/node_modules/lucide-react/dist/esm/icons/phone.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/plus.js +0 -9
- package/dist/node_modules/lucide-react/dist/esm/icons/plus.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/redo-2.js +0 -9
- package/dist/node_modules/lucide-react/dist/esm/icons/redo-2.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/redo.js +0 -9
- package/dist/node_modules/lucide-react/dist/esm/icons/redo.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js +0 -9
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/save.js +0 -16
- package/dist/node_modules/lucide-react/dist/esm/icons/save.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/square.js +0 -8
- package/dist/node_modules/lucide-react/dist/esm/icons/square.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/star.js +0 -14
- package/dist/node_modules/lucide-react/dist/esm/icons/star.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/trash-2.js +0 -12
- package/dist/node_modules/lucide-react/dist/esm/icons/trash-2.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/type.js +0 -10
- package/dist/node_modules/lucide-react/dist/esm/icons/type.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/undo-2.js +0 -9
- package/dist/node_modules/lucide-react/dist/esm/icons/undo-2.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/undo.js +0 -9
- package/dist/node_modules/lucide-react/dist/esm/icons/undo.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/user.js +0 -9
- package/dist/node_modules/lucide-react/dist/esm/icons/user.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +0 -6
- package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +0 -1
- package/dist/node_modules/react-colorful/dist/index.js +0 -167
- package/dist/node_modules/react-colorful/dist/index.js.map +0 -1
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2266
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
- package/dist/types/index.d.ts +0 -99
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/module.d.ts +0 -25
- package/dist/types/module.d.ts.map +0 -1
- package/dist/utils/htmlExporter.d.ts +0 -6
- package/dist/utils/htmlExporter.d.ts.map +0 -1
- package/dist/utils/htmlExporter.js +0 -92
- package/dist/utils/htmlExporter.js.map +0 -1
- package/dist/utils/themeApplier.d.ts +0 -11
- package/dist/utils/themeApplier.d.ts.map +0 -1
- package/dist/utils/themeApplier.js +0 -29
- package/dist/utils/themeApplier.js.map +0 -1
- package/dist/utils/useDebounce.d.ts +0 -12
- package/dist/utils/useDebounce.d.ts.map +0 -1
- package/dist/viewer/LandingPageViewerV2.d.ts +0 -25
- package/dist/viewer/LandingPageViewerV2.d.ts.map +0 -1
- package/dist/viewer/LandingPageViewerV2.js +0 -253
- package/dist/viewer/LandingPageViewerV2.js.map +0 -1
- /package/dist/{components → editor/PropertyEditor}/inputs/ImageInput.d.ts +0 -0
- /package/dist/{components → editor/components}/LoadingSpinner.d.ts +0 -0
- /package/dist/{components → editor/components}/LoadingSpinner.js +0 -0
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import { jsxs as c, jsx as n } from "react/jsx-runtime";
|
|
2
|
-
import { useState as m, useRef as b, useEffect as h } from "react";
|
|
3
|
-
import { createPortal as E } from "react-dom";
|
|
4
|
-
import { HexColorPicker as _ } from "../../node_modules/react-colorful/dist/index.js";
|
|
5
|
-
import { cn as R } from "../../utils/cn.js";
|
|
6
|
-
function C(r, o) {
|
|
7
|
-
if (!r || r === "") return o;
|
|
8
|
-
if (/^#[0-9A-Fa-f]{6}$/i.test(r)) return r;
|
|
9
|
-
if (/^#[0-9A-Fa-f]{3}$/i.test(r)) {
|
|
10
|
-
const t = r.slice(1);
|
|
11
|
-
return `#${t[0]}${t[0]}${t[1]}${t[1]}${t[2]}${t[2]}`;
|
|
12
|
-
}
|
|
13
|
-
return o;
|
|
14
|
-
}
|
|
15
|
-
function S({
|
|
16
|
-
value: r,
|
|
17
|
-
onChange: o,
|
|
18
|
-
onClear: t,
|
|
19
|
-
label: d,
|
|
20
|
-
placeholder: l = "#ffffff",
|
|
21
|
-
size: u = "medium"
|
|
22
|
-
}) {
|
|
23
|
-
const [a, f] = m(!1), g = b(null), i = b(null), p = b(null), v = C(r, l), [N, x] = m(v);
|
|
24
|
-
h(() => {
|
|
25
|
-
const e = C(r, l);
|
|
26
|
-
x(e);
|
|
27
|
-
}, [r, l]), h(() => {
|
|
28
|
-
const e = (w) => {
|
|
29
|
-
g.current && !g.current.contains(w.target) && i.current && !i.current.contains(w.target) && f(!1);
|
|
30
|
-
};
|
|
31
|
-
return document.addEventListener("mousedown", e), () => {
|
|
32
|
-
document.removeEventListener("mousedown", e);
|
|
33
|
-
};
|
|
34
|
-
}, []);
|
|
35
|
-
const y = () => {
|
|
36
|
-
if (!i.current) return { top: 0, left: 0 };
|
|
37
|
-
const e = i.current.getBoundingClientRect();
|
|
38
|
-
return {
|
|
39
|
-
top: e.bottom + window.scrollY + 8,
|
|
40
|
-
left: Math.max(8, e.left + window.scrollX)
|
|
41
|
-
};
|
|
42
|
-
}, [k, $] = m(y());
|
|
43
|
-
h(() => {
|
|
44
|
-
if (!a) return;
|
|
45
|
-
const e = () => $(y());
|
|
46
|
-
return window.addEventListener("scroll", e, !0), window.addEventListener("resize", e), e(), () => {
|
|
47
|
-
window.removeEventListener("scroll", e, !0), window.removeEventListener("resize", e);
|
|
48
|
-
};
|
|
49
|
-
}, [a]);
|
|
50
|
-
const L = (e) => {
|
|
51
|
-
x(e), p.current && window.clearTimeout(p.current), p.current = window.setTimeout(() => {
|
|
52
|
-
o(e);
|
|
53
|
-
}, 50);
|
|
54
|
-
}, P = (e) => {
|
|
55
|
-
(/^#[0-9A-Fa-f]{0,6}$/.test(e) || e === "#" || e === "") && (x(e || "#"), /^#[0-9A-Fa-f]{6}$/i.test(e) && o(e));
|
|
56
|
-
}, s = N;
|
|
57
|
-
return /* @__PURE__ */ c("div", { className: "space-y-1.5", ref: i, children: [
|
|
58
|
-
d && /* @__PURE__ */ n("label", { className: "block text-xs font-medium text-gray-800 dark:text-gray-100", children: d }),
|
|
59
|
-
/* @__PURE__ */ c("div", { className: "flex items-center gap-2", children: [
|
|
60
|
-
/* @__PURE__ */ c(
|
|
61
|
-
"button",
|
|
62
|
-
{
|
|
63
|
-
type: "button",
|
|
64
|
-
onClick: () => f(!a),
|
|
65
|
-
"aria-label": d || "Selecionar cor",
|
|
66
|
-
className: R(
|
|
67
|
-
"relative cursor-pointer transition-all rounded-lg border-2 flex-shrink-0",
|
|
68
|
-
"hover:scale-[1.02] active:scale-[0.98]",
|
|
69
|
-
a ? "ring-2 ring-blue-500 ring-offset-2 dark:ring-offset-gray-900" : "border-gray-300 dark:border-gray-600",
|
|
70
|
-
u === "small" && "w-10 h-8",
|
|
71
|
-
u === "medium" && "w-12 h-9",
|
|
72
|
-
u === "large" && "w-16 h-10"
|
|
73
|
-
),
|
|
74
|
-
children: [
|
|
75
|
-
/* @__PURE__ */ n(
|
|
76
|
-
"div",
|
|
77
|
-
{
|
|
78
|
-
className: "absolute inset-0.5 rounded-md",
|
|
79
|
-
style: {
|
|
80
|
-
background: `linear-gradient(45deg, #ccc 25%, transparent 25%),
|
|
81
|
-
linear-gradient(-45deg, #ccc 25%, transparent 25%),
|
|
82
|
-
linear-gradient(45deg, transparent 75%, #ccc 75%),
|
|
83
|
-
linear-gradient(-45deg, transparent 75%, #ccc 75%)`,
|
|
84
|
-
backgroundSize: "8px 8px",
|
|
85
|
-
backgroundPosition: "0 0, 0 4px, 4px -4px, -4px 0px"
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
),
|
|
89
|
-
/* @__PURE__ */ n(
|
|
90
|
-
"div",
|
|
91
|
-
{
|
|
92
|
-
className: "absolute inset-0.5 rounded-md",
|
|
93
|
-
style: { backgroundColor: s }
|
|
94
|
-
}
|
|
95
|
-
)
|
|
96
|
-
]
|
|
97
|
-
}
|
|
98
|
-
),
|
|
99
|
-
/* @__PURE__ */ n("span", { className: "text-xs font-mono text-gray-600 dark:text-gray-400 uppercase", children: s }),
|
|
100
|
-
t && /* @__PURE__ */ n(
|
|
101
|
-
"button",
|
|
102
|
-
{
|
|
103
|
-
type: "button",
|
|
104
|
-
onClick: () => {
|
|
105
|
-
t(), f(!1);
|
|
106
|
-
},
|
|
107
|
-
className: "ml-auto text-xs text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 transition-colors",
|
|
108
|
-
children: "Limpar"
|
|
109
|
-
}
|
|
110
|
-
)
|
|
111
|
-
] }),
|
|
112
|
-
a && E(
|
|
113
|
-
/* @__PURE__ */ c(
|
|
114
|
-
"div",
|
|
115
|
-
{
|
|
116
|
-
ref: g,
|
|
117
|
-
className: "fixed bg-white dark:bg-gray-900 rounded-xl shadow-2xl border border-gray-200 dark:border-gray-700 p-4",
|
|
118
|
-
style: {
|
|
119
|
-
top: k.top,
|
|
120
|
-
left: k.left,
|
|
121
|
-
zIndex: 2147483647
|
|
122
|
-
// Máximo z-index possível
|
|
123
|
-
},
|
|
124
|
-
children: [
|
|
125
|
-
/* @__PURE__ */ n("style", { children: `
|
|
126
|
-
.react-colorful {
|
|
127
|
-
width: 220px !important;
|
|
128
|
-
height: 160px !important;
|
|
129
|
-
}
|
|
130
|
-
.react-colorful__saturation {
|
|
131
|
-
border-radius: 8px 8px 0 0;
|
|
132
|
-
}
|
|
133
|
-
.react-colorful__hue {
|
|
134
|
-
height: 20px;
|
|
135
|
-
border-radius: 0 0 8px 8px;
|
|
136
|
-
}
|
|
137
|
-
.react-colorful__pointer {
|
|
138
|
-
width: 18px;
|
|
139
|
-
height: 18px;
|
|
140
|
-
border: 2px solid #ffffff;
|
|
141
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
|
142
|
-
}
|
|
143
|
-
` }),
|
|
144
|
-
/* @__PURE__ */ n(
|
|
145
|
-
_,
|
|
146
|
-
{
|
|
147
|
-
color: s,
|
|
148
|
-
onChange: L
|
|
149
|
-
}
|
|
150
|
-
),
|
|
151
|
-
/* @__PURE__ */ c("div", { className: "mt-3 flex items-center gap-2", children: [
|
|
152
|
-
/* @__PURE__ */ n(
|
|
153
|
-
"div",
|
|
154
|
-
{
|
|
155
|
-
className: "w-8 h-8 rounded-lg border-2 border-gray-200 dark:border-gray-700 flex-shrink-0",
|
|
156
|
-
style: { backgroundColor: s }
|
|
157
|
-
}
|
|
158
|
-
),
|
|
159
|
-
/* @__PURE__ */ n(
|
|
160
|
-
"input",
|
|
161
|
-
{
|
|
162
|
-
type: "text",
|
|
163
|
-
value: s.toUpperCase(),
|
|
164
|
-
onChange: (e) => P(e.target.value),
|
|
165
|
-
className: "flex-1 px-2 py-1.5 text-xs font-mono bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg text-gray-700 dark:text-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500",
|
|
166
|
-
placeholder: "#000000"
|
|
167
|
-
}
|
|
168
|
-
)
|
|
169
|
-
] })
|
|
170
|
-
]
|
|
171
|
-
}
|
|
172
|
-
),
|
|
173
|
-
document.body
|
|
174
|
-
)
|
|
175
|
-
] });
|
|
176
|
-
}
|
|
177
|
-
export {
|
|
178
|
-
S as ColorInput
|
|
179
|
-
};
|
|
180
|
-
//# sourceMappingURL=ColorInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColorInput.js","sources":["../../../src/components/inputs/ColorInput.tsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react'\nimport { createPortal } from 'react-dom'\nimport { HexColorPicker } from 'react-colorful'\nimport { ColorInputConfig } from './types'\nimport { cn } from '../../utils/cn'\n\ninterface ColorInputProps extends ColorInputConfig {\n onClear?: () => void\n}\n\n/**\n * Normaliza uma cor para garantir que é um hex válido\n */\nfunction normalizeColor(color: string | undefined, fallback: string): string {\n if (!color || color === '') return fallback\n // Se já é um hex válido, retorna\n if (/^#[0-9A-Fa-f]{6}$/i.test(color)) return color\n // Se é hex curto, expande\n if (/^#[0-9A-Fa-f]{3}$/i.test(color)) {\n const hex = color.slice(1)\n return `#${hex[0]}${hex[0]}${hex[1]}${hex[1]}${hex[2]}${hex[2]}`\n }\n return fallback\n}\n\nexport function ColorInput({\n value,\n onChange,\n onClear,\n label,\n placeholder = '#ffffff',\n size = 'medium',\n}: ColorInputProps) {\n const [isOpen, setIsOpen] = useState(false)\n const pickerRef = useRef<HTMLDivElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n const debounceRef = useRef<number | null>(null)\n\n // Cor efetiva - sempre normalizada\n const effectiveColor = normalizeColor(value, placeholder)\n\n // Estado local para feedback visual imediato durante drag\n const [localColor, setLocalColor] = useState(effectiveColor)\n\n // Sincronizar estado local quando o value externo mudar\n useEffect(() => {\n const normalized = normalizeColor(value, placeholder)\n setLocalColor(normalized)\n }, [value, placeholder])\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n pickerRef.current &&\n !pickerRef.current.contains(event.target as Node) &&\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false)\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [])\n\n const computePickerPosition = () => {\n if (!containerRef.current) return { top: 0, left: 0 }\n const rect = containerRef.current.getBoundingClientRect()\n return {\n top: rect.bottom + window.scrollY + 8,\n left: Math.max(8, rect.left + window.scrollX),\n }\n }\n\n const [pickerPos, setPickerPos] = useState(computePickerPosition())\n\n useEffect(() => {\n if (!isOpen) return\n const update = () => setPickerPos(computePickerPosition())\n window.addEventListener('scroll', update, true)\n window.addEventListener('resize', update)\n update()\n return () => {\n window.removeEventListener('scroll', update, true)\n window.removeEventListener('resize', update)\n }\n }, [isOpen])\n\n const handleColorChange = (color: string) => {\n // Atualizar o estado local imediatamente para feedback visual\n setLocalColor(color)\n\n // Debounce para chamar o onChange\n if (debounceRef.current) {\n window.clearTimeout(debounceRef.current)\n }\n debounceRef.current = window.setTimeout(() => {\n onChange(color)\n }, 50) as unknown as number\n }\n\n const handleTextChange = (val: string) => {\n // Permitir digitação parcial\n if (/^#[0-9A-Fa-f]{0,6}$/.test(val) || val === '#' || val === '') {\n setLocalColor(val || '#')\n // Só chamar onChange quando for um hex completo\n if (/^#[0-9A-Fa-f]{6}$/i.test(val)) {\n onChange(val)\n }\n }\n }\n\n // Cor a ser exibida (usa localColor para feedback imediato)\n const displayColor = localColor\n\n return (\n <div className=\"space-y-1.5\" ref={containerRef}>\n {/* Label */}\n {label && (\n <label className=\"block text-xs font-medium text-gray-800 dark:text-gray-100\">\n {label}\n </label>\n )}\n\n {/* Color swatch com hex */}\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={() => setIsOpen(!isOpen)}\n aria-label={label || 'Selecionar cor'}\n className={cn(\n 'relative cursor-pointer transition-all rounded-lg border-2 flex-shrink-0',\n 'hover:scale-[1.02] active:scale-[0.98]',\n isOpen\n ? 'ring-2 ring-blue-500 ring-offset-2 dark:ring-offset-gray-900'\n : 'border-gray-300 dark:border-gray-600',\n size === 'small' && 'w-10 h-8',\n size === 'medium' && 'w-12 h-9',\n size === 'large' && 'w-16 h-10'\n )}\n >\n {/* Checkerboard pattern for transparency */}\n <div\n className=\"absolute inset-0.5 rounded-md\"\n style={{\n background: `linear-gradient(45deg, #ccc 25%, transparent 25%),\n linear-gradient(-45deg, #ccc 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #ccc 75%),\n linear-gradient(-45deg, transparent 75%, #ccc 75%)`,\n backgroundSize: '8px 8px',\n backgroundPosition: '0 0, 0 4px, 4px -4px, -4px 0px',\n }}\n />\n <div\n className=\"absolute inset-0.5 rounded-md\"\n style={{ backgroundColor: displayColor }}\n />\n </button>\n\n {/* Hex value display */}\n <span className=\"text-xs font-mono text-gray-600 dark:text-gray-400 uppercase\">\n {displayColor}\n </span>\n\n {onClear && (\n <button\n type=\"button\"\n onClick={() => {\n onClear()\n setIsOpen(false)\n }}\n className=\"ml-auto text-xs text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 transition-colors\"\n >\n Limpar\n </button>\n )}\n </div>\n\n {/* Color picker portal - z-index muito alto para ficar acima de tudo */}\n {isOpen &&\n createPortal(\n <div\n ref={pickerRef}\n className=\"fixed bg-white dark:bg-gray-900 rounded-xl shadow-2xl border border-gray-200 dark:border-gray-700 p-4\"\n style={{\n top: pickerPos.top,\n left: pickerPos.left,\n zIndex: 2147483647, // Máximo z-index possível\n }}\n >\n <style>{`\n .react-colorful {\n width: 220px !important;\n height: 160px !important;\n }\n .react-colorful__saturation {\n border-radius: 8px 8px 0 0;\n }\n .react-colorful__hue {\n height: 20px;\n border-radius: 0 0 8px 8px;\n }\n .react-colorful__pointer {\n width: 18px;\n height: 18px;\n border: 2px solid #ffffff;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n }\n `}</style>\n <HexColorPicker\n color={displayColor}\n onChange={handleColorChange}\n />\n\n {/* Hex value input */}\n <div className=\"mt-3 flex items-center gap-2\">\n <div\n className=\"w-8 h-8 rounded-lg border-2 border-gray-200 dark:border-gray-700 flex-shrink-0\"\n style={{ backgroundColor: displayColor }}\n />\n <input\n type=\"text\"\n value={displayColor.toUpperCase()}\n onChange={(e) => handleTextChange(e.target.value)}\n className=\"flex-1 px-2 py-1.5 text-xs font-mono bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg text-gray-700 dark:text-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500\"\n placeholder=\"#000000\"\n />\n </div>\n </div>,\n document.body\n )}\n </div>\n )\n}\n"],"names":["normalizeColor","color","fallback","hex","ColorInput","value","onChange","onClear","label","placeholder","size","isOpen","setIsOpen","useState","pickerRef","useRef","containerRef","debounceRef","effectiveColor","localColor","setLocalColor","useEffect","normalized","handleClickOutside","event","computePickerPosition","rect","pickerPos","setPickerPos","update","handleColorChange","handleTextChange","val","displayColor","jsxs","jsx","cn","createPortal","HexColorPicker"],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { GradientInputConfig } from './types';
|
|
2
|
-
interface GradientInputProps extends GradientInputConfig {
|
|
3
|
-
onClear?: () => void;
|
|
4
|
-
}
|
|
5
|
-
export declare function GradientInput({ enabled, startColor, endColor, onEnabledChange, onStartColorChange, onEndColorChange, onClear, }: GradientInputProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export {};
|
|
7
|
-
//# sourceMappingURL=GradientInput.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GradientInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/GradientInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAK7C,UAAU,kBAAmB,SAAQ,mBAAmB;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAe,EACf,UAAU,EACV,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,GACR,EAAE,kBAAkB,2CA6DpB"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { jsxs as a, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { ColorInput as o } from "./ColorInput.js";
|
|
3
|
-
import { CheckboxInput as c } from "./CheckboxInput.js";
|
|
4
|
-
import { cn as g } from "../../utils/cn.js";
|
|
5
|
-
function f({
|
|
6
|
-
enabled: t = !1,
|
|
7
|
-
startColor: d,
|
|
8
|
-
endColor: l,
|
|
9
|
-
onEnabledChange: n,
|
|
10
|
-
onStartColorChange: m,
|
|
11
|
-
onEndColorChange: s,
|
|
12
|
-
onClear: i
|
|
13
|
-
}) {
|
|
14
|
-
return /* @__PURE__ */ a("div", { className: "flex flex-col gap-3", children: [
|
|
15
|
-
/* @__PURE__ */ e(
|
|
16
|
-
c,
|
|
17
|
-
{
|
|
18
|
-
checked: t,
|
|
19
|
-
onChange: (r) => n?.(r),
|
|
20
|
-
label: "Ativar Gradiente"
|
|
21
|
-
}
|
|
22
|
-
),
|
|
23
|
-
t && /* @__PURE__ */ a("div", { className: "flex gap-3 items-center", children: [
|
|
24
|
-
/* @__PURE__ */ a("div", { className: "flex-1", children: [
|
|
25
|
-
/* @__PURE__ */ e("label", { className: "block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1.5", children: "Cor Inicial" }),
|
|
26
|
-
/* @__PURE__ */ e(
|
|
27
|
-
o,
|
|
28
|
-
{
|
|
29
|
-
value: d,
|
|
30
|
-
onChange: (r) => m?.(r),
|
|
31
|
-
size: "medium"
|
|
32
|
-
}
|
|
33
|
-
)
|
|
34
|
-
] }),
|
|
35
|
-
/* @__PURE__ */ a("div", { className: "flex-1", children: [
|
|
36
|
-
/* @__PURE__ */ e("label", { className: "block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1.5", children: "Cor Final" }),
|
|
37
|
-
/* @__PURE__ */ e(
|
|
38
|
-
o,
|
|
39
|
-
{
|
|
40
|
-
value: l,
|
|
41
|
-
onChange: (r) => s?.(r),
|
|
42
|
-
size: "medium"
|
|
43
|
-
}
|
|
44
|
-
)
|
|
45
|
-
] }),
|
|
46
|
-
i && /* @__PURE__ */ e(
|
|
47
|
-
"button",
|
|
48
|
-
{
|
|
49
|
-
type: "button",
|
|
50
|
-
onClick: i,
|
|
51
|
-
className: g(
|
|
52
|
-
"px-3 py-2 text-xs font-medium rounded-md",
|
|
53
|
-
"border border-gray-300 dark:border-gray-600",
|
|
54
|
-
"bg-gray-50 dark:bg-gray-800",
|
|
55
|
-
"text-gray-600 dark:text-gray-300",
|
|
56
|
-
"hover:bg-gray-100 dark:hover:bg-gray-700",
|
|
57
|
-
"transition-colors",
|
|
58
|
-
"self-end"
|
|
59
|
-
),
|
|
60
|
-
children: "Limpar"
|
|
61
|
-
}
|
|
62
|
-
)
|
|
63
|
-
] }),
|
|
64
|
-
t && /* @__PURE__ */ e(
|
|
65
|
-
"div",
|
|
66
|
-
{
|
|
67
|
-
className: "w-full h-12 rounded-lg border border-gray-300 dark:border-gray-600",
|
|
68
|
-
style: {
|
|
69
|
-
background: `linear-gradient(90deg, ${d}, ${l})`
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
)
|
|
73
|
-
] });
|
|
74
|
-
}
|
|
75
|
-
export {
|
|
76
|
-
f as GradientInput
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=GradientInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GradientInput.js","sources":["../../../src/components/inputs/GradientInput.tsx"],"sourcesContent":["import { GradientInputConfig } from './types'\nimport { ColorInput } from './ColorInput'\nimport { CheckboxInput } from './CheckboxInput'\nimport { cn } from '../../utils/cn'\n\ninterface GradientInputProps extends GradientInputConfig {\n onClear?: () => void\n}\n\nexport function GradientInput({\n enabled = false,\n startColor,\n endColor,\n onEnabledChange,\n onStartColorChange,\n onEndColorChange,\n onClear,\n}: GradientInputProps) {\n return (\n <div className=\"flex flex-col gap-3\">\n <CheckboxInput\n checked={enabled}\n onChange={(checked) => onEnabledChange?.(checked)}\n label=\"Ativar Gradiente\"\n />\n\n {enabled && (\n <div className=\"flex gap-3 items-center\">\n <div className=\"flex-1\">\n <label className=\"block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1.5\">\n Cor Inicial\n </label>\n <ColorInput\n value={startColor}\n onChange={(color) => onStartColorChange?.(color)}\n size=\"medium\"\n />\n </div>\n <div className=\"flex-1\">\n <label className=\"block text-xs font-medium text-gray-600 dark:text-gray-400 mb-1.5\">\n Cor Final\n </label>\n <ColorInput\n value={endColor}\n onChange={(color) => onEndColorChange?.(color)}\n size=\"medium\"\n />\n </div>\n {onClear && (\n <button\n type=\"button\"\n onClick={onClear}\n className={cn(\n 'px-3 py-2 text-xs font-medium rounded-md',\n 'border border-gray-300 dark:border-gray-600',\n 'bg-gray-50 dark:bg-gray-800',\n 'text-gray-600 dark:text-gray-300',\n 'hover:bg-gray-100 dark:hover:bg-gray-700',\n 'transition-colors',\n 'self-end'\n )}\n >\n Limpar\n </button>\n )}\n </div>\n )}\n\n {enabled && (\n <div\n className=\"w-full h-12 rounded-lg border border-gray-300 dark:border-gray-600\"\n style={{\n background: `linear-gradient(90deg, ${startColor}, ${endColor})`,\n }}\n />\n )}\n </div>\n )\n}\n"],"names":["GradientInput","enabled","startColor","endColor","onEnabledChange","onStartColorChange","onEndColorChange","onClear","jsxs","jsx","CheckboxInput","checked","ColorInput","color","cn"],"mappings":";;;;AASO,SAASA,EAAc;AAAA,EAC5B,SAAAC,IAAU;AAAA,EACV,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,SAAAC;AACF,GAAuB;AACrB,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,SAAST;AAAA,QACT,UAAU,CAACU,MAAYP,IAAkBO,CAAO;AAAA,QAChD,OAAM;AAAA,MAAA;AAAA,IAAA;AAAA,IAGPV,KACC,gBAAAO,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,UACb,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAA,EAAM,WAAU,qEAAoE,UAAA,eAErF;AAAA,QACA,gBAAAA;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,OAAOV;AAAA,YACP,UAAU,CAACW,MAAUR,IAAqBQ,CAAK;AAAA,YAC/C,MAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAL,EAAC,OAAA,EAAI,WAAU,UACb,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAA,EAAM,WAAU,qEAAoE,UAAA,aAErF;AAAA,QACA,gBAAAA;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,OAAOT;AAAA,YACP,UAAU,CAACU,MAAUP,IAAmBO,CAAK;AAAA,YAC7C,MAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACP,GACF;AAAA,MACCN,KACC,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAASF;AAAA,UACT,WAAWO;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAEH,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAED,GAEJ;AAAA,IAGDb,KACC,gBAAAQ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA,UACL,YAAY,0BAA0BP,CAAU,KAAKC,CAAQ;AAAA,QAAA;AAAA,MAC/D;AAAA,IAAA;AAAA,EACF,GAEJ;AAEJ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImageInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/ImageInput.tsx"],"names":[],"mappings":"AAGA,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;IAE/C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAA;CAC5C;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,YAAmB,EACnB,SAAa,EACb,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,SAAmB,EACnB,WAAmB,EACnB,aAAa,GACd,EAAE,eAAe,2CA4MjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImageInput.js","sources":["../../../src/components/inputs/ImageInput.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { cn } from '../../utils/cn'\n\ninterface ImageInputProps {\n value?: string\n onChange: (v?: string) => void\n label?: string\n size?: { width: number; height: number }\n showUrlInput?: boolean\n maxSizeMB?: number\n // Novos: Contexto para upload seguro\n tenantId?: string\n schoolId?: string\n siteId?: string\n authToken?: string\n assetType?: 'image' | 'video' | 'icon' | 'logo'\n // Novo: Modo de preview (Data URL) sem upload imediato\n deferUpload?: boolean\n onPendingFile?: (file: File | null) => void\n}\n\nexport function ImageInput({\n value,\n onChange,\n label,\n size,\n showUrlInput = true,\n maxSizeMB = 5,\n tenantId,\n schoolId,\n siteId,\n authToken,\n assetType = 'image',\n deferUpload = false,\n onPendingFile,\n}: ImageInputProps) {\n const [uploading, setUploading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n const handleFileChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n console.log('[ImageInput] Upload config:', { tenantId, schoolId, siteId, hasAuthToken: !!authToken, assetType })\n const file = e.target.files?.[0]\n if (!file) return\n\n // Validação de tamanho\n const maxBytes = maxSizeMB * 1024 * 1024\n if (file.size > maxBytes) {\n setError(`Arquivo muito grande. Máximo: ${maxSizeMB}MB`)\n return\n }\n\n // Validação de tipo\n if (!file.type.startsWith('image/') && !file.type.startsWith('video/')) {\n setError('Apenas imagens e vídeos são permitidos')\n return\n }\n\n setError(null)\n\n // MODO PREVIEW: Usar Data URL sem fazer upload imediato\n if (deferUpload) {\n try {\n const reader = new FileReader()\n reader.onload = (e) => {\n const dataUrl = e.target?.result as string\n onChange(dataUrl) // Passa Data URL para preview\n if (onPendingFile) {\n onPendingFile(file) // Notifica que há upload pendente\n }\n }\n reader.onerror = () => {\n setError('Erro ao ler o arquivo')\n }\n reader.readAsDataURL(file)\n } catch (err) {\n console.error(\"Erro ao criar preview:\", err)\n setError(err instanceof Error ? err.message : \"Erro ao processar imagem\")\n }\n return\n }\n\n // MODO NORMAL: Upload imediato (comportamento original)\n // Verificar se tem autenticação (novo endpoint requer)\n if (!authToken) {\n setError('Autenticação necessária para upload')\n return\n }\n\n if (!tenantId) {\n setError('Contexto do tenant é necessário')\n return\n }\n\n setUploading(true)\n\n try {\n const formData = new FormData()\n formData.append('file', file)\n\n const apiUrl = (import.meta as any).env.VITE_API_URL || 'http://localhost:3001'\n\n // Construir query parameters\n const params = new URLSearchParams({ tenantId, assetType })\n if (schoolId) params.append('schoolId', schoolId)\n if (siteId) params.append('siteId', siteId)\n\n const res = await fetch(`${apiUrl}/api/site-assets/upload?${params}`, {\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${authToken}`,\n },\n body: formData,\n })\n\n if (!res.ok) {\n const errorData = await res.json().catch(() => ({}))\n if (res.status === 401) {\n throw new Error('Sessão expirada. Faça login novamente.')\n }\n throw new Error(errorData.message || 'Upload falhou')\n }\n\n const data = await res.json()\n // Usar a URL pública retornada do Supabase Storage\n onChange(data.url)\n setError(null)\n } catch (err) {\n console.error(\"Erro no upload:\", err)\n setError(err instanceof Error ? err.message : \"Erro ao fazer upload da imagem\")\n } finally {\n setUploading(false)\n }\n }\n\n return (\n <div className=\"space-y-2 flex flex-col items-center\">\n {/* Label */}\n {label && (\n <label className=\"block text-xs font-medium text-gray-800 dark:text-gray-100 text-center\">\n {label}\n </label>\n )}\n\n {/* Input file oculto */}\n <input\n ref={(el) => {\n if (el) (window as any).__imageInputRef = el;\n }}\n type=\"file\"\n accept=\"image/*\"\n onChange={handleFileChange}\n disabled={uploading}\n className=\"hidden\"\n id={`image-input-${Math.random()}`}\n />\n\n {/* Preview clicável - Funciona como botão */}\n <button\n type=\"button\"\n onClick={() => {\n const input = document.querySelector('input[type=\"file\"][accept=\"image/*\"]') as HTMLInputElement;\n if (input) {\n input.value = ''; // Limpar valor para permitir selecionar o mesmo arquivo novamente\n input.click();\n }\n }}\n disabled={uploading}\n className={cn(\n 'rounded-lg overflow-hidden border-2 transition-all duration-200',\n 'flex items-center justify-center',\n 'bg-gray-50 dark:bg-gray-800 hover:bg-gray-100 dark:hover:bg-gray-700',\n value\n ? 'border-blue-400 dark:border-blue-500 hover:border-blue-500'\n : 'border-dashed border-gray-300 dark:border-gray-600 hover:border-blue-400',\n uploading && 'opacity-50 cursor-not-allowed',\n !uploading && 'cursor-pointer'\n )}\n style={{\n height: size?.height || 120,\n width: size?.width || 200,\n }}\n >\n {value ? (\n <img\n src={value}\n alt=\"preview\"\n className=\"w-full h-full object-contain\"\n onError={(e) => {\n e.currentTarget.style.display = 'none';\n }}\n />\n ) : (\n <div className=\"flex flex-col items-center justify-center gap-2 p-4 text-center\">\n <svg className=\"w-8 h-8 text-gray-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 4v16m8-8H4\" />\n </svg>\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\n {uploading ? 'Enviando...' : 'Clique para selecionar'}\n </span>\n </div>\n )}\n </button>\n\n {/* Botão remover - APENAS SE HOUVER IMAGEM */}\n {value && !uploading && (\n <button\n onClick={() => onChange(undefined)}\n type=\"button\"\n className=\"text-xs text-red-600 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 text-left transition-colors font-medium\"\n >\n Remover imagem\n </button>\n )}\n\n {/* Campo URL manual - CONDICIONAL */}\n {showUrlInput && (\n <input\n type=\"text\"\n placeholder=\"URL da imagem\"\n value={value || ''}\n onChange={(e) => onChange(e.target.value || undefined)}\n className={cn(\n 'flex h-11 w-full rounded-lg border-2 bg-white dark:bg-gray-800 px-4 py-2.5 text-sm transition-all duration-200',\n 'placeholder:text-gray-400 dark:placeholder:text-gray-500',\n 'focus:outline-none',\n 'border-gray-300 dark:border-gray-600 hover:border-blue-400/50 focus:border-blue-500',\n 'text-gray-900 dark:text-gray-100'\n )}\n />\n )}\n\n {/* Mensagem de erro */}\n {error && (\n <div className=\"text-xs text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20 p-2 rounded border border-red-200 dark:border-red-800\">\n {error}\n </div>\n )}\n </div>\n )\n}\n"],"names":["ImageInput","value","onChange","label","size","showUrlInput","maxSizeMB","tenantId","schoolId","siteId","authToken","assetType","deferUpload","onPendingFile","uploading","setUploading","useState","error","setError","jsxs","jsx","el","e","file","maxBytes","reader","dataUrl","err","formData","apiUrl","params","res","errorData","data","input","cn"],"mappings":";;;AAqBO,SAASA,EAAW;AAAA,EACzB,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,aAAAC,IAAc;AAAA,EACd,eAAAC;AACF,GAAoB;AAClB,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1C,CAACC,GAAOC,CAAQ,IAAIF,EAAwB,IAAI;AAiGtD,SACE,gBAAAG,EAAC,OAAA,EAAI,WAAU,wCAEZ,UAAA;AAAA,IAAAhB,uBACE,SAAA,EAAM,WAAU,0EACd,UAAAA,GACH;AAAA,IAIF,gBAAAiB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK,CAACC,MAAO;AACX,UAAIA,aAAoB,kBAAkBA;AAAA,QAC5C;AAAA,QACA,MAAK;AAAA,QACL,QAAO;AAAA,QACP,UA/GmB,OAAOC,MAA2C;AACzE,kBAAQ,IAAI,+BAA+B,EAAE,UAAAf,GAAU,UAAAC,GAAU,QAAAC,GAAQ,cAAc,CAAC,CAACC,GAAW,WAAAC,EAAA,CAAW;AAC/G,gBAAMY,IAAOD,EAAE,OAAO,QAAQ,CAAC;AAC/B,cAAI,CAACC,EAAM;AAGX,gBAAMC,IAAWlB,IAAY,OAAO;AACpC,cAAIiB,EAAK,OAAOC,GAAU;AACxB,YAAAN,EAAS,iCAAiCZ,CAAS,IAAI;AACvD;AAAA,UACF;AAGA,cAAI,CAACiB,EAAK,KAAK,WAAW,QAAQ,KAAK,CAACA,EAAK,KAAK,WAAW,QAAQ,GAAG;AACtE,YAAAL,EAAS,wCAAwC;AACjD;AAAA,UACF;AAKA,cAHAA,EAAS,IAAI,GAGTN,GAAa;AACf,gBAAI;AACF,oBAAMa,IAAS,IAAI,WAAA;AACnB,cAAAA,EAAO,SAAS,CAACH,MAAM;AACrB,sBAAMI,IAAUJ,EAAE,QAAQ;AAC1B,gBAAApB,EAASwB,CAAO,GACZb,KACFA,EAAcU,CAAI;AAAA,cAEtB,GACAE,EAAO,UAAU,MAAM;AACrB,gBAAAP,EAAS,uBAAuB;AAAA,cAClC,GACAO,EAAO,cAAcF,CAAI;AAAA,YAC3B,SAASI,GAAK;AACZ,sBAAQ,MAAM,0BAA0BA,CAAG,GAC3CT,EAASS,aAAe,QAAQA,EAAI,UAAU,0BAA0B;AAAA,YAC1E;AACA;AAAA,UACF;AAIA,cAAI,CAACjB,GAAW;AACd,YAAAQ,EAAS,qCAAqC;AAC9C;AAAA,UACF;AAEA,cAAI,CAACX,GAAU;AACb,YAAAW,EAAS,iCAAiC;AAC1C;AAAA,UACF;AAEA,UAAAH,EAAa,EAAI;AAEjB,cAAI;AACF,kBAAMa,IAAW,IAAI,SAAA;AACrB,YAAAA,EAAS,OAAO,QAAQL,CAAI;AAE5B,kBAAMM,IAAkD,yBAGlDC,IAAS,IAAI,gBAAgB,EAAE,UAAAvB,GAAU,WAAAI,GAAW;AAC1D,YAAIH,KAAUsB,EAAO,OAAO,YAAYtB,CAAQ,GAC5CC,KAAQqB,EAAO,OAAO,UAAUrB,CAAM;AAE1C,kBAAMsB,IAAM,MAAM,MAAM,GAAGF,CAAM,2BAA2BC,CAAM,IAAI;AAAA,cACpE,QAAQ;AAAA,cACR,SAAS;AAAA,gBACP,eAAiB,UAAUpB,CAAS;AAAA,cAAA;AAAA,cAEtC,MAAMkB;AAAA,YAAA,CACP;AAED,gBAAI,CAACG,EAAI,IAAI;AACX,oBAAMC,IAAY,MAAMD,EAAI,KAAA,EAAO,MAAM,OAAO,CAAA,EAAG;AACnD,oBAAIA,EAAI,WAAW,MACX,IAAI,MAAM,wCAAwC,IAEpD,IAAI,MAAMC,EAAU,WAAW,eAAe;AAAA,YACtD;AAEA,kBAAMC,IAAO,MAAMF,EAAI,KAAA;AAEvB,YAAA7B,EAAS+B,EAAK,GAAG,GACjBf,EAAS,IAAI;AAAA,UACf,SAASS,GAAK;AACZ,oBAAQ,MAAM,mBAAmBA,CAAG,GACpCT,EAASS,aAAe,QAAQA,EAAI,UAAU,gCAAgC;AAAA,UAChF,UAAA;AACE,YAAAZ,EAAa,EAAK;AAAA,UACpB;AAAA,QACF;AAAA,QAmBM,UAAUD;AAAA,QACV,WAAU;AAAA,QACV,IAAI,eAAe,KAAK,OAAA,CAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,IAIlC,gBAAAM;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS,MAAM;AACb,gBAAMc,IAAQ,SAAS,cAAc,sCAAsC;AAC3E,UAAIA,MACFA,EAAM,QAAQ,IACdA,EAAM,MAAA;AAAA,QAEV;AAAA,QACA,UAAUpB;AAAA,QACV,WAAWqB;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACAlC,IACI,+DACA;AAAA,UACJa,KAAa;AAAA,UACb,CAACA,KAAa;AAAA,QAAA;AAAA,QAEhB,OAAO;AAAA,UACL,QAAQV,GAAM,UAAU;AAAA,UACxB,OAAOA,GAAM,SAAS;AAAA,QAAA;AAAA,QAGvB,UAAAH,IACC,gBAAAmB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKnB;AAAA,YACL,KAAI;AAAA,YACJ,WAAU;AAAA,YACV,SAAS,CAACqB,MAAM;AACd,cAAAA,EAAE,cAAc,MAAM,UAAU;AAAA,YAClC;AAAA,UAAA;AAAA,QAAA,IAGF,gBAAAH,EAAC,OAAA,EAAI,WAAU,mEACb,UAAA;AAAA,UAAA,gBAAAC,EAAC,SAAI,WAAU,yBAAwB,MAAK,QAAO,QAAO,gBAAe,SAAQ,aAC/E,4BAAC,QAAA,EAAK,eAAc,SAAQ,gBAAe,SAAQ,aAAa,GAAG,GAAE,iBAAA,CAAiB,EAAA,CACxF;AAAA,4BACC,QAAA,EAAK,WAAU,4CACb,UAAAN,IAAY,gBAAgB,yBAAA,CAC/B;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAKHb,KAAS,CAACa,KACT,gBAAAM;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAMlB,EAAS,MAAS;AAAA,QACjC,MAAK;AAAA,QACL,WAAU;AAAA,QACX,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAMFG,KACC,gBAAAe;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,OAAOnB,KAAS;AAAA,QAChB,UAAU,CAACqB,MAAMpB,EAASoB,EAAE,OAAO,SAAS,MAAS;AAAA,QACrD,WAAWa;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAKHlB,uBACE,OAAA,EAAI,WAAU,6HACZ,UAAAA,GACH;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { SelectInputConfig } from './types';
|
|
2
|
-
interface SelectInputProps<T = string> extends SelectInputConfig<T> {
|
|
3
|
-
width?: number;
|
|
4
|
-
}
|
|
5
|
-
export declare function SelectInput<T = string>({ value, onChange, options, width, }: SelectInputProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export {};
|
|
7
|
-
//# sourceMappingURL=SelectInput.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/SelectInput.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAI3C,UAAU,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IACjE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,WAAW,CAAC,CAAC,GAAG,MAAM,EAAE,EACtC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAW,GACZ,EAAE,gBAAgB,CAAC,CAAC,CAAC,2CAqGrB"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { jsxs as c, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { useState as p, useRef as d, useEffect as h } from "react";
|
|
3
|
-
import { cn as n } from "../../utils/cn.js";
|
|
4
|
-
import x from "../../node_modules/lucide-react/dist/esm/icons/chevron-down.js";
|
|
5
|
-
function O({
|
|
6
|
-
value: a,
|
|
7
|
-
onChange: u,
|
|
8
|
-
options: i,
|
|
9
|
-
width: f = 160
|
|
10
|
-
}) {
|
|
11
|
-
const [r, l] = p(!1), o = d(null), b = d(null);
|
|
12
|
-
h(() => {
|
|
13
|
-
const e = (s) => {
|
|
14
|
-
o.current && !o.current.contains(s.target) && l(!1);
|
|
15
|
-
};
|
|
16
|
-
if (r)
|
|
17
|
-
return document.addEventListener("mousedown", e), () => {
|
|
18
|
-
document.removeEventListener("mousedown", e);
|
|
19
|
-
};
|
|
20
|
-
}, [r]);
|
|
21
|
-
const m = i.find((e) => e.value === a)?.label || "", g = (e) => {
|
|
22
|
-
u(e), l(!1);
|
|
23
|
-
};
|
|
24
|
-
return /* @__PURE__ */ c("div", { className: "relative", style: { width: f }, ref: o, children: [
|
|
25
|
-
/* @__PURE__ */ c(
|
|
26
|
-
"button",
|
|
27
|
-
{
|
|
28
|
-
ref: b,
|
|
29
|
-
type: "button",
|
|
30
|
-
onClick: () => l(!r),
|
|
31
|
-
className: n(
|
|
32
|
-
"flex h-11 w-full items-center justify-between rounded-lg",
|
|
33
|
-
"border-2 border-input",
|
|
34
|
-
"bg-background",
|
|
35
|
-
"px-4 py-2.5 text-sm",
|
|
36
|
-
"text-gray-900 dark:text-gray-100",
|
|
37
|
-
"ring-offset-background",
|
|
38
|
-
"focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2",
|
|
39
|
-
"hover:border-blue-400/50 focus:border-blue-500",
|
|
40
|
-
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
41
|
-
"transition-colors duration-200",
|
|
42
|
-
r && "ring-2 ring-blue-500 ring-offset-2 border-blue-500"
|
|
43
|
-
),
|
|
44
|
-
children: [
|
|
45
|
-
/* @__PURE__ */ t("span", { className: "line-clamp-1 text-left flex-1", children: m }),
|
|
46
|
-
/* @__PURE__ */ t(
|
|
47
|
-
x,
|
|
48
|
-
{
|
|
49
|
-
className: n(
|
|
50
|
-
"h-4 w-4 opacity-50 flex-shrink-0 ml-2 transition-transform",
|
|
51
|
-
r && "rotate-180"
|
|
52
|
-
)
|
|
53
|
-
}
|
|
54
|
-
)
|
|
55
|
-
]
|
|
56
|
-
}
|
|
57
|
-
),
|
|
58
|
-
r && /* @__PURE__ */ t(
|
|
59
|
-
"div",
|
|
60
|
-
{
|
|
61
|
-
className: n(
|
|
62
|
-
"absolute z-50 mt-1 w-full",
|
|
63
|
-
"max-h-96 min-w-[8rem] overflow-hidden rounded-lg",
|
|
64
|
-
"border border-gray-200 dark:border-gray-700",
|
|
65
|
-
"bg-white dark:bg-gray-900",
|
|
66
|
-
"text-gray-900 dark:text-gray-100",
|
|
67
|
-
"shadow-lg",
|
|
68
|
-
"animate-in fade-in-0 zoom-in-95 slide-in-from-top-2"
|
|
69
|
-
),
|
|
70
|
-
children: /* @__PURE__ */ t("div", { className: "p-1", children: i.map((e) => {
|
|
71
|
-
const s = e.value === a;
|
|
72
|
-
return /* @__PURE__ */ t(
|
|
73
|
-
"button",
|
|
74
|
-
{
|
|
75
|
-
type: "button",
|
|
76
|
-
onClick: () => g(e.value),
|
|
77
|
-
className: n(
|
|
78
|
-
"relative flex w-full cursor-pointer select-none items-center rounded-sm",
|
|
79
|
-
"py-1.5 pl-2 pr-2 text-sm outline-none",
|
|
80
|
-
"transition-colors",
|
|
81
|
-
"hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
82
|
-
"focus:bg-gray-100 dark:focus:bg-gray-800",
|
|
83
|
-
s && "bg-blue-50 dark:bg-blue-950/30 text-blue-600 dark:text-blue-400"
|
|
84
|
-
),
|
|
85
|
-
children: /* @__PURE__ */ t("span", { className: "flex-1 text-left", children: e.label })
|
|
86
|
-
},
|
|
87
|
-
String(e.value)
|
|
88
|
-
);
|
|
89
|
-
}) })
|
|
90
|
-
}
|
|
91
|
-
)
|
|
92
|
-
] });
|
|
93
|
-
}
|
|
94
|
-
export {
|
|
95
|
-
O as SelectInput
|
|
96
|
-
};
|
|
97
|
-
//# sourceMappingURL=SelectInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectInput.js","sources":["../../../src/components/inputs/SelectInput.tsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react'\nimport { SelectInputConfig } from './types'\nimport { cn } from '../../utils/cn'\nimport { ChevronDown } from 'lucide-react'\n\ninterface SelectInputProps<T = string> extends SelectInputConfig<T> {\n width?: number\n}\n\nexport function SelectInput<T = string>({\n value,\n onChange,\n options,\n width = 160,\n}: SelectInputProps<T>) {\n const [isOpen, setIsOpen] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n // Fechar ao clicar fora\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }\n }, [isOpen])\n\n const selectedOption = options.find((opt) => opt.value === value)\n const selectedLabel = selectedOption?.label || ''\n\n const handleSelect = (optionValue: T) => {\n onChange(optionValue)\n setIsOpen(false)\n }\n\n return (\n <div className=\"relative\" style={{ width }} ref={containerRef}>\n {/* Trigger - Seguindo exatamente as classes do SelectTrigger do projeto SmartGesti-Ensino */}\n <button\n ref={triggerRef}\n type=\"button\"\n onClick={() => setIsOpen(!isOpen)}\n className={cn(\n 'flex h-11 w-full items-center justify-between rounded-lg',\n 'border-2 border-input',\n 'bg-background',\n 'px-4 py-2.5 text-sm',\n 'text-gray-900 dark:text-gray-100',\n 'ring-offset-background',\n 'focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2',\n 'hover:border-blue-400/50 focus:border-blue-500',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'transition-colors duration-200',\n isOpen && 'ring-2 ring-blue-500 ring-offset-2 border-blue-500'\n )}\n >\n <span className=\"line-clamp-1 text-left flex-1\">{selectedLabel}</span>\n <ChevronDown\n className={cn(\n 'h-4 w-4 opacity-50 flex-shrink-0 ml-2 transition-transform',\n isOpen && 'rotate-180'\n )}\n />\n </button>\n\n {/* Dropdown Content - Seguindo exatamente as classes do SelectContent do projeto SmartGesti-Ensino */}\n {isOpen && (\n <div\n className={cn(\n 'absolute z-50 mt-1 w-full',\n 'max-h-96 min-w-[8rem] overflow-hidden rounded-lg',\n 'border border-gray-200 dark:border-gray-700',\n 'bg-white dark:bg-gray-900',\n 'text-gray-900 dark:text-gray-100',\n 'shadow-lg',\n 'animate-in fade-in-0 zoom-in-95 slide-in-from-top-2'\n )}\n >\n <div className=\"p-1\">\n {options.map((option) => {\n const isSelected = option.value === value\n return (\n <button\n key={String(option.value)}\n type=\"button\"\n onClick={() => handleSelect(option.value)}\n className={cn(\n 'relative flex w-full cursor-pointer select-none items-center rounded-sm',\n 'py-1.5 pl-2 pr-2 text-sm outline-none',\n 'transition-colors',\n 'hover:bg-gray-100 dark:hover:bg-gray-800',\n 'focus:bg-gray-100 dark:focus:bg-gray-800',\n isSelected && 'bg-blue-50 dark:bg-blue-950/30 text-blue-600 dark:text-blue-400'\n )}\n >\n <span className=\"flex-1 text-left\">{option.label}</span>\n </button>\n )\n })}\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["SelectInput","value","onChange","options","width","isOpen","setIsOpen","useState","containerRef","useRef","triggerRef","useEffect","handleClickOutside","event","selectedLabel","opt","handleSelect","optionValue","jsxs","cn","jsx","ChevronDown","option","isSelected"],"mappings":";;;;AASO,SAASA,EAAwB;AAAA,EACtC,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC,IAAQ;AACV,GAAwB;AACtB,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpCC,IAAeC,EAAuB,IAAI,GAC1CC,IAAaD,EAA0B,IAAI;AAGjD,EAAAE,EAAU,MAAM;AACd,UAAMC,IAAqB,CAACC,MAAsB;AAChD,MACEL,EAAa,WACb,CAACA,EAAa,QAAQ,SAASK,EAAM,MAAc,KAEnDP,EAAU,EAAK;AAAA,IAEnB;AAEA,QAAID;AACF,sBAAS,iBAAiB,aAAaO,CAAkB,GAClD,MAAM;AACX,iBAAS,oBAAoB,aAAaA,CAAkB;AAAA,MAC9D;AAAA,EAEJ,GAAG,CAACP,CAAM,CAAC;AAGX,QAAMS,IADiBX,EAAQ,KAAK,CAACY,MAAQA,EAAI,UAAUd,CAAK,GAC1B,SAAS,IAEzCe,IAAe,CAACC,MAAmB;AACvC,IAAAf,EAASe,CAAW,GACpBX,EAAU,EAAK;AAAA,EACjB;AAEA,SACE,gBAAAY,EAAC,SAAI,WAAU,YAAW,OAAO,EAAE,OAAAd,EAAA,GAAS,KAAKI,GAE/C,UAAA;AAAA,IAAA,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKR;AAAA,QACL,MAAK;AAAA,QACL,SAAS,MAAMJ,EAAU,CAACD,CAAM;AAAA,QAChC,WAAWc;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACAd,KAAU;AAAA,QAAA;AAAA,QAGZ,UAAA;AAAA,UAAA,gBAAAe,EAAC,QAAA,EAAK,WAAU,iCAAiC,UAAAN,GAAc;AAAA,UAC/D,gBAAAM;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,WAAWF;AAAA,gBACT;AAAA,gBACAd,KAAU;AAAA,cAAA;AAAA,YACZ;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAIDA,KACC,gBAAAe;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWD;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAGF,4BAAC,OAAA,EAAI,WAAU,OACZ,UAAAhB,EAAQ,IAAI,CAACmB,MAAW;AACvB,gBAAMC,IAAaD,EAAO,UAAUrB;AACpC,iBACE,gBAAAmB;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,MAAK;AAAA,cACL,SAAS,MAAMJ,EAAaM,EAAO,KAAK;AAAA,cACxC,WAAWH;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACAI,KAAc;AAAA,cAAA;AAAA,cAGhB,UAAA,gBAAAH,EAAC,QAAA,EAAK,WAAU,oBAAoB,YAAO,MAAA,CAAM;AAAA,YAAA;AAAA,YAZ5C,OAAOE,EAAO,KAAK;AAAA,UAAA;AAAA,QAe9B,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GAEJ;AAEJ;"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { SliderInputConfig } from './types';
|
|
2
|
-
interface SliderInputProps extends SliderInputConfig {
|
|
3
|
-
onClear?: () => void;
|
|
4
|
-
hideValue?: boolean;
|
|
5
|
-
}
|
|
6
|
-
export declare function SliderInput({ value, onChange, min, max, step, unit, formatValue, onClear, hideValue, }: SliderInputProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
export {};
|
|
8
|
-
//# sourceMappingURL=SliderInput.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SliderInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/SliderInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAA;AAG7D,UAAU,gBAAiB,SAAQ,iBAAiB;IAClD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,GAAO,EACP,GAAS,EACT,IAAQ,EACR,IAAS,EACT,WAAsC,EACtC,OAAO,EACP,SAAiB,GAClB,EAAE,gBAAgB,2CAoElB"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { jsxs as a, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { VALUE_FORMATTERS as c } from "./types.js";
|
|
3
|
-
import { cn as d } from "../../utils/cn.js";
|
|
4
|
-
function w({
|
|
5
|
-
value: e,
|
|
6
|
-
onChange: i,
|
|
7
|
-
min: t = 0,
|
|
8
|
-
max: o = 100,
|
|
9
|
-
step: l = 1,
|
|
10
|
-
unit: m = "",
|
|
11
|
-
formatValue: s = c.decimal,
|
|
12
|
-
onClear: b,
|
|
13
|
-
hideValue: n = !1
|
|
14
|
-
}) {
|
|
15
|
-
const u = s(e), g = (e - t) / (o - t) * 100;
|
|
16
|
-
return /* @__PURE__ */ a("div", { className: "flex items-center gap-4", children: [
|
|
17
|
-
/* @__PURE__ */ a("div", { className: d("flex-1 relative", !n && "min-w-[180px]"), children: [
|
|
18
|
-
/* @__PURE__ */ r("div", { className: "relative h-2 bg-gray-200 dark:bg-gray-700 rounded-full", children: /* @__PURE__ */ r(
|
|
19
|
-
"div",
|
|
20
|
-
{
|
|
21
|
-
className: "absolute h-full bg-blue-500 dark:bg-blue-600 rounded-full transition-all",
|
|
22
|
-
style: { width: `${g}%` }
|
|
23
|
-
}
|
|
24
|
-
) }),
|
|
25
|
-
/* @__PURE__ */ r(
|
|
26
|
-
"input",
|
|
27
|
-
{
|
|
28
|
-
type: "range",
|
|
29
|
-
min: t,
|
|
30
|
-
max: o,
|
|
31
|
-
step: l,
|
|
32
|
-
value: e,
|
|
33
|
-
onChange: (h) => i(Number(h.target.value)),
|
|
34
|
-
className: d(
|
|
35
|
-
"absolute inset-0 w-full h-2 cursor-pointer appearance-none",
|
|
36
|
-
"bg-transparent",
|
|
37
|
-
"[&::-webkit-slider-thumb]:appearance-none",
|
|
38
|
-
"[&::-webkit-slider-thumb]:w-5 [&::-webkit-slider-thumb]:h-5",
|
|
39
|
-
"[&::-webkit-slider-thumb]:rounded-full",
|
|
40
|
-
"[&::-webkit-slider-thumb]:bg-white",
|
|
41
|
-
"[&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-blue-500",
|
|
42
|
-
"[&::-webkit-slider-thumb]:shadow-md",
|
|
43
|
-
"[&::-webkit-slider-thumb]:cursor-pointer",
|
|
44
|
-
"[&::-webkit-slider-thumb]:transition-all",
|
|
45
|
-
"[&::-webkit-slider-thumb]:hover:scale-110",
|
|
46
|
-
"[&::-moz-range-thumb]:w-5 [&::-moz-range-thumb]:h-5",
|
|
47
|
-
"[&::-moz-range-thumb]:rounded-full",
|
|
48
|
-
"[&::-moz-range-thumb]:bg-white",
|
|
49
|
-
"[&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-blue-500",
|
|
50
|
-
"[&::-moz-range-thumb]:shadow-md",
|
|
51
|
-
"[&::-moz-range-thumb]:cursor-pointer",
|
|
52
|
-
"[&::-moz-range-thumb]:transition-all",
|
|
53
|
-
"[&::-moz-range-thumb]:hover:scale-110",
|
|
54
|
-
"[&::-moz-range-track]:bg-transparent"
|
|
55
|
-
)
|
|
56
|
-
}
|
|
57
|
-
)
|
|
58
|
-
] }),
|
|
59
|
-
!n && /* @__PURE__ */ r("div", { className: "min-w-[72px] text-center px-3 py-1.5 bg-gray-50 dark:bg-gray-800 rounded-md border border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ a("span", { className: "text-xs font-mono font-semibold text-gray-700 dark:text-gray-300", children: [
|
|
60
|
-
u,
|
|
61
|
-
m
|
|
62
|
-
] }) }),
|
|
63
|
-
b && /* @__PURE__ */ r(
|
|
64
|
-
"button",
|
|
65
|
-
{
|
|
66
|
-
type: "button",
|
|
67
|
-
onClick: b,
|
|
68
|
-
className: "px-3 py-1.5 text-xs font-medium rounded-md border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
|
|
69
|
-
children: "Limpar"
|
|
70
|
-
}
|
|
71
|
-
)
|
|
72
|
-
] });
|
|
73
|
-
}
|
|
74
|
-
export {
|
|
75
|
-
w as SliderInput
|
|
76
|
-
};
|
|
77
|
-
//# sourceMappingURL=SliderInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SliderInput.js","sources":["../../../src/components/inputs/SliderInput.tsx"],"sourcesContent":["import { SliderInputConfig, VALUE_FORMATTERS } from './types'\nimport { cn } from '../../utils/cn'\n\ninterface SliderInputProps extends SliderInputConfig {\n onClear?: () => void\n hideValue?: boolean\n}\n\nexport function SliderInput({\n value,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n unit = '',\n formatValue = VALUE_FORMATTERS.decimal,\n onClear,\n hideValue = false,\n}: SliderInputProps) {\n const displayValue = formatValue(value)\n const percentage = ((value - min) / (max - min)) * 100\n\n return (\n <div className=\"flex items-center gap-4\">\n <div className={cn('flex-1 relative', !hideValue && 'min-w-[180px]')}>\n {/* Track */}\n <div className=\"relative h-2 bg-gray-200 dark:bg-gray-700 rounded-full\">\n {/* Filled track */}\n <div\n className=\"absolute h-full bg-blue-500 dark:bg-blue-600 rounded-full transition-all\"\n style={{ width: `${percentage}%` }}\n />\n </div>\n {/* Input range */}\n <input\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={value}\n onChange={(e) => onChange(Number(e.target.value))}\n className={cn(\n 'absolute inset-0 w-full h-2 cursor-pointer appearance-none',\n 'bg-transparent',\n '[&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:w-5 [&::-webkit-slider-thumb]:h-5',\n '[&::-webkit-slider-thumb]:rounded-full',\n '[&::-webkit-slider-thumb]:bg-white',\n '[&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-blue-500',\n '[&::-webkit-slider-thumb]:shadow-md',\n '[&::-webkit-slider-thumb]:cursor-pointer',\n '[&::-webkit-slider-thumb]:transition-all',\n '[&::-webkit-slider-thumb]:hover:scale-110',\n '[&::-moz-range-thumb]:w-5 [&::-moz-range-thumb]:h-5',\n '[&::-moz-range-thumb]:rounded-full',\n '[&::-moz-range-thumb]:bg-white',\n '[&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-blue-500',\n '[&::-moz-range-thumb]:shadow-md',\n '[&::-moz-range-thumb]:cursor-pointer',\n '[&::-moz-range-thumb]:transition-all',\n '[&::-moz-range-thumb]:hover:scale-110',\n '[&::-moz-range-track]:bg-transparent'\n )}\n />\n </div>\n\n {!hideValue && (\n <div className=\"min-w-[72px] text-center px-3 py-1.5 bg-gray-50 dark:bg-gray-800 rounded-md border border-gray-200 dark:border-gray-700\">\n <span className=\"text-xs font-mono font-semibold text-gray-700 dark:text-gray-300\">\n {displayValue}\n {unit}\n </span>\n </div>\n )}\n\n {onClear && (\n <button\n type=\"button\"\n onClick={onClear}\n className=\"px-3 py-1.5 text-xs font-medium rounded-md border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors\"\n >\n Limpar\n </button>\n )}\n </div>\n )\n}\n"],"names":["SliderInput","value","onChange","min","max","step","unit","formatValue","VALUE_FORMATTERS","onClear","hideValue","displayValue","percentage","jsxs","cn","jsx","e"],"mappings":";;;AAQO,SAASA,EAAY;AAAA,EAC1B,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,KAAAC,IAAM;AAAA,EACN,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,aAAAC,IAAcC,EAAiB;AAAA,EAC/B,SAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAqB;AACnB,QAAMC,IAAeJ,EAAYN,CAAK,GAChCW,KAAeX,IAAQE,MAAQC,IAAMD,KAAQ;AAEnD,SACE,gBAAAU,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,SAAI,WAAWC,EAAG,mBAAmB,CAACJ,KAAa,eAAe,GAEjE,UAAA;AAAA,MAAA,gBAAAK,EAAC,OAAA,EAAI,WAAU,0DAEb,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,OAAO,GAAGH,CAAU,IAAA;AAAA,QAAI;AAAA,MAAA,GAErC;AAAA,MAEA,gBAAAG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,KAAAZ;AAAA,UACA,KAAAC;AAAA,UACA,MAAAC;AAAA,UACA,OAAAJ;AAAA,UACA,UAAU,CAACe,MAAMd,EAAS,OAAOc,EAAE,OAAO,KAAK,CAAC;AAAA,UAChD,WAAWF;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IAEC,CAACJ,KACA,gBAAAK,EAAC,OAAA,EAAI,WAAU,2HACb,UAAA,gBAAAF,EAAC,QAAA,EAAK,WAAU,oEACb,UAAA;AAAA,MAAAF;AAAA,MACAL;AAAA,IAAA,EAAA,CACH,EAAA,CACF;AAAA,IAGDG,KACC,gBAAAM;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAASN;AAAA,QACT,WAAU;AAAA,QACX,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAED,GAEJ;AAEJ;"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Inputs customizados para o editor de sites
|
|
3
|
-
*/
|
|
4
|
-
export { ColorInput } from './ColorInput';
|
|
5
|
-
export { ImageInput } from './ImageInput';
|
|
6
|
-
export { SliderInput } from './SliderInput';
|
|
7
|
-
export { SelectInput } from './SelectInput';
|
|
8
|
-
export { CheckboxInput } from './CheckboxInput';
|
|
9
|
-
export { GradientInput } from './GradientInput';
|
|
10
|
-
export * from './types';
|
|
11
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,cAAc,SAAS,CAAA"}
|