sellmate-design-system-react 9.0.0-beta.80 → 9.0.0-beta.83
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 +10 -3
- package/dist/components/SSkeleton/README.md +13 -1
- package/dist/components/SSkeleton/SSkeleton.d.ts +7 -3
- package/dist/components/SSkeleton/index.d.ts +1 -1
- package/dist/components/SSkeleton/skeleton.config.d.ts +8 -6
- package/dist/components/STimeline/README.md +41 -0
- package/dist/components/STimeline/STimeline.d.ts +27 -0
- package/dist/components/STimeline/index.d.ts +1 -0
- package/dist/index.cjs +98 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +97 -16
- package/dist/index.js.map +1 -1
- package/dist/llms-full.txt +68 -5
- package/dist/llms.txt +14 -6
- package/dist/styles.css +96 -1
- package/dist/theme.css +20 -1
- package/eslint/scale.gen.mjs +1 -1
- package/package.json +1 -1
package/dist/llms-full.txt
CHANGED
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
| **버튼·링크** | `SButton` `SGhostButton` `SMeatballButton`(⋯ 로 '더 보기' 메뉴를 여는 아이콘 버튼) `SDropdownButton` `STextLink` `SSwitch` `SToggle` |
|
|
51
51
|
| **입력 (폼)** | `SForm` `SField` `SInput` `SChatInput`(대화 입력창) `SSearchInput` `SNumberInput` `STextarea` `SEditor` `SSelect` `SCheckbox` `SRadio` `SRadioGroup` `SRadioButton` `SRadioCard` `SRadioCardGroup` `SChip` `SChipInput` `SBarcodeInput` `SFilePicker` |
|
|
52
52
|
| **날짜·시간** | `SCalendar` `SCalendarBoard`(한 달치 일정 판) `SDatePicker` `SDatePickerYearListbox` `SDatePickerMonthListbox` `SDateRangePicker` `STimePicker` `STimeRangePicker` |
|
|
53
|
-
| **표·목록** | `SChatMessage`(대화의 메시지 한 건) `SChatAttachedFile`(입력창 위, 아직 보내지 않은 첨부 한 칸) `SChatFile`(대화 흐름에 선, 보낸 파일 한 칸) `SChatSystemMessage`(대화 흐름 가운데 서는 시스템 안내) `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SListItem` `SExpansionList` `SDraggableList` `SDraggableItem` `STree` |
|
|
53
|
+
| **표·목록** | `SChatMessage`(대화의 메시지 한 건) `SChatAttachedFile`(입력창 위, 아직 보내지 않은 첨부 한 칸) `SChatFile`(대화 흐름에 선, 보낸 파일 한 칸) `SChatSystemMessage`(대화 흐름 가운데 서는 시스템 안내) `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SListItem` `SExpansionList` `SDraggableList` `SDraggableItem` `STree` `STimeline`(날짜로 묶인 시간순 기록 — 작업 로그·메모 이력) |
|
|
54
54
|
| **레이아웃** | `SLayout` `SGnb` `SGnbSystem` `SSystemActionButton`(GNB system 패널에 한 줄씩 쌓는 액션 행 — 버튼 고르기는 §3-5) `SAccountListBox`(계정 행을 눌러 뜨는 계정 패널) `SLauncherListBox`(런처 버튼을 눌러 뜨는 서비스 목록) `SPage` `SPageHeader`(페이지 제목 영역 — `SLayout` 안에서 `SPage` 앞에 둔다) `SSectionHeaderCard` `SCard` `SLoginCard`(통합 계정 로그인 화면의 카드) `SDivider` `SSplitter` `SScrollArea` `SExpansionItem` |
|
|
55
55
|
| **내비게이션** | `STabs` `SPagination` `SStepper` |
|
|
56
56
|
| **차트** | `SBarChart`(막대 그래프 — 항목끼리 크기를 견준다. `stacked` 로 항목 안의 구성까지) `SLineChart`(꺾은선 그래프 — 순서가 있는 항목의 추이를 본다. `area` 로 크기까지, `stacked` 로 구성까지) `SPieChart`(원그래프 — 한 시점의 전체를 몇 개의 몫으로 나눈다) `SDonutChart`(도넛 그래프 — 가운데가 빈 원그래프. 구멍에 글자를 두지 않는다) |
|
|
@@ -175,7 +175,7 @@ Tailwind 유틸리티는 **토큰 스케일에 있는 값만** 사용한다.
|
|
|
175
175
|
| 층 | 무엇인가 | 컴포넌트 |
|
|
176
176
|
| --- | --- | --- |
|
|
177
177
|
| **셸** | 앱 전체 뼈대. 페이지가 바뀌어도 남는다 | `SLayout` `SGnb` `SGnbSystem`(GNB 맨 아래 판 · 전폭 상단바 오른쪽 끝) `SPage` `SPageHeader`(`SLayout` 안에서 `SPage` 앞에 둔다) |
|
|
178
|
-
| **블록** | `SPage` 의 직계 자식. 페이지를 세로로 쌓는 단위 | `SSectionHeaderCard` `SCard` `SChatMessage` `SChatSystemMessage` `SChatInput` `SLoginCard`(유일하게 `SPage` 밖에 선다 — 로그인 화면 자체가 자기 자리다, §4-6) `SForm` `SSplitter` `SScrollArea` `SCalendarBoard` `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SExpansionList` `SDraggableList` `STree` `SCallout` `SContextAlert` `SBarChart` `SLineChart` `SPieChart` `SDonutChart` `STabs` `SStepper` `SPagination` `SDivider` |
|
|
178
|
+
| **블록** | `SPage` 의 직계 자식. 페이지를 세로로 쌓는 단위 | `SSectionHeaderCard` `SCard` `SChatMessage` `SChatSystemMessage` `SChatInput` `SLoginCard`(유일하게 `SPage` 밖에 선다 — 로그인 화면 자체가 자기 자리다, §4-6) `SForm` `SSplitter` `SScrollArea` `SCalendarBoard` `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SExpansionList` `SDraggableList` `STree` `STimeline` `SCallout` `SContextAlert` `SBarChart` `SLineChart` `SPieChart` `SDonutChart` `STabs` `SStepper` `SPagination` `SDivider` |
|
|
179
179
|
| **요소** | 블록 **안에** 놓이는 컨트롤. 혼자 페이지에 서지 않는다 | `SButton` `SGhostButton` `SMeatballButton` `SDropdownButton` `SSystemActionButton` `SField` `SInput` `SSearchInput` `SNumberInput` `STextarea` `SEditor` `SSelect` `SCheckbox` `SRadio` `SRadioGroup` `SRadioButton` `SRadioCard` `SRadioCardGroup` `SSwitch` `SToggle` `SChipInput` `SBarcodeInput` `SFilePicker` `SDatePicker` `SDatePickerYearListbox` `SDatePickerMonthListbox` `SDateRangePicker` `STimePicker` `STimeRangePicker` `SCalendar` `SListItem` `SExpansionItem` `SDraggableItem` `SChatAttachedFile` `SChatFile` `SImage` `SLinearProgress` `SCircleProgress` `SSkeleton` |
|
|
180
180
|
| **인라인** | 텍스트 흐름·셀·라벨 안에 섞인다. 혼자 블록이 되지 않는다 | `STag` `SBadge` `SIcon` `SLogo` `STextLink` `SChip` |
|
|
181
181
|
| **레이어** | 문서 흐름 **밖**에 떠서 그려진다. 어느 층에서 띄우든 레이아웃에 영향이 없다 | `SModal` `SActionModal` `SConfirmModal` `SPopup` `SDrawer` `SPopover` `STooltip` `SPortal` `SAccountListBox`(계정 행에 붙어 뜬다 — 직접 띄우지 않는다) `SLauncherListBox`(런처 버튼에 붙어 뜬다 — 직접 띄우지 않는다) `SToast` `SLoadingModal` `SLoadingContainer` `SGuide` |
|
|
@@ -571,6 +571,7 @@ Tailwind 유틸리티는 **토큰 스케일에 있는 값만** 사용한다.
|
|
|
571
571
|
| 여러 건을 여러 열로 보여주고 열끼리 비교하게 한다 | `STable` | §3-7-6 |
|
|
572
572
|
| 항목 하나의 속성들을 `라벨: 값` 으로 보여준다 | `SKeyValueTable` | §4-4 |
|
|
573
573
|
| 한 줄로 읽히는 항목을 세로로 나열한다 | `SList` + `SListItem` | §3-7-6 |
|
|
574
|
+
| 시각이 붙은 기록을 날짜별로 묶어 시간순으로 보여준다 (작업 로그·메모 이력) | `STimeline` | §3-7-6 |
|
|
574
575
|
| 대화의 메시지 한 건을 보여준다 | `SChatMessage` | |
|
|
575
576
|
| 대화 중간에 시스템이 알리는 사실을 끼운다 (상담사 배정·대화 종료 등) | `SChatSystemMessage` | 사람이 보낸 말이면 `SChatMessage` |
|
|
576
577
|
| 나열한 항목을 펼쳐 하위 내용을 보여준다 | `SExpansionList` + `SExpansionItem` | §3-7-7 |
|
|
@@ -1906,15 +1907,17 @@ const [from, setFrom] = useState<string | null>(null);
|
|
|
1906
1907
|
|
|
1907
1908
|
직접 쓰는 경우는 하나뿐이다 — **디자인 시스템에 없는 컨트롤**에 다른 필드와 똑같은 라벨·필수·에러 모양을 붙일 때.
|
|
1908
1909
|
|
|
1909
|
-
#### 3-7-6. 여러 건을 나열하는
|
|
1910
|
+
#### 3-7-6. 여러 건을 나열하는 넷 — STable vs SList vs SDraggableList vs STimeline
|
|
1910
1911
|
|
|
1911
1912
|
| 판별 | 사용 |
|
|
1912
1913
|
| --- | --- |
|
|
1913
1914
|
| 열이 둘 이상이고 **열끼리 값을 비교**한다 (정렬·합계·자릿수 맞춤) | `STable` |
|
|
1914
1915
|
| 한 항목이 **한 줄로 읽힌다** (제목 + 보조 텍스트) | `SList` + `SListItem` |
|
|
1915
1916
|
| **순서 자체가 데이터**라 사용자가 끌어서 바꾼다 | `SDraggableList` + `SDraggableItem` |
|
|
1917
|
+
| 항목마다 **시각**이 있고 날짜 머리글로 묶여 위에서 아래로 흐른다 (작업 로그·메모 이력) | `STimeline` |
|
|
1916
1918
|
|
|
1917
1919
|
- **항목 하나의 속성을 나열하는 것은 목록이 아니다.** `라벨: 값` 이 세로로 쌓이는 것은 `SKeyValueTable` 이다 (§4-4).
|
|
1920
|
+
- **`STimeline` 의 레일(점·선)과 머리글·시각 열은 컴포넌트가 그린다.** `groups` 에 데이터만 넘기고, 점·선을 `border-l` 이나 절대 위치 `span` 으로 직접 그리지 않는다 — 선이 묶음 경계와 마지막 줄에서 끊기는 규칙을 컴포넌트가 계산한다. 작성자·편집 버튼 같은 업무 내용은 각 항목의 `content` 에 넣는다. 빈 상태 안내도 `emptyText` 로 넘기고, 불러오는 중에는 `emptyText={null}` 로 빈 안내를 숨긴다.
|
|
1918
1921
|
- `SList` 는 레이아웃만 담당한다. depth 별 단일 펼침이 필요하면 `SExpansionList` 다 (§3-7-7).
|
|
1919
1922
|
- **`SList` 의 자식은 `SListItem` 을 권장한다.** 다른 자식도 그대로 렌더되지만, 펼치는 항목은 `SExpansionList` + `SExpansionItem` 이, 끌어서 순서를 바꾸는 항목은 `SDraggableList` + `SDraggableItem` 이 여닫힘·정렬 동작까지 함께 관리하므로 그쪽을 쓴다 (§3-7-7).
|
|
1920
1923
|
- **항목 사이 구분선은 리스트가 알아서 그린다.** `SListItem`·`SExpansionItem`·`SDraggableItem` 셋 다 스스로 구분선을 그리지 않는다. `SList`·`SExpansionList`·`SDraggableList` 가 자식 **사이에** 구분선을 넣으므로 아이템에 `border-b` 를 직접 붙이지 않고, 켜는 prop 도 따로 없다. 마지막 항목 아래에는 선이 남지 않는다. 테두리형(`bordered`)은 테두리가 구분 역할을 하므로 리스트가 구분선을 빼고, `gap` 으로 띄운다 — `gap` 을 준 목록에도 구분선은 들어가지 않는다.
|
|
@@ -1927,6 +1930,8 @@ const [from, setFrom] = useState<string | null>(null);
|
|
|
1927
1930
|
❌ <SList><SListItem title="일반 문의" className="border-b" />…</SList> {/* 구분선을 직접 붙이지 않는다 */}
|
|
1928
1931
|
❌ <SList><><SListItem title="일반 문의" /><SListItem title="결제 문의" /></></SList> {/* Fragment 로 묶으면 그 안쪽은 구분되지 않는다 */}
|
|
1929
1932
|
❌ <SListItem title="일반 문의" selected /> {/* clickable 없으면 선택 표시가 안 나온다 */}
|
|
1933
|
+
✅ <STimeline groups={[{ heading: '2026-10-07', entries: [{ key: id, time: '14:32', content: <Memo … /> }] }]} />
|
|
1934
|
+
❌ <div className="grid grid-cols-[52px_8px_1fr]"><span className="rounded-full …" />…</div> {/* 타임라인 레일을 직접 그리지 않는다 */}
|
|
1930
1935
|
```
|
|
1931
1936
|
|
|
1932
1937
|
##### 행 안에 컨트롤을 둘 때
|
|
@@ -2177,6 +2182,7 @@ const [selectedId, setSelectedId] = useState<string>();
|
|
|
2177
2182
|
- **실제 레이아웃을 그대로 따라 그린다.** 폼 컨트롤 자리는 `type="input"`·`"button"`·`"checkbox"` 처럼 DS 모양을 쓴다. 해당 컴포넌트 기본 size 의 크기·모서리를 토큰으로 넣으므로 **높이·radius 를 직접 주지 않는다** — 직접 주면 데이터가 왔을 때 레이아웃이 튄다. checkbox·radio·switch 는 크기를 바꾸지 않는다.
|
|
2178
2183
|
- **텍스트 줄은 `type="text"` 를 실제 텍스트와 같은 typo 클래스 안에 둔다.** 줄 높이를 부모 line-height 에서 받으므로 typo 밖에 두면 높이가 어긋난다. `text` 에 `height` 를 주지 않는다 — 높이가 필요하면 `rect` 다.
|
|
2179
2184
|
- **원은 `size` 하나로 준다.** `width`·`height` 를 따로 주면 타원이 된다.
|
|
2185
|
+
- **색은 바탕 밝기로 `mode` 만 고른다.** 흰 면·회색 면 위는 기본(`light`), 어두운 면 위는 `mode="dark"`. 색·투명도·모서리는 `--cmp-skeleton-*` 토큰으로 이미 들어가므로 `background`·`opacity`·`rounded-*` 를 직접 주지 않는다.
|
|
2180
2186
|
- **넓은 영역에는 `pulse` 를 쓰지 않는다.** 블록 전체가 줄었다 커져 레이아웃이 흔들려 보인다. 기본 `wave` 를 쓰고, 한 화면에 아주 많으면 `none`.
|
|
2181
2187
|
- **로딩 중이라는 사실은 감싸는 영역에 `aria-busy` 로 알린다.** `SSkeleton` 자체는 장식이라 보조기기에 숨겨져 있다.
|
|
2182
2188
|
|
|
@@ -2189,6 +2195,7 @@ const [selectedId, setSelectedId] = useState<string>();
|
|
|
2189
2195
|
|
|
2190
2196
|
❌ <SSkeleton type="input" height={40} /> {/* 실제 SInput 과 높이가 달라 데이터가 오면 튄다 */}
|
|
2191
2197
|
❌ <SSkeleton type="text" height={24} /> {/* text 는 세로 절반만 칠한다 — rect 를 쓴다 */}
|
|
2198
|
+
❌ <SSkeleton className="bg-grey-20" /> {/* 색은 토큰이 넣는다 — 어두운 면이면 mode="dark" */}
|
|
2192
2199
|
```
|
|
2193
2200
|
|
|
2194
2201
|
---
|
|
@@ -5385,7 +5392,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
|
|
|
5385
5392
|
- oceanblue: 15 25 50 60 65 70 75 80 85 90 95 99
|
|
5386
5393
|
- brilliantblue: 10 20 25 40 50 60 70 75 80 85 90 95 99 05
|
|
5387
5394
|
- purple: 15 25 45 55 65 70 75 80 85 90 95 99 strong moderate subtle
|
|
5388
|
-
- bg: screen frame brand subtle accent accentLight accentBright accentFaint deep danger dangerLight warning caution progress success neutralLight neutralBright tableHeader
|
|
5395
|
+
- bg: screen frame brand subtle accent accentLight accentBright accentFaint deep danger dangerLight warning caution progress success successLight neutralLight neutralBright tableHeader
|
|
5389
5396
|
- fg: primary secondary tertiary quaternary brand subtleWarm subtleCool deep success successLight dangerLight accent accentLight danger warning warningLight inverse
|
|
5390
5397
|
- border: default strong bold accent accentLight danger warning success
|
|
5391
5398
|
- disabled: bg text icon border
|
|
@@ -5487,6 +5494,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
|
|
|
5487
5494
|
--sys-color-bg-screen
|
|
5488
5495
|
--sys-color-bg-subtle
|
|
5489
5496
|
--sys-color-bg-success
|
|
5497
|
+
--sys-color-bg-successLight
|
|
5490
5498
|
--sys-color-bg-tableHeader
|
|
5491
5499
|
--sys-color-bg-warning
|
|
5492
5500
|
--sys-color-blue-moderate
|
|
@@ -11314,10 +11322,10 @@ export type SSelectValueDisplay = 'text' | 'chip';
|
|
|
11314
11322
|
| Prop | Type | Default | Description |
|
|
11315
11323
|
|------|------|---------|-------------|
|
|
11316
11324
|
| `type?` | `SSkeletonType` | `'rect'` | 자리표시 모양 - `rect`: 사각형. 폭은 부모를, 높이는 한 줄 높이를 따른다 — 이미지·카드 영역은 `height` 를 준다 - `circle`: 원형(아바타 등) - `text`: 텍스트 한 줄. 부모 타이포의 line-height 를 따르고 세로로 절반만 칠한다 - `button`·`input`·`tag`·`checkbox`·`radio`·`switch`: 해당 컴포넌트 기본 size 의 크기·모서리 |
|
|
11325
|
+
| `mode?` | `SSkeletonMode` | `'light'` | 놓이는 바탕의 밝기 - `light`: 흰 면·회색 면 위. 바탕보다 짙은 반투명 회색 - `dark`: 어두운 면 위. 바탕보다 밝은 반투명 회색 |
|
|
11317
11326
|
| `animation?` | `SSkeletonAnimation` | `'wave'` | 로딩 애니메이션 - `wave`: 하이라이트 띠가 왼쪽에서 오른쪽으로 지나간다 - `pulse`: 크기가 숨쉬듯 줄었다 커진다. 블록 전체가 움직이므로 아바타처럼 작은 모양에만 쓴다 - `fade`: 투명도가 숨쉬듯 바뀐다 - `none`: 애니메이션 없음 OS 의 동작 줄이기 설정이 켜져 있으면 어떤 값이든 멈춘다. |
|
|
11318
11327
|
| `animationSpeed?` | `number` | `1500` | 애니메이션 한 주기 (ms) |
|
|
11319
11328
|
| `square?` | `boolean` | `false` | 모서리를 각지게 |
|
|
11320
|
-
| `bordered?` | `boolean` | `false` | 테두리 |
|
|
11321
11329
|
| `size?` | `string \| number` | — | 가로·세로를 한 번에 지정. `width`·`height` 가 있으면 그쪽이 우선한다. 숫자는 px |
|
|
11322
11330
|
| `width?` | `string \| number` | — | 폭. 숫자는 px |
|
|
11323
11331
|
| `height?` | `string \| number` | — | 높이. 숫자는 px |
|
|
@@ -11330,6 +11338,12 @@ export type SSelectValueDisplay = 'text' | 'chip';
|
|
|
11330
11338
|
export type SSkeletonType = (typeof SKELETON_TYPES)[number];
|
|
11331
11339
|
```
|
|
11332
11340
|
|
|
11341
|
+
### SSkeletonMode
|
|
11342
|
+
|
|
11343
|
+
```ts
|
|
11344
|
+
export type SSkeletonMode = (typeof SKELETON_MODES)[number];
|
|
11345
|
+
```
|
|
11346
|
+
|
|
11333
11347
|
### SSkeletonAnimation
|
|
11334
11348
|
|
|
11335
11349
|
```ts
|
|
@@ -11352,6 +11366,12 @@ export const SKELETON_TYPES = [
|
|
|
11352
11366
|
] as const;
|
|
11353
11367
|
```
|
|
11354
11368
|
|
|
11369
|
+
### SKELETON_MODES
|
|
11370
|
+
|
|
11371
|
+
```ts
|
|
11372
|
+
export const SKELETON_MODES = ['light', 'dark'] as const;
|
|
11373
|
+
```
|
|
11374
|
+
|
|
11355
11375
|
### SKELETON_ANIMATIONS
|
|
11356
11376
|
|
|
11357
11377
|
```ts
|
|
@@ -12378,6 +12398,49 @@ export type STimeRangePickerRangeOrder = 'strict' | 'allow-cross-day';
|
|
|
12378
12398
|
|
|
12379
12399
|
---
|
|
12380
12400
|
|
|
12401
|
+
# STimeline
|
|
12402
|
+
|
|
12403
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
12404
|
+
|
|
12405
|
+
### STimeline
|
|
12406
|
+
|
|
12407
|
+
#### Props
|
|
12408
|
+
|
|
12409
|
+
| Prop | Type | Default | Description |
|
|
12410
|
+
|------|------|---------|-------------|
|
|
12411
|
+
| `groups` | `STimelineGroup[]` | — | 머리글로 묶은 항목 목록. 순서 그대로 그린다 |
|
|
12412
|
+
| `emptyText?` | `ReactNode` | `'내역이 없습니다.'` | 항목이 하나도 없을 때 가운데 띄우는 안내. 불러오는 중에는 `null` 을 넘겨 빈 안내가 먼저 깜빡이지 않게 한다. |
|
|
12413
|
+
|
|
12414
|
+
## Types
|
|
12415
|
+
|
|
12416
|
+
### STimelineGroup
|
|
12417
|
+
|
|
12418
|
+
```ts
|
|
12419
|
+
export interface STimelineGroup {
|
|
12420
|
+
/** React key. 생략하면 순서로 대신한다 */
|
|
12421
|
+
key?: Key;
|
|
12422
|
+
/** 묶음 머리글 (예: 날짜) */
|
|
12423
|
+
heading: ReactNode;
|
|
12424
|
+
/** 머리글 아래 항목. 비어 있으면 머리글째 그리지 않는다 */
|
|
12425
|
+
entries: STimelineEntry[];
|
|
12426
|
+
}
|
|
12427
|
+
```
|
|
12428
|
+
|
|
12429
|
+
### STimelineEntry
|
|
12430
|
+
|
|
12431
|
+
```ts
|
|
12432
|
+
export interface STimelineEntry {
|
|
12433
|
+
/** React key — 묶음 안에서 유일해야 한다 */
|
|
12434
|
+
key: Key;
|
|
12435
|
+
/** 레일 왼쪽 열에 오른쪽 정렬로 서는 시각 (예: `14:32`) */
|
|
12436
|
+
time?: ReactNode;
|
|
12437
|
+
/** 레일 오른쪽 본문. 타이포·색은 감싸는 쪽을 따른다 — 업무 내용은 소비 앱이 그린다 */
|
|
12438
|
+
content: ReactNode;
|
|
12439
|
+
}
|
|
12440
|
+
```
|
|
12441
|
+
|
|
12442
|
+
---
|
|
12443
|
+
|
|
12381
12444
|
# SToast
|
|
12382
12445
|
|
|
12383
12446
|
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
package/dist/llms.txt
CHANGED
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
| **버튼·링크** | `SButton` `SGhostButton` `SMeatballButton`(⋯ 로 '더 보기' 메뉴를 여는 아이콘 버튼) `SDropdownButton` `STextLink` `SSwitch` `SToggle` |
|
|
52
52
|
| **입력 (폼)** | `SForm` `SField` `SInput` `SChatInput`(대화 입력창) `SSearchInput` `SNumberInput` `STextarea` `SEditor` `SSelect` `SCheckbox` `SRadio` `SRadioGroup` `SRadioButton` `SRadioCard` `SRadioCardGroup` `SChip` `SChipInput` `SBarcodeInput` `SFilePicker` |
|
|
53
53
|
| **날짜·시간** | `SCalendar` `SCalendarBoard`(한 달치 일정 판) `SDatePicker` `SDatePickerYearListbox` `SDatePickerMonthListbox` `SDateRangePicker` `STimePicker` `STimeRangePicker` |
|
|
54
|
-
| **표·목록** | `SChatMessage`(대화의 메시지 한 건) `SChatAttachedFile`(입력창 위, 아직 보내지 않은 첨부 한 칸) `SChatFile`(대화 흐름에 선, 보낸 파일 한 칸) `SChatSystemMessage`(대화 흐름 가운데 서는 시스템 안내) `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SListItem` `SExpansionList` `SDraggableList` `SDraggableItem` `STree` |
|
|
54
|
+
| **표·목록** | `SChatMessage`(대화의 메시지 한 건) `SChatAttachedFile`(입력창 위, 아직 보내지 않은 첨부 한 칸) `SChatFile`(대화 흐름에 선, 보낸 파일 한 칸) `SChatSystemMessage`(대화 흐름 가운데 서는 시스템 안내) `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SListItem` `SExpansionList` `SDraggableList` `SDraggableItem` `STree` `STimeline`(날짜로 묶인 시간순 기록 — 작업 로그·메모 이력) |
|
|
55
55
|
| **레이아웃** | `SLayout` `SGnb` `SGnbSystem` `SSystemActionButton`(GNB system 패널에 한 줄씩 쌓는 액션 행 — 버튼 고르기는 §3-5) `SAccountListBox`(계정 행을 눌러 뜨는 계정 패널) `SLauncherListBox`(런처 버튼을 눌러 뜨는 서비스 목록) `SPage` `SPageHeader`(페이지 제목 영역 — `SLayout` 안에서 `SPage` 앞에 둔다) `SSectionHeaderCard` `SCard` `SLoginCard`(통합 계정 로그인 화면의 카드) `SDivider` `SSplitter` `SScrollArea` `SExpansionItem` |
|
|
56
56
|
| **내비게이션** | `STabs` `SPagination` `SStepper` |
|
|
57
57
|
| **차트** | `SBarChart`(막대 그래프 — 항목끼리 크기를 견준다. `stacked` 로 항목 안의 구성까지) `SLineChart`(꺾은선 그래프 — 순서가 있는 항목의 추이를 본다. `area` 로 크기까지, `stacked` 로 구성까지) `SPieChart`(원그래프 — 한 시점의 전체를 몇 개의 몫으로 나눈다) `SDonutChart`(도넛 그래프 — 가운데가 빈 원그래프. 구멍에 글자를 두지 않는다) |
|
|
@@ -176,7 +176,7 @@ Tailwind 유틸리티는 **토큰 스케일에 있는 값만** 사용한다.
|
|
|
176
176
|
| 층 | 무엇인가 | 컴포넌트 |
|
|
177
177
|
| --- | --- | --- |
|
|
178
178
|
| **셸** | 앱 전체 뼈대. 페이지가 바뀌어도 남는다 | `SLayout` `SGnb` `SGnbSystem`(GNB 맨 아래 판 · 전폭 상단바 오른쪽 끝) `SPage` `SPageHeader`(`SLayout` 안에서 `SPage` 앞에 둔다) |
|
|
179
|
-
| **블록** | `SPage` 의 직계 자식. 페이지를 세로로 쌓는 단위 | `SSectionHeaderCard` `SCard` `SChatMessage` `SChatSystemMessage` `SChatInput` `SLoginCard`(유일하게 `SPage` 밖에 선다 — 로그인 화면 자체가 자기 자리다, §4-6) `SForm` `SSplitter` `SScrollArea` `SCalendarBoard` `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SExpansionList` `SDraggableList` `STree` `SCallout` `SContextAlert` `SBarChart` `SLineChart` `SPieChart` `SDonutChart` `STabs` `SStepper` `SPagination` `SDivider` |
|
|
179
|
+
| **블록** | `SPage` 의 직계 자식. 페이지를 세로로 쌓는 단위 | `SSectionHeaderCard` `SCard` `SChatMessage` `SChatSystemMessage` `SChatInput` `SLoginCard`(유일하게 `SPage` 밖에 선다 — 로그인 화면 자체가 자기 자리다, §4-6) `SForm` `SSplitter` `SScrollArea` `SCalendarBoard` `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SExpansionList` `SDraggableList` `STree` `STimeline` `SCallout` `SContextAlert` `SBarChart` `SLineChart` `SPieChart` `SDonutChart` `STabs` `SStepper` `SPagination` `SDivider` |
|
|
180
180
|
| **요소** | 블록 **안에** 놓이는 컨트롤. 혼자 페이지에 서지 않는다 | `SButton` `SGhostButton` `SMeatballButton` `SDropdownButton` `SSystemActionButton` `SField` `SInput` `SSearchInput` `SNumberInput` `STextarea` `SEditor` `SSelect` `SCheckbox` `SRadio` `SRadioGroup` `SRadioButton` `SRadioCard` `SRadioCardGroup` `SSwitch` `SToggle` `SChipInput` `SBarcodeInput` `SFilePicker` `SDatePicker` `SDatePickerYearListbox` `SDatePickerMonthListbox` `SDateRangePicker` `STimePicker` `STimeRangePicker` `SCalendar` `SListItem` `SExpansionItem` `SDraggableItem` `SChatAttachedFile` `SChatFile` `SImage` `SLinearProgress` `SCircleProgress` `SSkeleton` |
|
|
181
181
|
| **인라인** | 텍스트 흐름·셀·라벨 안에 섞인다. 혼자 블록이 되지 않는다 | `STag` `SBadge` `SIcon` `SLogo` `STextLink` `SChip` |
|
|
182
182
|
| **레이어** | 문서 흐름 **밖**에 떠서 그려진다. 어느 층에서 띄우든 레이아웃에 영향이 없다 | `SModal` `SActionModal` `SConfirmModal` `SPopup` `SDrawer` `SPopover` `STooltip` `SPortal` `SAccountListBox`(계정 행에 붙어 뜬다 — 직접 띄우지 않는다) `SLauncherListBox`(런처 버튼에 붙어 뜬다 — 직접 띄우지 않는다) `SToast` `SLoadingModal` `SLoadingContainer` `SGuide` |
|
|
@@ -572,6 +572,7 @@ Tailwind 유틸리티는 **토큰 스케일에 있는 값만** 사용한다.
|
|
|
572
572
|
| 여러 건을 여러 열로 보여주고 열끼리 비교하게 한다 | `STable` | §3-7-6 |
|
|
573
573
|
| 항목 하나의 속성들을 `라벨: 값` 으로 보여준다 | `SKeyValueTable` | §4-4 |
|
|
574
574
|
| 한 줄로 읽히는 항목을 세로로 나열한다 | `SList` + `SListItem` | §3-7-6 |
|
|
575
|
+
| 시각이 붙은 기록을 날짜별로 묶어 시간순으로 보여준다 (작업 로그·메모 이력) | `STimeline` | §3-7-6 |
|
|
575
576
|
| 대화의 메시지 한 건을 보여준다 | `SChatMessage` | |
|
|
576
577
|
| 대화 중간에 시스템이 알리는 사실을 끼운다 (상담사 배정·대화 종료 등) | `SChatSystemMessage` | 사람이 보낸 말이면 `SChatMessage` |
|
|
577
578
|
| 나열한 항목을 펼쳐 하위 내용을 보여준다 | `SExpansionList` + `SExpansionItem` | §3-7-7 |
|
|
@@ -1907,15 +1908,17 @@ const [from, setFrom] = useState<string | null>(null);
|
|
|
1907
1908
|
|
|
1908
1909
|
직접 쓰는 경우는 하나뿐이다 — **디자인 시스템에 없는 컨트롤**에 다른 필드와 똑같은 라벨·필수·에러 모양을 붙일 때.
|
|
1909
1910
|
|
|
1910
|
-
#### 3-7-6. 여러 건을 나열하는
|
|
1911
|
+
#### 3-7-6. 여러 건을 나열하는 넷 — STable vs SList vs SDraggableList vs STimeline
|
|
1911
1912
|
|
|
1912
1913
|
| 판별 | 사용 |
|
|
1913
1914
|
| --- | --- |
|
|
1914
1915
|
| 열이 둘 이상이고 **열끼리 값을 비교**한다 (정렬·합계·자릿수 맞춤) | `STable` |
|
|
1915
1916
|
| 한 항목이 **한 줄로 읽힌다** (제목 + 보조 텍스트) | `SList` + `SListItem` |
|
|
1916
1917
|
| **순서 자체가 데이터**라 사용자가 끌어서 바꾼다 | `SDraggableList` + `SDraggableItem` |
|
|
1918
|
+
| 항목마다 **시각**이 있고 날짜 머리글로 묶여 위에서 아래로 흐른다 (작업 로그·메모 이력) | `STimeline` |
|
|
1917
1919
|
|
|
1918
1920
|
- **항목 하나의 속성을 나열하는 것은 목록이 아니다.** `라벨: 값` 이 세로로 쌓이는 것은 `SKeyValueTable` 이다 (§4-4).
|
|
1921
|
+
- **`STimeline` 의 레일(점·선)과 머리글·시각 열은 컴포넌트가 그린다.** `groups` 에 데이터만 넘기고, 점·선을 `border-l` 이나 절대 위치 `span` 으로 직접 그리지 않는다 — 선이 묶음 경계와 마지막 줄에서 끊기는 규칙을 컴포넌트가 계산한다. 작성자·편집 버튼 같은 업무 내용은 각 항목의 `content` 에 넣는다. 빈 상태 안내도 `emptyText` 로 넘기고, 불러오는 중에는 `emptyText={null}` 로 빈 안내를 숨긴다.
|
|
1919
1922
|
- `SList` 는 레이아웃만 담당한다. depth 별 단일 펼침이 필요하면 `SExpansionList` 다 (§3-7-7).
|
|
1920
1923
|
- **`SList` 의 자식은 `SListItem` 을 권장한다.** 다른 자식도 그대로 렌더되지만, 펼치는 항목은 `SExpansionList` + `SExpansionItem` 이, 끌어서 순서를 바꾸는 항목은 `SDraggableList` + `SDraggableItem` 이 여닫힘·정렬 동작까지 함께 관리하므로 그쪽을 쓴다 (§3-7-7).
|
|
1921
1924
|
- **항목 사이 구분선은 리스트가 알아서 그린다.** `SListItem`·`SExpansionItem`·`SDraggableItem` 셋 다 스스로 구분선을 그리지 않는다. `SList`·`SExpansionList`·`SDraggableList` 가 자식 **사이에** 구분선을 넣으므로 아이템에 `border-b` 를 직접 붙이지 않고, 켜는 prop 도 따로 없다. 마지막 항목 아래에는 선이 남지 않는다. 테두리형(`bordered`)은 테두리가 구분 역할을 하므로 리스트가 구분선을 빼고, `gap` 으로 띄운다 — `gap` 을 준 목록에도 구분선은 들어가지 않는다.
|
|
@@ -1928,6 +1931,8 @@ const [from, setFrom] = useState<string | null>(null);
|
|
|
1928
1931
|
❌ <SList><SListItem title="일반 문의" className="border-b" />…</SList> {/* 구분선을 직접 붙이지 않는다 */}
|
|
1929
1932
|
❌ <SList><><SListItem title="일반 문의" /><SListItem title="결제 문의" /></></SList> {/* Fragment 로 묶으면 그 안쪽은 구분되지 않는다 */}
|
|
1930
1933
|
❌ <SListItem title="일반 문의" selected /> {/* clickable 없으면 선택 표시가 안 나온다 */}
|
|
1934
|
+
✅ <STimeline groups={[{ heading: '2026-10-07', entries: [{ key: id, time: '14:32', content: <Memo … /> }] }]} />
|
|
1935
|
+
❌ <div className="grid grid-cols-[52px_8px_1fr]"><span className="rounded-full …" />…</div> {/* 타임라인 레일을 직접 그리지 않는다 */}
|
|
1931
1936
|
```
|
|
1932
1937
|
|
|
1933
1938
|
##### 행 안에 컨트롤을 둘 때
|
|
@@ -2178,6 +2183,7 @@ const [selectedId, setSelectedId] = useState<string>();
|
|
|
2178
2183
|
- **실제 레이아웃을 그대로 따라 그린다.** 폼 컨트롤 자리는 `type="input"`·`"button"`·`"checkbox"` 처럼 DS 모양을 쓴다. 해당 컴포넌트 기본 size 의 크기·모서리를 토큰으로 넣으므로 **높이·radius 를 직접 주지 않는다** — 직접 주면 데이터가 왔을 때 레이아웃이 튄다. checkbox·radio·switch 는 크기를 바꾸지 않는다.
|
|
2179
2184
|
- **텍스트 줄은 `type="text"` 를 실제 텍스트와 같은 typo 클래스 안에 둔다.** 줄 높이를 부모 line-height 에서 받으므로 typo 밖에 두면 높이가 어긋난다. `text` 에 `height` 를 주지 않는다 — 높이가 필요하면 `rect` 다.
|
|
2180
2185
|
- **원은 `size` 하나로 준다.** `width`·`height` 를 따로 주면 타원이 된다.
|
|
2186
|
+
- **색은 바탕 밝기로 `mode` 만 고른다.** 흰 면·회색 면 위는 기본(`light`), 어두운 면 위는 `mode="dark"`. 색·투명도·모서리는 `--cmp-skeleton-*` 토큰으로 이미 들어가므로 `background`·`opacity`·`rounded-*` 를 직접 주지 않는다.
|
|
2181
2187
|
- **넓은 영역에는 `pulse` 를 쓰지 않는다.** 블록 전체가 줄었다 커져 레이아웃이 흔들려 보인다. 기본 `wave` 를 쓰고, 한 화면에 아주 많으면 `none`.
|
|
2182
2188
|
- **로딩 중이라는 사실은 감싸는 영역에 `aria-busy` 로 알린다.** `SSkeleton` 자체는 장식이라 보조기기에 숨겨져 있다.
|
|
2183
2189
|
|
|
@@ -2190,6 +2196,7 @@ const [selectedId, setSelectedId] = useState<string>();
|
|
|
2190
2196
|
|
|
2191
2197
|
❌ <SSkeleton type="input" height={40} /> {/* 실제 SInput 과 높이가 달라 데이터가 오면 튄다 */}
|
|
2192
2198
|
❌ <SSkeleton type="text" height={24} /> {/* text 는 세로 절반만 칠한다 — rect 를 쓴다 */}
|
|
2199
|
+
❌ <SSkeleton className="bg-grey-20" /> {/* 색은 토큰이 넣는다 — 어두운 면이면 mode="dark" */}
|
|
2193
2200
|
```
|
|
2194
2201
|
|
|
2195
2202
|
---
|
|
@@ -5386,7 +5393,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
|
|
|
5386
5393
|
- oceanblue: 15 25 50 60 65 70 75 80 85 90 95 99
|
|
5387
5394
|
- brilliantblue: 10 20 25 40 50 60 70 75 80 85 90 95 99 05
|
|
5388
5395
|
- purple: 15 25 45 55 65 70 75 80 85 90 95 99 strong moderate subtle
|
|
5389
|
-
- bg: screen frame brand subtle accent accentLight accentBright accentFaint deep danger dangerLight warning caution progress success neutralLight neutralBright tableHeader
|
|
5396
|
+
- bg: screen frame brand subtle accent accentLight accentBright accentFaint deep danger dangerLight warning caution progress success successLight neutralLight neutralBright tableHeader
|
|
5390
5397
|
- fg: primary secondary tertiary quaternary brand subtleWarm subtleCool deep success successLight dangerLight accent accentLight danger warning warningLight inverse
|
|
5391
5398
|
- border: default strong bold accent accentLight danger warning success
|
|
5392
5399
|
- disabled: bg text icon border
|
|
@@ -5488,6 +5495,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
|
|
|
5488
5495
|
--sys-color-bg-screen
|
|
5489
5496
|
--sys-color-bg-subtle
|
|
5490
5497
|
--sys-color-bg-success
|
|
5498
|
+
--sys-color-bg-successLight
|
|
5491
5499
|
--sys-color-bg-tableHeader
|
|
5492
5500
|
--sys-color-bg-warning
|
|
5493
5501
|
--sys-color-blue-moderate
|
|
@@ -5563,7 +5571,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
|
|
|
5563
5571
|
--sys-color-purple-strong
|
|
5564
5572
|
--sys-color-purple-subtle
|
|
5565
5573
|
|
|
5566
|
-
## 3. 컴포넌트 인덱스 (
|
|
5574
|
+
## 3. 컴포넌트 인덱스 (88종)
|
|
5567
5575
|
|
|
5568
5576
|
**Props 는 이 문서에 없다.** 쓸 컴포넌트를 정했으면 그 컴포넌트의 README 를 읽는다.
|
|
5569
5577
|
|
|
@@ -5572,4 +5580,4 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
|
|
|
5572
5580
|
예) SButton 을 쓴다면 `dist/components/SButton/README.md`.
|
|
5573
5581
|
prop 을 추측해서 쓰지 말고 반드시 README 로 확인한다 (분류별 용도는 §1 의 "전체 컴포넌트 인덱스" 참조).
|
|
5574
5582
|
|
|
5575
|
-
SAccountListBox · SActionModal · SBadge · SBarChart · SBarcodeInput · SButton · SCalendar · SCalendarBoard · SCallout · SCard · SChatAttachedFile · SChatFile · SChatInput · SChatMessage · SChatSystemMessage · SCheckbox · SChip · SChipFilter · SChipInput · SCircleProgress · SConfirmModal · SContextAlert · SDatePicker · SDateRangePicker · SDivider · SDonutChart · SDraggableItem · SDraggableList · SDrawer · SDropdownButton · SEditor · SExpansionItem · SExpansionList · SField · SFilePicker · SForm · SGhostButton · SGnb · SGnbSystem · SGuide · SIcon · SImage · SInput · SKeyValueTable · SLauncherListBox · SLayout · SLineChart · SLinearProgress · SList · SListItem · SLoadingContainer · SLoadingModal · SLoginCard · SLogo · SMeatballButton · SModal · SNumberInput · SPage · SPagination · SPieChart · SPopover · SPopup · SPortal · SRadio · SRadioButton · SRadioCard · SScrollArea · SSearchInput · SSectionHeaderCard · SSelect · SSkeleton · SSplitter · SStepper · SSwitch · SSystemActionButton · STable · STableBar · STabs · STag · STextLink · STextarea · STimePicker · STimeRangePicker · SToast · SToggle · STooltip · STree
|
|
5583
|
+
SAccountListBox · SActionModal · SBadge · SBarChart · SBarcodeInput · SButton · SCalendar · SCalendarBoard · SCallout · SCard · SChatAttachedFile · SChatFile · SChatInput · SChatMessage · SChatSystemMessage · SCheckbox · SChip · SChipFilter · SChipInput · SCircleProgress · SConfirmModal · SContextAlert · SDatePicker · SDateRangePicker · SDivider · SDonutChart · SDraggableItem · SDraggableList · SDrawer · SDropdownButton · SEditor · SExpansionItem · SExpansionList · SField · SFilePicker · SForm · SGhostButton · SGnb · SGnbSystem · SGuide · SIcon · SImage · SInput · SKeyValueTable · SLauncherListBox · SLayout · SLineChart · SLinearProgress · SList · SListItem · SLoadingContainer · SLoadingModal · SLoginCard · SLogo · SMeatballButton · SModal · SNumberInput · SPage · SPagination · SPieChart · SPopover · SPopup · SPortal · SRadio · SRadioButton · SRadioCard · SScrollArea · SSearchInput · SSectionHeaderCard · SSelect · SSkeleton · SSplitter · SStepper · SSwitch · SSystemActionButton · STable · STableBar · STabs · STag · STextLink · STextarea · STimePicker · STimeRangePicker · STimeline · SToast · SToggle · STooltip · STree
|
package/dist/styles.css
CHANGED
|
@@ -194,6 +194,7 @@
|
|
|
194
194
|
--color-bg-caution: #FFC700;
|
|
195
195
|
--color-bg-progress: #0075FF;
|
|
196
196
|
--color-bg-success: #00973C;
|
|
197
|
+
--color-bg-successLight: #12B553;
|
|
197
198
|
--color-bg-neutralLight: #F6F6F6;
|
|
198
199
|
--color-bg-neutralBright: #F9F9F9;
|
|
199
200
|
--color-bg-tableHeader: #F5FAFF;
|
|
@@ -391,8 +392,9 @@
|
|
|
391
392
|
--border-width-item-selected: 2px;
|
|
392
393
|
--opacity-005: 5%;
|
|
393
394
|
--opacity-008: 8%;
|
|
394
|
-
--opacity-
|
|
395
|
+
--opacity-016: 16%;
|
|
395
396
|
--opacity-030: 30%;
|
|
397
|
+
--opacity-040: 40%;
|
|
396
398
|
--opacity-050: 50%;
|
|
397
399
|
--opacity-060: 60%;
|
|
398
400
|
--opacity-080: 80%;
|
|
@@ -642,6 +644,9 @@
|
|
|
642
644
|
.top-\[-1px\] {
|
|
643
645
|
top: -1px;
|
|
644
646
|
}
|
|
647
|
+
.top-\[6px\] {
|
|
648
|
+
top: 6px;
|
|
649
|
+
}
|
|
645
650
|
.top-\[10px\] {
|
|
646
651
|
top: 10px;
|
|
647
652
|
}
|
|
@@ -651,6 +656,9 @@
|
|
|
651
656
|
.top-\[13px\] {
|
|
652
657
|
top: 13px;
|
|
653
658
|
}
|
|
659
|
+
.top-\[14px\] {
|
|
660
|
+
top: 14px;
|
|
661
|
+
}
|
|
654
662
|
.top-\[15px\] {
|
|
655
663
|
top: 15px;
|
|
656
664
|
}
|
|
@@ -705,6 +713,9 @@
|
|
|
705
713
|
.bottom-\[-1px\] {
|
|
706
714
|
bottom: -1px;
|
|
707
715
|
}
|
|
716
|
+
.bottom-\[-8px\] {
|
|
717
|
+
bottom: -8px;
|
|
718
|
+
}
|
|
708
719
|
.bottom-\[2px\] {
|
|
709
720
|
bottom: 2px;
|
|
710
721
|
}
|
|
@@ -1003,6 +1014,10 @@
|
|
|
1003
1014
|
width: 24px;
|
|
1004
1015
|
height: 24px;
|
|
1005
1016
|
}
|
|
1017
|
+
.size-\[var\(--cmp-timeline-rail-dot-size\)\] {
|
|
1018
|
+
width: var(--cmp-timeline-rail-dot-size);
|
|
1019
|
+
height: var(--cmp-timeline-rail-dot-size);
|
|
1020
|
+
}
|
|
1006
1021
|
.size-full {
|
|
1007
1022
|
width: 100%;
|
|
1008
1023
|
height: 100%;
|
|
@@ -1091,6 +1106,9 @@
|
|
|
1091
1106
|
.h-\[56px\] {
|
|
1092
1107
|
height: 56px;
|
|
1093
1108
|
}
|
|
1109
|
+
.h-\[60px\] {
|
|
1110
|
+
height: 60px;
|
|
1111
|
+
}
|
|
1094
1112
|
.h-\[72px\] {
|
|
1095
1113
|
height: 72px;
|
|
1096
1114
|
}
|
|
@@ -1478,6 +1496,9 @@
|
|
|
1478
1496
|
.w-\[var\(--cmp-pagination-height\)\] {
|
|
1479
1497
|
width: var(--cmp-pagination-height);
|
|
1480
1498
|
}
|
|
1499
|
+
.w-\[var\(--cmp-timeline-rail-line-width\)\] {
|
|
1500
|
+
width: var(--cmp-timeline-rail-line-width);
|
|
1501
|
+
}
|
|
1481
1502
|
.w-\[var\(--sys-size-control-md-height\)\] {
|
|
1482
1503
|
width: var(--sys-size-control-md-height);
|
|
1483
1504
|
}
|
|
@@ -1799,6 +1820,12 @@
|
|
|
1799
1820
|
.grid-cols-7 {
|
|
1800
1821
|
grid-template-columns: repeat(7, minmax(0, 1fr));
|
|
1801
1822
|
}
|
|
1823
|
+
.grid-cols-\[52px_8px_1fr\] {
|
|
1824
|
+
grid-template-columns: 52px 8px 1fr;
|
|
1825
|
+
}
|
|
1826
|
+
.grid-cols-\[52px_var\(--cmp-timeline-rail-dot-size\)_minmax\(0\,1fr\)\] {
|
|
1827
|
+
grid-template-columns: 52px var(--cmp-timeline-rail-dot-size) minmax(0,1fr);
|
|
1828
|
+
}
|
|
1802
1829
|
.grid-cols-\[200px_1fr\] {
|
|
1803
1830
|
grid-template-columns: 200px 1fr;
|
|
1804
1831
|
}
|
|
@@ -2263,12 +2290,21 @@
|
|
|
2263
2290
|
.gap-x-\(--cmp-chart-legend-group-gap\) {
|
|
2264
2291
|
column-gap: var(--cmp-chart-legend-group-gap);
|
|
2265
2292
|
}
|
|
2293
|
+
.gap-x-\[6px\] {
|
|
2294
|
+
column-gap: 6px;
|
|
2295
|
+
}
|
|
2296
|
+
.gap-x-\[8px\] {
|
|
2297
|
+
column-gap: 8px;
|
|
2298
|
+
}
|
|
2266
2299
|
.gap-x-\[var\(--cmp-datepicker-calendar-legend-group-gap\)\] {
|
|
2267
2300
|
column-gap: var(--cmp-datepicker-calendar-legend-group-gap);
|
|
2268
2301
|
}
|
|
2269
2302
|
.gap-x-sd-12 {
|
|
2270
2303
|
column-gap: var(--spacing-sd-12);
|
|
2271
2304
|
}
|
|
2305
|
+
.gap-y-\[2px\] {
|
|
2306
|
+
row-gap: 2px;
|
|
2307
|
+
}
|
|
2272
2308
|
.gap-y-\[4px\] {
|
|
2273
2309
|
row-gap: 4px;
|
|
2274
2310
|
}
|
|
@@ -2460,6 +2496,9 @@
|
|
|
2460
2496
|
.rounded-\[var\(--cmp-table-radius\)\] {
|
|
2461
2497
|
border-radius: var(--cmp-table-radius);
|
|
2462
2498
|
}
|
|
2499
|
+
.rounded-\[var\(--cmp-timeline-rail-dot-radius\)\] {
|
|
2500
|
+
border-radius: var(--cmp-timeline-rail-dot-radius);
|
|
2501
|
+
}
|
|
2463
2502
|
.rounded-full {
|
|
2464
2503
|
border-radius: var(--radius-full);
|
|
2465
2504
|
}
|
|
@@ -3123,6 +3162,12 @@
|
|
|
3123
3162
|
.bg-\[var\(--cmp-table-header-resizingBar-color\)\] {
|
|
3124
3163
|
background-color: var(--cmp-table-header-resizingBar-color);
|
|
3125
3164
|
}
|
|
3165
|
+
.bg-\[var\(--cmp-timeline-rail-dot-bg\)\] {
|
|
3166
|
+
background-color: var(--cmp-timeline-rail-dot-bg);
|
|
3167
|
+
}
|
|
3168
|
+
.bg-\[var\(--cmp-timeline-rail-line-color\)\] {
|
|
3169
|
+
background-color: var(--cmp-timeline-rail-line-color);
|
|
3170
|
+
}
|
|
3126
3171
|
.bg-\[var\(--co-bg\)\] {
|
|
3127
3172
|
background-color: var(--co-bg);
|
|
3128
3173
|
}
|
|
@@ -3189,6 +3234,9 @@
|
|
|
3189
3234
|
.bg-disabled-bg {
|
|
3190
3235
|
background-color: var(--color-disabled-bg);
|
|
3191
3236
|
}
|
|
3237
|
+
.bg-fg-primary {
|
|
3238
|
+
background-color: var(--color-fg-primary);
|
|
3239
|
+
}
|
|
3192
3240
|
.bg-gray-50 {
|
|
3193
3241
|
background-color: var(--color-gray-50);
|
|
3194
3242
|
}
|
|
@@ -3663,6 +3711,9 @@
|
|
|
3663
3711
|
.py-\[var\(--cmp-popover-paddingY\)\] {
|
|
3664
3712
|
padding-block: var(--cmp-popover-paddingY);
|
|
3665
3713
|
}
|
|
3714
|
+
.py-\[var\(--cmp-timeline-heading-paddingY\)\] {
|
|
3715
|
+
padding-block: var(--cmp-timeline-heading-paddingY);
|
|
3716
|
+
}
|
|
3666
3717
|
.py-sd-2 {
|
|
3667
3718
|
padding-block: var(--spacing-sd-2);
|
|
3668
3719
|
}
|
|
@@ -3732,6 +3783,9 @@
|
|
|
3732
3783
|
.pr-\[var\(--cmp-overlay-header-paddingX\)\] {
|
|
3733
3784
|
padding-right: var(--cmp-overlay-header-paddingX);
|
|
3734
3785
|
}
|
|
3786
|
+
.pr-\[var\(--cmp-timeline-entry-horizontalGap\)\] {
|
|
3787
|
+
padding-right: var(--cmp-timeline-entry-horizontalGap);
|
|
3788
|
+
}
|
|
3735
3789
|
.pr-sd-4 {
|
|
3736
3790
|
padding-right: var(--spacing-sd-4);
|
|
3737
3791
|
}
|
|
@@ -3765,6 +3819,9 @@
|
|
|
3765
3819
|
.pb-\[var\(--cmp-pageBody-padding-scrollEnd\)\] {
|
|
3766
3820
|
padding-bottom: var(--cmp-pageBody-padding-scrollEnd);
|
|
3767
3821
|
}
|
|
3822
|
+
.pb-\[var\(--cmp-timeline-entry-gap\)\] {
|
|
3823
|
+
padding-bottom: var(--cmp-timeline-entry-gap);
|
|
3824
|
+
}
|
|
3768
3825
|
.pb-sd-16 {
|
|
3769
3826
|
padding-bottom: var(--spacing-sd-16);
|
|
3770
3827
|
}
|
|
@@ -3801,6 +3858,9 @@
|
|
|
3801
3858
|
.pl-\[var\(--cmp-overlay-header-paddingX\)\] {
|
|
3802
3859
|
padding-left: var(--cmp-overlay-header-paddingX);
|
|
3803
3860
|
}
|
|
3861
|
+
.pl-\[var\(--cmp-timeline-entry-horizontalGap\)\] {
|
|
3862
|
+
padding-left: var(--cmp-timeline-entry-horizontalGap);
|
|
3863
|
+
}
|
|
3804
3864
|
.pl-sd-4 {
|
|
3805
3865
|
padding-left: var(--spacing-sd-4);
|
|
3806
3866
|
}
|
|
@@ -4351,6 +4411,15 @@
|
|
|
4351
4411
|
.text-\[color\:var\(--cmp-progress-color-label\)\] {
|
|
4352
4412
|
color: var(--cmp-progress-color-label);
|
|
4353
4413
|
}
|
|
4414
|
+
.text-\[color\:var\(--cmp-timeline-empty-color\)\] {
|
|
4415
|
+
color: var(--cmp-timeline-empty-color);
|
|
4416
|
+
}
|
|
4417
|
+
.text-\[color\:var\(--cmp-timeline-heading-color\)\] {
|
|
4418
|
+
color: var(--cmp-timeline-heading-color);
|
|
4419
|
+
}
|
|
4420
|
+
.text-\[color\:var\(--cmp-timeline-time-color\)\] {
|
|
4421
|
+
color: var(--cmp-timeline-time-color);
|
|
4422
|
+
}
|
|
4354
4423
|
.text-\[color\:var\(--co-content\)\] {
|
|
4355
4424
|
color: var(--co-content);
|
|
4356
4425
|
}
|
|
@@ -4396,6 +4465,9 @@
|
|
|
4396
4465
|
.text-blue-strong {
|
|
4397
4466
|
color: var(--color-blue-strong);
|
|
4398
4467
|
}
|
|
4468
|
+
.text-brilliantblue-85 {
|
|
4469
|
+
color: var(--color-brilliantblue-85);
|
|
4470
|
+
}
|
|
4399
4471
|
.text-fg-accent {
|
|
4400
4472
|
color: var(--color-fg-accent);
|
|
4401
4473
|
}
|
|
@@ -4456,6 +4528,9 @@
|
|
|
4456
4528
|
.text-grey-80 {
|
|
4457
4529
|
color: var(--color-grey-80);
|
|
4458
4530
|
}
|
|
4531
|
+
.text-grey-95 {
|
|
4532
|
+
color: var(--color-grey-95);
|
|
4533
|
+
}
|
|
4459
4534
|
.text-inherit {
|
|
4460
4535
|
color: inherit;
|
|
4461
4536
|
}
|
|
@@ -4465,6 +4540,9 @@
|
|
|
4465
4540
|
.text-oceanblue-75 {
|
|
4466
4541
|
color: var(--color-oceanblue-75);
|
|
4467
4542
|
}
|
|
4543
|
+
.text-red-70 {
|
|
4544
|
+
color: var(--color-red-70);
|
|
4545
|
+
}
|
|
4468
4546
|
.text-red-75 {
|
|
4469
4547
|
color: var(--color-red-75);
|
|
4470
4548
|
}
|
|
@@ -7422,6 +7500,7 @@
|
|
|
7422
7500
|
--sys-color-bg-caution: #FFC700;
|
|
7423
7501
|
--sys-color-bg-progress: #0075FF;
|
|
7424
7502
|
--sys-color-bg-success: #00973C;
|
|
7503
|
+
--sys-color-bg-successLight: #12B553;
|
|
7425
7504
|
--sys-color-bg-neutralLight: #F6F6F6;
|
|
7426
7505
|
--sys-color-bg-neutralBright: #F9F9F9;
|
|
7427
7506
|
--sys-color-bg-tableHeader: #F5FAFF;
|
|
@@ -8306,6 +8385,17 @@
|
|
|
8306
8385
|
--cmp-progress-bar-text: #FFFFFF;
|
|
8307
8386
|
--cmp-progress-inverse-color: #FFFFFF;
|
|
8308
8387
|
--cmp-progress-inverse-opacity: 40%;
|
|
8388
|
+
--cmp-timeline-heading-color: #222222;
|
|
8389
|
+
--cmp-timeline-heading-paddingY: 8px;
|
|
8390
|
+
--cmp-timeline-time-color: #555555;
|
|
8391
|
+
--cmp-timeline-rail-dot-size: 8px;
|
|
8392
|
+
--cmp-timeline-rail-dot-radius: 9999px;
|
|
8393
|
+
--cmp-timeline-rail-dot-bg: #CCCCCC;
|
|
8394
|
+
--cmp-timeline-rail-line-width: 1px;
|
|
8395
|
+
--cmp-timeline-rail-line-color: #D8D8D8;
|
|
8396
|
+
--cmp-timeline-entry-horizontalGap: 16px;
|
|
8397
|
+
--cmp-timeline-entry-gap: 16px;
|
|
8398
|
+
--cmp-timeline-empty-color: #AAAAAA;
|
|
8309
8399
|
--cmp-table-header-height: 36px;
|
|
8310
8400
|
--cmp-table-header-paddingX: 16px;
|
|
8311
8401
|
--cmp-table-header-gap: 4px;
|
|
@@ -8894,6 +8984,11 @@
|
|
|
8894
8984
|
--cmp-chart-palette-multi-grey: #737373;
|
|
8895
8985
|
--cmp-chart-palette-multi-red: #FB4444;
|
|
8896
8986
|
--cmp-chart-palette-single: #2D8DFF;
|
|
8987
|
+
--cmp-skeleton-bg-light: #EEEEEE;
|
|
8988
|
+
--cmp-skeleton-bg-dark: #222222;
|
|
8989
|
+
--cmp-skeleton-highlight: #FFFFFF;
|
|
8990
|
+
--cmp-skeleton-opacity: 16%;
|
|
8991
|
+
--cmp-skeleton-radius: 6px;
|
|
8897
8992
|
}
|
|
8898
8993
|
@layer base {
|
|
8899
8994
|
html {
|
package/dist/theme.css
CHANGED
|
@@ -159,6 +159,7 @@
|
|
|
159
159
|
--color-bg-caution: #FFC700;
|
|
160
160
|
--color-bg-progress: #0075FF;
|
|
161
161
|
--color-bg-success: #00973C;
|
|
162
|
+
--color-bg-successLight: #12B553;
|
|
162
163
|
--color-bg-neutralLight: #F6F6F6;
|
|
163
164
|
--color-bg-neutralBright: #F9F9F9;
|
|
164
165
|
--color-bg-tableHeader: #F5FAFF;
|
|
@@ -362,8 +363,9 @@
|
|
|
362
363
|
--border-width-item-selected: 2px;
|
|
363
364
|
--opacity-005: 5%;
|
|
364
365
|
--opacity-008: 8%;
|
|
365
|
-
--opacity-
|
|
366
|
+
--opacity-016: 16%;
|
|
366
367
|
--opacity-030: 30%;
|
|
368
|
+
--opacity-040: 40%;
|
|
367
369
|
--opacity-050: 50%;
|
|
368
370
|
--opacity-060: 60%;
|
|
369
371
|
--opacity-080: 80%;
|
|
@@ -497,6 +499,7 @@
|
|
|
497
499
|
--sys-color-bg-caution: #FFC700;
|
|
498
500
|
--sys-color-bg-progress: #0075FF;
|
|
499
501
|
--sys-color-bg-success: #00973C;
|
|
502
|
+
--sys-color-bg-successLight: #12B553;
|
|
500
503
|
--sys-color-bg-neutralLight: #F6F6F6;
|
|
501
504
|
--sys-color-bg-neutralBright: #F9F9F9;
|
|
502
505
|
--sys-color-bg-tableHeader: #F5FAFF;
|
|
@@ -1383,6 +1386,17 @@
|
|
|
1383
1386
|
--cmp-progress-bar-text: #FFFFFF;
|
|
1384
1387
|
--cmp-progress-inverse-color: #FFFFFF;
|
|
1385
1388
|
--cmp-progress-inverse-opacity: 40%;
|
|
1389
|
+
--cmp-timeline-heading-color: #222222;
|
|
1390
|
+
--cmp-timeline-heading-paddingY: 8px;
|
|
1391
|
+
--cmp-timeline-time-color: #555555;
|
|
1392
|
+
--cmp-timeline-rail-dot-size: 8px;
|
|
1393
|
+
--cmp-timeline-rail-dot-radius: 9999px;
|
|
1394
|
+
--cmp-timeline-rail-dot-bg: #CCCCCC;
|
|
1395
|
+
--cmp-timeline-rail-line-width: 1px;
|
|
1396
|
+
--cmp-timeline-rail-line-color: #D8D8D8;
|
|
1397
|
+
--cmp-timeline-entry-horizontalGap: 16px;
|
|
1398
|
+
--cmp-timeline-entry-gap: 16px;
|
|
1399
|
+
--cmp-timeline-empty-color: #AAAAAA;
|
|
1386
1400
|
--cmp-table-header-height: 36px;
|
|
1387
1401
|
--cmp-table-header-paddingX: 16px;
|
|
1388
1402
|
--cmp-table-header-gap: 4px;
|
|
@@ -1971,6 +1985,11 @@
|
|
|
1971
1985
|
--cmp-chart-palette-multi-grey: #737373;
|
|
1972
1986
|
--cmp-chart-palette-multi-red: #FB4444;
|
|
1973
1987
|
--cmp-chart-palette-single: #2D8DFF;
|
|
1988
|
+
--cmp-skeleton-bg-light: #EEEEEE;
|
|
1989
|
+
--cmp-skeleton-bg-dark: #222222;
|
|
1990
|
+
--cmp-skeleton-highlight: #FFFFFF;
|
|
1991
|
+
--cmp-skeleton-opacity: 16%;
|
|
1992
|
+
--cmp-skeleton-radius: 6px;
|
|
1974
1993
|
}
|
|
1975
1994
|
|
|
1976
1995
|
/* 전역 스크롤바 — overflow(auto/scroll)로 스크롤이 생기는 모든 요소에 SScrollArea 기본 스크롤바를 자동 적용.
|
package/eslint/scale.gen.mjs
CHANGED
|
@@ -13,7 +13,7 @@ export const RADIUS = ["2","4","6","8","12","full","control-sm","control-md","fe
|
|
|
13
13
|
export const TYPO_PRESETS = ["typo-body-lg-bold","typo-body-lg-default","typo-body-lg-medium","typo-body-lg-semibold","typo-body-md-bold","typo-body-md-default","typo-body-md-medium","typo-body-md-semibold","typo-body-sm-bold","typo-body-sm-default","typo-body-sm-medium","typo-body-sm-semibold","typo-body-xs-bold","typo-body-xs-default","typo-body-xs-medium","typo-body-xs-semibold","typo-control-lg","typo-control-md-default","typo-control-md-underline","typo-control-sm-default","typo-control-sm-underline","typo-control-xs-bold","typo-control-xs-default","typo-control-xs-medium","typo-control-xs-underline","typo-feedback-md-bold","typo-feedback-md-medium","typo-feedback-md-regular","typo-feedback-md-underline","typo-feedback-sm-bold","typo-feedback-sm-medium","typo-feedback-sm-regular","typo-feedback-sm-semibold","typo-feedback-sm-underline","typo-feedback-xs","typo-field-lg-bold","typo-field-lg-default","typo-field-lg-medium","typo-field-md-bold","typo-field-md-default","typo-field-md-medium","typo-field-sm-bold","typo-field-sm-default","typo-field-sm-medium","typo-field-xs-default","typo-heading-lg","typo-heading-md","typo-heading-sm","typo-heading-xl","typo-heading-xs","typo-heading-xxs","typo-item-md-default","typo-item-md-selected","typo-item-sm-default","typo-item-sm-selected","typo-navigation-lg-medium","typo-navigation-lg-semibold","typo-navigation-md-bold","typo-navigation-sm-bold","typo-navigation-sm-default","typo-navigation-sm-medium","typo-navigation-xs-bold","typo-navigation-xs-medium","typo-table-accent","typo-table-body","typo-table-header"];
|
|
14
14
|
|
|
15
15
|
/** 색상 유틸리티 키 (text-*, bg-*, border-* 공통) */
|
|
16
|
-
export const COLORS = ["bg-accent","bg-accentBright","bg-accentFaint","bg-accentLight","bg-brand","bg-caution","bg-danger","bg-dangerLight","bg-deep","bg-frame","bg-neutralBright","bg-neutralLight","bg-progress","bg-screen","bg-subtle","bg-success","bg-tableHeader","bg-warning","black","blue-moderate","blue-strong","blue-subtle","border-accent","border-accentLight","border-bold","border-danger","border-default","border-strong","border-success","border-warning","brilliantblue-05","brilliantblue-10","brilliantblue-20","brilliantblue-25","brilliantblue-40","brilliantblue-50","brilliantblue-60","brilliantblue-70","brilliantblue-75","brilliantblue-80","brilliantblue-85","brilliantblue-90","brilliantblue-95","brilliantblue-99","control-bg-inverseHover","danger-15","danger-20","danger-30","danger-45","danger-60","danger-70","danger-75","danger-80","danger-85","danger-90","danger-95","danger-99","danger-moderate","danger-strong","danger-subtle","darkblue-moderate","darkblue-strong","darkblue-subtle","disabled-bg","disabled-border","disabled-icon","disabled-text","divider-default","fg-accent","fg-accentLight","fg-brand","fg-danger","fg-dangerLight","fg-deep","fg-inverse","fg-primary","fg-quaternary","fg-secondary","fg-subtleCool","fg-subtleWarm","fg-success","fg-successLight","fg-tertiary","fg-warning","fg-warningLight","field-bg-default","field-bg-hover","field-bg-readOnly","field-border-danger","field-border-default","field-border-focus","field-border-hover","field-border-success","field-icon-default","field-text-default","field-text-placeholder","field-text-readOnly","green-15","green-25","green-45","green-55","green-65","green-70","green-75","green-80","green-85","green-90","green-95","green-99","green-moderate","green-strong","green-subtle","grey-05","grey-10","grey-20","grey-25","grey-30","grey-35","grey-45","grey-50","grey-55","grey-60","grey-65","grey-70","grey-80","grey-85","grey-90","grey-95","grey-moderate","grey-strong","grey-subtle","indigo-moderate","indigo-strong","indigo-subtle","lightblue-strong","lightblue-subtle","link-accent","navigation-gnb-bg-dark","navigation-gnb-bg-system","oceanblue-15","oceanblue-25","oceanblue-50","oceanblue-60","oceanblue-65","oceanblue-70","oceanblue-75","oceanblue-80","oceanblue-85","oceanblue-90","oceanblue-95","oceanblue-99","olive-05","olive-10","olive-15","olive-20","olive-30","olive-45","olive-55","olive-65","olive-70","olive-80","olive-90","olive-95","orange-10","orange-20","orange-35","orange-45","orange-55","orange-60","orange-65","orange-75","orange-85","orange-90","orange-95","orange-99","orange-moderate","orange-strong","orange-subtle","primary-05","primary-10","primary-20","primary-25","primary-40","primary-50","primary-60","primary-70","primary-75","primary-80","primary-85","primary-90","primary-95","primary-99","purple-15","purple-25","purple-45","purple-55","purple-65","purple-70","purple-75","purple-80","purple-85","purple-90","purple-95","purple-99","purple-moderate","purple-strong","purple-subtle","red-15","red-20","red-30","red-45","red-60","red-70","red-75","red-80","red-85","red-90","red-95","red-99","red-moderate","red-strong","red-subtle","steelblue-10","steelblue-25","steelblue-45","steelblue-60","steelblue-65","steelblue-70","steelblue-75","steelblue-80","steelblue-85","steelblue-90","steelblue-95","steelblue-99","success-15","success-25","success-45","success-55","success-65","success-70","success-75","success-80","success-85","success-90","success-95","success-99","success-moderate","success-strong","success-subtle","warning-10","warning-20","warning-35","warning-45","warning-55","warning-60","warning-65","warning-75","warning-85","warning-90","warning-95","warning-99","warning-moderate","warning-strong","warning-subtle","white","yellow-10","yellow-20","yellow-25","yellow-30","yellow-40","yellow-45","yellow-50","yellow-60","yellow-70","yellow-80","yellow-90","yellow-95","yellow-moderate","yellow-strong","yellow-subtle"];
|
|
16
|
+
export const COLORS = ["bg-accent","bg-accentBright","bg-accentFaint","bg-accentLight","bg-brand","bg-caution","bg-danger","bg-dangerLight","bg-deep","bg-frame","bg-neutralBright","bg-neutralLight","bg-progress","bg-screen","bg-subtle","bg-success","bg-successLight","bg-tableHeader","bg-warning","black","blue-moderate","blue-strong","blue-subtle","border-accent","border-accentLight","border-bold","border-danger","border-default","border-strong","border-success","border-warning","brilliantblue-05","brilliantblue-10","brilliantblue-20","brilliantblue-25","brilliantblue-40","brilliantblue-50","brilliantblue-60","brilliantblue-70","brilliantblue-75","brilliantblue-80","brilliantblue-85","brilliantblue-90","brilliantblue-95","brilliantblue-99","control-bg-inverseHover","danger-15","danger-20","danger-30","danger-45","danger-60","danger-70","danger-75","danger-80","danger-85","danger-90","danger-95","danger-99","danger-moderate","danger-strong","danger-subtle","darkblue-moderate","darkblue-strong","darkblue-subtle","disabled-bg","disabled-border","disabled-icon","disabled-text","divider-default","fg-accent","fg-accentLight","fg-brand","fg-danger","fg-dangerLight","fg-deep","fg-inverse","fg-primary","fg-quaternary","fg-secondary","fg-subtleCool","fg-subtleWarm","fg-success","fg-successLight","fg-tertiary","fg-warning","fg-warningLight","field-bg-default","field-bg-hover","field-bg-readOnly","field-border-danger","field-border-default","field-border-focus","field-border-hover","field-border-success","field-icon-default","field-text-default","field-text-placeholder","field-text-readOnly","green-15","green-25","green-45","green-55","green-65","green-70","green-75","green-80","green-85","green-90","green-95","green-99","green-moderate","green-strong","green-subtle","grey-05","grey-10","grey-20","grey-25","grey-30","grey-35","grey-45","grey-50","grey-55","grey-60","grey-65","grey-70","grey-80","grey-85","grey-90","grey-95","grey-moderate","grey-strong","grey-subtle","indigo-moderate","indigo-strong","indigo-subtle","lightblue-strong","lightblue-subtle","link-accent","navigation-gnb-bg-dark","navigation-gnb-bg-system","oceanblue-15","oceanblue-25","oceanblue-50","oceanblue-60","oceanblue-65","oceanblue-70","oceanblue-75","oceanblue-80","oceanblue-85","oceanblue-90","oceanblue-95","oceanblue-99","olive-05","olive-10","olive-15","olive-20","olive-30","olive-45","olive-55","olive-65","olive-70","olive-80","olive-90","olive-95","orange-10","orange-20","orange-35","orange-45","orange-55","orange-60","orange-65","orange-75","orange-85","orange-90","orange-95","orange-99","orange-moderate","orange-strong","orange-subtle","primary-05","primary-10","primary-20","primary-25","primary-40","primary-50","primary-60","primary-70","primary-75","primary-80","primary-85","primary-90","primary-95","primary-99","purple-15","purple-25","purple-45","purple-55","purple-65","purple-70","purple-75","purple-80","purple-85","purple-90","purple-95","purple-99","purple-moderate","purple-strong","purple-subtle","red-15","red-20","red-30","red-45","red-60","red-70","red-75","red-80","red-85","red-90","red-95","red-99","red-moderate","red-strong","red-subtle","steelblue-10","steelblue-25","steelblue-45","steelblue-60","steelblue-65","steelblue-70","steelblue-75","steelblue-80","steelblue-85","steelblue-90","steelblue-95","steelblue-99","success-15","success-25","success-45","success-55","success-65","success-70","success-75","success-80","success-85","success-90","success-95","success-99","success-moderate","success-strong","success-subtle","warning-10","warning-20","warning-35","warning-45","warning-55","warning-60","warning-65","warning-75","warning-85","warning-90","warning-95","warning-99","warning-moderate","warning-strong","warning-subtle","white","yellow-10","yellow-20","yellow-25","yellow-30","yellow-40","yellow-45","yellow-50","yellow-60","yellow-70","yellow-80","yellow-90","yellow-95","yellow-moderate","yellow-strong","yellow-subtle"];
|
|
17
17
|
|
|
18
18
|
/** 필드 폭 등급 (px). SFieldWidth 의 'xs'|'sm'|'md'|'lg'|'xl' 이 풀리는 값이다 */
|
|
19
19
|
export const FIELD_WIDTHS = {"xs":80,"sm":120,"md":160,"lg":240,"xl":480};
|