@retray-dev/ui-kit 10.1.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 (192) hide show
  1. package/COMPONENTS.md +419 -38
  2. package/README.md +14 -5
  3. package/dist/Accordion.js +1 -1
  4. package/dist/Accordion.mjs +3 -3
  5. package/dist/AlertBanner.js +1 -1
  6. package/dist/AlertBanner.mjs +3 -3
  7. package/dist/AppHeader.js +1 -1
  8. package/dist/AppHeader.mjs +4 -4
  9. package/dist/Avatar.mjs +2 -2
  10. package/dist/Badge.js +1 -1
  11. package/dist/Badge.mjs +3 -3
  12. package/dist/Button.js +1 -1
  13. package/dist/Button.mjs +3 -3
  14. package/dist/Card.mjs +2 -2
  15. package/dist/CategoryStrip.js +1 -1
  16. package/dist/CategoryStrip.mjs +3 -3
  17. package/dist/Checkbox.mjs +2 -2
  18. package/dist/Chip.js +1 -1
  19. package/dist/Chip.mjs +3 -3
  20. package/dist/ConfirmDialog.d.mts +1 -6
  21. package/dist/ConfirmDialog.d.ts +1 -6
  22. package/dist/ConfirmDialog.js +30 -24
  23. package/dist/ConfirmDialog.mjs +4 -4
  24. package/dist/CurrencyDisplay.mjs +2 -2
  25. package/dist/CurrencyInput.d.mts +3 -8
  26. package/dist/CurrencyInput.d.ts +3 -8
  27. package/dist/CurrencyInput.js +4 -2
  28. package/dist/CurrencyInput.mjs +4 -4
  29. package/dist/DetailRow.d.mts +1 -1
  30. package/dist/DetailRow.d.ts +1 -1
  31. package/dist/DetailRow.js +1 -1
  32. package/dist/DetailRow.mjs +3 -3
  33. package/dist/EmptyState.js +1 -1
  34. package/dist/EmptyState.mjs +4 -4
  35. package/dist/ErrorBoundary.js +1 -1
  36. package/dist/ErrorBoundary.mjs +3 -3
  37. package/dist/Form.mjs +2 -2
  38. package/dist/IconButton.js +1 -1
  39. package/dist/IconButton.mjs +3 -3
  40. package/dist/IconPicker.d.mts +17 -0
  41. package/dist/IconPicker.d.ts +17 -0
  42. package/dist/IconPicker.js +1424 -0
  43. package/dist/IconPicker.mjs +8 -0
  44. package/dist/ImageUpload.d.mts +3 -1
  45. package/dist/ImageUpload.d.ts +3 -1
  46. package/dist/ImageUpload.js +28 -10
  47. package/dist/ImageUpload.mjs +3 -3
  48. package/dist/ImageViewer.js +1 -1
  49. package/dist/ImageViewer.mjs +5 -5
  50. package/dist/Input.js +1 -1
  51. package/dist/Input.mjs +3 -3
  52. package/dist/LabelValue.js +1 -1
  53. package/dist/LabelValue.mjs +3 -3
  54. package/dist/ListGroup.mjs +2 -2
  55. package/dist/ListItem.d.mts +7 -7
  56. package/dist/ListItem.d.ts +7 -7
  57. package/dist/ListItem.js +13 -8
  58. package/dist/ListItem.mjs +3 -3
  59. package/dist/MediaCard.js +1 -1
  60. package/dist/MediaCard.mjs +3 -3
  61. package/dist/MenuGroup.mjs +2 -2
  62. package/dist/MenuItem.js +1 -1
  63. package/dist/MenuItem.mjs +3 -3
  64. package/dist/MonthPicker.mjs +2 -2
  65. package/dist/NumberStepper.d.mts +19 -0
  66. package/dist/NumberStepper.d.ts +19 -0
  67. package/dist/NumberStepper.js +410 -0
  68. package/dist/NumberStepper.mjs +9 -0
  69. package/dist/PagerDots.js +1 -1
  70. package/dist/PagerDots.mjs +3 -3
  71. package/dist/Pressable.d.mts +15 -7
  72. package/dist/Pressable.d.ts +15 -7
  73. package/dist/Pressable.js +7 -3
  74. package/dist/Pressable.mjs +1 -1
  75. package/dist/PricingCard.js +1 -1
  76. package/dist/PricingCard.mjs +5 -5
  77. package/dist/Progress.mjs +2 -2
  78. package/dist/RadioGroup.mjs +2 -2
  79. package/dist/RetrayProvider.mjs +3 -3
  80. package/dist/Select.mjs +2 -2
  81. package/dist/SelectableGrid.js +1 -1
  82. package/dist/SelectableGrid.mjs +3 -3
  83. package/dist/Separator.mjs +2 -2
  84. package/dist/Sheet.d.mts +4 -46
  85. package/dist/Sheet.d.ts +4 -46
  86. package/dist/Sheet.js +46 -114
  87. package/dist/Sheet.mjs +2 -3
  88. package/dist/SheetSelect.js +1 -1
  89. package/dist/SheetSelect.mjs +3 -3
  90. package/dist/Skeleton.mjs +2 -2
  91. package/dist/Slider.mjs +2 -2
  92. package/dist/Spinner.mjs +2 -2
  93. package/dist/Stats.d.mts +30 -0
  94. package/dist/Stats.d.ts +30 -0
  95. package/dist/Stats.js +429 -0
  96. package/dist/Stats.mjs +9 -0
  97. package/dist/Switch.mjs +2 -2
  98. package/dist/TabBar.js +1 -1
  99. package/dist/TabBar.mjs +3 -3
  100. package/dist/Tabs.mjs +2 -2
  101. package/dist/Text.d.mts +3 -1
  102. package/dist/Text.d.ts +3 -1
  103. package/dist/Text.js +3 -3
  104. package/dist/Text.mjs +2 -2
  105. package/dist/Textarea.js +1 -1
  106. package/dist/Textarea.mjs +3 -3
  107. package/dist/Toast.mjs +2 -2
  108. package/dist/Toggle.js +1 -1
  109. package/dist/Toggle.mjs +3 -3
  110. package/dist/{chunk-DJ7RN37L.mjs → chunk-265G6A46.mjs} +2 -2
  111. package/dist/{chunk-WOEYDUJZ.mjs → chunk-2A2LEFZG.mjs} +2 -2
  112. package/dist/{chunk-ID72TK46.mjs → chunk-2CBQKU7H.mjs} +1 -1
  113. package/dist/{chunk-OB4JUQ3O.mjs → chunk-2I2AYECM.mjs} +1 -1
  114. package/dist/{chunk-WJLKJMKR.mjs → chunk-357YO24D.mjs} +4 -4
  115. package/dist/{chunk-GQYFLP3D.mjs → chunk-3GEYJ7I5.mjs} +1 -1
  116. package/dist/{chunk-AV4EMIRH.mjs → chunk-3N2M3WZL.mjs} +1 -1
  117. package/dist/{chunk-TERDKCLE.mjs → chunk-3UYAZ7I4.mjs} +2 -2
  118. package/dist/{chunk-JMOZEC77.mjs → chunk-4WFMPFZB.mjs} +1 -1
  119. package/dist/chunk-5OLNXP3S.mjs +144 -0
  120. package/dist/{chunk-6OAZJ577.mjs → chunk-7HSILTC4.mjs} +3 -3
  121. package/dist/{chunk-IRRY3CRZ.mjs → chunk-AKM4EPOT.mjs} +1 -1
  122. package/dist/{chunk-VGTDN7SW.mjs → chunk-AQEVCEXV.mjs} +2 -2
  123. package/dist/{chunk-WBOOUHSS.mjs → chunk-BCWEHE34.mjs} +1 -1
  124. package/dist/{chunk-AJ7ZDNBT.mjs → chunk-BOVUP27T.mjs} +1 -1
  125. package/dist/{chunk-BRKYVJVV.mjs → chunk-BQZE3HAW.mjs} +1 -1
  126. package/dist/{chunk-MLF3EZFW.mjs → chunk-D3Y2T42P.mjs} +2 -2
  127. package/dist/{chunk-3U4SSNWP.mjs → chunk-DF6DU42P.mjs} +2 -2
  128. package/dist/{chunk-ZJKGQMYH.mjs → chunk-DI7CBDL6.mjs} +2 -2
  129. package/dist/{chunk-2TFTAWVJ.mjs → chunk-DOGIPOF5.mjs} +2 -2
  130. package/dist/{chunk-MBMXYJJV.mjs → chunk-E7NEHHXV.mjs} +7 -3
  131. package/dist/{chunk-MX6HRKMI.mjs → chunk-EFLFRAHD.mjs} +1 -1
  132. package/dist/{chunk-SOYNZDVY.mjs → chunk-EMUWGDWC.mjs} +6 -1
  133. package/dist/{chunk-4I7D47FH.mjs → chunk-F4V6XLP4.mjs} +4 -4
  134. package/dist/{chunk-UREA2GYY.mjs → chunk-FA2KMTH5.mjs} +2 -2
  135. package/dist/{chunk-Y2NS74WS.mjs → chunk-FFTYLPSB.mjs} +46 -98
  136. package/dist/{chunk-OHBNABL5.mjs → chunk-FUVYSVGR.mjs} +14 -9
  137. package/dist/{chunk-KIHCWCWL.mjs → chunk-FVTVCJAH.mjs} +2 -2
  138. package/dist/{chunk-Y4GL2MHX.mjs → chunk-GK4VRMNE.mjs} +30 -12
  139. package/dist/{chunk-6Q64UFIA.mjs → chunk-HJ46DTJE.mjs} +1 -1
  140. package/dist/{chunk-WF2XDFRK.mjs → chunk-HLMPMUK2.mjs} +1 -1
  141. package/dist/{chunk-GD6KXMG5.mjs → chunk-I4V5XZPS.mjs} +1 -1
  142. package/dist/{chunk-AZJF2BLK.mjs → chunk-ISY26JQJ.mjs} +2 -2
  143. package/dist/{chunk-X4G6APW6.mjs → chunk-J6Q2YJEV.mjs} +1 -1
  144. package/dist/{chunk-KZL5VTYK.mjs → chunk-JCZQOY4O.mjs} +31 -24
  145. package/dist/{chunk-CZCQZHG6.mjs → chunk-JNVAIDLK.mjs} +2 -2
  146. package/dist/{chunk-SOA2Z4RB.mjs → chunk-JULSIZDM.mjs} +1 -1
  147. package/dist/{chunk-T7XZ7H7Y.mjs → chunk-KA7LTET3.mjs} +17 -3
  148. package/dist/chunk-KHYX4IOM.mjs +1114 -0
  149. package/dist/{chunk-LXJIIOYQ.mjs → chunk-LRM4AVYY.mjs} +2 -2
  150. package/dist/{chunk-VQ57HWPL.mjs → chunk-MYZ2EDYU.mjs} +2 -2
  151. package/dist/chunk-N4ZPVCJH.mjs +126 -0
  152. package/dist/{chunk-NA7PARID.mjs → chunk-NXI4YDZ2.mjs} +2 -2
  153. package/dist/{chunk-4K625MVM.mjs → chunk-OULVKTWL.mjs} +2 -2
  154. package/dist/{chunk-A4MDAP7G.mjs → chunk-P64WHW4A.mjs} +2 -2
  155. package/dist/{chunk-URI2WBIV.mjs → chunk-P73V2EKS.mjs} +2 -2
  156. package/dist/{chunk-ZUR7AU5R.mjs → chunk-PGERH3P7.mjs} +2 -2
  157. package/dist/{chunk-2UYENBLV.mjs → chunk-QSFV2P7O.mjs} +1 -1
  158. package/dist/{chunk-JT7HKXRB.mjs → chunk-S3KJCPEJ.mjs} +1 -1
  159. package/dist/{chunk-6MKGPAR2.mjs → chunk-V6NFJXKO.mjs} +2 -2
  160. package/dist/{chunk-A3A6KNQN.mjs → chunk-WOEWGSTU.mjs} +1 -1
  161. package/dist/{chunk-JUXSWN54.mjs → chunk-X26S5EVZ.mjs} +4 -2
  162. package/dist/{chunk-YFZ3ELX5.mjs → chunk-XBAGGKLW.mjs} +2 -2
  163. package/dist/{chunk-JB67UOB5.mjs → chunk-ZHMSAYLT.mjs} +2 -2
  164. package/dist/fonts.d.mts +1 -7
  165. package/dist/fonts.d.ts +1 -7
  166. package/dist/fonts.js +0 -2
  167. package/dist/fonts.mjs +1 -2
  168. package/dist/index.d.mts +7 -1
  169. package/dist/index.d.ts +7 -1
  170. package/dist/index.js +1831 -475
  171. package/dist/index.mjs +54 -51
  172. package/package.json +3 -3
  173. package/src/components/ConfirmDialog/ConfirmDialog.tsx +39 -30
  174. package/src/components/CurrencyInput/CurrencyInput.tsx +4 -7
  175. package/src/components/DetailRow/DetailRow.tsx +1 -1
  176. package/src/components/IconPicker/IconPicker.tsx +395 -0
  177. package/src/components/IconPicker/index.ts +1 -0
  178. package/src/components/ImageUpload/ImageUpload.tsx +34 -12
  179. package/src/components/ListItem/ListItem.tsx +43 -28
  180. package/src/components/NumberStepper/NumberStepper.tsx +147 -0
  181. package/src/components/NumberStepper/index.ts +1 -0
  182. package/src/components/Pressable/Pressable.tsx +20 -8
  183. package/src/components/Sheet/Sheet.tsx +64 -172
  184. package/src/components/Stats/Stats.tsx +226 -0
  185. package/src/components/Stats/index.ts +2 -0
  186. package/src/components/Text/Text.tsx +4 -2
  187. package/src/fonts.ts +0 -7
  188. package/src/index.ts +7 -1
  189. package/src/theme/colorUtils.ts +9 -0
  190. package/src/utils/curatedIcons.ts +849 -0
  191. package/src/utils/fontGuard.ts +2 -1
  192. package/src/utils/icons.ts +20 -2
