@x-plat/design-system 0.6.1 → 0.7.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 (68) hide show
  1. package/dist/components/Accordion/index.css +10 -3
  2. package/dist/components/Alert/index.css +7 -0
  3. package/dist/components/AutoResizeTextArea/index.css +3 -0
  4. package/dist/components/Avatar/index.css +13 -1
  5. package/dist/components/Badge/index.css +13 -2
  6. package/dist/components/Box/index.css +8 -5
  7. package/dist/components/Breadcrumb/index.css +5 -1
  8. package/dist/components/Button/index.css +10 -1
  9. package/dist/components/Calendar/index.css +10 -6
  10. package/dist/components/CardTab/index.css +14 -2
  11. package/dist/components/Chart/index.css +32 -11
  12. package/dist/components/ChatInput/index.css +6 -0
  13. package/dist/components/CheckBox/index.css +10 -1
  14. package/dist/components/Chip/index.css +12 -0
  15. package/dist/components/DatePicker/index.css +51 -12
  16. package/dist/components/Drawer/index.css +14 -7
  17. package/dist/components/Dropdown/index.css +5 -1
  18. package/dist/components/Editor/index.css +49 -10
  19. package/dist/components/EmptyState/index.css +9 -2
  20. package/dist/components/FileUpload/index.css +9 -2
  21. package/dist/components/HtmlTypeWriter/index.cjs +2 -0
  22. package/dist/components/HtmlTypeWriter/index.css +13 -1
  23. package/dist/components/HtmlTypeWriter/index.d.cts +3 -3
  24. package/dist/components/HtmlTypeWriter/index.d.ts +3 -3
  25. package/dist/components/HtmlTypeWriter/index.js +1 -0
  26. package/dist/components/ImageSelector/index.css +8 -0
  27. package/dist/components/Input/index.css +12 -0
  28. package/dist/components/Modal/index.css +1 -1
  29. package/dist/components/Pagination/index.css +25 -1
  30. package/dist/components/PopOver/index.css +1 -1
  31. package/dist/components/Progress/index.css +5 -2
  32. package/dist/components/Radio/index.css +9 -0
  33. package/dist/components/Select/index.css +20 -3
  34. package/dist/components/Steps/index.css +14 -4
  35. package/dist/components/Switch/index.css +1 -1
  36. package/dist/components/Tab/index.css +16 -1
  37. package/dist/components/Table/index.cjs +4 -1
  38. package/dist/components/Table/index.css +12 -0
  39. package/dist/components/Table/index.d.cts +2 -0
  40. package/dist/components/Table/index.d.ts +2 -0
  41. package/dist/components/Table/index.js +4 -1
  42. package/dist/components/Tag/index.css +12 -0
  43. package/dist/components/TextArea/index.css +9 -0
  44. package/dist/components/Toast/index.css +8 -1
  45. package/dist/components/Tooltip/index.css +8 -4
  46. package/dist/components/Video/index.css +30 -19
  47. package/dist/components/index.cjs +6 -1
  48. package/dist/components/index.css +484 -99
  49. package/dist/components/index.d.cts +1 -1
  50. package/dist/components/index.d.ts +1 -1
  51. package/dist/components/index.js +5 -1
  52. package/dist/index.cjs +6 -1
  53. package/dist/index.css +484 -99
  54. package/dist/index.d.cts +1 -1
  55. package/dist/index.d.ts +1 -1
  56. package/dist/index.js +5 -1
  57. package/dist/layout/index.css +40 -0
  58. package/guidelines/components/accordion.md +1 -1
  59. package/guidelines/components/avatar.md +1 -1
  60. package/guidelines/components/card.md +1 -1
  61. package/guidelines/components/chart.md +1 -1
  62. package/guidelines/components/data-display.md +4 -4
  63. package/guidelines/components/dropdown.md +1 -1
  64. package/guidelines/components/file-media.md +3 -3
  65. package/guidelines/components/html-typewriter.md +1 -1
  66. package/guidelines/components/navigation.md +144 -20
  67. package/guidelines/components/swiper.md +2 -2
  68. package/package.json +1 -1
@@ -7,12 +7,20 @@
7
7
  .lib-xplat-pagination.sm .dots {
8
8
  width: var(--spacing-control-height-xs);
9
9
  height: var(--spacing-control-height-xs);
10
+ font-family: var(--semantic-typo-caption-2-r-font);
10
11
  font-size: var(--semantic-typo-caption-2-r-size);
12
+ line-height: var(--semantic-typo-caption-2-r-lh);
13
+ font-weight: var(--semantic-typo-caption-2-r-weight);
14
+ letter-spacing: var(--semantic-typo-caption-2-r-ls);
11
15
  }
12
16
  .lib-xplat-pagination.sm .page-btn {
13
17
  min-width: var(--spacing-control-height-xs);
14
18
  height: var(--spacing-control-height-xs);
19
+ font-family: var(--semantic-typo-caption-2-r-font);
15
20
  font-size: var(--semantic-typo-caption-2-r-size);
21
+ line-height: var(--semantic-typo-caption-2-r-lh);
22
+ font-weight: var(--semantic-typo-caption-2-r-weight);
23
+ letter-spacing: var(--semantic-typo-caption-2-r-ls);
16
24
  }
