panelui-native 0.22.6 → 0.28.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.
Files changed (258) hide show
  1. package/README.md +1 -0
  2. package/lib/module/components/accordion/index.js +8 -8
  3. package/lib/module/components/accordion/index.js.map +1 -1
  4. package/lib/module/components/alert/index.js +2 -2
  5. package/lib/module/components/alert/index.js.map +1 -1
  6. package/lib/module/components/area-chart/index.js +958 -0
  7. package/lib/module/components/area-chart/index.js.map +1 -0
  8. package/lib/module/components/attachment/index.js +2 -1
  9. package/lib/module/components/attachment/index.js.map +1 -1
  10. package/lib/module/components/avatar/index.js +4 -4
  11. package/lib/module/components/avatar/index.js.map +1 -1
  12. package/lib/module/components/badge/index.js +4 -4
  13. package/lib/module/components/badge/index.js.map +1 -1
  14. package/lib/module/components/bar-chart/index.js +994 -0
  15. package/lib/module/components/bar-chart/index.js.map +1 -0
  16. package/lib/module/components/bottom-sheet/index.js +213 -24
  17. package/lib/module/components/bottom-sheet/index.js.map +1 -1
  18. package/lib/module/components/breadcrumb/index.js +275 -0
  19. package/lib/module/components/breadcrumb/index.js.map +1 -0
  20. package/lib/module/components/button/index.js +11 -6
  21. package/lib/module/components/button/index.js.map +1 -1
  22. package/lib/module/components/calendar/index.js +557 -0
  23. package/lib/module/components/calendar/index.js.map +1 -0
  24. package/lib/module/components/carousel/index.js +680 -0
  25. package/lib/module/components/carousel/index.js.map +1 -0
  26. package/lib/module/components/chip/index.js +6 -6
  27. package/lib/module/components/chip/index.js.map +1 -1
  28. package/lib/module/components/date-picker/index.js +158 -0
  29. package/lib/module/components/date-picker/index.js.map +1 -0
  30. package/lib/module/components/dialog/index.js +7 -2
  31. package/lib/module/components/dialog/index.js.map +1 -1
  32. package/lib/module/components/direction/index.js +15 -20
  33. package/lib/module/components/direction/index.js.map +1 -1
  34. package/lib/module/components/empty-state/index.js +2 -2
  35. package/lib/module/components/empty-state/index.js.map +1 -1
  36. package/lib/module/components/field/index.js +5 -5
  37. package/lib/module/components/field/index.js.map +1 -1
  38. package/lib/module/components/flow/index.js +3 -3
  39. package/lib/module/components/flow/index.js.map +1 -1
  40. package/lib/module/components/frame/index.js +22 -5
  41. package/lib/module/components/frame/index.js.map +1 -1
  42. package/lib/module/components/heatmap-chart/index.js +28 -8
  43. package/lib/module/components/heatmap-chart/index.js.map +1 -1
  44. package/lib/module/components/input-group/index.js +5 -4
  45. package/lib/module/components/input-group/index.js.map +1 -1
  46. package/lib/module/components/item/index.js +9 -9
  47. package/lib/module/components/item/index.js.map +1 -1
  48. package/lib/module/components/label/index.js +4 -4
  49. package/lib/module/components/label/index.js.map +1 -1
  50. package/lib/module/components/line-chart/index.js +165 -184
  51. package/lib/module/components/line-chart/index.js.map +1 -1
  52. package/lib/module/components/loader/index.js +758 -0
  53. package/lib/module/components/loader/index.js.map +1 -0
  54. package/lib/module/components/map/basemap.js +265 -0
  55. package/lib/module/components/map/basemap.js.map +1 -0
  56. package/lib/module/components/map/index.js +850 -0
  57. package/lib/module/components/map/index.js.map +1 -0
  58. package/lib/module/components/map/maplibre.js +87 -0
  59. package/lib/module/components/map/maplibre.js.map +1 -0
  60. package/lib/module/components/marker/index.js +3 -3
  61. package/lib/module/components/marker/index.js.map +1 -1
  62. package/lib/module/components/message/index.js +15 -14
  63. package/lib/module/components/message/index.js.map +1 -1
  64. package/lib/module/components/message-scroller/index.js +5 -4
  65. package/lib/module/components/message-scroller/index.js.map +1 -1
  66. package/lib/module/components/otp-input/index.js +2 -2
  67. package/lib/module/components/popover/index.js +39 -7
  68. package/lib/module/components/popover/index.js.map +1 -1
  69. package/lib/module/components/progress/index.js +8 -2
  70. package/lib/module/components/progress/index.js.map +1 -1
  71. package/lib/module/components/radio-group/index.js +2 -2
  72. package/lib/module/components/radio-group/index.js.map +1 -1
  73. package/lib/module/components/ring-chart/index.js +423 -0
  74. package/lib/module/components/ring-chart/index.js.map +1 -0
  75. package/lib/module/components/section-rail/index.js +6 -6
  76. package/lib/module/components/section-rail/index.js.map +1 -1
  77. package/lib/module/components/select/index.js +10 -4
  78. package/lib/module/components/select/index.js.map +1 -1
  79. package/lib/module/components/separator/index.js +76 -22
  80. package/lib/module/components/separator/index.js.map +1 -1
  81. package/lib/module/components/shimmer/index.js +10 -1
  82. package/lib/module/components/shimmer/index.js.map +1 -1
  83. package/lib/module/components/slider/index.js +19 -5
  84. package/lib/module/components/slider/index.js.map +1 -1
  85. package/lib/module/components/steps/index.js +5 -5
  86. package/lib/module/components/steps/index.js.map +1 -1
  87. package/lib/module/components/switch/index.js +6 -1
  88. package/lib/module/components/switch/index.js.map +1 -1
  89. package/lib/module/components/tabs/index.js +7 -7
  90. package/lib/module/components/tabs/index.js.map +1 -1
  91. package/lib/module/components/timeline/index.js +4 -4
  92. package/lib/module/components/timeline/index.js.map +1 -1
  93. package/lib/module/components/toast/index.js +2 -2
  94. package/lib/module/components/toast/index.js.map +1 -1
  95. package/lib/module/components/toggle-button/index.js +5 -5
  96. package/lib/module/components/toggle-button/index.js.map +1 -1
  97. package/lib/module/components/tooltip/index.js +492 -0
  98. package/lib/module/components/tooltip/index.js.map +1 -0
  99. package/lib/module/components/typography/index.js +7 -2
  100. package/lib/module/components/typography/index.js.map +1 -1
  101. package/lib/module/hooks/index.js +1 -0
  102. package/lib/module/hooks/index.js.map +1 -1
  103. package/lib/module/hooks/use-back-handler.js +37 -0
  104. package/lib/module/hooks/use-back-handler.js.map +1 -0
  105. package/lib/module/hooks/use-direction.js +43 -0
  106. package/lib/module/hooks/use-direction.js.map +1 -0
  107. package/lib/module/icons/index.js +180 -2
  108. package/lib/module/icons/index.js.map +1 -1
  109. package/lib/module/index.js +12 -2
  110. package/lib/module/index.js.map +1 -1
  111. package/lib/module/primitives/keyboard-avoider.js +2 -1
  112. package/lib/module/primitives/keyboard-avoider.js.map +1 -1
  113. package/lib/module/primitives/text.js +55 -11
  114. package/lib/module/primitives/text.js.map +1 -1
  115. package/lib/module/utils/chart.js +279 -0
  116. package/lib/module/utils/chart.js.map +1 -0
  117. package/lib/module/utils/date.js +386 -0
  118. package/lib/module/utils/date.js.map +1 -0
  119. package/lib/typescript/src/components/accordion/index.d.ts.map +1 -1
  120. package/lib/typescript/src/components/alert/index.d.ts.map +1 -1
  121. package/lib/typescript/src/components/area-chart/index.d.ts +237 -0
  122. package/lib/typescript/src/components/area-chart/index.d.ts.map +1 -0
  123. package/lib/typescript/src/components/attachment/index.d.ts.map +1 -1
  124. package/lib/typescript/src/components/bar-chart/index.d.ts +270 -0
  125. package/lib/typescript/src/components/bar-chart/index.d.ts.map +1 -0
  126. package/lib/typescript/src/components/bottom-sheet/index.d.ts +75 -4
  127. package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
  128. package/lib/typescript/src/components/breadcrumb/index.d.ts +100 -0
  129. package/lib/typescript/src/components/breadcrumb/index.d.ts.map +1 -0
  130. package/lib/typescript/src/components/button/index.d.ts.map +1 -1
  131. package/lib/typescript/src/components/calendar/index.d.ts +108 -0
  132. package/lib/typescript/src/components/calendar/index.d.ts.map +1 -0
  133. package/lib/typescript/src/components/carousel/index.d.ts +179 -0
  134. package/lib/typescript/src/components/carousel/index.d.ts.map +1 -0
  135. package/lib/typescript/src/components/chip/index.d.ts.map +1 -1
  136. package/lib/typescript/src/components/date-picker/index.d.ts +91 -0
  137. package/lib/typescript/src/components/date-picker/index.d.ts.map +1 -0
  138. package/lib/typescript/src/components/dialog/index.d.ts.map +1 -1
  139. package/lib/typescript/src/components/direction/index.d.ts +11 -10
  140. package/lib/typescript/src/components/direction/index.d.ts.map +1 -1
  141. package/lib/typescript/src/components/empty-state/index.d.ts.map +1 -1
  142. package/lib/typescript/src/components/field/index.d.ts.map +1 -1
  143. package/lib/typescript/src/components/frame/index.d.ts +17 -0
  144. package/lib/typescript/src/components/frame/index.d.ts.map +1 -1
  145. package/lib/typescript/src/components/heatmap-chart/index.d.ts +22 -3
  146. package/lib/typescript/src/components/heatmap-chart/index.d.ts.map +1 -1
  147. package/lib/typescript/src/components/input-group/index.d.ts.map +1 -1
  148. package/lib/typescript/src/components/item/index.d.ts.map +1 -1
  149. package/lib/typescript/src/components/label/index.d.ts.map +1 -1
  150. package/lib/typescript/src/components/line-chart/index.d.ts +42 -2
  151. package/lib/typescript/src/components/line-chart/index.d.ts.map +1 -1
  152. package/lib/typescript/src/components/loader/index.d.ts +38 -0
  153. package/lib/typescript/src/components/loader/index.d.ts.map +1 -0
  154. package/lib/typescript/src/components/map/basemap.d.ts +76 -0
  155. package/lib/typescript/src/components/map/basemap.d.ts.map +1 -0
  156. package/lib/typescript/src/components/map/index.d.ts +367 -0
  157. package/lib/typescript/src/components/map/index.d.ts.map +1 -0
  158. package/lib/typescript/src/components/map/maplibre.d.ts +193 -0
  159. package/lib/typescript/src/components/map/maplibre.d.ts.map +1 -0
  160. package/lib/typescript/src/components/marker/index.d.ts.map +1 -1
  161. package/lib/typescript/src/components/message/index.d.ts.map +1 -1
  162. package/lib/typescript/src/components/message-scroller/index.d.ts.map +1 -1
  163. package/lib/typescript/src/components/popover/index.d.ts.map +1 -1
  164. package/lib/typescript/src/components/progress/index.d.ts.map +1 -1
  165. package/lib/typescript/src/components/ring-chart/index.d.ts +156 -0
  166. package/lib/typescript/src/components/ring-chart/index.d.ts.map +1 -0
  167. package/lib/typescript/src/components/select/index.d.ts.map +1 -1
  168. package/lib/typescript/src/components/separator/index.d.ts +36 -1
  169. package/lib/typescript/src/components/separator/index.d.ts.map +1 -1
  170. package/lib/typescript/src/components/shimmer/index.d.ts.map +1 -1
  171. package/lib/typescript/src/components/slider/index.d.ts.map +1 -1
  172. package/lib/typescript/src/components/steps/index.d.ts.map +1 -1
  173. package/lib/typescript/src/components/switch/index.d.ts.map +1 -1
  174. package/lib/typescript/src/components/tabs/index.d.ts.map +1 -1
  175. package/lib/typescript/src/components/timeline/index.d.ts.map +1 -1
  176. package/lib/typescript/src/components/toast/index.d.ts.map +1 -1
  177. package/lib/typescript/src/components/toggle-button/index.d.ts.map +1 -1
  178. package/lib/typescript/src/components/tooltip/index.d.ts +125 -0
  179. package/lib/typescript/src/components/tooltip/index.d.ts.map +1 -0
  180. package/lib/typescript/src/components/typography/index.d.ts +6 -0
  181. package/lib/typescript/src/components/typography/index.d.ts.map +1 -1
  182. package/lib/typescript/src/hooks/index.d.ts +1 -0
  183. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  184. package/lib/typescript/src/hooks/use-back-handler.d.ts +19 -0
  185. package/lib/typescript/src/hooks/use-back-handler.d.ts.map +1 -0
  186. package/lib/typescript/src/hooks/use-direction.d.ts +20 -0
  187. package/lib/typescript/src/hooks/use-direction.d.ts.map +1 -0
  188. package/lib/typescript/src/icons/index.d.ts +8 -0
  189. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  190. package/lib/typescript/src/index.d.ts +14 -4
  191. package/lib/typescript/src/index.d.ts.map +1 -1
  192. package/lib/typescript/src/primitives/keyboard-avoider.d.ts.map +1 -1
  193. package/lib/typescript/src/primitives/text.d.ts +20 -0
  194. package/lib/typescript/src/primitives/text.d.ts.map +1 -1
  195. package/lib/typescript/src/utils/chart.d.ts +96 -0
  196. package/lib/typescript/src/utils/chart.d.ts.map +1 -0
  197. package/lib/typescript/src/utils/date.d.ts +116 -0
  198. package/lib/typescript/src/utils/date.d.ts.map +1 -0
  199. package/package.json +9 -1
  200. package/src/components/accordion/index.tsx +8 -12
  201. package/src/components/alert/index.tsx +2 -2
  202. package/src/components/area-chart/index.tsx +1147 -0
  203. package/src/components/attachment/index.tsx +2 -2
  204. package/src/components/avatar/index.tsx +4 -4
  205. package/src/components/badge/index.tsx +6 -6
  206. package/src/components/bar-chart/index.tsx +1208 -0
  207. package/src/components/bottom-sheet/index.tsx +282 -21
  208. package/src/components/breadcrumb/index.tsx +363 -0
  209. package/src/components/button/index.tsx +12 -8
  210. package/src/components/calendar/index.tsx +703 -0
  211. package/src/components/carousel/index.tsx +788 -0
  212. package/src/components/chip/index.tsx +6 -8
  213. package/src/components/date-picker/index.tsx +237 -0
  214. package/src/components/dialog/index.tsx +7 -2
  215. package/src/components/direction/index.tsx +22 -22
  216. package/src/components/empty-state/index.tsx +2 -2
  217. package/src/components/field/index.tsx +3 -5
  218. package/src/components/flow/index.tsx +3 -3
  219. package/src/components/frame/index.tsx +22 -7
  220. package/src/components/heatmap-chart/index.tsx +58 -11
  221. package/src/components/input-group/index.tsx +5 -4
  222. package/src/components/item/index.tsx +9 -9
  223. package/src/components/label/index.tsx +2 -2
  224. package/src/components/line-chart/index.tsx +194 -223
  225. package/src/components/loader/index.tsx +812 -0
  226. package/src/components/map/basemap.ts +304 -0
  227. package/src/components/map/index.tsx +1116 -0
  228. package/src/components/map/maplibre.ts +201 -0
  229. package/src/components/marker/index.tsx +3 -3
  230. package/src/components/message/index.tsx +15 -14
  231. package/src/components/message-scroller/index.tsx +5 -4
  232. package/src/components/otp-input/index.tsx +2 -2
  233. package/src/components/popover/index.tsx +43 -7
  234. package/src/components/progress/index.tsx +10 -2
  235. package/src/components/radio-group/index.tsx +2 -2
  236. package/src/components/ring-chart/index.tsx +543 -0
  237. package/src/components/section-rail/index.tsx +6 -6
  238. package/src/components/select/index.tsx +10 -4
  239. package/src/components/separator/index.tsx +77 -19
  240. package/src/components/shimmer/index.tsx +10 -1
  241. package/src/components/slider/index.tsx +20 -5
  242. package/src/components/steps/index.tsx +5 -5
  243. package/src/components/switch/index.tsx +6 -1
  244. package/src/components/tabs/index.tsx +7 -9
  245. package/src/components/timeline/index.tsx +4 -4
  246. package/src/components/toast/index.tsx +2 -2
  247. package/src/components/toggle-button/index.tsx +5 -7
  248. package/src/components/tooltip/index.tsx +610 -0
  249. package/src/components/typography/index.tsx +7 -2
  250. package/src/hooks/index.ts +1 -0
  251. package/src/hooks/use-back-handler.ts +37 -0
  252. package/src/hooks/use-direction.ts +45 -0
  253. package/src/icons/index.tsx +111 -0
  254. package/src/index.ts +129 -0
  255. package/src/primitives/keyboard-avoider.tsx +2 -1
  256. package/src/primitives/text.tsx +53 -8
  257. package/src/utils/chart.ts +355 -0
  258. package/src/utils/date.ts +446 -0
