Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
06a8725
feat(baseframe): radius/font-weight 토큰 YAML 소스 추가 및 CLI 재생성
ohprettyhak Feb 12, 2026
5660d35
feat(react): radius 토큰 JS 모듈 추가
ohprettyhak Feb 12, 2026
1963903
refactor(button): error→danger variant 변경 및 spacing/radius 토큰 적용
ohprettyhak Feb 12, 2026
ae3c829
refactor(select): 2xs 사이즈 제거 및 Button과 높이 통일
ohprettyhak Feb 12, 2026
c806683
refactor(react): Badge/Switch/StockQuantityStatus 네이밍 및 import 패턴 통일
ohprettyhak Feb 12, 2026
ce9a31f
refactor(react): CSS 모듈 radius 토큰화 및 disabled opacity 통일
ohprettyhak Feb 12, 2026
729b718
fix(badge): biome import 정렬 수정
ohprettyhak Feb 12, 2026
21cfdd7
chore: pnpm 버전 10.19.3 → 10.29.3 업데이트
ohprettyhak Feb 12, 2026
3a48785
style(docs): biome 포맷 및 lint 오류 수정
ohprettyhak Feb 12, 2026
74b9e4b
fix(switch): storybook에서 존재하지 않는 size 옵션 수정
ohprettyhak Feb 12, 2026
b320482
fix(checkbox): intermediate 상태에 올바른 아이콘 적용
ohprettyhak Feb 12, 2026
89021cb
chore(deps): storybook 10.1.4 → 10.2.8 업데이트
ohprettyhak Feb 12, 2026
0414b10
refactor(baseframe): 파서 모듈 분리 및 코드 품질 개선
ohprettyhak Feb 12, 2026
c8b13cc
test(baseframe): 파서/변환/빌더 전체 유닛 테스트 추가 (196 tests)
ohprettyhak Feb 12, 2026
d786f3f
refactor(select): xl 사이즈 제거
ohprettyhak Feb 12, 2026
4bbc61e
refactor(button): xl 사이즈 제거
ohprettyhak Feb 12, 2026
beb08c5
refactor(stories): prop 차원별 독립 스토리 분리 및 문서화 개선
ohprettyhak Feb 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/storybook/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
"react-dom": "catalog:core"
},
"devDependencies": {
"@storybook/react-vite": "^10.1.4",
"@storybook/react-vite": "^10.2.8",
"@types/react": "catalog:types",
"@types/react-dom": "catalog:types",
"@vitejs/plugin-react": "^5.1.2",
"globals": "^16.5.0",
"storybook": "^10.1.4",
"storybook": "^10.2.8",
"typescript": "catalog:core",
"vite": "^7.2.7"
}
Expand Down
4 changes: 3 additions & 1 deletion docs/website/src/components/example/button-disabled.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ export default function ButtonDisabled() {
return (
<div style={{ display: 'flex', gap: 8 }}>
<Button disabled>Disabled</Button>
<Button variant="secondary" disabled>Disabled</Button>
<Button variant="secondary" disabled>
Disabled
</Button>
</div>
);
}
4 changes: 3 additions & 1 deletion docs/website/src/components/example/button-loading.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ export default function ButtonLoading() {
return (
<div style={{ display: 'flex', gap: 8 }}>
<Button loading>Loading</Button>
<Button variant="secondary" loading>Loading</Button>
<Button variant="secondary" loading>
Loading
</Button>
</div>
);
}
6 changes: 4 additions & 2 deletions docs/website/src/components/example/button-prefix-suffix.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { Button } from '@cocso-ui/react';
import { PlusIcon, ArrowIOSForwardIcon } from '@cocso-ui/react-icons';
import { ArrowIOSForwardIcon, PlusIcon } from '@cocso-ui/react-icons';

