panelui-native 0.66.1 → 0.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +31 -1
  2. package/lib/module/components/accordion/index.js +28 -9
  3. package/lib/module/components/accordion/index.js.map +1 -1
  4. package/lib/module/components/area-chart/index.js +18 -1
  5. package/lib/module/components/area-chart/index.js.map +1 -1
  6. package/lib/module/components/bar-chart/index.js +18 -1
  7. package/lib/module/components/bar-chart/index.js.map +1 -1
  8. package/lib/module/components/button/index.js +14 -7
  9. package/lib/module/components/button/index.js.map +1 -1
  10. package/lib/module/components/candlestick-chart/index.js +18 -1
  11. package/lib/module/components/candlestick-chart/index.js.map +1 -1
  12. package/lib/module/components/collapsible/index.js +280 -0
  13. package/lib/module/components/collapsible/index.js.map +1 -0
  14. package/lib/module/components/flow/index.js +66 -3
  15. package/lib/module/components/flow/index.js.map +1 -1
  16. package/lib/module/components/form/index.js +7 -5
  17. package/lib/module/components/form/index.js.map +1 -1
  18. package/lib/module/components/form/typed-form.js +11 -0
  19. package/lib/module/components/form/typed-form.js.map +1 -0
  20. package/lib/module/components/form/use-form.js +4 -0
  21. package/lib/module/components/form/use-form.js.map +1 -1
  22. package/lib/module/components/heatmap-chart/index.js +27 -1
  23. package/lib/module/components/heatmap-chart/index.js.map +1 -1
  24. package/lib/module/components/line-chart/index.js +18 -1
  25. package/lib/module/components/line-chart/index.js.map +1 -1
  26. package/lib/module/components/live-line-chart/index.js +103 -9
  27. package/lib/module/components/live-line-chart/index.js.map +1 -1
  28. package/lib/module/components/live-line-chart/live-line-accessibility.js +47 -0
  29. package/lib/module/components/live-line-chart/live-line-accessibility.js.map +1 -0
  30. package/lib/module/components/live-line-chart/live-line-lifecycle.js +33 -0
  31. package/lib/module/components/live-line-chart/live-line-lifecycle.js.map +1 -0
  32. package/lib/module/components/marquee/index.js +194 -0
  33. package/lib/module/components/marquee/index.js.map +1 -0
  34. package/lib/module/components/message-scroller/index.js +172 -10
  35. package/lib/module/components/message-scroller/index.js.map +1 -1
  36. package/lib/module/components/message-scroller/message-scroller-math.js +23 -0
  37. package/lib/module/components/message-scroller/message-scroller-math.js.map +1 -1
  38. package/lib/module/components/meter/index.js +268 -0
  39. package/lib/module/components/meter/index.js.map +1 -0
  40. package/lib/module/components/meter/meter-scale.js +142 -0
  41. package/lib/module/components/meter/meter-scale.js.map +1 -0
  42. package/lib/module/components/planner/index.js +788 -0
  43. package/lib/module/components/planner/index.js.map +1 -0
  44. package/lib/module/components/planner/planner-announcement.js +30 -0
  45. package/lib/module/components/planner/planner-announcement.js.map +1 -0
  46. package/lib/module/components/planner/planner-entries.js +132 -0
  47. package/lib/module/components/planner/planner-entries.js.map +1 -0
  48. package/lib/module/components/planner/planner-grid-navigation.js +33 -0
  49. package/lib/module/components/planner/planner-grid-navigation.js.map +1 -0
  50. package/lib/module/components/planner/planner-lifecycle.js +45 -0
  51. package/lib/module/components/planner/planner-lifecycle.js.map +1 -0
  52. package/lib/module/components/popover/index.js +2 -2
  53. package/lib/module/components/popover/index.js.map +1 -1
  54. package/lib/module/components/radar-chart/index.js +18 -1
  55. package/lib/module/components/radar-chart/index.js.map +1 -1
  56. package/lib/module/components/scatter-chart/index.js +18 -1
  57. package/lib/module/components/scatter-chart/index.js.map +1 -1
  58. package/lib/module/components/skeleton/index.js +45 -7
  59. package/lib/module/components/skeleton/index.js.map +1 -1
  60. package/lib/module/components/spinner/index.js +63 -14
  61. package/lib/module/components/spinner/index.js.map +1 -1
  62. package/lib/module/components/time-picker/index.js +46 -21
  63. package/lib/module/components/time-picker/index.js.map +1 -1
  64. package/lib/module/components/time-picker/ruler-window.js +25 -0
  65. package/lib/module/components/time-picker/ruler-window.js.map +1 -0
  66. package/lib/module/hooks/breakpoint-contract.js +29 -0
  67. package/lib/module/hooks/breakpoint-contract.js.map +1 -0
  68. package/lib/module/hooks/index.js +1 -1
  69. package/lib/module/hooks/index.js.map +1 -1
  70. package/lib/module/hooks/use-breakpoint.js +46 -1
  71. package/lib/module/hooks/use-breakpoint.js.map +1 -1
  72. package/lib/module/index.js +5 -1
  73. package/lib/module/index.js.map +1 -1
  74. package/lib/module/primitives/chart-accessibility.js +68 -0
  75. package/lib/module/primitives/chart-accessibility.js.map +1 -0
  76. package/lib/module/primitives/focus-restoration-store.js +52 -0
  77. package/lib/module/primitives/focus-restoration-store.js.map +1 -0
  78. package/lib/module/primitives/portal.js +36 -2
  79. package/lib/module/primitives/portal.js.map +1 -1
  80. package/lib/typescript/src/components/accordion/index.d.ts +4 -0
  81. package/lib/typescript/src/components/accordion/index.d.ts.map +1 -1
  82. package/lib/typescript/src/components/area-chart/index.d.ts +2 -1
  83. package/lib/typescript/src/components/area-chart/index.d.ts.map +1 -1
  84. package/lib/typescript/src/components/bar-chart/index.d.ts +2 -1
  85. package/lib/typescript/src/components/bar-chart/index.d.ts.map +1 -1
  86. package/lib/typescript/src/components/button/index.d.ts.map +1 -1
  87. package/lib/typescript/src/components/candlestick-chart/index.d.ts +2 -1
  88. package/lib/typescript/src/components/candlestick-chart/index.d.ts.map +1 -1
  89. package/lib/typescript/src/components/collapsible/index.d.ts +76 -0
  90. package/lib/typescript/src/components/collapsible/index.d.ts.map +1 -0
  91. package/lib/typescript/src/components/flow/index.d.ts +7 -1
  92. package/lib/typescript/src/components/flow/index.d.ts.map +1 -1
  93. package/lib/typescript/src/components/form/index.d.ts +18 -5
  94. package/lib/typescript/src/components/form/index.d.ts.map +1 -1
  95. package/lib/typescript/src/components/form/typed-form.d.ts +7 -0
  96. package/lib/typescript/src/components/form/typed-form.d.ts.map +1 -0
  97. package/lib/typescript/src/components/form/use-form.d.ts +4 -0
  98. package/lib/typescript/src/components/form/use-form.d.ts.map +1 -1
  99. package/lib/typescript/src/components/heatmap-chart/index.d.ts +2 -1
  100. package/lib/typescript/src/components/heatmap-chart/index.d.ts.map +1 -1
  101. package/lib/typescript/src/components/line-chart/index.d.ts +2 -1
  102. package/lib/typescript/src/components/line-chart/index.d.ts.map +1 -1
  103. package/lib/typescript/src/components/live-line-chart/index.d.ts +21 -7
  104. package/lib/typescript/src/components/live-line-chart/index.d.ts.map +1 -1
  105. package/lib/typescript/src/components/live-line-chart/live-line-accessibility.d.ts +22 -0
  106. package/lib/typescript/src/components/live-line-chart/live-line-accessibility.d.ts.map +1 -0
  107. package/lib/typescript/src/components/live-line-chart/live-line-lifecycle.d.ts +23 -0
  108. package/lib/typescript/src/components/live-line-chart/live-line-lifecycle.d.ts.map +1 -0
  109. package/lib/typescript/src/components/marquee/index.d.ts +73 -0
  110. package/lib/typescript/src/components/marquee/index.d.ts.map +1 -0
  111. package/lib/typescript/src/components/message-scroller/index.d.ts +30 -2
  112. package/lib/typescript/src/components/message-scroller/index.d.ts.map +1 -1
  113. package/lib/typescript/src/components/message-scroller/message-scroller-math.d.ts +10 -0
  114. package/lib/typescript/src/components/message-scroller/message-scroller-math.d.ts.map +1 -1
  115. package/lib/typescript/src/components/meter/index.d.ts +273 -0
  116. package/lib/typescript/src/components/meter/index.d.ts.map +1 -0
  117. package/lib/typescript/src/components/meter/meter-scale.d.ts +96 -0
  118. package/lib/typescript/src/components/meter/meter-scale.d.ts.map +1 -0
  119. package/lib/typescript/src/components/planner/index.d.ts +274 -0
  120. package/lib/typescript/src/components/planner/index.d.ts.map +1 -0
  121. package/lib/typescript/src/components/planner/planner-announcement.d.ts +15 -0
  122. package/lib/typescript/src/components/planner/planner-announcement.d.ts.map +1 -0
  123. package/lib/typescript/src/components/planner/planner-entries.d.ts +75 -0
  124. package/lib/typescript/src/components/planner/planner-entries.d.ts.map +1 -0
  125. package/lib/typescript/src/components/planner/planner-grid-navigation.d.ts +4 -0
  126. package/lib/typescript/src/components/planner/planner-grid-navigation.d.ts.map +1 -0
  127. package/lib/typescript/src/components/planner/planner-lifecycle.d.ts +20 -0
  128. package/lib/typescript/src/components/planner/planner-lifecycle.d.ts.map +1 -0
  129. package/lib/typescript/src/components/radar-chart/index.d.ts +4 -0
  130. package/lib/typescript/src/components/radar-chart/index.d.ts.map +1 -1
  131. package/lib/typescript/src/components/scatter-chart/index.d.ts +2 -1
  132. package/lib/typescript/src/components/scatter-chart/index.d.ts.map +1 -1
  133. package/lib/typescript/src/components/skeleton/index.d.ts +25 -2
  134. package/lib/typescript/src/components/skeleton/index.d.ts.map +1 -1
  135. package/lib/typescript/src/components/spinner/index.d.ts +25 -2
  136. package/lib/typescript/src/components/spinner/index.d.ts.map +1 -1
  137. package/lib/typescript/src/components/time-picker/index.d.ts +5 -6
  138. package/lib/typescript/src/components/time-picker/index.d.ts.map +1 -1
  139. package/lib/typescript/src/components/time-picker/ruler-window.d.ts +12 -0
  140. package/lib/typescript/src/components/time-picker/ruler-window.d.ts.map +1 -0
  141. package/lib/typescript/src/hooks/breakpoint-contract.d.ts +6 -0
  142. package/lib/typescript/src/hooks/breakpoint-contract.d.ts.map +1 -0
  143. package/lib/typescript/src/hooks/index.d.ts +1 -1
  144. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  145. package/lib/typescript/src/hooks/use-breakpoint.d.ts +22 -0
  146. package/lib/typescript/src/hooks/use-breakpoint.d.ts.map +1 -1
  147. package/lib/typescript/src/index.d.ts +5 -1
  148. package/lib/typescript/src/index.d.ts.map +1 -1
  149. package/lib/typescript/src/primitives/chart-accessibility.d.ts +33 -0
  150. package/lib/typescript/src/primitives/chart-accessibility.d.ts.map +1 -0
  151. package/lib/typescript/src/primitives/focus-restoration-store.d.ts +24 -0
  152. package/lib/typescript/src/primitives/focus-restoration-store.d.ts.map +1 -0
  153. package/lib/typescript/src/primitives/portal.d.ts +4 -0
  154. package/lib/typescript/src/primitives/portal.d.ts.map +1 -1
  155. package/lib/typescript/types/form-api.type-test.d.ts +2 -0
  156. package/lib/typescript/types/form-api.type-test.d.ts.map +1 -0
  157. package/package.json +63 -4
  158. package/src/components/accordion/index.tsx +31 -8
  159. package/src/components/area-chart/index.tsx +27 -2
  160. package/src/components/bar-chart/index.tsx +27 -2
  161. package/src/components/button/index.tsx +11 -4
  162. package/src/components/candlestick-chart/index.tsx +30 -2
  163. package/src/components/collapsible/index.tsx +278 -0
  164. package/src/components/flow/index.tsx +93 -14
  165. package/src/components/form/index.tsx +32 -5
  166. package/src/components/form/typed-form.ts +13 -0
  167. package/src/components/form/use-form.ts +9 -0
  168. package/src/components/heatmap-chart/index.tsx +49 -3
  169. package/src/components/line-chart/index.tsx +27 -2
  170. package/src/components/live-line-chart/index.tsx +130 -13
  171. package/src/components/live-line-chart/live-line-accessibility.ts +61 -0
  172. package/src/components/live-line-chart/live-line-lifecycle.ts +63 -0
  173. package/src/components/marquee/index.tsx +232 -0
  174. package/src/components/message-scroller/index.tsx +234 -6
  175. package/src/components/message-scroller/message-scroller-math.ts +38 -0
  176. package/src/components/meter/index.tsx +341 -0
  177. package/src/components/meter/meter-scale.ts +185 -0
  178. package/src/components/planner/index.tsx +997 -0
  179. package/src/components/planner/planner-announcement.ts +37 -0
  180. package/src/components/planner/planner-entries.ts +155 -0
  181. package/src/components/planner/planner-grid-navigation.ts +45 -0
  182. package/src/components/planner/planner-lifecycle.ts +76 -0
  183. package/src/components/popover/index.tsx +3 -3
  184. package/src/components/radar-chart/index.tsx +24 -0
  185. package/src/components/scatter-chart/index.tsx +27 -2
  186. package/src/components/skeleton/index.tsx +59 -5
  187. package/src/components/spinner/index.tsx +80 -13
  188. package/src/components/time-picker/index.tsx +57 -29
  189. package/src/components/time-picker/ruler-window.ts +24 -0
  190. package/src/hooks/breakpoint-contract.ts +31 -0
  191. package/src/hooks/index.ts +4 -0
  192. package/src/hooks/use-breakpoint.ts +61 -10
  193. package/src/index.ts +43 -0
  194. package/src/primitives/chart-accessibility.ts +102 -0
  195. package/src/primitives/focus-restoration-store.ts +70 -0
  196. package/src/primitives/portal.tsx +34 -2
