@iyulab/data-components 0.9.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.10.0] - 2026-08-03
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **표의 보조 전경을 «표 안에서만» 조절할 수 있다** — 파생 토큰 5단.
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
--dc-empty-color 빈 상태 안내문 data-view · simple-sheet · rich-table
|
|
11
|
+
--dc-header-color 열 머리 · 행 머리 data-view · simple-sheet
|
|
12
|
+
--dc-muted-color 보조 텍스트 · 라벨 data-view · rich-table
|
|
13
|
+
--dc-icon-color 정렬 표시 · 확장 · 행 메뉴 rich-table
|
|
14
|
+
--dc-readonly-color 읽기 전용 셀 simple-sheet
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
종전에는 세 컴포넌트가 보조 전경을 전부 `--u-txt-color-weak` 로 **섀도 안에서 직독**해,
|
|
18
|
+
문서 전체의 보조 텍스트를 바꾸지 않고는 표만 맞출 방법이 없었다(소비자 토큰 0 · `part` 0).
|
|
19
|
+
|
|
20
|
+
⚠**기본 렌더는 변하지 않는다.** 다섯 단이 전부 `--u-txt-color-weak` 에서 파생되고
|
|
21
|
+
다크 대응도 그 역할 토큰이 이미 갖고 있다 — 다크 전용 선언을 더하지 않았다.
|
|
22
|
+
|
|
23
|
+
★**한 토큰으로 접지 않았다.** 전 컬럼이 읽기 전용인 시트에서는 데이터가 통째로 흐려
|
|
24
|
+
보이는데, 단이 하나면 *"읽기 전용 셀만 진하게"* 가 원리적으로 불가능해진다.
|
|
25
|
+
|
|
26
|
+
⚠**컴포넌트가 «읽는» 단만 선언한다** — 다섯을 어디서나 선언하면 소비자가 바꿔도 아무 일이
|
|
27
|
+
없는 자리가 생긴다. 어느 단이 어디에 있는지는 README 의 표가 정본이고,
|
|
28
|
+
`tests/consumer-tokens.test.ts` 가 **선언과 사용을 양방향으로** 대조한다.
|
|
29
|
+
|
|
3
30
|
## [0.9.1] - 2026-08-03
|
|
4
31
|
|
|
5
32
|
### Fixed
|
package/README.md
CHANGED
|
@@ -157,6 +157,39 @@ import '@iyulab/components/styles/tokens.css';
|
|
|
157
157
|
:root { --u-primary-color: #7B1FA2; }
|
|
158
158
|
```
|
|
159
159
|
|
|
160
|
+
### 보조 전경 조절 (0.10.0~)
|
|
161
|
+
|
|
162
|
+
표의 **보조 전경**(빈 상태 안내문·열 머리·읽기 전용 셀 등)은 역할 토큰
|
|
163
|
+
`--u-txt-color-weak` 에서 파생된 단으로 그려집니다. 그 단을 **표 안에서만** 조절할 수
|
|
164
|
+
있습니다 — 문서 전체의 보조 텍스트를 건드리지 않고 표만 맞출 때 씁니다.
|
|
165
|
+
|
|
166
|
+
| 토큰 | 무엇을 칠하나 | `u-data-view` | `u-simple-sheet` | `u-rich-table` |
|
|
167
|
+
|---|---|:---:|:---:|:---:|
|
|
168
|
+
| `--dc-empty-color` | 빈 상태 안내문 | ● | ● | ● |
|
|
169
|
+
| `--dc-header-color` | 열 머리 · 행 머리 | ● | ● | |
|
|
170
|
+
| `--dc-muted-color` | 보조 텍스트 · 라벨 | ● | | ● |
|
|
171
|
+
| `--dc-icon-color` | 정렬 표시 · 확장 · 행 메뉴 | | | ● |
|
|
172
|
+
| `--dc-readonly-color` | 읽기 전용 셀 | | ● | |
|
|
173
|
+
|
|
174
|
+
⚠**빈 칸은 그 컴포넌트가 그 단을 «읽지 않는다»는 뜻**입니다. 값을 줘도 아무 일이
|
|
175
|
+
일어나지 않습니다 — 읽지 않는 토큰을 선언해 두지 않는 것이 이 패키지의 방침입니다.
|
|
176
|
+
|
|
177
|
+
커스텀 프로퍼티는 상속되므로 **범위는 선택자로 정합니다**:
|
|
178
|
+
|
|
179
|
+
```css
|
|
180
|
+
/* 세 표를 한꺼번에 */
|
|
181
|
+
:root { --dc-empty-color: #9AA0A6; }
|
|
182
|
+
|
|
183
|
+
/* 한 컴포넌트만 */
|
|
184
|
+
u-rich-table { --dc-icon-color: #B0B0B0; }
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
★**한 토큰으로 접지 않은 이유**: 전 컬럼이 읽기 전용인 시트에서는 데이터가 통째로
|
|
188
|
+
흐려 보이는데, 단이 하나면 *"읽기 전용 셀만 진하게"* 가 원리적으로 불가능합니다.
|
|
189
|
+
|
|
190
|
+
⚠**`0.10.0` 은 조절점만 엽니다 — 기본 렌더는 변하지 않습니다.** 다섯 단이 전부
|
|
191
|
+
`--u-txt-color-weak` 에서 파생되며, 다크 대응도 그 역할 토큰이 이미 갖고 있습니다.
|
|
192
|
+
|
|
160
193
|
### 알려진 제약
|
|
161
194
|
|
|
162
195
|
- **표면 높이를 뜻하는 토큰이 없습니다** — 배경 역할 토큰은 상호작용 상태 이름
|
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import { css } from "lit";
|
|
2
2
|
var styles = [css`
|
|
3
3
|
:host {
|
|
4
|
+
|
|
5
|
+
/* ── 소비자 조절점 — 보조 전경 5단 ──
|
|
6
|
+
★이 셋의 보조 전경이 전부 --u-txt-color-weak 직독이라 «표 안에서만» 조절할 방법이
|
|
7
|
+
없었다(소비자 토큰 0 · part 0). 소비앱은 한 제품 안에 표를 넷 두는데, 그중 업스트림
|
|
8
|
+
표만 조절되지 않으면 나머지에 맞출 수가 없다.
|
|
9
|
+
⚠**한 토큰으로 접지 않는다** — 실측상 16곳의 역할이 갈리고, 접으면 "읽기 전용 셀만
|
|
10
|
+
진하게" 같은 요청이 원리적으로 불가능해진다. 그것이 이 요청의 발단이었다.
|
|
11
|
+
⚠**다크 블록에 다시 선언하지 않는다.** --u-txt-color-weak 자체가 테마 변형이므로
|
|
12
|
+
시트가 있으면 따라온다. 이 패키지의 다크 블록이 «비어 있는 것»이 목표 상태다.
|
|
13
|
+
⚠**폴백 리터럴은 라이트 시트 값의 복제다**(루트 tokens:sync 가 대조한다).
|
|
14
|
+
⚠**이 컴포넌트가 «읽는» 단만 선언한다.** 다섯을 어디서나 선언하면 소비자가
|
|
15
|
+
바꿔도 아무 일이 없는 자리가 생긴다 — 이 리포가 반복해서 본 «토큰 존재 ≠ 배선»
|
|
16
|
+
이다. 어느 단이 어디에 있는지는 README 의 표가 정본이다. */
|
|
17
|
+
--dc-muted-color: var(--u-txt-color-weak, #757575); /* 보조 텍스트 · 라벨 */
|
|
18
|
+
--dc-header-color: var(--u-txt-color-weak, #757575); /* 열 머리 · 행 머리 */
|
|
19
|
+
--dc-empty-color: var(--u-txt-color-weak, #757575); /* 빈 상태 안내문 */
|
|
4
20
|
display: block;
|
|
5
21
|
width: 100%;
|
|
6
22
|
}
|
|
@@ -40,7 +56,7 @@ var styles = [css`
|
|
|
40
56
|
|
|
41
57
|
.info {
|
|
42
58
|
font-size: 0.875rem;
|
|
43
|
-
color: var(--
|
|
59
|
+
color: var(--dc-muted-color);
|
|
44
60
|
font-weight: 500;
|
|
45
61
|
}
|
|
46
62
|
|
|
@@ -95,7 +111,7 @@ var styles = [css`
|
|
|
95
111
|
.card-field .label {
|
|
96
112
|
font-size: 0.875rem;
|
|
97
113
|
font-weight: 600;
|
|
98
|
-
color: var(--
|
|
114
|
+
color: var(--dc-muted-color);
|
|
99
115
|
min-width: 80px;
|
|
100
116
|
flex-shrink: 0;
|
|
101
117
|
}
|
|
@@ -147,7 +163,7 @@ var styles = [css`
|
|
|
147
163
|
text-align: left;
|
|
148
164
|
font-size: 0.875rem;
|
|
149
165
|
font-weight: 600;
|
|
150
|
-
color: var(--
|
|
166
|
+
color: var(--dc-header-color);
|
|
151
167
|
border-bottom: 2px solid var(--u-border-color, #E0E0E0);
|
|
152
168
|
white-space: nowrap;
|
|
153
169
|
}
|
|
@@ -181,7 +197,7 @@ var styles = [css`
|
|
|
181
197
|
align-items: center;
|
|
182
198
|
justify-content: center;
|
|
183
199
|
min-height: 300px;
|
|
184
|
-
color: var(--
|
|
200
|
+
color: var(--dc-empty-color);
|
|
185
201
|
font-size: 1rem;
|
|
186
202
|
}
|
|
187
203
|
`];
|
|
@@ -2,6 +2,22 @@ import { css, unsafeCSS } from "lit";
|
|
|
2
2
|
//#region src/components/simple-sheet/USimpleSheet.styles.ts
|
|
3
3
|
var baseStyles = css`
|
|
4
4
|
:host {
|
|
5
|
+
|
|
6
|
+
/* ── 소비자 조절점 — 보조 전경 5단 ──
|
|
7
|
+
★이 셋의 보조 전경이 전부 --u-txt-color-weak 직독이라 «표 안에서만» 조절할 방법이
|
|
8
|
+
없었다(소비자 토큰 0 · part 0). 소비앱은 한 제품 안에 표를 넷 두는데, 그중 업스트림
|
|
9
|
+
표만 조절되지 않으면 나머지에 맞출 수가 없다.
|
|
10
|
+
⚠**한 토큰으로 접지 않는다** — 실측상 16곳의 역할이 갈리고, 접으면 "읽기 전용 셀만
|
|
11
|
+
진하게" 같은 요청이 원리적으로 불가능해진다. 그것이 이 요청의 발단이었다.
|
|
12
|
+
⚠**다크 블록에 다시 선언하지 않는다.** --u-txt-color-weak 자체가 테마 변형이므로
|
|
13
|
+
시트가 있으면 따라온다. 이 패키지의 다크 블록이 «비어 있는 것»이 목표 상태다.
|
|
14
|
+
⚠**폴백 리터럴은 라이트 시트 값의 복제다**(루트 tokens:sync 가 대조한다).
|
|
15
|
+
⚠**이 컴포넌트가 «읽는» 단만 선언한다.** 다섯을 어디서나 선언하면 소비자가
|
|
16
|
+
바꿔도 아무 일이 없는 자리가 생긴다 — 이 리포가 반복해서 본 «토큰 존재 ≠ 배선»
|
|
17
|
+
이다. 어느 단이 어디에 있는지는 README 의 표가 정본이다. */
|
|
18
|
+
--dc-header-color: var(--u-txt-color-weak, #757575); /* 열 머리 · 행 머리 */
|
|
19
|
+
--dc-empty-color: var(--u-txt-color-weak, #757575); /* 빈 상태 안내문 */
|
|
20
|
+
--dc-readonly-color: var(--u-txt-color-weak, #757575); /* 읽기 전용 셀 */
|
|
5
21
|
display: block;
|
|
6
22
|
width: 100%;
|
|
7
23
|
height: 400px;
|
|
@@ -64,7 +80,7 @@ var baseStyles = css`
|
|
|
64
80
|
text-align: center;
|
|
65
81
|
font-size: 12px;
|
|
66
82
|
font-weight: 600;
|
|
67
|
-
color: var(--
|
|
83
|
+
color: var(--dc-header-color);
|
|
68
84
|
border-right: 1px solid var(--u-border-color, #E0E0E0);
|
|
69
85
|
border-bottom: 2px solid var(--u-border-color, #E0E0E0);
|
|
70
86
|
white-space: nowrap;
|
|
@@ -124,7 +140,7 @@ var baseStyles = css`
|
|
|
124
140
|
text-align: right;
|
|
125
141
|
padding: 0 6px;
|
|
126
142
|
font-size: 11px;
|
|
127
|
-
color: var(--
|
|
143
|
+
color: var(--dc-header-color);
|
|
128
144
|
/* 예외 — 표면 높이 축이 없다. 행번호 여백은 "비활성"이 아니라 시트 바탕보다
|
|
129
145
|
한 단 내려간 면이다. --u-bg-color-disabled 를 쓰면 다크에서 바탕(neutral-100)과
|
|
130
146
|
같은 값이 되어 여백 구분이 사라진다 — 스냅샷이 그것을 잡았다. */
|
|
@@ -239,7 +255,7 @@ var baseStyles = css`
|
|
|
239
255
|
.dropdown-empty {
|
|
240
256
|
padding: 6px 8px;
|
|
241
257
|
font-size: 12px;
|
|
242
|
-
color: var(--
|
|
258
|
+
color: var(--dc-empty-color);
|
|
243
259
|
font-style: italic;
|
|
244
260
|
}
|
|
245
261
|
|
|
@@ -251,7 +267,7 @@ var baseStyles = css`
|
|
|
251
267
|
/* Readonly column/cell */
|
|
252
268
|
.cell.cell-readonly {
|
|
253
269
|
background: var(--u-bg-color-disabled, #FAFAFA);
|
|
254
|
-
color: var(--
|
|
270
|
+
color: var(--dc-readonly-color);
|
|
255
271
|
cursor: default;
|
|
256
272
|
}
|
|
257
273
|
|
|
@@ -2,6 +2,20 @@ import { css } from "lit";
|
|
|
2
2
|
//#region src/components/u-rich-table/styles.ts
|
|
3
3
|
var richTableStyles = css`
|
|
4
4
|
:host {
|
|
5
|
+
/* ── 소비자 조절점 — 보조 전경 ──
|
|
6
|
+
★이 패키지 표 셋의 보조 전경이 전부 --u-txt-color-weak 직독이라 «표 안에서만»
|
|
7
|
+
조절할 방법이 없었다(소비자 토큰 0 · part 0). 소비앱은 한 제품 안에 표를 넷 두는데,
|
|
8
|
+
그중 업스트림 표만 조절되지 않으면 나머지에 맞출 수가 없다.
|
|
9
|
+
⚠**한 토큰으로 접지 않는다** — 실측상 역할이 갈리고, 접으면 "읽기 전용 셀만 진하게"
|
|
10
|
+
같은 요청이 원리적으로 불가능해진다. 그것이 이 요청의 발단이었다.
|
|
11
|
+
⚠**이 컴포넌트가 «읽는» 단만 선언한다.** 다섯을 어디서나 선언하면 소비자가 바꿔도
|
|
12
|
+
아무 일이 없는 자리가 생긴다 — 이 리포가 반복해서 본 «토큰 존재 ≠ 배선»이다.
|
|
13
|
+
⚠**다크 블록에 다시 선언하지 않는다.** --u-txt-color-weak 자체가 테마 변형이므로
|
|
14
|
+
시트가 있으면 따라온다. 이 패키지의 다크 블록이 «비어 있는 것»이 목표 상태다.
|
|
15
|
+
⚠**폴백 리터럴은 라이트 시트 값의 복제다**(루트 tokens:sync 가 대조한다). */
|
|
16
|
+
--dc-muted-color: var(--u-txt-color-weak, #757575); /* 보조 텍스트 · 라벨 */
|
|
17
|
+
--dc-icon-color: var(--u-txt-color-weak, #757575); /* 정렬 표시 · 확장 · 행 메뉴 */
|
|
18
|
+
--dc-empty-color: var(--u-txt-color-weak, #757575); /* 빈 상태 안내문 */
|
|
5
19
|
display: block;
|
|
6
20
|
font-family: system-ui, -apple-system, sans-serif;
|
|
7
21
|
font-size: 13px;
|
|
@@ -22,7 +36,7 @@ var richTableStyles = css`
|
|
|
22
36
|
|
|
23
37
|
.toolbar .selection-info {
|
|
24
38
|
font-size: 12px;
|
|
25
|
-
color: var(--
|
|
39
|
+
color: var(--dc-muted-color);
|
|
26
40
|
}
|
|
27
41
|
|
|
28
42
|
.toolbar .search-input {
|
|
@@ -80,7 +94,7 @@ var richTableStyles = css`
|
|
|
80
94
|
|
|
81
95
|
.sort-indicator {
|
|
82
96
|
font-size: 10px;
|
|
83
|
-
color: var(--
|
|
97
|
+
color: var(--dc-icon-color);
|
|
84
98
|
margin-left: 4px;
|
|
85
99
|
}
|
|
86
100
|
|
|
@@ -158,7 +172,7 @@ var richTableStyles = css`
|
|
|
158
172
|
width: 30px;
|
|
159
173
|
text-align: center;
|
|
160
174
|
cursor: pointer;
|
|
161
|
-
color: var(--
|
|
175
|
+
color: var(--dc-icon-color);
|
|
162
176
|
}
|
|
163
177
|
|
|
164
178
|
.expand-cell:hover {
|
|
@@ -183,7 +197,7 @@ var richTableStyles = css`
|
|
|
183
197
|
border-radius: 3px;
|
|
184
198
|
background: transparent;
|
|
185
199
|
font-size: 12px;
|
|
186
|
-
color: var(--
|
|
200
|
+
color: var(--dc-muted-color);
|
|
187
201
|
outline: none;
|
|
188
202
|
}
|
|
189
203
|
|
|
@@ -215,7 +229,7 @@ var richTableStyles = css`
|
|
|
215
229
|
background: var(--u-bg-color-raised, #FAFAFA);
|
|
216
230
|
border-top: 1px solid var(--u-border-color, #E0E0E0);
|
|
217
231
|
font-size: 12px;
|
|
218
|
-
color: var(--
|
|
232
|
+
color: var(--dc-muted-color);
|
|
219
233
|
}
|
|
220
234
|
|
|
221
235
|
.pagination .page-buttons {
|
|
@@ -254,7 +268,7 @@ var richTableStyles = css`
|
|
|
254
268
|
align-items: center;
|
|
255
269
|
justify-content: center;
|
|
256
270
|
padding: 40px;
|
|
257
|
-
color: var(--
|
|
271
|
+
color: var(--dc-muted-color);
|
|
258
272
|
}
|
|
259
273
|
|
|
260
274
|
.empty-message {
|
|
@@ -262,7 +276,7 @@ var richTableStyles = css`
|
|
|
262
276
|
align-items: center;
|
|
263
277
|
justify-content: center;
|
|
264
278
|
padding: 40px;
|
|
265
|
-
color: var(--
|
|
279
|
+
color: var(--dc-empty-color);
|
|
266
280
|
}
|
|
267
281
|
|
|
268
282
|
|
|
@@ -270,7 +284,7 @@ var richTableStyles = css`
|
|
|
270
284
|
.styles.ts 만 훑는 정리로는 보이지 않는 자리다. */
|
|
271
285
|
.row-menu {
|
|
272
286
|
cursor: pointer;
|
|
273
|
-
color: var(--
|
|
287
|
+
color: var(--dc-icon-color);
|
|
274
288
|
}
|
|
275
289
|
|
|
276
290
|
.row-error-cell {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iyulab/data-components",
|
|
3
3
|
"description": "iyulab data visualization components",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.10.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iyulab",
|
|
7
7
|
"web-components",
|
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
"@lit/react": "^1.0.8",
|
|
79
79
|
"@types/node": "^26.1.1",
|
|
80
80
|
"@types/react": "^19.2.17",
|
|
81
|
+
"@vitest/browser-playwright": "^4.1.10",
|
|
81
82
|
"eslint": "^9.39.4",
|
|
82
83
|
"glob": "^13.0.6",
|
|
83
84
|
"globals": "^17.7.0",
|