reshaped 3.8.0-canary.8 → 3.8.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 (104) hide show
  1. package/dist/bundle.css +1 -1
  2. package/dist/bundle.d.ts +2 -1
  3. package/dist/bundle.js +9 -9
  4. package/dist/components/Accordion/AccordionControlled.js +1 -0
  5. package/dist/components/Actionable/Actionable.js +1 -0
  6. package/dist/components/Badge/Badge.js +2 -2
  7. package/dist/components/Badge/Badge.module.css +1 -1
  8. package/dist/components/Badge/Badge.types.d.ts +2 -0
  9. package/dist/components/Badge/tests/Badge.stories.d.ts +4 -0
  10. package/dist/components/Badge/tests/Badge.stories.js +10 -0
  11. package/dist/components/Breadcrumbs/Breadcrumbs.js +1 -0
  12. package/dist/components/Button/Button.module.css +1 -1
  13. package/dist/components/Button/tests/Button.stories.js +1 -1
  14. package/dist/components/Calendar/CalendarMonth.js +1 -0
  15. package/dist/components/Carousel/Carousel.js +1 -0
  16. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +1 -1
  17. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.js +21 -4
  18. package/dist/components/Flyout/FlyoutContent.js +3 -0
  19. package/dist/components/Flyout/FlyoutControlled.js +6 -1
  20. package/dist/components/Flyout/index.d.ts +1 -1
  21. package/dist/components/FormControl/FormControl.context.d.ts +1 -1
  22. package/dist/components/Hidden/Hidden.js +1 -2
  23. package/dist/components/Modal/tests/Modal.stories.d.ts +3 -7
  24. package/dist/components/Modal/tests/Modal.stories.js +5 -22
  25. package/dist/components/NumberField/NumberFieldControlled.js +22 -22
  26. package/dist/components/Overlay/Overlay.js +1 -0
  27. package/dist/components/Resizable/Resizable.js +3 -4
  28. package/dist/components/Select/Select.js +1 -0
  29. package/dist/components/Select/SelectCustomControlled.js +7 -3
  30. package/dist/components/Select/SelectOption.js +0 -2
  31. package/dist/components/Select/SelectOptionGroup.js +0 -2
  32. package/dist/components/Table/Table.js +5 -6
  33. package/dist/components/Tabs/Tabs.module.css +1 -1
  34. package/dist/components/Tabs/TabsControlled.js +1 -0
  35. package/dist/components/Tabs/TabsItem.js +1 -1
  36. package/dist/components/Tabs/TabsList.js +3 -20
  37. package/dist/components/Text/Text.module.css +1 -1
  38. package/dist/components/TextField/TextField.js +10 -2
  39. package/dist/components/TextField/TextField.module.css +1 -1
  40. package/dist/components/TextField/TextField.types.d.ts +5 -1
  41. package/dist/components/TextField/tests/TextField.stories.js +11 -5
  42. package/dist/components/Timeline/Timeline.js +3 -4
  43. package/dist/components/Toast/ToastContainer.js +1 -0
  44. package/dist/components/Toast/ToastRegion.js +1 -0
  45. package/dist/components/Toast/tests/Toast.stories.js +5 -3
  46. package/dist/components/ToggleButton/ToggleButton.types.d.ts +5 -1
  47. package/dist/components/ToggleButton/ToggleButtonControlled.js +9 -2
  48. package/dist/components/ToggleButton/tests/ToggleButton.stories.d.ts +4 -0
  49. package/dist/components/ToggleButton/tests/ToggleButton.stories.js +10 -0
  50. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.types.d.ts +10 -0
  51. package/dist/components/ToggleButtonGroup/ToggleButtonGroupControlled.js +6 -41
  52. package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.d.ts +1 -0
  53. package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.js +17 -0
  54. package/dist/components/Tooltip/Tooltip.js +1 -1
  55. package/dist/components/Tooltip/Tooltip.types.d.ts +2 -2
  56. package/dist/components/View/View.js +12 -7
  57. package/dist/components/View/View.types.d.ts +1 -1
  58. package/dist/components/_private/Expandable/Expandable.js +3 -1
  59. package/dist/components/_private/Portal/Portal.js +4 -1
  60. package/dist/hooks/_private/usePrevious.js +1 -0
  61. package/dist/hooks/tests/useKeyboardArrowNavigation.stories.d.ts +15 -0
  62. package/dist/hooks/tests/useKeyboardArrowNavigation.stories.js +128 -0
  63. package/dist/hooks/useKeyboardArrowNavigation.d.ts +9 -0
  64. package/dist/hooks/useKeyboardArrowNavigation.js +62 -0
  65. package/dist/hooks/useOnClickOutside.js +0 -2
  66. package/dist/hooks/useScrollLock.js +5 -3
  67. package/dist/index.d.ts +2 -1
  68. package/dist/index.js +1 -0
  69. package/dist/styles/resolvers/align/align.css +1 -1
  70. package/dist/styles/resolvers/aspectRatio/aspectRatio.css +1 -1
  71. package/dist/styles/resolvers/bleed/bleed.module.css +1 -1
  72. package/dist/styles/resolvers/justify/justify.css +1 -1
  73. package/dist/styles/resolvers/maxHeight/maxHeight.module.css +1 -1
  74. package/dist/styles/resolvers/maxWidth/maxWidth.module.css +1 -1
  75. package/dist/styles/resolvers/minHeight/minHeight.module.css +1 -1
  76. package/dist/styles/resolvers/minWidth/minWidth.module.css +1 -1
  77. package/dist/styles/resolvers/position/position.css +1 -1
  78. package/dist/styles/resolvers/textAlign/textAlign.css +1 -1
  79. package/dist/styles/resolvers/width/width.module.css +1 -1
  80. package/dist/utilities/a11y/focus.d.ts +21 -4
  81. package/dist/utilities/a11y/focus.js +4 -3
  82. package/dist/utilities/props.d.ts +0 -3
  83. package/dist/utilities/props.js +0 -19
  84. package/dist/utilities/scroll/index.d.ts +1 -1
  85. package/dist/utilities/scroll/index.js +1 -1
  86. package/dist/utilities/scroll/lock.d.ts +1 -2
  87. package/dist/utilities/scroll/lock.js +14 -15
  88. package/package.json +195 -201
  89. package/CHANGELOG-extra.md +0 -3
  90. package/CHANGELOG.md +0 -114
  91. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.d.ts +0 -21
  92. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.js +0 -11
  93. package/dist/components/Link/tests/Link.test.stories.d.ts +0 -17
  94. package/dist/components/Link/tests/Link.test.stories.js +0 -11
  95. package/dist/components/Loader/tests/Loader.test.stories.d.ts +0 -13
  96. package/dist/components/Loader/tests/Loader.test.stories.js +0 -11
  97. package/dist/components/Table/tests/Table.test.stories.d.ts +0 -19
  98. package/dist/components/Table/tests/Table.test.stories.js +0 -11
  99. package/dist/components/TextField/tests/TextField.test.stories.d.ts +0 -15
  100. package/dist/components/TextField/tests/TextField.test.stories.js +0 -11
  101. package/dist/components/Timeline/tests/Timeline.test.stories.d.ts +0 -15
  102. package/dist/components/Timeline/tests/Timeline.test.stories.js +0 -11
  103. package/dist/components/Tooltip/tests/Tooltip.test.stories.d.ts +0 -13
  104. package/dist/components/Tooltip/tests/Tooltip.test.stories.js +0 -11
