@tamagui/popover 2.0.0-rc.8 → 2.0.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.
Files changed (49) hide show
  1. package/dist/cjs/Popover.cjs +624 -408
  2. package/dist/cjs/Popover.native.js +637 -438
  3. package/dist/cjs/Popover.native.js.map +1 -1
  4. package/dist/cjs/index.cjs +7 -5
  5. package/dist/cjs/index.native.js +7 -5
  6. package/dist/cjs/index.native.js.map +1 -1
  7. package/dist/cjs/useFloatingContext.cjs +226 -58
  8. package/dist/cjs/useFloatingContext.native.js +28 -26
  9. package/dist/cjs/useFloatingContext.native.js.map +1 -1
  10. package/dist/esm/Popover.mjs +576 -377
  11. package/dist/esm/Popover.mjs.map +1 -1
  12. package/dist/esm/Popover.native.js +591 -409
  13. package/dist/esm/Popover.native.js.map +1 -1
  14. package/dist/esm/index.js +2 -2
  15. package/dist/esm/index.js.map +1 -6
  16. package/dist/esm/useFloatingContext.mjs +200 -34
  17. package/dist/esm/useFloatingContext.mjs.map +1 -1
  18. package/dist/jsx/Popover.mjs +576 -377
  19. package/dist/jsx/Popover.mjs.map +1 -1
  20. package/dist/jsx/Popover.native.js +637 -438
  21. package/dist/jsx/Popover.native.js.map +1 -1
  22. package/dist/jsx/index.js +2 -2
  23. package/dist/jsx/index.js.map +1 -6
  24. package/dist/jsx/index.native.js +7 -5
  25. package/dist/jsx/useFloatingContext.mjs +200 -34
  26. package/dist/jsx/useFloatingContext.mjs.map +1 -1
  27. package/dist/jsx/useFloatingContext.native.js +28 -26
  28. package/dist/jsx/useFloatingContext.native.js.map +1 -1
  29. package/package.json +26 -31
  30. package/src/Popover.tsx +494 -175
  31. package/src/useFloatingContext.tsx +321 -43
  32. package/types/Popover.d.ts +126 -8
  33. package/types/Popover.d.ts.map +1 -1
  34. package/types/useFloatingContext.d.ts +14 -8
  35. package/types/useFloatingContext.d.ts.map +1 -1
  36. package/dist/cjs/Popover.js +0 -394
  37. package/dist/cjs/Popover.js.map +0 -6
  38. package/dist/cjs/index.js +0 -16
  39. package/dist/cjs/index.js.map +0 -6
  40. package/dist/cjs/useFloatingContext.js +0 -74
  41. package/dist/cjs/useFloatingContext.js.map +0 -6
  42. package/dist/esm/Popover.js +0 -415
  43. package/dist/esm/Popover.js.map +0 -6
  44. package/dist/esm/useFloatingContext.js +0 -59
  45. package/dist/esm/useFloatingContext.js.map +0 -6
  46. package/dist/jsx/Popover.js +0 -415
  47. package/dist/jsx/Popover.js.map +0 -6
  48. package/dist/jsx/useFloatingContext.js +0 -59
  49. package/dist/jsx/useFloatingContext.js.map +0 -6
