@1d1s/design-system 0.1.15 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +3 -1
  2. package/dist/DefaultProfile.png +0 -0
  3. package/dist/EmotionHappy.png +0 -0
  4. package/dist/EmotionSad.png +0 -0
  5. package/dist/EmotionSoso.png +0 -0
  6. package/dist/components/Accordion/Accordion.d.ts +47 -0
  7. package/dist/components/Accordion/Accordion.stories.d.ts +8 -0
  8. package/dist/components/Accordion/index.d.ts +1 -0
  9. package/dist/components/AppHeader/AppHeader.d.ts +24 -0
  10. package/dist/components/AppHeader/AppHeader.stories.d.ts +6 -0
  11. package/dist/components/AppHeader/index.d.ts +1 -0
  12. package/dist/components/Button/Button.d.ts +21 -0
  13. package/dist/components/Button/Button.stories.d.ts +13 -0
  14. package/dist/components/Button/index.d.ts +1 -0
  15. package/dist/components/Calendar/Calendar.d.ts +4 -0
  16. package/dist/components/Calendar/Calendar.stories.d.ts +6 -0
  17. package/dist/components/Calendar/index.d.ts +1 -0
  18. package/dist/components/ChallengeCard/ChallengeCard.d.ts +21 -0
  19. package/dist/components/ChallengeCard/ChallengeCard.stories.d.ts +10 -0
  20. package/dist/components/ChallengeCard/index.d.ts +1 -0
  21. package/dist/components/CheckContainer/CheckContainer.d.ts +17 -0
  22. package/dist/components/CheckContainer/CheckContainer.stories.d.ts +9 -0
  23. package/dist/components/CheckContainer/index.d.ts +1 -0
  24. package/dist/components/CheckList/CheckList.d.ts +35 -0
  25. package/dist/components/CheckList/CheckList.stories.d.ts +8 -0
  26. package/dist/components/CheckList/index.d.ts +1 -0
  27. package/dist/components/Checkbox/Checkbox.d.ts +14 -0
  28. package/dist/components/Checkbox/Checkbox.stories.d.ts +10 -0
  29. package/dist/components/Checkbox/index.d.ts +1 -0
  30. package/dist/components/CircleAvatar/CircleAvatar.d.ts +8 -0
  31. package/dist/components/CircleAvatar/CircleAvatar.stories.d.ts +7 -0
  32. package/dist/components/CircleAvatar/index.d.ts +1 -0
  33. package/dist/components/CircularProgress/CircularProgress.d.ts +27 -0
  34. package/dist/components/CircularProgress/CircularProgress.stories.d.ts +8 -0
  35. package/dist/components/CircularProgress/index.d.ts +1 -0
  36. package/dist/components/DatePicker/DatePicker.d.ts +26 -0
  37. package/dist/components/DatePicker/DatePicker.stories.d.ts +7 -0
  38. package/dist/components/DatePicker/index.d.ts +1 -0
  39. package/dist/components/Dialog/Dialog.d.ts +13 -0
  40. package/dist/components/Dialog/Dialog.stories.d.ts +9 -0
  41. package/dist/components/Dialog/index.d.ts +1 -0
  42. package/dist/components/DiaryCard/DiaryCard.d.ts +17 -0
  43. package/dist/components/DiaryCard/DiaryCard.stories.d.ts +6 -0
  44. package/dist/components/DiaryCard/index.d.ts +1 -0
  45. package/dist/components/Dropdown/Dropdown.d.ts +53 -0
  46. package/dist/components/Dropdown/Dropdown.stories.d.ts +7 -0
  47. package/dist/components/Dropdown/index.d.ts +1 -0
  48. package/dist/components/Footer/Footer.d.ts +8 -0
  49. package/dist/components/Footer/Footer.stories.d.ts +6 -0
  50. package/dist/components/Footer/index.d.ts +1 -0
  51. package/dist/components/Icons/AddCircle.d.ts +2 -0
  52. package/dist/components/Icons/Calendar.d.ts +2 -0
  53. package/dist/components/Icons/ChallengeDumbbell.d.ts +2 -0
  54. package/dist/components/Icons/ChallengeFlag.d.ts +2 -0
  55. package/dist/components/Icons/ChallengeFlame.d.ts +2 -0
  56. package/dist/components/Icons/ChallengeLaptop.d.ts +2 -0
  57. package/dist/components/Icons/ChallengeTarget.d.ts +2 -0
  58. package/dist/components/Icons/ChallengeTrophy.d.ts +2 -0
  59. package/dist/components/Icons/Check.d.ts +2 -0
  60. package/dist/components/Icons/Chevron.d.ts +2 -0
  61. package/dist/components/Icons/ChevronDown.d.ts +2 -0
  62. package/dist/components/Icons/ChevronLeft.d.ts +2 -0
  63. package/dist/components/Icons/ChevronRight.d.ts +2 -0
  64. package/dist/components/Icons/ChevronUp.d.ts +2 -0
  65. package/dist/components/Icons/Close.d.ts +2 -0
  66. package/dist/components/Icons/Endless.d.ts +2 -0
  67. package/dist/components/Icons/Eye.d.ts +2 -0
  68. package/dist/components/Icons/EyeOff.d.ts +2 -0
  69. package/dist/components/Icons/HamburgerMenu.d.ts +2 -0
  70. package/dist/components/Icons/Heart.d.ts +2 -0
  71. package/dist/components/Icons/HeartFilled.d.ts +2 -0
  72. package/dist/components/Icons/Icons.stories.d.ts +9 -0
  73. package/dist/components/Icons/Logo.d.ts +2 -0
  74. package/dist/components/Icons/Minus.d.ts +2 -0
  75. package/dist/components/Icons/People.d.ts +2 -0
  76. package/dist/components/Icons/Person.d.ts +2 -0
  77. package/dist/components/Icons/Pin.d.ts +2 -0
  78. package/dist/components/Icons/Plus.d.ts +2 -0
  79. package/dist/components/Icons/Search.d.ts +2 -0
  80. package/dist/components/Icons/index.d.ts +28 -0
  81. package/dist/components/ImagePicker/ImagePicker.d.ts +12 -0
  82. package/dist/components/ImagePicker/ImagePicker.stories.d.ts +6 -0
  83. package/dist/components/ImagePicker/index.d.ts +1 -0
  84. package/dist/components/ImagePlaceholder/ImagePlaceholder.d.ts +11 -0
  85. package/dist/components/ImagePlaceholder/index.d.ts +1 -0
  86. package/dist/components/InfoButton/InfoButton.d.ts +20 -0
  87. package/dist/components/InfoButton/InfoButton.stories.d.ts +6 -0
  88. package/dist/components/InfoButton/index.d.ts +1 -0
  89. package/dist/components/PageBackground/PageBackground.d.ts +15 -0
  90. package/dist/components/PageBackground/PageBackground.stories.d.ts +6 -0
  91. package/dist/components/PageBackground/index.d.ts +1 -0
  92. package/dist/components/PageTitle/PageTitle.d.ts +29 -0
  93. package/dist/components/PageTitle/PageTitle.stories.d.ts +7 -0
  94. package/dist/components/PageTitle/index.d.ts +1 -0
  95. package/dist/components/PageWatermark/PageWatermark.d.ts +1 -0
  96. package/dist/components/PageWatermark/PageWatermark.stories.d.ts +6 -0
  97. package/dist/components/PageWatermark/index.d.ts +1 -0
  98. package/dist/components/Pagination/Pagination.d.ts +14 -0
  99. package/dist/components/Pagination/Pagination.stories.d.ts +9 -0
  100. package/dist/components/Pagination/index.d.ts +1 -0
  101. package/dist/components/ProfileCard/ProfileCard.d.ts +6 -0
  102. package/dist/components/ProfileCard/ProfileCard.stories.d.ts +7 -0
  103. package/dist/components/ProfileCard/index.d.ts +1 -0
  104. package/dist/components/RightSidebar/RightSidebar.d.ts +28 -0
  105. package/dist/components/RightSidebar/RightSidebar.stories.d.ts +6 -0
  106. package/dist/components/RightSidebar/index.d.ts +1 -0
  107. package/dist/components/ScheduleCalendar/ScheduleCalendar.d.ts +31 -0
  108. package/dist/components/ScheduleCalendar/ScheduleCalendar.stories.d.ts +8 -0
  109. package/dist/components/ScheduleCalendar/index.d.ts +1 -0
  110. package/dist/components/Spacing/Spacing.d.ts +12 -0
  111. package/dist/components/Spacing/Spacing.stories.d.ts +6 -0
  112. package/dist/components/Spacing/index.d.ts +1 -0
  113. package/dist/components/StatContainer/StatContainer.d.ts +13 -0
  114. package/dist/components/StatContainer/StatContainer.stories.d.ts +7 -0
  115. package/dist/components/StatContainer/index.d.ts +1 -0
  116. package/dist/components/StepIndicator/StepIndicator.d.ts +16 -0
  117. package/dist/components/StepIndicator/StepIndicator.stories.d.ts +8 -0
  118. package/dist/components/StepIndicator/index.d.ts +1 -0
  119. package/dist/components/Streak/Streak.d.ts +23 -0
  120. package/dist/components/Streak/Streak.stories.d.ts +8 -0
  121. package/dist/components/Streak/index.d.ts +1 -0
  122. package/dist/components/Tag/Tag.d.ts +25 -0
  123. package/dist/components/Tag/Tag.stories.d.ts +8 -0
  124. package/dist/components/Tag/index.d.ts +1 -0
  125. package/dist/components/Text/Text.d.ts +27 -0
  126. package/dist/components/Text/Text.stories.d.ts +9 -0
  127. package/dist/components/Text/index.d.ts +1 -0
  128. package/dist/components/TextField/TextField.d.ts +26 -0
  129. package/dist/components/TextField/TextField.stories.d.ts +9 -0
  130. package/dist/components/TextField/index.d.ts +1 -0
  131. package/dist/components/Toggle/Toggle.d.ts +16 -0
  132. package/dist/components/Toggle/Toggle.stories.d.ts +10 -0
  133. package/dist/components/Toggle/index.d.ts +1 -0
  134. package/dist/components/ToggleCheck/ToggleCheck.d.ts +15 -0
  135. package/dist/components/ToggleCheck/ToggleCheck.stories.d.ts +7 -0
  136. package/dist/components/ToggleCheck/index.d.ts +1 -0
  137. package/dist/components/ToggleGroup/ToggleGroup.d.ts +21 -0
  138. package/dist/components/ToggleGroup/ToggleGroup.stories.d.ts +8 -0
  139. package/dist/components/ToggleGroup/index.d.ts +1 -0
  140. package/dist/components/Tooltip/Tooltip.d.ts +7 -0
  141. package/dist/components/Tooltip/Tooltip.stories.d.ts +7 -0
  142. package/dist/components/Tooltip/index.d.ts +1 -0
  143. package/dist/components/Ui/Button.d.ts +11 -0
  144. package/dist/components/UserListItem/UserListItem.d.ts +10 -0
  145. package/dist/components/UserListItem/UserListItem.stories.d.ts +7 -0
  146. package/dist/components/UserListItem/index.d.ts +1 -0
  147. package/dist/components/index.d.ts +37 -0
  148. package/dist/index.d.ts +2 -0
  149. package/dist/index.es.js +13263 -0
  150. package/dist/index.umd.js +45 -0
  151. package/dist/lib/utils.d.ts +2 -0
  152. package/package.json +4 -2
  153. package/src/styles/animation.css +82 -0
  154. package/src/styles/colors.css +128 -0
  155. package/src/styles/globals.css +149 -0
  156. package/src/styles/shadow.css +4 -0
  157. package/src/styles/shape.css +21 -0
  158. package/src/styles/typography.css +66 -0