@@ -1,7 +1,7 @@
1
1
  import { impactLight } from './chunk-EJ7ZPXOH.mjs';
2
2
  import { RADIUS } from './chunk-QY3X2UYR.mjs';
3
- import { renderIcon } from './chunk-T7XZ7H7Y.mjs';
4
- import { useTheme } from './chunk-SOYNZDVY.mjs';
3
+ import { renderIcon } from './chunk-KA7LTET3.mjs';
4
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
5
5
  import { ms, vs, s, mvs } from './chunk-2CE3TQVY.mjs';
6
6
  import React from 'react';
7
7
  import { StyleSheet, View, Text, TouchableOpacity } from 'react-native';
@@ -2,8 +2,8 @@ import { usePressScale } from './chunk-YNROWHQJ.mjs';
2
2
  import { selectionAsync } from './chunk-EJ7ZPXOH.mjs';
3
3
  import { PRESS_SCALE, COLOR_TRANSITION } from './chunk-DVK4G2GT.mjs';
4
4
  import { RADIUS } from './chunk-QY3X2UYR.mjs';
5
- import { renderIcon } from './chunk-T7XZ7H7Y.mjs';
6
- import { useTheme } from './chunk-SOYNZDVY.mjs';
5
+ import { renderIcon } from './chunk-KA7LTET3.mjs';
6
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
7
7
  import { ms, s, vs } from './chunk-2CE3TQVY.mjs';
