Skip to content

Commit a684daa

Browse files
committed
fix(catalyst): Update data-disabled selectors to data-[disabled]
1 parent 52ee85e commit a684daa

8 files changed

Lines changed: 34 additions & 8 deletions

File tree

.changeset/soft-flies-sip.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
"@bigcommerce/catalyst-core": patch
3+
---
4+
5+
Fix data-disabled class selectors in UI components
6+
7+
## Migration
8+
9+
Updated Tailwind CSS class selectors from `data-disabled:` to `data-[disabled]:` in the following components:
10+
11+
- `vibes/soul/form/button-radio-group/index.tsx`
12+
- `vibes/soul/form/card-radio-group/index.tsx`
13+
- `vibes/soul/form/radio-group/index.tsx`
14+
- `vibes/soul/form/rating-radio-group/index.tsx`
15+
- `vibes/soul/form/swatch-radio-group/index.tsx`
16+
- `vibes/soul/form/switch/index.tsx`
17+
- `vibes/soul/primitives/dropdown-menu/index.tsx`
18+
19+
If you have customized any of these components, update your class names:
20+
21+
```diff
22+
- data-disabled:pointer-events-none data-disabled:opacity-50
23+
+ data-[disabled]:pointer-events-none data-[disabled]:opacity-50
24+
```
25+
26+
This change ensures proper styling of disabled states using the correct Tailwind CSS data attribute syntax.

