@yahoo/uds-mobile 2.1.0-beta.1 → 2.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 (152) hide show
  1. package/dist/bin/generateTheme.mjs +14 -0
  2. package/dist/components/{Avatar.d.mts → Avatar.d.ts} +2 -2
  3. package/dist/components/Avatar.d.ts.map +1 -0
  4. package/dist/components/{Avatar.mjs → Avatar.js} +4 -4
  5. package/dist/components/Avatar.js.map +1 -0
  6. package/dist/components/{Badge.d.mts → Badge.d.ts} +3 -3
  7. package/dist/components/Badge.d.ts.map +1 -0
  8. package/dist/components/{Badge.mjs → Badge.js} +4 -4
  9. package/dist/components/Badge.js.map +1 -0
  10. package/dist/components/BlurTarget.cjs +89 -0
  11. package/dist/components/BlurTarget.d.cts +52 -0
  12. package/dist/components/BlurTarget.d.cts.map +1 -0
  13. package/dist/components/BlurTarget.d.ts +52 -0
  14. package/dist/components/BlurTarget.d.ts.map +1 -0
  15. package/dist/components/BlurTarget.js +88 -0
  16. package/dist/components/BlurTarget.js.map +1 -0
  17. package/dist/components/Box.cjs +117 -20
  18. package/dist/components/Box.d.cts +11 -1
  19. package/dist/components/Box.d.cts.map +1 -1
  20. package/dist/components/{Box.d.mts → Box.d.ts} +14 -4
  21. package/dist/components/{Box.d.mts.map → Box.d.ts.map} +1 -1
  22. package/dist/components/Box.js +228 -0
  23. package/dist/components/Box.js.map +1 -0
  24. package/dist/components/{Button.d.mts → Button.d.ts} +4 -4
  25. package/dist/components/Button.d.ts.map +1 -0
  26. package/dist/components/{Button.mjs → Button.js} +6 -6
  27. package/dist/components/Button.js.map +1 -0
  28. package/dist/components/{Checkbox.d.mts → Checkbox.d.ts} +2 -2
  29. package/dist/components/Checkbox.d.ts.map +1 -0
  30. package/dist/components/{Checkbox.mjs → Checkbox.js} +7 -7
  31. package/dist/components/Checkbox.js.map +1 -0
  32. package/dist/components/{Chip.d.mts → Chip.d.ts} +3 -3
  33. package/dist/components/Chip.d.ts.map +1 -0
  34. package/dist/components/{Chip.mjs → Chip.js} +5 -5
  35. package/dist/components/Chip.js.map +1 -0
  36. package/dist/components/{HStack.d.mts → HStack.d.ts} +2 -2
  37. package/dist/components/HStack.d.ts.map +1 -0
  38. package/dist/components/{HStack.mjs → HStack.js} +2 -2
  39. package/dist/components/HStack.js.map +1 -0
  40. package/dist/components/{Icon.d.mts → Icon.d.ts} +2 -2
  41. package/dist/components/Icon.d.ts.map +1 -0
  42. package/dist/components/{Icon.mjs → Icon.js} +1 -1
  43. package/dist/components/Icon.js.map +1 -0
  44. package/dist/components/{IconButton.d.mts → IconButton.d.ts} +4 -4
  45. package/dist/components/IconButton.d.ts.map +1 -0
  46. package/dist/components/{IconButton.mjs → IconButton.js} +5 -5
  47. package/dist/components/IconButton.js.map +1 -0
  48. package/dist/components/{IconSlot.d.mts → IconSlot.d.ts} +2 -2
  49. package/dist/components/IconSlot.d.ts.map +1 -0
  50. package/dist/components/{IconSlot.mjs → IconSlot.js} +2 -2
  51. package/dist/components/IconSlot.js.map +1 -0
  52. package/dist/components/{Image.d.mts → Image.d.ts} +2 -2
  53. package/dist/components/Image.d.ts.map +1 -0
  54. package/dist/components/{Image.mjs → Image.js} +1 -1
  55. package/dist/components/Image.js.map +1 -0
  56. package/dist/components/{Input.d.mts → Input.d.ts} +4 -4
  57. package/dist/components/Input.d.ts.map +1 -0
  58. package/dist/components/{Input.mjs → Input.js} +5 -5
  59. package/dist/components/Input.js.map +1 -0
  60. package/dist/components/{Link.d.mts → Link.d.ts} +4 -4
  61. package/dist/components/Link.d.ts.map +1 -0
  62. package/dist/components/{Link.mjs → Link.js} +2 -2
  63. package/dist/components/Link.js.map +1 -0
  64. package/dist/components/{Pressable.d.mts → Pressable.d.ts} +2 -2
  65. package/dist/components/Pressable.d.ts.map +1 -0
  66. package/dist/components/{Pressable.mjs → Pressable.js} +1 -1
  67. package/dist/components/Pressable.js.map +1 -0
  68. package/dist/components/{Radio.d.mts → Radio.d.ts} +2 -2
  69. package/dist/components/Radio.d.ts.map +1 -0
  70. package/dist/components/{Radio.mjs → Radio.js} +6 -6
  71. package/dist/components/Radio.js.map +1 -0
  72. package/dist/components/{Screen.d.mts → Screen.d.ts} +2 -2
  73. package/dist/components/Screen.d.ts.map +1 -0
  74. package/dist/components/{Screen.mjs → Screen.js} +5 -5
  75. package/dist/components/Screen.js.map +1 -0
  76. package/dist/components/{Switch.d.mts → Switch.d.ts} +3 -3
  77. package/dist/components/Switch.d.ts.map +1 -0
  78. package/dist/components/{Switch.mjs → Switch.js} +6 -6
  79. package/dist/components/Switch.js.map +1 -0
  80. package/dist/components/{Text.d.mts → Text.d.ts} +1 -1
  81. package/dist/components/Text.d.ts.map +1 -0
  82. package/dist/components/{Text.mjs → Text.js} +1 -1
  83. package/dist/components/Text.js.map +1 -0
  84. package/dist/components/{VStack.d.mts → VStack.d.ts} +2 -2
  85. package/dist/components/VStack.d.ts.map +1 -0
  86. package/dist/components/{VStack.mjs → VStack.js} +2 -2
  87. package/dist/components/VStack.js.map +1 -0
  88. package/dist/motion-tokens/dist/{index.d.mts → index.d.ts} +2 -2
  89. package/dist/motion-tokens/dist/index.d.ts.map +1 -0
  90. package/dist/motion-tokens/dist/{index.mjs → index.js} +1 -1
  91. package/dist/motion-tokens/dist/index.js.map +1 -0
  92. package/dist/{motion.d.mts → motion.d.ts} +3 -3
  93. package/dist/motion.d.ts.map +1 -0
  94. package/dist/{motion.mjs → motion.js} +2 -2
  95. package/dist/motion.js.map +1 -0
  96. package/dist/types/dist/index.d.cts.map +1 -1
  97. package/dist/types/dist/{index.d.mts → index.d.ts} +1 -1
  98. package/dist/types/dist/index.d.ts.map +1 -0
  99. package/dist/{types.d.mts → types.d.ts} +1 -1
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/{types.mjs → types.js} +0 -1
  102. package/fonts/index.cjs +205 -205
  103. package/fonts/index.mjs +205 -205
  104. package/generated/styles.cjs +53 -0
  105. package/generated/styles.d.ts +27 -0
  106. package/generated/styles.mjs +53 -0
  107. package/generated/unistyles.d.ts +29 -0
  108. package/package.json +55 -41
  109. package/dist/components/Avatar.d.mts.map +0 -1
  110. package/dist/components/Avatar.mjs.map +0 -1
  111. package/dist/components/Badge.d.mts.map +0 -1
  112. package/dist/components/Badge.mjs.map +0 -1
  113. package/dist/components/Box.mjs +0 -131
  114. package/dist/components/Box.mjs.map +0 -1
  115. package/dist/components/Button.d.mts.map +0 -1
  116. package/dist/components/Button.mjs.map +0 -1
  117. package/dist/components/Checkbox.d.mts.map +0 -1
  118. package/dist/components/Checkbox.mjs.map +0 -1
  119. package/dist/components/Chip.d.mts.map +0 -1
  120. package/dist/components/Chip.mjs.map +0 -1
  121. package/dist/components/HStack.d.mts.map +0 -1
  122. package/dist/components/HStack.mjs.map +0 -1
  123. package/dist/components/Icon.d.mts.map +0 -1
  124. package/dist/components/Icon.mjs.map +0 -1
  125. package/dist/components/IconButton.d.mts.map +0 -1
  126. package/dist/components/IconButton.mjs.map +0 -1
  127. package/dist/components/IconSlot.d.mts.map +0 -1
  128. package/dist/components/IconSlot.mjs.map +0 -1
  129. package/dist/components/Image.d.mts.map +0 -1
  130. package/dist/components/Image.mjs.map +0 -1
  131. package/dist/components/Input.d.mts.map +0 -1
  132. package/dist/components/Input.mjs.map +0 -1
  133. package/dist/components/Link.d.mts.map +0 -1
  134. package/dist/components/Link.mjs.map +0 -1
  135. package/dist/components/Pressable.d.mts.map +0 -1
  136. package/dist/components/Pressable.mjs.map +0 -1
  137. package/dist/components/Radio.d.mts.map +0 -1
  138. package/dist/components/Radio.mjs.map +0 -1
  139. package/dist/components/Screen.d.mts.map +0 -1
  140. package/dist/components/Screen.mjs.map +0 -1
  141. package/dist/components/Switch.d.mts.map +0 -1
  142. package/dist/components/Switch.mjs.map +0 -1
  143. package/dist/components/Text.d.mts.map +0 -1
  144. package/dist/components/Text.mjs.map +0 -1
  145. package/dist/components/VStack.d.mts.map +0 -1
  146. package/dist/components/VStack.mjs.map +0 -1
  147. package/dist/motion-tokens/dist/index.d.mts.map +0 -1
  148. package/dist/motion-tokens/dist/index.mjs.map +0 -1
  149. package/dist/motion.d.mts.map +0 -1
  150. package/dist/motion.mjs.map +0 -1
  151. package/dist/types/dist/index.d.mts.map +0 -1
  152. package/dist/types.d.mts.map +0 -1
