@yahoo/uds 3.152.1 → 3.153.1-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 (147) hide show
  1. package/dist/automated-config/dist/generated/autoVariants.cjs +25 -0
  2. package/dist/automated-config/dist/generated/autoVariants.d.cts +6 -0
  3. package/dist/automated-config/dist/generated/autoVariants.d.ts +6 -0
  4. package/dist/automated-config/dist/generated/autoVariants.js +25 -0
  5. package/dist/automated-config/dist/generated/generatedConfigs.cjs +1368 -0
  6. package/dist/automated-config/dist/generated/generatedConfigs.d.cts +169 -1
  7. package/dist/automated-config/dist/generated/generatedConfigs.d.ts +169 -1
  8. package/dist/automated-config/dist/generated/generatedConfigs.js +1368 -1
  9. package/dist/automated-config/dist/generated/universalTokensConfigAuto.cjs +198 -0
  10. package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.cts +2 -1
  11. package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.ts +2 -1
  12. package/dist/automated-config/dist/generated/universalTokensConfigAuto.js +198 -0
  13. package/dist/automated-config/dist/types/ComponentConfig.d.cts +2 -0
  14. package/dist/automated-config/dist/types/ComponentConfig.d.ts +2 -0
  15. package/dist/automated-config/dist/utils/buildConfigSchema.cjs +13 -20
  16. package/dist/automated-config/dist/utils/buildConfigSchema.d.cts +14 -2
  17. package/dist/automated-config/dist/utils/buildConfigSchema.d.ts +14 -2
  18. package/dist/automated-config/dist/utils/buildConfigSchema.js +13 -20
  19. package/dist/automated-config/dist/utils/componentStatePseudoStates.cjs +15 -0
  20. package/dist/automated-config/dist/utils/componentStatePseudoStates.js +14 -0
  21. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.cjs +4 -2
  22. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.d.cts +1 -1
  23. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.d.ts +1 -1
  24. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.js +4 -2
  25. package/dist/automated-config/dist/utils/index.cjs +114 -48
  26. package/dist/automated-config/dist/utils/index.d.cts +25 -2
  27. package/dist/automated-config/dist/utils/index.d.ts +25 -2
  28. package/dist/automated-config/dist/utils/index.js +114 -49
  29. package/dist/components/client/IconButton.cjs +1 -1
  30. package/dist/components/client/IconButton.js +1 -1
  31. package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +1 -1
  32. package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +1 -1
  33. package/dist/components/client/Pagination/Pagination.cjs +62 -0
  34. package/dist/components/client/Pagination/Pagination.d.cts +28 -0
  35. package/dist/components/client/Pagination/Pagination.d.ts +29 -0
  36. package/dist/components/client/Pagination/Pagination.js +60 -0
  37. package/dist/components/client/Pagination/PaginationEllipsis.cjs +24 -0
  38. package/dist/components/client/Pagination/PaginationEllipsis.d.cts +10 -0
  39. package/dist/components/client/Pagination/PaginationEllipsis.d.ts +11 -0
  40. package/dist/components/client/Pagination/PaginationEllipsis.js +22 -0
  41. package/dist/components/client/Pagination/PaginationItem.cjs +52 -0
  42. package/dist/components/client/Pagination/PaginationItem.d.cts +10 -0
  43. package/dist/components/client/Pagination/PaginationItem.d.ts +11 -0
  44. package/dist/components/client/Pagination/PaginationItem.js +50 -0
  45. package/dist/components/client/Pagination/PaginationLink.cjs +53 -0
  46. package/dist/components/client/Pagination/PaginationLink.d.cts +9 -0
  47. package/dist/components/client/Pagination/PaginationLink.d.ts +10 -0
  48. package/dist/components/client/Pagination/PaginationLink.js +51 -0
  49. package/dist/components/client/Pagination/PaginationNext.cjs +56 -0
  50. package/dist/components/client/Pagination/PaginationNext.d.cts +9 -0
  51. package/dist/components/client/Pagination/PaginationNext.d.ts +10 -0
  52. package/dist/components/client/Pagination/PaginationNext.js +54 -0
  53. package/dist/components/client/Pagination/PaginationNumbers.cjs +52 -0
  54. package/dist/components/client/Pagination/PaginationNumbers.d.cts +9 -0
  55. package/dist/components/client/Pagination/PaginationNumbers.d.ts +10 -0
  56. package/dist/components/client/Pagination/PaginationNumbers.js +50 -0
  57. package/dist/components/client/Pagination/PaginationPrev.cjs +56 -0
  58. package/dist/components/client/Pagination/PaginationPrev.d.cts +9 -0
  59. package/dist/components/client/Pagination/PaginationPrev.d.ts +10 -0
  60. package/dist/components/client/Pagination/PaginationPrev.js +54 -0
  61. package/dist/components/client/Pagination/computeVisiblePages.cjs +22 -0
  62. package/dist/components/client/Pagination/computeVisiblePages.d.cts +18 -0
  63. package/dist/components/client/Pagination/computeVisiblePages.d.ts +19 -0
  64. package/dist/components/client/Pagination/computeVisiblePages.js +21 -0
  65. package/dist/components/client/Pagination/ellipsisDefault.cjs +33 -0
  66. package/dist/components/client/Pagination/ellipsisDefault.d.cts +10 -0
  67. package/dist/components/client/Pagination/ellipsisDefault.d.ts +11 -0
  68. package/dist/components/client/Pagination/ellipsisDefault.js +32 -0
  69. package/dist/components/client/Pagination/ellipsisNone.cjs +29 -0
  70. package/dist/components/client/Pagination/ellipsisNone.d.cts +10 -0
  71. package/dist/components/client/Pagination/ellipsisNone.d.ts +11 -0
  72. package/dist/components/client/Pagination/ellipsisNone.js +28 -0
  73. package/dist/components/client/Pagination/index.cjs +19 -0
  74. package/dist/components/client/Pagination/index.d.cts +10 -0
  75. package/dist/components/client/Pagination/index.d.ts +11 -0
  76. package/dist/components/client/Pagination/index.js +11 -0
  77. package/dist/components/client/Pagination/paginationContext.cjs +44 -0
  78. package/dist/components/client/Pagination/paginationContext.d.cts +34 -0
  79. package/dist/components/client/Pagination/paginationContext.d.ts +35 -0
  80. package/dist/components/client/Pagination/paginationContext.js +38 -0
  81. package/dist/components/client/Pagination/paginationStyles.cjs +72 -0
  82. package/dist/components/client/Pagination/paginationStyles.d.cts +14 -0
  83. package/dist/components/client/Pagination/paginationStyles.d.ts +15 -0
  84. package/dist/components/client/Pagination/paginationStyles.js +63 -0
  85. package/dist/components/client/Popover/UDSPopoverConfigProvider.d.cts +1 -1
  86. package/dist/components/client/Popover/UDSPopoverConfigProvider.d.ts +1 -1
  87. package/dist/components/client/index.cjs +14 -0
  88. package/dist/components/client/index.d.cts +8 -1
  89. package/dist/components/client/index.d.ts +8 -1
  90. package/dist/components/client/index.js +8 -1
  91. package/dist/components/index.cjs +14 -0
  92. package/dist/components/index.d.cts +8 -1
  93. package/dist/components/index.d.ts +8 -1
  94. package/dist/components/index.js +8 -1
  95. package/dist/config/dist/index.cjs +272 -2
  96. package/dist/config/dist/index.js +272 -2
  97. package/dist/css/dist/css/utils.cjs +5 -1
  98. package/dist/css/dist/css/utils.js +5 -1
  99. package/dist/css/dist/packages/config/dist/index.cjs +272 -2
  100. package/dist/css/dist/packages/config/dist/index.js +272 -2
  101. package/dist/css/dist/purger/optimized/utils/safelist.cjs +7 -0
  102. package/dist/css/dist/purger/optimized/utils/safelist.js +7 -0
  103. package/dist/index.cjs +16 -0
  104. package/dist/index.d.cts +11 -4
  105. package/dist/index.d.ts +11 -4
  106. package/dist/index.js +10 -3
  107. package/dist/styles/styler.d.cts +65 -59
  108. package/dist/styles/styler.d.ts +65 -59
  109. package/dist/styles/variants.d.cts +27 -0
  110. package/dist/styles/variants.d.ts +27 -0
  111. package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.cjs +1368 -0
  112. package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.js +1368 -1
  113. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/componentStatePseudoStates.cjs +16 -0
  114. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/componentStatePseudoStates.js +15 -0
  115. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.cjs +113 -48
  116. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.js +113 -48
  117. package/dist/tailwind-internal/dist/packages/config/dist/index.cjs +272 -2
  118. package/dist/tailwind-internal/dist/packages/config/dist/index.js +272 -2
  119. package/dist/tailwind-internal/dist/plugins/components.cjs +1 -0
  120. package/dist/tailwind-internal/dist/plugins/components.js +2 -1
  121. package/dist/tailwind-internal/dist/utils/getShadowStyles.d.cts +2 -2
  122. package/dist/tailwind-internal/dist/utils/getShadowStyles.d.ts +2 -2
  123. package/dist/tokens/automation/configs/index.cjs +1 -0
  124. package/dist/tokens/automation/configs/index.d.cts +2 -2
  125. package/dist/tokens/automation/configs/index.d.ts +2 -2
  126. package/dist/tokens/automation/configs/index.js +2 -2
  127. package/dist/tokens/automation/index.cjs +2 -0
  128. package/dist/tokens/automation/index.d.cts +3 -3
  129. package/dist/tokens/automation/index.d.ts +3 -3
  130. package/dist/tokens/automation/index.js +3 -3
  131. package/dist/tokens/index.cjs +2 -0
  132. package/dist/tokens/index.d.cts +4 -4
  133. package/dist/tokens/index.d.ts +4 -4
  134. package/dist/tokens/index.js +3 -3
  135. package/dist/tokens/types.d.cts +2 -2
  136. package/dist/tokens/types.d.ts +2 -2
  137. package/dist/types/dist/index.d.cts +83 -1
  138. package/dist/types/dist/index.d.ts +83 -1
  139. package/dist/uds/generated/componentData.cjs +1069 -690
  140. package/dist/uds/generated/componentData.js +1069 -690
  141. package/dist/uds/generated/tailwindPurge.cjs +115 -84
  142. package/dist/uds/generated/tailwindPurge.js +115 -84
  143. package/dist/uds/package.cjs +1 -0
  144. package/dist/uds/package.js +1 -0
  145. package/generated/componentData.json +1323 -864
  146. package/generated/tailwindPurge.ts +4 -4
  147. package/package.json +2 -1
