sellmate-design-system-react 9.0.0-beta.60 → 9.0.0-beta.62

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 (43) hide show
  1. package/AGENTS.md +33 -10
  2. package/dist/components/SBadge/README.md +1 -0
  3. package/dist/components/SBadge/SBadge.d.ts +1 -1
  4. package/dist/components/SBarChart/README.md +15 -0
  5. package/dist/components/SBarChart/SBarChart.d.ts +15 -1
  6. package/dist/components/SBarChart/index.d.ts +1 -1
  7. package/dist/components/SCalendarBoard/README.md +2 -1
  8. package/dist/components/SCalendarBoard/calendarBoard.config.d.ts +2 -2
  9. package/dist/components/SCalendarBoard/types.d.ts +1 -1
  10. package/dist/components/SCallout/README.md +1 -0
  11. package/dist/components/SCallout/SCallout.d.ts +6 -1
  12. package/dist/components/SChip/README.md +25 -0
  13. package/dist/components/SChip/SChip.d.ts +8 -0
  14. package/dist/components/SChip/index.d.ts +1 -1
  15. package/dist/components/SDonutChart/README.md +91 -0
  16. package/dist/components/SDonutChart/SDonutChart.d.ts +70 -0
  17. package/dist/components/SDonutChart/index.d.ts +1 -0
  18. package/dist/components/SGhostButton/README.md +2 -0
  19. package/dist/components/SLineChart/README.md +15 -0
  20. package/dist/components/SLineChart/SLineChart.d.ts +15 -1
  21. package/dist/components/SLineChart/index.d.ts +1 -1
  22. package/dist/components/SLineChart/lineChart.config.d.ts +11 -7
  23. package/dist/components/SMeatballButton/README.md +67 -0
  24. package/dist/components/SMeatballButton/SMeatballButton.d.ts +36 -0
  25. package/dist/components/SMeatballButton/index.d.ts +1 -0
  26. package/dist/components/SPieChart/README.md +91 -0
  27. package/dist/components/SPieChart/SPieChart.d.ts +69 -0
  28. package/dist/components/SPieChart/index.d.ts +1 -0
  29. package/dist/index.cjs +702 -230
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.js +698 -230
  33. package/dist/index.js.map +1 -1
  34. package/dist/lib/chart/cartesian.d.ts +2 -2
  35. package/dist/lib/chart/radial.d.ts +89 -0
  36. package/dist/lib/chart/tooltip.d.ts +18 -1
  37. package/dist/lib/dropdown-menu.d.ts +19 -0
  38. package/dist/llms-full.txt +361 -22
  39. package/dist/llms.txt +53 -23
  40. package/dist/styles.css +85 -0
  41. package/dist/theme.css +62 -0
  42. package/eslint/scale.gen.mjs +2 -2
  43. package/package.json +1 -1
@@ -3,9 +3,10 @@
3
3
  *
4
4
  * **시안이 없는 컴포넌트다.** 그래서 두 가지 규칙으로 값을 정했다.
5
5
  *
6
- * 1. 두 차트가 공유하는 것(축 여백·눈금·격자·툴팁·범례·팔레트)은 새로 정하지 않고
6
+ * 1. 두 차트가 공유하는 것(눈금·격자·툴팁·범례·팔레트)은 새로 정하지 않고
7
7
  * 바 차트와 `lib/chart` 에서 그대로 가져온다 — 같은 데이터를 막대에서 선으로
8
- * 바꿨을 때 그림이 시작하는 자리와 눈금이 어긋나면 두 차트를 견줄 수 없다.
8
+ * 바꿨을 때 눈금이 어긋나면 두 차트를 견줄 수 없다. 단 항목 축 양끝 여백
9
+ * (`AXIS_EDGE_PADDING`)은 쓰지 않는다 — 선은 첫·마지막 점이 그림 양끝에 선다.
9
10
  * 2. 선 고유의 것(선 두께·점 지름 따위)만 여기서 정한다. 디자인 토큰이 생기면
10
11
  * 이 파일의 상수부터 토큰 참조로 바꾼다.
11
12
  *
@@ -46,13 +47,16 @@ export declare const BAND_MIN = 40;
46
47
  /** 점과 값 라벨 사이 간격(px) — 막대 차트와 같다. */
