panelui-native 0.7.0 → 0.12.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 (161) hide show
  1. package/README.md +5 -3
  2. package/lib/module/components/attachment/index.js +219 -0
  3. package/lib/module/components/attachment/index.js.map +1 -0
  4. package/lib/module/components/bottom-sheet/index.js +53 -3
  5. package/lib/module/components/bottom-sheet/index.js.map +1 -1
  6. package/lib/module/components/button/index.js +19 -1
  7. package/lib/module/components/button/index.js.map +1 -1
  8. package/lib/module/components/dialog/index.js +6 -2
  9. package/lib/module/components/dialog/index.js.map +1 -1
  10. package/lib/module/components/empty-state/index.js +94 -17
  11. package/lib/module/components/empty-state/index.js.map +1 -1
  12. package/lib/module/components/frame/index.js +128 -15
  13. package/lib/module/components/frame/index.js.map +1 -1
  14. package/lib/module/components/input/index.js +107 -15
  15. package/lib/module/components/input/index.js.map +1 -1
  16. package/lib/module/components/line-chart/index.js +1024 -0
  17. package/lib/module/components/line-chart/index.js.map +1 -0
  18. package/lib/module/components/marker/index.js +190 -0
  19. package/lib/module/components/marker/index.js.map +1 -0
  20. package/lib/module/components/message/index.js +24 -8
  21. package/lib/module/components/message/index.js.map +1 -1
  22. package/lib/module/components/message-scroller/index.js +451 -0
  23. package/lib/module/components/message-scroller/index.js.map +1 -0
  24. package/lib/module/components/popover/index.js +511 -0
  25. package/lib/module/components/popover/index.js.map +1 -0
  26. package/lib/module/components/progress/index.js +52 -2
  27. package/lib/module/components/progress/index.js.map +1 -1
  28. package/lib/module/components/radio-group/index.js +132 -17
  29. package/lib/module/components/radio-group/index.js.map +1 -1
  30. package/lib/module/components/section-rail/index.js +355 -0
  31. package/lib/module/components/section-rail/index.js.map +1 -0
  32. package/lib/module/components/select/index.js +245 -56
  33. package/lib/module/components/select/index.js.map +1 -1
  34. package/lib/module/components/separator/index.js +91 -0
  35. package/lib/module/components/separator/index.js.map +1 -0
  36. package/lib/module/components/slider/index.js +355 -0
  37. package/lib/module/components/slider/index.js.map +1 -0
  38. package/lib/module/components/surface/index.js +21 -2
  39. package/lib/module/components/surface/index.js.map +1 -1
  40. package/lib/module/components/switch/index.js +10 -1
  41. package/lib/module/components/switch/index.js.map +1 -1
  42. package/lib/module/components/tabs/index.js +186 -16
  43. package/lib/module/components/tabs/index.js.map +1 -1
  44. package/lib/module/components/toggle-button/index.js +297 -0
  45. package/lib/module/components/toggle-button/index.js.map +1 -0
  46. package/lib/module/hooks/index.js +1 -0
  47. package/lib/module/hooks/index.js.map +1 -1
  48. package/lib/module/hooks/use-keyboard-avoidance.js +57 -8
  49. package/lib/module/hooks/use-keyboard-avoidance.js.map +1 -1
  50. package/lib/module/hooks/use-scroll-sections.js +89 -0
  51. package/lib/module/hooks/use-scroll-sections.js.map +1 -0
  52. package/lib/module/icons/index.js +69 -0
  53. package/lib/module/icons/index.js.map +1 -1
  54. package/lib/module/index.js +11 -2
  55. package/lib/module/index.js.map +1 -1
  56. package/lib/module/native/index.js.map +1 -1
  57. package/lib/module/primitives/keyboard-avoider.js +2 -0
  58. package/lib/module/primitives/keyboard-avoider.js.map +1 -1
  59. package/lib/module/primitives/scrim.js +72 -0
  60. package/lib/module/primitives/scrim.js.map +1 -0
  61. package/lib/module/utils/haptics.js +57 -0
  62. package/lib/module/utils/haptics.js.map +1 -0
  63. package/lib/typescript/src/components/attachment/index.d.ts +93 -0
  64. package/lib/typescript/src/components/attachment/index.d.ts.map +1 -0
  65. package/lib/typescript/src/components/bottom-sheet/index.d.ts +6 -1
  66. package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
  67. package/lib/typescript/src/components/button/index.d.ts +9 -4
  68. package/lib/typescript/src/components/button/index.d.ts.map +1 -1
  69. package/lib/typescript/src/components/dialog/index.d.ts +7 -1
  70. package/lib/typescript/src/components/dialog/index.d.ts.map +1 -1
  71. package/lib/typescript/src/components/empty-state/index.d.ts +152 -2
  72. package/lib/typescript/src/components/empty-state/index.d.ts.map +1 -1
  73. package/lib/typescript/src/components/frame/index.d.ts +47 -7
  74. package/lib/typescript/src/components/frame/index.d.ts.map +1 -1
  75. package/lib/typescript/src/components/input/index.d.ts +113 -2
  76. package/lib/typescript/src/components/input/index.d.ts.map +1 -1
  77. package/lib/typescript/src/components/line-chart/index.d.ts +247 -0
  78. package/lib/typescript/src/components/line-chart/index.d.ts.map +1 -0
  79. package/lib/typescript/src/components/marker/index.d.ts +137 -0
  80. package/lib/typescript/src/components/marker/index.d.ts.map +1 -0
  81. package/lib/typescript/src/components/message/index.d.ts +8 -1
  82. package/lib/typescript/src/components/message/index.d.ts.map +1 -1
  83. package/lib/typescript/src/components/message-scroller/index.d.ts +150 -0
  84. package/lib/typescript/src/components/message-scroller/index.d.ts.map +1 -0
  85. package/lib/typescript/src/components/popover/index.d.ts +136 -0
  86. package/lib/typescript/src/components/popover/index.d.ts.map +1 -0
  87. package/lib/typescript/src/components/progress/index.d.ts +33 -0
  88. package/lib/typescript/src/components/progress/index.d.ts.map +1 -1
  89. package/lib/typescript/src/components/radio-group/index.d.ts +39 -0
  90. package/lib/typescript/src/components/radio-group/index.d.ts.map +1 -1
  91. package/lib/typescript/src/components/section-rail/index.d.ts +115 -0
  92. package/lib/typescript/src/components/section-rail/index.d.ts.map +1 -0
  93. package/lib/typescript/src/components/select/index.d.ts +46 -7
  94. package/lib/typescript/src/components/select/index.d.ts.map +1 -1
  95. package/lib/typescript/src/components/separator/index.d.ts +47 -0
  96. package/lib/typescript/src/components/separator/index.d.ts.map +1 -0
  97. package/lib/typescript/src/components/slider/index.d.ts +203 -0
  98. package/lib/typescript/src/components/slider/index.d.ts.map +1 -0
  99. package/lib/typescript/src/components/surface/index.d.ts +51 -2
  100. package/lib/typescript/src/components/surface/index.d.ts.map +1 -1
  101. package/lib/typescript/src/components/switch/index.d.ts.map +1 -1
  102. package/lib/typescript/src/components/tabs/index.d.ts +46 -4
  103. package/lib/typescript/src/components/tabs/index.d.ts.map +1 -1
  104. package/lib/typescript/src/components/toggle-button/index.d.ts +244 -0
  105. package/lib/typescript/src/components/toggle-button/index.d.ts.map +1 -0
  106. package/lib/typescript/src/hooks/index.d.ts +1 -0
  107. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  108. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts +10 -1
  109. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts.map +1 -1
  110. package/lib/typescript/src/hooks/use-scroll-sections.d.ts +31 -0
  111. package/lib/typescript/src/hooks/use-scroll-sections.d.ts.map +1 -0
  112. package/lib/typescript/src/icons/index.d.ts +6 -0
  113. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  114. package/lib/typescript/src/index.d.ts +13 -4
  115. package/lib/typescript/src/index.d.ts.map +1 -1
  116. package/lib/typescript/src/native/index.d.ts +16 -1
  117. package/lib/typescript/src/native/index.d.ts.map +1 -1
  118. package/lib/typescript/src/primitives/keyboard-avoider.d.ts +8 -1
  119. package/lib/typescript/src/primitives/keyboard-avoider.d.ts.map +1 -1
  120. package/lib/typescript/src/primitives/scrim.d.ts +21 -0
  121. package/lib/typescript/src/primitives/scrim.d.ts.map +1 -0
  122. package/lib/typescript/src/utils/haptics.d.ts +12 -0
  123. package/lib/typescript/src/utils/haptics.d.ts.map +1 -0
  124. package/package.json +9 -1
  125. package/src/components/attachment/index.tsx +279 -0
  126. package/src/components/bottom-sheet/index.tsx +58 -2
  127. package/src/components/button/index.tsx +26 -5
  128. package/src/components/dialog/index.tsx +10 -1
  129. package/src/components/empty-state/index.tsx +60 -14
  130. package/src/components/frame/index.tsx +175 -29
  131. package/src/components/input/index.tsx +122 -16
  132. package/src/components/line-chart/index.tsx +1224 -0
  133. package/src/components/marker/index.tsx +194 -0
  134. package/src/components/message/index.tsx +29 -5
  135. package/src/components/message-scroller/index.tsx +574 -0
  136. package/src/components/popover/index.tsx +624 -0
  137. package/src/components/progress/index.tsx +81 -1
  138. package/src/components/radio-group/index.tsx +156 -18
  139. package/src/components/section-rail/index.tsx +459 -0
  140. package/src/components/select/index.tsx +265 -52
  141. package/src/components/separator/index.tsx +97 -0
  142. package/src/components/slider/index.tsx +371 -0
  143. package/src/components/surface/index.tsx +29 -3
  144. package/src/components/switch/index.tsx +8 -1
  145. package/src/components/tabs/index.tsx +208 -28
  146. package/src/components/toggle-button/index.tsx +374 -0
  147. package/src/hooks/index.ts +5 -0
  148. package/src/hooks/use-keyboard-avoidance.ts +73 -7
  149. package/src/hooks/use-scroll-sections.ts +127 -0
  150. package/src/icons/index.tsx +48 -0
  151. package/src/index.ts +97 -6
  152. package/src/native/index.ts +13 -1
  153. package/src/primitives/keyboard-avoider.tsx +9 -1
  154. package/src/primitives/scrim.tsx +95 -0
  155. package/src/utils/haptics.ts +63 -0
  156. package/theme.css +64 -2
  157. package/lib/module/components/inline-select/index.js +0 -284
  158. package/lib/module/components/inline-select/index.js.map +0 -1
  159. package/lib/typescript/src/components/inline-select/index.d.ts +0 -48
  160. package/lib/typescript/src/components/inline-select/index.d.ts.map +0 -1
  161. package/src/components/inline-select/index.tsx +0 -332
