@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.
Files changed (607) hide show
  1. package/dist/editor/BlockSelector.d.ts +2 -1
  2. package/dist/editor/BlockSelector.d.ts.map +1 -1
  3. package/dist/editor/BlockSelector.js +55 -64
  4. package/dist/editor/BlockSelector.js.map +1 -1
  5. package/dist/editor/LandingPageEditor.d.ts +19 -0
  6. package/dist/editor/LandingPageEditor.d.ts.map +1 -0
  7. package/dist/editor/LandingPageEditor.js +239 -0
  8. package/dist/editor/LandingPageEditor.js.map +1 -0
  9. package/dist/editor/PageTabBar.d.ts +4 -1
  10. package/dist/editor/PageTabBar.d.ts.map +1 -1
  11. package/dist/editor/PageTabBar.js +179 -41
  12. package/dist/editor/PageTabBar.js.map +1 -1
  13. package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts +5 -3
  14. package/dist/editor/PropertyEditor/BlockPropertyEditor.d.ts.map +1 -1
  15. package/dist/editor/PropertyEditor/BlockPropertyEditor.js +60 -113
  16. package/dist/editor/PropertyEditor/BlockPropertyEditor.js.map +1 -1
  17. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts +3 -1
  18. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.d.ts.map +1 -1
  19. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js +47 -33
  20. package/dist/editor/PropertyEditor/CollapsiblePropertyGroup.js.map +1 -1
  21. package/dist/editor/PropertyEditor/PropertyGroup.d.ts +1 -1
  22. package/dist/editor/PropertyEditor/PropertyGroup.d.ts.map +1 -1
  23. package/dist/editor/PropertyEditor/VariationSelector.d.ts +2 -1
  24. package/dist/editor/PropertyEditor/VariationSelector.d.ts.map +1 -1
  25. package/dist/editor/PropertyEditor/VariationSelector.js +35 -31
  26. package/dist/editor/PropertyEditor/VariationSelector.js.map +1 -1
  27. package/dist/editor/PropertyEditor/index.js +30 -28
  28. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts +16 -0
  29. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.d.ts.map +1 -0
  30. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js +170 -0
  31. package/dist/editor/PropertyEditor/inputs/CarouselImagesInput.js.map +1 -0
  32. package/dist/editor/PropertyEditor/inputs/ImageGridInput.d.ts +1 -1
  33. package/dist/editor/PropertyEditor/inputs/ImageGridInput.d.ts.map +1 -1
  34. package/dist/editor/PropertyEditor/inputs/ImageGridInput.js +148 -121
  35. package/dist/editor/PropertyEditor/inputs/ImageGridInput.js.map +1 -1
  36. package/dist/editor/PropertyEditor/inputs/ImageInput.d.ts.map +1 -0
  37. package/dist/{components → editor/PropertyEditor}/inputs/ImageInput.js +41 -39
  38. package/dist/editor/PropertyEditor/inputs/ImageInput.js.map +1 -0
  39. package/dist/editor/PropertyEditor/inputs/TypographyInput.js +41 -44
  40. package/dist/editor/PropertyEditor/inputs/TypographyInput.js.map +1 -1
  41. package/dist/editor/PropertyEditor/inputs/index.d.ts +2 -0
  42. package/dist/editor/PropertyEditor/inputs/index.d.ts.map +1 -1
  43. package/dist/editor/PropertyEditor/renderPropertyInput.d.ts +1 -1
  44. package/dist/editor/PropertyEditor/renderPropertyInput.d.ts.map +1 -1
  45. package/dist/editor/PropertyEditor/renderPropertyInput.js +167 -139
  46. package/dist/editor/PropertyEditor/renderPropertyInput.js.map +1 -1
  47. package/dist/editor/components/CenterPanel.d.ts +13 -4
  48. package/dist/editor/components/CenterPanel.d.ts.map +1 -1
  49. package/dist/editor/components/CenterPanel.js +40 -31
  50. package/dist/editor/components/CenterPanel.js.map +1 -1
  51. package/dist/editor/components/LeftPanel.d.ts +2 -1
  52. package/dist/editor/components/LeftPanel.d.ts.map +1 -1
  53. package/dist/editor/components/LeftPanel.js +13 -12
  54. package/dist/editor/components/LeftPanel.js.map +1 -1
  55. package/dist/editor/components/LoadingSpinner.d.ts.map +1 -0
  56. package/dist/editor/components/LoadingSpinner.js.map +1 -0
  57. package/dist/editor/components/RightPanel.d.ts +8 -2
  58. package/dist/editor/components/RightPanel.d.ts.map +1 -1
  59. package/dist/editor/components/RightPanel.js +24 -19
  60. package/dist/editor/components/RightPanel.js.map +1 -1
  61. package/dist/editor/components/Toolbar.d.ts +5 -1
  62. package/dist/editor/components/Toolbar.d.ts.map +1 -1
  63. package/dist/editor/components/Toolbar.js +56 -40
  64. package/dist/editor/components/Toolbar.js.map +1 -1
  65. package/dist/engine/export/exportHtml.d.ts +10 -5
  66. package/dist/engine/export/exportHtml.d.ts.map +1 -1
  67. package/dist/engine/export/exportHtml.js +38 -40
  68. package/dist/engine/export/exportHtml.js.map +1 -1
  69. package/dist/engine/export/exporters/content/HeadingExporter.d.ts.map +1 -1
  70. package/dist/engine/export/exporters/content/HeadingExporter.js +6 -6
  71. package/dist/engine/export/exporters/content/HeadingExporter.js.map +1 -1
  72. package/dist/engine/export/exporters/content/LinkExporter.d.ts.map +1 -1
  73. package/dist/engine/export/exporters/content/LinkExporter.js +6 -6
  74. package/dist/engine/export/exporters/content/LinkExporter.js.map +1 -1
  75. package/dist/engine/export/exporters/content/TextExporter.d.ts.map +1 -1
  76. package/dist/engine/export/exporters/content/TextExporter.js +7 -7
  77. package/dist/engine/export/exporters/content/TextExporter.js.map +1 -1
  78. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts +6 -0
  79. package/dist/engine/export/exporters/sections/BlogPostExporters.d.ts.map +1 -0
  80. package/dist/engine/export/exporters/sections/BlogPostExporters.js +101 -0
  81. package/dist/engine/export/exporters/sections/BlogPostExporters.js.map +1 -0
  82. package/dist/engine/export/exporters/sections/FooterExporter.d.ts.map +1 -1
  83. package/dist/engine/export/exporters/sections/FooterExporter.js +33 -40
  84. package/dist/engine/export/exporters/sections/FooterExporter.js.map +1 -1
  85. package/dist/engine/export/exporters/sections/HeroExporter.d.ts.map +1 -1
  86. package/dist/engine/export/exporters/sections/HeroExporter.js +222 -218
  87. package/dist/engine/export/exporters/sections/HeroExporter.js.map +1 -1
  88. package/dist/engine/export/exporters/sections/MarketingExporters.js +88 -88
  89. package/dist/engine/export/exporters/sections/MarketingExporters.js.map +1 -1
  90. package/dist/engine/export/exporters/sections/NavbarExporter.js +34 -34
  91. package/dist/engine/export/exporters/sections/NavbarExporter.js.map +1 -1
  92. package/dist/engine/export/exporters/sections/index.d.ts.map +1 -1
  93. package/dist/engine/export/exporters/sections/index.js +29 -22
  94. package/dist/engine/export/exporters/sections/index.js.map +1 -1
  95. package/dist/engine/export/sanitizeHtml.d.ts.map +1 -1
  96. package/dist/engine/export/sanitizeHtml.js +65 -18
  97. package/dist/engine/export/sanitizeHtml.js.map +1 -1
  98. package/dist/engine/export/styleResolver.d.ts.map +1 -1
  99. package/dist/engine/export/styleResolver.js +33 -33
  100. package/dist/engine/export/styleResolver.js.map +1 -1
  101. package/dist/engine/generators/generateLandingPage.d.ts +4 -4
  102. package/dist/engine/generators/generateLandingPage.d.ts.map +1 -1
  103. package/dist/engine/generators/generateLandingPage.js.map +1 -1
  104. package/dist/engine/index.d.ts +6 -3
  105. package/dist/engine/index.d.ts.map +1 -1
  106. package/dist/engine/index.js +99 -89
  107. package/dist/engine/index.js.map +1 -1
  108. package/dist/engine/patch/PatchBuilder.d.ts +11 -11
  109. package/dist/engine/patch/PatchBuilder.d.ts.map +1 -1
  110. package/dist/engine/patch/PatchBuilder.js +92 -93
  111. package/dist/engine/patch/PatchBuilder.js.map +1 -1
  112. package/dist/engine/patch/applyPatch.js.map +1 -1
  113. package/dist/engine/plugins/builtin/blog/index.d.ts +3 -0
  114. package/dist/engine/plugins/builtin/blog/index.d.ts.map +1 -0
  115. package/dist/engine/plugins/builtin/blog/manifest.d.ts +3 -0
  116. package/dist/engine/plugins/builtin/blog/manifest.d.ts.map +1 -0
  117. package/dist/engine/plugins/builtin/blog/manifest.js +273 -0
  118. package/dist/engine/plugins/builtin/blog/manifest.js.map +1 -0
  119. package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts +7 -0
  120. package/dist/engine/plugins/builtin/blog/mockContentProvider.d.ts.map +1 -0
  121. package/dist/engine/plugins/builtin/blog/mockContentProvider.js +135 -0
  122. package/dist/engine/plugins/builtin/blog/mockContentProvider.js.map +1 -0
  123. package/dist/engine/plugins/contentHydration.d.ts +17 -0
  124. package/dist/engine/plugins/contentHydration.d.ts.map +1 -0
  125. package/dist/engine/plugins/contentHydration.js +121 -0
  126. package/dist/engine/plugins/contentHydration.js.map +1 -0
  127. package/dist/engine/plugins/dynamicPageResolver.d.ts +25 -0
  128. package/dist/engine/plugins/dynamicPageResolver.d.ts.map +1 -0
  129. package/dist/engine/plugins/dynamicPageResolver.js +32 -0
  130. package/dist/engine/plugins/dynamicPageResolver.js.map +1 -0
  131. package/dist/engine/plugins/index.d.ts +11 -0
  132. package/dist/engine/plugins/index.d.ts.map +1 -0
  133. package/dist/engine/plugins/pluginRegistry.d.ts +37 -0
  134. package/dist/engine/plugins/pluginRegistry.d.ts.map +1 -0
  135. package/dist/engine/plugins/pluginRegistry.js +134 -0
  136. package/dist/engine/plugins/pluginRegistry.js.map +1 -0
  137. package/dist/engine/plugins/types.d.ts +180 -0
  138. package/dist/engine/plugins/types.d.ts.map +1 -0
  139. package/dist/engine/presets/heroVariations.d.ts +5 -0
  140. package/dist/engine/presets/heroVariations.d.ts.map +1 -1
  141. package/dist/engine/presets/heroVariations.js +50 -6
  142. package/dist/engine/presets/heroVariations.js.map +1 -1
  143. package/dist/engine/preview/Preview.d.ts +19 -0
  144. package/dist/engine/preview/Preview.d.ts.map +1 -0
  145. package/dist/engine/preview/Preview.js +418 -0
  146. package/dist/engine/preview/Preview.js.map +1 -0
  147. package/dist/engine/registry/blocks/sections/blogPostCard.d.ts +3 -0
  148. package/dist/engine/registry/blocks/sections/blogPostCard.d.ts.map +1 -0
  149. package/dist/engine/registry/blocks/sections/blogPostCard.js +53 -0
  150. package/dist/engine/registry/blocks/sections/blogPostCard.js.map +1 -0
  151. package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts +3 -0
  152. package/dist/engine/registry/blocks/sections/blogPostDetail.d.ts.map +1 -0
  153. package/dist/engine/registry/blocks/sections/blogPostDetail.js +49 -0
  154. package/dist/engine/registry/blocks/sections/blogPostDetail.js.map +1 -0
  155. package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts +3 -0
  156. package/dist/engine/registry/blocks/sections/blogPostGrid.d.ts.map +1 -0
  157. package/dist/engine/registry/blocks/sections/blogPostGrid.js +89 -0
  158. package/dist/engine/registry/blocks/sections/blogPostGrid.js.map +1 -0
  159. package/dist/engine/registry/blocks/sections/hero.d.ts.map +1 -1
  160. package/dist/engine/registry/blocks/sections/hero.js +67 -14
  161. package/dist/engine/registry/blocks/sections/hero.js.map +1 -1
  162. package/dist/engine/registry/blocks/sections/index.d.ts +3 -0
  163. package/dist/engine/registry/blocks/sections/index.d.ts.map +1 -1
  164. package/dist/engine/registry/blocks/sections/navbar.d.ts.map +1 -1
  165. package/dist/engine/registry/blocks/sections/navbar.js +2 -1
  166. package/dist/engine/registry/blocks/sections/navbar.js.map +1 -1
  167. package/dist/engine/registry/registry.d.ts.map +1 -1
  168. package/dist/engine/registry/registry.js +39 -36
  169. package/dist/engine/registry/registry.js.map +1 -1
  170. package/dist/engine/registry/types.d.ts +17 -13
  171. package/dist/engine/registry/types.d.ts.map +1 -1
  172. package/dist/engine/render/renderNodeImpl.js +85 -85
  173. package/dist/engine/render/renderNodeImpl.js.map +1 -1
  174. package/dist/engine/render/renderPage.d.ts +3 -3
  175. package/dist/engine/render/renderPage.d.ts.map +1 -1
  176. package/dist/engine/render/renderPage.js.map +1 -1
  177. package/dist/engine/render/renderers/composition/CardRenderer.js +4 -4
  178. package/dist/engine/render/renderers/content/LinkRenderer.d.ts.map +1 -1
  179. package/dist/engine/render/renderers/content/LinkRenderer.js +41 -16
  180. package/dist/engine/render/renderers/content/LinkRenderer.js.map +1 -1
  181. package/dist/engine/render/renderers/content/SocialLinksRenderer.d.ts.map +1 -1
  182. package/dist/engine/render/renderers/content/SocialLinksRenderer.js +16 -23
  183. package/dist/engine/render/renderers/content/SocialLinksRenderer.js.map +1 -1
  184. package/dist/engine/render/renderers/forms/FormRenderer.js +6 -6
  185. package/dist/engine/render/renderers/layout/GridRenderer.js +3 -3
  186. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts +3 -0
  187. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.d.ts.map +1 -0
  188. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js +199 -0
  189. package/dist/engine/render/renderers/sections/BlogPostCardRenderer.js.map +1 -0
  190. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts +3 -0
  191. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.d.ts.map +1 -0
  192. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js +293 -0
  193. package/dist/engine/render/renderers/sections/BlogPostDetailRenderer.js.map +1 -0
  194. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts +3 -0
  195. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.d.ts.map +1 -0
  196. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js +101 -0
  197. package/dist/engine/render/renderers/sections/BlogPostGridRenderer.js.map +1 -0
  198. package/dist/engine/render/renderers/sections/CtaRenderer.d.ts.map +1 -1
  199. package/dist/engine/render/renderers/sections/CtaRenderer.js +33 -31
  200. package/dist/engine/render/renderers/sections/CtaRenderer.js.map +1 -1
  201. package/dist/engine/render/renderers/sections/FaqItemRenderer.d.ts.map +1 -1
  202. package/dist/engine/render/renderers/sections/FaqItemRenderer.js +7 -6
  203. package/dist/engine/render/renderers/sections/FaqItemRenderer.js.map +1 -1
  204. package/dist/engine/render/renderers/sections/FaqRenderer.js +7 -7
  205. package/dist/engine/render/renderers/sections/FaqRenderer.js.map +1 -1
  206. package/dist/engine/render/renderers/sections/FeatureGridRenderer.d.ts.map +1 -1
  207. package/dist/engine/render/renderers/sections/FeatureGridRenderer.js +19 -18
  208. package/dist/engine/render/renderers/sections/FeatureGridRenderer.js.map +1 -1
  209. package/dist/engine/render/renderers/sections/FeatureRenderer.d.ts.map +1 -1
  210. package/dist/engine/render/renderers/sections/FeatureRenderer.js +5 -4
  211. package/dist/engine/render/renderers/sections/FeatureRenderer.js.map +1 -1
  212. package/dist/engine/render/renderers/sections/FooterRenderer.d.ts.map +1 -1
  213. package/dist/engine/render/renderers/sections/FooterRenderer.js +25 -30
  214. package/dist/engine/render/renderers/sections/FooterRenderer.js.map +1 -1
  215. package/dist/engine/render/renderers/sections/HeroRenderer.d.ts.map +1 -1
  216. package/dist/engine/render/renderers/sections/HeroRenderer.js +293 -229
  217. package/dist/engine/render/renderers/sections/HeroRenderer.js.map +1 -1
  218. package/dist/engine/render/renderers/sections/NavbarRenderer.d.ts.map +1 -1
  219. package/dist/engine/render/renderers/sections/NavbarRenderer.js +23 -22
  220. package/dist/engine/render/renderers/sections/NavbarRenderer.js.map +1 -1
  221. package/dist/engine/render/renderers/sections/PricingCardRenderer.d.ts.map +1 -1
  222. package/dist/engine/render/renderers/sections/PricingCardRenderer.js +7 -6
  223. package/dist/engine/render/renderers/sections/PricingCardRenderer.js.map +1 -1
  224. package/dist/engine/render/renderers/sections/PricingRenderer.js +9 -9
  225. package/dist/engine/render/renderers/sections/PricingRenderer.js.map +1 -1
  226. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.d.ts.map +1 -1
  227. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js +17 -16
  228. package/dist/engine/render/renderers/sections/TestimonialGridRenderer.js.map +1 -1
  229. package/dist/engine/render/renderers/sections/TestimonialRenderer.d.ts.map +1 -1
  230. package/dist/engine/render/renderers/sections/TestimonialRenderer.js +11 -10
  231. package/dist/engine/render/renderers/sections/TestimonialRenderer.js.map +1 -1
  232. package/dist/engine/render/renderers/sections/index.js +24 -18
  233. package/dist/engine/render/renderers/sections/index.js.map +1 -1
  234. package/dist/engine/schema/siteDocument.d.ts +118 -7
  235. package/dist/engine/schema/siteDocument.d.ts.map +1 -1
  236. package/dist/engine/schema/siteDocument.js +1 -1
  237. package/dist/engine/schema/siteDocument.js.map +1 -1
  238. package/dist/engine/schema/themeTokens.d.ts +1 -1
  239. package/dist/engine/schema/themeTokens.js.map +1 -1
  240. package/dist/engine/shared/carouselAnimation.d.ts +20 -0
  241. package/dist/engine/shared/carouselAnimation.d.ts.map +1 -0
  242. package/dist/engine/shared/carouselAnimation.js +62 -0
  243. package/dist/engine/shared/carouselAnimation.js.map +1 -0
  244. package/dist/engine/shared/imageGrid/presets.js +4 -12
  245. package/dist/engine/shared/imageGrid/presets.js.map +1 -1
  246. package/dist/engine/shared/imageGrid/types.d.ts +2 -0
  247. package/dist/engine/shared/imageGrid/types.d.ts.map +1 -1
  248. package/dist/engine/shared/layoutConstants.d.ts +13 -0
  249. package/dist/engine/shared/layoutConstants.d.ts.map +1 -0
  250. package/dist/engine/shared/layoutConstants.js +14 -0
  251. package/dist/engine/shared/layoutConstants.js.map +1 -0
  252. package/dist/engine/shared/shadowConstants.d.ts +5 -0
  253. package/dist/engine/shared/shadowConstants.d.ts.map +1 -0
  254. package/dist/engine/shared/shadowConstants.js +11 -0
  255. package/dist/engine/shared/shadowConstants.js.map +1 -0
  256. package/dist/engine/shared/showWhen.d.ts +44 -0
  257. package/dist/engine/shared/showWhen.d.ts.map +1 -0
  258. package/dist/engine/shared/showWhen.js +33 -0
  259. package/dist/engine/shared/showWhen.js.map +1 -0
  260. package/dist/engine/shared/socialIcons.d.ts +6 -0
  261. package/dist/engine/shared/socialIcons.d.ts.map +1 -0
  262. package/dist/engine/shared/socialIcons.js +13 -0
  263. package/dist/engine/shared/socialIcons.js.map +1 -0
  264. package/dist/engine/shared/typeGuards.d.ts +11 -0
  265. package/dist/engine/shared/typeGuards.d.ts.map +1 -0
  266. package/dist/hooks/useEditorState.d.ts +8 -5
  267. package/dist/hooks/useEditorState.d.ts.map +1 -1
  268. package/dist/hooks/useEditorState.js +150 -194
  269. package/dist/hooks/useEditorState.js.map +1 -1
  270. package/dist/hooks/useNavbarAutoSync.d.ts +2 -2
  271. package/dist/hooks/useNavbarAutoSync.d.ts.map +1 -1
  272. package/dist/hooks/useNavbarAutoSync.js.map +1 -1
  273. package/dist/index.d.ts +60 -14
  274. package/dist/index.d.ts.map +1 -1
  275. package/dist/index.js +109 -124
  276. package/dist/index.js.map +1 -1
  277. package/dist/shared/index.d.ts +2 -2
  278. package/dist/shared/index.d.ts.map +1 -1
  279. package/dist/shared/schema.d.ts +4 -4
  280. package/dist/shared/schema.d.ts.map +1 -1
  281. package/dist/shared/schema.js.map +1 -1
  282. package/dist/shared/templates/escola-blog.d.ts +3 -0
  283. package/dist/shared/templates/escola-blog.d.ts.map +1 -0
  284. package/dist/shared/templates/escola-blog.js +160 -0
  285. package/dist/shared/templates/escola-blog.js.map +1 -0
  286. package/dist/shared/templates/escola-edvi.d.ts +2 -2
  287. package/dist/shared/templates/escola-edvi.d.ts.map +1 -1
  288. package/dist/shared/templates/escola-edvi.js.map +1 -1
  289. package/dist/shared/templates/escola-premium.d.ts +2 -2
  290. package/dist/shared/templates/escola-premium.d.ts.map +1 -1
  291. package/dist/shared/templates/escola-premium.js.map +1 -1
  292. package/dist/shared/templates/escola-zilom.d.ts +2 -2
  293. package/dist/shared/templates/escola-zilom.d.ts.map +1 -1
  294. package/dist/shared/templates/escola-zilom.js.map +1 -1
  295. package/dist/shared/templates/index.d.ts +7 -5
  296. package/dist/shared/templates/index.d.ts.map +1 -1
  297. package/dist/shared/templates/index.js +30 -12
  298. package/dist/shared/templates/index.js.map +1 -1
  299. package/dist/shared/validators.d.ts +3 -3
  300. package/dist/shared/validators.d.ts.map +1 -1
  301. package/dist/shared/validators.js.map +1 -1
  302. package/dist/site/BlockRenderer.d.ts +1 -1
  303. package/dist/site/BlockRenderer.d.ts.map +1 -1
  304. package/dist/site/BlockRenderer.js +22 -26
  305. package/dist/site/BlockRenderer.js.map +1 -1
  306. package/dist/site/blocks/Button.js +15 -17
  307. package/dist/site/blocks/Button.js.map +1 -1
  308. package/dist/site/blocks/Card.js +13 -15
  309. package/dist/site/blocks/Card.js.map +1 -1
  310. package/dist/site/blocks/Features.js +15 -17
  311. package/dist/site/blocks/Features.js.map +1 -1
  312. package/dist/site/blocks/Footer.js +10 -12
  313. package/dist/site/blocks/Footer.js.map +1 -1
  314. package/dist/site/blocks/Hero.js +12 -14
  315. package/dist/site/blocks/Hero.js.map +1 -1
  316. package/dist/site/blocks/Navbar.js +13 -15
  317. package/dist/site/blocks/Navbar.js.map +1 -1
  318. package/dist/site/blocks/Section.js +9 -11
  319. package/dist/site/blocks/Section.js.map +1 -1
  320. package/dist/site/blocks/SectionHeader.js +9 -11
  321. package/dist/site/blocks/SectionHeader.js.map +1 -1
  322. package/dist/site/blocks/SiteRoot.js +9 -12
  323. package/dist/site/blocks/SiteRoot.js.map +1 -1
  324. package/dist/site/index.js +73 -73
  325. package/dist/styles/site/sections.css.d.ts +1 -1
  326. package/dist/utils/blockUtils.d.ts +2 -2
  327. package/dist/utils/blockUtils.d.ts.map +1 -1
  328. package/dist/utils/blockUtils.js.map +1 -1
  329. package/dist/utils/changeDetector.d.ts +3 -2
  330. package/dist/utils/changeDetector.d.ts.map +1 -1
  331. package/dist/utils/changeDetector.js +39 -39
  332. package/dist/utils/changeDetector.js.map +1 -1
  333. package/dist/utils/cn.js +2 -2
  334. package/dist/utils/dataURLUtils.d.ts +24 -0
  335. package/dist/utils/dataURLUtils.d.ts.map +1 -0
  336. package/dist/utils/dataURLUtils.js +47 -0
  337. package/dist/utils/dataURLUtils.js.map +1 -0
  338. package/dist/utils/documentHash.d.ts +2 -2
  339. package/dist/utils/documentHash.d.ts.map +1 -1
  340. package/dist/utils/documentHash.js +8 -7
  341. package/dist/utils/documentHash.js.map +1 -1
  342. package/dist/utils/logger.d.ts +13 -0
  343. package/dist/utils/logger.d.ts.map +1 -0
  344. package/dist/utils/logger.js +13 -0
  345. package/dist/utils/logger.js.map +1 -0
  346. package/dist/utils/navbarSync.d.ts +3 -3
  347. package/dist/utils/navbarSync.d.ts.map +1 -1
  348. package/dist/utils/navbarSync.js +25 -24
  349. package/dist/utils/navbarSync.js.map +1 -1
  350. package/dist/utils/sharedTemplateToEngine.d.ts +7 -8
  351. package/dist/utils/sharedTemplateToEngine.d.ts.map +1 -1
  352. package/dist/utils/sharedTemplateToEngine.js +14 -87
  353. package/dist/utils/sharedTemplateToEngine.js.map +1 -1
  354. package/dist/viewer/LandingPageViewer.d.ts +32 -0
  355. package/dist/viewer/LandingPageViewer.d.ts.map +1 -0
  356. package/dist/viewer/LandingPageViewer.js +300 -0
  357. package/dist/viewer/LandingPageViewer.js.map +1 -0
  358. package/package.json +10 -5
  359. package/dist/components/ComponentPalette/definitions.d.ts +0 -3
  360. package/dist/components/ComponentPalette/definitions.d.ts.map +0 -1
  361. package/dist/components/ComponentPalette/definitions.js +0 -206
  362. package/dist/components/ComponentPalette/definitions.js.map +0 -1
  363. package/dist/components/ComponentPalette/index.d.ts +0 -7
  364. package/dist/components/ComponentPalette/index.d.ts.map +0 -1
  365. package/dist/components/ComponentPalette/index.js +0 -86
  366. package/dist/components/ComponentPalette/index.js.map +0 -1
  367. package/dist/components/LoadingSpinner.d.ts.map +0 -1
  368. package/dist/components/LoadingSpinner.js.map +0 -1
  369. package/dist/components/PreviewPanel/index.d.ts +0 -12
  370. package/dist/components/PreviewPanel/index.d.ts.map +0 -1
  371. package/dist/components/PreviewPanel/index.js +0 -140
  372. package/dist/components/PreviewPanel/index.js.map +0 -1
  373. package/dist/components/PropertyPanel/index.d.ts +0 -8
  374. package/dist/components/PropertyPanel/index.d.ts.map +0 -1
  375. package/dist/components/PropertyPanel/index.js +0 -223
  376. package/dist/components/PropertyPanel/index.js.map +0 -1
  377. package/dist/components/SiteEditor/index.d.ts +0 -3
  378. package/dist/components/SiteEditor/index.d.ts.map +0 -1
  379. package/dist/components/SiteEditor/index.js +0 -251
  380. package/dist/components/SiteEditor/index.js.map +0 -1
  381. package/dist/components/SiteViewer/index.d.ts +0 -3
  382. package/dist/components/SiteViewer/index.d.ts.map +0 -1
  383. package/dist/components/SiteViewer/index.js +0 -55
  384. package/dist/components/SiteViewer/index.js.map +0 -1
  385. package/dist/components/TemplateSelector/index.d.ts +0 -7
  386. package/dist/components/TemplateSelector/index.d.ts.map +0 -1
  387. package/dist/components/TemplateSelector/index.js +0 -109
  388. package/dist/components/TemplateSelector/index.js.map +0 -1
  389. package/dist/components/Toolbar/index.d.ts +0 -15
  390. package/dist/components/Toolbar/index.d.ts.map +0 -1
  391. package/dist/components/Toolbar/index.js +0 -113
  392. package/dist/components/Toolbar/index.js.map +0 -1
  393. package/dist/components/editors/PaletteSelector.d.ts +0 -14
  394. package/dist/components/editors/PaletteSelector.d.ts.map +0 -1
  395. package/dist/components/editors/PaletteSelector.js +0 -175
  396. package/dist/components/editors/PaletteSelector.js.map +0 -1
  397. package/dist/components/effects/SectionGlow.d.ts +0 -12
  398. package/dist/components/effects/SectionGlow.d.ts.map +0 -1
  399. package/dist/components/effects/SectionGlow.js +0 -139
  400. package/dist/components/effects/SectionGlow.js.map +0 -1
  401. package/dist/components/inputs/CheckboxInput.d.ts +0 -3
  402. package/dist/components/inputs/CheckboxInput.d.ts.map +0 -1
  403. package/dist/components/inputs/CheckboxInput.js +0 -46
  404. package/dist/components/inputs/CheckboxInput.js.map +0 -1
  405. package/dist/components/inputs/ColorInput.d.ts +0 -7
  406. package/dist/components/inputs/ColorInput.d.ts.map +0 -1
  407. package/dist/components/inputs/ColorInput.js +0 -180
  408. package/dist/components/inputs/ColorInput.js.map +0 -1
  409. package/dist/components/inputs/GradientInput.d.ts +0 -7
  410. package/dist/components/inputs/GradientInput.d.ts.map +0 -1
  411. package/dist/components/inputs/GradientInput.js +0 -78
  412. package/dist/components/inputs/GradientInput.js.map +0 -1
  413. package/dist/components/inputs/ImageInput.d.ts.map +0 -1
  414. package/dist/components/inputs/ImageInput.js.map +0 -1
  415. package/dist/components/inputs/SelectInput.d.ts +0 -7
  416. package/dist/components/inputs/SelectInput.d.ts.map +0 -1
  417. package/dist/components/inputs/SelectInput.js +0 -97
  418. package/dist/components/inputs/SelectInput.js.map +0 -1
  419. package/dist/components/inputs/SliderInput.d.ts +0 -8
  420. package/dist/components/inputs/SliderInput.d.ts.map +0 -1
  421. package/dist/components/inputs/SliderInput.js +0 -77
  422. package/dist/components/inputs/SliderInput.js.map +0 -1
  423. package/dist/components/inputs/index.d.ts +0 -11
  424. package/dist/components/inputs/index.d.ts.map +0 -1
  425. package/dist/components/inputs/types.d.ts +0 -48
  426. package/dist/components/inputs/types.d.ts.map +0 -1
  427. package/dist/components/inputs/types.js +0 -9
  428. package/dist/components/inputs/types.js.map +0 -1
  429. package/dist/components/renderers/ComponentRenderer.d.ts +0 -8
  430. package/dist/components/renderers/ComponentRenderer.d.ts.map +0 -1
  431. package/dist/components/renderers/ComponentRenderer.js +0 -13
  432. package/dist/components/renderers/ComponentRenderer.js.map +0 -1
  433. package/dist/components/renderers/HeroRenderer.d.ts +0 -3
  434. package/dist/components/renderers/HeroRenderer.d.ts.map +0 -1
  435. package/dist/components/renderers/HeroRenderer.js +0 -10
  436. package/dist/components/renderers/HeroRenderer.js.map +0 -1
  437. package/dist/components/renderers/hero/HeroBanner.d.ts +0 -3
  438. package/dist/components/renderers/hero/HeroBanner.d.ts.map +0 -1
  439. package/dist/components/renderers/hero/HeroBanner.js +0 -122
  440. package/dist/components/renderers/hero/HeroBanner.js.map +0 -1
  441. package/dist/components/renderers/hero/HeroCinematic.d.ts +0 -3
  442. package/dist/components/renderers/hero/HeroCinematic.d.ts.map +0 -1
  443. package/dist/components/renderers/hero/HeroCinematic.js +0 -141
  444. package/dist/components/renderers/hero/HeroCinematic.js.map +0 -1
  445. package/dist/components/renderers/hero/HeroClassic.d.ts +0 -3
  446. package/dist/components/renderers/hero/HeroClassic.d.ts.map +0 -1
  447. package/dist/components/renderers/hero/HeroClassic.js +0 -241
  448. package/dist/components/renderers/hero/HeroClassic.js.map +0 -1
  449. package/dist/components/renderers/hero/HeroCollage.d.ts +0 -3
  450. package/dist/components/renderers/hero/HeroCollage.d.ts.map +0 -1
  451. package/dist/components/renderers/hero/HeroCollage.js +0 -131
  452. package/dist/components/renderers/hero/HeroCollage.js.map +0 -1
  453. package/dist/components/renderers/hero/HeroColumns.d.ts +0 -3
  454. package/dist/components/renderers/hero/HeroColumns.d.ts.map +0 -1
  455. package/dist/components/renderers/hero/HeroColumns.js +0 -114
  456. package/dist/components/renderers/hero/HeroColumns.js.map +0 -1
  457. package/dist/components/renderers/hero/HeroGlass.d.ts +0 -3
  458. package/dist/components/renderers/hero/HeroGlass.d.ts.map +0 -1
  459. package/dist/components/renderers/hero/HeroGlass.js +0 -119
  460. package/dist/components/renderers/hero/HeroGlass.js.map +0 -1
  461. package/dist/components/renderers/hero/HeroNeon.d.ts +0 -3
  462. package/dist/components/renderers/hero/HeroNeon.d.ts.map +0 -1
  463. package/dist/components/renderers/hero/HeroNeon.js +0 -136
  464. package/dist/components/renderers/hero/HeroNeon.js.map +0 -1
  465. package/dist/components/renderers/hero/HeroParallax.d.ts +0 -3
  466. package/dist/components/renderers/hero/HeroParallax.d.ts.map +0 -1
  467. package/dist/components/renderers/hero/HeroParallax.js +0 -99
  468. package/dist/components/renderers/hero/HeroParallax.js.map +0 -1
  469. package/dist/components/renderers/hero/HeroSplit.d.ts +0 -3
  470. package/dist/components/renderers/hero/HeroSplit.d.ts.map +0 -1
  471. package/dist/components/renderers/hero/HeroSplit.js +0 -142
  472. package/dist/components/renderers/hero/HeroSplit.js.map +0 -1
  473. package/dist/components/renderers/hero/HeroSpotlight.d.ts +0 -3
  474. package/dist/components/renderers/hero/HeroSpotlight.d.ts.map +0 -1
  475. package/dist/components/renderers/hero/HeroSpotlight.js +0 -213
  476. package/dist/components/renderers/hero/HeroSpotlight.js.map +0 -1
  477. package/dist/components/renderers/hero/index.d.ts +0 -14
  478. package/dist/components/renderers/hero/index.d.ts.map +0 -1
  479. package/dist/components/renderers/index.d.ts +0 -8
  480. package/dist/components/renderers/index.d.ts.map +0 -1
  481. package/dist/components/renderers/index.js +0 -89
  482. package/dist/components/renderers/index.js.map +0 -1
  483. package/dist/components/renderers/types.d.ts +0 -11
  484. package/dist/components/renderers/types.d.ts.map +0 -1
  485. package/dist/editor/LandingPageEditorV2.d.ts +0 -19
  486. package/dist/editor/LandingPageEditorV2.d.ts.map +0 -1
  487. package/dist/editor/LandingPageEditorV2.js +0 -311
  488. package/dist/editor/LandingPageEditorV2.js.map +0 -1
  489. package/dist/editor/PropertyEditor/PropertyGroup.js +0 -23
  490. package/dist/editor/PropertyEditor/PropertyGroup.js.map +0 -1
  491. package/dist/engine/preview/PreviewV2.d.ts +0 -15
  492. package/dist/engine/preview/PreviewV2.d.ts.map +0 -1
  493. package/dist/engine/preview/PreviewV2.js +0 -242
  494. package/dist/engine/preview/PreviewV2.js.map +0 -1
  495. package/dist/modules/registry.d.ts +0 -31
  496. package/dist/modules/registry.d.ts.map +0 -1
  497. package/dist/modules/registry.js +0 -67
  498. package/dist/modules/registry.js.map +0 -1
  499. package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +0 -57
  500. package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +0 -1
  501. package/dist/node_modules/@dnd-kit/core/dist/core.esm.js +0 -2345
  502. package/dist/node_modules/@dnd-kit/core/dist/core.esm.js.map +0 -1
  503. package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +0 -440
  504. package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +0 -1
  505. package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +0 -236
  506. package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.map +0 -1
  507. package/dist/node_modules/clsx/dist/clsx.js +0 -17
  508. package/dist/node_modules/clsx/dist/clsx.js.map +0 -1
  509. package/dist/node_modules/lucide-react/dist/esm/Icon.js +0 -35
  510. package/dist/node_modules/lucide-react/dist/esm/Icon.js.map +0 -1
  511. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +0 -18
  512. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +0 -1
  513. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +0 -15
  514. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +0 -1
  515. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-right.js +0 -9
  516. package/dist/node_modules/lucide-react/dist/esm/icons/arrow-right.js.map +0 -1
  517. package/dist/node_modules/lucide-react/dist/esm/icons/briefcase.js +0 -9
  518. package/dist/node_modules/lucide-react/dist/esm/icons/briefcase.js.map +0 -1
  519. package/dist/node_modules/lucide-react/dist/esm/icons/check.js +0 -6
  520. package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +0 -1
  521. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js +0 -8
  522. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js.map +0 -1
  523. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +0 -8
  524. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +0 -1
  525. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js +0 -6
  526. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js.map +0 -1
  527. package/dist/node_modules/lucide-react/dist/esm/icons/eye.js +0 -15
  528. package/dist/node_modules/lucide-react/dist/esm/icons/eye.js.map +0 -1
  529. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js +0 -12
  530. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js.map +0 -1
  531. package/dist/node_modules/lucide-react/dist/esm/icons/globe.js +0 -10
  532. package/dist/node_modules/lucide-react/dist/esm/icons/globe.js.map +0 -1
  533. package/dist/node_modules/lucide-react/dist/esm/icons/grid-3x3.js +0 -12
  534. package/dist/node_modules/lucide-react/dist/esm/icons/grid-3x3.js.map +0 -1
  535. package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.js +0 -13
  536. package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.js.map +0 -1
  537. package/dist/node_modules/lucide-react/dist/esm/icons/heading.js +0 -10
  538. package/dist/node_modules/lucide-react/dist/esm/icons/heading.js.map +0 -1
  539. package/dist/node_modules/lucide-react/dist/esm/icons/image.js +0 -10
  540. package/dist/node_modules/lucide-react/dist/esm/icons/image.js.map +0 -1
  541. package/dist/node_modules/lucide-react/dist/esm/icons/images.js +0 -11
  542. package/dist/node_modules/lucide-react/dist/esm/icons/images.js.map +0 -1
  543. package/dist/node_modules/lucide-react/dist/esm/icons/list.js +0 -13
  544. package/dist/node_modules/lucide-react/dist/esm/icons/list.js.map +0 -1
  545. package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.js +0 -8
  546. package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.js.map +0 -1
  547. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js +0 -6
  548. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js.map +0 -1
  549. package/dist/node_modules/lucide-react/dist/esm/icons/mouse-pointer-click.js +0 -18
  550. package/dist/node_modules/lucide-react/dist/esm/icons/mouse-pointer-click.js.map +0 -1
  551. package/dist/node_modules/lucide-react/dist/esm/icons/navigation.js +0 -8
  552. package/dist/node_modules/lucide-react/dist/esm/icons/navigation.js.map +0 -1
  553. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js +0 -10
  554. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js.map +0 -1
  555. package/dist/node_modules/lucide-react/dist/esm/icons/phone.js +0 -14
  556. package/dist/node_modules/lucide-react/dist/esm/icons/phone.js.map +0 -1
  557. package/dist/node_modules/lucide-react/dist/esm/icons/plus.js +0 -9
  558. package/dist/node_modules/lucide-react/dist/esm/icons/plus.js.map +0 -1
  559. package/dist/node_modules/lucide-react/dist/esm/icons/redo-2.js +0 -9
  560. package/dist/node_modules/lucide-react/dist/esm/icons/redo-2.js.map +0 -1
  561. package/dist/node_modules/lucide-react/dist/esm/icons/redo.js +0 -9
  562. package/dist/node_modules/lucide-react/dist/esm/icons/redo.js.map +0 -1
  563. package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js +0 -9
  564. package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js.map +0 -1
  565. package/dist/node_modules/lucide-react/dist/esm/icons/save.js +0 -16
  566. package/dist/node_modules/lucide-react/dist/esm/icons/save.js.map +0 -1
  567. package/dist/node_modules/lucide-react/dist/esm/icons/square.js +0 -8
  568. package/dist/node_modules/lucide-react/dist/esm/icons/square.js.map +0 -1
  569. package/dist/node_modules/lucide-react/dist/esm/icons/star.js +0 -14
  570. package/dist/node_modules/lucide-react/dist/esm/icons/star.js.map +0 -1
  571. package/dist/node_modules/lucide-react/dist/esm/icons/trash-2.js +0 -12
  572. package/dist/node_modules/lucide-react/dist/esm/icons/trash-2.js.map +0 -1
  573. package/dist/node_modules/lucide-react/dist/esm/icons/type.js +0 -10
  574. package/dist/node_modules/lucide-react/dist/esm/icons/type.js.map +0 -1
  575. package/dist/node_modules/lucide-react/dist/esm/icons/undo-2.js +0 -9
  576. package/dist/node_modules/lucide-react/dist/esm/icons/undo-2.js.map +0 -1
  577. package/dist/node_modules/lucide-react/dist/esm/icons/undo.js +0 -9
  578. package/dist/node_modules/lucide-react/dist/esm/icons/undo.js.map +0 -1
  579. package/dist/node_modules/lucide-react/dist/esm/icons/user.js +0 -9
  580. package/dist/node_modules/lucide-react/dist/esm/icons/user.js.map +0 -1
  581. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +0 -6
  582. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +0 -1
  583. package/dist/node_modules/react-colorful/dist/index.js +0 -167
  584. package/dist/node_modules/react-colorful/dist/index.js.map +0 -1
  585. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2266
  586. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
  587. package/dist/types/index.d.ts +0 -99
  588. package/dist/types/index.d.ts.map +0 -1
  589. package/dist/types/module.d.ts +0 -25
  590. package/dist/types/module.d.ts.map +0 -1
  591. package/dist/utils/htmlExporter.d.ts +0 -6
  592. package/dist/utils/htmlExporter.d.ts.map +0 -1
  593. package/dist/utils/htmlExporter.js +0 -92
  594. package/dist/utils/htmlExporter.js.map +0 -1
  595. package/dist/utils/themeApplier.d.ts +0 -11
  596. package/dist/utils/themeApplier.d.ts.map +0 -1
  597. package/dist/utils/themeApplier.js +0 -29
  598. package/dist/utils/themeApplier.js.map +0 -1
  599. package/dist/utils/useDebounce.d.ts +0 -12
  600. package/dist/utils/useDebounce.d.ts.map +0 -1
  601. package/dist/viewer/LandingPageViewerV2.d.ts +0 -25
  602. package/dist/viewer/LandingPageViewerV2.d.ts.map +0 -1
  603. package/dist/viewer/LandingPageViewerV2.js +0 -253
  604. package/dist/viewer/LandingPageViewerV2.js.map +0 -1
  605. /package/dist/{components → editor/PropertyEditor}/inputs/ImageInput.d.ts +0 -0
  606. /package/dist/{components → editor/components}/LoadingSpinner.d.ts +0 -0
  607. /package/dist/{components → editor/components}/LoadingSpinner.js +0 -0
