@yahoo/uds 3.143.0 → 3.145.0-beta.1

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 (649) hide show
  1. package/dist/automated-config/dist/mapTextVariantFixtureToValue.cjs +1 -1
  2. package/dist/automated-config/dist/mapTextVariantFixtureToValue.js +1 -1
  3. package/dist/automated-config/dist/properties.cjs +1 -1
  4. package/dist/automated-config/dist/properties.js +1 -1
  5. package/dist/automated-config/dist/utils/coalesceConfigVariant.cjs +1 -1
  6. package/dist/automated-config/dist/utils/coalesceConfigVariant.js +1 -1
  7. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.cts +2 -2
  8. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.ts +2 -2
  9. package/dist/automated-config/dist/utils/mapColorFixtureToValue.cjs +1 -1
  10. package/dist/automated-config/dist/utils/mapColorFixtureToValue.js +1 -1
  11. package/dist/cli/commands/purge.cjs +79 -0
  12. package/dist/{tailwind/dist → cli}/commands/purge.d.cts +4 -5
  13. package/dist/{tailwind/dist → cli}/commands/purge.d.ts +4 -5
  14. package/dist/cli/commands/purge.helpers.cjs +21 -0
  15. package/dist/cli/commands/purge.helpers.d.cts +14 -0
  16. package/dist/cli/commands/purge.helpers.d.ts +14 -0
  17. package/dist/cli/commands/purge.helpers.js +18 -0
  18. package/dist/cli/commands/purge.js +78 -0
  19. package/dist/cli/commands/sync.cjs +3 -3
  20. package/dist/cli/commands/sync.js +1 -1
  21. package/dist/{tailwind/dist/cli → cli}/dist/lib/spinner.cjs +1 -1
  22. package/dist/cli/dist/lib/spinner.js +56 -0
  23. package/dist/cli/dist/utils/rules/config.cjs +1 -1
  24. package/dist/cli/dist/utils/rules/config.js +1 -1
  25. package/dist/cli/runner.cjs +42 -44
  26. package/dist/cli/runner.js +41 -44
  27. package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +1 -1
  28. package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +1 -1
  29. package/dist/components/client/Popover/UDSPopoverConfigProvider.d.cts +1 -1
  30. package/dist/components/client/Popover/UDSPopoverConfigProvider.d.ts +1 -1
  31. package/dist/components/client/Toast/UDSToastConfigProvider.d.cts +1 -1
  32. package/dist/components/client/Toast/UDSToastConfigProvider.d.ts +1 -1
  33. package/dist/components/client/Toast/createToast.cjs +3 -3
  34. package/dist/components/client/Toast/createToast.js +2 -2
  35. package/dist/components/experimental/index.cjs +0 -18
  36. package/dist/components/experimental/index.js +1 -13
  37. package/dist/components/index.cjs +0 -83
  38. package/dist/components/index.js +1 -78
  39. package/dist/{tailwind → css}/dist/commands/css.cjs +5 -4
  40. package/dist/{tailwind → css}/dist/commands/css.helpers.cjs +3 -2
  41. package/dist/{tailwind → css}/dist/commands/css.helpers.js +3 -4
  42. package/dist/{tailwind → css}/dist/commands/css.js +5 -6
  43. package/dist/{tailwind → css}/dist/commands/generateComponentData.d.cts +3 -12
  44. package/dist/{tailwind → css}/dist/commands/generateComponentData.d.ts +3 -12
  45. package/dist/{tailwind → css}/dist/css/generate.cjs +11 -10
  46. package/dist/{tailwind → css}/dist/css/generate.d.cts +2 -3
  47. package/dist/{tailwind → css}/dist/css/generate.d.ts +2 -3
  48. package/dist/{tailwind → css}/dist/css/generate.helpers.cjs +12 -11
  49. package/dist/{tailwind → css}/dist/css/generate.helpers.js +10 -11
  50. package/dist/{tailwind → css}/dist/css/generate.js +9 -10
  51. package/dist/{tailwind → css}/dist/css/nodeUtils.cjs +9 -8
  52. package/dist/{tailwind → css}/dist/css/nodeUtils.js +7 -8
  53. package/dist/{tailwind → css}/dist/css/perf.cjs +4 -3
  54. package/dist/{tailwind → css}/dist/css/perf.js +3 -4
  55. package/dist/{tailwind → css}/dist/css/postcss.cjs +3 -2
  56. package/dist/{tailwind → css}/dist/css/postcss.helpers.cjs +3 -2
  57. package/dist/{tailwind → css}/dist/css/postcss.helpers.js +3 -4
  58. package/dist/{tailwind → css}/dist/css/postcss.js +3 -4
  59. package/dist/{tailwind → css}/dist/css/runner.cjs +21 -16
  60. package/dist/{tailwind → css}/dist/css/runner.helpers.cjs +4 -3
  61. package/dist/{tailwind → css}/dist/css/runner.helpers.js +3 -4
  62. package/dist/{tailwind → css}/dist/css/runner.js +20 -17
  63. package/dist/{tailwind → css}/dist/css/theme.cjs +3 -2
  64. package/dist/{tailwind → css}/dist/css/theme.d.cts +3 -3
  65. package/dist/{tailwind → css}/dist/css/theme.d.ts +3 -3
  66. package/dist/{tailwind → css}/dist/css/theme.js +3 -4
  67. package/dist/{tailwind → css}/dist/css/utils.cjs +4 -3
  68. package/dist/{tailwind → css}/dist/css/utils.js +4 -5
  69. package/dist/{tailwind → css}/dist/css/workerPool.cjs +4 -3
  70. package/dist/{tailwind → css}/dist/css/workerPool.js +3 -4
  71. package/dist/css/dist/index.d.cts +2 -0
  72. package/dist/css/dist/index.d.ts +2 -0
  73. package/dist/{tailwind/dist → css/dist/packages}/automated-config/dist/mapTextVariantFixtureToValue.cjs +4 -3
  74. package/dist/{tailwind/dist → css/dist/packages}/automated-config/dist/mapTextVariantFixtureToValue.js +4 -5
  75. package/dist/{tailwind/dist → css/dist/packages}/automated-config/dist/properties.cjs +4 -3
  76. package/dist/{tailwind/dist → css/dist/packages}/automated-config/dist/properties.js +4 -5
  77. package/dist/{tailwind/dist → css/dist/packages}/automated-config/dist/utils/mapColorFixtureToValue.cjs +4 -4
  78. package/dist/{tailwind/dist → css/dist/packages}/automated-config/dist/utils/mapColorFixtureToValue.js +4 -6
  79. package/dist/{tailwind/dist → css/dist/packages}/cli/dist/lib/colors.cjs +3 -2
  80. package/dist/{tailwind/dist → css/dist/packages}/cli/dist/lib/colors.js +3 -4
  81. package/dist/{tailwind/dist → css/dist/packages}/cli/dist/lib/logger.cjs +3 -2
  82. package/dist/{tailwind/dist → css/dist/packages}/cli/dist/lib/logger.js +3 -4
  83. package/dist/css/dist/packages/cli/dist/lib/print.cjs +12 -0
  84. package/dist/css/dist/packages/cli/dist/lib/print.js +12 -0
  85. package/dist/css/dist/packages/cli/dist/lib/spinner.cjs +58 -0
  86. package/dist/css/dist/packages/cli/dist/lib/spinner.js +57 -0
  87. package/dist/{tailwind/dist → css/dist/packages}/config/dist/index.cjs +3 -2
  88. package/dist/{tailwind/dist → css/dist/packages}/config/dist/index.js +3 -4
  89. package/dist/css/dist/packages/css-tokens/dist/index.cjs +79 -0
  90. package/dist/css/dist/packages/css-tokens/dist/index.js +71 -0
  91. package/dist/css/dist/packages/fixtures/dist/index.cjs +545 -0
  92. package/dist/css/dist/packages/fixtures/dist/index.js +543 -0
  93. package/dist/{tailwind/dist → css/dist/packages}/icons/src/safelist.cjs +3 -2
  94. package/dist/{tailwind/dist → css/dist/packages}/icons/src/safelist.js +3 -4
  95. package/dist/css/dist/packages/motion-tokens/dist/index.cjs +15 -0
  96. package/dist/css/dist/packages/motion-tokens/dist/index.js +15 -0
  97. package/dist/css/dist/packages/palette/dist/index.cjs +36 -0
  98. package/dist/css/dist/packages/palette/dist/index.js +36 -0
  99. package/dist/{automated-config/dist/utils → css/dist/packages/utils/dist}/assertUnreachable.cjs +3 -2
  100. package/dist/{automated-config/dist/utils → css/dist/packages/utils/dist}/assertUnreachable.js +3 -2
  101. package/dist/{tailwind → css}/dist/purger/optimized/ast/expressions.cjs +6 -5
  102. package/dist/{tailwind → css}/dist/purger/optimized/ast/expressions.js +4 -5
  103. package/dist/{tailwind → css}/dist/purger/optimized/purge.cjs +7 -6
  104. package/dist/{tailwind → css}/dist/purger/optimized/purge.js +5 -6
  105. package/dist/{tailwind → css}/dist/purger/optimized/purgeFromCode.cjs +4 -3
  106. package/dist/{tailwind → css}/dist/purger/optimized/purgeFromCode.js +3 -4
  107. package/dist/{tailwind → css}/dist/purger/optimized/utils/files.cjs +5 -4
  108. package/dist/{tailwind → css}/dist/purger/optimized/utils/files.js +4 -5
  109. package/dist/{tailwind → css}/dist/purger/optimized/utils/safelist.cjs +6 -5
  110. package/dist/{tailwind → css}/dist/purger/optimized/utils/safelist.js +5 -6
  111. package/dist/{tailwind → css}/dist/runtimeConfig/hookMetadata.cjs +3 -3
  112. package/dist/{tailwind → css}/dist/runtimeConfig/hookMetadata.js +4 -5
  113. package/dist/{tailwind → css}/dist/utils/optimizeCSS.cjs +4 -3
  114. package/dist/{tailwind → css}/dist/utils/optimizeCSS.js +3 -4
  115. package/dist/fixtures/src/util.cjs +2 -4
  116. package/dist/fixtures/src/util.js +1 -3
  117. package/dist/index.cjs +7 -7
  118. package/dist/index.d.cts +4 -4
  119. package/dist/index.d.ts +4 -4
  120. package/dist/index.js +4 -4
  121. package/dist/runtime/breakpointsConfig.cjs +3 -3
  122. package/dist/runtime/breakpointsConfig.js +2 -2
  123. package/dist/runtime/modalConfig.cjs +2 -2
  124. package/dist/runtime/modalConfig.js +1 -1
  125. package/dist/runtime/popoverConfig.cjs +7 -7
  126. package/dist/runtime/popoverConfig.js +1 -1
  127. package/dist/runtime/tooltipConfig.cjs +2 -2
  128. package/dist/runtime/tooltipConfig.js +1 -1
  129. package/dist/styles/styler.d.cts +26 -26
  130. package/dist/styles/styler.d.ts +26 -26
  131. package/dist/tailwind/plugin.cjs +5 -5
  132. package/dist/tailwind/plugin.d.cts +3 -3
  133. package/dist/tailwind/plugin.d.ts +3 -3
  134. package/dist/tailwind/plugin.js +3 -3
  135. package/dist/tailwind/utils/index.cjs +44 -0
  136. package/dist/tailwind/utils/index.d.cts +21 -0
  137. package/dist/tailwind/utils/index.d.ts +21 -0
  138. package/dist/tailwind/utils/index.js +21 -0
  139. package/dist/tailwind/utils/node.cjs +11 -0
  140. package/dist/tailwind/utils/node.d.cts +3 -0
  141. package/dist/tailwind/utils/node.d.ts +3 -0
  142. package/dist/tailwind/utils/node.js +3 -0
  143. package/dist/{tailwind/dist/_virtual/_rolldown/runtime.js → tailwind-internal/dist/_virtual/_rolldown/runtime.cjs} +4 -3
  144. package/dist/tailwind-internal/dist/_virtual/_rolldown/runtime.js +10 -0
  145. package/dist/{tailwind → tailwind-internal}/dist/automated-config/dist/generated/generatedConfigs.cjs +3 -2
  146. package/dist/{tailwind → tailwind-internal}/dist/automated-config/dist/generated/generatedConfigs.js +3 -4
  147. package/dist/tailwind-internal/dist/automated-config/dist/mapTextVariantFixtureToValue.cjs +19 -0
  148. package/dist/tailwind-internal/dist/automated-config/dist/mapTextVariantFixtureToValue.js +19 -0
  149. package/dist/tailwind-internal/dist/automated-config/dist/properties.cjs +532 -0
  150. package/dist/tailwind-internal/dist/automated-config/dist/properties.js +532 -0
  151. package/dist/{tailwind → tailwind-internal}/dist/automated-config/dist/utils/generateDefaultClassName.cjs +3 -2
  152. package/dist/{tailwind → tailwind-internal}/dist/automated-config/dist/utils/generateDefaultClassName.js +3 -4
  153. package/dist/{tailwind → tailwind-internal}/dist/automated-config/dist/utils/generateSchemaKey.cjs +3 -2
  154. package/dist/{tailwind → tailwind-internal}/dist/automated-config/dist/utils/generateSchemaKey.js +3 -4
  155. package/dist/{tailwind → tailwind-internal}/dist/automated-config/dist/utils/index.cjs +4 -3
  156. package/dist/{tailwind → tailwind-internal}/dist/automated-config/dist/utils/index.js +3 -4
  157. package/dist/tailwind-internal/dist/automated-config/dist/utils/mapColorFixtureToValue.cjs +26 -0
  158. package/dist/tailwind-internal/dist/automated-config/dist/utils/mapColorFixtureToValue.js +26 -0
  159. package/dist/{tailwind → tailwind-internal}/dist/automated-config/dist/utils/variantConfigGuards.cjs +3 -2
  160. package/dist/{tailwind → tailwind-internal}/dist/automated-config/dist/utils/variantConfigGuards.js +3 -4
  161. package/dist/tailwind-internal/dist/base/addColorModeVars.cjs +19 -0
  162. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addColorModeVars.js +5 -6
  163. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addColorModeVarsV2.cjs +8 -8
  164. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addColorModeVarsV2.js +5 -6
  165. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addFontFaceDeclarations.cjs +3 -2
  166. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addFontFaceDeclarations.js +3 -4
  167. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addFontVars.cjs +3 -2
  168. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addFontVars.js +3 -4
  169. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addMotionVars.cjs +3 -2
  170. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addMotionVars.js +3 -4
  171. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addScaleModeVars.cjs +5 -4
  172. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/base/addScaleModeVars.js +5 -6
  173. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getFocusRingStyles.cjs +4 -3
  174. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getFocusRingStyles.js +4 -5
  175. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getGroupedTextStyles.cjs +5 -4
  176. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getGroupedTextStyles.js +5 -6
  177. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getHitTargetStyles.cjs +3 -2
  178. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getHitTargetStyles.js +3 -4
  179. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getIconStyles.cjs +3 -2
  180. package/dist/tailwind-internal/dist/components/getIconStyles.d.cts +11 -0
  181. package/dist/tailwind-internal/dist/components/getIconStyles.d.ts +11 -0
  182. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getIconStyles.js +3 -4
  183. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getInputStyles.cjs +3 -2
  184. package/dist/tailwind-internal/dist/components/getInputStyles.d.cts +11 -0
  185. package/dist/tailwind-internal/dist/components/getInputStyles.d.ts +11 -0
  186. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getInputStyles.js +3 -4
  187. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getResponsiveTextStyles.cjs +10 -10
  188. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getResponsiveTextStyles.d.cts +5 -5
  189. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getResponsiveTextStyles.d.ts +5 -5
  190. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/getResponsiveTextStyles.js +8 -9
  191. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/types.d.cts +4 -4
  192. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/components/types.d.ts +4 -4
  193. package/dist/tailwind-internal/dist/config/dist/index.cjs +28570 -0
  194. package/dist/{tailwind → tailwind-internal}/dist/config/dist/index.d.cts +5 -4
  195. package/dist/{tailwind → tailwind-internal}/dist/config/dist/index.d.ts +5 -4
  196. package/dist/tailwind-internal/dist/config/dist/index.js +28570 -0
  197. package/dist/{tailwind → tailwind-internal}/dist/css-tokens/dist/index.cjs +13 -12
  198. package/dist/{tailwind → tailwind-internal}/dist/css-tokens/dist/index.js +4 -5
  199. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/defaultTailwindThemeAsUdsConfig.cjs +3 -2
  200. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/defaultTailwindThemeAsUdsConfig.d.cts +5 -5
  201. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/defaultTailwindThemeAsUdsConfig.d.ts +5 -5
  202. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/defaultTailwindThemeAsUdsConfig.js +3 -4
  203. package/dist/{tailwind → tailwind-internal}/dist/fixtures/dist/index.cjs +3 -1
  204. package/dist/{tailwind → tailwind-internal}/dist/fixtures/dist/index.js +3 -3
  205. package/dist/{tailwind → tailwind-internal}/dist/fonts/dist/index.cjs +3 -2
  206. package/dist/{tailwind → tailwind-internal}/dist/fonts/dist/index.d.cts +3 -3
  207. package/dist/{tailwind → tailwind-internal}/dist/fonts/dist/index.d.ts +3 -3
  208. package/dist/{tailwind → tailwind-internal}/dist/fonts/dist/index.js +3 -4
  209. package/dist/tailwind-internal/dist/index.d.cts +21 -0
  210. package/dist/tailwind-internal/dist/index.d.ts +21 -0
  211. package/dist/{tailwind → tailwind-internal}/dist/modes/dist/index.cjs +3 -2
  212. package/dist/{tailwind → tailwind-internal}/dist/modes/dist/index.js +3 -4
  213. package/dist/tailwind-internal/dist/motion-tokens/dist/index.cjs +15 -0
  214. package/dist/tailwind-internal/dist/motion-tokens/dist/index.js +15 -0
  215. package/dist/{tailwind → tailwind-internal}/dist/palette/dist/index.cjs +3 -2
  216. package/dist/{tailwind → tailwind-internal}/dist/palette/dist/index.js +3 -4
  217. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/a11y.cjs +4 -3
  218. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/a11y.js +3 -4
  219. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/blurBgFallback.cjs +5 -4
  220. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/blurBgFallback.js +4 -5
  221. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/borderRadius.cjs +7 -6
  222. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/borderRadius.js +6 -7
  223. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/borderWidth.cjs +7 -6
  224. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/borderWidth.js +6 -7
  225. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/breakpoints.cjs +7 -6
  226. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/breakpoints.js +6 -7
  227. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/colors.cjs +11 -11
  228. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/colors.js +9 -10
  229. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/components.cjs +7 -6
  230. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/components.js +6 -7
  231. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/elevation.cjs +8 -7
  232. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/elevation.js +7 -8
  233. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/getTailwindAsUdsColors.cjs +5 -4
  234. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/getTailwindAsUdsColors.js +5 -6
  235. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/icons.cjs +4 -3
  236. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/icons.js +3 -4
  237. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/input.cjs +4 -3
  238. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/input.js +3 -4
  239. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/motion.cjs +4 -3
  240. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/motion.js +3 -4
  241. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/nestedBorderRadius.cjs +4 -3
  242. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/nestedBorderRadius.js +3 -4
  243. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/scaleMode.cjs +5 -4
  244. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/scaleMode.js +4 -5
  245. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/shadows.cjs +5 -4
  246. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/shadows.js +4 -5
  247. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/sizing.cjs +6 -5
  248. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/sizing.js +5 -6
  249. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/spacing.cjs +4 -3
  250. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/spacing.js +3 -4
  251. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/typography.cjs +9 -8
  252. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/plugins/typography.js +8 -9
  253. package/dist/tailwind-internal/dist/tailwindPlugin.cjs +35 -0
  254. package/dist/{tailwind/dist/plugin.d.ts → tailwind-internal/dist/tailwindPlugin.d.cts} +5 -7
  255. package/dist/{tailwind/dist/plugin.d.cts → tailwind-internal/dist/tailwindPlugin.d.ts} +5 -7
  256. package/dist/tailwind-internal/dist/tailwindPlugin.js +34 -0
  257. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/theme/getFontFamilyTheme.cjs +5 -4
  258. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/theme/getFontFamilyTheme.js +5 -6
  259. package/dist/{tailwind → tailwind-internal}/dist/types/dist/index.d.cts +3 -2
  260. package/dist/{tailwind → tailwind-internal}/dist/types/dist/index.d.ts +3 -2
  261. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/addFontsPlugin.cjs +4 -3
  262. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/addFontsPlugin.d.cts +5 -5
  263. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/addFontsPlugin.d.ts +5 -5
  264. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/addFontsPlugin.js +3 -4
  265. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/composeTailwindPlugins.cjs +10 -16
  266. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/composeTailwindPlugins.d.cts +16 -4
  267. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/composeTailwindPlugins.d.ts +16 -5
  268. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/composeTailwindPlugins.js +6 -7
  269. package/dist/tailwind-internal/dist/utils/dist/assertUnreachable.cjs +9 -0
  270. package/dist/tailwind-internal/dist/utils/dist/assertUnreachable.js +9 -0
  271. package/dist/tailwind-internal/dist/utils/dist/entries.cjs +9 -0
  272. package/dist/tailwind-internal/dist/utils/dist/entries.js +9 -0
  273. package/dist/{tokens/utils → tailwind-internal/dist/utils/dist}/fromEntries.cjs +3 -2
  274. package/dist/{tokens/utils → tailwind-internal/dist/utils/dist}/fromEntries.js +3 -1
  275. package/dist/{tokens/utils → tailwind-internal/dist/utils/dist}/mapValues.cjs +3 -2
  276. package/dist/{tokens/utils → tailwind-internal/dist/utils/dist}/mapValues.js +3 -1
  277. package/dist/{tailwind → tailwind-internal}/dist/utils/entryPoints.cjs +8 -5
  278. package/dist/tailwind-internal/dist/utils/entryPoints.d.cts +21 -0
  279. package/dist/tailwind-internal/dist/utils/entryPoints.d.ts +21 -0
  280. package/dist/{tailwind → tailwind-internal}/dist/utils/entryPoints.js +5 -6
  281. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getColorModeStyles.cjs +3 -2
  282. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getColorModeStyles.d.cts +5 -5
  283. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getColorModeStyles.d.ts +5 -5
  284. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getColorModeStyles.js +3 -4
  285. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getElevationStyles.cjs +6 -5
  286. package/dist/tailwind-internal/dist/utils/getElevationStyles.d.cts +13 -0
  287. package/dist/tailwind-internal/dist/utils/getElevationStyles.d.ts +13 -0
  288. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getElevationStyles.js +6 -7
  289. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getFontFaceDeclarations.cjs +4 -3
  290. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getFontFaceDeclarations.d.cts +5 -5
  291. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getFontFaceDeclarations.d.ts +5 -5
  292. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getFontFaceDeclarations.js +4 -5
  293. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getFontStyles.cjs +7 -6
  294. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getFontStyles.d.cts +5 -5
  295. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getFontStyles.d.ts +5 -5
  296. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getFontStyles.js +7 -8
  297. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getMotionStyles.cjs +7 -6
  298. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getMotionStyles.d.cts +5 -5
  299. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getMotionStyles.d.ts +5 -5
  300. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getMotionStyles.js +7 -8
  301. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getNestedBorderRadiusUtilities.cjs +3 -2
  302. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getNestedBorderRadiusUtilities.js +3 -4
  303. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getScaleModeStyles.cjs +3 -2
  304. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getScaleModeStyles.d.cts +5 -5
  305. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getScaleModeStyles.d.ts +5 -5
  306. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getScaleModeStyles.js +3 -4
  307. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getShadowPresetValues.cjs +5 -4
  308. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getShadowPresetValues.d.cts +6 -6
  309. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getShadowPresetValues.d.ts +6 -6
  310. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getShadowPresetValues.js +5 -6
  311. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getShadowStyles.cjs +6 -5
  312. package/dist/tailwind-internal/dist/utils/getShadowStyles.d.cts +18 -0
  313. package/dist/tailwind-internal/dist/utils/getShadowStyles.d.ts +18 -0
  314. package/dist/{tailwind/dist/tailwind → tailwind-internal/dist}/utils/getShadowStyles.js +6 -7
  315. package/dist/tailwind-internal/dist/utils/getShadowVars.cjs +24 -0
  316. package/dist/tailwind-internal/dist/utils/getShadowVars.d.cts +8 -0
  317. package/dist/tailwind-internal/dist/utils/getShadowVars.d.ts +8 -0
  318. package/dist/tailwind-internal/dist/utils/getShadowVars.js +24 -0
  319. package/dist/{tailwind → tailwind-internal}/dist/utils/opacity.cjs +6 -6
  320. package/dist/tailwind-internal/dist/utils/opacity.d.cts +20 -0
  321. package/dist/tailwind-internal/dist/utils/opacity.d.ts +20 -0
  322. package/dist/{tailwind → tailwind-internal}/dist/utils/opacity.js +3 -4
  323. package/dist/{tailwind → tailwind-internal}/dist/utils/parseTokens.cjs +6 -5
  324. package/dist/{tailwind → tailwind-internal}/dist/utils/parseTokens.d.cts +3 -3
  325. package/dist/{tailwind → tailwind-internal}/dist/utils/parseTokens.d.ts +3 -3
  326. package/dist/{tailwind → tailwind-internal}/dist/utils/parseTokens.js +6 -7
  327. package/dist/{tailwind → tailwind-internal}/dist/utils/postcssPreserveVars.cjs +3 -2
  328. package/dist/tailwind-internal/dist/utils/postcssPreserveVars.d.cts +38 -0
  329. package/dist/tailwind-internal/dist/utils/postcssPreserveVars.d.ts +38 -0
  330. package/dist/{tailwind → tailwind-internal}/dist/utils/postcssPreserveVars.js +3 -4
  331. package/dist/{tailwind → tailwind-v3}/dist/cli/dist/lib/print.cjs +2 -1
  332. package/dist/{tailwind → tailwind-v3}/dist/cli/dist/lib/print.js +2 -3
  333. package/dist/tailwind-v3/dist/cli/dist/lib/spinner.cjs +58 -0
  334. package/dist/{tailwind → tailwind-v3}/dist/cli/dist/lib/spinner.js +2 -3
  335. package/dist/tailwind-v3/dist/css-tokens/dist/index.cjs +40 -0
  336. package/dist/tailwind-v3/dist/css-tokens/dist/index.js +32 -0
  337. package/dist/tailwind-v3/dist/palette/dist/index.cjs +36 -0
  338. package/dist/tailwind-v3/dist/palette/dist/index.js +36 -0
  339. package/dist/{tailwind → tailwind-v3}/dist/purger/legacy/purgeCSS.cjs +8 -10
  340. package/dist/{tailwind → tailwind-v3}/dist/purger/legacy/purgeCSS.d.cts +2 -4
  341. package/dist/{tailwind → tailwind-v3}/dist/purger/legacy/purgeCSS.d.ts +2 -2
  342. package/dist/{tailwind → tailwind-v3}/dist/purger/legacy/purgeCSS.js +8 -9
  343. package/dist/tailwind-v3/dist/purger.d.cts +2 -0
  344. package/dist/tailwind-v3/dist/purger.d.ts +2 -0
  345. package/dist/{tailwind → tailwind-v3}/dist/utils/tsMorph.cjs +11 -14
  346. package/dist/{tailwind → tailwind-v3}/dist/utils/tsMorph.js +4 -5
  347. package/dist/tailwind-v4/dist/cli.cjs +102 -0
  348. package/dist/tailwind-v4/dist/cli.js +99 -0
  349. package/dist/tailwind-v4/dist/generateTheme-DkTgUwTM.cjs +643 -0
  350. package/dist/tailwind-v4/dist/generateTheme-DkTgUwTM.js +643 -0
  351. package/dist/tokens/index.cjs +6 -6
  352. package/dist/tokens/index.d.cts +3 -3
  353. package/dist/tokens/index.d.ts +3 -3
  354. package/dist/tokens/index.js +3 -3
  355. package/dist/tokens/parseTokens.cjs +1 -1
  356. package/dist/tokens/parseTokens.d.cts +1 -1
  357. package/dist/tokens/parseTokens.d.ts +1 -1
  358. package/dist/tokens/parseTokens.js +1 -1
  359. package/dist/tokens/utils/entries.cjs +2 -14
  360. package/dist/tokens/utils/entries.d.cts +1 -11
  361. package/dist/tokens/utils/entries.d.ts +1 -11
  362. package/dist/tokens/utils/entries.js +1 -13
  363. package/dist/tokens/utils/getFontUrls.cjs +2 -2
  364. package/dist/tokens/utils/getFontUrls.js +1 -1
  365. package/dist/types/dist/index.d.cts +2 -2
  366. package/dist/types/dist/index.d.ts +2 -2
  367. package/dist/uds/generated/componentData.cjs +1519 -1519
  368. package/dist/uds/generated/componentData.js +1519 -1519
  369. package/dist/uds/package.cjs +24 -8
  370. package/dist/uds/package.js +24 -8
  371. package/dist/utils/{assertUnreachable.cjs → dist/assertUnreachable.cjs} +2 -2
  372. package/dist/utils/{assertUnreachable.js → dist/assertUnreachable.js} +2 -1
  373. package/dist/utils/{entries.cjs → dist/entries.cjs} +2 -2
  374. package/dist/utils/dist/entries.d.cts +6 -0
  375. package/dist/utils/dist/entries.d.ts +6 -0
  376. package/dist/utils/{entries.js → dist/entries.js} +2 -1
  377. package/dist/utils/{fromEntries.cjs → dist/fromEntries.cjs} +2 -2
  378. package/dist/{tokens/utils → utils/dist}/fromEntries.d.cts +3 -2
  379. package/dist/{tokens/utils → utils/dist}/fromEntries.d.ts +3 -2
  380. package/dist/utils/{fromEntries.js → dist/fromEntries.js} +2 -1
  381. package/dist/utils/{mapValues.cjs → dist/mapValues.cjs} +2 -2
  382. package/dist/{tokens/utils → utils/dist}/mapValues.d.cts +3 -2
  383. package/dist/{tokens/utils → utils/dist}/mapValues.d.ts +3 -2
  384. package/dist/utils/{mapValues.js → dist/mapValues.js} +2 -1
  385. package/dist/{cli/commands/utils → utils/dist}/sortKeys.cjs +2 -2
  386. package/dist/{cli/commands/utils → utils/dist}/sortKeys.js +2 -1
  387. package/generated/componentData.json +1956 -1956
  388. package/package.json +25 -9
  389. package/dist/automated-config/dist/utils/mapValues.cjs +0 -11
  390. package/dist/automated-config/dist/utils/mapValues.js +0 -11
  391. package/dist/cli/commands/utils/sortKeys.d.cts +0 -5
  392. package/dist/cli/commands/utils/sortKeys.d.ts +0 -5
  393. package/dist/tailwind/dist/_virtual/_rolldown/runtime.cjs +0 -24
  394. package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.cjs +0 -746
  395. package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.js +0 -748
  396. package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.js.map +0 -1
  397. package/dist/tailwind/dist/automated-config/dist/generated/generatedConfigs.js.map +0 -1
  398. package/dist/tailwind/dist/automated-config/dist/mapTextVariantFixtureToValue.js.map +0 -1
  399. package/dist/tailwind/dist/automated-config/dist/properties.js.map +0 -1
  400. package/dist/tailwind/dist/automated-config/dist/utils/assertUnreachable.cjs +0 -8
  401. package/dist/tailwind/dist/automated-config/dist/utils/assertUnreachable.js +0 -10
  402. package/dist/tailwind/dist/automated-config/dist/utils/assertUnreachable.js.map +0 -1
  403. package/dist/tailwind/dist/automated-config/dist/utils/generateDefaultClassName.js.map +0 -1
  404. package/dist/tailwind/dist/automated-config/dist/utils/generateSchemaKey.js.map +0 -1
  405. package/dist/tailwind/dist/automated-config/dist/utils/index.js.map +0 -1
  406. package/dist/tailwind/dist/automated-config/dist/utils/mapColorFixtureToValue.js.map +0 -1
  407. package/dist/tailwind/dist/automated-config/dist/utils/variantConfigGuards.js.map +0 -1
  408. package/dist/tailwind/dist/cli/dist/lib/colors.js.map +0 -1
  409. package/dist/tailwind/dist/cli/dist/lib/logger.js.map +0 -1
  410. package/dist/tailwind/dist/cli/dist/lib/print.js.map +0 -1
  411. package/dist/tailwind/dist/cli/dist/lib/spinner.js.map +0 -1
  412. package/dist/tailwind/dist/cli.cjs +0 -10
  413. package/dist/tailwind/dist/cli.d.cts +0 -6
  414. package/dist/tailwind/dist/cli.d.ts +0 -6
  415. package/dist/tailwind/dist/cli.js +0 -6
  416. package/dist/tailwind/dist/commands/css.d.cts +0 -14
  417. package/dist/tailwind/dist/commands/css.d.cts.map +0 -1
  418. package/dist/tailwind/dist/commands/css.d.ts +0 -14
  419. package/dist/tailwind/dist/commands/css.d.ts.map +0 -1
  420. package/dist/tailwind/dist/commands/css.helpers.js.map +0 -1
  421. package/dist/tailwind/dist/commands/css.js.map +0 -1
  422. package/dist/tailwind/dist/commands/generateComponentData.cjs +0 -70
  423. package/dist/tailwind/dist/commands/generateComponentData.d.cts.map +0 -1
  424. package/dist/tailwind/dist/commands/generateComponentData.d.ts.map +0 -1
  425. package/dist/tailwind/dist/commands/generateComponentData.js +0 -71
  426. package/dist/tailwind/dist/commands/generateComponentData.js.map +0 -1
  427. package/dist/tailwind/dist/commands/generatePurgeCSSData.cjs +0 -44
  428. package/dist/tailwind/dist/commands/generatePurgeCSSData.d.cts +0 -15
  429. package/dist/tailwind/dist/commands/generatePurgeCSSData.d.cts.map +0 -1
  430. package/dist/tailwind/dist/commands/generatePurgeCSSData.d.ts +0 -15
  431. package/dist/tailwind/dist/commands/generatePurgeCSSData.d.ts.map +0 -1
  432. package/dist/tailwind/dist/commands/generatePurgeCSSData.js +0 -44
  433. package/dist/tailwind/dist/commands/generatePurgeCSSData.js.map +0 -1
  434. package/dist/tailwind/dist/commands/purge.cjs +0 -53
  435. package/dist/tailwind/dist/commands/purge.d.cts.map +0 -1
  436. package/dist/tailwind/dist/commands/purge.d.ts.map +0 -1
  437. package/dist/tailwind/dist/commands/purge.js +0 -55
  438. package/dist/tailwind/dist/commands/purge.js.map +0 -1
  439. package/dist/tailwind/dist/config/dist/index.d.cts.map +0 -1
  440. package/dist/tailwind/dist/config/dist/index.d.ts.map +0 -1
  441. package/dist/tailwind/dist/config/dist/index.js.map +0 -1
  442. package/dist/tailwind/dist/css/generate.d.cts.map +0 -1
  443. package/dist/tailwind/dist/css/generate.d.ts.map +0 -1
  444. package/dist/tailwind/dist/css/generate.helpers.js.map +0 -1
  445. package/dist/tailwind/dist/css/generate.js.map +0 -1
  446. package/dist/tailwind/dist/css/nodeUtils.js.map +0 -1
  447. package/dist/tailwind/dist/css/perf.js.map +0 -1
  448. package/dist/tailwind/dist/css/postcss.helpers.js.map +0 -1
  449. package/dist/tailwind/dist/css/postcss.js.map +0 -1
  450. package/dist/tailwind/dist/css/purgeWorker.cjs +0 -47
  451. package/dist/tailwind/dist/css/purgeWorker.js +0 -48
  452. package/dist/tailwind/dist/css/purgeWorker.js.map +0 -1
  453. package/dist/tailwind/dist/css/runner.helpers.js.map +0 -1
  454. package/dist/tailwind/dist/css/runner.js.map +0 -1
  455. package/dist/tailwind/dist/css/theme.d.cts.map +0 -1
  456. package/dist/tailwind/dist/css/theme.d.ts.map +0 -1
  457. package/dist/tailwind/dist/css/theme.js.map +0 -1
  458. package/dist/tailwind/dist/css/utils.js.map +0 -1
  459. package/dist/tailwind/dist/css/workerPool.js.map +0 -1
  460. package/dist/tailwind/dist/css-tokens/dist/index.js.map +0 -1
  461. package/dist/tailwind/dist/fixtures/dist/index.js.map +0 -1
  462. package/dist/tailwind/dist/fonts/dist/index.d.cts.map +0 -1
  463. package/dist/tailwind/dist/fonts/dist/index.d.ts.map +0 -1
  464. package/dist/tailwind/dist/fonts/dist/index.js.map +0 -1
  465. package/dist/tailwind/dist/icons/src/safelist.js.map +0 -1
  466. package/dist/tailwind/dist/index.cjs +0 -8
  467. package/dist/tailwind/dist/index.d.cts +0 -5
  468. package/dist/tailwind/dist/index.d.ts +0 -5
  469. package/dist/tailwind/dist/index.js +0 -5
  470. package/dist/tailwind/dist/modes/dist/index.js.map +0 -1
  471. package/dist/tailwind/dist/motion-tokens/dist/index.cjs +0 -25
  472. package/dist/tailwind/dist/motion-tokens/dist/index.js +0 -26
  473. package/dist/tailwind/dist/motion-tokens/dist/index.js.map +0 -1
  474. package/dist/tailwind/dist/palette/dist/index.js.map +0 -1
  475. package/dist/tailwind/dist/plugin.cjs +0 -38
  476. package/dist/tailwind/dist/plugin.d.cts.map +0 -1
  477. package/dist/tailwind/dist/plugin.d.ts.map +0 -1
  478. package/dist/tailwind/dist/plugin.js +0 -37
  479. package/dist/tailwind/dist/plugin.js.map +0 -1
  480. package/dist/tailwind/dist/purger/legacy/index.d.cts +0 -2
  481. package/dist/tailwind/dist/purger/legacy/index.d.ts +0 -2
  482. package/dist/tailwind/dist/purger/legacy/purgeCSS.d.cts.map +0 -1
  483. package/dist/tailwind/dist/purger/legacy/purgeCSS.d.ts.map +0 -1
  484. package/dist/tailwind/dist/purger/legacy/purgeCSS.js.map +0 -1
  485. package/dist/tailwind/dist/purger/legacy/purgeFromCode.cjs +0 -57
  486. package/dist/tailwind/dist/purger/legacy/purgeFromCode.d.cts +0 -28
  487. package/dist/tailwind/dist/purger/legacy/purgeFromCode.d.cts.map +0 -1
  488. package/dist/tailwind/dist/purger/legacy/purgeFromCode.d.ts +0 -28
  489. package/dist/tailwind/dist/purger/legacy/purgeFromCode.d.ts.map +0 -1
  490. package/dist/tailwind/dist/purger/legacy/purgeFromCode.js +0 -58
  491. package/dist/tailwind/dist/purger/legacy/purgeFromCode.js.map +0 -1
  492. package/dist/tailwind/dist/purger/optimized/ast/expressions.d.cts +0 -2
  493. package/dist/tailwind/dist/purger/optimized/ast/expressions.d.ts +0 -2
  494. package/dist/tailwind/dist/purger/optimized/ast/expressions.js.map +0 -1
  495. package/dist/tailwind/dist/purger/optimized/ast/jsx.d.cts +0 -2
  496. package/dist/tailwind/dist/purger/optimized/ast/jsx.d.ts +0 -2
  497. package/dist/tailwind/dist/purger/optimized/ast/props.d.cts +0 -2
  498. package/dist/tailwind/dist/purger/optimized/ast/props.d.ts +0 -2
  499. package/dist/tailwind/dist/purger/optimized/ast/spread.d.cts +0 -2
  500. package/dist/tailwind/dist/purger/optimized/ast/spread.d.ts +0 -2
  501. package/dist/tailwind/dist/purger/optimized/index.d.cts +0 -3
  502. package/dist/tailwind/dist/purger/optimized/index.d.ts +0 -3
  503. package/dist/tailwind/dist/purger/optimized/purge.d.cts +0 -2
  504. package/dist/tailwind/dist/purger/optimized/purge.d.ts +0 -2
  505. package/dist/tailwind/dist/purger/optimized/purge.js.map +0 -1
  506. package/dist/tailwind/dist/purger/optimized/purgeFromCode.d.cts +0 -63
  507. package/dist/tailwind/dist/purger/optimized/purgeFromCode.d.cts.map +0 -1
  508. package/dist/tailwind/dist/purger/optimized/purgeFromCode.d.ts +0 -63
  509. package/dist/tailwind/dist/purger/optimized/purgeFromCode.d.ts.map +0 -1
  510. package/dist/tailwind/dist/purger/optimized/purgeFromCode.js.map +0 -1
  511. package/dist/tailwind/dist/purger/optimized/types.d.cts +0 -32
  512. package/dist/tailwind/dist/purger/optimized/types.d.cts.map +0 -1
  513. package/dist/tailwind/dist/purger/optimized/types.d.ts +0 -32
  514. package/dist/tailwind/dist/purger/optimized/types.d.ts.map +0 -1
  515. package/dist/tailwind/dist/purger/optimized/utils/componentAnalyzer.cjs +0 -622
  516. package/dist/tailwind/dist/purger/optimized/utils/componentAnalyzer.js +0 -620
  517. package/dist/tailwind/dist/purger/optimized/utils/componentAnalyzer.js.map +0 -1
  518. package/dist/tailwind/dist/purger/optimized/utils/files.d.cts +0 -2
  519. package/dist/tailwind/dist/purger/optimized/utils/files.d.ts +0 -2
  520. package/dist/tailwind/dist/purger/optimized/utils/files.js.map +0 -1
  521. package/dist/tailwind/dist/purger/optimized/utils/safelist.js.map +0 -1
  522. package/dist/tailwind/dist/purger.cjs +0 -6
  523. package/dist/tailwind/dist/purger.d.cts +0 -4
  524. package/dist/tailwind/dist/purger.d.ts +0 -4
  525. package/dist/tailwind/dist/purger.js +0 -4
  526. package/dist/tailwind/dist/runtimeConfig/hookMetadata.js.map +0 -1
  527. package/dist/tailwind/dist/tailwind/base/addColorModeVars.cjs +0 -19
  528. package/dist/tailwind/dist/tailwind/base/addColorModeVars.js.map +0 -1
  529. package/dist/tailwind/dist/tailwind/base/addColorModeVarsV2.js.map +0 -1
  530. package/dist/tailwind/dist/tailwind/base/addFontFaceDeclarations.js.map +0 -1
  531. package/dist/tailwind/dist/tailwind/base/addFontVars.js.map +0 -1
  532. package/dist/tailwind/dist/tailwind/base/addMotionVars.js.map +0 -1
  533. package/dist/tailwind/dist/tailwind/base/addScaleModeVars.js.map +0 -1
  534. package/dist/tailwind/dist/tailwind/components/getFocusRingStyles.js.map +0 -1
  535. package/dist/tailwind/dist/tailwind/components/getGroupedTextStyles.js.map +0 -1
  536. package/dist/tailwind/dist/tailwind/components/getHitTargetStyles.js.map +0 -1
  537. package/dist/tailwind/dist/tailwind/components/getIconStyles.js.map +0 -1
  538. package/dist/tailwind/dist/tailwind/components/getInputStyles.d.cts +0 -11
  539. package/dist/tailwind/dist/tailwind/components/getInputStyles.d.cts.map +0 -1
  540. package/dist/tailwind/dist/tailwind/components/getInputStyles.d.ts +0 -11
  541. package/dist/tailwind/dist/tailwind/components/getInputStyles.d.ts.map +0 -1
  542. package/dist/tailwind/dist/tailwind/components/getInputStyles.js.map +0 -1
  543. package/dist/tailwind/dist/tailwind/components/getResponsiveTextStyles.d.cts.map +0 -1
  544. package/dist/tailwind/dist/tailwind/components/getResponsiveTextStyles.d.ts.map +0 -1
  545. package/dist/tailwind/dist/tailwind/components/getResponsiveTextStyles.js.map +0 -1
  546. package/dist/tailwind/dist/tailwind/components/types.d.cts.map +0 -1
  547. package/dist/tailwind/dist/tailwind/components/types.d.ts.map +0 -1
  548. package/dist/tailwind/dist/tailwind/defaultTailwindThemeAsUdsConfig.d.cts.map +0 -1
  549. package/dist/tailwind/dist/tailwind/defaultTailwindThemeAsUdsConfig.d.ts.map +0 -1
  550. package/dist/tailwind/dist/tailwind/defaultTailwindThemeAsUdsConfig.js.map +0 -1
  551. package/dist/tailwind/dist/tailwind/plugins/a11y.js.map +0 -1
  552. package/dist/tailwind/dist/tailwind/plugins/blurBgFallback.js.map +0 -1
  553. package/dist/tailwind/dist/tailwind/plugins/borderRadius.js.map +0 -1
  554. package/dist/tailwind/dist/tailwind/plugins/borderWidth.js.map +0 -1
  555. package/dist/tailwind/dist/tailwind/plugins/breakpoints.js.map +0 -1
  556. package/dist/tailwind/dist/tailwind/plugins/colors.js.map +0 -1
  557. package/dist/tailwind/dist/tailwind/plugins/components.js.map +0 -1
  558. package/dist/tailwind/dist/tailwind/plugins/elevation.js.map +0 -1
  559. package/dist/tailwind/dist/tailwind/plugins/getTailwindAsUdsColors.js.map +0 -1
  560. package/dist/tailwind/dist/tailwind/plugins/icons.js.map +0 -1
  561. package/dist/tailwind/dist/tailwind/plugins/input.js.map +0 -1
  562. package/dist/tailwind/dist/tailwind/plugins/motion.js.map +0 -1
  563. package/dist/tailwind/dist/tailwind/plugins/nestedBorderRadius.js.map +0 -1
  564. package/dist/tailwind/dist/tailwind/plugins/scaleMode.js.map +0 -1
  565. package/dist/tailwind/dist/tailwind/plugins/shadows.js.map +0 -1
  566. package/dist/tailwind/dist/tailwind/plugins/sizing.js.map +0 -1
  567. package/dist/tailwind/dist/tailwind/plugins/spacing.js.map +0 -1
  568. package/dist/tailwind/dist/tailwind/plugins/typography.js.map +0 -1
  569. package/dist/tailwind/dist/tailwind/theme/getFontFamilyTheme.js.map +0 -1
  570. package/dist/tailwind/dist/tailwind/utils/addFontsPlugin.d.cts.map +0 -1
  571. package/dist/tailwind/dist/tailwind/utils/addFontsPlugin.d.ts.map +0 -1
  572. package/dist/tailwind/dist/tailwind/utils/addFontsPlugin.js.map +0 -1
  573. package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.d.cts.map +0 -1
  574. package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.d.ts.map +0 -1
  575. package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.js.map +0 -1
  576. package/dist/tailwind/dist/tailwind/utils/getColorModeStyles.d.cts.map +0 -1
  577. package/dist/tailwind/dist/tailwind/utils/getColorModeStyles.d.ts.map +0 -1
  578. package/dist/tailwind/dist/tailwind/utils/getColorModeStyles.js.map +0 -1
  579. package/dist/tailwind/dist/tailwind/utils/getElevationStyles.d.cts +0 -13
  580. package/dist/tailwind/dist/tailwind/utils/getElevationStyles.d.cts.map +0 -1
  581. package/dist/tailwind/dist/tailwind/utils/getElevationStyles.d.ts +0 -13
  582. package/dist/tailwind/dist/tailwind/utils/getElevationStyles.d.ts.map +0 -1
  583. package/dist/tailwind/dist/tailwind/utils/getElevationStyles.js.map +0 -1
  584. package/dist/tailwind/dist/tailwind/utils/getFontFaceDeclarations.d.cts.map +0 -1
  585. package/dist/tailwind/dist/tailwind/utils/getFontFaceDeclarations.d.ts.map +0 -1
  586. package/dist/tailwind/dist/tailwind/utils/getFontFaceDeclarations.js.map +0 -1
  587. package/dist/tailwind/dist/tailwind/utils/getFontStyles.d.cts.map +0 -1
  588. package/dist/tailwind/dist/tailwind/utils/getFontStyles.d.ts.map +0 -1
  589. package/dist/tailwind/dist/tailwind/utils/getFontStyles.js.map +0 -1
  590. package/dist/tailwind/dist/tailwind/utils/getMotionStyles.d.cts.map +0 -1
  591. package/dist/tailwind/dist/tailwind/utils/getMotionStyles.d.ts.map +0 -1
  592. package/dist/tailwind/dist/tailwind/utils/getMotionStyles.js.map +0 -1
  593. package/dist/tailwind/dist/tailwind/utils/getNestedBorderRadiusUtilities.js.map +0 -1
  594. package/dist/tailwind/dist/tailwind/utils/getScaleModeStyles.d.cts.map +0 -1
  595. package/dist/tailwind/dist/tailwind/utils/getScaleModeStyles.d.ts.map +0 -1
  596. package/dist/tailwind/dist/tailwind/utils/getScaleModeStyles.js.map +0 -1
  597. package/dist/tailwind/dist/tailwind/utils/getShadowPresetValues.d.cts.map +0 -1
  598. package/dist/tailwind/dist/tailwind/utils/getShadowPresetValues.d.ts.map +0 -1
  599. package/dist/tailwind/dist/tailwind/utils/getShadowPresetValues.js.map +0 -1
  600. package/dist/tailwind/dist/tailwind/utils/getShadowStyles.d.cts +0 -22
  601. package/dist/tailwind/dist/tailwind/utils/getShadowStyles.d.cts.map +0 -1
  602. package/dist/tailwind/dist/tailwind/utils/getShadowStyles.d.ts +0 -22
  603. package/dist/tailwind/dist/tailwind/utils/getShadowStyles.d.ts.map +0 -1
  604. package/dist/tailwind/dist/tailwind/utils/getShadowStyles.js.map +0 -1
  605. package/dist/tailwind/dist/types/dist/index.d.cts.map +0 -1
  606. package/dist/tailwind/dist/types/dist/index.d.ts.map +0 -1
  607. package/dist/tailwind/dist/utils/assertUnreachable.cjs +0 -7
  608. package/dist/tailwind/dist/utils/assertUnreachable.js +0 -9
  609. package/dist/tailwind/dist/utils/assertUnreachable.js.map +0 -1
  610. package/dist/tailwind/dist/utils/entries.cjs +0 -7
  611. package/dist/tailwind/dist/utils/entries.js +0 -9
  612. package/dist/tailwind/dist/utils/entries.js.map +0 -1
  613. package/dist/tailwind/dist/utils/entryPoints.js.map +0 -1
  614. package/dist/tailwind/dist/utils/fromEntries.cjs +0 -15
  615. package/dist/tailwind/dist/utils/fromEntries.js +0 -17
  616. package/dist/tailwind/dist/utils/fromEntries.js.map +0 -1
  617. package/dist/tailwind/dist/utils/generatePurgeCSSData.cjs +0 -185
  618. package/dist/tailwind/dist/utils/generatePurgeCSSData.js +0 -178
  619. package/dist/tailwind/dist/utils/generatePurgeCSSData.js.map +0 -1
  620. package/dist/tailwind/dist/utils/mapValues.cjs +0 -10
  621. package/dist/tailwind/dist/utils/mapValues.js +0 -12
  622. package/dist/tailwind/dist/utils/mapValues.js.map +0 -1
  623. package/dist/tailwind/dist/utils/opacity.js.map +0 -1
  624. package/dist/tailwind/dist/utils/optimizeCSS.js.map +0 -1
  625. package/dist/tailwind/dist/utils/parseTokens.d.cts.map +0 -1
  626. package/dist/tailwind/dist/utils/parseTokens.d.ts.map +0 -1
  627. package/dist/tailwind/dist/utils/parseTokens.js.map +0 -1
  628. package/dist/tailwind/dist/utils/postcssPreserveVars.js.map +0 -1
  629. package/dist/tailwind/dist/utils/tsMorph.js.map +0 -1
  630. package/dist/tailwind/dist/utils.cjs +0 -24
  631. package/dist/tailwind/dist/utils.d.cts +0 -12
  632. package/dist/tailwind/dist/utils.d.ts +0 -12
  633. package/dist/tailwind/dist/utils.js +0 -12
  634. package/dist/tailwind/utils.cjs +0 -24
  635. package/dist/tailwind/utils.d.cts +0 -12
  636. package/dist/tailwind/utils.d.ts +0 -12
  637. package/dist/tailwind/utils.js +0 -12
  638. package/dist/utils/assertUnreachable.d.cts +0 -5
  639. package/dist/utils/assertUnreachable.d.ts +0 -5
  640. package/dist/utils/entries.d.cts +0 -5
  641. package/dist/utils/entries.d.ts +0 -5
  642. package/dist/utils/fromEntries.d.cts +0 -13
  643. package/dist/utils/fromEntries.d.ts +0 -13
  644. package/dist/utils/mapValues.d.cts +0 -6
  645. package/dist/utils/mapValues.d.ts +0 -6
  646. /package/dist/{tailwind/dist/purger/optimized/ast → css/dist/packages/config/dist}/index.d.cts +0 -0
  647. /package/dist/{tailwind/dist/purger/optimized/ast → css/dist/packages/config/dist}/index.d.ts +0 -0
  648. /package/dist/{tailwind/dist/css/purgeWorker.d.cts → tailwind-v3/dist/purger/legacy/purgeFromCode.d.cts} +0 -0
  649. /package/dist/{tailwind/dist/css/purgeWorker.d.ts → tailwind-v3/dist/purger/legacy/purgeFromCode.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"componentAnalyzer.js","names":[],"sources":["../../../../src/purger/optimized/utils/componentAnalyzer.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport path from 'node:path';\n\nimport { SPRING_MOTION_DEFAULTS } from '@yahoo/uds-motion-tokens';\nimport fg from 'fast-glob';\nimport type { ObjectLiteralExpression, Project, SourceFile } from 'ts-morph';\nimport { Node, SyntaxKind } from 'ts-morph';\n\nimport { getRuntimeHookConfig } from '../../../runtimeConfig/hookMetadata';\nimport {\n getAllowedEntryFileGlobPatterns,\n stripAllowedEntryFileExtension,\n} from '../../../utils/entryPoints';\n\ninterface ComponentInfo {\n name: string;\n filePath: string;\n /** Default values from function parameter destructuring (e.g., display = 'flex') */\n defaultProps: Map<string, string>;\n /** Props passed to getStyles() calls */\n styleProps: string[];\n /** Hardcoded literal values passed directly to getStyles() (e.g., flex: 'none') */\n getStylesLiterals: Map<string, string>;\n /** Raw Tailwind class literals from cx() calls (e.g., 'absolute', 'opacity-0') */\n cxLiterals: string[];\n /** Other UDS components used internally */\n internalComponents: string[];\n /** Literal prop values passed to internal UDS components (e.g., <Icon color=\"current\" />) */\n internalComponentProps: Map<string, Map<string, string[]>>;\n /** Maps prop names to variant keys (e.g., variant -> [buttonVariantRoot, buttonVariantIcon]) */\n propToVariantKeys: Map<string, string[]>;\n /** Runtime-config-backed defaults for component props (e.g., size -> toast.defaultSize) */\n runtimeConfigDefaultProps: Map<string, string>;\n /** Runtime-config selectors used directly in getStyles() variant keys */\n runtimeConfigGetStyles: Map<string, string[]>;\n /** Runtime-config selectors passed to internal UDS component props */\n runtimeConfigInternalComponentProps: Map<string, Map<string, string[]>>;\n /**\n * Motion CSS variable prefixes used by this component.\n * e.g., ['--uds-motion-bouncy-4-', '--uds-motion-smooth-3-']\n * Empty array means no motion vars needed.\n */\n motionVarPrefixes: string[];\n}\n\ntype RuntimeConfigBinding = {\n selector: string;\n};\n\n/**\n * Known UDS component names (populated by scanning)\n */\nlet knownComponents: Set<string> | null = null;\n\n/**\n * Map of component name -> file path\n */\nlet componentPaths: Map<string, string> | null = null;\nlet scannedComponentsDir: string | null = null;\nconst hasImportQuery = (moduleSpecifier: string): boolean => moduleSpecifier.includes('?');\nconst scanComponentFilePaths = async (componentsDir: string): Promise<string[]> =>\n fg(getAllowedEntryFileGlobPatterns(), {\n cwd: componentsDir,\n absolute: true,\n });\n\n/**\n * Scan src/components to build a map of all component files\n */\nconst scanComponentFiles = async (componentsDir: string): Promise<Map<string, string>> => {\n if (componentPaths && scannedComponentsDir === componentsDir) {\n return componentPaths;\n }\n\n componentPaths = new Map();\n knownComponents = new Set();\n scannedComponentsDir = componentsDir;\n\n const nextComponentPaths = componentPaths;\n const nextKnownComponents = knownComponents;\n\n const files = await scanComponentFilePaths(componentsDir);\n\n files.forEach((file) => {\n // Skip test files and index files\n if (\n file.includes('.test.') ||\n path.basename(stripAllowedEntryFileExtension(file)) === 'index'\n ) {\n return;\n }\n\n const fileName = path.basename(stripAllowedEntryFileExtension(file));\n\n // Use PascalCase file names as component names\n if (/^[A-Z]/.test(fileName)) {\n nextComponentPaths.set(fileName, file);\n nextKnownComponents.add(fileName);\n }\n });\n\n return nextComponentPaths;\n};\n\n/**\n * Get the file path for a component by name\n */\nconst getComponentPath = async (\n componentName: string,\n componentsDir: string,\n): Promise<string | null> => {\n const paths = await scanComponentFiles(componentsDir);\n return paths.get(componentName) ?? null;\n};\n\n/**\n * Analyze an object literal for variant key mappings.\n * Handles:\n * - Direct property assignments: { fontSize: variant } -> variant maps to fontSize\n * - Nullish coalescing: { fontSize: fontSize ?? variant } -> variant maps to fontSize\n * - Conditional spreads: ...(condition ? { props } : {}) -> recursively analyze props\n */\nconst analyzeObjectForVariantMappings = (\n objLiteral: ObjectLiteralExpression,\n styleProps: string[],\n getStylesLiterals: Map<string, string>,\n propToVariantKeys: Map<string, string[]>,\n sourceFile: SourceFile,\n): void => {\n objLiteral.getProperties().forEach((prop) => {\n if (Node.isPropertyAssignment(prop)) {\n analyzeVariantPropertyAssignment(prop, styleProps, getStylesLiterals, propToVariantKeys);\n return;\n }\n\n if (Node.isSpreadAssignment(prop)) {\n analyzeVariantSpreadAssignment(\n prop,\n styleProps,\n getStylesLiterals,\n propToVariantKeys,\n sourceFile,\n );\n }\n });\n};\n\nconst addStyleProp = (styleProps: string[], variantKey: string): void => {\n if (!styleProps.includes(variantKey)) {\n styleProps.push(variantKey);\n }\n};\n\nconst addPropToVariantKeyMapping = (\n propToVariantKeys: Map<string, string[]>,\n propName: string,\n variantKey: string,\n): void => {\n const existing = propToVariantKeys.get(propName) ?? [];\n if (!existing.includes(variantKey)) {\n propToVariantKeys.set(propName, [...existing, variantKey]);\n }\n};\n\nconst addRuntimeSelector = (target: Map<string, string[]>, key: string, selector: string): void => {\n const existing = target.get(key) ?? [];\n if (!existing.includes(selector)) {\n target.set(key, [...existing, selector]);\n }\n};\n\nconst getExpressionWithoutWrappers = (node: Node): Node => {\n if (Node.isParenthesizedExpression(node)) {\n return getExpressionWithoutWrappers(node.getExpression());\n }\n\n if (Node.isAsExpression(node) || Node.isTypeAssertion(node) || Node.isSatisfiesExpression(node)) {\n return getExpressionWithoutWrappers(node.getExpression());\n }\n\n return node;\n};\n\nconst applyRuntimeSelectorIndex = (\n selector: string,\n indexKey: string,\n isIdentifierIndex = false,\n): string => {\n if (selector.includes('${')) {\n return selector;\n }\n\n return isIdentifierIndex ? selector + '.${' + indexKey + '}' : `${selector}.${indexKey}`;\n};\n\nconst resolveRuntimeBindingFromExpression = (\n expr: Node,\n runtimeBindings: Map<string, RuntimeConfigBinding>,\n): RuntimeConfigBinding | null => {\n const normalized = getExpressionWithoutWrappers(expr);\n\n if (Node.isIdentifier(normalized)) {\n return runtimeBindings.get(normalized.getText()) ?? null;\n }\n\n if (Node.isElementAccessExpression(normalized)) {\n const target = resolveRuntimeBindingFromExpression(normalized.getExpression(), runtimeBindings);\n if (!target) {\n return null;\n }\n\n const argumentExpression = normalized.getArgumentExpression();\n if (!argumentExpression) {\n return null;\n }\n\n const argument = getExpressionWithoutWrappers(argumentExpression);\n\n if (Node.isStringLiteral(argument)) {\n return {\n selector: applyRuntimeSelectorIndex(target.selector, argument.getLiteralValue()),\n };\n }\n\n if (Node.isIdentifier(argument)) {\n return {\n selector: applyRuntimeSelectorIndex(target.selector, argument.getText(), true),\n };\n }\n }\n\n if (Node.isPropertyAccessExpression(normalized)) {\n const target = resolveRuntimeBindingFromExpression(normalized.getExpression(), runtimeBindings);\n if (!target) {\n return null;\n }\n\n return { selector: applyRuntimeSelectorIndex(target.selector, normalized.getName()) };\n }\n\n return null;\n};\n\nconst collectRuntimeSelectorsFromExpression = (\n expr: Node,\n runtimeBindings: Map<string, RuntimeConfigBinding>,\n): string[] => {\n const normalized = getExpressionWithoutWrappers(expr);\n const resolvedBinding = resolveRuntimeBindingFromExpression(normalized, runtimeBindings);\n if (resolvedBinding) {\n return [resolvedBinding.selector];\n }\n\n if (Node.isConditionalExpression(normalized)) {\n return [\n ...collectRuntimeSelectorsFromExpression(normalized.getWhenTrue(), runtimeBindings),\n ...collectRuntimeSelectorsFromExpression(normalized.getWhenFalse(), runtimeBindings),\n ];\n }\n\n if (Node.isBinaryExpression(normalized)) {\n return [\n ...collectRuntimeSelectorsFromExpression(normalized.getLeft(), runtimeBindings),\n ...collectRuntimeSelectorsFromExpression(normalized.getRight(), runtimeBindings),\n ];\n }\n\n return [];\n};\n\nconst collectRuntimeConfigBindings = (\n sourceFile: SourceFile,\n runtimeBindings: Map<string, RuntimeConfigBinding>,\n runtimeConfigDefaultProps: Map<string, string>,\n): void => {\n sourceFile.getDescendantsOfKind(SyntaxKind.VariableDeclaration).forEach((declaration) => {\n const initializer = declaration.getInitializer();\n if (!initializer) {\n return;\n }\n\n const normalizedInitializer = getExpressionWithoutWrappers(initializer);\n const nameNode = declaration.getNameNode();\n\n if (Node.isObjectBindingPattern(nameNode) && Node.isCallExpression(normalizedInitializer)) {\n const hookName = normalizedInitializer.getExpression().getText();\n const hookConfig = getRuntimeHookConfig(hookName);\n if (!hookConfig) {\n return;\n }\n\n Object.entries(hookConfig.defaultProps).forEach(([propName, selector]) => {\n runtimeConfigDefaultProps.set(propName, selector);\n });\n\n nameNode.getElements().forEach((element) => {\n const fieldName = element.getPropertyNameNode()?.getText() ?? element.getName();\n const localName = element.getName();\n const fieldConfig = hookConfig.fields[fieldName as keyof typeof hookConfig.fields];\n if (!fieldConfig) {\n return;\n }\n\n runtimeBindings.set(localName, { selector: fieldConfig.bindingSelector });\n });\n\n return;\n }\n\n if (!Node.isIdentifier(nameNode)) {\n return;\n }\n\n const resolvedBinding = resolveRuntimeBindingFromExpression(\n normalizedInitializer,\n runtimeBindings,\n );\n if (resolvedBinding) {\n runtimeBindings.set(nameNode.getText(), resolvedBinding);\n }\n });\n};\n\nconst extractFallbackIdentifier = (initializer: Node): string | null => {\n if (!Node.isBinaryExpression(initializer)) {\n return null;\n }\n\n const operatorKind = initializer.getOperatorToken().getKind();\n const isFallbackOperator =\n operatorKind === SyntaxKind.QuestionQuestionToken || operatorKind === SyntaxKind.BarBarToken;\n\n if (!isFallbackOperator || !Node.isIdentifier(initializer.getRight())) {\n return null;\n }\n\n return initializer.getRight().getText();\n};\n\nconst analyzeVariantPropertyAssignment = (\n prop: Node & { getName: () => string; getInitializer: () => Node | undefined },\n styleProps: string[],\n getStylesLiterals: Map<string, string>,\n propToVariantKeys: Map<string, string[]>,\n): void => {\n const variantKey = prop.getName();\n addStyleProp(styleProps, variantKey);\n\n const initializer = prop.getInitializer();\n if (!initializer) {\n return;\n }\n\n if (Node.isStringLiteral(initializer)) {\n getStylesLiterals.set(variantKey, initializer.getLiteralValue());\n }\n\n if (Node.isIdentifier(initializer)) {\n addPropToVariantKeyMapping(propToVariantKeys, initializer.getText(), variantKey);\n }\n\n const fallbackIdentifier = extractFallbackIdentifier(initializer);\n if (fallbackIdentifier) {\n addPropToVariantKeyMapping(propToVariantKeys, fallbackIdentifier, variantKey);\n }\n};\n\nconst findVariableObjectLiteral = (\n sourceFile: SourceFile,\n variableName: string,\n): ObjectLiteralExpression | null => {\n const declaration = sourceFile\n .getDescendantsOfKind(SyntaxKind.VariableDeclaration)\n .find((candidate) => candidate.getName() === variableName);\n const initializer = declaration?.getInitializer();\n\n return initializer && Node.isObjectLiteralExpression(initializer) ? initializer : null;\n};\n\nconst analyzeVariantSpreadAssignment = (\n prop: Node & { getExpression: () => Node },\n styleProps: string[],\n getStylesLiterals: Map<string, string>,\n propToVariantKeys: Map<string, string[]>,\n sourceFile: SourceFile,\n): void => {\n const spreadExpr = prop.getExpression();\n\n if (Node.isParenthesizedExpression(spreadExpr)) {\n const conditionalExpr = spreadExpr.getExpression();\n if (Node.isConditionalExpression(conditionalExpr)) {\n const whenTrue = conditionalExpr.getWhenTrue();\n if (!Node.isObjectLiteralExpression(whenTrue)) {\n return;\n }\n\n analyzeObjectForVariantMappings(\n whenTrue,\n styleProps,\n getStylesLiterals,\n propToVariantKeys,\n sourceFile,\n );\n }\n }\n\n if (Node.isIdentifier(spreadExpr)) {\n const objectLiteral = findVariableObjectLiteral(sourceFile, spreadExpr.getText());\n if (objectLiteral) {\n analyzeObjectForVariantMappings(\n objectLiteral,\n styleProps,\n getStylesLiterals,\n propToVariantKeys,\n sourceFile,\n );\n }\n }\n};\n\n/**\n * Analyzes a UDS component file to extract:\n * 1. Default prop values (e.g., display = 'flex')\n * 2. Props passed to getStyles()\n * 3. Internal UDS component usage\n */\nconst analyzeComponent = (project: Project, componentPath: string): ComponentInfo | null => {\n const sourceFile = project.getSourceFile(componentPath);\n if (!sourceFile) {\n return null;\n }\n\n const componentName = path.basename(stripAllowedEntryFileExtension(componentPath));\n const defaultProps = new Map<string, string>();\n const componentPropNames = new Set<string>(); // All prop names (not just defaults)\n const styleProps: string[] = [];\n const getStylesLiterals = new Map<string, string>();\n const cxLiterals: string[] = [];\n const internalComponents: string[] = [];\n const internalComponentProps = new Map<string, Map<string, string[]>>();\n const propToVariantKeys = new Map<string, string[]>();\n const runtimeConfigDefaultProps = new Map<string, string>();\n const runtimeConfigGetStyles = new Map<string, string[]>();\n const runtimeConfigInternalComponentProps = new Map<string, Map<string, string[]>>();\n const runtimeBindings = new Map<string, RuntimeConfigBinding>();\n\n collectComponentDefaultsAndProps(sourceFile, defaultProps, componentPropNames);\n\n collectRuntimeConfigBindings(sourceFile, runtimeBindings, runtimeConfigDefaultProps);\n\n collectGetStylesMetadata(\n sourceFile,\n styleProps,\n getStylesLiterals,\n propToVariantKeys,\n runtimeBindings,\n runtimeConfigGetStyles,\n );\n\n collectCxLiterals(sourceFile, cxLiterals);\n collectIntrinsicClassNameLiterals(sourceFile, cxLiterals);\n\n // Find internal UDS component usage and their prop values\n // Also detect prop aliasing (e.g., gap -> columnGap, rowGap in VStack)\n extractInternalComponents(\n sourceFile,\n internalComponents,\n internalComponentProps,\n runtimeConfigInternalComponentProps,\n propToVariantKeys,\n componentPropNames,\n runtimeBindings,\n );\n\n // Extract motion CSS variable prefixes from SpringMotionConfig usage\n const motionVarPrefixes = extractMotionVarPrefixes(sourceFile);\n\n // Tab and TabList read `variant` from Tabs context (default 'primary' in tabsContext), not from\n // component props, so destructuring defaults miss it. Record the context default for purge.\n const tabsContextVariantComponents = new Set(['Tab', 'TabList']);\n if (\n tabsContextVariantComponents.has(componentName) &&\n propToVariantKeys.has('variant') &&\n !defaultProps.has('variant')\n ) {\n defaultProps.set('variant', 'primary');\n }\n\n return {\n name: componentName,\n filePath: componentPath,\n defaultProps,\n styleProps,\n getStylesLiterals,\n cxLiterals,\n internalComponents,\n internalComponentProps,\n propToVariantKeys,\n runtimeConfigDefaultProps,\n runtimeConfigGetStyles,\n runtimeConfigInternalComponentProps,\n motionVarPrefixes,\n };\n};\n\nconst getComponentFunctionNodes = (sourceFile: SourceFile): Node[] => [\n ...sourceFile.getFunctions(),\n ...sourceFile.getVariableDeclarations().filter((declaration) => {\n const initializer = declaration.getInitializer();\n return initializer && (Node.isArrowFunction(initializer) || Node.isCallExpression(initializer));\n }),\n];\n\nconst collectComponentDefaultsAndProps = (\n sourceFile: SourceFile,\n defaultProps: Map<string, string>,\n componentPropNames: Set<string>,\n): void => {\n getComponentFunctionNodes(sourceFile).forEach((fn) => {\n if (Node.isFunctionDeclaration(fn)) {\n extractDefaultsFromFunction(fn, defaultProps);\n extractAllPropNames(fn, componentPropNames);\n return;\n }\n\n if (!Node.isVariableDeclaration(fn)) {\n return;\n }\n\n const initializer = fn.getInitializer();\n if (!initializer) {\n return;\n }\n\n if (Node.isCallExpression(initializer)) {\n initializer.getArguments().forEach((arg) => {\n if (Node.isFunctionExpression(arg) || Node.isArrowFunction(arg)) {\n extractDefaultsFromFunction(arg, defaultProps);\n extractAllPropNames(arg, componentPropNames);\n }\n });\n }\n\n if (Node.isArrowFunction(initializer)) {\n extractDefaultsFromFunction(initializer, defaultProps);\n extractAllPropNames(initializer, componentPropNames);\n }\n });\n};\n\nconst extractConditionalStringLiterals = (node: Node): string[] => {\n if (Node.isStringLiteral(node)) {\n return [node.getLiteralValue()];\n }\n\n if (Node.isConditionalExpression(node)) {\n return [\n ...extractConditionalStringLiterals(node.getWhenTrue()),\n ...extractConditionalStringLiterals(node.getWhenFalse()),\n ];\n }\n\n return [];\n};\n\nconst storeVariantLiteralValues = (\n variantKey: string,\n literalValues: string[],\n getStylesLiterals: Map<string, string>,\n): void => {\n literalValues.forEach((value, index) => {\n const literalKey = index === 0 ? variantKey : `${variantKey}:${index}`;\n getStylesLiterals.set(literalKey, value);\n });\n};\n\n/** Values already recorded for `variantKey` (base key plus `variantKey:1`, `:2`, …). */\nconst getExistingLiteralValuesForVariantKey = (\n variantKey: string,\n getStylesLiterals: Map<string, string>,\n): string[] => {\n const values: string[] = [];\n const base = getStylesLiterals.get(variantKey);\n if (base !== undefined) {\n values.push(base);\n }\n let index = 1;\n while (true) {\n const key = `${variantKey}:${index}`;\n const next = getStylesLiterals.get(key);\n if (next === undefined) {\n break;\n }\n values.push(next);\n index++;\n }\n return values;\n};\n\n/**\n * Record a string literal for a variant key from a getStyles() call.\n * Multiple calls with the same key (e.g. Tab's active-off vs active-on classes) must\n * all be kept; a plain Map set would drop earlier literals.\n */\nconst appendGetStylesStringLiteral = (\n variantKey: string,\n value: string,\n getStylesLiterals: Map<string, string>,\n): void => {\n if (getExistingLiteralValuesForVariantKey(variantKey, getStylesLiterals).includes(value)) {\n return;\n }\n\n let nextIndex = 0;\n while (true) {\n const key = nextIndex === 0 ? variantKey : `${variantKey}:${nextIndex}`;\n if (!getStylesLiterals.has(key)) {\n getStylesLiterals.set(key, value);\n return;\n }\n nextIndex++;\n }\n};\n\nconst handleGetStylesPropertyAssignment = (\n prop: Node & { getName: () => string; getInitializer: () => Node | undefined },\n styleProps: string[],\n getStylesLiterals: Map<string, string>,\n propToVariantKeys: Map<string, string[]>,\n runtimeBindings: Map<string, RuntimeConfigBinding>,\n runtimeConfigGetStyles: Map<string, string[]>,\n): void => {\n const variantKey = prop.getName();\n addStyleProp(styleProps, variantKey);\n\n const initializer = prop.getInitializer();\n if (!initializer) {\n return;\n }\n\n if (Node.isStringLiteral(initializer)) {\n appendGetStylesStringLiteral(variantKey, initializer.getLiteralValue(), getStylesLiterals);\n }\n\n if (Node.isIdentifier(initializer)) {\n addPropToVariantKeyMapping(propToVariantKeys, initializer.getText(), variantKey);\n }\n\n collectRuntimeSelectorsFromExpression(initializer, runtimeBindings).forEach((selector) => {\n addRuntimeSelector(runtimeConfigGetStyles, variantKey, selector);\n });\n\n const fallbackIdentifier = extractFallbackIdentifier(initializer);\n if (fallbackIdentifier) {\n addPropToVariantKeyMapping(propToVariantKeys, fallbackIdentifier, variantKey);\n }\n\n if (Node.isConditionalExpression(initializer)) {\n const allValues = [\n ...extractConditionalStringLiterals(initializer.getWhenTrue()),\n ...extractConditionalStringLiterals(initializer.getWhenFalse()),\n ];\n storeVariantLiteralValues(variantKey, allValues, getStylesLiterals);\n }\n};\n\nconst handleGetStylesObjectProperty = (\n prop: Node,\n styleProps: string[],\n getStylesLiterals: Map<string, string>,\n propToVariantKeys: Map<string, string[]>,\n sourceFile: SourceFile,\n runtimeBindings: Map<string, RuntimeConfigBinding>,\n runtimeConfigGetStyles: Map<string, string[]>,\n): void => {\n if (Node.isPropertyAssignment(prop)) {\n handleGetStylesPropertyAssignment(\n prop,\n styleProps,\n getStylesLiterals,\n propToVariantKeys,\n runtimeBindings,\n runtimeConfigGetStyles,\n );\n return;\n }\n\n if (Node.isShorthandPropertyAssignment(prop)) {\n addStyleProp(styleProps, prop.getName());\n return;\n }\n\n if (Node.isSpreadAssignment(prop) && Node.isIdentifier(prop.getExpression())) {\n const objectLiteral = findVariableObjectLiteral(sourceFile, prop.getExpression().getText());\n if (objectLiteral) {\n analyzeObjectForVariantMappings(\n objectLiteral,\n styleProps,\n getStylesLiterals,\n propToVariantKeys,\n sourceFile,\n );\n }\n }\n};\n\nconst collectGetStylesMetadata = (\n sourceFile: SourceFile,\n styleProps: string[],\n getStylesLiterals: Map<string, string>,\n propToVariantKeys: Map<string, string[]>,\n runtimeBindings: Map<string, RuntimeConfigBinding>,\n runtimeConfigGetStyles: Map<string, string[]>,\n): void => {\n sourceFile\n .getDescendantsOfKind(SyntaxKind.CallExpression)\n .filter((call) => call.getExpression().getText() === 'getStyles')\n .forEach((call) => {\n const args = call.getArguments();\n if (args.length === 0 || !Node.isObjectLiteralExpression(args[0])) {\n return;\n }\n\n args[0].getProperties().forEach((prop) => {\n handleGetStylesObjectProperty(\n prop,\n styleProps,\n getStylesLiterals,\n propToVariantKeys,\n sourceFile,\n runtimeBindings,\n runtimeConfigGetStyles,\n );\n });\n });\n};\n\nconst collectCxLiterals = (sourceFile: SourceFile, cxLiterals: string[]): void => {\n sourceFile\n .getDescendantsOfKind(SyntaxKind.CallExpression)\n .filter((call) => call.getExpression().getText() === 'cx')\n .forEach((call) => {\n call.getArguments().forEach((arg) => extractCxStringLiterals(arg, cxLiterals));\n });\n};\n\nconst pushUniqueClasses = (target: string[], rawValue: string): void => {\n rawValue\n .split(/\\s+/)\n .filter(Boolean)\n .forEach((className) => {\n if (!target.includes(className)) {\n target.push(className);\n }\n });\n};\n\nconst collectIntrinsicClassNameLiterals = (sourceFile: SourceFile, cxLiterals: string[]): void => {\n const jsxElements = [\n ...sourceFile.getDescendantsOfKind(SyntaxKind.JsxSelfClosingElement),\n ...sourceFile.getDescendantsOfKind(SyntaxKind.JsxOpeningElement),\n ];\n\n jsxElements.forEach((element) => {\n const tagName = element.getTagNameNode().getText();\n if (!/^[a-z]/.test(tagName)) {\n return;\n }\n\n element.getAttributes().forEach((attr) => {\n if (!Node.isJsxAttribute(attr) || attr.getNameNode().getText() !== 'className') {\n return;\n }\n\n const initializer = attr.getInitializer();\n if (!initializer) {\n return;\n }\n\n if (Node.isStringLiteral(initializer)) {\n pushUniqueClasses(cxLiterals, initializer.getLiteralValue());\n return;\n }\n\n if (!Node.isJsxExpression(initializer)) {\n return;\n }\n\n const expr = initializer.getExpression();\n if (expr && Node.isStringLiteral(expr)) {\n pushUniqueClasses(cxLiterals, expr.getLiteralValue());\n }\n });\n });\n};\n\n/**\n * Extract UDS components used internally in the file and their prop values.\n * Also detects prop aliasing (e.g., columnGap={gap} means gap -> columnGap).\n */\nconst extractInternalComponents = (\n sourceFile: SourceFile,\n internalComponents: string[],\n internalComponentProps: Map<string, Map<string, string[]>>,\n runtimeConfigInternalComponentProps: Map<string, Map<string, string[]>>,\n propToVariantKeys: Map<string, string[]>,\n componentProps: Set<string>,\n runtimeBindings: Map<string, RuntimeConfigBinding>,\n): void => {\n collectImportedInternalComponents(sourceFile, internalComponents);\n collectInternalComponentUsages(\n sourceFile,\n internalComponents,\n internalComponentProps,\n runtimeConfigInternalComponentProps,\n propToVariantKeys,\n componentProps,\n runtimeBindings,\n );\n};\n\nconst isInternalUdsModule = (moduleSpec: string): boolean => {\n const isUdsImport =\n moduleSpec.startsWith('@yahoo/uds') ||\n moduleSpec.startsWith('../') ||\n moduleSpec.startsWith('./');\n\n return isUdsImport && (moduleSpec.includes('/components/') || moduleSpec === '@yahoo/uds');\n};\n\nconst pushUniqueComponentName = (components: string[], name: string): void => {\n if (/^[A-Z]/.test(name) && !components.includes(name)) {\n components.push(name);\n }\n};\n\nconst collectImportedInternalComponents = (\n sourceFile: SourceFile,\n internalComponents: string[],\n): void => {\n sourceFile.getImportDeclarations().forEach((importDecl) => {\n if (!isInternalUdsModule(importDecl.getModuleSpecifierValue())) {\n return;\n }\n\n importDecl\n .getNamedImports()\n .forEach((namedImport) => pushUniqueComponentName(internalComponents, namedImport.getName()));\n });\n};\n\nconst getOrCreateComponentPropsMap = (\n internalComponentProps: Map<string, Map<string, string[]>>,\n componentName: string,\n): Map<string, string[]> => {\n const existing = internalComponentProps.get(componentName);\n if (existing) {\n return existing;\n }\n\n const created = new Map<string, string[]>();\n internalComponentProps.set(componentName, created);\n return created;\n};\n\nconst extractJsxAttributeLiteralValues = (\n attr: Node,\n componentProps: Set<string>,\n propToVariantKeys: Map<string, string[]>,\n): { propName: string; values: string[] } | null => {\n if (!Node.isJsxAttribute(attr)) {\n return null;\n }\n\n const propName = attr.getNameNode().getText();\n const initializer = attr.getInitializer();\n if (!initializer) {\n return { propName, values: [] };\n }\n\n if (Node.isStringLiteral(initializer)) {\n return { propName, values: [initializer.getLiteralValue()] };\n }\n\n if (!Node.isJsxExpression(initializer)) {\n return { propName, values: [] };\n }\n\n const expr = initializer.getExpression();\n if (expr && Node.isStringLiteral(expr)) {\n return { propName, values: [expr.getLiteralValue()] };\n }\n\n if (expr && Node.isIdentifier(expr)) {\n const identifierName = expr.getText();\n if (componentProps.has(identifierName) && identifierName !== propName) {\n addPropToVariantKeyMapping(propToVariantKeys, identifierName, propName);\n }\n }\n\n return { propName, values: [] };\n};\n\nconst collectInternalComponentUsages = (\n sourceFile: SourceFile,\n internalComponents: string[],\n internalComponentProps: Map<string, Map<string, string[]>>,\n runtimeConfigInternalComponentProps: Map<string, Map<string, string[]>>,\n propToVariantKeys: Map<string, string[]>,\n componentProps: Set<string>,\n runtimeBindings: Map<string, RuntimeConfigBinding>,\n): void => {\n const jsxElements = [\n ...sourceFile.getDescendantsOfKind(SyntaxKind.JsxSelfClosingElement),\n ...sourceFile.getDescendantsOfKind(SyntaxKind.JsxOpeningElement),\n ];\n\n jsxElements.forEach((element) => {\n const tagName = element.getTagNameNode().getText();\n if (!/^[A-Z]/.test(tagName)) {\n return;\n }\n\n pushUniqueComponentName(internalComponents, tagName);\n\n element.getAttributes().forEach((attr) => {\n if (Node.isJsxAttribute(attr)) {\n const initializer = attr.getInitializer();\n const expression =\n initializer && Node.isJsxExpression(initializer)\n ? initializer.getExpression()\n : undefined;\n const runtimeSelectors = expression\n ? collectRuntimeSelectorsFromExpression(expression, runtimeBindings)\n : [];\n\n if (runtimeSelectors.length > 0) {\n const runtimePropsMap = getOrCreateComponentPropsMap(\n runtimeConfigInternalComponentProps,\n tagName,\n );\n const runtimePropName = attr.getNameNode().getText();\n const existingRuntimeSelectors = runtimePropsMap.get(runtimePropName) ?? [];\n runtimePropsMap.set(runtimePropName, [\n ...new Set([...existingRuntimeSelectors, ...runtimeSelectors]),\n ]);\n }\n }\n\n const extracted = extractJsxAttributeLiteralValues(attr, componentProps, propToVariantKeys);\n if (!extracted || extracted.values.length === 0) {\n return;\n }\n\n const componentPropsMap = getOrCreateComponentPropsMap(internalComponentProps, tagName);\n const existingValues = componentPropsMap.get(extracted.propName) ?? [];\n const mergedValues = [...new Set([...existingValues, ...extracted.values])];\n componentPropsMap.set(extracted.propName, mergedValues);\n });\n });\n};\n\n/**\n * Extract default prop values from a function's parameter destructuring\n */\nconst extractDefaultsFromFunction = (fn: Node, defaults: Map<string, string>): void => {\n let params: Node[] = [];\n\n if (Node.isFunctionDeclaration(fn) || Node.isFunctionExpression(fn)) {\n params = fn.getParameters();\n } else if (Node.isArrowFunction(fn)) {\n params = fn.getParameters();\n }\n\n params.forEach((param) => {\n if (!Node.isParameterDeclaration(param)) {\n return;\n }\n\n const nameNode = param.getNameNode();\n if (!nameNode || !Node.isObjectBindingPattern(nameNode)) {\n return;\n }\n\n nameNode.getElements().forEach((element) => {\n const propName = element.getPropertyNameNode()?.getText() || element.getName();\n const initializer = element.getInitializer();\n\n if (initializer && Node.isStringLiteral(initializer)) {\n defaults.set(propName, initializer.getLiteralValue());\n } else if (initializer && Node.isIdentifier(initializer)) {\n const resolved = resolveIdentifierToStringLiteral(initializer);\n if (resolved) {\n defaults.set(propName, resolved);\n }\n }\n });\n });\n};\n\n/**\n * Extract ALL prop names from a function's parameter destructuring (not just defaults)\n */\nconst extractAllPropNames = (fn: Node, propNames: Set<string>): void => {\n let params: Node[] = [];\n\n if (Node.isFunctionDeclaration(fn) || Node.isFunctionExpression(fn)) {\n params = fn.getParameters();\n } else if (Node.isArrowFunction(fn)) {\n params = fn.getParameters();\n }\n\n params.forEach((param) => {\n if (!Node.isParameterDeclaration(param)) {\n return;\n }\n\n const nameNode = param.getNameNode();\n if (!nameNode || !Node.isObjectBindingPattern(nameNode)) {\n return;\n }\n\n nameNode.getElements().forEach((element) => {\n const propName = element.getPropertyNameNode()?.getText() || element.getName();\n propNames.add(propName);\n });\n });\n};\n\n/**\n * Get default classes for a component based on its default props\n */\nconst getDefaultClasses = (\n componentInfo: ComponentInfo,\n variants: Record<string, Record<string, string>>,\n): string[] => {\n const classes: string[] = [];\n\n componentInfo.defaultProps.forEach((propValue, propName) => {\n const variantGroup = variants[propName as keyof typeof variants];\n if (variantGroup && variantGroup[propValue]) {\n classes.push(variantGroup[propValue]);\n }\n });\n\n return classes;\n};\n\n/**\n * Get all components (including dependencies) for a given component\n */\nconst getComponentWithDependencies = (\n componentInfo: ComponentInfo,\n allComponents: Map<string, ComponentInfo>,\n visited: Set<string> = new Set(),\n): ComponentInfo[] => {\n if (visited.has(componentInfo.name)) {\n return [];\n }\n visited.add(componentInfo.name);\n\n const result: ComponentInfo[] = [componentInfo];\n\n componentInfo.internalComponents.forEach((depName) => {\n const depInfo = allComponents.get(depName);\n if (depInfo) {\n result.push(...getComponentWithDependencies(depInfo, allComponents, visited));\n }\n });\n\n return result;\n};\n\n/**\n * Extract string literals from cx() call arguments.\n * Handles:\n * - Direct string literals: cx('class1', 'class2')\n * - Object keys: cx({ 'class1': condition, 'class2': true })\n * - Nested calls and arrays\n */\nconst extractCxStringLiterals = (node: Node, literals: string[]): void => {\n if (Node.isStringLiteral(node)) {\n // Split by whitespace to handle multiple classes in one string\n const classes = node.getLiteralValue().split(/\\s+/).filter(Boolean);\n classes.forEach((cls) => {\n if (!literals.includes(cls)) {\n literals.push(cls);\n }\n });\n } else if (Node.isObjectLiteralExpression(node)) {\n // Extract keys from object: cx({ 'class1': condition })\n node.getProperties().forEach((prop) => {\n if (Node.isPropertyAssignment(prop)) {\n const nameNode = prop.getNameNode();\n if (Node.isStringLiteral(nameNode)) {\n const classes = nameNode.getLiteralValue().split(/\\s+/).filter(Boolean);\n classes.forEach((cls) => {\n if (!literals.includes(cls)) {\n literals.push(cls);\n }\n });\n } else if (Node.isIdentifier(nameNode)) {\n // Plain identifier key: cx({ className: condition })\n const cls = nameNode.getText();\n if (!literals.includes(cls)) {\n literals.push(cls);\n }\n }\n }\n });\n } else if (Node.isArrayLiteralExpression(node)) {\n // Recurse into array elements\n node.getElements().forEach((element) => {\n extractCxStringLiterals(element, literals);\n });\n } else if (Node.isConditionalExpression(node)) {\n // Handle ternary: condition ? 'class1' : 'class2'\n extractCxStringLiterals(node.getWhenTrue(), literals);\n extractCxStringLiterals(node.getWhenFalse(), literals);\n } else if (Node.isBinaryExpression(node)) {\n // Handle logical expressions: condition && 'class'\n extractCxStringLiterals(node.getLeft(), literals);\n extractCxStringLiterals(node.getRight(), literals);\n }\n};\n\n/**\n * Try to resolve an identifier to its initializer value (for const declarations)\n */\nconst resolveIdentifierToObject = (\n sourceFile: SourceFile,\n identifier: string,\n): Record<string, string> | null => {\n // Find variable declarations in the file\n const varDecls = sourceFile.getDescendantsOfKind(SyntaxKind.VariableDeclaration);\n\n const decl = varDecls.find((candidate) => candidate.getName() === identifier);\n if (!decl) {\n return null;\n }\n\n let initializer = decl.getInitializer();\n if (!initializer) {\n return null;\n }\n\n // Unwrap \"as const\" expressions: { ... } as const\n if (Node.isAsExpression(initializer)) {\n initializer = initializer.getExpression();\n }\n\n if (!Node.isObjectLiteralExpression(initializer)) {\n return null;\n }\n\n // Extract properties from the object literal\n const result: Record<string, string> = {};\n initializer.getProperties().forEach((prop) => {\n if (!Node.isPropertyAssignment(prop)) {\n return;\n }\n\n const propName = prop.getName();\n const propInit = prop.getInitializer();\n\n if (propInit && Node.isStringLiteral(propInit)) {\n result[propName] = propInit.getLiteralValue();\n }\n });\n\n return result;\n};\n\n/**\n * Extract motion CSS variable prefixes from SpringMotionConfig usage.\n * Returns prefixes like ['--uds-motion-bouncy-4-', '--uds-motion-smooth-3-']\n */\nconst extractMotionVarPrefixes = (sourceFile: SourceFile): string[] => {\n const prefixes: string[] = [];\n\n // Find all SpringMotionConfig JSX elements\n const jsxElements = [\n ...sourceFile.getDescendantsOfKind(SyntaxKind.JsxSelfClosingElement),\n ...sourceFile.getDescendantsOfKind(SyntaxKind.JsxOpeningElement),\n ];\n\n jsxElements.forEach((element) => {\n const tagName = element.getTagNameNode().getText();\n if (tagName !== 'SpringMotionConfig') {\n return;\n }\n\n // Extract prop values\n const props: Record<string, string | null> = {\n layoutVariant: null,\n layoutSpeed: null,\n colorVariant: null,\n colorSpeed: null,\n };\n\n const attrs = element.getAttributes();\n attrs.forEach((attr) => {\n // Handle spread attributes: {...toggleTransition}\n if (Node.isJsxSpreadAttribute(attr)) {\n const expr = attr.getExpression();\n if (Node.isIdentifier(expr)) {\n const spreadObj = resolveIdentifierToObject(sourceFile, expr.getText());\n if (spreadObj) {\n // Apply spread values to props\n Object.keys(props).forEach((key) => {\n if (key in spreadObj) {\n props[key] = spreadObj[key];\n }\n });\n }\n }\n return;\n }\n\n if (!Node.isJsxAttribute(attr)) {\n return;\n }\n\n const propName = attr.getNameNode().getText();\n if (!(propName in props)) {\n return;\n }\n\n const initializer = attr.getInitializer();\n if (initializer) {\n if (Node.isStringLiteral(initializer)) {\n props[propName] = initializer.getLiteralValue();\n } else if (Node.isJsxExpression(initializer)) {\n const expr = initializer.getExpression();\n if (expr && Node.isStringLiteral(expr)) {\n props[propName] = expr.getLiteralValue();\n }\n // If it's a variable/prop, we can't determine the value statically\n // Fall back to including all variants for that dimension\n }\n }\n });\n\n // Build the CSS variable prefixes\n // Layout config: --uds-motion-{variant}-{speed}-\n const layoutVariant = props.layoutVariant ?? SPRING_MOTION_DEFAULTS.layoutVariant;\n const layoutSpeed = props.layoutSpeed ?? SPRING_MOTION_DEFAULTS.layoutSpeed;\n const layoutPrefix = `--uds-motion-${layoutVariant}-${layoutSpeed}-`;\n if (!prefixes.includes(layoutPrefix)) {\n prefixes.push(layoutPrefix);\n }\n\n // Color config: --uds-motion-{variant}-{speed}-\n const colorVariant = props.colorVariant ?? SPRING_MOTION_DEFAULTS.colorVariant;\n const colorSpeed = props.colorSpeed ?? SPRING_MOTION_DEFAULTS.colorSpeed;\n const colorPrefix = `--uds-motion-${colorVariant}-${colorSpeed}-`;\n if (!prefixes.includes(colorPrefix)) {\n prefixes.push(colorPrefix);\n }\n });\n\n return prefixes;\n};\n\nconst resolveIdentifierToStringLiteral = (identifier: Node): string | null => {\n if (!Node.isIdentifier(identifier)) {\n return null;\n }\n\n const symbol = identifier.getSymbol();\n if (!symbol) {\n return resolveImportedIdentifier(identifier);\n }\n\n const resolvedDeclarationValue = symbol\n .getDeclarations()\n .reduce<string | undefined>((resolved, declaration) => {\n if (resolved) {\n return resolved;\n }\n\n if (Node.isVariableDeclaration(declaration)) {\n let initializer = declaration.getInitializer();\n\n // Unwrap \"as const\"\n if (initializer && Node.isAsExpression(initializer)) {\n initializer = initializer.getExpression();\n }\n\n if (initializer && Node.isStringLiteral(initializer)) {\n return initializer.getLiteralValue();\n }\n }\n\n if (Node.isEnumMember(declaration)) {\n const initializer = declaration.getInitializer();\n if (initializer && Node.isStringLiteral(initializer)) {\n return initializer.getLiteralValue();\n }\n }\n\n return undefined;\n }, undefined);\n\n if (resolvedDeclarationValue) {\n return resolvedDeclarationValue;\n }\n\n return resolveImportedIdentifier(identifier);\n};\n\nconst resolveImportedIdentifier = (identifier: Node): string | null => {\n if (!Node.isIdentifier(identifier)) {\n return null;\n }\n\n const name = identifier.getText();\n const sourceFile = identifier.getSourceFile();\n const project = sourceFile.getProject();\n const baseDir = path.dirname(sourceFile.getFilePath());\n\n const importResolution = sourceFile\n .getImportDeclarations()\n .reduce<string | undefined>((resolvedImport, importDecl) => {\n if (resolvedImport) {\n return resolvedImport;\n }\n\n const namedImport = importDecl.getNamedImports().find((n) => n.getName() === name);\n if (!namedImport) {\n return undefined;\n }\n\n const moduleSpec = importDecl.getModuleSpecifierValue();\n if (!moduleSpec.startsWith('.') || hasImportQuery(moduleSpec)) {\n return undefined;\n }\n\n const resolvedBase = path.resolve(baseDir, moduleSpec);\n const candidates = [resolvedBase, `${resolvedBase}.ts`, `${resolvedBase}.tsx`];\n\n return candidates.reduce<string | undefined>((resolvedCandidate, candidate) => {\n if (resolvedCandidate) {\n return resolvedCandidate;\n }\n\n if (!existsSync(candidate)) {\n return undefined;\n }\n\n const importedFile = project.addSourceFileAtPathIfExists(candidate);\n if (!importedFile) {\n return undefined;\n }\n\n const varDecl = importedFile.getVariableDeclaration(name);\n if (!varDecl) {\n return undefined;\n }\n\n let initializer = varDecl.getInitializer();\n if (initializer && Node.isAsExpression(initializer)) {\n initializer = initializer.getExpression();\n }\n\n return initializer && Node.isStringLiteral(initializer)\n ? initializer.getLiteralValue()\n : undefined;\n }, undefined);\n }, undefined);\n\n if (importResolution) {\n return importResolution;\n }\n\n return null;\n};\n\nexport type { ComponentInfo };\nexport {\n analyzeComponent,\n getComponentPath,\n getComponentWithDependencies,\n getDefaultClasses,\n scanComponentFiles,\n};\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
-
2
- import { Project } from "ts-morph";
@@ -1,2 +0,0 @@
1
-
2
- import { Project } from "ts-morph";
@@ -1 +0,0 @@
1
- {"version":3,"file":"files.js","names":[],"sources":["../../../../src/purger/optimized/utils/files.ts"],"sourcesContent":["import fg from 'fast-glob';\nimport type { Project, SourceFile } from 'ts-morph';\n\nimport { DEFAULT_ENTRY, resolveEntryPaths } from '../../../utils/entryPoints';\n\n/**\n * Scan a directory for JSX/TSX files\n */\nexport const scanForFiles = async (entry: string | string[]): Promise<string[]> => {\n const workspaceDir = process.env.PWD ?? process.cwd();\n\n try {\n const fileGroups = await Promise.all(\n resolveEntryPaths(entry, workspaceDir, DEFAULT_ENTRY).map((entryPath) => {\n if (entryPath.kind === 'file') {\n return [entryPath.absolutePath];\n }\n\n return fg('**/*.{jsx,tsx}', {\n cwd: entryPath.absolutePath,\n absolute: true,\n ignore: ['**/node_modules/**'],\n });\n }),\n );\n\n return [...new Set(fileGroups.flat())];\n } catch (error) {\n throw error instanceof Error\n ? error\n : new Error(`Couldn't find the entry directory: ${entry}. Please make sure it exists.`);\n }\n};\n\n/**\n * Get all source files that import from @yahoo/uds\n */\nexport const getUdsImportingFiles = (project: Project): Set<SourceFile> =>\n new Set(\n project\n .getSourceFiles()\n .filter((sourceFile) =>\n sourceFile\n .getImportDeclarations()\n .some((importDecl) => importDecl.getModuleSpecifier().getText().includes('@yahoo/uds')),\n ),\n );\n\n/**\n * Parse files to extract UDS imports\n */\nexport const parseUdsImports = (project: Project, files: string[]): string[] => {\n const imports = files.flatMap((filePath) => {\n const sourceFile = project.getSourceFile(filePath);\n if (!sourceFile) {\n return [];\n }\n\n return sourceFile\n .getImportDeclarations()\n .filter((importDecl) => importDecl.getModuleSpecifier().getText().includes('@yahoo/uds'))\n .flatMap((importDecl) =>\n importDecl.getNamedImports().map((namedImport) => namedImport.getName()),\n );\n });\n\n return Array.from(new Set(imports));\n};\n\n/**\n * Get components and their dependencies from the import list\n */\nexport const getComponentsWithDependencies = (\n imports: string[],\n componentToVariants: Record<string, unknown>,\n componentsDependencies: Record<string, string[]>,\n): string[] => {\n const components = imports\n .filter((importName) => Boolean(componentToVariants[importName]))\n .flatMap((importName) => [importName, ...(componentsDependencies[importName] ?? [])]);\n\n return Array.from(new Set(components));\n};\n"],"mappings":";;;;;;;AAQA,MAAa,eAAe,OAAO,UAAgD;CACjF,MAAM,eAAe,QAAQ,IAAI,OAAO,QAAQ,KAAK;CAErD,IAAI;EACF,MAAM,aAAa,MAAM,QAAQ,IAC/B,kBAAkB,OAAO,cAAc,cAAc,CAAC,KAAK,cAAc;GACvE,IAAI,UAAU,SAAS,QACrB,OAAO,CAAC,UAAU,aAAa;GAGjC,OAAO,GAAG,kBAAkB;IAC1B,KAAK,UAAU;IACf,UAAU;IACV,QAAQ,CAAC,qBAAqB;IAC/B,CAAC;IACF,CACH;EAED,OAAO,CAAC,GAAG,IAAI,IAAI,WAAW,MAAM,CAAC,CAAC;UAC/B,OAAO;EACd,MAAM,iBAAiB,QACnB,wBACA,IAAI,MAAM,sCAAsC,MAAM,+BAA+B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"safelist.js","names":[],"sources":["../../../../src/purger/optimized/utils/safelist.ts"],"sourcesContent":["import { mkdirSync, writeFileSync } from 'node:fs';\nimport path from 'node:path';\n\nimport { DARK_COLOR_MODE_CLASSNAME, LIGHT_COLOR_MODE_CLASSNAME } from '@yahoo/uds-css-tokens';\nimport type { ColorModeConfig } from '@yahoo/uds-types';\n\nconst colorModeToClass: Record<keyof ColorModeConfig, string> = {\n dark: DARK_COLOR_MODE_CLASSNAME,\n light: LIGHT_COLOR_MODE_CLASSNAME,\n};\n\nconst internalSafelistClasses = ['uds-light-mode-icon', 'uds-dark-mode-icon'] as const;\n\n/**\n * Deduplicate and clean a safelist\n */\nconst deduplicateSafelist = (safelist: string[]): string[] => {\n const deduped = safelist\n .map((cls) => cls.replaceAll('\\\\', '').trim())\n .filter((cleaned) => cleaned && isValidClassName(cleaned));\n\n return Array.from(new Set(deduped));\n};\n\n/**\n * Check if a class name is valid (not malformed from CSS escape sequences)\n */\nconst isValidClassName = (cls: string): boolean => {\n // Filter out malformed classes from CSS escape sequences\n if (cls.match(/^[0-9]/)) {\n return false;\n }\n if (cls.match(/[0-9][a-z]$/)) {\n return false;\n }\n if (cls.includes('2c')) {\n return false;\n }\n return true;\n};\n\n/**\n * Filter out autoVariant classes (we add them dynamically based on usage)\n */\nexport const filterAutoVariantClasses = (classes: string[]): string[] =>\n classes.filter((cls) => !cls.match(/^uds-[a-z]+-(?:variant|size)-/));\n\n/**\n * Get classes for enabled color modes.\n * Note: Light mode is not included by default since :root already defines light mode styles.\n * Only dark mode class is needed to enable dark mode switching.\n */\nexport const getThemeAndScaleClasses = (colorModes?: ('dark' | 'light')[]): string[] => {\n if (!colorModes || colorModes.length === 0) {\n // Default: only dark mode (light mode is already in :root)\n return [colorModeToClass.dark];\n }\n\n return colorModes\n .map((mode) => colorModeToClass[mode])\n .filter((className): className is string => Boolean(className));\n};\n\n/**\n * Get internal framework classes that are required even when plugin safelists\n * are intentionally ignored by the optimized CSS generation path.\n */\nexport const getInternalSafelistClasses = (): string[] => [...internalSafelistClasses];\n\n/**\n * Get autoVariant classes for specific prop values used by a component\n */\nexport const getAutoVariantClasses = (\n componentName: string,\n usedProps: Map<string, Set<string>>,\n autoVariants: Record<string, Record<string, string>>,\n): string[] => {\n const componentLower = componentName.toLowerCase();\n\n return [...usedProps.entries()].flatMap(([propName, values]) => {\n const propNameCapitalized = propName.charAt(0).toUpperCase() + propName.slice(1);\n\n // Look for matching autoVariant keys\n return Object.entries(autoVariants)\n .filter(\n ([autoVariantKey]) =>\n autoVariantKey.startsWith(componentLower + propNameCapitalized) ||\n autoVariantKey.startsWith(componentLower + propName),\n )\n .flatMap(([, variantGroup]) =>\n [...values]\n .map((value) => variantGroup[value as keyof typeof variantGroup])\n .filter((className): className is string => Boolean(className)),\n );\n });\n};\n\n/**\n * Save safelist to a file\n */\nexport const saveSafelistToFile = async (safelist: string[], outputPath: string): Promise<void> => {\n const content = `\n//! This file is generated by the optimized purger from @yahoo/uds\n//! Do not edit directly\n//! If there is issue with this file please report to #ask-uds\nexport const safelist = ${JSON.stringify(safelist)};\n`;\n\n mkdirSync(path.dirname(outputPath), { recursive: true });\n writeFileSync(outputPath, content);\n};\n\nexport { deduplicateSafelist };\n"],"mappings":";;;;;AAMA,MAAM,mBAA0D;CAC9D,MAAM;CACN,OAAO;CACR;AAED,MAAM,0BAA0B,CAAC,uBAAuB,qBAAqB;;;;AAK7E,MAAM,uBAAuB,aAAiC;CAC5D,MAAM,UAAU,SACb,KAAK,QAAQ,IAAI,WAAW,MAAM,GAAG,CAAC,MAAM,CAAC,CAC7C,QAAQ,YAAY,WAAW,iBAAiB,QAAQ,CAAC;CAE5D,OAAO,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC;;;;;AAMrC,MAAM,oBAAoB,QAAyB;CAEjD,IAAI,IAAI,MAAM,SAAS,EACrB,OAAO;CAET,IAAI,IAAI,MAAM,cAAc,EAC1B,OAAO;CAET,IAAI,IAAI,SAAS,KAAK,EACpB,OAAO;CAET,OAAO;;;;;;;AAcT,MAAa,2BAA2B,eAAgD;CACtF,IAAI,CAAC,cAAc,WAAW,WAAW,GAEvC,OAAO,CAAC,iBAAiB,KAAK;CAGhC,OAAO,WACJ,KAAK,SAAS,iBAAiB,MAAM,CACrC,QAAQ,cAAmC,QAAQ,UAAU,CAAC;;;;;;AAOnE,MAAa,mCAA6C,CAAC,GAAG,wBAAwB;;;;AAiCtF,MAAa,qBAAqB,OAAO,UAAoB,eAAsC;CACjG,MAAM,UAAU;;;;0BAIQ,KAAK,UAAU,SAAS,CAAC;;CAGjD,UAAU,KAAK,QAAQ,WAAW,EAAE,EAAE,WAAW,MAAM,CAAC;CACxD,cAAc,YAAY,QAAQ"}
@@ -1,6 +0,0 @@
1
- /*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const require_purgeFromCode = require("./purger/optimized/purgeFromCode.cjs");
4
- const require_purgeFromCode$1 = require("./purger/legacy/purgeFromCode.cjs");
5
- exports.purgeFromCode = require_purgeFromCode$1.purgeFromCode;
6
- exports.purgeFromCodeOptimized = require_purgeFromCode.purgeFromCodeOptimized;
@@ -1,4 +0,0 @@
1
-
2
- import { PurgeFromCodeResult, purgeFromCode } from "./purger/legacy/purgeFromCode.cjs";
3
- import { purgeFromCodeOptimized } from "./purger/optimized/purgeFromCode.cjs";
4
- export { type PurgeFromCodeResult, purgeFromCode, purgeFromCodeOptimized };
@@ -1,4 +0,0 @@
1
-
2
- import { PurgeFromCodeResult, purgeFromCode } from "./purger/legacy/purgeFromCode.js";
3
- import { purgeFromCodeOptimized } from "./purger/optimized/purgeFromCode.js";
4
- export { type PurgeFromCodeResult, purgeFromCode, purgeFromCodeOptimized };
@@ -1,4 +0,0 @@
1
- /*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
2
- import { purgeFromCodeOptimized } from "./purger/optimized/purgeFromCode.js";
3
- import { purgeFromCode } from "./purger/legacy/purgeFromCode.js";
4
- export { purgeFromCode, purgeFromCodeOptimized };
@@ -1 +0,0 @@
1
- {"version":3,"file":"hookMetadata.js","names":[],"sources":["../../src/runtimeConfig/hookMetadata.ts"],"sourcesContent":["import type { UniversalTokensConfig } from '@yahoo/uds-config';\n\ninterface RuntimeHookFieldTokenSource {\n variableTemplate: string;\n valuePath: readonly string[];\n transformConfigPath?: readonly string[];\n}\n\ninterface RuntimeHookFieldMetadata {\n bindingSelector: string;\n selectorTemplates: string[];\n staticValue?: string | number | boolean;\n tokenSource?: RuntimeHookFieldTokenSource;\n}\n\ninterface RuntimeHookMetadata {\n defaultProps: Record<string, string>;\n defaultPropSources?: Record<string, readonly string[]>;\n defaultPropValues?: Record<string, string | number | boolean>;\n selectorParamValues?: Record<string, readonly string[]>;\n tokenConfigPath?: readonly string[];\n fields: Record<string, RuntimeHookFieldMetadata>;\n}\n\ntype RuntimeSelectorParams = Record<string, string>;\n\nconst defineRuntimeHookMetadata = <const T extends Record<string, RuntimeHookMetadata>>(\n metadata: T,\n): T => metadata;\n\nconst runtimeHookMetadata = defineRuntimeHookMetadata({\n useBottomSheetConfig: {\n defaultProps: {},\n selectorParamValues: {\n variant: ['default'],\n },\n tokenConfigPath: ['bottomSheet', 'variables'],\n fields: {\n backgroundColor: {\n bindingSelector: 'bottomSheet.backgroundColor',\n selectorTemplates: ['bottomSheet.backgroundColor.${variant}'],\n tokenSource: {\n variableTemplate: 'variant/${variant}/root',\n valuePath: ['backgroundColor', 'rest', 'value'],\n },\n },\n },\n },\n useToastConfig: {\n defaultProps: {\n size: 'toast.defaultSize',\n variant: 'toast.defaultVariant',\n },\n defaultPropSources: {\n size: ['toast', 'defaults', 'size'],\n variant: ['toast', 'defaults', 'variant'],\n },\n selectorParamValues: {\n size: ['default'],\n variant: ['success', 'error', 'info', 'warning', 'loading'],\n },\n tokenConfigPath: ['toast', 'variables'],\n fields: {\n autoClose: {\n bindingSelector: 'toast.autoClose',\n selectorTemplates: ['toast.autoClose'],\n staticValue: 6_000,\n },\n position: {\n bindingSelector: 'toast.position',\n selectorTemplates: ['toast.position'],\n staticValue: 'bottom-center',\n },\n size: {\n bindingSelector: 'toast.defaultSize',\n selectorTemplates: ['toast.defaultSize'],\n },\n variant: {\n bindingSelector: 'toast.defaultVariant',\n selectorTemplates: ['toast.defaultVariant'],\n },\n textVariant: {\n bindingSelector: 'toast.textVariant.${size}',\n selectorTemplates: ['toast.textVariant.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/label',\n valuePath: ['textVariant', 'rest', 'value'],\n },\n },\n textColor: {\n bindingSelector: 'toast.textColor.${variant}',\n selectorTemplates: ['toast.textColor.${variant}'],\n tokenSource: {\n variableTemplate: 'variant/${variant}/root',\n valuePath: ['color', 'rest', 'value'],\n },\n },\n iconSize: {\n bindingSelector: 'toast.iconSize.${size}',\n selectorTemplates: ['toast.iconSize.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/icon',\n valuePath: ['size', 'rest', 'value'],\n },\n },\n buttonSize: {\n bindingSelector: 'toast.buttonSize.${size}',\n selectorTemplates: ['toast.buttonSize.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/actionButton',\n valuePath: ['buttonSize', 'rest', 'value'],\n },\n },\n buttonVariant: {\n bindingSelector: 'toast.buttonVariant.${variant}',\n selectorTemplates: ['toast.buttonVariant.${variant}'],\n tokenSource: {\n variableTemplate: 'variant/${variant}/actionButton',\n valuePath: ['buttonVariant', 'rest', 'value'],\n },\n },\n iconVariant: {\n bindingSelector: 'toast.iconVariant.${variant}',\n selectorTemplates: ['toast.iconVariant.${variant}'],\n tokenSource: {\n variableTemplate: 'variant/${variant}/icon',\n valuePath: ['iconVariant', 'rest', 'value'],\n },\n },\n backgroundColor: {\n bindingSelector: 'toast.backgroundColor',\n selectorTemplates: ['toast.backgroundColor.${variant}'],\n tokenSource: {\n variableTemplate: 'variant/${variant}/root',\n valuePath: ['backgroundColor', 'rest', 'value'],\n },\n },\n },\n },\n useTooltipConfig: {\n defaultProps: {},\n selectorParamValues: {\n size: ['default'],\n },\n tokenConfigPath: ['tooltip', 'variables'],\n fields: {\n animationDuration: {\n bindingSelector: 'tooltip.animationDuration',\n selectorTemplates: ['tooltip.animationDuration'],\n staticValue: 200,\n },\n placement: {\n bindingSelector: 'tooltip.placement',\n selectorTemplates: ['tooltip.placement'],\n staticValue: 'top',\n },\n borderRadius: {\n bindingSelector: 'tooltip.borderRadius',\n selectorTemplates: ['tooltip.borderRadius.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/svg',\n valuePath: ['borderRadius', 'rest', 'value'],\n transformConfigPath: ['scaleMode', 'medium', 'borderRadius'],\n },\n },\n },\n },\n usePopoverConfig: {\n defaultProps: {\n size: 'popover.defaultSize',\n variant: 'popover.defaultVariant',\n },\n defaultPropValues: {\n size: 'default',\n variant: 'default',\n },\n selectorParamValues: {\n size: ['default'],\n },\n tokenConfigPath: ['popover', 'variables'],\n fields: {\n animationDuration: {\n bindingSelector: 'popover.animationDuration',\n selectorTemplates: ['popover.animationDuration'],\n staticValue: 200,\n },\n placement: {\n bindingSelector: 'popover.placement',\n selectorTemplates: ['popover.placement'],\n staticValue: 'top',\n },\n size: {\n bindingSelector: 'popover.defaultSize',\n selectorTemplates: ['popover.defaultSize'],\n },\n variant: {\n bindingSelector: 'popover.defaultVariant',\n selectorTemplates: ['popover.defaultVariant'],\n },\n borderRadius: {\n bindingSelector: 'popover.borderRadius.${size}',\n selectorTemplates: ['popover.borderRadius.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/svgBase',\n valuePath: ['borderRadius', 'rest', 'value'],\n transformConfigPath: ['scaleMode', 'medium', 'borderRadius'],\n },\n },\n gap: {\n bindingSelector: 'popover.gap.${size}',\n selectorTemplates: ['popover.gap.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/contentWrapper',\n valuePath: ['gap', 'rest', 'value'],\n },\n },\n spacingHorizontal: {\n bindingSelector: 'popover.spacingHorizontal.${size}',\n selectorTemplates: ['popover.spacingHorizontal.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/contentWrapper',\n valuePath: ['spacingHorizontal', 'rest', 'value'],\n },\n },\n spacingVertical: {\n bindingSelector: 'popover.spacingVertical.${size}',\n selectorTemplates: ['popover.spacingVertical.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/contentWrapper',\n valuePath: ['spacingVertical', 'rest', 'value'],\n },\n },\n dismissButtonSpacing: {\n bindingSelector: 'popover.dismissButtonSpacing.${size}',\n selectorTemplates: ['popover.dismissButtonSpacing.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/closeIconContainer',\n valuePath: ['spacing', 'rest', 'value'],\n },\n },\n dismissIconSize: {\n bindingSelector: 'popover.dismissIconSize.${size}',\n selectorTemplates: ['popover.dismissIconSize.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/closeIcon',\n valuePath: ['size', 'rest', 'value'],\n transformConfigPath: ['scaleMode', 'medium', 'iconSizes'],\n },\n },\n },\n },\n useModalConfig: {\n defaultProps: {\n size: 'modal.defaultSize',\n variant: 'modal.defaultVariant',\n },\n defaultPropValues: {\n size: 'default',\n variant: 'default',\n },\n selectorParamValues: {\n size: ['default'],\n },\n tokenConfigPath: ['modal', 'variables'],\n fields: {\n size: {\n bindingSelector: 'modal.defaultSize',\n selectorTemplates: ['modal.defaultSize'],\n },\n variant: {\n bindingSelector: 'modal.defaultVariant',\n selectorTemplates: ['modal.defaultVariant'],\n },\n gutter: {\n bindingSelector: 'modal.gutter.${size}',\n selectorTemplates: ['modal.gutter.${size}'],\n tokenSource: {\n variableTemplate: 'size/${size}/scrim',\n valuePath: ['spacing', 'rest', 'value'],\n },\n },\n },\n },\n});\n\ntype RuntimeHookName = keyof typeof runtimeHookMetadata;\ntype RuntimeHookSelectorParamMap<T extends RuntimeHookName> =\n (typeof runtimeHookMetadata)[T] extends { selectorParamValues: infer P } ? NonNullable<P> : never;\ntype RuntimeHookSelectorParamName<T extends RuntimeHookName> = keyof RuntimeHookSelectorParamMap<T>;\ntype RuntimeHookSelectorParamValue<\n T extends RuntimeHookName,\n P extends RuntimeHookSelectorParamName<T>,\n> = RuntimeHookSelectorParamMap<T>[P] extends readonly (infer V)[] ? V : never;\n\nconst getNestedValue = (value: unknown, path: readonly string[]): unknown => {\n return path.reduce<unknown>((currentValue, segment) => {\n if (typeof currentValue !== 'object' || currentValue === null) {\n return undefined;\n }\n\n return (currentValue as Record<string, unknown>)[segment];\n }, value);\n};\n\nconst isRuntimeConfigValue = (value: unknown): value is string | number | boolean => {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n};\n\nconst getRuntimeHookConfig = (hookName: string): RuntimeHookMetadata | null => {\n return runtimeHookMetadata[hookName as RuntimeHookName] ?? null;\n};\n\nconst getRuntimeConfigHookNames = (): RuntimeHookName[] => {\n return Object.keys(runtimeHookMetadata) as RuntimeHookName[];\n};\n\nconst getRuntimeConfigSelectorTemplates = (): string[] => {\n return [\n ...new Set(\n Object.values(runtimeHookMetadata).flatMap((hookMetadata) => [\n ...Object.values(hookMetadata.defaultProps),\n ...Object.values(hookMetadata.fields).flatMap(({ selectorTemplates }) => selectorTemplates),\n ]),\n ),\n ];\n};\n\nconst getRuntimeSelectorParamValues = <\n T extends RuntimeHookName,\n P extends RuntimeHookSelectorParamName<T>,\n>(\n hookName: T,\n paramName: P,\n): RuntimeHookSelectorParamValue<T, P>[] => {\n const selectorParamValues = runtimeHookMetadata[hookName].selectorParamValues as\n | Record<string, readonly string[]>\n | undefined;\n const values = selectorParamValues?.[paramName as string] ?? [];\n return [...values] as RuntimeHookSelectorParamValue<T, P>[];\n};\n\nconst expandRuntimeSelectorTemplate = (\n template: string,\n params: RuntimeSelectorParams = {},\n): string => {\n return template.replace(/\\$\\{(\\w+)\\}/g, (match, paramName: string) => params[paramName] ?? match);\n};\n\nconst expandRuntimeSelectors = (hookName: string, template: string): string[] => {\n const placeholders = [...template.matchAll(/\\$\\{(\\w+)\\}/g)].map((match) => match[1]);\n\n if (placeholders.length === 0) {\n return [template];\n }\n\n return placeholders\n .reduce<RuntimeSelectorParams[]>(\n (combinations, placeholder) => {\n const values = getRuntimeSelectorParamValues(\n hookName as RuntimeHookName,\n placeholder as RuntimeHookSelectorParamName<RuntimeHookName>,\n ) as string[];\n if (values.length === 0) {\n return combinations;\n }\n\n return combinations.flatMap((combination) =>\n values.map((value) => ({ ...combination, [placeholder]: value })),\n );\n },\n [{} as RuntimeSelectorParams],\n )\n .map((params) => expandRuntimeSelectorTemplate(template, params));\n};\n\nconst getRuntimeConfigSelectors = (): string[] => {\n return [\n ...new Set(\n getRuntimeConfigHookNames().flatMap((hookName) => {\n const hookConfig = getRuntimeHookConfig(hookName);\n if (!hookConfig) {\n return [];\n }\n\n return [\n ...Object.values(hookConfig.defaultProps),\n ...Object.values(hookConfig.fields).flatMap(({ selectorTemplates }) =>\n selectorTemplates.flatMap((template) => expandRuntimeSelectors(hookName, template)),\n ),\n ];\n }),\n ),\n ];\n};\n\nconst getRuntimeDefaultPropSelector = (\n hookName: string,\n propName: string,\n params: RuntimeSelectorParams = {},\n): string | null => {\n const selector = getRuntimeHookConfig(hookName)?.defaultProps[propName];\n return selector ? expandRuntimeSelectorTemplate(selector, params) : null;\n};\n\nconst getRuntimeDefaultPropValue = (\n config: UniversalTokensConfig,\n hookName: string,\n propName: string,\n): string | number | boolean | undefined => {\n const hookConfig = getRuntimeHookConfig(hookName);\n const configuredValue = getNestedValue(config, hookConfig?.defaultPropSources?.[propName] ?? []);\n\n if (isRuntimeConfigValue(configuredValue)) {\n return configuredValue;\n }\n\n const staticValue = hookConfig?.defaultPropValues?.[propName];\n return staticValue === undefined ? undefined : staticValue;\n};\n\nconst getRuntimeFieldSelector = (\n hookName: string,\n fieldName: string,\n params: RuntimeSelectorParams = {},\n): string | null => {\n const selectorTemplate = getRuntimeHookConfig(hookName)?.fields[fieldName]?.selectorTemplates[0];\n return selectorTemplate ? expandRuntimeSelectorTemplate(selectorTemplate, params) : null;\n};\n\nconst getRuntimeFieldStaticValue = (\n hookName: string,\n fieldName: string,\n): string | number | boolean | null => {\n return getRuntimeHookConfig(hookName)?.fields[fieldName]?.staticValue ?? null;\n};\n\nconst getRuntimeFieldTokenValue = (\n config: UniversalTokensConfig,\n hookName: string,\n fieldName: string,\n params: RuntimeSelectorParams = {},\n): string | number | boolean | undefined => {\n const hookConfig = getRuntimeHookConfig(hookName);\n const tokenConfigPath = hookConfig?.tokenConfigPath;\n const tokenSource = hookConfig?.fields[fieldName]?.tokenSource;\n\n if (!tokenConfigPath || !tokenSource) {\n return undefined;\n }\n\n const variableTemplate = expandRuntimeSelectorTemplate(tokenSource.variableTemplate, params);\n const tokenValue = getNestedValue(config, [...tokenConfigPath, variableTemplate]);\n const rawValue = getNestedValue(tokenValue, tokenSource.valuePath);\n\n if (rawValue === undefined) {\n return undefined;\n }\n\n if (!tokenSource.transformConfigPath) {\n return isRuntimeConfigValue(rawValue) ? rawValue : undefined;\n }\n\n const transformedValue = getNestedValue(\n tokenSource.transformConfigPath.reduce<unknown>((currentValue, segment) => {\n if (typeof currentValue !== 'object' || currentValue === null) {\n return undefined;\n }\n\n return (currentValue as Record<string, unknown>)[segment];\n }, config),\n [String(rawValue)],\n );\n\n return isRuntimeConfigValue(transformedValue) ? transformedValue : undefined;\n};\n\nexport {\n expandRuntimeSelectorTemplate,\n getRuntimeConfigHookNames,\n getRuntimeConfigSelectors,\n getRuntimeConfigSelectorTemplates,\n getRuntimeDefaultPropSelector,\n getRuntimeDefaultPropValue,\n getRuntimeFieldSelector,\n getRuntimeFieldStaticValue,\n getRuntimeFieldTokenValue,\n getRuntimeHookConfig,\n getRuntimeSelectorParamValues,\n};\nexport type {\n RuntimeHookFieldMetadata,\n RuntimeHookFieldTokenSource,\n RuntimeHookMetadata,\n RuntimeSelectorParams,\n};\n"],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
2
- const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
3
- const require_index = require("../../css-tokens/dist/index.cjs");
4
- const require_index$1 = require("../../modes/dist/index.cjs");
5
- const require_getColorModeStyles = require("../utils/getColorModeStyles.cjs");
6
- let lodash_isString_js = require("lodash/isString.js");
7
- lodash_isString_js = require_runtime.__toESM(lodash_isString_js, 1);
8
- //#region src/tailwind/base/addColorModeVars.ts
9
- function addColorModeVars(tokens, { addBase, config }) {
10
- const styles = require_getColorModeStyles.getColorModeStyles(tokens);
11
- const parentConfigImportant = config().important;
12
- addBase({
13
- [(0, lodash_isString_js.default)(parentConfigImportant) ? parentConfigImportant : ":root"]: styles[require_index$1.DEFAULT_COLOR_MODE],
14
- [`.${require_index.LIGHT_COLOR_MODE_CLASSNAME}`]: styles.light,
15
- [`.${require_index.DARK_COLOR_MODE_CLASSNAME}`]: styles.dark
16
- });
17
- }
18
- //#endregion
19
- exports.addColorModeVars = addColorModeVars;
@@ -1 +0,0 @@
1
- {"version":3,"file":"addColorModeVars.js","names":[],"sources":["../../../src/tailwind/base/addColorModeVars.ts"],"sourcesContent":["import { DARK_COLOR_MODE_CLASSNAME, LIGHT_COLOR_MODE_CLASSNAME } from '@yahoo/uds-css-tokens';\nimport { DEFAULT_COLOR_MODE } from '@yahoo/uds-modes';\nimport { isString } from 'lodash';\nimport type { PluginAPI } from 'tailwindcss/types/config';\n\nimport type { WebTokens } from '../../utils/parseTokens';\nimport { getColorModeStyles } from '../utils/getColorModeStyles';\n\nexport function addColorModeVars(tokens: WebTokens, { addBase, config }: PluginAPI) {\n const styles = getColorModeStyles(tokens);\n\n const parentConfigImportant = config().important;\n const useImportNamespace = isString(parentConfigImportant);\n const rootSelector = useImportNamespace ? parentConfigImportant : ':root';\n\n addBase({\n [rootSelector]: styles[DEFAULT_COLOR_MODE],\n [`.${LIGHT_COLOR_MODE_CLASSNAME}`]: styles.light,\n [`.${DARK_COLOR_MODE_CLASSNAME}`]: styles.dark,\n });\n}\n"],"mappings":";;;;;;AAQA,SAAgB,iBAAiB,QAAmB,EAAE,SAAS,UAAqB;CAClF,MAAM,SAAS,mBAAmB,OAAO;CAEzC,MAAM,wBAAwB,QAAQ,CAAC;CAIvC,QAAQ;GAHmB,SAAS,sBACG,GAAG,wBAAwB,UAGhD,OAAO;GACtB,IAAI,+BAA+B,OAAO;GAC1C,IAAI,8BAA8B,OAAO;EAC3C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addColorModeVarsV2.js","names":[],"sources":["../../../src/tailwind/base/addColorModeVarsV2.ts"],"sourcesContent":["import {\n DARK_COLOR_MODE_CLASSNAME,\n INVERT_COLOR_MODE_CLASSNAME,\n LIGHT_COLOR_MODE_CLASSNAME,\n SYSTEM_COLOR_MODE_CLASSNAME,\n} from '@yahoo/uds-css-tokens';\nimport { DEFAULT_COLOR_MODE } from '@yahoo/uds-modes';\nimport { isString } from 'lodash';\nimport type { PluginAPI } from 'tailwindcss/types/config';\n\nimport type { WebTokens } from '../../utils/parseTokens';\nimport { getColorModeStyles } from '../utils/getColorModeStyles';\n\nexport function addColorModeVarsV2(tokens: WebTokens, { addBase, config }: PluginAPI) {\n const parentConfigImportant = config().important;\n const useImportNamespace = isString(parentConfigImportant);\n const rootSelector = useImportNamespace ? parentConfigImportant : ':root';\n\n const styles = getColorModeStyles(tokens);\n\n const stylesWithInvert = (key: keyof typeof styles) => {\n const { colorScheme: _, ...stylesDefault } = styles[key];\n\n const { colorScheme: __, ...stylesInvert } = styles[key === 'light' ? 'dark' : 'light'];\n\n return {\n ...stylesDefault,\n [`.${INVERT_COLOR_MODE_CLASSNAME}`]: stylesInvert,\n };\n };\n\n const lightWithInvert = stylesWithInvert('light');\n const darkWithInvert = stylesWithInvert('dark');\n\n addBase({\n [rootSelector]: {\n colorScheme: DEFAULT_COLOR_MODE,\n ...stylesWithInvert(DEFAULT_COLOR_MODE),\n },\n\n [`.${SYSTEM_COLOR_MODE_CLASSNAME}`]: {\n colorScheme: 'light dark',\n '@media (prefers-color-scheme: dark)': darkWithInvert,\n },\n\n [`.${LIGHT_COLOR_MODE_CLASSNAME}`]: {\n colorScheme: 'light',\n ...lightWithInvert,\n // '@media (prefers-color-scheme: dark)': lightWithInvert,\n },\n\n [`.${DARK_COLOR_MODE_CLASSNAME}`]: {\n colorScheme: 'dark',\n ...darkWithInvert,\n },\n });\n}\n"],"mappings":";;;;;;AAaA,SAAgB,mBAAmB,QAAmB,EAAE,SAAS,UAAqB;CACpF,MAAM,wBAAwB,QAAQ,CAAC;CAEvC,MAAM,eADqB,SAAS,sBACG,GAAG,wBAAwB;CAElE,MAAM,SAAS,mBAAmB,OAAO;CAEzC,MAAM,oBAAoB,QAA6B;EACrD,MAAM,EAAE,aAAa,GAAG,GAAG,kBAAkB,OAAO;EAEpD,MAAM,EAAE,aAAa,IAAI,GAAG,iBAAiB,OAAO,QAAQ,UAAU,SAAS;EAE/E,OAAO;GACL,GAAG;IACF,IAAI,gCAAgC;GACtC;;CAGH,MAAM,kBAAkB,iBAAiB,QAAQ;CACjD,MAAM,iBAAiB,iBAAiB,OAAO;CAE/C,QAAQ;GACL,eAAe;GACd,aAAa;GACb,GAAG,iBAAiB,mBAAmB;GACxC;GAEA,IAAI,gCAAgC;GACnC,aAAa;GACb,uCAAuC;GACxC;GAEA,IAAI,+BAA+B;GAClC,aAAa;GACb,GAAG;GAEJ;GAEA,IAAI,8BAA8B;GACjC,aAAa;GACb,GAAG;GACJ;EACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addFontFaceDeclarations.js","names":[],"sources":["../../../src/tailwind/base/addFontFaceDeclarations.ts"],"sourcesContent":["import type { FontID } from '@yahoo/uds-fonts';\nimport type { PluginAPI } from 'tailwindcss/types/config';\n\nimport { getFontFaceDeclarations } from '../utils/getFontFaceDeclarations';\n\nexport function addFontFaceDeclarations(fontIds: FontID[], { addBase }: PluginAPI) {\n const declarations = getFontFaceDeclarations(fontIds);\n for (const declaration of declarations) {\n addBase({\n '@font-face': declaration,\n });\n }\n}\n"],"mappings":";;;AAKA,SAAgB,wBAAwB,SAAmB,EAAE,WAAsB;CACjF,MAAM,eAAe,wBAAwB,QAAQ;CACrD,KAAK,MAAM,eAAe,cACxB,QAAQ,EACN,cAAc,aACf,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addFontVars.js","names":[],"sources":["../../../src/tailwind/base/addFontVars.ts"],"sourcesContent":["import type { FontConfig } from '@yahoo/uds-types';\nimport type { PluginAPI } from 'tailwindcss/types/config';\n\nimport { getFontStyles } from '../utils/getFontStyles';\n\nexport function addFontVars(config: FontConfig, { addBase }: PluginAPI) {\n const styles = getFontStyles(config);\n addBase(styles);\n}\n"],"mappings":";;;AAKA,SAAgB,YAAY,QAAoB,EAAE,WAAsB;CAEtE,QADe,cAAc,OACf,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addMotionVars.js","names":[],"sources":["../../../src/tailwind/base/addMotionVars.ts"],"sourcesContent":["import type { MotionConfig } from '@yahoo/uds-types';\nimport type { PluginAPI } from 'tailwindcss/types/config';\n\nimport { getMotionStyles } from '../utils/getMotionStyles';\n\nexport function addMotionVars(config: MotionConfig, { addBase }: PluginAPI) {\n const styles = getMotionStyles(config);\n addBase(styles);\n}\n"],"mappings":";;;AAKA,SAAgB,cAAc,QAAsB,EAAE,WAAsB;CAE1E,QADe,gBAAgB,OACjB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addScaleModeVars.js","names":[],"sources":["../../../src/tailwind/base/addScaleModeVars.ts"],"sourcesContent":["import {\n LARGE_SCALE_MODE_CLASSNAME,\n MEDIUM_SCALE_MODE_CLASSNAME,\n SMALL_SCALE_MODE_CLASSNAME,\n XLARGE_SCALE_MODE_CLASSNAME,\n XSMALL_SCALE_MODE_CLASSNAME,\n XXLARGE_SCALE_MODE_CLASSNAME,\n XXXLARGE_SCALE_MODE_CLASSNAME,\n} from '@yahoo/uds-css-tokens';\nimport { DEFAULT_SCALE_MODE } from '@yahoo/uds-modes';\nimport type { PluginAPI } from 'tailwindcss/types/config';\n\nimport type { WebTokens } from '../../utils/parseTokens';\nimport { getScaleModeStyles } from '../utils/getScaleModeStyles';\n\nexport function addScaleModeVars(tokens: WebTokens, { addBase }: PluginAPI) {\n const styles = getScaleModeStyles(tokens);\n\n addBase({\n ...styles[DEFAULT_SCALE_MODE],\n [`.${XSMALL_SCALE_MODE_CLASSNAME}`]: styles.xSmall,\n [`.${SMALL_SCALE_MODE_CLASSNAME}`]: styles.small,\n [`.${MEDIUM_SCALE_MODE_CLASSNAME}`]: styles.medium,\n [`.${LARGE_SCALE_MODE_CLASSNAME}`]: styles.large,\n [`.${XLARGE_SCALE_MODE_CLASSNAME}`]: styles.xLarge,\n [`.${XXLARGE_SCALE_MODE_CLASSNAME}`]: styles.xxLarge,\n [`.${XXXLARGE_SCALE_MODE_CLASSNAME}`]: styles.xxxLarge,\n });\n}\n"],"mappings":";;;;;AAeA,SAAgB,iBAAiB,QAAmB,EAAE,WAAsB;CAC1E,MAAM,SAAS,mBAAmB,OAAO;CAEzC,QAAQ;EACN,GAAG,OAAO;GACT,IAAI,gCAAgC,OAAO;GAC3C,IAAI,+BAA+B,OAAO;GAC1C,IAAI,gCAAgC,OAAO;GAC3C,IAAI,+BAA+B,OAAO;GAC1C,IAAI,gCAAgC,OAAO;GAC3C,IAAI,iCAAiC,OAAO;GAC5C,IAAI,kCAAkC,OAAO;EAC/C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFocusRingStyles.js","names":[],"sources":["../../../src/tailwind/components/getFocusRingStyles.ts"],"sourcesContent":["import { PSEUDO_STYLE_SELECTOR_MAP } from '@yahoo/uds-css-tokens';\n\nimport type { CssStyleObject } from './types';\n\n// Using css vars so consumers have a css only path to customize\nconst ringStyles = {\n outlineOffset: 'var(--uds-outline-offset)',\n outlineWidth: 'var(--uds-outline-width)',\n outlineColor: 'var(--uds-outline-color)',\n outlineStyle: 'var(--uds-outline-style)',\n};\n\n/**\n * Generates focus ring styles using CSS variables.\n * The CSS variable values (--uds-outline-*) are set per color mode via parseTokens/UdsThemeProvider.\n */\nfunction getFocusRingStyles() {\n return {\n /** Apply styles */\n [`.uds-ring${PSEUDO_STYLE_SELECTOR_MAP.focused}:not(:disabled)`]: ringStyles,\n [`.focused .uds-ring:not(:disabled)`]: ringStyles,\n [`.uds-ring.uds-ring-within${PSEUDO_STYLE_SELECTOR_MAP.focusedWithin}:not(:disabled)`]:\n ringStyles,\n } as CssStyleObject;\n}\n\nexport { getFocusRingStyles };\n"],"mappings":";;;AAKA,MAAM,aAAa;CACjB,eAAe;CACf,cAAc;CACd,cAAc;CACd,cAAc;CACf;;;;;AAMD,SAAS,qBAAqB;CAC5B,OAAO;;GAEJ,YAAY,0BAA0B,QAAQ,mBAAmB;GACjE,sCAAsC;GACtC,4BAA4B,0BAA0B,cAAc,mBACnE;EACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getGroupedTextStyles.js","names":[],"sources":["../../../src/tailwind/components/getGroupedTextStyles.ts"],"sourcesContent":["import {\n FONT_FAMILY_PREFIX,\n FONT_SIZE_PREFIX,\n FONT_SLANT_PREFIX,\n FONT_WEIGHT_PREFIX,\n FONT_WIDTH_PREFIX,\n LINE_HEIGHT_PREFIX,\n TEXT_TRANSFORM_PREFIX,\n} from '@yahoo/uds-css-tokens';\nimport { textVariants } from '@yahoo/uds-fixtures';\n\nimport { textVariantsSafe } from './getResponsiveTextStyles';\n\nconst getGroupedTextStyles = () =>\n Object.fromEntries(\n textVariants.map(textVariantsSafe).map((variant) => [\n `.uds-text-${variant}`,\n {\n fontFamily: `var(--${FONT_FAMILY_PREFIX}-${variant})`,\n fontSize: `var(--${FONT_SIZE_PREFIX}-${variant})`,\n fontWeight: `var(--${FONT_WEIGHT_PREFIX}-${variant})`,\n /**\n * Include both \"slnt\" and \"ital\" axes to support fonts using either axis type:\n * - slnt (slant): continuous angle, e.g., Inter uses -10 to 0\n * - ital (italic): binary toggle, e.g., YAS uses 0 or 1\n * Fonts will ignore axes they don't support.\n */\n fontVariationSettings: `\"wght\" var(--${FONT_WEIGHT_PREFIX}-${variant}), \"slnt\" var(--${FONT_SLANT_PREFIX}-${variant}), \"ital\" var(--${FONT_SLANT_PREFIX}-${variant}), \"wdth\" var(--${FONT_WIDTH_PREFIX}-${variant})`,\n lineHeight: `var(--${LINE_HEIGHT_PREFIX}-${variant})`,\n textTransform: `var(--${TEXT_TRANSFORM_PREFIX}-${variant})`,\n\n // Reset font-variation-settings for b/strong tags to ensure they appear bolder.\n b: { fontVariationSettings: 'normal' },\n strong: { fontVariationSettings: 'normal' },\n },\n ]),\n );\n\nexport { getGroupedTextStyles };\n"],"mappings":";;;;;AAaA,MAAM,6BACJ,OAAO,YACL,aAAa,IAAI,iBAAiB,CAAC,KAAK,YAAY,CAClD,aAAa,WACb;CACE,YAAY,SAAS,mBAAmB,GAAG,QAAQ;CACnD,UAAU,SAAS,iBAAiB,GAAG,QAAQ;CAC/C,YAAY,SAAS,mBAAmB,GAAG,QAAQ;;;;;;;CAOnD,uBAAuB,gBAAgB,mBAAmB,GAAG,QAAQ,kBAAkB,kBAAkB,GAAG,QAAQ,kBAAkB,kBAAkB,GAAG,QAAQ,kBAAkB,kBAAkB,GAAG,QAAQ;CAClN,YAAY,SAAS,mBAAmB,GAAG,QAAQ;CACnD,eAAe,SAAS,sBAAsB,GAAG,QAAQ;CAGzD,GAAG,EAAE,uBAAuB,UAAU;CACtC,QAAQ,EAAE,uBAAuB,UAAU;CAC5C,CACF,CAAC,CACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getHitTargetStyles.js","names":[],"sources":["../../../src/tailwind/components/getHitTargetStyles.ts"],"sourcesContent":["import type { CssStyleObject } from './types';\n\nconst MINIMUM_TAP_TARGET = '44px';\nfunction getHitTargetStyles() {\n return {\n ['.uds-hit-target']: {\n position: 'relative',\n },\n ['.uds-hit-target::before']: {\n '@media (hover: none)': {\n content: `''`,\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: `max(${MINIMUM_TAP_TARGET}, 100%)`,\n height: `max(${MINIMUM_TAP_TARGET}, 100%)`,\n transform: 'translate(-50%, -50%)',\n },\n },\n } as CssStyleObject;\n}\n\nexport { getHitTargetStyles, MINIMUM_TAP_TARGET };\n"],"mappings":";;AAEA,MAAM,qBAAqB;AAC3B,SAAS,qBAAqB;CAC5B,OAAO;GACJ,oBAAoB,EACnB,UAAU,YACX;GACA,4BAA4B,EAC3B,wBAAwB;GACtB,SAAS;GACT,UAAU;GACV,KAAK;GACL,MAAM;GACN,OAAO,OAAO,mBAAmB;GACjC,QAAQ,OAAO,mBAAmB;GAClC,WAAW;GACZ,EACF;EACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getIconStyles.js","names":[],"sources":["../../../src/tailwind/components/getIconStyles.ts"],"sourcesContent":["import type { CssStyleObject } from './types';\n\n/**\n * Generates icon styles for light/dark mode using CSS variables\n */\nfunction getIconStyles() {\n return {\n '.uds-light-mode-icon': { display: 'var(--uds-light-mode-icon, inline)' },\n '.uds-dark-mode-icon': { display: 'var(--uds-dark-mode-icon, none)' },\n } as CssStyleObject;\n}\n\nexport { getIconStyles };\n"],"mappings":";;;;;AAKA,SAAS,gBAAgB;CACvB,OAAO;EACL,wBAAwB,EAAE,SAAS,sCAAsC;EACzE,uBAAuB,EAAE,SAAS,mCAAmC;EACtE"}
@@ -1,11 +0,0 @@
1
-
2
- import { CssStyleObject } from "./types.cjs";
3
-
4
- //#region src/tailwind/components/getInputStyles.d.ts
5
- /**
6
- * Generates input styles
7
- */
8
- declare function getInputStyles(): CssStyleObject;
9
- //#endregion
10
- export { getInputStyles };
11
- //# sourceMappingURL=getInputStyles.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInputStyles.d.cts","names":[],"sources":["../../../src/tailwind/components/getInputStyles.ts"],"mappings":";;;;;;AAA8C;iBAKrC,cAAA,CAAA,GAWF,cAAA"}
@@ -1,11 +0,0 @@
1
-
2
- import { CssStyleObject } from "./types.js";
3
-
4
- //#region src/tailwind/components/getInputStyles.d.ts
5
- /**
6
- * Generates input styles
7
- */
8
- declare function getInputStyles(): CssStyleObject;
9
- //#endregion
10
- export { getInputStyles };
11
- //# sourceMappingURL=getInputStyles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInputStyles.d.ts","names":[],"sources":["../../../src/tailwind/components/getInputStyles.ts"],"mappings":";;;;;;AAA8C;iBAKrC,cAAA,CAAA,GAWF,cAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInputStyles.js","names":[],"sources":["../../../src/tailwind/components/getInputStyles.ts"],"sourcesContent":["import type { CssStyleObject } from './types';\n\n/**\n * Generates input styles\n */\nfunction getInputStyles() {\n return {\n ['.uds-input[list]::-webkit-calendar-picker-indicator']: {\n blockSize: '100% !important', // Fix datalist dropdown arrow positioning.\n },\n ['.uds-input::-webkit-datetime-edit']: {\n color: `rgb(var(--uds-foreground-color-muted))`,\n },\n ['.uds-input::-webkit-calendar-picker-indicator']: {\n display: 'none',\n },\n } as CssStyleObject;\n}\n\nexport { getInputStyles };\n"],"mappings":";;;;;AAKA,SAAS,iBAAiB;CACxB,OAAO;GACJ,wDAAwD,EACvD,WAAW,mBACZ;GACA,sCAAsC,EACrC,OAAO,0CACR;GACA,kDAAkD,EACjD,SAAS,QACV;EACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getResponsiveTextStyles.d.cts","names":[],"sources":["../../../src/tailwind/components/getResponsiveTextStyles.ts"],"mappings":";;;;;cAqBM,gBAAA,GAAoB,OAAA;AAAA,cAyGpB,eAAA,GAAmB,MAAA,EAAQ,qBAAA,KAAqB,cAAA;AAAA,cAIhD,uBAAA,GAA2B,MAAA,EAAQ,qBAAA,KA4BlC,cAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getResponsiveTextStyles.d.ts","names":[],"sources":["../../../src/tailwind/components/getResponsiveTextStyles.ts"],"mappings":";;;;;cAqBM,gBAAA,GAAoB,OAAA;AAAA,cAyGpB,eAAA,GAAmB,MAAA,EAAQ,qBAAA,KAAqB,cAAA;AAAA,cAIhD,uBAAA,GAA2B,MAAA,EAAQ,qBAAA,KA4BlC,cAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getResponsiveTextStyles.js","names":[],"sources":["../../../src/tailwind/components/getResponsiveTextStyles.ts"],"sourcesContent":["import type { UniversalTokensConfig } from '@yahoo/uds-config';\nimport {\n FONT_FAMILY_PREFIX,\n FONT_SIZE_PREFIX,\n FONT_SLANT_PREFIX,\n FONT_WEIGHT_PREFIX,\n FONT_WIDTH_PREFIX,\n LETTER_SPACING_PREFIX,\n LINE_HEIGHT_PREFIX,\n TEXT_RESPONSIVE_BREAKPOINT_CLASSNAMES,\n TEXT_RESPONSIVE_CLASSNAME,\n TEXT_TRANSFORM_PREFIX,\n} from '@yahoo/uds-css-tokens';\nimport { textVariants } from '@yahoo/uds-fixtures';\nimport type { BreakpointWithBase, TypographyStyle } from '@yahoo/uds-types';\nimport { isString } from 'lodash';\n\nimport { assertUnreachable } from '../../utils/assertUnreachable';\nimport { entries } from '../../utils/entries';\nimport type { CssStyleObject } from './types';\n\nconst textVariantsSafe = (variant: string) => variant.replace('/', '-');\nconst BASE_SIZE = 16; // Base size in pixels for rem calculations\n\nconst toRem = (size: number) => `${size / BASE_SIZE}rem`;\n\nconst mapClassNames = (name: keyof typeof TEXT_RESPONSIVE_BREAKPOINT_CLASSNAMES) =>\n '.' + TEXT_RESPONSIVE_BREAKPOINT_CLASSNAMES[name];\n\nconst getValue = (\n config: UniversalTokensConfig,\n variant: keyof UniversalTokensConfig['typography'],\n key: keyof TypographyStyle,\n breakpoint: BreakpointWithBase,\n): string => {\n const data = config.typography[variant]?.[key];\n\n if (!data) {\n throw new Error(`Missing typography data for variant \"${variant}\" and key \"${key}\"`);\n }\n\n const value = breakpoint === 'base' ? data.base : data.breakpoints?.[breakpoint];\n\n if (!value) {\n throw new Error(\n `Missing value for variant \"${variant}\", key \"${key}\", and breakpoint \"${breakpoint}\"`,\n );\n }\n\n if (isString(value)) {\n return value;\n }\n\n switch (value.type) {\n case 'px':\n return toRem(value.value);\n case 'unitless':\n return String(value.value);\n }\n\n return assertUnreachable(value);\n};\n\nconst convertFontAlias = (config: UniversalTokensConfig, value: string) => {\n if (value in config.font) {\n return `var(--${FONT_FAMILY_PREFIX}-${value})`;\n }\n\n return value;\n};\n\nconst cssVariablesForBreakpoint = (config: UniversalTokensConfig, breakpoint: BreakpointWithBase) =>\n Object.fromEntries(\n textVariants.flatMap((variant) => {\n const safeVariant = textVariantsSafe(variant);\n\n return [\n [\n `--${FONT_FAMILY_PREFIX}-${safeVariant}`,\n convertFontAlias(config, getValue(config, variant, 'fontFamily', breakpoint)),\n ],\n [`--${FONT_SIZE_PREFIX}-${safeVariant}`, getValue(config, variant, 'fontSize', breakpoint)],\n [\n `--${FONT_WEIGHT_PREFIX}-${safeVariant}`,\n getValue(config, variant, 'fontWeight', breakpoint),\n ],\n [\n `--${FONT_SLANT_PREFIX}-${safeVariant}`,\n getValue(config, variant, 'fontSlant', breakpoint),\n ],\n [\n `--${FONT_WIDTH_PREFIX}-${safeVariant}`,\n getValue(config, variant, 'fontWidth', breakpoint),\n ],\n [\n `--${LINE_HEIGHT_PREFIX}-${safeVariant}`,\n getValue(config, variant, 'lineHeight', breakpoint),\n ],\n [\n `--${TEXT_TRANSFORM_PREFIX}-${safeVariant}`,\n getValue(config, variant, 'textTransform', breakpoint),\n ],\n [\n `--${LETTER_SPACING_PREFIX}-${safeVariant}`,\n getValue(config, variant, 'letterSpacing', breakpoint),\n ],\n ];\n }),\n ) as unknown as CssStyleObject;\n\nconst tailwindConfigPerVariant = (prefix: string) =>\n Object.fromEntries(\n textVariants.map(textVariantsSafe).map((variant) => [variant, `var(--${prefix}-${variant})`]),\n );\n\nconst RESPONSIVE_TAILWIND_CONFIG_MAP = {\n fontFamily: tailwindConfigPerVariant(FONT_FAMILY_PREFIX),\n fontWeight: tailwindConfigPerVariant(FONT_WEIGHT_PREFIX),\n fontSlant: tailwindConfigPerVariant(FONT_SLANT_PREFIX),\n fontWidth: tailwindConfigPerVariant(FONT_WIDTH_PREFIX),\n fontSize: tailwindConfigPerVariant(FONT_SIZE_PREFIX),\n lineHeight: tailwindConfigPerVariant(LINE_HEIGHT_PREFIX),\n textTransform: tailwindConfigPerVariant(TEXT_TRANSFORM_PREFIX),\n letterSpacing: tailwindConfigPerVariant(LETTER_SPACING_PREFIX),\n};\n\nconst getBaseTextVars = (config: UniversalTokensConfig) => {\n return cssVariablesForBreakpoint(config, 'base');\n};\n\nconst getResponsiveTextStyles = (config: UniversalTokensConfig) => {\n // Mobile first approach: find the smallest breakpoint\n const breakpoints = entries(config.breakpoints).sort(\n ([, { value: minWidthA }], [, { value: minWidthB }]) => minWidthA - minWidthB,\n );\n\n return {\n // Order necessary for CSS specificity.\n // 1. Class to opt-in an element and its children to responsive text styles.\n [`.${TEXT_RESPONSIVE_CLASSNAME}`]: Object.fromEntries(\n breakpoints.map(([name, { value: minWidth }]) => [\n // If its the smallest breakpoint, we set the base styles\n `@media (min-width: ${minWidth}px)`,\n cssVariablesForBreakpoint(config, name),\n ]),\n ),\n\n // 2. Classes for locking to a specific breakpoint.\n [mapClassNames('base')]: cssVariablesForBreakpoint(config, 'base'),\n\n [mapClassNames('defaultBreakpoint')]: cssVariablesForBreakpoint(\n config,\n config.globalDefaults.breakpoint,\n ),\n\n ...Object.fromEntries(\n breakpoints.map(([name]) => [mapClassNames(name), cssVariablesForBreakpoint(config, name)]),\n ),\n } as CssStyleObject;\n};\n\nexport {\n cssVariablesForBreakpoint,\n getBaseTextVars,\n getResponsiveTextStyles,\n RESPONSIVE_TAILWIND_CONFIG_MAP,\n textVariantsSafe,\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.cts","names":[],"sources":["../../../src/tailwind/components/types.ts"],"mappings":";;;;KAQY,iBAAA,GAAoB,MAAA,mBAAyB,aAAA;AAAA,KAE7C,cAAA,GAAiB,MAAA,eAE3B,iBAAA,GAAoB,MAAA,SAAe,iBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/tailwind/components/types.ts"],"mappings":";;;;KAQY,iBAAA,GAAoB,MAAA,mBAAyB,aAAA;AAAA,KAE7C,cAAA,GAAiB,MAAA,eAE3B,iBAAA,GAAoB,MAAA,SAAe,iBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultTailwindThemeAsUdsConfig.d.cts","names":[],"sources":["../../src/tailwind/defaultTailwindThemeAsUdsConfig.ts"],"mappings":";;;;;KAGK,mBAAA;AAAA,KACA,WAAA,GAAc,OAAA,cAAqB,oBAAA,CAAqB,QAAA,EAAU,mBAAA;AAAA,cA+C1D,gBAAA;oMAGZ,aAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultTailwindThemeAsUdsConfig.d.ts","names":[],"sources":["../../src/tailwind/defaultTailwindThemeAsUdsConfig.ts"],"mappings":";;;;;KAGK,mBAAA;AAAA,KACA,WAAA,GAAc,OAAA,cAAqB,oBAAA,CAAqB,QAAA,EAAU,mBAAA;AAAA,cA+C1D,gBAAA;oMAGZ,aAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultTailwindThemeAsUdsConfig.js","names":[],"sources":["../../src/tailwind/defaultTailwindThemeAsUdsConfig.ts"],"sourcesContent":["import type { TextVariant } from '@yahoo/uds-types';\nimport type defaultTailwindTheme from 'tailwindcss/defaultTheme';\n\ntype TwFontSizeToExclude = '7xl' | '8xl' | '9xl';\ntype TwdFontSize = Exclude<keyof typeof defaultTailwindTheme.fontSize, TwFontSizeToExclude>;\n\nconst fontSizeMap: Record<Exclude<TextVariant, 'legal1' | 'legal1/emphasized'>, TwdFontSize> = {\n display1: '6xl',\n display2: '5xl',\n display3: '4xl',\n title1: '3xl',\n title2: '2xl',\n title3: 'xl',\n title4: 'lg',\n headline1: 'base',\n body1: 'base',\n label1: 'sm',\n label2: 'sm',\n label3: 'sm',\n label4: 'sm',\n caption1: 'xs',\n caption2: 'xs',\n 'display1/emphasized': '6xl',\n 'display2/emphasized': '5xl',\n 'display3/emphasized': '4xl',\n 'title1/emphasized': '3xl',\n 'title2/emphasized': '2xl',\n 'title3/emphasized': 'xl',\n 'title4/emphasized': 'lg',\n 'headline1/emphasized': 'base',\n 'body1/emphasized': 'base',\n 'label1/emphasized': 'sm',\n 'label2/emphasized': 'sm',\n 'label3/emphasized': 'sm',\n 'label4/emphasized': 'sm',\n 'caption1/emphasized': 'xs',\n 'caption2/emphasized': 'xs',\n ui1: 'xs',\n ui2: 'xs',\n ui3: 'xs',\n ui4: 'xs',\n ui5: 'xs',\n ui6: 'xs',\n 'ui1/emphasized': 'xs',\n 'ui2/emphasized': 'xs',\n 'ui3/emphasized': 'xs',\n 'ui4/emphasized': 'xs',\n 'ui5/emphasized': 'xs',\n 'ui6/emphasized': 'xs',\n};\n\nexport const udsToTailwindMap = {\n fontSize: fontSizeMap,\n lineHeight: fontSizeMap,\n};\n"],"mappings":";;AAMA,MAAM,cAAyF;CAC7F,UAAU;CACV,UAAU;CACV,UAAU;CACV,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,UAAU;CACV,uBAAuB;CACvB,uBAAuB;CACvB,uBAAuB;CACvB,qBAAqB;CACrB,qBAAqB;CACrB,qBAAqB;CACrB,qBAAqB;CACrB,wBAAwB;CACxB,oBAAoB;CACpB,qBAAqB;CACrB,qBAAqB;CACrB,qBAAqB;CACrB,qBAAqB;CACrB,uBAAuB;CACvB,uBAAuB;CACvB,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CACnB;AAED,MAAa,mBAAmB;CAC9B,UAAU;CACV,YAAY;CACb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"a11y.js","names":[],"sources":["../../../src/tailwind/plugins/a11y.ts"],"sourcesContent":["import plugin from 'tailwindcss/plugin.js';\n\nimport { getFocusRingStyles } from '../components/getFocusRingStyles';\nimport { getHitTargetStyles } from '../components/getHitTargetStyles';\nimport type { TailwindPluginOptions } from '../utils/composeTailwindPlugins';\n\nconst a11yPlugin = plugin.withOptions<TailwindPluginOptions>(\n () =>\n ({ addComponents }) => {\n // TODO: Skip when `useImportNamespace`?\n const hitTargetStyles = getHitTargetStyles();\n addComponents(hitTargetStyles);\n\n // TODO: Skip when `useImportNamespace`?\n const focusRingStyles = getFocusRingStyles();\n addComponents(focusRingStyles);\n },\n\n () => ({\n // Guarantee that the dark mode class is not purged\n safelist: ['uds-hit-target', 'uds-ring'],\n theme: {\n extend: {\n /**\n * Used in @ariakit/react https://ariakit.org/guide/styling#aria\n * By default, Tailwind offers all of these. Including in this config\n * to provide links to ariakit docs for ones that are shared between the two.\n * This is not exhaustive, and only includes the shared ones at the moment.\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L17\n */\n aria: {\n /** https://ariakit.org/guide/styling#aria-checked */\n checked: 'checked=\"true\"',\n /** https://ariakit.org/guide/styling#aria-disabled */\n disabled: 'disabled=\"true\"',\n /** https://ariakit.org/guide/styling#aria-expanded */\n expanded: 'expanded=\"true\"',\n /** https://ariakit.org/guide/styling#aria-invalid */\n invalid: 'aria-invalid=\"true\"',\n },\n /**\n * Used in @ariakit/react https://ariakit.org/guide/styling#css-selectors\n * By default, Tailwind does not include any values for this option\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L888\n */\n data: {\n active: 'active=\"true\"',\n 'active-item': 'active-item=\"true\"',\n autofill: 'autofill=\"true\"',\n backdrop: 'backdrop=\"true\"',\n enter: 'enter=\"true\"',\n leave: 'leave=\"true\"',\n 'focus-visible': 'focus-visible=\"true\"',\n },\n },\n },\n }),\n);\n\nexport { a11yPlugin };\n"],"mappings":";;;;;AAMA,MAAM,aAAa,OAAO,mBAErB,EAAE,oBAAoB;CAGrB,cADwB,oBACK,CAAC;CAI9B,cADwB,oBACK,CAAC;UAG3B;CAEL,UAAU,CAAC,kBAAkB,WAAW;CACxC,OAAO,EACL,QAAQ;;;;;;;;EAQN,MAAM;;GAEJ,SAAS;;GAET,UAAU;;GAEV,UAAU;;GAEV,SAAS;GACV;;;;;;EAMD,MAAM;GACJ,QAAQ;GACR,eAAe;GACf,UAAU;GACV,UAAU;GACV,OAAO;GACP,OAAO;GACP,iBAAiB;GAClB;EACF,EACF;CACF,EACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blurBgFallback.js","names":[],"sources":["../../../src/tailwind/plugins/blurBgFallback.ts"],"sourcesContent":["import {\n BACKGROUND_BLUR_COLOR_PREFIX,\n BACKGROUND_BLUR_FALLBACK_COLOR_PREFIX,\n} from '@yahoo/uds-css-tokens';\nimport plugin from 'tailwindcss/plugin.js';\n\nimport type { TailwindPluginOptions } from '../utils/composeTailwindPlugins';\n\n// .uds-bgBlurFillFallback — for the element that has the fill property\n// .uds-bgBlurFallback — for the element that has the backdrop-filter property\n\nconst blurBgFallbackPlugin = plugin.withOptions<TailwindPluginOptions>(\n () =>\n ({ addUtilities }) => {\n addUtilities({\n '.uds-bgBlurFillFallback': {\n fill: `var(--${BACKGROUND_BLUR_FALLBACK_COLOR_PREFIX})`,\n },\n\n '.uds-bgBlurFallback': {\n backgroundColor: `var(--${BACKGROUND_BLUR_FALLBACK_COLOR_PREFIX})`,\n },\n\n '@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))': {\n '.uds-bgBlurFillFallback': {\n fill: `var(--${BACKGROUND_BLUR_COLOR_PREFIX})`,\n },\n '.uds-bgBlurFallback': {\n backgroundColor: `var(--${BACKGROUND_BLUR_COLOR_PREFIX})`,\n WebkitBackdropFilter: 'var(--uds-backdrop-blur)',\n backdropFilter: 'var(--uds-backdrop-blur)',\n },\n },\n\n '@media (prefers-reduced-transparency)': {\n '.uds-bgBlurFillFallback': {\n fill: `var(--${BACKGROUND_BLUR_FALLBACK_COLOR_PREFIX})`,\n },\n '.uds-bgBlurFallback': {\n backgroundColor: `var(--${BACKGROUND_BLUR_FALLBACK_COLOR_PREFIX})`,\n WebkitBackdropFilter: 'none',\n backdropFilter: 'none',\n },\n },\n });\n },\n\n () => ({\n safelist: ['uds-bgBlurFillFallback', 'uds-bgBlurFallback'],\n }),\n);\n\nexport { blurBgFallbackPlugin };\n"],"mappings":";;;;AAWA,MAAM,uBAAuB,OAAO,mBAE/B,EAAE,mBAAmB;CACpB,aAAa;EACX,2BAA2B,EACzB,MAAM,SAAS,sCAAsC,IACtD;EAED,uBAAuB,EACrB,iBAAiB,SAAS,sCAAsC,IACjE;EAED,kFAAkF;GAChF,2BAA2B,EACzB,MAAM,SAAS,6BAA6B,IAC7C;GACD,uBAAuB;IACrB,iBAAiB,SAAS,6BAA6B;IACvD,sBAAsB;IACtB,gBAAgB;IACjB;GACF;EAED,yCAAyC;GACvC,2BAA2B,EACzB,MAAM,SAAS,sCAAsC,IACtD;GACD,uBAAuB;IACrB,iBAAiB,SAAS,sCAAsC;IAChE,sBAAsB;IACtB,gBAAgB;IACjB;GACF;EACF,CAAC;UAGC,EACL,UAAU,CAAC,0BAA0B,qBAAqB,EAC3D,EACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"borderRadius.js","names":[],"sources":["../../../src/tailwind/plugins/borderRadius.ts"],"sourcesContent":["import { BORDER_RADIUS_PREFIX } from '@yahoo/uds-css-tokens';\nimport { DEFAULT_SCALE_MODE } from '@yahoo/uds-modes';\nimport type { BorderRadiusConfig } from '@yahoo/uds-types';\nimport plugin from 'tailwindcss/plugin.js';\n\nimport { fromEntries } from '../../utils/fromEntries';\nimport type { TailwindPluginOptions } from '../utils/composeTailwindPlugins';\nimport { shouldNotMergeTokensIntoTailwindTheme } from '../utils/composeTailwindPlugins';\n\nconst UDS_BORDER_RADIUS_THEME_KEY = 'udsBorderRadius';\n\nconst udsBorderRadiusToCSSVariable = (token: string) => `var(--${BORDER_RADIUS_PREFIX}-${token})`;\n\nconst getBorderRadiusTheme = (\n config: BorderRadiusConfig,\n mergeTokensIntoTailwindTheme: boolean,\n) => {\n /**\n * Given the UDS border radius tokens in config (none, xs, sm, md, lg, xl, full), create a tailwind\n * border radius theme value that points to the corresponding UDS CSS variables.\n *\n * For example:\n *\n * {\n * sm: 'var(--uds-border-radius-sm)',\n * md: 'var(--uds-border-radius-md)',\n * }\n *\n * Note: The values of the CSS variables are defined elsewhere. This code only ensures the Tailwind-generated\n * classes are mapped to the correct CSS variable.\n */\n const udsBorderRadii = fromEntries(\n Object.keys(config).map((udsAlias) => [udsAlias, udsBorderRadiusToCSSVariable(udsAlias)]),\n );\n\n if (!mergeTokensIntoTailwindTheme) {\n // Store these values namespaced in the tailwind theme to avoid overwriting default Tailwind border radius values.\n // This will be used in the automation CSS generation to map stored values to UDS CSS variables.\n return {\n [UDS_BORDER_RADIUS_THEME_KEY]: udsBorderRadii,\n };\n }\n\n return {\n // Store these values namespaced in the tailwind theme to avoid overwriting default Tailwind border radius values.\n // This will be used in the automation CSS generation to map stored values to UDS CSS variables.\n [UDS_BORDER_RADIUS_THEME_KEY]: udsBorderRadii,\n\n // Also overwrite the default Tailwind border radius theme values with UDS values for consistency.\n borderRadius: {\n ...udsBorderRadii,\n\n // Set the Tailwind 'DEFAULT' tailwind border radius to map to UDS 'sm' border radius\n DEFAULT: udsBorderRadiusToCSSVariable('sm'),\n\n // Set the Tailwind 'sm' tailwind border radius to map to UDS 'xs' border radius\n // See: https://ouryahoo.slack.com/archives/C04TLTQN6EM/p1724352657515249\n sm: udsBorderRadiusToCSSVariable('xs'),\n },\n };\n};\n\nconst borderRadiusPlugin = plugin.withOptions<TailwindPluginOptions>(\n () =>\n ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n 'uds-border-radius': (value) => ({\n 'border-radius': value,\n }),\n\n 'uds-border-top-start-radius': (value) => ({\n 'border-start-start-radius': value,\n }),\n\n 'uds-border-top-end-radius': (value) => ({\n 'border-start-end-radius': value,\n }),\n\n 'uds-border-bottom-start-radius': (value) => ({\n 'border-end-start-radius': value,\n }),\n\n 'uds-border-bottom-end-radius': (value) => ({\n 'border-end-end-radius': value,\n }),\n },\n { values: theme(UDS_BORDER_RADIUS_THEME_KEY) },\n );\n },\n\n ({ config, disableOverrideTailwindTheme }) => {\n const shouldNotMergeBorderRadiusTokensIntoTailwindTheme = shouldNotMergeTokensIntoTailwindTheme(\n disableOverrideTailwindTheme,\n 'borderRadius',\n );\n\n return {\n theme: {\n extend: {\n ...getBorderRadiusTheme(\n // The border radius values are currently stored in the config from the default scale mode.\n config.scaleMode[DEFAULT_SCALE_MODE].borderRadius,\n !shouldNotMergeBorderRadiusTokensIntoTailwindTheme,\n ),\n },\n },\n };\n },\n);\n\nexport {\n borderRadiusPlugin,\n getBorderRadiusTheme,\n UDS_BORDER_RADIUS_THEME_KEY,\n udsBorderRadiusToCSSVariable,\n};\n"],"mappings":";;;;;;;AASA,MAAM,8BAA8B;AAEpC,MAAM,gCAAgC,UAAkB,SAAS,qBAAqB,GAAG,MAAM;AAE/F,MAAM,wBACJ,QACA,iCACG;;;;;;;;;;;;;;;CAeH,MAAM,iBAAiB,YACrB,OAAO,KAAK,OAAO,CAAC,KAAK,aAAa,CAAC,UAAU,6BAA6B,SAAS,CAAC,CAAC,CAC1F;CAED,IAAI,CAAC,8BAGH,OAAO,GACJ,8BAA8B,gBAChC;CAGH,OAAO;GAGJ,8BAA8B;EAG/B,cAAc;GACZ,GAAG;GAGH,SAAS,6BAA6B,KAAK;GAI3C,IAAI,6BAA6B,KAAK;GACvC;EACF;;AAGH,MAAM,qBAAqB,OAAO,mBAE7B,EAAE,gBAAgB,YAAY;CAC7B,eACE;EACE,sBAAsB,WAAW,EAC/B,iBAAiB,OAClB;EAED,gCAAgC,WAAW,EACzC,6BAA6B,OAC9B;EAED,8BAA8B,WAAW,EACvC,2BAA2B,OAC5B;EAED,mCAAmC,WAAW,EAC5C,2BAA2B,OAC5B;EAED,iCAAiC,WAAW,EAC1C,yBAAyB,OAC1B;EACF,EACD,EAAE,QAAQ,MAAM,4BAA4B,EAAE,CAC/C;IAGJ,EAAE,QAAQ,mCAAmC;CAC5C,MAAM,oDAAoD,sCACxD,8BACA,eACD;CAED,OAAO,EACL,OAAO,EACL,QAAQ,EACN,GAAG,qBAED,OAAO,UAAU,oBAAoB,cACrC,CAAC,kDACF,EACF,EACF,EACF;EAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"borderWidth.js","names":[],"sources":["../../../src/tailwind/plugins/borderWidth.ts"],"sourcesContent":["import { BORDER_WIDTH_PREFIX } from '@yahoo/uds-css-tokens';\nimport { DEFAULT_SCALE_MODE } from '@yahoo/uds-modes';\nimport type { BorderWidthConfig } from '@yahoo/uds-types';\nimport plugin from 'tailwindcss/plugin.js';\n\nimport { fromEntries } from '../../utils/fromEntries';\nimport type { TailwindPluginOptions } from '../utils/composeTailwindPlugins';\nimport { shouldNotMergeTokensIntoTailwindTheme } from '../utils/composeTailwindPlugins';\n\nconst UDS_BORDER_WIDTH_THEME_KEY = 'udsBorderWidth';\n\nconst udsBorderWidthToCSSVariable = (token: string) => `var(--${BORDER_WIDTH_PREFIX}-${token})`;\n\nconst getBorderWidthTheme = (config: BorderWidthConfig, mergeTokensIntoTailwindTheme: boolean) => {\n /**\n * Given the UDS border width tokens in config (none, thin, medium, thick), create a tailwind\n * border width theme value that points to the corresponding UDS CSS variables.\n *\n * For example:\n *\n * {\n * thin: 'var(--uds-border-width-thin)',\n * thick: 'var(--uds-border-width-thick)',\n * }\n *\n * Note: The values of the CSS variables are defined elsewhere. This code only ensures the Tailwind-generated\n * classes are mapped to the correct CSS variable.\n */\n const udsBorderWidths = fromEntries(\n Object.keys(config).map((udsAlias) => [udsAlias, udsBorderWidthToCSSVariable(udsAlias)]),\n );\n\n if (!mergeTokensIntoTailwindTheme) {\n // Store these values namespaced in the tailwind theme to avoid overwriting default Tailwind border width values.\n // This will be used in the automation CSS generation to map stored values to UDS CSS variables.\n return {\n [UDS_BORDER_WIDTH_THEME_KEY]: udsBorderWidths,\n };\n }\n\n const widths = {\n ...udsBorderWidths,\n\n // Set the Tailwind 'DEFAULT' tailwind border width to map to UDS 'thin' border width\n DEFAULT: udsBorderWidthToCSSVariable('thin'),\n\n // Set the Tailwind '2' tailwind border width to map to UDS 'medium' border width\n '2': udsBorderWidthToCSSVariable('medium'),\n\n // Set the Tailwind '4' tailwind border width to map to UDS 'thick' border width\n '4': udsBorderWidthToCSSVariable('thick'),\n };\n\n return {\n // Store these values namespaced in the tailwind theme to avoid overwriting default Tailwind border width values.\n // This will be used in the automation CSS generation to map stored values to UDS CSS variables.\n [UDS_BORDER_WIDTH_THEME_KEY]: udsBorderWidths,\n\n // Also overwrite the default Tailwind border width theme values with UDS values for consistency.\n borderWidth: widths,\n outlineWidth: { ...widths, DEFAULT: '2px' },\n outlineOffset: { ...widths, DEFAULT: '2px' },\n };\n};\n\nconst borderWidthPlugin = plugin.withOptions<TailwindPluginOptions>(\n () =>\n ({ matchUtilities, theme }) => {\n matchUtilities(\n {\n 'uds-border-width': (value) => ({\n 'border-width': value,\n }),\n\n 'uds-border-width-x': (value) => ({\n 'border-left-width': value,\n 'border-right-width': value,\n }),\n\n 'uds-border-width-y': (value) => ({\n 'border-top-width': value,\n 'border-bottom-width': value,\n }),\n\n 'uds-border-width-top': (value) => ({\n 'border-top-width': value,\n }),\n\n 'uds-border-width-right': (value) => ({\n 'border-right-width': value,\n }),\n\n 'uds-border-width-bottom': (value) => ({\n 'border-bottom-width': value,\n }),\n\n 'uds-border-width-left': (value) => ({\n 'border-left-width': value,\n }),\n\n 'uds-border-width-start': (value) => ({\n 'border-inline-start-width': value,\n }),\n\n 'uds-border-width-end': (value) => ({\n 'border-inline-end-width': value,\n }),\n },\n { values: theme(UDS_BORDER_WIDTH_THEME_KEY) },\n );\n },\n\n ({ config, disableOverrideTailwindTheme }) => {\n const shouldNotMergeBorderWidthTokensIntoTailwindTheme = shouldNotMergeTokensIntoTailwindTheme(\n disableOverrideTailwindTheme,\n 'borderWidth',\n );\n\n return {\n theme: {\n extend: {\n ...getBorderWidthTheme(\n // The border width values are currently stored in the config from the default scale mode.\n config.scaleMode[DEFAULT_SCALE_MODE].borderWidth,\n !shouldNotMergeBorderWidthTokensIntoTailwindTheme,\n ),\n },\n },\n };\n },\n);\n\nexport { borderWidthPlugin, UDS_BORDER_WIDTH_THEME_KEY, udsBorderWidthToCSSVariable };\n"],"mappings":";;;;;;;AASA,MAAM,6BAA6B;AAEnC,MAAM,+BAA+B,UAAkB,SAAS,oBAAoB,GAAG,MAAM;AAE7F,MAAM,uBAAuB,QAA2B,iCAA0C;;;;;;;;;;;;;;;CAehG,MAAM,kBAAkB,YACtB,OAAO,KAAK,OAAO,CAAC,KAAK,aAAa,CAAC,UAAU,4BAA4B,SAAS,CAAC,CAAC,CACzF;CAED,IAAI,CAAC,8BAGH,OAAO,GACJ,6BAA6B,iBAC/B;CAGH,MAAM,SAAS;EACb,GAAG;EAGH,SAAS,4BAA4B,OAAO;EAG5C,KAAK,4BAA4B,SAAS;EAG1C,KAAK,4BAA4B,QAAQ;EAC1C;CAED,OAAO;GAGJ,6BAA6B;EAG9B,aAAa;EACb,cAAc;GAAE,GAAG;GAAQ,SAAS;GAAO;EAC3C,eAAe;GAAE,GAAG;GAAQ,SAAS;GAAO;EAC7C;;AAGH,MAAM,oBAAoB,OAAO,mBAE5B,EAAE,gBAAgB,YAAY;CAC7B,eACE;EACE,qBAAqB,WAAW,EAC9B,gBAAgB,OACjB;EAED,uBAAuB,WAAW;GAChC,qBAAqB;GACrB,sBAAsB;GACvB;EAED,uBAAuB,WAAW;GAChC,oBAAoB;GACpB,uBAAuB;GACxB;EAED,yBAAyB,WAAW,EAClC,oBAAoB,OACrB;EAED,2BAA2B,WAAW,EACpC,sBAAsB,OACvB;EAED,4BAA4B,WAAW,EACrC,uBAAuB,OACxB;EAED,0BAA0B,WAAW,EACnC,qBAAqB,OACtB;EAED,2BAA2B,WAAW,EACpC,6BAA6B,OAC9B;EAED,yBAAyB,WAAW,EAClC,2BAA2B,OAC5B;EACF,EACD,EAAE,QAAQ,MAAM,2BAA2B,EAAE,CAC9C;IAGJ,EAAE,QAAQ,mCAAmC;CAC5C,MAAM,mDAAmD,sCACvD,8BACA,cACD;CAED,OAAO,EACL,OAAO,EACL,QAAQ,EACN,GAAG,oBAED,OAAO,UAAU,oBAAoB,aACrC,CAAC,iDACF,EACF,EACF,EACF;EAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"breakpoints.js","names":[],"sources":["../../../src/tailwind/plugins/breakpoints.ts"],"sourcesContent":["import type { BreakpointsConfig } from '@yahoo/uds-types';\nimport plugin from 'tailwindcss/plugin.js';\n\nimport { entries } from '../..//utils/entries';\nimport { mapValues } from '../..//utils/mapValues';\nimport { assertUnreachable } from '../../utils/assertUnreachable';\nimport type { TailwindPluginOptions } from '../utils/composeTailwindPlugins';\nimport { shouldNotMergeTokensIntoTailwindTheme } from '../utils/composeTailwindPlugins';\n\nconst UDS_BREAKPOINTS_THEME_KEY = 'udsBreakpoints';\n\nconst getScreensTheme = (config: BreakpointsConfig, mergeTokensIntoTailwindTheme: boolean) => {\n const breakpoints = mapValues(config, (breakpoint) => {\n switch (breakpoint.type) {\n case 'px':\n return `${breakpoint.value}px`;\n }\n\n return assertUnreachable(breakpoint.type);\n });\n\n if (!mergeTokensIntoTailwindTheme) {\n // Store these values namespaced in the tailwind theme to avoid overwriting default Tailwind screens values.\n // This will be used in the automation CSS generation to map stored values to UDS CSS variables.\n return {\n [UDS_BREAKPOINTS_THEME_KEY]: breakpoints,\n };\n }\n\n return {\n // Store these values namespaced in the tailwind theme to avoid overwriting default Tailwind screens values.\n // This will be used in the automation CSS generation to map stored values to UDS CSS variables.\n [UDS_BREAKPOINTS_THEME_KEY]: breakpoints,\n\n // Also overwrite the default Tailwind screens theme values with UDS values for consistency.\n screens: breakpoints,\n };\n};\n\nconst breakpointsPlugin = plugin.withOptions<TailwindPluginOptions>(\n // No code-generation needed.\n ({ config }) =>\n ({ addVariant }) => {\n const breakpoints = entries(config.breakpoints).sort(\n ([, { value: minWidthA }], [, { value: minWidthB }]) => minWidthA - minWidthB,\n );\n\n for (const [name, { value: minWidth }] of breakpoints) {\n addVariant(`uds-${name}`, `@media (min-width: ${minWidth}px)`);\n }\n },\n\n ({ config, disableOverrideTailwindTheme }) => {\n const shouldNotMergeScreensTokensIntoTailwindTheme = shouldNotMergeTokensIntoTailwindTheme(\n disableOverrideTailwindTheme,\n 'screens',\n );\n\n return {\n theme: {\n extend: {\n ...getScreensTheme(config.breakpoints, !shouldNotMergeScreensTokensIntoTailwindTheme),\n },\n },\n };\n },\n);\n\nexport { breakpointsPlugin, getScreensTheme, UDS_BREAKPOINTS_THEME_KEY };\n"],"mappings":";;;;;;;AASA,MAAM,4BAA4B;AAElC,MAAM,mBAAmB,QAA2B,iCAA0C;CAC5F,MAAM,cAAc,UAAU,SAAS,eAAe;EACpD,QAAQ,WAAW,MAAnB;GACE,KAAK,MACH,OAAO,GAAG,WAAW,MAAM;;EAG/B,OAAO,kBAAkB,WAAW,KAAK;GACzC;CAEF,IAAI,CAAC,8BAGH,OAAO,GACJ,4BAA4B,aAC9B;CAGH,OAAO;GAGJ,4BAA4B;EAG7B,SAAS;EACV;;AAGH,MAAM,oBAAoB,OAAO,aAE9B,EAAE,cACA,EAAE,iBAAiB;CAClB,MAAM,cAAc,QAAQ,OAAO,YAAY,CAAC,MAC7C,GAAG,EAAE,OAAO,cAAc,GAAG,EAAE,OAAO,iBAAiB,YAAY,UACrE;CAED,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,eAAe,aACxC,WAAW,OAAO,QAAQ,sBAAsB,SAAS,KAAK;IAInE,EAAE,QAAQ,mCAAmC;CAC5C,MAAM,+CAA+C,sCACnD,8BACA,UACD;CAED,OAAO,EACL,OAAO,EACL,QAAQ,EACN,GAAG,gBAAgB,OAAO,aAAa,CAAC,6CAA6C,EACtF,EACF,EACF;EAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"colors.js","names":[],"sources":["../../../src/tailwind/plugins/colors.ts"],"sourcesContent":["import {\n BACKGROUND_COLOR_PREFIX,\n DARK_COLOR_MODE_CLASSNAME,\n INVERT_COLOR_MODE_CLASSNAME,\n LIGHT_COLOR_MODE_CLASSNAME,\n SYSTEM_COLOR_MODE_CLASSNAME,\n} from '@yahoo/uds-css-tokens';\nimport { DEFAULT_COLOR_MODE } from '@yahoo/uds-modes';\nimport { ALWAYS_PREFIX, deprecatedAlwaysPalette, newAlwaysPalette } from '@yahoo/uds-palette';\nimport { mapKeys } from 'lodash';\nimport plugin from 'tailwindcss/plugin.js';\n\nimport { mapValues } from '../../utils/mapValues';\nimport { parseTokens } from '../../utils/parseTokens';\nimport { addColorModeVars } from '../base/addColorModeVars';\nimport { addColorModeVarsV2 } from '../base/addColorModeVarsV2';\nimport type { TailwindPluginOptions } from '../utils/composeTailwindPlugins';\nimport { getTailwindAsUdsColors } from './getTailwindAsUdsColors';\n\nconst tailwindColorsAsUds = getTailwindAsUdsColors();\n\nconst colorsPlugin = plugin.withOptions<TailwindPluginOptions>(\n ({ config, enableSystemColorMode = false }) =>\n (api) => {\n const tokens = parseTokens(config);\n\n if (enableSystemColorMode) {\n addColorModeVarsV2(tokens, api);\n } else {\n addColorModeVars(tokens, api);\n }\n },\n\n ({ config }) => {\n const tokens = parseTokens(config);\n const colorModeToken = tokens.colorMode[DEFAULT_COLOR_MODE].tailwindConfig;\n const spectrumWithTailwind = mapValues(colorModeToken.spectrum, (hueConfig, hue) => {\n return {\n ...hueConfig,\n ...tailwindColorsAsUds[hue as keyof typeof tailwindColorsAsUds]!,\n };\n });\n\n /* --------------------------------- COLORS --------------------------------- */\n\n const nestedNewAlwaysPalette = mapKeys(newAlwaysPalette, (_, key) =>\n key.replace(ALWAYS_PREFIX, ''),\n );\n\n // Shared across all color groups (i.e. text color, border, background, etc)\n const colors = {\n ...tailwindColorsAsUds,\n ...spectrumWithTailwind,\n ...deprecatedAlwaysPalette,\n\n // Allows accessing new always palette keys via nested path such as `theme('colors.always.white')`\n always: nestedNewAlwaysPalette,\n };\n const textColors = colorModeToken.palette.foreground;\n const backgroundColors = colorModeToken.palette.background;\n const borderColors = colorModeToken.palette.line;\n\n const elevationBackgroundColors = config.elevation\n ? Object.fromEntries(\n Object.keys(config.elevation).map((level) => [\n `elevation-${level}`,\n `var(--${BACKGROUND_COLOR_PREFIX}-elevation-${level})`,\n ]),\n )\n : {};\n\n return {\n darkMode: ['class', DARK_COLOR_MODE_CLASSNAME],\n // Guarantee that the dark mode class is not purged\n safelist: [\n // Guarantee that the light and dark mode class is not purged\n LIGHT_COLOR_MODE_CLASSNAME,\n DARK_COLOR_MODE_CLASSNAME,\n INVERT_COLOR_MODE_CLASSNAME,\n SYSTEM_COLOR_MODE_CLASSNAME,\n ],\n theme: {\n /**\n * Preserve the default values from Tailwind, but also add new values\n * https://tailwindcss.com/docs/theme#extending-the-default-theme\n */\n extend: {\n /**\n * Colors object is included by default, but that does not include UDS semantic border colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L743\n */\n outlineColor: {\n ...borderColors,\n DEFAULT: colors.gray['15'],\n },\n /**\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L133\n */\n colors,\n /**\n * Colors object is included by default, but that does not include UDS semantic background colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L42\n */\n backgroundColor: backgroundColors,\n /**\n * Colors object is included by default, but that does not include UDS semantic text colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L889\n */\n textColor: textColors,\n /**\n * Colors object is included by default, but that does not include UDS semantic border colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L82\n */\n borderColor: borderColors,\n /**\n * Colors object is included by default, but that does not include UDS semantic background colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L253\n */\n fill: backgroundColors,\n /**\n * Colors object is included by default, but that does not include UDS semantic text colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L132\n */\n caretColor: textColors,\n /**\n * Colors object is included by default, but that does not include UDS semantic text colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L759\n */\n placeholderColor: textColors,\n /**\n * Colors object is included by default, but that does not include UDS semantic text colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L890\n */\n textDecorationColor: textColors,\n /**\n * Colors object is included by default, but that does not include UDS semantic border colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L241\n */\n divideColor: borderColors,\n /**\n * Colors object is included by default, but that does not include UDS semantic border colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L761\n */\n ringColor: borderColors,\n /**\n * Colors object is included by default, but that does not include UDS semantic border colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L765\n */\n ringOffsetColor: borderColors,\n /**\n * Colors object is included by default, but that does not include UDS semantic border colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L878\n */\n stroke: borderColors,\n /**\n * Gradient color stops object is included by default, but that does not include UDS palette background colors\n * https://github.com/tailwindlabs/tailwindcss/blob/main/stubs/config.full.js#L42\n */\n gradientColorStops: {\n ...backgroundColors,\n ...elevationBackgroundColors,\n ...colors,\n },\n },\n },\n };\n },\n);\n\nexport { colorsPlugin };\n"],"mappings":";;;;;;;;;;;;AAmBA,MAAM,sBAAsB,wBAAwB;AAEpD,MAAM,eAAe,OAAO,aACzB,EAAE,QAAQ,wBAAwB,aAChC,QAAQ;CACP,MAAM,SAAS,YAAY,OAAO;CAElC,IAAI,uBACF,mBAAmB,QAAQ,IAAI;MAE/B,iBAAiB,QAAQ,IAAI;IAIlC,EAAE,aAAa;CAEd,MAAM,iBADS,YAAY,OACE,CAAC,UAAU,oBAAoB;CAC5D,MAAM,uBAAuB,UAAU,eAAe,WAAW,WAAW,QAAQ;EAClF,OAAO;GACL,GAAG;GACH,GAAG,oBAAoB;GACxB;GACD;CAIF,MAAM,yBAAyB,QAAQ,mBAAmB,GAAG,QAC3D,IAAI,QAAQ,eAAe,GAAG,CAC/B;CAGD,MAAM,SAAS;EACb,GAAG;EACH,GAAG;EACH,GAAG;EAGH,QAAQ;EACT;CACD,MAAM,aAAa,eAAe,QAAQ;CAC1C,MAAM,mBAAmB,eAAe,QAAQ;CAChD,MAAM,eAAe,eAAe,QAAQ;CAE5C,MAAM,4BAA4B,OAAO,YACrC,OAAO,YACL,OAAO,KAAK,OAAO,UAAU,CAAC,KAAK,UAAU,CAC3C,aAAa,SACb,SAAS,wBAAwB,aAAa,MAAM,GACrD,CAAC,CACJ,GACA,EAAE;CAEN,OAAO;EACL,UAAU,CAAC,SAAS,0BAA0B;EAE9C,UAAU;GAER;GACA;GACA;GACA;GACD;EACD,OAAO;;;;;AAKL,QAAQ;;;;;GAKN,cAAc;IACZ,GAAG;IACH,SAAS,OAAO,KAAK;IACtB;;;;GAID;;;;;GAKA,iBAAiB;;;;;GAKjB,WAAW;;;;;GAKX,aAAa;;;;;GAKb,MAAM;;;;;GAKN,YAAY;;;;;GAKZ,kBAAkB;;;;;GAKlB,qBAAqB;;;;;GAKrB,aAAa;;;;;GAKb,WAAW;;;;;GAKX,iBAAiB;;;;;GAKjB,QAAQ;;;;;GAKR,oBAAoB;IAClB,GAAG;IACH,GAAG;IACH,GAAG;IACJ;GACF,EACF;EACF;EAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.js","names":[],"sources":["../../../src/tailwind/plugins/components.ts"],"sourcesContent":["import {\n AvatarConfig,\n BadgeConfig,\n BannerConfig,\n BottomSheetConfig,\n ButtonConfig,\n CheckboxConfig,\n ChipConfig,\n DividerConfig,\n IconButtonConfig,\n InputConfig,\n LinkConfig,\n MenuContentConfig,\n MenuItemConfig,\n ModalConfig,\n PopoverConfig,\n RadioConfig,\n ScrimConfig,\n SwitchConfig,\n TabConfig,\n TabsConfig,\n ToastConfig,\n TooltipConfig,\n} from '@yahoo/uds-automated-config/generatedConfigs';\nimport { generateStyles } from '@yahoo/uds-automated-config/utils';\nimport { opacityMap } from '@yahoo/uds-fixtures';\nimport plugin from 'tailwindcss/plugin.js';\n\nimport type { TailwindPluginOptions } from '../utils/composeTailwindPlugins';\n\nconst componentsPlugin = plugin.withOptions<TailwindPluginOptions>(\n ({\n config,\n previewOptions = {\n generatePseudoStateClassModifier: false,\n },\n }) =>\n ({ addComponents, theme }) => {\n // IconButton inherits Button variant styles\n if (config.button || config.iconButton) {\n const buttonStyles = generateStyles(ButtonConfig, config.button, theme, previewOptions);\n addComponents(buttonStyles);\n\n if (config.iconButton) {\n const iconButtonStyles = generateStyles(\n IconButtonConfig,\n config.iconButton,\n theme,\n previewOptions,\n );\n addComponents(iconButtonStyles);\n }\n }\n\n if (config.divider) {\n const dividerStyles = generateStyles(DividerConfig, config.divider, theme, previewOptions);\n addComponents(dividerStyles);\n }\n\n if (config.link) {\n const linkStyles = generateStyles(LinkConfig, config.link, theme, previewOptions);\n addComponents(linkStyles);\n }\n\n if (config.badge) {\n const badgeStyles = generateStyles(BadgeConfig, config.badge, theme, previewOptions);\n addComponents(badgeStyles);\n }\n\n if (config.radio) {\n const radioStyles = generateStyles(RadioConfig, config.radio, theme, previewOptions);\n addComponents(radioStyles);\n }\n\n if (config.avatar) {\n const avatarStyles = generateStyles(AvatarConfig, config.avatar, theme, previewOptions);\n addComponents(avatarStyles);\n }\n\n if (config.chip) {\n const chipStyles = generateStyles(ChipConfig, config.chip, theme, previewOptions);\n addComponents(chipStyles);\n }\n\n if (config.switch) {\n const switchStyles = generateStyles(SwitchConfig, config.switch, theme, previewOptions);\n addComponents(switchStyles);\n }\n\n if (config.checkbox) {\n const checkboxStyles = generateStyles(\n CheckboxConfig,\n config.checkbox,\n theme,\n previewOptions,\n );\n addComponents(checkboxStyles);\n }\n\n // TODO: May need to ensure portal is inside a importNamespace class\n if (config.menuItem) {\n const menuStyles = generateStyles(MenuItemConfig, config.menuItem, theme, previewOptions);\n addComponents(menuStyles);\n }\n\n if (config.menuContent) {\n const menuContentStyles = generateStyles(\n MenuContentConfig,\n config.menuContent,\n theme,\n previewOptions,\n );\n addComponents(menuContentStyles);\n }\n\n if (config.input) {\n const inputStyles = generateStyles(InputConfig, config.input, theme, previewOptions);\n addComponents(inputStyles);\n }\n\n if (config?.toast) {\n const toastStyles = generateStyles(ToastConfig, config.toast, theme, previewOptions);\n addComponents(toastStyles);\n }\n\n if (config.tooltip) {\n const tooltipStyles = generateStyles(TooltipConfig, config.tooltip, theme, previewOptions);\n addComponents(tooltipStyles);\n }\n\n if (config?.bottomSheet) {\n const bottomSheetStyles = generateStyles(\n BottomSheetConfig,\n config.bottomSheet,\n theme,\n previewOptions,\n );\n addComponents(bottomSheetStyles);\n }\n\n if (config?.scrim) {\n const scrimStyles = generateStyles(ScrimConfig, config.scrim, theme, previewOptions);\n addComponents(scrimStyles);\n }\n\n if (config.popover) {\n const popoverStyles = generateStyles(PopoverConfig, config.popover, theme, previewOptions);\n addComponents(popoverStyles);\n }\n\n const bannerStyles = generateStyles(BannerConfig, config.banner, theme, previewOptions);\n addComponents(bannerStyles);\n\n const tabStyles = generateStyles(TabConfig, config.tab, theme, previewOptions);\n addComponents(tabStyles);\n\n const tabsStyles = generateStyles(TabsConfig, config.tabs, theme, previewOptions);\n addComponents(tabsStyles);\n\n const modalStyles = generateStyles(ModalConfig, config.modal, theme, previewOptions);\n addComponents(modalStyles);\n },\n () => ({\n theme: {\n extend: {\n // Added to route configurable opacity steps through to button opacity/disabled property rendering.\n opacity: opacityMap,\n },\n },\n }),\n);\n\nexport { componentsPlugin };\n"],"mappings":";;;;;;AA8BA,MAAM,mBAAmB,OAAO,aAC7B,EACC,QACA,iBAAiB,EACf,kCAAkC,OACnC,QAEA,EAAE,eAAe,YAAY;CAE5B,IAAI,OAAO,UAAU,OAAO,YAAY;EAEtC,cADqB,eAAe,cAAc,OAAO,QAAQ,OAAO,eAC9C,CAAC;EAE3B,IAAI,OAAO,YAOT,cANyB,eACvB,kBACA,OAAO,YACP,OACA,eAE4B,CAAC;;CAInC,IAAI,OAAO,SAET,cADsB,eAAe,eAAe,OAAO,SAAS,OAAO,eAChD,CAAC;CAG9B,IAAI,OAAO,MAET,cADmB,eAAe,YAAY,OAAO,MAAM,OAAO,eAC1C,CAAC;CAG3B,IAAI,OAAO,OAET,cADoB,eAAe,aAAa,OAAO,OAAO,OAAO,eAC5C,CAAC;CAG5B,IAAI,OAAO,OAET,cADoB,eAAe,aAAa,OAAO,OAAO,OAAO,eAC5C,CAAC;CAG5B,IAAI,OAAO,QAET,cADqB,eAAe,cAAc,OAAO,QAAQ,OAAO,eAC9C,CAAC;CAG7B,IAAI,OAAO,MAET,cADmB,eAAe,YAAY,OAAO,MAAM,OAAO,eAC1C,CAAC;CAG3B,IAAI,OAAO,QAET,cADqB,eAAe,cAAc,OAAO,QAAQ,OAAO,eAC9C,CAAC;CAG7B,IAAI,OAAO,UAOT,cANuB,eACrB,gBACA,OAAO,UACP,OACA,eAE0B,CAAC;CAI/B,IAAI,OAAO,UAET,cADmB,eAAe,gBAAgB,OAAO,UAAU,OAAO,eAClD,CAAC;CAG3B,IAAI,OAAO,aAOT,cAN0B,eACxB,mBACA,OAAO,aACP,OACA,eAE6B,CAAC;CAGlC,IAAI,OAAO,OAET,cADoB,eAAe,aAAa,OAAO,OAAO,OAAO,eAC5C,CAAC;CAG5B,IAAI,QAAQ,OAEV,cADoB,eAAe,aAAa,OAAO,OAAO,OAAO,eAC5C,CAAC;CAG5B,IAAI,OAAO,SAET,cADsB,eAAe,eAAe,OAAO,SAAS,OAAO,eAChD,CAAC;CAG9B,IAAI,QAAQ,aAOV,cAN0B,eACxB,mBACA,OAAO,aACP,OACA,eAE6B,CAAC;CAGlC,IAAI,QAAQ,OAEV,cADoB,eAAe,aAAa,OAAO,OAAO,OAAO,eAC5C,CAAC;CAG5B,IAAI,OAAO,SAET,cADsB,eAAe,eAAe,OAAO,SAAS,OAAO,eAChD,CAAC;CAI9B,cADqB,eAAe,cAAc,OAAO,QAAQ,OAAO,eAC9C,CAAC;CAG3B,cADkB,eAAe,WAAW,OAAO,KAAK,OAAO,eACxC,CAAC;CAGxB,cADmB,eAAe,YAAY,OAAO,MAAM,OAAO,eAC1C,CAAC;CAGzB,cADoB,eAAe,aAAa,OAAO,OAAO,OAAO,eAC5C,CAAC;UAEvB,EACL,OAAO,EACL,QAAQ,EAEN,SAAS,YACV,EACF,EACF,EACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"elevation.js","names":[],"sources":["../../../src/tailwind/plugins/elevation.ts"],"sourcesContent":["import { BORDER_WIDTH_PREFIX, LINE_COLOR_PREFIX } from '@yahoo/uds-css-tokens';\nimport type { ElevationConfig } from '@yahoo/uds-types';\nimport plugin from 'tailwindcss/plugin.js';\n\nimport { entries } from '../../utils/entries';\nimport { fromEntries } from '../../utils/fromEntries';\nimport type { TailwindPluginOptions } from '../utils/composeTailwindPlugins';\nimport { shouldNotMergeTokensIntoTailwindTheme } from '../utils/composeTailwindPlugins';\nimport { getElevationStyles } from '../utils/getElevationStyles';\nimport { UDS_BORDER_WIDTH_THEME_KEY } from './borderWidth';\n\nconst getBorderWidthTheme = (config: ElevationConfig, mergeTokensIntoTailwindTheme: boolean) => {\n const elevationBorderWidths = fromEntries(\n entries(config || {}).map(([level]) => [\n `elevation-${level}`,\n `var(--${BORDER_WIDTH_PREFIX}-elevation-${level})`,\n ]),\n );\n\n if (!mergeTokensIntoTailwindTheme) {\n // Store these values namespaced in the tailwind theme to avoid overwriting default Tailwind border width values.\n // This will be used in the automation CSS generation to map stored values to UDS CSS variables.\n return {\n [UDS_BORDER_WIDTH_THEME_KEY]: elevationBorderWidths,\n };\n }\n\n // Add a \"width-\" prefix to these so they don't collide with border colors\n const namespacedBorderWidths = fromEntries(\n entries(elevationBorderWidths).map(([key, cssVar]) => [`width-${key}`, cssVar]),\n );\n\n return {\n // Store these values namespaced in the tailwind theme to avoid overwriting default Tailwind border width values.\n // This will be used in the automation CSS generation to map stored values to UDS CSS variables.\n [UDS_BORDER_WIDTH_THEME_KEY]: elevationBorderWidths,\n\n // Also overwrite the default Tailwind border width theme values with UDS values for consistency.\n borderWidth: namespacedBorderWidths,\n outlineWidth: namespacedBorderWidths,\n outlineOffset: namespacedBorderWidths,\n };\n};\n\nconst elevationPlugin = plugin.withOptions<TailwindPluginOptions>(\n ({ config }) =>\n ({ addUtilities }) => {\n const elevationStyles = getElevationStyles({ config });\n addUtilities(elevationStyles);\n },\n\n ({ config, disableOverrideTailwindTheme }) => {\n const shouldNotMergeBorderWidthTokensIntoTailwindTheme = shouldNotMergeTokensIntoTailwindTheme(\n disableOverrideTailwindTheme,\n 'borderWidth',\n );\n\n const borderColor = fromEntries(\n entries(config.elevation || {}).map(([level]) => [\n `elevation-${level}`,\n `var(--${LINE_COLOR_PREFIX}-elevation-${level})`,\n ]),\n );\n\n return {\n theme: {\n extend: {\n borderColor,\n outlineColor: borderColor,\n\n ...getBorderWidthTheme(\n config.elevation,\n !shouldNotMergeBorderWidthTokensIntoTailwindTheme,\n ),\n },\n },\n };\n },\n);\n\nexport { elevationPlugin };\n"],"mappings":";;;;;;;;;AAWA,MAAM,uBAAuB,QAAyB,iCAA0C;CAC9F,MAAM,wBAAwB,YAC5B,QAAQ,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CACrC,aAAa,SACb,SAAS,oBAAoB,aAAa,MAAM,GACjD,CAAC,CACH;CAED,IAAI,CAAC,8BAGH,OAAO,GACJ,6BAA6B,uBAC/B;CAIH,MAAM,yBAAyB,YAC7B,QAAQ,sBAAsB,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,SAAS,OAAO,OAAO,CAAC,CAChF;CAED,OAAO;GAGJ,6BAA6B;EAG9B,aAAa;EACb,cAAc;EACd,eAAe;EAChB;;AAGH,MAAM,kBAAkB,OAAO,aAC5B,EAAE,cACA,EAAE,mBAAmB;CAEpB,aADwB,mBAAmB,EAAE,QAAQ,CACzB,CAAC;IAGhC,EAAE,QAAQ,mCAAmC;CAC5C,MAAM,mDAAmD,sCACvD,8BACA,cACD;CAED,MAAM,cAAc,YAClB,QAAQ,OAAO,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAC/C,aAAa,SACb,SAAS,kBAAkB,aAAa,MAAM,GAC/C,CAAC,CACH;CAED,OAAO,EACL,OAAO,EACL,QAAQ;EACN;EACA,cAAc;EAEd,GAAG,oBACD,OAAO,WACP,CAAC,iDACF;EACF,EACF,EACF;EAEJ"}