core/vibes/soul/form/button-radio-group/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export const ButtonRadioGroup = React.forwardRef<
8080
<RadioGroupPrimitive.Item
8181
aria-label={option.label}
8282
className={clsx(
83-
'data-disabled:pointer-events-none data-disabled:opacity-50 h-12 whitespace-nowrap rounded-full border px-4 font-body text-sm font-normal leading-normal transition-colors focus-visible:outline-0 focus-visible:ring-2',
83+
'h-12 whitespace-nowrap rounded-full border px-4 font-body text-sm font-normal leading-normal transition-colors focus-visible:outline-0 focus-visible:ring-2 data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
8484
{
8585
light:
8686
'border-[var(--button-radio-group-light-unchecked-border,hsl(var(--contrast-100)))] focus-visible:ring-[var(--button-radio-group-light-focus,hsl(var(--primary)))] data-[state=checked]:bg-[var(--button-radio-group-light-checked-background,hsl(var(--foreground)))] data-[state=unchecked]:bg-[var(--button-radio-group-light-unchecked-background,hsl(var(--background)))] data-[state=checked]:text-[var(--button-radio-group-light-checked-text,hsl(var(--background)))] data-[state=unchecked]:text-[var(--button-radio-group-light-unchecked-text,hsl(var(--foreground)))] data-[state=unchecked]:hover:border-[var(--button-radio-group-light-unchecked-border-hover,hsl(var(--contrast-200)))] data-[state=unchecked]:hover:bg-[var(--button-radio-group-light-unchecked-background-hover,hsl(var(--contrast-100)))]',

core/vibes/soul/form/card-radio-group/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ export const CardRadioGroup = React.forwardRef<
8282
<RadioGroupPrimitive.Item
8383
aria-label={option.label}
8484
className={clsx(
85-
'data-disabled:pointer-events-none data-disabled:opacity-50 relative flex h-12 w-full items-center overflow-hidden rounded-lg border font-body text-sm font-normal leading-normal transition-colors focus-visible:outline-0 focus-visible:ring-2 focus-visible:ring-[var(--card-radio-group-focus,hsl(var(--primary)))]',
85+
'relative flex h-12 w-full items-center overflow-hidden rounded-lg border font-body text-sm font-normal leading-normal transition-colors focus-visible:outline-0 focus-visible:ring-2 focus-visible:ring-[var(--card-radio-group-focus,hsl(var(--primary)))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
8686
{
8787
light:
8888
'border-[var(--card-radio-group-light-unchecked-border,hsl(var(--contrast-100)))] text-[var(--card-radio-group-light-unchecked-text,hsl(var(--foreground)))] data-[state=checked]:bg-[var(--card-radio-group-light-checked-background,hsl(var(--foreground)))] data-[state=unchecked]:bg-[var(--card-radio-group-light-unchecked-background,hsl(var(--background)))] data-[state=checked]:text-[var(--card-radio-group-light-checked-text,hsl(var(--background)))] data-[state=unchecked]:hover:border-[var(--card-radio-group-light-unchecked-border-hover,hsl(var(--contrast-200)))] data-[state=unchecked]:hover:bg-[var(--card-radio-group-light-unchecked-background-hover,hsl(var(--contrast-100)))]',

core/vibes/soul/form/radio-group/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ function RadioGroupItem({
117117
option.description !== undefined ? `${id}-label ${id}-description` : `${id}-label`
118118
}
119119
className={clsx(
120-
'data-disabled:pointer-events-none data-disabled:opacity-50 size-5 cursor-default rounded-full border outline-none [&:disabled+label]:pointer-events-none [&:disabled+label]:opacity-50',
120+
'size-5 cursor-default rounded-full border outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&:disabled+label]:pointer-events-none [&:disabled+label]:opacity-50',
121121
{
122122
light: 'bg-[var(--radio-group-light-background,hsl(var(--background)))]',
123123
dark: 'bg-[var(--radio-group-dark-background,hsl(var(--foreground)))]',

core/vibes/soul/form/rating-radio-group/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export const RatingRadioGroup = React.forwardRef<
101101
<RadioGroupPrimitive.Item
102102
className={clsx(
103103
'peer sr-only',
104-
'data-disabled:pointer-events-none data-disabled:opacity-50 transition-colors focus-visible:outline-0 focus-visible:ring-2',
104+
'transition-colors focus-visible:outline-0 focus-visible:ring-2 data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
105105
{
106106
light:
107107
'focus-visible:ring-[var(--rating-radio-group-focus,hsl(var(--primary)))]',

core/vibes/soul/form/swatch-radio-group/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export const SwatchRadioGroup = React.forwardRef<
9090
<RadioGroupPrimitive.Item
9191
aria-label={option.label}
9292
className={clsx(
93-
'data-disabled:pointer-events-none group relative box-content h-8 w-8 rounded-full border p-0.5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--swatch-radio-group-focus,hsl(var(--primary)))] [&:disabled>.disabled-icon]:grid',
93+
'group relative box-content h-8 w-8 rounded-full border p-0.5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--swatch-radio-group-focus,hsl(var(--primary)))] data-[disabled]:pointer-events-none [&:disabled>.disabled-icon]:grid',
9494
{
9595
light:
9696
'hover:border-[var(--swatch-radio-group-light-unchecked-border-hover,hsl(var(--contrast-200)))] data-[state=checked]:border-[var(--swatch-radio-group-light-checked-border,hsl(var(--foreground)))]',

core/vibes/soul/form/switch/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export const Switch = ({
4949
aria-busy={loading}
5050
checked={checked}
5151
className={clsx(
52-
'[&:not([data-loading])]:data-disabled:bg-contrast-100 data-disabled:cursor-not-allowed w-12 rounded-full border border-contrast-200 p-[3px] transition-colors duration-100 focus-visible:outline-none focus-visible:ring-2',
52+
'w-12 rounded-full border border-contrast-200 p-[3px] transition-colors duration-100 focus-visible:outline-none focus-visible:ring-2 data-[disabled]:cursor-not-allowed [&:not([data-loading])]:data-[disabled]:bg-contrast-100',
5353
)}
5454
data-loading={loading ? '' : undefined}
5555
disabled={disabled || loading}
@@ -59,7 +59,7 @@ export const Switch = ({
5959
>
6060
<SwitchPrimitive.Thumb
6161
className={clsx(
62-
'data-disabled:bg-contrast-200 relative block h-5 w-5 overflow-hidden rounded-full transition-transform duration-100 data-[state=checked]:translate-x-full data-[state=unchecked]:bg-contrast-200',
62+
'relative block h-5 w-5 overflow-hidden rounded-full transition-transform duration-100 data-[state=checked]:translate-x-full data-[disabled]:bg-contrast-200 data-[state=unchecked]:bg-contrast-200',
6363
{
6464
primary: 'bg-[var(--toggle-primary-background,hsl(var(--primary)))]',
6565
secondary: 'bg-[var(--toggle-secondary-background,hsl(var(--foreground)))]',

core/vibes/soul/primitives/dropdown-menu/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ export const DropdownMenu = ({
103103
<DropdownMenuPrimitive.Item
104104
asChild={asChild ?? labelIsComponent}
105105
className={clsx(
106-
'data-disabled:bg-contrast-100/50 data-disabled:text-contrast-300/95 data-disabled:cursor-not-allowed cursor-default rounded-lg bg-[var(--dropdown-menu-item-background,transparent)] px-3 py-2 font-[family-name:var(--dropdown-menu-item-font-family,var(--font-family-body))] text-sm font-medium outline-none transition-colors',
106+
'cursor-default rounded-lg bg-[var(--dropdown-menu-item-background,transparent)] px-3 py-2 font-[family-name:var(--dropdown-menu-item-font-family,var(--font-family-body))] text-sm font-medium outline-none transition-colors data-[disabled]:cursor-not-allowed data-[disabled]:bg-contrast-100/50 data-[disabled]:text-contrast-300/95',
107107
{
108108
default:
109109
'text-[var(--dropdown-menu-item-text,hsl(var(--contrast-500)))] ring-[var(--dropdown-menu-item-focus,hsl(var(--primary)))] [&:not([data-disabled])]:hover:bg-[var(--dropdown-menu-item-background-hover,hsl(var(--contrast-100)))] [&:not([data-disabled])]:hover:text-[var(--dropdown-menu-item-text-hover,hsl(var(--foreground)))] [&:not([data-disabled])]:data-[highlighted]:bg-[var(--dropdown-menu-item-background-hover,hsl(var(--contrast-100)))] [&:not([data-disabled])]:data-[highlighted]:text-[var(--dropdown-menu-item-text-hover,hsl(var(--foreground)))]',

0 commit comments

Comments
 (0)