17
25
  .lib-xplat-pagination.sm .page-btn svg {
18
26
  font-size: var(--semantic-typo-caption-1-r-size);
@@ -20,12 +28,20 @@
20
28
  .lib-xplat-pagination.lg .dots {
21
29
  width: var(--spacing-control-height-md);
22
30
  height: var(--spacing-control-height-md);
31
+ font-family: var(--semantic-typo-label-2-m-font);
23
32
  font-size: var(--semantic-typo-label-2-m-size);
33
+ line-height: var(--semantic-typo-label-2-m-lh);
34
+ font-weight: var(--semantic-typo-label-2-m-weight);
35
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
24
36
  }
25
37
  .lib-xplat-pagination.lg .page-btn {
26
38
  min-width: var(--spacing-control-height-md);
27
39
  height: var(--spacing-control-height-md);
40
+ font-family: var(--semantic-typo-label-2-m-font);
28
41
  font-size: var(--semantic-typo-label-2-m-size);
42
+ line-height: var(--semantic-typo-label-2-m-lh);
43
+ font-weight: var(--semantic-typo-label-2-m-weight);
44
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
29
45
  }
30
46
  .lib-xplat-pagination.lg .page-btn svg {
31
47
  font-size: var(--semantic-typo-heading-1-m-size);
@@ -36,7 +52,11 @@
36
52
  justify-content: center;
37
53
  width: var(--spacing-control-height-sm);
38
54
  height: var(--spacing-control-height-sm);
55
+ font-family: var(--semantic-typo-caption-1-r-font);
39
56
  font-size: var(--semantic-typo-caption-1-r-size);
57
+ line-height: var(--semantic-typo-caption-1-r-lh);
58
+ font-weight: var(--semantic-typo-caption-1-r-weight);
59
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
40
60
  color: var(--semantic-text-tertiary);
41
61
  user-select: none;
42
62
  }
@@ -50,7 +70,11 @@
50
70
  border: none;
51
71
  border-radius: var(--spacing-radius-md);
52
72
  background: none;
73
+ font-family: var(--semantic-typo-caption-1-r-font);
53
74
  font-size: var(--semantic-typo-caption-1-r-size);
75
+ line-height: var(--semantic-typo-caption-1-r-lh);
76
+ font-weight: var(--semantic-typo-caption-1-r-weight);
77
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
54
78
  cursor: pointer;
55
79
  color: var(--semantic-text-secondary);
56
80
  transition: background-color 0.2s, color 0.2s;
@@ -64,7 +88,7 @@
64
88
  }
65
89
  .lib-xplat-pagination .page-btn.active {
66
90
  color: var(--semantic-text-inverse);
67
- font-weight: 600;
91
+ font-weight: var(--semantic-typo-caption-1-sb-weight);
68
92
  }
69
93
  .lib-xplat-pagination .page-btn svg {
70
94
  font-size: var(--semantic-typo-label-2-m-size);
@@ -13,7 +13,7 @@
13
13
  transition: transform 0.2s ease, opacity 0.2s ease;
14
14
  background: var(--semantic-surface-neutral-primary);
15
15
  border-radius: var(--spacing-radius-md);
16
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
16
+ box-shadow: var(--semantic-shadow-md);
17
17
  opacity: 0;
18
18
  transform: scale(0.8);
19
19
  }
@@ -41,8 +41,11 @@
41
41
  background-color: var(--semantic-surface-info-default);
42
42
  }
43
43
  .lib-xplat-progress .label {
44
- font-size: var(--semantic-typo-caption-2-r-size);
45
- font-weight: 500;
44
+ font-family: var(--semantic-typo-caption-2-m-font);
45
+ font-size: var(--semantic-typo-caption-2-m-size);
46
+ line-height: var(--semantic-typo-caption-2-m-lh);
47
+ font-weight: var(--semantic-typo-caption-2-m-weight);
48
+ letter-spacing: var(--semantic-typo-caption-2-m-ls);
46
49
  color: var(--semantic-text-secondary);
47
50
  min-width: 36px;
48
51
  text-align: right;
@@ -20,8 +20,11 @@
20
20
  height: var(--spacing-space-2);
21
21
  }
22
22
  .lib-xplat-radio.sm > span {
23
+ font-family: var(--semantic-typo-caption-1-r-font);
23
24
  font-size: var(--semantic-typo-caption-1-r-size);
24
25
  line-height: var(--semantic-typo-caption-1-r-lh);
26
+ font-weight: var(--semantic-typo-caption-1-r-weight);
27
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
25
28
  }
26
29
  .lib-xplat-radio.md > .circle {
27
30
  width: var(--spacing-space-5);
@@ -29,8 +32,11 @@
29
32
  margin-top: calc((var(--semantic-typo-label-2-m-lh) - var(--spacing-space-5)) / 2);
30
33
  }
