@yahoo/uds 3.59.0-beta.1 → 3.59.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 (304) hide show
  1. package/cli/bin/uds-darwin-arm64-baseline +0 -0
  2. package/cli/bin/uds-darwin-x64 +0 -0
  3. package/cli/bin/uds-linux-arm64 +0 -0
  4. package/cli/bin/uds-linux-x64-baseline +0 -0
  5. package/dist/components/Box.d.ts +2 -2
  6. package/dist/components/Box.d.ts.map +1 -1
  7. package/dist/components/Divider/Divider.d.cts +2 -2
  8. package/dist/components/Divider/Divider.d.ts +2 -2
  9. package/dist/components/Divider/DividerCore.d.cts +2 -2
  10. package/dist/components/Divider/DividerCore.d.ts +2 -2
  11. package/dist/components/Divider/DividerInternal.d.cts +2 -2
  12. package/dist/components/Divider/DividerInternal.d.ts +2 -2
  13. package/dist/components/FormLabel.d.ts +2 -2
  14. package/dist/components/HStack.d.ts +2 -2
  15. package/dist/components/Icon.d.ts +2 -2
  16. package/dist/components/Link.d.ts +2 -2
  17. package/dist/components/Text.d.cts +5 -5
  18. package/dist/components/Text.d.cts.map +1 -1
  19. package/dist/components/Text.d.ts +8 -8
  20. package/dist/components/Text.d.ts.map +1 -1
  21. package/dist/components/VStack.d.ts +2 -2
  22. package/dist/components/VStack.d.ts.map +1 -1
  23. package/dist/components/client/AnimateHeightChange.d.cts +2 -2
  24. package/dist/components/client/AnimateHeightChange.d.ts +2 -2
  25. package/dist/components/client/Avatar/Avatar.d.cts +2 -2
  26. package/dist/components/client/Avatar/Avatar.d.cts.map +1 -1
  27. package/dist/components/client/Avatar/Avatar.d.ts +2 -2
  28. package/dist/components/client/Avatar/AvatarIcon.d.cts +2 -2
  29. package/dist/components/client/Avatar/AvatarIcon.d.cts.map +1 -1
  30. package/dist/components/client/Avatar/AvatarIcon.d.ts +2 -2
  31. package/dist/components/client/Avatar/AvatarImage.d.cts +2 -2
  32. package/dist/components/client/Avatar/AvatarImage.d.ts +2 -2
  33. package/dist/components/client/Avatar/AvatarText.d.cts +2 -2
  34. package/dist/components/client/Avatar/AvatarText.d.ts +2 -2
  35. package/dist/components/client/IconButton.d.cts +2 -2
  36. package/dist/components/client/IconButton.d.ts +2 -2
  37. package/dist/components/client/IconButton.d.ts.map +1 -1
  38. package/dist/components/client/Input/Input.d.cts +2 -2
  39. package/dist/components/client/Input/Input.d.ts +2 -2
  40. package/dist/components/client/Input/InputHelpText.d.cts +2 -2
  41. package/dist/components/client/Input/InputHelpText.d.cts.map +1 -1
  42. package/dist/components/client/Input/InputHelpText.d.ts +2 -2
  43. package/dist/components/client/Input/InputHelpTextInternal.d.cts +4 -4
  44. package/dist/components/client/Input/InputHelpTextInternal.d.cts.map +1 -1
  45. package/dist/components/client/Input/InputHelpTextInternal.d.ts +4 -4
  46. package/dist/components/client/Menu/Menu.Content.d.cts +2 -2
  47. package/dist/components/client/Menu/Menu.Content.d.ts +2 -2
  48. package/dist/components/client/Menu/Menu.Divider.d.cts +2 -2
  49. package/dist/components/client/Menu/Menu.Divider.d.ts +2 -2
  50. package/dist/components/client/Menu/Menu.Item.d.cts +2 -2
  51. package/dist/components/client/Menu/Menu.ItemBase.d.cts +2 -2
  52. package/dist/components/client/Menu/Menu.ItemBase.d.ts +2 -2
  53. package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +2 -2
  54. package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +2 -2
  55. package/dist/components/client/Menu/Menu.Provider.d.cts +2 -2
  56. package/dist/components/client/Menu/Menu.Provider.d.ts +2 -2
  57. package/dist/components/client/Menu/Menu.Trigger.d.cts +2 -2
  58. package/dist/components/client/Menu/Menu.Trigger.d.ts +2 -2
  59. package/dist/components/client/Pressable.d.cts +2 -2
  60. package/dist/components/client/Pressable.d.ts +2 -2
  61. package/dist/components/client/Pressable.d.ts.map +1 -1
  62. package/dist/components/client/Radio/RadioGroupStore.d.ts +2 -2
  63. package/dist/components/client/SpringMotionConfig.d.cts +3 -3
  64. package/dist/components/client/SpringMotionConfig.d.ts +3 -3
  65. package/dist/components/client/SpringMotionConfig.d.ts.map +1 -1
  66. package/dist/components/experimental/Spinner.d.cts +2 -2
  67. package/dist/components/experimental/Spinner.d.cts.map +1 -1
  68. package/dist/components/experimental/Spinner.d.ts +2 -2
  69. package/dist/components/experimental/Table.d.cts +2 -2
  70. package/dist/components/experimental/Table.d.ts +2 -2
  71. package/dist/components/experimental/client/Accordion.d.cts +2 -2
  72. package/dist/components/experimental/client/Accordion.d.cts.map +1 -1
  73. package/dist/components/experimental/client/Accordion.d.ts +2 -2
  74. package/dist/components/experimental/client/AvoidMotionLibraryProvider.d.cts +2 -2
  75. package/dist/components/experimental/client/AvoidMotionLibraryProvider.d.ts +2 -2
  76. package/dist/components/experimental/client/Modal.d.cts +3 -3
  77. package/dist/components/experimental/client/Modal.d.cts.map +1 -1
  78. package/dist/components/experimental/client/Modal.d.ts +3 -3
  79. package/dist/components/experimental/client/Popover.d.cts +3 -3
  80. package/dist/components/experimental/client/Popover.d.cts.map +1 -1
  81. package/dist/components/experimental/client/Popover.d.ts +3 -3
  82. package/dist/components/experimental/client/Tabs.d.cts +3 -3
  83. package/dist/components/experimental/client/Tabs.d.ts +6 -6
  84. package/dist/components/experimental/client/Toast.d.cts +2 -2
  85. package/dist/components/experimental/client/Toast.d.ts +2 -2
  86. package/dist/providers/ColorModeProvider.d.cts +4 -4
  87. package/dist/providers/ColorModeProvider.d.cts.map +1 -1
  88. package/dist/providers/ColorModeProvider.d.ts +4 -4
  89. package/dist/providers/ColorModeProvider.d.ts.map +1 -1
  90. package/dist/providers/ScaleModeProvider.d.cts +4 -4
  91. package/dist/providers/ScaleModeProvider.d.cts.map +1 -1
  92. package/dist/providers/ScaleModeProvider.d.ts +4 -4
  93. package/dist/providers/ScaleModeProvider.d.ts.map +1 -1
  94. package/dist/providers/ThemeProvider.d.cts +2 -2
  95. package/dist/providers/ThemeProvider.d.cts.map +1 -1
  96. package/dist/providers/ThemeProvider.d.ts +2 -2
  97. package/dist/styles/styler.d.cts +33 -33
  98. package/dist/styles/styler.d.ts +33 -33
  99. package/dist/styles/stylerTypes.d.ts.map +1 -1
  100. package/dist/tailwind/tailwind.config.d.ts +3 -3
  101. package/dist/tailwind/tailwindPlugin.d.ts +3 -3
  102. package/dist/tailwind/utils/getMotionStyles.d.cts +1 -1
  103. package/dist/tailwind/utils/getMotionStyles.d.ts +1 -1
  104. package/dist/tokens/automation/utils/getConfigVariantProperties.d.cts +2 -2
  105. package/dist/tokens/automation/utils/getConfigVariantProperties.d.cts.map +1 -1
  106. package/dist/tokens/automation/utils/getConfigVariantProperties.d.ts +2 -2
  107. package/dist/tokens/automation/utils/getConfigVariantProperties.d.ts.map +1 -1
  108. package/dist/tokens/types.d.cts.map +1 -1
  109. package/dist/tokens/types.d.ts.map +1 -1
  110. package/dist/utils/intersperse.d.cts +2 -2
  111. package/dist/utils/intersperse.d.ts +2 -2
  112. package/package.json +1 -3
  113. package/cli/FlattenButtonVariant.mock.tsx +0 -17
  114. package/src/components/Box.tsx +0 -181
  115. package/src/components/Divider/Divider.tsx +0 -44
  116. package/src/components/Divider/DividerCore.tsx +0 -101
  117. package/src/components/Divider/DividerInternal.tsx +0 -56
  118. package/src/components/Divider/index.ts +0 -1
  119. package/src/components/FormLabel.tsx +0 -66
  120. package/src/components/HStack.tsx +0 -53
  121. package/src/components/Icon.tsx +0 -82
  122. package/src/components/IconSlot.tsx +0 -82
  123. package/src/components/Image.tsx +0 -162
  124. package/src/components/Link.tsx +0 -134
  125. package/src/components/Text.tsx +0 -272
  126. package/src/components/VStack.tsx +0 -53
  127. package/src/components/client/AnimateHeightChange.tsx +0 -50
  128. package/src/components/client/Avatar/Avatar.tsx +0 -31
  129. package/src/components/client/Avatar/AvatarIcon.tsx +0 -103
  130. package/src/components/client/Avatar/AvatarImage.tsx +0 -147
  131. package/src/components/client/Avatar/AvatarText.tsx +0 -88
  132. package/src/components/client/Avatar/index.ts +0 -4
  133. package/src/components/client/Avatar/utils.ts +0 -105
  134. package/src/components/client/Badge.tsx +0 -133
  135. package/src/components/client/Button.tsx +0 -312
  136. package/src/components/client/Checkbox.tsx +0 -377
  137. package/src/components/client/Chip/Chip.tsx +0 -81
  138. package/src/components/client/Chip/ChipBase.tsx +0 -151
  139. package/src/components/client/Chip/ChipButton.tsx +0 -54
  140. package/src/components/client/Chip/ChipDismissible.tsx +0 -90
  141. package/src/components/client/Chip/ChipLink.tsx +0 -60
  142. package/src/components/client/Chip/ChipToggle.tsx +0 -79
  143. package/src/components/client/Chip/index.ts +0 -5
  144. package/src/components/client/IconButton.tsx +0 -198
  145. package/src/components/client/Input/Input.tsx +0 -323
  146. package/src/components/client/Input/InputHelpText.tsx +0 -52
  147. package/src/components/client/Input/InputHelpTextInternal.tsx +0 -81
  148. package/src/components/client/Input/index.ts +0 -2
  149. package/src/components/client/Menu/Menu.Content.tsx +0 -391
  150. package/src/components/client/Menu/Menu.Divider.tsx +0 -102
  151. package/src/components/client/Menu/Menu.Item.tsx +0 -114
  152. package/src/components/client/Menu/Menu.ItemBase.tsx +0 -265
  153. package/src/components/client/Menu/Menu.ItemCheckbox.tsx +0 -197
  154. package/src/components/client/Menu/Menu.Provider.tsx +0 -154
  155. package/src/components/client/Menu/Menu.Trigger.tsx +0 -119
  156. package/src/components/client/Menu/Menu.index.tsx +0 -9
  157. package/src/components/client/Menu/Menu.tsx +0 -2
  158. package/src/components/client/Menu/index.ts +0 -7
  159. package/src/components/client/Menu/utils/transformAriakitPlacement.ts +0 -66
  160. package/src/components/client/Pressable.tsx +0 -194
  161. package/src/components/client/Radio/Radio.tsx +0 -351
  162. package/src/components/client/Radio/RadioGroupProvider.tsx +0 -122
  163. package/src/components/client/Radio/RadioGroupStore.tsx +0 -56
  164. package/src/components/client/Radio/index.ts +0 -2
  165. package/src/components/client/Radio/useRadioGroup.ts +0 -149
  166. package/src/components/client/SpringMotionConfig.tsx +0 -151
  167. package/src/components/client/Switch.tsx +0 -377
  168. package/src/components/client/index.ts +0 -30
  169. package/src/components/client/motionFeatures/domAnimation.ts +0 -2
  170. package/src/components/client/motionFeatures/domMax.ts +0 -2
  171. package/src/components/experimental/Spinner.tsx +0 -30
  172. package/src/components/experimental/Table.mocks.tsx +0 -38
  173. package/src/components/experimental/Table.tsx +0 -239
  174. package/src/components/experimental/client/Accordion.tsx +0 -77
  175. package/src/components/experimental/client/AvoidMotionLibraryProvider.tsx +0 -10
  176. package/src/components/experimental/client/Modal.tsx +0 -68
  177. package/src/components/experimental/client/Popover.tsx +0 -63
  178. package/src/components/experimental/client/SwitchV2.tsx +0 -343
  179. package/src/components/experimental/client/Tabs.tsx +0 -106
  180. package/src/components/experimental/client/Toast.tsx +0 -186
  181. package/src/components/experimental/client/index.ts +0 -15
  182. package/src/components/experimental/index.ts +0 -48
  183. package/src/components/index.ts +0 -41
  184. package/src/defaultTokensConfig.ts +0 -31
  185. package/src/fixtures/index.ts +0 -638
  186. package/src/fixtures/macros/typesToConstants.ts +0 -42
  187. package/src/fixtures/utils/getScaleModeRamp.ts +0 -48
  188. package/src/fixtures/utils/getTailwindAsUdsColors.ts +0 -115
  189. package/src/flags.ts +0 -45
  190. package/src/hooks/useForkRef.ts +0 -34
  191. package/src/hooks/useNestedBorderRadius.ts +0 -138
  192. package/src/hooks/useRtl.ts +0 -64
  193. package/src/index.ts +0 -4
  194. package/src/providers/ColorModeProvider.tsx +0 -21
  195. package/src/providers/ScaleModeProvider.tsx +0 -29
  196. package/src/providers/ThemeProvider.tsx +0 -26
  197. package/src/styles/styler.ts +0 -194
  198. package/src/styles/stylerTypes.ts +0 -81
  199. package/src/styles/toast.css +0 -0
  200. package/src/styles/variants.ts +0 -1351
  201. package/src/tailwind/base/addColorModeVars.ts +0 -23
  202. package/src/tailwind/base/addColorModeVarsV2.ts +0 -57
  203. package/src/tailwind/base/addFontFaceDeclarations.ts +0 -13
  204. package/src/tailwind/base/addFontVars.ts +0 -9
  205. package/src/tailwind/base/addMotionVars.ts +0 -9
  206. package/src/tailwind/base/addScaleModeVars.ts +0 -33
  207. package/src/tailwind/base/types.ts +0 -8
  208. package/src/tailwind/components/getButtonStyles.ts +0 -240
  209. package/src/tailwind/components/getFocusRingStyles.ts +0 -32
  210. package/src/tailwind/components/getGroupedTextStyles.ts +0 -29
  211. package/src/tailwind/components/getHitTargetStyles.ts +0 -23
  212. package/src/tailwind/components/getIconButtonStyles.ts +0 -49
  213. package/src/tailwind/components/getIconStyles.ts +0 -13
  214. package/src/tailwind/components/getInputStyles.ts +0 -20
  215. package/src/tailwind/components/getResponsiveTextStyles.ts +0 -161
  216. package/src/tailwind/components/types.ts +0 -14
  217. package/src/tailwind/components/utils.ts +0 -73
  218. package/src/tailwind/defaultTailwindThemeAsUdsConfig.ts +0 -78
  219. package/src/tailwind/postcss.config.ts +0 -6
  220. package/src/tailwind/purger/index.ts +0 -1
  221. package/src/tailwind/tailwind.config.ts +0 -50
  222. package/src/tailwind/tailwind.d.ts +0 -5
  223. package/src/tailwind/tailwindPlugin.ts +0 -724
  224. package/src/tailwind/theme/getFontFamilyTheme.ts +0 -28
  225. package/src/tailwind/tsMorph.ts +0 -1
  226. package/src/tailwind/uds.css +0 -3
  227. package/src/tailwind/utils/addFontsPlugin.ts +0 -17
  228. package/src/tailwind/utils/getColorModeStyles.ts +0 -21
  229. package/src/tailwind/utils/getFontFaceDeclarations.ts +0 -12
  230. package/src/tailwind/utils/getFontStyles.ts +0 -38
  231. package/src/tailwind/utils/getMotionStyles.ts +0 -35
  232. package/src/tailwind/utils/getScaleModeStyles.ts +0 -23
  233. package/src/tailwind/utils/getShadowPresetValues.ts +0 -133
  234. package/src/tailwind/utils/getShadowStyles.ts +0 -26
  235. package/src/tailwind/utils/getShadowVars.ts +0 -40
  236. package/src/tailwind/utils/index.ts +0 -9
  237. package/src/tokens/automation/configs/avatar.ts +0 -297
  238. package/src/tokens/automation/configs/badge.ts +0 -306
  239. package/src/tokens/automation/configs/checkbox.ts +0 -226
  240. package/src/tokens/automation/configs/chip.ts +0 -521
  241. package/src/tokens/automation/configs/divider.ts +0 -112
  242. package/src/tokens/automation/configs/index.ts +0 -10
  243. package/src/tokens/automation/configs/input.ts +0 -496
  244. package/src/tokens/automation/configs/link.ts +0 -183
  245. package/src/tokens/automation/configs/menu.ts +0 -344
  246. package/src/tokens/automation/configs/radio.ts +0 -225
  247. package/src/tokens/automation/configs/switch.ts +0 -323
  248. package/src/tokens/automation/index.ts +0 -5
  249. package/src/tokens/automation/mapTextVariantFixtureToValue.ts +0 -8
  250. package/src/tokens/automation/properties.ts +0 -433
  251. package/src/tokens/automation/types/ComponentConfig.ts +0 -116
  252. package/src/tokens/automation/types/ComponentDB.ts +0 -1
  253. package/src/tokens/automation/types/ComponentStyles.ts +0 -47
  254. package/src/tokens/automation/types/index.ts +0 -2
  255. package/src/tokens/automation/utils/cartesianProduct.ts +0 -13
  256. package/src/tokens/automation/utils/coalesceConfigVariant.ts +0 -49
  257. package/src/tokens/automation/utils/defaults.ts +0 -29
  258. package/src/tokens/automation/utils/generateKeyFromFlatConfigPath.ts +0 -15
  259. package/src/tokens/automation/utils/generateSchemaKey.ts +0 -29
  260. package/src/tokens/automation/utils/getConfigComponentVariant.ts +0 -28
  261. package/src/tokens/automation/utils/getConfigVariantComponentStatesMatrix.ts +0 -40
  262. package/src/tokens/automation/utils/getConfigVariantProperties.ts +0 -32
  263. package/src/tokens/automation/utils/getConfigVariantPseudoStates.ts +0 -70
  264. package/src/tokens/automation/utils/getConfigVariants.ts +0 -73
  265. package/src/tokens/automation/utils/index.ts +0 -939
  266. package/src/tokens/automation/utils/mapColorFixtureToValue.ts +0 -34
  267. package/src/tokens/automation/utils/subcomponents.ts +0 -13
  268. package/src/tokens/automation/utils/variableData.ts +0 -79
  269. package/src/tokens/automation/utils/variantConfigGuards.ts +0 -17
  270. package/src/tokens/configs/borderRadius.ts +0 -23
  271. package/src/tokens/configs/borderWidth.ts +0 -17
  272. package/src/tokens/configs/button.ts +0 -888
  273. package/src/tokens/configs/colorMode.ts +0 -14
  274. package/src/tokens/configs/font.ts +0 -9
  275. package/src/tokens/configs/iconButton.ts +0 -28
  276. package/src/tokens/configs/motion.ts +0 -135
  277. package/src/tokens/configs/palette.ts +0 -124
  278. package/src/tokens/configs/scaleMode.ts +0 -28
  279. package/src/tokens/configs/shadow.ts +0 -286
  280. package/src/tokens/configs/sizes.ts +0 -23
  281. package/src/tokens/configs/spectrum.ts +0 -729
  282. package/src/tokens/configs/typography.ts +0 -417
  283. package/src/tokens/configs/yosConfig.ts +0 -7651
  284. package/src/tokens/consts/buttonMotionTokens.ts +0 -99
  285. package/src/tokens/consts/cssTokens.ts +0 -110
  286. package/src/tokens/consts/defaultModes.ts +0 -15
  287. package/src/tokens/consts/fontDeclarationsMap.ts +0 -509
  288. package/src/tokens/index.ts +0 -15
  289. package/src/tokens/parseButtonVariants.ts +0 -59
  290. package/src/tokens/parseTokens.ts +0 -122
  291. package/src/tokens/types.ts +0 -1882
  292. package/src/tokens/utils/entries.ts +0 -14
  293. package/src/tokens/utils/fromEntries.ts +0 -11
  294. package/src/tokens/utils/mapValues.ts +0 -15
  295. package/src/types.ts +0 -2
  296. package/src/utils/assertUnreachable.ts +0 -6
  297. package/src/utils/composeRefs.ts +0 -23
  298. package/src/utils/createSlot.tsx +0 -131
  299. package/src/utils/entries.ts +0 -6
  300. package/src/utils/falsyToString.ts +0 -3
  301. package/src/utils/getMotionVar.ts +0 -18
  302. package/src/utils/intersperse.ts +0 -45
  303. package/src/utils/mapValues.ts +0 -15
  304. package/src/utils/mergeSlotProps.ts +0 -70
