@remotion/promo-pages 4.0.487 → 4.0.488

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 (33) hide show
  1. package/dist/Homepage.js +246 -196
  2. package/dist/components/Homepage.js +21 -5
  3. package/dist/components/homepage/CanvasSectionTitle.d.ts +4 -0
  4. package/dist/components/homepage/CanvasSectionTitle.js +14 -0
  5. package/dist/components/homepage/CommunityStatsItems.js +2 -2
  6. package/dist/components/homepage/Demo/DemoRender.d.ts +1 -1
  7. package/dist/components/homepage/Demo/DisplayedEmoji.js +3 -5
  8. package/dist/components/homepage/Demo/math.d.ts +1 -1
  9. package/dist/components/homepage/EditorStarterSection.d.ts +3 -0
  10. package/dist/components/homepage/EditorStarterSection.js +8 -0
  11. package/dist/components/homepage/GitHubButton.js +1 -1
  12. package/dist/components/homepage/MakeVideosAgentically.d.ts +10 -0
  13. package/dist/components/homepage/MakeVideosAgentically.js +37 -0
  14. package/dist/components/homepage/MakeVideosInteractively.d.ts +9 -0
  15. package/dist/components/homepage/MakeVideosInteractively.js +16 -0
  16. package/dist/components/homepage/MakeVideosLinks.d.ts +9 -0
  17. package/dist/components/homepage/MakeVideosLinks.js +17 -0
  18. package/dist/components/homepage/MakeVideosProgrammatically.d.ts +9 -0
  19. package/dist/components/homepage/MakeVideosProgrammatically.js +8 -0
  20. package/dist/components/homepage/Pricing.d.ts +1 -3
  21. package/dist/components/homepage/Pricing.js +2 -6
  22. package/dist/components/homepage/WriteInReact.js +1 -2
  23. package/dist/components/team/TrustSection.js +1 -1
  24. package/dist/design.js +89 -55
  25. package/dist/experts.js +78 -44
  26. package/dist/homepage/Pricing.js +80 -46
  27. package/dist/prompts/PromptsGallery.js +89 -55
  28. package/dist/prompts/PromptsShow.js +95 -61
  29. package/dist/prompts/PromptsSubmit.js +80 -46
  30. package/dist/team.js +80 -46
  31. package/dist/template-modal-content.js +86 -52
  32. package/dist/templates.js +80 -46
  33. package/package.json +17 -17
@@ -40,7 +40,7 @@ __export(exports_vidstack_CZgUA94N, {
40
40
  waitTimeout: () => waitTimeout,
41
41
  waitIdlePeriod: () => waitIdlePeriod,
42
42
  useStateContext: () => useStateContext,
43
- useState: () => useState42,
43
+ useState: () => useState44,
44
44
  useSignalRecord: () => useSignalRecord,
45
45
  useSignal: () => useSignal,
46
46
  useReactScope: () => useReactScope,
@@ -678,7 +678,7 @@ class State {
678
678
  }
679
679
  }
680
680
  }
