@retray-dev/ui-kit 10.2.0 → 12.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 (153) hide show
  1. package/COMPONENTS.md +287 -37
  2. package/README.md +11 -2
  3. package/dist/Accordion.mjs +2 -2
  4. package/dist/AlertBanner.mjs +2 -2
  5. package/dist/AppHeader.mjs +3 -3
  6. package/dist/Avatar.mjs +2 -2
  7. package/dist/Badge.mjs +2 -2
  8. package/dist/Button.mjs +2 -2
  9. package/dist/Card.mjs +2 -2
  10. package/dist/CategoryStrip.mjs +2 -2
  11. package/dist/Checkbox.mjs +2 -2
  12. package/dist/Chip.mjs +2 -2
  13. package/dist/ConfirmDialog.d.mts +1 -6
  14. package/dist/ConfirmDialog.d.ts +1 -6
  15. package/dist/ConfirmDialog.js +29 -23
  16. package/dist/ConfirmDialog.mjs +3 -3
  17. package/dist/CurrencyDisplay.mjs +2 -2
  18. package/dist/CurrencyInput.d.mts +3 -8
  19. package/dist/CurrencyInput.d.ts +3 -8
  20. package/dist/CurrencyInput.js +3 -1
  21. package/dist/CurrencyInput.mjs +3 -3
  22. package/dist/DetailRow.mjs +2 -2
  23. package/dist/EmptyState.mjs +3 -3
  24. package/dist/ErrorBoundary.mjs +2 -2
  25. package/dist/Form.mjs +2 -2
  26. package/dist/IconButton.mjs +2 -2
  27. package/dist/IconPicker.js +675 -248
  28. package/dist/IconPicker.mjs +3 -2
  29. package/dist/ImageUpload.mjs +3 -3
  30. package/dist/ImageViewer.mjs +4 -4
  31. package/dist/Input.mjs +2 -2
  32. package/dist/LabelValue.mjs +2 -2
  33. package/dist/ListGroup.mjs +2 -2
  34. package/dist/ListItem.d.mts +7 -7
  35. package/dist/ListItem.d.ts +7 -7
  36. package/dist/ListItem.js +12 -7
  37. package/dist/ListItem.mjs +2 -2
  38. package/dist/MediaCard.mjs +2 -2
  39. package/dist/MenuGroup.mjs +2 -2
  40. package/dist/MenuItem.mjs +2 -2
  41. package/dist/MonthPicker.mjs +2 -2
  42. package/dist/NumberStepper.mjs +2 -2
  43. package/dist/PagerDots.mjs +2 -2
  44. package/dist/Pressable.d.mts +15 -7
  45. package/dist/Pressable.d.ts +15 -7
  46. package/dist/Pressable.js +7 -3
  47. package/dist/Pressable.mjs +1 -1
  48. package/dist/PricingCard.mjs +4 -4
  49. package/dist/Progress.mjs +2 -2
  50. package/dist/RadioGroup.mjs +2 -2
  51. package/dist/RetrayProvider.mjs +3 -3
  52. package/dist/Select.mjs +2 -2
  53. package/dist/SelectableGrid.mjs +2 -2
  54. package/dist/Separator.mjs +2 -2
  55. package/dist/Sheet.d.mts +4 -46
  56. package/dist/Sheet.d.ts +4 -46
  57. package/dist/Sheet.js +46 -114
  58. package/dist/Sheet.mjs +2 -3
  59. package/dist/SheetSelect.mjs +2 -2
  60. package/dist/Skeleton.mjs +2 -2
  61. package/dist/Slider.mjs +2 -2
  62. package/dist/Spinner.mjs +2 -2
  63. package/dist/Stats.d.mts +30 -0
  64. package/dist/Stats.d.ts +30 -0
  65. package/dist/Stats.js +429 -0
  66. package/dist/Stats.mjs +9 -0
  67. package/dist/Switch.mjs +2 -2
  68. package/dist/TabBar.mjs +2 -2
  69. package/dist/Tabs.mjs +2 -2
  70. package/dist/Text.d.mts +3 -1
  71. package/dist/Text.d.ts +3 -1
  72. package/dist/Text.js +3 -3
  73. package/dist/Text.mjs +2 -2
  74. package/dist/Textarea.mjs +2 -2
  75. package/dist/Toast.mjs +2 -2
  76. package/dist/Toggle.mjs +2 -2
  77. package/dist/{chunk-YJ7I257J.mjs → chunk-265G6A46.mjs} +1 -1
  78. package/dist/{chunk-ELXBDILQ.mjs → chunk-2A2LEFZG.mjs} +2 -2
  79. package/dist/{chunk-ID72TK46.mjs → chunk-2CBQKU7H.mjs} +1 -1
  80. package/dist/{chunk-OB4JUQ3O.mjs → chunk-2I2AYECM.mjs} +1 -1
  81. package/dist/{chunk-WJLKJMKR.mjs → chunk-357YO24D.mjs} +4 -4
  82. package/dist/{chunk-GQYFLP3D.mjs → chunk-3GEYJ7I5.mjs} +1 -1
  83. package/dist/{chunk-AV4EMIRH.mjs → chunk-3N2M3WZL.mjs} +1 -1
  84. package/dist/{chunk-VF2ATYN3.mjs → chunk-3UYAZ7I4.mjs} +1 -1
  85. package/dist/{chunk-JMOZEC77.mjs → chunk-4WFMPFZB.mjs} +1 -1
  86. package/dist/chunk-5OLNXP3S.mjs +144 -0
  87. package/dist/{chunk-6SECQ2ZF.mjs → chunk-7HSILTC4.mjs} +2 -2
  88. package/dist/{chunk-IRRY3CRZ.mjs → chunk-AKM4EPOT.mjs} +1 -1
  89. package/dist/{chunk-IX3NYLYQ.mjs → chunk-AQEVCEXV.mjs} +1 -1
  90. package/dist/{chunk-WBOOUHSS.mjs → chunk-BCWEHE34.mjs} +1 -1
  91. package/dist/{chunk-AJ7ZDNBT.mjs → chunk-BOVUP27T.mjs} +1 -1
  92. package/dist/{chunk-BRKYVJVV.mjs → chunk-BQZE3HAW.mjs} +1 -1
  93. package/dist/{chunk-Z6SFHN6T.mjs → chunk-D3Y2T42P.mjs} +1 -1
  94. package/dist/{chunk-T2KCAHOS.mjs → chunk-DF6DU42P.mjs} +1 -1
  95. package/dist/{chunk-TB6SD2FT.mjs → chunk-DI7CBDL6.mjs} +1 -1
  96. package/dist/{chunk-HTHGSXFG.mjs → chunk-DOGIPOF5.mjs} +1 -1
  97. package/dist/{chunk-MBMXYJJV.mjs → chunk-E7NEHHXV.mjs} +7 -3
  98. package/dist/{chunk-MX6HRKMI.mjs → chunk-EFLFRAHD.mjs} +1 -1
  99. package/dist/{chunk-SOYNZDVY.mjs → chunk-EMUWGDWC.mjs} +6 -1
  100. package/dist/{chunk-AJRVDP2H.mjs → chunk-F4V6XLP4.mjs} +3 -3
  101. package/dist/{chunk-DYT7BG5I.mjs → chunk-FA2KMTH5.mjs} +1 -1
  102. package/dist/{chunk-Y2NS74WS.mjs → chunk-FFTYLPSB.mjs} +46 -98
  103. package/dist/{chunk-VKID2D2I.mjs → chunk-FUVYSVGR.mjs} +13 -8
  104. package/dist/{chunk-7LWRKMF5.mjs → chunk-FVTVCJAH.mjs} +1 -1
  105. package/dist/{chunk-TZDGAP5N.mjs → chunk-GK4VRMNE.mjs} +2 -2
  106. package/dist/{chunk-6Q64UFIA.mjs → chunk-HJ46DTJE.mjs} +1 -1
  107. package/dist/{chunk-WF2XDFRK.mjs → chunk-HLMPMUK2.mjs} +1 -1
  108. package/dist/{chunk-GD6KXMG5.mjs → chunk-I4V5XZPS.mjs} +1 -1
  109. package/dist/{chunk-TBNZHU6C.mjs → chunk-ISY26JQJ.mjs} +2 -2
  110. package/dist/{chunk-X4G6APW6.mjs → chunk-J6Q2YJEV.mjs} +1 -1
  111. package/dist/{chunk-WYEUNUTP.mjs → chunk-JCZQOY4O.mjs} +31 -24
  112. package/dist/{chunk-U2XJFYED.mjs → chunk-JNVAIDLK.mjs} +1 -1
  113. package/dist/{chunk-SOA2Z4RB.mjs → chunk-JULSIZDM.mjs} +1 -1
  114. package/dist/chunk-KHYX4IOM.mjs +1114 -0
  115. package/dist/{chunk-RYZC432S.mjs → chunk-LRM4AVYY.mjs} +1 -1
  116. package/dist/{chunk-6L4G6PBT.mjs → chunk-MYZ2EDYU.mjs} +1 -1
  117. package/dist/{chunk-BUMAMSTZ.mjs → chunk-N4ZPVCJH.mjs} +1 -1
  118. package/dist/{chunk-Z4VHZ7B5.mjs → chunk-NXI4YDZ2.mjs} +1 -1
  119. package/dist/{chunk-ZZ2R6KZ3.mjs → chunk-OULVKTWL.mjs} +1 -1
  120. package/dist/{chunk-FCSSQK3L.mjs → chunk-P64WHW4A.mjs} +1 -1
  121. package/dist/{chunk-KOO4WITD.mjs → chunk-P73V2EKS.mjs} +1 -1
  122. package/dist/{chunk-SXLKNTA4.mjs → chunk-PGERH3P7.mjs} +1 -1
  123. package/dist/{chunk-2UYENBLV.mjs → chunk-QSFV2P7O.mjs} +1 -1
  124. package/dist/{chunk-JT7HKXRB.mjs → chunk-S3KJCPEJ.mjs} +1 -1
  125. package/dist/{chunk-BEMIQXXU.mjs → chunk-V6NFJXKO.mjs} +1 -1
  126. package/dist/{chunk-A3A6KNQN.mjs → chunk-WOEWGSTU.mjs} +1 -1
  127. package/dist/{chunk-NMU5FMQJ.mjs → chunk-X26S5EVZ.mjs} +4 -2
  128. package/dist/{chunk-YFZ3ELX5.mjs → chunk-XBAGGKLW.mjs} +2 -2
  129. package/dist/{chunk-S2R7UVOE.mjs → chunk-ZHMSAYLT.mjs} +1 -1
  130. package/dist/fonts.d.mts +1 -7
  131. package/dist/fonts.d.ts +1 -7
  132. package/dist/fonts.js +0 -2
  133. package/dist/fonts.mjs +1 -2
  134. package/dist/index.d.mts +4 -1
  135. package/dist/index.d.ts +4 -1
  136. package/dist/index.js +1184 -708
  137. package/dist/index.mjs +53 -52
  138. package/package.json +3 -3
  139. package/src/components/ConfirmDialog/ConfirmDialog.tsx +39 -30
  140. package/src/components/CurrencyInput/CurrencyInput.tsx +4 -7
  141. package/src/components/IconPicker/IconPicker.tsx +124 -112
  142. package/src/components/ListItem/ListItem.tsx +43 -28
  143. package/src/components/Pressable/Pressable.tsx +20 -8
  144. package/src/components/Sheet/Sheet.tsx +64 -172
  145. package/src/components/Stats/Stats.tsx +226 -0
  146. package/src/components/Stats/index.ts +2 -0
  147. package/src/components/Text/Text.tsx +4 -2
  148. package/src/fonts.ts +0 -7
  149. package/src/index.ts +4 -0
  150. package/src/theme/colorUtils.ts +9 -0
  151. package/src/utils/curatedIcons.ts +698 -135
  152. package/src/utils/fontGuard.ts +2 -1
  153. package/dist/chunk-53Z3NYGE.mjs +0 -742
