sellmate-design-system-react 9.0.0-beta.0 → 9.0.0-beta.3

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.
@@ -40,7 +40,7 @@
40
40
  | **표·목록** | `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SListItem` `SExpansionList` `SDraggableList` `SDraggableItem` `STree` |
41
41
  | **레이아웃** | `SLayout` `SGnb` `SPage`(제목 영역은 `header` prop) `SSectionHeaderCard` `SCard` `SDivider` `SSplitter` `SScrollArea` `SExpansionItem` |
42
42
  | **내비게이션** | `STabs` `SPagination` `SStepper` |
43
- | **표시·상태** | `STag` `SBadge` `SIcon` `SCallout` `SGuide` |
43
+ | **표시·상태** | `STag` `SBadge` `SIcon` `SImage` `SCallout` `SGuide` |
44
44
  | **진행·로딩** | `SLinearProgress` `SCircleProgress` `SLoadingContainer` `SLoadingModal` |
45
45
  | **오버레이** | `STooltip` `SPopover` `SPopup` `SDrawer` `SPortal` |
46
46
  | **모달** | `SModal.confirm()` `SModal.create()` + `SActionModal` `SConfirmModal` `SModalOutlet`(앱 루트 1회) |
@@ -146,7 +146,7 @@ Tailwind 유틸리티는 **토큰 스케일에 있는 값만** 사용한다.
146
146
  | --- | --- | --- |
147
147
  | **셸** | 앱 전체 뼈대. 페이지가 바뀌어도 남는다 | `SLayout` `SGnb` `SPage`(제목 영역은 `header` prop) |
148
148
  | **블록** | `SPage` 의 직계 자식. 페이지를 세로로 쌓는 단위 | `SSectionHeaderCard` `SCard` `SForm` `SSplitter` `SScrollArea` `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SExpansionList` `SDraggableList` `STree` `SCallout` `STabs` `SStepper` `SPagination` `SDivider` |
149
- | **요소** | 블록 **안에** 놓이는 컨트롤. 혼자 페이지에 서지 않는다 | `SButton` `SGhostButton` `SDropdownButton` `SField` `SInput` `SNumberInput` `STextarea` `SSelect` `SCheckbox` `SRadio` `SRadioGroup` `SRadioButton` `SSwitch` `SToggle` `SChipInput` `SBarcodeInput` `SFilePicker` `SDatePicker` `SDateRangePicker` `STimePicker` `STimeRangePicker` `SCalendar` `SListItem` `SExpansionItem` `SDraggableItem` `SLinearProgress` `SCircleProgress` |
149
+ | **요소** | 블록 **안에** 놓이는 컨트롤. 혼자 페이지에 서지 않는다 | `SButton` `SGhostButton` `SDropdownButton` `SField` `SInput` `SNumberInput` `STextarea` `SSelect` `SCheckbox` `SRadio` `SRadioGroup` `SRadioButton` `SSwitch` `SToggle` `SChipInput` `SBarcodeInput` `SFilePicker` `SDatePicker` `SDateRangePicker` `STimePicker` `STimeRangePicker` `SCalendar` `SListItem` `SExpansionItem` `SDraggableItem` `SImage` `SLinearProgress` `SCircleProgress` |
150
150
  | **인라인** | 텍스트 흐름·셀·라벨 안에 섞인다. 혼자 블록이 되지 않는다 | `STag` `SBadge` `SIcon` `STextLink` `SChip` |
151
151
  | **레이어** | 문서 흐름 **밖**에 떠서 그려진다. 어느 층에서 띄우든 레이아웃에 영향이 없다 | `SModal` `SActionModal` `SConfirmModal` `SPopup` `SDrawer` `SPopover` `STooltip` `SPortal` `SToast` `SLoadingModal` `SLoadingContainer` `SGuide` |
152
152
 
@@ -450,6 +450,7 @@ Tailwind 유틸리티는 **토큰 스케일에 있는 값만** 사용한다.
450
450
  | 상태·분류를 라벨로 찍는다 | `STag` | §3-1 |
451
451
  | 색 점만으로 상태를 찍는다 | `SBadge` | §3-1 |
452
452
  | 아이콘을 넣는다 | `SIcon` | |
453
+ | 사진·썸네일을 보여준다 (로딩·실패 상태 포함) | `SImage` | §3-7-12 |
453
454
  | 문장 안에서 다른 화면으로 보낸다 | `STextLink` | §3-5-6 |
454
455
 
455
456
  #### C. 동작을 실행시킨다
