@yahoo/uds 3.157.1 → 3.158.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 (182) hide show
  1. package/dist/automated-config/dist/generated/autoVariants.cjs +26 -0
  2. package/dist/automated-config/dist/generated/autoVariants.d.cts +17 -0
  3. package/dist/automated-config/dist/generated/autoVariants.d.ts +17 -0
  4. package/dist/automated-config/dist/generated/autoVariants.js +26 -0
  5. package/dist/automated-config/dist/generated/generatedConfigs.cjs +3220 -545
  6. package/dist/automated-config/dist/generated/generatedConfigs.d.cts +335 -11
  7. package/dist/automated-config/dist/generated/generatedConfigs.d.ts +335 -11
  8. package/dist/automated-config/dist/generated/generatedConfigs.js +3218 -546
  9. package/dist/automated-config/dist/generated/universalTokensConfigAuto.cjs +275 -44
  10. package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.cts +4 -1
  11. package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.ts +4 -1
  12. package/dist/automated-config/dist/generated/universalTokensConfigAuto.js +275 -44
  13. package/dist/automated-config/dist/types/ComponentConfig.d.cts +3 -1
  14. package/dist/automated-config/dist/types/ComponentConfig.d.ts +3 -1
  15. package/dist/automated-config/dist/utils/buildConfigSchema.cjs +43 -35
  16. package/dist/automated-config/dist/utils/buildConfigSchema.d.cts +4 -1
  17. package/dist/automated-config/dist/utils/buildConfigSchema.d.ts +4 -1
  18. package/dist/automated-config/dist/utils/buildConfigSchema.js +44 -36
  19. package/dist/automated-config/dist/utils/componentStatePseudoStates.cjs +4 -0
  20. package/dist/automated-config/dist/utils/componentStatePseudoStates.js +4 -1
  21. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.cjs +5 -2
  22. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.js +6 -3
  23. package/dist/automated-config/dist/utils/index.cjs +21 -5
  24. package/dist/automated-config/dist/utils/index.d.cts +1 -0
  25. package/dist/automated-config/dist/utils/index.d.ts +1 -0
  26. package/dist/automated-config/dist/utils/index.js +22 -6
  27. package/dist/automated-config/dist/utils/pseudoStateSelectors.cjs +6 -3
  28. package/dist/automated-config/dist/utils/pseudoStateSelectors.d.cts +1 -1
  29. package/dist/automated-config/dist/utils/pseudoStateSelectors.d.ts +1 -1
  30. package/dist/automated-config/dist/utils/pseudoStateSelectors.js +6 -3
  31. package/dist/components/client/Input/Input.cjs +1 -1
  32. package/dist/components/client/Input/Input.js +1 -1
  33. package/dist/components/client/Menu/Menu.Item.cjs +1 -0
  34. package/dist/components/client/Menu/Menu.Item.js +1 -0
  35. package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +1 -1
  36. package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +1 -1
  37. package/dist/components/client/Select/Select.cjs +179 -0
  38. package/dist/components/client/Select/Select.d.cts +55 -0
  39. package/dist/components/client/Select/Select.d.ts +56 -0
  40. package/dist/components/client/Select/Select.js +176 -0
  41. package/dist/components/client/Select/SelectContent.cjs +75 -0
  42. package/dist/components/client/Select/SelectContent.d.cts +44 -0
  43. package/dist/components/client/Select/SelectContent.d.ts +45 -0
  44. package/dist/components/client/Select/SelectContent.js +73 -0
  45. package/dist/components/client/Select/SelectDivider.cjs +63 -0
  46. package/dist/components/client/Select/SelectDivider.d.cts +44 -0
  47. package/dist/components/client/Select/SelectDivider.d.ts +45 -0
  48. package/dist/components/client/Select/SelectDivider.js +61 -0
  49. package/dist/components/client/Select/SelectHelpText.cjs +51 -0
  50. package/dist/components/client/Select/SelectHelpText.d.cts +27 -0
  51. package/dist/components/client/Select/SelectHelpText.d.ts +28 -0
  52. package/dist/components/client/Select/SelectHelpText.js +48 -0
  53. package/dist/components/client/Select/SelectItem.cjs +172 -0
  54. package/dist/components/client/Select/SelectItem.d.cts +29 -0
  55. package/dist/components/client/Select/SelectItem.d.ts +30 -0
  56. package/dist/components/client/Select/SelectItem.js +170 -0
  57. package/dist/components/client/Select/SelectTrigger.cjs +138 -0
  58. package/dist/components/client/Select/SelectTrigger.d.cts +27 -0
  59. package/dist/components/client/Select/SelectTrigger.d.ts +28 -0
  60. package/dist/components/client/Select/SelectTrigger.js +136 -0
  61. package/dist/components/client/Select/SelectValue.cjs +28 -0
  62. package/dist/components/client/Select/SelectValue.d.cts +19 -0
  63. package/dist/components/client/Select/SelectValue.d.ts +20 -0
  64. package/dist/components/client/Select/SelectValue.js +26 -0
  65. package/dist/components/client/Select/index.cjs +11 -0
  66. package/dist/components/client/Select/index.d.cts +6 -0
  67. package/dist/components/client/Select/index.d.ts +7 -0
  68. package/dist/components/client/Select/index.js +7 -0
  69. package/dist/components/client/Select/selectContext.cjs +20 -0
  70. package/dist/components/client/Select/selectContext.d.cts +23 -0
  71. package/dist/components/client/Select/selectContext.d.ts +24 -0
  72. package/dist/components/client/Select/selectContext.js +16 -0
  73. package/dist/components/client/Select/selectFieldStyles.cjs +85 -0
  74. package/dist/components/client/Select/selectFieldStyles.d.cts +37 -0
  75. package/dist/components/client/Select/selectFieldStyles.d.ts +38 -0
  76. package/dist/components/client/Select/selectFieldStyles.js +75 -0
  77. package/dist/components/client/index.cjs +8 -0
  78. package/dist/components/client/index.d.cts +5 -1
  79. package/dist/components/client/index.d.ts +5 -1
  80. package/dist/components/client/index.js +5 -1
  81. package/dist/components/index.cjs +8 -0
  82. package/dist/components/index.d.cts +5 -1
  83. package/dist/components/index.d.ts +5 -1
  84. package/dist/components/index.js +5 -1
  85. package/dist/config/dist/index.cjs +380 -70
  86. package/dist/config/dist/index.js +380 -70
  87. package/dist/css/dist/css/utils.cjs +3 -0
  88. package/dist/css/dist/css/utils.js +3 -0
  89. package/dist/css/dist/packages/config/dist/index.cjs +380 -70
  90. package/dist/css/dist/packages/config/dist/index.js +380 -70
  91. package/dist/index.cjs +11 -0
  92. package/dist/index.d.cts +7 -3
  93. package/dist/index.d.ts +7 -3
  94. package/dist/index.js +6 -2
  95. package/dist/styles/styler.d.cts +17 -0
  96. package/dist/styles/styler.d.ts +17 -0
  97. package/dist/styles/variants.d.cts +54 -0
  98. package/dist/styles/variants.d.ts +54 -0
  99. package/dist/tailwind/utils/index.cjs +3 -0
  100. package/dist/tailwind/utils/index.d.cts +2 -1
  101. package/dist/tailwind/utils/index.d.ts +2 -1
  102. package/dist/tailwind/utils/index.js +2 -1
  103. package/dist/tailwind-internal/dist/base/addColorModeVars.cjs +1 -1
  104. package/dist/tailwind-internal/dist/base/addColorModeVars.js +1 -1
  105. package/dist/tailwind-internal/dist/base/addColorModeVarsV2.cjs +1 -1
  106. package/dist/tailwind-internal/dist/base/addColorModeVarsV2.js +1 -1
  107. package/dist/tailwind-internal/dist/components/getFocusRingStyles.cjs +74 -6
  108. package/dist/tailwind-internal/dist/components/getFocusRingStyles.d.cts +14 -0
  109. package/dist/tailwind-internal/dist/components/getFocusRingStyles.d.ts +14 -0
  110. package/dist/tailwind-internal/dist/components/getFocusRingStyles.js +74 -7
  111. package/dist/tailwind-internal/dist/components/getResponsiveTextStyles.cjs +1 -1
  112. package/dist/tailwind-internal/dist/components/getResponsiveTextStyles.js +1 -1
  113. package/dist/tailwind-internal/dist/index.d.cts +1 -0
  114. package/dist/tailwind-internal/dist/index.d.ts +1 -0
  115. package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.cjs +3220 -545
  116. package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.js +3218 -546
  117. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/componentStatePseudoStates.cjs +4 -0
  118. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/componentStatePseudoStates.js +4 -1
  119. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.cjs +21 -5
  120. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.js +22 -6
  121. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/pseudoStateSelectors.cjs +6 -3
  122. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/pseudoStateSelectors.js +6 -3
  123. package/dist/tailwind-internal/dist/packages/config/dist/index.cjs +380 -70
  124. package/dist/tailwind-internal/dist/packages/config/dist/index.js +380 -70
  125. package/dist/tailwind-internal/dist/packages/css-tokens/dist/index.cjs +10 -10
  126. package/dist/tailwind-internal/dist/packages/css-tokens/dist/index.js +1 -1
  127. package/dist/tailwind-internal/dist/plugins/a11y.cjs +6 -2
  128. package/dist/tailwind-internal/dist/plugins/a11y.js +6 -2
  129. package/dist/tailwind-internal/dist/plugins/blurBgFallback.cjs +1 -1
  130. package/dist/tailwind-internal/dist/plugins/blurBgFallback.js +1 -1
  131. package/dist/tailwind-internal/dist/plugins/borderRadius.cjs +1 -1
  132. package/dist/tailwind-internal/dist/plugins/borderRadius.js +1 -1
  133. package/dist/tailwind-internal/dist/plugins/borderWidth.cjs +1 -1
  134. package/dist/tailwind-internal/dist/plugins/borderWidth.js +1 -1
  135. package/dist/tailwind-internal/dist/plugins/colors.cjs +2 -2
  136. package/dist/tailwind-internal/dist/plugins/colors.js +2 -2
  137. package/dist/tailwind-internal/dist/plugins/components.cjs +4 -1
  138. package/dist/tailwind-internal/dist/plugins/components.js +5 -2
  139. package/dist/tailwind-internal/dist/plugins/elevation.cjs +1 -1
  140. package/dist/tailwind-internal/dist/plugins/elevation.js +1 -1
  141. package/dist/tailwind-internal/dist/plugins/shadows.cjs +1 -1
  142. package/dist/tailwind-internal/dist/plugins/shadows.js +1 -1
  143. package/dist/tailwind-internal/dist/plugins/typography.cjs +2 -2
  144. package/dist/tailwind-internal/dist/plugins/typography.js +2 -2
  145. package/dist/tailwind-internal/dist/utils/getElevationStyles.cjs +1 -1
  146. package/dist/tailwind-internal/dist/utils/getElevationStyles.js +1 -1
  147. package/dist/tailwind-internal/dist/utils/getFontStyles.cjs +1 -1
  148. package/dist/tailwind-internal/dist/utils/getFontStyles.js +1 -1
  149. package/dist/tailwind-internal/dist/utils/getMotionStyles.cjs +1 -1
  150. package/dist/tailwind-internal/dist/utils/getMotionStyles.js +1 -1
  151. package/dist/tailwind-internal/dist/utils/getShadowPresetValues.cjs +1 -1
  152. package/dist/tailwind-internal/dist/utils/getShadowPresetValues.js +1 -1
  153. package/dist/tailwind-internal/dist/utils/getShadowStyles.cjs +1 -1
  154. package/dist/tailwind-internal/dist/utils/getShadowStyles.js +1 -1
  155. package/dist/tailwind-internal/dist/utils/parseTokens.cjs +2 -2
  156. package/dist/tailwind-internal/dist/utils/parseTokens.js +2 -2
  157. package/dist/tokens/automation/configs/index.cjs +3 -0
  158. package/dist/tokens/automation/configs/index.d.cts +2 -2
  159. package/dist/tokens/automation/configs/index.d.ts +2 -2
  160. package/dist/tokens/automation/configs/index.js +2 -2
  161. package/dist/tokens/automation/index.cjs +3 -0
  162. package/dist/tokens/automation/index.d.cts +2 -2
  163. package/dist/tokens/automation/index.d.ts +2 -2
  164. package/dist/tokens/automation/index.js +2 -2
  165. package/dist/tokens/index.cjs +3 -0
  166. package/dist/tokens/index.d.cts +3 -3
  167. package/dist/tokens/index.d.ts +3 -3
  168. package/dist/tokens/index.js +2 -2
  169. package/dist/tokens/types.d.cts +2 -2
  170. package/dist/tokens/types.d.ts +2 -2
  171. package/dist/types/dist/index.d.cts +36 -1
  172. package/dist/types/dist/index.d.ts +36 -1
  173. package/dist/uds/generated/componentData.cjs +407 -0
  174. package/dist/uds/generated/componentData.js +407 -0
  175. package/dist/uds/generated/migrationSchemaVersion.cjs +1 -1
  176. package/dist/uds/generated/migrationSchemaVersion.js +1 -1
  177. package/dist/uds/generated/tailwindPurge.cjs +1501 -315
  178. package/dist/uds/generated/tailwindPurge.js +1501 -315
  179. package/generated/componentData.json +496 -0
  180. package/generated/migrationSchemaVersion.ts +1 -1
  181. package/generated/tailwindPurge.ts +4 -4
  182. package/package.json +1 -1
