@uniai-fe/uds-primitives 0.3.29 → 0.3.31

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
@@ -4621,7 +4621,7 @@ figure.chip {
4621
4621
  padding: 0;
4622
4622
  }
4623
4623
 
4624
- .table-cell-content[data-padding=default] .input[data-priority=table] {
4624
+ .table-cell-content[data-padding=default] > :where(.input[data-priority=table]) {
4625
4625
  width: calc(100% + var(--table-cell-padding-inline) * 2);
4626
4626
  height: 100%;
4627
4627
  min-height: calc(100% + var(--table-cell-padding-block) * 2);
@@ -4636,7 +4636,7 @@ figure.chip {
4636
4636
  height: 100%;
4637
4637
  }
4638
4638
 
4639
- .table-cell-content[data-padding=default] .input-date-field {
4639
+ .table-cell-content[data-padding=default] > :where(.input-date-field) {
4640
4640
  width: calc(100% + var(--table-cell-padding-inline) * 2);
4641
4641
  height: 100%;
4642
4642
  min-height: calc(100% + var(--table-cell-padding-block) * 2);
@@ -4644,7 +4644,7 @@ figure.chip {
4644
4644
  margin-block: calc(var(--table-cell-padding-block) * -1);
4645
4645
  }
4646
4646
 
4647
- .table-cell-content[data-padding=default] :where(.select.select-container) {
4647
+ .table-cell-content[data-padding=default] > :where(.select.select-container) {
4648
4648
  width: calc(100% + var(--table-cell-padding-inline) * 2);
4649
4649
  height: 100%;
4650
4650
  min-height: calc(100% + var(--table-cell-padding-block) * 2);
@@ -4653,23 +4653,20 @@ figure.chip {
4653
4653
  flex: 1 1 auto;
4654
4654
  }
4655
4655
 
4656
- .table-cell-content[data-padding=default] :where(.select.select-container .select-button) {
4656
+ .table-cell-content[data-padding=default] > :where(.select.select-container) .select-button {
4657
4657
  width: 100%;
4658
- height: 100%;
4659
4658
  }
4660
4659
 
4661
- .table-cell-content[data-padding=none] :where(.input[data-priority=table],
4662
- .input[data-priority=table] .input-box,
4663
- .input[data-priority=table] .input-field,
4660
+ .table-cell-content[data-padding=none] > :where(.input[data-priority=table],
4664
4661
  .input-date-field,
4665
- .select.select-container,
4666
- .select.select-container .select-button),
4667
- .table-cell-content[data-no-padding=true] :where(.input[data-priority=table],
4668
- .input[data-priority=table] .input-box,
4669
- .input[data-priority=table] .input-field,
4662
+ .select.select-container),
4663
+ .table-cell-content[data-no-padding=true] > :where(.input[data-priority=table],
4670
4664
  .input-date-field,
4671
- .select.select-container,
4672
- .select.select-container .select-button) {
4665
+ .select.select-container),
4666
+ .table-cell-content[data-padding=none] :where(.input[data-priority=table] .input-box,
4667
+ .input[data-priority=table] .input-field),
4668
+ .table-cell-content[data-no-padding=true] :where(.input[data-priority=table] .input-box,
4669
+ .input[data-priority=table] .input-field) {
4673
4670
  width: 100%;
4674
4671
  height: 100%;
4675
4672
  min-height: 100%;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniai-fe/uds-primitives",
3
- "version": "0.3.29",
3
+ "version": "0.3.31",
4
4
  "description": "UNIAI Design System; Primitives Components Package",
5
5
  "type": "module",
6
6
  "private": false,
@@ -15,7 +15,7 @@
15
15
  "publishConfig": {
16
16
  "access": "public"
17
17
  },
18
- "packageManager": "pnpm@10.30.2",
18
+ "packageManager": "pnpm@10.30.3",
19
19
  "engines": {
20
20
  "node": ">=24",
21
21
  "pnpm": ">=10"
@@ -372,8 +372,9 @@
372
372
  padding: 0;
373
373
  }
374
374
 
375
- // 변경: table cell 내부에서는 input table이 영역을 가득 채우도록 컨텍스트 규칙을 둔다.
376
- .table-cell-content[data-padding="default"] .input[data-priority="table"] {
375
+ // 변경: table cell 내부 full-bleed 제어는 직계 child 루트에만 적용해 내부 컴포넌트 스타일 역전을 방지한다.
376
+ .table-cell-content[data-padding="default"]
377
+ > :where(.input[data-priority="table"]) {
377
378
  width: calc(100% + (var(--table-cell-padding-inline) * 2));
378
379
  height: 100%;
379
380
  min-height: calc(100% + (var(--table-cell-padding-block) * 2));
@@ -390,7 +391,7 @@
390
391
  height: 100%;
391
392
  }
392
393
 
393
- .table-cell-content[data-padding="default"] .input-date-field {
394
+ .table-cell-content[data-padding="default"] > :where(.input-date-field) {
394
395
  width: calc(100% + (var(--table-cell-padding-inline) * 2));
395
396
  height: 100%;
396
397
  min-height: calc(100% + (var(--table-cell-padding-block) * 2));
@@ -398,7 +399,7 @@
398
399
  margin-block: calc(var(--table-cell-padding-block) * -1);
399
400
  }
400
401
 
401
- .table-cell-content[data-padding="default"] :where(.select.select-container) {
402
+ .table-cell-content[data-padding="default"] > :where(.select.select-container) {
402
403
  width: calc(100% + (var(--table-cell-padding-inline) * 2));
403
404
  height: 100%;
404
405
  min-height: calc(100% + (var(--table-cell-padding-block) * 2));
@@ -408,28 +409,33 @@
408
409
  }
409
410
 
410
411
  .table-cell-content[data-padding="default"]
411
- :where(.select.select-container .select-button) {
412
+ > :where(.select.select-container)
413
+ .select-button {
414
+ // 변경 설명: select 버튼 높이는 select 컴포넌트 토큰(min-height/size) 계약을 우선한다.
412
415
  width: 100%;
413
- height: 100%;
414
416
  }
415
417
 
416
418
  .table-cell-content[data-padding="none"]
417
- :where(
419
+ > :where(
418
420
  .input[data-priority="table"],
419
- .input[data-priority="table"] .input-box,
420
- .input[data-priority="table"] .input-field,
421
421
  .input-date-field,
422
- .select.select-container,
423
- .select.select-container .select-button
422
+ .select.select-container
424
423
  ),
425
424
  .table-cell-content[data-no-padding="true"]
426
- :where(
425
+ > :where(
427
426
  .input[data-priority="table"],
428
- .input[data-priority="table"] .input-box,
429
- .input[data-priority="table"] .input-field,
430
427
  .input-date-field,
431
- .select.select-container,
432
- .select.select-container .select-button
428
+ .select.select-container
429
+ ),
430
+ .table-cell-content[data-padding="none"]
431
+ :where(
432
+ .input[data-priority="table"] .input-box,
433
+ .input[data-priority="table"] .input-field
434
+ ),
435
+ .table-cell-content[data-no-padding="true"]
436
+ :where(
437
+ .input[data-priority="table"] .input-box,
438
+ .input[data-priority="table"] .input-field
433
439
  ) {
434
440
  width: 100%;
435
441
  height: 100%;
@@ -139,7 +139,8 @@ export interface TableColumnData<
139
139
 
140
140
  /**
141
141
  * Table Types; Container props
142
- * @property {TableColumnData[]} [columns] colgroup/head 자동 렌더링용 column 데이터
142
+ * @template RowData columns dataKey가 참조할 row 데이터 타입
143
+ * @property {TableColumnData<RowData>[]} [columns] colgroup/head 자동 렌더링용 column 데이터
143
144
  * @property {boolean} [isCustomBody] true면 body wrapper 없이 children을 직접 렌더링
144
145
  * @property {boolean} [scrollable=false] true면 외부 스크롤 래퍼를 추가한다.
145
146
  * @property {"x" | "y" | "both"} [scrollAxis="x"] scrollable일 때 스크롤 축
@@ -147,11 +148,13 @@ export interface TableColumnData<
147
148
  * @property {React.ReactNode} [footer] footer 노드
148
149
  * @property {React.ReactNode} [children] body 콘텐츠
149
150
  */
150
- export interface TableContainerProps extends TableRootProps {
151
+ export interface TableContainerProps<
152
+ RowData extends Record<string, unknown> = Record<string, unknown>,
153
+ > extends TableRootProps {
151
154
  /**
152
155
  * colgroup/head 자동 렌더링용 column 데이터
153
156
  */
154
- columns?: TableColumnData[];
157
+ columns?: TableColumnData<RowData>[];
155
158
  /**
156
159
  * true면 body wrapper 없이 children을 직접 렌더링
157
160
  */