@retray-dev/ui-kit 10.2.0 → 12.2.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 (220) hide show
  1. package/COMPONENTS.md +384 -40
  2. package/README.md +14 -5
  3. package/dist/Accordion.d.mts +6 -0
  4. package/dist/Accordion.d.ts +6 -0
  5. package/dist/Accordion.js +16 -0
  6. package/dist/Accordion.mjs +2 -2
  7. package/dist/AlertBanner.js +2 -0
  8. package/dist/AlertBanner.mjs +2 -2
  9. package/dist/AppHeader.js +2 -0
  10. package/dist/AppHeader.mjs +3 -3
  11. package/dist/Avatar.js +2 -0
  12. package/dist/Avatar.mjs +2 -2
  13. package/dist/Badge.js +2 -0
  14. package/dist/Badge.mjs +2 -2
  15. package/dist/Button.js +17 -17
  16. package/dist/Button.mjs +2 -2
  17. package/dist/Card.js +2 -0
  18. package/dist/Card.mjs +2 -2
  19. package/dist/CategoryStrip.js +2 -0
  20. package/dist/CategoryStrip.mjs +2 -2
  21. package/dist/Checkbox.js +2 -0
  22. package/dist/Checkbox.mjs +2 -2
  23. package/dist/Chip.js +2 -0
  24. package/dist/Chip.mjs +2 -2
  25. package/dist/ConfirmDialog.d.mts +1 -6
  26. package/dist/ConfirmDialog.d.ts +1 -6
  27. package/dist/ConfirmDialog.js +53 -41
  28. package/dist/ConfirmDialog.mjs +3 -3
  29. package/dist/CurrencyDisplay.js +2 -0
  30. package/dist/CurrencyDisplay.mjs +2 -2
  31. package/dist/CurrencyInput.d.mts +3 -8
  32. package/dist/CurrencyInput.d.ts +3 -8
  33. package/dist/CurrencyInput.js +5 -1
  34. package/dist/CurrencyInput.mjs +3 -3
  35. package/dist/DetailRow.js +2 -0
  36. package/dist/DetailRow.mjs +2 -2
  37. package/dist/EmptyState.js +17 -17
  38. package/dist/EmptyState.mjs +3 -3
  39. package/dist/ErrorBoundary.js +2 -0
  40. package/dist/ErrorBoundary.mjs +2 -2
  41. package/dist/Form.js +2 -0
  42. package/dist/Form.mjs +2 -2
  43. package/dist/IconButton.js +2 -0
  44. package/dist/IconButton.mjs +2 -2
  45. package/dist/IconPicker.js +677 -248
  46. package/dist/IconPicker.mjs +3 -2
  47. package/dist/ImageUpload.d.mts +3 -1
  48. package/dist/ImageUpload.d.ts +3 -1
  49. package/dist/ImageUpload.js +10 -3
  50. package/dist/ImageUpload.mjs +3 -3
  51. package/dist/ImageViewer.js +2 -0
  52. package/dist/ImageViewer.mjs +4 -4
  53. package/dist/Input.js +2 -0
  54. package/dist/Input.mjs +2 -2
  55. package/dist/LabelValue.js +2 -0
  56. package/dist/LabelValue.mjs +2 -2
  57. package/dist/ListGroup.js +2 -0
  58. package/dist/ListGroup.mjs +2 -2
  59. package/dist/ListItem.d.mts +7 -7
  60. package/dist/ListItem.d.ts +7 -7
  61. package/dist/ListItem.js +14 -7
  62. package/dist/ListItem.mjs +2 -2
  63. package/dist/MediaCard.js +2 -0
  64. package/dist/MediaCard.mjs +2 -2
  65. package/dist/MenuGroup.js +2 -0
  66. package/dist/MenuGroup.mjs +2 -2
  67. package/dist/MenuItem.js +2 -0
  68. package/dist/MenuItem.mjs +2 -2
  69. package/dist/MonthPicker.js +2 -0
  70. package/dist/MonthPicker.mjs +2 -2
  71. package/dist/NumberStepper.js +2 -0
  72. package/dist/NumberStepper.mjs +2 -2
  73. package/dist/PagerDots.js +2 -0
  74. package/dist/PagerDots.mjs +2 -2
  75. package/dist/Pressable.d.mts +15 -7
  76. package/dist/Pressable.d.ts +15 -7
  77. package/dist/Pressable.js +7 -3
  78. package/dist/Pressable.mjs +1 -1
  79. package/dist/PricingCard.js +17 -17
  80. package/dist/PricingCard.mjs +4 -4
  81. package/dist/Progress.js +2 -0
  82. package/dist/Progress.mjs +2 -2
  83. package/dist/RadioGroup.js +2 -0
  84. package/dist/RadioGroup.mjs +2 -2
  85. package/dist/RetrayProvider.d.mts +1 -1
  86. package/dist/RetrayProvider.d.ts +1 -1
  87. package/dist/RetrayProvider.js +2 -0
  88. package/dist/RetrayProvider.mjs +3 -3
  89. package/dist/Select.js +2 -0
  90. package/dist/Select.mjs +2 -2
  91. package/dist/SelectableCard.d.mts +27 -0
  92. package/dist/SelectableCard.d.ts +27 -0
  93. package/dist/SelectableCard.js +511 -0
  94. package/dist/SelectableCard.mjs +8 -0
  95. package/dist/SelectableGrid.js +2 -0
  96. package/dist/SelectableGrid.mjs +2 -2
  97. package/dist/Separator.js +2 -0
  98. package/dist/Separator.mjs +2 -2
  99. package/dist/Sheet.d.mts +4 -46
  100. package/dist/Sheet.d.ts +4 -46
  101. package/dist/Sheet.js +55 -115
  102. package/dist/Sheet.mjs +2 -3
  103. package/dist/SheetSelect.js +2 -0
  104. package/dist/SheetSelect.mjs +2 -2
  105. package/dist/Skeleton.d.mts +3 -1
  106. package/dist/Skeleton.d.ts +3 -1
  107. package/dist/Skeleton.js +5 -2
  108. package/dist/Skeleton.mjs +2 -2
  109. package/dist/Slider.js +2 -0
  110. package/dist/Slider.mjs +2 -2
  111. package/dist/Spinner.js +2 -0
  112. package/dist/Spinner.mjs +2 -2
  113. package/dist/Stats.d.mts +33 -0
  114. package/dist/Stats.d.ts +33 -0
  115. package/dist/Stats.js +453 -0
  116. package/dist/Stats.mjs +9 -0
  117. package/dist/Switch.js +2 -0
  118. package/dist/Switch.mjs +2 -2
  119. package/dist/TabBar.js +2 -0
  120. package/dist/TabBar.mjs +2 -2
  121. package/dist/Tabs.js +2 -0
  122. package/dist/Tabs.mjs +2 -2
  123. package/dist/Text.d.mts +3 -1
  124. package/dist/Text.d.ts +3 -1
  125. package/dist/Text.js +5 -3
  126. package/dist/Text.mjs +2 -2
  127. package/dist/Textarea.js +2 -0
  128. package/dist/Textarea.mjs +2 -2
  129. package/dist/Toast.js +2 -0
  130. package/dist/Toast.mjs +2 -2
  131. package/dist/Toggle.js +2 -0
  132. package/dist/Toggle.mjs +2 -2
  133. package/dist/{chunk-U2XJFYED.mjs → chunk-2BA3JMKK.mjs} +1 -1
  134. package/dist/{chunk-NMU5FMQJ.mjs → chunk-2HFD4IHU.mjs} +4 -2
  135. package/dist/{chunk-S2R7UVOE.mjs → chunk-2LG326TT.mjs} +1 -1
  136. package/dist/chunk-2P2CB235.mjs +236 -0
  137. package/dist/{chunk-6L4G6PBT.mjs → chunk-3XCFYSX4.mjs} +1 -1
  138. package/dist/{chunk-HTHGSXFG.mjs → chunk-4J2PXL36.mjs} +16 -18
  139. package/dist/{chunk-BEMIQXXU.mjs → chunk-4OORJ2DY.mjs} +1 -1
  140. package/dist/chunk-4XOB5TTD.mjs +166 -0
  141. package/dist/{chunk-FCSSQK3L.mjs → chunk-57V2LXCK.mjs} +1 -1
  142. package/dist/{chunk-6Q64UFIA.mjs → chunk-7AFZWSCI.mjs} +1 -1
  143. package/dist/{chunk-IX3NYLYQ.mjs → chunk-7ELGZ66G.mjs} +1 -1
  144. package/dist/{chunk-GD6KXMG5.mjs → chunk-AENAVIKT.mjs} +1 -1
  145. package/dist/{chunk-ID72TK46.mjs → chunk-BXF4AMHY.mjs} +1 -1
  146. package/dist/{chunk-SOA2Z4RB.mjs → chunk-C43HRKXH.mjs} +1 -1
  147. package/dist/{chunk-TZDGAP5N.mjs → chunk-CF27NBXO.mjs} +11 -6
  148. package/dist/{chunk-SXLKNTA4.mjs → chunk-DF7JA72E.mjs} +1 -1
  149. package/dist/{chunk-AJRVDP2H.mjs → chunk-E5UKLSJZ.mjs} +3 -3
  150. package/dist/{chunk-MBMXYJJV.mjs → chunk-E7NEHHXV.mjs} +7 -3
  151. package/dist/{chunk-VKID2D2I.mjs → chunk-EDLCGYIO.mjs} +13 -8
  152. package/dist/{chunk-BUMAMSTZ.mjs → chunk-ELGEOM7I.mjs} +1 -1
  153. package/dist/{chunk-DYT7BG5I.mjs → chunk-F3YTWO3T.mjs} +1 -1
  154. package/dist/{chunk-VF2ATYN3.mjs → chunk-GH67YXG6.mjs} +1 -1
  155. package/dist/{chunk-WJLKJMKR.mjs → chunk-GUTDFUNF.mjs} +4 -4
  156. package/dist/{chunk-6SECQ2ZF.mjs → chunk-HC4VVCWY.mjs} +2 -2
  157. package/dist/{chunk-A3A6KNQN.mjs → chunk-HEDQPK4I.mjs} +1 -1
  158. package/dist/{chunk-GQYFLP3D.mjs → chunk-IVSRW4HS.mjs} +1 -1
  159. package/dist/{chunk-KOO4WITD.mjs → chunk-KSUWPU2F.mjs} +1 -1
  160. package/dist/{chunk-WBOOUHSS.mjs → chunk-LIS6I5UP.mjs} +1 -1
  161. package/dist/{chunk-X4G6APW6.mjs → chunk-LNPKGWBG.mjs} +1 -1
  162. package/dist/{chunk-T2KCAHOS.mjs → chunk-LOBLCFMN.mjs} +1 -1
  163. package/dist/{chunk-ELXBDILQ.mjs → chunk-LPV4NJJK.mjs} +2 -2
  164. package/dist/{chunk-Y2NS74WS.mjs → chunk-M3C7XM2M.mjs} +53 -99
  165. package/dist/{chunk-BRKYVJVV.mjs → chunk-MEPSKGBO.mjs} +1 -1
  166. package/dist/{chunk-TBNZHU6C.mjs → chunk-MVMGPZN6.mjs} +2 -2
  167. package/dist/{chunk-YJ7I257J.mjs → chunk-NHDI3VQB.mjs} +15 -1
  168. package/dist/{chunk-Z6SFHN6T.mjs → chunk-NJG7DHVF.mjs} +1 -1
  169. package/dist/{chunk-RYZC432S.mjs → chunk-NLZY4TXU.mjs} +1 -1
  170. package/dist/{chunk-ZZ2R6KZ3.mjs → chunk-OLVJFKXS.mjs} +1 -1
  171. package/dist/{chunk-AJ7ZDNBT.mjs → chunk-QDAZGZUF.mjs} +4 -3
  172. package/dist/{chunk-JT7HKXRB.mjs → chunk-QOLWA2PW.mjs} +1 -1
  173. package/dist/{chunk-WYEUNUTP.mjs → chunk-QXDGGOLC.mjs} +38 -25
  174. package/dist/{chunk-JMOZEC77.mjs → chunk-RJNLAH76.mjs} +1 -1
  175. package/dist/{chunk-WF2XDFRK.mjs → chunk-RMRS44MQ.mjs} +1 -1
  176. package/dist/chunk-SAWUXP3A.mjs +1114 -0
  177. package/dist/{chunk-OB4JUQ3O.mjs → chunk-TS7DGUIR.mjs} +1 -1
  178. package/dist/{chunk-AV4EMIRH.mjs → chunk-UBUXUMER.mjs} +1 -1
  179. package/dist/{chunk-IRRY3CRZ.mjs → chunk-ULGNQPNE.mjs} +1 -1
  180. package/dist/{chunk-7LWRKMF5.mjs → chunk-UNNRUJTM.mjs} +1 -1
  181. package/dist/{chunk-TB6SD2FT.mjs → chunk-UQ4742ET.mjs} +1 -1
  182. package/dist/{chunk-MX6HRKMI.mjs → chunk-VJBUCITV.mjs} +1 -1
  183. package/dist/{chunk-2UYENBLV.mjs → chunk-YMYIEVZP.mjs} +1 -1
  184. package/dist/{chunk-SOYNZDVY.mjs → chunk-YTXRIXNZ.mjs} +8 -1
  185. package/dist/{chunk-YFZ3ELX5.mjs → chunk-ZIMY2QUM.mjs} +2 -2
  186. package/dist/{chunk-Z4VHZ7B5.mjs → chunk-ZR6HSEAB.mjs} +1 -1
  187. package/dist/fonts.d.mts +1 -7
  188. package/dist/fonts.d.ts +1 -7
  189. package/dist/fonts.js +0 -2
  190. package/dist/fonts.mjs +1 -2
  191. package/dist/{index-wt-orHUi.d.ts → index-CY34hxPN.d.mts} +1 -0
  192. package/dist/{index-wt-orHUi.d.mts → index-CY34hxPN.d.ts} +1 -0
  193. package/dist/index.d.mts +7 -3
  194. package/dist/index.d.ts +7 -3
  195. package/dist/index.js +1517 -761
  196. package/dist/index.mjs +54 -52
  197. package/package.json +3 -3
  198. package/src/components/Accordion/Accordion.tsx +20 -0
  199. package/src/components/Button/Button.tsx +29 -26
  200. package/src/components/ConfirmDialog/ConfirmDialog.tsx +47 -31
  201. package/src/components/CurrencyInput/CurrencyInput.tsx +4 -7
  202. package/src/components/IconPicker/IconPicker.tsx +124 -112
  203. package/src/components/ImageUpload/ImageUpload.tsx +10 -3
  204. package/src/components/ListItem/ListItem.tsx +43 -28
  205. package/src/components/Pressable/Pressable.tsx +20 -8
  206. package/src/components/SelectableCard/SelectableCard.tsx +304 -0
  207. package/src/components/SelectableCard/index.ts +1 -0
  208. package/src/components/Sheet/Sheet.tsx +72 -173
  209. package/src/components/Skeleton/Skeleton.tsx +5 -2
  210. package/src/components/Stats/Stats.tsx +254 -0
  211. package/src/components/Stats/index.ts +2 -0
  212. package/src/components/Text/Text.tsx +4 -2
  213. package/src/fonts.ts +0 -7
  214. package/src/index.ts +5 -0
  215. package/src/theme/colorUtils.ts +9 -0
  216. package/src/theme/colors.ts +7 -0
  217. package/src/theme/types.ts +4 -1
  218. package/src/utils/curatedIcons.ts +698 -135
  219. package/src/utils/fontGuard.ts +2 -1
  220. package/dist/chunk-53Z3NYGE.mjs +0 -742
