panelui-native 0.82.0 → 0.83.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.
@@ -7,7 +7,7 @@ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
7
7
  import Animated, { Extrapolation, FadeIn, cancelAnimation, interpolate, SlideInDown, runOnJS, useAnimatedScrollHandler, useAnimatedStyle, useReducedMotion, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
8
8
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
9
9
  import { tv } from 'tailwind-variants';
10
- import { getNativeUI } from "../../native/index.js";
10
+ import { getComposeModifiers, getNativeUI, getSwiftUIModifiers } from "../../native/index.js";
11
11
  import { XIcon } from "../../icons/index.js";
12
12
  import { ModalPortal } from "../../primitives/portal.js";
13
13
  import { Scrim } from "../../primitives/scrim.js";
@@ -106,6 +106,22 @@ const DETENT_FRACTION = {
106
106
  full: 0.9
107
107
  };
108
108
 
109
+ /**
110
+ * How long to treat a dismissal *we* asked for as still in flight.
111
+ *
112
+ * A timer, because there is nothing to wait on. The platform reports a
113
+ * dismissal the reader performed — that report is the binding writing its new
114
+ * value back — but not one we asked for, where the binding already holds the
115
+ * value it would have written and the change is suppressed at the source. So
116
+ * the only sheet whose departure can be observed is the one we did not ask to
117
+ * leave.
118
+ *
119
+ * Comfortably past the system's own sheet transition, since the cost of being
120
+ * late is a present held a little longer than it needed to be, and the cost of
121
+ * being early is the platform dropping it and no sheet at all.
122
+ */
123
+ const NATIVE_DISMISS_MS = 400;
124
+
109
125
  /**
110
126
  * The height the content should at least fill for a given set of detents.
111
127
  *
@@ -136,6 +152,27 @@ export function bottomSheetDetentHeight(snapPoints, screenHeight) {
136
152
  return undefined;
137
153
  }
138
154
 
155
+ /**
156
+ * The modifier that paints a native sheet's own surface, for whichever toolkit
157
+ * is drawing it — or nothing, where neither is reachable.
158
+ *
159
+ * A sheet's surface is not the background of anything hosted in it. The
160
+ * grabber's strip at the top and the safe-area inset at the bottom are the
161
+ * sheet's own chrome, and a colour put behind the content stops short of both
162
+ * of them — so the sheet arrives two-tone, and shifts as it moves between
163
+ * detents. These two reach the surface itself.
164
+ *
165
+ * The toolkits do not share a vocabulary, so the question is asked of each in
166
+ * its own terms rather than one answer being sent to both.
167
+ */
168
+ function nativeSheetSurface(color) {
169
+ const swiftUI = getSwiftUIModifiers();
170
+ if (swiftUI) return [swiftUI.presentationBackground(color)];
171
+ const compose = getComposeModifiers();
172
+ if (compose) return [compose.background(color)];
173
+ return undefined;
174
+ }
175
+
139
176
  /**
140
177
  * Set by the root so Content knows the platform is drawing the sheet, and with
141
178
  * which detents. Null means the styled sheet renders.
@@ -160,7 +197,8 @@ function BottomSheetRoot({
160
197
  onOpenChange,
161
198
  defaultOpen = false,
162
199
  native,
163
- snapPoints
200
+ snapPoints,
201
+ nativeBackground
164
202
  }) {
165
203
  const [internalOpen, setInternalOpen] = useState(defaultOpen);
166
204
  const isControlled = open !== undefined;
@@ -176,8 +214,9 @@ function BottomSheetRoot({
176
214
  const nativeUI = native ? getNativeUI() : null;
177
215
  const nativeSheet = useMemo(() => nativeUI ? {
178
216
  nativeUI,
179
- snapPoints
180
- } : null, [nativeUI, snapPoints]);
217
+ snapPoints,
218
+ background: nativeBackground
219
+ } : null, [nativeBackground, nativeUI, snapPoints]);
181
220
  return /*#__PURE__*/_jsx(BottomSheetContext.Provider, {
182
221
  value: context,
183
222
  children: /*#__PURE__*/_jsx(NativeSheetContext.Provider, {
@@ -234,6 +273,10 @@ function BottomSheetContent({
234
273
  const insets = useSafeAreaInsets();
235
274
  const translateY = useSharedValue(0);
236
275
  const closeTint = useCSSVariable('--color-muted-foreground');
276
+ // Read unconditionally, used only by the native branch: the platform draws
277
+ // that sheet's container, so a token can only reach it as a colour handed
278
+ // over, never as a class.
279
+ const popoverSurface = useCSSVariable('--color-popover');
237
280
 
238
281
  /*
239
282
  * The scrolling body's gesture, if there is one. It is built here rather
@@ -307,35 +350,77 @@ function BottomSheetContent({
307
350
  * sees a sheet that "took a moment" or never came at all.
308
351
  *
309
352
  * `isPresented` is therefore driven from here rather than straight from
310
- * `open`. A present that arrives during a dismissal is held, and replayed
311
- * from the platform's own `onDismiss`, which is the only signal that says the
312
- * previous sheet has finished going away.
353
+ * `open`: a present that arrives during a dismissal is held, and let through
354
+ * once that dismissal is over.
355
+ *
356
+ * Knowing when it is over is the hard half, because it depends on who asked.
357
+ * A dismissal the reader performed is reported — that report is the platform
358
+ * writing the new value back to us. One we asked for is not: the value is
359
+ * already what the platform would have written, so the change is suppressed
360
+ * at the source and no report is ever sent. A queue that waits for one
361
+ * regardless waits for ever, and every present after the first is held —
362
+ * which is a sheet that opens once and then never again, whether the flag was
363
+ * raised by the reader's swipe or by a Close button inside the sheet.
364
+ *
365
+ * So the two are ended by their own means: the reader's by the report, ours
366
+ * by {@link NATIVE_DISMISS_MS} — and by the report as well, if one turns up,
367
+ * since arriving early is only ever an improvement.
313
368
  */
314
369
  const [nativePresented, setNativePresented] = useState(open);
370
+ const nativeOnScreen = useRef(open);
315
371
  const nativeDismissing = useRef(false);
372
+ const nativeDismissTimer = useRef(null);
316
373
  const openRef = useRef(open);
317
374
  openRef.current = open;
375
+
376
+ /** The dismissal is over: let a held present through, if one is waiting. */
377
+ const endNativeDismissal = useCallback(() => {
378
+ if (nativeDismissTimer.current !== null) {
379
+ clearTimeout(nativeDismissTimer.current);
380
+ nativeDismissTimer.current = null;
381
+ }
382
+ if (!nativeDismissing.current) return;
383
+ nativeDismissing.current = false;
384
+ if (openRef.current) {
385
+ nativeOnScreen.current = true;
386
+ setNativePresented(true);
387
+ }
388
+ }, []);
318
389
  useEffect(() => {
319
390
  if (!nativeSheet) return;
320
391
  if (open) {
321
392
  if (nativeDismissing.current) return;
393
+ nativeOnScreen.current = true;
322
394
  setNativePresented(true);
323
395
  return;
324
396
  }
325
- if (nativePresented) nativeDismissing.current = true;
397
+
398
+ // Only a sheet the platform still has on screen can be in the middle of
399
+ // leaving. One the reader already swiped away has reported itself gone.
400
+ if (nativeOnScreen.current) {
401
+ nativeOnScreen.current = false;
402
+ nativeDismissing.current = true;
403
+ if (nativeDismissTimer.current !== null) clearTimeout(nativeDismissTimer.current);
404
+ nativeDismissTimer.current = setTimeout(endNativeDismissal, NATIVE_DISMISS_MS);
405
+ }
326
406
  setNativePresented(false);
327
- }, [nativePresented, nativeSheet, open]);
407
+ }, [endNativeDismissal, nativeSheet, open]);
408
+ useEffect(() => () => {
409
+ if (nativeDismissTimer.current !== null) clearTimeout(nativeDismissTimer.current);
410
+ }, []);
328
411
  const onNativeDismiss = useCallback(() => {
329
- // Ours, or the reader's? A dismissal we asked for has to hand the queue
330
- // back; one the reader performed has to be reported as a close.
331
- const wasOurs = nativeDismissing.current;
332
- nativeDismissing.current = false;
333
- if (wasOurs) {
334
- if (openRef.current) setNativePresented(true);
412
+ // The platform reporting that its sheet has gone. Whatever asked for it,
413
+ // there is nothing on screen now.
414
+ nativeOnScreen.current = false;
415
+
416
+ // Ours, or the reader's? A dismissal we asked for hands the queue back
417
+ // ahead of its window; one the reader performed is a close to report.
418
+ if (nativeDismissing.current) {
419
+ endNativeDismissal();
335
420
  return;
336
421
  }
337
422
  if (dismissible) close();
338
- }, [close, dismissible]);
423
+ }, [close, dismissible, endNativeDismissal]);
339
424
  const pan = useMemo(() => Gesture.Pan()
340
425
  /*
341
426
  * A drag has to travel before it takes the touch. This detector wraps
@@ -426,6 +511,15 @@ function BottomSheetContent({
426
511
  * height, so a native sheet keeps the system's snapping.
427
512
  */
428
513
  const snapPoints = nativeSheet.snapPoints ?? (size === 'auto' ? undefined : [size]);
514
+ /*
515
+ * `true` means the theme's surface, and a string means itself. A token
516
+ * that did not resolve is dropped rather than passed on — an unresolved
517
+ * colour reaching the platform is a sheet painted some default, which is
518
+ * further from the material than leaving the material alone.
519
+ */
520
+ const requested = nativeSheet.background;
521
+ const surface = requested === true ? typeof popoverSurface === 'string' ? popoverSurface : undefined : typeof requested === 'string' ? requested : undefined;
522
+ const modifiers = surface ? nativeSheetSurface(surface) : undefined;
429
523
  // The platform owns presentation, so this stays mounted and toggles
430
524
  // isPresented rather than unmounting on close.
431
525
  //
@@ -442,6 +536,7 @@ function BottomSheetContent({
442
536
  isPresented: nativePresented,
443
537
  onDismiss: onNativeDismiss,
444
538
  snapPoints: snapPoints,
539
+ modifiers: modifiers,
445
540
  children: /*#__PURE__*/_jsx(RNHostView, {
446
541
  matchContents: true,
447
542
  children: /*#__PURE__*/_jsx(BottomSheetContext.Provider, {
@@ -1 +1 @@
1
- {"version":3,"names":["cloneElement","createContext","isValidElement","useCallback","useContext","useEffect","useMemo","useRef","useState","Pressable","StyleSheet","useWindowDimensions","View","useCSSVariable","Gesture","GestureDetector","Animated","Extrapolation","FadeIn","cancelAnimation","interpolate","SlideInDown","runOnJS","useAnimatedScrollHandler","useAnimatedStyle","useReducedMotion","useSharedValue","withSpring","withTiming","useSafeAreaInsets","tv","getNativeUI","XIcon","ModalPortal","Scrim","Text","textChildren","useBackHandler","cn","impactKnock","jsx","_jsx","jsxs","_jsxs","SPRING","duration","dampingRatio","EXIT_SPRING","overshootClamping","DISMISS_DISTANCE","DISMISS_VELOCITY","ENTERING","springify","project","velocity","decelerationRate","sheetVariants","base","variants","detached","false","true","defaultVariants","BottomSheetContext","useBottomSheet","component","context","Error","DETENT_FRACTION","half","full","bottomSheetDetentHeight","snapPoints","screenHeight","length","undefined","first","fraction","height","NativeSheetContext","SheetSurfaceContext","BottomSheetRoot","children","open","onOpenChange","defaultOpen","native","internalOpen","setInternalOpen","isControlled","resolvedOpen","setOpen","next","nativeUI","nativeSheet","Provider","value","BottomSheetTrigger","onPress","args","props","SIZE_FRACTION","BottomSheetContent","className","dismissible","showClose","showGrabber","blur","size","width","screenWidth","reducedMotion","insets","translateY","closeTint","scrollGesture","Native","scrollOffset","hasScrollable","close","presented","setPresented","land","finished","nativePresented","setNativePresented","nativeDismissing","openRef","current","onNativeDismiss","wasOurs","pan","Pan","activeOffsetY","simultaneousWithExternalGesture","onChange","event","changeY","onEnd","projected","velocityY","sheetStyle","transform","backdropStyle","opacity","CLAMP","sizedHeight","Math","min","top","surface","Host","BottomSheet","NativeBottomSheet","RNHostView","matchContents","ignoreSafeArea","style","position","isPresented","onDismiss","minHeight","paddingBottom","max","bottom","absoluteFill","accessibilityLabel","gesture","entering","accessibilityViewIsModal","accessibilityRole","hitSlop","color","BottomSheetHeader","title","description","text","weight","muted","displayName","BottomSheetBody","onScroll","handler","contentOffset","y","body","ScrollView","scrollEventThrottle","showsVerticalScrollIndicator","BottomSheetFooter","Object","assign","Trigger","Content","Header","Body","Footer"],"sourceRoot":"../../../../src","sources":["components/bottom-sheet/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["cloneElement","createContext","isValidElement","useCallback","useContext","useEffect","useMemo","useRef","useState","Pressable","StyleSheet","useWindowDimensions","View","useCSSVariable","Gesture","GestureDetector","Animated","Extrapolation","FadeIn","cancelAnimation","interpolate","SlideInDown","runOnJS","useAnimatedScrollHandler","useAnimatedStyle","useReducedMotion","useSharedValue","withSpring","withTiming","useSafeAreaInsets","tv","getComposeModifiers","getNativeUI","getSwiftUIModifiers","XIcon","ModalPortal","Scrim","Text","textChildren","useBackHandler","cn","impactKnock","jsx","_jsx","jsxs","_jsxs","SPRING","duration","dampingRatio","EXIT_SPRING","overshootClamping","DISMISS_DISTANCE","DISMISS_VELOCITY","ENTERING","springify","project","velocity","decelerationRate","sheetVariants","base","variants","detached","false","true","defaultVariants","BottomSheetContext","useBottomSheet","component","context","Error","DETENT_FRACTION","half","full","NATIVE_DISMISS_MS","bottomSheetDetentHeight","snapPoints","screenHeight","length","undefined","first","fraction","height","nativeSheetSurface","color","swiftUI","presentationBackground","compose","background","NativeSheetContext","SheetSurfaceContext","BottomSheetRoot","children","open","onOpenChange","defaultOpen","native","nativeBackground","internalOpen","setInternalOpen","isControlled","resolvedOpen","setOpen","next","nativeUI","nativeSheet","Provider","value","BottomSheetTrigger","onPress","args","props","SIZE_FRACTION","BottomSheetContent","className","dismissible","showClose","showGrabber","blur","size","width","screenWidth","reducedMotion","insets","translateY","closeTint","popoverSurface","scrollGesture","Native","scrollOffset","hasScrollable","close","presented","setPresented","land","finished","nativePresented","setNativePresented","nativeOnScreen","nativeDismissing","nativeDismissTimer","openRef","current","endNativeDismissal","clearTimeout","setTimeout","onNativeDismiss","pan","Pan","activeOffsetY","simultaneousWithExternalGesture","onChange","event","changeY","onEnd","projected","velocityY","sheetStyle","transform","backdropStyle","opacity","CLAMP","sizedHeight","Math","min","top","surface","Host","BottomSheet","NativeBottomSheet","RNHostView","requested","modifiers","matchContents","ignoreSafeArea","style","position","isPresented","onDismiss","minHeight","paddingBottom","max","bottom","absoluteFill","accessibilityLabel","gesture","entering","accessibilityViewIsModal","accessibilityRole","hitSlop","BottomSheetHeader","title","description","text","weight","muted","displayName","BottomSheetBody","onScroll","handler","contentOffset","y","body","ScrollView","scrollEventThrottle","showsVerticalScrollIndicator","BottomSheetFooter","Object","assign","Trigger","Content","Header","Body","Footer"],"sourceRoot":"../../../../src","sources":["components/bottom-sheet/index.tsx"],"mappings":";;AAAA,SACEA,YAAY,EACZC,aAAa,EACbC,cAAc,EACdC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAIH,OAAO;AACd,SACEC,SAAS,EACTC,UAAU,EACVC,mBAAmB,EACnBC,IAAI,QAEC,cAAc;AACrB,SAASC,cAAc,QAAQ,SAAS;AACxC,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA8B;AACvE,OAAOC,QAAQ,IACbC,aAAa,EACbC,MAAM,EACNC,eAAe,EACfC,WAAW,EACXC,WAAW,EACXC,OAAO,EACPC,wBAAwB,EACxBC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,UAAU,QAEL,yBAAyB;AAChC,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,EAAE,QAAQ,mBAAmB;AACtC,SAASC,mBAAmB,EAAEC,WAAW,EAAEC,mBAAmB,QAAQ,uBAAc;AACpF,SAASC,KAAK,QAAQ,sBAAa;AACnC,SAASC,WAAW,QAAQ,4BAAyB;AACrD,SAASC,KAAK,QAAQ,2BAAwB;AAC9C,SAASC,IAAI,EAAEC,YAAY,QAAQ,0BAAuB;AAC1D,SAASC,cAAc,QAAQ,iCAA8B;AAC7D,SAASC,EAAE,QAAQ,mBAAgB;AACnC,SAASC,WAAW,QAAQ,wBAAqB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAgBA,MAAMC,MAAM,GAAG;EAAEC,QAAQ,EAAE,GAAG;EAAEC,YAAY,EAAE;AAAI,CAAU;;AAE5D;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG;EAAEF,QAAQ,EAAE,GAAG;EAAEC,YAAY,EAAE,CAAC;EAAEE,iBAAiB,EAAE;AAAK,CAAU;AAExF,MAAMC,gBAAgB,GAAG,GAAG;AAC5B,MAAMC,gBAAgB,GAAG,GAAG;;AAE5B;AACA;AACA;AACA;AACA,MAAMC,QAAQ,GAAGhC,WAAW,CAACiC,SAAS,CAAC,CAAC,CAACN,YAAY,CAAC,GAAG,CAAC,CAACD,QAAQ,CAAC,GAAG,CAAC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASQ,OAAOA,CAACC,QAAgB,EAAU;EACzC,SAAS;;EACT,MAAMC,gBAAgB,GAAG,KAAK;EAC9B,OAASD,QAAQ,GAAG,IAAI,GAAIC,gBAAgB,IAAK,CAAC,GAAGA,gBAAgB,CAAC;AACxE;AAEA,MAAMC,aAAa,GAAG5B,EAAE,CAAC;EACvB6B,IAAI,EAAE,qDAAqD;EAC3DC,QAAQ,EAAE;IACRC,QAAQ,EAAE;MACR;MACA;MACA;MACAC,KAAK,EAAE,0BAA0B;MACjC;MACA;MACAC,IAAI,EAAE;IACR;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAOF,MAAMI,kBAAkB,gBAAGhE,aAAa,CAAiC,IAAI,CAAC;AAE9E,SAASiE,cAAcA,CAACC,SAAiB,EAA2B;EAClE,MAAMC,OAAO,GAAGhE,UAAU,CAAC6D,kBAAkB,CAAC;EAC9C,IAAI,CAACG,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,GAAGF,SAAS,sCAAsC,CAAC;EACrE;EACA,OAAOC,OAAO;AAChB;AAyCA;AACA;AACA;AACA;AACA;AACA,MAAME,eAAe,GAAG;EAAEC,IAAI,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAI,CAAU;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,GAAG;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CACrCC,UAA0C,EAC1CC,YAAoB,EACA;EACpB,IAAI,CAACD,UAAU,EAAEE,MAAM,EAAE,OAAOC,SAAS;;EAEzC;EACA,MAAMC,KAAK,GAAGJ,UAAU,CAAC,CAAC,CAAC;EAC3B,IAAII,KAAK,KAAK,MAAM,IAAIA,KAAK,KAAK,MAAM,EAAE;IACxC,OAAOH,YAAY,GAAGN,eAAe,CAACS,KAAK,CAAC;EAC9C;EACA,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAIA,KAAK,EAAE;IACpD,OAAOH,YAAY,GAAGG,KAAK,CAACC,QAAQ;EACtC;EACA,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAIA,KAAK,EAAE,OAAOA,KAAK,CAACE,MAAM;EACvE,OAAOH,SAAS;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,kBAAkBA,CAACC,KAAa,EAAyB;EAChE,MAAMC,OAAO,GAAGnD,mBAAmB,CAAC,CAAC;EACrC,IAAImD,OAAO,EAAE,OAAO,CAACA,OAAO,CAACC,sBAAsB,CAACF,KAAK,CAAC,CAAC;EAE3D,MAAMG,OAAO,GAAGvD,mBAAmB,CAAC,CAAC;EACrC,IAAIuD,OAAO,EAAE,OAAO,CAACA,OAAO,CAACC,UAAU,CAACJ,KAAK,CAAC,CAAC;EAE/C,OAAOL,SAAS;AAClB;;AAEA;AACA;AACA;AACA;AACA,MAAMU,kBAAkB,gBAAGvF,aAAa,CAI9B,IAAI,CAAC;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,MAAMwF,mBAAmB,gBAAGxF,aAAa,CAI/B,IAAI,CAAC;AAEf,SAASyF,eAAeA,CAAC;EACvBC,QAAQ;EACRC,IAAI;EACJC,YAAY;EACZC,WAAW,GAAG,KAAK;EACnBC,MAAM;EACNpB,UAAU;EACVqB;AACgB,CAAC,EAAE;EACnB,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG1F,QAAQ,CAACsF,WAAW,CAAC;EAC7D,MAAMK,YAAY,GAAGP,IAAI,KAAKd,SAAS;EACvC,MAAMsB,YAAY,GAAGD,YAAY,GAAGP,IAAI,GAAGK,YAAY;EAEvD,MAAMI,OAAO,GAAGlG,WAAW,CACxBmG,IAAa,IAAK;IACjB,IAAI,CAACH,YAAY,EAAED,eAAe,CAACI,IAAI,CAAC;IACxCT,YAAY,GAAGS,IAAI,CAAC;EACtB,CAAC,EACD,CAACH,YAAY,EAAEN,YAAY,CAC7B,CAAC;EAED,MAAMzB,OAAO,GAAG9D,OAAO,CACrB,OAAO;IAAEsF,IAAI,EAAEQ,YAAY;IAAEC;EAAQ,CAAC,CAAC,EACvC,CAACD,YAAY,EAAEC,OAAO,CACxB,CAAC;EAED,MAAME,QAAQ,GAAGR,MAAM,GAAG/D,WAAW,CAAC,CAAC,GAAG,IAAI;EAC9C,MAAMwE,WAAW,GAAGlG,OAAO,CACzB,MAAOiG,QAAQ,GAAG;IAAEA,QAAQ;IAAE5B,UAAU;IAAEY,UAAU,EAAES;EAAiB,CAAC,GAAG,IAAK,EAChF,CAACA,gBAAgB,EAAEO,QAAQ,EAAE5B,UAAU,CACzC,CAAC;EAED,oBACEhC,IAAA,CAACsB,kBAAkB,CAACwC,QAAQ;IAACC,KAAK,EAAEtC,OAAQ;IAAAuB,QAAA,eAC1ChD,IAAA,CAAC6C,kBAAkB,CAACiB,QAAQ;MAACC,KAAK,EAAEF,WAAY;MAAAb,QAAA,EAC7CA;IAAQ,CACkB;EAAC,CACH,CAAC;AAElC;AAMA,SAASgB,kBAAkBA,CAAC;EAAEhB;AAAkC,CAAC,EAAE;EACjE,MAAM;IAAEU;EAAQ,CAAC,GAAGnC,cAAc,CAAC,qBAAqB,CAAC;EACzD,IAAI,eAAChE,cAAc,CAACyF,QAAQ,CAAC,EAAE,OAAOA,QAAQ;EAE9C,oBAAO3F,YAAY,CAAC2F,QAAQ,EAAE;IAC5BiB,OAAO,EAAEA,CAAC,GAAGC,IAAe,KAAK;MAC/BlB,QAAQ,CAACmB,KAAK,CAACF,OAAO,GAAG,GAAGC,IAAI,CAAC;MACjCR,OAAO,CAAC,IAAI,CAAC;IACf;EACF,CAAC,CAAC;AACJ;AAsDA;AACA;AACA;AACA;AACA;AACA,MAAMU,aAAa,GAAG;EAAExC,IAAI,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAK,CAAU;AAExD,SAASwC,kBAAkBA,CAAC;EAC1BC,SAAS;EACTC,WAAW,GAAG,IAAI;EAClBC,SAAS,GAAG,IAAI;EAChBC,WAAW,GAAG,IAAI;EAClBvD,QAAQ,GAAG,KAAK;EAChBwD,IAAI,GAAG,KAAK;EACZC,IAAI,GAAG,MAAM;EACb3B,QAAQ;EACR,GAAGmB;AACoB,CAAC,EAAE;EAC1B,MAAM1C,OAAO,GAAGF,cAAc,CAAC,qBAAqB,CAAC;EACrD,MAAM;IAAE0B,IAAI;IAAES;EAAQ,CAAC,GAAGjC,OAAO;EACjC,MAAMoC,WAAW,GAAGpG,UAAU,CAACoF,kBAAkB,CAAC;EAClD,MAAM;IAAEP,MAAM,EAAEL,YAAY;IAAE2C,KAAK,EAAEC;EAAY,CAAC,GAAG7G,mBAAmB,CAAC,CAAC;EAC1E,MAAM8G,aAAa,GAAGhG,gBAAgB,CAAC,CAAC;EACxC,MAAMiG,MAAM,GAAG7F,iBAAiB,CAAC,CAAC;EAClC,MAAM8F,UAAU,GAAGjG,cAAc,CAAC,CAAC,CAAC;EACpC,MAAMkG,SAAS,GAAG/G,cAAc,CAAC,0BAA0B,CAAC;EAC5D;EACA;EACA;EACA,MAAMgH,cAAc,GAAGhH,cAAc,CAAC,iBAAiB,CAAC;;EAExD;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMiH,aAAa,GAAGxH,OAAO,CAAC,MAAMQ,OAAO,CAACiH,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;EACzD,MAAMC,YAAY,GAAGtG,cAAc,CAAC,CAAC,CAAC;EACtC,MAAMuG,aAAa,GAAGvG,cAAc,CAAC,KAAK,CAAC;EAE3C,MAAMwG,KAAK,GAAG/H,WAAW,CAAC,MAAMkG,OAAO,CAAC,KAAK,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;;EAE1D;EACA;EACA9D,cAAc,CAACqD,IAAI,IAAIsB,WAAW,EAAEgB,KAAK,CAAC;;EAE1C;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG5H,QAAQ,CAACoF,IAAI,CAAC;EAEhDvF,SAAS,CAAC,MAAM;IACd,IAAIuF,IAAI,EAAE;MACRzE,eAAe,CAACwG,UAAU,CAAC;MAC3B,IAAI,CAACQ,SAAS,EAAE;QACd;QACA;QACA;QACAR,UAAU,CAACjB,KAAK,GAAG,CAAC;QACpB0B,YAAY,CAAC,IAAI,CAAC;QAClB;MACF;MACAT,UAAU,CAACjB,KAAK,GAAGe,aAAa,GAC5B7F,UAAU,CAAC,CAAC,EAAE;QAAEmB,QAAQ,EAAE;MAAI,CAAC,CAAC,GAChCpB,UAAU,CAAC,CAAC,EAAEmB,MAAM,CAAC;MACzB;IACF;IAEA,IAAI,CAACqF,SAAS,EAAE;IAEhB,MAAME,IAAI,GAAIC,QAAkB,IAAK;MACnC,SAAS;;MACT,IAAIA,QAAQ,EAAEhH,OAAO,CAAC8G,YAAY,CAAC,CAAC,KAAK,CAAC;IAC5C,CAAC;IACDT,UAAU,CAACjB,KAAK,GAAGe,aAAa,GAC5B7F,UAAU,CAACgD,YAAY,EAAE;MAAE7B,QAAQ,EAAE;IAAI,CAAC,EAAEsF,IAAI,CAAC,GACjD1G,UAAU,CAACiD,YAAY,EAAE3B,WAAW,EAAEoF,IAAI,CAAC;EACjD,CAAC,EAAE,CAACzC,IAAI,EAAEuC,SAAS,EAAEV,aAAa,EAAE7C,YAAY,EAAE+C,UAAU,CAAC,CAAC;;EAE9D;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM,CAACY,eAAe,EAAEC,kBAAkB,CAAC,GAAGhI,QAAQ,CAACoF,IAAI,CAAC;EAC5D,MAAM6C,cAAc,GAAGlI,MAAM,CAACqF,IAAI,CAAC;EACnC,MAAM8C,gBAAgB,GAAGnI,MAAM,CAAC,KAAK,CAAC;EACtC,MAAMoI,kBAAkB,GAAGpI,MAAM,CAAuC,IAAI,CAAC;EAC7E,MAAMqI,OAAO,GAAGrI,MAAM,CAACqF,IAAI,CAAC;EAC5BgD,OAAO,CAACC,OAAO,GAAGjD,IAAI;;EAEtB;EACA,MAAMkD,kBAAkB,GAAG3I,WAAW,CAAC,MAAM;IAC3C,IAAIwI,kBAAkB,CAACE,OAAO,KAAK,IAAI,EAAE;MACvCE,YAAY,CAACJ,kBAAkB,CAACE,OAAO,CAAC;MACxCF,kBAAkB,CAACE,OAAO,GAAG,IAAI;IACnC;IACA,IAAI,CAACH,gBAAgB,CAACG,OAAO,EAAE;IAC/BH,gBAAgB,CAACG,OAAO,GAAG,KAAK;IAEhC,IAAID,OAAO,CAACC,OAAO,EAAE;MACnBJ,cAAc,CAACI,OAAO,GAAG,IAAI;MAC7BL,kBAAkB,CAAC,IAAI,CAAC;IAC1B;EACF,CAAC,EAAE,EAAE,CAAC;EAENnI,SAAS,CAAC,MAAM;IACd,IAAI,CAACmG,WAAW,EAAE;IAElB,IAAIZ,IAAI,EAAE;MACR,IAAI8C,gBAAgB,CAACG,OAAO,EAAE;MAC9BJ,cAAc,CAACI,OAAO,GAAG,IAAI;MAC7BL,kBAAkB,CAAC,IAAI,CAAC;MACxB;IACF;;IAEA;IACA;IACA,IAAIC,cAAc,CAACI,OAAO,EAAE;MAC1BJ,cAAc,CAACI,OAAO,GAAG,KAAK;MAC9BH,gBAAgB,CAACG,OAAO,GAAG,IAAI;MAC/B,IAAIF,kBAAkB,CAACE,OAAO,KAAK,IAAI,EAAEE,YAAY,CAACJ,kBAAkB,CAACE,OAAO,CAAC;MACjFF,kBAAkB,CAACE,OAAO,GAAGG,UAAU,CAACF,kBAAkB,EAAErE,iBAAiB,CAAC;IAChF;IACA+D,kBAAkB,CAAC,KAAK,CAAC;EAC3B,CAAC,EAAE,CAACM,kBAAkB,EAAEtC,WAAW,EAAEZ,IAAI,CAAC,CAAC;EAE3CvF,SAAS,CACP,MAAM,MAAM;IACV,IAAIsI,kBAAkB,CAACE,OAAO,KAAK,IAAI,EAAEE,YAAY,CAACJ,kBAAkB,CAACE,OAAO,CAAC;EACnF,CAAC,EACD,EACF,CAAC;EAED,MAAMI,eAAe,GAAG9I,WAAW,CAAC,MAAM;IACxC;IACA;IACAsI,cAAc,CAACI,OAAO,GAAG,KAAK;;IAE9B;IACA;IACA,IAAIH,gBAAgB,CAACG,OAAO,EAAE;MAC5BC,kBAAkB,CAAC,CAAC;MACpB;IACF;IAEA,IAAI5B,WAAW,EAAEgB,KAAK,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACA,KAAK,EAAEhB,WAAW,EAAE4B,kBAAkB,CAAC,CAAC;EAE5C,MAAMI,GAAG,GAAG5I,OAAO,CACjB,MACEQ,OAAO,CAACqI,GAAG,CAAC;EACV;AACR;AACA;AACA;AACA;AACA,KALQ,CAMCC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;EACxB;AACR;AACA;AACA;AACA;AACA,KALQ,CAMCC,+BAA+B,CAACvB,aAAa,CAAC,CAC9CwB,QAAQ,CAAEC,KAAK,IAAK;IACnB;AACV;AACA;AACA;AACA;AACA;AACA;AACA;IACU,IAAItB,aAAa,CAACvB,KAAK,IAAIsB,YAAY,CAACtB,KAAK,GAAG,CAAC,IAAIiB,UAAU,CAACjB,KAAK,IAAI,CAAC,EAAE;MAC1E;IACF;IACA;IACA,MAAMJ,IAAI,GAAGqB,UAAU,CAACjB,KAAK,GAAG6C,KAAK,CAACC,OAAO;IAC7C7B,UAAU,CAACjB,KAAK,GAAGJ,IAAI,GAAG,CAAC,GAAGA,IAAI,GAAGA,IAAI,GAAG,CAAC;EAC/C,CAAC,CAAC,CACDmD,KAAK,CAAEF,KAAK,IAAK;IAChB;AACV;AACA;AACA;AACA;AACA;AACA;AACA;IACU,MAAMG,SAAS,GAAG/B,UAAU,CAACjB,KAAK,GAAGnD,OAAO,CAACgG,KAAK,CAACI,SAAS,CAAC;IAC7D,IACED,SAAS,GAAGvG,gBAAgB,IAC5BoG,KAAK,CAACI,SAAS,GAAGvG,gBAAgB,EAClC;MACAuE,UAAU,CAACjB,KAAK,GAAG/E,UAAU,CAC3BiD,YAAY,EACZ;QAAE,GAAG3B,WAAW;QAAEO,QAAQ,EAAE+F,KAAK,CAACI;MAAU,CAAC,EAC5CrB,QAAQ,IAAK;QACZ,IAAIA,QAAQ,EAAEhH,OAAO,CAAC4G,KAAK,CAAC,CAAC,CAAC;MAChC,CACF,CAAC;IACH,CAAC,MAAM;MACLP,UAAU,CAACjB,KAAK,GAAG/E,UAAU,CAAC,CAAC,EAAE;QAAE,GAAGmB,MAAM;QAAEU,QAAQ,EAAE+F,KAAK,CAACI;MAAU,CAAC,CAAC;MAC1E;MACA;MACArI,OAAO,CAACmB,WAAW,CAAC,CAAC,CAAC;IACxB;EACF,CAAC,CAAC;EACN;EACA;EACA;EACA,CAACyF,KAAK,EAAEtD,YAAY,EAAE+C,UAAU,EAAEG,aAAa,EAAEE,YAAY,EAAEC,aAAa,CAC9E,CAAC;EAED,MAAM2B,UAAU,GAAGpI,gBAAgB,CAAC,OAAO;IACzCqI,SAAS,EAAE,CAAC;MAAElC,UAAU,EAAEA,UAAU,CAACjB;IAAM,CAAC;EAC9C,CAAC,CAAC,CAAC;EAEH,MAAMoD,aAAa,GAAGtI,gBAAgB,CAAC,OAAO;IAC5CuI,OAAO,EAAE3I,WAAW,CAClBuG,UAAU,CAACjB,KAAK,EAChB,CAAC,CAAC,EAAE9B,YAAY,CAAC,EACjB,CAAC,CAAC,EAAE,CAAC,CAAC,EACN3D,aAAa,CAAC+I,KAChB;EACF,CAAC,CAAC,CAAC;;EAEH;AACF;AACA;AACA;AACA;EACE,MAAMC,WAAW,GACf3C,IAAI,KAAK,MAAM,GACXxC,SAAS,GACToF,IAAI,CAACC,GAAG,CACNvF,YAAY,GAAGmC,aAAa,CAACO,IAAI,CAAC,EAClC1C,YAAY,GAAG8C,MAAM,CAAC0C,GAAG,IAAIvG,QAAQ,GAAG,EAAE,GAAG,CAAC,CAChD,CAAC;EAEP,MAAMwG,OAAO,GAAG/J,OAAO,CACrB,OAAO;IAAEwH,aAAa;IAAEE,YAAY;IAAEC;EAAc,CAAC,CAAC,EACtD,CAACH,aAAa,EAAEE,YAAY,EAAEC,aAAa,CAC7C,CAAC;EAED,IAAIzB,WAAW,EAAE;IACf,MAAM;MAAE8D,IAAI;MAAEC,WAAW,EAAEC,iBAAiB;MAAEC;IAAW,CAAC,GAAGjE,WAAW,CAACD,QAAQ;IACjF;AACJ;AACA;AACA;AACA;IACI,MAAM5B,UAAU,GACd6B,WAAW,CAAC7B,UAAU,KAAK2C,IAAI,KAAK,MAAM,GAAGxC,SAAS,GAAG,CAACwC,IAAI,CAAC,CAAC;IAClE;AACJ;AACA;AACA;AACA;AACA;IACI,MAAMoD,SAAS,GAAGlE,WAAW,CAACjB,UAAU;IACxC,MAAM8E,OAAO,GACXK,SAAS,KAAK,IAAI,GACd,OAAO7C,cAAc,KAAK,QAAQ,GAChCA,cAAc,GACd/C,SAAS,GACX,OAAO4F,SAAS,KAAK,QAAQ,GAC3BA,SAAS,GACT5F,SAAS;IACjB,MAAM6F,SAAS,GAAGN,OAAO,GAAGnF,kBAAkB,CAACmF,OAAO,CAAC,GAAGvF,SAAS;IACnE;IACA;IACA;IACA;IACA;IACA;IACA,oBACEnC,IAAA,CAAC2H,IAAI;MAACM,aAAa;MAACC,cAAc,EAAC,UAAU;MAACC,KAAK,EAAE;QAAEC,QAAQ,EAAE;MAAW,CAAE;MAAApF,QAAA,eAC5EhD,IAAA,CAAC6H,iBAAiB;QAChBQ,WAAW,EAAEzC,eAAgB;QAC7B0C,SAAS,EAAEhC,eAAgB;QAC3BtE,UAAU,EAAEA,UAAW;QACvBgG,SAAS,EAAEA,SAAU;QAAAhF,QAAA,eAErBhD,IAAA,CAAC8H,UAAU;UAACG,aAAa;UAAAjF,QAAA,eACvBhD,IAAA,CAACsB,kBAAkB,CAACwC,QAAQ;YAACC,KAAK,EAAEtC,OAAQ;YAAAuB,QAAA,eAC1ChD,IAAA,CAAC/B,IAAI;cAAA,GACCkG,KAAK;cACTG,SAAS,EAAEzE,EAAE;cACX;cACA;cACA;cACA;cACA,oCAAoC,EACpCyE,SACF,CAAE;cACF6D,KAAK,EAAE;gBACL;gBACA;gBACA;gBACA;gBACAvD,KAAK,EAAEC,WAAW;gBAClB0D,SAAS,EAAExG,uBAAuB,CAACC,UAAU,EAAEC,YAAY,CAAC;gBAC5DuG,aAAa,EAAEjB,IAAI,CAACkB,GAAG,CAAC1D,MAAM,CAAC2D,MAAM,EAAE,EAAE;cAC3C,CAAE;cAAA1F,QAAA,EAEDrD,YAAY,CAACqD,QAAQ;YAAC,CACnB;UAAC,CACoB;QAAC,CACpB;MAAC,CACI;IAAC,CAChB,CAAC;EAEX;;EAEA;EACA;EACA,IAAI,CAACwC,SAAS,EAAE,OAAO,IAAI;EAE3B,oBACExF,IAAA,CAACR,WAAW;IAAAwD,QAAA,eAGVhD,IAAA,CAACsB,kBAAkB,CAACwC,QAAQ;MAACC,KAAK,EAAEtC,OAAQ;MAAAuB,QAAA,eAC1C9C,KAAA,CAACjC,IAAI;QAACqG,SAAS,EAAC,8BAA8B;QAAAtB,QAAA,gBAM9C9C,KAAA,CAAC7B,QAAQ,CAACJ,IAAI;UAACkK,KAAK,EAAE,CAACpK,UAAU,CAAC4K,YAAY,EAAExB,aAAa,CAAE;UAAAnE,QAAA,gBAG7DhD,IAAA,CAACP,KAAK;YAACiF,IAAI,EAAEA;UAAK,CAAE,CAAC,eACrB1E,IAAA,CAAClC,SAAS;YACR8K,kBAAkB,EAAC,aAAa;YAChCtE,SAAS,EAAC,QAAQ;YAClBL,OAAO,EAAEM,WAAW,GAAGgB,KAAK,GAAGpD;UAAU,CAC1C,CAAC;QAAA,CACW,CAAC,eAChBnC,IAAA,CAAC5B,eAAe;UAACyK,OAAO,EAAEtC,GAAI;UAAAvD,QAAA,eAC5BhD,IAAA,CAAC3B,QAAQ,CAACJ,IAAI;YACZ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;YACY6K,QAAQ,EAAEhE,aAAa,GAAGvG,MAAM,CAAC6B,QAAQ,CAAC,GAAG,CAAC,GAAGM,QAAS;YAC1DqI,wBAAwB;YACxBzE,SAAS,EAAEvD,aAAa,CAAC;cAAEG,QAAQ;cAAEoD;YAAU,CAAC,CAAE;YAAA,GAC9CH,KAAK;YACT;YACA;YACA;YACA;YACAgE,KAAK,EAAE,CACLlB,UAAU;YACV;YACA;YACA;YACA;cAAEuB,aAAa,EAAEtH,QAAQ,GAAG,EAAE,GAAGqG,IAAI,CAACkB,GAAG,CAAC1D,MAAM,CAAC2D,MAAM,EAAE,EAAE;YAAE,CAAC,EAC9DpB,WAAW,KAAKnF,SAAS,GAAG,IAAI,GAAG;cAAEG,MAAM,EAAEgF;YAAY,CAAC,EAC1DnD,KAAK,CAACgE,KAAK,CACX;YAAAnF,QAAA,eAEF9C,KAAA,CAAC4C,mBAAmB,CAACgB,QAAQ;cAACC,KAAK,EAAE2D,OAAQ;cAAA1E,QAAA,GAC1CyB,WAAW,gBACVzE,IAAA,CAAC/B,IAAI;gBAACqG,SAAS,EAAC,kBAAkB;gBAAAtB,QAAA,eAChChD,IAAA,CAAC/B,IAAI;kBAACqG,SAAS,EAAC;gBAA8C,CAAE;cAAC,CAC7D,CAAC,GACL,IAAI,EACP3E,YAAY,CAACqD,QAAQ,CAAC,EAatBwB,SAAS,gBACRxE,IAAA,CAAClC,SAAS;gBACRkL,iBAAiB,EAAC,QAAQ;gBAC1BJ,kBAAkB,EAAC,OAAO;gBAC1B3E,OAAO,EAAEsB,KAAM;gBACf0D,OAAO,EAAE,CAAE;gBACX3E,SAAS,EAAC,uGAAuG;gBAAAtB,QAAA,eAEjHhD,IAAA,CAACT,KAAK;kBACJoF,IAAI,EAAE,EAAG;kBACTnC,KAAK,EAAE,OAAOyC,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAG9C;gBAAU,CAC9D;cAAC,CACO,CAAC,GACV,IAAI;YAAA,CACoB;UAAC,CAClB;QAAC,CACD,CAAC;MAAA,CACZ;IAAC,CACoB;EAAC,CACnB,CAAC;AAElB;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS+G,iBAAiBA,CAAC;EACzB5E,SAAS;EACT6E,KAAK;EACLC,WAAW;EACXpG,QAAQ;EACR,GAAGmB;AACmB,CAAC,EAAE;EACzB,oBACEjE,KAAA,CAACjC,IAAI;IAACqG,SAAS,EAAEzE,EAAE,CAAC,kBAAkB,EAAEyE,SAAS,CAAE;IAAA,GAAKH,KAAK;IAAAnB,QAAA,GAC1DrD,YAAY,CAACwJ,KAAK,EAAGE,IAAI,iBACxBrJ,IAAA,CAACN,IAAI;MAACiF,IAAI,EAAC,IAAI;MAAC2E,MAAM,EAAC,UAAU;MAAAtG,QAAA,EAC9BqG;IAAI,CACD,CACP,CAAC,EACD1J,YAAY,CAACyJ,WAAW,EAAGC,IAAI,iBAC9BrJ,IAAA,CAACN,IAAI;MAACiF,IAAI,EAAC,IAAI;MAAC4E,KAAK;MAAAvG,QAAA,EAClBqG;IAAI,CACD,CACP,CAAC,EACD1J,YAAY,CAACqD,QAAQ,CAAC;EAAA,CACnB,CAAC;AAEX;AACAkG,iBAAiB,CAACM,WAAW,GAAG,oBAAoB;AAQpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAAC;EACvBnF,SAAS;EACTtB,QAAQ;EACR0G,QAAQ;EACR,GAAGvF;AACiB,CAAC,EAAE;EACvB,MAAMuD,OAAO,GAAGjK,UAAU,CAACqF,mBAAmB,CAAC;EAE/CpF,SAAS,CAAC,MAAM;IACd,IAAI,CAACgK,OAAO,EAAE;IACdA,OAAO,CAACpC,aAAa,CAACvB,KAAK,GAAG,IAAI;IAClC,OAAO,MAAM;MACX2D,OAAO,CAACpC,aAAa,CAACvB,KAAK,GAAG,KAAK;MACnC2D,OAAO,CAACrC,YAAY,CAACtB,KAAK,GAAG,CAAC;IAChC,CAAC;EACH,CAAC,EAAE,CAAC2D,OAAO,CAAC,CAAC;;EAEb;AACF;AACA;AACA;AACA;AACA;EACE,MAAMrC,YAAY,GAAGqC,OAAO,EAAErC,YAAY;EAE1C,MAAMsE,OAAO,GAAG/K,wBAAwB,CAAEgI,KAAK,IAAK;IAClD,IAAIvB,YAAY,EAAEA,YAAY,CAACtB,KAAK,GAAG6C,KAAK,CAACgD,aAAa,CAACC,CAAC;EAC9D,CAAC,CAAC;EAEF,MAAMC,IAAI,gBACR9J,IAAA,CAAC3B,QAAQ,CAAC0L,UAAU;IAClBL,QAAQ,EAAEC,OAAQ;IAClBK,mBAAmB,EAAE,EAAG;IACxBC,4BAA4B,EAAE,KAAM;IACpC3F,SAAS,EAAEzE,EAAE,CAAC,QAAQ,EAAEyE,SAAS,CAAE;IAAA,GAC/BH,KAAK;IAAAnB,QAAA,EAERrD,YAAY,CAACqD,QAAQ;EAAC,CACJ,CACtB;;EAED;AACF;AACA;AACA;AACA;EACE,IAAI,CAAC0E,OAAO,EAAE,OAAOoC,IAAI;EACzB,oBAAO9J,IAAA,CAAC5B,eAAe;IAACyK,OAAO,EAAEnB,OAAO,CAACvC,aAAc;IAAAnC,QAAA,EAAE8G;EAAI,CAAkB,CAAC;AAClF;AACAL,eAAe,CAACD,WAAW,GAAG,kBAAkB;AAOhD;AACA;AACA;AACA;AACA;AACA,SAASU,iBAAiBA,CAAC;EACzB5F,SAAS;EACTtB,QAAQ;EACR,GAAGmB;AACmB,CAAC,EAAE;EACzB,oBACEnE,IAAA,CAAC/B,IAAI;IACHqG,SAAS,EAAEzE,EAAE,CAAC,mCAAmC,EAAEyE,SAAS,CAAE;IAAA,GAC1DH,KAAK;IAAAnB,QAAA,EAERrD,YAAY,CAACqD,QAAQ;EAAC,CACnB,CAAC;AAEX;AACAkH,iBAAiB,CAACV,WAAW,GAAG,oBAAoB;AAEpD,OAAO,MAAM5B,WAAW,GAAGuC,MAAM,CAACC,MAAM,CAACrH,eAAe,EAAE;EACxDsH,OAAO,EAAErG,kBAAkB;EAC3BsG,OAAO,EAAEjG,kBAAkB;EAC3BkG,MAAM,EAAErB,iBAAiB;EACzBsB,IAAI,EAAEf,eAAe;EACrBgB,MAAM,EAAEP;AACV,CAAC,CAAC","ignoreList":[]}
@@ -27,6 +27,15 @@ export const DOT_LIT_RADIUS = 1.9;
27
27
  /** How visible the resting grid is, under everything. */
28
28
  export const DOT_REST_OPACITY = 0.16;
29
29
 
30
+ /**
31
+ * How visible the lit dots are, together.
32
+ *
33
+ * "Together" is the operative word: they are drawn as two layers fading into
34
+ * one another, and this is what the pair composites to, not what either one
35
+ * carries. {@link crossfadeAlphas} is what holds that true.
36
+ */
37
+ export const LIT_OPACITY = 0.9;
38
+
30
39
  /** How many still frames one loop is drawn as. */
31
40
  export const FRAMES = 24;
32
41
 
@@ -117,11 +126,20 @@ export function influenceAt(distance, radius) {
117
126
  /**
118
127
  * Where the light is at a phase of the loop, and how wide it reaches.
119
128
  *
120
- * `drift` wanders around the middle — two periods that do not divide into each
121
- * other, so the path never closes into a loop the eye can learn, and small
122
- * amplitudes because a light that reaches the corners stops reading as one
123
- * source. `pulse` is a ring leaving the centre. `scan` crosses as a band, which
124
- * is the same maths with the light infinitely tall.
129
+ * `drift` wanders around the middle on a figure-eight: one horizontal pass to
130
+ * two vertical, so the path arrives back where it started and the loop has no
131
+ * seam in it. The amplitudes are small because a light that reaches the corners
132
+ * stops reading as one source.
133
+ *
134
+ * The two frequencies used not to divide into each other, on the reasoning that
135
+ * a path which never closes is one the eye cannot learn. It closes anyway —
136
+ * every animation here restarts at the end of its period — so all that bought
137
+ * was a jump of four normal steps, once a pass. A figure-eight is not a shape
138
+ * anybody follows over four seconds of soft light on a dot grid.
139
+ *
140
+ * `pulse` is a ring leaving the centre, and has expanded past the last dot
141
+ * before it restarts, so it fades out rather than snapping back. `scan` crosses
142
+ * as a band, which is the same maths with the light infinitely tall.
125
143
  */
126
144
  function lightAt(animation, phase, width, height) {
127
145
  const short = Math.min(width, height);
@@ -153,7 +171,7 @@ function lightAt(animation, phase, width, height) {
153
171
  }
154
172
  return {
155
173
  x: width / 2 + Math.sin(turn) * width * 0.26,
156
- y: height / 2 + Math.cos(turn * 1.37) * height * 0.22,
174
+ y: height / 2 + Math.cos(turn * 2) * height * 0.22,
157
175
  radius: short * 0.42,
158
176
  ring: 0
159
177
  };
@@ -165,12 +183,17 @@ function lightAt(animation, phase, width, height) {
165
183
  * Only the dots the light actually reaches are in it — the rest are already
166
184
  * drawn by the resting grid underneath, so this is a fraction of the field
167
185
  * rather than all of it.
186
+ *
187
+ * `points` is the same grid {@link anchors} would build, passed in by a caller
188
+ * that is about to ask for every frame of a loop. Building it here instead cost
189
+ * a fresh array of several hundred pairs per frame, to arrive at the identical
190
+ * grid twenty-four times over.
168
191
  */
169
- export function litPath(width, height, phase, animation = 'drift') {
192
+ export function litPath(width, height, phase, animation = 'drift', points) {
170
193
  if (width <= 0 || height <= 0) return '';
171
194
  const light = lightAt(animation, phase, width, height);
172
195
  let path = '';
173
- for (const [x, y] of anchors(width, height)) {
196
+ for (const [x, y] of points ?? anchors(width, height)) {
174
197
  const deltaX = x - light.x;
175
198
  const deltaY = Number.isNaN(light.y) ? 0 : y - light.y;
176
199
  const distance = Math.abs(Math.sqrt(deltaX * deltaX + deltaY * deltaY) - light.ring);
@@ -188,9 +211,10 @@ export function litPath(width, height, phase, animation = 'drift') {
188
211
  * reduced-motion field shows, so there is no separate code path for holding it.
189
212
  */
190
213
  export function litFrames(width, height, animation = 'drift') {
214
+ const points = width > 0 && height > 0 ? anchors(width, height) : [];
191
215
  return Array.from({
192
216
  length: FRAMES
193
- }, (_unused, index) => litPath(width, height, index / FRAMES, animation));
217
+ }, (_unused, index) => litPath(width, height, index / FRAMES, animation, points));
194
218
  }
195
219
 
196
220
  /** One pass of the loop, in milliseconds, per animation. */
@@ -207,4 +231,37 @@ export function frameAt(time, animation) {
207
231
  const phase = time % PERIOD[animation] / PERIOD[animation];
208
232
  return Math.min(FRAMES - 1, Math.floor(phase * FRAMES));
209
233
  }
234
+
235
+ /**
236
+ * Where a moment falls in the loop, as a frame index with its fraction kept.
237
+ *
238
+ * {@link frameAt} rounds this down, and rounding it down is what made the field
239
+ * a flipbook: twenty-four pictures spread over the period, which on the slowest
240
+ * animation is a new one every 175ms however fast the screen refreshes. The
241
+ * fraction is what the two layers cross-fade on, so the light moves at the rate
242
+ * the display can draw rather than the rate the frames were built at.
243
+ */
244
+ export function framePhase(time, animation) {
245
+ 'worklet';
246
+
247
+ return time % PERIOD[animation] / PERIOD[animation] * FRAMES;
248
+ }
249
+
250
+ /**
251
+ * What the outgoing and incoming layers are worth, a fraction `t` of the way
252
+ * from one frame to the next.
253
+ *
254
+ * Not `[1 - t, t]`. The layers are drawn over one another, so a dot lit in both
255
+ * of them composites to `1 - (1-a)(1-b)`, and two half-strength copies of it
256
+ * come to 0.70 rather than 0.90 — the field dips a fifth in the middle of every
257
+ * step, which six steps a second turns into a flicker. So only the outgoing
258
+ * layer ramps, and the incoming one is solved for: whatever leaves the pair at
259
+ * {@link LIT_OPACITY} the whole way across.
260
+ */
261
+ export function crossfadeAlphas(t) {
262
+ 'worklet';
263
+
264
+ const out = LIT_OPACITY * (1 - t);
265
+ return [out, 1 - (1 - LIT_OPACITY) / (1 - out)];
266
+ }
210
267
  //# sourceMappingURL=dot-field.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DOT_GAP","DOT_RADIUS","DOT_LIT_RADIUS","DOT_REST_OPACITY","FRAMES","MAX_DOTS","gapFor","width","height","cells","Math","sqrt","circle","x","y","r","d","toFixed","anchors","gap","margin","innerWidth","max","innerHeight","columns","floor","rows","offsetX","offsetY","out","row","column","push","gridPath","path","dotCount","length","influenceAt","distance","radius","proximity","lightAt","animation","phase","short","min","turn","PI","reach","ring","Number","NaN","sin","cos","litPath","light","deltaX","deltaY","isNaN","abs","influence","litFrames","Array","from","_unused","index","PERIOD","drift","pulse","scan","frameAt","time"],"sourceRoot":"../../../../src","sources":["components/image-generation/dot-field.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DOT_GAP","DOT_RADIUS","DOT_LIT_RADIUS","DOT_REST_OPACITY","LIT_OPACITY","FRAMES","MAX_DOTS","gapFor","width","height","cells","Math","sqrt","circle","x","y","r","d","toFixed","anchors","gap","margin","innerWidth","max","innerHeight","columns","floor","rows","offsetX","offsetY","out","row","column","push","gridPath","path","dotCount","length","influenceAt","distance","radius","proximity","lightAt","animation","phase","short","min","turn","PI","reach","ring","Number","NaN","sin","cos","litPath","points","light","deltaX","deltaY","isNaN","abs","influence","litFrames","Array","from","_unused","index","PERIOD","drift","pulse","scan","frameAt","time","framePhase","crossfadeAlphas","t"],"sourceRoot":"../../../../src","sources":["components/image-generation/dot-field.ts"],"mappings":"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","ignoreList":[]}
@@ -17,14 +17,22 @@
17
17
  *
18
18
  * ## The dot field
19
19
  *
20
- * A grid of dots with a soft band of light travelling across it. Each column
21
- * is one animated view holding its own dots, so a field of five hundred dots
22
- * costs twenty-two worklets a frame rather than five hundred — the dots inside
23
- * a column never move independently of it, and at this scale nobody can tell.
20
+ * A grid of dots with a soft light moving through it, drawn as three layers:
21
+ * the field at rest, and two copies of the lit dots fading into one another.
24
22
  *
25
- * The per-dot brightness underneath the band is fixed, and comes from the
26
- * dot's own coordinates. Without it the field reads as clean vertical stripes
27
- * sweeping past; with it, it reads as the individual dots lighting up.
23
+ * Every picture the loop will ever draw is built when the box is measured, so
24
+ * running it hands over a string that already exists. That leaves twenty-four
25
+ * pictures to spread across the pass, which on its own is a flipbook — a new
26
+ * one every 175ms, however fast the screen refreshes. The two layers are what
27
+ * fills the gap: one holds the frame being left and one the frame being
28
+ * arrived at, and only their opacities move, which the compositor animates at
29
+ * the display's own rate without the drawing being touched.
30
+ *
31
+ * They are opacities on views rather than on the dots, and that is not a
32
+ * detail. A value that changes every frame sitting beside the path string
33
+ * pushes the path every frame too, and every push of a path is a re-parse of
34
+ * several hundred subpaths — which is the cost this whole arrangement exists
35
+ * to avoid. Kept apart, the path is pushed only when it actually changes.
28
36
  *
29
37
  * ## What arrives, and when
30
38
  *
@@ -36,7 +44,7 @@
36
44
  *
37
45
  * ## Reduced motion
38
46
  *
39
- * The band stops, and the field is drawn at one still frame of itself. A
47
+ * The light stops, and the field holds wherever the clock was left. A
40
48
  * placeholder that shows nothing is indistinguishable from a component that
41
49
  * failed to load, so this is a quieter picture rather than an empty one.
42
50
  */
@@ -49,10 +57,10 @@ import { useCSSVariable } from 'uniwind';
49
57
  import { AlertTriangleIcon, CheckIcon, RotateCcwIcon } from "../../icons/index.js";
50
58
  import { Text } from "../../primitives/text.js";
51
59
  import { cn } from "../../utils/cn.js";
52
- import { DOT_REST_OPACITY, frameAt, gridPath, litFrames } from "./dot-field.js";
60
+ import { DOT_REST_OPACITY, FRAMES, crossfadeAlphas, framePhase, gridPath, litFrames } from "./dot-field.js";
53
61
 
54
62
  /** How far the generation has got. */
55
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
63
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
56
64
  /**
57
65
  * The moment a held field is frozen at.
58
66
  *
@@ -194,8 +202,21 @@ function ImageGenerationField({
194
202
  * light is somewhere legible rather than dead centre or absent, which is the
195
203
  * difference between "not animating" and "failed to load".
196
204
  */
197
- const animatedProps = useAnimatedProps(() => ({
198
- d: frames[frameAt(clock.value, animation)] ?? ''
205
+ const slotA = useAnimatedProps(() => ({
206
+ d: frames[Math.floor(framePhase(clock.value, animation))] ?? ''
207
+ }));
208
+ const slotB = useAnimatedProps(() => ({
209
+ d: frames[(Math.floor(framePhase(clock.value, animation)) + 1) % FRAMES] ?? ''
210
+ }));
211
+
212
+ // Only these move between one frame and the next, and a view's opacity is a
213
+ // layer alpha — so the drawing underneath is composited again rather than
214
+ // drawn again.
215
+ const fadeOut = useAnimatedStyle(() => ({
216
+ opacity: crossfadeAlphas(framePhase(clock.value, animation) % 1)[0]
217
+ }));
218
+ const fadeIn = useAnimatedStyle(() => ({
219
+ opacity: crossfadeAlphas(framePhase(clock.value, animation) % 1)[1]
199
220
  }));
200
221
  const onLayout = event => {
201
222
  const {
@@ -215,17 +236,38 @@ function ImageGenerationField({
215
236
  className: className,
216
237
  style: [StyleSheet.absoluteFill, style],
217
238
  ...props,
218
- children: grid ? /*#__PURE__*/_jsxs(Svg, {
219
- width: size.width,
220
- height: size.height,
221
- children: [/*#__PURE__*/_jsx(Path, {
222
- d: grid,
223
- fill: color,
224
- fillOpacity: DOT_REST_OPACITY
225
- }), /*#__PURE__*/_jsx(AnimatedPath, {
226
- animatedProps: animatedProps,
227
- fill: color,
228
- fillOpacity: 0.9
239
+ children: grid ? /*#__PURE__*/_jsxs(_Fragment, {
240
+ children: [/*#__PURE__*/_jsx(Svg, {
241
+ width: size.width,
242
+ height: size.height,
243
+ style: StyleSheet.absoluteFill,
244
+ children: /*#__PURE__*/_jsx(Path, {
245
+ d: grid,
246
+ fill: color,
247
+ fillOpacity: DOT_REST_OPACITY
248
+ })
249
+ }), /*#__PURE__*/_jsx(Animated.View, {
250
+ style: [StyleSheet.absoluteFill, fadeOut],
251
+ pointerEvents: "none",
252
+ children: /*#__PURE__*/_jsx(Svg, {
253
+ width: size.width,
254
+ height: size.height,
255
+ children: /*#__PURE__*/_jsx(AnimatedPath, {
256
+ animatedProps: slotA,
257
+ fill: color
258
+ })
259
+ })
260
+ }), /*#__PURE__*/_jsx(Animated.View, {
261
+ style: [StyleSheet.absoluteFill, fadeIn],
262
+ pointerEvents: "none",
263
+ children: /*#__PURE__*/_jsx(Svg, {
264
+ width: size.width,
265
+ height: size.height,
266
+ children: /*#__PURE__*/_jsx(AnimatedPath, {
267
+ animatedProps: slotB,
268
+ fill: color
269
+ })
270
+ })
229
271
  })]
230
272
  }) : null
231
273
  });