@reopt-ai/opt-ui 1.11.0 → 1.12.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.
- package/COMPONENT_CATALOG.md +394 -201
- package/README.md +43 -5
- package/dist/core/index.cjs +2 -2
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +2 -2
- package/dist/docs/02-components/01-core.md +150 -84
- package/dist/docs/02-components/02-visuals.md +1 -1
- package/dist/docs/02-components/03-shells.md +258 -117
- package/dist/docs/02-components/04-surfaces.md +1 -1
- package/dist/docs/02-components/index.md +5 -5
- package/dist/docs/03-recipes/02-dashboards.md +126 -10
- package/dist/{field-sidebar-DAuN4jPV.cjs → field-sidebar-BYgEmdy0.cjs} +1539 -1536
- package/dist/{field-sidebar-BXl5RJ3q.js → field-sidebar-BuO37l4c.js} +1540 -1539
- package/dist/{field-sidebar-B5SQC35J.d.cts → field-sidebar-CrYlRZew.d.ts} +164 -154
- package/dist/{field-sidebar-CBeWE8xX.d.ts → field-sidebar-uXmoyvd7.d.cts} +164 -154
- package/dist/id-registry.cjs +78 -6
- package/dist/id-registry.d.cts +1 -2
- package/dist/id-registry.d.ts +1 -2
- package/dist/id-registry.js +78 -8
- package/dist/id-registry.json +168 -19
- package/dist/index.cjs +1127 -224
- package/dist/index.d.cts +567 -58
- package/dist/index.d.ts +567 -58
- package/dist/index.js +1118 -227
- package/dist/{key-pad-menu-BxTy_u0Q.d.cts → key-pad-menu-CwcY_Vps.d.cts} +2 -3
- package/dist/{key-pad-menu-wXkWn1I1.js → key-pad-menu-Di2aRGbM.js} +4 -6
- package/dist/{key-pad-menu-Cg6rZBie.cjs → key-pad-menu-SItoHPLu.cjs} +1 -1
- package/dist/{key-pad-menu-u5GTJl9B.d.ts → key-pad-menu-WBJShCJn.d.ts} +3 -4
- package/dist/meta.cjs +678 -19
- package/dist/meta.d.cts +12 -36
- package/dist/meta.d.ts +12 -36
- package/dist/meta.js +678 -21
- package/dist/query.d.cts +1 -2
- package/dist/query.d.ts +1 -2
- package/dist/query.js +0 -2
- package/dist/shells/index.cjs +1 -1
- package/dist/shells/index.d.cts +1 -1
- package/dist/shells/index.d.ts +1 -1
- package/dist/shells/index.js +1 -1
- package/dist/{text-truncate-DW78lg4S.d.cts → text-truncate-CQyfUZvq.d.cts} +31 -3
- package/dist/{text-truncate-DW78lg4S.d.ts → text-truncate-CQyfUZvq.d.ts} +31 -3
- package/dist/{text-truncate-C17HHCR-.js → text-truncate-DSuZECy0.js} +43 -10
- package/dist/{text-truncate-BZdL1k5Z.cjs → text-truncate-I1XLWmRa.cjs} +48 -7
- package/dist/theme/server.d.cts +1 -2
- package/dist/theme/server.d.ts +1 -2
- package/dist/theme/server.js +0 -2
- package/dist/visuals/index.js +0 -1
- package/package.json +4 -3
- package/dist/field-sidebar-B5SQC35J.d.cts.map +0 -1
- package/dist/field-sidebar-BXl5RJ3q.js.map +0 -1
- package/dist/field-sidebar-CBeWE8xX.d.ts.map +0 -1
- package/dist/id-registry.d.cts.map +0 -1
- package/dist/id-registry.d.ts.map +0 -1
- package/dist/id-registry.js.map +0 -1
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/key-pad-menu-BxTy_u0Q.d.cts.map +0 -1
- package/dist/key-pad-menu-u5GTJl9B.d.ts.map +0 -1
- package/dist/key-pad-menu-wXkWn1I1.js.map +0 -1
- package/dist/meta.d.cts.map +0 -1
- package/dist/meta.d.ts.map +0 -1
- package/dist/meta.js.map +0 -1
- package/dist/query.d.cts.map +0 -1
- package/dist/query.d.ts.map +0 -1
- package/dist/query.js.map +0 -1
- package/dist/text-truncate-C17HHCR-.js.map +0 -1
- package/dist/text-truncate-DW78lg4S.d.cts.map +0 -1
- package/dist/text-truncate-DW78lg4S.d.ts.map +0 -1
- package/dist/theme/server.d.cts.map +0 -1
- package/dist/theme/server.d.ts.map +0 -1
- package/dist/theme/server.js.map +0 -1
package/dist/meta.js
CHANGED
|
@@ -720,7 +720,7 @@ const coreMetas = [
|
|
|
720
720
|
},
|
|
721
721
|
{
|
|
722
722
|
name: "variant",
|
|
723
|
-
type: "\"heading-1\"
|
|
723
|
+
type: "\"heading-1\" | \"heading-2\" | \"heading-3\" | \"heading-4\" | \"heading-5\" | \"heading-6\" | \"display-1\" | \"display-2\" | \"display-3\"",
|
|
724
724
|
description: "시각적 제목 역할"
|
|
725
725
|
},
|
|
726
726
|
{
|
|
@@ -2725,10 +2725,19 @@ const store = useFormStore({ defaultValues: { name: "" } });
|
|
|
2725
2725
|
type: "string",
|
|
2726
2726
|
description: "스위치 레이블"
|
|
2727
2727
|
},
|
|
2728
|
+
{
|
|
2729
|
+
name: "hint",
|
|
2730
|
+
type: "string",
|
|
2731
|
+
description: "레이블 아래 보조 설명 텍스트"
|
|
2732
|
+
},
|
|
2728
2733
|
{
|
|
2729
2734
|
name: "description",
|
|
2730
2735
|
type: "string",
|
|
2731
|
-
description: "레이블 아래 설명 텍스트"
|
|
2736
|
+
description: "레이블 아래 설명 텍스트",
|
|
2737
|
+
deprecated: {
|
|
2738
|
+
since: "1.9.0",
|
|
2739
|
+
replacement: "hint"
|
|
2740
|
+
}
|
|
2732
2741
|
},
|
|
2733
2742
|
{
|
|
2734
2743
|
name: "checked",
|
|
@@ -3402,10 +3411,19 @@ const store = useFormStore({ defaultValues: { name: "" } });
|
|
|
3402
3411
|
type: "string",
|
|
3403
3412
|
description: "체크박스 레이블"
|
|
3404
3413
|
},
|
|
3414
|
+
{
|
|
3415
|
+
name: "hint",
|
|
3416
|
+
type: "string",
|
|
3417
|
+
description: "레이블 아래 보조 설명 텍스트"
|
|
3418
|
+
},
|
|
3405
3419
|
{
|
|
3406
3420
|
name: "description",
|
|
3407
3421
|
type: "string",
|
|
3408
|
-
description: "레이블 아래 설명 텍스트"
|
|
3422
|
+
description: "레이블 아래 설명 텍스트",
|
|
3423
|
+
deprecated: {
|
|
3424
|
+
since: "1.9.0",
|
|
3425
|
+
replacement: "hint"
|
|
3426
|
+
}
|
|
3409
3427
|
},
|
|
3410
3428
|
{
|
|
3411
3429
|
name: "checked",
|
|
@@ -3539,10 +3557,19 @@ const store = useFormStore({ defaultValues: { name: "" } });
|
|
|
3539
3557
|
type: "string",
|
|
3540
3558
|
description: "라디오 레이블"
|
|
3541
3559
|
},
|
|
3560
|
+
{
|
|
3561
|
+
name: "hint",
|
|
3562
|
+
type: "string",
|
|
3563
|
+
description: "레이블 아래 보조 설명 텍스트"
|
|
3564
|
+
},
|
|
3542
3565
|
{
|
|
3543
3566
|
name: "description",
|
|
3544
3567
|
type: "string",
|
|
3545
|
-
description: "레이블 아래 설명 텍스트"
|
|
3568
|
+
description: "레이블 아래 설명 텍스트",
|
|
3569
|
+
deprecated: {
|
|
3570
|
+
since: "1.9.0",
|
|
3571
|
+
replacement: "hint"
|
|
3572
|
+
}
|
|
3546
3573
|
},
|
|
3547
3574
|
{
|
|
3548
3575
|
name: "size",
|
|
@@ -3613,7 +3640,7 @@ const store = useFormStore({ defaultValues: { name: "" } });
|
|
|
3613
3640
|
},
|
|
3614
3641
|
{
|
|
3615
3642
|
name: "onComparisonChange",
|
|
3616
|
-
type: "(
|
|
3643
|
+
type: "(mode: ComparisonMode | null) => void",
|
|
3617
3644
|
description: "비교 모드 변경 콜백"
|
|
3618
3645
|
},
|
|
3619
3646
|
{
|
|
@@ -4301,7 +4328,12 @@ const store = useFormStore({ defaultValues: { name: "" } });
|
|
|
4301
4328
|
{
|
|
4302
4329
|
name: "autoSaveId",
|
|
4303
4330
|
type: "string",
|
|
4304
|
-
description: "id의 deprecated 별칭"
|
|
4331
|
+
description: "id의 deprecated 별칭",
|
|
4332
|
+
deprecated: {
|
|
4333
|
+
since: "1.6.0",
|
|
4334
|
+
replacement: "id",
|
|
4335
|
+
reason: "id + defaultLayout + onLayoutChanged 조합으로 대체되었습니다."
|
|
4336
|
+
}
|
|
4305
4337
|
},
|
|
4306
4338
|
{
|
|
4307
4339
|
name: "className",
|
|
@@ -4948,6 +4980,189 @@ const MyDashboard = createBlock<MyDashboardProps>(
|
|
|
4948
4980
|
}
|
|
4949
4981
|
] },
|
|
4950
4982
|
testDescribe: "ShaderSurface"
|
|
4983
|
+
},
|
|
4984
|
+
{
|
|
4985
|
+
name: "Callout",
|
|
4986
|
+
category: "core",
|
|
4987
|
+
description: "페이지에 머무는 인페이지 고지. Alert와 달리 dismiss가 없고, 조건이 참인 동안 레이아웃의 일부로 남습니다.",
|
|
4988
|
+
slug: "callout",
|
|
4989
|
+
exports: ["Callout"],
|
|
4990
|
+
props: { Callout: [
|
|
4991
|
+
{
|
|
4992
|
+
name: "tone",
|
|
4993
|
+
type: "\"info\" | \"success\" | \"warning\" | \"danger\" | \"neutral\"",
|
|
4994
|
+
default: "\"info\"",
|
|
4995
|
+
description: "고지의 성격"
|
|
4996
|
+
},
|
|
4997
|
+
{
|
|
4998
|
+
name: "title",
|
|
4999
|
+
type: "ReactNode",
|
|
5000
|
+
description: "한 줄 제목"
|
|
5001
|
+
},
|
|
5002
|
+
{
|
|
5003
|
+
name: "icon",
|
|
5004
|
+
type: "ReactNode",
|
|
5005
|
+
description: "tone 기본 글리프 대체. null이면 글리프 없음"
|
|
5006
|
+
},
|
|
5007
|
+
{
|
|
5008
|
+
name: "action",
|
|
5009
|
+
type: "ReactNode",
|
|
5010
|
+
description: "다음 한 걸음. 둘 이상이면 고지가 아니라 폼"
|
|
5011
|
+
},
|
|
5012
|
+
{
|
|
5013
|
+
name: "size",
|
|
5014
|
+
type: "\"sm\" | \"md\"",
|
|
5015
|
+
default: "\"md\"",
|
|
5016
|
+
description: "밀도"
|
|
5017
|
+
},
|
|
5018
|
+
{
|
|
5019
|
+
name: "children",
|
|
5020
|
+
type: "ReactNode",
|
|
5021
|
+
description: "본문"
|
|
5022
|
+
}
|
|
5023
|
+
] },
|
|
5024
|
+
usage: {
|
|
5025
|
+
bestPractices: ["조건이 참인 동안 계속 보여야 하는 안내에 사용합니다 (정리할 신규 N개, 표본 기반 수치)."],
|
|
5026
|
+
avoid: ["방금 일어난 일을 알릴 때는 Alert를 씁니다. Callout에는 dismiss가 없습니다."]
|
|
5027
|
+
},
|
|
5028
|
+
testDescribe: "Callout"
|
|
5029
|
+
},
|
|
5030
|
+
{
|
|
5031
|
+
name: "StatusDot",
|
|
5032
|
+
category: "core",
|
|
5033
|
+
description: "점 + 텍스트로 상태를 표현합니다. 라벨이 필수라 색만으로 상태를 말할 수 없습니다.",
|
|
5034
|
+
slug: "status-dot",
|
|
5035
|
+
exports: ["StatusDot"],
|
|
5036
|
+
props: { StatusDot: [
|
|
5037
|
+
{
|
|
5038
|
+
name: "tone",
|
|
5039
|
+
type: "\"neutral\" | \"muted\" | \"info\" | \"success\" | \"warning\" | \"danger\"",
|
|
5040
|
+
default: "\"neutral\"",
|
|
5041
|
+
description: "점 색상"
|
|
5042
|
+
},
|
|
5043
|
+
{
|
|
5044
|
+
name: "size",
|
|
5045
|
+
type: "\"sm\" | \"md\"",
|
|
5046
|
+
default: "\"md\"",
|
|
5047
|
+
description: "점과 글자 크기"
|
|
5048
|
+
},
|
|
5049
|
+
{
|
|
5050
|
+
name: "children",
|
|
5051
|
+
type: "ReactNode",
|
|
5052
|
+
required: true,
|
|
5053
|
+
description: "상태 라벨. 필수 — 색은 상태가 아닙니다"
|
|
5054
|
+
},
|
|
5055
|
+
{
|
|
5056
|
+
name: "hint",
|
|
5057
|
+
type: "string",
|
|
5058
|
+
description: "판정 기준 툴팁"
|
|
5059
|
+
}
|
|
5060
|
+
] },
|
|
5061
|
+
usage: {
|
|
5062
|
+
bestPractices: ["표의 상태 컬럼처럼 행마다 반복되는 자리에 씁니다. 점은 장식이고 의미는 텍스트가 담습니다."],
|
|
5063
|
+
avoid: ["사람이 붙인 라벨(태그, 카테고리)에는 Badge를 씁니다. StatusDot은 관측된 상태용입니다."]
|
|
5064
|
+
},
|
|
5065
|
+
testDescribe: "StatusDot"
|
|
5066
|
+
},
|
|
5067
|
+
{
|
|
5068
|
+
name: "CopyButton",
|
|
5069
|
+
category: "core",
|
|
5070
|
+
description: "값을 클립보드에 올리고 성공 여부를 알립니다. 클립보드 거부를 삼키지 않습니다.",
|
|
5071
|
+
slug: "copy-button",
|
|
5072
|
+
exports: ["CopyButton"],
|
|
5073
|
+
props: { CopyButton: [
|
|
5074
|
+
{
|
|
5075
|
+
name: "value",
|
|
5076
|
+
type: "string",
|
|
5077
|
+
required: true,
|
|
5078
|
+
description: "복사할 텍스트"
|
|
5079
|
+
},
|
|
5080
|
+
{
|
|
5081
|
+
name: "variant",
|
|
5082
|
+
type: "\"icon\" | \"text\"",
|
|
5083
|
+
default: "\"icon\"",
|
|
5084
|
+
description: "글리프만 / 글리프 + 라벨"
|
|
5085
|
+
},
|
|
5086
|
+
{
|
|
5087
|
+
name: "size",
|
|
5088
|
+
type: "\"sm\" | \"md\"",
|
|
5089
|
+
default: "\"md\"",
|
|
5090
|
+
description: "버튼 크기"
|
|
5091
|
+
},
|
|
5092
|
+
{
|
|
5093
|
+
name: "feedbackDuration",
|
|
5094
|
+
type: "number",
|
|
5095
|
+
default: "1500",
|
|
5096
|
+
description: "확인 상태 유지 시간 (ms)"
|
|
5097
|
+
},
|
|
5098
|
+
{
|
|
5099
|
+
name: "onCopy",
|
|
5100
|
+
type: "(ok: boolean) => void",
|
|
5101
|
+
description: "실제로 복사됐는지 — 비보안 컨텍스트·권한 거부에서 false"
|
|
5102
|
+
},
|
|
5103
|
+
{
|
|
5104
|
+
name: "labels",
|
|
5105
|
+
type: "CopyButtonLabels",
|
|
5106
|
+
description: "copy / copied / failed 문구"
|
|
5107
|
+
}
|
|
5108
|
+
] },
|
|
5109
|
+
testDescribe: "CopyButton"
|
|
5110
|
+
},
|
|
5111
|
+
{
|
|
5112
|
+
name: "SegmentedControl",
|
|
5113
|
+
category: "core",
|
|
5114
|
+
description: "선택지를 모두 보여주는 단일 선택 컨트롤. radio-group 프리미티브 위에 올려 화살표 키가 동작합니다.",
|
|
5115
|
+
slug: "segmented-control",
|
|
5116
|
+
exports: ["SegmentedControl"],
|
|
5117
|
+
props: { SegmentedControl: [
|
|
5118
|
+
{
|
|
5119
|
+
name: "options",
|
|
5120
|
+
type: "SegmentedControlOption<T>[]",
|
|
5121
|
+
required: true,
|
|
5122
|
+
description: "세그먼트 목록 (value / label / icon / badge / disabled)"
|
|
5123
|
+
},
|
|
5124
|
+
{
|
|
5125
|
+
name: "value",
|
|
5126
|
+
type: "T",
|
|
5127
|
+
required: true,
|
|
5128
|
+
description: "선택된 값"
|
|
5129
|
+
},
|
|
5130
|
+
{
|
|
5131
|
+
name: "onChange",
|
|
5132
|
+
type: "(value: T) => void",
|
|
5133
|
+
required: true,
|
|
5134
|
+
description: "선택 변경"
|
|
5135
|
+
},
|
|
5136
|
+
{
|
|
5137
|
+
name: "size",
|
|
5138
|
+
type: "\"sm\" | \"md\"",
|
|
5139
|
+
default: "\"md\"",
|
|
5140
|
+
description: "컨트롤 크기"
|
|
5141
|
+
},
|
|
5142
|
+
{
|
|
5143
|
+
name: "fullWidth",
|
|
5144
|
+
type: "boolean",
|
|
5145
|
+
default: "false",
|
|
5146
|
+
description: "컨테이너를 균등 분할"
|
|
5147
|
+
},
|
|
5148
|
+
{
|
|
5149
|
+
name: "disabled",
|
|
5150
|
+
type: "boolean",
|
|
5151
|
+
default: "false",
|
|
5152
|
+
description: "전체 비활성"
|
|
5153
|
+
},
|
|
5154
|
+
{
|
|
5155
|
+
name: "aria-label",
|
|
5156
|
+
type: "string",
|
|
5157
|
+
required: true,
|
|
5158
|
+
description: "radiogroup 이름. 필수"
|
|
5159
|
+
}
|
|
5160
|
+
] },
|
|
5161
|
+
usage: {
|
|
5162
|
+
bestPractices: ["정확히 하나가 참이고 선택지가 적을 때 씁니다 (이벤트 | 속성)."],
|
|
5163
|
+
avoid: ["여러 개를 동시에 켤 수 있으면 ToggleGroup을 씁니다.", "선택지가 많으면 Select를 씁니다."]
|
|
5164
|
+
},
|
|
5165
|
+
testDescribe: "SegmentedControl"
|
|
4951
5166
|
}
|
|
4952
5167
|
];
|
|
4953
5168
|
//#endregion
|
|
@@ -4967,6 +5182,14 @@ const shellMetas = [
|
|
|
4967
5182
|
required: true,
|
|
4968
5183
|
description: "FAQ 항목 배열. { id, question, answer }"
|
|
4969
5184
|
}] },
|
|
5185
|
+
ariaRole: "region",
|
|
5186
|
+
keyboardShortcuts: [{
|
|
5187
|
+
keys: "↑ ↓",
|
|
5188
|
+
action: "질문 사이 포커스 이동"
|
|
5189
|
+
}, {
|
|
5190
|
+
keys: "Enter / Space",
|
|
5191
|
+
action: "답변 펼치기 또는 접기"
|
|
5192
|
+
}],
|
|
4970
5193
|
dependencies: [{
|
|
4971
5194
|
slug: "disclosure",
|
|
4972
5195
|
category: "core"
|
|
@@ -5288,6 +5511,25 @@ const fields = [
|
|
|
5288
5511
|
slug: "kbd",
|
|
5289
5512
|
category: "core"
|
|
5290
5513
|
}],
|
|
5514
|
+
ariaRole: "menubar",
|
|
5515
|
+
keyboardShortcuts: [
|
|
5516
|
+
{
|
|
5517
|
+
keys: "← →",
|
|
5518
|
+
action: "상위 메뉴 사이 포커스 이동"
|
|
5519
|
+
},
|
|
5520
|
+
{
|
|
5521
|
+
keys: "Enter / Space / ↓",
|
|
5522
|
+
action: "메뉴 열기"
|
|
5523
|
+
},
|
|
5524
|
+
{
|
|
5525
|
+
keys: "↑ ↓",
|
|
5526
|
+
action: "열린 메뉴 항목 이동"
|
|
5527
|
+
},
|
|
5528
|
+
{
|
|
5529
|
+
keys: "Escape",
|
|
5530
|
+
action: "메뉴 닫고 트리거로 복귀"
|
|
5531
|
+
}
|
|
5532
|
+
],
|
|
5291
5533
|
testDescribe: "AppMenubar"
|
|
5292
5534
|
},
|
|
5293
5535
|
{
|
|
@@ -5299,7 +5541,7 @@ const fields = [
|
|
|
5299
5541
|
props: { CommandPalette: [
|
|
5300
5542
|
{
|
|
5301
5543
|
name: "commands",
|
|
5302
|
-
type: "Omit<
|
|
5544
|
+
type: "Omit<CommandDef, \"action\">[]",
|
|
5303
5545
|
required: true,
|
|
5304
5546
|
description: "커맨드 목록. { id, label, group, shortcut? }"
|
|
5305
5547
|
},
|
|
@@ -5317,7 +5559,7 @@ const fields = [
|
|
|
5317
5559
|
},
|
|
5318
5560
|
{
|
|
5319
5561
|
name: "onSelect",
|
|
5320
|
-
type: "(command: Omit<
|
|
5562
|
+
type: "(command: Omit<CommandDef, \"action\">) => void",
|
|
5321
5563
|
description: "커맨드 선택 핸들러"
|
|
5322
5564
|
},
|
|
5323
5565
|
{
|
|
@@ -5372,13 +5614,13 @@ const fields = [
|
|
|
5372
5614
|
props: { CommandPaletteTrigger: [
|
|
5373
5615
|
{
|
|
5374
5616
|
name: "commands",
|
|
5375
|
-
type: "Omit<
|
|
5617
|
+
type: "Omit<CommandDef, \"action\">[]",
|
|
5376
5618
|
required: true,
|
|
5377
5619
|
description: "커맨드 목록"
|
|
5378
5620
|
},
|
|
5379
5621
|
{
|
|
5380
5622
|
name: "onSelect",
|
|
5381
|
-
type: "(command: Omit<
|
|
5623
|
+
type: "(command: Omit<CommandDef, \"action\">) => void",
|
|
5382
5624
|
description: "커맨드 선택 핸들러"
|
|
5383
5625
|
},
|
|
5384
5626
|
{
|
|
@@ -5853,7 +6095,7 @@ const data = [
|
|
|
5853
6095
|
},
|
|
5854
6096
|
{
|
|
5855
6097
|
name: "onFilterChange",
|
|
5856
|
-
type: "(filterId: string, value: string | string[]) => void",
|
|
6098
|
+
type: "(filterId: string, value: string | string[] | boolean) => void",
|
|
5857
6099
|
description: "필터 변경 핸들러"
|
|
5858
6100
|
},
|
|
5859
6101
|
{
|
|
@@ -6044,7 +6286,7 @@ const filters = [
|
|
|
6044
6286
|
},
|
|
6045
6287
|
{
|
|
6046
6288
|
name: "onSubmit",
|
|
6047
|
-
type: "(values: { email
|
|
6289
|
+
type: "(values: { email: string; password: string; confirmPassword?: string; rememberMe?: boolean; mode: \"login\" | \"signup\" }) => void",
|
|
6048
6290
|
description: "제출 핸들러"
|
|
6049
6291
|
},
|
|
6050
6292
|
{
|
|
@@ -6209,7 +6451,7 @@ const filters = [
|
|
|
6209
6451
|
},
|
|
6210
6452
|
{
|
|
6211
6453
|
name: "onSubmit",
|
|
6212
|
-
type: "(values: { title
|
|
6454
|
+
type: "(values: { title: string; description: string; file: File | null }) => void",
|
|
6213
6455
|
description: "제출 핸들러"
|
|
6214
6456
|
},
|
|
6215
6457
|
{
|
|
@@ -6806,7 +7048,7 @@ const filters = [
|
|
|
6806
7048
|
},
|
|
6807
7049
|
{
|
|
6808
7050
|
name: "onSave",
|
|
6809
|
-
type: "(report: { name
|
|
7051
|
+
type: "(report: { name: string; description: string; chartType: ReportBuilderChartType; dataSourceId: string }) => void",
|
|
6810
7052
|
description: "저장 콜백"
|
|
6811
7053
|
},
|
|
6812
7054
|
{
|
|
@@ -7664,7 +7906,7 @@ const filters = [
|
|
|
7664
7906
|
props: { AsyncCombobox: [
|
|
7665
7907
|
{
|
|
7666
7908
|
name: "onSearch",
|
|
7667
|
-
type: "(
|
|
7909
|
+
type: "(query: string) => Promise<string[]>",
|
|
7668
7910
|
required: true,
|
|
7669
7911
|
description: "검색 콜백"
|
|
7670
7912
|
},
|
|
@@ -7684,7 +7926,11 @@ const filters = [
|
|
|
7684
7926
|
name: "placeholder",
|
|
7685
7927
|
type: "string",
|
|
7686
7928
|
default: "\"Search…\"",
|
|
7687
|
-
description: "플레이스홀더"
|
|
7929
|
+
description: "플레이스홀더",
|
|
7930
|
+
deprecated: {
|
|
7931
|
+
since: "1.9.0",
|
|
7932
|
+
replacement: "labels.placeholder"
|
|
7933
|
+
}
|
|
7688
7934
|
},
|
|
7689
7935
|
{
|
|
7690
7936
|
name: "onSelect",
|
|
@@ -7699,7 +7945,11 @@ const filters = [
|
|
|
7699
7945
|
{
|
|
7700
7946
|
name: "loadingText",
|
|
7701
7947
|
type: "string",
|
|
7702
|
-
description: "로딩
|
|
7948
|
+
description: "로딩 문구",
|
|
7949
|
+
deprecated: {
|
|
7950
|
+
since: "1.9.0",
|
|
7951
|
+
replacement: "labels.loading"
|
|
7952
|
+
}
|
|
7703
7953
|
}
|
|
7704
7954
|
] },
|
|
7705
7955
|
dependencies: [{
|
|
@@ -7735,6 +7985,14 @@ const filters = [
|
|
|
7735
7985
|
description: "커스텀 CSS 클래스"
|
|
7736
7986
|
}
|
|
7737
7987
|
] },
|
|
7988
|
+
ariaRole: "tablist",
|
|
7989
|
+
keyboardShortcuts: [{
|
|
7990
|
+
keys: "↑ ↓",
|
|
7991
|
+
action: "세로 탭 사이 이동 및 선택"
|
|
7992
|
+
}, {
|
|
7993
|
+
keys: "Home / End",
|
|
7994
|
+
action: "첫 번째 또는 마지막 탭으로 이동"
|
|
7995
|
+
}],
|
|
7738
7996
|
dependencies: [{
|
|
7739
7997
|
slug: "tabs",
|
|
7740
7998
|
category: "core"
|
|
@@ -7807,12 +8065,30 @@ const filters = [
|
|
|
7807
8065
|
default: "24",
|
|
7808
8066
|
description: "들여쓰기 크기 (px)"
|
|
7809
8067
|
},
|
|
8068
|
+
{
|
|
8069
|
+
name: "getRowLabel",
|
|
8070
|
+
type: "(node: TreeNode<T>) => string",
|
|
8071
|
+
description: "행별 펼침/접기 컨트롤의 접근 가능한 이름 생성기"
|
|
8072
|
+
},
|
|
8073
|
+
{
|
|
8074
|
+
name: "aria-label",
|
|
8075
|
+
type: "string",
|
|
8076
|
+
description: "표의 접근 가능한 이름"
|
|
8077
|
+
},
|
|
7810
8078
|
{
|
|
7811
8079
|
name: "className",
|
|
7812
8080
|
type: "string",
|
|
7813
8081
|
description: "커스텀 CSS 클래스"
|
|
7814
8082
|
}
|
|
7815
8083
|
] },
|
|
8084
|
+
ariaRole: "table",
|
|
8085
|
+
keyboardShortcuts: [{
|
|
8086
|
+
keys: "Tab",
|
|
8087
|
+
action: "펼침/접기 컨트롤 사이 이동"
|
|
8088
|
+
}, {
|
|
8089
|
+
keys: "Enter / Space",
|
|
8090
|
+
action: "하위 행 펼치기 또는 접기"
|
|
8091
|
+
}],
|
|
7816
8092
|
dependencies: [{
|
|
7817
8093
|
slug: "data-table",
|
|
7818
8094
|
category: "shells"
|
|
@@ -7876,7 +8152,7 @@ const filters = [
|
|
|
7876
8152
|
},
|
|
7877
8153
|
{
|
|
7878
8154
|
name: "onDragEnd",
|
|
7879
|
-
type: "(itemId,
|
|
8155
|
+
type: "(itemId: string, fromColumnId: string, toColumnId: string, toIndex: number) => void",
|
|
7880
8156
|
required: true,
|
|
7881
8157
|
description: "드래그 완료 콜백"
|
|
7882
8158
|
},
|
|
@@ -8112,7 +8388,7 @@ const filters = [
|
|
|
8112
8388
|
},
|
|
8113
8389
|
{
|
|
8114
8390
|
name: "onImport",
|
|
8115
|
-
type: "(mapping, data) => void",
|
|
8391
|
+
type: "(mapping: Record<string, string>, data: string[][]) => void",
|
|
8116
8392
|
required: true,
|
|
8117
8393
|
description: "임포트 확정 콜백"
|
|
8118
8394
|
},
|
|
@@ -8164,12 +8440,32 @@ const filters = [
|
|
|
8164
8440
|
default: "\"Menu\"",
|
|
8165
8441
|
description: "트리거 버튼 텍스트"
|
|
8166
8442
|
},
|
|
8443
|
+
{
|
|
8444
|
+
name: "aria-label",
|
|
8445
|
+
type: "string",
|
|
8446
|
+
description: "열린 메가 메뉴 탐색 영역의 접근 가능한 이름"
|
|
8447
|
+
},
|
|
8167
8448
|
{
|
|
8168
8449
|
name: "className",
|
|
8169
8450
|
type: "string",
|
|
8170
8451
|
description: "커스텀 CSS 클래스"
|
|
8171
8452
|
}
|
|
8172
8453
|
] },
|
|
8454
|
+
ariaRole: "navigation",
|
|
8455
|
+
keyboardShortcuts: [
|
|
8456
|
+
{
|
|
8457
|
+
keys: "Enter / Space",
|
|
8458
|
+
action: "메가 메뉴 열기"
|
|
8459
|
+
},
|
|
8460
|
+
{
|
|
8461
|
+
keys: "Tab",
|
|
8462
|
+
action: "메뉴 링크와 액션 사이 이동"
|
|
8463
|
+
},
|
|
8464
|
+
{
|
|
8465
|
+
keys: "Escape",
|
|
8466
|
+
action: "메가 메뉴 닫기"
|
|
8467
|
+
}
|
|
8468
|
+
],
|
|
8173
8469
|
dependencies: [{
|
|
8174
8470
|
slug: "popover",
|
|
8175
8471
|
category: "core"
|
|
@@ -8766,6 +9062,16 @@ const messages = [
|
|
|
8766
9062
|
slug: "time-series-panel",
|
|
8767
9063
|
exports: ["TimeSeriesPanel"],
|
|
8768
9064
|
props: { TimeSeriesPanel: [
|
|
9065
|
+
{
|
|
9066
|
+
name: "title",
|
|
9067
|
+
type: "ReactNode",
|
|
9068
|
+
description: "패널 제목. aria-label이 없으면 region 이름으로 연결됩니다"
|
|
9069
|
+
},
|
|
9070
|
+
{
|
|
9071
|
+
name: "description",
|
|
9072
|
+
type: "ReactNode",
|
|
9073
|
+
description: "패널 보조 설명"
|
|
9074
|
+
},
|
|
8769
9075
|
{
|
|
8770
9076
|
name: "data",
|
|
8771
9077
|
type: "TimeSeriesPoint[]",
|
|
@@ -8812,6 +9118,11 @@ const messages = [
|
|
|
8812
9118
|
type: "number",
|
|
8813
9119
|
default: "280",
|
|
8814
9120
|
description: "차트 높이"
|
|
9121
|
+
},
|
|
9122
|
+
{
|
|
9123
|
+
name: "aria-label",
|
|
9124
|
+
type: "string",
|
|
9125
|
+
description: "제목 대신 사용할 패널 region의 접근 가능한 이름"
|
|
8815
9126
|
}
|
|
8816
9127
|
] },
|
|
8817
9128
|
ariaRole: "region",
|
|
@@ -8995,9 +9306,355 @@ const messages = [
|
|
|
8995
9306
|
] },
|
|
8996
9307
|
ariaRole: "complementary",
|
|
8997
9308
|
testDescribe: "FieldSidebar"
|
|
9309
|
+
},
|
|
9310
|
+
{
|
|
9311
|
+
name: "InspectorLayout",
|
|
9312
|
+
category: "shells",
|
|
9313
|
+
description: "목록과 인스펙터의 2-pane 레이아웃. 넓으면 밀어내고(push) 좁으면 덮으며(overlay), 닫을 때 포커스를 열었던 자리로 되돌립니다.",
|
|
9314
|
+
slug: "inspector-layout",
|
|
9315
|
+
exports: ["InspectorLayout"],
|
|
9316
|
+
props: { InspectorLayout: [
|
|
9317
|
+
{
|
|
9318
|
+
name: "children",
|
|
9319
|
+
type: "ReactNode",
|
|
9320
|
+
required: true,
|
|
9321
|
+
description: "목록. 인스펙터가 열려도 마운트와 스크롤을 유지"
|
|
9322
|
+
},
|
|
9323
|
+
{
|
|
9324
|
+
name: "inspector",
|
|
9325
|
+
type: "ReactNode",
|
|
9326
|
+
description: "인스펙터 내용. 닫혀 있으면 렌더하지 않음"
|
|
9327
|
+
},
|
|
9328
|
+
{
|
|
9329
|
+
name: "open",
|
|
9330
|
+
type: "boolean",
|
|
9331
|
+
required: true,
|
|
9332
|
+
description: "열림"
|
|
9333
|
+
},
|
|
9334
|
+
{
|
|
9335
|
+
name: "onClose",
|
|
9336
|
+
type: "() => void",
|
|
9337
|
+
required: true,
|
|
9338
|
+
description: "닫기"
|
|
9339
|
+
},
|
|
9340
|
+
{
|
|
9341
|
+
name: "title",
|
|
9342
|
+
type: "ReactNode",
|
|
9343
|
+
description: "인스펙터 제목"
|
|
9344
|
+
},
|
|
9345
|
+
{
|
|
9346
|
+
name: "description",
|
|
9347
|
+
type: "ReactNode",
|
|
9348
|
+
description: "제목 아래 한 줄"
|
|
9349
|
+
},
|
|
9350
|
+
{
|
|
9351
|
+
name: "actions",
|
|
9352
|
+
type: "ReactNode",
|
|
9353
|
+
description: "닫기 버튼 옆 컨트롤"
|
|
9354
|
+
},
|
|
9355
|
+
{
|
|
9356
|
+
name: "footer",
|
|
9357
|
+
type: "ReactNode",
|
|
9358
|
+
description: "인스펙터 하단"
|
|
9359
|
+
},
|
|
9360
|
+
{
|
|
9361
|
+
name: "breakpoint",
|
|
9362
|
+
type: "\"lg\" | \"xl\" | \"2xl\"",
|
|
9363
|
+
default: "\"xl\"",
|
|
9364
|
+
description: "이 폭 이상이면 push"
|
|
9365
|
+
},
|
|
9366
|
+
{
|
|
9367
|
+
name: "width",
|
|
9368
|
+
type: "\"sm\" | \"md\" | \"lg\"",
|
|
9369
|
+
default: "\"md\"",
|
|
9370
|
+
description: "push 레이아웃에서의 인스펙터 폭"
|
|
9371
|
+
}
|
|
9372
|
+
] },
|
|
9373
|
+
usage: {
|
|
9374
|
+
bestPractices: ["목록 → 상세 → 목록 왕복이 잦은 화면에 씁니다. 다이얼로그는 목록을 가져가 버립니다."],
|
|
9375
|
+
avoid: ["확인이 필요한 파괴적 작업에는 ConfirmDialog를 씁니다.", "포커스 복귀를 직접 다루지 않습니다. Flyout이 소유하며, 부모가 겹쳐 잡으면 패널을 열었던 요소로 오인합니다."]
|
|
9376
|
+
},
|
|
9377
|
+
testDescribe: "InspectorLayout"
|
|
9378
|
+
},
|
|
9379
|
+
{
|
|
9380
|
+
name: "QueryFilterBar",
|
|
9381
|
+
category: "shells",
|
|
9382
|
+
description: "QueryBar와 필터 버튼이 하나의 Query를 공유합니다. 버튼은 상태를 갖지 않고 Query를 읽어 활성 여부를 계산합니다.",
|
|
9383
|
+
slug: "query-filter-bar",
|
|
9384
|
+
exports: ["QueryFilterBar", "hasActiveQuery"],
|
|
9385
|
+
props: { QueryFilterBar: [
|
|
9386
|
+
{
|
|
9387
|
+
name: "value",
|
|
9388
|
+
type: "Query",
|
|
9389
|
+
required: true,
|
|
9390
|
+
description: "필터 상태 전부"
|
|
9391
|
+
},
|
|
9392
|
+
{
|
|
9393
|
+
name: "onChange",
|
|
9394
|
+
type: "(query: Query) => void",
|
|
9395
|
+
required: true,
|
|
9396
|
+
description: "Query 변경"
|
|
9397
|
+
},
|
|
9398
|
+
{
|
|
9399
|
+
name: "filters",
|
|
9400
|
+
type: "QueryFilterDef[]",
|
|
9401
|
+
required: true,
|
|
9402
|
+
description: "필터 컨트롤 정의 (is / field_value_selection / field_value_toggle)"
|
|
9403
|
+
},
|
|
9404
|
+
{
|
|
9405
|
+
name: "fields",
|
|
9406
|
+
type: "QueryField[]",
|
|
9407
|
+
description: "텍스트 입력 자동완성"
|
|
9408
|
+
},
|
|
9409
|
+
{
|
|
9410
|
+
name: "actions",
|
|
9411
|
+
type: "ReactNode",
|
|
9412
|
+
description: "필터 행 끝 슬롯"
|
|
9413
|
+
},
|
|
9414
|
+
{
|
|
9415
|
+
name: "showClauses",
|
|
9416
|
+
type: "boolean",
|
|
9417
|
+
default: "true",
|
|
9418
|
+
description: "절을 제거 가능한 칩으로 표시"
|
|
9419
|
+
},
|
|
9420
|
+
{
|
|
9421
|
+
name: "live",
|
|
9422
|
+
type: "boolean",
|
|
9423
|
+
default: "false",
|
|
9424
|
+
description: "매 입력마다 커밋"
|
|
9425
|
+
},
|
|
9426
|
+
{
|
|
9427
|
+
name: "disabled",
|
|
9428
|
+
type: "boolean",
|
|
9429
|
+
default: "false",
|
|
9430
|
+
description: "전체 비활성"
|
|
9431
|
+
},
|
|
9432
|
+
{
|
|
9433
|
+
name: "queryBarLabels",
|
|
9434
|
+
type: "QueryBarLabels",
|
|
9435
|
+
description: "QueryBar로 통과되는 나머지 문구. placeholder/ariaLabel은 labels가 이깁니다"
|
|
9436
|
+
}
|
|
9437
|
+
] },
|
|
9438
|
+
usage: {
|
|
9439
|
+
bestPractices: ["URL에 Query 한 줄만 실어 필터 상태 전체를 공유 가능하게 만듭니다."],
|
|
9440
|
+
avoid: ["필터 버튼이 자체 상태를 갖게 하지 않습니다. 진실 원천이 둘로 갈라집니다."]
|
|
9441
|
+
},
|
|
9442
|
+
testDescribe: "QueryFilterBar"
|
|
9443
|
+
},
|
|
9444
|
+
{
|
|
9445
|
+
name: "CatalogFrame",
|
|
9446
|
+
category: "shells",
|
|
9447
|
+
description: "카탈로그 목록의 공통 뼈대. 헤더·통계·고지·필터·인스펙터·페이지네이션·일괄 작업과 빈/에러 상태를 담고, 필터나 페이지가 바뀌면 선택을 비웁니다.",
|
|
9448
|
+
slug: "catalog-frame",
|
|
9449
|
+
exports: [
|
|
9450
|
+
"CatalogFrame",
|
|
9451
|
+
"CatalogRowActions",
|
|
9452
|
+
"CatalogCellControls"
|
|
9453
|
+
],
|
|
9454
|
+
props: {
|
|
9455
|
+
CatalogFrame: [
|
|
9456
|
+
{
|
|
9457
|
+
name: "children",
|
|
9458
|
+
type: "ReactNode",
|
|
9459
|
+
required: true,
|
|
9460
|
+
description: "테이블. 빈/에러 상태에서는 대체됨"
|
|
9461
|
+
},
|
|
9462
|
+
{
|
|
9463
|
+
name: "isEmpty",
|
|
9464
|
+
type: "boolean",
|
|
9465
|
+
required: true,
|
|
9466
|
+
description: "테이블이 0행인지"
|
|
9467
|
+
},
|
|
9468
|
+
{
|
|
9469
|
+
name: "query",
|
|
9470
|
+
type: "Query",
|
|
9471
|
+
required: true,
|
|
9472
|
+
description: "필터 상태"
|
|
9473
|
+
},
|
|
9474
|
+
{
|
|
9475
|
+
name: "onQueryChange",
|
|
9476
|
+
type: "(query: Query) => void",
|
|
9477
|
+
required: true,
|
|
9478
|
+
description: "Query 변경"
|
|
9479
|
+
},
|
|
9480
|
+
{
|
|
9481
|
+
name: "filters",
|
|
9482
|
+
type: "QueryFilterDef[]",
|
|
9483
|
+
description: "필터 정의"
|
|
9484
|
+
},
|
|
9485
|
+
{
|
|
9486
|
+
name: "stats",
|
|
9487
|
+
type: "StatCardType[]",
|
|
9488
|
+
description: "통계 카드"
|
|
9489
|
+
},
|
|
9490
|
+
{
|
|
9491
|
+
name: "onStatClick",
|
|
9492
|
+
type: "(stat: StatCardType) => void",
|
|
9493
|
+
description: "카드 클릭 = 필터"
|
|
9494
|
+
},
|
|
9495
|
+
{
|
|
9496
|
+
name: "notice",
|
|
9497
|
+
type: "ReactNode",
|
|
9498
|
+
description: "목록 위 고지"
|
|
9499
|
+
},
|
|
9500
|
+
{
|
|
9501
|
+
name: "emptyActions",
|
|
9502
|
+
type: "ReactNode",
|
|
9503
|
+
description: "필터 없는 빈 상태의 다음 행동 (필터된 빈 상태는 필터 지우기 유지)"
|
|
9504
|
+
},
|
|
9505
|
+
{
|
|
9506
|
+
name: "header",
|
|
9507
|
+
type: "ReactNode",
|
|
9508
|
+
description: "헤더 슬롯"
|
|
9509
|
+
},
|
|
9510
|
+
{
|
|
9511
|
+
name: "actions",
|
|
9512
|
+
type: "ReactNode",
|
|
9513
|
+
description: "액션 슬롯"
|
|
9514
|
+
},
|
|
9515
|
+
{
|
|
9516
|
+
name: "toolbar",
|
|
9517
|
+
type: "ReactNode",
|
|
9518
|
+
description: "통계와 필터 사이 컨트롤 (스코프 세그먼트 등)"
|
|
9519
|
+
},
|
|
9520
|
+
{
|
|
9521
|
+
name: "inspector",
|
|
9522
|
+
type: "ReactNode",
|
|
9523
|
+
description: "인스펙터 내용"
|
|
9524
|
+
},
|
|
9525
|
+
{
|
|
9526
|
+
name: "inspectorOpen",
|
|
9527
|
+
type: "boolean",
|
|
9528
|
+
required: true,
|
|
9529
|
+
description: "인스펙터 열림"
|
|
9530
|
+
},
|
|
9531
|
+
{
|
|
9532
|
+
name: "onInspectorClose",
|
|
9533
|
+
type: "() => void",
|
|
9534
|
+
required: true,
|
|
9535
|
+
description: "인스펙터 닫기"
|
|
9536
|
+
},
|
|
9537
|
+
{
|
|
9538
|
+
name: "inspectorTitle",
|
|
9539
|
+
type: "ReactNode",
|
|
9540
|
+
description: "인스펙터 제목"
|
|
9541
|
+
},
|
|
9542
|
+
{
|
|
9543
|
+
name: "inspectorDescription",
|
|
9544
|
+
type: "ReactNode",
|
|
9545
|
+
description: "인스펙터 설명"
|
|
9546
|
+
},
|
|
9547
|
+
{
|
|
9548
|
+
name: "inspectorActions",
|
|
9549
|
+
type: "ReactNode",
|
|
9550
|
+
description: "인스펙터 헤더 컨트롤"
|
|
9551
|
+
},
|
|
9552
|
+
{
|
|
9553
|
+
name: "inspectorFooter",
|
|
9554
|
+
type: "ReactNode",
|
|
9555
|
+
description: "인스펙터 하단"
|
|
9556
|
+
},
|
|
9557
|
+
{
|
|
9558
|
+
name: "inspectorWidth",
|
|
9559
|
+
type: "\"sm\" | \"md\" | \"lg\"",
|
|
9560
|
+
description: "push 레이아웃 폭"
|
|
9561
|
+
},
|
|
9562
|
+
{
|
|
9563
|
+
name: "page",
|
|
9564
|
+
type: "number",
|
|
9565
|
+
default: "1",
|
|
9566
|
+
description: "현재 페이지"
|
|
9567
|
+
},
|
|
9568
|
+
{
|
|
9569
|
+
name: "pageSize",
|
|
9570
|
+
type: "number",
|
|
9571
|
+
default: "50",
|
|
9572
|
+
description: "페이지 크기"
|
|
9573
|
+
},
|
|
9574
|
+
{
|
|
9575
|
+
name: "totalCount",
|
|
9576
|
+
type: "number",
|
|
9577
|
+
description: "필터 반영 총 개수"
|
|
9578
|
+
},
|
|
9579
|
+
{
|
|
9580
|
+
name: "onPageChange",
|
|
9581
|
+
type: "(page: number) => void",
|
|
9582
|
+
description: "페이지 변경"
|
|
9583
|
+
},
|
|
9584
|
+
{
|
|
9585
|
+
name: "selectedKeys",
|
|
9586
|
+
type: "string[]",
|
|
9587
|
+
description: "선택된 행"
|
|
9588
|
+
},
|
|
9589
|
+
{
|
|
9590
|
+
name: "onSelectionChange",
|
|
9591
|
+
type: "(keys: string[]) => void",
|
|
9592
|
+
description: "선택 변경. 필터·페이지가 바뀌면 프레임이 비웁니다"
|
|
9593
|
+
},
|
|
9594
|
+
{
|
|
9595
|
+
name: "bulkActions",
|
|
9596
|
+
type: "FloatingAction[]",
|
|
9597
|
+
description: "일괄 작업"
|
|
9598
|
+
},
|
|
9599
|
+
{
|
|
9600
|
+
name: "onBulkAction",
|
|
9601
|
+
type: "(actionId: string) => void",
|
|
9602
|
+
description: "일괄 작업 실행"
|
|
9603
|
+
},
|
|
9604
|
+
{
|
|
9605
|
+
name: "error",
|
|
9606
|
+
type: "ReactNode",
|
|
9607
|
+
description: "읽기 실패. 빈 목록과 다른 답"
|
|
9608
|
+
},
|
|
9609
|
+
{
|
|
9610
|
+
name: "onRetry",
|
|
9611
|
+
type: "() => void",
|
|
9612
|
+
description: "재시도"
|
|
9613
|
+
},
|
|
9614
|
+
{
|
|
9615
|
+
name: "labels",
|
|
9616
|
+
type: "CatalogFrameLabels",
|
|
9617
|
+
description: "빈/필터된 빈/에러 문구"
|
|
9618
|
+
}
|
|
9619
|
+
],
|
|
9620
|
+
CatalogRowActions: [
|
|
9621
|
+
{
|
|
9622
|
+
name: "item",
|
|
9623
|
+
type: "T",
|
|
9624
|
+
required: true,
|
|
9625
|
+
description: "이 행의 항목"
|
|
9626
|
+
},
|
|
9627
|
+
{
|
|
9628
|
+
name: "actions",
|
|
9629
|
+
type: "CatalogRowAction<T>[]",
|
|
9630
|
+
required: true,
|
|
9631
|
+
description: "행 액션"
|
|
9632
|
+
},
|
|
9633
|
+
{
|
|
9634
|
+
name: "visibleCount",
|
|
9635
|
+
type: "number",
|
|
9636
|
+
default: "2",
|
|
9637
|
+
description: "오버플로 전에 노출할 개수. available 필터링 후에 적용됨"
|
|
9638
|
+
},
|
|
9639
|
+
{
|
|
9640
|
+
name: "labels",
|
|
9641
|
+
type: "CatalogRowActionsLabels",
|
|
9642
|
+
description: "그룹·오버플로 라벨"
|
|
9643
|
+
}
|
|
9644
|
+
],
|
|
9645
|
+
CatalogCellControls: [{
|
|
9646
|
+
name: "children",
|
|
9647
|
+
type: "ReactNode",
|
|
9648
|
+
required: true,
|
|
9649
|
+
description: "행 클릭으로 새면 안 되는 셀 컨트롤"
|
|
9650
|
+
}]
|
|
9651
|
+
},
|
|
9652
|
+
usage: {
|
|
9653
|
+
bestPractices: ["카탈로그 성격의 목록 화면은 이 프레임 위에 컬럼 정의와 labels만 얹습니다."],
|
|
9654
|
+
avoid: ["선택 초기화를 호출자에게 맡기지 않습니다 — 보이지 않는 행에 일괄 작업이 적용됩니다."]
|
|
9655
|
+
},
|
|
9656
|
+
testDescribe: "CatalogFrame"
|
|
8998
9657
|
}
|
|
8999
9658
|
];
|
|
9000
9659
|
//#endregion
|
|
9001
9660
|
export { coreMetas, shellMetas, visualMetas };
|
|
9002
|
-
|
|
9003
|
-
//# sourceMappingURL=meta.js.map
|