8
8
  import React, { useCallback } from 'react';
9
9
  import { TouchableOpacity, View, Text, StyleSheet, ScrollView } from 'react-native';
@@ -0,0 +1,126 @@
1
+ import { PressableButton } from './chunk-3DKJ2GIC.mjs';
2
+ import { impactLight } from './chunk-EJ7ZPXOH.mjs';
3
+ import { RADIUS } from './chunk-QY3X2UYR.mjs';
4
+ import { renderIcon } from './chunk-KA7LTET3.mjs';
5
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
6
+ import { s, mvs, ms } from './chunk-2CE3TQVY.mjs';
7
+ import React from 'react';
8
+ import { StyleSheet, View, Text } from 'react-native';
9
+
10
+ var sizeConfig = {
11
+ sm: { button: s(40), icon: 16, valueFontSize: ms(18), valueLineHeight: mvs(24), valueMinWidth: s(32) },
12
+ md: { button: s(44), icon: 18, valueFontSize: ms(22), valueLineHeight: mvs(28), valueMinWidth: s(36) },
13
+ lg: { button: s(52), icon: 22, valueFontSize: ms(26), valueLineHeight: mvs(32), valueMinWidth: s(40) }
14
+ };
15
+ function NumberStepperBase({
16
+ value,
17
+ onValueChange,
18
+ min = 1,
19
+ max = 99,
20
+ step = 1,
21
+ size = "md",
22
+ disabled = false,
23
+ style,
24
+ accessibilityLabel
25
+ }) {
26
+ const { colors } = useTheme();
27
+ const canDecrement = value > min && !disabled;
28
+ const canIncrement = value < max && !disabled;
29
+ const handleDecrement = () => {
30
+ if (!canDecrement) return;
31
+ impactLight();
32
+ onValueChange(Math.max(min, value - step));
33
+ };
34
+ const handleIncrement = () => {
35
+ if (!canIncrement) return;
36
+ impactLight();
37
+ onValueChange(Math.min(max, value + step));
38
+ };
39
+ const { button: buttonSize, icon: iconSize, valueFontSize, valueLineHeight, valueMinWidth } = sizeConfig[size];
40
+ const displayValue = String(value);
41
+ return /* @__PURE__ */ React.createElement(View, { style: [styles.container, style] }, /* @__PURE__ */ React.createElement(
42
+ PressableButton,
43
+ {
44
+ style: [
45
+ styles.button,
46
+ {
47
+ width: buttonSize,
48
+ height: buttonSize,
49
+ backgroundColor: colors.surface,
50
+ borderColor: colors.border
51
+ },
52
+ !canDecrement && styles.buttonDisabled
53
+ ],
54
+ enabled: canDecrement,
55
+ onPress: handleDecrement,
56
+ rippleColor: "transparent",
57
+ touchSoundDisabled: true,
58
+ accessibilityRole: "button",
59
+ accessibilityLabel: `Decrease, current value ${displayValue}`,
60
+ accessibilityState: { disabled: !canDecrement }
61
+ },
62
+ renderIcon("minus", iconSize, canDecrement ? colors.foreground : colors.foregroundMuted)
63
+ ), /* @__PURE__ */ React.createElement(
64
+ Text,
65
+ {
66
+ style: [
67
+ styles.value,
68
+ {
69
+ color: colors.foreground,
70
+ fontSize: valueFontSize,
71
+ lineHeight: valueLineHeight,
72
+ minWidth: valueMinWidth
73
+ }
74
+ ],
75
+ allowFontScaling: true,
76
+ accessibilityLabel: accessibilityLabel ?? `Quantity: ${displayValue}`,
77
+ accessibilityRole: "text"
78
+ },
79
+ displayValue
80
+ ), /* @__PURE__ */ React.createElement(
81
+ PressableButton,
82
+ {
83
+ style: [
84
+ styles.button,
85
+ {
86
+ width: buttonSize,
87
+ height: buttonSize,
88
+ backgroundColor: colors.surface,
89
+ borderColor: colors.border
90
+ },
91
+ !canIncrement && styles.buttonDisabled
92
+ ],
93
+ enabled: canIncrement,
94
+ onPress: handleIncrement,
95
+ rippleColor: "transparent",
96
+ touchSoundDisabled: true,
97
+ accessibilityRole: "button",
98
+ accessibilityLabel: `Increase, current value ${displayValue}`,
99
+ accessibilityState: { disabled: !canIncrement }
100
+ },
101
+ renderIcon("plus", iconSize, canIncrement ? colors.foreground : colors.foregroundMuted)
102
+ ));
103
+ }
104
+ var NumberStepper = React.memo(NumberStepperBase);
105
+ var styles = StyleSheet.create({
106
+ container: {
107
+ flexDirection: "row",
108
+ alignItems: "center",
109
+ gap: s(12)
110
+ },
111
+ button: {
112
+ borderRadius: RADIUS.md,
113
+ alignItems: "center",
114
+ justifyContent: "center",
115
+ borderWidth: 1.5
116
+ },
117
+ buttonDisabled: {
118
+ opacity: 0.35
119
+ },
120
+ value: {
121
+ fontFamily: "Sohne-Medium",
122
+ textAlign: "center"
123
+ }
124
+ });
125
+
126
+ export { NumberStepper };
@@ -2,8 +2,8 @@ import { usePressScale } from './chunk-YNROWHQJ.mjs';
2
2
  import { selectionAsync } from './chunk-EJ7ZPXOH.mjs';