@@ -1,20 +1,48 @@
1
1
  "use strict";
2
2
 
3
- import { Children, createContext, isValidElement, useContext, useMemo, useState } from 'react';
4
- import { Pressable, ScrollView, View } from 'react-native';
3
+ /**
4
+ * Select — a picker with one trigger and three ways of showing its options.
5
+ *
6
+ * Which one is right depends on what surrounds the trigger, not on what the
7
+ * options are, which is why it is a prop rather than three components:
8
+ *
9
+ * - `sheet` (default) takes the bottom of the screen. Best for a long list, or
10
+ * on a small screen where an anchored panel would cover the thing you are
11
+ * choosing for.
12
+ * - `inline` expands the list in normal layout flow. Everything below moves
13
+ * down. Right inside a settings list, where that reads as the row growing;
14
+ * wrong anywhere the shift is jarring.
15
+ * - `overlay` floats the list above the page through a portal, anchored to the
16
+ * trigger and flipped above it when there is no room below. Nothing else on
17
+ * the screen moves.
18
+ *
19
+ * ```tsx
20
+ * <Select value={region} onValueChange={setRegion} presentation="overlay">
21
+ * <Select.Item value="us" label="United States" />
22
+ * <Select.Item value="eu" label="Europe" />
23
+ * </Select>
24
+ * ```
25
+ */
26
+ import { Children, createContext, isValidElement, useCallback, useContext, useMemo, useRef, useState } from 'react';
27
+ import { Pressable, ScrollView, useWindowDimensions, View } from 'react-native';
28
+ import Animated, { FadeIn, FadeOut, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
5
29
  import { tv } from 'tailwind-variants';
6
30
  import { useCSSVariable } from 'uniwind';
7
31
  import { CheckIcon, ChevronDownIcon } from "../../icons/index.js";
8
32
  import { getNativeUI } from "../../native/index.js";
33
+ import { Portal } from "../../primitives/portal.js";
9
34
  import { Text } from "../../primitives/text.js";
10
35
  import { BottomSheet } from "../bottom-sheet/index.js";
11
36
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
37
  const selectVariants = tv({
13
38
  slots: {
14
- trigger: 'w-full flex-row items-center justify-between gap-3 rounded-2xl border border-input bg-background px-4 py-3.5',
39
+ // `rounded-lg`, the same radius Button and Input use — a select sitting in
40
+ // a form beside either of them should read as the same family of control.
41
+ trigger: 'w-full flex-row items-center justify-between gap-3 rounded-lg border border-input bg-background px-4 py-3.5',
15
42
  triggerLabel: 'flex-1 text-base font-medium text-foreground',
16
43
  placeholder: 'flex-1 text-base text-muted-foreground',
17
- item: 'flex-row items-center gap-2 rounded-xl px-3 py-3',
44
+ list: 'overflow-hidden rounded-xl border border-border bg-popover p-2 shadow-sm',
45
+ item: 'flex-row items-center gap-2 rounded-lg px-3 py-3',
18
46
  itemLabel: 'flex-1 text-base font-medium text-foreground',
19
47
  itemIndicator: 'h-5 w-5 items-center justify-center'
20
48
  },
@@ -26,13 +54,35 @@ const selectVariants = tv({
26
54
  },
27
55
  disabled: {
28
56
  true: {
29
- trigger: 'opacity-50'
57
+ trigger: 'opacity-[0.64]'
58
+ }
59
+ },
60
+ presentation: {
61
+ sheet: {},
62
+ inline: {
63
+ list: 'mt-2'
64
+ },
65
+ overlay: {
66
+ list: 'shadow-lg'
30
67
  }
31
68
  }
69
+ },
70
+ defaultVariants: {
71
+ presentation: 'sheet'
32
72
  }
33
73
  });
74
+ /**
75
+ * Height given to the native host per appearance — a menu is a compact button,
76
+ * a wheel is a full rotor. The host is told its size rather than asked to
77
+ * measure the platform's content, which arrives a frame late and leaves the
78
+ * control collapsed until something forces a second pass.
79
+ */
80
+ const NATIVE_HEIGHT = {
81
+ menu: 44,
82
+ wheel: 216
83
+ };
34
84
  const SelectContext = /*#__PURE__*/createContext(null);
35
- /** Declarative option. Rendered inside the picker sheet. */
85
+ /** Declarative option. Rendered inside whichever surface is presenting. */
36
86
  function SelectItem({
37
87
  value,
38
88
  label
@@ -69,18 +119,32 @@ function SelectItem({
69
119
  })]
70
120
  });
