maru_design2 2.31.1 → 3.0.2

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 (90) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/components/atoms/badge/Badge.d.ts +40 -3
  3. package/dist/components/atoms/button/Button.d.ts +16 -0
  4. package/dist/components/atoms/checkbox/Checkbox.d.ts +2 -1
  5. package/dist/components/atoms/chip/Chip.d.ts +36 -3
  6. package/dist/components/atoms/code/Code.d.ts +2 -1
  7. package/dist/components/atoms/icon/Icon.d.ts +5 -3
  8. package/dist/components/atoms/icon/iconmap.d.ts +4 -0
  9. package/dist/components/atoms/input/Input.d.ts +8 -0
  10. package/dist/components/atoms/popover/Popover.d.ts +1 -1
  11. package/dist/components/atoms/radio/Radio.d.ts +9 -5
  12. package/dist/components/atoms/radio/index.d.ts +1 -0
  13. package/dist/components/atoms/skeleton/Contents.d.ts +2 -1
  14. package/dist/components/atoms/skeleton/Skeleton.d.ts +2 -1
  15. package/dist/components/atoms/slider/Slider.d.ts +3 -5
  16. package/dist/components/atoms/toggle/Toggle.d.ts +8 -23
  17. package/dist/components/atoms/toggle/index.d.ts +1 -0
  18. package/dist/components/atoms/tooltip/Tooltip.d.ts +1 -1
  19. package/dist/components/molecules/buttonGroup/ButtonGroup.d.ts +1 -1
  20. package/dist/components/molecules/calendar/Calendar.d.ts +1 -1
  21. package/dist/components/molecules/calendar/DatePickerHeader.d.ts +2 -1
  22. package/dist/components/molecules/calendar/DatePickerWrapper.d.ts +2 -1
  23. package/dist/components/molecules/dropdown/Dropdown.d.ts +6 -1
  24. package/dist/components/molecules/dropdown/menu/MenuItem.d.ts +1 -1
  25. package/dist/components/molecules/dropdown/menu/index.d.ts +1 -1
  26. package/dist/components/molecules/dropdown/toggleButton/Arrow.d.ts +2 -2
  27. package/dist/components/molecules/dropdown/toggleButton/Clear.d.ts +2 -1
  28. package/dist/components/molecules/dropdown/toggleButton/index.d.ts +2 -1
  29. package/dist/components/molecules/inputWithAction/InputWithAction.d.ts +14 -0
  30. package/dist/components/molecules/inputWithAction/index.d.ts +1 -0
  31. package/dist/components/molecules/modal/Modal.d.ts +20 -2
  32. package/dist/components/molecules/multiSelectDropdown/MultiSelectDropdown.d.ts +2 -1
  33. package/dist/components/molecules/multiSelectDropdown/menu/MenuItem.d.ts +2 -1
  34. package/dist/components/molecules/multiSelectDropdown/menu/index.d.ts +2 -1
  35. package/dist/components/molecules/multiSelectDropdown/toggleButton/Arrow.d.ts +2 -1
  36. package/dist/components/molecules/multiSelectDropdown/toggleButton/Clear.d.ts +2 -1
  37. package/dist/components/molecules/multiSelectDropdown/toggleButton/index.d.ts +2 -1
  38. package/dist/components/molecules/numberInput/NumberInput.d.ts +18 -0
  39. package/dist/components/molecules/numberInput/index.d.ts +1 -0
  40. package/dist/components/molecules/pagination/Pagination.d.ts +2 -1
  41. package/dist/components/molecules/searchInput/SearchInput.d.ts +1 -1
  42. package/dist/components/molecules/searchInput/filter/FilterPopover.d.ts +1 -1
  43. package/dist/components/molecules/searchInput/filter/index.d.ts +1 -1
  44. package/dist/components/molecules/table/Colgroup.d.ts +2 -1
  45. package/dist/components/molecules/table/Table.d.ts +2 -1
  46. package/dist/components/molecules/table/body/BinButtonTd.d.ts +2 -1
  47. package/dist/components/molecules/table/body/ChartButtonTd.d.ts +2 -1
  48. package/dist/components/molecules/table/body/CheckboxTd.d.ts +3 -1
  49. package/dist/components/molecules/table/body/EmptyTr.d.ts +1 -1
  50. package/dist/components/molecules/table/body/KebabMenuTd.d.ts +1 -1
  51. package/dist/components/molecules/table/body/RadioTd.d.ts +3 -1
  52. package/dist/components/molecules/table/body/Tr.d.ts +2 -1
  53. package/dist/components/molecules/table/body/index.d.ts +2 -1
  54. package/dist/components/molecules/table/header/FilterButtonsTh.d.ts +2 -1
  55. package/dist/components/molecules/table/header/FilterTh.d.ts +1 -1
  56. package/dist/components/molecules/table/header/SortableColumn.d.ts +2 -8
  57. package/dist/components/molecules/table/header/index.d.ts +1 -1
  58. package/dist/components/molecules/table/types.d.ts +7 -0
  59. package/dist/components/molecules/tabs/Tab.d.ts +12 -0
  60. package/dist/components/molecules/tabs/Tabs.d.ts +21 -0
  61. package/dist/components/molecules/tabs/TabsContext.d.ts +4 -0
  62. package/dist/components/molecules/tabs/index.d.ts +2 -0
  63. package/dist/components/molecules/tagInput/TagInput.d.ts +22 -0
  64. package/dist/components/molecules/tagInput/index.d.ts +2 -0
  65. package/dist/components/molecules/toast/Details.d.ts +3 -2
  66. package/dist/components/molecules/toast/DetailsItem.d.ts +6 -0
  67. package/dist/components/molecules/toast/Toast.d.ts +5 -21
  68. package/dist/components/molecules/toast/ToastContext.d.ts +2 -2
  69. package/dist/components/molecules/toast/ToastStyle.d.ts +4 -2
  70. package/dist/components/molecules/toast/index.d.ts +2 -0
  71. package/dist/components/molecules/toast/types.d.ts +1 -4
  72. package/dist/components/styleProvider/StyleProvider.d.ts +7 -3
  73. package/dist/constants/color.d.ts +352 -0
  74. package/dist/constants/input.d.ts +2 -0
  75. package/dist/constants/toast.d.ts +2 -0
  76. package/dist/enums/color.d.ts +113 -6
  77. package/dist/enums/size.d.ts +5 -2
  78. package/dist/enums/variant.d.ts +7 -2
  79. package/dist/fonts.js +1 -1
  80. package/dist/hooks/useColor.d.ts +2 -1
  81. package/dist/index.d.ts +9 -0
  82. package/dist/index.js +1703 -616
  83. package/dist/types/color.d.ts +4 -0
  84. package/dist/types/input.d.ts +7 -0
  85. package/dist/types/radio.d.ts +12 -0
  86. package/dist/types/tabs.d.ts +12 -0
  87. package/dist/types/toast.d.ts +29 -0
  88. package/dist/types/toggle.d.ts +5 -0
  89. package/package.json +35 -7
  90. package/mise.toml +0 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,51 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.0.2](https://github.com/42maru-ai/maru-design2/compare/v3.0.1...v3.0.2) (2026-07-27)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * restore package ESM configuration ([40b766d](https://github.com/42maru-ai/maru-design2/commit/40b766d3d70c5ed97d2695d5bcd7d5324d0074eb))
9
+
10
+ ## [3.0.1](https://github.com/42maru-ai/maru-design2/compare/v3.0.0...v3.0.1) (2026-07-27)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * apply Pretendard globally in Storybook ([e30df92](https://github.com/42maru-ai/maru-design2/commit/e30df92466d50b1c32aad5da64411461338c4729))
16
+ * improve input styles and table filter ([94a4c57](https://github.com/42maru-ai/maru-design2/commit/94a4c573709b8a8fdffb3f255c0a097678ae218c))
17
+ * improve input styles and table filter ([fd8e0f8](https://github.com/42maru-ai/maru-design2/commit/fd8e0f82cf066b08c35f08c0e1aa0ca3d203aa5b))
18
+ * initialize table filter visibility ([52d35c3](https://github.com/42maru-ai/maru-design2/commit/52d35c3668d9ba7ccbe8a73322de21567d9103ee))
19
+ * keep table filter story empty ([33e35b8](https://github.com/42maru-ai/maru-design2/commit/33e35b885bc11baf3c40a249aba7dc227a3c9453))
20
+ * refine table header and toast details ([5992c77](https://github.com/42maru-ai/maru-design2/commit/5992c778a823e7fcf688bf99d4cc6e184c7ea08e))
21
+
22
+ ## [3.0.0](https://github.com/42maru-ai/maru-design2/compare/v2.32.0...v3.0.0) (2026-07-24)
23
+
24
+
25
+ ### ⚠ BREAKING CHANGES
26
+
27
+ * MaruDesign v3는 React 18과 ESM만 지원하며 React 17, CommonJS, 레거시 Badge 색상 및 Toggle API를 지원하지 않습니다.
28
+
29
+ ### Features
30
+
31
+ * MaruDesign v3 릴리즈 계약과 접근성 완성 ([20a44a0](https://github.com/42maru-ai/maru-design2/commit/20a44a04e03dc0a966796cdb08b5f266aea78b1e))
32
+ * update Badge and Chip for v3 sizes, icons, and states ([8723178](https://github.com/42maru-ai/maru-design2/commit/87231787052f9110bc22238ad8b3a2439454ab14))
33
+ * update Button for v3 variants, sizes, and custom icons ([2bb27b0](https://github.com/42maru-ai/maru-design2/commit/2bb27b0806005f674ef6f187589a4b5a18487f54))
34
+ * update design system components and add tabs ([dbbe235](https://github.com/42maru-ai/maru-design2/commit/dbbe235b770f9505124c1e6f10c02f619184181e))
35
+ * update Input for v3 and add related input molecules ([ab6df75](https://github.com/42maru-ai/maru-design2/commit/ab6df75cabd44008ce9f3111d82533c51b3abf76))
36
+
37
+
38
+ ### Bug Fixes
39
+
40
+ * align Button only-icon, Modal overlay, and TagInput with v3 ([389a89e](https://github.com/42maru-ai/maru-design2/commit/389a89e7fb50df659e6e6c209b7fc03e9a3a8254))
41
+
42
+ ## [2.32.0](https://github.com/42maru-ai/maru-design2/compare/v2.31.1...v2.32.0) (2026-07-13)
43
+
44
+
45
+ ### Features
46
+
47
+ * improve table interaction states and styling ([1a3c242](https://github.com/42maru-ai/maru-design2/commit/1a3c2423357b820aa583f7fdf533845821f90dea))
48
+
3
49
  ## [2.31.1](https://github.com/42maru-ai/maru-design2/compare/v2.31.0...v2.31.1) (2026-03-19)
4
50
 
5
51
 
@@ -1,11 +1,14 @@
1
1
  import React from 'react';
2
+ import { TBadgeSize } from '../../../enums/size';
2
3
  import { TBadgeColor, TBadgeVariant } from '../../../enums/variant';
4
+ import { IconProps } from '../icon';
3
5
  import './badge.scss';
4
6
  export interface BadgeProps {
5
7
  /**
6
- * 컴포넌트에 들어갈 내용
8
+ * 컴포넌트에 들어갈 내용.
9
+ * iconOnly(아이콘만)일 때는 생략할 수 있습니다.
7
10
  */
8
- children: React.ReactNode;
11
+ children?: React.ReactNode;
9
12
  /**
10
13
  * 배지 색상
11
14
  */
@@ -14,10 +17,44 @@ export interface BadgeProps {
14
17
  * 배지 스타일 변형
15
18
  */
16
19
  variant?: TBadgeVariant;
20
+ /**
21
+ * 사이즈. Figma sm/md/lg ↔ small/normal/large. 기본값 `normal`.
22
+ */
23
+ size?: TBadgeSize;
17
24
  className?: string;
18
25
  /**
19
26
  * 설정하면 X아이콘이 렌더링되고 클릭 이벤트가 할당됩니다.
20
27
  */
21
28
  onXIconClick?: () => void;
29
+ /**
30
+ * 마루 Icon 시작 아이콘. `customStartIcon`과 함께 넘기면 custom이 우선입니다.
31
+ */
32
+ startIcon?: IconProps;
33
+ /**
34
+ * 마루 Icon 끝 아이콘. `customEndIcon`과 함께 넘기면 custom이 우선입니다.
35
+ * `onXIconClick`이 있으면 X 버튼이 end 쪽에 렌더되고 이 prop은 무시됩니다.
36
+ */
37
+ endIcon?: IconProps;
38
+ /**
39
+ * 마루 Icon 외 커스텀 시작 아이콘(Lucide 등). `startIcon`보다 우선합니다.
40
+ */
41
+ customStartIcon?: React.ReactNode;
42
+ /**
43
+ * 마루 Icon 외 커스텀 끝 아이콘(Lucide 등). `endIcon`보다 우선합니다.
44
+ * `onXIconClick`이 있으면 무시됩니다.
45
+ */
46
+ customEndIcon?: React.ReactNode;
47
+ /**
48
+ * Figma `Icon=Dot`에 대응하는 상태점 표시 여부.
49
+ */
50
+ showDot?: boolean;
51
+ /**
52
+ * 비활성 상태. opacity 50% 적용.
53
+ */
54
+ disabled?: boolean;
55
+ /**
56
+ * X 아이콘 버튼의 접근성 레이블.
57
+ */
58
+ closeButtonAriaLabel?: string;
22
59
  }
23
- export declare function Badge({ children, color, variant, className, onXIconClick, }: BadgeProps): import("react/jsx-runtime").JSX.Element;
60
+ export declare function Badge({ children, color, variant, size, className, onXIconClick, startIcon, endIcon, customStartIcon, customEndIcon, showDot, disabled, closeButtonAriaLabel, }: BadgeProps): React.JSX.Element;
@@ -15,19 +15,35 @@ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElemen
15
15
  color?: TColor;
16
16
  /**
17
17
  * 사이즈 (@v1 kind)
18
+ * Figma `xxs`/`xs`/`sm`/`md`/`lg` ↔ `xxs`/`xs`/`small`/`normal`/`large`
19
+ * `xs`/`xxs`는 주로 icon-only용
18
20
  */
19
21
  size?: TButtonSize;
20
22
  /**
21
23
  * 모양 (@v1 kind)
24
+ * - `link` / `link-outline`: 컴팩트 텍스트·칩 (Round의 작은 버전이 아님)
25
+ * - `round`: pill shape 컨테이너
22
26
  */
23
27
  variant?: TButtonVariant;
24
28
  /**
25
29
  * 컴포넌트 시작점에 위치시킬 아이콘 (@v1 icon)
30
+ * `customStartIcon`과 함께 넘기면 custom이 우선이며 개발 환경에서 console.warn을 출력합니다.
26
31
  */
27
32
  startIcon?: IconProps;
28
33
  /**
29
34
  * 컴포넌트 끝점에 위치시킬 아이콘 (@v1 icon)
35
+ * `customEndIcon`과 함께 넘기면 custom이 우선이며 개발 환경에서 console.warn을 출력합니다.
30
36
  */
31
37
  endIcon?: IconProps;
38
+ /**
39
+ * 마루 Icon 외 커스텀 시작 아이콘 노드
40
+ * `startIcon`보다 우선합니다. 함께 넘기면 개발 환경에서 console.warn을 출력합니다.
41
+ */
42
+ customStartIcon?: React.ReactNode;
43
+ /**
44
+ * 마루 Icon 외 커스텀 끝 아이콘 노드
45
+ * `endIcon`보다 우선합니다. 함께 넘기면 개발 환경에서 console.warn을 출력합니다.
46
+ */
47
+ customEndIcon?: React.ReactNode;
32
48
  }
33
49
  export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { TColorValue } from '../../../types/color';
2
3
  import { TGap } from '../../../enums/gap';
3
4
  import { TCheckboxSize } from '../../../enums/size';
4
5
  import './checkbox.scss';
@@ -8,7 +9,7 @@ export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputE
8
9
  /**
9
10
  * (@v1 variant)
10
11
  */
11
- color?: string;
12
+ color?: TColorValue;
12
13
  /**
13
14
  * 컴포넌트와 라벨 사이의 거리
14
15
  */
@@ -2,18 +2,21 @@ import React from 'react';
2
2
  import { TColor } from '../../../enums/color';
3
3
  import { TChipSize } from '../../../enums/size';
4
4
  import { TChipVariant } from '../../../enums/variant';
5
+ import { IconProps } from '../icon';
5
6
  import './chip.scss';
6
7
  export interface ChipProps {
7
8
  /**
8
- * 컴포넌트에 들어갈 내용. number인 경우 천의 자리마다 컴마(,) 표시됨
9
+ * 컴포넌트에 들어갈 내용. number인 경우 천의 자리마다 컴마(,) 표시됨.
10
+ * iconOnly(아이콘만)일 때는 생략할 수 있습니다.
9
11
  */
10
- children: React.ReactNode | string | number;
12
+ children?: React.ReactNode | string | number;
11
13
  /**
12
14
  * (@v1 variant)
13
15
  */
14
16
  color?: TColor;
15
17
  /**
16
18
  * (@v1 kind)
19
+ * Figma sm/md/lg ↔ small/normal/large
17
20
  */
18
21
  size?: TChipSize;
19
22
  /**
@@ -25,5 +28,35 @@ export interface ChipProps {
25
28
  * 설정하면 X아이콘 생기며, 해당 아이콘에 클릭 이벤트를 할당함.
26
29
  */
27
30
  onXIconClick?: () => void;
31
+ /**
32
+ * 마루 Icon 시작 아이콘. `customStartIcon`과 함께 넘기면 custom이 우선입니다.
33
+ */
34
+ startIcon?: IconProps;
35
+ /**
36
+ * 마루 Icon 끝 아이콘. `customEndIcon`과 함께 넘기면 custom이 우선입니다.
37
+ * `onXIconClick`이 있으면 X 버튼이 end 쪽에 렌더되고 이 prop은 무시됩니다.
38
+ */
39
+ endIcon?: IconProps;
40
+ /**
41
+ * 마루 Icon 외 커스텀 시작 아이콘(Lucide 등). `startIcon`보다 우선합니다.
42
+ */
43
+ customStartIcon?: React.ReactNode;
44
+ /**
45
+ * 마루 Icon 외 커스텀 끝 아이콘(Lucide 등). `endIcon`보다 우선합니다.
46
+ * `onXIconClick`이 있으면 무시됩니다.
47
+ */
48
+ customEndIcon?: React.ReactNode;
49
+ /**
50
+ * Figma `Icon=Dot`에 대응하는 상태점 표시 여부.
51
+ */
52
+ showDot?: boolean;
53
+ /**
54
+ * 비활성 상태. opacity 50% 적용.
55
+ */
56
+ disabled?: boolean;
57
+ /**
58
+ * X 아이콘 버튼의 접근성 레이블.
59
+ */
60
+ closeButtonAriaLabel?: string;
28
61
  }
29
- export declare function Chip({ children, color, size, variant, className, onXIconClick, }: ChipProps): import("react/jsx-runtime").JSX.Element;
62
+ export declare function Chip({ children, color, size, variant, className, onXIconClick, startIcon, endIcon, customStartIcon, customEndIcon, showDot, disabled, closeButtonAriaLabel, }: ChipProps): React.JSX.Element;
@@ -1,7 +1,8 @@
1
+ import React from 'react';
1
2
  import 'highlight.js/styles/a11y-light.css';
2
3
  import './code.scss';
3
4
  export interface CodeProps {
4
5
  value: string;
5
6
  copyable?: boolean;
6
7
  }
7
- export declare function Code({ value, copyable }: CodeProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function Code({ value, copyable }: CodeProps): React.JSX.Element;
@@ -1,3 +1,5 @@
1
+ import React from 'react';
2
+ import type { TColorValue } from '../../../types/color';
1
3
  import { TIcons } from './iconmap';
2
4
  export interface IconProps {
3
5
  /**
@@ -7,10 +9,10 @@ export interface IconProps {
7
9
  /**
8
10
  * primary, secondary, positive, warning, danger + rgb. (@v1 fill)
9
11
  */
10
- color?: string;
12
+ color?: TColorValue;
11
13
  /**
12
14
  * primary, secondary, positive, warning, danger + rgb. (@v1 fill)
13
15
  */
14
- hoverColor?: string;
16
+ hoverColor?: TColorValue;
15
17
  }
16
- export declare function Icon({ name, color, hoverColor }: IconProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function Icon({ name, color, hoverColor }: IconProps): React.JSX.Element;
@@ -45,6 +45,7 @@ export declare const ICONS: {
45
45
  readonly AlertTriangle_s1615: "AlertTriangle_s1615";
46
46
  readonly ArrowCross_s1613: "ArrowCross_s1613";
47
47
  readonly ArrowDownCircle_s1413: "ArrowDownCircle_s1413";
48
+ readonly ArrowDown_s1215: "ArrowDown_s1215";
48
49
  readonly ArrowLeftIn_s1613: "ArrowLeftIn_s1613";
49
50
  readonly ArrowLeftOut_s1810: "ArrowLeftOut_s1810";
50
51
  readonly ArrowLeft_s1613: "ArrowLeft_s1613";
@@ -56,6 +57,7 @@ export declare const ICONS: {
56
57
  readonly ArrowRight_s1613: "ArrowRight_s1613";
57
58
  readonly ArrowRight_s1813: "ArrowRight_s1813";
58
59
  readonly ArrowRight_s2420: "ArrowRight_s2420";
60
+ readonly ArrowUp_s1215: "ArrowUp_s1215";
59
61
  readonly Atom01_s1615: "Atom01_s1615";
60
62
  readonly BackToLines_s1615: "BackToLines_s1615";
61
63
  readonly BagSetting_s2415: "BagSetting_s2415";
@@ -118,6 +120,7 @@ export declare const ICONS: {
118
120
  readonly ChevronRight_s1615: "ChevronRight_s1615";
119
121
  readonly ChevronRight_s2020: "ChevronRight_s2020";
120
122
  readonly ChevronRight_s2420: "ChevronRight_s2420";
123
+ readonly ChevronSelectorVertical_s1215: "ChevronSelectorVertical_s1215";
121
124
  readonly ChevronSelectorVertical_s2020: "ChevronSelectorVertical_s2020";
122
125
  readonly ChevronUp_s1613: "ChevronUp_s1613";
123
126
  readonly ChevronUp_s1615: "ChevronUp_s1615";
@@ -318,6 +321,7 @@ export declare const ICONS: {
318
321
  readonly PlusDownLines_s1413: "PlusDownLines_s1413";
319
322
  readonly PlusLines_s1210: "PlusLines_s1210";
320
323
  readonly PlusUpLines_s1413: "PlusUpLines_s1413";
324
+ readonly Plus_s1210: "Plus_s1210";
321
325
  readonly Plus_s1610: "Plus_s1610";
322
326
  readonly PreviewEye_s1413: "PreviewEye_s1413";
323
327
  readonly PreviewLine_s2013: "PreviewLine_s2013";
@@ -10,6 +10,10 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
10
10
  message?: string;
11
11
  };
12
12
  label?: string;
13
+ /**
14
+ * 인풋 하단에 표시할 도움말
15
+ */
16
+ helperText?: React.ReactNode;
13
17
  /**
14
18
  * 데이터 타입
15
19
  */
@@ -39,5 +43,9 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
39
43
  * true이면 placeholder가 없어지지 않음
40
44
  */
41
45
  persistentPlaceholder?: boolean;
46
+ /**
47
+ * 입력값에서 feature highlight 색상으로 강조할 문자열
48
+ */
49
+ highlightText?: string;
42
50
  }
43
51
  export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
@@ -16,4 +16,4 @@ export interface PopoverProps {
16
16
  portal?: boolean;
17
17
  className?: string;
18
18
  }
19
- export declare function Popover({ anchorEl, children, open, className, direction, onClose, portal, }: PopoverProps): import("react/jsx-runtime").JSX.Element | null;
19
+ export declare function Popover({ anchorEl, children, open, className, direction, onClose, portal, }: PopoverProps): React.JSX.Element | null;
@@ -1,23 +1,27 @@
1
1
  import React from 'react';
2
+ import { TRadioGap, TRadioSize } from '../../../types/radio';
2
3
  import { TRadioColor } from '../../../enums/color';
3
- import { TGap } from '../../../enums/gap';
4
4
  import './radio.scss';
5
- export interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'checked' | 'type'> {
5
+ export interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'checked' | 'size' | 'type'> {
6
6
  /**
7
7
  * 라디오 토글의 값
8
8
  */
9
9
  checked?: boolean;
10
10
  /**
11
- * 기본 회색, 메인 테마색 ['primary']
11
+ * 메인 테마색, 기존 회색 ['default']
12
12
  */
13
13
  color?: TRadioColor;
14
14
  /**
15
- * 컴포넌트와 라벨 사이의 거리. ['8px', '4px', '2px']
15
+ * 컴포넌트와 라벨 사이의 거리. ['8px', '6px', '4px', '2px']
16
16
  */
17
- gap?: TGap;
17
+ gap?: TRadioGap;
18
18
  /**
19
19
  * 라디오 버튼 옆 문자 내용
20
20
  */
21
21
  label?: string;
22
+ /**
23
+ * 라디오 버튼 크기
24
+ */
25
+ size?: TRadioSize;
22
26
  }
23
27
  export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>;
@@ -1 +1,2 @@
1
1
  export * from './Radio';
2
+ export { TRadioGap, TRadioSize } from '../../../types/radio';
@@ -1 +1,2 @@
1
- export default function Contents(): import("react/jsx-runtime").JSX.Element;
1
+ import React from 'react';
2
+ export default function Contents(): React.JSX.Element;
@@ -1,6 +1,7 @@
1
+ import React from 'react';
1
2
  import { TSkeletonVariant } from '../../../enums/variant';
2
3
  import './skeleton.scss';
3
4
  export interface SkeletonProps {
4
5
  variant: TSkeletonVariant;
5
6
  }
6
- export declare function Skeleton({ variant }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function Skeleton({ variant }: SkeletonProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { TColor } from '../../../enums/color';
2
3
  import './slider.scss';
3
4
  export interface SliderProps {
@@ -26,13 +27,10 @@ export interface SliderProps {
26
27
  */
27
28
  step?: number;
28
29
  /**
29
- * 값 표시 여부
30
+ * 포인터 위에 현재 값 표시 여부
30
31
  */
31
32
  showValue?: boolean;
32
33
  disabled?: boolean;
33
34
  className?: string;
34
35
  }
35
- /**
36
- * showValue에 관한 글: showValue가 true면 기존 input에 있는 thumb를 숨기고 custom thumb를 보여준다.
37
- */
38
- export declare function Slider({ value, onChange, color, min, max, step, showValue, disabled, className, }: SliderProps): import("react/jsx-runtime").JSX.Element;
36
+ export declare function Slider({ value, onChange, color, min, max, step, showValue, disabled, className, }: SliderProps): React.JSX.Element;
@@ -1,31 +1,16 @@
1
- import { TColor } from '../../../enums/color';
1
+ import React from 'react';
2
+ import type { TToggleSize } from '../../../types/toggle';
2
3
  import './toggle.scss';
3
- export interface ToggleProps {
4
+ export interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'checked' | 'onChange' | 'size' | 'type'> {
4
5
  checked: boolean;
5
6
  onChange: (checked: boolean) => void;
6
- className?: string;
7
7
  /**
8
- * ['primary', 'secondary', 'positive', 'warning', 'danger']. (@v1 variant)
8
+ * 토글 오른쪽에 표시할 텍스트
9
9
  */
10
- color?: TColor;
10
+ text?: string;
11
11
  /**
12
- * 비활성화 여부
12
+ * 토글 크기
13
13
  */
14
- disabled?: boolean;
15
- /**
16
- * 텍스트가 있는 토글.
17
- */
18
- text?: {
19
- left?: string;
20
- right?: string;
21
- };
22
- /**
23
- * 토글 아이콘 표시 여부
24
- */
25
- showIcon?: boolean;
26
- /**
27
- * 토글 크기 배율 (기본값: 1)
28
- */
29
- scale?: number;
14
+ size?: TToggleSize;
30
15
  }
31
- export declare function Toggle({ checked, onChange, className, color, disabled, text, showIcon, scale, }: ToggleProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function Toggle({ checked, onChange, className, disabled, text, size, ...props }: ToggleProps): React.JSX.Element;
@@ -1 +1,2 @@
1
1
  export * from './Toggle';
2
+ export { TToggleSize } from '../../../types/toggle';
@@ -26,4 +26,4 @@ export interface TooltipProps {
26
26
  */
27
27
  gap?: TTooltipGap;
28
28
  }
29
- export declare function Tooltip({ children, content, className, hidden, direction, portal, gap, }: TooltipProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare function Tooltip({ children, content, className, hidden, direction, portal, gap, }: TooltipProps): React.JSX.Element;
@@ -53,4 +53,4 @@ export interface ButtonGroupProps<T extends string> {
53
53
  disabled?: boolean;
54
54
  className?: string;
55
55
  }
56
- export declare function ButtonGroup<T extends string>({ value, onChange, buttons, variant, size, disabled, className, }: ButtonGroupProps<T>): import("react/jsx-runtime").JSX.Element;
56
+ export declare function ButtonGroup<T extends string>({ value, onChange, buttons, variant, size, disabled, className, }: ButtonGroupProps<T>): React.JSX.Element;
@@ -24,4 +24,4 @@ export interface CalendarProps {
24
24
  onSaveClick: (startDate?: string, endDate?: string) => void;
25
25
  className?: string;
26
26
  }
27
- export declare function Calendar({ children, minStartDate, saveButtonContent, onSaveClick, className, }: CalendarProps): import("react/jsx-runtime").JSX.Element;
27
+ export declare function Calendar({ children, minStartDate, saveButtonContent, onSaveClick, className, }: CalendarProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { ReactDatePickerCustomHeaderProps } from 'react-datepicker';
2
- declare function DatePickerHeader({ date, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, }: ReactDatePickerCustomHeaderProps): import("react/jsx-runtime").JSX.Element;
3
+ declare function DatePickerHeader({ date, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, }: ReactDatePickerCustomHeaderProps): React.JSX.Element;
3
4
  export default DatePickerHeader;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import 'react-datepicker/dist/react-datepicker.css';
2
3
  interface Props {
3
4
  minStartDate?: Date | null;
@@ -5,5 +6,5 @@ interface Props {
5
6
  onSaveClick: (startDate?: string, endDate?: string) => void;
6
7
  setOpen: (open: boolean) => void;
7
8
  }
8
- declare function DatePickerWrapper({ minStartDate, saveButtonContent, onSaveClick, setOpen, }: Props): import("react/jsx-runtime").JSX.Element;
9
+ declare function DatePickerWrapper({ minStartDate, saveButtonContent, onSaveClick, setOpen, }: Props): React.JSX.Element;
9
10
  export default DatePickerWrapper;
@@ -62,6 +62,11 @@ interface DropdownProps<T extends Record<string, any>> {
62
62
  * 메뉴 세로 크기(px) (@v1 menuPosition.height)
63
63
  */
64
64
  height?: number;
65
+ /**
66
+ * 텍스트와 화살표(아이콘) 사이 간격(px)
67
+ * @default 8
68
+ */
69
+ gap?: number;
65
70
  /**
66
71
  * 드롭다운 토글 버튼 사용자 정의 노드. (@v1 toggleChildren)
67
72
  */
@@ -86,5 +91,5 @@ interface DropdownProps<T extends Record<string, any>> {
86
91
  onClick: () => void;
87
92
  };
88
93
  }
89
- export declare function Dropdown<T extends Record<string, any>>({ data, selectedId, onSelect, idKey, displayKey, className, placeholder, searchPlaceholder, disabled, color, stopPropagation, type, errorMessage, label, onClear, noDataMessage, noResultMessage, width, height, customButton, customMenuItem, anchorEl, menuBottomButton, }: DropdownProps<T>): import("react/jsx-runtime").JSX.Element;
94
+ export declare function Dropdown<T extends Record<string, any>>({ data, selectedId, onSelect, idKey, displayKey, className, placeholder, searchPlaceholder, disabled, color, stopPropagation, type, errorMessage, label, onClear, noDataMessage, noResultMessage, width, height, gap, customButton, customMenuItem, anchorEl, menuBottomButton, }: DropdownProps<T>): React.JSX.Element;
90
95
  export {};
@@ -12,5 +12,5 @@ interface Props<T extends Record<string, any>> {
12
12
  }) => JSX.Element;
13
13
  onClose: () => void;
14
14
  }
15
- declare function MenuItem<T extends Record<string, any>>({ item, selectedId, onSelect, idKey, displayKey, width, customMenuItem: CustomMenuItem, onClose, }: Props<T>): import("react/jsx-runtime").JSX.Element;
15
+ declare function MenuItem<T extends Record<string, any>>({ item, selectedId, onSelect, idKey, displayKey, width, customMenuItem: CustomMenuItem, onClose, }: Props<T>): React.JSX.Element;
16
16
  export default MenuItem;
@@ -27,5 +27,5 @@ interface Props<T extends Record<string, any>> {
27
27
  onClick: () => void;
28
28
  };
29
29
  }
30
- declare function DropdownMenu<T extends Record<string, any>>({ data, selectedId, onSelect, idKey, displayKey, color, searchPlaceholder, noDataMessage, noResultMessage, width, height, customMenuItem, isSearch, parent, open, onClose, menuBottomButton, }: Props<T>): import("react/jsx-runtime").JSX.Element;
30
+ declare function DropdownMenu<T extends Record<string, any>>({ data, selectedId, onSelect, idKey, displayKey, color, searchPlaceholder, noDataMessage, noResultMessage, width, height, customMenuItem, isSearch, parent, open, onClose, menuBottomButton, }: Props<T>): React.JSX.Element;
31
31
  export default DropdownMenu;
@@ -1,9 +1,9 @@
1
+ import React from 'react';
1
2
  import { TColor } from '../../../../enums/color';
2
3
  interface Props {
3
4
  open: boolean;
4
- focus: boolean;
5
5
  color: TColor;
6
6
  disabled?: boolean;
7
7
  }
8
- declare function Arrow({ open, focus, color, disabled }: Props): import("react/jsx-runtime").JSX.Element;
8
+ declare function Arrow({ open, color, disabled }: Props): React.JSX.Element;
9
9
  export default Arrow;
@@ -1,6 +1,7 @@
1
+ import React from 'react';
1
2
  interface Props {
2
3
  focus: boolean;
3
4
  onClear: () => void;
4
5
  }
5
- declare function Clear({ focus, onClear }: Props): import("react/jsx-runtime").JSX.Element;
6
+ declare function Clear({ focus, onClear }: Props): React.JSX.Element;
6
7
  export default Clear;
@@ -7,6 +7,7 @@ interface Props<T extends Record<string, any>> {
7
7
  color: TColor;
8
8
  stopPropagation?: boolean;
9
9
  width?: number;
10
+ gap: number;
10
11
  customButton?: React.ReactNode;
11
12
  open: boolean;
12
13
  selected: T | undefined;
@@ -15,5 +16,5 @@ interface Props<T extends Record<string, any>> {
15
16
  onClear: () => void;
16
17
  onClick: () => void;
17
18
  }
18
- declare function DropdownToggleButton<T extends Record<string, any>>({ displayKey, placeholder, disabled, color, stopPropagation, width, customButton, open, selected, errored, hasClearBtn, onClear, onClick, }: Props<T>): import("react/jsx-runtime").JSX.Element;
19
+ declare function DropdownToggleButton<T extends Record<string, any>>({ displayKey, placeholder, disabled, color, stopPropagation, width, gap, customButton, open, selected, errored, hasClearBtn, onClear, onClick, }: Props<T>): React.JSX.Element;
19
20
  export default DropdownToggleButton;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { InputProps } from '../../atoms/input';
3
+ import './input-with-action.scss';
4
+ export interface InputWithActionProps extends InputProps {
5
+ /** 우측 액션 버튼 내용 */
6
+ actionContent: React.ReactNode;
7
+ /** 우측 액션 버튼 클릭 이벤트 */
8
+ onAction: () => void;
9
+ /** 액션 버튼만 별도로 비활성화할지 여부 */
10
+ actionDisabled?: boolean;
11
+ /** 액션 버튼의 접근성 이름 */
12
+ actionAriaLabel?: string;
13
+ }
14
+ export declare const InputWithAction: React.ForwardRefExoticComponent<InputWithActionProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1 @@
1
+ export * from './InputWithAction';
@@ -7,7 +7,12 @@ export interface ModalProps {
7
7
  onClose: () => void;
8
8
  open: boolean;
9
9
  /**
10
- * 배경 클릭 컴포넌트 닫히는지 여부. (@v1 backdropOff)
10
+ * 제목이 없는 모달의 접근성 이름
11
+ */
12
+ ariaLabel?: string;
13
+ /**
14
+ * 배경에서 누르고 뗄 때 컴포넌트 닫히는지 여부. (@v1 backdropOff)
15
+ * 모달 안에서 시작해 바깥에서 떼는 드래그는 닫히지 않습니다.
11
16
  */
12
17
  backdrop?: boolean;
13
18
  /**
@@ -18,14 +23,27 @@ export interface ModalProps {
18
23
  disabled?: boolean;
19
24
  };
20
25
  className?: string;
26
+ /**
27
+ * 닫기 아이콘 버튼의 접근성 이름
28
+ */
29
+ closeButtonAriaLabel?: string;
21
30
  /**
22
31
  * 엔터키 비활성화 여부. (@v1 disableEnterKeyDown)
23
32
  */
24
33
  disabledEnter?: boolean;
34
+ /**
35
+ * true면 푸터 버튼이 하단 너비를 반반 차지합니다. 기본은 우측 정렬입니다.
36
+ */
37
+ fullFooter?: boolean;
25
38
  /**
26
39
  * 모달 닫기 버튼 숨김 여부. (@v1 hasCloseButton)
27
40
  */
28
41
  hiddenCloseButton?: boolean;
42
+ /**
43
+ * 타이틀 위 아이콘. 없으면 타이틀이 최상단입니다.
44
+ * Modal은 테두리 박스와 내부 사이즈만 담당하고, 아이콘 노드는 소비자가 넘깁니다.
45
+ */
46
+ icon?: React.ReactNode;
29
47
  /**
30
48
  * 모달 확인버튼 설정 (@v1 confirmButton)
31
49
  */
@@ -45,4 +63,4 @@ export interface ModalProps {
45
63
  */
46
64
  subTitle?: React.ReactNode;
47
65
  }
48
- export declare function Modal({ children, onClose, open, backdrop, cancelButton, className, disabledEnter, hiddenCloseButton, okButton, size, title, subTitle, }: ModalProps): import("react/jsx-runtime").JSX.Element;
66
+ export declare function Modal({ children, onClose, open, ariaLabel, backdrop, cancelButton, className, closeButtonAriaLabel, disabledEnter, fullFooter, hiddenCloseButton, icon, okButton, size, title, subTitle, }: ModalProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { TColor } from '../../../enums/color';
2
3
  import { TDropdownType } from '../../../enums/type';
3
4
  import './multi-select-dropdown.scss';
@@ -73,4 +74,4 @@ export interface MultiSelectDropdownProps<T extends Record<string, any>> {
73
74
  */
74
75
  anchorEl?: HTMLElement | null;
75
76
  }
76
- export declare function MultiSelectDropdown<T extends Record<string, any>>({ data, selectedIds, onSelect, idKey, displayKey, content, className, placeholder, searchPlaceholder, disabled, color, stopPropagation, type, errorMessage, label, allCheckLabel, onClear, noDataMessage, noResultMessage, width, height, anchorEl, }: MultiSelectDropdownProps<T>): import("react/jsx-runtime").JSX.Element;
77
+ export declare function MultiSelectDropdown<T extends Record<string, any>>({ data, selectedIds, onSelect, idKey, displayKey, content, className, placeholder, searchPlaceholder, disabled, color, stopPropagation, type, errorMessage, label, allCheckLabel, onClear, noDataMessage, noResultMessage, width, height, anchorEl, }: MultiSelectDropdownProps<T>): React.JSX.Element;