@yahoo/uds-mobile 2.7.1 → 2.9.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 (321) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +12 -22
  2. package/dist/_virtual/_rolldown/runtime.js +6 -11
  3. package/dist/bin/fixtures/dist/index.mjs +17 -20
  4. package/dist/bin/fonts/dist/index.mjs +22 -13
  5. package/dist/bin/generateTheme.mjs +2 -5
  6. package/dist/bin/mobile/scripts/utils/configToRNMappings.mjs +1 -2
  7. package/dist/bin/modes/dist/index.mjs +1 -2
  8. package/dist/bin/palette/dist/index.mjs +15 -4
  9. package/dist/bin/uds-mobile.mjs +1 -3
  10. package/dist/components/AndroidBackHandler.cjs +3 -5
  11. package/dist/components/AndroidBackHandler.js +1 -2
  12. package/dist/components/AndroidBackHandler.js.map +1 -1
  13. package/dist/components/Avatar.cjs +6 -8
  14. package/dist/components/Avatar.d.cts +2 -2
  15. package/dist/components/Avatar.d.cts.map +1 -1
  16. package/dist/components/Avatar.d.ts +2 -2
  17. package/dist/components/Avatar.d.ts.map +1 -1
  18. package/dist/components/Avatar.js +1 -2
  19. package/dist/components/Avatar.js.map +1 -1
  20. package/dist/components/Badge.cjs +6 -8
  21. package/dist/components/Badge.d.cts +2 -2
  22. package/dist/components/Badge.d.cts.map +1 -1
  23. package/dist/components/Badge.d.ts +2 -2
  24. package/dist/components/Badge.d.ts.map +1 -1
  25. package/dist/components/Badge.js +1 -2
  26. package/dist/components/Badge.js.map +1 -1
  27. package/dist/components/Banner/Banner.cjs +7 -9
  28. package/dist/components/Banner/Banner.d.cts +2 -2
  29. package/dist/components/Banner/Banner.d.cts.map +1 -1
  30. package/dist/components/Banner/Banner.d.ts +2 -2
  31. package/dist/components/Banner/Banner.d.ts.map +1 -1
  32. package/dist/components/Banner/Banner.js +1 -2
  33. package/dist/components/Banner/Banner.js.map +1 -1
  34. package/dist/components/Banner/BannerContent.cjs +3 -5
  35. package/dist/components/Banner/BannerContent.d.cts +2 -2
  36. package/dist/components/Banner/BannerContent.d.cts.map +1 -1
  37. package/dist/components/Banner/BannerContent.d.ts +2 -2
  38. package/dist/components/Banner/BannerContent.d.ts.map +1 -1
  39. package/dist/components/Banner/BannerContent.js +1 -2
  40. package/dist/components/Banner/BannerContent.js.map +1 -1
  41. package/dist/components/Banner/BannerDescription.cjs +4 -6
  42. package/dist/components/Banner/BannerDescription.d.cts +2 -2
  43. package/dist/components/Banner/BannerDescription.d.cts.map +1 -1
  44. package/dist/components/Banner/BannerDescription.d.ts +2 -2
  45. package/dist/components/Banner/BannerDescription.d.ts.map +1 -1
  46. package/dist/components/Banner/BannerDescription.js +1 -2
  47. package/dist/components/Banner/BannerDescription.js.map +1 -1
  48. package/dist/components/Banner/BannerTitle.cjs +4 -6
  49. package/dist/components/Banner/BannerTitle.d.cts +2 -2
  50. package/dist/components/Banner/BannerTitle.d.cts.map +1 -1
  51. package/dist/components/Banner/BannerTitle.d.ts +2 -2
  52. package/dist/components/Banner/BannerTitle.d.ts.map +1 -1
  53. package/dist/components/Banner/BannerTitle.js +1 -2
  54. package/dist/components/Banner/BannerTitle.js.map +1 -1
  55. package/dist/components/Banner/index.cjs +6 -7
  56. package/dist/components/Banner/index.js +1 -2
  57. package/dist/components/Banner/utils.cjs +3 -5
  58. package/dist/components/Banner/utils.js +1 -2
  59. package/dist/components/Banner/utils.js.map +1 -1
  60. package/dist/components/BlurTarget.cjs +3 -5
  61. package/dist/components/BlurTarget.d.cts +2 -2
  62. package/dist/components/BlurTarget.d.cts.map +1 -1
  63. package/dist/components/BlurTarget.d.ts +2 -2
  64. package/dist/components/BlurTarget.d.ts.map +1 -1
  65. package/dist/components/BlurTarget.js +1 -2
  66. package/dist/components/BlurTarget.js.map +1 -1
  67. package/dist/components/BottomSheet/BottomSheet.cjs +16 -18
  68. package/dist/components/BottomSheet/BottomSheet.d.cts +2 -2
  69. package/dist/components/BottomSheet/BottomSheet.d.cts.map +1 -1
  70. package/dist/components/BottomSheet/BottomSheet.d.ts +2 -2
  71. package/dist/components/BottomSheet/BottomSheet.d.ts.map +1 -1
  72. package/dist/components/BottomSheet/BottomSheet.js +1 -2
  73. package/dist/components/BottomSheet/BottomSheet.js.map +1 -1
  74. package/dist/components/BottomSheet/BottomSheetContent.cjs +4 -6
  75. package/dist/components/BottomSheet/BottomSheetContent.d.cts +2 -2
  76. package/dist/components/BottomSheet/BottomSheetContent.d.cts.map +1 -1
  77. package/dist/components/BottomSheet/BottomSheetContent.d.ts +2 -2
  78. package/dist/components/BottomSheet/BottomSheetContent.d.ts.map +1 -1
  79. package/dist/components/BottomSheet/BottomSheetContent.js +1 -2
  80. package/dist/components/BottomSheet/BottomSheetContent.js.map +1 -1
  81. package/dist/components/BottomSheet/BottomSheetDismiss.cjs +4 -6
  82. package/dist/components/BottomSheet/BottomSheetDismiss.d.cts +2 -2
  83. package/dist/components/BottomSheet/BottomSheetDismiss.d.cts.map +1 -1
  84. package/dist/components/BottomSheet/BottomSheetDismiss.d.ts +2 -2
  85. package/dist/components/BottomSheet/BottomSheetDismiss.d.ts.map +1 -1
  86. package/dist/components/BottomSheet/BottomSheetDismiss.js +1 -2
  87. package/dist/components/BottomSheet/BottomSheetDismiss.js.map +1 -1
  88. package/dist/components/BottomSheet/BottomSheetHandle.cjs +5 -7
  89. package/dist/components/BottomSheet/BottomSheetHandle.d.cts +2 -2
  90. package/dist/components/BottomSheet/BottomSheetHandle.d.cts.map +1 -1
  91. package/dist/components/BottomSheet/BottomSheetHandle.d.ts +2 -2
  92. package/dist/components/BottomSheet/BottomSheetHandle.d.ts.map +1 -1
  93. package/dist/components/BottomSheet/BottomSheetHandle.js +1 -2
  94. package/dist/components/BottomSheet/BottomSheetHandle.js.map +1 -1
  95. package/dist/components/BottomSheet/BottomSheetHeader.cjs +4 -6
  96. package/dist/components/BottomSheet/BottomSheetHeader.d.cts +2 -2
  97. package/dist/components/BottomSheet/BottomSheetHeader.d.cts.map +1 -1
  98. package/dist/components/BottomSheet/BottomSheetHeader.d.ts +2 -2
  99. package/dist/components/BottomSheet/BottomSheetHeader.d.ts.map +1 -1
  100. package/dist/components/BottomSheet/BottomSheetHeader.js +1 -2
  101. package/dist/components/BottomSheet/BottomSheetHeader.js.map +1 -1
  102. package/dist/components/BottomSheet/BottomSheetInternalProvider.cjs +3 -5
  103. package/dist/components/BottomSheet/BottomSheetInternalProvider.d.cts +2 -2
  104. package/dist/components/BottomSheet/BottomSheetInternalProvider.d.cts.map +1 -1
  105. package/dist/components/BottomSheet/BottomSheetInternalProvider.d.ts +2 -2
  106. package/dist/components/BottomSheet/BottomSheetInternalProvider.d.ts.map +1 -1
  107. package/dist/components/BottomSheet/BottomSheetInternalProvider.js +1 -2
  108. package/dist/components/BottomSheet/BottomSheetInternalProvider.js.map +1 -1
  109. package/dist/components/BottomSheet/BottomSheetProvider.cjs +4 -6
  110. package/dist/components/BottomSheet/BottomSheetProvider.d.cts +2 -2
  111. package/dist/components/BottomSheet/BottomSheetProvider.d.cts.map +1 -1
  112. package/dist/components/BottomSheet/BottomSheetProvider.d.ts +2 -2
  113. package/dist/components/BottomSheet/BottomSheetProvider.d.ts.map +1 -1
  114. package/dist/components/BottomSheet/BottomSheetProvider.js +1 -2
  115. package/dist/components/BottomSheet/BottomSheetProvider.js.map +1 -1
  116. package/dist/components/BottomSheet/BottomSheetTrigger.cjs +4 -6
  117. package/dist/components/BottomSheet/BottomSheetTrigger.d.cts +2 -2
  118. package/dist/components/BottomSheet/BottomSheetTrigger.d.cts.map +1 -1
  119. package/dist/components/BottomSheet/BottomSheetTrigger.d.ts +2 -2
  120. package/dist/components/BottomSheet/BottomSheetTrigger.d.ts.map +1 -1
  121. package/dist/components/BottomSheet/BottomSheetTrigger.js +1 -2
  122. package/dist/components/BottomSheet/BottomSheetTrigger.js.map +1 -1
  123. package/dist/components/BottomSheet/index.cjs +10 -11
  124. package/dist/components/BottomSheet/index.js +1 -2
  125. package/dist/components/BottomSheet/useBottomSheetDrag.cjs +4 -6
  126. package/dist/components/BottomSheet/useBottomSheetDrag.js +1 -2
  127. package/dist/components/BottomSheet/useBottomSheetDrag.js.map +1 -1
  128. package/dist/components/BottomSheet/useBottomSheetScroll.cjs +4 -6
  129. package/dist/components/BottomSheet/useBottomSheetScroll.d.cts +5 -5
  130. package/dist/components/BottomSheet/useBottomSheetScroll.d.ts +5 -5
  131. package/dist/components/BottomSheet/useBottomSheetScroll.js +1 -2
  132. package/dist/components/BottomSheet/useBottomSheetScroll.js.map +1 -1
  133. package/dist/components/BottomSheet/useBottomSheetSnapModel.cjs +6 -8
  134. package/dist/components/BottomSheet/useBottomSheetSnapModel.js +3 -4
  135. package/dist/components/BottomSheet/useBottomSheetSnapModel.js.map +1 -1
  136. package/dist/components/BottomSheet/useBottomSheetStore.cjs +3 -5
  137. package/dist/components/BottomSheet/useBottomSheetStore.js +1 -2
  138. package/dist/components/BottomSheet/useBottomSheetStore.js.map +1 -1
  139. package/dist/components/BottomSheet/useExpansionMargins.cjs +4 -6
  140. package/dist/components/BottomSheet/useExpansionMargins.js +1 -2
  141. package/dist/components/BottomSheet/useExpansionMargins.js.map +1 -1
  142. package/dist/components/BottomSheet/useKeyboardAvoidance.cjs +3 -5
  143. package/dist/components/BottomSheet/useKeyboardAvoidance.js +1 -2
  144. package/dist/components/BottomSheet/useKeyboardAvoidance.js.map +1 -1
  145. package/dist/components/BottomSheet/utils.cjs +2 -4
  146. package/dist/components/BottomSheet/utils.js +1 -1
  147. package/dist/components/BottomSheet/utils.js.map +1 -1
  148. package/dist/components/Box.cjs +3 -5
  149. package/dist/components/Box.d.cts +2 -2
  150. package/dist/components/Box.d.cts.map +1 -1
  151. package/dist/components/Box.d.ts +2 -2
  152. package/dist/components/Box.d.ts.map +1 -1
  153. package/dist/components/Box.js +1 -2
  154. package/dist/components/Box.js.map +1 -1
  155. package/dist/components/Button.cjs +8 -10
  156. package/dist/components/Button.d.cts +2 -2
  157. package/dist/components/Button.d.cts.map +1 -1
  158. package/dist/components/Button.d.ts +2 -2
  159. package/dist/components/Button.d.ts.map +1 -1
  160. package/dist/components/Button.js +1 -2
  161. package/dist/components/Button.js.map +1 -1
  162. package/dist/components/Checkbox.cjs +9 -11
  163. package/dist/components/Checkbox.d.cts +2 -2
  164. package/dist/components/Checkbox.d.cts.map +1 -1
  165. package/dist/components/Checkbox.d.ts +2 -2
  166. package/dist/components/Checkbox.d.ts.map +1 -1
  167. package/dist/components/Checkbox.js +1 -2
  168. package/dist/components/Checkbox.js.map +1 -1
  169. package/dist/components/Chip.cjs +7 -9
  170. package/dist/components/Chip.d.cts +2 -2
  171. package/dist/components/Chip.d.cts.map +1 -1
  172. package/dist/components/Chip.d.ts +2 -2
  173. package/dist/components/Chip.d.ts.map +1 -1
  174. package/dist/components/Chip.js +1 -2
  175. package/dist/components/Chip.js.map +1 -1
  176. package/dist/components/HStack.cjs +4 -6
  177. package/dist/components/HStack.d.cts +2 -2
  178. package/dist/components/HStack.d.cts.map +1 -1
  179. package/dist/components/HStack.d.ts +2 -2
  180. package/dist/components/HStack.d.ts.map +1 -1
  181. package/dist/components/HStack.js +1 -2
  182. package/dist/components/HStack.js.map +1 -1
  183. package/dist/components/Icon.cjs +3 -5
  184. package/dist/components/Icon.d.cts +4 -4
  185. package/dist/components/Icon.d.cts.map +1 -1
  186. package/dist/components/Icon.d.ts +4 -4
  187. package/dist/components/Icon.d.ts.map +1 -1
  188. package/dist/components/Icon.js +1 -2
  189. package/dist/components/Icon.js.map +1 -1
  190. package/dist/components/IconButton.cjs +7 -9
  191. package/dist/components/IconButton.d.cts +2 -2
  192. package/dist/components/IconButton.d.cts.map +1 -1
  193. package/dist/components/IconButton.d.ts +2 -2
  194. package/dist/components/IconButton.d.ts.map +1 -1
  195. package/dist/components/IconButton.js +1 -2
  196. package/dist/components/IconButton.js.map +1 -1
  197. package/dist/components/IconSlot.cjs +4 -6
  198. package/dist/components/IconSlot.d.cts +2 -2
  199. package/dist/components/IconSlot.d.cts.map +1 -1
  200. package/dist/components/IconSlot.d.ts +2 -2
  201. package/dist/components/IconSlot.d.ts.map +1 -1
  202. package/dist/components/IconSlot.js +1 -2
  203. package/dist/components/IconSlot.js.map +1 -1
  204. package/dist/components/Image.cjs +3 -5
  205. package/dist/components/Image.d.cts +2 -2
  206. package/dist/components/Image.d.cts.map +1 -1
  207. package/dist/components/Image.d.ts +2 -2
  208. package/dist/components/Image.d.ts.map +1 -1
  209. package/dist/components/Image.js +1 -2
  210. package/dist/components/Image.js.map +1 -1
  211. package/dist/components/Input.cjs +7 -9
  212. package/dist/components/Input.d.cts +2 -2
  213. package/dist/components/Input.d.cts.map +1 -1
  214. package/dist/components/Input.d.ts +2 -2
  215. package/dist/components/Input.d.ts.map +1 -1
  216. package/dist/components/Input.js +1 -2
  217. package/dist/components/Input.js.map +1 -1
  218. package/dist/components/Link.cjs +4 -6
  219. package/dist/components/Link.d.cts +2 -2
  220. package/dist/components/Link.d.cts.map +1 -1
  221. package/dist/components/Link.d.ts +2 -2
  222. package/dist/components/Link.d.ts.map +1 -1
  223. package/dist/components/Link.js +1 -2
  224. package/dist/components/Link.js.map +1 -1
  225. package/dist/components/Pressable.cjs +3 -5
  226. package/dist/components/Pressable.d.cts +4 -4
  227. package/dist/components/Pressable.d.cts.map +1 -1
  228. package/dist/components/Pressable.d.ts +4 -4
  229. package/dist/components/Pressable.d.ts.map +1 -1
  230. package/dist/components/Pressable.js +1 -2
  231. package/dist/components/Pressable.js.map +1 -1
  232. package/dist/components/Radio.cjs +8 -10
  233. package/dist/components/Radio.d.cts +2 -2
  234. package/dist/components/Radio.d.cts.map +1 -1
  235. package/dist/components/Radio.d.ts +2 -2
  236. package/dist/components/Radio.d.ts.map +1 -1
  237. package/dist/components/Radio.js +1 -2
  238. package/dist/components/Radio.js.map +1 -1
  239. package/dist/components/Screen.cjs +5 -7
  240. package/dist/components/Screen.d.cts +2 -2
  241. package/dist/components/Screen.d.cts.map +1 -1
  242. package/dist/components/Screen.d.ts +2 -2
  243. package/dist/components/Screen.d.ts.map +1 -1
  244. package/dist/components/Screen.js +1 -2
  245. package/dist/components/Screen.js.map +1 -1
  246. package/dist/components/Scrim.cjs +4 -6
  247. package/dist/components/Scrim.d.cts +2 -2
  248. package/dist/components/Scrim.d.cts.map +1 -1
  249. package/dist/components/Scrim.d.ts +2 -2
  250. package/dist/components/Scrim.d.ts.map +1 -1
  251. package/dist/components/Scrim.js +1 -2
  252. package/dist/components/Scrim.js.map +1 -1
  253. package/dist/components/Switch.cjs +6 -8
  254. package/dist/components/Switch.d.cts +2 -2
  255. package/dist/components/Switch.d.cts.map +1 -1
  256. package/dist/components/Switch.d.ts +2 -2
  257. package/dist/components/Switch.d.ts.map +1 -1
  258. package/dist/components/Switch.js +1 -2
  259. package/dist/components/Switch.js.map +1 -1
  260. package/dist/components/Text.cjs +3 -5
  261. package/dist/components/Text.d.cts +2 -2
  262. package/dist/components/Text.d.cts.map +1 -1
  263. package/dist/components/Text.d.ts +2 -2
  264. package/dist/components/Text.d.ts.map +1 -1
  265. package/dist/components/Text.js +1 -2
  266. package/dist/components/Text.js.map +1 -1
  267. package/dist/components/UDSProvider.cjs +4 -6
  268. package/dist/components/UDSProvider.d.cts +2 -2
  269. package/dist/components/UDSProvider.d.cts.map +1 -1
  270. package/dist/components/UDSProvider.d.ts +2 -2
  271. package/dist/components/UDSProvider.d.ts.map +1 -1
  272. package/dist/components/UDSProvider.js +1 -2
  273. package/dist/components/UDSProvider.js.map +1 -1
  274. package/dist/components/VStack.cjs +4 -6
  275. package/dist/components/VStack.d.cts +2 -2
  276. package/dist/components/VStack.d.cts.map +1 -1
  277. package/dist/components/VStack.d.ts +2 -2
  278. package/dist/components/VStack.d.ts.map +1 -1
  279. package/dist/components/VStack.js +1 -2
  280. package/dist/components/VStack.js.map +1 -1
  281. package/dist/jest/index.cjs +8 -10
  282. package/dist/jest/index.js +1 -2
  283. package/dist/jest/index.js.map +1 -1
  284. package/dist/jest/mocks/icons.cjs +8 -11
  285. package/dist/jest/mocks/icons.js +1 -2
  286. package/dist/jest/mocks/icons.js.map +1 -1
  287. package/dist/jest/mocks/react-native.cjs +6 -5
  288. package/dist/jest/mocks/react-native.js +1 -2
  289. package/dist/jest/mocks/react-native.js.map +1 -1
  290. package/dist/jest/mocks/reanimated.cjs +11 -10
  291. package/dist/jest/mocks/reanimated.js +1 -2
  292. package/dist/jest/mocks/reanimated.js.map +1 -1
  293. package/dist/jest/mocks/styles.cjs +8 -11
  294. package/dist/jest/mocks/styles.js +1 -2
  295. package/dist/jest/mocks/styles.js.map +1 -1
  296. package/dist/jest/mocks/svg.cjs +11 -10
  297. package/dist/jest/mocks/svg.js +2 -3
  298. package/dist/jest/mocks/svg.js.map +1 -1
  299. package/dist/jest/mocks/unistyles.cjs +8 -11
  300. package/dist/jest/mocks/unistyles.js +1 -2
  301. package/dist/jest/mocks/unistyles.js.map +1 -1
  302. package/dist/jest/setup.cjs +6 -8
  303. package/dist/jest/setup.js +1 -2
  304. package/dist/jest/setup.js.map +1 -1
  305. package/dist/motion-tokens/dist/index.cjs +1 -3
  306. package/dist/motion-tokens/dist/index.js +1 -1
  307. package/dist/motion-tokens/dist/index.js.map +1 -1
  308. package/dist/motion.cjs +3 -5
  309. package/dist/motion.js +1 -2
  310. package/dist/motion.js.map +1 -1
  311. package/dist/native/UDSScreenCornerRadiusModule.cjs +2 -4
  312. package/dist/native/UDSScreenCornerRadiusModule.js +1 -1
  313. package/dist/portal.cjs +3 -5
  314. package/dist/portal.d.cts +2 -2
  315. package/dist/portal.d.cts.map +1 -1
  316. package/dist/portal.d.ts +2 -2
  317. package/dist/portal.d.ts.map +1 -1
  318. package/dist/portal.js +1 -2
  319. package/dist/portal.js.map +1 -1
  320. package/fonts/uds-icons.ttf +0 -0
  321. package/package.json +1 -1
