unframer 2.22.0 → 2.23.0

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/esm/framer.js CHANGED
@@ -9693,7 +9693,7 @@ function steps(numSteps, direction = 'end') {
9693
9693
  return clamp(0, 1, rounded / numSteps);
9694
9694
  };
9695
9695
  }
9696
- // /:https://app.framerstatic.com/framer.WEKEHMWW.mjs
9696
+ // /:https://app.framerstatic.com/framer.H2TWMMQC.mjs
9697
9697
  import React4 from 'react';
9698
9698
  import { Suspense as Suspense3, } from 'react';
9699
9699
  import { memo as memo2, startTransition as startTransition2, } from 'react';
@@ -12799,7 +12799,7 @@ var MarkSuspenseEffects = {
12799
12799
  function renderPage(Page4, defaultPageStyle) {
12800
12800
  const props = {
12801
12801
  style: defaultPageStyle,
12802
- 'data-framer-root': true,
12802
+ 'data-framer-root': '',
12803
12803
  };
12804
12804
  return React4.isValidElement(Page4) ? React4.cloneElement(Page4, props) : React4.createElement(Page4, props);
12805
12805
  }
@@ -20324,10 +20324,14 @@ function supportsThemes(presetId, skin) {
20324
20324
  }
20325
20325
  return false;
20326
20326
  }
