@iyulab/components 1.12.0 → 1.14.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.
Files changed (50) hide show
  1. package/CHANGELOG.md +101 -3
  2. package/dist/_virtual/_glob-assets_raw/dark.css.e8ac080d.js +1 -1
  3. package/dist/_virtual/_glob-assets_raw/light.css.637cb2f8.js +1 -1
  4. package/dist/components/UElement.styles.js +8 -8
  5. package/dist/components/UOverlayElement.styles.js +1 -1
  6. package/dist/components/alert/UAlert.styles.js +25 -25
  7. package/dist/components/avatar/UAvatar.styles.js +5 -5
  8. package/dist/components/badge/UBadge.styles.js +22 -22
  9. package/dist/components/breadcrumb/UBreadcrumb.styles.js +2 -2
  10. package/dist/components/breadcrumb-item/UBreadcrumbItem.styles.js +2 -2
  11. package/dist/components/button/UButton.styles.js +28 -28
  12. package/dist/components/button-group/UButtonGroup.styles.js +1 -1
  13. package/dist/components/card/UCard.styles.js +8 -8
  14. package/dist/components/carousel/UCarousel.styles.js +10 -10
  15. package/dist/components/checkbox/UCheckbox.styles.js +20 -20
  16. package/dist/components/copy-button/UCopyButton.styles.js +2 -2
  17. package/dist/components/dialog/UDialog.styles.js +10 -10
  18. package/dist/components/divider/UDivider.js +7 -5
  19. package/dist/components/divider/UDivider.styles.js +27 -7
  20. package/dist/components/drawer/UDrawer.styles.js +9 -9
  21. package/dist/components/field/UField.styles.js +4 -4
  22. package/dist/components/icon-button/UIconButton.styles.js +2 -2
  23. package/dist/components/input/UInput.styles.js +30 -30
  24. package/dist/components/menu/UMenu.styles.js +5 -5
  25. package/dist/components/menu-item/UMenuItem.styles.js +7 -7
  26. package/dist/components/option/UOption.styles.js +9 -9
  27. package/dist/components/progress-bar/UProgressBar.styles.js +12 -12
  28. package/dist/components/progress-ring/UProgressRing.styles.js +11 -11
  29. package/dist/components/radio/URadio.styles.js +6 -6
  30. package/dist/components/rating/URating.styles.js +3 -3
  31. package/dist/components/select/USelect.styles.js +34 -34
  32. package/dist/components/skeleton/USkeleton.d.ts +2 -2
  33. package/dist/components/skeleton/USkeleton.styles.js +5 -5
  34. package/dist/components/slider/USlider.styles.js +11 -11
  35. package/dist/components/spinner/USpinner.styles.js +11 -11
  36. package/dist/components/split-panel/USplitPanel.styles.js +3 -3
  37. package/dist/components/switch/USwitch.styles.js +10 -10
  38. package/dist/components/tab/UTab.styles.js +3 -3
  39. package/dist/components/tab-panel/UTabPanel.styles.js +22 -22
  40. package/dist/components/tag/UTag.styles.js +63 -63
  41. package/dist/components/textarea/UTextarea.styles.js +25 -25
  42. package/dist/components/tooltip/UTooltip.styles.js +5 -5
  43. package/dist/components/tree/UTree.d.ts +1 -1
  44. package/dist/components/tree/UTree.styles.js +6 -3
  45. package/dist/components/tree-item/UTreeItem.styles.js +7 -7
  46. package/dist/styles/dark.css +14 -0
  47. package/dist/styles/light.css +15 -0
  48. package/dist/utilities/Theme.d.ts +16 -1
  49. package/dist/utilities/Theme.js +22 -1
  50. package/package.json +1 -1