@@ -1093,6 +1094,23 @@ const columns: STableColumn[] = [
1093
1094
  - 검색 실행 시점이 다르다 — `SKeyValueTable` 필터는 앱이 검색 버튼을 직접 놓지만, `SChipFilter` 는 편집 팝오버가 닫히거나 "검색" 을 누를 때 `onSearch` 가 값 맵과 함께 호출된다. 값이 바뀌지 않았으면 호출되지 않는다.
1094
1095
  - 함께 걸어야 하는 조건(예: 기간 중 하나는 필수)이 있으면 `fields` 를 그룹으로 넘긴다. 규칙을 못 채운 동안 경고 툴팁이 떠 있고 `onSearch` 가 막힌다.
1095
1096
 
1097
+ #### 3-7-12. 이미지 — SImage
1098
+
1099
+ 사진·썸네일은 `<img>` 를 직접 쓰지 않고 `SImage` 를 쓴다. **로딩·실패 상태를 컴포넌트가 이미 처리하기 때문이다.**
1100
+
1101
+ - **로딩 스피너와 실패 표시를 앱이 만들지 않는다.** `src` 가 없거나 로드에 실패하면 빈 이미지 아이콘이, 로딩 중에는 스피너가 자동으로 놓인다. 크기는 상자 높이에 비례하므로 썸네일이든 큰 미리보기든 따로 맞출 것이 없다.
1102
+ - **크기는 `ratio` 와 너비로 준다.** `ratio` 기본값이 `1`(정사각형)이라 너비만 주면 정사각형이 된다. `className`/`style` 로 높이를 직접 주면 그쪽이 이기고 `ratio` 는 무시된다.
1103
+ - 상자를 채우는 방식은 `fit`(기본 `cover`), 붙는 위치는 `position` 이다. 안쪽 `<img>` 에 네이티브 속성이 필요하면 `imgProps` 로 넘긴다 — 목록에서 고스트 드래그를 막는 `imgProps={{ draggable: false }}` 가 대표적이다.
1104
+ - 썸네일이 많은 목록에서는 `loadingShowDelay` 를 준다. 캐시된 이미지가 즉시 로드될 때 스피너가 한 프레임 번쩍이는 것을 막는다.
1105
+
1106
+ ```tsx
1107
+ ✅ <SImage src={item.thumbnailUrl} alt={item.name} style={{ width: 64 }} /> {/* 정사각 썸네일 */}
1108
+ ✅ <SImage src={banner} ratio={16 / 9} className="w-full" /> {/* 가로형 배너 */}
1109
+
1110
+ ❌ <img src={item.thumbnailUrl} /> {/* 로딩·실패 상태가 없다 */}
1111
+ ❌ {loading ? <SCircleProgress indeterminate /> : <SImage src={url} />} {/* SImage 가 이미 한다 */}
1112
+ ```
1113
+
1096
1114
  ---
1097
1115
 
1098
1116
  ## 4. 페이지 레시피 — 표준 골격
@@ -1575,7 +1593,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
1575
1593
  - oceanblue: 15 25 50 60 65 70 75 80 85 90 95 99
1576
1594
  - brilliantblue: 10 20 25 40 50 60 70 75 80 85 90 95 99 05
1577
1595
  - bg: screen frame brand subtle accent accentLight accentBright accentFaint deep danger dangerLight warning caution progress success successLight neutralLight neutralBright tableHeader
1578
- - fg: primary secondary tertiary quaternary brand subtleWarm subtleCool deep success dangerLight accent accentLight danger warning inverse
1596
+ - fg: primary secondary tertiary quaternary brand subtleWarm subtleCool deep success successLight dangerLight accent accentLight danger warning inverse
1579
1597
  - border: default strong bold accent accentLight danger warning success
1580
1598
  - disabled: bg text icon border
1581
1599
  - link: accent
@@ -1701,6 +1719,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
1701
1719
  --sys-color-fg-subtleCool
1702
1720
  --sys-color-fg-subtleWarm
1703
1721
  --sys-color-fg-success
1722
+ --sys-color-fg-successLight
1704
1723
  --sys-color-fg-tertiary
1705
1724
  --sys-color-fg-warning
1706
1725
  --sys-color-field-bg-default
@@ -2194,6 +2213,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
2194
2213
  | `value?` | `number` | `0` | 진행률 (0–100) |
2195
2214
  | `type?` | `SCircleProgressType` | `'primary'` | 색상 테마 |
2196
2215
  | `indeterminate?` | `boolean` | `false` | 불확정(스피너) 모드 — value 무시 |
2216
+ | `size?` | `number \| string` | `DEFAULT_SIZE` | 링의 지름. 숫자는 px 로 해석한다. 부모 크기에 비례시키려면 컨테이너 쿼리 단위(`'45cqh'`)를 쓴다 — 퍼센트는 부모가 inline-flex 라 기준 폭이 정해지지 않아 해석되지 않는다. |
2197
2217
  | `label?` | `string` | — | 하단 레이블 |
2198
2218
  | `innerValue?` | `boolean` | `false` | true면 퍼센트를 원 아래가 아닌 원 가운데에 표시 |
2199
2219
  | `className?` | `string` | — | |
@@ -2203,6 +2223,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
2203
2223
 
2204
2224
  ### Used by
2205
2225
 
2226
+ - [SImage](../SImage)
2206
2227
  - [SLoadingContainer](../SLoadingContainer)
2207
2228
  - [SLoadingModal](../SLoadingModal)
2208
2229
  - [STable](../STable)
@@ -2276,9 +2297,10 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
2276
2297
 
2277
2298
  | Prop | Type | Default | Description |
2278
2299
  |------|------|---------|-------------|
2279
- | `value?` | `string \| null` | — | 선택 날짜 (YYYY-MM-DD) |
2300
+ | `value?` | `string \| null` | — | 선택 값 (date: YYYY-MM-DD, month: YYYY-MM, year: YYYY) |
2301
+ | `mode?` | `SDatePickerMode` | `'date'` | 선택 모드 |
2280
2302
  | `size?` | `SDatePickerSize` | `'sm'` | |
2281
- | `placeholder?` | `string` | `'YYYY-MM-DD'` | |
2303
+ | `placeholder?` | `string` | — | |
2282
2304
  | `selectable?` | `[string, string]` | — | 선택 가능 범위 [시작, 종료] |
2283
2305
  | `disabled?` | `boolean` | `false` | |
2284
2306
  | `width?` | `number \| string` | — | |
@@ -2303,7 +2325,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
2303
2325
 
2304
2326
  | Event | Type | Description |
2305
2327
  |-------|------|-------------|
2306
- | `onValueChange` | `(date: string) => void` | 선택 변경 (sdUpdate) |
2328
+ | `onValueChange` | `(value: string) => void` | 선택 변경 (sdUpdate) |
2307
2329
  | `onViewChange` | `(view: { year: number; month: number }) => void` | 보이는 연·월 변경 (sdViewChange) |
2308
2330
 
2309
2331
  ## Dependencies
@@ -3063,6 +3085,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
3063
3085
  - [SGhostButton](../SGhostButton)
3064
3086
  - [SGnb](../SGnb)
3065
3087
  - [SGuide](../SGuide)
3088
+ - [SImage](../SImage)
3066
3089
  - [SKeyValueTable](../SKeyValueTable)
3067
3090
  - [SListItem](../SListItem)
3068
3091
  - [SLoadingModal](../SLoadingModal)
@@ -3084,6 +3107,46 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
3084
3107
 
3085
3108
  ---
3086
3109
 
3110
+ # SImage
3111
+
3112
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
3113
+
3114
+ ### SImage
3115
+
3116
+ #### Props
3117
+
3118
+ | Prop | Type | Default | Description |
3119
+ |------|------|---------|-------------|
3120
+ | `src?` | `string` | — | 이미지 경로. 없으면 빈 이미지 아이콘이 나온다 |
3121
+ | `alt?` | `string` | `''` | 대체 텍스트 |
3122
+ | `ratio?` | `number` | `1` | 가로세로 비율. 소비자가 높이를 직접 주면 그쪽이 이긴다 |
3123
+ | `fit?` | `SImageFit` | `'cover'` | 이미지가 상자를 채우는 방식 (object-fit) |
3124
+ | `position?` | `string` | `'50% 50%'` | 이미지 정렬 위치 (object-position) |
3125
+ | `loading?` | `'lazy' \| 'eager'` | `'lazy'` | 브라우저 로딩 방식 |
3126
+ | `loadingShowDelay?` | `number` | `0` | 스피너를 띄우기까지 기다리는 시간(ms). 이 시간 안에 로드되면 스피너를 아예 그리지 않는다 — 캐시된 이미지에서 스피너가 한 프레임 번쩍이는 것을 막는다. |
3127
+ | `noSpinner?` | `boolean` | `false` | 로딩 중에도 스피너를 그리지 않는다 |
3128
+ | `loadingSlot?` | `ReactNode` | — | 로딩 중 표시를 직접 지정한다 (기본: 스피너) |
3129
+ | `errorSlot?` | `ReactNode` | — | 실패·빈 상태 표시를 직접 지정한다 (기본: 빈 이미지 아이콘) |
3130
+ | `imgProps?` | `ImgHTMLAttributes<HTMLImageElement>` | — | 안쪽 `<img>` 로 넘길 네이티브 속성 (srcSet · sizes · crossOrigin · draggable 등) |
3131
+
3132
+ #### Events
3133
+
3134
+ | Event | Type | Description |
3135
+ |-------|------|-------------|
3136
+ | `onLoad` | `(src: string) => void` | 로드 완료. 로드된 src 를 넘긴다 |
3137
+ | `onError` | `(event: SyntheticEvent<HTMLImageElement>) => void` | 로드 실패 |
3138
+
3139
+ ## Dependencies
3140
+
3141
+ ### Depends on
3142
+
3143
+ - [SCircleProgress](../SCircleProgress)
3144
+ - [SIcon](../SIcon)
3145
+
3146
+ ### Graph
3147
+
3148
+ ---
3149
+
3087
3150
  # SInput
3088
3151
 
3089
3152
  > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
@@ -4758,6 +4821,7 @@ function OrderModal({ open, onOpenChange, onClose, modalRef, orderId }: OrderMod
4758
4821
  | `value?` | `boolean` | `false` | 선택(on/off) 상태 |
4759
4822
  | `label?` | `string` | `''` | 라벨 |
4760
4823
  | `disabled?` | `boolean` | `false` | 비활성 |
4824
+ | `size?` | `SToggleSize` | `'sm'` | 크기 |
4761
4825
  | `className?` | `string` | — | |
4762
4826
  | `style?` | `CSSProperties` | — | |
4763
4827
 
package/dist/llms.txt CHANGED
@@ -41,7 +41,7 @@
41
41
  | **표·목록** | `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SListItem` `SExpansionList` `SDraggableList` `SDraggableItem` `STree` |
42
42
  | **레이아웃** | `SLayout` `SGnb` `SPage`(제목 영역은 `header` prop) `SSectionHeaderCard` `SCard` `SDivider` `SSplitter` `SScrollArea` `SExpansionItem` |
43
43
  | **내비게이션** | `STabs` `SPagination` `SStepper` |
44
- | **표시·상태** | `STag` `SBadge` `SIcon` `SCallout` `SGuide` |
44
+ | **표시·상태** | `STag` `SBadge` `SIcon` `SImage` `SCallout` `SGuide` |
45
45
  | **진행·로딩** | `SLinearProgress` `SCircleProgress` `SLoadingContainer` `SLoadingModal` |
46
46
  | **오버레이** | `STooltip` `SPopover` `SPopup` `SDrawer` `SPortal` |
47
47
  | **모달** | `SModal.confirm()` `SModal.create()` + `SActionModal` `SConfirmModal` `SModalOutlet`(앱 루트 1회) |
@@ -147,7 +147,7 @@ Tailwind 유틸리티는 **토큰 스케일에 있는 값만** 사용한다.
147
147
  | --- | --- | --- |
148
148
  | **셸** | 앱 전체 뼈대. 페이지가 바뀌어도 남는다 | `SLayout` `SGnb` `SPage`(제목 영역은 `header` prop) |
149
149
  | **블록** | `SPage` 의 직계 자식. 페이지를 세로로 쌓는 단위 | `SSectionHeaderCard` `SCard` `SForm` `SSplitter` `SScrollArea` `STable` `STableBar` `SChipFilter` `SKeyValueTable` `SList` `SExpansionList` `SDraggableList` `STree` `SCallout` `STabs` `SStepper` `SPagination` `SDivider` |
150
- | **요소** | 블록 **안에** 놓이는 컨트롤. 혼자 페이지에 서지 않는다 | `SButton` `SGhostButton` `SDropdownButton` `SField` `SInput` `SNumberInput` `STextarea` `SSelect` `SCheckbox` `SRadio` `SRadioGroup` `SRadioButton` `SSwitch` `SToggle` `SChipInput` `SBarcodeInput` `SFilePicker` `SDatePicker` `SDateRangePicker` `STimePicker` `STimeRangePicker` `SCalendar` `SListItem` `SExpansionItem` `SDraggableItem` `SLinearProgress` `SCircleProgress` |
150
+ | **요소** | 블록 **안에** 놓이는 컨트롤. 혼자 페이지에 서지 않는다 | `SButton` `SGhostButton` `SDropdownButton` `SField` `SInput` `SNumberInput` `STextarea` `SSelect` `SCheckbox` `SRadio` `SRadioGroup` `SRadioButton` `SSwitch` `SToggle` `SChipInput` `SBarcodeInput` `SFilePicker` `SDatePicker` `SDateRangePicker` `STimePicker` `STimeRangePicker` `SCalendar` `SListItem` `SExpansionItem` `SDraggableItem` `SImage` `SLinearProgress` `SCircleProgress` |
151
151
  | **인라인** | 텍스트 흐름·셀·라벨 안에 섞인다. 혼자 블록이 되지 않는다 | `STag` `SBadge` `SIcon` `STextLink` `SChip` |
152
152
  | **레이어** | 문서 흐름 **밖**에 떠서 그려진다. 어느 층에서 띄우든 레이아웃에 영향이 없다 | `SModal` `SActionModal` `SConfirmModal` `SPopup` `SDrawer` `SPopover` `STooltip` `SPortal` `SToast` `SLoadingModal` `SLoadingContainer` `SGuide` |
153
153
 
@@ -451,6 +451,7 @@ Tailwind 유틸리티는 **토큰 스케일에 있는 값만** 사용한다.
451
451
  | 상태·분류를 라벨로 찍는다 | `STag` | §3-1 |
452
452
  | 색 점만으로 상태를 찍는다 | `SBadge` | §3-1 |
453
453
  | 아이콘을 넣는다 | `SIcon` | |
454
+ | 사진·썸네일을 보여준다 (로딩·실패 상태 포함) | `SImage` | §3-7-12 |
454
455
  | 문장 안에서 다른 화면으로 보낸다 | `STextLink` | §3-5-6 |
455
456
 
456
457
  #### C. 동작을 실행시킨다
@@ -1094,6 +1095,23 @@ const columns: STableColumn[] = [
1094
1095
  - 검색 실행 시점이 다르다 — `SKeyValueTable` 필터는 앱이 검색 버튼을 직접 놓지만, `SChipFilter` 는 편집 팝오버가 닫히거나 "검색" 을 누를 때 `onSearch` 가 값 맵과 함께 호출된다. 값이 바뀌지 않았으면 호출되지 않는다.
1095
1096
  - 함께 걸어야 하는 조건(예: 기간 중 하나는 필수)이 있으면 `fields` 를 그룹으로 넘긴다. 규칙을 못 채운 동안 경고 툴팁이 떠 있고 `onSearch` 가 막힌다.
1096
1097
 
1098
+ #### 3-7-12. 이미지 — SImage
1099
+
1100
+ 사진·썸네일은 `<img>` 를 직접 쓰지 않고 `SImage` 를 쓴다. **로딩·실패 상태를 컴포넌트가 이미 처리하기 때문이다.**
1101
+
1102
+ - **로딩 스피너와 실패 표시를 앱이 만들지 않는다.** `src` 가 없거나 로드에 실패하면 빈 이미지 아이콘이, 로딩 중에는 스피너가 자동으로 놓인다. 크기는 상자 높이에 비례하므로 썸네일이든 큰 미리보기든 따로 맞출 것이 없다.
1103
+ - **크기는 `ratio` 와 너비로 준다.** `ratio` 기본값이 `1`(정사각형)이라 너비만 주면 정사각형이 된다. `className`/`style` 로 높이를 직접 주면 그쪽이 이기고 `ratio` 는 무시된다.
1104
+ - 상자를 채우는 방식은 `fit`(기본 `cover`), 붙는 위치는 `position` 이다. 안쪽 `<img>` 에 네이티브 속성이 필요하면 `imgProps` 로 넘긴다 — 목록에서 고스트 드래그를 막는 `imgProps={{ draggable: false }}` 가 대표적이다.
1105
+ - 썸네일이 많은 목록에서는 `loadingShowDelay` 를 준다. 캐시된 이미지가 즉시 로드될 때 스피너가 한 프레임 번쩍이는 것을 막는다.
1106
+
1107
+ ```tsx
1108
+ ✅ <SImage src={item.thumbnailUrl} alt={item.name} style={{ width: 64 }} /> {/* 정사각 썸네일 */}
1109
+ ✅ <SImage src={banner} ratio={16 / 9} className="w-full" /> {/* 가로형 배너 */}
1110
+
1111
+ ❌ <img src={item.thumbnailUrl} /> {/* 로딩·실패 상태가 없다 */}
1112
+ ❌ {loading ? <SCircleProgress indeterminate /> : <SImage src={url} />} {/* SImage 가 이미 한다 */}
1113
+ ```
1114
+
1097
1115
  ---
1098
1116
 
1099
1117
  ## 4. 페이지 레시피 — 표준 골격
@@ -1576,7 +1594,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
1576
1594
  - oceanblue: 15 25 50 60 65 70 75 80 85 90 95 99
1577
1595
  - brilliantblue: 10 20 25 40 50 60 70 75 80 85 90 95 99 05
1578
1596
  - bg: screen frame brand subtle accent accentLight accentBright accentFaint deep danger dangerLight warning caution progress success successLight neutralLight neutralBright tableHeader
1579
- - fg: primary secondary tertiary quaternary brand subtleWarm subtleCool deep success dangerLight accent accentLight danger warning inverse
1597
+ - fg: primary secondary tertiary quaternary brand subtleWarm subtleCool deep success successLight dangerLight accent accentLight danger warning inverse
1580
1598
  - border: default strong bold accent accentLight danger warning success
1581
1599
  - disabled: bg text icon border
1582
1600
  - link: accent
@@ -1702,6 +1720,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
1702
1720
  --sys-color-fg-subtleCool
1703
1721
  --sys-color-fg-subtleWarm
1704
1722
  --sys-color-fg-success
1723
+ --sys-color-fg-successLight
1705
1724
  --sys-color-fg-tertiary
1706
1725
  --sys-color-fg-warning
1707
1726
  --sys-color-field-bg-default
@@ -1723,7 +1742,7 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
1723
1742
  --sys-color-link-accent
1724
1743
  --sys-color-navigation-gnb-bg-dark
1725
1744
 
1726
- ## 3. 컴포넌트 인덱스 (64종)
1745
+ ## 3. 컴포넌트 인덱스 (65종)
1727
1746
 
1728
1747
  **Props 는 이 문서에 없다.** 쓸 컴포넌트를 정했으면 그 컴포넌트의 README 를 읽는다.
1729
1748
 
@@ -1732,4 +1751,4 @@ Tailwind 유틸리티는 아래 스케일에 있는 값만 사용한다. 리터
1732
1751
  예) SButton 을 쓴다면 `dist/components/SButton/README.md`.
1733
1752
  prop 을 추측해서 쓰지 말고 반드시 README 로 확인한다 (분류별 용도는 §1 의 "전체 컴포넌트 인덱스" 참조).
1734
1753
 
1735
- SActionModal · SBadge · SBarcodeInput · SButton · SCalendar · SCallout · SCard · SCheckbox · SChip · SChipFilter · SChipInput · SCircleProgress · SConfirmModal · SDatePicker · SDateRangePicker · SDivider · SDraggableItem · SDraggableList · SDrawer · SDropdownButton · SExpansionItem · SExpansionList · SField · SFilePicker · SForm · SGhostButton · SGnb · SGuide · SIcon · SInput · SKeyValueTable · SLayout · SLinearProgress · SList · SListItem · SLoadingContainer · SLoadingModal · SModal · SNumberInput · SPage · SPagination · SPopover · SPopup · SPortal · SRadio · SRadioButton · SScrollArea · SSectionHeaderCard · SSelect · SSplitter · SStepper · SSwitch · STable · STableBar · STabs · STag · STextLink · STextarea · STimePicker · STimeRangePicker · SToast · SToggle · STooltip · STree
1754
+ SActionModal · SBadge · SBarcodeInput · SButton · SCalendar · SCallout · SCard · SCheckbox · SChip · SChipFilter · SChipInput · SCircleProgress · SConfirmModal · SDatePicker · SDateRangePicker · SDivider · SDraggableItem · SDraggableList · SDrawer · SDropdownButton · SExpansionItem · SExpansionList · SField · SFilePicker · SForm · SGhostButton · SGnb · SGuide · SIcon · SImage · SInput · SKeyValueTable · SLayout · SLinearProgress · SList · SListItem · SLoadingContainer · SLoadingModal · SModal · SNumberInput · SPage · SPagination · SPopover · SPopup · SPortal · SRadio · SRadioButton · SScrollArea · SSectionHeaderCard · SSelect · SSplitter · SStepper · SSwitch · STable · STableBar · STabs · STag · STextLink · STextarea · STimePicker · STimeRangePicker · SToast · SToggle · STooltip · STree
package/dist/styles.css CHANGED
@@ -194,6 +194,7 @@
194
194
  --color-fg-subtleCool: #025497;
195
195
  --color-fg-deep: #004290;
196
196
  --color-fg-success: #00973C;
197
+ --color-fg-successLight: #12B553;
197
198
  --color-fg-dangerLight: #FB4444;
198
199
  --color-fg-accent: #0075FF;
199
200
  --color-fg-accentLight: #64ABFF;
@@ -926,9 +927,6 @@
926
927
  .h-\[56px\] {
927
928
  height: 56px;
928
929
  }
929
- .h-\[80px\] {
930
- height: 80px;
931
- }
932
930
  .h-\[80vh\] {
933
931
  height: 80vh;
934
932
  }
@@ -1133,9 +1131,6 @@
1133
1131
  .w-\[61px\] {
1134
1132
  width: 61px;
1135
1133
  }
1136
- .w-\[80px\] {
1137
- width: 80px;
1138
- }
1139
1134
  .w-\[200px\] {
1140
1135
  width: 200px;
1141
1136
  }
@@ -1184,6 +1179,9 @@
1184
1179
  .w-\[calc\(14px\+var\(--cmp-tree-item-arrow-icon\)\)\] {
1185
1180
  width: calc(14px + var(--cmp-tree-item-arrow-icon));
1186
1181
  }
1182
+ .w-\[var\(--border-width-1\)\] {
1183
+ width: var(--border-width-1);
1184
+ }
1187
1185
  .w-\[var\(--cmp-checkbox-size\)\] {
1188
1186
  width: var(--cmp-checkbox-size);
1189
1187
  }
@@ -1196,6 +1194,12 @@
1196
1194
  .w-\[var\(--cmp-datepicker-calendar-day-width\)\] {
1197
1195
  width: var(--cmp-datepicker-calendar-day-width);
1198
1196
  }
1197
+ .w-\[var\(--cmp-datepicker-mode-year-width\)\] {
1198
+ width: var(--cmp-datepicker-mode-year-width);
1199
+ }
1200
+ .w-\[var\(--cmp-datepicker-mode-yearMonth-column-width\)\] {
1201
+ width: var(--cmp-datepicker-mode-yearMonth-column-width);
1202
+ }
1199
1203
  .w-\[var\(--cmp-pagination-height\)\] {
1200
1204
  width: var(--cmp-pagination-height);
1201
1205
  }
@@ -1610,6 +1614,12 @@
1610
1614
  .gap-\[var\(--cmp-datepicker-calendar-time-unit-gap\)\] {
1611
1615
  gap: var(--cmp-datepicker-calendar-time-unit-gap);
1612
1616
  }
1617
+ .gap-\[var\(--cmp-datepicker-mode-item-gap\)\] {
1618
+ gap: var(--cmp-datepicker-mode-item-gap);
1619
+ }
1620
+ .gap-\[var\(--cmp-datepicker-mode-yearMonth-gap\)\] {
1621
+ gap: var(--cmp-datepicker-mode-yearMonth-gap);
1622
+ }
1613
1623
  .gap-\[var\(--cmp-filepicker-md-gap\)\] {
1614
1624
  gap: var(--cmp-filepicker-md-gap);
1615
1625
  }
@@ -1755,6 +1765,9 @@
1755
1765
  .overflow-y-hidden {
1756
1766
  overflow-y: hidden;
1757
1767
  }
1768
+ .overscroll-contain {
1769
+ overscroll-behavior: contain;
1770
+ }
1758
1771
  .rounded {
1759
1772
  border-radius: 0.25rem;
1760
1773
  }
@@ -1803,6 +1816,9 @@
1803
1816
  .rounded-\[var\(--cmp-datepicker-calendar-time-radius\)\] {
1804
1817
  border-radius: var(--cmp-datepicker-calendar-time-radius);
1805
1818
  }
1819
+ .rounded-\[var\(--cmp-datepicker-mode-radius\)\] {
1820
+ border-radius: var(--cmp-datepicker-mode-radius);
1821
+ }
1806
1822
  .rounded-\[var\(--cmp-datepicker-sm-radius\)\] {
1807
1823
  border-radius: var(--cmp-datepicker-sm-radius);
1808
1824
  }
@@ -2118,6 +2134,9 @@
2118
2134
  .border-transparent {
2119
2135
  border-color: transparent;
2120
2136
  }
2137
+ .bg-\(--cmp-image-bg\) {
2138
+ background-color: var(--cmp-image-bg);
2139
+ }
2121
2140
  .bg-\(--cmp-listBox-bg\) {
2122
2141
  background-color: var(--cmp-listBox-bg);
2123
2142
  }
@@ -2247,6 +2266,12 @@
2247
2266
  .bg-\[var\(--cmp-datepicker-calendar-time-bg-selected\)\] {
2248
2267
  background-color: var(--cmp-datepicker-calendar-time-bg-selected);
2249
2268
  }
2269
+ .bg-\[var\(--cmp-datepicker-mode-bg\)\] {
2270
+ background-color: var(--cmp-datepicker-mode-bg);
2271
+ }
2272
+ .bg-\[var\(--cmp-datepicker-mode-item-bg-default\)\] {
2273
+ background-color: var(--cmp-datepicker-mode-item-bg-default);
2274
+ }
2250
2275
  .bg-\[var\(--cmp-drawer-bg\)\] {
2251
2276
  background-color: var(--cmp-drawer-bg);
2252
2277
  }
@@ -2406,6 +2431,9 @@
2406
2431
  .p-4 {
2407
2432
  padding: calc(var(--spacing) * 4);
2408
2433
  }
2434
+ .p-10 {
2435
+ padding: calc(var(--spacing) * 10);
2436
+ }
2409
2437
  .p-16 {
2410
2438
  padding: calc(var(--spacing) * 16);
2411
2439
  }
@@ -2544,6 +2572,9 @@
2544
2572
  .px-\[var\(--cmp-datepicker-calendar-time-paddingX\)\] {
2545
2573
  padding-inline: var(--cmp-datepicker-calendar-time-paddingX);
2546
2574
  }
2575
+ .px-\[var\(--cmp-datepicker-mode-item-paddingX\)\] {
2576
+ padding-inline: var(--cmp-datepicker-mode-item-paddingX);
2577
+ }
2547
2578
  .px-\[var\(--cmp-guide-button-paddingX\)\] {
2548
2579
  padding-inline: var(--cmp-guide-button-paddingX);
2549
2580
  }
@@ -2661,6 +2692,9 @@
2661
2692
  .py-\[var\(--cmp-datepicker-calendar-time-paddingY\)\] {
2662
2693
  padding-block: var(--cmp-datepicker-calendar-time-paddingY);
2663
2694
  }
2695
+ .py-\[var\(--cmp-datepicker-mode-item-paddingY\)\] {
2696
+ padding-block: var(--cmp-datepicker-mode-item-paddingY);
2697
+ }
2664
2698
  .py-\[var\(--cmp-overlay-footer-paddingY\)\] {
2665
2699
  padding-block: var(--cmp-overlay-footer-paddingY);
2666
2700
  }
@@ -2775,6 +2809,9 @@
2775
2809
  .align-middle {
2776
2810
  vertical-align: middle;
2777
2811
  }
2812
+ .font-base {
2813
+ font-family: var(--font-base);
2814
+ }
2778
2815
  .text-base {
2779
2816
  font-size: var(--text-base);
2780
2817
  line-height: var(--tw-leading, var(--text-base--line-height));
@@ -3073,6 +3110,15 @@
3073
3110
  .text-\[color\:var\(--cmp-datepicker-calendar-week-color\)\] {
3074
3111
  color: var(--cmp-datepicker-calendar-week-color);
3075
3112
  }
3113
+ .text-\[color\:var\(--cmp-datepicker-mode-item-content-default\)\] {
3114
+ color: var(--cmp-datepicker-mode-item-content-default);
3115
+ }
3116
+ .text-\[color\:var\(--cmp-datepicker-mode-item-content-disabled\)\] {
3117
+ color: var(--cmp-datepicker-mode-item-content-disabled);
3118
+ }
3119
+ .text-\[color\:var\(--cmp-datepicker-mode-item-content-selected\)\] {
3120
+ color: var(--cmp-datepicker-mode-item-content-selected);
3121
+ }
3076
3122
  .text-\[color\:var\(--cmp-datepicker-text-default\)\] {
3077
3123
  color: var(--cmp-datepicker-text-default);
3078
3124
  }
@@ -3256,6 +3302,9 @@
3256
3302
  .opacity-40 {
3257
3303
  opacity: 40%;
3258
3304
  }
3305
+ .opacity-50 {
3306
+ opacity: 50%;
3307
+ }
3259
3308
  .opacity-60 {
3260
3309
  opacity: 60%;
3261
3310
  }
@@ -3851,6 +3900,13 @@
3851
3900
  }
3852
3901
  }
3853
3902
  }