@@ -14,6 +14,7 @@ const AccordionControlled = (props) => {
14
14
  triggerId: `${id}-trigger`,
15
15
  contentId: `${id}-content`,
16
16
  active,
17
+ // eslint-disable-next-line react-hooks/refs
17
18
  onToggle: onToggleRef.current,
18
19
  iconPosition,
19
20
  iconSize,
@@ -68,6 +68,7 @@ const Actionable = forwardRef((props, ref) => {
68
68
  "aria-disabled": disabled ? true : undefined,
69
69
  children: childrenNode,
70
70
  };
71
+ // eslint-disable-next-line react-hooks/refs
71
72
  if (render)
72
73
  return render(tagAttributes);
73
74
  return _jsx(TagName, { ...tagAttributes });
@@ -8,10 +8,10 @@ import BadgeContainer from "./BadgeContainer.js";
8
8
  import s from "./Badge.module.css";
9
9
  import { forwardRef } from "react";
10
10
  const Badge = forwardRef((props, ref) => {
11
- const { children, color, rounded, size = "medium", icon, endIcon, variant, hidden, href, onClick, onDismiss, dismissAriaLabel, className, attributes, } = props;
11
+ const { children, color, rounded, size = "medium", icon, endIcon, variant, hidden, highlighted, href, onClick, onDismiss, dismissAriaLabel, className, attributes, } = props;
12
12
  const isActionable = !!(onClick || href);
13
13
  const iconSize = size === "small" ? 3 : 4;
14
- const rootClassName = classNames(s.root, className, rounded && s["--rounded"], hidden && s["--hidden"], size && s[`--size-${size}`], color && s[`--color-${color}`], variant && s[`--variant-${variant}`], isActionable && s["--actionable"]);
14
+ const rootClassName = classNames(s.root, className, rounded && s["--rounded"], hidden && s["--hidden"], size && s[`--size-${size}`], color && s[`--color-${color}`], variant && s[`--variant-${variant}`], isActionable && s["--actionable"], highlighted && s["--highlighted"]);
15
15
  const hnadleDismiss = (e) => {
16
16
  e.stopPropagation();
17
17
  onDismiss?.();
@@ -1 +1 @@
1
- .root{--rs-badge-border-color:transparent;align-items:center;backface-visibility:hidden;background:var(--rs-color-background-neutral);border-radius:var(--rs-radius-small);box-shadow:0 0 0 1px var(--rs-badge-border-color) inset;box-sizing:border-box;color:var(--rs-color-foreground-neutral);display:inline-flex;gap:var(--rs-badge-gap);justify-content:center;min-height:calc(var(--rs-badge-line-height) + (var(--rs-badge-p-v) * 2));min-width:calc(var(--rs-badge-line-height) + (var(--rs-badge-p-v) * 2));padding:var(--rs-badge-p-v) var(--rs-badge-p-h);transition:var(--rs-duration-medium) var(--rs-easing-standard);transition-property:transform,opacity;vertical-align:top}.root:empty{height:var(--rs-badge-empty-size);min-height:auto;min-width:auto;padding:0;width:var(--rs-badge-empty-size)}.icon:only-child{margin-inline:calc(var(--rs-unit-x1) * -1)}.dismiss{border-radius:var(--rs-radius-small);transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:opacity}@media (hover:hover) and (pointer:fine){.root .dismiss:hover,.root.--actionable:hover:not(:has(.dismiss:hover)){opacity:.8}}.root.--variant-faded{background:var(--rs-color-background-neutral-faded);color:var(--rs-color-foreground-neutral-faded)}.root.--variant-outline{--rs-badge-border-color:var(--rs-color-border-neutral);background:none}.root.--color-positive{background:var(--rs-color-background-positive);color:var(--rs-color-on-background-positive)}.root.--color-positive.--variant-faded{background:var(--rs-color-background-positive-faded);color:var(--rs-color-foreground-positive)}.root.--color-positive.--variant-outline{--rs-badge-border-color:var(--rs-color-border-positive-faded);background:none;color:var(--rs-color-foreground-positive)}.root.--color-critical{background:var(--rs-color-background-critical);color:var(--rs-color-on-background-critical)}.root.--color-critical.--variant-faded{background:var(--rs-color-background-critical-faded);color:var(--rs-color-foreground-critical)}.root.--color-critical.--variant-outline{--rs-badge-border-color:var(--rs-color-border-critical-faded);background:none;color:var(--rs-color-foreground-critical)}.root.--color-warning{background:var(--rs-color-background-warning);color:var(--rs-color-on-background-warning)}.root.--color-warning.--variant-faded{background:var(--rs-color-background-warning-faded);color:var(--rs-color-foreground-warning)}.root.--color-warning.--variant-outline{--rs-badge-border-color:var(--rs-color-border-warning-faded);background:none;color:var(--rs-color-foreground-warning)}.root.--color-primary{background:var(--rs-color-background-primary);color:var(--rs-color-on-background-primary)}.root.--color-primary.--variant-faded{background:var(--rs-color-background-primary-faded);color:var(--rs-color-foreground-primary)}.root.--color-primary.--variant-outline{--rs-badge-border-color:var(--rs-color-border-primary-faded);background:none;color:var(--rs-color-foreground-primary)}.root.--size-small{--rs-badge-p-v:calc(var(--rs-unit-x1) / 2);--rs-badge-p-h:var(--rs-unit-x1);--rs-badge-line-height:var(--rs-line-height-caption-1);--rs-badge-empty-size:var(--rs-unit-x2);--rs-badge-gap:calc(var(--rs-unit-x1) / 2)}.root.--size-medium{--rs-badge-p-v:var(--rs-unit-x1);--rs-badge-p-h:var(--rs-unit-x2);--rs-badge-line-height:var(--rs-line-height-caption-1);--rs-badge-empty-size:var(--rs-unit-x3);--rs-badge-gap:var(--rs-unit-x1)}.root.--size-large{--rs-badge-p-v:var(--rs-unit-x1);--rs-badge-p-h:var(--rs-unit-x2);--rs-badge-line-height:var(--rs-line-height-body-3);--rs-badge-empty-size:var(--rs-unit-x4);--rs-badge-gap:var(--rs-unit-x1)}.root.--rounded{border-radius:var(--rs-radius-circular)}.root.--hidden{opacity:0;transform:scale(.2)}.container{display:inline-block;position:relative;vertical-align:top}.container .root{inset-inline-end:0;pointer-events:none;position:absolute;transform:translate(50%,var(--rs-badge-translate-y)) scale(1);z-index:10}.container .root.--hidden{transform:translate(50%,var(--rs-badge-translate-y)) scale(.2)}[dir=rtl] .container .root{transform:translate(-50%,var(--rs-badge-translate-y)) scale(1)}[dir=rtl] .container .root.--hidden{transform:translate(-50%,var(--rs-badge-translate-y)) scale(.2)}.--container-overlap .root{inset-inline-end:14%}.--container-position-top-end .root{--rs-badge-translate-y:-50%;top:0}.--container-position-top-end.--container-overlap .root{top:14%}.--container-position-bottom-end .root{--rs-badge-translate-y:50%;bottom:0}.--container-position-bottom-end.--container-overlap .root{bottom:14%}
1
+ .root{--rs-badge-border-color:transparent;align-items:center;backface-visibility:hidden;background:var(--rs-color-background-neutral);border-radius:var(--rs-radius-small);box-shadow:0 0 0 1px var(--rs-badge-border-color) inset;box-sizing:border-box;color:var(--rs-color-foreground-neutral);display:inline-flex;gap:var(--rs-badge-gap);justify-content:center;min-height:calc(var(--rs-badge-line-height) + (var(--rs-badge-p-v) * 2));min-width:calc(var(--rs-badge-line-height) + (var(--rs-badge-p-v) * 2));padding:var(--rs-badge-p-v) var(--rs-badge-p-h);transition:var(--rs-duration-medium) var(--rs-easing-standard);transition-property:transform,opacity;vertical-align:top}.root:empty{height:var(--rs-badge-empty-size);min-height:auto;min-width:auto;padding:0;width:var(--rs-badge-empty-size)}.icon:only-child{margin-inline:calc(var(--rs-unit-x1) * -1)}.dismiss{border-radius:var(--rs-radius-small);transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:opacity}.root.--highlighted{opacity:.8}@media (hover:hover) and (pointer:fine){.root .dismiss:hover,.root.--actionable:hover:not(:has(.dismiss:hover)){opacity:.8}}.root.--variant-faded{background:var(--rs-color-background-neutral-faded);color:var(--rs-color-foreground-neutral-faded)}.root.--variant-outline{--rs-badge-border-color:var(--rs-color-border-neutral);background:none}.root.--color-positive{background:var(--rs-color-background-positive);color:var(--rs-color-on-background-positive)}.root.--color-positive.--variant-faded{background:var(--rs-color-background-positive-faded);color:var(--rs-color-foreground-positive)}.root.--color-positive.--variant-outline{--rs-badge-border-color:var(--rs-color-border-positive-faded);background:none;color:var(--rs-color-foreground-positive)}.root.--color-critical{background:var(--rs-color-background-critical);color:var(--rs-color-on-background-critical)}.root.--color-critical.--variant-faded{background:var(--rs-color-background-critical-faded);color:var(--rs-color-foreground-critical)}.root.--color-critical.--variant-outline{--rs-badge-border-color:var(--rs-color-border-critical-faded);background:none;color:var(--rs-color-foreground-critical)}.root.--color-warning{background:var(--rs-color-background-warning);color:var(--rs-color-on-background-warning)}.root.--color-warning.--variant-faded{background:var(--rs-color-background-warning-faded);color:var(--rs-color-foreground-warning)}.root.--color-warning.--variant-outline{--rs-badge-border-color:var(--rs-color-border-warning-faded);background:none;color:var(--rs-color-foreground-warning)}.root.--color-primary{background:var(--rs-color-background-primary);color:var(--rs-color-on-background-primary)}.root.--color-primary.--variant-faded{background:var(--rs-color-background-primary-faded);color:var(--rs-color-foreground-primary)}.root.--color-primary.--variant-outline{--rs-badge-border-color:var(--rs-color-border-primary-faded);background:none;color:var(--rs-color-foreground-primary)}.root.--size-small{--rs-badge-p-v:calc(var(--rs-unit-x1) / 2);--rs-badge-p-h:var(--rs-unit-x1);--rs-badge-line-height:var(--rs-line-height-caption-1);--rs-badge-empty-size:var(--rs-unit-x2);--rs-badge-gap:calc(var(--rs-unit-x1) / 2)}.root.--size-medium{--rs-badge-p-v:var(--rs-unit-x1);--rs-badge-p-h:var(--rs-unit-x2);--rs-badge-line-height:var(--rs-line-height-caption-1);--rs-badge-empty-size:var(--rs-unit-x3);--rs-badge-gap:var(--rs-unit-x1)}.root.--size-large{--rs-badge-p-v:var(--rs-unit-x1);--rs-badge-p-h:var(--rs-unit-x2);--rs-badge-line-height:var(--rs-line-height-body-3);--rs-badge-empty-size:var(--rs-unit-x4);--rs-badge-gap:var(--rs-unit-x1)}.root.--rounded{border-radius:var(--rs-radius-circular)}.root.--hidden{opacity:0;transform:scale(.2)}.container{display:inline-block;position:relative;vertical-align:top}.container .root{inset-inline-end:0;pointer-events:none;position:absolute;transform:translate(50%,var(--rs-badge-translate-y)) scale(1);z-index:10}.container .root.--hidden{transform:translate(50%,var(--rs-badge-translate-y)) scale(.2)}[dir=rtl] .container .root{transform:translate(-50%,var(--rs-badge-translate-y)) scale(1)}[dir=rtl] .container .root.--hidden{transform:translate(-50%,var(--rs-badge-translate-y)) scale(.2)}.--container-overlap .root{inset-inline-end:14%}.--container-position-top-end .root{--rs-badge-translate-y:-50%;top:0}.--container-position-top-end.--container-overlap .root{top:14%}.--container-position-bottom-end .root{--rs-badge-translate-y:50%;bottom:0}.--container-position-bottom-end.--container-overlap .root{bottom:14%}
@@ -15,6 +15,8 @@ type BaseProps = {
15
15
  endIcon?: IconProps["svg"];
16
16
  /** Change border radius to fully rounded corners */
17
17
  rounded?: boolean;
18
+ /** Highlight the component when component is used for an active state */
19
+ highlighted?: boolean;
18
20
  /** Transition the component to hidden state */
19
21
  hidden?: boolean;
20
22
  /** Additional classname for the root element */
@@ -38,6 +38,10 @@ export declare const empty: {
38
38
  name: string;
39
39
  render: () => React.JSX.Element;
40
40
  };
41
+ export declare const highlighted: {
42
+ name: string;
43
+ render: () => React.JSX.Element;
44
+ };
41
45
  export declare const container: {
42
46
  name: string;
43
47
  render: () => React.JSX.Element;
@@ -216,6 +216,16 @@ export const empty = {
216
216
  </Example.Item>
217
217
  </Example>),
218
218
  };
219
+ export const highlighted = {
220
+ name: "highlighted",
221
+ render: () => (<Example>
222
+ <Example.Item title="highlighted, color: neutral">
223
+ <View gap={3} direction="row">
224
+ <Badge highlighted>Badge</Badge>
225
+ </View>
226
+ </Example.Item>
227
+ </Example>),
228
+ };
219
229
  export const container = {
220
230
  name: "container",
221
231
  render: () => {
@@ -27,6 +27,7 @@ const Breadcrumbs = (props) => {
27
27
  const isAfterCollapse = renderIndex > lastCollapsedIndex;
28
28
  const isDisplayed = !visibleItems || isBeforeCollapse || isAfterCollapse || expanded;
29
29
  const isCollapseButton = renderIndex === lastCollapsedIndex;
30
+ // eslint-disable-next-line react-hooks/immutability
30
31
  renderIndex += 1;
31
32
  let itemNode = null;
32
33
  if (isDisplayed) {
@@ -1 +1 @@
1
- .root{--rs-p-v:var(--rs-button-p-v);--rs-p-h:var(--rs-button-p-h);--rs-button-highlight-opacity:0;--rs-button-highlight-opacity-base:0;--rs-button-border-color:transparent;--rs-button-border-width:0px;align-items:center;border:var(--rs-button-border-width) solid var(--rs-button-border-color);border-radius:var(--rs-button-radius);box-sizing:border-box;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;padding:calc(var(--rs-unit-x1) - var(--rs-button-border-width)) calc(var(--rs-p-h) - var(--rs-button-border-width));position:relative;text-align:initial;text-decoration:none;transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:background-color,box-shadow,border-color,color,transform;z-index:0;-webkit-tap-highlight-color:transparent;background-color:var(--rs-button-background-color);color:var(--rs-button-foreground-color);font-family:var(--rs-font-family-body);font-size:var(--rs-button-font-size);font-weight:var(--rs-font-weight-medium);letter-spacing:var(--rs-button-letter-spacing);line-height:var(--rs-button-line-height);min-height:calc(var(--rs-button-line-height) + var(--rs-p-v) * 2);min-width:calc(var(--rs-button-line-height) - (var(--rs-unit-x1) * 2) + (var(--rs-button-p-h) * 2))}.root:before{background:var(--rs-button-highlight-color,var(--rs-button-foreground-color));content:"";inset:0;opacity:var(--rs-button-highlight-opacity-base);position:absolute;transform:translateZ(0);transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:opacity}@media (hover:hover) and (pointer:fine){.root:hover:not(.--loading,.--highlighted,.--disabled,:active):before{opacity:var(--rs-button-highlight-opacity)}}.root.--highlighted:before,.root:active:not(.--loading,.--disabled):before{opacity:calc(var(--rs-button-highlight-opacity) + max(.04, var(--rs-button-highlight-opacity) / 2))}.text{align-items:center;display:flex;gap:var(--rs-button-gap)}.icon{margin-inline-end:var(--rs-button-gap)}.icon:last-child{margin-inline-end:0}.icon.--icon-position-end{margin-inline-end:0;margin-inline-start:var(--rs-button-gap)}.icon,.text{position:relative;z-index:5}.loader{align-items:center;display:none;inset:0;justify-content:center;position:absolute}.root.--icon-only .icon{margin:0 calc(var(--rs-unit-x1) * -1)}.root.--loading{cursor:default}.root.--loading .icon,.root.--loading .text{visibility:hidden}.root.--loading .loader{display:flex}.root.--rounded{border-radius:var(--rs-radius-circular)}.--size-small{--rs-button-p-v:var(--rs-unit-x1);--rs-button-p-h:var(--rs-unit-x2);--rs-button-gap:var(--rs-unit-x1);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-medium{--rs-button-p-v:var(--rs-unit-x2);--rs-button-p-h:var(--rs-unit-x3);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-large{--rs-button-p-v:var(--rs-unit-x3);--rs-button-p-h:var(--rs-unit-x4);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--size-xlarge{--rs-button-p-v:var(--rs-unit-x4);--rs-button-p-h:var(--rs-unit-x5);--rs-button-gap:var(--rs-unit-x3);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--full-width{text-align:center;width:100%}.root.--variant-solid.--color-neutral{--rs-button-highlight-opacity:0.04;--rs-button-background-color:var(--rs-color-background-neutral);--rs-button-foreground-color:var(--rs-color-on-background-neutral)}.root.--variant-solid.--color-primary{--rs-button-highlight-opacity:0.08;--rs-button-background-color:var(--rs-color-background-primary);--rs-button-foreground-color:var(--rs-color-on-background-primary)}.root.--variant-solid.--color-critical{--rs-button-highlight-opacity:0.08;--rs-button-background-color:var(--rs-color-background-critical);--rs-button-foreground-color:var(--rs-color-on-background-critical)}.root.--variant-solid.--color-positive{--rs-button-highlight-opacity:0.08;--rs-button-background-color:var(--rs-color-background-positive);--rs-button-foreground-color:var(--rs-color-on-background-positive)}.root.--variant-solid.--color-media{--rs-button-highlight-opacity:0.06;--rs-button-background-color:var(--rs-color-white);--rs-button-foreground-color:var(--rs-color-black)}.root.--variant-faded.--color-neutral{--rs-button-highlight-opacity:0.04;--rs-button-background-color:var(--rs-color-background-neutral-faded);--rs-button-foreground-color:var(--rs-color-foreground-neutral)}.root.--variant-faded.--color-primary{--rs-button-highlight-opacity:0.04;--rs-button-background-color:var(--rs-color-background-primary-faded);--rs-button-foreground-color:var(--rs-color-foreground-primary)}.root.--variant-faded.--color-critical{--rs-button-highlight-opacity:0.04;--rs-button-background-color:var(--rs-color-background-critical-faded);--rs-button-foreground-color:var(--rs-color-foreground-critical)}.root.--variant-faded.--color-positive{--rs-button-highlight-opacity:0.04;--rs-button-background-color:var(--rs-color-background-positive-faded);--rs-button-foreground-color:var(--rs-color-foreground-positive)}.root.--variant-faded.--color-media{--rs-button-highlight-opacity-base:0.24;--rs-button-highlight-opacity:0.32;--rs-button-foreground-color:var(--rs-color-white);--rs-button-highlight-color:var(--rs-color-black)}.root.--variant-faded.--color-inherit{--rs-button-highlight-opacity-base:0.12;--rs-button-highlight-opacity:0.16;--rs-button-foreground-color:inherit;--rs-button-highlight-color:currentcolor}.root.--variant-outline{--rs-button-border-width:1px;--rs-button-highlight-opacity:0.06}.root.--variant-outline.--color-primary{--rs-button-foreground-color:var(--rs-color-foreground-primary);--rs-button-border-color:var(--rs-color-border-primary-faded);--rs-button-highlight-color:var(--rs-color-background-primary)}.root.--variant-outline.--color-critical{--rs-button-foreground-color:var(--rs-color-foreground-critical);--rs-button-border-color:var(--rs-color-border-critical-faded);--rs-button-highlight-color:var(--rs-color-background-critical)}.root.--variant-outline.--color-positive{--rs-button-foreground-color:var(--rs-color-foreground-positive);--rs-button-border-color:var(--rs-color-border-positive-faded);--rs-button-highlight-color:var(--rs-color-background-positive)}.root.--variant-outline.--color-neutral{--rs-button-highlight-opacity:0.24;--rs-button-foreground-color:var(--rs-color-foreground-neutral);--rs-button-border-color:var(--rs-color-border-neutral);--rs-button-highlight-color:var(--rs-color-background-neutral)}.root.--variant-outline.--color-inherit{--rs-button-border-width:0px;--rs-button-foreground-color:inherit;--rs-button-highlight-color:currentcolor}.root.--variant-outline.--color-inherit:after{border:1px solid;border-radius:var(--rs-button-radius);content:"";inset:0;opacity:.28;pointer-events:none;position:absolute}.root.--variant-ghost{--rs-button-highlight-opacity:0.12}.root.--variant-ghost.--color-neutral{--rs-button-highlight-opacity:0.32;--rs-button-foreground-color:var(--rs-color-foreground-neutral);--rs-button-highlight-color:var(--rs-color-background-neutral)}.root.--variant-ghost.--color-primary{--rs-button-foreground-color:var(--rs-color-foreground-primary);--rs-button-highlight-color:var(--rs-color-background-primary)}.root.--variant-ghost.--color-critical{--rs-button-foreground-color:var(--rs-color-foreground-critical);--rs-button-highlight-color:var(--rs-color-background-critical)}.root.--variant-ghost.--color-positive{--rs-button-foreground-color:var(--rs-color-foreground-positive);--rs-button-highlight-color:var(--rs-color-background-positive)}.root.--variant-ghost.--color-inherit{--rs-button-foreground-color:inherit;--rs-button-highlight-color:currentcolor}.root.--elevated:not(:focus),[data-rs-keyboard] .root.--elevated:not(:focus){box-shadow:var(--rs-shadow-raised)}.root.--elevated.--variant-outline.--color-critical,.root.--elevated.--variant-outline.--color-neutral,.root.--elevated.--variant-outline.--color-positive,.root.--elevated.--variant-outline.--color-primary{background:var(--rs-color-background-elevation-raised)}.root.--disabled.--color-critical,.root.--disabled.--color-critical.--highlighted,.root.--disabled.--color-critical:active,.root.--disabled.--color-critical:hover,.root.--disabled.--color-inherit,.root.--disabled.--color-inherit.--highlighted,.root.--disabled.--color-inherit:active,.root.--disabled.--color-inherit:hover,.root.--disabled.--color-neutral,.root.--disabled.--color-neutral.--highlighted,.root.--disabled.--color-neutral:active,.root.--disabled.--color-neutral:hover,.root.--disabled.--color-positive,.root.--disabled.--color-positive.--highlighted,.root.--disabled.--color-positive:active,.root.--disabled.--color-positive:hover,.root.--disabled.--color-primary,.root.--disabled.--color-primary.--highlighted,.root.--disabled.--color-primary:active,.root.--disabled.--color-primary:hover{background-color:var(--rs-color-background-disabled)!important;border-color:var(--rs-color-border-disabled)!important;color:var(--rs-color-foreground-disabled)!important}.root.--disabled.--color-critical.--highlighted:before,.root.--disabled.--color-critical:active:before,.root.--disabled.--color-critical:before,.root.--disabled.--color-critical:hover:before,.root.--disabled.--color-inherit.--highlighted:before,.root.--disabled.--color-inherit:active:before,.root.--disabled.--color-inherit:before,.root.--disabled.--color-inherit:hover:before,.root.--disabled.--color-neutral.--highlighted:before,.root.--disabled.--color-neutral:active:before,.root.--disabled.--color-neutral:before,.root.--disabled.--color-neutral:hover:before,.root.--disabled.--color-positive.--highlighted:before,.root.--disabled.--color-positive:active:before,.root.--disabled.--color-positive:before,.root.--disabled.--color-positive:hover:before,.root.--disabled.--color-primary.--highlighted:before,.root.--disabled.--color-primary:active:before,.root.--disabled.--color-primary:before,.root.--disabled.--color-primary:hover:before{opacity:0!important}.root.--disabled.--color-critical.--highlighted.--variant-faded,.root.--disabled.--color-critical.--variant-faded,.root.--disabled.--color-critical:active.--variant-faded,.root.--disabled.--color-critical:hover.--variant-faded,.root.--disabled.--color-inherit.--highlighted.--variant-faded,.root.--disabled.--color-inherit.--variant-faded,.root.--disabled.--color-inherit:active.--variant-faded,.root.--disabled.--color-inherit:hover.--variant-faded,.root.--disabled.--color-neutral.--highlighted.--variant-faded,.root.--disabled.--color-neutral.--variant-faded,.root.--disabled.--color-neutral:active.--variant-faded,.root.--disabled.--color-neutral:hover.--variant-faded,.root.--disabled.--color-positive.--highlighted.--variant-faded,.root.--disabled.--color-positive.--variant-faded,.root.--disabled.--color-positive:active.--variant-faded,.root.--disabled.--color-positive:hover.--variant-faded,.root.--disabled.--color-primary.--highlighted.--variant-faded,.root.--disabled.--color-primary.--variant-faded,.root.--disabled.--color-primary:active.--variant-faded,.root.--disabled.--color-primary:hover.--variant-faded{background-color:var(--rs-color-background-disabled-faded)!important}.root.--disabled.--color-critical.--highlighted.--variant-outline,.root.--disabled.--color-critical.--variant-outline,.root.--disabled.--color-critical:active.--variant-outline,.root.--disabled.--color-critical:hover.--variant-outline,.root.--disabled.--color-inherit.--highlighted.--variant-outline,.root.--disabled.--color-inherit.--variant-outline,.root.--disabled.--color-inherit:active.--variant-outline,.root.--disabled.--color-inherit:hover.--variant-outline,.root.--disabled.--color-neutral.--highlighted.--variant-outline,.root.--disabled.--color-neutral.--variant-outline,.root.--disabled.--color-neutral:active.--variant-outline,.root.--disabled.--color-neutral:hover.--variant-outline,.root.--disabled.--color-positive.--highlighted.--variant-outline,.root.--disabled.--color-positive.--variant-outline,.root.--disabled.--color-positive:active.--variant-outline,.root.--disabled.--color-positive:hover.--variant-outline,.root.--disabled.--color-primary.--highlighted.--variant-outline,.root.--disabled.--color-primary.--variant-outline,.root.--disabled.--color-primary:active.--variant-outline,.root.--disabled.--color-primary:hover.--variant-outline{background-color:transparent!important}.root.--disabled.--color-critical.--highlighted.--variant-ghost,.root.--disabled.--color-critical.--variant-ghost,.root.--disabled.--color-critical:active.--variant-ghost,.root.--disabled.--color-critical:hover.--variant-ghost,.root.--disabled.--color-inherit.--highlighted.--variant-ghost,.root.--disabled.--color-inherit.--variant-ghost,.root.--disabled.--color-inherit:active.--variant-ghost,.root.--disabled.--color-inherit:hover.--variant-ghost,.root.--disabled.--color-neutral.--highlighted.--variant-ghost,.root.--disabled.--color-neutral.--variant-ghost,.root.--disabled.--color-neutral:active.--variant-ghost,.root.--disabled.--color-neutral:hover.--variant-ghost,.root.--disabled.--color-positive.--highlighted.--variant-ghost,.root.--disabled.--color-positive.--variant-ghost,.root.--disabled.--color-positive:active.--variant-ghost,.root.--disabled.--color-positive:hover.--variant-ghost,.root.--disabled.--color-primary.--highlighted.--variant-ghost,.root.--disabled.--color-primary.--variant-ghost,.root.--disabled.--color-primary:active.--variant-ghost,.root.--disabled.--color-primary:hover.--variant-ghost{background-color:transparent!important;border-color:transparent!important}.root.--disabled.--color-media,.root.--disabled.--color-media.--highlighted,.root.--disabled.--color-media:active,.root.--disabled.--color-media:hover{opacity:.4!important}.group .root{border-radius:0}.group .root:first-child{border-end-start-radius:var(--rs-button-radius);border-start-start-radius:var(--rs-button-radius)}.group .root:not(:first-child){border-inline-start:1px solid var(--rs-button-group-separator-color)}.group .root:last-child{border-end-end-radius:var(--rs-button-radius);border-start-end-radius:var(--rs-button-radius)}.group .root.--variant-solid.--color-neutral{--rs-button-group-separator-color:var(--rs-color-border-neutral)}.group .root.--variant-ghost.--color-neutral{--rs-button-group-separator-color:var(--rs-color-border-neutral-faded)}.group .root.--variant-solid.--color-positive{--rs-button-group-separator-color:var(--rs-color-border-positive)}.group .root.--variant-ghost.--color-positive{--rs-button-group-separator-color:var(--rs-color-border-positive-faded)}.group .root.--variant-solid.--color-critical{--rs-button-group-separator-color:var(--rs-color-border-critical)}.group .root.--variant-ghost.--color-critical{--rs-button-group-separator-color:var(--rs-color-border-critical-faded)}.group .root.--variant-solid.--color-primary{--rs-button-group-separator-color:var(--rs-color-border-primary)}.group .root.--variant-ghost.--color-primary{--rs-button-group-separator-color:var(--rs-color-border-primary-faded)}.group .root.--variant-faded.--color-positive{--rs-button-group-separator-color:var(--rs-color-border-positive-faded)}.group .root.--variant-faded.--color-critical{--rs-button-group-separator-color:var(--rs-color-border-critical-faded)}.group .root.--variant-faded.--color-primary{--rs-button-group-separator-color:var(--rs-color-border-primary-faded)}.group .root.--variant-solid.--color-black{--rs-button-group-separator-color:rgba(var(--rs-color-rgb-white),0.28)}.group .root.--variant-faded.--color-black{--rs-button-group-separator-color:rgba(var(--rs-color-rgb-white),0.14)}.group .root.--variant-faded.--color-white,.group .root.--variant-ghost.--color-black,.group .root.--variant-solid.--color-white{--rs-button-group-separator-color:rgba(var(--rs-color-rgb-black),0.2)}.group .root.--variant-ghost.--color-white{--rs-button-group-separator-color:rgba(var(--rs-color-rgb-white),0.28)}.aligner{line-height:0}@media (--rs-viewport-m ){.--size-small--m{--rs-button-p-v:var(--rs-unit-x1);--rs-button-p-h:var(--rs-unit-x2);--rs-button-gap:var(--rs-unit-x1);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-medium--m{--rs-button-p-v:var(--rs-unit-x2);--rs-button-p-h:var(--rs-unit-x3);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-large--m{--rs-button-p-v:var(--rs-unit-x3);--rs-button-p-h:var(--rs-unit-x4);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--size-xlarge--m{--rs-button-p-v:var(--rs-unit-x4);--rs-button-p-h:var(--rs-unit-x5);--rs-button-gap:var(--rs-unit-x3);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--full-width-true--m{text-align:center;width:100%}.--full-width-false--m{text-align:initial;width:auto}}@media (--rs-viewport-l ){.--size-small--l{--rs-button-p-v:var(--rs-unit-x1);--rs-button-p-h:var(--rs-unit-x2);--rs-button-gap:var(--rs-unit-x1);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-medium--l{--rs-button-p-v:var(--rs-unit-x2);--rs-button-p-h:var(--rs-unit-x3);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-large--l{--rs-button-p-v:var(--rs-unit-x3);--rs-button-p-h:var(--rs-unit-x4);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--size-xlarge--l{--rs-button-p-v:var(--rs-unit-x4);--rs-button-p-h:var(--rs-unit-x5);--rs-button-gap:var(--rs-unit-x3);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--full-width-true--l{text-align:center;width:100%}.--full-width-false--l{text-align:initial;width:auto}}@media (--rs-viewport-xl ){.--size-small--xl{--rs-button-p-v:var(--rs-unit-x1);--rs-button-p-h:var(--rs-unit-x2);--rs-button-gap:var(--rs-unit-x1);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-medium--xl{--rs-button-p-v:var(--rs-unit-x2);--rs-button-p-h:var(--rs-unit-x3);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-large--xl{--rs-button-p-v:var(--rs-unit-x3);--rs-button-p-h:var(--rs-unit-x4);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--size-xlarge--xl{--rs-button-p-v:var(--rs-unit-x4);--rs-button-p-h:var(--rs-unit-x5);--rs-button-gap:var(--rs-unit-x3);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--full-width-true--xl{text-align:center;width:100%}.--full-width-false--xl{text-align:initial;width:auto}}
1
+ .root{--rs-p-v:var(--rs-button-p-v);--rs-p-h:var(--rs-button-p-h);--rs-button-highlight-opacity:0;--rs-button-highlight-opacity-base:0;--rs-button-border-color:transparent;--rs-button-border-width:0px;align-items:center;border:var(--rs-button-border-width) solid var(--rs-button-border-color);border-radius:var(--rs-button-radius);box-sizing:border-box;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;padding:calc(var(--rs-unit-x1) - var(--rs-button-border-width)) calc(var(--rs-p-h) - var(--rs-button-border-width));position:relative;text-align:initial;text-decoration:none;transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:background-color,box-shadow,border-color,color,transform;z-index:0;-webkit-tap-highlight-color:transparent;background-color:var(--rs-button-background-color);color:var(--rs-button-foreground-color);font-family:var(--rs-font-family-body);font-size:var(--rs-button-font-size);font-weight:var(--rs-font-weight-medium);letter-spacing:var(--rs-button-letter-spacing);line-height:var(--rs-button-line-height);min-height:calc(var(--rs-button-line-height) + var(--rs-p-v) * 2);min-width:calc(var(--rs-button-line-height) - (var(--rs-unit-x1) * 2) + (var(--rs-button-p-h) * 2))}.root:before{background:var(--rs-button-highlight-color,var(--rs-button-foreground-color));content:"";inset:0;opacity:var(--rs-button-highlight-opacity-base);position:absolute;transform:translateZ(0);transition:var(--rs-duration-fast) var(--rs-easing-standard);transition-property:opacity,background-color}@media (hover:hover) and (pointer:fine){.root:hover:not(.--loading,.--highlighted,.--disabled):before{opacity:var(--rs-button-highlight-opacity)}}.root.--highlighted:before,.root:active:not(.--loading,.--disabled):before{opacity:calc(var(--rs-button-highlight-opacity) + max(.04, var(--rs-button-highlight-opacity) / 2))}.text{align-items:center;display:flex;gap:var(--rs-button-gap)}.icon{margin-inline-end:var(--rs-button-gap)}.icon:last-child{margin-inline-end:0}.icon.--icon-position-end{margin-inline-end:0;margin-inline-start:var(--rs-button-gap)}.icon,.text{position:relative;z-index:5}.loader{align-items:center;display:none;inset:0;justify-content:center;position:absolute}.root.--icon-only .icon{margin:0 calc(var(--rs-unit-x1) * -1)}.root.--loading{cursor:default}.root.--loading .icon,.root.--loading .text{visibility:hidden}.root.--loading .loader{display:flex}.root.--rounded{border-radius:var(--rs-radius-circular)}.--size-small{--rs-button-p-v:var(--rs-unit-x1);--rs-button-p-h:var(--rs-unit-x2);--rs-button-gap:var(--rs-unit-x1);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-medium{--rs-button-p-v:var(--rs-unit-x2);--rs-button-p-h:var(--rs-unit-x3);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-large{--rs-button-p-v:var(--rs-unit-x3);--rs-button-p-h:var(--rs-unit-x4);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--size-xlarge{--rs-button-p-v:var(--rs-unit-x4);--rs-button-p-h:var(--rs-unit-x5);--rs-button-gap:var(--rs-unit-x3);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--full-width{text-align:center;width:100%}.root.--variant-solid.--color-neutral{--rs-button-highlight-opacity:0.04;--rs-button-background-color:var(--rs-color-background-neutral);--rs-button-foreground-color:var(--rs-color-on-background-neutral)}.root.--variant-solid.--color-primary{--rs-button-highlight-opacity:0.08;--rs-button-background-color:var(--rs-color-background-primary);--rs-button-foreground-color:var(--rs-color-on-background-primary)}.root.--variant-solid.--color-critical{--rs-button-highlight-opacity:0.08;--rs-button-background-color:var(--rs-color-background-critical);--rs-button-foreground-color:var(--rs-color-on-background-critical)}.root.--variant-solid.--color-positive{--rs-button-highlight-opacity:0.08;--rs-button-background-color:var(--rs-color-background-positive);--rs-button-foreground-color:var(--rs-color-on-background-positive)}.root.--variant-solid.--color-media{--rs-button-highlight-opacity:0.06;--rs-button-background-color:var(--rs-color-white);--rs-button-foreground-color:var(--rs-color-black)}.root.--variant-faded.--color-neutral{--rs-button-highlight-opacity:0.04;--rs-button-background-color:var(--rs-color-background-neutral-faded);--rs-button-foreground-color:var(--rs-color-foreground-neutral)}.root.--variant-faded.--color-primary{--rs-button-highlight-opacity:0.04;--rs-button-background-color:var(--rs-color-background-primary-faded);--rs-button-foreground-color:var(--rs-color-foreground-primary)}.root.--variant-faded.--color-critical{--rs-button-highlight-opacity:0.04;--rs-button-background-color:var(--rs-color-background-critical-faded);--rs-button-foreground-color:var(--rs-color-foreground-critical)}.root.--variant-faded.--color-positive{--rs-button-highlight-opacity:0.04;--rs-button-background-color:var(--rs-color-background-positive-faded);--rs-button-foreground-color:var(--rs-color-foreground-positive)}.root.--variant-faded.--color-media{--rs-button-highlight-opacity-base:0.24;--rs-button-highlight-opacity:0.32;--rs-button-foreground-color:var(--rs-color-white);--rs-button-highlight-color:var(--rs-color-black)}.root.--variant-faded.--color-inherit{--rs-button-highlight-opacity-base:0.12;--rs-button-highlight-opacity:0.16;--rs-button-foreground-color:inherit;--rs-button-highlight-color:currentcolor}.root.--variant-outline{--rs-button-border-width:1px;--rs-button-highlight-opacity:0.06}.root.--variant-outline.--color-primary{--rs-button-foreground-color:var(--rs-color-foreground-primary);--rs-button-border-color:var(--rs-color-border-primary-faded);--rs-button-highlight-color:var(--rs-color-background-primary)}.root.--variant-outline.--color-critical{--rs-button-foreground-color:var(--rs-color-foreground-critical);--rs-button-border-color:var(--rs-color-border-critical-faded);--rs-button-highlight-color:var(--rs-color-background-critical)}.root.--variant-outline.--color-positive{--rs-button-foreground-color:var(--rs-color-foreground-positive);--rs-button-border-color:var(--rs-color-border-positive-faded);--rs-button-highlight-color:var(--rs-color-background-positive)}.root.--variant-outline.--color-neutral{--rs-button-highlight-opacity:0.24;--rs-button-foreground-color:var(--rs-color-foreground-neutral);--rs-button-border-color:var(--rs-color-border-neutral);--rs-button-highlight-color:var(--rs-color-background-neutral)}.root.--variant-outline.--color-inherit{--rs-button-border-width:0px;--rs-button-foreground-color:inherit;--rs-button-highlight-color:currentcolor}.root.--variant-outline.--color-inherit:after{border:1px solid;border-radius:var(--rs-button-radius);content:"";inset:0;opacity:.28;pointer-events:none;position:absolute}.root.--variant-ghost{--rs-button-highlight-opacity:0.12}.root.--variant-ghost.--color-neutral{--rs-button-highlight-opacity:0.32;--rs-button-foreground-color:var(--rs-color-foreground-neutral);--rs-button-highlight-color:var(--rs-color-background-neutral)}.root.--variant-ghost.--color-primary{--rs-button-foreground-color:var(--rs-color-foreground-primary);--rs-button-highlight-color:var(--rs-color-background-primary)}.root.--variant-ghost.--color-critical{--rs-button-foreground-color:var(--rs-color-foreground-critical);--rs-button-highlight-color:var(--rs-color-background-critical)}.root.--variant-ghost.--color-positive{--rs-button-foreground-color:var(--rs-color-foreground-positive);--rs-button-highlight-color:var(--rs-color-background-positive)}.root.--variant-ghost.--color-inherit{--rs-button-foreground-color:inherit;--rs-button-highlight-color:currentcolor}.root.--elevated:not(:focus),[data-rs-keyboard] .root.--elevated:not(:focus){box-shadow:var(--rs-shadow-raised)}.root.--elevated.--variant-outline.--color-critical,.root.--elevated.--variant-outline.--color-neutral,.root.--elevated.--variant-outline.--color-positive,.root.--elevated.--variant-outline.--color-primary{background:var(--rs-color-background-elevation-raised)}.root.--disabled.--color-critical,.root.--disabled.--color-critical.--highlighted,.root.--disabled.--color-critical:active,.root.--disabled.--color-critical:hover,.root.--disabled.--color-inherit,.root.--disabled.--color-inherit.--highlighted,.root.--disabled.--color-inherit:active,.root.--disabled.--color-inherit:hover,.root.--disabled.--color-neutral,.root.--disabled.--color-neutral.--highlighted,.root.--disabled.--color-neutral:active,.root.--disabled.--color-neutral:hover,.root.--disabled.--color-positive,.root.--disabled.--color-positive.--highlighted,.root.--disabled.--color-positive:active,.root.--disabled.--color-positive:hover,.root.--disabled.--color-primary,.root.--disabled.--color-primary.--highlighted,.root.--disabled.--color-primary:active,.root.--disabled.--color-primary:hover{background-color:var(--rs-color-background-disabled)!important;border-color:var(--rs-color-border-disabled)!important;color:var(--rs-color-foreground-disabled)!important}.root.--disabled.--color-critical.--highlighted:before,.root.--disabled.--color-critical:active:before,.root.--disabled.--color-critical:before,.root.--disabled.--color-critical:hover:before,.root.--disabled.--color-inherit.--highlighted:before,.root.--disabled.--color-inherit:active:before,.root.--disabled.--color-inherit:before,.root.--disabled.--color-inherit:hover:before,.root.--disabled.--color-neutral.--highlighted:before,.root.--disabled.--color-neutral:active:before,.root.--disabled.--color-neutral:before,.root.--disabled.--color-neutral:hover:before,.root.--disabled.--color-positive.--highlighted:before,.root.--disabled.--color-positive:active:before,.root.--disabled.--color-positive:before,.root.--disabled.--color-positive:hover:before,.root.--disabled.--color-primary.--highlighted:before,.root.--disabled.--color-primary:active:before,.root.--disabled.--color-primary:before,.root.--disabled.--color-primary:hover:before{opacity:0!important}.root.--disabled.--color-critical.--highlighted.--variant-faded,.root.--disabled.--color-critical.--variant-faded,.root.--disabled.--color-critical:active.--variant-faded,.root.--disabled.--color-critical:hover.--variant-faded,.root.--disabled.--color-inherit.--highlighted.--variant-faded,.root.--disabled.--color-inherit.--variant-faded,.root.--disabled.--color-inherit:active.--variant-faded,.root.--disabled.--color-inherit:hover.--variant-faded,.root.--disabled.--color-neutral.--highlighted.--variant-faded,.root.--disabled.--color-neutral.--variant-faded,.root.--disabled.--color-neutral:active.--variant-faded,.root.--disabled.--color-neutral:hover.--variant-faded,.root.--disabled.--color-positive.--highlighted.--variant-faded,.root.--disabled.--color-positive.--variant-faded,.root.--disabled.--color-positive:active.--variant-faded,.root.--disabled.--color-positive:hover.--variant-faded,.root.--disabled.--color-primary.--highlighted.--variant-faded,.root.--disabled.--color-primary.--variant-faded,.root.--disabled.--color-primary:active.--variant-faded,.root.--disabled.--color-primary:hover.--variant-faded{background-color:var(--rs-color-background-disabled-faded)!important}.root.--disabled.--color-critical.--highlighted.--variant-outline,.root.--disabled.--color-critical.--variant-outline,.root.--disabled.--color-critical:active.--variant-outline,.root.--disabled.--color-critical:hover.--variant-outline,.root.--disabled.--color-inherit.--highlighted.--variant-outline,.root.--disabled.--color-inherit.--variant-outline,.root.--disabled.--color-inherit:active.--variant-outline,.root.--disabled.--color-inherit:hover.--variant-outline,.root.--disabled.--color-neutral.--highlighted.--variant-outline,.root.--disabled.--color-neutral.--variant-outline,.root.--disabled.--color-neutral:active.--variant-outline,.root.--disabled.--color-neutral:hover.--variant-outline,.root.--disabled.--color-positive.--highlighted.--variant-outline,.root.--disabled.--color-positive.--variant-outline,.root.--disabled.--color-positive:active.--variant-outline,.root.--disabled.--color-positive:hover.--variant-outline,.root.--disabled.--color-primary.--highlighted.--variant-outline,.root.--disabled.--color-primary.--variant-outline,.root.--disabled.--color-primary:active.--variant-outline,.root.--disabled.--color-primary:hover.--variant-outline{background-color:transparent!important}.root.--disabled.--color-critical.--highlighted.--variant-ghost,.root.--disabled.--color-critical.--variant-ghost,.root.--disabled.--color-critical:active.--variant-ghost,.root.--disabled.--color-critical:hover.--variant-ghost,.root.--disabled.--color-inherit.--highlighted.--variant-ghost,.root.--disabled.--color-inherit.--variant-ghost,.root.--disabled.--color-inherit:active.--variant-ghost,.root.--disabled.--color-inherit:hover.--variant-ghost,.root.--disabled.--color-neutral.--highlighted.--variant-ghost,.root.--disabled.--color-neutral.--variant-ghost,.root.--disabled.--color-neutral:active.--variant-ghost,.root.--disabled.--color-neutral:hover.--variant-ghost,.root.--disabled.--color-positive.--highlighted.--variant-ghost,.root.--disabled.--color-positive.--variant-ghost,.root.--disabled.--color-positive:active.--variant-ghost,.root.--disabled.--color-positive:hover.--variant-ghost,.root.--disabled.--color-primary.--highlighted.--variant-ghost,.root.--disabled.--color-primary.--variant-ghost,.root.--disabled.--color-primary:active.--variant-ghost,.root.--disabled.--color-primary:hover.--variant-ghost{background-color:transparent!important;border-color:transparent!important}.root.--disabled.--color-media,.root.--disabled.--color-media.--highlighted,.root.--disabled.--color-media:active,.root.--disabled.--color-media:hover{opacity:.4!important}.group .root{border-inline:1px solid var(--rs-button-group-separator-color);border-radius:0}.group .root:first-child{border-end-start-radius:var(--rs-button-radius);border-start-start-radius:var(--rs-button-radius)}.group .root:last-child{border-end-end-radius:var(--rs-button-radius);border-start-end-radius:var(--rs-button-radius)}.group .root:not(:last-child){border-inline-end-width:0}.group .root.--highlighted{border-inline-end-width:1px}.group .root.--highlighted+.root{border-inline-start-width:0}.group .root.--variant-solid.--color-neutral{--rs-button-group-separator-color:var(--rs-color-border-neutral)}.group .root.--variant-solid.--color-positive{--rs-button-group-separator-color:var(--rs-color-border-positive)}.group .root.--variant-solid.--color-critical{--rs-button-group-separator-color:var(--rs-color-border-critical)}.group .root.--variant-solid.--color-primary{--rs-button-group-separator-color:var(--rs-color-border-primary)}.group .root.--variant-faded.--color-neutral,.group .root.--variant-outline.--color-neutral{--rs-button-group-separator-color:var(--rs-color-border-neutral)}.group .root.--variant-faded.--color-positive,.group .root.--variant-outline.--color-positive{--rs-button-group-separator-color:var(--rs-color-border-positive-faded)}.group .root.--variant-faded.--color-critical,.group .root.--variant-outline.--color-critical{--rs-button-group-separator-color:var(--rs-color-border-critical-faded)}.group .root.--variant-faded.--color-primary,.group .root.--variant-outline.--color-primary{--rs-button-group-separator-color:var(--rs-color-border-primary-faded)}.group .root.--variant-ghost.--color-neutral{--rs-button-group-separator-color:var(--rs-color-border-neutral-faded)}.group .root.--variant-ghost.--color-positive{--rs-button-group-separator-color:var(--rs-color-border-positive-faded)}.group .root.--variant-ghost.--color-critical{--rs-button-group-separator-color:var(--rs-color-border-critical-faded)}.group .root.--variant-ghost.--color-primary{--rs-button-group-separator-color:var(--rs-color-border-primary-faded)}.group .root.--variant-solid.--color-media{--rs-button-group-separator-color:rgba(var(--rs-color-rgb-black),0.12)}.group .root.--variant-faded.--color-media{--rs-button-group-separator-color:rgba(var(--rs-color-rgb-white),0.12)}.aligner{line-height:0}@media (--rs-viewport-m ){.--size-small--m{--rs-button-p-v:var(--rs-unit-x1);--rs-button-p-h:var(--rs-unit-x2);--rs-button-gap:var(--rs-unit-x1);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-medium--m{--rs-button-p-v:var(--rs-unit-x2);--rs-button-p-h:var(--rs-unit-x3);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-large--m{--rs-button-p-v:var(--rs-unit-x3);--rs-button-p-h:var(--rs-unit-x4);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--size-xlarge--m{--rs-button-p-v:var(--rs-unit-x4);--rs-button-p-h:var(--rs-unit-x5);--rs-button-gap:var(--rs-unit-x3);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--full-width-true--m{text-align:center;width:100%}.--full-width-false--m{text-align:initial;width:auto}}@media (--rs-viewport-l ){.--size-small--l{--rs-button-p-v:var(--rs-unit-x1);--rs-button-p-h:var(--rs-unit-x2);--rs-button-gap:var(--rs-unit-x1);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-medium--l{--rs-button-p-v:var(--rs-unit-x2);--rs-button-p-h:var(--rs-unit-x3);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-large--l{--rs-button-p-v:var(--rs-unit-x3);--rs-button-p-h:var(--rs-unit-x4);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--size-xlarge--l{--rs-button-p-v:var(--rs-unit-x4);--rs-button-p-h:var(--rs-unit-x5);--rs-button-gap:var(--rs-unit-x3);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--full-width-true--l{text-align:center;width:100%}.--full-width-false--l{text-align:initial;width:auto}}@media (--rs-viewport-xl ){.--size-small--xl{--rs-button-p-v:var(--rs-unit-x1);--rs-button-p-h:var(--rs-unit-x2);--rs-button-gap:var(--rs-unit-x1);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-medium--xl{--rs-button-p-v:var(--rs-unit-x2);--rs-button-p-h:var(--rs-unit-x3);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-3);--rs-button-font-size:var(--rs-font-size-body-3);--rs-button-letter-spacing:var(--rs-letter-spacing-body-3);--rs-button-radius:var(--rs-radius-small)}.--size-large--xl{--rs-button-p-v:var(--rs-unit-x3);--rs-button-p-h:var(--rs-unit-x4);--rs-button-gap:var(--rs-unit-x2);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--size-xlarge--xl{--rs-button-p-v:var(--rs-unit-x4);--rs-button-p-h:var(--rs-unit-x5);--rs-button-gap:var(--rs-unit-x3);--rs-button-line-height:var(--rs-line-height-body-2);--rs-button-font-size:var(--rs-font-size-body-2);--rs-button-letter-spacing:var(--rs-letter-spacing-body-2);--rs-button-radius:var(--rs-radius-medium)}.--full-width-true--xl{text-align:center;width:100%}.--full-width-false--xl{text-align:initial;width:auto}}
@@ -723,7 +723,7 @@ export const group = {
723
723
  </Example.Item>
724
724
  <Example.Item title="variant: outline">
725
725
  <View gap={2}>
726
- {["neutral", "primary", "critical", "positive", "media"].map((color) => (<Button.Group key={color}>
726
+ {["neutral", "primary", "critical", "positive"].map((color) => (<Button.Group key={color}>
727
727
  <Button color={color} variant="outline">
728
728
  One
729
729
  </Button>
@@ -23,6 +23,7 @@ const CalendarMonth = (props) => {
23
23
  : !foundFocusableDate &&
24
24
  !!date &&
25
25
  isDateFocusable({ date, lastFocusedDate, startValue });
26
+ // eslint-disable-next-line react-hooks/immutability
26
27
  if (focusable)
27
28
  foundFocusableDate = true;
28
29
  return (_jsx(CalendarDate, { date: date, isoDate: isoDate, disabled: disabled, range: range, focusable: focusable, startValue: startValue, endValue: endValue, onChange: onChange, hoveredDate: hoveredDate, onDateHover: onDateHover, onDateHoverEnd: onDateHoverEnd, onDateFocus: setLastFocusedDate, renderAriaLabel: renderDateAriaLabel, selectedDates: selectedDates }, index));
@@ -32,6 +32,7 @@ const Carousel = (props) => {
32
32
  // itemRefs.current[index] = null;
33
33
  // };
34
34
  };
35
+ // eslint-disable-next-line react-hooks/refs
35
36
  const handleScroll = rafThrottle((event) => {
36
37
  const el = event.target;
37
38
  const firstVisibleIndex = getFirstVisibleIndex();
@@ -47,7 +47,7 @@ export declare const testScroll: {
47
47
  name: string;
48
48
  render: () => import("react").JSX.Element;
49
49
  };
50
- export declare const testThemeSwitching: {
50
+ export declare const testTheme: {
51
51
  name: string;
52
52
  render: () => import("react").JSX.Element;
53
53
  };
@@ -6,6 +6,7 @@ import { useTheme } from "../../Theme/useTheme.js";
6
6
  import IconCheckmark from "../../../icons/Checkmark.js";
7
7
  import { expect, fn, userEvent, waitFor, within } from "storybook/test";
8
8
  import { sleep } from "../../../utilities/helpers.js";
9
+ import Theme from "../../Theme/index.js";
9
10
  export default {
10
11
  title: "Components/DropdownMenu",
11
12
  component: DropdownMenu,
@@ -239,7 +240,7 @@ export const testScroll = {
239
240
  const ThemeSwitching = () => {
240
241
  const { invertColorMode } = useTheme();
241
242
  return (<View gap={3} direction="row">
242
- <DropdownMenu defaultActive>
243
+ <DropdownMenu>
243
244
  <DropdownMenu.Trigger>
244
245
  {(attributes) => <Button attributes={attributes}>Open</Button>}
245
246
  </DropdownMenu.Trigger>
@@ -251,11 +252,27 @@ const ThemeSwitching = () => {
251
252
  <Button onClick={() => invertColorMode()}>Switch color mode</Button>
252
253
  </View>);
253
254
  };
254
- export const testThemeSwitching = {
255
- name: "test: theme switching",
255
+ const ThemeMultiple = () => {
256
+ return (<Theme name={["reshaped", "figma"]}>
257
+ <DropdownMenu>
258
+ <DropdownMenu.Trigger>
259
+ {(attributes) => <Button attributes={attributes}>Open</Button>}
260
+ </DropdownMenu.Trigger>
261
+ <DropdownMenu.Content>
262
+ <DropdownMenu.Item>Item 1</DropdownMenu.Item>
263
+ <DropdownMenu.Item>Item 2</DropdownMenu.Item>
264
+ </DropdownMenu.Content>
265
+ </DropdownMenu>
266
+ </Theme>);
267
+ };
268
+ export const testTheme = {
269
+ name: "test: theme",
256
270
  render: () => (<Example>
257
- <Example.Item title="Switch color mode while dropdown is active and check that it still works">
271
+ <Example.Item title="switch color mode while dropdown is active and check that it still works">
258
272
  <ThemeSwitching />
259
273
  </Example.Item>
274
+ <Example.Item title="dropdown inherits multiple themes">
275
+ <ThemeMultiple />
276
+ </Example.Item>
260
277
  </Example>),
261
278
  };
@@ -19,13 +19,16 @@ const FlyoutContent = (props) => {
19
19
  return null;
20
20
  if (!triggerElRef)
21
21
  return null;
22
+ // eslint-disable-next-line react-hooks/refs
22
23
  return findClosestPositionContainer({ el: triggerElRef.current });
23
24
  }, [mounted, triggerElRef]);
24
25
  const closestScrollableContainer = React.useMemo(() => {
25
26
  if (!mounted)
26
27
  return;
28
+ // eslint-disable-next-line react-hooks/refs
27
29
  if (!triggerElRef?.current)
28
30
  return;
31
+ // eslint-disable-next-line react-hooks/refs
29
32
  return findClosestScrollableContainer({ el: triggerElRef.current });
30
33
  }, [mounted, triggerElRef]);
31
34
  const containerRef = passedContainerRef || { current: closestFixedContainer };
@@ -34,7 +34,9 @@ const FlyoutControlled = (props) => {
34
34
  * Resolving the same inside another Flyout.Content should reset the inheritance
35
35
  * For example, if you have a tooltip -> popover inside another popover.content, tooltip shouldn't use its parent context anymore
36
36
  */
37
- const isParentTriggerInsideFlyout = !!parentTriggerRef?.current && parentContentRef?.current?.contains(parentTriggerRef.current);
37
+ const isParentTriggerInsideFlyout =
38
+ // eslint-disable-next-line react-hooks/refs
39
+ !!parentTriggerRef?.current && parentContentRef?.current?.contains(parentTriggerRef.current);
38
40
  const tryParentTrigger = !parentContentRef || isParentTriggerInsideFlyout;
39
41
  const triggerElRef = (tryParentTrigger && parentTriggerRef) || internalTriggerElRef;
40
42
  const triggerBoundsRef = React.useRef(null);
@@ -53,13 +55,16 @@ const FlyoutControlled = (props) => {
53
55
  // Touch devices trigger onMouseEnter but we don't need to apply regular hover timeouts
54
56
  // So we're saving a flag on touch start and then change the mouse enter behavior
55
57
  const hoverTriggeredWithTouchEventRef = React.useRef(false);
58
+ // eslint-disable-next-line react-hooks/refs
56
59
  const flyout = useFlyout({
57
60
  triggerElRef,
58
61
  flyoutElRef,
62
+ // eslint-disable-next-line react-hooks/refs
59
63
  triggerBounds: originCoordinates ?? triggerBoundsRef.current,
60
64
  width,
61
65
  position: passedPosition,
62
66
  defaultActive: resolvedActive,
67
+ // eslint-disable-next-line react-hooks/refs
63
68
  container: containerRef?.current,
64
69
  fallbackPositions,
65
70
  fallbackAdjustLayout,
@@ -1,3 +1,3 @@
1
1
  export { default } from "./Flyout";
2
2
  export { useFlyoutContext } from "./Flyout.context";
3
- export type { Props as FlyoutProps, Instance as FlyoutInstance, TriggerProps as FlyoutTriggerProps, ContentProps as FlyoutContentProps, CloseReason as FlyoutCloseReason, } from "./Flyout.types";
3
+ export type { Props as FlyoutProps, Instance as FlyoutInstance, TriggerProps as FlyoutTriggerProps, ContentProps as FlyoutContentProps, CloseReason as FlyoutCloseReason, TriggerAttributes as FlyoutTriggerAttributes, } from "./Flyout.types";
@@ -51,7 +51,7 @@ export declare const useFormControl: () => {
51
51
  results?: number | undefined | undefined;
52
52
  security?: string | undefined | undefined;
53
53
  unselectable?: "on" | "off" | undefined | undefined;
54
- popover?: "" | "auto" | "manual" | undefined | undefined;
54
+ popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
55
55
  popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
56
56
  popoverTarget?: string | undefined | undefined;
57
57
  inert?: boolean | undefined | undefined;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { classNames, responsiveClassNames, setComponentChildId } from "../../utilities/props.js";
2
+ import { classNames, responsiveClassNames } from "../../utilities/props.js";
3
3
  import s from "./Hidden.module.css";
4
4
  const Hidden = (props) => {
5
5
  const { as: TagName = "div", children, visibility, hide } = props;
@@ -7,5 +7,4 @@ const Hidden = (props) => {
7
7
  return _jsx(TagName, { className: rootClassNames, children: children });
8
8
  };
9
9
  Hidden.displayName = "Hidden";
10
- setComponentChildId(Hidden, "Hidden");
11
10
  export default Hidden;
@@ -39,10 +39,9 @@ export declare const overlay: {
39
39
  name: string;
40
40
  render: () => React.JSX.Element;
41
41
  };
42
- export declare const flags: {
43
- name: string;
44
- render: () => React.JSX.Element;
45
- };
42
+ export declare const flags: StoryObj<{
43
+ handleClose: ReturnType<typeof fn>;
44
+ }>;
46
45
  export declare const containerRef: {
47
46
  name: string;
48
47
  render: () => React.JSX.Element;
@@ -54,9 +53,6 @@ export declare const handlers: StoryObj<{
54
53
  handleClose: ReturnType<typeof fn>;
55
54
  handleAfterClose: ReturnType<typeof fn>;
56
55
  }>;
57
- export declare const disableCloseOnClick: StoryObj<{
58
- handleClose: ReturnType<typeof fn>;
59
- }>;
60
56
  export declare const className: StoryObj;
61
57
  export declare const edgeCases: {
62
58
  name: string;
@@ -152,10 +152,13 @@ export const overlay = {
152
152
  };
153
153
  export const flags = {
154
154
  name: "disableCloseOnOutsideClick",
155
- render: () => {
155
+ args: {
156
+ handleClose: fn(),
157
+ },
158
+ render: (args) => {
156
159
  return (<Example>
157
160
  <Example.Item title="disableCloseOnOutsideClick">
158
- <Demo disableCloseOnOutsideClick/>
161
+ <Demo disableCloseOnOutsideClick onClose={args.handleClose} active/>
159
162
  </Example.Item>
160
163
  </Example>);
161
164
  },
@@ -272,26 +275,6 @@ export const handlers = {
272
275
  });
273
276
  },
274
277
  };
275
- export const disableCloseOnClick = {
276
- name: "disableCloseOnOutsideClick",
277
- args: {
278
- handleClose: fn(),
279
- },
280
- render: (args) => (<Modal active disableCloseOnOutsideClick onClose={(closeArgs) => {
281
- args.handleClose(closeArgs);
282
- }}>
283
- <Modal.Title>Title</Modal.Title>
284
- Content
285
- </Modal>),
286
- play: async ({ canvasElement, args }) => {
287
- const canvas = within(canvasElement.ownerDocument.body);
288
- const overlay = canvas.getByText("Content");
289
- await userEvent.click(overlay);
290
- expect(args.handleClose).toHaveBeenCalledTimes(0);
291
- await userEvent.keyboard("{Escape}");
292
- expect(args.handleClose).toHaveBeenCalledTimes(1);
293
- },
294
- };
295
278
  export const className = {
296
279
  name: "className, attributes",
297
280
  render: () => (<Modal active className="test-classname" attributes={{ "data-testid": "test-id" }}>
@@ -117,27 +117,27 @@ const NumberFieldControlled = (props) => {
117
117
  const touchIconSize = responsivePropDependency(size, (size) => {
118
118
  return size === "small" ? 3 : 4;
119
119
  });
120
- const controlsNode = (_jsx("span", { className: s["controls-wrapper"], children: _jsxs("span", { className: s.controls, children: [_jsxs(Actionable, { className: s.control, disabled: increaseDisabled, disableFocusRing: true, as: "span", attributes: {
121
- "aria-label": increaseAriaLabel,
122
- "aria-controls": inputId,
123
- role: "button",
124
- tabIndex: increaseDisabled ? undefined : -1,
125
- onPointerDown: (e) => handleControlPointerDown(e, handleIncrease),
126
- onPointerUp: handleControlPointerUp,
127
- onPointerLeave: handleControlPointerUp,
128
- // Prevent menu from opening on long press
129
- onContextMenu: (e) => e.preventDefault(),
130
- }, children: [_jsx(Icon, { svg: IconChevronUp, size: mouseIconSize, className: s["icon--mouse"] }), _jsx(Icon, { svg: IconPlus, size: touchIconSize, className: s["icon--touch"] })] }), _jsxs(Actionable, { className: s.control, disabled: decreaseDisabled, disableFocusRing: true, as: "span", attributes: {
131
- "aria-label": decreaseAriaLabel,
132
- "aria-controls": inputId,
133
- role: "button",
134
- tabIndex: decreaseDisabled ? undefined : -1,
135
- onPointerDown: (e) => handleControlPointerDown(e, handleDecrease),
136
- onPointerUp: handleControlPointerUp,
137
- onPointerLeave: handleControlPointerUp,
138
- // Prevent menu from opening on long press
139
- onContextMenu: (e) => e.preventDefault(),
140
- }, children: [_jsx(Icon, { svg: IconChevronDown, size: mouseIconSize, className: s["icon--mouse"] }), _jsx(Icon, { svg: IconMinus, size: touchIconSize, className: s["icon--touch"] })] })] }) }));
120
+ const controlsNode = (_jsxs("span", { className: s.controls, children: [_jsxs(Actionable, { className: s.control, disabled: increaseDisabled, disableFocusRing: true, as: "span", attributes: {
121
+ "aria-label": increaseAriaLabel,
122
+ "aria-controls": inputId,
123
+ role: "button",
124
+ tabIndex: increaseDisabled ? undefined : -1,
125
+ onPointerDown: (e) => handleControlPointerDown(e, handleIncrease),
126
+ onPointerUp: handleControlPointerUp,
127
+ onPointerLeave: handleControlPointerUp,
128
+ // Prevent menu from opening on long press
129
+ onContextMenu: (e) => e.preventDefault(),
130
+ }, children: [_jsx(Icon, { svg: IconChevronUp, size: mouseIconSize, className: s["icon--mouse"] }), _jsx(Icon, { svg: IconPlus, size: touchIconSize, className: s["icon--touch"] })] }), _jsxs(Actionable, { className: s.control, disabled: decreaseDisabled, disableFocusRing: true, as: "span", attributes: {
131
+ "aria-label": decreaseAriaLabel,
132
+ "aria-controls": inputId,
133
+ role: "button",
134
+ tabIndex: decreaseDisabled ? undefined : -1,
135
+ onPointerDown: (e) => handleControlPointerDown(e, handleDecrease),
136
+ onPointerUp: handleControlPointerUp,
137
+ onPointerLeave: handleControlPointerUp,
138
+ // Prevent menu from opening on long press
139
+ onContextMenu: (e) => e.preventDefault(),
140
+ }, children: [_jsx(Icon, { svg: IconChevronDown, size: mouseIconSize, className: s["icon--mouse"] }), _jsx(Icon, { svg: IconMinus, size: touchIconSize, className: s["icon--touch"] })] })] }));
141
141
  return (_jsx(TextField, { ...textFieldProps, className: [
142
142
  textFieldProps.className,
143
143
  responsiveClassNames(s, "controls--size", size),
@@ -158,7 +158,7 @@ const NumberFieldControlled = (props) => {
158
158
  max,
159
159
  step,
160
160
  className: s.field,
161
- }, size: size, id: inputId, hasError: hasError, disabled: disabled, value: textValue, onChange: handleChange, name: name, endSlot: controlsNode }));
161
+ }, size: size, id: inputId, hasError: hasError, disabled: disabled, value: textValue, onChange: handleChange, name: name, endSlot: controlsNode, endSlotPadding: 0 }));
162
162
  };
163
163
  NumberFieldControlled.displayName = "NumberFieldControlled";
164
164
  export default NumberFieldControlled;
@@ -100,6 +100,7 @@ const Overlay = (props) => {
100
100
  const containerEl = containerRef?.current;
101
101
  if (containerEl) {
102
102
  originalOverflowRef.current = containerEl.style.overflow;
103
+ // eslint-disable-next-line react-hooks/immutability
103
104
  containerEl.style.overflow = "hidden";
104
105
  containerEl.style.isolation = "isolate";
105
106
  setOffset([containerEl.scrollLeft, containerEl.scrollTop]);
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import React from "react";
4
- import { classNames, setComponentChildId, isMatchingComponentChildId } from "../../utilities/props.js";
4
+ import { classNames } from "../../utilities/props.js";
5
5
  import View from "../View/index.js";
6
6
  import ResizableHandle, { ResizableHandleContext } from "./ResizableHandle.js";
7
7
  import s from "./Resizable.module.css";
@@ -113,10 +113,10 @@ const Resizable = (props) => {
113
113
  }, [horizontal]);
114
114
  const output = React.Children.map(children, (child) => {
115
115
  const isComponent = React.isValidElement(child);
116
- if (isComponent && child.props && !isMatchingComponentChildId(child, "Resizable.Item")) {
116
+ if (isComponent && child.props && child.type !== Resizable.Item) {
117
117
  return (_jsx(ResizableHandleContext.Provider, { value: { containerRef, index: currentHandleIndex++, onDrag, direction }, children: child }));
118
118
  }
119
- if (isComponent && child.props && isMatchingComponentChildId(child, "Resizable.Item")) {
119
+ if (isComponent && child.props && child.type === Resizable.Item) {
120
120
  const index = currentHandleIndex;
121
121
  return (_jsx(PrivateResizableItem, { ...child.props, index: currentItemIndex++, ref: (el) => {
122
122
  itemsRef.current[index] = { el, props: child.props };
@@ -127,7 +127,6 @@ const Resizable = (props) => {
127
127
  return (_jsx(View, { attributes: { ...attributes, ref: containerRef }, className: rootClassNames, height: height, direction: direction, align: "stretch", gap: gap, children: output }));
128
128
  };
129
129
  Resizable.Item = () => null;
130
- setComponentChildId(Resizable.Item, "Resizable.Item");
131
130
  Resizable.Handle = ResizableHandle;
132
131
  Resizable.displayName = "Resizable";
133
132
  export default Resizable;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import React from "react";
3
4
  import SelectNative from "./SelectNative.js";
@@ -1,11 +1,14 @@
1
+ "use client";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import React from "react";
3
4
  import DropdownMenu from "../DropdownMenu/index.js";
4
5
  import Icon from "../Icon/index.js";
5
6
  import CheckmarkIcon from "../../icons/Checkmark.js";
6
- import { isMatchingComponentChildId, responsivePropDependency } from "../../utilities/props.js";
7
+ import { responsivePropDependency } from "../../utilities/props.js";
7
8
  import SelectRoot from "./SelectRoot.js";
8
9
  import SelectTrigger from "./SelectTrigger.js";
10
+ import SelectOption from "./SelectOption.js";
11
+ import SelectOptionGroup from "./SelectOptionGroup.js";
9
12
  const SelectCustomControlled = (props) => {
10
13
  const { children, value, name, placeholder, size, multiple, width = "trigger", position, fallbackPositions, } = props;
11
14
  const initialFocusRef = React.useRef(null);
@@ -19,7 +22,7 @@ const SelectCustomControlled = (props) => {
19
22
  return React.Children.map(children, (child, index) => {
20
23
  if (!React.isValidElement(child))
21
24
  return null;
22
- if (isMatchingComponentChildId(child, "Select.Option")) {
25
+ if (child.type === SelectOption) {
23
26
  const component = child;
24
27
  const option = component.props;
25
28
  const matchingValue = multiple ? value.includes(option.value) : option.value === value;
@@ -51,7 +54,7 @@ const SelectCustomControlled = (props) => {
51
54
  },
52
55
  });
53
56
  }
54
- if (isMatchingComponentChildId(child, "Select.OptionGroup")) {
57
+ if (child.type === SelectOptionGroup) {
55
58
  const component = child;
56
59
  const optionGroup = component.props;
57
60
  return React.cloneElement(component, {
@@ -62,6 +65,7 @@ const SelectCustomControlled = (props) => {
62
65
  return null;
63
66
  });
64
67
  };
68
+ // eslint-disable-next-line react-hooks/refs
65
69
  const resolvedChildren = traverseOptionList(children);
66
70
  const handleKeyDown = (e) => {
67
71
  const key = e.key;
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import DropdownMenu from "../DropdownMenu/index.js";
3
- import { setComponentChildId } from "../../utilities/props.js";
4
3
  import s from "./Select.module.css";
5
4
  const SelectOption = (props) => {
6
5
  const { value, ...menuItemProps } = props;
@@ -11,5 +10,4 @@ const SelectOption = (props) => {
11
10
  } }));
12
11
  };
13
12
  SelectOption.displayName = "Select.Option";
14
- setComponentChildId(SelectOption, "Select.Option");
15
13
  export default SelectOption;
@@ -1,11 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import View from "../View/index.js";
3
3
  import Text from "../Text/index.js";
4
- import { setComponentChildId } from "../../utilities/props.js";
5
4
  const SelectOptionGroup = (props) => {
6
5
  const { label, children } = props;
7
6
  return (_jsxs(View, { attributes: { role: "group" }, gap: 1, children: [_jsx(View, { paddingInline: 3, paddingTop: 3, children: _jsx(Text, { variant: "caption-1", color: "neutral-faded", children: label }) }), _jsx(View.Item, { children: children })] }));
8
7
  };
9
8
  SelectOptionGroup.displayName = "Select.OptionGroup";
10
- setComponentChildId(SelectOptionGroup, "Select.OptionGroup");
11
9
  export default SelectOptionGroup;