3
3
  import { PRESS_SCALE } from './chunk-DVK4G2GT.mjs';
4
4
  import { RADIUS } from './chunk-QY3X2UYR.mjs';
5
- import { renderIcon } from './chunk-T7XZ7H7Y.mjs';
6
- import { useTheme } from './chunk-SOYNZDVY.mjs';
5
+ import { renderIcon } from './chunk-KA7LTET3.mjs';
6
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
7
7
  import { mvs, ms, vs, s } from './chunk-2CE3TQVY.mjs';
8
8
  import React, { useState } from 'react';
9
9
  import { StyleSheet, ScrollView, View, TouchableOpacity, Text } from 'react-native';
@@ -1,7 +1,7 @@
1
1
  import { selectionAsync } from './chunk-EJ7ZPXOH.mjs';
2
2
  import { SPRINGS } from './chunk-DVK4G2GT.mjs';
3
- import { renderIcon } from './chunk-T7XZ7H7Y.mjs';
4
- import { useTheme } from './chunk-SOYNZDVY.mjs';
3
+ import { renderIcon } from './chunk-KA7LTET3.mjs';
4
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
5
5
  import { s } from './chunk-2CE3TQVY.mjs';
6
6
  import React, { useEffect } from 'react';
7
7
  import { StyleSheet, View, TouchableOpacity } from 'react-native';
