maru_design2 2.20.3 → 2.21.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.21.0](https://github.com/42maru-ai/maru-design2/compare/v2.20.4...v2.21.0) (2025-02-03)
4
+
5
+
6
+ ### Features
7
+
8
+ * :sparkles: Color - ADD llm studio theme color ([c78fca8](https://github.com/42maru-ai/maru-design2/commit/c78fca8cbf53171d61da99ecd70fe3bad7f3d9b5))
9
+ * :sparkles: SearchInput - add filter [#430](https://github.com/42maru-ai/maru-design2/issues/430) ([6df679c](https://github.com/42maru-ai/maru-design2/commit/6df679c2979b23c5d5548c7025837203936bc736))
10
+ * :sparkles: Table - add selectedRow.scrollIntoView [#131](https://github.com/42maru-ai/maru-design2/issues/131) ([2694bd5](https://github.com/42maru-ai/maru-design2/commit/2694bd51e577cf7e03550c15f1d51d46ef974e3d))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * :art: Input - UPDATE type=number checking [#415](https://github.com/42maru-ai/maru-design2/issues/415) ([25a605d](https://github.com/42maru-ai/maru-design2/commit/25a605d716724aa367bdd825a60118ea0a008cab))
16
+ * :art: Slider - UPDATE handleSliderChange ([b5feb97](https://github.com/42maru-ai/maru-design2/commit/b5feb97cf73a6da683f86816cc8edad330e3a724))
17
+ * :art: Table - Refactor td ([c4133a5](https://github.com/42maru-ai/maru-design2/commit/c4133a518f10f669a5c021e3ab721b7db07fea55))
18
+ * :bento: Icon - add filter icon ([9e6a9d1](https://github.com/42maru-ai/maru-design2/commit/9e6a9d1ad26d4974f75193b8bd9e27b46c9cd9e9))
19
+ * :bento: Icon - add icons [#402](https://github.com/42maru-ai/maru-design2/issues/402) ([8857840](https://github.com/42maru-ai/maru-design2/commit/8857840121ffbc7b55fbe2a2fd2662d3c178a3c7))
20
+ * :bento: Icon - ADD icons [#402](https://github.com/42maru-ai/maru-design2/issues/402) ([eaea048](https://github.com/42maru-ai/maru-design2/commit/eaea0484f6e84049d90b3a2547576d034e85aa93))
21
+ * :bug: Input - UPDATE clear btn to number type ([8578045](https://github.com/42maru-ai/maru-design2/commit/85780453541e75ac672308f468cf095e934ceed6))
22
+ * :bug: Input - UPDATE number type logic ([669c5dc](https://github.com/42maru-ai/maru-design2/commit/669c5dcb0cd834cebe64bf24a99f36f5c1bab4ea))
23
+ * :bug: Table - update tr hover logic [#277](https://github.com/42maru-ai/maru-design2/issues/277) ([4eafc9e](https://github.com/42maru-ai/maru-design2/commit/4eafc9e6ae0562e544bdfcf9f928d96fbf1e2096))
24
+ * :lipstick: SearchInput - update filter style ([cd06122](https://github.com/42maru-ai/maru-design2/commit/cd06122d7c5c0c2de6023437abc609148fbf8274))
25
+ * :lipstick: SearchInput - update popover border radius ([9522925](https://github.com/42maru-ai/maru-design2/commit/95229254a1a551a835d97697ab67383a4603a9a4))
26
+ * :lipstick: Table - Update chart button style ([6dc3bed](https://github.com/42maru-ai/maru-design2/commit/6dc3bed39f2a8b261607912e6192fcc56485c7cd))
27
+ * :truck: Table - Rename arrow to chart button ([d593857](https://github.com/42maru-ai/maru-design2/commit/d593857d0a9387034e2f9e9fe59a1f514fd9626c))
28
+ * :twisted_rightwards_arrows: Icon - resolve conflicts ([ff43b3c](https://github.com/42maru-ai/maru-design2/commit/ff43b3cb7eadcd7e7ca23ac2ffd8cfd94125aa1c))
29
+
30
+ ## [2.20.4](https://github.com/42maru-ai/maru-design2/compare/v2.20.3...v2.20.4) (2025-01-21)
31
+
32
+
33
+ ### Bug Fixes
34
+
35
+ * :lipstick: add disabled to MultiSelectDropdown ([034ec2f](https://github.com/42maru-ai/maru-design2/commit/034ec2f2d3a0061c2227fcec2d2c46625b104f3b))
36
+
3
37
  ## [2.20.3](https://github.com/42maru-ai/maru-design2/compare/v2.20.2...v2.20.3) (2025-01-21)
4
38
 
5
39
 
@@ -51,6 +51,8 @@ export declare const ICONS: {
51
51
  readonly BarChart10_s2420: "BarChart10_s2420";
52
52
  readonly BarChart12_s2420: "BarChart12_s2420";
53
53
  readonly BarChart20_s1613: "BarChart20_s1613";
54
+ readonly BarChartSquare01Bg_s1810: "BarChartSquare01Bg_s1810";
55
+ readonly BarChartSquare01_s1810: "BarChartSquare01_s1810";
54
56
  readonly BarChartSquare01_s2420: "BarChartSquare01_s2420";
55
57
  readonly BarChartSquare02_s2420: "BarChartSquare02_s2420";
56
58
  readonly BookClosed_s2420: "BookClosed_s2420";
@@ -140,6 +142,7 @@ export declare const ICONS: {
140
142
  readonly Dataflow04_s2415: "Dataflow04_s2415";
141
143
  readonly Dataflow05_s1815: "Dataflow05_s1815";
142
144
  readonly Diagram_s2014: "Diagram_s2014";
145
+ readonly Diagram_s2415: "Diagram_s2415";
143
146
  readonly Dotpoints01_s2420: "Dotpoints01_s2420";
144
147
  readonly DotsGrid_s1815: "DotsGrid_s1815";
145
148
  readonly DotsGrid_s2420: "DotsGrid_s2420";
@@ -187,14 +190,18 @@ export declare const ICONS: {
187
190
  readonly File_s2420: "File_s2420";
188
191
  readonly File_s3020: "File_s3020";
189
192
  readonly FilterLines_s1815: "FilterLines_s1815";
193
+ readonly Filter_s1613: "Filter_s1613";
190
194
  readonly FolderSetting_s2013: "FolderSetting_s2013";
195
+ readonly FolderSetting_s2415: "FolderSetting_s2415";
191
196
  readonly FolderUpload_s1615: "FolderUpload_s1615";
192
197
  readonly FolderUpload_s1815: "FolderUpload_s1815";
193
198
  readonly FolderUpload_s2420: "FolderUpload_s2420";
194
199
  readonly Folder_s1810: "Folder_s1810";
200
+ readonly Folder_s1815: "Folder_s1815";
195
201
  readonly Folder_s2415: "Folder_s2415";
196
202
  readonly Folder_s2420: "Folder_s2420";
197
203
  readonly Folder_s2820: "Folder_s2820";
204
+ readonly Folders_s1815: "Folders_s1815";
198
205
  readonly Globe01_s1615: "Globe01_s1615";
199
206
  readonly GraduationHat01_s1615: "GraduationHat01_s1615";
200
207
  readonly GraduationHat01_s2415: "GraduationHat01_s2415";
@@ -204,6 +211,7 @@ export declare const ICONS: {
204
211
  readonly Home_s2415: "Home_s2415";
205
212
  readonly Information_s1410: "Information_s1410";
206
213
  readonly Information_s1610: "Information_s1610";
214
+ readonly Information_s2015: "Information_s2015";
207
215
  readonly LineChartDown01_s2420: "LineChartDown01_s2420";
208
216
  readonly Loading02_s1415: "Loading02_s1415";
209
217
  readonly Loading02_s1615: "Loading02_s1615";
@@ -245,7 +253,9 @@ export declare const ICONS: {
245
253
  readonly PlusUpLines_s1413: "PlusUpLines_s1413";
246
254
  readonly Plus_s1610: "Plus_s1610";
247
255
  readonly PreviewLine_s2013: "PreviewLine_s2013";
256
+ readonly PreviewLine_s2415: "PreviewLine_s2415";
248
257
  readonly PreviewZoom_s2013: "PreviewZoom_s2013";
258
+ readonly PreviewZoom_s2415: "PreviewZoom_s2415";
249
259
  readonly Preview_s1413: "Preview_s1413";
250
260
  readonly QuestionCircleBg_s1610: "QuestionCircleBg_s1610";
251
261
  readonly RefreshCcw02_s1415: "RefreshCcw02_s1415";
@@ -257,6 +267,7 @@ export declare const ICONS: {
257
267
  readonly RefreshCw02_s1615: "RefreshCw02_s1615";
258
268
  readonly ReverseLeft2_s1613: "ReverseLeft2_s1613";
259
269
  readonly ReverseLeft_s1815: "ReverseLeft_s1815";
270
+ readonly ReverseRight2Circle_s1413: "ReverseRight2Circle_s1413";
260
271
  readonly SaveAll_s1810: "SaveAll_s1810";
261
272
  readonly SaveAll_s1812: "SaveAll_s1812";
262
273
  readonly Save_s1413: "Save_s1413";
@@ -282,6 +293,7 @@ export declare const ICONS: {
282
293
  readonly SwitchHorizontal02_s1615: "SwitchHorizontal02_s1615";
283
294
  readonly Title_s2420: "Title_s2420";
284
295
  readonly Toggle_s2013: "Toggle_s2013";
296
+ readonly Toggle_s2415: "Toggle_s2415";
285
297
  readonly Tool_s1413: "Tool_s1413";
286
298
  readonly Transform_s1815: "Transform_s1815";
287
299
  readonly Trash01_s1413: "Trash01_s1413";
@@ -0,0 +1,31 @@
1
+ import { TColor } from '../../../enums/color';
2
+ import './slider.scss';
3
+ export interface SliderProps {
4
+ /**
5
+ * 현재 값
6
+ */
7
+ value: number;
8
+ /**
9
+ * 값이 변경될 때 호출되는 함수
10
+ */
11
+ onChange: (value: number) => void;
12
+ /**
13
+ * 색상
14
+ */
15
+ color?: TColor;
16
+ /**
17
+ * 최소값 (기본값: 0)
18
+ */
19
+ min?: number;
20
+ /**
21
+ * 최대값 (기본값: 100)
22
+ */
23
+ max?: number;
24
+ /**
25
+ * 값 증가 단위 (기본값: 1)
26
+ */
27
+ step?: number;
28
+ disabled?: boolean;
29
+ className?: string;
30
+ }
31
+ export declare function Slider({ value, onChange, color, min, max, step, disabled, className, }: SliderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './Slider';
@@ -1,6 +1,7 @@
1
1
  interface Props {
2
2
  open: boolean;
3
3
  focus: boolean;
4
+ disabled?: boolean;
4
5
  }
5
- declare function Arrow({ open, focus }: Props): import("react/jsx-runtime").JSX.Element;
6
+ declare function Arrow({ open, focus, disabled }: Props): import("react/jsx-runtime").JSX.Element;
6
7
  export default Arrow;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ on: boolean;
4
+ formats: {
5
+ columnIdKey: string;
6
+ columnName?: string;
7
+ filter?: React.ReactNode;
8
+ }[];
9
+ hoverContent?: string;
10
+ resetButtonContent?: string;
11
+ onReset: () => void;
12
+ searchButtonContent?: string;
13
+ onSearch: () => void;
14
+ inputWrapperRef: React.RefObject<HTMLDivElement>;
15
+ }
16
+ declare function Filter({ on, formats, hoverContent, resetButtonContent, onReset, searchButtonContent, onSearch, inputWrapperRef, }: Props): import("react/jsx-runtime").JSX.Element;
17
+ export default Filter;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import './search-input.scss';
3
- export interface SearchInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'className'> {
3
+ export interface SearchInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'className'> {
4
4
  /**
5
5
  * 초기화 함수 (@v1 hasClearBtn, onClear)
6
6
  */
@@ -14,5 +14,21 @@ export interface SearchInputProps extends Omit<React.InputHTMLAttributes<HTMLInp
14
14
  */
15
15
  wrapperRef?: React.RefObject<HTMLDivElement>;
16
16
  className?: string;
17
+ /**
18
+ * 검색 필터
19
+ */
20
+ filter?: {
21
+ on: boolean;
22
+ formats: {
23
+ columnIdKey: string;
24
+ columnName?: string;
25
+ filter?: React.ReactNode;
26
+ }[];
27
+ hoverContent?: string;
28
+ onReset: () => void;
29
+ resetButtonContent?: string;
30
+ onSearch: () => void;
31
+ searchButtonContent?: string;
32
+ };
17
33
  }
18
- export declare function SearchInput({ className, ...props }: SearchInputProps): import("react/jsx-runtime").JSX.Element;
34
+ export declare function SearchInput({ hiddenClearButton, className, filter, ...props }: SearchInputProps): import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,3 @@
1
1
  import { TableProps } from './types';
2
2
  import './table.scss';
3
- export declare function Table({ rowIdKey, data, formats, maxHeight, sort, onSort, checkedIds, onCheck, radioCheckedId, onRadioCheck, filter, kebabMenu, binButton, arrowButton, onRowClick, selectedRow, highlightRows, className, id, noData, loading, }: TableProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare function Table({ rowIdKey, data, formats, maxHeight, sort, onSort, checkedIds, onCheck, radioCheckedId, onRadioCheck, filter, kebabMenu, binButton, chartButton, onRowClick, selectedRow, highlightRows, className, id, noData, loading, }: TableProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ rowId: string;
3
+ hovered: boolean;
4
+ onClick: (rowId: string) => void;
5
+ }
6
+ declare function BinButtonTd({ rowId, hovered, onClick }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export default BinButtonTd;
@@ -0,0 +1,8 @@
1
+ interface Props {
2
+ rowId: string;
3
+ hovered: boolean;
4
+ selected?: boolean;
5
+ onClick: (rowId: string) => void;
6
+ }
7
+ declare function ChartButtonTd({ rowId, hovered, selected, onClick }: Props): import("react/jsx-runtime").JSX.Element;
8
+ export default ChartButtonTd;
@@ -1,7 +1,6 @@
1
1
  interface Props {
2
- rowId: string;
3
2
  checked: boolean;
4
- onCheck: (rowId: string, checked: boolean) => void;
3
+ onCheck: (checked: boolean) => void;
5
4
  }
6
- declare function CheckboxTd({ rowId, checked, onCheck }: Props): import("react/jsx-runtime").JSX.Element;
5
+ declare function CheckboxTd({ checked, onCheck }: Props): import("react/jsx-runtime").JSX.Element;
7
6
  export default CheckboxTd;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ noDataMessage?: string;
4
+ loadingContent?: React.ReactNode;
5
+ emptyBodyHeight: number;
6
+ }
7
+ declare function EmptyTr({ noDataMessage, loadingContent, emptyBodyHeight }: Props): import("react/jsx-runtime").JSX.Element;
8
+ export default EmptyTr;
@@ -1,7 +1,6 @@
1
1
  interface Props {
2
- rowId: string;
3
2
  checked: boolean;
4
- onCheck: (rowId: string, checked: boolean) => void;
3
+ onCheck: (checked: boolean) => void;
5
4
  }
6
- declare function RadioTd({ rowId, checked, onCheck }: Props): import("react/jsx-runtime").JSX.Element;
5
+ declare function RadioTd({ checked, onCheck }: Props): import("react/jsx-runtime").JSX.Element;
7
6
  export default RadioTd;
@@ -0,0 +1,7 @@
1
+ import { TableProps } from '../types';
2
+ interface Props extends TableProps {
3
+ row: Record<string, any>;
4
+ hasActionCol: boolean;
5
+ }
6
+ declare function Tr({ row, rowIdKey, formats, checkedIds, onCheck, radioCheckedId, onRadioCheck, hasActionCol, kebabMenu, binButton, chartButton, onRowClick, selectedRow, highlightRows, }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export default Tr;
@@ -0,0 +1,7 @@
1
+ import { TableProps } from '../types';
2
+ interface Props extends TableProps {
3
+ hasActionCol: boolean;
4
+ emptyBodyHeight: number;
5
+ }
6
+ declare function TBody({ rowIdKey, formats, data, checkedIds, onCheck, radioCheckedId, onRadioCheck, hasActionCol, kebabMenu, binButton, chartButton, onRowClick, selectedRow, highlightRows, noData, loading, emptyBodyHeight, }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export default TBody;
@@ -1,20 +1,17 @@
1
1
  import React from 'react';
2
- import { IColumnFormats, ISort } from '../types';
2
+ import { IColumnFormats, IFilter, ISort } from '../types';
3
3
  interface Props {
4
4
  formats: IColumnFormats[];
5
5
  sort?: ISort;
6
6
  onSortClick: (columnName: string) => () => void;
7
7
  hasCheckbox?: boolean;
8
- hasRadio?: boolean;
9
8
  allCheckbox: boolean;
10
9
  onAllCheck: (checked: boolean) => void;
11
- hasActionCol: boolean;
12
- filter?: {
13
- on: boolean;
14
- onReset: () => void;
15
- };
10
+ hasRadio?: boolean;
11
+ filter?: IFilter;
16
12
  filterToggle: boolean;
17
13
  setFilterToggle: React.Dispatch<React.SetStateAction<boolean>>;
14
+ hasActionCol: boolean;
18
15
  }
19
- declare function THead({ formats, sort, onSortClick, hasCheckbox, hasRadio, allCheckbox, onAllCheck, hasActionCol, filter, filterToggle, setFilterToggle, }: Props): import("react/jsx-runtime").JSX.Element;
16
+ declare function THead({ formats, sort, onSortClick, hasCheckbox, allCheckbox, onAllCheck, hasRadio, filter, filterToggle, setFilterToggle, hasActionCol, }: Props): import("react/jsx-runtime").JSX.Element;
20
17
  export default THead;
@@ -16,6 +16,10 @@ export interface IColumnFormats {
16
16
  */
17
17
  iconTooltip?: string;
18
18
  }
19
+ export interface IFilter {
20
+ on: boolean;
21
+ onReset: () => void;
22
+ }
19
23
  export type TShow = 'none' | 'hover' | 'always';
20
24
  export interface TableProps {
21
25
  /**
@@ -57,10 +61,7 @@ export interface TableProps {
57
61
  /**
58
62
  * 최우측 컬럼 헤더의 필터 영역. format.filter와 조합해서 사용 가능
59
63
  */
60
- filter?: {
61
- on: boolean;
62
- onReset: () => void;
63
- };
64
+ filter?: IFilter;
64
65
  /**
65
66
  * 최우측 컬럼 바디의 더보기 메뉴. binButton, arrowButton과 같이 쓸 수 없음.
66
67
  * TShow='none' | 'hover' | 'always'. (@v1 hamberger)
@@ -81,7 +82,7 @@ export interface TableProps {
81
82
  * 최우측 컬럼 바디의 화살표 버튼. kebabMenu, binButton과 같이 쓸 수 없음.
82
83
  * TShow='none' | 'hover' | 'always'.
83
84
  */
84
- arrowButton?: {
85
+ chartButton?: {
85
86
  show: (rowId?: string) => TShow;
86
87
  onClick: (rowId: string) => void;
87
88
  };
@@ -91,10 +92,12 @@ export interface TableProps {
91
92
  onRowClick?: (rowId: string) => void;
92
93
  /**
93
94
  * 선택된 행 스타일 지정, onRowClick과 조합해서 사용 가능 (@v1 focusedRowInfo)
95
+ * @scrollIntoView smooth / center / center
94
96
  */
95
97
  selectedRow?: {
96
98
  rowId: string;
97
99
  className?: string;
100
+ scrollIntoView?: boolean;
98
101
  };
99
102
  /**
100
103
  * 하이라이팅할 행과 스타일 지정
@@ -1,4 +1,4 @@
1
- export type TTheme = 'blue' | 'green';
1
+ export type TTheme = 'blue' | 'green' | 'navy';
2
2
  declare const DColor: {
3
3
  readonly primary: "var(--p)";
4
4
  readonly secondary: "#8c8c8c";
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export * from './components/atoms/input';
7
7
  export * from './components/atoms/popover';
8
8
  export * from './components/atoms/radio';
9
9
  export * from './components/atoms/skeleton';
10
+ export * from './components/atoms/slider';
10
11
  export * from './components/atoms/textarea';
11
12
  export * from './components/atoms/toggle';
12
13
  export * from './components/atoms/tooltip';