@nurihaus/web-design-system 3.0.1 → 3.0.3

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 (124) hide show
  1. package/README.md +104 -5
  2. package/dist/.storybook/story-kit.d.ts +18 -0
  3. package/dist/ai/components.md +742 -0
  4. package/dist/ai/tokens.md +319 -0
  5. package/dist/avatar.js +336 -0
  6. package/dist/check-box.js +379 -0
  7. package/dist/chunk-149.js +57 -0
  8. package/dist/chunk-298.js +34 -0
  9. package/dist/chunk-302.js +105 -0
  10. package/dist/chunk-309.js +36 -0
  11. package/dist/chunk-364.js +126 -0
  12. package/dist/chunk-387.js +37 -0
  13. package/dist/chunk-558.js +200 -0
  14. package/dist/chunk-563.js +181 -0
  15. package/dist/chunk-739.js +68 -0
  16. package/dist/chunk-777.js +117 -0
  17. package/dist/chunk-917.js +35 -0
  18. package/dist/chunk-933.js +70 -0
  19. package/dist/chunk-976.js +29 -0
  20. package/dist/collapsible-menu.js +394 -0
  21. package/dist/components/avatar/avatar-props.d.ts +2 -6
  22. package/dist/components/avatar/avatar-type.d.ts +4 -5
  23. package/dist/components/avatar/avatar.d.ts +1 -0
  24. package/dist/components/avatar/avatar.stories.d.ts +17 -1
  25. package/dist/components/badge/badge-props.d.ts +17 -80
  26. package/dist/components/badge/badge-type.d.ts +38 -2
  27. package/dist/components/badge/badge.stories.d.ts +25 -2
  28. package/dist/components/badge/base-badge.d.ts +2 -1
  29. package/dist/components/badge/icon-text-badge.d.ts +3 -21
  30. package/dist/components/badge/icon-text-option-badge.d.ts +2 -15
  31. package/dist/components/badge/option-badge.d.ts +3 -20
  32. package/dist/components/button/button-props.d.ts +2 -7
  33. package/dist/components/button/button-type.d.ts +11 -3
  34. package/dist/components/button/button.stories.d.ts +13 -10
  35. package/dist/components/button/cta-button.d.ts +3 -12
  36. package/dist/components/check-box/base-check-box.d.ts +9 -5
  37. package/dist/components/check-box/check-box-props.d.ts +2 -7
  38. package/dist/components/check-box/check-box-type.d.ts +11 -4
  39. package/dist/components/check-box/check-box.d.ts +3 -10
  40. package/dist/components/check-box/check-box.stories.d.ts +19 -4
  41. package/dist/components/collapsible-menu/base-collapsible-menu.d.ts +9 -5
  42. package/dist/components/collapsible-menu/collapsible-menu-props.d.ts +3 -12
  43. package/dist/components/collapsible-menu/collapsible-menu-type.d.ts +33 -9
  44. package/dist/components/collapsible-menu/collapsible-menu.d.ts +3 -23
  45. package/dist/components/collapsible-menu/collapsible-menu.stories.d.ts +20 -4
  46. package/dist/components/drop-down/base-drop-down.d.ts +11 -3
  47. package/dist/components/drop-down/drop-down-props.d.ts +3 -12
  48. package/dist/components/drop-down/drop-down-type.d.ts +34 -15
  49. package/dist/components/drop-down/drop-down.d.ts +3 -32
  50. package/dist/components/drop-down/drop-down.stories.d.ts +23 -4
  51. package/dist/components/elements/text/base-text.d.ts +3 -0
  52. package/dist/components/elements/text/text-props.d.ts +16 -0
  53. package/dist/components/elements/text/text-type.d.ts +6 -2
  54. package/dist/components/elements/text/text.d.ts +2 -1
  55. package/dist/components/elements/text/text.stories.d.ts +43 -3
  56. package/dist/components/loading/index.d.ts +6 -6
  57. package/dist/components/loading/inline-loading/base-inline-loading.d.ts +3 -0
  58. package/dist/components/loading/inline-loading/inline-loading-props.d.ts +9 -0
  59. package/dist/components/loading/inline-loading/inline-loading-type.d.ts +8 -6
  60. package/dist/components/loading/inline-loading/inline-loading.d.ts +3 -2
  61. package/dist/components/loading/inline-loading/inline-loading.stories.d.ts +5 -9
  62. package/dist/components/loading/overlay-loading/base-overlay-loading.d.ts +3 -0
  63. package/dist/components/loading/overlay-loading/overlay-loading-props.d.ts +7 -0
  64. package/dist/components/loading/overlay-loading/overlay-loading-type.d.ts +6 -3
  65. package/dist/components/loading/overlay-loading/overlay-loading.d.ts +3 -3
  66. package/dist/components/loading/overlay-loading/overlay-loading.stories.d.ts +8 -8
  67. package/dist/components/loading/spinner/base-spinner.d.ts +4 -0
  68. package/dist/components/loading/spinner/spinner-props.d.ts +1 -0
  69. package/dist/components/loading/spinner/spinner-type.d.ts +4 -4
  70. package/dist/components/loading/spinner/spinner.d.ts +2 -2
  71. package/dist/components/loading/spinner/spinner.stories.d.ts +5 -12
  72. package/dist/components/modal/base-modal.d.ts +17 -5
  73. package/dist/components/modal/modal-props.d.ts +2 -7
  74. package/dist/components/modal/modal-type.d.ts +20 -10
  75. package/dist/components/modal/modal-with-double-button.d.ts +4 -16
  76. package/dist/components/modal/modal.stories.d.ts +15 -2
  77. package/dist/components/radio/base-radio.d.ts +9 -5
  78. package/dist/components/radio/radio-props.d.ts +1 -0
  79. package/dist/components/radio/radio-type.d.ts +6 -8
  80. package/dist/components/radio/radio.d.ts +2 -2
  81. package/dist/components/radio/radio.stories.d.ts +13 -4
  82. package/dist/components/table/base-table.d.ts +4 -5
  83. package/dist/components/table/data-table.d.ts +5 -22
  84. package/dist/components/table/table-type.d.ts +22 -1
  85. package/dist/components/table/table.stories.d.ts +19 -3
  86. package/dist/components/tabs/base-tabs.d.ts +7 -7
  87. package/dist/components/tabs/tabs-props.d.ts +1 -1
  88. package/dist/components/tabs/tabs-type.d.ts +9 -13
  89. package/dist/components/tabs/tabs.d.ts +3 -3
  90. package/dist/components/tabs/tabs.stories.d.ts +16 -10
  91. package/dist/components/text-field/base-text-field.d.ts +5 -3
  92. package/dist/components/text-field/text-field-props.d.ts +3 -12
  93. package/dist/components/text-field/text-field-type.d.ts +14 -0
  94. package/dist/components/text-field/text-field.d.ts +3 -16
  95. package/dist/components/text-field/text-field.stories.d.ts +24 -0
  96. package/dist/components/tooltip/base-tooltip.d.ts +13 -3
  97. package/dist/components/tooltip/tooltip-props.d.ts +3 -2
  98. package/dist/components/tooltip/tooltip-type.d.ts +17 -5
  99. package/dist/components/tooltip/tooltip.d.ts +4 -7
  100. package/dist/components/tooltip/tooltip.stories.d.ts +21 -4
  101. package/dist/components.css +1984 -0
  102. package/dist/cta-button.js +236 -0
  103. package/dist/data-table.js +386 -0
  104. package/dist/drop-down.js +433 -0
  105. package/dist/helpers/props/common-props.d.ts +7 -0
  106. package/dist/helpers/types/common-props.d.ts +8 -0
  107. package/dist/icon-text-badge.js +294 -0
  108. package/dist/icon-text-option-badge.js +270 -0
  109. package/dist/index.d.ts +17 -1
  110. package/dist/index.js +3021 -10637
  111. package/dist/loading.js +383 -0
  112. package/dist/modal-with-double-button.js +527 -0
  113. package/dist/option-badge.js +293 -0
  114. package/dist/radio.js +363 -0
  115. package/dist/reset.css +45 -0
  116. package/dist/styles.css +465 -219
  117. package/dist/tabs.js +421 -0
  118. package/dist/text-field.js +369 -0
  119. package/dist/text.js +233 -0
  120. package/dist/tokens.css +73 -0
  121. package/dist/tokens.js +4 -6
  122. package/dist/tooltip.js +360 -0
  123. package/package.json +91 -14
  124. package/dist/components/text-field/text-filed.stories.d.ts +0 -8
