@ihabdevteam/core 0.43.0 → 0.45.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/dist/components.cjs.js +8 -8
- package/dist/components.esm.css +5 -5
- package/dist/hooks.cjs.js +1 -1
- package/dist/ihabdevteam-core.cjs.js +11 -11
- package/dist/ihabdevteam-core.d.ts +1 -1
- package/dist/packages/core/src/components/Dropdown.css +0 -11
- package/dist/packages/core/src/components/FilterPanel.css +0 -5
- package/dist/packages/core/src/components/Footer.css +0 -6
- package/dist/packages/core/src/components/Header.css +0 -17
- package/dist/packages/core/src/components/Loader.css +0 -32
- package/dist/packages/core/src/components/Panel.css +2 -16
- package/dist/packages/core/src/components/PaymentPlan.css +0 -61
- package/dist/packages/core/src/components/Popup/DeviceListPopup.css +0 -55
- package/dist/packages/core/src/components/Popup/Popup.css +0 -6
- package/dist/packages/core/src/components/Popup/SaveTablePopup.css +0 -9
- package/dist/packages/core/src/components/Popup/TrainingResultPopup.css +0 -34
- package/dist/packages/core/src/components/SoundCompass.css +0 -8
- package/dist/packages/core/src/components/Table.css +0 -21
- package/dist/packages/core/src/components/Toolbar.css +0 -8
- package/dist/packages/core/src/components/Tooltip/MenuTooltip.css +0 -19
- package/dist/packages/core/src/components/Tooltip/Tooltip.css +0 -17
- package/dist/packages/core/src/components/Tooltip/Tooltip.js +7 -1
- package/dist/packages/core/src/components/Training/CategoryIcon.css +0 -22
- package/dist/packages/core/src/components/Training/TrainingBlock.css +0 -7
- package/dist/packages/core/src/components/Training/TrainingCard.css +0 -42
- package/dist/packages/core/src/components/Training/TrainingStep.css +0 -118
- package/dist/packages/core/src/components/Training/TrainingStepTitle.css +0 -6
- package/dist/packages/core/src/version.d.ts +1 -1
- package/dist/packages/core/src/version.js +1 -1
- package/dist/utils.cjs.js +1 -1
- package/package.json +1 -1
|
@@ -1295,7 +1295,7 @@ export declare function copyText(text: string): Promise<boolean>;
|
|
|
1295
1295
|
*
|
|
1296
1296
|
* 값은 손으로 적고 `test/coreVersion.test.ts` 가 package.json 과 어긋나면 운다.
|
|
1297
1297
|
*/
|
|
1298
|
-
export declare const CORE_VERSION = "0.
|
|
1298
|
+
export declare const CORE_VERSION = "0.45.0";
|
|
1299
1299
|
|
|
1300
1300
|
/** @public */
|
|
1301
1301
|
declare const coreDefault: Record<string, unknown>;
|
|
@@ -109,11 +109,6 @@
|
|
|
109
109
|
overscroll-behavior-y: contain;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
.dropdown__menu--up {
|
|
113
|
-
top: auto;
|
|
114
|
-
bottom: calc(100% + 6px);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
112
|
@keyframes dropdown-appear {
|
|
118
113
|
from { opacity: 0; transform: translateY(-6px); }
|
|
119
114
|
to { opacity: 1; transform: translateY(0); }
|
|
@@ -167,9 +162,3 @@
|
|
|
167
162
|
width: 14px;
|
|
168
163
|
height: 14px;
|
|
169
164
|
}
|
|
170
|
-
|
|
171
|
-
.dropdown__divider {
|
|
172
|
-
height: 1px;
|
|
173
|
-
background: var(--color-darkWhite);
|
|
174
|
-
margin: 4px 0;
|
|
175
|
-
}
|
|
@@ -78,10 +78,6 @@
|
|
|
78
78
|
margin: 0;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
.filter-panel__section-multiple {
|
|
82
|
-
color: var(--color-lightGray);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
81
|
.filter-panel__sections {
|
|
86
82
|
display: flex;
|
|
87
83
|
flex-direction: column;
|
|
@@ -135,7 +131,6 @@
|
|
|
135
131
|
flex-basis: 100%;
|
|
136
132
|
}
|
|
137
133
|
|
|
138
|
-
|
|
139
134
|
.filter-panel__items {
|
|
140
135
|
display: flex;
|
|
141
136
|
flex-wrap: wrap;
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
isolation: isolate;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
21
20
|
.header__menu-button {
|
|
22
21
|
display: none;
|
|
23
22
|
background: transparent;
|
|
@@ -112,22 +111,6 @@
|
|
|
112
111
|
color: rgba(255,255,255,0.55);
|
|
113
112
|
}
|
|
114
113
|
|
|
115
|
-
/* 전환 버튼 */
|
|
116
|
-
.header--manager .side-nav__mode-switch {
|
|
117
|
-
border-color: rgba(255,255,255,0.2);
|
|
118
|
-
background: transparent;
|
|
119
|
-
}
|
|
120
|
-
.header--manager .side-nav__mode-switch:hover {
|
|
121
|
-
background: rgba(255,255,255,0.12);
|
|
122
|
-
border-color: rgba(255,255,255,0.35);
|
|
123
|
-
}
|
|
124
|
-
.header--manager .side-nav__mode-switch-label {
|
|
125
|
-
color: rgba(255,255,255,0.7);
|
|
126
|
-
}
|
|
127
|
-
.header--manager .side-nav__mode-switch-arrow {
|
|
128
|
-
color: rgba(255,255,255,0.35);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
114
|
/* Desktop: width 220px */
|
|
132
115
|
@media (min-width: 1024px) {
|
|
133
116
|
.header {
|
|
@@ -39,24 +39,6 @@
|
|
|
39
39
|
width: 0%;
|
|
40
40
|
transition: width 220ms cubic-bezier(.2,.8,.2,1);
|
|
41
41
|
}
|
|
42
|
-
.core-loader-spinner {
|
|
43
|
-
display: inline-flex;
|
|
44
|
-
align-items: center;
|
|
45
|
-
justify-content: center;
|
|
46
|
-
}
|
|
47
|
-
.core-loader-spinner__svg {
|
|
48
|
-
transform-origin: center;
|
|
49
|
-
animation: core-loader-rotate 1s linear infinite;
|
|
50
|
-
}
|
|
51
|
-
.core-loader-spinner__bg {
|
|
52
|
-
stroke: rgba(0,0,0,0.08);
|
|
53
|
-
}
|
|
54
|
-
.core-loader-spinner__fg {
|
|
55
|
-
stroke: var(--color-main);
|
|
56
|
-
stroke-dasharray: 125;
|
|
57
|
-
stroke-dashoffset: 80;
|
|
58
|
-
animation: core-loader-dash 1.2s ease-in-out infinite;
|
|
59
|
-
}
|
|
60
42
|
|
|
61
43
|
@keyframes core-loader-rotate {
|
|
62
44
|
100% { transform: rotate(360deg); }
|
|
@@ -67,20 +49,6 @@
|
|
|
67
49
|
100% { stroke-dashoffset: 125; }
|
|
68
50
|
}
|
|
69
51
|
|
|
70
|
-
.core-loader-bar {
|
|
71
|
-
width: 100%;
|
|
72
|
-
height: 8px;
|
|
73
|
-
background: rgba(0,0,0,0.06);
|
|
74
|
-
border-radius: 999px;
|
|
75
|
-
overflow: hidden;
|
|
76
|
-
}
|
|
77
|
-
.core-loader-bar__inner {
|
|
78
|
-
height: 100%;
|
|
79
|
-
background: var(--color-main);
|
|
80
|
-
width: 0%;
|
|
81
|
-
transition: width 220ms cubic-bezier(.2,.8,.2,1);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
52
|
.page-loading-center {
|
|
85
53
|
display: flex;
|
|
86
54
|
justify-content: center;
|
|
@@ -164,21 +164,8 @@
|
|
|
164
164
|
padding: 16px;
|
|
165
165
|
min-height: 0;
|
|
166
166
|
}
|
|
167
|
-
|
|
168
|
-
.panel-row--
|
|
169
|
-
display: flex;
|
|
170
|
-
flex-direction: column;
|
|
171
|
-
padding: 16px 16px 20px;
|
|
172
|
-
min-height: 0;
|
|
173
|
-
flex: 1;
|
|
174
|
-
overflow-y: auto;
|
|
175
|
-
overscroll-behavior-y: contain;
|
|
176
|
-
}
|
|
177
|
-
/* 베리언트 row는 기본 구분선 규칙 비적용 */
|
|
178
|
-
.panel-row--content + .panel-row--content,
|
|
179
|
-
.panel-row--scroll + .panel-row--scroll,
|
|
180
|
-
.panel-row--content + .panel-row--scroll,
|
|
181
|
-
.panel-row--scroll + .panel-row--content {
|
|
167
|
+
|
|
168
|
+
.panel-row--content + .panel-row--content{
|
|
182
169
|
border-top: none;
|
|
183
170
|
}
|
|
184
171
|
|
|
@@ -368,7 +355,6 @@
|
|
|
368
355
|
.panel-row__device-kind { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
|
|
369
356
|
.panel-row__device-name { color: var(--color-darkGray); }
|
|
370
357
|
.panel-row__device-detail { color: var(--color-gray); }
|
|
371
|
-
.panel-row__device-product { color: var(--color-darkGray); }
|
|
372
358
|
.panel-row__device-date { color: var(--color-lightGray); margin-top: 2px; }
|
|
373
359
|
.panel-row__device-empty { flex: 1; display: flex; align-items: center; justify-content: center; text-align: center; color: var(--color-lightGray); }
|
|
374
360
|
|
|
@@ -79,15 +79,6 @@
|
|
|
79
79
|
display: block;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
.payment-plan__box-list {
|
|
83
|
-
padding-left: 18px;
|
|
84
|
-
color: var(--color-lightGray);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.payment-plan__box-list li {
|
|
88
|
-
margin-bottom: 4px;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
82
|
.payment-plan__contact-button {
|
|
92
83
|
width: 100%;
|
|
93
84
|
}
|
|
@@ -169,14 +160,6 @@
|
|
|
169
160
|
color: var(--plan-color, var(--color-main));
|
|
170
161
|
}
|
|
171
162
|
|
|
172
|
-
.payment-plan__pricing-row--highlight .payment-plan__pricing-original {
|
|
173
|
-
color: var(--color-lightGray);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
.payment-plan__pricing-row--highlight .payment-plan__pricing-badge {
|
|
177
|
-
color: var(--plan-color, var(--color-main));
|
|
178
|
-
}
|
|
179
|
-
|
|
180
163
|
.payment-plan__pricing-row:hover {
|
|
181
164
|
filter: brightness(1.04);
|
|
182
165
|
transform: translateY(-2px);
|
|
@@ -199,15 +182,6 @@
|
|
|
199
182
|
text-overflow: ellipsis;
|
|
200
183
|
}
|
|
201
184
|
|
|
202
|
-
.payment-plan__pricing-badge {
|
|
203
|
-
grid-column: 2;
|
|
204
|
-
grid-row: 1;
|
|
205
|
-
text-align: right;
|
|
206
|
-
white-space: nowrap;
|
|
207
|
-
margin: 0;
|
|
208
|
-
color: rgba(255, 255, 255, 0.9);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
185
|
.payment-plan__pricing-row-price {
|
|
212
186
|
grid-column: 1 / -1;
|
|
213
187
|
grid-row: 2;
|
|
@@ -220,13 +194,6 @@
|
|
|
220
194
|
margin: 0;
|
|
221
195
|
}
|
|
222
196
|
|
|
223
|
-
.payment-plan__pricing-original {
|
|
224
|
-
color: var(--color-white-a80);
|
|
225
|
-
text-decoration: line-through;
|
|
226
|
-
white-space: nowrap;
|
|
227
|
-
margin: 0;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
197
|
.payment-plan__pricing-current {
|
|
231
198
|
color: #ffffff;
|
|
232
199
|
white-space: nowrap;
|
|
@@ -263,44 +230,16 @@
|
|
|
263
230
|
align-self: stretch;
|
|
264
231
|
}
|
|
265
232
|
|
|
266
|
-
/* Allow inner flex items to shrink (prevents children from forcing taller heights) */
|
|
267
|
-
.payment-plan__card-inner,
|
|
268
|
-
.payment-plan__card-content {
|
|
269
|
-
min-height: 0;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
233
|
/* Legacy card variant (recommended badge style) */
|
|
273
234
|
.payment-plan__card.recommended {
|
|
274
235
|
border-color: var(--color-main);
|
|
275
236
|
box-shadow: var(--shadow-dropdown);
|
|
276
237
|
}
|
|
277
|
-
|
|
278
|
-
.payment-plan__recommended-badge {
|
|
279
|
-
position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
|
|
280
|
-
padding: 4px 14px; border-radius: var(--radius-m);
|
|
281
|
-
background: var(--color-main); color: #ffffff;
|
|
282
|
-
font-weight: 700; white-space: nowrap;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
.payment-plan__name { font-weight: 800; margin: 0 0 8px; }
|
|
286
|
-
.payment-plan__price { font-weight: 800; margin: 0 0 4px; }
|
|
287
|
-
.payment-plan__period { color: var(--color-gray); display: inline; }
|
|
288
|
-
.payment-plan__features { list-style: none; padding: 0; margin: 20px 0; display: flex; flex-direction: column; gap: var(--spacing-xs); }
|
|
289
238
|
.payment-plan__feature {
|
|
290
239
|
display: flex; align-items: center; gap: var(--spacing-xs);
|
|
291
240
|
color: var(--color-darkGray);
|
|
292
241
|
}
|
|
293
242
|
.payment-plan__feature::before { content: '✓'; font-weight: 700; color: var(--color-success); }
|
|
294
|
-
.payment-plan__button {
|
|
295
|
-
width: 100%; padding: 14px;
|
|
296
|
-
border-radius: var(--radius-card); border: none; cursor: pointer;
|
|
297
|
-
font-weight: 700;
|
|
298
|
-
transition: all 0.12s;
|
|
299
|
-
}
|
|
300
|
-
.payment-plan__button--primary { background: var(--color-main); color: #ffffff; }
|
|
301
|
-
.payment-plan__button--primary:hover { background: var(--color-infoLink); }
|
|
302
|
-
.payment-plan__button--outline { background: var(--color-deepWhite); color: var(--color-darkGray); border: 1px solid var(--color-whiteLine); }
|
|
303
|
-
.payment-plan__button--outline:hover { border-color: var(--color-main); color: var(--color-main); }
|
|
304
243
|
|
|
305
244
|
@media (max-width: 767px) {
|
|
306
245
|
.payment-plan__list {
|
|
@@ -1,29 +1,5 @@
|
|
|
1
1
|
.dlp-popup .popup-panel { max-width: 600px; }
|
|
2
2
|
|
|
3
|
-
.dlp-empty {
|
|
4
|
-
padding: 32px 20px;
|
|
5
|
-
text-align: center;
|
|
6
|
-
color: var(--color-gray);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.dlp-table {
|
|
10
|
-
width: 100%;
|
|
11
|
-
border-collapse: collapse;
|
|
12
|
-
font-size: 13px;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.dlp-table thead tr {
|
|
16
|
-
border-bottom: 1px solid var(--color-darkWhite);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.dlp-table th {
|
|
20
|
-
padding: 8px 12px;
|
|
21
|
-
text-align: left;
|
|
22
|
-
color: var(--color-lightGray);
|
|
23
|
-
font-weight: 500;
|
|
24
|
-
white-space: nowrap;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
3
|
.dlp-row {
|
|
28
4
|
cursor: pointer;
|
|
29
5
|
border-bottom: 1px solid var(--color-darkWhite);
|
|
@@ -33,46 +9,15 @@
|
|
|
33
9
|
.dlp-row:hover { background: var(--color-hoverBg, #f5f5f5); }
|
|
34
10
|
.dlp-row:last-child { border-bottom: none; }
|
|
35
11
|
|
|
36
|
-
.dlp-table td {
|
|
37
|
-
padding: 10px 12px;
|
|
38
|
-
vertical-align: middle;
|
|
39
|
-
color: var(--color-darkGray);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
12
|
.dlp-date {
|
|
44
13
|
white-space: nowrap;
|
|
45
14
|
color: var(--color-lightGray);
|
|
46
15
|
}
|
|
47
16
|
|
|
48
|
-
.dlp-delete {
|
|
49
|
-
background: none;
|
|
50
|
-
border: none;
|
|
51
|
-
cursor: pointer;
|
|
52
|
-
color: var(--color-lightGray);
|
|
53
|
-
font-size: 12px;
|
|
54
|
-
padding: 4px 8px;
|
|
55
|
-
border-radius: 4px;
|
|
56
|
-
transition: color 0.1s, background 0.1s;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.dlp-delete:hover {
|
|
60
|
-
color: var(--color-error, #e53935);
|
|
61
|
-
background: var(--color-errorBg, #fdecea);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
17
|
/* 팝업 밖(고객 상세의 기기 탭)에서도 쓰는 표 — 좌/우 고르개가 표 위에 얹힌다. */
|
|
65
18
|
.dlp-side-table { margin-top: 0; }
|
|
66
|
-
.dlp-side-pick {
|
|
67
|
-
display: flex;
|
|
68
|
-
justify-content: flex-start;
|
|
69
|
-
margin-bottom: 8px;
|
|
70
|
-
}
|
|
71
19
|
|
|
72
20
|
/* 줄 오른쪽의 착용·제거 — 붙어 보이지 않게만 벌린다 */
|
|
73
21
|
.dlp-worn-check { display: inline-flex; align-items: center; }
|
|
74
22
|
/* 줄 끝의 삭제 — 삭제를 넘겨준 화면(기기 이력 팝업)에서만 선다 */
|
|
75
23
|
.dlp-row-actions { display: flex; align-items: center; justify-content: flex-end; }
|
|
76
|
-
|
|
77
|
-
/* 맨 왼쪽 '착용중' 열 — 값이 있는 줄만 눈에 띄게 */
|
|
78
|
-
.dlp-worn-side { font-weight: 600; color: var(--color-main, #3b82f6); }
|
|
@@ -8,15 +8,6 @@
|
|
|
8
8
|
padding: 4px 20px;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
.save-table-popup__duplicate {
|
|
12
|
-
margin: 0;
|
|
13
|
-
color: var(--color-main);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.save-table-popup__duplicate strong {
|
|
17
|
-
font-weight: 600;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
11
|
/* ── 미리보기 ── */
|
|
21
12
|
.save-table-popup__preview-wrap {
|
|
22
13
|
position: relative;
|
|
@@ -87,30 +87,6 @@
|
|
|
87
87
|
background-clip: text;
|
|
88
88
|
color: transparent;
|
|
89
89
|
}
|
|
90
|
-
/* ── Accuracy bar ── */
|
|
91
|
-
.trp-accuracy {
|
|
92
|
-
margin: 28px auto 0;
|
|
93
|
-
max-width: 620px;
|
|
94
|
-
display: flex;
|
|
95
|
-
gap: 6px;
|
|
96
|
-
align-items: center;
|
|
97
|
-
justify-content: center;
|
|
98
|
-
}
|
|
99
|
-
.trp-accuracy__seg {
|
|
100
|
-
flex: 1;
|
|
101
|
-
height: 6px;
|
|
102
|
-
border-radius: 999px;
|
|
103
|
-
background: var(--color-darkWhite, var(--color-darkWhite));
|
|
104
|
-
}
|
|
105
|
-
.trp-accuracy__seg.is-on {
|
|
106
|
-
background: linear-gradient(90deg, var(--color-main), var(--color-sub));
|
|
107
|
-
}
|
|
108
|
-
.trp-accuracy__label {
|
|
109
|
-
color: var(--color-gray);
|
|
110
|
-
margin-left: var(--spacing-xs);
|
|
111
|
-
white-space: nowrap;
|
|
112
|
-
font-variant-numeric: tabular-nums;
|
|
113
|
-
}
|
|
114
90
|
|
|
115
91
|
/* ── Table ── */
|
|
116
92
|
/* 결과 표는 좌우 72px 들여쓰기를 걷어내 넓게 쓴다 —
|
|
@@ -190,7 +166,6 @@
|
|
|
190
166
|
.trp-row__answer-value.is-correct { color: var(--color-main); }
|
|
191
167
|
.trp-row__answer-value.is-wrong { color: var(--color-error); }
|
|
192
168
|
|
|
193
|
-
|
|
194
169
|
/* ── Footer ── (Popup의 .popup-footer 래퍼에 붙는다 — 스크롤과 무관하게 하단 고정) */
|
|
195
170
|
.popup-footer.trp-result__foot {
|
|
196
171
|
padding: var(--spacing-l);
|
|
@@ -201,14 +176,6 @@
|
|
|
201
176
|
flex-shrink: 0;
|
|
202
177
|
background: var(--color-white);
|
|
203
178
|
}
|
|
204
|
-
.trp-foot__note {
|
|
205
|
-
display: flex;
|
|
206
|
-
align-items: center;
|
|
207
|
-
gap: var(--spacing-xs);
|
|
208
|
-
color: var(--color-gray);
|
|
209
|
-
font-size: 13px;
|
|
210
|
-
}
|
|
211
|
-
.trp-foot__note svg { color: var(--color-main); flex-shrink: 0; }
|
|
212
179
|
.trp-actions { display: flex; gap: var(--spacing-s); }
|
|
213
180
|
|
|
214
181
|
/* ── Animations ── */
|
|
@@ -246,7 +213,6 @@
|
|
|
246
213
|
.trp-score__big { font-size: 72px; letter-spacing: -3px; }
|
|
247
214
|
.trp-score__sep, .trp-score__total { font-size: 28px; padding-bottom: 10px; }
|
|
248
215
|
|
|
249
|
-
|
|
250
216
|
/* 일반 테이블 */
|
|
251
217
|
.result-table__head { display: none; }
|
|
252
218
|
.result-table__head,
|
|
@@ -49,13 +49,6 @@
|
|
|
49
49
|
--scc-disabled-fg: var(--color-whiteLine);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
.sound-compass__status {
|
|
53
|
-
font-size: 13px;
|
|
54
|
-
color: var(--color-lightGray);
|
|
55
|
-
margin-bottom: 12px;
|
|
56
|
-
letter-spacing: -0.01em;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
52
|
/* ── SVG 오버레이 ───────────────────────────────── */
|
|
60
53
|
.sound-compass__svg {
|
|
61
54
|
position: absolute;
|
|
@@ -122,7 +115,6 @@
|
|
|
122
115
|
overflow: visible;
|
|
123
116
|
}
|
|
124
117
|
|
|
125
|
-
|
|
126
118
|
/* 중앙 사람 아이콘 */
|
|
127
119
|
.sound-compass__center {
|
|
128
120
|
position: absolute;
|
|
@@ -59,27 +59,6 @@
|
|
|
59
59
|
flex-shrink: 0;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
.table-header__action-button {
|
|
63
|
-
background: none;
|
|
64
|
-
border: none;
|
|
65
|
-
cursor: pointer;
|
|
66
|
-
color: var(--color-gray);
|
|
67
|
-
padding: 2px 6px;
|
|
68
|
-
border-radius: 4px;
|
|
69
|
-
line-height: 1;
|
|
70
|
-
transition: background 0.12s, color 0.12s;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.table-header__action-button:hover {
|
|
74
|
-
background: var(--color-darkWhite);
|
|
75
|
-
color: var(--color-main);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.table-header__action-button--delete:hover {
|
|
79
|
-
background: var(--color-error-bg, #ffeef0);
|
|
80
|
-
color: var(--color-error, #e03131);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
62
|
/* 접힌 상태 — 헤더 border-bottom이 wrap 테두리와 겹쳐 두꺼워 보이는 것 방지 */
|
|
84
63
|
.table-wrap--collapsed .table-header {
|
|
85
64
|
border-bottom: none;
|
|
@@ -74,13 +74,5 @@
|
|
|
74
74
|
|
|
75
75
|
.toolbar__count-highlight { color: var(--color-main); }
|
|
76
76
|
|
|
77
|
-
/* 세그먼트/필터/페이지네이션/액션처럼 성격이 다른 그룹 사이를 구분하는 세로선 */
|
|
78
|
-
.toolbar__divider {
|
|
79
|
-
align-self: stretch;
|
|
80
|
-
height: auto;
|
|
81
|
-
margin: 8px 0;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
77
|
@media (max-width: 767px) {
|
|
85
|
-
.toolbar__divider { display: none; }
|
|
86
78
|
}
|
|
@@ -67,25 +67,6 @@
|
|
|
67
67
|
width: 100%;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
.tooltip-menu__item-icon {
|
|
71
|
-
width: 24px;
|
|
72
|
-
height: 24px;
|
|
73
|
-
display: inline-flex;
|
|
74
|
-
align-items: center;
|
|
75
|
-
justify-content: center;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.tooltip-menu__label {
|
|
79
|
-
flex: 1;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.tooltip-menu__chev {
|
|
83
|
-
width: 20px;
|
|
84
|
-
display: inline-flex;
|
|
85
|
-
align-items: center;
|
|
86
|
-
justify-content: center;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
70
|
@media (max-width: 600px) {
|
|
90
71
|
.tooltip-menu__columns {
|
|
91
72
|
flex-direction: column;
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
padding: 0 2px 10px;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
|
|
42
41
|
.tooltip-content.is-closing {
|
|
43
42
|
opacity: 0;
|
|
44
43
|
transition: opacity 200ms ease, transform 200ms ease;
|
|
@@ -56,8 +55,6 @@
|
|
|
56
55
|
.tooltip-content.is-closing[data-placement='left'] { transform: translateX(-6px) scale(0.98); }
|
|
57
56
|
.tooltip-content.is-closing[data-placement='right'] { transform: translateX(6px) scale(0.98); }
|
|
58
57
|
|
|
59
|
-
.tooltip--hidden { display: none; }
|
|
60
|
-
|
|
61
58
|
@keyframes tooltip-pop {
|
|
62
59
|
from {
|
|
63
60
|
opacity: 0;
|
|
@@ -104,17 +101,3 @@
|
|
|
104
101
|
visibility: visible !important;
|
|
105
102
|
z-index: var(--z-tooltip) !important;
|
|
106
103
|
}
|
|
107
|
-
|
|
108
|
-
/* Close button positioned at the tooltip's top-right corner */
|
|
109
|
-
.tooltip-content .tooltip-close {
|
|
110
|
-
position: absolute;
|
|
111
|
-
top: 6px;
|
|
112
|
-
right: 6px;
|
|
113
|
-
z-index: 2;
|
|
114
|
-
display: inline-flex;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/* Slightly reduce visual impact of the close button so it reads as control */
|
|
118
|
-
.tooltip-content .tooltip-close .button {
|
|
119
|
-
box-shadow: none;
|
|
120
|
-
}
|
|
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useCallback, useEffect, useRef, useState, useLayoutEffect } from 'react';
|
|
4
4
|
import { createPortal } from 'react-dom';
|
|
5
5
|
import './Tooltip.css';
|
|
6
|
+
import { FOCUSABLE_SELECTOR } from '../../hooks/useFocusTrap';
|
|
6
7
|
/** @public */
|
|
7
8
|
export default function Tooltip(props) {
|
|
8
9
|
const { anchorRect, anchorEl, offset = 20, edgeMargin = 20, onClose, closeOnOutsideClick = true, className = '', role = 'dialog', ariaLabel = '', children, backdrop = false, isMobilePopup = false, useBorder = true, header, } = props || {};
|
|
@@ -236,7 +237,12 @@ export default function Tooltip(props) {
|
|
|
236
237
|
const el = ref.current;
|
|
237
238
|
if (!el)
|
|
238
239
|
return;
|
|
239
|
-
|
|
240
|
+
/* 고르개는 **공용 한 벌**을 쓴다. 예전에는 여기 박아 두었는데 두 군데가 달랐다 —
|
|
241
|
+
`disabled` 를 안 뺐고 `a[href]` 대신 `[href]` 였다. 비활성 칸이 마지막이면
|
|
242
|
+
되돌아온 포커스가 **아무 데도 안 가** 멈춘 것처럼 보인다.
|
|
243
|
+
가두는 방식은 그대로다 — 툴팁은 갈 곳이 없을 때 Tab 을 **막지 않는다**
|
|
244
|
+
(막으면 툴팁 안에 갇힌다). 공용 훅은 다이얼로그라 반대로 막는다. */
|
|
245
|
+
const focusable = el.querySelectorAll(FOCUSABLE_SELECTOR);
|
|
240
246
|
if (!focusable || focusable.length === 0)
|
|
241
247
|
return;
|
|
242
248
|
const first = focusable[0];
|
|
@@ -55,31 +55,9 @@
|
|
|
55
55
|
cursor: default;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
/* When used inside a training card, position the wrapper at the
|
|
59
|
-
card's top-left and render the inner icon without a second offset. */
|
|
60
|
-
.training-list__item .category-icon__wrap {
|
|
61
|
-
position: absolute;
|
|
62
|
-
top: 18px;
|
|
63
|
-
left: 18px;
|
|
64
|
-
}
|
|
65
|
-
.training-list__item .category-icon {
|
|
66
|
-
position: static; /* 크기는 iconSize prop(CategoryIcon --small/기본)이 결정 */
|
|
67
|
-
}
|
|
68
|
-
|
|
69
58
|
/* ── Hover tooltip ────────────────────────────────────── */
|
|
70
59
|
.category-icon__tooltip {
|
|
71
60
|
white-space: nowrap;
|
|
72
61
|
pointer-events: none;
|
|
73
62
|
|
|
74
63
|
}
|
|
75
|
-
|
|
76
|
-
.category-icon__tooltip-text {
|
|
77
|
-
display: block;
|
|
78
|
-
padding: 6px 12px;
|
|
79
|
-
font-size: 13px;
|
|
80
|
-
line-height: 1.4;
|
|
81
|
-
color: #ffffff;
|
|
82
|
-
background: var(--color-darkGray);
|
|
83
|
-
border-radius: var(--radius-sm);
|
|
84
|
-
box-shadow: var(--shadow-tooltip);
|
|
85
|
-
}
|
|
@@ -16,12 +16,6 @@
|
|
|
16
16
|
gap: 10px;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
/* Ensure individual buttons behave like inline blocks when wrapped */
|
|
20
|
-
.training-list__item {
|
|
21
|
-
display: inline-block;
|
|
22
|
-
vertical-align: top;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
19
|
.training-block__more {
|
|
26
20
|
display: flex;
|
|
27
21
|
justify-content: center;
|
|
@@ -30,4 +24,3 @@
|
|
|
30
24
|
|
|
31
25
|
.training-blocks--top-spaced { margin-top: 18px; }
|
|
32
26
|
|
|
33
|
-
|