@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,20 +1,20 @@
1
- import type { ComponentProps } from 'react'
1
+ import type { DefaultEffectsPhotoSceneProps } from '../default-effects-photo-scene/default-effects-photo-scene'
2
2
 
3
3
  import { VideoComponent, type ScenePluginMetadata } from '@vibecuting/component-project-helper'
4
4
 
5
- import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from './default-effects-photo-scene'
5
+ import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from '../default-effects-photo-scene/default-effects-photo-scene'
6
6
 
7
7
  export const componentMetadata: ScenePluginMetadata = {
8
8
  ...baseComponentMetadata,
9
9
  name: 'DefaultEffectsPhotoSceneLandscape',
10
10
  description: 'Photo effects scene for 16:9 landscape previews with a wide cinematic layout',
11
- sourceFile: 'src/core/scene/photo/effects-photo/default-effects-photo-scene-Landscape.tsx',
11
+ sourceFile: 'src/core/scene/photo/effects-photo/default-effects-photo-scene-Landscape/default-effects-photo-scene-Landscape.tsx',
12
12
  aspectRatio: '16:9',
13
13
  tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'landscape'])),
14
14
  }
15
15
 
16
16
  export const DefaultEffectsPhotoSceneLandscape = VideoComponent(componentMetadata)(function DefaultEffectsPhotoSceneLandscape(
17
- props: ComponentProps<typeof DefaultEffectsPhotoScene>,
17
+ props: DefaultEffectsPhotoSceneProps,
18
18
  ) {
19
19
  return <DefaultEffectsPhotoScene {...props} />
20
20
  })
