@yahoo/uds 3.157.0 → 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 (220) 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 +3287 -596
  6. package/dist/automated-config/dist/generated/generatedConfigs.d.cts +350 -12
  7. package/dist/automated-config/dist/generated/generatedConfigs.d.ts +350 -12
  8. package/dist/automated-config/dist/generated/generatedConfigs.js +3285 -597
  9. package/dist/automated-config/dist/generated/universalTokensConfigAuto.cjs +276 -45
  10. package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.cts +8 -2
  11. package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.ts +8 -2
  12. package/dist/automated-config/dist/generated/universalTokensConfigAuto.js +276 -45
  13. package/dist/automated-config/dist/properties.cjs +8 -1
  14. package/dist/automated-config/dist/properties.d.cts +8 -0
  15. package/dist/automated-config/dist/properties.d.ts +8 -0
  16. package/dist/automated-config/dist/properties.js +8 -1
  17. package/dist/automated-config/dist/types/ComponentConfig.d.cts +3 -1
  18. package/dist/automated-config/dist/types/ComponentConfig.d.ts +3 -1
  19. package/dist/automated-config/dist/utils/buildConfigSchema.cjs +48 -33
  20. package/dist/automated-config/dist/utils/buildConfigSchema.d.cts +14 -4
  21. package/dist/automated-config/dist/utils/buildConfigSchema.d.ts +14 -4
  22. package/dist/automated-config/dist/utils/buildConfigSchema.js +49 -34
  23. package/dist/automated-config/dist/utils/componentStatePseudoStates.cjs +4 -0
  24. package/dist/automated-config/dist/utils/componentStatePseudoStates.js +4 -1
  25. package/dist/automated-config/dist/utils/getButtonControlHeight.cjs +129 -0
  26. package/dist/automated-config/dist/utils/getButtonControlHeight.d.cts +133 -0
  27. package/dist/automated-config/dist/utils/getButtonControlHeight.d.ts +133 -0
  28. package/dist/automated-config/dist/utils/getButtonControlHeight.js +122 -0
  29. package/dist/automated-config/dist/utils/getButtonControlHeightPx.cjs +114 -0
  30. package/dist/automated-config/dist/utils/getButtonControlHeightPx.d.cts +78 -0
  31. package/dist/automated-config/dist/utils/getButtonControlHeightPx.d.ts +78 -0
  32. package/dist/automated-config/dist/utils/getButtonControlHeightPx.js +108 -0
  33. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.cts +2 -2
  34. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.ts +2 -2
  35. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.cjs +5 -2
  36. package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.js +6 -3
  37. package/dist/automated-config/dist/utils/iconButtonMatchButtonHeight.cjs +110 -0
  38. package/dist/automated-config/dist/utils/iconButtonMatchButtonHeight.d.cts +19 -0
  39. package/dist/automated-config/dist/utils/iconButtonMatchButtonHeight.d.ts +19 -0
  40. package/dist/automated-config/dist/utils/iconButtonMatchButtonHeight.js +108 -0
  41. package/dist/automated-config/dist/utils/index.cjs +106 -33
  42. package/dist/automated-config/dist/utils/index.d.cts +16 -4
  43. package/dist/automated-config/dist/utils/index.d.ts +16 -4
  44. package/dist/automated-config/dist/utils/index.js +107 -34
  45. package/dist/automated-config/dist/utils/isConfiguratorPropertyVisible.cjs +15 -0
  46. package/dist/automated-config/dist/utils/isConfiguratorPropertyVisible.d.cts +20 -0
  47. package/dist/automated-config/dist/utils/isConfiguratorPropertyVisible.d.ts +20 -0
  48. package/dist/automated-config/dist/utils/isConfiguratorPropertyVisible.js +15 -0
  49. package/dist/automated-config/dist/utils/pseudoStateSelectors.cjs +6 -3
  50. package/dist/automated-config/dist/utils/pseudoStateSelectors.d.cts +1 -1
  51. package/dist/automated-config/dist/utils/pseudoStateSelectors.d.ts +1 -1
  52. package/dist/automated-config/dist/utils/pseudoStateSelectors.js +6 -3
  53. package/dist/components/client/Button.cjs +3 -3
  54. package/dist/components/client/Button.js +3 -3
  55. package/dist/components/client/Input/Input.cjs +1 -1
  56. package/dist/components/client/Input/Input.js +1 -1
  57. package/dist/components/client/Menu/Menu.Item.cjs +1 -0
  58. package/dist/components/client/Menu/Menu.Item.js +1 -0
  59. package/dist/components/client/Select/Select.cjs +179 -0
  60. package/dist/components/client/Select/Select.d.cts +55 -0
  61. package/dist/components/client/Select/Select.d.ts +56 -0
  62. package/dist/components/client/Select/Select.js +176 -0
  63. package/dist/components/client/Select/SelectContent.cjs +75 -0
  64. package/dist/components/client/Select/SelectContent.d.cts +44 -0
  65. package/dist/components/client/Select/SelectContent.d.ts +45 -0
  66. package/dist/components/client/Select/SelectContent.js +73 -0
  67. package/dist/components/client/Select/SelectDivider.cjs +63 -0
  68. package/dist/components/client/Select/SelectDivider.d.cts +44 -0
  69. package/dist/components/client/Select/SelectDivider.d.ts +45 -0
  70. package/dist/components/client/Select/SelectDivider.js +61 -0
  71. package/dist/components/client/Select/SelectHelpText.cjs +51 -0
  72. package/dist/components/client/Select/SelectHelpText.d.cts +27 -0
  73. package/dist/components/client/Select/SelectHelpText.d.ts +28 -0
  74. package/dist/components/client/Select/SelectHelpText.js +48 -0
  75. package/dist/components/client/Select/SelectItem.cjs +172 -0
  76. package/dist/components/client/Select/SelectItem.d.cts +29 -0
  77. package/dist/components/client/Select/SelectItem.d.ts +30 -0
  78. package/dist/components/client/Select/SelectItem.js +170 -0
  79. package/dist/components/client/Select/SelectTrigger.cjs +138 -0
  80. package/dist/components/client/Select/SelectTrigger.d.cts +27 -0
  81. package/dist/components/client/Select/SelectTrigger.d.ts +28 -0
  82. package/dist/components/client/Select/SelectTrigger.js +136 -0
  83. package/dist/components/client/Select/SelectValue.cjs +28 -0
  84. package/dist/components/client/Select/SelectValue.d.cts +19 -0
  85. package/dist/components/client/Select/SelectValue.d.ts +20 -0
  86. package/dist/components/client/Select/SelectValue.js +26 -0
  87. package/dist/components/client/Select/index.cjs +11 -0
  88. package/dist/components/client/Select/index.d.cts +6 -0
  89. package/dist/components/client/Select/index.d.ts +7 -0
  90. package/dist/components/client/Select/index.js +7 -0
  91. package/dist/components/client/Select/selectContext.cjs +20 -0
  92. package/dist/components/client/Select/selectContext.d.cts +23 -0
  93. package/dist/components/client/Select/selectContext.d.ts +24 -0
  94. package/dist/components/client/Select/selectContext.js +16 -0
  95. package/dist/components/client/Select/selectFieldStyles.cjs +85 -0
  96. package/dist/components/client/Select/selectFieldStyles.d.cts +37 -0
  97. package/dist/components/client/Select/selectFieldStyles.d.ts +38 -0
  98. package/dist/components/client/Select/selectFieldStyles.js +75 -0
  99. package/dist/components/client/index.cjs +8 -0
  100. package/dist/components/client/index.d.cts +5 -1
  101. package/dist/components/client/index.d.ts +5 -1
  102. package/dist/components/client/index.js +5 -1
  103. package/dist/components/index.cjs +8 -0
  104. package/dist/components/index.d.cts +5 -1
  105. package/dist/components/index.d.ts +5 -1
  106. package/dist/components/index.js +5 -1
  107. package/dist/config/dist/index.cjs +383 -73
  108. package/dist/config/dist/index.js +383 -73
  109. package/dist/css/dist/css/utils.cjs +3 -0
  110. package/dist/css/dist/css/utils.js +3 -0
  111. package/dist/css/dist/packages/automated-config/dist/properties.cjs +8 -1
  112. package/dist/css/dist/packages/automated-config/dist/properties.js +8 -1
  113. package/dist/css/dist/packages/config/dist/index.cjs +383 -73
  114. package/dist/css/dist/packages/config/dist/index.js +383 -73
  115. package/dist/css-tokens/dist/index.cjs +2 -0
  116. package/dist/css-tokens/dist/index.d.cts +2 -1
  117. package/dist/css-tokens/dist/index.d.ts +2 -1
  118. package/dist/css-tokens/dist/index.js +2 -1
  119. package/dist/index.cjs +34 -0
  120. package/dist/index.d.cts +12 -4
  121. package/dist/index.d.ts +12 -4
  122. package/dist/index.js +11 -3
  123. package/dist/styles/styler.d.cts +29 -12
  124. package/dist/styles/styler.d.ts +29 -12
  125. package/dist/styles/variants.d.cts +54 -0
  126. package/dist/styles/variants.d.ts +54 -0
  127. package/dist/tailwind/utils/index.cjs +3 -0
  128. package/dist/tailwind/utils/index.d.cts +2 -1
  129. package/dist/tailwind/utils/index.d.ts +2 -1
  130. package/dist/tailwind/utils/index.js +2 -1
  131. package/dist/tailwind-internal/dist/base/addColorModeVars.cjs +1 -1
  132. package/dist/tailwind-internal/dist/base/addColorModeVars.js +1 -1
  133. package/dist/tailwind-internal/dist/base/addColorModeVarsV2.cjs +1 -1
  134. package/dist/tailwind-internal/dist/base/addColorModeVarsV2.js +1 -1
  135. package/dist/tailwind-internal/dist/components/getFocusRingStyles.cjs +74 -6
  136. package/dist/tailwind-internal/dist/components/getFocusRingStyles.d.cts +14 -0
  137. package/dist/tailwind-internal/dist/components/getFocusRingStyles.d.ts +14 -0
  138. package/dist/tailwind-internal/dist/components/getFocusRingStyles.js +74 -7
  139. package/dist/tailwind-internal/dist/components/getResponsiveTextStyles.cjs +1 -1
  140. package/dist/tailwind-internal/dist/components/getResponsiveTextStyles.js +1 -1
  141. package/dist/tailwind-internal/dist/index.d.cts +1 -0
  142. package/dist/tailwind-internal/dist/index.d.ts +1 -0
  143. package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.cjs +3287 -596
  144. package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.js +3285 -597
  145. package/dist/tailwind-internal/dist/packages/automated-config/dist/properties.cjs +8 -1
  146. package/dist/tailwind-internal/dist/packages/automated-config/dist/properties.js +8 -1
  147. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/componentStatePseudoStates.cjs +4 -0
  148. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/componentStatePseudoStates.js +4 -1
  149. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/getButtonControlHeight.cjs +126 -0
  150. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/getButtonControlHeight.js +123 -0
  151. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/iconButtonMatchButtonHeight.cjs +20 -0
  152. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/iconButtonMatchButtonHeight.js +20 -0
  153. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.cjs +103 -33
  154. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.js +104 -34
  155. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/pseudoStateSelectors.cjs +6 -3
  156. package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/pseudoStateSelectors.js +6 -3
  157. package/dist/tailwind-internal/dist/packages/config/dist/index.cjs +383 -73
  158. package/dist/tailwind-internal/dist/packages/config/dist/index.js +383 -73
  159. package/dist/tailwind-internal/dist/packages/css-tokens/dist/index.cjs +12 -10
  160. package/dist/tailwind-internal/dist/packages/css-tokens/dist/index.js +3 -2
  161. package/dist/tailwind-internal/dist/plugins/a11y.cjs +6 -2
  162. package/dist/tailwind-internal/dist/plugins/a11y.js +6 -2
  163. package/dist/tailwind-internal/dist/plugins/blurBgFallback.cjs +1 -1
  164. package/dist/tailwind-internal/dist/plugins/blurBgFallback.js +1 -1
  165. package/dist/tailwind-internal/dist/plugins/borderRadius.cjs +1 -1
  166. package/dist/tailwind-internal/dist/plugins/borderRadius.js +1 -1
  167. package/dist/tailwind-internal/dist/plugins/borderWidth.cjs +1 -1
  168. package/dist/tailwind-internal/dist/plugins/borderWidth.js +1 -1
  169. package/dist/tailwind-internal/dist/plugins/colors.cjs +2 -2
  170. package/dist/tailwind-internal/dist/plugins/colors.js +2 -2
  171. package/dist/tailwind-internal/dist/plugins/components.cjs +5 -2
  172. package/dist/tailwind-internal/dist/plugins/components.js +6 -3
  173. package/dist/tailwind-internal/dist/plugins/elevation.cjs +1 -1
  174. package/dist/tailwind-internal/dist/plugins/elevation.js +1 -1
  175. package/dist/tailwind-internal/dist/plugins/shadows.cjs +1 -1
  176. package/dist/tailwind-internal/dist/plugins/shadows.js +1 -1
  177. package/dist/tailwind-internal/dist/plugins/typography.cjs +2 -2
  178. package/dist/tailwind-internal/dist/plugins/typography.js +2 -2
  179. package/dist/tailwind-internal/dist/utils/getElevationStyles.cjs +1 -1
  180. package/dist/tailwind-internal/dist/utils/getElevationStyles.js +1 -1
  181. package/dist/tailwind-internal/dist/utils/getFontStyles.cjs +1 -1
  182. package/dist/tailwind-internal/dist/utils/getFontStyles.js +1 -1
  183. package/dist/tailwind-internal/dist/utils/getMotionStyles.cjs +1 -1
  184. package/dist/tailwind-internal/dist/utils/getMotionStyles.js +1 -1
  185. package/dist/tailwind-internal/dist/utils/getShadowPresetValues.cjs +1 -1
  186. package/dist/tailwind-internal/dist/utils/getShadowPresetValues.js +1 -1
  187. package/dist/tailwind-internal/dist/utils/getShadowStyles.cjs +1 -1
  188. package/dist/tailwind-internal/dist/utils/getShadowStyles.js +1 -1
  189. package/dist/tailwind-internal/dist/utils/parseTokens.cjs +2 -2
  190. package/dist/tailwind-internal/dist/utils/parseTokens.js +2 -2
  191. package/dist/tokens/automation/configs/index.cjs +3 -0
  192. package/dist/tokens/automation/configs/index.d.cts +2 -2
  193. package/dist/tokens/automation/configs/index.d.ts +2 -2
  194. package/dist/tokens/automation/configs/index.js +2 -2
  195. package/dist/tokens/automation/index.cjs +25 -0
  196. package/dist/tokens/automation/index.d.cts +6 -2
  197. package/dist/tokens/automation/index.d.ts +6 -2
  198. package/dist/tokens/automation/index.js +6 -2
  199. package/dist/tokens/consts/cssTokens.cjs +1 -0
  200. package/dist/tokens/consts/cssTokens.d.cts +2 -2
  201. package/dist/tokens/consts/cssTokens.d.ts +2 -2
  202. package/dist/tokens/consts/cssTokens.js +2 -2
  203. package/dist/tokens/index.cjs +26 -0
  204. package/dist/tokens/index.d.cts +8 -4
  205. package/dist/tokens/index.d.ts +8 -4
  206. package/dist/tokens/index.js +7 -3
  207. package/dist/tokens/types.d.cts +2 -2
  208. package/dist/tokens/types.d.ts +2 -2
  209. package/dist/types/dist/index.d.cts +36 -1
  210. package/dist/types/dist/index.d.ts +36 -1
  211. package/dist/uds/generated/componentData.cjs +718 -308
  212. package/dist/uds/generated/componentData.js +718 -308
  213. package/dist/uds/generated/migrationSchemaVersion.cjs +1 -1
  214. package/dist/uds/generated/migrationSchemaVersion.js +1 -1
  215. package/dist/uds/generated/tailwindPurge.cjs +1501 -315
  216. package/dist/uds/generated/tailwindPurge.js +1501 -315
  217. package/generated/componentData.json +897 -398
  218. package/generated/migrationSchemaVersion.ts +1 -1
  219. package/generated/tailwindPurge.ts +4 -4
  220. package/package.json +1 -1