@@ -5,7 +5,6 @@ import { HStack } from "./HStack.js";
5
5
  import { memo, useMemo } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { badgeStyles } from "../../generated/styles";
8
-
9
8
  //#region src/components/Badge.tsx
10
9
  /**
11
10
  * **A badge component for status indicators**
@@ -72,7 +71,7 @@ const Badge = memo(function Badge({ variant = "primary", size = "md", minWidth,
72
71
  });
73
72
  });
74
73
  Badge.displayName = "Badge";
75
-
76
74
  //#endregion
77
75
  export { Badge };
76
+
78
77
  //# sourceMappingURL=Badge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","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
+ {"version":3,"file":"Badge.js","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,QAAD;EACO;EACL,YAAW;EACX,UAAS;EACT,WAAU;EACA;EACA;EACqB;EACJ;EAE3B,OAbe,cAAc,CAAC,YAAY,MAAM,MAAM,EAAE,CAAC,OAAO,YAAY,KAAK,CAahE;EACjB,GAAI;YAXN;GAaG,aACC,oBAAC,UAAD;IACE,MAAM;IACN,SAAQ;IACR,qBAAqB;IACrB,OAAO,YAAY;IACnB,CAAA;GAEJ,oBAAC,MAAD;IACE,eAAe;IACf,YAAW;IACU;IACrB,OAAO,YAAY;IAElB;IACI,CAAA;GACN,WACC,oBAAC,UAAD;IACE,MAAM;IACN,SAAQ;IACR,qBAAqB;IACrB,OAAO,YAAY;IACnB,CAAA;GAEG;;EAEX;AAEF,MAAM,cAAc"}
@@ -1,15 +1,14 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
4
- const require_components_IconSlot = require('../IconSlot.cjs');
5
- const require_components_Text = require('../Text.cjs');
6
- const require_components_IconButton = require('../IconButton.cjs');
7
- const require_components_Banner_utils = require('./utils.cjs');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("../../_virtual/_rolldown/runtime.cjs");
4
+ const require_components_IconSlot = require("../IconSlot.cjs");
5
+ const require_components_Text = require("../Text.cjs");
6
+ const require_components_IconButton = require("../IconButton.cjs");
7
+ const require_components_Banner_utils = require("./utils.cjs");
8
8
  let react = require("react");
9
9
  let react_native = require("react-native");
10
10
  let react_jsx_runtime = require("react/jsx-runtime");
11
11
  let generated_styles = require("../../../generated/styles");
12
-
13
12
  //#region src/components/Banner/Banner.tsx
14
13
  /**
15
14
  * Inject button variants on Button children that don't have an explicit
@@ -174,6 +173,5 @@ const internalStyles = react_native.StyleSheet.create({
174
173
  dismissButton: { flexShrink: 0 },
175
174
  alignStart: { alignSelf: "flex-start" }
176
175
  });
177
-
178
176
  //#endregion
179
- exports.Banner = Banner;
177
+ exports.Banner = Banner;
@@ -1,7 +1,7 @@
1
1
 
2
2
  import { UniversalBannerProps } from "../../types/dist/index.cjs";
3
3
  import { IconSlotType } from "../IconSlot.cjs";
4
- import * as react from "react";
4
+ import * as _$react from "react";
5
5
  import { Ref } from "react";
6
6
  import { View, ViewProps } from "react-native";
7
7
 
@@ -53,7 +53,7 @@ interface BannerProps extends ViewProps, UniversalBannerProps<IconSlotType> {
53
53
  *
54
54
  * @see {@link Badge} for status indicators
55
55
  */
