@oxyhq/bloom 1.0.6 → 1.1.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 (83) hide show
  1. package/docs/level-picker.mdx +105 -0
  2. package/docs/slider.mdx +3 -1
  3. package/lib/commonjs/floating/index.js.map +1 -1
  4. package/lib/commonjs/index.js +8 -0
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/index.web.js +33 -25
  7. package/lib/commonjs/index.web.js.map +1 -1
  8. package/lib/commonjs/level-picker/LevelPicker.js +349 -0
  9. package/lib/commonjs/level-picker/LevelPicker.js.map +1 -0
  10. package/lib/commonjs/level-picker/LevelPicker.web.js +346 -0
  11. package/lib/commonjs/level-picker/LevelPicker.web.js.map +1 -0
  12. package/lib/commonjs/level-picker/constants.js +137 -0
  13. package/lib/commonjs/level-picker/constants.js.map +1 -0
  14. package/lib/commonjs/level-picker/index.js +13 -0
  15. package/lib/commonjs/level-picker/index.js.map +1 -0
  16. package/lib/commonjs/level-picker/index.web.js +13 -0
  17. package/lib/commonjs/level-picker/index.web.js.map +1 -0
  18. package/lib/commonjs/level-picker/types.js +6 -0
  19. package/lib/commonjs/level-picker/types.js.map +1 -0
  20. package/lib/module/floating/index.js +5 -0
  21. package/lib/module/floating/index.js.map +1 -1
  22. package/lib/module/index.js +1 -0
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/module/index.web.js +1 -0
  25. package/lib/module/index.web.js.map +1 -1
  26. package/lib/module/level-picker/LevelPicker.js +343 -0
  27. package/lib/module/level-picker/LevelPicker.js.map +1 -0
  28. package/lib/module/level-picker/LevelPicker.web.js +340 -0
  29. package/lib/module/level-picker/LevelPicker.web.js.map +1 -0
  30. package/lib/module/level-picker/constants.js +131 -0
  31. package/lib/module/level-picker/constants.js.map +1 -0
  32. package/lib/module/level-picker/index.js +4 -0
  33. package/lib/module/level-picker/index.js.map +1 -0
  34. package/lib/module/level-picker/index.web.js +4 -0
  35. package/lib/module/level-picker/index.web.js.map +1 -0
  36. package/lib/module/level-picker/types.js +4 -0
  37. package/lib/module/level-picker/types.js.map +1 -0
  38. package/lib/typescript/commonjs/floating/index.d.ts +5 -0
  39. package/lib/typescript/commonjs/floating/index.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/index.d.ts +2 -0
  41. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/index.web.d.ts +2 -0
  43. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/level-picker/LevelPicker.d.ts +6 -0
  45. package/lib/typescript/commonjs/level-picker/LevelPicker.d.ts.map +1 -0
  46. package/lib/typescript/commonjs/level-picker/LevelPicker.web.d.ts +6 -0
  47. package/lib/typescript/commonjs/level-picker/LevelPicker.web.d.ts.map +1 -0
  48. package/lib/typescript/commonjs/level-picker/constants.d.ts +93 -0
  49. package/lib/typescript/commonjs/level-picker/constants.d.ts.map +1 -0
  50. package/lib/typescript/commonjs/level-picker/index.d.ts +3 -0
  51. package/lib/typescript/commonjs/level-picker/index.d.ts.map +1 -0
  52. package/lib/typescript/commonjs/level-picker/index.web.d.ts +3 -0
  53. package/lib/typescript/commonjs/level-picker/index.web.d.ts.map +1 -0
  54. package/lib/typescript/commonjs/level-picker/types.d.ts +63 -0
  55. package/lib/typescript/commonjs/level-picker/types.d.ts.map +1 -0
  56. package/lib/typescript/module/floating/index.d.ts +5 -0
  57. package/lib/typescript/module/floating/index.d.ts.map +1 -1
  58. package/lib/typescript/module/index.d.ts +2 -0
  59. package/lib/typescript/module/index.d.ts.map +1 -1
  60. package/lib/typescript/module/index.web.d.ts +2 -0
  61. package/lib/typescript/module/index.web.d.ts.map +1 -1
  62. package/lib/typescript/module/level-picker/LevelPicker.d.ts +6 -0
  63. package/lib/typescript/module/level-picker/LevelPicker.d.ts.map +1 -0
  64. package/lib/typescript/module/level-picker/LevelPicker.web.d.ts +6 -0
  65. package/lib/typescript/module/level-picker/LevelPicker.web.d.ts.map +1 -0
  66. package/lib/typescript/module/level-picker/constants.d.ts +93 -0
  67. package/lib/typescript/module/level-picker/constants.d.ts.map +1 -0
  68. package/lib/typescript/module/level-picker/index.d.ts +3 -0
  69. package/lib/typescript/module/level-picker/index.d.ts.map +1 -0
  70. package/lib/typescript/module/level-picker/index.web.d.ts +3 -0
  71. package/lib/typescript/module/level-picker/index.web.d.ts.map +1 -0
  72. package/lib/typescript/module/level-picker/types.d.ts +63 -0
  73. package/lib/typescript/module/level-picker/types.d.ts.map +1 -0
  74. package/package.json +20 -1
  75. package/src/floating/index.ts +5 -0
  76. package/src/index.ts +2 -0
  77. package/src/index.web.ts +2 -0
  78. package/src/level-picker/LevelPicker.tsx +365 -0
  79. package/src/level-picker/LevelPicker.web.tsx +374 -0
  80. package/src/level-picker/constants.ts +131 -0
  81. package/src/level-picker/index.ts +2 -0
  82. package/src/level-picker/index.web.ts +2 -0
  83. package/src/level-picker/types.ts +63 -0
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LevelPicker = LevelPicker;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _constants = require("../floating/constants.js");
10
+ var _shared = require("../floating/shared.js");
11
+ var _useControllableState = require("../hooks/use-controllable-state.js");
12
+ var _Chevron = require("../icons/Chevron.js");
13
+ var _styledPrimitives = require("../styles/styled-primitives.js");
14
+ var _tokens = require("../styles/tokens.js");
15
+ var _useTheme = require("../theme/use-theme.js");
16
+ var _constants2 = require("./constants.js");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
19
+ /**
20
+ * `LevelPicker` — NATIVE. A stepped level slider over a disclosure that reveals
21
+ * a region of detail rows, laid out for the surface a native menu IS: a sheet.
22
+ *
23
+ * The web fork (`LevelPicker.web.tsx`) is the second half, and the split is not
24
+ * cosmetic. Three things differ, and each of them is the platform:
25
+ *
26
+ * 1. **The details region holds sub-menus, and a native sub-menu is an INLINE
27
+ * disclosure** (`floating/menu-sub-inline.tsx`) that grows the region when
28
+ * it opens. The web fork can therefore lay its regions out against a height
29
+ * it computes; this one cannot, so the picker is a plain column and every
30
+ * reveal is measured (`onLayout`) rather than assumed.
31
+ * 2. **There is no hover.** The end captions swap in while the rail is being
32
+ * DRAGGED here, which is the only "the user is working the slider" signal a
33
+ * touch screen has; the web fork adds pointer-over and keyboard focus.
34
+ * 3. **The gesture is a `PanResponder`**, not pointer capture, and the keyboard
35
+ * is an accessibility ACTION (`increment`/`decrement`) rather than arrow
36
+ * keys, because that is what an `adjustable` role exposes to VoiceOver and
37
+ * TalkBack.
38
+ *
39
+ * Everything both forks agree about — the stops, the inset, the hit mapping,
40
+ * the colour roles — is in `constants.ts` and is read from there by both, so
41
+ * the two cannot drift into disagreeing about the same control.
42
+ */
43
+
44
+ /**
45
+ * Built at MODULE scope, from `StyledView`, so one node carries the transform,
46
+ * the class and the style — `button/Button.tsx`'s rule, for its reasons: an
47
+ * element type constructed during render remounts its subtree every frame, and
48
+ * a second layout node would make LAYOUT classes inert on native.
49
+ */
50
+ const AnimatedStyledView = _reactNative.Animated.createAnimatedComponent(_styledPrimitives.StyledView);
51
+
52
+ /**
53
+ * Drive a 0→1 `Animated.Value` from a boolean.
54
+ *
55
+ * `useNativeDriver` is off because one of the two callers animates `maxHeight`,
56
+ * which the native driver cannot own; the other animates opacity and could,
57
+ * but a single shape for both is worth more than the frame it costs on a
58
+ * cross-fade. The spring is Bloom's `gentle`, the same one `Accordion`'s reveal
59
+ * takes — the web fork's `cubic-bezier` is a CSS spelling with no RN equivalent,
60
+ * so the two curves are deliberately each their platform's own.
61
+ */
62
+ function useRevealProgress(on) {
63
+ const progress = (0, _react.useRef)(new _reactNative.Animated.Value(on ? 1 : 0)).current;
64
+ (0, _react.useEffect)(() => {
65
+ _reactNative.Animated.spring(progress, {
66
+ toValue: on ? 1 : 0,
67
+ useNativeDriver: false,
68
+ ..._tokens.animation.spring.gentle
69
+ }).start();
70
+ }, [on, progress]);
71
+ return progress;
72
+ }
73
+
74
+ /**
75
+ * What an `adjustable` exposes to VoiceOver and TalkBack. Declared once at
76
+ * module scope: a fresh array each render is a new prop value every time.
77
+ */
78
+ const ADJUST_ACTIONS = [{
79
+ name: 'increment'
80
+ }, {
81
+ name: 'decrement'
82
+ }];
83
+ function LevelPicker({
84
+ levels,
85
+ value,
86
+ onValueChange,
87
+ accessibilityLabel,
88
+ minLabel,
89
+ maxLabel,
90
+ detailsLabel = 'Details',
91
+ expanded,
92
+ defaultExpanded = false,
93
+ onExpandedChange,
94
+ children,
95
+ className,
96
+ style,
97
+ testID
98
+ }) {
99
+ const theme = (0, _useTheme.useTheme)();
100
+ const [isExpanded, setExpanded] = (0, _useControllableState.useControllableState)({
101
+ value: expanded,
102
+ defaultValue: defaultExpanded,
103
+ onChange: onExpandedChange
104
+ });
105
+ const [trackWidth, setTrackWidth] = (0, _react.useState)(0);
106
+ const [detailsHeight, setDetailsHeight] = (0, _react.useState)(0);
107
+ const [dragging, setDragging] = (0, _react.useState)(false);
108
+ const reveal = useRevealProgress(isExpanded);
109
+ const active = useRevealProgress(dragging);
110
+
111
+ // The latest props, read by a `PanResponder` that is created once. Read
112
+ // inside its CALLBACKS and never during render, so no memoized position ever
113
+ // holds a stale copy.
114
+ const stateRef = (0, _react.useRef)({
115
+ value,
116
+ trackWidth,
117
+ count: levels.length
118
+ });
119
+ stateRef.current = {
120
+ value,
121
+ trackWidth,
122
+ count: levels.length
123
+ };
124
+ const onValueChangeRef = (0, _react.useRef)(onValueChange);
125
+ onValueChangeRef.current = onValueChange;
126
+ // Where the gesture started, so a MOVE can be resolved as that point plus the
127
+ // gesture's own `dx`. `locationX` is only trustworthy on the grant.
128
+ const grantOffsetRef = (0, _react.useRef)(0);
129
+ const commitOffset = (0, _react.useCallback)(offsetX => {
130
+ const {
131
+ value: current,
132
+ trackWidth: width,
133
+ count
134
+ } = stateRef.current;
135
+ const next = (0, _constants2.levelFromOffset)(offsetX, width, count);
136
+ if (next !== current) onValueChangeRef.current(next);
137
+ }, []);
138
+ const step = (0, _react.useCallback)(delta => {
139
+ const {
140
+ value: current,
141
+ count
142
+ } = stateRef.current;
143
+ const next = Math.max(0, Math.min(count - 1, current + delta));
144
+ if (next !== current) onValueChangeRef.current(next);
145
+ }, []);
146
+ const panResponder = (0, _react.useMemo)(() => _reactNative.PanResponder.create({
147
+ onStartShouldSetPanResponder: () => true,
148
+ onMoveShouldSetPanResponder: () => true,
149
+ onPanResponderGrant: event => {
150
+ setDragging(true);
151
+ grantOffsetRef.current = event.nativeEvent.locationX;
152
+ commitOffset(grantOffsetRef.current);
153
+ },
154
+ onPanResponderMove: (_event, gesture) => {
155
+ commitOffset(grantOffsetRef.current + gesture.dx);
156
+ },
157
+ onPanResponderRelease: () => setDragging(false),
158
+ onPanResponderTerminate: () => setDragging(false)
159
+ }), [commitOffset]);
160
+ const onTrackLayout = (0, _react.useCallback)(event => {
161
+ const next = event.nativeEvent.layout.width;
162
+ setTrackWidth(prev => Math.abs(prev - next) > 0.5 ? next : prev);
163
+ }, []);
164
+ const onDetailsLayout = (0, _react.useCallback)(event => {
165
+ const next = event.nativeEvent.layout.height;
166
+ // Sub-pixel churn would re-render on every frame of the spring.
167
+ setDetailsHeight(prev => Math.abs(prev - next) > 0.5 ? next : prev);
168
+ }, []);
169
+ const onAccessibilityAction = (0, _react.useCallback)(event => {
170
+ if (event.nativeEvent.actionName === 'increment') step(1);
171
+ if (event.nativeEvent.actionName === 'decrement') step(-1);
172
+ }, [step]);
173
+
174
+ /** A stop's centre, in pixels from the rail's left edge. */
175
+ const offsetOf = index => {
176
+ const {
177
+ percent,
178
+ offset
179
+ } = (0, _constants2.levelStopPosition)(index, levels.length);
180
+ return percent / 100 * trackWidth + offset;
181
+ };
182
+ const hasCaptions = minLabel !== undefined || maxLabel !== undefined;
183
+ const childTestId = part => testID === undefined ? undefined : `${testID}-${part}`;
184
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styledPrimitives.StyledView, {
185
+ className: (0, _shared.cx)('w-full', className),
186
+ style: style,
187
+ testID: testID,
188
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedStyledView, {
189
+ "aria-hidden": isExpanded,
190
+ pointerEvents: isExpanded ? 'none' : 'auto',
191
+ style: {
192
+ overflow: 'hidden',
193
+ opacity: reveal.interpolate({
194
+ inputRange: [0, 1],
195
+ outputRange: [1, 0]
196
+ }),
197
+ maxHeight: reveal.interpolate({
198
+ inputRange: [0, 1],
199
+ outputRange: [_constants2.LEVEL_SLIDER_ROW_HEIGHT, 0]
200
+ })
201
+ },
202
+ testID: childTestId('slider'),
203
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_styledPrimitives.StyledView, {
204
+ style: {
205
+ height: _constants2.LEVEL_SLIDER_ROW_HEIGHT,
206
+ justifyContent: 'center',
207
+ paddingHorizontal: _constants2.LEVEL_ROW_INSET
208
+ },
209
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_styledPrimitives.StyledView, {
210
+ accessibilityRole: "adjustable",
211
+ accessibilityLabel: accessibilityLabel,
212
+ accessibilityActions: ADJUST_ACTIONS,
213
+ onAccessibilityAction: onAccessibilityAction
214
+ // The FLAT `aria-value*` props: React Native folds them back into
215
+ // `accessibilityValue`, and they are the only spelling
216
+ // react-native-web reads. `slider/Slider.tsx` carries the same note.
217
+ ,
218
+ "aria-valuemin": 0,
219
+ "aria-valuemax": levels.length - 1,
220
+ "aria-valuenow": value,
221
+ "aria-valuetext": levels[value],
222
+ onLayout: onTrackLayout,
223
+ className: _constants2.LEVEL_TRACK_CLASS,
224
+ style: {
225
+ height: _constants2.LEVEL_TRACK_HEIGHT
226
+ },
227
+ testID: childTestId('track'),
228
+ ...panResponder.panHandlers,
229
+ children: trackWidth > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
230
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_styledPrimitives.StyledView, {
231
+ className: _constants2.LEVEL_FILL_CLASS,
232
+ style: {
233
+ top: 0,
234
+ bottom: 0,
235
+ width: offsetOf(value)
236
+ }
237
+ }), levels.map((label, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_styledPrimitives.StyledView, {
238
+ className: index <= value ? _constants2.LEVEL_STOP_REACHED_CLASS : _constants2.LEVEL_STOP_CLASS,
239
+ style: {
240
+ width: _constants2.LEVEL_STOP_SIZE,
241
+ height: _constants2.LEVEL_STOP_SIZE,
242
+ top: (_constants2.LEVEL_TRACK_HEIGHT - _constants2.LEVEL_STOP_SIZE) / 2,
243
+ left: offsetOf(index) - _constants2.LEVEL_STOP_SIZE / 2
244
+ }
245
+ }, label)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_styledPrimitives.StyledView, {
246
+ className: _constants2.LEVEL_THUMB_CLASS,
247
+ style: {
248
+ width: _constants2.LEVEL_THUMB_SIZE,
249
+ height: _constants2.LEVEL_THUMB_SIZE,
250
+ top: (_constants2.LEVEL_TRACK_HEIGHT - _constants2.LEVEL_THUMB_SIZE) / 2,
251
+ left: offsetOf(value) - _constants2.LEVEL_THUMB_SIZE / 2
252
+ },
253
+ testID: childTestId('thumb')
254
+ })]
255
+ }) : null
256
+ })
257
+ })
258
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styledPrimitives.StyledView, {
259
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedStyledView
260
+ // Only a drag takes the row out of the way — there is no hover here,
261
+ // and the row must stay pressable the moment the finger lifts.
262
+ , {
263
+ pointerEvents: dragging ? 'none' : 'auto',
264
+ style: {
265
+ opacity: active.interpolate({
266
+ inputRange: [0, 1],
267
+ outputRange: [1, 0]
268
+ })
269
+ },
270
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_shared.MenuRowShell, {
271
+ role: "menuitem",
272
+ expanded: isExpanded,
273
+ disabled: false,
274
+ title: detailsLabel,
275
+ trailing: /*#__PURE__*/(0, _jsxRuntime.jsx)(_shared.MenuRowChevron, {
276
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedStyledView, {
277
+ style: {
278
+ transform: [{
279
+ rotate: reveal.interpolate({
280
+ inputRange: [0, 1],
281
+ outputRange: ['0deg', '90deg']
282
+ })
283
+ }]
284
+ },
285
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Chevron.ChevronRight_Stroke2_Corner0_Rounded, {
286
+ width: _constants.ROW_ICON_SIZE,
287
+ height: _constants.ROW_ICON_SIZE,
288
+ fill: theme.colors.textSecondary
289
+ })
290
+ })
291
+ }),
292
+ onPress: () => setExpanded(!isExpanded),
293
+ className: _shared.SUB_TRIGGER_CLASS,
294
+ testID: childTestId('summary')
295
+ })
296
+ }), hasCaptions ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(AnimatedStyledView, {
297
+ "aria-hidden": true,
298
+ pointerEvents: "none",
299
+ style: {
300
+ position: 'absolute',
301
+ top: 0,
302
+ bottom: 0,
303
+ left: 0,
304
+ right: 0,
305
+ flexDirection: 'row',
306
+ alignItems: 'center',
307
+ justifyContent: 'space-between',
308
+ paddingHorizontal: _constants2.LEVEL_ROW_INSET,
309
+ opacity: active
310
+ },
311
+ testID: childTestId('captions'),
312
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_styledPrimitives.StyledText, {
313
+ className: _constants2.LEVEL_CAPTION_CLASS,
314
+ children: minLabel
315
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_styledPrimitives.StyledText, {
316
+ className: _constants2.LEVEL_CAPTION_CLASS,
317
+ children: maxLabel
318
+ })]
319
+ }) : null]
320
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedStyledView, {
321
+ "aria-hidden": !isExpanded,
322
+ pointerEvents: isExpanded ? 'auto' : 'none',
323
+ style: {
324
+ overflow: 'hidden',
325
+ opacity: reveal,
326
+ // Before the first measurement an OPEN region must not be clipped to
327
+ // zero — `Accordion`'s rule, for its reason: the unmeasured frame
328
+ // takes the answer its state already implies.
329
+ maxHeight: detailsHeight === 0 && isExpanded ? undefined : reveal.interpolate({
330
+ inputRange: [0, 1],
331
+ outputRange: [0, detailsHeight]
332
+ })
333
+ },
334
+ testID: childTestId('details'),
335
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styledPrimitives.StyledView, {
336
+ onLayout: onDetailsLayout,
337
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_styledPrimitives.StyledView, {
338
+ className: _constants2.LEVEL_SEPARATOR_CLASS,
339
+ style: {
340
+ marginHorizontal: _constants2.LEVEL_ROW_INSET,
341
+ marginBottom: 4
342
+ }
343
+ }), children]
344
+ })
345
+ })]
346
+ });
347
+ }
348
+ LevelPicker.displayName = 'LevelPicker';
349
+ //# sourceMappingURL=LevelPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_constants","_shared","_useControllableState","_Chevron","_styledPrimitives","_tokens","_useTheme","_constants2","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AnimatedStyledView","Animated","createAnimatedComponent","StyledView","useRevealProgress","on","progress","useRef","Value","current","useEffect","spring","toValue","useNativeDriver","animation","gentle","start","ADJUST_ACTIONS","name","LevelPicker","levels","value","onValueChange","accessibilityLabel","minLabel","maxLabel","detailsLabel","expanded","defaultExpanded","onExpandedChange","children","className","style","testID","theme","useTheme","isExpanded","setExpanded","useControllableState","defaultValue","onChange","trackWidth","setTrackWidth","useState","detailsHeight","setDetailsHeight","dragging","setDragging","reveal","active","stateRef","count","length","onValueChangeRef","grantOffsetRef","commitOffset","useCallback","offsetX","width","next","levelFromOffset","step","delta","Math","max","min","panResponder","useMemo","PanResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","event","nativeEvent","locationX","onPanResponderMove","_event","gesture","dx","onPanResponderRelease","onPanResponderTerminate","onTrackLayout","layout","prev","abs","onDetailsLayout","height","onAccessibilityAction","actionName","offsetOf","index","percent","offset","levelStopPosition","hasCaptions","undefined","childTestId","part","jsxs","cx","jsx","pointerEvents","overflow","opacity","interpolate","inputRange","outputRange","maxHeight","LEVEL_SLIDER_ROW_HEIGHT","justifyContent","paddingHorizontal","LEVEL_ROW_INSET","accessibilityRole","accessibilityActions","onLayout","LEVEL_TRACK_CLASS","LEVEL_TRACK_HEIGHT","panHandlers","Fragment","LEVEL_FILL_CLASS","top","bottom","map","label","LEVEL_STOP_REACHED_CLASS","LEVEL_STOP_CLASS","LEVEL_STOP_SIZE","left","LEVEL_THUMB_CLASS","LEVEL_THUMB_SIZE","MenuRowShell","role","disabled","title","trailing","MenuRowChevron","transform","rotate","ChevronRight_Stroke2_Corner0_Rounded","ROW_ICON_SIZE","fill","colors","textSecondary","onPress","SUB_TRIGGER_CLASS","position","right","flexDirection","alignItems","StyledText","LEVEL_CAPTION_CLASS","LEVEL_SEPARATOR_CLASS","marginHorizontal","marginBottom","displayName"],"sourceRoot":"../../../src","sources":["level-picker/LevelPicker.tsx"],"mappings":"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","ignoreList":[]}