@@ -1,19 +1,7 @@
1
- import { ReactNode } from 'react';
2
- import { CTAButtonProps } from '../button/cta-button';
3
- import { size } from './modal-props';
4
- export interface ModalWithDoubleButtonProps {
5
- title?: string;
6
- subTitle?: string | ReactNode;
7
- titleIcon?: ReactNode;
8
- content?: ReactNode;
9
- showCloseIcon?: boolean;
10
- showTitleLine?: boolean;
11
- left: CTAButtonProps;
12
- right: CTAButtonProps;
13
- size?: (typeof size)[number];
14
- }
1
+ import { ModalWithDoubleButtonProps } from './modal-type';
15
2
  declare const ModalWithDoubleButton: {
16
- Row: (props: ModalWithDoubleButtonProps) => import("react/jsx-runtime").JSX.Element;
17
- Column: (props: ModalWithDoubleButtonProps) => import("react/jsx-runtime").JSX.Element;
3
+ Row: import("react").ForwardRefExoticComponent<ModalWithDoubleButtonProps & import("react").RefAttributes<HTMLDivElement>>;
4
+ Column: import("react").ForwardRefExoticComponent<ModalWithDoubleButtonProps & import("react").RefAttributes<HTMLDivElement>>;
18
5
  };
19
6
  export default ModalWithDoubleButton;