56
- declare const Banner: react.NamedExoticComponent<BannerProps>;
56
+ declare const Banner: _$react.NamedExoticComponent<BannerProps>;
57
57
  //#endregion
58
58
  export { Banner, type BannerProps };
59
59
  //# sourceMappingURL=Banner.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.d.cts","names":[],"sources":["../../../src/components/Banner/Banner.tsx"],"mappings":";;;;;;;;UAkEU,WAAA,SAAoB,SAAA,EAAW,oBAAA,CAAqB,YAAA;;EAE5D,yBAAA;EAFQ;EAIR,GAAA,GAAM,GAAA,CAAI,IAAA;AAAA;;;;;;;;;;;;;;;;;AAAI;;;;;;;;;;;;;;;;;;;;;;;;;cA4CV,MAAA,EAAM,KAAA,CAAA,oBAAA,CAAA,WAAA"}
1
+ {"version":3,"file":"Banner.d.cts","names":[],"sources":["../../../src/components/Banner/Banner.tsx"],"mappings":";;;;;;;;UAkEU,WAAA,SAAoB,SAAA,EAAW,oBAAA,CAAqB,YAAA;;EAE5D,yBAAA;EAFQ;EAIR,GAAA,GAAM,GAAA,CAAI,IAAA;AAAA;;;;;;;;;;;;;;;;;AAAI;;;;;;;;;;;;;;;;;;;;;;;;;cA4CV,MAAA,EAAM,OAAA,CAAA,oBAAA,CAAA,WAAA"}
@@ -1,7 +1,7 @@
1
1
 
2
2
  import { UniversalBannerProps } from "../../types/dist/index.js";
3
3
  import { IconSlotType } from "../IconSlot.js";
4
- import * as react from "react";
4
+ import * as _$react from "react";
5
5
  import { Ref } from "react";
6
6
  import { View, ViewProps } from "react-native";
7
7
 