71
121
  }
122
+
123
+ /** Trigger frame in window coordinates, measured when the list opens. */
124
+
72
125
  function SelectRoot({
73
126
  className,
74
127
  value,
75
128
  onValueChange,
76
129
  placeholder = 'Select an option',
77
- title,
78
130
  disabled,
131
+ presentation = 'sheet',
132
+ title,
133
+ contentWidth = 'trigger',
134
+ offset = 8,
135
+ onOpenChange,
79
136
  native,
80
137
  nativeAppearance = 'menu',
81
138
  children
82
139
  }) {
83
140
  const [open, setOpen] = useState(false);
141
+ const [anchor, setAnchor] = useState(null);
142
+ const [listHeight, setListHeight] = useState(0);
143
+ const triggerRef = useRef(null);
144
+ const chevron = useSharedValue(0);
145
+ const {
146
+ height: screenHeight
147
+ } = useWindowDimensions();
84
148
  const nativeUI = native ? getNativeUI() : null;
85
149
  const options = useMemo(() => {
86
150
  const collected = [];
@@ -95,21 +159,59 @@ function SelectRoot({
95
159
  return collected;
96
160
  }, [children]);
97
161
  const selectedLabel = useMemo(() => options.find(option => option.value === value)?.label, [options, value]);
162
+ const close = useCallback(() => {
163
+ chevron.value = withTiming(0, {
164
+ duration: 160
165
+ });
166
+ setOpen(false);
167
+ onOpenChange?.(false);
168
+ }, [chevron, onOpenChange]);
169
+ const toggle = useCallback(() => {
170
+ if (open) {
171
+ close();
172
+ return;
173
+ }
174
+ const show = () => {
175
+ chevron.value = withTiming(1, {
176
+ duration: 160
177
+ });
178
+ setOpen(true);
179
+ onOpenChange?.(true);
180
+ };
181
+ if (presentation !== 'overlay') {
182
+ show();
183
+ return;
184
+ }
185
+
186
+ // The floating list is positioned in window coordinates, so it has to know
187
+ // where the trigger actually landed — not where layout said it would.
188
+ triggerRef.current?.measureInWindow((x, y, width, height) => {
189
+ setAnchor({
190
+ x,
191
+ y,
192
+ width,
193
+ height
194
+ });
195
+ show();
196
+ });
197
+ }, [chevron, close, onOpenChange, open, presentation]);
98
198
  const context = useMemo(() => ({
99
199
  value,
100
200
  onSelect: next => {
101
201
  onValueChange(next);
102
- setOpen(false);
202
+ close();
103
203
  }
104
- }), [value, onValueChange]);
105
- const {
106
- trigger,
107
- triggerLabel,
108
- placeholder: placeholderSlot
109
- } = selectVariants({
110
- disabled: !!disabled
204
+ }), [value, onValueChange, close]);
205
+ const slots = selectVariants({
206
+ disabled: !!disabled,
207
+ presentation
111
208
  });
112
209
  const chevronColor = useCSSVariable('--color-muted-foreground');
210
+ const chevronStyle = useAnimatedStyle(() => ({
211
+ transform: [{
212
+ rotate: `${chevron.value * 180}deg`
213
+ }]
214
+ }));
113
215
  if (nativeUI) {
114
216
  const {
115
217
  Host,
@@ -118,7 +220,9 @@ function SelectRoot({
118
220
  // The native picker has no empty state, so an unset value shows the first
119
221
  // option rather than the placeholder.
120
222
  return /*#__PURE__*/_jsx(Host, {
121
- matchContents: true,
223
+ style: {
224
+ height: NATIVE_HEIGHT[nativeAppearance]
225
+ },
122
226
  children: /*#__PURE__*/_jsx(Picker, {
123
227
  selectedValue: value ?? options[0]?.value ?? '',
124
228
  onValueChange: next => onValueChange(next),
@@ -131,50 +235,135 @@ function SelectRoot({
131
235
  })
132
236
  });
133
237
  }
134
- return /*#__PURE__*/_jsxs(SelectContext.Provider, {
135
- value: context,
136
- children: [/*#__PURE__*/_jsxs(Pressable, {
137
- accessibilityRole: "button",
138
- accessibilityState: {
139
- disabled: !!disabled,
140
- expanded: open
141
- },
142
- disabled: disabled,
143
- onPress: () => setOpen(true),
144
- className: trigger({
145
- className
146
- }),
147
- children: [selectedLabel ? /*#__PURE__*/_jsx(Text, {
148
- className: triggerLabel(),
149
- children: selectedLabel
150
- }) : /*#__PURE__*/_jsx(Text, {
151
- className: placeholderSlot(),
152
- children: placeholder
153
- }), /*#__PURE__*/_jsx(ChevronDownIcon, {
238
+ const trigger = /*#__PURE__*/_jsxs(Pressable, {
239
+ ref: triggerRef,
240
+ accessibilityRole: "button",
241
+ accessibilityState: {
242
+ disabled: !!disabled,
243
+ expanded: open
244
+ },
245
+ disabled: disabled,
246
+ onPress: toggle,
247
+ className: slots.trigger(),
248
+ children: [selectedLabel ? /*#__PURE__*/_jsx(Text, {
249
+ className: slots.triggerLabel(),
250
+ children: selectedLabel
251
+ }) : /*#__PURE__*/_jsx(Text, {
252
+ className: slots.placeholder(),
253
+ children: placeholder
254
+ }), /*#__PURE__*/_jsx(Animated.View, {
255
+ style: chevronStyle,
256
+ children: /*#__PURE__*/_jsx(ChevronDownIcon, {
154
257
  color: typeof chevronColor === 'string' ? chevronColor : '#737373'
258
+ })
259
+ })]
260
+ });
261
+ if (presentation === 'sheet') {
262
+ return /*#__PURE__*/_jsxs(SelectContext.Provider, {
263
+ value: context,
264
+ children: [/*#__PURE__*/_jsx(View, {
265
+ className: className,
266
+ children: trigger
267
+ }), /*#__PURE__*/_jsx(BottomSheet, {
268
+ open: open,
269
+ onOpenChange: next => {
270
+ if (!next) close();
271
+ },
272
+ children: /*#__PURE__*/_jsx(BottomSheet.Content, {
273
+ children: /*#__PURE__*/_jsxs(SelectContext.Provider, {
274
+ value: context,
275
+ children: [title ? /*#__PURE__*/_jsx(Text, {
276
+ size: "lg",
277
+ weight: "semibold",
278
+ className: "mb-2 px-3",
279
+ children: title
280
+ }) : null, /*#__PURE__*/_jsx(ScrollView, {
281
+ bounces: false,
282
+ className: "max-h-96",
283
+ children: /*#__PURE__*/_jsx(View, {
284
+ className: "gap-1 pb-2",
285
+ children: children
286
+ })
287
+ })]
288
+ })
289
+ })
155
290
  })]
156
- }), /*#__PURE__*/_jsx(BottomSheet, {
157
- open: open,
158
- onOpenChange: setOpen,
159
- children: /*#__PURE__*/_jsx(BottomSheet.Content, {
160
- children: /*#__PURE__*/_jsxs(SelectContext.Provider, {
161
- value: context,
162
- children: [title ? /*#__PURE__*/_jsx(Text, {
163
- size: "lg",
164
- weight: "semibold",
165
- className: "mb-2 px-3",
166
- children: title
167
- }) : null, /*#__PURE__*/_jsx(ScrollView, {
291
+ });
292
+ }
293
+ if (presentation === 'inline') {
294
+ return /*#__PURE__*/_jsx(SelectContext.Provider, {
295
+ value: context,
296
+ children: /*#__PURE__*/_jsxs(View, {
297
+ className: className,
298
+ children: [trigger, open ? /*#__PURE__*/_jsx(Animated.View, {
299
+ entering: FadeIn.duration(140),
300
+ exiting: FadeOut.duration(120),
301
+ className: slots.list(),
302
+ children: children
303
+ }) : null]
304
+ })
305
+ });
306
+ }
307
+
308
+ // Flip above the trigger when the list would run off the bottom. listHeight
309
+ // is 0 on the first frame, so the list opens downwards and corrects itself
310
+ // once measured — which is invisible inside the 140ms fade.
311
+ const spaceBelow = anchor ? screenHeight - (anchor.y + anchor.height) - offset : 0;
312
+ const flip = !!anchor && listHeight > 0 && listHeight > spaceBelow;
313
+ const overlayPosition = anchor ? {
314
+ position: 'absolute',
315
+ left: anchor.x,
316
+ ...(flip ? {
317
+ bottom: screenHeight - anchor.y + offset
318
+ } : {
319
+ top: anchor.y + anchor.height + offset
320
+ }),
321
+ ...(contentWidth === 'trigger' ? {
322
+ width: anchor.width
323
+ } : typeof contentWidth === 'number' ? {
324
+ width: contentWidth
325
+ } : {
326
+ minWidth: anchor.width
327
+ }),
328
+ // Never collapse to nothing in a cramped viewport — the list scrolls.
329
+ maxHeight: Math.max((flip ? anchor.y : spaceBelow) - offset, 160)
330
+ } : null;
331
+ const onListLayout = event => {
332
+ setListHeight(event.nativeEvent.layout.height);
333
+ };
334
+ return /*#__PURE__*/_jsxs(SelectContext.Provider, {
335
+ value: context,
336
+ children: [/*#__PURE__*/_jsx(View, {
337
+ className: className,
338
+ children: trigger
339
+ }), open && overlayPosition ? /*#__PURE__*/_jsxs(Portal, {
340
+ children: [/*#__PURE__*/_jsx(Pressable, {
341
+ accessibilityRole: "button",
342
+ accessibilityLabel: "Close",
343
+ onPress: close,
344
+ style: {
345
+ position: 'absolute',
346
+ top: 0,
347
+ left: 0,
348
+ right: 0,
349
+ bottom: 0
350
+ }
351
+ }), /*#__PURE__*/_jsx(SelectContext.Provider, {
352
+ value: context,
353
+ children: /*#__PURE__*/_jsx(Animated.View, {
354
+ entering: FadeIn.duration(140),
355
+ exiting: FadeOut.duration(120),
356
+ onLayout: onListLayout,
357
+ style: overlayPosition,
358
+ className: slots.list(),
359
+ children: /*#__PURE__*/_jsx(ScrollView, {
168
360
  bounces: false,
169
- className: "max-h-96",
170
- children: /*#__PURE__*/_jsx(View, {
171
- className: "gap-1 pb-2",
172
- children: children
173
- })
174
- })]
361
+ showsVerticalScrollIndicator: false,
362
+ children: children
363
+ })
175
364
  })
176
- })
177
- })]
365
+ })]
366
+ }) : null]
178
367
  });
179
368
  }
180
369
  export const Select = Object.assign(SelectRoot, {
@@ -1 +1 @@
1
- {"version":3,"names":["Children","createContext","isValidElement","useContext","useMemo","useState","Pressable","ScrollView","View","tv","useCSSVariable","CheckIcon","ChevronDownIcon","getNativeUI","Text","BottomSheet","jsx","_jsx","jsxs","_jsxs","selectVariants","slots","trigger","triggerLabel","placeholder","item","itemLabel","itemIndicator","variants","selected","true","disabled","SelectContext","SelectItem","value","label","context","Error","checkColor","accessibilityRole","accessibilityState","onPress","onSelect","className","children","size","color","SelectRoot","onValueChange","title","native","nativeAppearance","open","setOpen","nativeUI","options","collected","forEach","child","push","props","selectedLabel","find","option","next","placeholderSlot","chevronColor","Host","Picker","matchContents","selectedValue","appearance","enabled","map","Item","Provider","expanded","onOpenChange","Content","weight","bounces","Select","Object","assign"],"sourceRoot":"../../../../src","sources":["components/select/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Children","createContext","isValidElement","useCallback","useContext","useMemo","useRef","useState","Pressable","ScrollView","useWindowDimensions","View","Animated","FadeIn","FadeOut","useAnimatedStyle","useSharedValue","withTiming","tv","useCSSVariable","CheckIcon","ChevronDownIcon","getNativeUI","Portal","Text","BottomSheet","jsx","_jsx","jsxs","_jsxs","selectVariants","slots","trigger","triggerLabel","placeholder","list","item","itemLabel","itemIndicator","variants","selected","true","disabled","presentation","sheet","inline","overlay","defaultVariants","NATIVE_HEIGHT","menu","wheel","SelectContext","SelectItem","value","label","context","Error","checkColor","accessibilityRole","accessibilityState","onPress","onSelect","className","children","size","color","SelectRoot","onValueChange","title","contentWidth","offset","onOpenChange","native","nativeAppearance","open","setOpen","anchor","setAnchor","listHeight","setListHeight","triggerRef","chevron","height","screenHeight","nativeUI","options","collected","forEach","child","push","props","selectedLabel","find","option","close","duration","toggle","show","current","measureInWindow","x","y","width","next","chevronColor","chevronStyle","transform","rotate","Host","Picker","style","selectedValue","appearance","enabled","map","Item","ref","expanded","Provider","Content","weight","bounces","entering","exiting","spaceBelow","flip","overlayPosition","position","left","bottom","top","minWidth","maxHeight","Math","max","onListLayout","event","nativeEvent","layout","accessibilityLabel","right","onLayout","showsVerticalScrollIndicator","Select","Object","assign"],"sourceRoot":"../../../../src","sources":["components/select/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,SACEA,QAAQ,EACRC,aAAa,EACbC,cAAc,EACdC,WAAW,EACXC,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAEH,OAAO;AACd,SACEC,SAAS,EACTC,UAAU,EACVC,mBAAmB,EACnBC,IAAI,QAEC,cAAc;AACrB,OAAOC,QAAQ,IACbC,MAAM,EACNC,OAAO,EACPC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,QACL,yBAAyB;AAChC,SAASC,EAAE,QAAQ,mBAAmB;AACtC,SAASC,cAAc,QAAQ,SAAS;AACxC,SAASC,SAAS,EAAEC,eAAe,QAAQ,sBAAa;AACxD,SAASC,WAAW,QAAQ,uBAAc;AAC1C,SAASC,MAAM,QAAQ,4BAAyB;AAChD,SAASC,IAAI,QAAQ,0BAAuB;AAC5C,SAASC,WAAW,QAAQ,0BAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE9C,MAAMC,cAAc,GAAGZ,EAAE,CAAC;EACxBa,KAAK,EAAE;IACL;IACA;IACAC,OAAO,EACL,6GAA6G;IAC/GC,YAAY,EAAE,8CAA8C;IAC5DC,WAAW,EAAE,wCAAwC;IACrDC,IAAI,EAAE,0EAA0E;IAChFC,IAAI,EAAE,kDAAkD;IACxDC,SAAS,EAAE,8CAA8C;IACzDC,aAAa,EAAE;EACjB,CAAC;EACDC,QAAQ,EAAE;IACRC,QAAQ,EAAE;MACRC,IAAI,EAAE;QAAEL,IAAI,EAAE;MAAY;IAC5B,CAAC;IACDM,QAAQ,EAAE;MACRD,IAAI,EAAE;QAAET,OAAO,EAAE;MAAiB;IACpC,CAAC;IACDW,YAAY,EAAE;MACZC,KAAK,EAAE,CAAC,CAAC;MACTC,MAAM,EAAE;QAAEV,IAAI,EAAE;MAAO,CAAC;MACxBW,OAAO,EAAE;QAAEX,IAAI,EAAE;MAAY;IAC/B;EACF,CAAC;EACDY,eAAe,EAAE;IACfJ,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AAIF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMK,aAAa,GAAG;EAAEC,IAAI,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAI,CAAU;AAOvD,MAAMC,aAAa,gBAAGlD,aAAa,CAA4B,IAAI,CAAC;AAOpE;AACA,SAASmD,UAAUA,CAAC;EAAEC,KAAK;EAAEC;AAAuB,CAAC,EAAE;EACrD,MAAMC,OAAO,GAAGnD,UAAU,CAAC+C,aAAa,CAAC;EACzC,IAAI,CAACI,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EAEA,MAAMhB,QAAQ,GAAGe,OAAO,CAACF,KAAK,KAAKA,KAAK;EACxC,MAAM;IAAEjB,IAAI;IAAEC,SAAS;IAAEC;EAAc,CAAC,GAAGR,cAAc,CAAC;IAAEU;EAAS,CAAC,CAAC;EACvE,MAAMiB,UAAU,GAAGtC,cAAc,CAAC,0BAA0B,CAAC;EAE7D,oBACEU,KAAA,CAACrB,SAAS;IACRkD,iBAAiB,EAAC,UAAU;IAC5BC,kBAAkB,EAAE;MAAEnB;IAAS,CAAE;IACjCoB,OAAO,EAAEA,CAAA,KAAML,OAAO,CAACM,QAAQ,CAACR,KAAK,CAAE;IACvCS,SAAS,EAAE1B,IAAI,CAAC,CAAE;IAAA2B,QAAA,gBAElBpC,IAAA,CAACH,IAAI;MAACsC,SAAS,EAAEzB,SAAS,CAAC,CAAE;MAAA0B,QAAA,EAAET;IAAK,CAAO,CAAC,eAC5C3B,IAAA,CAAChB,IAAI;MAACmD,SAAS,EAAExB,aAAa,CAAC,CAAE;MAAAyB,QAAA,EAC9BvB,QAAQ,gBACPb,IAAA,CAACP,SAAS;QACR4C,IAAI,EAAE,EAAG;QACTC,KAAK,EAAE,OAAOR,UAAU,KAAK,QAAQ,GAAGA,UAAU,GAAG;MAAU,CAChE,CAAC,GACA;IAAI,CACJ,CAAC;EAAA,CACE,CAAC;AAEhB;;AAEA;;AAiDA,SAASS,UAAUA,CAAC;EAClBJ,SAAS;EACTT,KAAK;EACLc,aAAa;EACbjC,WAAW,GAAG,kBAAkB;EAChCQ,QAAQ;EACRC,YAAY,GAAG,OAAO;EACtByB,KAAK;EACLC,YAAY,GAAG,SAAS;EACxBC,MAAM,GAAG,CAAC;EACVC,YAAY;EACZC,MAAM;EACNC,gBAAgB,GAAG,MAAM;EACzBV;AACW,CAAC,EAAE;EACd,MAAM,CAACW,IAAI,EAAEC,OAAO,CAAC,GAAGpE,QAAQ,CAAC,KAAK,CAAC;EACvC,MAAM,CAACqE,MAAM,EAAEC,SAAS,CAAC,GAAGtE,QAAQ,CAAgB,IAAI,CAAC;EACzD,MAAM,CAACuE,UAAU,EAAEC,aAAa,CAAC,GAAGxE,QAAQ,CAAC,CAAC,CAAC;EAC/C,MAAMyE,UAAU,GAAG1E,MAAM,CAAO,IAAI,CAAC;EACrC,MAAM2E,OAAO,GAAGjE,cAAc,CAAC,CAAC,CAAC;EACjC,MAAM;IAAEkE,MAAM,EAAEC;EAAa,CAAC,GAAGzE,mBAAmB,CAAC,CAAC;EACtD,MAAM0E,QAAQ,GAAGZ,MAAM,GAAGlD,WAAW,CAAC,CAAC,GAAG,IAAI;EAE9C,MAAM+D,OAAO,GAAGhF,OAAO,CAAC,MAAM;IAC5B,MAAMiF,SAA4B,GAAG,EAAE;IACvCtF,QAAQ,CAACuF,OAAO,CAACxB,QAAQ,EAAGyB,KAAK,IAAK;MACpC,iBAAItF,cAAc,CAAkBsF,KAAK,CAAC,EAAE;QAC1CF,SAAS,CAACG,IAAI,CAAC;UAAEpC,KAAK,EAAEmC,KAAK,CAACE,KAAK,CAACrC,KAAK;UAAEC,KAAK,EAAEkC,KAAK,CAACE,KAAK,CAACpC;QAAM,CAAC,CAAC;MACxE;IACF,CAAC,CAAC;IACF,OAAOgC,SAAS;EAClB,CAAC,EAAE,CAACvB,QAAQ,CAAC,CAAC;EAEd,MAAM4B,aAAa,GAAGtF,OAAO,CAC3B,MAAMgF,OAAO,CAACO,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACxC,KAAK,KAAKA,KAAK,CAAC,EAAEC,KAAK,EAC7D,CAAC+B,OAAO,EAAEhC,KAAK,CACjB,CAAC;EAED,MAAMyC,KAAK,GAAG3F,WAAW,CAAC,MAAM;IAC9B8E,OAAO,CAAC5B,KAAK,GAAGpC,UAAU,CAAC,CAAC,EAAE;MAAE8E,QAAQ,EAAE;IAAI,CAAC,CAAC;IAChDpB,OAAO,CAAC,KAAK,CAAC;IACdJ,YAAY,GAAG,KAAK,CAAC;EACvB,CAAC,EAAE,CAACU,OAAO,EAAEV,YAAY,CAAC,CAAC;EAE3B,MAAMyB,MAAM,GAAG7F,WAAW,CAAC,MAAM;IAC/B,IAAIuE,IAAI,EAAE;MACRoB,KAAK,CAAC,CAAC;MACP;IACF;IAEA,MAAMG,IAAI,GAAGA,CAAA,KAAM;MACjBhB,OAAO,CAAC5B,KAAK,GAAGpC,UAAU,CAAC,CAAC,EAAE;QAAE8E,QAAQ,EAAE;MAAI,CAAC,CAAC;MAChDpB,OAAO,CAAC,IAAI,CAAC;MACbJ,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAI5B,YAAY,KAAK,SAAS,EAAE;MAC9BsD,IAAI,CAAC,CAAC;MACN;IACF;;IAEA;IACA;IACAjB,UAAU,CAACkB,OAAO,EAAEC,eAAe,CAAC,CAACC,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEpB,MAAM,KAAK;MAC3DL,SAAS,CAAC;QAAEuB,CAAC;QAAEC,CAAC;QAAEC,KAAK;QAAEpB;MAAO,CAAC,CAAC;MAClCe,IAAI,CAAC,CAAC;IACR,CAAC,CAAC;EACJ,CAAC,EAAE,CAAChB,OAAO,EAAEa,KAAK,EAAEvB,YAAY,EAAEG,IAAI,EAAE/B,YAAY,CAAC,CAAC;EAEtD,MAAMY,OAAO,GAAGlD,OAAO,CACrB,OAAO;IACLgD,KAAK;IACLQ,QAAQ,EAAG0C,IAAI,IAAK;MAClBpC,aAAa,CAACoC,IAAI,CAAC;MACnBT,KAAK,CAAC,CAAC;IACT;EACF,CAAC,CAAC,EACF,CAACzC,KAAK,EAAEc,aAAa,EAAE2B,KAAK,CAC9B,CAAC;EAED,MAAM/D,KAAK,GAAGD,cAAc,CAAC;IAAEY,QAAQ,EAAE,CAAC,CAACA,QAAQ;IAAEC;EAAa,CAAC,CAAC;EACpE,MAAM6D,YAAY,GAAGrF,cAAc,CAAC,0BAA0B,CAAC;EAE/D,MAAMsF,YAAY,GAAG1F,gBAAgB,CAAC,OAAO;IAC3C2F,SAAS,EAAE,CAAC;MAAEC,MAAM,EAAE,GAAG1B,OAAO,CAAC5B,KAAK,GAAG,GAAG;IAAM,CAAC;EACrD,CAAC,CAAC,CAAC;EAEH,IAAI+B,QAAQ,EAAE;IACZ,MAAM;MAAEwB,IAAI;MAAEC;IAAO,CAAC,GAAGzB,QAAQ;IACjC;IACA;IACA,oBACEzD,IAAA,CAACiF,IAAI;MAACE,KAAK,EAAE;QAAE5B,MAAM,EAAElC,aAAa,CAACyB,gBAAgB;MAAE,CAAE;MAAAV,QAAA,eACvDpC,IAAA,CAACkF,MAAM;QACLE,aAAa,EAAE1D,KAAK,IAAIgC,OAAO,CAAC,CAAC,CAAC,EAAEhC,KAAK,IAAI,EAAG;QAChDc,aAAa,EAAGoC,IAAY,IAAKpC,aAAa,CAACoC,IAAI,CAAE;QACrDS,UAAU,EAAEvC,gBAAiB;QAC7BwC,OAAO,EAAE,CAACvE,QAAS;QAAAqB,QAAA,EAElBsB,OAAO,CAAC6B,GAAG,CAAErB,MAAM,iBAClBlE,IAAA,CAACkF,MAAM,CAACM,IAAI;UAAoB7D,KAAK,EAAEuC,MAAM,CAACvC,KAAM;UAACD,KAAK,EAAEwC,MAAM,CAACxC;QAAM,GAAvDwC,MAAM,CAACxC,KAAkD,CAC5E;MAAC,CACI;IAAC,CACL,CAAC;EAEX;EAEA,MAAMrB,OAAO,gBACXH,KAAA,CAACrB,SAAS;IACR4G,GAAG,EAAEpC,UAAW;IAChBtB,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAE;MAAEjB,QAAQ,EAAE,CAAC,CAACA,QAAQ;MAAE2E,QAAQ,EAAE3C;IAAK,CAAE;IAC7DhC,QAAQ,EAAEA,QAAS;IACnBkB,OAAO,EAAEoC,MAAO;IAChBlC,SAAS,EAAE/B,KAAK,CAACC,OAAO,CAAC,CAAE;IAAA+B,QAAA,GAE1B4B,aAAa,gBACZhE,IAAA,CAACH,IAAI;MAACsC,SAAS,EAAE/B,KAAK,CAACE,YAAY,CAAC,CAAE;MAAA8B,QAAA,EAAE4B;IAAa,CAAO,CAAC,gBAE7DhE,IAAA,CAACH,IAAI;MAACsC,SAAS,EAAE/B,KAAK,CAACG,WAAW,CAAC,CAAE;MAAA6B,QAAA,EAAE7B;IAAW,CAAO,CAC1D,eACDP,IAAA,CAACf,QAAQ,CAACD,IAAI;MAACmG,KAAK,EAAEL,YAAa;MAAA1C,QAAA,eACjCpC,IAAA,CAACN,eAAe;QACd4C,KAAK,EAAE,OAAOuC,YAAY,KAAK,QAAQ,GAAGA,YAAY,GAAG;MAAU,CACpE;IAAC,CACW,CAAC;EAAA,CACP,CACZ;EAED,IAAI7D,YAAY,KAAK,OAAO,EAAE;IAC5B,oBACEd,KAAA,CAACsB,aAAa,CAACmE,QAAQ;MAACjE,KAAK,EAAEE,OAAQ;MAAAQ,QAAA,gBACrCpC,IAAA,CAAChB,IAAI;QAACmD,SAAS,EAAEA,SAAU;QAAAC,QAAA,EAAE/B;MAAO,CAAO,CAAC,eAG5CL,IAAA,CAACF,WAAW;QACViD,IAAI,EAAEA,IAAK;QACXH,YAAY,EAAGgC,IAAI,IAAK;UACtB,IAAI,CAACA,IAAI,EAAET,KAAK,CAAC,CAAC;QACpB,CAAE;QAAA/B,QAAA,eAEFpC,IAAA,CAACF,WAAW,CAAC8F,OAAO;UAAAxD,QAAA,eAGlBlC,KAAA,CAACsB,aAAa,CAACmE,QAAQ;YAACjE,KAAK,EAAEE,OAAQ;YAAAQ,QAAA,GACpCK,KAAK,gBACJzC,IAAA,CAACH,IAAI;cAACwC,IAAI,EAAC,IAAI;cAACwD,MAAM,EAAC,UAAU;cAAC1D,SAAS,EAAC,WAAW;cAAAC,QAAA,EACpDK;YAAK,CACF,CAAC,GACL,IAAI,eACRzC,IAAA,CAAClB,UAAU;cAACgH,OAAO,EAAE,KAAM;cAAC3D,SAAS,EAAC,UAAU;cAAAC,QAAA,eAC9CpC,IAAA,CAAChB,IAAI;gBAACmD,SAAS,EAAC,YAAY;gBAAAC,QAAA,EAAEA;cAAQ,CAAO;YAAC,CACpC,CAAC;UAAA,CACS;QAAC,CACN;MAAC,CACX,CAAC;IAAA,CACQ,CAAC;EAE7B;EAEA,IAAIpB,YAAY,KAAK,QAAQ,EAAE;IAC7B,oBACEhB,IAAA,CAACwB,aAAa,CAACmE,QAAQ;MAACjE,KAAK,EAAEE,OAAQ;MAAAQ,QAAA,eACrClC,KAAA,CAAClB,IAAI;QAACmD,SAAS,EAAEA,SAAU;QAAAC,QAAA,GACxB/B,OAAO,EACP0C,IAAI,gBACH/C,IAAA,CAACf,QAAQ,CAACD,IAAI;UACZ+G,QAAQ,EAAE7G,MAAM,CAACkF,QAAQ,CAAC,GAAG,CAAE;UAC/B4B,OAAO,EAAE7G,OAAO,CAACiF,QAAQ,CAAC,GAAG,CAAE;UAC/BjC,SAAS,EAAE/B,KAAK,CAACI,IAAI,CAAC,CAAE;UAAA4B,QAAA,EAEvBA;QAAQ,CACI,CAAC,GACd,IAAI;MAAA,CACJ;IAAC,CACe,CAAC;EAE7B;;EAEA;EACA;EACA;EACA,MAAM6D,UAAU,GAAGhD,MAAM,GAAGO,YAAY,IAAIP,MAAM,CAACyB,CAAC,GAAGzB,MAAM,CAACM,MAAM,CAAC,GAAGZ,MAAM,GAAG,CAAC;EAClF,MAAMuD,IAAI,GAAG,CAAC,CAACjD,MAAM,IAAIE,UAAU,GAAG,CAAC,IAAIA,UAAU,GAAG8C,UAAU;EAElE,MAAME,eAAe,GAAGlD,MAAM,GAC1B;IACEmD,QAAQ,EAAE,UAAmB;IAC7BC,IAAI,EAAEpD,MAAM,CAACwB,CAAC;IACd,IAAIyB,IAAI,GACJ;MAAEI,MAAM,EAAE9C,YAAY,GAAGP,MAAM,CAACyB,CAAC,GAAG/B;IAAO,CAAC,GAC5C;MAAE4D,GAAG,EAAEtD,MAAM,CAACyB,CAAC,GAAGzB,MAAM,CAACM,MAAM,GAAGZ;IAAO,CAAC,CAAC;IAC/C,IAAID,YAAY,KAAK,SAAS,GAC1B;MAAEiC,KAAK,EAAE1B,MAAM,CAAC0B;IAAM,CAAC,GACvB,OAAOjC,YAAY,KAAK,QAAQ,GAC9B;MAAEiC,KAAK,EAAEjC;IAAa,CAAC,GACvB;MAAE8D,QAAQ,EAAEvD,MAAM,CAAC0B;IAAM,CAAC,CAAC;IACjC;IACA8B,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAACT,IAAI,GAAGjD,MAAM,CAACyB,CAAC,GAAGuB,UAAU,IAAItD,MAAM,EAAE,GAAG;EAClE,CAAC,GACD,IAAI;EAER,MAAMiE,YAAY,GAAIC,KAAwB,IAAK;IACjDzD,aAAa,CAACyD,KAAK,CAACC,WAAW,CAACC,MAAM,CAACxD,MAAM,CAAC;EAChD,CAAC;EAED,oBACErD,KAAA,CAACsB,aAAa,CAACmE,QAAQ;IAACjE,KAAK,EAAEE,OAAQ;IAAAQ,QAAA,gBACrCpC,IAAA,CAAChB,IAAI;MAACmD,SAAS,EAAEA,SAAU;MAAAC,QAAA,EAAE/B;IAAO,CAAO,CAAC,EAE3C0C,IAAI,IAAIoD,eAAe,gBACtBjG,KAAA,CAACN,MAAM;MAAAwC,QAAA,gBAELpC,IAAA,CAACnB,SAAS;QACRkD,iBAAiB,EAAC,QAAQ;QAC1BiF,kBAAkB,EAAC,OAAO;QAC1B/E,OAAO,EAAEkC,KAAM;QACfgB,KAAK,EAAE;UAAEiB,QAAQ,EAAE,UAAU;UAAEG,GAAG,EAAE,CAAC;UAAEF,IAAI,EAAE,CAAC;UAAEY,KAAK,EAAE,CAAC;UAAEX,MAAM,EAAE;QAAE;MAAE,CACvE,CAAC,eACFtG,IAAA,CAACwB,aAAa,CAACmE,QAAQ;QAACjE,KAAK,EAAEE,OAAQ;QAAAQ,QAAA,eACrCpC,IAAA,CAACf,QAAQ,CAACD,IAAI;UACZ+G,QAAQ,EAAE7G,MAAM,CAACkF,QAAQ,CAAC,GAAG,CAAE;UAC/B4B,OAAO,EAAE7G,OAAO,CAACiF,QAAQ,CAAC,GAAG,CAAE;UAC/B8C,QAAQ,EAAEN,YAAa;UACvBzB,KAAK,EAAEgB,eAAgB;UACvBhE,SAAS,EAAE/B,KAAK,CAACI,IAAI,CAAC,CAAE;UAAA4B,QAAA,eAExBpC,IAAA,CAAClB,UAAU;YAACgH,OAAO,EAAE,KAAM;YAACqB,4BAA4B,EAAE,KAAM;YAAA/E,QAAA,EAC7DA;UAAQ,CACC;QAAC,CACA;MAAC,CACM,CAAC;IAAA,CACnB,CAAC,GACP,IAAI;EAAA,CACc,CAAC;AAE7B;AAEA,OAAO,MAAMgF,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC/E,UAAU,EAAE;EAC9CiD,IAAI,EAAE/D;AACR,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Separator — a rule between content.
5
+ *
6
+ * React Native has no `<hr>` and no border shorthand that survives a flex row,
7
+ * so a separator here is a view with a size on one axis and a stretch on the
8
+ * other. That is why orientation is a prop rather than something the layout
9
+ * infers: the component has to know which axis carries the thickness.
10
+ *
11
+ * ```tsx
12
+ * <Separator />
13
+ * <Separator orientation="vertical" />
14
+ * ```
15
+ *
16
+ * A vertical separator takes its length from the parent, so the parent needs a
17
+ * height — inside a `flex-row` with `items-stretch`, or with an explicit `h-*`
18
+ * on either the row or the separator itself. Without one it measures zero and
19
+ * nothing draws.
20
+ */
21
+ import { forwardRef } from 'react';
22
+ import { View } from 'react-native';
23
+ import { tv } from 'tailwind-variants';
24
+ import { jsx as _jsx } from "react/jsx-runtime";
25
+ const separatorVariants = tv({
26
+ base: 'bg-border',
27
+ variants: {
28
+ orientation: {
29
+ horizontal: 'w-full',
30
+ vertical: 'h-full'
31
+ },
32
+ variant: {
33
+ thin: '',
34
+ thick: ''
35
+ }
36
+ },
37
+ compoundVariants: [
38
+ // Thickness is on whichever axis is *not* the length, so it cannot be
39
+ // expressed by the orientation and variant classes independently.
40
+ {
41
+ orientation: 'horizontal',
42
+ variant: 'thin',
43
+ class: 'h-px'
44
+ }, {
45
+ orientation: 'horizontal',
46
+ variant: 'thick',
47
+ class: 'h-1'
48
+ }, {
49
+ orientation: 'vertical',
50
+ variant: 'thin',
51
+ class: 'w-px'
52
+ }, {
53
+ orientation: 'vertical',
54
+ variant: 'thick',
55
+ class: 'w-1'
56
+ }],
57
+ defaultVariants: {
58
+ orientation: 'horizontal',
59
+ variant: 'thin'
60
+ }
61
+ });
62
+ export const Separator = /*#__PURE__*/forwardRef(({
63
+ className,
64
+ orientation = 'horizontal',
65
+ variant,
66
+ thickness,
67
+ decorative = true,
68
+ style,
69
+ ...props
70
+ }, ref) => /*#__PURE__*/_jsx(View, {
71
+ ref: ref
72
+ // `role` rather than `accessibilityRole` — React Native's older role list
73
+ // has no separator, the ARIA-aligned one does.
74
+ ,
75
+ role: decorative ? 'none' : 'separator',
76
+ accessible: !decorative,
77
+ "aria-orientation": decorative ? undefined : orientation,
78
+ className: separatorVariants({
79
+ orientation,
80
+ variant,
81
+ className
82
+ }),
83
+ style: thickness !== undefined ? [orientation === 'horizontal' ? {
84
+ height: thickness
85
+ } : {
86
+ width: thickness
87
+ }, style] : style,
88
+ ...props
89
+ }));
90
+ Separator.displayName = 'Separator';
91
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","View","tv","jsx","_jsx","separatorVariants","base","variants","orientation","horizontal","vertical","variant","thin","thick","compoundVariants","class","defaultVariants","Separator","className","thickness","decorative","style","props","ref","role","accessible","undefined","height","width","displayName"],"sourceRoot":"../../../../src","sources":["components/separator/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,IAAI,QAAwB,cAAc;AACnD,SAASC,EAAE,QAA2B,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1D,MAAMC,iBAAiB,GAAGH,EAAE,CAAC;EAC3BI,IAAI,EAAE,WAAW;EACjBC,QAAQ,EAAE;IACRC,WAAW,EAAE;MACXC,UAAU,EAAE,QAAQ;MACpBC,QAAQ,EAAE;IACZ,CAAC;IACDC,OAAO,EAAE;MACPC,IAAI,EAAE,EAAE;MACRC,KAAK,EAAE;IACT;EACF,CAAC;EACDC,gBAAgB,EAAE;EAChB;EACA;EACA;IAAEN,WAAW,EAAE,YAAY;IAAEG,OAAO,EAAE,MAAM;IAAEI,KAAK,EAAE;EAAO,CAAC,EAC7D;IAAEP,WAAW,EAAE,YAAY;IAAEG,OAAO,EAAE,OAAO;IAAEI,KAAK,EAAE;EAAM,CAAC,EAC7D;IAAEP,WAAW,EAAE,UAAU;IAAEG,OAAO,EAAE,MAAM;IAAEI,KAAK,EAAE;EAAO,CAAC,EAC3D;IAAEP,WAAW,EAAE,UAAU;IAAEG,OAAO,EAAE,OAAO;IAAEI,KAAK,EAAE;EAAM,CAAC,CAC5D;EACDC,eAAe,EAAE;IACfR,WAAW,EAAE,YAAY;IACzBG,OAAO,EAAE;EACX;AACF,CAAC,CAAC;AAmBF,OAAO,MAAMM,SAAS,gBAAGjB,UAAU,CACjC,CACE;EACEkB,SAAS;EACTV,WAAW,GAAG,YAAY;EAC1BG,OAAO;EACPQ,SAAS;EACTC,UAAU,GAAG,IAAI;EACjBC,KAAK;EACL,GAAGC;AACL,CAAC,EACDC,GAAG,kBAEHnB,IAAA,CAACH,IAAI;EACHsB,GAAG,EAAEA;EACL;EACA;EAAA;EACAC,IAAI,EAAEJ,UAAU,GAAG,MAAM,GAAG,WAAY;EACxCK,UAAU,EAAE,CAACL,UAAW;EACxB,oBAAkBA,UAAU,GAAGM,SAAS,GAAGlB,WAAY;EACvDU,SAAS,EAAEb,iBAAiB,CAAC;IAAEG,WAAW;IAAEG,OAAO;IAAEO;EAAU,CAAC,CAAE;EAClEG,KAAK,EACHF,SAAS,KAAKO,SAAS,GACnB,CAAClB,WAAW,KAAK,YAAY,GAAG;IAAEmB,MAAM,EAAER;EAAU,CAAC,GAAG;IAAES,KAAK,EAAET;EAAU,CAAC,EAAEE,KAAK,CAAC,GACpFA,KACL;EAAA,GACGC;AAAK,CACV,CAEL,CAAC;AAEDL,SAAS,CAACY,WAAW,GAAG,WAAW","ignoreList":[]}