@vibecuting/video-project-core 0.1.29 → 0.1.31

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 (182) hide show
  1. package/package.json +9 -5
  2. package/src/base/BaseRemotionScene.test.tsx +11 -1
  3. package/src/base/index.ts +1 -0
  4. package/src/base/utils/asset-source.ts +11 -0
  5. package/src/base/utils/background-audio-layer.tsx +90 -0
  6. package/src/base/utils/background-layer.tsx +84 -0
  7. package/src/base/utils/chapter-progress-foreground.tsx +125 -0
  8. package/src/base/utils/chapter-progress-state.test.ts +28 -0
  9. package/src/base/utils/chapter-progress-state.ts +33 -0
  10. package/src/base/utils/display-motion.test.ts +21 -0
  11. package/src/base/utils/display-motion.ts +52 -0
  12. package/src/base/utils/display-surface.ts +57 -0
  13. package/src/base/utils/index.ts +10 -0
  14. package/src/base/utils/subtitle-style.ts +28 -0
  15. package/src/base/utils/video-layer-types.test.ts +145 -0
  16. package/src/base/utils/video-layer-types.ts +220 -0
  17. package/src/base/utils/voice-captions-foreground.tsx +169 -0
  18. package/src/core/intro/index.ts +18 -18
  19. package/src/core/outro/index.ts +33 -33
  20. package/src/core/scene/2dscene/{default-2d-scene-Horizontal.stories.tsx → default-2d-scene/default-2d-scene-Horizontal.stories.tsx} +1 -1
  21. package/src/core/scene/2dscene/{default-2d-scene-Horizontal.tsx → default-2d-scene/default-2d-scene-Horizontal.tsx} +1 -1
  22. package/src/core/scene/2dscene/{default-2d-scene-Landscape.tsx → default-2d-scene/default-2d-scene-Landscape.tsx} +1 -1
  23. package/src/core/scene/2dscene/{default-2d-scene.stories.tsx → default-2d-scene/default-2d-scene.stories.tsx} +1 -1
  24. package/src/core/scene/2dscene/{default-2d-scene.tsx → default-2d-scene/default-2d-scene.tsx} +4 -4
  25. package/src/core/scene/2dscene/index.ts +3 -3
  26. package/src/core/scene/3dscene/{default-3d-scene-Horizontal.stories.tsx → default-3d-scene/default-3d-scene-Horizontal.stories.tsx} +1 -1
  27. package/src/core/scene/3dscene/{default-3d-scene-Horizontal.tsx → default-3d-scene/default-3d-scene-Horizontal.tsx} +1 -1
  28. package/src/core/scene/3dscene/{default-3d-scene-Landscape.tsx → default-3d-scene/default-3d-scene-Landscape.tsx} +1 -1
  29. package/src/core/scene/3dscene/{default-3d-scene.stories.tsx → default-3d-scene/default-3d-scene.stories.tsx} +1 -1
  30. package/src/core/scene/3dscene/{default-3d-scene.tsx → default-3d-scene/default-3d-scene.tsx} +4 -4
  31. package/src/core/scene/3dscene/index.ts +3 -3
  32. package/src/core/scene/html-in-canvas/browser/default-html-in-canvas-browser-scene-Horizontal.stories.tsx +35 -0
  33. package/src/core/scene/html-in-canvas/browser/default-html-in-canvas-browser-scene-Landscape.stories.tsx +80 -0
  34. package/src/core/scene/html-in-canvas/dashboard/default-html-in-canvas-dashboard-scene-Horizontal.stories.tsx +35 -0
  35. package/src/core/scene/html-in-canvas/dashboard/default-html-in-canvas-dashboard-scene-Landscape.stories.tsx +35 -0
  36. package/src/core/scene/html-in-canvas/dashboard-shell/default-dashboard-shell-html-in-canvas-scene.stories.tsx +40 -0
  37. package/src/core/scene/html-in-canvas/dashboard-shell/default-dashboard-shell-html-in-canvas-scene.tsx +44 -0
  38. package/src/core/scene/html-in-canvas/dashboard-shell/index.ts +8 -0
  39. package/src/core/scene/html-in-canvas/docs/default-html-in-canvas-docs-scene-Horizontal.stories.tsx +35 -0
  40. package/src/core/scene/html-in-canvas/docs/default-html-in-canvas-docs-scene-Landscape.stories.tsx +35 -0
  41. package/src/core/scene/html-in-canvas/document/article/default-article-html-in-canvas-scene.stories.tsx +38 -0
  42. package/src/core/scene/html-in-canvas/document/article/default-article-html-in-canvas-scene.tsx +50 -0
  43. package/src/core/scene/html-in-canvas/document/article/index.ts +8 -0
  44. package/src/core/scene/html-in-canvas/document/default-document-html-in-canvas-scene.stories.tsx +40 -0
  45. package/src/core/scene/html-in-canvas/document/default-document-html-in-canvas-scene.tsx +50 -0
  46. package/src/core/scene/html-in-canvas/document/index.ts +31 -0
  47. package/src/core/scene/html-in-canvas/document/report/default-report-html-in-canvas-scene.stories.tsx +38 -0
  48. package/src/core/scene/html-in-canvas/document/report/default-report-html-in-canvas-scene.tsx +51 -0
  49. package/src/core/scene/html-in-canvas/document/report/index.ts +8 -0
  50. package/src/core/scene/html-in-canvas/document/whitepaper/default-whitepaper-html-in-canvas-scene.stories.tsx +41 -0
  51. package/src/core/scene/html-in-canvas/document/whitepaper/default-whitepaper-html-in-canvas-scene.tsx +50 -0
  52. package/src/core/scene/html-in-canvas/document/whitepaper/index.ts +8 -0
  53. package/src/core/scene/html-in-canvas/editor/default-html-in-canvas-editor-scene-Horizontal.stories.tsx +35 -0
  54. package/src/core/scene/html-in-canvas/editor/default-html-in-canvas-editor-scene-Landscape.stories.tsx +35 -0
  55. package/src/core/scene/html-in-canvas/full-bleed/default-full-bleed-html-in-canvas-scene.stories.tsx +40 -0
  56. package/src/core/scene/html-in-canvas/full-bleed/default-full-bleed-html-in-canvas-scene.tsx +38 -0
  57. package/src/core/scene/html-in-canvas/full-bleed/index.ts +8 -0
  58. package/src/core/scene/html-in-canvas/index.ts +6 -0
  59. package/src/core/scene/html-in-canvas/landing-page/default-landing-page-html-in-canvas-scene.stories.tsx +40 -0
  60. package/src/core/scene/html-in-canvas/landing-page/default-landing-page-html-in-canvas-scene.tsx +46 -0
  61. package/src/core/scene/html-in-canvas/landing-page/feature-grid/default-feature-grid-html-in-canvas-scene.stories.tsx +38 -0
  62. package/src/core/scene/html-in-canvas/landing-page/feature-grid/default-feature-grid-html-in-canvas-scene.tsx +41 -0
  63. package/src/core/scene/html-in-canvas/landing-page/feature-grid/index.ts +8 -0
  64. package/src/core/scene/html-in-canvas/landing-page/hero/default-hero-html-in-canvas-scene.stories.tsx +38 -0
  65. package/src/core/scene/html-in-canvas/landing-page/hero/default-hero-html-in-canvas-scene.tsx +46 -0
  66. package/src/core/scene/html-in-canvas/landing-page/hero/index.ts +8 -0
  67. package/src/core/scene/html-in-canvas/landing-page/index.ts +31 -0
  68. package/src/core/scene/html-in-canvas/landing-page/pricing/default-pricing-html-in-canvas-scene.stories.tsx +38 -0
  69. package/src/core/scene/html-in-canvas/landing-page/pricing/default-pricing-html-in-canvas-scene.tsx +42 -0
  70. package/src/core/scene/html-in-canvas/landing-page/pricing/index.ts +8 -0
  71. package/src/core/scene/html-in-canvas/media-wall/collage/default-collage-html-in-canvas-scene.stories.tsx +38 -0
  72. package/src/core/scene/html-in-canvas/media-wall/collage/default-collage-html-in-canvas-scene.tsx +42 -0
  73. package/src/core/scene/html-in-canvas/media-wall/collage/index.ts +8 -0
  74. package/src/core/scene/html-in-canvas/media-wall/default-media-wall-html-in-canvas-scene.stories.tsx +40 -0
  75. package/src/core/scene/html-in-canvas/media-wall/default-media-wall-html-in-canvas-scene.tsx +35 -0
  76. package/src/core/scene/html-in-canvas/media-wall/gallery/default-gallery-html-in-canvas-scene.stories.tsx +38 -0
  77. package/src/core/scene/html-in-canvas/media-wall/gallery/default-gallery-html-in-canvas-scene.tsx +43 -0
  78. package/src/core/scene/html-in-canvas/media-wall/gallery/index.ts +8 -0
  79. package/src/core/scene/html-in-canvas/media-wall/grid/default-grid-html-in-canvas-scene.stories.tsx +38 -0
  80. package/src/core/scene/html-in-canvas/media-wall/grid/default-grid-html-in-canvas-scene.tsx +35 -0
  81. package/src/core/scene/html-in-canvas/media-wall/grid/index.ts +8 -0
  82. package/src/core/scene/html-in-canvas/media-wall/index.ts +31 -0
  83. package/src/core/scene/html-in-canvas/shared/default-html-in-canvas-scene.tsx +1315 -0
  84. package/src/core/scene/index.ts +1 -0
  85. package/src/core/scene/photo/3dvr-photo/{default-3dvr-photo-scene.stories.tsx → default-3dvr-photo-scene/default-3dvr-photo-scene.stories.tsx} +2 -2
  86. package/src/core/scene/photo/3dvr-photo/{default-3dvr-photo-scene.tsx → default-3dvr-photo-scene/default-3dvr-photo-scene.tsx} +4 -4
  87. package/src/core/scene/photo/3dvr-photo/{default-3dvr-photo-scene-Horizontal.stories.tsx → default-3dvr-photo-scene-Horizontal/default-3dvr-photo-scene-Horizontal.stories.tsx} +1 -1
  88. package/src/core/scene/photo/3dvr-photo/{default-3dvr-photo-scene-Horizontal.tsx → default-3dvr-photo-scene-Horizontal/default-3dvr-photo-scene-Horizontal.tsx} +4 -4
  89. package/src/core/scene/photo/3dvr-photo/{default-3dvr-photo-scene-Landscape.tsx → default-3dvr-photo-scene-Landscape/default-3dvr-photo-scene-Landscape.tsx} +4 -4
  90. package/src/core/scene/photo/3dvr-photo/default-dolly-3dvr-photo-scene/default-dolly-3dvr-photo-scene.stories.tsx +38 -0
  91. package/src/core/scene/photo/3dvr-photo/default-dolly-3dvr-photo-scene/default-dolly-3dvr-photo-scene.tsx +36 -0
  92. package/src/core/scene/photo/3dvr-photo/default-orbit-3dvr-photo-scene/default-orbit-3dvr-photo-scene.stories.tsx +38 -0
  93. package/src/core/scene/photo/3dvr-photo/default-orbit-3dvr-photo-scene/default-orbit-3dvr-photo-scene.tsx +34 -0
  94. package/src/core/scene/photo/3dvr-photo/default-poster-3dvr-photo-scene/default-poster-3dvr-photo-scene.stories.tsx +38 -0
  95. package/src/core/scene/photo/3dvr-photo/default-poster-3dvr-photo-scene/default-poster-3dvr-photo-scene.tsx +39 -0
  96. package/src/core/scene/photo/3dvr-photo/index.ts +6 -3
  97. package/src/core/scene/photo/effects-photo/default-chrome-effects-photo-scene/default-chrome-effects-photo-scene.stories.tsx +24 -0
  98. package/src/core/scene/photo/effects-photo/default-chrome-effects-photo-scene/default-chrome-effects-photo-scene.tsx +39 -0
  99. package/src/core/scene/photo/effects-photo/default-cool-tone-effects-photo-scene/default-cool-tone-effects-photo-scene.stories.tsx +24 -0
  100. package/src/core/scene/photo/effects-photo/default-cool-tone-effects-photo-scene/default-cool-tone-effects-photo-scene.tsx +39 -0
  101. package/src/core/scene/photo/effects-photo/default-dream-effects-photo-scene/default-dream-effects-photo-scene.stories.tsx +23 -0
  102. package/src/core/scene/photo/effects-photo/default-dream-effects-photo-scene/default-dream-effects-photo-scene.tsx +37 -0
  103. package/src/core/scene/photo/effects-photo/default-duotone-effects-photo-scene/default-duotone-effects-photo-scene.stories.tsx +25 -0
  104. package/src/core/scene/photo/effects-photo/default-duotone-effects-photo-scene/default-duotone-effects-photo-scene.tsx +41 -0
  105. package/src/core/scene/photo/effects-photo/{default-effects-photo-scene.stories.tsx → default-effects-photo-scene/default-effects-photo-scene.stories.tsx} +2 -2
  106. package/src/core/scene/photo/effects-photo/default-effects-photo-scene/default-effects-photo-scene.tsx +639 -0
  107. package/src/core/scene/photo/effects-photo/{default-effects-photo-scene-Horizontal.stories.tsx → default-effects-photo-scene-Horizontal/default-effects-photo-scene-Horizontal.stories.tsx} +1 -1
  108. package/src/core/scene/photo/effects-photo/{default-effects-photo-scene-Horizontal.tsx → default-effects-photo-scene-Horizontal/default-effects-photo-scene-Horizontal.tsx} +4 -4
  109. package/src/core/scene/photo/effects-photo/{default-effects-photo-scene-Landscape.tsx → default-effects-photo-scene-Landscape/default-effects-photo-scene-Landscape.tsx} +4 -4
  110. package/src/core/scene/photo/effects-photo/default-glow-effects-photo-scene/default-glow-effects-photo-scene.stories.tsx +39 -0
  111. package/src/core/scene/photo/effects-photo/default-glow-effects-photo-scene/default-glow-effects-photo-scene.tsx +37 -0
  112. package/src/core/scene/photo/effects-photo/default-grain-effects-photo-scene/default-grain-effects-photo-scene.stories.tsx +39 -0
  113. package/src/core/scene/photo/effects-photo/default-grain-effects-photo-scene/default-grain-effects-photo-scene.tsx +37 -0
  114. package/src/core/scene/photo/effects-photo/default-halation-effects-photo-scene/default-halation-effects-photo-scene.stories.tsx +24 -0
  115. package/src/core/scene/photo/effects-photo/default-halation-effects-photo-scene/default-halation-effects-photo-scene.tsx +39 -0
  116. package/src/core/scene/photo/effects-photo/default-infrared-effects-photo-scene/default-infrared-effects-photo-scene.stories.tsx +24 -0
  117. package/src/core/scene/photo/effects-photo/default-infrared-effects-photo-scene/default-infrared-effects-photo-scene.tsx +39 -0
  118. package/src/core/scene/photo/effects-photo/default-light-leak-effects-photo-scene/default-light-leak-effects-photo-scene.stories.tsx +24 -0
  119. package/src/core/scene/photo/effects-photo/default-light-leak-effects-photo-scene/default-light-leak-effects-photo-scene.tsx +39 -0
  120. package/src/core/scene/photo/effects-photo/default-mono-effects-photo-scene/default-mono-effects-photo-scene.stories.tsx +23 -0
  121. package/src/core/scene/photo/effects-photo/default-mono-effects-photo-scene/default-mono-effects-photo-scene.tsx +37 -0
  122. package/src/core/scene/photo/effects-photo/default-noir-effects-photo-scene/default-noir-effects-photo-scene.stories.tsx +23 -0
  123. package/src/core/scene/photo/effects-photo/default-noir-effects-photo-scene/default-noir-effects-photo-scene.tsx +37 -0
  124. package/src/core/scene/photo/effects-photo/default-pastel-effects-photo-scene/default-pastel-effects-photo-scene.stories.tsx +24 -0
  125. package/src/core/scene/photo/effects-photo/default-pastel-effects-photo-scene/default-pastel-effects-photo-scene.tsx +39 -0
  126. package/src/core/scene/photo/effects-photo/default-retro-effects-photo-scene/default-retro-effects-photo-scene.stories.tsx +24 -0
  127. package/src/core/scene/photo/effects-photo/default-retro-effects-photo-scene/default-retro-effects-photo-scene.tsx +39 -0
  128. package/src/core/scene/photo/effects-photo/default-sepia-effects-photo-scene/default-sepia-effects-photo-scene.stories.tsx +23 -0
  129. package/src/core/scene/photo/effects-photo/default-sepia-effects-photo-scene/default-sepia-effects-photo-scene.tsx +37 -0
  130. package/src/core/scene/photo/effects-photo/default-soft-focus-effects-photo-scene/default-soft-focus-effects-photo-scene.stories.tsx +39 -0
  131. package/src/core/scene/photo/effects-photo/default-soft-focus-effects-photo-scene/default-soft-focus-effects-photo-scene.tsx +37 -0
  132. package/src/core/scene/photo/effects-photo/default-vibrant-effects-photo-scene/default-vibrant-effects-photo-scene.stories.tsx +23 -0
  133. package/src/core/scene/photo/effects-photo/default-vibrant-effects-photo-scene/default-vibrant-effects-photo-scene.tsx +37 -0
  134. package/src/core/scene/photo/effects-photo/default-vignette-effects-photo-scene/default-vignette-effects-photo-scene.stories.tsx +39 -0
  135. package/src/core/scene/photo/effects-photo/default-vignette-effects-photo-scene/default-vignette-effects-photo-scene.tsx +37 -0
  136. package/src/core/scene/photo/effects-photo/default-warmth-effects-photo-scene/default-warmth-effects-photo-scene.stories.tsx +40 -0
  137. package/src/core/scene/photo/effects-photo/default-warmth-effects-photo-scene/default-warmth-effects-photo-scene.tsx +39 -0
  138. package/src/core/scene/photo/effects-photo/index.ts +21 -3
  139. package/src/core/scene/photo/index.ts +25 -9
  140. package/src/core/scene/photo/{default-live-photo-scene-Horizontal.stories.tsx → live-photo/default-live-photo-scene-Horizontal.stories.tsx} +1 -1
  141. package/src/core/scene/photo/{default-live-photo-scene-Horizontal.tsx → live-photo/default-live-photo-scene-Horizontal.tsx} +1 -1
  142. package/src/core/scene/photo/{default-live-photo-scene-Landscape.tsx → live-photo/default-live-photo-scene-Landscape.tsx} +1 -1
  143. package/src/core/scene/photo/{default-live-photo-scene.stories.tsx → live-photo/default-live-photo-scene.stories.tsx} +1 -1
  144. package/src/core/scene/photo/{default-live-photo-scene.tsx → live-photo/default-live-photo-scene.tsx} +5 -3
  145. package/src/core/scene/photo/photo-storybook.test.tsx +2 -2
  146. package/src/core/scene/photo/{default-photo-strip-scene-Horizontal.tsx → photo-strip/default-photo-strip-scene-Horizontal.tsx} +1 -1
  147. package/src/core/scene/photo/{default-photo-strip-scene-Landscape.tsx → photo-strip/default-photo-strip-scene-Landscape.tsx} +1 -1
  148. package/src/core/scene/photo/{default-photo-strip-scene.stories.tsx → photo-strip/default-photo-strip-scene.stories.tsx} +1 -1
  149. package/src/core/scene/photo/{default-photo-strip-scene.tsx → photo-strip/default-photo-strip-scene.tsx} +2 -2
  150. package/src/core/scene/photo/{default-photo-wall-scene-Horizontal.tsx → photo-wall/default-photo-wall-scene-Horizontal.tsx} +1 -1
  151. package/src/core/scene/photo/{default-photo-wall-scene-Landscape.tsx → photo-wall/default-photo-wall-scene-Landscape.tsx} +1 -1
  152. package/src/core/scene/photo/{default-photo-wall-scene.stories.tsx → photo-wall/default-photo-wall-scene.stories.tsx} +1 -1
  153. package/src/core/scene/photo/{default-photo-wall-scene.tsx → photo-wall/default-photo-wall-scene.tsx} +2 -2
  154. package/src/core/scene/slide/{default-slide-scene-Horizontal.animated.stories.tsx → default-slide-scene/default-slide-scene-Horizontal.animated.stories.tsx} +1 -1
  155. package/src/core/scene/slide/{default-slide-scene-Horizontal.tsx → default-slide-scene/default-slide-scene-Horizontal.tsx} +1 -1
  156. package/src/core/scene/slide/{default-slide-scene-Landscape.tsx → default-slide-scene/default-slide-scene-Landscape.tsx} +1 -1
  157. package/src/core/scene/slide/{default-slide-scene.animated.stories.tsx → default-slide-scene/default-slide-scene.animated.stories.tsx} +1 -1
  158. package/src/core/scene/slide/{default-slide-scene.tsx → default-slide-scene/default-slide-scene.tsx} +5 -5
  159. package/src/core/scene/slide/index.ts +3 -3
  160. package/src/core/scene/video/{default-video-scene-Horizontal.stories.tsx → default-video-scene/default-video-scene-Horizontal.stories.tsx} +1 -1
  161. package/src/core/scene/video/{default-video-scene-Horizontal.tsx → default-video-scene/default-video-scene-Horizontal.tsx} +1 -1
  162. package/src/core/scene/video/{default-video-scene-Landscape.tsx → default-video-scene/default-video-scene-Landscape.tsx} +1 -1
  163. package/src/core/scene/video/{default-video-scene.stories.tsx → default-video-scene/default-video-scene.stories.tsx} +1 -1
  164. package/src/core/scene/video/{default-video-scene.tsx → default-video-scene/default-video-scene.tsx} +3 -3
  165. package/src/core/scene/video/{default-video-split-scene-Horizontal.tsx → default-video-split-scene/default-video-split-scene-Horizontal.tsx} +1 -1
  166. package/src/core/scene/video/{default-video-split-scene-Landscape.tsx → default-video-split-scene/default-video-split-scene-Landscape.tsx} +1 -1
  167. package/src/core/scene/video/{default-video-split-scene.stories.tsx → default-video-split-scene/default-video-split-scene.stories.tsx} +1 -1
  168. package/src/core/scene/video/{default-video-split-scene.tsx → default-video-split-scene/default-video-split-scene.tsx} +2 -2
  169. package/src/core/scene/video/{default-video-wall-scene-Horizontal.tsx → default-video-wall-scene/default-video-wall-scene-Horizontal.tsx} +1 -1
  170. package/src/core/scene/video/{default-video-wall-scene-Landscape.tsx → default-video-wall-scene/default-video-wall-scene-Landscape.tsx} +1 -1
  171. package/src/core/scene/video/{default-video-wall-scene.stories.tsx → default-video-wall-scene/default-video-wall-scene.stories.tsx} +1 -1
  172. package/src/core/scene/video/{default-video-wall-scene.tsx → default-video-wall-scene/default-video-wall-scene.tsx} +2 -2
  173. package/src/core/scene/video/index.ts +9 -9
  174. package/src/lint/index.ts +2 -0
  175. package/src/lint/scene-convention-lint.test.ts +86 -0
  176. package/src/lint/scene-convention-lint.ts +247 -0
  177. package/src/storybook/index.ts +19 -0
  178. package/src/storybook/remotion-preview.test.tsx +53 -0
  179. package/src/storybook/remotion-preview.tsx +85 -11
  180. package/src/core/scene/photo/effects-photo/default-effects-photo-scene.tsx +0 -352
  181. /package/src/core/scene/slide/{default-slide-scene-Horizontal.stories.tsx → default-slide-scene/default-slide-scene-Horizontal.stories.tsx} +0 -0
  182. /package/src/core/scene/slide/{default-slide-scene.stories.tsx → default-slide-scene/default-slide-scene.stories.tsx} +0 -0