3903
+ .hover\:bg-\[var\(--cmp-datepicker-mode-item-bg-hover\)\] {
3904
+ &:hover {
3905
+ @media (hover: hover) {
3906
+ background-color: var(--cmp-datepicker-mode-item-bg-hover);
3907
+ }
3908
+ }
3909
+ }
3854
3910
  .hover\:bg-\[var\(--cmp-listBoxItem-bg-hover\)\] {
3855
3911
  &:hover {
3856
3912
  @media (hover: hover) {
@@ -3946,6 +4002,13 @@
3946
4002
  }
3947
4003
  }
3948
4004
  }
4005
+ .hover\:text-\[color\:var\(--cmp-datepicker-mode-item-content-hover\)\] {
4006
+ &:hover {
4007
+ @media (hover: hover) {
4008
+ color: var(--cmp-datepicker-mode-item-content-hover);
4009
+ }
4010
+ }
4011
+ }
3949
4012
  .hover\:text-\[color\:var\(--cmp-listBoxItem-content-hover\)\] {
3950
4013
  &:hover {
3951
4014
  @media (hover: hover) {
@@ -4555,6 +4618,7 @@
4555
4618
  --sys-color-fg-subtleCool: #025497;
4556
4619
  --sys-color-fg-deep: #004290;
4557
4620
  --sys-color-fg-success: #00973C;
4621
+ --sys-color-fg-successLight: #12B553;
4558
4622
  --sys-color-fg-dangerLight: #FB4444;
4559
4623
  --sys-color-fg-accent: #0075FF;
4560
4624
  --sys-color-fg-accentLight: #64ABFF;
@@ -4708,8 +4772,10 @@
4708
4772
  --cmp-switch-bg-disabled-on: #BBDAFF;
4709
4773
  --cmp-switch-bg-disabled-off: #E1E1E1;
4710
4774
  --cmp-switch-gap: 6px;
4711
- --cmp-toggle-height: 28px;
4712
- --cmp-toggle-paddingX: 12px;
4775
+ --cmp-toggle-xs-height: 24px;
4776
+ --cmp-toggle-xs-paddingX: 8px;
4777
+ --cmp-toggle-sm-height: 28px;
4778
+ --cmp-toggle-sm-paddingX: 12px;
4713
4779
  --cmp-toggle-radius: 9999px;
4714
4780
  --cmp-toggle-border-width: 1px;
4715
4781
  --cmp-toggle-border-default: #CCCCCC;
@@ -4989,6 +5055,20 @@
4989
5055
  --cmp-datepicker-calendar-time-gap: 12px;
4990
5056
  --cmp-datepicker-calendar-time-section-gap: 12px;
4991
5057
  --cmp-datepicker-calendar-time-unit-gap: 2px;
5058
+ --cmp-datepicker-mode-bg: #FFFFFF;
5059
+ --cmp-datepicker-mode-radius: 4px;
5060
+ --cmp-datepicker-mode-year-width: 120px;
5061
+ --cmp-datepicker-mode-yearMonth-column-width: 64px;
5062
+ --cmp-datepicker-mode-yearMonth-gap: 4px;
5063
+ --cmp-datepicker-mode-item-paddingY: 4px;
5064
+ --cmp-datepicker-mode-item-paddingX: 12px;
5065
+ --cmp-datepicker-mode-item-gap: 8px;
5066
+ --cmp-datepicker-mode-item-bg-default: #FFFFFF;
5067
+ --cmp-datepicker-mode-item-bg-hover: #0075FF;
5068
+ --cmp-datepicker-mode-item-content-default: #222222;
5069
+ --cmp-datepicker-mode-item-content-hover: #FFFFFF;
5070
+ --cmp-datepicker-mode-item-content-disabled: #888888;
5071
+ --cmp-datepicker-mode-item-content-selected: #0075FF;
4992
5072
  --cmp-chip-height: 24px;
4993
5073
  --cmp-chip-paddingX: 8px;
4994
5074
  --cmp-chip-gap: 4px;
@@ -5239,9 +5319,10 @@
5239
5319
  --cmp-progress-circular-gap: 8px;
5240
5320
  --cmp-progress-color-track: #EEEEEE;
5241
5321
  --cmp-progress-color-label: #555555;
5242
- --cmp-progress-active-color: #2D8DFF;
5243
- --cmp-progress-success-color: #12B553;
5244
- --cmp-progress-error-color: #FB4444;
5322
+ --cmp-progress-color-active: #2D8DFF;
5323
+ --cmp-progress-color-success: #12B553;
5324
+ --cmp-progress-color-error: #FB4444;
5325
+ --cmp-progress-color-neutral: #D8D8D8;
5245
5326
  --cmp-progress-bar-text: #FFFFFF;
5246
5327
  --cmp-progress-inverse-color: #FFFFFF;
5247
5328
  --cmp-progress-inverse-opacity: 40%;
@@ -5550,6 +5631,8 @@
5550
5631
  --cmp-splitter-border-width: 4px;
5551
5632
  --cmp-splitter-border-padding: 4px;
5552
5633
  --cmp-splitter-border-color: #64ABFF;
5634
+ --cmp-image-bg: #F9F9F9;
5635
+ --cmp-image-icon: #D8D8D8;
5553
5636
  }
5554
5637
  @layer base {
5555
5638
  body {
package/dist/theme.css CHANGED
@@ -154,6 +154,7 @@
154
154
  --color-fg-subtleCool: #025497;
155
155
  --color-fg-deep: #004290;
156
156
  --color-fg-success: #00973C;
157
+ --color-fg-successLight: #12B553;
157
158
  --color-fg-dangerLight: #FB4444;
158
159
  --color-fg-accent: #0075FF;
159
160
  --color-fg-accentLight: #64ABFF;
@@ -453,6 +454,7 @@
453
454
  --sys-color-fg-subtleCool: #025497;
454
455
  --sys-color-fg-deep: #004290;
455
456
  --sys-color-fg-success: #00973C;
457
+ --sys-color-fg-successLight: #12B553;
456
458
  --sys-color-fg-dangerLight: #FB4444;
457
459
  --sys-color-fg-accent: #0075FF;
458
460
  --sys-color-fg-accentLight: #64ABFF;
@@ -608,8 +610,10 @@
608
610
  --cmp-switch-bg-disabled-on: #BBDAFF;
609
611
  --cmp-switch-bg-disabled-off: #E1E1E1;
610
612
  --cmp-switch-gap: 6px;
611
- --cmp-toggle-height: 28px;
612
- --cmp-toggle-paddingX: 12px;
613
+ --cmp-toggle-xs-height: 24px;
614
+ --cmp-toggle-xs-paddingX: 8px;
615
+ --cmp-toggle-sm-height: 28px;
616
+ --cmp-toggle-sm-paddingX: 12px;
613
617
  --cmp-toggle-radius: 9999px;
614
618
  --cmp-toggle-border-width: 1px;
615
619
  --cmp-toggle-border-default: #CCCCCC;
@@ -889,6 +893,20 @@
889
893
  --cmp-datepicker-calendar-time-gap: 12px;
890
894
  --cmp-datepicker-calendar-time-section-gap: 12px;
891
895
  --cmp-datepicker-calendar-time-unit-gap: 2px;
896
+ --cmp-datepicker-mode-bg: #FFFFFF;
897
+ --cmp-datepicker-mode-radius: 4px;
898
+ --cmp-datepicker-mode-year-width: 120px;
899
+ --cmp-datepicker-mode-yearMonth-column-width: 64px;
900
+ --cmp-datepicker-mode-yearMonth-gap: 4px;
901
+ --cmp-datepicker-mode-item-paddingY: 4px;
902
+ --cmp-datepicker-mode-item-paddingX: 12px;
903
+ --cmp-datepicker-mode-item-gap: 8px;
904
+ --cmp-datepicker-mode-item-bg-default: #FFFFFF;
905
+ --cmp-datepicker-mode-item-bg-hover: #0075FF;
906
+ --cmp-datepicker-mode-item-content-default: #222222;
907
+ --cmp-datepicker-mode-item-content-hover: #FFFFFF;
908
+ --cmp-datepicker-mode-item-content-disabled: #888888;
909
+ --cmp-datepicker-mode-item-content-selected: #0075FF;
892
910
  --cmp-chip-height: 24px;
893
911
  --cmp-chip-paddingX: 8px;
894
912
  --cmp-chip-gap: 4px;
@@ -1139,9 +1157,10 @@
1139
1157
  --cmp-progress-circular-gap: 8px;
1140
1158
  --cmp-progress-color-track: #EEEEEE;
1141
1159
  --cmp-progress-color-label: #555555;
1142
- --cmp-progress-active-color: #2D8DFF;
1143
- --cmp-progress-success-color: #12B553;
1144
- --cmp-progress-error-color: #FB4444;
1160
+ --cmp-progress-color-active: #2D8DFF;
1161
+ --cmp-progress-color-success: #12B553;
1162
+ --cmp-progress-color-error: #FB4444;
1163
+ --cmp-progress-color-neutral: #D8D8D8;
1145
1164
  --cmp-progress-bar-text: #FFFFFF;
1146
1165
  --cmp-progress-inverse-color: #FFFFFF;
1147
1166
  --cmp-progress-inverse-opacity: 40%;
@@ -1450,6 +1469,8 @@
1450
1469
  --cmp-splitter-border-width: 4px;
1451
1470
  --cmp-splitter-border-padding: 4px;
1452
1471
  --cmp-splitter-border-color: #64ABFF;
1472
+ --cmp-image-bg: #F9F9F9;
1473
+ --cmp-image-icon: #D8D8D8;
1453
1474
  }
1454
1475
 
1455
1476
  /* 전역 스크롤바 — overflow(auto/scroll)로 스크롤이 생기는 모든 요소에 SScrollArea 기본 스크롤바를 자동 적용.
@@ -13,4 +13,4 @@ export const RADIUS = ["2","4","6","8","full","control-sm","control-md","feedbac
13
13
  export const TYPO_PRESETS = ["typo-body-lg-bold","typo-body-lg-default","typo-body-lg-medium","typo-body-md-bold","typo-body-md-default","typo-body-md-medium","typo-body-sm-bold","typo-body-sm-default","typo-body-sm-medium","typo-body-xs-default","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-underline","typo-feedback-sm-bold","typo-feedback-sm-medium","typo-feedback-sm-regular","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-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-successLight","bg-tableHeader","bg-warning","black","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-strong","danger-subtle","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-tertiary","fg-warning","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-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-strong","grey-subtle","indigo-strong","indigo-subtle","lightblue-strong","lightblue-subtle","link-accent","navigation-gnb-bg-dark","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-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","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-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-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-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-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-strong","danger-subtle","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","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-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-strong","grey-subtle","indigo-strong","indigo-subtle","lightblue-strong","lightblue-subtle","link-accent","navigation-gnb-bg-dark","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-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","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-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-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-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"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sellmate-design-system-react",
3
- "version": "9.0.0-beta.0",
3
+ "version": "9.0.0-beta.3",
4
4
  "description": "Sellmate Design System — React (TypeScript + Tailwind v4) port",
5
5
  "license": "UNLICENSED",
6
6
  "keywords": [