681
- function useState42(state) {
681
+ function useState44(state) {
682
682
  return useContext47(state);
683
683
  }
684
684
  function camelToKebabCase(str) {
@@ -15039,7 +15039,7 @@ var init_vidstack_D5Pzx_k5 = __esm(() => {
15039
15039
  SliderThumbnail = class SliderThumbnail extends Thumbnail {
15040
15040
  #slider;
15041
15041
  onAttach(el) {
15042
- this.#slider = useState42(Slider.state);
15042
+ this.#slider = useState44(Slider.state);
15043
15043
  }
15044
15044
  getTime() {
15045
15045
  const { duration, clipStartTime } = this.media.$state;
@@ -15066,7 +15066,7 @@ var init_vidstack_D5Pzx_k5 = __esm(() => {
15066
15066
  }
15067
15067
  onSetup() {
15068
15068
  this.#media = useMediaContext();
15069
- this.#slider = useState42(Slider.state);
15069
+ this.#slider = useState44(Slider.state);
15070
15070
  this.#watchCrossOrigin();
15071
15071
  this.setAttributes({
15072
15072
  "data-loading": this.#isLoading.bind(this),
@@ -15152,7 +15152,7 @@ var init_vidstack_D5Pzx_k5 = __esm(() => {
15152
15152
  #text;
15153
15153
  #slider;
15154
15154
  onSetup() {
15155
- this.#slider = useState42(Slider.state);
15155
+ this.#slider = useState44(Slider.state);
15156
15156
  this.#format = useContext47(sliderValueFormatContext);
15157
15157
  this.#text = computed(this.getValueText.bind(this));
15158
15158
  }
@@ -15193,7 +15193,7 @@ var init_vidstack_D5Pzx_k5 = __esm(() => {
15193
15193
  #slider;
15194
15194
  onSetup() {
15195
15195
  this.#slider = useContext47(sliderContext);
15196
- const { active } = useState42(Slider.state);
15196
+ const { active } = useState44(Slider.state);
15197
15197
  this.setAttributes({
15198
15198
  "data-visible": active
15199
15199
  });
@@ -15734,7 +15734,7 @@ var init_vidstack_D5Pzx_k5 = __esm(() => {
15734
15734
  }
15735
15735
  onSetup() {
15736
15736
  this.#media = useMediaContext();
15737
- this.#sliderState = useState42(TimeSlider.state);
15737
+ this.#sliderState = useState44(TimeSlider.state);
15738
15738
  }
15739
15739
  onAttach(el) {
15740
15740
  watchActiveTextTrack(this.#media.textTracks, "chapters", this.#setTrack.bind(this));
@@ -18712,7 +18712,7 @@ var getDefaultConfig = () => {
18712
18712
  var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
18713
18713
 
18714
18714
  // ../design/dist/esm/index.mjs
18715
- import React32, { useEffect as useEffect21, useMemo as useMemo42, useState as useState21 } from "react";
18715
+ import React32, { useEffect as useEffect21, useMemo as useMemo42, useState as useState23 } from "react";
18716
18716
 
18717
18717
  // ../paths/dist/esm/index.mjs
18718
18718
  var cutLInstruction = ({
@@ -21664,7 +21664,13 @@ import {
21664
21664
  import { jsx as jsx26 } from "react/jsx-runtime";
21665
21665
  import { forwardRef as forwardRef11, useCallback as useCallback18, useState as useState17 } from "react";
21666
21666
  import { jsx as jsx27 } from "react/jsx-runtime";
21667
- import { useCallback as useCallback19, useContext as useContext33, useLayoutEffect as useLayoutEffect11, useRef as useRef24 } from "react";
21667
+ import {
21668
+ useCallback as useCallback19,
21669
+ useContext as useContext33,
21670
+ useLayoutEffect as useLayoutEffect11,
21671
+ useRef as useRef24,
21672
+ useState as useState18
21673
+ } from "react";
21668
21674
  import { jsx as jsx28 } from "react/jsx-runtime";
21669
21675
  import React29, { forwardRef as forwardRef12, useCallback as useCallback20, useRef as useRef25 } from "react";
21670
21676
  import { jsx as jsx29 } from "react/jsx-runtime";
@@ -21675,7 +21681,7 @@ import {
21675
21681
  useImperativeHandle as useImperativeHandle8,
21676
21682
  useMemo as useMemo32,
21677
21683
  useRef as useRef26,
21678
- useState as useState18
21684
+ useState as useState19
21679
21685
  } from "react";
21680
21686
  import { jsx as jsx30 } from "react/jsx-runtime";
21681
21687
  import React31 from "react";
@@ -21693,7 +21699,7 @@ import {
21693
21699
  useEffect as useEffect17,
21694
21700
  useLayoutEffect as useLayoutEffect12,
21695
21701
  useMemo as useMemo35,
21696
- useState as useState19
21702
+ useState as useState20
21697
21703
  } from "react";
21698
21704
  import { jsx as jsx33 } from "react/jsx-runtime";
21699
21705
  import React37, {
@@ -21704,7 +21710,7 @@ import React37, {
21704
21710
  useImperativeHandle as useImperativeHandle9,
21705
21711
  useMemo as useMemo36,
21706
21712
  useRef as useRef27,
21707
- useState as useState20
21713
+ useState as useState21
21708
21714
  } from "react";
21709
21715
  import { useEffect as useEffect18 } from "react";
21710
21716
  import { jsx as jsx34 } from "react/jsx-runtime";
@@ -22899,7 +22905,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
22899
22905
  var addSequenceStackTraces = (component) => {
22900
22906
  componentsToAddStacksTo.push(component);
22901
22907
  };
22902
- var VERSION = "4.0.487";
22908
+ var VERSION = "4.0.488";
22903
22909
  var checkMultipleRemotionVersions = () => {
22904
22910
  if (typeof globalThis === "undefined") {
22905
22911
  return;
@@ -26583,7 +26589,7 @@ var useEffectChainState = () => {
26583
26589
  }
26584
26590
  }), []);
26585
26591
  };
26586
- var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effects }, ref) => {
26592
+ var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effects, ...props }, ref) => {
26587
26593
  const canvasRef = useRef8(null);
26588
26594
  const chainState = useEffectChainState();
26589
26595
  const sourceCanvas = useMemo16(() => {
@@ -26647,7 +26653,8 @@ var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effec
26647
26653
  return /* @__PURE__ */ jsx13("canvas", {
26648
26654
  ref: canvasRef,
26649
26655
  className,
26650
- style
26656
+ style,
26657
+ ...props
26651
26658
  });
26652
26659
  };
26653
26660
  var Canvas = React15.forwardRef(CanvasRefForwardingFunction);
@@ -26824,6 +26831,16 @@ var animatedImageSchema = {
26824
26831
  },
26825
26832
  ...transformSchema
26826
26833
  };
26834
+ var getCanvasPropsFromSequenceProps = (props) => {
26835
+ const canvasProps = {};
26836
+ const mutableCanvasProps = canvasProps;
26837
+ for (const key in props) {
26838
+ if (Object.prototype.hasOwnProperty.call(props, key) && (key.startsWith("data-") || key.startsWith("aria-"))) {
26839
+ mutableCanvasProps[key] = props[key];
26840
+ }
26841
+ }
26842
+ return canvasProps;
26843
+ };
26827
26844
  var AnimatedImageContent = forwardRef4(({
26828
26845
  src,
26829
26846
  width,
@@ -26978,6 +26995,7 @@ var AnimatedImageInner = ({
26978
26995
  useImperativeHandle2(ref, () => {
26979
26996
  return actualRef.current;
26980
26997
  }, []);
26998
+ const canvasProps = getCanvasPropsFromSequenceProps(sequenceProps);
26981
26999
  const animatedImageProps = {
26982
27000
  src,
26983
27001
  width,
@@ -26989,7 +27007,8 @@ var AnimatedImageInner = ({
26989
27007
  id,
26990
27008
  className,
26991
27009
  style,
26992
- requestInit
27010
+ requestInit,
27011
+ ...canvasProps
26993
27012
  };
26994
27013
  return /* @__PURE__ */ jsx14(Sequence, {
26995
27014
  layout: "none",
@@ -27926,6 +27945,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled, pr
27926
27945
  return ({
27927
27946
  node,
27928
27947
  mediaTimestamp,
27948
+ sourceOffset,
27929
27949
  scheduledTime,
27930
27950
  duration,
27931
27951
  offset,
@@ -27954,7 +27974,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled, pr
27954
27974
  }
27955
27975
  }
27956
27976
  const scheduledEndTime = scheduledTime + duration / node.playbackRate.value;
27957
- const mediaTime = mediaTimestamp + offset;
27977
+ const mediaTime = mediaTimestamp + offset - sourceOffset;
27958
27978
  const mediaEndTime = mediaTime + duration;
27959
27979
  const latency = ctxAndGain.audioContext.baseLatency + ctxAndGain.audioContext.outputLatency;
27960
27980
  const timeDiff = scheduledTime - ctxAndGain.audioContext.currentTime;
@@ -30751,13 +30771,18 @@ var CanvasImageContent = forwardRef10(({
30751
30771
  });
30752
30772
  const sequenceContext = useContext32(SequenceContext);
30753
30773
  const pendingLoadDelayRef = useRef23(null);
30754
- const continuePendingLoadDelay = useCallback17(() => {
30774
+ const [isLoadPending, setIsLoadPending] = useState16(false);
30775
+ const isPremounting = Boolean(sequenceContext?.premounting);
30776
+ const isPostmounting = Boolean(sequenceContext?.postmounting);
30777
+ const continuePendingLoadDelay = useCallback17(({ markAsReady }) => {
30755
30778
  const pending = pendingLoadDelayRef.current;
30756
30779
  if (!pending || pending.continued) {
30757
30780
  return;
30758
30781
  }
30759
30782
  pending.continued = true;
30760
- pending.unblock();
30783
+ if (markAsReady) {
30784
+ setIsLoadPending(false);
30785
+ }
30761
30786
  continueRender2(pending.handle);
30762
30787
  pendingLoadDelayRef.current = null;
30763
30788
  }, [continueRender2]);
@@ -30779,23 +30804,30 @@ var CanvasImageContent = forwardRef10(({
30779
30804
  }
30780
30805
  }, [ref, refForOutline]);
30781
30806
  useLayoutEffect10(() => {
30782
- const isPremounting = Boolean(sequenceContext?.premounting);
30783
- const isPostmounting = Boolean(sequenceContext?.postmounting);
30807
+ if (!pauseWhenLoading || !isLoadPending || isPremounting || isPostmounting) {
30808
+ return;
30809
+ }
30810
+ return delayPlayback().unblock;
30811
+ }, [
30812
+ delayPlayback,
30813
+ isLoadPending,
30814
+ isPostmounting,
30815
+ isPremounting,
30816
+ pauseWhenLoading
30817
+ ]);
30818
+ useLayoutEffect10(() => {
30784
30819
  const handle = delayRender2(`Rendering <CanvasImage> with src="${truncateSrcForLabel(actualSrc)}"`, {
30785
30820
  retries: delayRenderRetries ?? undefined,
30786
30821
  timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
30787
30822
  });
30788
- const unblock = pauseWhenLoading && !isPremounting && !isPostmounting ? delayPlayback().unblock : () => {
30789
- return;
30790
- };
30791
30823
  const controller = new AbortController;
30792
30824
  let cancelled = false;
30793
30825
  let errorCount = 0;
30794
30826
  let timeoutId = null;
30795
30827
  setLoadedImage(null);
30828
+ setIsLoadPending(true);
30796
30829
  pendingLoadDelayRef.current = {
30797
30830
  handle,
30798
- unblock,
30799
30831
  continued: false
30800
30832
  };
30801
30833
  const attemptLoad = () => {
@@ -30806,7 +30838,7 @@ var CanvasImageContent = forwardRef10(({
30806
30838
  setLoadedImage(image);
30807
30839
  }).catch((err) => {
30808
30840
  if (err.name === "AbortError") {
30809
- continuePendingLoadDelay();
30841
+ continuePendingLoadDelay({ markAsReady: false });
30810
30842
  return;
30811
30843
  }
30812
30844
  errorCount++;
@@ -30820,7 +30852,7 @@ var CanvasImageContent = forwardRef10(({
30820
30852
  }, backoff);
30821
30853
  } else if (onError) {
30822
30854
  onError(err);
30823
- continuePendingLoadDelay();
30855
+ continuePendingLoadDelay({ markAsReady: true });
30824
30856
  } else {
30825
30857
  cancelRender2(err);
30826
30858
  }
@@ -30833,21 +30865,17 @@ var CanvasImageContent = forwardRef10(({
30833
30865
  clearTimeout(timeoutId);
30834
30866
  }
30835
30867
  controller.abort();
30836
- continuePendingLoadDelay();
30868
+ continuePendingLoadDelay({ markAsReady: false });
30837
30869
  };
30838
30870
  }, [
30839
30871
  actualSrc,
30840
30872
  cancelRender2,
30841
30873
  continuePendingLoadDelay,
30842
- delayPlayback,
30843
30874
  delayRender2,
30844
30875
  delayRenderRetries,
30845
30876
  delayRenderTimeoutInMilliseconds,
30846
30877
  maxRetries,
30847
- onError,
30848
- pauseWhenLoading,
30849
- sequenceContext?.postmounting,
30850
- sequenceContext?.premounting
30878
+ onError
30851
30879
  ]);
30852
30880
  useLayoutEffect10(() => {
30853
30881
  if (!loadedImage || !outputCanvas || !sourceCanvas) {
@@ -30899,7 +30927,7 @@ var CanvasImageContent = forwardRef10(({
30899
30927
  return;
30900
30928
  }
30901
30929
  continueRenderOnce();
30902
- continuePendingLoadDelay();
30930
+ continuePendingLoadDelay({ markAsReady: true });
30903
30931
  }
30904
30932
  });
30905
30933
  }
@@ -30910,7 +30938,7 @@ var CanvasImageContent = forwardRef10(({
30910
30938
  if (onError) {
30911
30939
  onError(err);
30912
30940
  continueRenderOnce();
30913
- continuePendingLoadDelay();
30941
+ continuePendingLoadDelay({ markAsReady: true });
30914
30942
  } else {
30915
30943
  cancelRender2(err);
30916
30944
  }
@@ -31081,6 +31109,7 @@ var ImgContent = ({
31081
31109
  const errors = useRef24({});
31082
31110
  const { delayPlayback } = useBufferState();
31083
31111
  const sequenceContext = useContext33(SequenceContext);
31112
+ const [isLoading, setIsLoading] = useState18(false);
31084
31113
  const _propsValid = true;
31085
31114
  if (!_propsValid) {
31086
31115
  throw new Error("typecheck error");
@@ -31113,6 +31142,8 @@ var ImgContent = ({
31113
31142
  }, timeout);
31114
31143
  }, []);
31115
31144
  const { delayRender: delayRender2, continueRender: continueRender2, cancelRender: cancelRender2 } = useDelayRender();
31145
+ const isPremounting = Boolean(sequenceContext?.premounting);
31146
+ const isPostmounting = Boolean(sequenceContext?.postmounting);
31116
31147
  const didGetError = useCallback19((e) => {
31117
31148
  if (!errors.current) {
31118
31149
  return;
@@ -31133,8 +31164,18 @@ var ImgContent = ({
31133
31164
  } catch {}
31134
31165
  }, [cancelRender2, maxRetries, onError, retryIn]);
31135
31166
  if (typeof window !== "undefined") {
31136
- const isPremounting = Boolean(sequenceContext?.premounting);
31137
- const isPostmounting = Boolean(sequenceContext?.postmounting);
31167
+ useLayoutEffect11(() => {
31168
+ if (!pauseWhenLoading || !isLoading || isPremounting || isPostmounting) {
31169
+ return;
31170
+ }
31171
+ return delayPlayback().unblock;
31172
+ }, [
31173
+ delayPlayback,
31174
+ isLoading,
31175
+ isPostmounting,
31176
+ isPremounting,
31177
+ pauseWhenLoading
31178
+ ]);
31138
31179
  useLayoutEffect11(() => {
31139
31180
  if (window.process?.env?.NODE_ENV === "test") {
31140
31181
  if (imageRef.current) {
@@ -31146,13 +31187,11 @@ var ImgContent = ({
31146
31187
  if (!current) {
31147
31188
  return;
31148
31189
  }
31190
+ setIsLoading(true);
31149
31191
  const newHandle = delayRender2("Loading <Img> with src=" + truncateSrcForLabel(actualSrc), {
31150
31192
  retries: delayRenderRetries ?? undefined,
31151
31193
  timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
31152
31194
  });
31153
- const unblock = pauseWhenLoading && !isPremounting && !isPostmounting ? delayPlayback().unblock : () => {
31154
- return;
31155
- };
31156
31195
  let unmounted = false;
31157
31196
  const onComplete = () => {
31158
31197
  if (unmounted) {
@@ -31166,7 +31205,7 @@ var ImgContent = ({
31166
31205
  if (current) {
31167
31206
  onImageFrame?.(current);
31168
31207
  }
31169
- unblock();
31208
+ setIsLoading(false);
31170
31209
  continueRender2(newHandle);
31171
31210
  };
31172
31211
  if (!imageRef.current) {
@@ -31185,17 +31224,12 @@ var ImgContent = ({
31185
31224
  return () => {
31186
31225
  unmounted = true;
31187
31226
  current.removeEventListener("load", onComplete);
31188
- unblock();
31189
31227
  continueRender2(newHandle);
31190
31228
  };
31191
31229
  }, [
31192
31230
  actualSrc,
31193
- delayPlayback,
31194
31231
  delayRenderRetries,
31195
31232
  delayRenderTimeoutInMilliseconds,
31196
- pauseWhenLoading,
31197
- isPremounting,
31198
- isPostmounting,
31199
31233
  onImageFrame,
31200
31234
  continueRender2,
31201
31235
  delayRender2
@@ -31513,9 +31547,9 @@ var CompositionManagerProvider = ({
31513
31547
  initialCompositions,
31514
31548
  initialCanvasContent
31515
31549
  }) => {
31516
- const [folders, setFolders] = useState18([]);
31517
- const [canvasContent, setCanvasContent] = useState18(initialCanvasContent);
31518
- const [compositions, setCompositions] = useState18(initialCompositions);
31550
+ const [folders, setFolders] = useState19([]);
31551
+ const [canvasContent, setCanvasContent] = useState19(initialCanvasContent);
31552
+ const [compositions, setCompositions] = useState19(initialCompositions);
31519
31553
  const currentcompositionsRef = useRef26(compositions);
31520
31554
  const updateCompositions = useCallback21((updateComps) => {
31521
31555
  setCompositions((comps) => {
@@ -32086,7 +32120,7 @@ var OffthreadVideoForRendering = ({
32086
32120
  toneMapped
32087
32121
  });
32088
32122
  }, [toneMapped, currentTime, src, transparent]);
32089
- const [imageSrc, setImageSrc] = useState19(null);
32123
+ const [imageSrc, setImageSrc] = useState20(null);
32090
32124
  const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
32091
32125
  useLayoutEffect12(() => {
32092
32126
  if (!window.remotion_videoEnabled) {
@@ -32290,7 +32324,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
32290
32324
  const parentSequence = useContext37(SequenceContext);
32291
32325
  const logLevel = useLogLevel();
32292
32326
  const mountTime = useMountTime();
32293
- const [timelineId] = useState20(() => String(Math.random()));
32327
+ const [timelineId] = useState21(() => String(Math.random()));
32294
32328
  if (typeof acceptableTimeShift !== "undefined") {
32295
32329
  throw new Error("acceptableTimeShift has been removed. Use acceptableTimeShiftInSeconds instead.");
32296
32330
  }
@@ -32361,7 +32395,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
32361
32395
  useImperativeHandle9(ref, () => {
32362
32396
  return videoRef.current;
32363
32397
  }, []);
32364
- useState20(() => playbackLogging({
32398
+ useState21(() => playbackLogging({
32365
32399
  logLevel,
32366
32400
  message: `Mounting video with source = ${actualSrc}, v=${VERSION}, user agent=${typeof navigator === "undefined" ? "server" : navigator.userAgent}`,
32367
32401
  tag: "video",
@@ -36856,7 +36890,7 @@ var getAngle = (ref, coordinates) => {
36856
36890
  };
36857
36891
  var lastCoordinates = null;
36858
36892
  var useMousePosition = (ref) => {
36859
- const [angle, setAngle] = useState21(getAngle(ref.current, lastCoordinates));
36893
+ const [angle, setAngle] = useState23(getAngle(ref.current, lastCoordinates));
36860
36894
  useEffect21(() => {
36861
36895
  const element = ref.current;
36862
36896
  if (!element) {
@@ -43156,7 +43190,7 @@ var Triangle22 = (props) => {
43156
43190
  };
43157
43191
 
43158
43192
  // src/components/prompts/CopyPromptButton.tsx
43159
- import { useCallback as useCallback38, useState as useState38 } from "react";
43193
+ import { useCallback as useCallback38, useState as useState40 } from "react";
43160
43194
 
43161
43195
  // src/components/prompts/ClipboardIcon.tsx
43162
43196
  import { jsx as jsx45 } from "react/jsx-runtime";
@@ -43176,7 +43210,7 @@ var ClipboardIcon = ({ size: size4 = 16, color = "currentColor" }) => {
43176
43210
  // src/components/prompts/CopyPromptButton.tsx
43177
43211
  import { jsx as jsx46, jsxs as jsxs6 } from "react/jsx-runtime";
43178
43212
  var CopyPromptButton = ({ prompt }) => {
43179
- const [copied, setCopied] = useState38(false);
43213
+ const [copied, setCopied] = useState40(false);
43180
43214
  const onCopy = useCallback38(() => {
43181
43215
  navigator.clipboard.writeText(prompt);
43182
43216
  setCopied(true);
@@ -43206,7 +43240,7 @@ var CopyPromptButton = ({ prompt }) => {
43206
43240
  };
43207
43241
 
43208
43242
  // src/components/prompts/LikeButton.tsx
43209
- import { useCallback as useCallback40, useEffect as useEffect40, useState as useState40 } from "react";
43243
+ import { useCallback as useCallback40, useEffect as useEffect40, useState as useState42 } from "react";
43210
43244
 
43211
43245
  // src/components/prompts/config.ts
43212
43246
  var REMOTION_PRO_ORIGIN = "https://www.remotion.pro";
@@ -43283,11 +43317,11 @@ var getRelativeTime = (dateStr) => {
43283
43317
  };
43284
43318
 
43285
43319
  // src/components/prompts/use-heart-animation.ts
43286
- import { useCallback as useCallback39, useRef as useRef47, useState as useState39 } from "react";
43320
+ import { useCallback as useCallback39, useRef as useRef47, useState as useState41 } from "react";
43287
43321
  var DURATION = 300;
43288
43322
  var useHeartAnimation = () => {
43289
- const [scale, setScale] = useState39(1);
43290
- const [roundness, setRoundness] = useState39(0.09);
43323
+ const [scale, setScale] = useState41(1);
43324
+ const [roundness, setRoundness] = useState41(0.09);
43291
43325
  const rafRef = useRef47(0);
43292
43326
  const animate = useCallback39(() => {
43293
43327
  cancelAnimationFrame(rafRef.current);
@@ -43314,8 +43348,8 @@ var useHeartAnimation = () => {
43314
43348
  // src/components/prompts/LikeButton.tsx
43315
43349
  import { jsx as jsx47, jsxs as jsxs7 } from "react/jsx-runtime";
43316
43350
  var LikeButton = ({ submissionId, initialLikeCount }) => {
43317
- const [liked, setLiked] = useState40(false);
43318
- const [likeCount, setLikeCount] = useState40(initialLikeCount);
43351
+ const [liked, setLiked] = useState42(false);
43352
+ const [likeCount, setLikeCount] = useState42(initialLikeCount);
43319
43353
  const { scale, roundness, animate } = useHeartAnimation();
43320
43354
  useEffect40(() => {
43321
43355
  setLiked(getLikedIds().has(submissionId));