@wipco/sdui 0.1.0 → 0.3.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.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +27 -0
  3. package/dist/chunk-4SU2KYPU.js +59 -0
  4. package/dist/chunk-56KKWLNI.js +186 -0
  5. package/dist/chunk-7Y4J7EOK.js +115 -0
  6. package/dist/chunk-APCXOCAO.js +110 -0
  7. package/dist/chunk-AROOQ5W6.js +119 -0
  8. package/dist/chunk-DGPRX4MU.js +251 -0
  9. package/dist/chunk-IL2KS4WS.js +25 -0
  10. package/dist/chunk-KADFN76X.js +541 -0
  11. package/dist/chunk-KBHI3IUR.js +40 -0
  12. package/dist/chunk-LZJTKVMO.js +767 -0
  13. package/dist/chunk-MOIU7MUA.js +282 -0
  14. package/dist/chunk-MSAV4J4I.js +77 -0
  15. package/dist/chunk-OOHHW4K4.js +159 -0
  16. package/dist/chunk-Q6SBH63R.js +190 -0
  17. package/dist/chunk-QZQDHSMD.js +78 -0
  18. package/dist/chunk-RH7ESUE6.js +309 -0
  19. package/dist/chunk-SEBPBUZR.js +260 -0
  20. package/dist/chunk-USKRM22W.js +39 -0
  21. package/dist/chunk-WNYWTFGW.js +61 -0
  22. package/dist/chunk-WVRCIVAD.js +72 -0
  23. package/dist/chunk-YJMD6MOE.js +404 -0
  24. package/dist/chunk-ZNITJ4KK.js +433 -0
  25. package/dist/chunk-ZQR3ULVH.js +193 -0
  26. package/dist/chunk-ZUCI34QY.js +1290 -0
  27. package/dist/index.d.ts +391 -79
  28. package/dist/index.js +277 -758
  29. package/dist/meta.d.ts +10 -2
  30. package/dist/meta.js +268 -27
  31. package/dist/rich.js +3 -2
  32. package/dist/styles.css +334 -13
  33. package/dist/widgets/AutocompleteField.d.ts +96 -0
  34. package/dist/widgets/AutocompleteField.js +3 -0
  35. package/dist/widgets/ColumnBoard.d.ts +47 -0
  36. package/dist/widgets/ColumnBoard.js +2 -0
  37. package/dist/widgets/DiffView.d.ts +30 -0
  38. package/dist/widgets/DiffView.js +2 -0
  39. package/dist/widgets/Disclosure.d.ts +20 -0
  40. package/dist/widgets/Disclosure.js +2 -0
  41. package/dist/widgets/EventCalendar.d.ts +59 -0
  42. package/dist/widgets/EventCalendar.js +2 -0
  43. package/dist/widgets/ImageLightbox.d.ts +25 -0
  44. package/dist/widgets/ImageLightbox.js +2 -0
  45. package/dist/widgets/InlineEdit.d.ts +23 -0
  46. package/dist/widgets/InlineEdit.js +2 -0
  47. package/dist/widgets/JsonField.d.ts +24 -0
  48. package/dist/widgets/JsonField.js +2 -0
  49. package/dist/widgets/LiveClock.d.ts +21 -0
  50. package/dist/widgets/LiveClock.js +1 -0
  51. package/dist/widgets/OrgChart.d.ts +32 -0
  52. package/dist/widgets/OrgChart.js +2 -0
  53. package/dist/widgets/PeriodFilter.d.ts +48 -0
  54. package/dist/widgets/PeriodFilter.js +2 -0
  55. package/dist/widgets/PrintSheet.d.ts +23 -0
  56. package/dist/widgets/PrintSheet.js +2 -0
  57. package/dist/widgets/SearchableMultiPicker.d.ts +29 -0
  58. package/dist/widgets/SearchableMultiPicker.js +3 -0
  59. package/dist/widgets/SecureScreen.d.ts +25 -0
  60. package/dist/widgets/SecureScreen.js +2 -0
  61. package/dist/widgets/StackedMeter.d.ts +26 -0
  62. package/dist/widgets/StackedMeter.js +1 -0
  63. package/dist/widgets/Strip.d.ts +20 -0
  64. package/dist/widgets/Strip.js +1 -0
  65. package/dist/widgets/SummaryTable.d.ts +31 -0
  66. package/dist/widgets/SummaryTable.js +1 -0
  67. package/dist/widgets/TagMultiSelect.d.ts +25 -0
  68. package/dist/widgets/TagMultiSelect.js +2 -0
  69. package/dist/widgets/Timeline.d.ts +30 -0
  70. package/dist/widgets/Timeline.js +3 -0
  71. package/dist/widgets/TreePicker.d.ts +21 -0
  72. package/dist/widgets/TreePicker.js +3 -0
  73. package/dist/widgets/TreeView.d.ts +26 -0
  74. package/dist/widgets/TreeView.js +2 -0
  75. package/dist/widgets/index.d.ts +76 -0
  76. package/dist/widgets/index.js +69 -0
  77. package/package.json +93 -3
  78. package/dist/chunk-AR2JYE75.js +0 -889
package/dist/meta.d.ts CHANGED
@@ -29,7 +29,7 @@ type SduiPropKind = 'string' | 'number' | 'boolean'
29
29
  | 'enum'
30
30
  /** CSS 색상 문자열 */
31
31
  | 'color'
32
- /** `ICON_PATHS`에 등록된 아이콘 이름 */
32
+ /** `ICON_NODES`에 등록된 아이콘 이름 */
33
33
  | 'icon'
34
34
  /** ReactNode 자리 — 문자열이거나 `slots.<name>`으로 넘긴 노드 트리 */
35
35
  | 'node'