@@ -1,415 +0,0 @@
1
- import "@tamagui/polyfill-dev";
2
- import {
3
- Adapt,
4
- AdaptParent,
5
- AdaptPortalContents,
6
- ProvideAdaptContext,
7
- useAdaptContext,
8
- useAdaptIsActive
9
- } from "@tamagui/adapt";
10
- import { Animate } from "@tamagui/animate";
11
- import { ResetPresence } from "@tamagui/animate-presence";
12
- import { useComposedRefs } from "@tamagui/compose-refs";
13
- import { isWeb } from "@tamagui/constants";
14
- import {
15
- createStyledContext,
16
- styled,
17
- Theme,
18
- useCreateShallowSetState,
19
- useEvent,
20
- useGet,
21
- useThemeName,
22
- View
23
- } from "@tamagui/core";
24
- import { FloatingOverrideContext } from "@tamagui/floating";
25
- import { FocusScope, FocusScopeController } from "@tamagui/focus-scope";
26
- import { composeEventHandlers, withStaticProperties } from "@tamagui/helpers";
27
- import {
28
- Popper,
29
- PopperAnchor,
30
- PopperArrow,
31
- PopperArrowFrame,
32
- PopperContent,
33
- PopperContentFrame,
34
- PopperProvider,
35
- usePopperContext
36
- } from "@tamagui/popper";
37
- import { needsPortalRepropagation, Portal, resolveViewZIndex } from "@tamagui/portal";
38
- import { RemoveScroll } from "@tamagui/remove-scroll";
39
- import { ScrollView } from "@tamagui/scroll-view";
40
- import { SheetController } from "@tamagui/sheet/controller";
41
- import { YStack } from "@tamagui/stacks";
42
- import { useControllableState } from "@tamagui/use-controllable-state";
43
- import { StackZIndexContext } from "@tamagui/z-index-stack";
44
- import * as React from "react";
45
- import { useFloatingContext } from "./useFloatingContext";
46
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
47
- const needsRepropagation = needsPortalRepropagation(), PopoverContext = createStyledContext(
48
- // since we always provide this we can avoid setting here
49
- {},
50
- "Popover__"
51
- ), usePopoverContext = PopoverContext.useStyledContext, PopoverAnchor = React.forwardRef(
52
- function(props, forwardedRef) {
53
- const { scope, ...rest } = props, context = usePopoverContext(scope), { onCustomAnchorAdd, onCustomAnchorRemove } = context || {};
54
- return React.useEffect(() => (onCustomAnchorAdd(), () => onCustomAnchorRemove()), [onCustomAnchorAdd, onCustomAnchorRemove]), /* @__PURE__ */ jsx(PopperAnchor, { scope, ...rest, ref: forwardedRef });
55
- }
56
- ), PopoverTrigger = React.forwardRef(
57
- function(props, forwardedRef) {
58
- const { scope, ...rest } = props, context = usePopoverContext(scope), anchorTo = context.anchorTo, composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
59
- if (!props.children)
60
- return null;
61
- const trigger = /* @__PURE__ */ jsx(
62
- View,
63
- {
64
- "aria-expanded": context.open,
65
- "data-state": getState(context.open),
66
- ...rest,
67
- ref: composedTriggerRef,
68
- onPress: composeEventHandlers(props.onPress, context.onOpenToggle)
69
- }
70
- ), virtualRef = React.useMemo(() => anchorTo ? {
71
- current: {
72
- getBoundingClientRect: () => isWeb ? DOMRect.fromRect(anchorTo) : anchorTo,
73
- ...!isWeb && {
74
- measure: (c) => c(anchorTo?.x, anchorTo?.y, anchorTo?.width, anchorTo?.height),
75
- measureInWindow: (c) => c(anchorTo?.x, anchorTo?.y, anchorTo?.width, anchorTo?.height)
76
- }
77
- }
78
- } : null, [context.anchorTo, anchorTo?.x, anchorTo?.y, anchorTo?.height, anchorTo?.width]);
79
- return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperAnchor, { ...virtualRef && { virtualRef }, scope, asChild: !0, children: trigger });
80
- }
81
- ), PopoverContentFrame = styled(PopperContentFrame, {
82
- name: "Popover"
83
- }), PopoverContent = PopoverContentFrame.styleable(
84
- function(props, forwardedRef) {
85
- const {
86
- trapFocus,
87
- enableRemoveScroll = !1,
88
- zIndex,
89
- scope,
90
- ...contentImplProps
91
- } = props, context = usePopoverContext(scope), contentRef = React.useRef(null), composedRefs = useComposedRefs(forwardedRef, contentRef), isRightClickOutsideRef = React.useRef(!1), [isFullyHidden, setIsFullyHidden] = React.useState(!context.open);
92
- return React.useEffect(() => {
93
- context.open && isFullyHidden && setIsFullyHidden(!1);
94
- }, [context.open, isFullyHidden]), !context.keepChildrenMounted && isFullyHidden && !context.open ? null : /* @__PURE__ */ jsx(
95
- PopoverPortal,
96
- {
97
- passThrough: context.breakpointActive,
98
- context,
99
- zIndex,
100
- children: /* @__PURE__ */ jsx(
101
- View,
102
- {
103
- passThrough: context.breakpointActive,
104
- pointerEvents: context.open ? contentImplProps.pointerEvents ?? "auto" : "none",
105
- children: /* @__PURE__ */ jsx(
106
- PopoverContentImpl,
107
- {
108
- ...contentImplProps,
109
- context,
110
- enableRemoveScroll,
111
- ref: composedRefs,
112
- setIsFullyHidden,
113
- scope,
114
- trapFocus: trapFocus ?? context.open,
115
- disableOutsidePointerEvents: !0,
116
- onCloseAutoFocus: props.onCloseAutoFocus === !1 ? void 0 : composeEventHandlers(props.onCloseAutoFocus, (event) => {
117
- event.defaultPrevented || (event.preventDefault(), isRightClickOutsideRef.current || context.triggerRef.current?.focus());
118
- }),
119
- onPointerDownOutside: composeEventHandlers(
120
- props.onPointerDownOutside,
121
- (event) => {
122
- const originalEvent = event.detail.originalEvent, ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === !0, isRightClick = originalEvent.button === 2 || ctrlLeftClick;
123
- isRightClickOutsideRef.current = isRightClick;
124
- },
125
- { checkDefaultPrevented: !1 }
126
- ),
127
- onFocusOutside: composeEventHandlers(
128
- props.onFocusOutside,
129
- (event) => event.preventDefault(),
130
- { checkDefaultPrevented: !1 }
131
- )
132
- }
133
- )
134
- }
135
- )
136
- }
137
- );
138
- }
139
- ), useParentContexts = (scope) => {
140
- const context = usePopoverContext(scope), popperContext = usePopperContext(scope), adaptContext = useAdaptContext(context.adaptScope);
141
- return {
142
- popperContext,
143
- adaptContext,
144
- context
145
- };
146
- };
147
- function RepropagateParentContexts({
148
- adaptContext,
149
- children,
150
- context,
151
- popperContext
152
- }) {
153
- return /* @__PURE__ */ jsx(PopperProvider, { scope: context.popoverScope, ...popperContext, children: /* @__PURE__ */ jsx(PopoverContext.Provider, { ...context, children: /* @__PURE__ */ jsx(ProvideAdaptContext, { ...adaptContext, children }) }) });
154
- }
155
- const PortalAdaptSafe = ({
156
- children,
157
- context
158
- }) => {
159
- if (needsRepropagation) {
160
- const parentContexts = useParentContexts(context.popoverScope);
161
- return /* @__PURE__ */ jsx(AdaptPortalContents, { scope: context.adaptScope, children: /* @__PURE__ */ jsx(RepropagateParentContexts, { ...parentContexts, children }) });
162
- }
163
- return /* @__PURE__ */ jsx(AdaptPortalContents, { scope: context.adaptScope, children });
164
- };
165
- function PopoverPortal({
166
- context,
167
- zIndex,
168
- passThrough,
169
- children,
170
- onPress
171
- }) {
172
- const themeName = useThemeName();
173
- let content = children;
174
- if (needsRepropagation) {
175
- const parentContexts = useParentContexts(context.popoverScope);
176
- content = /* @__PURE__ */ jsx(RepropagateParentContexts, { ...parentContexts, children: content });
177
- }
178
- return /* @__PURE__ */ jsx(Portal, { passThrough, stackZIndex: !0, zIndex, children: /* @__PURE__ */ jsxs(Theme, { passThrough, contain: !0, forceClassName: !0, name: themeName, children: [
179
- !!context.open && !context.breakpointActive && /* @__PURE__ */ jsx(
180
- YStack,
181
- {
182
- fullscreen: !0,
183
- onPress: composeEventHandlers(onPress, context.onOpenToggle)
184
- }
185
- ),
186
- /* @__PURE__ */ jsx(StackZIndexContext, { zIndex: resolveViewZIndex(zIndex), children: content })
187
- ] }) });
188
- }
189
- const PopoverContentImpl = React.forwardRef(function(props, forwardedRef) {
190
- const {
191
- trapFocus,
192
- scope,
193
- onOpenAutoFocus,
194
- onCloseAutoFocus,
195
- disableOutsidePointerEvents,
196
- disableFocusScope,
197
- onEscapeKeyDown,
198
- onPointerDownOutside,
199
- onFocusOutside,
200
- onInteractOutside,
201
- children,
202
- enableRemoveScroll,
203
- freezeContentsWhenHidden,
204
- setIsFullyHidden,
205
- lazyMount,
206
- context,
207
- ...contentProps
208
- } = props, { open, keepChildrenMounted } = context, handleExitComplete = React.useCallback(() => {
209
- setIsFullyHidden?.(!0);
210
- }, [setIsFullyHidden]);
211
- let contents = /* @__PURE__ */ jsx(ResetPresence, { disable: context.breakpointActive, children });
212
- return context.breakpointActive || (contents = /* @__PURE__ */ jsx(
213
- RemoveScroll,
214
- {
215
- enabled: context.breakpointActive ? !1 : enableRemoveScroll ? open : !1,
216
- children: /* @__PURE__ */ jsx(
217
- FocusScope,
218
- {
219
- loop: trapFocus !== !1,
220
- enabled: context.breakpointActive || disableFocusScope ? !1 : open,
221
- trapped: context.breakpointActive ? !1 : trapFocus,
222
- onMountAutoFocus: onOpenAutoFocus,
223
- onUnmountAutoFocus: onCloseAutoFocus === !1 ? void 0 : onCloseAutoFocus,
224
- children: /* @__PURE__ */ jsx("div", { style: dspContentsStyle, children: contents })
225
- }
226
- )
227
- }
228
- )), /* @__PURE__ */ jsx(
229
- Animate,
230
- {
231
- type: "presence",
232
- present: !!open,
233
- keepChildrenMounted: !!keepChildrenMounted,
234
- onExitComplete: handleExitComplete,
235
- lazyMount,
236
- passThrough: context.breakpointActive,
237
- children: /* @__PURE__ */ jsx(
238
- PopperContent,
239
- {
240
- scope,
241
- "data-state": getState(open),
242
- id: context.contentId,
243
- ref: forwardedRef,
244
- passThrough: context.breakpointActive,
245
- ...contentProps,
246
- children: /* @__PURE__ */ jsx(PortalAdaptSafe, { context, children: contents })
247
- },
248
- context.contentId
249
- )
250
- }
251
- );
252
- }), dspContentsStyle = {
253
- display: "contents"
254
- }, PopoverClose = React.forwardRef(
255
- function(props, forwardedRef) {
256
- const { scope, ...rest } = props, context = usePopoverContext(scope);
257
- return /* @__PURE__ */ jsx(
258
- YStack,
259
- {
260
- ...rest,
261
- ref: forwardedRef,
262
- componentName: "PopoverClose",
263
- onPress: composeEventHandlers(
264
- props.onPress,
265
- () => context?.onOpenChange?.(!1, "press")
266
- )
267
- }
268
- );
269
- }
270
- ), PopoverArrow = PopperArrowFrame.styleable(
271
- function(props, forwardedRef) {
272
- const { scope, ...rest } = props, context = usePopoverContext(scope);
273
- return useAdaptIsActive(context.adaptScope) ? null : /* @__PURE__ */ jsx(
274
- PopperArrow,
275
- {
276
- scope,
277
- componentName: "PopoverArrow",
278
- ...rest,
279
- ref: forwardedRef
280
- }
281
- );
282
- }
283
- ), PopoverScrollView = React.forwardRef(
284
- ({ scope, ...props }, ref) => {
285
- const context = usePopoverContext(scope);
286
- return /* @__PURE__ */ jsx(
287
- ScrollView,
288
- {
289
- ref,
290
- pointerEvents: context.breakpointActive ? "none" : void 0,
291
- scrollEnabled: !context.breakpointActive,
292
- passThrough: context.breakpointActive,
293
- ...props
294
- }
295
- );
296
- }
297
- ), DEFAULT_SCOPE = "", Popover = withStaticProperties(
298
- React.forwardRef(function({ scope = DEFAULT_SCOPE, ...props }, ref) {
299
- const id = React.useId(), adaptScope = `PopoverAdapt${scope}`;
300
- return /* @__PURE__ */ jsx(AdaptParent, { scope: adaptScope, portal: !0, children: /* @__PURE__ */ jsx(
301
- PopoverInner,
302
- {
303
- adaptScope,
304
- ref,
305
- id,
306
- scope,
307
- ...props
308
- }
309
- ) });
310
- }),
311
- {
312
- Anchor: PopoverAnchor,
313
- Arrow: PopoverArrow,
314
- Trigger: PopoverTrigger,
315
- Content: PopoverContent,
316
- Close: PopoverClose,
317
- Adapt,
318
- ScrollView: PopoverScrollView,
319
- FocusScope: FocusScopeController
320
- }
321
- ), PopoverInner = React.forwardRef(function(props, forwardedRef) {
322
- const {
323
- children,
324
- open: openProp,
325
- defaultOpen,
326
- onOpenChange,
327
- scope = DEFAULT_SCOPE,
328
- keepChildrenMounted: keepChildrenMountedProp,
329
- hoverable,
330
- disableFocus,
331
- id,
332
- adaptScope,
333
- ...restProps
334
- } = props, triggerRef = React.useRef(null), [hasCustomAnchor, setHasCustomAnchor] = React.useState(!1), viaRef = React.useRef(void 0), [keepChildrenMounted] = useControllableState({
335
- prop: keepChildrenMountedProp,
336
- defaultProp: !1,
337
- transition: keepChildrenMountedProp === "lazy"
338
- }), [open, setOpen] = useControllableState({
339
- prop: openProp,
340
- defaultProp: defaultOpen || !1,
341
- onChange: (val) => {
342
- onOpenChange?.(val, viaRef.current);
343
- }
344
- }), handleOpenChange = useEvent((val, via) => {
345
- viaRef.current = via, setOpen(val);
346
- }), isAdapted = useAdaptIsActive(adaptScope), floatingContext = useFloatingContext({
347
- open,
348
- setOpen: handleOpenChange,
349
- disable: isAdapted,
350
- hoverable,
351
- disableFocus
352
- }), [anchorTo, setAnchorToRaw] = React.useState(), setAnchorTo = useCreateShallowSetState(
353
- setAnchorToRaw
354
- );
355
- React.useImperativeHandle(forwardedRef, () => ({
356
- anchorTo: setAnchorTo,
357
- toggle: () => setOpen((prev) => !prev),
358
- open: () => setOpen(!0),
359
- close: () => setOpen(!1),
360
- setOpen
361
- }));
362
- const popoverContext = {
363
- popoverScope: scope,
364
- adaptScope,
365
- id,
366
- contentId: React.useId(),
367
- triggerRef,
368
- open,
369
- breakpointActive: isAdapted,
370
- onOpenChange: handleOpenChange,
371
- onOpenToggle: useEvent(() => {
372
- open && isAdapted || setOpen(!open);
373
- }),
374
- hasCustomAnchor,
375
- anchorTo,
376
- onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(!0), []),
377
- onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(!1), []),
378
- keepChildrenMounted
379
- }, memoizedChildren = React.useMemo(() => /* @__PURE__ */ jsx(PopoverContext.Provider, { scope, ...popoverContext, children: /* @__PURE__ */ jsx(PopoverSheetController, { context: popoverContext, onOpenChange: setOpen, children }) }), [scope, setOpen, children, ...Object.values(popoverContext)]), contents = /* @__PURE__ */ jsx(Popper, { open, passThrough: isAdapted, scope, stayInFrame: !0, ...restProps, children: memoizedChildren });
380
- return /* @__PURE__ */ jsx(Fragment, { children: isWeb ? /* @__PURE__ */ jsx(FloatingOverrideContext.Provider, { value: floatingContext, children: contents }) : contents });
381
- });
382
- function getState(open) {
383
- return open ? "open" : "closed";
384
- }
385
- const PopoverSheetController = ({
386
- context,
387
- ...props
388
- }) => {
389
- const showSheet = useShowPopoverSheet(context), breakpointActive = context.breakpointActive, getShowSheet = useGet(showSheet);
390
- return /* @__PURE__ */ jsx(
391
- SheetController,
392
- {
393
- onOpenChange: (val) => {
394
- getShowSheet() && props.onOpenChange?.(val);
395
- },
396
- open: context.open,
397
- hidden: !breakpointActive,
398
- children: props.children
399
- }
400
- );
401
- }, useShowPopoverSheet = (context) => {
402
- const isAdapted = useAdaptIsActive(context.adaptScope);
403
- return context.open === !1 ? !1 : isAdapted;
404
- };
405
- export {
406
- Popover,
407
- PopoverAnchor,
408
- PopoverArrow,
409
- PopoverClose,
410
- PopoverContent,
411
- PopoverContext,
412
- PopoverTrigger,
413
- usePopoverContext
414
- };
415
- //# sourceMappingURL=Popover.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/Popover.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,59 +0,0 @@
1
- import React from "react";
2
- import {
3
- safePolygon,
4
- useDismiss,
5
- useFloating,
6
- useFocus,
7
- useHover,
8
- useInteractions,
9
- useRole
10
- } from "@floating-ui/react";
11
- const useFloatingContext = ({
12
- open,
13
- setOpen,
14
- disable,
15
- disableFocus,
16
- hoverable
17
- }) => React.useCallback(
18
- (props) => {
19
- const floating = useFloating({
20
- ...props,
21
- open,
22
- onOpenChange: (val, event) => {
23
- const type = event?.type === "mousemove" || event?.type === "mouseenter" || event?.type === "mouseleave" ? "hover" : "press";
24
- setOpen(val, type);
25
- }
26
- }), { getReferenceProps, getFloatingProps } = useInteractions([
27
- hoverable ? useHover(floating.context, {
28
- enabled: !disable && hoverable,
29
- handleClose: safePolygon({
30
- requireIntent: !0,
31
- blockPointerEvents: !0,
32
- buffer: 1
33
- }),
34
- ...hoverable && typeof hoverable == "object" && hoverable
35
- }) : useHover(floating.context, {
36
- enabled: !1
37
- }),
38
- useFocus(floating.context, {
39
- enabled: !disable && !disableFocus,
40
- visibleOnly: !0
41
- }),
42
- useRole(floating.context, { role: "dialog" }),
43
- useDismiss(floating.context, {
44
- enabled: !disable
45
- })
46
- ]);
47
- return {
48
- ...floating,
49
- open,
50
- getReferenceProps,
51
- getFloatingProps
52
- };
53
- },
54
- [open, setOpen, disable, disableFocus, hoverable]
55
- );
56
- export {
57
- useFloatingContext
58
- };
59
- //# sourceMappingURL=useFloatingContext.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useFloatingContext.tsx"],
4
- "mappings": "AAAA,OAAO,WAAW;AAElB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGA,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACS,MAAM;AAAA,EACX,CAAC,UAA8B;AAC7B,UAAM,WAAW,YAAY;AAAA,MAC3B,GAAG;AAAA,MACH;AAAA,MACA,cAAc,CAAC,KAAK,UAAU;AAC5B,cAAM,OACJ,OAAO,SAAS,eAChB,OAAO,SAAS,gBAChB,OAAO,SAAS,eACZ,UACA;AACN,gBAAQ,KAAK,IAAI;AAAA,MACnB;AAAA,IACF,CAAC,GACK,EAAE,mBAAmB,iBAAiB,IAAI,gBAAgB;AAAA,MAC9D,YACI,SAAS,SAAS,SAAS;AAAA,QACzB,SAAS,CAAC,WAAW;AAAA,QACrB,aAAa,YAAY;AAAA,UACvB,eAAe;AAAA,UACf,oBAAoB;AAAA,UACpB,QAAQ;AAAA,QACV,CAAC;AAAA,QACD,GAAI,aAAa,OAAO,aAAc,YAAY;AAAA,MACpD,CAAC,IACD,SAAS,SAAS,SAAS;AAAA,QACzB,SAAS;AAAA,MACX,CAAC;AAAA,MACL,SAAS,SAAS,SAAS;AAAA,QACzB,SAAS,CAAC,WAAW,CAAC;AAAA,QACtB,aAAa;AAAA,MACf,CAAC;AAAA,MACD,QAAQ,SAAS,SAAS,EAAE,MAAM,SAAS,CAAC;AAAA,MAC5C,WAAW,SAAS,SAAS;AAAA,QAC3B,SAAS,CAAC;AAAA,MACZ,CAAC;AAAA,IACH,CAAC;AACD,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,CAAC,MAAM,SAAS,SAAS,cAAc,SAAS;AAClD;",
5
- "names": []
6
- }