@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.
- package/dist/automated-config/dist/generated/autoVariants.cjs +26 -0
- package/dist/automated-config/dist/generated/autoVariants.d.cts +17 -0
- package/dist/automated-config/dist/generated/autoVariants.d.ts +17 -0
- package/dist/automated-config/dist/generated/autoVariants.js +26 -0
- package/dist/automated-config/dist/generated/generatedConfigs.cjs +3287 -596
- package/dist/automated-config/dist/generated/generatedConfigs.d.cts +350 -12
- package/dist/automated-config/dist/generated/generatedConfigs.d.ts +350 -12
- package/dist/automated-config/dist/generated/generatedConfigs.js +3285 -597
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.cjs +276 -45
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.cts +8 -2
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.ts +8 -2
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.js +276 -45
- package/dist/automated-config/dist/properties.cjs +8 -1
- package/dist/automated-config/dist/properties.d.cts +8 -0
- package/dist/automated-config/dist/properties.d.ts +8 -0
- package/dist/automated-config/dist/properties.js +8 -1
- package/dist/automated-config/dist/types/ComponentConfig.d.cts +3 -1
- package/dist/automated-config/dist/types/ComponentConfig.d.ts +3 -1
- package/dist/automated-config/dist/utils/buildConfigSchema.cjs +48 -33
- package/dist/automated-config/dist/utils/buildConfigSchema.d.cts +14 -4
- package/dist/automated-config/dist/utils/buildConfigSchema.d.ts +14 -4
- package/dist/automated-config/dist/utils/buildConfigSchema.js +49 -34
- package/dist/automated-config/dist/utils/componentStatePseudoStates.cjs +4 -0
- package/dist/automated-config/dist/utils/componentStatePseudoStates.js +4 -1
- package/dist/automated-config/dist/utils/getButtonControlHeight.cjs +129 -0
- package/dist/automated-config/dist/utils/getButtonControlHeight.d.cts +133 -0
- package/dist/automated-config/dist/utils/getButtonControlHeight.d.ts +133 -0
- package/dist/automated-config/dist/utils/getButtonControlHeight.js +122 -0
- package/dist/automated-config/dist/utils/getButtonControlHeightPx.cjs +114 -0
- package/dist/automated-config/dist/utils/getButtonControlHeightPx.d.cts +78 -0
- package/dist/automated-config/dist/utils/getButtonControlHeightPx.d.ts +78 -0
- package/dist/automated-config/dist/utils/getButtonControlHeightPx.js +108 -0
- package/dist/automated-config/dist/utils/getConfigVariantProperties.d.cts +2 -2
- package/dist/automated-config/dist/utils/getConfigVariantProperties.d.ts +2 -2
- package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.cjs +5 -2
- package/dist/automated-config/dist/utils/getConfigVariantPseudoStates.js +6 -3
- package/dist/automated-config/dist/utils/iconButtonMatchButtonHeight.cjs +110 -0
- package/dist/automated-config/dist/utils/iconButtonMatchButtonHeight.d.cts +19 -0
- package/dist/automated-config/dist/utils/iconButtonMatchButtonHeight.d.ts +19 -0
- package/dist/automated-config/dist/utils/iconButtonMatchButtonHeight.js +108 -0
- package/dist/automated-config/dist/utils/index.cjs +106 -33
- package/dist/automated-config/dist/utils/index.d.cts +16 -4
- package/dist/automated-config/dist/utils/index.d.ts +16 -4
- package/dist/automated-config/dist/utils/index.js +107 -34
- package/dist/automated-config/dist/utils/isConfiguratorPropertyVisible.cjs +15 -0
- package/dist/automated-config/dist/utils/isConfiguratorPropertyVisible.d.cts +20 -0
- package/dist/automated-config/dist/utils/isConfiguratorPropertyVisible.d.ts +20 -0
- package/dist/automated-config/dist/utils/isConfiguratorPropertyVisible.js +15 -0
- package/dist/automated-config/dist/utils/pseudoStateSelectors.cjs +6 -3
- package/dist/automated-config/dist/utils/pseudoStateSelectors.d.cts +1 -1
- package/dist/automated-config/dist/utils/pseudoStateSelectors.d.ts +1 -1
- package/dist/automated-config/dist/utils/pseudoStateSelectors.js +6 -3
- package/dist/components/client/Button.cjs +3 -3
- package/dist/components/client/Button.js +3 -3
- package/dist/components/client/Input/Input.cjs +1 -1
- package/dist/components/client/Input/Input.js +1 -1
- package/dist/components/client/Menu/Menu.Item.cjs +1 -0
- package/dist/components/client/Menu/Menu.Item.js +1 -0
- package/dist/components/client/Select/Select.cjs +179 -0
- package/dist/components/client/Select/Select.d.cts +55 -0
- package/dist/components/client/Select/Select.d.ts +56 -0
- package/dist/components/client/Select/Select.js +176 -0
- package/dist/components/client/Select/SelectContent.cjs +75 -0
- package/dist/components/client/Select/SelectContent.d.cts +44 -0
- package/dist/components/client/Select/SelectContent.d.ts +45 -0
- package/dist/components/client/Select/SelectContent.js +73 -0
- package/dist/components/client/Select/SelectDivider.cjs +63 -0
- package/dist/components/client/Select/SelectDivider.d.cts +44 -0
- package/dist/components/client/Select/SelectDivider.d.ts +45 -0
- package/dist/components/client/Select/SelectDivider.js +61 -0
- package/dist/components/client/Select/SelectHelpText.cjs +51 -0
- package/dist/components/client/Select/SelectHelpText.d.cts +27 -0
- package/dist/components/client/Select/SelectHelpText.d.ts +28 -0
- package/dist/components/client/Select/SelectHelpText.js +48 -0
- package/dist/components/client/Select/SelectItem.cjs +172 -0
- package/dist/components/client/Select/SelectItem.d.cts +29 -0
- package/dist/components/client/Select/SelectItem.d.ts +30 -0
- package/dist/components/client/Select/SelectItem.js +170 -0
- package/dist/components/client/Select/SelectTrigger.cjs +138 -0
- package/dist/components/client/Select/SelectTrigger.d.cts +27 -0
- package/dist/components/client/Select/SelectTrigger.d.ts +28 -0
- package/dist/components/client/Select/SelectTrigger.js +136 -0
- package/dist/components/client/Select/SelectValue.cjs +28 -0
- package/dist/components/client/Select/SelectValue.d.cts +19 -0
- package/dist/components/client/Select/SelectValue.d.ts +20 -0
- package/dist/components/client/Select/SelectValue.js +26 -0
- package/dist/components/client/Select/index.cjs +11 -0
- package/dist/components/client/Select/index.d.cts +6 -0
- package/dist/components/client/Select/index.d.ts +7 -0
- package/dist/components/client/Select/index.js +7 -0
- package/dist/components/client/Select/selectContext.cjs +20 -0
- package/dist/components/client/Select/selectContext.d.cts +23 -0
- package/dist/components/client/Select/selectContext.d.ts +24 -0
- package/dist/components/client/Select/selectContext.js +16 -0
- package/dist/components/client/Select/selectFieldStyles.cjs +85 -0
- package/dist/components/client/Select/selectFieldStyles.d.cts +37 -0
- package/dist/components/client/Select/selectFieldStyles.d.ts +38 -0
- package/dist/components/client/Select/selectFieldStyles.js +75 -0
- package/dist/components/client/index.cjs +8 -0
- package/dist/components/client/index.d.cts +5 -1
- package/dist/components/client/index.d.ts +5 -1
- package/dist/components/client/index.js +5 -1
- package/dist/components/index.cjs +8 -0
- package/dist/components/index.d.cts +5 -1
- package/dist/components/index.d.ts +5 -1
- package/dist/components/index.js +5 -1
- package/dist/config/dist/index.cjs +383 -73
- package/dist/config/dist/index.js +383 -73
- package/dist/css/dist/css/utils.cjs +3 -0
- package/dist/css/dist/css/utils.js +3 -0
- package/dist/css/dist/packages/automated-config/dist/properties.cjs +8 -1
- package/dist/css/dist/packages/automated-config/dist/properties.js +8 -1
- package/dist/css/dist/packages/config/dist/index.cjs +383 -73
- package/dist/css/dist/packages/config/dist/index.js +383 -73
- package/dist/css-tokens/dist/index.cjs +2 -0
- package/dist/css-tokens/dist/index.d.cts +2 -1
- package/dist/css-tokens/dist/index.d.ts +2 -1
- package/dist/css-tokens/dist/index.js +2 -1
- package/dist/index.cjs +34 -0
- package/dist/index.d.cts +12 -4
- package/dist/index.d.ts +12 -4
- package/dist/index.js +11 -3
- package/dist/styles/styler.d.cts +29 -12
- package/dist/styles/styler.d.ts +29 -12
- package/dist/styles/variants.d.cts +54 -0
- package/dist/styles/variants.d.ts +54 -0
- package/dist/tailwind/utils/index.cjs +3 -0
- package/dist/tailwind/utils/index.d.cts +2 -1
- package/dist/tailwind/utils/index.d.ts +2 -1
- package/dist/tailwind/utils/index.js +2 -1
- package/dist/tailwind-internal/dist/base/addColorModeVars.cjs +1 -1
- package/dist/tailwind-internal/dist/base/addColorModeVars.js +1 -1
- package/dist/tailwind-internal/dist/base/addColorModeVarsV2.cjs +1 -1
- package/dist/tailwind-internal/dist/base/addColorModeVarsV2.js +1 -1
- package/dist/tailwind-internal/dist/components/getFocusRingStyles.cjs +74 -6
- package/dist/tailwind-internal/dist/components/getFocusRingStyles.d.cts +14 -0
- package/dist/tailwind-internal/dist/components/getFocusRingStyles.d.ts +14 -0
- package/dist/tailwind-internal/dist/components/getFocusRingStyles.js +74 -7
- package/dist/tailwind-internal/dist/components/getResponsiveTextStyles.cjs +1 -1
- package/dist/tailwind-internal/dist/components/getResponsiveTextStyles.js +1 -1
- package/dist/tailwind-internal/dist/index.d.cts +1 -0
- package/dist/tailwind-internal/dist/index.d.ts +1 -0
- package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.cjs +3287 -596
- package/dist/tailwind-internal/dist/packages/automated-config/dist/generated/generatedConfigs.js +3285 -597
- package/dist/tailwind-internal/dist/packages/automated-config/dist/properties.cjs +8 -1
- package/dist/tailwind-internal/dist/packages/automated-config/dist/properties.js +8 -1
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/componentStatePseudoStates.cjs +4 -0
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/componentStatePseudoStates.js +4 -1
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/getButtonControlHeight.cjs +126 -0
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/getButtonControlHeight.js +123 -0
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/iconButtonMatchButtonHeight.cjs +20 -0
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/iconButtonMatchButtonHeight.js +20 -0
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.cjs +103 -33
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/index.js +104 -34
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/pseudoStateSelectors.cjs +6 -3
- package/dist/tailwind-internal/dist/packages/automated-config/dist/utils/pseudoStateSelectors.js +6 -3
- package/dist/tailwind-internal/dist/packages/config/dist/index.cjs +383 -73
- package/dist/tailwind-internal/dist/packages/config/dist/index.js +383 -73
- package/dist/tailwind-internal/dist/packages/css-tokens/dist/index.cjs +12 -10
- package/dist/tailwind-internal/dist/packages/css-tokens/dist/index.js +3 -2
- package/dist/tailwind-internal/dist/plugins/a11y.cjs +6 -2
- package/dist/tailwind-internal/dist/plugins/a11y.js +6 -2
- package/dist/tailwind-internal/dist/plugins/blurBgFallback.cjs +1 -1
- package/dist/tailwind-internal/dist/plugins/blurBgFallback.js +1 -1
- package/dist/tailwind-internal/dist/plugins/borderRadius.cjs +1 -1
- package/dist/tailwind-internal/dist/plugins/borderRadius.js +1 -1
- package/dist/tailwind-internal/dist/plugins/borderWidth.cjs +1 -1
- package/dist/tailwind-internal/dist/plugins/borderWidth.js +1 -1
- package/dist/tailwind-internal/dist/plugins/colors.cjs +2 -2
- package/dist/tailwind-internal/dist/plugins/colors.js +2 -2
- package/dist/tailwind-internal/dist/plugins/components.cjs +5 -2
- package/dist/tailwind-internal/dist/plugins/components.js +6 -3
- package/dist/tailwind-internal/dist/plugins/elevation.cjs +1 -1
- package/dist/tailwind-internal/dist/plugins/elevation.js +1 -1
- package/dist/tailwind-internal/dist/plugins/shadows.cjs +1 -1
- package/dist/tailwind-internal/dist/plugins/shadows.js +1 -1
- package/dist/tailwind-internal/dist/plugins/typography.cjs +2 -2
- package/dist/tailwind-internal/dist/plugins/typography.js +2 -2
- package/dist/tailwind-internal/dist/utils/getElevationStyles.cjs +1 -1
- package/dist/tailwind-internal/dist/utils/getElevationStyles.js +1 -1
- package/dist/tailwind-internal/dist/utils/getFontStyles.cjs +1 -1
- package/dist/tailwind-internal/dist/utils/getFontStyles.js +1 -1
- package/dist/tailwind-internal/dist/utils/getMotionStyles.cjs +1 -1
- package/dist/tailwind-internal/dist/utils/getMotionStyles.js +1 -1
- package/dist/tailwind-internal/dist/utils/getShadowPresetValues.cjs +1 -1
- package/dist/tailwind-internal/dist/utils/getShadowPresetValues.js +1 -1
- package/dist/tailwind-internal/dist/utils/getShadowStyles.cjs +1 -1
- package/dist/tailwind-internal/dist/utils/getShadowStyles.js +1 -1
- package/dist/tailwind-internal/dist/utils/parseTokens.cjs +2 -2
- package/dist/tailwind-internal/dist/utils/parseTokens.js +2 -2
- package/dist/tokens/automation/configs/index.cjs +3 -0
- package/dist/tokens/automation/configs/index.d.cts +2 -2
- package/dist/tokens/automation/configs/index.d.ts +2 -2
- package/dist/tokens/automation/configs/index.js +2 -2
- package/dist/tokens/automation/index.cjs +25 -0
- package/dist/tokens/automation/index.d.cts +6 -2
- package/dist/tokens/automation/index.d.ts +6 -2
- package/dist/tokens/automation/index.js +6 -2
- package/dist/tokens/consts/cssTokens.cjs +1 -0
- package/dist/tokens/consts/cssTokens.d.cts +2 -2
- package/dist/tokens/consts/cssTokens.d.ts +2 -2
- package/dist/tokens/consts/cssTokens.js +2 -2
- package/dist/tokens/index.cjs +26 -0
- package/dist/tokens/index.d.cts +8 -4
- package/dist/tokens/index.d.ts +8 -4
- package/dist/tokens/index.js +7 -3
- package/dist/tokens/types.d.cts +2 -2
- package/dist/tokens/types.d.ts +2 -2
- package/dist/types/dist/index.d.cts +36 -1
- package/dist/types/dist/index.d.ts +36 -1
- package/dist/uds/generated/componentData.cjs +718 -308
- package/dist/uds/generated/componentData.js +718 -308
- package/dist/uds/generated/migrationSchemaVersion.cjs +1 -1
- package/dist/uds/generated/migrationSchemaVersion.js +1 -1
- package/dist/uds/generated/tailwindPurge.cjs +1501 -315
- package/dist/uds/generated/tailwindPurge.js +1501 -315
- package/generated/componentData.json +897 -398
- package/generated/migrationSchemaVersion.ts +1 -1
- package/generated/tailwindPurge.ts +4 -4
- 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 };
|