Skip to content

Commit 16153ed

Browse files
authored
chore: Add ActionButtonGroup and ToggleButtonGroup to example apps and tailwind starter kit (#7407)
* Add ActionButtonGroup and ToggleButtonGroup to S2 example apps * Add ToggleButtonGroup to RAC Tailwind starter kit * enable verdaccio build * Fix TS * Revert "enable verdaccio build" This reverts commit 3f1ee42.
1 parent 65e3a52 commit 16153ed

File tree

6 files changed

+85
-1
lines changed

6 files changed

+85
-1
lines changed

examples/s2-parcel-example/src/App.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import React, { useState } from "react";
1414
import "@react-spectrum/s2/page.css";
1515
import {
1616
ActionButton,
17+
ActionButtonGroup,
1718
ActionMenu,
1819
Button,
1920
ButtonGroup,
@@ -34,6 +35,7 @@ import {
3435
TableView,
3536
Text,
3637
ToggleButton,
38+
ToggleButtonGroup
3739
} from "@react-spectrum/s2";
3840
import Edit from "@react-spectrum/s2/icons/Edit";
3941
import Section from "./components/Section";
@@ -100,6 +102,16 @@ function App() {
100102
>
101103
Link Button
102104
</LinkButton>
105+
<ActionButtonGroup density="compact">
106+
<ActionButton>Cut</ActionButton>
107+
<ActionButton>Copy</ActionButton>
108+
<ActionButton>Paste</ActionButton>
109+
</ActionButtonGroup>
110+
<ToggleButtonGroup density="compact" selectionMode="multiple">
111+
<ToggleButton id="bold">Bold</ToggleButton>
112+
<ToggleButton id="italic">Italic</ToggleButton>
113+
<ToggleButton id="underline">Underline</ToggleButton>
114+
</ToggleButtonGroup>
103115
</ButtonGroup>
104116
</Section>
105117

examples/s2-vite-project/src/App.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import React, { useState } from "react";
1414
import "@react-spectrum/s2/page.css";
1515
import {
1616
ActionButton,
17+
ActionButtonGroup,
1718
ActionMenu,
1819
Button,
1920
ButtonGroup,
@@ -34,6 +35,7 @@ import {
3435
TableView,
3536
Text,
3637
ToggleButton,
38+
ToggleButtonGroup
3739
} from "@react-spectrum/s2";
3840
import Edit from "@react-spectrum/s2/icons/Edit";
3941
import Section from "./components/Section";
@@ -100,6 +102,16 @@ function App() {
100102
>
101103
Link Button
102104
</LinkButton>
105+
<ActionButtonGroup density="compact">
106+
<ActionButton>Cut</ActionButton>
107+
<ActionButton>Copy</ActionButton>
108+
<ActionButton>Paste</ActionButton>
109+
</ActionButtonGroup>
110+
<ToggleButtonGroup density="compact" selectionMode="multiple">
111+
<ToggleButton id="bold">Bold</ToggleButton>
112+
<ToggleButton id="italic">Italic</ToggleButton>
113+
<ToggleButton id="underline">Underline</ToggleButton>
114+
</ToggleButtonGroup>
103115
</ButtonGroup>
104116
</Section>
105117

examples/s2-webpack-5-example/src/App.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import React, { useState } from "react";
1414
import "@react-spectrum/s2/page.css";
1515
import {
1616
ActionButton,
17+
ActionButtonGroup,
1718
ActionMenu,
1819
Button,
1920
ButtonGroup,
@@ -34,6 +35,7 @@ import {
3435
TableView,
3536
Text,
3637
ToggleButton,
38+
ToggleButtonGroup
3739
} from "@react-spectrum/s2";
3840
import Edit from "@react-spectrum/s2/icons/Edit";
3941
import Section from "./components/Section";
@@ -100,6 +102,16 @@ function App() {
100102
>
101103
Link Button
102104
</LinkButton>
105+
<ActionButtonGroup density="compact">
106+
<ActionButton>Cut</ActionButton>
107+
<ActionButton>Copy</ActionButton>
108+
<ActionButton>Paste</ActionButton>
109+
</ActionButtonGroup>
110+
<ToggleButtonGroup density="compact" selectionMode="multiple">
111+
<ToggleButton id="bold">Bold</ToggleButton>
112+
<ToggleButton id="italic">Italic</ToggleButton>
113+
<ToggleButton id="underline">Underline</ToggleButton>
114+
</ToggleButtonGroup>
103115
</ButtonGroup>
104116
</Section>
105117

starters/tailwind/src/ToggleButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { focusRing } from './utils';
55

66
let styles = tv({
77
extend: focusRing,
8-
base: 'px-5 py-2 text-sm text-center transition rounded-lg border border-black/10 dark:border-white/10 forced-colors:border-[ButtonBorder] shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)] dark:shadow-none cursor-default forced-color-adjust-none',
8+
base: 'px-5 py-2 [&:has(svg:only-child)]:px-2 text-sm text-center transition rounded-lg border border-black/10 dark:border-white/10 forced-colors:border-[ButtonBorder] shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)] dark:shadow-none cursor-default forced-color-adjust-none',
99
variants: {
1010
isSelected: {
1111
false: 'bg-gray-100 hover:bg-gray-200 pressed:bg-gray-300 text-gray-800 dark:bg-zinc-600 dark:hover:bg-zinc-500 dark:pressed:bg-zinc-400 dark:text-zinc-100 forced-colors:!bg-[ButtonFace] forced-colors:!text-[ButtonText]',
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import React from 'react';
2+
import { composeRenderProps, ToggleButtonGroup as RACToggleButtonGroup, ToggleButtonGroupProps } from 'react-aria-components';
3+
import { tv } from 'tailwind-variants';
4+
5+
const styles = tv({
6+
base: 'flex gap-1',
7+
variants: {
8+
orientation: {
9+
horizontal: 'flex-row',
10+
vertical: 'flex-col'
11+
}
12+
}
13+
});
14+
15+
export function ToggleButtonGroup(props: ToggleButtonGroupProps) {
16+
return (
17+
<RACToggleButtonGroup
18+
{...props}
19+
className={composeRenderProps(props.className, (className) => styles({orientation: props.orientation || 'horizontal', className}))} />
20+
);
21+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import type { Meta } from '@storybook/react';
2+
import React from 'react';
3+
import { ToggleButton } from '../src/ToggleButton';
4+
import { ToggleButtonGroup } from '../src/ToggleButtonGroup';
5+
import { Bold, Italic, Underline } from 'lucide-react'
6+
7+
const meta: Meta<typeof ToggleButtonGroup> = {
8+
component: ToggleButtonGroup,
9+
parameters: {
10+
layout: 'centered'
11+
},
12+
tags: ['autodocs']
13+
};
14+
15+
export default meta;
16+
17+
export const Example = (args: any) => (
18+
<ToggleButtonGroup {...args}>
19+
<ToggleButton id="bold" aria-label="Bold"><Bold className="w-4 h-4" /></ToggleButton>
20+
<ToggleButton id="italic" aria-label="Italic"><Italic className="w-4 h-4" /></ToggleButton>
21+
<ToggleButton id="underline" aria-label="Underline"><Underline className="w-4 h-4" /></ToggleButton>
22+
</ToggleButtonGroup>
23+
);
24+
25+
Example.args = {
26+
selectionMode: 'multiple'
27+
};

0 commit comments

Comments
 (0)