31
34
  .lib-xplat-radio.md > span {
35
+ font-family: var(--semantic-typo-label-2-m-font);
32
36
  font-size: var(--semantic-typo-label-2-m-size);
33
37
  line-height: var(--semantic-typo-label-2-m-lh);
38
+ font-weight: var(--semantic-typo-label-2-m-weight);
39
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
34
40
  }
35
41
  .lib-xplat-radio.lg > .circle {
36
42
  width: var(--spacing-space-6);
@@ -41,8 +47,11 @@
41
47
  height: var(--spacing-space-4);
42
48
  }
43
49
  .lib-xplat-radio.lg > span {
50
+ font-family: var(--semantic-typo-label-1-m-font);
44
51
  font-size: var(--semantic-typo-label-1-m-size);
45
52
  line-height: var(--semantic-typo-label-1-m-lh);
53
+ font-weight: var(--semantic-typo-label-1-m-weight);
54
+ letter-spacing: var(--semantic-typo-label-1-m-ls);
46
55
  }
47
56
  .lib-xplat-radio > .circle {
48
57
  border: 2px solid var(--semantic-border-tertiary);
@@ -11,20 +11,29 @@
11
11
  .lib-xplat-select.sm .select-trigger {
12
12
  height: var(--spacing-control-height-sm);
13
13
  padding: 0 var(--spacing-space-2);
14
+ font-family: var(--semantic-typo-caption-1-r-font);
14
15
  font-size: var(--semantic-typo-caption-1-r-size);
15
16
  line-height: var(--semantic-typo-caption-1-r-lh);
17
+ font-weight: var(--semantic-typo-caption-1-r-weight);
18
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
16
19
  }
17
20
  .lib-xplat-select.md .select-trigger {
18
21
  height: var(--spacing-control-height-md);
19
22
  padding: 0 var(--spacing-space-3);
23
+ font-family: var(--semantic-typo-label-2-m-font);
20
24
  font-size: var(--semantic-typo-label-2-m-size);
21
25
  line-height: var(--semantic-typo-label-2-m-lh);
26
+ font-weight: var(--semantic-typo-label-2-m-weight);
27
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
22
28
  }
23
29
  .lib-xplat-select.lg .select-trigger {
24
30
  height: var(--spacing-control-height-lg);
25
31
  padding: 0 var(--spacing-space-4);
32
+ font-family: var(--semantic-typo-label-1-m-font);
26
33
  font-size: var(--semantic-typo-label-1-m-size);
27
34
  line-height: var(--semantic-typo-label-1-m-lh);
35
+ font-weight: var(--semantic-typo-label-1-m-weight);
36
+ letter-spacing: var(--semantic-typo-label-1-m-ls);
28
37
  }
29
38
  .lib-xplat-select .select-trigger {
30
39
  cursor: pointer;
@@ -101,7 +110,7 @@
101
110
  padding: var(--spacing-space-1) 0;
102
111
  border-radius: var(--spacing-radius-md);
103
112
  background-color: var(--semantic-surface-neutral-primary);
104
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
113
+ box-shadow: var(--semantic-shadow-md);
105
114
  cursor: default;
106
115
  max-height: 220px;
107
116
  overflow-y: auto;
@@ -132,25 +141,33 @@
132
141
  }
133
142
  .lib-xplat-select-content.sm .select-item {
134
143
  padding: var(--spacing-space-2) var(--spacing-space-2);
144
+ font-family: var(--semantic-typo-caption-1-r-font);
135
145
  font-size: var(--semantic-typo-caption-1-r-size);
136
146
  line-height: var(--semantic-typo-caption-1-r-lh);
147
+ font-weight: var(--semantic-typo-caption-1-r-weight);
148
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
137
149
  }
138
150
  .lib-xplat-select-content.lg .select-item {
139
151
  padding: var(--spacing-space-2) var(--spacing-space-4);
152
+ font-family: var(--semantic-typo-label-1-m-font);
140
153
  font-size: var(--semantic-typo-label-1-m-size);
141
154
  line-height: var(--semantic-typo-label-1-m-lh);
155
+ font-weight: var(--semantic-typo-label-1-m-weight);
156
+ letter-spacing: var(--semantic-typo-label-1-m-ls);
142
157
  }
143
158
  .lib-xplat-select-content .select-item {
144
159
  padding: var(--spacing-space-2) var(--spacing-space-3);
160
+ font-family: var(--semantic-typo-label-2-m-font);
145
161
  font-size: var(--semantic-typo-label-2-m-size);
146
162
  line-height: var(--semantic-typo-label-2-m-lh);
147
- font-weight: var(--semantic-typo-label-1-m-weight);
163
+ font-weight: var(--semantic-typo-label-2-m-weight);
164
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
148
165
  cursor: pointer;
149
166
  transition: background-color 0.15s ease;
150
167
  outline: none;
151
168
  }
152
169
  .lib-xplat-select-content .select-item.is-selected {
153
- font-weight: var(--semantic-typo-label-1-sb-weight);
170
+ font-weight: var(--semantic-typo-label-2-sb-weight);
154
171
  }
155
172
  .lib-xplat-select-content .select-item:hover:not(.disabled) {
156
173
  background-color: var(--semantic-surface-neutral-secondary);
@@ -27,8 +27,11 @@
27
27
  display: flex;
28
28
  align-items: center;
29
29
  justify-content: center;
30
- font-size: var(--semantic-typo-caption-1-r-size);
31
- font-weight: 600;
30
+ font-family: var(--semantic-typo-caption-1-sb-font);
31
+ font-size: var(--semantic-typo-caption-1-sb-size);
32
+ line-height: var(--semantic-typo-caption-1-sb-lh);
33
+ font-weight: var(--semantic-typo-caption-1-sb-weight);
34
+ letter-spacing: var(--semantic-typo-caption-1-sb-ls);
32
35
  flex-shrink: 0;
33
36
  z-index: 1;
34
37
  transition: background-color 0.2s, color 0.2s;
@@ -44,12 +47,19 @@
44
47
  text-align: center;
45
48
  }
46
49
  .lib-xplat-steps .step-title {
47
- font-size: var(--semantic-typo-caption-1-r-size);
48
- font-weight: 500;
50
+ font-family: var(--semantic-typo-caption-1-m-font);
51
+ font-size: var(--semantic-typo-caption-1-m-size);
52
+ line-height: var(--semantic-typo-caption-1-m-lh);
53
+ font-weight: var(--semantic-typo-caption-1-m-weight);
54
+ letter-spacing: var(--semantic-typo-caption-1-m-ls);
49
55
  color: var(--semantic-text-primary);
50
56
  }
51
57
  .lib-xplat-steps .step-description {
58
+ font-family: var(--semantic-typo-caption-2-r-font);
52
59
  font-size: var(--semantic-typo-caption-2-r-size);
60
+ line-height: var(--semantic-typo-caption-2-r-lh);
61
+ font-weight: var(--semantic-typo-caption-2-r-weight);
62
+ letter-spacing: var(--semantic-typo-caption-2-r-ls);
53
63
  color: var(--semantic-text-tertiary);
54
64
  margin-top: 2px;
55
65
  }
@@ -98,6 +98,6 @@
98
98
  transform: translateY(-50%);
99
99
  background-color: var(--semantic-surface-neutral-primary);
100
100
  border-radius: var(--spacing-radius-full);
101
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
101
+ box-shadow: var(--semantic-shadow-sm);
102
102
  transition: left 0.25s;
103
103
  }