export default function ButtonPrefixSuffix() {
return (
<div style={{ display: 'flex', gap: 8, flexWrap: 'wrap' }}>
<Button prefix={<PlusIcon />}>Prefix</Button>
<Button suffix={<ArrowIOSForwardIcon />}>Suffix</Button>
<Button prefix={<PlusIcon />} suffix={<ArrowIOSForwardIcon />}>Both</Button>
<Button prefix={<PlusIcon />} suffix={<ArrowIOSForwardIcon />}>
Both
</Button>
</div>
);
}
4 changes: 3 additions & 1 deletion docs/website/src/components/example/button-shape.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ export default function ButtonShape() {
<div style={{ display: 'flex', gap: 8, alignItems: 'center' }}>
<Button shape="square">Square</Button>
<Button shape="rounded">Rounded</Button>
<Button shape="circle" svgOnly aria-label="추가"><PlusIcon /></Button>
<Button shape="circle" svgOnly aria-label="추가">
<PlusIcon />
</Button>
</div>
);
}
1 change: 0 additions & 1 deletion docs/website/src/components/example/button-size.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ export default function ButtonSize() {
<Button size="sm">Small</Button>
<Button size="md">Medium</Button>
<Button size="lg">Large</Button>
<Button size="xl">XLarge</Button>
</div>
);
}
2 changes: 1 addition & 1 deletion docs/website/src/components/example/button-variant.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export default function ButtonVariant() {
<Button variant="secondary">Secondary</Button>
<Button variant="tertiary">Tertiary</Button>
<Button variant="success">Success</Button>
<Button variant="error">Error</Button>
<Button variant="danger">Danger</Button>
<Button variant="warning">Warning</Button>
<Button variant="neutral">Neutral</Button>
</div>
Expand Down
7 changes: 1 addition & 6 deletions docs/website/src/components/example/checkbox-default.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,5 @@ import { useState } from 'react';
export default function CheckboxDefault() {
const [status, setStatus] = useState<'on' | 'off' | 'intermediate'>('off');

return (
<Checkbox
status={status}
onChange={(newStatus) => setStatus(newStatus)}
/>
);
return <Checkbox status={status} onChange={newStatus => setStatus(newStatus)} />;
}
7 changes: 1 addition & 6 deletions docs/website/src/components/example/day-picker-default.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,5 @@ import { useState } from 'react';
export default function DayPickerDefault() {
const [value, setValue] = useState<Date | undefined>(new Date());

return (
<DayPicker
value={value}
onValueChange={(date) => setValue(date ?? undefined)}
/>
);
return <DayPicker value={value} onValueChange={date => setValue(date ?? undefined)} />;
}
2 changes: 1 addition & 1 deletion docs/website/src/components/example/day-picker-range.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export default function DayPickerRange() {
return (
<DayPicker
value={value}
onValueChange={(date) => setValue(date ?? undefined)}
onValueChange={date => setValue(date ?? undefined)}
minDate={today}
maxDate={maxDate}
/>
Expand Down
4 changes: 3 additions & 1 deletion docs/website/src/components/example/link-indicator.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ export default function LinkIndicator() {
return (
<div style={{ display: 'flex', gap: 16 }}>
<Link href="#">밑줄 있음</Link>
<Link href="#" indicator={false}>밑줄 없음</Link>
<Link href="#" indicator={false}>
밑줄 없음
</Link>
</div>
);
}
16 changes: 12 additions & 4 deletions docs/website/src/components/example/link-size.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,18 @@ import { Link } from '@cocso-ui/react';
export default function LinkSize() {
return (
<div style={{ display: 'flex', gap: 16, alignItems: 'center' }}>
<Link href="#" size="xs">XSmall</Link>
<Link href="#" size="sm">Small</Link>
<Link href="#" size="md">Medium</Link>
<Link href="#" size="lg">Large</Link>
<Link href="#" size="xs">
XSmall
</Link>
<Link href="#" size="sm">
Small
</Link>
<Link href="#" size="md">
Medium
</Link>
<Link href="#" size="lg">
Large
</Link>
</div>
);
}
7 changes: 1 addition & 6 deletions docs/website/src/components/example/month-picker-default.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,5 @@ import { useState } from 'react';
export default function MonthPickerDefault() {
const [value, setValue] = useState<Date | undefined>(new Date());

return (
<MonthPicker
value={value}
onValueChange={(date) => setValue(date ?? undefined)}
/>
);
return <MonthPicker value={value} onValueChange={date => setValue(date ?? undefined)} />;
}
2 changes: 1 addition & 1 deletion docs/website/src/components/example/month-picker-range.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export default function MonthPickerRange() {
return (
<MonthPicker
value={value}
onValueChange={(date) => setValue(date ?? undefined)}
onValueChange={date => setValue(date ?? undefined)}
minDate={minDate}
maxDate={maxDate}
/>
Expand Down
1 change: 1 addition & 0 deletions docs/website/src/components/example/otp-default.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ export default function OtpDefault() {
return (
<OneTimePasswordField>
{Array.from({ length: 6 }, (_, index) => (
// biome-ignore lint/suspicious/noArrayIndexKey: fixed-length OTP field
<OneTimePasswordField.Input key={index} index={index} />
))}
</OneTimePasswordField>
Expand Down
8 changes: 1 addition & 7 deletions docs/website/src/components/example/pagination-default.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,5 @@ import { useState } from 'react';
export default function PaginationDefault() {
const [page, setPage] = useState(1);

return (
<Pagination
page={page}
totalPages={10}
onChange={setPage}
/>
);
return <Pagination page={page} totalPages={10} onChange={setPage} />;
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,5 @@ import { useState } from 'react';
export default function PaginationMaxVisible() {
const [page, setPage] = useState(1);

return (
<Pagination
page={page}
totalPages={20}
maxVisible={3}
onChange={setPage}
/>
);
return <Pagination page={page} totalPages={20} maxVisible={3} onChange={setPage} />;
}
18 changes: 12 additions & 6 deletions docs/website/src/components/example/select-size.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,18 @@ import { Select } from '@cocso-ui/react';
export default function SelectSize() {
return (
<div style={{ display: 'flex', gap: 8, alignItems: 'center', flexWrap: 'wrap' }}>
<Select size="2xs"><option>2XSmall</option></Select>
<Select size="xs"><option>XSmall</option></Select>
<Select size="sm"><option>Small</option></Select>
<Select size="md"><option>Medium</option></Select>
<Select size="lg"><option>Large</option></Select>
<Select size="xl"><option>XLarge</option></Select>
<Select size="xs">
<option>XSmall</option>
</Select>
<Select size="sm">
<option>Small</option>
</Select>
<Select size="md">
<option>Medium</option>
</Select>
<Select size="lg">
<option>Large</option>
</Select>
</div>
);
}
20 changes: 15 additions & 5 deletions docs/website/src/components/example/toast-variant.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,21 @@ export default function ToastVariant() {
return (
<>
<div style={{ display: 'flex', gap: 8, flexWrap: 'wrap' }}>
<Button variant="secondary" onClick={() => toast('기본 알림입니다.')}>Default</Button>
<Button variant="secondary" onClick={() => toast.success('성공적으로 저장되었습니다.')}>Success</Button>
<Button variant="secondary" onClick={() => toast.error('오류가 발생했습니다.')}>Error</Button>
<Button variant="secondary" onClick={() => toast.warning('주의가 필요합니다.')}>Warning</Button>
<Button variant="secondary" onClick={() => toast.info('참고 정보입니다.')}>Info</Button>
<Button variant="secondary" onClick={() => toast('기본 알림입니다.')}>
Default
</Button>
<Button variant="secondary" onClick={() => toast.success('성공적으로 저장되었습니다.')}>
Success
</Button>
<Button variant="secondary" onClick={() => toast.error('오류가 발생했습니다.')}>
Error
</Button>
<Button variant="secondary" onClick={() => toast.warning('주의가 필요합니다.')}>
Warning
</Button>
<Button variant="secondary" onClick={() => toast.info('참고 정보입니다.')}>
Info
</Button>
</div>
<Toaster position="bottom-right" richColors />
</>
Expand Down
8 changes: 6 additions & 2 deletions docs/website/src/components/example/typography-type.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@ import { Typography } from '@cocso-ui/react';
export default function TypographyType() {
return (
<div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>
<Typography type="heading" size="md" weight="bold">Heading 텍스트</Typography>
<Typography type="body" size="md">Body 텍스트입니다. 일반적인 본문 내용에 사용합니다.</Typography>
<Typography type="heading" size="md" weight="bold">
Heading 텍스트
</Typography>
<Typography type="body" size="md">
Body 텍스트입니다. 일반적인 본문 내용에 사용합니다.
</Typography>
</div>
);
}
20 changes: 15 additions & 5 deletions docs/website/src/components/example/typography-weight.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,21 @@ import { Typography } from '@cocso-ui/react';
export default function TypographyWeight() {
return (
<div style={{ display: 'flex', flexDirection: 'column', gap: 8 }}>
<Typography size={16} weight="light">Light (300)</Typography>
<Typography size={16} weight="normal">Normal (400)</Typography>
<Typography size={16} weight="medium">Medium (500)</Typography>
<Typography size={16} weight="semibold">Semibold (600)</Typography>
<Typography size={16} weight="bold">Bold (700)</Typography>
<Typography size={16} weight="light">
Light (300)
</Typography>
<Typography size={16} weight="normal">
Normal (400)
</Typography>
<Typography size={16} weight="medium">
Medium (500)
</Typography>
<Typography size={16} weight="semibold">
Semibold (600)
</Typography>
<Typography size={16} weight="bold">
Bold (700)
</Typography>
</div>
);
}
Loading