@@ -0,0 +1,39 @@
1
+ import { DefaultGlowEffectsPhotoScene } from './default-glow-effects-photo-scene'
2
+
3
+ const photoUrl = 'https://heyaai-statics-1342239856.cos.ap-guangzhou.myqcloud.com/tmp/premium_photo-1779404552087-0f905162376f-121.jpeg'
4
+
5
+ const meta = {
6
+ title: 'core/scene/photo/effects-photo/default-glow-effects-photo-scene/DefaultGlowEffectsPhotoScene',
7
+ component: DefaultGlowEffectsPhotoScene,
8
+ args: {
9
+ title: 'Bloom Light',
10
+ subtitle: 'Single glow treatment for luminous highlights and soft halos.',
11
+ badge: 'Glow',
12
+ imageSrc: photoUrl,
13
+ intensity: 0.58,
14
+ accent: '#020617',
15
+ secondaryAccent: '#1d4ed8',
16
+ },
17
+ }
18
+
19
+ export default meta
20
+
21
+ export const Default = {
22
+ parameters: {
23
+ scenePreviewAspectRatio: '16:9',
24
+ },
25
+ }
26
+
27
+ export const Animated = {
28
+ parameters: {
29
+ scenePreviewAspectRatio: '16:9',
30
+ scenePreviewMode: 'animation',
31
+ },
32
+ }
33
+
34
+ export const Both = {
35
+ parameters: {
36
+ scenePreviewAspectRatio: '9:16',
37
+ scenePreviewMode: 'both',
38
+ },
39
+ }
@@ -0,0 +1,37 @@
1
+ import type { DefaultEffectsPhotoSceneProps } from '../default-effects-photo-scene/default-effects-photo-scene'
2
+
3
+ import { VideoComponent, type ScenePluginMetadata } from '@vibecuting/component-project-helper'
4
+
5
+ import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from '../default-effects-photo-scene/default-effects-photo-scene'
6
+
7
+ type BaseProps = DefaultEffectsPhotoSceneProps
8
+
9
+ export interface DefaultGlowEffectsPhotoSceneProps extends Omit<BaseProps, 'effects'> {
10
+ intensity?: number
11
+ }
12
+
13
+ export const componentMetadata: ScenePluginMetadata = {
14
+ ...baseComponentMetadata,
15
+ name: 'DefaultGlowEffectsPhotoScene',
16
+ description: 'Photo scene focused on a single glow treatment with soft halo light',
17
+ sourceFile: 'src/core/scene/photo/effects-photo/default-glow-effects-photo-scene/default-glow-effects-photo-scene.tsx',
18
+ tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'glow', 'single-effect'])),
19
+ }
20
+
21
+ export const DefaultGlowEffectsPhotoScene = VideoComponent(componentMetadata)(function DefaultGlowEffectsPhotoScene(
22
+ props: DefaultGlowEffectsPhotoSceneProps,
23
+ ) {
24
+ const { intensity = 0.55, ...rest } = props
25
+
26
+ return (
27
+ <DefaultEffectsPhotoScene
28
+ {...rest}
29
+ effects={[
30
+ {
31
+ type: 'glow',
32
+ intensity,
33
+ },
34
+ ]}
35
+ />
36
+ )
37
+ })
@@ -0,0 +1,39 @@
1
+ import { DefaultGrainEffectsPhotoScene } from './default-grain-effects-photo-scene'
2
+
3
+ const photoUrl = 'https://heyaai-statics-1342239856.cos.ap-guangzhou.myqcloud.com/tmp/premium_photo-1779404552087-0f905162376f-121.jpeg'
4
+
5
+ const meta = {
6
+ title: 'core/scene/photo/effects-photo/default-grain-effects-photo-scene/DefaultGrainEffectsPhotoScene',
7
+ component: DefaultGrainEffectsPhotoScene,
8
+ args: {
9
+ title: 'Film Grain',
10
+ subtitle: 'Single grain treatment for analog texture and softness.',
11
+ badge: 'Grain',
12
+ imageSrc: photoUrl,
13
+ intensity: 0.14,
14
+ accent: '#020617',
15
+ secondaryAccent: '#1d4ed8',
16
+ },
17
+ }
18
+
19
+ export default meta
20
+
21
+ export const Default = {
22
+ parameters: {
23
+ scenePreviewAspectRatio: '16:9',
24
+ },
25
+ }
26
+
27
+ export const Animated = {
28
+ parameters: {
29
+ scenePreviewAspectRatio: '16:9',
30
+ scenePreviewMode: 'animation',
31
+ },
32
+ }
33
+
34
+ export const Both = {
35
+ parameters: {
36
+ scenePreviewAspectRatio: '9:16',
37
+ scenePreviewMode: 'both',
38
+ },
39
+ }
@@ -0,0 +1,37 @@
1
+ import type { DefaultEffectsPhotoSceneProps } from '../default-effects-photo-scene/default-effects-photo-scene'
2
+
3
+ import { VideoComponent, type ScenePluginMetadata } from '@vibecuting/component-project-helper'
4
+
5
+ import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from '../default-effects-photo-scene/default-effects-photo-scene'
6
+
7
+ type BaseProps = DefaultEffectsPhotoSceneProps
8
+
9
+ export interface DefaultGrainEffectsPhotoSceneProps extends Omit<BaseProps, 'effects'> {
10
+ intensity?: number
11
+ }
12
+
13
+ export const componentMetadata: ScenePluginMetadata = {
14
+ ...baseComponentMetadata,
15
+ name: 'DefaultGrainEffectsPhotoScene',
16
+ description: 'Photo scene focused on a single grain treatment with film texture',
17
+ sourceFile: 'src/core/scene/photo/effects-photo/default-grain-effects-photo-scene/default-grain-effects-photo-scene.tsx',
18
+ tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'grain', 'single-effect'])),
19
+ }
20
+
21
+ export const DefaultGrainEffectsPhotoScene = VideoComponent(componentMetadata)(function DefaultGrainEffectsPhotoScene(
22
+ props: DefaultGrainEffectsPhotoSceneProps,
23
+ ) {
24
+ const { intensity = 0.12, ...rest } = props
25
+
26
+ return (
27
+ <DefaultEffectsPhotoScene
28
+ {...rest}
29
+ effects={[
30
+ {
31
+ type: 'grain',
32
+ intensity,
33
+ },
34
+ ]}
35
+ />
36
+ )
37
+ })
@@ -0,0 +1,24 @@
1
+ import { DefaultHalationEffectsPhotoScene } from './default-halation-effects-photo-scene'
2
+
3
+ const photoUrl = 'https://heyaai-statics-1342239856.cos.ap-guangzhou.myqcloud.com/tmp/premium_photo-1779404552087-0f905162376f-121.jpeg'
4
+
5
+ const meta = {
6
+ title: 'core/scene/photo/effects-photo/default-halation-effects-photo-scene/DefaultHalationEffectsPhotoScene',
7
+ component: DefaultHalationEffectsPhotoScene,
8
+ args: {
9
+ title: 'Halation Bloom',
10
+ subtitle: 'Glowing highlight bloom with a filmic halation ring.',
11
+ badge: 'Halation',
12
+ imageSrc: photoUrl,
13
+ intensity: 0.58,
14
+ hue: '#fef3c7',
15
+ accent: '#020617',
16
+ secondaryAccent: '#f59e0b',
17
+ },
18
+ }
19
+
20
+ export default meta
21
+
22
+ export const Default = { parameters: { scenePreviewAspectRatio: '16:9' } }
23
+ export const Animated = { parameters: { scenePreviewAspectRatio: '16:9', scenePreviewMode: 'animation' } }
24
+ export const Both = { parameters: { scenePreviewAspectRatio: '9:16', scenePreviewMode: 'both' } }
@@ -0,0 +1,39 @@
1
+ import type { DefaultEffectsPhotoSceneProps } from '../default-effects-photo-scene/default-effects-photo-scene'
2
+
3
+ import { VideoComponent, type ScenePluginMetadata } from '@vibecuting/component-project-helper'
4
+
5
+ import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from '../default-effects-photo-scene/default-effects-photo-scene'
6
+
7
+ type BaseProps = DefaultEffectsPhotoSceneProps
8
+
9
+ export interface DefaultHalationEffectsPhotoSceneProps extends Omit<BaseProps, 'effects'> {
10
+ intensity?: number
11
+ hue?: string
12
+ }
13
+
14
+ export const componentMetadata: ScenePluginMetadata = {
15
+ ...baseComponentMetadata,
16
+ name: 'DefaultHalationEffectsPhotoScene',
17
+ description: 'Photo scene focused on halation bloom and bright highlight bloom',
18
+ sourceFile: 'src/core/scene/photo/effects-photo/default-halation-effects-photo-scene/default-halation-effects-photo-scene.tsx',
19
+ tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'halation', 'single-effect'])),
20
+ }
21
+
22
+ export const DefaultHalationEffectsPhotoScene = VideoComponent(componentMetadata)(function DefaultHalationEffectsPhotoScene(
23
+ props: DefaultHalationEffectsPhotoSceneProps,
24
+ ) {
25
+ const { intensity = 0.58, hue = '#fef3c7', ...rest } = props
26
+
27
+ return (
28
+ <DefaultEffectsPhotoScene
29
+ {...rest}
30
+ effects={[
31
+ {
32
+ type: 'halation',
33
+ intensity,
34
+ hue,
35
+ },
36
+ ]}
37
+ />
38
+ )
39
+ })
@@ -0,0 +1,24 @@
1
+ import { DefaultInfraredEffectsPhotoScene } from './default-infrared-effects-photo-scene'
2
+
3
+ const photoUrl = 'https://heyaai-statics-1342239856.cos.ap-guangzhou.myqcloud.com/tmp/premium_photo-1779404552087-0f905162376f-121.jpeg'
4
+
5
+ const meta = {
6
+ title: 'core/scene/photo/effects-photo/default-infrared-effects-photo-scene/DefaultInfraredEffectsPhotoScene',
7
+ component: DefaultInfraredEffectsPhotoScene,
8
+ args: {
9
+ title: 'Infrared Heat',
10
+ subtitle: 'False-color infrared-inspired treatment with dramatic color response.',
11
+ badge: 'Infrared',
12
+ imageSrc: photoUrl,
13
+ intensity: 0.62,
14
+ hue: '#ef4444',
15
+ accent: '#020617',
16
+ secondaryAccent: '#22c55e',
17
+ },
18
+ }
19
+
20
+ export default meta
21
+
22
+ export const Default = { parameters: { scenePreviewAspectRatio: '16:9' } }
23
+ export const Animated = { parameters: { scenePreviewAspectRatio: '16:9', scenePreviewMode: 'animation' } }
24
+ export const Both = { parameters: { scenePreviewAspectRatio: '9:16', scenePreviewMode: 'both' } }
@@ -0,0 +1,39 @@
1
+ import type { DefaultEffectsPhotoSceneProps } from '../default-effects-photo-scene/default-effects-photo-scene'
2
+
3
+ import { VideoComponent, type ScenePluginMetadata } from '@vibecuting/component-project-helper'
4
+
5
+ import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from '../default-effects-photo-scene/default-effects-photo-scene'
6
+
7
+ type BaseProps = DefaultEffectsPhotoSceneProps
8
+
9
+ export interface DefaultInfraredEffectsPhotoSceneProps extends Omit<BaseProps, 'effects'> {
10
+ intensity?: number
11
+ hue?: string
12
+ }
13
+
14
+ export const componentMetadata: ScenePluginMetadata = {
15
+ ...baseComponentMetadata,
16
+ name: 'DefaultInfraredEffectsPhotoScene',
17
+ description: 'Photo scene focused on infrared-inspired false-color grading',
18
+ sourceFile: 'src/core/scene/photo/effects-photo/default-infrared-effects-photo-scene/default-infrared-effects-photo-scene.tsx',
19
+ tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'infrared', 'single-effect'])),
20
+ }
21
+
22
+ export const DefaultInfraredEffectsPhotoScene = VideoComponent(componentMetadata)(function DefaultInfraredEffectsPhotoScene(
23
+ props: DefaultInfraredEffectsPhotoSceneProps,
24
+ ) {
25
+ const { intensity = 0.62, hue = '#ef4444', ...rest } = props
26
+
27
+ return (
28
+ <DefaultEffectsPhotoScene
29
+ {...rest}
30
+ effects={[
31
+ {
32
+ type: 'infrared',
33
+ intensity,
34
+ hue,
35
+ },
36
+ ]}
37
+ />
38
+ )
39
+ })
@@ -0,0 +1,24 @@
1
+ import { DefaultLightLeakEffectsPhotoScene } from './default-light-leak-effects-photo-scene'
2
+
3
+ const photoUrl = 'https://heyaai-statics-1342239856.cos.ap-guangzhou.myqcloud.com/tmp/premium_photo-1779404552087-0f905162376f-121.jpeg'
4
+
5
+ const meta = {
6
+ title: 'core/scene/photo/effects-photo/default-light-leak-effects-photo-scene/DefaultLightLeakEffectsPhotoScene',
7
+ component: DefaultLightLeakEffectsPhotoScene,
8
+ args: {
9
+ title: 'Light Leak',
10
+ subtitle: 'Warm flare spill for an analog camera feel.',
11
+ badge: 'Leak',
12
+ imageSrc: photoUrl,
13
+ intensity: 0.62,
14
+ hue: '#fde68a',
15
+ accent: '#f59e0b',
16
+ secondaryAccent: '#1d4ed8',
17
+ },
18
+ }
19
+
20
+ export default meta
21
+
22
+ export const Default = { parameters: { scenePreviewAspectRatio: '16:9' } }
23
+ export const Animated = { parameters: { scenePreviewAspectRatio: '16:9', scenePreviewMode: 'animation' } }
24
+ export const Both = { parameters: { scenePreviewAspectRatio: '9:16', scenePreviewMode: 'both' } }
@@ -0,0 +1,39 @@
1
+ import type { DefaultEffectsPhotoSceneProps } from '../default-effects-photo-scene/default-effects-photo-scene'
2
+
3
+ import { VideoComponent, type ScenePluginMetadata } from '@vibecuting/component-project-helper'
4
+
5
+ import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from '../default-effects-photo-scene/default-effects-photo-scene'
6
+
7
+ type BaseProps = DefaultEffectsPhotoSceneProps
8
+
9
+ export interface DefaultLightLeakEffectsPhotoSceneProps extends Omit<BaseProps, 'effects'> {
10
+ intensity?: number
11
+ hue?: string
12
+ }
13
+
14
+ export const componentMetadata: ScenePluginMetadata = {
15
+ ...baseComponentMetadata,
16
+ name: 'DefaultLightLeakEffectsPhotoScene',
17
+ description: 'Photo scene focused on warm light leak flare overlays',
18
+ sourceFile: 'src/core/scene/photo/effects-photo/default-light-leak-effects-photo-scene/default-light-leak-effects-photo-scene.tsx',
19
+ tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'light-leak', 'single-effect'])),
20
+ }
21
+
22
+ export const DefaultLightLeakEffectsPhotoScene = VideoComponent(componentMetadata)(function DefaultLightLeakEffectsPhotoScene(
23
+ props: DefaultLightLeakEffectsPhotoSceneProps,
24
+ ) {
25
+ const { intensity = 0.62, hue = '#fde68a', ...rest } = props
26
+
27
+ return (
28
+ <DefaultEffectsPhotoScene
29
+ {...rest}
30
+ effects={[
31
+ {
32
+ type: 'light-leak',
33
+ intensity,
34
+ hue,
35
+ },
36
+ ]}
37
+ />
38
+ )
39
+ })
@@ -0,0 +1,23 @@
1
+ import { DefaultMonoEffectsPhotoScene } from './default-mono-effects-photo-scene'
2
+
3
+ const photoUrl = 'https://heyaai-statics-1342239856.cos.ap-guangzhou.myqcloud.com/tmp/premium_photo-1779404552087-0f905162376f-121.jpeg'
4
+
5
+ const meta = {
6
+ title: 'core/scene/photo/effects-photo/default-mono-effects-photo-scene/DefaultMonoEffectsPhotoScene',
7
+ component: DefaultMonoEffectsPhotoScene,
8
+ args: {
9
+ title: 'Black and White',
10
+ subtitle: 'Monochrome scene with strong tonal separation and drama.',
11
+ badge: 'Mono',
12
+ imageSrc: photoUrl,
13
+ intensity: 1,
14
+ accent: '#020617',
15
+ secondaryAccent: '#1d4ed8',
16
+ },
17
+ }
18
+
19
+ export default meta
20
+
21
+ export const Default = { parameters: { scenePreviewAspectRatio: '16:9' } }
22
+ export const Animated = { parameters: { scenePreviewAspectRatio: '16:9', scenePreviewMode: 'animation' } }
23
+ export const Both = { parameters: { scenePreviewAspectRatio: '9:16', scenePreviewMode: 'both' } }
@@ -0,0 +1,37 @@
1
+ import type { DefaultEffectsPhotoSceneProps } from '../default-effects-photo-scene/default-effects-photo-scene'
2
+
3
+ import { VideoComponent, type ScenePluginMetadata } from '@vibecuting/component-project-helper'
4
+
5
+ import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from '../default-effects-photo-scene/default-effects-photo-scene'
6
+
7
+ type BaseProps = DefaultEffectsPhotoSceneProps
8
+
9
+ export interface DefaultMonoEffectsPhotoSceneProps extends Omit<BaseProps, 'effects'> {
10
+ intensity?: number
11
+ }
12
+
13
+ export const componentMetadata: ScenePluginMetadata = {
14
+ ...baseComponentMetadata,
15
+ name: 'DefaultMonoEffectsPhotoScene',
16
+ description: 'Photo scene focused on monochrome black-and-white rendering',
17
+ sourceFile: 'src/core/scene/photo/effects-photo/default-mono-effects-photo-scene/default-mono-effects-photo-scene.tsx',
18
+ tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'mono', 'single-effect'])),
19
+ }
20
+
21
+ export const DefaultMonoEffectsPhotoScene = VideoComponent(componentMetadata)(function DefaultMonoEffectsPhotoScene(
22
+ props: DefaultMonoEffectsPhotoSceneProps,
23
+ ) {
24
+ const { intensity = 1, ...rest } = props
25
+
26
+ return (
27
+ <DefaultEffectsPhotoScene
28
+ {...rest}
29
+ effects={[
30
+ {
31
+ type: 'mono',
32
+ intensity,
33
+ },
34
+ ]}
35
+ />
36
+ )
37
+ })
@@ -0,0 +1,23 @@
1
+ import { DefaultNoirEffectsPhotoScene } from './default-noir-effects-photo-scene'
2
+
3
+ const photoUrl = 'https://heyaai-statics-1342239856.cos.ap-guangzhou.myqcloud.com/tmp/premium_photo-1779404552087-0f905162376f-121.jpeg'
4
+
5
+ const meta = {
6
+ title: 'core/scene/photo/effects-photo/default-noir-effects-photo-scene/DefaultNoirEffectsPhotoScene',
7
+ component: DefaultNoirEffectsPhotoScene,
8
+ args: {
9
+ title: 'Noir Shadow',
10
+ subtitle: 'High-contrast shadow study with hard blacks and low key mood.',
11
+ badge: 'Noir',
12
+ imageSrc: photoUrl,
13
+ intensity: 0.9,
14
+ accent: '#020617',
15
+ secondaryAccent: '#64748b',
16
+ },
17
+ }
18
+
19
+ export default meta
20
+
21
+ export const Default = { parameters: { scenePreviewAspectRatio: '16:9' } }
22
+ export const Animated = { parameters: { scenePreviewAspectRatio: '16:9', scenePreviewMode: 'animation' } }
23
+ export const Both = { parameters: { scenePreviewAspectRatio: '9:16', scenePreviewMode: 'both' } }
@@ -0,0 +1,37 @@
1
+ import type { DefaultEffectsPhotoSceneProps } from '../default-effects-photo-scene/default-effects-photo-scene'
2
+
3
+ import { VideoComponent, type ScenePluginMetadata } from '@vibecuting/component-project-helper'
4
+
5
+ import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from '../default-effects-photo-scene/default-effects-photo-scene'
6
+
7
+ type BaseProps = DefaultEffectsPhotoSceneProps
8
+
9
+ export interface DefaultNoirEffectsPhotoSceneProps extends Omit<BaseProps, 'effects'> {
10
+ intensity?: number
11
+ }
12
+
13
+ export const componentMetadata: ScenePluginMetadata = {
14
+ ...baseComponentMetadata,
15
+ name: 'DefaultNoirEffectsPhotoScene',
16
+ description: 'Photo scene focused on noir contrast and moody shadow falloff',
17
+ sourceFile: 'src/core/scene/photo/effects-photo/default-noir-effects-photo-scene/default-noir-effects-photo-scene.tsx',
18
+ tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'noir', 'single-effect'])),
19
+ }
20
+
21
+ export const DefaultNoirEffectsPhotoScene = VideoComponent(componentMetadata)(function DefaultNoirEffectsPhotoScene(
22
+ props: DefaultNoirEffectsPhotoSceneProps,
23
+ ) {
24
+ const { intensity = 0.9, ...rest } = props
25
+
26
+ return (
27
+ <DefaultEffectsPhotoScene
28
+ {...rest}
29
+ effects={[
30
+ {
31
+ type: 'noir',
32
+ intensity,
33
+ },
34
+ ]}
35
+ />
36
+ )
37
+ })
@@ -0,0 +1,24 @@
1
+ import { DefaultPastelEffectsPhotoScene } from './default-pastel-effects-photo-scene'
2
+
3
+ const photoUrl = 'https://heyaai-statics-1342239856.cos.ap-guangzhou.myqcloud.com/tmp/premium_photo-1779404552087-0f905162376f-121.jpeg'
4
+
5
+ const meta = {
6
+ title: 'core/scene/photo/effects-photo/default-pastel-effects-photo-scene/DefaultPastelEffectsPhotoScene',
7
+ component: DefaultPastelEffectsPhotoScene,
8
+ args: {
9
+ title: 'Pastel Wash',
10
+ subtitle: 'Soft pastel wash with low contrast and airy highlights.',
11
+ badge: 'Pastel',
12
+ imageSrc: photoUrl,
13
+ intensity: 0.68,
14
+ hue: '#f9a8d4',
15
+ accent: '#020617',
16
+ secondaryAccent: '#38bdf8',
17
+ },
18
+ }
19
+
20
+ export default meta
21
+
22
+ export const Default = { parameters: { scenePreviewAspectRatio: '16:9' } }
23
+ export const Animated = { parameters: { scenePreviewAspectRatio: '16:9', scenePreviewMode: 'animation' } }
24
+ export const Both = { parameters: { scenePreviewAspectRatio: '9:16', scenePreviewMode: 'both' } }
@@ -0,0 +1,39 @@
1
+ import type { DefaultEffectsPhotoSceneProps } from '../default-effects-photo-scene/default-effects-photo-scene'
2
+
3
+ import { VideoComponent, type ScenePluginMetadata } from '@vibecuting/component-project-helper'
4
+
5
+ import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from '../default-effects-photo-scene/default-effects-photo-scene'
6
+
7
+ type BaseProps = DefaultEffectsPhotoSceneProps
8
+
9
+ export interface DefaultPastelEffectsPhotoSceneProps extends Omit<BaseProps, 'effects'> {
10
+ intensity?: number
11
+ hue?: string
12
+ }
13
+
14
+ export const componentMetadata: ScenePluginMetadata = {
15
+ ...baseComponentMetadata,
16
+ name: 'DefaultPastelEffectsPhotoScene',
17
+ description: 'Photo scene focused on soft pastel color grading and low-contrast diffusion',
18
+ sourceFile: 'src/core/scene/photo/effects-photo/default-pastel-effects-photo-scene/default-pastel-effects-photo-scene.tsx',
19
+ tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'pastel', 'single-effect'])),
20
+ }
21
+
22
+ export const DefaultPastelEffectsPhotoScene = VideoComponent(componentMetadata)(function DefaultPastelEffectsPhotoScene(
23
+ props: DefaultPastelEffectsPhotoSceneProps,
24
+ ) {
25
+ const { intensity = 0.68, hue = '#f9a8d4', ...rest } = props
26
+
27
+ return (
28
+ <DefaultEffectsPhotoScene
29
+ {...rest}
30
+ effects={[
31
+ {
32
+ type: 'pastel',
33
+ intensity,
34
+ hue,
35
+ },
36
+ ]}
37
+ />
38
+ )
39
+ })
@@ -0,0 +1,24 @@
1
+ import { DefaultRetroEffectsPhotoScene } from './default-retro-effects-photo-scene'
2
+
3
+ const photoUrl = 'https://heyaai-statics-1342239856.cos.ap-guangzhou.myqcloud.com/tmp/premium_photo-1779404552087-0f905162376f-121.jpeg'
4
+
5
+ const meta = {
6
+ title: 'core/scene/photo/effects-photo/default-retro-effects-photo-scene/DefaultRetroEffectsPhotoScene',
7
+ component: DefaultRetroEffectsPhotoScene,
8
+ args: {
9
+ title: 'Retro Film',
10
+ subtitle: 'Warm nostalgic film treatment with a vintage print vibe.',
11
+ badge: 'Retro',
12
+ imageSrc: photoUrl,
13
+ intensity: 0.72,
14
+ hue: '#f59e0b',
15
+ accent: '#020617',
16
+ secondaryAccent: '#7c3aed',
17
+ },
18
+ }
19
+
20
+ export default meta
21
+
22
+ export const Default = { parameters: { scenePreviewAspectRatio: '16:9' } }
23
+ export const Animated = { parameters: { scenePreviewAspectRatio: '16:9', scenePreviewMode: 'animation' } }
24
+ export const Both = { parameters: { scenePreviewAspectRatio: '9:16', scenePreviewMode: 'both' } }
@@ -0,0 +1,39 @@
1
+ import type { DefaultEffectsPhotoSceneProps } from '../default-effects-photo-scene/default-effects-photo-scene'
2
+
3
+ import { VideoComponent, type ScenePluginMetadata } from '@vibecuting/component-project-helper'
4
+
5
+ import { DefaultEffectsPhotoScene, componentMetadata as baseComponentMetadata } from '../default-effects-photo-scene/default-effects-photo-scene'
6
+
7
+ type BaseProps = DefaultEffectsPhotoSceneProps
8
+
9
+ export interface DefaultRetroEffectsPhotoSceneProps extends Omit<BaseProps, 'effects'> {
10
+ intensity?: number
11
+ hue?: string
12
+ }
13
+
14
+ export const componentMetadata: ScenePluginMetadata = {
15
+ ...baseComponentMetadata,
16
+ name: 'DefaultRetroEffectsPhotoScene',
17
+ description: 'Photo scene focused on retro film colors and nostalgic grading',
18
+ sourceFile: 'src/core/scene/photo/effects-photo/default-retro-effects-photo-scene/default-retro-effects-photo-scene.tsx',
19
+ tags: Array.from(new Set([...(baseComponentMetadata.tags ?? []), 'retro', 'single-effect'])),
20
+ }
21
+
22
+ export const DefaultRetroEffectsPhotoScene = VideoComponent(componentMetadata)(function DefaultRetroEffectsPhotoScene(
23
+ props: DefaultRetroEffectsPhotoSceneProps,
24
+ ) {
25
+ const { intensity = 0.72, hue = '#f59e0b', ...rest } = props
26
+
27
+ return (
28
+ <DefaultEffectsPhotoScene
29
+ {...rest}
30
+ effects={[
31
+ {
32
+ type: 'retro',
33
+ intensity,
34
+ hue,
35
+ },
36
+ ]}
37
+ />
38
+ )
39
+ })
@@ -0,0 +1,23 @@
1
+ import { DefaultSepiaEffectsPhotoScene } from './default-sepia-effects-photo-scene'
2
+
3
+ const photoUrl = 'https://heyaai-statics-1342239856.cos.ap-guangzhou.myqcloud.com/tmp/premium_photo-1779404552087-0f905162376f-121.jpeg'
4
+
5
+ const meta = {
6
+ title: 'core/scene/photo/effects-photo/default-sepia-effects-photo-scene/DefaultSepiaEffectsPhotoScene',
7
+ component: DefaultSepiaEffectsPhotoScene,
8
+ args: {
9
+ title: 'Sepia Tone',
10
+ subtitle: 'Aged-paper warmth with archival styling.',
11
+ badge: 'Sepia',
12
+ imageSrc: photoUrl,
13
+ intensity: 0.84,
14
+ accent: '#020617',
15
+ secondaryAccent: '#f97316',
16
+ },
17
+ }
18
+
19
+ export default meta
20
+
21
+ export const Default = { parameters: { scenePreviewAspectRatio: '16:9' } }
22
+ export const Animated = { parameters: { scenePreviewAspectRatio: '16:9', scenePreviewMode: 'animation' } }
23
+ export const Both = { parameters: { scenePreviewAspectRatio: '9:16', scenePreviewMode: 'both' } }