@@ -1,7 +1,8 @@
1
- export { IconPicker } from './chunk-53Z3NYGE.mjs';
1
+ export { IconPicker } from './chunk-SAWUXP3A.mjs';
2
+ import './chunk-LIS6I5UP.mjs';
2
3
  import './chunk-EJ7ZPXOH.mjs';
3
4
  import './chunk-QY3X2UYR.mjs';
4
5
  import './chunk-KA7LTET3.mjs';
5
- import './chunk-SOYNZDVY.mjs';
6
+ import './chunk-YTXRIXNZ.mjs';
6
7
  import './chunk-2CE3TQVY.mjs';
7
8
  import './chunk-Y6FXYEAI.mjs';
@@ -20,10 +20,12 @@ interface ImageUploadProps {
20
20
  borderRadius?: number;
21
21
  /** Aspect ratio for the selected image. Defaults to 'cover'. */
22
22
  resizeMode?: 'cover' | 'contain' | 'stretch';
23
+ /** Whether to allow the user to crop the image after selecting. Defaults to true. */
24
+ allowsEditing?: boolean;
23
25
  disabled?: boolean;
24
26
  style?: ViewStyle;
25
27
  accessibilityLabel?: string;
26
28
  }
27
- declare function ImageUpload({ value, onChange, loading, placeholder, showPlaceholderText, width, height, borderRadius, resizeMode, disabled, style, accessibilityLabel, }: ImageUploadProps): React.JSX.Element;
29
+ declare function ImageUpload({ value, onChange, loading, placeholder, showPlaceholderText, width, height, borderRadius, resizeMode, allowsEditing, disabled, style, accessibilityLabel, }: ImageUploadProps): React.JSX.Element;
28
30
 