@@ -0,0 +1,38 @@
1
+ import { DefaultHtmlInCanvasHeroSceneLandscape, heroHtml } from './default-hero-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/landing-page/hero/DefaultHtmlInCanvasHeroSceneLandscape',
5
+ component: DefaultHtmlInCanvasHeroSceneLandscape,
6
+ args: {
7
+ html: heroHtml,
8
+ },
9
+ }
10
+
11
+ export default meta
12
+
13
+ export const Default = {
14
+ parameters: {
15
+ scenePreviewAspectRatio: '16:9',
16
+ },
17
+ }
18
+
19
+ export const Animated = {
20
+ parameters: {
21
+ scenePreviewAspectRatio: '16:9',
22
+ scenePreviewMode: 'animation',
23
+ },
24
+ }
25
+
26
+ export const Both = {
27
+ parameters: {
28
+ scenePreviewAspectRatio: '16:9',
29
+ scenePreviewMode: 'both',
30
+ },
31
+ }
32
+
33
+ export const Vertical = {
34
+ parameters: {
35
+ scenePreviewAspectRatio: '9:16',
36
+ },
37
+ }
38
+
@@ -0,0 +1,46 @@
1
+ import { createHtmlInCanvasScene } from '../../shared/default-html-in-canvas-scene'
2
+
3
+ const heroLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasHeroSceneLandscape',
5
+ description: 'Hero landing HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/landing-page/hero/default-hero-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.landing-page.hero',
8
+ aspectRatio: '16:9',
9
+ template: 'browser',
10
+ })
11
+
12
+ const heroHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasHeroSceneHorizontal',
14
+ description: 'Hero landing HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/landing-page/hero/default-hero-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.landing-page.hero',
17
+ aspectRatio: '9:16',
18
+ template: 'browser',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasHeroSceneLandscape = heroLandscape.Scene
22
+ export const DefaultHtmlInCanvasHeroSceneHorizontal = heroHorizontal.Scene
23
+ export const DefaultHtmlInCanvasHeroSceneLandscapeMetadata = heroLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasHeroSceneHorizontalMetadata = heroHorizontal.componentMetadata
25
+
26
+ export const heroHtml = String.raw`
27
+ <main style="width:100%;height:100%;display:grid;grid-template-columns:1.05fr .95fr;background:linear-gradient(135deg,#0f172a 0%,#111827 55%,#1d4ed8 100%);color:#f8fafc;overflow:hidden;">
28
+ <section style="display:grid;align-content:center;padding:clamp(24px,4vw,72px);gap:22px;max-width:1000px;">
29
+ <div style="display:inline-flex;align-items:center;gap:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;color:#bfdbfe;">
30
+ <span style="width:10px;height:10px;border-radius:9999px;background:#60a5fa;"></span>
31
+ Hero
32
+ </div>
33
+ <h1 style="margin:0;font-size:clamp(46px,7vw,98px);line-height:.9;letter-spacing:-.08em;">A landing page hero that fills the frame</h1>
34
+ <p style="margin:0;max-width:680px;font-size:clamp(16px,2vw,22px);line-height:1.7;color:#dbeafe;">
35
+ The hero layout gives the most space to headline and primary action, while supporting media stays fully visible.
36
+ </p>
37
+ <div style="display:flex;gap:12px;flex-wrap:wrap;">
38
+ <button style="padding:14px 18px;border:1px solid rgba(255,255,255,.14);background:#f8fafc;color:#020617;">Get started</button>
39
+ <button style="padding:14px 18px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#f8fafc;">Watch demo</button>
40
+ </div>
41
+ </section>
42
+ <section style="display:grid;place-items:center;padding:clamp(20px,3vw,48px);">
43
+ <div style="width:min(100%,520px);aspect-ratio:1;border:1px solid rgba(255,255,255,.14);background:rgba(2,6,23,.38);display:grid;place-items:center;">Hero media</div>
44
+ </section>
45
+ </main>
46
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasHeroSceneLandscape,
3
+ DefaultHtmlInCanvasHeroSceneHorizontal,
4
+ DefaultHtmlInCanvasHeroSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasHeroSceneHorizontalMetadata,
6
+ heroHtml,
7
+ } from './default-hero-html-in-canvas-scene'
8
+
@@ -0,0 +1,31 @@
1
+ export {
2
+ DefaultHtmlInCanvasLandingPageSceneLandscape,
3
+ DefaultHtmlInCanvasLandingPageSceneHorizontal,
4
+ DefaultHtmlInCanvasLandingPageSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasLandingPageSceneHorizontalMetadata,
6
+ landingPageHtml,
7
+ } from './default-landing-page-html-in-canvas-scene'
8
+
9
+ export {
10
+ DefaultHtmlInCanvasHeroSceneLandscape,
11
+ DefaultHtmlInCanvasHeroSceneHorizontal,
12
+ DefaultHtmlInCanvasHeroSceneLandscapeMetadata,
13
+ DefaultHtmlInCanvasHeroSceneHorizontalMetadata,
14
+ heroHtml,
15
+ } from './hero'
16
+
17
+ export {
18
+ DefaultHtmlInCanvasPricingSceneLandscape,
19
+ DefaultHtmlInCanvasPricingSceneHorizontal,
20
+ DefaultHtmlInCanvasPricingSceneLandscapeMetadata,
21
+ DefaultHtmlInCanvasPricingSceneHorizontalMetadata,
22
+ pricingHtml,
23
+ } from './pricing'
24
+
25
+ export {
26
+ DefaultHtmlInCanvasFeatureGridSceneLandscape,
27
+ DefaultHtmlInCanvasFeatureGridSceneHorizontal,
28
+ DefaultHtmlInCanvasFeatureGridSceneLandscapeMetadata,
29
+ DefaultHtmlInCanvasFeatureGridSceneHorizontalMetadata,
30
+ featureGridHtml,
31
+ } from './feature-grid'
@@ -0,0 +1,38 @@
1
+ import { DefaultHtmlInCanvasPricingSceneLandscape, pricingHtml } from './default-pricing-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/landing-page/pricing/DefaultHtmlInCanvasPricingSceneLandscape',
5
+ component: DefaultHtmlInCanvasPricingSceneLandscape,
6
+ args: {
7
+ html: pricingHtml,
8
+ },
9
+ }
10
+
11
+ export default meta
12
+
13
+ export const Default = {
14
+ parameters: {
15
+ scenePreviewAspectRatio: '16:9',
16
+ },
17
+ }
18
+
19
+ export const Animated = {
20
+ parameters: {
21
+ scenePreviewAspectRatio: '16:9',
22
+ scenePreviewMode: 'animation',
23
+ },
24
+ }
25
+
26
+ export const Both = {
27
+ parameters: {
28
+ scenePreviewAspectRatio: '16:9',
29
+ scenePreviewMode: 'both',
30
+ },
31
+ }
32
+
33
+ export const Vertical = {
34
+ parameters: {
35
+ scenePreviewAspectRatio: '9:16',
36
+ },
37
+ }
38
+
@@ -0,0 +1,42 @@
1
+ import { createHtmlInCanvasScene } from '../../shared/default-html-in-canvas-scene'
2
+
3
+ const pricingLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasPricingSceneLandscape',
5
+ description: 'Pricing HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/landing-page/pricing/default-pricing-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.landing-page.pricing',
8
+ aspectRatio: '16:9',
9
+ template: 'browser',
10
+ })
11
+
12
+ const pricingHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasPricingSceneHorizontal',
14
+ description: 'Pricing HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/landing-page/pricing/default-pricing-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.landing-page.pricing',
17
+ aspectRatio: '9:16',
18
+ template: 'browser',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasPricingSceneLandscape = pricingLandscape.Scene
22
+ export const DefaultHtmlInCanvasPricingSceneHorizontal = pricingHorizontal.Scene
23
+ export const DefaultHtmlInCanvasPricingSceneLandscapeMetadata = pricingLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasPricingSceneHorizontalMetadata = pricingHorizontal.componentMetadata
25
+
26
+ export const pricingHtml = String.raw`
27
+ <section style="width:100%;height:100%;display:grid;grid-template-columns:.95fr 1.05fr;background:#020617;color:#f8fafc;overflow:hidden;">
28
+ <aside style="display:grid;align-content:center;padding:clamp(20px,3vw,48px);gap:16px;background:linear-gradient(180deg,rgba(15,23,42,.96),rgba(2,6,23,.94));border-right:1px solid rgba(255,255,255,.08);">
29
+ <div style="display:inline-flex;align-items:center;gap:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;color:#cbd5e1;">
30
+ <span style="width:10px;height:10px;border-radius:9999px;background:#22c55e;"></span>
31
+ Pricing
32
+ </div>
33
+ <h1 style="margin:0;font-size:clamp(34px,5vw,72px);line-height:.92;letter-spacing:-.07em;">Compare plans at a glance</h1>
34
+ <p style="margin:0;font-size:clamp(15px,1.8vw,20px);line-height:1.6;color:#cbd5e1;">Clear pricing cards with one emphasized option.</p>
35
+ </aside>
36
+ <div style="display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;">
37
+ <div style="padding:24px;border-left:1px solid rgba(255,255,255,.08);background:#0f172a;display:grid;align-content:start;gap:12px;">Starter</div>
38
+ <div style="padding:24px;border-left:1px solid rgba(255,255,255,.08);background:#111827;display:grid;align-content:start;gap:12px;">Pro</div>
39
+ <div style="padding:24px;border-left:1px solid rgba(255,255,255,.08);background:#1d4ed8;display:grid;align-content:start;gap:12px;">Enterprise</div>
40
+ </div>
41
+ </section>
42
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasPricingSceneLandscape,
3
+ DefaultHtmlInCanvasPricingSceneHorizontal,
4
+ DefaultHtmlInCanvasPricingSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasPricingSceneHorizontalMetadata,
6
+ pricingHtml,
7
+ } from './default-pricing-html-in-canvas-scene'
8
+
@@ -0,0 +1,38 @@
1
+ import { DefaultHtmlInCanvasCollageSceneLandscape, collageHtml } from './default-collage-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/media-wall/collage/DefaultHtmlInCanvasCollageSceneLandscape',
5
+ component: DefaultHtmlInCanvasCollageSceneLandscape,
6
+ args: {
7
+ html: collageHtml,
8
+ },
9
+ }
10
+
11
+ export default meta
12
+
13
+ export const Default = {
14
+ parameters: {
15
+ scenePreviewAspectRatio: '16:9',
16
+ },
17
+ }
18
+
19
+ export const Animated = {
20
+ parameters: {
21
+ scenePreviewAspectRatio: '16:9',
22
+ scenePreviewMode: 'animation',
23
+ },
24
+ }
25
+
26
+ export const Both = {
27
+ parameters: {
28
+ scenePreviewAspectRatio: '16:9',
29
+ scenePreviewMode: 'both',
30
+ },
31
+ }
32
+
33
+ export const Vertical = {
34
+ parameters: {
35
+ scenePreviewAspectRatio: '9:16',
36
+ },
37
+ }
38
+
@@ -0,0 +1,42 @@
1
+ import { createHtmlInCanvasScene } from '../../shared/default-html-in-canvas-scene'
2
+
3
+ const collageLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasCollageSceneLandscape',
5
+ description: 'Collage-style HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/media-wall/collage/default-collage-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.media-wall.collage',
8
+ aspectRatio: '16:9',
9
+ template: 'browser',
10
+ })
11
+
12
+ const collageHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasCollageSceneHorizontal',
14
+ description: 'Collage-style HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/media-wall/collage/default-collage-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.media-wall.collage',
17
+ aspectRatio: '9:16',
18
+ template: 'browser',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasCollageSceneLandscape = collageLandscape.Scene
22
+ export const DefaultHtmlInCanvasCollageSceneHorizontal = collageHorizontal.Scene
23
+ export const DefaultHtmlInCanvasCollageSceneLandscapeMetadata = collageLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasCollageSceneHorizontalMetadata = collageHorizontal.componentMetadata
25
+
26
+ export const collageHtml = String.raw`
27
+ <section style="width:100%;height:100%;display:grid;grid-template-columns:1fr .85fr;background:#020617;color:#f8fafc;overflow:hidden;">
28
+ <div style="display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:1fr .75fr;gap:0;">
29
+ <div style="grid-row:1 / span 2;background:linear-gradient(135deg,#1d4ed8,#38bdf8);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Hero image</div>
30
+ <div style="background:linear-gradient(135deg,#0f172a,#1e293b);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Inset A</div>
31
+ <div style="background:linear-gradient(135deg,#111827,#312e81);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Inset B</div>
32
+ </div>
33
+ <aside style="display:grid;align-content:center;padding:clamp(20px,3vw,44px);gap:16px;background:linear-gradient(180deg,rgba(15,23,42,.96),rgba(2,6,23,.94));border-left:1px solid rgba(255,255,255,.08);">
34
+ <div style="display:inline-flex;align-items:center;gap:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;color:#cbd5e1;">
35
+ <span style="width:10px;height:10px;border-radius:9999px;background:#60a5fa;"></span>
36
+ Collage
37
+ </div>
38
+ <h1 style="margin:0;font-size:clamp(34px,5vw,72px);line-height:.92;letter-spacing:-.07em;">Mixed media collage</h1>
39
+ <p style="margin:0;font-size:clamp(15px,1.8vw,20px);line-height:1.6;color:#cbd5e1;">A stronger editorial montage layout for promos and collection pages.</p>
40
+ </aside>
41
+ </section>
42
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasCollageSceneLandscape,
3
+ DefaultHtmlInCanvasCollageSceneHorizontal,
4
+ DefaultHtmlInCanvasCollageSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasCollageSceneHorizontalMetadata,
6
+ collageHtml,
7
+ } from './default-collage-html-in-canvas-scene'
8
+
@@ -0,0 +1,40 @@
1
+ import {
2
+ DefaultHtmlInCanvasMediaWallSceneLandscape,
3
+ mediaWallHtml,
4
+ } from './default-media-wall-html-in-canvas-scene'
5
+
6
+ const meta = {
7
+ title: 'core/scene/html-in-canvas/media-wall/DefaultHtmlInCanvasMediaWallSceneLandscape',
8
+ component: DefaultHtmlInCanvasMediaWallSceneLandscape,
9
+ args: {
10
+ html: mediaWallHtml,
11
+ },
12
+ }
13
+
14
+ export default meta
15
+
16
+ export const Default = {
17
+ parameters: {
18
+ scenePreviewAspectRatio: '16:9',
19
+ },
20
+ }
21
+
22
+ export const Animated = {
23
+ parameters: {
24
+ scenePreviewAspectRatio: '16:9',
25
+ scenePreviewMode: 'animation',
26
+ },
27
+ }
28
+
29
+ export const Both = {
30
+ parameters: {
31
+ scenePreviewAspectRatio: '16:9',
32
+ scenePreviewMode: 'both',
33
+ },
34
+ }
35
+
36
+ export const Vertical = {
37
+ parameters: {
38
+ scenePreviewAspectRatio: '9:16',
39
+ },
40
+ }
@@ -0,0 +1,35 @@
1
+ import { createHtmlInCanvasScene } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const mediaWallLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasMediaWallSceneLandscape',
5
+ description: 'Media wall HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/media-wall/default-media-wall-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.media-wall',
8
+ aspectRatio: '16:9',
9
+ template: 'browser',
10
+ })
11
+
12
+ const mediaWallHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasMediaWallSceneHorizontal',
14
+ description: 'Media wall HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/media-wall/default-media-wall-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.media-wall',
17
+ aspectRatio: '9:16',
18
+ template: 'browser',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasMediaWallSceneLandscape = mediaWallLandscape.Scene
22
+ export const DefaultHtmlInCanvasMediaWallSceneHorizontal = mediaWallHorizontal.Scene
23
+ export const DefaultHtmlInCanvasMediaWallSceneLandscapeMetadata = mediaWallLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasMediaWallSceneHorizontalMetadata = mediaWallHorizontal.componentMetadata
25
+
26
+ export const mediaWallHtml = String.raw`
27
+ <section style="width:100%;height:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:0;background:#020617;color:#f8fafc;overflow:hidden;">
28
+ <div style="background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Media 1</div>
29
+ <div style="background:linear-gradient(135deg,#0f172a,#1e3a8a);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Media 2</div>
30
+ <div style="background:linear-gradient(135deg,#1d4ed8,#38bdf8);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Media 3</div>
31
+ <div style="background:linear-gradient(135deg,#111827,#0f172a);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Media 4</div>
32
+ <div style="background:linear-gradient(135deg,#0f172a,#312e81);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Media 5</div>
33
+ <div style="background:linear-gradient(135deg,#2563eb,#0f172a);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Media 6</div>
34
+ </section>
35
+ `
@@ -0,0 +1,38 @@
1
+ import { DefaultHtmlInCanvasGallerySceneLandscape, galleryHtml } from './default-gallery-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/media-wall/gallery/DefaultHtmlInCanvasGallerySceneLandscape',
5
+ component: DefaultHtmlInCanvasGallerySceneLandscape,
6
+ args: {
7
+ html: galleryHtml,
8
+ },
9
+ }
10
+
11
+ export default meta
12
+
13
+ export const Default = {
14
+ parameters: {
15
+ scenePreviewAspectRatio: '16:9',
16
+ },
17
+ }
18
+
19
+ export const Animated = {
20
+ parameters: {
21
+ scenePreviewAspectRatio: '16:9',
22
+ scenePreviewMode: 'animation',
23
+ },
24
+ }
25
+
26
+ export const Both = {
27
+ parameters: {
28
+ scenePreviewAspectRatio: '16:9',
29
+ scenePreviewMode: 'both',
30
+ },
31
+ }
32
+
33
+ export const Vertical = {
34
+ parameters: {
35
+ scenePreviewAspectRatio: '9:16',
36
+ },
37
+ }
38
+
@@ -0,0 +1,43 @@
1
+ import { createHtmlInCanvasScene } from '../../shared/default-html-in-canvas-scene'
2
+
3
+ const galleryLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasGallerySceneLandscape',
5
+ description: 'Gallery-style HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/media-wall/gallery/default-gallery-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.media-wall.gallery',
8
+ aspectRatio: '16:9',
9
+ template: 'browser',
10
+ })
11
+
12
+ const galleryHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasGallerySceneHorizontal',
14
+ description: 'Gallery-style HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/media-wall/gallery/default-gallery-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.media-wall.gallery',
17
+ aspectRatio: '9:16',
18
+ template: 'browser',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasGallerySceneLandscape = galleryLandscape.Scene
22
+ export const DefaultHtmlInCanvasGallerySceneHorizontal = galleryHorizontal.Scene
23
+ export const DefaultHtmlInCanvasGallerySceneLandscapeMetadata = galleryLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasGallerySceneHorizontalMetadata = galleryHorizontal.componentMetadata
25
+
26
+ export const galleryHtml = String.raw`
27
+ <section style="width:100%;height:100%;display:grid;grid-template-columns:1.2fr .8fr;gap:0;background:#020617;color:#f8fafc;overflow:hidden;">
28
+ <div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:0;">
29
+ <div style="background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Photo A</div>
30
+ <div style="background:linear-gradient(135deg,#0f172a,#1d4ed8);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Photo B</div>
31
+ <div style="background:linear-gradient(135deg,#1d4ed8,#38bdf8);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Photo C</div>
32
+ <div style="background:linear-gradient(135deg,#0f172a,#312e81);border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Photo D</div>
33
+ </div>
34
+ <aside style="display:grid;align-content:center;padding:clamp(20px,3vw,44px);gap:16px;background:linear-gradient(180deg,rgba(15,23,42,.96),rgba(2,6,23,.94));border-left:1px solid rgba(255,255,255,.08);">
35
+ <div style="display:inline-flex;align-items:center;gap:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;color:#cbd5e1;">
36
+ <span style="width:10px;height:10px;border-radius:9999px;background:#38bdf8;"></span>
37
+ Gallery
38
+ </div>
39
+ <h1 style="margin:0;font-size:clamp(34px,5vw,72px);line-height:.92;letter-spacing:-.07em;">A simple image wall</h1>
40
+ <p style="margin:0;font-size:clamp(15px,1.8vw,20px);line-height:1.6;color:#cbd5e1;">Balanced grid composition for collection previews and gallery intros.</p>
41
+ </aside>
42
+ </section>
43
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasGallerySceneLandscape,
3
+ DefaultHtmlInCanvasGallerySceneHorizontal,
4
+ DefaultHtmlInCanvasGallerySceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasGallerySceneHorizontalMetadata,
6
+ galleryHtml,
7
+ } from './default-gallery-html-in-canvas-scene'
8
+
@@ -0,0 +1,38 @@
1
+ import { DefaultHtmlInCanvasGridSceneLandscape, gridHtml } from './default-grid-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/media-wall/grid/DefaultHtmlInCanvasGridSceneLandscape',
5
+ component: DefaultHtmlInCanvasGridSceneLandscape,
6
+ args: {
7
+ html: gridHtml,
8
+ },
9
+ }
10
+
11
+ export default meta
12
+
13
+ export const Default = {
14
+ parameters: {
15
+ scenePreviewAspectRatio: '16:9',
16
+ },
17
+ }
18
+
19
+ export const Animated = {
20
+ parameters: {
21
+ scenePreviewAspectRatio: '16:9',
22
+ scenePreviewMode: 'animation',
23
+ },
24
+ }
25
+
26
+ export const Both = {
27
+ parameters: {
28
+ scenePreviewAspectRatio: '16:9',
29
+ scenePreviewMode: 'both',
30
+ },
31
+ }
32
+
33
+ export const Vertical = {
34
+ parameters: {
35
+ scenePreviewAspectRatio: '9:16',
36
+ },
37
+ }
38
+
@@ -0,0 +1,35 @@
1
+ import { createHtmlInCanvasScene } from '../../shared/default-html-in-canvas-scene'
2
+
3
+ const gridLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasGridSceneLandscape',
5
+ description: 'Grid-style HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/media-wall/grid/default-grid-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.media-wall.grid',
8
+ aspectRatio: '16:9',
9
+ template: 'browser',
10
+ })
11
+
12
+ const gridHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasGridSceneHorizontal',
14
+ description: 'Grid-style HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/media-wall/grid/default-grid-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.media-wall.grid',
17
+ aspectRatio: '9:16',
18
+ template: 'browser',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasGridSceneLandscape = gridLandscape.Scene
22
+ export const DefaultHtmlInCanvasGridSceneHorizontal = gridHorizontal.Scene
23
+ export const DefaultHtmlInCanvasGridSceneLandscapeMetadata = gridLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasGridSceneHorizontalMetadata = gridHorizontal.componentMetadata
25
+
26
+ export const gridHtml = String.raw`
27
+ <section style="width:100%;height:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:0;background:#020617;color:#f8fafc;overflow:hidden;">
28
+ <div style="background:#0f172a;border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Grid 1</div>
29
+ <div style="background:#111827;border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Grid 2</div>
30
+ <div style="background:#1d4ed8;border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Grid 3</div>
31
+ <div style="background:#1e293b;border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Grid 4</div>
32
+ <div style="background:#0f172a;border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Grid 5</div>
33
+ <div style="background:#2563eb;border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;">Grid 6</div>
34
+ </section>
35
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasGridSceneLandscape,
3
+ DefaultHtmlInCanvasGridSceneHorizontal,
4
+ DefaultHtmlInCanvasGridSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasGridSceneHorizontalMetadata,
6
+ gridHtml,
7
+ } from './default-grid-html-in-canvas-scene'
8
+
@@ -0,0 +1,31 @@
1
+ export {
2
+ DefaultHtmlInCanvasMediaWallSceneLandscape,
3
+ DefaultHtmlInCanvasMediaWallSceneHorizontal,
4
+ DefaultHtmlInCanvasMediaWallSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasMediaWallSceneHorizontalMetadata,
6
+ mediaWallHtml,
7
+ } from './default-media-wall-html-in-canvas-scene'
8
+
9
+ export {
10
+ DefaultHtmlInCanvasGallerySceneLandscape,
11
+ DefaultHtmlInCanvasGallerySceneHorizontal,
12
+ DefaultHtmlInCanvasGallerySceneLandscapeMetadata,
13
+ DefaultHtmlInCanvasGallerySceneHorizontalMetadata,
14
+ galleryHtml,
15
+ } from './gallery'
16
+
17
+ export {
18
+ DefaultHtmlInCanvasGridSceneLandscape,
19
+ DefaultHtmlInCanvasGridSceneHorizontal,
20
+ DefaultHtmlInCanvasGridSceneLandscapeMetadata,
21
+ DefaultHtmlInCanvasGridSceneHorizontalMetadata,
22
+ gridHtml,
23
+ } from './grid'
24
+
25
+ export {
26
+ DefaultHtmlInCanvasCollageSceneLandscape,
27
+ DefaultHtmlInCanvasCollageSceneHorizontal,
28
+ DefaultHtmlInCanvasCollageSceneLandscapeMetadata,
29
+ DefaultHtmlInCanvasCollageSceneHorizontalMetadata,
30
+ collageHtml,
31
+ } from './collage'