package/dist/Sheet.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React2 = require('react');
4
4
  var reactNative = require('react-native');
5
- var BottomSheet = require('@gorhom/bottom-sheet');
5
+ var bottomSheet = require('@gorhom/bottom-sheet');
6
6
  var reactNativeSafeAreaContext = require('react-native-safe-area-context');
7
7
  var vectorIcons = require('@expo/vector-icons');
8
8
  var reactNativeSizeMatters = require('react-native-size-matters');
@@ -10,7 +10,6 @@ var reactNativeSizeMatters = require('react-native-size-matters');
10
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
12
12
  var React2__default = /*#__PURE__*/_interopDefault(React2);
13
- var BottomSheet__default = /*#__PURE__*/_interopDefault(BottomSheet);
14
13
 
15
14
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
16
15
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
@@ -197,26 +196,7 @@ var vs = isWeb ? (n) => n : reactNativeSizeMatters.verticalScale;
197
196
  var ms = isWeb ? (n, _factor) => n : reactNativeSizeMatters.moderateScale;
198
197
  var mvs = isWeb ? (n, _factor) => n : reactNativeSizeMatters.moderateVerticalScale;
199
198
 
200
- // src/tokens.ts
201
- var RADIUS = {
202
- lg: 20};
203
- var SHADOWS = {
204
- xl: {
205
- shadowColor: "#000",
206
- shadowOffset: { width: 0, height: 12 },
207
- shadowOpacity: 0.24,
208
- shadowRadius: 24,
209
- elevation: 18
210
- }
211
- };
212
- var BREAKPOINTS = {
213
- wide: 700
214
- };
215
-
216
199
  // src/components/Sheet/Sheet.tsx
