@yahoo/uds 3.131.0 → 3.132.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/components/Banner/Banner.cjs +5 -2
- package/dist/components/Banner/Banner.d.cts +9 -0
- package/dist/components/Banner/Banner.d.ts +9 -0
- package/dist/components/Banner/Banner.js +5 -2
- package/dist/components/Divider/Divider.d.cts +2 -2
- package/dist/components/Divider/Divider.d.ts +2 -2
- package/dist/components/Divider/DividerCore.cjs +17 -10
- package/dist/components/Divider/DividerCore.d.cts +10 -4
- package/dist/components/Divider/DividerCore.d.ts +10 -4
- package/dist/components/Divider/DividerCore.js +17 -10
- package/dist/components/Divider/DividerInternal.cjs +15 -11
- package/dist/components/Divider/DividerInternal.js +15 -11
- package/dist/components/Link.cjs +13 -6
- package/dist/components/Link.d.cts +10 -0
- package/dist/components/Link.d.ts +10 -0
- package/dist/components/Link.js +13 -6
- package/dist/components/client/Badge.cjs +10 -4
- package/dist/components/client/Badge.d.cts +12 -1
- package/dist/components/client/Badge.d.ts +12 -1
- package/dist/components/client/Badge.js +10 -4
- package/dist/components/client/Button.cjs +20 -9
- package/dist/components/client/Button.d.cts +12 -1
- package/dist/components/client/Button.d.ts +12 -1
- package/dist/components/client/Button.js +20 -9
- package/dist/components/client/Checkbox.cjs +14 -6
- package/dist/components/client/Checkbox.d.cts +9 -4
- package/dist/components/client/Checkbox.d.ts +9 -4
- package/dist/components/client/Checkbox.js +14 -6
- package/dist/components/client/Chip/Chip.d.cts +1 -1
- package/dist/components/client/Chip/Chip.d.ts +1 -1
- package/dist/components/client/IconButton.cjs +4 -2
- package/dist/components/client/IconButton.d.cts +10 -2
- package/dist/components/client/IconButton.d.ts +10 -2
- package/dist/components/client/IconButton.js +4 -2
- package/dist/components/client/Input/Input.cjs +8 -2
- package/dist/components/client/Input/Input.d.cts +3 -0
- package/dist/components/client/Input/Input.d.ts +3 -0
- package/dist/components/client/Input/Input.js +8 -2
- package/dist/components/client/Input/InputHelpTextInternal.cjs +16 -6
- package/dist/components/client/Input/InputHelpTextInternal.d.cts +10 -0
- package/dist/components/client/Input/InputHelpTextInternal.d.ts +10 -0
- package/dist/components/client/Input/InputHelpTextInternal.js +16 -6
- package/dist/components/client/Menu/Menu.Content.cjs +2 -1
- package/dist/components/client/Menu/Menu.Content.d.cts +7 -0
- package/dist/components/client/Menu/Menu.Content.d.ts +7 -0
- package/dist/components/client/Menu/Menu.Content.js +2 -1
- package/dist/components/client/Menu/Menu.Divider.cjs +8 -10
- package/dist/components/client/Menu/Menu.Divider.js +8 -10
- package/dist/components/client/Menu/Menu.Item.cjs +23 -14
- package/dist/components/client/Menu/Menu.Item.d.cts +11 -0
- package/dist/components/client/Menu/Menu.Item.d.ts +11 -0
- package/dist/components/client/Menu/Menu.Item.js +24 -15
- package/dist/components/client/Menu/Menu.ItemBase.cjs +17 -9
- package/dist/components/client/Menu/Menu.ItemBase.d.cts +9 -5
- package/dist/components/client/Menu/Menu.ItemBase.d.ts +9 -5
- package/dist/components/client/Menu/Menu.ItemBase.js +17 -9
- package/dist/components/client/Menu/Menu.ItemCheckbox.cjs +10 -10
- package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +1 -1
- package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +1 -1
- package/dist/components/client/Menu/Menu.ItemCheckbox.js +10 -10
- package/dist/components/client/Popover/PopoverContent.cjs +4 -1
- package/dist/components/client/Popover/PopoverContent.d.cts +3 -0
- package/dist/components/client/Popover/PopoverContent.d.ts +3 -0
- package/dist/components/client/Popover/PopoverContent.js +4 -1
- package/dist/components/client/Radio/Radio.cjs +18 -15
- package/dist/components/client/Radio/Radio.d.cts +9 -4
- package/dist/components/client/Radio/Radio.d.ts +9 -4
- package/dist/components/client/Radio/Radio.js +18 -15
- package/dist/components/client/Switch.cjs +14 -6
- package/dist/components/client/Switch.d.cts +9 -5
- package/dist/components/client/Switch.d.ts +9 -5
- package/dist/components/client/Switch.js +14 -6
- package/dist/components/client/Tabs/Tab.cjs +11 -5
- package/dist/components/client/Tabs/Tab.d.cts +14 -3
- package/dist/components/client/Tabs/Tab.d.ts +14 -3
- package/dist/components/client/Tabs/Tab.js +11 -5
- package/dist/components/client/Toast/UDSToastConfigProvider.d.cts +1 -1
- package/dist/components/client/Toast/UDSToastConfigProvider.d.ts +1 -1
- package/dist/components/client/Tooltip/TooltipContent.cjs +9 -3
- package/dist/components/client/Tooltip/TooltipContent.d.cts +14 -2
- package/dist/components/client/Tooltip/TooltipContent.d.ts +14 -2
- package/dist/components/client/Tooltip/TooltipContent.js +9 -3
- package/dist/components/experimental/client/SwitchV2.cjs +14 -6
- package/dist/components/experimental/client/SwitchV2.d.cts +9 -5
- package/dist/components/experimental/client/SwitchV2.d.ts +9 -5
- package/dist/components/experimental/client/SwitchV2.js +14 -6
- package/dist/components/index.d.cts +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/styles/styler.d.cts +67 -67
- package/dist/styles/styler.d.ts +67 -67
- package/dist/types/dist/index.d.cts +3 -3
- package/dist/types/dist/index.d.ts +3 -3
- package/dist/uds/generated/componentData.cjs +1443 -1440
- package/dist/uds/generated/componentData.js +1443 -1440
- package/dist/uds/generated/tailwindPurge.cjs +73 -73
- package/dist/uds/generated/tailwindPurge.js +73 -73
- package/generated/componentData.json +2046 -2037
- package/generated/tailwindPurge.ts +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { UniversalMenuItemProps } from "../../../types/dist/index.js";
|
|
4
|
+
import { IconPropsWithSVGProps } from "../../../tokens/types.js";
|
|
4
5
|
import "../../../tokens/index.js";
|
|
5
6
|
import { PressableProps } from "../Pressable.js";
|
|
6
7
|
import * as react from "react";
|
|
@@ -8,6 +9,9 @@ import { MenuItem, MenuItemCheckbox } from "@ariakit/react";
|
|
|
8
9
|
|
|
9
10
|
//#region src/components/client/Menu/Menu.ItemBase.d.ts
|
|
10
11
|
type MenuItemRootComponent = typeof MenuItem | typeof MenuItemCheckbox;
|
|
12
|
+
type DataAttributes = {
|
|
13
|
+
[name: `data-${string}`]: string;
|
|
14
|
+
};
|
|
11
15
|
interface MenuItemBaseProps extends Omit<PressableProps, 'asChild'>, UniversalMenuItemProps {
|
|
12
16
|
/** Whether to show the end icon */
|
|
13
17
|
hideEndIcon?: boolean;
|
|
@@ -16,11 +20,11 @@ interface MenuItemBaseProps extends Omit<PressableProps, 'asChild'>, UniversalMe
|
|
|
16
20
|
/** Additional props to pass to the root component */
|
|
17
21
|
rootProps?: Record<string, unknown>;
|
|
18
22
|
/** Internal overrides for downstream components. */
|
|
19
|
-
|
|
20
|
-
root?:
|
|
21
|
-
text?:
|
|
22
|
-
startIcon?:
|
|
23
|
-
endIcon?:
|
|
23
|
+
slotProps?: {
|
|
24
|
+
root?: Partial<React.HTMLAttributes<HTMLDivElement> & DataAttributes>;
|
|
25
|
+
text?: Partial<Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'> & DataAttributes>;
|
|
26
|
+
startIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
|
|
27
|
+
endIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
|
|
24
28
|
};
|
|
25
29
|
}
|
|
26
30
|
declare const ITEM_CLASS_NAME = "uds-menu-item";
|
|
@@ -28,18 +28,22 @@ const buildMenuItemClasses = ({ active, disabled, className }) => {
|
|
|
28
28
|
* @private This is an internal component shared by [Menu.Item](https://uds.build/docs/components/menu#menu-item) and [Menu.ItemCheckbox](https://uds.build/docs/components/menu#menu-item-checkbox)
|
|
29
29
|
* and may change without notice. Please do not use this component directly.
|
|
30
30
|
*/
|
|
31
|
-
const MenuItemBase = forwardRef(function MenuItemBase({ spacing = "0", spacingBottom, spacingEnd, spacingHorizontal = "4", spacingStart, spacingTop, spacingVertical = "3.5", columnGap = "2", className, children, endIcon, startIcon, hideEndIcon, active, disabled, as: RootComponent, name, alignItems = "center", justifyContent = "space-between",
|
|
31
|
+
const MenuItemBase = forwardRef(function MenuItemBase({ spacing = "0", spacingBottom, spacingEnd, spacingHorizontal = "4", spacingStart, spacingTop, spacingVertical = "3.5", columnGap = "2", className, children, endIcon, startIcon, hideEndIcon, active, disabled, as: RootComponent, name, alignItems = "center", justifyContent = "space-between", slotProps, slots, rootProps, ...props }, ref) {
|
|
32
32
|
const hasMultipleChildren = Children.count(children) > 1;
|
|
33
33
|
const menuItemClassName = buildMenuItemClasses({
|
|
34
34
|
active,
|
|
35
35
|
disabled,
|
|
36
36
|
className
|
|
37
37
|
});
|
|
38
|
+
const { className: rootClassName, ...rootSlotProps } = slotProps?.root ?? {};
|
|
39
|
+
const { className: textClassName, ...textSlotProps } = slotProps?.text ?? {};
|
|
40
|
+
const { className: startIconClassName, ...startIconSlotProps } = slotProps?.startIcon ?? {};
|
|
41
|
+
const { className: endIconClassName, ...endIconSlotProps } = slotProps?.endIcon ?? {};
|
|
38
42
|
/**
|
|
39
43
|
* Get content styles based on children layout needs
|
|
40
44
|
*/
|
|
41
45
|
const contentStyles = getStyles({
|
|
42
|
-
className: cx(`${ITEM_CLASS_NAME}-content truncate`,
|
|
46
|
+
className: cx(`${ITEM_CLASS_NAME}-content truncate`, textClassName),
|
|
43
47
|
textAlign: "start",
|
|
44
48
|
...hasMultipleChildren && {
|
|
45
49
|
columnGap,
|
|
@@ -66,23 +70,23 @@ const MenuItemBase = forwardRef(function MenuItemBase({ spacing = "0", spacingBo
|
|
|
66
70
|
columnGap,
|
|
67
71
|
alignItems,
|
|
68
72
|
justifyContent,
|
|
69
|
-
className: cx(menuItemClassName,
|
|
73
|
+
className: cx(menuItemClassName, rootClassName)
|
|
70
74
|
}),
|
|
71
75
|
startIcon: getStyles({
|
|
72
76
|
menuitemSizeStartIcon: "default",
|
|
73
|
-
className:
|
|
77
|
+
className: startIconClassName
|
|
74
78
|
}),
|
|
75
79
|
endIcon: getStyles({
|
|
76
80
|
menuitemSizeEndIcon: "default",
|
|
77
|
-
className:
|
|
81
|
+
className: endIconClassName
|
|
78
82
|
})
|
|
79
83
|
}), [
|
|
80
84
|
alignItems,
|
|
81
85
|
columnGap,
|
|
82
86
|
justifyContent,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
87
|
+
endIconClassName,
|
|
88
|
+
rootClassName,
|
|
89
|
+
startIconClassName,
|
|
86
90
|
menuItemClassName,
|
|
87
91
|
spacing,
|
|
88
92
|
spacingBottom,
|
|
@@ -107,6 +111,7 @@ const MenuItemBase = forwardRef(function MenuItemBase({ spacing = "0", spacingBo
|
|
|
107
111
|
render: rootRender,
|
|
108
112
|
disabled,
|
|
109
113
|
className: classNames.root,
|
|
114
|
+
...rootSlotProps,
|
|
110
115
|
children: [/* @__PURE__ */ jsxs(HStack, {
|
|
111
116
|
gap: columnGap,
|
|
112
117
|
alignItems: "center",
|
|
@@ -125,12 +130,15 @@ const MenuItemBase = forwardRef(function MenuItemBase({ spacing = "0", spacingBo
|
|
|
125
130
|
iconProps: {
|
|
126
131
|
size: "sm",
|
|
127
132
|
variant: active ? "fill" : "outline",
|
|
128
|
-
color: "current"
|
|
133
|
+
color: "current",
|
|
134
|
+
...endIconSlotProps,
|
|
135
|
+
...startIconSlotProps
|
|
129
136
|
}
|
|
130
137
|
})
|
|
131
138
|
})
|
|
132
139
|
}), /* @__PURE__ */ jsx("span", {
|
|
133
140
|
className: contentStyles,
|
|
141
|
+
...textSlotProps,
|
|
134
142
|
children
|
|
135
143
|
})]
|
|
136
144
|
}), /* @__PURE__ */ jsx(AnimatePresence, {
|
|
@@ -97,23 +97,23 @@ const MenuItemCheckbox = (0, react.forwardRef)(function MenuItemCheckbox({ name,
|
|
|
97
97
|
context,
|
|
98
98
|
checked
|
|
99
99
|
]);
|
|
100
|
-
const
|
|
101
|
-
root: require_styles_styler.getStyles({
|
|
100
|
+
const menuSlotProps = {
|
|
101
|
+
root: { className: require_styles_styler.getStyles({
|
|
102
102
|
menuitemItemCheckboxVariantRoot: "default",
|
|
103
103
|
menuitemItemCheckboxVariantActiveRoot: isChecked ? "on" : "off"
|
|
104
|
-
}),
|
|
105
|
-
text: require_styles_styler.getStyles({
|
|
104
|
+
}) },
|
|
105
|
+
text: { className: require_styles_styler.getStyles({
|
|
106
106
|
menuitemItemCheckboxVariantText: "default",
|
|
107
107
|
menuitemItemCheckboxVariantActiveText: isChecked ? "on" : "off"
|
|
108
|
-
}),
|
|
109
|
-
startIcon: require_styles_styler.getStyles({
|
|
108
|
+
}) },
|
|
109
|
+
startIcon: { className: require_styles_styler.getStyles({
|
|
110
110
|
menuitemItemCheckboxVariantStartIcon: "default",
|
|
111
111
|
menuitemItemCheckboxVariantActiveStartIcon: isChecked ? "on" : "off"
|
|
112
|
-
}),
|
|
113
|
-
endIcon: require_styles_styler.getStyles({
|
|
112
|
+
}) },
|
|
113
|
+
endIcon: { className: require_styles_styler.getStyles({
|
|
114
114
|
menuitemItemCheckboxVariantEndIcon: "default",
|
|
115
115
|
menuitemItemCheckboxVariantActiveEndIcon: isChecked ? "on" : "off"
|
|
116
|
-
})
|
|
116
|
+
}) }
|
|
117
117
|
};
|
|
118
118
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_client_Menu_Menu_ItemBase.MenuItemBase, {
|
|
119
119
|
ref,
|
|
@@ -122,7 +122,7 @@ const MenuItemCheckbox = (0, react.forwardRef)(function MenuItemCheckbox({ name,
|
|
|
122
122
|
endIcon,
|
|
123
123
|
active: isChecked,
|
|
124
124
|
className: require_styles_styler.cx("uds-menu-item-checkbox", className),
|
|
125
|
-
|
|
125
|
+
slotProps: menuSlotProps,
|
|
126
126
|
name,
|
|
127
127
|
rootProps: {
|
|
128
128
|
onChange: handleChange,
|
|
@@ -88,6 +88,6 @@ interface MenuItemCheckboxProps extends Omit<PressableProps, 'asChild'>, HtmlBut
|
|
|
88
88
|
*
|
|
89
89
|
* @related [Menu](https://uds.build/docs/components/menu), [Menu.Item](https://uds.build/docs/components/menu-item)
|
|
90
90
|
**/
|
|
91
|
-
declare const MenuItemCheckbox: react.ForwardRefExoticComponent<Omit<MenuItemCheckboxProps, "
|
|
91
|
+
declare const MenuItemCheckbox: react.ForwardRefExoticComponent<Omit<MenuItemCheckboxProps, "active" | "hideEndIcon" | "rootProps"> & react.RefAttributes<HTMLDivElement>>;
|
|
92
92
|
//#endregion
|
|
93
93
|
export { MenuItemCheckbox, type MenuItemCheckboxProps };
|
|
@@ -89,6 +89,6 @@ interface MenuItemCheckboxProps extends Omit<PressableProps, 'asChild'>, HtmlBut
|
|
|
89
89
|
*
|
|
90
90
|
* @related [Menu](https://uds.build/docs/components/menu), [Menu.Item](https://uds.build/docs/components/menu-item)
|
|
91
91
|
**/
|
|
92
|
-
declare const MenuItemCheckbox: react.ForwardRefExoticComponent<Omit<MenuItemCheckboxProps, "
|
|
92
|
+
declare const MenuItemCheckbox: react.ForwardRefExoticComponent<Omit<MenuItemCheckboxProps, "active" | "hideEndIcon" | "rootProps"> & react.RefAttributes<HTMLDivElement>>;
|
|
93
93
|
//#endregion
|
|
94
94
|
export { MenuItemCheckbox, type MenuItemCheckboxProps };
|
|
@@ -95,23 +95,23 @@ const MenuItemCheckbox = forwardRef(function MenuItemCheckbox({ name, endIcon =
|
|
|
95
95
|
context,
|
|
96
96
|
checked
|
|
97
97
|
]);
|
|
98
|
-
const
|
|
99
|
-
root: getStyles({
|
|
98
|
+
const menuSlotProps = {
|
|
99
|
+
root: { className: getStyles({
|
|
100
100
|
menuitemItemCheckboxVariantRoot: "default",
|
|
101
101
|
menuitemItemCheckboxVariantActiveRoot: isChecked ? "on" : "off"
|
|
102
|
-
}),
|
|
103
|
-
text: getStyles({
|
|
102
|
+
}) },
|
|
103
|
+
text: { className: getStyles({
|
|
104
104
|
menuitemItemCheckboxVariantText: "default",
|
|
105
105
|
menuitemItemCheckboxVariantActiveText: isChecked ? "on" : "off"
|
|
106
|
-
}),
|
|
107
|
-
startIcon: getStyles({
|
|
106
|
+
}) },
|
|
107
|
+
startIcon: { className: getStyles({
|
|
108
108
|
menuitemItemCheckboxVariantStartIcon: "default",
|
|
109
109
|
menuitemItemCheckboxVariantActiveStartIcon: isChecked ? "on" : "off"
|
|
110
|
-
}),
|
|
111
|
-
endIcon: getStyles({
|
|
110
|
+
}) },
|
|
111
|
+
endIcon: { className: getStyles({
|
|
112
112
|
menuitemItemCheckboxVariantEndIcon: "default",
|
|
113
113
|
menuitemItemCheckboxVariantActiveEndIcon: isChecked ? "on" : "off"
|
|
114
|
-
})
|
|
114
|
+
}) }
|
|
115
115
|
};
|
|
116
116
|
return /* @__PURE__ */ jsx(MenuItemBase, {
|
|
117
117
|
ref,
|
|
@@ -120,7 +120,7 @@ const MenuItemCheckbox = forwardRef(function MenuItemCheckbox({ name, endIcon =
|
|
|
120
120
|
endIcon,
|
|
121
121
|
active: isChecked,
|
|
122
122
|
className: cx("uds-menu-item-checkbox", className),
|
|
123
|
-
|
|
123
|
+
slotProps: menuSlotProps,
|
|
124
124
|
name,
|
|
125
125
|
rootProps: {
|
|
126
126
|
onChange: handleChange,
|
|
@@ -104,6 +104,7 @@ const PopoverContent = (0, react.forwardRef)(function PopoverContent({ children,
|
|
|
104
104
|
},
|
|
105
105
|
ref: mergedRef,
|
|
106
106
|
className: classNames.root,
|
|
107
|
+
...slotProps?.root,
|
|
107
108
|
portal: internalContext ? internalContext.portal : true,
|
|
108
109
|
gutter: internalContext?.hideArrow ? gutter : ARROW_HEIGHT + gutter,
|
|
109
110
|
updatePosition: onPositionUpdate,
|
|
@@ -135,6 +136,7 @@ const PopoverContent = (0, react.forwardRef)(function PopoverContent({ children,
|
|
|
135
136
|
...svgFloatingContentProps,
|
|
136
137
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Box.Box, {
|
|
137
138
|
className: require_styles_styler.cx(classNames.contentWrapper),
|
|
139
|
+
...slotProps?.content,
|
|
138
140
|
style: { paddingInlineEnd: internalContext?.hideDismissButton || disableHorizontalSpacing ? void 0 : require_index.spacingMap[gap] + require_index.spacingMap[spacingHorizontal] + dismissButtonSize },
|
|
139
141
|
children
|
|
140
142
|
})
|
|
@@ -161,7 +163,8 @@ const PopoverContent = (0, react.forwardRef)(function PopoverContent({ children,
|
|
|
161
163
|
!internalContext?.hideArrow && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ariakit_react.PopoverArrow, {
|
|
162
164
|
size: 1,
|
|
163
165
|
ref: arrowRef,
|
|
164
|
-
style: { opacity: 0 }
|
|
166
|
+
style: { opacity: 0 },
|
|
167
|
+
...slotProps?.caret
|
|
165
168
|
})
|
|
166
169
|
]
|
|
167
170
|
});
|
|
@@ -11,6 +11,9 @@ type DataAttributes = {
|
|
|
11
11
|
};
|
|
12
12
|
interface PopoverContentProps extends UniversalPopoverContentProps {
|
|
13
13
|
slotProps?: {
|
|
14
|
+
root?: Partial<React.HTMLAttributes<HTMLDivElement> & DataAttributes>;
|
|
15
|
+
content?: Partial<React.HTMLAttributes<HTMLDivElement> & DataAttributes>;
|
|
16
|
+
caret?: Partial<React.HTMLAttributes<HTMLDivElement> & DataAttributes>;
|
|
14
17
|
closeIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
|
|
15
18
|
closeIconContainer?: Partial<PressableProps & DataAttributes>;
|
|
16
19
|
svgBase?: {
|
|
@@ -12,6 +12,9 @@ type DataAttributes = {
|
|
|
12
12
|
};
|
|
13
13
|
interface PopoverContentProps extends UniversalPopoverContentProps {
|
|
14
14
|
slotProps?: {
|
|
15
|
+
root?: Partial<React.HTMLAttributes<HTMLDivElement> & DataAttributes>;
|
|
16
|
+
content?: Partial<React.HTMLAttributes<HTMLDivElement> & DataAttributes>;
|
|
17
|
+
caret?: Partial<React.HTMLAttributes<HTMLDivElement> & DataAttributes>;
|
|
15
18
|
closeIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
|
|
16
19
|
closeIconContainer?: Partial<PressableProps & DataAttributes>;
|
|
17
20
|
svgBase?: {
|
|
@@ -102,6 +102,7 @@ const PopoverContent = forwardRef(function PopoverContent({ children, className,
|
|
|
102
102
|
},
|
|
103
103
|
ref: mergedRef,
|
|
104
104
|
className: classNames.root,
|
|
105
|
+
...slotProps?.root,
|
|
105
106
|
portal: internalContext ? internalContext.portal : true,
|
|
106
107
|
gutter: internalContext?.hideArrow ? gutter : ARROW_HEIGHT + gutter,
|
|
107
108
|
updatePosition: onPositionUpdate,
|
|
@@ -133,6 +134,7 @@ const PopoverContent = forwardRef(function PopoverContent({ children, className,
|
|
|
133
134
|
...svgFloatingContentProps,
|
|
134
135
|
children: /* @__PURE__ */ jsx(Box, {
|
|
135
136
|
className: cx(classNames.contentWrapper),
|
|
137
|
+
...slotProps?.content,
|
|
136
138
|
style: { paddingInlineEnd: internalContext?.hideDismissButton || disableHorizontalSpacing ? void 0 : spacingMap[gap] + spacingMap[spacingHorizontal] + dismissButtonSize },
|
|
137
139
|
children
|
|
138
140
|
})
|
|
@@ -159,7 +161,8 @@ const PopoverContent = forwardRef(function PopoverContent({ children, className,
|
|
|
159
161
|
!internalContext?.hideArrow && /* @__PURE__ */ jsx(PopoverArrow, {
|
|
160
162
|
size: 1,
|
|
161
163
|
ref: arrowRef,
|
|
162
|
-
style: { opacity: 0 }
|
|
164
|
+
style: { opacity: 0 },
|
|
165
|
+
...slotProps?.caret
|
|
163
166
|
})
|
|
164
167
|
]
|
|
165
168
|
});
|
|
@@ -52,9 +52,13 @@ const pressTransition = {
|
|
|
52
52
|
*
|
|
53
53
|
* @related [Radio](https://uds.build/docs/components/Radio).
|
|
54
54
|
**/
|
|
55
|
-
const Radio = (0, react.forwardRef)(function Radio({ id, name: nameProp, label, labelPosition = "start", variant: variantProp = "primary", size = "md", reduceMotion: forceReduceMotion, value: valueProp = "", checked: checkedProp, defaultChecked, disabled, hasError, onChange, onFocus, onBlur, className, style,
|
|
55
|
+
const Radio = (0, react.forwardRef)(function Radio({ id, name: nameProp, label, labelPosition = "start", variant: variantProp = "primary", size = "md", reduceMotion: forceReduceMotion, value: valueProp = "", checked: checkedProp, defaultChecked, disabled, hasError, onChange, onFocus, onBlur, className, style, slotProps, ...radioProps }, parentRef) {
|
|
56
56
|
const generatedId = (0, react.useId)();
|
|
57
57
|
const uid = id ?? `uds-radio-${generatedId}`;
|
|
58
|
+
const rootSlotProps = slotProps?.root ?? {};
|
|
59
|
+
const radioSlotProps = slotProps?.radio ?? {};
|
|
60
|
+
const radioIconSlotProps = slotProps?.radioIcon ?? {};
|
|
61
|
+
const labelSlotProps = slotProps?.label ?? {};
|
|
58
62
|
const innerRef = (0, react.useRef)(null);
|
|
59
63
|
/**
|
|
60
64
|
* State
|
|
@@ -125,15 +129,11 @@ const Radio = (0, react.forwardRef)(function Radio({ id, name: nameProp, label,
|
|
|
125
129
|
display: "flex",
|
|
126
130
|
flexDirection: labelPosition === "start" ? "row" : "row-reverse",
|
|
127
131
|
alignItems: "center",
|
|
128
|
-
className: require_styles_styler.cx([
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
},
|
|
134
|
-
className,
|
|
135
|
-
layerClassNames?.root
|
|
136
|
-
])
|
|
132
|
+
className: require_styles_styler.cx([{
|
|
133
|
+
"cursor-pointer": !disabled,
|
|
134
|
+
"cursor-default": disabled,
|
|
135
|
+
"opacity-50": disabled
|
|
136
|
+
}, className])
|
|
137
137
|
}),
|
|
138
138
|
radio: require_styles_styler.getStyles({
|
|
139
139
|
radioSizeRadio: size,
|
|
@@ -145,8 +145,7 @@ const Radio = (0, react.forwardRef)(function Radio({ id, name: nameProp, label,
|
|
|
145
145
|
"uds-ring-within",
|
|
146
146
|
cssAnimationDuration,
|
|
147
147
|
"transition-[background-color,border-color]",
|
|
148
|
-
"transition-shadow"
|
|
149
|
-
layerClassNames?.radio
|
|
148
|
+
"transition-shadow"
|
|
150
149
|
])
|
|
151
150
|
}),
|
|
152
151
|
radioCircle: require_styles_styler.getStyles({
|
|
@@ -162,7 +161,7 @@ const Radio = (0, react.forwardRef)(function Radio({ id, name: nameProp, label,
|
|
|
162
161
|
])
|
|
163
162
|
}),
|
|
164
163
|
htmlRadio: require_styles_styler.cx("cursor-[inherit]", "absolute", "opacity-0", "top-1/2", "left-1/2", "w-[calc(100%+2px)]", "h-[calc(100%+2px)]", "transform", "translate-x-[-50%]", "translate-y-[-50%]"),
|
|
165
|
-
label: require_styles_styler.cx(labelPosition === "start" ? "text-start" : "text-end"
|
|
164
|
+
label: require_styles_styler.cx(labelPosition === "start" ? "text-start" : "text-end")
|
|
166
165
|
};
|
|
167
166
|
const RootElement = label ? motion_react.m.label : motion_react.m.div;
|
|
168
167
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_client_SpringMotionConfig.SpringMotionConfig, {
|
|
@@ -178,6 +177,7 @@ const Radio = (0, react.forwardRef)(function Radio({ id, name: nameProp, label,
|
|
|
178
177
|
onTap: handleTapEnd,
|
|
179
178
|
onTapCancel: handleTapEnd,
|
|
180
179
|
tabIndex: -1,
|
|
180
|
+
...rootSlotProps,
|
|
181
181
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(MotionBox, {
|
|
182
182
|
position: "relative",
|
|
183
183
|
borderRadius: "full",
|
|
@@ -187,6 +187,7 @@ const Radio = (0, react.forwardRef)(function Radio({ id, name: nameProp, label,
|
|
|
187
187
|
className: classNames.radio,
|
|
188
188
|
animate: motionAnimate,
|
|
189
189
|
insetShadow: showShadow ? "lg-invert" : "none",
|
|
190
|
+
...radioSlotProps,
|
|
190
191
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
191
192
|
type: "radio",
|
|
192
193
|
tabIndex: 0,
|
|
@@ -208,14 +209,16 @@ const Radio = (0, react.forwardRef)(function Radio({ id, name: nameProp, label,
|
|
|
208
209
|
className: classNames.htmlRadio
|
|
209
210
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Box.Box, {
|
|
210
211
|
borderRadius: "full",
|
|
211
|
-
className: classNames.radioCircle
|
|
212
|
+
className: classNames.radioCircle,
|
|
213
|
+
...radioIconSlotProps
|
|
212
214
|
})]
|
|
213
215
|
}), label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_FormLabel.FormLabel, {
|
|
214
216
|
as: "div",
|
|
215
217
|
variant: "inherit",
|
|
216
218
|
color: "inherit",
|
|
217
219
|
label,
|
|
218
|
-
className: classNames.label
|
|
220
|
+
className: classNames.label,
|
|
221
|
+
...labelSlotProps
|
|
219
222
|
})]
|
|
220
223
|
})
|
|
221
224
|
});
|
|
@@ -5,11 +5,16 @@ import React from "react";
|
|
|
5
5
|
|
|
6
6
|
//#region src/components/client/Radio/Radio.d.ts
|
|
7
7
|
type NativeInputProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'checked' | 'value' | 'size' | 'height' | 'width' | 'color' | 'required'>;
|
|
8
|
+
type DataAttributes = {
|
|
9
|
+
[name: `data-${string}`]: string;
|
|
10
|
+
};
|
|
8
11
|
interface RadioProps extends NativeInputProps, UniversalRadioProps {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
/** Props to be passed into various slots within the component. */
|
|
13
|
+
slotProps?: {
|
|
14
|
+
root?: DataAttributes;
|
|
15
|
+
radio?: DataAttributes;
|
|
16
|
+
radioIcon?: DataAttributes;
|
|
17
|
+
label?: DataAttributes;
|
|
13
18
|
};
|
|
14
19
|
}
|
|
15
20
|
declare const RADIO_VARIANTS: RadioVariant[];
|
|
@@ -6,11 +6,16 @@ import React from "react";
|
|
|
6
6
|
|
|
7
7
|
//#region src/components/client/Radio/Radio.d.ts
|
|
8
8
|
type NativeInputProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'checked' | 'value' | 'size' | 'height' | 'width' | 'color' | 'required'>;
|
|
9
|
+
type DataAttributes = {
|
|
10
|
+
[name: `data-${string}`]: string;
|
|
11
|
+
};
|
|
9
12
|
interface RadioProps extends NativeInputProps, UniversalRadioProps {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
/** Props to be passed into various slots within the component. */
|
|
14
|
+
slotProps?: {
|
|
15
|
+
root?: DataAttributes;
|
|
16
|
+
radio?: DataAttributes;
|
|
17
|
+
radioIcon?: DataAttributes;
|
|
18
|
+
label?: DataAttributes;
|
|
14
19
|
};
|
|
15
20
|
}
|
|
16
21
|
declare const RADIO_VARIANTS: RadioVariant[];
|
|
@@ -49,9 +49,13 @@ const pressTransition = {
|
|
|
49
49
|
*
|
|
50
50
|
* @related [Radio](https://uds.build/docs/components/Radio).
|
|
51
51
|
**/
|
|
52
|
-
const Radio = forwardRef(function Radio({ id, name: nameProp, label, labelPosition = "start", variant: variantProp = "primary", size = "md", reduceMotion: forceReduceMotion, value: valueProp = "", checked: checkedProp, defaultChecked, disabled, hasError, onChange, onFocus, onBlur, className, style,
|
|
52
|
+
const Radio = forwardRef(function Radio({ id, name: nameProp, label, labelPosition = "start", variant: variantProp = "primary", size = "md", reduceMotion: forceReduceMotion, value: valueProp = "", checked: checkedProp, defaultChecked, disabled, hasError, onChange, onFocus, onBlur, className, style, slotProps, ...radioProps }, parentRef) {
|
|
53
53
|
const generatedId = useId();
|
|
54
54
|
const uid = id ?? `uds-radio-${generatedId}`;
|
|
55
|
+
const rootSlotProps = slotProps?.root ?? {};
|
|
56
|
+
const radioSlotProps = slotProps?.radio ?? {};
|
|
57
|
+
const radioIconSlotProps = slotProps?.radioIcon ?? {};
|
|
58
|
+
const labelSlotProps = slotProps?.label ?? {};
|
|
55
59
|
const innerRef = useRef(null);
|
|
56
60
|
/**
|
|
57
61
|
* State
|
|
@@ -122,15 +126,11 @@ const Radio = forwardRef(function Radio({ id, name: nameProp, label, labelPositi
|
|
|
122
126
|
display: "flex",
|
|
123
127
|
flexDirection: labelPosition === "start" ? "row" : "row-reverse",
|
|
124
128
|
alignItems: "center",
|
|
125
|
-
className: cx([
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
},
|
|
131
|
-
className,
|
|
132
|
-
layerClassNames?.root
|
|
133
|
-
])
|
|
129
|
+
className: cx([{
|
|
130
|
+
"cursor-pointer": !disabled,
|
|
131
|
+
"cursor-default": disabled,
|
|
132
|
+
"opacity-50": disabled
|
|
133
|
+
}, className])
|
|
134
134
|
}),
|
|
135
135
|
radio: getStyles({
|
|
136
136
|
radioSizeRadio: size,
|
|
@@ -142,8 +142,7 @@ const Radio = forwardRef(function Radio({ id, name: nameProp, label, labelPositi
|
|
|
142
142
|
"uds-ring-within",
|
|
143
143
|
cssAnimationDuration,
|
|
144
144
|
"transition-[background-color,border-color]",
|
|
145
|
-
"transition-shadow"
|
|
146
|
-
layerClassNames?.radio
|
|
145
|
+
"transition-shadow"
|
|
147
146
|
])
|
|
148
147
|
}),
|
|
149
148
|
radioCircle: getStyles({
|
|
@@ -159,7 +158,7 @@ const Radio = forwardRef(function Radio({ id, name: nameProp, label, labelPositi
|
|
|
159
158
|
])
|
|
160
159
|
}),
|
|
161
160
|
htmlRadio: cx("cursor-[inherit]", "absolute", "opacity-0", "top-1/2", "left-1/2", "w-[calc(100%+2px)]", "h-[calc(100%+2px)]", "transform", "translate-x-[-50%]", "translate-y-[-50%]"),
|
|
162
|
-
label: cx(labelPosition === "start" ? "text-start" : "text-end"
|
|
161
|
+
label: cx(labelPosition === "start" ? "text-start" : "text-end")
|
|
163
162
|
};
|
|
164
163
|
const RootElement = label ? m.label : m.div;
|
|
165
164
|
return /* @__PURE__ */ jsx(SpringMotionConfig, {
|
|
@@ -175,6 +174,7 @@ const Radio = forwardRef(function Radio({ id, name: nameProp, label, labelPositi
|
|
|
175
174
|
onTap: handleTapEnd,
|
|
176
175
|
onTapCancel: handleTapEnd,
|
|
177
176
|
tabIndex: -1,
|
|
177
|
+
...rootSlotProps,
|
|
178
178
|
children: [/* @__PURE__ */ jsxs(MotionBox, {
|
|
179
179
|
position: "relative",
|
|
180
180
|
borderRadius: "full",
|
|
@@ -184,6 +184,7 @@ const Radio = forwardRef(function Radio({ id, name: nameProp, label, labelPositi
|
|
|
184
184
|
className: classNames.radio,
|
|
185
185
|
animate: motionAnimate,
|
|
186
186
|
insetShadow: showShadow ? "lg-invert" : "none",
|
|
187
|
+
...radioSlotProps,
|
|
187
188
|
children: [/* @__PURE__ */ jsx("input", {
|
|
188
189
|
type: "radio",
|
|
189
190
|
tabIndex: 0,
|
|
@@ -205,14 +206,16 @@ const Radio = forwardRef(function Radio({ id, name: nameProp, label, labelPositi
|
|
|
205
206
|
className: classNames.htmlRadio
|
|
206
207
|
}), /* @__PURE__ */ jsx(Box, {
|
|
207
208
|
borderRadius: "full",
|
|
208
|
-
className: classNames.radioCircle
|
|
209
|
+
className: classNames.radioCircle,
|
|
210
|
+
...radioIconSlotProps
|
|
209
211
|
})]
|
|
210
212
|
}), label && /* @__PURE__ */ jsx(FormLabel, {
|
|
211
213
|
as: "div",
|
|
212
214
|
variant: "inherit",
|
|
213
215
|
color: "inherit",
|
|
214
216
|
label,
|
|
215
|
-
className: classNames.label
|
|
217
|
+
className: classNames.label,
|
|
218
|
+
...labelSlotProps
|
|
216
219
|
})]
|
|
217
220
|
})
|
|
218
221
|
});
|
|
@@ -46,9 +46,13 @@ const toggleTransition = {
|
|
|
46
46
|
*
|
|
47
47
|
* @related [Checkbox](https://uds.build/docs/components/checkbox).
|
|
48
48
|
**/
|
|
49
|
-
const Switch = (0, react.forwardRef)(function Switch({ id, isOn: isOnProp, defaultIsOn, onChange, label, labelPosition = "start", size = "md", onIcon, offIcon, reduceMotion: forceReduceMotion, disabled, required, onFocus, onBlur, className, style,
|
|
49
|
+
const Switch = (0, react.forwardRef)(function Switch({ id, isOn: isOnProp, defaultIsOn, onChange, label, labelPosition = "start", size = "md", onIcon, offIcon, reduceMotion: forceReduceMotion, disabled, required, onFocus, onBlur, className, style, slotProps, ...switchProps }, parentRef) {
|
|
50
50
|
const generatedId = (0, react.useId)();
|
|
51
51
|
const uid = id ?? `uds-input-${generatedId}`;
|
|
52
|
+
const rootSlotProps = slotProps?.root ?? {};
|
|
53
|
+
const switchSlotProps = slotProps?.switch ?? {};
|
|
54
|
+
const handleSlotProps = slotProps?.handle ?? {};
|
|
55
|
+
const labelSlotProps = slotProps?.label ?? {};
|
|
52
56
|
const innerRef = (0, react.useRef)(null);
|
|
53
57
|
/**
|
|
54
58
|
* State
|
|
@@ -117,7 +121,7 @@ const Switch = (0, react.forwardRef)(function Switch({ id, isOn: isOnProp, defau
|
|
|
117
121
|
"cursor-pointer": !disabled,
|
|
118
122
|
"cursor-default": disabled,
|
|
119
123
|
"opacity-50": disabled
|
|
120
|
-
},
|
|
124
|
+
}, className)
|
|
121
125
|
}),
|
|
122
126
|
switch: require_styles_styler.getStyles({
|
|
123
127
|
switchVariantSwitch: "default",
|
|
@@ -126,11 +130,11 @@ const Switch = (0, react.forwardRef)(function Switch({ id, isOn: isOnProp, defau
|
|
|
126
130
|
borderRadius: "full",
|
|
127
131
|
position: "relative",
|
|
128
132
|
alignItems: "center",
|
|
129
|
-
className: require_styles_styler.cx("uds-ring", "uds-ring-within", cssAnimationDuration, "transition-[background-color,box-shadow]"
|
|
133
|
+
className: require_styles_styler.cx("uds-ring", "uds-ring-within", cssAnimationDuration, "transition-[background-color,box-shadow]")
|
|
130
134
|
}),
|
|
131
135
|
handle: require_styles_styler.getStyles({
|
|
132
136
|
switchSizeHandle: size,
|
|
133
|
-
className: require_styles_styler.cx("relative", "pointer-events-none", "uds-border-radius-full", "overflow-hidden"
|
|
137
|
+
className: require_styles_styler.cx("relative", "pointer-events-none", "uds-border-radius-full", "overflow-hidden")
|
|
134
138
|
}),
|
|
135
139
|
handleCircle: require_styles_styler.getStyles({
|
|
136
140
|
switchVariantActiveHandle: isOn ? "on" : "off",
|
|
@@ -144,7 +148,7 @@ const Switch = (0, react.forwardRef)(function Switch({ id, isOn: isOnProp, defau
|
|
|
144
148
|
className: require_styles_styler.cx("absolute", "opacity-0", "top-1/2", "left-1/2", "transform", "translate-x-[-50%]", "translate-y-[-50%]", cssAnimationDuration, "transition-opacity")
|
|
145
149
|
}),
|
|
146
150
|
htmlCheckbox: require_styles_styler.cx("cursor-[inherit]", "absolute", "opacity-0", "top-1/2", "left-1/2", "w-[calc(100%+2px)]", "h-[calc(100%+2px)]", "transform", "translate-x-[-50%]", "translate-y-[-50%]"),
|
|
147
|
-
label: require_styles_styler.cx(labelPosition === "start" ? "text-start" : "text-end"
|
|
151
|
+
label: require_styles_styler.cx(labelPosition === "start" ? "text-start" : "text-end")
|
|
148
152
|
};
|
|
149
153
|
const RootElement = label ? motion_react.m.label : motion_react.m.div;
|
|
150
154
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_client_SpringMotionConfig.SpringMotionConfig, {
|
|
@@ -157,8 +161,10 @@ const Switch = (0, react.forwardRef)(function Switch({ id, isOn: isOnProp, defau
|
|
|
157
161
|
onHoverStart: handleHoverStart,
|
|
158
162
|
onHoverEnd: handleHoverEnd,
|
|
159
163
|
tabIndex: -1,
|
|
164
|
+
...rootSlotProps,
|
|
160
165
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(MotionBox, {
|
|
161
166
|
className: classNames.switch,
|
|
167
|
+
...switchSlotProps,
|
|
162
168
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
163
169
|
type: "checkbox",
|
|
164
170
|
tabIndex: 0,
|
|
@@ -180,6 +186,7 @@ const Switch = (0, react.forwardRef)(function Switch({ id, isOn: isOnProp, defau
|
|
|
180
186
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(MotionBox, {
|
|
181
187
|
className: classNames.handle,
|
|
182
188
|
...motionInitialAndAnimate,
|
|
189
|
+
...handleSlotProps,
|
|
183
190
|
children: [
|
|
184
191
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Box.Box, { className: classNames.handleCircle }),
|
|
185
192
|
onIcon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_IconSlot.IconSlot, {
|
|
@@ -208,7 +215,8 @@ const Switch = (0, react.forwardRef)(function Switch({ id, isOn: isOnProp, defau
|
|
|
208
215
|
color: "inherit",
|
|
209
216
|
required,
|
|
210
217
|
label,
|
|
211
|
-
className: classNames.label
|
|
218
|
+
className: classNames.label,
|
|
219
|
+
...labelSlotProps
|
|
212
220
|
})]
|
|
213
221
|
})
|
|
214
222
|
});
|
|
@@ -5,12 +5,16 @@ import React from "react";
|
|
|
5
5
|
|
|
6
6
|
//#region src/components/client/Switch.d.ts
|
|
7
7
|
type NativeInputProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'checked' | 'size' | 'height' | 'width' | 'color' | 'defaultChecked' | 'children'>;
|
|
8
|
+
type DataAttributes = {
|
|
9
|
+
[name: `data-${string}`]: string;
|
|
10
|
+
};
|
|
8
11
|
interface SwitchProps extends NativeInputProps, UniversalSwitchProps {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/** Props to be passed into various slots within the component. */
|
|
13
|
+
slotProps?: {
|
|
14
|
+
root?: DataAttributes;
|
|
15
|
+
switch?: DataAttributes;
|
|
16
|
+
handle?: DataAttributes;
|
|
17
|
+
label?: DataAttributes;
|
|
14
18
|
};
|
|
15
19
|
}
|
|
16
20
|
/**
|
|
@@ -6,12 +6,16 @@ import React from "react";
|
|
|
6
6
|
|
|
7
7
|
//#region src/components/client/Switch.d.ts
|
|
8
8
|
type NativeInputProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'checked' | 'size' | 'height' | 'width' | 'color' | 'defaultChecked' | 'children'>;
|
|
9
|
+
type DataAttributes = {
|
|
10
|
+
[name: `data-${string}`]: string;
|
|
11
|
+
};
|
|
9
12
|
interface SwitchProps extends NativeInputProps, UniversalSwitchProps {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/** Props to be passed into various slots within the component. */
|
|
14
|
+
slotProps?: {
|
|
15
|
+
root?: DataAttributes;
|
|
16
|
+
switch?: DataAttributes;
|
|
17
|
+
handle?: DataAttributes;
|
|
18
|
+
label?: DataAttributes;
|
|
15
19
|
};
|
|
16
20
|
}
|
|
17
21
|
/**
|