@remotion/promo-pages 4.0.491 → 4.0.493

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.
package/dist/Homepage.js CHANGED
@@ -941,6 +941,7 @@ import * as React6 from "react";
941
941
  import React7, { useMemo as useMemo6, useRef as useRef2 } from "react";
942
942
  import { useContext as useContext8, useMemo as useMemo7 } from "react";
943
943
  import { jsx as jsx7 } from "react/jsx-runtime";
944
+ import React9 from "react";
944
945
  import {
945
946
  forwardRef as forwardRef3,
946
947
  useCallback as useCallback6,
@@ -966,11 +967,11 @@ import { useContext as useContext13 } from "react";
966
967
  import { useContext as useContext12, useMemo as useMemo10 } from "react";
967
968
  import { jsx as jsx9 } from "react/jsx-runtime";
968
969
  import { createContext as createContext14 } from "react";
969
- import React11, { useCallback as useCallback5, useMemo as useMemo12, useRef as useRef4, useState as useState3 } from "react";
970
+ import React12, { useCallback as useCallback5, useMemo as useMemo12, useRef as useRef4, useState as useState3 } from "react";
970
971
  import { jsx as jsx10 } from "react/jsx-runtime";
971
- import React12, { createContext as createContext15 } from "react";
972
+ import React13, { createContext as createContext15 } from "react";
972
973
  import { jsx as jsx11 } from "react/jsx-runtime";
973
- import React13, { forwardRef as forwardRef2, useContext as useContext16, useMemo as useMemo13, useState as useState4 } from "react";
974
+ import React14, { forwardRef as forwardRef2, useContext as useContext16, useMemo as useMemo13, useState as useState4 } from "react";
974
975
  import { useContext as useContext15, useRef as useRef5 } from "react";
975
976
  import { createContext as createContext16 } from "react";
976
977
  import { jsx as jsx12 } from "react/jsx-runtime";
@@ -982,7 +983,7 @@ import {
982
983
  useRef as useRef9,
983
984
  useState as useState6
984
985
  } from "react";
985
- import React15, { useCallback as useCallback7, useImperativeHandle, useMemo as useMemo16, useRef as useRef8 } from "react";
986
+ import React16, { useCallback as useCallback7, useImperativeHandle, useMemo as useMemo16, useRef as useRef8 } from "react";
986
987
  import { useEffect as useEffect4, useMemo as useMemo15, useRef as useRef7 } from "react";
987
988
  import { jsx as jsx13 } from "react/jsx-runtime";
988
989
  import { jsx as jsx14 } from "react/jsx-runtime";
@@ -998,7 +999,7 @@ import {
998
999
  } from "react";
999
1000
  import { jsx as jsx15 } from "react/jsx-runtime";
1000
1001
  import { forwardRef as forwardRef7, useCallback as useCallback14, useContext as useContext30 } from "react";
1001
- import React16, { createContext as createContext18, useMemo as useMemo18 } from "react";
1002
+ import React17, { createContext as createContext18, useMemo as useMemo18 } from "react";
1002
1003
  import { jsx as jsx16 } from "react/jsx-runtime";
1003
1004
  import { useContext as useContext19 } from "react";
1004
1005
  import { createContext as createContext19, useEffect as useEffect6, useState as useState9 } from "react";
@@ -1006,7 +1007,7 @@ import { jsx as jsx17 } from "react/jsx-runtime";
1006
1007
  import { createContext as createContext20, useMemo as useMemo19, useReducer } from "react";
1007
1008
  import { jsx as jsx18 } from "react/jsx-runtime";
1008
1009
  import { useCallback as useCallback13 } from "react";
1009
- import React22, {
1010
+ import React23, {
1010
1011
  forwardRef as forwardRef5,
1011
1012
  useContext as useContext28,
1012
1013
  useEffect as useEffect14,
@@ -1016,7 +1017,7 @@ import React22, {
1016
1017
  useState as useState14
1017
1018
  } from "react";
1018
1019
  import { useContext as useContext21, useLayoutEffect as useLayoutEffect5, useRef as useRef14 } from "react";
1019
- import React19, {
1020
+ import React20, {
1020
1021
  createContext as createContext21,
1021
1022
  createRef as createRef2,
1022
1023
  useCallback as useCallback9,
@@ -1040,7 +1041,7 @@ import {
1040
1041
  } from "react";
1041
1042
  import { useCallback as useCallback11, useMemo as useMemo25, useRef as useRef16 } from "react";
1042
1043
  import { useContext as useContext25, useMemo as useMemo24 } from "react";
1043
- import React20, {
1044
+ import React21, {
1044
1045
  useCallback as useCallback10,
1045
1046
  useContext as useContext24,
1046
1047
  useEffect as useEffect9,
@@ -1050,7 +1051,7 @@ import React20, {
1050
1051
  useState as useState12
1051
1052
  } from "react";
1052
1053
  import { jsx as jsx20 } from "react/jsx-runtime";
1053
- import React21 from "react";
1054
+ import React22 from "react";
1054
1055
  import { useEffect as useEffect10, useState as useState13 } from "react";
1055
1056
  import { useEffect as useEffect11, useRef as useRef17 } from "react";
1056
1057
  import { useEffect as useEffect13 } from "react";
@@ -1108,10 +1109,10 @@ import {
1108
1109
  useState as useState18
1109
1110
  } from "react";
1110
1111
  import { jsx as jsx28 } from "react/jsx-runtime";
1111
- import React29, { forwardRef as forwardRef12, useCallback as useCallback20, useRef as useRef25 } from "react";
1112
+ import React30, { forwardRef as forwardRef12, useCallback as useCallback20, useRef as useRef25 } from "react";
1112
1113
  import { jsx as jsx29 } from "react/jsx-runtime";
1113
1114
  import { createRef as createRef3 } from "react";
1114
- import React30 from "react";
1115
+ import React31 from "react";
1115
1116
  import {
1116
1117
  useCallback as useCallback21,
1117
1118
  useImperativeHandle as useImperativeHandle8,
@@ -1120,14 +1121,14 @@ import {
1120
1121
  useState as useState19
1121
1122
  } from "react";
1122
1123
  import { jsx as jsx30 } from "react/jsx-runtime";
1123
- import React31 from "react";
1124
+ import React32 from "react";
1124
1125
  import { useMemo as useMemo34 } from "react";
1125
1126
  import { createContext as createContext24, useContext as useContext34, useMemo as useMemo33 } from "react";
1126
1127
  import { jsx as jsx31 } from "react/jsx-runtime";
1127
1128
  import { jsx as jsx32 } from "react/jsx-runtime";
1128
- import React33 from "react";
1129
- import React34, { createContext as createContext25 } from "react";
1130
- import React35, { useContext as useContext35 } from "react";
1129
+ import React34 from "react";
1130
+ import React35, { createContext as createContext25 } from "react";
1131
+ import React36, { useContext as useContext35 } from "react";
1131
1132
  import { useCallback as useCallback24 } from "react";
1132
1133
  import {
1133
1134
  useCallback as useCallback22,
@@ -1138,7 +1139,7 @@ import {
1138
1139
  useState as useState20
1139
1140
  } from "react";
1140
1141
  import { jsx as jsx33 } from "react/jsx-runtime";
1141
- import React37, {
1142
+ import React38, {
1142
1143
  forwardRef as forwardRef13,
1143
1144
  useCallback as useCallback23,
1144
1145
  useContext as useContext37,
@@ -1151,15 +1152,15 @@ import React37, {
1151
1152
  import { useEffect as useEffect18 } from "react";
1152
1153
  import { jsx as jsx34 } from "react/jsx-runtime";
1153
1154
  import { jsx as jsx35 } from "react/jsx-runtime";
1154
- import React39, { useMemo as useMemo37 } from "react";
1155
+ import React40, { useMemo as useMemo37 } from "react";
1155
1156
  import { jsx as jsx36 } from "react/jsx-runtime";
1156
- import React41, {
1157
+ import React42, {
1157
1158
  forwardRef as forwardRef14,
1158
1159
  useMemo as useMemo38
1159
1160
  } from "react";
1160
- import React40 from "react";
1161
+ import React41 from "react";
1161
1162
  import { jsx as jsx37, jsxs as jsxs3, Fragment } from "react/jsx-runtime";
1162
- import React42 from "react";
1163
+ import React43 from "react";
1163
1164
  import { forwardRef as forwardRef16, useCallback as useCallback25, useContext as useContext39 } from "react";
1164
1165
  import {
1165
1166
  forwardRef as forwardRef15,
@@ -1821,6 +1822,7 @@ var useResolvedVideoConfig = (preferredCompositionId) => {
1821
1822
  if (currentCompositionMetadata) {
1822
1823
  return {
1823
1824
  type: "success",
1825
+ metadataSource: null,
1824
1826
  result: {
1825
1827
  ...currentCompositionMetadata,
1826
1828
  id: composition.id,
@@ -1838,6 +1840,7 @@ var useResolvedVideoConfig = (preferredCompositionId) => {
1838
1840
  validateDimension(composition.height, "height", `in <Composition id="${composition.id}">`);
1839
1841
  return {
1840
1842
  type: "success",
1843
+ metadataSource: null,
1841
1844
  result: {
1842
1845
  width: composition.width,
1843
1846
  height: composition.height,
@@ -2237,6 +2240,7 @@ var InnerComposition = ({
2237
2240
  }
2238
2241
  const { folderName, parentName } = useContext9(FolderContext);
2239
2242
  const stack = compProps.stack ?? null;
2243
+ const componentFromProps = "component" in compProps ? compProps.component : null;
2240
2244
  useEffect2(() => {
2241
2245
  if (!id) {
2242
2246
  throw new Error("No id for composition passed.");
@@ -2254,6 +2258,7 @@ var InnerComposition = ({
2254
2258
  defaultProps: serializeThenDeserializeInStudio(defaultProps ?? {}),
2255
2259
  nonce: nonce.get(),
2256
2260
  parentFolderName: parentName,
2261
+ componentFromProps,
2257
2262
  schema: schema ?? null,
2258
2263
  calculateMetadata: compProps.calculateMetadata ?? null,
2259
2264
  stack
@@ -2272,6 +2277,7 @@ var InnerComposition = ({
2272
2277
  width,
2273
2278
  nonce,
2274
2279
  parentName,
2280
+ componentFromProps,
2275
2281
  schema,
2276
2282
  compProps.calculateMetadata,
2277
2283
  stack,
@@ -2330,11 +2336,30 @@ var Composition = (props) => {
2330
2336
  });
2331
2337
  };
2332
2338
  var componentsToAddStacksTo = [];
2339
+ var sequenceComponent = null;
2333
2340
  var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
2334
2341
  var addSequenceStackTraces = (component) => {
2335
2342
  componentsToAddStacksTo.push(component);
2336
2343
  };
2337
- var VERSION = "4.0.491";
2344
+ var setSequenceComponent = (component) => {
2345
+ sequenceComponent = component;
2346
+ };
2347
+ var getSequenceComponent = () => sequenceComponent;
2348
+ var getSingleChildComponent = (children) => {
2349
+ const mountedChildren = React9.Children.toArray(children);
2350
+ if (mountedChildren.length !== 1) {
2351
+ return null;
2352
+ }
2353
+ const child = mountedChildren[0];
2354
+ if (!React9.isValidElement(child)) {
2355
+ return null;
2356
+ }
2357
+ if (typeof child.type !== "function" && typeof child.type !== "object") {
2358
+ return null;
2359
+ }
2360
+ return child.type;
2361
+ };
2362
+ var VERSION = "4.0.493";
2338
2363
  var checkMultipleRemotionVersions = () => {
2339
2364
  if (typeof globalThis === "undefined") {
2340
2365
  return;
@@ -2934,7 +2959,7 @@ var sequenceSchemaDefaultLayoutNone = {
2934
2959
  var PremountContext = createContext14({
2935
2960
  premountFramesRemaining: 0
2936
2961
  });
2937
- var SequenceManager = React11.createContext({
2962
+ var SequenceManager = React12.createContext({
2938
2963
  registerSequence: () => {
2939
2964
  throw new Error("SequenceManagerContext not initialized");
2940
2965
  },
@@ -2943,19 +2968,19 @@ var SequenceManager = React11.createContext({
2943
2968
  },
2944
2969
  sequences: []
2945
2970
  });
2946
- var SequenceManagerRefContext = React11.createContext({
2971
+ var SequenceManagerRefContext = React12.createContext({
2947
2972
  current: []
2948
2973
  });
2949
2974
  var makeSequencePropsSubscriptionKey = (key) => {
2950
2975
  return `${key.absolutePath}\x00${key.nodePath.join(".")}\x00${key.sequenceKeys.join(".")}\x00${key.effectKeys.map((keys) => keys.join(".")).join(".")}`;
2951
2976
  };
2952
- var VisualModePropStatusesContext = React11.createContext({
2977
+ var VisualModePropStatusesContext = React12.createContext({
2953
2978
  propStatuses: {}
2954
2979
  });
2955
- var VisualModePropStatusesRefContext = React11.createContext({
2980
+ var VisualModePropStatusesRefContext = React12.createContext({
2956
2981
  current: {}
2957
2982
  });
2958
- var VisualModeDragOverridesContext = React11.createContext({
2983
+ var VisualModeDragOverridesContext = React12.createContext({
2959
2984
  getDragOverrides: () => {
2960
2985
  throw new Error("VisualModeDragOverridesContext not initialized");
2961
2986
  },
@@ -2963,7 +2988,7 @@ var VisualModeDragOverridesContext = React11.createContext({
2963
2988
  throw new Error("VisualModeDragOverridesContext not initialized");
2964
2989
  }
2965
2990
  });
2966
- var VisualModeSettersContext = React11.createContext({
2991
+ var VisualModeSettersContext = React12.createContext({
2967
2992
  setDragOverrides: () => {
2968
2993
  throw new Error("VisualModeSettersContext not initialized");
2969
2994
  },
@@ -3127,7 +3152,7 @@ var IsNotInsideSeriesProvider = ({ children }) => {
3127
3152
  });
3128
3153
  };
3129
3154
  var useRequireToBeInsideSeries = () => {
3130
- const isInsideSeries = React12.useContext(IsInsideSeriesContext);
3155
+ const isInsideSeries = React13.useContext(IsInsideSeriesContext);
3131
3156
  if (!isInsideSeries) {
3132
3157
  throw new Error("This component must be inside a <Series /> component.");
3133
3158
  }
@@ -5196,6 +5221,9 @@ var computeEffectiveSchemaValuesDotNotation = ({
5196
5221
  shouldResortToDefaultValueIfUndefined: false
5197
5222
  });
5198
5223
  }
5224
+ if (field?.type === "asset" && typeof value === "string" && value.startsWith(FILE_TOKEN)) {
5225
+ value = `${window.remotion_staticBase}/${value.slice(FILE_TOKEN.length)}`;
5226
+ }
5199
5227
  if (value === undefined) {
5200
5228
  propsToDelete.add(key);
5201
5229
  }
@@ -5294,7 +5322,7 @@ var withInteractivitySchema = ({
5294
5322
  const Wrapped = forwardRef2((props, ref) => {
5295
5323
  const env = useRemotionEnvironment();
5296
5324
  if (!env.isStudio || env.isReadOnlyStudio || env.isRendering) {
5297
- return React13.createElement(Component, {
5325
+ return React14.createElement(Component, {
5298
5326
  ...props,
5299
5327
  controls: null,
5300
5328
  ref
@@ -5305,7 +5333,7 @@ var withInteractivitySchema = ({
5305
5333
  const nodePathMapping = useContext16(OverrideIdsToNodePathsGettersContext);
5306
5334
  const frame = useCurrentFrame();
5307
5335
  if (props.controls) {
5308
- return React13.createElement(Component, {
5336
+ return React14.createElement(Component, {
5309
5337
  ...props,
5310
5338
  ref
5311
5339
  });
@@ -5363,7 +5391,7 @@ var withInteractivitySchema = ({
5363
5391
  schemaKeys: activeKeys,
5364
5392
  propsToDelete
5365
5393
  });
5366
- return React13.createElement(Component, {
5394
+ return React14.createElement(Component, {
5367
5395
  ...mergedProps,
5368
5396
  controls,
5369
5397
  ref
@@ -5389,6 +5417,7 @@ var RegularSequenceRefForwardingFunction = ({
5389
5417
  _remotionInternalLoopDisplay: loopDisplay,
5390
5418
  _remotionInternalStack: stack,
5391
5419
  _remotionInternalDocumentationLink: documentationLink,
5420
+ _remotionInternalSingleChildComponent: singleChildComponent,
5392
5421
  _remotionInternalPremountDisplay: premountDisplay,
5393
5422
  _remotionInternalPostmountDisplay: postmountDisplay,
5394
5423
  _remotionInternalIsMedia: isMedia,
@@ -5535,7 +5564,8 @@ var RegularSequenceRefForwardingFunction = ({
5535
5564
  getStack: () => stackRef.current,
5536
5565
  refForOutline: refForOutline ?? null,
5537
5566
  isInsideSeries,
5538
- frozenFrame: registeredFrozenFrame
5567
+ frozenFrame: registeredFrozenFrame,
5568
+ singleChildComponent: singleChildComponent ?? null
5539
5569
  });
5540
5570
  } else {
5541
5571
  registerSequence({
@@ -5565,7 +5595,8 @@ var RegularSequenceRefForwardingFunction = ({
5565
5595
  refForOutline: refForOutline ?? null,
5566
5596
  isInsideSeries,
5567
5597
  frozenFrame: registeredFrozenFrame,
5568
- frozenMediaFrame
5598
+ frozenMediaFrame,
5599
+ singleChildComponent: singleChildComponent ?? null
5569
5600
  });
5570
5601
  }
5571
5602
  return () => {
@@ -5592,7 +5623,8 @@ var RegularSequenceRefForwardingFunction = ({
5592
5623
  effects: _remotionInternalEffects ?? EMPTY_EFFECTS,
5593
5624
  refForOutline: refForOutline ?? null,
5594
5625
  isInsideSeries,
5595
- frozenFrame: registeredFrozenFrame
5626
+ frozenFrame: registeredFrozenFrame,
5627
+ singleChildComponent: singleChildComponent ?? null
5596
5628
  });
5597
5629
  return () => {
5598
5630
  unregisterSequence(id);
@@ -5625,7 +5657,8 @@ var RegularSequenceRefForwardingFunction = ({
5625
5657
  registeredFrozenFrame,
5626
5658
  startMediaFrom,
5627
5659
  mediaFrameAtSequenceZero,
5628
- frozenMediaFrame
5660
+ frozenMediaFrame,
5661
+ singleChildComponent
5629
5662
  ]);
5630
5663
  const endThreshold = Math.ceil(cumulatedFrom + from + durationInFrames - 1);
5631
5664
  const content = absoluteFrame < cumulatedFrom + from ? null : absoluteFrame > endThreshold ? null : children;
@@ -6127,7 +6160,7 @@ var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effec
6127
6160
  ...props
6128
6161
  });
6129
6162
  };
6130
- var Canvas = React15.forwardRef(CanvasRefForwardingFunction);
6163
+ var Canvas = React16.forwardRef(CanvasRefForwardingFunction);
6131
6164
  var CACHE_SIZE = 5;
6132
6165
  var getActualTime = ({
6133
6166
  loopBehavior,
@@ -6288,6 +6321,12 @@ var resolveAnimatedImageSource = (src) => {
6288
6321
  return new URL(src, window.origin).href;
6289
6322
  };
6290
6323
  var animatedImageSchema = {
6324
+ src: {
6325
+ type: "asset",
6326
+ default: undefined,
6327
+ description: "Source",
6328
+ keyframable: false
6329
+ },
6291
6330
  ...baseSchema,
6292
6331
  playbackRate: {
6293
6332
  type: "number",
@@ -6705,7 +6744,7 @@ var calculateMediaDuration = ({
6705
6744
  };
6706
6745
  var LoopContext = createContext18(null);
6707
6746
  var useLoop = () => {
6708
- return React16.useContext(LoopContext);
6747
+ return React17.useContext(LoopContext);
6709
6748
  };
6710
6749
  var Loop = ({
6711
6750
  durationInFrames,
@@ -7556,7 +7595,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
7556
7595
  };
7557
7596
  });
7558
7597
  }, [audioContext, numberOfAudioTags]);
7559
- const effectToUse = React19.useInsertionEffect ?? React19.useLayoutEffect;
7598
+ const effectToUse = React20.useInsertionEffect ?? React20.useLayoutEffect;
7560
7599
  effectToUse(() => {
7561
7600
  return () => {
7562
7601
  requestAnimationFrame(() => {
@@ -7726,7 +7765,7 @@ var useSharedAudio = ({
7726
7765
  if (tagsCtx && tagsCtx.numberOfAudioTags > 0) {
7727
7766
  return tagsCtx.registerAudio({ aud, audioId, premounting, postmounting });
7728
7767
  }
7729
- const el = React19.createRef();
7768
+ const el = React20.createRef();
7730
7769
  const mediaElementSourceNode = audioCtx?.audioContext ? makeSharedElementSourceNode({
7731
7770
  audioContext: audioCtx.audioContext,
7732
7771
  ref: el
@@ -7745,7 +7784,7 @@ var useSharedAudio = ({
7745
7784
  }
7746
7785
  };
7747
7786
  });
7748
- const effectToUse = React19.useInsertionEffect ?? React19.useLayoutEffect;
7787
+ const effectToUse = React20.useInsertionEffect ?? React20.useLayoutEffect;
7749
7788
  if (typeof document !== "undefined") {
7750
7789
  effectToUse(() => {
7751
7790
  if (tagsCtx && tagsCtx.numberOfAudioTags > 0) {
@@ -8297,7 +8336,7 @@ var useBufferManager = (logLevel, mountTime) => {
8297
8336
  return { addBlock, listenForBuffering, listenForResume, buffering };
8298
8337
  }, [addBlock, buffering, listenForBuffering, listenForResume]);
8299
8338
  };
8300
- var BufferingContextReact = React20.createContext(null);
8339
+ var BufferingContextReact = React21.createContext(null);
8301
8340
  var BufferingProvider = ({ children }) => {
8302
8341
  const { logLevel, mountTime } = useContext24(LogLevelContext);
8303
8342
  const bufferManager = useBufferManager(logLevel ?? "info", mountTime);
@@ -8510,7 +8549,7 @@ var getMediaSyncAction = (input) => {
8510
8549
  return { type: "none" };
8511
8550
  };
8512
8551
  var useCurrentTimeOfMediaTagWithUpdateTimeStamp = (mediaRef) => {
8513
- const lastUpdate = React21.useRef({
8552
+ const lastUpdate = React22.useRef({
8514
8553
  time: mediaRef.current?.currentTime ?? 0,
8515
8554
  lastUpdate: performance.now()
8516
8555
  });
@@ -9263,7 +9302,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
9263
9302
  volume: userPreferredVolume,
9264
9303
  shouldUseWebAudioApi: useWebAudioApi ?? false
9265
9304
  });
9266
- const effectToUse = React22.useInsertionEffect ?? React22.useLayoutEffect;
9305
+ const effectToUse = React23.useInsertionEffect ?? React23.useLayoutEffect;
9267
9306
  effectToUse(() => {
9268
9307
  return () => {
9269
9308
  requestAnimationFrame(() => {
@@ -10809,6 +10848,12 @@ var NativeImgInner = ({
10809
10848
  };
10810
10849
  var CanvasImageWithPrivateProps = CanvasImage;
10811
10850
  var imgSchema = {
10851
+ src: {
10852
+ type: "asset",
10853
+ default: undefined,
10854
+ description: "Source",
10855
+ keyframable: false
10856
+ },
10812
10857
  ...baseSchema,
10813
10858
  ...transformSchema
10814
10859
  };
@@ -11019,7 +11064,7 @@ var makeInteractiveElement = (tag, displayName) => {
11019
11064
  _remotionInternalStack: stack,
11020
11065
  _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/interactive",
11021
11066
  outlineRef: refForOutline,
11022
- children: React29.createElement(tag, {
11067
+ children: React30.createElement(tag, {
11023
11068
  ...props2,
11024
11069
  ref: callbackRef
11025
11070
  })
@@ -11083,7 +11128,7 @@ var Interactive = {
11083
11128
  Text: makeInteractiveElement("text", "<Interactive.Text>"),
11084
11129
  Ul: makeInteractiveElement("ul", "<Interactive.Ul>")
11085
11130
  };
11086
- var compositionsRef = React30.createRef();
11131
+ var compositionsRef = React31.createRef();
11087
11132
  var CompositionManagerProvider = ({
11088
11133
  children,
11089
11134
  onlyRenderComposition,
@@ -11232,7 +11277,7 @@ var REMOTION_STUDIO_CONTAINER_ELEMENT = "__remotion-studio-container";
11232
11277
  var getPreviewDomElement = () => {
11233
11278
  return document.getElementById(REMOTION_STUDIO_CONTAINER_ELEMENT);
11234
11279
  };
11235
- var MaxMediaCacheSizeContext = React31.createContext(null);
11280
+ var MaxMediaCacheSizeContext = React32.createContext(null);
11236
11281
  var Root = null;
11237
11282
  var listeners = [];
11238
11283
  var getRoot = () => {
@@ -11400,7 +11445,46 @@ var validateCalculated = ({
11400
11445
  defaultSampleRate
11401
11446
  };
11402
11447
  };
11403
- var resolveVideoConfig = ({
11448
+ var makeVideoConfigWithMetadata = ({
11449
+ calculated,
11450
+ compositionDurationInFrames,
11451
+ compositionFps,
11452
+ compositionHeight,
11453
+ compositionId,
11454
+ compositionWidth,
11455
+ defaultProps,
11456
+ originalProps
11457
+ }) => {
11458
+ const data = validateCalculated({
11459
+ calculated,
11460
+ compositionDurationInFrames,
11461
+ compositionFps,
11462
+ compositionHeight,
11463
+ compositionWidth,
11464
+ compositionId
11465
+ });
11466
+ return {
11467
+ metadataSource: {
11468
+ durationInFrames: calculated?.durationInFrames === undefined ? "composition" : "calculate-metadata",
11469
+ fps: calculated?.fps === undefined ? "composition" : "calculate-metadata",
11470
+ height: calculated?.height === undefined ? "composition" : "calculate-metadata",
11471
+ width: calculated?.width === undefined ? "composition" : "calculate-metadata"
11472
+ },
11473
+ videoConfig: {
11474
+ ...data,
11475
+ id: compositionId,
11476
+ defaultProps: serializeThenDeserializeInStudio(defaultProps ?? {}),
11477
+ props: serializeThenDeserializeInStudio(calculated?.props ?? originalProps),
11478
+ defaultCodec: data.defaultCodec ?? null,
11479
+ defaultOutName: data.defaultOutName ?? null,
11480
+ defaultVideoImageFormat: data.defaultVideoImageFormat ?? null,
11481
+ defaultPixelFormat: data.defaultPixelFormat ?? null,
11482
+ defaultProResProfile: data.defaultProResProfile ?? null,
11483
+ defaultSampleRate: data.defaultSampleRate ?? null
11484
+ }
11485
+ };
11486
+ };
11487
+ var resolveVideoConfigWithMetadata = ({
11404
11488
  calculateMetadata,
11405
11489
  signal,
11406
11490
  defaultProps,
@@ -11420,76 +11504,48 @@ var resolveVideoConfig = ({
11420
11504
  }) : null;
11421
11505
  if (calculatedProm !== null && typeof calculatedProm === "object" && "then" in calculatedProm) {
11422
11506
  return calculatedProm.then((c2) => {
11423
- const {
11424
- height,
11425
- width,
11426
- durationInFrames,
11427
- fps,
11428
- defaultCodec,
11429
- defaultOutName,
11430
- defaultVideoImageFormat,
11431
- defaultPixelFormat,
11432
- defaultProResProfile,
11433
- defaultSampleRate
11434
- } = validateCalculated({
11507
+ return makeVideoConfigWithMetadata({
11435
11508
  calculated: c2,
11436
11509
  compositionDurationInFrames,
11437
11510
  compositionFps,
11438
11511
  compositionHeight,
11439
11512
  compositionWidth,
11440
- compositionId
11513
+ compositionId,
11514
+ defaultProps,
11515
+ originalProps
11441
11516
  });
11442
- return {
11443
- width,
11444
- height,
11445
- fps,
11446
- durationInFrames,
11447
- id: compositionId,
11448
- defaultProps: serializeThenDeserializeInStudio(defaultProps),
11449
- props: serializeThenDeserializeInStudio(c2.props ?? originalProps),
11450
- defaultCodec: defaultCodec ?? null,
11451
- defaultOutName: defaultOutName ?? null,
11452
- defaultVideoImageFormat: defaultVideoImageFormat ?? null,
11453
- defaultPixelFormat: defaultPixelFormat ?? null,
11454
- defaultProResProfile: defaultProResProfile ?? null,
11455
- defaultSampleRate: defaultSampleRate ?? null
11456
- };
11457
11517
  });
11458
11518
  }
11459
- const data = validateCalculated({
11519
+ return makeVideoConfigWithMetadata({
11460
11520
  calculated: calculatedProm,
11461
11521
  compositionDurationInFrames,
11462
11522
  compositionFps,
11463
11523
  compositionHeight,
11464
11524
  compositionWidth,
11465
- compositionId
11525
+ compositionId,
11526
+ defaultProps,
11527
+ originalProps
11466
11528
  });
11467
- if (calculatedProm === null) {
11529
+ };
11530
+ var resolveVideoConfig = (params) => {
11531
+ const resolved = resolveVideoConfigWithMetadata(params);
11532
+ if (typeof resolved === "object" && "then" in resolved) {
11533
+ return resolved.then(({ videoConfig }) => videoConfig);
11534
+ }
11535
+ return resolved.videoConfig;
11536
+ };
11537
+ var resolveVideoConfigWithMetadataOrCatch = (params) => {
11538
+ try {
11468
11539
  return {
11469
- ...data,
11470
- id: compositionId,
11471
- defaultProps: serializeThenDeserializeInStudio(defaultProps ?? {}),
11472
- props: serializeThenDeserializeInStudio(originalProps),
11473
- defaultCodec: null,
11474
- defaultOutName: null,
11475
- defaultVideoImageFormat: null,
11476
- defaultPixelFormat: null,
11477
- defaultProResProfile: null,
11478
- defaultSampleRate: null
11540
+ type: "success",
11541
+ result: resolveVideoConfigWithMetadata(params)
11542
+ };
11543
+ } catch (err) {
11544
+ return {
11545
+ type: "error",
11546
+ error: err
11479
11547
  };
11480
11548
  }
11481
- return {
11482
- ...data,
11483
- id: compositionId,
11484
- defaultProps: serializeThenDeserializeInStudio(defaultProps ?? {}),
11485
- props: serializeThenDeserializeInStudio(calculatedProm.props ?? originalProps),
11486
- defaultCodec: calculatedProm.defaultCodec ?? null,
11487
- defaultOutName: calculatedProm.defaultOutName ?? null,
11488
- defaultVideoImageFormat: calculatedProm.defaultVideoImageFormat ?? null,
11489
- defaultPixelFormat: calculatedProm.defaultPixelFormat ?? null,
11490
- defaultProResProfile: calculatedProm.defaultProResProfile ?? null,
11491
- defaultSampleRate: calculatedProm.defaultSampleRate ?? null
11492
- };
11493
11549
  };
11494
11550
  var resolveVideoConfigOrCatch = (params) => {
11495
11551
  try {
@@ -11505,7 +11561,7 @@ var resolveVideoConfigOrCatch = (params) => {
11505
11561
  };
11506
11562
  }
11507
11563
  };
11508
- var SequenceStackTracesUpdateContext = React33.createContext(() => {});
11564
+ var SequenceStackTracesUpdateContext = React34.createContext(() => {});
11509
11565
  var getEnvVariables = () => {
11510
11566
  if (getRemotionEnvironment().isRendering) {
11511
11567
  const param = window.remotion_envVariables;
@@ -11531,7 +11587,7 @@ var setupEnvVariables = () => {
11531
11587
  window.process.env[key] = env[key];
11532
11588
  });
11533
11589
  };
11534
- var CurrentScaleContext = React34.createContext(null);
11590
+ var CurrentScaleContext = React35.createContext(null);
11535
11591
  var PreviewSizeContext = createContext25({
11536
11592
  setSize: () => {
11537
11593
  return;
@@ -11555,7 +11611,7 @@ var calculateScale = ({
11555
11611
  }
11556
11612
  return Number(previewSize);
11557
11613
  };
11558
- var PixelDensityContext = React35.createContext(null);
11614
+ var PixelDensityContext = React36.createContext(null);
11559
11615
  var getOffthreadVideoSource = ({
11560
11616
  src,
11561
11617
  transparent,
@@ -11822,7 +11878,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
11822
11878
  ref: videoRef
11823
11879
  });
11824
11880
  }, [context.audioContext]);
11825
- const effectToUse = React37.useInsertionEffect ?? React37.useLayoutEffect;
11881
+ const effectToUse = React38.useInsertionEffect ?? React38.useLayoutEffect;
11826
11882
  effectToUse(() => {
11827
11883
  return () => {
11828
11884
  requestAnimationFrame(() => {
@@ -12198,20 +12254,20 @@ var OffthreadVideo = ({
12198
12254
  addSequenceStackTraces(OffthreadVideo);
12199
12255
  var WATCH_REMOTION_STATIC_FILES = "remotion_staticFilesChanged";
12200
12256
  function useRemotionContexts() {
12201
- const compositionManagerCtx = React39.useContext(CompositionManager);
12202
- const timelineContext = React39.useContext(TimelineContext);
12203
- const setTimelineContext = React39.useContext(SetTimelineContext);
12204
- const sequenceContext = React39.useContext(SequenceContext);
12205
- const nonceContext = React39.useContext(NonceContext);
12206
- const canUseRemotionHooksContext = React39.useContext(CanUseRemotionHooks);
12207
- const preloadContext = React39.useContext(PreloadContext);
12208
- const resolveCompositionContext = React39.useContext(ResolveCompositionContext);
12209
- const renderAssetManagerContext = React39.useContext(RenderAssetManager);
12210
- const sequenceManagerContext = React39.useContext(SequenceManager);
12211
- const sequenceManagerRefContext = React39.useContext(SequenceManagerRefContext);
12212
- const visualModePropStatusesRefContext = React39.useContext(VisualModePropStatusesRefContext);
12213
- const bufferManagerContext = React39.useContext(BufferingContextReact);
12214
- const logLevelContext = React39.useContext(LogLevelContext);
12257
+ const compositionManagerCtx = React40.useContext(CompositionManager);
12258
+ const timelineContext = React40.useContext(TimelineContext);
12259
+ const setTimelineContext = React40.useContext(SetTimelineContext);
12260
+ const sequenceContext = React40.useContext(SequenceContext);
12261
+ const nonceContext = React40.useContext(NonceContext);
12262
+ const canUseRemotionHooksContext = React40.useContext(CanUseRemotionHooks);
12263
+ const preloadContext = React40.useContext(PreloadContext);
12264
+ const resolveCompositionContext = React40.useContext(ResolveCompositionContext);
12265
+ const renderAssetManagerContext = React40.useContext(RenderAssetManager);
12266
+ const sequenceManagerContext = React40.useContext(SequenceManager);
12267
+ const sequenceManagerRefContext = React40.useContext(SequenceManagerRefContext);
12268
+ const visualModePropStatusesRefContext = React40.useContext(VisualModePropStatusesRefContext);
12269
+ const bufferManagerContext = React40.useContext(BufferingContextReact);
12270
+ const logLevelContext = React40.useContext(LogLevelContext);
12215
12271
  return useMemo37(() => ({
12216
12272
  compositionManagerCtx,
12217
12273
  timelineContext,
@@ -12369,6 +12425,7 @@ var Internals = {
12369
12425
  NonceContext,
12370
12426
  resolveVideoConfig,
12371
12427
  resolveVideoConfigOrCatch,
12428
+ resolveVideoConfigWithMetadataOrCatch,
12372
12429
  ResolveCompositionContext,
12373
12430
  useResolvedVideoConfig,
12374
12431
  resolveCompositionsRef,
@@ -12385,6 +12442,8 @@ var Internals = {
12385
12442
  BufferingProvider,
12386
12443
  BufferingContextReact,
12387
12444
  getComponentsToAddStacksTo,
12445
+ getSequenceComponent,
12446
+ getSingleChildComponent,
12388
12447
  CurrentScaleContext,
12389
12448
  PixelDensityContext,
12390
12449
  PreviewSizeContext,
@@ -12442,9 +12501,9 @@ var Internals = {
12442
12501
  fromField
12443
12502
  };
12444
12503
  var flattenChildren = (children) => {
12445
- const childrenArray = React40.Children.toArray(children);
12504
+ const childrenArray = React41.Children.toArray(children);
12446
12505
  return childrenArray.reduce((flatChildren, child) => {
12447
- if (child.type === React40.Fragment) {
12506
+ if (child.type === React41.Fragment) {
12448
12507
  return flatChildren.concat(flattenChildren(child.props.children));
12449
12508
  }
12450
12509
  flatChildren.push(child);
@@ -12532,7 +12591,7 @@ var SeriesInner = (props2) => {
12532
12591
  index: i,
12533
12592
  childrenLength: flattenedChildren.length
12534
12593
  });
12535
- return React41.cloneElement(castedElement, {
12594
+ return React42.cloneElement(castedElement, {
12536
12595
  _remotionInternalRender: (resolvedProps, ref) => {
12537
12596
  const durationInFramesProp = resolvedProps.durationInFrames;
12538
12597
  const {
@@ -12690,7 +12749,7 @@ var Still = (props2) => {
12690
12749
  durationInFrames: 1,
12691
12750
  fps: 1
12692
12751
  };
12693
- return React42.createElement(Composition, newProps);
12752
+ return React43.createElement(Composition, newProps);
12694
12753
  };
12695
12754
  addSequenceStackTraces(Still);
12696
12755
  var roundTo6Commas = (num) => {
@@ -13169,6 +13228,7 @@ var Config = new Proxy(proxyObj, {
13169
13228
  });
13170
13229
  Sequence.displayName = "Sequence";
13171
13230
  addSequenceStackTraces(Sequence);
13231
+ setSequenceComponent(Sequence);
13172
13232
  addSequenceStackTraces(Composition);
13173
13233
  addSequenceStackTraces(Folder);
13174
13234
 
@@ -13611,7 +13671,7 @@ var ExpertsPageContent = ({ Link }) => {
13611
13671
  import { useMemo as useMemo53 } from "react";
13612
13672
 
13613
13673
  // ../design/dist/esm/index.mjs
13614
- import * as React23 from "react";
13674
+ import * as React24 from "react";
13615
13675
  import * as React8 from "react";
13616
13676
  import { Fragment as Fragment22, jsx as jsx46 } from "react/jsx-runtime";
13617
13677
  import React52, { useCallback as useCallback27, useRef as useRef210, useState as useState22 } from "react";
@@ -14956,7 +15016,7 @@ var getDefaultConfig = () => {
14956
15016
  var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
14957
15017
 
14958
15018
  // ../design/dist/esm/index.mjs
14959
- import React32, { useEffect as useEffect21, useMemo as useMemo43, useState as useState23 } from "react";
15019
+ import React33, { useEffect as useEffect21, useMemo as useMemo43, useState as useState23 } from "react";
14960
15020
 
14961
15021
  // ../paths/dist/esm/index.mjs
14962
15022
  var cutLInstruction = ({
@@ -20647,12 +20707,12 @@ import React72 from "react";
20647
20707
  import { jsx as jsx103 } from "react/jsx-runtime";
20648
20708
  import { jsx as jsx113 } from "react/jsx-runtime";
20649
20709
  import { jsx as jsx123 } from "react/jsx-runtime";
20650
- import * as React36 from "react";
20710
+ import * as React362 from "react";
20651
20711
  import * as ReactDOM4 from "react-dom";
20652
- import React112 from "react";
20712
+ import React11 from "react";
20653
20713
  import * as React82 from "react";
20654
20714
  import { jsx as jsx132 } from "react/jsx-runtime";
20655
- import * as React9 from "react";
20715
+ import * as React92 from "react";
20656
20716
  import * as React10 from "react";
20657
20717
  import { Fragment as Fragment5, jsx as jsx142 } from "react/jsx-runtime";
20658
20718
  import { jsx as jsx152 } from "react/jsx-runtime";
@@ -20662,15 +20722,15 @@ import * as React162 from "react";
20662
20722
  import * as React132 from "react";
20663
20723
  import * as ReactDOM from "react-dom";
20664
20724
  import { jsx as jsx172 } from "react/jsx-runtime";
20665
- import * as React14 from "react";
20666
- import * as React152 from "react";
20725
+ import * as React142 from "react";
20726
+ import * as React15 from "react";
20667
20727
  import { jsx as jsx182 } from "react/jsx-runtime";
20668
- import * as React17 from "react";
20728
+ import * as React172 from "react";
20669
20729
  import * as React18 from "react";
20670
20730
  import { jsx as jsx192 } from "react/jsx-runtime";
20671
20731
  import * as React202 from "react";
20672
- import * as React192 from "react";
20673
- import * as React24 from "react";
20732
+ import * as React19 from "react";
20733
+ import * as React242 from "react";
20674
20734
  import * as React212 from "react";
20675
20735
  import { useLayoutEffect as useLayoutEffect32, useEffect as useEffect82 } from "react";
20676
20736
  import * as ReactDOM2 from "react-dom";
@@ -20688,7 +20748,7 @@ import { jsx as jsx232 } from "react/jsx-runtime";
20688
20748
  import * as React352 from "react";
20689
20749
  import * as React312 from "react";
20690
20750
  import { useState as useState112 } from "react";
20691
- import * as React292 from "react";
20751
+ import * as React29 from "react";
20692
20752
  import * as React302 from "react";
20693
20753
  import * as React342 from "react";
20694
20754
  import * as React332 from "react";
@@ -20696,22 +20756,22 @@ import * as React322 from "react";
20696
20756
  import { Fragment as Fragment8, jsx as jsx242, jsxs as jsxs42 } from "react/jsx-runtime";
20697
20757
  import { forwardRef as forwardRef142, createElement as createElement7 } from "react";
20698
20758
  import { forwardRef as forwardRef132, createElement as createElement6 } from "react";
20699
- import * as React372 from "react";
20759
+ import * as React37 from "react";
20700
20760
  import { jsx as jsx252, jsxs as jsxs5 } from "react/jsx-runtime";
20701
20761
  import { jsx as jsx262 } from "react/jsx-runtime";
20702
20762
  import * as React49 from "react";
20703
- import * as React38 from "react";
20763
+ import * as React382 from "react";
20704
20764
  import { jsx as jsx272 } from "react/jsx-runtime";
20705
20765
  import * as React47 from "react";
20706
20766
  import React402 from "react";
20707
- import * as React392 from "react";
20767
+ import * as React39 from "react";
20708
20768
  import { Fragment as Fragment222, jsx as jsx282 } from "react/jsx-runtime";
20709
20769
  import { jsx as jsx292 } from "react/jsx-runtime";
20710
20770
  import React210 from "react";
20711
20771
  import { jsx as jsx2102 } from "react/jsx-runtime";
20712
20772
  import * as React422 from "react";
20713
20773
  import * as React412 from "react";
20714
- import * as React43 from "react";
20774
+ import * as React432 from "react";
20715
20775
  import * as ReactDOM5 from "react-dom";
20716
20776
  import { jsx as jsx302 } from "react/jsx-runtime";
20717
20777
  import * as React44 from "react";
@@ -20763,7 +20823,7 @@ function useComposedRefs(...refs) {
20763
20823
  return React8.useCallback(composeRefs(...refs), refs);
20764
20824
  }
20765
20825
  var REACT_LAZY_TYPE = Symbol.for("react.lazy");
20766
- var use = React23[" use ".trim().toString()];
20826
+ var use = React24[" use ".trim().toString()];
20767
20827
  function isPromiseLike(value) {
20768
20828
  return typeof value === "object" && value !== null && "then" in value;
20769
20829
  }
@@ -20772,25 +20832,25 @@ function isLazyComponent(element) {
20772
20832
  }
20773
20833
  function createSlot(ownerName) {
20774
20834
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
20775
- const Slot2 = React23.forwardRef((props, forwardedRef) => {
20835
+ const Slot2 = React24.forwardRef((props, forwardedRef) => {
20776
20836
  let { children, ...slotProps } = props;
20777
20837
  if (isLazyComponent(children) && typeof use === "function") {
20778
20838
  children = use(children._payload);
20779
20839
  }
20780
- const childrenArray = React23.Children.toArray(children);
20840
+ const childrenArray = React24.Children.toArray(children);
20781
20841
  const slottable = childrenArray.find(isSlottable);
20782
20842
  if (slottable) {
20783
20843
  const newElement = slottable.props.children;
20784
20844
  const newChildren = childrenArray.map((child) => {
20785
20845
  if (child === slottable) {
20786
- if (React23.Children.count(newElement) > 1)
20787
- return React23.Children.only(null);
20788
- return React23.isValidElement(newElement) ? newElement.props.children : null;
20846
+ if (React24.Children.count(newElement) > 1)
20847
+ return React24.Children.only(null);
20848
+ return React24.isValidElement(newElement) ? newElement.props.children : null;
20789
20849
  } else {
20790
20850
  return child;
20791
20851
  }
20792
20852
  });
20793
- return /* @__PURE__ */ jsx46(SlotClone, { ...slotProps, ref: forwardedRef, children: React23.isValidElement(newElement) ? React23.cloneElement(newElement, undefined, newChildren) : null });
20853
+ return /* @__PURE__ */ jsx46(SlotClone, { ...slotProps, ref: forwardedRef, children: React24.isValidElement(newElement) ? React24.cloneElement(newElement, undefined, newChildren) : null });
20794
20854
  }
20795
20855
  return /* @__PURE__ */ jsx46(SlotClone, { ...slotProps, ref: forwardedRef, children });
20796
20856
  });
@@ -20799,20 +20859,20 @@ function createSlot(ownerName) {
20799
20859
  }
20800
20860
  var Slot = /* @__PURE__ */ createSlot("Slot");
20801
20861
  function createSlotClone(ownerName) {
20802
- const SlotClone = React23.forwardRef((props, forwardedRef) => {
20862
+ const SlotClone = React24.forwardRef((props, forwardedRef) => {
20803
20863
  let { children, ...slotProps } = props;
20804
20864
  if (isLazyComponent(children) && typeof use === "function") {
20805
20865
  children = use(children._payload);
20806
20866
  }
20807
- if (React23.isValidElement(children)) {
20867
+ if (React24.isValidElement(children)) {
20808
20868
  const childrenRef = getElementRef(children);
20809
20869
  const props2 = mergeProps(slotProps, children.props);
20810
- if (children.type !== React23.Fragment) {
20870
+ if (children.type !== React24.Fragment) {
20811
20871
  props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
20812
20872
  }
20813
- return React23.cloneElement(children, props2);
20873
+ return React24.cloneElement(children, props2);
20814
20874
  }
20815
- return React23.Children.count(children) > 1 ? React23.Children.only(null) : null;
20875
+ return React24.Children.count(children) > 1 ? React24.Children.only(null) : null;
20816
20876
  });
20817
20877
  SlotClone.displayName = `${ownerName}.SlotClone`;
20818
20878
  return SlotClone;
@@ -20828,7 +20888,7 @@ function createSlottable(ownerName) {
20828
20888
  }
20829
20889
  var Slottable = /* @__PURE__ */ createSlottable("Slottable");
20830
20890
  function isSlottable(child) {
20831
- return React23.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
20891
+ return React24.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
20832
20892
  }
20833
20893
  function mergeProps(slotProps, childProps) {
20834
20894
  const overrideProps = { ...childProps };
@@ -20885,7 +20945,7 @@ var getChildNodeFrom = (htmlElement) => {
20885
20945
  return childNode;
20886
20946
  };
20887
20947
  var useHoverTransforms = (ref, disabled) => {
20888
- const [state, setState] = React32.useState({
20948
+ const [state, setState] = React33.useState({
20889
20949
  progress: 0,
20890
20950
  isActive: false
20891
20951
  });
@@ -20897,7 +20957,7 @@ var useHoverTransforms = (ref, disabled) => {
20897
20957
  eventTarget.dispatchEvent(new Event("enabled"));
20898
20958
  }
20899
20959
  }, [disabled, eventTarget]);
20900
- React32.useEffect(() => {
20960
+ React33.useEffect(() => {
20901
20961
  const element = ref.current;
20902
20962
  if (!element)
20903
20963
  return;
@@ -20972,8 +21032,8 @@ var useHoverTransforms = (ref, disabled) => {
20972
21032
  return state;
20973
21033
  };
20974
21034
  var useClickTransforms = (ref) => {
20975
- const [hoverProgress, setHoverProgress] = React32.useState(0);
20976
- React32.useEffect(() => {
21035
+ const [hoverProgress, setHoverProgress] = React33.useState(0);
21036
+ React33.useEffect(() => {
20977
21037
  const element = getChildNodeFrom(ref.current);
20978
21038
  if (!element) {
20979
21039
  return;
@@ -21549,7 +21609,7 @@ function composeRefs2(...refs) {
21549
21609
  return (node) => refs.forEach((ref) => setRef22(ref, node));
21550
21610
  }
21551
21611
  function useComposedRefs2(...refs) {
21552
- return React9.useCallback(composeRefs2(...refs), refs);
21612
+ return React92.useCallback(composeRefs2(...refs), refs);
21553
21613
  }
21554
21614
  var Slot2 = React10.forwardRef((props, forwardedRef) => {
21555
21615
  const { children, ...slotProps } = props;
@@ -21631,13 +21691,13 @@ function createCollection(name) {
21631
21691
  const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map });
21632
21692
  const CollectionProvider = (props) => {
21633
21693
  const { scope, children } = props;
21634
- const ref = React112.useRef(null);
21635
- const itemMap = React112.useRef(/* @__PURE__ */ new Map).current;
21694
+ const ref = React11.useRef(null);
21695
+ const itemMap = React11.useRef(/* @__PURE__ */ new Map).current;
21636
21696
  return /* @__PURE__ */ jsx152(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
21637
21697
  };
21638
21698
  CollectionProvider.displayName = PROVIDER_NAME;
21639
21699
  const COLLECTION_SLOT_NAME = name + "CollectionSlot";
21640
- const CollectionSlot = React112.forwardRef((props, forwardedRef) => {
21700
+ const CollectionSlot = React11.forwardRef((props, forwardedRef) => {
21641
21701
  const { scope, children } = props;
21642
21702
  const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
21643
21703
  const composedRefs = useComposedRefs2(forwardedRef, context.collectionRef);
@@ -21646,12 +21706,12 @@ function createCollection(name) {
21646
21706
  CollectionSlot.displayName = COLLECTION_SLOT_NAME;
21647
21707
  const ITEM_SLOT_NAME = name + "CollectionItemSlot";
21648
21708
  const ITEM_DATA_ATTR = "data-radix-collection-item";
21649
- const CollectionItemSlot = React112.forwardRef((props, forwardedRef) => {
21709
+ const CollectionItemSlot = React11.forwardRef((props, forwardedRef) => {
21650
21710
  const { scope, children, ...itemData } = props;
21651
- const ref = React112.useRef(null);
21711
+ const ref = React11.useRef(null);
21652
21712
  const composedRefs = useComposedRefs2(forwardedRef, ref);
21653
21713
  const context = useCollectionContext(ITEM_SLOT_NAME, scope);
21654
- React112.useEffect(() => {
21714
+ React11.useEffect(() => {
21655
21715
  context.itemMap.set(ref, { ref, ...itemData });
21656
21716
  return () => void context.itemMap.delete(ref);
21657
21717
  });
@@ -21660,7 +21720,7 @@ function createCollection(name) {
21660
21720
  CollectionItemSlot.displayName = ITEM_SLOT_NAME;
21661
21721
  function useCollection(scope) {
21662
21722
  const context = useCollectionContext(name + "CollectionConsumer", scope);
21663
- const getItems = React112.useCallback(() => {
21723
+ const getItems = React11.useCallback(() => {
21664
21724
  const collectionNode = context.collectionRef.current;
21665
21725
  if (!collectionNode)
21666
21726
  return [];
@@ -21717,15 +21777,15 @@ function dispatchDiscreteCustomEvent(target, event) {
21717
21777
  ReactDOM.flushSync(() => target.dispatchEvent(event));
21718
21778
  }
21719
21779
  function useCallbackRef(callback) {
21720
- const callbackRef = React14.useRef(callback);
21721
- React14.useEffect(() => {
21780
+ const callbackRef = React142.useRef(callback);
21781
+ React142.useEffect(() => {
21722
21782
  callbackRef.current = callback;
21723
21783
  });
21724
- return React14.useMemo(() => (...args) => callbackRef.current?.(...args), []);
21784
+ return React142.useMemo(() => (...args) => callbackRef.current?.(...args), []);
21725
21785
  }
21726
21786
  function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {
21727
21787
  const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);
21728
- React152.useEffect(() => {
21788
+ React15.useEffect(() => {
21729
21789
  const handleKeyDown = (event) => {
21730
21790
  if (event.key === "Escape") {
21731
21791
  onEscapeKeyDown(event);
@@ -21932,7 +21992,7 @@ function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
21932
21992
  }
21933
21993
  var count = 0;
21934
21994
  function useFocusGuards() {
21935
- React17.useEffect(() => {
21995
+ React172.useEffect(() => {
21936
21996
  const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]");
21937
21997
  document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard());
21938
21998
  document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard());
@@ -22167,7 +22227,7 @@ function arrayRemove(array, item) {
22167
22227
  function removeLinks(items) {
22168
22228
  return items.filter((item) => item.tagName !== "A");
22169
22229
  }
22170
- var useLayoutEffect22 = Boolean(globalThis?.document) ? React192.useLayoutEffect : () => {};
22230
+ var useLayoutEffect22 = Boolean(globalThis?.document) ? React19.useLayoutEffect : () => {};
22171
22231
  var useReactId = React202["useId".toString()] || (() => {
22172
22232
  return;
22173
22233
  });
@@ -24019,17 +24079,17 @@ var [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);
24019
24079
  var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
24020
24080
  var Popper = (props) => {
24021
24081
  const { __scopePopper, children } = props;
24022
- const [anchor, setAnchor] = React24.useState(null);
24082
+ const [anchor, setAnchor] = React242.useState(null);
24023
24083
  return /* @__PURE__ */ jsx213(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
24024
24084
  };
24025
24085
  Popper.displayName = POPPER_NAME;
24026
24086
  var ANCHOR_NAME = "PopperAnchor";
24027
- var PopperAnchor = React24.forwardRef((props, forwardedRef) => {
24087
+ var PopperAnchor = React242.forwardRef((props, forwardedRef) => {
24028
24088
  const { __scopePopper, virtualRef, ...anchorProps } = props;
24029
24089
  const context = usePopperContext(ANCHOR_NAME, __scopePopper);
24030
- const ref = React24.useRef(null);
24090
+ const ref = React242.useRef(null);
24031
24091
  const composedRefs = useComposedRefs2(forwardedRef, ref);
24032
- React24.useEffect(() => {
24092
+ React242.useEffect(() => {
24033
24093
  context.onAnchorChange(virtualRef?.current || ref.current);
24034
24094
  });
24035
24095
  return virtualRef ? null : /* @__PURE__ */ jsx213(Primitive.div, { ...anchorProps, ref: composedRefs });
@@ -24037,7 +24097,7 @@ var PopperAnchor = React24.forwardRef((props, forwardedRef) => {
24037
24097
  PopperAnchor.displayName = ANCHOR_NAME;
24038
24098
  var CONTENT_NAME = "PopperContent";
24039
24099
  var [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);
24040
- var PopperContent = React24.forwardRef((props, forwardedRef) => {
24100
+ var PopperContent = React242.forwardRef((props, forwardedRef) => {
24041
24101
  const {
24042
24102
  __scopePopper,
24043
24103
  side = "bottom",
@@ -24055,9 +24115,9 @@ var PopperContent = React24.forwardRef((props, forwardedRef) => {
24055
24115
  ...contentProps
24056
24116
  } = props;
24057
24117
  const context = usePopperContext(CONTENT_NAME, __scopePopper);
24058
- const [content, setContent] = React24.useState(null);
24118
+ const [content, setContent] = React242.useState(null);
24059
24119
  const composedRefs = useComposedRefs2(forwardedRef, (node) => setContent(node));
24060
- const [arrow4, setArrow] = React24.useState(null);
24120
+ const [arrow4, setArrow] = React242.useState(null);
24061
24121
  const arrowSize = useSize(arrow4);
24062
24122
  const arrowWidth = arrowSize?.width ?? 0;
24063
24123
  const arrowHeight = arrowSize?.height ?? 0;
@@ -24117,7 +24177,7 @@ var PopperContent = React24.forwardRef((props, forwardedRef) => {
24117
24177
  const arrowX = middlewareData.arrow?.x;
24118
24178
  const arrowY = middlewareData.arrow?.y;
24119
24179
  const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
24120
- const [contentZIndex, setContentZIndex] = React24.useState();
24180
+ const [contentZIndex, setContentZIndex] = React242.useState();
24121
24181
  useLayoutEffect22(() => {
24122
24182
  if (content)
24123
24183
  setContentZIndex(window.getComputedStyle(content).zIndex);
@@ -24168,7 +24228,7 @@ var OPPOSITE_SIDE = {
24168
24228
  bottom: "top",
24169
24229
  left: "right"
24170
24230
  };
24171
- var PopperArrow = React24.forwardRef(function PopperArrow2(props, forwardedRef) {
24231
+ var PopperArrow = React242.forwardRef(function PopperArrow2(props, forwardedRef) {
24172
24232
  const { __scopePopper, ...arrowProps } = props;
24173
24233
  const contentContext = useContentContext(ARROW_NAME, __scopePopper);
24174
24234
  const baseSide = OPPOSITE_SIDE[contentContext.placedSide];
@@ -24511,7 +24571,7 @@ function useCallbackRef2(initialValue, callback) {
24511
24571
  ref.callback = callback;
24512
24572
  return ref.facade;
24513
24573
  }
24514
- var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React292.useLayoutEffect : React292.useEffect;
24574
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React29.useLayoutEffect : React29.useEffect;
24515
24575
  var currentValues = new WeakMap;
24516
24576
  function useMergeRefs(refs, defaultValue) {
24517
24577
  var callbackRef = useCallbackRef2(defaultValue || null, function(newValue) {
@@ -25147,9 +25207,9 @@ var Select = (props) => {
25147
25207
  required
25148
25208
  } = props;
25149
25209
  const popperScope = usePopperScope(__scopeSelect);
25150
- const [trigger, setTrigger] = React36.useState(null);
25151
- const [valueNode, setValueNode] = React36.useState(null);
25152
- const [valueNodeHasChildren, setValueNodeHasChildren] = React36.useState(false);
25210
+ const [trigger, setTrigger] = React362.useState(null);
25211
+ const [valueNode, setValueNode] = React362.useState(null);
25212
+ const [valueNodeHasChildren, setValueNodeHasChildren] = React362.useState(false);
25153
25213
  const direction = useDirection(dir);
25154
25214
  const [open = false, setOpen] = useControllableState({
25155
25215
  prop: openProp,
@@ -25161,9 +25221,9 @@ var Select = (props) => {
25161
25221
  defaultProp: defaultValue,
25162
25222
  onChange: onValueChange
25163
25223
  });
25164
- const triggerPointerDownPosRef = React36.useRef(null);
25224
+ const triggerPointerDownPosRef = React362.useRef(null);
25165
25225
  const isFormControl = trigger ? Boolean(trigger.closest("form")) : true;
25166
- const [nativeOptionsSet, setNativeOptionsSet] = React36.useState(/* @__PURE__ */ new Set);
25226
+ const [nativeOptionsSet, setNativeOptionsSet] = React362.useState(/* @__PURE__ */ new Set);
25167
25227
  const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
25168
25228
  return /* @__PURE__ */ jsx242(Root22, { ...popperScope, children: /* @__PURE__ */ jsxs42(SelectProvider, {
25169
25229
  required,
@@ -25185,10 +25245,10 @@ var Select = (props) => {
25185
25245
  children: [
25186
25246
  /* @__PURE__ */ jsx242(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx242(SelectNativeOptionsProvider, {
25187
25247
  scope: props.__scopeSelect,
25188
- onNativeOptionAdd: React36.useCallback((option) => {
25248
+ onNativeOptionAdd: React362.useCallback((option) => {
25189
25249
  setNativeOptionsSet((prev) => new Set(prev).add(option));
25190
25250
  }, []),
25191
- onNativeOptionRemove: React36.useCallback((option) => {
25251
+ onNativeOptionRemove: React362.useCallback((option) => {
25192
25252
  setNativeOptionsSet((prev) => {
25193
25253
  const optionsSet = new Set(prev);
25194
25254
  optionsSet.delete(option);
@@ -25216,7 +25276,7 @@ var Select = (props) => {
25216
25276
  };
25217
25277
  Select.displayName = SELECT_NAME;
25218
25278
  var TRIGGER_NAME = "SelectTrigger";
25219
- var SelectTrigger = React36.forwardRef((props, forwardedRef) => {
25279
+ var SelectTrigger = React362.forwardRef((props, forwardedRef) => {
25220
25280
  const { __scopeSelect, disabled = false, ...triggerProps } = props;
25221
25281
  const popperScope = usePopperScope(__scopeSelect);
25222
25282
  const context = useSelectContext(TRIGGER_NAME, __scopeSelect);
@@ -25284,7 +25344,7 @@ var SelectTrigger = React36.forwardRef((props, forwardedRef) => {
25284
25344
  });
25285
25345
  SelectTrigger.displayName = TRIGGER_NAME;
25286
25346
  var VALUE_NAME = "SelectValue";
25287
- var SelectValue = React36.forwardRef((props, forwardedRef) => {
25347
+ var SelectValue = React362.forwardRef((props, forwardedRef) => {
25288
25348
  const { __scopeSelect, className, style, children, placeholder = "", ...valueProps } = props;
25289
25349
  const context = useSelectContext(VALUE_NAME, __scopeSelect);
25290
25350
  const { onValueNodeHasChildrenChange } = context;
@@ -25302,7 +25362,7 @@ var SelectValue = React36.forwardRef((props, forwardedRef) => {
25302
25362
  });
25303
25363
  SelectValue.displayName = VALUE_NAME;
25304
25364
  var ICON_NAME = "SelectIcon";
25305
- var SelectIcon = React36.forwardRef((props, forwardedRef) => {
25365
+ var SelectIcon = React362.forwardRef((props, forwardedRef) => {
25306
25366
  const { __scopeSelect, children, ...iconProps } = props;
25307
25367
  return /* @__PURE__ */ jsx242(Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "▼" });
25308
25368
  });
@@ -25313,9 +25373,9 @@ var SelectPortal = (props) => {
25313
25373
  };
25314
25374
  SelectPortal.displayName = PORTAL_NAME2;
25315
25375
  var CONTENT_NAME2 = "SelectContent";
25316
- var SelectContent = React36.forwardRef((props, forwardedRef) => {
25376
+ var SelectContent = React362.forwardRef((props, forwardedRef) => {
25317
25377
  const context = useSelectContext(CONTENT_NAME2, props.__scopeSelect);
25318
- const [fragment, setFragment] = React36.useState();
25378
+ const [fragment, setFragment] = React362.useState();
25319
25379
  useLayoutEffect22(() => {
25320
25380
  setFragment(new DocumentFragment);
25321
25381
  }, []);
@@ -25329,7 +25389,7 @@ SelectContent.displayName = CONTENT_NAME2;
25329
25389
  var CONTENT_MARGIN = 10;
25330
25390
  var [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME2);
25331
25391
  var CONTENT_IMPL_NAME = "SelectContentImpl";
25332
- var SelectContentImpl = React36.forwardRef((props, forwardedRef) => {
25392
+ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
25333
25393
  const {
25334
25394
  __scopeSelect,
25335
25395
  position = "item-aligned",
@@ -25349,20 +25409,20 @@ var SelectContentImpl = React36.forwardRef((props, forwardedRef) => {
25349
25409
  ...contentProps
25350
25410
  } = props;
25351
25411
  const context = useSelectContext(CONTENT_NAME2, __scopeSelect);
25352
- const [content, setContent] = React36.useState(null);
25353
- const [viewport, setViewport] = React36.useState(null);
25412
+ const [content, setContent] = React362.useState(null);
25413
+ const [viewport, setViewport] = React362.useState(null);
25354
25414
  const composedRefs = useComposedRefs2(forwardedRef, (node) => setContent(node));
25355
- const [selectedItem, setSelectedItem] = React36.useState(null);
25356
- const [selectedItemText, setSelectedItemText] = React36.useState(null);
25415
+ const [selectedItem, setSelectedItem] = React362.useState(null);
25416
+ const [selectedItemText, setSelectedItemText] = React362.useState(null);
25357
25417
  const getItems = useCollection(__scopeSelect);
25358
- const [isPositioned, setIsPositioned] = React36.useState(false);
25359
- const firstValidItemFoundRef = React36.useRef(false);
25360
- React36.useEffect(() => {
25418
+ const [isPositioned, setIsPositioned] = React362.useState(false);
25419
+ const firstValidItemFoundRef = React362.useRef(false);
25420
+ React362.useEffect(() => {
25361
25421
  if (content)
25362
25422
  return hideOthers(content);
25363
25423
  }, [content]);
25364
25424
  useFocusGuards();
25365
- const focusFirst2 = React36.useCallback((candidates) => {
25425
+ const focusFirst2 = React362.useCallback((candidates) => {
25366
25426
  const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);
25367
25427
  const [lastItem] = restItems.slice(-1);
25368
25428
  const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
@@ -25379,14 +25439,14 @@ var SelectContentImpl = React36.forwardRef((props, forwardedRef) => {
25379
25439
  return;
25380
25440
  }
25381
25441
  }, [getItems, viewport]);
25382
- const focusSelectedItem = React36.useCallback(() => focusFirst2([selectedItem, content]), [focusFirst2, selectedItem, content]);
25383
- React36.useEffect(() => {
25442
+ const focusSelectedItem = React362.useCallback(() => focusFirst2([selectedItem, content]), [focusFirst2, selectedItem, content]);
25443
+ React362.useEffect(() => {
25384
25444
  if (isPositioned) {
25385
25445
  focusSelectedItem();
25386
25446
  }
25387
25447
  }, [isPositioned, focusSelectedItem]);
25388
25448
  const { onOpenChange, triggerPointerDownPosRef } = context;
25389
- React36.useEffect(() => {
25449
+ React362.useEffect(() => {
25390
25450
  if (content) {
25391
25451
  let pointerMoveDelta = { x: 0, y: 0 };
25392
25452
  const handlePointerMove = (event) => {
@@ -25416,7 +25476,7 @@ var SelectContentImpl = React36.forwardRef((props, forwardedRef) => {
25416
25476
  };
25417
25477
  }
25418
25478
  }, [content, onOpenChange, triggerPointerDownPosRef]);
25419
- React36.useEffect(() => {
25479
+ React362.useEffect(() => {
25420
25480
  const close = () => onOpenChange(false);
25421
25481
  window.addEventListener("blur", close);
25422
25482
  window.addEventListener("resize", close);
@@ -25433,7 +25493,7 @@ var SelectContentImpl = React36.forwardRef((props, forwardedRef) => {
25433
25493
  setTimeout(() => nextItem.ref.current.focus());
25434
25494
  }
25435
25495
  });
25436
- const itemRefCallback = React36.useCallback((node, value, disabled) => {
25496
+ const itemRefCallback = React362.useCallback((node, value, disabled) => {
25437
25497
  const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
25438
25498
  const isSelectedItem = context.value !== undefined && context.value === value;
25439
25499
  if (isSelectedItem || isFirstValidItem) {
@@ -25442,8 +25502,8 @@ var SelectContentImpl = React36.forwardRef((props, forwardedRef) => {
25442
25502
  firstValidItemFoundRef.current = true;
25443
25503
  }
25444
25504
  }, [context.value]);
25445
- const handleItemLeave = React36.useCallback(() => content?.focus(), [content]);
25446
- const itemTextRefCallback = React36.useCallback((node, value, disabled) => {
25505
+ const handleItemLeave = React362.useCallback(() => content?.focus(), [content]);
25506
+ const itemTextRefCallback = React362.useCallback((node, value, disabled) => {
25447
25507
  const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
25448
25508
  const isSelectedItem = context.value !== undefined && context.value === value;
25449
25509
  if (isSelectedItem || isFirstValidItem) {
@@ -25538,18 +25598,18 @@ var SelectContentImpl = React36.forwardRef((props, forwardedRef) => {
25538
25598
  });
25539
25599
  SelectContentImpl.displayName = CONTENT_IMPL_NAME;
25540
25600
  var ITEM_ALIGNED_POSITION_NAME = "SelectItemAlignedPosition";
25541
- var SelectItemAlignedPosition = React36.forwardRef((props, forwardedRef) => {
25601
+ var SelectItemAlignedPosition = React362.forwardRef((props, forwardedRef) => {
25542
25602
  const { __scopeSelect, onPlaced, ...popperProps } = props;
25543
25603
  const context = useSelectContext(CONTENT_NAME2, __scopeSelect);
25544
25604
  const contentContext = useSelectContentContext(CONTENT_NAME2, __scopeSelect);
25545
- const [contentWrapper, setContentWrapper] = React36.useState(null);
25546
- const [content, setContent] = React36.useState(null);
25605
+ const [contentWrapper, setContentWrapper] = React362.useState(null);
25606
+ const [content, setContent] = React362.useState(null);
25547
25607
  const composedRefs = useComposedRefs2(forwardedRef, (node) => setContent(node));
25548
25608
  const getItems = useCollection(__scopeSelect);
25549
- const shouldExpandOnScrollRef = React36.useRef(false);
25550
- const shouldRepositionRef = React36.useRef(true);
25609
+ const shouldExpandOnScrollRef = React362.useRef(false);
25610
+ const shouldRepositionRef = React362.useRef(true);
25551
25611
  const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;
25552
- const position = React36.useCallback(() => {
25612
+ const position = React362.useCallback(() => {
25553
25613
  if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {
25554
25614
  const triggerRect = context.trigger.getBoundingClientRect();
25555
25615
  const contentRect = content.getBoundingClientRect();
@@ -25630,12 +25690,12 @@ var SelectItemAlignedPosition = React36.forwardRef((props, forwardedRef) => {
25630
25690
  onPlaced
25631
25691
  ]);
25632
25692
  useLayoutEffect22(() => position(), [position]);
25633
- const [contentZIndex, setContentZIndex] = React36.useState();
25693
+ const [contentZIndex, setContentZIndex] = React362.useState();
25634
25694
  useLayoutEffect22(() => {
25635
25695
  if (content)
25636
25696
  setContentZIndex(window.getComputedStyle(content).zIndex);
25637
25697
  }, [content]);
25638
- const handleScrollButtonChange = React36.useCallback((node) => {
25698
+ const handleScrollButtonChange = React362.useCallback((node) => {
25639
25699
  if (node && shouldRepositionRef.current === true) {
25640
25700
  position();
25641
25701
  focusSelectedItem?.();
@@ -25669,7 +25729,7 @@ var SelectItemAlignedPosition = React36.forwardRef((props, forwardedRef) => {
25669
25729
  });
25670
25730
  SelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;
25671
25731
  var POPPER_POSITION_NAME = "SelectPopperPosition";
25672
- var SelectPopperPosition = React36.forwardRef((props, forwardedRef) => {
25732
+ var SelectPopperPosition = React362.forwardRef((props, forwardedRef) => {
25673
25733
  const {
25674
25734
  __scopeSelect,
25675
25735
  align = "start",
@@ -25699,12 +25759,12 @@ var SelectPopperPosition = React36.forwardRef((props, forwardedRef) => {
25699
25759
  SelectPopperPosition.displayName = POPPER_POSITION_NAME;
25700
25760
  var [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME2, {});
25701
25761
  var VIEWPORT_NAME = "SelectViewport";
25702
- var SelectViewport = React36.forwardRef((props, forwardedRef) => {
25762
+ var SelectViewport = React362.forwardRef((props, forwardedRef) => {
25703
25763
  const { __scopeSelect, nonce, ...viewportProps } = props;
25704
25764
  const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);
25705
25765
  const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
25706
25766
  const composedRefs = useComposedRefs2(forwardedRef, contentContext.onViewportChange);
25707
- const prevScrollTopRef = React36.useRef(0);
25767
+ const prevScrollTopRef = React362.useRef(0);
25708
25768
  return /* @__PURE__ */ jsxs42(Fragment8, { children: [
25709
25769
  /* @__PURE__ */ jsx242("style", {
25710
25770
  dangerouslySetInnerHTML: {
@@ -25753,14 +25813,14 @@ var SelectViewport = React36.forwardRef((props, forwardedRef) => {
25753
25813
  SelectViewport.displayName = VIEWPORT_NAME;
25754
25814
  var GROUP_NAME = "SelectGroup";
25755
25815
  var [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);
25756
- var SelectGroup = React36.forwardRef((props, forwardedRef) => {
25816
+ var SelectGroup = React362.forwardRef((props, forwardedRef) => {
25757
25817
  const { __scopeSelect, ...groupProps } = props;
25758
25818
  const groupId = useId();
25759
25819
  return /* @__PURE__ */ jsx242(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx242(Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
25760
25820
  });
25761
25821
  SelectGroup.displayName = GROUP_NAME;
25762
25822
  var LABEL_NAME = "SelectLabel";
25763
- var SelectLabel = React36.forwardRef((props, forwardedRef) => {
25823
+ var SelectLabel = React362.forwardRef((props, forwardedRef) => {
25764
25824
  const { __scopeSelect, ...labelProps } = props;
25765
25825
  const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
25766
25826
  return /* @__PURE__ */ jsx242(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
@@ -25768,7 +25828,7 @@ var SelectLabel = React36.forwardRef((props, forwardedRef) => {
25768
25828
  SelectLabel.displayName = LABEL_NAME;
25769
25829
  var ITEM_NAME = "SelectItem";
25770
25830
  var [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);
25771
- var SelectItem = React36.forwardRef((props, forwardedRef) => {
25831
+ var SelectItem = React362.forwardRef((props, forwardedRef) => {
25772
25832
  const {
25773
25833
  __scopeSelect,
25774
25834
  value,
@@ -25779,8 +25839,8 @@ var SelectItem = React36.forwardRef((props, forwardedRef) => {
25779
25839
  const context = useSelectContext(ITEM_NAME, __scopeSelect);
25780
25840
  const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);
25781
25841
  const isSelected = context.value === value;
25782
- const [textValue, setTextValue] = React36.useState(textValueProp ?? "");
25783
- const [isFocused, setIsFocused] = React36.useState(false);
25842
+ const [textValue, setTextValue] = React362.useState(textValueProp ?? "");
25843
+ const [isFocused, setIsFocused] = React362.useState(false);
25784
25844
  const composedRefs = useComposedRefs2(forwardedRef, (node) => contentContext.itemRefCallback?.(node, value, disabled));
25785
25845
  const textId = useId();
25786
25846
  const handleSelect = () => {
@@ -25798,7 +25858,7 @@ var SelectItem = React36.forwardRef((props, forwardedRef) => {
25798
25858
  disabled,
25799
25859
  textId,
25800
25860
  isSelected,
25801
- onItemTextChange: React36.useCallback((node) => {
25861
+ onItemTextChange: React362.useCallback((node) => {
25802
25862
  setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? "").trim());
25803
25863
  }, []),
25804
25864
  children: /* @__PURE__ */ jsx242(Collection.ItemSlot, {
@@ -25847,16 +25907,16 @@ var SelectItem = React36.forwardRef((props, forwardedRef) => {
25847
25907
  });
25848
25908
  SelectItem.displayName = ITEM_NAME;
25849
25909
  var ITEM_TEXT_NAME = "SelectItemText";
25850
- var SelectItemText = React36.forwardRef((props, forwardedRef) => {
25910
+ var SelectItemText = React362.forwardRef((props, forwardedRef) => {
25851
25911
  const { __scopeSelect, className, style, ...itemTextProps } = props;
25852
25912
  const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);
25853
25913
  const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);
25854
25914
  const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);
25855
25915
  const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);
25856
- const [itemTextNode, setItemTextNode] = React36.useState(null);
25916
+ const [itemTextNode, setItemTextNode] = React362.useState(null);
25857
25917
  const composedRefs = useComposedRefs2(forwardedRef, (node) => setItemTextNode(node), itemContext.onItemTextChange, (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled));
25858
25918
  const textContent = itemTextNode?.textContent;
25859
- const nativeOption = React36.useMemo(() => /* @__PURE__ */ jsx242("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value), [itemContext.disabled, itemContext.value, textContent]);
25919
+ const nativeOption = React362.useMemo(() => /* @__PURE__ */ jsx242("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value), [itemContext.disabled, itemContext.value, textContent]);
25860
25920
  const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;
25861
25921
  useLayoutEffect22(() => {
25862
25922
  onNativeOptionAdd(nativeOption);
@@ -25869,17 +25929,17 @@ var SelectItemText = React36.forwardRef((props, forwardedRef) => {
25869
25929
  });
25870
25930
  SelectItemText.displayName = ITEM_TEXT_NAME;
25871
25931
  var ITEM_INDICATOR_NAME = "SelectItemIndicator";
25872
- var SelectItemIndicator = React36.forwardRef((props, forwardedRef) => {
25932
+ var SelectItemIndicator = React362.forwardRef((props, forwardedRef) => {
25873
25933
  const { __scopeSelect, ...itemIndicatorProps } = props;
25874
25934
  const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
25875
25935
  return itemContext.isSelected ? /* @__PURE__ */ jsx242(Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
25876
25936
  });
25877
25937
  SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
25878
25938
  var SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
25879
- var SelectScrollUpButton = React36.forwardRef((props, forwardedRef) => {
25939
+ var SelectScrollUpButton = React362.forwardRef((props, forwardedRef) => {
25880
25940
  const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
25881
25941
  const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
25882
- const [canScrollUp, setCanScrollUp] = React36.useState(false);
25942
+ const [canScrollUp, setCanScrollUp] = React362.useState(false);
25883
25943
  const composedRefs = useComposedRefs2(forwardedRef, viewportContext.onScrollButtonChange);
25884
25944
  useLayoutEffect22(() => {
25885
25945
  if (contentContext.viewport && contentContext.isPositioned) {
@@ -25907,10 +25967,10 @@ var SelectScrollUpButton = React36.forwardRef((props, forwardedRef) => {
25907
25967
  });
25908
25968
  SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
25909
25969
  var SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
25910
- var SelectScrollDownButton = React36.forwardRef((props, forwardedRef) => {
25970
+ var SelectScrollDownButton = React362.forwardRef((props, forwardedRef) => {
25911
25971
  const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
25912
25972
  const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
25913
- const [canScrollDown, setCanScrollDown] = React36.useState(false);
25973
+ const [canScrollDown, setCanScrollDown] = React362.useState(false);
25914
25974
  const composedRefs = useComposedRefs2(forwardedRef, viewportContext.onScrollButtonChange);
25915
25975
  useLayoutEffect22(() => {
25916
25976
  if (contentContext.viewport && contentContext.isPositioned) {
@@ -25938,18 +25998,18 @@ var SelectScrollDownButton = React36.forwardRef((props, forwardedRef) => {
25938
25998
  }) : null;
25939
25999
  });
25940
26000
  SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
25941
- var SelectScrollButtonImpl = React36.forwardRef((props, forwardedRef) => {
26001
+ var SelectScrollButtonImpl = React362.forwardRef((props, forwardedRef) => {
25942
26002
  const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;
25943
26003
  const contentContext = useSelectContentContext("SelectScrollButton", __scopeSelect);
25944
- const autoScrollTimerRef = React36.useRef(null);
26004
+ const autoScrollTimerRef = React362.useRef(null);
25945
26005
  const getItems = useCollection(__scopeSelect);
25946
- const clearAutoScrollTimer = React36.useCallback(() => {
26006
+ const clearAutoScrollTimer = React362.useCallback(() => {
25947
26007
  if (autoScrollTimerRef.current !== null) {
25948
26008
  window.clearInterval(autoScrollTimerRef.current);
25949
26009
  autoScrollTimerRef.current = null;
25950
26010
  }
25951
26011
  }, []);
25952
- React36.useEffect(() => {
26012
+ React362.useEffect(() => {
25953
26013
  return () => clearAutoScrollTimer();
25954
26014
  }, [clearAutoScrollTimer]);
25955
26015
  useLayoutEffect22(() => {
@@ -25978,13 +26038,13 @@ var SelectScrollButtonImpl = React36.forwardRef((props, forwardedRef) => {
25978
26038
  });
25979
26039
  });
25980
26040
  var SEPARATOR_NAME = "SelectSeparator";
25981
- var SelectSeparator = React36.forwardRef((props, forwardedRef) => {
26041
+ var SelectSeparator = React362.forwardRef((props, forwardedRef) => {
25982
26042
  const { __scopeSelect, ...separatorProps } = props;
25983
26043
  return /* @__PURE__ */ jsx242(Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
25984
26044
  });
25985
26045
  SelectSeparator.displayName = SEPARATOR_NAME;
25986
26046
  var ARROW_NAME2 = "SelectArrow";
25987
- var SelectArrow = React36.forwardRef((props, forwardedRef) => {
26047
+ var SelectArrow = React362.forwardRef((props, forwardedRef) => {
25988
26048
  const { __scopeSelect, ...arrowProps } = props;
25989
26049
  const popperScope = usePopperScope(__scopeSelect);
25990
26050
  const context = useSelectContext(ARROW_NAME2, __scopeSelect);
@@ -25995,12 +26055,12 @@ SelectArrow.displayName = ARROW_NAME2;
25995
26055
  function shouldShowPlaceholder(value) {
25996
26056
  return value === "" || value === undefined;
25997
26057
  }
25998
- var BubbleSelect = React36.forwardRef((props, forwardedRef) => {
26058
+ var BubbleSelect = React362.forwardRef((props, forwardedRef) => {
25999
26059
  const { value, ...selectProps } = props;
26000
- const ref = React36.useRef(null);
26060
+ const ref = React362.useRef(null);
26001
26061
  const composedRefs = useComposedRefs2(forwardedRef, ref);
26002
26062
  const prevValue = usePrevious(value);
26003
- React36.useEffect(() => {
26063
+ React362.useEffect(() => {
26004
26064
  const select = ref.current;
26005
26065
  const selectProto = window.HTMLSelectElement.prototype;
26006
26066
  const descriptor = Object.getOwnPropertyDescriptor(selectProto, "value");
@@ -26016,9 +26076,9 @@ var BubbleSelect = React36.forwardRef((props, forwardedRef) => {
26016
26076
  BubbleSelect.displayName = "BubbleSelect";
26017
26077
  function useTypeaheadSearch(onSearchChange) {
26018
26078
  const handleSearchChange = useCallbackRef(onSearchChange);
26019
- const searchRef = React36.useRef("");
26020
- const timerRef = React36.useRef(0);
26021
- const handleTypeaheadSearch = React36.useCallback((key) => {
26079
+ const searchRef = React362.useRef("");
26080
+ const timerRef = React362.useRef(0);
26081
+ const handleTypeaheadSearch = React362.useCallback((key) => {
26022
26082
  const search = searchRef.current + key;
26023
26083
  handleSearchChange(search);
26024
26084
  (function updateSearch(value) {
@@ -26028,11 +26088,11 @@ function useTypeaheadSearch(onSearchChange) {
26028
26088
  timerRef.current = window.setTimeout(() => updateSearch(""), 1000);
26029
26089
  })(search);
26030
26090
  }, [handleSearchChange]);
26031
- const resetTypeahead = React36.useCallback(() => {
26091
+ const resetTypeahead = React362.useCallback(() => {
26032
26092
  searchRef.current = "";
26033
26093
  window.clearTimeout(timerRef.current);
26034
26094
  }, []);
26035
- React36.useEffect(() => {
26095
+ React362.useEffect(() => {
26036
26096
  return () => window.clearTimeout(timerRef.current);
26037
26097
  }, []);
26038
26098
  return [searchRef, handleTypeaheadSearch, resetTypeahead];
@@ -26121,7 +26181,7 @@ var ChevronDown = createLucideIcon("ChevronDown", [
26121
26181
  var ChevronUp = createLucideIcon("ChevronUp", [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]]);
26122
26182
  var Select2 = Root222;
26123
26183
  var SelectValue2 = Value;
26124
- var SelectTrigger2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(Trigger, {
26184
+ var SelectTrigger2 = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(Trigger, {
26125
26185
  ref,
26126
26186
  className: cn("flex h-10 w-full items-center justify-between rounded-md border-black border-2 border-b-4 bg-card-bg px-3 py-5 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 font-brand", className),
26127
26187
  ...props,
@@ -26136,7 +26196,7 @@ var SelectTrigger2 = React372.forwardRef(({ className, children, ...props }, ref
26136
26196
  ]
26137
26197
  }));
26138
26198
  SelectTrigger2.displayName = Trigger.displayName;
26139
- var SelectScrollUpButton2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(ScrollUpButton, {
26199
+ var SelectScrollUpButton2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(ScrollUpButton, {
26140
26200
  ref,
26141
26201
  className: cn("flex cursor-default items-center justify-center py-1", className),
26142
26202
  ...props,
@@ -26145,7 +26205,7 @@ var SelectScrollUpButton2 = React372.forwardRef(({ className, ...props }, ref) =
26145
26205
  })
26146
26206
  }));
26147
26207
  SelectScrollUpButton2.displayName = ScrollUpButton.displayName;
26148
- var SelectScrollDownButton2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(ScrollDownButton, {
26208
+ var SelectScrollDownButton2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(ScrollDownButton, {
26149
26209
  ref,
26150
26210
  className: cn("flex cursor-default items-center justify-center py-1", className),
26151
26211
  ...props,
@@ -26154,7 +26214,7 @@ var SelectScrollDownButton2 = React372.forwardRef(({ className, ...props }, ref)
26154
26214
  })
26155
26215
  }));
26156
26216
  SelectScrollDownButton2.displayName = ScrollDownButton.displayName;
26157
- var SelectContent2 = React372.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx252(Portal2, {
26217
+ var SelectContent2 = React37.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx252(Portal2, {
26158
26218
  children: /* @__PURE__ */ jsxs5(Content2, {
26159
26219
  ref,
26160
26220
  className: cn(" border-2 border-black relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md font-brand bg-card-bg text-text shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
@@ -26171,13 +26231,13 @@ var SelectContent2 = React372.forwardRef(({ className, children, position = "pop
26171
26231
  })
26172
26232
  }));
26173
26233
  SelectContent2.displayName = Content2.displayName;
26174
- var SelectLabel2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(Label, {
26234
+ var SelectLabel2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(Label, {
26175
26235
  ref,
26176
26236
  className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className),
26177
26237
  ...props
26178
26238
  }));
26179
26239
  SelectLabel2.displayName = Label.displayName;
26180
- var SelectItem2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(Item, {
26240
+ var SelectItem2 = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(Item, {
26181
26241
  ref,
26182
26242
  className: cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-slate-200 dark:focus:bg-white/10 data-disabled:pointer-events-none data-disabled:opacity-50 font-brand", className),
26183
26243
  ...props,
@@ -26196,7 +26256,7 @@ var SelectItem2 = React372.forwardRef(({ className, children, ...props }, ref) =
26196
26256
  ]
26197
26257
  }));
26198
26258
  SelectItem2.displayName = Item.displayName;
26199
- var SelectSeparator2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(Separator, {
26259
+ var SelectSeparator2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(Separator, {
26200
26260
  ref,
26201
26261
  className: cn("-mx-1 my-1 h-px bg-muted", className),
26202
26262
  ...props
@@ -26229,19 +26289,19 @@ function composeEventHandlers2(originalEventHandler, ourEventHandler, { checkFor
26229
26289
  function createContextScope2(scopeName, createContextScopeDeps = []) {
26230
26290
  let defaultContexts = [];
26231
26291
  function createContext32(rootComponentName, defaultContext) {
26232
- const BaseContext = React38.createContext(defaultContext);
26292
+ const BaseContext = React382.createContext(defaultContext);
26233
26293
  const index2 = defaultContexts.length;
26234
26294
  defaultContexts = [...defaultContexts, defaultContext];
26235
26295
  const Provider = (props) => {
26236
26296
  const { scope, children, ...context } = props;
26237
26297
  const Context = scope?.[scopeName]?.[index2] || BaseContext;
26238
- const value = React38.useMemo(() => context, Object.values(context));
26298
+ const value = React382.useMemo(() => context, Object.values(context));
26239
26299
  return /* @__PURE__ */ jsx272(Context.Provider, { value, children });
26240
26300
  };
26241
26301
  Provider.displayName = rootComponentName + "Provider";
26242
26302
  function useContext222(consumerName, scope) {
26243
26303
  const Context = scope?.[scopeName]?.[index2] || BaseContext;
26244
- const context = React38.useContext(Context);
26304
+ const context = React382.useContext(Context);
26245
26305
  if (context)
26246
26306
  return context;
26247
26307
  if (defaultContext !== undefined)
@@ -26252,11 +26312,11 @@ function createContextScope2(scopeName, createContextScopeDeps = []) {
26252
26312
  }
26253
26313
  const createScope = () => {
26254
26314
  const scopeContexts = defaultContexts.map((defaultContext) => {
26255
- return React38.createContext(defaultContext);
26315
+ return React382.createContext(defaultContext);
26256
26316
  });
26257
26317
  return function useScope(scope) {
26258
26318
  const contexts = scope?.[scopeName] || scopeContexts;
26259
- return React38.useMemo(() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), [scope, contexts]);
26319
+ return React382.useMemo(() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), [scope, contexts]);
26260
26320
  };
26261
26321
  };
26262
26322
  createScope.scopeName = scopeName;
@@ -26277,7 +26337,7 @@ function composeContextScopes2(...scopes) {
26277
26337
  const currentScope = scopeProps[`__scope${scopeName}`];
26278
26338
  return { ...nextScopes2, ...currentScope };
26279
26339
  }, {});
26280
- return React38.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
26340
+ return React382.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
26281
26341
  };
26282
26342
  };
26283
26343
  createScope.scopeName = baseScope.scopeName;
@@ -26285,22 +26345,22 @@ function composeContextScopes2(...scopes) {
26285
26345
  }
26286
26346
  function createSlot2(ownerName) {
26287
26347
  const SlotClone2 = /* @__PURE__ */ createSlotClone2(ownerName);
26288
- const Slot22 = React392.forwardRef((props, forwardedRef) => {
26348
+ const Slot22 = React39.forwardRef((props, forwardedRef) => {
26289
26349
  const { children, ...slotProps } = props;
26290
- const childrenArray = React392.Children.toArray(children);
26350
+ const childrenArray = React39.Children.toArray(children);
26291
26351
  const slottable = childrenArray.find(isSlottable3);
26292
26352
  if (slottable) {
26293
26353
  const newElement = slottable.props.children;
26294
26354
  const newChildren = childrenArray.map((child) => {
26295
26355
  if (child === slottable) {
26296
- if (React392.Children.count(newElement) > 1)
26297
- return React392.Children.only(null);
26298
- return React392.isValidElement(newElement) ? newElement.props.children : null;
26356
+ if (React39.Children.count(newElement) > 1)
26357
+ return React39.Children.only(null);
26358
+ return React39.isValidElement(newElement) ? newElement.props.children : null;
26299
26359
  } else {
26300
26360
  return child;
26301
26361
  }
26302
26362
  });
26303
- return /* @__PURE__ */ jsx282(SlotClone2, { ...slotProps, ref: forwardedRef, children: React392.isValidElement(newElement) ? React392.cloneElement(newElement, undefined, newChildren) : null });
26363
+ return /* @__PURE__ */ jsx282(SlotClone2, { ...slotProps, ref: forwardedRef, children: React39.isValidElement(newElement) ? React39.cloneElement(newElement, undefined, newChildren) : null });
26304
26364
  }
26305
26365
  return /* @__PURE__ */ jsx282(SlotClone2, { ...slotProps, ref: forwardedRef, children });
26306
26366
  });
@@ -26308,24 +26368,24 @@ function createSlot2(ownerName) {
26308
26368
  return Slot22;
26309
26369
  }
26310
26370
  function createSlotClone2(ownerName) {
26311
- const SlotClone2 = React392.forwardRef((props, forwardedRef) => {
26371
+ const SlotClone2 = React39.forwardRef((props, forwardedRef) => {
26312
26372
  const { children, ...slotProps } = props;
26313
- if (React392.isValidElement(children)) {
26373
+ if (React39.isValidElement(children)) {
26314
26374
  const childrenRef = getElementRef3(children);
26315
26375
  const props2 = mergeProps3(slotProps, children.props);
26316
- if (children.type !== React392.Fragment) {
26376
+ if (children.type !== React39.Fragment) {
26317
26377
  props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
26318
26378
  }
26319
- return React392.cloneElement(children, props2);
26379
+ return React39.cloneElement(children, props2);
26320
26380
  }
26321
- return React392.Children.count(children) > 1 ? React392.Children.only(null) : null;
26381
+ return React39.Children.count(children) > 1 ? React39.Children.only(null) : null;
26322
26382
  });
26323
26383
  SlotClone2.displayName = `${ownerName}.SlotClone`;
26324
26384
  return SlotClone2;
26325
26385
  }
26326
26386
  var SLOTTABLE_IDENTIFIER2 = Symbol("radix.slottable");
26327
26387
  function isSlottable3(child) {
26328
- return React392.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER2;
26388
+ return React39.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER2;
26329
26389
  }
26330
26390
  function mergeProps3(slotProps, childProps) {
26331
26391
  const overrideProps = { ...childProps };
@@ -26753,7 +26813,7 @@ var NODES2 = [
26753
26813
  ];
26754
26814
  var Primitive2 = NODES2.reduce((primitive, node) => {
26755
26815
  const Slot3 = createSlot2(`Primitive.${node}`);
26756
- const Node2 = React43.forwardRef((props, forwardedRef) => {
26816
+ const Node2 = React432.forwardRef((props, forwardedRef) => {
26757
26817
  const { asChild, ...primitiveProps } = props;
26758
26818
  const Comp = asChild ? Slot3 : node;
26759
26819
  if (typeof window !== "undefined") {
@@ -40740,6 +40800,12 @@ var AudioForRendering2 = ({
40740
40800
  };
40741
40801
  var { validateMediaProps: validateMediaProps2 } = Internals;
40742
40802
  var audioSchema = {
40803
+ src: {
40804
+ type: "asset",
40805
+ default: undefined,
40806
+ description: "Source",
40807
+ keyframable: false
40808
+ },
40743
40809
  ...Internals.baseSchema,
40744
40810
  volume: {
40745
40811
  type: "number",
@@ -40850,6 +40916,24 @@ var Audio2 = Interactive.withSchema({
40850
40916
  schema: audioSchema,
40851
40917
  supportsEffects: false
40852
40918
  });
40919
+ var getVideoSequenceDuration = ({
40920
+ durationInFrames,
40921
+ loop,
40922
+ playbackRate,
40923
+ trimAfter,
40924
+ trimBefore
40925
+ }) => {
40926
+ if (loop || trimAfter === undefined) {
40927
+ return durationInFrames;
40928
+ }
40929
+ const trimmedDuration = Internals.calculateMediaDuration({
40930
+ trimAfter,
40931
+ trimBefore,
40932
+ playbackRate,
40933
+ mediaDurationInFrames: Infinity
40934
+ });
40935
+ return Math.min(durationInFrames ?? Infinity, trimmedDuration);
40936
+ };
40853
40937
  var PRORES_DOCS_URL = "https://www.remotion.dev/docs/videos/prores";
40854
40938
  var proresDecoderNotEnabledMessage = (src) => {
40855
40939
  return `Cannot decode "${src}": it is encoded with Apple ProRes, which WebCodecs does not support natively. ` + `ProRes decoding is not enabled by default. Register the ProRes decoder by calling ` + `registerProresDecoder() from "@mediabunny/prores" in your entry point, before registerRoot(). ` + `See ${PRORES_DOCS_URL}. ` + `(This is required to decode a ProRes source for both preview and rendering — it is unrelated to exporting a video as ProRes.)`;
@@ -41624,6 +41708,12 @@ var VideoForRendering2 = ({
41624
41708
  };
41625
41709
  var { validateMediaTrimProps: validateMediaTrimProps2, resolveTrimProps: resolveTrimProps2, validateMediaProps: validateMediaProps22 } = Internals;
41626
41710
  var videoSchema = {
41711
+ src: {
41712
+ type: "asset",
41713
+ default: undefined,
41714
+ description: "Source",
41715
+ keyframable: false
41716
+ },
41627
41717
  ...Internals.baseSchema,
41628
41718
  volume: {
41629
41719
  type: "number",
@@ -41643,6 +41733,7 @@ var videoSchema = {
41643
41733
  hiddenFromList: false,
41644
41734
  keyframable: false
41645
41735
  },
41736
+ muted: { type: "boolean", default: false, description: "Muted" },
41646
41737
  loop: { type: "boolean", default: false, description: "Loop" },
41647
41738
  ...Internals.transformSchema
41648
41739
  };
@@ -41801,6 +41892,13 @@ var VideoInner = ({
41801
41892
  const mediaStartsAt = Internals.useMediaStartsAt();
41802
41893
  const videoConfig = useVideoConfig();
41803
41894
  const sequenceDurationInFrames = Math.min(durationInFrames ?? Infinity, Math.max(0, videoConfig.durationInFrames - (from ?? 0)));
41895
+ const videoSequenceDuration = getVideoSequenceDuration({
41896
+ durationInFrames,
41897
+ loop: loop ?? false,
41898
+ playbackRate: playbackRate ?? 1,
41899
+ trimAfter,
41900
+ trimBefore
41901
+ });
41804
41902
  const basicInfo = Internals.useBasicMediaInTimeline({
41805
41903
  src,
41806
41904
  volume,
@@ -41848,7 +41946,7 @@ var VideoInner = ({
41848
41946
  return /* @__PURE__ */ jsx65(Sequence, {
41849
41947
  layout: "none",
41850
41948
  from: from ?? 0,
41851
- durationInFrames: basicInfo.duration,
41949
+ durationInFrames: videoSequenceDuration,
41852
41950
  freeze,
41853
41951
  _remotionInternalStack: stack,
41854
41952
  _remotionInternalIsMedia: isMedia,
@@ -43210,7 +43308,7 @@ import {
43210
43308
  import { BufferTarget, StreamTarget } from "mediabunny";
43211
43309
 
43212
43310
  // ../core/dist/esm/version.mjs
43213
- var VERSION2 = "4.0.491";
43311
+ var VERSION2 = "4.0.493";
43214
43312
 
43215
43313
  // ../web-renderer/dist/esm/index.mjs
43216
43314
  import { AudioSample, VideoSample } from "mediabunny";