217
- var SCREEN_HEIGHT = reactNative.Dimensions.get("window").height;
218
- var DEFAULT_MAX_HEIGHT = SCREEN_HEIGHT * 0.85;
219
- var isAndroid = reactNative.Platform.OS === "android";
220
200
  function SheetHeader({ children, style }) {
221
201
  return /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: [styles.header, style] }, children);
222
202
  }
@@ -232,45 +212,45 @@ function Sheet({
232
212
  onClose,
233
213
  title,
234
214
  subtitle,
235
- description,
236
215
  showCloseButton = false,
237
216
  children,
238
217
  style,
239
218
  contentStyle,
240
- scrollable,
219
+ scrollable = false,
241
220
  maxHeight,
242
- keyboardBehavior,
221
+ keyboardBehavior = "interactive",
243
222
  keyboardBlurBehavior = "restore",
244
223
  enableBlurKeyboardOnGesture = true,
245
224
  android_keyboardInputMode = "adjustPan",
246
225
  footer,
247
- snapPoints,
248
- responsive = false,
249
- dialogMaxWidth = 480
226
+ snapPoints
250
227
  }) {
251
228
  const { colors } = useTheme();
252
229
  const insets = reactNativeSafeAreaContext.useSafeAreaInsets();
253
- const { width: windowWidth } = reactNative.useWindowDimensions();
254
230
  const ref = React2.useRef(null);
255
- const asDialog = responsive && windowWidth >= BREAKPOINTS.wide;
256
- const effectiveKeyboardBehavior = keyboardBehavior ?? "interactive";
231
+ const wasOpened = React2.useRef(false);
232
+ const name = React2.useId();
257
233
  React2.useEffect(() => {
258
234
  if (open) {
259
235
  impactMedium();
260
- ref.current?.snapToIndex(0);
261
- } else {
262
- ref.current?.close();
236
+ ref.current?.present();
237
+ wasOpened.current = true;
238
+ } else if (wasOpened.current) {
239
+ ref.current?.dismiss();
263
240
  }
264
241
  }, [open]);
265
- const renderBackdrop = React2.useCallback((props) => /* @__PURE__ */ React2__default.default.createElement(
266
- BottomSheet.BottomSheetBackdrop,
267
- {
268
- ...props,
269
- disappearsOnIndex: -1,
270
- appearsOnIndex: 0,
271
- pressBehavior: "close"
272
- }
273
- ), []);
242
+ const renderBackdrop = React2.useCallback(
243
+ (props) => /* @__PURE__ */ React2__default.default.createElement(
244
+ bottomSheet.BottomSheetBackdrop,
245
+ {
246
+ ...props,
247
+ disappearsOnIndex: -1,
248
+ appearsOnIndex: 0,
249
+ pressBehavior: "close"
250
+ }
251
+ ),
252
+ []
253
+ );
274
254
  const childArray = React2__default.default.Children.toArray(children);
275
255
  const customHeader = childArray.find((child) => React2__default.default.isValidElement(child) && child.type === SheetHeader);
276
256
  const customContent = childArray.find((child) => React2__default.default.isValidElement(child) && child.type === SheetContent);
@@ -278,8 +258,7 @@ function Sheet({
278
258
  const filteredChildren = customHeader || customContent || customFooter ? childArray.filter(
279
259
  (child) => !React2__default.default.isValidElement(child) || child.type !== SheetHeader && child.type !== SheetContent && child.type !== SheetFooter
280
260
  ) : children;
281
- const effectiveSubtitle = subtitle ?? description;
282
- const showHeader = !!(title || effectiveSubtitle || showCloseButton) && !customHeader;
261
+ const showHeader = !!(title || subtitle || showCloseButton) && !customHeader;
283
262
  const headerNode = customHeader ? customHeader : showHeader ? /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: [styles.header, { backgroundColor: colors.card }], accessibilityRole: "header" }, /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: styles.headerRow }, title ? /* @__PURE__ */ React2__default.default.createElement(reactNative.Text, { style: [styles.title, { color: colors.foreground }], allowFontScaling: true }, title) : /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: { flex: 1 } }), showCloseButton ? /* @__PURE__ */ React2__default.default.createElement(
284
263
  reactNative.TouchableOpacity,
285
264
  {
@@ -292,77 +271,49 @@ function Sheet({
292
271
  hitSlop: { top: 12, bottom: 12, left: 12, right: 12 }
293
272
  },
294
273
  /* @__PURE__ */ React2__default.default.createElement(vectorIcons.AntDesign, { name: "close", size: ms(18), color: colors.foregroundMuted })
295
- ) : null), effectiveSubtitle ? /* @__PURE__ */ React2__default.default.createElement(reactNative.Text, { style: [styles.subtitle, { color: colors.foregroundMuted }], allowFontScaling: true }, effectiveSubtitle) : null) : null;
274
+ ) : null), subtitle ? /* @__PURE__ */ React2__default.default.createElement(reactNative.Text, { style: [styles.subtitle, { color: colors.foregroundMuted }], allowFontScaling: true }, subtitle) : null) : null;
296
275
  const contentNode = customContent ? customContent : filteredChildren;