@@ -0,0 +1,61 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ "use client";
3
+ "use client";
4
+ import { getStyles } from "../../../styles/styler.js";
5
+ import { Divider } from "../../Divider/Divider.js";
6
+ import { forwardRef } from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+ //#region src/components/client/Select/SelectDivider.tsx
9
+ /**
10
+ * **▾ Select divider**
11
+ *
12
+ * @componentType Client component
13
+ *
14
+ * @description
15
+ * A divider for separating groups of select options inside `SelectContent`.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * 'use client';
20
+ *
21
+ * import { Select, SelectContent, SelectDivider, SelectItem } from '@yahoo/uds';
22
+ *
23
+ * <Select label="Country" placeholder="Select a country" defaultValue="us">
24
+ * <SelectContent>
25
+ * <SelectItem value="us">United States</SelectItem>
26
+ * <SelectItem value="ca">Canada</SelectItem>
27
+ * <SelectDivider>Other regions</SelectDivider>
28
+ * <SelectItem value="mx">Mexico</SelectItem>
29
+ * </SelectContent>
30
+ * </Select>
31
+ * ```
32
+ *
33
+ * @usage
34
+ * Use `SelectDivider` to separate groups of select options.
35
+ *
36
+ * @related [Select](https://uds.build/docs/components/select), [SelectItem](https://uds.build/docs/components/select-item), [Divider](https://uds.build/docs/components/divider)
37
+ */
38
+ const SelectDivider = forwardRef(function SelectDivider({ "aria-hidden": ariaHidden = true, contentPosition = "start", gap = "4", children, spacingVertical = children ? "2" : "0", spacingHorizontal = children ? "4" : "0", className, ...props }, ref) {
39
+ return /* @__PURE__ */ jsx(Divider, {
40
+ ref,
41
+ "aria-hidden": ariaHidden,
42
+ variant: "inherit",
43
+ contentPosition,
44
+ gap,
45
+ spacingVertical,
46
+ spacingHorizontal,
47
+ slotProps: {
48
+ root: { className: getStyles({
49
+ selectitemDividerVariantRoot: "default",
50
+ className
51
+ }) },
52
+ label: { className: getStyles({ selectitemDividerVariantText: "default" }) },
53
+ line: { className: getStyles({ selectitemDividerVariantLine: "default" }) }
54
+ },
55
+ ...props,
56
+ children
57
+ });
58
+ });
59
+ SelectDivider.displayName = "SelectDivider";
60
+ //#endregion
61
+ export { SelectDivider };
@@ -0,0 +1,51 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ "use client";
3
+ "use client";
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
5
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
6
+ const require_styles_styler = require("../../../styles/styler.cjs");
7
+ const require_components_IconSlot = require("../../IconSlot.cjs");
8
+ const require_components_HStack = require("../../HStack.cjs");
9
+ const require_components_client_AnimateHeightChange = require("../AnimateHeightChange.cjs");
10
+ const require_components_client_Select_selectContext = require("./selectContext.cjs");
11
+ const require_components_client_Select_selectFieldStyles = require("./selectFieldStyles.cjs");
12
+ let react_jsx_runtime = require("react/jsx-runtime");
13
+ let lodash_isFunction_js = require("lodash/isFunction.js");
14
+ lodash_isFunction_js = require_runtime.__toESM(lodash_isFunction_js);
15
+ let _ariakit_react = require("@ariakit/react");
16
+ //#region src/components/client/Select/SelectHelpText.tsx
17
+ function SelectHelpText({ helpText, helperTextIcon, slotProps, className }) {
18
+ const { size, helpTextId, reduceMotion } = require_components_client_Select_selectContext.useSelectFieldContext();
19
+ const value = (0, _ariakit_react.useStoreState)((0, _ariakit_react.useSelectContext)(), "value");
20
+ const hasValue = value != null && value !== "";
21
+ const content = (0, lodash_isFunction_js.default)(helpText) ? helpText() : helpText;
22
+ if (!content && !helperTextIcon) return null;
23
+ const { className: helperTextClassName, ...helperTextSlotProps } = slotProps?.helperText ?? {};
24
+ const { className: helperTextIconClassName, ...helperTextIconSlotProps } = slotProps?.helperTextIcon ?? {};
25
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_client_AnimateHeightChange.AnimateHeightChange, {
26
+ reduceMotion: reduceMotion ? "always" : "user",
27
+ layoutVariant: "bouncy",
28
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_components_HStack.HStack, {
29
+ id: helpTextId,
30
+ gap: "1",
31
+ alignItems: "center",
32
+ spacingTop: "2",
33
+ className,
34
+ children: [helperTextIcon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_IconSlot.IconSlot, {
35
+ icon: helperTextIcon,
36
+ className: require_styles_styler.cx(require_components_client_Select_selectFieldStyles.getSelectHelperIconClassName(size, hasValue), helperTextIconClassName),
37
+ iconProps: {
38
+ variant: "outline",
39
+ ...helperTextIconSlotProps
40
+ }
41
+ }), content && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
42
+ className: require_styles_styler.cx(require_components_client_Select_selectFieldStyles.getSelectHelpTextClassName(size, hasValue), helperTextClassName),
43
+ ...helperTextSlotProps,
44
+ children: content
45
+ })]
46
+ })
47
+ });
48
+ }
49
+ SelectHelpText.displayName = "SelectHelpText";
50
+ //#endregion
51
+ exports.SelectHelpText = SelectHelpText;
@@ -0,0 +1,27 @@
1
+
2
+ import { UniversalSelectProps } from "../../../types/dist/index.cjs";
3
+ import { IconPropsWithSVGProps } from "../../../tokens/types.cjs";
4
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
+
6
+ //#region src/components/client/Select/SelectHelpText.d.ts
7
+ type DataAttributes = {
8
+ [name: `data-${string}`]: string;
9
+ };
10
+ interface SelectHelpTextProps extends Pick<UniversalSelectProps, 'helpText' | 'helperTextIcon'> {
11
+ slotProps?: {
12
+ helperText?: Partial<React.HTMLAttributes<HTMLSpanElement> & DataAttributes>;
13
+ helperTextIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
14
+ };
15
+ className?: string;
16
+ }
17
+ declare function SelectHelpText({
18
+ helpText,
19
+ helperTextIcon,
20
+ slotProps,
21
+ className
22
+ }: SelectHelpTextProps): _$react_jsx_runtime0.JSX.Element | null;
23
+ declare namespace SelectHelpText {
24
+ var displayName: string;
25
+ }
26
+ //#endregion
27
+ export { SelectHelpText, type SelectHelpTextProps };
@@ -0,0 +1,28 @@
1
+
2
+ "use client";
3
+ import { UniversalSelectProps } from "../../../types/dist/index.js";
4
+ import { IconPropsWithSVGProps } from "../../../tokens/types.js";
5
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
6
+
7
+ //#region src/components/client/Select/SelectHelpText.d.ts
8
+ type DataAttributes = {
9
+ [name: `data-${string}`]: string;
10
+ };
11
+ interface SelectHelpTextProps extends Pick<UniversalSelectProps, 'helpText' | 'helperTextIcon'> {
12
+ slotProps?: {
13
+ helperText?: Partial<React.HTMLAttributes<HTMLSpanElement> & DataAttributes>;
14
+ helperTextIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
15
+ };
16
+ className?: string;
17
+ }
18
+ declare function SelectHelpText({
19
+ helpText,
20
+ helperTextIcon,
21
+ slotProps,
22
+ className
23
+ }: SelectHelpTextProps): _$react_jsx_runtime0.JSX.Element | null;
24
+ declare namespace SelectHelpText {
25
+ var displayName: string;
26
+ }
27
+ //#endregion
28
+ export { SelectHelpText, type SelectHelpTextProps };
@@ -0,0 +1,48 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ "use client";
3
+ "use client";
4
+ import { cx } from "../../../styles/styler.js";
5
+ import { IconSlot } from "../../IconSlot.js";
6
+ import { HStack } from "../../HStack.js";
7
+ import { AnimateHeightChange } from "../AnimateHeightChange.js";
8
+ import { useSelectFieldContext } from "./selectContext.js";
9
+ import { getSelectHelpTextClassName, getSelectHelperIconClassName } from "./selectFieldStyles.js";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ import { isFunction } from "lodash-es";
12
+ import { useSelectContext, useStoreState } from "@ariakit/react";
13
+ //#region src/components/client/Select/SelectHelpText.tsx
14
+ function SelectHelpText({ helpText, helperTextIcon, slotProps, className }) {
15
+ const { size, helpTextId, reduceMotion } = useSelectFieldContext();
16
+ const value = useStoreState(useSelectContext(), "value");
17
+ const hasValue = value != null && value !== "";
18
+ const content = isFunction(helpText) ? helpText() : helpText;
19
+ if (!content && !helperTextIcon) return null;
20
+ const { className: helperTextClassName, ...helperTextSlotProps } = slotProps?.helperText ?? {};
21
+ const { className: helperTextIconClassName, ...helperTextIconSlotProps } = slotProps?.helperTextIcon ?? {};
22
+ return /* @__PURE__ */ jsx(AnimateHeightChange, {
23
+ reduceMotion: reduceMotion ? "always" : "user",
24
+ layoutVariant: "bouncy",
25
+ children: /* @__PURE__ */ jsxs(HStack, {
26
+ id: helpTextId,
27
+ gap: "1",
28
+ alignItems: "center",
29
+ spacingTop: "2",
30
+ className,
31
+ children: [helperTextIcon && /* @__PURE__ */ jsx(IconSlot, {
32
+ icon: helperTextIcon,
33
+ className: cx(getSelectHelperIconClassName(size, hasValue), helperTextIconClassName),
34
+ iconProps: {
35
+ variant: "outline",
36
+ ...helperTextIconSlotProps
37
+ }
38
+ }), content && /* @__PURE__ */ jsx("span", {
39
+ className: cx(getSelectHelpTextClassName(size, hasValue), helperTextClassName),
40
+ ...helperTextSlotProps,
41
+ children: content
42
+ })]
43
+ })
44
+ });
45
+ }
46
+ SelectHelpText.displayName = "SelectHelpText";
47
+ //#endregion
48
+ export { SelectHelpText };
@@ -0,0 +1,172 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ "use client";
3
+ "use client";
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
5
+ require("../../../_virtual/_rolldown/runtime.cjs");
6
+ const require_styles_styler = require("../../../styles/styler.cjs");
7
+ const require_components_IconSlot = require("../../IconSlot.cjs");
8
+ const require_components_HStack = require("../../HStack.cjs");
9
+ let _yahoo_uds_icons = require("@yahoo/uds-icons");
10
+ let react = require("react");
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ let _ariakit_react = require("@ariakit/react");
13
+ let motion_react = require("motion/react");
14
+ //#region src/components/client/Select/SelectItem.tsx
15
+ const ITEM_CLASS_NAME = "uds-select-item";
16
+ const iconAnimationVariants = {
17
+ visible: {
18
+ scale: 1,
19
+ opacity: 1
20
+ },
21
+ hidden: {
22
+ scale: .7,
23
+ opacity: 0
24
+ }
25
+ };
26
+ /** Mirrors Menu.ItemBase row chrome so option rows match menu item height. */
27
+ const buildSelectItemClasses = ({ disabled, className }) => {
28
+ return require_styles_styler.cx(ITEM_CLASS_NAME, "flex", "cursor-pointer", "outline-none", "data-[active-item]:z-10", "uds-ring", "!-outline-offset-2", "duration-20", "transition-[font-variation-settings]", "ease-in-out", "z-0", disabled && "opacity-50 cursor-not-allowed", className);
29
+ };
30
+ /**
31
+ * **▾ Select item**
32
+ *
33
+ * @componentType Client component
34
+ */
35
+ const SelectItem = (0, react.forwardRef)(function SelectItem({ children, className, slotProps, disabled, value, startIcon, ...props }, ref) {
36
+ const isSelected = (0, _ariakit_react.useStoreState)((0, _ariakit_react.useSelectContext)(), "value") === value;
37
+ const { className: rootClassName, ...rootSlotProps } = slotProps?.root ?? {};
38
+ const { className: textClassName, ...textSlotProps } = slotProps?.text ?? {};
39
+ const { className: startIconClassName, ...startIconSlotProps } = slotProps?.startIcon ?? {};
40
+ const { className: endIconClassName, ...endIconSlotProps } = slotProps?.endIcon ?? {};
41
+ const selectItemClassName = buildSelectItemClasses({
42
+ disabled,
43
+ className
44
+ });
45
+ const selectSlotProps = (0, react.useMemo)(() => ({
46
+ root: {
47
+ className: require_styles_styler.cx(require_styles_styler.getStyles({
48
+ selectitemItemVariantRoot: "default",
49
+ selectitemItemVariantActiveRoot: isSelected ? "on" : "off"
50
+ }), rootClassName),
51
+ ...rootSlotProps
52
+ },
53
+ text: {
54
+ className: require_styles_styler.cx(require_styles_styler.getStyles({
55
+ selectitemSizeText: "default",
56
+ selectitemItemVariantText: "default",
57
+ selectitemItemVariantActiveText: isSelected ? "on" : "off"
58
+ }), textClassName),
59
+ ...textSlotProps
60
+ },
61
+ startIcon: {
62
+ className: require_styles_styler.cx(require_styles_styler.getStyles({
63
+ selectitemItemVariantIcon: "default",
64
+ selectitemItemVariantActiveIcon: isSelected ? "on" : "off"
65
+ }), startIconClassName),
66
+ ...startIconSlotProps
67
+ }
68
+ }), [
69
+ isSelected,
70
+ rootClassName,
71
+ rootSlotProps,
72
+ startIconClassName,
73
+ startIconSlotProps,
74
+ textClassName,
75
+ textSlotProps
76
+ ]);
77
+ const contentStyles = require_styles_styler.getStyles({
78
+ className: require_styles_styler.cx(`${ITEM_CLASS_NAME}-content`, "truncate", selectSlotProps.text.className),
79
+ textAlign: "start"
80
+ });
81
+ const classNames = (0, react.useMemo)(() => ({
82
+ root: require_styles_styler.getStyles({
83
+ selectitemSizeRoot: "default",
84
+ flexDirection: "row",
85
+ spacing: "0",
86
+ spacingHorizontal: "4",
87
+ spacingVertical: "3.5",
88
+ columnGap: "2",
89
+ alignItems: "center",
90
+ justifyContent: "space-between",
91
+ width: "full",
92
+ className: require_styles_styler.cx(selectItemClassName, selectSlotProps.root.className)
93
+ }),
94
+ startIcon: require_styles_styler.getStyles({
95
+ selectitemSizeStartIcon: "default",
96
+ className: selectSlotProps.startIcon.className
97
+ }),
98
+ endIcon: require_styles_styler.getStyles({
99
+ selectitemSizeEndIcon: "default",
100
+ className: require_styles_styler.cx(require_styles_styler.getStyles({
101
+ selectitemItemVariantIcon: "default",
102
+ selectitemItemVariantActiveIcon: "on"
103
+ }), endIconClassName)
104
+ })
105
+ }), [
106
+ endIconClassName,
107
+ selectItemClassName,
108
+ selectSlotProps.root.className,
109
+ selectSlotProps.startIcon.className
110
+ ]);
111
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ariakit_react.SelectItem, {
112
+ ref,
113
+ autoFocus: false,
114
+ disabled,
115
+ value,
116
+ className: classNames.root,
117
+ ...rootSlotProps,
118
+ ...props,
119
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_components_HStack.HStack, {
120
+ gap: "2",
121
+ alignItems: "center",
122
+ width: "full",
123
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.AnimatePresence, {
124
+ initial: false,
125
+ children: startIcon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.m.span, {
126
+ variants: iconAnimationVariants,
127
+ initial: "hidden",
128
+ animate: "visible",
129
+ exit: "hidden",
130
+ className: "uds-start-icon inline-flex shrink-0 items-center",
131
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_IconSlot.IconSlot, {
132
+ icon: startIcon,
133
+ className: classNames.startIcon,
134
+ iconProps: {
135
+ size: "sm",
136
+ variant: isSelected ? "fill" : "outline",
137
+ color: "current",
138
+ ...startIconSlotProps
139
+ }
140
+ })
141
+ })
142
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
143
+ className: contentStyles,
144
+ ...textSlotProps,
145
+ children
146
+ })]
147
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.AnimatePresence, {
148
+ initial: false,
149
+ mode: "popLayout",
150
+ children: isSelected && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.m.span, {
151
+ variants: iconAnimationVariants,
152
+ initial: "hidden",
153
+ animate: "visible",
154
+ exit: "hidden",
155
+ className: "uds-end-icon inline-flex shrink-0 items-center",
156
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_IconSlot.IconSlot, {
157
+ icon: _yahoo_uds_icons.Check,
158
+ className: classNames.endIcon,
159
+ iconProps: {
160
+ size: "sm",
161
+ variant: "fill",
162
+ color: "current",
163
+ ...endIconSlotProps
164
+ }
165
+ })
166
+ })
167
+ })]
168
+ });
169
+ });
170
+ SelectItem.displayName = "SelectItem";
171
+ //#endregion
172
+ exports.SelectItem = SelectItem;
@@ -0,0 +1,29 @@
1
+
2
+ import { UniversalIconSlot } from "../../../types/dist/index.cjs";
3
+ import { IconPropsWithSVGProps } from "../../../tokens/types.cjs";
4
+ import * as _$react from "react";
5
+ import { SelectItemProps as SelectItemProps$1 } from "@ariakit/react";
6
+
7
+ //#region src/components/client/Select/SelectItem.d.ts
8
+ type DataAttributes = {
9
+ [name: `data-${string}`]: string;
10
+ };
11
+ interface SelectItemProps extends Omit<SelectItemProps$1, 'className'> {
12
+ /** Icon displayed at the start of the select item. */
13
+ startIcon?: UniversalIconSlot;
14
+ slotProps?: {
15
+ root?: Partial<React.HTMLAttributes<HTMLDivElement> & DataAttributes>;
16
+ text?: Partial<Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'> & DataAttributes>;
17
+ startIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
18
+ endIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
19
+ };
20
+ className?: string;
21
+ }
22
+ /**
23
+ * **▾ Select item**
24
+ *
25
+ * @componentType Client component
26
+ */
27
+ declare const SelectItem: _$react.ForwardRefExoticComponent<Omit<SelectItemProps, "ref"> & _$react.RefAttributes<HTMLDivElement>>;
28
+ //#endregion
29
+ export { SelectItem, type SelectItemProps };
@@ -0,0 +1,30 @@
1
+
2
+ "use client";
3
+ import { UniversalIconSlot } from "../../../types/dist/index.js";
4
+ import { IconPropsWithSVGProps } from "../../../tokens/types.js";
5
+ import * as _$react from "react";
6
+ import { SelectItemProps as SelectItemProps$1 } from "@ariakit/react";
7
+
8
+ //#region src/components/client/Select/SelectItem.d.ts
9
+ type DataAttributes = {
10
+ [name: `data-${string}`]: string;
11
+ };
12
+ interface SelectItemProps extends Omit<SelectItemProps$1, 'className'> {
13
+ /** Icon displayed at the start of the select item. */
14
+ startIcon?: UniversalIconSlot;
15
+ slotProps?: {
16
+ root?: Partial<React.HTMLAttributes<HTMLDivElement> & DataAttributes>;
17
+ text?: Partial<Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'> & DataAttributes>;
18
+ startIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
19
+ endIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
20
+ };
21
+ className?: string;
22
+ }
23
+ /**
24
+ * **▾ Select item**
25
+ *
26
+ * @componentType Client component
27
+ */
28
+ declare const SelectItem: _$react.ForwardRefExoticComponent<Omit<SelectItemProps, "ref"> & _$react.RefAttributes<HTMLDivElement>>;
29
+ //#endregion
30
+ export { SelectItem, type SelectItemProps };
@@ -0,0 +1,170 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ "use client";
3
+ "use client";
4
+ import { cx, getStyles } from "../../../styles/styler.js";
5
+ import { IconSlot } from "../../IconSlot.js";
6
+ import { HStack } from "../../HStack.js";
7
+ import { Check } from "@yahoo/uds-icons";
8
+ import { forwardRef, useMemo } from "react";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ import { SelectItem as SelectItem$1, useSelectContext, useStoreState } from "@ariakit/react";
11
+ import { AnimatePresence, m } from "motion/react";
12
+ //#region src/components/client/Select/SelectItem.tsx
13
+ const ITEM_CLASS_NAME = "uds-select-item";
14
+ const iconAnimationVariants = {
15
+ visible: {
16
+ scale: 1,
17
+ opacity: 1
18
+ },
19
+ hidden: {
20
+ scale: .7,
21
+ opacity: 0
22
+ }
23
+ };
24
+ /** Mirrors Menu.ItemBase row chrome so option rows match menu item height. */
25
+ const buildSelectItemClasses = ({ disabled, className }) => {
26
+ return cx(ITEM_CLASS_NAME, "flex", "cursor-pointer", "outline-none", "data-[active-item]:z-10", "uds-ring", "!-outline-offset-2", "duration-20", "transition-[font-variation-settings]", "ease-in-out", "z-0", disabled && "opacity-50 cursor-not-allowed", className);
27
+ };
28
+ /**
29
+ * **▾ Select item**
30
+ *
31
+ * @componentType Client component
32
+ */
33
+ const SelectItem = forwardRef(function SelectItem({ children, className, slotProps, disabled, value, startIcon, ...props }, ref) {
34
+ const isSelected = useStoreState(useSelectContext(), "value") === value;
35
+ const { className: rootClassName, ...rootSlotProps } = slotProps?.root ?? {};
36
+ const { className: textClassName, ...textSlotProps } = slotProps?.text ?? {};
37
+ const { className: startIconClassName, ...startIconSlotProps } = slotProps?.startIcon ?? {};
38
+ const { className: endIconClassName, ...endIconSlotProps } = slotProps?.endIcon ?? {};
39
+ const selectItemClassName = buildSelectItemClasses({
40
+ disabled,
41
+ className
42
+ });
43
+ const selectSlotProps = useMemo(() => ({
44
+ root: {
45
+ className: cx(getStyles({
46
+ selectitemItemVariantRoot: "default",
47
+ selectitemItemVariantActiveRoot: isSelected ? "on" : "off"
48
+ }), rootClassName),
49
+ ...rootSlotProps
50
+ },
51
+ text: {
52
+ className: cx(getStyles({
53
+ selectitemSizeText: "default",
54
+ selectitemItemVariantText: "default",
55
+ selectitemItemVariantActiveText: isSelected ? "on" : "off"
56
+ }), textClassName),
57
+ ...textSlotProps
58
+ },
59
+ startIcon: {
60
+ className: cx(getStyles({
61
+ selectitemItemVariantIcon: "default",
62
+ selectitemItemVariantActiveIcon: isSelected ? "on" : "off"
63
+ }), startIconClassName),
64
+ ...startIconSlotProps
65
+ }
66
+ }), [
67
+ isSelected,
68
+ rootClassName,
69
+ rootSlotProps,
70
+ startIconClassName,
71
+ startIconSlotProps,
72
+ textClassName,
73
+ textSlotProps
74
+ ]);
75
+ const contentStyles = getStyles({
76
+ className: cx(`${ITEM_CLASS_NAME}-content`, "truncate", selectSlotProps.text.className),
77
+ textAlign: "start"
78
+ });
79
+ const classNames = useMemo(() => ({
80
+ root: getStyles({
81
+ selectitemSizeRoot: "default",
82
+ flexDirection: "row",
83
+ spacing: "0",
84
+ spacingHorizontal: "4",
85
+ spacingVertical: "3.5",
86
+ columnGap: "2",
87
+ alignItems: "center",
88
+ justifyContent: "space-between",
89
+ width: "full",
90
+ className: cx(selectItemClassName, selectSlotProps.root.className)
91
+ }),
92
+ startIcon: getStyles({
93
+ selectitemSizeStartIcon: "default",
94
+ className: selectSlotProps.startIcon.className
95
+ }),
96
+ endIcon: getStyles({
97
+ selectitemSizeEndIcon: "default",
98
+ className: cx(getStyles({
99
+ selectitemItemVariantIcon: "default",
100
+ selectitemItemVariantActiveIcon: "on"
101
+ }), endIconClassName)
102
+ })
103
+ }), [
104
+ endIconClassName,
105
+ selectItemClassName,
106
+ selectSlotProps.root.className,
107
+ selectSlotProps.startIcon.className
108
+ ]);
109
+ return /* @__PURE__ */ jsxs(SelectItem$1, {
110
+ ref,
111
+ autoFocus: false,
112
+ disabled,
113
+ value,
114
+ className: classNames.root,
115
+ ...rootSlotProps,
116
+ ...props,
117
+ children: [/* @__PURE__ */ jsxs(HStack, {
118
+ gap: "2",
119
+ alignItems: "center",
120
+ width: "full",
121
+ children: [/* @__PURE__ */ jsx(AnimatePresence, {
122
+ initial: false,
123
+ children: startIcon && /* @__PURE__ */ jsx(m.span, {
124
+ variants: iconAnimationVariants,
125
+ initial: "hidden",
126
+ animate: "visible",
127
+ exit: "hidden",
128
+ className: "uds-start-icon inline-flex shrink-0 items-center",
129
+ children: /* @__PURE__ */ jsx(IconSlot, {
130
+ icon: startIcon,
131
+ className: classNames.startIcon,
132
+ iconProps: {
133
+ size: "sm",
134
+ variant: isSelected ? "fill" : "outline",
135
+ color: "current",
136
+ ...startIconSlotProps
137
+ }
138
+ })
139
+ })
140
+ }), /* @__PURE__ */ jsx("span", {
141
+ className: contentStyles,
142
+ ...textSlotProps,
143
+ children
144
+ })]
145
+ }), /* @__PURE__ */ jsx(AnimatePresence, {
146
+ initial: false,
147
+ mode: "popLayout",
148
+ children: isSelected && /* @__PURE__ */ jsx(m.span, {
149
+ variants: iconAnimationVariants,
150
+ initial: "hidden",
151
+ animate: "visible",
152
+ exit: "hidden",
153
+ className: "uds-end-icon inline-flex shrink-0 items-center",
154
+ children: /* @__PURE__ */ jsx(IconSlot, {
155
+ icon: Check,
156
+ className: classNames.endIcon,
157
+ iconProps: {
158
+ size: "sm",
159
+ variant: "fill",
160
+ color: "current",
161
+ ...endIconSlotProps
162
+ }
163
+ })
164
+ })
165
+ })]
166
+ });
167
+ });
168
+ SelectItem.displayName = "SelectItem";
169
+ //#endregion
170
+ export { SelectItem };