7
+ export type { ModalWithDoubleButtonProps } from './modal-type';
@@ -1,9 +1,22 @@
1
- import { StoryObj } from '@storybook/react/*';
1
+ import type { StoryObj } from '@storybook/react-webpack5';
2
2
  import ModalWithDoubleButton from './modal-with-double-button';
3
3
  declare const meta: {
4
4
  title: string;
5
- component: (props: import("./modal-with-double-button").ModalWithDoubleButtonProps) => import("react/jsx-runtime").JSX.Element;
5
+ component: import("react").ForwardRefExoticComponent<import("./modal-type").ModalWithDoubleButtonProps & import("react").RefAttributes<HTMLDivElement>>;
6
+ argTypes: {
7
+ size: {
8
+ control: {
9
+ type: "select";
10
+ };
11
+ options: readonly ["s", "m", "l"];
12
+ };
13
+ };
6
14
  };
7
15
  export default meta;
8
16
  type Story = StoryObj<typeof ModalWithDoubleButton.Column>;
9
17
  export declare const Default: Story;
18
+ export declare const Row: Story;
19
+ /** 모달은 화면 가운데 하나만 뜨므로 size 는 Controls 에서 바꿔 본다. */
20
+ export declare const Size: Story;
21
+ export declare const WithCloseIconAndTitleLine: Story;
22
+ export declare const DisabledButton: Story;
@@ -1,10 +1,14 @@
1
- import { PropsWithChildren } from 'react';
1
+ import { PropsWithChildren, ReactNode } from 'react';
2
2
  import { RadioButtonProps, RadioIndicatorProps, RadioLabelProps, RadioOptionGroupProps, RadioRootProps } from './radio-type';
3
3
  declare const RadioRoot: {
4
4
  (props: PropsWithChildren<RadioRootProps>): import("react/jsx-runtime").JSX.Element;
5
- Indicator: (props: PropsWithChildren<RadioIndicatorProps>) => import("react/jsx-runtime").JSX.Element;
6
- Label: (props: PropsWithChildren<RadioLabelProps>) => import("react/jsx-runtime").JSX.Element;
7
- OptionGroup: (props: PropsWithChildren<RadioOptionGroupProps>) => import("react/jsx-runtime").JSX.Element;
8
- Button: (props: PropsWithChildren<RadioButtonProps>) => import("react/jsx-runtime").JSX.Element;
5
+ displayName: string;
6
+ } & {
7
+ OptionGroup: import("react").ForwardRefExoticComponent<Omit<PropsWithChildren<RadioOptionGroupProps>, "ref"> & import("react").RefAttributes<HTMLUListElement>>;
8
+ Button: import("react").ForwardRefExoticComponent<Omit<PropsWithChildren<RadioButtonProps>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
9
+ Indicator: import("react").ForwardRefExoticComponent<RadioIndicatorProps & {
10
+ children?: ReactNode | undefined;
11
+ } & import("react").RefAttributes<HTMLInputElement>>;
12
+ Label: import("react").ForwardRefExoticComponent<Omit<PropsWithChildren<RadioLabelProps>, "ref"> & import("react").RefAttributes<HTMLLabelElement>>;
9
13
  };
10
14
  export default RadioRoot;
@@ -0,0 +1 @@
1
+ export declare const radioProps: {};
@@ -1,5 +1,6 @@
1
1
  import { HTMLAttributes, ReactNode } from 'react';
2
2
  import { ComponentPropsWithRef } from 'react';