297
276
  const effectiveFooter = customFooter ? customFooter : footer;
298
- const renderFooter = React2.useCallback((props) => {
299
- if (!effectiveFooter) return null;
300
- return /* @__PURE__ */ React2__default.default.createElement(BottomSheet.BottomSheetFooter, { ...props }, effectiveFooter);
301
- }, [effectiveFooter]);
302
- if (asDialog) {
303
- return /* @__PURE__ */ React2__default.default.createElement(reactNative.Modal, { visible: open, transparent: true, animationType: "fade", onRequestClose: onClose }, /* @__PURE__ */ React2__default.default.createElement(reactNative.Pressable, { style: styles.dialogBackdrop, onPress: onClose, accessibilityRole: "button", accessibilityLabel: "Close" }, /* @__PURE__ */ React2__default.default.createElement(
304
- reactNative.Pressable,
305
- {
306
- style: [
307
- styles.dialogCard,
308
- { backgroundColor: colors.card, maxWidth: dialogMaxWidth, maxHeight: SCREEN_HEIGHT * 0.85 }
309
- ],
310
- onPress: () => {
311
- }
312
- },
313
- headerNode,
314
- /* @__PURE__ */ React2__default.default.createElement(
315
- reactNative.ScrollView,
316
- {
317
- contentContainerStyle: [styles.dialogContent, style],
318
- style: contentStyle,
319
- showsVerticalScrollIndicator: true,
320
- bounces: false
321
- },
322
- contentNode
323
- ),
324
- effectiveFooter
325
- )));
326
- }
327
- const useScroll = scrollable || !!maxHeight;
328
- const effectiveMaxHeight = maxHeight ?? DEFAULT_MAX_HEIGHT;
277
+ const renderFooter = React2.useCallback(
278
+ (props) => {
279
+ if (!effectiveFooter) return null;
280
+ return /* @__PURE__ */ React2__default.default.createElement(bottomSheet.BottomSheetFooter, { ...props }, effectiveFooter);
281
+ },
282
+ [effectiveFooter]
283
+ );
329
284
  const useDynamicSizing = !snapPoints;
