@yahoo/uds-mobile 1.0.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 (447) hide show
  1. package/CONTRIBUTING.md +1174 -0
  2. package/README.md +614 -0
  3. package/cli/uds-mobile.js +10 -0
  4. package/dist/_virtual/rolldown_runtime.cjs +30 -0
  5. package/dist/bin/generateTheme.mjs +390 -0
  6. package/dist/bin/mobile/scripts/utils/configToRNMappings.mjs +74 -0
  7. package/dist/bin/uds/dist/fixtures.mjs +404 -0
  8. package/dist/bin/uds/dist/tokens/configs/palette/alwaysPalette.mjs +23 -0
  9. package/dist/bin/uds/dist/tokens/consts/defaultModes.mjs +6 -0
  10. package/dist/bin/uds/dist/tokens/consts/fontDeclarationsMap.mjs +652 -0
  11. package/dist/bin/uds-mobile.mjs +256 -0
  12. package/dist/components/Avatar.cjs +109 -0
  13. package/dist/components/Avatar.d.cts +60 -0
  14. package/dist/components/Avatar.d.cts.map +1 -0
  15. package/dist/components/Avatar.d.mts +60 -0
  16. package/dist/components/Avatar.d.mts.map +1 -0
  17. package/dist/components/Avatar.mjs +109 -0
  18. package/dist/components/Avatar.mjs.map +1 -0
  19. package/dist/components/Badge.cjs +68 -0
  20. package/dist/components/Badge.d.cts +43 -0
  21. package/dist/components/Badge.d.cts.map +1 -0
  22. package/dist/components/Badge.d.mts +43 -0
  23. package/dist/components/Badge.d.mts.map +1 -0
  24. package/dist/components/Badge.mjs +68 -0
  25. package/dist/components/Badge.mjs.map +1 -0
  26. package/dist/components/Box.cjs +114 -0
  27. package/dist/components/Box.d.cts +87 -0
  28. package/dist/components/Box.d.cts.map +1 -0
  29. package/dist/components/Box.d.mts +87 -0
  30. package/dist/components/Box.d.mts.map +1 -0
  31. package/dist/components/Box.mjs +114 -0
  32. package/dist/components/Box.mjs.map +1 -0
  33. package/dist/components/Button.cjs +187 -0
  34. package/dist/components/Button.d.cts +56 -0
  35. package/dist/components/Button.d.cts.map +1 -0
  36. package/dist/components/Button.d.mts +56 -0
  37. package/dist/components/Button.d.mts.map +1 -0
  38. package/dist/components/Button.mjs +186 -0
  39. package/dist/components/Button.mjs.map +1 -0
  40. package/dist/components/Checkbox.cjs +156 -0
  41. package/dist/components/Checkbox.d.cts +48 -0
  42. package/dist/components/Checkbox.d.cts.map +1 -0
  43. package/dist/components/Checkbox.d.mts +48 -0
  44. package/dist/components/Checkbox.d.mts.map +1 -0
  45. package/dist/components/Checkbox.mjs +155 -0
  46. package/dist/components/Checkbox.mjs.map +1 -0
  47. package/dist/components/Chip.cjs +124 -0
  48. package/dist/components/Chip.d.cts +60 -0
  49. package/dist/components/Chip.d.cts.map +1 -0
  50. package/dist/components/Chip.d.mts +60 -0
  51. package/dist/components/Chip.d.mts.map +1 -0
  52. package/dist/components/Chip.mjs +124 -0
  53. package/dist/components/Chip.mjs.map +1 -0
  54. package/dist/components/HStack.cjs +46 -0
  55. package/dist/components/HStack.d.cts +41 -0
  56. package/dist/components/HStack.d.cts.map +1 -0
  57. package/dist/components/HStack.d.mts +41 -0
  58. package/dist/components/HStack.d.mts.map +1 -0
  59. package/dist/components/HStack.mjs +46 -0
  60. package/dist/components/HStack.mjs.map +1 -0
  61. package/dist/components/Icon.cjs +150 -0
  62. package/dist/components/Icon.d.cts +90 -0
  63. package/dist/components/Icon.d.cts.map +1 -0
  64. package/dist/components/Icon.d.mts +90 -0
  65. package/dist/components/Icon.d.mts.map +1 -0
  66. package/dist/components/Icon.mjs +148 -0
  67. package/dist/components/Icon.mjs.map +1 -0
  68. package/dist/components/IconButton.cjs +127 -0
  69. package/dist/components/IconButton.d.cts +46 -0
  70. package/dist/components/IconButton.d.cts.map +1 -0
  71. package/dist/components/IconButton.d.mts +46 -0
  72. package/dist/components/IconButton.d.mts.map +1 -0
  73. package/dist/components/IconButton.mjs +127 -0
  74. package/dist/components/IconButton.mjs.map +1 -0
  75. package/dist/components/IconSlot.cjs +55 -0
  76. package/dist/components/IconSlot.d.cts +45 -0
  77. package/dist/components/IconSlot.d.cts.map +1 -0
  78. package/dist/components/IconSlot.d.mts +45 -0
  79. package/dist/components/IconSlot.d.mts.map +1 -0
  80. package/dist/components/IconSlot.mjs +55 -0
  81. package/dist/components/IconSlot.mjs.map +1 -0
  82. package/dist/components/Image.cjs +104 -0
  83. package/dist/components/Image.d.cts +85 -0
  84. package/dist/components/Image.d.cts.map +1 -0
  85. package/dist/components/Image.d.mts +85 -0
  86. package/dist/components/Image.d.mts.map +1 -0
  87. package/dist/components/Image.mjs +104 -0
  88. package/dist/components/Image.mjs.map +1 -0
  89. package/dist/components/Input.cjs +174 -0
  90. package/dist/components/Input.d.cts +39 -0
  91. package/dist/components/Input.d.cts.map +1 -0
  92. package/dist/components/Input.d.mts +39 -0
  93. package/dist/components/Input.d.mts.map +1 -0
  94. package/dist/components/Input.mjs +174 -0
  95. package/dist/components/Input.mjs.map +1 -0
  96. package/dist/components/Link.cjs +139 -0
  97. package/dist/components/Link.d.cts +45 -0
  98. package/dist/components/Link.d.cts.map +1 -0
  99. package/dist/components/Link.d.mts +45 -0
  100. package/dist/components/Link.d.mts.map +1 -0
  101. package/dist/components/Link.mjs +138 -0
  102. package/dist/components/Link.mjs.map +1 -0
  103. package/dist/components/Pressable.cjs +120 -0
  104. package/dist/components/Pressable.d.cts +90 -0
  105. package/dist/components/Pressable.d.cts.map +1 -0
  106. package/dist/components/Pressable.d.mts +90 -0
  107. package/dist/components/Pressable.d.mts.map +1 -0
  108. package/dist/components/Pressable.mjs +118 -0
  109. package/dist/components/Pressable.mjs.map +1 -0
  110. package/dist/components/Radio.cjs +153 -0
  111. package/dist/components/Radio.d.cts +46 -0
  112. package/dist/components/Radio.d.cts.map +1 -0
  113. package/dist/components/Radio.d.mts +46 -0
  114. package/dist/components/Radio.d.mts.map +1 -0
  115. package/dist/components/Radio.mjs +152 -0
  116. package/dist/components/Radio.mjs.map +1 -0
  117. package/dist/components/Screen.cjs +89 -0
  118. package/dist/components/Screen.d.cts +53 -0
  119. package/dist/components/Screen.d.cts.map +1 -0
  120. package/dist/components/Screen.d.mts +53 -0
  121. package/dist/components/Screen.d.mts.map +1 -0
  122. package/dist/components/Screen.mjs +89 -0
  123. package/dist/components/Screen.mjs.map +1 -0
  124. package/dist/components/Switch.cjs +172 -0
  125. package/dist/components/Switch.d.cts +42 -0
  126. package/dist/components/Switch.d.cts.map +1 -0
  127. package/dist/components/Switch.d.mts +42 -0
  128. package/dist/components/Switch.d.mts.map +1 -0
  129. package/dist/components/Switch.mjs +171 -0
  130. package/dist/components/Switch.mjs.map +1 -0
  131. package/dist/components/Text.cjs +107 -0
  132. package/dist/components/Text.d.cts +96 -0
  133. package/dist/components/Text.d.cts.map +1 -0
  134. package/dist/components/Text.d.mts +96 -0
  135. package/dist/components/Text.d.mts.map +1 -0
  136. package/dist/components/Text.mjs +107 -0
  137. package/dist/components/Text.mjs.map +1 -0
  138. package/dist/components/VStack.cjs +46 -0
  139. package/dist/components/VStack.d.cts +41 -0
  140. package/dist/components/VStack.d.cts.map +1 -0
  141. package/dist/components/VStack.d.mts +41 -0
  142. package/dist/components/VStack.d.mts.map +1 -0
  143. package/dist/components/VStack.mjs +46 -0
  144. package/dist/components/VStack.mjs.map +1 -0
  145. package/dist/icons/dist/glyphMap.cjs +5475 -0
  146. package/dist/icons/dist/glyphMap.d.cts +10 -0
  147. package/dist/icons/dist/glyphMap.d.cts.map +1 -0
  148. package/dist/icons/dist/glyphMap.d.mts +10 -0
  149. package/dist/icons/dist/glyphMap.d.mts.map +1 -0
  150. package/dist/icons/dist/glyphMap.mjs +5474 -0
  151. package/dist/icons/dist/glyphMap.mjs.map +1 -0
  152. package/dist/icons/dist/svgMap.cjs +525 -0
  153. package/dist/icons/dist/svgMap.d.cts +10 -0
  154. package/dist/icons/dist/svgMap.d.cts.map +1 -0
  155. package/dist/icons/dist/svgMap.d.mts +10 -0
  156. package/dist/icons/dist/svgMap.d.mts.map +1 -0
  157. package/dist/icons/dist/svgMap.mjs +524 -0
  158. package/dist/icons/dist/svgMap.mjs.map +1 -0
  159. package/dist/icons/dist/tokens.cjs +13 -0
  160. package/dist/icons/dist/tokens.mjs +13 -0
  161. package/dist/icons/dist/tokens.mjs.map +1 -0
  162. package/dist/icons/dist/types.d.cts +24 -0
  163. package/dist/icons/dist/types.d.cts.map +1 -0
  164. package/dist/icons/dist/types.d.mts +24 -0
  165. package/dist/icons/dist/types.d.mts.map +1 -0
  166. package/dist/motion.cjs +56 -0
  167. package/dist/motion.d.cts +46 -0
  168. package/dist/motion.d.cts.map +1 -0
  169. package/dist/motion.d.mts +46 -0
  170. package/dist/motion.d.mts.map +1 -0
  171. package/dist/motion.mjs +52 -0
  172. package/dist/motion.mjs.map +1 -0
  173. package/dist/types.cjs +1 -0
  174. package/dist/types.d.cts +13 -0
  175. package/dist/types.d.cts.map +1 -0
  176. package/dist/types.d.mts +13 -0
  177. package/dist/types.d.mts.map +1 -0
  178. package/dist/types.mjs +2 -0
  179. package/dist/uds/dist/components/Box.d.cts +3 -0
  180. package/dist/uds/dist/components/Box.d.mts +3 -0
  181. package/dist/uds/dist/components/Divider/Divider.d.cts +3 -0
  182. package/dist/uds/dist/components/Divider/Divider.d.mts +3 -0
  183. package/dist/uds/dist/components/Divider/DividerCore.d.cts +4 -0
  184. package/dist/uds/dist/components/Divider/DividerCore.d.mts +4 -0
  185. package/dist/uds/dist/components/Divider/DividerInternal.d.cts +4 -0
  186. package/dist/uds/dist/components/Divider/DividerInternal.d.mts +4 -0
  187. package/dist/uds/dist/components/Divider/index.d.cts +2 -0
  188. package/dist/uds/dist/components/Divider/index.d.mts +2 -0
  189. package/dist/uds/dist/components/FormLabel.d.cts +3 -0
  190. package/dist/uds/dist/components/FormLabel.d.mts +4 -0
  191. package/dist/uds/dist/components/HStack.d.cts +4 -0
  192. package/dist/uds/dist/components/HStack.d.mts +4 -0
  193. package/dist/uds/dist/components/Icon.d.cts +3 -0
  194. package/dist/uds/dist/components/Icon.d.mts +3 -0
  195. package/dist/uds/dist/components/Image.d.cts +2 -0
  196. package/dist/uds/dist/components/Image.d.mts +3 -0
  197. package/dist/uds/dist/components/Link.d.cts +3 -0
  198. package/dist/uds/dist/components/Link.d.mts +3 -0
  199. package/dist/uds/dist/components/Text.d.cts +3 -0
  200. package/dist/uds/dist/components/Text.d.mts +3 -0
  201. package/dist/uds/dist/components/VStack.d.cts +4 -0
  202. package/dist/uds/dist/components/VStack.d.mts +4 -0
  203. package/dist/uds/dist/components/client/Avatar/Avatar.d.cts +2 -0
  204. package/dist/uds/dist/components/client/Avatar/Avatar.d.mts +3 -0
  205. package/dist/uds/dist/components/client/Avatar/AvatarIcon.d.cts +2 -0
  206. package/dist/uds/dist/components/client/Avatar/AvatarIcon.d.mts +3 -0
  207. package/dist/uds/dist/components/client/Avatar/AvatarImage.d.cts +4 -0
  208. package/dist/uds/dist/components/client/Avatar/AvatarImage.d.mts +5 -0
  209. package/dist/uds/dist/components/client/Avatar/AvatarText.d.cts +3 -0
  210. package/dist/uds/dist/components/client/Avatar/AvatarText.d.mts +4 -0
  211. package/dist/uds/dist/components/client/Avatar/index.d.cts +5 -0
  212. package/dist/uds/dist/components/client/Avatar/index.d.mts +5 -0
  213. package/dist/uds/dist/components/client/Badge.d.cts +3 -0
  214. package/dist/uds/dist/components/client/Badge.d.mts +3 -0
  215. package/dist/uds/dist/components/client/Button.d.cts +3 -0
  216. package/dist/uds/dist/components/client/Button.d.mts +3 -0
  217. package/dist/uds/dist/components/client/Checkbox.d.cts +3 -0
  218. package/dist/uds/dist/components/client/Checkbox.d.mts +3 -0
  219. package/dist/uds/dist/components/client/Chip/Chip.d.cts +4 -0
  220. package/dist/uds/dist/components/client/Chip/Chip.d.mts +4 -0
  221. package/dist/uds/dist/components/client/Chip/ChipBase.d.cts +4 -0
  222. package/dist/uds/dist/components/client/Chip/ChipBase.d.mts +4 -0
  223. package/dist/uds/dist/components/client/Chip/ChipButton.d.cts +4 -0
  224. package/dist/uds/dist/components/client/Chip/ChipButton.d.mts +4 -0
  225. package/dist/uds/dist/components/client/Chip/ChipDismissible.d.cts +4 -0
  226. package/dist/uds/dist/components/client/Chip/ChipDismissible.d.mts +4 -0
  227. package/dist/uds/dist/components/client/Chip/ChipLink.d.cts +4 -0
  228. package/dist/uds/dist/components/client/Chip/ChipLink.d.mts +4 -0
  229. package/dist/uds/dist/components/client/Chip/ChipToggle.d.cts +4 -0
  230. package/dist/uds/dist/components/client/Chip/ChipToggle.d.mts +4 -0
  231. package/dist/uds/dist/components/client/Chip/index.d.cts +6 -0
  232. package/dist/uds/dist/components/client/Chip/index.d.mts +6 -0
  233. package/dist/uds/dist/components/client/IconButton.d.cts +3 -0
  234. package/dist/uds/dist/components/client/IconButton.d.mts +3 -0
  235. package/dist/uds/dist/components/client/Input/Input.d.cts +4 -0
  236. package/dist/uds/dist/components/client/Input/Input.d.mts +4 -0
  237. package/dist/uds/dist/components/client/Input/InputHelpText.d.cts +2 -0
  238. package/dist/uds/dist/components/client/Input/InputHelpText.d.mts +3 -0
  239. package/dist/uds/dist/components/client/Input/InputHelpTextInternal.d.cts +5 -0
  240. package/dist/uds/dist/components/client/Input/InputHelpTextInternal.d.mts +6 -0
  241. package/dist/uds/dist/components/client/Input/index.d.cts +3 -0
  242. package/dist/uds/dist/components/client/Input/index.d.mts +3 -0
  243. package/dist/uds/dist/components/client/Menu/Menu.Content.d.cts +4 -0
  244. package/dist/uds/dist/components/client/Menu/Menu.Content.d.mts +4 -0
  245. package/dist/uds/dist/components/client/Menu/Menu.Divider.d.cts +3 -0
  246. package/dist/uds/dist/components/client/Menu/Menu.Divider.d.mts +3 -0
  247. package/dist/uds/dist/components/client/Menu/Menu.Item.d.cts +4 -0
  248. package/dist/uds/dist/components/client/Menu/Menu.Item.d.mts +4 -0
  249. package/dist/uds/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +4 -0
  250. package/dist/uds/dist/components/client/Menu/Menu.ItemCheckbox.d.mts +4 -0
  251. package/dist/uds/dist/components/client/Menu/Menu.Provider.d.cts +2 -0
  252. package/dist/uds/dist/components/client/Menu/Menu.Provider.d.mts +3 -0
  253. package/dist/uds/dist/components/client/Menu/Menu.Trigger.d.cts +4 -0
  254. package/dist/uds/dist/components/client/Menu/Menu.Trigger.d.mts +4 -0
  255. package/dist/uds/dist/components/client/Menu/Menu.d.cts +2 -0
  256. package/dist/uds/dist/components/client/Menu/Menu.d.mts +2 -0
  257. package/dist/uds/dist/components/client/Menu/Menu.index.d.cts +7 -0
  258. package/dist/uds/dist/components/client/Menu/Menu.index.d.mts +7 -0
  259. package/dist/uds/dist/components/client/Menu/index.d.cts +9 -0
  260. package/dist/uds/dist/components/client/Menu/index.d.mts +9 -0
  261. package/dist/uds/dist/components/client/Pressable.d.cts +3 -0
  262. package/dist/uds/dist/components/client/Pressable.d.mts +3 -0
  263. package/dist/uds/dist/components/client/Radio/Radio.d.cts +3 -0
  264. package/dist/uds/dist/components/client/Radio/Radio.d.mts +3 -0
  265. package/dist/uds/dist/components/client/Radio/RadioGroupProvider.d.cts +3 -0
  266. package/dist/uds/dist/components/client/Radio/RadioGroupProvider.d.mts +3 -0
  267. package/dist/uds/dist/components/client/Radio/index.d.cts +3 -0
  268. package/dist/uds/dist/components/client/Radio/index.d.mts +3 -0
  269. package/dist/uds/dist/components/client/SpringMotionConfig.d.cts +3 -0
  270. package/dist/uds/dist/components/client/SpringMotionConfig.d.mts +3 -0
  271. package/dist/uds/dist/components/client/Switch.d.cts +3 -0
  272. package/dist/uds/dist/components/client/Switch.d.mts +3 -0
  273. package/dist/uds/dist/components/client/index.d.cts +33 -0
  274. package/dist/uds/dist/components/client/index.d.mts +33 -0
  275. package/dist/uds/dist/components/index.d.cts +40 -0
  276. package/dist/uds/dist/components/index.d.mts +40 -0
  277. package/dist/uds/dist/index.d.cts +46 -0
  278. package/dist/uds/dist/index.d.mts +46 -0
  279. package/dist/uds/dist/styles/styler.d.cts +2 -0
  280. package/dist/uds/dist/styles/styler.d.mts +2 -0
  281. package/dist/uds/dist/styles/stylerTypes.d.cts +2 -0
  282. package/dist/uds/dist/styles/stylerTypes.d.mts +2 -0
  283. package/dist/uds/dist/tokens/automation/configs/avatar.d.cts +2 -0
  284. package/dist/uds/dist/tokens/automation/configs/avatar.d.mts +2 -0
  285. package/dist/uds/dist/tokens/automation/properties.d.cts +3 -0
  286. package/dist/uds/dist/tokens/automation/properties.d.mts +3 -0
  287. package/dist/uds/dist/tokens/automation/types/ComponentConfig.d.cts +3 -0
  288. package/dist/uds/dist/tokens/automation/types/ComponentConfig.d.mts +3 -0
  289. package/dist/uds/dist/tokens/configs/motion.cjs +109 -0
  290. package/dist/uds/dist/tokens/configs/motion.d.cts +20 -0
  291. package/dist/uds/dist/tokens/configs/motion.d.cts.map +1 -0
  292. package/dist/uds/dist/tokens/configs/motion.d.mts +20 -0
  293. package/dist/uds/dist/tokens/configs/motion.d.mts.map +1 -0
  294. package/dist/uds/dist/tokens/configs/motion.mjs +108 -0
  295. package/dist/uds/dist/tokens/configs/motion.mjs.map +1 -0
  296. package/dist/uds/dist/tokens/configs/palette/alwaysPalette.d.cts +32 -0
  297. package/dist/uds/dist/tokens/configs/palette/alwaysPalette.d.cts.map +1 -0
  298. package/dist/uds/dist/tokens/configs/palette/alwaysPalette.d.mts +32 -0
  299. package/dist/uds/dist/tokens/configs/palette/alwaysPalette.d.mts.map +1 -0
  300. package/dist/uds/dist/tokens/types.d.cts +426 -0
  301. package/dist/uds/dist/tokens/types.d.cts.map +1 -0
  302. package/dist/uds/dist/tokens/types.d.mts +426 -0
  303. package/dist/uds/dist/tokens/types.d.mts.map +1 -0
  304. package/dist/uds/dist/types.d.cts +2 -0
  305. package/dist/uds/dist/types.d.mts +2 -0
  306. package/fonts/centra-no2-black-italic.otf +0 -0
  307. package/fonts/centra-no2-black.otf +0 -0
  308. package/fonts/centra-no2-bold-italic.otf +0 -0
  309. package/fonts/centra-no2-bold.otf +0 -0
  310. package/fonts/centra-no2-book-italic.otf +0 -0
  311. package/fonts/centra-no2-book.otf +0 -0
  312. package/fonts/centra-no2-extrabold-italic.otf +0 -0
  313. package/fonts/centra-no2-extrabold.otf +0 -0
  314. package/fonts/centra-no2-hairline-italic.otf +0 -0
  315. package/fonts/centra-no2-hairline.otf +0 -0
  316. package/fonts/centra-no2-light-italic.otf +0 -0
  317. package/fonts/centra-no2-light.otf +0 -0
  318. package/fonts/centra-no2-medium-italic.otf +0 -0
  319. package/fonts/centra-no2-medium.otf +0 -0
  320. package/fonts/centra-no2-thin-italic.otf +0 -0
  321. package/fonts/centra-no2-thin.otf +0 -0
  322. package/fonts/gelica-black-italic.otf +0 -0
  323. package/fonts/gelica-black.otf +0 -0
  324. package/fonts/gelica-bold-italic.otf +0 -0
  325. package/fonts/gelica-bold.otf +0 -0
  326. package/fonts/gelica-extra-light-italic.otf +0 -0
  327. package/fonts/gelica-extra-light.otf +0 -0
  328. package/fonts/gelica-light-italic.otf +0 -0
  329. package/fonts/gelica-light.otf +0 -0
  330. package/fonts/gelica-medium-italic.otf +0 -0
  331. package/fonts/gelica-medium.otf +0 -0
  332. package/fonts/gelica-regular-italic.otf +0 -0
  333. package/fonts/gelica-regular.otf +0 -0
  334. package/fonts/gelica-semi-bold-italic.otf +0 -0
  335. package/fonts/gelica-semi-bold.otf +0 -0
  336. package/fonts/index.cjs +270 -0
  337. package/fonts/index.d.ts +10 -0
  338. package/fonts/index.mjs +272 -0
  339. package/fonts/inter-black.ttf +0 -0
  340. package/fonts/inter-bold.ttf +0 -0
  341. package/fonts/inter-extra-bold.ttf +0 -0
  342. package/fonts/inter-extra-light.ttf +0 -0
  343. package/fonts/inter-light.ttf +0 -0
  344. package/fonts/inter-medium.ttf +0 -0
  345. package/fonts/inter-regular.ttf +0 -0
  346. package/fonts/inter-semi-bold.ttf +0 -0
  347. package/fonts/inter-thin.ttf +0 -0
  348. package/fonts/roboto-mono-bold-italic.ttf +0 -0
  349. package/fonts/roboto-mono-bold.ttf +0 -0
  350. package/fonts/roboto-mono-light-italic.ttf +0 -0
  351. package/fonts/roboto-mono-light.ttf +0 -0
  352. package/fonts/roboto-mono-medium-italic.ttf +0 -0
  353. package/fonts/roboto-mono-medium.ttf +0 -0
  354. package/fonts/roboto-mono-regular-italic.ttf +0 -0
  355. package/fonts/roboto-mono-regular.ttf +0 -0
  356. package/fonts/roboto-mono-thin-italic.ttf +0 -0
  357. package/fonts/roboto-mono-thin.ttf +0 -0
  358. package/fonts/uds-icons.ttf +0 -0
  359. package/fonts/yahoo-product-sans-bold.otf +0 -0
  360. package/fonts/yahoo-product-sans-extended-black-italic.ttf +0 -0
  361. package/fonts/yahoo-product-sans-extended-black.ttf +0 -0
  362. package/fonts/yahoo-product-sans-extended-bold-italic.ttf +0 -0
  363. package/fonts/yahoo-product-sans-extended-bold.ttf +0 -0
  364. package/fonts/yahoo-product-sans-extended-light-italic.ttf +0 -0
  365. package/fonts/yahoo-product-sans-extended-light.ttf +0 -0
  366. package/fonts/yahoo-product-sans-extended-medium-italic.ttf +0 -0
  367. package/fonts/yahoo-product-sans-extended-medium.ttf +0 -0
  368. package/fonts/yahoo-product-sans-extended-regular-italic.ttf +0 -0
  369. package/fonts/yahoo-product-sans-extended-regular.ttf +0 -0
  370. package/fonts/yahoo-product-sans-extended-semibold-italic.ttf +0 -0
  371. package/fonts/yahoo-product-sans-extended-semibold.ttf +0 -0
  372. package/fonts/yahoo-product-sans-medium.otf +0 -0
  373. package/fonts/yahoo-product-sans-regular.otf +0 -0
  374. package/fonts/yahoo-sans-beta-bold.otf +0 -0
  375. package/fonts/yahoo-sans-beta-medium.otf +0 -0
  376. package/fonts/yahoo-sans-beta-regular.otf +0 -0
  377. package/fonts/yahoo-sans-black.otf +0 -0
  378. package/fonts/yahoo-sans-bold.otf +0 -0
  379. package/fonts/yahoo-sans-condensed-black.otf +0 -0
  380. package/fonts/yahoo-sans-condensed-bold.otf +0 -0
  381. package/fonts/yahoo-sans-condensed-light.otf +0 -0
  382. package/fonts/yahoo-sans-condensed-medium.otf +0 -0
  383. package/fonts/yahoo-sans-condensed-regular.otf +0 -0
  384. package/fonts/yahoo-sans-condensed-xbold.ttf +0 -0
  385. package/fonts/yahoo-sans-cr4-bold.ttf +0 -0
  386. package/fonts/yahoo-sans-cr4-medium.ttf +0 -0
  387. package/fonts/yahoo-sans-cr4-regular.ttf +0 -0
  388. package/fonts/yahoo-sans-extrabold.otf +0 -0
  389. package/fonts/yahoo-sans-extralight.otf +0 -0
  390. package/fonts/yahoo-sans-italic.otf +0 -0
  391. package/fonts/yahoo-sans-light.otf +0 -0
  392. package/fonts/yahoo-sans-medium.otf +0 -0
  393. package/fonts/yahoo-sans-regular-italic.otf +0 -0
  394. package/fonts/yahoo-sans-regular.otf +0 -0
  395. package/fonts/yahoo-sans-semibold.otf +0 -0
  396. package/fonts/yahoo-serif-display-black.otf +0 -0
  397. package/fonts/yahoo-serif-display-bold.otf +0 -0
  398. package/fonts/yahoo-serif-display-extrabold.otf +0 -0
  399. package/fonts/yahoo-serif-display-light.otf +0 -0
  400. package/fonts/yahoo-serif-display-regular.otf +0 -0
  401. package/fonts/yahoo-serif-text-bold-italic.ttf +0 -0
  402. package/fonts/yahoo-serif-text-bold.otf +0 -0
  403. package/fonts/yahoo-serif-text-italic.otf +0 -0
  404. package/fonts/yahoo-serif-text-regular.otf +0 -0
  405. package/fonts/yas-black-italic.otf +0 -0
  406. package/fonts/yas-black.otf +0 -0
  407. package/fonts/yas-bold-italic.otf +0 -0
  408. package/fonts/yas-bold.otf +0 -0
  409. package/fonts/yas-condensed-black-italic.otf +0 -0
  410. package/fonts/yas-condensed-black.otf +0 -0
  411. package/fonts/yas-condensed-bold-italic.otf +0 -0
  412. package/fonts/yas-condensed-bold.otf +0 -0
  413. package/fonts/yas-condensed-light-italic.otf +0 -0
  414. package/fonts/yas-condensed-light.otf +0 -0
  415. package/fonts/yas-condensed-medium-italic.otf +0 -0
  416. package/fonts/yas-condensed-medium.otf +0 -0
  417. package/fonts/yas-condensed-regular-italic.otf +0 -0
  418. package/fonts/yas-condensed-regular.otf +0 -0
  419. package/fonts/yas-condensed-semibold-italic.otf +0 -0
  420. package/fonts/yas-condensed-semibold.otf +0 -0
  421. package/fonts/yas-extended-black-italic.otf +0 -0
  422. package/fonts/yas-extended-black.otf +0 -0
  423. package/fonts/yas-extended-bold-italic.otf +0 -0
  424. package/fonts/yas-extended-bold.otf +0 -0
  425. package/fonts/yas-extended-light-italic.otf +0 -0
  426. package/fonts/yas-extended-light.otf +0 -0
  427. package/fonts/yas-extended-medium-italic.otf +0 -0
  428. package/fonts/yas-extended-medium.otf +0 -0
  429. package/fonts/yas-extended-regular-italic.otf +0 -0
  430. package/fonts/yas-extended-regular.otf +0 -0
  431. package/fonts/yas-extended-semibold-italic.otf +0 -0
  432. package/fonts/yas-extended-semibold.otf +0 -0
  433. package/fonts/yas-light-italic.otf +0 -0
  434. package/fonts/yas-light.otf +0 -0
  435. package/fonts/yas-medium-italic.otf +0 -0
  436. package/fonts/yas-medium.otf +0 -0
  437. package/fonts/yas-regular-italic.otf +0 -0
  438. package/fonts/yas-regular.otf +0 -0
  439. package/fonts/yas-semibold-italic.otf +0 -0
  440. package/fonts/yas-semibold.otf +0 -0
  441. package/generated/styles.cjs +4510 -0
  442. package/generated/styles.d.cts +1 -0
  443. package/generated/styles.d.mts +1 -0
  444. package/generated/styles.d.ts +2965 -0
  445. package/generated/styles.mjs +4510 -0
  446. package/generated/unistyles.d.ts +4320 -0
  447. package/package.json +308 -0
