@uniai-fe/uds-primitives 0.3.27 → 0.3.29

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniai-fe/uds-primitives",
3
- "version": "0.3.27",
3
+ "version": "0.3.29",
4
4
  "description": "UNIAI Design System; Primitives Components Package",
5
5
  "type": "module",
6
6
  "private": false,
@@ -336,9 +336,9 @@ export type SelectProps = SelectStyleOptions &
336
336
  * @property {boolean} [readOnly] readOnly 여부
337
337
  * @property {SelectTriggerButtonType} [buttonType] button type
338
338
  * @property {FormFieldWidth} [width] width preset 옵션
339
- * @property {SelectDropdownOption<OptionData, DataOptionality>[]} [items] dropdown item 리스트
340
- * @property {SelectCallbackParams<OptionData, DataOptionality>} [onSelectOption] option 선택 액션 콜백
341
- * @property {SelectCallbackParams<OptionData, DataOptionality>} [onSelectChange] 선택값 변경 콜백
339
+ * @property {SelectDropdownOption<OptionData>[]} [items] dropdown item 리스트
340
+ * @property {SelectCallbackParams<OptionData>} [onSelectOption] option 선택 액션 콜백
341
+ * @property {SelectCallbackParams<OptionData>} [onSelectChange] 선택값 변경 콜백
342
342
  * @property {SelectDropdownExtension} [dropdown] dropdown 확장 옵션
343
343
  * @property {boolean} [open] dropdown open 상태
344
344
  * @property {boolean} [defaultOpen] uncontrolled 초기 open 상태
@@ -349,25 +349,18 @@ export type SelectProps = SelectStyleOptions &
349
349
  * @property {UseFormRegisterReturn} [register] source field register
350
350
  * @property {UseFormRegisterReturn} [customRegister] custom field register
351
351
  * @example
352
- * type DefaultOptional = SelectDefaultComponentProps<
353
- * { metaKey: number },
354
- * "optional"
355
- * >;
356
- * type DefaultRequired = SelectDefaultComponentProps<
357
- * { metaKey: number },
358
- * "required"
359
- * >;
352
+ * type DefaultProps = SelectDefaultComponentProps<{ metaKey: number }>;
353
+ * type RequiredChange = SelectCallbackParams<{ metaKey: number }, "required">;
354
+ * // optionality 제어는 콜백/옵션 타입에서 필요할 때만 명시적으로 사용한다.
360
355
  */
361
- export type SelectDefaultComponentProps<
362
- OptionData = unknown,
363
- DataOptionality extends SelectOptionDataOptionality = "optional",
364
- > = SelectTriggerDefaultProps &
365
- SelectDropdownConfigProps<OptionData, DataOptionality> &
366
- SelectDropdownBehaviorProps &
367
- SelectWidthOption &
368
- SelectTriggerEventProps &
369
- SelectCustomOptionExtension &
370
- SelectFormRegisterExtension;
356
+ export type SelectDefaultComponentProps<OptionData = unknown> =
357
+ SelectTriggerDefaultProps &
358
+ SelectDropdownConfigProps<OptionData> &
359
+ SelectDropdownBehaviorProps &
360
+ SelectWidthOption &
361
+ SelectTriggerEventProps &
362
+ SelectCustomOptionExtension &
363
+ SelectFormRegisterExtension;
371
364
 
372
365
  /**
373
366
  * Select.Multiple 전체 선택 옵션 props
@@ -398,9 +391,9 @@ export interface SelectMultipleAllOptionProps {
398
391
  * @property {boolean} [disabled] disabled 여부
399
392
  * @property {boolean} [readOnly] readOnly 여부
400
393
  * @property {FormFieldWidth} [width] width preset 옵션
401
- * @property {SelectDropdownOption<OptionData, DataOptionality>[]} [items] dropdown item 리스트
402
- * @property {SelectCallbackParams<OptionData, DataOptionality>} [onSelectOption] option 선택 액션 콜백
403
- * @property {SelectCallbackParams<OptionData, DataOptionality>} [onSelectChange] 선택값 변경 콜백
394
+ * @property {SelectDropdownOption<OptionData>[]} [items] dropdown item 리스트
395
+ * @property {SelectCallbackParams<OptionData>} [onSelectOption] option 선택 액션 콜백
396
+ * @property {SelectCallbackParams<OptionData>} [onSelectChange] 선택값 변경 콜백
404
397
  * @property {SelectDropdownExtension} [dropdown] dropdown 확장 옵션
405
398
  * @property {boolean} [open] dropdown open 상태
406
399
  * @property {boolean} [defaultOpen] uncontrolled 초기 open 상태
@@ -409,17 +402,14 @@ export interface SelectMultipleAllOptionProps {
409
402
  * @property {boolean} [showSelectAllOption] dropdown 첫 행에 "전체" 옵션 노출 여부
410
403
  * @property {ReactNode} [selectAllLabel] "전체" 옵션 라벨 커스터마이징
411
404
  * @example
412
- * type MultipleRequired = SelectMultipleComponentProps<
413
- * { metaKey: number },
414
- * "required"
415
- * >;
405
+ * type MultipleProps = SelectMultipleComponentProps<{ metaKey: number }>;
406
+ * type RequiredChange = SelectCallbackParams<{ metaKey: number }, "required">;
407
+ * // optionality 제어는 콜백/옵션 타입에서 필요할 때만 명시적으로 사용한다.
416
408
  */
