@uniai-fe/uds-primitives 0.3.35 → 0.3.37

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/styles.css CHANGED
@@ -2567,6 +2567,14 @@ figure.chip {
2567
2567
  .input--block {
2568
2568
  width: 100%;
2569
2569
  }
2570
+ .input[data-priority=table] {
2571
+ display: block;
2572
+ --input-width: 100%;
2573
+ height: 100%;
2574
+ }
2575
+ .input[data-priority=table] .input-box {
2576
+ height: 100%;
2577
+ }
2570
2578
 
2571
2579
  .input-label {
2572
2580
  color: var(--input-label-color);
@@ -2682,6 +2690,7 @@ figure.chip {
2682
2690
  margin-left: 0;
2683
2691
  }
2684
2692
  .input-field[data-priority=table] {
2693
+ height: 100%;
2685
2694
  border-radius: var(--input-table-radius-base);
2686
2695
  border-color: var(--input-border-table-default-color);
2687
2696
  background-color: var(--input-table-surface-color);
@@ -4636,43 +4645,6 @@ figure.chip {
4636
4645
  padding: 0;
4637
4646
  }
4638
4647
 
4639
- .table-cell-content[data-padding=default] > :where(.input[data-priority=table]) {
4640
- width: calc(100% + var(--table-cell-padding-inline) * 2);
4641
- height: 100%;
4642
- min-height: calc(100% + var(--table-cell-padding-block) * 2);
4643
- margin-inline: calc(var(--table-cell-padding-inline) * -1);
4644
- margin-block: calc(var(--table-cell-padding-block) * -1);
4645
- flex: 1 1 auto;
4646
- }
4647
-
4648
- .table-cell-content[data-padding=default] :where(.input[data-priority=table] .input-box),
4649
- .table-cell-content[data-padding=default] :where(.input[data-priority=table] .input-field) {
4650
- width: 100%;
4651
- height: 100%;
4652
- }
4653
-
4654
- .table-cell-content[data-padding=default] > :where(.input-date-field) {
4655
- width: calc(100% + var(--table-cell-padding-inline) * 2);
4656
- height: 100%;
4657
- min-height: calc(100% + var(--table-cell-padding-block) * 2);
4658
- margin-inline: calc(var(--table-cell-padding-inline) * -1);
4659
- margin-block: calc(var(--table-cell-padding-block) * -1);
4660
- }
4661
-
4662
- .table-cell-content[data-padding=none] > :where(.input[data-priority=table]),
4663
- .table-cell-content[data-no-padding=true] > :where(.input[data-priority=table]),
4664
- .table-cell-content[data-padding=none] :where(.input[data-priority=table] .input-box,
4665
- .input[data-priority=table] .input-field),
4666
- .table-cell-content[data-no-padding=true] :where(.input[data-priority=table] .input-box,
4667
- .input[data-priority=table] .input-field),
4668
- .table-cell-content[data-padding=none] > :where(.input-date-field),
4669
- .table-cell-content[data-no-padding=true] > :where(.input-date-field) {
4670
- width: 100%;
4671
- height: 100%;
4672
- min-height: 100%;
4673
- margin: 0;
4674
- }
4675
-
4676
4648
  :where(.table-cell-content) :where(.table-cell-text) {
4677
4649
  color: inherit;
4678
4650
  font-size: inherit;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniai-fe/uds-primitives",
3
- "version": "0.3.35",
3
+ "version": "0.3.37",
4
4
  "description": "UNIAI Design System; Primitives Components Package",
5
5
  "type": "module",
6
6
  "private": false,
@@ -272,7 +272,6 @@ const InputBase = forwardRef<HTMLInputElement, InputProps>(
272
272
  />
273
273
  </div>
274
274
  <InputBaseUtil
275
- // table priority는 success/error 상태 아이콘 대신 border만으로 상태를 표현한다.
276
275
  priority={priority}
277
276
  state={currentState}
278
277
  isDisabled={isDisabled}
@@ -47,7 +47,8 @@ export default function InputBaseUtil({
47
47
  // 변경: table/tertiary priority는 상태 아이콘을 렌더하지 않는다.
48
48
  const resolvedStatusIcon =
49
49
  priority === "table" || priority === "tertiary" ? null : statusIcon;
50
- const clearIconNode = clear ?? InputStatusIcon.reset;
50
+ const clearIconNode =
51
+ clear ?? (priority === "table" ? null : InputStatusIcon.reset);
51
52
  const showClearIcon = Boolean(
52
53
  clearIconNode &&
53
54
  hasValue &&
@@ -34,6 +34,15 @@
34
34
  &--block {
35
35
  width: 100%;
36
36
  }
37
+
38
+ &[data-priority="table"] {
39
+ display: block;
40
+ --input-width: 100%;
41
+ height: 100%;
42
+ .input-box {
43
+ height: 100%;
44
+ }
45
+ }
37
46
  }
38
47
 
39
48
  .input-label {
@@ -170,7 +179,8 @@
170
179
  }
171
180
 
172
181
  &[data-priority="table"] {
173
- // table priority는 default에서 border를 숨기고 상태(border-color)만 드러낸다.
182
+ height: 100%;
183
+
174
184
  border-radius: var(--input-table-radius-base);
175
185
  border-color: var(--input-border-table-default-color);
176
186
  background-color: var(--input-table-surface-color);
@@ -56,6 +56,20 @@ const SelectTriggerBase = forwardRef<HTMLElement, SelectTriggerBaseProps>(
56
56
  : SelectIcon.Chevron[priority][
57
57
  resolvedSize === "xsmall" ? "small" : resolvedSize
58
58
  ];
59
+ const iconSize = () => {
60
+ switch (size) {
61
+ case "large":
62
+ return 20;
63
+ case "medium":
64
+ return 16;
65
+ case "small":
66
+ return 12;
67
+ case "xsmall":
68
+ return 14;
69
+ default:
70
+ return 16;
71
+ }
72
+ };
59
73
  const resolvedState = disabled || readOnly ? "disabled" : state;
60
74
  const {
61
75
  ["aria-haspopup"]: ariaHasPopup,
@@ -100,7 +114,10 @@ const SelectTriggerBase = forwardRef<HTMLElement, SelectTriggerBaseProps>(
100
114
  data-size={resolvedSize}
101
115
  aria-hidden="true"
102
116
  >
103
- <Icon />
117
+ <Icon
118
+ viewBox={`0 0 ${iconSize()} ${iconSize()}`}
119
+ preserveAspectRatio="xMinYMin meet"
120
+ />
104
121
  </figure>
105
122
  </Slot.Base>
106
123
  );
@@ -372,32 +372,32 @@
372
372
  padding: 0;
373
373
  }
374
374
 
375
- // 변경: table cell 내부 full-bleed 제어는 직계 child 루트에만 적용해 내부 컴포넌트 스타일 역전을 방지한다.
376
- .table-cell-content[data-padding="default"]
377
- > :where(.input[data-priority="table"]) {
378
- width: calc(100% + (var(--table-cell-padding-inline) * 2));
379
- height: 100%;
380
- min-height: calc(100% + (var(--table-cell-padding-block) * 2));
381
- margin-inline: calc(var(--table-cell-padding-inline) * -1);
382
- margin-block: calc(var(--table-cell-padding-block) * -1);
383
- flex: 1 1 auto;
384
- }
375
+ // // 변경: table cell 내부 full-bleed 제어는 직계 child 루트에만 적용해 내부 컴포넌트 스타일 역전을 방지한다.
376
+ // .table-cell-content[data-padding="default"]
377
+ // > :where(.input[data-priority="table"]) {
378
+ // width: calc(100% + (var(--table-cell-padding-inline) * 2));
379
+ // height: 100%;
380
+ // min-height: calc(100% + (var(--table-cell-padding-block) * 2));
381
+ // margin-inline: calc(var(--table-cell-padding-inline) * -1);
382
+ // margin-block: calc(var(--table-cell-padding-block) * -1);
383
+ // flex: 1 1 auto;
384
+ // }
385
385
 
386
- .table-cell-content[data-padding="default"]
387
- :where(.input[data-priority="table"] .input-box),
388
- .table-cell-content[data-padding="default"]
389
- :where(.input[data-priority="table"] .input-field) {
390
- width: 100%;
391
- height: 100%;
392
- }
386
+ // .table-cell-content[data-padding="default"]
387
+ // :where(.input[data-priority="table"] .input-box),
388
+ // .table-cell-content[data-padding="default"]
389
+ // :where(.input[data-priority="table"] .input-field) {
390
+ // width: 100%;
391
+ // height: 100%;
392
+ // }
393
393
 
394
- .table-cell-content[data-padding="default"] > :where(.input-date-field) {
395
- width: calc(100% + (var(--table-cell-padding-inline) * 2));
396
- height: 100%;
397
- min-height: calc(100% + (var(--table-cell-padding-block) * 2));
398
- margin-inline: calc(var(--table-cell-padding-inline) * -1);
399
- margin-block: calc(var(--table-cell-padding-block) * -1);
400
- }
394
+ // .table-cell-content[data-padding="default"] > :where(.input-date-field) {
395
+ // width: calc(100% + (var(--table-cell-padding-inline) * 2));
396
+ // height: 100%;
397
+ // min-height: calc(100% + (var(--table-cell-padding-block) * 2));
398
+ // margin-inline: calc(var(--table-cell-padding-inline) * -1);
399
+ // margin-block: calc(var(--table-cell-padding-block) * -1);
400
+ // }
401
401
 
402
402
  // .table-cell-content[data-padding="default"]
403
403
  // > :where(
@@ -426,27 +426,27 @@
426
426
  // margin: 0;
427
427
  // }
428
428
 
429
- .table-cell-content[data-padding="none"]
430
- > :where(.input[data-priority="table"]),
431
- .table-cell-content[data-no-padding="true"]
432
- > :where(.input[data-priority="table"]),
433
- .table-cell-content[data-padding="none"]
434
- :where(
435
- .input[data-priority="table"] .input-box,
436
- .input[data-priority="table"] .input-field
437
- ),
438
- .table-cell-content[data-no-padding="true"]
439
- :where(
440
- .input[data-priority="table"] .input-box,
441
- .input[data-priority="table"] .input-field
442
- ),
443
- .table-cell-content[data-padding="none"] > :where(.input-date-field),
444
- .table-cell-content[data-no-padding="true"] > :where(.input-date-field) {
445
- width: 100%;
446
- height: 100%;
447
- min-height: 100%;
448
- margin: 0;
449
- }
429
+ // .table-cell-content[data-padding="none"]
430
+ // > :where(.input[data-priority="table"]),
431
+ // .table-cell-content[data-no-padding="true"]
432
+ // > :where(.input[data-priority="table"]),
433
+ // .table-cell-content[data-padding="none"]
434
+ // :where(
435
+ // .input[data-priority="table"] .input-box,
436
+ // .input[data-priority="table"] .input-field
437
+ // ),
438
+ // .table-cell-content[data-no-padding="true"]
439
+ // :where(
440
+ // .input[data-priority="table"] .input-box,
441
+ // .input[data-priority="table"] .input-field
442
+ // ),
443
+ // .table-cell-content[data-padding="none"] > :where(.input-date-field),
444
+ // .table-cell-content[data-no-padding="true"] > :where(.input-date-field) {
445
+ // width: 100%;
446
+ // height: 100%;
447
+ // min-height: 100%;
448
+ // margin: 0;
449
+ // }
450
450
 
451
451
  // 변경: Cell 슬롯 기본 텍스트 inherit는 저특이성(:where)으로 두어 section 토큰 규칙이 우선되게 한다.
452
452
  :where(.table-cell-content) {