@@ -14,15 +14,27 @@
14
14
  }
15
15
  .lib-xplat-tab.sm {
16
16
  height: var(--spacing-control-height-sm);
17
+ font-family: var(--semantic-typo-caption-1-r-font);
17
18
  font-size: var(--semantic-typo-caption-1-r-size);
19
+ line-height: var(--semantic-typo-caption-1-r-lh);
20
+ font-weight: var(--semantic-typo-caption-1-r-weight);
21
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
18
22
  }
19
23
  .lib-xplat-tab.md {
20
24
  height: var(--spacing-control-height-md);
25
+ font-family: var(--semantic-typo-label-2-m-font);
21
26
  font-size: var(--semantic-typo-label-2-m-size);
27
+ line-height: var(--semantic-typo-label-2-m-lh);
28
+ font-weight: var(--semantic-typo-label-2-m-weight);
29
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
22
30
  }
23
31
  .lib-xplat-tab.lg {
24
32
  height: var(--spacing-control-height-lg);
33
+ font-family: var(--semantic-typo-label-1-m-font);
25
34
  font-size: var(--semantic-typo-label-1-m-size);
35
+ line-height: var(--semantic-typo-label-1-m-lh);
36
+ font-weight: var(--semantic-typo-label-1-m-weight);
37
+ letter-spacing: var(--semantic-typo-label-1-m-ls);
26
38
  }
