react-native-laminar 1.4.1 → 1.4.3
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/README.md +66 -0
- package/lib/commonjs/hooks/use-inline-auto-width.js +105 -18
- package/lib/commonjs/hooks/use-inline-auto-width.js.map +1 -1
- package/lib/commonjs/index.js +5 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/view/morph-viewport.js +2 -0
- package/lib/commonjs/view/morph-viewport.js.map +1 -1
- package/lib/commonjs/view/text-run.js +30 -12
- package/lib/commonjs/view/text-run.js.map +1 -1
- package/lib/module/hooks/use-inline-auto-width.js +106 -19
- package/lib/module/hooks/use-inline-auto-width.js.map +1 -1
- package/lib/module/index.js +5 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/view/morph-viewport.js +2 -0
- package/lib/module/view/morph-viewport.js.map +1 -1
- package/lib/module/view/text-run.js +30 -12
- package/lib/module/view/text-run.js.map +1 -1
- package/lib/typescript/commonjs/hooks/use-inline-auto-width.d.ts +2 -0
- package/lib/typescript/commonjs/hooks/use-inline-auto-width.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/morph-viewport.d.ts +3 -2
- package/lib/typescript/commonjs/view/morph-viewport.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/text-run.d.ts +2 -1
- package/lib/typescript/commonjs/view/text-run.d.ts.map +1 -1
- package/lib/typescript/module/hooks/use-inline-auto-width.d.ts +2 -0
- package/lib/typescript/module/hooks/use-inline-auto-width.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/view/morph-viewport.d.ts +3 -2
- package/lib/typescript/module/view/morph-viewport.d.ts.map +1 -1
- package/lib/typescript/module/view/text-run.d.ts +2 -1
- package/lib/typescript/module/view/text-run.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/use-inline-auto-width.ts +160 -18
- package/src/index.tsx +10 -1
- package/src/view/morph-viewport.tsx +7 -2
- package/src/view/text-run.tsx +49 -15
package/README.md
CHANGED
|
@@ -73,6 +73,35 @@ export default function Counter() {
|
|
|
73
73
|
}
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
+
### Slots
|
|
77
|
+
|
|
78
|
+
Use `variant="slots"` when each digit should roll through a vertical reel.
|
|
79
|
+
Prefixes and separators remain ordinary text content.
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
import React, { useState } from "react";
|
|
83
|
+
import { Button, View } from "react-native";
|
|
84
|
+
import { Laminar } from "react-native-laminar";
|
|
85
|
+
|
|
86
|
+
export default function SlotCounter() {
|
|
87
|
+
const [value, setValue] = useState("07:42");
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
<View style={{ alignItems: "center", gap: 16 }}>
|
|
91
|
+
<Laminar
|
|
92
|
+
text={value}
|
|
93
|
+
variant="slots"
|
|
94
|
+
fontSize={48}
|
|
95
|
+
animationPreset="snappy"
|
|
96
|
+
clipToBounds
|
|
97
|
+
style={{ color: "#000000", fontVariant: ["tabular-nums"] }}
|
|
98
|
+
/>
|
|
99
|
+
<Button title="Change" onPress={() => setValue("08:15")} />
|
|
100
|
+
</View>
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
76
105
|
### Inside a button with auto-sizing
|
|
77
106
|
|
|
78
107
|
```tsx
|
|
@@ -86,6 +115,43 @@ export default function Counter() {
|
|
|
86
115
|
</Pressable>
|
|
87
116
|
```
|
|
88
117
|
|
|
118
|
+
### Auto-sized button with leading icons
|
|
119
|
+
|
|
120
|
+
Pass a text-keyed `leading` map when the button changes between visual states.
|
|
121
|
+
Laminar selects the matching entry and animates icon-to-icon replacements.
|
|
122
|
+
|
|
123
|
+
```tsx
|
|
124
|
+
import { ActivityIndicator, Pressable, Text } from "react-native";
|
|
125
|
+
import { Laminar } from "react-native-laminar";
|
|
126
|
+
|
|
127
|
+
const leading = {
|
|
128
|
+
"Sending Request": <ActivityIndicator color="#ffffff" />,
|
|
129
|
+
"Request Sent!": <Text style={{ color: "#ffffff", fontSize: 20 }}>✓</Text>,
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
<Pressable
|
|
133
|
+
style={{
|
|
134
|
+
alignItems: "center",
|
|
135
|
+
backgroundColor: "#007aff",
|
|
136
|
+
borderRadius: 36,
|
|
137
|
+
justifyContent: "center",
|
|
138
|
+
paddingHorizontal: 24,
|
|
139
|
+
paddingVertical: 12,
|
|
140
|
+
}}
|
|
141
|
+
>
|
|
142
|
+
<Laminar
|
|
143
|
+
text={status}
|
|
144
|
+
leading={leading}
|
|
145
|
+
leadingGap={5}
|
|
146
|
+
autoSize
|
|
147
|
+
style={{ color: "#ffffff", fontSize: 18, fontWeight: "700" }}
|
|
148
|
+
/>
|
|
149
|
+
</Pressable>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
The map key must match the current `text` value. A missing entry means no
|
|
153
|
+
leading element, so the icon fades out when the button returns to a plain label.
|
|
154
|
+
|
|
89
155
|
### Centered text in a fixed-width container
|
|
90
156
|
|
|
91
157
|
Use `align` when the parent owns the width and Laminar should place the animated row inside that space.
|
|
@@ -15,10 +15,19 @@ const useInlineAutoWidth = ({
|
|
|
15
15
|
measurementKey
|
|
16
16
|
}) => {
|
|
17
17
|
const widthValue = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
18
|
+
const hasBootstrappedWidth = (0, _reactNativeReanimated.useSharedValue)(false);
|
|
18
19
|
const measuredWidthRef = (0, _react.useRef)(null);
|
|
19
20
|
const bootstrappedRef = (0, _react.useRef)(false);
|
|
20
21
|
const widthCacheRef = (0, _react.useRef)(new Map());
|
|
21
|
-
const
|
|
22
|
+
const hasCapturedVisibleLayoutRef = (0, _react.useRef)(false);
|
|
23
|
+
const initialMeasurementKeyRef = (0, _react.useRef)(null);
|
|
24
|
+
const firstProbeRef = (0, _react.useRef)(null);
|
|
25
|
+
const latestProbeRef = (0, _react.useRef)(null);
|
|
26
|
+
const bootstrapTimerRef = (0, _react.useRef)(null);
|
|
27
|
+
const [readyMeasurementKey, setReadyMeasurementKey] = (0, _react.useState)(null);
|
|
28
|
+
const markMeasurementReady = (0, _react.useCallback)(key => {
|
|
29
|
+
setReadyMeasurementKey(currentKey => currentKey === key ? currentKey : key);
|
|
30
|
+
}, []);
|
|
22
31
|
|
|
23
32
|
// the first measurement establishes the shell without animating from zero
|
|
24
33
|
const applyWidth = (0, _react.useCallback)(nextWidth => {
|
|
@@ -29,11 +38,62 @@ const useInlineAutoWidth = ({
|
|
|
29
38
|
if (!bootstrappedRef.current) {
|
|
30
39
|
bootstrappedRef.current = true;
|
|
31
40
|
widthValue.value = nextWidth;
|
|
32
|
-
|
|
41
|
+
hasBootstrappedWidth.value = true;
|
|
33
42
|
return;
|
|
34
43
|
}
|
|
35
44
|
widthValue.value = driveToWidth(nextWidth);
|
|
36
45
|
}, [driveToWidth, widthValue]);
|
|
46
|
+
const bootstrapFromProbe = (0, _react.useCallback)(() => {
|
|
47
|
+
bootstrapTimerRef.current = null;
|
|
48
|
+
if (hasCapturedVisibleLayoutRef.current) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const firstProbe = firstProbeRef.current;
|
|
52
|
+
if (!firstProbe) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// The visible layout did not arrive in time, so use the first probe as a
|
|
57
|
+
// safe fallback. A later probe can still animate from this baseline.
|
|
58
|
+
hasCapturedVisibleLayoutRef.current = true;
|
|
59
|
+
initialMeasurementKeyRef.current = firstProbe.key;
|
|
60
|
+
applyWidth(firstProbe.width);
|
|
61
|
+
const latestProbe = latestProbeRef.current;
|
|
62
|
+
if (latestProbe && latestProbe.key !== firstProbe.key) {
|
|
63
|
+
// The target width is already cached. Defer its animation until the
|
|
64
|
+
// ready render so the shell and the new glyph row start together.
|
|
65
|
+
markMeasurementReady(latestProbe.key);
|
|
66
|
+
} else {
|
|
67
|
+
markMeasurementReady(firstProbe.key);
|
|
68
|
+
}
|
|
69
|
+
}, [applyWidth, markMeasurementReady]);
|
|
70
|
+
const captureVisibleLayout = (0, _react.useCallback)(event => {
|
|
71
|
+
if (!enabled || hasCapturedVisibleLayoutRef.current) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (bootstrapTimerRef.current !== null) {
|
|
75
|
+
clearTimeout(bootstrapTimerRef.current);
|
|
76
|
+
bootstrapTimerRef.current = null;
|
|
77
|
+
}
|
|
78
|
+
hasCapturedVisibleLayoutRef.current = true;
|
|
79
|
+
// bootstrap from the visible tree so the first explicit width matches
|
|
80
|
+
// the geometry that was already painted to the user
|
|
81
|
+
const nextWidth = Math.max(0, event.nativeEvent.layout.width);
|
|
82
|
+
// retain the visible width for the initial key so a later cache hit does
|
|
83
|
+
// not reintroduce the probe-to-visible mismatch
|
|
84
|
+
widthCacheRef.current.delete(measurementKey);
|
|
85
|
+
widthCacheRef.current.set(measurementKey, nextWidth);
|
|
86
|
+
const firstProbe = firstProbeRef.current;
|
|
87
|
+
if (firstProbe && firstProbe.key !== measurementKey) {
|
|
88
|
+
initialMeasurementKeyRef.current = firstProbe.key;
|
|
89
|
+
applyWidth(firstProbe.width);
|
|
90
|
+
markMeasurementReady(measurementKey);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
initialMeasurementKeyRef.current = measurementKey;
|
|
94
|
+
applyWidth(nextWidth);
|
|
95
|
+
markMeasurementReady(measurementKey);
|
|
96
|
+
}, [applyWidth, enabled, markMeasurementReady, measurementKey]);
|
|
37
97
|
const captureLayout = (0, _react.useCallback)(event => {
|
|
38
98
|
if (!enabled) {
|
|
39
99
|
return;
|
|
@@ -41,36 +101,63 @@ const useInlineAutoWidth = ({
|
|
|
41
101
|
|
|
42
102
|
// round up so fractional native measurements cannot clip the final glyph
|
|
43
103
|
const nextWidth = Math.max(0, Math.ceil(event.nativeEvent.layout.width));
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
104
|
+
const isInitialMeasurement = initialMeasurementKeyRef.current === measurementKey;
|
|
105
|
+
if (!isInitialMeasurement) {
|
|
106
|
+
// delete before setting so a repeated key moves to the most recent position
|
|
107
|
+
widthCacheRef.current.delete(measurementKey);
|
|
108
|
+
if (widthCacheRef.current.size >= WIDTH_CACHE_LIMIT) {
|
|
109
|
+
// map insertion order gives the lru entry at the front
|
|
110
|
+
const oldestKey = widthCacheRef.current.keys().next().value;
|
|
111
|
+
if (oldestKey !== undefined) {
|
|
112
|
+
widthCacheRef.current.delete(oldestKey);
|
|
113
|
+
}
|
|
52
114
|
}
|
|
115
|
+
widthCacheRef.current.set(measurementKey, nextWidth);
|
|
53
116
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
117
|
+
const probe = {
|
|
118
|
+
key: measurementKey,
|
|
119
|
+
width: nextWidth
|
|
120
|
+
};
|
|
121
|
+
if (!firstProbeRef.current) {
|
|
122
|
+
firstProbeRef.current = probe;
|
|
123
|
+
}
|
|
124
|
+
latestProbeRef.current = probe;
|
|
125
|
+
if (!hasCapturedVisibleLayoutRef.current && bootstrapTimerRef.current === null) {
|
|
126
|
+
bootstrapTimerRef.current = setTimeout(bootstrapFromProbe, 0);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Do not let the initial probe override the visible first frame.
|
|
130
|
+
if (hasCapturedVisibleLayoutRef.current && !isInitialMeasurement) {
|
|
131
|
+
// captureLayout only records the target. The cache effect applies the
|
|
132
|
+
// animation during the render that releases the new glyph row.
|
|
133
|
+
markMeasurementReady(measurementKey);
|
|
134
|
+
}
|
|
135
|
+
}, [applyWidth, bootstrapFromProbe, enabled, markMeasurementReady, measurementKey]);
|
|
57
136
|
const cachedWidth = widthCacheRef.current.get(measurementKey);
|
|
58
137
|
|
|
59
138
|
// a cached width can restore the shell before the hidden probe renders again
|
|
60
|
-
(0, _react.
|
|
61
|
-
if (enabled && cachedWidth !== undefined) {
|
|
139
|
+
(0, _react.useLayoutEffect)(() => {
|
|
140
|
+
if (enabled && cachedWidth !== undefined && hasCapturedVisibleLayoutRef.current) {
|
|
62
141
|
// promote cache hits so active states stay available longer
|
|
63
142
|
widthCacheRef.current.delete(measurementKey);
|
|
64
143
|
widthCacheRef.current.set(measurementKey, cachedWidth);
|
|
65
144
|
applyWidth(cachedWidth);
|
|
145
|
+
markMeasurementReady(measurementKey);
|
|
146
|
+
}
|
|
147
|
+
}, [applyWidth, cachedWidth, enabled, markMeasurementReady, measurementKey]);
|
|
148
|
+
(0, _react.useEffect)(() => () => {
|
|
149
|
+
if (bootstrapTimerRef.current !== null) {
|
|
150
|
+
clearTimeout(bootstrapTimerRef.current);
|
|
66
151
|
}
|
|
67
|
-
}, [
|
|
68
|
-
const animatedWidthStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => enabled && hasBootstrappedWidth ? {
|
|
152
|
+
}, []);
|
|
153
|
+
const animatedWidthStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => enabled && hasBootstrappedWidth.value ? {
|
|
69
154
|
width: widthValue.value
|
|
70
|
-
} : {}, [enabled
|
|
155
|
+
} : {}, [enabled]);
|
|
71
156
|
return {
|
|
72
157
|
captureLayout,
|
|
158
|
+
captureVisibleLayout,
|
|
73
159
|
animatedWidthStyle,
|
|
160
|
+
isReady: !enabled || cachedWidth !== undefined || readyMeasurementKey === measurementKey,
|
|
74
161
|
shouldMeasure: enabled && cachedWidth === undefined
|
|
75
162
|
};
|
|
76
163
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeReanimated","WIDTH_CACHE_LIMIT","useInlineAutoWidth","enabled","driveToWidth","measurementKey","widthValue","useSharedValue","measuredWidthRef","useRef","bootstrappedRef","widthCacheRef","Map","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","WIDTH_CACHE_LIMIT","useInlineAutoWidth","enabled","driveToWidth","measurementKey","widthValue","useSharedValue","hasBootstrappedWidth","measuredWidthRef","useRef","bootstrappedRef","widthCacheRef","Map","hasCapturedVisibleLayoutRef","initialMeasurementKeyRef","firstProbeRef","latestProbeRef","bootstrapTimerRef","readyMeasurementKey","setReadyMeasurementKey","useState","markMeasurementReady","useCallback","key","currentKey","applyWidth","nextWidth","current","value","bootstrapFromProbe","firstProbe","width","latestProbe","captureVisibleLayout","event","clearTimeout","Math","max","nativeEvent","layout","delete","set","captureLayout","ceil","isInitialMeasurement","size","oldestKey","keys","next","undefined","probe","setTimeout","cachedWidth","get","useLayoutEffect","useEffect","animatedWidthStyle","useAnimatedStyle","isReady","shouldMeasure","exports"],"sourceRoot":"../../../src","sources":["hooks/use-inline-auto-width.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -66,7 +66,9 @@ const Laminar = exports.Laminar = /*#__PURE__*/_react.default.memo(function Lami
|
|
|
66
66
|
}, [leadingGap, resolvedLeading, resolvedLeadingKey, resolvedValue, textStyle, variant]);
|
|
67
67
|
const {
|
|
68
68
|
captureLayout,
|
|
69
|
+
captureVisibleLayout,
|
|
69
70
|
animatedWidthStyle,
|
|
71
|
+
isReady: isAutoSizeReady,
|
|
70
72
|
shouldMeasure
|
|
71
73
|
} = (0, _useInlineAutoWidth.useInlineAutoWidth)({
|
|
72
74
|
enabled: autoSize,
|
|
@@ -86,6 +88,7 @@ const Laminar = exports.Laminar = /*#__PURE__*/_react.default.memo(function Lami
|
|
|
86
88
|
align: align,
|
|
87
89
|
containerStyle: containerStyle,
|
|
88
90
|
animatedWidthStyle: animatedWidthStyle,
|
|
91
|
+
onVisibleLayout: autoSize ? captureVisibleLayout : undefined,
|
|
89
92
|
measurement: shouldMeasure ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
90
93
|
onLayout: captureLayout,
|
|
91
94
|
style: {
|
|
@@ -103,7 +106,7 @@ const Laminar = exports.Laminar = /*#__PURE__*/_react.default.memo(function Lami
|
|
|
103
106
|
style: textStyle,
|
|
104
107
|
children: (0, _displayUnits.normalizeDisplayUnit)(unit)
|
|
105
108
|
}, `${unit}-${index}`))]
|
|
106
|
-
}) : undefined,
|
|
109
|
+
}, measurementKey) : undefined,
|
|
107
110
|
children: variant === "slots" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_slotsRun.SlotsRun, {
|
|
108
111
|
value: resolvedValue,
|
|
109
112
|
motionRecipe: motionRecipe,
|
|
@@ -127,6 +130,7 @@ const Laminar = exports.Laminar = /*#__PURE__*/_react.default.memo(function Lami
|
|
|
127
130
|
leading: resolvedLeading,
|
|
128
131
|
leadingKey: resolvedLeadingKey,
|
|
129
132
|
leadingGap: leadingGap,
|
|
133
|
+
ready: !autoSize || isAutoSizeReady,
|
|
130
134
|
textStyle: textStyle,
|
|
131
135
|
className: className
|
|
132
136
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_useInlineAutoWidth","_useMorphMotion","_useMorphTextStyle","_displayUnits","_morphViewport","_numberRun","_slotsRun","_textRun","_jsxRuntime","e","__esModule","default","Laminar","exports","React","memo","text","variant","fontSize","color","align","className","leading","leadingKey","leadingGap","style","containerStyle","fontStyle","animationDuration","animationPreset","stagger","autoSize","clipToBounds","resolvedValue","String","leadingMap","isLeadingMap","undefined","resolvedLeading","resolvedLeadingKey","motionRecipe","staggerMs","useMorphMotion","textStyle","useMorphTextStyle","measurementKey","useMemo","flattenedStyle","StyleSheet","flatten","JSON","stringify","fontFamily","fontWeight","fontVariant","letterSpacing","lineHeight","textTransform","Boolean","captureLayout","animatedWidthStyle","shouldMeasure","useInlineAutoWidth","enabled","driveToWidth","driveNumber","measuredValue","splitDisplayUnits","map","normalizeDisplayUnit","join","jsx","MorphViewport","measurement","jsxs","View","onLayout","flexDirection","alignSelf","children","alignItems","justifyContent","marginRight","unit","index","Text","SlotsRun","value","NumberRun","TextRun","isValidElement","Array","isArray"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AAKA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AAA0C,IAAAU,WAAA,GAAAV,OAAA;AAAA,SAAAD,uBAAAY,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1C;AACO,MAAMG,OAAO,GAAAC,OAAA,CAAAD,OAAA,gBAAGE,cAAK,CAACC,IAAI,CAAC,SAASH,OAAOA,CAAC;EAC/CI,IAAI;EACJC,OAAO,GAAG,MAAM;EAChBC,QAAQ;EACRC,KAAK;EACLC,KAAK,GAAG,MAAM;EACdC,SAAS;EACTC,OAAO;EACPC,UAAU;EACVC,UAAU,GAAG,CAAC;EACdC,KAAK;EACLC,cAAc;EACdC,SAAS;EACTC,iBAAiB;EACjBC,eAAe;EACfC,OAAO,GAAG,IAAI;EACdC,QAAQ,GAAG,IAAI;EACfC,YAAY,GAAG;AACY,CAAC,EAAE;EAC9B,MAAMC,aAAa,GAAGC,MAAM,CAAClB,IAAI,IAAI,EAAE,CAAC;EACxC;EACA,MAAMmB,UAAU,GAAGC,YAAY,CAACd,OAAO,CAAC,GAAGA,OAAO,GAAGe,SAAS;EAC9D,MAAMC,eAAgC,GAAGH,UAAU,GAC/CA,UAAU,CAACF,aAAa,CAAC,GACxBX,OAA2B;EAChC,MAAMiB,kBAAkB,GAAGJ,UAAU,GAAGF,aAAa,GAAGV,UAAU;EAClE,MAAM;IAAEiB,YAAY;IAAEC;EAAU,CAAC,GAAG,IAAAC,8BAAc,EAAC;IACjDzB,OAAO;IACPY,eAAe;IACfD,iBAAiB;IACjBE;EACF,CAAC,CAAC;EACF,MAAM;IAAEa;EAAU,CAAC,GAAG,IAAAC,oCAAiB,EAAC;IACtC1B,QAAQ;IACRC,KAAK;IACLQ,SAAS;IACTF;EACF,CAAC,CAAC;;EAEF;EACA,MAAMoB,cAAc,GAAG/B,cAAK,CAACgC,OAAO,CAAC,MAAM;IACzC,MAAMC,cAAc,GAAGC,uBAAU,CAACC,OAAO,CAACN,SAAS,CAAC;IAEpD,OAAOO,IAAI,CAACC,SAAS,CAAC,CACpBlB,aAAa,EACbc,cAAc,EAAEK,UAAU,EAC1BL,cAAc,EAAE7B,QAAQ,EACxB6B,cAAc,EAAEpB,SAAS,EACzBoB,cAAc,EAAEM,UAAU,EAC1BN,cAAc,EAAEO,WAAW,EAC3BP,cAAc,EAAEQ,aAAa,EAC7BR,cAAc,EAAES,UAAU,EAC1BT,cAAc,EAAEU,aAAa,EAC7BxC,OAAO,KAAK,MAAM,IAAIyC,OAAO,CAACpB,eAAe,CAAC,EAC9CrB,OAAO,KAAK,MAAM,GAAGsB,kBAAkB,GAAGF,SAAS,EACnDpB,OAAO,KAAK,MAAM,GAAGO,UAAU,GAAG,CAAC,CACpC,CAAC;EACJ,CAAC,EAAE,CACDA,UAAU,EACVc,eAAe,EACfC,kBAAkB,EAClBN,aAAa,EACbU,SAAS,EACT1B,OAAO,CACR,CAAC;EACF,MAAM;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_useInlineAutoWidth","_useMorphMotion","_useMorphTextStyle","_displayUnits","_morphViewport","_numberRun","_slotsRun","_textRun","_jsxRuntime","e","__esModule","default","Laminar","exports","React","memo","text","variant","fontSize","color","align","className","leading","leadingKey","leadingGap","style","containerStyle","fontStyle","animationDuration","animationPreset","stagger","autoSize","clipToBounds","resolvedValue","String","leadingMap","isLeadingMap","undefined","resolvedLeading","resolvedLeadingKey","motionRecipe","staggerMs","useMorphMotion","textStyle","useMorphTextStyle","measurementKey","useMemo","flattenedStyle","StyleSheet","flatten","JSON","stringify","fontFamily","fontWeight","fontVariant","letterSpacing","lineHeight","textTransform","Boolean","captureLayout","captureVisibleLayout","animatedWidthStyle","isReady","isAutoSizeReady","shouldMeasure","useInlineAutoWidth","enabled","driveToWidth","driveNumber","measuredValue","splitDisplayUnits","map","normalizeDisplayUnit","join","jsx","MorphViewport","onVisibleLayout","measurement","jsxs","View","onLayout","flexDirection","alignSelf","children","alignItems","justifyContent","marginRight","unit","index","Text","SlotsRun","value","NumberRun","TextRun","ready","isValidElement","Array","isArray"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -63,6 +63,7 @@ const MorphViewport = exports.MorphViewport = /*#__PURE__*/_react.default.memo((
|
|
|
63
63
|
align,
|
|
64
64
|
containerStyle,
|
|
65
65
|
animatedWidthStyle,
|
|
66
|
+
onVisibleLayout,
|
|
66
67
|
measurement,
|
|
67
68
|
children
|
|
68
69
|
}) => {
|
|
@@ -81,6 +82,7 @@ const MorphViewport = exports.MorphViewport = /*#__PURE__*/_react.default.memo((
|
|
|
81
82
|
style: measuredContentStyle,
|
|
82
83
|
children: measurement
|
|
83
84
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
85
|
+
onLayout: onVisibleLayout,
|
|
84
86
|
style: [resolvedViewportStyle, animatedWidthStyle],
|
|
85
87
|
children: children
|
|
86
88
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","shellStyle","position","alignSelf","viewportStyle","measuredContentStyle","left","top","opacity","flexShrink","clippedViewportStyle","overflow","unclippedViewportStyle","fullWidthViewportStyle","width","shellAlignStyles","center","right","viewportAlignStyles","alignItems","MorphViewport","exports","React","memo","autoSize","clipToBounds","align","containerStyle","animatedWidthStyle","measurement","children","resolvedViewportStyle","useMemo","jsx","View","style","jsxs","Fragment","accessibilityElementsHidden","collapsable","importantForAccessibility","pointerEvents","displayName"],"sourceRoot":"../../../src","sources":["view/morph-viewport.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA+C,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAM,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAG/C,MAAMgB,UAAU,GAAG;EACjBC,QAAQ,EAAE,UAAU;EACpBC,SAAS,EAAE;AACb,CAAU;AAEV,MAAMC,aAAa,GAAG;EACpBD,SAAS,EAAE;AACb,CAAU;AAEV,MAAME,oBAA+B,GAAG;EACtCH,QAAQ,EAAE,UAAU;EACpBI,IAAI,EAAE,CAAC;EACPC,GAAG,EAAE,CAAC;EACNC,OAAO,EAAE,CAAC;EACVL,SAAS,EAAE,YAAY;EACvBM,UAAU,EAAE;AACd,CAAC;AAED,MAAMC,oBAA+B,GAAG;EACtCC,QAAQ,EAAE;AACZ,CAAC;AAED,MAAMC,sBAAiC,GAAG;EACxCD,QAAQ,EAAE;AACZ,CAAC;AAED,MAAME,sBAAiC,GAAG;EACxCC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,gBAAiD,GAAG;EACxDT,IAAI,EAAE;IAAEH,SAAS,EAAE;EAAa,CAAC;EACjCa,MAAM,EAAE;IAAEb,SAAS,EAAE;EAAS,CAAC;EAC/Bc,KAAK,EAAE;IAAEd,SAAS,EAAE;EAAW;AACjC,CAAC;AAED,MAAMe,mBAAoD,GAAG;EAC3DZ,IAAI,EAAE;IAAEa,UAAU,EAAE;EAAa,CAAC;EAClCH,MAAM,EAAE;IAAEG,UAAU,EAAE;EAAS,CAAC;EAChCF,KAAK,EAAE;IAAEE,UAAU,EAAE;EAAW;AAClC,CAAC;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","shellStyle","position","alignSelf","viewportStyle","measuredContentStyle","left","top","opacity","flexShrink","clippedViewportStyle","overflow","unclippedViewportStyle","fullWidthViewportStyle","width","shellAlignStyles","center","right","viewportAlignStyles","alignItems","MorphViewport","exports","React","memo","autoSize","clipToBounds","align","containerStyle","animatedWidthStyle","onVisibleLayout","measurement","children","resolvedViewportStyle","useMemo","jsx","View","style","jsxs","Fragment","accessibilityElementsHidden","collapsable","importantForAccessibility","pointerEvents","onLayout","displayName"],"sourceRoot":"../../../src","sources":["view/morph-viewport.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,22 +19,40 @@ const TextRun = exports.TextRun = /*#__PURE__*/_react.default.memo(({
|
|
|
19
19
|
leading,
|
|
20
20
|
leadingKey,
|
|
21
21
|
leadingGap = 0,
|
|
22
|
+
ready = true,
|
|
22
23
|
textStyle,
|
|
23
24
|
className
|
|
24
25
|
}) => {
|
|
25
26
|
// namespace ids per instance so repeated strings do not collide
|
|
26
27
|
const scopeId = (0, _react.useId)();
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
28
|
+
const hasDisplayedRef = (0, _react.useRef)(false);
|
|
29
|
+
const displayedValueRef = (0, _react.useRef)(value);
|
|
30
|
+
const displayedLeadingRef = (0, _react.useRef)(leading);
|
|
31
|
+
const displayedLeadingKeyRef = (0, _react.useRef)(leadingKey);
|
|
32
|
+
const displayedLeadingGapRef = (0, _react.useRef)(leadingGap);
|
|
33
|
+
const shouldDisplayTarget = ready || !hasDisplayedRef.current;
|
|
34
|
+
const visibleValue = shouldDisplayTarget ? value : displayedValueRef.current;
|
|
35
|
+
const visibleLeading = shouldDisplayTarget ? leading : displayedLeadingRef.current;
|
|
36
|
+
const visibleLeadingKey = shouldDisplayTarget ? leadingKey : displayedLeadingKeyRef.current;
|
|
37
|
+
const visibleLeadingGap = shouldDisplayTarget ? leadingGap : displayedLeadingGapRef.current;
|
|
38
|
+
if (shouldDisplayTarget) {
|
|
39
|
+
hasDisplayedRef.current = true;
|
|
40
|
+
displayedValueRef.current = value;
|
|
41
|
+
displayedLeadingRef.current = leading;
|
|
42
|
+
displayedLeadingKeyRef.current = leadingKey;
|
|
43
|
+
displayedLeadingGapRef.current = leadingGap;
|
|
44
|
+
}
|
|
45
|
+
const lastValueRef = (0, _react.useRef)(visibleValue);
|
|
46
|
+
const lastLeadingPresenceRef = (0, _react.useRef)(Boolean(visibleLeading));
|
|
47
|
+
const lastLeadingKeyRef = (0, _react.useRef)(visibleLeadingKey);
|
|
30
48
|
const hasAnimatedRef = (0, _react.useRef)(false);
|
|
31
|
-
const isLeadingSwap = Boolean(
|
|
49
|
+
const isLeadingSwap = Boolean(visibleLeading) && lastLeadingPresenceRef.current && visibleLeadingKey !== lastLeadingKeyRef.current;
|
|
32
50
|
// update the worklet flag after commit so render never writes a shared value
|
|
33
51
|
const leadingSwapProgress = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
34
52
|
(0, _react.useLayoutEffect)(() => {
|
|
35
53
|
leadingSwapProgress.value = isLeadingSwap ? 1 : 0;
|
|
36
54
|
}, [isLeadingSwap, leadingSwapProgress]);
|
|
37
|
-
const glyphs = (0, _useTextGlyphs.useTextGlyphs)(
|
|
55
|
+
const glyphs = (0, _useTextGlyphs.useTextGlyphs)(visibleValue, scopeId, visibleLeading, visibleLeadingKey);
|
|
38
56
|
const elementEnterTransition = (0, _react.useMemo)(() => (0, _entryExitBuilders.createLeadingEnterTransition)({
|
|
39
57
|
durationMs: motionRecipe.durationMs,
|
|
40
58
|
easing: motionRecipe.easing
|
|
@@ -42,16 +60,16 @@ const TextRun = exports.TextRun = /*#__PURE__*/_react.default.memo(({
|
|
|
42
60
|
const elementExitTransition = (0, _react.useMemo)(() => (0, _entryExitBuilders.createLeadingExitTransition)({
|
|
43
61
|
durationMs: motionRecipe.durationMs,
|
|
44
62
|
easing: motionRecipe.easing,
|
|
45
|
-
leadingGap,
|
|
63
|
+
leadingGap: visibleLeadingGap,
|
|
46
64
|
scale: leadingSwapProgress
|
|
47
|
-
}), [
|
|
65
|
+
}), [visibleLeadingGap, leadingSwapProgress, motionRecipe.durationMs, motionRecipe.easing]);
|
|
48
66
|
|
|
49
67
|
// mark the first value as settled and later changes as eligible for motion
|
|
50
|
-
if (
|
|
68
|
+
if (visibleValue !== lastValueRef.current || Boolean(visibleLeading) !== lastLeadingPresenceRef.current || visibleLeadingKey !== lastLeadingKeyRef.current) {
|
|
51
69
|
hasAnimatedRef.current = true;
|
|
52
|
-
lastValueRef.current =
|
|
53
|
-
lastLeadingPresenceRef.current = Boolean(
|
|
54
|
-
lastLeadingKeyRef.current =
|
|
70
|
+
lastValueRef.current = visibleValue;
|
|
71
|
+
lastLeadingPresenceRef.current = Boolean(visibleLeading);
|
|
72
|
+
lastLeadingKeyRef.current = visibleLeadingKey;
|
|
55
73
|
}
|
|
56
74
|
const hasAnimated = hasAnimatedRef.current;
|
|
57
75
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_glyphRun.GlyphRun, {
|
|
@@ -61,7 +79,7 @@ const TextRun = exports.TextRun = /*#__PURE__*/_react.default.memo(({
|
|
|
61
79
|
elementEnterTransition: isLeadingSwap ? elementEnterTransition : undefined,
|
|
62
80
|
exitTransition: motionRecipe.exitTransition,
|
|
63
81
|
elementExitTransition: elementExitTransition,
|
|
64
|
-
leadingGap:
|
|
82
|
+
leadingGap: visibleLeadingGap,
|
|
65
83
|
align: align,
|
|
66
84
|
textStyle: textStyle,
|
|
67
85
|
className: className
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeReanimated","_useTextGlyphs","_entryExitBuilders","_glyphRun","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TextRun","exports","React","memo","value","motionRecipe","align","leading","leadingKey","leadingGap","textStyle","className","scopeId","useId","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeReanimated","_useTextGlyphs","_entryExitBuilders","_glyphRun","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TextRun","exports","React","memo","value","motionRecipe","align","leading","leadingKey","leadingGap","ready","textStyle","className","scopeId","useId","hasDisplayedRef","useRef","displayedValueRef","displayedLeadingRef","displayedLeadingKeyRef","displayedLeadingGapRef","shouldDisplayTarget","current","visibleValue","visibleLeading","visibleLeadingKey","visibleLeadingGap","lastValueRef","lastLeadingPresenceRef","Boolean","lastLeadingKeyRef","hasAnimatedRef","isLeadingSwap","leadingSwapProgress","useSharedValue","useLayoutEffect","glyphs","useTextGlyphs","elementEnterTransition","useMemo","createLeadingEnterTransition","durationMs","easing","elementExitTransition","createLeadingExitTransition","scale","hasAnimated","jsx","GlyphRun","layoutTransition","undefined","enterTransition","exitTransition","displayName"],"sourceRoot":"../../../src","sources":["view/text-run.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAKA,IAAAI,SAAA,GAAAJ,OAAA;AAAuC,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAcvC;AACO,MAAMkB,OAAO,GAAAC,OAAA,CAAAD,OAAA,gBAAGE,cAAK,CAACC,IAAI,CAC/B,CAAC;EACCC,KAAK;EACLC,YAAY;EACZC,KAAK;EACLC,OAAO;EACPC,UAAU;EACVC,UAAU,GAAG,CAAC;EACdC,KAAK,GAAG,IAAI;EACZC,SAAS;EACTC;AACY,CAAC,KAAK;EAClB;EACA,MAAMC,OAAO,GAAG,IAAAC,YAAK,EAAC,CAAC;EACvB,MAAMC,eAAe,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EACrC,MAAMC,iBAAiB,GAAG,IAAAD,aAAM,EAACZ,KAAK,CAAC;EACvC,MAAMc,mBAAmB,GAAG,IAAAF,aAAM,EAACT,OAAO,CAAC;EAC3C,MAAMY,sBAAsB,GAAG,IAAAH,aAAM,EAACR,UAAU,CAAC;EACjD,MAAMY,sBAAsB,GAAG,IAAAJ,aAAM,EAACP,UAAU,CAAC;EACjD,MAAMY,mBAAmB,GAAGX,KAAK,IAAI,CAACK,eAAe,CAACO,OAAO;EAC7D,MAAMC,YAAY,GAAGF,mBAAmB,GACpCjB,KAAK,GACLa,iBAAiB,CAACK,OAAO;EAC7B,MAAME,cAAc,GAAGH,mBAAmB,GACtCd,OAAO,GACPW,mBAAmB,CAACI,OAAO;EAC/B,MAAMG,iBAAiB,GAAGJ,mBAAmB,GACzCb,UAAU,GACVW,sBAAsB,CAACG,OAAO;EAClC,MAAMI,iBAAiB,GAAGL,mBAAmB,GACzCZ,UAAU,GACVW,sBAAsB,CAACE,OAAO;EAElC,IAAID,mBAAmB,EAAE;IACvBN,eAAe,CAACO,OAAO,GAAG,IAAI;IAC9BL,iBAAiB,CAACK,OAAO,GAAGlB,KAAK;IACjCc,mBAAmB,CAACI,OAAO,GAAGf,OAAO;IACrCY,sBAAsB,CAACG,OAAO,GAAGd,UAAU;IAC3CY,sBAAsB,CAACE,OAAO,GAAGb,UAAU;EAC7C;EAEA,MAAMkB,YAAY,GAAG,IAAAX,aAAM,EAACO,YAAY,CAAC;EACzC,MAAMK,sBAAsB,GAAG,IAAAZ,aAAM,EAACa,OAAO,CAACL,cAAc,CAAC,CAAC;EAC9D,MAAMM,iBAAiB,GAAG,IAAAd,aAAM,EAACS,iBAAiB,CAAC;EACnD,MAAMM,cAAc,GAAG,IAAAf,aAAM,EAAC,KAAK,CAAC;EACpC,MAAMgB,aAAa,GACjBH,OAAO,CAACL,cAAc,CAAC,IACvBI,sBAAsB,CAACN,OAAO,IAC9BG,iBAAiB,KAAKK,iBAAiB,CAACR,OAAO;EACjD;EACA,MAAMW,mBAAmB,GAAG,IAAAC,qCAAc,EAAC,CAAC,CAAC;EAC7C,IAAAC,sBAAe,EAAC,MAAM;IACpBF,mBAAmB,CAAC7B,KAAK,GAAG4B,aAAa,GAAG,CAAC,GAAG,CAAC;EACnD,CAAC,EAAE,CAACA,aAAa,EAAEC,mBAAmB,CAAC,CAAC;EACxC,MAAMG,MAAM,GAAG,IAAAC,4BAAa,EAC1Bd,YAAY,EACZV,OAAO,EACPW,cAAc,EACdC,iBACF,CAAC;EACD,MAAMa,sBAAsB,GAAG,IAAAC,cAAO,EACpC,MACE,IAAAC,+CAA4B,EAAC;IAC3BC,UAAU,EAAEpC,YAAY,CAACoC,UAAU;IACnCC,MAAM,EAAErC,YAAY,CAACqC;EACvB,CAAC,CAAC,EACJ,CAACrC,YAAY,CAACoC,UAAU,EAAEpC,YAAY,CAACqC,MAAM,CAC/C,CAAC;EACD,MAAMC,qBAAqB,GAAG,IAAAJ,cAAO,EACnC,MACE,IAAAK,8CAA2B,EAAC;IAC1BH,UAAU,EAAEpC,YAAY,CAACoC,UAAU;IACnCC,MAAM,EAAErC,YAAY,CAACqC,MAAM;IAC3BjC,UAAU,EAAEiB,iBAAiB;IAC7BmB,KAAK,EAAEZ;EACT,CAAC,CAAC,EACJ,CACEP,iBAAiB,EACjBO,mBAAmB,EACnB5B,YAAY,CAACoC,UAAU,EACvBpC,YAAY,CAACqC,MAAM,CAEvB,CAAC;;EAED;EACA,IACEnB,YAAY,KAAKI,YAAY,CAACL,OAAO,IACrCO,OAAO,CAACL,cAAc,CAAC,KAAKI,sBAAsB,CAACN,OAAO,IAC1DG,iBAAiB,KAAKK,iBAAiB,CAACR,OAAO,EAC/C;IACAS,cAAc,CAACT,OAAO,GAAG,IAAI;IAC7BK,YAAY,CAACL,OAAO,GAAGC,YAAY;IACnCK,sBAAsB,CAACN,OAAO,GAAGO,OAAO,CAACL,cAAc,CAAC;IACxDM,iBAAiB,CAACR,OAAO,GAAGG,iBAAiB;EAC/C;EAEA,MAAMqB,WAAW,GAAGf,cAAc,CAACT,OAAO;EAE1C,oBACE,IAAA1C,WAAA,CAAAmE,GAAA,EAACpE,SAAA,CAAAqE,QAAQ;IACPZ,MAAM,EAAEA,MAAO;IACfa,gBAAgB,EACdH,WAAW,GAAGzC,YAAY,CAAC4C,gBAAgB,GAAGC,SAC/C;IACDC,eAAe,EACbpB,cAAc,CAACT,OAAO,GAClBjB,YAAY,CAAC8C,eAAe,GAC5BD,SACL;IACDZ,sBAAsB,EACpBN,aAAa,GAAGM,sBAAsB,GAAGY,SAC1C;IACDE,cAAc,EAAE/C,YAAY,CAAC+C,cAAe;IAC5CT,qBAAqB,EAAEA,qBAAsB;IAC7ClC,UAAU,EAAEiB,iBAAkB;IAC9BpB,KAAK,EAAEA,KAAM;IACbK,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CACF,CAAC;AAEDZ,OAAO,CAACqD,WAAW,GAAG,SAAS","ignoreList":[]}
|