reshaped 4.2.0-canary.0 → 4.2.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 (81) hide show
  1. package/dist/bundle.css +1 -1
  2. package/dist/bundle.d.ts +6 -0
  3. package/dist/bundle.js +2 -2
  4. package/dist/components/Accordion/AccordionContent.js +1 -1
  5. package/dist/components/Badge/Badge.js +4 -1
  6. package/dist/components/Badge/Badge.module.css +1 -1
  7. package/dist/components/Badge/tests/Badge.stories.d.ts +4 -0
  8. package/dist/components/Badge/tests/Badge.stories.js +48 -1
  9. package/dist/components/Button/Button.js +2 -0
  10. package/dist/components/Button/Button.module.css +1 -1
  11. package/dist/components/Button/tests/Button.stories.js +1 -0
  12. package/dist/components/ContentToggle/ContentToggle.d.ts +4 -0
  13. package/dist/components/ContentToggle/ContentToggle.js +12 -0
  14. package/dist/components/ContentToggle/ContentToggle.module.css +1 -0
  15. package/dist/components/ContentToggle/ContentToggle.types.d.ts +16 -0
  16. package/dist/components/ContentToggle/index.d.ts +2 -0
  17. package/dist/components/ContentToggle/index.js +1 -0
  18. package/dist/components/ContentToggle/tests/ContentToggle.stories.d.ts +10 -0
  19. package/dist/components/ContentToggle/tests/ContentToggle.stories.js +75 -0
  20. package/dist/components/ContextMenu/ContextMenu.js +5 -4
  21. package/dist/components/ContextMenu/ContextMenu.types.d.ts +5 -1
  22. package/dist/components/ContextMenu/tests/ContextMenu.stories.d.ts +11 -7
  23. package/dist/components/ContextMenu/tests/ContextMenu.stories.js +18 -1
  24. package/dist/components/DropdownMenu/DropdownMenu.context.d.ts +11 -0
  25. package/dist/components/DropdownMenu/DropdownMenu.context.js +19 -0
  26. package/dist/components/DropdownMenu/DropdownMenu.js +6 -4
  27. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +9 -0
  28. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +1 -0
  29. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.js +22 -1
  30. package/dist/components/Expandable/Expandable.d.ts +4 -0
  31. package/dist/components/Expandable/Expandable.js +85 -0
  32. package/dist/components/Expandable/Expandable.module.css +1 -0
  33. package/dist/components/Expandable/Expandable.types.d.ts +18 -0
  34. package/dist/components/Expandable/Expandable.types.js +1 -0
  35. package/dist/components/Expandable/index.d.ts +2 -0
  36. package/dist/components/Expandable/tests/Expandable.stories.d.ts +12 -0
  37. package/dist/components/Expandable/tests/Expandable.stories.js +82 -0
  38. package/dist/components/IconToggle/IconToggle.d.ts +4 -0
  39. package/dist/components/IconToggle/IconToggle.js +13 -0
  40. package/dist/components/IconToggle/IconToggle.module.css +1 -0
  41. package/dist/components/IconToggle/IconToggle.types.d.ts +5 -0
  42. package/dist/components/IconToggle/IconToggle.types.js +1 -0
  43. package/dist/components/IconToggle/index.d.ts +2 -0
  44. package/dist/components/IconToggle/index.js +1 -0
  45. package/dist/components/IconToggle/tests/IconToggle.stories.d.ts +10 -0
  46. package/dist/components/IconToggle/tests/IconToggle.stories.js +24 -0
  47. package/dist/components/Image/Image.js +14 -0
  48. package/dist/components/Link/Link.d.ts +1 -1
  49. package/dist/components/Link/Link.js +2 -2
  50. package/dist/components/Link/Link.types.d.ts +1 -1
  51. package/dist/components/Link/tests/Link.stories.d.ts +2 -1
  52. package/dist/components/Link/tests/Link.stories.js +7 -1
  53. package/dist/components/MenuItem/MenuItem.js +14 -2
  54. package/dist/components/MenuItem/MenuItem.module.css +1 -1
  55. package/dist/components/Select/Select.module.css +1 -1
  56. package/dist/components/Select/SelectStartContent.js +2 -0
  57. package/dist/components/Tabs/Tabs.module.css +1 -1
  58. package/dist/components/Tabs/TabsItem.js +6 -1
  59. package/dist/components/TextField/TextField.js +2 -0
  60. package/dist/components/TextField/TextField.module.css +1 -1
  61. package/dist/components/_private/Presence/Presence.d.ts +7 -0
  62. package/dist/components/_private/Presence/Presence.js +71 -0
  63. package/dist/components/_private/Presence/Presence.module.css +1 -0
  64. package/dist/components/_private/Presence/Presence.types.d.ts +45 -0
  65. package/dist/components/_private/Presence/Presence.types.js +1 -0
  66. package/dist/components/_private/Presence/index.d.ts +1 -0
  67. package/dist/components/_private/Presence/index.js +1 -0
  68. package/dist/hooks/_internal/useSingletonHotkeys.d.ts +2 -2
  69. package/dist/hooks/_internal/useSingletonHotkeys.js +102 -76
  70. package/dist/hooks/_internal/useSingletonKeyboardMode.js +12 -0
  71. package/dist/hooks/useOnClickOutside.js +19 -11
  72. package/dist/index.d.ts +6 -0
  73. package/dist/index.js +3 -0
  74. package/package.json +3 -3
  75. package/dist/components/_private/Expandable/Expandable.d.ts +0 -4
  76. package/dist/components/_private/Expandable/Expandable.js +0 -58
  77. package/dist/components/_private/Expandable/Expandable.module.css +0 -1
  78. package/dist/components/_private/Expandable/Expandable.types.d.ts +0 -7
  79. package/dist/components/_private/Expandable/index.d.ts +0 -1
  80. /package/dist/components/{_private/Expandable/Expandable.types.js → ContentToggle/ContentToggle.types.js} +0 -0
  81. /package/dist/components/{_private/Expandable → Expandable}/index.js +0 -0
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { classNames } from "@reshaped/utilities";
5
+ import useHandlerRef from "../../hooks/useHandlerRef";
6
+ import useIsomorphicLayoutEffect from "../../hooks/useIsomorphicLayoutEffect";
7
+ import { onNextFrame, checkTransitions } from "../../utilities/animation";
8
+ import s from "./Expandable.module.css";
9
+ const Expandable = (props) => {
10
+ const { children, active, orientation = "vertical", onAfterClose, className, attributes } = props;
11
+ const horizontal = orientation === "horizontal";
12
+ const sizeProperty = horizontal ? "width" : "height";
13
+ // Horizontal expanding is based on the content width, since auto would resolve to the available one
14
+ const autoSize = horizontal ? "max-content" : "auto";
15
+ const rootRef = React.useRef(null);
16
+ const mountedRef = React.useRef(false);
17
+ const animatedActiveRef = React.useRef(active);
18
+ const frameRef = React.useRef(null);
19
+ const onAfterCloseRef = useHandlerRef(onAfterClose);
20
+ const [animatedSize, setAnimatedSize] = React.useState(active ? autoSize : null);
21
+ // Landmark roles have to be labelled, otherwise they pollute the page landmark navigation
22
+ const labelled = Boolean(attributes?.["aria-label"] || attributes?.["aria-labelledby"]);
23
+ const rootClassNames = classNames(s.root, s[`--orientation-${orientation}`], animatedSize !== null && animatedSize !== 0 && s["--visible"], mountedRef.current && animatedSize !== autoSize && s["--animated"], className);
24
+ const handleTransitionEnd = (e) => {
25
+ if (e.propertyName !== sizeProperty || e.target !== rootRef.current)
26
+ return;
27
+ setAnimatedSize(active ? autoSize : null);
28
+ if (!active)
29
+ onAfterCloseRef.current?.();
30
+ };
31
+ // Avoid animations happening if component is active by default
32
+ // onNextFrame lets us wait for the component to render first
33
+ React.useEffect(() => {
34
+ onNextFrame(() => {
35
+ mountedRef.current = true;
36
+ });
37
+ }, []);
38
+ // Animating only on the active prop change keeps React from replaying the animation
39
+ // when it tears down and sets up the effects of the mounted component again
40
+ useIsomorphicLayoutEffect(() => {
41
+ const rootEl = rootRef.current;
42
+ const activeChanged = animatedActiveRef.current !== active;
43
+ animatedActiveRef.current = active;
44
+ if (!rootEl || !activeChanged)
45
+ return;
46
+ if (frameRef.current !== null)
47
+ cancelAnimationFrame(frameRef.current);
48
+ frameRef.current = null;
49
+ const settle = () => {
50
+ rootEl.style[sizeProperty] = "";
51
+ setAnimatedSize(active ? autoSize : null);
52
+ if (!active)
53
+ onAfterCloseRef.current?.();
54
+ };
55
+ if (!mountedRef.current || !checkTransitions()) {
56
+ settle();
57
+ return;
58
+ }
59
+ const measure = () => (horizontal ? rootEl.clientWidth : rootEl.clientHeight);
60
+ const currentSize = measure();
61
+ if (active)
62
+ rootEl.style[sizeProperty] = autoSize;
63
+ const targetSize = active ? measure() : 0;
64
+ if (targetSize === currentSize) {
65
+ settle();
66
+ return;
67
+ }
68
+ rootEl.style[sizeProperty] = `${currentSize}px`;
69
+ frameRef.current = requestAnimationFrame(() => {
70
+ frameRef.current = null;
71
+ setAnimatedSize(targetSize);
72
+ });
73
+ }, [active, horizontal, sizeProperty, autoSize, onAfterCloseRef]);
74
+ return (_jsx("div", { ...attributes, className: rootClassNames, ref: rootRef, style: animatedSize !== null
75
+ ? {
76
+ width: horizontal ? animatedSize : undefined,
77
+ height: horizontal ? undefined : animatedSize,
78
+ overflow: animatedSize === autoSize ? "visible" : undefined,
79
+ }
80
+ : undefined, onTransitionEnd: handleTransitionEnd,
81
+ // oxlint-disable-next-line jsx-a11y/prefer-tag-over-role
82
+ role: labelled ? "region" : undefined, hidden: !active && animatedSize === null, children: horizontal ? _jsx("div", { className: s.content, children: children }) : children }));
83
+ };
84
+ Expandable.displayName = "Expandable";
85
+ export default Expandable;
@@ -0,0 +1 @@
1
+ .root{overflow:hidden;position:relative;opacity:0}.root.--orientation-vertical{height:0}.root.--orientation-horizontal{width:0;min-width:0}.--orientation-horizontal>.content{width:max-content}.root.--visible{opacity:1}.root.--animated{transition:opacity var(--rs-duration-medium) var(--rs-easing-standard)}.root.--animated.--orientation-vertical{transition:height var(--rs-duration-medium) var(--rs-easing-standard),opacity var(--rs-duration-medium) var(--rs-easing-standard)}.root.--animated.--orientation-horizontal{transition:width var(--rs-duration-medium) var(--rs-easing-standard),opacity var(--rs-duration-medium) var(--rs-easing-standard)}
@@ -0,0 +1,18 @@
1
+ import type React from "react";
2
+ import type { ClassName } from "@reshaped/utilities";
3
+ import type { Attributes } from "../../types/global";
4
+ export type Orientation = "vertical" | "horizontal";
5
+ export type Props = {
6
+ /** Node for inserting the content */
7
+ children?: React.ReactNode;
8
+ /** Control the visibility of the content */
9
+ active?: boolean;
10
+ /** Axis the content expands along */
11
+ orientation?: Orientation;
12
+ /** Callback after the content close transition is complete */
13
+ onAfterClose?: () => void;
14
+ /** Additional classname for the root element */
15
+ className?: ClassName;
16
+ /** Additional attributes for the root element */
17
+ attributes?: Attributes<"div">;
18
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { default } from "./Expandable";
2
+ export type { Props as ExpandableProps } from "./Expandable.types";
@@ -0,0 +1,12 @@
1
+ import { StoryObj } from "@storybook/react-vite";
2
+ import React from "react";
3
+ import { Mock } from "storybook/test";
4
+ declare const _default: {
5
+ title: string;
6
+ component: React.FC<import("../../../components/Expandable").ExpandableProps>;
7
+ };
8
+ export default _default;
9
+ export declare const base: StoryObj;
10
+ export declare const onAfterClose: StoryObj<{
11
+ handleAfterClose: Mock;
12
+ }>;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.onAfterClose = exports.base = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const test_1 = require("storybook/test");
9
+ const Button_1 = __importDefault(require("../../../components/Button"));
10
+ const Expandable_1 = __importDefault(require("../../../components/Expandable"));
11
+ const View_1 = __importDefault(require("../../../components/View"));
12
+ const animation_1 = require("../../../utilities/animation");
13
+ const storybook_1 = require("../../../utilities/storybook");
14
+ exports.default = {
15
+ title: "Utility components/Expandable",
16
+ component: Expandable_1.default,
17
+ };
18
+ exports.base = {
19
+ name: "orientation",
20
+ render: () => {
21
+ const [active, setActive] = react_1.default.useState(false);
22
+ const [activeHorizontal, setActiveHorizontal] = react_1.default.useState(false);
23
+ return (<storybook_1.Example>
24
+ <storybook_1.Example.Item title="orientation: vertical">
25
+ <View_1.default align="start">
26
+ <Button_1.default onClick={() => setActive((prev) => !prev)}>Toggle</Button_1.default>
27
+ </View_1.default>
28
+ <Expandable_1.default active={active} attributes={{ "aria-label": "Content" }}>
29
+ <View_1.default paddingTop={2}>
30
+ <storybook_1.Placeholder />
31
+ </View_1.default>
32
+ </Expandable_1.default>
33
+ </storybook_1.Example.Item>
34
+
35
+ <storybook_1.Example.Item title="orientation: horizontal">
36
+ <View_1.default gap={2} align="start">
37
+ <Button_1.default onClick={() => setActiveHorizontal((prev) => !prev)}>Toggle</Button_1.default>
38
+ <View_1.default direction="row" gap={0} align="center">
39
+ <Expandable_1.default active={activeHorizontal} orientation="horizontal" attributes={{ "aria-label": "Content" }}>
40
+ <View_1.default width="200px" paddingEnd={2}>
41
+ <storybook_1.Placeholder>Horizontal</storybook_1.Placeholder>
42
+ </View_1.default>
43
+ </Expandable_1.default>
44
+ <storybook_1.Placeholder>Sibling</storybook_1.Placeholder>
45
+ </View_1.default>
46
+ </View_1.default>
47
+ </storybook_1.Example.Item>
48
+ </storybook_1.Example>);
49
+ },
50
+ };
51
+ exports.onAfterClose = {
52
+ name: "onAfterClose",
53
+ args: {
54
+ handleAfterClose: (0, test_1.fn)(),
55
+ },
56
+ render: (args) => {
57
+ const [active, setActive] = react_1.default.useState(true);
58
+ return (<View_1.default gap={2} align="start">
59
+ <Button_1.default onClick={() => setActive((prev) => !prev)}>Toggle</Button_1.default>
60
+ <Expandable_1.default active={active} onAfterClose={args.handleAfterClose} attributes={{ "aria-label": "Content" }}>
61
+ <storybook_1.Placeholder />
62
+ </Expandable_1.default>
63
+ </View_1.default>);
64
+ },
65
+ play: async ({ canvas, args }) => {
66
+ const { handleAfterClose } = args;
67
+ const trigger = canvas.getByRole("button", { name: "Toggle" });
68
+ const content = canvas.getByRole("region", { hidden: true });
69
+ // Transitions are locked for a frame while the color mode is applied
70
+ await (0, test_1.waitFor)(() => (0, test_1.expect)((0, animation_1.checkTransitions)()).toBe(true));
71
+ (0, test_1.expect)(handleAfterClose).not.toBeCalled();
72
+ await test_1.userEvent.click(trigger);
73
+ // Resolves only once the closing transition is over, not when active changes
74
+ (0, test_1.expect)(handleAfterClose).not.toBeCalled();
75
+ (0, test_1.expect)(content).toBeVisible();
76
+ await (0, test_1.waitFor)(() => (0, test_1.expect)(handleAfterClose).toBeCalledTimes(1));
77
+ (0, test_1.expect)(content).not.toBeVisible();
78
+ await test_1.userEvent.click(trigger);
79
+ await (0, test_1.waitFor)(() => (0, test_1.expect)(content).toBeVisible());
80
+ (0, test_1.expect)(handleAfterClose).toBeCalledTimes(1);
81
+ },
82
+ };
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type * as T from "./IconToggle.types";
3
+ declare const IconToggle: React.FC<T.Props>;
4
+ export default IconToggle;
@@ -0,0 +1,13 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { classNames } from "@reshaped/utilities";
4
+ import Presence from "../../components/_private/Presence";
5
+ import Icon from "../../components/Icon";
6
+ import s from "./IconToggle.module.css";
7
+ const IconToggle = (props) => {
8
+ const { id, className, attributes, ...iconProps } = props;
9
+ const rootClassName = classNames(s.root, className);
10
+ return (_jsx(Presence, { itemKey: id, className: rootClassName, attributes: attributes, itemClassName: s.item, enterClassName: s["--enter"], exitClassName: s["--exit"], children: _jsx(Icon, { ...iconProps }) }));
11
+ };
12
+ IconToggle.displayName = "IconToggle";
13
+ export default IconToggle;
@@ -0,0 +1 @@
1
+ .root{justify-items:center;align-items:center}.item{display:flex}.--enter{animation:rs-icon-toggle-enter var(--rs-duration-medium) var(--rs-easing-standard)}.--exit{animation:rs-icon-toggle-exit var(--rs-duration-medium) var(--rs-easing-standard) forwards}@keyframes rs-icon-toggle-enter{0%{opacity:0;filter:blur(2px);transform:scale(.25)}}@keyframes rs-icon-toggle-exit{to{opacity:0;filter:blur(2px);transform:scale(.25)}}
@@ -0,0 +1,5 @@
1
+ import type { IconProps } from "../../components/Icon";
2
+ export type Props = IconProps & {
3
+ /** Identity of the currently rendered icon, animating the change whenever it changes */
4
+ id?: string | number | boolean;
5
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { default } from "./IconToggle";
2
+ export type { Props as IconToggleProps } from "./IconToggle.types";
@@ -0,0 +1 @@
1
+ export { default } from "./IconToggle";
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ declare const _default: {
3
+ title: string;
4
+ component: React.FC<import("../../../components/IconToggle").IconToggleProps>;
5
+ };
6
+ export default _default;
7
+ export declare const svg: {
8
+ name: string;
9
+ render: () => React.JSX.Element;
10
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.svg = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const Actionable_1 = __importDefault(require("../../../components/Actionable"));
9
+ const IconToggle_1 = __importDefault(require("../../../components/IconToggle"));
10
+ const Checkmark_1 = __importDefault(require("../../../icons/Checkmark"));
11
+ const Close_1 = __importDefault(require("../../../icons/Close"));
12
+ exports.default = {
13
+ title: "Utility components/IconToggle",
14
+ component: IconToggle_1.default,
15
+ };
16
+ exports.svg = {
17
+ name: "svg",
18
+ render: () => {
19
+ const [active, setActive] = react_1.default.useState(false);
20
+ return (<Actionable_1.default onClick={() => setActive((prev) => !prev)} attributes={{ style: { padding: 16 } }}>
21
+ <IconToggle_1.default svg={active ? <Checkmark_1.default /> : <Close_1.default />} id={active} size={5} color={active ? "positive" : "neutral"}/>
22
+ </Actionable_1.default>);
23
+ },
24
+ };
@@ -7,6 +7,8 @@ import s from "./Image.module.css";
7
7
  const Image = (props) => {
8
8
  const { src, alt, width, maxWidth, height, aspectRatio, onLoad, onError, fallback, outline, displayMode = "cover", borderRadius, className, attributes, imageAttributes: passedImageAttributes, renderImage, } = props;
9
9
  const [status, setStatus] = React.useState("loading");
10
+ // Image attributes are merged on top of the root attributes when rendering the image element
11
+ const passedImageRef = passedImageAttributes?.ref ?? attributes?.ref;
10
12
  const mixinStyles = resolveMixin({ radius: borderRadius, width, height, maxWidth, aspectRatio });
11
13
  const rootClassNames = classNames(s.root, mixinStyles.classNames, outline && s["--outline"], className);
12
14
  const imageClassNames = classNames([
@@ -28,6 +30,17 @@ const Image = (props) => {
28
30
  onError?.(e);
29
31
  passedImageAttributes?.onError?.(e);
30
32
  };
33
+ const handleImageRef = React.useCallback((el) => {
34
+ if (typeof passedImageRef === "function")
35
+ passedImageRef(el);
36
+ else if (passedImageRef)
37
+ passedImageRef.current = el;
38
+ // Server rendered images start loading before React hydrates,
39
+ // so their error event can fire before the error handler gets attached
40
+ if (!el || !src || !el.complete || el.naturalWidth > 0)
41
+ return;
42
+ el.decode().catch(() => setStatus("error"));
43
+ }, [passedImageRef, src]);
31
44
  React.useEffect(() => {
32
45
  setStatus("loading");
33
46
  }, [src]);
@@ -54,6 +67,7 @@ const Image = (props) => {
54
67
  role: alt ? undefined : "presentation",
55
68
  onLoad: handleLoad,
56
69
  onError: handleError,
70
+ ref: handleImageRef,
57
71
  className: outline ? imageClassNames : classNames([imageClassNames, rootClassNames]),
58
72
  style,
59
73
  };
@@ -1,5 +1,5 @@
1
1
  import { type ActionableRef } from "../../components/Actionable";
2
- declare const Link: import("react").ForwardRefExoticComponent<Pick<import("../../components/Actionable").ActionableProps, "attributes" | "children" | "className" | "disabled" | "href" | "onClick" | "render" | "stopPropagation" | "type"> & {
2
+ declare const Link: import("react").ForwardRefExoticComponent<Pick<import("../../components/Actionable").ActionableProps, "attributes" | "children" | "className" | "disabled" | "fullWidth" | "href" | "onClick" | "render" | "stopPropagation" | "type"> & {
3
3
  icon?: import("../../components/Icon").IconProps["svg"];
4
4
  color?: "inherit" | "critical" | "primary" | "positive" | "warning";
5
5
  variant?: "plain" | "underline";
@@ -5,9 +5,9 @@ import Actionable from "../../components/Actionable";
5
5
  import Icon from "../../components/Icon";
6
6
  import s from "./Link.module.css";
7
7
  const Link = forwardRef((props, ref) => {
8
- const { icon, disabled, href, color = "primary", variant = "underline", className, children, attributes, type, onClick, stopPropagation, render, } = props;
8
+ const { icon, disabled, href, color = "primary", variant = "underline", className, children, attributes, type, onClick, stopPropagation, render, fullWidth, } = props;
9
9
  const rootClassNames = classNames(s.root, className, disabled && s["--disabled"], variant && s[`--variant-${variant}`], color && s[`--color-${color}`], icon && s["--with-icon"]);
10
- return (_jsxs(Actionable, { href: href, disabled: disabled, className: rootClassNames, attributes: attributes, type: type, onClick: onClick, ref: ref, stopPropagation: stopPropagation, render: render, children: [icon && _jsx(Icon, { svg: icon }), children] }));
10
+ return (_jsxs(Actionable, { href: href, disabled: disabled, fullWidth: fullWidth, className: rootClassNames, attributes: attributes, type: type, onClick: onClick, ref: ref, stopPropagation: stopPropagation, render: render, children: [icon && _jsx(Icon, { svg: icon }), children] }));
11
11
  });
12
12
  Link.displayName = "Link";
13
13
  export default Link;
@@ -1,6 +1,6 @@
1
1
  import type { ActionableProps } from "../../components/Actionable";
2
2
  import type { IconProps } from "../../components/Icon";
3
- export type Props = Pick<ActionableProps, "attributes" | "className" | "disabled" | "children" | "href" | "onClick" | "type" | "stopPropagation" | "render"> & {
3
+ export type Props = Pick<ActionableProps, "attributes" | "className" | "disabled" | "children" | "href" | "onClick" | "type" | "stopPropagation" | "render" | "fullWidth"> & {
4
4
  /** Icon at the start position */
5
5
  icon?: IconProps["svg"];
6
6
  /** Link color, based on the color tokens
@@ -2,7 +2,7 @@ import { StoryObj } from "@storybook/react-vite";
2
2
  import { fn } from "storybook/test";
3
3
  declare const _default: {
4
4
  title: string;
5
- component: import("react").ForwardRefExoticComponent<Pick<import("../../Actionable").ActionableProps, "attributes" | "children" | "className" | "disabled" | "href" | "onClick" | "render" | "stopPropagation" | "type"> & {
5
+ component: import("react").ForwardRefExoticComponent<Pick<import("../../Actionable").ActionableProps, "attributes" | "children" | "className" | "disabled" | "fullWidth" | "href" | "onClick" | "render" | "stopPropagation" | "type"> & {
6
6
  icon?: import("../../Icon").IconProps["svg"];
7
7
  color?: "inherit" | "critical" | "primary" | "positive" | "warning";
8
8
  variant?: "plain" | "underline";
@@ -35,6 +35,7 @@ export declare const hrefOnClick: StoryObj<{
35
35
  }>;
36
36
  export declare const disabled: StoryObj;
37
37
  export declare const render: StoryObj;
38
+ export declare const fullWidth: StoryObj;
38
39
  export declare const className: StoryObj;
39
40
  export declare const testMultilineInText: {
40
41
  name: string;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.testMultilineInText = exports.className = exports.render = exports.disabled = exports.hrefOnClick = exports.onClick = exports.href = exports.icon = exports.color = exports.variant = void 0;
6
+ exports.testMultilineInText = exports.className = exports.fullWidth = exports.render = exports.disabled = exports.hrefOnClick = exports.onClick = exports.href = exports.icon = exports.color = exports.variant = void 0;
7
7
  const test_1 = require("storybook/test");
8
8
  const Link_1 = __importDefault(require("../../../components/Link"));
9
9
  const Text_1 = __importDefault(require("../../../components/Text"));
@@ -147,6 +147,12 @@ exports.render = {
147
147
  (0, test_1.expect)(el.tagName).toBe("SECTION");
148
148
  },
149
149
  };
150
+ exports.fullWidth = {
151
+ name: "fullWidth",
152
+ render: () => (<Link_1.default fullWidth onClick={() => { }}>
153
+ Trigger
154
+ </Link_1.default>),
155
+ };
150
156
  exports.className = {
151
157
  name: "className, attributes",
152
158
  render: () => (<div data-testid="root">
@@ -9,8 +9,20 @@ import s from "./MenuItem.module.css";
9
9
  const MenuItem = forwardRef((props, ref) => {
10
10
  const { icon, startSlot, endSlot, children, color = "primary", selected, highlighted, disabled, onClick, href, size = "medium", stopPropagation, as, render, className, attributes, } = props;
11
11
  const rootClassNames = classNames(s.root, className, responsiveClassNames(s, "--size", size), color && s[`--color-${color}`], selected && s["--selected"], disabled && s["--disabled"], highlighted && s["--highlighted"]);
12
- const gapSize = responsivePropDependency(size, (size) => (size === "large" ? 3 : 2));
13
- const iconSize = responsivePropDependency(size, (size) => (size === "large" ? 5 : 4));
12
+ const gapSize = responsivePropDependency(size, (size) => {
13
+ if (size === "large")
14
+ return 3;
15
+ if (size === "small")
16
+ return 1.5;
17
+ return 2;
18
+ });
19
+ const iconSize = responsivePropDependency(size, (size) => {
20
+ if (size === "large")
21
+ return 5;
22
+ if (size === "small")
23
+ return 3.5;
24
+ return 4;
25
+ });
14
26
  return (_jsx(Actionable, { disabled: disabled, className: rootClassNames, attributes: { ...attributes, "data-rs-aligner-target": true }, onClick: onClick, href: href, ref: ref, as: as, stopPropagation: stopPropagation, render: render, children: _jsxs(View, { direction: "row", gap: gapSize, align: "center", children: [icon && _jsx(Icon, { svg: icon, className: s.icon, size: iconSize }), !icon && startSlot, children && (_jsx(View.Item, { grow: true, className: s.content, children: children })), endSlot] }) }));
15
27
  });
16
28
  MenuItem.displayName = "MenuItem";
@@ -1 +1 @@
1
- .root,button.root{display:block;transition:background-color var(--rs-duration-fast) var(--rs-easing-standard);padding:var(--rs-p-v) var(--rs-p-h);font-family:var(--rs-font-family-body);font-weight:var(--rs-font-weight-medium);color:var(--rs-menu-item-color);background-color:var(--rs-menu-item-bg-color);border-radius:var(--rs-radius-medium)}.root[role=option],button.root[role=option]{transition:none}[data-rs-keyboard] .root[role=option]:focus,[data-rs-keyboard] button.root[role=option]:focus{outline:none;background-color:var(--rs-color-background-neutral-highlighted-faded)}.root.--highlighted,.root.--highlighted .content,.root.--highlighted .icon,button.root.--highlighted,button.root.--highlighted .content,button.root.--highlighted .icon{transition-duration:var(--rs-duration-rapid)}@media (hover:hover) and (pointer:fine){.root:hover,.root:hover .content,.root:hover .icon,button.root:hover,button.root:hover .content,button.root:hover .icon{transition-duration:var(--rs-duration-rapid)}}.icon{color:var(--rs-menu-item-icon-color,inherit)}.content,.icon{transition:var(--rs-duration-rapid) var(--rs-easing-standard);transition-property:color}.--size-small{--rs-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-p-h:var(--rs-unit-x1-5);--rs-menu-item-radius:var(--rs-radius-small);font-size:var(--rs-font-size-caption-1);line-height:var(--rs-line-height-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1)}.--size-medium{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2);letter-spacing:var(--rs-letter-spacing-body-2)}.--size-large{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-1);line-height:var(--rs-line-height-body-1);letter-spacing:var(--rs-letter-spacing-body-1)}.--color-neutral{--rs-menu-item-icon-color:var(--rs-color-foreground-neutral-faded)}.--color-neutral.--highlighted,.--color-neutral.--selected,.--color-neutral[data-rs-focus]{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded)}@media (hover:hover) and (pointer:fine){.--color-neutral:hover{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded)}}.--color-critical{--rs-menu-item-icon-color:var(--rs-color-foreground-neutral-faded)}.--color-critical.--highlighted,.--color-critical.--selected,.--color-critical[data-rs-focus]{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded);--rs-menu-item-color:var(--rs-color-foreground-critical);--rs-menu-item-icon-color:var(--rs-color-foreground-critical)}@media (hover:hover) and (pointer:fine){.--color-critical:hover{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded);--rs-menu-item-color:var(--rs-color-foreground-critical);--rs-menu-item-icon-color:var(--rs-color-foreground-critical)}}.--color-primary{--rs-menu-item-icon-color:var(--rs-color-foreground-neutral-faded)}.--color-primary.--highlighted,.--color-primary[data-rs-focus]{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded)}@media (hover:hover) and (pointer:fine){.--color-primary:hover{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded)}}.--color-primary.--selected,.--color-primary.--selected:hover{--rs-menu-item-bg-color:var(--rs-color-background-primary-highlighted-faded);--rs-menu-item-color:var(--rs-color-foreground-primary);--rs-menu-item-icon-color:var(--rs-color-foreground-primary)}.--selected,.--selected:hover{cursor:default}.--disabled,.--disabled:hover{--rs-menu-item-color:var(--rs-color-foreground-disabled);--rs-menu-item-bg-color:none;--rs-menu-item-icon-color:var(--rs-color-foreground-disabled)}button.root{width:100%}.aligner button.root{box-sizing:initial}@media (--rs-viewport-m ){.--size-small--m{--rs-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-p-h:var(--rs-unit-x1-5);--rs-menu-item-radius:var(--rs-radius-small);font-size:var(--rs-font-size-caption-1);line-height:var(--rs-line-height-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1)}.--size-medium--m{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2);letter-spacing:var(--rs-letter-spacing-body-2)}.--size-large--m{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-1);line-height:var(--rs-line-height-body-1);letter-spacing:var(--rs-letter-spacing-body-1)}}@media (--rs-viewport-l ){.--size-small--l{--rs-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-p-h:var(--rs-unit-x1-5);--rs-menu-item-radius:var(--rs-radius-small);font-size:var(--rs-font-size-caption-1);line-height:var(--rs-line-height-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1)}.--size-medium--l{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2);letter-spacing:var(--rs-letter-spacing-body-2)}.--size-large--l{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-1);line-height:var(--rs-line-height-body-1);letter-spacing:var(--rs-letter-spacing-body-1)}}@media (--rs-viewport-xl ){.--size-small--xl{--rs-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-p-h:var(--rs-unit-x1-5);--rs-menu-item-radius:var(--rs-radius-small);font-size:var(--rs-font-size-caption-1);line-height:var(--rs-line-height-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1)}.--size-medium--xl{--rs-p-v:var(--rs-unit-x2);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2);letter-spacing:var(--rs-letter-spacing-body-2)}.--size-large--xl{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x4);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-1);line-height:var(--rs-line-height-body-1);letter-spacing:var(--rs-letter-spacing-body-1)}}
1
+ .root,button.root{display:block;transition:background-color var(--rs-duration-fast) var(--rs-easing-standard);padding:var(--rs-p-v) var(--rs-p-h);font-family:var(--rs-font-family-body);font-weight:var(--rs-font-weight-medium);color:var(--rs-menu-item-color);background-color:var(--rs-menu-item-bg-color);border-radius:var(--rs-radius-medium)}.root[role=option],button.root[role=option]{transition:none}[data-rs-keyboard] .root[role=option]:focus,[data-rs-keyboard] button.root[role=option]:focus{outline:none;background-color:var(--rs-color-background-neutral-highlighted-faded)}.root.--highlighted,.root.--highlighted .content,.root.--highlighted .icon,button.root.--highlighted,button.root.--highlighted .content,button.root.--highlighted .icon{transition-duration:var(--rs-duration-rapid)}@media (hover:hover) and (pointer:fine){.root:hover,.root:hover .content,.root:hover .icon,button.root:hover,button.root:hover .content,button.root:hover .icon{transition-duration:var(--rs-duration-rapid)}}.icon{color:var(--rs-menu-item-icon-color,inherit)}.content,.icon{transition:var(--rs-duration-rapid) var(--rs-easing-standard);transition-property:color}.--size-small{--rs-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small);font-size:var(--rs-font-size-caption-1);line-height:var(--rs-line-height-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1)}.--size-medium{--rs-p-v:var(--rs-unit-x2);--rs-p-h:calc(var(--rs-unit-x2) + var(--rs-unit-x0-5));--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2);letter-spacing:var(--rs-letter-spacing-body-2)}.--size-large{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-1);line-height:var(--rs-line-height-body-1);letter-spacing:var(--rs-letter-spacing-body-1)}.--color-neutral{--rs-menu-item-icon-color:var(--rs-color-foreground-neutral-faded)}.--color-neutral.--highlighted,.--color-neutral.--selected,.--color-neutral[data-rs-focus]{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded)}@media (hover:hover) and (pointer:fine){.--color-neutral:hover{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded)}}.--color-critical{--rs-menu-item-icon-color:var(--rs-color-foreground-neutral-faded)}.--color-critical.--highlighted,.--color-critical.--selected,.--color-critical[data-rs-focus]{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded);--rs-menu-item-color:var(--rs-color-foreground-critical);--rs-menu-item-icon-color:var(--rs-color-foreground-critical)}@media (hover:hover) and (pointer:fine){.--color-critical:hover{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded);--rs-menu-item-color:var(--rs-color-foreground-critical);--rs-menu-item-icon-color:var(--rs-color-foreground-critical)}}.--color-primary{--rs-menu-item-icon-color:var(--rs-color-foreground-neutral-faded)}.--color-primary.--highlighted,.--color-primary[data-rs-focus]{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded)}@media (hover:hover) and (pointer:fine){.--color-primary:hover{--rs-menu-item-bg-color:var(--rs-color-background-neutral-highlighted-faded)}}.--color-primary.--selected,.--color-primary.--selected:hover{--rs-menu-item-bg-color:var(--rs-color-background-primary-highlighted-faded);--rs-menu-item-color:var(--rs-color-foreground-primary);--rs-menu-item-icon-color:var(--rs-color-foreground-primary)}.--selected,.--selected:hover{cursor:default}.--disabled,.--disabled:hover{--rs-menu-item-color:var(--rs-color-foreground-disabled);--rs-menu-item-bg-color:none;--rs-menu-item-icon-color:var(--rs-color-foreground-disabled)}button.root{width:100%}.aligner button.root{box-sizing:initial}@media (--rs-viewport-m ){.--size-small--m{--rs-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small);font-size:var(--rs-font-size-caption-1);line-height:var(--rs-line-height-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1)}.--size-medium--m{--rs-p-v:var(--rs-unit-x2);--rs-p-h:calc(var(--rs-unit-x2) + var(--rs-unit-x0-5));--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2);letter-spacing:var(--rs-letter-spacing-body-2)}.--size-large--m{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-1);line-height:var(--rs-line-height-body-1);letter-spacing:var(--rs-letter-spacing-body-1)}}@media (--rs-viewport-l ){.--size-small--l{--rs-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small);font-size:var(--rs-font-size-caption-1);line-height:var(--rs-line-height-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1)}.--size-medium--l{--rs-p-v:var(--rs-unit-x2);--rs-p-h:calc(var(--rs-unit-x2) + var(--rs-unit-x0-5));--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2);letter-spacing:var(--rs-letter-spacing-body-2)}.--size-large--l{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-1);line-height:var(--rs-line-height-body-1);letter-spacing:var(--rs-letter-spacing-body-1)}}@media (--rs-viewport-xl ){.--size-small--xl{--rs-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-p-h:var(--rs-unit-x2);--rs-menu-item-radius:var(--rs-radius-small);font-size:var(--rs-font-size-caption-1);line-height:var(--rs-line-height-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1)}.--size-medium--xl{--rs-p-v:var(--rs-unit-x2);--rs-p-h:calc(var(--rs-unit-x2) + var(--rs-unit-x0-5));--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2);letter-spacing:var(--rs-letter-spacing-body-2)}.--size-large--xl{--rs-p-v:var(--rs-unit-x3);--rs-p-h:var(--rs-unit-x3);--rs-menu-item-radius:var(--rs-radius-medium);font-size:var(--rs-font-size-body-1);line-height:var(--rs-line-height-body-1);letter-spacing:var(--rs-letter-spacing-body-1)}}
@@ -1 +1 @@
1
- .root{--rs-p-h:var(--rs-select-p-h);--rs-p-v:0px;--rs-select-focus-border-color:var(--rs-color-border-primary);display:flex;align-items:center;position:relative;z-index:0;background:var(--rs-color-background-elevation-base);border-radius:var(--rs-select-radius);min-height:var(--rs-select-min-height)}[data-rs-keyboard] .root:focus-within{box-shadow:var(--rs-outline-shadow)}.input{display:flex;align-items:center;border:0;outline:none;position:relative;background:none;z-index:1;flex-grow:1;width:100%;box-sizing:border-box;-webkit-appearance:none;appearance:none;cursor:pointer;color:var(--rs-color-foreground-neutral);font-weight:var(--rs-font-weight-regular);font-family:var(--rs-font-family-body);font-size:var(--rs-select-font-size);line-height:var(--rs-select-line-height);letter-spacing:var(--rs-select-letter-spacing);min-height:calc(var(--rs-select-min-height) - var(--rs-unit-x2));padding-block:var(--rs-select-p-v);padding-inline-end:calc(var(--rs-select-chevron-size) + var(--rs-select-p-h) + var(--rs-select-gap));padding-inline-start:var(--rs-select-p-h);text-overflow:ellipsis}.input::-ms-expand{display:none}.input.input--placeholder{color:var(--rs-color-foreground-disabled)}.slot{position:relative;z-index:5;display:flex;align-items:center;flex-shrink:0;padding-inline-start:var(--rs-select-p-h);margin-inline-start:calc(var(--rs-select-icon-align) * -1)}.input .slot{padding-inline-start:0;padding-inline-end:var(--rs-select-gap)}.arrow{color:var(--rs-color-foreground-neutral-faded);display:flex;inset-block-start:50%;inset-inline-end:calc(var(--rs-select-p-h) - var(--rs-select-icon-align));pointer-events:none;position:absolute;transform:translateY(-50%);z-index:5}.group{--rs-select-group-padding:calc(var(--rs-unit-x1) - 1px);margin-inline:calc((var(--rs-select-group-padding) * -1));padding-inline:var(--rs-select-group-padding)}.group:not(:first-child){border-top:1px solid var(--rs-color-border-neutral-faded);margin-top:var(--rs-select-group-padding);padding-top:var(--rs-select-group-padding)}.group:not(:first-child) .group-label{padding-top:var(--rs-unit-x3)}.group-label{padding:var(--rs-unit-x2) var(--rs-unit-x3) var(--rs-unit-x1)}.--size-small{--rs-select-gap:var(--rs-unit-x1-5);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-small);--rs-select-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-select-p-h:var(--rs-unit-x2);--rs-select-font-size:var(--rs-font-size-caption-1);--rs-select-line-height:var(--rs-line-height-caption-1);--rs-select-letter-spacing:var(--rs-letter-spacing-caption-1);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-select-p-v) * 2)}.--size-medium{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x2);--rs-select-p-h:var(--rs-unit-x3);--rs-select-font-size:var(--rs-font-size-body-2);--rs-select-line-height:var(--rs-line-height-body-2);--rs-select-letter-spacing:var(--rs-letter-spacing-body-2);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x2) * 2)}.--size-large{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x3);--rs-select-p-h:var(--rs-unit-x4);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x3) * 2)}.--size-xlarge{--rs-select-gap:var(--rs-unit-x3);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x4);--rs-select-p-h:var(--rs-unit-x5);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x4) * 2)}.root.--variant-faded{background:var(--rs-color-background-neutral-faded)}.root.--variant-ghost{background:transparent}.root.--variant-headless{--rs-select-focus-border-color:transparent;background:transparent;box-shadow:none!important}.root.--status-error:not(.--variant-headless){box-shadow:0 0 0 var(--rs-outline-width) var(--rs-color-border-critical) inset}.root.--disabled{background:var(--rs-color-background-disabled-faded)}.root.--disabled .arrow,.root.--disabled .input{cursor:not-allowed;color:var(--rs-color-foreground-disabled)}@media (--rs-viewport-s ) and (hover:none){.input{font-size:var(--rs-font-size-body-1)!important}}@media (--rs-viewport-m ){.--size-small--m{--rs-select-gap:var(--rs-unit-x1-5);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-small);--rs-select-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-select-p-h:var(--rs-unit-x2);--rs-select-font-size:var(--rs-font-size-caption-1);--rs-select-line-height:var(--rs-line-height-caption-1);--rs-select-letter-spacing:var(--rs-letter-spacing-caption-1);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-select-p-v) * 2)}.--size-medium--m{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x2);--rs-select-p-h:var(--rs-unit-x3);--rs-select-font-size:var(--rs-font-size-body-2);--rs-select-line-height:var(--rs-line-height-body-2);--rs-select-letter-spacing:var(--rs-letter-spacing-body-2);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x2) * 2)}.--size-large--m{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x3);--rs-select-p-h:var(--rs-unit-x4);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x3) * 2)}.--size-xlarge--m{--rs-select-gap:var(--rs-unit-x3);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x4);--rs-select-p-h:var(--rs-unit-x5);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x4) * 2)}}@media (--rs-viewport-l ){.--size-small--l{--rs-select-gap:var(--rs-unit-x1-5);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-small);--rs-select-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-select-p-h:var(--rs-unit-x2);--rs-select-font-size:var(--rs-font-size-caption-1);--rs-select-line-height:var(--rs-line-height-caption-1);--rs-select-letter-spacing:var(--rs-letter-spacing-caption-1);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-select-p-v) * 2)}.--size-medium--l{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x2);--rs-select-p-h:var(--rs-unit-x3);--rs-select-font-size:var(--rs-font-size-body-2);--rs-select-line-height:var(--rs-line-height-body-2);--rs-select-letter-spacing:var(--rs-letter-spacing-body-2);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x2) * 2)}.--size-large--l{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x3);--rs-select-p-h:var(--rs-unit-x4);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x3) * 2)}.--size-xlarge--l{--rs-select-gap:var(--rs-unit-x3);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x4);--rs-select-p-h:var(--rs-unit-x5);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x4) * 2)}}@media (--rs-viewport-xl ){.--size-small--xl{--rs-select-gap:var(--rs-unit-x1-5);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-small);--rs-select-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-select-p-h:var(--rs-unit-x2);--rs-select-font-size:var(--rs-font-size-caption-1);--rs-select-line-height:var(--rs-line-height-caption-1);--rs-select-letter-spacing:var(--rs-letter-spacing-caption-1);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-select-p-v) * 2)}.--size-medium--xl{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x2);--rs-select-p-h:var(--rs-unit-x3);--rs-select-font-size:var(--rs-font-size-body-2);--rs-select-line-height:var(--rs-line-height-body-2);--rs-select-letter-spacing:var(--rs-letter-spacing-body-2);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x2) * 2)}.--size-large--xl{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x3);--rs-select-p-h:var(--rs-unit-x4);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x3) * 2)}.--size-xlarge--xl{--rs-select-gap:var(--rs-unit-x3);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x4);--rs-select-p-h:var(--rs-unit-x5);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x4) * 2)}}
1
+ .root{--rs-p-h:var(--rs-select-p-h);--rs-p-v:0px;--rs-select-focus-border-color:var(--rs-color-border-primary);display:flex;align-items:center;position:relative;z-index:0;background:var(--rs-color-background-elevation-base);border-radius:var(--rs-select-radius);min-height:var(--rs-select-min-height)}[data-rs-keyboard] .root:focus-within{box-shadow:var(--rs-outline-shadow)}.input{display:flex;align-items:center;border:0;outline:none;position:relative;background:none;z-index:1;flex-grow:1;width:100%;box-sizing:border-box;-webkit-appearance:none;appearance:none;cursor:pointer;color:var(--rs-color-foreground-neutral);font-weight:var(--rs-font-weight-regular);font-family:var(--rs-font-family-body);font-size:var(--rs-select-font-size);line-height:var(--rs-select-line-height);letter-spacing:var(--rs-select-letter-spacing);min-height:calc(var(--rs-select-min-height) - var(--rs-unit-x2));padding-block:var(--rs-select-p-v);padding-inline-end:calc(var(--rs-select-chevron-size) + var(--rs-select-p-h) + var(--rs-select-gap));padding-inline-start:var(--rs-select-p-h);text-overflow:ellipsis}.input::-ms-expand{display:none}.input.input--placeholder{color:var(--rs-color-foreground-disabled)}.slot{position:relative;z-index:5;display:flex;align-items:center;flex-shrink:0;padding-inline-start:var(--rs-select-p-h);margin-inline-start:calc(var(--rs-select-icon-align) * -1)}.input .slot{padding-inline-start:0;padding-inline-end:var(--rs-select-gap)}.arrow{color:var(--rs-color-foreground-neutral-faded);display:flex;inset-block-start:50%;inset-inline-end:calc(var(--rs-select-p-h) - var(--rs-select-icon-align));pointer-events:none;position:absolute;transform:translateY(-50%);z-index:5}.group{--rs-select-group-padding:calc(var(--rs-unit-x1) - 1px);margin-inline:calc((var(--rs-select-group-padding) * -1));padding-inline:var(--rs-select-group-padding)}.group:not(:first-child){border-top:1px solid var(--rs-color-border-neutral-faded);margin-top:var(--rs-select-group-padding);padding-top:var(--rs-select-group-padding)}.group:not(:first-child) .group-label{padding-top:var(--rs-unit-x3)}.group-label{padding:var(--rs-unit-x2) var(--rs-unit-x3) var(--rs-unit-x1)}.--size-small{--rs-select-gap:var(--rs-unit-x1);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-small);--rs-select-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-select-p-h:var(--rs-unit-x2);--rs-select-font-size:var(--rs-font-size-caption-1);--rs-select-line-height:var(--rs-line-height-caption-1);--rs-select-letter-spacing:var(--rs-letter-spacing-caption-1);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-select-p-v) * 2)}.--size-medium{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x2);--rs-select-p-h:var(--rs-unit-x3);--rs-select-font-size:var(--rs-font-size-body-2);--rs-select-line-height:var(--rs-line-height-body-2);--rs-select-letter-spacing:var(--rs-letter-spacing-body-2);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x2) * 2)}.--size-large{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x3);--rs-select-p-h:var(--rs-unit-x4);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x3) * 2)}.--size-xlarge{--rs-select-gap:var(--rs-unit-x3);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x4);--rs-select-p-h:var(--rs-unit-x5);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x4) * 2)}.root.--variant-faded{background:var(--rs-color-background-neutral-faded)}.root.--variant-ghost{background:transparent}.root.--variant-headless{--rs-select-focus-border-color:transparent;background:transparent;box-shadow:none!important}.root.--status-error:not(.--variant-headless){box-shadow:0 0 0 var(--rs-outline-width) var(--rs-color-border-critical) inset}.root.--disabled{background:var(--rs-color-background-disabled-faded)}.root.--disabled .arrow,.root.--disabled .input{cursor:not-allowed;color:var(--rs-color-foreground-disabled)}@media (--rs-viewport-s ) and (hover:none){.input{font-size:var(--rs-font-size-body-1)!important}}@media (--rs-viewport-m ){.--size-small--m{--rs-select-gap:var(--rs-unit-x1);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-small);--rs-select-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-select-p-h:var(--rs-unit-x2);--rs-select-font-size:var(--rs-font-size-caption-1);--rs-select-line-height:var(--rs-line-height-caption-1);--rs-select-letter-spacing:var(--rs-letter-spacing-caption-1);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-select-p-v) * 2)}.--size-medium--m{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x2);--rs-select-p-h:var(--rs-unit-x3);--rs-select-font-size:var(--rs-font-size-body-2);--rs-select-line-height:var(--rs-line-height-body-2);--rs-select-letter-spacing:var(--rs-letter-spacing-body-2);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x2) * 2)}.--size-large--m{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x3);--rs-select-p-h:var(--rs-unit-x4);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x3) * 2)}.--size-xlarge--m{--rs-select-gap:var(--rs-unit-x3);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x4);--rs-select-p-h:var(--rs-unit-x5);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x4) * 2)}}@media (--rs-viewport-l ){.--size-small--l{--rs-select-gap:var(--rs-unit-x1);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-small);--rs-select-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-select-p-h:var(--rs-unit-x2);--rs-select-font-size:var(--rs-font-size-caption-1);--rs-select-line-height:var(--rs-line-height-caption-1);--rs-select-letter-spacing:var(--rs-letter-spacing-caption-1);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-select-p-v) * 2)}.--size-medium--l{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x2);--rs-select-p-h:var(--rs-unit-x3);--rs-select-font-size:var(--rs-font-size-body-2);--rs-select-line-height:var(--rs-line-height-body-2);--rs-select-letter-spacing:var(--rs-letter-spacing-body-2);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x2) * 2)}.--size-large--l{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x3);--rs-select-p-h:var(--rs-unit-x4);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x3) * 2)}.--size-xlarge--l{--rs-select-gap:var(--rs-unit-x3);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x4);--rs-select-p-h:var(--rs-unit-x5);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x4) * 2)}}@media (--rs-viewport-xl ){.--size-small--xl{--rs-select-gap:var(--rs-unit-x1);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-small);--rs-select-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-select-p-h:var(--rs-unit-x2);--rs-select-font-size:var(--rs-font-size-caption-1);--rs-select-line-height:var(--rs-line-height-caption-1);--rs-select-letter-spacing:var(--rs-letter-spacing-caption-1);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-select-p-v) * 2)}.--size-medium--xl{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x4);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x2);--rs-select-p-h:var(--rs-unit-x3);--rs-select-font-size:var(--rs-font-size-body-2);--rs-select-line-height:var(--rs-line-height-body-2);--rs-select-letter-spacing:var(--rs-letter-spacing-body-2);--rs-select-icon-align:var(--rs-unit-x0-5);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x2) * 2)}.--size-large--xl{--rs-select-gap:var(--rs-unit-x2);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x3);--rs-select-p-h:var(--rs-unit-x4);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x3) * 2)}.--size-xlarge--xl{--rs-select-gap:var(--rs-unit-x3);--rs-select-chevron-size:var(--rs-unit-x5);--rs-select-radius:var(--rs-radius-medium);--rs-select-p-v:var(--rs-unit-x4);--rs-select-p-h:var(--rs-unit-x5);--rs-select-font-size:var(--rs-font-size-body-1);--rs-select-line-height:var(--rs-line-height-body-1);--rs-select-letter-spacing:var(--rs-letter-spacing-body-1);--rs-select-icon-align:var(--rs-unit-x1);--rs-select-min-height:calc(var(--rs-select-line-height) + var(--rs-unit-x4) * 2)}}
@@ -12,6 +12,8 @@ const SelectStartContent = (props) => {
12
12
  return 5;
13
13
  if (size === "xlarge")
14
14
  return 6;
15
+ if (size === "small")
16
+ return 3.5;
15
17
  return 4;
16
18
  }), svg: icon }) }));
17
19
  }
@@ -1 +1 @@
1
- @property --rs-tabs-mid-l{syntax:"<length>";initial-value:-24px;inherits:false}@property --rs-tabs-stop-l{syntax:"<length>";initial-value:0;inherits:false}@property --rs-tabs-stop-r{syntax:"<length-percentage>";initial-value:100%;inherits:false}@property --rs-tabs-mid-r{syntax:"<length-percentage>";initial-value:calc(100% + 24px);inherits:false}.root{--rs-tabs-gap:var(--rs-unit-x5);--rs-tabs-radius:var(--rs-radius-medium);isolation:isolate;box-sizing:initial;max-width:100%}.inner,.list,.root{position:relative}.list{gap:var(--rs-tabs-gap)}.button{display:block;color:var(--rs-color-foreground-neutral);flex-shrink:0;position:relative;border-radius:var(--rs-tabs-radius);padding:var(--rs-tabs-item-p-v) var(--rs-tabs-item-p-h);z-index:var(--rs-z-index-relative);-webkit-tap-highlight-color:transparent}[data-rs-keyboard] .button:focus:before{content:"";pointer-events:none;position:absolute;border-radius:var(--rs-tabs-radius);outline:var(--rs-outline);inset:0}.button:after{content:"";opacity:0;pointer-events:none}.button--active.button:after{opacity:1}.button.button--disabled{color:var(--rs-color-foreground-disabled)}.buttonContent{display:flex;align-items:center;justify-content:center;gap:var(--rs-tabs-icon-gap);position:relative;z-index:var(--rs-z-index-relative)}.icon{color:inherit;transition:color var(--rs-duration-fast) var(--rs-easing-standard)}.root:not(:has(.selector)) .button:after{transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:opacity}.button:after,.selector{position:absolute;border-radius:var(--rs-tabs-radius);z-index:0}.selector{--rs-tab-selection-x:0;--rs-tab-selection-y:0;--rs-tab-selection-scale-x:0;--rs-tab-selection-scale-y:0;position:absolute;left:0;top:0;z-index:0;height:calc(var(--rs-tab-selection-scale-y) * 1px);width:calc(var(--rs-tab-selection-scale-x) * 1px);transform-origin:0 0;transform:translate(calc(var(--rs-tab-selection-x) * 1px),calc(var(--rs-tab-selection-y) * 1px)) translateZ(0)}.selector.selector--hidden{visibility:hidden}.selector.selector--animated{transition:var(--rs-duration-medium) var(--rs-easing-standard);transition-property:transform,height,width;will-change:transform,height,width}.control{position:absolute;inset-block:0;display:none;align-items:center;z-index:var(--rs-z-index-relative);transition:var(--rs-duration-medium) var(--rs-easing-decelerate);transition-property:opacity,transform;opacity:0;pointer-events:none}.control.control--active{opacity:1;pointer-events:all}[dir=rtl] .control{transform:scaleX(-1)}.control.control--next{inset-inline-end:0}.control.control--prev{inset-inline-start:0}.panel{outline:none}[data-rs-keyboard] .panel:focus{outline:var(--rs-outline)}.panel.panel--hidden{display:none}.--direction-row .inner{white-space:nowrap}.--direction-row .list{display:inline-flex;vertical-align:top;flex-wrap:nowrap;align-items:center}.--direction-column{--rs-tabs-gap:var(--rs-unit-x1)}.--direction-column .list{display:flex;flex-direction:column}.--direction-column .buttonContent{justify-content:flex-start}.--variant-bordered .inner:after{content:"";position:absolute;background-color:var(--rs-color-border-neutral-faded);z-index:var(--rs-z-index-relative)}.--variant-bordered.--direction-row .inner:after{inset-block-end:0;inset-inline:0;height:1px}.--variant-bordered.--direction-column .inner:after{inset-inline-end:0;inset-block:0;width:1px}.--variant-bordered .button,.--variant-borderless .button{padding-inline:0}[data-rs-keyboard] .--variant-bordered .button:focus:before,[data-rs-keyboard] .--variant-borderless .button:focus:before{inset-block:var(--rs-unit-x0-5);inset-inline:calc(var(--rs-unit-x1-5) * -1)}.--variant-bordered .button:after,.--variant-bordered .selector,.--variant-borderless .button:after,.--variant-borderless .selector{background:var(--rs-color-border-primary)}.--variant-bordered.--direction-row .button,.--variant-borderless.--direction-row .button{margin-block-end:var(--rs-unit-x1)}.--variant-bordered.--direction-row .button:after,.--variant-borderless.--direction-row .button:after{inset-inline:0;inset-block-end:calc(var(--rs-unit-x1) * -1)}.--variant-bordered.--direction-row .selector,.--variant-borderless.--direction-row .selector{inset-block-start:auto;inset-block-end:0}.--variant-bordered.--direction-row .button:after,.--variant-bordered.--direction-row .selector,.--variant-borderless.--direction-row .button:after,.--variant-borderless.--direction-row .selector{height:2px}.--variant-bordered.--direction-column .button:after,.--variant-borderless.--direction-column .button:after{inset-block:0;inset-inline-end:0}[data-rs-keyboard] .--variant-bordered.--direction-column .button:focus:before,[data-rs-keyboard] .--variant-borderless.--direction-column .button:focus:before{inset-inline-end:var(--rs-unit-x2)}.--variant-bordered.--direction-column .selector,.--variant-borderless.--direction-column .selector{inset-inline-start:auto;inset-inline-end:0}.--variant-bordered.--direction-column .button:after,.--variant-bordered.--direction-column .selector,.--variant-borderless.--direction-column .button:after,.--variant-borderless.--direction-column .selector{width:2px}.--variant-pills .button--active:after,.--variant-pills .selector{opacity:.6}.--variant-pills .button:after,.--variant-pills .selector{background-color:var(--rs-color-background-neutral)}.--variant-pills .button:after{inset:0}.--variant-pills-raised .list{border-radius:var(--rs-radius-medium);background:var(--rs-color-background-neutral-faded)}.--variant-pills-raised .button--active:before,.--variant-pills-raised .selector:before{content:"";position:absolute;inset:0;border-radius:var(--rs-radius-medium);background:var(--rs-color-background-elevation-raised);border:1px solid var(--rs-color-border-neutral-faded);box-sizing:border-box}.--variant-pills-raised .button--active:after,.--variant-pills-raised .selector:after{content:"";position:absolute;inset:1px;height:auto;width:auto;border-radius:calc(var(--rs-radius-medium) - 1px);box-shadow:var(--rs-shadow-raised);background:transparent;transform:translateZ(0)}.--variant-pills-raised.--direction-column .button{width:100%}.--variant-pills,.--variant-pills-raised{--rs-tabs-gap:var(--rs-unit-x1)}.--size-small{--rs-tabs-item-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-tabs-item-p-h:var(--rs-unit-x2);--rs-tabs-icon-gap:var(--rs-unit-x1-5);--rs-tabs-radius:var(--rs-radius-small)}.--size-medium{--rs-tabs-item-p-v:var(--rs-unit-x2);--rs-tabs-item-p-h:var(--rs-unit-x3);--rs-tabs-icon-gap:var(--rs-unit-x2);--rs-tabs-radius:var(--rs-radius-medium)}.--size-large{--rs-tabs-item-p-v:var(--rs-unit-x3);--rs-tabs-item-p-h:var(--rs-unit-x4);--rs-tabs-icon-gap:var(--rs-unit-x2);--rs-tabs-radius:var(--rs-radius-medium)}.--item-width-equal{max-width:none}.--item-width-equal .inner{flex-wrap:wrap}.--item-width-equal .list{display:flex}.--item-width-equal .button{flex-grow:1;flex-basis:0;min-width:0;margin:0}.--item-width-equal .buttonText{overflow:hidden;text-overflow:ellipsis}.--scrollable .inner{overflow:auto;overflow:-moz-scrollbars-none;scrollbar-width:none;-ms-overflow-style:none;mask-image:linear-gradient(to right,transparent 0,transparent var(--rs-tabs-mid-l),#000 var(--rs-tabs-stop-l),#000 var(--rs-tabs-stop-r),transparent var(--rs-tabs-mid-r),transparent 100%);transition:var(--rs-duration-slow) var(--rs-easing-decelerate);transition-property:--rs-tabs-stop-l,--rs-tabs-stop-r,--rs-tabs-mid-l,--rs-tabs-mid-r}.--scrollable .inner::-webkit-scrollbar{display:none}.--fade-end .inner,[dir=rtl] .--fade-start .inner{--rs-tabs-mid-r:100%;--rs-tabs-stop-r:calc(100% - var(--rs-unit-x1) * 10)}.--fade-start .inner,[dir=rtl] .--fade-end .inner{--rs-tabs-mid-l:0px;--rs-tabs-stop-l:calc(var(--rs-unit-x1) * 10)}@media (pointer:fine){.control{display:flex}.--fade-end .inner,[dir=rtl] .--fade-start .inner{--rs-tabs-mid-r:calc(100% - var(--rs-unit-x1) * 4);--rs-tabs-stop-r:calc(100% - var(--rs-unit-x1) * 10)}.--fade-start .inner,[dir=rtl] .--fade-end .inner{--rs-tabs-mid-l:calc(var(--rs-unit-x1) * 4);--rs-tabs-stop-l:calc(var(--rs-unit-x1) * 10)}}
1
+ @property --rs-tabs-mid-l{syntax:"<length>";initial-value:-24px;inherits:false}@property --rs-tabs-stop-l{syntax:"<length>";initial-value:0;inherits:false}@property --rs-tabs-stop-r{syntax:"<length-percentage>";initial-value:100%;inherits:false}@property --rs-tabs-mid-r{syntax:"<length-percentage>";initial-value:calc(100% + 24px);inherits:false}.root{--rs-tabs-gap:var(--rs-unit-x5);--rs-tabs-radius:var(--rs-radius-medium);isolation:isolate;box-sizing:initial;max-width:100%}.inner,.list,.root{position:relative}.list{gap:var(--rs-tabs-gap)}.button{display:block;color:var(--rs-color-foreground-neutral);flex-shrink:0;position:relative;border-radius:var(--rs-tabs-radius);padding:var(--rs-tabs-item-p-v) var(--rs-tabs-item-p-h);z-index:var(--rs-z-index-relative);-webkit-tap-highlight-color:transparent}[data-rs-keyboard] .button:focus:before{content:"";pointer-events:none;position:absolute;border-radius:var(--rs-tabs-radius);outline:var(--rs-outline);inset:0}.button:after{content:"";opacity:0;pointer-events:none}.button--active.button:after{opacity:1}.button.button--disabled{color:var(--rs-color-foreground-disabled)}.buttonContent{display:flex;align-items:center;justify-content:center;gap:var(--rs-tabs-icon-gap);position:relative;z-index:var(--rs-z-index-relative)}.buttonContent>.icon:not(:only-child){margin-inline-start:calc(var(--rs-tabs-icon-align) * -1)}.icon{color:inherit;transition:color var(--rs-duration-fast) var(--rs-easing-standard)}.root:not(:has(.selector)) .button:after{transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:opacity}.button:after,.selector{position:absolute;border-radius:var(--rs-tabs-radius);z-index:0}.selector{--rs-tab-selection-x:0;--rs-tab-selection-y:0;--rs-tab-selection-scale-x:0;--rs-tab-selection-scale-y:0;position:absolute;left:0;top:0;z-index:0;height:calc(var(--rs-tab-selection-scale-y) * 1px);width:calc(var(--rs-tab-selection-scale-x) * 1px);transform-origin:0 0;transform:translate(calc(var(--rs-tab-selection-x) * 1px),calc(var(--rs-tab-selection-y) * 1px)) translateZ(0)}.selector.selector--hidden{visibility:hidden}.selector.selector--animated{transition:var(--rs-duration-medium) var(--rs-easing-standard);transition-property:transform,height,width;will-change:transform,height,width}.control{position:absolute;inset-block:0;display:none;align-items:center;z-index:var(--rs-z-index-relative);transition:var(--rs-duration-medium) var(--rs-easing-decelerate);transition-property:opacity,transform;opacity:0;pointer-events:none}.control.control--active{opacity:1;pointer-events:all}[dir=rtl] .control{transform:scaleX(-1)}.control.control--next{inset-inline-end:0}.control.control--prev{inset-inline-start:0}.panel{outline:none}[data-rs-keyboard] .panel:focus{outline:var(--rs-outline)}.panel.panel--hidden{display:none}.--direction-row .inner{white-space:nowrap}.--direction-row .list{display:inline-flex;vertical-align:top;flex-wrap:nowrap;align-items:center}.--direction-column{--rs-tabs-gap:var(--rs-unit-x1)}.--direction-column .list{display:flex;flex-direction:column}.--direction-column .buttonContent{justify-content:flex-start}.--variant-bordered .inner:after{content:"";position:absolute;background-color:var(--rs-color-border-neutral-faded);z-index:var(--rs-z-index-relative)}.--variant-bordered.--direction-row .inner:after{inset-block-end:0;inset-inline:0;height:1px}.--variant-bordered.--direction-column .inner:after{inset-inline-end:0;inset-block:0;width:1px}.--variant-bordered .button,.--variant-borderless .button{--rs-tabs-item-p-h:0px;--rs-tabs-icon-align:0px}[data-rs-keyboard] .--variant-bordered .button:focus:before,[data-rs-keyboard] .--variant-borderless .button:focus:before{inset-block:var(--rs-unit-x0-5);inset-inline:calc(var(--rs-unit-x1-5) * -1)}.--variant-bordered .button:after,.--variant-bordered .selector,.--variant-borderless .button:after,.--variant-borderless .selector{background:var(--rs-color-border-primary)}.--variant-bordered.--direction-row .button,.--variant-borderless.--direction-row .button{margin-block-end:var(--rs-unit-x1)}.--variant-bordered.--direction-row .button:after,.--variant-borderless.--direction-row .button:after{inset-inline:0;inset-block-end:calc(var(--rs-unit-x1) * -1)}.--variant-bordered.--direction-row .selector,.--variant-borderless.--direction-row .selector{inset-block-start:auto;inset-block-end:0}.--variant-bordered.--direction-row .button:after,.--variant-bordered.--direction-row .selector,.--variant-borderless.--direction-row .button:after,.--variant-borderless.--direction-row .selector{height:2px}.--variant-bordered.--direction-column .button:after,.--variant-borderless.--direction-column .button:after{inset-block:0;inset-inline-end:0}[data-rs-keyboard] .--variant-bordered.--direction-column .button:focus:before,[data-rs-keyboard] .--variant-borderless.--direction-column .button:focus:before{inset-inline-end:var(--rs-unit-x2)}.--variant-bordered.--direction-column .selector,.--variant-borderless.--direction-column .selector{inset-inline-start:auto;inset-inline-end:0}.--variant-bordered.--direction-column .button:after,.--variant-bordered.--direction-column .selector,.--variant-borderless.--direction-column .button:after,.--variant-borderless.--direction-column .selector{width:2px}.--variant-pills .button--active:after,.--variant-pills .selector{opacity:.6}.--variant-pills .button:after,.--variant-pills .selector{background-color:var(--rs-color-background-neutral)}.--variant-pills .button:after{inset:0}.--variant-pills-raised .list{border-radius:var(--rs-radius-medium);background:var(--rs-color-background-neutral-faded)}.--variant-pills-raised .button--active:before,.--variant-pills-raised .selector:before{content:"";position:absolute;inset:0;border-radius:var(--rs-radius-medium);background:var(--rs-color-background-elevation-raised);border:1px solid var(--rs-color-border-neutral-faded);box-sizing:border-box}.--variant-pills-raised .button--active:after,.--variant-pills-raised .selector:after{content:"";position:absolute;inset:1px;height:auto;width:auto;border-radius:calc(var(--rs-radius-medium) - 1px);box-shadow:var(--rs-shadow-raised);background:transparent;transform:translateZ(0)}.--variant-pills-raised.--direction-column .button{width:100%}.--variant-pills,.--variant-pills-raised{--rs-tabs-gap:var(--rs-unit-x1)}.--size-small{--rs-tabs-item-p-v:calc(var(--rs-unit-x1) + (var(--rs-line-height-body-2) - var(--rs-line-height-caption-1)) / 2);--rs-tabs-item-p-h:var(--rs-unit-x2);--rs-tabs-icon-gap:var(--rs-unit-x1);--rs-tabs-icon-align:var(--rs-unit-x0-5);--rs-tabs-radius:var(--rs-radius-small)}.--size-medium{--rs-tabs-item-p-v:var(--rs-unit-x2);--rs-tabs-item-p-h:var(--rs-unit-x3);--rs-tabs-icon-gap:var(--rs-unit-x2);--rs-tabs-icon-align:var(--rs-unit-x0-5);--rs-tabs-radius:var(--rs-radius-medium)}.--size-large{--rs-tabs-item-p-v:var(--rs-unit-x3);--rs-tabs-item-p-h:var(--rs-unit-x4);--rs-tabs-icon-gap:var(--rs-unit-x2);--rs-tabs-icon-align:var(--rs-unit-x1);--rs-tabs-radius:var(--rs-radius-medium)}.--item-width-equal{max-width:none}.--item-width-equal .inner{flex-wrap:wrap}.--item-width-equal .list{display:flex}.--item-width-equal .button{flex-grow:1;flex-basis:0;min-width:0;margin:0}.--item-width-equal .buttonText{overflow:hidden;text-overflow:ellipsis}.--scrollable .inner{overflow:auto;overflow:-moz-scrollbars-none;scrollbar-width:none;-ms-overflow-style:none;mask-image:linear-gradient(to right,transparent 0,transparent var(--rs-tabs-mid-l),#000 var(--rs-tabs-stop-l),#000 var(--rs-tabs-stop-r),transparent var(--rs-tabs-mid-r),transparent 100%);transition:var(--rs-duration-slow) var(--rs-easing-decelerate);transition-property:--rs-tabs-stop-l,--rs-tabs-stop-r,--rs-tabs-mid-l,--rs-tabs-mid-r}.--scrollable .inner::-webkit-scrollbar{display:none}.--fade-end .inner,[dir=rtl] .--fade-start .inner{--rs-tabs-mid-r:100%;--rs-tabs-stop-r:calc(100% - var(--rs-unit-x1) * 10)}.--fade-start .inner,[dir=rtl] .--fade-end .inner{--rs-tabs-mid-l:0px;--rs-tabs-stop-l:calc(var(--rs-unit-x1) * 10)}@media (pointer:fine){.control{display:flex}.--fade-end .inner,[dir=rtl] .--fade-start .inner{--rs-tabs-mid-r:calc(100% - var(--rs-unit-x1) * 4);--rs-tabs-stop-r:calc(100% - var(--rs-unit-x1) * 10)}.--fade-start .inner,[dir=rtl] .--fade-end .inner{--rs-tabs-mid-l:calc(var(--rs-unit-x1) * 4);--rs-tabs-stop-l:calc(var(--rs-unit-x1) * 10)}}
@@ -22,6 +22,11 @@ const TabsItem = React.forwardRef((props, ref) => {
22
22
  tabIndex: active ? 0 : -1,
23
23
  "aria-selected": active,
24
24
  };
25
+ const iconSize = {
26
+ small: 3.5,
27
+ medium: 4,
28
+ large: 5,
29
+ }[size];
25
30
  const updateRefs = React.useCallback(() => {
26
31
  elPrevActiveRef.current = elActiveRef.current;
27
32
  elActiveRef.current = itemRef.current;
@@ -42,7 +47,7 @@ const TabsItem = React.forwardRef((props, ref) => {
42
47
  ...(!isFormControl && tabAttributes),
43
48
  "aria-controls": panelId,
44
49
  id: buttonId,
45
- }, children: [name && (_jsx(HiddenInput, { type: "radio", name: name, value: value, checked: visuallySelected, onChange: handleChange, className: s.radio })), _jsxs("span", { className: s.buttonContent, ref: itemRef, children: [icon && _jsx(Icon, { svg: icon, className: s.icon, size: 4 }), children && (_jsx(Text, { variant: size === "large" ? "body-1" : size === "small" ? "caption-1" : "body-2", weight: "medium", className: s.buttonText, children: children }))] })] }));
50
+ }, children: [name && (_jsx(HiddenInput, { type: "radio", name: name, value: value, checked: visuallySelected, onChange: handleChange, className: s.radio })), _jsxs("span", { className: s.buttonContent, ref: itemRef, children: [icon && _jsx(Icon, { svg: icon, className: s.icon, size: iconSize }), children && (_jsx(Text, { variant: size === "large" ? "body-1" : size === "small" ? "caption-1" : "body-2", weight: "medium", className: s.buttonText, children: children }))] })] }));
46
51
  });
47
52
  TabsItem.displayName = "Tabs.Item";
48
53
  export default TabsItem;
@@ -23,6 +23,8 @@ const TextFieldSlot = (props) => {
23
23
  return 5;
24
24
  if (size === "xlarge")
25
25
  return 6;
26
+ if (size === "small")
27
+ return 3.5;
26
28
  return 4;
27
29
  }), svg: icon, autoWidth: true }) }, "icon"));
28
30
  const affixNode = affix && (_jsx("span", { className: classNames(s.affix, s[`affix--position-${position}`]), children: affix }, "affix"));