@nurihaus/web-design-system 3.0.1 → 3.1.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 (175) hide show
  1. package/README.md +104 -5
  2. package/dist/.storybook/story-kit.d.ts +18 -0
  3. package/dist/ai/components.md +1036 -0
  4. package/dist/ai/tokens.md +344 -0
  5. package/dist/avatar.js +336 -0
  6. package/dist/breadcrumb.js +364 -0
  7. package/dist/check-box.js +360 -0
  8. package/dist/chunk-149.js +57 -0
  9. package/dist/chunk-298.js +34 -0
  10. package/dist/chunk-302.js +105 -0
  11. package/dist/chunk-309.js +36 -0
  12. package/dist/chunk-364.js +126 -0
  13. package/dist/chunk-387.js +56 -0
  14. package/dist/chunk-436.js +33 -0
  15. package/dist/chunk-558.js +200 -0
  16. package/dist/chunk-563.js +181 -0
  17. package/dist/chunk-657.js +143 -0
  18. package/dist/chunk-713.js +38 -0
  19. package/dist/chunk-739.js +68 -0
  20. package/dist/chunk-77.js +34 -0
  21. package/dist/chunk-777.js +117 -0
  22. package/dist/chunk-910.js +64 -0
  23. package/dist/chunk-917.js +35 -0
  24. package/dist/chunk-933.js +70 -0
  25. package/dist/chunk-976.js +29 -0
  26. package/dist/collapsible-menu.js +394 -0
  27. package/dist/components/avatar/avatar-props.d.ts +2 -6
  28. package/dist/components/avatar/avatar-type.d.ts +4 -5
  29. package/dist/components/avatar/avatar.d.ts +1 -0
  30. package/dist/components/avatar/avatar.stories.d.ts +17 -1
  31. package/dist/components/badge/badge-props.d.ts +17 -80
  32. package/dist/components/badge/badge-type.d.ts +38 -2
  33. package/dist/components/badge/badge.stories.d.ts +25 -2
  34. package/dist/components/badge/base-badge.d.ts +2 -1
  35. package/dist/components/badge/icon-text-badge.d.ts +3 -21
  36. package/dist/components/badge/icon-text-option-badge.d.ts +2 -15
  37. package/dist/components/badge/option-badge.d.ts +3 -20
  38. package/dist/components/breadcrumb/base-breadcrumb.d.ts +19 -0
  39. package/dist/components/breadcrumb/breadcrumb-props.d.ts +4 -0
  40. package/dist/components/breadcrumb/breadcrumb-type.d.ts +33 -0
  41. package/dist/components/breadcrumb/breadcrumb.d.ts +4 -0
  42. package/dist/components/breadcrumb/breadcrumb.stories.d.ts +25 -0
  43. package/dist/components/button/button-props.d.ts +2 -7
  44. package/dist/components/button/button-type.d.ts +11 -3
  45. package/dist/components/button/button.stories.d.ts +13 -10
  46. package/dist/components/button/cta-button.d.ts +3 -12
  47. package/dist/components/check-box/base-check-box.d.ts +9 -5
  48. package/dist/components/check-box/check-box-props.d.ts +2 -7
  49. package/dist/components/check-box/check-box-type.d.ts +11 -4
  50. package/dist/components/check-box/check-box.d.ts +3 -10
  51. package/dist/components/check-box/check-box.stories.d.ts +19 -4
  52. package/dist/components/collapsible-menu/base-collapsible-menu.d.ts +9 -5
  53. package/dist/components/collapsible-menu/collapsible-menu-props.d.ts +3 -12
  54. package/dist/components/collapsible-menu/collapsible-menu-type.d.ts +33 -9
  55. package/dist/components/collapsible-menu/collapsible-menu.d.ts +3 -23
  56. package/dist/components/collapsible-menu/collapsible-menu.stories.d.ts +20 -4
  57. package/dist/components/drawer/base-drawer.d.ts +15 -0
  58. package/dist/components/drawer/drawer-props.d.ts +11 -0
  59. package/dist/components/drawer/drawer-type.d.ts +28 -0
  60. package/dist/components/drawer/drawer.d.ts +4 -0
  61. package/dist/components/drawer/drawer.stories.d.ts +34 -0
  62. package/dist/components/drop-down/base-drop-down.d.ts +11 -3
  63. package/dist/components/drop-down/drop-down-props.d.ts +3 -12
  64. package/dist/components/drop-down/drop-down-type.d.ts +34 -15
  65. package/dist/components/drop-down/drop-down.d.ts +3 -32
  66. package/dist/components/drop-down/drop-down.stories.d.ts +23 -4
  67. package/dist/components/elements/text/base-text.d.ts +3 -0
  68. package/dist/components/elements/text/text-props.d.ts +16 -0
  69. package/dist/components/elements/text/text-type.d.ts +6 -2
  70. package/dist/components/elements/text/text.d.ts +2 -1
  71. package/dist/components/elements/text/text.stories.d.ts +43 -3
  72. package/dist/components/loading/index.d.ts +6 -6
  73. package/dist/components/loading/inline-loading/base-inline-loading.d.ts +3 -0
  74. package/dist/components/loading/inline-loading/inline-loading-props.d.ts +9 -0
  75. package/dist/components/loading/inline-loading/inline-loading-type.d.ts +8 -6
  76. package/dist/components/loading/inline-loading/inline-loading.d.ts +3 -2
  77. package/dist/components/loading/inline-loading/inline-loading.stories.d.ts +5 -9
  78. package/dist/components/loading/overlay-loading/base-overlay-loading.d.ts +3 -0
  79. package/dist/components/loading/overlay-loading/overlay-loading-props.d.ts +7 -0
  80. package/dist/components/loading/overlay-loading/overlay-loading-type.d.ts +6 -3
  81. package/dist/components/loading/overlay-loading/overlay-loading.d.ts +3 -3
  82. package/dist/components/loading/overlay-loading/overlay-loading.stories.d.ts +8 -8
  83. package/dist/components/loading/spinner/base-spinner.d.ts +4 -0
  84. package/dist/components/loading/spinner/spinner-props.d.ts +1 -0
  85. package/dist/components/loading/spinner/spinner-type.d.ts +4 -4
  86. package/dist/components/loading/spinner/spinner.d.ts +2 -2
  87. package/dist/components/loading/spinner/spinner.stories.d.ts +5 -12
  88. package/dist/components/modal/base-modal.d.ts +21 -6
  89. package/dist/components/modal/modal-props.d.ts +5 -7
  90. package/dist/components/modal/modal-type.d.ts +34 -10
  91. package/dist/components/modal/modal-with-double-button.d.ts +4 -16
  92. package/dist/components/modal/modal-with-double-button.stories.d.ts +22 -0
  93. package/dist/components/modal/modal.d.ts +4 -0
  94. package/dist/components/modal/modal.stories.d.ts +22 -4
  95. package/dist/components/pagination/base-pagination.d.ts +9 -0
  96. package/dist/components/pagination/pagination-props.d.ts +4 -0
  97. package/dist/components/pagination/pagination-type.d.ts +20 -0
  98. package/dist/components/pagination/pagination.d.ts +4 -0
  99. package/dist/components/pagination/pagination.stories.d.ts +25 -0
  100. package/dist/components/radio/base-radio.d.ts +9 -5
  101. package/dist/components/radio/radio-props.d.ts +1 -0
  102. package/dist/components/radio/radio-type.d.ts +6 -8
  103. package/dist/components/radio/radio.d.ts +2 -2
  104. package/dist/components/radio/radio.stories.d.ts +13 -4
  105. package/dist/components/skeleton/base-skeleton.d.ts +4 -0
  106. package/dist/components/skeleton/skeleton-props.d.ts +15 -0
  107. package/dist/components/skeleton/skeleton-type.d.ts +12 -0
  108. package/dist/components/skeleton/skeleton.d.ts +4 -0
  109. package/dist/components/skeleton/skeleton.stories.d.ts +327 -0
  110. package/dist/components/switch/base-switch.d.ts +11 -0
  111. package/dist/components/switch/switch-props.d.ts +4 -0
  112. package/dist/components/switch/switch-type.d.ts +19 -0
  113. package/dist/components/switch/switch.d.ts +4 -0
  114. package/dist/components/switch/switch.stories.d.ts +24 -0
  115. package/dist/components/table/base-table.d.ts +4 -5
  116. package/dist/components/table/data-table.d.ts +5 -22
  117. package/dist/components/table/table-type.d.ts +22 -1
  118. package/dist/components/table/table.stories.d.ts +19 -3
  119. package/dist/components/tabs/base-tabs.d.ts +7 -7
  120. package/dist/components/tabs/tabs-props.d.ts +1 -1
  121. package/dist/components/tabs/tabs-type.d.ts +9 -13
  122. package/dist/components/tabs/tabs.d.ts +3 -3
  123. package/dist/components/tabs/tabs.stories.d.ts +16 -10
  124. package/dist/components/text-area/base-text-area.d.ts +10 -0
  125. package/dist/components/text-area/text-area-props.d.ts +12 -0
  126. package/dist/components/text-area/text-area-type.d.ts +34 -0
  127. package/dist/components/text-area/text-area.d.ts +4 -0
  128. package/dist/components/text-area/text-area.stories.d.ts +32 -0
  129. package/dist/components/text-field/base-text-field.d.ts +5 -3
  130. package/dist/components/text-field/text-field-props.d.ts +3 -12
  131. package/dist/components/text-field/text-field-type.d.ts +14 -0
  132. package/dist/components/text-field/text-field.d.ts +3 -16
  133. package/dist/components/text-field/text-field.stories.d.ts +24 -0
  134. package/dist/components/toast/base-toast.d.ts +20 -0
  135. package/dist/components/toast/toast-props.d.ts +18 -0
  136. package/dist/components/toast/toast-type.d.ts +45 -0
  137. package/dist/components/toast/toast.d.ts +5 -0
  138. package/dist/components/toast/toast.stories.d.ts +310 -0
  139. package/dist/components/tooltip/base-tooltip.d.ts +13 -3
  140. package/dist/components/tooltip/tooltip-props.d.ts +3 -2
  141. package/dist/components/tooltip/tooltip-type.d.ts +17 -5
  142. package/dist/components/tooltip/tooltip.d.ts +4 -7
  143. package/dist/components/tooltip/tooltip.stories.d.ts +21 -4
  144. package/dist/components.css +3017 -0
  145. package/dist/cta-button.js +237 -0
  146. package/dist/data-table.js +386 -0
  147. package/dist/drawer.js +390 -0
  148. package/dist/drop-down.js +419 -0
  149. package/dist/helpers/hooks/useExternalState.d.ts +5 -0
  150. package/dist/helpers/props/common-props.d.ts +7 -0
  151. package/dist/helpers/types/common-props.d.ts +8 -0
  152. package/dist/icon-text-badge.js +294 -0
  153. package/dist/icon-text-option-badge.js +270 -0
  154. package/dist/index.d.ts +33 -1
  155. package/dist/index.js +4179 -10180
  156. package/dist/loading.js +383 -0
  157. package/dist/modal-with-double-button.js +332 -0
  158. package/dist/modal.js +288 -0
  159. package/dist/option-badge.js +293 -0
  160. package/dist/pagination.js +412 -0
  161. package/dist/radio.js +363 -0
  162. package/dist/reset.css +45 -0
  163. package/dist/skeleton.js +331 -0
  164. package/dist/styles.css +1386 -248
  165. package/dist/switch.js +349 -0
  166. package/dist/tabs.js +421 -0
  167. package/dist/text-area.js +374 -0
  168. package/dist/text-field.js +369 -0
  169. package/dist/text.js +233 -0
  170. package/dist/toast.js +496 -0
  171. package/dist/tokens.css +100 -0
  172. package/dist/tokens.js +4 -6
  173. package/dist/tooltip.js +360 -0
  174. package/package.json +123 -14
  175. package/dist/components/text-field/text-filed.stories.d.ts +0 -8
