@yahoo/uds 3.132.2 → 3.133.0-beta.2

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 (287) hide show
  1. package/dist/automated-config/dist/properties.d.cts +1 -1
  2. package/dist/automated-config/dist/properties.d.ts +1 -1
  3. package/dist/automated-config/dist/utils/buildConfigSchema.d.cts +1 -1
  4. package/dist/automated-config/dist/utils/buildConfigSchema.d.ts +1 -1
  5. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.cts +2 -2
  6. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.ts +2 -2
  7. package/dist/components/{client/Avatar → Avatar}/Avatar.cjs +21 -6
  8. package/dist/components/{client/Avatar → Avatar}/Avatar.d.cts +3 -3
  9. package/dist/components/{client/Avatar → Avatar}/Avatar.d.ts +3 -4
  10. package/dist/components/{client/Avatar → Avatar}/Avatar.js +20 -5
  11. package/dist/components/{client/Avatar → Avatar}/AvatarIcon.cjs +11 -12
  12. package/dist/components/{client/Avatar → Avatar}/AvatarIcon.d.cts +5 -4
  13. package/dist/components/{client/Avatar → Avatar}/AvatarIcon.d.ts +5 -5
  14. package/dist/components/{client/Avatar → Avatar}/AvatarIcon.js +6 -7
  15. package/dist/components/Avatar/AvatarImage.types.cjs +1 -0
  16. package/dist/components/Avatar/AvatarImage.types.d.cts +19 -0
  17. package/dist/components/Avatar/AvatarImage.types.d.ts +19 -0
  18. package/dist/components/Avatar/AvatarImage.types.js +1 -0
  19. package/dist/components/Avatar/AvatarImageNoFallback.cjs +53 -0
  20. package/dist/components/Avatar/AvatarImageNoFallback.d.cts +18 -0
  21. package/dist/components/Avatar/AvatarImageNoFallback.d.ts +18 -0
  22. package/dist/components/Avatar/AvatarImageNoFallback.js +51 -0
  23. package/dist/components/{client/Avatar → Avatar}/AvatarText.cjs +11 -11
  24. package/dist/components/{client/Avatar → Avatar}/AvatarText.d.cts +5 -4
  25. package/dist/components/{client/Avatar → Avatar}/AvatarText.d.ts +5 -5
  26. package/dist/components/{client/Avatar → Avatar}/AvatarText.js +5 -5
  27. package/dist/components/Avatar/index.cjs +11 -0
  28. package/dist/components/Avatar/index.d.cts +6 -0
  29. package/dist/components/Avatar/index.d.ts +6 -0
  30. package/dist/components/Avatar/index.js +7 -0
  31. package/dist/components/{client/Avatar → Avatar}/utils.cjs +3 -4
  32. package/dist/components/{client/Avatar → Avatar}/utils.d.cts +4 -4
  33. package/dist/components/{client/Avatar → Avatar}/utils.d.ts +4 -5
  34. package/dist/components/{client/Avatar → Avatar}/utils.js +2 -3
  35. package/dist/components/Banner/Banner.cjs +2 -2
  36. package/dist/components/Banner/Banner.d.cts +1 -1
  37. package/dist/components/Banner/Banner.d.ts +1 -1
  38. package/dist/components/Banner/Banner.js +2 -2
  39. package/dist/components/Banner/utils.d.cts +1 -1
  40. package/dist/components/Banner/utils.d.ts +1 -1
  41. package/dist/components/Box.d.cts +1 -1
  42. package/dist/components/Box.d.ts +1 -1
  43. package/dist/components/Divider/DividerCore.cjs +1 -1
  44. package/dist/components/Divider/DividerCore.d.cts +2 -2
  45. package/dist/components/Divider/DividerCore.d.ts +2 -2
  46. package/dist/components/Divider/DividerCore.js +1 -1
  47. package/dist/components/Divider/DividerInternal.d.cts +1 -1
  48. package/dist/components/Divider/DividerInternal.d.ts +1 -1
  49. package/dist/components/FormLabel.d.cts +1 -1
  50. package/dist/components/FormLabel.d.ts +1 -1
  51. package/dist/components/HStack.d.cts +1 -1
  52. package/dist/components/HStack.d.ts +1 -1
  53. package/dist/components/Icon.cjs +15 -6
  54. package/dist/components/Icon.d.cts +0 -1
  55. package/dist/components/Icon.d.ts +0 -1
  56. package/dist/components/Icon.js +16 -7
  57. package/dist/components/IconSlot.cjs +25 -6
  58. package/dist/components/IconSlot.d.cts +3 -2
  59. package/dist/components/IconSlot.d.ts +3 -2
  60. package/dist/components/IconSlot.js +25 -5
  61. package/dist/components/Image.d.cts +1 -1
  62. package/dist/components/Image.d.ts +1 -1
  63. package/dist/components/Link.d.cts +1 -1
  64. package/dist/components/Link.d.ts +1 -1
  65. package/dist/components/Text.d.cts +1 -1
  66. package/dist/components/Text.d.ts +1 -1
  67. package/dist/components/VStack.d.cts +1 -1
  68. package/dist/components/VStack.d.ts +1 -1
  69. package/dist/components/client/Avatar/AvatarImage.cjs +37 -58
  70. package/dist/components/client/Avatar/AvatarImage.d.cts +2 -16
  71. package/dist/components/client/Avatar/AvatarImage.d.ts +2 -16
  72. package/dist/components/client/Avatar/AvatarImage.js +36 -57
  73. package/dist/components/client/Avatar/index.cjs +1 -7
  74. package/dist/components/client/Avatar/index.d.cts +3 -5
  75. package/dist/components/client/Avatar/index.d.ts +3 -5
  76. package/dist/components/client/Avatar/index.js +1 -4
  77. package/dist/components/client/Badge.d.cts +1 -1
  78. package/dist/components/client/Badge.d.ts +1 -1
  79. package/dist/components/client/BottomSheet/BottomSheet.d.cts +1 -1
  80. package/dist/components/client/BottomSheet/BottomSheet.d.ts +1 -1
  81. package/dist/components/client/BottomSheet/BottomSheetContent.d.cts +1 -1
  82. package/dist/components/client/BottomSheet/BottomSheetContent.d.ts +1 -1
  83. package/dist/components/client/BottomSheet/BottomSheetHandle.d.cts +1 -1
  84. package/dist/components/client/BottomSheet/BottomSheetHandle.d.ts +1 -1
  85. package/dist/components/client/BottomSheet/BottomSheetHeader.cjs +1 -1
  86. package/dist/components/client/BottomSheet/BottomSheetHeader.d.cts +1 -1
  87. package/dist/components/client/BottomSheet/BottomSheetHeader.d.ts +1 -1
  88. package/dist/components/client/BottomSheet/BottomSheetHeader.js +1 -1
  89. package/dist/components/client/BottomSheet/useBottomSheetSnapModel.d.cts +1 -1
  90. package/dist/components/client/BottomSheet/useBottomSheetSnapModel.d.ts +1 -1
  91. package/dist/components/client/BottomSheet/utils.d.cts +1 -1
  92. package/dist/components/client/BottomSheet/utils.d.ts +1 -1
  93. package/dist/components/client/Button.cjs +1 -1
  94. package/dist/components/client/Button.d.cts +1 -1
  95. package/dist/components/client/Button.d.ts +1 -1
  96. package/dist/components/client/Button.js +1 -1
  97. package/dist/components/client/Checkbox.cjs +2 -2
  98. package/dist/components/client/Checkbox.d.cts +1 -1
  99. package/dist/components/client/Checkbox.d.ts +1 -1
  100. package/dist/components/client/Checkbox.js +2 -2
  101. package/dist/components/client/Chip/ChipBase.d.cts +1 -1
  102. package/dist/components/client/Chip/ChipBase.d.ts +1 -1
  103. package/dist/components/client/Chip/ChipButton.d.cts +1 -1
  104. package/dist/components/client/Chip/ChipButton.d.ts +1 -1
  105. package/dist/components/client/Chip/ChipDismissible.cjs +2 -2
  106. package/dist/components/client/Chip/ChipDismissible.d.cts +1 -1
  107. package/dist/components/client/Chip/ChipDismissible.d.ts +1 -1
  108. package/dist/components/client/Chip/ChipDismissible.js +2 -2
  109. package/dist/components/client/Chip/ChipLink.d.cts +1 -1
  110. package/dist/components/client/Chip/ChipLink.d.ts +1 -1
  111. package/dist/components/client/Chip/ChipToggle.d.cts +1 -1
  112. package/dist/components/client/Chip/ChipToggle.d.ts +1 -1
  113. package/dist/components/client/IconButton.cjs +7 -2
  114. package/dist/components/client/IconButton.js +7 -2
  115. package/dist/components/client/Input/Input.cjs +5 -9
  116. package/dist/components/client/Input/Input.d.cts +1 -1
  117. package/dist/components/client/Input/Input.d.ts +1 -1
  118. package/dist/components/client/Input/Input.js +6 -10
  119. package/dist/components/client/Input/InputHelpTextInternal.d.cts +1 -1
  120. package/dist/components/client/Input/InputHelpTextInternal.d.ts +1 -1
  121. package/dist/components/client/Menu/Menu.Content.d.cts +1 -1
  122. package/dist/components/client/Menu/Menu.Content.d.ts +1 -1
  123. package/dist/components/client/Menu/Menu.Item.d.cts +1 -1
  124. package/dist/components/client/Menu/Menu.Item.d.ts +1 -1
  125. package/dist/components/client/Menu/Menu.ItemBase.cjs +1 -1
  126. package/dist/components/client/Menu/Menu.ItemBase.d.cts +1 -1
  127. package/dist/components/client/Menu/Menu.ItemBase.d.ts +1 -1
  128. package/dist/components/client/Menu/Menu.ItemBase.js +1 -1
  129. package/dist/components/client/Menu/Menu.ItemCheckbox.cjs +1 -1
  130. package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +2 -2
  131. package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +2 -2
  132. package/dist/components/client/Menu/Menu.ItemCheckbox.js +1 -1
  133. package/dist/components/client/Popover/Popover.d.cts +1 -1
  134. package/dist/components/client/Popover/Popover.d.ts +1 -1
  135. package/dist/components/client/Popover/PopoverContent.cjs +3 -3
  136. package/dist/components/client/Popover/PopoverContent.d.cts +1 -1
  137. package/dist/components/client/Popover/PopoverContent.d.ts +1 -1
  138. package/dist/components/client/Popover/PopoverContent.js +3 -3
  139. package/dist/components/client/Popover/PopoverTrigger.d.cts +1 -1
  140. package/dist/components/client/Popover/PopoverTrigger.d.ts +1 -1
  141. package/dist/components/client/Popover/UDSPopoverConfigProvider.d.cts +1 -1
  142. package/dist/components/client/Popover/UDSPopoverConfigProvider.d.ts +1 -1
  143. package/dist/components/client/Popover/index.d.cts +1 -1
  144. package/dist/components/client/Popover/index.d.ts +1 -1
  145. package/dist/components/client/Pressable.d.cts +1 -1
  146. package/dist/components/client/Pressable.d.ts +1 -1
  147. package/dist/components/client/Radio/Radio.d.cts +1 -1
  148. package/dist/components/client/Radio/Radio.d.ts +1 -1
  149. package/dist/components/client/Radio/RadioGroupProvider.d.cts +1 -1
  150. package/dist/components/client/Radio/RadioGroupProvider.d.ts +1 -1
  151. package/dist/components/client/SpringMotionConfig.d.cts +1 -1
  152. package/dist/components/client/SpringMotionConfig.d.ts +1 -1
  153. package/dist/components/client/Switch.cjs +1 -1
  154. package/dist/components/client/Switch.d.cts +1 -1
  155. package/dist/components/client/Switch.d.ts +1 -1
  156. package/dist/components/client/Switch.js +1 -1
  157. package/dist/components/client/Tabs/Tab.d.cts +1 -1
  158. package/dist/components/client/Tabs/Tab.d.ts +1 -1
  159. package/dist/components/client/Tabs/TabList.d.cts +1 -1
  160. package/dist/components/client/Tabs/TabList.d.ts +1 -1
  161. package/dist/components/client/Tabs/TabPanel.d.cts +1 -1
  162. package/dist/components/client/Tabs/TabPanel.d.ts +1 -1
  163. package/dist/components/client/Tabs/Tabs.d.cts +1 -1
  164. package/dist/components/client/Tabs/Tabs.d.ts +1 -1
  165. package/dist/components/client/Tabs/tabsContext.d.cts +1 -1
  166. package/dist/components/client/Tabs/tabsContext.d.ts +1 -1
  167. package/dist/components/client/Toast/Toast.cjs +1 -1
  168. package/dist/components/client/Toast/Toast.d.cts +1 -1
  169. package/dist/components/client/Toast/Toast.d.ts +1 -1
  170. package/dist/components/client/Toast/Toast.js +1 -1
  171. package/dist/components/client/Toast/ToastContainer.d.cts +1 -1
  172. package/dist/components/client/Toast/ToastContainer.d.ts +1 -1
  173. package/dist/components/client/Toast/UDSToastConfigProvider.d.cts +1 -1
  174. package/dist/components/client/Toast/UDSToastConfigProvider.d.ts +1 -1
  175. package/dist/components/client/Toast/createToast.d.cts +1 -1
  176. package/dist/components/client/Toast/createToast.d.ts +1 -1
  177. package/dist/components/client/Tooltip/Tooltip.d.cts +1 -1
  178. package/dist/components/client/Tooltip/Tooltip.d.ts +1 -1
  179. package/dist/components/client/Tooltip/TooltipContent.cjs +1 -1
  180. package/dist/components/client/Tooltip/TooltipContent.d.cts +2 -2
  181. package/dist/components/client/Tooltip/TooltipContent.d.ts +2 -2
  182. package/dist/components/client/Tooltip/TooltipContent.js +1 -1
  183. package/dist/components/client/Tooltip/TooltipTrigger.d.cts +1 -1
  184. package/dist/components/client/Tooltip/TooltipTrigger.d.ts +1 -1
  185. package/dist/components/client/Tooltip/UDSTooltipConfigProvider.d.cts +1 -1
  186. package/dist/components/client/Tooltip/UDSTooltipConfigProvider.d.ts +1 -1
  187. package/dist/components/client/Tooltip/index.d.cts +1 -1
  188. package/dist/components/client/Tooltip/index.d.ts +1 -1
  189. package/dist/components/client/buttonConstants.d.cts +1 -1
  190. package/dist/components/client/buttonConstants.d.ts +1 -1
  191. package/dist/components/client/index.cjs +1 -7
  192. package/dist/components/client/index.d.cts +4 -6
  193. package/dist/components/client/index.d.ts +4 -6
  194. package/dist/components/client/index.js +2 -5
  195. package/dist/components/client/providers/UDSBreakpointsConfigProvider.d.cts +1 -1
  196. package/dist/components/client/providers/UDSBreakpointsConfigProvider.d.ts +1 -1
  197. package/dist/components/experimental/Table.cjs +1 -1
  198. package/dist/components/experimental/Table.d.cts +2 -2
  199. package/dist/components/experimental/Table.d.ts +2 -2
  200. package/dist/components/experimental/Table.js +1 -1
  201. package/dist/components/experimental/client/Accordion.cjs +1 -1
  202. package/dist/components/experimental/client/Accordion.js +1 -1
  203. package/dist/components/experimental/client/SegmentedControl.cjs +1 -1
  204. package/dist/components/experimental/client/SegmentedControl.js +1 -1
  205. package/dist/components/experimental/client/SwitchV2.cjs +1 -1
  206. package/dist/components/experimental/client/SwitchV2.d.cts +1 -1
  207. package/dist/components/experimental/client/SwitchV2.d.ts +1 -1
  208. package/dist/components/experimental/client/SwitchV2.js +1 -1
  209. package/dist/components/index.cjs +16 -13
  210. package/dist/components/index.d.cts +10 -7
  211. package/dist/components/index.d.ts +10 -7
  212. package/dist/components/index.js +10 -8
  213. package/dist/config/dist/index.d.cts +1 -1
  214. package/dist/config/dist/index.d.ts +1 -1
  215. package/dist/css-tokens/dist/index.d.cts +1 -1
  216. package/dist/css-tokens/dist/index.d.ts +1 -1
  217. package/dist/fixtures/dist/index.d.cts +1 -1
  218. package/dist/fixtures/dist/index.d.ts +1 -1
  219. package/dist/fixtures/index.d.cts +1 -1
  220. package/dist/fixtures/index.d.ts +1 -1
  221. package/dist/fonts/dist/index.d.cts +1 -1
  222. package/dist/fonts/dist/index.d.ts +1 -1
  223. package/dist/index.cjs +12 -10
  224. package/dist/index.d.cts +10 -8
  225. package/dist/index.d.ts +10 -8
  226. package/dist/index.js +9 -8
  227. package/dist/modes/dist/index.d.cts +1 -1
  228. package/dist/modes/dist/index.d.ts +1 -1
  229. package/dist/motion-tokens/dist/index.d.cts +1 -1
  230. package/dist/motion-tokens/dist/index.d.ts +1 -1
  231. package/dist/providers/ColorModeProvider.d.cts +1 -1
  232. package/dist/providers/ColorModeProvider.d.ts +1 -1
  233. package/dist/providers/ScaleModeProvider.d.cts +1 -1
  234. package/dist/providers/ScaleModeProvider.d.ts +1 -1
  235. package/dist/providers/ThemeProvider.d.cts +1 -1
  236. package/dist/providers/ThemeProvider.d.ts +1 -1
  237. package/dist/runtime/bottomSheetConfig.d.cts +1 -1
  238. package/dist/runtime/bottomSheetConfig.d.ts +1 -1
  239. package/dist/runtime/breakpointsConfig.d.cts +1 -1
  240. package/dist/runtime/breakpointsConfig.d.ts +1 -1
  241. package/dist/runtime/popoverConfig.d.cts +1 -1
  242. package/dist/runtime/popoverConfig.d.ts +1 -1
  243. package/dist/runtime/toastConfig.d.cts +1 -1
  244. package/dist/runtime/toastConfig.d.ts +1 -1
  245. package/dist/runtime/tooltipConfig.d.cts +1 -1
  246. package/dist/runtime/tooltipConfig.d.ts +1 -1
  247. package/dist/styles/styler.d.cts +38 -38
  248. package/dist/styles/styler.d.ts +38 -38
  249. package/dist/styles/stylerTypes.d.cts +1 -1
  250. package/dist/styles/stylerTypes.d.ts +1 -1
  251. package/dist/tailwind/dist/types/dist/index.d.cts.map +1 -1
  252. package/dist/tailwind/dist/types/dist/index.d.ts.map +1 -1
  253. package/dist/tokens/configs/borderRadius.d.cts +1 -1
  254. package/dist/tokens/configs/borderRadius.d.ts +1 -1
  255. package/dist/tokens/configs/borderWidth.d.cts +1 -1
  256. package/dist/tokens/configs/borderWidth.d.ts +1 -1
  257. package/dist/tokens/configs/font.d.cts +1 -1
  258. package/dist/tokens/configs/font.d.ts +1 -1
  259. package/dist/tokens/configs/scaleMode.d.cts +1 -1
  260. package/dist/tokens/configs/scaleMode.d.ts +1 -1
  261. package/dist/tokens/configs/shadow.d.cts +1 -1
  262. package/dist/tokens/configs/shadow.d.ts +1 -1
  263. package/dist/tokens/configs/sizes.d.cts +1 -1
  264. package/dist/tokens/configs/sizes.d.ts +1 -1
  265. package/dist/tokens/configs/typography.d.cts +1 -1
  266. package/dist/tokens/configs/typography.d.ts +1 -1
  267. package/dist/tokens/index.d.cts +2 -2
  268. package/dist/tokens/index.d.ts +2 -2
  269. package/dist/tokens/parseButtonVariants.d.cts +1 -1
  270. package/dist/tokens/parseButtonVariants.d.ts +1 -1
  271. package/dist/tokens/types.d.cts +7 -7
  272. package/dist/tokens/types.d.ts +7 -7
  273. package/dist/tokens/utils/spectrum.d.cts +1 -1
  274. package/dist/tokens/utils/spectrum.d.ts +1 -1
  275. package/dist/types/{dist → src}/index.d.cts +35 -23
  276. package/dist/types/{dist → src}/index.d.ts +35 -23
  277. package/dist/uds/generated/componentData.cjs +515 -495
  278. package/dist/uds/generated/componentData.js +511 -497
  279. package/dist/uds/generated/tailwindPurge.cjs +128 -104
  280. package/dist/uds/generated/tailwindPurge.js +128 -104
  281. package/dist/utils/isElevationAlias.d.cts +1 -1
  282. package/dist/utils/isElevationAlias.d.ts +1 -1
  283. package/generated/componentData.json +1095 -1087
  284. package/generated/tailwindPurge.ts +3 -3
  285. package/package.json +1 -1
  286. package/dist/icons/dist/types.d.cts +0 -30
  287. package/dist/icons/dist/types.d.ts +0 -30