47
48
  export declare const VALUE_LABEL_GAP = 6;
48
49
  /**
49
- * 영역 채움의 불투명도.
50
+ * 영역 채움의 불투명도 — 선 바로 아래가 가장 진하고 바닥으로 갈수록 옅어진다.
50
51
  *
51
- * 선은 또렷하게 두고 영역만 물리는 값이다. 계열이 여럿이면 채움끼리 겹쳐 색이 탁해지는데,
52
- * 그건 채움을 진하게 잡아서가 아니라 겹쳐 그리는 것 자체의 한계다 — 계열이 많으면
53
- * `area` 를 끄거나 `stacked` 로 쌓는다.
52
+ * 선은 또렷하게 두고 영역만 물리는 값이다. 세로 그라데이션이라 채움이 바닥에서 거의
53
+ * 사라져, 계열이 여럿일 때 채움끼리 겹쳐 색이 탁해지는 것도 덜하다. 그래도 겹쳐 그리는
54
+ * 것 자체의 한계는 남으므로, 계열이 많으면 `area` 를 끄거나 `stacked` 로 쌓는다.
55
+ *
56
+ * 위쪽 30% 는 맞는 토큰이 없어 값으로 둔다(불투명도 토큰은 5·8·40·60·80 뿐이다).
54
57
  */
55
- export declare const AREA_OPACITY = "var(--opacity-040)";
58
+ export declare const AREA_OPACITY_TOP = "30%";
59
+ export declare const AREA_OPACITY_BOTTOM = "var(--opacity-005)";
56
60
  export declare const LINE_DATA_LABEL_COLOR = "var(--cmp-chart-bar-dataLabel-color-default)";
57
61
  /** 값 라벨의 타이포 — 짚은 항목만 굵고 크게 뜬다(막대 차트와 같은 규칙). */
58
62
  export declare const LINE_DATA_LABEL_TYPO = "typo-body-sm-medium";
