@nexus-cross/design-system 2.0.0 → 2.0.2
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/README.md +375 -0
- package/cursor-rules/nexus-ui-api.mdc +366 -7
- package/dist/chunks/{chunk-2T7RUYEK.js → chunk-2BINGHGR.js} +11 -3
- package/dist/chunks/chunk-3NSJMG3G.mjs +5 -0
- package/dist/chunks/{chunk-QOREDNWO.mjs → chunk-53BHDUID.mjs} +2 -1
- package/dist/chunks/{chunk-QZ4QR3XV.mjs → chunk-ATZE57ZO.mjs} +11 -3
- package/dist/chunks/{chunk-OX5MEJ7B.js → chunk-HU6E2R2T.js} +2 -1
- package/dist/chunks/chunk-JICW6KWH.js +7 -0
- package/dist/chunks/{chunk-5J63FUAS.mjs → chunk-LNC3TV6N.mjs} +53 -2
- package/dist/chunks/{chunk-BJM3NDT2.mjs → chunk-RL5UAEGQ.mjs} +11 -3
- package/dist/chunks/{chunk-LAGQ7J5A.js → chunk-VCN7DMCQ.js} +53 -2
- package/dist/chunks/{chunk-2ZXDXO4I.js → chunk-VDEB5BMT.js} +11 -3
- package/dist/components/ImageUpload.d.ts +14 -0
- package/dist/components/ImageUpload.d.ts.map +1 -1
- package/dist/components/NumberInput.d.ts +20 -1
- package/dist/components/NumberInput.d.ts.map +1 -1
- package/dist/components/Select.d.ts +5 -1
- package/dist/components/Select.d.ts.map +1 -1
- package/dist/components/Tab.d.ts +12 -1
- package/dist/components/Tab.d.ts.map +1 -1
- package/dist/image-upload.js +3 -3
- package/dist/image-upload.mjs +1 -1
- package/dist/index.js +16 -16
- package/dist/index.mjs +4 -4
- package/dist/number-input.js +4 -4
- package/dist/number-input.mjs +1 -1
- package/dist/schemas/_all.json +48 -10
- package/dist/schemas/image-upload.d.ts +6 -0
- package/dist/schemas/image-upload.d.ts.map +1 -1
- package/dist/schemas/imageUpload.json +19 -1
- package/dist/schemas/number-input.d.ts +9 -3
- package/dist/schemas/number-input.d.ts.map +1 -1
- package/dist/schemas/numberInput.json +10 -3
- package/dist/schemas/spinner.json +2 -2
- package/dist/schemas/tab.d.ts +11 -0
- package/dist/schemas/tab.d.ts.map +1 -1
- package/dist/schemas/tab.json +17 -4
- package/dist/schemas.js +48 -10
- package/dist/schemas.mjs +48 -10
- package/dist/select.js +5 -5
- package/dist/select.mjs +1 -1
- package/dist/styles/.generated/built.d.ts +1 -1
- package/dist/styles/.generated/built.d.ts.map +1 -1
- package/dist/styles/layer.js +2 -2
- package/dist/styles/layer.mjs +1 -1
- package/dist/styles.css +185 -44
- package/dist/styles.js +2 -2
- package/dist/styles.layered.css +185 -44
- package/dist/styles.mjs +1 -1
- package/dist/tab.js +4 -4
- package/dist/tab.mjs +1 -1
- package/dist/tokens/TOKENS.md +13 -0
- package/dist/tokens/company.css +21 -1
- package/dist/tokens/css.css +21 -1
- package/dist/tokens/data/color.json +32 -0
- package/dist/tokens/data/space.json +1 -1
- package/dist/tokens/data/typography.json +55 -1
- package/dist/tokens-domains/data/gamehub/domain.json +258 -0
- package/dist/tokens-domains/data/index.ts +3 -1
- package/dist/tokens-domains/data/prediction/domain.json +0 -12
- package/dist/tokens-domains/gamehub.md +62 -0
- package/dist/tokens-domains/prediction-vars.css +1 -5
- package/dist/tokens-domains/prediction.css +1 -5
- package/dist/tokens-domains/prediction.md +0 -1
- package/package.json +3 -3
- package/dist/chunks/chunk-3SCSND6S.js +0 -7
- package/dist/chunks/chunk-QWK4CLS2.mjs +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built.d.ts","sourceRoot":"","sources":["../../../src/styles/.generated/built.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"built.d.ts","sourceRoot":"","sources":["../../../src/styles/.generated/built.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,GAAG,y04JAAijmI,CAAC;AAC3jmI,eAAe,GAAG,CAAC"}
|
package/dist/styles/layer.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkJICW6KWH_js = require('../chunks/chunk-JICW6KWH.js');
|
|
4
4
|
|
|
5
5
|
// src/styles/inject-layer.ts
|
|
6
6
|
var STYLE_ID = "__nexus-ds-layer__";
|
|
@@ -8,7 +8,7 @@ var __nexus_styles_injected__ = typeof document !== "undefined" && !document.get
|
|
|
8
8
|
const style = document.createElement("style");
|
|
9
9
|
style.id = STYLE_ID;
|
|
10
10
|
style.textContent = `@layer nexus {
|
|
11
|
-
${
|
|
11
|
+
${chunkJICW6KWH_js.built_default}
|
|
12
12
|
}`;
|
|
13
13
|
document.head.appendChild(style);
|
|
14
14
|
return true;
|
package/dist/styles/layer.mjs
CHANGED
package/dist/styles.css
CHANGED
|
@@ -341,10 +341,12 @@
|
|
|
341
341
|
gap: 0.25rem;
|
|
342
342
|
}
|
|
343
343
|
.nexus-text-input-field__label {
|
|
344
|
-
|
|
345
|
-
font-
|
|
346
|
-
|
|
344
|
+
/* label-semibold-sm 토큰 기준 (12px / 600). 다른 input 컴포넌트들과 sync된 라벨 사이즈/색상. */
|
|
345
|
+
font-size: var(--text-label-semibold-sm, 0.75rem);
|
|
346
|
+
font-weight: var(--font-weight-label-semibold-sm, 600);
|
|
347
|
+
letter-spacing: var(--letter-spacing-label-semibold-sm, 0);
|
|
347
348
|
line-height: 1;
|
|
349
|
+
color: var(--color-text-tertiary);
|
|
348
350
|
}
|
|
349
351
|
.nexus-text-input-field__footer {
|
|
350
352
|
display: flex;
|
|
@@ -353,7 +355,7 @@
|
|
|
353
355
|
}
|
|
354
356
|
.nexus-text-input-field__description {
|
|
355
357
|
font-size: var(--text-text-xs, 0.75rem);
|
|
356
|
-
color: var(--color-text-
|
|
358
|
+
color: var(--color-text-tertiary);
|
|
357
359
|
line-height: 1.5;
|
|
358
360
|
letter-spacing: -0.12px;
|
|
359
361
|
}
|
|
@@ -362,7 +364,7 @@
|
|
|
362
364
|
}
|
|
363
365
|
.nexus-text-input-field__count {
|
|
364
366
|
font-size: var(--text-text-xs, 0.75rem);
|
|
365
|
-
color: var(--color-text-
|
|
367
|
+
color: var(--color-text-tertiary);
|
|
366
368
|
margin-left: auto;
|
|
367
369
|
flex-shrink: 0;
|
|
368
370
|
}
|
|
@@ -486,8 +488,10 @@
|
|
|
486
488
|
gap: 0.5rem;
|
|
487
489
|
}
|
|
488
490
|
.nexus-price-input-field__label {
|
|
489
|
-
|
|
490
|
-
font-
|
|
491
|
+
/* label-semibold-sm 토큰 기준 (12px / 600). 다른 input 컴포넌트들과 sync된 라벨 사이즈. */
|
|
492
|
+
font-size: var(--text-label-semibold-sm, 0.75rem);
|
|
493
|
+
font-weight: var(--font-weight-label-semibold-sm, 600);
|
|
494
|
+
letter-spacing: var(--letter-spacing-label-semibold-sm, 0);
|
|
491
495
|
color: var(--color-text-tertiary);
|
|
492
496
|
line-height: 1;
|
|
493
497
|
}
|
|
@@ -644,8 +648,10 @@
|
|
|
644
648
|
gap: 0.25rem;
|
|
645
649
|
}
|
|
646
650
|
.nexus-textarea-field__label {
|
|
647
|
-
|
|
648
|
-
font-
|
|
651
|
+
/* label-semibold-sm 토큰 기준 (12px / 600). 다른 input 컴포넌트들과 sync된 라벨 사이즈. */
|
|
652
|
+
font-size: var(--text-label-semibold-sm, 0.75rem);
|
|
653
|
+
font-weight: var(--font-weight-label-semibold-sm, 600);
|
|
654
|
+
letter-spacing: var(--letter-spacing-label-semibold-sm, 0);
|
|
649
655
|
color: var(--color-text-tertiary);
|
|
650
656
|
line-height: 1;
|
|
651
657
|
}
|
|
@@ -791,8 +797,10 @@
|
|
|
791
797
|
margin-bottom: 4px;
|
|
792
798
|
}
|
|
793
799
|
.nexus-number-input__label {
|
|
794
|
-
|
|
795
|
-
font-
|
|
800
|
+
/* label-semibold-sm 토큰 기준 (12px / 600). TextInput과 동일한 라벨 사이즈로 sync. */
|
|
801
|
+
font-size: var(--text-label-semibold-sm, 0.75rem);
|
|
802
|
+
font-weight: var(--font-weight-label-semibold-sm, 600);
|
|
803
|
+
letter-spacing: var(--letter-spacing-label-semibold-sm, 0);
|
|
796
804
|
line-height: 1;
|
|
797
805
|
color: var(--color-text-tertiary);
|
|
798
806
|
}
|
|
@@ -895,7 +903,6 @@
|
|
|
895
903
|
border: none;
|
|
896
904
|
background: transparent;
|
|
897
905
|
outline: none;
|
|
898
|
-
font-size: var(--text-label-lg, 1rem);
|
|
899
906
|
font-weight: var(--font-weight-label-lg, 500);
|
|
900
907
|
line-height: 1;
|
|
901
908
|
color: var(--color-text-primary);
|
|
@@ -911,26 +918,82 @@
|
|
|
911
918
|
cursor: not-allowed;
|
|
912
919
|
}
|
|
913
920
|
|
|
914
|
-
/* ── Size: field padding
|
|
915
|
-
|
|
916
|
-
|
|
921
|
+
/* ── Size: field padding + font-size ──
|
|
922
|
+
* TextInput과 동일한 사이즈 체계 (md / lg / xl).
|
|
923
|
+
* basic, bind 변형 모두 동일 padding/font를 사용 (variant는 좌우 컨트롤만 다름).
|
|
924
|
+
*
|
|
925
|
+
* :where()로 명시도 0 — 외부 className의 height/padding/font utility(`h-12`, `py-3`, `text-base`)
|
|
926
|
+
* 가 항상 우선해서 사이즈 오버라이드가 자연스럽게 동작한다.
|
|
927
|
+
*/
|
|
928
|
+
:where(.nexus-number-input--md) .nexus-number-input__field {
|
|
929
|
+
padding: calc(var(--spacing-padding-xs, 0.5rem) - 1px) var(--spacing-padding-sm, 0.75rem);
|
|
930
|
+
font-size: var(--text-text-sm, 0.875rem);
|
|
917
931
|
}
|
|
918
|
-
.nexus-number-input--
|
|
919
|
-
padding: var(--spacing-padding-
|
|
932
|
+
:where(.nexus-number-input--lg) .nexus-number-input__field {
|
|
933
|
+
padding: calc(var(--spacing-padding-sm, 0.75rem) - 1px) var(--spacing-padding-sm, 0.75rem);
|
|
934
|
+
font-size: var(--text-text-base, 1rem);
|
|
935
|
+
}
|
|
936
|
+
:where(.nexus-number-input--xl) .nexus-number-input__field {
|
|
937
|
+
padding: calc(var(--spacing-padding-md, 1rem) - 1px) var(--spacing-padding-md, 1rem);
|
|
938
|
+
font-size: var(--text-text-base, 1rem);
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
/* ── Prefix / Suffix icon (text or ReactNode) ──
|
|
942
|
+
* basic / bind variant 모두 공통.
|
|
943
|
+
* field padding과 자연스럽게 이어지도록 padding-inline은 size별 :where() 규칙 참고.
|
|
944
|
+
* 좌측 prefix는 field 좌측 padding을 줄여서 visual gap 통일.
|
|
945
|
+
*/
|
|
946
|
+
.nexus-number-input__icon {
|
|
947
|
+
display: flex;
|
|
948
|
+
align-items: center;
|
|
949
|
+
flex-shrink: 0;
|
|
950
|
+
color: var(--color-text-muted);
|
|
951
|
+
font-size: inherit;
|
|
952
|
+
line-height: 1;
|
|
953
|
+
user-select: none;
|
|
954
|
+
pointer-events: none;
|
|
955
|
+
}
|
|
956
|
+
:where(.nexus-number-input--md) .nexus-number-input__icon {
|
|
957
|
+
padding-inline-start: var(--spacing-padding-sm, 0.75rem);
|
|
958
|
+
font-size: var(--text-text-sm, 0.875rem);
|
|
959
|
+
}
|
|
960
|
+
:where(.nexus-number-input--lg) .nexus-number-input__icon {
|
|
961
|
+
padding-inline-start: var(--spacing-padding-sm, 0.75rem);
|
|
962
|
+
font-size: var(--text-text-base, 1rem);
|
|
963
|
+
}
|
|
964
|
+
:where(.nexus-number-input--xl) .nexus-number-input__icon {
|
|
965
|
+
padding-inline-start: var(--spacing-padding-md, 1rem);
|
|
966
|
+
font-size: var(--text-text-base, 1rem);
|
|
967
|
+
}
|
|
968
|
+
:where(.nexus-number-input__icon--suffix) {
|
|
969
|
+
padding-inline-start: 0;
|
|
970
|
+
padding-inline-end: var(--spacing-padding-sm, 0.75rem);
|
|
971
|
+
}
|
|
972
|
+
:where(.nexus-number-input--xl .nexus-number-input__icon--suffix) {
|
|
973
|
+
padding-inline-end: var(--spacing-padding-md, 1rem);
|
|
974
|
+
}
|
|
975
|
+
/* prefix가 있으면 field 좌측 padding을 한번만 가지도록 (icon이 좌측 패딩 담당) */
|
|
976
|
+
:where(.nexus-number-input__icon--prefix) ~ .nexus-number-input__field {
|
|
977
|
+
padding-inline-start: var(--spacing-padding-xs, 0.5rem);
|
|
978
|
+
}
|
|
979
|
+
.nexus-number-input--disabled .nexus-number-input__icon {
|
|
980
|
+
color: var(--color-text-muted);
|
|
920
981
|
}
|
|
921
982
|
|
|
922
|
-
/* ──
|
|
983
|
+
/* ── Bind variant: 좌우 ± 버튼이 들어갈 자리 ── */
|
|
923
984
|
.nexus-number-input--bind .nexus-number-input__container {
|
|
924
985
|
padding-inline: var(--spacing-padding-xs, 0.5rem);
|
|
925
986
|
}
|
|
926
987
|
.nexus-number-input--bind .nexus-number-input__field {
|
|
927
988
|
text-align: center;
|
|
928
989
|
}
|
|
929
|
-
|
|
930
|
-
|
|
990
|
+
/* bind variant에서는 ± 버튼이 padding 역할이므로 icon padding 살짝만 */
|
|
991
|
+
.nexus-number-input--bind .nexus-number-input__icon {
|
|
992
|
+
padding-inline-start: var(--spacing-padding-2xs, 0.25rem);
|
|
931
993
|
}
|
|
932
|
-
.nexus-number-input--bind.nexus-number-
|
|
933
|
-
padding
|
|
994
|
+
.nexus-number-input--bind .nexus-number-input__icon--suffix {
|
|
995
|
+
padding-inline-start: 0;
|
|
996
|
+
padding-inline-end: var(--spacing-padding-2xs, 0.25rem);
|
|
934
997
|
}
|
|
935
998
|
|
|
936
999
|
/* ── Basic variant: chevron buttons column ── */
|
|
@@ -1004,7 +1067,17 @@
|
|
|
1004
1067
|
color: var(--color-text-muted);
|
|
1005
1068
|
cursor: not-allowed;
|
|
1006
1069
|
}
|
|
1007
|
-
|
|
1070
|
+
/* bind ± 버튼: 사이즈별로 가시 영역이 자연스럽게 늘어나도록.
|
|
1071
|
+
* :where()로 명시도 0 — 외부 className으로 버튼 크기도 오버라이드 가능. */
|
|
1072
|
+
:where(.nexus-number-input--md) .nexus-number-input__bind-btn {
|
|
1073
|
+
width: 20px;
|
|
1074
|
+
height: 20px;
|
|
1075
|
+
}
|
|
1076
|
+
:where(.nexus-number-input--lg) .nexus-number-input__bind-btn {
|
|
1077
|
+
width: 24px;
|
|
1078
|
+
height: 24px;
|
|
1079
|
+
}
|
|
1080
|
+
:where(.nexus-number-input--xl) .nexus-number-input__bind-btn {
|
|
1008
1081
|
width: 30px;
|
|
1009
1082
|
height: 30px;
|
|
1010
1083
|
}
|
|
@@ -1828,6 +1901,15 @@
|
|
|
1828
1901
|
border-radius: var(--radius-corner-lg, 0.5rem);
|
|
1829
1902
|
padding: 0.25rem;
|
|
1830
1903
|
}
|
|
1904
|
+
/* fullWidth: 모든 트리거를 균등 분할해서 부모 너비를 채움. :where()로 specificity 0
|
|
1905
|
+
→ 사용처에서 className(w-*, flex-*)으로 자유롭게 오버라이드 가능. */
|
|
1906
|
+
:where(.nexus-tab-list--full-width) {
|
|
1907
|
+
width: 100%;
|
|
1908
|
+
}
|
|
1909
|
+
:where(.nexus-tab-list--full-width) .nexus-tab-trigger {
|
|
1910
|
+
flex: 1;
|
|
1911
|
+
justify-content: center;
|
|
1912
|
+
}
|
|
1831
1913
|
.nexus-tab-trigger {
|
|
1832
1914
|
position: relative;
|
|
1833
1915
|
display: inline-flex;
|
|
@@ -1915,7 +1997,10 @@
|
|
|
1915
1997
|
|
|
1916
1998
|
.nexus-spinner {
|
|
1917
1999
|
animation: nexus-spin 1s linear infinite;
|
|
1918
|
-
|
|
2000
|
+
}
|
|
2001
|
+
/* default color: brand primary (semantic). :where()로 specificity 0 → 외부 className(text-*, color)이 항상 우선 override 가능. */
|
|
2002
|
+
:where(.nexus-spinner) {
|
|
2003
|
+
color: var(--color-accent-primary);
|
|
1919
2004
|
}
|
|
1920
2005
|
|
|
1921
2006
|
/* ═══════════════════════════════════════════
|
|
@@ -2141,16 +2226,17 @@
|
|
|
2141
2226
|
.nexus-select-trigger--outline {
|
|
2142
2227
|
background: var(--color-surface-default);
|
|
2143
2228
|
}
|
|
2144
|
-
|
|
2229
|
+
/* size variant width: :where() 로 명시도 0 — 외부 className 의 w- / min-w- / max-w- 유틸이 항상 우선. */
|
|
2230
|
+
:where(.nexus-select-trigger--sm) {
|
|
2145
2231
|
width: 4rem;
|
|
2146
2232
|
}
|
|
2147
|
-
.nexus-select-trigger--md {
|
|
2233
|
+
:where(.nexus-select-trigger--md) {
|
|
2148
2234
|
width: 8rem;
|
|
2149
2235
|
}
|
|
2150
|
-
.nexus-select-trigger--lg {
|
|
2236
|
+
:where(.nexus-select-trigger--lg) {
|
|
2151
2237
|
width: 12rem;
|
|
2152
2238
|
}
|
|
2153
|
-
.nexus-select-trigger--full {
|
|
2239
|
+
:where(.nexus-select-trigger--full) {
|
|
2154
2240
|
width: 100%;
|
|
2155
2241
|
}
|
|
2156
2242
|
.nexus-select-trigger--justify-end {
|
|
@@ -2226,17 +2312,19 @@
|
|
|
2226
2312
|
transform: translateY(-4px) scaleY(0.96);
|
|
2227
2313
|
}
|
|
2228
2314
|
}
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
.
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
.nexus-select-content--
|
|
2315
|
+
/* Content는 size variant와 무관하게 항상 trigger 너비를 추종한다.
|
|
2316
|
+
* - size는 트리거 크기만 결정. content는 anchor-width로 자동 동기화 → 외부 className으로
|
|
2317
|
+
* Select 하나만 늘리면 드롭다운/Item도 자연스럽게 같이 늘어난다.
|
|
2318
|
+
* - SelectItem이 anchor-width보다 더 크면 min-width가 그대로라 content가 자식 너비만큼 자연
|
|
2319
|
+
* 확장된다.
|
|
2320
|
+
* - 별도 너비를 원하면 `contentClassName`으로 명시적으로 오버라이드 (외부 className은 :where()
|
|
2321
|
+
* 덕분에 항상 우선). */
|
|
2322
|
+
:where(.nexus-select-content--sm),
|
|
2323
|
+
:where(.nexus-select-content--md),
|
|
2324
|
+
:where(.nexus-select-content--lg),
|
|
2325
|
+
:where(.nexus-select-content--full) {
|
|
2239
2326
|
width: var(--radix-popper-anchor-width);
|
|
2327
|
+
min-width: var(--radix-popper-anchor-width);
|
|
2240
2328
|
}
|
|
2241
2329
|
.nexus-select-viewport {
|
|
2242
2330
|
padding: 0.25rem;
|
|
@@ -2245,7 +2333,6 @@
|
|
|
2245
2333
|
.nexus-select-item {
|
|
2246
2334
|
position: relative;
|
|
2247
2335
|
display: flex;
|
|
2248
|
-
width: 100%;
|
|
2249
2336
|
cursor: pointer;
|
|
2250
2337
|
align-items: center;
|
|
2251
2338
|
border-radius: var(--radius-corner-sm, 0.25rem);
|
|
@@ -2257,6 +2344,10 @@
|
|
|
2257
2344
|
outline: none;
|
|
2258
2345
|
user-select: none;
|
|
2259
2346
|
}
|
|
2347
|
+
/* width 만 :where()로 명시도 0 — 외부 className 의 w-* 가 항상 우선. */
|
|
2348
|
+
:where(.nexus-select-item) {
|
|
2349
|
+
width: 100%;
|
|
2350
|
+
}
|
|
2260
2351
|
.nexus-select-item:hover,
|
|
2261
2352
|
.nexus-select-item:focus,
|
|
2262
2353
|
.nexus-select-item[data-highlighted] {
|
|
@@ -4579,6 +4670,53 @@
|
|
|
4579
4670
|
height: 16px;
|
|
4580
4671
|
}
|
|
4581
4672
|
|
|
4673
|
+
/* ─── ImageUpload: previewMode="cover" — 박스 가득 채우는 풀 이미지 ─── */
|
|
4674
|
+
.nexus-image-upload--preview-cover {
|
|
4675
|
+
position: relative;
|
|
4676
|
+
display: block;
|
|
4677
|
+
padding: 0;
|
|
4678
|
+
border: 1px solid var(--color-border-default);
|
|
4679
|
+
border-style: solid;
|
|
4680
|
+
background: var(--color-surface-strong);
|
|
4681
|
+
cursor: pointer;
|
|
4682
|
+
/* X 버튼이 모서리 밖으로 살짝 튀어나올 수 있도록 visible. 이미지는 아래 clip wrapper가 라운드 처리. */
|
|
4683
|
+
overflow: visible;
|
|
4684
|
+
}
|
|
4685
|
+
.nexus-image-upload--preview-cover:hover {
|
|
4686
|
+
border-color: var(--color-border-default-hover);
|
|
4687
|
+
box-shadow: 0 0 0 0.5px var(--color-border-default-hover);
|
|
4688
|
+
}
|
|
4689
|
+
/* 이미지 클리핑 — 박스 border-radius와 동일하게 라운드. */
|
|
4690
|
+
.nexus-image-upload__preview-cover-clip {
|
|
4691
|
+
position: absolute;
|
|
4692
|
+
inset: 0;
|
|
4693
|
+
overflow: hidden;
|
|
4694
|
+
border-radius: var(--radius-corner-md, 8px);
|
|
4695
|
+
}
|
|
4696
|
+
.nexus-image-upload__preview-cover-img {
|
|
4697
|
+
position: absolute;
|
|
4698
|
+
inset: 0;
|
|
4699
|
+
width: 100%;
|
|
4700
|
+
height: 100%;
|
|
4701
|
+
object-fit: cover;
|
|
4702
|
+
display: block;
|
|
4703
|
+
pointer-events: none;
|
|
4704
|
+
}
|
|
4705
|
+
.nexus-image-upload__preview-cover-img--contain {
|
|
4706
|
+
object-fit: contain;
|
|
4707
|
+
}
|
|
4708
|
+
/* cover 모드의 X 버튼 — card preview와 동일하게 우측 상단 모서리에 걸치는 형태. */
|
|
4709
|
+
.nexus-image-upload__remove--cover {
|
|
4710
|
+
top: -6px;
|
|
4711
|
+
right: -6px;
|
|
4712
|
+
background: var(--color-surface-inverted);
|
|
4713
|
+
color: var(--color-icon-inverted);
|
|
4714
|
+
}
|
|
4715
|
+
.nexus-image-upload__remove--cover:hover {
|
|
4716
|
+
opacity: 0.85;
|
|
4717
|
+
background: var(--color-surface-inverted);
|
|
4718
|
+
}
|
|
4719
|
+
|
|
4582
4720
|
.nexus-image-upload__info {
|
|
4583
4721
|
display: flex;
|
|
4584
4722
|
flex-direction: column;
|
|
@@ -4616,10 +4754,11 @@
|
|
|
4616
4754
|
gap: var(--spacing-gap-xs, 0.25rem);
|
|
4617
4755
|
}
|
|
4618
4756
|
.nexus-image-upload-field__label {
|
|
4619
|
-
|
|
4620
|
-
font-
|
|
4757
|
+
/* label-semibold-sm 토큰 기준 (12px / 600). 다른 input 컴포넌트들과 sync된 라벨 사이즈. */
|
|
4758
|
+
font-size: var(--text-label-semibold-sm, 0.75rem);
|
|
4759
|
+
font-weight: var(--font-weight-label-semibold-sm, 600);
|
|
4621
4760
|
line-height: 1;
|
|
4622
|
-
letter-spacing: var(--letter-spacing-label-semibold-
|
|
4761
|
+
letter-spacing: var(--letter-spacing-label-semibold-sm, 0);
|
|
4623
4762
|
color: var(--color-text-tertiary);
|
|
4624
4763
|
}
|
|
4625
4764
|
.nexus-image-upload-field__description {
|
|
@@ -4830,8 +4969,10 @@
|
|
|
4830
4969
|
gap: var(--spacing-gap-xs, 0.25rem);
|
|
4831
4970
|
}
|
|
4832
4971
|
.nexus-combobox-field__label {
|
|
4833
|
-
|
|
4834
|
-
font-
|
|
4972
|
+
/* label-semibold-sm 토큰 기준 (12px / 600). 다른 input 컴포넌트들과 sync된 라벨 사이즈. */
|
|
4973
|
+
font-size: var(--text-label-semibold-sm, 0.75rem);
|
|
4974
|
+
font-weight: var(--font-weight-label-semibold-sm, 600);
|
|
4975
|
+
letter-spacing: var(--letter-spacing-label-semibold-sm, 0);
|
|
4835
4976
|
line-height: 1;
|
|
4836
4977
|
color: var(--color-text-tertiary);
|
|
4837
4978
|
}
|
package/dist/styles.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkJICW6KWH_js = require('./chunks/chunk-JICW6KWH.js');
|
|
4
4
|
|
|
5
5
|
// src/styles/inject.ts
|
|
6
6
|
var STYLE_ID = "__nexus-ds__";
|
|
7
7
|
var __nexus_styles_injected__ = typeof document !== "undefined" && !document.getElementById(STYLE_ID) ? (() => {
|
|
8
8
|
const style = document.createElement("style");
|
|
9
9
|
style.id = STYLE_ID;
|
|
10
|
-
style.textContent =
|
|
10
|
+
style.textContent = chunkJICW6KWH_js.built_default;
|
|
11
11
|
document.head.appendChild(style);
|
|
12
12
|
return true;
|
|
13
13
|
})() : false;
|