@1d1s/design-system 0.1.17 → 0.2.1

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 (85) hide show
  1. package/README.md +1 -1
  2. package/dist/components/AppHeader/AppHeader.d.ts +24 -0
  3. package/dist/components/AppHeader/AppHeader.stories.d.ts +7 -0
  4. package/dist/components/AppHeader/index.d.ts +1 -0
  5. package/dist/components/Button/Button.d.ts +5 -5
  6. package/dist/components/Button/Button.stories.d.ts +4 -2
  7. package/dist/components/Calendar/Calendar.stories.d.ts +1 -0
  8. package/dist/components/ChallengeCard/ChallengeCard.d.ts +8 -25
  9. package/dist/components/ChallengeCard/ChallengeCard.stories.d.ts +3 -0
  10. package/dist/components/CheckContainer/CheckContainer.d.ts +17 -0
  11. package/dist/components/CheckContainer/CheckContainer.stories.d.ts +9 -0
  12. package/dist/components/CheckContainer/index.d.ts +1 -0
  13. package/dist/components/CheckList/CheckList.d.ts +1 -1
  14. package/dist/components/CircularProgress/CircularProgress.d.ts +4 -7
  15. package/dist/components/CircularProgress/CircularProgress.stories.d.ts +2 -2
  16. package/dist/components/DatePicker/DatePicker.d.ts +23 -22
  17. package/dist/components/DatePicker/DatePicker.stories.d.ts +2 -1
  18. package/dist/components/Dropdown/Dropdown.stories.d.ts +1 -0
  19. package/dist/components/Icons/Check.d.ts +1 -1
  20. package/dist/components/Icons/Dumbbell.d.ts +2 -0
  21. package/dist/components/Icons/Flag.d.ts +2 -0
  22. package/dist/components/Icons/Flame.d.ts +2 -0
  23. package/dist/components/Icons/Icon.d.ts +43 -0
  24. package/dist/components/Icons/Laptop.d.ts +2 -0
  25. package/dist/components/Icons/Target.d.ts +2 -0
  26. package/dist/components/Icons/Trophy.d.ts +2 -0
  27. package/dist/components/Icons/index.d.ts +7 -0
  28. package/dist/components/ProgressBar/ProgressBar.d.ts +21 -0
  29. package/dist/components/ProgressBar/ProgressBar.stories.d.ts +11 -0
  30. package/dist/components/ProgressBar/index.d.ts +1 -0
  31. package/dist/components/RightSidebar/RightSidebar.d.ts +28 -0
  32. package/dist/components/RightSidebar/RightSidebar.stories.d.ts +6 -0
  33. package/dist/components/RightSidebar/index.d.ts +1 -0
  34. package/dist/components/ScheduleCalendar/ScheduleCalendar.d.ts +31 -0
  35. package/dist/components/ScheduleCalendar/ScheduleCalendar.stories.d.ts +8 -0
  36. package/dist/components/ScheduleCalendar/index.d.ts +1 -0
  37. package/dist/components/StatContainer/StatContainer.d.ts +15 -0
  38. package/dist/components/StatContainer/StatContainer.stories.d.ts +7 -0
  39. package/dist/components/StatContainer/index.d.ts +1 -0
  40. package/dist/components/StepIndicator/StepIndicator.d.ts +16 -0
  41. package/dist/components/StepIndicator/StepIndicator.stories.d.ts +8 -0
  42. package/dist/components/StepIndicator/index.d.ts +1 -0
  43. package/dist/components/Streak/Streak.d.ts +3 -1
  44. package/dist/components/TextField/TextField.d.ts +12 -35
  45. package/dist/components/TextField/TextField.stories.d.ts +3 -3
  46. package/dist/components/Toggle/Toggle.d.ts +8 -11
  47. package/dist/components/Toggle/Toggle.stories.d.ts +5 -2
  48. package/dist/components/ToggleGroup/ToggleGroup.d.ts +8 -20
  49. package/dist/components/ToggleGroup/ToggleGroup.stories.d.ts +3 -2
  50. package/dist/components/Ui/Button.d.ts +2 -2
  51. package/dist/components/UserListItem/UserListItem.d.ts +3 -3
  52. package/dist/components/index.d.ts +9 -9
  53. package/dist/index.es.js +5128 -4222
  54. package/dist/index.umd.js +17 -17
  55. package/package.json +1 -1
  56. package/src/styles/colors.css +15 -15
  57. package/src/styles/globals.css +9 -1
  58. package/src/styles/typography.css +16 -0
  59. package/dist/components/BackButton/BackButton.d.ts +0 -1
  60. package/dist/components/BackButton/BackButton.stories.d.ts +0 -6
  61. package/dist/components/BackButton/index.d.ts +0 -1
  62. package/dist/components/ChallengeListItem/ChallengeListItem.d.ts +0 -12
  63. package/dist/components/ChallengeListItem/ChallengeListItem.stories.d.ts +0 -6
  64. package/dist/components/ChallengeListItem/index.d.ts +0 -1
  65. package/dist/components/Footer/Footer.d.ts +0 -8
  66. package/dist/components/Footer/Footer.stories.d.ts +0 -6
  67. package/dist/components/Footer/index.d.ts +0 -1
  68. package/dist/components/GlobalChrome/GlobalChrome.d.ts +0 -3
  69. package/dist/components/GlobalChrome/GlobalChrome.stories.d.ts +0 -9
  70. package/dist/components/GlobalChrome/index.d.ts +0 -1
  71. package/dist/components/Menu/Menu.d.ts +0 -2
  72. package/dist/components/Menu/Menu.stories.d.ts +0 -6
  73. package/dist/components/Menu/index.d.ts +0 -1
  74. package/dist/components/PageBackground/PageBackground.d.ts +0 -15
  75. package/dist/components/PageBackground/PageBackground.stories.d.ts +0 -6
  76. package/dist/components/PageBackground/index.d.ts +0 -1
  77. package/dist/components/PageTitle/PageTitle.d.ts +0 -29
  78. package/dist/components/PageTitle/PageTitle.stories.d.ts +0 -7
  79. package/dist/components/PageTitle/index.d.ts +0 -1
  80. package/dist/components/Spacing/Spacing.d.ts +0 -12
  81. package/dist/components/Spacing/Spacing.stories.d.ts +0 -6
  82. package/dist/components/Spacing/index.d.ts +0 -1
  83. package/dist/components/ToggleCheck/ToggleCheck.d.ts +0 -15
  84. package/dist/components/ToggleCheck/ToggleCheck.stories.d.ts +0 -7
  85. package/dist/components/ToggleCheck/index.d.ts +0 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [Storybook 배포 링크](https://your-storybook-url.vercel.app)
6
6
 
7
- > **Note:** 최근 Pagination, ToggleCheck, CheckList, Checkbox, Streak 컴포넌트가 추가되었습니다.
7
+ > **Note:** (v0.1.17) 최근 Pagination, ToggleCheck, CheckList, Checkbox, Streak 컴포넌트가 추가되었습니다.
8
8
 
9
9
  ## ✨ 특징
10
10
 
@@ -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
+ showProfile?: boolean;
13
+ profileImage?: string;
14
+ className?: string;
15
+ onLogoClick?(): void;
16
+ onNavChange?(key: string): void;
17
+ onNotificationClick?(): void;
18
+ onProfileClick?(): void;
19
+ }
20
+ /**
21
+ * AppHeader
22
+ * 로고, 주요 네비게이션, 우측 액션 아이콘을 포함한 상단 헤더 컴포넌트.
23
+ */
24
+ export declare function AppHeader({ brandName, logo, navItems, activeKey, showProfile, profileImage, className, onLogoClick, onNavChange, onNotificationClick, onProfileClick, }: AppHeaderProps): React.ReactElement;
@@ -0,0 +1,7 @@
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 WithProfile: Story;
7
+ export declare const WithoutProfile: Story;
@@ -0,0 +1 @@
1
+ export * from './AppHeader';
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  declare const customButtonVariants: (props?: ({
3
- variant?: "input" | "disabled" | "default" | "warning" | "loading" | "outline" | null | undefined;
4
- size?: "lg" | "md" | "sm" | null | undefined;
3
+ variant?: "default" | "outlined" | "secondary" | "ghost" | null | undefined;
4
+ size?: "small" | "medium" | "large" | "icon" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
6
  export interface ButtonProps extends React.ComponentProps<"button">, VariantProps<typeof customButtonVariants> {
7
7
  asChild?: boolean;
@@ -9,12 +9,12 @@ export interface ButtonProps extends React.ComponentProps<"button">, VariantProp
9
9
  /**
10
10
  * Button
11
11
  * 커스텀 버튼 컴포넌트
12
- * @param variant 버튼스타일 : default, disabled, warning, loading, outline, input
13
- * @param size 버튼 크기 : lg, md, sm
12
+ * @param variant 버튼스타일 : default, outlined, secondary, ghost
13
+ * @param size 버튼 크기 : small, medium, large, icon
14
14
  *
15
15
  * @example 기본 버튼
16
16
  * ```tsx
17
- * <Button variant="default" size="lg">Large Button</Button>
17
+ * <Button variant="default" size="large">Large Button</Button>
18
18
  * ```
19
19
  */
20
20
  export declare function Button({ className, variant, size, asChild, disabled, ...props }: ButtonProps): React.ReactElement;
@@ -6,6 +6,8 @@ type Story = StoryObj<typeof Button>;
6
6
  export declare const Large: Story;
7
7
  export declare const Medium: Story;
8
8
  export declare const Small: Story;
9
- export declare const Outline: Story;
10
- export declare const Warning: Story;
9
+ export declare const Outlined: Story;
10
+ export declare const Secondary: Story;
11
+ export declare const Ghost: Story;
11
12
  export declare const Disabled: Story;
13
+ export declare const Icon: Story;
@@ -4,3 +4,4 @@ declare const meta: Meta<typeof Calendar>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof Calendar>;
6
6
  export declare const Default: Story;
7
+ export declare const Range: Story;
@@ -1,38 +1,21 @@
1
- interface ChallengeProps {
1
+ import { ReactNode } from 'react';
2
+ export interface ChallengeCardProps {
2
3
  challengeTitle: string;
3
4
  challengeType: string;
5
+ challengeCategory?: string;
6
+ challengeIcon?: ReactNode;
7
+ imageUrl?: string;
4
8
  currentUserCount: number;
5
9
  maxUserCount: number;
6
10
  startDate: string;
7
11
  endDate: string;
8
12
  isOngoing: boolean;
13
+ isEnded?: boolean;
9
14
  className?: string;
10
15
  onClick?(): void;
11
16
  }
12
17
  /**
13
18
  * ChallengeCard
14
- * 챌린지 카드 컴포넌트 - 제목, 유형, 참여자 수, 기간, 상태(진행중/모집중) 표시
15
- *
16
- * @param challengeTitle 챌린지 이름
17
- * @param challengeType 챌린지 유형
18
- * @param currentUserCount 현재 참여자 수
19
- * @param maxUserCount 최대 참여자 수
20
- * @param startDate 시작일 (YYYY-MM-DD)
21
- * @param endDate 종료일 (YYYY-MM-DD)
22
- * @param isOngoing 챌린지 진행 상태 (true: 진행중, false: 모집중)
23
- *
24
- * @example 기본 사용 예
25
- * ```tsx
26
- * <ChallengeCard
27
- * challengeTitle="챌린지 제목"
28
- * challengeType="고정목표형"
29
- * currentUserCount={12}
30
- * maxUserCount={20}
31
- * startDate="2023-10-01"
32
- * endDate="2023-10-31"
33
- * isOngoing={true}
34
- * />
35
- * ```
19
+ * 챌린지 카드 컴포넌트 - 제목, 유형, 참여자 수, 기간, 상태(진행중/모집중/종료됨) 표시
36
20
  */
37
- export declare function ChallengeCard({ challengeTitle, challengeType, currentUserCount, maxUserCount, startDate, endDate, isOngoing, className, onClick, }: ChallengeProps): React.ReactElement;
38
- export {};
21
+ export declare function ChallengeCard({ challengeTitle, challengeType, challengeCategory, imageUrl, currentUserCount, maxUserCount, startDate, endDate, isOngoing, isEnded, className, onClick, }: ChallengeCardProps): React.ReactElement;
@@ -5,3 +5,6 @@ export default meta;
5
5
  type Story = StoryObj<typeof ChallengeCard>;
6
6
  export declare const Default: Story;
7
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,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';
@@ -18,7 +18,7 @@ export interface CheckListProps {
18
18
  }
19
19
  /**
20
20
  * CheckList
21
- * 여러 개의 ToggleCheck를 리스트 형태로 보여주고 다중 선택을 관리하는 컴포넌트
21
+ * 여러 개의 Checkbox를 리스트 형태로 보여주고 다중 선택을 관리하는 컴포넌트
22
22
  *
23
23
  * @example
24
24
  * ```tsx
@@ -1,13 +1,11 @@
1
1
  import { default as React } from 'react';
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  declare const circularProgressVariants: (props?: ({
4
- size?: "lg" | "md" | "sm" | "xl" | null | undefined;
5
- strokeWidthVariant?: "lg" | "md" | "sm" | "xl" | null | undefined;
4
+ size?: "sm" | "lg" | null | undefined;
6
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
6
  export type CircularProgressVariants = VariantProps<typeof circularProgressVariants>;
8
7
  interface CircularProgressProps extends CircularProgressVariants {
9
8
  value: number;
10
- color?: 'blue' | 'green' | 'red';
11
9
  showPercentage?: boolean;
12
10
  className?: string;
13
11
  }
@@ -16,15 +14,14 @@ interface CircularProgressProps extends CircularProgressVariants {
16
14
  * 원형 진행률 표시 컴포넌트
17
15
  *
18
16
  * @param value 진행률 (0~100)
19
- * @param size 크기 (sm, md, lg, xl)
20
- * @param color 색상 (red, blue, green)
17
+ * @param size 크기 (sm, lg)
21
18
  * @param showPercentage 퍼센트 표시 여부
22
19
  * @param className 추가 클래스 이름
23
20
  *
24
21
  * @example 기본 사용
25
22
  * ```tsx
26
- * <CircularProgress value={75} size="md" color="red" showPercentage />
23
+ * <CircularProgress value={75} size="sm" showPercentage />
27
24
  * ```
28
25
  */
29
- export declare function CircularProgress({ value, size, color, showPercentage, className, }: CircularProgressProps): React.ReactElement;
26
+ export declare function CircularProgress({ value, size, showPercentage, className, }: CircularProgressProps): React.ReactElement;
30
27
  export {};
@@ -4,5 +4,5 @@ declare const meta: Meta<typeof CircularProgress>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof CircularProgress>;
6
6
  export declare const Default: Story;
7
- export declare const Blue: Story;
8
- export declare const Green: Story;
7
+ export declare const Large: Story;
8
+ export declare const ExtraLarge: Story;
@@ -1,25 +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
+ }
1
16
  /**
2
17
  * DatePicker
3
- * 챌린지 카드 컴포넌트 - 제목, 유형, 참여자 수, 기간, 상태(진행중/모집중) 표시
4
- *
5
- * @param value hook에서 관리하는 날짜 값
6
- * @param onChange 날짜 선택 변경 핸들러
7
- *
8
- * @example 기본 사용 예
9
- * ```tsx
10
- * <FormItem>
11
- * <FormField
12
- * control={control}
13
- * name="startDate"
14
- * render={({ field }) => (
15
- * <DatePicker value={field.value} onChange={field.onChange} />
16
- * )}
17
- * />
18
- * </FormItem>
19
- * ```
18
+ * 단일 날짜를 선택하는 시안형 Date Picker 컴포넌트.
20
19
  */
21
- export declare function DatePicker({ value, onChange, disableClickPropagation, }: {
22
- value: Date | undefined;
23
- onChange(date: Date | undefined): void;
24
- disableClickPropagation?: boolean;
25
- }): React.ReactElement;
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 {};
@@ -3,4 +3,5 @@ import { DatePicker } from './DatePicker';
3
3
  declare const meta: Meta<typeof DatePicker>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof DatePicker>;
6
- export declare const Default: Story;
6
+ export declare const Single: Story;
7
+ export declare const Range: Story;
@@ -4,3 +4,4 @@ declare const meta: Meta<typeof Select>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof Select>;
6
6
  export declare const Default: Story;
7
+ export declare const Small: Story;
@@ -1,2 +1,2 @@
1
1
  import { default as React } from 'react';
2
- export declare const Check: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const Check: ({ strokeWidth, ...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 Dumbbell: (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 Flag: (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 Flame: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,43 @@
1
+ import { default as React } from 'react';
2
+ declare const iconComponents: {
3
+ readonly AddCircle: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
4
+ readonly Calendar: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
5
+ readonly Check: ({ strokeWidth, ...props }: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
6
+ readonly Chevron: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
7
+ readonly ChevronDown: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
8
+ readonly ChevronLeft: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
9
+ readonly ChevronRight: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
10
+ readonly ChevronUp: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
11
+ readonly Close: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
12
+ readonly Dumbbell: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
13
+ readonly Endless: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
14
+ readonly Eye: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
15
+ readonly EyeOff: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
16
+ readonly Flag: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
17
+ readonly Flame: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
18
+ readonly HamburgerMenu: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
19
+ readonly Heart: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
20
+ readonly HeartFilled: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
21
+ readonly Laptop: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
22
+ readonly Logo: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
23
+ readonly Minus: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
24
+ readonly People: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
25
+ readonly Person: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
26
+ readonly Pin: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
27
+ readonly Plus: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
28
+ readonly Search: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
29
+ readonly Target: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
30
+ readonly Trophy: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
31
+ };
32
+ export type IconName = keyof typeof iconComponents;
33
+ export declare const ICON_NAMES: IconName[];
34
+ export interface IconProps extends Omit<React.SVGProps<SVGSVGElement>, "name"> {
35
+ name: IconName;
36
+ size?: number | string;
37
+ }
38
+ /**
39
+ * Icon
40
+ * name 기반으로 프로젝트 아이콘을 렌더링하는 공통 아이콘 컴포넌트.
41
+ */
42
+ export declare function Icon({ name, size, width, height, ...props }: IconProps): React.ReactElement;
43
+ export {};
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const Laptop: (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 Target: (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 Trophy: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,12 @@
1
1
  export * from './AddCircle';
2
2
  export * from './Calendar';
3
+ export * from './Dumbbell';
4
+ export * from './Flag';
5
+ export * from './Flame';
6
+ export * from './Icon';
7
+ export * from './Laptop';
8
+ export * from './Target';
9
+ export * from './Trophy';
3
10
  export * from './Check';
4
11
  export * from './Chevron';
5
12
  export * from './ChevronDown';
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ export interface ProgressBarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
3
+ value: number;
4
+ label?: React.ReactNode;
5
+ showLabel?: boolean;
6
+ showValueText?: boolean;
7
+ valueText?: React.ReactNode;
8
+ infinite?: boolean;
9
+ thickness?: number;
10
+ fillColor?: string;
11
+ trackColor?: string;
12
+ labelClassName?: string;
13
+ valueClassName?: string;
14
+ trackClassName?: string;
15
+ fillClassName?: string;
16
+ }
17
+ /**
18
+ * ProgressBar
19
+ * 라벨/퍼센트 텍스트/두께/색상을 유연하게 제어할 수 있는 진행률 바 컴포넌트.
20
+ */
21
+ export declare function ProgressBar({ value, label, showLabel, showValueText, valueText, infinite, thickness, fillColor, trackColor, className, labelClassName, valueClassName, trackClassName, fillClassName, ...props }: ProgressBarProps): React.ReactElement;
@@ -0,0 +1,11 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { ProgressBar } from './ProgressBar';
3
+ declare const meta: Meta<typeof ProgressBar>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof ProgressBar>;
6
+ export declare const Default: Story;
7
+ export declare const WithoutLabel: Story;
8
+ export declare const WithoutValueText: Story;
9
+ export declare const CustomThickness: Story;
10
+ export declare const CustomColor: Story;
11
+ export declare const Infinite: Story;
@@ -0,0 +1 @@
1
+ export * from './ProgressBar';
@@ -0,0 +1,28 @@
1
+ import { default as React } from 'react';
2
+ type RightSidebarProgressTone = "blue" | "green" | "orange";
3
+ export interface RightSidebarChallenge {
4
+ id: string;
5
+ title: string;
6
+ progress: number;
7
+ hasDeadline?: boolean;
8
+ tone?: RightSidebarProgressTone;
9
+ }
10
+ export interface RightSidebarProps {
11
+ userName: string;
12
+ userHandle: string;
13
+ userImage?: string;
14
+ streakDays: number;
15
+ fixed?: boolean;
16
+ className?: string;
17
+ diaryButtonLabel?: string;
18
+ myPageButtonLabel?: string;
19
+ settingButtonLabel?: string;
20
+ challengeTitle?: string;
21
+ challenges?: RightSidebarChallenge[];
22
+ onCollapseClick?(): void;
23
+ onOpenSettings?(): void;
24
+ onWriteDiary?(): void;
25
+ onGoMyPage?(): void;
26
+ }
27
+ export declare function RightSidebar({ userName, userHandle, userImage, streakDays, fixed, className, diaryButtonLabel, myPageButtonLabel, settingButtonLabel, challengeTitle, challenges, onCollapseClick, onOpenSettings, onWriteDiary, onGoMyPage, }: RightSidebarProps): React.ReactElement;
28
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { RightSidebar } from './RightSidebar';
3
+ declare const meta: Meta<typeof RightSidebar>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof RightSidebar>;
6
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export * from './RightSidebar';
@@ -0,0 +1,31 @@
1
+ import { default as React } from 'react';
2
+ type DayTone = "default" | "strong" | "accent" | "muted";
3
+ type BarTone = "main" | "soft";
4
+ export interface ScheduleCalendarBar {
5
+ width?: number | string;
6
+ tone?: BarTone;
7
+ }
8
+ export interface ScheduleCalendarCell {
9
+ id?: string;
10
+ day?: React.ReactNode;
11
+ dayTone?: DayTone;
12
+ title?: React.ReactNode;
13
+ subtitle?: React.ReactNode;
14
+ bars?: ScheduleCalendarBar[];
15
+ highlighted?: boolean;
16
+ muted?: boolean;
17
+ colSpan?: number;
18
+ content?: React.ReactNode;
19
+ }
20
+ export interface ScheduleCalendarProps {
21
+ rows: ScheduleCalendarCell[][];
22
+ weekLabels?: string[];
23
+ cellMinHeight?: number;
24
+ className?: string;
25
+ }
26
+ /**
27
+ * ScheduleCalendar
28
+ * 주 단위 표 형태로 일정을 보여주는 커스텀 캘린더 컴포넌트.
29
+ */
30
+ export declare function ScheduleCalendar({ rows, weekLabels, cellMinHeight, className, }: ScheduleCalendarProps): React.ReactElement;
31
+ export {};
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { ScheduleCalendar } from './ScheduleCalendar';
3
+ declare const meta: Meta<typeof ScheduleCalendar>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof ScheduleCalendar>;
6
+ export declare const OneMonth: Story;
7
+ export declare const TwoWeeks: Story;
8
+ export declare const ThreeWeeks: Story;
@@ -0,0 +1 @@
1
+ export * from './ScheduleCalendar';
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+ import { IconName } from '../Icons/Icon';
3
+ export interface StatContainerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
4
+ icon?: React.ReactNode;
5
+ iconName?: IconName;
6
+ title: React.ReactNode;
7
+ value: React.ReactNode;
8
+ unit: React.ReactNode;
9
+ iconClassName?: string;
10
+ }
11
+ /**
12
+ * StatContainer
13
+ * 아이콘, 제목, 데이터, 단위를 표시하는 정보 카드 컴포넌트
14
+ */
15
+ export declare function StatContainer({ icon, iconName, title, value, unit, className, iconClassName, ...props }: StatContainerProps): React.ReactElement;
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { StatContainer } from './StatContainer';
3
+ declare const meta: Meta<typeof StatContainer>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof StatContainer>;
6
+ export declare const Default: Story;
7
+ export declare const DashboardGrid: Story;
@@ -0,0 +1 @@
1
+ export * from './StatContainer';
@@ -0,0 +1,16 @@
1
+ import { default as React } from 'react';
2
+ export interface StepIndicatorItem {
3
+ id?: string;
4
+ label: React.ReactNode;
5
+ }
6
+ export interface StepIndicatorProps {
7
+ steps: StepIndicatorItem[];
8
+ /** 현재 단계 (1부터 시작) */
9
+ currentStep: number;
10
+ className?: string;
11
+ }
12
+ /**
13
+ * StepIndicator
14
+ * 단계 진행 상태를 가로 라인과 원형 포인트로 표시하는 컴포넌트.
15
+ */
16
+ export declare function StepIndicator({ steps, currentStep, className, }: StepIndicatorProps): React.ReactElement;
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { StepIndicator } from './StepIndicator';
3
+ declare const meta: Meta<typeof StepIndicator>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof StepIndicator>;
6
+ export declare const Default: Story;
7
+ export declare const Completed: Story;
8
+ export declare const FirstStep: Story;
@@ -0,0 +1 @@
1
+ export * from './StepIndicator';
@@ -10,6 +10,8 @@ export interface StreakProps {
10
10
  data?: StreakData[];
11
11
  /** 각 날짜 박스의 크기 (픽셀) */
12
12
  size?: number;
13
+ /** 박스 사이 간격 (픽셀) */
14
+ gap?: number;
13
15
  /** 추가 클래스 */
14
16
  className?: string;
15
17
  }
@@ -18,4 +20,4 @@ export interface StreakProps {
18
20
  * 활동 기록을 깃허브 잔디(Contribution Graph) 스타일로 보여주는 컴포넌트.
19
21
  * 7행 그리드 구조로 요일별로 쌓이며 가로로 데이터가 추가됩니다.
20
22
  */
21
- export declare function Streak({ data, size, className, }: StreakProps): React.ReactElement;
23
+ export declare function Streak({ data, size, gap, className, }: StreakProps): React.ReactElement;