@@ -1,4 +1,5 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ import { filterPseudoStatesByExclusion, getExcludedPseudoStatesForComponentStateOption } from "./componentStatePseudoStates.js";
2
3
  import { generateSchemaKey } from "./generateSchemaKey.js";
3
4
  import { isVariantConfigWithComponentStates, isVariantConfigWithProperties } from "./variantConfigGuards.js";
4
5
  import { getArbitraryFixture, validateArbitraryValue } from "../../../fixtures/src/util.js";
@@ -16,6 +17,14 @@ function findFixtureTypeForValue(property, value) {
16
17
  function findFixtureType(property, variantKey) {
17
18
  return findFixtureTypeForValue(property, property.defaults[variantKey]);
18
19
  }
20
+ function appendPseudoStateVariables(variableObject, propertyKey, property, variantOption, excludedPseudoStates = []) {
21
+ if (!property.pseudoStates) return;
22
+ for (const pseudoState of filterPseudoStatesByExclusion(property.pseudoStates, excludedPseudoStates)) variableObject[propertyKey][pseudoState] = {
23
+ type: findFixtureType(property, variantOption),
24
+ valueType: "alias",
25
+ value: property.defaults[variantOption]
26
+ };
27
+ }
19
28
  /** Builds component schema from ComponentConfig at runtime */
20
29
  function buildConfigSchema(config) {
21
30
  const result = {};
@@ -47,11 +56,7 @@ function buildConfigSchema(config) {
47
56
  valueType: "alias",
48
57
  value: property.defaults[variantOption]
49
58
  } };
50
- if (property.pseudoStates) for (const pseudoState of property.pseudoStates) variableObject[propertyKey][pseudoState] = {
51
- type: findFixtureType(property, variantOption),
52
- valueType: "alias",
53
- value: property.defaults[variantOption]
54
- };
59
+ appendPseudoStateVariables(variableObject, propertyKey, property, variantOption, getExcludedPseudoStatesForComponentStateOption(componentState, componentStateOption));
55
60
  result.variables[schemaKey] = {
56
61
  ...result.variables[schemaKey],
57
62
  ...variableObject
@@ -77,11 +82,7 @@ function buildConfigSchema(config) {
77
82
  valueType: "alias",
78
83
  value: property.defaults[variantOption]
79
84
  } };
80
- if (property.pseudoStates) for (const pseudoState of property.pseudoStates) variableObject[propertyKey][pseudoState] = {
81
- type: findFixtureType(property, variantOption),
82
- valueType: "alias",
83
- value: property.defaults[variantOption]
84
- };
85
+ appendPseudoStateVariables(variableObject, propertyKey, property, variantOption);
85
86
  result.variables[schemaKey] = {
86
87
  ...result.variables[schemaKey],
87
88
  ...variableObject
@@ -118,11 +119,7 @@ function buildConfigSchema(config) {
118
119
  valueType: "alias",
119
120
  value: property.defaults[variantOption]
120
121
  } };
121
- if (property.pseudoStates) for (const pseudoState of property.pseudoStates) variableObject[propertyKey][pseudoState] = {
122
- type: findFixtureType(property, variantOption),
123
- valueType: "alias",
124
- value: property.defaults[variantOption]
125
- };
122
+ appendPseudoStateVariables(variableObject, propertyKey, property, variantOption, getExcludedPseudoStatesForComponentStateOption(componentState, componentStateOption));
126
123
  result.variables[schemaKey] = {
127
124
  ...result.variables[schemaKey],
128
125
  ...variableObject
@@ -149,11 +146,7 @@ function buildConfigSchema(config) {
149
146
  valueType: "alias",
150
147
  value: property.defaults[variantOption]
151
148
  } };
152
- if (property.pseudoStates) for (const pseudoState of property.pseudoStates) variableObject[propertyKey][pseudoState] = {
153
- type: findFixtureType(property, variantOption),
154
- valueType: "alias",
155
- value: property.defaults[variantOption]
156
- };
149
+ appendPseudoStateVariables(variableObject, propertyKey, property, variantOption);
157
150
  result.variables[schemaKey] = {
158
151
  ...result.variables[schemaKey],
159
152
  ...variableObject
@@ -0,0 +1,15 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ //#region ../automated-config/dist/utils/componentStatePseudoStates.js
3
+ /*! © 2026 Yahoo, Inc. UDS Default Config v0.0.0-development */
4
+ function getExcludedPseudoStatesForComponentStateOption(componentState, componentStateOption) {
5
+ return componentState.excludePseudoStatesForOptions?.[componentStateOption] ?? [];
6
+ }
7
+ function filterPseudoStatesByExclusion(pseudoStates, excludedPseudoStates) {
8
+ if (!pseudoStates) return [];
9
+ if (excludedPseudoStates.length === 0) return [...pseudoStates];
10
+ const excluded = new Set(excludedPseudoStates);
11
+ return pseudoStates.filter((pseudoState) => !excluded.has(pseudoState));
12
+ }
13
+ //#endregion
14
+ exports.filterPseudoStatesByExclusion = filterPseudoStatesByExclusion;
15
+ exports.getExcludedPseudoStatesForComponentStateOption = getExcludedPseudoStatesForComponentStateOption;
@@ -0,0 +1,14 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ //#region ../automated-config/dist/utils/componentStatePseudoStates.js
3
+ /*! © 2026 Yahoo, Inc. UDS Default Config v0.0.0-development */
4
+ function getExcludedPseudoStatesForComponentStateOption(componentState, componentStateOption) {
5
+ return componentState.excludePseudoStatesForOptions?.[componentStateOption] ?? [];
6
+ }
7
+ function filterPseudoStatesByExclusion(pseudoStates, excludedPseudoStates) {
8
+ if (!pseudoStates) return [];
9
+ if (excludedPseudoStates.length === 0) return [...pseudoStates];
10
+ const excluded = new Set(excludedPseudoStates);
11
+ return pseudoStates.filter((pseudoState) => !excluded.has(pseudoState));
12
+ }
13
+ //#endregion
14
+ export { filterPseudoStatesByExclusion, getExcludedPseudoStatesForComponentStateOption };
@@ -1,19 +1,21 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ const require_componentStatePseudoStates = require("./componentStatePseudoStates.cjs");
2
3
  const require_variantConfigGuards = require("./variantConfigGuards.cjs");
3
4
  const require_getConfigComponentVariant = require("./getConfigComponentVariant.cjs");
4
5
  //#region ../automated-config/dist/utils/getConfigVariantPseudoStates.js
5
6
  /*! © 2026 Yahoo, Inc. UDS Default Config v0.0.0-development */
6
7
  const DEFAULT_PSEUDO_STATES = ["rest"];
7
- function getConfigVariantPseudoStates(config, variantKey, state, subComponentName) {
8
+ function getConfigVariantPseudoStates(config, variantKey, state, subComponentName, componentStateValue) {
8
9
  const componentVariant = require_getConfigComponentVariant.getConfigComponentVariant(config, variantKey, subComponentName);
9
10
  if (!componentVariant) return null;
11
+ const excludedPseudoStates = state && componentStateValue && require_variantConfigGuards.isVariantConfigWithComponentStates(componentVariant) ? require_componentStatePseudoStates.getExcludedPseudoStatesForComponentStateOption(componentVariant.componentStates[state], componentStateValue) : [];
10
12
  const variantLayers = require_variantConfigGuards.isVariantConfigWithProperties(componentVariant) ? Object.entries(componentVariant?.layers ?? {}) : [];
11
13
  const stateLayers = require_variantConfigGuards.isVariantConfigWithComponentStates(componentVariant) && state ? Object.entries(componentVariant.componentStates[state].layers ?? {}) : [];
12
14
  return [...variantLayers, ...stateLayers].flatMap(([layerKey, layer]) => Object.entries(layer.properties).map(([propertyKey, property]) => [
13
15
  layerKey,
14
16
  propertyKey,
15
17
  property
16
- ])).flatMap(([layerKey, propertyKey, property]) => [...property.skipRestState ? DEFAULT_PSEUDO_STATES.filter((s) => s !== "rest") : DEFAULT_PSEUDO_STATES, ...property.pseudoStates ?? []].map((pseudoState) => [
18
+ ])).flatMap(([layerKey, propertyKey, property]) => [...property.skipRestState ? DEFAULT_PSEUDO_STATES.filter((s) => s !== "rest") : DEFAULT_PSEUDO_STATES, ...require_componentStatePseudoStates.filterPseudoStatesByExclusion(property.pseudoStates, excludedPseudoStates)].map((pseudoState) => [
17
19
  layerKey,
18
20
  propertyKey,
19
21
  property,
@@ -6,6 +6,6 @@ import { SelectedConfigurableProperty } from "../properties.cjs";
6
6
  //#region src/utils/getConfigVariantPseudoStates.d.ts
7
7
  type GenericProperty = SelectedConfigurableProperty<any, any>;
8
8
  type InfoTuple = [string, string, GenericProperty];
9
- declare function getConfigVariantPseudoStates<C extends ComponentConfig>(config: C, variantKey: string, state?: string, subComponentName?: string): Record<PossibleStatesWithRest, InfoTuple[]> | null; //#endregion
9
+ declare function getConfigVariantPseudoStates<C extends ComponentConfig>(config: C, variantKey: string, state?: string, subComponentName?: string, componentStateValue?: string): Record<PossibleStatesWithRest, InfoTuple[]> | null; //#endregion
10
10
  //#endregion
11
11
  export { getConfigVariantPseudoStates };
@@ -6,6 +6,6 @@ import { SelectedConfigurableProperty } from "../properties.js";
6
6
  //#region src/utils/getConfigVariantPseudoStates.d.ts
7
7
  type GenericProperty = SelectedConfigurableProperty<any, any>;
8
8
  type InfoTuple = [string, string, GenericProperty];
9
- declare function getConfigVariantPseudoStates<C extends ComponentConfig>(config: C, variantKey: string, state?: string, subComponentName?: string): Record<PossibleStatesWithRest, InfoTuple[]> | null; //#endregion
9
+ declare function getConfigVariantPseudoStates<C extends ComponentConfig>(config: C, variantKey: string, state?: string, subComponentName?: string, componentStateValue?: string): Record<PossibleStatesWithRest, InfoTuple[]> | null; //#endregion
10
10
  //#endregion
11
11
  export { getConfigVariantPseudoStates };
@@ -1,19 +1,21 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ import { filterPseudoStatesByExclusion, getExcludedPseudoStatesForComponentStateOption } from "./componentStatePseudoStates.js";
2
3
  import { isVariantConfigWithComponentStates, isVariantConfigWithProperties } from "./variantConfigGuards.js";
3
4
  import { getConfigComponentVariant } from "./getConfigComponentVariant.js";
4
5
  //#region ../automated-config/dist/utils/getConfigVariantPseudoStates.js
5
6
  /*! © 2026 Yahoo, Inc. UDS Default Config v0.0.0-development */
6
7
  const DEFAULT_PSEUDO_STATES = ["rest"];
7
- function getConfigVariantPseudoStates(config, variantKey, state, subComponentName) {
8
+ function getConfigVariantPseudoStates(config, variantKey, state, subComponentName, componentStateValue) {
8
9
  const componentVariant = getConfigComponentVariant(config, variantKey, subComponentName);
9
10
  if (!componentVariant) return null;
11
+ const excludedPseudoStates = state && componentStateValue && isVariantConfigWithComponentStates(componentVariant) ? getExcludedPseudoStatesForComponentStateOption(componentVariant.componentStates[state], componentStateValue) : [];
10
12
  const variantLayers = isVariantConfigWithProperties(componentVariant) ? Object.entries(componentVariant?.layers ?? {}) : [];
11
13
  const stateLayers = isVariantConfigWithComponentStates(componentVariant) && state ? Object.entries(componentVariant.componentStates[state].layers ?? {}) : [];
12
14
  return [...variantLayers, ...stateLayers].flatMap(([layerKey, layer]) => Object.entries(layer.properties).map(([propertyKey, property]) => [
13
15
  layerKey,
14
16
  propertyKey,
15
17
  property
16
- ])).flatMap(([layerKey, propertyKey, property]) => [...property.skipRestState ? DEFAULT_PSEUDO_STATES.filter((s) => s !== "rest") : DEFAULT_PSEUDO_STATES, ...property.pseudoStates ?? []].map((pseudoState) => [
18
+ ])).flatMap(([layerKey, propertyKey, property]) => [...property.skipRestState ? DEFAULT_PSEUDO_STATES.filter((s) => s !== "rest") : DEFAULT_PSEUDO_STATES, ...filterPseudoStatesByExclusion(property.pseudoStates, excludedPseudoStates)].map((pseudoState) => [
17
19
  layerKey,
18
20
  propertyKey,
19
21
  property,
@@ -2,6 +2,7 @@
2
2
  require("../../../_virtual/_rolldown/runtime.cjs");
3
3
  const require_index = require("../../../css-tokens/dist/index.cjs");
4
4
  const require_properties = require("../properties.cjs");
5
+ const require_componentStatePseudoStates = require("./componentStatePseudoStates.cjs");
5
6
  const require_generateSchemaKey = require("./generateSchemaKey.cjs");
6
7
  const require_variantConfigGuards = require("./variantConfigGuards.cjs");
7
8
  const require_buildConfigSchema = require("./buildConfigSchema.cjs");
@@ -19,7 +20,9 @@ let lodash_es = require("lodash-es");
19
20
  //#region ../automated-config/dist/utils/index.js
20
21
  /*! © 2026 Yahoo, Inc. UDS Default Config v0.0.0-development */
21
22
  const CSS_GAP = "gap";
23
+ const CSS_PADDING = "padding";
22
24
  const CSS_LINE_HEIGHT = "line-height";
25
+ const PAGINATION_CONTROL_SIZE_VAR = "--uds-pagination-control-size";
23
26
  const CSS_BORDER_WIDTH = "border-width";
24
27
  const CSS_BORDER_RADIUS = "border-radius";
25
28
  const CSS_BORDER_COLOR = "border-color";
@@ -59,6 +62,10 @@ const COMPONENTS_WITH_SHADOW_BORDERS = [
59
62
  {
60
63
  componentName: "tabs",
61
64
  layer: "root"
65
+ },
66
+ {
67
+ componentName: "pagination",
68
+ layer: "root"
62
69
  }
63
70
  ];
64
71
  /**
@@ -104,6 +111,15 @@ function getButtonLineHeightWithIconMinimum({ lineHeight, schema, iconLayerKey,
104
111
  return lineHeight;
105
112
  }
106
113
  /**
114
+ * Shared pagination control height: padding on all sides plus icon size.
115
+ * Keeps page circles, prev/next, and ellipsis vertically aligned when spacing changes.
116
+ */
117
+ function getPaginationControlSize({ padding, schema, iconLayerKey, state, theme }) {
118
+ const iconSizeValue = schema.variables?.[iconLayerKey]?.size?.[state]?.value;
119
+ if (iconSizeValue) return `calc(2 * ${padding} + ${theme(require_properties.configurableProperties.iconSize.twThemePath("iconSizes", iconSizeValue))})`;
120
+ return `calc(2 * ${padding} + 1em)`;
121
+ }
122
+ /**
107
123
  * Forces button borders to use box-shadow instead of border properties.
108
124
  * Converts border-width and border-color into an inset box-shadow layer.
109
125
  *
@@ -142,11 +158,37 @@ function applyBoxShadowBorder(classStyles) {
142
158
  const bottomColor = classStyles[CSS_BORDER_BOTTOM_COLOR] ?? borderColor;
143
159
  const leftColor = classStyles[CSS_BORDER_LEFT_COLOR] ?? borderColor;
144
160
  const borderLayers = [];
145
- if (!isZeroWidth(topWidth) && topColor) borderLayers.push(`inset 0 ${stripImportant(topWidth)} 0 0 ${stripImportant(topColor)}`);
146
- if (!isZeroWidth(rightWidth) && rightColor) borderLayers.push(`inset ${negateLength(rightWidth)} 0 0 0 ${stripImportant(rightColor)}`);
147
- if (!isZeroWidth(bottomWidth) && bottomColor) borderLayers.push(`inset 0 ${negateLength(bottomWidth)} 0 0 ${stripImportant(bottomColor)}`);
148
- if (!isZeroWidth(leftWidth) && leftColor) borderLayers.push(`inset ${stripImportant(leftWidth)} 0 0 0 ${stripImportant(leftColor)}`);
149
- if (borderLayers.length === 0) return classStyles;
161
+ const sidesWithBorder = [
162
+ topWidth,
163
+ rightWidth,
164
+ bottomWidth,
165
+ leftWidth
166
+ ].map((width, index) => {
167
+ const color = [
168
+ topColor,
169
+ rightColor,
170
+ bottomColor,
171
+ leftColor
172
+ ][index];
173
+ return {
174
+ width: stripImportant(width ?? "").trim(),
175
+ color: stripImportant(color ?? "").trim()
176
+ };
177
+ }).filter(({ width }) => !isZeroWidth(width));
178
+ if (sidesWithBorder.length === 0) return classStyles;
179
+ const uniformWidth = sidesWithBorder.every(({ width }) => width === sidesWithBorder[0].width);
180
+ const uniformColor = sidesWithBorder.every(({ color }) => color && color === sidesWithBorder[0].color);
181
+ const hasBorderWidthShorthand = borderWidth !== void 0 && !isZeroWidth(borderWidth);
182
+ const allSidesBordered = sidesWithBorder.length === 4;
183
+ if ((hasBorderWidthShorthand || allSidesBordered) && uniformWidth && uniformColor) {
184
+ const { width, color } = sidesWithBorder[0];
185
+ borderLayers.push(`inset 0 0 0 ${width} ${color}`);
186
+ } else {
187
+ if (!isZeroWidth(topWidth) && topColor) borderLayers.push(`inset 0 ${stripImportant(topWidth)} 0 0 ${stripImportant(topColor)}`);
188
+ if (!isZeroWidth(rightWidth) && rightColor) borderLayers.push(`inset ${negateLength(rightWidth)} 0 0 0 ${stripImportant(rightColor)}`);
189
+ if (!isZeroWidth(bottomWidth) && bottomColor) borderLayers.push(`inset 0 ${negateLength(bottomWidth)} 0 0 ${stripImportant(bottomColor)}`);
190
+ if (!isZeroWidth(leftWidth) && leftColor) borderLayers.push(`inset ${stripImportant(leftWidth)} 0 0 0 ${stripImportant(leftColor)}`);
191
+ }
150
192
  const layers = [...borderLayers, classStyles[CSS_BOX_SHADOW] && stripImportant(classStyles[CSS_BOX_SHADOW])].filter(Boolean);
151
193
  const needsImportant = hasImportant(topWidth) || hasImportant(rightWidth) || hasImportant(bottomWidth) || hasImportant(leftWidth) || hasImportant(topColor) || hasImportant(rightColor) || hasImportant(bottomColor) || hasImportant(leftColor) || hasImportant(borderWidth) || hasImportant(borderColor) || hasImportant(classStyles[CSS_BOX_SHADOW]);
152
194
  const newStyles = { ...classStyles };
@@ -185,7 +227,7 @@ const getTheCssPropertyValue = (schema, theme, propertyName, schemaStateValue, e
185
227
  if (propertyConfig.concatenate && existingValue) return `${existingValue}${propertyConfig.concatenationDelimiter || ", "}${newValue}`;
186
228
  return newValue;
187
229
  };
188
- function generateDeclaration({ componentName, subComponentName, variantKey, variantValue, layer, layerOptionalPseudoSelector, componentStateKey, componentStateValue, schema, propertyKey, originalPropertyDefinition, theme, currentStyles, previewOptions }) {
230
+ function generateDeclaration({ componentName, subComponentName, variantKey, variantValue, layer, layerOptionalPseudoSelector, componentStateKey, componentStateValue, schema, propertyKey, originalPropertyDefinition, theme, currentStyles, previewOptions, excludedPseudoStates = [] }) {
189
231
  const schemaKey = require_generateSchemaKey.generateSchemaKey({
190
232
  variantKey,
191
233
  variantValue,
@@ -207,7 +249,7 @@ function generateDeclaration({ componentName, subComponentName, variantKey, vari
207
249
  if (!propertyStateMap) throw new Error(`Prop definition (${componentName} - ${schemaKey} - ${propertyKey}) not found, this is not expected, please report the bug to the UDS team`);
208
250
  const styles = {};
209
251
  const skipRestForProperty = originalPropertyDefinition.skipRestState === true;
210
- const declaredPseudoStates = originalPropertyDefinition.pseudoStates ?? [];
252
+ const declaredPseudoStates = require_componentStatePseudoStates.filterPseudoStatesByExclusion(originalPropertyDefinition.pseudoStates, excludedPseudoStates);
211
253
  const declaredPropertyStates = new Set([...skipRestForProperty ? [] : ["rest"], ...declaredPseudoStates]);
212
254
  for (const propStateStr in propertyStateMap) {
213
255
  if (!declaredPropertyStates.has(propStateStr)) continue;
@@ -319,6 +361,21 @@ function generateDeclaration({ componentName, subComponentName, variantKey, vari
319
361
  });
320
362
  }
321
363
  }
364
+ if (componentName === "pagination" && layer === "item" && propertyKey === "spacing") {
365
+ const padding = cssDeclarations[CSS_PADDING];
366
+ if (padding) cssDeclarations[PAGINATION_CONTROL_SIZE_VAR] = getPaginationControlSize({
367
+ padding,
368
+ schema,
369
+ iconLayerKey: require_generateSchemaKey.generateSchemaKey({
370
+ variantKey,
371
+ variantValue,
372
+ layer: "icon",
373
+ subComponentName
374
+ }),
375
+ state: propertyState,
376
+ theme
377
+ });
378
+ }
322
379
  if (componentName === "paddlenav" && layer === "root") {
323
380
  if (propertyKey === "borderRadius" && cssDeclarations[CSS_BORDER_RADIUS]) cssDeclarations[NESTED_BORDER_RADIUS_SIZE_VAR] = cssDeclarations[CSS_BORDER_RADIUS];
324
381
  if (propertyKey === "borderWidth" && cssDeclarations[CSS_BORDER_WIDTH]) cssDeclarations[NESTED_BORDER_RADIUS_WIDTH_VAR] = cssDeclarations[CSS_BORDER_WIDTH];
@@ -390,26 +447,30 @@ function generateConfigStyles(config, schema, theme, previewOptions) {
390
447
  const componentStates = variantConfig.componentStates;
391
448
  for (const componentStateKey in componentStates) {
392
449
  const componentState = componentStates[componentStateKey];
393
- for (const componentStateOption of componentState.options) for (const layerKey in componentState.layers) {
394
- const layer = componentState.layers[layerKey];
395
- for (const propertyKey in layer.properties) {
396
- const originalPropertyDefinition = layer.properties[propertyKey];
397
- const declarations = generateDeclaration({
398
- componentName,
399
- variantKey,
400
- variantValue: variantOption,
401
- componentStateKey,
402
- componentStateValue: componentStateOption,
403
- layer: layerKey,
404
- layerOptionalPseudoSelector: layer.pseudoSelector,
405
- propertyKey,
406
- originalPropertyDefinition,
407
- theme,
408
- schema,
409
- currentStyles: styles,
410
- previewOptions
411
- });
412
- styles = deepMerge(styles, declarations);
450
+ for (const componentStateOption of componentState.options) {
451
+ const excludedPseudoStates = require_componentStatePseudoStates.getExcludedPseudoStatesForComponentStateOption(componentState, componentStateOption);
452
+ for (const layerKey in componentState.layers) {
453
+ const layer = componentState.layers[layerKey];
454
+ for (const propertyKey in layer.properties) {
455
+ const originalPropertyDefinition = layer.properties[propertyKey];
456
+ const declarations = generateDeclaration({
457
+ componentName,
458
+ variantKey,
459
+ variantValue: variantOption,
460
+ componentStateKey,
461
+ componentStateValue: componentStateOption,
462
+ layer: layerKey,
463
+ layerOptionalPseudoSelector: layer.pseudoSelector,
464
+ propertyKey,
465
+ originalPropertyDefinition,
466
+ theme,
467
+ schema,
468
+ currentStyles: styles,
469
+ previewOptions,
470
+ excludedPseudoStates
471
+ });
472
+ styles = deepMerge(styles, declarations);
473
+ }
413
474
  }
414
475
  }
415
476
  }
@@ -445,27 +506,31 @@ function generateConfigStyles(config, schema, theme, previewOptions) {
445
506
  const componentStates = variantConfig.componentStates;
446
507
  for (const componentStateKey in componentStates) {
447
508
  const componentState = componentStates[componentStateKey];
448
- for (const componentStateOption of componentState.options) for (const layerKey in componentState.layers) {
449
- const layer = componentState.layers[layerKey];
450
- for (const propertyKey in layer.properties) {
451
- const originalPropertyDefinition = layer.properties[propertyKey];
452
- const declarations = generateDeclaration({
453
- componentName,
454
- variantKey,
455
- variantValue: variantOption,
456
- componentStateKey,
457
- componentStateValue: componentStateOption,
458
- subComponentName: subComponentKey,
459
- layer: layerKey,
460
- layerOptionalPseudoSelector: layer.pseudoSelector,
461
- propertyKey,
462
- originalPropertyDefinition,
463
- theme,
464
- schema,
465
- currentStyles: styles,
466
- previewOptions
467
- });
468
- styles = deepMerge(styles, declarations);
509
+ for (const componentStateOption of componentState.options) {
510
+ const excludedPseudoStates = require_componentStatePseudoStates.getExcludedPseudoStatesForComponentStateOption(componentState, componentStateOption);
511
+ for (const layerKey in componentState.layers) {
512
+ const layer = componentState.layers[layerKey];
513
+ for (const propertyKey in layer.properties) {
514
+ const originalPropertyDefinition = layer.properties[propertyKey];
515
+ const declarations = generateDeclaration({
516
+ componentName,
517
+ variantKey,
518
+ variantValue: variantOption,
519
+ componentStateKey,
520
+ componentStateValue: componentStateOption,
521
+ subComponentName: subComponentKey,
522
+ layer: layerKey,
523
+ layerOptionalPseudoSelector: layer.pseudoSelector,
524
+ propertyKey,
525
+ originalPropertyDefinition,
526
+ theme,
527
+ schema,
528
+ currentStyles: styles,
529
+ previewOptions,
530
+ excludedPseudoStates
531
+ });
532
+ styles = deepMerge(styles, declarations);
533
+ }
469
534
  }
470
535
  }
471
536
  }
@@ -613,6 +678,7 @@ function createSubComponentConfig(config) {
613
678
  return config;
614
679
  }
615
680
  //#endregion
681
+ exports.applyBoxShadowBorder = applyBoxShadowBorder;
616
682
  exports.createComponentStates = createComponentStates;
617
683
  exports.createConfigurableProperty = createConfigurableProperty;
618
684
  exports.createLayerConfig = createLayerConfig;
@@ -19,6 +19,26 @@ import { getConfigSubcomponents } from "./subcomponents.cjs";
19
19
  //#region src/utils/index.d.ts
20
20
  type ThemeFn = (path: string) => string;
21
21
  declare const statePseudoMapDocsMode: Record<PossibleStatesWithRest, string>;
22
+ /**
23
+ * Forces button borders to use box-shadow instead of border properties.
24
+ * Converts border-width and border-color into an inset box-shadow layer.
25
+ *
26
+ * Why box-shadow for borders?
27
+ * - Respects border-radius (unlike outline which stays rectangular)
28
+ * - Allows layering multiple shadows in a single property
29
+ * - GPU-accelerated and performant
30
+ * - Works perfectly with rounded/circular buttons
31
+ *
32
+ * @param classStyles - The CSS declarations for a button class
33
+ * @returns Modified styles with box-shadow layers, or original if no border
34
+ *
35
+ * @example
36
+ * Input: { border-width: '2px', border-color: 'red', box-shadow: '0 2px 4px rgba(0,0,0,0.1)' }
37
+ * Output: { box-shadow: 'inset 0 0 0 2px red, 0 2px 4px rgba(0,0,0,0.1)' }
38
+ * Renders borders using inset box-shadows instead of CSS border widths.
39
+ * This preserves visual borders without affecting layout dimensions.
40
+ */
41
+ declare function applyBoxShadowBorder(classStyles: Record<string, string>): Record<string, string>;
22
42
  declare function generateClassName({
23
43
  componentName,
24
44
  subComponentName,
@@ -52,7 +72,8 @@ declare function generateDeclaration({
52
72
  originalPropertyDefinition,
53
73
  theme,
54
74
  currentStyles,
55
- previewOptions
75
+ previewOptions,
76
+ excludedPseudoStates
56
77
  }: {
57
78
  componentName: string;
58
79
  subComponentName?: string;
@@ -70,6 +91,7 @@ declare function generateDeclaration({
70
91
  previewOptions?: {
71
92
  generatePseudoStateClassModifier?: boolean;
72
93
  };
94
+ excludedPseudoStates?: readonly PossibleStates[];
73
95
  }): Record<string, Record<string, string>>;
74
96
  declare function generateConfigStyles<C extends ComponentConfig>(config: C, schema: ComponentSchema<ComponentConfig>, theme: ThemeFn, previewOptions?: {
75
97
  generatePseudoStateClassModifier: boolean;
@@ -123,6 +145,7 @@ declare function createVariantConfigWithComponentStates(config: {
123
145
  declare function createComponentStates(config: {
124
146
  label: string;
125
147
  options: string[];
148
+ excludePseudoStatesForOptions?: Partial<Record<string, readonly PossibleStates[]>>;
126
149
  layers: {
127
150
  root: LayerConfig;
128
151
  } & Record<string, LayerConfig>;
@@ -138,4 +161,4 @@ declare function createSubComponentConfig(config: {
138
161
  variants: Record<string, VariantConfigWithProperties | VariantConfigWithComponentStates>;
139
162
  }): SubComponentConfig; //#endregion
140
163
  //#endregion
141
- export { createComponentStates, createConfigurableProperty, createLayerConfig, createSubComponentConfig, createVariantConfig, createVariantConfigWithComponentStates, createVariantConfigWithProperties, generateClassName, generateConfigStyles, generateDeclaration, generateStyles, statePseudoMapDocsMode };
164
+ export { applyBoxShadowBorder, createComponentStates, createConfigurableProperty, createLayerConfig, createSubComponentConfig, createVariantConfig, createVariantConfigWithComponentStates, createVariantConfigWithProperties, generateClassName, generateConfigStyles, generateDeclaration, generateStyles, statePseudoMapDocsMode };
@@ -19,6 +19,26 @@ import { getConfigSubcomponents } from "./subcomponents.js";
19
19
  //#region src/utils/index.d.ts
20
20
  type ThemeFn = (path: string) => string;
21
21
  declare const statePseudoMapDocsMode: Record<PossibleStatesWithRest, string>;
22
+ /**
23
+ * Forces button borders to use box-shadow instead of border properties.
24
+ * Converts border-width and border-color into an inset box-shadow layer.
25
+ *
26
+ * Why box-shadow for borders?
27
+ * - Respects border-radius (unlike outline which stays rectangular)
28
+ * - Allows layering multiple shadows in a single property
29
+ * - GPU-accelerated and performant
30
+ * - Works perfectly with rounded/circular buttons
31
+ *
32
+ * @param classStyles - The CSS declarations for a button class
33
+ * @returns Modified styles with box-shadow layers, or original if no border
34
+ *
35
+ * @example
36
+ * Input: { border-width: '2px', border-color: 'red', box-shadow: '0 2px 4px rgba(0,0,0,0.1)' }
37
+ * Output: { box-shadow: 'inset 0 0 0 2px red, 0 2px 4px rgba(0,0,0,0.1)' }
38
+ * Renders borders using inset box-shadows instead of CSS border widths.
39
+ * This preserves visual borders without affecting layout dimensions.
40
+ */
41
+ declare function applyBoxShadowBorder(classStyles: Record<string, string>): Record<string, string>;
22
42
  declare function generateClassName({
23
43
  componentName,
24
44
  subComponentName,
@@ -52,7 +72,8 @@ declare function generateDeclaration({
52
72
  originalPropertyDefinition,
53
73
  theme,
54
74
  currentStyles,
55
- previewOptions
75
+ previewOptions,
76
+ excludedPseudoStates
56
77
  }: {
57
78
  componentName: string;
58
79
  subComponentName?: string;
@@ -70,6 +91,7 @@ declare function generateDeclaration({
70
91
  previewOptions?: {
71
92
  generatePseudoStateClassModifier?: boolean;
72
93
  };
94
+ excludedPseudoStates?: readonly PossibleStates[];
73
95
  }): Record<string, Record<string, string>>;
74
96
  declare function generateConfigStyles<C extends ComponentConfig>(config: C, schema: ComponentSchema<ComponentConfig>, theme: ThemeFn, previewOptions?: {
75
97
  generatePseudoStateClassModifier: boolean;
@@ -123,6 +145,7 @@ declare function createVariantConfigWithComponentStates(config: {
123
145
  declare function createComponentStates(config: {
124
146
  label: string;
125
147
  options: string[];
148
+ excludePseudoStatesForOptions?: Partial<Record<string, readonly PossibleStates[]>>;
126
149
  layers: {
127
150
  root: LayerConfig;
128
151
  } & Record<string, LayerConfig>;
@@ -138,4 +161,4 @@ declare function createSubComponentConfig(config: {
138
161
  variants: Record<string, VariantConfigWithProperties | VariantConfigWithComponentStates>;
139
162
  }): SubComponentConfig; //#endregion
140
163
  //#endregion
141
- export { createComponentStates, createConfigurableProperty, createLayerConfig, createSubComponentConfig, createVariantConfig, createVariantConfigWithComponentStates, createVariantConfigWithProperties, generateClassName, generateConfigStyles, generateDeclaration, generateStyles, statePseudoMapDocsMode };
164
+ export { applyBoxShadowBorder, createComponentStates, createConfigurableProperty, createLayerConfig, createSubComponentConfig, createVariantConfig, createVariantConfigWithComponentStates, createVariantConfigWithProperties, generateClassName, generateConfigStyles, generateDeclaration, generateStyles, statePseudoMapDocsMode };