diff --git a/packages/ui/src/components/ToggleButtonGroup/ToggleButtonGroup.stories.tsx b/packages/ui/src/components/ToggleButtonGroup/ToggleButtonGroup.stories.tsx
index 2294069f71..69e48d5789 100644
--- a/packages/ui/src/components/ToggleButtonGroup/ToggleButtonGroup.stories.tsx
+++ b/packages/ui/src/components/ToggleButtonGroup/ToggleButtonGroup.stories.tsx
@@ -20,6 +20,8 @@ import { ToggleButton } from '../ToggleButton/ToggleButton';
import { Flex } from '../Flex';
import { Text } from '../Text';
import { useState } from 'react';
+import type { Selection } from 'react-aria-components';
+import { useBreakpoint } from '../../hooks/useBreakpoint';
import {
RiCloudLine,
RiStarLine,
@@ -124,16 +126,42 @@ export const Orientation = meta.story({
),
});
+export const ResponsiveOrientation = meta.story({
+ render: () => {
+ const { breakpoint } = useBreakpoint(); // For testing purposes only (display breakpoint)
+
+ return (
+
+
+ Breakpoint: {breakpoint} (orientation: vertical on initial/sm,
+ horizontal from md+)
+
+
+ Morning
+ Afternoon
+ Evening
+
+
+ );
+ },
+});
+
export const ControlledGroup = meta.story({
render: () => {
- const [selectedKeys, setSelectedKeys] = useState(new Set(['beta']));
+ const [selectedKeys, setSelectedKeys] = useState(
+ new Set(['beta']),
+ );
return (
setSelectedKeys(new Set(keys))}
+ onSelectionChange={setSelectedKeys}
>
Alpha
Beta
diff --git a/packages/ui/src/components/ToggleButtonGroup/ToggleButtonGroup.tsx b/packages/ui/src/components/ToggleButtonGroup/ToggleButtonGroup.tsx
index 26b4eb51c8..cec9bd90db 100644
--- a/packages/ui/src/components/ToggleButtonGroup/ToggleButtonGroup.tsx
+++ b/packages/ui/src/components/ToggleButtonGroup/ToggleButtonGroup.tsx
@@ -18,27 +18,30 @@ import clsx from 'clsx';
import { forwardRef, Ref } from 'react';
import { ToggleButtonGroup as AriaToggleButtonGroup } from 'react-aria-components';
import type { ToggleButtonGroupProps } from './types';
-import { useStyles } from '../../hooks/useStyles';
+import { resolveResponsiveValue, useStyles } from '../../hooks/useStyles';
import { ToggleButtonGroupDefinition } from './definition';
import styles from './ToggleButtonGroup.module.css';
+import { useBreakpoint } from '../../hooks/useBreakpoint';
/** @public */
export const ToggleButtonGroup = forwardRef(
(props: ToggleButtonGroupProps, ref: Ref) => {
+ const { breakpoint } = useBreakpoint();
const { classNames, dataAttributes, cleanedProps } = useStyles(
ToggleButtonGroupDefinition,
{
- orientation: 'horizontal',
+ orientation: 'horizontal' as const,
...props,
},
);
- const { className, children, ...rest } = cleanedProps;
+ const { className, children, orientation, ...rest } = cleanedProps;
return (
diff --git a/packages/ui/src/components/ToggleButtonGroup/types.ts b/packages/ui/src/components/ToggleButtonGroup/types.ts
index d0de983f66..16ca11d482 100644
--- a/packages/ui/src/components/ToggleButtonGroup/types.ts
+++ b/packages/ui/src/components/ToggleButtonGroup/types.ts
@@ -14,14 +14,13 @@
* limitations under the License.
*/
-import type { Breakpoint } from '../..';
import type { ToggleButtonGroupProps as AriaToggleButtonGroupProps } from 'react-aria-components';
+import { Responsive } from '../../types';
/** @public */
export interface ToggleButtonGroupProps
- extends AriaToggleButtonGroupProps