panelui-native 0.16.0 → 0.20.1
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/lib/module/components/bottom-sheet/index.js +38 -10
- package/lib/module/components/bottom-sheet/index.js.map +1 -1
- package/lib/module/components/checkbox/index.js +24 -11
- package/lib/module/components/checkbox/index.js.map +1 -1
- package/lib/module/components/field/index.js +337 -0
- package/lib/module/components/field/index.js.map +1 -0
- package/lib/module/components/flow/flow-paths.js +378 -0
- package/lib/module/components/flow/flow-paths.js.map +1 -0
- package/lib/module/components/flow/index.js +1598 -0
- package/lib/module/components/flow/index.js.map +1 -0
- package/lib/module/components/form/index.js +77 -0
- package/lib/module/components/form/index.js.map +1 -0
- package/lib/module/components/form/use-field.js +50 -0
- package/lib/module/components/form/use-field.js.map +1 -0
- package/lib/module/components/form/use-form.js +217 -0
- package/lib/module/components/form/use-form.js.map +1 -0
- package/lib/module/components/frame/index.js +124 -22
- package/lib/module/components/frame/index.js.map +1 -1
- package/lib/module/components/otp-input/index.js +303 -0
- package/lib/module/components/otp-input/index.js.map +1 -0
- package/lib/module/components/rating/index.js +339 -0
- package/lib/module/components/rating/index.js.map +1 -0
- package/lib/module/components/signature/index.js +500 -0
- package/lib/module/components/signature/index.js.map +1 -0
- package/lib/module/components/slider/index.js +14 -1
- package/lib/module/components/slider/index.js.map +1 -1
- package/lib/module/icons/index.js +247 -0
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/index.js +7 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/components/bottom-sheet/index.d.ts +15 -1
- package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
- package/lib/typescript/src/components/checkbox/index.d.ts +8 -0
- package/lib/typescript/src/components/checkbox/index.d.ts.map +1 -1
- package/lib/typescript/src/components/field/index.d.ts +94 -0
- package/lib/typescript/src/components/field/index.d.ts.map +1 -0
- package/lib/typescript/src/components/flow/flow-paths.d.ts +89 -0
- package/lib/typescript/src/components/flow/flow-paths.d.ts.map +1 -0
- package/lib/typescript/src/components/flow/index.d.ts +310 -0
- package/lib/typescript/src/components/flow/index.d.ts.map +1 -0
- package/lib/typescript/src/components/form/index.d.ts +64 -0
- package/lib/typescript/src/components/form/index.d.ts.map +1 -0
- package/lib/typescript/src/components/form/use-field.d.ts +16 -0
- package/lib/typescript/src/components/form/use-field.d.ts.map +1 -0
- package/lib/typescript/src/components/form/use-form.d.ts +37 -0
- package/lib/typescript/src/components/form/use-form.d.ts.map +1 -0
- package/lib/typescript/src/components/frame/index.d.ts +39 -2
- package/lib/typescript/src/components/frame/index.d.ts.map +1 -1
- package/lib/typescript/src/components/otp-input/index.d.ts +141 -0
- package/lib/typescript/src/components/otp-input/index.d.ts.map +1 -0
- package/lib/typescript/src/components/rating/index.d.ts +122 -0
- package/lib/typescript/src/components/rating/index.d.ts.map +1 -0
- package/lib/typescript/src/components/signature/index.d.ts +254 -0
- package/lib/typescript/src/components/signature/index.d.ts.map +1 -0
- package/lib/typescript/src/components/slider/index.d.ts +6 -0
- package/lib/typescript/src/components/slider/index.d.ts.map +1 -1
- package/lib/typescript/src/icons/index.d.ts +25 -0
- package/lib/typescript/src/icons/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +8 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +9 -1
- package/src/components/bottom-sheet/index.tsx +50 -12
- package/src/components/checkbox/index.tsx +40 -12
- package/src/components/field/index.tsx +329 -0
- package/src/components/flow/flow-paths.ts +348 -0
- package/src/components/flow/index.tsx +1924 -0
- package/src/components/form/index.tsx +85 -0
- package/src/components/form/use-field.ts +65 -0
- package/src/components/form/use-form.ts +252 -0
- package/src/components/frame/index.tsx +162 -14
- package/src/components/otp-input/index.tsx +396 -0
- package/src/components/rating/index.tsx +416 -0
- package/src/components/signature/index.tsx +681 -0
- package/src/components/slider/index.tsx +20 -1
- package/src/icons/index.tsx +185 -0
- package/src/index.ts +78 -0
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Signature — a surface you sign with a finger, and a handle for getting the
|
|
5
|
+
* result back out.
|
|
6
|
+
*
|
|
7
|
+
* ```tsx
|
|
8
|
+
* const pad = useRef<SignatureHandle>(null);
|
|
9
|
+
*
|
|
10
|
+
* <Signature ref={pad} guideline />
|
|
11
|
+
* <Button onPress={() => pad.current?.save({ filename: 'agreement' })}>
|
|
12
|
+
* Finish signing
|
|
13
|
+
* </Button>
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* ## Why the stroke never reaches React
|
|
17
|
+
*
|
|
18
|
+
* A finger produces touch events far faster than a component tree can usefully
|
|
19
|
+
* re-render, and a signature is exactly the case where the lag shows: the line
|
|
20
|
+
* trails the fingertip and the whole thing feels like drawing through syrup.
|
|
21
|
+
*
|
|
22
|
+
* So the stroke being drawn lives in a shared value and is turned into an SVG
|
|
23
|
+
* `d` string by a worklet on the UI thread — React is not involved in a single
|
|
24
|
+
* frame of it. When the finger lifts, that one finished string crosses to
|
|
25
|
+
* JavaScript once and becomes a static path. Committed strokes are ordinary
|
|
26
|
+
* elements that never animate again, so the hundredth stroke costs what the
|
|
27
|
+
* first one did.
|
|
28
|
+
*
|
|
29
|
+
* Points closer together than `minDistance` are dropped as they arrive. A slow
|
|
30
|
+
* finger otherwise emits a point per frame in the same spot, which is a longer
|
|
31
|
+
* path describing the same shape.
|
|
32
|
+
*
|
|
33
|
+
* ## Smoothing
|
|
34
|
+
*
|
|
35
|
+
* Raw touch points joined with straight lines look like a seismograph. Each
|
|
36
|
+
* segment is drawn as a quadratic curve through the midpoint between two
|
|
37
|
+
* points instead — the point itself becomes the control handle, the midpoints
|
|
38
|
+
* become the anchors, and consecutive curves meet with a shared tangent. It
|
|
39
|
+
* needs no lookahead, so a point can be appended to a stroke already on screen
|
|
40
|
+
* without redrawing what came before it differently.
|
|
41
|
+
*
|
|
42
|
+
* ## Getting it out
|
|
43
|
+
*
|
|
44
|
+
* `toSVG()` is pure string building and always works. Writing a file needs
|
|
45
|
+
* `expo-file-system`, and rasterising to PNG needs `react-native-view-shot` as
|
|
46
|
+
* well; both are optional and both are resolved lazily, so a project that only
|
|
47
|
+
* ever reads the SVG installs neither. Asking for something the missing
|
|
48
|
+
* package provides throws with its name in the message rather than failing
|
|
49
|
+
* somewhere further down.
|
|
50
|
+
*/
|
|
51
|
+
import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
52
|
+
import { View } from 'react-native';
|
|
53
|
+
import { useCSSVariable } from 'uniwind';
|
|
54
|
+
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
55
|
+
import Animated, { runOnJS, useAnimatedProps, useSharedValue } from 'react-native-reanimated';
|
|
56
|
+
import Svg, { Path } from 'react-native-svg';
|
|
57
|
+
import { tv } from 'tailwind-variants';
|
|
58
|
+
import { PencilIcon, RotateCcwIcon, TrashIcon } from "../../icons/index.js";
|
|
59
|
+
import { AnimatedPressable } from "../../primitives/animated-pressable.js";
|
|
60
|
+
import { Text } from "../../primitives/text.js";
|
|
61
|
+
import { cn } from "../../utils/cn.js";
|
|
62
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
63
|
+
const AnimatedPath = Animated.createAnimatedComponent(Path);
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* `expo-file-system`, or null when it is not installed. Resolved once at module
|
|
67
|
+
* load, the way every optional dependency in the library is.
|
|
68
|
+
*/
|
|
69
|
+
const FileSystem = (() => {
|
|
70
|
+
try {
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
72
|
+
return require('expo-file-system');
|
|
73
|
+
} catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
})();
|
|
77
|
+
|
|
78
|
+
/** `react-native-view-shot`'s capture function, or null. PNG export only. */
|
|
79
|
+
const captureRef = (() => {
|
|
80
|
+
try {
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
82
|
+
const mod = require('react-native-view-shot');
|
|
83
|
+
return mod?.captureRef ?? null;
|
|
84
|
+
} catch {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
})();
|
|
88
|
+
|
|
89
|
+
/** True when a signature can be written to a file. */
|
|
90
|
+
export const hasSignatureFileSystem = FileSystem !== null;
|
|
91
|
+
|
|
92
|
+
/** True when a signature can be rasterised to PNG. */
|
|
93
|
+
export const hasSignatureRaster = captureRef !== null;
|
|
94
|
+
const signatureVariants = tv({
|
|
95
|
+
slots: {
|
|
96
|
+
root: 'overflow-hidden rounded-2xl border border-border bg-card',
|
|
97
|
+
pad: 'flex-1',
|
|
98
|
+
placeholder: 'absolute inset-0 items-center justify-center gap-2',
|
|
99
|
+
guide: 'absolute inset-x-6 flex-row items-center gap-3',
|
|
100
|
+
toolbar: 'flex-row items-center justify-between gap-2 px-3 py-2'
|
|
101
|
+
},
|
|
102
|
+
variants: {
|
|
103
|
+
size: {
|
|
104
|
+
sm: {
|
|
105
|
+
root: 'h-32'
|
|
106
|
+
},
|
|
107
|
+
md: {
|
|
108
|
+
root: 'h-48'
|
|
109
|
+
},
|
|
110
|
+
lg: {
|
|
111
|
+
root: 'h-64'
|
|
112
|
+
},
|
|
113
|
+
/** Fills whatever it is given — for a full-screen signing surface. */
|
|
114
|
+
full: {
|
|
115
|
+
root: 'h-auto flex-1 rounded-none border-0'
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
disabled: {
|
|
119
|
+
true: {
|
|
120
|
+
root: 'opacity-[0.64]'
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
defaultVariants: {
|
|
125
|
+
size: 'md'
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
/**
|
|
129
|
+
* Turns a flat `[x, y, x, y, …]` buffer into a path, curving through the
|
|
130
|
+
* midpoint between each pair of points.
|
|
131
|
+
*
|
|
132
|
+
* A worklet, because it runs against the live stroke on the UI thread — and
|
|
133
|
+
* because the same function has to produce the committed string once the
|
|
134
|
+
* finger lifts, so the line does not shift the instant it stops being live.
|
|
135
|
+
*/
|
|
136
|
+
function strokePath(points) {
|
|
137
|
+
'worklet';
|
|
138
|
+
|
|
139
|
+
const count = points.length / 2;
|
|
140
|
+
if (count === 0) return '';
|
|
141
|
+
|
|
142
|
+
// A tap is a dot. Without this it would be an empty path and the touch would
|
|
143
|
+
// leave no mark at all, which reads as the pad having missed it.
|
|
144
|
+
if (count === 1) {
|
|
145
|
+
return `M${points[0]},${points[1]} l0.01,0`;
|
|
146
|
+
}
|
|
147
|
+
let d = `M${points[0]},${points[1]}`;
|
|
148
|
+
for (let i = 1; i < count; i += 1) {
|
|
149
|
+
const px = points[(i - 1) * 2];
|
|
150
|
+
const py = points[(i - 1) * 2 + 1];
|
|
151
|
+
const x = points[i * 2];
|
|
152
|
+
const y = points[i * 2 + 1];
|
|
153
|
+
// The point is the control handle and the midpoint is the anchor, so the
|
|
154
|
+
// curve leaving this segment shares a tangent with the one entering the
|
|
155
|
+
// next and the join is invisible.
|
|
156
|
+
d += ` Q${px},${py} ${(px + x) / 2},${(py + y) / 2}`;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Finish at the real last point rather than at the midpoint before it, or
|
|
160
|
+
// the stroke stops visibly short of where the finger lifted.
|
|
161
|
+
d += ` L${points[(count - 1) * 2]},${points[(count - 1) * 2 + 1]}`;
|
|
162
|
+
return d;
|
|
163
|
+
}
|
|
164
|
+
function SignatureRoot({
|
|
165
|
+
className,
|
|
166
|
+
size = 'md',
|
|
167
|
+
strokeColor,
|
|
168
|
+
strokeWidth = 2.5,
|
|
169
|
+
minDistance = 1.5,
|
|
170
|
+
guideline = false,
|
|
171
|
+
guidelineLabel,
|
|
172
|
+
placeholder,
|
|
173
|
+
disabled = false,
|
|
174
|
+
onBegin,
|
|
175
|
+
onEnd,
|
|
176
|
+
onChange,
|
|
177
|
+
padClassName,
|
|
178
|
+
placeholderClassName,
|
|
179
|
+
guideClassName,
|
|
180
|
+
...props
|
|
181
|
+
}, ref) {
|
|
182
|
+
const slots = signatureVariants({
|
|
183
|
+
size,
|
|
184
|
+
disabled
|
|
185
|
+
});
|
|
186
|
+
const [strokes, setStrokes] = useState([]);
|
|
187
|
+
const [undone, setUndone] = useState([]);
|
|
188
|
+
const [layout, setLayout] = useState({
|
|
189
|
+
width: 0,
|
|
190
|
+
height: 0
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
// The live stroke: a flat buffer so the worklet reads numbers rather than
|
|
194
|
+
// objects, which is what keeps the per-frame cost flat.
|
|
195
|
+
const live = useSharedValue([]);
|
|
196
|
+
const padRef = useRef(null);
|
|
197
|
+
const inkToken = useCSSVariable('--color-foreground');
|
|
198
|
+
const ink = strokeColor ?? (typeof inkToken === 'string' ? inkToken : '#0a0a0a');
|
|
199
|
+
|
|
200
|
+
// Latest-props refs, so the gesture is built once and still calls the
|
|
201
|
+
// handlers the component was last rendered with.
|
|
202
|
+
const changeRef = useRef(onChange);
|
|
203
|
+
changeRef.current = onChange;
|
|
204
|
+
const beginRef = useRef(onBegin);
|
|
205
|
+
beginRef.current = onBegin;
|
|
206
|
+
const endRef = useRef(onEnd);
|
|
207
|
+
endRef.current = onEnd;
|
|
208
|
+
|
|
209
|
+
// `onChange` fires from an effect rather than from inside a state updater.
|
|
210
|
+
// An updater can be replayed during a render, and calling a parent's setState
|
|
211
|
+
// from there is the "cannot update a component while rendering a different
|
|
212
|
+
// component" warning — earned, not spurious.
|
|
213
|
+
const reported = useRef(0);
|
|
214
|
+
useEffect(() => {
|
|
215
|
+
if (reported.current === strokes.length) return;
|
|
216
|
+
reported.current = strokes.length;
|
|
217
|
+
changeRef.current?.(strokes.length);
|
|
218
|
+
}, [strokes.length]);
|
|
219
|
+
const commit = useCallback(d => {
|
|
220
|
+
setStrokes(current => [...current, d]);
|
|
221
|
+
// Drawing again is a new branch of history, so what was undone is gone.
|
|
222
|
+
setUndone([]);
|
|
223
|
+
endRef.current?.();
|
|
224
|
+
}, []);
|
|
225
|
+
const begin = useCallback(() => beginRef.current?.(), []);
|
|
226
|
+
const pan = useMemo(() => Gesture.Pan()
|
|
227
|
+
// Without this a signature's first, shortest stroke — the dot on an
|
|
228
|
+
// i, a full stop — never activates the gesture and is simply lost.
|
|
229
|
+
.minDistance(0).averageTouches(true).enabled(!disabled).onBegin(event => {
|
|
230
|
+
'worklet';
|
|
231
|
+
|
|
232
|
+
live.value = [event.x, event.y];
|
|
233
|
+
runOnJS(begin)();
|
|
234
|
+
}).onUpdate(event => {
|
|
235
|
+
'worklet';
|
|
236
|
+
|
|
237
|
+
const points = live.value;
|
|
238
|
+
const last = points.length;
|
|
239
|
+
if (last >= 2) {
|
|
240
|
+
const dx = event.x - points[last - 2];
|
|
241
|
+
const dy = event.y - points[last - 1];
|
|
242
|
+
if (dx * dx + dy * dy < minDistance * minDistance) return;
|
|
243
|
+
}
|
|
244
|
+
// A new array, not a push: a shared value only notifies on
|
|
245
|
+
// assignment, and mutating in place leaves the path stale.
|
|
246
|
+
live.value = [...points, event.x, event.y];
|
|
247
|
+
}).onFinalize(() => {
|
|
248
|
+
'worklet';
|
|
249
|
+
|
|
250
|
+
const points = live.value;
|
|
251
|
+
live.value = [];
|
|
252
|
+
if (points.length === 0) return;
|
|
253
|
+
runOnJS(commit)(strokePath(points));
|
|
254
|
+
}), [begin, commit, disabled, live, minDistance]);
|
|
255
|
+
const liveProps = useAnimatedProps(() => ({
|
|
256
|
+
d: strokePath(live.value)
|
|
257
|
+
}));
|
|
258
|
+
const svgDocument = useCallback(() => {
|
|
259
|
+
const width = Math.round(layout.width) || 1;
|
|
260
|
+
const height = Math.round(layout.height) || 1;
|
|
261
|
+
const paths = strokes.map(d => `<path d="${d}" fill="none" stroke="${ink}" stroke-width="${strokeWidth}" ` + 'stroke-linecap="round" stroke-linejoin="round"/>').join('');
|
|
262
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}" ` + `viewBox="0 0 ${width} ${height}">${paths}</svg>`;
|
|
263
|
+
}, [ink, layout.height, layout.width, strokeWidth, strokes]);
|
|
264
|
+
const rasterise = useCallback(async scale => {
|
|
265
|
+
if (!captureRef) {
|
|
266
|
+
throw new Error('Signature: PNG export needs the optional `react-native-view-shot` package. ' + 'Install it, or export SVG instead.');
|
|
267
|
+
}
|
|
268
|
+
return captureRef(padRef.current, {
|
|
269
|
+
format: 'png',
|
|
270
|
+
quality: 1,
|
|
271
|
+
result: 'tmpfile',
|
|
272
|
+
width: Math.round(layout.width * scale),
|
|
273
|
+
height: Math.round(layout.height * scale)
|
|
274
|
+
});
|
|
275
|
+
}, [layout.height, layout.width]);
|
|
276
|
+
useImperativeHandle(ref, () => ({
|
|
277
|
+
// These read the current arrays and set flat values rather than nesting
|
|
278
|
+
// one updater inside another — a nested updater runs during the render
|
|
279
|
+
// pass, which is not a safe place to schedule another component's update.
|
|
280
|
+
clear() {
|
|
281
|
+
setStrokes([]);
|
|
282
|
+
setUndone([]);
|
|
283
|
+
},
|
|
284
|
+
undo() {
|
|
285
|
+
const last = strokes[strokes.length - 1];
|
|
286
|
+
if (last === undefined) return;
|
|
287
|
+
setUndone(stack => [...stack, last]);
|
|
288
|
+
setStrokes(strokes.slice(0, -1));
|
|
289
|
+
},
|
|
290
|
+
redo() {
|
|
291
|
+
const restored = undone[undone.length - 1];
|
|
292
|
+
if (restored === undefined) return;
|
|
293
|
+
setUndone(undone.slice(0, -1));
|
|
294
|
+
setStrokes([...strokes, restored]);
|
|
295
|
+
},
|
|
296
|
+
isEmpty: () => strokes.length === 0,
|
|
297
|
+
strokeCount: () => strokes.length,
|
|
298
|
+
toSVG: svgDocument,
|
|
299
|
+
async toDataURL(format = 'svg') {
|
|
300
|
+
if (format === 'svg') {
|
|
301
|
+
// encodeURIComponent rather than base64: no polyfill needed, and the
|
|
302
|
+
// result is legible in a log, which matters when debugging a save.
|
|
303
|
+
return `data:image/svg+xml;utf8,${encodeURIComponent(svgDocument())}`;
|
|
304
|
+
}
|
|
305
|
+
const uri = await rasterise(2);
|
|
306
|
+
if (!FileSystem) {
|
|
307
|
+
throw new Error('Signature: reading a PNG back as a data URI needs the optional ' + '`expo-file-system` package. The file itself is at ' + `${uri} — pass that to an <Image> instead.`);
|
|
308
|
+
}
|
|
309
|
+
const read = FileSystem.readAsStringAsync;
|
|
310
|
+
if (!read) throw new Error('Signature: `expo-file-system` has no readAsStringAsync.');
|
|
311
|
+
const base64 = await read(uri, {
|
|
312
|
+
encoding: 'base64'
|
|
313
|
+
});
|
|
314
|
+
return `data:image/png;base64,${base64}`;
|
|
315
|
+
},
|
|
316
|
+
async save(options = {}) {
|
|
317
|
+
const {
|
|
318
|
+
directory,
|
|
319
|
+
filename,
|
|
320
|
+
format = 'svg',
|
|
321
|
+
scale = 2
|
|
322
|
+
} = options;
|
|
323
|
+
if (!FileSystem) {
|
|
324
|
+
throw new Error('Signature: save() needs the optional `expo-file-system` package. ' + 'Install it, or use toSVG() and write the string yourself.');
|
|
325
|
+
}
|
|
326
|
+
const base = directory ?? FileSystem.documentDirectory ?? FileSystem.Paths?.document?.uri;
|
|
327
|
+
if (!base) {
|
|
328
|
+
throw new Error('Signature: no document directory available — pass `directory` explicitly.');
|
|
329
|
+
}
|
|
330
|
+
const name = filename ?? `signature-${Date.now()}`;
|
|
331
|
+
const dir = base.endsWith('/') ? base : `${base}/`;
|
|
332
|
+
const uri = `${dir}${name}.${format}`;
|
|
333
|
+
if (format === 'png') {
|
|
334
|
+
const temporary = await rasterise(scale);
|
|
335
|
+
const copy = FileSystem.copyAsync;
|
|
336
|
+
if (!copy) {
|
|
337
|
+
throw new Error('Signature: `expo-file-system` has no copyAsync.');
|
|
338
|
+
}
|
|
339
|
+
await copy({
|
|
340
|
+
from: temporary,
|
|
341
|
+
to: uri
|
|
342
|
+
});
|
|
343
|
+
} else if (FileSystem.File) {
|
|
344
|
+
// The current file-object API. Tried first: `writeAsStringAsync` is
|
|
345
|
+
// the legacy one and warns on every call in recent versions.
|
|
346
|
+
const file = new FileSystem.File(uri);
|
|
347
|
+
file.create({
|
|
348
|
+
overwrite: true
|
|
349
|
+
});
|
|
350
|
+
file.write(svgDocument());
|
|
351
|
+
} else if (FileSystem.writeAsStringAsync) {
|
|
352
|
+
await FileSystem.writeAsStringAsync(uri, svgDocument());
|
|
353
|
+
} else {
|
|
354
|
+
throw new Error('Signature: `expo-file-system` exposes neither writeAsStringAsync nor File.');
|
|
355
|
+
}
|
|
356
|
+
return {
|
|
357
|
+
uri,
|
|
358
|
+
format,
|
|
359
|
+
width: Math.round(layout.width),
|
|
360
|
+
height: Math.round(layout.height)
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
}), [layout.height, layout.width, rasterise, strokes, undone, svgDocument]);
|
|
364
|
+
const empty = strokes.length === 0;
|
|
365
|
+
return /*#__PURE__*/_jsx(View, {
|
|
366
|
+
className: slots.root({
|
|
367
|
+
className
|
|
368
|
+
}),
|
|
369
|
+
...props,
|
|
370
|
+
children: /*#__PURE__*/_jsx(GestureDetector, {
|
|
371
|
+
gesture: pan,
|
|
372
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
373
|
+
ref: padRef,
|
|
374
|
+
collapsable: false,
|
|
375
|
+
className: slots.pad({
|
|
376
|
+
className: padClassName
|
|
377
|
+
}),
|
|
378
|
+
onLayout: event => setLayout(event.nativeEvent.layout),
|
|
379
|
+
accessible: true,
|
|
380
|
+
accessibilityRole: "image",
|
|
381
|
+
accessibilityLabel: "Signature pad",
|
|
382
|
+
accessibilityHint: "Draw your signature with your finger",
|
|
383
|
+
accessibilityState: {
|
|
384
|
+
disabled
|
|
385
|
+
},
|
|
386
|
+
children: [guideline && layout.height > 0 ? /*#__PURE__*/_jsxs(View, {
|
|
387
|
+
className: slots.guide({
|
|
388
|
+
className: guideClassName
|
|
389
|
+
}),
|
|
390
|
+
style: {
|
|
391
|
+
top: layout.height * 0.72
|
|
392
|
+
},
|
|
393
|
+
pointerEvents: "none",
|
|
394
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
395
|
+
size: "lg",
|
|
396
|
+
muted: true,
|
|
397
|
+
children: "\u2715"
|
|
398
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
399
|
+
className: "h-px flex-1 bg-border"
|
|
400
|
+
}), guidelineLabel ? /*#__PURE__*/_jsx(Text, {
|
|
401
|
+
size: "xs",
|
|
402
|
+
muted: true,
|
|
403
|
+
children: guidelineLabel
|
|
404
|
+
}) : null]
|
|
405
|
+
}) : null, /*#__PURE__*/_jsxs(Svg, {
|
|
406
|
+
width: "100%",
|
|
407
|
+
height: "100%",
|
|
408
|
+
pointerEvents: "none",
|
|
409
|
+
children: [strokes.map((d, index) => /*#__PURE__*/_jsx(Path
|
|
410
|
+
// Strokes are only ever appended or dropped from the end, so
|
|
411
|
+
// the index is stable for the life of each one.
|
|
412
|
+
, {
|
|
413
|
+
d: d,
|
|
414
|
+
fill: "none",
|
|
415
|
+
stroke: ink,
|
|
416
|
+
strokeWidth: strokeWidth,
|
|
417
|
+
strokeLinecap: "round",
|
|
418
|
+
strokeLinejoin: "round"
|
|
419
|
+
}, index)), /*#__PURE__*/_jsx(AnimatedPath, {
|
|
420
|
+
animatedProps: liveProps,
|
|
421
|
+
fill: "none",
|
|
422
|
+
stroke: ink,
|
|
423
|
+
strokeWidth: strokeWidth,
|
|
424
|
+
strokeLinecap: "round",
|
|
425
|
+
strokeLinejoin: "round"
|
|
426
|
+
})]
|
|
427
|
+
}), empty && placeholder !== null ? /*#__PURE__*/_jsx(View, {
|
|
428
|
+
className: slots.placeholder({
|
|
429
|
+
className: placeholderClassName
|
|
430
|
+
}),
|
|
431
|
+
pointerEvents: "none",
|
|
432
|
+
children: placeholder ?? /*#__PURE__*/_jsxs(_Fragment, {
|
|
433
|
+
children: [/*#__PURE__*/_jsx(PencilIcon, {
|
|
434
|
+
size: 20
|
|
435
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
436
|
+
size: "sm",
|
|
437
|
+
muted: true,
|
|
438
|
+
children: "Sign here"
|
|
439
|
+
})]
|
|
440
|
+
})
|
|
441
|
+
}) : null]
|
|
442
|
+
})
|
|
443
|
+
})
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
const SignatureForwarded = /*#__PURE__*/forwardRef(SignatureRoot);
|
|
447
|
+
SignatureForwarded.displayName = 'Signature';
|
|
448
|
+
/** A row of controls under or over the pad. Purely layout. */
|
|
449
|
+
function SignatureToolbar({
|
|
450
|
+
className,
|
|
451
|
+
...props
|
|
452
|
+
}) {
|
|
453
|
+
return /*#__PURE__*/_jsx(View, {
|
|
454
|
+
className: cn('flex-row items-center justify-between gap-2', className),
|
|
455
|
+
...props
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
SignatureToolbar.displayName = 'Signature.Toolbar';
|
|
459
|
+
/**
|
|
460
|
+
* The two pad controls are the same round button with a different icon and a
|
|
461
|
+
* different spoken name, so they are built rather than written twice.
|
|
462
|
+
*/
|
|
463
|
+
function circleButton(Icon, label, displayName) {
|
|
464
|
+
function Control({
|
|
465
|
+
className,
|
|
466
|
+
disabled,
|
|
467
|
+
children,
|
|
468
|
+
accessibilityLabel,
|
|
469
|
+
...props
|
|
470
|
+
}) {
|
|
471
|
+
return /*#__PURE__*/_jsx(AnimatedPressable, {
|
|
472
|
+
accessibilityRole: "button",
|
|
473
|
+
accessibilityLabel: accessibilityLabel ?? label,
|
|
474
|
+
accessibilityState: {
|
|
475
|
+
disabled
|
|
476
|
+
},
|
|
477
|
+
disabled: disabled,
|
|
478
|
+
hitSlop: 8,
|
|
479
|
+
className: cn('h-9 w-9 items-center justify-center rounded-full bg-muted', disabled && 'opacity-[0.48]', className),
|
|
480
|
+
...props,
|
|
481
|
+
children: children ?? /*#__PURE__*/_jsx(Icon, {
|
|
482
|
+
size: 16
|
|
483
|
+
})
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
Control.displayName = displayName;
|
|
487
|
+
return Control;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
/** Removes the last stroke. Wire it to `ref.current?.undo()`. */
|
|
491
|
+
const SignatureUndo = circleButton(RotateCcwIcon, 'Undo last stroke', 'Signature.Undo');
|
|
492
|
+
|
|
493
|
+
/** Drops every stroke. Wire it to `ref.current?.clear()`. */
|
|
494
|
+
const SignatureClear = circleButton(TrashIcon, 'Clear signature', 'Signature.Clear');
|
|
495
|
+
export const Signature = Object.assign(SignatureForwarded, {
|
|
496
|
+
Toolbar: SignatureToolbar,
|
|
497
|
+
Undo: SignatureUndo,
|
|
498
|
+
Clear: SignatureClear
|
|
499
|
+
});
|
|
500
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","View","useCSSVariable","Gesture","GestureDetector","Animated","runOnJS","useAnimatedProps","useSharedValue","Svg","Path","tv","PencilIcon","RotateCcwIcon","TrashIcon","AnimatedPressable","Text","cn","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","AnimatedPath","createAnimatedComponent","FileSystem","require","captureRef","mod","hasSignatureFileSystem","hasSignatureRaster","signatureVariants","slots","root","pad","placeholder","guide","toolbar","variants","size","sm","md","lg","full","disabled","true","defaultVariants","strokePath","points","count","length","d","i","px","py","x","y","SignatureRoot","className","strokeColor","strokeWidth","minDistance","guideline","guidelineLabel","onBegin","onEnd","onChange","padClassName","placeholderClassName","guideClassName","props","ref","strokes","setStrokes","undone","setUndone","layout","setLayout","width","height","live","padRef","inkToken","ink","changeRef","current","beginRef","endRef","reported","commit","begin","pan","Pan","averageTouches","enabled","event","value","onUpdate","last","dx","dy","onFinalize","liveProps","svgDocument","Math","round","paths","map","join","rasterise","scale","Error","format","quality","result","clear","undo","undefined","stack","slice","redo","restored","isEmpty","strokeCount","toSVG","toDataURL","encodeURIComponent","uri","read","readAsStringAsync","base64","encoding","save","options","directory","filename","base","documentDirectory","Paths","document","name","Date","now","dir","endsWith","temporary","copy","copyAsync","from","to","File","file","create","overwrite","write","writeAsStringAsync","empty","children","gesture","collapsable","onLayout","nativeEvent","accessible","accessibilityRole","accessibilityLabel","accessibilityHint","accessibilityState","style","top","pointerEvents","muted","index","fill","stroke","strokeLinecap","strokeLinejoin","animatedProps","SignatureForwarded","displayName","SignatureToolbar","circleButton","Icon","label","Control","hitSlop","SignatureUndo","SignatureClear","Signature","Object","assign","Toolbar","Undo","Clear"],"sourceRoot":"../../../../src","sources":["components/signature/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,6 +29,7 @@ import Animated, { runOnJS, useAnimatedStyle, useSharedValue, withSpring } from
|
|
|
29
29
|
import { tv } from 'tailwind-variants';
|
|
30
30
|
import { getNativeUI } from "../../native/index.js";
|
|
31
31
|
import { Text } from "../../primitives/text.js";
|
|
32
|
+
import { selectionTick } from "../../utils/haptics.js";
|
|
32
33
|
|
|
33
34
|
/**
|
|
34
35
|
* Springs the thumb onto its resting step after a drag or a track tap. Drags
|
|
@@ -150,6 +151,7 @@ export const Slider = /*#__PURE__*/forwardRef(({
|
|
|
150
151
|
label,
|
|
151
152
|
showValue = false,
|
|
152
153
|
formatValue,
|
|
154
|
+
haptics = false,
|
|
153
155
|
color = 'primary',
|
|
154
156
|
size = 'md'
|
|
155
157
|
}, ref) => {
|
|
@@ -178,6 +180,9 @@ export const Slider = /*#__PURE__*/forwardRef(({
|
|
|
178
180
|
changeRef.current = onValueChange;
|
|
179
181
|
const commitRef = useRef(onValueCommit);
|
|
180
182
|
commitRef.current = onValueCommit;
|
|
183
|
+
// The last step a drag ticked on, so haptics fire once per step, not per
|
|
184
|
+
// pixel of movement within it.
|
|
185
|
+
const lastTick = useRef(value);
|
|
181
186
|
const emitChange = useCallback(next => {
|
|
182
187
|
if (!isControlled) setInternal(next);
|
|
183
188
|
changeRef.current?.(next);
|
|
@@ -197,9 +202,13 @@ export const Slider = /*#__PURE__*/forwardRef(({
|
|
|
197
202
|
const commitFromProgress = useCallback((p, commit) => {
|
|
198
203
|
const raw = min + p * (max - min);
|
|
199
204
|
const snapped = snap(raw, min, max, step);
|
|
205
|
+
if (haptics && snapped !== lastTick.current) {
|
|
206
|
+
lastTick.current = snapped;
|
|
207
|
+
selectionTick();
|
|
208
|
+
}
|
|
200
209
|
emitChange(snapped);
|
|
201
210
|
if (commit) emitCommit(snapped);
|
|
202
|
-
}, [min, max, step, emitChange, emitCommit]);
|
|
211
|
+
}, [min, max, step, haptics, emitChange, emitCommit]);
|
|
203
212
|
const pan = Gesture.Pan().enabled(!disabled).hitSlop(HIT_SLOP).onBegin(() => {
|
|
204
213
|
startProgress.value = progress.value;
|
|
205
214
|
pressed.value = withSpring(1, KNOB_SPRING);
|
|
@@ -247,6 +256,10 @@ export const Slider = /*#__PURE__*/forwardRef(({
|
|
|
247
256
|
const nudge = dir => {
|
|
248
257
|
const next = snap(value + dir * (step || 1), min, max, step);
|
|
249
258
|
if (next === value) return;
|
|
259
|
+
if (haptics) {
|
|
260
|
+
lastTick.current = next;
|
|
261
|
+
selectionTick();
|
|
262
|
+
}
|
|
250
263
|
progress.value = withSpring(max > min ? (next - min) / (max - min) : 0, SPRING);
|
|
251
264
|
emitChange(next);
|
|
252
265
|
emitCommit(next);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useCallback","useEffect","useRef","useState","View","Gesture","GestureDetector","Animated","runOnJS","useAnimatedStyle","useSharedValue","withSpring","tv","getNativeUI","Text","jsx","_jsx","jsxs","_jsxs","SPRING","damping","stiffness","mass","KNOB_SPRING","KNOB_PRESSED_SCALE","HIT_SLOP","sliderVariants","slots","root","header","label","value","track","fill","thumb","knob","variants","color","primary","success","warning","destructive","info","size","sm","md","lg","disabled","true","defaultVariants","THUMB_WIDTH","clampJS","min","max","Math","snap","step","stepped","round","Slider","className","headerClassName","trackClassName","fillClassName","thumbClassName","knobClassName","valueProp","defaultValue","onValueChange","onValueCommit","native","showValue","formatValue","ref","isControlled","undefined","internal","setInternal","thumbWidth","nativeUI","trackWidth","progress","startProgress","pressed","changeRef","current","commitRef","emitChange","next","emitCommit","onLayout","event","nativeEvent","layout","width","commitFromProgress","p","commit","raw","snapped","pan","Pan","enabled","hitSlop","onBegin","onUpdate","travel","delta","translationX","onFinalize","tap","Tap","maxDuration","onEnd","x","gesture","Race","fillStyle","thumbStyle","transform","translateX","knobStyle","scale","nudge","dir","onAccessibilityAction","actionName","shownValue","String","children","Host","NativeSlider","matchContents","vertical","collapsable","style","accessible","accessibilityRole","accessibilityLabel","accessibilityState","accessibilityValue","now","text","accessibilityActions","name","displayName"],"sourceRoot":"../../../../src","sources":["components/slider/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useEffect","useRef","useState","View","Gesture","GestureDetector","Animated","runOnJS","useAnimatedStyle","useSharedValue","withSpring","tv","getNativeUI","Text","selectionTick","jsx","_jsx","jsxs","_jsxs","SPRING","damping","stiffness","mass","KNOB_SPRING","KNOB_PRESSED_SCALE","HIT_SLOP","sliderVariants","slots","root","header","label","value","track","fill","thumb","knob","variants","color","primary","success","warning","destructive","info","size","sm","md","lg","disabled","true","defaultVariants","THUMB_WIDTH","clampJS","min","max","Math","snap","step","stepped","round","Slider","className","headerClassName","trackClassName","fillClassName","thumbClassName","knobClassName","valueProp","defaultValue","onValueChange","onValueCommit","native","showValue","formatValue","haptics","ref","isControlled","undefined","internal","setInternal","thumbWidth","nativeUI","trackWidth","progress","startProgress","pressed","changeRef","current","commitRef","lastTick","emitChange","next","emitCommit","onLayout","event","nativeEvent","layout","width","commitFromProgress","p","commit","raw","snapped","pan","Pan","enabled","hitSlop","onBegin","onUpdate","travel","delta","translationX","onFinalize","tap","Tap","maxDuration","onEnd","x","gesture","Race","fillStyle","thumbStyle","transform","translateX","knobStyle","scale","nudge","dir","onAccessibilityAction","actionName","shownValue","String","children","Host","NativeSlider","matchContents","vertical","collapsable","style","accessible","accessibilityRole","accessibilityLabel","accessibilityState","accessibilityValue","now","text","accessibilityActions","name","displayName"],"sourceRoot":"../../../../src","sources":["components/slider/index.tsx"],"mappings":"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","ignoreList":[]}
|