330
285
  return /* @__PURE__ */ React2__default.default.createElement(
331
- BottomSheet__default.default,
286
+ bottomSheet.BottomSheetModal,
332
287
  {
333
288
  ref,
334
- index: -1,
335
- onClose,
289
+ name,
290
+ onDismiss: onClose,
336
291
  enableDynamicSizing: useDynamicSizing,
337
292
  snapPoints,
338
- maxDynamicContentSize: useDynamicSizing ? effectiveMaxHeight : void 0,
293
+ maxDynamicContentSize: useDynamicSizing && maxHeight ? maxHeight : void 0,
339
294
  backdropComponent: renderBackdrop,
340
295
  footerComponent: effectiveFooter ? renderFooter : void 0,
341
- backgroundStyle: [styles.background, { backgroundColor: colors.card }],
342
- handleIndicatorStyle: [styles.handle, { backgroundColor: colors.border }],
296
+ backgroundStyle: { ...styles.background, backgroundColor: colors.card },
297
+ handleIndicatorStyle: { ...styles.handle, backgroundColor: colors.border },
343
298
  enablePanDownToClose: true,
344
299
  topInset: insets.top,
345
- keyboardBehavior: effectiveKeyboardBehavior,
300
+ keyboardBehavior,
346
301
  keyboardBlurBehavior,
347
302
  android_keyboardInputMode,
348
303
  enableBlurKeyboardOnGesture
349
304
  },
350
- useScroll ? /* @__PURE__ */ React2__default.default.createElement(
351
- BottomSheet.BottomSheetScrollView,
305
+ scrollable ? /* @__PURE__ */ React2__default.default.createElement(
306
+ bottomSheet.BottomSheetScrollView,
352
307
  {
353
- contentContainerStyle: [
354
- styles.scrollContent,
355
- style
356
- ],
308
+ contentContainerStyle: [styles.scrollContent, style],
357
309
  style: contentStyle,
358
310
  showsVerticalScrollIndicator: true,
359
- indicatorStyle: "black",
360
- persistentScrollbar: isAndroid,
311
+ bounces: false,
361
312
  stickyHeaderIndices: headerNode ? [0] : void 0
362
313
  },
363
314
  headerNode,
364
315
  contentNode
365
- ) : /* @__PURE__ */ React2__default.default.createElement(BottomSheet.BottomSheetView, { style: [styles.content, contentStyle, style] }, headerNode, contentNode)
316
+ ) : /* @__PURE__ */ React2__default.default.createElement(bottomSheet.BottomSheetView, { style: [styles.content, contentStyle, style] }, headerNode, contentNode)
366
317
  );