417
- export type SelectMultipleComponentProps<
418
- OptionData = unknown,
419
- DataOptionality extends SelectOptionDataOptionality = "optional",
420
- > = SelectTriggerMultipleProps &
421
- SelectDropdownConfigProps<OptionData, DataOptionality> &
422
- SelectDropdownBehaviorProps &
423
- SelectWidthOption &
424
- SelectMultipleAllOptionProps &
425
- SelectTriggerEventProps;
409
+ export type SelectMultipleComponentProps<OptionData = unknown> =
410
+ SelectTriggerMultipleProps &
411
+ SelectDropdownConfigProps<OptionData> &
412
+ SelectDropdownBehaviorProps &
413
+ SelectWidthOption &
414
+ SelectMultipleAllOptionProps &
415
+ SelectTriggerEventProps;
@@ -91,34 +91,42 @@ export interface TableColgroupProps extends ComponentPropsWithoutRef<"colgroup">
91
91
 
92
92
  /**
93
93
  * Table Types; Container column data
94
+ * @template RowData column dataKey가 참조할 row 데이터 타입
95
+ * @template DataKey row 데이터에서 허용할 key 타입
94
96
  * @property {string} key column 고유 key
97
+ * @property {string} dataKey column 데이터 property 키
98
+ * @property {React.ReactNode} cellContents 헤더 셀 콘텐츠
95
99
  * @property {number | string} [width] width 값
96
- * @property {string} [dataKey] tbody loop 렌더링 시 데이터 매핑(property key)용 식별자 및 data-key attr 값
97
- * @property {React.ReactNode} [cellContents] 헤더 셀 콘텐츠
98
100
  * @property {"left" | "center" | "right" | "normal" | "start" | "end" | "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly" | "stretch"} [alignX] 헤더 가로 정렬(CSS `justify-content` 값과 매핑)
99
101
  * @property {"top" | "center" | "bottom" | "normal" | "stretch" | "start" | "end" | "flex-start" | "flex-end" | "self-start" | "self-end" | "baseline"} [alignY] 헤더 세로 정렬(CSS `align-items` 값과 매핑)
100
102
  */
101
- export interface TableColumnData {
103
+ export interface TableColumnData<
104
+ RowData extends Record<string, unknown> = Record<string, unknown>,
105
+ DataKey extends Extract<keyof RowData, string> = Extract<
106
+ keyof RowData,
107
+ string
108
+ >,
109
+ > {
102
110
  /**
103
111
  * column 고유 key
104
112
  */
105
113
  key: string;
106
114
  /**
107
- * width
115
+ * column 데이터 property 키
108
116
  */
109
- width?: number | string;
117
+ dataKey: DataKey;
110
118
  /**
111
- * tbody loop 렌더링 시 데이터 매핑(property key)용 식별자 및 data-key attr 값
119
+ * 헤더 콘텐츠
112
120
  */
113
- dataKey?: string;
121
+ cellContents: React.ReactNode;
114
122
  /**
115
- * col className
123
+ * width
116
124
  */
117
- className?: string;
125
+ width?: number | string;
118
126
  /**
119
- * 헤더 셀 콘텐츠
127
+ * col className
120
128
  */
121
- cellContents?: React.ReactNode;
129
+ className?: string;
122
130
  /**
123
131
  * 헤더 가로 정렬
124
132
  */