@@ -0,0 +1,139 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
3
+ const require_components_IconSlot = require('./IconSlot.cjs');
4
+ let react = require("react");
5
+ let react_native = require("react-native");
6
+ let generated_styles = require("../../generated/styles");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ let react_native_reanimated = require("react-native-reanimated");
9
+ react_native_reanimated = require_rolldown_runtime.__toESM(react_native_reanimated);
10
+ let react_native_unistyles_reanimated = require("react-native-unistyles/reanimated");
11
+
12
+ //#region src/components/Link.tsx
13
+ const AnimatedText = react_native_reanimated.default.Text;
14
+ const noUnderline = { textDecorationLine: "none" };
15
+ /**
16
+ * **🔗 A navigation link component**
17
+ *
18
+ * @description
19
+ * A styled link component for navigation. Rendered as Text so it can be
20
+ * nested inline within other Text. Supports optional start/end icons.
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * import { Link } from '@yahoo/uds-mobile';
25
+ *
26
+ * // Standalone link
27
+ * <Link onPress={() => navigate('/profile')}>Go to Profile</Link>
28
+ *
29
+ * // Inline within text
30
+ * <Text>Read our <Link>Terms of Service</Link> and <Link>Privacy Policy</Link>.</Text>
31
+ *
32
+ * // With icons
33
+ * <Link startIcon="AffiliateLink">External link</Link>
34
+ * <Link endIcon="ChevronRight">Navigate forward</Link>
35
+ * ```
36
+ *
37
+ * @see The {@link https://uds.build/docs/components/link Link Docs} for more info
38
+ */
39
+ const Link = (0, react.memo)(function Link$1({ children, variant = "primary", textVariant, alwaysUnderline = false, startIcon, endIcon, onPress, style, ref, ...rest }) {
40
+ const [pressed, setPressed] = (0, react.useState)(false);
41
+ const handlePressIn = (0, react.useCallback)(() => {
42
+ setPressed(true);
43
+ }, []);
44
+ const handlePressOut = (0, react.useCallback)(() => {
45
+ setPressed(false);
46
+ }, []);
47
+ const handlePress = (0, react.useCallback)((event) => {
48
+ onPress?.(event);
49
+ }, [onPress]);
50
+ generated_styles.linkStyles.useVariants({
51
+ textStyle: textVariant,
52
+ variant,
53
+ pressed
54
+ });
55
+ const animatedTheme = (0, react_native_unistyles_reanimated.useAnimatedTheme)();
56
+ const underlineProgress = (0, react_native_reanimated.useDerivedValue)(() => {
57
+ return (0, react_native_reanimated.withTiming)(pressed || alwaysUnderline ? 1 : 0, {
58
+ duration: 150,
59
+ easing: react_native_reanimated.Easing.bezier(0, 0, .2, 1)
60
+ });
61
+ }, [pressed, alwaysUnderline]);
62
+ const animatedTextStyle = (0, react_native_reanimated.useAnimatedStyle)(() => {
63
+ const textColor = animatedTheme.value.components[`link/variant/${variant}/rootText/${pressed ? "pressed" : "rest"}`].color;
64
+ return {
65
+ color: (0, react_native_reanimated.withTiming)(textColor, {
66
+ duration: 150,
67
+ easing: react_native_reanimated.Easing.bezier(0, 0, .2, 1)
68
+ }),
69
+ textDecorationColor: (0, react_native_reanimated.interpolateColor)(underlineProgress.value, [0, 1], ["transparent", textColor])
70
+ };
71
+ });
72
+ const textStyles = (0, react.useMemo)(() => {
73
+ return [
74
+ generated_styles.linkStyles.root,
75
+ generated_styles.linkStyles.text,
76
+ animatedTextStyle,
77
+ style
78
+ ];
79
+ }, [
80
+ generated_styles.linkStyles.text,
81
+ animatedTextStyle,
82
+ style,
83
+ generated_styles.linkStyles.root
84
+ ]);
85
+ const startIconStyles = (0, react.useMemo)(() => {
86
+ return [
87
+ generated_styles.linkStyles.icon,
88
+ generated_styles.linkStyles.iconStart,
89
+ noUnderline
90
+ ];
91
+ }, [
92
+ generated_styles.linkStyles.icon,
93
+ generated_styles.linkStyles.iconStart,
94
+ noUnderline
95
+ ]);
96
+ const endIconStyles = (0, react.useMemo)(() => {
97
+ return [
98
+ generated_styles.linkStyles.icon,
99
+ generated_styles.linkStyles.iconEnd,
100
+ noUnderline
101
+ ];
102
+ }, [
103
+ generated_styles.linkStyles.icon,
104
+ generated_styles.linkStyles.iconEnd,
105
+ noUnderline
106
+ ]);
107
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(AnimatedText, {
108
+ ref,
109
+ onPress: handlePress,
110
+ onPressIn: handlePressIn,
111
+ onPressOut: handlePressOut,
112
+ suppressHighlighting: true,
113
+ style: textStyles,
114
+ ...rest,
115
+ children: [
116
+ startIcon && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_IconSlot.IconSlot, {
117
+ icon: startIcon,
118
+ variant: "outline",
119
+ style: startIconStyles
120
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.Text, {
121
+ style: noUnderline,
122
+ children: "  "
123
+ })] }),
124
+ children,
125
+ endIcon && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.Text, {
126
+ style: noUnderline,
127
+ children: "  "
128
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_IconSlot.IconSlot, {
129
+ icon: endIcon,
130
+ variant: "outline",
131
+ style: endIconStyles
132
+ })] })
133
+ ]
134
+ });
135
+ });
136
+ Link.displayName = "Link";
137
+
138
+ //#endregion
139
+ exports.Link = Link;
@@ -0,0 +1,45 @@
1
+
2
+ import { UniversalLinkProps } from "../uds/dist/tokens/types.cjs";
3
+ import "../uds/dist/index.cjs";
4
+ import { IconSlotType } from "./IconSlot.cjs";
5
+ import { TextProps as TextProps$1 } from "./Text.cjs";
6
+ import * as react6 from "react";
7
+ import { ReactNode, Ref } from "react";
8
+ import { Text, TextStyle } from "react-native";
9
+
10
+ //#region src/components/Link.d.ts
11
+ interface LinkProps extends UniversalLinkProps<IconSlotType> {
12
+ /** Style override */
13
+ style?: TextStyle;
14
+ onPress?: TextProps$1['onPress'];
15
+ ref?: Ref<Text>;
16
+ children?: ReactNode;
17
+ }
18
+ /**
19
+ * **🔗 A navigation link component**
20
+ *
21
+ * @description
22
+ * A styled link component for navigation. Rendered as Text so it can be
23
+ * nested inline within other Text. Supports optional start/end icons.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * import { Link } from '@yahoo/uds-mobile';
28
+ *
29
+ * // Standalone link
30
+ * <Link onPress={() => navigate('/profile')}>Go to Profile</Link>
31
+ *
32
+ * // Inline within text
33
+ * <Text>Read our <Link>Terms of Service</Link> and <Link>Privacy Policy</Link>.</Text>
34
+ *
35
+ * // With icons
36
+ * <Link startIcon="AffiliateLink">External link</Link>
37
+ * <Link endIcon="ChevronRight">Navigate forward</Link>
38
+ * ```
39
+ *
40
+ * @see The {@link https://uds.build/docs/components/link Link Docs} for more info
41
+ */
42
+ declare const Link: react6.NamedExoticComponent<LinkProps>;
43
+ //#endregion
44
+ export { Link, type LinkProps };
45
+ //# sourceMappingURL=Link.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.d.cts","names":[],"sources":["../../src/components/Link.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;UAwBU,SAAA,SAAkB,mBAAmB;;UAErC;EAFA,OAAA,CAAA,EAGE,WAHQ,CAAA,SAAA,CAAA;EAA2B,GAAA,CAAA,EAIvC,GAJuC,CAInC,IAJmC,CAAA;EAErC,QAAA,CAAA,EAGG,SAHH;;;;;;;AAFoC;;;;;;;;;;;;;;;;;;;cAgCxC,MAAI,MAAA,CAAA,qBAAA"}
@@ -0,0 +1,45 @@
1
+
2
+ import { UniversalLinkProps } from "../uds/dist/tokens/types.mjs";
3
+ import "../uds/dist/index.mjs";
4
+ import { IconSlotType } from "./IconSlot.mjs";
5
+ import { TextProps as TextProps$1 } from "./Text.mjs";
6
+ import * as react11 from "react";
7
+ import { ReactNode, Ref } from "react";
8
+ import { Text, TextStyle } from "react-native";
9
+
10
+ //#region src/components/Link.d.ts
11
+ interface LinkProps extends UniversalLinkProps<IconSlotType> {
12
+ /** Style override */
13
+ style?: TextStyle;
14
+ onPress?: TextProps$1['onPress'];
15
+ ref?: Ref<Text>;
16
+ children?: ReactNode;
17
+ }
18
+ /**
19
+ * **🔗 A navigation link component**
20
+ *
21
+ * @description
22
+ * A styled link component for navigation. Rendered as Text so it can be
23
+ * nested inline within other Text. Supports optional start/end icons.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * import { Link } from '@yahoo/uds-mobile';
28
+ *
29
+ * // Standalone link
30
+ * <Link onPress={() => navigate('/profile')}>Go to Profile</Link>
31
+ *
32
+ * // Inline within text
33
+ * <Text>Read our <Link>Terms of Service</Link> and <Link>Privacy Policy</Link>.</Text>
34
+ *
35
+ * // With icons
36
+ * <Link startIcon="AffiliateLink">External link</Link>
37
+ * <Link endIcon="ChevronRight">Navigate forward</Link>
38
+ * ```
39
+ *
40
+ * @see The {@link https://uds.build/docs/components/link Link Docs} for more info
41
+ */
42
+ declare const Link: react11.NamedExoticComponent<LinkProps>;
43
+ //#endregion
44
+ export { Link, type LinkProps };
45
+ //# sourceMappingURL=Link.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.d.mts","names":[],"sources":["../../src/components/Link.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;UAwBU,SAAA,SAAkB,mBAAmB;;UAErC;EAFA,OAAA,CAAA,EAGE,WAHQ,CAAA,SAAA,CAAA;EAA2B,GAAA,CAAA,EAIvC,GAJuC,CAInC,IAJmC,CAAA;EAErC,QAAA,CAAA,EAGG,SAHH;;;;;;;AAFoC;;;;;;;;;;;;;;;;;;;cAgCxC,MAAI,OAAA,CAAA,qBAAA"}
@@ -0,0 +1,138 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ import { IconSlot } from "./IconSlot.mjs";
3
+ import { memo, useCallback, useMemo, useState } from "react";
4
+ import { Text } from "react-native";
5
+ import { linkStyles } from "../../generated/styles";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
+ import Animated, { Easing, interpolateColor, useAnimatedStyle, useDerivedValue, withTiming } from "react-native-reanimated";
8
+ import { useAnimatedTheme } from "react-native-unistyles/reanimated";
9
+
10
+ //#region src/components/Link.tsx
11
+ const AnimatedText = Animated.Text;
12
+ const noUnderline = { textDecorationLine: "none" };
13
+ /**
14
+ * **🔗 A navigation link component**
15
+ *
16
+ * @description
17
+ * A styled link component for navigation. Rendered as Text so it can be
18
+ * nested inline within other Text. Supports optional start/end icons.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * import { Link } from '@yahoo/uds-mobile';
23
+ *
24
+ * // Standalone link
25
+ * <Link onPress={() => navigate('/profile')}>Go to Profile</Link>
26
+ *
27
+ * // Inline within text
28
+ * <Text>Read our <Link>Terms of Service</Link> and <Link>Privacy Policy</Link>.</Text>
29
+ *
30
+ * // With icons
31
+ * <Link startIcon="AffiliateLink">External link</Link>
32
+ * <Link endIcon="ChevronRight">Navigate forward</Link>
33
+ * ```
34
+ *
35
+ * @see The {@link https://uds.build/docs/components/link Link Docs} for more info
36
+ */
37
+ const Link = memo(function Link$1({ children, variant = "primary", textVariant, alwaysUnderline = false, startIcon, endIcon, onPress, style, ref, ...rest }) {
38
+ const [pressed, setPressed] = useState(false);
39
+ const handlePressIn = useCallback(() => {
40
+ setPressed(true);
41
+ }, []);
42
+ const handlePressOut = useCallback(() => {
43
+ setPressed(false);
44
+ }, []);
45
+ const handlePress = useCallback((event) => {
46
+ onPress?.(event);
47
+ }, [onPress]);
48
+ linkStyles.useVariants({
49
+ textStyle: textVariant,
50
+ variant,
51
+ pressed
52
+ });
53
+ const animatedTheme = useAnimatedTheme();
54
+ const underlineProgress = useDerivedValue(() => {
55
+ return withTiming(pressed || alwaysUnderline ? 1 : 0, {
56
+ duration: 150,
57
+ easing: Easing.bezier(0, 0, .2, 1)
58
+ });
59
+ }, [pressed, alwaysUnderline]);
60
+ const animatedTextStyle = useAnimatedStyle(() => {
61
+ const textColor = animatedTheme.value.components[`link/variant/${variant}/rootText/${pressed ? "pressed" : "rest"}`].color;
62
+ return {
63
+ color: withTiming(textColor, {
64
+ duration: 150,
65
+ easing: Easing.bezier(0, 0, .2, 1)
66
+ }),
67
+ textDecorationColor: interpolateColor(underlineProgress.value, [0, 1], ["transparent", textColor])
68
+ };
69
+ });
70
+ const textStyles = useMemo(() => {
71
+ return [
72
+ linkStyles.root,
73
+ linkStyles.text,
74
+ animatedTextStyle,
75
+ style
76
+ ];
77
+ }, [
78
+ linkStyles.text,
79
+ animatedTextStyle,
80
+ style,
81
+ linkStyles.root
82
+ ]);
83
+ const startIconStyles = useMemo(() => {
84
+ return [
85
+ linkStyles.icon,
86
+ linkStyles.iconStart,
87
+ noUnderline
88
+ ];
89
+ }, [
90
+ linkStyles.icon,
91
+ linkStyles.iconStart,
92
+ noUnderline
93
+ ]);
94
+ const endIconStyles = useMemo(() => {
95
+ return [
96
+ linkStyles.icon,
97
+ linkStyles.iconEnd,
98
+ noUnderline
99
+ ];
100
+ }, [
101
+ linkStyles.icon,
102
+ linkStyles.iconEnd,
103
+ noUnderline
104
+ ]);
105
+ return /* @__PURE__ */ jsxs(AnimatedText, {
106
+ ref,
107
+ onPress: handlePress,
108
+ onPressIn: handlePressIn,
109
+ onPressOut: handlePressOut,
110
+ suppressHighlighting: true,
111
+ style: textStyles,
112
+ ...rest,
113
+ children: [
114
+ startIcon && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(IconSlot, {
115
+ icon: startIcon,
116
+ variant: "outline",
117
+ style: startIconStyles
118
+ }), /* @__PURE__ */ jsx(Text, {
119
+ style: noUnderline,
120
+ children: "  "
121
+ })] }),
122
+ children,
123
+ endIcon && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Text, {
124
+ style: noUnderline,
125
+ children: "  "
126
+ }), /* @__PURE__ */ jsx(IconSlot, {
127
+ icon: endIcon,
128
+ variant: "outline",
129
+ style: endIconStyles
130
+ })] })
131
+ ]
132
+ });
133
+ });
134
+ Link.displayName = "Link";
135
+
136
+ //#endregion
137
+ export { Link };
138
+ //# sourceMappingURL=Link.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.mjs","names":["noUnderline: TextStyle","Link","RNText"],"sources":["../../src/components/Link.tsx"],"sourcesContent":["import type { UniversalLinkProps } from '@yahoo/uds';\nimport type { ReactNode, Ref } from 'react';\nimport { memo, useCallback, useMemo, useState } from 'react';\nimport type { GestureResponderEvent, TextStyle } from 'react-native';\nimport { Text as RNText } from 'react-native';\nimport Animated, {\n Easing,\n interpolateColor,\n useAnimatedStyle,\n useDerivedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport { useAnimatedTheme } from 'react-native-unistyles/reanimated';\n\nimport { linkStyles } from '../../generated/styles';\nimport type { IconSlotType } from './IconSlot';\nimport { IconSlot } from './IconSlot';\nimport type { TextProps } from './Text';\n\nconst AnimatedText = Animated.Text;\n\n// Prevent icons from inheriting underline from parent/theme (matches web behavior)\nconst noUnderline: TextStyle = { textDecorationLine: 'none' };\n\ninterface LinkProps extends UniversalLinkProps<IconSlotType> {\n /** Style override */\n style?: TextStyle;\n onPress?: TextProps['onPress'];\n ref?: Ref<RNText>;\n children?: ReactNode;\n}\n\n/**\n * **🔗 A navigation link component**\n *\n * @description\n * A styled link component for navigation. Rendered as Text so it can be\n * nested inline within other Text. Supports optional start/end icons.\n *\n * @example\n * ```tsx\n * import { Link } from '@yahoo/uds-mobile';\n *\n * // Standalone link\n * <Link onPress={() => navigate('/profile')}>Go to Profile</Link>\n *\n * // Inline within text\n * <Text>Read our <Link>Terms of Service</Link> and <Link>Privacy Policy</Link>.</Text>\n *\n * // With icons\n * <Link startIcon=\"AffiliateLink\">External link</Link>\n * <Link endIcon=\"ChevronRight\">Navigate forward</Link>\n * ```\n *\n * @see The {@link https://uds.build/docs/components/link Link Docs} for more info\n */\nconst Link = memo(function Link({\n children,\n variant = 'primary',\n textVariant,\n alwaysUnderline = false,\n startIcon,\n endIcon,\n onPress,\n style,\n ref,\n ...rest\n}: LinkProps) {\n const [pressed, setPressed] = useState(false);\n\n const handlePressIn = useCallback(() => {\n setPressed(true);\n }, []);\n\n const handlePressOut = useCallback(() => {\n setPressed(false);\n }, []);\n\n // Must have onPress for touch events to register (RN requirement)\n // Even without a user-provided handler, we need a function to make text touchable\n const handlePress = useCallback(\n (event: GestureResponderEvent) => {\n onPress?.(event);\n },\n [onPress],\n );\n\n linkStyles.useVariants({\n textStyle: textVariant,\n variant,\n pressed,\n });\n\n // Get theme as SharedValue for worklet access (zero re-renders)\n const animatedTheme = useAnimatedTheme();\n\n // Derive underline visibility from pressed state\n // useDerivedValue handles the animation automatically when deps change\n const underlineProgress = useDerivedValue(() => {\n const targetValue = pressed || alwaysUnderline ? 1 : 0;\n return withTiming(targetValue, {\n duration: 150,\n easing: Easing.bezier(0, 0, 0.2, 1),\n });\n }, [pressed, alwaysUnderline]);\n\n // Combined animated style for color and underline\n const animatedTextStyle = useAnimatedStyle(() => {\n // Access text color from theme using variant path\n const components = animatedTheme.value.components;\n const state = pressed ? 'pressed' : 'rest';\n const textVariantPath = `link/variant/${variant}/rootText/${state}` as const;\n const textColor = components[textVariantPath].color;\n\n const color = withTiming(textColor, {\n duration: 150,\n easing: Easing.bezier(0, 0, 0.2, 1),\n });\n\n // Interpolate underline opacity: 0 = transparent, 1 = text color\n const underlineColor = interpolateColor(\n underlineProgress.value,\n [0, 1],\n ['transparent', textColor],\n );\n\n return {\n color,\n textDecorationColor: underlineColor,\n };\n });\n\n const textStyles = useMemo(() => {\n return [linkStyles.root, linkStyles.text, animatedTextStyle, style];\n }, [linkStyles.text, animatedTextStyle, style, linkStyles.root]);\n\n const startIconStyles = useMemo(() => {\n return [linkStyles.icon, linkStyles.iconStart, noUnderline];\n }, [linkStyles.icon, linkStyles.iconStart, noUnderline]);\n\n const endIconStyles = useMemo(() => {\n return [linkStyles.icon, linkStyles.iconEnd, noUnderline];\n }, [linkStyles.icon, linkStyles.iconEnd, noUnderline]);\n\n return (\n <AnimatedText\n ref={ref}\n onPress={handlePress}\n onPressIn={handlePressIn}\n onPressOut={handlePressOut}\n suppressHighlighting\n style={textStyles}\n {...rest}\n >\n {startIcon && (\n <>\n <IconSlot icon={startIcon} variant=\"outline\" style={startIconStyles} />\n {/* TODO: need to add hairline space character to icon font so we can have space between icon and text https://hybridheroes.de/blog/2022-11-17-text-with-inline-icons-in-react-native/ */}\n <RNText style={noUnderline}>{' \\u200A'}</RNText>\n </>\n )}\n {children}\n {endIcon && (\n <>\n {/* TODO: need to add hairline space character to icon font so we can have space between icon and text https://hybridheroes.de/blog/2022-11-17-text-with-inline-icons-in-react-native/ */}\n <RNText style={noUnderline}>{' \\u200A'}</RNText>\n <IconSlot icon={endIcon} variant=\"outline\" style={endIconStyles} />\n </>\n )}\n </AnimatedText>\n );\n});\n\nLink.displayName = 'Link';\n\nexport { Link, type LinkProps };\n"],"mappings":";;;;;;;;;;AAmBA,MAAM,eAAe,SAAS;AAG9B,MAAMA,cAAyB,EAAE,oBAAoB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;AAkC7D,MAAM,OAAO,KAAK,SAASC,OAAK,EAC9B,UACA,UAAU,WACV,aACA,kBAAkB,OAClB,WACA,SACA,SACA,OACA,KACA,GAAG,QACS;CACZ,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAE7C,MAAM,gBAAgB,kBAAkB;AACtC,aAAW,KAAK;IACf,EAAE,CAAC;CAEN,MAAM,iBAAiB,kBAAkB;AACvC,aAAW,MAAM;IAChB,EAAE,CAAC;CAIN,MAAM,cAAc,aACjB,UAAiC;AAChC,YAAU,MAAM;IAElB,CAAC,QAAQ,CACV;AAED,YAAW,YAAY;EACrB,WAAW;EACX;EACA;EACD,CAAC;CAGF,MAAM,gBAAgB,kBAAkB;CAIxC,MAAM,oBAAoB,sBAAsB;AAE9C,SAAO,WADa,WAAW,kBAAkB,IAAI,GACtB;GAC7B,UAAU;GACV,QAAQ,OAAO,OAAO,GAAG,GAAG,IAAK,EAAE;GACpC,CAAC;IACD,CAAC,SAAS,gBAAgB,CAAC;CAG9B,MAAM,oBAAoB,uBAAuB;EAK/C,MAAM,YAHa,cAAc,MAAM,WAEf,gBAAgB,QAAQ,YADlC,UAAU,YAAY,UAEU;AAc9C,SAAO;GACL,OAbY,WAAW,WAAW;IAClC,UAAU;IACV,QAAQ,OAAO,OAAO,GAAG,GAAG,IAAK,EAAE;IACpC,CAAC;GAWA,qBARqB,iBACrB,kBAAkB,OAClB,CAAC,GAAG,EAAE,EACN,CAAC,eAAe,UAAU,CAC3B;GAKA;GACD;CAEF,MAAM,aAAa,cAAc;AAC/B,SAAO;GAAC,WAAW;GAAM,WAAW;GAAM;GAAmB;GAAM;IAClE;EAAC,WAAW;EAAM;EAAmB;EAAO,WAAW;EAAK,CAAC;CAEhE,MAAM,kBAAkB,cAAc;AACpC,SAAO;GAAC,WAAW;GAAM,WAAW;GAAW;GAAY;IAC1D;EAAC,WAAW;EAAM,WAAW;EAAW;EAAY,CAAC;CAExD,MAAM,gBAAgB,cAAc;AAClC,SAAO;GAAC,WAAW;GAAM,WAAW;GAAS;GAAY;IACxD;EAAC,WAAW;EAAM,WAAW;EAAS;EAAY,CAAC;AAEtD,QACE,qBAAC;EACM;EACL,SAAS;EACT,WAAW;EACX,YAAY;EACZ;EACA,OAAO;EACP,GAAI;;GAEH,aACC,4CACE,oBAAC;IAAS,MAAM;IAAW,SAAQ;IAAU,OAAO;KAAmB,EAEvE,oBAACC;IAAO,OAAO;cAAc;KAAmB,IAC/C;GAEJ;GACA,WACC,4CAEE,oBAACA;IAAO,OAAO;cAAc;KAAmB,EAChD,oBAAC;IAAS,MAAM;IAAS,SAAQ;IAAU,OAAO;KAAiB,IAClE;;GAEQ;EAEjB;AAEF,KAAK,cAAc"}
@@ -0,0 +1,120 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
3
+ let react = require("react");
4
+ let react_native = require("react-native");
5
+ let generated_styles = require("../../generated/styles");
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
+ let react_native_reanimated = require("react-native-reanimated");
8
+ react_native_reanimated = require_rolldown_runtime.__toESM(react_native_reanimated);
9
+
10
+ //#region src/components/Pressable.tsx
11
+ /**
12
+ * **👆 A pressable component with UDS styling**
13
+ *
14
+ * @description
15
+ * A styled pressable component that wraps React Native's Pressable with
16
+ * UDS styling support.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * import { Pressable } from '@yahoo/uds-mobile';
21
+ *
22
+ * <Pressable
23
+ * backgroundColor="primary"
24
+ * spacing="4"
25
+ * borderRadius="md"
26
+ * onPress={() => console.log('Pressed!')}
27
+ * >
28
+ * <Text>Press me</Text>
29
+ * </Pressable>
30
+ * ```
31
+ *
32
+ * @usage
33
+ * - Use for interactive elements that need press feedback
34
+ * - Supports all Box styling props
35
+ *
36
+ * @see The {@link https://uds.build/docs/components/pressable Pressable Docs} for more info
37
+ */
38
+ const Pressable = (0, react.memo)(function Pressable$1({ backgroundColor, borderRadius, borderTopStartRadius, borderTopEndRadius, borderBottomStartRadius, borderBottomEndRadius, borderColor, 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, opacity, style, ref, ...props }) {
39
+ generated_styles.styles.useVariants({
40
+ backgroundColor,
41
+ borderRadius,
42
+ borderTopStartRadius,
43
+ borderTopEndRadius,
44
+ borderBottomStartRadius,
45
+ borderBottomEndRadius,
46
+ borderColor,
47
+ borderStartColor,
48
+ borderEndColor,
49
+ borderTopColor,
50
+ borderBottomColor,
51
+ borderWidth,
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
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.Pressable, {
87
+ ref,
88
+ style: (0, react.useCallback)((state) => {
89
+ const userStyle = typeof style === "function" ? style(state) : style;
90
+ return [
91
+ width ? { width } : void 0,
92
+ height ? { height } : void 0,
93
+ minWidth ? { minWidth } : void 0,
94
+ maxWidth ? { maxWidth } : void 0,
95
+ minHeight ? { minHeight } : void 0,
96
+ maxHeight ? { maxHeight } : void 0,
97
+ opacity ? { opacity } : void 0,
98
+ generated_styles.styles.foundation,
99
+ userStyle
100
+ ];
101
+ }, [
102
+ width,
103
+ height,
104
+ minWidth,
105
+ maxWidth,
106
+ minHeight,
107
+ maxHeight,
108
+ opacity,
109
+ style,
110
+ generated_styles.styles.foundation
111
+ ]),
112
+ ...props
113
+ });
114
+ });
115
+ Pressable.displayName = "Pressable";
116
+ const AnimatedPressable = react_native_reanimated.default.createAnimatedComponent(Pressable);
117
+
118
+ //#endregion
119
+ exports.AnimatedPressable = AnimatedPressable;
120
+ exports.Pressable = Pressable;
@@ -0,0 +1,90 @@
1
+
2
+ import { SizeProps } from "../types.cjs";
3
+ import * as react0 from "react";
4
+ import { Ref } from "react";
5
+ import { PressableProps as PressableProps$1, View } from "react-native";
6
+ import { StyleProps } from "../../generated/styles";
7
+ import * as react_native_reanimated0 from "react-native-reanimated";
8
+
9
+ //#region src/components/Pressable.d.ts
10
+ interface PressableProps extends PressableProps$1, SizeProps {
11
+ ref?: Ref<View>;
12
+ backgroundColor?: StyleProps['backgroundColor'];
13
+ borderRadius?: StyleProps['borderRadius'];
14
+ borderTopStartRadius?: StyleProps['borderTopStartRadius'];
15
+ borderTopEndRadius?: StyleProps['borderTopEndRadius'];
16
+ borderBottomStartRadius?: StyleProps['borderBottomStartRadius'];
17
+ borderBottomEndRadius?: StyleProps['borderBottomEndRadius'];
18
+ borderColor?: StyleProps['borderColor'];
19
+ borderStartColor?: StyleProps['borderStartColor'];
20
+ borderEndColor?: StyleProps['borderEndColor'];
21
+ borderTopColor?: StyleProps['borderTopColor'];
22
+ borderBottomColor?: StyleProps['borderBottomColor'];
23
+ borderWidth?: StyleProps['borderWidth'];
24
+ borderVerticalWidth?: StyleProps['borderVerticalWidth'];
25
+ borderHorizontalWidth?: StyleProps['borderHorizontalWidth'];
26
+ borderStartWidth?: StyleProps['borderStartWidth'];
27
+ borderEndWidth?: StyleProps['borderEndWidth'];
28
+ borderTopWidth?: StyleProps['borderTopWidth'];
29
+ borderBottomWidth?: StyleProps['borderBottomWidth'];
30
+ alignContent?: StyleProps['alignContent'];
31
+ alignItems?: StyleProps['alignItems'];
32
+ alignSelf?: StyleProps['alignSelf'];
33
+ flex?: StyleProps['flex'];
34
+ flexDirection?: StyleProps['flexDirection'];
35
+ flexGrow?: StyleProps['flexGrow'];
36
+ flexShrink?: StyleProps['flexShrink'];
37
+ flexWrap?: StyleProps['flexWrap'];
38
+ justifyContent?: StyleProps['justifyContent'];
39
+ display?: StyleProps['display'];
40
+ overflow?: StyleProps['overflow'];
41
+ spacing?: StyleProps['spacing'];
42
+ spacingHorizontal?: StyleProps['spacingHorizontal'];
43
+ spacingVertical?: StyleProps['spacingVertical'];
44
+ spacingBottom?: StyleProps['spacingBottom'];
45
+ spacingEnd?: StyleProps['spacingEnd'];
46
+ spacingStart?: StyleProps['spacingStart'];
47
+ spacingTop?: StyleProps['spacingTop'];
48
+ offset?: StyleProps['offset'];
49
+ offsetVertical?: StyleProps['offsetVertical'];
50
+ offsetHorizontal?: StyleProps['offsetHorizontal'];
51
+ offsetBottom?: StyleProps['offsetBottom'];
52
+ offsetEnd?: StyleProps['offsetEnd'];
53
+ offsetStart?: StyleProps['offsetStart'];
54
+ offsetTop?: StyleProps['offsetTop'];
55
+ columnGap?: StyleProps['columnGap'];
56
+ rowGap?: StyleProps['rowGap'];
57
+ opacity?: number;
58
+ }
59
+ /**
60
+ * **👆 A pressable component with UDS styling**
61
+ *
62
+ * @description
63
+ * A styled pressable component that wraps React Native's Pressable with
64
+ * UDS styling support.
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * import { Pressable } from '@yahoo/uds-mobile';
69
+ *
70
+ * <Pressable
71
+ * backgroundColor="primary"
72
+ * spacing="4"
73
+ * borderRadius="md"
74
+ * onPress={() => console.log('Pressed!')}
75
+ * >
76
+ * <Text>Press me</Text>
77
+ * </Pressable>
78
+ * ```
79
+ *
80
+ * @usage
81
+ * - Use for interactive elements that need press feedback
82
+ * - Supports all Box styling props
83
+ *
84
+ * @see The {@link https://uds.build/docs/components/pressable Pressable Docs} for more info
85
+ */
86
+ declare const Pressable: react0.NamedExoticComponent<PressableProps>;
87
+ declare const AnimatedPressable: react0.FunctionComponent<react_native_reanimated0.AnimatedProps<PressableProps>>;
88
+ //#endregion
89
+ export { AnimatedPressable, Pressable, type PressableProps };
90
+ //# sourceMappingURL=Pressable.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pressable.d.cts","names":[],"sources":["../../src/components/Pressable.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;UAgBU,cAAA,SAAuB,kBAAkB;QAC3C,IAAI;oBAEQ;iBAEH;EALP,oBAAe,CAAA,EAMA,UANA,CAAA,sBAAA,CAAA;EACb,kBAAA,CAAA,EAMW,UANX,CAAA,oBAAA,CAAA;EAAJ,uBAAA,CAAA,EAOoB,UAPpB,CAAA,yBAAA,CAAA;EAEY,qBAAA,CAAA,EAMM,UANN,CAAA,uBAAA,CAAA;EAEH,WAAA,CAAA,EAKD,UALC,CAAA,aAAA,CAAA;EACQ,gBAAA,CAAA,EAKJ,UALI,CAAA,kBAAA,CAAA;EACF,cAAA,CAAA,EAKJ,UALI,CAAA,gBAAA,CAAA;EACK,cAAA,CAAA,EAKT,UALS,CAAA,gBAAA,CAAA;EACF,iBAAA,CAAA,EAKJ,UALI,CAAA,mBAAA,CAAA;EACV,WAAA,CAAA,EAKA,UALA,CAAA,aAAA,CAAA;EACK,mBAAA,CAAA,EAKG,UALH,CAAA,qBAAA,CAAA;EACF,qBAAA,CAAA,EAKO,UALP,CAAA,uBAAA,CAAA;EACA,gBAAA,CAAA,EAKE,UALF,CAAA,kBAAA,CAAA;EACG,cAAA,CAAA,EAKH,UALG,CAAA,gBAAA,CAAA;EACN,cAAA,CAAA,EAKG,UALH,CAAA,gBAAA,CAAA;EACQ,iBAAA,CAAA,EAKF,UALE,CAAA,mBAAA,CAAA;EACE,YAAA,CAAA,EAMT,UANS,CAAA,cAAA,CAAA;EACL,UAAA,CAAA,EAMN,UANM,CAAA,YAAA,CAAA;EACF,SAAA,CAAA,EAML,UANK,CAAA,WAAA,CAAA;EACA,IAAA,CAAA,EAMV,UANU,CAAA,MAAA,CAAA;EACG,aAAA,CAAA,EAMJ,UANI,CAAA,eAAA,CAAA;EAEL,QAAA,CAAA,EAKJ,UALI,CAAA,UAAA,CAAA;EACF,UAAA,CAAA,EAKA,UALA,CAAA,YAAA,CAAA;EACD,QAAA,CAAA,EAKD,UALC,CAAA,UAAA,CAAA;EACL,cAAA,CAAA,EAKU,UALV,CAAA,gBAAA,CAAA;EACS,OAAA,CAAA,EAMN,UANM,CAAA,SAAA,CAAA;EACL,QAAA,CAAA,EAMA,UANA,CAAA,UAAA,CAAA;EACE,OAAA,CAAA,EAOH,UAPG,CAAA,SAAA,CAAA;EACF,iBAAA,CAAA,EAOS,UAPT,CAAA,mBAAA,CAAA;EACM,eAAA,CAAA,EAOC,UAPD,CAAA,iBAAA,CAAA;EAEP,aAAA,CAAA,EAMM,UANN,CAAA,eAAA,CAAA;EACC,UAAA,CAAA,EAME,UANF,CAAA,YAAA,CAAA;EAED,YAAA,CAAA,EAKK,UALL,CAAA,cAAA,CAAA;EACU,UAAA,CAAA,EAKP,UALO,CAAA,YAAA,CAAA;EACF,MAAA,CAAA,EAMT,UANS,CAAA,QAAA,CAAA;EACF,cAAA,CAAA,EAMC,UAND,CAAA,gBAAA,CAAA;EACH,gBAAA,CAAA,EAMM,UANN,CAAA,kBAAA,CAAA;EACE,YAAA,CAAA,EAMA,UANA,CAAA,cAAA,CAAA;EACF,SAAA,CAAA,EAMD,UANC,CAAA,WAAA,CAAA;EAEJ,WAAA,CAAA,EAKK,UALL,CAAA,aAAA,CAAA;EACQ,SAAA,CAAA,EAKL,UALK,CAAA,WAAA,CAAA;EACE,SAAA,CAAA,EAMP,UANO,CAAA,WAAA,CAAA;EACJ,MAAA,CAAA,EAMN,UANM,CAAA,QAAA,CAAA;EACH,OAAA,CAAA,EAAA,MAAA;;;;;;;;AAhD8C;AAqF7C;;;;;;;;;;;;;;;;;;;;cAAT,WAAS,MAAA,CAAA,qBAAA;cAoJT,mBAAiB,MAAA,CAAA,kBAAA,wBAAA,CAAA,cAAA"}