@@ -41,7 +41,7 @@ import { ChevronDownIcon } from "../../icons/index.js";
41
41
  import { AnimatedPressable } from "../../primitives/animated-pressable.js";
42
42
  import { cn } from "../../utils/cn.js";
43
43
  import { textChildren } from "../../primitives/text.js";
44
- import { distanceFromMessageScrollerTarget, isMessageScrollerTargetVisible, MESSAGE_SCROLLER_EDGE_THRESHOLD } from "./message-scroller-math.js";
44
+ import { distanceFromMessageScrollerTarget, initialMessageScrollerIndex, isMessageScrollerTargetVisible, messageScrollerAnchorAt, messageScrollerIndex, MESSAGE_SCROLLER_EDGE_THRESHOLD } from "./message-scroller-math.js";
45
45
 
46
46
  /**
47
47
  * How much of the previous turn is left showing above an anchored one. Scrolling
@@ -106,6 +106,10 @@ function MessageScrollerRoot({
106
106
  const itemY = useRef(new Map());
107
107
  const anchors = useRef([]);
108
108
  const following = useRef(autoScroll);
109
+ const driver = useRef(null);
110
+ const registerDriver = useCallback(next => {
111
+ driver.current = next;
112
+ }, []);
109
113
  const registerItem = useCallback((id, y, anchor) => {
110
114
  itemY.current.set(id, y);
111
115
  const list = anchors.current;
@@ -118,28 +122,34 @@ function MessageScrollerRoot({
118
122
  }, []);
119
123
  const scrollToEnd = useCallback((animated = true) => {
120
124
  following.current = true;
121
- scrollRef.current?.scrollToEnd({
125
+ if (driver.current) driver.current.scrollToEnd(animated);else scrollRef.current?.scrollToEnd({
122
126
  animated
123
127
  });
124
128
  }, [scrollRef]);
125
129
  const scrollToStart = useCallback((animated = true) => {
126
130
  following.current = false;
127
- scrollRef.current?.scrollTo({
131
+ if (driver.current) driver.current.scrollToStart(animated);else scrollRef.current?.scrollTo({
128
132
  y: 0,
129
133
  animated
130
134
  });
131
135
  }, [scrollRef]);
132
136
  const scrollToMessage = useCallback((id, animated = true) => {
137
+ if (driver.current) {
138
+ if (driver.current.scrollToMessage(id, animated)) following.current = false;
139
+ return;
140
+ }
133
141
  const y = itemY.current.get(id);
134
- if (y === undefined) return;
135
- following.current = false;
136
- scrollRef.current?.scrollTo({
137
- y: Math.max(0, y - ANCHOR_PEEK),
138
- animated
139
- });
142
+ if (y !== undefined) {
143
+ following.current = false;
144
+ scrollRef.current?.scrollTo({
145
+ y: Math.max(0, y - ANCHOR_PEEK),
146
+ animated
147
+ });
148
+ }
140
149
  }, [scrollRef]);
141
150
  const context = useMemo(() => ({
142
151
  scrollRef,
152
+ registerDriver,
143
153
  atEnd,
144
154
  distanceFromStart,
145
155
  distanceFromEnd,
@@ -158,7 +168,7 @@ function MessageScrollerRoot({
158
168
  scrollToMessage,
159
169
  currentAnchorId,
160
170
  setCurrentAnchorId
161
- }), [scrollRef, atEnd, distanceFromStart, distanceFromEnd, atEndJS, autoScroll, preserveScrollOnPrepend, defaultScrollPosition, registerItem, unregisterItem, scrollToEnd, scrollToStart, scrollToMessage, currentAnchorId]);
171
+ }), [scrollRef, registerDriver, atEnd, distanceFromStart, distanceFromEnd, atEndJS, autoScroll, preserveScrollOnPrepend, defaultScrollPosition, registerItem, unregisterItem, scrollToEnd, scrollToStart, scrollToMessage, currentAnchorId]);
162
172
  return /*#__PURE__*/_jsx(MessageScrollerContext.Provider, {
163
173
  value: context,
164
174
  children: /*#__PURE__*/_jsx(View, {
@@ -324,6 +334,157 @@ function MessageScrollerViewport({
324
334
  });
325
335
  }
326
336
  MessageScrollerViewport.displayName = 'MessageScroller.Viewport';
337
+ /**
338
+ * The real virtualized transcript path. Only its render window mounts; native
339
+ * visible-content maintenance keeps prepends still without measuring offscreen
340
+ * rows in JavaScript.
341
+ */
342
+ function MessageScrollerList({
343
+ className,
344
+ contentContainerClassName,
345
+ data,
346
+ renderItem,
347
+ initialNumToRender = 12,
348
+ maxToRenderPerBatch = 8,
349
+ windowSize = 7,
350
+ ...props
351
+ }) {
352
+ const {
353
+ atEnd,
354
+ distanceFromStart,
355
+ distanceFromEnd,
356
+ setAtEndJS,
357
+ autoScroll,
358
+ preserveScrollOnPrepend,
359
+ defaultScrollPosition,
360
+ following,
361
+ registerDriver,
362
+ setCurrentAnchorId
363
+ } = useScroller('MessageScroller.List');
364
+ const listRef = useRef(null);
365
+ const items = useRef(data);
366
+ items.current = data;
367
+ const opened = useRef(false);
368
+ const firstVisibleIndex = useRef(null);
369
+ const publishAtEnd = useCallback(next => {
370
+ following.current = autoScroll && next;
371
+ setAtEndJS(next);
372
+ }, [autoScroll, following, setAtEndJS]);
373
+ const scrollHandler = useAnimatedScrollHandler({
374
+ onScroll: event => {
375
+ const {
376
+ contentOffset,
377
+ contentSize,
378
+ layoutMeasurement
379
+ } = event;
380
+ distanceFromStart.value = distanceFromMessageScrollerTarget('start', contentOffset.y, contentSize.height, layoutMeasurement.height);
381
+ distanceFromEnd.value = distanceFromMessageScrollerTarget('end', contentOffset.y, contentSize.height, layoutMeasurement.height);
382
+ const next = isMessageScrollerTargetVisible(distanceFromEnd.value) ? 0 : 1;
383
+ if (next !== atEnd.value) {
384
+ atEnd.value = next;
385
+ runOnJS(publishAtEnd)(next === 1);
386
+ }
387
+ }
388
+ });
389
+ const scrollToIndex = useCallback((index, animated) => {
390
+ listRef.current?.scrollToIndex({
391
+ index,
392
+ viewOffset: ANCHOR_PEEK,
393
+ animated
394
+ });
395
+ }, []);
396
+ const setAnchorAtIndex = useCallback(index => setCurrentAnchorId(messageScrollerAnchorAt(items.current, index)), [setCurrentAnchorId]);
397
+ useEffect(() => {
398
+ registerDriver({
399
+ scrollToEnd: animated => {
400
+ listRef.current?.scrollToEnd({
401
+ animated
402
+ });
403
+ setAnchorAtIndex(items.current.length - 1);
404
+ },
405
+ scrollToStart: animated => {
406
+ listRef.current?.scrollToOffset({
407
+ offset: 0,
408
+ animated
409
+ });
410
+ setAnchorAtIndex(0);
411
+ },
412
+ scrollToMessage: (id, animated) => {
413
+ const index = messageScrollerIndex(items.current, id);
414
+ if (index === undefined) return false;
415
+ scrollToIndex(index, animated);
416
+ setAnchorAtIndex(index);
417
+ return true;
418
+ }
419
+ });
420
+ return () => registerDriver(null);
421
+ }, [registerDriver, scrollToIndex, setAnchorAtIndex]);
422
+ useEffect(() => {
423
+ following.current = autoScroll && atEnd.value === 1;
424
+ }, [atEnd, autoScroll, following]);
425
+ const onContentSizeChange = () => {
426
+ if (!opened.current) {
427
+ opened.current = true;
428
+ const index = initialMessageScrollerIndex(data, defaultScrollPosition);
429
+ const target = index ?? data.length - 1;
430
+ if (index === undefined) listRef.current?.scrollToEnd({
431
+ animated: false
432
+ });else if (index > 0) scrollToIndex(index, false);
433
+ setAnchorAtIndex(target);
434
+ return;
435
+ }
436
+ if (following.current) listRef.current?.scrollToEnd({
437
+ animated: true
438
+ });
439
+ };
440
+ const onViewableItemsChanged = useRef(({
441
+ viewableItems
442
+ }) => {
443
+ const first = viewableItems.reduce((best, token) => token.index !== null && token.index < best ? token.index : best, Infinity);
444
+ firstVisibleIndex.current = Number.isFinite(first) ? first : null;
445
+ }).current;
446
+ const settleAnchor = () => {
447
+ if (firstVisibleIndex.current !== null) {
448
+ setCurrentAnchorId(messageScrollerAnchorAt(items.current, firstVisibleIndex.current));
449
+ }
450
+ };
451
+ return /*#__PURE__*/_jsx(Animated.FlatList, {
452
+ ref: listRef,
453
+ data: data,
454
+ renderItem: renderItem,
455
+ keyExtractor: item => item.messageId,
456
+ accessibilityRole: "list",
457
+ accessibilityLabel: "Messages",
458
+ accessibilityLiveRegion: "polite",
459
+ scrollEventThrottle: 16,
460
+ showsVerticalScrollIndicator: false,
461
+ initialNumToRender: initialNumToRender,
462
+ maxToRenderPerBatch: maxToRenderPerBatch,
463
+ windowSize: windowSize,
464
+ maintainVisibleContentPosition: preserveScrollOnPrepend ? {
465
+ minIndexForVisible: 0
466
+ } : undefined,
467
+ className: cn('flex-1', className),
468
+ contentContainerClassName: cn('gap-3 p-4 pb-16', contentContainerClassName),
469
+ ...props,
470
+ onScroll: scrollHandler,
471
+ onContentSizeChange: onContentSizeChange,
472
+ onViewableItemsChanged: onViewableItemsChanged,
473
+ onScrollEndDrag: settleAnchor,
474
+ onMomentumScrollEnd: settleAnchor,
475
+ onScrollToIndexFailed: ({
476
+ index,
477
+ averageItemLength
478
+ }) => {
479
+ listRef.current?.scrollToOffset({
480
+ offset: index * averageItemLength,
481
+ animated: false
482
+ });
483
+ setTimeout(() => scrollToIndex(index, false), 0);
484
+ }
485
+ });
486
+ }
487
+ MessageScrollerList.displayName = 'MessageScroller.List';
327
488
 
328
489
  /**
329
490
  * How far the transcript shifted, measured on the message closest to the top
@@ -453,6 +614,7 @@ function MessageScrollerButton({
453
614
  MessageScrollerButton.displayName = 'MessageScroller.Button';
454
615
  export const MessageScroller = Object.assign(MessageScrollerRoot, {
455
616
  Viewport: MessageScrollerViewport,
617
+ List: MessageScrollerList,
456
618
  Content: MessageScrollerContent,
457
619
  Item: MessageScrollerItem,
458
620
  Button: MessageScrollerButton
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","View","Animated","runOnJS","useAnimatedRef","useAnimatedScrollHandler","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","useCSSVariable","ChevronDownIcon","AnimatedPressable","cn","textChildren","distanceFromMessageScrollerTarget","isMessageScrollerTargetVisible","MESSAGE_SCROLLER_EDGE_THRESHOLD","jsx","_jsx","ANCHOR_PEEK","MessageScrollerContext","useScroller","component","context","Error","useMessageScroller","scrollToEnd","scrollToStart","scrollToMessage","useMessageScrollerVisibility","currentAnchorId","atEndJS","atEnd","MessageScrollerRoot","className","autoScroll","preserveScrollOnPrepend","defaultScrollPosition","children","props","scrollRef","awayFromEdge","distanceFromStart","distanceFromEnd","setAtEndJS","setCurrentAnchorId","itemY","Map","anchors","following","registerItem","id","y","anchor","current","set","list","includes","push","filter","a","unregisterItem","delete","animated","scrollTo","get","undefined","Math","max","Provider","value","displayName","MessageScrollerViewport","contentHeight","previousY","opened","offsetY","publishAtEnd","next","scrollHandler","onScroll","event","contentOffset","contentSize","layoutMeasurement","height","settleAnchor","bestY","Infinity","onContentSizeChange","_width","previousHeight","openAt","grew","shift","topmostShift","position","last","length","ScrollView","ref","accessibilityRole","accessibilityLabel","scrollEventThrottle","showsVerticalScrollIndicator","onScrollEndDrag","onMomentumScrollEnd","before","after","now","MessageScrollerContent","accessibilityLiveRegion","MessageScrollerItem","messageId","scrollAnchor","onLayout","nativeEvent","layout","MessageScrollerButton","target","tint","targetDistance","shown","duration","style","opacity","transform","translateY","scale","interactive","setInteractive","pointerEvents","accessibilityElementsHidden","importantForAccessibility","onPress","size","color","rotate","MessageScroller","Object","assign","Viewport","Content","Item","Button"],"sourceRoot":"../../../../src","sources":["components/message-scroller/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","View","Animated","runOnJS","useAnimatedRef","useAnimatedScrollHandler","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","useCSSVariable","ChevronDownIcon","AnimatedPressable","cn","textChildren","distanceFromMessageScrollerTarget","initialMessageScrollerIndex","isMessageScrollerTargetVisible","messageScrollerAnchorAt","messageScrollerIndex","MESSAGE_SCROLLER_EDGE_THRESHOLD","jsx","_jsx","ANCHOR_PEEK","MessageScrollerContext","useScroller","component","context","Error","useMessageScroller","scrollToEnd","scrollToStart","scrollToMessage","useMessageScrollerVisibility","currentAnchorId","atEndJS","atEnd","MessageScrollerRoot","className","autoScroll","preserveScrollOnPrepend","defaultScrollPosition","children","props","scrollRef","awayFromEdge","distanceFromStart","distanceFromEnd","setAtEndJS","setCurrentAnchorId","itemY","Map","anchors","following","driver","registerDriver","next","current","registerItem","id","y","anchor","set","list","includes","push","filter","a","unregisterItem","delete","animated","scrollTo","get","undefined","Math","max","Provider","value","displayName","MessageScrollerViewport","contentHeight","previousY","opened","offsetY","publishAtEnd","scrollHandler","onScroll","event","contentOffset","contentSize","layoutMeasurement","height","settleAnchor","bestY","Infinity","onContentSizeChange","_width","previousHeight","openAt","grew","shift","topmostShift","position","last","length","ScrollView","ref","accessibilityRole","accessibilityLabel","scrollEventThrottle","showsVerticalScrollIndicator","onScrollEndDrag","onMomentumScrollEnd","MessageScrollerList","contentContainerClassName","data","renderItem","initialNumToRender","maxToRenderPerBatch","windowSize","listRef","items","firstVisibleIndex","scrollToIndex","index","viewOffset","setAnchorAtIndex","scrollToOffset","offset","target","onViewableItemsChanged","viewableItems","first","reduce","best","token","Number","isFinite","FlatList","keyExtractor","item","messageId","accessibilityLiveRegion","maintainVisibleContentPosition","minIndexForVisible","onScrollToIndexFailed","averageItemLength","setTimeout","before","after","now","MessageScrollerContent","MessageScrollerItem","scrollAnchor","onLayout","nativeEvent","layout","MessageScrollerButton","tint","targetDistance","shown","duration","style","opacity","transform","translateY","scale","interactive","setInteractive","pointerEvents","accessibilityElementsHidden","importantForAccessibility","onPress","size","color","rotate","MessageScroller","Object","assign","Viewport","List","Content","Item","Button"],"sourceRoot":"../../../../src","sources":["components/message-scroller/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -17,4 +17,27 @@ export function isMessageScrollerTargetVisible(distance) {
17
17
 
18
18
  return distance > MESSAGE_SCROLLER_EDGE_THRESHOLD;
19
19
  }
20
+ /** Index used by initial positioning and id-addressed virtualized jumps. */
21
+ export function messageScrollerIndex(items, id) {
22
+ const index = items.findIndex(item => item.messageId === id);
23
+ return index < 0 ? undefined : index;
24
+ }
25
+
26
+ /** Initial target for a list; `undefined` means use the physical end. */
27
+ export function initialMessageScrollerIndex(items, position) {
28
+ if (position === 'end') return undefined;
29
+ if (position === 'start') return items.length ? 0 : undefined;
30
+ for (let index = items.length - 1; index >= 0; index -= 1) {
31
+ if (items[index].scrollAnchor) return index;
32
+ }
33
+ return undefined;
34
+ }
35
+
36
+ /** Anchor at or before the first visible virtualized row. */
37
+ export function messageScrollerAnchorAt(items, firstVisibleIndex) {
38
+ for (let index = Math.min(firstVisibleIndex, items.length - 1); index >= 0; index -= 1) {
39
+ if (items[index].scrollAnchor) return items[index].messageId;
40
+ }
41
+ return null;
42
+ }
20
43
  //# sourceMappingURL=message-scroller-math.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MESSAGE_SCROLLER_EDGE_THRESHOLD","distanceFromMessageScrollerTarget","target","contentOffsetY","contentHeight","viewportHeight","maximumOffset","Math","max","boundedOffset","min","isMessageScrollerTargetVisible","distance"],"sourceRoot":"../../../../src","sources":["components/message-scroller/message-scroller-math.ts"],"mappings":";;AAEA,OAAO,MAAMA,+BAA+B,GAAG,EAAE;;AAEjD;AACA,OAAO,SAASC,iCAAiCA,CAC/CC,MAA6B,EAC7BC,cAAsB,EACtBC,aAAqB,EACrBC,cAAsB,EACd;EACR,SAAS;;EAET,MAAMC,aAAa,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,aAAa,GAAGC,cAAc,CAAC;EACjE,MAAMI,aAAa,GAAGF,IAAI,CAACG,GAAG,CAACJ,aAAa,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEL,cAAc,CAAC,CAAC;EAC1E,OAAOD,MAAM,KAAK,OAAO,GAAGO,aAAa,GAAGH,aAAa,GAAGG,aAAa;AAC3E;;AAEA;AACA,OAAO,SAASE,8BAA8BA,CAACC,QAAgB,EAAW;EACxE,SAAS;;EAET,OAAOA,QAAQ,GAAGZ,+BAA+B;AACnD","ignoreList":[]}
1
+ {"version":3,"names":["MESSAGE_SCROLLER_EDGE_THRESHOLD","distanceFromMessageScrollerTarget","target","contentOffsetY","contentHeight","viewportHeight","maximumOffset","Math","max","boundedOffset","min","isMessageScrollerTargetVisible","distance","messageScrollerIndex","items","id","index","findIndex","item","messageId","undefined","initialMessageScrollerIndex","position","length","scrollAnchor","messageScrollerAnchorAt","firstVisibleIndex"],"sourceRoot":"../../../../src","sources":["components/message-scroller/message-scroller-math.ts"],"mappings":";;AAEA,OAAO,MAAMA,+BAA+B,GAAG,EAAE;;AAEjD;AACA,OAAO,SAASC,iCAAiCA,CAC/CC,MAA6B,EAC7BC,cAAsB,EACtBC,aAAqB,EACrBC,cAAsB,EACd;EACR,SAAS;;EAET,MAAMC,aAAa,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,aAAa,GAAGC,cAAc,CAAC;EACjE,MAAMI,aAAa,GAAGF,IAAI,CAACG,GAAG,CAACJ,aAAa,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEL,cAAc,CAAC,CAAC;EAC1E,OAAOD,MAAM,KAAK,OAAO,GAAGO,aAAa,GAAGH,aAAa,GAAGG,aAAa;AAC3E;;AAEA;AACA,OAAO,SAASE,8BAA8BA,CAACC,QAAgB,EAAW;EACxE,SAAS;;EAET,OAAOA,QAAQ,GAAGZ,+BAA+B;AACnD;AAOA;AACA,OAAO,SAASa,oBAAoBA,CAClCC,KAA4C,EAC5CC,EAAU,EACU;EACpB,MAAMC,KAAK,GAAGF,KAAK,CAACG,SAAS,CAAEC,IAAI,IAAKA,IAAI,CAACC,SAAS,KAAKJ,EAAE,CAAC;EAC9D,OAAOC,KAAK,GAAG,CAAC,GAAGI,SAAS,GAAGJ,KAAK;AACtC;;AAEA;AACA,OAAO,SAASK,2BAA2BA,CACzCP,KAA4C,EAC5CQ,QAAyC,EACrB;EACpB,IAAIA,QAAQ,KAAK,KAAK,EAAE,OAAOF,SAAS;EACxC,IAAIE,QAAQ,KAAK,OAAO,EAAE,OAAOR,KAAK,CAACS,MAAM,GAAG,CAAC,GAAGH,SAAS;EAC7D,KAAK,IAAIJ,KAAK,GAAGF,KAAK,CAACS,MAAM,GAAG,CAAC,EAAEP,KAAK,IAAI,CAAC,EAAEA,KAAK,IAAI,CAAC,EAAE;IACzD,IAAIF,KAAK,CAACE,KAAK,CAAC,CAAEQ,YAAY,EAAE,OAAOR,KAAK;EAC9C;EACA,OAAOI,SAAS;AAClB;;AAEA;AACA,OAAO,SAASK,uBAAuBA,CACrCX,KAA4C,EAC5CY,iBAAyB,EACV;EACf,KAAK,IAAIV,KAAK,GAAGT,IAAI,CAACG,GAAG,CAACgB,iBAAiB,EAAEZ,KAAK,CAACS,MAAM,GAAG,CAAC,CAAC,EAAEP,KAAK,IAAI,CAAC,EAAEA,KAAK,IAAI,CAAC,EAAE;IACtF,IAAIF,KAAK,CAACE,KAAK,CAAC,CAAEQ,YAAY,EAAE,OAAOV,KAAK,CAACE,KAAK,CAAC,CAAEG,SAAS;EAChE;EACA,OAAO,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useEffect } from 'react';
4
+ import { View } from 'react-native';
5
+ import Animated, { useAnimatedStyle, useReducedMotion, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
6
+ import { tv } from 'tailwind-variants';
7
+ import { Text } from "../../primitives/text.js";
8
+ import { colorFor, litSegments, meterSemantics, normalizeScale, normalizeSegments } from "./meter-scale.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const SPRING = {
11
+ damping: 20,
12
+ stiffness: 180,
13
+ mass: 0.6,
14
+ overshootClamping: true
15
+ };
16
+ /** Milliseconds for a segment to light or go out. */
17
+ const SEGMENT_DURATION = 180;
18
+ /** How faint an unlit segment sits. Present, but plainly not counted. */
19
+ const SEGMENT_UNLIT = 0.22;
20
+ const meterVariants = tv({
21
+ slots: {
22
+ root: 'w-full gap-2',
23
+ header: 'flex-row items-center justify-between gap-2',
24
+ track: 'w-full overflow-hidden rounded-full',
25
+ indicator: 'h-full rounded-full',
26
+ segments: 'w-full flex-row overflow-hidden',
27
+ segment: 'flex-1 rounded-full'
28
+ },
29
+ variants: {
30
+ color: {
31
+ primary: {
32
+ track: 'bg-primary/16',
33
+ indicator: 'bg-primary',
34
+ segment: 'bg-primary'
35
+ },
36
+ success: {
37
+ track: 'bg-success/16',
38
+ indicator: 'bg-success',
39
+ segment: 'bg-success'
40
+ },
41
+ warning: {
42
+ track: 'bg-warning/16',
43
+ indicator: 'bg-warning',
44
+ segment: 'bg-warning'
45
+ },
46
+ destructive: {
47
+ track: 'bg-destructive/16',
48
+ indicator: 'bg-destructive',
49
+ segment: 'bg-destructive'
50
+ },
51
+ info: {
52
+ track: 'bg-info/16',
53
+ indicator: 'bg-info',
54
+ segment: 'bg-info'
55
+ },
56
+ muted: {
57
+ track: 'bg-muted',
58
+ indicator: 'bg-muted-foreground',
59
+ segment: 'bg-muted-foreground'
60
+ }
61
+ },
62
+ size: {
63
+ sm: {
64
+ track: 'h-1.5',
65
+ segments: 'h-1.5 gap-1',
66
+ segment: 'h-1.5'
67
+ },
68
+ md: {
69
+ track: 'h-2',
70
+ segments: 'h-2 gap-1.5',
71
+ segment: 'h-2'
72
+ },
73
+ lg: {
74
+ track: 'h-3',
75
+ segments: 'h-3 gap-1.5',
76
+ segment: 'h-3'
77
+ }
78
+ }
79
+ },
80
+ defaultVariants: {
81
+ color: 'primary',
82
+ size: 'md'
83
+ }
84
+ });
85
+ /**
86
+ * One block of a segmented meter. It reads the lit count rather than a boolean
87
+ * so the whole row animates from one shared value, without a render per block.
88
+ */
89
+ function Segment({
90
+ index,
91
+ lit,
92
+ className,
93
+ reducedMotion
94
+ }) {
95
+ const style = useAnimatedStyle(() => {
96
+ const on = lit.value > index ? 1 : SEGMENT_UNLIT;
97
+ return {
98
+ opacity: reducedMotion ? on : withTiming(on, {
99
+ duration: SEGMENT_DURATION
100
+ })
101
+ };
102
+ });
103
+ return /*#__PURE__*/_jsx(Animated.View, {
104
+ style: style,
105
+ className: className
106
+ });
107
+ }
108
+
109
+ /**
110
+ * A measurement on a fixed scale: disk used, battery left, a score, a password's
111
+ * strength. The fill is driven on the UI thread, so a value change costs one
112
+ * render and nothing per frame.
113
+ *
114
+ * A meter is not a progress bar. Progress is a task moving towards an end that
115
+ * finishing is the point of; a meter is a reading that happens to sit where it
116
+ * sits, and may go back down. Reach for
117
+ * [Progress](/docs/components/progress) when something is completing.
118
+ *
119
+ * `thresholds` paint the bar by where the reading falls, and `segments` draws
120
+ * the scale as discrete blocks for readings that are counted rather than
121
+ * measured.
122
+ *
123
+ * The value is read against `minValue` / `maxValue`, which default to 0 and
124
+ * 100 — so a percentage needs neither. Set them and the meter speaks in
125
+ * whatever is being measured: bytes, degrees, points. Nothing has to be
126
+ * converted to a percent on the way in, and the screen reader is told the real
127
+ * scale rather than a derived one.
128
+ *
129
+ * React Native has no meter role, so this announces as a progress bar with its
130
+ * value, range and unit attached. That is the closest the platform offers, and
131
+ * it is why `label` matters: the role will not distinguish a reading from a
132
+ * task, and the name is what does.
133
+ */
134
+ export const Meter = /*#__PURE__*/forwardRef(({
135
+ className,
136
+ indicatorClassName,
137
+ headerClassName,
138
+ value,
139
+ minValue = 0,
140
+ maxValue = 100,
141
+ label,
142
+ showValueLabel = false,
143
+ valueLabel,
144
+ formatOptions,
145
+ thresholds,
146
+ segments,
147
+ color,
148
+ size,
149
+ accessibilityLabel,
150
+ ...props
151
+ }, ref) => {
152
+ const scale = normalizeScale(value, minValue, maxValue);
153
+ const {
154
+ value: held,
155
+ fraction
156
+ } = scale;
157
+ const segmentCount = normalizeSegments(segments);
158
+ const resolvedColor = colorFor(held, color ?? 'primary', thresholds);
159
+ const slots = meterVariants({
160
+ color: resolvedColor,
161
+ size
162
+ });
163
+ const reducedMotion = useReducedMotion();
164
+ const trackWidth = useSharedValue(0);
165
+ const progress = useSharedValue(fraction);
166
+ // Any reading above the floor lights a block, so "a little" never looks
167
+ // like "none". Rounding down would leave the first quarter of a
168
+ // four-block meter dark, which is the reading it is least able to afford.
169
+ const litCount = litSegments(fraction, segmentCount);
170
+ const lit = useSharedValue(litCount);
171
+
172
+ // Reduce motion lands on the value instead of springing to it — the
173
+ // number is the information, and the overshoot is decoration.
174
+ useEffect(() => {
175
+ progress.value = reducedMotion ? fraction : withSpring(fraction, SPRING);
176
+ }, [fraction, progress, reducedMotion]);
177
+ useEffect(() => {
178
+ lit.value = litCount;
179
+ }, [lit, litCount]);
180
+ const onLayout = event => {
181
+ const width = event.nativeEvent.layout.width;
182
+ trackWidth.value = Number.isFinite(width) && width > 0 ? width : 0;
183
+ };
184
+ const fillStyle = useAnimatedStyle(() => ({
185
+ width: trackWidth.value * progress.value
186
+ }));
187
+ const semantics = meterSemantics({
188
+ value: held,
189
+ fraction,
190
+ // The normalized ends, not the raw props: an invalid scale is repaired
191
+ // for the bar, and the spoken reading has to describe the same one.
192
+ minValue: scale.min,
193
+ maxValue: scale.max,
194
+ label,
195
+ accessibilityLabel,
196
+ valueLabel,
197
+ formatOptions
198
+ });
199
+ const spoken = semantics.text;
200
+ const showValue = showValueLabel;
201
+ const hasHeader = label != null || showValue;
202
+ const accessibility = {
203
+ accessibilityRole: 'progressbar',
204
+ accessibilityLabel: semantics.label,
205
+ // `text` carries the unit or word and intentionally overrides the
206
+ // platform's generic rendering of this numeric range.
207
+ accessibilityValue: semantics.value
208
+ };
209
+ const bar = segmentCount > 0 ? /*#__PURE__*/_jsx(View, {
210
+ ref: ref,
211
+ ...accessibility,
212
+ className: slots.segments({
213
+ className
214
+ }),
215
+ ...props,
216
+ children: Array.from({
217
+ length: segmentCount
218
+ }, (_, index) => /*#__PURE__*/_jsx(Segment, {
219
+ index: index,
220
+ lit: lit,
221
+ reducedMotion: reducedMotion,
222
+ className: slots.segment({
223
+ className: indicatorClassName
224
+ })
225
+ }, index))
226
+ }) : /*#__PURE__*/_jsx(View, {
227
+ ref: ref,
228
+ ...accessibility,
229
+ className: slots.track({
230
+ className
231
+ }),
232
+ onLayout: onLayout,
233
+ ...props,
234
+ children: /*#__PURE__*/_jsx(Animated.View, {
235
+ style: fillStyle,
236
+ className: slots.indicator({
237
+ className: indicatorClassName
238
+ })
239
+ })
240
+ });
241
+ if (!hasHeader) return bar;
242
+ return /*#__PURE__*/_jsxs(View, {
243
+ className: slots.root(),
244
+ children: [/*#__PURE__*/_jsxs(View, {
245
+ className: slots.header({
246
+ className: headerClassName
247
+ })
248
+ // This is the visual rendering of the name and value already owned
249
+ // by the bar below. Hiding the subtree keeps one concise focus stop.
250
+ ,
251
+ accessibilityElementsHidden: true,
252
+ importantForAccessibility: "no-hide-descendants",
253
+ children: [label != null ? /*#__PURE__*/_jsx(Text, {
254
+ size: "sm",
255
+ weight: "medium",
256
+ numberOfLines: 1,
257
+ children: label
258
+ }) : /*#__PURE__*/_jsx(View, {}), showValue ? /*#__PURE__*/_jsx(Text, {
259
+ size: "sm",
260
+ muted: true,
261
+ numberOfLines: 1,
262
+ children: spoken
263
+ }) : null]
264
+ }), bar]
265
+ });
266
+ });
267
+ Meter.displayName = 'Meter';
268
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useEffect","View","Animated","useAnimatedStyle","useReducedMotion","useSharedValue","withSpring","withTiming","tv","Text","colorFor","litSegments","meterSemantics","normalizeScale","normalizeSegments","jsx","_jsx","jsxs","_jsxs","SPRING","damping","stiffness","mass","overshootClamping","SEGMENT_DURATION","SEGMENT_UNLIT","meterVariants","slots","root","header","track","indicator","segments","segment","variants","color","primary","success","warning","destructive","info","muted","size","sm","md","lg","defaultVariants","Segment","index","lit","className","reducedMotion","style","on","value","opacity","duration","Meter","indicatorClassName","headerClassName","minValue","maxValue","label","showValueLabel","valueLabel","formatOptions","thresholds","accessibilityLabel","props","ref","scale","held","fraction","segmentCount","resolvedColor","trackWidth","progress","litCount","onLayout","event","width","nativeEvent","layout","Number","isFinite","fillStyle","semantics","min","max","spoken","text","showValue","hasHeader","accessibility","accessibilityRole","accessibilityValue","bar","children","Array","from","length","_","accessibilityElementsHidden","importantForAccessibility","weight","numberOfLines","displayName"],"sourceRoot":"../../../../src","sources":["components/meter/index.tsx"],"mappings":"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","ignoreList":[]}