@@ -0,0 +1,170 @@
1
+ import { jsxs as s, jsx as r } from "react/jsx-runtime";
2
+ import { useRef as y } from "react";
3
+ import { cn as m } from "../../../utils/cn.js";
4
+ const x = 2, f = 5;
5
+ function k({
6
+ index: t,
7
+ src: a,
8
+ onChange: c,
9
+ onRemove: d,
10
+ canRemove: i
11
+ }) {
12
+ const n = y(null), u = (l) => {
13
+ const e = l.target.files?.[0];
14
+ if (!e || !e.type.startsWith("image/") || e.size > 10 * 1024 * 1024) return;
15
+ const o = new FileReader();
16
+ o.onload = (b) => {
17
+ const p = b.target?.result;
18
+ c(p);
19
+ }, o.readAsDataURL(e);
20
+ }, h = () => {
21
+ n.current && (n.current.value = "", n.current.click());
22
+ }, g = !!a && !a.includes("placehold.co");
23
+ return /* @__PURE__ */ s("div", { className: "relative group", children: [
24
+ /* @__PURE__ */ r(
25
+ "input",
26
+ {
27
+ ref: n,
28
+ type: "file",
29
+ accept: "image/*",
30
+ onChange: u,
31
+ className: "hidden"
32
+ }
33
+ ),
34
+ /* @__PURE__ */ r(
35
+ "button",
36
+ {
37
+ type: "button",
38
+ onClick: h,
39
+ className: m(
40
+ "w-20 h-12 rounded-lg overflow-hidden border-2 transition-all",
41
+ "flex items-center justify-center",
42
+ "bg-gray-50 dark:bg-gray-800 hover:bg-gray-100 dark:hover:bg-gray-700",
43
+ g ? "border-blue-400 dark:border-blue-500" : "border-dashed border-gray-300 dark:border-gray-600 hover:border-blue-400"
44
+ ),
45
+ children: a ? /* @__PURE__ */ r(
46
+ "img",
47
+ {
48
+ src: a,
49
+ alt: `Slide ${t + 1}`,
50
+ className: "w-full h-full object-cover"
51
+ }
52
+ ) : /* @__PURE__ */ r(
53
+ "svg",
54
+ {
55
+ className: "w-5 h-5 text-gray-400",
56
+ fill: "none",
57
+ stroke: "currentColor",
58
+ viewBox: "0 0 24 24",
59
+ children: /* @__PURE__ */ r(
60
+ "path",
61
+ {
62
+ strokeLinecap: "round",
63
+ strokeLinejoin: "round",
64
+ strokeWidth: 2,
65
+ d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
66
+ }
67
+ )
68
+ }
69
+ )
70
+ }
71
+ ),
72
+ i && /* @__PURE__ */ r(
73
+ "button",
74
+ {
75
+ type: "button",
76
+ onClick: d,
77
+ className: m(
78
+ "absolute -top-1 -right-1 w-5 h-5 rounded-full",
79
+ "bg-red-500 text-white",
80
+ "flex items-center justify-center",
81
+ "opacity-0 group-hover:opacity-100 transition-opacity",
82
+ "text-xs font-bold"
83
+ ),
84
+ children: "×"
85
+ }
86
+ ),
87
+ /* @__PURE__ */ r("div", { className: "absolute bottom-0 left-0 right-0 bg-black/50 text-white text-[10px] text-center py-0.5", children: t + 1 })
88
+ ] });
89
+ }
90
+ function C({
91
+ images: t,
92
+ onImagesChange: a,
93
+ label: c,
94
+ description: d
95
+ }) {
96
+ const i = t.length < f, n = t.length > x, u = (l, e) => {
97
+ const o = [...t];
98
+ o[l] = e, a(o);
99
+ }, h = (l) => {
100
+ if (!n) return;
101
+ const e = t.filter((o, b) => b !== l);
102
+ a(e);
103
+ }, g = () => {
104
+ i && a([...t, ""]);
105
+ };
106
+ return /* @__PURE__ */ s("div", { className: "space-y-2", children: [
107
+ c && /* @__PURE__ */ s("label", { className: "block text-xs font-medium text-gray-800 dark:text-gray-100", children: [
108
+ c,
109
+ d && /* @__PURE__ */ r("span", { className: "text-gray-500 dark:text-gray-400 text-xs font-normal ml-1", children: d })
110
+ ] }),
111
+ /* @__PURE__ */ s("div", { className: "space-y-1", children: [
112
+ /* @__PURE__ */ s("span", { className: "text-[10px] text-gray-500 dark:text-gray-400 uppercase tracking-wide", children: [
113
+ "Slides (",
114
+ t.length,
115
+ "/",
116
+ f,
117
+ ")"
118
+ ] }),
119
+ /* @__PURE__ */ s("div", { className: "flex flex-wrap gap-2 items-center", children: [
120
+ t.map((l, e) => /* @__PURE__ */ r(
121
+ k,
122
+ {
123
+ index: e,
124
+ src: l,
125
+ onChange: (o) => u(e, o),
126
+ onRemove: () => h(e),
127
+ canRemove: n
128
+ },
129
+ e
130
+ )),
131
+ i && /* @__PURE__ */ r(
132
+ "button",
133
+ {
134
+ type: "button",
135
+ onClick: g,
136
+ className: m(
137
+ "w-20 h-12 rounded-lg border-2 border-dashed",
138
+ "border-gray-300 dark:border-gray-600",
139
+ "hover:border-blue-400 dark:hover:border-blue-500",
140
+ "flex items-center justify-center transition-colors",
141
+ "bg-gray-50 dark:bg-gray-800"
142
+ ),
143
+ children: /* @__PURE__ */ r(
144
+ "svg",
145
+ {
146
+ className: "w-5 h-5 text-gray-400",
147
+ fill: "none",
148
+ stroke: "currentColor",
149
+ viewBox: "0 0 24 24",
150
+ children: /* @__PURE__ */ r(
151
+ "path",
152
+ {
153
+ strokeLinecap: "round",
154
+ strokeLinejoin: "round",
155
+ strokeWidth: 2,
156
+ d: "M12 4v16m8-8H4"
157
+ }
158
+ )
159
+ }
160
+ )
161
+ }
162
+ )
163
+ ] })
164
+ ] })
165
+ ] });
166
+ }
167
+ export {
168
+ C as CarouselImagesInput
169
+ };
170
+ //# sourceMappingURL=CarouselImagesInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CarouselImagesInput.js","sources":["../../../../src/editor/PropertyEditor/inputs/CarouselImagesInput.tsx"],"sourcesContent":["/**\n * CarouselImagesInput\n * Componente para editar array de imagens do carrossel hero (2-5 imagens)\n */\n\nimport { useRef } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport type { UploadConfig } from \"../../LandingPageEditor\";\n\ninterface CarouselImagesInputProps {\n /** Array de URLs de imagens */\n images: string[];\n /** Callback ao atualizar imagens */\n onImagesChange: (images: string[]) => void;\n /** Label do componente */\n label?: string;\n /** Descrição */\n description?: string;\n /** Configuração de upload */\n uploadConfig?: UploadConfig;\n}\n\nconst MIN_IMAGES = 2;\nconst MAX_IMAGES = 5;\n\n/**\n * Slot individual de imagem do carrossel\n */\nfunction CarouselSlot({\n index,\n src,\n onChange,\n onRemove,\n canRemove,\n}: {\n index: number;\n src: string;\n onChange: (src: string) => void;\n onRemove: () => void;\n canRemove: boolean;\n}) {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) return;\n\n if (!file.type.startsWith(\"image/\")) return;\n if (file.size > 10 * 1024 * 1024) return;\n\n const reader = new FileReader();\n reader.onload = (evt) => {\n const dataUrl = evt.target?.result as string;\n onChange(dataUrl);\n };\n reader.readAsDataURL(file);\n };\n\n const handleClick = () => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n inputRef.current.click();\n }\n };\n\n const hasImage = !!src && !src.includes(\"placehold.co\");\n\n return (\n <div className=\"relative group\">\n <input\n ref={inputRef}\n type=\"file\"\n accept=\"image/*\"\n onChange={handleFileChange}\n className=\"hidden\"\n />\n\n <button\n type=\"button\"\n onClick={handleClick}\n className={cn(\n \"w-20 h-12 rounded-lg overflow-hidden border-2 transition-all\",\n \"flex items-center justify-center\",\n \"bg-gray-50 dark:bg-gray-800 hover:bg-gray-100 dark:hover:bg-gray-700\",\n hasImage\n ? \"border-blue-400 dark:border-blue-500\"\n : \"border-dashed border-gray-300 dark:border-gray-600 hover:border-blue-400\"\n )}\n >\n {src ? (\n <img\n src={src}\n alt={`Slide ${index + 1}`}\n className=\"w-full h-full object-cover\"\n />\n ) : (\n <svg\n className=\"w-5 h-5 text-gray-400\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n />\n </svg>\n )}\n </button>\n\n {/* Botão de remover */}\n {canRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n className={cn(\n \"absolute -top-1 -right-1 w-5 h-5 rounded-full\",\n \"bg-red-500 text-white\",\n \"flex items-center justify-center\",\n \"opacity-0 group-hover:opacity-100 transition-opacity\",\n \"text-xs font-bold\"\n )}\n >\n ×\n </button>\n )}\n\n {/* Número do slide */}\n <div className=\"absolute bottom-0 left-0 right-0 bg-black/50 text-white text-[10px] text-center py-0.5\">\n {index + 1}\n </div>\n </div>\n );\n}\n\nexport function CarouselImagesInput({\n images,\n onImagesChange,\n label,\n description,\n}: CarouselImagesInputProps) {\n const canAdd = images.length < MAX_IMAGES;\n const canRemove = images.length > MIN_IMAGES;\n\n const handleImageChange = (index: number, src: string) => {\n const newImages = [...images];\n newImages[index] = src;\n onImagesChange(newImages);\n };\n\n const handleImageRemove = (index: number) => {\n if (!canRemove) return;\n const newImages = images.filter((_, i) => i !== index);\n onImagesChange(newImages);\n };\n\n const handleAddImage = () => {\n if (!canAdd) return;\n onImagesChange([...images, \"\"]);\n };\n\n return (\n <div className=\"space-y-2\">\n {label && (\n <label className=\"block text-xs font-medium text-gray-800 dark:text-gray-100\">\n {label}\n {description && (\n <span className=\"text-gray-500 dark:text-gray-400 text-xs font-normal ml-1\">\n {description}\n </span>\n )}\n </label>\n )}\n\n <div className=\"space-y-1\">\n <span className=\"text-[10px] text-gray-500 dark:text-gray-400 uppercase tracking-wide\">\n Slides ({images.length}/{MAX_IMAGES})\n </span>\n <div className=\"flex flex-wrap gap-2 items-center\">\n {images.map((src, index) => (\n <CarouselSlot\n key={index}\n index={index}\n src={src}\n onChange={(newSrc) => handleImageChange(index, newSrc)}\n onRemove={() => handleImageRemove(index)}\n canRemove={canRemove}\n />\n ))}\n {canAdd && (\n <button\n type=\"button\"\n onClick={handleAddImage}\n className={cn(\n \"w-20 h-12 rounded-lg border-2 border-dashed\",\n \"border-gray-300 dark:border-gray-600\",\n \"hover:border-blue-400 dark:hover:border-blue-500\",\n \"flex items-center justify-center transition-colors\",\n \"bg-gray-50 dark:bg-gray-800\"\n )}\n >\n <svg\n className=\"w-5 h-5 text-gray-400\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 4v16m8-8H4\"\n />\n </svg>\n </button>\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["MIN_IMAGES","MAX_IMAGES","CarouselSlot","index","src","onChange","onRemove","canRemove","inputRef","useRef","handleFileChange","e","file","reader","evt","dataUrl","handleClick","hasImage","jsxs","jsx","cn","CarouselImagesInput","images","onImagesChange","label","description","canAdd","handleImageChange","newImages","handleImageRemove","_","i","handleAddImage","newSrc"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ImageGridItem, ImageGridPreset } from '../../../engine/shared/imageGrid';
2
- import { UploadConfig } from '../../LandingPageEditorV2';
2
+ import { UploadConfig } from '../../LandingPageEditor';
3
3
  interface ImageGridInputProps {
4
4
  /** Preset atual */
5
5
  preset?: ImageGridPreset;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageGridInput.d.ts","sourceRoot":"","sources":["../../../../src/editor/PropertyEditor/inputs/ImageGridInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EAGrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,UAAU,mBAAmB;IAC3B,mBAAmB;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,uBAAuB;IACvB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,sCAAsC;IACtC,cAAc,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAClD,kCAAkC;IAClC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAqMD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,OAAO,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACX,KAAK,EACL,WAAW,GACZ,EAAE,mBAAmB,2CAkHrB"}
1
+ {"version":3,"file":"ImageGridInput.d.ts","sourceRoot":"","sources":["../../../../src/editor/PropertyEditor/inputs/ImageGridInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EAGrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,UAAU,mBAAmB;IAC3B,mBAAmB;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,uBAAuB;IACvB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,sCAAsC;IACtC,cAAc,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAClD,kCAAkC;IAClC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAiOD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,OAAO,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACX,KAAK,EACL,WAAW,GACZ,EAAE,mBAAmB,2CA6HrB"}
@@ -1,9 +1,9 @@
1
1
  import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
- import { useRef as k } from "react";
3
- import { cn as h } from "../../../utils/cn.js";
4
- import { gridPresetMap as f, imageGridPresetIds as C } from "../../../engine/shared/imageGrid/presets.js";
5
- function I({ preset: d, isActive: s }) {
6
- const o = f[d], g = () => {
2
+ import { useRef as C } from "react";
3
+ import { cn as v } from "../../../utils/cn.js";
4
+ import { gridPresetMap as y, imageGridPresetIds as I } from "../../../engine/shared/imageGrid/presets.js";
5
+ function j({ preset: d, isActive: n }) {
6
+ const u = y[d], m = () => {
7
7
  switch (d) {
8
8
  case "single":
9
9
  return /* @__PURE__ */ e("div", { className: "w-full h-full bg-current rounded-sm" });
@@ -49,146 +49,172 @@ function I({ preset: d, isActive: s }) {
49
49
  return /* @__PURE__ */ e(
50
50
  "div",
51
51
  {
52
- className: h(
52
+ className: v(
53
53
  "w-8 h-8 p-1",
54
- s ? "text-blue-500" : "text-gray-400 dark:text-gray-500"
54
+ n ? "text-blue-500" : "text-gray-400 dark:text-gray-500"
55
55
  ),
56
- title: o.name,
57
- children: g()
56
+ title: u.name,
57
+ children: m()
58
58
  }
59
59
  );
60
60
  }
61
- function j({
61
+ function R({
62
62
  index: d,
63
- image: s,
64
- onChange: o,
65
- onRemove: g
63
+ image: n,
64
+ onChange: u,
65
+ onRemove: m,
66
+ onScaleChange: i
66
67
  }) {
67
- const n = k(null);
68
- return /* @__PURE__ */ a("div", { className: "relative group", children: [
68
+ const o = C(null), f = async (g) => {
69
+ const h = g.target.files?.[0];
70
+ if (!h) return;
71
+ if (!h.type.startsWith("image/")) {
72
+ alert("Apenas imagens são permitidas");
73
+ return;
74
+ }
75
+ if (h.size > 10 * 1024 * 1024) {
76
+ alert("Arquivo muito grande. Máximo: 10MB");
77
+ return;
78
+ }
79
+ const p = new FileReader();
80
+ p.onload = (x) => {
81
+ const N = x.target?.result;
82
+ u({ src: N, alt: n?.alt || "", scale: n?.scale });
83
+ }, p.readAsDataURL(h);
84
+ }, b = () => {
85
+ o.current && (o.current.value = "", o.current.click());
86
+ }, c = !!n?.src, l = n?.scale ?? 1;
87
+ return /* @__PURE__ */ a("div", { className: "flex items-center gap-3 group", children: [
69
88
  /* @__PURE__ */ e(
70
89
  "input",
71
90
  {
72
- ref: n,
91
+ ref: o,
73
92
  type: "file",
74
93
  accept: "image/*",
75
- onChange: async (u) => {
76
- const c = u.target.files?.[0];
77
- if (!c) return;
78
- if (!c.type.startsWith("image/")) {
79
- alert("Apenas imagens são permitidas");
80
- return;
81
- }
82
- if (c.size > 10 * 1024 * 1024) {
83
- alert("Arquivo muito grande. Máximo: 10MB");
84
- return;
85
- }
86
- const l = new FileReader();
87
- l.onload = (m) => {
88
- const v = m.target?.result;
89
- o({ src: v, alt: s?.alt || "" });
90
- }, l.readAsDataURL(c);
91
- },
94
+ onChange: f,
92
95
  className: "hidden"
93
96
  }
94
97
  ),
95
- /* @__PURE__ */ e(
96
- "button",
97
- {
98
- type: "button",
99
- onClick: () => {
100
- n.current && (n.current.value = "", n.current.click());
101
- },
102
- className: h(
103
- "w-16 h-16 rounded-lg overflow-hidden border-2 transition-all",
104
- "flex items-center justify-center",
105
- "bg-gray-50 dark:bg-gray-800 hover:bg-gray-100 dark:hover:bg-gray-700",
106
- s?.src ? "border-blue-400 dark:border-blue-500" : "border-dashed border-gray-300 dark:border-gray-600 hover:border-blue-400"
107
- ),
108
- children: s?.src ? /* @__PURE__ */ e(
109
- "img",
110
- {
111
- src: s.src,
112
- alt: s.alt || `Imagem ${d + 1}`,
113
- className: "w-full h-full object-cover"
114
- }
115
- ) : /* @__PURE__ */ e(
116
- "svg",
117
- {
118
- className: "w-6 h-6 text-gray-400",
119
- fill: "none",
120
- stroke: "currentColor",
121
- viewBox: "0 0 24 24",
122
- children: /* @__PURE__ */ e(
123
- "path",
124
- {
125
- strokeLinecap: "round",
126
- strokeLinejoin: "round",
127
- strokeWidth: 2,
128
- d: "M12 4v16m8-8H4"
129
- }
130
- )
131
- }
132
- )
133
- }
134
- ),
135
- s?.src && /* @__PURE__ */ e(
136
- "button",
137
- {
138
- type: "button",
139
- onClick: g,
140
- className: h(
141
- "absolute -top-1 -right-1 w-5 h-5 rounded-full",
142
- "bg-red-500 text-white",
143
- "flex items-center justify-center",
144
- "opacity-0 group-hover:opacity-100 transition-opacity",
145
- "text-xs font-bold"
146
- ),
147
- children: "×"
148
- }
149
- ),
150
- /* @__PURE__ */ e("div", { className: "absolute bottom-0 left-0 right-0 bg-black/50 text-white text-[10px] text-center py-0.5", children: d + 1 })
98
+ /* @__PURE__ */ a("div", { className: "relative flex-shrink-0", children: [
99
+ /* @__PURE__ */ e(
100
+ "button",
101
+ {
102
+ type: "button",
103
+ onClick: b,
104
+ className: v(
105
+ "w-12 h-12 rounded-lg overflow-hidden border-2 transition-all",
106
+ "flex items-center justify-center",
107
+ "bg-gray-50 dark:bg-gray-800 hover:bg-gray-100 dark:hover:bg-gray-700",
108
+ c ? "border-blue-400 dark:border-blue-500" : "border-dashed border-gray-300 dark:border-gray-600 hover:border-blue-400"
109
+ ),
110
+ children: c ? /* @__PURE__ */ e(
111
+ "img",
112
+ {
113
+ src: n.src,
114
+ alt: n.alt || `Imagem ${d + 1}`,
115
+ className: "w-full h-full object-cover"
116
+ }
117
+ ) : /* @__PURE__ */ e(
118
+ "svg",
119
+ {
120
+ className: "w-5 h-5 text-gray-400",
121
+ fill: "none",
122
+ stroke: "currentColor",
123
+ viewBox: "0 0 24 24",
124
+ children: /* @__PURE__ */ e(
125
+ "path",
126
+ {
127
+ strokeLinecap: "round",
128
+ strokeLinejoin: "round",
129
+ strokeWidth: 2,
130
+ d: "M12 4v16m8-8H4"
131
+ }
132
+ )
133
+ }
134
+ )
135
+ }
136
+ ),
137
+ c && /* @__PURE__ */ e(
138
+ "button",
139
+ {
140
+ type: "button",
141
+ onClick: m,
142
+ className: v(
143
+ "absolute -top-1 -right-1 w-4 h-4 rounded-full",
144
+ "bg-red-500 text-white",
145
+ "flex items-center justify-center",
146
+ "opacity-0 group-hover:opacity-100 transition-opacity",
147
+ "text-[10px] font-bold leading-none"
148
+ ),
149
+ children: "×"
150
+ }
151
+ ),
152
+ /* @__PURE__ */ e("div", { className: "absolute bottom-0 left-0 right-0 bg-black/50 text-white text-[8px] text-center", children: d + 1 })
153
+ ] }),
154
+ c && /* @__PURE__ */ a("div", { className: "flex-1 flex items-center gap-2 min-w-0", children: [
155
+ /* @__PURE__ */ e(
156
+ "input",
157
+ {
158
+ type: "range",
159
+ value: l,
160
+ onChange: (g) => i(Number(g.target.value)),
161
+ min: 1,
162
+ max: 3,
163
+ step: 0.1,
164
+ className: "flex-1 h-1.5 bg-gray-200 dark:bg-gray-700 rounded-lg appearance-none cursor-pointer"
165
+ }
166
+ ),
167
+ /* @__PURE__ */ a("span", { className: "text-[10px] text-gray-500 dark:text-gray-400 w-8 text-right tabular-nums flex-shrink-0", children: [
168
+ Math.round(l * 100),
169
+ "%"
170
+ ] })
171
+ ] })
151
172
  ] });
152
173
  }
153
- function P({
174
+ function q({
154
175
  preset: d,
155
- images: s,
156
- gap: o,
157
- onPresetChange: g,
158
- onImagesChange: n,
159
- onGapChange: b,
160
- label: p,
161
- description: u
176
+ images: n,
177
+ gap: u,
178
+ onPresetChange: m,
179
+ onImagesChange: i,
180
+ onGapChange: o,
181
+ label: f,
182
+ description: b
162
183
  }) {
163
- const c = d || "four-equal", l = s || [], m = o ?? 8, N = f[c].maxImages, x = (r) => {
164
- const t = f[r];
165
- l.length > t.maxImages && n(l.slice(0, t.maxImages)), g(r);
166
- }, y = (r, t) => {
167
- const i = [...l];
168
- for (; i.length <= r; )
169
- i.push({ src: "", alt: "" });
170
- i[r] = t, n(i);
184
+ const c = d || "four-equal", l = n || [], g = u ?? 8, p = y[c].maxImages, x = (r) => {
185
+ const t = y[r];
186
+ l.length > t.maxImages && i(l.slice(0, t.maxImages)), m(r);
187
+ }, N = (r, t) => {
188
+ const s = [...l];
189
+ for (; s.length <= r; )
190
+ s.push({ src: "", alt: "" });
191
+ s[r] = t, i(s);
171
192
  }, w = (r) => {
172
193
  const t = [...l];
173
- t[r] = { src: "", alt: "" }, n(t);
194
+ t[r] = { src: "", alt: "" }, i(t);
195
+ }, k = (r, t) => {
196
+ const s = [...l];
197
+ for (; s.length <= r; )
198
+ s.push({ src: "", alt: "" });
199
+ s[r] = { ...s[r], scale: t }, i(s);
174
200
  };
175
201
  return /* @__PURE__ */ a("div", { className: "space-y-3", children: [
176
- p && /* @__PURE__ */ a("label", { className: "block text-xs font-medium text-gray-800 dark:text-gray-100", children: [
177
- p,
178
- u && /* @__PURE__ */ e("span", { className: "text-gray-500 dark:text-gray-400 text-xs font-normal ml-1", children: u })
202
+ f && /* @__PURE__ */ a("label", { className: "block text-xs font-medium text-gray-800 dark:text-gray-100", children: [
203
+ f,
204
+ b && /* @__PURE__ */ e("span", { className: "text-gray-500 dark:text-gray-400 text-xs font-normal ml-1", children: b })
179
205
  ] }),
180
206
  /* @__PURE__ */ a("div", { className: "space-y-1", children: [
181
207
  /* @__PURE__ */ e("span", { className: "text-[10px] text-gray-500 dark:text-gray-400 uppercase tracking-wide", children: "Layout" }),
182
- /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-1 p-1 bg-gray-100 dark:bg-gray-800 rounded-lg", children: C.map((r) => /* @__PURE__ */ e(
208
+ /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-1 p-1 bg-gray-100 dark:bg-gray-800 rounded-lg", children: I.map((r) => /* @__PURE__ */ e(
183
209
  "button",
184
210
  {
185
211
  type: "button",
186
212
  onClick: () => x(r),
187
- className: h(
213
+ className: v(
188
214
  "rounded-md transition-all",
189
215
  c === r ? "bg-white dark:bg-gray-700 shadow-sm" : "hover:bg-white/50 dark:hover:bg-gray-700/50"
190
216
  ),
191
- children: /* @__PURE__ */ e(I, { preset: r, isActive: c === r })
217
+ children: /* @__PURE__ */ e(j, { preset: r, isActive: c === r })
192
218
  },
193
219
  r
194
220
  )) })
@@ -198,16 +224,17 @@ function P({
198
224
  "Imagens (",
199
225
  l.filter((r) => r?.src).length,
200
226
  "/",
201
- N,
227
+ p,
202
228
  ")"
203
229
  ] }),
204
- /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-2", children: Array.from({ length: N }).map((r, t) => /* @__PURE__ */ e(
205
- j,
230
+ /* @__PURE__ */ e("div", { className: "flex flex-col gap-2", children: Array.from({ length: p }).map((r, t) => /* @__PURE__ */ e(
231
+ R,
206
232
  {
207
233
  index: t,
208
234
  image: l[t],
209
- onChange: (i) => y(t, i),
210
- onRemove: () => w(t)
235
+ onChange: (s) => N(t, s),
236
+ onRemove: () => w(t),
237
+ onScaleChange: (s) => k(t, s)
211
238
  },
212
239
  t
213
240
  )) })
@@ -216,7 +243,7 @@ function P({
216
243
  /* @__PURE__ */ a("div", { className: "flex items-center justify-between", children: [
217
244
  /* @__PURE__ */ e("span", { className: "text-[10px] text-gray-500 dark:text-gray-400 uppercase tracking-wide", children: "Espaçamento" }),
218
245
  /* @__PURE__ */ a("span", { className: "text-xs text-gray-600 dark:text-gray-400", children: [
219
- m,
246
+ g,
220
247
  "px"
221
248
  ] })
222
249
  ] }),
@@ -224,8 +251,8 @@ function P({
224
251
  "input",
225
252
  {
226
253
  type: "range",
227
- value: m,
228
- onChange: (r) => b(Number(r.target.value)),
254
+ value: g,
255
+ onChange: (r) => o(Number(r.target.value)),
229
256
  min: 0,
230
257
  max: 24,
231
258
  step: 2,
@@ -236,6 +263,6 @@ function P({
236
263
  ] });
237
264
  }
238
265
  export {
239
- P as ImageGridInput
266
+ q as ImageGridInput
240
267
  };
241
268
  //# sourceMappingURL=ImageGridInput.js.map