@yahoo/uds 3.114.0-beta.2 → 3.114.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/automated-config/dist/generated/autoVariants.cjs +3 -0
  2. package/dist/automated-config/dist/generated/autoVariants.d.cts +3 -0
  3. package/dist/automated-config/dist/generated/autoVariants.d.ts +3 -0
  4. package/dist/automated-config/dist/generated/autoVariants.js +3 -0
  5. package/dist/automated-config/dist/generated/generatedConfigs.cjs +1883 -0
  6. package/dist/automated-config/dist/generated/generatedConfigs.d.cts +175 -1
  7. package/dist/automated-config/dist/generated/generatedConfigs.d.ts +175 -1
  8. package/dist/automated-config/dist/generated/generatedConfigs.js +1882 -1
  9. package/dist/automated-config/dist/generated/universalTokensConfigAuto.cjs +84 -0
  10. package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.cts +3 -1
  11. package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.ts +3 -1
  12. package/dist/automated-config/dist/generated/universalTokensConfigAuto.js +84 -0
  13. package/dist/automated-config/dist/mapTextVariantFixtureToValue.cjs +1 -12
  14. package/dist/automated-config/dist/mapTextVariantFixtureToValue.js +1 -12
  15. package/dist/automated-config/dist/properties.cjs +58 -12
  16. package/dist/automated-config/dist/properties.d.cts +8 -0
  17. package/dist/automated-config/dist/properties.d.ts +8 -0
  18. package/dist/automated-config/dist/properties.js +58 -12
  19. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.cts +2 -2
  20. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.ts +2 -2
  21. package/dist/cli/commands/sync.cjs +7 -1
  22. package/dist/cli/commands/sync.d.cts +1 -1
  23. package/dist/cli/commands/sync.d.ts +1 -1
  24. package/dist/cli/commands/sync.js +7 -1
  25. package/dist/cli/commands/version.cjs +2 -0
  26. package/dist/cli/commands/version.d.cts +1 -1
  27. package/dist/cli/commands/version.d.ts +1 -1
  28. package/dist/cli/commands/version.js +2 -0
  29. package/dist/cli/dist/cli.cjs +1 -1
  30. package/dist/cli/dist/cli.js +1 -1
  31. package/dist/cli/dist/commands/editor-rules.cjs +2 -2
  32. package/dist/cli/dist/commands/editor-rules.js +2 -2
  33. package/dist/cli/dist/utils/rules/config.cjs +1 -1
  34. package/dist/cli/dist/utils/rules/config.js +1 -1
  35. package/dist/cli/runner.cjs +2 -11
  36. package/dist/cli/runner.js +2 -11
  37. package/dist/components/Scrim.cjs +28 -0
  38. package/dist/components/Scrim.d.cts +14 -0
  39. package/dist/components/Scrim.d.ts +14 -0
  40. package/dist/components/Scrim.js +26 -0
  41. package/dist/components/client/BottomSheet/BottomSheet.cjs +209 -0
  42. package/dist/components/client/BottomSheet/BottomSheet.d.cts +77 -0
  43. package/dist/components/client/BottomSheet/BottomSheet.d.ts +77 -0
  44. package/dist/components/client/BottomSheet/BottomSheet.js +207 -0
  45. package/dist/components/client/BottomSheet/BottomSheetContent.cjs +26 -0
  46. package/dist/components/client/BottomSheet/BottomSheetContent.d.cts +15 -0
  47. package/dist/components/client/BottomSheet/BottomSheetContent.d.ts +15 -0
  48. package/dist/components/client/BottomSheet/BottomSheetContent.js +24 -0
  49. package/dist/components/client/BottomSheet/BottomSheetDismiss.cjs +15 -0
  50. package/dist/components/client/BottomSheet/BottomSheetDismiss.d.cts +12 -0
  51. package/dist/components/client/BottomSheet/BottomSheetDismiss.d.ts +12 -0
  52. package/dist/components/client/BottomSheet/BottomSheetDismiss.js +13 -0
  53. package/dist/components/client/BottomSheet/BottomSheetHandle.cjs +30 -0
  54. package/dist/components/client/BottomSheet/BottomSheetHandle.d.cts +19 -0
  55. package/dist/components/client/BottomSheet/BottomSheetHandle.d.ts +19 -0
  56. package/dist/components/client/BottomSheet/BottomSheetHandle.js +28 -0
  57. package/dist/components/client/BottomSheet/BottomSheetHeader.cjs +42 -0
  58. package/dist/components/client/BottomSheet/BottomSheetHeader.d.cts +18 -0
  59. package/dist/components/client/BottomSheet/BottomSheetHeader.d.ts +18 -0
  60. package/dist/components/client/BottomSheet/BottomSheetHeader.js +40 -0
  61. package/dist/components/client/BottomSheet/BottomSheetProvider.cjs +21 -0
  62. package/dist/components/client/BottomSheet/BottomSheetProvider.d.cts +19 -0
  63. package/dist/components/client/BottomSheet/BottomSheetProvider.d.ts +19 -0
  64. package/dist/components/client/BottomSheet/BottomSheetProvider.js +19 -0
  65. package/dist/components/client/BottomSheet/BottomSheetTrigger.cjs +15 -0
  66. package/dist/components/client/BottomSheet/BottomSheetTrigger.d.cts +12 -0
  67. package/dist/components/client/BottomSheet/BottomSheetTrigger.d.ts +12 -0
  68. package/dist/components/client/BottomSheet/BottomSheetTrigger.js +13 -0
  69. package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.cjs +32 -0
  70. package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.d.cts +22 -0
  71. package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.d.ts +22 -0
  72. package/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.js +29 -0
  73. package/dist/components/client/BottomSheet/index.cjs +22 -0
  74. package/dist/components/client/BottomSheet/index.d.cts +10 -0
  75. package/dist/components/client/BottomSheet/index.d.ts +10 -0
  76. package/dist/components/client/BottomSheet/index.js +12 -0
  77. package/dist/components/client/BottomSheet/useBottomSheetDrag.cjs +188 -0
  78. package/dist/components/client/BottomSheet/useBottomSheetDrag.d.cts +44 -0
  79. package/dist/components/client/BottomSheet/useBottomSheetDrag.d.ts +44 -0
  80. package/dist/components/client/BottomSheet/useBottomSheetDrag.js +185 -0
  81. package/dist/components/client/BottomSheet/useBottomSheetSnapModel.cjs +138 -0
  82. package/dist/components/client/BottomSheet/useBottomSheetSnapModel.d.cts +46 -0
  83. package/dist/components/client/BottomSheet/useBottomSheetSnapModel.d.ts +46 -0
  84. package/dist/components/client/BottomSheet/useBottomSheetSnapModel.js +135 -0
  85. package/dist/components/client/BottomSheet/useBottomSheetStore.cjs +34 -0
  86. package/dist/components/client/BottomSheet/useBottomSheetStore.d.cts +38 -0
  87. package/dist/components/client/BottomSheet/useBottomSheetStore.d.ts +38 -0
  88. package/dist/components/client/BottomSheet/useBottomSheetStore.js +31 -0
  89. package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.cjs +17 -0
  90. package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.d.cts +13 -0
  91. package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.d.ts +13 -0
  92. package/dist/components/client/BottomSheet/useBottomSheetStoreInternal.js +15 -0
  93. package/dist/components/client/BottomSheet/useExpansionMargins.cjs +89 -0
  94. package/dist/components/client/BottomSheet/useExpansionMargins.d.cts +34 -0
  95. package/dist/components/client/BottomSheet/useExpansionMargins.d.ts +34 -0
  96. package/dist/components/client/BottomSheet/useExpansionMargins.js +87 -0
  97. package/dist/components/client/BottomSheet/useViewportHeight.cjs +32 -0
  98. package/dist/components/client/BottomSheet/useViewportHeight.d.cts +9 -0
  99. package/dist/components/client/BottomSheet/useViewportHeight.d.ts +9 -0
  100. package/dist/components/client/BottomSheet/useViewportHeight.js +30 -0
  101. package/dist/components/client/BottomSheet/useVirtualKeyboard.cjs +48 -0
  102. package/dist/components/client/BottomSheet/useVirtualKeyboard.d.cts +10 -0
  103. package/dist/components/client/BottomSheet/useVirtualKeyboard.d.ts +10 -0
  104. package/dist/components/client/BottomSheet/useVirtualKeyboard.js +46 -0
  105. package/dist/components/client/BottomSheet/utils.cjs +128 -0
  106. package/dist/components/client/BottomSheet/utils.d.cts +61 -0
  107. package/dist/components/client/BottomSheet/utils.d.ts +61 -0
  108. package/dist/components/client/BottomSheet/utils.js +118 -0
  109. package/dist/components/client/Menu/Menu.Content.cjs +1 -1
  110. package/dist/components/client/Menu/Menu.Content.js +1 -1
  111. package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +1 -1
  112. package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +1 -1
  113. package/dist/components/client/Menu/Menu.index.d.cts +1 -1
  114. package/dist/components/client/index.cjs +16 -0
  115. package/dist/components/client/index.d.cts +10 -1
  116. package/dist/components/client/index.d.ts +10 -1
  117. package/dist/components/client/index.js +9 -1
  118. package/dist/components/client/providers/UDSConfigProvider.cjs +10 -6
  119. package/dist/components/client/providers/UDSConfigProvider.d.cts +1 -0
  120. package/dist/components/client/providers/UDSConfigProvider.d.ts +1 -0
  121. package/dist/components/client/providers/UDSConfigProvider.js +10 -6
  122. package/dist/components/index.cjs +24 -0
  123. package/dist/components/index.d.cts +9 -1
  124. package/dist/components/index.d.ts +9 -1
  125. package/dist/components/index.js +17 -1
  126. package/dist/config/dist/index.cjs +110 -2
  127. package/dist/config/dist/index.js +110 -2
  128. package/dist/fixtures/dist/index.cjs +103 -0
  129. package/dist/fixtures/dist/index.d.cts +3 -2
  130. package/dist/fixtures/dist/index.d.ts +3 -2
  131. package/dist/fixtures/dist/index.js +103 -1
  132. package/dist/fixtures/index.cjs +1 -0
  133. package/dist/fixtures/index.d.cts +2 -2
  134. package/dist/fixtures/index.d.ts +2 -2
  135. package/dist/fixtures/index.js +2 -2
  136. package/dist/index.cjs +20 -2
  137. package/dist/index.d.cts +12 -5
  138. package/dist/index.d.ts +12 -5
  139. package/dist/index.js +11 -3
  140. package/dist/runtime/bottomSheetConfig.cjs +11 -0
  141. package/dist/runtime/bottomSheetConfig.d.cts +15 -0
  142. package/dist/runtime/bottomSheetConfig.d.ts +15 -0
  143. package/dist/runtime/bottomSheetConfig.js +9 -0
  144. package/dist/runtime/index.cjs +2 -0
  145. package/dist/runtime/index.d.cts +2 -1
  146. package/dist/runtime/index.d.ts +2 -1
  147. package/dist/runtime/index.js +2 -1
  148. package/dist/runtime/udsConfig.cjs +2 -0
  149. package/dist/runtime/udsConfig.d.cts +2 -0
  150. package/dist/runtime/udsConfig.d.ts +2 -0
  151. package/dist/runtime/udsConfig.js +2 -0
  152. package/dist/styles/styler.d.cts +33 -30
  153. package/dist/styles/styler.d.ts +33 -30
  154. package/dist/styles/variants.cjs +278 -278
  155. package/dist/styles/variants.d.cts +9 -0
  156. package/dist/styles/variants.d.ts +9 -0
  157. package/dist/styles/variants.js +278 -278
  158. package/dist/tailwind/dist/commands/generateComponentData.cjs +31 -33
  159. package/dist/tailwind/dist/commands/generateComponentData.d.ts +1 -1
  160. package/dist/tailwind/dist/commands/generateComponentData.js +31 -33
  161. package/dist/tailwind/dist/commands/generatePurgeCSSData.d.ts +1 -1
  162. package/dist/tailwind/dist/commands/purge.cjs +4 -3
  163. package/dist/tailwind/dist/commands/purge.d.ts +1 -1
  164. package/dist/tailwind/dist/commands/purge.js +4 -3
  165. package/dist/tailwind/dist/index.d.cts +0 -1
  166. package/dist/tailwind/dist/index.d.ts +3 -5
  167. package/dist/tailwind/dist/purger/legacy/purgeCSS.cjs +3 -4
  168. package/dist/tailwind/dist/purger/legacy/purgeCSS.js +3 -4
  169. package/dist/tailwind/dist/purger/optimized/ast/expressions.cjs +125 -122
  170. package/dist/tailwind/dist/purger/optimized/ast/expressions.js +125 -122
  171. package/dist/tailwind/dist/purger/optimized/ast/jsx.cjs +8 -1
  172. package/dist/tailwind/dist/purger/optimized/ast/jsx.js +8 -1
  173. package/dist/tailwind/dist/purger/optimized/purge.cjs +10 -11
  174. package/dist/tailwind/dist/purger/optimized/purge.js +9 -10
  175. package/dist/tailwind/dist/purger/optimized/purgeFromCode.cjs +127 -232
  176. package/dist/tailwind/dist/purger/optimized/purgeFromCode.js +127 -232
  177. package/dist/tailwind/dist/purger/optimized/utils/componentAnalyzer.cjs +262 -330
  178. package/dist/tailwind/dist/purger/optimized/utils/componentAnalyzer.js +262 -329
  179. package/dist/tailwind/dist/purger/optimized/utils/files.cjs +3 -4
  180. package/dist/tailwind/dist/purger/optimized/utils/files.js +3 -4
  181. package/dist/tailwind/dist/purger/optimized/utils/safelist.cjs +21 -13
  182. package/dist/tailwind/dist/purger/optimized/utils/safelist.js +21 -13
  183. package/dist/tailwind/dist/tailwind/plugins/components.cjs +2 -0
  184. package/dist/tailwind/dist/tailwind/plugins/components.js +3 -1
  185. package/dist/tailwind/dist/tailwind/plugins/typography.cjs +13 -41
  186. package/dist/tailwind/dist/tailwind/plugins/typography.js +13 -41
  187. package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.cjs +2 -4
  188. package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.d.cts +1 -10
  189. package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.d.ts +1 -10
  190. package/dist/tailwind/dist/tailwind/utils/composeTailwindPlugins.js +2 -4
  191. package/dist/tailwind/dist/utils/tsMorph.cjs +1 -1
  192. package/dist/tokens/automation/configs/index.cjs +2 -0
  193. package/dist/tokens/automation/configs/index.d.cts +2 -2
  194. package/dist/tokens/automation/configs/index.d.ts +2 -2
  195. package/dist/tokens/automation/configs/index.js +2 -2
  196. package/dist/tokens/automation/index.cjs +2 -0
  197. package/dist/tokens/automation/index.d.cts +2 -2
  198. package/dist/tokens/automation/index.d.ts +2 -2
  199. package/dist/tokens/automation/index.js +2 -2
  200. package/dist/tokens/index.cjs +2 -0
  201. package/dist/tokens/index.d.cts +3 -3
  202. package/dist/tokens/index.d.ts +3 -3
  203. package/dist/tokens/index.js +2 -2
  204. package/dist/tokens/types.d.cts +2 -2
  205. package/dist/tokens/types.d.ts +2 -2
  206. package/dist/types/dist/index.d.cts +76 -1
  207. package/dist/types/dist/index.d.ts +76 -1
  208. package/dist/uds/generated/componentData.cjs +1187 -961
  209. package/dist/uds/generated/componentData.js +1111 -939
  210. package/dist/uds/generated/tailwindPurge.cjs +57 -29
  211. package/dist/uds/generated/tailwindPurge.js +57 -29
  212. package/dist/uds/package.cjs +4 -10
  213. package/dist/uds/package.js +4 -10
  214. package/package.json +4 -7
  215. package/dist/cli/dist/lib/logger.cjs +0 -66
  216. package/dist/cli/dist/lib/logger.js +0 -66
  217. package/dist/tailwind/dist/commands/css.cjs +0 -79
  218. package/dist/tailwind/dist/commands/css.d.ts +0 -3
  219. package/dist/tailwind/dist/commands/css.helpers.cjs +0 -32
  220. package/dist/tailwind/dist/commands/css.helpers.js +0 -28
  221. package/dist/tailwind/dist/commands/css.js +0 -79
  222. package/dist/tailwind/dist/css/generate.cjs +0 -120
  223. package/dist/tailwind/dist/css/generate.d.cts +0 -30
  224. package/dist/tailwind/dist/css/generate.d.ts +0 -31
  225. package/dist/tailwind/dist/css/generate.helpers.cjs +0 -112
  226. package/dist/tailwind/dist/css/generate.helpers.js +0 -100
  227. package/dist/tailwind/dist/css/generate.js +0 -115
  228. package/dist/tailwind/dist/css/postcss.cjs +0 -35
  229. package/dist/tailwind/dist/css/postcss.helpers.cjs +0 -27
  230. package/dist/tailwind/dist/css/postcss.helpers.js +0 -26
  231. package/dist/tailwind/dist/css/postcss.js +0 -35
  232. package/dist/tailwind/dist/css/runner.cjs +0 -278
  233. package/dist/tailwind/dist/css/runner.helpers.cjs +0 -26
  234. package/dist/tailwind/dist/css/runner.helpers.js +0 -23
  235. package/dist/tailwind/dist/css/runner.js +0 -275
  236. package/dist/tailwind/dist/css/theme.cjs +0 -12
  237. package/dist/tailwind/dist/css/theme.d.cts +0 -66
  238. package/dist/tailwind/dist/css/theme.d.ts +0 -66
  239. package/dist/tailwind/dist/css/theme.js +0 -11
  240. package/dist/tailwind/dist/css/utils.cjs +0 -234
  241. package/dist/tailwind/dist/css/utils.js +0 -223
  242. package/dist/tailwind/dist/utils/optimizeCSS.cjs +0 -405
  243. package/dist/tailwind/dist/utils/optimizeCSS.js +0 -403
  244. package/dist/tailwind/dist/utils/postcssPreserveVars.cjs +0 -67
  245. package/dist/tailwind/dist/utils/postcssPreserveVars.js +0 -65
  246. package/generated/componentData.json +0 -2397
  247. package/generated/tailwindPurge.ts +0 -4560