@@ -1,14 +0,0 @@
1
- /**
2
- * Converts an object into an array of key-value pair entries.
3
- *
4
- * This function takes an object `item` and returns an array of its own enumerable
5
- * property `[key, value]` pairs, where `key` is a string. The generic type `T` represents
6
- * the type of the input object. The return type is an array of tuples, where each tuple
7
- * consists of a string key and a value corresponding to the type of values in `T`.
8
- */
9
- export function entries<T>(item: T) {
10
- return Object.entries(item as Record<string, unknown>) as [
11
- Extract<keyof T, string>,
12
- T[keyof T],
13
- ][];
14
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Converts an array of key-value pair entries into an object.
3
- *
4
- * This function takes an array of `[key, value]` pairs and converts it into an object
5
- * where each key is associated with its corresponding value. The generic types `T` and `K`
6
- * represent the types of the keys and values, respectively. The keys are constrained to
7
- * be strings.
8
- */
9
- export function fromEntries<T extends string, K>(item: [T, K][] | (readonly [T, K])[]) {
10
- return Object.fromEntries(item) as Record<T, K>;
11
- }
@@ -1,15 +0,0 @@
1
- type AnyObject = Record<string, unknown>;
2
-
3
- export function mapValues<
4
- T extends AnyObject,
5
- K extends (value: T[keyof T], key: keyof T, i: number) => unknown,
6
- >(obj: T, callbackFn: K) {
7
- return Object.keys(obj).reduce(
8
- (acc, key: keyof T, i) => {
9
- acc[key] = callbackFn(obj[key], key, i) as ReturnType<typeof callbackFn>;
10
- return acc;
11
- },
12
-
13
- {} as { [key in keyof T]: ReturnType<K> },
14
- );
15
- }
package/src/types.ts DELETED
@@ -1,2 +0,0 @@
1
- import type { Dispatch, SetStateAction } from 'react';
2
- export type SetState<T> = Dispatch<SetStateAction<T>>;
@@ -1,6 +0,0 @@
1
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
- const assertUnreachable = (x: never): never => {
3
- throw new Error("Didn't expect to get here");
4
- };
5
-
6
- export { assertUnreachable };
@@ -1,23 +0,0 @@
1
- type PossibleRef<T> = React.Ref<T> | undefined;
2
-
3
- /**
4
- * Set a given ref to a given value
5
- * This utility takes care of different types of refs: callback refs and RefObject(s)
6
- */
7
- function setRef<T>(ref: PossibleRef<T>, value: T) {
8
- if (typeof ref === 'function') {
9
- ref(value);
10
- } else if (ref !== null && ref !== undefined) {
11
- (ref as React.MutableRefObject<T>).current = value;
12
- }
13
- }
14
-
15
- /**
16
- * A utility to compose multiple refs together
17
- * Accepts callback refs and RefObject(s)
18
- */
19
- function composeRefs<T>(...refs: PossibleRef<T>[]) {
20
- return (node: T) => refs.forEach((ref) => setRef(ref, node));
21
- }
22
-
23
- export { composeRefs };
@@ -1,131 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- /**
4
- * Essentially @radix-ui/react-slot typed as a generic we can use with asChild
5
- * @link: https://www.radix-ui.com/primitives/docs/utilities/slot
6
- **/
7
-
8
- /* -------------------------------------------------------------------------- */
9
- /* Slot */
10
- /* -------------------------------------------------------------------------- */
11
-
12
- import { Children, cloneElement, forwardRef, isValidElement } from 'react';
13
-
14
- import { composeRefs } from './composeRefs';
15
-
16
- export function createSlot<T extends React.ComponentType<{ children?: any }>>() {
17
- type SlotProps = React.ComponentPropsWithRef<T>;
18
- // TODO: reenable react/prop-types. See https://github.com/DefinitelyTyped/DefinitelyTyped/pull/70361
19
- const Slot = forwardRef<T, SlotProps>((props, forwardedRef) => {
20
- const { children, ...slotProps } = props;
21
- const childrenArray = Children.toArray(children);
22
- const slottable = childrenArray.find(isSlottable);
23
-
24
- if (slottable) {
25
- // the new element to render is the one passed as a child of `Slottable`
26
- const newElement = slottable.props.children as React.ReactNode;
27
-
28
- const newChildren = childrenArray.map((child) => {
29
- if (child === slottable) {
30
- // because the new element will be the one rendered, we are only interested
31
- // in grabbing its children (`newElement.props.children`)
32
- if (Children.count(newElement) > 1) {
33
- return Children.only(null);
34
- }
35
- return isValidElement(newElement) ? (newElement.props.children as React.ReactNode) : null;
36
- } else {
37
- return child;
38
- }
39
- });
40
-
41
- return (
42
- <SlotClone {...slotProps} ref={forwardedRef}>
43
- {isValidElement(newElement) ? cloneElement(newElement, undefined, newChildren) : null}
44
- </SlotClone>
45
- );
46
- }
47
-
48
- return (
49
- <SlotClone {...slotProps} ref={forwardedRef}>
50
- {children}
51
- </SlotClone>
52
- );
53
- });
54
-
55
- Slot.displayName = 'Slot';
56
-
57
- /* -------------------------------------------------------------------------- */
58
- /* SlotClone */
59
- /* -------------------------------------------------------------------------- */
60
-
61
- interface SlotCloneProps {
62
- children: React.ReactNode;
63
- }
64
-
65
- // eslint-disable-next-line react/no-multi-comp
66
- const SlotClone = forwardRef<any, SlotCloneProps>((props: SlotCloneProps, forwardedRef) => {
67
- const { children, ...slotProps } = props;
68
-
69
- if (isValidElement(children)) {
70
- return cloneElement(children, {
71
- ...mergeProps(slotProps, children.props),
72
- ref: forwardedRef
73
- ? composeRefs(forwardedRef, (children as any).ref)
74
- : (children as any).ref,
75
- });
76
- }
77
-
78
- return Children.count(children) > 1 ? Children.only(null) : null;
79
- });
80
-
81
- SlotClone.displayName = 'SlotClone';
82
-
83
- /* -------------------------------------------------------------------------- */
84
- /* Slottable */
85
- /* -------------------------------------------------------------------------- */
86
-
87
- const Slottable = ({ children }: { children: React.ReactNode }) => {
88
- return children;
89
- };
90
-
91
- /* ---------------------------------------------------------------------------------------------- */
92
-
93
- type AnyProps = Record<string, any>;
94
-
95
- function isSlottable(child: React.ReactNode): child is React.ReactElement {
96
- return isValidElement(child) && child.type === Slottable;
97
- }
98
-
99
- function mergeProps(slotProps: AnyProps, childProps: AnyProps) {
100
- // all child props should override
101
- const overrideProps = { ...childProps };
102
-
103
- for (const propName in childProps) {
104
- const slotPropValue = slotProps[propName];
105
- const childPropValue = childProps[propName];
106
-
107
- const isHandler = /^on[A-Z]/.test(propName);
108
- if (isHandler) {
109
- // if the handler exists on both, we compose them
110
- if (slotPropValue && childPropValue) {
111
- overrideProps[propName] = (...args: unknown[]) => {
112
- childPropValue(...args);
113
- slotPropValue(...args);
114
- };
115
- }
116
- // but if it exists only on the slot, we use only this one
117
- else if (slotPropValue) {
118
- overrideProps[propName] = slotPropValue;
119
- }
120
- }
121
- // if it's `style`, we merge them
122
- else if (propName === 'style') {
123
- overrideProps[propName] = { ...slotPropValue, ...childPropValue };
124
- }
125
- }
126
-
127
- return { ...slotProps, ...overrideProps };
128
- }
129
-
130
- return Slot as unknown as T;
131
- }
@@ -1,6 +0,0 @@
1
- export function entries<T>(item: T) {
2
- return Object.entries(item as Record<string, unknown>) as [
3
- Extract<keyof T, string>,
4
- T[keyof T],
5
- ][];
6
- }
@@ -1,3 +0,0 @@
1
- export function falsyToString<T>(value: T) {
2
- return typeof value === 'boolean' ? `${value}` : value === 0 ? '0' : value;
3
- }
@@ -1,18 +0,0 @@
1
- import type {
2
- MotionSpringConfigOptions,
3
- MotionVariant,
4
- MotionVariantSpeed,
5
- } from '@yahoo/uds/tokens';
6
- import { MOTION_PREFIX } from '@yahoo/uds/tokens';
7
-
8
- export interface GetMotionVarParams {
9
- variant: MotionVariant;
10
- speed: MotionVariantSpeed;
11
- control: MotionSpringConfigOptions;
12
- }
13
-
14
- export function getMotionVar({ variant, speed, control }: GetMotionVarParams) {
15
- const cssVar = [`--${MOTION_PREFIX}`, variant, speed, control].join('-');
16
-
17
- return `${cssVar}` as const;
18
- }
@@ -1,45 +0,0 @@
1
- import { isFunction } from 'lodash';
2
- import type { ReactNode } from 'react';
3
- import { Children, cloneElement, isValidElement } from 'react';
4
-
5
- /**
6
- * Given an array of items, place an item between each of the original values with either a constant
7
- * value or the result of a function which knows the index it is being inserted before.
8
- *
9
- * @example
10
- * const ANIMALS = ["Lions", "Tigers", "Bears"];
11
- * const animalesInterspersedWithAmpersands = intersperse(ANIMALS, "&");
12
- * // ["Lions", "&", "Tigers", "&", "Bears"]
13
- * console.log(animalesInterspersedWithAmpersands.join(" ") + '. OH MY!');
14
- */
15
- export const intersperse = <T>(list: Array<T>, inter: T | ((index: number) => T)) => {
16
- const interFn: (index: number) => T = isFunction(inter) ? inter : () => inter;
17
- return list.flatMap((item, i) => (i !== 0 ? [interFn(i), item] : [item]));
18
- };
19
-
20
- /**
21
- * Given ReactNode, if it is a list of children nodes, place a new React node between each of the
22
- * original nodes with either a constant ReactElement or the result of a function which knows the
23
- * index it is being inserted before.
24
- *
25
- * @example
26
- * const SplitParagraphsWithHorizontalRule = ({ paragraphs }: { paragraphs: string[] }) => {
27
- * const paragraphNodes = paragraphs.map((str) => <p>{str}</p>);
28
- *
29
- * return (<div>
30
- * {intersperseReactChildren(paragraphNodes, <hr />)}
31
- * </div>);
32
- * }
33
- */
34
- export const intersperseReactChildren = (
35
- children: ReactNode,
36
- inter: ReactNode | ((index: number) => ReactNode),
37
- ) => {
38
- return intersperse(Children.toArray(children), (i) => {
39
- const node = isFunction(inter) ? inter(i) : inter;
40
-
41
- return isValidElement(node)
42
- ? cloneElement(node, { ...node.props, key: node.key ?? `interspersed-${i}` })
43
- : null;
44
- });
45
- };
@@ -1,15 +0,0 @@
1
- type AnyObject = Record<string, unknown>;
2
-
3
- export function mapValues<
4
- T extends AnyObject,
5
- K extends (value: T[keyof T], key: keyof T, i: number) => unknown,
6
- >(obj: T, callbackFn: K) {
7
- return Object.keys(obj).reduce(
8
- (acc, key: keyof T, i) => {
9
- acc[key] = callbackFn(obj[key], key, i) as ReturnType<typeof callbackFn>;
10
- return acc;
11
- },
12
-
13
- {} as { [key in keyof T]: ReturnType<K> },
14
- );
15
- }
@@ -1,70 +0,0 @@
1
- import { cx } from '../styles/styler';
2
-
3
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
- const mergeSlotProp = <T extends Partial<Record<string, any>>>(
5
- slotProp: T | undefined,
6
- newSlotProp: T | undefined,
7
- onConflict: 'overwriteOriginal' | 'keepOriginal' = 'overwriteOriginal',
8
- ): T => {
9
- const allKeys = Array.from(
10
- new Set([...Object.keys(slotProp ?? {}), ...Object.keys(newSlotProp ?? {})]),
11
- );
12
-
13
- return Object.fromEntries(
14
- allKeys.map((key) => {
15
- const originalValue = slotProp?.[key];
16
- const newValue = newSlotProp?.[key];
17
-
18
- if (originalValue && !newValue) {
19
- return [key, originalValue] as const;
20
- }
21
-
22
- if (newValue && !originalValue) {
23
- return [key, newValue] as const;
24
- }
25
-
26
- if (key === 'className') {
27
- return [key, cx(originalValue, newValue)] as const;
28
- }
29
-
30
- if (onConflict === 'keepOriginal') {
31
- return [key, originalValue] as const;
32
- }
33
-
34
- // else overwriteOriginal
35
- return [key, newValue] as const;
36
- }),
37
- ) as T;
38
- };
39
-
40
- const mergeSlotProps = <
41
- T1 extends {
42
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
- [K in keyof T1]?: Record<string, any>;
44
- },
45
- T2 extends {
46
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
- [K in keyof T2]?: Record<string, any>;
48
- },
49
- >(
50
- slotProps: T1 | undefined,
51
- newProps: T2,
52
- onConflict: 'overwriteOriginal' | 'keepOriginal' = 'overwriteOriginal',
53
- ): (T1 & T2) | undefined => {
54
- if (!slotProps) {
55
- return newProps as T1 & T2;
56
- }
57
-
58
- const allKeys = Array.from(new Set([...Object.keys(slotProps), ...Object.keys(newProps)]));
59
-
60
- return Object.fromEntries(
61
- allKeys.map((key) => {
62
- const originalValue = slotProps[key as keyof T1];
63
- const newValue = newProps[key as keyof T2];
64
-
65
- return [key, mergeSlotProp(originalValue, newValue, onConflict)] as const;
66
- }),
67
- ) as T1 & T2;
68
- };
69
-
70
- export { mergeSlotProp, mergeSlotProps };