sellmate-design-system-react 9.0.0-beta.91 → 9.0.0-beta.92
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/AGENTS.md +7 -0
- package/dist/components/SGnbSystem/README.md +6 -2
- package/dist/components/SGnbSystem/SGnbSystem.d.ts +3 -3
- package/dist/components/SGnbSystem/gnbSystem.config.d.ts +5 -3
- package/dist/components/STimePicker/README.md +1 -1
- package/dist/components/STimePicker/STimePicker.d.ts +3 -7
- package/dist/components/STimePicker/TimeListbox.d.ts +21 -0
- package/dist/components/STimeRangePicker/README.md +2 -2
- package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +5 -1
- package/dist/index.cjs +215 -459
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +215 -459
- package/dist/index.js.map +1 -1
- package/dist/lib/mode-listbox.d.ts +10 -0
- package/dist/llms-full.txt +15 -5
- package/dist/llms.txt +7 -0
- package/dist/styles.css +3 -29
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 연·월·시간을 세로 리스트에서 고르는 피커 조각(SDatePicker 의 연·월 리스트, STimePicker 의 시간
|
|
3
|
+
* 리스트)이 함께 쓰는 치수와 항목 클래스. 스펙(`--cmp-datepicker-mode-*`)이 하나라 한곳에 둔다.
|
|
4
|
+
*/
|
|
5
|
+
/** 리스트 높이(px) — 항목 높이와 함께 "선택 항목을 가운데로" 계산에 쓴다 */
|
|
6
|
+
export declare const MODE_LIST_HEIGHT = 240;
|
|
7
|
+
/** 항목 한 줄 높이(px) — paddingY(4) × 2 + line-height(20) */
|
|
8
|
+
export declare const MODE_ITEM_HEIGHT = 28;
|
|
9
|
+
/** 리스트 항목(button) 클래스 — 기본 / 선택 / 비활성 */
|
|
10
|
+
export declare const modeListItemClass: (selected: boolean, disabled: boolean) => string;
|
package/dist/llms-full.txt
CHANGED
|
@@ -1896,6 +1896,13 @@ useEffect(() => {
|
|
|
1896
1896
|
|
|
1897
1897
|
**`SKeyValueTable` 안에서는 필드마다 `maxWidth` 를 주지 않는다.** 표 안에서 이 상한이 거슬리는 이유는 대개 "같은 행의 다른 필드와 오른쪽 끝이 어긋난다" 이고, 그건 표 전체의 문제다. 표의 `fieldWidth="fill"` 로 한 번에 정한다 (§4-3). 그 표에서 한 필드만 예외로 둘 때만 `options.maxWidth` 를 쓴다.
|
|
1898
1898
|
|
|
1899
|
+
##### 시간 피커 — 분 간격은 `minuteStep`, 범위 순서는 `rangeOrder`
|
|
1900
|
+
|
|
1901
|
+
`STimePicker`·`STimeRangePicker` 는 `[오전/오후] | 시 | 분` 리스트에서 고른다 (직접 타이핑하지 않는다).
|
|
1902
|
+
|
|
1903
|
+
- **분 간격은 `minuteStep` 으로 정한다.** 분 리스트에 그 간격의 분만 나열되므로, 고른 값을 앱에서 다시 반올림하거나 `rules` 로 간격을 검사하지 않는다.
|
|
1904
|
+
- **`STimeRangePicker` 의 "종료가 시작보다 이르면 안 된다" 는 앱이 검증하지 않는다.** 기본 `rangeOrder="strict"` 가 종료 리스트에서 그 시각을 비활성으로 막는다. 자정을 넘는 범위(야간 근무 22:00~02:00 등)를 받아야 할 때만 `rangeOrder="allow-cross-day"` 를 준다.
|
|
1905
|
+
|
|
1899
1906
|
##### 값을 지울 수 있게 하려면 `clearable`
|
|
1900
1907
|
|
|
1901
1908
|
`SSelect` · `SDatePicker` · `SDateRangePicker` · `STimePicker` · `STimeRangePicker` 가 같은 규칙으로 갖는다. 값이 있을 때만 지우기 버튼이 나타나고, 누르면 **`onValueChange` 로 `null` 이 온다** (빈 문자열이 아니다). 받는 쪽 상태도 `null` 을 담을 수 있어야 한다.
|
|
@@ -8888,7 +8895,7 @@ export interface SGnbSystemAlert {
|
|
|
8888
8895
|
/** 라벨 텍스트. 기본 `'알림'` */
|
|
8889
8896
|
label?: string;
|
|
8890
8897
|
/**
|
|
8891
|
-
* 읽지 않은 알림 개수. 1 이상이면 벨이 울리는 아이콘·강조색으로 바뀌고
|
|
8898
|
+
* 읽지 않은 알림 개수. 1 이상이면 벨이 울리는 아이콘·강조색으로 바뀌고 개수 배지가 붙는다.
|
|
8892
8899
|
* 개수를 적을 가로가 모자란 자리(접힌 레일 · 기본 폭보다 좁게 줄인 판)에서는 점 배지로 바뀐다.
|
|
8893
8900
|
* 표기는 컴포넌트가 맡는다 — 세 자리마다 콤마를 넣어 그리므로 앱이 포맷한 문자열을 넘기지 않는다.
|
|
8894
8901
|
*/
|
|
@@ -8990,7 +8997,9 @@ export interface SGnbSystemAccount {
|
|
|
8990
8997
|
* 타이포그래피는 CSS 변수가 아니라 `.typo-*` 프리셋으로 나온다.
|
|
8991
8998
|
* domainTag.typography → typo-body-sm-medium (12/500/20)
|
|
8992
8999
|
* item.label.typography → typo-body-sm-semibold (12/600/20)
|
|
8993
|
-
*
|
|
9000
|
+
*
|
|
9001
|
+
* 알림 개수는 글자가 아니라 배지(`STag` xs · deep)로 그린다 — 배경·글자색·치수는 태그 토큰
|
|
9002
|
+
* (`--cmp-tag-*`)이 쥔다.
|
|
8994
9003
|
*/
|
|
8995
9004
|
|
|
8996
9005
|
/** 색상(표면). light = 흰 면, dark = 오션블루 면. GNB 의 color 를 그대로 따라간다 */
|
|
@@ -9006,6 +9015,7 @@ export const GNB_SYSTEM_COLORS = ['light', 'dark'] as const;
|
|
|
9006
9015
|
- [SIcon](../SIcon)
|
|
9007
9016
|
- [SPortal](../SPortal)
|
|
9008
9017
|
- [SSystemActionButton](../SSystemActionButton)
|
|
9018
|
+
- [STag](../STag)
|
|
9009
9019
|
- [STooltip](../STooltip)
|
|
9010
9020
|
|
|
9011
9021
|
### Graph
|
|
@@ -12472,7 +12482,7 @@ export type STextLinkSize = 'sm' | 'md' | 'lg';
|
|
|
12472
12482
|
| `disabled?` | `boolean` | `false` | |
|
|
12473
12483
|
| `clearable?` | `boolean` | `false` | |
|
|
12474
12484
|
| `showMeridiem?` | `boolean` | — | 오전/오후 선택 표시 여부. 지정하지 않으면 type="midday"일 때만 켜집니다. |
|
|
12475
|
-
| `minuteStep?` | `number` | `1` |
|
|
12485
|
+
| `minuteStep?` | `number` | `1` | 분 리스트에 나열할 간격(분). 10 이면 `00 10 20 30 40 50` 만 고를 수 있다 |
|
|
12476
12486
|
| `width?` | `SFieldWidth` | — | 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이. 등급은 `--cmp-field-width-*` 토큰으로 풀리므로 토큰이 바뀌면 화면이 따라간다. 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다. |
|
|
12477
12487
|
| `maxWidth?` | `SFieldWidth` | — | 컨트롤 최대 너비 — 폭 등급 · 숫자=px · CSS 길이. 지정하지 않으면 값 길이(`HH:mm`)에 맞춘 내장 상한(`size='md'` → `lg`, `'sm'` → `md`)이 걸려, `width="100%"` 를 받아도 행 전체로 늘어나지 않는다. 팝오버처럼 폭이 이미 좁게 정해진 자리에서 그 폭을 그대로 채워야 하면 `width="100%"` 와 함께 `maxWidth="100%"` 를 준다. `0` 은 상한을 아예 걸지 않는다 — 부모보다 넓어지는 것까지 허용해야 할 때만 쓴다. |
|
|
12478
12488
|
| `name?` | `string` | — | |
|
|
@@ -12548,8 +12558,8 @@ export type STimePickerSize = 'sm' | 'md';
|
|
|
12548
12558
|
| `disabled?` | `boolean` | `false` | |
|
|
12549
12559
|
| `clearable?` | `boolean` | `false` | |
|
|
12550
12560
|
| `showMeridiem?` | `boolean` | — | 오전/오후 선택 표시 여부. 지정하지 않으면 type="midday"일 때만 켜집니다. |
|
|
12551
|
-
| `minuteStep?` | `number` | `1` |
|
|
12552
|
-
| `rangeOrder?` | `STimeRangePickerRangeOrder` | `'strict'` | 범위 순서 정책. strict는
|
|
12561
|
+
| `minuteStep?` | `number` | `1` | 분 리스트에 나열할 간격(분). 10 이면 `00 10 20 30 40 50` 만 고를 수 있다 |
|
|
12562
|
+
| `rangeOrder?` | `STimeRangePickerRangeOrder` | `'strict'` | 범위 순서 정책. `strict` 는 종료 리스트에서 시작보다 이른 시각을 비활성으로 막고, 시작을 종료 뒤로 옮기면 종료가 따라온다. `allow-cross-day` 는 제약 없이 고른다(자정을 넘는 범위). |
|
|
12553
12563
|
| `width?` | `SFieldWidth` | — | 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이. 등급은 `--cmp-field-width-*` 토큰으로 풀리므로 토큰이 바뀌면 화면이 따라간다. 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다. |
|
|
12554
12564
|
| `maxWidth?` | `SFieldWidth` | — | 컨트롤 최대 너비 — 폭 등급 · 숫자=px · CSS 길이. 지정하지 않으면 값 길이(`HH:mm ~ HH:mm`)에 맞춘 내장 상한이 걸려, `width="100%"` 를 받아도 행 전체로 늘어나지 않는다. 팝오버처럼 폭이 이미 좁게 정해진 자리에서 그 폭을 그대로 채워야 하면 `width="100%"` 와 함께 `maxWidth="100%"` 를 준다. `0` 은 상한을 아예 걸지 않는다 — 부모보다 넓어지는 것까지 허용해야 할 때만 쓴다. |
|
|
12555
12565
|
| `name?` | `string` | — | |
|
package/dist/llms.txt
CHANGED
|
@@ -1897,6 +1897,13 @@ useEffect(() => {
|
|
|
1897
1897
|
|
|
1898
1898
|
**`SKeyValueTable` 안에서는 필드마다 `maxWidth` 를 주지 않는다.** 표 안에서 이 상한이 거슬리는 이유는 대개 "같은 행의 다른 필드와 오른쪽 끝이 어긋난다" 이고, 그건 표 전체의 문제다. 표의 `fieldWidth="fill"` 로 한 번에 정한다 (§4-3). 그 표에서 한 필드만 예외로 둘 때만 `options.maxWidth` 를 쓴다.
|
|
1899
1899
|
|
|
1900
|
+
##### 시간 피커 — 분 간격은 `minuteStep`, 범위 순서는 `rangeOrder`
|
|
1901
|
+
|
|
1902
|
+
`STimePicker`·`STimeRangePicker` 는 `[오전/오후] | 시 | 분` 리스트에서 고른다 (직접 타이핑하지 않는다).
|
|
1903
|
+
|
|
1904
|
+
- **분 간격은 `minuteStep` 으로 정한다.** 분 리스트에 그 간격의 분만 나열되므로, 고른 값을 앱에서 다시 반올림하거나 `rules` 로 간격을 검사하지 않는다.
|
|
1905
|
+
- **`STimeRangePicker` 의 "종료가 시작보다 이르면 안 된다" 는 앱이 검증하지 않는다.** 기본 `rangeOrder="strict"` 가 종료 리스트에서 그 시각을 비활성으로 막는다. 자정을 넘는 범위(야간 근무 22:00~02:00 등)를 받아야 할 때만 `rangeOrder="allow-cross-day"` 를 준다.
|
|
1906
|
+
|
|
1900
1907
|
##### 값을 지울 수 있게 하려면 `clearable`
|
|
1901
1908
|
|
|
1902
1909
|
`SSelect` · `SDatePicker` · `SDateRangePicker` · `STimePicker` · `STimeRangePicker` 가 같은 규칙으로 갖는다. 값이 있을 때만 지우기 버튼이 나타나고, 누르면 **`onValueChange` 로 `null` 이 온다** (빈 문자열이 아니다). 받는 쪽 상태도 `null` 을 담을 수 있어야 한다.
|
package/dist/styles.css
CHANGED
|
@@ -917,9 +917,6 @@
|
|
|
917
917
|
.mt-sd-36 {
|
|
918
918
|
margin-top: var(--spacing-sd-36);
|
|
919
919
|
}
|
|
920
|
-
.-mr-px {
|
|
921
|
-
margin-right: -1px;
|
|
922
|
-
}
|
|
923
920
|
.mr-\[6px\] {
|
|
924
921
|
margin-right: 6px;
|
|
925
922
|
}
|
|
@@ -1211,9 +1208,6 @@
|
|
|
1211
1208
|
.h-\[var\(--cmp-table-header-height\)\] {
|
|
1212
1209
|
height: var(--cmp-table-header-height);
|
|
1213
1210
|
}
|
|
1214
|
-
.h-\[var\(--cmp-textinput-sm-height\)\] {
|
|
1215
|
-
height: var(--cmp-textinput-sm-height);
|
|
1216
|
-
}
|
|
1217
1211
|
.h-\[var\(--sys-size-\.\.\.\)\] {
|
|
1218
1212
|
height: var(--sys-size-...);
|
|
1219
1213
|
}
|
|
@@ -1379,9 +1373,6 @@
|
|
|
1379
1373
|
.w-\[48px\] {
|
|
1380
1374
|
width: 48px;
|
|
1381
1375
|
}
|
|
1382
|
-
.w-\[61px\] {
|
|
1383
|
-
width: 61px;
|
|
1384
|
-
}
|
|
1385
1376
|
.w-\[72px\] {
|
|
1386
1377
|
width: 72px;
|
|
1387
1378
|
}
|
|
@@ -2535,10 +2526,6 @@
|
|
|
2535
2526
|
border-top-left-radius: 4px;
|
|
2536
2527
|
border-bottom-left-radius: 4px;
|
|
2537
2528
|
}
|
|
2538
|
-
.rounded-l-\[var\(--cmp-select-sm-radius\)\] {
|
|
2539
|
-
border-top-left-radius: var(--cmp-select-sm-radius);
|
|
2540
|
-
border-bottom-left-radius: var(--cmp-select-sm-radius);
|
|
2541
|
-
}
|
|
2542
2529
|
.rounded-tl {
|
|
2543
2530
|
border-top-left-radius: 0.25rem;
|
|
2544
2531
|
}
|
|
@@ -2550,10 +2537,6 @@
|
|
|
2550
2537
|
border-top-right-radius: 4px;
|
|
2551
2538
|
border-bottom-right-radius: 4px;
|
|
2552
2539
|
}
|
|
2553
|
-
.rounded-r-\[var\(--cmp-select-sm-radius\)\] {
|
|
2554
|
-
border-top-right-radius: var(--cmp-select-sm-radius);
|
|
2555
|
-
border-bottom-right-radius: var(--cmp-select-sm-radius);
|
|
2556
|
-
}
|
|
2557
2540
|
.rounded-tr {
|
|
2558
2541
|
border-top-right-radius: 0.25rem;
|
|
2559
2542
|
}
|
|
@@ -2809,12 +2792,6 @@
|
|
|
2809
2792
|
.border-\[var\(--cmp-table-border-color\)\] {
|
|
2810
2793
|
border-color: var(--cmp-table-border-color);
|
|
2811
2794
|
}
|
|
2812
|
-
.border-\[var\(--cmp-timepicker-border-default\)\] {
|
|
2813
|
-
border-color: var(--cmp-timepicker-border-default);
|
|
2814
|
-
}
|
|
2815
|
-
.border-\[var\(--cmp-timepicker-border-focus\)\] {
|
|
2816
|
-
border-color: var(--cmp-timepicker-border-focus);
|
|
2817
|
-
}
|
|
2818
2795
|
.border-border-default {
|
|
2819
2796
|
border-color: var(--color-border-default);
|
|
2820
2797
|
}
|
|
@@ -4463,12 +4440,6 @@
|
|
|
4463
4440
|
.text-\[color\:var\(--sys-color-field-text-default\)\] {
|
|
4464
4441
|
color: var(--sys-color-field-text-default);
|
|
4465
4442
|
}
|
|
4466
|
-
.text-\[var\(--cmp-field-hint-color\)\] {
|
|
4467
|
-
color: var(--cmp-field-hint-color);
|
|
4468
|
-
}
|
|
4469
|
-
.text-\[var\(--cmp-timepicker-border-focus\)\] {
|
|
4470
|
-
color: var(--cmp-timepicker-border-focus);
|
|
4471
|
-
}
|
|
4472
4443
|
.text-\[var\(--cmp-timepicker-selector-range-heading-color\)\] {
|
|
4473
4444
|
color: var(--cmp-timepicker-selector-range-heading-color);
|
|
4474
4445
|
}
|
|
@@ -4684,6 +4655,9 @@
|
|
|
4684
4655
|
outline-style: var(--tw-outline-style);
|
|
4685
4656
|
outline-width: 2px;
|
|
4686
4657
|
}
|
|
4658
|
+
.outline-offset-\[-2px\] {
|
|
4659
|
+
outline-offset: -2px;
|
|
4660
|
+
}
|
|
4687
4661
|
.outline-\(--sys-color-border-default\) {
|
|
4688
4662
|
outline-color: var(--sys-color-border-default);
|
|
4689
4663
|
}
|