27
39
  .lib-xplat-tab.type-default {
28
40
  width: 100%;
@@ -60,8 +72,11 @@
60
72
  justify-content: center;
61
73
  white-space: nowrap;
62
74
  padding: 0 var(--spacing-space-3);
75
+ font-family: var(--semantic-typo-label-2-m-font);
63
76
  font-size: var(--semantic-typo-label-2-m-size);
64
- font-weight: 500;
77
+ line-height: var(--semantic-typo-label-2-m-lh);
78
+ font-weight: var(--semantic-typo-label-2-m-weight);
79
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
65
80
  height: 100%;
66
81
  background: none;
67
82
  border: none;
@@ -133,6 +133,7 @@ var TableCell = import_react4.default.memo((props) => {
133
133
  isSticky = false,
134
134
  width,
135
135
  nowrap = false,
136
+ scope = "col",
136
137
  onClick
137
138
  } = props;
138
139
  const { registerStickyCell, stickyCells } = useTableRowContext();
@@ -164,7 +165,8 @@ var TableCell = import_react4.default.memo((props) => {
164
165
  }
165
166
  return () => observer.disconnect();
166
167
  }, [isSticky, registerStickyCell, calculateLeft]);
167
- const CellTag = cellRef.current?.tagName === "TH" ? "th" : "td";
168
+ const isHeaderCell = headContext !== null;
169
+ const CellTag = isHeaderCell ? "th" : "td";
168
170
  const isLastSticky = isSticky && stickyCells[stickyCells.length - 1] === cellRef;
169
171
  const enableHover = headContext && headContext.cellHover;
170
172
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
@@ -179,6 +181,7 @@ var TableCell = import_react4.default.memo((props) => {
179
181
  enableHover && "cell-hover",
180
182
  nowrap && "nowrap"
181
183
  ),
184
+ scope: isHeaderCell ? scope : void 0,
182
185
  style: {
183
186
  ...isSticky ? { left } : null,
184
187
  ...width != null ? { width: typeof width === "number" ? `${width}px` : width } : null
@@ -15,21 +15,33 @@
15
15
  .lib-xplat-table-wrapper.sm > .lib-xplat-table > tbody > tr > th,
16
16
  .lib-xplat-table-wrapper.sm > .lib-xplat-table > tbody > tr > td {
17
17
  padding: var(--spacing-space-1) var(--spacing-space-2);
18
+ font-family: var(--semantic-typo-caption-2-r-font);
18
19
  font-size: var(--semantic-typo-caption-2-r-size);
20
+ line-height: var(--semantic-typo-caption-2-r-lh);
21
+ font-weight: var(--semantic-typo-caption-2-r-weight);
22
+ letter-spacing: var(--semantic-typo-caption-2-r-ls);
19
23
  }
20
24
  .lib-xplat-table-wrapper.md > .lib-xplat-table > thead > tr > th,
21
25
  .lib-xplat-table-wrapper.md > .lib-xplat-table > thead > tr > td,
22
26
  .lib-xplat-table-wrapper.md > .lib-xplat-table > tbody > tr > th,
23
27
  .lib-xplat-table-wrapper.md > .lib-xplat-table > tbody > tr > td {
24
28
  padding: var(--spacing-space-2) var(--spacing-space-3);
29
+ font-family: var(--semantic-typo-caption-1-r-font);
25
30
  font-size: var(--semantic-typo-caption-1-r-size);
31
+ line-height: var(--semantic-typo-caption-1-r-lh);
32
+ font-weight: var(--semantic-typo-caption-1-r-weight);
33
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
26
34
  }
27
35
  .lib-xplat-table-wrapper.lg > .lib-xplat-table > thead > tr > th,
28
36
  .lib-xplat-table-wrapper.lg > .lib-xplat-table > thead > tr > td,
29
37
  .lib-xplat-table-wrapper.lg > .lib-xplat-table > tbody > tr > th,
30
38
  .lib-xplat-table-wrapper.lg > .lib-xplat-table > tbody > tr > td {
31
39
  padding: var(--spacing-space-3) var(--spacing-space-4);
40
+ font-family: var(--semantic-typo-label-2-m-font);
32
41
  font-size: var(--semantic-typo-label-2-m-size);
42
+ line-height: var(--semantic-typo-label-2-m-lh);
43
+ font-weight: var(--semantic-typo-label-2-m-weight);
44
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
33
45
  }
34
46
  .lib-xplat-table-wrapper > .lib-xplat-table {
35
47
  width: 100%;
@@ -29,6 +29,8 @@ interface TableCellProps {
29
29
  isSticky?: boolean;
30
30
  width?: string | number;
31
31
  nowrap?: boolean;
32
+ /** th 로 렌더될 때의 scope. 기본 "col" (thead 안에서만 의미가 있다) */
33
+ scope?: "col" | "row";
32
34
  onClick?: (e: React.MouseEvent<HTMLTableCellElement>) => void;
33
35
  }
34
36
  declare const TableCell: React.NamedExoticComponent<TableCellProps>;
@@ -29,6 +29,8 @@ interface TableCellProps {
29
29
  isSticky?: boolean;
30
30
  width?: string | number;
31
31
  nowrap?: boolean;
32
+ /** th 로 렌더될 때의 scope. 기본 "col" (thead 안에서만 의미가 있다) */
33
+ scope?: "col" | "row";
32
34
  onClick?: (e: React.MouseEvent<HTMLTableCellElement>) => void;
33
35
  }
34
36
  declare const TableCell: React.NamedExoticComponent<TableCellProps>;
@@ -93,6 +93,7 @@ var TableCell = React4.memo((props) => {
93
93
  isSticky = false,
94
94
  width,
95
95
  nowrap = false,
96
+ scope = "col",
96
97
  onClick
97
98
  } = props;
98
99
  const { registerStickyCell, stickyCells } = useTableRowContext();
@@ -124,7 +125,8 @@ var TableCell = React4.memo((props) => {
124
125
  }
125
126
  return () => observer.disconnect();
126
127
  }, [isSticky, registerStickyCell, calculateLeft]);
127
- const CellTag = cellRef.current?.tagName === "TH" ? "th" : "td";
128
+ const isHeaderCell = headContext !== null;
129
+ const CellTag = isHeaderCell ? "th" : "td";
128
130
  const isLastSticky = isSticky && stickyCells[stickyCells.length - 1] === cellRef;
129
131
  const enableHover = headContext && headContext.cellHover;
130
132
  return /* @__PURE__ */ jsx3(
@@ -139,6 +141,7 @@ var TableCell = React4.memo((props) => {
139
141
  enableHover && "cell-hover",
140
142
  nowrap && "nowrap"
141
143
  ),
144
+ scope: isHeaderCell ? scope : void 0,
142
145
  style: {
143
146
  ...isSticky ? { left } : null,
144
147
  ...width != null ? { width: typeof width === "number" ? `${width}px` : width } : null
@@ -9,17 +9,29 @@
9
9
  .lib-xplat-tag.sm {
10
10
  gap: var(--spacing-space-1);
11
11
  padding: 1px var(--spacing-space-2);
12
+ font-family: var(--semantic-typo-caption-2-r-font);
12
13
  font-size: var(--semantic-typo-caption-2-r-size);
14
+ line-height: var(--semantic-typo-caption-2-r-lh);
15
+ font-weight: var(--semantic-typo-caption-2-r-weight);
16
+ letter-spacing: var(--semantic-typo-caption-2-r-ls);
13
17
  }
14
18
  .lib-xplat-tag.md {
15
19
  gap: var(--spacing-space-1);
16
20
  padding: 2px var(--spacing-space-2);
21
+ font-family: var(--semantic-typo-caption-2-r-font);
17
22
  font-size: var(--semantic-typo-caption-2-r-size);
23
+ line-height: var(--semantic-typo-caption-2-r-lh);
24
+ font-weight: var(--semantic-typo-caption-2-r-weight);
25
+ letter-spacing: var(--semantic-typo-caption-2-r-ls);
18
26
  }
19
27
  .lib-xplat-tag.lg {
20
28
  gap: var(--spacing-space-1);
21
29
  padding: var(--spacing-space-1) var(--spacing-space-2);
30
+ font-family: var(--semantic-typo-caption-1-r-font);
22
31
  font-size: var(--semantic-typo-caption-1-r-size);
32
+ line-height: var(--semantic-typo-caption-1-r-lh);
33
+ font-weight: var(--semantic-typo-caption-1-r-weight);
34
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
23
35
  }
24
36
  .lib-xplat-tag.neutral {
25
37
  color: var(--semantic-text-tertiary);
@@ -16,18 +16,27 @@
16
16
  }
17
17
  .lib-xplat-textarea-wrap .lib-xplat-textarea.sm {
18
18
  padding: var(--spacing-space-2) var(--spacing-space-3);
19
+ font-family: var(--semantic-typo-caption-1-r-font);
19
20
  font-size: var(--semantic-typo-caption-1-r-size);
20
21
  line-height: var(--semantic-typo-caption-1-r-lh);
22
+ font-weight: var(--semantic-typo-caption-1-r-weight);
23
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
21
24
  }
22
25
  .lib-xplat-textarea-wrap .lib-xplat-textarea.md {
23
26
  padding: var(--spacing-space-2) var(--spacing-space-4);
27
+ font-family: var(--semantic-typo-label-2-m-font);
24
28
  font-size: var(--semantic-typo-label-2-m-size);
25
29
  line-height: var(--semantic-typo-label-2-m-lh);
30
+ font-weight: var(--semantic-typo-label-2-m-weight);
31
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
26
32
  }
27
33
  .lib-xplat-textarea-wrap .lib-xplat-textarea.lg {
28
34
  padding: var(--spacing-space-3) var(--spacing-space-4);
35
+ font-family: var(--semantic-typo-label-1-m-font);
29
36
  font-size: var(--semantic-typo-label-1-m-size);
30
37
  line-height: var(--semantic-typo-label-1-m-lh);
38
+ font-weight: var(--semantic-typo-label-1-m-weight);
39
+ letter-spacing: var(--semantic-typo-label-1-m-ls);
31
40
  }
32
41
  .lib-xplat-textarea-wrap .lib-xplat-textarea:hover:not(.disabled):not(:focus) {
33
42
  border-color: var(--semantic-border-tertiary);
@@ -53,9 +53,12 @@
53
53
  gap: var(--spacing-space-2);
54
54
  padding: var(--spacing-space-3) var(--spacing-space-4);
55
55
  border-radius: var(--spacing-radius-md);
56
+ font-family: var(--semantic-typo-caption-1-r-font);
56
57
  font-size: var(--semantic-typo-caption-1-r-size);
57
58
  line-height: var(--semantic-typo-caption-1-r-lh);
58
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
59
+ font-weight: var(--semantic-typo-caption-1-r-weight);
60
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
61
+ box-shadow: var(--semantic-shadow-md);
59
62
  pointer-events: auto;
60
63
  animation: lib-xplat-toast-enter 0.2s ease;
61
64
  min-width: 240px;
@@ -73,7 +76,11 @@
73
76
  background: none;
74
77
  border: none;
75
78
  cursor: pointer;
79
+ font-family: var(--semantic-typo-label-1-m-font);
76
80
  font-size: var(--semantic-typo-label-1-m-size);
81
+ line-height: var(--semantic-typo-label-1-m-lh);
82
+ font-weight: var(--semantic-typo-label-1-m-weight);
83
+ letter-spacing: var(--semantic-typo-label-1-m-ls);
77
84
  line-height: 1;
78
85
  padding: 0;
79
86
  opacity: 0.6;
@@ -11,18 +11,22 @@
11
11
  animation: tooltip-show 120ms ease-out;
12
12
  }
13
13
  .lib-xplat-tooltip .tooltip-title {
14
+ font-family: var(--semantic-typo-caption-1-r-font);
14
15
  font-size: var(--semantic-typo-caption-1-r-size);
15
16
  line-height: var(--semantic-typo-caption-1-r-lh);
16
- font-weight: 400;
17
+ font-weight: var(--semantic-typo-caption-1-r-weight);
18
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
17
19
  }
18
20
  .lib-xplat-tooltip .tooltip-desc {
21
+ font-family: var(--semantic-typo-caption-2-r-font);
19
22
  font-size: var(--semantic-typo-caption-2-r-size);
20
23
  line-height: var(--semantic-typo-caption-2-r-lh);
21
- font-weight: 400;
24
+ font-weight: var(--semantic-typo-caption-2-r-weight);
25
+ letter-spacing: var(--semantic-typo-caption-2-r-ls);
22
26
  }
23
27
  .lib-xplat-tooltip.dark {
24
28
  background-color: var(--semantic-surface-neutral-tertiary);
25
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
29
+ box-shadow: var(--semantic-shadow-md);
26
30
  }
27
31
  .lib-xplat-tooltip.dark .tooltip-title,
28
32
  .lib-xplat-tooltip.dark .tooltip-desc {
@@ -30,7 +34,7 @@
30
34
  }
31
35
  .lib-xplat-tooltip.light {
32
36
  background-color: var(--semantic-surface-neutral-primary);
33
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
37
+ box-shadow: var(--semantic-shadow-md);
34
38
  }
35
39
  .lib-xplat-tooltip.light .tooltip-title,
36
40
  .lib-xplat-tooltip.light .tooltip-desc {
@@ -40,7 +40,7 @@
40
40
  content: "";
41
41
  position: absolute;
42
42
  inset: 0;
43
- background-color: rgba(0, 0, 0, 0.2);
43
+ background-color: var(--semantic-interaction-overlay-25);
44
44
  opacity: 0;
45
45
  transition: opacity 0.2s ease;
46
46
  }
@@ -49,7 +49,7 @@
49
49
  z-index: 1;
50
50
  display: flex;
51
51
  font-size: var(--semantic-typo-display-1-b-size);
52
- filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));
52
+ filter: drop-shadow(0 2px 8px var(--semantic-interaction-overlay-50));
53
53
  }
54
54
  .lib-xplat-video > .center-play.is-playing {
55
55
  opacity: 0;
@@ -69,8 +69,8 @@
69
69
  background:
70
70
  linear-gradient(
71
71
  to top,
72
- rgba(0, 0, 0, 0.7),
73
- rgba(0, 0, 0, 0));
72
+ var(--semantic-interaction-overlay-75),
73
+ transparent);
74
74
  color: var(--semantic-icon-inverse);
75
75
  opacity: 0;
76
76
  transition: opacity 0.2s ease;
@@ -101,7 +101,7 @@
101
101
  transition: background-color 0.15s ease;
102
102
  }
103
103
  .lib-xplat-video .control-btn:hover {
104
- background-color: rgba(255, 255, 255, 0.15);
104
+ background-color: color-mix(in srgb, var(--semantic-icon-inverse) 15%, transparent);
105
105
  }
106
106
  .lib-xplat-video .control-btn:focus-visible {
107
107
  outline: 2px solid var(--semantic-interaction-focus-ring);
@@ -111,7 +111,7 @@
111
111
  margin-left: auto;
112
112
  }
113
113
  .lib-xplat-video .control-btn.is-active {
114
- background-color: rgba(255, 255, 255, 0.25);
114
+ background-color: color-mix(in srgb, var(--semantic-icon-inverse) 25%, transparent);
115
115
  }
116
116
  .lib-xplat-video .rate-group {
117
117
  position: relative;
@@ -119,8 +119,11 @@
119
119
  .lib-xplat-video .rate-group .rate-btn {
120
120
  width: auto;
121
121
  padding: 0 var(--spacing-space-2);
122
- font-size: var(--semantic-typo-caption-2-r-size);
123
- font-weight: 600;
122
+ font-family: var(--semantic-typo-caption-2-sb-font);
123
+ font-size: var(--semantic-typo-caption-2-sb-size);
124
+ line-height: var(--semantic-typo-caption-2-sb-lh);
125
+ font-weight: var(--semantic-typo-caption-2-sb-weight);
126
+ letter-spacing: var(--semantic-typo-caption-2-sb-ls);
124
127
  font-variant-numeric: tabular-nums;
125
128
  }
126
129
  .lib-xplat-video .rate-group .rate-menu {
@@ -130,7 +133,7 @@
130
133
  margin: 0;
131
134
  padding: var(--spacing-space-1);
132
135
  list-style: none;
133
- background-color: rgba(0, 0, 0, 0.85);
136
+ background-color: var(--semantic-interaction-overlay-85);
134
137
  border-radius: var(--spacing-radius-sm);
135
138
  min-width: 64px;
136
139
  }
@@ -143,18 +146,26 @@
143
146
  text-align: left;
144
147
  cursor: pointer;
145
148
  border-radius: var(--spacing-radius-sm);
149
+ font-family: var(--semantic-typo-caption-2-r-font);
146
150
  font-size: var(--semantic-typo-caption-2-r-size);
151
+ line-height: var(--semantic-typo-caption-2-r-lh);
152
+ font-weight: var(--semantic-typo-caption-2-r-weight);
153
+ letter-spacing: var(--semantic-typo-caption-2-r-ls);
147
154
  font-variant-numeric: tabular-nums;
148
155
  }
149
156
  .lib-xplat-video .rate-group .rate-menu .rate-item:hover {
150
- background-color: rgba(255, 255, 255, 0.15);
157
+ background-color: color-mix(in srgb, var(--semantic-icon-inverse) 15%, transparent);
151
158
  }
152
159
  .lib-xplat-video .rate-group .rate-menu .rate-item.is-active {
153
160
  color: var(--semantic-surface-brand-default);
154
- font-weight: 600;
161
+ font-weight: var(--semantic-typo-caption-2-sb-weight);
155
162
  }
156
163
  .lib-xplat-video .time {
164
+ font-family: var(--semantic-typo-caption-2-r-font);
157
165
  font-size: var(--semantic-typo-caption-2-r-size);
166
+ line-height: var(--semantic-typo-caption-2-r-lh);
167
+ font-weight: var(--semantic-typo-caption-2-r-weight);
168
+ letter-spacing: var(--semantic-typo-caption-2-r-ls);
158
169
  font-variant-numeric: tabular-nums;
159
170
  white-space: nowrap;
160
171
  }
@@ -220,15 +231,15 @@
220
231
  to right,
221
232
  var(--semantic-surface-brand-default) 0%,
222
233
  var(--semantic-surface-brand-default) var(--progress, 0%),
223
- rgba(255, 255, 255, 0.4) var(--progress, 0%),
224
- rgba(255, 255, 255, 0.4) var(--buffered, 0%),
225
- rgba(255, 255, 255, 0.2) var(--buffered, 0%),
226
- rgba(255, 255, 255, 0.2) 100%);
234
+ color-mix(in srgb, var(--semantic-icon-inverse) 40%, transparent) var(--progress, 0%),
235
+ color-mix(in srgb, var(--semantic-icon-inverse) 40%, transparent) var(--buffered, 0%),
236
+ color-mix(in srgb, var(--semantic-icon-inverse) 20%, transparent) var(--buffered, 0%),
237
+ color-mix(in srgb, var(--semantic-icon-inverse) 20%, transparent) 100%);
227
238
  }