29
31
  export { ImageUpload, type ImageUploadProps };
@@ -20,10 +20,12 @@ interface ImageUploadProps {
20
20
  borderRadius?: number;
21
21
  /** Aspect ratio for the selected image. Defaults to 'cover'. */
22
22
  resizeMode?: 'cover' | 'contain' | 'stretch';
23
+ /** Whether to allow the user to crop the image after selecting. Defaults to true. */
24
+ allowsEditing?: boolean;
23
25
  disabled?: boolean;
24
26
  style?: ViewStyle;
25
27
  accessibilityLabel?: string;
26
28
  }
27
- declare function ImageUpload({ value, onChange, loading, placeholder, showPlaceholderText, width, height, borderRadius, resizeMode, disabled, style, accessibilityLabel, }: ImageUploadProps): React.JSX.Element;
29
+ declare function ImageUpload({ value, onChange, loading, placeholder, showPlaceholderText, width, height, borderRadius, resizeMode, allowsEditing, disabled, style, accessibilityLabel, }: ImageUploadProps): React.JSX.Element;
28
30
 
29
31
  export { ImageUpload, type ImageUploadProps };
@@ -151,6 +151,7 @@ function deriveColors(t, scheme) {
151
151
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
152
152
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
153
153
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
154
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
154
155
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
155
156
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
156
157
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -163,6 +164,7 @@ function deriveColors(t, scheme) {
163
164
  foregroundMuted,
164
165
  surface,
165
166
  surfaceStrong,
167
+ skeleton,
166
168
  destructiveTint,
167
169
  destructiveBorder,
168
170
  successTint,
@@ -305,11 +307,13 @@ function ImageUpload({
305
307
  height = 200,
306
308
  borderRadius = RADIUS.lg,
307
309
  resizeMode = "cover",
310
+ allowsEditing = true,
308
311
  disabled = false,
309
312
  style,
310
313
  accessibilityLabel
311
314
  }) {
312
315
  const { colors } = useTheme();
316
+ const [imageLoaded, setImageLoaded] = React3.useState(false);
313
317
  const handlePress = async () => {
314
318
  if (disabled || loading) return;
315
319
  impactLight();
@@ -334,10 +338,11 @@ function ImageUpload({
334
338
  }
335
339
  const result = await picker.launchImageLibraryAsync({
336
340
  mediaTypes: ["images"],
337
- allowsEditing: true,
341
+ allowsEditing,
338
342
  quality: 0.8
339
343
  });
340
344
  if (!result.canceled && result.assets?.[0]) {
345
+ setImageLoaded(false);
341
346
  onChange?.(result.assets[0].uri);
342
347
  }
343
348
  };
@@ -348,7 +353,7 @@ function ImageUpload({
348
353
  borderWidth: value ? 0 : 1,
349
354
  borderStyle: "dashed",
350
355
  borderColor: colors.border,
351
- backgroundColor: value ? "transparent" : colors.surface,
356
+ backgroundColor: value && imageLoaded ? "transparent" : colors.surface,
352
357
  overflow: "hidden"
353
358
  };
354
359
  return /* @__PURE__ */ React3__default.default.createElement(
@@ -368,7 +373,9 @@ function ImageUpload({
368
373
  {
369
374
  source: { uri: value },
370
375
  style: [reactNative.StyleSheet.absoluteFillObject, { borderRadius }],
371
- resizeMode
376
+ resizeMode,
377
+ onLoad: () => setImageLoaded(true),
378
+ onError: () => setImageLoaded(true)
372
379
  }
373
380
  ) : /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.placeholder }, /* @__PURE__ */ React3__default.default.createElement(vectorIcons.Feather, { name: "image", size: ms(28), color: colors.foregroundMuted }), showPlaceholderText ? /* @__PURE__ */ React3__default.default.createElement(
374
381
  reactNative.Text,
@@ -1,9 +1,9 @@
1
- export { ImageUpload } from './chunk-TZDGAP5N.mjs';
2
- import './chunk-WBOOUHSS.mjs';
1
+ export { ImageUpload } from './chunk-CF27NBXO.mjs';
2
+ import './chunk-LIS6I5UP.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
- import './chunk-SOYNZDVY.mjs';
7
+ import './chunk-YTXRIXNZ.mjs';
8
8
  import './chunk-2CE3TQVY.mjs';
9
9
  import './chunk-Y6FXYEAI.mjs';
@@ -175,6 +175,7 @@ function deriveColors(t, scheme) {
175
175
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
176
176
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
177
177
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
178
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
178
179
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
179
180
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
180
181
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -187,6 +188,7 @@ function deriveColors(t, scheme) {
187
188
  foregroundMuted,
188
189
  surface,
189
190
  surfaceStrong,
191
+ skeleton,
190
192
  destructiveTint,
191
193
  destructiveBorder,
192
194
  successTint,
@@ -1,10 +1,10 @@
1
- export { ImageViewer } from './chunk-ELXBDILQ.mjs';
2
- import './chunk-ZZ2R6KZ3.mjs';
3
- import './chunk-T2KCAHOS.mjs';
1
+ export { ImageViewer } from './chunk-LPV4NJJK.mjs';
2
+ import './chunk-OLVJFKXS.mjs';
3
+ import './chunk-LOBLCFMN.mjs';
4
4
  import './chunk-3DKJ2GIC.mjs';
5
5
  import './chunk-EJ7ZPXOH.mjs';
6
6
  import './chunk-DVK4G2GT.mjs';
7
7
  import './chunk-KA7LTET3.mjs';
8
- import './chunk-SOYNZDVY.mjs';
8
+ import './chunk-YTXRIXNZ.mjs';
9
9
  import './chunk-2CE3TQVY.mjs';
10
10
  import './chunk-Y6FXYEAI.mjs';
package/dist/Input.js CHANGED
@@ -105,6 +105,7 @@ function deriveColors(t, scheme) {
105
105
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
106
106
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
107
107
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
108
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
108
109
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
109
110
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
110
111
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -117,6 +118,7 @@ function deriveColors(t, scheme) {
117
118
  foregroundMuted,
118
119
  surface,
119
120
  surfaceStrong,
121
+ skeleton,
120
122
  destructiveTint,
121
123
  destructiveBorder,
122
124
  successTint,
package/dist/Input.mjs CHANGED
@@ -1,6 +1,6 @@
1
- export { Input } from './chunk-SXLKNTA4.mjs';
1
+ export { Input } from './chunk-DF7JA72E.mjs';
2
2
  import './chunk-DVK4G2GT.mjs';
3
3
  import './chunk-KA7LTET3.mjs';
4
- import './chunk-SOYNZDVY.mjs';
4
+ import './chunk-YTXRIXNZ.mjs';
5
5
  import './chunk-2CE3TQVY.mjs';
6
6
  import './chunk-Y6FXYEAI.mjs';
@@ -101,6 +101,7 @@ function deriveColors(t, scheme) {
101
101
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
102
102
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
103
103
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
104
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
104
105
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
105
106
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
106
107
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -113,6 +114,7 @@ function deriveColors(t, scheme) {
113
114
  foregroundMuted,
114
115
  surface,
115
116
  surfaceStrong,
117
+ skeleton,
116
118
  destructiveTint,
117
119
  destructiveBorder,
118
120
  successTint,
@@ -1,5 +1,5 @@
1
- export { LabelValue } from './chunk-FCSSQK3L.mjs';
1
+ export { LabelValue } from './chunk-57V2LXCK.mjs';
2
2
  import './chunk-KA7LTET3.mjs';
3
- import './chunk-SOYNZDVY.mjs';
3
+ import './chunk-YTXRIXNZ.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
5
5
  import './chunk-Y6FXYEAI.mjs';
package/dist/ListGroup.js CHANGED
@@ -89,6 +89,7 @@ function deriveColors(t, scheme) {
89
89
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
90
90
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
91
91
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
92
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
92
93
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
93
94
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
94
95
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -101,6 +102,7 @@ function deriveColors(t, scheme) {
101
102
  foregroundMuted,
102
103
  surface,
103
104
  surfaceStrong,
105
+ skeleton,
104
106
  destructiveTint,
105
107
  destructiveBorder,
106
108
  successTint,
@@ -1,5 +1,5 @@
1
- export { ListGroup, ListGroupFooter, ListGroupHeader } from './chunk-SOA2Z4RB.mjs';
1
+ export { ListGroup, ListGroupFooter, ListGroupHeader } from './chunk-C43HRKXH.mjs';
2
2
  import './chunk-QY3X2UYR.mjs';
3
- import './chunk-SOYNZDVY.mjs';
3
+ import './chunk-YTXRIXNZ.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
5
5
  import './chunk-Y6FXYEAI.mjs';
@@ -15,13 +15,13 @@ interface ListItemProps {
15
15
  leftRender?: React.ReactNode;
16
16
  /**
17
17
  * Arbitrary content rendered on the right (badge, price, chevron, switch, etc.).
18
- * Replaces the old `trailing` prop (still accepted as an alias).
19
18
  */
20
19
  rightRender?: React.ReactNode | string;
21
- /** @deprecated Use `rightRender` instead. */
22
- trailing?: React.ReactNode | string;
23
- /** @deprecated Use `leftRender` instead. */
24
- icon?: React.ReactNode;
20
+ /**
21
+ * Multiple action buttons rendered on the right with automatic gap.
22
+ * Takes precedence over `rightRender` and `showChevron`.
23
+ */
24
+ rightActions?: React.ReactNode[];
25
25
  /**
26
26
  * Icon name from `@expo/vector-icons` rendered in the left slot.
27
27
  * See https://icons.expo.fyi. Takes precedence over `leftRender`.
@@ -46,7 +46,7 @@ interface ListItemProps {
46
46
  * - `card`: standalone surface with background, border and shadow.
47
47
  */
48
48
  variant?: ListItemVariant;
49
- /** Show a right-pointing chevron on the far right. Ignored when `rightRender` / `trailing` is set. */
49
+ /** Show a right-pointing chevron on the far right. Ignored when `rightRender` / `rightActions` / `rightIcon` is set. */
50
50
  showChevron?: boolean;
51
51
  /** Visual separator line at the bottom of the item. Useful when rendering multiple plain items in a list. */
52
52
  showSeparator?: boolean;
@@ -65,7 +65,7 @@ interface ListItemProps {
65
65
  /** Accessibility label override. Defaults to the title. */
66
66
  accessibilityLabel?: string;
67
67
  }
68
- declare function ListItemBase({ imageSource, leftRender, rightRender, trailing, icon, leftIcon, rightIcon, leftIconColor, rightIconColor, title, subtitle, caption, variant, showChevron, showSeparator, onPress, disabled, style, titleStyle, subtitleStyle, subtitleNumberOfLines, captionStyle, accessibilityLabel, }: ListItemProps): React.JSX.Element;
68
+ declare function ListItemBase({ imageSource, leftRender, rightRender, rightActions, leftIcon, rightIcon, leftIconColor, rightIconColor, title, subtitle, caption, variant, showChevron, showSeparator, onPress, disabled, style, titleStyle, subtitleStyle, subtitleNumberOfLines, captionStyle, accessibilityLabel, }: ListItemProps): React.JSX.Element;
69
69
  declare const ListItem: React.MemoExoticComponent<typeof ListItemBase>;
70
70
 
71
71
  export { ListItem, type ListItemProps };
@@ -15,13 +15,13 @@ interface ListItemProps {
15
15
  leftRender?: React.ReactNode;
16
16
  /**
17
17
  * Arbitrary content rendered on the right (badge, price, chevron, switch, etc.).
18
- * Replaces the old `trailing` prop (still accepted as an alias).
19
18
  */
20
19
  rightRender?: React.ReactNode | string;
21
- /** @deprecated Use `rightRender` instead. */
22
- trailing?: React.ReactNode | string;
23
- /** @deprecated Use `leftRender` instead. */
24
- icon?: React.ReactNode;
20
+ /**
21
+ * Multiple action buttons rendered on the right with automatic gap.
22
+ * Takes precedence over `rightRender` and `showChevron`.
23
+ */
24
+ rightActions?: React.ReactNode[];
25
25
  /**
26
26
  * Icon name from `@expo/vector-icons` rendered in the left slot.
27
27
  * See https://icons.expo.fyi. Takes precedence over `leftRender`.
@@ -46,7 +46,7 @@ interface ListItemProps {
46
46
  * - `card`: standalone surface with background, border and shadow.
47
47
  */
48
48
  variant?: ListItemVariant;
49
- /** Show a right-pointing chevron on the far right. Ignored when `rightRender` / `trailing` is set. */
49
+ /** Show a right-pointing chevron on the far right. Ignored when `rightRender` / `rightActions` / `rightIcon` is set. */
50
50
  showChevron?: boolean;
51
51
  /** Visual separator line at the bottom of the item. Useful when rendering multiple plain items in a list. */
52
52
  showSeparator?: boolean;
@@ -65,7 +65,7 @@ interface ListItemProps {
65
65
  /** Accessibility label override. Defaults to the title. */
66
66
  accessibilityLabel?: string;
67
67
  }
68
- declare function ListItemBase({ imageSource, leftRender, rightRender, trailing, icon, leftIcon, rightIcon, leftIconColor, rightIconColor, title, subtitle, caption, variant, showChevron, showSeparator, onPress, disabled, style, titleStyle, subtitleStyle, subtitleNumberOfLines, captionStyle, accessibilityLabel, }: ListItemProps): React.JSX.Element;
68
+ declare function ListItemBase({ imageSource, leftRender, rightRender, rightActions, leftIcon, rightIcon, leftIconColor, rightIconColor, title, subtitle, caption, variant, showChevron, showSeparator, onPress, disabled, style, titleStyle, subtitleStyle, subtitleNumberOfLines, captionStyle, accessibilityLabel, }: ListItemProps): React.JSX.Element;
69
69
  declare const ListItem: React.MemoExoticComponent<typeof ListItemBase>;
70
70
 
71
71
  export { ListItem, type ListItemProps };
package/dist/ListItem.js CHANGED
@@ -163,6 +163,7 @@ function deriveColors(t, scheme) {
163
163
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
164
164
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
165
165
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
166
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
166
167
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
167
168
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
168
169
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -175,6 +176,7 @@ function deriveColors(t, scheme) {
175
176
  foregroundMuted,
176
177
  surface,
177
178
  surfaceStrong,
179
+ skeleton,
178
180
  destructiveTint,
179
181
  destructiveBorder,
180
182
  successTint,
@@ -297,8 +299,7 @@ function ListItemBase({
297
299
  imageSource,
298
300
  leftRender,
299
301
  rightRender,
300
- trailing,
301
- icon,
302
+ rightActions,
302
303
  leftIcon,
303
304
  rightIcon,
304
305
  leftIconColor,
@@ -323,8 +324,8 @@ function ListItemBase({
323
324
  selectionAsync();
324
325
  onPress?.();
325
326
  };
326
- const effectiveLeft = imageSource ? /* @__PURE__ */ React3__default.default.createElement(reactNative.Image, { source: imageSource, style: styles.image }) : leftIcon ? renderIcon(leftIcon, 24, leftIconColor ?? colors.foreground) : leftRender ?? icon;
327
- const effectiveRight = rightIcon ? renderIcon(rightIcon, 24, rightIconColor ?? colors.foregroundMuted) : rightRender ?? trailing;
327
+ const effectiveLeft = imageSource ? /* @__PURE__ */ React3__default.default.createElement(reactNative.Image, { source: imageSource, style: styles.image }) : leftIcon ? renderIcon(leftIcon, 24, leftIconColor ?? colors.foreground) : leftRender;
328
+ const hasRightContent = !!(rightIcon || rightActions && rightActions.length > 0 || rightRender !== void 0 || showChevron);
328
329
  const cardStyle = variant === "card" ? {
329
330
  backgroundColor: colors.card,
330
331
  borderRadius: RADIUS.md,
@@ -361,14 +362,14 @@ function ListItemBase({
361
362
  allowFontScaling: true
362
363
  },
363
364
  caption
364
- ) : null), effectiveRight !== void 0 ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles.rightContainer }, typeof effectiveRight === "string" ? /* @__PURE__ */ React3__default.default.createElement(
365
+ ) : null), hasRightContent ? rightIcon ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles.rightContainer }, renderIcon(rightIcon, 24, rightIconColor ?? colors.foregroundMuted)) : rightActions && rightActions.length > 0 ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles.rightActionsContainer }, rightActions.map((action, i) => /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, { key: i }, action))) : rightRender !== void 0 ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles.rightContainer }, typeof rightRender === "string" ? /* @__PURE__ */ React3__default.default.createElement(
365
366
  reactNative.Text,
366
367
  {
367
368
  style: [styles.rightText, { color: colors.foregroundMuted }],
368
369
  allowFontScaling: true
369
370
  },
370
- effectiveRight
371
- ) : effectiveRight) : showChevron ? /* @__PURE__ */ React3__default.default.createElement(vectorIcons.Entypo, { name: "chevron-with-circle-right", size: 20, color: colors.foregroundMuted }) : null);
371
+ rightRender
372
+ ) : rightRender) : showChevron ? /* @__PURE__ */ React3__default.default.createElement(vectorIcons.Entypo, { name: "chevron-with-circle-right", size: 20, color: colors.foregroundMuted }) : null : null);
372
373
  if (onPress) {
373
374
  return /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: disabled && styles.disabled }, /* @__PURE__ */ React3__default.default.createElement(
374
375
  PressableRow,
@@ -435,6 +436,12 @@ var styles = reactNative.StyleSheet.create({
435
436
  flexShrink: 0,
436
437
  maxWidth: s(160)
437
438
  },
439
+ rightActionsContainer: {
440
+ flexDirection: "row",
441
+ alignItems: "center",
442
+ gap: s(8),
443
+ flexShrink: 0
444
+ },
438
445
  rightText: {
439
446
  fontFamily: "Sohne-Regular",
440
447
  fontSize: ms(14)
package/dist/ListItem.mjs CHANGED
@@ -1,9 +1,9 @@
1
- export { ListItem } from './chunk-VKID2D2I.mjs';
1
+ export { ListItem } from './chunk-EDLCGYIO.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-YTXRIXNZ.mjs';
8
8
  import './chunk-2CE3TQVY.mjs';
9
9
  import './chunk-Y6FXYEAI.mjs';
package/dist/MediaCard.js CHANGED
@@ -162,6 +162,7 @@ function deriveColors(t, scheme) {
162
162
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
163
163
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
164
164
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
165
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
165
166
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
166
167
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
167
168
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -174,6 +175,7 @@ function deriveColors(t, scheme) {
174
175
  foregroundMuted,
175
176
  surface,
176
177
  surfaceStrong,
178
+ skeleton,
177
179
  destructiveTint,
178
180
  destructiveBorder,
179
181
  successTint,
@@ -1,9 +1,9 @@
1
- export { MediaCard } from './chunk-IX3NYLYQ.mjs';
1
+ export { MediaCard } from './chunk-7ELGZ66G.mjs';
2
2
  import './chunk-YNROWHQJ.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-YTXRIXNZ.mjs';
8
8
  import './chunk-2CE3TQVY.mjs';
9
9
  import './chunk-Y6FXYEAI.mjs';
package/dist/MenuGroup.js CHANGED
@@ -89,6 +89,7 @@ function deriveColors(t, scheme) {
89
89
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
90
90
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
91
91
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
92
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
92
93
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
93
94
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
94
95
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -101,6 +102,7 @@ function deriveColors(t, scheme) {
101
102
  foregroundMuted,
102
103
  surface,
103
104
  surfaceStrong,
105
+ skeleton,
104
106
  destructiveTint,
105
107
  destructiveBorder,
106
108
  successTint,
@@ -1,5 +1,5 @@
1
- export { MenuGroup, MenuGroupFooter, MenuGroupHeader } from './chunk-IRRY3CRZ.mjs';
1
+ export { MenuGroup, MenuGroupFooter, MenuGroupHeader } from './chunk-ULGNQPNE.mjs';
2
2
  import './chunk-QY3X2UYR.mjs';
3
- import './chunk-SOYNZDVY.mjs';
3
+ import './chunk-YTXRIXNZ.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
5
5
  import './chunk-Y6FXYEAI.mjs';
package/dist/MenuItem.js CHANGED
@@ -163,6 +163,7 @@ function deriveColors(t, scheme) {
163
163
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
164
164
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
165
165
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
166
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
166
167
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
167
168
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
168
169
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -175,6 +176,7 @@ function deriveColors(t, scheme) {
175
176
  foregroundMuted,
176
177
  surface,
177
178
  surfaceStrong,
179
+ skeleton,
178
180
  destructiveTint,
179
181
  destructiveBorder,
180
182
  successTint,
package/dist/MenuItem.mjs CHANGED
@@ -1,9 +1,9 @@
1
- export { MenuItem } from './chunk-TB6SD2FT.mjs';
1
+ export { MenuItem } from './chunk-UQ4742ET.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-YTXRIXNZ.mjs';
8
8
  import './chunk-2CE3TQVY.mjs';
9
9
  import './chunk-Y6FXYEAI.mjs';
@@ -149,6 +149,7 @@ function deriveColors(t, scheme) {
149
149
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
150
150
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
151
151
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
152
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
152
153
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
153
154
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
154
155
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -161,6 +162,7 @@ function deriveColors(t, scheme) {
161
162
  foregroundMuted,
162
163
  surface,
163
164
  surfaceStrong,
165
+ skeleton,
164
166
  destructiveTint,
165
167
  destructiveBorder,
166
168
  successTint,
@@ -1,5 +1,5 @@
1
- export { MonthPicker, dateToMonthPickerValue, monthPickerValueToDate } from './chunk-GD6KXMG5.mjs';
1
+ export { MonthPicker, dateToMonthPickerValue, monthPickerValueToDate } from './chunk-AENAVIKT.mjs';
2
2
  import './chunk-EJ7ZPXOH.mjs';
3
- import './chunk-SOYNZDVY.mjs';
3
+ import './chunk-YTXRIXNZ.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
5
5
  import './chunk-Y6FXYEAI.mjs';
@@ -162,6 +162,7 @@ function deriveColors(t, scheme) {
162
162
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
163
163
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
164
164
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
165
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
165
166
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
166
167
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
167
168
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -174,6 +175,7 @@ function deriveColors(t, scheme) {
174
175
  foregroundMuted,
175
176
  surface,
176
177
  surfaceStrong,
178
+ skeleton,
177
179
  destructiveTint,
178
180
  destructiveBorder,
179
181
  successTint,
@@ -1,9 +1,9 @@
1
- export { NumberStepper } from './chunk-BUMAMSTZ.mjs';
1
+ export { NumberStepper } from './chunk-ELGEOM7I.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-YTXRIXNZ.mjs';
8
8
  import './chunk-2CE3TQVY.mjs';
9
9
  import './chunk-Y6FXYEAI.mjs';
package/dist/PagerDots.js CHANGED
@@ -108,6 +108,7 @@ function deriveColors(t, scheme) {
108
108
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
109
109
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
110
110
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
111
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
111
112
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
112
113
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
113
114
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -120,6 +121,7 @@ function deriveColors(t, scheme) {
120
121
  foregroundMuted,
121
122
  surface,
122
123
  surfaceStrong,
124
+ skeleton,
123
125
  destructiveTint,
124
126
  destructiveBorder,
125
127
  successTint,
@@ -1,7 +1,7 @@
1
- export { PagerDots } from './chunk-ZZ2R6KZ3.mjs';
1
+ export { PagerDots } from './chunk-OLVJFKXS.mjs';
2
2
  import './chunk-EJ7ZPXOH.mjs';
3
3
  import './chunk-DVK4G2GT.mjs';
4
4
  import './chunk-KA7LTET3.mjs';
5
- import './chunk-SOYNZDVY.mjs';
5
+ import './chunk-YTXRIXNZ.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
7
7
  import './chunk-Y6FXYEAI.mjs';
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ViewStyle } from 'react-native';
2
+ import { ViewStyle, AccessibilityRole } from 'react-native';
3
3
 
4
4
  interface PressableProps {
5
5
  /** Children content to render inside the pressable. */
@@ -8,11 +8,6 @@ interface PressableProps {
8
8
  onPress?: () => void;
9
9
  /** Scale value on press. Defaults to `0.98` (MediaCard-style). */
10
10
  pressScale?: number;
11
- /**
12
- * @deprecated Use Reanimated spring config via `pressOutSpring` instead. Ignored.
13
- * Kept for backwards compatibility with v6.x consumers.
14
- */
15
- bounciness?: number;
16
11
  /** Enable haptic feedback on press. Defaults to `true`. */
17
12
  haptics?: boolean;
18
13
  /** Additional style for the wrapper. */
@@ -21,6 +16,19 @@ interface PressableProps {
21
16
  disabled?: boolean;
22
17
  /** Hover scale (web only). Defaults to `1.02`. Set to `1` to disable. */
23
18
  hoverScale?: number;
19
+ /**
20
+ * Accessibility role for the pressable element.
21
+ * Defaults to `"button"`.
22
+ */
23
+ accessibilityRole?: AccessibilityRole;
24
+ /**
25
+ * Accessibility state for screen readers.
26
+ * Used to communicate states like `selected`, `expanded`, `checked`, etc.
27
+ * Defaults to `{ disabled: !!disabled }`.
28
+ */
29
+ accessibilityState?: Record<string, unknown>;
30
+ /** Accessibility label for screen readers. */
31
+ accessibilityLabel?: string;
24
32
  }
25
33
  /**
26
34
  * Generic pressable with a calibrated spring bounce — Apple HIG / Airbnb feel.
@@ -29,6 +37,6 @@ interface PressableProps {
29
37
  * Use this for any custom pressable surface that needs consistent press feel
30
38
  * (cards, list rows, image tiles, etc).
31
39
  */
32
- declare function Pressable({ children, onPress, pressScale: _pressScale, haptics, style, disabled, hoverScale: _hoverScale, }: PressableProps): React.JSX.Element;
40
+ declare function Pressable({ children, onPress, pressScale: _pressScale, haptics, style, disabled, hoverScale: _hoverScale, accessibilityRole, accessibilityState, accessibilityLabel, }: PressableProps): React.JSX.Element;
33
41
 
34
42
  export { Pressable, type PressableProps };