@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
@@ -1,7 +1,7 @@
1
1
  import { Default2DSceneHorizontal } from './default-2d-scene-Horizontal'
2
2
 
3
3
  const meta = {
4
- title: 'core/scene/2dscene/Default2DSceneHorizontal',
4
+ title: 'core/scene/2dscene/default-2d-scene/Default2DSceneHorizontal',
5
5
  component: Default2DSceneHorizontal,
6
6
  args: {
7
7
  title: '2D Scene',
@@ -8,7 +8,7 @@ export const componentMetadata: ScenePluginMetadata = {
8
8
  ...baseComponentMetadata,
9
9
  name: 'Default2DSceneHorizontal',
10
10
  description: "Default remotion 2D scene (Portrait 9:16 variant)",
11
- sourceFile: 'src/core/scene/2dscene/default-2d-scene-Horizontal.tsx',
11
+ sourceFile: 'src/core/scene/2dscene/default-2d-scene/default-2d-scene-Horizontal.tsx',
12
12
  aspectRatio: '9:16',
13
13
  tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'horizontal'])),
14
14
  }
@@ -8,7 +8,7 @@ export const componentMetadata: ScenePluginMetadata = {
8
8
  ...baseComponentMetadata,
9
9
  name: 'Default2DSceneLandscape',
10
10
  description: "Default remotion 2D scene (Landscape 16:9 variant)",
11
- sourceFile: 'src/core/scene/2dscene/default-2d-scene-Landscape.tsx',
11
+ sourceFile: 'src/core/scene/2dscene/default-2d-scene/default-2d-scene-Landscape.tsx',
12
12
  aspectRatio: '16:9',
13
13
  tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'landscape'])),
14
14
  }
@@ -1,7 +1,7 @@
1
1
  import { Default2DSceneLandscape } from './default-2d-scene-Landscape'
2
2
 