@@ -3,17 +3,17 @@ import { css } from "lit";
3
3
  var styles = css`
4
4
  :host {
5
5
  /* --btn-color 하나만 정해지면 hover/active/surface/outline 톤이 전부 자동 파생 */
6
- --btn-color: var(--u-primary-color);
6
+ --btn-color: var(--u-primary-color, #1E88E5);
7
7
  --btn-color-hover: color-mix(in srgb, var(--btn-color) 85%, black);
8
8
  --btn-color-active: color-mix(in srgb, var(--btn-color) 70%, black);
9
- --btn-color-surface: color-mix(in srgb, var(--btn-color) 12%, var(--u-bg-color));
10
- --btn-color-surface-hover: color-mix(in srgb, var(--btn-color) 22%, var(--u-bg-color));
11
- --btn-color-surface-active: color-mix(in srgb, var(--btn-color) 32%, var(--u-bg-color));
12
- --btn-color-border: color-mix(in srgb, var(--btn-color) 45%, var(--u-bg-color));
13
- --btn-color-border-hover: color-mix(in srgb, var(--btn-color) 60%, var(--u-bg-color));
14
- --btn-color-border-active: color-mix(in srgb, var(--btn-color) 75%, var(--u-bg-color));
15
- --btn-color-outline-hover: color-mix(in srgb, var(--btn-color) 6%, var(--u-bg-color));
16
- --btn-color-outline-active: color-mix(in srgb, var(--btn-color) 12%, var(--u-bg-color));
9
+ --btn-color-surface: color-mix(in srgb, var(--btn-color) 12%, var(--u-bg-color, #FFFFFF));
10
+ --btn-color-surface-hover: color-mix(in srgb, var(--btn-color) 22%, var(--u-bg-color, #FFFFFF));
11
+ --btn-color-surface-active: color-mix(in srgb, var(--btn-color) 32%, var(--u-bg-color, #FFFFFF));
12
+ --btn-color-border: color-mix(in srgb, var(--btn-color) 45%, var(--u-bg-color, #FFFFFF));
13
+ --btn-color-border-hover: color-mix(in srgb, var(--btn-color) 60%, var(--u-bg-color, #FFFFFF));
14
+ --btn-color-border-active: color-mix(in srgb, var(--btn-color) 75%, var(--u-bg-color, #FFFFFF));
15
+ --btn-color-outline-hover: color-mix(in srgb, var(--btn-color) 6%, var(--u-bg-color, #FFFFFF));
16
+ --btn-color-outline-active: color-mix(in srgb, var(--btn-color) 12%, var(--u-bg-color, #FFFFFF));
17
17
  }
18
18
 
19
19
  :host {
@@ -23,7 +23,7 @@ var styles = css`
23
23
  font-size: 14px;
24
24
  font-weight: 500;
25
25
  line-height: 1.5;
26
- border-radius: var(--u-radius-lg);
26
+ border-radius: var(--u-radius-lg, 6px);
27
27
  background-color: transparent;
28
28
 
29
29
  transition: all 0.2s ease;
@@ -33,14 +33,14 @@ var styles = css`
33
33
  }
34
34
 
35
35
  /* === Color tokens === */
36
- :host([color="blue"]) { --btn-color: var(--u-blue-600); }
37
- :host([color="green"]) { --btn-color: var(--u-green-600); }
38
- :host([color="red"]) { --btn-color: var(--u-red-600); }
39
- :host([color="orange"]) { --btn-color: var(--u-orange-600); }
40
- :host([color="teal"]) { --btn-color: var(--u-teal-600); }
41
- :host([color="cyan"]) { --btn-color: var(--u-cyan-600); }
42
- :host([color="purple"]) { --btn-color: var(--u-purple-600); }
43
- :host([color="pink"]) { --btn-color: var(--u-pink-600); }
36
+ :host([color="blue"]) { --btn-color: var(--u-blue-600, #1E88E5); }
37
+ :host([color="green"]) { --btn-color: var(--u-green-600, #43A047); }
38
+ :host([color="red"]) { --btn-color: var(--u-red-600, #E53935); }
39
+ :host([color="orange"]) { --btn-color: var(--u-orange-600, #FB8C00); }
40
+ :host([color="teal"]) { --btn-color: var(--u-teal-600, #00897B); }
41
+ :host([color="cyan"]) { --btn-color: var(--u-cyan-600, #00ACC1); }
42
+ :host([color="purple"]) { --btn-color: var(--u-purple-600, #8E24AA); }
43
+ :host([color="pink"]) { --btn-color: var(--u-pink-600, #D81B60); }
44
44
 
45
45
  /* === Size === */
46
46
  :host([size="sm"]) {
@@ -69,7 +69,7 @@ var styles = css`
69
69
  visibility: hidden;