@@ -0,0 +1,492 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Tooltip — a small label that names the thing under your finger.
5
+ *
6
+ * A popover is a panel you open and deal with; a tooltip is a whisper. It
7
+ * carries a word or two about what a control does, appears without taking the
8
+ * screen, and goes away on its own. That is why it is inverted rather than
9
+ * surface-coloured, why it is not dismissible with a scrim, and why it closes
10
+ * after a beat instead of waiting to be told.
11
+ *
12
+ * On touch there is no hover to open it, so the gesture is a long press by
13
+ * default — the platform's own "tell me more" gesture — with `openOn="press"`
14
+ * for the cases where a tap should reveal it instead.
15
+ *
16
+ * ```tsx
17
+ * <Tooltip label="Copy link">
18
+ * <Tooltip.Trigger>
19
+ * <IconButton icon={<LinkIcon />} />
20
+ * </Tooltip.Trigger>
21
+ * <Tooltip.Content>
22
+ * <Tooltip.Arrow />
23
+ * Copy link
24
+ * </Tooltip.Content>
25
+ * </Tooltip>
26
+ * ```
27
+ *
28
+ * Placement is a preference, not a promise: the trigger is measured when it is
29
+ * pressed, the label measures itself on its first layout, and the two are
30
+ * reconciled against the safe area — so `placement="top"` means *above, if
31
+ * above fits*, and a trigger near the top edge shows its tooltip below instead.
32
+ */
33
+ import { Children, cloneElement, createContext, isValidElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
34
+ import { Pressable, useWindowDimensions, View } from 'react-native';
35
+ import Animated, { FadeOut, useAnimatedStyle, useReducedMotion, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
36
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
37
+ import { Portal } from "../../primitives/portal.js";
38
+ import { Text } from "../../primitives/text.js";
39
+ import { cn } from "../../utils/cn.js";
40
+
41
+ /** Gap between the trigger and the label. */
42
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
43
+ const DEFAULT_OFFSET = 6;
44
+ /** Smallest gap allowed between the label and the edge of the safe area. */
45
+ const SCREEN_MARGIN = 12;
46
+ /** Side of the arrow square before it is rotated 45°. */
47
+ const ARROW_SIZE = 10;
48
+ /** How long the label stays up before hiding itself, in milliseconds. */
49
+ const DEFAULT_DURATION = 1500;
50
+ const TooltipContext = /*#__PURE__*/createContext(null);
51
+ function useTooltip(component) {
52
+ const context = useContext(TooltipContext);
53
+ if (!context) {
54
+ throw new Error(`${component} must be used within a <Tooltip>`);
55
+ }
56
+ return context;
57
+ }
58
+ function TooltipRoot({
59
+ children,
60
+ open,
61
+ onOpenChange,
62
+ defaultOpen = false,
63
+ openOn = 'longPress',
64
+ duration = DEFAULT_DURATION,
65
+ label
66
+ }) {
67
+ const [internalOpen, setInternalOpen] = useState(defaultOpen);
68
+ const [trigger, setTrigger] = useState(null);
69
+ const [placement, setPlacement] = useState('top');
70
+ const [arrowOffset, setArrowOffset] = useState(0);
71
+ const isControlled = open !== undefined;
72
+ const resolvedOpen = isControlled ? open : internalOpen;
73
+ const setOpen = useCallback(next => {
74
+ if (!isControlled) setInternalOpen(next);
75
+ onOpenChange?.(next);
76
+ }, [isControlled, onOpenChange]);
77
+ const show = useCallback(() => setOpen(true), [setOpen]);
78
+ const hide = useCallback(() => setOpen(false), [setOpen]);
79
+
80
+ // A tooltip is not a thing you deal with, so it hides itself after a beat.
81
+ // The timer is armed on open and cleared on close, and `duration` of 0 opts
82
+ // out — for a tooltip that stays until the next tap.
83
+ useEffect(() => {
84
+ if (!resolvedOpen || duration <= 0) return;
85
+ const timer = setTimeout(() => setOpen(false), duration);
86
+ return () => clearTimeout(timer);
87
+ }, [resolvedOpen, duration, setOpen]);
88
+ const context = useMemo(() => ({
89
+ open: resolvedOpen,
90
+ show,
91
+ hide,
92
+ trigger,
93
+ setTrigger,
94
+ placement,
95
+ setPlacement,
96
+ arrowOffset,
97
+ setArrowOffset,
98
+ openOn,
99
+ label
100
+ }), [resolvedOpen, show, hide, trigger, placement, arrowOffset, openOn, label]);
101
+ return /*#__PURE__*/_jsx(TooltipContext.Provider, {
102
+ value: context,
103
+ children: children
104
+ });
105
+ }
106
+ /**
107
+ * Wraps its child and reveals the label on it — a long press by default, a
108
+ * press when the root asks for one. It is also what gets measured, so the
109
+ * label knows where to sit.
110
+ *
111
+ * The child is wrapped in a view rather than handed a ref: the ref has to
112
+ * survive whatever the child is — a button, a plain Pressable, an icon — and
113
+ * only a wrapper we own is guaranteed to be measurable.
114
+ *
115
+ * That wrapper shrinks to its child on purpose. A view stretches to its parent
116
+ * by default, and a wrapper that filled the row would be measured as the whole
117
+ * row — putting a centred label over the middle of the screen rather than over
118
+ * the control it names.
119
+ */
120
+ function TooltipTrigger({
121
+ className,
122
+ children
123
+ }) {
124
+ const {
125
+ open,
126
+ show,
127
+ hide,
128
+ setTrigger,
129
+ openOn,
130
+ label
131
+ } = useTooltip('Tooltip.Trigger');
132
+ const ref = useRef(null);
133
+ const measureThenShow = () => {
134
+ // Measured on every open rather than on layout: the trigger may have
135
+ // scrolled since it was laid out, and a stale rect anchors the label to
136
+ // where the trigger used to be.
137
+ ref.current?.measureInWindow((x, y, width, height) => {
138
+ setTrigger({
139
+ x,
140
+ y,
141
+ width,
142
+ height
143
+ });
144
+ show();
145
+ });
146
+ };
147
+ const handleLongPress = (...args) => {
148
+ if (/*#__PURE__*/isValidElement(children)) children.props.onLongPress?.(...args);
149
+ if (openOn === 'longPress') measureThenShow();
150
+ };
151
+ const handlePress = (...args) => {
152
+ if (/*#__PURE__*/isValidElement(children)) children.props.onPress?.(...args);
153
+ if (openOn !== 'press') return;
154
+ if (open) hide();else measureThenShow();
155
+ };
156
+
157
+ // A trigger that is not an element has nothing to clone handlers onto, so it
158
+ // is passed through — wrapped, if it is bare text, since a string cannot be
159
+ // a child of a view.
160
+ if (! /*#__PURE__*/isValidElement(children)) {
161
+ return typeof children === 'string' || typeof children === 'number' ? /*#__PURE__*/_jsx(Text, {
162
+ children: children
163
+ }) : /*#__PURE__*/_jsx(_Fragment, {
164
+ children: children
165
+ });
166
+ }
167
+ return /*#__PURE__*/_jsx(View, {
168
+ ref: ref,
169
+ collapsable: false,
170
+ className: cn('self-start', className),
171
+ children: /*#__PURE__*/cloneElement(children, {
172
+ onPress: handlePress,
173
+ onLongPress: handleLongPress,
174
+ // An icon-only trigger has nothing for a screen reader to read; the
175
+ // label fills that in without the sighted user having to open it.
176
+ accessibilityLabel: children.props.accessibilityLabel ?? label
177
+ })
178
+ });
179
+ }
180
+ function TooltipContent({
181
+ className,
182
+ placement = 'top',
183
+ align = 'center',
184
+ offset = DEFAULT_OFFSET,
185
+ alignOffset = 0,
186
+ children,
187
+ onLayout: onLayoutProp,
188
+ style,
189
+ ...props
190
+ }) {
191
+ const context = useTooltip('Tooltip.Content');
192
+ const {
193
+ open,
194
+ hide,
195
+ trigger,
196
+ setPlacement,
197
+ setArrowOffset
198
+ } = context;
199
+ const {
200
+ width: screenWidth,
201
+ height: screenHeight
202
+ } = useWindowDimensions();
203
+ const insets = useSafeAreaInsets();
204
+ const [size, setSize] = useState(null);
205
+
206
+ // Label size changes with its text, so it is re-measured rather than measured
207
+ // once — a tooltip whose text is swapped should not stay the old size.
208
+ const onLayout = event => {
209
+ const {
210
+ width: w,
211
+ height: h
212
+ } = event.nativeEvent.layout;
213
+ setSize(current => current && Math.abs(current.width - w) < 1 && Math.abs(current.height - h) < 1 ? current : {
214
+ width: w,
215
+ height: h
216
+ });
217
+ onLayoutProp?.(event);
218
+ };
219
+
220
+ /*
221
+ * Forgetting the size on close is what makes the second open behave like the
222
+ * first. Held, it would place the reopened label using the last label's
223
+ * dimensions for a frame — and, because the entrance is driven off whether a
224
+ * position exists at all, a size that never went away means a tooltip that
225
+ * animates in once and afterwards just appears.
226
+ */
227
+ useEffect(() => {
228
+ if (!open) setSize(null);
229
+ }, [open]);
230
+ const bounds = {
231
+ left: insets.left + SCREEN_MARGIN,
232
+ right: screenWidth - insets.right - SCREEN_MARGIN,
233
+ top: insets.top + SCREEN_MARGIN,
234
+ bottom: screenHeight - insets.bottom - SCREEN_MARGIN
235
+ };
236
+ const position = trigger && size ? place({
237
+ trigger,
238
+ size,
239
+ placement,
240
+ align,
241
+ offset,
242
+ alignOffset,
243
+ bounds
244
+ }) : null;
245
+
246
+ // Publish the side actually used and where the trigger centre landed, so the
247
+ // arrow points at the trigger even after a flip or a clamp.
248
+ const resolvedPlacement = position?.placement;
249
+ const resolvedArrow = position?.arrowOffset;
250
+ useEffect(() => {
251
+ if (resolvedPlacement) setPlacement(resolvedPlacement);
252
+ if (resolvedArrow !== undefined) setArrowOffset(resolvedArrow);
253
+ }, [resolvedPlacement, resolvedArrow, setPlacement, setArrowOffset]);
254
+
255
+ /*
256
+ * The entrance is driven by hand rather than by an `entering` preset, and the
257
+ * reason is the measuring frame. A layout animation fires on mount — which
258
+ * here is the frame *before* the label knows where it goes, so the whole
259
+ * animation would play at the origin, invisibly, and the label would then
260
+ * snap into place fully formed. Holding the values until a position exists is
261
+ * the only way to have both the animation and the correct position.
262
+ */
263
+ const appear = useSharedValue(0);
264
+ const settle = useSharedValue(0);
265
+ const reducedMotion = useReducedMotion();
266
+ const placed = !!position;
267
+ useEffect(() => {
268
+ if (!placed) {
269
+ appear.value = 0;
270
+ settle.value = 0;
271
+ return;
272
+ }
273
+ if (reducedMotion) {
274
+ appear.value = 1;
275
+ settle.value = 1;
276
+ return;
277
+ }
278
+ appear.value = withTiming(1, {
279
+ duration: 100
280
+ });
281
+ settle.value = withSpring(1, {
282
+ damping: 20,
283
+ stiffness: 300,
284
+ mass: 0.5
285
+ });
286
+ }, [placed, reducedMotion, appear, settle]);
287
+
288
+ // Starts slightly small and shifted towards the trigger, so the label
289
+ // appears to unfold from it rather than fade in over it.
290
+ const origin = ENTRY_SHIFT[resolvedPlacement ?? placement];
291
+ const labelStyle = useAnimatedStyle(() => ({
292
+ opacity: appear.value,
293
+ transform: [{
294
+ translateX: origin.x * (1 - settle.value)
295
+ }, {
296
+ translateY: origin.y * (1 - settle.value)
297
+ }, {
298
+ scale: 0.9 + 0.1 * settle.value
299
+ }]
300
+ }));
301
+ if (!open || !trigger) return null;
302
+ return /*#__PURE__*/_jsx(Portal, {
303
+ children: /*#__PURE__*/_jsx(TooltipContext.Provider, {
304
+ value: context,
305
+ children: /*#__PURE__*/_jsxs(View, {
306
+ className: "absolute inset-0",
307
+ children: [/*#__PURE__*/_jsx(Pressable, {
308
+ accessibilityLabel: "Dismiss",
309
+ className: "absolute inset-0",
310
+ onPress: hide
311
+ }), /*#__PURE__*/_jsx(Animated.View, {
312
+ exiting: FadeOut.duration(100),
313
+ onLayout: onLayout,
314
+ style: {
315
+ position: 'absolute',
316
+ pointerEvents: 'box-none',
317
+ // Until it has measured itself the label has no honest position,
318
+ // so it is laid out off-screen rather than at the origin.
319
+ top: position?.top ?? -9999,
320
+ left: position?.left ?? -9999,
321
+ maxWidth: bounds.right - bounds.left
322
+ },
323
+ children: /*#__PURE__*/_jsx(Animated.View, {
324
+ accessibilityRole: "text",
325
+ style: [labelStyle, style],
326
+ className: cn('rounded-lg bg-foreground px-2.5 py-1.5 shadow-md', className),
327
+ ...props,
328
+ children: Children.map(children, child => typeof child === 'string' || typeof child === 'number' ? /*#__PURE__*/_jsx(TooltipText, {
329
+ children: child
330
+ }) : child)
331
+ })
332
+ })]
333
+ })
334
+ })
335
+ });
336
+ }
337
+
338
+ /** The label's default text: small and inverted against the dark surface. */
339
+ const TooltipText = ({
340
+ className,
341
+ ...props
342
+ }) => /*#__PURE__*/_jsx(Text, {
343
+ size: "sm",
344
+ weight: "medium",
345
+ className: cn('text-background', className),
346
+ ...props
347
+ });
348
+ TooltipText.displayName = 'Tooltip.Text';
349
+ /**
350
+ * A small square rotated into a diamond, half-buried under the label so only
351
+ * the point shows. It shares the label's fill and points at the trigger's
352
+ * centre, which Content resolves and publishes — so when `align` shifts the
353
+ * label off-centre, or a clamp slides it back on screen, the arrow stays over
354
+ * the trigger rather than over the label's middle.
355
+ */
356
+ function TooltipArrow({
357
+ className,
358
+ style,
359
+ ...props
360
+ }) {
361
+ const {
362
+ trigger,
363
+ placement,
364
+ arrowOffset
365
+ } = useTooltip('Tooltip.Arrow');
366
+ if (!trigger) return null;
367
+ const vertical = placement === 'top' || placement === 'bottom';
368
+ // The arrow sits on the edge facing the trigger, the opposite edge to the
369
+ // placement: a label placed above the trigger has its arrow on the bottom.
370
+ const edge = {
371
+ top: 'bottom',
372
+ bottom: 'top',
373
+ left: 'right',
374
+ right: 'left'
375
+ }[placement];
376
+ return /*#__PURE__*/_jsx(View, {
377
+ accessibilityElementsHidden: true,
378
+ importantForAccessibility: "no-hide-descendants",
379
+ style: [{
380
+ position: 'absolute',
381
+ pointerEvents: 'none',
382
+ [edge]: -ARROW_SIZE / 2,
383
+ width: ARROW_SIZE,
384
+ height: ARROW_SIZE,
385
+ transform: [{
386
+ rotate: '45deg'
387
+ }],
388
+ // Centred on the trigger along the cross axis. `marginLeft/Top` backs
389
+ // it off by half its own size so `arrowOffset` lands on its centre.
390
+ ...(vertical ? {
391
+ left: arrowOffset,
392
+ marginLeft: -ARROW_SIZE / 2
393
+ } : {
394
+ top: arrowOffset,
395
+ marginTop: -ARROW_SIZE / 2
396
+ })
397
+ }, style],
398
+ className: cn('rounded-[1px] bg-foreground', className),
399
+ ...props
400
+ });
401
+ }
402
+
403
+ /* -------------------------------------------------------------------------- */
404
+ /* Placement */
405
+ /* -------------------------------------------------------------------------- */
406
+
407
+ /**
408
+ * Resolves the label's window position.
409
+ *
410
+ * Two passes, in this order: the flip picks a *side* and only fires when the
411
+ * preferred one genuinely has less room than its opposite; the clamp then
412
+ * slides the label along the other axis to keep it on screen. Doing the clamp
413
+ * first would let a label be nudged inside the bounds and so look like it fits,
414
+ * hiding the fact that the wrong side was chosen.
415
+ */
416
+ function place({
417
+ trigger,
418
+ size,
419
+ placement,
420
+ align,
421
+ offset,
422
+ alignOffset,
423
+ bounds
424
+ }) {
425
+ const roomAfter = {
426
+ bottom: bounds.bottom - (trigger.y + trigger.height + offset),
427
+ top: trigger.y - offset - bounds.top,
428
+ right: bounds.right - (trigger.x + trigger.width + offset),
429
+ left: trigger.x - offset - bounds.left
430
+ };
431
+ const opposite = {
432
+ top: 'bottom',
433
+ bottom: 'top',
434
+ left: 'right',
435
+ right: 'left'
436
+ };
437
+ const needed = placement === 'top' || placement === 'bottom' ? size.height : size.width;
438
+ const resolved = roomAfter[placement] < needed && roomAfter[opposite[placement]] > roomAfter[placement] ? opposite[placement] : placement;
439
+ const clamp = (value, min, max) => Math.max(min, Math.min(value, Math.max(min, max)));
440
+ if (resolved === 'top' || resolved === 'bottom') {
441
+ const top = resolved === 'bottom' ? trigger.y + trigger.height + offset : trigger.y - size.height - offset;
442
+ const left = align === 'start' ? trigger.x + alignOffset : align === 'end' ? trigger.x + trigger.width - size.width + alignOffset : trigger.x + trigger.width / 2 - size.width / 2 + alignOffset;
443
+ const clampedLeft = clamp(left, bounds.left, bounds.right - size.width);
444
+ const triggerCentreX = trigger.x + trigger.width / 2;
445
+ return {
446
+ placement: resolved,
447
+ top: clamp(top, bounds.top, bounds.bottom - size.height),
448
+ left: clampedLeft,
449
+ arrowOffset: clamp(triggerCentreX - clampedLeft, ARROW_SIZE, size.width - ARROW_SIZE)
450
+ };
451
+ }
452
+ const left = resolved === 'right' ? trigger.x + trigger.width + offset : trigger.x - size.width - offset;
453
+ const top = align === 'start' ? trigger.y + alignOffset : align === 'end' ? trigger.y + trigger.height - size.height + alignOffset : trigger.y + trigger.height / 2 - size.height / 2 + alignOffset;
454
+ const clampedTop = clamp(top, bounds.top, bounds.bottom - size.height);
455
+ const triggerCentreY = trigger.y + trigger.height / 2;
456
+ return {
457
+ placement: resolved,
458
+ top: clampedTop,
459
+ left: clamp(left, bounds.left, bounds.right - size.width),
460
+ arrowOffset: clamp(triggerCentreY - clampedTop, ARROW_SIZE, size.height - ARROW_SIZE)
461
+ };
462
+ }
463
+
464
+ /**
465
+ * Where the label starts, relative to where it ends: towards the trigger, on
466
+ * whichever side was resolved, so it appears to grow out of the control.
467
+ */
468
+ const ENTRY_SHIFT = {
469
+ bottom: {
470
+ x: 0,
471
+ y: -6
472
+ },
473
+ top: {
474
+ x: 0,
475
+ y: 6
476
+ },
477
+ right: {
478
+ x: -6,
479
+ y: 0
480
+ },
481
+ left: {
482
+ x: 6,
483
+ y: 0
484
+ }
485
+ };
486
+ export const Tooltip = Object.assign(TooltipRoot, {
487
+ Trigger: TooltipTrigger,
488
+ Content: TooltipContent,
489
+ Arrow: TooltipArrow,
490
+ Text: TooltipText
491
+ });
492
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Children","cloneElement","createContext","isValidElement","useCallback","useContext","useEffect","useMemo","useRef","useState","Pressable","useWindowDimensions","View","Animated","FadeOut","useAnimatedStyle","useReducedMotion","useSharedValue","withSpring","withTiming","useSafeAreaInsets","Portal","Text","cn","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_OFFSET","SCREEN_MARGIN","ARROW_SIZE","DEFAULT_DURATION","TooltipContext","useTooltip","component","context","Error","TooltipRoot","children","open","onOpenChange","defaultOpen","openOn","duration","label","internalOpen","setInternalOpen","trigger","setTrigger","placement","setPlacement","arrowOffset","setArrowOffset","isControlled","undefined","resolvedOpen","setOpen","next","show","hide","timer","setTimeout","clearTimeout","Provider","value","TooltipTrigger","className","ref","measureThenShow","current","measureInWindow","x","y","width","height","handleLongPress","args","props","onLongPress","handlePress","onPress","collapsable","accessibilityLabel","TooltipContent","align","offset","alignOffset","onLayout","onLayoutProp","style","screenWidth","screenHeight","insets","size","setSize","event","w","h","nativeEvent","layout","Math","abs","bounds","left","right","top","bottom","position","place","resolvedPlacement","resolvedArrow","appear","settle","reducedMotion","placed","damping","stiffness","mass","origin","ENTRY_SHIFT","labelStyle","opacity","transform","translateX","translateY","scale","exiting","pointerEvents","maxWidth","accessibilityRole","map","child","TooltipText","weight","displayName","TooltipArrow","vertical","edge","accessibilityElementsHidden","importantForAccessibility","rotate","marginLeft","marginTop","roomAfter","opposite","needed","resolved","clamp","min","max","clampedLeft","triggerCentreX","clampedTop","triggerCentreY","Tooltip","Object","assign","Trigger","Content","Arrow"],"sourceRoot":"../../../../src","sources":["components/tooltip/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -27,7 +27,7 @@
27
27
  import { Children, forwardRef } from 'react';
28
28
  import { View } from 'react-native';
29
29
  import { tv } from 'tailwind-variants';
30
- import { Text } from "../../primitives/text.js";
30
+ import { Text, textChildren } from "../../primitives/text.js";
31
31
  import { cn } from "../../utils/cn.js";
32
32
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
33
33
  const typographyVariants = tv({
@@ -59,6 +59,11 @@ const typographyVariants = tv({
59
59
  bold: 'font-bold'
60
60
  },
61
61
  align: {
62
+ // `start` and `end` follow the reading direction; `left` and `right`
63
+ // are the physical edges, for the rare line that has to stay put
64
+ // whichever way the script runs — a figure in a table, a code caption.
65
+ start: 'text-start',
66
+ end: 'text-end',
62
67
  left: 'text-left',
63
68
  center: 'text-center',
64
69
  right: 'text-right'
@@ -273,7 +278,7 @@ const TypographyList = /*#__PURE__*/forwardRef(({
273
278
  className: "mt-2.5 size-1.5 shrink-0 rounded-full bg-muted-foreground"
274
279
  }), /*#__PURE__*/_jsx(View, {
275
280
  className: "flex-1",
276
- children: child
281
+ children: textChildren(child)
277
282
  })]
278
283
  }))
279
284
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["Children","forwardRef","View","tv","Text","cn","jsx","_jsx","jsxs","_jsxs","typographyVariants","base","variants","type","h1","h2","h3","h4","h5","h6","lead","body","large","small","blockquote","code","weight","normal","medium","semibold","bold","align","left","center","right","transform","uppercase","lowercase","capitalize","underline","true","italic","strike","muted","defaultVariants","HEADING_LEVEL","TypographyRoot","className","props","ref","displayName","TypographyHeading","accessibilityRole","TypographyParagraph","TypographyCode","containerClassName","testID","children","TypographyBlockquote","TypographyList","ordered","map","child","index","TypographyListItem","Typography","Object","assign","Heading","Paragraph","Code","Blockquote","List","ListItem"],"sourceRoot":"../../../../src","sources":["components/typography/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,UAAU,QAAwB,OAAO;AAC5D,SAASC,IAAI,QAA6C,cAAc;AACxE,SAASC,EAAE,QAA2B,mBAAmB;AACzD,SAASC,IAAI,QAAwB,0BAAuB;AAC5D,SAASC,EAAE,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpC,MAAMC,kBAAkB,GAAGP,EAAE,CAAC;EAC5BQ,IAAI,EAAE,iBAAiB;EACvBC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,mCAAmC;MACvCC,EAAE,EAAE,uCAAuC;MAC3CC,EAAE,EAAE,uCAAuC;MAC3CC,EAAE,EAAE,uBAAuB;MAC3BC,EAAE,EAAE,uBAAuB;MAC3BC,EAAE,EAAE,yBAAyB;MAC7B;MACAC,IAAI,EAAE,2CAA2C;MACjDC,IAAI,EAAE,uBAAuB;MAC7B,SAAS,EAAE,qBAAqB;MAChC,SAAS,EAAE,qBAAqB;MAChC;MACAC,KAAK,EAAE,uBAAuB;MAC9B;MACAC,KAAK,EAAE,kCAAkC;MACzCC,UAAU,EAAE,8BAA8B;MAC1CC,IAAI,EAAE;IACR,CAAC;IACDC,MAAM,EAAE;MACNC,MAAM,EAAE,aAAa;MACrBC,MAAM,EAAE,aAAa;MACrBC,QAAQ,EAAE,eAAe;MACzBC,IAAI,EAAE;IACR,CAAC;IACDC,KAAK,EAAE;MACLC,IAAI,EAAE,WAAW;MACjBC,MAAM,EAAE,aAAa;MACrBC,KAAK,EAAE;IACT,CAAC;IACDC,SAAS,EAAE;MACTC,SAAS,EAAE,WAAW;MACtBC,SAAS,EAAE,WAAW;MACtBC,UAAU,EAAE;IACd,CAAC;IACDC,SAAS,EAAE;MACTC,IAAI,EAAE;IACR,CAAC;IACDC,MAAM,EAAE;MACND,IAAI,EAAE;IACR,CAAC;IACDE,MAAM,EAAE;MACNF,IAAI,EAAE;IACR,CAAC;IACDG,KAAK,EAAE;MACLH,IAAI,EAAE;IACR;EACF,CAAC;EACDI,eAAe,EAAE;IACf/B,IAAI,EAAE;EACR;AACF,CAAC,CAAC;;AA+BF;;AAEA;;AAMA;AACA,MAAMgC,aAA0C,GAAG;EACjD/B,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE;AACN,CAAC;AAED,MAAM2B,cAAc,gBAAG7C,UAAU,CAC/B,CACE;EAAE8C,SAAS;EAAElC,IAAI;EAAE8B,KAAK;EAAEjB,MAAM;EAAEK,KAAK;EAAEI,SAAS;EAAEI,SAAS;EAAEE,MAAM;EAAEC,MAAM;EAAE,GAAGM;AAAM,CAAC,EACzFC,GAAG,kBAEH1C,IAAA,CAACH,IAAI;EACH6C,GAAG,EAAEA,GAAI;EACTF,SAAS,EAAErC,kBAAkB,CAAC;IAC5BG,IAAI;IACJ8B,KAAK;IACLjB,MAAM;IACNK,KAAK;IACLI,SAAS;IACTI,SAAS;IACTE,MAAM;IACNC,MAAM;IACNK;EACF,CAAC,CAAE;EAAA,GACCC;AAAK,CACV,CAEL,CAAC;AACDF,cAAc,CAACI,WAAW,GAAG,YAAY;AAMzC;AACA,MAAMC,iBAAiB,gBAAGlD,UAAU,CAClC,CACE;EAAE8C,SAAS;EAAElC,IAAI,GAAG,IAAI;EAAE8B,KAAK;EAAEjB,MAAM;EAAEK,KAAK;EAAEI,SAAS;EAAEI,SAAS;EAAEE,MAAM;EAAEC,MAAM;EAAE,GAAGM;AAAM,CAAC,EAChGC,GAAG,kBAEH1C,IAAA,CAACH,IAAI;EACH6C,GAAG,EAAEA,GAAI;EACTG,iBAAiB,EAAC,QAAQ;EAC1B,cAAYP,aAAa,CAAChC,IAAI,CAAE;EAChCkC,SAAS,EAAErC,kBAAkB,CAAC;IAC5BG,IAAI;IACJ8B,KAAK;IACLjB,MAAM;IACNK,KAAK;IACLI,SAAS;IACTI,SAAS;IACTE,MAAM;IACNC,MAAM;IACNK;EACF,CAAC,CAAE;EAAA,GACCC;AAAK,CACV,CAEL,CAAC;AACDG,iBAAiB,CAACD,WAAW,GAAG,oBAAoB;AAMpD,MAAMG,mBAAmB,gBAAGpD,UAAU,CACpC,CACE;EAAE8C,SAAS;EAAElC,IAAI,GAAG,MAAM;EAAE8B,KAAK;EAAEjB,MAAM;EAAEK,KAAK;EAAEI,SAAS;EAAEI,SAAS;EAAEE,MAAM;EAAEC,MAAM;EAAE,GAAGM;AAAM,CAAC,EAClGC,GAAG,kBAEH1C,IAAA,CAACH,IAAI;EACH6C,GAAG,EAAEA,GAAI;EACTF,SAAS,EAAErC,kBAAkB,CAAC;IAC5BG,IAAI;IACJ8B,KAAK;IACLjB,MAAM;IACNK,KAAK;IACLI,SAAS;IACTI,SAAS;IACTE,MAAM;IACNC,MAAM;IACNK;EACF,CAAC,CAAE;EAAA,GACCC;AAAK,CACV,CAEL,CAAC;AACDK,mBAAmB,CAACH,WAAW,GAAG,sBAAsB;AAOxD;AACA,MAAMI,cAAc,gBAAGrD,UAAU,CAC/B,CAAC;EAAE8C,SAAS;EAAEQ,kBAAkB;EAAEZ,KAAK;EAAEa,MAAM;EAAE,GAAGR;AAAM,CAAC,EAAEC,GAAG,kBAC9D1C,IAAA,CAACL,IAAI;EACH+C,GAAG,EAAEA,GAAI;EACTO,MAAM,EAAEA,MAAO;EACfT,SAAS,EAAE1C,EAAE,CAAC,4CAA4C,EAAEkD,kBAAkB,CAAE;EAAAE,QAAA,eAEhFlD,IAAA,CAACH,IAAI;IAAC2C,SAAS,EAAErC,kBAAkB,CAAC;MAAEG,IAAI,EAAE,MAAM;MAAE8B,KAAK;MAAEI;IAAU,CAAC,CAAE;IAAA,GAAKC;EAAK,CAAG;AAAC,CAClF,CAEV,CAAC;AACDM,cAAc,CAACJ,WAAW,GAAG,iBAAiB;AAO9C;AACA;AACA;AACA;AACA;AACA;AACA,MAAMQ,oBAAoB,gBAAGzD,UAAU,CACrC,CAAC;EAAE8C,SAAS;EAAEQ,kBAAkB;EAAEZ,KAAK;EAAEjB,MAAM;EAAEK,KAAK;EAAEI,SAAS;EAAEI,SAAS;EAAEE,MAAM,GAAG,IAAI;EAAEC,MAAM;EAAEe,QAAQ;EAAE,GAAGT;AAAM,CAAC,EAAEC,GAAG,kBAC5H1C,IAAA,CAACL,IAAI;EAAC+C,GAAG,EAAEA,GAAI;EAACF,SAAS,EAAE1C,EAAE,CAAC,+BAA+B,EAAEkD,kBAAkB,CAAE;EAAAE,QAAA,eACjFlD,IAAA,CAACH,IAAI;IACH2C,SAAS,EAAErC,kBAAkB,CAAC;MAC5BG,IAAI,EAAE,YAAY;MAClB8B,KAAK;MACLjB,MAAM;MACNK,KAAK;MACLI,SAAS;MACTI,SAAS;MACTE,MAAM;MACNC,MAAM;MACNK;IACF,CAAC,CAAE;IAAA,GACCC,KAAK;IAAAS,QAAA,EAERA;EAAQ,CACL;AAAC,CACH,CAEV,CAAC;AACDC,oBAAoB,CAACR,WAAW,GAAG,uBAAuB;AAS1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMS,cAAc,gBAAG1D,UAAU,CAC/B,CAAC;EAAE8C,SAAS;EAAEa,OAAO,GAAG,KAAK;EAAEH,QAAQ;EAAE,GAAGT;AAAM,CAAC,EAAEC,GAAG,kBACtD1C,IAAA,CAACL,IAAI;EAAC+C,GAAG,EAAEA,GAAI;EAACG,iBAAiB,EAAC,MAAM;EAACL,SAAS,EAAE1C,EAAE,CAAC,OAAO,EAAE0C,SAAS,CAAE;EAAA,GAAKC,KAAK;EAAAS,QAAA,EAClFzD,QAAQ,CAAC6D,GAAG,CAACJ,QAAQ,EAAE,CAACK,KAAK,EAAEC,KAAK,kBACnCtD,KAAA,CAACP,IAAI;IAAC6C,SAAS,EAAC,uBAAuB;IAAAU,QAAA,GACpCG,OAAO,gBACNnD,KAAA,CAACL,IAAI;MAAC2C,SAAS,EAAC,iCAAiC;MAAAU,QAAA,GAAEM,KAAK,GAAG,CAAC,EAAC,GAAC;IAAA,CAAM,CAAC;IAAA;IAErE;IACA;IACAxD,IAAA,CAACL,IAAI;MAAC6C,SAAS,EAAC;IAA2D,CAAE,CAC9E,eACDxC,IAAA,CAACL,IAAI;MAAC6C,SAAS,EAAC,QAAQ;MAAAU,QAAA,EAAEK;IAAK,CAAO,CAAC;EAAA,CACnC,CACP;AAAC,CACE,CAEV,CAAC;AACDH,cAAc,CAACT,WAAW,GAAG,iBAAiB;AAM9C;AACA,MAAMc,kBAAkB,gBAAG/D,UAAU,CACnC,CACE;EAAE8C,SAAS;EAAElC,IAAI,GAAG,MAAM;EAAE8B,KAAK;EAAEjB,MAAM;EAAEK,KAAK;EAAEI,SAAS;EAAEI,SAAS;EAAEE,MAAM;EAAEC,MAAM;EAAE,GAAGM;AAAM,CAAC,EAClGC,GAAG,kBAEH1C,IAAA,CAACH,IAAI;EACH6C,GAAG,EAAEA,GAAI;EACTF,SAAS,EAAErC,kBAAkB,CAAC;IAC5BG,IAAI;IACJ8B,KAAK;IACLjB,MAAM;IACNK,KAAK;IACLI,SAAS;IACTI,SAAS;IACTE,MAAM;IACNC,MAAM;IACNK;EACF,CAAC,CAAE;EAAA,GACCC;AAAK,CACV,CAEL,CAAC;AACDgB,kBAAkB,CAACd,WAAW,GAAG,qBAAqB;AAEtD,OAAO,MAAMe,UAAU,GAAGC,MAAM,CAACC,MAAM,CAACrB,cAAc,EAAE;EACtDsB,OAAO,EAAEjB,iBAAiB;EAC1BkB,SAAS,EAAEhB,mBAAmB;EAC9BiB,IAAI,EAAEhB,cAAc;EACpBiB,UAAU,EAAEb,oBAAoB;EAChCc,IAAI,EAAEb,cAAc;EACpBc,QAAQ,EAAET;AACZ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Children","forwardRef","View","tv","Text","textChildren","cn","jsx","_jsx","jsxs","_jsxs","typographyVariants","base","variants","type","h1","h2","h3","h4","h5","h6","lead","body","large","small","blockquote","code","weight","normal","medium","semibold","bold","align","start","end","left","center","right","transform","uppercase","lowercase","capitalize","underline","true","italic","strike","muted","defaultVariants","HEADING_LEVEL","TypographyRoot","className","props","ref","displayName","TypographyHeading","accessibilityRole","TypographyParagraph","TypographyCode","containerClassName","testID","children","TypographyBlockquote","TypographyList","ordered","map","child","index","TypographyListItem","Typography","Object","assign","Heading","Paragraph","Code","Blockquote","List","ListItem"],"sourceRoot":"../../../../src","sources":["components/typography/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ export { useKeyboard } from "./use-keyboard.js";
7
7
  export { useKeyboardAvoidance } from "./use-keyboard-avoidance.js";
8
8
  export { useRevealProgress } from "./use-reveal-progress.js";
9
9
  export { useScrollSections } from "./use-scroll-sections.js";
10
+ export { useBackHandler } from "./use-back-handler.js";
10
11
  export { useDebouncedValue } from "./use-debounced-value.js";
11
12
  export { usePrevious } from "./use-previous.js";
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCopyToClipboard","useDisclosure","useBreakpoint","BREAKPOINTS","useKeyboard","useKeyboardAvoidance","useRevealProgress","useScrollSections","useDebouncedValue","usePrevious"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,SACEA,kBAAkB,QAGb,4BAAyB;AAChC,SACEC,aAAa,QAGR,qBAAkB;AACzB,SACEC,aAAa,EACbC,WAAW,QAGN,qBAAkB;AACzB,SAASC,WAAW,QAAgC,mBAAgB;AACpE,SACEC,oBAAoB,QAIf,6BAA0B;AACjC,SACEC,iBAAiB,QAGZ,0BAAuB;AAC9B,SACEC,iBAAiB,QAGZ,0BAAuB;AAC9B,SAASC,iBAAiB,QAAQ,0BAAuB;AACzD,SAASC,WAAW,QAAQ,mBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["useCopyToClipboard","useDisclosure","useBreakpoint","BREAKPOINTS","useKeyboard","useKeyboardAvoidance","useRevealProgress","useScrollSections","useBackHandler","useDebouncedValue","usePrevious"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,SACEA,kBAAkB,QAGb,4BAAyB;AAChC,SACEC,aAAa,QAGR,qBAAkB;AACzB,SACEC,aAAa,EACbC,WAAW,QAGN,qBAAkB;AACzB,SAASC,WAAW,QAAgC,mBAAgB;AACpE,SACEC,oBAAoB,QAIf,6BAA0B;AACjC,SACEC,iBAAiB,QAGZ,0BAAuB;AAC9B,SACEC,iBAAiB,QAGZ,0BAAuB;AAC9B,SAASC,cAAc,QAAQ,uBAAoB;AACnD,SAASC,iBAAiB,QAAQ,0BAAuB;AACzD,SAASC,WAAW,QAAQ,mBAAgB","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef } from 'react';
4
+ import { BackHandler, Platform } from 'react-native';
5
+
6
+ /**
7
+ * Runs a handler when the Android hardware back button is pressed.
8
+ *
9
+ * An open overlay owns the back button while it is up: pressing back should
10
+ * dismiss the overlay, not pop the screen behind it. Without this, the back
11
+ * gesture navigates away and the overlay is orphaned — the same mistake as a
12
+ * modal that stays put when you tap outside it.
13
+ *
14
+ * The listener is Android-only and gated on `enabled`, so an overlay wires it
15
+ * to `open && dismissible` and nothing runs while the overlay is closed or
16
+ * pinned. Returning `true` from the handler tells the platform the press was
17
+ * consumed, which is what stops the navigation.
18
+ *
19
+ * ```tsx
20
+ * useBackHandler(open && dismissible, () => setOpen(false));
21
+ * ```
22
+ */
23
+ export function useBackHandler(enabled, onBack) {
24
+ // Held in a ref so a caller passing an inline `() => setOpen(false)` does not
25
+ // resubscribe the listener on every render — only a change in `enabled` does.
26
+ const onBackRef = useRef(onBack);
27
+ onBackRef.current = onBack;
28
+ useEffect(() => {
29
+ if (Platform.OS !== 'android' || !enabled) return;
30
+ const subscription = BackHandler.addEventListener('hardwareBackPress', () => {
31
+ onBackRef.current();
32
+ return true;
33
+ });
34
+ return () => subscription.remove();
35
+ }, [enabled]);
36
+ }
37
+ //# sourceMappingURL=use-back-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","BackHandler","Platform","useBackHandler","enabled","onBack","onBackRef","current","OS","subscription","addEventListener","remove"],"sourceRoot":"../../../src","sources":["hooks/use-back-handler.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,WAAW,EAAEC,QAAQ,QAAQ,cAAc;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACC,OAAgB,EAAEC,MAAkB,EAAQ;EACzE;EACA;EACA,MAAMC,SAAS,GAAGN,MAAM,CAACK,MAAM,CAAC;EAChCC,SAAS,CAACC,OAAO,GAAGF,MAAM;EAE1BN,SAAS,CAAC,MAAM;IACd,IAAIG,QAAQ,CAACM,EAAE,KAAK,SAAS,IAAI,CAACJ,OAAO,EAAE;IAE3C,MAAMK,YAAY,GAAGR,WAAW,CAACS,gBAAgB,CAAC,mBAAmB,EAAE,MAAM;MAC3EJ,SAAS,CAACC,OAAO,CAAC,CAAC;MACnB,OAAO,IAAI;IACb,CAAC,CAAC;IAEF,OAAO,MAAME,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACP,OAAO,CAAC,CAAC;AACf","ignoreList":[]}