367
318
  }
368
319
  Sheet.Header = SheetHeader;
@@ -409,8 +360,7 @@ var styles = reactNative.StyleSheet.create({
409
360
  },
410
361
  scrollContent: {
411
362
  paddingHorizontal: s(16),
412
- paddingBottom: vs(32),
413
- paddingRight: s(16)
363
+ paddingBottom: vs(32)
414
364
  },
415
365
  sheetContent: {
416
366
  gap: vs(16)
@@ -421,33 +371,15 @@ var styles = reactNative.StyleSheet.create({
421
371
  borderTopWidth: 1,
422
372
  flexDirection: "row",
423
373
  gap: s(12)
424
- },
425
- dialogBackdrop: {
426
- flex: 1,
427
- backgroundColor: "rgba(0,0,0,0.5)",
428
- alignItems: "center",
429
- justifyContent: "center",
430
- padding: s(24)
431
- },
432
- dialogCard: {
433
- width: "100%",
434
- borderRadius: RADIUS.lg,
435
- paddingTop: vs(16),
436
- overflow: "hidden",
437
- ...SHADOWS.xl
438
- },
439
- dialogContent: {
440
- paddingHorizontal: s(16),
441
- paddingBottom: vs(16)
442
374
  }
443
375
  });
444
376
 
445
377
  Object.defineProperty(exports, "BottomSheetModalProvider", {
446
378
  enumerable: true,
447
- get: function () { return BottomSheet.BottomSheetModalProvider; }
379
+ get: function () { return bottomSheet.BottomSheetModalProvider; }
448
380
  });
449
381
  Object.defineProperty(exports, "SheetTextInput", {
450
382
  enumerable: true,
451
- get: function () { return BottomSheet.BottomSheetTextInput; }
383
+ get: function () { return bottomSheet.BottomSheetTextInput; }
452
384
  });
453
385
  exports.Sheet = Sheet;
package/dist/Sheet.mjs CHANGED
@@ -1,6 +1,5 @@
1
- export { BottomSheetModalProvider, Sheet, BottomSheetTextInput as SheetTextInput } from './chunk-Y2NS74WS.mjs';
1
+ export { BottomSheetModalProvider, Sheet, BottomSheetTextInput as SheetTextInput } from './chunk-FFTYLPSB.mjs';
2
2
  import './chunk-EJ7ZPXOH.mjs';
3
- import './chunk-QY3X2UYR.mjs';
4
- import './chunk-SOYNZDVY.mjs';
3
+ import './chunk-EMUWGDWC.mjs';
5
4
  import './chunk-2CE3TQVY.mjs';
6
5
  import './chunk-Y6FXYEAI.mjs';
@@ -1,9 +1,9 @@
1
- export { SheetSelect } from './chunk-KOO4WITD.mjs';
1
+ export { SheetSelect } from './chunk-P73V2EKS.mjs';
2
2
  import './chunk-3DKJ2GIC.mjs';
3
3
  import './chunk-EJ7ZPXOH.mjs';
4
4
  import './chunk-DVK4G2GT.mjs';
5
5
  import './chunk-QY3X2UYR.mjs';
6
6
  import './chunk-KA7LTET3.mjs';
7
- import './chunk-SOYNZDVY.mjs';
7
+ import './chunk-EMUWGDWC.mjs';
8
8
  import './chunk-2CE3TQVY.mjs';
9
9
  import './chunk-Y6FXYEAI.mjs';
package/dist/Skeleton.mjs CHANGED
@@ -1,6 +1,6 @@
1
- export { Skeleton } from './chunk-AJ7ZDNBT.mjs';
1
+ export { Skeleton } from './chunk-BOVUP27T.mjs';
2
2
  import './chunk-DVK4G2GT.mjs';
3
3
  import './chunk-QY3X2UYR.mjs';
4
- import './chunk-SOYNZDVY.mjs';
4
+ import './chunk-EMUWGDWC.mjs';
5
5
  import './chunk-2CE3TQVY.mjs';
6
6
  import './chunk-Y6FXYEAI.mjs';
package/dist/Slider.mjs CHANGED
@@ -1,5 +1,5 @@
1
- export { Slider } from './chunk-JMOZEC77.mjs';
1
+ export { Slider } from './chunk-4WFMPFZB.mjs';
2
2
  import './chunk-EJ7ZPXOH.mjs';
3
- import './chunk-SOYNZDVY.mjs';
3
+ import './chunk-EMUWGDWC.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
5
5
  import './chunk-Y6FXYEAI.mjs';
package/dist/Spinner.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { Spinner } from './chunk-WBOOUHSS.mjs';
2
- import './chunk-SOYNZDVY.mjs';
1
+ export { Spinner } from './chunk-BCWEHE34.mjs';
2
+ import './chunk-EMUWGDWC.mjs';
3
3
  import './chunk-2CE3TQVY.mjs';
4
4
  import './chunk-Y6FXYEAI.mjs';
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+
4
+ type StatsVariant = 'elevated' | 'outlined' | 'filled';
5
+ interface StatsProps {
6
+ value: string;
7
+ label: string;
8
+ description?: string;
9
+ icon?: React.ReactNode;
10
+ iconName?: string;
11
+ iconColor?: string;
12
+ variant?: StatsVariant;
13
+ onPress?: () => void;
14
+ style?: ViewStyle;
15
+ accessibilityLabel?: string;
16
+ }
17
+ interface StatsGroupProps {
18
+ children: React.ReactNode;
19
+ gap?: number;
20
+ style?: ViewStyle;
21
+ }
22
+ declare function StatsComponent({ value, label, description, icon, iconName, iconColor, variant, onPress, style, accessibilityLabel, }: StatsProps): React.JSX.Element;
23
+ declare function StatsGroup({ children, gap, style }: StatsGroupProps): React.JSX.Element;
24
+ declare const Stats: React.NamedExoticComponent<StatsProps> & {
25
+ readonly type: typeof StatsComponent;
26
+ } & {
27
+ Group: typeof StatsGroup;
28
+ };
29
+
30
+ export { Stats, type StatsGroupProps, type StatsProps, type StatsVariant };
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+
4
+ type StatsVariant = 'elevated' | 'outlined' | 'filled';
5
+ interface StatsProps {
6
+ value: string;
7
+ label: string;
8
+ description?: string;
9
+ icon?: React.ReactNode;
10
+ iconName?: string;
11
+ iconColor?: string;
12
+ variant?: StatsVariant;
13
+ onPress?: () => void;
14
+ style?: ViewStyle;
15
+ accessibilityLabel?: string;
16
+ }
17
+ interface StatsGroupProps {
18
+ children: React.ReactNode;
19
+ gap?: number;
20
+ style?: ViewStyle;
21
+ }
22
+ declare function StatsComponent({ value, label, description, icon, iconName, iconColor, variant, onPress, style, accessibilityLabel, }: StatsProps): React.JSX.Element;
23
+ declare function StatsGroup({ children, gap, style }: StatsGroupProps): React.JSX.Element;
24
+ declare const Stats: React.NamedExoticComponent<StatsProps> & {
25
+ readonly type: typeof StatsComponent;
26
+ } & {
27
+ Group: typeof StatsGroup;
28
+ };
29
+
30
+ export { Stats, type StatsGroupProps, type StatsProps, type StatsVariant };