react-native-laminar 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -1
- package/lib/commonjs/index.js +4 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/view/glyph-run.js +13 -1
- package/lib/commonjs/view/glyph-run.js.map +1 -1
- package/lib/commonjs/view/morph-viewport.js +29 -3
- package/lib/commonjs/view/morph-viewport.js.map +1 -1
- package/lib/commonjs/view/number-run.js +13 -1
- package/lib/commonjs/view/number-run.js.map +1 -1
- package/lib/commonjs/view/text-run.js +2 -0
- package/lib/commonjs/view/text-run.js.map +1 -1
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/view/glyph-run.js +13 -1
- package/lib/module/view/glyph-run.js.map +1 -1
- package/lib/module/view/morph-viewport.js +29 -3
- package/lib/module/view/morph-viewport.js.map +1 -1
- package/lib/module/view/number-run.js +13 -1
- package/lib/module/view/number-run.js.map +1 -1
- package/lib/module/view/text-run.js +2 -0
- package/lib/module/view/text-run.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +2 -0
- package/lib/typescript/commonjs/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/glyph-run.d.ts +3 -2
- package/lib/typescript/commonjs/view/glyph-run.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/morph-viewport.d.ts +3 -1
- package/lib/typescript/commonjs/view/morph-viewport.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/number-run.d.ts +3 -2
- package/lib/typescript/commonjs/view/number-run.d.ts.map +1 -1
- package/lib/typescript/commonjs/view/text-run.d.ts +3 -2
- package/lib/typescript/commonjs/view/text-run.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +2 -0
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/lib/typescript/module/view/glyph-run.d.ts +3 -2
- package/lib/typescript/module/view/glyph-run.d.ts.map +1 -1
- package/lib/typescript/module/view/morph-viewport.d.ts +3 -1
- package/lib/typescript/module/view/morph-viewport.d.ts.map +1 -1
- package/lib/typescript/module/view/number-run.d.ts +3 -2
- package/lib/typescript/module/view/number-run.d.ts.map +1 -1
- package/lib/typescript/module/view/text-run.d.ts +3 -2
- package/lib/typescript/module/view/text-run.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +5 -0
- package/src/types.ts +2 -0
- package/src/view/glyph-run.tsx +10 -2
- package/src/view/morph-viewport.tsx +25 -3
- package/src/view/number-run.tsx +10 -2
- package/src/view/text-run.tsx +4 -2
package/README.md
CHANGED
|
@@ -86,6 +86,31 @@ export default function Counter() {
|
|
|
86
86
|
</Pressable>
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
+
### Centered text in a fixed-width container
|
|
90
|
+
|
|
91
|
+
Use `align` when the parent owns the width and Laminar should place the animated row inside that space.
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
<Pressable
|
|
95
|
+
style={{
|
|
96
|
+
width: "100%",
|
|
97
|
+
height: 50,
|
|
98
|
+
alignItems: "center",
|
|
99
|
+
justifyContent: "center",
|
|
100
|
+
borderRadius: 25,
|
|
101
|
+
backgroundColor: "#000000",
|
|
102
|
+
}}
|
|
103
|
+
>
|
|
104
|
+
<Laminar
|
|
105
|
+
text={isFinished ? "Continue and Finish" : "Continue"}
|
|
106
|
+
align="center"
|
|
107
|
+
autoSize={false}
|
|
108
|
+
containerStyle={{ width: "100%" }}
|
|
109
|
+
style={{ color: "#ffffff", fontSize: 24, fontWeight: "700" }}
|
|
110
|
+
/>
|
|
111
|
+
</Pressable>
|
|
112
|
+
```
|
|
113
|
+
|
|
89
114
|
`autoSize` (default `true`) animates the outer container width toward the measured final text width. The button grows and shrinks without layout feedback loops.
|
|
90
115
|
|
|
91
116
|
### Standalone word without auto-sizing
|
|
@@ -93,6 +118,7 @@ export default function Counter() {
|
|
|
93
118
|
```tsx
|
|
94
119
|
<Laminar
|
|
95
120
|
text={word}
|
|
121
|
+
align="center"
|
|
96
122
|
autoSize={false}
|
|
97
123
|
fontSize={40}
|
|
98
124
|
style={{ color: "#000000" }}
|
|
@@ -111,6 +137,7 @@ type LaminarProps = {
|
|
|
111
137
|
variant?: "text" | "number";
|
|
112
138
|
fontSize?: number;
|
|
113
139
|
color?: string;
|
|
140
|
+
align?: "left" | "center" | "right";
|
|
114
141
|
style?: StyleProp<TextStyle>;
|
|
115
142
|
containerStyle?: StyleProp<ViewStyle>;
|
|
116
143
|
fontStyle?: StyleProp<TextStyle>;
|
|
@@ -128,8 +155,9 @@ type LaminarProps = {
|
|
|
128
155
|
| `variant` | `"text"` | `"text"` uses LCS glyph reconciliation. `"number"` uses right-aligned digit lanes. |
|
|
129
156
|
| `fontSize` | Undefined | Convenience prop merged into the text style. |
|
|
130
157
|
| `color` | Undefined | Convenience prop merged into the text style. |
|
|
158
|
+
| `align` | `"left"` | Visual alignment for Laminar's viewport and animated glyph row. |
|
|
131
159
|
| `style` | Undefined | Text style applied after `fontSize` and `color`. |
|
|
132
|
-
| `containerStyle` | Undefined |
|
|
160
|
+
| `containerStyle` | Undefined | Advanced style override for the outer viewport shell. |
|
|
133
161
|
| `fontStyle` | Undefined | Additional text style merged before `style`. |
|
|
134
162
|
| `animationDuration` | Preset default | Duration override in milliseconds. |
|
|
135
163
|
| `animationPreset` | `"default"` for text, `"snappy"` for number | Named motion recipe. |
|
|
@@ -176,6 +204,15 @@ type LaminarProps = {
|
|
|
176
204
|
- Standalone centered words → `autoSize={false}`
|
|
177
205
|
- Fixed-width counters → `autoSize={false}`
|
|
178
206
|
|
|
207
|
+
**Use `align` for visual alignment.**
|
|
208
|
+
|
|
209
|
+
```tsx
|
|
210
|
+
<Laminar text={word} align="center" autoSize={false} />
|
|
211
|
+
<Laminar text={price} variant="number" align="right" autoSize={false} />
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Use `containerStyle` only when you need lower-level control over the outer viewport.
|
|
215
|
+
|
|
179
216
|
**Match formatting across renders for numbers.**
|
|
180
217
|
|
|
181
218
|
Switching between `$1,234` and `1234` mid-session breaks lane alignment. Keep the format consistent.
|
package/lib/commonjs/index.js
CHANGED
|
@@ -20,6 +20,7 @@ const Laminar = exports.Laminar = /*#__PURE__*/_react.default.memo(function Lami
|
|
|
20
20
|
variant = "text",
|
|
21
21
|
fontSize,
|
|
22
22
|
color,
|
|
23
|
+
align = "left",
|
|
23
24
|
className,
|
|
24
25
|
style,
|
|
25
26
|
containerStyle,
|
|
@@ -64,6 +65,7 @@ const Laminar = exports.Laminar = /*#__PURE__*/_react.default.memo(function Lami
|
|
|
64
65
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_morphViewport.MorphViewport, {
|
|
65
66
|
autoSize: autoSize,
|
|
66
67
|
clipToBounds: clipToBounds,
|
|
68
|
+
align: align,
|
|
67
69
|
containerStyle: containerStyle,
|
|
68
70
|
animatedWidthStyle: animatedWidthStyle,
|
|
69
71
|
measurement: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
@@ -75,6 +77,7 @@ const Laminar = exports.Laminar = /*#__PURE__*/_react.default.memo(function Lami
|
|
|
75
77
|
children: variant === "number" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_numberRun.NumberRun, {
|
|
76
78
|
value: resolvedValue,
|
|
77
79
|
motionRecipe: motionRecipe,
|
|
80
|
+
align: align,
|
|
78
81
|
fontSize: fontSize,
|
|
79
82
|
textStyle: textStyle,
|
|
80
83
|
staggerMs: staggerMs,
|
|
@@ -82,6 +85,7 @@ const Laminar = exports.Laminar = /*#__PURE__*/_react.default.memo(function Lami
|
|
|
82
85
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_textRun.TextRun, {
|
|
83
86
|
value: resolvedValue,
|
|
84
87
|
motionRecipe: motionRecipe,
|
|
88
|
+
align: align,
|
|
85
89
|
textStyle: textStyle,
|
|
86
90
|
className: className
|
|
87
91
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_useInlineAutoWidth","_useMorphMotion","_useMorphTextStyle","_displayUnits","_morphViewport","_numberRun","_textRun","_jsxRuntime","e","__esModule","default","Laminar","exports","React","memo","text","variant","fontSize","color","className","style","containerStyle","fontStyle","animationDuration","animationPreset","stagger","autoSize","clipToBounds","resolvedValue","String","motionRecipe","staggerMs","useMorphMotion","textStyle","useMorphTextStyle","captureLayout","animatedWidthStyle","useInlineAutoWidth","enabled","driveToWidth","driveNumber","measuredValue","useMemo","splitDisplayUnits","map","normalizeDisplayUnit","join","jsx","MorphViewport","measurement","Text","numberOfLines","onLayout","children","NumberRun","value","TextRun","MorphingText","_default"],"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,QAAA,GAAAR,OAAA;AAA0C,IAAAS,WAAA,GAAAT,OAAA;AAAA,SAAAD,uBAAAW,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnC,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,SAAS;EACTC,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,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_useInlineAutoWidth","_useMorphMotion","_useMorphTextStyle","_displayUnits","_morphViewport","_numberRun","_textRun","_jsxRuntime","e","__esModule","default","Laminar","exports","React","memo","text","variant","fontSize","color","align","className","style","containerStyle","fontStyle","animationDuration","animationPreset","stagger","autoSize","clipToBounds","resolvedValue","String","motionRecipe","staggerMs","useMorphMotion","textStyle","useMorphTextStyle","captureLayout","animatedWidthStyle","useInlineAutoWidth","enabled","driveToWidth","driveNumber","measuredValue","useMemo","splitDisplayUnits","map","normalizeDisplayUnit","join","jsx","MorphViewport","measurement","Text","numberOfLines","onLayout","children","NumberRun","value","TextRun","MorphingText","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,15 +14,27 @@ const rowStyle = {
|
|
|
14
14
|
alignItems: "center",
|
|
15
15
|
alignSelf: "flex-start"
|
|
16
16
|
};
|
|
17
|
+
const rowAlignStyles = {
|
|
18
|
+
left: {
|
|
19
|
+
alignSelf: "flex-start"
|
|
20
|
+
},
|
|
21
|
+
center: {
|
|
22
|
+
alignSelf: "center"
|
|
23
|
+
},
|
|
24
|
+
right: {
|
|
25
|
+
alignSelf: "flex-end"
|
|
26
|
+
}
|
|
27
|
+
};
|
|
17
28
|
const GlyphRun = exports.GlyphRun = /*#__PURE__*/_react.default.memo(({
|
|
18
29
|
glyphs,
|
|
19
30
|
layoutTransition,
|
|
20
31
|
enterTransition,
|
|
21
32
|
exitTransition,
|
|
33
|
+
align,
|
|
22
34
|
textStyle,
|
|
23
35
|
className
|
|
24
36
|
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
25
|
-
style: rowStyle,
|
|
37
|
+
style: [rowStyle, rowAlignStyles[align]],
|
|
26
38
|
children: glyphs.map(glyph => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.Text, {
|
|
27
39
|
layout: layoutTransition,
|
|
28
40
|
entering: enterTransition,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeReanimated","_jsxRuntime","e","__esModule","default","rowStyle","flexDirection","alignItems","alignSelf","GlyphRun","exports","React","memo","glyphs","layoutTransition","enterTransition","exitTransition","textStyle","className","jsx","View","style","children","map","glyph","Text","layout","entering","exiting","value","id","displayName"],"sourceRoot":"../../../src","sources":["view/glyph-run.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA+C,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAO/C,MAAMG,QAAQ,GAAG;EACfC,aAAa,EAAE,KAAK;EACpBC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE;AACb,CAAU;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeReanimated","_jsxRuntime","e","__esModule","default","rowStyle","flexDirection","alignItems","alignSelf","rowAlignStyles","left","center","right","GlyphRun","exports","React","memo","glyphs","layoutTransition","enterTransition","exitTransition","align","textStyle","className","jsx","View","style","children","map","glyph","Text","layout","entering","exiting","value","id","displayName"],"sourceRoot":"../../../src","sources":["view/glyph-run.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA+C,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAO/C,MAAMG,QAAQ,GAAG;EACfC,aAAa,EAAE,KAAK;EACpBC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE;AACb,CAAU;AAEV,MAAMC,cAAc,GAAG;EACrBC,IAAI,EAAE;IAAEF,SAAS,EAAE;EAAa,CAAC;EACjCG,MAAM,EAAE;IAAEH,SAAS,EAAE;EAAS,CAAC;EAC/BI,KAAK,EAAE;IAAEJ,SAAS,EAAE;EAAW;AACjC,CAAU;AAEH,MAAMK,QAAQ,GAAAC,OAAA,CAAAD,QAAA,gBAAGE,cAAK,CAACC,IAAI,CAChC,CAAC;EACCC,MAAM;EACNC,gBAAgB;EAChBC,eAAe;EACfC,cAAc;EACdC,KAAK;EACLC,SAAS;EACTC;AASD,CAAC,kBACE,IAAAtB,WAAA,CAAAuB,GAAA,EAACzB,YAAA,CAAA0B,IAAI;EAACC,KAAK,EAAE,CAACrB,QAAQ,EAAEI,cAAc,CAACY,KAAK,CAAC,CAAE;EAAAM,QAAA,EAE5CV,MAAM,CAACW,GAAG,CAAEC,KAAK,iBAChB,IAAA5B,WAAA,CAAAuB,GAAA,EAACxB,sBAAA,CAAAI,OAAQ,CAAC0B,IAAI;IAEZC,MAAM,EAAEb,gBAAiB;IACzBc,QAAQ,EAAEb,eAAgB;IAC1Bc,OAAO,EAAEb,cAAe;IACxBM,KAAK,EAAEJ,SAAU;IACjBC,SAAS,EAAEA,SAAU;IAAAI,QAAA,EAEpBE,KAAK,CAACK;EAAK,GAPPL,KAAK,CAACM,EAQE,CAChB;AAAC,CACE,CAEZ,CAAC;AAEDtB,QAAQ,CAACuB,WAAW,GAAG,UAAU","ignoreList":[]}
|
|
@@ -31,17 +31,43 @@ const clippedViewportStyle = {
|
|
|
31
31
|
const unclippedViewportStyle = {
|
|
32
32
|
overflow: "visible"
|
|
33
33
|
};
|
|
34
|
+
const fullWidthViewportStyle = {
|
|
35
|
+
width: "100%"
|
|
36
|
+
};
|
|
37
|
+
const shellAlignStyles = {
|
|
38
|
+
left: {
|
|
39
|
+
alignSelf: "flex-start"
|
|
40
|
+
},
|
|
41
|
+
center: {
|
|
42
|
+
alignSelf: "center"
|
|
43
|
+
},
|
|
44
|
+
right: {
|
|
45
|
+
alignSelf: "flex-end"
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const viewportAlignStyles = {
|
|
49
|
+
left: {
|
|
50
|
+
alignItems: "flex-start"
|
|
51
|
+
},
|
|
52
|
+
center: {
|
|
53
|
+
alignItems: "center"
|
|
54
|
+
},
|
|
55
|
+
right: {
|
|
56
|
+
alignItems: "flex-end"
|
|
57
|
+
}
|
|
58
|
+
};
|
|
34
59
|
const MorphViewport = exports.MorphViewport = /*#__PURE__*/_react.default.memo(({
|
|
35
60
|
autoSize,
|
|
36
61
|
clipToBounds,
|
|
62
|
+
align,
|
|
37
63
|
containerStyle,
|
|
38
64
|
animatedWidthStyle,
|
|
39
65
|
measurement,
|
|
40
66
|
children
|
|
41
67
|
}) => {
|
|
42
|
-
const resolvedViewportStyle = (0, _react.useMemo)(() => [viewportStyle, clipToBounds ? clippedViewportStyle : unclippedViewportStyle], [clipToBounds]);
|
|
68
|
+
const resolvedViewportStyle = (0, _react.useMemo)(() => [viewportStyle, viewportAlignStyles[align], clipToBounds ? clippedViewportStyle : unclippedViewportStyle], [align, clipToBounds]);
|
|
43
69
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
44
|
-
style: [shellStyle, containerStyle],
|
|
70
|
+
style: [shellStyle, shellAlignStyles[align], containerStyle],
|
|
45
71
|
children: autoSize ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
46
72
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
47
73
|
accessibilityElementsHidden: true,
|
|
@@ -55,7 +81,7 @@ const MorphViewport = exports.MorphViewport = /*#__PURE__*/_react.default.memo((
|
|
|
55
81
|
children: children
|
|
56
82
|
})]
|
|
57
83
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
58
|
-
style: resolvedViewportStyle,
|
|
84
|
+
style: [resolvedViewportStyle, fullWidthViewportStyle],
|
|
59
85
|
children: children
|
|
60
86
|
})
|
|
61
87
|
});
|
|
@@ -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","MorphViewport","exports","React","memo","autoSize","clipToBounds","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;
|
|
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":"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","ignoreList":[]}
|
|
@@ -15,9 +15,21 @@ const rowStyle = {
|
|
|
15
15
|
alignItems: "center",
|
|
16
16
|
alignSelf: "flex-start"
|
|
17
17
|
};
|
|
18
|
+
const rowAlignStyles = {
|
|
19
|
+
left: {
|
|
20
|
+
alignSelf: "flex-start"
|
|
21
|
+
},
|
|
22
|
+
center: {
|
|
23
|
+
alignSelf: "center"
|
|
24
|
+
},
|
|
25
|
+
right: {
|
|
26
|
+
alignSelf: "flex-end"
|
|
27
|
+
}
|
|
28
|
+
};
|
|
18
29
|
const NumberRun = exports.NumberRun = /*#__PURE__*/_react.default.memo(({
|
|
19
30
|
value,
|
|
20
31
|
motionRecipe,
|
|
32
|
+
align,
|
|
21
33
|
fontSize,
|
|
22
34
|
textStyle,
|
|
23
35
|
staggerMs,
|
|
@@ -40,7 +52,7 @@ const NumberRun = exports.NumberRun = /*#__PURE__*/_react.default.memo(({
|
|
|
40
52
|
const travelDistance = (0, _react.useMemo)(() => Math.max(8, Math.round((fontSize ?? 16) * 0.4)), [fontSize]);
|
|
41
53
|
const hasAnimated = hasAnimatedRef.current;
|
|
42
54
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
43
|
-
style: rowStyle,
|
|
55
|
+
style: [rowStyle, rowAlignStyles[align]],
|
|
44
56
|
children: units.map((unit, index) => {
|
|
45
57
|
const inLead = index < leadLength;
|
|
46
58
|
const laneKey = inLead ? `lead:${index}` : `lane:${units.length - 1 - index}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useNumericLanes","_numberLane","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","rowStyle","flexDirection","alignItems","alignSelf","NumberRun","exports","React","memo","value","motionRecipe","fontSize","textStyle","staggerMs","className","units","laneKeys","direction","leadLength","useNumericLanes","lastValueRef","useRef","hasAnimatedRef","current","travelDistance","useMemo","Math","max","round","hasAnimated","jsx","View","style","children","map","unit","index","inLead","laneKey","length","NumberLane","tokenKey","isLead","delayMs","displayName"],"sourceRoot":"../../../src","sources":["view/number-run.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAA2C,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,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;AAE3C,MAAMkB,QAAQ,GAAG;EACfC,aAAa,EAAE,KAAK;EACpBC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE;AACb,CAAU;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useNumericLanes","_numberLane","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","rowStyle","flexDirection","alignItems","alignSelf","rowAlignStyles","left","center","right","NumberRun","exports","React","memo","value","motionRecipe","align","fontSize","textStyle","staggerMs","className","units","laneKeys","direction","leadLength","useNumericLanes","lastValueRef","useRef","hasAnimatedRef","current","travelDistance","useMemo","Math","max","round","hasAnimated","jsx","View","style","children","map","unit","index","inLead","laneKey","length","NumberLane","tokenKey","isLead","delayMs","displayName"],"sourceRoot":"../../../src","sources":["view/number-run.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
12
12
|
const TextRun = exports.TextRun = /*#__PURE__*/_react.default.memo(({
|
|
13
13
|
value,
|
|
14
14
|
motionRecipe,
|
|
15
|
+
align,
|
|
15
16
|
textStyle,
|
|
16
17
|
className
|
|
17
18
|
}) => {
|
|
@@ -29,6 +30,7 @@ const TextRun = exports.TextRun = /*#__PURE__*/_react.default.memo(({
|
|
|
29
30
|
layoutTransition: motionRecipe.layoutTransition,
|
|
30
31
|
enterTransition: hasAnimatedRef.current ? motionRecipe.enterTransition : undefined,
|
|
31
32
|
exitTransition: motionRecipe.exitTransition,
|
|
33
|
+
align: align,
|
|
32
34
|
textStyle: textStyle,
|
|
33
35
|
className: className
|
|
34
36
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_useTextGlyphs","_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","textStyle","className","scopeId","useId","glyphs","useTextGlyphs","lastValueRef","useRef","hasAnimatedRef","current","jsx","GlyphRun","layoutTransition","enterTransition","undefined","exitTransition","displayName"],"sourceRoot":"../../../src","sources":["view/text-run.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAAuC,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,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;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_useTextGlyphs","_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","textStyle","className","scopeId","useId","glyphs","useTextGlyphs","lastValueRef","useRef","hasAnimatedRef","current","jsx","GlyphRun","layoutTransition","enterTransition","undefined","exitTransition","displayName"],"sourceRoot":"../../../src","sources":["view/text-run.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAAuC,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,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;AAUhC,MAAMkB,OAAO,GAAAC,OAAA,CAAAD,OAAA,gBAAGE,cAAK,CAACC,IAAI,CAC/B,CAAC;EAAEC,KAAK;EAAEC,YAAY;EAAEC,KAAK;EAAEC,SAAS;EAAEC;AAAwB,CAAC,KAAK;EACtE;EACA,MAAMC,OAAO,GAAG,IAAAC,YAAK,EAAC,CAAC;EACvB,MAAMC,MAAM,GAAG,IAAAC,4BAAa,EAACR,KAAK,EAAEK,OAAO,CAAC;EAC5C,MAAMI,YAAY,GAAG,IAAAC,aAAM,EAACV,KAAK,CAAC;EAClC,MAAMW,cAAc,GAAG,IAAAD,aAAM,EAAC,KAAK,CAAC;EAEpC,IAAIV,KAAK,KAAKS,YAAY,CAACG,OAAO,EAAE;IAClCD,cAAc,CAACC,OAAO,GAAG,IAAI;IAC7BH,YAAY,CAACG,OAAO,GAAGZ,KAAK;EAC9B;EAEA,oBACE,IAAAxB,WAAA,CAAAqC,GAAA,EAACtC,SAAA,CAAAuC,QAAQ;IACPP,MAAM,EAAEA,MAAO;IACfQ,gBAAgB,EAAEd,YAAY,CAACc,gBAAiB;IAChDC,eAAe,EACbL,cAAc,CAACC,OAAO,GAAGX,YAAY,CAACe,eAAe,GAAGC,SACzD;IACDC,cAAc,EAAEjB,YAAY,CAACiB,cAAe;IAC5ChB,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CACF,CAAC;AAEDR,OAAO,CAACuB,WAAW,GAAG,SAAS","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -15,6 +15,7 @@ export const Laminar = /*#__PURE__*/React.memo(function Laminar({
|
|
|
15
15
|
variant = "text",
|
|
16
16
|
fontSize,
|
|
17
17
|
color,
|
|
18
|
+
align = "left",
|
|
18
19
|
className,
|
|
19
20
|
style,
|
|
20
21
|
containerStyle,
|
|
@@ -59,6 +60,7 @@ export const Laminar = /*#__PURE__*/React.memo(function Laminar({
|
|
|
59
60
|
return /*#__PURE__*/_jsx(MorphViewport, {
|
|
60
61
|
autoSize: autoSize,
|
|
61
62
|
clipToBounds: clipToBounds,
|
|
63
|
+
align: align,
|
|
62
64
|
containerStyle: containerStyle,
|
|
63
65
|
animatedWidthStyle: animatedWidthStyle,
|
|
64
66
|
measurement: /*#__PURE__*/_jsx(Text, {
|
|
@@ -70,6 +72,7 @@ export const Laminar = /*#__PURE__*/React.memo(function Laminar({
|
|
|
70
72
|
children: variant === "number" ? /*#__PURE__*/_jsx(NumberRun, {
|
|
71
73
|
value: resolvedValue,
|
|
72
74
|
motionRecipe: motionRecipe,
|
|
75
|
+
align: align,
|
|
73
76
|
fontSize: fontSize,
|
|
74
77
|
textStyle: textStyle,
|
|
75
78
|
staggerMs: staggerMs,
|
|
@@ -77,6 +80,7 @@ export const Laminar = /*#__PURE__*/React.memo(function Laminar({
|
|
|
77
80
|
}) : /*#__PURE__*/_jsx(TextRun, {
|
|
78
81
|
value: resolvedValue,
|
|
79
82
|
motionRecipe: motionRecipe,
|
|
83
|
+
align: align,
|
|
80
84
|
textStyle: textStyle,
|
|
81
85
|
className: className
|
|
82
86
|
})
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Text","useInlineAutoWidth","useMorphMotion","useMorphTextStyle","normalizeDisplayUnit","splitDisplayUnits","MorphViewport","NumberRun","TextRun","jsx","_jsx","Laminar","memo","text","variant","fontSize","color","className","style","containerStyle","fontStyle","animationDuration","animationPreset","stagger","autoSize","clipToBounds","resolvedValue","String","motionRecipe","staggerMs","textStyle","captureLayout","animatedWidthStyle","enabled","driveToWidth","driveNumber","measuredValue","useMemo","map","join","measurement","numberOfLines","onLayout","children","value","MorphingText"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,kBAAkB,QAAQ,kCAA+B;AAClE,SAASC,cAAc,QAAQ,6BAA0B;AACzD,SAASC,iBAAiB,QAAQ,iCAA8B;AAChE,SACEC,oBAAoB,EACpBC,iBAAiB,QACZ,0BAAuB;AAE9B,SAASC,aAAa,QAAQ,0BAAuB;AACrD,SAASC,SAAS,QAAQ,sBAAmB;AAC7C,SAASC,OAAO,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1C,OAAO,MAAMC,OAAO,gBAAGZ,KAAK,CAACa,IAAI,CAAC,SAASD,OAAOA,CAAC;EAC/CE,IAAI;EACJC,OAAO,GAAG,MAAM;EAChBC,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,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,
|
|
1
|
+
{"version":3,"names":["React","Text","useInlineAutoWidth","useMorphMotion","useMorphTextStyle","normalizeDisplayUnit","splitDisplayUnits","MorphViewport","NumberRun","TextRun","jsx","_jsx","Laminar","memo","text","variant","fontSize","color","align","className","style","containerStyle","fontStyle","animationDuration","animationPreset","stagger","autoSize","clipToBounds","resolvedValue","String","motionRecipe","staggerMs","textStyle","captureLayout","animatedWidthStyle","enabled","driveToWidth","driveNumber","measuredValue","useMemo","map","join","measurement","numberOfLines","onLayout","children","value","MorphingText"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,kBAAkB,QAAQ,kCAA+B;AAClE,SAASC,cAAc,QAAQ,6BAA0B;AACzD,SAASC,iBAAiB,QAAQ,iCAA8B;AAChE,SACEC,oBAAoB,EACpBC,iBAAiB,QACZ,0BAAuB;AAE9B,SAASC,aAAa,QAAQ,0BAAuB;AACrD,SAASC,SAAS,QAAQ,sBAAmB;AAC7C,SAASC,OAAO,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1C,OAAO,MAAMC,OAAO,gBAAGZ,KAAK,CAACa,IAAI,CAAC,SAASD,OAAOA,CAAC;EAC/CE,IAAI;EACJC,OAAO,GAAG,MAAM;EAChBC,QAAQ;EACRC,KAAK;EACLC,KAAK,GAAG,MAAM;EACdC,SAAS;EACTC,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,CAACf,IAAI,IAAI,EAAE,CAAC;EACxC,MAAM;IAAEgB,YAAY;IAAEC;EAAU,CAAC,GAAG5B,cAAc,CAAC;IACjDY,OAAO;IACPS,eAAe;IACfD,iBAAiB;IACjBE;EACF,CAAC,CAAC;EACF,MAAM;IAAEO;EAAU,CAAC,GAAG5B,iBAAiB,CAAC;IACtCY,QAAQ;IACRC,KAAK;IACLK,SAAS;IACTF;EACF,CAAC,CAAC;EAEF,MAAM;IAAEa,aAAa;IAAEC;EAAmB,CAAC,GAAGhC,kBAAkB,CAAC;IAC/DiC,OAAO,EAAET,QAAQ;IACjBU,YAAY,EAAEN,YAAY,CAACO;EAC7B,CAAC,CAAC;EACF,MAAMC,aAAa,GAAGtC,KAAK,CAACuC,OAAO,CAAC,MAAM;IACxC,IAAI,CAACb,QAAQ,EAAE;MACb,OAAO,EAAE;IACX;IAEA,OAAOpB,iBAAiB,CAACsB,aAAa,CAAC,CAACY,GAAG,CAACnC,oBAAoB,CAAC,CAACoC,IAAI,CAAC,EAAE,CAAC;EAC5E,CAAC,EAAE,CAACf,QAAQ,EAAEE,aAAa,CAAC,CAAC;EAE7B,oBACEjB,IAAA,CAACJ,aAAa;IACZmB,QAAQ,EAAEA,QAAS;IACnBC,YAAY,EAAEA,YAAa;IAC3BT,KAAK,EAAEA,KAAM;IACbG,cAAc,EAAEA,cAAe;IAC/Ba,kBAAkB,EAAEA,kBAAmB;IACvCQ,WAAW,eACT/B,IAAA,CAACV,IAAI;MACH0C,aAAa,EAAE,CAAE;MACjBC,QAAQ,EAAEX,aAAc;MACxBb,KAAK,EAAEY,SAAU;MAAAa,QAAA,EAEhBP;IAAa,CACV,CACP;IAAAO,QAAA,EAEA9B,OAAO,KAAK,QAAQ,gBACnBJ,IAAA,CAACH,SAAS;MACRsC,KAAK,EAAElB,aAAc;MACrBE,YAAY,EAAEA,YAAa;MAC3BZ,KAAK,EAAEA,KAAM;MACbF,QAAQ,EAAEA,QAAS;MACnBgB,SAAS,EAAEA,SAAU;MACrBD,SAAS,EAAEA,SAAU;MACrBZ,SAAS,EAAEA;IAAU,CACtB,CAAC,gBAEFR,IAAA,CAACF,OAAO;MACNqC,KAAK,EAAElB,aAAc;MACrBE,YAAY,EAAEA,YAAa;MAC3BZ,KAAK,EAAEA,KAAM;MACbc,SAAS,EAAEA,SAAU;MACrBb,SAAS,EAAEA;IAAU,CACtB;EACJ,CACY,CAAC;AAElB,CAAC,CAAC;AAEJ,OAAO,MAAM4B,YAAY,GAAGnC,OAAO;AAEnC,eAAeA,OAAO","ignoreList":[]}
|
|
@@ -9,15 +9,27 @@ const rowStyle = {
|
|
|
9
9
|
alignItems: "center",
|
|
10
10
|
alignSelf: "flex-start"
|
|
11
11
|
};
|
|
12
|
+
const rowAlignStyles = {
|
|
13
|
+
left: {
|
|
14
|
+
alignSelf: "flex-start"
|
|
15
|
+
},
|
|
16
|
+
center: {
|
|
17
|
+
alignSelf: "center"
|
|
18
|
+
},
|
|
19
|
+
right: {
|
|
20
|
+
alignSelf: "flex-end"
|
|
21
|
+
}
|
|
22
|
+
};
|
|
12
23
|
export const GlyphRun = /*#__PURE__*/React.memo(({
|
|
13
24
|
glyphs,
|
|
14
25
|
layoutTransition,
|
|
15
26
|
enterTransition,
|
|
16
27
|
exitTransition,
|
|
28
|
+
align,
|
|
17
29
|
textStyle,
|
|
18
30
|
className
|
|
19
31
|
}) => /*#__PURE__*/_jsx(View, {
|
|
20
|
-
style: rowStyle,
|
|
32
|
+
style: [rowStyle, rowAlignStyles[align]],
|
|
21
33
|
children: glyphs.map(glyph => /*#__PURE__*/_jsx(Animated.Text, {
|
|
22
34
|
layout: layoutTransition,
|
|
23
35
|
entering: enterTransition,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Animated","jsx","_jsx","rowStyle","flexDirection","alignItems","alignSelf","GlyphRun","memo","glyphs","layoutTransition","enterTransition","exitTransition","textStyle","className","style","children","map","glyph","Text","layout","entering","exiting","value","id","displayName"],"sourceRoot":"../../../src","sources":["view/glyph-run.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAyCC,IAAI,QAAQ,cAAc;AACnE,OAAOC,QAAQ,MAAM,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO/C,MAAMC,QAAQ,GAAG;EACfC,aAAa,EAAE,KAAK;EACpBC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE;AACb,CAAU;AAEV,OAAO,
|
|
1
|
+
{"version":3,"names":["React","View","Animated","jsx","_jsx","rowStyle","flexDirection","alignItems","alignSelf","rowAlignStyles","left","center","right","GlyphRun","memo","glyphs","layoutTransition","enterTransition","exitTransition","align","textStyle","className","style","children","map","glyph","Text","layout","entering","exiting","value","id","displayName"],"sourceRoot":"../../../src","sources":["view/glyph-run.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAyCC,IAAI,QAAQ,cAAc;AACnE,OAAOC,QAAQ,MAAM,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO/C,MAAMC,QAAQ,GAAG;EACfC,aAAa,EAAE,KAAK;EACpBC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE;AACb,CAAU;AAEV,MAAMC,cAAc,GAAG;EACrBC,IAAI,EAAE;IAAEF,SAAS,EAAE;EAAa,CAAC;EACjCG,MAAM,EAAE;IAAEH,SAAS,EAAE;EAAS,CAAC;EAC/BI,KAAK,EAAE;IAAEJ,SAAS,EAAE;EAAW;AACjC,CAAU;AAEV,OAAO,MAAMK,QAAQ,gBAAGb,KAAK,CAACc,IAAI,CAChC,CAAC;EACCC,MAAM;EACNC,gBAAgB;EAChBC,eAAe;EACfC,cAAc;EACdC,KAAK;EACLC,SAAS;EACTC;AASD,CAAC,kBACEjB,IAAA,CAACH,IAAI;EAACqB,KAAK,EAAE,CAACjB,QAAQ,EAAEI,cAAc,CAACU,KAAK,CAAC,CAAE;EAAAI,QAAA,EAE5CR,MAAM,CAACS,GAAG,CAAEC,KAAK,iBAChBrB,IAAA,CAACF,QAAQ,CAACwB,IAAI;IAEZC,MAAM,EAAEX,gBAAiB;IACzBY,QAAQ,EAAEX,eAAgB;IAC1BY,OAAO,EAAEX,cAAe;IACxBI,KAAK,EAAEF,SAAU;IACjBC,SAAS,EAAEA,SAAU;IAAAE,QAAA,EAEpBE,KAAK,CAACK;EAAK,GAPPL,KAAK,CAACM,EAQE,CAChB;AAAC,CACE,CAEZ,CAAC;AAEDlB,QAAQ,CAACmB,WAAW,GAAG,UAAU","ignoreList":[]}
|
|
@@ -25,17 +25,43 @@ const clippedViewportStyle = {
|
|
|
25
25
|
const unclippedViewportStyle = {
|
|
26
26
|
overflow: "visible"
|
|
27
27
|
};
|
|
28
|
+
const fullWidthViewportStyle = {
|
|
29
|
+
width: "100%"
|
|
30
|
+
};
|
|
31
|
+
const shellAlignStyles = {
|
|
32
|
+
left: {
|
|
33
|
+
alignSelf: "flex-start"
|
|
34
|
+
},
|
|
35
|
+
center: {
|
|
36
|
+
alignSelf: "center"
|
|
37
|
+
},
|
|
38
|
+
right: {
|
|
39
|
+
alignSelf: "flex-end"
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const viewportAlignStyles = {
|
|
43
|
+
left: {
|
|
44
|
+
alignItems: "flex-start"
|
|
45
|
+
},
|
|
46
|
+
center: {
|
|
47
|
+
alignItems: "center"
|
|
48
|
+
},
|
|
49
|
+
right: {
|
|
50
|
+
alignItems: "flex-end"
|
|
51
|
+
}
|
|
52
|
+
};
|
|
28
53
|
export const MorphViewport = /*#__PURE__*/React.memo(({
|
|
29
54
|
autoSize,
|
|
30
55
|
clipToBounds,
|
|
56
|
+
align,
|
|
31
57
|
containerStyle,
|
|
32
58
|
animatedWidthStyle,
|
|
33
59
|
measurement,
|
|
34
60
|
children
|
|
35
61
|
}) => {
|
|
36
|
-
const resolvedViewportStyle = useMemo(() => [viewportStyle, clipToBounds ? clippedViewportStyle : unclippedViewportStyle], [clipToBounds]);
|
|
62
|
+
const resolvedViewportStyle = useMemo(() => [viewportStyle, viewportAlignStyles[align], clipToBounds ? clippedViewportStyle : unclippedViewportStyle], [align, clipToBounds]);
|
|
37
63
|
return /*#__PURE__*/_jsx(View, {
|
|
38
|
-
style: [shellStyle, containerStyle],
|
|
64
|
+
style: [shellStyle, shellAlignStyles[align], containerStyle],
|
|
39
65
|
children: autoSize ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
40
66
|
children: [/*#__PURE__*/_jsx(View, {
|
|
41
67
|
accessibilityElementsHidden: true,
|
|
@@ -49,7 +75,7 @@ export const MorphViewport = /*#__PURE__*/React.memo(({
|
|
|
49
75
|
children: children
|
|
50
76
|
})]
|
|
51
77
|
}) : /*#__PURE__*/_jsx(View, {
|
|
52
|
-
style: resolvedViewportStyle,
|
|
78
|
+
style: [resolvedViewportStyle, fullWidthViewportStyle],
|
|
53
79
|
children: children
|
|
54
80
|
})
|
|
55
81
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","View","Animated","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","shellStyle","position","alignSelf","viewportStyle","measuredContentStyle","left","top","opacity","flexShrink","clippedViewportStyle","overflow","unclippedViewportStyle","MorphViewport","memo","autoSize","clipToBounds","containerStyle","animatedWidthStyle","measurement","children","resolvedViewportStyle","style","accessibilityElementsHidden","collapsable","importantForAccessibility","pointerEvents","displayName"],"sourceRoot":"../../../src","sources":["view/morph-viewport.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AAEtC,SAASC,IAAI,QAAQ,cAAc;AACnC,OAAOC,QAAQ,MAAM,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["React","useMemo","View","Animated","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","shellStyle","position","alignSelf","viewportStyle","measuredContentStyle","left","top","opacity","flexShrink","clippedViewportStyle","overflow","unclippedViewportStyle","fullWidthViewportStyle","width","shellAlignStyles","center","right","viewportAlignStyles","alignItems","MorphViewport","memo","autoSize","clipToBounds","align","containerStyle","animatedWidthStyle","measurement","children","resolvedViewportStyle","style","accessibilityElementsHidden","collapsable","importantForAccessibility","pointerEvents","displayName"],"sourceRoot":"../../../src","sources":["view/morph-viewport.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AAEtC,SAASC,IAAI,QAAQ,cAAc;AACnC,OAAOC,QAAQ,MAAM,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C,MAAMC,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;AAYD,OAAO,MAAMC,aAAa,gBAAG7B,KAAK,CAAC8B,IAAI,CACrC,CAAC;EACCC,QAAQ;EACRC,YAAY;EACZC,KAAK;EACLC,cAAc;EACdC,kBAAkB;EAClBC,WAAW;EACXC;AACkB,CAAC,KAAK;EACxB,MAAMC,qBAAqB,GAAGrC,OAAO,CACnC,MAAM,CACJY,aAAa,EACbc,mBAAmB,CAACM,KAAK,CAAC,EAC1BD,YAAY,GAAGb,oBAAoB,GAAGE,sBAAsB,CAC7D,EACD,CAACY,KAAK,EAAED,YAAY,CACtB,CAAC;EAED,oBACE3B,IAAA,CAACH,IAAI;IAACqC,KAAK,EAAE,CAAC7B,UAAU,EAAEc,gBAAgB,CAACS,KAAK,CAAC,EAAEC,cAAc,CAAE;IAAAG,QAAA,EAChEN,QAAQ,gBACPtB,KAAA,CAAAF,SAAA;MAAA8B,QAAA,gBACEhC,IAAA,CAACH,IAAI;QACHsC,2BAA2B;QAC3BC,WAAW,EAAE,KAAM;QACnBC,yBAAyB,EAAC,qBAAqB;QAC/CC,aAAa,EAAC,MAAM;QACpBJ,KAAK,EAAEzB,oBAAqB;QAAAuB,QAAA,EAE3BD;MAAW,CACR,CAAC,eACP/B,IAAA,CAACF,QAAQ,CAACD,IAAI;QAACqC,KAAK,EAAE,CAACD,qBAAqB,EAAEH,kBAAkB,CAAE;QAAAE,QAAA,EAC/DA;MAAQ,CACI,CAAC;IAAA,CAChB,CAAC,gBAEHhC,IAAA,CAACH,IAAI;MAACqC,KAAK,EAAE,CAACD,qBAAqB,EAAEhB,sBAAsB,CAAE;MAAAe,QAAA,EAC1DA;IAAQ,CACL;EACP,CACG,CAAC;AAEX,CACF,CAAC;AAEDR,aAAa,CAACe,WAAW,GAAG,eAAe","ignoreList":[]}
|
|
@@ -10,9 +10,21 @@ const rowStyle = {
|
|
|
10
10
|
alignItems: "center",
|
|
11
11
|
alignSelf: "flex-start"
|
|
12
12
|
};
|
|
13
|
+
const rowAlignStyles = {
|
|
14
|
+
left: {
|
|
15
|
+
alignSelf: "flex-start"
|
|
16
|
+
},
|
|
17
|
+
center: {
|
|
18
|
+
alignSelf: "center"
|
|
19
|
+
},
|
|
20
|
+
right: {
|
|
21
|
+
alignSelf: "flex-end"
|
|
22
|
+
}
|
|
23
|
+
};
|
|
13
24
|
export const NumberRun = /*#__PURE__*/React.memo(({
|
|
14
25
|
value,
|
|
15
26
|
motionRecipe,
|
|
27
|
+
align,
|
|
16
28
|
fontSize,
|
|
17
29
|
textStyle,
|
|
18
30
|
staggerMs,
|
|
@@ -35,7 +47,7 @@ export const NumberRun = /*#__PURE__*/React.memo(({
|
|
|
35
47
|
const travelDistance = useMemo(() => Math.max(8, Math.round((fontSize ?? 16) * 0.4)), [fontSize]);
|
|
36
48
|
const hasAnimated = hasAnimatedRef.current;
|
|
37
49
|
return /*#__PURE__*/_jsx(View, {
|
|
38
|
-
style: rowStyle,
|
|
50
|
+
style: [rowStyle, rowAlignStyles[align]],
|
|
39
51
|
children: units.map((unit, index) => {
|
|
40
52
|
const inLead = index < leadLength;
|
|
41
53
|
const laneKey = inLead ? `lead:${index}` : `lane:${units.length - 1 - index}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","useRef","View","useNumericLanes","NumberLane","jsx","_jsx","rowStyle","flexDirection","alignItems","alignSelf","NumberRun","memo","value","motionRecipe","fontSize","textStyle","staggerMs","className","units","laneKeys","direction","leadLength","lastValueRef","hasAnimatedRef","current","travelDistance","Math","max","round","hasAnimated","style","children","map","unit","index","inLead","laneKey","length","tokenKey","isLead","delayMs","displayName"],"sourceRoot":"../../../src","sources":["view/number-run.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAC9C,SAAyCC,IAAI,QAAQ,cAAc;AACnE,SAASC,eAAe,QAAQ,+BAA4B;AAE5D,SAASC,UAAU,QAAQ,kBAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3C,MAAMC,QAAQ,GAAG;EACfC,aAAa,EAAE,KAAK;EACpBC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE;AACb,CAAU;
|
|
1
|
+
{"version":3,"names":["React","useMemo","useRef","View","useNumericLanes","NumberLane","jsx","_jsx","rowStyle","flexDirection","alignItems","alignSelf","rowAlignStyles","left","center","right","NumberRun","memo","value","motionRecipe","align","fontSize","textStyle","staggerMs","className","units","laneKeys","direction","leadLength","lastValueRef","hasAnimatedRef","current","travelDistance","Math","max","round","hasAnimated","style","children","map","unit","index","inLead","laneKey","length","tokenKey","isLead","delayMs","displayName"],"sourceRoot":"../../../src","sources":["view/number-run.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAC9C,SAAyCC,IAAI,QAAQ,cAAc;AACnE,SAASC,eAAe,QAAQ,+BAA4B;AAE5D,SAASC,UAAU,QAAQ,kBAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3C,MAAMC,QAAQ,GAAG;EACfC,aAAa,EAAE,KAAK;EACpBC,UAAU,EAAE,QAAQ;EACpBC,SAAS,EAAE;AACb,CAAU;AAEV,MAAMC,cAAc,GAAG;EACrBC,IAAI,EAAE;IAAEF,SAAS,EAAE;EAAa,CAAC;EACjCG,MAAM,EAAE;IAAEH,SAAS,EAAE;EAAS,CAAC;EAC/BI,KAAK,EAAE;IAAEJ,SAAS,EAAE;EAAW;AACjC,CAAU;AAYV,OAAO,MAAMK,SAAS,gBAAGhB,KAAK,CAACiB,IAAI,CACjC,CAAC;EACCC,KAAK;EACLC,YAAY;EACZC,KAAK;EACLC,QAAQ;EACRC,SAAS;EACTC,SAAS;EACTC;AACwB,CAAC,KAAK;EAC9B,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAGxB,eAAe,CAACc,KAAK,CAAC;EACzE,MAAMW,YAAY,GAAG3B,MAAM,CAACgB,KAAK,CAAC;EAClC,MAAMY,cAAc,GAAG5B,MAAM,CAAC,KAAK,CAAC;;EAEpC;EACA,IAAIgB,KAAK,KAAKW,YAAY,CAACE,OAAO,EAAE;IAClCD,cAAc,CAACC,OAAO,GAAG,IAAI;IAC7BF,YAAY,CAACE,OAAO,GAAGb,KAAK;EAC9B;EAEA,MAAMc,cAAc,GAAG/B,OAAO,CAC5B,MAAMgC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAAC,CAACd,QAAQ,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,EACrD,CAACA,QAAQ,CACX,CAAC;EACD,MAAMe,WAAW,GAAGN,cAAc,CAACC,OAAO;EAE1C,oBACExB,IAAA,CAACJ,IAAI;IAACkC,KAAK,EAAE,CAAC7B,QAAQ,EAAEI,cAAc,CAACQ,KAAK,CAAC,CAAE;IAAAkB,QAAA,EAC5Cb,KAAK,CAACc,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;MAC1B,MAAMC,MAAM,GAAGD,KAAK,GAAGb,UAAU;MACjC,MAAMe,OAAO,GAAGD,MAAM,GAClB,QAAQD,KAAK,EAAE,GACf,QAAQhB,KAAK,CAACmB,MAAM,GAAG,CAAC,GAAGH,KAAK,EAAE;MAEtC,oBACElC,IAAA,CAACF,UAAU;QAETmC,IAAI,EAAEA,IAAK;QACXK,QAAQ,EAAEnB,QAAQ,CAACe,KAAK,CAAE;QAC1BK,MAAM,EAAEJ,MAAO;QACfN,WAAW,EAAEA,WAAY;QACzBW,OAAO,EAAEN,KAAK,GAAGlB,SAAU;QAC3BI,SAAS,EAAEA,SAAU;QACrBK,cAAc,EAAEA,cAAe;QAC/Bb,YAAY,EAAEA,YAAa;QAC3BG,SAAS,EAAEA,SAAU;QACrBE,SAAS,EAAEA;MAAU,GAVhBmB,OAWN,CAAC;IAEN,CAAC;EAAC,CACE,CAAC;AAEX,CACF,CAAC;AAED3B,SAAS,CAACgC,WAAW,GAAG,WAAW","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
7
7
|
export const TextRun = /*#__PURE__*/React.memo(({
|
|
8
8
|
value,
|
|
9
9
|
motionRecipe,
|
|
10
|
+
align,
|
|
10
11
|
textStyle,
|
|
11
12
|
className
|
|
12
13
|
}) => {
|
|
@@ -24,6 +25,7 @@ export const TextRun = /*#__PURE__*/React.memo(({
|
|
|
24
25
|
layoutTransition: motionRecipe.layoutTransition,
|
|
25
26
|
enterTransition: hasAnimatedRef.current ? motionRecipe.enterTransition : undefined,
|
|
26
27
|
exitTransition: motionRecipe.exitTransition,
|
|
28
|
+
align: align,
|
|
27
29
|
textStyle: textStyle,
|
|
28
30
|
className: className
|
|
29
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useId","useRef","useTextGlyphs","GlyphRun","jsx","_jsx","TextRun","memo","value","motionRecipe","textStyle","className","scopeId","glyphs","lastValueRef","hasAnimatedRef","current","layoutTransition","enterTransition","undefined","exitTransition","displayName"],"sourceRoot":"../../../src","sources":["view/text-run.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,KAAK,EAAEC,MAAM,QAAQ,OAAO;AAE5C,SAASC,aAAa,QAAQ,6BAA0B;AAExD,SAASC,QAAQ,QAAQ,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["React","useId","useRef","useTextGlyphs","GlyphRun","jsx","_jsx","TextRun","memo","value","motionRecipe","align","textStyle","className","scopeId","glyphs","lastValueRef","hasAnimatedRef","current","layoutTransition","enterTransition","undefined","exitTransition","displayName"],"sourceRoot":"../../../src","sources":["view/text-run.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,KAAK,EAAEC,MAAM,QAAQ,OAAO;AAE5C,SAASC,aAAa,QAAQ,6BAA0B;AAExD,SAASC,QAAQ,QAAQ,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUvC,OAAO,MAAMC,OAAO,gBAAGP,KAAK,CAACQ,IAAI,CAC/B,CAAC;EAAEC,KAAK;EAAEC,YAAY;EAAEC,KAAK;EAAEC,SAAS;EAAEC;AAAwB,CAAC,KAAK;EACtE;EACA,MAAMC,OAAO,GAAGb,KAAK,CAAC,CAAC;EACvB,MAAMc,MAAM,GAAGZ,aAAa,CAACM,KAAK,EAAEK,OAAO,CAAC;EAC5C,MAAME,YAAY,GAAGd,MAAM,CAACO,KAAK,CAAC;EAClC,MAAMQ,cAAc,GAAGf,MAAM,CAAC,KAAK,CAAC;EAEpC,IAAIO,KAAK,KAAKO,YAAY,CAACE,OAAO,EAAE;IAClCD,cAAc,CAACC,OAAO,GAAG,IAAI;IAC7BF,YAAY,CAACE,OAAO,GAAGT,KAAK;EAC9B;EAEA,oBACEH,IAAA,CAACF,QAAQ;IACPW,MAAM,EAAEA,MAAO;IACfI,gBAAgB,EAAET,YAAY,CAACS,gBAAiB;IAChDC,eAAe,EACbH,cAAc,CAACC,OAAO,GAAGR,YAAY,CAACU,eAAe,GAAGC,SACzD;IACDC,cAAc,EAAEZ,YAAY,CAACY,cAAe;IAC5CX,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CACF,CAAC;AAEDN,OAAO,CAACgB,WAAW,GAAG,SAAS","ignoreList":[]}
|
|
@@ -3,5 +3,5 @@ import type { MorphingTextProps } from "./types";
|
|
|
3
3
|
export declare const Laminar: React.NamedExoticComponent<Readonly<MorphingTextProps>>;
|
|
4
4
|
export declare const MorphingText: React.NamedExoticComponent<Readonly<MorphingTextProps>>;
|
|
5
5
|
export default Laminar;
|
|
6
|
-
export type { LaminarProps, MorphAnimationPresetName, MorphContentVariant, MorphingTextProps, } from "./types";
|
|
6
|
+
export type { LaminarAlign, LaminarProps, MorphAnimationPresetName, MorphContentVariant, MorphingTextProps, } from "./types";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKjD,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKjD,eAAO,MAAM,OAAO,yDAgFhB,CAAC;AAEL,eAAO,MAAM,YAAY,yDAAU,CAAC;AAEpC,eAAe,OAAO,CAAC;AACvB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { StyleProp, TextStyle, ViewStyle } from "react-native";
|
|
|
2
2
|
import type { ComplexAnimationBuilder, EntryExitAnimationFunction, WithTimingConfig } from "react-native-reanimated";
|
|
3
3
|
export type MorphAnimationPresetName = "default" | "smooth" | "snappy" | "bouncy";
|
|
4
4
|
export type MorphContentVariant = "text" | "number";
|
|
5
|
+
export type LaminarAlign = "left" | "center" | "right";
|
|
5
6
|
type CubicBezierTuple = readonly [number, number, number, number];
|
|
6
7
|
export type MorphAnimationPreset = {
|
|
7
8
|
readonly duration: number;
|
|
@@ -29,6 +30,7 @@ export type MorphingTextProps = {
|
|
|
29
30
|
readonly variant?: MorphContentVariant;
|
|
30
31
|
readonly fontSize?: number;
|
|
31
32
|
readonly color?: string;
|
|
33
|
+
readonly align?: LaminarAlign;
|
|
32
34
|
readonly className?: string;
|
|
33
35
|
readonly style?: StyleProp<TextStyle>;
|
|
34
36
|
readonly containerStyle?: StyleProp<ViewStyle>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvD,KAAK,gBAAgB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAElE,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;IACnD,QAAQ,CAAC,eAAe,EAAE,0BAA0B,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type StyleProp, type TextStyle } from "react-native";
|
|
3
3
|
import type { ComplexAnimationBuilder, EntryExitAnimationFunction } from "react-native-reanimated";
|
|
4
|
-
import type { GlyphToken } from "../types";
|
|
5
|
-
export declare const GlyphRun: React.MemoExoticComponent<({ glyphs, layoutTransition, enterTransition, exitTransition, textStyle, className, }: Readonly<{
|
|
4
|
+
import type { GlyphToken, LaminarAlign } from "../types";
|
|
5
|
+
export declare const GlyphRun: React.MemoExoticComponent<({ glyphs, layoutTransition, enterTransition, exitTransition, align, textStyle, className, }: Readonly<{
|
|
6
6
|
glyphs: readonly GlyphToken[];
|
|
7
7
|
layoutTransition: ComplexAnimationBuilder;
|
|
8
8
|
enterTransition?: EntryExitAnimationFunction;
|
|
9
9
|
exitTransition?: EntryExitAnimationFunction;
|
|
10
|
+
align: LaminarAlign;
|
|
10
11
|
textStyle?: StyleProp<TextStyle>;
|
|
11
12
|
className?: string;
|
|
12
13
|
}>) => React.JSX.Element>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glyph-run.d.ts","sourceRoot":"","sources":["../../../../src/view/glyph-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAQ,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"glyph-run.d.ts","sourceRoot":"","sources":["../../../../src/view/glyph-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAQ,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAczD,eAAO,MAAM,QAAQ,0HAShB,QAAQ,CAAC;IACV,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,eAAe,CAAC,EAAE,0BAA0B,CAAC;IAC7C,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,uBAiBH,CAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { StyleProp, ViewStyle } from "react-native";
|
|
3
3
|
import Animated from "react-native-reanimated";
|
|
4
|
+
import type { LaminarAlign } from "../types";
|
|
4
5
|
type MorphViewportProps = {
|
|
5
6
|
readonly autoSize: boolean;
|
|
6
7
|
readonly clipToBounds: boolean;
|
|
8
|
+
readonly align: LaminarAlign;
|
|
7
9
|
readonly containerStyle?: StyleProp<ViewStyle>;
|
|
8
10
|
readonly animatedWidthStyle?: React.ComponentProps<typeof Animated.View>["style"];
|
|
9
11
|
readonly measurement?: React.ReactNode;
|
|
10
12
|
readonly children: React.ReactNode;
|
|
11
13
|
};
|
|
12
|
-
export declare const MorphViewport: React.MemoExoticComponent<({ autoSize, clipToBounds, containerStyle, animatedWidthStyle, measurement, children, }: MorphViewportProps) => React.JSX.Element>;
|
|
14
|
+
export declare const MorphViewport: React.MemoExoticComponent<({ autoSize, clipToBounds, align, containerStyle, animatedWidthStyle, measurement, children, }: MorphViewportProps) => React.JSX.Element>;
|
|
13
15
|
export {};
|
|
14
16
|
//# sourceMappingURL=morph-viewport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morph-viewport.d.ts","sourceRoot":"","sources":["../../../../src/view/morph-viewport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"morph-viewport.d.ts","sourceRoot":"","sources":["../../../../src/view/morph-viewport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA4C7C,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,aAAa,4HASrB,kBAAkB,uBAmCtB,CAAC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type StyleProp, type TextStyle } from "react-native";
|
|
3
|
-
import type { MotionRecipe } from "../types";
|
|
3
|
+
import type { LaminarAlign, MotionRecipe } from "../types";
|
|
4
4
|
type NumberRunProps = {
|
|
5
5
|
readonly value: string;
|
|
6
6
|
readonly motionRecipe: MotionRecipe;
|
|
7
|
+
readonly align: LaminarAlign;
|
|
7
8
|
readonly fontSize?: number;
|
|
8
9
|
readonly textStyle?: StyleProp<TextStyle>;
|
|
9
10
|
readonly staggerMs: number;
|
|
10
11
|
readonly className?: string;
|
|
11
12
|
};
|
|
12
|
-
export declare const NumberRun: React.MemoExoticComponent<({ value, motionRecipe, fontSize, textStyle, staggerMs, className, }: Readonly<NumberRunProps>) => React.JSX.Element>;
|
|
13
|
+
export declare const NumberRun: React.MemoExoticComponent<({ value, motionRecipe, align, fontSize, textStyle, staggerMs, className, }: Readonly<NumberRunProps>) => React.JSX.Element>;
|
|
13
14
|
export {};
|
|
14
15
|
//# sourceMappingURL=number-run.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-run.d.ts","sourceRoot":"","sources":["../../../../src/view/number-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAQ,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"number-run.d.ts","sourceRoot":"","sources":["../../../../src/view/number-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAQ,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAe3D,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,SAAS,yGASjB,QAAQ,CAAC,cAAc,CAAC,uBA4C5B,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { StyleProp, TextStyle } from "react-native";
|
|
3
|
-
import type { MotionRecipe } from "../types";
|
|
3
|
+
import type { LaminarAlign, MotionRecipe } from "../types";
|
|
4
4
|
type TextRunProps = {
|
|
5
5
|
readonly value: string;
|
|
6
6
|
readonly motionRecipe: MotionRecipe;
|
|
7
|
+
readonly align: LaminarAlign;
|
|
7
8
|
readonly textStyle?: StyleProp<TextStyle>;
|
|
8
9
|
readonly className?: string;
|
|
9
10
|
};
|
|
10
|
-
export declare const TextRun: React.MemoExoticComponent<({ value, motionRecipe, textStyle, className }: TextRunProps) => React.JSX.Element>;
|
|
11
|
+
export declare const TextRun: React.MemoExoticComponent<({ value, motionRecipe, align, textStyle, className }: TextRunProps) => React.JSX.Element>;
|
|
11
12
|
export {};
|
|
12
13
|
//# sourceMappingURL=text-run.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-run.d.ts","sourceRoot":"","sources":["../../../../src/view/text-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"text-run.d.ts","sourceRoot":"","sources":["../../../../src/view/text-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG3D,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,OAAO,mFACqC,YAAY,uBA0BpE,CAAC"}
|
|
@@ -3,5 +3,5 @@ import type { MorphingTextProps } from "./types";
|
|
|
3
3
|
export declare const Laminar: React.NamedExoticComponent<Readonly<MorphingTextProps>>;
|
|
4
4
|
export declare const MorphingText: React.NamedExoticComponent<Readonly<MorphingTextProps>>;
|
|
5
5
|
export default Laminar;
|
|
6
|
-
export type { LaminarProps, MorphAnimationPresetName, MorphContentVariant, MorphingTextProps, } from "./types";
|
|
6
|
+
export type { LaminarAlign, LaminarProps, MorphAnimationPresetName, MorphContentVariant, MorphingTextProps, } from "./types";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKjD,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKjD,eAAO,MAAM,OAAO,yDAgFhB,CAAC;AAEL,eAAO,MAAM,YAAY,yDAAU,CAAC;AAEpC,eAAe,OAAO,CAAC;AACvB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { StyleProp, TextStyle, ViewStyle } from "react-native";
|
|
|
2
2
|
import type { ComplexAnimationBuilder, EntryExitAnimationFunction, WithTimingConfig } from "react-native-reanimated";
|
|
3
3
|
export type MorphAnimationPresetName = "default" | "smooth" | "snappy" | "bouncy";
|
|
4
4
|
export type MorphContentVariant = "text" | "number";
|
|
5
|
+
export type LaminarAlign = "left" | "center" | "right";
|
|
5
6
|
type CubicBezierTuple = readonly [number, number, number, number];
|
|
6
7
|
export type MorphAnimationPreset = {
|
|
7
8
|
readonly duration: number;
|
|
@@ -29,6 +30,7 @@ export type MorphingTextProps = {
|
|
|
29
30
|
readonly variant?: MorphContentVariant;
|
|
30
31
|
readonly fontSize?: number;
|
|
31
32
|
readonly color?: string;
|
|
33
|
+
readonly align?: LaminarAlign;
|
|
32
34
|
readonly className?: string;
|
|
33
35
|
readonly style?: StyleProp<TextStyle>;
|
|
34
36
|
readonly containerStyle?: StyleProp<ViewStyle>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvD,KAAK,gBAAgB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAElE,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;IACnD,QAAQ,CAAC,eAAe,EAAE,0BAA0B,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type StyleProp, type TextStyle } from "react-native";
|
|
3
3
|
import type { ComplexAnimationBuilder, EntryExitAnimationFunction } from "react-native-reanimated";
|
|
4
|
-
import type { GlyphToken } from "../types";
|
|
5
|
-
export declare const GlyphRun: React.MemoExoticComponent<({ glyphs, layoutTransition, enterTransition, exitTransition, textStyle, className, }: Readonly<{
|
|
4
|
+
import type { GlyphToken, LaminarAlign } from "../types";
|
|
5
|
+
export declare const GlyphRun: React.MemoExoticComponent<({ glyphs, layoutTransition, enterTransition, exitTransition, align, textStyle, className, }: Readonly<{
|
|
6
6
|
glyphs: readonly GlyphToken[];
|
|
7
7
|
layoutTransition: ComplexAnimationBuilder;
|
|
8
8
|
enterTransition?: EntryExitAnimationFunction;
|
|
9
9
|
exitTransition?: EntryExitAnimationFunction;
|
|
10
|
+
align: LaminarAlign;
|
|
10
11
|
textStyle?: StyleProp<TextStyle>;
|
|
11
12
|
className?: string;
|
|
12
13
|
}>) => React.JSX.Element>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glyph-run.d.ts","sourceRoot":"","sources":["../../../../src/view/glyph-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAQ,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"glyph-run.d.ts","sourceRoot":"","sources":["../../../../src/view/glyph-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAQ,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAczD,eAAO,MAAM,QAAQ,0HAShB,QAAQ,CAAC;IACV,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,eAAe,CAAC,EAAE,0BAA0B,CAAC;IAC7C,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,uBAiBH,CAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { StyleProp, ViewStyle } from "react-native";
|
|
3
3
|
import Animated from "react-native-reanimated";
|
|
4
|
+
import type { LaminarAlign } from "../types";
|
|
4
5
|
type MorphViewportProps = {
|
|
5
6
|
readonly autoSize: boolean;
|
|
6
7
|
readonly clipToBounds: boolean;
|
|
8
|
+
readonly align: LaminarAlign;
|
|
7
9
|
readonly containerStyle?: StyleProp<ViewStyle>;
|
|
8
10
|
readonly animatedWidthStyle?: React.ComponentProps<typeof Animated.View>["style"];
|
|
9
11
|
readonly measurement?: React.ReactNode;
|
|
10
12
|
readonly children: React.ReactNode;
|
|
11
13
|
};
|
|
12
|
-
export declare const MorphViewport: React.MemoExoticComponent<({ autoSize, clipToBounds, containerStyle, animatedWidthStyle, measurement, children, }: MorphViewportProps) => React.JSX.Element>;
|
|
14
|
+
export declare const MorphViewport: React.MemoExoticComponent<({ autoSize, clipToBounds, align, containerStyle, animatedWidthStyle, measurement, children, }: MorphViewportProps) => React.JSX.Element>;
|
|
13
15
|
export {};
|
|
14
16
|
//# sourceMappingURL=morph-viewport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morph-viewport.d.ts","sourceRoot":"","sources":["../../../../src/view/morph-viewport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"morph-viewport.d.ts","sourceRoot":"","sources":["../../../../src/view/morph-viewport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA4C7C,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,aAAa,4HASrB,kBAAkB,uBAmCtB,CAAC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type StyleProp, type TextStyle } from "react-native";
|
|
3
|
-
import type { MotionRecipe } from "../types";
|
|
3
|
+
import type { LaminarAlign, MotionRecipe } from "../types";
|
|
4
4
|
type NumberRunProps = {
|
|
5
5
|
readonly value: string;
|
|
6
6
|
readonly motionRecipe: MotionRecipe;
|
|
7
|
+
readonly align: LaminarAlign;
|
|
7
8
|
readonly fontSize?: number;
|
|
8
9
|
readonly textStyle?: StyleProp<TextStyle>;
|
|
9
10
|
readonly staggerMs: number;
|
|
10
11
|
readonly className?: string;
|
|
11
12
|
};
|
|
12
|
-
export declare const NumberRun: React.MemoExoticComponent<({ value, motionRecipe, fontSize, textStyle, staggerMs, className, }: Readonly<NumberRunProps>) => React.JSX.Element>;
|
|
13
|
+
export declare const NumberRun: React.MemoExoticComponent<({ value, motionRecipe, align, fontSize, textStyle, staggerMs, className, }: Readonly<NumberRunProps>) => React.JSX.Element>;
|
|
13
14
|
export {};
|
|
14
15
|
//# sourceMappingURL=number-run.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-run.d.ts","sourceRoot":"","sources":["../../../../src/view/number-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAQ,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"number-run.d.ts","sourceRoot":"","sources":["../../../../src/view/number-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAQ,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAe3D,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,SAAS,yGASjB,QAAQ,CAAC,cAAc,CAAC,uBA4C5B,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { StyleProp, TextStyle } from "react-native";
|
|
3
|
-
import type { MotionRecipe } from "../types";
|
|
3
|
+
import type { LaminarAlign, MotionRecipe } from "../types";
|
|
4
4
|
type TextRunProps = {
|
|
5
5
|
readonly value: string;
|
|
6
6
|
readonly motionRecipe: MotionRecipe;
|
|
7
|
+
readonly align: LaminarAlign;
|
|
7
8
|
readonly textStyle?: StyleProp<TextStyle>;
|
|
8
9
|
readonly className?: string;
|
|
9
10
|
};
|
|
10
|
-
export declare const TextRun: React.MemoExoticComponent<({ value, motionRecipe, textStyle, className }: TextRunProps) => React.JSX.Element>;
|
|
11
|
+
export declare const TextRun: React.MemoExoticComponent<({ value, motionRecipe, align, textStyle, className }: TextRunProps) => React.JSX.Element>;
|
|
11
12
|
export {};
|
|
12
13
|
//# sourceMappingURL=text-run.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-run.d.ts","sourceRoot":"","sources":["../../../../src/view/text-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"text-run.d.ts","sourceRoot":"","sources":["../../../../src/view/text-run.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG3D,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,OAAO,mFACqC,YAAY,uBA0BpE,CAAC"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -17,6 +17,7 @@ export const Laminar = React.memo(function Laminar({
|
|
|
17
17
|
variant = "text",
|
|
18
18
|
fontSize,
|
|
19
19
|
color,
|
|
20
|
+
align = "left",
|
|
20
21
|
className,
|
|
21
22
|
style,
|
|
22
23
|
containerStyle,
|
|
@@ -57,6 +58,7 @@ export const Laminar = React.memo(function Laminar({
|
|
|
57
58
|
<MorphViewport
|
|
58
59
|
autoSize={autoSize}
|
|
59
60
|
clipToBounds={clipToBounds}
|
|
61
|
+
align={align}
|
|
60
62
|
containerStyle={containerStyle}
|
|
61
63
|
animatedWidthStyle={animatedWidthStyle}
|
|
62
64
|
measurement={
|
|
@@ -73,6 +75,7 @@ export const Laminar = React.memo(function Laminar({
|
|
|
73
75
|
<NumberRun
|
|
74
76
|
value={resolvedValue}
|
|
75
77
|
motionRecipe={motionRecipe}
|
|
78
|
+
align={align}
|
|
76
79
|
fontSize={fontSize}
|
|
77
80
|
textStyle={textStyle}
|
|
78
81
|
staggerMs={staggerMs}
|
|
@@ -82,6 +85,7 @@ export const Laminar = React.memo(function Laminar({
|
|
|
82
85
|
<TextRun
|
|
83
86
|
value={resolvedValue}
|
|
84
87
|
motionRecipe={motionRecipe}
|
|
88
|
+
align={align}
|
|
85
89
|
textStyle={textStyle}
|
|
86
90
|
className={className}
|
|
87
91
|
/>
|
|
@@ -94,6 +98,7 @@ export const MorphingText = Laminar;
|
|
|
94
98
|
|
|
95
99
|
export default Laminar;
|
|
96
100
|
export type {
|
|
101
|
+
LaminarAlign,
|
|
97
102
|
LaminarProps,
|
|
98
103
|
MorphAnimationPresetName,
|
|
99
104
|
MorphContentVariant,
|
package/src/types.ts
CHANGED
|
@@ -12,6 +12,7 @@ export type MorphAnimationPresetName =
|
|
|
12
12
|
| "bouncy";
|
|
13
13
|
|
|
14
14
|
export type MorphContentVariant = "text" | "number";
|
|
15
|
+
export type LaminarAlign = "left" | "center" | "right";
|
|
15
16
|
|
|
16
17
|
type CubicBezierTuple = readonly [number, number, number, number];
|
|
17
18
|
|
|
@@ -47,6 +48,7 @@ export type MorphingTextProps = {
|
|
|
47
48
|
readonly variant?: MorphContentVariant;
|
|
48
49
|
readonly fontSize?: number;
|
|
49
50
|
readonly color?: string;
|
|
51
|
+
readonly align?: LaminarAlign;
|
|
50
52
|
readonly className?: string;
|
|
51
53
|
readonly style?: StyleProp<TextStyle>;
|
|
52
54
|
readonly containerStyle?: StyleProp<ViewStyle>;
|
package/src/view/glyph-run.tsx
CHANGED
|
@@ -5,7 +5,7 @@ import type {
|
|
|
5
5
|
ComplexAnimationBuilder,
|
|
6
6
|
EntryExitAnimationFunction,
|
|
7
7
|
} from "react-native-reanimated";
|
|
8
|
-
import type { GlyphToken } from "../types";
|
|
8
|
+
import type { GlyphToken, LaminarAlign } from "../types";
|
|
9
9
|
|
|
10
10
|
const rowStyle = {
|
|
11
11
|
flexDirection: "row",
|
|
@@ -13,12 +13,19 @@ const rowStyle = {
|
|
|
13
13
|
alignSelf: "flex-start",
|
|
14
14
|
} as const;
|
|
15
15
|
|
|
16
|
+
const rowAlignStyles = {
|
|
17
|
+
left: { alignSelf: "flex-start" },
|
|
18
|
+
center: { alignSelf: "center" },
|
|
19
|
+
right: { alignSelf: "flex-end" },
|
|
20
|
+
} as const;
|
|
21
|
+
|
|
16
22
|
export const GlyphRun = React.memo(
|
|
17
23
|
({
|
|
18
24
|
glyphs,
|
|
19
25
|
layoutTransition,
|
|
20
26
|
enterTransition,
|
|
21
27
|
exitTransition,
|
|
28
|
+
align,
|
|
22
29
|
textStyle,
|
|
23
30
|
className,
|
|
24
31
|
}: Readonly<{
|
|
@@ -26,10 +33,11 @@ export const GlyphRun = React.memo(
|
|
|
26
33
|
layoutTransition: ComplexAnimationBuilder;
|
|
27
34
|
enterTransition?: EntryExitAnimationFunction;
|
|
28
35
|
exitTransition?: EntryExitAnimationFunction;
|
|
36
|
+
align: LaminarAlign;
|
|
29
37
|
textStyle?: StyleProp<TextStyle>;
|
|
30
38
|
className?: string;
|
|
31
39
|
}>) => (
|
|
32
|
-
<View style={rowStyle}>
|
|
40
|
+
<View style={[rowStyle, rowAlignStyles[align]]}>
|
|
33
41
|
{/* glyph ids decide what swaps, layout handles the row reflow */}
|
|
34
42
|
{glyphs.map((glyph) => (
|
|
35
43
|
<Animated.Text
|
|
@@ -2,6 +2,7 @@ import React, { useMemo } from "react";
|
|
|
2
2
|
import type { StyleProp, ViewStyle } from "react-native";
|
|
3
3
|
import { View } from "react-native";
|
|
4
4
|
import Animated from "react-native-reanimated";
|
|
5
|
+
import type { LaminarAlign } from "../types";
|
|
5
6
|
|
|
6
7
|
const shellStyle = {
|
|
7
8
|
position: "relative",
|
|
@@ -29,9 +30,26 @@ const unclippedViewportStyle: ViewStyle = {
|
|
|
29
30
|
overflow: "visible",
|
|
30
31
|
};
|
|
31
32
|
|
|
33
|
+
const fullWidthViewportStyle: ViewStyle = {
|
|
34
|
+
width: "100%",
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const shellAlignStyles: Record<LaminarAlign, ViewStyle> = {
|
|
38
|
+
left: { alignSelf: "flex-start" },
|
|
39
|
+
center: { alignSelf: "center" },
|
|
40
|
+
right: { alignSelf: "flex-end" },
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const viewportAlignStyles: Record<LaminarAlign, ViewStyle> = {
|
|
44
|
+
left: { alignItems: "flex-start" },
|
|
45
|
+
center: { alignItems: "center" },
|
|
46
|
+
right: { alignItems: "flex-end" },
|
|
47
|
+
};
|
|
48
|
+
|
|
32
49
|
type MorphViewportProps = {
|
|
33
50
|
readonly autoSize: boolean;
|
|
34
51
|
readonly clipToBounds: boolean;
|
|
52
|
+
readonly align: LaminarAlign;
|
|
35
53
|
readonly containerStyle?: StyleProp<ViewStyle>;
|
|
36
54
|
readonly animatedWidthStyle?: React.ComponentProps<typeof Animated.View>["style"];
|
|
37
55
|
readonly measurement?: React.ReactNode;
|
|
@@ -42,6 +60,7 @@ export const MorphViewport = React.memo(
|
|
|
42
60
|
({
|
|
43
61
|
autoSize,
|
|
44
62
|
clipToBounds,
|
|
63
|
+
align,
|
|
45
64
|
containerStyle,
|
|
46
65
|
animatedWidthStyle,
|
|
47
66
|
measurement,
|
|
@@ -50,13 +69,14 @@ export const MorphViewport = React.memo(
|
|
|
50
69
|
const resolvedViewportStyle = useMemo(
|
|
51
70
|
() => [
|
|
52
71
|
viewportStyle,
|
|
72
|
+
viewportAlignStyles[align],
|
|
53
73
|
clipToBounds ? clippedViewportStyle : unclippedViewportStyle,
|
|
54
74
|
],
|
|
55
|
-
[clipToBounds]
|
|
75
|
+
[align, clipToBounds]
|
|
56
76
|
);
|
|
57
77
|
|
|
58
78
|
return (
|
|
59
|
-
<View style={[shellStyle, containerStyle]}>
|
|
79
|
+
<View style={[shellStyle, shellAlignStyles[align], containerStyle]}>
|
|
60
80
|
{autoSize ? (
|
|
61
81
|
<>
|
|
62
82
|
<View
|
|
@@ -73,7 +93,9 @@ export const MorphViewport = React.memo(
|
|
|
73
93
|
</Animated.View>
|
|
74
94
|
</>
|
|
75
95
|
) : (
|
|
76
|
-
<View style={resolvedViewportStyle}>
|
|
96
|
+
<View style={[resolvedViewportStyle, fullWidthViewportStyle]}>
|
|
97
|
+
{children}
|
|
98
|
+
</View>
|
|
77
99
|
)}
|
|
78
100
|
</View>
|
|
79
101
|
);
|
package/src/view/number-run.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useMemo, useRef } from "react";
|
|
2
2
|
import { type StyleProp, type TextStyle, View } from "react-native";
|
|
3
3
|
import { useNumericLanes } from "../hooks/use-numeric-lanes";
|
|
4
|
-
import type { MotionRecipe } from "../types";
|
|
4
|
+
import type { LaminarAlign, MotionRecipe } from "../types";
|
|
5
5
|
import { NumberLane } from "./number-lane";
|
|
6
6
|
|
|
7
7
|
const rowStyle = {
|
|
@@ -10,9 +10,16 @@ const rowStyle = {
|
|
|
10
10
|
alignSelf: "flex-start",
|
|
11
11
|
} as const;
|
|
12
12
|
|
|
13
|
+
const rowAlignStyles = {
|
|
14
|
+
left: { alignSelf: "flex-start" },
|
|
15
|
+
center: { alignSelf: "center" },
|
|
16
|
+
right: { alignSelf: "flex-end" },
|
|
17
|
+
} as const;
|
|
18
|
+
|
|
13
19
|
type NumberRunProps = {
|
|
14
20
|
readonly value: string;
|
|
15
21
|
readonly motionRecipe: MotionRecipe;
|
|
22
|
+
readonly align: LaminarAlign;
|
|
16
23
|
readonly fontSize?: number;
|
|
17
24
|
readonly textStyle?: StyleProp<TextStyle>;
|
|
18
25
|
readonly staggerMs: number;
|
|
@@ -23,6 +30,7 @@ export const NumberRun = React.memo(
|
|
|
23
30
|
({
|
|
24
31
|
value,
|
|
25
32
|
motionRecipe,
|
|
33
|
+
align,
|
|
26
34
|
fontSize,
|
|
27
35
|
textStyle,
|
|
28
36
|
staggerMs,
|
|
@@ -45,7 +53,7 @@ export const NumberRun = React.memo(
|
|
|
45
53
|
const hasAnimated = hasAnimatedRef.current;
|
|
46
54
|
|
|
47
55
|
return (
|
|
48
|
-
<View style={rowStyle}>
|
|
56
|
+
<View style={[rowStyle, rowAlignStyles[align]]}>
|
|
49
57
|
{units.map((unit, index) => {
|
|
50
58
|
const inLead = index < leadLength;
|
|
51
59
|
const laneKey = inLead
|
package/src/view/text-run.tsx
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import React, { useId, useRef } from "react";
|
|
2
2
|
import type { StyleProp, TextStyle } from "react-native";
|
|
3
3
|
import { useTextGlyphs } from "../hooks/use-text-glyphs";
|
|
4
|
-
import type { MotionRecipe } from "../types";
|
|
4
|
+
import type { LaminarAlign, MotionRecipe } from "../types";
|
|
5
5
|
import { GlyphRun } from "./glyph-run";
|
|
6
6
|
|
|
7
7
|
type TextRunProps = {
|
|
8
8
|
readonly value: string;
|
|
9
9
|
readonly motionRecipe: MotionRecipe;
|
|
10
|
+
readonly align: LaminarAlign;
|
|
10
11
|
readonly textStyle?: StyleProp<TextStyle>;
|
|
11
12
|
readonly className?: string;
|
|
12
13
|
};
|
|
13
14
|
|
|
14
15
|
export const TextRun = React.memo(
|
|
15
|
-
({ value, motionRecipe, textStyle, className }: TextRunProps) => {
|
|
16
|
+
({ value, motionRecipe, align, textStyle, className }: TextRunProps) => {
|
|
16
17
|
// namespace ids per instance so repeated strings do not collide
|
|
17
18
|
const scopeId = useId();
|
|
18
19
|
const glyphs = useTextGlyphs(value, scopeId);
|
|
@@ -32,6 +33,7 @@ export const TextRun = React.memo(
|
|
|
32
33
|
hasAnimatedRef.current ? motionRecipe.enterTransition : undefined
|
|
33
34
|
}
|
|
34
35
|
exitTransition={motionRecipe.exitTransition}
|
|
36
|
+
align={align}
|
|
35
37
|
textStyle={textStyle}
|
|
36
38
|
className={className}
|
|
37
39
|
/>
|