@@ -1,5 +1,5 @@
1
- import { renderIcon } from './chunk-T7XZ7H7Y.mjs';
2
- import { useTheme } from './chunk-SOYNZDVY.mjs';
1
+ import { renderIcon } from './chunk-KA7LTET3.mjs';
2
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
3
3
  import { mvs, ms, s } from './chunk-2CE3TQVY.mjs';
4
4
  import React from 'react';
5
5
  import { StyleSheet, View, Text } from 'react-native';
@@ -2,8 +2,8 @@ import { PressableChip } from './chunk-3DKJ2GIC.mjs';
2
2
  import { selectionAsync } from './chunk-EJ7ZPXOH.mjs';
3
3
  import { COLOR_TRANSITION } from './chunk-DVK4G2GT.mjs';
4
4
  import { RADIUS } from './chunk-QY3X2UYR.mjs';
5
- import { renderIcon } from './chunk-T7XZ7H7Y.mjs';
6
- import { useTheme } from './chunk-SOYNZDVY.mjs';
5
+ import { renderIcon } from './chunk-KA7LTET3.mjs';
6
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
7
7
  import { ms, mvs, s, vs } from './chunk-2CE3TQVY.mjs';
8
8
  import React from 'react';
9
9
  import { StyleSheet, View, Text, ScrollView } from 'react-native';
@@ -1,6 +1,6 @@
1
1
  import { COLOR_TRANSITION } from './chunk-DVK4G2GT.mjs';
2
- import { renderIcon } from './chunk-T7XZ7H7Y.mjs';
3
- import { useTheme } from './chunk-SOYNZDVY.mjs';
2
+ import { renderIcon } from './chunk-KA7LTET3.mjs';
3
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
4
4
  import { ms, s, vs } from './chunk-2CE3TQVY.mjs';
5
5
  import React, { useState } from 'react';
6
6
  import { Platform, StyleSheet, TouchableOpacity, View, Text, TextInput } from 'react-native';
@@ -1,4 +1,4 @@
1
- import { useTheme } from './chunk-SOYNZDVY.mjs';
1
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
2
2
  import { ms, vs, s } from './chunk-2CE3TQVY.mjs';
