@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,50 @@
1
+ import { createHtmlInCanvasScene } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const documentLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasDocumentSceneLandscape',
5
+ description: 'Document-style HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/document/default-document-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.document',
8
+ aspectRatio: '16:9',
9
+ template: 'docs',
10
+ })
11
+
12
+ const documentHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasDocumentSceneHorizontal',
14
+ description: 'Document-style HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/document/default-document-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.document',
17
+ aspectRatio: '9:16',
18
+ template: 'docs',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasDocumentSceneLandscape = documentLandscape.Scene
22
+ export const DefaultHtmlInCanvasDocumentSceneHorizontal = documentHorizontal.Scene
23
+ export const DefaultHtmlInCanvasDocumentSceneLandscapeMetadata = documentLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasDocumentSceneHorizontalMetadata = documentHorizontal.componentMetadata
25
+
26
+ export const documentHtml = String.raw`
27
+ <article style="width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:0;background:#020617;color:#f8fafc;overflow:hidden;">
28
+ <section style="display:grid;align-content:start;padding:clamp(24px,4vw,64px);gap:20px;border-right:1px solid rgba(255,255,255,.08);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
+ Documentation
32
+ </div>
33
+ <h1 style="margin:0;max-width:12ch;font-size:clamp(42px,6vw,84px);line-height:.92;letter-spacing:-.07em;">Readable docs inside canvas</h1>
34
+ <p style="margin:0;max-width:680px;font-size:clamp(16px,2vw,22px);line-height:1.68;color:#cbd5e1;">
35
+ This template keeps headings, sections, and callouts aligned while the HTML fragment fills the entire frame.
36
+ </p>
37
+ <div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:720px;">
38
+ <div style="padding:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);">Overview</div>
39
+ <div style="padding:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);">API</div>
40
+ <div style="padding:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);">Examples</div>
41
+ <div style="padding:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);">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);">Outline</div>
46
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(2,6,23,.82);">References</div>
47
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(2,6,23,.82);">Checklist</div>
48
+ </aside>
49
+ </article>
50
+ `
@@ -0,0 +1,31 @@
1
+ export {
2
+ DefaultHtmlInCanvasDocumentSceneLandscape,
3
+ DefaultHtmlInCanvasDocumentSceneHorizontal,
4
+ DefaultHtmlInCanvasDocumentSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasDocumentSceneHorizontalMetadata,
6
+ documentHtml,
7
+ } from './default-document-html-in-canvas-scene'
8
+
9
+ export {
10
+ DefaultHtmlInCanvasArticleSceneLandscape,
11
+ DefaultHtmlInCanvasArticleSceneHorizontal,
12
+ DefaultHtmlInCanvasArticleSceneLandscapeMetadata,
13
+ DefaultHtmlInCanvasArticleSceneHorizontalMetadata,
14
+ articleHtml,
15
+ } from './article'
16
+
17
+ export {
18
+ DefaultHtmlInCanvasReportSceneLandscape,
19
+ DefaultHtmlInCanvasReportSceneHorizontal,
20
+ DefaultHtmlInCanvasReportSceneLandscapeMetadata,
21
+ DefaultHtmlInCanvasReportSceneHorizontalMetadata,
22
+ reportHtml,
23
+ } from './report'
24
+
25
+ export {
26
+ DefaultHtmlInCanvasWhitepaperSceneLandscape,
27
+ DefaultHtmlInCanvasWhitepaperSceneHorizontal,
28
+ DefaultHtmlInCanvasWhitepaperSceneLandscapeMetadata,
29
+ DefaultHtmlInCanvasWhitepaperSceneHorizontalMetadata,
30
+ whitepaperHtml,
31
+ } from './whitepaper'
@@ -0,0 +1,38 @@
1
+ import { DefaultHtmlInCanvasReportSceneLandscape, reportHtml } from './default-report-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/document/report/DefaultHtmlInCanvasReportSceneLandscape',
5
+ component: DefaultHtmlInCanvasReportSceneLandscape,
6
+ args: {
7
+ html: reportHtml,
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,51 @@
1
+ import { createHtmlInCanvasScene } from '../../shared/default-html-in-canvas-scene'
2
+
3
+ const reportLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasReportSceneLandscape',
5
+ description: 'Report-style HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/document/report/default-report-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.document.report',
8
+ aspectRatio: '16:9',
9
+ template: 'docs',
10
+ })
11
+
12
+ const reportHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasReportSceneHorizontal',
14
+ description: 'Report-style HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/document/report/default-report-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.document.report',
17
+ aspectRatio: '9:16',
18
+ template: 'docs',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasReportSceneLandscape = reportLandscape.Scene
22
+ export const DefaultHtmlInCanvasReportSceneHorizontal = reportHorizontal.Scene
23
+ export const DefaultHtmlInCanvasReportSceneLandscapeMetadata = reportLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasReportSceneHorizontalMetadata = reportHorizontal.componentMetadata
25
+
26
+ export const reportHtml = String.raw`
27
+ <article style="width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:0;background:#020617;color:#f8fafc;overflow:hidden;">
28
+ <section style="display:grid;align-content:space-between;padding:clamp(28px,4vw,72px);background:linear-gradient(135deg,#020617 0%,#0f172a 100%);border-right:1px solid rgba(255,255,255,.08);">
29
+ <div style="display:grid;gap:18px;max-width:700px;">
30
+ <div style="display:inline-flex;align-items:center;gap:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;color:#94a3b8;">
31
+ <span style="width:10px;height:10px;border-radius:9999px;background:#f59e0b;"></span>
32
+ Report
33
+ </div>
34
+ <h1 style="margin:0;font-size:clamp(44px,6vw,92px);line-height:.92;letter-spacing:-.07em;">Structured reporting inside canvas</h1>
35
+ <p style="margin:0;max-width:760px;font-size:clamp(16px,2vw,22px);line-height:1.7;color:#cbd5e1;">
36
+ Use this for KPI summaries, executive readouts, and page-like reports that need dense but readable composition.
37
+ </p>
38
+ </div>
39
+ <div style="display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;">
40
+ <div style="padding:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);">Revenue</div>
41
+ <div style="padding:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);">Growth</div>
42
+ <div style="padding:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);">Retention</div>
43
+ </div>
44
+ </section>
45
+ <aside style="display:grid;gap:16px;padding:clamp(20px,3vw,40px);background:#0f172a;">
46
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(2,6,23,.82);">Charts</div>
47
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(2,6,23,.82);">Trends</div>
48
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(2,6,23,.82);">Actions</div>
49
+ </aside>
50
+ </article>
51
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasReportSceneLandscape,
3
+ DefaultHtmlInCanvasReportSceneHorizontal,
4
+ DefaultHtmlInCanvasReportSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasReportSceneHorizontalMetadata,
6
+ reportHtml,
7
+ } from './default-report-html-in-canvas-scene'
8
+
@@ -0,0 +1,41 @@
1
+ import {
2
+ DefaultHtmlInCanvasWhitepaperSceneLandscape,
3
+ whitepaperHtml,
4
+ } from './default-whitepaper-html-in-canvas-scene'
5
+
6
+ const meta = {
7
+ title: 'core/scene/html-in-canvas/document/whitepaper/DefaultHtmlInCanvasWhitepaperSceneLandscape',
8
+ component: DefaultHtmlInCanvasWhitepaperSceneLandscape,
9
+ args: {
10
+ html: whitepaperHtml,
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
+ }
41
+
@@ -0,0 +1,50 @@
1
+ import { createHtmlInCanvasScene } from '../../shared/default-html-in-canvas-scene'
2
+
3
+ const whitepaperLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasWhitepaperSceneLandscape',
5
+ description: 'Whitepaper-style HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/document/whitepaper/default-whitepaper-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.document.whitepaper',
8
+ aspectRatio: '16:9',
9
+ template: 'docs',
10
+ })
11
+
12
+ const whitepaperHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasWhitepaperSceneHorizontal',
14
+ description: 'Whitepaper-style HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/document/whitepaper/default-whitepaper-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.document.whitepaper',
17
+ aspectRatio: '9:16',
18
+ template: 'docs',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasWhitepaperSceneLandscape = whitepaperLandscape.Scene
22
+ export const DefaultHtmlInCanvasWhitepaperSceneHorizontal = whitepaperHorizontal.Scene
23
+ export const DefaultHtmlInCanvasWhitepaperSceneLandscapeMetadata = whitepaperLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasWhitepaperSceneHorizontalMetadata = whitepaperHorizontal.componentMetadata
25
+
26
+ export const whitepaperHtml = String.raw`
27
+ <article style="width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.55fr);background:#f8fafc;color:#020617;overflow:hidden;">
28
+ <section style="display:grid;align-content:start;padding:clamp(28px,4vw,72px);gap:18px;background:linear-gradient(180deg,#fff 0%,#e2e8f0 100%);border-right:1px solid rgba(2,6,23,.08);">
29
+ <div style="display:inline-flex;align-items:center;gap:10px;letter-spacing:.24em;text-transform:uppercase;font-size:11px;color:#475569;">
30
+ <span style="width:10px;height:10px;border-radius:9999px;background:#2563eb;"></span>
31
+ Whitepaper
32
+ </div>
33
+ <h1 style="margin:0;max-width:12ch;font-size:clamp(42px,6vw,86px);line-height:.92;letter-spacing:-.07em;">Long-form thinking in a frame</h1>
34
+ <p style="margin:0;max-width:760px;font-size:clamp(16px,2vw,22px);line-height:1.75;color:#334155;">
35
+ This variant favors long-reading comfort, tighter typographic contrast, and a calm editorial structure.
36
+ </p>
37
+ <div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:720px;">
38
+ <div style="padding:16px;border:1px solid rgba(2,6,23,.08);background:#fff;">Abstract</div>
39
+ <div style="padding:16px;border:1px solid rgba(2,6,23,.08);background:#fff;">Method</div>
40
+ <div style="padding:16px;border:1px solid rgba(2,6,23,.08);background:#fff;">Results</div>
41
+ <div style="padding:16px;border:1px solid rgba(2,6,23,.08);background:#fff;">Appendix</div>
42
+ </div>
43
+ </section>
44
+ <aside style="display:grid;gap:16px;padding:clamp(20px,3vw,40px);background:#e2e8f0;">
45
+ <div style="padding:18px;border:1px solid rgba(2,6,23,.08);background:#fff;">Citations</div>
46
+ <div style="padding:18px;border:1px solid rgba(2,6,23,.08);background:#fff;">Charts</div>
47
+ <div style="padding:18px;border:1px solid rgba(2,6,23,.08);background:#fff;">Conclusion</div>
48
+ </aside>
49
+ </article>
50
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasWhitepaperSceneLandscape,
3
+ DefaultHtmlInCanvasWhitepaperSceneHorizontal,
4
+ DefaultHtmlInCanvasWhitepaperSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasWhitepaperSceneHorizontalMetadata,
6
+ whitepaperHtml,
7
+ } from './default-whitepaper-html-in-canvas-scene'
8
+
@@ -0,0 +1,35 @@
1
+ import { DefaultHtmlInCanvasEditorSceneHorizontal } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/editor/DefaultHtmlInCanvasEditorSceneHorizontal',
5
+ component: DefaultHtmlInCanvasEditorSceneHorizontal,
6
+ args: {
7
+ title: 'Code in Canvas',
8
+ subtitle: 'An editor-style HtmlInCanvas scene for live coding and layout previews.',
9
+ badge: 'Editor Canvas',
10
+ accent: '#22c55e',
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 { DefaultHtmlInCanvasEditorSceneLandscape } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/editor/DefaultHtmlInCanvasEditorSceneLandscape',
5
+ component: DefaultHtmlInCanvasEditorSceneLandscape,
6
+ args: {
7
+ title: 'Code in Canvas',
8
+ subtitle: 'An editor-style HtmlInCanvas scene for live coding and layout previews.',
9
+ badge: 'Editor Canvas',
10
+ accent: '#22c55e',
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
+ DefaultHtmlInCanvasFullBleedSceneLandscape,
3
+ fullBleedHtml,
4
+ } from './default-full-bleed-html-in-canvas-scene'
5
+
6
+ const meta = {
7
+ title: 'core/scene/html-in-canvas/full-bleed/DefaultHtmlInCanvasFullBleedSceneLandscape',
8
+ component: DefaultHtmlInCanvasFullBleedSceneLandscape,
9
+ args: {
10
+ html: fullBleedHtml,
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,38 @@
1
+ import { createHtmlInCanvasScene } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const fullBleedLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasFullBleedSceneLandscape',
5
+ description: 'Full-bleed HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/full-bleed/default-full-bleed-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.full-bleed',
8
+ aspectRatio: '16:9',
9
+ template: 'browser',
10
+ })
11
+
12
+ const fullBleedHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasFullBleedSceneHorizontal',
14
+ description: 'Full-bleed HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/full-bleed/default-full-bleed-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.full-bleed',
17
+ aspectRatio: '9:16',
18
+ template: 'browser',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasFullBleedSceneLandscape = fullBleedLandscape.Scene
22
+ export const DefaultHtmlInCanvasFullBleedSceneHorizontal = fullBleedHorizontal.Scene
23
+ export const DefaultHtmlInCanvasFullBleedSceneLandscapeMetadata = fullBleedLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasFullBleedSceneHorizontalMetadata = fullBleedHorizontal.componentMetadata
25
+
26
+ export const fullBleedHtml = String.raw`
27
+ <main style="width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(135deg,#020617 0%,#0f172a 45%,#2563eb 100%);color:#f8fafc;overflow:hidden;">
28
+ <section style="width:min(92vw,1200px);height:min(88vh,680px);display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);background:rgba(2,6,23,.34);backdrop-filter:blur(18px);padding:clamp(24px,4vw,64px);text-align:center;">
29
+ <div style="display:grid;gap:18px;justify-items:center;">
30
+ <div style="padding:10px 14px;border:1px solid rgba(255,255,255,.16);letter-spacing:.28em;text-transform:uppercase;font-size:11px;">Full Bleed HTML</div>
31
+ <h1 style="margin:0;font-size:clamp(44px,7vw,92px);line-height:.9;letter-spacing:-.08em;">Canvas-sized HTML</h1>
32
+ <p style="margin:0;max-width:720px;font-size:clamp(16px,2vw,24px);line-height:1.65;color:#dbeafe;">
33
+ The fragment can occupy the entire runtime canvas and define its own grid without extra wrapper padding.
34
+ </p>
35
+ </div>
36
+ </section>
37
+ </main>
38
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasFullBleedSceneLandscape,
3
+ DefaultHtmlInCanvasFullBleedSceneHorizontal,
4
+ DefaultHtmlInCanvasFullBleedSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasFullBleedSceneHorizontalMetadata,
6
+ fullBleedHtml,
7
+ } from './default-full-bleed-html-in-canvas-scene'
8
+
@@ -0,0 +1,6 @@
1
+ export * from './shared/default-html-in-canvas-scene'
2
+ export * from './full-bleed'
3
+ export * from './document'
4
+ export * from './dashboard-shell'
5
+ export * from './landing-page'
6
+ export * from './media-wall'
@@ -0,0 +1,40 @@
1
+ import {
2
+ DefaultHtmlInCanvasLandingPageSceneLandscape,
3
+ landingPageHtml,
4
+ } from './default-landing-page-html-in-canvas-scene'
5
+
6
+ const meta = {
7
+ title: 'core/scene/html-in-canvas/landing-page/DefaultHtmlInCanvasLandingPageSceneLandscape',
8
+ component: DefaultHtmlInCanvasLandingPageSceneLandscape,
9
+ args: {
10
+ html: landingPageHtml,
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,46 @@
1
+ import { createHtmlInCanvasScene } from '../shared/default-html-in-canvas-scene'
2
+
3
+ const landingPageLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasLandingPageSceneLandscape',
5
+ description: 'Landing page HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/landing-page/default-landing-page-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.landing-page',
8
+ aspectRatio: '16:9',
9
+ template: 'browser',
10
+ })
11
+
12
+ const landingPageHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasLandingPageSceneHorizontal',
14
+ description: 'Landing page HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/landing-page/default-landing-page-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.landing-page',
17
+ aspectRatio: '9:16',
18
+ template: 'browser',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasLandingPageSceneLandscape = landingPageLandscape.Scene
22
+ export const DefaultHtmlInCanvasLandingPageSceneHorizontal = landingPageHorizontal.Scene
23
+ export const DefaultHtmlInCanvasLandingPageSceneLandscapeMetadata = landingPageLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasLandingPageSceneHorizontalMetadata = landingPageHorizontal.componentMetadata
25
+
26
+ export const landingPageHtml = 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
+ Landing Page
32
+ </div>
33
+ <h1 style="margin:0;font-size:clamp(46px,7vw,98px);line-height:.9;letter-spacing:-.08em;">A front page 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 HTML fragment can operate like a website hero, with sections stretching to the available viewport.
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;">Learn more</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;">Product hero media</div>
44
+ </section>
45
+ </main>
46
+ `
@@ -0,0 +1,38 @@
1
+ import { DefaultHtmlInCanvasFeatureGridSceneLandscape, featureGridHtml } from './default-feature-grid-html-in-canvas-scene'
2
+
3
+ const meta = {
4
+ title: 'core/scene/html-in-canvas/landing-page/feature-grid/DefaultHtmlInCanvasFeatureGridSceneLandscape',
5
+ component: DefaultHtmlInCanvasFeatureGridSceneLandscape,
6
+ args: {
7
+ html: featureGridHtml,
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,41 @@
1
+ import { createHtmlInCanvasScene } from '../../shared/default-html-in-canvas-scene'
2
+
3
+ const featureGridLandscape = createHtmlInCanvasScene({
4
+ name: 'DefaultHtmlInCanvasFeatureGridSceneLandscape',
5
+ description: 'Feature grid HtmlInCanvas scene for 16:9 landscape previews',
6
+ sourceFile: 'src/core/scene/html-in-canvas/landing-page/feature-grid/default-feature-grid-html-in-canvas-scene.tsx',
7
+ pluginKey: 'core.html-in-canvas.landing-page.feature-grid',
8
+ aspectRatio: '16:9',
9
+ template: 'browser',
10
+ })
11
+
12
+ const featureGridHorizontal = createHtmlInCanvasScene({
13
+ name: 'DefaultHtmlInCanvasFeatureGridSceneHorizontal',
14
+ description: 'Feature grid HtmlInCanvas scene for 9:16 vertical previews',
15
+ sourceFile: 'src/core/scene/html-in-canvas/landing-page/feature-grid/default-feature-grid-html-in-canvas-scene.tsx',
16
+ pluginKey: 'core.html-in-canvas.landing-page.feature-grid',
17
+ aspectRatio: '9:16',
18
+ template: 'browser',
19
+ })
20
+
21
+ export const DefaultHtmlInCanvasFeatureGridSceneLandscape = featureGridLandscape.Scene
22
+ export const DefaultHtmlInCanvasFeatureGridSceneHorizontal = featureGridHorizontal.Scene
23
+ export const DefaultHtmlInCanvasFeatureGridSceneLandscapeMetadata = featureGridLandscape.componentMetadata
24
+ export const DefaultHtmlInCanvasFeatureGridSceneHorizontalMetadata = featureGridHorizontal.componentMetadata
25
+
26
+ export const featureGridHtml = String.raw`
27
+ <main style="width:100%;height:100%;display:grid;grid-template-rows:auto 1fr;background:linear-gradient(135deg,#0f172a 0%,#020617 100%);color:#f8fafc;overflow:hidden;">
28
+ <header style="padding:clamp(20px,3vw,48px);display:grid;gap:14px;">
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:#38bdf8;"></span>
31
+ Feature Grid
32
+ </div>
33
+ <h1 style="margin:0;font-size:clamp(36px,5vw,78px);line-height:.92;letter-spacing:-.07em;">A compact features section</h1>
34
+ </header>
35
+ <section style="padding:clamp(20px,3vw,48px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;">
36
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);">Feature 1</div>
37
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);">Feature 2</div>
38
+ <div style="padding:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);">Feature 3</div>
39
+ </section>
40
+ </main>
41
+ `
@@ -0,0 +1,8 @@
1
+ export {
2
+ DefaultHtmlInCanvasFeatureGridSceneLandscape,
3
+ DefaultHtmlInCanvasFeatureGridSceneHorizontal,
4
+ DefaultHtmlInCanvasFeatureGridSceneLandscapeMetadata,
5
+ DefaultHtmlInCanvasFeatureGridSceneHorizontalMetadata,
6
+ featureGridHtml,
7
+ } from './default-feature-grid-html-in-canvas-scene'
8
+