@@ -53,7 +53,7 @@ interface BannerProps extends ViewProps, UniversalBannerProps<IconSlotType> {
53
53
  *
54
54
  * @see {@link Badge} for status indicators
55
55
  */
56
- declare const Banner: react.NamedExoticComponent<BannerProps>;
56
+ declare const Banner: _$react.NamedExoticComponent<BannerProps>;
57
57
  //#endregion
58
58
  export { Banner, type BannerProps };
59
59
  //# sourceMappingURL=Banner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.d.ts","names":[],"sources":["../../../src/components/Banner/Banner.tsx"],"mappings":";;;;;;;;UAkEU,WAAA,SAAoB,SAAA,EAAW,oBAAA,CAAqB,YAAA;;EAE5D,yBAAA;EAFQ;EAIR,GAAA,GAAM,GAAA,CAAI,IAAA;AAAA;;;;;;;;;;;;;;;;;AAAI;;;;;;;;;;;;;;;;;;;;;;;;;cA4CV,MAAA,EAAM,KAAA,CAAA,oBAAA,CAAA,WAAA"}
1
+ {"version":3,"file":"Banner.d.ts","names":[],"sources":["../../../src/components/Banner/Banner.tsx"],"mappings":";;;;;;;;UAkEU,WAAA,SAAoB,SAAA,EAAW,oBAAA,CAAqB,YAAA;;EAE5D,yBAAA;EAFQ;EAIR,GAAA,GAAM,GAAA,CAAI,IAAA;AAAA;;;;;;;;;;;;;;;;;AAAI;;;;;;;;;;;;;;;;;;;;;;;;;cA4CV,MAAA,EAAM,OAAA,CAAA,oBAAA,CAAA,WAAA"}
@@ -7,7 +7,6 @@ import { cloneElement, isValidElement, memo, useMemo } from "react";
7
7
  import { StyleSheet, View } from "react-native";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { bannerStyles } from "../../../generated/styles";
10
-
11
10
  //#region src/components/Banner/Banner.tsx
12
11
  /**
13
12
  * Inject button variants on Button children that don't have an explicit
@@ -172,7 +171,7 @@ const internalStyles = StyleSheet.create({
172
171
  dismissButton: { flexShrink: 0 },
173
172
  alignStart: { alignSelf: "flex-start" }
174
173
  });
175
-
176
174
  //#endregion
177
175
  export { Banner };
176
+
178
177
  //# sourceMappingURL=Banner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","names":["RNView","Text"],"sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import type { BannerVariant, UniversalBannerProps } from '@yahoo/uds-types';\nimport type { ReactNode, Ref } from 'react';\nimport { cloneElement, isValidElement, memo, useMemo } from 'react';\nimport type { View, ViewProps } from 'react-native';\nimport { StyleSheet, View as RNView } from 'react-native';\n\nimport { bannerStyles } from '../../../generated/styles';\nimport { IconButton } from '../IconButton';\nimport type { IconSlotType } from '../IconSlot';\nimport { IconSlot } from '../IconSlot';\nimport { Text } from '../Text';\nimport { BANNER_TO_BUTTON_VARIANT, hasDisplayName, separateChildren } from './utils';\n\n/**\n * Inject button variants on Button children that don't have an explicit\n * variant set. The last unset Button gets the banner-mapped \"primary\"\n * variant; any preceding unset Buttons get \"secondary\".\n * When stacked (3+ actions), buttons get full width.\n */\nfunction bindActionVariants(\n actions: ReactNode[],\n bannerVariant: BannerVariant,\n stacked: boolean,\n): ReactNode[] {\n const primaryVariant = BANNER_TO_BUTTON_VARIANT[bannerVariant];\n\n const unsetIndices: number[] = [];\n actions.forEach((child, i) => {\n if (\n hasDisplayName(child, 'Button') &&\n isValidElement<{ variant?: string }>(child) &&\n child.props.variant === undefined\n ) {\n unsetIndices.push(i);\n }\n });\n\n return actions.map((child, i) => {\n const extraProps: Record<string, unknown> = {};\n\n // Auto-bind variant on Buttons without explicit variant\n if (unsetIndices.includes(i)) {\n const isLast = i === unsetIndices[unsetIndices.length - 1];\n extraProps.variant = isLast ? primaryVariant : 'secondary';\n }\n\n // When stacked, non-Button children (e.g. Link) should not stretch full width\n if (stacked && !hasDisplayName(child, 'Button') && isValidElement<ViewProps>(child)) {\n extraProps.style = [child.props.style, { alignSelf: 'flex-start' as const }];\n }\n\n if (Object.keys(extraProps).length === 0) {\n return child;\n }\n\n return cloneElement(child as React.ReactElement, {\n key: (child as React.ReactElement).key ?? i,\n ...extraProps,\n });\n });\n}\n\n// ---------------------------------------------------------------------------\n// Banner\n// ---------------------------------------------------------------------------\n\ninterface BannerProps extends ViewProps, UniversalBannerProps<IconSlotType> {\n /** Accessible label for the dismiss button. @default \"Dismiss\" */\n dismissAccessibilityLabel?: string;\n /** Ref to the underlying View. */\n ref?: Ref<View>;\n}\n\n/**\n * **An inline notification banner for contextual messages with optional actions.**\n *\n * @description\n * Banner is an inline, non-floating notification component that sits in normal document flow.\n * It supports 12 color variants, an optional icon, title, description (truncated to 3 lines),\n * composable actions via children, and an optional dismiss button.\n *\n * On mobile the layout is always column: content stacks above actions.\n *\n * @category Display\n * @platform mobile\n *\n * @example\n * ```tsx\n * import { Banner, BannerContent, BannerTitle, BannerDescription } from '@yahoo/uds-mobile/Banner';\n * import { Button } from '@yahoo/uds-mobile/Button';\n * import { Link } from '@yahoo/uds-mobile/Link';\n *\n * // Simple\n * <Banner variant=\"info\" startIcon=\"Info\" title=\"Update available\" />\n *\n * // With actions\n * <Banner variant=\"brand\" startIcon=\"Megaphone\" title=\"Notification\"\n * description=\"Description text.\" onDismiss={() => {}}>\n * <Link>Learn more</Link>\n * <Button size=\"sm\">Primary</Button>\n * </Banner>\n *\n * // Rich content\n * <Banner variant=\"alert\" startIcon=\"Error\" onDismiss={() => {}}>\n * <BannerContent>\n * <BannerTitle>Error occurred</BannerTitle>\n * <BannerDescription>Something went wrong.</BannerDescription>\n * </BannerContent>\n * <Button size=\"sm\">Retry</Button>\n * </Banner>\n * ```\n *\n * @see {@link Badge} for status indicators\n */\nconst Banner = memo(function Banner({\n variant = 'primary',\n startIcon,\n title,\n description,\n onDismiss,\n dismissAccessibilityLabel = 'Dismiss',\n children,\n style,\n ref,\n ...rest\n}: BannerProps) {\n const hasTitle = !!(typeof title === 'string' ? title.trim() : title);\n const hasDescription = !!(typeof description === 'string' ? description.trim() : description);\n\n bannerStyles.useVariants({ variant });\n\n const rootGap = bannerStyles.root.gap ?? 0;\n const closeIconSize = bannerStyles.close.iconSizeToken ?? 'xs';\n\n // Separate BannerContent from action children, bind button variants\n const { content: bannerContent, actions: rawActions } = separateChildren(children);\n const stacked = rawActions.length >= 3;\n const actions = bindActionVariants(rawActions, variant, stacked);\n const hasActions = actions.length > 0;\n\n // Build the content area: either explicit BannerContent or auto-generated from props\n const contentArea =\n bannerContent ??\n (hasTitle || hasDescription ? (\n <RNView style={internalStyles.contentArea}>\n {hasTitle && (\n <Text numberOfLines={1} style={bannerStyles.title}>\n {title}\n </Text>\n )}\n {hasDescription && (\n <Text numberOfLines={3} style={bannerStyles.description}>\n {description}\n </Text>\n )}\n </RNView>\n ) : null);\n\n // Center icon/dismiss when content is single-line (title-only or description-only).\n // BannerContent is excluded — we can't inspect its children to know the line count.\n const isSingleLine = !bannerContent && hasTitle !== hasDescription;\n\n const rootStyles = useMemo(\n () => [bannerStyles.root, internalStyles.root, style],\n [bannerStyles.root, style],\n );\n\n return (\n <RNView ref={ref} style={rootStyles} {...rest}>\n {startIcon && (\n <IconSlot\n icon={startIcon}\n variant=\"fill\"\n style={[\n bannerStyles.icon,\n internalStyles.iconShrink,\n isSingleLine ? internalStyles.alignCenter : internalStyles.alignStart,\n ]}\n />\n )}\n\n <RNView\n style={[\n internalStyles.innerWrapper,\n { rowGap: rootGap },\n isSingleLine ? internalStyles.alignCenter : undefined,\n ]}\n >\n {contentArea}\n\n {hasActions && (\n <RNView style={stacked ? internalStyles.actionsStacked : internalStyles.actionsRow}>\n {actions}\n </RNView>\n )}\n </RNView>\n\n {onDismiss && (\n <IconButton\n name=\"Cross\"\n variant=\"tertiary\"\n size={closeIconSize}\n iconColor=\"primary\"\n accessibilityLabel={dismissAccessibilityLabel}\n onPress={onDismiss}\n style={[\n internalStyles.dismissButton,\n isSingleLine ? internalStyles.alignCenter : internalStyles.alignStart,\n ]}\n hitSlop={12}\n disableEffects\n />\n )}\n </RNView>\n );\n});\n\nBanner.displayName = 'Banner';\n\nconst internalStyles = StyleSheet.create({\n root: {\n flexDirection: 'row',\n minWidth: 300,\n },\n alignCenter: {\n alignSelf: 'center',\n },\n innerWrapper: {\n flex: 1,\n minWidth: 0,\n flexDirection: 'column',\n alignItems: 'flex-start',\n },\n contentArea: {\n minWidth: 0,\n rowGap: 2,\n },\n actionsRow: {\n flexDirection: 'row',\n alignItems: 'center',\n alignSelf: 'stretch',\n columnGap: 6,\n },\n actionsStacked: {\n flexDirection: 'column',\n alignItems: 'stretch',\n alignSelf: 'stretch',\n rowGap: 6,\n },\n iconShrink: {\n flexShrink: 0,\n },\n dismissButton: {\n flexShrink: 0,\n },\n alignStart: {\n alignSelf: 'flex-start',\n },\n});\n\nexport { Banner, type BannerProps };\n"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,SAAS,mBACP,SACA,eACA,SACa;CACb,MAAM,iBAAiB,yBAAyB;CAEhD,MAAM,eAAyB,EAAE;AACjC,SAAQ,SAAS,OAAO,MAAM;AAC5B,MACE,eAAe,OAAO,SAAS,IAC/B,eAAqC,MAAM,IAC3C,MAAM,MAAM,YAAY,OAExB,cAAa,KAAK,EAAE;GAEtB;AAEF,QAAO,QAAQ,KAAK,OAAO,MAAM;EAC/B,MAAM,aAAsC,EAAE;AAG9C,MAAI,aAAa,SAAS,EAAE,CAE1B,YAAW,UADI,MAAM,aAAa,aAAa,SAAS,KAC1B,iBAAiB;AAIjD,MAAI,WAAW,CAAC,eAAe,OAAO,SAAS,IAAI,eAA0B,MAAM,CACjF,YAAW,QAAQ,CAAC,MAAM,MAAM,OAAO,EAAE,WAAW,cAAuB,CAAC;AAG9E,MAAI,OAAO,KAAK,WAAW,CAAC,WAAW,EACrC,QAAO;AAGT,SAAO,aAAa,OAA6B;GAC/C,KAAM,MAA6B,OAAO;GAC1C,GAAG;GACJ,CAAC;GACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDJ,MAAM,SAAS,KAAK,SAAS,OAAO,EAClC,UAAU,WACV,WACA,OACA,aACA,WACA,4BAA4B,WAC5B,UACA,OACA,KACA,GAAG,QACW;CACd,MAAM,WAAW,CAAC,EAAE,OAAO,UAAU,WAAW,MAAM,MAAM,GAAG;CAC/D,MAAM,iBAAiB,CAAC,EAAE,OAAO,gBAAgB,WAAW,YAAY,MAAM,GAAG;AAEjF,cAAa,YAAY,EAAE,SAAS,CAAC;CAErC,MAAM,UAAU,aAAa,KAAK,OAAO;CACzC,MAAM,gBAAgB,aAAa,MAAM,iBAAiB;CAG1D,MAAM,EAAE,SAAS,eAAe,SAAS,eAAe,iBAAiB,SAAS;CAClF,MAAM,UAAU,WAAW,UAAU;CACrC,MAAM,UAAU,mBAAmB,YAAY,SAAS,QAAQ;CAChE,MAAM,aAAa,QAAQ,SAAS;CAGpC,MAAM,cACJ,kBACC,YAAY,iBACX,qBAACA;EAAO,OAAO,eAAe;aAC3B,YACC,oBAACC;GAAK,eAAe;GAAG,OAAO,aAAa;aACzC;IACI,EAER,kBACC,oBAACA;GAAK,eAAe;GAAG,OAAO,aAAa;aACzC;IACI;GAEF,GACP;CAIN,MAAM,eAAe,CAAC,iBAAiB,aAAa;AAOpD,QACE,qBAACD;EAAY;EAAK,OAND,cACX;GAAC,aAAa;GAAM,eAAe;GAAM;GAAM,EACrD,CAAC,aAAa,MAAM,MAAM,CAC3B;EAGsC,GAAI;;GACtC,aACC,oBAAC;IACC,MAAM;IACN,SAAQ;IACR,OAAO;KACL,aAAa;KACb,eAAe;KACf,eAAe,eAAe,cAAc,eAAe;KAC5D;KACD;GAGJ,qBAACA;IACC,OAAO;KACL,eAAe;KACf,EAAE,QAAQ,SAAS;KACnB,eAAe,eAAe,cAAc;KAC7C;eAEA,aAEA,cACC,oBAACA;KAAO,OAAO,UAAU,eAAe,iBAAiB,eAAe;eACrE;MACM;KAEJ;GAER,aACC,oBAAC;IACC,MAAK;IACL,SAAQ;IACR,MAAM;IACN,WAAU;IACV,oBAAoB;IACpB,SAAS;IACT,OAAO,CACL,eAAe,eACf,eAAe,eAAe,cAAc,eAAe,WAC5D;IACD,SAAS;IACT;KACA;;GAEG;EAEX;AAEF,OAAO,cAAc;AAErB,MAAM,iBAAiB,WAAW,OAAO;CACvC,MAAM;EACJ,eAAe;EACf,UAAU;EACX;CACD,aAAa,EACX,WAAW,UACZ;CACD,cAAc;EACZ,MAAM;EACN,UAAU;EACV,eAAe;EACf,YAAY;EACb;CACD,aAAa;EACX,UAAU;EACV,QAAQ;EACT;CACD,YAAY;EACV,eAAe;EACf,YAAY;EACZ,WAAW;EACX,WAAW;EACZ;CACD,gBAAgB;EACd,eAAe;EACf,YAAY;EACZ,WAAW;EACX,QAAQ;EACT;CACD,YAAY,EACV,YAAY,GACb;CACD,eAAe,EACb,YAAY,GACb;CACD,YAAY,EACV,WAAW,cACZ;CACF,CAAC"}
1
+ {"version":3,"file":"Banner.js","names":["RNView","Text"],"sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import type { BannerVariant, UniversalBannerProps } from '@yahoo/uds-types';\nimport type { ReactNode, Ref } from 'react';\nimport { cloneElement, isValidElement, memo, useMemo } from 'react';\nimport type { View, ViewProps } from 'react-native';\nimport { StyleSheet, View as RNView } from 'react-native';\n\nimport { bannerStyles } from '../../../generated/styles';\nimport { IconButton } from '../IconButton';\nimport type { IconSlotType } from '../IconSlot';\nimport { IconSlot } from '../IconSlot';\nimport { Text } from '../Text';\nimport { BANNER_TO_BUTTON_VARIANT, hasDisplayName, separateChildren } from './utils';\n\n/**\n * Inject button variants on Button children that don't have an explicit\n * variant set. The last unset Button gets the banner-mapped \"primary\"\n * variant; any preceding unset Buttons get \"secondary\".\n * When stacked (3+ actions), buttons get full width.\n */\nfunction bindActionVariants(\n actions: ReactNode[],\n bannerVariant: BannerVariant,\n stacked: boolean,\n): ReactNode[] {\n const primaryVariant = BANNER_TO_BUTTON_VARIANT[bannerVariant];\n\n const unsetIndices: number[] = [];\n actions.forEach((child, i) => {\n if (\n hasDisplayName(child, 'Button') &&\n isValidElement<{ variant?: string }>(child) &&\n child.props.variant === undefined\n ) {\n unsetIndices.push(i);\n }\n });\n\n return actions.map((child, i) => {\n const extraProps: Record<string, unknown> = {};\n\n // Auto-bind variant on Buttons without explicit variant\n if (unsetIndices.includes(i)) {\n const isLast = i === unsetIndices[unsetIndices.length - 1];\n extraProps.variant = isLast ? primaryVariant : 'secondary';\n }\n\n // When stacked, non-Button children (e.g. Link) should not stretch full width\n if (stacked && !hasDisplayName(child, 'Button') && isValidElement<ViewProps>(child)) {\n extraProps.style = [child.props.style, { alignSelf: 'flex-start' as const }];\n }\n\n if (Object.keys(extraProps).length === 0) {\n return child;\n }\n\n return cloneElement(child as React.ReactElement, {\n key: (child as React.ReactElement).key ?? i,\n ...extraProps,\n });\n });\n}\n\n// ---------------------------------------------------------------------------\n// Banner\n// ---------------------------------------------------------------------------\n\ninterface BannerProps extends ViewProps, UniversalBannerProps<IconSlotType> {\n /** Accessible label for the dismiss button. @default \"Dismiss\" */\n dismissAccessibilityLabel?: string;\n /** Ref to the underlying View. */\n ref?: Ref<View>;\n}\n\n/**\n * **An inline notification banner for contextual messages with optional actions.**\n *\n * @description\n * Banner is an inline, non-floating notification component that sits in normal document flow.\n * It supports 12 color variants, an optional icon, title, description (truncated to 3 lines),\n * composable actions via children, and an optional dismiss button.\n *\n * On mobile the layout is always column: content stacks above actions.\n *\n * @category Display\n * @platform mobile\n *\n * @example\n * ```tsx\n * import { Banner, BannerContent, BannerTitle, BannerDescription } from '@yahoo/uds-mobile/Banner';\n * import { Button } from '@yahoo/uds-mobile/Button';\n * import { Link } from '@yahoo/uds-mobile/Link';\n *\n * // Simple\n * <Banner variant=\"info\" startIcon=\"Info\" title=\"Update available\" />\n *\n * // With actions\n * <Banner variant=\"brand\" startIcon=\"Megaphone\" title=\"Notification\"\n * description=\"Description text.\" onDismiss={() => {}}>\n * <Link>Learn more</Link>\n * <Button size=\"sm\">Primary</Button>\n * </Banner>\n *\n * // Rich content\n * <Banner variant=\"alert\" startIcon=\"Error\" onDismiss={() => {}}>\n * <BannerContent>\n * <BannerTitle>Error occurred</BannerTitle>\n * <BannerDescription>Something went wrong.</BannerDescription>\n * </BannerContent>\n * <Button size=\"sm\">Retry</Button>\n * </Banner>\n * ```\n *\n * @see {@link Badge} for status indicators\n */\nconst Banner = memo(function Banner({\n variant = 'primary',\n startIcon,\n title,\n description,\n onDismiss,\n dismissAccessibilityLabel = 'Dismiss',\n children,\n style,\n ref,\n ...rest\n}: BannerProps) {\n const hasTitle = !!(typeof title === 'string' ? title.trim() : title);\n const hasDescription = !!(typeof description === 'string' ? description.trim() : description);\n\n bannerStyles.useVariants({ variant });\n\n const rootGap = bannerStyles.root.gap ?? 0;\n const closeIconSize = bannerStyles.close.iconSizeToken ?? 'xs';\n\n // Separate BannerContent from action children, bind button variants\n const { content: bannerContent, actions: rawActions } = separateChildren(children);\n const stacked = rawActions.length >= 3;\n const actions = bindActionVariants(rawActions, variant, stacked);\n const hasActions = actions.length > 0;\n\n // Build the content area: either explicit BannerContent or auto-generated from props\n const contentArea =\n bannerContent ??\n (hasTitle || hasDescription ? (\n <RNView style={internalStyles.contentArea}>\n {hasTitle && (\n <Text numberOfLines={1} style={bannerStyles.title}>\n {title}\n </Text>\n )}\n {hasDescription && (\n <Text numberOfLines={3} style={bannerStyles.description}>\n {description}\n </Text>\n )}\n </RNView>\n ) : null);\n\n // Center icon/dismiss when content is single-line (title-only or description-only).\n // BannerContent is excluded — we can't inspect its children to know the line count.\n const isSingleLine = !bannerContent && hasTitle !== hasDescription;\n\n const rootStyles = useMemo(\n () => [bannerStyles.root, internalStyles.root, style],\n [bannerStyles.root, style],\n );\n\n return (\n <RNView ref={ref} style={rootStyles} {...rest}>\n {startIcon && (\n <IconSlot\n icon={startIcon}\n variant=\"fill\"\n style={[\n bannerStyles.icon,\n internalStyles.iconShrink,\n isSingleLine ? internalStyles.alignCenter : internalStyles.alignStart,\n ]}\n />\n )}\n\n <RNView\n style={[\n internalStyles.innerWrapper,\n { rowGap: rootGap },\n isSingleLine ? internalStyles.alignCenter : undefined,\n ]}\n >\n {contentArea}\n\n {hasActions && (\n <RNView style={stacked ? internalStyles.actionsStacked : internalStyles.actionsRow}>\n {actions}\n </RNView>\n )}\n </RNView>\n\n {onDismiss && (\n <IconButton\n name=\"Cross\"\n variant=\"tertiary\"\n size={closeIconSize}\n iconColor=\"primary\"\n accessibilityLabel={dismissAccessibilityLabel}\n onPress={onDismiss}\n style={[\n internalStyles.dismissButton,\n isSingleLine ? internalStyles.alignCenter : internalStyles.alignStart,\n ]}\n hitSlop={12}\n disableEffects\n />\n )}\n </RNView>\n );\n});\n\nBanner.displayName = 'Banner';\n\nconst internalStyles = StyleSheet.create({\n root: {\n flexDirection: 'row',\n minWidth: 300,\n },\n alignCenter: {\n alignSelf: 'center',\n },\n innerWrapper: {\n flex: 1,\n minWidth: 0,\n flexDirection: 'column',\n alignItems: 'flex-start',\n },\n contentArea: {\n minWidth: 0,\n rowGap: 2,\n },\n actionsRow: {\n flexDirection: 'row',\n alignItems: 'center',\n alignSelf: 'stretch',\n columnGap: 6,\n },\n actionsStacked: {\n flexDirection: 'column',\n alignItems: 'stretch',\n alignSelf: 'stretch',\n rowGap: 6,\n },\n iconShrink: {\n flexShrink: 0,\n },\n dismissButton: {\n flexShrink: 0,\n },\n alignStart: {\n alignSelf: 'flex-start',\n },\n});\n\nexport { Banner, type BannerProps };\n"],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("../../_virtual/_rolldown/runtime.cjs");
4
4
  let react = require("react");
5
5
  let react_native = require("react-native");
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
7
-
8
7
  //#region src/components/Banner/BannerContent.tsx
9
8
  /**
10
9
  * Container for rich banner content using BannerTitle and BannerDescription.
@@ -21,6 +20,5 @@ const BannerContent = (0, react.memo)(function BannerContent({ children }) {
21
20
  });
22
21
  });
23
22
  BannerContent.displayName = "BannerContent";
24
-
25
23
  //#endregion
26
- exports.BannerContent = BannerContent;
24
+ exports.BannerContent = BannerContent;
@@ -1,5 +1,5 @@
1
1
 
2
- import * as react from "react";
2
+ import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/components/Banner/BannerContent.d.ts
@@ -10,7 +10,7 @@ interface BannerContentProps {
10
10
  * Container for rich banner content using BannerTitle and BannerDescription.
11
11
  * When used as a child of Banner, replaces the auto-generated title/description area.
12
12
  */
13
- declare const BannerContent: react.NamedExoticComponent<BannerContentProps>;
13
+ declare const BannerContent: _$react.NamedExoticComponent<BannerContentProps>;
14
14
  //#endregion
15
15
  export { BannerContent, type BannerContentProps };
16
16
  //# sourceMappingURL=BannerContent.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerContent.d.cts","names":[],"sources":["../../../src/components/Banner/BannerContent.tsx"],"mappings":";;;;;UAIU,kBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAL2B;;;;AAAA,cAYjC,aAAA,EAAa,KAAA,CAAA,oBAAA,CAAA,kBAAA"}
1
+ {"version":3,"file":"BannerContent.d.cts","names":[],"sources":["../../../src/components/Banner/BannerContent.tsx"],"mappings":";;;;;UAIU,kBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAL2B;;;;AAAA,cAYjC,aAAA,EAAa,OAAA,CAAA,oBAAA,CAAA,kBAAA"}
@@ -1,5 +1,5 @@
1
1
 
2
- import * as react from "react";
2
+ import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/components/Banner/BannerContent.d.ts
@@ -10,7 +10,7 @@ interface BannerContentProps {
10
10
  * Container for rich banner content using BannerTitle and BannerDescription.
11
11
  * When used as a child of Banner, replaces the auto-generated title/description area.
12
12
  */
13
- declare const BannerContent: react.NamedExoticComponent<BannerContentProps>;
13
+ declare const BannerContent: _$react.NamedExoticComponent<BannerContentProps>;
14
14
  //#endregion
15
15
  export { BannerContent, type BannerContentProps };
16
16
  //# sourceMappingURL=BannerContent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerContent.d.ts","names":[],"sources":["../../../src/components/Banner/BannerContent.tsx"],"mappings":";;;;;UAIU,kBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAL2B;;;;AAAA,cAYjC,aAAA,EAAa,KAAA,CAAA,oBAAA,CAAA,kBAAA"}
1
+ {"version":3,"file":"BannerContent.d.ts","names":[],"sources":["../../../src/components/Banner/BannerContent.tsx"],"mappings":";;;;;UAIU,kBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAL2B;;;;AAAA,cAYjC,aAAA,EAAa,OAAA,CAAA,oBAAA,CAAA,kBAAA"}
@@ -2,7 +2,6 @@
2
2
  import { memo } from "react";
3
3
  import { View } from "react-native";
4
4
  import { jsx } from "react/jsx-runtime";
5
-
6
5
  //#region src/components/Banner/BannerContent.tsx
7
6
  /**
8
7
  * Container for rich banner content using BannerTitle and BannerDescription.
@@ -19,7 +18,7 @@ const BannerContent = memo(function BannerContent({ children }) {
19
18
  });
20
19
  });
21
20
  BannerContent.displayName = "BannerContent";
22
-
23
21
  //#endregion
24
22
  export { BannerContent };
23
+
25
24
  //# sourceMappingURL=BannerContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerContent.js","names":[],"sources":["../../../src/components/Banner/BannerContent.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { memo } from 'react';\nimport { View } from 'react-native';\n\ninterface BannerContentProps {\n children: ReactNode;\n}\n\n/**\n * Container for rich banner content using BannerTitle and BannerDescription.\n * When used as a child of Banner, replaces the auto-generated title/description area.\n */\nconst BannerContent = memo(function BannerContent({ children }: BannerContentProps) {\n return <View style={{ flex: 1, minWidth: 0, rowGap: 2 }}>{children}</View>;\n});\n\nBannerContent.displayName = 'BannerContent';\n\nexport { BannerContent, type BannerContentProps };\n"],"mappings":";;;;;;;;;;AAYA,MAAM,gBAAgB,KAAK,SAAS,cAAc,EAAE,YAAgC;AAClF,QAAO,oBAAC;EAAK,OAAO;GAAE,MAAM;GAAG,UAAU;GAAG,QAAQ;GAAG;EAAG;GAAgB;EAC1E;AAEF,cAAc,cAAc"}
1
+ {"version":3,"file":"BannerContent.js","names":[],"sources":["../../../src/components/Banner/BannerContent.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { memo } from 'react';\nimport { View } from 'react-native';\n\ninterface BannerContentProps {\n children: ReactNode;\n}\n\n/**\n * Container for rich banner content using BannerTitle and BannerDescription.\n * When used as a child of Banner, replaces the auto-generated title/description area.\n */\nconst BannerContent = memo(function BannerContent({ children }: BannerContentProps) {\n return <View style={{ flex: 1, minWidth: 0, rowGap: 2 }}>{children}</View>;\n});\n\nBannerContent.displayName = 'BannerContent';\n\nexport { BannerContent, type BannerContentProps };\n"],"mappings":";;;;;;;;;AAYA,MAAM,gBAAgB,KAAK,SAAS,cAAc,EAAE,YAAgC;AAClF,QAAO,oBAAC,MAAD;EAAM,OAAO;GAAE,MAAM;GAAG,UAAU;GAAG,QAAQ;GAAG;EAAG;EAAgB,CAAA;EAC1E;AAEF,cAAc,cAAc"}
@@ -1,11 +1,10 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
4
- const require_components_Text = require('../Text.cjs');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("../../_virtual/_rolldown/runtime.cjs");
4
+ const require_components_Text = require("../Text.cjs");
5
5
  let react = require("react");
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
7
7
  let generated_styles = require("../../../generated/styles");
8
-
9
8
  //#region src/components/Banner/BannerDescription.tsx
10
9
  /**
11
10
  * **Styled description for use inside `BannerContent`.**
@@ -41,6 +40,5 @@ const BannerDescription = (0, react.memo)(function BannerDescription({ children
41
40
  });
42
41
  });
43
42
  BannerDescription.displayName = "BannerDescription";
44
-
45
43
  //#endregion
46
- exports.BannerDescription = BannerDescription;
44
+ exports.BannerDescription = BannerDescription;
@@ -1,5 +1,5 @@
1
1
 
2
- import * as react from "react";
2
+ import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/components/Banner/BannerDescription.d.ts
@@ -31,7 +31,7 @@ interface BannerDescriptionProps {
31
31
  * @see {@link Banner} for the parent component
32
32
  * @see {@link BannerContent} for the required wrapper
33
33
  */
34
- declare const BannerDescription: react.NamedExoticComponent<BannerDescriptionProps>;
34
+ declare const BannerDescription: _$react.NamedExoticComponent<BannerDescriptionProps>;
35
35
  //#endregion
36
36
  export { BannerDescription, type BannerDescriptionProps };
37
37
  //# sourceMappingURL=BannerDescription.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerDescription.d.cts","names":[],"sources":["../../../src/components/Banner/BannerDescription.tsx"],"mappings":";;;;;UAMU,sBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAP2B;;;;;AAOlB;;;;;;;;;;;;;;;;;;;;AAPkB,cAmCjC,iBAAA,EAAiB,KAAA,CAAA,oBAAA,CAAA,sBAAA"}
1
+ {"version":3,"file":"BannerDescription.d.cts","names":[],"sources":["../../../src/components/Banner/BannerDescription.tsx"],"mappings":";;;;;UAMU,sBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAP2B;;;;;AAOlB;;;;;;;;;;;;;;;;;;;;AAPkB,cAmCjC,iBAAA,EAAiB,OAAA,CAAA,oBAAA,CAAA,sBAAA"}
@@ -1,5 +1,5 @@
1
1
 
2
- import * as react from "react";
2
+ import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/components/Banner/BannerDescription.d.ts
@@ -31,7 +31,7 @@ interface BannerDescriptionProps {
31
31
  * @see {@link Banner} for the parent component
32
32
  * @see {@link BannerContent} for the required wrapper
33
33
  */
34
- declare const BannerDescription: react.NamedExoticComponent<BannerDescriptionProps>;
34
+ declare const BannerDescription: _$react.NamedExoticComponent<BannerDescriptionProps>;
35
35
  //#endregion
36
36
  export { BannerDescription, type BannerDescriptionProps };
37
37
  //# sourceMappingURL=BannerDescription.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerDescription.d.ts","names":[],"sources":["../../../src/components/Banner/BannerDescription.tsx"],"mappings":";;;;;UAMU,sBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAP2B;;;;;AAOlB;;;;;;;;;;;;;;;;;;;;AAPkB,cAmCjC,iBAAA,EAAiB,KAAA,CAAA,oBAAA,CAAA,sBAAA"}
1
+ {"version":3,"file":"BannerDescription.d.ts","names":[],"sources":["../../../src/components/Banner/BannerDescription.tsx"],"mappings":";;;;;UAMU,sBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAP2B;;;;;AAOlB;;;;;;;;;;;;;;;;;;;;AAPkB,cAmCjC,iBAAA,EAAiB,OAAA,CAAA,oBAAA,CAAA,sBAAA"}
@@ -3,7 +3,6 @@ import { Text } from "../Text.js";
3
3
  import { memo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { bannerStyles } from "../../../generated/styles";
6
-
7
6
  //#region src/components/Banner/BannerDescription.tsx
8
7
  /**
9
8
  * **Styled description for use inside `BannerContent`.**
@@ -39,7 +38,7 @@ const BannerDescription = memo(function BannerDescription({ children }) {
39
38
  });
40
39
  });
41
40
  BannerDescription.displayName = "BannerDescription";
42
-
43
41
  //#endregion
44
42
  export { BannerDescription };
43
+
45
44
  //# sourceMappingURL=BannerDescription.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerDescription.js","names":[],"sources":["../../../src/components/Banner/BannerDescription.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { memo } from 'react';\n\nimport { bannerStyles } from '../../../generated/styles';\nimport { Text } from '../Text';\n\ninterface BannerDescriptionProps {\n children: ReactNode;\n}\n\n/**\n * **Styled description for use inside `BannerContent`.**\n *\n * @description\n * Applies the Banner description typography tokens and truncates to 3 lines\n * via `numberOfLines={3}`. Use this subcomponent instead of the `description`\n * prop when you need rich ReactNode content.\n *\n * @platform mobile\n *\n * @example\n * ```tsx\n * <Banner variant=\"alert\" startIcon=\"Error\">\n * <BannerContent>\n * <BannerTitle>Something went wrong</BannerTitle>\n * <BannerDescription>\n * Please try again or contact support for help.\n * </BannerDescription>\n * </BannerContent>\n * </Banner>\n * ```\n *\n * @see {@link Banner} for the parent component\n * @see {@link BannerContent} for the required wrapper\n */\nconst BannerDescription = memo(function BannerDescription({ children }: BannerDescriptionProps) {\n bannerStyles.useVariants({});\n\n return (\n <Text numberOfLines={3} style={bannerStyles.description}>\n {children}\n </Text>\n );\n});\n\nBannerDescription.displayName = 'BannerDescription';\n\nexport { BannerDescription, type BannerDescriptionProps };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAM,oBAAoB,KAAK,SAAS,kBAAkB,EAAE,YAAoC;AAC9F,cAAa,YAAY,EAAE,CAAC;AAE5B,QACE,oBAAC;EAAK,eAAe;EAAG,OAAO,aAAa;EACzC;GACI;EAET;AAEF,kBAAkB,cAAc"}
1
+ {"version":3,"file":"BannerDescription.js","names":[],"sources":["../../../src/components/Banner/BannerDescription.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { memo } from 'react';\n\nimport { bannerStyles } from '../../../generated/styles';\nimport { Text } from '../Text';\n\ninterface BannerDescriptionProps {\n children: ReactNode;\n}\n\n/**\n * **Styled description for use inside `BannerContent`.**\n *\n * @description\n * Applies the Banner description typography tokens and truncates to 3 lines\n * via `numberOfLines={3}`. Use this subcomponent instead of the `description`\n * prop when you need rich ReactNode content.\n *\n * @platform mobile\n *\n * @example\n * ```tsx\n * <Banner variant=\"alert\" startIcon=\"Error\">\n * <BannerContent>\n * <BannerTitle>Something went wrong</BannerTitle>\n * <BannerDescription>\n * Please try again or contact support for help.\n * </BannerDescription>\n * </BannerContent>\n * </Banner>\n * ```\n *\n * @see {@link Banner} for the parent component\n * @see {@link BannerContent} for the required wrapper\n */\nconst BannerDescription = memo(function BannerDescription({ children }: BannerDescriptionProps) {\n bannerStyles.useVariants({});\n\n return (\n <Text numberOfLines={3} style={bannerStyles.description}>\n {children}\n </Text>\n );\n});\n\nBannerDescription.displayName = 'BannerDescription';\n\nexport { BannerDescription, type BannerDescriptionProps };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAM,oBAAoB,KAAK,SAAS,kBAAkB,EAAE,YAAoC;AAC9F,cAAa,YAAY,EAAE,CAAC;AAE5B,QACE,oBAAC,MAAD;EAAM,eAAe;EAAG,OAAO,aAAa;EACzC;EACI,CAAA;EAET;AAEF,kBAAkB,cAAc"}
@@ -1,11 +1,10 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
4
- const require_components_Text = require('../Text.cjs');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("../../_virtual/_rolldown/runtime.cjs");
4
+ const require_components_Text = require("../Text.cjs");
5
5
  let react = require("react");
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
7
7
  let generated_styles = require("../../../generated/styles");
8
-
9
8
  //#region src/components/Banner/BannerTitle.tsx
10
9
  /**
11
10
  * **Styled title for use inside `BannerContent`.**
@@ -39,6 +38,5 @@ const BannerTitle = (0, react.memo)(function BannerTitle({ children }) {
39
38
  });
40
39
  });
41
40
  BannerTitle.displayName = "BannerTitle";
42
-
43
41
  //#endregion
44
- exports.BannerTitle = BannerTitle;
42
+ exports.BannerTitle = BannerTitle;
@@ -1,5 +1,5 @@
1
1
 
2
- import * as react from "react";
2
+ import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/components/Banner/BannerTitle.d.ts
@@ -29,7 +29,7 @@ interface BannerTitleProps {
29
29
  * @see {@link Banner} for the parent component
30
30
  * @see {@link BannerContent} for the required wrapper
31
31
  */
32
- declare const BannerTitle: react.NamedExoticComponent<BannerTitleProps>;
32
+ declare const BannerTitle: _$react.NamedExoticComponent<BannerTitleProps>;
33
33
  //#endregion
34
34
  export { BannerTitle, type BannerTitleProps };
35
35
  //# sourceMappingURL=BannerTitle.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerTitle.d.cts","names":[],"sources":["../../../src/components/Banner/BannerTitle.tsx"],"mappings":";;;;;UAMU,gBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAP2B;;;;;AAOlB;;;;;;;;;;;;;;;;;;AAPkB,cAiCjC,WAAA,EAAW,KAAA,CAAA,oBAAA,CAAA,gBAAA"}
1
+ {"version":3,"file":"BannerTitle.d.cts","names":[],"sources":["../../../src/components/Banner/BannerTitle.tsx"],"mappings":";;;;;UAMU,gBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAP2B;;;;;AAOlB;;;;;;;;;;;;;;;;;;AAPkB,cAiCjC,WAAA,EAAW,OAAA,CAAA,oBAAA,CAAA,gBAAA"}
@@ -1,5 +1,5 @@
1
1
 
2
- import * as react from "react";
2
+ import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/components/Banner/BannerTitle.d.ts
@@ -29,7 +29,7 @@ interface BannerTitleProps {
29
29
  * @see {@link Banner} for the parent component
30
30
  * @see {@link BannerContent} for the required wrapper
31
31
  */
32
- declare const BannerTitle: react.NamedExoticComponent<BannerTitleProps>;
32
+ declare const BannerTitle: _$react.NamedExoticComponent<BannerTitleProps>;
33
33
  //#endregion
34
34
  export { BannerTitle, type BannerTitleProps };
35
35
  //# sourceMappingURL=BannerTitle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerTitle.d.ts","names":[],"sources":["../../../src/components/Banner/BannerTitle.tsx"],"mappings":";;;;;UAMU,gBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAP2B;;;;;AAOlB;;;;;;;;;;;;;;;;;;AAPkB,cAiCjC,WAAA,EAAW,KAAA,CAAA,oBAAA,CAAA,gBAAA"}
1
+ {"version":3,"file":"BannerTitle.d.ts","names":[],"sources":["../../../src/components/Banner/BannerTitle.tsx"],"mappings":";;;;;UAMU,gBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAP2B;;;;;AAOlB;;;;;;;;;;;;;;;;;;AAPkB,cAiCjC,WAAA,EAAW,OAAA,CAAA,oBAAA,CAAA,gBAAA"}
@@ -3,7 +3,6 @@ import { Text } from "../Text.js";
3
3
  import { memo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { bannerStyles } from "../../../generated/styles";
6
-
7
6
  //#region src/components/Banner/BannerTitle.tsx
8
7
  /**
9
8
  * **Styled title for use inside `BannerContent`.**
@@ -37,7 +36,7 @@ const BannerTitle = memo(function BannerTitle({ children }) {
37
36
  });
38
37
  });
39
38
  BannerTitle.displayName = "BannerTitle";
40
-
41
39
  //#endregion
42
40
  export { BannerTitle };
41
+
43
42
  //# sourceMappingURL=BannerTitle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerTitle.js","names":[],"sources":["../../../src/components/Banner/BannerTitle.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { memo } from 'react';\n\nimport { bannerStyles } from '../../../generated/styles';\nimport { Text } from '../Text';\n\ninterface BannerTitleProps {\n children: ReactNode;\n}\n\n/**\n * **Styled title for use inside `BannerContent`.**\n *\n * @description\n * Applies the Banner title typography tokens. Renders a single line of text.\n * Use this subcomponent instead of the `title` prop when you need rich\n * ReactNode content (e.g. bold segments, inline icons).\n *\n * @platform mobile\n *\n * @example\n * ```tsx\n * <Banner variant=\"info\" startIcon=\"Info\">\n * <BannerContent>\n * <BannerTitle>Update available</BannerTitle>\n * <BannerDescription>A new version is ready to install.</BannerDescription>\n * </BannerContent>\n * </Banner>\n * ```\n *\n * @see {@link Banner} for the parent component\n * @see {@link BannerContent} for the required wrapper\n */\nconst BannerTitle = memo(function BannerTitle({ children }: BannerTitleProps) {\n bannerStyles.useVariants({});\n\n return (\n <Text numberOfLines={1} style={bannerStyles.title}>\n {children}\n </Text>\n );\n});\n\nBannerTitle.displayName = 'BannerTitle';\n\nexport { BannerTitle, type BannerTitleProps };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,cAAc,KAAK,SAAS,YAAY,EAAE,YAA8B;AAC5E,cAAa,YAAY,EAAE,CAAC;AAE5B,QACE,oBAAC;EAAK,eAAe;EAAG,OAAO,aAAa;EACzC;GACI;EAET;AAEF,YAAY,cAAc"}
1
+ {"version":3,"file":"BannerTitle.js","names":[],"sources":["../../../src/components/Banner/BannerTitle.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { memo } from 'react';\n\nimport { bannerStyles } from '../../../generated/styles';\nimport { Text } from '../Text';\n\ninterface BannerTitleProps {\n children: ReactNode;\n}\n\n/**\n * **Styled title for use inside `BannerContent`.**\n *\n * @description\n * Applies the Banner title typography tokens. Renders a single line of text.\n * Use this subcomponent instead of the `title` prop when you need rich\n * ReactNode content (e.g. bold segments, inline icons).\n *\n * @platform mobile\n *\n * @example\n * ```tsx\n * <Banner variant=\"info\" startIcon=\"Info\">\n * <BannerContent>\n * <BannerTitle>Update available</BannerTitle>\n * <BannerDescription>A new version is ready to install.</BannerDescription>\n * </BannerContent>\n * </Banner>\n * ```\n *\n * @see {@link Banner} for the parent component\n * @see {@link BannerContent} for the required wrapper\n */\nconst BannerTitle = memo(function BannerTitle({ children }: BannerTitleProps) {\n bannerStyles.useVariants({});\n\n return (\n <Text numberOfLines={1} style={bannerStyles.title}>\n {children}\n </Text>\n );\n});\n\nBannerTitle.displayName = 'BannerTitle';\n\nexport { BannerTitle, type BannerTitleProps };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,cAAc,KAAK,SAAS,YAAY,EAAE,YAA8B;AAC5E,cAAa,YAAY,EAAE,CAAC;AAE5B,QACE,oBAAC,MAAD;EAAM,eAAe;EAAG,OAAO,aAAa;EACzC;EACI,CAAA;EAET;AAEF,YAAY,cAAc"}
@@ -1,11 +1,10 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
- const require_components_Banner_Banner = require('./Banner.cjs');
4
- const require_components_Banner_BannerContent = require('./BannerContent.cjs');
5
- const require_components_Banner_BannerDescription = require('./BannerDescription.cjs');
6
- const require_components_Banner_BannerTitle = require('./BannerTitle.cjs');
7
-
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_components_Banner_Banner = require("./Banner.cjs");
4
+ const require_components_Banner_BannerContent = require("./BannerContent.cjs");
5
+ const require_components_Banner_BannerDescription = require("./BannerDescription.cjs");
6
+ const require_components_Banner_BannerTitle = require("./BannerTitle.cjs");
8
7
  exports.Banner = require_components_Banner_Banner.Banner;
9
8
  exports.BannerContent = require_components_Banner_BannerContent.BannerContent;
10
9
  exports.BannerDescription = require_components_Banner_BannerDescription.BannerDescription;
11
- exports.BannerTitle = require_components_Banner_BannerTitle.BannerTitle;
10
+ exports.BannerTitle = require_components_Banner_BannerTitle.BannerTitle;
@@ -3,5 +3,4 @@ import { Banner } from "./Banner.js";
3
3
  import { BannerContent } from "./BannerContent.js";
4
4
  import { BannerDescription } from "./BannerDescription.js";
5
5
  import { BannerTitle } from "./BannerTitle.js";
6
-
7
- export { Banner, BannerContent, BannerDescription, BannerTitle };
6
+ export { Banner, BannerContent, BannerDescription, BannerTitle };
@@ -1,8 +1,7 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("../../_virtual/_rolldown/runtime.cjs");
4
4
  let react = require("react");
5
-
6
5
  //#region src/components/Banner/utils.ts
7
6
  /**
8
7
  * Maps banner variants to button variants following the Figma spec.
@@ -49,8 +48,7 @@ function separateChildren(children) {
49
48
  actions
50
49
  };
51
50
  }
52
-
53
51
  //#endregion
54
52
  exports.BANNER_TO_BUTTON_VARIANT = BANNER_TO_BUTTON_VARIANT;
55
53
  exports.hasDisplayName = hasDisplayName;
56
- exports.separateChildren = separateChildren;
54
+ exports.separateChildren = separateChildren;
@@ -1,6 +1,5 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
2
  import { Children, isValidElement } from "react";
3
-
4
3
  //#region src/components/Banner/utils.ts
5
4
  /**
6
5
  * Maps banner variants to button variants following the Figma spec.
@@ -47,7 +46,7 @@ function separateChildren(children) {
47
46
  actions
48
47
  };
49
48
  }
50
-
51
49
  //#endregion
52
50
  export { BANNER_TO_BUTTON_VARIANT, hasDisplayName, separateChildren };
51
+
53
52
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":[],"sources":["../../../src/components/Banner/utils.ts"],"sourcesContent":["import type { BannerVariant, ButtonVariantFlat } from '@yahoo/uds-types';\nimport type { ReactNode } from 'react';\nimport { Children, isValidElement } from 'react';\n\n/**\n * Maps banner variants to button variants following the Figma spec.\n * Secondary banner variants map to secondary button variants.\n */\nexport const BANNER_TO_BUTTON_VARIANT: Record<BannerVariant, ButtonVariantFlat> = {\n primary: 'brand',\n secondary: 'brand',\n brand: 'brand',\n 'brand-secondary': 'brand-secondary',\n alert: 'alert',\n 'alert-secondary': 'alert-secondary',\n warning: 'warning',\n 'warning-secondary': 'warning-secondary',\n success: 'positive',\n 'success-secondary': 'positive-secondary',\n info: 'info',\n 'info-secondary': 'info-secondary',\n};\n\n/**\n * Checks whether a React element has a specific displayName.\n * Handles both regular function components and forwardRef components\n * (which have typeof type === 'object').\n */\nexport function hasDisplayName(child: ReactNode, name: string): boolean {\n if (!isValidElement(child)) {\n return false;\n }\n const type = child.type;\n return (\n (typeof type === 'function' || (typeof type === 'object' && type !== null)) &&\n 'displayName' in type &&\n type.displayName === name\n );\n}\n\n/**\n * Separates Banner children into content (BannerContent) and action elements.\n * Skips falsy children so conditional patterns like {show && <Button />} work.\n */\nexport function separateChildren(children: ReactNode): {\n content: ReactNode | null;\n actions: ReactNode[];\n} {\n let content: ReactNode | null = null;\n const actions: ReactNode[] = [];\n\n Children.forEach(children, (child) => {\n if (child == null || child === false || child === true || child === '') {\n return;\n }\n if (hasDisplayName(child, 'BannerContent')) {\n content = child;\n } else {\n actions.push(child);\n }\n });\n\n return { content, actions };\n}\n"],"mappings":";;;;;;;;AAQA,MAAa,2BAAqE;CAChF,SAAS;CACT,WAAW;CACX,OAAO;CACP,mBAAmB;CACnB,OAAO;CACP,mBAAmB;CACnB,SAAS;CACT,qBAAqB;CACrB,SAAS;CACT,qBAAqB;CACrB,MAAM;CACN,kBAAkB;CACnB;;;;;;AAOD,SAAgB,eAAe,OAAkB,MAAuB;AACtE,KAAI,CAAC,eAAe,MAAM,CACxB,QAAO;CAET,MAAM,OAAO,MAAM;AACnB,SACG,OAAO,SAAS,cAAe,OAAO,SAAS,YAAY,SAAS,SACrE,iBAAiB,QACjB,KAAK,gBAAgB;;;;;;AAQzB,SAAgB,iBAAiB,UAG/B;CACA,IAAI,UAA4B;CAChC,MAAM,UAAuB,EAAE;AAE/B,UAAS,QAAQ,WAAW,UAAU;AACpC,MAAI,SAAS,QAAQ,UAAU,SAAS,UAAU,QAAQ,UAAU,GAClE;AAEF,MAAI,eAAe,OAAO,gBAAgB,CACxC,WAAU;MAEV,SAAQ,KAAK,MAAM;GAErB;AAEF,QAAO;EAAE;EAAS;EAAS"}
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../src/components/Banner/utils.ts"],"sourcesContent":["import type { BannerVariant, ButtonVariantFlat } from '@yahoo/uds-types';\nimport type { ReactNode } from 'react';\nimport { Children, isValidElement } from 'react';\n\n/**\n * Maps banner variants to button variants following the Figma spec.\n * Secondary banner variants map to secondary button variants.\n */\nexport const BANNER_TO_BUTTON_VARIANT: Record<BannerVariant, ButtonVariantFlat> = {\n primary: 'brand',\n secondary: 'brand',\n brand: 'brand',\n 'brand-secondary': 'brand-secondary',\n alert: 'alert',\n 'alert-secondary': 'alert-secondary',\n warning: 'warning',\n 'warning-secondary': 'warning-secondary',\n success: 'positive',\n 'success-secondary': 'positive-secondary',\n info: 'info',\n 'info-secondary': 'info-secondary',\n};\n\n/**\n * Checks whether a React element has a specific displayName.\n * Handles both regular function components and forwardRef components\n * (which have typeof type === 'object').\n */\nexport function hasDisplayName(child: ReactNode, name: string): boolean {\n if (!isValidElement(child)) {\n return false;\n }\n const type = child.type;\n return (\n (typeof type === 'function' || (typeof type === 'object' && type !== null)) &&\n 'displayName' in type &&\n type.displayName === name\n );\n}\n\n/**\n * Separates Banner children into content (BannerContent) and action elements.\n * Skips falsy children so conditional patterns like {show && <Button />} work.\n */\nexport function separateChildren(children: ReactNode): {\n content: ReactNode | null;\n actions: ReactNode[];\n} {\n let content: ReactNode | null = null;\n const actions: ReactNode[] = [];\n\n Children.forEach(children, (child) => {\n if (child == null || child === false || child === true || child === '') {\n return;\n }\n if (hasDisplayName(child, 'BannerContent')) {\n content = child;\n } else {\n actions.push(child);\n }\n });\n\n return { content, actions };\n}\n"],"mappings":";;;;;;;AAQA,MAAa,2BAAqE;CAChF,SAAS;CACT,WAAW;CACX,OAAO;CACP,mBAAmB;CACnB,OAAO;CACP,mBAAmB;CACnB,SAAS;CACT,qBAAqB;CACrB,SAAS;CACT,qBAAqB;CACrB,MAAM;CACN,kBAAkB;CACnB;;;;;;AAOD,SAAgB,eAAe,OAAkB,MAAuB;AACtE,KAAI,CAAC,eAAe,MAAM,CACxB,QAAO;CAET,MAAM,OAAO,MAAM;AACnB,SACG,OAAO,SAAS,cAAe,OAAO,SAAS,YAAY,SAAS,SACrE,iBAAiB,QACjB,KAAK,gBAAgB;;;;;;AAQzB,SAAgB,iBAAiB,UAG/B;CACA,IAAI,UAA4B;CAChC,MAAM,UAAuB,EAAE;AAE/B,UAAS,QAAQ,WAAW,UAAU;AACpC,MAAI,SAAS,QAAQ,UAAU,SAAS,UAAU,QAAQ,UAAU,GAClE;AAEF,MAAI,eAAe,OAAO,gBAAgB,CACxC,WAAU;MAEV,SAAQ,KAAK,MAAM;GAErB;AAEF,QAAO;EAAE;EAAS;EAAS"}
@@ -1,10 +1,9 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("../_virtual/_rolldown/runtime.cjs");
4
4
  let react = require("react");
5
5
  let react_native = require("react-native");
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
7
-
8
7
  //#region src/components/BlurTarget.tsx
9
8
  let BlurTargetView = null;
10
9
  let blurTargetLoadState = "pending";
@@ -84,6 +83,5 @@ const BlurTarget = (0, react.forwardRef)(function BlurTarget({ children, fill, s
84
83
  return children;
85
84
  });
86
85
  BlurTarget.displayName = "BlurTarget";
87
-
88
86
  //#endregion
89
- exports.BlurTarget = BlurTarget;
87
+ exports.BlurTarget = BlurTarget;
@@ -1,5 +1,5 @@
1
1
 
2
- import * as react from "react";
2
+ import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
  import { View, ViewStyle } from "react-native";
5
5
 
@@ -46,7 +46,7 @@ interface BlurTargetProps {
46
46
  *
47
47
  * @see {@link https://docs.expo.dev/versions/latest/sdk/blur-view/} expo-blur documentation
48
48
  */
49
- declare const BlurTarget: react.ForwardRefExoticComponent<BlurTargetProps & react.RefAttributes<View | null>>;
49
+ declare const BlurTarget: _$react.ForwardRefExoticComponent<BlurTargetProps & _$react.RefAttributes<View | null>>;
50
50
  //#endregion
51
51
  export { BlurTarget, type BlurTargetProps };
52
52
  //# sourceMappingURL=BlurTarget.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlurTarget.d.cts","names":[],"sources":["../../src/components/BlurTarget.tsx"],"mappings":";;;;;;UAkDU,eAAA;EACR,QAAA,EAAU,SAAA;EADF;EAGR,IAAA;EACA,KAAA,GAAQ,SAAA;AAAA;;;;;;;;AAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAuCb,UAAA,EAAU,KAAA,CAAA,yBAAA,CAAA,eAAA,GAAA,KAAA,CAAA,aAAA,CAAA,IAAA"}
1
+ {"version":3,"file":"BlurTarget.d.cts","names":[],"sources":["../../src/components/BlurTarget.tsx"],"mappings":";;;;;;UAkDU,eAAA;EACR,QAAA,EAAU,SAAA;EADF;EAGR,IAAA;EACA,KAAA,GAAQ,SAAA;AAAA;;;;;;;;AAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAuCb,UAAA,EAAU,OAAA,CAAA,yBAAA,CAAA,eAAA,GAAA,OAAA,CAAA,aAAA,CAAA,IAAA"}