3
3
  import React from 'react';
4
4
  import { toast, Toaster } from 'sonner-native';
@@ -1,4 +1,4 @@
1
- import { useTheme } from './chunk-SOYNZDVY.mjs';
1
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
2
2
  import { s, ms } from './chunk-2CE3TQVY.mjs';
3
3
  import React, { useState } from 'react';
4
4
  import { StyleSheet, View, Image, Text } from 'react-native';
@@ -1,6 +1,6 @@
1
1
  import { RADIUS } from './chunk-QY3X2UYR.mjs';
2
- import { renderIcon } from './chunk-T7XZ7H7Y.mjs';
3
- import { useTheme } from './chunk-SOYNZDVY.mjs';
2
+ import { renderIcon } from './chunk-KA7LTET3.mjs';
3
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
4
4
  import { s, vs, ms } from './chunk-2CE3TQVY.mjs';
5
5
  import React from 'react';
6
6
  import { StyleSheet, View, Text, TouchableOpacity } from 'react-native';
@@ -1,7 +1,7 @@
1
1
  import { usePressScale } from './chunk-YNROWHQJ.mjs';
2
2
  import { selectionAsync } from './chunk-EJ7ZPXOH.mjs';
3
3
  import { PRESS_SCALE } from './chunk-DVK4G2GT.mjs';
4
- import { useTheme } from './chunk-SOYNZDVY.mjs';
4
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
5
5
  import { ms, vs, s } from './chunk-2CE3TQVY.mjs';
6
6
  import React, { useState, useRef } from 'react';
7
7
  import { Platform, StyleSheet, View, Text, TouchableOpacity, Modal } from 'react-native';
@@ -1,4 +1,4 @@
1
- import { Input } from './chunk-ZUR7AU5R.mjs';
1
+ import { Input } from './chunk-PGERH3P7.mjs';
2
2
  import { ms, vs } from './chunk-2CE3TQVY.mjs';
3
3
  import React from 'react';
4
4
 