@@ -1500,6 +1500,34 @@ const badgeStyles = StyleSheet.create((theme) => ({
1500
1500
  },
1501
1501
  }));
1502
1502
 
1503
+ /**
1504
+ * Layer-based styles for BottomSheet.
1505
+ * Uses compound variants for state-specific (disabled/pressed) styles.
1506
+ *
1507
+ * Usage:
1508
+ * ```tsx
1509
+ * bottomSheetStyles.useVariants({
1510
+ * size,
1511
+ * variant,
1512
+ * disabled: isDisabled, // boolean
1513
+ * pressed: isPressed, // boolean
1514
+ * });
1515
+ * // Access: bottomSheetStyles.root, bottomSheetStyles.icon, etc.
1516
+ * ```
1517
+ */
1518
+ const bottomSheetStyles = StyleSheet.create((theme) => ({
1519
+ root: {
1520
+ variants: {
1521
+ variant: { default: theme.components['bottomSheet/variant/default/root/rest'] },
1522
+ },
1523
+ },
1524
+ header: {
1525
+ variants: {
1526
+ variant: { default: theme.components['bottomSheet/variant/default/header/rest'] },
1527
+ },
1528
+ },
1529
+ }));
1530
+
1503
1531
  /**
1504
1532
  * Layer-based styles for Button.
1505
1533
  * Uses compound variants for state-specific (disabled/pressed) styles.
@@ -4583,6 +4611,29 @@ const radioStyles = StyleSheet.create((theme) => ({
4583
4611
  },
4584
4612
  }));
4585
4613
 
4614
+ /**
4615
+ * Layer-based styles for Scrim.
4616
+ * Uses compound variants for state-specific (disabled/pressed) styles.
4617
+ *
4618
+ * Usage:
4619
+ * ```tsx
4620
+ * scrimStyles.useVariants({
4621
+ * size,
4622
+ * variant,
4623
+ * disabled: isDisabled, // boolean
4624
+ * pressed: isPressed, // boolean
4625
+ * });
4626
+ * // Access: scrimStyles.root, scrimStyles.icon, etc.
4627
+ * ```
4628
+ */
4629
+ const scrimStyles = StyleSheet.create((theme) => ({
4630
+ root: {
4631
+ variants: {
4632
+ variant: { default: theme.components['scrim/variant/default/root/rest'] },
4633
+ },
4634
+ },
4635
+ }));
4636
+
4586
4637
  /**
4587
4638
  * Layer-based styles for Switch.
4588
4639
  * Uses compound variants for state-specific (disabled/pressed) styles.
@@ -4782,6 +4833,7 @@ export {
4782
4833
  styles,
4783
4834
  avatarStyles,
4784
4835
  badgeStyles,
4836
+ bottomSheetStyles,
4785
4837
  buttonStyles,
4786
4838
  checkboxStyles,
4787
4839
  chipStyles,
@@ -4792,6 +4844,7 @@ export {
4792
4844
  menuContentStyles,
4793
4845
  menuItemStyles,
4794
4846
  radioStyles,
4847
+ scrimStyles,
4795
4848
  switchStyles,
4796
4849
  toastStyles,
4797
4850
  tooltipStyles,
@@ -344,6 +344,22 @@ interface ComponentTheme {
344
344
  'badge/variant/warning/rootText/rest': {
345
345
  color: string;
346
346
  };
347
+ 'bottomSheet/variant/default/header/rest': {
348
+ color: string;
349
+ fontFamily: string;
350
+ fontSize: number;
351
+ letterSpacing: number;
352
+ lineHeight: number;
353
+ };
354
+ 'bottomSheet/variant/default/root/rest': {
355
+ backgroundColor: string;
356
+ borderColor: string;
357
+ borderRadius: number;
358
+ borderWidth: number;
359
+ boxShadow: string;
360
+ paddingHorizontal: number;
361
+ paddingVertical: number;
362
+ };
347
363
  'button/size/lg/icon/rest': {
348
364
  fontSize: number;
349
365
  iconSizeToken: string;
@@ -3876,6 +3892,10 @@ interface ComponentTheme {
3876
3892
  'radio/variant/secondary/value/unchecked/rootText/rest': {
3877
3893
  color: string;
3878
3894
  };
3895
+ 'scrim/variant/default/root/rest': {
3896
+ backgroundColor: string;
3897
+ opacity: number;
3898
+ };
3879
3899
  'switch/size/md/handle/rest': {
3880
3900
  height: number;
3881
3901
  width: number;
@@ -4643,6 +4663,15 @@ export interface AppTheme {
4643
4663
  '2xl-invert': string;
4644
4664
  };
4645
4665
  };
4666
+ blur: {
4667
+ 'elevation-0': number;
4668
+ 'elevation-1': number;
4669
+ 'elevation-2': number;
4670
+ 'elevation-3': number;
4671
+ 'elevation-4': number;
4672
+ 'elevation-5': number;
4673
+ none: number;
4674
+ };
4646
4675
  components: ComponentTheme;
4647
4676
  }
4648
4677
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yahoo/uds-mobile",
3
- "version": "2.1.0-beta.1",
3
+ "version": "2.2.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "uds-mobile": "./cli/uds-mobile.js"
@@ -19,8 +19,8 @@
19
19
  "exports": {
20
20
  "./Avatar": {
21
21
  "import": {
22
- "types": "./dist/components/Avatar.d.mts",
23
- "default": "./dist/components/Avatar.mjs"
22
+ "types": "./dist/components/Avatar.d.ts",
23
+ "default": "./dist/components/Avatar.js"
24
24
  },
25
25
  "require": {
26
26
  "types": "./dist/components/Avatar.d.cts",
@@ -29,18 +29,28 @@
29
29
  },
30
30
  "./Badge": {
31
31
  "import": {
32
- "types": "./dist/components/Badge.d.mts",
33
- "default": "./dist/components/Badge.mjs"
32
+ "types": "./dist/components/Badge.d.ts",
33
+ "default": "./dist/components/Badge.js"
34
34
  },
35
35
  "require": {
36
36
  "types": "./dist/components/Badge.d.cts",
37
37
  "default": "./dist/components/Badge.cjs"
38
38
  }
39
39
  },
40
+ "./BlurTarget": {
41
+ "import": {
42
+ "types": "./dist/components/BlurTarget.d.ts",
43
+ "default": "./dist/components/BlurTarget.js"
44
+ },
45
+ "require": {
46
+ "types": "./dist/components/BlurTarget.d.cts",
47
+ "default": "./dist/components/BlurTarget.cjs"
48
+ }
49
+ },
40
50
  "./Box": {
41
51
  "import": {
42
- "types": "./dist/components/Box.d.mts",
43
- "default": "./dist/components/Box.mjs"
52
+ "types": "./dist/components/Box.d.ts",
53
+ "default": "./dist/components/Box.js"
44
54
  },
45
55
  "require": {
46
56
  "types": "./dist/components/Box.d.cts",
@@ -49,8 +59,8 @@
49
59
  },
50
60
  "./Button": {
51
61
  "import": {
52
- "types": "./dist/components/Button.d.mts",
53
- "default": "./dist/components/Button.mjs"
62
+ "types": "./dist/components/Button.d.ts",
63
+ "default": "./dist/components/Button.js"
54
64
  },
55
65
  "require": {
56
66
  "types": "./dist/components/Button.d.cts",
@@ -59,8 +69,8 @@
59
69
  },
60
70
  "./Checkbox": {
61
71
  "import": {
62
- "types": "./dist/components/Checkbox.d.mts",
63
- "default": "./dist/components/Checkbox.mjs"
72
+ "types": "./dist/components/Checkbox.d.ts",
73
+ "default": "./dist/components/Checkbox.js"
64
74
  },
65
75
  "require": {
66
76
  "types": "./dist/components/Checkbox.d.cts",
@@ -69,8 +79,8 @@
69
79
  },
70
80
  "./Chip": {
71
81
  "import": {
72
- "types": "./dist/components/Chip.d.mts",
73
- "default": "./dist/components/Chip.mjs"
82
+ "types": "./dist/components/Chip.d.ts",
83
+ "default": "./dist/components/Chip.js"
74
84
  },
75
85
  "require": {
76
86
  "types": "./dist/components/Chip.d.cts",
@@ -79,8 +89,8 @@
79
89
  },
80
90
  "./HStack": {
81
91
  "import": {
82
- "types": "./dist/components/HStack.d.mts",
83
- "default": "./dist/components/HStack.mjs"
92
+ "types": "./dist/components/HStack.d.ts",
93
+ "default": "./dist/components/HStack.js"
84
94
  },
85
95
  "require": {
86
96
  "types": "./dist/components/HStack.d.cts",
@@ -89,8 +99,8 @@
89
99
  },
90
100
  "./Icon": {
91
101
  "import": {
92
- "types": "./dist/components/Icon.d.mts",
93
- "default": "./dist/components/Icon.mjs"
102
+ "types": "./dist/components/Icon.d.ts",
103
+ "default": "./dist/components/Icon.js"
94
104
  },
95
105
  "require": {
96
106
  "types": "./dist/components/Icon.d.cts",
@@ -99,8 +109,8 @@
99
109
  },
100
110
  "./IconButton": {
101
111
  "import": {
102
- "types": "./dist/components/IconButton.d.mts",
103
- "default": "./dist/components/IconButton.mjs"
112
+ "types": "./dist/components/IconButton.d.ts",
113
+ "default": "./dist/components/IconButton.js"
104
114
  },
105
115
  "require": {
106
116
  "types": "./dist/components/IconButton.d.cts",
@@ -109,8 +119,8 @@
109
119
  },
110
120
  "./IconSlot": {
111
121
  "import": {
112
- "types": "./dist/components/IconSlot.d.mts",
113
- "default": "./dist/components/IconSlot.mjs"
122
+ "types": "./dist/components/IconSlot.d.ts",
123
+ "default": "./dist/components/IconSlot.js"
114
124
  },
115
125
  "require": {
116
126
  "types": "./dist/components/IconSlot.d.cts",
@@ -119,8 +129,8 @@
119
129
  },
120
130
  "./Image": {
121
131
  "import": {
122
- "types": "./dist/components/Image.d.mts",
123
- "default": "./dist/components/Image.mjs"
132
+ "types": "./dist/components/Image.d.ts",
133
+ "default": "./dist/components/Image.js"
124
134
  },
125
135
  "require": {
126
136
  "types": "./dist/components/Image.d.cts",
@@ -129,8 +139,8 @@
129
139
  },
130
140
  "./Input": {
131
141
  "import": {
132
- "types": "./dist/components/Input.d.mts",
133
- "default": "./dist/components/Input.mjs"
142
+ "types": "./dist/components/Input.d.ts",
143
+ "default": "./dist/components/Input.js"
134
144
  },
135
145
  "require": {
136
146
  "types": "./dist/components/Input.d.cts",
@@ -139,8 +149,8 @@
139
149
  },
140
150
  "./Link": {
141
151
  "import": {
142
- "types": "./dist/components/Link.d.mts",
143
- "default": "./dist/components/Link.mjs"
152
+ "types": "./dist/components/Link.d.ts",
153
+ "default": "./dist/components/Link.js"
144
154
  },
145
155
  "require": {
146
156
  "types": "./dist/components/Link.d.cts",
@@ -149,8 +159,8 @@
149
159
  },
150
160
  "./Pressable": {
151
161
  "import": {
152
- "types": "./dist/components/Pressable.d.mts",
153
- "default": "./dist/components/Pressable.mjs"
162
+ "types": "./dist/components/Pressable.d.ts",
163
+ "default": "./dist/components/Pressable.js"
154
164
  },
155
165
  "require": {
156
166
  "types": "./dist/components/Pressable.d.cts",
@@ -159,8 +169,8 @@
159
169
  },
160
170
  "./Radio": {
161
171
  "import": {
162
- "types": "./dist/components/Radio.d.mts",
163
- "default": "./dist/components/Radio.mjs"
172
+ "types": "./dist/components/Radio.d.ts",
173
+ "default": "./dist/components/Radio.js"
164
174
  },
165
175
  "require": {
166
176
  "types": "./dist/components/Radio.d.cts",
@@ -169,8 +179,8 @@
169
179
  },
170
180
  "./Screen": {
171
181
  "import": {
172
- "types": "./dist/components/Screen.d.mts",
173
- "default": "./dist/components/Screen.mjs"
182
+ "types": "./dist/components/Screen.d.ts",
183
+ "default": "./dist/components/Screen.js"
174
184
  },
175
185
  "require": {
176
186
  "types": "./dist/components/Screen.d.cts",
@@ -179,8 +189,8 @@
179
189
  },
180
190
  "./Switch": {
181
191
  "import": {
182
- "types": "./dist/components/Switch.d.mts",
183
- "default": "./dist/components/Switch.mjs"
192
+ "types": "./dist/components/Switch.d.ts",
193
+ "default": "./dist/components/Switch.js"
184
194
  },
185
195
  "require": {
186
196
  "types": "./dist/components/Switch.d.cts",
@@ -189,8 +199,8 @@
189
199
  },
190
200
  "./Text": {
191
201
  "import": {
192
- "types": "./dist/components/Text.d.mts",
193
- "default": "./dist/components/Text.mjs"
202
+ "types": "./dist/components/Text.d.ts",
203
+ "default": "./dist/components/Text.js"
194
204
  },
195
205
  "require": {
196
206
  "types": "./dist/components/Text.d.cts",
@@ -199,8 +209,8 @@
199
209
  },
200
210
  "./VStack": {
201
211
  "import": {
202
- "types": "./dist/components/VStack.d.mts",
203
- "default": "./dist/components/VStack.mjs"
212
+ "types": "./dist/components/VStack.d.ts",
213
+ "default": "./dist/components/VStack.js"
204
214
  },
205
215
  "require": {
206
216
  "types": "./dist/components/VStack.d.cts",
@@ -209,8 +219,8 @@
209
219
  },
210
220
  "./motion": {
211
221
  "import": {
212
- "types": "./dist/motion.d.mts",
213
- "default": "./dist/motion.mjs"
222
+ "types": "./dist/motion.d.ts",
223
+ "default": "./dist/motion.js"
214
224
  },
215
225
  "require": {
216
226
  "types": "./dist/motion.d.cts",
@@ -235,6 +245,7 @@
235
245
  },
236
246
  "peerDependencies": {
237
247
  "@yahoo/uds-icons": "workspace:*",
248
+ "expo-blur": "~55.0.0",
238
249
  "expo-font": "~55.0.0",
239
250
  "react": "*",
240
251
  "react-native": ">=0.83.0",
@@ -245,6 +256,9 @@
245
256
  "react-native-unistyles": ">=3.0.0"
246
257
  },
247
258
  "peerDependenciesMeta": {
259
+ "expo-blur": {
260
+ "optional": true
261
+ },
248
262
  "expo-font": {
249
263
  "optional": true
250
264
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"Avatar.d.mts","names":[],"sources":["../../src/components/Avatar.tsx"],"mappings":";;;;;;;KAWK,UAAA;;KAGA,aAAA;;KAGA,oBAAA,qFAOC,IAAA;AAAA,UAEI,WAAA,SAAoB,SAAA;EAff;EAiBb,GAAA;EAdgB;EAgBhB,GAAA;EAhBgB;EAkBhB,QAAA;EAfG;EAiBH,IAAA,GAAO,UAAA;;EAEP,OAAA,GAAU,aAAA;EAZM;EAchB,IAAA,GAAO,YAAA;EAZa;EAcpB,oBAAA,GAAuB,oBAAA;AAAA;;;;;;;;;;;;;;;;;;;;;AAAoB;;;;;;;;;;;;;;;;cAoEvC,MAAA,EAAM,KAAA,CAAA,yBAAA,CAAA,WAAA,GAAA,KAAA,CAAA,aAAA,CAAA,IAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Avatar.mjs","names":["RNImage","Text"],"sources":["../../src/components/Avatar.tsx"],"sourcesContent":["import { forwardRef, useState } from 'react';\nimport type { View, ViewProps } from 'react-native';\nimport { Image as RNImage } from 'react-native';\n\nimport { avatarStyles } from '../../generated/styles';\nimport { Box } from './Box';\nimport type { IconSlotType } from './IconSlot';\nimport { IconSlot } from './IconSlot';\nimport { Text } from './Text';\n\n/** Avatar size options */\ntype AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/** Avatar variant options */\ntype AvatarVariant = 'primary' | 'secondary';\n\n/** Abbreviation strategy for generating initials */\ntype AbbreviationStrategy =\n | 'first'\n | 'last'\n | 'firstAndLast'\n | 'firstTwo'\n | 'firstThree'\n | 'firstOfEach'\n | ((name: string) => string);\n\ninterface AvatarProps extends ViewProps {\n /** Image source URL */\n src?: string;\n /** Alt text for the image, also used for generating initials */\n alt?: string;\n /** Explicit initials to display (overrides auto-generated from alt) */\n fallback?: string;\n /** Size of the avatar @default 'md' */\n size?: AvatarSize;\n /** Variant style @default 'primary' */\n variant?: AvatarVariant;\n /** Custom icon to display when no image or text fallback */\n icon?: IconSlotType;\n /** Strategy for generating initials from name @default 'firstAndLast' */\n abbreviationStrategy?: AbbreviationStrategy;\n}\n\nconst abbreviationStrategies: Record<\n Exclude<AbbreviationStrategy, (name: string) => string>,\n (initials: string[]) => string\n> = {\n first: (initials) => initials[0] ?? '',\n last: (initials) => initials[initials.length - 1] ?? '',\n firstAndLast: (initials) =>\n initials.length === 1 ? (initials[0] ?? '') : `${initials[0]}${initials[initials.length - 1]}`,\n firstTwo: (initials) => initials.slice(0, 2).join(''),\n firstThree: (initials) => initials.slice(0, 3).join(''),\n firstOfEach: (initials) => initials.join(''),\n};\n\n/** Generate initials from a name */\nfunction generateInitials(name?: string, strategy: AbbreviationStrategy = 'firstAndLast'): string {\n if (!name) {\n return '';\n }\n\n if (typeof strategy === 'function') {\n return strategy(name);\n }\n\n const words = name.trim().split(/\\s+/);\n const initials = words.map((word) => word[0]?.toUpperCase() ?? '');\n\n return abbreviationStrategies[strategy](initials);\n}\n\n/**\n * **Avatar component for user representation**\n *\n * @description\n * Displays a user avatar with image, initials fallback, or icon fallback.\n *\n * @category Display\n * @platform mobile\n *\n * @example\n * ```tsx\n * import { Avatar } from '@yahoo/uds-mobile';\n *\n * // With image\n * <Avatar\n * src=\"https://example.com/photo.jpg\"\n * alt=\"Jane Doe\"\n * />\n *\n * // With initials fallback\n * <Avatar alt=\"Jane Doe\" />\n *\n * // With explicit initials\n * <Avatar fallback=\"JD\" />\n *\n * // With custom icon\n * <Avatar icon=\"Person\" variant=\"secondary\" />\n * ```\n *\n * @accessibility\n * - Sets `accessibilityRole=\"image\"` automatically\n * - Uses `alt` prop as accessibility label\n * - Always provide meaningful `alt` text for user identification\n *\n * @see {@link Image} for general image display\n */\nconst Avatar = forwardRef<View, AvatarProps>(function Avatar(\n {\n src,\n alt,\n fallback,\n size = 'md',\n variant = 'primary',\n icon,\n abbreviationStrategy = 'firstAndLast',\n style,\n ...props\n },\n ref,\n) {\n const [imageError, setImageError] = useState(false);\n\n const initials = fallback || generateInitials(alt, abbreviationStrategy);\n\n const hasImage = src && !imageError;\n const hasText = initials.length > 0;\n const showImage = hasImage;\n const showText = !hasImage && hasText;\n const showIcon = !hasImage && !hasText;\n\n avatarStyles.useVariants({\n size,\n ...(showImage && { image: variant }),\n ...(showText && { text: variant }),\n ...(showIcon && { icon: variant }),\n });\n\n return (\n <Box\n ref={ref}\n style={[\n avatarStyles.root,\n { alignItems: 'center', justifyContent: 'center', overflow: 'hidden' },\n style,\n ]}\n accessibilityRole=\"image\"\n accessibilityLabel={alt}\n {...props}\n >\n {showImage && (\n <RNImage\n source={{ uri: src }}\n style={{ width: '100%', height: '100%' }}\n onError={() => setImageError(true)}\n accessibilityLabel={alt}\n />\n )}\n\n {showText && (\n <Text style={avatarStyles.text} numberOfLines={1}>\n {initials}\n </Text>\n )}\n\n {showIcon && <IconSlot icon={icon ?? 'Person'} variant=\"fill\" style={avatarStyles.icon} />}\n </Box>\n );\n});\n\nAvatar.displayName = 'Avatar';\n\nexport { Avatar, type AvatarProps };\n"],"mappings":";;;;;;;;;;AA2CA,MAAM,yBAGF;CACF,QAAQ,aAAa,SAAS,MAAM;CACpC,OAAO,aAAa,SAAS,SAAS,SAAS,MAAM;CACrD,eAAe,aACb,SAAS,WAAW,IAAK,SAAS,MAAM,KAAM,GAAG,SAAS,KAAK,SAAS,SAAS,SAAS;CAC5F,WAAW,aAAa,SAAS,MAAM,GAAG,EAAE,CAAC,KAAK,GAAG;CACrD,aAAa,aAAa,SAAS,MAAM,GAAG,EAAE,CAAC,KAAK,GAAG;CACvD,cAAc,aAAa,SAAS,KAAK,GAAG;CAC7C;;AAGD,SAAS,iBAAiB,MAAe,WAAiC,gBAAwB;AAChG,KAAI,CAAC,KACH,QAAO;AAGT,KAAI,OAAO,aAAa,WACtB,QAAO,SAAS,KAAK;CAIvB,MAAM,WADQ,KAAK,MAAM,CAAC,MAAM,MAAM,CACf,KAAK,SAAS,KAAK,IAAI,aAAa,IAAI,GAAG;AAElE,QAAO,uBAAuB,UAAU,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCnD,MAAM,SAAS,WAA8B,SAAS,OACpD,EACE,KACA,KACA,UACA,OAAO,MACP,UAAU,WACV,MACA,uBAAuB,gBACvB,OACA,GAAG,SAEL,KACA;CACA,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;CAEnD,MAAM,WAAW,YAAY,iBAAiB,KAAK,qBAAqB;CAExE,MAAM,WAAW,OAAO,CAAC;CACzB,MAAM,UAAU,SAAS,SAAS;CAClC,MAAM,YAAY;CAClB,MAAM,WAAW,CAAC,YAAY;CAC9B,MAAM,WAAW,CAAC,YAAY,CAAC;AAE/B,cAAa,YAAY;EACvB;EACA,GAAI,aAAa,EAAE,OAAO,SAAS;EACnC,GAAI,YAAY,EAAE,MAAM,SAAS;EACjC,GAAI,YAAY,EAAE,MAAM,SAAS;EAClC,CAAC;AAEF,QACE,qBAAC;EACM;EACL,OAAO;GACL,aAAa;GACb;IAAE,YAAY;IAAU,gBAAgB;IAAU,UAAU;IAAU;GACtE;GACD;EACD,mBAAkB;EAClB,oBAAoB;EACpB,GAAI;;GAEH,aACC,oBAACA;IACC,QAAQ,EAAE,KAAK,KAAK;IACpB,OAAO;KAAE,OAAO;KAAQ,QAAQ;KAAQ;IACxC,eAAe,cAAc,KAAK;IAClC,oBAAoB;KACpB;GAGH,YACC,oBAACC;IAAK,OAAO,aAAa;IAAM,eAAe;cAC5C;KACI;GAGR,YAAY,oBAAC;IAAS,MAAM,QAAQ;IAAU,SAAQ;IAAO,OAAO,aAAa;KAAQ;;GACtF;EAER;AAEF,OAAO,cAAc"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Badge.d.mts","names":[],"sources":["../../src/components/Badge.tsx"],"mappings":";;;;;;;;UAWU,UAAA,SAAmB,SAAA;;EAE3B,OAAA,GAAU,YAAA;EAFF;EAIR,IAAA,GAAO,SAAA;;EAEP,QAAA;EAFO;EAIP,QAAA;EAIU;EAFV,SAAA,GAAY,YAAA;EAYN;EAVN,OAAA,GAAU,YAAA;EAZ0B;EAcpC,6BAAA;EAd2B;EAgB3B,mBAAA;EAdU;EAgBV,yBAAA;EAdO;EAgBP,uBAAA;EAZA;EAcA,GAAA,GAAM,GAAA,CAAI,IAAA;AAAA;;;;;;;;;;;;AAAI;;;;;;;;;;;;;;cA4BV,KAAA,EAAK,KAAA,CAAA,oBAAA,CAAA,UAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Badge.mjs","names":[],"sources":["../../src/components/Badge.tsx"],"sourcesContent":["import type { BadgeSize, BadgeVariant } from '@yahoo/uds-types';\nimport type { Ref } from 'react';\nimport { memo, useMemo } from 'react';\nimport type { View, ViewProps } from 'react-native';\n\nimport { badgeStyles } from '../../generated/styles';\nimport { HStack } from './HStack';\nimport type { IconSlotType } from './IconSlot';\nimport { IconSlot } from './IconSlot';\nimport { Text } from './Text';\n\ninterface BadgeProps extends ViewProps {\n /** The visual style variant of the badge. @default 'primary' */\n variant?: BadgeVariant;\n /** The size of the badge. @default 'md' */\n size?: BadgeSize;\n /** Minimum width of the badge in pixels. */\n minWidth?: number;\n /** Maximum width of the badge in pixels. @default 200 */\n maxWidth?: number;\n /** Icon to display at the start of the badge. */\n startIcon?: IconSlotType;\n /** Icon to display at the end of the badge. */\n endIcon?: IconSlotType;\n /** Override the background color. Use sparingly. */\n dangerouslySetBackgroundColor?: string;\n /** Override the text color. Use sparingly. */\n dangerouslySetColor?: string;\n /** Override the border color. Use sparingly. */\n dangerouslySetBorderColor?: string;\n /** Override the icon color. Use sparingly. */\n dangerouslySetIconColor?: string;\n /** Ref to the underlying View component. */\n ref?: Ref<View>;\n}\n\n/**\n * **A badge component for status indicators**\n *\n * @description\n * Badges show notifications, counts, or status information on navigation items and icons.\n *\n * @category Display\n * @platform mobile\n *\n * @example\n * ```tsx\n * import { Badge } from '@yahoo/uds-mobile';\n *\n * <Badge>Label</Badge>\n * <Badge variant=\"brand\" size=\"sm\">New</Badge>\n * <Badge variant=\"alert\" startIcon=\"Warning\">Error</Badge>\n * ```\n *\n * @accessibility\n * - Badge content is read by screen readers\n * - Use descriptive text for status indicators\n * - Consider `accessibilityLabel` for icon-only badges\n *\n * @see {@link Chip} for interactive tag-like elements\n */\nconst Badge = memo(function Badge({\n variant = 'primary',\n size = 'md',\n minWidth,\n maxWidth = 200,\n startIcon,\n endIcon,\n dangerouslySetBackgroundColor,\n dangerouslySetColor,\n dangerouslySetIconColor,\n dangerouslySetBorderColor,\n children,\n style,\n ref,\n ...rest\n}: BadgeProps) {\n badgeStyles.useVariants({ size, variant });\n const rootStyles = useMemo(() => [badgeStyles.root, style], [style, badgeStyles.root]);\n\n return (\n <HStack\n ref={ref}\n alignItems=\"center\"\n overflow=\"hidden\"\n alignSelf=\"flex-start\"\n maxWidth={maxWidth}\n minWidth={minWidth}\n dangerouslySetBackgroundColor={dangerouslySetBackgroundColor}\n dangerouslySetBorderColor={dangerouslySetBorderColor}\n // Cannot memoize - styles contain theme-reactive values\n style={rootStyles}\n {...rest}\n >\n {startIcon && (\n <IconSlot\n icon={startIcon}\n variant=\"fill\"\n dangerouslySetColor={dangerouslySetIconColor}\n style={badgeStyles.icon}\n />\n )}\n <Text\n numberOfLines={1}\n flexShrink=\"1\"\n dangerouslySetColor={dangerouslySetColor}\n style={badgeStyles.text}\n >\n {children}\n </Text>\n {endIcon && (\n <IconSlot\n icon={endIcon}\n variant=\"fill\"\n dangerouslySetColor={dangerouslySetIconColor}\n style={badgeStyles.icon}\n />\n )}\n </HStack>\n );\n});\n\nBadge.displayName = 'Badge';\n\nexport { Badge, type BadgeProps };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,MAAM,QAAQ,KAAK,SAAS,MAAM,EAChC,UAAU,WACV,OAAO,MACP,UACA,WAAW,KACX,WACA,SACA,+BACA,qBACA,yBACA,2BACA,UACA,OACA,KACA,GAAG,QACU;AACb,aAAY,YAAY;EAAE;EAAM;EAAS,CAAC;AAG1C,QACE,qBAAC;EACM;EACL,YAAW;EACX,UAAS;EACT,WAAU;EACA;EACA;EACqB;EACJ;EAE3B,OAbe,cAAc,CAAC,YAAY,MAAM,MAAM,EAAE,CAAC,OAAO,YAAY,KAAK,CAAC;EAclF,GAAI;;GAEH,aACC,oBAAC;IACC,MAAM;IACN,SAAQ;IACR,qBAAqB;IACrB,OAAO,YAAY;KACnB;GAEJ,oBAAC;IACC,eAAe;IACf,YAAW;IACU;IACrB,OAAO,YAAY;IAElB;KACI;GACN,WACC,oBAAC;IACC,MAAM;IACN,SAAQ;IACR,qBAAqB;IACrB,OAAO,YAAY;KACnB;;GAEG;EAEX;AAEF,MAAM,cAAc"}
@@ -1,131 +0,0 @@
1
- /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
- import { memo, useMemo } from "react";
3
- import { View } from "react-native";
4
- import { styles } from "../../generated/styles";
5
- import { StyleSheet } from "react-native-unistyles";
6
- import { jsx } from "react/jsx-runtime";
7
-
8
- //#region src/components/Box.tsx
9
- /**
10
- * **📦 A layout component that can be used to compose other components**
11
- *
12
- * @description
13
- * The most simple component we ship - a View. But with all the power of the UDS design system.
14
- * By default, `Box` is a flexbox container. When working with vertical or horizontal layouts,
15
- * consider using VStack or HStack respectively.
16
- *
17
- * @category Layout
18
- * @platform mobile
19
- *
20
- * @example
21
- * ```tsx
22
- * import { Box } from '@yahoo/uds-mobile';
23
- *
24
- * <Box backgroundColor="primary" spacing="6">
25
- * Any kind of content can go here!
26
- * </Box>
27
- * ```
28
- *
29
- * @usage
30
- * - Use as a container to apply padding, shapes, or other styling
31
- * - Use for creating card components
32
- * - Use HStack/VStack for directional layouts
33
- *
34
- * @see {@link HStack} for horizontal layouts
35
- * @see {@link VStack} for vertical layouts
36
- */
37
- const Box = memo(function Box({ elevation, backgroundColor, dangerouslySetBackgroundColor, borderRadius, borderTopStartRadius, borderTopEndRadius, borderBottomStartRadius, borderBottomEndRadius, borderColor, dangerouslySetBorderColor, borderStartColor, borderEndColor, borderTopColor, borderBottomColor, borderWidth, borderVerticalWidth, borderHorizontalWidth, borderStartWidth, borderEndWidth, borderTopWidth, borderBottomWidth, alignContent, alignItems, alignSelf, flex, flexDirection, flexGrow, flexShrink, flexWrap, justifyContent, display = "flex", overflow, spacing, spacingHorizontal, spacingVertical, spacingBottom, spacingEnd, spacingStart, spacingTop, offset, offsetVertical, offsetHorizontal, offsetBottom, offsetEnd, offsetStart, offsetTop, columnGap, rowGap, width, height, minWidth, maxWidth, minHeight, maxHeight, dropShadow, insetShadow, style, ref, ...props }) {
38
- const elevationAlias = elevation !== void 0 ? `elevation-${elevation}` : void 0;
39
- const variants = {
40
- backgroundColor: backgroundColor ?? elevationAlias,
41
- borderRadius,
42
- borderTopStartRadius,
43
- borderTopEndRadius,
44
- borderBottomStartRadius,
45
- borderBottomEndRadius,
46
- borderColor: borderColor ?? elevationAlias,
47
- borderStartColor,
48
- borderEndColor,
49
- borderTopColor,
50
- borderBottomColor,
51
- borderWidth: borderWidth ?? elevationAlias,
52
- borderVerticalWidth,
53
- borderHorizontalWidth,
54
- borderStartWidth,
55
- borderEndWidth,
56
- borderTopWidth,
57
- borderBottomWidth,
58
- alignContent,
59
- alignItems,
60
- alignSelf,
61
- flex,
62
- flexDirection,
63
- flexGrow,
64
- flexShrink,
65
- flexWrap,
66
- justifyContent,
67
- display,
68
- overflow,
69
- spacing,
70
- spacingHorizontal,
71
- spacingVertical,
72
- spacingBottom,
73
- spacingEnd,
74
- spacingStart,
75
- spacingTop,
76
- offset,
77
- offsetVertical,
78
- offsetHorizontal,
79
- offsetBottom,
80
- offsetEnd,
81
- offsetStart,
82
- offsetTop,
83
- columnGap,
84
- rowGap
85
- };
86
- styles.useVariants(variants);
87
- const effectiveDropShadow = dropShadow ?? elevationAlias;
88
- const shadowStyle = effectiveDropShadow || insetShadow ? shadowSheet.shadow(effectiveDropShadow, insetShadow) : void 0;
89
- return /* @__PURE__ */ jsx(View, {
90
- ref,
91
- style: useMemo(() => [
92
- dangerouslySetBackgroundColor ? { backgroundColor: dangerouslySetBackgroundColor } : void 0,
93
- dangerouslySetBorderColor ? { borderColor: dangerouslySetBorderColor } : void 0,
94
- width ? { width } : void 0,
95
- height ? { height } : void 0,
96
- minWidth ? { minWidth } : void 0,
97
- maxWidth ? { maxWidth } : void 0,
98
- minHeight ? { minHeight } : void 0,
99
- maxHeight ? { maxHeight } : void 0,
100
- shadowStyle,
101
- styles.foundation,
102
- style
103
- ], [
104
- dangerouslySetBackgroundColor,
105
- dangerouslySetBorderColor,
106
- width,
107
- height,
108
- minWidth,
109
- maxWidth,
110
- minHeight,
111
- maxHeight,
112
- shadowStyle,
113
- styles.foundation,
114
- style
115
- ]),
116
- ...props
117
- });
118
- });
119
- Box.displayName = "Box";
120
- /**
121
- * Dynamic shadow stylesheet that merges drop and inset shadows into a single
122
- * boxShadow CSS string. Theme-reactive so shadows update on color mode change.
123
- */
124
- const shadowSheet = StyleSheet.create((theme) => ({ shadow: (drop, inset) => {
125
- const parts = [drop ? theme.boxShadow.drop[drop] : "", inset ? theme.boxShadow.inset[inset] : ""].filter(Boolean);
126
- return parts.length > 0 ? { boxShadow: parts.join(", ") } : {};
127
- } }));
128
-
129
- //#endregion
130
- export { Box };
131
- //# sourceMappingURL=Box.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Box.mjs","names":[],"sources":["../../src/components/Box.tsx"],"sourcesContent":["import type { ElevationLevel } from '@yahoo/uds-types';\nimport type { Ref } from 'react';\nimport { memo, useMemo } from 'react';\nimport type { ViewProps } from 'react-native';\nimport { View } from 'react-native';\nimport { StyleSheet } from 'react-native-unistyles';\n\nimport type { StyleProps } from '../../generated/styles';\nimport { styles } from '../../generated/styles';\nimport type { SizeProps } from '../types';\n\ninterface BoxProps extends ViewProps, SizeProps {\n ref?: Ref<View>;\n elevation?: ElevationLevel;\n backgroundColor?: StyleProps['backgroundColor'];\n borderRadius?: StyleProps['borderRadius'];\n borderTopStartRadius?: StyleProps['borderTopStartRadius'];\n borderTopEndRadius?: StyleProps['borderTopEndRadius'];\n borderBottomStartRadius?: StyleProps['borderBottomStartRadius'];\n borderBottomEndRadius?: StyleProps['borderBottomEndRadius'];\n borderColor?: StyleProps['borderColor'];\n borderStartColor?: StyleProps['borderStartColor'];\n borderEndColor?: StyleProps['borderEndColor'];\n borderTopColor?: StyleProps['borderTopColor'];\n borderBottomColor?: StyleProps['borderBottomColor'];\n borderWidth?: StyleProps['borderWidth'];\n borderVerticalWidth?: StyleProps['borderVerticalWidth'];\n borderHorizontalWidth?: StyleProps['borderHorizontalWidth'];\n borderStartWidth?: StyleProps['borderStartWidth'];\n borderEndWidth?: StyleProps['borderEndWidth'];\n borderTopWidth?: StyleProps['borderTopWidth'];\n borderBottomWidth?: StyleProps['borderBottomWidth'];\n alignContent?: StyleProps['alignContent'];\n alignItems?: StyleProps['alignItems'];\n alignSelf?: StyleProps['alignSelf'];\n flex?: StyleProps['flex'];\n flexDirection?: StyleProps['flexDirection'];\n flexGrow?: StyleProps['flexGrow'];\n flexShrink?: StyleProps['flexShrink'];\n flexWrap?: StyleProps['flexWrap'];\n justifyContent?: StyleProps['justifyContent'];\n // flexBasis?: StyleProps['flexBasis'];\n display?: StyleProps['display'];\n overflow?: StyleProps['overflow'];\n // overflowX?: StyleProps['overflowX'];\n // overflowY?: StyleProps['overflowY'];\n // position?: StyleProps['position'];\n spacing?: StyleProps['spacing'];\n spacingHorizontal?: StyleProps['spacingHorizontal'];\n spacingVertical?: StyleProps['spacingVertical'];\n spacingBottom?: StyleProps['spacingBottom'];\n spacingEnd?: StyleProps['spacingEnd'];\n spacingStart?: StyleProps['spacingStart'];\n spacingTop?: StyleProps['spacingTop'];\n offset?: StyleProps['offset'];\n offsetVertical?: StyleProps['offsetVertical'];\n offsetHorizontal?: StyleProps['offsetHorizontal'];\n offsetBottom?: StyleProps['offsetBottom'];\n offsetEnd?: StyleProps['offsetEnd'];\n offsetStart?: StyleProps['offsetStart'];\n offsetTop?: StyleProps['offsetTop'];\n columnGap?: StyleProps['columnGap'];\n rowGap?: StyleProps['rowGap'];\n dropShadow?: StyleProps['dropShadow'];\n insetShadow?: StyleProps['insetShadow'];\n dangerouslySetBackgroundColor?: string;\n dangerouslySetBorderColor?: string;\n}\n\n/**\n * **📦 A layout component that can be used to compose other components**\n *\n * @description\n * The most simple component we ship - a View. But with all the power of the UDS design system.\n * By default, `Box` is a flexbox container. When working with vertical or horizontal layouts,\n * consider using VStack or HStack respectively.\n *\n * @category Layout\n * @platform mobile\n *\n * @example\n * ```tsx\n * import { Box } from '@yahoo/uds-mobile';\n *\n * <Box backgroundColor=\"primary\" spacing=\"6\">\n * Any kind of content can go here!\n * </Box>\n * ```\n *\n * @usage\n * - Use as a container to apply padding, shapes, or other styling\n * - Use for creating card components\n * - Use HStack/VStack for directional layouts\n *\n * @see {@link HStack} for horizontal layouts\n * @see {@link VStack} for vertical layouts\n */\nconst Box = memo(function Box({\n // elevation\n elevation,\n // background\n backgroundColor,\n dangerouslySetBackgroundColor,\n // border\n borderRadius,\n borderTopStartRadius,\n borderTopEndRadius,\n borderBottomStartRadius,\n borderBottomEndRadius,\n borderColor,\n dangerouslySetBorderColor,\n borderStartColor,\n borderEndColor,\n borderTopColor,\n borderBottomColor,\n borderWidth,\n borderVerticalWidth,\n borderHorizontalWidth,\n borderStartWidth,\n borderEndWidth,\n borderTopWidth,\n borderBottomWidth,\n // flex\n alignContent,\n alignItems,\n alignSelf,\n flex,\n flexDirection,\n flexGrow,\n flexShrink,\n flexWrap,\n justifyContent,\n // flexBasis,\n // layout\n display = 'flex',\n overflow,\n // overflowX,\n // overflowY,\n // position,\n // spacing\n spacing,\n spacingHorizontal,\n spacingVertical,\n spacingBottom,\n spacingEnd,\n spacingStart,\n spacingTop,\n offset,\n offsetVertical,\n offsetHorizontal,\n offsetBottom,\n offsetEnd,\n offsetStart,\n offsetTop,\n columnGap,\n rowGap,\n // size\n width,\n height,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight,\n // shadow\n dropShadow,\n insetShadow,\n // // nested border radius\n // nestedBorderRadius,\n // nestedBorderRadiusSize = nestedBorderRadius ? borderRadius : undefined,\n // nestedBorderRadiusSpacing = nestedBorderRadius ? spacing : undefined,\n // nestedBorderRadiusWidth = nestedBorderRadius ? borderWidth : undefined,\n // style - extracted to merge with variants\n style,\n ref,\n // rest\n ...props\n}: BoxProps) {\n const elevationAlias = elevation !== undefined ? (`elevation-${elevation}` as const) : undefined;\n\n const variants = {\n // background\n backgroundColor: backgroundColor ?? elevationAlias,\n // border\n borderRadius,\n borderTopStartRadius,\n borderTopEndRadius,\n borderBottomStartRadius,\n borderBottomEndRadius,\n // nestedBorderRadius,\n // nestedBorderRadiusSize,\n // nestedBorderRadiusSpacing,\n // nestedBorderRadiusWidth,\n borderColor: borderColor ?? elevationAlias,\n borderStartColor,\n borderEndColor,\n borderTopColor,\n borderBottomColor,\n borderWidth: borderWidth ?? elevationAlias,\n borderVerticalWidth,\n borderHorizontalWidth,\n borderStartWidth,\n borderEndWidth,\n borderTopWidth,\n borderBottomWidth,\n // flex\n alignContent,\n alignItems,\n alignSelf,\n flex,\n flexDirection,\n flexGrow,\n flexShrink,\n flexWrap,\n justifyContent,\n // flexBasis,\n // layout\n display,\n overflow,\n // overflowX,\n // overflowY,\n // position,\n // spacing\n spacing,\n spacingHorizontal,\n spacingVertical,\n spacingBottom,\n spacingEnd,\n spacingStart,\n spacingTop,\n offset,\n offsetVertical,\n offsetHorizontal,\n offsetBottom,\n offsetEnd,\n offsetStart,\n offsetTop,\n columnGap,\n rowGap,\n // rest\n };\n\n styles.useVariants(variants);\n\n const effectiveDropShadow = dropShadow ?? elevationAlias;\n const shadowStyle =\n effectiveDropShadow || insetShadow\n ? shadowSheet.shadow(effectiveDropShadow, insetShadow)\n : undefined;\n\n // styles.foundation must be in deps - it returns a new reference when variants change\n const boxStyles = useMemo(\n () => [\n dangerouslySetBackgroundColor\n ? { backgroundColor: dangerouslySetBackgroundColor }\n : undefined,\n dangerouslySetBorderColor ? { borderColor: dangerouslySetBorderColor } : undefined,\n width ? { width } : undefined,\n height ? { height } : undefined,\n minWidth ? { minWidth } : undefined,\n maxWidth ? { maxWidth } : undefined,\n minHeight ? { minHeight } : undefined,\n maxHeight ? { maxHeight } : undefined,\n shadowStyle,\n styles.foundation,\n style,\n ],\n [\n dangerouslySetBackgroundColor,\n dangerouslySetBorderColor,\n width,\n height,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight,\n shadowStyle,\n styles.foundation,\n style,\n ],\n );\n\n // Merge variant styles with user-provided style prop\n // User styles come last so they can override variant styles if needed\n return <View ref={ref} style={boxStyles} {...props} />;\n});\n\nBox.displayName = 'Box';\n\n/**\n * Dynamic shadow stylesheet that merges drop and inset shadows into a single\n * boxShadow CSS string. Theme-reactive so shadows update on color mode change.\n */\nconst shadowSheet = StyleSheet.create((theme) => ({\n shadow: (drop?: string, inset?: string) => {\n const parts = [\n drop ? theme.boxShadow.drop[drop as keyof typeof theme.boxShadow.drop] : '',\n inset ? theme.boxShadow.inset[inset as keyof typeof theme.boxShadow.inset] : '',\n ].filter(Boolean);\n return parts.length > 0 ? { boxShadow: parts.join(', ') } : {};\n },\n}));\n\nexport { Box, type BoxProps };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiGA,MAAM,MAAM,KAAK,SAAS,IAAI,EAE5B,WAEA,iBACA,+BAEA,cACA,sBACA,oBACA,yBACA,uBACA,aACA,2BACA,kBACA,gBACA,gBACA,mBACA,aACA,qBACA,uBACA,kBACA,gBACA,gBACA,mBAEA,cACA,YACA,WACA,MACA,eACA,UACA,YACA,UACA,gBAGA,UAAU,QACV,UAKA,SACA,mBACA,iBACA,eACA,YACA,cACA,YACA,QACA,gBACA,kBACA,cACA,WACA,aACA,WACA,WACA,QAEA,OACA,QACA,UACA,UACA,WACA,WAEA,YACA,aAOA,OACA,KAEA,GAAG,SACQ;CACX,MAAM,iBAAiB,cAAc,SAAa,aAAa,cAAwB;CAEvF,MAAM,WAAW;EAEf,iBAAiB,mBAAmB;EAEpC;EACA;EACA;EACA;EACA;EAKA,aAAa,eAAe;EAC5B;EACA;EACA;EACA;EACA,aAAa,eAAe;EAC5B;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAKA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAED;AAED,QAAO,YAAY,SAAS;CAE5B,MAAM,sBAAsB,cAAc;CAC1C,MAAM,cACJ,uBAAuB,cACnB,YAAY,OAAO,qBAAqB,YAAY,GACpD;AAoCN,QAAO,oBAAC;EAAU;EAAK,OAjCL,cACV;GACJ,gCACI,EAAE,iBAAiB,+BAA+B,GAClD;GACJ,4BAA4B,EAAE,aAAa,2BAA2B,GAAG;GACzE,QAAQ,EAAE,OAAO,GAAG;GACpB,SAAS,EAAE,QAAQ,GAAG;GACtB,WAAW,EAAE,UAAU,GAAG;GAC1B,WAAW,EAAE,UAAU,GAAG;GAC1B,YAAY,EAAE,WAAW,GAAG;GAC5B,YAAY,EAAE,WAAW,GAAG;GAC5B;GACA,OAAO;GACP;GACD,EACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,OAAO;GACP;GACD,CACF;EAIwC,GAAI;GAAS;EACtD;AAEF,IAAI,cAAc;;;;;AAMlB,MAAM,cAAc,WAAW,QAAQ,WAAW,EAChD,SAAS,MAAe,UAAmB;CACzC,MAAM,QAAQ,CACZ,OAAO,MAAM,UAAU,KAAK,QAA6C,IACzE,QAAQ,MAAM,UAAU,MAAM,SAA+C,GAC9E,CAAC,OAAO,QAAQ;AACjB,QAAO,MAAM,SAAS,IAAI,EAAE,WAAW,MAAM,KAAK,KAAK,EAAE,GAAG,EAAE;GAEjE,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.d.mts","names":[],"sources":["../../src/components/Button.tsx"],"mappings":";;;;;;;;;UA8GU,WAAA,SAAoB,IAAA,CAAK,gBAAA;;EAEjC,OAAA,GAAU,iBAAA;EAFF;EAIR,IAAA,GAAO,UAAA;;EAEP,WAAA,GAAc,WAAA;EAJJ;EAMV,SAAA,GAAY,YAAA;EAFE;EAId,OAAA,GAAU,YAAA;EAAA;EAEV,OAAA;EAWU;EATV,QAAA;EAd4B;EAgB5B,QAAA,GAAW,KAAA,CAAM,SAAA;EAhBe;;;;EAqBhC,cAAA;EAjBA;EAmBA,GAAA,GAAM,GAAA,CAAI,IAAA;AAAA;;;;;;;;;;;;;;;;;AAAI;;;;;;;;;;;;;;;;cAuCV,MAAA,EAAM,KAAA,CAAA,oBAAA,CAAA,WAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.mjs","names":["Text"],"sources":["../../src/components/Button.tsx"],"sourcesContent":["import type { ButtonSize, ButtonVariantFlat, IconSize, IconVariant } from '@yahoo/uds-types';\nimport type { Ref } from 'react';\nimport { isValidElement, memo, useCallback, useMemo, useState } from 'react';\nimport type { View } from 'react-native';\nimport { ActivityIndicator } from 'react-native';\nimport Animated, {\n Easing,\n interpolate,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withSpring,\n withTiming,\n} from 'react-native-reanimated';\nimport { useAnimatedTheme } from 'react-native-unistyles/reanimated';\n\nimport { buttonStyles } from '../../generated/styles';\nimport { BUTTON_SPRING_CONFIG, SCALE_EFFECTS } from '../motion';\nimport type { IconSlotType } from './IconSlot';\nimport { IconSlot } from './IconSlot';\nimport type { PressableProps } from './Pressable';\nimport { AnimatedPressable } from './Pressable';\nimport { Text } from './Text';\n\n/* -------------------------------------------------------------------------- */\n/* Animation Helpers */\n/* -------------------------------------------------------------------------- */\n\n/**\n * Interpolates a boxShadow string by scaling the alpha of all colors.\n * This allows smooth fade-in/out of shadows.\n */\nfunction interpolateShadowAlpha(shadow: string | undefined, alpha: number): string {\n 'worklet';\n if (!shadow) {\n return '';\n }\n if (alpha >= 1) {\n return shadow;\n }\n if (alpha <= 0) {\n return '';\n }\n\n return shadow.replace(/rgba\\(([^,]+),\\s*([^,]+),\\s*([^,]+),\\s*([^)]+)\\)/g, (_, r, g, b, a) => {\n const newAlpha = parseFloat(a) * alpha;\n return `rgba(${r}, ${g}, ${b}, ${newAlpha.toFixed(3)})`;\n });\n}\n\n/* -------------------------------------------------------------------------- */\n/* Animated Icon Slot */\n/* -------------------------------------------------------------------------- */\n\n/**\n * Animated wrapper for icon/loading content.\n * Matches web Button icon animation: scale 0.7→1, opacity 0→1, width 0→auto\n * Uses staggered animation: opacity waits until halfway through width animation.\n */\nfunction AnimatedIconSlot({\n children,\n visible,\n iconSize,\n gap,\n}: {\n children: React.ReactNode;\n visible: boolean;\n iconSize: number;\n gap: number;\n}) {\n // Use useDerivedValue instead of useEffect + useSharedValue\n // This is the idiomatic Reanimated pattern for deriving animated values from React state\n const progress = useDerivedValue(\n () => withSpring(visible ? 1 : 0, BUTTON_SPRING_CONFIG),\n [visible],\n );\n\n const animatedStyle = useAnimatedStyle(() => {\n // Total width includes icon + gap when visible\n const totalWidth = iconSize + gap;\n const width = interpolate(progress.value, [0, 1], [0, totalWidth]);\n\n // Staggered animation: opacity starts at 50% of width animation\n // On enter: width expands first, then icon fades in\n // On exit: icon fades out first, then width collapses\n const opacity = interpolate(progress.value, [0.5, 1], [0, 1], 'clamp');\n const scale = interpolate(progress.value, [0.5, 1], [0.7, 1], 'clamp');\n\n return {\n width,\n opacity,\n transform: [{ scale }],\n overflow: 'hidden' as const,\n };\n });\n\n return <Animated.View style={animatedStyle}>{children}</Animated.View>;\n}\n\n// function LoadingIcon({ size, variant }: { size: ButtonSize, variant: ButtonVariantFlat }) {\n// const { theme } = useUnistyles();\n// const themeKey = `buttonVariant${variantToCapitalMap[variant]}IconRest` as const;\n// const iconSize = theme.components.buttonSizeLgIconRest.fontSize;\n// return <ActivityIndicator size={iconSize} color={theme.colors.text.primary} />;\n// }\n\n/* -------------------------------------------------------------------------- */\n/* Button Props */\n/* -------------------------------------------------------------------------- */\n\ninterface ButtonProps extends Omit<PressableProps, 'children' | 'disabled'> {\n /** The visual style variant of the button @default 'primary' */\n variant?: ButtonVariantFlat;\n /** The size of the button @default 'md' */\n size?: ButtonSize;\n /** The icon style variant @default 'outline' */\n iconVariant?: IconVariant;\n /** Icon displayed before the button label */\n startIcon?: IconSlotType;\n /** Icon displayed after the button label */\n endIcon?: IconSlotType;\n /** Shows a loading spinner and disables the button */\n loading?: boolean;\n /** Whether the button is disabled */\n disabled?: boolean;\n /** Button label content */\n children?: React.ReactNode;\n /**\n * Disable motion effects (scale on press, icon animations)\n * @default false\n */\n disableEffects?: boolean;\n /** Ref to the underlying View */\n ref?: Ref<View>;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Button Component */\n/* -------------------------------------------------------------------------- */\n\n/**\n * **🖲️ A button element that can be used to trigger an action**\n *\n * @description\n * A button is a fundamental component used to trigger an action or event.\n * Buttons are interactive elements that users can click, tap, or otherwise\n * engage with to submit forms, open dialogues, or perform any other interaction.\n *\n * Features animated scale effect on press and smooth icon transitions matching\n * the web UDS Button behavior.\n *\n * @category Interactive\n * @platform mobile\n *\n * @example\n * ```tsx\n * import { Button } from '@yahoo/uds-mobile';\n *\n * <Button onPress={() => console.log('pressed')}>Save</Button>\n * <Button variant=\"secondary\">Cancel</Button>\n * <Button startIcon=\"Add\" variant=\"brand\">Add Item</Button>\n * <Button loading>Saving...</Button>\n * ```\n *\n * @accessibility\n * - Sets `accessibilityRole=\"button\"` automatically\n * - Announces loading state to screen readers\n * - Use `accessibilityLabel` for icon-only buttons\n *\n * @see {@link IconButton} for icon-only buttons\n * @see {@link Link} for navigation actions\n */\nconst Button = memo(function Button({\n variant = 'primary',\n size = 'md',\n iconVariant = 'outline',\n startIcon,\n endIcon,\n loading,\n disabled,\n width: _width,\n children,\n style,\n accessibilityLabel,\n accessibilityHint,\n disableEffects = false,\n onPressIn,\n onPressOut,\n ref,\n ...props\n}: ButtonProps) {\n const shouldAnimate = !disableEffects;\n\n /* --------------------------------- State ---------------------------------- */\n const [pressed, setPressed] = useState(false);\n\n buttonStyles.useVariants({ size, variant, disabled, pressed });\n\n // Get gap and icon size from current variant styles\n const buttonGap = buttonStyles.root.gap;\n const iconSize = buttonStyles.icon.fontSize;\n\n // Get animated theme for boxShadow (useAnimatedVariantColor doesn't support non-color props)\n const animatedTheme = useAnimatedTheme();\n\n /* ------------------------------- Animation -------------------------------- */\n const scale = useSharedValue<number>(SCALE_EFFECTS.none);\n\n const handlePressIn = useCallback(\n (event: Parameters<NonNullable<PressableProps['onPressIn']>>[0]) => {\n setPressed(true);\n if (shouldAnimate) {\n scale.value = withSpring(SCALE_EFFECTS.down, BUTTON_SPRING_CONFIG);\n }\n onPressIn?.(event);\n },\n [shouldAnimate, scale, onPressIn],\n );\n\n const handlePressOut = useCallback(\n (event: Parameters<NonNullable<PressableProps['onPressOut']>>[0]) => {\n setPressed(false);\n if (shouldAnimate) {\n scale.value = withSpring(SCALE_EFFECTS.none, BUTTON_SPRING_CONFIG);\n }\n onPressOut?.(event);\n },\n [shouldAnimate, scale, onPressOut],\n );\n\n /* -------------------------------- Content --------------------------------- */\n const childrenNode =\n children &&\n (isValidElement(children) ? (\n children\n ) : (\n <Text numberOfLines={1} textAlign=\"center\" style={buttonStyles.text}>\n {children}\n </Text>\n ));\n\n const a11yState = useMemo(() => ({ disabled, busy: loading }), [disabled, loading]);\n\n /* --------------------------------- Styles --------------------------------- */\n // Animate pressed state for shadow (0 = rest, 1 = pressed)\n const pressProgress = useDerivedValue(\n () => withTiming(pressed ? 1 : 0, { duration: 220, easing: Easing.bezier(0, 0, 0.2, 1) }),\n [pressed],\n );\n\n // Animate using Unistyles' variant color system + boxShadow from theme\n const animatedStyles = useAnimatedStyle(() => {\n // Get boxShadow from theme using flattened path (no camelCase conversion needed!)\n const components = animatedTheme.value.components;\n const buttonVariantPath = `button/variant/${variant}/root/pressed` as const;\n const shadowPressed = components[buttonVariantPath]?.boxShadow;\n\n return {\n transform: [{ scale: scale.value }],\n // Only animate shadow if the theme defines one for this variant\n ...(shadowPressed && {\n boxShadow: interpolateShadowAlpha(shadowPressed, pressProgress.value),\n }),\n };\n });\n\n // Determine what should be visible in start slot\n const showLoading = !!loading;\n const showStartIcon = !!startIcon && !loading;\n const showEndIcon = !!endIcon && !loading;\n\n const iconSizeToken = (buttonStyles.icon.iconSizeToken as IconSize) ?? 'sm';\n\n // Start slot: either loading spinner or start icon\n const startContent = (\n <AnimatedIconSlot visible={showLoading || showStartIcon} iconSize={iconSize} gap={buttonGap}>\n {showLoading ? (\n <ActivityIndicator size={buttonStyles.icon.fontSize} color={buttonStyles.icon.color} />\n ) : (\n <IconSlot\n icon={startIcon}\n size={iconSizeToken}\n variant={iconVariant}\n style={buttonStyles.icon}\n />\n )}\n </AnimatedIconSlot>\n );\n\n // End slot: only end icon (no loading here)\n const endContent = (\n <AnimatedIconSlot visible={showEndIcon} iconSize={iconSize} gap={buttonGap}>\n <IconSlot\n icon={endIcon}\n size={iconSizeToken}\n variant={iconVariant}\n style={buttonStyles.icon}\n />\n </AnimatedIconSlot>\n );\n\n const rootStyles = useMemo(\n () => [\n buttonStyles.root,\n animatedStyles,\n typeof style === 'function' ? style({ pressed }) : style,\n ],\n [buttonStyles.root, animatedStyles, style, pressed],\n );\n\n /* --------------------------------- Render --------------------------------- */\n return (\n <AnimatedPressable\n ref={ref}\n disabled={disabled}\n onPressIn={handlePressIn}\n onPressOut={handlePressOut}\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent=\"center\"\n overflow=\"hidden\"\n accessibilityLabel={loading ? `${accessibilityLabel ?? ''}, loading` : accessibilityLabel}\n accessibilityHint={accessibilityHint}\n accessibilityRole=\"button\"\n accessibilityState={a11yState}\n alignContent=\"center\"\n style={rootStyles}\n {...props}\n >\n {startContent}\n {childrenNode}\n {endContent}\n </AnimatedPressable>\n );\n});\n\nButton.displayName = 'Button';\n\nexport { Button, type ButtonProps };\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Checkbox.d.mts","names":[],"sources":["../../src/components/Checkbox.tsx"],"mappings":";;;;;;;UAyBU,aAAA,SAAsB,IAAA,CAAK,SAAA,YAAqB,sBAAA;;EAExD,GAAA,GAAM,GAAA,CAAI,IAAA;EAFF;EAIR,cAAA;;EAEA,QAAA;EAJU;EAMV,QAAA;EAR8B;EAU9B,QAAA,IAAY,OAAA;AAAA;;;;;;;;;;;;;;;AAAgB;;;;;;;;;;;;;;;;;;;;cAqDxB,QAAA,EAAQ,KAAA,CAAA,oBAAA,CAAA,aAAA"}