Skip to content

Commit 69ea8b9

Browse files
authored
Merge pull request #106 from makeswift/hunter/des-1482-remove-colorscheme-in-components
feat: remove colorScheme and refacotred aspectRatio with data attributes
2 parents ba3c467 + ffa4bdf commit 69ea8b9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1306
-1552
lines changed

.changeset/eleven-bobcats-ask.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'commerce-toolkit': minor
3+
---
4+
5+
Removed colorScheme and refactored aspectRatio with data attributes

src/components/accordion/accordion.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import * as AccordionPrimitive from '@/components/accordion';
44

55
interface BaseAccordionProps {
66
className?: string;
7-
colorScheme?: 'light' | 'dark';
87
items: Array<{
98
title: string;
109
content: ReactNode;
@@ -49,9 +48,9 @@ export type AccordionProps = AccordionSingleProps | AccordionMultipleProps;
4948
* }
5049
* ```
5150
*/
52-
export function Accordion({ className, colorScheme = 'light', items, ...props }: AccordionProps) {
51+
export function Accordion({ className, items, ...props }: AccordionProps) {
5352
return (
54-
<AccordionPrimitive.Root className={className} colorScheme={colorScheme} {...props}>
53+
<AccordionPrimitive.Root className={className} {...props}>
5554
{items.map(({ content, title, value }) => (
5655
<AccordionPrimitive.Item key={value} value={value}>
5756
<AccordionPrimitive.Header>

src/components/accordion/primitives.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ export {
55
export {
66
AccordionRoot as Root,
77
type AccordionRootProps as RootProps,
8-
useAccordion,
98
} from '@/components/accordion/primitives/accordion-root';
109
export {
1110
AccordionContent as Content,

src/components/accordion/primitives/accordion-chevron.tsx

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,14 @@
11
import type { ComponentProps } from 'react';
22

3-
import { useAccordion } from '@/components/accordion';
43
import { cn } from '@/lib';
54

65
export type AccordionChevronProps = ComponentProps<'svg'>;
76

87
export function AccordionChevron({ className, ...props }: AccordionChevronProps) {
9-
const { colorScheme } = useAccordion();
10-
118
return (
129
<svg
1310
className={cn(
14-
'mt-1 shrink-0 [&>line]:origin-center [&>line]:transition [&>line]:duration-300 [&>line]:ease-out',
15-
{
16-
light:
17-
'stroke-[var(--accordion-light-title-icon,hsl(var(--contrast-500)))] group-hover:stroke-[var(--accordion-light-title-icon-hover,hsl(var(--foreground)))]',
18-
dark: 'stroke-[var(--accordion-dark-title-icon,hsl(var(--contrast-200)))] group-hover:stroke-[var(--accordion-dark-title-icon-hover,hsl(var(--background)))]',
19-
}[colorScheme],
11+
'mt-1 shrink-0 stroke-[var(--accordion-light-title-icon,hsl(var(--contrast-500)))] group-hover:stroke-[var(--accordion-light-title-icon-hover,hsl(var(--foreground)))] [&>line]:origin-center [&>line]:transition [&>line]:duration-300 [&>line]:ease-out',
2012
className,
2113
)}
2214
data-slot="accordion-chevron"

src/components/accordion/primitives/accordion-content-area.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
11
import type { ComponentProps } from 'react';
22

3-
import { useAccordion } from '@/components/accordion';
43
import { cn } from '@/lib';
54

65
export type AccordionContentAreaProps = ComponentProps<'div'>;
76

87
export function AccordionContentArea({ children, className, ...props }: AccordionContentAreaProps) {
9-
const { colorScheme } = useAccordion();
10-
118
return (
129
<div
1310
className={cn(
14-
'py-3 text-base font-light leading-normal [font-family:var(--accordion-content-font-family,var(--font-family-body))]',
15-
{
16-
light: 'text-[var(--accordion-light-content-text,hsl(var(--foreground)))]',
17-
dark: 'text-[var(--accordion-dark-content-text,hsl(var(--background)))]',
18-
}[colorScheme],
11+
'py-3 text-base font-light leading-normal text-[var(--accordion-light-content-text,hsl(var(--foreground)))] [font-family:var(--accordion-content-font-family,var(--font-family-body))]',
12+
1913
className,
2014
)}
2115
data-slot="accordion-content-area"

src/components/accordion/primitives/accordion-item.tsx

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,15 @@
33
import * as AccordionPrimitive from '@radix-ui/react-accordion';
44
import type { ComponentProps } from 'react';
55

6-
import { useAccordion } from '@/components/accordion';
76
import { cn } from '@/lib';
87

98
export type AccordionItemProps = ComponentProps<typeof AccordionPrimitive.Item>;
109

1110
export function AccordionItem({ children, className, ...props }: AccordionItemProps) {
12-
const { colorScheme } = useAccordion();
13-
1411
return (
1512
<AccordionPrimitive.Item
1613
className={cn(
17-
'focus:outline-2 has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-[var(--accordion-focus,hsl(var(--primary)))] has-[:focus-visible]:ring-offset-4',
18-
{
19-
light: 'ring-offset-[var(--acordion-light-offset,hsl(var(--background)))]',
20-
dark: 'ring-offset-[var(--acordion-dark-offset,hsl(var(--foreground)))]',
21-
}[colorScheme],
14+
'ring-offset-[var(--acordion-light-offset,hsl(var(--background)))] focus:outline-2 has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-[var(--accordion-focus,hsl(var(--primary)))] has-[:focus-visible]:ring-offset-4',
2215
className,
2316
)}
2417
data-slot="accordion-item"
Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,16 @@
11
'use client';
22

33
import * as AccordionPrimitive from '@radix-ui/react-accordion';
4-
import { createContext, use, useMemo } from 'react';
54
import type { ComponentProps } from 'react';
65

76
import { cn } from '@/lib';
87

9-
interface AccordionContext {
10-
colorScheme: 'light' | 'dark';
11-
}
12-
13-
export const AccordionContext = createContext<AccordionContext | undefined>(undefined);
14-
15-
export type AccordionRootProps = ComponentProps<typeof AccordionPrimitive.Root> & {
16-
colorScheme?: 'light' | 'dark';
17-
};
18-
19-
export function AccordionRoot({
20-
className,
21-
colorScheme = 'light',
22-
children,
23-
...props
24-
}: AccordionRootProps) {
25-
const contextValues = useMemo(
26-
() => ({
27-
colorScheme,
28-
}),
29-
[colorScheme],
30-
);
8+
export type AccordionRootProps = ComponentProps<typeof AccordionPrimitive.Root>;
319

10+
export function AccordionRoot({ className, children, ...props }: AccordionRootProps) {
3211
return (
33-
<AccordionContext.Provider value={contextValues}>
34-
<AccordionPrimitive.Root className={cn(className)} data-slot="accordion-root" {...props}>
35-
{children}
36-
</AccordionPrimitive.Root>
37-
</AccordionContext.Provider>
12+
<AccordionPrimitive.Root className={cn(className)} data-slot="accordion-root" {...props}>
13+
{children}
14+
</AccordionPrimitive.Root>
3815
);
3916
}
40-
41-
export function useAccordion() {
42-
const context = use(AccordionContext);
43-
44-
if (context === undefined) {
45-
throw new Error('useAccordion must be used within an AccordionRoot');
46-
}
47-
48-
return context;
49-
}

src/components/accordion/primitives/accordion-title.tsx

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,14 @@
11
import type { ComponentProps } from 'react';
22

3-
import { useAccordion } from '@/components/accordion';
43
import { cn } from '@/lib';
54

65
export type AccordionTitleProps = ComponentProps<'div'>;
76

87
export function AccordionTitle({ children, className, ...props }: AccordionTitleProps) {
9-
const { colorScheme } = useAccordion();
10-
118
return (
129
<div
1310
className={cn(
14-
'flex-1 select-none text-sm font-normal uppercase transition-colors duration-300 ease-out [font-family:var(--accordion-title-font-family,var(--font-family-mono))]',
15-
{
16-
light:
17-
'text-[var(--accordion-light-title-text,hsl(var(--contrast-400)))] group-hover:text-[var(--accordion-light-title-text-hover,hsl(var(--foreground)))]',
18-
dark: 'text-[var(--accordion-dark-title-text,hsl(var(--contrast-200)))] group-hover:text-[var(--accordion-dark-title-text-hover,hsl(var(--background)))]',
19-
}[colorScheme],
11+
'flex-1 select-none text-sm font-normal uppercase text-[var(--accordion-light-title-text,hsl(var(--contrast-400)))] transition-colors duration-300 ease-out [font-family:var(--accordion-title-font-family,var(--font-family-mono))] group-hover:text-[var(--accordion-light-title-text-hover,hsl(var(--foreground)))]',
2012
className,
2113
)}
2214
{...props}

0 commit comments

Comments
 (0)