@@ -0,0 +1,73 @@
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 { VStack } from "../../VStack.js";
6
+ import { getUnscaledAnchorRect } from "../../../utils/getUnscaledAnchorRect.js";
7
+ import { useSelectFieldContext } from "./selectContext.js";
8
+ import { forwardRef, useCallback, useLayoutEffect, useRef } from "react";
9
+ import { jsx } from "react/jsx-runtime";
10
+ import { SelectPopover, useSelectContext, useStoreState } from "@ariakit/react";
11
+ //#region src/components/client/Select/SelectContent.tsx
12
+ /**
13
+ * **▾ Select content panel**
14
+ *
15
+ * @componentType Client component
16
+ *
17
+ * @description
18
+ * The floating listbox container. Renders Ariakit `SelectPopover` with UDS
19
+ * styling.
20
+ */
21
+ const SelectContent = forwardRef(function SelectContent({ children, className, size = "default", variant = "default", slotProps, gutter = 4, sameWidth = true, portal = true, unmountOnHide = false, keepOpenOnInteractOutside = false, maxHeight = 240, disableAutoBorderRadius, nestedBorderRadius = !disableAutoBorderRadius, nestedBorderRadiusSize, nestedBorderRadiusSpacing, nestedBorderRadiusWidth, ...props }, ref) {
22
+ const { className: rootClassName, style: rootStyle, ...rootSlotProps } = slotProps?.root ?? {};
23
+ const resolvedMaxHeight = typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight;
24
+ const select = useSelectContext();
25
+ const { triggerWrapperRef } = useSelectFieldContext();
26
+ const mounted = useStoreState(select, "mounted");
27
+ const hasResetActiveItemRef = useRef(false);
28
+ const getAnchorRect = useCallback((anchor) => {
29
+ const wrapper = triggerWrapperRef.current;
30
+ if (wrapper) return getUnscaledAnchorRect(wrapper);
31
+ return getUnscaledAnchorRect(anchor);
32
+ }, [triggerWrapperRef]);
33
+ useLayoutEffect(() => {
34
+ if (!select) return;
35
+ if (mounted && !hasResetActiveItemRef.current) {
36
+ select.setActiveId(null);
37
+ hasResetActiveItemRef.current = true;
38
+ }
39
+ if (!mounted) hasResetActiveItemRef.current = false;
40
+ }, [mounted, select]);
41
+ return /* @__PURE__ */ jsx(SelectPopover, {
42
+ ref,
43
+ render: /* @__PURE__ */ jsx(VStack, {
44
+ elevation: "3",
45
+ overflow: "auto",
46
+ borderRadius: "md",
47
+ nestedBorderRadius,
48
+ nestedBorderRadiusSize,
49
+ nestedBorderRadiusSpacing,
50
+ nestedBorderRadiusWidth,
51
+ ...rootSlotProps,
52
+ style: {
53
+ maxHeight: resolvedMaxHeight,
54
+ ...rootStyle
55
+ },
56
+ className: cx(getStyles({
57
+ selectcontentSizeRoot: size,
58
+ selectcontentVariantRoot: variant
59
+ }), "z-50", "focus:outline-none", className, rootClassName),
60
+ children
61
+ }),
62
+ ...props,
63
+ gutter,
64
+ sameWidth,
65
+ getAnchorRect,
66
+ portal,
67
+ unmountOnHide,
68
+ hideOnInteractOutside: !keepOpenOnInteractOutside
69
+ });
70
+ });
71
+ SelectContent.displayName = "SelectContent";
72
+ //#endregion
73
+ export { SelectContent };
@@ -0,0 +1,63 @@
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_Divider_Divider = require("../../Divider/Divider.cjs");
8
+ let react = require("react");
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ //#region src/components/client/Select/SelectDivider.tsx
11
+ /**
12
+ * **▾ Select divider**
13
+ *
14
+ * @componentType Client component
15
+ *
16
+ * @description
17
+ * A divider for separating groups of select options inside `SelectContent`.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * 'use client';
22
+ *
23
+ * import { Select, SelectContent, SelectDivider, SelectItem } from '@yahoo/uds';
24
+ *
25
+ * <Select label="Country" placeholder="Select a country" defaultValue="us">
26
+ * <SelectContent>
27
+ * <SelectItem value="us">United States</SelectItem>
28
+ * <SelectItem value="ca">Canada</SelectItem>
29
+ * <SelectDivider>Other regions</SelectDivider>
30
+ * <SelectItem value="mx">Mexico</SelectItem>
31
+ * </SelectContent>
32
+ * </Select>
33
+ * ```
34
+ *
35
+ * @usage
36
+ * Use `SelectDivider` to separate groups of select options.
37
+ *
38
+ * @related [Select](https://uds.build/docs/components/select), [SelectItem](https://uds.build/docs/components/select-item), [Divider](https://uds.build/docs/components/divider)
39
+ */
40
+ const SelectDivider = (0, react.forwardRef)(function SelectDivider({ "aria-hidden": ariaHidden = true, contentPosition = "start", gap = "4", children, spacingVertical = children ? "2" : "0", spacingHorizontal = children ? "4" : "0", className, ...props }, ref) {
41
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Divider_Divider.Divider, {
42
+ ref,
43
+ "aria-hidden": ariaHidden,
44
+ variant: "inherit",
45
+ contentPosition,
46
+ gap,
47
+ spacingVertical,
48
+ spacingHorizontal,
49
+ slotProps: {
50
+ root: { className: require_styles_styler.getStyles({
51
+ selectitemDividerVariantRoot: "default",
52
+ className
53
+ }) },
54
+ label: { className: require_styles_styler.getStyles({ selectitemDividerVariantText: "default" }) },
55
+ line: { className: require_styles_styler.getStyles({ selectitemDividerVariantLine: "default" }) }
56
+ },
57
+ ...props,
58
+ children
59
+ });
60
+ });
61
+ SelectDivider.displayName = "SelectDivider";
62
+ //#endregion
63
+ exports.SelectDivider = SelectDivider;
@@ -0,0 +1,44 @@
1
+
2
+ import { DividerProps } from "../../Divider/Divider.cjs";
3
+ import * as _$react from "react";
4
+
5
+ //#region src/components/client/Select/SelectDivider.d.ts
6
+ interface SelectDividerProps extends Omit<DividerProps, 'variant' | 'role'> {
7
+ /**
8
+ * Select content uses `role="listbox"`, which does not allow `role="separator"`
9
+ * children. Dividers are visual-only and hidden from the accessibility tree.
10
+ */
11
+ 'aria-hidden'?: boolean;
12
+ }
13
+ /**
14
+ * **▾ Select divider**
15
+ *
16
+ * @componentType Client component
17
+ *
18
+ * @description
19
+ * A divider for separating groups of select options inside `SelectContent`.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * 'use client';
24
+ *
25
+ * import { Select, SelectContent, SelectDivider, SelectItem } from '@yahoo/uds';
26
+ *
27
+ * <Select label="Country" placeholder="Select a country" defaultValue="us">
28
+ * <SelectContent>
29
+ * <SelectItem value="us">United States</SelectItem>
30
+ * <SelectItem value="ca">Canada</SelectItem>
31
+ * <SelectDivider>Other regions</SelectDivider>
32
+ * <SelectItem value="mx">Mexico</SelectItem>
33
+ * </SelectContent>
34
+ * </Select>
35
+ * ```
36
+ *
37
+ * @usage
38
+ * Use `SelectDivider` to separate groups of select options.
39
+ *
40
+ * @related [Select](https://uds.build/docs/components/select), [SelectItem](https://uds.build/docs/components/select-item), [Divider](https://uds.build/docs/components/divider)
41
+ */
42
+ declare const SelectDivider: _$react.ForwardRefExoticComponent<SelectDividerProps & _$react.RefAttributes<HTMLDivElement>>;
43
+ //#endregion
44
+ export { SelectDivider, type SelectDividerProps };
@@ -0,0 +1,45 @@
1
+
2
+ "use client";
3
+ import { DividerProps } from "../../Divider/Divider.js";
4
+ import * as _$react from "react";
5
+
6
+ //#region src/components/client/Select/SelectDivider.d.ts
7
+ interface SelectDividerProps extends Omit<DividerProps, 'variant' | 'role'> {
8
+ /**
9
+ * Select content uses `role="listbox"`, which does not allow `role="separator"`
10
+ * children. Dividers are visual-only and hidden from the accessibility tree.
11
+ */
12
+ 'aria-hidden'?: boolean;
13
+ }
14
+ /**
15
+ * **▾ Select divider**
16
+ *
17
+ * @componentType Client component
18
+ *
19
+ * @description
20
+ * A divider for separating groups of select options inside `SelectContent`.
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * 'use client';
25
+ *
26
+ * import { Select, SelectContent, SelectDivider, SelectItem } from '@yahoo/uds';
27
+ *
28
+ * <Select label="Country" placeholder="Select a country" defaultValue="us">
29
+ * <SelectContent>
30
+ * <SelectItem value="us">United States</SelectItem>
31
+ * <SelectItem value="ca">Canada</SelectItem>
32
+ * <SelectDivider>Other regions</SelectDivider>
33
+ * <SelectItem value="mx">Mexico</SelectItem>
34
+ * </SelectContent>
35
+ * </Select>
36
+ * ```
37
+ *
38
+ * @usage
39
+ * Use `SelectDivider` to separate groups of select options.
40
+ *
41
+ * @related [Select](https://uds.build/docs/components/select), [SelectItem](https://uds.build/docs/components/select-item), [Divider](https://uds.build/docs/components/divider)
42
+ */
43
+ declare const SelectDivider: _$react.ForwardRefExoticComponent<SelectDividerProps & _$react.RefAttributes<HTMLDivElement>>;
44
+ //#endregion
45
+ export { SelectDivider, type SelectDividerProps };
@@ -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 };