20327
- function useIsStaticRenderer() {
20327
+ function isStaticRenderer() {
20328
20328
  const currentTarget = RenderTarget.current();
20329
20329
  return currentTarget === RenderTarget.canvas || currentTarget === RenderTarget.export;
20330
20330
  }
20331
+ function useIsStaticRenderer() {
20332
+ const [isStatic,] = useState(() => isStaticRenderer());
20333
+ return isStatic;
20334
+ }
20331
20335
  var asRecord = (object) => object;
20332
20336
  function memoize(fn) {
20333
20337
  const cache2 = Object.create(Object.prototype);
@@ -21764,7 +21768,7 @@ function useStyleAndRect(props) {
21764
21768
  ...defaultStyle,
21765
21769
  };
21766
21770
  }
21767
- const isRenderingStaticContent = useIsStaticRenderer();
21771
+ const isRenderingStaticContent = isStaticRenderer();
21768
21772
  if (props.positionSticky) {
21769
21773
  if (!isRenderingStaticContent || inCodeComponent) {
21770
21774
  resultStyle.position = 'sticky';
@@ -22199,7 +22203,7 @@ function useRefEffect(ref, effect, deps) {
22199
22203
  useMemo(() => {
22200
22204
  if (depsChangedRef.current !== void 0)
22201
22205
  depsChangedRef.current = true;
22202
- }, [deps,]);
22206
+ }, deps ?? [{},]);
22203
22207
  if (!ref)
22204
22208
  return;
22205
22209
  const depsChanged = depsChangedRef.current;
@@ -29464,7 +29468,7 @@ var withFX = (Component18) => React4.forwardRef((props, forwardedRef) => {
29464
29468
  ref: forwardedRef,
29465
29469
  });
29466
29470
  }
29467
- const isRenderingStaticContent = useIsStaticRenderer();
29471
+ const isRenderingStaticContent = isStaticRenderer();
29468
29472
  if (isRenderingStaticContent) {
29469
29473
  const animate4 = isVariantOrVariantList(props.animate) ? props.animate : void 0;
29470
29474
  const initial2 = isVariantOrVariantList(props.initial) ? props.initial : void 0;
@@ -30054,26 +30058,36 @@ var CustomCursorContext = /* @__PURE__ */ createContext({
30054
30058
  });
30055
30059
  var replaceCursorClassName = 'framer-cursor-none';
30056
30060
  var cursorComponentClassName = 'framer-pointer-events-none';
30061
+ function getActiveDefinitions(map2, previousDefinitions, newDefinitions) {
30062
+ const allCursors = {};
30063
+ for (const [, hashes,] of map2) {
30064
+ for (const hash2 of hashes) {
30065
+ const value = allCursors[hash2] ?? previousDefinitions[hash2] ?? newDefinitions[hash2];
30066
+ if (value)
30067
+ allCursors[hash2] = value;
30068
+ }
30069
+ }
30070
+ return allCursors;
30071
+ }
30057
30072
  var CustomCursorContextProvider = /* @__PURE__ */ memo2(function CustomCursorList({ children, }) {
30058
30073
  const value = useConstant2(() => {
30059
30074
  const events = /* @__PURE__ */ new Set();
30060
30075
  let allCursors = {};
30076
+ const byCaller = /* @__PURE__ */ new Map();
30061
30077
  return {
30062
30078
  onRegisterCursors: (callback) => {
30063
30079
  callback(allCursors);
30064
30080
  events.add(callback);
30065
30081
  return () => events.delete(callback);
30066
30082
  },
30067
- registerCursors: (cursors) => {
30068
- const nextCursors = {};
30069
- for (const key7 in cursors) {
30070
- const cursor = allCursors[key7] ?? cursors[key7];
30071
- if (cursor)
30072
- nextCursors[key7] = cursor;
30073
- }
30074
- allCursors = nextCursors;
30083
+ registerCursors: (cursors, id3) => {
30084
+ byCaller.set(id3, Object.keys(cursors));
30085
+ allCursors = getActiveDefinitions(byCaller, allCursors, cursors);
30075
30086
  for (const callback of events)
30076
30087
  callback(allCursors);
30088
+ return () => {
30089
+ byCaller.delete(id3);
30090
+ };
30077
30091
  },
30078
30092
  };
30079
30093
  });
@@ -30321,9 +30335,10 @@ var CustomCursorComponent = /* @__PURE__ */ memo2(function CustomCursorComponent
30321
30335
  function useCustomCursors(webPageCursors) {
30322
30336
  const { registerCursors, } = useContext(CustomCursorContext);
30323
30337
  const cursors = useConstant2(() => webPageCursors);
30338
+ const id3 = useId();
30324
30339
  useLayoutEffect(() => {
30325
- registerCursors(cursors);
30326
- }, [registerCursors,]);
30340
+ return registerCursors(cursors, id3);
30341
+ }, [registerCursors, id3,]);
30327
30342
  }
30328
30343
  var Polygon = {
30329
30344
  /**
@@ -31295,6 +31310,99 @@ function getObserveRouteForPreloadingFn() {
31295
31310
  var observeRouteForPreloading =
31296
31311
  // this also guards `window`
31297
31312
  !shouldPreloadBasedOnUA || typeof IntersectionObserver === 'undefined' ? null : /* @__PURE__ */ getObserveRouteForPreloadingFn();
31313
+ var isPressing = /* @__PURE__ */ new WeakSet();
31314
+ function filterEvents(callback) {
31315
+ return (event) => {
31316
+ if (event.key !== 'Enter')
31317
+ return;
31318
+ callback(event);
31319
+ };
31320
+ }
31321
+ function firePointerEvent(target, type) {
31322
+ target.dispatchEvent(new PointerEvent('pointer' + type, {
31323
+ isPrimary: true,
31324
+ bubbles: true,
31325
+ }));
31326
+ }
31327
+ var enableKeyboardPress = (focusEvent, eventOptions) => {
31328
+ const element = focusEvent.currentTarget;
31329
+ if (!element)
31330
+ return;
31331
+ const handleKeydown = filterEvents(() => {
31332
+ if (isPressing.has(element))
31333
+ return;
31334
+ firePointerEvent(element, 'down');
31335
+ const handleKeyup = filterEvents(() => {
31336
+ firePointerEvent(element, 'up');
31337
+ });
31338
+ const handleBlur = () => firePointerEvent(element, 'cancel');
31339
+ element.addEventListener('keyup', handleKeyup, eventOptions);
31340
+ element.addEventListener('blur', handleBlur, eventOptions);
31341
+ });
31342
+ element.addEventListener('keydown', handleKeydown, eventOptions);
31343
+ element.addEventListener('blur', () => element.removeEventListener('keydown', handleKeydown), eventOptions);
31344
+ };
31345
+ function isPointerEvent(event) {
31346
+ return 'pointerId' in event;
31347
+ }
31348
+ var isPrimaryPointer2 = (event) => {
31349
+ if (event.pointerType === 'mouse') {
31350
+ return typeof event.button !== 'number' || event.button <= 0;
31351
+ }
31352
+ else {
31353
+ return event.isPrimary !== false;
31354
+ }
31355
+ };
31356
+ function isValidPressEvent(event) {
31357
+ return isPointerEvent(event) && isPrimaryPointer2(event);
31358
+ }
31359
+ var isNodeOrChild2 = (parent, child) => {
31360
+ if (!child) {
31361
+ return false;
31362
+ }
31363
+ else if (parent === child) {
31364
+ return true;
31365
+ }
31366
+ else {
31367
+ return isNodeOrChild2(parent, child.parentElement);
31368
+ }
31369
+ };
31370
+ function press(element, onPressEnd) {
31371
+ const gestureAbortController = new AbortController();
31372
+ const cancel = () => gestureAbortController.abort();
31373
+ const eventOptions = {
31374
+ passive: true,
31375
+ signal: gestureAbortController.signal,
31376
+ };
31377
+ const startPress = (startEvent) => {
31378
+ const target = startEvent.currentTarget;
31379
+ if (!isValidPressEvent(startEvent) || isPressing.has(target))
31380
+ return;
31381
+ isPressing.add(target);
31382
+ const onPointerEnd = (endEvent, success) => {
31383
+ window.removeEventListener('pointerup', onPointerUp);
31384
+ window.removeEventListener('pointercancel', onPointerCancel);
31385
+ if (!isValidPressEvent(endEvent) || !isPressing.has(target)) {
31386
+ return;
31387
+ }
31388
+ isPressing.delete(target);
31389
+ if (success && typeof onPressEnd === 'function') {
31390
+ onPressEnd(endEvent);
31391
+ }
31392
+ };
31393
+ const onPointerUp = (upEvent) => {
31394
+ onPointerEnd(upEvent, isNodeOrChild2(target, upEvent.target));
31395
+ };
31396
+ const onPointerCancel = (cancelEvent) => {
31397
+ onPointerEnd(cancelEvent, false);
31398
+ };
31399
+ window.addEventListener('pointerup', onPointerUp, eventOptions);
31400
+ window.addEventListener('pointercancel', onPointerCancel, eventOptions);
31401
+ };
31402
+ element.addEventListener('pointerdown', startPress, eventOptions);
31403
+ element.addEventListener('focus', (event) => enableKeyboardPress(event, eventOptions), eventOptions);
31404
+ return cancel;
31405
+ }
31298
31406
  var noLocale = Symbol('noLocale');
31299
31407
  var resolveSlugCache = /* @__PURE__ */ new Map();
31300
31408
  function resolveSlug(unresolvedSlug, utilsByCollectionId, activeLocale) {
@@ -31686,14 +31794,37 @@ var Link = /* @__PURE__ */ withChildrenCanSuspend(/* @__PURE__ */ forwardRef(fun
31686
31794
  return;
31687
31795
  return observerCallback(node);
31688
31796
  }, [observerCallback,]);
31689
- const { navigate: _, ...linkProps } = props;
31797
+ const { navigate: _, onClick, ...linkProps } = props;
31798
+ const shouldReplaceClickWithPress = Boolean(isIOS() && onClick);
31799
+ useRefEffect(observerRef, (node) => {
31800
+ if (!shouldReplaceClickWithPress)
31801
+ return;
31802
+ if (node === null)
31803
+ return;
31804
+ const cancel = press(node, onClick);
31805
+ return () => {
31806
+ if (!observerRef.current)
31807
+ cancel();
31808
+ };
31809
+ }, [shouldReplaceClickWithPress, onClick,]);
31810
+ const onClickProp = onClick
31811
+ ? {
31812
+ // If we've replaced the click handler with press, make onClick noop so we don't try to
31813
+ // respond to the pointer event twice.
31814
+ onClick: shouldReplaceClickWithPress ? noopOnClick : onClick,
31815
+ }
31816
+ : {};
31690
31817
  const el = clone.cloneAsArray(children, {
31691
31818
  ...restProps,
31692
31819
  ...linkProps,
31820
+ ...onClickProp,
31693
31821
  ref: observerRef,
31694
31822
  });
31695
31823
  return getChildren(el);
31696
31824
  }));
31825
+ function noopOnClick(event) {
31826
+ event.preventDefault();
31827
+ }
31697
31828
  var ParentLinkContext = /* @__PURE__ */ createContext(void 0);
31698
31829
  function useReplaceNestedLinks(nodeId, href, propsAddedByLink) {
31699
31830
  const parentLink = useContext(ParentLinkContext);
@@ -32398,23 +32529,26 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
32398
32529
  value: localeInfo,
32399
32530
  children: /* @__PURE__ */ jsxs(SuspenseThatPreservesDom, {
32400
32531
  children: [
32401
- /* @__PURE__ */ jsx(NotFoundErrorBoundary, {
32532
+ /* @__PURE__ */ jsxs(NotFoundErrorBoundary, {
32402
32533
  notFoundPage,
32403
32534
  defaultPageStyle,
32404
32535
  forceUpdateKey: dep,
32405
- children: /* @__PURE__ */ jsx(WithLayoutTemplate, {
32406
- LayoutTemplate,
32407
- routeId: currentRouteId,
32408
- children: (inLayoutTemplate) => {
32409
- return /* @__PURE__ */ jsxs(Fragment, {
32410
- children: [
32411
- /* @__PURE__ */ jsx(MarkSuspenseEffects.Start, {}),
32412
- pageExistsInCurrentLocale ? renderPage(current.page, inLayoutTemplate ? templatePageStyle : defaultPageStyle) : // LAYOUT_TEMPLATE @TODO: display: content for not found page?
32413
- notFoundPage && renderPage(notFoundPage, defaultPageStyle),
32414
- ],
32415
- }, remountKey);
32416
- },
32417
- }),
32536
+ children: [
32537
+ /* @__PURE__ */ jsx(MarkSuspenseEffects.Start, {}),
32538
+ /* @__PURE__ */ jsx(WithLayoutTemplate, {
32539
+ LayoutTemplate,
32540
+ routeId: currentRouteId,
32541
+ style: defaultPageStyle,
32542
+ children: (inLayoutTemplate) => {
32543
+ return /* @__PURE__ */ jsx(Fragment, {
32544
+ children: pageExistsInCurrentLocale
32545
+ ? renderPage(current.page, inLayoutTemplate ? templatePageStyle : defaultPageStyle)
32546
+ : // LAYOUT_TEMPLATE @TODO: display: content for not found page?
32547
+ notFoundPage && renderPage(notFoundPage, defaultPageStyle),
32548
+ }, remountKey);
32549
+ },
32550
+ }),
32551
+ ],
32418
32552
  }),
32419
32553
  /* @__PURE__ */ jsx(TurnOnReactEventHandling, {}),
32420
32554
  /* @__PURE__ */ jsx(MarkSuspenseEffects.End, {}),
@@ -32424,11 +32558,12 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
32424
32558
  }),
32425
32559
  });
32426
32560
  }
32427
- function WithLayoutTemplate({ LayoutTemplate, routeId, children, }) {
32561
+ function WithLayoutTemplate({ LayoutTemplate, routeId, style, children, }) {
32428
32562
  if (!LayoutTemplate)
32429
32563
  return children(false);
32430
32564
  return /* @__PURE__ */ jsx(LayoutTemplate, {
32431
32565
  routeId,
32566
+ style,
32432
32567
  children,
32433
32568
  });
32434
32569
  }
@@ -33382,6 +33517,22 @@ var CompatibilityDatabaseCollection = class {
33382
33517
  return Number(left.pointer) - Number(right.pointer);
33383
33518
  }
33384
33519
  };
33520
+ function compareArray(left, right, collation11) {
33521
+ const leftLength = left.value.length;
33522
+ const rightLength = right.value.length;
33523
+ if (leftLength < rightLength)
33524
+ return -1;
33525
+ if (leftLength > rightLength)
33526
+ return 1;
33527
+ for (let i = 0; i < leftLength; i++) {
33528
+ const leftItem = left.value[i];
33529
+ const rightItem = right.value[i];
33530
+ const result = compare(leftItem, rightItem, collation11);
33531
+ if (result !== 0)
33532
+ return result;
33533
+ }
33534
+ return 0;
33535
+ }
33385
33536
  function castArray(value, definition) {
33386
33537
  switch (value == null ? void 0 : value.type) {
33387
33538
  case 'array': {
@@ -33396,6 +33547,13 @@ function castArray(value, definition) {
33396
33547
  }
33397
33548
  return null;
33398
33549
  }
33550
+ function compareBoolean(left, right) {
33551
+ if (left.value < right.value)
33552
+ return -1;
33553
+ if (left.value > right.value)
33554
+ return 1;
33555
+ return 0;
33556
+ }
33399
33557
  function castBoolean(value) {
33400
33558
  switch (value == null ? void 0 : value.type) {
33401
33559
  case 'boolean': {
@@ -33411,10 +33569,17 @@ function castBoolean(value) {
33411
33569
  }
33412
33570
  return null;
33413
33571
  }
33414
- function toBoolean(value) {
33572
+ function valueToBoolean(value) {
33415
33573
  const cast = castBoolean(value);
33416
33574
  return (cast == null ? void 0 : cast.value) ?? false;
33417
33575
  }
33576
+ function compareColor(left, right) {
33577
+ if (left.value < right.value)
33578
+ return -1;
33579
+ if (left.value > right.value)
33580
+ return 1;
33581
+ return 0;
33582
+ }
33418
33583
  function castColor(value) {
33419
33584
  switch (value == null ? void 0 : value.type) {
33420
33585
  case 'color': {
@@ -33423,6 +33588,15 @@ function castColor(value) {
33423
33588
  }
33424
33589
  return null;
33425
33590
  }
33591
+ function compareDate(left, right) {
33592
+ const leftDate = new Date(left.value);
33593
+ const rightDate = new Date(right.value);
33594
+ if (leftDate < rightDate)
33595
+ return -1;
33596
+ if (leftDate > rightDate)
33597
+ return 1;
33598
+ return 0;
33599
+ }
33426
33600
  function castDate(value) {
33427
33601
  switch (value == null ? void 0 : value.type) {
33428
33602
  case 'date': {
@@ -33442,6 +33616,13 @@ function castDate(value) {
33442
33616
  }
33443
33617
  return null;
33444
33618
  }
33619
+ function compareEnum(left, right) {
33620
+ if (left.value < right.value)
33621
+ return -1;
33622
+ if (left.value > right.value)
33623
+ return 1;
33624
+ return 0;
33625
+ }
33445
33626
  function castEnum(value) {
33446
33627
  switch (value == null ? void 0 : value.type) {
33447
33628
  case 'enum': {
@@ -33456,6 +33637,13 @@ function castEnum(value) {
33456
33637
  }
33457
33638
  return null;
33458
33639
  }
33640
+ function compareFile(left, right) {
33641
+ if (left.value < right.value)
33642
+ return -1;
33643
+ if (left.value > right.value)
33644
+ return 1;
33645
+ return 0;
33646
+ }
33459
33647
  function castFile(value) {
33460
33648
  switch (value == null ? void 0 : value.type) {
33461
33649
  case 'file': {
@@ -33464,6 +33652,15 @@ function castFile(value) {
33464
33652
  }
33465
33653
  return null;
33466
33654
  }
33655
+ function compareLink(left, right) {
33656
+ const leftEncoded = JSON.stringify(left.value);
33657
+ const rightEncoded = JSON.stringify(right.value);
33658
+ if (leftEncoded < rightEncoded)
33659
+ return -1;
33660
+ if (leftEncoded > rightEncoded)
33661
+ return 1;
33662
+ return 0;
33663
+ }
33467
33664
  function castLink(value) {
33468
33665
  switch (value == null ? void 0 : value.type) {
33469
33666
  case 'link': {
@@ -33487,6 +33684,13 @@ function castLink(value) {
33487
33684
  }
33488
33685
  return null;
33489
33686
  }
33687
+ function compareNumber(left, right) {
33688
+ if (left.value < right.value)
33689
+ return -1;
33690
+ if (left.value > right.value)
33691
+ return 1;
33692
+ return 0;
33693
+ }
33490
33694
  function castNumber(value) {
33491
33695
  switch (value == null ? void 0 : value.type) {
33492
33696
  case 'number':
@@ -33503,10 +33707,32 @@ function castNumber(value) {
33503
33707
  }
33504
33708
  return null;
33505
33709
  }
33506
- function toNumber2(value) {
33710
+ function valueToNumber(value) {
33507
33711
  const cast = castNumber(value);
33508
33712
  return (cast == null ? void 0 : cast.value) ?? null;
33509
33713
  }
33714
+ function compareObject(left, right, collation11) {
33715
+ const leftKeys = Object.keys(left.value).sort();
33716
+ const rightKeys = Object.keys(right.value).sort();
33717
+ if (leftKeys.length < rightKeys.length)
33718
+ return -1;
33719
+ if (leftKeys.length > rightKeys.length)
33720
+ return 1;
33721
+ for (let i = 0; i < leftKeys.length; i++) {
33722
+ const leftKey = leftKeys[i];
33723
+ const rightKey = rightKeys[i];
33724
+ if (leftKey < rightKey)
33725
+ return -1;
33726
+ if (leftKey > rightKey)
33727
+ return 1;
33728
+ const leftValue = left.value[leftKey] ?? null;
33729
+ const rightValue = right.value[rightKey] ?? null;
33730
+ const result = compare(leftValue, rightValue, collation11);
33731
+ if (result !== 0)
33732
+ return result;
33733
+ }
33734
+ return 0;
33735
+ }
33510
33736
  function castObject(value, definition) {
33511
33737
  switch (value == null ? void 0 : value.type) {
33512
33738
  case 'object': {
@@ -33524,6 +33750,15 @@ function castObject(value, definition) {
33524
33750
  }
33525
33751
  return null;
33526
33752
  }
33753
+ function compareResponsiveImage(left, right) {
33754
+ const leftEncoded = JSON.stringify(left.value);
33755
+ const rightEncoded = JSON.stringify(right.value);
33756
+ if (leftEncoded < rightEncoded)
33757
+ return -1;
33758
+ if (leftEncoded > rightEncoded)
33759
+ return 1;
33760
+ return 0;
33761
+ }
33527
33762
  function castResponsiveImage(value) {
33528
33763
  switch (value == null ? void 0 : value.type) {
33529
33764
  case 'responsiveimage': {
@@ -33532,6 +33767,15 @@ function castResponsiveImage(value) {
33532
33767
  }
33533
33768
  return null;
33534
33769
  }
33770
+ function compareRichText(left, right) {
33771
+ const leftValue = left.value;
33772
+ const rightValue = right.value;
33773
+ if (leftValue < rightValue)
33774
+ return -1;
33775
+ if (leftValue > rightValue)
33776
+ return 1;
33777
+ return 0;
33778
+ }
33535
33779
  function castRichText(value) {
33536
33780
  switch (value == null ? void 0 : value.type) {
33537
33781
  case 'richtext': {
@@ -33540,6 +33784,19 @@ function castRichText(value) {
33540
33784
  }
33541
33785
  return null;
33542
33786
  }
33787
+ function compareString(left, right, collation11) {
33788
+ let leftValue = left.value;
33789
+ let rightValue = right.value;
33790
+ if (collation11.type === 0) {
33791
+ leftValue = left.value.toLowerCase();
33792
+ rightValue = right.value.toLowerCase();
33793
+ }
33794
+ if (leftValue < rightValue)
33795
+ return -1;
33796
+ if (leftValue > rightValue)
33797
+ return 1;
33798
+ return 0;
33799
+ }
33543
33800
  function castString(value) {
33544
33801
  switch (value == null ? void 0 : value.type) {
33545
33802
  case 'string': {
@@ -33554,7 +33811,7 @@ function castString(value) {
33554
33811
  }
33555
33812
  return null;
33556
33813
  }
33557
- function toString(value) {
33814
+ function valueToString(value) {
33558
33815
  const cast = castString(value);
33559
33816
  return (cast == null ? void 0 : cast.value) ?? null;
33560
33817
  }
@@ -33704,8 +33961,8 @@ var DatabaseValue = {
33704
33961
  });
33705
33962
  },
33706
33963
  contains(source, target, collation11) {
33707
- let sourceValue = toString(source);
33708
- let targetValue = toString(target);
33964
+ let sourceValue = valueToString(source);
33965
+ let targetValue = valueToString(target);
33709
33966
  if (isNull(sourceValue))
33710
33967
  return false;
33711
33968
  if (isNull(targetValue))
@@ -33717,8 +33974,8 @@ var DatabaseValue = {
33717
33974
  return sourceValue.includes(targetValue);
33718
33975
  },
33719
33976
  startsWith(source, target, collation11) {
33720
- let sourceValue = toString(source);
33721
- let targetValue = toString(target);
33977
+ let sourceValue = valueToString(source);
33978
+ let targetValue = valueToString(target);
33722
33979
  if (isNull(sourceValue))
33723
33980
  return false;
33724
33981
  if (isNull(targetValue))
@@ -33730,8 +33987,8 @@ var DatabaseValue = {
33730
33987
  return sourceValue.startsWith(targetValue);
33731
33988
  },
33732
33989
  endsWith(source, target, collation11) {
33733
- let sourceValue = toString(source);
33734
- let targetValue = toString(target);
33990
+ let sourceValue = valueToString(source);
33991
+ let targetValue = valueToString(target);
33735
33992
  if (isNull(sourceValue))
33736
33993
  return false;
33737
33994
  if (isNull(targetValue))
@@ -33790,143 +34047,51 @@ function compare(left, right, collation11) {
33790
34047
  switch (left.type) {
33791
34048
  case 'array': {
33792
34049
  assert(left.type === right.type);
33793
- const leftLength = left.value.length;
33794
- const rightLength = right.value.length;
33795
- if (leftLength < rightLength)
33796
- return -1;
33797
- if (leftLength > rightLength)
33798
- return 1;
33799
- for (let i = 0; i < leftLength; i++) {
33800
- const leftItem = left.value[i];
33801
- const rightItem = right.value[i];
33802
- assert(!isUndefined(leftItem), 'Left item must exist');
33803
- assert(!isUndefined(rightItem), 'Right item must exist');
33804
- const result = compare(leftItem, rightItem, collation11);
33805
- if (result !== 0)
33806
- return result;
33807
- }
33808
- return 0;
34050
+ return compareArray(left, right, collation11);
33809
34051
  }
33810
34052
  case 'boolean': {
33811
34053
  assert(left.type === right.type);
33812
- if (left.value < right.value)
33813
- return -1;
33814
- if (left.value > right.value)
33815
- return 1;
33816
- return 0;
34054
+ return compareBoolean(left, right);
33817
34055
  }
33818
34056
  case 'color': {
33819
34057
  assert(left.type === right.type);
33820
- if (left.value < right.value)
33821
- return -1;
33822
- if (left.value > right.value)
33823
- return 1;
33824
- return 0;
34058
+ return compareColor(left, right);
33825
34059
  }
33826
34060
  case 'date': {
33827
34061
  assert(left.type === right.type);
33828
- const leftDate = new Date(left.value);
33829
- const rightDate = new Date(right.value);
33830
- if (leftDate < rightDate)
33831
- return -1;
33832
- if (leftDate > rightDate)
33833
- return 1;
33834
- return 0;
34062
+ return compareDate(left, right);
33835
34063
  }
33836
34064
  case 'enum': {
33837
34065
  assert(left.type === right.type);
33838
- if (left.value < right.value)
33839
- return -1;
33840
- if (left.value > right.value)
33841
- return 1;
33842
- return 0;
34066
+ return compareEnum(left, right);
33843
34067
  }
33844
34068
  case 'file': {
33845
34069
  assert(left.type === right.type);
33846
- if (left.value < right.value)
33847
- return -1;
33848
- if (left.value > right.value)
33849
- return 1;
33850
- return 0;
34070
+ return compareFile(left, right);
33851
34071
  }
33852
34072
  case 'link': {
33853
34073
  assert(left.type === right.type);
33854
- const leftEncoded = JSON.stringify(left.value);
33855
- const rightEncoded = JSON.stringify(right.value);
33856
- if (leftEncoded < rightEncoded)
33857
- return -1;
33858
- if (leftEncoded > rightEncoded)
33859
- return 1;
33860
- return 0;
34074
+ return compareLink(left, right);
33861
34075
  }
33862
34076
  case 'number': {
33863
34077
  assert(left.type === right.type);
33864
- if (left.value < right.value)
33865
- return -1;
33866
- if (left.value > right.value)
33867
- return 1;
33868
- return 0;
34078
+ return compareNumber(left, right);
33869
34079
  }
33870
34080
  case 'object': {
33871
34081
  assert(left.type === right.type);
33872
- const leftKeys = Object.keys(left.value).sort();
33873
- const rightKeys = Object.keys(right.value).sort();
33874
- if (leftKeys.length < rightKeys.length)
33875
- return -1;
33876
- if (leftKeys.length > rightKeys.length)
33877
- return 1;
33878
- for (let i = 0; i < leftKeys.length; i++) {
33879
- const leftKey = leftKeys[i];
33880
- const rightKey = rightKeys[i];
33881
- assert(!isUndefined(leftKey), 'Left key must exist');
33882
- assert(!isUndefined(rightKey), 'Left key must exist');
33883
- if (leftKey < rightKey)
33884
- return -1;
33885
- if (leftKey > rightKey)
33886
- return 1;
33887
- const leftValue = left.value[leftKey];
33888
- const rightValue = right.value[rightKey];
33889
- assert(!isUndefined(leftValue), 'Left value must exist');
33890
- assert(!isUndefined(rightValue), 'Right value must exist');
33891
- const result = compare(leftValue, rightValue, collation11);
33892
- if (result !== 0)
33893
- return result;
33894
- }
33895
- return 0;
34082
+ return compareObject(left, right, collation11);
33896
34083
  }
33897
34084
  case 'responsiveimage': {
33898
34085
  assert(left.type === right.type);
33899
- const leftEncoded = JSON.stringify(left.value);
33900
- const rightEncoded = JSON.stringify(right.value);
33901
- if (leftEncoded < rightEncoded)
33902
- return -1;
33903
- if (leftEncoded > rightEncoded)
33904
- return 1;
33905
- return 0;
34086
+ return compareResponsiveImage(left, right);
33906
34087
  }
33907
34088
  case 'richtext': {
33908
34089
  assert(left.type === right.type);
33909
- const leftValue = left.value;
33910
- const rightValue = right.value;
33911
- if (leftValue < rightValue)
33912
- return -1;
33913
- if (leftValue > rightValue)
33914
- return 1;
33915
- return 0;
34090
+ return compareRichText(left, right);
33916
34091
  }
33917
34092
  case 'string': {
33918
34093
  assert(left.type === right.type);
33919
- let leftValue = left.value;
33920
- let rightValue = right.value;
33921
- if (collation11.type === 0) {
33922
- leftValue = left.value.toLowerCase();
33923
- rightValue = right.value.toLowerCase();
33924
- }
33925
- if (leftValue < rightValue)
33926
- return -1;
33927
- if (leftValue > rightValue)
33928
- return 1;
33929
- return 0;
34094
+ return compareString(left, right, collation11);
33930
34095
  }
33931
34096
  default: {
33932
34097
  assertNever(left);
@@ -34637,7 +34802,8 @@ var RelationalProject = class extends RelationalNode {
34637
34802
  this.input = input;
34638
34803
  this.projections = projections;
34639
34804
  this.passthrough = passthrough;
34640
- __publicField(this, 'inputGroup', this.input.getGroup());
34805
+ __publicField(this, 'inputGroup');
34806
+ this.inputGroup = input.getGroup();
34641
34807
  }
34642
34808
  getHash() {
34643
34809
  return calculateHash('RelationalProject', this.inputGroup.id, ...this.projections, this.passthrough);
@@ -34790,19 +34956,6 @@ var ScalarCase = class extends ScalarNode {
34790
34956
  getHash() {
34791
34957
  return calculateHash('ScalarCase', this.input, ...this.conditions, this.otherwise);
34792
34958
  }
34793
- toString() {
34794
- let result = 'CASE';
34795
- if (this.input) {
34796
- result = `${result} ${this.input}`;
34797
- }
34798
- for (const { when, then, } of this.conditions) {
34799
- result = `${result} WHEN ${when} THEN ${then}`;
34800
- }
34801
- if (this.otherwise) {
34802
- result = `${result} ELSE ${this.otherwise}`;
34803
- }
34804
- return `${result} END`;
34805
- }
34806
34959
  optimize(optimizer) {
34807
34960
  var _a, _b;
34808
34961
  (_a = this.input) == null ? void 0 : _a.optimize(optimizer);
@@ -34830,6 +34983,7 @@ var ScalarCase = class extends ScalarNode {
34830
34983
  input: ((_a = this.input) == null ? void 0 : _a.evaluate(context, tuple)) ?? null,
34831
34984
  conditions: evaluateArray(this.conditions.map((condition) => evaluateObject({
34832
34985
  when: condition.when.evaluate(context, tuple),
34986
+ // biome-ignore lint/suspicious/noThenProperty: Existing name.
34833
34987
  then: condition.then.evaluate(context, tuple),
34834
34988
  }))),
34835
34989
  otherwise: ((_b = this.otherwise) == null ? void 0 : _b.evaluate(context, tuple)) ?? null,
@@ -34843,7 +34997,7 @@ var ScalarCase = class extends ScalarNode {
34843
34997
  }
34844
34998
  else {
34845
34999
  for (const { when, then, } of conditions) {
34846
- if (toBoolean(when)) {
35000
+ if (valueToBoolean(when)) {
34847
35001
  return then;
34848
35002
  }
34849
35003
  }
@@ -35289,7 +35443,8 @@ var RelationalFilter = class extends RelationalNode {
35289
35443
  super(input.isSynchronous && predicate.isSynchronous);
35290
35444
  this.input = input;
35291
35445
  this.predicate = predicate;
35292
- __publicField(this, 'inputGroup', this.input.getGroup());
35446
+ __publicField(this, 'inputGroup');
35447
+ this.inputGroup = input.getGroup();
35293
35448
  }
35294
35449
  getHash() {
35295
35450
  return calculateHash('RelationalFilter', this.inputGroup.id, this.predicate);
@@ -35327,7 +35482,7 @@ var RelationalFilter = class extends RelationalNode {
35327
35482
  }));
35328
35483
  return input.filter((_, index) => {
35329
35484
  const predicate = predicates[index] ?? null;
35330
- return toBoolean(predicate);
35485
+ return valueToBoolean(predicate);
35331
35486
  });
35332
35487
  }
35333
35488
  };
@@ -35378,8 +35533,10 @@ var RelationalIntersection = class extends RelationalNode {
35378
35533
  super(left.isSynchronous && right.isSynchronous);
35379
35534
  this.left = left;
35380
35535
  this.right = right;
35381
- __publicField(this, 'leftGroup', this.left.getGroup());
35382
- __publicField(this, 'rightGroup', this.right.getGroup());
35536
+ __publicField(this, 'leftGroup');
35537
+ __publicField(this, 'rightGroup');
35538
+ this.leftGroup = left.getGroup();
35539
+ this.rightGroup = right.getGroup();
35383
35540
  }
35384
35541
  getHash() {
35385
35542
  return calculateHash('RelationalIntersection', this.leftGroup.id, this.rightGroup.id);
@@ -35447,9 +35604,6 @@ var ScalarEquals = class extends ScalarNode {
35447
35604
  getHash() {
35448
35605
  return calculateHash('ScalarEquals', this.left, this.right);
35449
35606
  }
35450
- toString() {
35451
- return `${this.left} == ${this.right}`;
35452
- }
35453
35607
  optimize(optimizer) {
35454
35608
  const leftCost = this.left.optimize(optimizer);
35455
35609
  const rightCost = this.right.optimize(optimizer);
@@ -35477,8 +35631,10 @@ var RelationalLeftJoin = class extends RelationalNode {
35477
35631
  this.left = left;
35478
35632
  this.right = right;
35479
35633
  this.constraint = constraint;
35480
- __publicField(this, 'leftGroup', this.left.getGroup());
35481
- __publicField(this, 'rightGroup', this.right.getGroup());
35634
+ __publicField(this, 'leftGroup');
35635
+ __publicField(this, 'rightGroup');
35636
+ this.leftGroup = left.getGroup();
35637
+ this.rightGroup = right.getGroup();
35482
35638
  }
35483
35639
  getHash() {
35484
35640
  return calculateHash('RelationalLeftJoin', this.leftGroup.id, this.rightGroup.id, this.constraint);
@@ -35581,7 +35737,7 @@ var RelationalLeftJoin = class extends RelationalNode {
35581
35737
  tuple.merge(leftTuple);
35582
35738
  tuple.merge(rightTuple);
35583
35739
  const value = yield* this.constraint.evaluate(context, tuple);
35584
- if (toBoolean(value)) {
35740
+ if (valueToBoolean(value)) {
35585
35741
  result.push(tuple);
35586
35742
  hasMatch = true;
35587
35743
  }
@@ -35599,8 +35755,10 @@ var RelationalRightJoin = class extends RelationalNode {
35599
35755
  this.left = left;
35600
35756
  this.right = right;
35601
35757
  this.constraint = constraint;
35602
- __publicField(this, 'leftGroup', this.left.getGroup());
35603
- __publicField(this, 'rightGroup', this.right.getGroup());
35758
+ __publicField(this, 'leftGroup');
35759
+ __publicField(this, 'rightGroup');
35760
+ this.leftGroup = left.getGroup();
35761
+ this.rightGroup = right.getGroup();
35604
35762
  }
35605
35763
  getHash() {
35606
35764
  return calculateHash('RelationalRightJoin', this.leftGroup.id, this.rightGroup.id, this.constraint);
@@ -35703,7 +35861,7 @@ var RelationalRightJoin = class extends RelationalNode {
35703
35861
  tuple.merge(rightTuple);
35704
35862
  tuple.merge(leftTuple);
35705
35863
  const value = yield* this.constraint.evaluate(context, tuple);
35706
- if (toBoolean(value)) {
35864
+ if (valueToBoolean(value)) {
35707
35865
  result.push(tuple);
35708
35866
  hasMatch = true;
35709
35867
  }
@@ -35759,8 +35917,10 @@ var RelationalUnion = class extends RelationalNode {
35759
35917
  super(left.isSynchronous && right.isSynchronous);
35760
35918
  this.left = left;
35761
35919
  this.right = right;
35762
- __publicField(this, 'leftGroup', this.left.getGroup());
35763
- __publicField(this, 'rightGroup', this.right.getGroup());
35920
+ __publicField(this, 'leftGroup');
35921
+ __publicField(this, 'rightGroup');
35922
+ this.leftGroup = left.getGroup();
35923
+ this.rightGroup = right.getGroup();
35764
35924
  }
35765
35925
  getHash() {
35766
35926
  return calculateHash('RelationalUnion', this.leftGroup.id, this.rightGroup.id);
@@ -35828,9 +35988,6 @@ var ScalarAnd = class extends ScalarNode {
35828
35988
  getHash() {
35829
35989
  return calculateHash('ScalarAnd', this.left, this.right);
35830
35990
  }
35831
- toString() {
35832
- return `${this.left} && ${this.right}`;
35833
- }
35834
35991
  optimize(optimizer) {
35835
35992
  const leftCost = this.left.optimize(optimizer);
35836
35993
  const rightCost = this.right.optimize(optimizer);
@@ -35848,7 +36005,7 @@ var ScalarAnd = class extends ScalarNode {
35848
36005
  });
35849
36006
  return {
35850
36007
  type: 'boolean',
35851
- value: toBoolean(left) && toBoolean(right),
36008
+ value: valueToBoolean(left) && valueToBoolean(right),
35852
36009
  };
35853
36010
  }
35854
36011
  };
@@ -35863,16 +36020,13 @@ var ScalarConstant = class extends ScalarNode {
35863
36020
  getHash() {
35864
36021
  return calculateHash('ScalarConstant', this.definition, this.value);
35865
36022
  }
35866
- toString() {
35867
- return DatabaseValue.stringify(this.value);
35868
- }
35869
36023
  optimize() {
35870
36024
  return new Cost(0);
35871
36025
  }
35872
36026
  getOptimized() {
35873
36027
  return this;
35874
36028
  }
35875
- // eslint-disable-next-line require-yield
36029
+ // biome-ignore lint/correctness/useYield: Required by the super class.
35876
36030
  *evaluate() {
35877
36031
  return this.value;
35878
36032
  }
@@ -35901,9 +36055,6 @@ var ScalarContains = class extends ScalarNode {
35901
36055
  getHash() {
35902
36056
  return calculateHash('ScalarContains', this.source, this.target);
35903
36057
  }
35904
- toString() {
35905
- return `CONTAINS(${this.source}, ${this.target})`;
35906
- }
35907
36058
  optimize(optimizer) {
35908
36059
  const sourceCost = this.source.optimize(optimizer);
35909
36060
  const targetCost = this.target.optimize(optimizer);
@@ -35949,9 +36100,6 @@ var ScalarEndsWith = class extends ScalarNode {
35949
36100
  getHash() {
35950
36101
  return calculateHash('ScalarEndsWith', this.source, this.target);
35951
36102
  }
35952
- toString() {
35953
- return `ENDS_WITH(${this.source}, ${this.target})`;
35954
- }
35955
36103
  optimize(optimizer) {
35956
36104
  const sourceCost = this.source.optimize(optimizer);
35957
36105
  const targetCost = this.target.optimize(optimizer);
@@ -35993,9 +36141,6 @@ var ScalarGreaterThan = class extends ScalarNode {
35993
36141
  getHash() {
35994
36142
  return calculateHash('ScalarGreaterThan', this.left, this.right);
35995
36143
  }
35996
- toString() {
35997
- return `${this.left} > ${this.right}`;
35998
- }
35999
36144
  optimize(optimizer) {
36000
36145
  const leftCost = this.left.optimize(optimizer);
36001
36146
  const rightCost = this.right.optimize(optimizer);
@@ -36037,9 +36182,6 @@ var ScalarGreaterThanOrEqual = class extends ScalarNode {
36037
36182
  getHash() {
36038
36183
  return calculateHash('ScalarGreaterThanOrEqual', this.left, this.right);
36039
36184
  }
36040
- toString() {
36041
- return `${this.left} >= ${this.right}`;
36042
- }
36043
36185
  optimize(optimizer) {
36044
36186
  const leftCost = this.left.optimize(optimizer);
36045
36187
  const rightCost = this.right.optimize(optimizer);
@@ -36081,9 +36223,6 @@ var ScalarLessThan = class extends ScalarNode {
36081
36223
  getHash() {
36082
36224
  return calculateHash('ScalarLessThan', this.left, this.right);
36083
36225
  }
36084
- toString() {
36085
- return `${this.left} < ${this.right}`;
36086
- }
36087
36226
  optimize(optimizer) {
36088
36227
  const leftCost = this.left.optimize(optimizer);
36089
36228
  const rightCost = this.right.optimize(optimizer);
@@ -36125,9 +36264,6 @@ var ScalarLessThanOrEqual = class extends ScalarNode {
36125
36264
  getHash() {
36126
36265
  return calculateHash('ScalarLessThanOrEqual', this.left, this.right);
36127
36266
  }
36128
- toString() {
36129
- return `${this.left} <= ${this.right}`;
36130
- }
36131
36267
  optimize(optimizer) {
36132
36268
  const leftCost = this.left.optimize(optimizer);
36133
36269
  const rightCost = this.right.optimize(optimizer);
@@ -36169,9 +36305,6 @@ var ScalarNotEquals = class extends ScalarNode {
36169
36305
  getHash() {
36170
36306
  return calculateHash('ScalarNotEquals', this.left, this.right);
36171
36307
  }
36172
- toString() {
36173
- return `${this.left} != ${this.right}`;
36174
- }
36175
36308
  optimize(optimizer) {
36176
36309
  const leftCost = this.left.optimize(optimizer);
36177
36310
  const rightCost = this.right.optimize(optimizer);
@@ -36213,9 +36346,6 @@ var ScalarOr = class extends ScalarNode {
36213
36346
  getHash() {
36214
36347
  return calculateHash('ScalarOr', this.left, this.right);
36215
36348
  }
36216
- toString() {
36217
- return `${this.left} || ${this.right}`;
36218
- }
36219
36349
  optimize(optimizer) {
36220
36350
  const leftCost = this.left.optimize(optimizer);
36221
36351
  const rightCost = this.right.optimize(optimizer);
@@ -36233,7 +36363,7 @@ var ScalarOr = class extends ScalarNode {
36233
36363
  });
36234
36364
  return {
36235
36365
  type: 'boolean',
36236
- value: toBoolean(left) || toBoolean(right),
36366
+ value: valueToBoolean(left) || valueToBoolean(right),
36237
36367
  };
36238
36368
  }
36239
36369
  };
@@ -36261,9 +36391,6 @@ var ScalarStartsWith = class extends ScalarNode {
36261
36391
  getHash() {
36262
36392
  return calculateHash('ScalarStartsWith', this.source, this.target);
36263
36393
  }
36264
- toString() {
36265
- return `STARTS_WITH(${this.source}, ${this.target})`;
36266
- }
36267
36394
  optimize(optimizer) {
36268
36395
  const sourceCost = this.source.optimize(optimizer);
36269
36396
  const targetCost = this.target.optimize(optimizer);
@@ -36288,7 +36415,8 @@ var ScalarStartsWith = class extends ScalarNode {
36288
36415
  var Explorer = class {
36289
36416
  constructor(normalizer) {
36290
36417
  this.normalizer = normalizer;
36291
- __publicField(this, 'memo', this.normalizer.memo);
36418
+ __publicField(this, 'memo');
36419
+ this.memo = normalizer.memo;
36292
36420
  }
36293
36421
  explore(before) {
36294
36422
  const group = before.getGroup();
@@ -36494,7 +36622,8 @@ var RelationalLimit = class extends RelationalNode {
36494
36622
  this.input = input;
36495
36623
  this.limit = limit;
36496
36624
  this.ordering = ordering;
36497
- __publicField(this, 'inputGroup', this.input.getGroup());
36625
+ __publicField(this, 'inputGroup');
36626
+ this.inputGroup = input.getGroup();
36498
36627
  }
36499
36628
  getHash() {
36500
36629
  return calculateHash('RelationalLimit', this.inputGroup.id, this.limit);
@@ -36530,7 +36659,7 @@ var RelationalLimit = class extends RelationalNode {
36530
36659
  input: this.input.evaluate(context),
36531
36660
  limit: this.limit.evaluate(context, void 0),
36532
36661
  });
36533
- const value = toNumber2(limit) ?? Infinity;
36662
+ const value = valueToNumber(limit) ?? Infinity;
36534
36663
  if (value === Infinity)
36535
36664
  return input;
36536
36665
  return input.slice(0, value);
@@ -36542,7 +36671,8 @@ var RelationalOffset = class extends RelationalNode {
36542
36671
  this.input = input;
36543
36672
  this.offset = offset;
36544
36673
  this.ordering = ordering;
36545
- __publicField(this, 'inputGroup', this.input.getGroup());
36674
+ __publicField(this, 'inputGroup');
36675
+ this.inputGroup = input.getGroup();
36546
36676
  }
36547
36677
  getHash() {
36548
36678
  return calculateHash('RelationalOffset', this.inputGroup.id, this.offset);
@@ -36578,7 +36708,7 @@ var RelationalOffset = class extends RelationalNode {
36578
36708
  input: this.input.evaluate(context),
36579
36709
  offset: this.offset.evaluate(context, void 0),
36580
36710
  });
36581
- const value = toNumber2(offset) ?? 0;
36711
+ const value = valueToNumber(offset) ?? 0;
36582
36712
  if (value === 0)
36583
36713
  return input;
36584
36714
  return input.slice(value);
@@ -36592,8 +36722,9 @@ var ScalarArray = class extends ScalarNode {
36592
36722
  this.ordering = ordering;
36593
36723
  this.referencedFields = referencedFields;
36594
36724
  this.referencedOuterFields = referencedOuterFields;
36595
- __publicField(this, 'inputGroup', this.input.getGroup());
36725
+ __publicField(this, 'inputGroup');
36596
36726
  __publicField(this, 'definition');
36727
+ this.inputGroup = input.getGroup();
36597
36728
  const itemDefinitions = {};
36598
36729
  const namedFieldEntries = Object.entries(namedFields);
36599
36730
  for (const [name, field,] of namedFieldEntries) {
@@ -36617,9 +36748,6 @@ var ScalarArray = class extends ScalarNode {
36617
36748
  }
36618
36749
  return calculateHash('ScalarArray', this.inputGroup.id, namedFieldIds, this.ordering, this.referencedFields, this.referencedOuterFields);
36619
36750
  }
36620
- toString() {
36621
- return `ARRAY(${this.inputGroup.id})`;
36622
- }
36623
36751
  getInputRequiredProps() {
36624
36752
  const resolvedFields = new Fields();
36625
36753
  const fields = Object.values(this.namedFields);
@@ -36673,9 +36801,6 @@ var ScalarCast = class extends ScalarNode {
36673
36801
  getHash() {
36674
36802
  return calculateHash('ScalarCast', this.input, this.definition);
36675
36803
  }
36676
- toString() {
36677
- return `CAST(${this.input} AS ${this.definition.type.toUpperCase()})`;
36678
- }
36679
36804
  optimize(optimizer) {
36680
36805
  return this.input.optimize(optimizer);
36681
36806
  }
@@ -36696,20 +36821,18 @@ var ScalarFlatArray = class extends ScalarNode {
36696
36821
  this.ordering = ordering;
36697
36822
  this.referencedFields = referencedFields;
36698
36823
  this.referencedOuterFields = referencedOuterFields;
36699
- __publicField(this, 'inputGroup', this.input.getGroup());
36824
+ __publicField(this, 'inputGroup');
36700
36825
  __publicField(this, 'definition');
36826
+ this.inputGroup = input.getGroup();
36701
36827
  this.definition = {
36702
36828
  type: 'array',
36703
36829
  isNullable: false,
36704
- definition: this.field.definition,
36830
+ definition: field.definition,
36705
36831
  };
36706
36832
  }
36707
36833
  getHash() {
36708
36834
  return calculateHash('ScalarFlatArray', this.inputGroup.id, this.field.id, this.ordering, this.referencedFields, this.referencedOuterFields);
36709
36835
  }
36710
- toString() {
36711
- return `FLAT_ARRAY(${this.inputGroup.id})`;
36712
- }
36713
36836
  getInputRequiredProps() {
36714
36837
  const resolvedFields = new Fields();
36715
36838
  if (!isUndefined(this.field.collection)) {
@@ -36766,9 +36889,6 @@ var ScalarIn = class extends ScalarNode {
36766
36889
  getHash() {
36767
36890
  return calculateHash('ScalarIn', this.left, this.right);
36768
36891
  }
36769
- toString() {
36770
- return `${this.left} IN ${this.right}`;
36771
- }
36772
36892
  optimize(optimizer) {
36773
36893
  const leftCost = this.left.optimize(optimizer);
36774
36894
  const rightCost = this.right.optimize(optimizer);
@@ -36814,9 +36934,6 @@ var ScalarIndexOf = class extends ScalarNode {
36814
36934
  getHash() {
36815
36935
  return calculateHash('ScalarIndexOf', this.source, this.target);
36816
36936
  }
36817
- toString() {
36818
- return `INDEX_OF(${this.source}, ${this.target})`;
36819
- }
36820
36937
  optimize(optimizer) {
36821
36938
  const sourceCost = this.source.optimize(optimizer);
36822
36939
  const targetCost = this.target.optimize(optimizer);
@@ -36850,9 +36967,6 @@ var ScalarLength = class extends ScalarNode {
36850
36967
  getHash() {
36851
36968
  return calculateHash('ScalarLength', this.input);
36852
36969
  }
36853
- toString() {
36854
- return `LENGTH(${this.input})`;
36855
- }
36856
36970
  optimize(optimizer) {
36857
36971
  return this.input.optimize(optimizer);
36858
36972
  }
@@ -36880,9 +36994,6 @@ var ScalarNot = class extends ScalarNode {
36880
36994
  getHash() {
36881
36995
  return calculateHash('ScalarNot', this.input);
36882
36996
  }
36883
- toString() {
36884
- return `NOT ${this.input}`;
36885
- }
36886
36997
  optimize(optimizer) {
36887
36998
  return this.input.optimize(optimizer);
36888
36999
  }
@@ -36894,7 +37005,7 @@ var ScalarNot = class extends ScalarNode {
36894
37005
  const input = yield* this.input.evaluate(context, tuple);
36895
37006
  return {
36896
37007
  type: 'boolean',
36897
- value: !toBoolean(input),
37008
+ value: !valueToBoolean(input),
36898
37009
  };
36899
37010
  }
36900
37011
  };
@@ -36922,9 +37033,6 @@ var ScalarNotIn = class extends ScalarNode {
36922
37033
  getHash() {
36923
37034
  return calculateHash('ScalarNotIn', this.left, this.right);
36924
37035
  }
36925
- toString() {
36926
- return `${this.left} NOT IN ${this.right}`;
36927
- }
36928
37036
  optimize(optimizer) {
36929
37037
  const leftCost = this.left.optimize(optimizer);
36930
37038
  const rightCost = this.right.optimize(optimizer);
@@ -36960,21 +37068,19 @@ var ScalarVariable = class extends ScalarNode {
36960
37068
  super(referencedFields, referencedOuterFields, true);
36961
37069
  this.field = field;
36962
37070
  this.isOuterField = isOuterField;
36963
- __publicField(this, 'definition', this.field.definition);
37071
+ __publicField(this, 'definition');
37072
+ this.definition = field.definition;
36964
37073
  }
36965
37074
  getHash() {
36966
37075
  return calculateHash('ScalarVariable', this.field.id, this.isOuterField);
36967
37076
  }
36968
- toString() {
36969
- return `"${this.field.name}" /* ${this.field.id} */`;
36970
- }
36971
37077
  optimize() {
36972
37078
  return new Cost(0);
36973
37079
  }
36974
37080
  getOptimized() {
36975
37081
  return this;
36976
37082
  }
36977
- // eslint-disable-next-line require-yield
37083
+ // biome-ignore lint/correctness/useYield: Required by the super class.
36978
37084
  *evaluate(context, tuple) {
36979
37085
  if (this.isOuterField) {
36980
37086
  assert(context, 'Context must exist');
@@ -37292,7 +37398,8 @@ var EnforcerResolve = class extends EnforcerNode {
37292
37398
  super(false);
37293
37399
  this.input = input;
37294
37400
  this.fields = fields;
37295
- __publicField(this, 'inputGroup', this.input.getGroup());
37401
+ __publicField(this, 'inputGroup');
37402
+ this.inputGroup = input.getGroup();
37296
37403
  }
37297
37404
  getHash() {
37298
37405
  return calculateHash('EnforcerResolve', this.inputGroup.id, this.fields);
@@ -37376,7 +37483,8 @@ var EnforcerSort = class extends EnforcerNode {
37376
37483
  super(input.isSynchronous);
37377
37484
  this.input = input;
37378
37485
  this.ordering = ordering;
37379
- __publicField(this, 'inputGroup', this.input.getGroup());
37486
+ __publicField(this, 'inputGroup');
37487
+ this.inputGroup = input.getGroup();
37380
37488
  }
37381
37489
  getHash() {
37382
37490
  return calculateHash('EnforcerSort', this.inputGroup.id, this.ordering);
@@ -38304,7 +38412,7 @@ function callbackForVariant(map2, variant) {
38304
38412
  return map2.default;
38305
38413
  }
38306
38414
  function useOnVariantChange(variant, callbackMap) {
38307
- const isRenderingStaticContent = useIsStaticRenderer();
38415
+ const isRenderingStaticContent = isStaticRenderer();
38308
38416
  if (isRenderingStaticContent)
38309
38417
  return;
38310
38418
  const isActiveScreenRef = React4.useRef(true);
@@ -42302,7 +42410,7 @@ function getInitialEffectStyle(canPlay, canAnimate2, effect) {
42302
42410
  }
42303
42411
  function useTextEffect(config, ref, preview) {
42304
42412
  const elements = useConstant2(() => /* @__PURE__ */ new Set());
42305
- const isRenderingStaticContent = useIsStaticRenderer();
42413
+ const isRenderingStaticContent = isStaticRenderer();
42306
42414
  const canPlay = preview || !isRenderingStaticContent;
42307
42415
  const state2 = React2.useRef({
42308
42416
  hasMounted: false,
@@ -43311,20 +43419,21 @@ function getSVGSize(svg) {
43311
43419
  height,
43312
43420
  };
43313
43421
  }
43314
- function SVG(props) {
43422
+ var SVG = /* @__PURE__ */ forwardRef(function SVG2(props, forwardedRef) {
43315
43423
  const parentSize = useParentSize();
43316
43424
  const layoutId = useLayoutId2(props);
43317
43425
  const layoutRef = React4.useRef(null);
43426
+ const ref = forwardedRef ?? layoutRef;
43318
43427
  const providedWindow = useProvidedWindow();
43319
43428
  useMeasureLayout(props, layoutRef);
43320
43429
  return /* @__PURE__ */ jsx(SVGComponent, {
43321
43430
  ...props,
43322
- innerRef: layoutRef,
43431
+ innerRef: ref,
43323
43432
  parentSize,
43324
43433
  layoutId,
43325
43434
  providedWindow,
43326
43435
  });
43327
- }
43436
+ });
43328
43437
  var MAX_BACKGROUND_SVG_TEXT_LENGTH = 5e4;
43329
43438
  function containsImageReference(svg) {
43330
43439
  return svg.indexOf('image') >= 0;
@@ -43516,6 +43625,7 @@ var SVGComponent = /* @__PURE__ */ (() => {
43516
43625
  style: {
43517
43626
  position: 'absolute',
43518
43627
  },
43628
+ role: 'presentation',
43519
43629
  children: /* @__PURE__ */ jsx('linearGradient', {
43520
43630
  id: gradientId,
43521
43631
  x1,
@@ -43544,6 +43654,7 @@ var SVGComponent = /* @__PURE__ */ (() => {
43544
43654
  style: {
43545
43655
  position: 'absolute',
43546
43656
  },
43657
+ role: 'presentation',
43547
43658
  children: /* @__PURE__ */ jsx('radialGradient', {
43548
43659
  id: gradientId,
43549
43660
  cy: gradient.centerAnchorY,
@@ -43570,6 +43681,7 @@ var SVGComponent = /* @__PURE__ */ (() => {
43570
43681
  style: {
43571
43682
  position: 'absolute',
43572
43683
  },
43684
+ role: 'presentation',
43573
43685
  children: /* @__PURE__ */ jsx('defs', {
43574
43686
  children: /* @__PURE__ */ jsx(ImagePatternElement, {
43575
43687
  ...imagePattern,
@@ -45071,7 +45183,7 @@ MotionValue.prototype.addChild = function ({ transformer = (v) => v, }) {
45071
45183
  if (false) {
45072
45184
  MainLoop2.start();
45073
45185
  }
45074
- export { _injectRuntime, AcceleratedAnimation, addActionControls, addFonts, addPointerEvent, addPointerInfo, addPropertyControls, addScaleCorrector, AnchorLinkTarget, Animatable, animate2 as animate, animateMini, AnimatePresence, AnimateSharedLayout, animateValue, animateVisualElement, animationControls, animations, annotateTypeOnStringify, anticipate, AnyInterpolation, AutomaticLayoutIds, BackgroundImage, backgroundImageFromProps, backIn, backInOut, backOut, BezierAnimator, BoxShadow, buildTransform, calcLength, calculateRect, callEach, cancelFrame, cancelSync, ChildrenCanSuspend, circIn, circInOut, circOut, clamp, collectVisualStyleFromProps, Color, color, ColorFormat, ColorMixModelType, combinedCSSRulesForPreview, complex, ComponentContainerContext, ComponentPresetsConsumer, ComponentPresetsProvider, ComponentViewportProvider, ConstraintMask, constraintsEnabled, ConstraintValues, Container, ControlType, ConvertColor, convertPresentationTree, convertPropsToDeviceOptions, createBox, createData, createFramerPageLink, createRendererMotionComponent, createScopedAnimate, cssBackgroundSize, cubicBezier, CustomCursorHost, CustomProperties, cx, CycleVariantState, Data, DataContext, DataObserver, DataObserverContext, debounce, defaultDeviceProps, degreesToRadians, delay, DeprecatedComponentContainer, DeprecatedFrameWithEvents, DeprecatedLayoutGroupContext, DeprecatedLayoutGroupContext as LayoutGroupContext, Device, DeviceCodeComponent, devicePresets, DimensionType, disableInstantTransitions, dispatchKeyDownEvent, distance, distance2D, DOM, domAnimation, domMax, domMin, DragControls, Draggable, easeIn, easeInOut, easeOut, EmptyState, environment, ErrorPlaceholder, executeInRenderEnvironment, Fetcher, filterProps, findSpring, finiteNumber, FlatTree, Floating, FontSourceNames, fontStore, forceLayerBackingWithCSSProperties, FormBooleanInput, FormContainer, FormPlainTextInput2 as FormPlainTextInput, FormSelect, fraction, Frame, frame, frameData, frameFromElement, frameFromElements, FramerAnimation, framerAppearAnimationScriptKey, framerAppearEffects, framerAppearIdKey, framerAppearTransformTemplateToken, framerCSSMarker, FramerEvent, FramerEventListener, FramerEventSession, frameSteps, FrameWithMotion, GamepadContext, GeneratedComponentContext, getComponentSize, getDevicePreset, getFonts, getFontsFromComponentPreset, getFontsFromSharedStyle, getLoadingLazyAtYPosition, getMeasurableCodeComponentChildren, getPropertyControls, getWhereExpressionFromPathVariables, GracefullyDegradingErrorBoundary, gradientForShape, Image2 as Image, imagePatternPropsForFill, imageUrlForAsset, inertia, inferInitialRouteFromPath, injectComponentCSSRules, installFlexboxGapWorkaroundIfNeeded, InternalID, interpolate, invariant, inView, isAnimatable2 as isAnimatable, isBrowser, isDesignDefinition, isDragActive, isEqual, isFiniteNumber, isFractionDimension, isFramerGamepadKeydownData, isFramerPageLink, isGapEnabled, isMotionComponent, isMotionValue2 as isMotionValue, isOfAnnotatedType, isOverride, isReactDefinition, isRelativeNumber, isShallowEqualArray, isStraightCurve, isValidMotionProp, keyframes, Layer, LayoutGroup, LayoutIdContext, lazy, LazyMotion, LazyValue, LibraryFeaturesProvider, Line, LinearGradient, Link, loadFont, loadJSON, localPackageFallbackIdentifier, localShadowFrame, m, MainLoop, makePaddingString, makeUseVisualState, markHydrationStart, memoize2 as memoize, mirrorEasing, mix, modulate, motion, MotionConfig, MotionConfigContext, MotionContext, MotionGlobalConfig, MotionSetup, MotionValue, motionValue, namespace_exports as Reorder, NavigateTo, NavigationCallbackProvider, NavigationConsumer, NavigationTransitionType, NavigationWrapper as Navigation, nestedLinksCollector, NotFoundError, ObservableObject, optimizeAppear, optimizeAppearTransformTemplate, optimizedAppearDataAttribute, paddingFromProps, Page3 as Page, PageEffectsProvider, PageRoot, ParentSizeState, parseFramerPageLink, pathDefaults, PathSegment, PathVariablesContext, pipe, Point, Polygon, preloadImage, PresenceContext, print, progress, PropertyOverrides2 as PropertyOverrides, PropertyStore, propsForLink, pushLoadMoreHistory, px, QueryEngine, RadialGradient, Rect, removeHiddenBreakpointLayers, removeHiddenBreakpointLayersV2, RenderTarget, resolveLink, ResolveLinks, resolveMotionValue, resolvePageScope, reverseEasing, RichText2 as RichText, roundedNumber, roundedNumberString, roundWithOffset, safeCSSValue, Scroll, scroll, scrollInfo, setGlobalRenderEnvironment, setInitialHydrationState, Shadow, sharedSVGManager, shouldOpenLinkInNewTab, Size, SmartComponentScopedContainer, spring, SpringAnimator, SSRVariants, Stack, stagger, startAnimation, startOptimizedAppearAnimation, steps, StyleSheetContext, SVG, SwitchLayoutGroupContext, sync, systemFontFamilyName, Text2 as Text, throttle, toFlexDirection, toJustifyOrAlignment, toSVGPath, transform, transformString2 as transformString, transformTemplate, turnOffReactEventHandling, unwrapMotionComponent, useActiveTargetCallback, useActiveVariantCallback, useAddVariantProps, useAnimate, useAnimatedState, useAnimatedState as useDeprecatedAnimatedState, useAnimateMini, useAnimation, useAnimationControls, useAnimationFrame, useBreakpointVariants, useComponentViewport, useConstant2 as useConstant, useCurrentPathVariables, useCurrentRoute, useCurrentRouteId, useCustomCursors, useCycle, useDataRecord, useDomEvent, useDragControls, useDynamicRefs, useElementScroll, useForceUpdate, useGamepad, useHotkey, useHydratedBreakpointVariants, useInitialRouteComponent, useInstantLayoutTransition, useInstantTransition, useInvertedScale, useInvertedScale as useDeprecatedInvertedScale, useInView, useIsInCurrentNavigationTarget, useIsomorphicLayoutEffect, useIsOnFramerCanvas, useIsPresent, useIsStaticRenderer, useLoadMorePaginatedQuery, useLoadMorePagination, useLocale, useLocaleCode, useLocaleInfo, useLocalizationInfo, useMeasureLayout, useMotionTemplate, useMotionValue, useMotionValueEvent, useNavigate, useNavigation, useObserveData, useOnAppear, useOnCurrentTargetChange, useOnVariantChange, useOverlayState, usePageEffects, usePrefetch, usePreloadQuery, usePresence, usePrototypeNavigate, useProvidedWindow, useQueryData, useReducedMotion, useReducedMotionConfig, useRenderEnvironment, useResetProjection, useRoute, useRouteAnchor, useRouteElementId, useRouteHandler, useRouter, useScroll, useSiteRefs, useSpring, useTime, useTransform, useUnmountEffect, useVariantState, useVelocity, useViewportScroll, useWillChange, ValueInterpolation, valueToDimensionType, VariantSelector, Vector, VectorGroup, version, VisualElement, visualElementStore, warning, WindowContext, withCodeBoundaryForOverrides, withCSS, withFX, withGeneratedLayoutId, withInfiniteScroll, withMappedReactProps, withMeasuredSize, WithNavigator, withOpacity, withOptimizedAppearEffect, WithOverride, withParallaxTransform, withPath, withPerformanceMarks, withShape, withStyleAppearEffect, withVariantAppearEffect, withVariantFX, wrap, };
45186
+ export { _injectRuntime, AcceleratedAnimation, addActionControls, addFonts, addPointerEvent, addPointerInfo, addPropertyControls, addScaleCorrector, AnchorLinkTarget, Animatable, animate2 as animate, animateMini, AnimatePresence, AnimateSharedLayout, animateValue, animateVisualElement, animationControls, animations, annotateTypeOnStringify, anticipate, AnyInterpolation, AutomaticLayoutIds, BackgroundImage, backgroundImageFromProps, backIn, backInOut, backOut, BezierAnimator, BoxShadow, buildTransform, calcLength, calculateRect, callEach, cancelFrame, cancelSync, ChildrenCanSuspend, circIn, circInOut, circOut, clamp, collectVisualStyleFromProps, Color, color, ColorFormat, ColorMixModelType, combinedCSSRulesForPreview, complex, ComponentContainerContext, ComponentPresetsConsumer, ComponentPresetsProvider, ComponentViewportProvider, ConstraintMask, constraintsEnabled, ConstraintValues, Container, ControlType, ConvertColor, convertPresentationTree, convertPropsToDeviceOptions, createBox, createData, createFramerPageLink, createRendererMotionComponent, createScopedAnimate, cssBackgroundSize, cubicBezier, CustomCursorHost, CustomProperties, cx, CycleVariantState, Data, DataContext, DataObserver, DataObserverContext, debounce, defaultDeviceProps, degreesToRadians, delay, DeprecatedComponentContainer, DeprecatedFrameWithEvents, DeprecatedLayoutGroupContext, DeprecatedLayoutGroupContext as LayoutGroupContext, Device, DeviceCodeComponent, devicePresets, DimensionType, disableInstantTransitions, dispatchKeyDownEvent, distance, distance2D, DOM, domAnimation, domMax, domMin, DragControls, Draggable, easeIn, easeInOut, easeOut, EmptyState, environment, ErrorPlaceholder, executeInRenderEnvironment, Fetcher, filterProps, findSpring, finiteNumber, FlatTree, Floating, FontSourceNames, fontStore, forceLayerBackingWithCSSProperties, FormBooleanInput, FormContainer, FormPlainTextInput2 as FormPlainTextInput, FormSelect, fraction, Frame, frame, frameData, frameFromElement, frameFromElements, FramerAnimation, framerAppearAnimationScriptKey, framerAppearEffects, framerAppearIdKey, framerAppearTransformTemplateToken, framerCSSMarker, FramerEvent, FramerEventListener, FramerEventSession, frameSteps, FrameWithMotion, GamepadContext, GeneratedComponentContext, getComponentSize, getDevicePreset, getFonts, getFontsFromComponentPreset, getFontsFromSharedStyle, getLoadingLazyAtYPosition, getMeasurableCodeComponentChildren, getPropertyControls, getWhereExpressionFromPathVariables, GracefullyDegradingErrorBoundary, gradientForShape, Image2 as Image, imagePatternPropsForFill, imageUrlForAsset, inertia, inferInitialRouteFromPath, injectComponentCSSRules, installFlexboxGapWorkaroundIfNeeded, InternalID, interpolate, invariant, inView, isAnimatable2 as isAnimatable, isBrowser, isDesignDefinition, isDragActive, isEqual, isFiniteNumber, isFractionDimension, isFramerGamepadKeydownData, isFramerPageLink, isGapEnabled, isMotionComponent, isMotionValue2 as isMotionValue, isOfAnnotatedType, isOverride, isReactDefinition, isRelativeNumber, isShallowEqualArray, isStaticRenderer, isStraightCurve, isValidMotionProp, keyframes, Layer, LayoutGroup, LayoutIdContext, lazy, LazyMotion, LazyValue, LibraryFeaturesProvider, Line, LinearGradient, Link, loadFont, loadJSON, localPackageFallbackIdentifier, localShadowFrame, m, MainLoop, makePaddingString, makeUseVisualState, markHydrationStart, memoize2 as memoize, mirrorEasing, mix, modulate, motion, MotionConfig, MotionConfigContext, MotionContext, MotionGlobalConfig, MotionSetup, MotionValue, motionValue, namespace_exports as Reorder, NavigateTo, NavigationCallbackProvider, NavigationConsumer, NavigationTransitionType, NavigationWrapper as Navigation, nestedLinksCollector, NotFoundError, ObservableObject, optimizeAppear, optimizeAppearTransformTemplate, optimizedAppearDataAttribute, paddingFromProps, Page3 as Page, PageEffectsProvider, PageRoot, ParentSizeState, parseFramerPageLink, pathDefaults, PathSegment, PathVariablesContext, pipe, Point, Polygon, preloadImage, PresenceContext, print, progress, PropertyOverrides2 as PropertyOverrides, PropertyStore, propsForLink, pushLoadMoreHistory, px, QueryEngine, RadialGradient, Rect, removeHiddenBreakpointLayers, removeHiddenBreakpointLayersV2, RenderTarget, resolveLink, ResolveLinks, resolveMotionValue, resolvePageScope, reverseEasing, RichText2 as RichText, roundedNumber, roundedNumberString, roundWithOffset, safeCSSValue, Scroll, scroll, scrollInfo, setGlobalRenderEnvironment, setInitialHydrationState, Shadow, sharedSVGManager, shouldOpenLinkInNewTab, Size, SmartComponentScopedContainer, spring, SpringAnimator, SSRVariants, Stack, stagger, startAnimation, startOptimizedAppearAnimation, steps, StyleSheetContext, SVG, SwitchLayoutGroupContext, sync, systemFontFamilyName, Text2 as Text, throttle, toFlexDirection, toJustifyOrAlignment, toSVGPath, transform, transformString2 as transformString, transformTemplate, turnOffReactEventHandling, unwrapMotionComponent, useActiveTargetCallback, useActiveVariantCallback, useAddVariantProps, useAnimate, useAnimatedState, useAnimatedState as useDeprecatedAnimatedState, useAnimateMini, useAnimation, useAnimationControls, useAnimationFrame, useBreakpointVariants, useComponentViewport, useConstant2 as useConstant, useCurrentPathVariables, useCurrentRoute, useCurrentRouteId, useCustomCursors, useCycle, useDataRecord, useDomEvent, useDragControls, useDynamicRefs, useElementScroll, useForceUpdate, useGamepad, useHotkey, useHydratedBreakpointVariants, useInitialRouteComponent, useInstantLayoutTransition, useInstantTransition, useInvertedScale, useInvertedScale as useDeprecatedInvertedScale, useInView, useIsInCurrentNavigationTarget, useIsomorphicLayoutEffect, useIsOnFramerCanvas, useIsPresent, useIsStaticRenderer, useLoadMorePaginatedQuery, useLoadMorePagination, useLocale, useLocaleCode, useLocaleInfo, useLocalizationInfo, useMeasureLayout, useMotionTemplate, useMotionValue, useMotionValueEvent, useNavigate, useNavigation, useObserveData, useOnAppear, useOnCurrentTargetChange, useOnVariantChange, useOverlayState, usePageEffects, usePrefetch, usePreloadQuery, usePresence, usePrototypeNavigate, useProvidedWindow, useQueryData, useReducedMotion, useReducedMotionConfig, useRenderEnvironment, useResetProjection, useRoute, useRouteAnchor, useRouteElementId, useRouteHandler, useRouter, useScroll, useSiteRefs, useSpring, useTime, useTransform, useUnmountEffect, useVariantState, useVelocity, useViewportScroll, useWillChange, ValueInterpolation, valueToDimensionType, VariantSelector, Vector, VectorGroup, version, VisualElement, visualElementStore, warning, WindowContext, withCodeBoundaryForOverrides, withCSS, withFX, withGeneratedLayoutId, withInfiniteScroll, withMappedReactProps, withMeasuredSize, WithNavigator, withOpacity, withOptimizedAppearEffect, WithOverride, withParallaxTransform, withPath, withPerformanceMarks, withShape, withStyleAppearEffect, withVariantAppearEffect, withVariantFX, wrap, };
45075
45187
  /**
45076
45188
  * @license Emotion v11.0.0
45077
45189
  * MIT License