@yahoo/uds 3.156.1 → 3.157.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 (144) hide show
  1. package/dist/automated-config/dist/generated/autoVariants.cjs +9 -4
  2. package/dist/automated-config/dist/generated/autoVariants.d.cts +2 -1
  3. package/dist/automated-config/dist/generated/autoVariants.d.ts +2 -1
  4. package/dist/automated-config/dist/generated/autoVariants.js +9 -4
  5. package/dist/automated-config/dist/generated/generatedConfigs.cjs +3011 -3038
  6. package/dist/automated-config/dist/generated/generatedConfigs.d.cts +143 -140
  7. package/dist/automated-config/dist/generated/generatedConfigs.d.ts +143 -140
  8. package/dist/automated-config/dist/generated/generatedConfigs.js +3011 -3038
  9. package/dist/automated-config/dist/generated/universalTokensConfigAuto.cjs +1227 -501
  10. package/dist/automated-config/dist/generated/universalTokensConfigAuto.js +1227 -501
  11. package/dist/automated-config/dist/properties.cjs +1 -1
  12. package/dist/automated-config/dist/properties.d.cts +15 -0
  13. package/dist/automated-config/dist/properties.d.ts +15 -0
  14. package/dist/automated-config/dist/properties.js +1 -1
  15. package/dist/automated-config/dist/types/ComponentConfig.d.cts +77 -4
  16. package/dist/automated-config/dist/types/ComponentConfig.d.ts +77 -4
  17. package/dist/automated-config/dist/types/ConfigSchema.d.cts +14 -2
  18. package/dist/automated-config/dist/types/ConfigSchema.d.ts +14 -2
  19. package/dist/automated-config/dist/types/StateAxis.cjs +90 -0
  20. package/dist/automated-config/dist/types/StateAxis.d.cts +70 -0
  21. package/dist/automated-config/dist/types/StateAxis.d.ts +70 -0
  22. package/dist/automated-config/dist/types/StateAxis.js +84 -0
  23. package/dist/automated-config/dist/utils/buildConfigSchema.cjs +98 -82
  24. package/dist/automated-config/dist/utils/buildConfigSchema.d.cts +32 -10
  25. package/dist/automated-config/dist/utils/buildConfigSchema.d.ts +32 -10
  26. package/dist/automated-config/dist/utils/buildConfigSchema.js +99 -83
  27. package/dist/automated-config/dist/utils/canonicalizeStateKey.cjs +32 -0
  28. package/dist/automated-config/dist/utils/canonicalizeStateKey.d.cts +48 -0
  29. package/dist/automated-config/dist/utils/canonicalizeStateKey.d.ts +48 -0
  30. package/dist/automated-config/dist/utils/canonicalizeStateKey.js +31 -0
  31. package/dist/automated-config/dist/utils/getConfigComponentVariant.d.cts +8 -0
  32. package/dist/automated-config/dist/utils/getConfigComponentVariant.d.ts +8 -0
  33. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.cts +3 -3
  34. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.ts +3 -3
  35. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.cjs +12 -5
  36. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.d.cts +8 -1
  37. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.d.ts +8 -1
  38. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.js +12 -5
  39. package/dist/automated-config/dist/utils/getPaginationControlWidthPx.cjs +1 -1
  40. package/dist/automated-config/dist/utils/getPaginationControlWidthPx.js +1 -1
  41. package/dist/automated-config/dist/utils/index.cjs +407 -97
  42. package/dist/automated-config/dist/utils/index.d.cts +66 -16
  43. package/dist/automated-config/dist/utils/index.d.ts +66 -16
  44. package/dist/automated-config/dist/utils/index.js +408 -99
  45. package/dist/automated-config/dist/utils/pseudoStateSelectors.cjs +122 -0
  46. package/dist/automated-config/dist/utils/pseudoStateSelectors.d.cts +80 -0
  47. package/dist/automated-config/dist/utils/pseudoStateSelectors.d.ts +80 -0
  48. package/dist/automated-config/dist/utils/pseudoStateSelectors.js +120 -0
  49. package/dist/automated-config/dist/utils/resolvePropertyStates.cjs +131 -0
  50. package/dist/automated-config/dist/utils/resolvePropertyStates.d.cts +49 -0
  51. package/dist/automated-config/dist/utils/resolvePropertyStates.d.ts +49 -0
  52. package/dist/automated-config/dist/utils/resolvePropertyStates.js +130 -0
  53. package/dist/automated-config/dist/utils/resolveSlotByCascade.cjs +118 -0
  54. package/dist/automated-config/dist/utils/resolveSlotByCascade.d.cts +68 -0
  55. package/dist/automated-config/dist/utils/resolveSlotByCascade.d.ts +68 -0
  56. package/dist/automated-config/dist/utils/resolveSlotByCascade.js +117 -0
  57. package/dist/automated-config/dist/utils/variantConfigGuards.d.cts +13 -0
  58. package/dist/automated-config/dist/utils/variantConfigGuards.d.ts +13 -0
  59. package/dist/components/client/Input/Input.cjs +42 -6
  60. package/dist/components/client/Input/Input.d.cts +13 -0
  61. package/dist/components/client/Input/Input.d.ts +13 -0
  62. package/dist/components/client/Input/Input.js +42 -6
  63. package/dist/config/dist/index.cjs +221 -550
  64. package/dist/config/dist/index.js +221 -550
  65. package/dist/css/dist/commands/css.cjs +1 -0
  66. package/dist/css/dist/commands/css.helpers.cjs +6 -0
  67. package/dist/css/dist/commands/css.helpers.js +6 -0
  68. package/dist/css/dist/commands/css.js +1 -0
  69. package/dist/css/dist/css/generate.cjs +4 -2
  70. package/dist/css/dist/css/generate.d.cts +28 -0
  71. package/dist/css/dist/css/generate.d.ts +28 -0
  72. package/dist/css/dist/css/generate.helpers.cjs +5 -1
  73. package/dist/css/dist/css/generate.helpers.js +6 -2
  74. package/dist/css/dist/css/generate.js +4 -2
  75. package/dist/css/dist/css/postcss.cjs +81 -0
  76. package/dist/css/dist/css/postcss.helpers.cjs +60 -0
  77. package/dist/css/dist/css/postcss.helpers.js +59 -1
  78. package/dist/css/dist/css/postcss.js +82 -2
  79. package/dist/css/dist/css/runner.cjs +12 -2
  80. package/dist/css/dist/css/runner.js +12 -2
  81. package/dist/css/dist/css/theme.d.cts +6 -0
  82. package/dist/css/dist/css/theme.d.ts +6 -0
  83. package/dist/css/dist/packages/automated-config/dist/properties.cjs +1 -1
  84. package/dist/css/dist/packages/automated-config/dist/properties.js +1 -1
  85. package/dist/css/dist/packages/automated-config/dist/utils/index.d.cts +6 -0
  86. package/dist/css/dist/packages/automated-config/dist/utils/index.d.ts +6 -0
  87. package/dist/css/dist/packages/config/dist/index.cjs +221 -550
  88. package/dist/css/dist/packages/config/dist/index.js +221 -550
  89. package/dist/css/dist/utils/optimizeCSS.cjs +59 -0
  90. package/dist/css/dist/utils/optimizeCSS.js +59 -0
  91. package/dist/index.cjs +25 -0
  92. package/dist/index.d.cts +10 -3
  93. package/dist/index.d.ts +10 -3
  94. package/dist/index.js +9 -2
  95. package/dist/styles/styler.d.cts +14 -13
  96. package/dist/styles/styler.d.ts +14 -13
  97. package/dist/styles/variants.d.cts +9 -4
  98. package/dist/styles/variants.d.ts +9 -4
  99. package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.cjs +3011 -3038
  100. package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.js +3011 -3038
  101. package/dist/tailwind-internal/dist/packages/automated-config/dist/properties.cjs +1 -1
  102. package/dist/tailwind-internal/dist/packages/automated-config/dist/properties.js +1 -1
  103. package/dist/tailwind-internal/dist/packages/automated-config/dist/types/StateAxis.cjs +81 -0
  104. package/dist/tailwind-internal/dist/packages/automated-config/dist/types/StateAxis.js +76 -0
  105. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/canonicalizeStateKey.cjs +33 -0
  106. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/canonicalizeStateKey.js +32 -0
  107. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/componentStatePseudoStates.cjs +0 -7
  108. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/componentStatePseudoStates.js +1 -7
  109. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.cjs +354 -97
  110. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.d.cts +6 -0
  111. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.d.ts +6 -0
  112. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.js +355 -98
  113. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/pseudoStateSelectors.cjs +122 -0
  114. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/pseudoStateSelectors.js +121 -0
  115. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/resolvePropertyStates.cjs +132 -0
  116. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/resolvePropertyStates.js +131 -0
  117. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/resolveSlotByCascade.cjs +95 -0
  118. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/resolveSlotByCascade.js +95 -0
  119. package/dist/tailwind-internal/dist/packages/config/dist/index.cjs +221 -550
  120. package/dist/tailwind-internal/dist/packages/config/dist/index.js +221 -550
  121. package/dist/tailwind-internal/dist/plugins/components.cjs +28 -24
  122. package/dist/tailwind-internal/dist/plugins/components.js +28 -24
  123. package/dist/tailwind-internal/dist/utils/composeTailwindPlugins.d.cts +3 -0
  124. package/dist/tailwind-internal/dist/utils/composeTailwindPlugins.d.ts +3 -0
  125. package/dist/tokens/automation/index.cjs +25 -0
  126. package/dist/tokens/automation/index.d.cts +9 -2
  127. package/dist/tokens/automation/index.d.ts +9 -2
  128. package/dist/tokens/automation/index.js +9 -2
  129. package/dist/tokens/index.cjs +25 -0
  130. package/dist/tokens/index.d.cts +10 -3
  131. package/dist/tokens/index.d.ts +10 -3
  132. package/dist/tokens/index.js +9 -2
  133. package/dist/tokens/types.d.cts +1 -1
  134. package/dist/tokens/types.d.ts +1 -1
  135. package/dist/uds/generated/componentData.cjs +2010 -2008
  136. package/dist/uds/generated/componentData.js +2010 -2008
  137. package/dist/uds/generated/migrationSchemaVersion.cjs +1 -1
  138. package/dist/uds/generated/migrationSchemaVersion.js +1 -1
  139. package/dist/uds/generated/tailwindPurge.cjs +79 -78
  140. package/dist/uds/generated/tailwindPurge.js +79 -78
  141. package/generated/componentData.json +2553 -2551
  142. package/generated/migrationSchemaVersion.ts +1 -1
  143. package/generated/tailwindPurge.ts +2 -2
  144. package/package.json +1 -1