@@ -0,0 +1,67 @@
1
+ # SMeatballButton
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### SMeatballButton
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `size?` | `SMeatballButtonSize` | `'sm'` | 버튼 크기 |
12
+ | `intent?` | `SMeatballButtonIntent` | `'default'` | 색상 의도. 어두운 배경 위에서는 inverse |
13
+ | `items?` | `SMeatballButtonItem[]` | `[]` | 메뉴 항목 목록 |
14
+ | `tooltipText?` | `string` | `'기능 더 보기'` | 호버 시 표시할 툴팁 텍스트. 빈 문자열이면 툴팁을 띄우지 않는다. 메뉴가 열려 있는 동안은 숨는다. |
15
+ | `ariaLabel?` | `string` | — | 스크린리더용 접근성 레이블. 미지정 시 tooltipText, 그것도 비면 '기능 더 보기' |
16
+ | `disabled?` | `boolean` | `false` | 비활성 |
17
+ | `className?` | `string` | — | 버튼을 감싸는 요소의 클래스. 위치 조정(absolute 배치 등)용 |
18
+ | `style?` | `CSSProperties` | — | 버튼을 감싸는 요소의 스타일. 위치 조정용 |
19
+
20
+ #### Events
21
+
22
+ | Event | Type | Description |
23
+ |-------|------|-------------|
24
+ | `onItemClick` | `(value: string \| number) => void` | 메뉴 항목 선택 |
25
+ | `onOpenChange` | `(open: boolean) => void` | 열림/닫힘 변경 |
26
+
27
+ #### Methods (ref)
28
+
29
+ | Method | Type | Description |
30
+ |--------|------|-------------|
31
+ | `open` | `() => void` | 메뉴 열기 |
32
+ | `close` | `() => void` | 메뉴 닫기 |
33
+
34
+ ## Types
35
+
36
+ ### SMeatballButtonSize
37
+
38
+ ```ts
39
+ export type SMeatballButtonSize = SGhostButtonSize;
40
+ ```
41
+
42
+ ### SMeatballButtonIntent
43
+
44
+ ```ts
45
+ export type SMeatballButtonIntent = 'default' | 'inverse';
46
+ ```
47
+
48
+ ### SMeatballButtonItem
49
+
50
+ ```ts
51
+ /** 메뉴 항목 — SDropdownButton 과 같은 모양이다 */
52
+ export type SMeatballButtonItem = SDropdownButtonItem;
53
+ ```
54
+
55
+ ## Dependencies
56
+
57
+ ### Depends on
58
+
59
+ - [SGhostButton](../SGhostButton)
60
+
61
+ ### Graph
62
+
63
+ ```mermaid
64
+ graph TD;
65
+ SMeatballButton --> SGhostButton
66
+ style SMeatballButton fill:#f9f,stroke:#333,stroke-width:4px
67
+ ```
@@ -0,0 +1,36 @@
1
+ import { type CSSProperties } from 'react';
2
+ import { type SGhostButtonSize } from '../SGhostButton';
3
+ import type { SDropdownButtonItem } from '../SDropdownButton';
4
+ export type SMeatballButtonSize = SGhostButtonSize;
5
+ export type SMeatballButtonIntent = 'default' | 'inverse';
6
+ /** 메뉴 항목 — SDropdownButton 과 같은 모양이다 */
7
+ export type SMeatballButtonItem = SDropdownButtonItem;
8
+ export interface SMeatballButtonHandle {
9
+ /** 메뉴 열기 */
10
+ open: () => void;
11
+ /** 메뉴 닫기 */
12
+ close: () => void;
13
+ }
14
+ export interface SMeatballButtonProps {
15
+ /** 버튼 크기 */
16
+ size?: SMeatballButtonSize;
17
+ /** 색상 의도. 어두운 배경 위에서는 inverse */
18
+ intent?: SMeatballButtonIntent;
19
+ /** 메뉴 항목 목록 */
20
+ items?: SMeatballButtonItem[];
21
+ /** 호버 시 표시할 툴팁 텍스트. 빈 문자열이면 툴팁을 띄우지 않는다. 메뉴가 열려 있는 동안은 숨는다. */
22
+ tooltipText?: string;
23
+ /** 스크린리더용 접근성 레이블. 미지정 시 tooltipText, 그것도 비면 '기능 더 보기' */
24
+ ariaLabel?: string;
25
+ /** 비활성 */
26
+ disabled?: boolean;
27
+ /** 메뉴 항목 선택 */
28
+ onItemClick?: (value: string | number) => void;
29
+ /** 열림/닫힘 변경 */
30
+ onOpenChange?: (open: boolean) => void;
31
+ /** 버튼을 감싸는 요소의 클래스. 위치 조정(absolute 배치 등)용 */
32
+ className?: string;
33
+ /** 버튼을 감싸는 요소의 스타일. 위치 조정용 */
34
+ style?: CSSProperties;
35
+ }
36
+ export declare const SMeatballButton: import("react").ForwardRefExoticComponent<SMeatballButtonProps & import("react").RefAttributes<SMeatballButtonHandle>>;
@@ -0,0 +1 @@
1
+ export { SMeatballButton, type SMeatballButtonProps, type SMeatballButtonHandle, type SMeatballButtonItem, type SMeatballButtonSize, type SMeatballButtonIntent, } from './SMeatballButton';
@@ -0,0 +1,91 @@
1
+ # SPieChart
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### SPieChart
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `data` | `SPieChartSlice[]` | — | 조각 목록. 주는 순서대로 12시에서 시계 방향으로 그린다 — 보통 큰 순으로 준다 |
12
+ | `palette?` | `SPieChartPalette` | `'multi'` | 색 팔레트. `custom` 일 때만 `colors` 를 본다 |
13
+ | `colors?` | `SPieChartColor[]` | — | `palette='custom'` 에서 쓸 색 이름을 조각 순서대로. 조각보다 짧으면 앞에서부터 순환하고, 비어 있으면 `multi` 로 그린다 |
14
+ | `showValueLabel?` | `boolean` | `false` | 조각 안에 몫(%)을 적는다. 좁은 조각은 글자가 넘치므로 적지 않는다 |
15
+ | `showLegend?` | `boolean` | `true` | 범례를 보인다 |
16
+ | `legendPosition?` | `SPieChartLegendPosition` | `'top'` | 범례 위치 |
17
+ | `showTooltip?` | `boolean` | `true` | 조각에 마우스를 올리면 값 상자를 띄운다 |
18
+ | `formatValue?` | `(value: number) => string` | — | 값 표시 형식 |
19
+ | `tooltipFooter?` | `(slice: SPieChartSlicePoint) => ReactNode` | — | 툴팁의 값 아래에 덧붙일 내용. 짚은 조각을 받아 그린다 — 몫·값만으로 모자란 맥락 (전월 대비, 건수 등)을 적는다. 툴팁은 누를 수 없으므로 버튼·링크는 넣지 않는다 |
20
+ | `className?` | `string` | — | 폭은 기본 100% 다. 폭을 정하려면 여기에 준다 — 그림은 그 폭의 정사각형이 된다 |
21
+ | `style?` | `CSSProperties` | — | |
22
+
23
+ #### Events
24
+
25
+ | Event | Type | Description |
26
+ |-------|------|-------------|
27
+ | `onSliceClick` | `(slice: SPieChartSlicePoint) => void` | 조각을 눌렀을 때 |
28
+
29
+ ## Types
30
+
31
+ ### SPieChartSlice
32
+
33
+ ```ts
34
+ /** 조각 하나 — 범례 한 줄에 대응한다. */
35
+ export interface SPieChartSlice {
36
+ /** 범례·툴팁에 표시할 이름 */
37
+ name: string;
38
+ /** 값. 0·음수는 그리지 않는다 — 원은 전체에 대한 몫만 나타낼 수 있다 */
39
+ value: number;
40
+ }
41
+ ```
42
+
43
+ ### SPieChartPalette
44
+
45
+ ```ts
46
+ /**
47
+ * 색 팔레트. 조각마다 색이 달라야 하므로 한 색(`default`)은 없다.
48
+ * - `multi` 서로 무관한 항목(11색)을 순서대로
49
+ * - `gradation` 한 지표의 단계(6색)를 진한 쪽부터 순서대로 — 조각을 큰 순으로 줄 때
50
+ * - `custom` `colors` 로 고른 색을 순서대로
51
+ */
52
+ export type SPieChartPalette = 'multi' | 'gradation' | 'custom';
53
+ ```
54
+
55
+ ### SPieChartColor
56
+
57
+ ```ts
58
+ /**
59
+ * `palette='custom'` 에서 고를 수 있는 색 이름.
60
+ * positive=늘어남 · negative=줄어듦 · neutral=변화 없음 을 뜻하므로 뜻에 맞게 고른다.
61
+ */
62
+ export type SPieChartColor =
63
+ | 'positivePrimary'
64
+ | 'positiveSecondary'
65
+ | 'negativePrimary'
66
+ | 'negativeSecondary'
67
+ | 'neutralPrimary'
68
+ | 'neutralSecondary';
69
+ ```
70
+
71
+ ### SPieChartLegendPosition
72
+
73
+ ```ts
74
+ /** 범례 위치. */
75
+ export type SPieChartLegendPosition = 'top' | 'bottom';
76
+ ```
77
+
78
+ ### SPieChartSlicePoint
79
+
80
+ ```ts
81
+ /** 클릭이 가리키는 조각. */
82
+ export interface SPieChartSlicePoint {
83
+ /** `data` 안에서의 인덱스 */
84
+ index: number;
85
+ name: string;
86
+ value: number;
87
+ /** 그려진 조각 전체의 합에 대한 몫(0~1) */
88
+ ratio: number;
89
+ }
90
+ ```
91
+
@@ -0,0 +1,69 @@
1
+ import { type CSSProperties, type ReactNode } from 'react';
2
+ /** 범례 위치. */
3
+ export type SPieChartLegendPosition = 'top' | 'bottom';
4
+ /**
5
+ * 색 팔레트. 조각마다 색이 달라야 하므로 한 색(`default`)은 없다.
6
+ * - `multi` 서로 무관한 항목(11색)을 순서대로
7
+ * - `gradation` 한 지표의 단계(6색)를 진한 쪽부터 순서대로 — 조각을 큰 순으로 줄 때
8
+ * - `custom` `colors` 로 고른 색을 순서대로
9
+ */
10
+ export type SPieChartPalette = 'multi' | 'gradation' | 'custom';
11
+ /**
12
+ * `palette='custom'` 에서 고를 수 있는 색 이름.
13
+ * positive=늘어남 · negative=줄어듦 · neutral=변화 없음 을 뜻하므로 뜻에 맞게 고른다.
14
+ */
15
+ export type SPieChartColor = 'positivePrimary' | 'positiveSecondary' | 'negativePrimary' | 'negativeSecondary' | 'neutralPrimary' | 'neutralSecondary';
16
+ /** 조각 하나 — 범례 한 줄에 대응한다. */
17
+ export interface SPieChartSlice {
18
+ /** 범례·툴팁에 표시할 이름 */
19
+ name: string;
20
+ /** 값. 0·음수는 그리지 않는다 — 원은 전체에 대한 몫만 나타낼 수 있다 */
21
+ value: number;
22
+ }
23
+ /** 클릭이 가리키는 조각. */
24
+ export interface SPieChartSlicePoint {
25
+ /** `data` 안에서의 인덱스 */
26
+ index: number;
27
+ name: string;
28
+ value: number;
29
+ /** 그려진 조각 전체의 합에 대한 몫(0~1) */
30
+ ratio: number;
31
+ }
32
+ export interface SPieChartProps {
33
+ /** 조각 목록. 주는 순서대로 12시에서 시계 방향으로 그린다 — 보통 큰 순으로 준다 */
34
+ data: SPieChartSlice[];
35
+ /** 색 팔레트. `custom` 일 때만 `colors` 를 본다 */
36
+ palette?: SPieChartPalette;
37
+ /** `palette='custom'` 에서 쓸 색 이름을 조각 순서대로. 조각보다 짧으면 앞에서부터 순환하고, 비어 있으면 `multi` 로 그린다 */
38
+ colors?: SPieChartColor[];
39
+ /** 조각 안에 몫(%)을 적는다. 좁은 조각은 글자가 넘치므로 적지 않는다 */
40
+ showValueLabel?: boolean;
41
+ /** 범례를 보인다 */
42
+ showLegend?: boolean;
43
+ /** 범례 위치 */
44
+ legendPosition?: SPieChartLegendPosition;
45
+ /** 조각에 마우스를 올리면 값 상자를 띄운다 */
46
+ showTooltip?: boolean;
47
+ /** 값 표시 형식 */
48
+ formatValue?: (value: number) => string;
49
+ /** 조각을 눌렀을 때 */
50
+ onSliceClick?: (slice: SPieChartSlicePoint) => void;
51
+ /**
52
+ * 툴팁의 값 아래에 덧붙일 내용. 짚은 조각을 받아 그린다 — 몫·값만으로 모자란 맥락
53
+ * (전월 대비, 건수 등)을 적는다. 툴팁은 누를 수 없으므로 버튼·링크는 넣지 않는다
54
+ */
55
+ tooltipFooter?: (slice: SPieChartSlicePoint) => ReactNode;
56
+ /** 폭은 기본 100% 다. 폭을 정하려면 여기에 준다 — 그림은 그 폭의 정사각형이 된다 */
57
+ className?: string;
58
+ style?: CSSProperties;
59
+ }
60
+ /**
61
+ * SPieChart — 원그래프.
62
+ *
63
+ * **한 시점의 전체를 몇 개의 몫으로 나눈 것**을 보여줄 때 쓴다. 조각이 대여섯 개를 넘거나
64
+ * 몫끼리 크기를 견주는 것이 목적이면 `SBarChart` 가 맞다 — 사람은 각도보다 길이를
65
+ * 훨씬 정확하게 견준다. 합계를 함께 강조하려면 `SDonutChart` 를 쓴다.
66
+ *
67
+ * 폭은 부모를 따르고(기본 100%), 그림은 그 폭을 한 변으로 하는 정사각형이다.
68
+ */
69
+ export declare const SPieChart: import("react").ForwardRefExoticComponent<SPieChartProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { SPieChart, type SPieChartProps, type SPieChartSlice, type SPieChartSlicePoint, type SPieChartPalette, type SPieChartColor, type SPieChartLegendPosition, } from './SPieChart';