@@ -0,0 +1,11 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { SwitchLabelProps, SwitchRootProps } from './switch-type';
3
+ declare const SwitchRoot: import("react").ForwardRefExoticComponent<Omit<PropsWithChildren<SwitchRootProps>, "ref"> & import("react").RefAttributes<HTMLButtonElement>> & {
4
+ Thumb: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
5
+ ref?: ((instance: HTMLSpanElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLSpanElement> | null | undefined;
6
+ }, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
7
+ Label: import("react").ForwardRefExoticComponent<SwitchLabelProps & {
8
+ children?: import("react").ReactNode | undefined;
9
+ } & import("react").RefAttributes<HTMLSpanElement>>;
10
+ };
11
+ export default SwitchRoot;
@@ -0,0 +1,4 @@
1
+ export declare const sizes: readonly ["s", "m", "l"];
2
+ export declare const switchTrackProps: {
3
+ size: import("../../helpers/types/propsDef").ClassNamePropsType<readonly ["s", "m", "l"]>;
4
+ };
@@ -0,0 +1,19 @@
1
+ import { ComponentPropsWithRef, ReactNode } from 'react';
2
+ import { AsChildProps } from '../../helpers/types/common-props';
3
+ import { sizes } from './switch-props';
4
+ export interface SwitchRootProps extends Omit<ComponentPropsWithRef<'button'>, 'id' | 'onChange' | 'value'> {
5
+ id: string;
6
+ checked?: boolean;
7
+ defaultChecked?: boolean;
8
+ onChange?: (checked: boolean) => void;
9
+ disabled?: boolean;
10
+ className?: string;
11
+ }
12
+ export type SwitchThumbProps = ComponentPropsWithRef<'span'>;
13
+ export interface SwitchLabelProps extends AsChildProps {
14
+ className?: string;
15
+ }
16
+ export interface SwitchProps extends SwitchRootProps {
17
+ label?: ReactNode;
18
+ size?: (typeof sizes)[number];
19
+ }
@@ -0,0 +1,4 @@
1
+ import { SwitchProps } from './switch-type';
2
+ declare const Switch: import("react").ForwardRefExoticComponent<Omit<SwitchProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
3
+ export default Switch;
4
+ export type { SwitchProps } from './switch-type';
@@ -0,0 +1,24 @@
1
+ import type { StoryObj } from '@storybook/react-webpack5';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").ForwardRefExoticComponent<Omit<import("./switch-type").SwitchProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
5
+ argTypes: {
6
+ size: {
7
+ control: {
8
+ type: "select";
9
+ };
10
+ options: readonly ["s", "m", "l"];
11
+ };
12
+ };
13
+ args: {
14
+ id: string;
15
+ label: string;
16
+ };
17
+ };
18
+ export default meta;
19
+ type Story = StoryObj<typeof meta>;
20
+ export declare const Default: Story;
21
+ export declare const Sizes: Story;
22
+ export declare const Checked: Story;
23
+ export declare const Disabled: Story;
24
+ export declare const WithoutLabel: Story;
@@ -1,9 +1,8 @@
1
1
  import { TableBodyProps, TableCellProps, TableHeaderProps, TableRootProps, TableRowProps } from './table-type';