@@ -19,171 +19,174 @@ import { Node, SyntaxKind } from "ts-morph";
19
19
  * @param visited Set of visited nodes to prevent infinite recursion
20
20
  * @returns Array of extracted string literal values
21
21
  */
22
- const extractStringLiterals = (node, visited = /* @__PURE__ */ new Set()) => {
22
+ function extractStringLiterals(node, visited = /* @__PURE__ */ new Set()) {
23
23
  if (visited.has(node)) return [];
24
24
  visited.add(node);
25
- const directValues = extractDirectLiteralValues(node);
26
- if (directValues) return directValues;
27
- const templateValues = extractTemplateExpressionValues(node, visited);
28
- if (templateValues) return templateValues;
29
- if (Node.isConditionalExpression(node)) return [...extractStringLiterals(node.getWhenTrue(), visited), ...extractStringLiterals(node.getWhenFalse(), visited)];
30
- const binaryValues = extractBinaryExpressionValues(node, visited);
31
- if (binaryValues) return binaryValues;
32
- const wrappedExpressionValues = extractWrappedExpressionValues(node, visited);
33
- if (wrappedExpressionValues) return wrappedExpressionValues;
34
- const propertyAccessValues = extractPropertyAccessValues(node, visited);
35
- if (propertyAccessValues) return propertyAccessValues;
36
- const elementAccessValues = extractElementAccessValues(node);
37
- if (elementAccessValues) return elementAccessValues;
38
- const callExpressionValues = extractCallExpressionValues(node, visited);
39
- if (callExpressionValues) return callExpressionValues;
40
- const identifierValues = extractIdentifierValues(node, visited);
41
- if (identifierValues) return identifierValues;
42
- return [];
43
- };
44
- const extractDirectLiteralValues = (node) => {
45
- if (Node.isStringLiteral(node) || Node.isNoSubstitutionTemplateLiteral(node)) return [node.getLiteralValue()];
46
- return null;
47
- };
48
- const extractTemplateExpressionValues = (node, visited) => {
49
- if (!Node.isTemplateExpression(node)) return null;
50
- const parts = [[node.getHead().getLiteralText()]];
51
- node.getTemplateSpans().forEach((span) => {
52
- const exprValues = extractStringLiterals(span.getExpression(), visited);
53
- const literalText = span.getLiteral().getLiteralText();
54
- parts.push(exprValues.length > 0 ? exprValues.map((value) => `${value}${literalText}`) : ["", literalText]);
55
- });
56
- return parts.reduce((acc, segment) => acc.flatMap((base) => segment.map((frag) => `${base}${frag}`)), [""]).filter((value) => value.length > 0);
57
- };
58
- const extractBinaryExpressionValues = (node, visited) => {
59
- if (!Node.isBinaryExpression(node)) return null;
60
- const operator = node.getOperatorToken().getText();
61
- if (operator === "+") {
62
- const left = extractStringLiterals(node.getLeft(), visited);
63
- const right = extractStringLiterals(node.getRight(), visited);
64
- const combined = left.flatMap((l) => right.map((r) => `${l}${r}`));
65
- return combined.length > 0 ? combined : [];
25
+ const values = [];
26
+ if (Node.isStringLiteral(node)) {
27
+ values.push(node.getLiteralValue());
28
+ return values;
66
29
  }
67
- if (operator === "||" || operator === "??") return [...extractStringLiterals(node.getLeft(), visited), ...extractStringLiterals(node.getRight(), visited)];
68
- return [];
69
- };
70
- const extractWrappedExpressionValues = (node, visited) => {
71
- if (Node.isParenthesizedExpression(node) || Node.isAsExpression(node)) return extractStringLiterals(node.getExpression(), visited);
72
- return null;
73
- };
74
- const extractPropertyAccessValues = (node, visited) => {
75
- if (!Node.isPropertyAccessExpression(node)) return null;
76
- const typeValues = extractLiteralValuesFromType(node);
77
- if (typeValues.length > 0) return typeValues;
78
- const propertyName = node.getName();
79
- return extractObjectValues(node.getExpression(), visited).filter((value) => typeof value === "object" && value !== null && propertyName in value).map((value) => value[propertyName]).filter((value) => typeof value === "string");
80
- };
81
- const extractElementAccessValues = (node) => {
82
- if (!Node.isElementAccessExpression(node)) return null;
83
- return extractLiteralValuesFromType(node);
84
- };
85
- const extractCallExpressionValues = (node, visited) => {
86
- if (!Node.isCallExpression(node)) return null;
87
- const expression = node.getExpression();
88
- const fromDefinitions = Node.isIdentifier(expression) ? expression.getDefinitionNodes().flatMap((definition) => {
89
- if (Node.isFunctionDeclaration(definition)) return definition.getDescendantsOfKind(SyntaxKind.ReturnStatement).flatMap((returnStmt) => {
90
- const expression = returnStmt.getExpression();
91
- return expression ? extractStringLiterals(expression, visited) : [];
92
- });
93
- if (Node.isVariableDeclaration(definition)) {
94
- const initializer = definition.getInitializer();
95
- return initializer ? extractFromFunctionLike(initializer, visited) : [];
30
+ if (Node.isNoSubstitutionTemplateLiteral(node)) {
31
+ values.push(node.getLiteralValue());
32
+ return values;
33
+ }
34
+ if (Node.isConditionalExpression(node)) {
35
+ values.push(...extractStringLiterals(node.getWhenTrue(), visited));
36
+ values.push(...extractStringLiterals(node.getWhenFalse(), visited));
37
+ return values;
38
+ }
39
+ if (Node.isBinaryExpression(node)) {
40
+ const op = node.getOperatorToken().getText();
41
+ if (op === "||" || op === "??") {
42
+ values.push(...extractStringLiterals(node.getLeft(), visited));
43
+ values.push(...extractStringLiterals(node.getRight(), visited));
44
+ return values;
96
45
  }
97
- return [];
98
- }) : [];
99
- const fromArguments = node.getArguments().flatMap((arg) => extractStringLiterals(arg, visited));
100
- return [...fromDefinitions, ...fromArguments];
101
- };
102
- const extractIdentifierValues = (node, visited) => {
103
- if (!Node.isIdentifier(node)) return null;
104
- const values = node.getDefinitionNodes().flatMap((definition) => {
105
- if (Node.isVariableDeclaration(definition) || Node.isParameterDeclaration(definition) || Node.isBindingElement(definition)) {
106
- const initializer = definition.getInitializer();
107
- return initializer ? extractStringLiterals(initializer, visited) : [];
46
+ }
47
+ if (Node.isParenthesizedExpression(node)) {
48
+ values.push(...extractStringLiterals(node.getExpression(), visited));
49
+ return values;
50
+ }
51
+ if (Node.isAsExpression(node)) {
52
+ values.push(...extractStringLiterals(node.getExpression(), visited));
53
+ return values;
54
+ }
55
+ if (Node.isPropertyAccessExpression(node)) {
56
+ const typeValues = extractLiteralValuesFromType(node);
57
+ if (typeValues.length > 0) {
58
+ values.push(...typeValues);
59
+ return values;
108
60
  }
109
- return [];
110
- });
111
- return values.length > 0 ? values : extractLiteralValuesFromType(node);
112
- };
61
+ const expression = node.getExpression();
62
+ const propertyName = node.getName();
63
+ const baseValues = extractObjectValues(expression, visited);
64
+ for (const objValue of baseValues) if (typeof objValue === "object" && objValue !== null && propertyName in objValue) {
65
+ const propValue = objValue[propertyName];
66
+ if (typeof propValue === "string") values.push(propValue);
67
+ }
68
+ return values;
69
+ }
70
+ if (Node.isElementAccessExpression(node)) {
71
+ const typeValues = extractLiteralValuesFromType(node);
72
+ if (typeValues.length > 0) {
73
+ values.push(...typeValues);
74
+ return values;
75
+ }
76
+ return values;
77
+ }
78
+ if (Node.isCallExpression(node)) {
79
+ const expression = node.getExpression();
80
+ if (Node.isIdentifier(expression)) for (const definition of expression.getDefinitionNodes()) {
81
+ if (Node.isFunctionDeclaration(definition)) for (const returnStmt of definition.getDescendantsOfKind(SyntaxKind.ReturnStatement)) {
82
+ const returnExpr = returnStmt.getExpression();
83
+ if (returnExpr) values.push(...extractStringLiterals(returnExpr, visited));
84
+ }
85
+ if (Node.isVariableDeclaration(definition)) {
86
+ const initializer = definition.getInitializer();
87
+ if (initializer) values.push(...extractFromFunctionLike(initializer, visited));
88
+ }
89
+ }
90
+ return values;
91
+ }
92
+ if (Node.isIdentifier(node)) {
93
+ let foundInitializer = false;
94
+ for (const definition of node.getDefinitionNodes()) {
95
+ if (Node.isVariableDeclaration(definition)) {
96
+ const initializer = definition.getInitializer();
97
+ if (initializer) {
98
+ foundInitializer = true;
99
+ values.push(...extractStringLiterals(initializer, visited));
100
+ }
101
+ }
102
+ if (Node.isParameterDeclaration(definition)) {
103
+ const initializer = definition.getInitializer();
104
+ if (initializer) {
105
+ foundInitializer = true;
106
+ values.push(...extractStringLiterals(initializer, visited));
107
+ }
108
+ }
109
+ if (Node.isBindingElement(definition)) {
110
+ const initializer = definition.getInitializer();
111
+ if (initializer) {
112
+ foundInitializer = true;
113
+ values.push(...extractStringLiterals(initializer, visited));
114
+ }
115
+ }
116
+ }
117
+ if (!foundInitializer && values.length === 0) values.push(...extractLiteralValuesFromType(node));
118
+ return values;
119
+ }
120
+ return values;
121
+ }
113
122
  /**
114
123
  * Extract string literals from arrow functions or function expressions
115
124
  */
116
- const extractFromFunctionLike = (node, visited) => {
125
+ function extractFromFunctionLike(node, visited) {
117
126
  const values = [];
118
127
  if (Node.isArrowFunction(node)) {
119
128
  const body = node.getBody();
120
- if (Node.isBlock(body)) body.getDescendantsOfKind(SyntaxKind.ReturnStatement).forEach((returnStmt) => {
129
+ if (Node.isBlock(body)) for (const returnStmt of body.getDescendantsOfKind(SyntaxKind.ReturnStatement)) {
121
130
  const returnExpr = returnStmt.getExpression();
122
131
  if (returnExpr) values.push(...extractStringLiterals(returnExpr, visited));
123
- });
132
+ }
124
133
  else values.push(...extractStringLiterals(body, visited));
125
- } else if (Node.isFunctionExpression(node)) node.getDescendantsOfKind(SyntaxKind.ReturnStatement).forEach((returnStmt) => {
134
+ } else if (Node.isFunctionExpression(node)) for (const returnStmt of node.getDescendantsOfKind(SyntaxKind.ReturnStatement)) {
126
135
  const returnExpr = returnStmt.getExpression();
127
136
  if (returnExpr) values.push(...extractStringLiterals(returnExpr, visited));
128
- });
137
+ }
129
138
  return values;
130
- };
139
+ }
131
140
  /**
132
141
  * Extract object literal values from an expression.
133
142
  * Returns an array of all possible object values (for union types or indexed access).
134
143
  */
135
- const extractObjectValues = (node, visited) => {
144
+ function extractObjectValues(node, visited) {
136
145
  if (visited.has(node)) return [];
137
146
  visited.add(node);
138
147
  const values = [];
139
148
  if (Node.isObjectLiteralExpression(node)) {
140
149
  const obj = {};
141
- node.getProperties().forEach((prop) => {
142
- if (Node.isPropertyAssignment(prop)) {
143
- const name = prop.getName();
144
- const init = prop.getInitializer();
145
- if (init && Node.isStringLiteral(init)) obj[name] = init.getLiteralValue();
146
- else if (init && Node.isObjectLiteralExpression(init)) {
147
- const nestedValues = extractObjectValues(init, visited);
148
- if (nestedValues.length > 0) obj[name] = nestedValues[0];
149
- }
150
+ for (const prop of node.getProperties()) if (Node.isPropertyAssignment(prop)) {
151
+ const name = prop.getName();
152
+ const init = prop.getInitializer();
153
+ if (init && Node.isStringLiteral(init)) obj[name] = init.getLiteralValue();
154
+ else if (init && Node.isObjectLiteralExpression(init)) {
155
+ const nestedValues = extractObjectValues(init, visited);
156
+ if (nestedValues.length > 0) obj[name] = nestedValues[0];
150
157
  }
151
- });
158
+ }
152
159
  values.push(obj);
153
160
  return values;
154
161
  }
155
162
  if (Node.isIdentifier(node)) {
156
- node.getDefinitionNodes().forEach((definition) => {
157
- if (Node.isVariableDeclaration(definition)) {
158
- const initializer = definition.getInitializer();
159
- if (initializer) if (Node.isAsExpression(initializer)) {
160
- const inner = initializer.getExpression();
161
- values.push(...extractObjectValues(inner, visited));
162
- } else values.push(...extractObjectValues(initializer, visited));
163
- }
164
- });
163
+ for (const definition of node.getDefinitionNodes()) if (Node.isVariableDeclaration(definition)) {
164
+ const initializer = definition.getInitializer();
165
+ if (initializer) if (Node.isAsExpression(initializer)) {
166
+ const inner = initializer.getExpression();
167
+ values.push(...extractObjectValues(inner, visited));
168
+ } else values.push(...extractObjectValues(initializer, visited));
169
+ }
165
170
  return values;
166
171
  }
167
172
  if (Node.isElementAccessExpression(node)) {
168
- extractObjectValues(node.getExpression(), visited).forEach((obj) => {
169
- if (typeof obj === "object" && obj !== null) Object.values(obj).forEach((value) => values.push(value));
170
- });
173
+ const baseObjects = extractObjectValues(node.getExpression(), visited);
174
+ for (const obj of baseObjects) if (typeof obj === "object" && obj !== null) for (const value of Object.values(obj)) values.push(value);
171
175
  return values;
172
176
  }
173
177
  return values;
174
- };
178
+ }
175
179
  /**
176
180
  * Extract literal values from a TypeScript type (for union types like 'brand' | 'secondary')
177
181
  */
178
- const extractLiteralValuesFromType = (node) => {
182
+ function extractLiteralValuesFromType(node) {
179
183
  const values = [];
180
184
  const nodeType = node.getType();
181
- if (nodeType.isUnion()) nodeType.getUnionTypes().forEach((unionMember) => {
182
- if (unionMember.isStringLiteral()) values.push(unionMember.getLiteralValue());
183
- });
184
- else if (nodeType.isStringLiteral()) values.push(nodeType.getLiteralValue());
185
+ if (nodeType.isUnion()) {
186
+ for (const unionMember of nodeType.getUnionTypes()) if (unionMember.isStringLiteral()) values.push(unionMember.getLiteralValue());
187
+ } else if (nodeType.isStringLiteral()) values.push(nodeType.getLiteralValue());
185
188
  return values;
186
- };
189
+ }
187
190
 
188
191
  //#endregion
189
192
  export { extractStringLiterals };
@@ -7,7 +7,14 @@ let ts_morph = require("ts-morph");
7
7
  /**
8
8
  * Find all JSX usages of a component from its identifier
9
9
  */
10
- const findJsxReferences = (identifier) => identifier.findReferencesAsNodes().map((reference) => reference.getFirstAncestor((n) => ts_morph.Node.isJsxOpeningElement(n) || ts_morph.Node.isJsxSelfClosingElement(n))).filter((node) => Boolean(node) && (ts_morph.Node.isJsxOpeningElement(node) || ts_morph.Node.isJsxSelfClosingElement(node)));
10
+ function findJsxReferences(identifier) {
11
+ const elements = [];
12
+ for (const reference of identifier.findReferencesAsNodes()) {
13
+ const node = reference.getFirstAncestor((n) => ts_morph.Node.isJsxOpeningElement(n) || ts_morph.Node.isJsxSelfClosingElement(n));
14
+ if (node && (ts_morph.Node.isJsxOpeningElement(node) || ts_morph.Node.isJsxSelfClosingElement(node))) elements.push(node);
15
+ }
16
+ return elements;
17
+ }
11
18
 
12
19
  //#endregion
13
20
  exports.findJsxReferences = findJsxReferences;
@@ -6,7 +6,14 @@ import { Node, SyntaxKind } from "ts-morph";
6
6
  /**
7
7
  * Find all JSX usages of a component from its identifier
8
8
  */
9
- const findJsxReferences = (identifier) => identifier.findReferencesAsNodes().map((reference) => reference.getFirstAncestor((n) => Node.isJsxOpeningElement(n) || Node.isJsxSelfClosingElement(n))).filter((node) => Boolean(node) && (Node.isJsxOpeningElement(node) || Node.isJsxSelfClosingElement(node)));
9
+ function findJsxReferences(identifier) {
10
+ const elements = [];
11
+ for (const reference of identifier.findReferencesAsNodes()) {
12
+ const node = reference.getFirstAncestor((n) => Node.isJsxOpeningElement(n) || Node.isJsxSelfClosingElement(n));
13
+ if (node && (Node.isJsxOpeningElement(node) || Node.isJsxSelfClosingElement(node))) elements.push(node);
14
+ }
15
+ return elements;
16
+ }
10
17
 
11
18
  //#endregion
12
19
  export { findJsxReferences };
@@ -1,12 +1,12 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  const require_runtime = require('../../../../_virtual/_rolldown/runtime.cjs');
3
3
  const require_purgeFromCode = require('./purgeFromCode.cjs');
4
- const require_safelist = require('./utils/safelist.cjs');
5
4
  const require_files = require('./utils/files.cjs');
6
- let node_fs = require("node:fs");
7
- node_fs = require_runtime.__toESM(node_fs);
5
+ const require_safelist = require('./utils/safelist.cjs');
8
6
  let node_path = require("node:path");
9
7
  node_path = require_runtime.__toESM(node_path);
8
+ let node_fs = require("node:fs");
9
+ node_fs = require_runtime.__toESM(node_fs);
10
10
 
11
11
  //#region ../tailwind/dist/purger/optimized/purge.js
12
12
  /*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
@@ -14,16 +14,16 @@ const warnedLocations = /* @__PURE__ */ new Set();
14
14
  /**
15
15
  * Clear warned locations (call at start of new purge run)
16
16
  */
17
- const clearWarnings = () => {
17
+ function clearWarnings() {
18
18
  warnedLocations.clear();
19
- };
19
+ }
20
20
  /**
21
21
  * Main purge function - optimized version
22
22
  *
23
23
  * Uses purgeFromCodeOptimized internally to ensure consistent behavior
24
24
  * between CLI and playground.
25
25
  */
26
- const purgeOptimized = async (options) => {
26
+ async function purgeOptimized(options) {
27
27
  const { entry = "/src/", output = "dist/safelist.ts", colorModes = ["dark"], variants, autoVariants, componentData } = options;
28
28
  const startTime = performance.now();
29
29
  clearWarnings();
@@ -39,20 +39,19 @@ const purgeOptimized = async (options) => {
39
39
  spreadsTraced: 0,
40
40
  expressionsResolved: 0
41
41
  };
42
- (await Promise.all(files.map(async (filePath) => {
43
- return require_purgeFromCode.purgeFromCodeOptimized(node_fs.default.readFileSync(filePath, "utf-8"), {
42
+ for (const filePath of files) {
43
+ const result = await require_purgeFromCode.purgeFromCodeOptimized(node_fs.default.readFileSync(filePath, "utf-8"), {
44
44
  colorModes,
45
45
  variants,
46
46
  autoVariants,
47
47
  componentData
48
48
  });
49
- }))).forEach((result) => {
50
49
  allClasses.push(...result.safelist);
51
50
  result.imports.forEach((imp) => allImports.add(imp));
52
51
  result.components.forEach((comp) => allComponents.add(comp));
53
52
  stats.spreadsTraced += result.stats.spreadsTraced;
54
53
  stats.expressionsResolved += result.stats.expressionsResolved;
55
- });
54
+ }
56
55
  allClasses.push(...require_safelist.getThemeAndScaleClasses(colorModes));
57
56
  const finalSafelist = require_safelist.deduplicateSafelist(allClasses).sort();
58
57
  await require_safelist.saveSafelistToFile(finalSafelist, node_path.default.join(workspaceDir, output));
@@ -64,7 +63,7 @@ const purgeOptimized = async (options) => {
64
63
  components: [...allComponents],
65
64
  stats
66
65
  };
67
- };
66
+ }
68
67
 
69
68
  //#endregion
70
69
  exports.purgeOptimized = purgeOptimized;
@@ -1,9 +1,9 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  import { purgeFromCodeOptimized } from "./purgeFromCode.js";
3
- import { deduplicateSafelist, getThemeAndScaleClasses, saveSafelistToFile } from "./utils/safelist.js";
4
3
  import { scanForFiles } from "./utils/files.js";
5
- import fs from "node:fs";
4
+ import { deduplicateSafelist, getThemeAndScaleClasses, saveSafelistToFile } from "./utils/safelist.js";
6
5
  import path from "node:path";
6
+ import fs from "node:fs";
7
7
 
8
8
  //#region ../tailwind/dist/purger/optimized/purge.js
9
9
  /*! © 2026 Yahoo, Inc. UDS Tailwind and Purger v0.0.0-development */
@@ -11,16 +11,16 @@ const warnedLocations = /* @__PURE__ */ new Set();
11
11
  /**
12
12
  * Clear warned locations (call at start of new purge run)
13
13
  */
14
- const clearWarnings = () => {
14
+ function clearWarnings() {
15
15
  warnedLocations.clear();
16
- };
16
+ }
17
17
  /**
18
18
  * Main purge function - optimized version
19
19
  *
20
20
  * Uses purgeFromCodeOptimized internally to ensure consistent behavior
21
21
  * between CLI and playground.
22
22
  */
23
- const purgeOptimized = async (options) => {
23
+ async function purgeOptimized(options) {
24
24
  const { entry = "/src/", output = "dist/safelist.ts", colorModes = ["dark"], variants, autoVariants, componentData } = options;
25
25
  const startTime = performance.now();
26
26
  clearWarnings();
@@ -36,20 +36,19 @@ const purgeOptimized = async (options) => {
36
36
  spreadsTraced: 0,
37
37
  expressionsResolved: 0
38
38
  };
39
- (await Promise.all(files.map(async (filePath) => {
40
- return purgeFromCodeOptimized(fs.readFileSync(filePath, "utf-8"), {
39
+ for (const filePath of files) {
40
+ const result = await purgeFromCodeOptimized(fs.readFileSync(filePath, "utf-8"), {
41
41
  colorModes,
42
42
  variants,
43
43
  autoVariants,
44
44
  componentData
45
45
  });
46
- }))).forEach((result) => {
47
46
  allClasses.push(...result.safelist);
48
47
  result.imports.forEach((imp) => allImports.add(imp));
49
48
  result.components.forEach((comp) => allComponents.add(comp));
50
49
  stats.spreadsTraced += result.stats.spreadsTraced;
51
50
  stats.expressionsResolved += result.stats.expressionsResolved;
52
- });
51
+ }
53
52
  allClasses.push(...getThemeAndScaleClasses(colorModes));
54
53
  const finalSafelist = deduplicateSafelist(allClasses).sort();
55
54
  await saveSafelistToFile(finalSafelist, path.join(workspaceDir, output));
@@ -61,7 +60,7 @@ const purgeOptimized = async (options) => {
61
60
  components: [...allComponents],
62
61
  stats
63
62
  };
64
- };
63
+ }
65
64
 
66
65
  //#endregion
67
66
  export { purgeOptimized };