@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/Checkbox.mjs CHANGED
@@ -1,7 +1,7 @@
1
- export { Checkbox } from './chunk-AV4EMIRH.mjs';
1
+ export { Checkbox } from './chunk-3N2M3WZL.mjs';
2
2
  import './chunk-3DKJ2GIC.mjs';
3
3
  import './chunk-EJ7ZPXOH.mjs';
4
4
  import './chunk-DVK4G2GT.mjs';
5
- import './chunk-SOYNZDVY.mjs';
5
+ import './chunk-EMUWGDWC.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
7
7
  import './chunk-Y6FXYEAI.mjs';
package/dist/Chip.mjs CHANGED
@@ -1,8 +1,8 @@
1
- export { Chip, ChipGroup } from './chunk-DYT7BG5I.mjs';
1
+ export { Chip, ChipGroup } from './chunk-FA2KMTH5.mjs';
2
2
  import './chunk-3DKJ2GIC.mjs';
3
3
  import './chunk-EJ7ZPXOH.mjs';
4
4
  import './chunk-DVK4G2GT.mjs';
5
5
  import './chunk-KA7LTET3.mjs';
6
- import './chunk-SOYNZDVY.mjs';
6
+ import './chunk-EMUWGDWC.mjs';
7
7
  import './chunk-2CE3TQVY.mjs';
8
8
  import './chunk-Y6FXYEAI.mjs';
@@ -3,20 +3,15 @@ import React from 'react';
3
3
  interface ConfirmDialogProps {
4
4
  visible: boolean;
5
5
  title: string;
6
- /** Secondary text below title. */
7
6
  subtitle?: string;
8
- /** @deprecated Use `subtitle` instead. */
9
- description?: string;
10
7
  confirmLabel?: string;
11
8
  cancelLabel?: string;
12
9
  confirmVariant?: 'primary' | 'destructive';
13
- /** Show a loading spinner in the confirm button (e.g. while async action completes). */
14
10
  loading?: boolean;
15
- /** Show an X close button in the top-right corner. */
16
11
  showCloseButton?: boolean;
17
12
  onConfirm: () => void;
18
13
  onCancel: () => void;
19
14
  }
20
- declare function ConfirmDialog({ visible, title, subtitle, description, confirmLabel, cancelLabel, confirmVariant, loading, showCloseButton, onConfirm, onCancel, }: ConfirmDialogProps): React.JSX.Element;
15
+ declare function ConfirmDialog({ visible, title, subtitle, confirmLabel, cancelLabel, confirmVariant, loading, showCloseButton, onConfirm, onCancel, }: ConfirmDialogProps): React.JSX.Element;
21
16
 
22
17
  export { ConfirmDialog, type ConfirmDialogProps };
@@ -3,20 +3,15 @@ import React from 'react';
3
3
  interface ConfirmDialogProps {
4
4
  visible: boolean;
5
5
  title: string;
6
- /** Secondary text below title. */
7
6
  subtitle?: string;
8
- /** @deprecated Use `subtitle` instead. */
9
- description?: string;
10
7
  confirmLabel?: string;
11
8
  cancelLabel?: string;
12
9
  confirmVariant?: 'primary' | 'destructive';
13
- /** Show a loading spinner in the confirm button (e.g. while async action completes). */
14
10
  loading?: boolean;
15
- /** Show an X close button in the top-right corner. */
16
11
  showCloseButton?: boolean;
17
12
  onConfirm: () => void;
18
13
  onCancel: () => void;
19
14
  }
20
- declare function ConfirmDialog({ visible, title, subtitle, description, confirmLabel, cancelLabel, confirmVariant, loading, showCloseButton, onConfirm, onCancel, }: ConfirmDialogProps): React.JSX.Element;
15
+ declare function ConfirmDialog({ visible, title, subtitle, confirmLabel, cancelLabel, confirmVariant, loading, showCloseButton, onConfirm, onCancel, }: ConfirmDialogProps): React.JSX.Element;
21
16
 
22
17
  export { ConfirmDialog, type ConfirmDialogProps };
@@ -2,7 +2,8 @@
2
2
 
3
3
  var React3 = require('react');
4
4
  var reactNative = require('react-native');
5
- var BottomSheet = require('@gorhom/bottom-sheet');
5
+ var bottomSheet = require('@gorhom/bottom-sheet');
6
+ var reactNativeSafeAreaContext = require('react-native-safe-area-context');
6
7
  var vectorIcons = require('@expo/vector-icons');
7
8
  var reactNativeSizeMatters = require('react-native-size-matters');
8
9
  var AntDesign = require('@expo/vector-icons/AntDesign');
@@ -17,7 +18,6 @@ var reactNativeReanimated = require('react-native-reanimated');
17
18
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
18
19
 