2
- declare const TableRoot: {
3
- (props: TableRootProps): import("react/jsx-runtime").JSX.Element;
4
- Header: (props: TableHeaderProps) => import("react/jsx-runtime").JSX.Element;
5
- Body: (props: TableBodyProps) => import("react/jsx-runtime").JSX.Element;
6
- Row: (props: TableRowProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const TableRoot: import("react").ForwardRefExoticComponent<Omit<TableRootProps, "ref"> & import("react").RefAttributes<HTMLTableElement>> & {
3
+ Header: import("react").ForwardRefExoticComponent<Omit<TableHeaderProps, "ref"> & import("react").RefAttributes<HTMLTableSectionElement>>;
4
+ Body: import("react").ForwardRefExoticComponent<Omit<TableBodyProps, "ref"> & import("react").RefAttributes<HTMLTableSectionElement>>;
5
+ Row: import("react").ForwardRefExoticComponent<Omit<TableRowProps, "ref"> & import("react").RefAttributes<HTMLTableRowElement>>;
7
6
  Cell: import("react").ForwardRefExoticComponent<Omit<TableCellProps, "ref"> & import("react").RefAttributes<HTMLTableCellElement>>;
8
7
  };
9
8
  export default TableRoot;
@@ -1,23 +1,6 @@
1
- import { ReactNode } from 'react';
2
- export interface RowItem {
3
- id: string;
4
- value: ReactNode;
5
- onClickRow?: (id: RowItem['id']) => void;
6
- }
7
- type ColumnsType<T extends readonly RowItem[]> = Array<{
8
- [K in T[number]['id']]: {
9
- value: ReactNode | ((item: T[number]) => ReactNode);
10
- onClickCell?: () => void;
11
- };
12
- }>;
13
- export interface DataTableProps<T extends readonly RowItem[]> {
14
- rows: T;
15
- columns: ColumnsType<T>;
16
- fixedRowsIndex?: number;
17
- headerHeight?: number;
18
- rowHeight?: number;
19
- cellHeight?: number;
20
- className?: string;
21
- }
22
- declare const DataTable: <T extends readonly RowItem[]>(props: DataTableProps<T>) => import("react/jsx-runtime").JSX.Element;
1
+ import { RefAttributes } from 'react';
2
+ import { DataTableProps, RowItem } from './table-type';
3
+ declare const DataTableBase: import("react").ForwardRefExoticComponent<DataTableProps<readonly RowItem[]> & RefAttributes<HTMLTableElement>>;
4
+ declare const DataTable: <T extends readonly RowItem[]>(props: DataTableProps<T> & RefAttributes<HTMLTableElement>) => ReturnType<typeof DataTableBase>;
23
5
  export default DataTable;
6
+ export type { DataTableProps, RowItem } from './table-type';
@@ -1,4 +1,4 @@
1
- import { ComponentPropsWithRef } from 'react';
1
+ import { ComponentPropsWithRef, ReactNode } from 'react';
2
2
  export interface TableProps {
3
3
  children: React.ReactNode;
4
4
  }
@@ -12,3 +12,24 @@ export interface TableBodyProps extends Omit<TableProps, 'children'>, ComponentP
12
12
  }
13
13
  export interface TableCellProps extends Omit<TableProps, 'children'>, ComponentPropsWithRef<'td'> {
14
14
  }
15
+ export interface RowItem {
16
+ id: string;
17
+ value: ReactNode;
18
+ onClickRow?: (id: RowItem['id']) => void;
19
+ }
20
+ type ColumnsType<T extends readonly RowItem[]> = Array<{
21
+ [K in T[number]['id']]: {
22
+ value: ReactNode | ((item: T[number]) => ReactNode);
23
+ onClickCell?: () => void;
24
+ };
25
+ }>;
26
+ export interface DataTableProps<T extends readonly RowItem[]> {
27
+ rows: T;
28
+ columns: ColumnsType<T>;
29
+ fixedRowsIndex?: number;
30
+ headerHeight?: number;
31
+ rowHeight?: number;
32
+ cellHeight?: number;
33
+ className?: string;
34
+ }
35
+ export {};
@@ -1,8 +1,8 @@
1
- import type { StoryObj } from '@storybook/react';
2
- import { DataTableProps } from './data-table';
1
+ import type { StoryObj } from '@storybook/react-webpack5';
2
+ import { DataTableProps } from './table-type';
3
3
  declare const meta: {
4
4
  title: string;
5
- component: <T extends readonly import("./data-table").RowItem[]>(props: DataTableProps<T>) => import("react/jsx-runtime").JSX.Element;
5
+ component: <T extends readonly import("./table-type").RowItem[]>(props: DataTableProps<T> & import("react").RefAttributes<HTMLTableElement>) => ReturnType<import("react").ForwardRefExoticComponent<DataTableProps<readonly import("./table-type").RowItem[]> & import("react").RefAttributes<HTMLTableElement>>>;
6
6
  };
7
7
  export default meta;
8
8
  declare const rowItems: readonly [{
@@ -55,3 +55,19 @@ declare const rowItems: readonly [{
55
55
  readonly value: import("react/jsx-runtime").JSX.Element;
56
56
  }];
57
57
  export declare const Default: StoryObj<DataTableProps<typeof rowItems>>;
58
+ declare const smallRows: readonly [{
59
+ readonly id: "id";
60
+ readonly value: import("react/jsx-runtime").JSX.Element;
61
+ }, {
62
+ readonly id: "name";
63
+ readonly value: import("react/jsx-runtime").JSX.Element;
64
+ }, {
65
+ readonly id: "status";
66
+ readonly value: import("react/jsx-runtime").JSX.Element;
67
+ }];
68
+ export declare const Small: StoryObj<DataTableProps<typeof smallRows>>;
69
+ /** 행 높이와 헤더 높이는 css prop 이다. */
70
+ export declare const Heights: StoryObj<DataTableProps<typeof smallRows>>;
71
+ /** 행에 마우스를 올리면 배경이 바뀌고, 고정 열은 가로 스크롤에도 남는다. */
72
+ export declare const FixedColumns: StoryObj<DataTableProps<typeof rowItems>>;
73
+ export declare const Empty: StoryObj<DataTableProps<typeof smallRows>>;
@@ -1,11 +1,11 @@
1
1
  import { PropsWithChildren } from 'react';
2
2
  import { TabsContentProps, TabsIndicatorProps, TabsListProps, TabsRootProps, TabsTriggerProps } from './tabs-type';
3
- declare const TabsRoot: {
4
- (props: PropsWithChildren<TabsRootProps>): import("react/jsx-runtime").JSX.Element;
5
- List: (props: PropsWithChildren<TabsListProps>) => import("react/jsx-runtime").JSX.Element;
6
- Trigger: (props: PropsWithChildren<TabsTriggerProps>) => import("react/jsx-runtime").JSX.Element;
7
- Content: (props: PropsWithChildren<TabsContentProps>) => import("react/jsx-runtime").JSX.Element;
8
- Indicator: (props: TabsIndicatorProps) => import("react/jsx-runtime").JSX.Element;
3
+ declare const TabsRoot: import("react").ForwardRefExoticComponent<TabsRootProps & {
4
+ children?: import("react").ReactNode | undefined;
5
+ } & import("react").RefAttributes<HTMLDivElement>> & {
6
+ List: import("react").ForwardRefExoticComponent<Omit<PropsWithChildren<TabsListProps>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
7
+ Trigger: import("react").ForwardRefExoticComponent<Omit<PropsWithChildren<TabsTriggerProps>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
8
+ Content: import("react").ForwardRefExoticComponent<Omit<PropsWithChildren<TabsContentProps>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
9
+ Indicator: import("react").ForwardRefExoticComponent<Omit<TabsIndicatorProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
9
10
  };
10
11
  export default TabsRoot;
11
- export type { TabsRootProps, TabsListProps, TabsTriggerProps, TabsContentProps, TabsIndicatorProps };
@@ -1,5 +1,5 @@
1
1
  export declare const variant: readonly ["underline", "filled"];
2
- export declare const tabsSingleProps: {
2
+ export declare const tabsProps: {
3
3
  variant: {
4
4
  type: "className";
5
5
  className: string;
@@ -1,6 +1,8 @@
1
- import type { ComponentPropsWithRef, ReactNode, CSSProperties } from 'react';
1
+ import type { ComponentPropsWithRef, ReactNode } from 'react';
2
+ import { AsChildProps, StyleProps } from '../../helpers/types/common-props';
3
+ import { variant } from './tabs-props';
2
4
  export type TabsValue = string | null;
3
- export type TabsVariant = 'underline' | 'filled';
5
+ export type TabsVariant = (typeof variant)[number];
4
6
  export interface TabsItem {
5
7
  id: string;
6
8
  label: ReactNode;
@@ -8,14 +10,12 @@ export interface TabsItem {
8
10
  disabled?: boolean;
9
11
  leftIcon?: ReactNode;
10
12
  }
11
- export interface TabsProps {
13
+ export interface TabsProps extends StyleProps {
12
14
  items: TabsItem[];
13
15
  variant?: TabsVariant;
14
16
  value?: TabsValue;
15
17
  defaultValue?: TabsValue;
16
18
  onValueChange?: (id: TabsValue) => void;
17
- className?: string;
18
- style?: CSSProperties;
19
19
  }
20
20
  export interface TabsRootProps {
21
21
  value?: TabsValue;
@@ -23,18 +23,14 @@ export interface TabsRootProps {
23
23
  onValueChange?: (id: TabsValue) => void;
24
24
  className?: string;
25
25
  }
26
- export interface TabsListProps extends ComponentPropsWithRef<'div'> {
27
- asChild?: boolean;
26
+ export interface TabsListProps extends ComponentPropsWithRef<'div'>, AsChildProps {
28
27
  }
29
- export interface TabsTriggerProps extends Omit<ComponentPropsWithRef<'button'>, 'value'> {
30
- asChild?: boolean;
28
+ export interface TabsTriggerProps extends Omit<ComponentPropsWithRef<'button'>, 'value'>, AsChildProps {
31
29
  id: string;
32
30
  disabled?: boolean;
33
31
  }
34
- export interface TabsContentProps extends Omit<ComponentPropsWithRef<'div'>, 'value'> {
35
- asChild?: boolean;
32
+ export interface TabsContentProps extends Omit<ComponentPropsWithRef<'div'>, 'value'>, AsChildProps {
36
33
  id: string;
37
34
  }
38
- export interface TabsIndicatorProps extends ComponentPropsWithRef<'div'> {
39
- asChild?: boolean;
35
+ export interface TabsIndicatorProps extends ComponentPropsWithRef<'div'>, AsChildProps {
40
36
  }
@@ -1,4 +1,4 @@
1
- import type { TabsProps } from './tabs-type';
2
- declare const Tabs: (props: TabsProps) => import("react/jsx-runtime").JSX.Element;
1
+ import { TabsProps } from './tabs-type';
2
+ declare const Tabs: import("react").ForwardRefExoticComponent<TabsProps & import("react").RefAttributes<HTMLDivElement>>;
3
3
  export default Tabs;
4
- export type { TabsProps };
4
+ export type { TabsProps } from './tabs-type';
@@ -1,23 +1,29 @@
1
- import type { StoryObj } from '@storybook/react';
1
+ import type { StoryObj } from '@storybook/react-webpack5';
2
2
  declare const meta: {
3
3
  title: string;
4
- component: (props: import("./tabs-type").TabsProps) => import("react/jsx-runtime").JSX.Element;
4
+ component: import("react").ForwardRefExoticComponent<import("./tabs-type").TabsProps & import("react").RefAttributes<HTMLDivElement>>;
5
+ argTypes: {
6
+ variant: {
7
+ control: {
8
+ type: "select";
9
+ };
10
+ options: readonly ["underline", "filled"];
11
+ };
12
+ };
5
13
  args: {
6
14
  variant: "underline";
7
15
  defaultValue: string;
8
- items: ({
9
- id: string;
10
- label: string;
11
- content: import("react/jsx-runtime").JSX.Element;
12
- leftIcon: import("react/jsx-runtime").JSX.Element;
13
- } | {
16
+ items: {
14
17
  id: string;
15
18
  label: string;
16
19
  content: import("react/jsx-runtime").JSX.Element;
17
- leftIcon?: undefined;
18
- })[];
20
+ leftIcon: import("react/jsx-runtime").JSX.Element | undefined;
21
+ }[];
19
22
  };
20
23
  };
21
24
  export default meta;
22
25
  type Story = StoryObj<typeof meta>;
23
26
  export declare const Default: Story;
27
+ export declare const Variants: Story;
28
+ export declare const Filled: Story;
29
+ export declare const DisabledTab: Story;
@@ -0,0 +1,10 @@
1
+ import { TextAreaHelperTextProps, TextAreaLabelProps, TextAreaRootProps, TextAreaTextareaProps } from './text-area-type';
2
+ declare const TextAreaRoot: {
3
+ (props: TextAreaRootProps): import("react/jsx-runtime").JSX.Element;
4
+ displayName: string;
5
+ } & {
6
+ Label: import("react").ForwardRefExoticComponent<TextAreaLabelProps & import("react").RefAttributes<HTMLElement>>;
7
+ Textarea: import("react").ForwardRefExoticComponent<Omit<TextAreaTextareaProps, "ref"> & import("react").RefAttributes<HTMLTextAreaElement>>;
8
+ HelperText: import("react").ForwardRefExoticComponent<TextAreaHelperTextProps & import("react").RefAttributes<HTMLElement>>;
9
+ };
10
+ export default TextAreaRoot;
@@ -0,0 +1,12 @@
1
+ export declare const sizes: readonly ["s", "m"];
2
+ export declare const resize: readonly ["none", "vertical"];
3
+ export declare const textAreaProps: {
4
+ size: import("../../helpers/types/propsDef").ClassNamePropsType<readonly ["s", "m"]>;
5
+ width: import("../../helpers/types/propsDef").CSSPropsTypeWithoutValues<string | number>;
6
+ resize: {
7
+ type: "className";
8
+ className: string;
9
+ values: readonly ["none", "vertical"];
10
+ default: "vertical";
11
+ };
12
+ };
@@ -0,0 +1,34 @@
1
+ import { ChangeEvent, ComponentPropsWithRef, ReactNode } from 'react';
2
+ import { resize, sizes } from './text-area-props';
3
+ export interface TextAreaRootProps {
4
+ children: ReactNode;
5
+ value?: string;
6
+ defaultValue?: string;
7
+ onChange?: (e: ChangeEvent<HTMLTextAreaElement>) => void;
8
+ }
9
+ export interface TextAreaLabelProps {
10
+ text: ReactNode;
11
+ className?: string;
12
+ }
13
+ export interface TextAreaTextareaProps extends Omit<ComponentPropsWithRef<'textarea'>, 'title'> {
14
+ name: string;
15
+ placeholder?: string;
16
+ className?: string;
17
+ disabled?: boolean;
18
+ }
19
+ export interface TextAreaHelperTextProps {
20
+ text: ReactNode;
21
+ className?: string;
22
+ }
23
+ export interface TextAreaProps extends Omit<ComponentPropsWithRef<'textarea'>, 'title'> {
24
+ size?: (typeof sizes)[number];
25
+ width?: number | string;
26
+ resize?: (typeof resize)[number];
27
+ name: string;
28
+ title?: ReactNode;
29
+ helperText?: ReactNode;
30
+ isError?: boolean;
31
+ value?: string;
32
+ defaultValue?: string;
33
+ className?: string;
34
+ }
@@ -0,0 +1,4 @@
1
+ import { TextAreaProps } from './text-area-type';
2
+ declare const TextArea: import("react").ForwardRefExoticComponent<Omit<TextAreaProps, "ref"> & import("react").RefAttributes<HTMLTextAreaElement>>;
3
+ export default TextArea;
4
+ export type { TextAreaProps } from './text-area-type';
@@ -0,0 +1,32 @@
1
+ import type { StoryObj } from '@storybook/react-webpack5';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").ForwardRefExoticComponent<Omit<import("./text-area-type").TextAreaProps, "ref"> & import("react").RefAttributes<HTMLTextAreaElement>>;
5
+ argTypes: {
6
+ size: {
7
+ control: {
8
+ type: "select";
9
+ };
10
+ options: readonly ["s", "m"];
11
+ };
12
+ resize: {
13
+ control: {
14
+ type: "select";
15
+ };
16
+ options: readonly ["none", "vertical"];
17
+ };
18
+ };
19
+ args: {
20
+ name: string;
21
+ width: string;
22
+ rows: number;
23
+ };
24
+ };
25
+ export default meta;
26
+ type Story = StoryObj<typeof meta>;
27
+ export declare const Default: Story;
28
+ export declare const Sizes: Story;
29
+ export declare const Resize: Story;
30
+ export declare const ErrorState: Story;
31
+ export declare const Disabled: Story;
32
+ export declare const MaxLength: Story;
@@ -2,8 +2,10 @@ import React, { PropsWithChildren } from 'react';
2
2
  import { TextFieldHelperTextProps, TextFieldInputProps, TextFieldLabelProps, TextFieldRootProps } from './text-field-type';
3
3
  declare const TextFieldRoot: {
4
4
  (props: PropsWithChildren<TextFieldRootProps>): import("react/jsx-runtime").JSX.Element;
5
- TextLabel: (props: TextFieldLabelProps) => number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode> | null | undefined;
6
- InputField: React.ForwardRefExoticComponent<Omit<TextFieldInputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
7
- HelperText: (props: TextFieldHelperTextProps) => number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode> | null | undefined;
5
+ displayName: string;
6
+ } & {
7
+ Label: React.ForwardRefExoticComponent<TextFieldLabelProps & React.RefAttributes<HTMLElement>>;
8
+ Input: React.ForwardRefExoticComponent<Omit<TextFieldInputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
9
+ HelperText: React.ForwardRefExoticComponent<TextFieldHelperTextProps & React.RefAttributes<HTMLElement>>;
8
10
  };
9
11
  export default TextFieldRoot;
@@ -1,14 +1,5 @@
1
- export declare const size: readonly ["m", "l"];
1
+ export declare const sizes: readonly ["xs", "s", "m", "l", "xl"];
2
2
  export declare const textFieldProps: {
3
- size: {
4
- type: "className";
5
- className: string;
6
- values: readonly ["m", "l"];
7
- default: "m";
8
- };
9
- width: {
10
- type: "css";
11
- key: "width";
12
- default: string;
13
- };
3
+ size: import("../../helpers/types/propsDef").ClassNamePropsType<readonly ["xs", "s", "m", "l", "xl"]>;
4
+ width: import("../../helpers/types/propsDef").CSSPropsTypeWithoutValues<string | number>;
14
5
  };
@@ -1,4 +1,5 @@
1
1
  import { ComponentPropsWithRef, ReactNode } from 'react';
2
+ import { sizes } from './text-field-props';
2
3
  export interface TextFieldRootProps {
3
4
  children: React.ReactNode;
4
5
  value?: string;
@@ -19,3 +20,16 @@ export interface TextFieldHelperTextProps {
19
20
  text: ReactNode;
20
21
  className?: string;
21
22
  }
23
+ export interface TextFieldProps extends Omit<ComponentPropsWithRef<'input'>, 'title' | 'size'> {
24
+ size: (typeof sizes)[number];
25
+ width: number | string;
26
+ leftIcon?: ReactNode;
27
+ rightIcon?: ReactNode;
28
+ name: string;
29
+ title?: ReactNode;
30
+ helperText?: ReactNode;
31
+ isError?: boolean;
32
+ value?: string;
33
+ defaultValue?: string;
34
+ className?: string;
35
+ }
@@ -1,17 +1,4 @@
1
- import React, { ComponentPropsWithRef, ReactNode } from 'react';
2
- import { size } from './text-field-props';
3
- export interface TextFieldProps extends Omit<ComponentPropsWithRef<'input'>, 'title' | 'size'> {
4
- size: (typeof size)[number];
5
- width: string;
6
- leftIcon?: ReactNode;
7
- rightIcon?: ReactNode;
8
- name: string;
9
- title?: ReactNode;
10
- helperText?: ReactNode;
11
- isError?: boolean;
12
- value?: string;
13
- defaultValue?: string;
14
- className?: string;
15
- }
16
- declare const TextField: React.ForwardRefExoticComponent<Omit<TextFieldProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
1
+ import { TextFieldProps } from './text-field-type';
2
+ declare const TextField: import("react").ForwardRefExoticComponent<Omit<TextFieldProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
17
3
  export default TextField;
4
+ export type { TextFieldProps } from './text-field-type';
@@ -0,0 +1,24 @@
1
+ import type { StoryObj } from '@storybook/react-webpack5';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").ForwardRefExoticComponent<Omit<import("./text-field-type").TextFieldProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
5
+ argTypes: {
6
+ size: {
7
+ control: {
8
+ type: "select";
9
+ };
10
+ options: readonly ["xs", "s", "m", "l", "xl"];
11
+ };
12
+ };
13
+ args: {
14
+ name: string;
15
+ size: "s";
16
+ width: string;
17
+ };
18
+ };
19
+ export default meta;
20
+ type Story = StoryObj<typeof meta>;
21
+ export declare const Default: Story;
22
+ export declare const Sizes: Story;
23
+ export declare const ErrorState: Story;
24
+ export declare const Disabled: Story;
@@ -0,0 +1,20 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { ToastActionProps, ToastProviderProps, ToastRootProps, ToastViewportProps } from './toast-type';
3
+ export declare const ToastProvider: {
4
+ (props: ToastProviderProps): import("react/jsx-runtime").JSX.Element;
5
+ displayName: string;
6
+ };
7
+ declare const ToastRoot: import("react").ForwardRefExoticComponent<Omit<PropsWithChildren<ToastRootProps>, "ref"> & import("react").RefAttributes<HTMLLIElement>> & {
8
+ Viewport: import("react").ForwardRefExoticComponent<Omit<ToastViewportProps, "ref"> & import("react").RefAttributes<HTMLOListElement>>;
9
+ Title: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
10
+ ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
11
+ }, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
12
+ Description: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
13
+ ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
14
+ }, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
15
+ Action: import("react").ForwardRefExoticComponent<Omit<ToastActionProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
16
+ Close: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
17
+ ref?: ((instance: HTMLButtonElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLButtonElement> | null | undefined;
18
+ }, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
19
+ };
20
+ export default ToastRoot;
@@ -0,0 +1,18 @@
1
+ export declare const variants: readonly ["default", "secondary", "success", "warning", "error"];
2
+ export declare const positions: readonly ["top-right", "bottom-right", "bottom-center"];
3
+ export declare const toastProps: {
4
+ variant: {
5
+ type: "className";
6
+ className: string;
7
+ values: readonly ["default", "secondary", "success", "warning", "error"];
8
+ default: "default";
9
+ };
10
+ };
11
+ export declare const toastViewportProps: {
12
+ position: {
13
+ type: "className";
14
+ className: string;
15
+ values: readonly ["top-right", "bottom-right", "bottom-center"];
16
+ default: "bottom-right";
17
+ };
18
+ };
@@ -0,0 +1,45 @@
1
+ import { ComponentPropsWithRef, ReactNode } from 'react';
2
+ import { AsChildProps, StyleProps } from '../../helpers/types/common-props';
3
+ import { positions, variants } from './toast-props';
4
+ export interface ToastProviderProps {
5
+ children: ReactNode;
6
+ /** 토스트가 떠 있는 시간(ms). Toast 의 duration 이 앞선다. 기본값은 Radix 의 5000 */
7
+ duration?: number;
8
+ position?: (typeof positions)[number];
9
+ /** 스크린 리더가 읽는 이름. 토스트마다 "{label}", 토스트 영역은 "{label} (F8)". 기본 '알림' */
10
+ label?: string;
11
+ }
12
+ export interface ToastViewportProps extends ComponentPropsWithRef<'ol'> {
13
+ position?: (typeof positions)[number];
14
+ /** 영역 이름. `{hotkey}` 자리는 Radix 가 단축키로 바꾼다 */
15
+ label?: string;
16
+ hotkey?: string[];
17
+ }
18
+ export interface ToastRootProps extends Omit<ComponentPropsWithRef<'li'>, 'title' | 'onPause' | 'onResume'> {
19
+ onPause?: () => void;
20
+ onResume?: () => void;
21
+ open?: boolean;
22
+ defaultOpen?: boolean;
23
+ onOpenChange?: (open: boolean) => void;
24
+ /** 이 토스트만의 표시 시간(ms). Provider 의 duration 보다 앞선다 */
25
+ duration?: number;
26
+ }
27
+ export type ToastTitleProps = ComponentPropsWithRef<'div'>;
28
+ export type ToastDescriptionProps = ComponentPropsWithRef<'div'>;
29
+ export interface ToastActionProps extends ComponentPropsWithRef<'button'>, AsChildProps {
30
+ /** 버튼에 닿기 어려운 스크린 리더 사용자에게 읽어 줄 대체 수행 방법 */
31
+ altText: string;
32
+ }
33
+ export type ToastCloseProps = ComponentPropsWithRef<'button'>;
34
+ export interface ToastAction {
35
+ label: string;
36
+ onClick: () => void;
37
+ altText: string;
38
+ }
39
+ export interface ToastProps extends Omit<ToastRootProps, 'children' | keyof StyleProps>, StyleProps {
40
+ title: ReactNode;
41
+ description?: ReactNode;
42
+ variant?: (typeof variants)[number];
43
+ action?: ToastAction;
44
+ showClose?: boolean;
45
+ }
@@ -0,0 +1,5 @@
1
+ import { ToastProps } from './toast-type';
2
+ export { ToastProvider } from './base-toast';
3
+ declare const Toast: import("react").ForwardRefExoticComponent<Omit<ToastProps, "ref"> & import("react").RefAttributes<HTMLLIElement>>;
4
+ export default Toast;
5
+ export type { ToastProps, ToastProviderProps } from './toast-type';