3
+ import { AsChildProps } from '../../helpers/types/common-props';
3
4
  export interface RadioRootProps {
4
5
  options: {
5
6
  id: string;
@@ -9,19 +10,16 @@ export interface RadioRootProps {
9
10
  selected?: null | string;
10
11
  onChange?: (id: string | null) => void;
11
12
  }
12
- export interface RadioOptionGroupProps extends ComponentPropsWithRef<'ul'> {
13
- asChild?: boolean;
13
+ export interface RadioOptionGroupProps extends ComponentPropsWithRef<'ul'>, AsChildProps {
14
14
  }
15
- export interface RadioLabelProps extends ComponentPropsWithRef<'label'> {
16
- asChild?: boolean;
15
+ export interface RadioLabelProps extends ComponentPropsWithRef<'label'>, AsChildProps {
17
16
  id: string;
18
17
  disabled?: boolean;
19
18
  }
20
- export interface RadioButtonProps extends ComponentPropsWithRef<'button'> {
21
- asChild?: boolean;
19
+ export interface RadioButtonProps extends ComponentPropsWithRef<'button'>, AsChildProps {
22
20
  id: string;
23
21
  }
24
- export interface RadioIndicatorProps extends HTMLAttributes<HTMLDivElement> {
25
- asChild?: boolean;
22
+ export interface RadioIndicatorProps extends HTMLAttributes<HTMLDivElement>, AsChildProps {
26
23
  id: string;
27
24
  }
25
+ export type RadioProps = RadioRootProps;
@@ -1,3 +1,3 @@
1
- import { RadioRootProps } from './radio-type';
2
- declare const Radio: (props: RadioRootProps) => import("react/jsx-runtime").JSX.Element;
1
+ declare const Radio: import("react").ForwardRefExoticComponent<import("./radio-type").RadioRootProps & import("react").RefAttributes<HTMLUListElement>>;
3
2
  export default Radio;
3
+ export type { RadioProps } from './radio-type';
@@ -1,9 +1,18 @@
1
- import { StoryObj } from "@storybook/react/*";
2
- import Radio from "./radio";
1
+ import type { StoryObj } from '@storybook/react-webpack5';
3
2
  declare const meta: {
4
3
  title: string;
5
- component: (props: import("./radio-type").RadioRootProps) => import("react/jsx-runtime").JSX.Element;
4
+ component: import("react").ForwardRefExoticComponent<import("./radio-type").RadioRootProps & import("react").RefAttributes<HTMLUListElement>>;
5
+ args: {
6
+ options: {
7
+ id: string;
8
+ label: string;
9
+ }[];
10
+ };
6
11
  };
7
12
  export default meta;
8
- type Story = StoryObj<typeof Radio>;
13
+ type Story = StoryObj<typeof meta>;
9
14
  export declare const Default: Story;
15
+ export declare const Selected: Story;
16
+ export declare const Disabled: Story;
17
+ /** label 은 ReactNode 도 받는다. */
18
+ export declare const WithCustomLabel: 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;
@@ -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 ["s", "m"];
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 ["s", "m"]>;
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 ["s", "m"];
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;
@@ -1,8 +1,18 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { TooltipContentProps, TooltipRootProps, TooltipTriggerProps } from './tooltip-type';
2
+ import { TooltipContentProps, TooltipProviderProps, TooltipRootProps, TooltipTriggerProps } from './tooltip-type';
3
+ export declare const TooltipProvider: {
4
+ (props: TooltipProviderProps): import("react/jsx-runtime").JSX.Element;
5
+ displayName: string;
6
+ };
3
7
  declare const TooltipRoot: {
4
8
  (props: PropsWithChildren<TooltipRootProps>): import("react/jsx-runtime").JSX.Element;
5
- Trigger: (props: PropsWithChildren<TooltipTriggerProps>) => import("react/jsx-runtime").JSX.Element;
6
- Content: (props: PropsWithChildren<TooltipContentProps>) => import("react/jsx-runtime").JSX.Element;
9
+ displayName: string;
10
+ } & {
11
+ Trigger: import("react").ForwardRefExoticComponent<TooltipTriggerProps & {
12
+ children?: import("react").ReactNode | undefined;
13
+ } & import("react").RefAttributes<HTMLButtonElement>>;
14
+ Content: import("react").ForwardRefExoticComponent<TooltipContentProps & {
15
+ children?: import("react").ReactNode | undefined;
16
+ } & import("react").RefAttributes<HTMLDivElement>>;
7
17
  };
8
18
  export default TooltipRoot;
@@ -1,9 +1,10 @@
1
+ export declare const direction: readonly ["top", "bottom", "left", "right"];
1
2
  export declare const commonTooltipProps: {};
2
3
  export declare const tooltipContentProps: {
3
4
  direction: {
4
5
  type: "className";
5
6
  className: string;
6
- values: string[];
7
- default: string;
7
+ values: readonly ["top", "bottom", "left", "right"];
8
+ default: "bottom";
8
9
  };
9
10
  };
@@ -1,3 +1,5 @@
1
+ import { AsChildProps } from '../../helpers/types/common-props';
2
+ import { direction } from './tooltip-props';
1
3
  export interface CommonTooltipProps {
2
4
  children: React.ReactNode;
3
5
  className?: string;
@@ -9,10 +11,20 @@ export interface TooltipRootProps {
9
11
  delayDuration?: number;
10
12
  disableHoverableContent?: boolean;
11
13
  }
12
- export interface TooltipTriggerProps extends CommonTooltipProps {
13
- asChild?: boolean;
14
+ export interface TooltipTriggerProps extends CommonTooltipProps, AsChildProps {
14
15
  }
15
- export interface TooltipContentProps extends CommonTooltipProps {
16
- asChild?: boolean;
17
- direction?: 'top' | 'bottom' | 'left' | 'right';
16
+ export interface TooltipContentProps extends CommonTooltipProps, AsChildProps {
17
+ direction?: (typeof direction)[number];
18
+ }
19
+ export interface TooltipProviderProps {
20
+ children: React.ReactNode;
21
+ delayDuration?: number;
22
+ skipDelayDuration?: number;
23
+ disableHoverableContent?: boolean;
24
+ }
25
+ export interface TooltipProps extends TooltipRootProps {
26
+ trigger: React.ReactNode;
27
+ content: React.ReactNode;
28
+ direction?: (typeof direction)[number];
29
+ disabled?: boolean;
18
30
  }
@@ -1,8 +1,5 @@
1
- import { TooltipRootProps } from './tooltip-type';
2
- export interface TooltipProps extends TooltipRootProps {
3
- trigger: React.ReactNode;
4
- content: React.ReactNode;
5
- direction?: 'top' | 'bottom' | 'left' | 'right';
6
- }
7
- declare const Tooltip: (props: TooltipProps) => import("react/jsx-runtime").JSX.Element;
1
+ import { TooltipProps } from './tooltip-type';
2
+ export { TooltipProvider } from './base-tooltip';
3
+ declare const Tooltip: import("react").ForwardRefExoticComponent<TooltipProps & import("react").RefAttributes<HTMLButtonElement>>;
8
4
  export default Tooltip;
5
+ export type { TooltipProps, TooltipProviderProps } from './tooltip-type';
@@ -1,9 +1,26 @@
1
- import { StoryObj } from '@storybook/react/*';
2
- import Tooltip, { TooltipProps } from './tooltip';
1
+ import type { StoryObj } from '@storybook/react-webpack5';
3
2
  declare const meta: {
4
3
  title: string;
5
- component: (props: TooltipProps) => import("react/jsx-runtime").JSX.Element;
4
+ component: import("react").ForwardRefExoticComponent<import("./tooltip-type").TooltipProps & import("react").RefAttributes<HTMLButtonElement>>;
5
+ argTypes: {
6
+ direction: {
7
+ control: {
8
+ type: "select";
9
+ };
10
+ options: readonly ["top", "bottom", "left", "right"];
11
+ };
12
+ };
13
+ args: {
14
+ trigger: import("react/jsx-runtime").JSX.Element;
15
+ content: import("react/jsx-runtime").JSX.Element;
16
+ direction: "right";
17
+ };
6
18
  };
7
19
  export default meta;
8
- type Story = StoryObj<typeof Tooltip>;
20
+ type Story = StoryObj<typeof meta>;
9
21
  export declare const Default: Story;
22
+ /** 네 방향을 한 번에 보인다. defaultOpen 은 Radix 가 다른 툴팁이 열릴 때 닫으므로 open 으로 고정한다. */
23
+ export declare const Directions: Story;
24
+ /** 하나에 올렸다가 옆으로 옮기면 skipDelayDuration(1초) 동안은 지연 없이 바로 뜬다. */
25
+ export declare const SharedProvider: Story;
26
+ export declare const Disabled: Story;