@@ -28,6 +28,19 @@ interface InputProps extends NativeInputProps, UniversalInputProps {
28
28
  helperText?: Partial<React.HTMLAttributes<HTMLSpanElement> & DataAttributes>;
29
29
  helperTextIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
30
30
  };
31
+ /** Called on user-initiated blur. Return the formatted display value.
32
+ * The result flows through `onChange`. Programmatic value changes (autofill,
33
+ * password managers, parent state updates) do NOT trigger this.
34
+ *
35
+ * In controlled mode (`value` prop supplied) the formatted value is surfaced
36
+ * only through `onChange` — the parent MUST fold it back into `value`, or it
37
+ * reverts on the next render. Uncontrolled usage handles this internally. */
38
+ formatOnBlur?: (value: string) => string;
39
+ /** Called on focus. Return the value to display while editing (typically the
40
+ * raw, unformatted form). Omit to leave the value as-is on focus.
41
+ * The result flows through `onChange` (same controlled-mode caveat as
42
+ * `formatOnBlur`: the parent must propagate the value when `value` is set). */
43
+ parseOnFocus?: (value: string) => string;
31
44
  }
32
45
  /**
33
46
  * **📦 An input that allows users to enter text and collect data.**
@@ -12,6 +12,10 @@ import { jsx, jsxs } from "react/jsx-runtime";
12
12
  import { isFunction } from "lodash-es";
13
13
  import { useReducedMotion } from "motion/react";
14
14
  //#region src/components/client/Input/Input.tsx
15
+ function setNativeInputValue(input, next) {
16
+ (Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value")?.set)?.call(input, next);
17
+ input.dispatchEvent(new Event("input", { bubbles: true }));
18
+ }
15
19
  const HelpTextContent = memo(function HelpTextContentOriginal({ helpText, helperTextIcon, spacingStart, spacingTop, size, isFilled, helperTextSlotProps, ...rest }) {
16
20
  if (!helpText) return null;
17
21
  return /* @__PURE__ */ jsx(Box, {
@@ -79,7 +83,7 @@ const EndIcon = memo(function EndIcon({ icon, className, iconProps }) {
79
83
  *
80
84
  * @related [Checkbox](https://uds.build/docs/components/checkbox), [Radio](https://uds.build/docs/components/radio).
81
85
  **/
82
- const Input = forwardRef(function Input({ id, label, type = "text", size = "md", startIcon, endIcon, helpText, helperTextIcon, hasError, width: containerWidth = "full", defaultValue, value: valueProp, required, readOnly, disabled, reduceMotion: forceReduceMotion, onChange, slotProps, style, className, ...otherProps }, forwardedRef) {
86
+ const Input = forwardRef(function Input({ id, label, type = "text", size = "md", startIcon, endIcon, helpText, helperTextIcon, hasError, width: containerWidth = "full", defaultValue, value: valueProp, required, readOnly, disabled, reduceMotion: forceReduceMotion, onChange, onBlur, onFocus, formatOnBlur, parseOnFocus, slotProps, style, className, ...otherProps }, forwardedRef) {
83
87
  const generatedId = useId();
84
88
  const uid = id ?? `uds-input-${generatedId}`;
85
89
  const helpTextId = `uds-input-${uid}-help-text`;
@@ -95,7 +99,36 @@ const Input = forwardRef(function Input({ id, label, type = "text", size = "md",
95
99
  const handleChange = useCallback((e) => {
96
100
  if (!isControlled) setValue(e.target.value);
97
101
  onChange?.(e);
98
- }, [isControlled, onChange]);
102
+ slotProps?.input?.onChange?.(e);
103
+ }, [
104
+ isControlled,
105
+ onChange,
106
+ slotProps
107
+ ]);
108
+ const handleBlur = useCallback((e) => {
109
+ if (formatOnBlur && ref.current) {
110
+ const next = formatOnBlur(e.target.value);
111
+ if (next !== e.target.value) setNativeInputValue(ref.current, next);
112
+ }
113
+ onBlur?.(e);
114
+ slotProps?.input?.onBlur?.(e);
115
+ }, [
116
+ formatOnBlur,
117
+ onBlur,
118
+ slotProps
119
+ ]);
120
+ const handleFocus = useCallback((e) => {
121
+ if (parseOnFocus && ref.current) {
122
+ const next = parseOnFocus(e.target.value);
123
+ if (next !== e.target.value) setNativeInputValue(ref.current, next);
124
+ }
125
+ onFocus?.(e);
126
+ slotProps?.input?.onFocus?.(e);
127
+ }, [
128
+ parseOnFocus,
129
+ onFocus,
130
+ slotProps
131
+ ]);
99
132
  const layoutVariant = useReducedMotion() ? "smooth" : "bouncy";
100
133
  const reduceMotion = forceReduceMotion ? "always" : "user";
101
134
  const isInteractive = !readOnly && !disabled;
@@ -107,7 +140,8 @@ const Input = forwardRef(function Input({ id, label, type = "text", size = "md",
107
140
  className: cx([className, disabled ? "opacity-50" : ""])
108
141
  }),
109
142
  inputWrapper: cx(getStyles({
110
- inputSizeInputWrapper: size,
143
+ inputSizeInputWrapperStatic: size,
144
+ inputSizeInputWrapperDynamic: size,
111
145
  inputVariantInputWrapper: "default",
112
146
  inputVariantValueInputWrapper: !value ? "empty" : "filled"
113
147
  }), "min-w-[200px]", inputWrapperClassName),
@@ -117,7 +151,7 @@ const Input = forwardRef(function Input({ id, label, type = "text", size = "md",
117
151
  inputVariantValueInput: !value ? "empty" : "filled",
118
152
  inputVariantInputPlaceholder: "default",
119
153
  inputVariantValueInputPlaceholder: !value ? "empty" : "filled",
120
- className: cx("grow", "uds-hit-target", "bg-clip-text", "focus:outline-none", isInteractive ? "cursor-text" : "cursor-not-allowed", inputClassName)
154
+ className: cx("grow", "uds-hit-target", "bg-transparent", "bg-clip-text", "focus-visible:outline-none", isInteractive ? "cursor-text" : "cursor-not-allowed", inputClassName)
121
155
  }),
122
156
  label: cx(getStyles({
123
157
  inputSizeLabel: size,
@@ -179,10 +213,12 @@ const Input = forwardRef(function Input({ id, label, type = "text", size = "md",
179
213
  disabled,
180
214
  "aria-describedby": helpTextId,
181
215
  "aria-invalid": hasError,
182
- onChange: handleChange,
183
216
  className: classNames.input,
184
217
  ...otherProps,
185
- ...inputProps
218
+ ...inputProps,
219
+ onChange: handleChange,
220
+ onBlur: handleBlur,
221
+ onFocus: handleFocus
186
222
  }),
187
223
  endIcon && /* @__PURE__ */ jsx(HStack, {
188
224
  alignItems: "center",