19
20
  var React3__default = /*#__PURE__*/_interopDefault(React3);
20
- var BottomSheet__default = /*#__PURE__*/_interopDefault(BottomSheet);
21
21
  var AntDesign__default = /*#__PURE__*/_interopDefault(AntDesign);
22
22
  var Entypo__default = /*#__PURE__*/_interopDefault(Entypo);
23
23
  var Feather__default = /*#__PURE__*/_interopDefault(Feather);
@@ -457,7 +457,6 @@ function ConfirmDialog({
457
457
  visible,
458
458
  title,
459
459
  subtitle,
460
- description,
461
460
  confirmLabel = "Confirm",
462
461
  cancelLabel = "Cancel",
463
462
  confirmVariant = "primary",
@@ -467,38 +466,45 @@ function ConfirmDialog({
467
466
  onCancel
468
467
  }) {
469
468
  const { colors } = useTheme();
469
+ const insets = reactNativeSafeAreaContext.useSafeAreaInsets();
470
470
  const ref = React3.useRef(null);
471
- const effectiveSubtitle = subtitle ?? description;
471
+ const wasOpened = React3.useRef(false);
472
+ const name = React3.useId();
472
473
  React3.useEffect(() => {
473
474
  if (visible) {
474
475
  impactMedium();
475
- ref.current?.snapToIndex(0);
476
- } else {
477
- ref.current?.close();
476
+ ref.current?.present();
477
+ wasOpened.current = true;
478
+ } else if (wasOpened.current) {
479
+ ref.current?.dismiss();
478
480
  }
479
481
  }, [visible]);
480
- const renderBackdrop = (props) => /* @__PURE__ */ React3__default.default.createElement(
481
- BottomSheet.BottomSheetBackdrop,
482
- {
483
- ...props,
484
- disappearsOnIndex: -1,
485
- appearsOnIndex: 0,
486
- pressBehavior: "close"
487
- }
482
+ const renderBackdrop = React3.useCallback(
483
+ (props) => /* @__PURE__ */ React3__default.default.createElement(
484
+ bottomSheet.BottomSheetBackdrop,
485
+ {
486
+ ...props,
487
+ disappearsOnIndex: -1,
488
+ appearsOnIndex: 0,
489
+ pressBehavior: "close"
490
+ }
491
+ ),
492
+ []
488
493
  );
489
494
  return /* @__PURE__ */ React3__default.default.createElement(
490
- BottomSheet__default.default,
495
+ bottomSheet.BottomSheetModal,
491
496
  {
492
497
  ref,
493
- index: -1,
494
- onClose: onCancel,
498
+ name,
499
+ onDismiss: onCancel,
495
500
  enableDynamicSizing: true,
496
501
  backdropComponent: renderBackdrop,
497
- backgroundStyle: [styles2.background, { backgroundColor: colors.card }],
498
- handleIndicatorStyle: [styles2.handle, { backgroundColor: colors.border }],
499
- enablePanDownToClose: true
502
+ backgroundStyle: { ...styles2.background, backgroundColor: colors.card },
503
+ handleIndicatorStyle: { ...styles2.handle, backgroundColor: colors.border },
504
+ enablePanDownToClose: true,
505
+ topInset: insets.top
500
506
  },
501
- /* @__PURE__ */ React3__default.default.createElement(BottomSheet.BottomSheetView, { style: styles2.content }, /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.header, accessibilityRole: "header" }, /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.headerRow }, /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles2.title, { color: colors.foreground }], allowFontScaling: true }, title), showCloseButton ? /* @__PURE__ */ React3__default.default.createElement(
507
+ /* @__PURE__ */ React3__default.default.createElement(bottomSheet.BottomSheetView, { style: styles2.content }, /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.header, accessibilityRole: "header" }, /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.headerRow }, /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles2.title, { color: colors.foreground }], allowFontScaling: true }, title), showCloseButton ? /* @__PURE__ */ React3__default.default.createElement(
502
508
  reactNative.TouchableOpacity,
503
509
  {
504
510
  onPress: onCancel,
@@ -510,7 +516,7 @@ function ConfirmDialog({
510
516
  hitSlop: { top: 12, bottom: 12, left: 12, right: 12 }
511
517
  },
512
518
  /* @__PURE__ */ React3__default.default.createElement(vectorIcons.Feather, { name: "x", size: ms(18), color: colors.foregroundMuted })
513
- ) : null), effectiveSubtitle ? /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles2.subtitle, { color: colors.foregroundMuted }], allowFontScaling: true }, effectiveSubtitle) : null), /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.actions }, /* @__PURE__ */ React3__default.default.createElement(
519
+ ) : null), subtitle ? /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles2.subtitle, { color: colors.foregroundMuted }], allowFontScaling: true }, subtitle) : null), /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.actions }, /* @__PURE__ */ React3__default.default.createElement(
514
520
  Button,
515
521
  {
516
522
  label: confirmLabel,
@@ -1,10 +1,10 @@
1
- export { ConfirmDialog } from './chunk-WYEUNUTP.mjs';
2
- import './chunk-HTHGSXFG.mjs';
1
+ export { ConfirmDialog } from './chunk-JCZQOY4O.mjs';
2
+ import './chunk-DOGIPOF5.mjs';
3
3
  import './chunk-3DKJ2GIC.mjs';
4
4
  import './chunk-EJ7ZPXOH.mjs';
5
5
  import './chunk-DVK4G2GT.mjs';
6
6
  import './chunk-QY3X2UYR.mjs';
7
7
  import './chunk-KA7LTET3.mjs';
8
- import './chunk-SOYNZDVY.mjs';
8
+ import './chunk-EMUWGDWC.mjs';
9
9
  import './chunk-2CE3TQVY.mjs';
10
10
  import './chunk-Y6FXYEAI.mjs';
@@ -1,4 +1,4 @@
1
- export { CurrencyDisplay } from './chunk-BRKYVJVV.mjs';
2
- import './chunk-SOYNZDVY.mjs';
1
+ export { CurrencyDisplay } from './chunk-BQZE3HAW.mjs';
2
+ import './chunk-EMUWGDWC.mjs';
3
3
  import './chunk-2CE3TQVY.mjs';
4
4
  import './chunk-Y6FXYEAI.mjs';
@@ -1,9 +1,7 @@
1
1
  import React from 'react';
2
- import { ViewStyle, TextStyle } from 'react-native';
2
+ import { TextInputProps, ViewStyle } from 'react-native';
3
3
 
4
- interface CurrencyInputProps {
5
- value?: string;
6
- onChangeText?: (formatted: string) => void;
4
+ interface CurrencyInputProps extends TextInputProps {
7
5
  /** Called with the parsed numeric value (no separators, no prefix). */
8
6
  onChangeValue?: (raw: number) => void;
9
7
  /** Currency symbol shown left of the value. Any string (`'$'`, `'€'`, `'£'`, `'COP '`). Defaults to `'$'`. */
@@ -16,13 +14,10 @@ interface CurrencyInputProps {
16
14
  /** Red helper text; also changes input border to destructive color. */
17
15
  error?: string;
18
16
  hint?: string;
19
- placeholder?: string;
20
- editable?: boolean;
21
17
  containerStyle?: ViewStyle;
22
- style?: TextStyle;
23
18
  /** Use inside a Sheet/BottomSheet — passes sheetMode to the underlying Input. */
24
19
  sheetMode?: boolean;
25
20
  }
26
- declare function CurrencyInput({ value, onChangeText, onChangeValue, prefix, thousandsSeparator, size, label, error, hint, placeholder, editable, containerStyle, style, sheetMode, }: CurrencyInputProps): React.JSX.Element;
21
+ declare function CurrencyInput({ value, onChangeText, onChangeValue, prefix, thousandsSeparator, size, label, error, hint, placeholder, editable, containerStyle, style, sheetMode, ...props }: CurrencyInputProps): React.JSX.Element;
27
22
 
28
23
  export { CurrencyInput, type CurrencyInputProps };
@@ -1,9 +1,7 @@
1
1
  import React from 'react';
2
- import { ViewStyle, TextStyle } from 'react-native';
2
+ import { TextInputProps, ViewStyle } from 'react-native';
3
3
 
4
- interface CurrencyInputProps {
5
- value?: string;
6
- onChangeText?: (formatted: string) => void;
4
+ interface CurrencyInputProps extends TextInputProps {
7
5
  /** Called with the parsed numeric value (no separators, no prefix). */
8
6
  onChangeValue?: (raw: number) => void;
9
7
  /** Currency symbol shown left of the value. Any string (`'$'`, `'€'`, `'£'`, `'COP '`). Defaults to `'$'`. */
@@ -16,13 +14,10 @@ interface CurrencyInputProps {
16
14
  /** Red helper text; also changes input border to destructive color. */
17
15
  error?: string;
18
16
  hint?: string;
19
- placeholder?: string;
20
- editable?: boolean;
21
17
  containerStyle?: ViewStyle;
22
- style?: TextStyle;
23
18
  /** Use inside a Sheet/BottomSheet — passes sheetMode to the underlying Input. */
24
19
  sheetMode?: boolean;
25
20
  }
26
- declare function CurrencyInput({ value, onChangeText, onChangeValue, prefix, thousandsSeparator, size, label, error, hint, placeholder, editable, containerStyle, style, sheetMode, }: CurrencyInputProps): React.JSX.Element;
21
+ declare function CurrencyInput({ value, onChangeText, onChangeValue, prefix, thousandsSeparator, size, label, error, hint, placeholder, editable, containerStyle, style, sheetMode, ...props }: CurrencyInputProps): React.JSX.Element;
27
22
 
28
23
  export { CurrencyInput, type CurrencyInputProps };
@@ -379,7 +379,8 @@ function CurrencyInput({
379
379
  editable,
380
380
  containerStyle,
381
381
  style,
382
- sheetMode
382
+ sheetMode,
383
+ ...props
383
384
  }) {
384
385
  const handleChange = (text) => {
385
386
  const withoutPrefix = prefix && text.startsWith(prefix) ? text.slice(prefix.length) : text;
@@ -400,6 +401,7 @@ function CurrencyInput({
400
401
  return /* @__PURE__ */ React3__default.default.createElement(
401
402
  Input,
402
403
  {
404
+ ...props,
403
405
  value: displayValue,
404
406
  onChangeText: handleChange,
405
407
  keyboardType: "numeric",
@@ -1,7 +1,7 @@
1
- export { CurrencyInput } from './chunk-NMU5FMQJ.mjs';
2
- import './chunk-SXLKNTA4.mjs';
1
+ export { CurrencyInput } from './chunk-X26S5EVZ.mjs';
2
+ import './chunk-PGERH3P7.mjs';
3
3
  import './chunk-DVK4G2GT.mjs';
4
4
  import './chunk-KA7LTET3.mjs';
5
- import './chunk-SOYNZDVY.mjs';
5
+ import './chunk-EMUWGDWC.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
7
7
  import './chunk-Y6FXYEAI.mjs';
@@ -1,5 +1,5 @@
1
- export { DetailRow } from './chunk-S2R7UVOE.mjs';
1
+ export { DetailRow } from './chunk-ZHMSAYLT.mjs';
2
2
  import './chunk-KA7LTET3.mjs';
3
- import './chunk-SOYNZDVY.mjs';
3
+ import './chunk-EMUWGDWC.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
5
5
  import './chunk-Y6FXYEAI.mjs';
@@ -1,10 +1,10 @@
1
- export { EmptyState } from './chunk-6SECQ2ZF.mjs';
2
- import './chunk-HTHGSXFG.mjs';
1
+ export { EmptyState } from './chunk-7HSILTC4.mjs';
2
+ import './chunk-DOGIPOF5.mjs';
3
3
  import './chunk-3DKJ2GIC.mjs';
4
4
  import './chunk-EJ7ZPXOH.mjs';
5
5
  import './chunk-DVK4G2GT.mjs';
6
6
  import './chunk-QY3X2UYR.mjs';
7
7
  import './chunk-KA7LTET3.mjs';
8
- import './chunk-SOYNZDVY.mjs';
8
+ import './chunk-EMUWGDWC.mjs';
9
9
  import './chunk-2CE3TQVY.mjs';
10
10
  import './chunk-Y6FXYEAI.mjs';
@@ -1,7 +1,7 @@
1
- export { ErrorBoundary } from './chunk-RYZC432S.mjs';
1
+ export { ErrorBoundary } from './chunk-LRM4AVYY.mjs';
2
2
  import './chunk-EJ7ZPXOH.mjs';
3
3
  import './chunk-QY3X2UYR.mjs';
4
4
  import './chunk-KA7LTET3.mjs';
5
- import './chunk-SOYNZDVY.mjs';
5
+ import './chunk-EMUWGDWC.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
7
7
  import './chunk-Y6FXYEAI.mjs';
package/dist/Form.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { Form, FormField, FormFooter, FormSection } from './chunk-6Q64UFIA.mjs';
2
- import './chunk-SOYNZDVY.mjs';
1
+ export { Form, FormField, FormFooter, FormSection } from './chunk-HJ46DTJE.mjs';
2
+ import './chunk-EMUWGDWC.mjs';
3
3
  import './chunk-2CE3TQVY.mjs';
4
4
  import './chunk-Y6FXYEAI.mjs';
@@ -1,8 +1,8 @@
1
- export { IconButton } from './chunk-T2KCAHOS.mjs';
1
+ export { IconButton } from './chunk-DF6DU42P.mjs';
2
2
  import './chunk-3DKJ2GIC.mjs';
3
3
  import './chunk-EJ7ZPXOH.mjs';
4
4
  import './chunk-DVK4G2GT.mjs';
5
5
  import './chunk-KA7LTET3.mjs';
6
- import './chunk-SOYNZDVY.mjs';
6
+ import './chunk-EMUWGDWC.mjs';
7
7
  import './chunk-2CE3TQVY.mjs';
8
8
  import './chunk-Y6FXYEAI.mjs';