@@ -81,6 +81,14 @@ interface SduiPropMeta {
81
81
  eventArg?: string;
82
82
  /** kind가 'array'일 때 원소의 필드 정의 */
83
83
  item?: readonly SduiPropMeta[];
84
+ /**
85
+ * kind가 'array'이고 원소가 **구조체가 아니라 값 하나**일 때 그 값의 종류
86
+ * (예: `SearchResults.pageSizes`는 number[]다).
87
+ *
88
+ * 이때 `item`은 빈 배열로 둔다 — "필드가 없다"가 곧 스칼라라는 뜻이고,
89
+ * 편집기는 행 편집기 대신 `itemKind` 하나짜리 값 목록 편집기를 그리면 된다.
90
+ */
91
+ itemKind?: SduiPropKind;
84
92
  /** kind가 'object'일 때 필드 정의. 없으면 자유 형식(JSON 편집기) */
85
93
  fields?: readonly SduiPropMeta[];
86
94
  group?: SduiPropGroup;
@@ -140,7 +148,7 @@ interface SduiComponentMeta {
140
148
  /** 팔레트에 보일 한국어 표시명 */
141
149
  label: string;
142
150
  category: SduiCategory;
143
- /** `ICON_PATHS`에 등록된 이름 (없는 이름이면 Icon이 점으로 대체한다) */
151
+ /** `ICON_NODES`에 등록된 이름 (없는 이름이면 Icon이 아무것도 그리지 않는다) */
144
152
  icon: string;
145
153
  /** 한국어 한 줄 설명 */
146
154
  description: string;
package/dist/meta.js CHANGED
@@ -219,7 +219,7 @@ var PageHeadMeta = {
219
219
  name: "PageHead",
220
220
  label: "\uD398\uC774\uC9C0 \uD5E4\uB354",
221
221
  category: "layout",
222
- icon: "home",
222
+ icon: "flag",
223
223
  description: "\uD398\uC774\uC9C0 \uC0C1\uB2E8\uC758 \uC81C\uBAA9\xB7\uBD80\uC81C\xB7\uC561\uC158 \uC601\uC5ED.",
224
224
  props: [
225
225
  { name: "title", kind: "node", label: "\uC81C\uBAA9", slot: true, group: "content" },
@@ -362,6 +362,14 @@ var TabsMeta = {
362
362
  ],
363
363
  group: "appearance"
364
364
  },
365
+ {
366
+ name: "onChrome",
367
+ kind: "boolean",
368
+ label: "\uB124\uC774\uBE44 \uD06C\uB86C \uC704",
369
+ default: false,
370
+ description: "\uB124\uC774\uBE44 \uD0D1\uBC14 \uC704\uC5D0 \uC5B9\uB294 \uD0ED \u2014 \uBC1D\uC740 \uAE00\uC790\uC5D0 \uBE68\uAC04 \uC778\uB514\uCF00\uC774\uD130\uB85C \uB4A4\uC9D1\uB294\uB2E4.",
371
+ group: "appearance"
372
+ },
365
373
  styleProp,
366
374
  classNameProp
367
375
  ],
@@ -434,8 +442,7 @@ var ButtonMeta = {
434
442
  name: "type",
435
443
  kind: "enum",
436
444
  label: "HTML \uD0C0\uC785",
437
- default: "button",
438
- description: "Form \uC548\uC5D0\uC11C Enter \uC81C\uCD9C\uC744 \uBC1B\uC73C\uB824\uBA74 submit.",
445
+ description: '\uC8FC\uC9C0 \uC54A\uC73C\uBA74 \uBE0C\uB77C\uC6B0\uC800 \uAE30\uBCF8\uAC12(Form \uC548\uC5D0\uC11C\uB294 submit)\uC774\uB2E4. \uC81C\uCD9C\uC774 \uC544\uB2CC \uBC84\uD2BC\uC740 "button"\uC744 \uBA85\uC2DC\uD558\uB77C.',
439
446
  options: [
440
447
  { value: "button", label: "button" },
441
448
  { value: "submit", label: "submit" },
@@ -444,6 +451,20 @@ var ButtonMeta = {
444
451
  group: "behavior",
445
452
  advanced: true
446
453
  },
454
+ {
455
+ name: "as",
456
+ kind: "enum",
457
+ label: "\uB80C\uB354 \uD0DC\uADF8",
458
+ default: "button",
459
+ description: '\uB9C1\uD06C\uB85C \uBCF4\uB0B4\uC57C \uD558\uB294 \uC790\uB9AC(SSO \uC774\uB3D9 \uB4F1)\uB294 "a" + href\uB2E4 \u2014 button\uC5D0 href\uB97C \uB2EC\uBA74 \uC544\uBB34 \uB370\uB3C4 \uAC00\uC9C0 \uC54A\uB294\uB2E4.',
460
+ options: [
461
+ { value: "button", label: "button" },
462
+ { value: "a", label: "a(\uB9C1\uD06C)" },
463
+ { value: "span", label: "span" }
464
+ ],
465
+ group: "behavior",
466
+ advanced: true
467
+ },
447
468
  { name: "onClick", kind: "action", label: "\uD074\uB9AD", group: "behavior" },
448
469
  styleProp,
449
470
  classNameProp
@@ -473,6 +494,15 @@ var CheckboxMeta = {
473
494
  },
474
495
  { name: "label", kind: "node", label: "\uB77C\uBCA8", slot: true, group: "content" },
475
496
  { name: "description", kind: "node", label: "\uBCF4\uC870 \uC124\uBA85", slot: true, group: "content" },
497
+ {
498
+ name: "indeterminate",
499
+ kind: "boolean",
500
+ label: "\uBD80\uBD84 \uC120\uD0DD",
501
+ default: false,
502
+ bindable: true,
503
+ description: '\uC804\uCCB4\uC120\uD0DD \uCCB4\uD06C\uBC15\uC2A4\uC758 "\uC77C\uBD80\uB9CC \uACE8\uB790\uB2E4" \uC0C1\uD0DC. \uAE00\uB9AC\uD504\uAC00 \uCCB4\uD06C\uC5D0\uC11C \uBE7C\uAE30\uB85C \uBC14\uB010\uB2E4.',
504
+ group: "data"
505
+ },
476
506
  { name: "disabled", kind: "boolean", label: "\uBE44\uD65C\uC131", default: false, bindable: true, group: "behavior" },
477
507
  classNameProp
478
508
  ],
@@ -605,7 +635,7 @@ var FormMeta = {
605
635
  name: "Form",
606
636
  label: "\uD3FC",
607
637
  category: "input",
608
- icon: "save",
638
+ icon: "square-pen",
609
639
  description: "\uD3FC \uCEE8\uD14C\uC774\uB108. \uD544\uB4DC \uAC12\uC740 \uD398\uC774\uC9C0 \uC0C1\uD0DC\uC758 `{id}.{\uD544\uB4DC}` \uD0A4\uC5D0 \uC0B4\uACE0, \uAC80\uC99D\xB7dirty \uCD94\uC801\xB7\uC81C\uCD9C\uC740 \uB80C\uB354\uB7EC\uAC00 \uB9E1\uB294\uB2E4.",
610
640
  props: [
611
641
  {
@@ -712,9 +742,10 @@ var IconButtonMeta = {
712
742
  label: "\uD06C\uAE30",
713
743
  default: "md",
714
744
  options: [
715
- { value: "xs", label: "xs" },
716
- { value: "sm", label: "sm" },
717
- { value: "md", label: "md" }
745
+ { value: "xs", label: "xs 24px" },
746
+ { value: "sm", label: "sm 28px" },
747
+ { value: "md", label: "md 32px" },
748
+ { value: "lg", label: "lg 40px" }
718
749
  ],
719
750
  group: "appearance"
720
751
  },
@@ -727,7 +758,9 @@ var IconButtonMeta = {
727
758
  options: [
728
759
  { value: "ghost", label: "\uD22C\uBA85" },
729
760
  { value: "outlined", label: "\uC678\uACFD\uC120" },
730
- { value: "danger", label: "\uC704\uD5D8" }
761
+ { value: "solid", label: "\uCC44\uC6C0" },
762
+ { value: "danger", label: "\uC704\uD5D8" },
763
+ { value: "onchrome", label: "\uB124\uC774\uBE44 \uD06C\uB86C \uC704" }
731
764
  ],
732
765
  group: "appearance"
733
766
  },
@@ -744,6 +777,14 @@ var IconButtonMeta = {
744
777
  group: "appearance",
745
778
  advanced: true
746
779
  },
780
+ {
781
+ name: "pressed",
782
+ kind: "boolean",
783
+ label: "\uB20C\uB9B0 \uC0C1\uD0DC",
784
+ bindable: true,
785
+ description: "\uD1A0\uAE00 \uBC84\uD2BC\uC758 \uCF1C\uC9D0. aria-pressed\uB85C \uB098\uAC00\uACE0 \uC120\uD0DD \uD2F4\uD2B8\uAC00 \uBD99\uB294\uB2E4.",
786
+ group: "data"
787
+ },
747
788
  { name: "onClick", kind: "action", label: "\uD074\uB9AD", group: "behavior" },
748
789
  { name: "disabled", kind: "boolean", label: "\uBE44\uD65C\uC131", default: false, bindable: true, group: "behavior" },
749
790
  styleProp,
@@ -751,7 +792,7 @@ var IconButtonMeta = {
751
792
  ],
752
793
  children: { accepts: false },
753
794
  preset: { component: "IconButton", props: { icon: "pencil", label: "\uC218\uC815", size: "sm" } },
754
- resize: { kind: "enum", prop: "size", values: ["xs", "sm", "md"] }
795
+ resize: { kind: "enum", prop: "size", values: ["xs", "sm", "md", "lg"] }
755
796
  };
756
797
  var InputMeta = {
757
798
  name: "Input",
@@ -812,9 +853,9 @@ var InputMeta = {
812
853
  { name: "title", kind: "string", label: "\uD234\uD301", group: "content", advanced: true },
813
854
  {
814
855
  name: "trailing",
815
- kind: "string",
816
- label: "\uD6C4\uD589 \uB2E8\uC704",
817
- description: '\uC785\uB825 \uC624\uB978\uCABD \uB05D\uC5D0 \uACB9\uCCD0 \uADF8\uB9AC\uB294 \uB2E8\uC704 \uD45C\uC2DC. \uC608: "\uC6D0", "\uC704", "mm". \uB2E8\uC704\uB97C \uAC12 \uC548\uC5D0 \uC11E\uC9C0 \uC54A\uAE30 \uC704\uD55C \uC790\uB9AC\uB2E4. \uC544\uC774\uCF58 \uC774\uB984(\uC608: "eye")\uC744 \uC8FC\uBA74 \uAE00\uC790 \uB300\uC2E0 \uADF8 \uC544\uC774\uCF58\uC774 \uB098\uC628\uB2E4.',
856
+ kind: "icon",
857
+ label: "\uD6C4\uD589 \uC544\uC774\uCF58",
858
+ description: '\uC785\uB825 \uC624\uB978\uCABD \uB05D\uC5D0 \uACB9\uCCD0 \uADF8\uB9AC\uB294 \uD45C\uC2DC. **\uC544\uC774\uCF58 \uC774\uB984\uC73C\uB85C \uC77D\uB294\uB2E4**(\uC608: "eye" = \uBE44\uBC00\uBC88\uD638 \uBCF4\uAE30). \uB4F1\uB85D\uB418\uC9C0 \uC54A\uC740 \uC774\uB984\uC774\uBA74 \uC544\uBB34\uAC83\uB3C4 \uADF8\uB9AC\uC9C0 \uC54A\uB294\uB2E4 \u2014 "\uC6D0"\xB7"mm" \uAC19\uC740 \uB2E8\uC704 \uAE00\uC790\uB294 \uC5EC\uAE30 \uB123\uC5B4\uB3C4 \uB098\uC624\uC9C0 \uC54A\uB294\uB2E4.',
818
859
  group: "content"
819
860
  },
820
861
  styleProp,
@@ -995,15 +1036,23 @@ var IconMeta = {
995
1036
  label: "\uC544\uC774\uCF58",
996
1037
  category: "display",
997
1038
  icon: "info",
998
- description: "\uC2A4\uD2B8\uB85C\uD06C \uC544\uC774\uCF58. icons.ts\uC758 ICON_PATHS\uC5D0 \uC5C6\uB294 \uC774\uB984\uC740 \uC810\uC73C\uB85C \uB300\uCCB4\uB41C\uB2E4.",
1039
+ description: "\uC2A4\uD2B8\uB85C\uD06C \uC544\uC774\uCF58 130\uC885. icons.ts\uC758 ICON_NODES\uC5D0 \uC5C6\uB294 \uC774\uB984\uC740 \uC544\uBB34\uAC83\uB3C4 \uADF8\uB9AC\uC9C0 \uC54A\uB294\uB2E4.",
999
1040
  props: [
1000
1041
  { name: "name", kind: "icon", label: "\uC544\uC774\uCF58 \uC774\uB984", required: true, group: "content" },
1001
- { name: "size", kind: "number", label: "\uD06C\uAE30(px)", default: 16, group: "appearance" },
1002
- { name: "strokeWidth", kind: "number", label: "\uC120 \uAD75\uAE30", default: 1.8, group: "appearance", advanced: true },
1042
+ { name: "size", kind: "number", label: "\uD06C\uAE30(px)", default: 18, group: "appearance" },
1043
+ { name: "strokeWidth", kind: "number", label: "\uC120 \uAD75\uAE30", default: 1.5, group: "appearance", advanced: true },
1044
+ {
1045
+ name: "title",
1046
+ kind: "string",
1047
+ label: "\uC811\uADFC\uC131 \uC81C\uBAA9",
1048
+ description: '\uC8FC\uBA74 role="img" + aria-label\uC774 \uBD99\uB294\uB2E4. \uC606\uC5D0 \uAE00\uC774 \uC788\uB294 \uC7A5\uC2DD \uC544\uC774\uCF58\uC740 \uBE44\uC6CC \uB454\uB2E4.',
1049
+ group: "content"
1050
+ },
1051
+ styleProp,
1003
1052
  classNameProp
1004
1053
  ],
1005
1054
  children: { accepts: false },
1006
- preset: { component: "Icon", props: { name: "info", size: 16 } },
1055
+ preset: { component: "Icon", props: { name: "info", size: 18 } },
1007
1056
  resize: { kind: "numeric", widthProp: "size", heightProp: "size", unit: "px", axis: "both" }
1008
1057
  };
1009
1058
  var KeyValueListMeta = {
@@ -1227,6 +1276,7 @@ var TableMeta = {
1227
1276
  { name: "align", kind: "enum", label: "\uC815\uB82C", options: [{ value: "left", label: "\uC67C\uCABD" }, { value: "right", label: "\uC624\uB978\uCABD" }] },
1228
1277
  { name: "mono", kind: "boolean", label: "\uACE0\uC815\uD3ED \uAE00\uAF34" },
1229
1278
  { name: "strong", kind: "boolean", label: "\uAD75\uAC8C" },
1279
+ { name: "sortable", kind: "boolean", label: "\uC815\uB82C \uAC00\uB2A5", description: "onSort\uB97C \uD568\uAED8 \uC918\uC57C \uD5E4\uB354\uAC00 \uBC84\uD2BC\uC774 \uB41C\uB2E4." },
1230
1280
  {
1231
1281
  name: "badge",
1232
1282
  kind: "object",
@@ -1249,6 +1299,28 @@ var TableMeta = {
1249
1299
  },
1250
1300
  { name: "dense", kind: "boolean", label: "\uC870\uBC00\uD558\uAC8C", default: false, description: "\uD589 \uB192\uC774 40px \u2192 32px", group: "appearance" },
1251
1301
  { name: "hover", kind: "boolean", label: "\uD589 \uD638\uBC84 \uAC15\uC870", default: true, group: "appearance" },
1302
+ { name: "sticky", kind: "boolean", label: "\uD5E4\uB354 \uACE0\uC815", default: false, description: "\uC2A4\uD06C\uB864\uB418\uB294 \uBCF8\uBB38 \uC704\uC5D0 \uBA38\uB9AC\uAE00\uC744 \uBD99\uC5EC \uB454\uB2E4.", group: "appearance" },
1303
+ {
1304
+ name: "sort",
1305
+ kind: "object",
1306
+ label: "\uC815\uB82C \uC0C1\uD0DC",
1307
+ bindable: true,
1308
+ description: "{ key, dir } \u2014 \uD574\uB2F9 \uCEEC\uB7FC \uD5E4\uB354\uC758 \uD654\uC0B4\uD45C \uBC29\uD5A5\uC744 \uC815\uD55C\uB2E4. \uC815\uB82C \uC790\uCCB4\uB294 rows\uB97C \uC8FC\uB294 \uCABD\uC774 \uD55C\uB2E4.",
1309
+ fields: [
1310
+ { name: "key", kind: "string", label: "\uCEEC\uB7FC key" },
1311
+ { name: "dir", kind: "enum", label: "\uBC29\uD5A5", options: [{ value: "asc", label: "\uC624\uB984\uCC28\uC21C" }, { value: "desc", label: "\uB0B4\uB9BC\uCC28\uC21C" }] }
1312
+ ],
1313
+ group: "data"
1314
+ },
1315
+ { name: "onSort", kind: "action", label: "\uC815\uB82C \uD5E4\uB354 \uD074\uB9AD", eventArg: "\uCEEC\uB7FC key", group: "behavior" },
1316
+ {
1317
+ name: "selectedIds",
1318
+ kind: "binding",
1319
+ label: "\uC120\uD0DD\uB41C \uD589",
1320
+ bindable: true,
1321
+ description: "rowKey \uAC12\uC758 \uBC30\uC5F4. \uD574\uB2F9 \uD589\uC5D0 aria-selected\uAC00 \uBD99\uACE0 \uC120\uD0DD \uD2F4\uD2B8\uAC00 \uAE54\uB9B0\uB2E4.",
1322
+ group: "data"
1323
+ },
1252
1324
  { name: "rowKey", kind: "string", label: "\uD589 key \uD544\uB4DC", default: "id", group: "data", advanced: true },
1253
1325
  { name: "onRowClick", kind: "action", label: "\uD589 \uD074\uB9AD", eventArg: "\uD589 \uAC1D\uCCB4 \uC804\uCCB4", group: "behavior" },
1254
1326
  { name: "empty", kind: "node", label: "\uBE48 \uBAA9\uB85D \uD45C\uC2DC", slot: true, description: "EmptyState \uAD8C\uC7A5", group: "content" },
@@ -1272,6 +1344,86 @@ var TableMeta = {
1272
1344
  },
1273
1345
  resize: { kind: "style", axis: "x" }
1274
1346
  };
1347
+ var searchCellFields = [
1348
+ {
1349
+ name: "type",
1350
+ kind: "enum",
1351
+ label: "\uD45C\uD604",
1352
+ default: "text",
1353
+ options: [
1354
+ { value: "text", label: "\uC6D0\uBB38" },
1355
+ { value: "badge", label: "\uBC30\uC9C0" },
1356
+ { value: "tag", label: "\uD0DC\uADF8" },
1357
+ { value: "link", label: "\uB9C1\uD06C" },
1358
+ { value: "progress", label: "\uC9C4\uD589 \uB9C9\uB300" },
1359
+ { value: "icon", label: "\uC544\uC774\uCF58" },
1360
+ { value: "number", label: "\uC22B\uC790" },
1361
+ { value: "date", label: "\uB0A0\uC9DC" }
1362
+ ]
1363
+ },
1364
+ { name: "toneMap", kind: "object", label: "\uAC12 \u2192 \uD1A4", description: "type=badge (\uC5C6\uB294 \uAC12\uC740 neutral)" },
1365
+ { name: "colorMap", kind: "object", label: "\uAC12 \u2192 \uC810 \uC0C9", description: "type=tag" },
1366
+ { name: "filled", kind: "boolean", label: "\uCC44\uC6B4 \uD0DC\uADF8", description: "type=tag" },
1367
+ {
1368
+ name: "to",
1369
+ kind: "string",
1370
+ label: "\uC774\uB3D9 \uACBD\uB85C",
1371
+ description: "type=link. `/assets/{id}`\uCC98\uB7FC \uD589\uC758 \uD544\uB4DC\uB97C {\uD0A4}\uB85C \uB07C\uC6CC \uB123\uB294\uB2E4."
1372
+ },
1373
+ { name: "labelKey", kind: "string", label: "\uB9C1\uD06C \uBB38\uAD6C \uD544\uB4DC", description: "type=link (\uC0DD\uB7B5 \uC2DC \uCEEC\uB7FC \uAC12)" },
1374
+ { name: "max", kind: "number", label: "\uBD84\uBAA8", description: "type=progress (\uAE30\uBCF8 100)" },
1375
+ { name: "maxKey", kind: "string", label: "\uBD84\uBAA8 \uD544\uB4DC", description: "type=progress (max\uBCF4\uB2E4 \uC6B0\uC120)" },
1376
+ {
1377
+ name: "tone",
1378
+ kind: "enum",
1379
+ label: "\uB9C9\uB300 \uD1A4",
1380
+ description: "type=progress",
1381
+ options: [
1382
+ { value: "brand", label: "\uAE30\uBCF8" },
1383
+ { value: "success", label: "\uC815\uC0C1" },
1384
+ { value: "warning", label: "\uC8FC\uC758" },
1385
+ { value: "danger", label: "\uC704\uD5D8" },
1386
+ { value: "info", label: "\uC815\uBCF4" }
1387
+ ]
1388
+ },
1389
+ { name: "showValue", kind: "boolean", label: "\uD37C\uC13C\uD2B8 \uD45C\uAE30", description: "type=progress" },
1390
+ { name: "iconMap", kind: "object", label: "\uAC12 \u2192 \uC544\uC774\uCF58", description: "type=icon" },
1391
+ { name: "icon", kind: "icon", label: "\uC544\uC774\uCF58", description: "type=icon(\uB9E4\uD551\uC5D0 \uC5C6\uB294 \uAC12\uC758 \uAE30\uBCF8) / type=link(\uC120\uD589 \uC544\uC774\uCF58)" },
1392
+ { name: "withLabel", kind: "boolean", label: "\uC544\uC774\uCF58 \uB4A4\uC5D0 \uAC12\uB3C4 \uD45C\uAE30", description: "type=icon" },
1393
+ { name: "digits", kind: "number", label: "\uC18C\uC218 \uC790\uB9BF\uC218", default: 0, description: "type=number" },
1394
+ { name: "prefix", kind: "string", label: "\uC811\uB450", description: "type=number" },
1395
+ { name: "suffix", kind: "string", label: "\uC811\uBBF8", description: 'type=number (\uD1B5\uD654\uB294 "\uC6D0")' },
1396
+ {
1397
+ name: "format",
1398
+ kind: "enum",
1399
+ label: "\uB0A0\uC9DC \uC11C\uC2DD",
1400
+ default: "date",
1401
+ description: "type=date. \uD574\uC11D\uB418\uC9C0 \uC54A\uB294 \uAC12\uC740 \uC6D0\uBB38 \uADF8\uB300\uB85C \uB098\uC628\uB2E4.",
1402
+ options: [
1403
+ { value: "date", label: "\uB0A0\uC9DC" },
1404
+ { value: "datetime", label: "\uB0A0\uC9DC+\uC2DC\uAC01" },
1405
+ { value: "time", label: "\uC2DC\uAC01" }
1406
+ ]
1407
+ }
1408
+ ];
1409
+ var searchCardRowFields = [
1410
+ { name: "valueKey", kind: "string", label: "\uAC12 \uD544\uB4DC", required: true },
1411
+ { name: "label", kind: "string", label: "\uB77C\uBCA8" },
1412
+ { name: "icon", kind: "icon", label: "\uC120\uD589 \uC544\uC774\uCF58" },
1413
+ { name: "cell", kind: "object", label: "\uAC12 \uD45C\uD604", description: "\uCEEC\uB7FC \uC140\uACFC \uAC19\uC740 \uC5B4\uD718", fields: searchCellFields },
1414
+ {
1415
+ name: "showWhen",
1416
+ kind: "object",
1417
+ label: "\uD45C\uC2DC \uC870\uAC74",
1418
+ description: 'key\uB9CC \uC8FC\uBA74 "\uADF8 \uAC12\uC774 \uBE44\uC5B4 \uC788\uC9C0 \uC54A\uC744 \uB54C". equals\xB7in\xB7notEmpty\uB85C \uC881\uD78C\uB2E4.',
1419
+ fields: [
1420
+ { name: "key", kind: "string", label: "\uD310\uC815\uD560 \uD544\uB4DC", required: true },
1421
+ { name: "equals", kind: "string", label: "\uAC19\uC744 \uB54C" },
1422
+ { name: "in", kind: "array", label: "\uC774 \uC911 \uD558\uB098\uC77C \uB54C" },
1423
+ { name: "notEmpty", kind: "boolean", label: "\uAC12\uC774 \uC788\uC744 \uB54C", default: true }
1424
+ ]
1425
+ }
1426
+ ];
1275
1427
  var searchCommonProps = [
1276
1428
  { name: "title", kind: "string", label: "\uBAA9\uB85D \uC81C\uBAA9", required: true, group: "content" },
1277
1429
  {
@@ -1292,11 +1444,8 @@ var searchCommonProps = [
1292
1444
  name: "cell",
1293
1445
  kind: "object",
1294
1446
  label: "\uC140 \uD45C\uD604",
1295
- description: 'type\uC744 "badge"\uB85C \uB450\uBA74 \uAC12\uC774 \uBC30\uC9C0\uB85C \uADF8\uB824\uC9C4\uB2E4.',
1296
- fields: [
1297
- { name: "type", kind: "enum", label: "\uD45C\uD604", options: [{ value: "badge", label: "\uBC30\uC9C0" }] },
1298
- { name: "toneMap", kind: "object", label: "\uAC12 \u2192 \uD1A4" }
1299
- ]
1447
+ description: "\uC0DD\uB7B5\uD558\uBA74 \uAC12\uC744 \uADF8\uB300\uB85C \uC4F4\uB2E4. \uC720\uD6A8\uD55C \uD544\uB4DC\uB294 type\uC5D0 \uB530\uB77C \uB2E4\uB974\uB2E4.",
1448
+ fields: searchCellFields
1300
1449
  }
1301
1450
  ]
1302
1451
  },
@@ -1363,7 +1512,37 @@ var searchCommonProps = [
1363
1512
  { name: "titleKey", kind: "string", label: "\uC81C\uBAA9 \uD544\uB4DC", required: true },
1364
1513
  { name: "subtitleKey", kind: "string", label: "\uBD80\uC81C \uD544\uB4DC" },
1365
1514
  { name: "badge", kind: "object", label: "\uBC30\uC9C0", description: "{ key, toneMap }" },
1366
- { name: "rows", kind: "array", label: "\uD589", description: "{ label, valueKey }" }
1515
+ { name: "rows", kind: "array", label: "\uD589", item: searchCardRowFields },
1516
+ {
1517
+ name: "leftRows",
1518
+ kind: "array",
1519
+ label: "\uC88C\uCE21 \uD589",
1520
+ description: "leftRows/rightRows\uB97C \uC8FC\uBA74 \uB450 \uC5F4\uB85C \uBC30\uCE58\uB41C\uB2E4(rows\uB294 \uADF8 \uC544\uB798).",
1521
+ item: searchCardRowFields
1522
+ },
1523
+ { name: "rightRows", kind: "array", label: "\uC6B0\uCE21 \uD589", item: searchCardRowFields },
1524
+ { name: "noteKey", kind: "string", label: "\uD558\uB2E8 \uBCF4\uC870 \uBB38\uAD6C \uD544\uB4DC" },
1525
+ {
1526
+ name: "actions",
1527
+ kind: "array",
1528
+ label: "\uCE74\uB4DC \uC561\uC158",
1529
+ description: "\uCE74\uB4DC \uC6B0\uC0C1\uB2E8 \uBC84\uD2BC. \uC774\uBCA4\uD2B8 \uAC12\uC73C\uB85C \uD589 \uAC1D\uCCB4 \uC804\uCCB4\uAC00 \uC804\uB2EC\uB41C\uB2E4.",
1530
+ item: [
1531
+ { name: "label", kind: "string", label: "\uB77C\uBCA8", required: true },
1532
+ { name: "icon", kind: "icon", label: "\uC544\uC774\uCF58" },
1533
+ {
1534
+ name: "variant",
1535
+ kind: "enum",
1536
+ label: "\uC885\uB958",
1537
+ options: [
1538
+ { value: "default", label: "\uAE30\uBCF8" },
1539
+ { value: "destructive", label: "\uC704\uD5D8" },
1540
+ { value: "outline", label: "\uC678\uACFD\uC120" }
1541
+ ]
1542
+ },
1543
+ { name: "run", kind: "action", label: "\uC2E4\uD589\uD560 \uC561\uC158", eventArg: "\uD589 \uAC1D\uCCB4 \uC804\uCCB4", required: true }
1544
+ ]
1545
+ }
1367
1546
  ]
1368
1547
  },
1369
1548
  {
@@ -1397,8 +1576,40 @@ var searchCommonProps = [
1397
1576
  ],
1398
1577
  group: "appearance"
1399
1578
  },
1400
- { name: "disableGrid", kind: "boolean", label: "\uACA9\uC790 \uBCF4\uAE30 \uB044\uAE30", group: "appearance" },
1401
- { name: "disableList", kind: "boolean", label: "\uBAA9\uB85D \uBCF4\uAE30 \uB044\uAE30", group: "appearance" },
1579
+ {
1580
+ name: "views",
1581
+ kind: "array",
1582
+ label: "\uBCF4\uAE30 \uC804\uD658 \uD56D\uBAA9",
1583
+ description: "\uC804\uD658 \uBC84\uD2BC\uC5D0 \uB178\uCD9C\uD560 \uBCF4\uAE30\uC640 \uADF8 \uB77C\uBCA8\xB7\uC544\uC774\uCF58\xB7\uC21C\uC11C. \uC0DD\uB7B5\uD558\uBA74 \uBAA9\uB85D\xB7\uCE74\uB4DC \uB450 \uCE78\uC774 \uAE30\uBCF8\uC774\uACE0 disableGrid/disableList\uAC00 \uADF8 \uCD95\uC57D\uD615\uC73C\uB85C \uB3D9\uC791\uD55C\uB2E4(\uB458 \uB2E4 \uC624\uBA74 views\uAC00 \uC774\uAE34\uB2E4). \uD55C \uCE78\uB9CC \uB0A8\uC73C\uBA74 \uC804\uD658 \uBC84\uD2BC\uC744 \uADF8\uB9AC\uC9C0 \uC54A\uB294\uB2E4. gridCard \uC5C6\uC774 \uCE74\uB4DC \uBCF4\uAE30\uB97C \uB123\uC73C\uBA74 \uAC78\uB7EC\uC9C4\uB2E4.",
1584
+ group: "appearance",
1585
+ item: [
1586
+ {
1587
+ name: "value",
1588
+ kind: "enum",
1589
+ label: "\uBCF4\uAE30",
1590
+ required: true,
1591
+ options: [
1592
+ { value: "list", label: "\uBAA9\uB85D" },
1593
+ { value: "grid", label: "\uCE74\uB4DC" }
1594
+ ]
1595
+ },
1596
+ { name: "icon", kind: "icon", label: "\uC544\uC774\uCF58", description: "\uC0DD\uB7B5 \uC2DC list / layout-grid" },
1597
+ { name: "label", kind: "string", label: "\uB77C\uBCA8", description: "\uC0DD\uB7B5 \uC2DC \uBAA9\uB85D / \uCE74\uB4DC" }
1598
+ ]
1599
+ },
1600
+ {
1601
+ name: "pageSizes",
1602
+ kind: "array",
1603
+ label: "\uD398\uC774\uC9C0\uB2F9 \uAC74\uC218 \uC120\uD0DD\uC9C0",
1604
+ description: "\uC0DD\uB7B5 \uC2DC [10, 20, 50, 100]. \uCCAB \uAC12\uC774 \uAE30\uBCF8 \uD398\uC774\uC9C0 \uD06C\uAE30\uB2E4.",
1605
+ group: "appearance",
1606
+ advanced: true,
1607
+ // 원소가 숫자 하나뿐인 스칼라 배열 — 필드가 없다는 뜻으로 item을 비워 둔다
1608
+ itemKind: "number",
1609
+ item: []
1610
+ },
1611
+ { name: "disableGrid", kind: "boolean", label: "\uACA9\uC790 \uBCF4\uAE30 \uB044\uAE30", description: "views\uC758 \uCD95\uC57D\uD615", group: "appearance" },
1612
+ { name: "disableList", kind: "boolean", label: "\uBAA9\uB85D \uBCF4\uAE30 \uB044\uAE30", description: "views\uC758 \uCD95\uC57D\uD615", group: "appearance" },
1402
1613
  { name: "searchPlaceholder", kind: "string", label: "\uAC80\uC0C9\uCC3D \uC548\uB0B4 \uBB38\uAD6C", group: "content" },
1403
1614
  { name: "rowClick", kind: "action", label: "\uD589 \uD074\uB9AD", eventArg: "\uD589 \uAC1D\uCCB4 \uC804\uCCB4", group: "behavior" },
1404
1615
  {
@@ -1619,9 +1830,10 @@ var ProgressBarMeta = {
1619
1830
  label: "\uC9C4\uD589 \uB9C9\uB300",
1620
1831
  category: "feedback",
1621
1832
  icon: "minus",
1622
- description: "0~100 \uC9C4\uD589\uB960. \uBC94\uC704\uB97C \uBC97\uC5B4\uB09C \uAC12\uC740 \uAD6C\uD604\uC5D0\uC11C \uC798\uB77C \uB0B8\uB2E4.",
1833
+ description: "\uC9C4\uCC99\xB7\uC6A9\uB7C9 \uB9C9\uB300(.wp-meter). \uBC94\uC704\uB97C \uBC97\uC5B4\uB09C \uAC12\uC740 \uAD6C\uD604\uC5D0\uC11C \uC798\uB77C \uB0B8\uB2E4.",
1623
1834
  props: [
1624
- { name: "value", kind: "number", label: "\uAC12(0~100)", required: true, bindable: true, group: "data" },
1835
+ { name: "value", kind: "number", label: "\uAC12", required: true, bindable: true, group: "data" },
1836
+ { name: "max", kind: "number", label: "\uCD5C\uB300\uAC12", default: 100, bindable: true, description: "\uBD84\uBAA8\uAC00 100\uC774 \uC544\uB2CC \uC6A9\uB7C9 \uAC8C\uC774\uC9C0\uC5D0 \uC4F4\uB2E4.", group: "data" },
1625
1837
  {
1626
1838
  name: "tone",
1627
1839
  kind: "enum",
@@ -1637,13 +1849,33 @@ var ProgressBarMeta = {
1637
1849
  ],
1638
1850
  group: "appearance"
1639
1851
  },
1852
+ {
1853
+ name: "size",
1854
+ kind: "enum",
1855
+ label: "\uB450\uAED8",
1856
+ default: "md",
1857
+ options: [
1858
+ { value: "sm", label: "sm 4px" },
1859
+ { value: "md", label: "md 6px" },
1860
+ { value: "lg", label: "lg 8px" }
1861
+ ],
1862
+ group: "appearance"
1863
+ },
1864
+ {
1865
+ name: "striped",
1866
+ kind: "boolean",
1867
+ label: "\uC0AC\uC120 \uD574\uCE58",
1868
+ default: false,
1869
+ description: "\uC9C4\uD589 \uC911\uC778 \uC791\uC5C5\uC5D0\uB9CC. \uBA48\uCD98 \uAC12\uC5D0 \uC4F0\uBA74 \uC6C0\uC9C1\uC774\uB294 \uAC83\uCC98\uB7FC \uC77D\uD78C\uB2E4.",
1870
+ group: "appearance"
1871
+ },
1640
1872
  { name: "label", kind: "node", label: "\uB77C\uBCA8", slot: true, group: "content" },
1641
1873
  {
1642
1874
  name: "showValue",
1643
1875
  kind: "boolean",
1644
1876
  label: "\uAC12 \uD45C\uC2DC",
1645
1877
  default: false,
1646
- description: "\uB77C\uBCA8 \uC904 \uC624\uB978\uCABD \uB05D\uC5D0 \uD604\uC7AC \uAC12\uC744 \uD37C\uC13C\uD2B8\uB85C \uC801\uB294\uB2E4. \uC5EC\uB7EC \uB9C9\uB300\uB97C \uC313\uC544 \uBE44\uAD50\uD560 \uB54C \uD544\uC694\uD558\uB2E4.",
1878
+ description: "\uB77C\uBCA8\uC774 \uC788\uC73C\uBA74 \uB77C\uBCA8 \uC904 \uC624\uB978\uCABD \uB05D\uC5D0, \uC5C6\uC73C\uBA74 \uB9C9\uB300 \uC624\uB978\uCABD \uC606\uC5D0 \uD37C\uC13C\uD2B8\uB97C \uC801\uB294\uB2E4.",
1647
1879
  group: "appearance"
1648
1880
  },
1649
1881
  styleProp,
@@ -1672,6 +1904,14 @@ var SpinnerMeta = {
1672
1904
  ],
1673
1905
  group: "appearance"
1674
1906
  },
1907
+ {
1908
+ name: "inverse",
1909
+ kind: "boolean",
1910
+ label: "\uC5B4\uB450\uC6B4 \uD45C\uBA74 \uC704",
1911
+ default: false,
1912
+ description: "\uB124\uC774\uBE44/\uBDF0\uC5B4 \uD45C\uBA74 \uC704\uC5D0\uC11C \uD14C\uB450\uB9AC\uB97C \uBC1D\uC740 \uCABD\uC73C\uB85C \uB4A4\uC9D1\uB294\uB2E4.",
1913
+ group: "appearance"
1914
+ },
1675
1915
  { name: "label", kind: "string", label: "\uC124\uBA85", description: "\uC811\uADFC\uC131 \uB77C\uBCA8 \uACB8 \uC606 \uCEA1\uC158", group: "content" },
1676
1916
  classNameProp
1677
1917
  ],
@@ -1703,6 +1943,7 @@ var ToastMeta = {
1703
1943
  group: "appearance"
1704
1944
  },
1705
1945
  { name: "title", kind: "node", label: "\uC81C\uBAA9", slot: true, group: "content" },
1946
+ { name: "action", kind: "node", label: "\uC778\uB77C\uC778 \uC561\uC158", slot: true, description: '\uB418\uB3CC\uB9AC\uAE30 \uAC19\uC740 \uAC83 \uD558\uB098. Button variant="link"\uB97C \uB123\uB294\uB2E4.', group: "content" },
1706
1947
  { name: "onClose", kind: "action", label: "\uB2EB\uAE30", group: "behavior" },
1707
1948
  classNameProp
1708
1949
  ],
package/dist/rich.js CHANGED
@@ -1,5 +1,6 @@
1
- import { HoistedStyle, Spinner, EmptyState } from './chunk-AR2JYE75.js';
2
- export { DatePicker, DateRangePicker } from './chunk-AR2JYE75.js';
1
+ import { HoistedStyle } from './chunk-YJMD6MOE.js';
2
+ export { DatePicker, DateRangePicker } from './chunk-YJMD6MOE.js';
3
+ import { Spinner, EmptyState } from './chunk-ZUCI34QY.js';
3
4
  import { useRef, useCallback, useMemo, useState, useEffect, useLayoutEffect } from 'react';
4
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
6