panelui-native 0.36.0 → 0.40.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 +13 -1
- package/lib/module/components/combobox/index.js +718 -0
- package/lib/module/components/combobox/index.js.map +1 -0
- package/lib/module/components/form/use-field.js +18 -0
- package/lib/module/components/form/use-field.js.map +1 -1
- package/lib/module/components/form/use-form.js +91 -8
- package/lib/module/components/form/use-form.js.map +1 -1
- package/lib/module/components/heatmap-chart/index.js +113 -6
- package/lib/module/components/heatmap-chart/index.js.map +1 -1
- package/lib/module/components/input/index.js +10 -3
- package/lib/module/components/input/index.js.map +1 -1
- package/lib/module/components/pagination/index.js +519 -0
- package/lib/module/components/pagination/index.js.map +1 -0
- package/lib/module/components/ring-chart/index.js +183 -45
- package/lib/module/components/ring-chart/index.js.map +1 -1
- package/lib/module/components/select/index.js +116 -15
- package/lib/module/components/select/index.js.map +1 -1
- package/lib/module/components/steps/index.js +8 -6
- package/lib/module/components/steps/index.js.map +1 -1
- package/lib/module/components/table/index.js +100 -26
- package/lib/module/components/table/index.js.map +1 -1
- package/lib/module/components/timeline/index.js +8 -7
- package/lib/module/components/timeline/index.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/theme/use-theme.js +1 -1
- package/lib/typescript/src/components/combobox/index.d.ts +164 -0
- package/lib/typescript/src/components/combobox/index.d.ts.map +1 -0
- package/lib/typescript/src/components/form/use-field.d.ts.map +1 -1
- package/lib/typescript/src/components/form/use-form.d.ts.map +1 -1
- package/lib/typescript/src/components/heatmap-chart/index.d.ts +51 -3
- package/lib/typescript/src/components/heatmap-chart/index.d.ts.map +1 -1
- package/lib/typescript/src/components/input/index.d.ts +18 -4
- package/lib/typescript/src/components/input/index.d.ts.map +1 -1
- package/lib/typescript/src/components/pagination/index.d.ts +285 -0
- package/lib/typescript/src/components/pagination/index.d.ts.map +1 -0
- package/lib/typescript/src/components/ring-chart/index.d.ts +75 -8
- package/lib/typescript/src/components/ring-chart/index.d.ts.map +1 -1
- package/lib/typescript/src/components/select/index.d.ts +32 -0
- package/lib/typescript/src/components/select/index.d.ts.map +1 -1
- package/lib/typescript/src/components/steps/index.d.ts +8 -6
- package/lib/typescript/src/components/steps/index.d.ts.map +1 -1
- package/lib/typescript/src/components/table/index.d.ts +59 -17
- package/lib/typescript/src/components/table/index.d.ts.map +1 -1
- package/lib/typescript/src/components/timeline/index.d.ts +8 -7
- package/lib/typescript/src/components/timeline/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +4 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/theme/use-theme.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/combobox/index.tsx +927 -0
- package/src/components/form/use-field.ts +23 -0
- package/src/components/form/use-form.ts +106 -16
- package/src/components/heatmap-chart/index.tsx +147 -5
- package/src/components/input/index.tsx +21 -7
- package/src/components/pagination/index.tsx +591 -0
- package/src/components/ring-chart/index.tsx +269 -47
- package/src/components/select/index.tsx +114 -15
- package/src/components/steps/index.tsx +8 -6
- package/src/components/table/index.tsx +146 -30
- package/src/components/timeline/index.tsx +8 -7
- package/src/index.ts +25 -0
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
*
|
|
6
6
|
* ```tsx
|
|
7
7
|
* <RingChart data={goals}>
|
|
8
|
+
* <RingChart.Header title="Today" value="486 kcal" legend />
|
|
8
9
|
* <RingChart.Ring index={0} />
|
|
9
10
|
* <RingChart.Ring index={1} />
|
|
10
11
|
* <RingChart.Center />
|
|
11
|
-
* <RingChart.Legend />
|
|
12
12
|
* </RingChart>
|
|
13
13
|
* ```
|
|
14
14
|
*
|
|
@@ -27,11 +27,15 @@
|
|
|
27
27
|
*
|
|
28
28
|
* ## Drawing
|
|
29
29
|
*
|
|
30
|
-
* Each ring is two arcs — a
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
30
|
+
* Each ring is two arcs — a track and the progress over it — with only the
|
|
31
|
+
* progress animated, through `strokeDasharray`. Sweeping the arc by rebuilding
|
|
32
|
+
* its path would work, but a dash offset is two numbers moving on an unchanged
|
|
33
|
+
* path, and it keeps the rounded cap pinned to the moving end for free.
|
|
34
|
+
*
|
|
35
|
+
* The same dash pattern is what makes the other two shapes possible without any
|
|
36
|
+
* more geometry. An open gauge is the pattern cut short of the circumference
|
|
37
|
+
* and the whole circle turned to put the gap where it is wanted; a segmented
|
|
38
|
+
* ring is the pattern repeated, one pair per tick. Both stay one `Circle`.
|
|
35
39
|
*
|
|
36
40
|
* Touch, not hover: a ring is selected by pressing it, and pressing the same
|
|
37
41
|
* one again clears the selection. There is no equivalent of a pointer resting
|
|
@@ -48,6 +52,11 @@ import { cn } from "../../utils/cn.js";
|
|
|
48
52
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
49
53
|
const AnimatedCircle = Animated.createAnimatedComponent(Circle);
|
|
50
54
|
|
|
55
|
+
/**
|
|
56
|
+
* Where a child is drawn. Rings go inside the SVG, the header above it, and
|
|
57
|
+
* everything else over it as ordinary views.
|
|
58
|
+
*/
|
|
59
|
+
|
|
51
60
|
/** One ring per datum, and the datum is the whole of its contract. */
|
|
52
61
|
|
|
53
62
|
const RingChartContext = /*#__PURE__*/createContext(null);
|
|
@@ -79,6 +88,8 @@ const RingChartRoot = /*#__PURE__*/forwardRef(function RingChartRoot({
|
|
|
79
88
|
size,
|
|
80
89
|
strokeWidth = 12,
|
|
81
90
|
ringGap = 6,
|
|
91
|
+
startAngle = 0,
|
|
92
|
+
endAngle = 360,
|
|
82
93
|
animationDuration = 1100,
|
|
83
94
|
activeIndex: activeIndexProp,
|
|
84
95
|
onActiveIndexChange,
|
|
@@ -97,6 +108,13 @@ const RingChartRoot = /*#__PURE__*/forwardRef(function RingChartRoot({
|
|
|
97
108
|
}, [controlled, onActiveIndexChange]);
|
|
98
109
|
const box = size ?? measured;
|
|
99
110
|
|
|
111
|
+
/*
|
|
112
|
+
* The sweep as a fraction of a turn, which is the form every arc length here
|
|
113
|
+
* is wanted in. Clamped to one turn because a ring drawn past 360° laps
|
|
114
|
+
* itself, and clamped above zero because a ring of no length is not a chart.
|
|
115
|
+
*/
|
|
116
|
+
const arc = Math.min(Math.max(endAngle - startAngle, 0), 360) / 360;
|
|
117
|
+
|
|
100
118
|
/*
|
|
101
119
|
* Outermost ring first, so `data[0]` is the one the eye lands on. Each ring
|
|
102
120
|
* inside it steps in by its own thickness plus the gap.
|
|
@@ -150,45 +168,52 @@ const RingChartRoot = /*#__PURE__*/forwardRef(function RingChartRoot({
|
|
|
150
168
|
reveal,
|
|
151
169
|
activeIndex,
|
|
152
170
|
setActiveIndex,
|
|
153
|
-
radiusOf
|
|
154
|
-
|
|
171
|
+
radiusOf,
|
|
172
|
+
startAngle,
|
|
173
|
+
arc
|
|
174
|
+
}), [data, box, strokeWidth, ringGap, colors, reveal, activeIndex, setActiveIndex, radiusOf, startAngle, arc]);
|
|
155
175
|
const rings = [];
|
|
156
176
|
const overlay = [];
|
|
177
|
+
const header = [];
|
|
157
178
|
Children.forEach(children, (child, index) => {
|
|
158
179
|
if (! /*#__PURE__*/isValidElement(child)) return;
|
|
159
180
|
const slot = child.type.slot ?? 'overlay';
|
|
160
|
-
(slot === 'ring' ? rings : overlay).push(/*#__PURE__*/_jsx(ChildSlot, {
|
|
181
|
+
(slot === 'ring' ? rings : slot === 'header' ? header : overlay).push(/*#__PURE__*/_jsx(ChildSlot, {
|
|
161
182
|
children: child
|
|
162
183
|
}, index));
|
|
163
184
|
});
|
|
164
185
|
return /*#__PURE__*/_jsx(RingChartContext.Provider, {
|
|
165
186
|
value: context,
|
|
166
|
-
children: /*#__PURE__*/
|
|
187
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
167
188
|
...props,
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
children:
|
|
181
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
182
|
-
pointerEvents: "box-none",
|
|
183
|
-
style: {
|
|
184
|
-
position: 'absolute',
|
|
189
|
+
style: props.style,
|
|
190
|
+
className: cn('w-full', className),
|
|
191
|
+
children: [header, /*#__PURE__*/_jsx(View, {
|
|
192
|
+
onLayout: onLayout,
|
|
193
|
+
style: size ? {
|
|
194
|
+
width: size,
|
|
195
|
+
height: size
|
|
196
|
+
} : {
|
|
197
|
+
aspectRatio: 1
|
|
198
|
+
},
|
|
199
|
+
className: cn('items-center justify-center', size ? 'self-center' : 'w-full'),
|
|
200
|
+
children: box > 0 ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
201
|
+
children: [/*#__PURE__*/_jsx(Svg, {
|
|
185
202
|
width: box,
|
|
186
|
-
height: box
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
203
|
+
height: box,
|
|
204
|
+
children: rings
|
|
205
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
206
|
+
pointerEvents: "box-none",
|
|
207
|
+
style: {
|
|
208
|
+
position: 'absolute',
|
|
209
|
+
width: box,
|
|
210
|
+
height: box
|
|
211
|
+
},
|
|
212
|
+
className: "items-center justify-center",
|
|
213
|
+
children: overlay
|
|
214
|
+
})]
|
|
215
|
+
}) : null
|
|
216
|
+
})]
|
|
192
217
|
})
|
|
193
218
|
});
|
|
194
219
|
});
|
|
@@ -213,8 +238,10 @@ function RingChartRing({
|
|
|
213
238
|
index,
|
|
214
239
|
color,
|
|
215
240
|
colorIndex,
|
|
216
|
-
lineCap
|
|
217
|
-
trackOpacity = 0.15
|
|
241
|
+
lineCap,
|
|
242
|
+
trackOpacity = 0.15,
|
|
243
|
+
segments,
|
|
244
|
+
segmentGap = 3
|
|
218
245
|
}) {
|
|
219
246
|
const {
|
|
220
247
|
data,
|
|
@@ -224,7 +251,9 @@ function RingChartRing({
|
|
|
224
251
|
reveal,
|
|
225
252
|
activeIndex,
|
|
226
253
|
setActiveIndex,
|
|
227
|
-
radiusOf
|
|
254
|
+
radiusOf,
|
|
255
|
+
startAngle,
|
|
256
|
+
arc
|
|
228
257
|
} = useChart('RingChart.Ring');
|
|
229
258
|
const datum = data[index];
|
|
230
259
|
const tokenColor = useSeriesColor(undefined, colorIndex ?? 1);
|
|
@@ -232,6 +261,14 @@ function RingChartRing({
|
|
|
232
261
|
const radius = radiusOf(index);
|
|
233
262
|
const circumference = 2 * Math.PI * radius;
|
|
234
263
|
const centre = size / 2;
|
|
264
|
+
/* The drawn part of the circle. The whole of it for a closed ring. */
|
|
265
|
+
const arcLength = circumference * arc;
|
|
266
|
+
const ticks = segments && segments > 0 ? Math.floor(segments) : 0;
|
|
267
|
+
/* One tick and the gap after it. The gap is taken out of the tick, not added
|
|
268
|
+
to it, so N ticks still span exactly the arc asked for. */
|
|
269
|
+
const slot = ticks ? arcLength / ticks : 0;
|
|
270
|
+
const dash = ticks ? Math.max(slot - segmentGap, 0.5) : 0;
|
|
271
|
+
const cap = lineCap ?? (ticks ? 'butt' : 'round');
|
|
235
272
|
const fraction = datum && datum.maxValue > 0 ? datum.value / datum.maxValue : 0;
|
|
236
273
|
// A value past its target fills the ring and stops. Going round twice would
|
|
237
274
|
// draw 110% as 10%, which is the wrong answer told confidently.
|
|
@@ -246,13 +283,38 @@ function RingChartRing({
|
|
|
246
283
|
const start = index / count * 0.4;
|
|
247
284
|
const props = useAnimatedProps(() => {
|
|
248
285
|
const progress = Math.max(0, Math.min(1, (reveal.value - start) / 0.6));
|
|
249
|
-
|
|
286
|
+
if (!ticks) {
|
|
287
|
+
return {
|
|
288
|
+
strokeDasharray: [arcLength * clamped * progress, circumference]
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
/*
|
|
292
|
+
* A tick is lit or it is not, so the sweep rounds to whole ones. The array
|
|
293
|
+
* stays the same length whatever is lit — an unlit tick is a dash of no
|
|
294
|
+
* length rather than a missing pair — because a dash pattern that changes
|
|
295
|
+
* length between frames is a new pattern, not an animated one.
|
|
296
|
+
*/
|
|
297
|
+
const lit = Math.round(ticks * clamped * progress);
|
|
298
|
+
const pattern = [];
|
|
299
|
+
for (let tick = 0; tick < ticks; tick += 1) {
|
|
300
|
+
if (tick < lit) pattern.push(dash, slot - dash);else pattern.push(0, slot);
|
|
301
|
+
}
|
|
250
302
|
return {
|
|
251
|
-
strokeDasharray:
|
|
303
|
+
strokeDasharray: pattern
|
|
252
304
|
};
|
|
253
305
|
});
|
|
254
306
|
const dimmed = activeIndex >= 0 && activeIndex !== index;
|
|
255
307
|
if (!datum || radius <= 0) return null;
|
|
308
|
+
|
|
309
|
+
/*
|
|
310
|
+
* A circle's stroke starts at three o'clock, so everything is turned back a
|
|
311
|
+
* quarter to put the start at twelve — an arc starting at three reads as a
|
|
312
|
+
* gauge that has already been running. `startAngle` turns it on from there.
|
|
313
|
+
*/
|
|
314
|
+
const rotate = `rotate(${startAngle - 90} ${centre} ${centre})`;
|
|
315
|
+
/* The unlit part of a segmented ring is the gaps between its ticks, so the
|
|
316
|
+
track is ticked too; an open gauge's track stops where its arc stops. */
|
|
317
|
+
const trackDash = ticks ? [dash, slot - dash] : [arcLength, circumference];
|
|
256
318
|
return /*#__PURE__*/_jsxs(G, {
|
|
257
319
|
opacity: dimmed ? 0.35 : 1,
|
|
258
320
|
children: [/*#__PURE__*/_jsx(Circle, {
|
|
@@ -262,7 +324,10 @@ function RingChartRing({
|
|
|
262
324
|
stroke: stroke,
|
|
263
325
|
strokeOpacity: trackOpacity,
|
|
264
326
|
strokeWidth: strokeWidth,
|
|
265
|
-
|
|
327
|
+
strokeLinecap: cap,
|
|
328
|
+
strokeDasharray: trackDash,
|
|
329
|
+
fill: "none",
|
|
330
|
+
transform: rotate
|
|
266
331
|
}), /*#__PURE__*/_jsx(AnimatedCircle, {
|
|
267
332
|
animatedProps: props,
|
|
268
333
|
cx: centre,
|
|
@@ -270,19 +335,18 @@ function RingChartRing({
|
|
|
270
335
|
r: radius,
|
|
271
336
|
stroke: stroke,
|
|
272
337
|
strokeWidth: strokeWidth,
|
|
273
|
-
strokeLinecap:
|
|
274
|
-
fill: "none"
|
|
275
|
-
|
|
276
|
-
// three reads as a gauge that has already been running.
|
|
277
|
-
,
|
|
278
|
-
transform: `rotate(-90 ${centre} ${centre})`
|
|
338
|
+
strokeLinecap: cap,
|
|
339
|
+
fill: "none",
|
|
340
|
+
transform: rotate
|
|
279
341
|
}), /*#__PURE__*/_jsx(Circle, {
|
|
280
342
|
cx: centre,
|
|
281
343
|
cy: centre,
|
|
282
344
|
r: radius,
|
|
283
345
|
stroke: "transparent",
|
|
284
346
|
strokeWidth: Math.max(strokeWidth, 28),
|
|
347
|
+
strokeDasharray: [arcLength, circumference],
|
|
285
348
|
fill: "none",
|
|
349
|
+
transform: rotate,
|
|
286
350
|
onPress: () => setActiveIndex(activeIndex === index ? -1 : index)
|
|
287
351
|
})]
|
|
288
352
|
});
|
|
@@ -415,7 +479,81 @@ function RingChartLegend({
|
|
|
415
479
|
}
|
|
416
480
|
RingChartLegend.displayName = 'RingChart.Legend';
|
|
417
481
|
RingChartLegend.slot = 'overlay';
|
|
482
|
+
/**
|
|
483
|
+
* The strip above the rings: what the chart is of, what it currently reads, and
|
|
484
|
+
* what the colours mean.
|
|
485
|
+
*
|
|
486
|
+
* It belongs to the chart rather than to the card around it because it is about
|
|
487
|
+
* the *rings* — the number changes as one is selected, and the legend is the
|
|
488
|
+
* list the chart itself is holding. The card's header is a caption on the tray
|
|
489
|
+
* the chart sits in; this is the chart introducing itself.
|
|
490
|
+
*
|
|
491
|
+
* The value is not derived here. There is no total to derive: the rings measure
|
|
492
|
+
* different things against different targets. Take it from `onActiveIndexChange`
|
|
493
|
+
* and pass the formatted string down, so one header can show the headline figure
|
|
494
|
+
* when nothing is selected and a ring's own when something is.
|
|
495
|
+
*/
|
|
496
|
+
function RingChartHeader({
|
|
497
|
+
className,
|
|
498
|
+
title,
|
|
499
|
+
value,
|
|
500
|
+
caption,
|
|
501
|
+
labels,
|
|
502
|
+
legend = false,
|
|
503
|
+
children,
|
|
504
|
+
...props
|
|
505
|
+
}) {
|
|
506
|
+
const {
|
|
507
|
+
data,
|
|
508
|
+
colors
|
|
509
|
+
} = useChart('RingChart.Header');
|
|
510
|
+
const trailing = children ?? (legend && data.length ? /*#__PURE__*/_jsx(View, {
|
|
511
|
+
className: "flex-row flex-wrap items-center justify-end gap-x-3 gap-y-1",
|
|
512
|
+
children: data.map((ring, index) => /*#__PURE__*/_jsxs(View, {
|
|
513
|
+
className: "flex-row items-center gap-1.5",
|
|
514
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
515
|
+
style: {
|
|
516
|
+
width: 8,
|
|
517
|
+
height: 8,
|
|
518
|
+
borderRadius: 4,
|
|
519
|
+
backgroundColor: colors[index]
|
|
520
|
+
}
|
|
521
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
522
|
+
size: "xs",
|
|
523
|
+
muted: true,
|
|
524
|
+
numberOfLines: 1,
|
|
525
|
+
children: labels?.[ring.label] ?? ring.label
|
|
526
|
+
})]
|
|
527
|
+
}, ring.label))
|
|
528
|
+
}) : null);
|
|
529
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
530
|
+
...props,
|
|
531
|
+
className: cn('flex-row items-start justify-between gap-3 pb-3', className),
|
|
532
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
533
|
+
className: "flex-1 gap-0.5",
|
|
534
|
+
children: [title ? /*#__PURE__*/_jsx(Text, {
|
|
535
|
+
size: "xs",
|
|
536
|
+
muted: true,
|
|
537
|
+
children: title
|
|
538
|
+
}) : null, value ? /*#__PURE__*/_jsx(Text, {
|
|
539
|
+
size: "xl",
|
|
540
|
+
weight: "bold",
|
|
541
|
+
children: value
|
|
542
|
+
}) : null, caption ? /*#__PURE__*/_jsx(Text, {
|
|
543
|
+
size: "xs",
|
|
544
|
+
muted: true,
|
|
545
|
+
children: caption
|
|
546
|
+
}) : null]
|
|
547
|
+
}), trailing ? /*#__PURE__*/_jsx(View, {
|
|
548
|
+
className: "shrink pt-1",
|
|
549
|
+
children: trailing
|
|
550
|
+
}) : null]
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
RingChartHeader.displayName = 'RingChart.Header';
|
|
554
|
+
RingChartHeader.slot = 'header';
|
|
418
555
|
export const RingChart = Object.assign(RingChartRoot, {
|
|
556
|
+
Header: RingChartHeader,
|
|
419
557
|
Ring: RingChartRing,
|
|
420
558
|
Center: RingChartCenter,
|
|
421
559
|
Legend: RingChartLegend
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Children","createContext","forwardRef","isValidElement","useContext","useEffect","useImperativeHandle","useMemo","useRef","useState","Pressable","View","Animated","Easing","useAnimatedProps","useReducedMotion","useSharedValue","withTiming","Svg","Circle","G","Text","compactNumber","useSeriesColor","cn","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AnimatedCircle","createAnimatedComponent","RingChartContext","useChart","component","context","Error","useRingChart","data","activeIndex","activeRing","RingChartRoot","className","size","strokeWidth","ringGap","animationDuration","activeIndexProp","onActiveIndexChange","children","props","ref","measured","setMeasured","internalActive","setInternalActive","reveal","reducedMotion","controlled","undefined","setActiveIndex","index","box","radiusOf","Math","max","playReveal","value","duration","easing","bezier","revealed","current","length","replay","c1","c2","c3","c4","c5","palette","colors","map","ring","color","onLayout","event","width","height","nativeEvent","layout","next","round","min","rings","overlay","forEach","child","slot","type","push","ChildSlot","Provider","style","aspectRatio","pointerEvents","position","displayName","RingChartRing","colorIndex","lineCap","trackOpacity","datum","tokenColor","stroke","radius","circumference","PI","centre","fraction","maxValue","clamped","count","start","progress","drawn","strokeDasharray","dimmed","opacity","cx","cy","r","strokeOpacity","fill","animatedProps","strokeLinecap","transform","onPress","RingChartCenter","defaultLabel","formatValue","selected","format","amount","inner","hole","SQRT2","maxWidth","muted","numberOfLines","label","weight","RingChartLegend","showValue","percent","accessibilityRole","accessibilityLabel","borderRadius","backgroundColor","RingChart","Object","assign","Ring","Center","Legend"],"sourceRoot":"../../../../src","sources":["components/ring-chart/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Children","createContext","forwardRef","isValidElement","useContext","useEffect","useImperativeHandle","useMemo","useRef","useState","Pressable","View","Animated","Easing","useAnimatedProps","useReducedMotion","useSharedValue","withTiming","Svg","Circle","G","Text","compactNumber","useSeriesColor","cn","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AnimatedCircle","createAnimatedComponent","RingChartContext","useChart","component","context","Error","useRingChart","data","activeIndex","activeRing","RingChartRoot","className","size","strokeWidth","ringGap","startAngle","endAngle","animationDuration","activeIndexProp","onActiveIndexChange","children","props","ref","measured","setMeasured","internalActive","setInternalActive","reveal","reducedMotion","controlled","undefined","setActiveIndex","index","box","arc","Math","min","max","radiusOf","playReveal","value","duration","easing","bezier","revealed","current","length","replay","c1","c2","c3","c4","c5","palette","colors","map","ring","color","onLayout","event","width","height","nativeEvent","layout","next","round","rings","overlay","header","forEach","child","slot","type","push","ChildSlot","Provider","style","aspectRatio","pointerEvents","position","displayName","RingChartRing","colorIndex","lineCap","trackOpacity","segments","segmentGap","datum","tokenColor","stroke","radius","circumference","PI","centre","arcLength","ticks","floor","dash","cap","fraction","maxValue","clamped","count","start","progress","strokeDasharray","lit","pattern","tick","dimmed","rotate","trackDash","opacity","cx","cy","r","strokeOpacity","strokeLinecap","fill","transform","animatedProps","onPress","RingChartCenter","defaultLabel","formatValue","selected","format","amount","inner","hole","SQRT2","maxWidth","muted","numberOfLines","label","weight","RingChartLegend","showValue","percent","accessibilityRole","accessibilityLabel","borderRadius","backgroundColor","RingChartHeader","title","caption","labels","legend","trailing","RingChart","Object","assign","Header","Ring","Center","Legend"],"sourceRoot":"../../../../src","sources":["components/ring-chart/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,8 +28,14 @@
|
|
|
28
28
|
* the option labels. The filter narrows what is *shown* — the declared options
|
|
29
29
|
* are still the source of truth, so nothing has to be lifted into state to make
|
|
30
30
|
* it work.
|
|
31
|
+
*
|
|
32
|
+
* A list long enough to need a filter is usually long enough to want dividing,
|
|
33
|
+
* so options can be wrapped in `Select.Group` under a heading. Grouping is
|
|
34
|
+
* presentational — the value is still a flat string — and the filter reaches
|
|
35
|
+
* through it, dropping any group the query empties rather than leaving a
|
|
36
|
+
* heading standing over nothing.
|
|
31
37
|
*/
|
|
32
|
-
import { Children, createContext, isValidElement, useCallback, useContext, useMemo, useRef, useState } from 'react';
|
|
38
|
+
import { Children, cloneElement, createContext, isValidElement, useCallback, useContext, useMemo, useRef, useState } from 'react';
|
|
33
39
|
import { Pressable, ScrollView, useWindowDimensions, View } from 'react-native';
|
|
34
40
|
import Animated, { FadeIn, FadeOut, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
35
41
|
import { tv } from 'tailwind-variants';
|
|
@@ -39,6 +45,7 @@ import { getNativeUI } from "../../native/index.js";
|
|
|
39
45
|
import { Portal } from "../../primitives/portal.js";
|
|
40
46
|
import { Text, textChildren } from "../../primitives/text.js";
|
|
41
47
|
import { useBackHandler } from "../../hooks/use-back-handler.js";
|
|
48
|
+
import { cn } from "../../utils/cn.js";
|
|
42
49
|
import { BottomSheet } from "../bottom-sheet/index.js";
|
|
43
50
|
import { InputGroup } from "../input-group/index.js";
|
|
44
51
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -52,7 +59,9 @@ const selectVariants = tv({
|
|
|
52
59
|
list: 'overflow-hidden rounded-xl border border-border bg-popover p-2 shadow-sm',
|
|
53
60
|
item: 'flex-row items-center gap-2 rounded-lg px-3 py-3',
|
|
54
61
|
itemLabel: 'flex-1 text-base font-medium text-foreground',
|
|
55
|
-
itemIndicator: 'h-5 w-5 items-center justify-center'
|
|
62
|
+
itemIndicator: 'h-5 w-5 items-center justify-center',
|
|
63
|
+
group: 'gap-1',
|
|
64
|
+
groupLabel: 'px-3 pb-1 pt-2'
|
|
56
65
|
},
|
|
57
66
|
variants: {
|
|
58
67
|
selected: {
|
|
@@ -126,6 +135,97 @@ function SelectItem({
|
|
|
126
135
|
})]
|
|
127
136
|
});
|
|
128
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* A titled run of options.
|
|
140
|
+
*
|
|
141
|
+
* Purely a way of arranging the list: a grouped Select still reports one flat
|
|
142
|
+
* string, and `Select.Item` needs to know nothing about being inside one.
|
|
143
|
+
*/
|
|
144
|
+
function SelectGroup({
|
|
145
|
+
label,
|
|
146
|
+
className,
|
|
147
|
+
labelClassName,
|
|
148
|
+
children
|
|
149
|
+
}) {
|
|
150
|
+
const {
|
|
151
|
+
group,
|
|
152
|
+
groupLabel
|
|
153
|
+
} = selectVariants();
|
|
154
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
155
|
+
className: cn(group(), className),
|
|
156
|
+
children: [label ? /*#__PURE__*/_jsx(View, {
|
|
157
|
+
accessibilityRole: "header",
|
|
158
|
+
className: cn(groupLabel(), labelClassName),
|
|
159
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
160
|
+
size: "xs",
|
|
161
|
+
weight: "medium",
|
|
162
|
+
muted: true,
|
|
163
|
+
className: "uppercase tracking-wide",
|
|
164
|
+
children: label
|
|
165
|
+
})
|
|
166
|
+
}) : null, textChildren(children)]
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Walk the declared children, visiting every `Select.Item` — including the ones
|
|
172
|
+
* nested inside a `Select.Group`.
|
|
173
|
+
*
|
|
174
|
+
* Grouping is a rendering concern, but the selected label and the native
|
|
175
|
+
* picker's option list both want the flat set, so the tree is flattened once
|
|
176
|
+
* here rather than in each of them.
|
|
177
|
+
*/
|
|
178
|
+
function eachOption(children, visit) {
|
|
179
|
+
Children.forEach(children, child => {
|
|
180
|
+
if (! /*#__PURE__*/isValidElement(child)) return;
|
|
181
|
+
if (child.type === SelectGroup) {
|
|
182
|
+
eachOption(child.props.children, visit);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (child.type !== SelectItem) return;
|
|
186
|
+
const {
|
|
187
|
+
value,
|
|
188
|
+
label,
|
|
189
|
+
disabled
|
|
190
|
+
} = child.props;
|
|
191
|
+
visit({
|
|
192
|
+
value,
|
|
193
|
+
label,
|
|
194
|
+
disabled
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* The children a query leaves standing.
|
|
201
|
+
*
|
|
202
|
+
* A group is rebuilt around whatever survives inside it and dropped when that
|
|
203
|
+
* is nothing — a heading with no options under it reads as a section that
|
|
204
|
+
* failed to load rather than one the filter emptied. Anything that is neither
|
|
205
|
+
* an item nor a group is left alone: a caption or a divider the caller put in
|
|
206
|
+
* the list is not something a filter has an opinion about.
|
|
207
|
+
*/
|
|
208
|
+
function filterOptions(children, needle) {
|
|
209
|
+
const kept = [];
|
|
210
|
+
Children.forEach(children, child => {
|
|
211
|
+
if (! /*#__PURE__*/isValidElement(child)) return;
|
|
212
|
+
if (child.type === SelectGroup) {
|
|
213
|
+
const props = child.props;
|
|
214
|
+
const inner = filterOptions(props.children, needle);
|
|
215
|
+
if (inner.length) {
|
|
216
|
+
kept.push(/*#__PURE__*/cloneElement(child, {}, inner));
|
|
217
|
+
}
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if (child.type === SelectItem) {
|
|
221
|
+
const {
|
|
222
|
+
label
|
|
223
|
+
} = child.props;
|
|
224
|
+
if (label.toLowerCase().includes(needle)) kept.push(child);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
return kept;
|
|
228
|
+
}
|
|
129
229
|
|
|
130
230
|
/** Trigger frame in window coordinates, measured when the list opens. */
|
|
131
231
|
|
|
@@ -159,15 +259,7 @@ function SelectRoot({
|
|
|
159
259
|
const nativeUI = native ? getNativeUI() : null;
|
|
160
260
|
const options = useMemo(() => {
|
|
161
261
|
const collected = [];
|
|
162
|
-
|
|
163
|
-
if (/*#__PURE__*/isValidElement(child)) {
|
|
164
|
-
collected.push({
|
|
165
|
-
value: child.props.value,
|
|
166
|
-
label: child.props.label,
|
|
167
|
-
disabled: child.props.disabled
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
});
|
|
262
|
+
eachOption(children, option => collected.push(option));
|
|
171
263
|
return collected;
|
|
172
264
|
}, [children]);
|
|
173
265
|
const selectedLabel = useMemo(() => options.find(option => option.value === value)?.label, [options, value]);
|
|
@@ -181,7 +273,7 @@ function SelectRoot({
|
|
|
181
273
|
const filtered = useMemo(() => {
|
|
182
274
|
const needle = searchable ? query.trim().toLowerCase() : '';
|
|
183
275
|
if (!needle) return null;
|
|
184
|
-
return
|
|
276
|
+
return filterOptions(children, needle);
|
|
185
277
|
}, [children, query, searchable]);
|
|
186
278
|
const close = useCallback(() => {
|
|
187
279
|
chevron.value = withTiming(0, {
|
|
@@ -275,8 +367,14 @@ function SelectRoot({
|
|
|
275
367
|
);
|
|
276
368
|
}
|
|
277
369
|
const trigger = /*#__PURE__*/_jsxs(Pressable, {
|
|
278
|
-
ref: triggerRef
|
|
279
|
-
|
|
370
|
+
ref: triggerRef
|
|
371
|
+
/*
|
|
372
|
+
* A trigger that owns a list of options and reports whether that list is
|
|
373
|
+
* open is a combobox, not a button — and `expanded` only means anything
|
|
374
|
+
* on a role that can be expanded. Announced as "collapsed"/"expanded"
|
|
375
|
+
* rather than as a button whose state has nowhere to be read.
|
|
376
|
+
*/,
|
|
377
|
+
accessibilityRole: "combobox",
|
|
280
378
|
accessibilityState: {
|
|
281
379
|
disabled: !!disabled,
|
|
282
380
|
expanded: open
|
|
@@ -461,7 +559,10 @@ function SelectRoot({
|
|
|
461
559
|
}) : null]
|
|
462
560
|
});
|
|
463
561
|
}
|
|
562
|
+
SelectItem.displayName = 'Select.Item';
|
|
563
|
+
SelectGroup.displayName = 'Select.Group';
|
|
464
564
|
export const Select = Object.assign(SelectRoot, {
|
|
465
|
-
Item: SelectItem
|
|
565
|
+
Item: SelectItem,
|
|
566
|
+
Group: SelectGroup
|
|
466
567
|
});
|
|
467
568
|
//# sourceMappingURL=index.js.map
|