reshaped 3.0.9 → 3.0.11-rc.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 (90) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/bin/cli.js +0 -1
  3. package/dist/bundle.css +1 -1
  4. package/dist/bundle.d.ts +3 -1
  5. package/dist/bundle.js +10 -10
  6. package/dist/cjs/themes/_generator/tokens/font/font.transforms.js +6 -0
  7. package/dist/cjs/themes/_generator/tokens/font/font.types.d.ts +1 -0
  8. package/dist/cjs/themes/_generator/tokens/types.d.ts +1 -1
  9. package/dist/cjs/themes/_generator/utilities/color.d.ts +16 -0
  10. package/dist/cjs/themes/_generator/utilities/color.js +57 -7
  11. package/dist/cjs/themes/_generator/utilities/generateBackgroundColors.js +4 -0
  12. package/dist/cjs/themes/_generator/utilities/tests/color.test.js +73 -42
  13. package/dist/cjs/themes/figma/theme.css +1 -1
  14. package/dist/cjs/themes/index.d.ts +17 -0
  15. package/dist/cjs/themes/index.js +3 -0
  16. package/dist/cjs/themes/reshaped/theme.css +1 -1
  17. package/dist/cjs/themes/slate/theme.css +1 -1
  18. package/dist/cjs/types/config.d.ts +1 -0
  19. package/dist/components/Button/Button.module.css +1 -1
  20. package/dist/components/Button/tests/Button.stories.js +3 -1
  21. package/dist/components/DropdownMenu/DropdownMenu.module.css +1 -1
  22. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +1 -1
  23. package/dist/components/MenuItem/MenuItem.module.css +1 -1
  24. package/dist/components/Modal/Modal.js +4 -3
  25. package/dist/components/Modal/tests/Modal.stories.d.ts +0 -1
  26. package/dist/components/Modal/tests/Modal.stories.js +0 -16
  27. package/dist/components/Overlay/Overlay.js +7 -7
  28. package/dist/components/Overlay/tests/Overlay.stories.js +3 -1
  29. package/dist/components/Popover/Popover.js +2 -2
  30. package/dist/components/Popover/Popover.types.d.ts +1 -1
  31. package/dist/components/Reshaped/Reshaped.css +1 -1
  32. package/dist/components/Resizable/Resizable.d.ts +8 -0
  33. package/dist/components/Resizable/Resizable.js +149 -0
  34. package/dist/components/Resizable/Resizable.module.css +1 -0
  35. package/dist/components/Resizable/Resizable.types.d.ts +29 -0
  36. package/dist/components/Resizable/Resizable.types.js +1 -0
  37. package/dist/components/Resizable/index.d.ts +2 -0
  38. package/dist/components/Resizable/index.js +1 -0
  39. package/dist/components/Resizable/tests/Resizable.stories.d.ts +15 -0
  40. package/dist/components/Resizable/tests/Resizable.stories.js +58 -0
  41. package/dist/components/ScrollArea/ScrollArea.js +4 -4
  42. package/dist/components/Select/Select.module.css +1 -1
  43. package/dist/components/Slider/Slider.types.d.ts +2 -2
  44. package/dist/components/Slider/Slider.utilities.js +4 -4
  45. package/dist/components/Slider/SliderControlled.js +11 -9
  46. package/dist/components/Slider/SliderThumb.js +1 -1
  47. package/dist/components/Slider/tests/Slider.stories.js +4 -0
  48. package/dist/components/Text/Text.module.css +1 -1
  49. package/dist/components/TextArea/TextArea.module.css +1 -1
  50. package/dist/components/TextField/TextField.module.css +1 -1
  51. package/dist/components/Toast/Toast.types.d.ts +7 -6
  52. package/dist/components/Toast/index.d.ts +1 -1
  53. package/dist/components/Toast/useToast.d.ts +1 -1
  54. package/dist/components/Tooltip/tests/Tooltip.stories.js +31 -0
  55. package/dist/components/_private/Flyout/Flyout.context.d.ts +3 -1
  56. package/dist/components/_private/Flyout/Flyout.context.js +4 -1
  57. package/dist/components/_private/Flyout/Flyout.types.d.ts +1 -0
  58. package/dist/components/_private/Flyout/FlyoutContent.js +5 -7
  59. package/dist/components/_private/Flyout/FlyoutControlled.js +18 -12
  60. package/dist/components/_private/Flyout/FlyoutTrigger.js +3 -2
  61. package/dist/components/_private/Flyout/tests/Flyout.stories.d.ts +2 -8
  62. package/dist/components/_private/Flyout/tests/Flyout.stories.js +87 -62
  63. package/dist/components/_private/Flyout/useFlyout.js +11 -2
  64. package/dist/components/_private/Portal/Portal.module.css +1 -1
  65. package/dist/hooks/_private/useOnClickOutside.js +5 -3
  66. package/dist/hooks/tests/useDrag.stories.d.ts +6 -0
  67. package/dist/hooks/tests/useDrag.stories.js +29 -0
  68. package/dist/hooks/useDrag.d.ts +17 -0
  69. package/dist/hooks/useDrag.js +116 -0
  70. package/dist/hooks/useHandlerRef.d.ts +8 -0
  71. package/dist/hooks/useHandlerRef.js +16 -0
  72. package/dist/hooks/useScrollLock.js +4 -3
  73. package/dist/hooks/useToggle.js +1 -1
  74. package/dist/index.d.ts +3 -1
  75. package/dist/index.js +1 -0
  76. package/dist/themes/_generator/tests/themes.stories.js +23 -0
  77. package/dist/themes/_generator/tokens/font/font.transforms.js +6 -0
  78. package/dist/themes/_generator/tokens/font/font.types.d.ts +1 -0
  79. package/dist/themes/_generator/tokens/types.d.ts +1 -1
  80. package/dist/themes/_generator/utilities/color.d.ts +16 -0
  81. package/dist/themes/_generator/utilities/color.js +54 -6
  82. package/dist/themes/_generator/utilities/generateBackgroundColors.js +4 -0
  83. package/dist/themes/figma/theme.css +1 -1
  84. package/dist/themes/index.d.ts +17 -0
  85. package/dist/themes/index.js +3 -0
  86. package/dist/themes/reshaped/theme.css +1 -1
  87. package/dist/themes/slate/theme.css +1 -1
  88. package/dist/types/config.d.ts +1 -0
  89. package/dist/types/global.d.ts +1 -1
  90. package/package.json +1 -1