228
239
  .lib-xplat-video .seekbar::-moz-range-track {
229
240
  height: 4px;
230
241
  border-radius: 2px;
231
- background: rgba(255, 255, 255, 0.2);
242
+ background: color-mix(in srgb, var(--semantic-icon-inverse) 20%, transparent);
232
243
  }
233
244
  .lib-xplat-video .seekbar::-moz-range-progress {
234
245
  height: 4px;
@@ -246,13 +257,13 @@
246
257
  to right,
247
258
  var(--semantic-icon-inverse) 0%,
248
259
  var(--semantic-icon-inverse) var(--volume, 0%),
249
- rgba(255, 255, 255, 0.3) var(--volume, 0%),
250
- rgba(255, 255, 255, 0.3) 100%);
260
+ color-mix(in srgb, var(--semantic-icon-inverse) 30%, transparent) var(--volume, 0%),
261
+ color-mix(in srgb, var(--semantic-icon-inverse) 30%, transparent) 100%);
251
262
  }
252
263
  .lib-xplat-video .volume-slider::-moz-range-track {
253
264
  height: 4px;
254
265
  border-radius: 2px;
255
- background: rgba(255, 255, 255, 0.3);
266
+ background: color-mix(in srgb, var(--semantic-icon-inverse) 30%, transparent);
256
267
  }
257
268
  .lib-xplat-video .volume-slider::-moz-range-progress {
258
269
  height: 4px;