@@ -21,7 +21,8 @@ function CurrencyInput({
21
21
  editable,
22
22
  containerStyle,
23
23
  style,
24
- sheetMode
24
+ sheetMode,
25
+ ...props
25
26
  }) {
26
27
  const handleChange = (text) => {
27
28
  const withoutPrefix = prefix && text.startsWith(prefix) ? text.slice(prefix.length) : text;
@@ -42,6 +43,7 @@ function CurrencyInput({
42
43
  return /* @__PURE__ */ React.createElement(
43
44
  Input,
44
45
  {
46
+ ...props,
45
47
  value: displayValue,
46
48
  onChangeText: handleChange,
47
49
  keyboardType: "numeric",
@@ -1,5 +1,5 @@
1
- import { ToastProvider } from './chunk-2UYENBLV.mjs';
2
- import { ThemeProvider } from './chunk-SOYNZDVY.mjs';
1
+ import { ToastProvider } from './chunk-QSFV2P7O.mjs';
2
+ import { ThemeProvider } from './chunk-EMUWGDWC.mjs';
3
3
  import React from 'react';
4
4
  import { StyleSheet } from 'react-native';
5
5
  import { SafeAreaProvider, initialWindowMetrics } from 'react-native-safe-area-context';
@@ -1,5 +1,5 @@
1
- import { renderIcon } from './chunk-T7XZ7H7Y.mjs';
2
- import { useTheme } from './chunk-SOYNZDVY.mjs';
1
+ import { renderIcon } from './chunk-KA7LTET3.mjs';
2
+ import { useTheme } from './chunk-EMUWGDWC.mjs';
3
3
  import { mvs, ms, s } from './chunk-2CE3TQVY.mjs';
4
4
  import React from 'react';
5
5
  import { StyleSheet, View, Text } from 'react-native';
package/dist/fonts.d.mts CHANGED
@@ -30,11 +30,5 @@
30
30
  declare const SohneFontNames: readonly ["Sohne-ExtraLight", "Sohne-ExtraLightItalic", "Sohne-Light", "Sohne-LightItalic", "Sohne-Regular", "Sohne-Italic", "Sohne-Medium", "Sohne-MediumItalic", "Sohne-SemiBold", "Sohne-SemiBoldItalic", "Sohne-Bold", "Sohne-BoldItalic", "Sohne-ExtraBold", "Sohne-ExtraBoldItalic", "SohneMono-ExtraLight", "SohneMono-ExtraLightItalic", "SohneMono-Light", "SohneMono-LightItalic", "SohneMono-Regular", "SohneMono-Italic", "SohneMono-Medium", "SohneMono-MediumItalic", "SohneMono-SemiBold", "SohneMono-SemiBoldItalic", "SohneMono-Bold", "SohneMono-BoldItalic", "SohneMono-ExtraBold", "SohneMono-ExtraBoldItalic"];
31
31
  /** Type for any valid Sohne font family name */
32
32
  type SohneFontName = (typeof SohneFontNames)[number];
33
- /**
34
- * @deprecated SohneFonts export removed in v10.0.0.
35
- * Metro cannot resolve require() calls from node_modules reliably.
36
- * Copy the static SohneFonts boilerplate from CONSUMER.md into your App.tsx instead.
37
- */
38
- declare const SohneFonts: undefined;
39
33
 
40
- export { type SohneFontName, SohneFontNames, SohneFonts };
34
+ export { type SohneFontName, SohneFontNames };
package/dist/fonts.d.ts CHANGED
@@ -30,11 +30,5 @@
30
30
  declare const SohneFontNames: readonly ["Sohne-ExtraLight", "Sohne-ExtraLightItalic", "Sohne-Light", "Sohne-LightItalic", "Sohne-Regular", "Sohne-Italic", "Sohne-Medium", "Sohne-MediumItalic", "Sohne-SemiBold", "Sohne-SemiBoldItalic", "Sohne-Bold", "Sohne-BoldItalic", "Sohne-ExtraBold", "Sohne-ExtraBoldItalic", "SohneMono-ExtraLight", "SohneMono-ExtraLightItalic", "SohneMono-Light", "SohneMono-LightItalic", "SohneMono-Regular", "SohneMono-Italic", "SohneMono-Medium", "SohneMono-MediumItalic", "SohneMono-SemiBold", "SohneMono-SemiBoldItalic", "SohneMono-Bold", "SohneMono-BoldItalic", "SohneMono-ExtraBold", "SohneMono-ExtraBoldItalic"];
31
31
  /** Type for any valid Sohne font family name */
32
32
  type SohneFontName = (typeof SohneFontNames)[number];
33
- /**
34
- * @deprecated SohneFonts export removed in v10.0.0.
35
- * Metro cannot resolve require() calls from node_modules reliably.
36
- * Copy the static SohneFonts boilerplate from CONSUMER.md into your App.tsx instead.
37
- */
38
- declare const SohneFonts: undefined;
39
33
 
40
- export { type SohneFontName, SohneFontNames, SohneFonts };
34
+ export { type SohneFontName, SohneFontNames };
package/dist/fonts.js CHANGED
@@ -33,7 +33,5 @@ var SohneFontNames = [
33
33
  "SohneMono-ExtraBold",
34
34
  "SohneMono-ExtraBoldItalic"
35
35
  ];
36
- var SohneFonts = void 0;
37
36
 
38
37
  exports.SohneFontNames = SohneFontNames;
39
- exports.SohneFonts = SohneFonts;
package/dist/fonts.mjs CHANGED
@@ -33,6 +33,5 @@ var SohneFontNames = [
33
33
  "SohneMono-ExtraBold",
34
34
  "SohneMono-ExtraBoldItalic"
35
35
  ];
36
- var SohneFonts = void 0;
37
36
 
38
- export { SohneFontNames, SohneFonts };
37
+ export { SohneFontNames };
package/dist/index.d.mts CHANGED
@@ -51,6 +51,9 @@ export { TabBar, TabBarItem, TabBarProps } from './TabBar.mjs';
51
51
  export { ImageViewer, ImageViewerProps } from './ImageViewer.mjs';
52
52
  export { SheetSelect, SheetSelectOption, SheetSelectProps } from './SheetSelect.mjs';
53
53
  export { ImageUpload, ImageUploadProps } from './ImageUpload.mjs';
54
+ export { IconPicker, IconPickerProps } from './IconPicker.mjs';
55
+ export { NumberStepper, NumberStepperProps, NumberStepperSize } from './NumberStepper.mjs';
56
+ export { Stats, StatsGroupProps, StatsProps, StatsVariant } from './Stats.mjs';
54
57
  export { BottomSheetModalProvider, BottomSheetTextInput as SheetTextInput } from '@gorhom/bottom-sheet';
55
58
  export { toast } from 'sonner-native';
56
59
  import 'react-native';
@@ -97,9 +100,12 @@ interface IconProps {
97
100
  * @example configureIconFamilies(['Feather', 'MaterialIcons'])
98
101
  */
99
102
  declare function configureIconFamilies(families: IconFamily[]): void;
103
+ declare function getValidIconNames(families?: IconFamily[]): string[];
100
104
  declare function Icon({ name, size, color, family }: IconProps): React.ReactElement | null;
101
105
  declare function renderIcon(name: string, size: number, color: string): React.ReactElement | null;
102
106
 
107
+ declare function withAlpha(hex: string, alpha: number): string;
108
+
103
109
  /**
104
110
  * Returns a font size that steps down as formatted text grows longer.
105
111
  * Designed for currency/numeric displays where long values overflow.
@@ -386,4 +392,4 @@ type RadiusKey = keyof Radius;
386
392
  type Typography = typeof TYPOGRAPHY;
387
393
  type TypographyKey = keyof Typography;
388
394
 
389
- export { BREAKPOINTS, ColorScheme, ICON_SIZES, Icon, type IconFamily, type IconProps, type IconSize, type IconSizeKey, RADIUS, type Radius, type RadiusKey, ResolvedColors, SHADOWS, SPACING, type Spacing, type SpacingKey, TYPOGRAPHY, Theme, ThemeColors, ThemeProvider, type ThemeProviderProps, type Typography, type TypographyKey, type UseConfirmDialogOptions, type UseConfirmDialogResult, configureIconFamilies, defaultDark, defaultLight, deriveColors, getResponsiveFontSize, impactHeavy, impactLight, impactMedium, notificationError, notificationSuccess, notificationWarning, renderIcon, richHaptics, selectionAsync, useConfirmDialog, useTheme };
395
+ export { BREAKPOINTS, ColorScheme, ICON_SIZES, Icon, type IconFamily, type IconProps, type IconSize, type IconSizeKey, RADIUS, type Radius, type RadiusKey, ResolvedColors, SHADOWS, SPACING, type Spacing, type SpacingKey, TYPOGRAPHY, Theme, ThemeColors, ThemeProvider, type ThemeProviderProps, type Typography, type TypographyKey, type UseConfirmDialogOptions, type UseConfirmDialogResult, configureIconFamilies, defaultDark, defaultLight, deriveColors, getResponsiveFontSize, getValidIconNames, impactHeavy, impactLight, impactMedium, notificationError, notificationSuccess, notificationWarning, renderIcon, richHaptics, selectionAsync, useConfirmDialog, useTheme, withAlpha };
package/dist/index.d.ts CHANGED
@@ -51,6 +51,9 @@ export { TabBar, TabBarItem, TabBarProps } from './TabBar.js';
51
51
  export { ImageViewer, ImageViewerProps } from './ImageViewer.js';
52
52
  export { SheetSelect, SheetSelectOption, SheetSelectProps } from './SheetSelect.js';
53
53
  export { ImageUpload, ImageUploadProps } from './ImageUpload.js';
54
+ export { IconPicker, IconPickerProps } from './IconPicker.js';
55
+ export { NumberStepper, NumberStepperProps, NumberStepperSize } from './NumberStepper.js';
56
+ export { Stats, StatsGroupProps, StatsProps, StatsVariant } from './Stats.js';
54
57
  export { BottomSheetModalProvider, BottomSheetTextInput as SheetTextInput } from '@gorhom/bottom-sheet';
55
58
  export { toast } from 'sonner-native';
56
59
  import 'react-native';
@@ -97,9 +100,12 @@ interface IconProps {
97
100
  * @example configureIconFamilies(['Feather', 'MaterialIcons'])
98
101
  */
99
102
  declare function configureIconFamilies(families: IconFamily[]): void;
103
+ declare function getValidIconNames(families?: IconFamily[]): string[];
100
104
  declare function Icon({ name, size, color, family }: IconProps): React.ReactElement | null;
101
105
  declare function renderIcon(name: string, size: number, color: string): React.ReactElement | null;
102
106
 
107
+ declare function withAlpha(hex: string, alpha: number): string;
108
+
103
109
  /**
104
110
  * Returns a font size that steps down as formatted text grows longer.
105
111
  * Designed for currency/numeric displays where long values overflow.
@@ -386,4 +392,4 @@ type RadiusKey = keyof Radius;
386
392
  type Typography = typeof TYPOGRAPHY;
387
393
  type TypographyKey = keyof Typography;
388
394
 
389
- export { BREAKPOINTS, ColorScheme, ICON_SIZES, Icon, type IconFamily, type IconProps, type IconSize, type IconSizeKey, RADIUS, type Radius, type RadiusKey, ResolvedColors, SHADOWS, SPACING, type Spacing, type SpacingKey, TYPOGRAPHY, Theme, ThemeColors, ThemeProvider, type ThemeProviderProps, type Typography, type TypographyKey, type UseConfirmDialogOptions, type UseConfirmDialogResult, configureIconFamilies, defaultDark, defaultLight, deriveColors, getResponsiveFontSize, impactHeavy, impactLight, impactMedium, notificationError, notificationSuccess, notificationWarning, renderIcon, richHaptics, selectionAsync, useConfirmDialog, useTheme };
395
+ export { BREAKPOINTS, ColorScheme, ICON_SIZES, Icon, type IconFamily, type IconProps, type IconSize, type IconSizeKey, RADIUS, type Radius, type RadiusKey, ResolvedColors, SHADOWS, SPACING, type Spacing, type SpacingKey, TYPOGRAPHY, Theme, ThemeColors, ThemeProvider, type ThemeProviderProps, type Typography, type TypographyKey, type UseConfirmDialogOptions, type UseConfirmDialogResult, configureIconFamilies, defaultDark, defaultLight, deriveColors, getResponsiveFontSize, getValidIconNames, impactHeavy, impactLight, impactMedium, notificationError, notificationSuccess, notificationWarning, renderIcon, richHaptics, selectionAsync, useConfirmDialog, useTheme, withAlpha };