package/README.md CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  1D1S 프로젝트를 위한 React 디자인 시스템입니다. Tailwind CSS와 Radix UI를 기반으로 구축되었으며, 모바일 퍼스트 사용자 경험에 최적화되어 있습니다.
4
4
 
5
- [Storybook 배포 링크](https://your-storybook-url.vercel.app) 👈 (배포 후 URL을 수정해주세요)
5
+ [Storybook 배포 링크](https://your-storybook-url.vercel.app)
6
+
7
+ > **Note:** (v0.1.17) 최근 Pagination, ToggleCheck, CheckList, Checkbox, Streak 컴포넌트가 추가되었습니다.
6
8
 
7
9
  ## ✨ 특징
8
10
 
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,47 @@
1
+ import * as React from "react";
2
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
3
+ /**
4
+ * Accordion
5
+ * 아코디언 컴포넌트 - 접을 수 있는 콘텐츠 섹션을 제공합니다.
6
+ *
7
+ * @example 단일 아코디언
8
+ * ```tsx
9
+ * <Accordion type="single" collapsible>
10
+ * <AccordionItem value="item-1">
11
+ * <AccordionTrigger>제목</AccordionTrigger>
12
+ * <AccordionContent>내용</AccordionContent>
13
+ * </AccordionItem>
14
+ * </Accordion>
15
+ * ```
16
+ *
17
+ * @example 다중 아코디언
18
+ * ```tsx
19
+ * <Accordion type="multiple">
20
+ * <AccordionItem value="item-1">
21
+ * <AccordionTrigger>제목 1</AccordionTrigger>
22
+ * <AccordionContent>내용 1</AccordionContent>
23
+ * </AccordionItem>
24
+ * <AccordionItem value="item-2">
25
+ * <AccordionTrigger>제목 2</AccordionTrigger>
26
+ * <AccordionContent>내용 2</AccordionContent>
27
+ * </AccordionItem>
28
+ * </Accordion>
29
+ * ```
30
+ */
31
+ declare const Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
32
+ /**
33
+ * AccordionItem
34
+ * 각 아코디언 항목을 감싸는 컨테이너
35
+ */
36
+ declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): React.ReactElement;
37
+ /**
38
+ * AccordionTrigger
39
+ * 아코디언을 열고 닫는 트리거 버튼
40
+ */
41
+ declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): React.ReactElement;
42
+ /**
43
+ * AccordionContent
44
+ * 아코디언의 접히는 콘텐츠 영역
45
+ */
46
+ declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): React.ReactElement;
47
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Accordion } from './Accordion';
3
+ declare const meta: Meta<typeof Accordion>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Accordion>;
6
+ export declare const Single: Story;
7
+ export declare const Multiple: Story;
8
+ export declare const DefaultOpen: Story;
@@ -0,0 +1 @@
1
+ export * from './Accordion';
@@ -0,0 +1,24 @@
1
+ import { default as React } from 'react';
2
+ export interface AppHeaderNavItem {
3
+ key: string;
4
+ label: React.ReactNode;
5
+ disabled?: boolean;
6
+ }
7
+ export interface AppHeaderProps {
8
+ brandName?: string;
9
+ logo?: React.ReactNode;
10
+ navItems?: AppHeaderNavItem[];
11
+ activeKey?: string;
12
+ profileImage?: string;
13
+ className?: string;
14
+ onLogoClick?(): void;
15
+ onNavChange?(key: string): void;
16
+ onSearchClick?(): void;
17
+ onNotificationClick?(): void;
18
+ onProfileClick?(): void;
19
+ }
20
+ /**
21
+ * AppHeader
22
+ * 로고, 주요 네비게이션, 우측 액션 아이콘을 포함한 상단 헤더 컴포넌트.
23
+ */
24
+ export declare function AppHeader({ brandName, logo, navItems, activeKey, profileImage, className, onLogoClick, onNavChange, onSearchClick, onNotificationClick, onProfileClick, }: AppHeaderProps): React.ReactElement;
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { AppHeader } from './AppHeader';
3
+ declare const meta: Meta<typeof AppHeader>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof AppHeader>;
6
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export * from './AppHeader';
@@ -0,0 +1,21 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ declare const customButtonVariants: (props?: ({
3
+ variant?: "default" | "outlined" | "secondary" | "ghost" | null | undefined;
4
+ size?: "small" | "medium" | "large" | "icon" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export interface ButtonProps extends React.ComponentProps<"button">, VariantProps<typeof customButtonVariants> {
7
+ asChild?: boolean;
8
+ }
9
+ /**
10
+ * Button
11
+ * 커스텀 버튼 컴포넌트
12
+ * @param variant 버튼스타일 : default, outlined, secondary, ghost
13
+ * @param size 버튼 크기 : small, medium, large, icon
14
+ *
15
+ * @example 기본 버튼
16
+ * ```tsx
17
+ * <Button variant="default" size="large">Large Button</Button>
18
+ * ```
19
+ */
20
+ export declare function Button({ className, variant, size, asChild, disabled, ...props }: ButtonProps): React.ReactElement;
21
+ export {};
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Button } from './Button';
3
+ declare const meta: Meta<typeof Button>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Button>;
6
+ export declare const Large: Story;
7
+ export declare const Medium: Story;
8
+ export declare const Small: Story;
9
+ export declare const Outlined: Story;
10
+ export declare const Secondary: Story;
11
+ export declare const Ghost: Story;
12
+ export declare const Disabled: Story;
13
+ export declare const Icon: Story;
@@ -0,0 +1 @@
1
+ export * from './Button';
@@ -0,0 +1,4 @@
1
+ import { DayPicker } from 'react-day-picker';
2
+ import * as React from 'react';
3
+ declare function Calendar({ className, classNames, showOutsideDays, ...props }: React.ComponentProps<typeof DayPicker>): React.ReactElement;
4
+ export { Calendar };
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Calendar } from './Calendar';
3
+ declare const meta: Meta<typeof Calendar>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Calendar>;
6
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export * from './Calendar';
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ChallengeCardProps {
3
+ challengeTitle: string;
4
+ challengeType: string;
5
+ challengeCategory?: string;
6
+ challengeIcon?: ReactNode;
7
+ imageUrl?: string;
8
+ currentUserCount: number;
9
+ maxUserCount: number;
10
+ startDate: string;
11
+ endDate: string;
12
+ isOngoing: boolean;
13
+ isEnded?: boolean;
14
+ className?: string;
15
+ onClick?(): void;
16
+ }
17
+ /**
18
+ * ChallengeCard
19
+ * 챌린지 카드 컴포넌트 - 제목, 유형, 참여자 수, 기간, 상태(진행중/모집중/종료됨) 표시
20
+ */
21
+ export declare function ChallengeCard({ challengeTitle, challengeType, challengeCategory, imageUrl, currentUserCount, maxUserCount, startDate, endDate, isOngoing, isEnded, className, onClick, }: ChallengeCardProps): React.ReactElement;
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { ChallengeCard } from './ChallengeCard';
3
+ declare const meta: Meta<typeof ChallengeCard>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof ChallengeCard>;
6
+ export declare const Default: Story;
7
+ export declare const Recruiting: Story;
8
+ export declare const Ended: Story;
9
+ export declare const Grid3x2: Story;
10
+ export declare const ChallengeIcons: Story;
@@ -0,0 +1 @@
1
+ export * from './ChallengeCard';
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ export interface CheckContainerProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange"> {
3
+ label?: React.ReactNode;
4
+ icon?: React.ReactNode;
5
+ children?: React.ReactNode;
6
+ checked?: boolean;
7
+ defaultChecked?: boolean;
8
+ onCheckedChange?(checked: boolean): void;
9
+ showCheckIndicator?: boolean;
10
+ width?: number | string;
11
+ height?: number | string;
12
+ }
13
+ /**
14
+ * CheckContainer
15
+ * 선택 가능한 카드형 컨테이너. 우측 상단 체크 인디케이터 표시 여부를 제어할 수 있습니다.
16
+ */
17
+ export declare function CheckContainer({ label, icon, children, checked, defaultChecked, onCheckedChange, showCheckIndicator, width, height, className, disabled, onClick, style, "aria-label": ariaLabel, ...props }: CheckContainerProps): React.ReactElement;
@@ -0,0 +1,9 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { CheckContainer } from './CheckContainer';
3
+ declare const meta: Meta<typeof CheckContainer>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof CheckContainer>;
6
+ export declare const WithIndicator: Story;
7
+ export declare const WithoutIndicator: Story;
8
+ export declare const CustomSize: Story;
9
+ export declare const WithCustomContent: Story;
@@ -0,0 +1 @@
1
+ export * from './CheckContainer';
@@ -0,0 +1,35 @@
1
+ import { default as React } from 'react';
2
+ export interface CheckListOption {
3
+ id: string;
4
+ label: React.ReactNode;
5
+ disabled?: boolean;
6
+ }
7
+ export interface CheckListProps {
8
+ /** 체크박스 옵션 목록 */
9
+ options: CheckListOption[];
10
+ /** 선택된 옵션의 ID 목록 */
11
+ value: string[];
12
+ /** 선택 변경 시 호출되는 콜백 */
13
+ onValueChange: (value: string[]) => void;
14
+ /** 추가 클래스 */
15
+ className?: string;
16
+ /** 전체 비활성화 여부 */
17
+ disabled?: boolean;
18
+ }
19
+ /**
20
+ * CheckList
21
+ * 여러 개의 Checkbox를 리스트 형태로 보여주고 다중 선택을 관리하는 컴포넌트
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <CheckList
26
+ * options={[
27
+ * { id: '1', label: '옵션 1' },
28
+ * { id: '2', label: '옵션 2' }
29
+ * ]}
30
+ * value={selectedIds}
31
+ * onValueChange={setSelectedIds}
32
+ * />
33
+ * ```
34
+ */
35
+ export declare function CheckList({ options, value, onValueChange, className, disabled, }: CheckListProps): React.ReactElement;
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { CheckList } from './CheckList';
3
+ declare const meta: Meta<typeof CheckList>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof CheckList>;
6
+ export declare const Default: Story;
7
+ export declare const Empty: Story;
8
+ export declare const Disabled: Story;
@@ -0,0 +1 @@
1
+ export * from './CheckList';
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ export interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
4
+ label?: string;
5
+ readOnly?: boolean;
6
+ }
7
+ /**
8
+ * Checkbox
9
+ * 왼쪽의 네모 박스 안에 체크 표시가 들어가는 전형적인 체크박스 컴포넌트
10
+ *
11
+ * @param label 선택적 텍스트 라벨
12
+ * @param readOnly 읽기 전용 여부 (클릭 불가, 시각적 변경 없음)
13
+ */
14
+ export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Checkbox } from './Checkbox';
3
+ declare const meta: Meta<typeof Checkbox>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Checkbox>;
6
+ export declare const Default: Story;
7
+ export declare const WithoutLabel: Story;
8
+ export declare const Disabled: Story;
9
+ export declare const ReadOnly: Story;
10
+ export declare const List: Story;
@@ -0,0 +1 @@
1
+ export * from './Checkbox';
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+ interface CircleAvatarProps {
3
+ imageUrl?: string;
4
+ size?: 'sm' | 'md' | 'lg' | 'xl';
5
+ className?: string;
6
+ }
7
+ export declare function CircleAvatar({ imageUrl, size, className, }: CircleAvatarProps): React.ReactElement;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { CircleAvatar } from './CircleAvatar';
3
+ declare const meta: Meta<typeof CircleAvatar>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof CircleAvatar>;
6
+ export declare const Default: Story;
7
+ export declare const WithImage: Story;
@@ -0,0 +1 @@
1
+ export * from './CircleAvatar';
@@ -0,0 +1,27 @@
1
+ import { default as React } from 'react';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ declare const circularProgressVariants: (props?: ({
4
+ size?: "sm" | "lg" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export type CircularProgressVariants = VariantProps<typeof circularProgressVariants>;
7
+ interface CircularProgressProps extends CircularProgressVariants {
8
+ value: number;
9
+ showPercentage?: boolean;
10
+ className?: string;
11
+ }
12
+ /**
13
+ * CircularProgress
14
+ * 원형 진행률 표시 컴포넌트
15
+ *
16
+ * @param value 진행률 (0~100)
17
+ * @param size 크기 (sm, lg)
18
+ * @param showPercentage 퍼센트 표시 여부
19
+ * @param className 추가 클래스 이름
20
+ *
21
+ * @example 기본 사용
22
+ * ```tsx
23
+ * <CircularProgress value={75} size="sm" showPercentage />
24
+ * ```
25
+ */
26
+ export declare function CircularProgress({ value, size, showPercentage, className, }: CircularProgressProps): React.ReactElement;
27
+ export {};
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { CircularProgress } from './CircularProgress';
3
+ declare const meta: Meta<typeof CircularProgress>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof CircularProgress>;
6
+ export declare const Default: Story;
7
+ export declare const Large: Story;
8
+ export declare const ExtraLarge: Story;
@@ -0,0 +1 @@
1
+ export * from './CircularProgress';
@@ -0,0 +1,26 @@
1
+ import { default as React } from 'react';
2
+ import { DateRange } from 'react-day-picker';
3
+ interface BasePickerProps {
4
+ className?: string;
5
+ placeholder?: string;
6
+ disableClickPropagation?: boolean;
7
+ }
8
+ export interface DatePickerProps extends BasePickerProps {
9
+ value: Date | undefined;
10
+ onChange(date: Date | undefined): void;
11
+ }
12
+ export interface RangeDatePickerProps extends BasePickerProps {
13
+ value: DateRange | undefined;
14
+ onChange(range: DateRange | undefined): void;
15
+ }
16
+ /**
17
+ * DatePicker
18
+ * 단일 날짜를 선택하는 시안형 Date Picker 컴포넌트.
19
+ */
20
+ export declare function DatePicker({ value, onChange, className, placeholder, disableClickPropagation, }: DatePickerProps): React.ReactElement;
21
+ /**
22
+ * RangeDatePicker
23
+ * 시작일/종료일 범위를 선택하는 시안형 Date Range Picker 컴포넌트.
24
+ */
25
+ export declare function RangeDatePicker({ value, onChange, className, placeholder, disableClickPropagation, }: RangeDatePickerProps): React.ReactElement;
26
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { DatePicker } from './DatePicker';
3
+ declare const meta: Meta<typeof DatePicker>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof DatePicker>;
6
+ export declare const Single: Story;
7
+ export declare const Range: Story;
@@ -0,0 +1 @@
1
+ export * from './DatePicker';
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+ declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
4
+ declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
6
+ declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
7
+ declare function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>): React.ReactElement;
8
+ declare function DialogContent({ className, children, ...props }: React.ComponentProps<typeof DialogPrimitive.Content>): React.ReactElement;
9
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): React.ReactElement;
10
+ declare function DialogFooter({ className, ...props }: React.ComponentProps<"div">): React.ReactElement;
11
+ declare function DialogTitle({ className, children, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): React.ReactElement;
12
+ declare function DialogDescription({ className, children, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): React.ReactElement;
13
+ export { Dialog, DialogTrigger, DialogPortal, DialogClose, DialogOverlay, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, };
@@ -0,0 +1,9 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Dialog } from './Dialog';
3
+ declare const meta: Meta<typeof Dialog>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Dialog>;
6
+ export declare const Default: Story;
7
+ export declare const WithForm: Story;
8
+ export declare const Confirmation: Story;
9
+ export declare const SimpleAlert: Story;
@@ -0,0 +1 @@
1
+ export { Dialog, DialogTrigger, DialogPortal, DialogClose, DialogOverlay, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, } from './Dialog';
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ type Emotion = "happy" | "soso" | "sad";
3
+ export interface DiaryCardProps {
4
+ imageUrl?: string;
5
+ percent: number;
6
+ likes: number;
7
+ title: string;
8
+ user: string;
9
+ userImage?: string;
10
+ challengeLabel: string;
11
+ challengeUrl: string;
12
+ date: string;
13
+ emotion: Emotion;
14
+ onClick?(): void;
15
+ }
16
+ export declare function DiaryCard({ imageUrl, percent, likes, title, user, userImage, challengeLabel, challengeUrl, date, emotion, onClick, }: DiaryCardProps): React.ReactElement;
17
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { DiaryCard } from './DiaryCard';
3
+ declare const meta: Meta<typeof DiaryCard>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof DiaryCard>;
6
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export * from './DiaryCard';
@@ -0,0 +1,53 @@
1
+ import * as React from "react";
2
+ import * as SelectPrimitive from "@radix-ui/react-select";
3
+ declare const Select: React.FC<SelectPrimitive.SelectProps>;
4
+ declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
5
+ declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
6
+ /**
7
+ * SelectTrigger
8
+ * Select 기본 트리거 컴포넌트
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <SelectTrigger className="w-[180px]">
13
+ * <SelectValue placeholder="값을 선택해주세요" />
14
+ * </SelectTrigger>
15
+ * ```
16
+ */
17
+ declare function SelectTrigger({ className, size, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
18
+ size?: "sm" | "default";
19
+ }): React.ReactElement;
20
+ /**
21
+ * SelectItem
22
+ * Select 기본 아이템 컴포넌트
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <SelectItem value="option1">value1</SelectItem>
27
+ * ```
28
+ */
29
+ declare function SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>): React.ReactElement;
30
+ /**
31
+ * SelectSeparator
32
+ * Select 구분선 컴포넌트
33
+ */
34
+ declare function SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>): React.ReactElement;
35
+ declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): React.ReactElement;
36
+ declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>): React.ReactElement;
37
+ /**
38
+ * SelectContent
39
+ * Select 기본 컨텐츠 컴포넌트
40
+ *
41
+ * @example
42
+ * ```tsx
43
+ * <SelectContent>
44
+ * <SelectGroup>
45
+ * <SelectItem value="option1">Option 1</SelectItem>
46
+ * <SelectItem value="option2">Option 2</SelectItem>
47
+ * </SelectGroup>
48
+ * </SelectContent>
49
+ * ```
50
+ */
51
+ declare function SelectContent({ className, children, position, ...props }: React.ComponentProps<typeof SelectPrimitive.Content>): React.ReactElement;
52
+ declare function SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>): React.ReactElement;
53
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Select } from './Dropdown';
3
+ declare const meta: Meta<typeof Select>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Select>;
6
+ export declare const Default: Story;
7
+ export declare const Small: Story;
@@ -0,0 +1 @@
1
+ export * from './Dropdown';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Footer
3
+ * 공통 하단 정보 영역 컴포넌트
4
+ * - 로고 및 서비스명 표시
5
+ * - 고객문의 이메일 제공
6
+ * - 이용약관 / 개인정보처리방침 / 운영정책 링크 항목 포함
7
+ */
8
+ export declare function Footer(): React.ReactElement;
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Footer } from './Footer';
3
+ declare const meta: Meta<typeof Footer>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Footer>;
6
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export * from './Footer';
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const AddCircle: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const Calendar: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const ChallengeDumbbell: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const ChallengeFlag: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const ChallengeFlame: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const ChallengeLaptop: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const ChallengeTarget: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const ChallengeTrophy: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const Check: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const Chevron: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const ChevronDown: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const ChevronLeft: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;