3
3
  const meta = {
4
- title: 'core/scene/2dscene/Default2DSceneLandscape',
4
+ title: 'core/scene/2dscene/default-2d-scene/Default2DSceneLandscape',
5
5
  component: Default2DSceneLandscape,
6
6
  args: {
7
7
  title: '2D Scene',
@@ -3,9 +3,9 @@ import { z } from 'zod'
3
3
 
4
4
  import { VideoComponent, defineScenePluginMetadata } from '@vibecuting/component-project-helper'
5
5
 
6
- import { defineSceneComponent } from '../../../plugins/scene-component'
7
- import { SceneMotionStack, useRemotionSceneRuntime } from '../../../base'
8
- import { useSceneRootProps } from '../../../runtime/use-scene-root-props'
6
+ import { defineSceneComponent } from '../../../../plugins/scene-component'
7
+ import { SceneMotionStack, useRemotionSceneRuntime } from '../../../../base'
8
+ import { useSceneRootProps } from '../../../../runtime/use-scene-root-props'
9
9
 
10
10
  export interface Default2DSceneProps {
11
11
  sceneId?: string
@@ -18,7 +18,7 @@ export const componentMetadata = defineScenePluginMetadata({
18
18
  resourceKind: 'scene',
19
19
  name: 'Default2DScene',
20
20
  description: 'Default remotion 2D scene',
21
- sourceFile: 'src/core/scene/2dscene/default-2d-scene.tsx',
21
+ sourceFile: 'src/core/scene/2dscene/default-2d-scene/default-2d-scene.tsx',
22
22
  pluginKey: 'core.canvas-2d',
23
23
  tags: ['scene', '2d'],
24
24
  aspectRatio: '16:9',
@@ -1,3 +1,3 @@
1
- export { Default2DScene } from './default-2d-scene'
2
- export { Default2DSceneLandscape, componentMetadata as Default2DSceneLandscapeMetadata } from './default-2d-scene-Landscape'
3
- export { Default2DSceneHorizontal, componentMetadata as Default2DSceneHorizontalMetadata } from './default-2d-scene-Horizontal'
1
+ export { Default2DScene } from './default-2d-scene/default-2d-scene'
2
+ export { Default2DSceneLandscape, componentMetadata as Default2DSceneLandscapeMetadata } from './default-2d-scene/default-2d-scene-Landscape'
3
+ export { Default2DSceneHorizontal, componentMetadata as Default2DSceneHorizontalMetadata } from './default-2d-scene/default-2d-scene-Horizontal'
@@ -1,7 +1,7 @@
1
1
  import { Default3DSceneHorizontal } from './default-3d-scene-Horizontal'
2
2
 
3
3
  const meta = {
4
- title: 'core/scene/3dscene/Default3DSceneHorizontal',
4
+ title: 'core/scene/3dscene/default-3d-scene/Default3DSceneHorizontal',
5
5
  component: Default3DSceneHorizontal,
6
6
  args: {
7
7
  title: '3D Scene',
@@ -8,7 +8,7 @@ export const componentMetadata: ScenePluginMetadata = {
8
8
  ...baseComponentMetadata,
9
9
  name: 'Default3DSceneHorizontal',
10
10
  description: "Default remotion 3D scene (Portrait 9:16 variant)",
11
- sourceFile: 'src/core/scene/3dscene/default-3d-scene-Horizontal.tsx',
11
+ sourceFile: 'src/core/scene/3dscene/default-3d-scene/default-3d-scene-Horizontal.tsx',
12
12
  aspectRatio: '9:16',
13
13
  tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'horizontal'])),
14
14
  }
@@ -8,7 +8,7 @@ export const componentMetadata: ScenePluginMetadata = {
8
8
  ...baseComponentMetadata,
9
9
  name: 'Default3DSceneLandscape',
10
10
  description: "Default remotion 3D scene (Landscape 16:9 variant)",
11
- sourceFile: 'src/core/scene/3dscene/default-3d-scene-Landscape.tsx',
11
+ sourceFile: 'src/core/scene/3dscene/default-3d-scene/default-3d-scene-Landscape.tsx',
12
12
  aspectRatio: '16:9',
13
13
  tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'landscape'])),
14
14
  }
@@ -1,7 +1,7 @@
1
1
  import { Default3DSceneLandscape } from './default-3d-scene-Landscape'
2
2
 
3
3
  const meta = {
4
- title: 'core/scene/3dscene/Default3DSceneLandscape',
4
+ title: 'core/scene/3dscene/default-3d-scene/Default3DSceneLandscape',
5
5
  component: Default3DSceneLandscape,
6
6
  args: {
7
7
  title: '3D Scene',
@@ -3,9 +3,9 @@ import { z } from 'zod'
3
3
 
4
4
  import { VideoComponent, defineScenePluginMetadata } from '@vibecuting/component-project-helper'
5
5
 
6
- import { defineSceneComponent } from '../../../plugins/scene-component'
7
- import { SceneMotionStack, useRemotionSceneRuntime } from '../../../base'
8
- import { useSceneRootProps } from '../../../runtime/use-scene-root-props'
6
+ import { defineSceneComponent } from '../../../../plugins/scene-component'
7
+ import { SceneMotionStack, useRemotionSceneRuntime } from '../../../../base'
8
+ import { useSceneRootProps } from '../../../../runtime/use-scene-root-props'
9
9
 
10
10
  export interface Default3DSceneProps {
11
11
  sceneId?: string
@@ -18,7 +18,7 @@ export const componentMetadata = defineScenePluginMetadata({
18
18
  resourceKind: 'scene',
19
19
  name: 'Default3DScene',
20
20
  description: 'Default remotion 3D scene',
21
- sourceFile: 'src/core/scene/3dscene/default-3d-scene.tsx',
21
+ sourceFile: 'src/core/scene/3dscene/default-3d-scene/default-3d-scene.tsx',
22
22
  pluginKey: 'core.three-3d',
23
23
  tags: ['scene', '3d'],
24
24
  aspectRatio: '16:9',
@@ -1,3 +1,3 @@
1
- export { Default3DScene } from './default-3d-scene'
2
- export { Default3DSceneLandscape, componentMetadata as Default3DSceneLandscapeMetadata } from './default-3d-scene-Landscape'
3
- export { Default3DSceneHorizontal, componentMetadata as Default3DSceneHorizontalMetadata } from './default-3d-scene-Horizontal'
1
+ export { Default3DScene } from './default-3d-scene/default-3d-scene'
2
+ export { Default3DSceneLandscape, componentMetadata as Default3DSceneLandscapeMetadata } from './default-3d-scene/default-3d-scene-Landscape'
3
+ export { Default3DSceneHorizontal, componentMetadata as Default3DSceneHorizontalMetadata } from './default-3d-scene/default-3d-scene-Horizontal'
@@ -0,0 +1,35 @@
1
+ import { DefaultHtmlInCanvasBrowserSceneHorizontal } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/browser/DefaultHtmlInCanvasBrowserSceneHorizontal',
5
+ component: DefaultHtmlInCanvasBrowserSceneHorizontal,
6
+ args: {
7
+ title: 'Browser in Canvas',
8
+ subtitle: 'Render browser-style DOM directly into a Remotion frame with HtmlInCanvas.',
9
+ badge: 'Browser Canvas',
10
+ accent: '#2563eb',
11
+ secondaryAccent: '#020617',
12
+ },
13
+ }
14
+
15
+ export default meta
16
+
17
+ export const Default = {
18
+ parameters: {
19
+ scenePreviewAspectRatio: '9:16',
20
+ },
21
+ }
22
+
23
+ export const Animated = {
24
+ parameters: {
25
+ scenePreviewAspectRatio: '9:16',
26
+ scenePreviewMode: 'animation',
27
+ },
28
+ }
29
+
30
+ export const Both = {
31
+ parameters: {
32
+ scenePreviewAspectRatio: '9:16',
33
+ scenePreviewMode: 'both',
34
+ },
35
+ }
@@ -0,0 +1,80 @@
1
+ import { DefaultHtmlInCanvasBrowserSceneLandscape } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/browser/DefaultHtmlInCanvasBrowserSceneLandscape',
5
+ component: DefaultHtmlInCanvasBrowserSceneLandscape,
6
+ args: {
7
+ title: 'Browser in Canvas',
8
+ subtitle: 'Render browser-style DOM directly into a Remotion frame with HtmlInCanvas.',
9
+ badge: 'Browser Canvas',
10
+ accent: '#2563eb',
11
+ secondaryAccent: '#020617',
12
+ },
13
+ }
14
+
15
+ export default meta
16
+
17
+ export const Default = {
18
+ parameters: {
19
+ scenePreviewAspectRatio: '16:9',
20
+ },
21
+ }
22
+
23
+ export const Animated = {
24
+ parameters: {
25
+ scenePreviewAspectRatio: '16:9',
26
+ scenePreviewMode: 'animation',
27
+ },
28
+ }
29
+
30
+ export const Both = {
31
+ parameters: {
32
+ scenePreviewAspectRatio: '16:9',
33
+ scenePreviewMode: 'both',
34
+ },
35
+ }
36
+
37
+ export const Html = {
38
+ args: {
39
+ html: `
40
+ <div style="width:100%;height:100%;display:grid;grid-template-columns:1.1fr 0.9fr;background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);color:#020617;font-family:Inter,ui-sans-serif,system-ui,sans-serif;">
41
+ <section style="display:grid;align-content:space-between;padding:clamp(24px,4vw,56px);gap:24px;background:linear-gradient(180deg,rgba(15,23,42,0.96),rgba(15,23,42,0.82));color:#f8fafc;">
42
+ <div style="display:grid;gap:18px;max-width:560px;">
43
+ <div style="display:inline-flex;align-items:center;gap:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;color:#cbd5e1;">
44
+ <span style="width:10px;height:10px;border-radius:9999px;background:#38bdf8;box-shadow:0 0 0 6px rgba(56,189,248,.14)"></span>
45
+ Html In Canvas
46
+ </div>
47
+ <h1 style="margin:0;font-size:clamp(42px,6vw,84px);line-height:.92;letter-spacing:-.07em;">
48
+ Full Bleed HTML
49
+ </h1>
50
+ <p style="margin:0;font-size:clamp(16px,2vw,22px);line-height:1.65;color:#cbd5e1;">
51
+ The HTML fragment is allowed to occupy the entire canvas and can drive its own layout without extra padding from the scene wrapper.
52
+ </p>
53
+ </div>
54
+ <div style="display:flex;gap:12px;flex-wrap:wrap;">
55
+ <div style="padding:12px 16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);">Grid</div>
56
+ <div style="padding:12px 16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);">Flex</div>
57
+ <div style="padding:12px 16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);">Media</div>
58
+ </div>
59
+ </section>
60
+ <section style="display:grid;grid-template-rows:1fr 1fr;gap:16px;padding:clamp(20px,3vw,40px);">
61
+ <div style="background:linear-gradient(135deg,#2563eb 0%,#38bdf8 100%);border:1px solid rgba(15,23,42,.08);min-height:0;display:grid;place-items:center;color:#fff;font-size:clamp(18px,2.2vw,34px);font-weight:800;letter-spacing:-.04em;">
62
+ Layout A
63
+ </div>
64
+ <div style="display:grid;grid-template-columns:1fr 1fr;gap:16px;min-height:0;">
65
+ <div style="background:#fff;border:1px solid rgba(15,23,42,.08);min-height:0;display:grid;place-items:center;font-size:clamp(16px,1.8vw,28px);font-weight:700;">
66
+ B1
67
+ </div>
68
+ <div style="background:#0f172a;color:#f8fafc;border:1px solid rgba(15,23,42,.08);min-height:0;display:grid;place-items:center;font-size:clamp(16px,1.8vw,28px);font-weight:700;">
69
+ B2
70
+ </div>
71
+ </div>
72
+ </section>
73
+ </div>
74
+ `,
75
+ },
76
+ parameters: {
77
+ scenePreviewAspectRatio: '16:9',
78
+ scenePreviewMode: 'both',
79
+ },
80
+ }
@@ -0,0 +1,35 @@
1
+ import { DefaultHtmlInCanvasDashboardSceneHorizontal } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/dashboard/DefaultHtmlInCanvasDashboardSceneHorizontal',
5
+ component: DefaultHtmlInCanvasDashboardSceneHorizontal,
6
+ args: {
7
+ title: 'Dashboard in Canvas',
8
+ subtitle: 'Compose dashboard UI in DOM, then capture it as a canvas frame.',
9
+ badge: 'Dashboard Canvas',
10
+ accent: '#8b5cf6',
11
+ secondaryAccent: '#020617',
12
+ },
13
+ }
14
+
15
+ export default meta
16
+
17
+ export const Default = {
18
+ parameters: {
19
+ scenePreviewAspectRatio: '9:16',
20
+ },
21
+ }
22
+
23
+ export const Animated = {
24
+ parameters: {
25
+ scenePreviewAspectRatio: '9:16',
26
+ scenePreviewMode: 'animation',
27
+ },
28
+ }
29
+
30
+ export const Both = {
31
+ parameters: {
32
+ scenePreviewAspectRatio: '9:16',
33
+ scenePreviewMode: 'both',
34
+ },
35
+ }
@@ -0,0 +1,35 @@
1
+ import { DefaultHtmlInCanvasDashboardSceneLandscape } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/dashboard/DefaultHtmlInCanvasDashboardSceneLandscape',
5
+ component: DefaultHtmlInCanvasDashboardSceneLandscape,
6
+ args: {
7
+ title: 'Dashboard in Canvas',
8
+ subtitle: 'Compose dashboard UI in DOM, then capture it as a canvas frame.',
9
+ badge: 'Dashboard Canvas',
10
+ accent: '#8b5cf6',
11
+ secondaryAccent: '#020617',
12
+ },
13
+ }
14
+
15
+ export default meta
16
+
17
+ export const Default = {
18
+ parameters: {
19
+ scenePreviewAspectRatio: '16:9',
20
+ },
21
+ }
22
+
23
+ export const Animated = {
24
+ parameters: {
25
+ scenePreviewAspectRatio: '16:9',
26
+ scenePreviewMode: 'animation',
27
+ },
28
+ }
29
+
30
+ export const Both = {
31
+ parameters: {
32
+ scenePreviewAspectRatio: '16:9',
33
+ scenePreviewMode: 'both',
34
+ },
35
+ }
@@ -0,0 +1,40 @@
1
+ import {
2
+ DefaultHtmlInCanvasDashboardShellSceneLandscape,
3
+ dashboardShellHtml,
4
+ } from './default-dashboard-shell-html-in-canvas-scene'
5
+
6
+ const meta = {
7
+ title: 'core/scene/html-in-canvas/dashboard-shell/DefaultHtmlInCanvasDashboardShellSceneLandscape',
8
+ component: DefaultHtmlInCanvasDashboardShellSceneLandscape,
9
+ args: {
10
+ html: dashboardShellHtml,
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,44 @@
1
+ import { createHtmlInCanvasScene } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const dashboardShellLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasDashboardShellSceneLandscape',
5
+ description: 'Dashboard shell HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/dashboard-shell/default-dashboard-shell-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.dashboard-shell',
8
+ aspectRatio: '16:9',
9
+ template: 'dashboard',
10
+ })
11
+
12
+ const dashboardShellHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasDashboardShellSceneHorizontal',
14
+ description: 'Dashboard shell HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/dashboard-shell/default-dashboard-shell-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.dashboard-shell',
17
+ aspectRatio: '9:16',
18
+ template: 'dashboard',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasDashboardShellSceneLandscape = dashboardShellLandscape.Scene
22
+ export const DefaultHtmlInCanvasDashboardShellSceneHorizontal = dashboardShellHorizontal.Scene
23
+ export const DefaultHtmlInCanvasDashboardShellSceneLandscapeMetadata = dashboardShellLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasDashboardShellSceneHorizontalMetadata = dashboardShellHorizontal.componentMetadata
25
+
26
+ export const dashboardShellHtml = String.raw`
27
+ <div style="width:100%;height:100%;display:grid;grid-template-rows:auto 1fr;background:#020617;color:#f8fafc;overflow:hidden;">
28
+ <header style="display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(15,23,42,.95);">
29
+ <div>Dashboard Shell</div>
30
+ <div style="display:flex;gap:10px;"><span>Search</span><span>Profile</span></div>
31
+ </header>
32
+ <main style="display:grid;grid-template-columns:minmax(240px,.28fr) minmax(0,1fr);min-height:0;">
33
+ <aside style="padding:24px;border-right:1px solid rgba(255,255,255,.08);background:rgba(2,6,23,.88);display:grid;gap:14px;">
34
+ <div>Navigation</div>
35
+ <div>Projects</div>
36
+ <div>Reports</div>
37
+ </aside>
38
+ <section style="padding:24px;display:grid;grid-template-rows:auto 1fr;gap:16px;">
39
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);">Header block</div>
40
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);display:grid;place-items:center;">Main dashboard content</div>
41
+ </section>
42
+ </main>
43
+ </div>
44
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasDashboardShellSceneLandscape,
3
+ DefaultHtmlInCanvasDashboardShellSceneHorizontal,
4
+ DefaultHtmlInCanvasDashboardShellSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasDashboardShellSceneHorizontalMetadata,
6
+ dashboardShellHtml,
7
+ } from './default-dashboard-shell-html-in-canvas-scene'
8
+
@@ -0,0 +1,35 @@
1
+ import { DefaultHtmlInCanvasDocsSceneHorizontal } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/docs/DefaultHtmlInCanvasDocsSceneHorizontal',
5
+ component: DefaultHtmlInCanvasDocsSceneHorizontal,
6
+ args: {
7
+ title: 'Canvas Handbook',
8
+ subtitle: 'A docs-style HtmlInCanvas scene with outline, callouts and progress.',
9
+ badge: 'Docs Canvas',
10
+ accent: '#38bdf8',
11
+ secondaryAccent: '#020617',
12
+ },
13
+ }
14
+
15
+ export default meta
16
+
17
+ export const Default = {
18
+ parameters: {
19
+ scenePreviewAspectRatio: '9:16',
20
+ },
21
+ }
22
+
23
+ export const Animated = {
24
+ parameters: {
25
+ scenePreviewAspectRatio: '9:16',
26
+ scenePreviewMode: 'animation',
27
+ },
28
+ }
29
+
30
+ export const Both = {
31
+ parameters: {
32
+ scenePreviewAspectRatio: '9:16',
33
+ scenePreviewMode: 'both',
34
+ },
35
+ }
@@ -0,0 +1,35 @@
1
+ import { DefaultHtmlInCanvasDocsSceneLandscape } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/docs/DefaultHtmlInCanvasDocsSceneLandscape',
5
+ component: DefaultHtmlInCanvasDocsSceneLandscape,
6
+ args: {
7
+ title: 'Canvas Handbook',
8
+ subtitle: 'A docs-style HtmlInCanvas scene with outline, callouts and progress.',
9
+ badge: 'Docs Canvas',
10
+ accent: '#38bdf8',
11
+ secondaryAccent: '#020617',
12
+ },
13
+ }
14
+
15
+ export default meta
16
+
17
+ export const Default = {
18
+ parameters: {
19
+ scenePreviewAspectRatio: '16:9',
20
+ },
21
+ }
22
+
23
+ export const Animated = {
24
+ parameters: {
25
+ scenePreviewAspectRatio: '16:9',
26
+ scenePreviewMode: 'animation',
27
+ },
28
+ }
29
+
30
+ export const Both = {
31
+ parameters: {
32
+ scenePreviewAspectRatio: '16:9',
33
+ scenePreviewMode: 'both',
34
+ },
35
+ }
@@ -0,0 +1,38 @@
1
+ import { DefaultHtmlInCanvasArticleSceneLandscape, articleHtml } from './default-article-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/document/article/DefaultHtmlInCanvasArticleSceneLandscape',
5
+ component: DefaultHtmlInCanvasArticleSceneLandscape,
6
+ args: {
7
+ html: articleHtml,
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,50 @@
1
+ import { createHtmlInCanvasScene } from '../../shared/default-html-in-canvas-scene'
2
+
3
+ const articleLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasArticleSceneLandscape',
5
+ description: 'Article-style HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/document/article/default-article-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.document.article',
8
+ aspectRatio: '16:9',
9
+ template: 'docs',
10
+ })
11
+
12
+ const articleHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasArticleSceneHorizontal',
14
+ description: 'Article-style HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/document/article/default-article-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.document.article',
17
+ aspectRatio: '9:16',
18
+ template: 'docs',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasArticleSceneLandscape = articleLandscape.Scene
22
+ export const DefaultHtmlInCanvasArticleSceneHorizontal = articleHorizontal.Scene
23
+ export const DefaultHtmlInCanvasArticleSceneLandscapeMetadata = articleLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasArticleSceneHorizontalMetadata = articleHorizontal.componentMetadata
25
+
26
+ export const articleHtml = String.raw`
27
+ <article style="width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.6fr);gap:0;background:#020617;color:#f8fafc;overflow:hidden;">
28
+ <section style="display:grid;align-content:start;padding:clamp(28px,4vw,72px);gap:22px;background:linear-gradient(180deg,rgba(15,23,42,.98),rgba(15,23,42,.82));">
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:#38bdf8;"></span>
31
+ Article
32
+ </div>
33
+ <h1 style="margin:0;max-width:12ch;font-size:clamp(44px,6vw,88px);line-height:.92;letter-spacing:-.07em;">A readable article layout</h1>
34
+ <p style="margin:0;max-width:720px;font-size:clamp(16px,2vw,22px);line-height:1.7;color:#cbd5e1;">
35
+ This variant prioritizes paragraphs, subheads, and callouts with a strong editorial column rhythm.
36
+ </p>
37
+ <div style="display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px;">
38
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);">Lead</div>
39
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);">Body</div>
40
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);">Quote</div>
41
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);">Notes</div>
42
+ </div>
43
+ </section>
44
+ <aside style="display:grid;gap:16px;padding:clamp(20px,3vw,40px);background:#0f172a;">
45
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(2,6,23,.82);">Summary</div>
46
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(2,6,23,.82);">Sources</div>
47
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(2,6,23,.82);">Footnotes</div>
48
+ </aside>
49
+ </article>
50
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasArticleSceneLandscape,
3
+ DefaultHtmlInCanvasArticleSceneHorizontal,
4
+ DefaultHtmlInCanvasArticleSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasArticleSceneHorizontalMetadata,
6
+ articleHtml,
7
+ } from './default-article-html-in-canvas-scene'
8
+
@@ -0,0 +1,40 @@
1
+ import {
2
+ DefaultHtmlInCanvasDocumentSceneLandscape,
3
+ documentHtml,
4
+ } from './default-document-html-in-canvas-scene'
5
+
6
+ const meta = {
7
+ title: 'core/scene/html-in-canvas/document/DefaultHtmlInCanvasDocumentSceneLandscape',
8
+ component: DefaultHtmlInCanvasDocumentSceneLandscape,
9
+ args: {
10
+ html: documentHtml,
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
+ }