@@ -1,10 +1,10 @@
1
1
 
2
- import { UniversalAvatarTextProps } from "../../../types/dist/index.cjs";
3
- import "../../../tokens/index.cjs";
4
- import { TextProps } from "../../Text.cjs";
2
+ import { UniversalAvatarTextProps } from "../../types/src/index.cjs";
3
+ import "../../tokens/index.cjs";
4
+ import { TextProps } from "../Text.cjs";
5
5
  import * as react from "react";
6
6
 
7
- //#region src/components/client/Avatar/AvatarText.d.ts
7
+ //#region src/components/Avatar/AvatarText.d.ts
8
8
  type DataAttributes = {
9
9
  [name: `data-${string}`]: string;
10
10
  };
@@ -21,6 +21,7 @@ interface AvatarTextProps extends UniversalAvatarTextProps {
21
21
  *
22
22
  * @param props - Props for text variant.
23
23
  * @returns The AvatarText element.
24
+ * @componentType Server component
24
25
  */
25
26
  declare const AvatarText: react.ForwardRefExoticComponent<AvatarTextProps & react.RefAttributes<HTMLDivElement>>;
26
27
  //#endregion
@@ -1,11 +1,10 @@
1
1
 
2
- "use client";
3
- import { UniversalAvatarTextProps } from "../../../types/dist/index.js";
4
- import "../../../tokens/index.js";
5
- import { TextProps } from "../../Text.js";
2
+ import { UniversalAvatarTextProps } from "../../types/src/index.js";
3
+ import "../../tokens/index.js";
4
+ import { TextProps } from "../Text.js";
6
5
  import * as react from "react";
7
6
 
8
- //#region src/components/client/Avatar/AvatarText.d.ts
7
+ //#region src/components/Avatar/AvatarText.d.ts
9
8
  type DataAttributes = {
10
9
  [name: `data-${string}`]: string;
11
10
  };
@@ -22,6 +21,7 @@ interface AvatarTextProps extends UniversalAvatarTextProps {
22
21
  *
23
22
  * @param props - Props for text variant.
24
23
  * @returns The AvatarText element.
24
+ * @componentType Server component
25
25
  */
26
26
  declare const AvatarText: react.ForwardRefExoticComponent<AvatarTextProps & react.RefAttributes<HTMLDivElement>>;
27
27
  //#endregion
@@ -1,13 +1,12 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
- "use client";
3
- import { cx } from "../../../styles/styler.js";
4
- import { Text } from "../../Text.js";
5
- import { Box } from "../../Box.js";
2
+ import { cx } from "../../styles/styler.js";
3
+ import { Box } from "../Box.js";
6
4
  import { DEFAULT_AVATAR_SIZE, DEFAULT_AVATAR_VARIANT, buildAvatarRootClasses, buildInlineSizeStyles, generateAvatarAbbreviation } from "./utils.js";
5
+ import { Text } from "../Text.js";
7
6
  import { forwardRef, useMemo } from "react";
8
7
  import { jsx } from "react/jsx-runtime";
9
8
 
10
- //#region src/components/client/Avatar/AvatarText.tsx
9
+ //#region src/components/Avatar/AvatarText.tsx
11
10
  /**
12
11
  * **AvatarText Component**
13
12
  *
@@ -15,6 +14,7 @@ import { jsx } from "react/jsx-runtime";
15
14
  *
16
15
  * @param props - Props for text variant.
17
16
  * @returns The AvatarText element.
17
+ * @componentType Server component
18
18
  */
19
19
  const AvatarText = forwardRef(({ size = DEFAULT_AVATAR_SIZE, variant = DEFAULT_AVATAR_VARIANT, name, initials, customSize, abbreviationStrategy, className, slotProps, ...props }, ref) => {
20
20
  const classNames = useMemo(() => ({
@@ -0,0 +1,11 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
+ const require_components_Avatar_AvatarIcon = require('./AvatarIcon.cjs');
4
+ const require_components_Avatar_AvatarImageNoFallback = require('./AvatarImageNoFallback.cjs');
5
+ const require_components_Avatar_AvatarText = require('./AvatarText.cjs');
6
+ const require_components_Avatar_Avatar = require('./Avatar.cjs');
7
+
8
+ exports.Avatar = require_components_Avatar_Avatar.Avatar;
9
+ exports.AvatarIcon = require_components_Avatar_AvatarIcon.AvatarIcon;
10
+ exports.AvatarImageNoFallback = require_components_Avatar_AvatarImageNoFallback.AvatarImageNoFallback;
11
+ exports.AvatarText = require_components_Avatar_AvatarText.AvatarText;
@@ -0,0 +1,6 @@
1
+
2
+ import { AvatarIcon, AvatarIconProps } from "./AvatarIcon.cjs";
3
+ import { AvatarText, AvatarTextProps } from "./AvatarText.cjs";
4
+ import { Avatar, AvatarProps } from "./Avatar.cjs";
5
+ import { AvatarImageNoFallback, AvatarImageNoFallbackProps } from "./AvatarImageNoFallback.cjs";
6
+ export { Avatar, AvatarIcon, type AvatarIconProps, AvatarImageNoFallback, type AvatarImageNoFallbackProps, type AvatarProps, AvatarText, type AvatarTextProps };
@@ -0,0 +1,6 @@
1
+
2
+ import { AvatarIcon, AvatarIconProps } from "./AvatarIcon.js";
3
+ import { AvatarText, AvatarTextProps } from "./AvatarText.js";
4
+ import { Avatar, AvatarProps } from "./Avatar.js";
5
+ import { AvatarImageNoFallback, AvatarImageNoFallbackProps } from "./AvatarImageNoFallback.js";
6
+ export { Avatar, AvatarIcon, type AvatarIconProps, AvatarImageNoFallback, type AvatarImageNoFallbackProps, type AvatarProps, AvatarText, type AvatarTextProps };
@@ -0,0 +1,7 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ import { AvatarIcon } from "./AvatarIcon.js";
3
+ import { AvatarImageNoFallback } from "./AvatarImageNoFallback.js";
4
+ import { AvatarText } from "./AvatarText.js";
5
+ import { Avatar } from "./Avatar.js";
6
+
7
+ export { Avatar, AvatarIcon, AvatarImageNoFallback, AvatarText };
@@ -1,12 +1,11 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
- "use client";
3
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
5
- const require_styles_styler = require('../../../styles/styler.cjs');
3
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
4
+ const require_styles_styler = require('../../styles/styler.cjs');
6
5
  let lodash_isFunction_js = require("lodash/isFunction.js");
7
6
  lodash_isFunction_js = require_runtime.__toESM(lodash_isFunction_js);
8
7
 
9
- //#region src/components/client/Avatar/utils.ts
8
+ //#region src/components/Avatar/utils.ts
10
9
  /** Strategies for generating text abbreviation */
11
10
  const abbrevStrategies = {
12
11
  first: (initials) => initials[0] ?? "",
@@ -1,9 +1,9 @@
1
1
 
2
- import { AvatarAbbreviationStrategy, AvatarSize, AvatarVariant, UniversalAvatarProps } from "../../../types/dist/index.cjs";
3
- import "../../../tokens/index.cjs";
4
- import { getStyles } from "../../../styles/styler.cjs";
2
+ import { AvatarAbbreviationStrategy, AvatarSize, AvatarVariant, UniversalAvatarProps } from "../../types/src/index.cjs";
3
+ import "../../tokens/index.cjs";
4
+ import { getStyles } from "../../styles/styler.cjs";
5
5
 
6
- //#region src/components/client/Avatar/utils.d.ts
6
+ //#region src/components/Avatar/utils.d.ts
7
7
  /**
8
8
  * Generates an abbreviation from a name using a specified strategy.
9
9
  *
@@ -1,10 +1,9 @@
1
1
 
2
- "use client";
3
- import { AvatarAbbreviationStrategy, AvatarSize, AvatarVariant, UniversalAvatarProps } from "../../../types/dist/index.js";
4
- import "../../../tokens/index.js";
5
- import { getStyles } from "../../../styles/styler.js";
2
+ import { AvatarAbbreviationStrategy, AvatarSize, AvatarVariant, UniversalAvatarProps } from "../../types/src/index.js";
3
+ import "../../tokens/index.js";
4
+ import { getStyles } from "../../styles/styler.js";
6
5
 
7
- //#region src/components/client/Avatar/utils.d.ts
6
+ //#region src/components/Avatar/utils.d.ts
8
7
  /**
9
8
  * Generates an abbreviation from a name using a specified strategy.
10
9
  *
@@ -1,9 +1,8 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
- "use client";
3
- import { cx, getStyles } from "../../../styles/styler.js";
2
+ import { cx, getStyles } from "../../styles/styler.js";
4
3
  import { isFunction } from "lodash-es";
5
4
 
6
- //#region src/components/client/Avatar/utils.ts
5
+ //#region src/components/Avatar/utils.ts
7
6
  /** Strategies for generating text abbreviation */
8
7
  const abbrevStrategies = {
9
8
  first: (initials) => initials[0] ?? "",
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
3
  const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
4
4
  const require_styles_styler = require('../../styles/styler.cjs');
5
- const require_components_client_Pressable = require('../client/Pressable.cjs');
6
5
  const require_components_IconSlot = require('../IconSlot.cjs');
7
6
  const require_components_Text = require('../Text.cjs');
7
+ const require_components_client_Pressable = require('../client/Pressable.cjs');
8
8
  const require_components_Banner_utils = require('./utils.cjs');
9
- let _yahoo_uds_icons = require("@yahoo/uds-icons");
10
9
  let react = require("react");
10
+ let _yahoo_uds_icons = require("@yahoo/uds-icons");
11
11
  let react_jsx_runtime = require("react/jsx-runtime");
12
12
 
13
13
  //#region src/components/Banner/Banner.tsx
@@ -1,5 +1,5 @@
1
1
 
2
- import { UniversalBannerProps } from "../../types/dist/index.cjs";
2
+ import { UniversalBannerProps } from "../../types/src/index.cjs";
3
3
  import "../../tokens/index.cjs";
4
4
  import * as react from "react";
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- import { UniversalBannerProps } from "../../types/dist/index.js";
2
+ import { UniversalBannerProps } from "../../types/src/index.js";
3
3
  import "../../tokens/index.js";
4
4
  import * as react from "react";
5
5
 
@@ -1,11 +1,11 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  import { cx, getStyles } from "../../styles/styler.js";
3
- import { Pressable } from "../client/Pressable.js";
4
3
  import { IconSlot } from "../IconSlot.js";
5
4
  import { Text } from "../Text.js";
5
+ import { Pressable } from "../client/Pressable.js";
6
6
  import { BANNER_TO_BUTTON_VARIANT, hasDisplayName, separateChildren } from "./utils.js";
7
- import { Cross } from "@yahoo/uds-icons";
8
7
  import { cloneElement, forwardRef, isValidElement } from "react";
8
+ import { Cross } from "@yahoo/uds-icons";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
10
 
11
11
  //#region src/components/Banner/Banner.tsx
@@ -1,5 +1,5 @@
1
1
 
2
- import { BannerVariant } from "../../types/dist/index.cjs";
2
+ import { BannerVariant } from "../../types/src/index.cjs";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/components/Banner/utils.d.ts
@@ -1,5 +1,5 @@
1
1
 
2
- import { BannerVariant } from "../../types/dist/index.js";
2
+ import { BannerVariant } from "../../types/src/index.js";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/components/Banner/utils.d.ts
@@ -1,5 +1,5 @@
1
1
 
2
- import { UniversalBoxProps } from "../types/dist/index.cjs";
2
+ import { UniversalBoxProps } from "../types/src/index.cjs";
3
3
  import "../tokens/index.cjs";
4
4
  import * as react from "react";
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- import { UniversalBoxProps } from "../types/dist/index.js";
2
+ import { UniversalBoxProps } from "../types/src/index.js";
3
3
  import "../tokens/index.js";
4
4
  import * as react from "react";
5
5
 
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
3
  const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
4
4
  const require_styles_styler = require('../../styles/styler.cjs');
5
- const require_components_Text = require('../Text.cjs');
6
5
  const require_components_Box = require('../Box.cjs');
6
+ const require_components_Text = require('../Text.cjs');
7
7
  const require_components_HStack = require('../HStack.cjs');
8
8
  const require_components_VStack = require('../VStack.cjs');
9
9
  let react = require("react");
@@ -1,8 +1,8 @@
1
1
 
2
- import { UniversalDividerProps, UniversalStackProps } from "../../types/dist/index.cjs";
2
+ import { UniversalDividerProps, UniversalStackProps } from "../../types/src/index.cjs";
3
3
  import "../../tokens/types.cjs";
4
- import { BoxProps } from "../Box.cjs";
5
4
  import { Text } from "../Text.cjs";
5
+ import { BoxProps } from "../Box.cjs";
6
6
  import * as react from "react";
7
7
  import { ComponentProps, HTMLAttributes } from "react";
8
8
 
@@ -1,8 +1,8 @@
1
1
 
2
- import { UniversalDividerProps, UniversalStackProps } from "../../types/dist/index.js";
2
+ import { UniversalDividerProps, UniversalStackProps } from "../../types/src/index.js";
3
3
  import "../../tokens/types.js";
4
- import { BoxProps } from "../Box.js";
5
4
  import { Text } from "../Text.js";
5
+ import { BoxProps } from "../Box.js";
6
6
  import * as react from "react";
7
7
  import { ComponentProps, HTMLAttributes } from "react";
8
8
 
@@ -1,7 +1,7 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  import { cx } from "../../styles/styler.js";
3
- import { Text } from "../Text.js";
4
3
  import { Box } from "../Box.js";
4
+ import { Text } from "../Text.js";
5
5
  import { HStack } from "../HStack.js";
6
6
  import { VStack } from "../VStack.js";
7
7
  import { forwardRef, useMemo } from "react";
@@ -1,5 +1,5 @@
1
1
 
2
- import { UniversalDividerProps } from "../../types/dist/index.cjs";
2
+ import { UniversalDividerProps } from "../../types/src/index.cjs";
3
3
  import "../../tokens/types.cjs";
4
4
  import { DividerCoreProps } from "./DividerCore.cjs";
5
5
  import * as react from "react";
@@ -1,5 +1,5 @@
1
1
 
2
- import { UniversalDividerProps } from "../../types/dist/index.js";
2
+ import { UniversalDividerProps } from "../../types/src/index.js";
3
3
  import "../../tokens/types.js";
4
4
  import { DividerCoreProps } from "./DividerCore.js";
5
5
  import * as react from "react";
@@ -1,5 +1,5 @@
1
1
 
2
- import { UniversalFormLabelProps } from "../types/dist/index.cjs";
2
+ import { UniversalFormLabelProps } from "../types/src/index.cjs";
3
3
  import "../tokens/index.cjs";
4
4
  import * as react from "react";
5
5
  import { PropsWithChildren } from "react";
@@ -1,5 +1,5 @@
1
1
 
2
- import { UniversalFormLabelProps } from "../types/dist/index.js";
2
+ import { UniversalFormLabelProps } from "../types/src/index.js";
3
3
  import "../tokens/index.js";
4
4
  import * as react from "react";
5
5
  import { PropsWithChildren } from "react";
@@ -1,5 +1,5 @@
1
1
 
2
- import { UniversalStackProps } from "../types/dist/index.cjs";
2
+ import { UniversalStackProps } from "../types/src/index.cjs";
3
3
  import "../tokens/index.cjs";
4
4
  import { DivProps } from "./Box.cjs";
5
5
  import * as react from "react";
@@ -1,5 +1,5 @@
1
1
 
2
- import { UniversalStackProps } from "../types/dist/index.js";
2
+ import { UniversalStackProps } from "../types/src/index.js";
3
3
  import "../tokens/index.js";
4
4
  import { DivProps } from "./Box.js";
5
5
  import * as react from "react";
@@ -5,6 +5,7 @@ const require_styles_styler = require('../styles/styler.cjs');
5
5
  const require_tokens_configs_sizes = require('../tokens/configs/sizes.cjs');
6
6
  let react = require("react");
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
+ let _yahoo_uds_icons_utils = require("@yahoo/uds-icons/utils");
8
9
 
9
10
  //#region src/components/Icon.tsx
10
11
  /**
@@ -36,8 +37,10 @@ let react_jsx_runtime = require("react/jsx-runtime");
36
37
  *
37
38
  * @related [IconButton](https://uds.build/docs/components/icon-button)
38
39
  */
39
- const Icon = (0, react.forwardRef)(function BaseIcon({ name: SVGIcon, size = "md", variant = "outline", color = "primary", className, ...props }, ref) {
40
- const availableVariants = SVGIcon.metadata?.variants ?? [];
40
+ const Icon = (0, react.forwardRef)(function BaseIcon({ name: iconName, size = "md", variant = "outline", color = "primary", className, ...props }, ref) {
41
+ const iconDefinition = (0, _yahoo_uds_icons_utils.isIconDefinition)(iconName) ? iconName : void 0;
42
+ const iconComponent = typeof iconName === "function" ? iconName : void 0;
43
+ const availableVariants = iconDefinition ? (0, _yahoo_uds_icons_utils.getIconVariants)(iconDefinition) : [];
41
44
  const effectiveVariant = availableVariants.includes(variant) ? variant : availableVariants[0] ?? "fill";
42
45
  const isMulticolor = effectiveVariant === "multicolor";
43
46
  const styles = require_styles_styler.getStyles({
@@ -46,6 +49,14 @@ const Icon = (0, react.forwardRef)(function BaseIcon({ name: SVGIcon, size = "md
46
49
  className: require_styles_styler.cx(className, !isMulticolor && "[&_path]:fill-current")
47
50
  });
48
51
  const sizePx = require_tokens_configs_sizes.normalIconSizes[size];
52
+ const renderedMarkup = iconDefinition ? (0, _yahoo_uds_icons_utils.getIconMarkup)(iconDefinition, size, effectiveVariant) : null;
53
+ const renderedIcon = renderedMarkup ? null : (0, react.isValidElement)(iconName) ? (0, react.cloneElement)(iconName, {
54
+ size,
55
+ variant: effectiveVariant
56
+ }) : iconComponent ? iconComponent({
57
+ size,
58
+ variant: effectiveVariant
59
+ }) : null;
49
60
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
50
61
  ref,
51
62
  xmlns: "http://www.w3.org/2000/svg",
@@ -55,11 +66,9 @@ const Icon = (0, react.forwardRef)(function BaseIcon({ name: SVGIcon, size = "md
55
66
  "aria-hidden": "true",
56
67
  focusable: "false",
57
68
  className: styles,
69
+ dangerouslySetInnerHTML: renderedMarkup ? { __html: renderedMarkup } : void 0,
58
70
  ...props,
59
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SVGIcon, {
60
- size,
61
- variant: effectiveVariant
62
- })
71
+ children: renderedIcon
63
72
  });
64
73
  });
65
74
  Icon.displayName = "Icon";
@@ -6,7 +6,6 @@ import * as react from "react";
6
6
  //#region src/components/Icon.d.ts
7
7
  /**
8
8
  * Props for the Icon component.
9
- * @see IconPropsWithSVGProps
10
9
  */
11
10
  type IconProps = IconPropsWithSVGProps;
12
11
  /**
@@ -6,7 +6,6 @@ import * as react from "react";
6
6
  //#region src/components/Icon.d.ts
7
7
  /**
8
8
  * Props for the Icon component.
9
- * @see IconPropsWithSVGProps
10
9
  */
11
10
  type IconProps = IconPropsWithSVGProps;
12
11
  /**
@@ -1,8 +1,9 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  import { cx, getStyles } from "../styles/styler.js";
3
3
  import { normalIconSizes } from "../tokens/configs/sizes.js";
4
- import { forwardRef } from "react";
4
+ import { cloneElement, forwardRef, isValidElement } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
+ import { getIconMarkup, getIconVariants, isIconDefinition } from "@yahoo/uds-icons/utils";
6
7
 
7
8
  //#region src/components/Icon.tsx
8
9
  /**
@@ -34,8 +35,10 @@ import { jsx } from "react/jsx-runtime";
34
35
  *
35
36
  * @related [IconButton](https://uds.build/docs/components/icon-button)
36
37
  */
37
- const Icon = forwardRef(function BaseIcon({ name: SVGIcon, size = "md", variant = "outline", color = "primary", className, ...props }, ref) {
38
- const availableVariants = SVGIcon.metadata?.variants ?? [];
38
+ const Icon = forwardRef(function BaseIcon({ name: iconName, size = "md", variant = "outline", color = "primary", className, ...props }, ref) {
39
+ const iconDefinition = isIconDefinition(iconName) ? iconName : void 0;
40
+ const iconComponent = typeof iconName === "function" ? iconName : void 0;
41
+ const availableVariants = iconDefinition ? getIconVariants(iconDefinition) : [];
39
42
  const effectiveVariant = availableVariants.includes(variant) ? variant : availableVariants[0] ?? "fill";
40
43
  const isMulticolor = effectiveVariant === "multicolor";
41
44
  const styles = getStyles({
@@ -44,6 +47,14 @@ const Icon = forwardRef(function BaseIcon({ name: SVGIcon, size = "md", variant
44
47
  className: cx(className, !isMulticolor && "[&_path]:fill-current")
45
48
  });
46
49
  const sizePx = normalIconSizes[size];
50
+ const renderedMarkup = iconDefinition ? getIconMarkup(iconDefinition, size, effectiveVariant) : null;
51
+ const renderedIcon = renderedMarkup ? null : isValidElement(iconName) ? cloneElement(iconName, {
52
+ size,
53
+ variant: effectiveVariant
54
+ }) : iconComponent ? iconComponent({
55
+ size,
56
+ variant: effectiveVariant
57
+ }) : null;
47
58
  return /* @__PURE__ */ jsx("svg", {
48
59
  ref,
49
60
  xmlns: "http://www.w3.org/2000/svg",
@@ -53,11 +64,9 @@ const Icon = forwardRef(function BaseIcon({ name: SVGIcon, size = "md", variant
53
64
  "aria-hidden": "true",
54
65
  focusable: "false",
55
66
  className: styles,
67
+ dangerouslySetInnerHTML: renderedMarkup ? { __html: renderedMarkup } : void 0,
56
68
  ...props,
57
- children: /* @__PURE__ */ jsx(SVGIcon, {
58
- size,
59
- variant: effectiveVariant
60
- })
69
+ children: renderedIcon
61
70
  });
62
71
  });
63
72
  Icon.displayName = "Icon";
@@ -6,10 +6,12 @@ const require_components_Icon = require('./Icon.cjs');
6
6
  let react = require("react");
7
7
  react = require_runtime.__toESM(react);
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
- let lodash_isFunction_js = require("lodash/isFunction.js");
10
- lodash_isFunction_js = require_runtime.__toESM(lodash_isFunction_js);
9
+ let _yahoo_uds_icons_utils = require("@yahoo/uds-icons/utils");
11
10
 
12
11
  //#region src/components/IconSlot.tsx
12
+ function isIconRenderOutput(icon) {
13
+ return (0, react.isValidElement)(icon) && (icon.type === react.default.Fragment || typeof icon.type === "string");
14
+ }
13
15
  /**
14
16
  * A helper container to render a SvgIcon, Icon component, or ReactNode.
15
17
  *
@@ -30,21 +32,38 @@ const IconSlot = (0, react.memo)(function IconSlot({ icon, iconProps, className:
30
32
  if (!icon) return null;
31
33
  const { className: iconPropsClassName, ...props } = iconProps || {};
32
34
  const mergedClassName = require_styles_styler.cx(slotClassName, iconPropsClassName);
33
- const svgIcon = icon;
34
- if (svgIcon.metadata?.isSvgIcon) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Icon.Icon, {
35
- name: svgIcon,
35
+ if ((0, _yahoo_uds_icons_utils.isIconDefinition)(icon)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Icon.Icon, {
36
+ name: icon,
36
37
  ...props,
37
38
  ...rest,
38
39
  className: mergedClassName
39
40
  });
40
- if ((0, lodash_isFunction_js.default)(icon)) {
41
+ if (typeof icon === "function") {
41
42
  const iconEl = icon(iconProps || {});
43
+ if ((0, _yahoo_uds_icons_utils.isIconDefinition)(iconEl)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Icon.Icon, {
44
+ name: iconEl,
45
+ ...props,
46
+ ...rest,
47
+ className: mergedClassName
48
+ });
49
+ if (isIconRenderOutput(iconEl)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Icon.Icon, {
50
+ name: icon,
51
+ ...props,
52
+ ...rest,
53
+ className: mergedClassName
54
+ });
42
55
  const elProps = iconEl?.props;
43
56
  return (0, react.isValidElement)(iconEl) && (0, react.cloneElement)(iconEl, {
44
57
  ...rest,
45
58
  className: require_styles_styler.cx(mergedClassName, elProps?.className)
46
59
  });
47
60
  }
61
+ if (isIconRenderOutput(icon)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Icon.Icon, {
62
+ name: ((svgIconProps) => (0, react.cloneElement)(icon, svgIconProps)),
63
+ ...props,
64
+ ...rest,
65
+ className: mergedClassName
66
+ });
48
67
  const elProps = icon.props;
49
68
  return (0, react.isValidElement)(icon) && (0, react.cloneElement)(icon, {
50
69
  ...props,
@@ -1,13 +1,14 @@
1
1
 
2
- import { UniversalIconSlot } from "../types/dist/index.cjs";
2
+ import { UniversalIconSlot } from "../types/src/index.cjs";
3
3
  import { IconPropsWithSVGProps } from "../tokens/types.cjs";
4
4
  import "../tokens/index.cjs";
5
5
  import React from "react";
6
+ import { IconDefinition } from "@yahoo/uds-icons/types";
6
7
 
7
8
  //#region src/components/IconSlot.d.ts
8
9
  interface IconSlotProps {
9
10
  /** The icon to render. Can be a UDS icon, an Icon component, ReactNode, or a function that a ReactNode. */
10
- icon?: UniversalIconSlot;
11
+ icon?: UniversalIconSlot<IconDefinition>;
11
12
  /** Props to spread onto the icon. */
12
13
  iconProps?: Omit<IconPropsWithSVGProps, 'name'>;
13
14
  className?: string;
@@ -1,13 +1,14 @@
1
1
 
2
- import { UniversalIconSlot } from "../types/dist/index.js";
2
+ import { UniversalIconSlot } from "../types/src/index.js";
3
3
  import { IconPropsWithSVGProps } from "../tokens/types.js";
4
4
  import "../tokens/index.js";
5
5
  import React from "react";
6
+ import { IconDefinition } from "@yahoo/uds-icons/types";
6
7
 
7
8
  //#region src/components/IconSlot.d.ts
8
9
  interface IconSlotProps {
9
10
  /** The icon to render. Can be a UDS icon, an Icon component, ReactNode, or a function that a ReactNode. */
10
- icon?: UniversalIconSlot;
11
+ icon?: UniversalIconSlot<IconDefinition>;
11
12
  /** Props to spread onto the icon. */
12
13
  iconProps?: Omit<IconPropsWithSVGProps, 'name'>;
13
14
  className?: string;
@@ -3,9 +3,12 @@ import { cx } from "../styles/styler.js";
3
3
  import { Icon } from "./Icon.js";
4
4
  import React, { cloneElement, isValidElement, memo } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
- import { isFunction } from "lodash-es";
6
+ import { isIconDefinition } from "@yahoo/uds-icons/utils";
7
7
 
8
8
  //#region src/components/IconSlot.tsx
9
+ function isIconRenderOutput(icon) {
10
+ return isValidElement(icon) && (icon.type === React.Fragment || typeof icon.type === "string");
11
+ }
9
12
  /**
10
13
  * A helper container to render a SvgIcon, Icon component, or ReactNode.
11
14
  *
@@ -26,21 +29,38 @@ const IconSlot = memo(function IconSlot({ icon, iconProps, className: slotClassN
26
29
  if (!icon) return null;
27
30
  const { className: iconPropsClassName, ...props } = iconProps || {};
28
31
  const mergedClassName = cx(slotClassName, iconPropsClassName);
29
- const svgIcon = icon;
30
- if (svgIcon.metadata?.isSvgIcon) return /* @__PURE__ */ jsx(Icon, {
31
- name: svgIcon,
32
+ if (isIconDefinition(icon)) return /* @__PURE__ */ jsx(Icon, {
33
+ name: icon,
32
34
  ...props,
33
35
  ...rest,
34
36
  className: mergedClassName
35
37
  });
36
- if (isFunction(icon)) {
38
+ if (typeof icon === "function") {
37
39
  const iconEl = icon(iconProps || {});
40
+ if (isIconDefinition(iconEl)) return /* @__PURE__ */ jsx(Icon, {
41
+ name: iconEl,
42
+ ...props,
43
+ ...rest,
44
+ className: mergedClassName
45
+ });
46
+ if (isIconRenderOutput(iconEl)) return /* @__PURE__ */ jsx(Icon, {
47
+ name: icon,
48
+ ...props,
49
+ ...rest,
50
+ className: mergedClassName
51
+ });
38
52
  const elProps = iconEl?.props;
39
53
  return isValidElement(iconEl) && cloneElement(iconEl, {
40
54
  ...rest,
41
55
  className: cx(mergedClassName, elProps?.className)
42
56
  });
43
57
  }
58
+ if (isIconRenderOutput(icon)) return /* @__PURE__ */ jsx(Icon, {
59
+ name: ((svgIconProps) => cloneElement(icon, svgIconProps)),
60
+ ...props,
61
+ ...rest,
62
+ className: mergedClassName
63
+ });
44
64
  const elProps = icon.props;
45
65
  return isValidElement(icon) && cloneElement(icon, {
46
66
  ...props,
@@ -1,5 +1,5 @@
1
1
 
2
- import { ImagePropsWithImgProps } from "../types/dist/index.cjs";
2
+ import { ImagePropsWithImgProps } from "../types/src/index.cjs";
3
3
  import "../tokens/index.cjs";
4
4
  import * as react from "react";
5
5