70
70
  }
71
71
  :host([rounded]) {
72
- border-radius: var(--u-radius-pill);
72
+ border-radius: var(--u-radius-pill, 9999px);
73
73
  }
74
74
  :host([has-spinner]) u-spinner {
75
75
  display: none;
@@ -94,7 +94,7 @@ var styles = css`
94
94
 
95
95
  /* surface: 채우기 + 경계 */
96
96
  :host([variant="surface"]) {
97
- color: var(--u-txt-color);
97
+ color: var(--u-txt-color, #212121);
98
98
  background-color: var(--btn-color-surface);
99
99
  --btn-border-color: var(--btn-color-border);
100
100
  }
@@ -109,7 +109,7 @@ var styles = css`
109
109
 
110
110
  /* filled: 채우기만 */
111
111
  :host([variant="filled"]) {
112
- color: var(--u-txt-color);
112
+ color: var(--u-txt-color, #212121);
113
113
  background-color: var(--btn-color-surface);
114
114
  --btn-border-color: transparent;
115
115
  }
@@ -122,7 +122,7 @@ var styles = css`
122
122
 
123
123
  /* outlined: 경계만 */
124
124
  :host([variant="outlined"]) {
125
- color: var(--u-txt-color);
125
+ color: var(--u-txt-color, #212121);
126
126
  --btn-border-color: var(--btn-color-border);
127
127
  background-color: transparent;
128
128
  }
@@ -137,30 +137,30 @@ var styles = css`
137
137
 
138
138
  /* ghost: transparent */
139
139
  :host([variant="ghost"]) {
140
- color: var(--u-txt-color);
140
+ color: var(--u-txt-color, #212121);
141
141
  --btn-border-color: transparent;
142
142
  background-color: transparent;
143
143
  }
144
144
  :host([variant="ghost"]:hover) {
145
- background-color: var(--u-bg-color-hover);
145
+ background-color: var(--u-bg-color-hover, #F5F5F5);
146
146
  }
147
147
  :host([variant="ghost"]:active) {
148
- background-color: var(--u-bg-color-active);
148
+ background-color: var(--u-bg-color-active, #EEEEEE);
149
149
  }
150
150
 
151
151
  /* link: blue 링크 스타일 (기본값, color="neutral"일 때도 유지 — 기존 동작 보존) */
152
152
  :host([variant="link"]) {
153
- color: var(--u-primary-color-weak, #3b82f6);
153
+ color: var(--u-primary-color-weak, #2196F3);
154
154
  --btn-border-color: transparent;
155
155
  background-color: transparent;
156
156
  --btn-padding-inline: 0;
157
157
  }
158
158
  :host([variant="link"]:hover) {
159
- color: var(--u-primary-color, #2563eb);
159
+ color: var(--u-primary-color, #1E88E5);
160
160
  text-decoration: underline;
161
161
  }
162
162
  :host([variant="link"]:active) {
163
- color: var(--u-primary-color-strong, #1d4ed8);
163
+ color: var(--u-primary-color-strong, #1976D2);
164
164
  }
165
165
  /* link + 명시적 non-neutral color: 링크 자체 색상을 재정의 (예: 파괴적 액션 링크) */
166
166
  :host([variant="link"][color]:not([color="neutral"])) {
@@ -27,7 +27,7 @@ var styles = css`
27
27
 
28
28
  :host([variant="ghost"]),
29
29
  :host([variant="link"]) {
30
- gap: 2px;
30
+ gap: var(--u-space-3xs, 2px);
31
31
  }
32
32
  `;
33
33
  //#endregion
@@ -3,13 +3,13 @@ import { css } from "lit";
3
3
  var styles = css`
4
4
  :host {
5
5
  display: flex;
6
- border-radius: var(--u-radius-xl);
7
- background-color: var(--u-panel-bg-color);
6
+ border-radius: var(--u-radius-xl, 8px);
7
+ background-color: var(--u-panel-bg-color, #FFFFFF);
8
8
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
9
9
  overflow: hidden;
10
10
 
11
11
  --card-border-width: 1px;
12
- --card-border-color: var(--u-border-color);
12
+ --card-border-color: var(--u-border-color, #E0E0E0);
13
13
  }
14
14
 
15
15
  /* 테두리는 내부 요소가 진다 — :host 에 두면 소비 앱 CSS 리셋에 지워진다. */
@@ -62,8 +62,8 @@ var styles = css`
62
62
 
63
63
  .header {
64
64
  display: none;
65
- padding: 16px;
66
- border-bottom: 1px solid var(--u-border-color);
65
+ padding: var(--u-space-lg, 16px);
66
+ border-bottom: 1px solid var(--u-border-color, #E0E0E0);
67
67
  }
68
68
  .header.has-content {
69
69
  display: block;
@@ -72,7 +72,7 @@ var styles = css`
72
72
  .body {
73
73
  display: none;
74
74
  flex: 1;
75
- padding: 16px;
75
+ padding: var(--u-space-lg, 16px);
76
76
  }
77
77
  .body.has-content {
78
78
  display: block;
@@ -80,8 +80,8 @@ var styles = css`
80
80
 
81
81
  .footer {
82
82
  display: none;
83
- padding: 16px;
84
- border-top: 1px solid var(--u-border-color);
83
+ padding: var(--u-space-lg, 16px);
84
+ border-top: 1px solid var(--u-border-color, #E0E0E0);
85
85
  }
86
86
  .footer.has-content {
87
87
  display: block;
@@ -56,19 +56,19 @@ var styles = css`
56
56
  z-index: 10;
57
57
  top: 50%;
58
58
  transform: translateY(-50%);
59
- padding: 8px;
59
+ padding: var(--u-space-sm, 8px);
60
60
  font-size: 20px;
61
- color: var(--u-neutral-900);
62
- background-color: var(--u-neutral-100);
61
+ color: var(--u-neutral-900, #212121);
62
+ background-color: var(--u-neutral-100, #F5F5F5);
63
63
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
64
64
  }
65
65
  .nav-button:hover {
66
- background-color: var(--u-neutral-200);
66
+ background-color: var(--u-neutral-200, #EEEEEE);
67
67
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
68
68
  transform: translateY(-50%) scale(1.1);
69
69
  }
70
70
  .nav-button:active {
71
- background-color: var(--u-neutral-300);
71
+ background-color: var(--u-neutral-300, #E0E0E0);
72
72
  transform: translateY(-50%) scale(0.95);
73
73
  }
74
74
 
@@ -85,7 +85,7 @@ var styles = css`
85
85
  flex-direction: row;
86
86
  align-items: center;
87
87
  justify-content: center;
88
- gap: 8px;
88
+ gap: var(--u-space-sm, 8px);
89
89
  transform: translateX(-50%);
90
90
  }
91
91
 
@@ -94,18 +94,18 @@ var styles = css`
94
94
  height: 10px;
95
95
  padding: 0;
96
96
  border: none;
97
- border-radius: var(--u-radius-circle);
98
- background-color: var(--u-neutral-400);
97
+ border-radius: var(--u-radius-circle, 50%);
98
+ background-color: var(--u-neutral-400, #BDBDBD);
99
99
  cursor: pointer;
100
100
  transition: all 0.2s ease;
101
101
  }
102
102
  .dot:hover {
103
- background-color: var(--u-neutral-200);
103
+ background-color: var(--u-neutral-200, #EEEEEE);
104
104
  }
105
105
  .dot[active] {
106
106
  width: 24px;
107
107
  border-radius: 5px;
108
- background-color: var(--u-neutral-100);
108
+ background-color: var(--u-neutral-100, #F5F5F5);
109
109
  }
110
110
  `;
111
111
  //#endregion
@@ -2,16 +2,16 @@ import { css } from "lit";
2
2
  //#region src/components/checkbox/UCheckbox.styles.ts
3
3
  var styles = css`
4
4
  :host {
5
- --checkbox-fill-color: var(--u-primary-color);
5
+ --checkbox-fill-color: var(--u-primary-color, #1E88E5);
6
6
  --checkbox-color: inherit;
7
- --checkbox-border-color: var(--u-input-border-color);
8
- --checkbox-background-color: var(--u-input-bg-color);
7
+ --checkbox-border-color: var(--u-input-border-color, #E0E0E0);
8
+ --checkbox-background-color: var(--u-input-bg-color, #FFFFFF);
9
9
  }
10
10
 
11
11
  :host {
12
12
  display: inline-flex;
13
13
  flex-direction: column;
14
- color: var(--u-txt-color);
14
+ color: var(--u-txt-color, #212121);
15
15
  font-size: inherit;
16
16
  font-family: var(--u-font-base);
17
17
  user-select: none;
@@ -27,23 +27,23 @@ var styles = css`
27
27
  cursor: default;
28
28
  }
29
29
  :host([invalid]) {
30
- --checkbox-border-color: var(--u-danger-color);
30
+ --checkbox-border-color: var(--u-danger-color, #E53935);
31
31
  }
32
32
  :host([invalid]) .footer {
33
- color: var(--u-danger-color);
33
+ color: var(--u-danger-color, #E53935);
34
34
  }
35
35
  :host([checked]) .checkbox u-icon,
36
36
  :host([indeterminate]) .checkbox u-icon {
37
37
  transform: scale(1);
38
38
  }
39
39
  :host(:not([disabled]):not([readonly]):hover) {
40
- --checkbox-border-color: var(--u-input-border-color-hover);
40
+ --checkbox-border-color: var(--u-input-border-color-hover, #BDBDBD);
41
41
  }
42
42
 
43
43
  /* === Variant: filled - 배경 채움 === */
44
44
  :host([variant="filled"][checked]),
45
45
  :host([variant="filled"][indeterminate]) {
46
- --checkbox-color: var(--u-neutral-100);
46
+ --checkbox-color: var(--u-neutral-100, #F5F5F5);
47
47
  --checkbox-border-color: var(--checkbox-hue, var(--checkbox-fill-color));
48
48
  --checkbox-background-color: var(--checkbox-hue, var(--checkbox-fill-color));
49
49
  }
@@ -63,28 +63,28 @@ var styles = css`
63
63
  즉 blue 는 장식 축의 한 값이 아니라 "색을 지정하지 않음" 의 표기다.
64
64
  ========================================================================== */
65
65
  :host([color="green"]) {
66
- --checkbox-hue: var(--u-green-600);
66
+ --checkbox-hue: var(--u-green-600, #43A047);
67
67
  }
68
68
  :host([color="red"]) {
69
- --checkbox-hue: var(--u-red-600);
69
+ --checkbox-hue: var(--u-red-600, #E53935);
70
70
  }
71
71
  :host([color="orange"]) {
72
- --checkbox-hue: var(--u-orange-600);
72
+ --checkbox-hue: var(--u-orange-600, #FB8C00);
73
73
  }
74
74
  :host([color="teal"]) {
75
- --checkbox-hue: var(--u-teal-600);
75
+ --checkbox-hue: var(--u-teal-600, #00897B);
76
76
  }
77
77
  :host([color="cyan"]) {
78
- --checkbox-hue: var(--u-cyan-600);
78
+ --checkbox-hue: var(--u-cyan-600, #00ACC1);
79
79
  }
80
80
  :host([color="purple"]) {
81
- --checkbox-hue: var(--u-purple-600);
81
+ --checkbox-hue: var(--u-purple-600, #8E24AA);
82
82
  }
83
83
  :host([color="pink"]) {
84
- --checkbox-hue: var(--u-pink-600);
84
+ --checkbox-hue: var(--u-pink-600, #D81B60);
85
85
  }
86
86
  :host([color="neutral"]) {
87
- --checkbox-hue: var(--u-neutral-600);
87
+ --checkbox-hue: var(--u-neutral-600, #757575);
88
88
  }
89
89
 
90
90
 
@@ -104,7 +104,7 @@ var styles = css`
104
104
  }
105
105
  input:focus-visible ~ .checkbox {
106
106
  box-shadow:
107
- 0 0 0 1px var(--u-input-border-color-focus),
107
+ 0 0 0 1px var(--u-input-border-color-focus, #1E88E5),
108
108
  0 0 0 3px rgba(59, 130, 246, 0.22);
109
109
  }
110
110
 
@@ -137,19 +137,19 @@ var styles = css`
137
137
  }
138
138
 
139
139
  .required {
140
- color: var(--u-danger-color);
140
+ color: var(--u-danger-color, #E53935);
141
141
  font-weight: 500;
142
142
  }
143
143
 
144
144
  .description {
145
145
  margin-top: 0.5em;
146
- color: var(--u-txt-color-weak);
146
+ color: var(--u-txt-color-weak, #9E9E9E);
147
147
  font-size: 0.75em;
148
148
  line-height: 1.2;
149
149
  }
150
150
 
151
151
  :host([invalid]) .description {
152
- color: var(--u-danger-color);
152
+ color: var(--u-danger-color, #E53935);
153
153
  }
154
154
  `;
155
155
  //#endregion
@@ -14,12 +14,12 @@ var styles = css`
14
14
  }
15
15
 
16
16
  :host([copied]) u-icon-button {
17
- color: var(--u-success-color-weak);
17
+ color: var(--u-success-color-weak, #4CAF50);
18
18
  }
19
19
 
20
20
  /* 라벨 형태(아이콘+텍스트): 복사 완료 시 아이콘/텍스트를 성공색으로 강조 */
21
21
  :host([copied]) u-button {
22
- color: var(--u-success-color-weak);
22
+ color: var(--u-success-color-weak, #4CAF50);
23
23
  }
24
24
  `;
25
25
  //#endregion
@@ -68,7 +68,7 @@ var styles = css`
68
68
  * 테두리는 CanvasText 원색이 과해 옅게 혼합.
69
69
  */
70
70
  border: 1px solid var(--u-border-color, color-mix(in srgb, CanvasText 20%, Canvas));
71
- border-radius: var(--u-radius-lg);
71
+ border-radius: var(--u-radius-lg, 6px);
72
72
  background: var(--u-panel-bg-color, Canvas);
73
73
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
74
74
  pointer-events: auto;
@@ -87,25 +87,25 @@ var styles = css`
87
87
  display: flex;
88
88
  align-items: center;
89
89
  justify-content: space-between;
90
- gap: 8px;
91
- padding: 12px 16px;
90
+ gap: var(--u-space-sm, 8px);
91
+ padding: var(--u-space-md, 12px) var(--u-space-lg, 16px);
92
92
  font-size: 18px;
93
93
  font-weight: 600;
94
94
  line-height: 1.3;
95
- border-bottom: 1px solid var(--u-border-color);
95
+ border-bottom: 1px solid var(--u-border-color, #E0E0E0);
96
96
  }
97
97
  .header .close-btn {
98
98
  flex-shrink: 0;
99
- padding: 4px;
99
+ padding: var(--u-space-2xs, 4px);
100
100
  font-size: inherit;
101
- border-radius: var(--u-radius-md);
101
+ border-radius: var(--u-radius-md, 4px);
102
102
  }
103
103
 
104
104
  .body {
105
105
  flex: 1 1 auto;
106
106
  min-height: 0;
107
107
  display: block;
108
- padding: 16px;
108
+ padding: var(--u-space-lg, 16px);
109
109
  overflow: auto;
110
110
  }
111
111
 
@@ -114,9 +114,9 @@ var styles = css`
114
114
  display: flex;
115
115
  align-items: center;
116
116
  justify-content: flex-end;
117
- gap: 8px;
118
- padding: 12px 16px;
119
- border-top: 1px solid var(--u-border-color);
117
+ gap: var(--u-space-sm, 8px);
118
+ padding: var(--u-space-md, 12px) var(--u-space-lg, 16px);
119
+ border-top: 1px solid var(--u-border-color, #E0E0E0);
120
120
  }
121
121
  `;
122
122
  //#endregion
@@ -17,11 +17,13 @@ var UDivider = class UDivider extends UElement {
17
17
  }
18
18
  render() {
19
19
  return html`
20
- <span class="line" part="line-start"></span>
21
- <span class="label" part="label">
22
- <slot @slotchange=${this.handleSlotChange}></slot>
23
- </span>
24
- <span class="line" part="line-end"></span>
20
+ <div class="base" part="base">
21
+ <span class="line" part="line-start"></span>
22
+ <span class="label" part="label">
23
+ <slot @slotchange=${this.handleSlotChange}></slot>
24
+ </span>
25
+ <span class="line" part="line-end"></span>
26
+ </div>
25
27
  `;
26
28
  }
27
29
  handleSlotChange(e) {
@@ -3,14 +3,28 @@ import { css } from "lit";
3
3
  var styles = css`
4
4
  :host {
5
5
  --divider-size: 1px;
6
- --divider-color: var(--u-neutral-300);
6
+ --divider-color: var(--u-neutral-300, #E0E0E0);
7
7
  --divider-spacing: 8px;
8
8
  }
9
9
 
10
+ /*
11
+ * 간격은 **내부 요소의 padding** 이 진다 — :host 에 margin 으로 두면 소비 앱의
12
+ * CSS 리셋(전역 셀렉터로 margin 을 0 으로 두는 관행)에 에러 없이 지워진다.
13
+ *
14
+ * ★ 여기만 다른 8개 컴포넌트와 방식이 갈린다. 구분선의 간격은 *형제를 밀어내는* 것이라
15
+ * 내부 요소의 margin 으로 옮기면 호스트 박스 안에서 상쇄되어 아무것도 밀지 못한다.
16
+ * 그러나 **padding** 은 호스트 박스 자체를 키우므로 형제는 종전대로 밀려나고,
17
+ * padding 은 섀도 내부에 있어 문서 리셋이 닿지 못한다.
18
+ */
10
19
  :host {
20
+ display: block;
21
+ }
22
+
23
+ .base {
24
+ box-sizing: border-box;
11
25
  display: flex;
12
26
  align-items: center;
13
- margin: var(--divider-spacing) 0;
27
+ padding: var(--divider-spacing) 0;
14
28
  }
15
29
 
16
30
  /* variant */
@@ -43,8 +57,8 @@ var styles = css`
43
57
  /* 슬롯 콘텐츠 */
44
58
  .label {
45
59
  display: none;
46
- padding: 0 12px;
47
- color: var(--u-txt-color-weak);
60
+ padding: 0 var(--u-space-md, 12px);
61
+ color: var(--u-txt-color-weak, #9E9E9E);
48
62
  font-size: 0.85em;
49
63
  white-space: nowrap;
50
64
  user-select: none;
@@ -52,10 +66,16 @@ var styles = css`
52
66
 
53
67
  /* vertical */
54
68
  :host([vertical]) {
55
- flex-direction: column;
56
- margin: 0 var(--divider-spacing);
69
+ display: inline-block;
57
70
  height: auto;
58
71
  min-height: 1em;
72
+ align-self: stretch;
73
+ }
74
+
75
+ :host([vertical]) .base {
76
+ flex-direction: column;
77
+ padding: 0 var(--divider-spacing);
78
+ height: 100%;
59
79
  }
60
80
 
61
81
  :host([vertical]) .line {
@@ -86,7 +106,7 @@ var styles = css`
86
106
  }
87
107
 
88
108
  :host([vertical]) .label {
89
- padding: 12px 0;
109
+ padding: var(--u-space-md, 12px) 0;
90
110
  }
91
111
  `;
92
112
  //#endregion
@@ -75,25 +75,25 @@ var styles = css`
75
75
  display: flex;
76
76
  align-items: center;
77
77
  justify-content: space-between;
78
- gap: 8px;
79
- padding: 12px 16px;
78
+ gap: var(--u-space-sm, 8px);
79
+ padding: var(--u-space-md, 12px) var(--u-space-lg, 16px);
80
80
  font-size: 18px;
81
81
  font-weight: 600;
82
82
  line-height: 1.3;
83
- border-bottom: 1px solid var(--u-border-color);
83
+ border-bottom: 1px solid var(--u-border-color, #E0E0E0);
84
84
  }
85
85
  .header .close-btn {
86
86
  flex-shrink: 0;
87
- padding: 4px;
87
+ padding: var(--u-space-2xs, 4px);
88
88
  font-size: inherit;
89
- border-radius: var(--u-radius-md);
89
+ border-radius: var(--u-radius-md, 4px);
90
90
  }
91
91
 
92
92
  .body {
93
93
  flex: 1 1 auto;
94
94
  min-height: 0;
95
95
  display: block;
96
- padding: 16px;
96
+ padding: var(--u-space-lg, 16px);
97
97
  overflow: auto;
98
98
  }
99
99
 
@@ -102,9 +102,9 @@ var styles = css`
102
102
  display: flex;
103
103
  align-items: center;
104
104
  justify-content: flex-end;
105
- gap: 8px;
106
- padding: 12px 16px;
107
- border-top: 1px solid var(--u-border-color);
105
+ gap: var(--u-space-sm, 8px);
106
+ padding: var(--u-space-md, 12px) var(--u-space-lg, 16px);
107
+ border-top: 1px solid var(--u-border-color, #E0E0E0);
108
108
  }
109
109
  `;
110
110
  //#endregion
@@ -3,7 +3,7 @@ import { css } from "lit";
3
3
  var styles = css`
4
4
  :host {
5
5
  display: block;
6
- color: var(--u-txt-color);
6
+ color: var(--u-txt-color, #212121);
7
7
  font-size: inherit;
8
8
  font-family: var(--u-font-base);
9
9
  }
@@ -12,7 +12,7 @@ var styles = css`
12
12
  cursor: not-allowed;
13
13
  }
14
14
  :host([invalid]) .footer {
15
- color: var(--u-danger-color);
15
+ color: var(--u-danger-color, #E53935);
16
16
  }
17
17
 
18
18
  .header {
@@ -32,12 +32,12 @@ var styles = css`
32
32
  }
33
33
 
34
34
  .required {
35
- color: var(--u-danger-color);
35
+ color: var(--u-danger-color, #E53935);
36
36
  margin-right: 0.2em;
37
37
  }
38
38
 
39
39
  .footer {
40
- color: var(--u-txt-color-weak);
40
+ color: var(--u-txt-color-weak, #9E9E9E);
41
41
  font-size: 0.75em;
42
42
  line-height: 1.2;
43
43
  margin-top: 0.5em;
@@ -3,7 +3,7 @@ import { css } from "lit";
3
3
  var styles = css`
4
4
  :host {
5
5
  display: inline-flex;
6
- color: var(--u-icon-color);
6
+ color: var(--u-icon-color, #616161);
7
7
  font-size: 20px;
8
8
  }
9
9
 
@@ -11,7 +11,7 @@ var styles = css`
11
11
  color: #fff;
12
12
  }
13
13
  :host([variant="link"]) {
14
- color: var(--u-primary-color-weak);
14
+ color: var(--u-primary-color-weak, #2196F3);
15
15
  }
16
16
 
17
17
  u-button {