@@ -1 +1 @@
1
- .root{transition:color var(--rs-duration-fast) var(--rs-easing-standard)}.--clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--rs-text-lines);overflow:hidden}.--break-all{word-break:break-all}.--wrap-balance{text-wrap:balance}.--align-start{text-align:start}.--align-center{text-align:center}.--align-end{text-align:end}.--variant-title-1{font-family:var(--rs-font-family-title-1);font-size:var(--rs-font-size-title-1);font-weight:var(--rs-font-weight-title-1);line-height:var(--rs-line-height-title-1)}.--variant-title-2{font-family:var(--rs-font-family-title-2);font-size:var(--rs-font-size-title-2);font-weight:var(--rs-font-weight-title-2);line-height:var(--rs-line-height-title-2)}.--variant-title-3{font-family:var(--rs-font-family-title-3);font-size:var(--rs-font-size-title-3);font-weight:var(--rs-font-weight-title-3);line-height:var(--rs-line-height-title-3)}.--variant-title-4{font-family:var(--rs-font-family-title-4);font-size:var(--rs-font-size-title-4);font-weight:var(--rs-font-weight-title-4);line-height:var(--rs-line-height-title-4)}.--variant-title-5{font-family:var(--rs-font-family-title-5);font-size:var(--rs-font-size-title-5);font-weight:var(--rs-font-weight-title-5);line-height:var(--rs-line-height-title-5)}.--variant-title-6{font-family:var(--rs-font-family-title-6);font-size:var(--rs-font-size-title-6);font-weight:var(--rs-font-weight-title-6);line-height:var(--rs-line-height-title-6)}.--variant-featured-1{font-family:var(--rs-font-family-featured-1);font-size:var(--rs-font-size-featured-1);font-weight:var(--rs-font-weight-featured-1);line-height:var(--rs-line-height-featured-1)}.--variant-featured-2{font-family:var(--rs-font-family-featured-2);font-size:var(--rs-font-size-featured-2);font-weight:var(--rs-font-weight-featured-2);line-height:var(--rs-line-height-featured-2)}.--variant-featured-3{font-family:var(--rs-font-family-featured-3);font-size:var(--rs-font-size-featured-3);font-weight:var(--rs-font-weight-featured-3);line-height:var(--rs-line-height-featured-3)}.--variant-body-1{font-family:var(--rs-font-family-body-1);font-size:var(--rs-font-size-body-1);font-weight:var(--rs-font-weight-body-1);line-height:var(--rs-line-height-body-1)}.--variant-body-2{font-family:var(--rs-font-family-body-2);font-size:var(--rs-font-size-body-2);font-weight:var(--rs-font-weight-body-2);line-height:var(--rs-line-height-body-2)}.--variant-body-3{font-family:var(--rs-font-family-body-3);font-size:var(--rs-font-size-body-3);font-weight:var(--rs-font-weight-body-3);line-height:var(--rs-line-height-body-3)}.--variant-caption-1{font-family:var(--rs-font-family-caption-1);font-size:var(--rs-font-size-caption-1);font-weight:var(--rs-font-weight-caption-1);line-height:var(--rs-line-height-caption-1)}.--variant-caption-2{font-family:var(--rs-font-family-caption-2);font-size:var(--rs-font-size-caption-2);font-weight:var(--rs-font-weight-caption-2);line-height:var(--rs-line-height-caption-2)}.--weight-regular{font-weight:var(--rs-font-weight-regular)!important}.--weight-medium{font-weight:var(--rs-font-weight-medium)!important}.--weight-bold{font-weight:var(--rs-font-weight-bold)!important}.--color-neutral{color:var(--rs-color-foreground-neutral)}.--color-neutral-faded{color:var(--rs-color-foreground-neutral-faded)}.--color-primary{color:var(--rs-color-foreground-primary)}.--color-warning{color:var(--rs-color-foreground-warning)}.--color-positive{color:var(--rs-color-foreground-positive)}.--color-critical{color:var(--rs-color-foreground-critical)}.--color-disabled{color:var(--rs-color-foreground-disabled)}.--decoration-line-through{text-decoration:line-through}@media (--rs-viewport-m ){.--align-start--m{text-align:start}.--align-center--m{text-align:center}.--align-end--m{text-align:end}.--variant-title-1--m{font-family:var(--rs-font-family-title-1);font-size:var(--rs-font-size-title-1);font-weight:var(--rs-font-weight-title-1);line-height:var(--rs-line-height-title-1)}.--variant-title-2--m{font-family:var(--rs-font-family-title-2);font-size:var(--rs-font-size-title-2);font-weight:var(--rs-font-weight-title-2);line-height:var(--rs-line-height-title-2)}.--variant-title-3--m{font-family:var(--rs-font-family-title-3);font-size:var(--rs-font-size-title-3);font-weight:var(--rs-font-weight-title-3);line-height:var(--rs-line-height-title-3)}.--variant-title-4--m{font-family:var(--rs-font-family-title-4);font-size:var(--rs-font-size-title-4);font-weight:var(--rs-font-weight-title-4);line-height:var(--rs-line-height-title-4)}.--variant-title-5--m{font-family:var(--rs-font-family-title-5);font-size:var(--rs-font-size-title-5);font-weight:var(--rs-font-weight-title-5);line-height:var(--rs-line-height-title-5)}.--variant-title-6--m{font-family:var(--rs-font-family-title-6);font-size:var(--rs-font-size-title-6);font-weight:var(--rs-font-weight-title-6);line-height:var(--rs-line-height-title-6)}.--variant-featured-1--m{font-family:var(--rs-font-family-featured-1);font-size:var(--rs-font-size-featured-1);font-weight:var(--rs-font-weight-featured-1);line-height:var(--rs-line-height-featured-1)}.--variant-featured-2--m{font-family:var(--rs-font-family-featured-2);font-size:var(--rs-font-size-featured-2);font-weight:var(--rs-font-weight-featured-2);line-height:var(--rs-line-height-featured-2)}.--variant-featured-3--m{font-family:var(--rs-font-family-featured-3);font-size:var(--rs-font-size-featured-3);font-weight:var(--rs-font-weight-featured-3);line-height:var(--rs-line-height-featured-3)}.--variant-body-1--m{font-family:var(--rs-font-family-body-1);font-size:var(--rs-font-size-body-1);font-weight:var(--rs-font-weight-body-1);line-height:var(--rs-line-height-body-1)}.--variant-body-2--m{font-family:var(--rs-font-family-body-2);font-size:var(--rs-font-size-body-2);font-weight:var(--rs-font-weight-body-2);line-height:var(--rs-line-height-body-2)}.--variant-body-3--m{font-family:var(--rs-font-family-body-3);font-size:var(--rs-font-size-body-3);font-weight:var(--rs-font-weight-body-3);line-height:var(--rs-line-height-body-3)}.--variant-caption-1--m{font-family:var(--rs-font-family-caption-1);font-size:var(--rs-font-size-caption-1);font-weight:var(--rs-font-weight-caption-1);line-height:var(--rs-line-height-caption-1)}.--variant-caption-2--m{font-family:var(--rs-font-family-caption-2);font-size:var(--rs-font-size-caption-2);font-weight:var(--rs-font-weight-caption-2);line-height:var(--rs-line-height-caption-2)}.--weight-regular--m{font-weight:var(--rs-font-weight-regular)!important}.--weight-medium--m{font-weight:var(--rs-font-weight-medium)!important}.--weight-bold--m{font-weight:var(--rs-font-weight-bold)!important}}@media (--rs-viewport-l ){.--align-start--l{text-align:start}.--align-center--l{text-align:center}.--align-end--l{text-align:end}.--variant-title-1--l{font-family:var(--rs-font-family-title-1);font-size:var(--rs-font-size-title-1);font-weight:var(--rs-font-weight-title-1);line-height:var(--rs-line-height-title-1)}.--variant-title-2--l{font-family:var(--rs-font-family-title-2);font-size:var(--rs-font-size-title-2);font-weight:var(--rs-font-weight-title-2);line-height:var(--rs-line-height-title-2)}.--variant-title-3--l{font-family:var(--rs-font-family-title-3);font-size:var(--rs-font-size-title-3);font-weight:var(--rs-font-weight-title-3);line-height:var(--rs-line-height-title-3)}.--variant-title-4--l{font-family:var(--rs-font-family-title-4);font-size:var(--rs-font-size-title-4);font-weight:var(--rs-font-weight-title-4);line-height:var(--rs-line-height-title-4)}.--variant-title-5--l{font-family:var(--rs-font-family-title-5);font-size:var(--rs-font-size-title-5);font-weight:var(--rs-font-weight-title-5);line-height:var(--rs-line-height-title-5)}.--variant-title-6--l{font-family:var(--rs-font-family-title-6);font-size:var(--rs-font-size-title-6);font-weight:var(--rs-font-weight-title-6);line-height:var(--rs-line-height-title-6)}.--variant-featured-1--l{font-family:var(--rs-font-family-featured-1);font-size:var(--rs-font-size-featured-1);font-weight:var(--rs-font-weight-featured-1);line-height:var(--rs-line-height-featured-1)}.--variant-featured-2--l{font-family:var(--rs-font-family-featured-2);font-size:var(--rs-font-size-featured-2);font-weight:var(--rs-font-weight-featured-2);line-height:var(--rs-line-height-featured-2)}.--variant-featured-3--l{font-family:var(--rs-font-family-featured-3);font-size:var(--rs-font-size-featured-3);font-weight:var(--rs-font-weight-featured-3);line-height:var(--rs-line-height-featured-3)}.--variant-body-1--l{font-family:var(--rs-font-family-body-1);font-size:var(--rs-font-size-body-1);font-weight:var(--rs-font-weight-body-1);line-height:var(--rs-line-height-body-1)}.--variant-body-2--l{font-family:var(--rs-font-family-body-2);font-size:var(--rs-font-size-body-2);font-weight:var(--rs-font-weight-body-2);line-height:var(--rs-line-height-body-2)}.--variant-body-3--l{font-family:var(--rs-font-family-body-3);font-size:var(--rs-font-size-body-3);font-weight:var(--rs-font-weight-body-3);line-height:var(--rs-line-height-body-3)}.--variant-caption-1--l{font-family:var(--rs-font-family-caption-1);font-size:var(--rs-font-size-caption-1);font-weight:var(--rs-font-weight-caption-1);line-height:var(--rs-line-height-caption-1)}.--variant-caption-2--l{font-family:var(--rs-font-family-caption-2);font-size:var(--rs-font-size-caption-2);font-weight:var(--rs-font-weight-caption-2);line-height:var(--rs-line-height-caption-2)}.--weight-regular--l{font-weight:var(--rs-font-weight-regular)!important}.--weight-medium--l{font-weight:var(--rs-font-weight-medium)!important}.--weight-bold--l{font-weight:var(--rs-font-weight-bold)!important}}@media (--rs-viewport-xl ){.--align-start--xl{text-align:start}.--align-center--xl{text-align:center}.--align-end--xl{text-align:end}.--variant-title-1--xl{font-family:var(--rs-font-family-title-1);font-size:var(--rs-font-size-title-1);font-weight:var(--rs-font-weight-title-1);line-height:var(--rs-line-height-title-1)}.--variant-title-2--xl{font-family:var(--rs-font-family-title-2);font-size:var(--rs-font-size-title-2);font-weight:var(--rs-font-weight-title-2);line-height:var(--rs-line-height-title-2)}.--variant-title-3--xl{font-family:var(--rs-font-family-title-3);font-size:var(--rs-font-size-title-3);font-weight:var(--rs-font-weight-title-3);line-height:var(--rs-line-height-title-3)}.--variant-title-4--xl{font-family:var(--rs-font-family-title-4);font-size:var(--rs-font-size-title-4);font-weight:var(--rs-font-weight-title-4);line-height:var(--rs-line-height-title-4)}.--variant-title-5--xl{font-family:var(--rs-font-family-title-5);font-size:var(--rs-font-size-title-5);font-weight:var(--rs-font-weight-title-5);line-height:var(--rs-line-height-title-5)}.--variant-title-6--xl{font-family:var(--rs-font-family-title-6);font-size:var(--rs-font-size-title-6);font-weight:var(--rs-font-weight-title-6);line-height:var(--rs-line-height-title-6)}.--variant-featured-1--xl{font-family:var(--rs-font-family-featured-1);font-size:var(--rs-font-size-featured-1);font-weight:var(--rs-font-weight-featured-1);line-height:var(--rs-line-height-featured-1)}.--variant-featured-2--xl{font-family:var(--rs-font-family-featured-2);font-size:var(--rs-font-size-featured-2);font-weight:var(--rs-font-weight-featured-2);line-height:var(--rs-line-height-featured-2)}.--variant-featured-3--xl{font-family:var(--rs-font-family-featured-3);font-size:var(--rs-font-size-featured-3);font-weight:var(--rs-font-weight-featured-3);line-height:var(--rs-line-height-featured-3)}.--variant-body-1--xl{font-family:var(--rs-font-family-body-1);font-size:var(--rs-font-size-body-1);font-weight:var(--rs-font-weight-body-1);line-height:var(--rs-line-height-body-1)}.--variant-body-2--xl{font-family:var(--rs-font-family-body-2);font-size:var(--rs-font-size-body-2);font-weight:var(--rs-font-weight-body-2);line-height:var(--rs-line-height-body-2)}.--variant-body-3--xl{font-family:var(--rs-font-family-body-3);font-size:var(--rs-font-size-body-3);font-weight:var(--rs-font-weight-body-3);line-height:var(--rs-line-height-body-3)}.--variant-caption-1--xl{font-family:var(--rs-font-family-caption-1);font-size:var(--rs-font-size-caption-1);font-weight:var(--rs-font-weight-caption-1);line-height:var(--rs-line-height-caption-1)}.--variant-caption-2--xl{font-family:var(--rs-font-family-caption-2);font-size:var(--rs-font-size-caption-2);font-weight:var(--rs-font-weight-caption-2);line-height:var(--rs-line-height-caption-2)}.--weight-regular--xl{font-weight:var(--rs-font-weight-regular)!important}.--weight-medium--xl{font-weight:var(--rs-font-weight-medium)!important}.--weight-bold--xl{font-weight:var(--rs-font-weight-bold)!important}}
1
+ .root{transition:color var(--rs-duration-fast) var(--rs-easing-standard)}.--clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--rs-text-lines);overflow:hidden}.--break-all{word-break:break-all}.--wrap-balance{text-wrap:balance}.--align-start{text-align:start}.--align-center{text-align:center}.--align-end{text-align:end}.--variant-title-1{font-family:var(--rs-font-family-title-1);font-size:var(--rs-font-size-title-1);font-weight:var(--rs-font-weight-title-1);letter-spacing:var(--rs-letter-spacing-title-1);line-height:var(--rs-line-height-title-1)}.--variant-title-2{font-family:var(--rs-font-family-title-2);font-size:var(--rs-font-size-title-2);font-weight:var(--rs-font-weight-title-2);letter-spacing:var(--rs-letter-spacing-title-2);line-height:var(--rs-line-height-title-2)}.--variant-title-3{font-family:var(--rs-font-family-title-3);font-size:var(--rs-font-size-title-3);font-weight:var(--rs-font-weight-title-3);letter-spacing:var(--rs-letter-spacing-title-3);line-height:var(--rs-line-height-title-3)}.--variant-title-4{font-family:var(--rs-font-family-title-4);font-size:var(--rs-font-size-title-4);font-weight:var(--rs-font-weight-title-4);letter-spacing:var(--rs-letter-spacing-title-4);line-height:var(--rs-line-height-title-4)}.--variant-title-5{font-family:var(--rs-font-family-title-5);font-size:var(--rs-font-size-title-5);font-weight:var(--rs-font-weight-title-5);letter-spacing:var(--rs-letter-spacing-title-5);line-height:var(--rs-line-height-title-5)}.--variant-title-6{font-family:var(--rs-font-family-title-6);font-size:var(--rs-font-size-title-6);font-weight:var(--rs-font-weight-title-6);letter-spacing:var(--rs-letter-spacing-title-6);line-height:var(--rs-line-height-title-6)}.--variant-featured-1{font-family:var(--rs-font-family-featured-1);font-size:var(--rs-font-size-featured-1);font-weight:var(--rs-font-weight-featured-1);letter-spacing:var(--rs-letter-spacing-featured-1);line-height:var(--rs-line-height-featured-1)}.--variant-featured-2{font-family:var(--rs-font-family-featured-2);font-size:var(--rs-font-size-featured-2);font-weight:var(--rs-font-weight-featured-2);letter-spacing:var(--rs-letter-spacing-featured-2);line-height:var(--rs-line-height-featured-2)}.--variant-featured-3{font-family:var(--rs-font-family-featured-3);font-size:var(--rs-font-size-featured-3);font-weight:var(--rs-font-weight-featured-3);letter-spacing:var(--rs-letter-spacing-featured-3);line-height:var(--rs-line-height-featured-3)}.--variant-body-1{font-family:var(--rs-font-family-body-1);font-size:var(--rs-font-size-body-1);font-weight:var(--rs-font-weight-body-1);letter-spacing:var(--rs-letter-spacing-body-1);line-height:var(--rs-line-height-body-1)}.--variant-body-2{font-family:var(--rs-font-family-body-2);font-size:var(--rs-font-size-body-2);font-weight:var(--rs-font-weight-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--variant-body-3{font-family:var(--rs-font-family-body-3);font-size:var(--rs-font-size-body-3);font-weight:var(--rs-font-weight-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--variant-caption-1{font-family:var(--rs-font-family-caption-1);font-size:var(--rs-font-size-caption-1);font-weight:var(--rs-font-weight-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1);line-height:var(--rs-line-height-caption-1)}.--variant-caption-2{font-family:var(--rs-font-family-caption-2);font-size:var(--rs-font-size-caption-2);font-weight:var(--rs-font-weight-caption-2);letter-spacing:var(--rs-letter-spacing-caption-2);line-height:var(--rs-line-height-caption-2)}.--weight-regular{font-weight:var(--rs-font-weight-regular)!important}.--weight-medium{font-weight:var(--rs-font-weight-medium)!important}.--weight-bold{font-weight:var(--rs-font-weight-bold)!important}.--color-neutral{color:var(--rs-color-foreground-neutral)}.--color-neutral-faded{color:var(--rs-color-foreground-neutral-faded)}.--color-primary{color:var(--rs-color-foreground-primary)}.--color-warning{color:var(--rs-color-foreground-warning)}.--color-positive{color:var(--rs-color-foreground-positive)}.--color-critical{color:var(--rs-color-foreground-critical)}.--color-disabled{color:var(--rs-color-foreground-disabled)}.--decoration-line-through{text-decoration:line-through}@media (--rs-viewport-m ){.--align-start--m{text-align:start}.--align-center--m{text-align:center}.--align-end--m{text-align:end}.--variant-title-1--m{font-family:var(--rs-font-family-title-1);font-size:var(--rs-font-size-title-1);font-weight:var(--rs-font-weight-title-1);letter-spacing:var(--rs-letter-spacing-title-1);line-height:var(--rs-line-height-title-1)}.--variant-title-2--m{font-family:var(--rs-font-family-title-2);font-size:var(--rs-font-size-title-2);font-weight:var(--rs-font-weight-title-2);letter-spacing:var(--rs-letter-spacing-title-2);line-height:var(--rs-line-height-title-2)}.--variant-title-3--m{font-family:var(--rs-font-family-title-3);font-size:var(--rs-font-size-title-3);font-weight:var(--rs-font-weight-title-3);letter-spacing:var(--rs-letter-spacing-title-3);line-height:var(--rs-line-height-title-3)}.--variant-title-4--m{font-family:var(--rs-font-family-title-4);font-size:var(--rs-font-size-title-4);font-weight:var(--rs-font-weight-title-4);letter-spacing:var(--rs-letter-spacing-title-4);line-height:var(--rs-line-height-title-4)}.--variant-title-5--m{font-family:var(--rs-font-family-title-5);font-size:var(--rs-font-size-title-5);font-weight:var(--rs-font-weight-title-5);letter-spacing:var(--rs-letter-spacing-title-5);line-height:var(--rs-line-height-title-5)}.--variant-title-6--m{font-family:var(--rs-font-family-title-6);font-size:var(--rs-font-size-title-6);font-weight:var(--rs-font-weight-title-6);letter-spacing:var(--rs-letter-spacing-title-6);line-height:var(--rs-line-height-title-6)}.--variant-featured-1--m{font-family:var(--rs-font-family-featured-1);font-size:var(--rs-font-size-featured-1);font-weight:var(--rs-font-weight-featured-1);letter-spacing:var(--rs-letter-spacing-featured-1);line-height:var(--rs-line-height-featured-1)}.--variant-featured-2--m{font-family:var(--rs-font-family-featured-2);font-size:var(--rs-font-size-featured-2);font-weight:var(--rs-font-weight-featured-2);letter-spacing:var(--rs-letter-spacing-featured-2);line-height:var(--rs-line-height-featured-2)}.--variant-featured-3--m{font-family:var(--rs-font-family-featured-3);font-size:var(--rs-font-size-featured-3);font-weight:var(--rs-font-weight-featured-3);letter-spacing:var(--rs-letter-spacing-featured-3);line-height:var(--rs-line-height-featured-3)}.--variant-body-1--m{font-family:var(--rs-font-family-body-1);font-size:var(--rs-font-size-body-1);font-weight:var(--rs-font-weight-body-1);letter-spacing:var(--rs-letter-spacing-body-1);line-height:var(--rs-line-height-body-1)}.--variant-body-2--m{font-family:var(--rs-font-family-body-2);font-size:var(--rs-font-size-body-2);font-weight:var(--rs-font-weight-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--variant-body-3--m{font-family:var(--rs-font-family-body-3);font-size:var(--rs-font-size-body-3);font-weight:var(--rs-font-weight-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--variant-caption-1--m{font-family:var(--rs-font-family-caption-1);font-size:var(--rs-font-size-caption-1);font-weight:var(--rs-font-weight-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1);line-height:var(--rs-line-height-caption-1)}.--variant-caption-2--m{font-family:var(--rs-font-family-caption-2);font-size:var(--rs-font-size-caption-2);font-weight:var(--rs-font-weight-caption-2);letter-spacing:var(--rs-letter-spacing-caption-2);line-height:var(--rs-line-height-caption-2)}.--weight-regular--m{font-weight:var(--rs-font-weight-regular)!important}.--weight-medium--m{font-weight:var(--rs-font-weight-medium)!important}.--weight-bold--m{font-weight:var(--rs-font-weight-bold)!important}}@media (--rs-viewport-l ){.--align-start--l{text-align:start}.--align-center--l{text-align:center}.--align-end--l{text-align:end}.--variant-title-1--l{font-family:var(--rs-font-family-title-1);font-size:var(--rs-font-size-title-1);font-weight:var(--rs-font-weight-title-1);letter-spacing:var(--rs-letter-spacing-title-1);line-height:var(--rs-line-height-title-1)}.--variant-title-2--l{font-family:var(--rs-font-family-title-2);font-size:var(--rs-font-size-title-2);font-weight:var(--rs-font-weight-title-2);letter-spacing:var(--rs-letter-spacing-title-2);line-height:var(--rs-line-height-title-2)}.--variant-title-3--l{font-family:var(--rs-font-family-title-3);font-size:var(--rs-font-size-title-3);font-weight:var(--rs-font-weight-title-3);letter-spacing:var(--rs-letter-spacing-title-3);line-height:var(--rs-line-height-title-3)}.--variant-title-4--l{font-family:var(--rs-font-family-title-4);font-size:var(--rs-font-size-title-4);font-weight:var(--rs-font-weight-title-4);letter-spacing:var(--rs-letter-spacing-title-4);line-height:var(--rs-line-height-title-4)}.--variant-title-5--l{font-family:var(--rs-font-family-title-5);font-size:var(--rs-font-size-title-5);font-weight:var(--rs-font-weight-title-5);letter-spacing:var(--rs-letter-spacing-title-5);line-height:var(--rs-line-height-title-5)}.--variant-title-6--l{font-family:var(--rs-font-family-title-6);font-size:var(--rs-font-size-title-6);font-weight:var(--rs-font-weight-title-6);letter-spacing:var(--rs-letter-spacing-title-6);line-height:var(--rs-line-height-title-6)}.--variant-featured-1--l{font-family:var(--rs-font-family-featured-1);font-size:var(--rs-font-size-featured-1);font-weight:var(--rs-font-weight-featured-1);letter-spacing:var(--rs-letter-spacing-featured-1);line-height:var(--rs-line-height-featured-1)}.--variant-featured-2--l{font-family:var(--rs-font-family-featured-2);font-size:var(--rs-font-size-featured-2);font-weight:var(--rs-font-weight-featured-2);letter-spacing:var(--rs-letter-spacing-featured-2);line-height:var(--rs-line-height-featured-2)}.--variant-featured-3--l{font-family:var(--rs-font-family-featured-3);font-size:var(--rs-font-size-featured-3);font-weight:var(--rs-font-weight-featured-3);letter-spacing:var(--rs-letter-spacing-featured-3);line-height:var(--rs-line-height-featured-3)}.--variant-body-1--l{font-family:var(--rs-font-family-body-1);font-size:var(--rs-font-size-body-1);font-weight:var(--rs-font-weight-body-1);letter-spacing:var(--rs-letter-spacing-body-1);line-height:var(--rs-line-height-body-1)}.--variant-body-2--l{font-family:var(--rs-font-family-body-2);font-size:var(--rs-font-size-body-2);font-weight:var(--rs-font-weight-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--variant-body-3--l{font-family:var(--rs-font-family-body-3);font-size:var(--rs-font-size-body-3);font-weight:var(--rs-font-weight-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--variant-caption-1--l{font-family:var(--rs-font-family-caption-1);font-size:var(--rs-font-size-caption-1);font-weight:var(--rs-font-weight-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1);line-height:var(--rs-line-height-caption-1)}.--variant-caption-2--l{font-family:var(--rs-font-family-caption-2);font-size:var(--rs-font-size-caption-2);font-weight:var(--rs-font-weight-caption-2);letter-spacing:var(--rs-letter-spacing-caption-2);line-height:var(--rs-line-height-caption-2)}.--weight-regular--l{font-weight:var(--rs-font-weight-regular)!important}.--weight-medium--l{font-weight:var(--rs-font-weight-medium)!important}.--weight-bold--l{font-weight:var(--rs-font-weight-bold)!important}}@media (--rs-viewport-xl ){.--align-start--xl{text-align:start}.--align-center--xl{text-align:center}.--align-end--xl{text-align:end}.--variant-title-1--xl{font-family:var(--rs-font-family-title-1);font-size:var(--rs-font-size-title-1);font-weight:var(--rs-font-weight-title-1);letter-spacing:var(--rs-letter-spacing-title-1);line-height:var(--rs-line-height-title-1)}.--variant-title-2--xl{font-family:var(--rs-font-family-title-2);font-size:var(--rs-font-size-title-2);font-weight:var(--rs-font-weight-title-2);letter-spacing:var(--rs-letter-spacing-title-2);line-height:var(--rs-line-height-title-2)}.--variant-title-3--xl{font-family:var(--rs-font-family-title-3);font-size:var(--rs-font-size-title-3);font-weight:var(--rs-font-weight-title-3);letter-spacing:var(--rs-letter-spacing-title-3);line-height:var(--rs-line-height-title-3)}.--variant-title-4--xl{font-family:var(--rs-font-family-title-4);font-size:var(--rs-font-size-title-4);font-weight:var(--rs-font-weight-title-4);letter-spacing:var(--rs-letter-spacing-title-4);line-height:var(--rs-line-height-title-4)}.--variant-title-5--xl{font-family:var(--rs-font-family-title-5);font-size:var(--rs-font-size-title-5);font-weight:var(--rs-font-weight-title-5);letter-spacing:var(--rs-letter-spacing-title-5);line-height:var(--rs-line-height-title-5)}.--variant-title-6--xl{font-family:var(--rs-font-family-title-6);font-size:var(--rs-font-size-title-6);font-weight:var(--rs-font-weight-title-6);letter-spacing:var(--rs-letter-spacing-title-6);line-height:var(--rs-line-height-title-6)}.--variant-featured-1--xl{font-family:var(--rs-font-family-featured-1);font-size:var(--rs-font-size-featured-1);font-weight:var(--rs-font-weight-featured-1);letter-spacing:var(--rs-letter-spacing-featured-1);line-height:var(--rs-line-height-featured-1)}.--variant-featured-2--xl{font-family:var(--rs-font-family-featured-2);font-size:var(--rs-font-size-featured-2);font-weight:var(--rs-font-weight-featured-2);letter-spacing:var(--rs-letter-spacing-featured-2);line-height:var(--rs-line-height-featured-2)}.--variant-featured-3--xl{font-family:var(--rs-font-family-featured-3);font-size:var(--rs-font-size-featured-3);font-weight:var(--rs-font-weight-featured-3);letter-spacing:var(--rs-letter-spacing-featured-3);line-height:var(--rs-line-height-featured-3)}.--variant-body-1--xl{font-family:var(--rs-font-family-body-1);font-size:var(--rs-font-size-body-1);font-weight:var(--rs-font-weight-body-1);letter-spacing:var(--rs-letter-spacing-body-1);line-height:var(--rs-line-height-body-1)}.--variant-body-2--xl{font-family:var(--rs-font-family-body-2);font-size:var(--rs-font-size-body-2);font-weight:var(--rs-font-weight-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--variant-body-3--xl{font-family:var(--rs-font-family-body-3);font-size:var(--rs-font-size-body-3);font-weight:var(--rs-font-weight-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--variant-caption-1--xl{font-family:var(--rs-font-family-caption-1);font-size:var(--rs-font-size-caption-1);font-weight:var(--rs-font-weight-caption-1);letter-spacing:var(--rs-letter-spacing-caption-1);line-height:var(--rs-line-height-caption-1)}.--variant-caption-2--xl{font-family:var(--rs-font-family-caption-2);font-size:var(--rs-font-size-caption-2);font-weight:var(--rs-font-weight-caption-2);letter-spacing:var(--rs-letter-spacing-caption-2);line-height:var(--rs-line-height-caption-2)}.--weight-regular--xl{font-weight:var(--rs-font-weight-regular)!important}.--weight-medium--xl{font-weight:var(--rs-font-weight-medium)!important}.--weight-bold--xl{font-weight:var(--rs-font-weight-bold)!important}}
@@ -1 +1 @@
1
- .root{display:grid;position:relative}.root:after{content:attr(data-rs-textarea-value) " ";visibility:hidden;white-space:pre-wrap}.input,.root:after{border:1px solid var(--rs-color-border-neutral);box-sizing:border-box;flex-grow:1;font-family:var(--rs-font-family-body);font-weight:var(--rs-font-weight-regular);grid-area:1/1/2/2;padding:calc(var(--rs-p) - 1px);width:100%;word-break:break-word}.input{background:var(--rs-color-background-elevation-base);border-radius:var(--rs-radius-small);color:var(--rs-color-foreground-neutral);outline:none;position:relative;z-index:1}.input:focus{border-color:var(--rs-color-border-primary);box-shadow:0 0 0 1px var(--rs-color-border-primary)}.input[disabled]{background:var(--rs-color-background-disabled-faded);border-color:var(--rs-color-border-disabled);color:var(--rs-color-foreground-disabled);cursor:not-allowed}.--size-medium{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium .input{font-size:var(--rs-font-size-body-3);line-height:var(--rs-line-height-body-3)}.--size-large{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}.root.--variant-faded .input{background:var(--rs-color-background-neutral-faded);border-color:transparent}.root.--variant-faded .input:focus{border-color:var(--rs-color-border-primary)}.root.--variant-headless .input{background:transparent;border-color:transparent}.root.--variant-headless .input:focus,.root.--variant-headless.--status-error .input,.root.--variant-headless.--status-error .input:focus{border-color:transparent;box-shadow:none}.root.--status-error .input{border-color:var(--rs-color-border-critical)}.root.--status-error .input:active,.root.--status-error .input:focus{border-color:var(--rs-color-border-primary);box-shadow:0 0 0 1px var(--rs-color-border-primary)}.root.--resize-auto .input,.root.--resize-none .input{resize:none}@media (--rs-viewport-s ) and (hover:none){.input{font-size:var(--rs-font-size-body-2)!important}}@media (--rs-viewport-m ){.--size-medium--m{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--m .input{font-size:var(--rs-font-size-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--m{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--m .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--m{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--m .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-l ){.--size-medium--l{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--l .input{font-size:var(--rs-font-size-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--l{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--l .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--l{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--l .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-xl ){.--size-medium--xl{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--xl .input{font-size:var(--rs-font-size-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--xl{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--xl .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--xl{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--xl .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}}
1
+ .root{display:grid;position:relative}.root:after{content:attr(data-rs-textarea-value) " ";visibility:hidden;white-space:pre-wrap}.input,.root:after{border:1px solid var(--rs-color-border-neutral);box-sizing:border-box;flex-grow:1;font-family:var(--rs-font-family-body);font-weight:var(--rs-font-weight-regular);grid-area:1/1/2/2;padding:calc(var(--rs-p) - 1px);width:100%;word-break:break-word}.input{background:var(--rs-color-background-elevation-base);border-radius:var(--rs-radius-small);color:var(--rs-color-foreground-neutral);outline:none;position:relative;z-index:1}.input:focus{border-color:var(--rs-color-border-primary);box-shadow:0 0 0 1px var(--rs-color-border-primary)}.input[disabled]{background:var(--rs-color-background-disabled-faded);border-color:var(--rs-color-border-disabled);color:var(--rs-color-foreground-disabled);cursor:not-allowed}.--size-medium{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.root.--variant-faded .input{background:var(--rs-color-background-neutral-faded);border-color:transparent}.root.--variant-faded .input:focus{border-color:var(--rs-color-border-primary)}.root.--variant-headless .input{background:transparent;border-color:transparent}.root.--variant-headless .input:focus,.root.--variant-headless.--status-error .input,.root.--variant-headless.--status-error .input:focus{border-color:transparent;box-shadow:none}.root.--status-error .input{border-color:var(--rs-color-border-critical)}.root.--status-error .input:active,.root.--status-error .input:focus{border-color:var(--rs-color-border-primary);box-shadow:0 0 0 1px var(--rs-color-border-primary)}.root.--resize-auto .input,.root.--resize-none .input{resize:none}@media (--rs-viewport-s ) and (hover:none){.input{font-size:var(--rs-font-size-body-2)!important}}@media (--rs-viewport-m ){.--size-medium--m{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--m .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--m{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--m .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--m{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--m .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-l ){.--size-medium--l{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--l .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--l{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--l .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--l{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--l .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-xl ){.--size-medium--xl{--rs-p:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--xl .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--xl{--rs-p:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--xl .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--xl{--rs-p:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--xl .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}
@@ -1 +1 @@
1
- .root{--rs-p-v:var(--rs-unit-x1);--rs-p-h:var(--rs-text-field-gap);background:var(--rs-color-background-elevation-base);border:1px solid var(--rs-color-border-neutral);display:flex;padding:calc(var(--rs-p-v) - 1px) 0;position:relative;z-index:0}.root:focus-within{border-color:var(--rs-color-border-primary);box-shadow:0 0 0 1px var(--rs-color-border-primary)}.root:focus-within:has(button:focus,a:focus){border-color:transparent;box-shadow:none}.input{background:none;border:none;box-sizing:border-box;color:var(--rs-color-foreground-neutral);flex-grow:1;font-family:var(--rs-font-family-body);font-weight:var(--rs-font-weight-regular);margin:calc(var(--rs-unit-x1) * -1) 0;outline:none;padding:0 var(--rs-text-field-gap);position:relative;width:100%;z-index:1}.input:-webkit-autofill{-webkit-background-clip:text;-webkit-text-fill-color:var(--rs-color-foreground-neutral)}.affix,.icon,.slot{align-items:center;display:flex;flex-shrink:0;position:relative;z-index:5}.icon{pointer-events:none}.affix{color:var(--rs-color-foreground-neutral-faded)}.attachment{align-items:center;display:flex;flex-shrink:0}.attachment--position-start{gap:var(--rs-text-field-gap);padding-inline-start:var(--rs-text-field-gap)}.attachment--position-start .affix{border-inline-end:1px solid var(--rs-color-border-neutral-faded);padding-inline-end:var(--rs-text-field-gap)}.attachment--position-end{gap:var(--rs-unit-x1);padding-inline-end:calc(var(--rs-unit-x1) - 1px)}.attachment--position-end .affix,.attachment--position-end .icon{padding-inline-end:calc(var(--rs-text-field-gap) - var(--rs-unit-x1))}.attachment--position-end .affix{border-inline-start:1px solid var(--rs-color-border-neutral-faded);padding-inline-start:var(--rs-text-field-gap)}.root.--disabled{background:var(--rs-color-background-disabled-faded);border-color:var(--rs-color-border-disabled)}.root.--disabled,.root.--disabled .input{color:var(--rs-color-foreground-disabled);cursor:not-allowed}.--size-medium{--rs-text-field-gap:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium .input{padding-bottom:var(--rs-unit-x2);padding-top:var(--rs-unit-x2)}.--size-medium .affix,.--size-medium .input{font-size:var(--rs-font-size-body-3);line-height:var(--rs-line-height-body-3)}.--size-large{--rs-text-field-gap:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large .input{padding-bottom:var(--rs-unit-x3);padding-top:var(--rs-unit-x3)}.--size-large .affix,.--size-large .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge{--rs-text-field-gap:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge .input{padding-bottom:var(--rs-unit-x4);padding-top:var(--rs-unit-x4)}.--size-xlarge .affix,.--size-xlarge .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}.root.--variant-faded{background:var(--rs-color-background-neutral-faded);border-color:transparent}.root.--variant-faded:focus-within{border-color:var(--rs-color-border-primary)}.root.--variant-headless{background:transparent;border-color:transparent}.root.--variant-headless.--status-error,.root.--variant-headless.--status-error:focus-within,.root.--variant-headless:focus-within{border-color:transparent;box-shadow:none}.root.--status-error{border-color:var(--rs-color-border-critical)}.root.--status-error:focus-within{border-color:var(--rs-color-border-primary)}@media (--rs-viewport-s ) and (hover:none){.input{font-size:var(--rs-font-size-body-2)!important}}@media (--rs-viewport-m ){.--size-medium--m{--rs-text-field-gap:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--m .input{padding-bottom:var(--rs-unit-x2);padding-top:var(--rs-unit-x2)}.--size-medium--m .affix,.--size-medium--m .input{font-size:var(--rs-font-size-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--m{--rs-text-field-gap:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--m .input{padding-bottom:var(--rs-unit-x3);padding-top:var(--rs-unit-x3)}.--size-large--m .affix,.--size-large--m .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--m{--rs-text-field-gap:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--m .input{padding-bottom:var(--rs-unit-x4);padding-top:var(--rs-unit-x4)}.--size-xlarge--m .affix,.--size-xlarge--m .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-l ){.--size-medium--l{--rs-text-field-gap:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--l .input{padding-bottom:var(--rs-unit-x2);padding-top:var(--rs-unit-x2)}.--size-medium--l .affix,.--size-medium--l .input{font-size:var(--rs-font-size-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--l{--rs-text-field-gap:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--l .input{padding-bottom:var(--rs-unit-x3);padding-top:var(--rs-unit-x3)}.--size-large--l .affix,.--size-large--l .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--l{--rs-text-field-gap:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--l .input{padding-bottom:var(--rs-unit-x4);padding-top:var(--rs-unit-x4)}.--size-xlarge--l .affix,.--size-xlarge--l .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-xl ){.--size-medium--xl{--rs-text-field-gap:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--xl .input{padding-bottom:var(--rs-unit-x2);padding-top:var(--rs-unit-x2)}.--size-medium--xl .affix,.--size-medium--xl .input{font-size:var(--rs-font-size-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--xl{--rs-text-field-gap:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--xl .input{padding-bottom:var(--rs-unit-x3);padding-top:var(--rs-unit-x3)}.--size-large--xl .affix,.--size-large--xl .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--xl{--rs-text-field-gap:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--xl .input{padding-bottom:var(--rs-unit-x4);padding-top:var(--rs-unit-x4)}.--size-xlarge--xl .affix,.--size-xlarge--xl .input{font-size:var(--rs-font-size-body-2);line-height:var(--rs-line-height-body-2)}}
1
+ .root{--rs-p-v:var(--rs-unit-x1);--rs-p-h:var(--rs-text-field-gap);background:var(--rs-color-background-elevation-base);border:1px solid var(--rs-color-border-neutral);display:flex;padding:calc(var(--rs-p-v) - 1px) 0;position:relative;z-index:0}.root:focus-within{border-color:var(--rs-color-border-primary);box-shadow:0 0 0 1px var(--rs-color-border-primary)}.root:focus-within:has(button:focus,a:focus){border-color:transparent;box-shadow:none}.input{background:none;border:none;box-sizing:border-box;color:var(--rs-color-foreground-neutral);flex-grow:1;font-family:var(--rs-font-family-body);font-weight:var(--rs-font-weight-regular);margin:calc(var(--rs-unit-x1) * -1) 0;outline:none;padding:0 var(--rs-text-field-gap);position:relative;width:100%;z-index:1}.input:-webkit-autofill{-webkit-background-clip:text;-webkit-text-fill-color:var(--rs-color-foreground-neutral)}.affix,.icon,.slot{align-items:center;display:flex;flex-shrink:0;position:relative;z-index:5}.icon{pointer-events:none}.affix{color:var(--rs-color-foreground-neutral-faded)}.attachment{align-items:center;display:flex;flex-shrink:0}.attachment--position-start{gap:var(--rs-text-field-gap);padding-inline-start:var(--rs-text-field-gap)}.attachment--position-start .affix{border-inline-end:1px solid var(--rs-color-border-neutral-faded);padding-inline-end:var(--rs-text-field-gap)}.attachment--position-end{gap:var(--rs-unit-x1);padding-inline-end:calc(var(--rs-unit-x1) - 1px)}.attachment--position-end .affix,.attachment--position-end .icon{padding-inline-end:calc(var(--rs-text-field-gap) - var(--rs-unit-x1))}.attachment--position-end .affix{border-inline-start:1px solid var(--rs-color-border-neutral-faded);padding-inline-start:var(--rs-text-field-gap)}.root.--disabled{background:var(--rs-color-background-disabled-faded);border-color:var(--rs-color-border-disabled)}.root.--disabled,.root.--disabled .input{color:var(--rs-color-foreground-disabled);cursor:not-allowed}.--size-medium{--rs-text-field-gap:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium .input{padding-bottom:var(--rs-unit-x2);padding-top:var(--rs-unit-x2)}.--size-medium .affix,.--size-medium .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large{--rs-text-field-gap:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large .input{padding-bottom:var(--rs-unit-x3);padding-top:var(--rs-unit-x3)}.--size-large .affix,.--size-large .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge{--rs-text-field-gap:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge .input{padding-bottom:var(--rs-unit-x4);padding-top:var(--rs-unit-x4)}.--size-xlarge .affix,.--size-xlarge .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.root.--variant-faded{background:var(--rs-color-background-neutral-faded);border-color:transparent}.root.--variant-faded:focus-within{border-color:var(--rs-color-border-primary)}.root.--variant-headless{background:transparent;border-color:transparent}.root.--variant-headless.--status-error,.root.--variant-headless.--status-error:focus-within,.root.--variant-headless:focus-within{border-color:transparent;box-shadow:none}.root.--status-error{border-color:var(--rs-color-border-critical)}.root.--status-error:focus-within{border-color:var(--rs-color-border-primary)}@media (--rs-viewport-s ) and (hover:none){.input{font-size:var(--rs-font-size-body-2)!important}}@media (--rs-viewport-m ){.--size-medium--m{--rs-text-field-gap:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--m .input{padding-bottom:var(--rs-unit-x2);padding-top:var(--rs-unit-x2)}.--size-medium--m .affix,.--size-medium--m .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--m{--rs-text-field-gap:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--m .input{padding-bottom:var(--rs-unit-x3);padding-top:var(--rs-unit-x3)}.--size-large--m .affix,.--size-large--m .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--m{--rs-text-field-gap:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--m .input{padding-bottom:var(--rs-unit-x4);padding-top:var(--rs-unit-x4)}.--size-xlarge--m .affix,.--size-xlarge--m .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-l ){.--size-medium--l{--rs-text-field-gap:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--l .input{padding-bottom:var(--rs-unit-x2);padding-top:var(--rs-unit-x2)}.--size-medium--l .affix,.--size-medium--l .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--l{--rs-text-field-gap:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--l .input{padding-bottom:var(--rs-unit-x3);padding-top:var(--rs-unit-x3)}.--size-large--l .affix,.--size-large--l .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--l{--rs-text-field-gap:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--l .input{padding-bottom:var(--rs-unit-x4);padding-top:var(--rs-unit-x4)}.--size-xlarge--l .affix,.--size-xlarge--l .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}@media (--rs-viewport-xl ){.--size-medium--xl{--rs-text-field-gap:var(--rs-unit-x2);border-radius:var(--rs-radius-small)}.--size-medium--xl .input{padding-bottom:var(--rs-unit-x2);padding-top:var(--rs-unit-x2)}.--size-medium--xl .affix,.--size-medium--xl .input{font-size:var(--rs-font-size-body-3);letter-spacing:var(--rs-letter-spacing-body-3);line-height:var(--rs-line-height-body-3)}.--size-large--xl{--rs-text-field-gap:var(--rs-unit-x3);border-radius:var(--rs-radius-medium)}.--size-large--xl .input{padding-bottom:var(--rs-unit-x3);padding-top:var(--rs-unit-x3)}.--size-large--xl .affix,.--size-large--xl .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}.--size-xlarge--xl{--rs-text-field-gap:var(--rs-unit-x4);border-radius:var(--rs-radius-medium)}.--size-xlarge--xl .input{padding-bottom:var(--rs-unit-x4);padding-top:var(--rs-unit-x4)}.--size-xlarge--xl .affix,.--size-xlarge--xl .input{font-size:var(--rs-font-size-body-2);letter-spacing:var(--rs-letter-spacing-body-2);line-height:var(--rs-line-height-body-2)}}
@@ -37,23 +37,24 @@ export type ContainerProps = {
37
37
  status?: "entering" | "entered" | "exiting";
38
38
  inspected: boolean;
39
39
  };
40
+ export type ShowOptions = {
41
+ timeout?: Timeout;
42
+ position?: Position;
43
+ };
44
+ export type ShowProps = Props & ShowOptions;
40
45
  export type Context = {
41
46
  options?: ProviderProps["options"];
42
47
  queues: Record<RegionProps["position"], Array<ContainerProps>>;
43
- add: (toast: Props & ShowOptions) => string;
48
+ add: (toast: ShowProps) => string;
44
49
  show: (id: string) => void;
45
50
  hide: (id: string) => void;
46
51
  remove: (id: string) => void;
47
52
  id: string;
48
53
  };
49
- export type ShowOptions = {
50
- timeout?: Timeout;
51
- position?: Position;
52
- };
53
54
  type AddAction = {
54
55
  type: "add";
55
56
  payload: {
56
- toastProps: Props & ShowOptions;
57
+ toastProps: ShowProps;
57
58
  id: string;
58
59
  };
59
60
  };
@@ -1,3 +1,3 @@
1
1
  export { default as useToast } from "./useToast";
2
2
  export { default as ToastProvider } from "./ToastProvider";
3
- export type { Props as ToastProps, ProviderProps as ToastProviderProps } from "./Toast.types";
3
+ export type { Props as ToastProps, ProviderProps as ToastProviderProps, ShowProps as ToastShowProps, } from "./Toast.types";
@@ -1,5 +1,5 @@
1
1
  declare const useToast: () => {
2
- show: (toast: import("./Toast.types").Props & import("./Toast.types").ShowOptions) => string;
2
+ show: (toast: import("./Toast.types").ShowProps) => string;
3
3
  hide: (id: string) => void;
4
4
  id: string;
5
5
  };
@@ -121,4 +121,35 @@ export const edgeCases = () => (<Example>
121
121
  </Actionable>)}
122
122
  </Tooltip>
123
123
  </Example.Item>
124
+
125
+ <Example.Item title="nested popovers inside a tooltip">
126
+ <Tooltip position="top" text="Hello">
127
+ {(tooltipAttributes) => (<Popover position="bottom">
128
+ <Popover.Trigger>
129
+ {(attributes) => (<Button color="primary" attributes={{
130
+ ...tooltipAttributes,
131
+ ...attributes,
132
+ }}>
133
+ Open
134
+ </Button>)}
135
+ </Popover.Trigger>
136
+ <Popover.Content>
137
+ <View gap={2} align="start">
138
+ Popover content
139
+ <Popover position="bottom">
140
+ <Popover.Trigger>
141
+ {(attributes) => <Button attributes={attributes}>Open</Button>}
142
+ </Popover.Trigger>
143
+ <Popover.Content>
144
+ <View gap={2} align="start">
145
+ Popover content
146
+ <Button onClick={() => { }}>Button</Button>
147
+ </View>
148
+ </Popover.Content>
149
+ </Popover>
150
+ </View>
151
+ </Popover.Content>
152
+ </Popover>)}
153
+ </Tooltip>
154
+ </Example.Item>
124
155
  </Example>);
@@ -3,7 +3,9 @@ import type * as T from "./Flyout.types";
3
3
  declare const FlyoutContext: React.Context<T.ContextProps>;
4
4
  declare const useFlyoutContext: () => T.ContextProps;
5
5
  declare const useFlyoutTriggerContext: () => T.TriggerContextProps;
6
+ declare const useFlyoutContentContext: () => boolean;
6
7
  declare const Provider: React.Provider<T.ContextProps>;
7
8
  declare const TriggerProvider: React.Provider<T.TriggerContextProps>;
8
- export { Provider, TriggerProvider, useFlyoutContext, useFlyoutTriggerContext };
9
+ declare const ContentProvider: React.Provider<boolean>;
10
+ export { Provider, TriggerProvider, ContentProvider, useFlyoutContext, useFlyoutTriggerContext, useFlyoutContentContext, };
9
11
  export default FlyoutContext;
@@ -2,9 +2,12 @@
2
2
  import React from "react";
3
3
  const FlyoutContext = React.createContext({});
4
4
  const FlyoutTriggerContext = React.createContext({});
5
+ const FlyoutContentContext = React.createContext(false);
5
6
  const useFlyoutContext = () => React.useContext(FlyoutContext);
6
7
  const useFlyoutTriggerContext = () => React.useContext(FlyoutTriggerContext);
8
+ const useFlyoutContentContext = () => React.useContext(FlyoutContentContext);
7
9
  const Provider = FlyoutContext.Provider;
8
10
  const TriggerProvider = FlyoutTriggerContext.Provider;
9
- export { Provider, TriggerProvider, useFlyoutContext, useFlyoutTriggerContext };
11
+ const ContentProvider = FlyoutContentContext.Provider;
12
+ export { Provider, TriggerProvider, ContentProvider, useFlyoutContext, useFlyoutTriggerContext, useFlyoutContentContext, };
10
13
  export default FlyoutContext;
@@ -68,6 +68,7 @@ type BaseProps = {
68
68
  disabled?: boolean;
69
69
  disableHideAnimation?: boolean;
70
70
  disableContentHover?: boolean;
71
+ disableCloseOnOutsideClick?: boolean;
71
72
  children?: React.ReactNode;
72
73
  onOpen?: () => void;
73
74
  onClose?: () => void;
@@ -6,7 +6,7 @@ import useIsomorphicLayoutEffect from "../../../hooks/useIsomorphicLayoutEffect.
6
6
  import Portal from "../Portal/index.js";
7
7
  import { getClosestFlyoutTarget } from "../../../utilities/dom.js";
8
8
  import cooldown from "./utilities/cooldown.js";
9
- import { useFlyoutContext } from "./Flyout.context.js";
9
+ import { useFlyoutContext, ContentProvider } from "./Flyout.context.js";
10
10
  import s from "./Flyout.module.css";
11
11
  const FlyoutContent = (props) => {
12
12
  const { children, className, attributes } = props;
@@ -48,12 +48,10 @@ const FlyoutContent = (props) => {
48
48
  else if (trapFocusMode === "action-menu") {
49
49
  role = "menu";
50
50
  }
51
- const content = (
52
- // eslint-disable-next-line jsx-a11y/no-static-element-interactions
53
- _jsx("div", { className: contentClassNames, style: {
54
- ...styles,
55
- "--rs-flyout-gap": contentGap,
56
- }, ref: flyoutElRef, onTransitionEnd: handleTransitionEnd, onMouseEnter: triggerType === "hover" ? handleMouseEnter : undefined, onMouseLeave: triggerType === "hover" ? handleMouseLeave : undefined, onMouseDown: handleContentMouseDown, onTouchStart: handleContentMouseDown, onMouseUp: handleContentMouseUp, onTouchEnd: handleContentMouseUp, children: _jsx("div", { role: role, ...attributes, id: id, "aria-modal": triggerType === "click", style: contentAttributes?.style, className: innerClassNames, children: children }) }));
51
+ const content = (_jsx(ContentProvider, { value: true, children: _jsx("div", { className: contentClassNames, style: {
52
+ ...styles,
53
+ "--rs-flyout-gap": contentGap,
54
+ }, ref: flyoutElRef, onTransitionEnd: handleTransitionEnd, onMouseEnter: triggerType === "hover" ? handleMouseEnter : undefined, onMouseLeave: triggerType === "hover" ? handleMouseLeave : undefined, onMouseDown: handleContentMouseDown, onTouchStart: handleContentMouseDown, onMouseUp: handleContentMouseUp, onTouchEnd: handleContentMouseUp, children: _jsx("div", { role: role, ...attributes, id: id, "aria-modal": triggerType === "click", style: contentAttributes?.style, className: innerClassNames, children: children }) }) }));
57
55
  const closestScrollable = getClosestFlyoutTarget(triggerElRef.current);
58
56
  const scrollableRef = closestScrollable === document.body ? undefined : { current: closestScrollable };
59
57
  return _jsx(Portal, { targetRef: containerRef || scrollableRef, children: content });
@@ -13,12 +13,16 @@ import { checkKeyboardMode } from "../../../utilities/a11y/keyboardMode.js";
13
13
  import useFlyout from "./useFlyout.js";
14
14
  import * as timeouts from "./Flyout.constants.js";
15
15
  import cooldown from "./utilities/cooldown.js";
16
- import { Provider, useFlyoutTriggerContext, useFlyoutContext } from "./Flyout.context.js";
16
+ import { Provider, useFlyoutTriggerContext, useFlyoutContext, useFlyoutContentContext, } from "./Flyout.context.js";
17
+ import useHandlerRef from "../../../hooks/useHandlerRef.js";
17
18
  const FlyoutRoot = (props) => {
18
- const { triggerType = "click", onOpen, onClose, children, disabled, forcePosition, trapFocusMode, width, disableHideAnimation, disableContentHover, contentGap, contentClassName, contentAttributes, position: passedPosition, active: passedActive, id: passedId, instanceRef, containerRef, } = props;
19
+ const { triggerType = "click", onOpen, onClose, children, disabled, forcePosition, trapFocusMode, width, disableHideAnimation, disableContentHover, disableCloseOnOutsideClick, contentGap, contentClassName, contentAttributes, position: passedPosition, active: passedActive, id: passedId, instanceRef, containerRef, } = props;
20
+ const onOpenRef = useHandlerRef(onOpen);
21
+ const onCloseRef = useHandlerRef(onClose);
19
22
  const resolvedActive = disabled === true ? false : passedActive;
20
23
  const parentFlyoutContext = useFlyoutContext();
21
24
  const parentFlyoutTriggerContext = useFlyoutTriggerContext();
25
+ const parentFlyoutContentContext = useFlyoutContentContext();
22
26
  const isSubmenu = parentFlyoutContext.trapFocusMode === "action-menu" ||
23
27
  parentFlyoutContext.trapFocusMode === "content-menu";
24
28
  const [isRTL] = useRTL();
@@ -27,7 +31,8 @@ const FlyoutRoot = (props) => {
27
31
  * Reuse the parent trigger ref in case we render nested triggers
28
32
  * For example, when we apply tooltip and popover to the same button
29
33
  */
30
- const triggerElRef = parentFlyoutTriggerContext?.triggerElRef || internalTriggerElRef;
34
+ const triggerElRef = (!parentFlyoutContentContext && parentFlyoutTriggerContext?.triggerElRef) ||
35
+ internalTriggerElRef;
31
36
  const flyoutElRef = React.useRef(null);
32
37
  const id = useElementId(passedId);
33
38
  const timerRef = React.useRef();
@@ -58,20 +63,17 @@ const FlyoutRoot = (props) => {
58
63
  const canOpen = !lockedRef.current && status === "idle";
59
64
  if (!canOpen)
60
65
  return;
61
- onOpen?.();
62
- // eslint-disable-next-line react-hooks/exhaustive-deps
63
- }, [status]);
66
+ onOpenRef.current?.();
67
+ }, [status, onOpenRef]);
64
68
  const handleClose = React.useCallback((options) => {
65
69
  const isLocked = triggerType === "click" && !isDismissible();
66
70
  const canClose = !isLocked && (status !== "idle" || disabled);
67
71
  if (!canClose)
68
72
  return;
69
- onClose?.();
73
+ onCloseRef.current?.();
70
74
  if (options?.closeParents)
71
75
  parentFlyoutContext?.handleClose?.();
72
- },
73
- // eslint-disable-next-line react-hooks/exhaustive-deps
74
- [status, isDismissible, triggerType]);
76
+ }, [status, isDismissible, triggerType, onCloseRef, disabled, parentFlyoutContext]);
75
77
  /**
76
78
  * Trigger event handlers
77
79
  */
@@ -174,15 +176,17 @@ const FlyoutRoot = (props) => {
174
176
  useIsomorphicLayoutEffect(() => {
175
177
  if (status !== "visible" || !flyoutElRef.current)
176
178
  return;
179
+ if (trapFocusRef.current?.trapped)
180
+ return;
177
181
  trapFocusRef.current = new TrapFocus(flyoutElRef.current);
178
182
  trapFocusRef.current.trap({
179
183
  mode: trapFocusMode,
180
- includeTrigger: triggerType === "hover" && trapFocusMode === "content-menu",
184
+ includeTrigger: triggerType === "hover" && trapFocusMode !== "dialog" && !isSubmenu,
181
185
  onNavigateOutside: () => {
182
186
  handleClose();
183
187
  },
184
188
  });
185
- }, [status, triggerType, handleClose, trapFocusMode]);
189
+ }, [status, triggerType, trapFocusMode]);
186
190
  React.useEffect(() => {
187
191
  if (!disableHideAnimation && status !== "hidden")
188
192
  return;
@@ -229,6 +233,8 @@ const FlyoutRoot = (props) => {
229
233
  }), [handleOpen, handleClose, updatePosition]);
230
234
  useHotkeys({ Escape: () => handleClose() }, [handleClose]);
231
235
  useOnClickOutside([flyoutElRef, triggerElRef], () => {
236
+ if (disableCloseOnOutsideClick)
237
+ return;
232
238
  // Clicking outside changes focused element so we don't need to set it back ourselves
233
239
  shouldReturnFocusRef.current = false;
234
240
  handleClose();
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useFlyoutContext, TriggerProvider } from "./Flyout.context.js";
4
4
  const FlyoutTrigger = (props) => {
5
5
  const { children } = props;
6
- const { id, triggerElRef, triggerType, flyout, handleFocus, handleBlur, handleMouseEnter, handleMouseLeave, handleClick, trapFocusMode, } = useFlyoutContext();
6
+ const { id, triggerElRef, triggerType, flyout, handleFocus, handleBlur, handleMouseEnter, handleMouseLeave, handleClick, trapFocusMode, isSubmenu, } = useFlyoutContext();
7
7
  let childrenAttributes = {
8
8
  onBlur: handleBlur,
9
9
  ref: triggerElRef,
@@ -15,7 +15,8 @@ const FlyoutTrigger = (props) => {
15
15
  childrenAttributes.onMouseEnter = handleMouseEnter;
16
16
  childrenAttributes.onMouseLeave = handleMouseLeave;
17
17
  }
18
- if ((triggerType === "hover" && trapFocusMode !== "action-menu") || triggerType === "focus") {
18
+ // Submenus open on keypress instead of hover
19
+ if ((triggerType === "hover" && !isSubmenu) || triggerType === "focus") {
19
20
  childrenAttributes.onFocus = handleFocus;
20
21
  childrenAttributes["aria-describedby"] = id;
21
22
  }
@@ -5,16 +5,10 @@ declare const _default: {
5
5
  export default _default;
6
6
  export declare const positions: () => React.JSX.Element;
7
7
  export declare const dynamicPosition: () => React.JSX.Element;
8
- export declare const modeDialogClick: () => React.JSX.Element;
9
- export declare const modeActionMenuClick: () => React.JSX.Element;
10
- export declare const modeContentMenuClick: () => React.JSX.Element;
11
- export declare const modeDialogHover: () => React.JSX.Element;
12
- export declare const modeActionMenuHover: () => React.JSX.Element;
13
- export declare const modeContentMenuHover: () => React.JSX.Element;
14
- export declare const disableContentHover: () => React.JSX.Element;
8
+ export declare const modes: () => React.JSX.Element;
9
+ export declare const disableFlags: () => React.JSX.Element;
15
10
  export declare const customPortalTarget: () => React.JSX.Element;
16
11
  export declare const testWidthOverflowOnMobile: () => React.JSX.Element;
17
- export declare const testInsideScrollArea: () => React.JSX.Element;
18
12
  export declare const testInsideFixed: () => React.JSX.Element;
19
13
  export declare const testDynamicBounds: () => React.JSX.Element;
20
14
  export declare const widthTrigger: () => React.JSX.Element;
@@ -50,39 +50,70 @@ export const positions = () => (<div style={{ paddingTop: 200 }}>
50
50
  export const dynamicPosition = () => (<div style={{ position: "absolute", top: 0, left: "50%" }}>
51
51
  <Demo position="top"/>
52
52
  </div>);
53
- export const modeDialogClick = () => (<Demo position="bottom-start" trapFocusMode="dialog">
54
- <button type="button">Item 1</button>
55
- <button type="button">Item 2</button>
56
- <button type="button">Close</button>
57
- </Demo>);
58
- export const modeActionMenuClick = () => (<Demo position="bottom-start" trapFocusMode="action-menu">
59
- <button type="button">Item 1</button>
60
- <button type="button">Item 2</button>
61
- <button type="button">Close</button>
62
- </Demo>);
63
- export const modeContentMenuClick = () => (<Demo position="bottom-start" trapFocusMode="content-menu">
64
- <button type="button">Item 1</button>
65
- <button type="button">Item 2</button>
66
- <button type="button">Close</button>
67
- </Demo>);
68
- export const modeDialogHover = () => (<Demo position="bottom-start" trapFocusMode="dialog" triggerType="hover">
69
- <button type="button">Item 1</button>
70
- <button type="button">Item 2</button>
71
- <button type="button">Close</button>
72
- </Demo>);
73
- export const modeActionMenuHover = () => (<Demo position="bottom-start" trapFocusMode="action-menu" triggerType="hover">
74
- <button type="button">Item 1</button>
75
- <button type="button">Item 2</button>
76
- <button type="button">Close</button>
77
- </Demo>);
78
- export const modeContentMenuHover = () => (<Demo position="bottom-start" trapFocusMode="content-menu" triggerType="hover">
79
- <button type="button">Item 1</button>
80
- <button type="button">Item 2</button>
81
- <button type="button">Close</button>
82
- </Demo>);
83
- export const disableContentHover = () => (<Demo triggerType="hover" disableContentHover>
84
- Content
85
- </Demo>);
53
+ export const modes = () => (<Example>
54
+ <Example.Item title="dialog click">
55
+ <Demo position="bottom-start" trapFocusMode="dialog">
56
+ <button type="button">Item 1</button>
57
+ <button type="button">Item 2</button>
58
+ <button type="button">Close</button>
59
+ </Demo>
60
+ </Example.Item>
61
+
62
+ <Example.Item title="action-menu click">
63
+ <Demo position="bottom-start" trapFocusMode="action-menu">
64
+ <button type="button">Item 1</button>
65
+ <button type="button">Item 2</button>
66
+ <button type="button">Close</button>
67
+ </Demo>
68
+ </Example.Item>
69
+
70
+ <Example.Item title="content-menu click">
71
+ <Demo position="bottom-start" trapFocusMode="content-menu">
72
+ <button type="button">Item 1</button>
73
+ <button type="button">Item 2</button>
74
+ <button type="button">Close</button>
75
+ </Demo>
76
+ </Example.Item>
77
+
78
+ <Example.Item title="dialog hover">
79
+ <Demo position="bottom-start" trapFocusMode="dialog" triggerType="hover">
80
+ <button type="button">Item 1</button>
81
+ <button type="button">Item 2</button>
82
+ <button type="button">Close</button>
83
+ </Demo>
84
+ </Example.Item>
85
+
86
+ <Example.Item title="action-menu hover">
87
+ <Demo position="bottom-start" trapFocusMode="action-menu" triggerType="hover">
88
+ <button type="button">Item 1</button>
89
+ <button type="button">Item 2</button>
90
+ <button type="button">Close</button>
91
+ </Demo>
92
+ </Example.Item>
93
+
94
+ <Example.Item title="content-menu hover">
95
+ <Demo position="bottom-start" trapFocusMode="content-menu" triggerType="hover">
96
+ <button type="button">Item 1</button>
97
+ <button type="button">Item 2</button>
98
+ <button type="button">Close</button>
99
+ </Demo>
100
+ </Example.Item>
101
+ </Example>);
102
+ export const disableFlags = () => (<Example>
103
+ <Example.Item title="disableContentHover">
104
+ <Demo triggerType="hover" disableContentHover>
105
+ Content
106
+ </Demo>
107
+ </Example.Item>
108
+
109
+ <Example.Item title="disableCloseOnOutsideClick">
110
+ <Demo disableCloseOnOutsideClick>Content</Demo>
111
+ </Example.Item>
112
+
113
+ <Example.Item title="disableHideAnimation">
114
+ <Demo disableHideAnimation>Content</Demo>
115
+ </Example.Item>
116
+ </Example>);
86
117
  class CustomElement extends window.HTMLElement {
87
118
  constructor() {
88
119
  super();
@@ -99,7 +130,9 @@ class CustomElement extends window.HTMLElement {
99
130
  root.render(node);
100
131
  }
101
132
  }
102
- window.customElements.define("custom-element", CustomElement);
133
+ if (!window.customElements.get("custom-element")) {
134
+ window.customElements.define("custom-element", CustomElement);
135
+ }
103
136
  export const customPortalTarget = () => {
104
137
  const portalRef = React.useRef(null);
105
138
  return (<Example>
@@ -136,30 +169,6 @@ export const testWidthOverflowOnMobile = () => (<Demo position="bottom-start" wi
136
169
  <button type="button">Item 2</button>
137
170
  <button type="button">Close</button>
138
171
  </Demo>);
139
- export const testInsideScrollArea = () => (<Example>
140
- <Example.Item title="should move the content on area scroll">
141
- <div style={{ overflow: "scroll", height: 200, margin: 40, position: "relative" }}>
142
- <Flyout triggerType="click" position="bottom-start">
143
- <Flyout.Trigger>{(attributes) => <button {...attributes}>Foo</button>}</Flyout.Trigger>
144
- <Flyout.Content>
145
- <div style={{
146
- background: "var(--rs-color-background-elevation-overlay)",
147
- padding: "var(--rs-unit-x4)",
148
- height: 100,
149
- width: 160,
150
- borderRadius: "var(--rs-radius-medium)",
151
- border: "1px solid var(--rs-color-border-neutral-faded)",
152
- boxSizing: "border-box",
153
- }}>
154
- {"Content"}
155
- </div>
156
- </Flyout.Content>
157
- </Flyout>
158
- <View height="300px" backgroundColor="neutral-faded"/>
159
- </div>
160
- <div style={{ height: 2000 }}/>
161
- </Example.Item>
162
- </Example>);
163
172
  export const testInsideFixed = () => (<Example>
164
173
  <Example.Item title="should move the content on page scroll">
165
174
  <View position="fixed" insetTop={20} insetStart={0} insetEnd={0} backgroundColor="neutral-faded" padding={4}>
@@ -186,16 +195,32 @@ export const testInsideFixed = () => (<Example>
186
195
  export const testDynamicBounds = () => {
187
196
  const [left, setLeft] = React.useState("50%");
188
197
  const [size, setSize] = React.useState("medium");
198
+ const flyoutRef = React.useRef();
199
+ React.useEffect(() => {
200
+ flyoutRef.current?.updatePosition();
201
+ }, [left]);
189
202
  return (<View gap={4}>
190
203
  <View direction="row" gap={2}>
191
- <Button onClick={() => setLeft("0%")}>Left</Button>
192
- <Button onClick={() => setLeft("50%")}>Center</Button>
193
- <Button onClick={() => setLeft("100%")}>Right</Button>
204
+ <Button onClick={() => {
205
+ setLeft("20%");
206
+ }}>
207
+ Left
208
+ </Button>
209
+ <Button onClick={() => {
210
+ setLeft("50%");
211
+ }}>
212
+ Center
213
+ </Button>
214
+ <Button onClick={() => {
215
+ setLeft("70%");
216
+ }}>
217
+ Right
218
+ </Button>
194
219
  <Button onClick={() => setSize("large")}>Large button</Button>
195
220
  <Button onClick={() => setSize("medium")}>Small button</Button>
196
221
  </View>
197
222
  <View height={100}>
198
- <Flyout position="bottom" active>
223
+ <Flyout position="bottom" active instanceRef={flyoutRef}>
199
224
  <Flyout.Trigger>
200
225
  {(attributes) => (<div style={{ position: "absolute", left, top: "50%" }}>
201
226
  <Button color="primary" attributes={attributes} size={size}>
@@ -79,11 +79,20 @@ const flyout = (triggerEl, flyoutEl, options) => {
79
79
  }
80
80
  document.body.appendChild(targetClone);
81
81
  const flyoutBounds = targetClone.getBoundingClientRect();
82
+ const rootNode = triggerEl?.getRootNode();
83
+ const isShadowDom = rootNode instanceof ShadowRoot;
84
+ const shadowHostBounds = isShadowDom ? rootNode.host.getBoundingClientRect() : null;
82
85
  const scrollableParent = container || getClosestFlyoutTarget(triggerEl);
83
86
  const scopeBounds = scrollableParent.getBoundingClientRect();
84
87
  const scopeOffset = {
85
- top: scopeBounds.top + document.documentElement.scrollTop - scrollableParent.scrollTop,
86
- left: scopeBounds.left + document.documentElement.scrollLeft - scrollableParent.scrollLeft,
88
+ top: scopeBounds.top +
89
+ document.documentElement.scrollTop -
90
+ scrollableParent.scrollTop -
91
+ (shadowHostBounds?.top || 0),
92
+ left: scopeBounds.left +
93
+ document.documentElement.scrollLeft -
94
+ scrollableParent.scrollLeft -
95
+ (shadowHostBounds?.left || 0),
87
96
  };
88
97
  let calculated = calculatePosition({ triggerBounds, flyoutBounds, scopeOffset, ...options });
89
98
  if (!fullyVisible(calculated) && !forcePosition) {
@@ -1 +1 @@
1
- .root{display:contents}
1
+ .root{display:none}