@remotion/promo-pages 4.0.474 → 4.0.475

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/design.js CHANGED
@@ -35,8 +35,8 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
35
35
  // ../design/dist/esm/index.mjs
36
36
  import * as React23 from "react";
37
37
  import * as React3 from "react";
38
- import { Fragment as Fragment2, jsx as jsx41 } from "react/jsx-runtime";
39
- import React52, { useCallback as useCallback25, useRef as useRef29, useState as useState22 } from "react";
38
+ import { Fragment as Fragment2, jsx as jsx43 } from "react/jsx-runtime";
39
+ import React52, { useCallback as useCallback26, useRef as useRef210, useState as useState22 } from "react";
40
40
 
41
41
  // ../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
42
42
  function r(e) {
@@ -1378,7 +1378,7 @@ var getDefaultConfig = () => {
1378
1378
  var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
1379
1379
 
1380
1380
  // ../design/dist/esm/index.mjs
1381
- import React35, { useEffect as useEffect22, useMemo as useMemo42, useState as useState21 } from "react";
1381
+ import React32, { useEffect as useEffect22, useMemo as useMemo42, useState as useState21 } from "react";
1382
1382
 
1383
1383
  // ../paths/dist/esm/index.mjs
1384
1384
  var cutLInstruction = ({
@@ -4331,69 +4331,71 @@ import { forwardRef as forwardRef11, useCallback as useCallback17, useState as u
4331
4331
  import { jsx as jsx27 } from "react/jsx-runtime";
4332
4332
  import { useCallback as useCallback18, useContext as useContext33, useLayoutEffect as useLayoutEffect10, useRef as useRef24 } from "react";
4333
4333
  import { jsx as jsx28 } from "react/jsx-runtime";
4334
+ import React29, { forwardRef as forwardRef12, useCallback as useCallback19, useRef as useRef25 } from "react";
4335
+ import { jsx as jsx29 } from "react/jsx-runtime";
4334
4336
  import { createRef as createRef3 } from "react";
4335
- import React29 from "react";
4337
+ import React30 from "react";
4336
4338
  import {
4337
- useCallback as useCallback19,
4339
+ useCallback as useCallback20,
4338
4340
  useImperativeHandle as useImperativeHandle8,
4339
4341
  useMemo as useMemo32,
4340
- useRef as useRef25,
4342
+ useRef as useRef26,
4341
4343
  useState as useState18
4342
4344
  } from "react";
4343
- import { jsx as jsx29 } from "react/jsx-runtime";
4344
- import React30 from "react";
4345
+ import { jsx as jsx30 } from "react/jsx-runtime";
4346
+ import React31 from "react";
4345
4347
  import { useMemo as useMemo34 } from "react";
4346
4348
  import { createContext as createContext24, useContext as useContext34, useMemo as useMemo33 } from "react";
4347
- import { jsx as jsx30 } from "react/jsx-runtime";
4348
4349
  import { jsx as jsx31 } from "react/jsx-runtime";
4349
- import React32 from "react";
4350
- import React33, { createContext as createContext25 } from "react";
4351
- import React34, { useContext as useContext35 } from "react";
4352
- import { useCallback as useCallback22 } from "react";
4350
+ import { jsx as jsx32 } from "react/jsx-runtime";
4351
+ import React33 from "react";
4352
+ import React34, { createContext as createContext25 } from "react";
4353
+ import React35, { useContext as useContext35 } from "react";
4354
+ import { useCallback as useCallback23 } from "react";
4353
4355
  import {
4354
- useCallback as useCallback20,
4356
+ useCallback as useCallback21,
4355
4357
  useContext as useContext36,
4356
4358
  useEffect as useEffect18,
4357
4359
  useLayoutEffect as useLayoutEffect11,
4358
4360
  useMemo as useMemo35,
4359
4361
  useState as useState19
4360
4362
  } from "react";
4361
- import { jsx as jsx32 } from "react/jsx-runtime";
4362
- import React36, {
4363
- forwardRef as forwardRef12,
4364
- useCallback as useCallback21,
4363
+ import { jsx as jsx33 } from "react/jsx-runtime";
4364
+ import React37, {
4365
+ forwardRef as forwardRef13,
4366
+ useCallback as useCallback22,
4365
4367
  useContext as useContext37,
4366
4368
  useEffect as useEffect20,
4367
4369
  useImperativeHandle as useImperativeHandle9,
4368
4370
  useMemo as useMemo36,
4369
- useRef as useRef26,
4371
+ useRef as useRef27,
4370
4372
  useState as useState20
4371
4373
  } from "react";
4372
4374
  import { useEffect as useEffect19 } from "react";
4373
- import { jsx as jsx33 } from "react/jsx-runtime";
4374
4375
  import { jsx as jsx34 } from "react/jsx-runtime";
4375
- import React38, { useMemo as useMemo37 } from "react";
4376
4376
  import { jsx as jsx35 } from "react/jsx-runtime";
4377
+ import React39, { useMemo as useMemo37 } from "react";
4378
+ import { jsx as jsx36 } from "react/jsx-runtime";
4377
4379
  import {
4378
4380
  Children,
4379
- forwardRef as forwardRef13,
4381
+ forwardRef as forwardRef14,
4380
4382
  useMemo as useMemo38
4381
4383
  } from "react";
4382
- import React39 from "react";
4383
- import { jsx as jsx36 } from "react/jsx-runtime";
4384
- import React41 from "react";
4385
- import { forwardRef as forwardRef15, useCallback as useCallback23, useContext as useContext39 } from "react";
4384
+ import React40 from "react";
4385
+ import { jsx as jsx37 } from "react/jsx-runtime";
4386
+ import React42 from "react";
4387
+ import { forwardRef as forwardRef16, useCallback as useCallback24, useContext as useContext39 } from "react";
4386
4388
  import {
4387
- forwardRef as forwardRef14,
4389
+ forwardRef as forwardRef15,
4388
4390
  useContext as useContext38,
4389
4391
  useEffect as useEffect21,
4390
4392
  useImperativeHandle as useImperativeHandle10,
4391
4393
  useLayoutEffect as useLayoutEffect12,
4392
4394
  useMemo as useMemo39,
4393
- useRef as useRef27
4395
+ useRef as useRef28
4394
4396
  } from "react";
4395
- import { jsx as jsx37 } from "react/jsx-runtime";
4396
4397
  import { jsx as jsx38 } from "react/jsx-runtime";
4398
+ import { jsx as jsx39 } from "react/jsx-runtime";
4397
4399
  var __defProp2 = Object.defineProperty;
4398
4400
  var __export2 = (target, all) => {
4399
4401
  for (var name in all)
@@ -5562,7 +5564,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
5562
5564
  var addSequenceStackTraces = (component) => {
5563
5565
  componentsToAddStacksTo.push(component);
5564
5566
  };
5565
- var VERSION = "4.0.474";
5567
+ var VERSION = "4.0.475";
5566
5568
  var checkMultipleRemotionVersions = () => {
5567
5569
  if (typeof globalThis === "undefined") {
5568
5570
  return;
@@ -5929,6 +5931,12 @@ var PremountContext = createContext14({
5929
5931
  premountFramesRemaining: 0
5930
5932
  });
5931
5933
  var sequenceVisualStyleSchema = {
5934
+ "style.transformOrigin": {
5935
+ type: "transform-origin",
5936
+ step: 1,
5937
+ default: "50% 50%",
5938
+ description: "Transform origin"
5939
+ },
5932
5940
  "style.translate": {
5933
5941
  type: "translate",
5934
5942
  step: 1,
@@ -6481,6 +6489,32 @@ var lengthUnits = new Set([
6481
6489
  "vw"
6482
6490
  ]);
6483
6491
  var cssNumberRegex = /^([+-]?(?:\d+\.?\d*|\.\d+))([a-zA-Z%]+)?$/;
6492
+ var transformOriginKeywords = new Set([
6493
+ "left",
6494
+ "center",
6495
+ "right",
6496
+ "top",
6497
+ "bottom"
6498
+ ]);
6499
+ var transformOriginKeywordOptions = (keyword) => {
6500
+ if (keyword === "left") {
6501
+ return [{ axis: "x", value: { value: 0, unit: "%" } }];
6502
+ }
6503
+ if (keyword === "right") {
6504
+ return [{ axis: "x", value: { value: 100, unit: "%" } }];
6505
+ }
6506
+ if (keyword === "top") {
6507
+ return [{ axis: "y", value: { value: 0, unit: "%" } }];
6508
+ }
6509
+ if (keyword === "bottom") {
6510
+ return [{ axis: "y", value: { value: 100, unit: "%" } }];
6511
+ }
6512
+ return [
6513
+ { axis: "x", value: { value: 50, unit: "%" } },
6514
+ { axis: "y", value: { value: 50, unit: "%" } }
6515
+ ];
6516
+ };
6517
+ var transformOriginCenter = { value: 50, unit: "%" };
6484
6518
  var stringifyNumber = (value) => {
6485
6519
  return String(normalizeNumber(value));
6486
6520
  };
@@ -6505,6 +6539,110 @@ var parseStringInterpolationComponent = (component, value) => {
6505
6539
  }
6506
6540
  throw new TypeError(`Cannot interpolate "${value}" because "${unit}" is not a supported translate or rotate unit`);
6507
6541
  };
6542
+ var parseTransformOriginLengthPercentage = ({
6543
+ component,
6544
+ value,
6545
+ allowPercentage
6546
+ }) => {
6547
+ const match = cssNumberRegex.exec(component);
6548
+ if (match === null) {
6549
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not a supported transform-origin ${allowPercentage ? "length-percentage" : "z length"}`);
6550
+ }
6551
+ const unit = match[2] ?? null;
6552
+ const numberValue = Number(match[1]);
6553
+ if (!Number.isFinite(numberValue)) {
6554
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not finite`);
6555
+ }
6556
+ if (unit === null || !lengthUnits.has(unit) || !allowPercentage && unit === "%") {
6557
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not a supported transform-origin ${allowPercentage ? "length-percentage" : "z length"}`);
6558
+ }
6559
+ return { value: numberValue, unit };
6560
+ };
6561
+ var parseTransformOriginToken = (component, value) => {
6562
+ const lower = component.toLowerCase();
6563
+ if (transformOriginKeywords.has(lower)) {
6564
+ return { type: "keyword", keyword: lower };
6565
+ }
6566
+ return {
6567
+ type: "length-percentage",
6568
+ parsed: parseTransformOriginLengthPercentage({
6569
+ component,
6570
+ value,
6571
+ allowPercentage: true
6572
+ })
6573
+ };
6574
+ };
6575
+ var parseTwoTransformOriginKeywords = (first, second, value) => {
6576
+ const candidates = [];
6577
+ for (const firstOption of transformOriginKeywordOptions(first)) {
6578
+ for (const secondOption of transformOriginKeywordOptions(second)) {
6579
+ if (firstOption.axis === secondOption.axis) {
6580
+ continue;
6581
+ }
6582
+ candidates.push(firstOption.axis === "x" ? [firstOption.value, secondOption.value] : [secondOption.value, firstOption.value]);
6583
+ }
6584
+ }
6585
+ if (candidates.length === 0) {
6586
+ throw new TypeError(`Cannot interpolate "${value}" because "${first} ${second}" is not a valid transform-origin keyword pair`);
6587
+ }
6588
+ return candidates[0];
6589
+ };
6590
+ var parseTransformOriginXY = (parts, value) => {
6591
+ if (parts.length === 1) {
6592
+ const token = parseTransformOriginToken(parts[0], value);
6593
+ if (token.type === "length-percentage") {
6594
+ return [token.parsed, transformOriginCenter];
6595
+ }
6596
+ if (token.keyword === "top" || token.keyword === "bottom") {
6597
+ return [
6598
+ transformOriginCenter,
6599
+ transformOriginKeywordOptions(token.keyword)[0].value
6600
+ ];
6601
+ }
6602
+ return [
6603
+ transformOriginKeywordOptions(token.keyword)[0].value,
6604
+ transformOriginCenter
6605
+ ];
6606
+ }
6607
+ const first = parseTransformOriginToken(parts[0], value);
6608
+ const second = parseTransformOriginToken(parts[1], value);
6609
+ if (first.type === "length-percentage" && second.type === "length-percentage") {
6610
+ return [first.parsed, second.parsed];
6611
+ }
6612
+ if (first.type === "keyword" && second.type === "keyword") {
6613
+ return parseTwoTransformOriginKeywords(first.keyword, second.keyword, value);
6614
+ }
6615
+ const keyword = first.type === "keyword" ? first : second.type === "keyword" ? second : null;
6616
+ const length2 = first.type === "length-percentage" ? first.parsed : second.type === "length-percentage" ? second.parsed : null;
6617
+ if (keyword === null || length2 === null) {
6618
+ throw new Error("Expected a keyword and a length-percentage value");
6619
+ }
6620
+ const keywordIsFirst = first.type === "keyword";
6621
+ if (keyword.keyword === "left" || keyword.keyword === "right") {
6622
+ if (!keywordIsFirst) {
6623
+ throw new TypeError(`Cannot interpolate "${value}" because horizontal transform-origin keywords must come before a length-percentage value`);
6624
+ }
6625
+ return [transformOriginKeywordOptions(keyword.keyword)[0].value, length2];
6626
+ }
6627
+ if (keyword.keyword === "top" || keyword.keyword === "bottom") {
6628
+ return [length2, transformOriginKeywordOptions(keyword.keyword)[0].value];
6629
+ }
6630
+ return keywordIsFirst ? [transformOriginCenter, length2] : [length2, transformOriginCenter];
6631
+ };
6632
+ var parseTransformOriginValue = (output, parts) => {
6633
+ const [x, y] = parseTransformOriginXY(parts.slice(0, 2), output);
6634
+ const z = parts[2] === undefined ? { value: 0, unit: null } : parseTransformOriginLengthPercentage({
6635
+ component: parts[2],
6636
+ value: output,
6637
+ allowPercentage: false
6638
+ });
6639
+ return {
6640
+ kind: "translate",
6641
+ values: [x.value, y.value, z.value],
6642
+ units: [x.unit, y.unit, z.unit],
6643
+ dimensions: parts[2] === undefined ? 2 : 3
6644
+ };
6645
+ };
6508
6646
  var parseStringInterpolationValue = (output) => {
6509
6647
  if (typeof output === "number") {
6510
6648
  if (!Number.isFinite(output)) {
@@ -6521,6 +6659,9 @@ var parseStringInterpolationValue = (output) => {
6521
6659
  if (parts.length < 1 || parts.length > 3 || parts[0] === "") {
6522
6660
  throw new TypeError(`String outputRange values must contain 1 to 3 components, but got "${output}"`);
6523
6661
  }
6662
+ if (parts.some((part) => transformOriginKeywords.has(part.toLowerCase()))) {
6663
+ return parseTransformOriginValue(output, parts);
6664
+ }
6524
6665
  const parsed = parts.map((part) => parseStringInterpolationComponent(part, output));
6525
6666
  const [{ kind }] = parsed;
6526
6667
  for (const part of parsed) {
@@ -7276,6 +7417,7 @@ function processColor(color) {
7276
7417
  var interpolateColorsRGB = (value, inputRange, colors, options) => {
7277
7418
  const [r2, g, b2, a2] = [red, green, blue, opacity].map((f) => {
7278
7419
  const unrounded = interpolate(value, inputRange, colors.map((c2) => f(c2)), {
7420
+ easing: options?.easing,
7279
7421
  extrapolateLeft: "clamp",
7280
7422
  extrapolateRight: "clamp",
7281
7423
  posterize: options?.posterize
@@ -7329,6 +7471,7 @@ var interpolateKeyframedStatus = ({
7329
7471
  }
7330
7472
  try {
7331
7473
  return interpolateColors(frame, inputRange, outputs, {
7474
+ easing: easing.map(easingToFn),
7332
7475
  posterize: status.posterize
7333
7476
  });
7334
7477
  } catch {
@@ -8735,7 +8878,7 @@ var animatedImageSchema = {
8735
8878
  max: 10,
8736
8879
  step: 0.1,
8737
8880
  default: 1,
8738
- description: "Playback Rate",
8881
+ description: "Playback rate",
8739
8882
  hiddenFromList: false,
8740
8883
  keyframable: false
8741
8884
  },
@@ -13066,7 +13209,100 @@ var Img = wrapInSchema({
13066
13209
  supportsEffects: true
13067
13210
  });
13068
13211
  addSequenceStackTraces(Img);
13069
- var compositionsRef = React29.createRef();
13212
+ var interactiveElementSchema = {
13213
+ durationInFrames: durationInFramesField,
13214
+ from: fromField,
13215
+ ...sequenceVisualStyleSchema,
13216
+ hidden: hiddenField
13217
+ };
13218
+ var setRef = (ref, value) => {
13219
+ if (typeof ref === "function") {
13220
+ ref(value);
13221
+ } else if (ref) {
13222
+ ref.current = value;
13223
+ }
13224
+ };
13225
+ var makeInteractiveElement = (tag, displayName) => {
13226
+ const Inner = forwardRef12((propsWithControls, ref) => {
13227
+ const {
13228
+ durationInFrames,
13229
+ from,
13230
+ hidden,
13231
+ name,
13232
+ showInTimeline,
13233
+ stack,
13234
+ _experimentalControls,
13235
+ ...props2
13236
+ } = propsWithControls;
13237
+ const refForOutline = useRef25(null);
13238
+ const callbackRef = useCallback19((element) => {
13239
+ refForOutline.current = element;
13240
+ setRef(ref, element);
13241
+ }, [ref]);
13242
+ return /* @__PURE__ */ jsx29(Sequence, {
13243
+ layout: "none",
13244
+ from: from ?? 0,
13245
+ durationInFrames: durationInFrames ?? Infinity,
13246
+ hidden,
13247
+ name: name ?? displayName,
13248
+ showInTimeline: showInTimeline ?? true,
13249
+ _experimentalControls,
13250
+ _remotionInternalStack: stack,
13251
+ _remotionInternalRefForOutline: refForOutline,
13252
+ children: React29.createElement(tag, {
13253
+ ...props2,
13254
+ ref: callbackRef
13255
+ })
13256
+ });
13257
+ });
13258
+ Inner.displayName = displayName;
13259
+ const Wrapped = wrapInSchema({
13260
+ Component: Inner,
13261
+ schema: interactiveElementSchema,
13262
+ supportsEffects: false
13263
+ });
13264
+ Wrapped.displayName = displayName;
13265
+ addSequenceStackTraces(Wrapped);
13266
+ return Wrapped;
13267
+ };
13268
+ var Interactive = {
13269
+ A: makeInteractiveElement("a", "<Interactive.A>"),
13270
+ Article: makeInteractiveElement("article", "<Interactive.Article>"),
13271
+ Aside: makeInteractiveElement("aside", "<Interactive.Aside>"),
13272
+ Button: makeInteractiveElement("button", "<Interactive.Button>"),
13273
+ Circle: makeInteractiveElement("circle", "<Interactive.Circle>"),
13274
+ Code: makeInteractiveElement("code", "<Interactive.Code>"),
13275
+ Div: makeInteractiveElement("div", "<Interactive.Div>"),
13276
+ Ellipse: makeInteractiveElement("ellipse", "<Interactive.Ellipse>"),
13277
+ Em: makeInteractiveElement("em", "<Interactive.Em>"),
13278
+ Footer: makeInteractiveElement("footer", "<Interactive.Footer>"),
13279
+ G: makeInteractiveElement("g", "<Interactive.G>"),
13280
+ H1: makeInteractiveElement("h1", "<Interactive.H1>"),
13281
+ H2: makeInteractiveElement("h2", "<Interactive.H2>"),
13282
+ H3: makeInteractiveElement("h3", "<Interactive.H3>"),
13283
+ H4: makeInteractiveElement("h4", "<Interactive.H4>"),
13284
+ H5: makeInteractiveElement("h5", "<Interactive.H5>"),
13285
+ H6: makeInteractiveElement("h6", "<Interactive.H6>"),
13286
+ Header: makeInteractiveElement("header", "<Interactive.Header>"),
13287
+ Label: makeInteractiveElement("label", "<Interactive.Label>"),
13288
+ Li: makeInteractiveElement("li", "<Interactive.Li>"),
13289
+ Line: makeInteractiveElement("line", "<Interactive.Line>"),
13290
+ Main: makeInteractiveElement("main", "<Interactive.Main>"),
13291
+ Nav: makeInteractiveElement("nav", "<Interactive.Nav>"),
13292
+ Ol: makeInteractiveElement("ol", "<Interactive.Ol>"),
13293
+ P: makeInteractiveElement("p", "<Interactive.P>"),
13294
+ Path: makeInteractiveElement("path", "<Interactive.Path>"),
13295
+ Pre: makeInteractiveElement("pre", "<Interactive.Pre>"),
13296
+ Rect: makeInteractiveElement("rect", "<Interactive.Rect>"),
13297
+ Section: makeInteractiveElement("section", "<Interactive.Section>"),
13298
+ Small: makeInteractiveElement("small", "<Interactive.Small>"),
13299
+ Span: makeInteractiveElement("span", "<Interactive.Span>"),
13300
+ Strong: makeInteractiveElement("strong", "<Interactive.Strong>"),
13301
+ Svg: makeInteractiveElement("svg", "<Interactive.Svg>"),
13302
+ Text: makeInteractiveElement("text", "<Interactive.Text>"),
13303
+ Ul: makeInteractiveElement("ul", "<Interactive.Ul>")
13304
+ };
13305
+ var compositionsRef = React30.createRef();
13070
13306
  var CompositionManagerProvider = ({
13071
13307
  children,
13072
13308
  onlyRenderComposition,
@@ -13077,15 +13313,15 @@ var CompositionManagerProvider = ({
13077
13313
  const [folders, setFolders] = useState18([]);
13078
13314
  const [canvasContent, setCanvasContent] = useState18(initialCanvasContent);
13079
13315
  const [compositions, setCompositions] = useState18(initialCompositions);
13080
- const currentcompositionsRef = useRef25(compositions);
13081
- const updateCompositions = useCallback19((updateComps) => {
13316
+ const currentcompositionsRef = useRef26(compositions);
13317
+ const updateCompositions = useCallback20((updateComps) => {
13082
13318
  setCompositions((comps) => {
13083
13319
  const updated = updateComps(comps);
13084
13320
  currentcompositionsRef.current = updated;
13085
13321
  return updated;
13086
13322
  });
13087
13323
  }, []);
13088
- const registerComposition = useCallback19((comp) => {
13324
+ const registerComposition = useCallback20((comp) => {
13089
13325
  updateCompositions((comps) => {
13090
13326
  if (comps.find((c2) => c2.id === comp.id)) {
13091
13327
  throw new Error(`Multiple composition with id ${comp.id} are registered.`);
@@ -13093,12 +13329,12 @@ var CompositionManagerProvider = ({
13093
13329
  return [...comps, comp];
13094
13330
  });
13095
13331
  }, [updateCompositions]);
13096
- const unregisterComposition = useCallback19((id) => {
13332
+ const unregisterComposition = useCallback20((id) => {
13097
13333
  setCompositions((comps) => {
13098
13334
  return comps.filter((c2) => c2.id !== id);
13099
13335
  });
13100
13336
  }, []);
13101
- const registerFolder = useCallback19((name, parent, nonce, stack) => {
13337
+ const registerFolder = useCallback20((name, parent, nonce, stack) => {
13102
13338
  setFolders((prevFolders) => {
13103
13339
  return [
13104
13340
  ...prevFolders,
@@ -13111,7 +13347,7 @@ var CompositionManagerProvider = ({
13111
13347
  ];
13112
13348
  });
13113
13349
  }, []);
13114
- const unregisterFolder = useCallback19((name, parent) => {
13350
+ const unregisterFolder = useCallback20((name, parent) => {
13115
13351
  setFolders((prevFolders) => {
13116
13352
  return prevFolders.filter((p) => !(p.name === name && p.parent === parent));
13117
13353
  });
@@ -13145,9 +13381,9 @@ var CompositionManagerProvider = ({
13145
13381
  canvasContent
13146
13382
  };
13147
13383
  }, [compositions, folders, currentCompositionMetadata, canvasContent]);
13148
- return /* @__PURE__ */ jsx29(CompositionManager.Provider, {
13384
+ return /* @__PURE__ */ jsx30(CompositionManager.Provider, {
13149
13385
  value: compositionManagerContextValue,
13150
- children: /* @__PURE__ */ jsx29(CompositionSetters.Provider, {
13386
+ children: /* @__PURE__ */ jsx30(CompositionSetters.Provider, {
13151
13387
  value: compositionManagerSetters,
13152
13388
  children
13153
13389
  })
@@ -13245,7 +13481,7 @@ var REMOTION_STUDIO_CONTAINER_ELEMENT = "__remotion-studio-container";
13245
13481
  var getPreviewDomElement = () => {
13246
13482
  return document.getElementById(REMOTION_STUDIO_CONTAINER_ELEMENT);
13247
13483
  };
13248
- var MaxMediaCacheSizeContext = React30.createContext(null);
13484
+ var MaxMediaCacheSizeContext = React31.createContext(null);
13249
13485
  var Root = null;
13250
13486
  var listeners = [];
13251
13487
  var getRoot = () => {
@@ -13290,7 +13526,7 @@ var MediaEnabledProvider = ({
13290
13526
  audioEnabled
13291
13527
  }) => {
13292
13528
  const value = useMemo33(() => ({ videoEnabled, audioEnabled }), [videoEnabled, audioEnabled]);
13293
- return /* @__PURE__ */ jsx30(MediaEnabledContext.Provider, {
13529
+ return /* @__PURE__ */ jsx31(MediaEnabledContext.Provider, {
13294
13530
  value,
13295
13531
  children
13296
13532
  });
@@ -13314,25 +13550,25 @@ var RemotionRootContexts = ({
13314
13550
  const logging = useMemo34(() => {
13315
13551
  return { logLevel, mountTime: Date.now() };
13316
13552
  }, [logLevel]);
13317
- return /* @__PURE__ */ jsx31(LogLevelContext.Provider, {
13553
+ return /* @__PURE__ */ jsx32(LogLevelContext.Provider, {
13318
13554
  value: logging,
13319
- children: /* @__PURE__ */ jsx31(NonceContext.Provider, {
13555
+ children: /* @__PURE__ */ jsx32(NonceContext.Provider, {
13320
13556
  value: nonceContext,
13321
- children: /* @__PURE__ */ jsx31(TimelineContextProvider, {
13557
+ children: /* @__PURE__ */ jsx32(TimelineContextProvider, {
13322
13558
  frameState,
13323
- children: /* @__PURE__ */ jsx31(MediaEnabledProvider, {
13559
+ children: /* @__PURE__ */ jsx32(MediaEnabledProvider, {
13324
13560
  videoEnabled,
13325
13561
  audioEnabled,
13326
- children: /* @__PURE__ */ jsx31(EditorPropsProvider, {
13327
- children: /* @__PURE__ */ jsx31(PrefetchProvider, {
13328
- children: /* @__PURE__ */ jsx31(SequenceManagerProvider, {
13329
- children: /* @__PURE__ */ jsx31(DurationsContextProvider, {
13330
- children: /* @__PURE__ */ jsx31(BufferingProvider, {
13331
- children: /* @__PURE__ */ jsx31(SharedAudioContextProvider, {
13562
+ children: /* @__PURE__ */ jsx32(EditorPropsProvider, {
13563
+ children: /* @__PURE__ */ jsx32(PrefetchProvider, {
13564
+ children: /* @__PURE__ */ jsx32(SequenceManagerProvider, {
13565
+ children: /* @__PURE__ */ jsx32(DurationsContextProvider, {
13566
+ children: /* @__PURE__ */ jsx32(BufferingProvider, {
13567
+ children: /* @__PURE__ */ jsx32(SharedAudioContextProvider, {
13332
13568
  audioLatencyHint,
13333
13569
  audioEnabled,
13334
13570
  previewSampleRate,
13335
- children: /* @__PURE__ */ jsx31(SharedAudioTagsContextProvider, {
13571
+ children: /* @__PURE__ */ jsx32(SharedAudioTagsContextProvider, {
13336
13572
  numberOfAudioTags,
13337
13573
  children
13338
13574
  })
@@ -13518,7 +13754,7 @@ var resolveVideoConfigOrCatch = (params) => {
13518
13754
  };
13519
13755
  }
13520
13756
  };
13521
- var SequenceStackTracesUpdateContext = React32.createContext(() => {});
13757
+ var SequenceStackTracesUpdateContext = React33.createContext(() => {});
13522
13758
  var getEnvVariables = () => {
13523
13759
  if (getRemotionEnvironment().isRendering) {
13524
13760
  const param = window.remotion_envVariables;
@@ -13544,7 +13780,7 @@ var setupEnvVariables = () => {
13544
13780
  window.process.env[key] = env[key];
13545
13781
  });
13546
13782
  };
13547
- var CurrentScaleContext = React33.createContext(null);
13783
+ var CurrentScaleContext = React34.createContext(null);
13548
13784
  var PreviewSizeContext = createContext25({
13549
13785
  setSize: () => {
13550
13786
  return;
@@ -13568,7 +13804,7 @@ var calculateScale = ({
13568
13804
  }
13569
13805
  return Number(previewSize);
13570
13806
  };
13571
- var PixelDensityContext = React34.createContext(null);
13807
+ var PixelDensityContext = React35.createContext(null);
13572
13808
  var getOffthreadVideoSource = ({
13573
13809
  src,
13574
13810
  transparent,
@@ -13750,7 +13986,7 @@ var OffthreadVideoForRendering = ({
13750
13986
  continueRender2,
13751
13987
  delayRender2
13752
13988
  ]);
13753
- const onErr = useCallback20(() => {
13989
+ const onErr = useCallback21(() => {
13754
13990
  if (onError) {
13755
13991
  onError?.(new Error("Failed to load image with src " + imageSrc));
13756
13992
  } else {
@@ -13760,7 +13996,7 @@ var OffthreadVideoForRendering = ({
13760
13996
  const className = useMemo35(() => {
13761
13997
  return [OBJECTFIT_CONTAIN_CLASS_NAME, props2.className].filter(truthy).join(" ");
13762
13998
  }, [props2.className]);
13763
- const onImageFrame = useCallback20((img) => {
13999
+ const onImageFrame = useCallback21((img) => {
13764
14000
  if (onVideoFrame) {
13765
14001
  onVideoFrame(img);
13766
14002
  }
@@ -13769,7 +14005,7 @@ var OffthreadVideoForRendering = ({
13769
14005
  return null;
13770
14006
  }
13771
14007
  continueRender2(imageSrc.handle);
13772
- return /* @__PURE__ */ jsx32(Img, {
14008
+ return /* @__PURE__ */ jsx33(Img, {
13773
14009
  src: imageSrc.src,
13774
14010
  delayRenderRetries,
13775
14011
  delayRenderTimeoutInMilliseconds,
@@ -13825,7 +14061,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
13825
14061
  if (!context) {
13826
14062
  throw new Error("SharedAudioContext not found");
13827
14063
  }
13828
- const videoRef = useRef26(null);
14064
+ const videoRef = useRef27(null);
13829
14065
  const sharedSource = useMemo36(() => {
13830
14066
  if (!context.audioContext) {
13831
14067
  return null;
@@ -13835,7 +14071,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
13835
14071
  ref: videoRef
13836
14072
  });
13837
14073
  }, [context.audioContext]);
13838
- const effectToUse = React36.useInsertionEffect ?? React36.useLayoutEffect;
14074
+ const effectToUse = React37.useInsertionEffect ?? React37.useLayoutEffect;
13839
14075
  effectToUse(() => {
13840
14076
  return () => {
13841
14077
  requestAnimationFrame(() => {
@@ -13893,7 +14129,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
13893
14129
  mediaVolume
13894
14130
  });
13895
14131
  warnAboutTooHighVolume(userPreferredVolume);
13896
- const getStack = useCallback21(() => {
14132
+ const getStack = useCallback22(() => {
13897
14133
  return _remotionInternalStack ?? null;
13898
14134
  }, [_remotionInternalStack]);
13899
14135
  useMediaInTimeline({
@@ -13998,7 +14234,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
13998
14234
  current.removeEventListener("error", errorHandler);
13999
14235
  };
14000
14236
  }, [onError, src]);
14001
- const currentOnDurationCallback = useRef26(onDuration);
14237
+ const currentOnDurationCallback = useRef27(onDuration);
14002
14238
  currentOnDurationCallback.current = onDuration;
14003
14239
  useEmitVideoFrame({ ref: videoRef, onVideoFrame });
14004
14240
  useEffect20(() => {
@@ -14039,7 +14275,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
14039
14275
  requestsVideoFrame: Boolean(onVideoFrame),
14040
14276
  isClientSideRendering: false
14041
14277
  });
14042
- return /* @__PURE__ */ jsx33("video", {
14278
+ return /* @__PURE__ */ jsx34("video", {
14043
14279
  ref: videoRef,
14044
14280
  muted: muted || mediaMuted || userPreferredVolume <= 0,
14045
14281
  playsInline: true,
@@ -14051,7 +14287,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
14051
14287
  ...nativeProps
14052
14288
  });
14053
14289
  };
14054
- var VideoForPreview = forwardRef12(VideoForDevelopmentRefForwardingFunction);
14290
+ var VideoForPreview = forwardRef13(VideoForDevelopmentRefForwardingFunction);
14055
14291
  var InnerOffthreadVideo = (props2) => {
14056
14292
  const {
14057
14293
  startFrom,
@@ -14068,7 +14304,7 @@ var InnerOffthreadVideo = (props2) => {
14068
14304
  if (environment.isClientSideRendering) {
14069
14305
  throw new Error("<OffthreadVideo> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
14070
14306
  }
14071
- const onDuration = useCallback22(() => {
14307
+ const onDuration = useCallback23(() => {
14072
14308
  return;
14073
14309
  }, []);
14074
14310
  if (typeof props2.src !== "string") {
@@ -14082,13 +14318,13 @@ var InnerOffthreadVideo = (props2) => {
14082
14318
  trimAfter
14083
14319
  });
14084
14320
  if (typeof trimBeforeValue !== "undefined" || typeof trimAfterValue !== "undefined") {
14085
- return /* @__PURE__ */ jsx34(Sequence, {
14321
+ return /* @__PURE__ */ jsx35(Sequence, {
14086
14322
  layout: "none",
14087
14323
  from: 0 - (trimBeforeValue ?? 0),
14088
14324
  showInTimeline: false,
14089
14325
  durationInFrames: trimAfterValue,
14090
14326
  name,
14091
- children: /* @__PURE__ */ jsx34(InnerOffthreadVideo, {
14327
+ children: /* @__PURE__ */ jsx35(InnerOffthreadVideo, {
14092
14328
  pauseWhenBuffering: pauseWhenBuffering ?? false,
14093
14329
  ...otherProps,
14094
14330
  trimAfter: undefined,
@@ -14103,7 +14339,7 @@ var InnerOffthreadVideo = (props2) => {
14103
14339
  }
14104
14340
  validateMediaProps(props2, "Video");
14105
14341
  if (environment.isRendering) {
14106
- return /* @__PURE__ */ jsx34(OffthreadVideoForRendering, {
14342
+ return /* @__PURE__ */ jsx35(OffthreadVideoForRendering, {
14107
14343
  pauseWhenBuffering: pauseWhenBuffering ?? false,
14108
14344
  ...otherProps,
14109
14345
  trimAfter: undefined,
@@ -14125,7 +14361,7 @@ var InnerOffthreadVideo = (props2) => {
14125
14361
  delayRenderTimeoutInMilliseconds,
14126
14362
  ...propsForPreview
14127
14363
  } = otherProps;
14128
- return /* @__PURE__ */ jsx34(VideoForPreview, {
14364
+ return /* @__PURE__ */ jsx35(VideoForPreview, {
14129
14365
  _remotionInternalStack: stack ?? null,
14130
14366
  onDuration,
14131
14367
  onlyWarnForMediaSeekingError: true,
@@ -14174,7 +14410,7 @@ var OffthreadVideo = ({
14174
14410
  if (imageFormat) {
14175
14411
  throw new TypeError(`The \`<OffthreadVideo>\` tag does no longer accept \`imageFormat\`. Use the \`transparent\` prop if you want to render a transparent video.`);
14176
14412
  }
14177
- return /* @__PURE__ */ jsx34(InnerOffthreadVideo, {
14413
+ return /* @__PURE__ */ jsx35(InnerOffthreadVideo, {
14178
14414
  acceptableTimeShiftInSeconds,
14179
14415
  allowAmplificationDuringRender: allowAmplificationDuringRender ?? true,
14180
14416
  audioStreamIndex: audioStreamIndex ?? 0,
@@ -14210,20 +14446,20 @@ var OffthreadVideo = ({
14210
14446
  addSequenceStackTraces(OffthreadVideo);
14211
14447
  var WATCH_REMOTION_STATIC_FILES = "remotion_staticFilesChanged";
14212
14448
  function useRemotionContexts() {
14213
- const compositionManagerCtx = React38.useContext(CompositionManager);
14214
- const timelineContext = React38.useContext(TimelineContext);
14215
- const setTimelineContext = React38.useContext(SetTimelineContext);
14216
- const sequenceContext = React38.useContext(SequenceContext);
14217
- const nonceContext = React38.useContext(NonceContext);
14218
- const canUseRemotionHooksContext = React38.useContext(CanUseRemotionHooks);
14219
- const preloadContext = React38.useContext(PreloadContext);
14220
- const resolveCompositionContext = React38.useContext(ResolveCompositionContext);
14221
- const renderAssetManagerContext = React38.useContext(RenderAssetManager);
14222
- const sequenceManagerContext = React38.useContext(SequenceManager);
14223
- const sequenceManagerRefContext = React38.useContext(SequenceManagerRefContext);
14224
- const visualModePropStatusesRefContext = React38.useContext(VisualModePropStatusesRefContext);
14225
- const bufferManagerContext = React38.useContext(BufferingContextReact);
14226
- const logLevelContext = React38.useContext(LogLevelContext);
14449
+ const compositionManagerCtx = React39.useContext(CompositionManager);
14450
+ const timelineContext = React39.useContext(TimelineContext);
14451
+ const setTimelineContext = React39.useContext(SetTimelineContext);
14452
+ const sequenceContext = React39.useContext(SequenceContext);
14453
+ const nonceContext = React39.useContext(NonceContext);
14454
+ const canUseRemotionHooksContext = React39.useContext(CanUseRemotionHooks);
14455
+ const preloadContext = React39.useContext(PreloadContext);
14456
+ const resolveCompositionContext = React39.useContext(ResolveCompositionContext);
14457
+ const renderAssetManagerContext = React39.useContext(RenderAssetManager);
14458
+ const sequenceManagerContext = React39.useContext(SequenceManager);
14459
+ const sequenceManagerRefContext = React39.useContext(SequenceManagerRefContext);
14460
+ const visualModePropStatusesRefContext = React39.useContext(VisualModePropStatusesRefContext);
14461
+ const bufferManagerContext = React39.useContext(BufferingContextReact);
14462
+ const logLevelContext = React39.useContext(LogLevelContext);
14227
14463
  return useMemo37(() => ({
14228
14464
  compositionManagerCtx,
14229
14465
  timelineContext,
@@ -14258,33 +14494,33 @@ function useRemotionContexts() {
14258
14494
  }
14259
14495
  var RemotionContextProvider = (props2) => {
14260
14496
  const { children, contexts } = props2;
14261
- return /* @__PURE__ */ jsx35(LogLevelContext.Provider, {
14497
+ return /* @__PURE__ */ jsx36(LogLevelContext.Provider, {
14262
14498
  value: contexts.logLevelContext,
14263
- children: /* @__PURE__ */ jsx35(CanUseRemotionHooks.Provider, {
14499
+ children: /* @__PURE__ */ jsx36(CanUseRemotionHooks.Provider, {
14264
14500
  value: contexts.canUseRemotionHooksContext,
14265
- children: /* @__PURE__ */ jsx35(NonceContext.Provider, {
14501
+ children: /* @__PURE__ */ jsx36(NonceContext.Provider, {
14266
14502
  value: contexts.nonceContext,
14267
- children: /* @__PURE__ */ jsx35(PreloadContext.Provider, {
14503
+ children: /* @__PURE__ */ jsx36(PreloadContext.Provider, {
14268
14504
  value: contexts.preloadContext,
14269
- children: /* @__PURE__ */ jsx35(CompositionManager.Provider, {
14505
+ children: /* @__PURE__ */ jsx36(CompositionManager.Provider, {
14270
14506
  value: contexts.compositionManagerCtx,
14271
- children: /* @__PURE__ */ jsx35(SequenceManagerRefContext.Provider, {
14507
+ children: /* @__PURE__ */ jsx36(SequenceManagerRefContext.Provider, {
14272
14508
  value: contexts.sequenceManagerRefContext,
14273
- children: /* @__PURE__ */ jsx35(SequenceManager.Provider, {
14509
+ children: /* @__PURE__ */ jsx36(SequenceManager.Provider, {
14274
14510
  value: contexts.sequenceManagerContext,
14275
- children: /* @__PURE__ */ jsx35(VisualModePropStatusesRefContext.Provider, {
14511
+ children: /* @__PURE__ */ jsx36(VisualModePropStatusesRefContext.Provider, {
14276
14512
  value: contexts.visualModePropStatusesRefContext,
14277
- children: /* @__PURE__ */ jsx35(RenderAssetManager.Provider, {
14513
+ children: /* @__PURE__ */ jsx36(RenderAssetManager.Provider, {
14278
14514
  value: contexts.renderAssetManagerContext,
14279
- children: /* @__PURE__ */ jsx35(ResolveCompositionContext.Provider, {
14515
+ children: /* @__PURE__ */ jsx36(ResolveCompositionContext.Provider, {
14280
14516
  value: contexts.resolveCompositionContext,
14281
- children: /* @__PURE__ */ jsx35(TimelineContext.Provider, {
14517
+ children: /* @__PURE__ */ jsx36(TimelineContext.Provider, {
14282
14518
  value: contexts.timelineContext,
14283
- children: /* @__PURE__ */ jsx35(SetTimelineContext.Provider, {
14519
+ children: /* @__PURE__ */ jsx36(SetTimelineContext.Provider, {
14284
14520
  value: contexts.setTimelineContext,
14285
- children: /* @__PURE__ */ jsx35(SequenceContext.Provider, {
14521
+ children: /* @__PURE__ */ jsx36(SequenceContext.Provider, {
14286
14522
  value: contexts.sequenceContext,
14287
- children: /* @__PURE__ */ jsx35(BufferingContextReact.Provider, {
14523
+ children: /* @__PURE__ */ jsx36(BufferingContextReact.Provider, {
14288
14524
  value: contexts.bufferManagerContext,
14289
14525
  children
14290
14526
  })
@@ -14474,9 +14710,9 @@ var validateFrame = ({
14474
14710
  }
14475
14711
  };
14476
14712
  var flattenChildren = (children) => {
14477
- const childrenArray = React39.Children.toArray(children);
14713
+ const childrenArray = React40.Children.toArray(children);
14478
14714
  return childrenArray.reduce((flatChildren, child) => {
14479
- if (child.type === React39.Fragment) {
14715
+ if (child.type === React40.Fragment) {
14480
14716
  return flatChildren.concat(flattenChildren(child.props.children));
14481
14717
  }
14482
14718
  flatChildren.push(child);
@@ -14485,11 +14721,11 @@ var flattenChildren = (children) => {
14485
14721
  };
14486
14722
  var SeriesSequenceRefForwardingFunction = ({ children }, _ref) => {
14487
14723
  useRequireToBeInsideSeries();
14488
- return /* @__PURE__ */ jsx36(IsNotInsideSeriesProvider, {
14724
+ return /* @__PURE__ */ jsx37(IsNotInsideSeriesProvider, {
14489
14725
  children
14490
14726
  });
14491
14727
  };
14492
- var SeriesSequence = forwardRef13(SeriesSequenceRefForwardingFunction);
14728
+ var SeriesSequence = forwardRef14(SeriesSequenceRefForwardingFunction);
14493
14729
  var SequenceWithoutSchemaWithRef = SequenceWithoutSchema;
14494
14730
  var SeriesInner = (props2) => {
14495
14731
  const childrenValue = useMemo38(() => {
@@ -14533,7 +14769,7 @@ var SeriesInner = (props2) => {
14533
14769
  }
14534
14770
  const currentStartFrame = startFrame + offset;
14535
14771
  startFrame += durationInFramesProp + offset;
14536
- return /* @__PURE__ */ jsx36(SequenceWithoutSchemaWithRef, {
14772
+ return /* @__PURE__ */ jsx37(SequenceWithoutSchemaWithRef, {
14537
14773
  ref: castedChild.ref,
14538
14774
  name: name || "<Series.Sequence>",
14539
14775
  _remotionInternalDocumentationLink: name ? undefined : "https://www.remotion.dev/docs/series",
@@ -14544,8 +14780,8 @@ var SeriesInner = (props2) => {
14544
14780
  });
14545
14781
  });
14546
14782
  }, [props2.children]);
14547
- return /* @__PURE__ */ jsx36(IsInsideSeriesContainer, {
14548
- children: /* @__PURE__ */ jsx36(Sequence, {
14783
+ return /* @__PURE__ */ jsx37(IsInsideSeriesContainer, {
14784
+ children: /* @__PURE__ */ jsx37(Sequence, {
14549
14785
  layout: "none",
14550
14786
  name: "<Series>",
14551
14787
  _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/series",
@@ -15027,7 +15263,7 @@ var VideoForRenderingForwardFunction = ({
15027
15263
  const frame = useCurrentFrame();
15028
15264
  const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
15029
15265
  const videoConfig = useUnsafeVideoConfig();
15030
- const videoRef = useRef27(null);
15266
+ const videoRef = useRef28(null);
15031
15267
  const sequenceContext = useContext38(SequenceContext);
15032
15268
  const mediaStartsAt = useMediaStartsAt();
15033
15269
  const environment = useRemotionEnvironment();
@@ -15218,13 +15454,13 @@ var VideoForRenderingForwardFunction = ({
15218
15454
  delayRender2
15219
15455
  ]);
15220
15456
  }
15221
- return /* @__PURE__ */ jsx37("video", {
15457
+ return /* @__PURE__ */ jsx38("video", {
15222
15458
  ref: videoRef,
15223
15459
  disableRemotePlayback: true,
15224
15460
  ...props2
15225
15461
  });
15226
15462
  };
15227
- var VideoForRendering = forwardRef14(VideoForRenderingForwardFunction);
15463
+ var VideoForRendering = forwardRef15(VideoForRenderingForwardFunction);
15228
15464
  var VideoForwardingFunction = (props2, ref) => {
15229
15465
  const {
15230
15466
  startFrom,
@@ -15254,7 +15490,7 @@ var VideoForwardingFunction = (props2, ref) => {
15254
15490
  throw new TypeError(`The \`<Html5Video>\` tag requires a string for \`src\`, but got ${JSON.stringify(props2.src)} instead.`);
15255
15491
  }
15256
15492
  const preloadedSrc = usePreload(props2.src);
15257
- const onDuration = useCallback23((src, durationInSeconds) => {
15493
+ const onDuration = useCallback24((src, durationInSeconds) => {
15258
15494
  setDurations({ type: "got-duration", durationInSeconds, src });
15259
15495
  }, [setDurations]);
15260
15496
  const durationFetched = durations[getAbsoluteSrc(preloadedSrc)] ?? durations[getAbsoluteSrc(props2.src)];
@@ -15267,7 +15503,7 @@ var VideoForwardingFunction = (props2, ref) => {
15267
15503
  });
15268
15504
  if (loop && durationFetched !== undefined) {
15269
15505
  if (!Number.isFinite(durationFetched)) {
15270
- return /* @__PURE__ */ jsx38(Html5Video, {
15506
+ return /* @__PURE__ */ jsx39(Html5Video, {
15271
15507
  ...propsOtherThanLoop,
15272
15508
  ref,
15273
15509
  stack,
@@ -15275,7 +15511,7 @@ var VideoForwardingFunction = (props2, ref) => {
15275
15511
  });
15276
15512
  }
15277
15513
  const mediaDuration = durationFetched * fps;
15278
- return /* @__PURE__ */ jsx38(Loop, {
15514
+ return /* @__PURE__ */ jsx39(Loop, {
15279
15515
  durationInFrames: calculateMediaDuration({
15280
15516
  trimAfter: trimAfterValue,
15281
15517
  mediaDurationInFrames: mediaDuration,
@@ -15285,7 +15521,7 @@ var VideoForwardingFunction = (props2, ref) => {
15285
15521
  layout: "none",
15286
15522
  name,
15287
15523
  showInTimeline: false,
15288
- children: /* @__PURE__ */ jsx38(Html5Video, {
15524
+ children: /* @__PURE__ */ jsx39(Html5Video, {
15289
15525
  ...propsOtherThanLoop,
15290
15526
  ref,
15291
15527
  stack,
@@ -15294,13 +15530,13 @@ var VideoForwardingFunction = (props2, ref) => {
15294
15530
  });
15295
15531
  }
15296
15532
  if (typeof trimBeforeValue !== "undefined" || typeof trimAfterValue !== "undefined") {
15297
- return /* @__PURE__ */ jsx38(Sequence, {
15533
+ return /* @__PURE__ */ jsx39(Sequence, {
15298
15534
  layout: "none",
15299
15535
  from: 0 - (trimBeforeValue ?? 0),
15300
15536
  showInTimeline: false,
15301
15537
  durationInFrames: trimAfterValue === undefined ? undefined : trimAfterValue / (props2.playbackRate ?? 1),
15302
15538
  name,
15303
- children: /* @__PURE__ */ jsx38(Html5Video, {
15539
+ children: /* @__PURE__ */ jsx39(Html5Video, {
15304
15540
  pauseWhenBuffering: pauseWhenBuffering ?? false,
15305
15541
  onVideoFrame,
15306
15542
  ...otherProps,
@@ -15315,14 +15551,14 @@ var VideoForwardingFunction = (props2, ref) => {
15315
15551
  volume: props2.volume
15316
15552
  }, "Html5Video");
15317
15553
  if (environment.isRendering) {
15318
- return /* @__PURE__ */ jsx38(VideoForRendering, {
15554
+ return /* @__PURE__ */ jsx39(VideoForRendering, {
15319
15555
  onDuration,
15320
15556
  onVideoFrame: onVideoFrame ?? null,
15321
15557
  ...otherProps,
15322
15558
  ref
15323
15559
  });
15324
15560
  }
15325
- return /* @__PURE__ */ jsx38(VideoForPreview, {
15561
+ return /* @__PURE__ */ jsx39(VideoForPreview, {
15326
15562
  onlyWarnForMediaSeekingError: false,
15327
15563
  ...otherProps,
15328
15564
  ref,
@@ -15335,7 +15571,7 @@ var VideoForwardingFunction = (props2, ref) => {
15335
15571
  onAutoPlayError: onAutoPlayError ?? undefined
15336
15572
  });
15337
15573
  };
15338
- var Html5Video = forwardRef15(VideoForwardingFunction);
15574
+ var Html5Video = forwardRef16(VideoForwardingFunction);
15339
15575
  addSequenceStackTraces(Html5Video);
15340
15576
  checkMultipleRemotionVersions();
15341
15577
  var proxyObj = {};
@@ -15364,9 +15600,9 @@ addSequenceStackTraces(Composition);
15364
15600
  addSequenceStackTraces(Folder);
15365
15601
 
15366
15602
  // ../shapes/dist/esm/index.mjs
15367
- import React, { useCallback as useCallback24, useMemo as useMemo40, useRef as useRef28 } from "react";
15603
+ import React, { useCallback as useCallback25, useMemo as useMemo40, useRef as useRef29 } from "react";
15368
15604
  import { version } from "react-dom";
15369
- import { jsx as jsx39, jsxs as jsxs3 } from "react/jsx-runtime";
15605
+ import { jsx as jsx40, jsxs as jsxs3 } from "react/jsx-runtime";
15370
15606
  import { jsx as jsx210 } from "react/jsx-runtime";
15371
15607
  import { jsx as jsx310 } from "react/jsx-runtime";
15372
15608
  import { jsx as jsx42 } from "react/jsx-runtime";
@@ -15553,11 +15789,11 @@ var RenderSvg = ({
15553
15789
  ...pathStyle ?? {}
15554
15790
  };
15555
15791
  }, [pathStyle]);
15556
- const outlineRef = useRef28(null);
15557
- const setSvgRef = useCallback24((node) => {
15792
+ const outlineRef = useRef29(null);
15793
+ const setSvgRef = useCallback25((node) => {
15558
15794
  outlineRef.current = node;
15559
15795
  }, []);
15560
- const setCanvasRef = useCallback24((canvas) => {
15796
+ const setCanvasRef = useCallback25((canvas) => {
15561
15797
  outlineRef.current = canvas;
15562
15798
  }, []);
15563
15799
  const memoizedEffectDefinitions = Internals.useMemoizedEffectDefinitions(effects);
@@ -15571,7 +15807,7 @@ var RenderSvg = ({
15571
15807
  xmlns: "http://www.w3.org/2000/svg",
15572
15808
  style: effects.length === 0 || !videoConfig ? actualStyle : { overflow: "visible" },
15573
15809
  children: [
15574
- /* @__PURE__ */ jsx39("path", {
15810
+ /* @__PURE__ */ jsx40("path", {
15575
15811
  ...reactSupportsTransformOrigin ? {
15576
15812
  transformOrigin
15577
15813
  } : {
@@ -15591,17 +15827,17 @@ var RenderSvg = ({
15591
15827
  const prevY = prevInstruction.y;
15592
15828
  return /* @__PURE__ */ jsxs3(React.Fragment, {
15593
15829
  children: [
15594
- /* @__PURE__ */ jsx39("path", {
15830
+ /* @__PURE__ */ jsx40("path", {
15595
15831
  d: `M ${prevX} ${prevY} ${i.cp1x} ${i.cp1y}`,
15596
15832
  strokeWidth: 2,
15597
15833
  stroke: "rgba(0, 0, 0, 0.4)"
15598
15834
  }),
15599
- /* @__PURE__ */ jsx39("path", {
15835
+ /* @__PURE__ */ jsx40("path", {
15600
15836
  d: `M ${i.x} ${i.y} ${i.cp2x} ${i.cp2y}`,
15601
15837
  strokeWidth: 2,
15602
15838
  stroke: "rgba(0, 0, 0, 0.4)"
15603
15839
  }),
15604
- /* @__PURE__ */ jsx39("circle", {
15840
+ /* @__PURE__ */ jsx40("circle", {
15605
15841
  cx: i.cp1x,
15606
15842
  cy: i.cp1y,
15607
15843
  r: 3,
@@ -15609,7 +15845,7 @@ var RenderSvg = ({
15609
15845
  strokeWidth: 2,
15610
15846
  stroke: "black"
15611
15847
  }),
15612
- /* @__PURE__ */ jsx39("circle", {
15848
+ /* @__PURE__ */ jsx40("circle", {
15613
15849
  cx: i.cp2x,
15614
15850
  cy: i.cp2y,
15615
15851
  r: 3,
@@ -15624,7 +15860,7 @@ var RenderSvg = ({
15624
15860
  }) : null
15625
15861
  ]
15626
15862
  });
15627
- const content = effects.length === 0 ? svg : /* @__PURE__ */ jsx39(HtmlInCanvas, {
15863
+ const content = effects.length === 0 ? svg : /* @__PURE__ */ jsx40(HtmlInCanvas, {
15628
15864
  ref: setCanvasRef,
15629
15865
  width: Math.ceil(width),
15630
15866
  height: Math.ceil(height),
@@ -15639,7 +15875,7 @@ var RenderSvg = ({
15639
15875
  if (!videoConfig) {
15640
15876
  return svg;
15641
15877
  }
15642
- return /* @__PURE__ */ jsx39(Sequence, {
15878
+ return /* @__PURE__ */ jsx40(Sequence, {
15643
15879
  layout: "none",
15644
15880
  from,
15645
15881
  hidden,
@@ -17752,8 +17988,8 @@ var extrudeAndTransformElement = (options) => {
17752
17988
  // ../design/dist/esm/index.mjs
17753
17989
  import { jsx as jsx212, Fragment as Fragment3 } from "react/jsx-runtime";
17754
17990
  import { jsx as jsx312, jsxs as jsxs5 } from "react/jsx-runtime";
17755
- import { useEffect as useEffect23, useMemo as useMemo210, useRef as useRef30 } from "react";
17756
- import { jsx as jsx43 } from "react/jsx-runtime";
17991
+ import { useEffect as useEffect23, useMemo as useMemo210, useRef as useRef31 } from "react";
17992
+ import { jsx as jsx44 } from "react/jsx-runtime";
17757
17993
  import { jsx as jsx53, jsxs as jsxs22 } from "react/jsx-runtime";
17758
17994
  import React62 from "react";
17759
17995
  import { jsx as jsx63 } from "react/jsx-runtime";
@@ -17764,7 +18000,7 @@ import React72 from "react";
17764
18000
  import { jsx as jsx103 } from "react/jsx-runtime";
17765
18001
  import { jsx as jsx112 } from "react/jsx-runtime";
17766
18002
  import { jsx as jsx122 } from "react/jsx-runtime";
17767
- import * as React362 from "react";
18003
+ import * as React36 from "react";
17768
18004
  import * as ReactDOM4 from "react-dom";
17769
18005
  import React112 from "react";
17770
18006
  import * as React8 from "react";
@@ -17803,7 +18039,7 @@ import * as React27 from "react";
17803
18039
  import * as React28 from "react";
17804
18040
  import { jsx as jsx232 } from "react/jsx-runtime";
17805
18041
  import * as React352 from "react";
17806
- import * as React31 from "react";
18042
+ import * as React312 from "react";
17807
18043
  import { useState as useState112 } from "react";
17808
18044
  import * as React292 from "react";
17809
18045
  import * as React302 from "react";
@@ -17813,21 +18049,21 @@ import * as React322 from "react";
17813
18049
  import { Fragment as Fragment8, jsx as jsx242, jsxs as jsxs4 } from "react/jsx-runtime";
17814
18050
  import { forwardRef as forwardRef142, createElement as createElement7 } from "react";
17815
18051
  import { forwardRef as forwardRef132, createElement as createElement6 } from "react";
17816
- import * as React37 from "react";
18052
+ import * as React372 from "react";
17817
18053
  import { jsx as jsx252, jsxs as jsxs52 } from "react/jsx-runtime";
17818
18054
  import { jsx as jsx262 } from "react/jsx-runtime";
17819
18055
  import * as React49 from "react";
17820
- import * as React382 from "react";
18056
+ import * as React38 from "react";
17821
18057
  import { jsx as jsx272 } from "react/jsx-runtime";
17822
18058
  import * as React47 from "react";
17823
- import React40 from "react";
18059
+ import React402 from "react";
17824
18060
  import * as React392 from "react";
17825
18061
  import { Fragment as Fragment22, jsx as jsx282 } from "react/jsx-runtime";
17826
18062
  import { jsx as jsx292 } from "react/jsx-runtime";
17827
18063
  import React210 from "react";
17828
18064
  import { jsx as jsx2102 } from "react/jsx-runtime";
17829
- import * as React42 from "react";
17830
- import * as React412 from "react";
18065
+ import * as React422 from "react";
18066
+ import * as React41 from "react";
17831
18067
  import * as React43 from "react";
17832
18068
  import * as ReactDOM5 from "react-dom";
17833
18069
  import { jsx as jsx302 } from "react/jsx-runtime";
@@ -17845,7 +18081,7 @@ import { jsx as jsx342 } from "react/jsx-runtime";
17845
18081
  import React51 from "react";
17846
18082
  import { jsx as jsx352 } from "react/jsx-runtime";
17847
18083
  import { jsx as jsx362 } from "react/jsx-runtime";
17848
- function setRef(ref, value) {
18084
+ function setRef2(ref, value) {
17849
18085
  if (typeof ref === "function") {
17850
18086
  return ref(value);
17851
18087
  } else if (ref !== null && ref !== undefined) {
@@ -17856,7 +18092,7 @@ function composeRefs(...refs) {
17856
18092
  return (node) => {
17857
18093
  let hasCleanup = false;
17858
18094
  const cleanups = refs.map((ref) => {
17859
- const cleanup = setRef(ref, node);
18095
+ const cleanup = setRef2(ref, node);
17860
18096
  if (!hasCleanup && typeof cleanup == "function") {
17861
18097
  hasCleanup = true;
17862
18098
  }
@@ -17869,7 +18105,7 @@ function composeRefs(...refs) {
17869
18105
  if (typeof cleanup == "function") {
17870
18106
  cleanup();
17871
18107
  } else {
17872
- setRef(refs[i], null);
18108
+ setRef2(refs[i], null);
17873
18109
  }
17874
18110
  }
17875
18111
  };
@@ -17907,9 +18143,9 @@ function createSlot(ownerName) {
17907
18143
  return child;
17908
18144
  }
17909
18145
  });
17910
- return /* @__PURE__ */ jsx41(SlotClone, { ...slotProps, ref: forwardedRef, children: React23.isValidElement(newElement) ? React23.cloneElement(newElement, undefined, newChildren) : null });
18146
+ return /* @__PURE__ */ jsx43(SlotClone, { ...slotProps, ref: forwardedRef, children: React23.isValidElement(newElement) ? React23.cloneElement(newElement, undefined, newChildren) : null });
17911
18147
  }
17912
- return /* @__PURE__ */ jsx41(SlotClone, { ...slotProps, ref: forwardedRef, children });
18148
+ return /* @__PURE__ */ jsx43(SlotClone, { ...slotProps, ref: forwardedRef, children });
17913
18149
  });
17914
18150
  Slot2.displayName = `${ownerName}.Slot`;
17915
18151
  return Slot2;
@@ -17937,7 +18173,7 @@ function createSlotClone(ownerName) {
17937
18173
  var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
17938
18174
  function createSlottable(ownerName) {
17939
18175
  const Slottable2 = ({ children }) => {
17940
- return /* @__PURE__ */ jsx41(Fragment2, { children });
18176
+ return /* @__PURE__ */ jsx43(Fragment2, { children });
17941
18177
  };
17942
18178
  Slottable2.displayName = `${ownerName}.Slottable`;
17943
18179
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -18002,7 +18238,7 @@ var getChildNodeFrom = (htmlElement) => {
18002
18238
  return childNode;
18003
18239
  };
18004
18240
  var useHoverTransforms = (ref, disabled) => {
18005
- const [state, setState] = React35.useState({
18241
+ const [state, setState] = React32.useState({
18006
18242
  progress: 0,
18007
18243
  isActive: false
18008
18244
  });
@@ -18014,7 +18250,7 @@ var useHoverTransforms = (ref, disabled) => {
18014
18250
  eventTarget.dispatchEvent(new Event("enabled"));
18015
18251
  }
18016
18252
  }, [disabled, eventTarget]);
18017
- React35.useEffect(() => {
18253
+ React32.useEffect(() => {
18018
18254
  const element = ref.current;
18019
18255
  if (!element)
18020
18256
  return;
@@ -18089,8 +18325,8 @@ var useHoverTransforms = (ref, disabled) => {
18089
18325
  return state;
18090
18326
  };
18091
18327
  var useClickTransforms = (ref) => {
18092
- const [hoverProgress, setHoverProgress] = React35.useState(0);
18093
- React35.useEffect(() => {
18328
+ const [hoverProgress, setHoverProgress] = React32.useState(0);
18329
+ React32.useEffect(() => {
18094
18330
  const element = getChildNodeFrom(ref.current);
18095
18331
  if (!element) {
18096
18332
  return;
@@ -18274,7 +18510,7 @@ var Spinner = ({ size, duration }) => {
18274
18510
  height: size
18275
18511
  };
18276
18512
  }, [size]);
18277
- const pathsRef = useRef30([]);
18513
+ const pathsRef = useRef31([]);
18278
18514
  useEffect23(() => {
18279
18515
  const animate = () => {
18280
18516
  const now = performance.now();
@@ -18293,11 +18529,11 @@ var Spinner = ({ size, duration }) => {
18293
18529
  cancelAnimationFrame(id);
18294
18530
  };
18295
18531
  }, [duration]);
18296
- return /* @__PURE__ */ jsx43("svg", {
18532
+ return /* @__PURE__ */ jsx44("svg", {
18297
18533
  style,
18298
18534
  viewBox: `0 0 ${viewBox} ${viewBox}`,
18299
18535
  children: new Array(lines).fill(true).map((_, index) => {
18300
- return /* @__PURE__ */ jsx43("path", {
18536
+ return /* @__PURE__ */ jsx44("path", {
18301
18537
  ref: (el) => pathsRef.current[index] = el,
18302
18538
  style: {
18303
18539
  rotate: `${index * Math.PI * 2 / lines}rad`,
@@ -18320,9 +18556,9 @@ var Button = ({
18320
18556
  ...rest
18321
18557
  }) => {
18322
18558
  const [dimensions, setDimensions] = useState22(null);
18323
- const ref = useRef29(null);
18559
+ const ref = useRef210(null);
18324
18560
  const { isActive, progress } = useHoverTransforms(ref, Boolean(disabled || loading));
18325
- const onPointerEnter = useCallback25((e) => {
18561
+ const onPointerEnter = useCallback26((e) => {
18326
18562
  if (e.pointerType !== "mouse") {
18327
18563
  return;
18328
18564
  }
@@ -18359,7 +18595,7 @@ var Button = ({
18359
18595
  const isDisabled = disabled || loading;
18360
18596
  const isAnchor = !asChild && "href" in rest && rest.href !== undefined;
18361
18597
  const sharedClasses = cn("text-text", "inline-flex", "justify-center", "bg-button-bg", "items-center", "font-brand", "border-solid", "text-[1em]", "rounded-lg", "border-black", "border-2", "border-b-4", "cursor-pointer", "px-4", "h-12", "flex-row", "items-center", "relative", "overflow-hidden", isDisabled && "cursor-default opacity-50", className);
18362
- const preventInteraction = useCallback25((e) => {
18598
+ const preventInteraction = useCallback26((e) => {
18363
18599
  e.preventDefault();
18364
18600
  e.stopPropagation();
18365
18601
  }, []);
@@ -18655,7 +18891,7 @@ function composeContextScopes(...scopes) {
18655
18891
  createScope.scopeName = baseScope.scopeName;
18656
18892
  return createScope;
18657
18893
  }
18658
- function setRef2(ref, value) {
18894
+ function setRef22(ref, value) {
18659
18895
  if (typeof ref === "function") {
18660
18896
  ref(value);
18661
18897
  } else if (ref !== null && ref !== undefined) {
@@ -18663,7 +18899,7 @@ function setRef2(ref, value) {
18663
18899
  }
18664
18900
  }
18665
18901
  function composeRefs2(...refs) {
18666
- return (node) => refs.forEach((ref) => setRef2(ref, node));
18902
+ return (node) => refs.forEach((ref) => setRef22(ref, node));
18667
18903
  }
18668
18904
  function useComposedRefs2(...refs) {
18669
18905
  return React9.useCallback(composeRefs2(...refs), refs);
@@ -21761,9 +21997,9 @@ var effectCar = createSidecarMedium();
21761
21997
  var nothing = function() {
21762
21998
  return;
21763
21999
  };
21764
- var RemoveScroll = React31.forwardRef(function(props, parentRef) {
21765
- var ref = React31.useRef(null);
21766
- var _a = React31.useState({
22000
+ var RemoveScroll = React312.forwardRef(function(props, parentRef) {
22001
+ var ref = React312.useRef(null);
22002
+ var _a = React312.useState({
21767
22003
  onScrollCapture: nothing,
21768
22004
  onWheelCapture: nothing,
21769
22005
  onTouchMoveCapture: nothing
@@ -21772,7 +22008,7 @@ var RemoveScroll = React31.forwardRef(function(props, parentRef) {
21772
22008
  var SideCar2 = sideCar;
21773
22009
  var containerRef = useMergeRefs([ref, parentRef]);
21774
22010
  var containerProps = __assign(__assign({}, rest), callbacks);
21775
- return React31.createElement(React31.Fragment, null, enabled && React31.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode }), forwardProps ? React31.cloneElement(React31.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React31.createElement(Container, __assign({}, containerProps, { className, ref: containerRef }), children));
22011
+ return React312.createElement(React312.Fragment, null, enabled && React312.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode }), forwardProps ? React312.cloneElement(React312.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React312.createElement(Container, __assign({}, containerProps, { className, ref: containerRef }), children));
21776
22012
  });
21777
22013
  RemoveScroll.defaultProps = {
21778
22014
  enabled: true,
@@ -22264,9 +22500,9 @@ var Select = (props) => {
22264
22500
  required
22265
22501
  } = props;
22266
22502
  const popperScope = usePopperScope(__scopeSelect);
22267
- const [trigger, setTrigger] = React362.useState(null);
22268
- const [valueNode, setValueNode] = React362.useState(null);
22269
- const [valueNodeHasChildren, setValueNodeHasChildren] = React362.useState(false);
22503
+ const [trigger, setTrigger] = React36.useState(null);
22504
+ const [valueNode, setValueNode] = React36.useState(null);
22505
+ const [valueNodeHasChildren, setValueNodeHasChildren] = React36.useState(false);
22270
22506
  const direction = useDirection(dir);
22271
22507
  const [open = false, setOpen] = useControllableState({
22272
22508
  prop: openProp,
@@ -22278,9 +22514,9 @@ var Select = (props) => {
22278
22514
  defaultProp: defaultValue,
22279
22515
  onChange: onValueChange
22280
22516
  });
22281
- const triggerPointerDownPosRef = React362.useRef(null);
22517
+ const triggerPointerDownPosRef = React36.useRef(null);
22282
22518
  const isFormControl = trigger ? Boolean(trigger.closest("form")) : true;
22283
- const [nativeOptionsSet, setNativeOptionsSet] = React362.useState(/* @__PURE__ */ new Set);
22519
+ const [nativeOptionsSet, setNativeOptionsSet] = React36.useState(/* @__PURE__ */ new Set);
22284
22520
  const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
22285
22521
  return /* @__PURE__ */ jsx242(Root22, { ...popperScope, children: /* @__PURE__ */ jsxs4(SelectProvider, {
22286
22522
  required,
@@ -22302,10 +22538,10 @@ var Select = (props) => {
22302
22538
  children: [
22303
22539
  /* @__PURE__ */ jsx242(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx242(SelectNativeOptionsProvider, {
22304
22540
  scope: props.__scopeSelect,
22305
- onNativeOptionAdd: React362.useCallback((option) => {
22541
+ onNativeOptionAdd: React36.useCallback((option) => {
22306
22542
  setNativeOptionsSet((prev) => new Set(prev).add(option));
22307
22543
  }, []),
22308
- onNativeOptionRemove: React362.useCallback((option) => {
22544
+ onNativeOptionRemove: React36.useCallback((option) => {
22309
22545
  setNativeOptionsSet((prev) => {
22310
22546
  const optionsSet = new Set(prev);
22311
22547
  optionsSet.delete(option);
@@ -22333,7 +22569,7 @@ var Select = (props) => {
22333
22569
  };
22334
22570
  Select.displayName = SELECT_NAME;
22335
22571
  var TRIGGER_NAME = "SelectTrigger";
22336
- var SelectTrigger = React362.forwardRef((props, forwardedRef) => {
22572
+ var SelectTrigger = React36.forwardRef((props, forwardedRef) => {
22337
22573
  const { __scopeSelect, disabled = false, ...triggerProps } = props;
22338
22574
  const popperScope = usePopperScope(__scopeSelect);
22339
22575
  const context = useSelectContext(TRIGGER_NAME, __scopeSelect);
@@ -22401,7 +22637,7 @@ var SelectTrigger = React362.forwardRef((props, forwardedRef) => {
22401
22637
  });
22402
22638
  SelectTrigger.displayName = TRIGGER_NAME;
22403
22639
  var VALUE_NAME = "SelectValue";
22404
- var SelectValue = React362.forwardRef((props, forwardedRef) => {
22640
+ var SelectValue = React36.forwardRef((props, forwardedRef) => {
22405
22641
  const { __scopeSelect, className, style, children, placeholder = "", ...valueProps } = props;
22406
22642
  const context = useSelectContext(VALUE_NAME, __scopeSelect);
22407
22643
  const { onValueNodeHasChildrenChange } = context;
@@ -22419,7 +22655,7 @@ var SelectValue = React362.forwardRef((props, forwardedRef) => {
22419
22655
  });
22420
22656
  SelectValue.displayName = VALUE_NAME;
22421
22657
  var ICON_NAME = "SelectIcon";
22422
- var SelectIcon = React362.forwardRef((props, forwardedRef) => {
22658
+ var SelectIcon = React36.forwardRef((props, forwardedRef) => {
22423
22659
  const { __scopeSelect, children, ...iconProps } = props;
22424
22660
  return /* @__PURE__ */ jsx242(Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "▼" });
22425
22661
  });
@@ -22430,9 +22666,9 @@ var SelectPortal = (props) => {
22430
22666
  };
22431
22667
  SelectPortal.displayName = PORTAL_NAME2;
22432
22668
  var CONTENT_NAME2 = "SelectContent";
22433
- var SelectContent = React362.forwardRef((props, forwardedRef) => {
22669
+ var SelectContent = React36.forwardRef((props, forwardedRef) => {
22434
22670
  const context = useSelectContext(CONTENT_NAME2, props.__scopeSelect);
22435
- const [fragment, setFragment] = React362.useState();
22671
+ const [fragment, setFragment] = React36.useState();
22436
22672
  useLayoutEffect22(() => {
22437
22673
  setFragment(new DocumentFragment);
22438
22674
  }, []);
@@ -22446,7 +22682,7 @@ SelectContent.displayName = CONTENT_NAME2;
22446
22682
  var CONTENT_MARGIN = 10;
22447
22683
  var [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME2);
22448
22684
  var CONTENT_IMPL_NAME = "SelectContentImpl";
22449
- var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
22685
+ var SelectContentImpl = React36.forwardRef((props, forwardedRef) => {
22450
22686
  const {
22451
22687
  __scopeSelect,
22452
22688
  position = "item-aligned",
@@ -22466,20 +22702,20 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
22466
22702
  ...contentProps
22467
22703
  } = props;
22468
22704
  const context = useSelectContext(CONTENT_NAME2, __scopeSelect);
22469
- const [content, setContent] = React362.useState(null);
22470
- const [viewport, setViewport] = React362.useState(null);
22705
+ const [content, setContent] = React36.useState(null);
22706
+ const [viewport, setViewport] = React36.useState(null);
22471
22707
  const composedRefs = useComposedRefs2(forwardedRef, (node) => setContent(node));
22472
- const [selectedItem, setSelectedItem] = React362.useState(null);
22473
- const [selectedItemText, setSelectedItemText] = React362.useState(null);
22708
+ const [selectedItem, setSelectedItem] = React36.useState(null);
22709
+ const [selectedItemText, setSelectedItemText] = React36.useState(null);
22474
22710
  const getItems = useCollection(__scopeSelect);
22475
- const [isPositioned, setIsPositioned] = React362.useState(false);
22476
- const firstValidItemFoundRef = React362.useRef(false);
22477
- React362.useEffect(() => {
22711
+ const [isPositioned, setIsPositioned] = React36.useState(false);
22712
+ const firstValidItemFoundRef = React36.useRef(false);
22713
+ React36.useEffect(() => {
22478
22714
  if (content)
22479
22715
  return hideOthers(content);
22480
22716
  }, [content]);
22481
22717
  useFocusGuards();
22482
- const focusFirst2 = React362.useCallback((candidates) => {
22718
+ const focusFirst2 = React36.useCallback((candidates) => {
22483
22719
  const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);
22484
22720
  const [lastItem] = restItems.slice(-1);
22485
22721
  const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
@@ -22496,14 +22732,14 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
22496
22732
  return;
22497
22733
  }
22498
22734
  }, [getItems, viewport]);
22499
- const focusSelectedItem = React362.useCallback(() => focusFirst2([selectedItem, content]), [focusFirst2, selectedItem, content]);
22500
- React362.useEffect(() => {
22735
+ const focusSelectedItem = React36.useCallback(() => focusFirst2([selectedItem, content]), [focusFirst2, selectedItem, content]);
22736
+ React36.useEffect(() => {
22501
22737
  if (isPositioned) {
22502
22738
  focusSelectedItem();
22503
22739
  }
22504
22740
  }, [isPositioned, focusSelectedItem]);
22505
22741
  const { onOpenChange, triggerPointerDownPosRef } = context;
22506
- React362.useEffect(() => {
22742
+ React36.useEffect(() => {
22507
22743
  if (content) {
22508
22744
  let pointerMoveDelta = { x: 0, y: 0 };
22509
22745
  const handlePointerMove = (event) => {
@@ -22533,7 +22769,7 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
22533
22769
  };
22534
22770
  }
22535
22771
  }, [content, onOpenChange, triggerPointerDownPosRef]);
22536
- React362.useEffect(() => {
22772
+ React36.useEffect(() => {
22537
22773
  const close = () => onOpenChange(false);
22538
22774
  window.addEventListener("blur", close);
22539
22775
  window.addEventListener("resize", close);
@@ -22550,7 +22786,7 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
22550
22786
  setTimeout(() => nextItem.ref.current.focus());
22551
22787
  }
22552
22788
  });
22553
- const itemRefCallback = React362.useCallback((node, value, disabled) => {
22789
+ const itemRefCallback = React36.useCallback((node, value, disabled) => {
22554
22790
  const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
22555
22791
  const isSelectedItem = context.value !== undefined && context.value === value;
22556
22792
  if (isSelectedItem || isFirstValidItem) {
@@ -22559,8 +22795,8 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
22559
22795
  firstValidItemFoundRef.current = true;
22560
22796
  }
22561
22797
  }, [context.value]);
22562
- const handleItemLeave = React362.useCallback(() => content?.focus(), [content]);
22563
- const itemTextRefCallback = React362.useCallback((node, value, disabled) => {
22798
+ const handleItemLeave = React36.useCallback(() => content?.focus(), [content]);
22799
+ const itemTextRefCallback = React36.useCallback((node, value, disabled) => {
22564
22800
  const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
22565
22801
  const isSelectedItem = context.value !== undefined && context.value === value;
22566
22802
  if (isSelectedItem || isFirstValidItem) {
@@ -22655,18 +22891,18 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
22655
22891
  });
22656
22892
  SelectContentImpl.displayName = CONTENT_IMPL_NAME;
22657
22893
  var ITEM_ALIGNED_POSITION_NAME = "SelectItemAlignedPosition";
22658
- var SelectItemAlignedPosition = React362.forwardRef((props, forwardedRef) => {
22894
+ var SelectItemAlignedPosition = React36.forwardRef((props, forwardedRef) => {
22659
22895
  const { __scopeSelect, onPlaced, ...popperProps } = props;
22660
22896
  const context = useSelectContext(CONTENT_NAME2, __scopeSelect);
22661
22897
  const contentContext = useSelectContentContext(CONTENT_NAME2, __scopeSelect);
22662
- const [contentWrapper, setContentWrapper] = React362.useState(null);
22663
- const [content, setContent] = React362.useState(null);
22898
+ const [contentWrapper, setContentWrapper] = React36.useState(null);
22899
+ const [content, setContent] = React36.useState(null);
22664
22900
  const composedRefs = useComposedRefs2(forwardedRef, (node) => setContent(node));
22665
22901
  const getItems = useCollection(__scopeSelect);
22666
- const shouldExpandOnScrollRef = React362.useRef(false);
22667
- const shouldRepositionRef = React362.useRef(true);
22902
+ const shouldExpandOnScrollRef = React36.useRef(false);
22903
+ const shouldRepositionRef = React36.useRef(true);
22668
22904
  const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;
22669
- const position = React362.useCallback(() => {
22905
+ const position = React36.useCallback(() => {
22670
22906
  if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {
22671
22907
  const triggerRect = context.trigger.getBoundingClientRect();
22672
22908
  const contentRect = content.getBoundingClientRect();
@@ -22747,12 +22983,12 @@ var SelectItemAlignedPosition = React362.forwardRef((props, forwardedRef) => {
22747
22983
  onPlaced
22748
22984
  ]);
22749
22985
  useLayoutEffect22(() => position(), [position]);
22750
- const [contentZIndex, setContentZIndex] = React362.useState();
22986
+ const [contentZIndex, setContentZIndex] = React36.useState();
22751
22987
  useLayoutEffect22(() => {
22752
22988
  if (content)
22753
22989
  setContentZIndex(window.getComputedStyle(content).zIndex);
22754
22990
  }, [content]);
22755
- const handleScrollButtonChange = React362.useCallback((node) => {
22991
+ const handleScrollButtonChange = React36.useCallback((node) => {
22756
22992
  if (node && shouldRepositionRef.current === true) {
22757
22993
  position();
22758
22994
  focusSelectedItem?.();
@@ -22786,7 +23022,7 @@ var SelectItemAlignedPosition = React362.forwardRef((props, forwardedRef) => {
22786
23022
  });
22787
23023
  SelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;
22788
23024
  var POPPER_POSITION_NAME = "SelectPopperPosition";
22789
- var SelectPopperPosition = React362.forwardRef((props, forwardedRef) => {
23025
+ var SelectPopperPosition = React36.forwardRef((props, forwardedRef) => {
22790
23026
  const {
22791
23027
  __scopeSelect,
22792
23028
  align = "start",
@@ -22816,12 +23052,12 @@ var SelectPopperPosition = React362.forwardRef((props, forwardedRef) => {
22816
23052
  SelectPopperPosition.displayName = POPPER_POSITION_NAME;
22817
23053
  var [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME2, {});
22818
23054
  var VIEWPORT_NAME = "SelectViewport";
22819
- var SelectViewport = React362.forwardRef((props, forwardedRef) => {
23055
+ var SelectViewport = React36.forwardRef((props, forwardedRef) => {
22820
23056
  const { __scopeSelect, nonce, ...viewportProps } = props;
22821
23057
  const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);
22822
23058
  const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
22823
23059
  const composedRefs = useComposedRefs2(forwardedRef, contentContext.onViewportChange);
22824
- const prevScrollTopRef = React362.useRef(0);
23060
+ const prevScrollTopRef = React36.useRef(0);
22825
23061
  return /* @__PURE__ */ jsxs4(Fragment8, { children: [
22826
23062
  /* @__PURE__ */ jsx242("style", {
22827
23063
  dangerouslySetInnerHTML: {
@@ -22870,14 +23106,14 @@ var SelectViewport = React362.forwardRef((props, forwardedRef) => {
22870
23106
  SelectViewport.displayName = VIEWPORT_NAME;
22871
23107
  var GROUP_NAME = "SelectGroup";
22872
23108
  var [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);
22873
- var SelectGroup = React362.forwardRef((props, forwardedRef) => {
23109
+ var SelectGroup = React36.forwardRef((props, forwardedRef) => {
22874
23110
  const { __scopeSelect, ...groupProps } = props;
22875
23111
  const groupId = useId();
22876
23112
  return /* @__PURE__ */ jsx242(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx242(Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
22877
23113
  });
22878
23114
  SelectGroup.displayName = GROUP_NAME;
22879
23115
  var LABEL_NAME = "SelectLabel";
22880
- var SelectLabel = React362.forwardRef((props, forwardedRef) => {
23116
+ var SelectLabel = React36.forwardRef((props, forwardedRef) => {
22881
23117
  const { __scopeSelect, ...labelProps } = props;
22882
23118
  const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
22883
23119
  return /* @__PURE__ */ jsx242(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
@@ -22885,7 +23121,7 @@ var SelectLabel = React362.forwardRef((props, forwardedRef) => {
22885
23121
  SelectLabel.displayName = LABEL_NAME;
22886
23122
  var ITEM_NAME = "SelectItem";
22887
23123
  var [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);
22888
- var SelectItem = React362.forwardRef((props, forwardedRef) => {
23124
+ var SelectItem = React36.forwardRef((props, forwardedRef) => {
22889
23125
  const {
22890
23126
  __scopeSelect,
22891
23127
  value,
@@ -22896,8 +23132,8 @@ var SelectItem = React362.forwardRef((props, forwardedRef) => {
22896
23132
  const context = useSelectContext(ITEM_NAME, __scopeSelect);
22897
23133
  const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);
22898
23134
  const isSelected = context.value === value;
22899
- const [textValue, setTextValue] = React362.useState(textValueProp ?? "");
22900
- const [isFocused, setIsFocused] = React362.useState(false);
23135
+ const [textValue, setTextValue] = React36.useState(textValueProp ?? "");
23136
+ const [isFocused, setIsFocused] = React36.useState(false);
22901
23137
  const composedRefs = useComposedRefs2(forwardedRef, (node) => contentContext.itemRefCallback?.(node, value, disabled));
22902
23138
  const textId = useId();
22903
23139
  const handleSelect = () => {
@@ -22915,7 +23151,7 @@ var SelectItem = React362.forwardRef((props, forwardedRef) => {
22915
23151
  disabled,
22916
23152
  textId,
22917
23153
  isSelected,
22918
- onItemTextChange: React362.useCallback((node) => {
23154
+ onItemTextChange: React36.useCallback((node) => {
22919
23155
  setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? "").trim());
22920
23156
  }, []),
22921
23157
  children: /* @__PURE__ */ jsx242(Collection.ItemSlot, {
@@ -22964,16 +23200,16 @@ var SelectItem = React362.forwardRef((props, forwardedRef) => {
22964
23200
  });
22965
23201
  SelectItem.displayName = ITEM_NAME;
22966
23202
  var ITEM_TEXT_NAME = "SelectItemText";
22967
- var SelectItemText = React362.forwardRef((props, forwardedRef) => {
23203
+ var SelectItemText = React36.forwardRef((props, forwardedRef) => {
22968
23204
  const { __scopeSelect, className, style, ...itemTextProps } = props;
22969
23205
  const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);
22970
23206
  const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);
22971
23207
  const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);
22972
23208
  const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);
22973
- const [itemTextNode, setItemTextNode] = React362.useState(null);
23209
+ const [itemTextNode, setItemTextNode] = React36.useState(null);
22974
23210
  const composedRefs = useComposedRefs2(forwardedRef, (node) => setItemTextNode(node), itemContext.onItemTextChange, (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled));
22975
23211
  const textContent = itemTextNode?.textContent;
22976
- const nativeOption = React362.useMemo(() => /* @__PURE__ */ jsx242("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value), [itemContext.disabled, itemContext.value, textContent]);
23212
+ const nativeOption = React36.useMemo(() => /* @__PURE__ */ jsx242("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value), [itemContext.disabled, itemContext.value, textContent]);
22977
23213
  const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;
22978
23214
  useLayoutEffect22(() => {
22979
23215
  onNativeOptionAdd(nativeOption);
@@ -22986,17 +23222,17 @@ var SelectItemText = React362.forwardRef((props, forwardedRef) => {
22986
23222
  });
22987
23223
  SelectItemText.displayName = ITEM_TEXT_NAME;
22988
23224
  var ITEM_INDICATOR_NAME = "SelectItemIndicator";
22989
- var SelectItemIndicator = React362.forwardRef((props, forwardedRef) => {
23225
+ var SelectItemIndicator = React36.forwardRef((props, forwardedRef) => {
22990
23226
  const { __scopeSelect, ...itemIndicatorProps } = props;
22991
23227
  const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
22992
23228
  return itemContext.isSelected ? /* @__PURE__ */ jsx242(Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
22993
23229
  });
22994
23230
  SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
22995
23231
  var SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
22996
- var SelectScrollUpButton = React362.forwardRef((props, forwardedRef) => {
23232
+ var SelectScrollUpButton = React36.forwardRef((props, forwardedRef) => {
22997
23233
  const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
22998
23234
  const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
22999
- const [canScrollUp, setCanScrollUp] = React362.useState(false);
23235
+ const [canScrollUp, setCanScrollUp] = React36.useState(false);
23000
23236
  const composedRefs = useComposedRefs2(forwardedRef, viewportContext.onScrollButtonChange);
23001
23237
  useLayoutEffect22(() => {
23002
23238
  if (contentContext.viewport && contentContext.isPositioned) {
@@ -23024,10 +23260,10 @@ var SelectScrollUpButton = React362.forwardRef((props, forwardedRef) => {
23024
23260
  });
23025
23261
  SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
23026
23262
  var SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
23027
- var SelectScrollDownButton = React362.forwardRef((props, forwardedRef) => {
23263
+ var SelectScrollDownButton = React36.forwardRef((props, forwardedRef) => {
23028
23264
  const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
23029
23265
  const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
23030
- const [canScrollDown, setCanScrollDown] = React362.useState(false);
23266
+ const [canScrollDown, setCanScrollDown] = React36.useState(false);
23031
23267
  const composedRefs = useComposedRefs2(forwardedRef, viewportContext.onScrollButtonChange);
23032
23268
  useLayoutEffect22(() => {
23033
23269
  if (contentContext.viewport && contentContext.isPositioned) {
@@ -23055,18 +23291,18 @@ var SelectScrollDownButton = React362.forwardRef((props, forwardedRef) => {
23055
23291
  }) : null;
23056
23292
  });
23057
23293
  SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
23058
- var SelectScrollButtonImpl = React362.forwardRef((props, forwardedRef) => {
23294
+ var SelectScrollButtonImpl = React36.forwardRef((props, forwardedRef) => {
23059
23295
  const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;
23060
23296
  const contentContext = useSelectContentContext("SelectScrollButton", __scopeSelect);
23061
- const autoScrollTimerRef = React362.useRef(null);
23297
+ const autoScrollTimerRef = React36.useRef(null);
23062
23298
  const getItems = useCollection(__scopeSelect);
23063
- const clearAutoScrollTimer = React362.useCallback(() => {
23299
+ const clearAutoScrollTimer = React36.useCallback(() => {
23064
23300
  if (autoScrollTimerRef.current !== null) {
23065
23301
  window.clearInterval(autoScrollTimerRef.current);
23066
23302
  autoScrollTimerRef.current = null;
23067
23303
  }
23068
23304
  }, []);
23069
- React362.useEffect(() => {
23305
+ React36.useEffect(() => {
23070
23306
  return () => clearAutoScrollTimer();
23071
23307
  }, [clearAutoScrollTimer]);
23072
23308
  useLayoutEffect22(() => {
@@ -23095,13 +23331,13 @@ var SelectScrollButtonImpl = React362.forwardRef((props, forwardedRef) => {
23095
23331
  });
23096
23332
  });
23097
23333
  var SEPARATOR_NAME = "SelectSeparator";
23098
- var SelectSeparator = React362.forwardRef((props, forwardedRef) => {
23334
+ var SelectSeparator = React36.forwardRef((props, forwardedRef) => {
23099
23335
  const { __scopeSelect, ...separatorProps } = props;
23100
23336
  return /* @__PURE__ */ jsx242(Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
23101
23337
  });
23102
23338
  SelectSeparator.displayName = SEPARATOR_NAME;
23103
23339
  var ARROW_NAME2 = "SelectArrow";
23104
- var SelectArrow = React362.forwardRef((props, forwardedRef) => {
23340
+ var SelectArrow = React36.forwardRef((props, forwardedRef) => {
23105
23341
  const { __scopeSelect, ...arrowProps } = props;
23106
23342
  const popperScope = usePopperScope(__scopeSelect);
23107
23343
  const context = useSelectContext(ARROW_NAME2, __scopeSelect);
@@ -23112,12 +23348,12 @@ SelectArrow.displayName = ARROW_NAME2;
23112
23348
  function shouldShowPlaceholder(value) {
23113
23349
  return value === "" || value === undefined;
23114
23350
  }
23115
- var BubbleSelect = React362.forwardRef((props, forwardedRef) => {
23351
+ var BubbleSelect = React36.forwardRef((props, forwardedRef) => {
23116
23352
  const { value, ...selectProps } = props;
23117
- const ref = React362.useRef(null);
23353
+ const ref = React36.useRef(null);
23118
23354
  const composedRefs = useComposedRefs2(forwardedRef, ref);
23119
23355
  const prevValue = usePrevious(value);
23120
- React362.useEffect(() => {
23356
+ React36.useEffect(() => {
23121
23357
  const select = ref.current;
23122
23358
  const selectProto = window.HTMLSelectElement.prototype;
23123
23359
  const descriptor = Object.getOwnPropertyDescriptor(selectProto, "value");
@@ -23133,9 +23369,9 @@ var BubbleSelect = React362.forwardRef((props, forwardedRef) => {
23133
23369
  BubbleSelect.displayName = "BubbleSelect";
23134
23370
  function useTypeaheadSearch(onSearchChange) {
23135
23371
  const handleSearchChange = useCallbackRef(onSearchChange);
23136
- const searchRef = React362.useRef("");
23137
- const timerRef = React362.useRef(0);
23138
- const handleTypeaheadSearch = React362.useCallback((key) => {
23372
+ const searchRef = React36.useRef("");
23373
+ const timerRef = React36.useRef(0);
23374
+ const handleTypeaheadSearch = React36.useCallback((key) => {
23139
23375
  const search = searchRef.current + key;
23140
23376
  handleSearchChange(search);
23141
23377
  (function updateSearch(value) {
@@ -23145,11 +23381,11 @@ function useTypeaheadSearch(onSearchChange) {
23145
23381
  timerRef.current = window.setTimeout(() => updateSearch(""), 1000);
23146
23382
  })(search);
23147
23383
  }, [handleSearchChange]);
23148
- const resetTypeahead = React362.useCallback(() => {
23384
+ const resetTypeahead = React36.useCallback(() => {
23149
23385
  searchRef.current = "";
23150
23386
  window.clearTimeout(timerRef.current);
23151
23387
  }, []);
23152
- React362.useEffect(() => {
23388
+ React36.useEffect(() => {
23153
23389
  return () => window.clearTimeout(timerRef.current);
23154
23390
  }, []);
23155
23391
  return [searchRef, handleTypeaheadSearch, resetTypeahead];
@@ -23238,7 +23474,7 @@ var ChevronDown = createLucideIcon("ChevronDown", [
23238
23474
  var ChevronUp = createLucideIcon("ChevronUp", [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]]);
23239
23475
  var Select2 = Root222;
23240
23476
  var SelectValue2 = Value;
23241
- var SelectTrigger2 = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs52(Trigger, {
23477
+ var SelectTrigger2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs52(Trigger, {
23242
23478
  ref,
23243
23479
  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),
23244
23480
  ...props,
@@ -23253,7 +23489,7 @@ var SelectTrigger2 = React37.forwardRef(({ className, children, ...props }, ref)
23253
23489
  ]
23254
23490
  }));
23255
23491
  SelectTrigger2.displayName = Trigger.displayName;
23256
- var SelectScrollUpButton2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(ScrollUpButton, {
23492
+ var SelectScrollUpButton2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(ScrollUpButton, {
23257
23493
  ref,
23258
23494
  className: cn("flex cursor-default items-center justify-center py-1", className),
23259
23495
  ...props,
@@ -23262,7 +23498,7 @@ var SelectScrollUpButton2 = React37.forwardRef(({ className, ...props }, ref) =>
23262
23498
  })
23263
23499
  }));
23264
23500
  SelectScrollUpButton2.displayName = ScrollUpButton.displayName;
23265
- var SelectScrollDownButton2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(ScrollDownButton, {
23501
+ var SelectScrollDownButton2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(ScrollDownButton, {
23266
23502
  ref,
23267
23503
  className: cn("flex cursor-default items-center justify-center py-1", className),
23268
23504
  ...props,
@@ -23271,7 +23507,7 @@ var SelectScrollDownButton2 = React37.forwardRef(({ className, ...props }, ref)
23271
23507
  })
23272
23508
  }));
23273
23509
  SelectScrollDownButton2.displayName = ScrollDownButton.displayName;
23274
- var SelectContent2 = React37.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx252(Portal2, {
23510
+ var SelectContent2 = React372.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx252(Portal2, {
23275
23511
  children: /* @__PURE__ */ jsxs52(Content2, {
23276
23512
  ref,
23277
23513
  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),
@@ -23288,13 +23524,13 @@ var SelectContent2 = React37.forwardRef(({ className, children, position = "popp
23288
23524
  })
23289
23525
  }));
23290
23526
  SelectContent2.displayName = Content2.displayName;
23291
- var SelectLabel2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(Label, {
23527
+ var SelectLabel2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(Label, {
23292
23528
  ref,
23293
23529
  className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className),
23294
23530
  ...props
23295
23531
  }));
23296
23532
  SelectLabel2.displayName = Label.displayName;
23297
- var SelectItem2 = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs52(Item, {
23533
+ var SelectItem2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs52(Item, {
23298
23534
  ref,
23299
23535
  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),
23300
23536
  ...props,
@@ -23313,7 +23549,7 @@ var SelectItem2 = React37.forwardRef(({ className, children, ...props }, ref) =>
23313
23549
  ]
23314
23550
  }));
23315
23551
  SelectItem2.displayName = Item.displayName;
23316
- var SelectSeparator2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(Separator, {
23552
+ var SelectSeparator2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(Separator, {
23317
23553
  ref,
23318
23554
  className: cn("-mx-1 my-1 h-px bg-muted", className),
23319
23555
  ...props
@@ -23346,19 +23582,19 @@ function composeEventHandlers2(originalEventHandler, ourEventHandler, { checkFor
23346
23582
  function createContextScope2(scopeName, createContextScopeDeps = []) {
23347
23583
  let defaultContexts = [];
23348
23584
  function createContext32(rootComponentName, defaultContext) {
23349
- const BaseContext = React382.createContext(defaultContext);
23585
+ const BaseContext = React38.createContext(defaultContext);
23350
23586
  const index2 = defaultContexts.length;
23351
23587
  defaultContexts = [...defaultContexts, defaultContext];
23352
23588
  const Provider = (props) => {
23353
23589
  const { scope, children, ...context } = props;
23354
23590
  const Context = scope?.[scopeName]?.[index2] || BaseContext;
23355
- const value = React382.useMemo(() => context, Object.values(context));
23591
+ const value = React38.useMemo(() => context, Object.values(context));
23356
23592
  return /* @__PURE__ */ jsx272(Context.Provider, { value, children });
23357
23593
  };
23358
23594
  Provider.displayName = rootComponentName + "Provider";
23359
23595
  function useContext222(consumerName, scope) {
23360
23596
  const Context = scope?.[scopeName]?.[index2] || BaseContext;
23361
- const context = React382.useContext(Context);
23597
+ const context = React38.useContext(Context);
23362
23598
  if (context)
23363
23599
  return context;
23364
23600
  if (defaultContext !== undefined)
@@ -23369,11 +23605,11 @@ function createContextScope2(scopeName, createContextScopeDeps = []) {
23369
23605
  }
23370
23606
  const createScope = () => {
23371
23607
  const scopeContexts = defaultContexts.map((defaultContext) => {
23372
- return React382.createContext(defaultContext);
23608
+ return React38.createContext(defaultContext);
23373
23609
  });
23374
23610
  return function useScope(scope) {
23375
23611
  const contexts = scope?.[scopeName] || scopeContexts;
23376
- return React382.useMemo(() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), [scope, contexts]);
23612
+ return React38.useMemo(() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), [scope, contexts]);
23377
23613
  };
23378
23614
  };
23379
23615
  createScope.scopeName = scopeName;
@@ -23394,7 +23630,7 @@ function composeContextScopes2(...scopes) {
23394
23630
  const currentScope = scopeProps[`__scope${scopeName}`];
23395
23631
  return { ...nextScopes2, ...currentScope };
23396
23632
  }, {});
23397
- return React382.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
23633
+ return React38.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
23398
23634
  };
23399
23635
  };
23400
23636
  createScope.scopeName = baseScope.scopeName;
@@ -23487,14 +23723,14 @@ function createCollection2(name) {
23487
23723
  const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map });
23488
23724
  const CollectionProvider = (props) => {
23489
23725
  const { scope, children } = props;
23490
- const ref = React40.useRef(null);
23491
- const itemMap = React40.useRef(/* @__PURE__ */ new Map).current;
23726
+ const ref = React402.useRef(null);
23727
+ const itemMap = React402.useRef(/* @__PURE__ */ new Map).current;
23492
23728
  return /* @__PURE__ */ jsx292(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
23493
23729
  };
23494
23730
  CollectionProvider.displayName = PROVIDER_NAME;
23495
23731
  const COLLECTION_SLOT_NAME = name + "CollectionSlot";
23496
23732
  const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME);
23497
- const CollectionSlot = React40.forwardRef((props, forwardedRef) => {
23733
+ const CollectionSlot = React402.forwardRef((props, forwardedRef) => {
23498
23734
  const { scope, children } = props;
23499
23735
  const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
23500
23736
  const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);
@@ -23504,12 +23740,12 @@ function createCollection2(name) {
23504
23740
  const ITEM_SLOT_NAME = name + "CollectionItemSlot";
23505
23741
  const ITEM_DATA_ATTR = "data-radix-collection-item";
23506
23742
  const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME);
23507
- const CollectionItemSlot = React40.forwardRef((props, forwardedRef) => {
23743
+ const CollectionItemSlot = React402.forwardRef((props, forwardedRef) => {
23508
23744
  const { scope, children, ...itemData } = props;
23509
- const ref = React40.useRef(null);
23745
+ const ref = React402.useRef(null);
23510
23746
  const composedRefs = useComposedRefs(forwardedRef, ref);
23511
23747
  const context = useCollectionContext(ITEM_SLOT_NAME, scope);
23512
- React40.useEffect(() => {
23748
+ React402.useEffect(() => {
23513
23749
  context.itemMap.set(ref, { ref, ...itemData });
23514
23750
  return () => void context.itemMap.delete(ref);
23515
23751
  });
@@ -23518,7 +23754,7 @@ function createCollection2(name) {
23518
23754
  CollectionItemSlot.displayName = ITEM_SLOT_NAME;
23519
23755
  function useCollection2(scope) {
23520
23756
  const context = useCollectionContext(name + "CollectionConsumer", scope);
23521
- const getItems = React40.useCallback(() => {
23757
+ const getItems = React402.useCallback(() => {
23522
23758
  const collectionNode = context.collectionRef.current;
23523
23759
  if (!collectionNode)
23524
23760
  return [];
@@ -23836,13 +24072,13 @@ function toSafeIndex(array, index2) {
23836
24072
  function toSafeInteger(number) {
23837
24073
  return number !== number || number === 0 ? 0 : Math.trunc(number);
23838
24074
  }
23839
- var useLayoutEffect222 = globalThis?.document ? React412.useLayoutEffect : () => {};
23840
- var useReactId2 = React42[" useId ".trim().toString()] || (() => {
24075
+ var useLayoutEffect222 = globalThis?.document ? React41.useLayoutEffect : () => {};
24076
+ var useReactId2 = React422[" useId ".trim().toString()] || (() => {
23841
24077
  return;
23842
24078
  });
23843
24079
  var count3 = 0;
23844
24080
  function useId2(deterministicId) {
23845
- const [id, setId] = React42.useState(useReactId2());
24081
+ const [id, setId] = React422.useState(useReactId2());
23846
24082
  useLayoutEffect222(() => {
23847
24083
  if (!deterministicId)
23848
24084
  setId((reactId) => reactId ?? String(count3++));
@@ -24453,11 +24689,11 @@ var Triangle22 = (props) => {
24453
24689
  };
24454
24690
 
24455
24691
  // src/components/design.tsx
24456
- import { useCallback as useCallback37, useState as useState39 } from "react";
24692
+ import { useCallback as useCallback38, useState as useState39 } from "react";
24457
24693
 
24458
24694
  // src/components/ManageTeamMembers.tsx
24459
- import React53, { useCallback as useCallback36, useState as useState38 } from "react";
24460
- import { jsx as jsx44, jsxs as jsxs6, Fragment as Fragment9 } from "react/jsx-runtime";
24695
+ import React53, { useCallback as useCallback37, useState as useState38 } from "react";
24696
+ import { jsx as jsx45, jsxs as jsxs6, Fragment as Fragment9 } from "react/jsx-runtime";
24461
24697
  function generateId() {
24462
24698
  return Math.random().toString(36).substr(2, 9);
24463
24699
  }
@@ -24469,26 +24705,26 @@ var Row = ({ value, onChange, onDelete, disableDelete }) => {
24469
24705
  return /* @__PURE__ */ jsxs6("div", {
24470
24706
  className: "flex flex-row gap-2 items-center",
24471
24707
  children: [
24472
- /* @__PURE__ */ jsx44(Input, {
24708
+ /* @__PURE__ */ jsx45(Input, {
24473
24709
  placeholder: "Enter username",
24474
24710
  className: "w-full block flex-1",
24475
24711
  value,
24476
24712
  onChange: (e) => onChange(e.target.value)
24477
24713
  }),
24478
- /* @__PURE__ */ jsx44(Button, {
24714
+ /* @__PURE__ */ jsx45(Button, {
24479
24715
  className: "hover:text-white hover:bg-warn transition-colors w-10 h-10 p-0 rounded-full",
24480
24716
  onClick: onDelete,
24481
24717
  type: "button",
24482
24718
  disabled: disableDelete,
24483
24719
  "aria-label": "Delete member",
24484
24720
  depth: 0.5,
24485
- children: /* @__PURE__ */ jsx44("svg", {
24721
+ children: /* @__PURE__ */ jsx45("svg", {
24486
24722
  width: "16",
24487
24723
  height: "16",
24488
24724
  viewBox: "0 0 10 10",
24489
24725
  fill: "none",
24490
24726
  xmlns: "http://www.w3.org/2000/svg",
24491
- children: /* @__PURE__ */ jsx44("path", {
24727
+ children: /* @__PURE__ */ jsx45("path", {
24492
24728
  d: "M1 1L9 9M1 9L9 1",
24493
24729
  stroke: "currentColor",
24494
24730
  strokeWidth: "1.5",
@@ -24502,7 +24738,7 @@ var Row = ({ value, onChange, onDelete, disableDelete }) => {
24502
24738
  var ManageTeamMembers = () => {
24503
24739
  const [members, setMembers] = useState38(initialMembers);
24504
24740
  const displayedMembers = [...members, { id: "NEW", name: "" }];
24505
- const updateMember = useCallback36((idx, value) => {
24741
+ const updateMember = useCallback37((idx, value) => {
24506
24742
  if (idx === members.length) {
24507
24743
  if (value.trim() !== "") {
24508
24744
  setMembers((prev) => [...prev, { id: generateId(), name: value }]);
@@ -24511,11 +24747,11 @@ var ManageTeamMembers = () => {
24511
24747
  setMembers((prev) => prev.map((m, i) => i === idx ? { ...m, name: value } : m));
24512
24748
  }
24513
24749
  }, [members.length]);
24514
- const deleteMember = useCallback36((idx) => {
24750
+ const deleteMember = useCallback37((idx) => {
24515
24751
  setMembers((prev) => prev.filter((_, i) => i !== idx));
24516
24752
  }, []);
24517
24753
  const [loading, setLoading] = useState38(false);
24518
- const save = useCallback36(() => {
24754
+ const save = useCallback37(() => {
24519
24755
  setLoading(true);
24520
24756
  setTimeout(() => {
24521
24757
  setLoading(false);
@@ -24523,32 +24759,32 @@ var ManageTeamMembers = () => {
24523
24759
  }, []);
24524
24760
  return /* @__PURE__ */ jsxs6(Fragment9, {
24525
24761
  children: [
24526
- /* @__PURE__ */ jsx44("h2", {
24762
+ /* @__PURE__ */ jsx45("h2", {
24527
24763
  children: "Manage team members"
24528
24764
  }),
24529
- /* @__PURE__ */ jsx44("p", {
24765
+ /* @__PURE__ */ jsx45("p", {
24530
24766
  className: "font-brand",
24531
24767
  children: "Add a new team member to your team."
24532
24768
  }),
24533
24769
  displayedMembers.map((member, idx) => /* @__PURE__ */ jsxs6(React53.Fragment, {
24534
24770
  children: [
24535
- /* @__PURE__ */ jsx44(Row, {
24771
+ /* @__PURE__ */ jsx45(Row, {
24536
24772
  value: member.name,
24537
24773
  onChange: (val) => updateMember(idx, val),
24538
24774
  onDelete: idx < members.length ? () => deleteMember(idx) : undefined,
24539
24775
  disableDelete: idx >= members.length
24540
24776
  }),
24541
- /* @__PURE__ */ jsx44("div", {
24777
+ /* @__PURE__ */ jsx45("div", {
24542
24778
  className: "h-2"
24543
24779
  })
24544
24780
  ]
24545
24781
  }, idx)),
24546
- /* @__PURE__ */ jsx44("div", {
24782
+ /* @__PURE__ */ jsx45("div", {
24547
24783
  className: "h-4"
24548
24784
  }),
24549
- /* @__PURE__ */ jsx44("div", {
24785
+ /* @__PURE__ */ jsx45("div", {
24550
24786
  className: "flex flex-row justify-end",
24551
- children: /* @__PURE__ */ jsx44(Button, {
24787
+ children: /* @__PURE__ */ jsx45(Button, {
24552
24788
  className: "bg-brand text-white",
24553
24789
  loading,
24554
24790
  onClick: save,
@@ -24574,20 +24810,20 @@ var DesignPage = () => {
24574
24810
  const [active, setActive] = useState39(false);
24575
24811
  const [submitButtonActive, setSubmitButtonActive] = useState39(true);
24576
24812
  const [submitButtonPrimaryActive, setSubmitButtonPrimaryActive] = useState39(true);
24577
- const onClick = useCallback37(() => {
24813
+ const onClick = useCallback38(() => {
24578
24814
  setSubmitButtonActive(false);
24579
24815
  setTimeout(() => {
24580
24816
  setSubmitButtonActive(true);
24581
24817
  }, 1000);
24582
24818
  }, []);
24583
- const onClickPrimary = useCallback37(() => {
24819
+ const onClickPrimary = useCallback38(() => {
24584
24820
  setSubmitButtonPrimaryActive(false);
24585
24821
  setTimeout(() => {
24586
24822
  setSubmitButtonPrimaryActive(true);
24587
24823
  }, 1000);
24588
24824
  }, []);
24589
24825
  const [saving, setSaving] = useState39(false);
24590
- const save = useCallback37(() => {
24826
+ const save = useCallback38(() => {
24591
24827
  setSaving(true);
24592
24828
  setTimeout(() => {
24593
24829
  setSaving(false);