@iyulab/data-components 0.7.1 → 0.9.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 +218 -0
- package/README.md +36 -2
- package/dist/components/data-view/UDataView.styles.js +33 -106
- package/dist/components/simple-sheet/USimpleSheet.d.ts +2 -0
- package/dist/components/simple-sheet/USimpleSheet.js +3 -1
- package/dist/components/simple-sheet/USimpleSheet.styles.js +54 -150
- package/dist/components/u-rich-table/URichTable.d.ts +25 -0
- package/dist/components/u-rich-table/URichTable.js +47 -15
- package/dist/components/u-rich-table/styles.js +77 -206
- package/dist/init.js +1 -0
- package/package.json +2 -2
|
@@ -5,7 +5,8 @@ var richTableStyles = css`
|
|
|
5
5
|
display: block;
|
|
6
6
|
font-family: system-ui, -apple-system, sans-serif;
|
|
7
7
|
font-size: 13px;
|
|
8
|
-
|
|
8
|
+
color: var(--u-txt-color, #212121);
|
|
9
|
+
border: 1px solid var(--u-border-color, #E0E0E0);
|
|
9
10
|
border-radius: 8px;
|
|
10
11
|
overflow: hidden;
|
|
11
12
|
}
|
|
@@ -15,25 +16,25 @@ var richTableStyles = css`
|
|
|
15
16
|
align-items: center;
|
|
16
17
|
gap: 8px;
|
|
17
18
|
padding: 8px 12px;
|
|
18
|
-
background: #
|
|
19
|
-
border-bottom: 1px solid #
|
|
19
|
+
background: var(--u-bg-color-raised, #FAFAFA);
|
|
20
|
+
border-bottom: 1px solid var(--u-border-color, #E0E0E0);
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
.toolbar .selection-info {
|
|
23
24
|
font-size: 12px;
|
|
24
|
-
color: #
|
|
25
|
+
color: var(--u-txt-color-weak, #757575);
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
.toolbar .search-input {
|
|
28
29
|
padding: 4px 10px;
|
|
29
|
-
border: 1px solid #
|
|
30
|
+
border: 1px solid var(--u-input-border-color, #E0E0E0);
|
|
30
31
|
border-radius: 4px;
|
|
31
32
|
font-size: 12px;
|
|
32
33
|
outline: none;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
.toolbar .search-input:focus {
|
|
36
|
-
border-color: #
|
|
37
|
+
border-color: var(--u-input-border-color-focus, #1976D2);
|
|
37
38
|
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
|
|
38
39
|
}
|
|
39
40
|
|
|
@@ -43,13 +44,16 @@ var richTableStyles = css`
|
|
|
43
44
|
border-radius: 4px;
|
|
44
45
|
font-size: 12px;
|
|
45
46
|
cursor: pointer;
|
|
47
|
+
/* 예외 — "색 배경 위의 글자" 역할 토큰이 없다. --u-txt-color-inverse 는
|
|
48
|
+
다크에서 neutral-100(#121212) 이라 파랑/초록 버튼 위에서 읽히지 않는다.
|
|
49
|
+
버튼 배경은 두 테마 모두 유채색이므로 흰 글자가 맞다. */
|
|
46
50
|
color: white;
|
|
47
51
|
}
|
|
48
52
|
|
|
49
|
-
.toolbar .btn-primary { background: #
|
|
50
|
-
.toolbar .btn-primary:hover { background: #
|
|
51
|
-
.toolbar .btn-success { background: #
|
|
52
|
-
.toolbar .btn-success:hover { background: #
|
|
53
|
+
.toolbar .btn-primary { background: var(--u-primary-color, #1976D2); }
|
|
54
|
+
.toolbar .btn-primary:hover { background: var(--u-primary-color-strong, #1565C0); }
|
|
55
|
+
.toolbar .btn-success { background: var(--u-success-color, #2E7D32); }
|
|
56
|
+
.toolbar .btn-success:hover { background: var(--u-success-color-strong, #1B5E20); }
|
|
53
57
|
|
|
54
58
|
table {
|
|
55
59
|
width: 100%;
|
|
@@ -58,10 +62,10 @@ var richTableStyles = css`
|
|
|
58
62
|
|
|
59
63
|
thead th {
|
|
60
64
|
padding: 8px;
|
|
61
|
-
background: #
|
|
65
|
+
background: var(--u-bg-color-raised, #FAFAFA);
|
|
62
66
|
font-weight: 600;
|
|
63
67
|
text-align: left;
|
|
64
|
-
border-bottom: 2px solid #
|
|
68
|
+
border-bottom: 2px solid var(--u-border-color, #E0E0E0);
|
|
65
69
|
user-select: none;
|
|
66
70
|
position: relative;
|
|
67
71
|
}
|
|
@@ -71,55 +75,55 @@ var richTableStyles = css`
|
|
|
71
75
|
}
|
|
72
76
|
|
|
73
77
|
thead th.sortable:hover {
|
|
74
|
-
background: #
|
|
78
|
+
background: var(--u-bg-color-active, #EEEEEE);
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
.sort-indicator {
|
|
78
82
|
font-size: 10px;
|
|
79
|
-
color: #
|
|
83
|
+
color: var(--u-txt-color-weak, #757575);
|
|
80
84
|
margin-left: 4px;
|
|
81
85
|
}
|
|
82
86
|
|
|
83
87
|
.filter-row td {
|
|
84
88
|
padding: 4px;
|
|
85
|
-
background: #
|
|
86
|
-
border-bottom: 1px solid #
|
|
89
|
+
background: var(--u-yellow-0, #FFFDE7);
|
|
90
|
+
border-bottom: 1px solid var(--u-border-color, #E0E0E0);
|
|
87
91
|
}
|
|
88
92
|
|
|
89
93
|
.filter-row input,
|
|
90
94
|
.filter-row select {
|
|
91
95
|
width: 100%;
|
|
92
96
|
padding: 2px 6px;
|
|
93
|
-
border: 1px solid #
|
|
97
|
+
border: 1px solid var(--u-input-border-color, #E0E0E0);
|
|
94
98
|
border-radius: 3px;
|
|
95
99
|
font-size: 11px;
|
|
96
100
|
outline: none;
|
|
97
101
|
}
|
|
98
102
|
|
|
99
103
|
tbody tr {
|
|
100
|
-
border-bottom: 1px solid #
|
|
104
|
+
border-bottom: 1px solid var(--u-border-color-weak, #EEEEEE);
|
|
101
105
|
}
|
|
102
106
|
|
|
103
107
|
tbody tr:hover {
|
|
104
|
-
background: #
|
|
108
|
+
background: var(--u-bg-color-hover, #F5F5F5);
|
|
105
109
|
}
|
|
106
110
|
|
|
107
111
|
tbody tr.selected {
|
|
108
|
-
background: #
|
|
112
|
+
background: var(--u-primary-bg-color, #E3F2FD);
|
|
109
113
|
}
|
|
110
114
|
|
|
111
115
|
tbody tr.focused td.focused-cell {
|
|
112
|
-
outline: 2px solid #
|
|
116
|
+
outline: 2px solid var(--u-primary-color, #1976D2);
|
|
113
117
|
outline-offset: -2px;
|
|
114
118
|
}
|
|
115
119
|
|
|
116
120
|
tbody tr.editing {
|
|
117
|
-
background: #
|
|
118
|
-
outline: 2px solid #
|
|
121
|
+
background: var(--u-yellow-0, #FFFDE7);
|
|
122
|
+
outline: 2px solid var(--u-warning-color-weak, #FFEB3B);
|
|
119
123
|
}
|
|
120
124
|
|
|
121
125
|
tbody tr.error {
|
|
122
|
-
background: #
|
|
126
|
+
background: var(--u-danger-bg-color, #FFEBEE);
|
|
123
127
|
}
|
|
124
128
|
|
|
125
129
|
tbody td {
|
|
@@ -129,19 +133,19 @@ var richTableStyles = css`
|
|
|
129
133
|
tbody td .cell-edit-input {
|
|
130
134
|
width: 100%;
|
|
131
135
|
padding: 4px 6px;
|
|
132
|
-
border: 1px solid #
|
|
136
|
+
border: 1px solid var(--u-primary-color, #1976D2);
|
|
133
137
|
border-radius: 3px;
|
|
134
138
|
font-size: 13px;
|
|
135
139
|
outline: none;
|
|
136
140
|
}
|
|
137
141
|
|
|
138
142
|
tbody td .cell-edit-input.invalid {
|
|
139
|
-
border-color: #
|
|
143
|
+
border-color: var(--u-danger-color, #D32F2F);
|
|
140
144
|
}
|
|
141
145
|
|
|
142
146
|
.validation-error {
|
|
143
147
|
font-size: 10px;
|
|
144
|
-
color: #
|
|
148
|
+
color: var(--u-danger-color, #D32F2F);
|
|
145
149
|
margin-top: 2px;
|
|
146
150
|
}
|
|
147
151
|
|
|
@@ -154,11 +158,11 @@ var richTableStyles = css`
|
|
|
154
158
|
width: 30px;
|
|
155
159
|
text-align: center;
|
|
156
160
|
cursor: pointer;
|
|
157
|
-
color: #
|
|
161
|
+
color: var(--u-txt-color-weak, #757575);
|
|
158
162
|
}
|
|
159
163
|
|
|
160
164
|
.expand-cell:hover {
|
|
161
|
-
color: #
|
|
165
|
+
color: var(--u-primary-color, #1976D2);
|
|
162
166
|
}
|
|
163
167
|
|
|
164
168
|
.actions-cell {
|
|
@@ -168,31 +172,31 @@ var richTableStyles = css`
|
|
|
168
172
|
|
|
169
173
|
.new-row td {
|
|
170
174
|
padding: 4px 8px;
|
|
171
|
-
background: #
|
|
175
|
+
background: var(--u-success-bg-color, #E8F5E9);
|
|
172
176
|
opacity: 0.8;
|
|
173
177
|
}
|
|
174
178
|
|
|
175
179
|
.new-row input {
|
|
176
180
|
width: 100%;
|
|
177
181
|
padding: 4px 6px;
|
|
178
|
-
border: 1px dashed #
|
|
182
|
+
border: 1px dashed var(--u-success-color-weaker, #81C784);
|
|
179
183
|
border-radius: 3px;
|
|
180
184
|
background: transparent;
|
|
181
185
|
font-size: 12px;
|
|
182
|
-
color: #
|
|
186
|
+
color: var(--u-txt-color-weak, #757575);
|
|
183
187
|
outline: none;
|
|
184
188
|
}
|
|
185
189
|
|
|
186
190
|
.new-row input:focus {
|
|
187
|
-
border-color: #
|
|
188
|
-
background:
|
|
191
|
+
border-color: var(--u-success-color, #2E7D32);
|
|
192
|
+
background: var(--u-bg-color, #FFFFFF);
|
|
189
193
|
opacity: 1;
|
|
190
194
|
}
|
|
191
195
|
|
|
192
196
|
.detail-row td {
|
|
193
197
|
padding: 8px 8px 8px 70px;
|
|
194
|
-
background: #
|
|
195
|
-
border-bottom: 2px solid #
|
|
198
|
+
background: var(--u-bg-color-raised, #FAFAFA);
|
|
199
|
+
border-bottom: 2px solid var(--u-border-color, #E0E0E0);
|
|
196
200
|
}
|
|
197
201
|
|
|
198
202
|
.badge {
|
|
@@ -208,10 +212,10 @@ var richTableStyles = css`
|
|
|
208
212
|
justify-content: space-between;
|
|
209
213
|
align-items: center;
|
|
210
214
|
padding: 8px 12px;
|
|
211
|
-
background: #
|
|
212
|
-
border-top: 1px solid #
|
|
215
|
+
background: var(--u-bg-color-raised, #FAFAFA);
|
|
216
|
+
border-top: 1px solid var(--u-border-color, #E0E0E0);
|
|
213
217
|
font-size: 12px;
|
|
214
|
-
color: #
|
|
218
|
+
color: var(--u-txt-color-weak, #757575);
|
|
215
219
|
}
|
|
216
220
|
|
|
217
221
|
.pagination .page-buttons {
|
|
@@ -222,22 +226,24 @@ var richTableStyles = css`
|
|
|
222
226
|
|
|
223
227
|
.pagination button {
|
|
224
228
|
padding: 2px 8px;
|
|
225
|
-
border: 1px solid #
|
|
229
|
+
border: 1px solid var(--u-input-border-color, #E0E0E0);
|
|
226
230
|
border-radius: 3px;
|
|
227
|
-
|
|
231
|
+
/* 크롬 면 위의 컨트롤이다 — 면과 같은 단이면 묻힌다. 입력 계열은 두 테마 모두
|
|
232
|
+
크롬 면보다 한 단 안쪽이라(라이트 흰색 / 다크 #1E1E1E) 자연히 구분된다. */
|
|
233
|
+
background: var(--u-input-bg-color, #FFFFFF);
|
|
228
234
|
font-size: 11px;
|
|
229
235
|
cursor: pointer;
|
|
230
236
|
}
|
|
231
237
|
|
|
232
238
|
.pagination button.active {
|
|
233
|
-
background: #
|
|
234
|
-
color:
|
|
235
|
-
border-color: #
|
|
239
|
+
background: var(--u-primary-color, #1976D2);
|
|
240
|
+
color: var(--u-txt-color-inverse, #FFFFFF);
|
|
241
|
+
border-color: var(--u-input-border-color-focus, #1976D2);
|
|
236
242
|
}
|
|
237
243
|
|
|
238
244
|
.pagination select {
|
|
239
245
|
padding: 2px 4px;
|
|
240
|
-
border: 1px solid #
|
|
246
|
+
border: 1px solid var(--u-input-border-color, #E0E0E0);
|
|
241
247
|
border-radius: 3px;
|
|
242
248
|
font-size: 11px;
|
|
243
249
|
margin-left: 8px;
|
|
@@ -248,7 +254,7 @@ var richTableStyles = css`
|
|
|
248
254
|
align-items: center;
|
|
249
255
|
justify-content: center;
|
|
250
256
|
padding: 40px;
|
|
251
|
-
color: #
|
|
257
|
+
color: var(--u-txt-color-weak, #757575);
|
|
252
258
|
}
|
|
253
259
|
|
|
254
260
|
.empty-message {
|
|
@@ -256,178 +262,43 @@ var richTableStyles = css`
|
|
|
256
262
|
align-items: center;
|
|
257
263
|
justify-content: center;
|
|
258
264
|
padding: 40px;
|
|
259
|
-
color: #
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/* ── Dark mode ──
|
|
263
|
-
외부에서 --u-* CSS 변수가 제공되면 그 값을 사용하고,
|
|
264
|
-
제공되지 않으면 자체 dark fallback 값을 적용한다. */
|
|
265
|
-
|
|
266
|
-
:host-context([theme="dark"]) {
|
|
267
|
-
border-color: var(--u-border-color, #3D3D3D);
|
|
268
|
-
color: var(--u-txt-color, #D4D4D4);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
:host-context([theme="dark"]) .toolbar {
|
|
272
|
-
background: var(--u-neutral-200, #1E1E1E);
|
|
273
|
-
border-bottom-color: var(--u-border-color, #3D3D3D);
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
:host-context([theme="dark"]) .toolbar .selection-info {
|
|
277
|
-
color: var(--u-txt-color-weak, #8A8A8A);
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
:host-context([theme="dark"]) .toolbar .search-input {
|
|
281
|
-
background: var(--u-input-bg-color, #1E1E1E);
|
|
282
|
-
color: var(--u-txt-color, #D4D4D4);
|
|
283
|
-
border-color: var(--u-input-border-color, #3D3D3D);
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
:host-context([theme="dark"]) .toolbar .search-input:focus {
|
|
287
|
-
border-color: var(--u-blue-500, #6ba3e3);
|
|
288
|
-
box-shadow: 0 0 0 2px rgba(107, 163, 227, 0.2);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
:host-context([theme="dark"]) .toolbar .btn-primary {
|
|
292
|
-
background: var(--u-blue-500, #6ba3e3);
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
:host-context([theme="dark"]) .toolbar .btn-primary:hover {
|
|
296
|
-
background: var(--u-blue-600, #87B8F5);
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
:host-context([theme="dark"]) .toolbar .btn-success {
|
|
300
|
-
background: var(--u-green-500, #66B584);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
:host-context([theme="dark"]) .toolbar .btn-success:hover {
|
|
304
|
-
background: var(--u-green-600, #81D19D);
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
:host-context([theme="dark"]) thead th {
|
|
308
|
-
background: var(--u-neutral-200, #1E1E1E);
|
|
309
|
-
color: var(--u-txt-color, #D4D4D4);
|
|
310
|
-
border-bottom-color: var(--u-border-color, #3D3D3D);
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
:host-context([theme="dark"]) thead th.sortable:hover {
|
|
314
|
-
background: var(--u-neutral-300, #2A2A2A);
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
:host-context([theme="dark"]) .sort-indicator {
|
|
318
|
-
color: var(--u-txt-color-weak, #8A8A8A);
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
:host-context([theme="dark"]) .filter-row td {
|
|
322
|
-
background: var(--u-yellow-0, #2E2200);
|
|
323
|
-
border-bottom-color: var(--u-border-color, #3D3D3D);
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
:host-context([theme="dark"]) .filter-row input,
|
|
327
|
-
:host-context([theme="dark"]) .filter-row select {
|
|
328
|
-
background: var(--u-input-bg-color, #1E1E1E);
|
|
329
|
-
color: var(--u-txt-color, #D4D4D4);
|
|
330
|
-
border-color: var(--u-input-border-color, #3D3D3D);
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
:host-context([theme="dark"]) tbody tr {
|
|
334
|
-
border-bottom-color: var(--u-border-color-weak, #2A2A2A);
|
|
265
|
+
color: var(--u-txt-color-weak, #757575);
|
|
335
266
|
}
|
|
336
267
|
|
|
337
|
-
:host-context([theme="dark"]) tbody tr:hover {
|
|
338
|
-
background: var(--u-neutral-200, #1E1E1E);
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
:host-context([theme="dark"]) tbody tr.selected {
|
|
342
|
-
background: var(--u-blue-0, #0a1e3d);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
:host-context([theme="dark"]) tbody tr.focused td.focused-cell {
|
|
346
|
-
outline-color: var(--u-blue-500, #6ba3e3);
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
:host-context([theme="dark"]) tbody tr.editing {
|
|
350
|
-
background: var(--u-yellow-0, #2E2200);
|
|
351
|
-
outline-color: var(--u-yellow-500, #D4A712);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
:host-context([theme="dark"]) tbody tr.error {
|
|
355
|
-
background: var(--u-red-0, #2E0A0A);
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
:host-context([theme="dark"]) tbody td .cell-edit-input {
|
|
359
|
-
background: var(--u-input-bg-color, #1E1E1E);
|
|
360
|
-
color: var(--u-txt-color, #D4D4D4);
|
|
361
|
-
border-color: var(--u-blue-500, #6ba3e3);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
:host-context([theme="dark"]) tbody td .cell-edit-input.invalid {
|
|
365
|
-
border-color: var(--u-red-500, #D66060);
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
:host-context([theme="dark"]) .validation-error {
|
|
369
|
-
color: var(--u-red-500, #D66060);
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
:host-context([theme="dark"]) .expand-cell {
|
|
373
|
-
color: var(--u-txt-color-weak, #8A8A8A);
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
:host-context([theme="dark"]) .expand-cell:hover {
|
|
377
|
-
color: var(--u-blue-500, #6ba3e3);
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
:host-context([theme="dark"]) .new-row td {
|
|
381
|
-
background: var(--u-green-0, #0D2818);
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
:host-context([theme="dark"]) .new-row input {
|
|
385
|
-
border-color: var(--u-green-500, #66B584);
|
|
386
|
-
color: var(--u-txt-color-weak, #8A8A8A);
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
:host-context([theme="dark"]) .new-row input:focus {
|
|
390
|
-
border-color: var(--u-green-600, #81D19D);
|
|
391
|
-
background: var(--u-input-bg-color, #1E1E1E);
|
|
392
|
-
color: var(--u-txt-color, #D4D4D4);
|
|
393
|
-
}
|
|
394
268
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
269
|
+
/* 종전에는 아래 셋이 템플릿 안에 style="…#94a3b8" 형태로 박혀 있었다.
|
|
270
|
+
.styles.ts 만 훑는 정리로는 보이지 않는 자리다. */
|
|
271
|
+
.row-menu {
|
|
272
|
+
cursor: pointer;
|
|
273
|
+
color: var(--u-txt-color-weak, #757575);
|
|
398
274
|
}
|
|
399
275
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
color: var(--u-
|
|
276
|
+
.row-error-cell {
|
|
277
|
+
padding: 2px 8px;
|
|
278
|
+
background: var(--u-danger-bg-color, #FFEBEE);
|
|
279
|
+
color: var(--u-danger-color, #D32F2F);
|
|
280
|
+
font-size: 11px;
|
|
404
281
|
}
|
|
405
282
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
color: var(--u-txt-color, #D4D4D4);
|
|
409
|
-
border-color: var(--u-border-color, #3D3D3D);
|
|
283
|
+
.new-row-marker {
|
|
284
|
+
color: var(--u-success-color-weaker, #81C784);
|
|
410
285
|
}
|
|
411
286
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
color: var(--u-neutral-1000, #FFFFFF);
|
|
415
|
-
border-color: var(--u-blue-500, #6ba3e3);
|
|
416
|
-
}
|
|
287
|
+
/* ── 다크 보정 ──
|
|
288
|
+
★**이 블록은 비어 있다. 그것이 목표 상태다.**
|
|
417
289
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
290
|
+
종전에는 여기 57개 선언이 있었고, base 레이어가 토큰을 전혀 쓰지 않아(하드코딩 hex)
|
|
291
|
+
다크를 통째로 재구현할 수밖에 없었다. base 를 역할 토큰으로 옮기며 대부분이 사라졌고,
|
|
292
|
+
마지막까지 남은 것은 **표면 높이 축의 부재** 하나였다 — 배경 역할 토큰이 상호작용
|
|
293
|
+
상태 이름(-hover/-active/-disabled)뿐이라 "바탕보다 한 단 올라온 면"을 뜻할 수단이
|
|
294
|
+
없었다. 라이트에서는 neutral-50/100 이 흰 바탕 위에서 읽히지만 다크에서는 그 단이
|
|
295
|
+
#0A0A0A/#121212 로 거의 검정이라 툴바·헤더·페이지네이션이 배경에 묻혔다.
|
|
423
296
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
}
|
|
297
|
+
@iyulab/components 1.18.0 이 --u-bg-color-raised 를 신설해 그 자리를 채웠고,
|
|
298
|
+
base 규칙이 그것을 쓰므로 다크 전용 규칙이 필요 없다.
|
|
427
299
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
}
|
|
300
|
+
⇒ **부수 효과로 Firefox·Safari 의 다크가 완성된다.** :host-context 는 그 둘에서
|
|
301
|
+
미지원이라 이 블록의 색은 애초에 적용된 적이 없었다. 토큰 층은 브라우저를 가리지 않는다. */
|
|
431
302
|
`;
|
|
432
303
|
//#endregion
|
|
433
304
|
export { richTableStyles };
|
package/dist/init.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./utilities/shadowDomProtection.js";
|
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.9.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iyulab",
|
|
7
7
|
"web-components",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"lint:fix": "eslint src/ --fix"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@iyulab/components": "^1.
|
|
61
|
+
"@iyulab/components": "^1.18.0",
|
|
62
62
|
"lit": "^3.3.3"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|