@nexus-cross/design-system 1.0.0 → 1.0.2

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 (82) hide show
  1. package/cursor-rules/nexus-project-setup.mdc +150 -150
  2. package/cursor-rules/nexus-ui-api.mdc +659 -316
  3. package/cursor-rules/nexus-ui-components.mdc +162 -96
  4. package/dist/chunks/chunk-55IEEVNR.js +7 -0
  5. package/dist/chunks/{chunk-D6FII7HW.js → chunk-BBLBTOP4.js} +8 -5
  6. package/dist/chunks/{chunk-5JHN4FCY.mjs → chunk-K2TBLM3F.mjs} +1 -4
  7. package/dist/chunks/{chunk-MTX7GD3H.js → chunk-PEIEVKD5.js} +1 -4
  8. package/dist/chunks/{chunk-54RBL7J4.mjs → chunk-UKRU46PH.mjs} +8 -5
  9. package/dist/chunks/chunk-XMG7ZEYY.mjs +5 -0
  10. package/dist/data-list.js +2 -2
  11. package/dist/data-list.mjs +1 -1
  12. package/dist/error-boundary.d.mts +1 -1
  13. package/dist/error-boundary.d.ts +1 -1
  14. package/dist/index.js +5 -5
  15. package/dist/index.mjs +2 -2
  16. package/dist/schemas/_all.json +870 -373
  17. package/dist/schemas/accordion.json +12 -12
  18. package/dist/schemas/avatar.json +9 -9
  19. package/dist/schemas/button.json +27 -9
  20. package/dist/schemas/carousel.json +6 -6
  21. package/dist/schemas/carouselButton.json +3 -3
  22. package/dist/schemas/carouselDots.json +2 -2
  23. package/dist/schemas/carouselSlide.json +3 -3
  24. package/dist/schemas/checkBox.json +28 -10
  25. package/dist/schemas/chip.json +13 -7
  26. package/dist/schemas/clientOnly.json +3 -3
  27. package/dist/schemas/countdown.json +8 -8
  28. package/dist/schemas/counter.json +13 -10
  29. package/dist/schemas/dataList.json +10 -10
  30. package/dist/schemas/divider.json +8 -5
  31. package/dist/schemas/drawer.json +22 -3
  32. package/dist/schemas/drawerClose.json +24 -0
  33. package/dist/schemas/drawerContent.json +7 -7
  34. package/dist/schemas/drawerDescription.json +20 -0
  35. package/dist/schemas/drawerTitle.json +20 -0
  36. package/dist/schemas/drawerTrigger.json +24 -0
  37. package/dist/schemas/ellipsis.json +9 -9
  38. package/dist/schemas/errorBoundary.json +4 -4
  39. package/dist/schemas/infiniteScroll.json +12 -12
  40. package/dist/schemas/marquee.json +10 -7
  41. package/dist/schemas/modalCall.json +81 -3
  42. package/dist/schemas/modalTemplate.json +28 -25
  43. package/dist/schemas/numberInput.json +32 -14
  44. package/dist/schemas/pagination.json +8 -8
  45. package/dist/schemas/popover.json +12 -12
  46. package/dist/schemas/radioGroup.json +17 -10
  47. package/dist/schemas/radioItem.json +12 -5
  48. package/dist/schemas/select.json +11 -11
  49. package/dist/schemas/selectItem.json +5 -5
  50. package/dist/schemas/skeleton.json +10 -7
  51. package/dist/schemas/spinner.json +11 -4
  52. package/dist/schemas/switch.json +18 -7
  53. package/dist/schemas/tab.json +15 -15
  54. package/dist/schemas/table.json +14 -14
  55. package/dist/schemas/tableRow.json +5 -5
  56. package/dist/schemas/tdColumn.json +17 -17
  57. package/dist/schemas/textArea.json +42 -9
  58. package/dist/schemas/textInput.json +55 -15
  59. package/dist/schemas/themeProvider.json +10 -10
  60. package/dist/schemas/toastOptions.json +81 -0
  61. package/dist/schemas/toaster.json +48 -3
  62. package/dist/schemas/tooltip.json +10 -10
  63. package/dist/schemas/virtualGrid.json +19 -16
  64. package/dist/schemas/virtualList.json +12 -9
  65. package/dist/schemas.d.mts +420 -56
  66. package/dist/schemas.d.ts +420 -56
  67. package/dist/schemas.js +502 -367
  68. package/dist/schemas.mjs +498 -368
  69. package/dist/styles/layer.js +2 -2
  70. package/dist/styles/layer.mjs +1 -1
  71. package/dist/styles.css +56 -45
  72. package/dist/styles.js +2 -2
  73. package/dist/styles.layered.css +56 -45
  74. package/dist/styles.mjs +1 -1
  75. package/dist/text-input.d.mts +1 -1
  76. package/dist/text-input.d.ts +1 -1
  77. package/dist/text-input.js +3 -3
  78. package/dist/text-input.mjs +1 -1
  79. package/package.json +8 -6
  80. package/scripts/setup-cursor-rules.cjs +6 -6
  81. package/dist/chunks/chunk-7AISZYWL.js +0 -7
  82. package/dist/chunks/chunk-V5OTJP6H.mjs +0 -5
package/dist/schemas.js CHANGED
@@ -5,358 +5,432 @@ var zod = require('zod');
5
5
 
6
6
  var buttonPropsSchema = zod.z.object({
7
7
  semantic: zod.z.enum(["primary", "secondary", "normal", "danger"]).default("primary").describe(
8
- "\uC0C9\uC0C1 \uD14C\uB9C8 (primary=\uC8FC\uC694, secondary=\uBCF4\uC870, normal=\uC911\uB9BD, danger=\uC704\uD5D8)"
8
+ "Color theme (primary=main, secondary=sub, normal=neutral, danger=danger)"
9
9
  ),
10
10
  variant: zod.z.enum(["contained", "outlined", "subtle", "ghost"]).default("contained").describe(
11
- "\uC2DC\uAC01 \uC2A4\uD0C0\uC77C (contained=\uCC44\uC6C0, outlined=\uD14C\uB450\uB9AC, subtle=\uC5F0\uD55C\uBC30\uACBD, ghost=\uD22C\uBA85)"
11
+ "Visual style (contained=filled, outlined=border, subtle=light bg, ghost=transparent)"
12
12
  ),
13
- size: zod.z.enum(["xl", "lg", "md", "sm"]).default("md").describe("\uD06C\uAE30"),
14
- radius: zod.z.enum(["default", "circle"]).default("default").describe("\uBAA8\uC11C\uB9AC (default=size\uBCC4 radius, circle=pill \uD615\uD0DC)"),
15
- asChild: zod.z.boolean().optional().describe("true\uBA74 \uC790\uC2DD \uC694\uC18C\uB85C \uB80C\uB354\uB9C1 (Slot \uD328\uD134)"),
16
- detectDoubleClick: zod.z.boolean().optional().describe("500ms \uB0B4 \uB354\uBE14 \uD074\uB9AD \uBC29\uC9C0"),
17
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131 (aria-disabled \uC790\uB3D9)"),
18
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
13
+ size: zod.z.enum(["xl", "lg", "md", "sm"]).default("md").describe("Size"),
14
+ radius: zod.z.enum(["default", "circle"]).default("default").describe("Corner radius (default=size-based radius, circle=pill shape)"),
15
+ asChild: zod.z.boolean().optional().describe("If true, renders as child element (Slot pattern)"),
16
+ detectDoubleClick: zod.z.boolean().optional().describe("Prevent double click within 500ms"),
17
+ disabled: zod.z.boolean().optional().describe("Disabled (auto aria-disabled)"),
18
+ children: zod.z.any().optional().describe("Button content (ReactNode)"),
19
+ onClick: zod.z.any().optional().describe("Click event handler"),
20
+ type: zod.z.enum(["button", "submit", "reset"]).optional().describe("HTML button type (default: button)"),
21
+ style: zod.z.any().optional().describe("Inline style (CSSProperties)"),
22
+ className: zod.z.string().optional().describe("Style override")
19
23
  }).describe(
20
- "\uC778\uD130\uB799\uD2F0\uBE0C \uBC84\uD2BC. semantic(\uC0C9\uC0C1)\xD7variant(\uC2A4\uD0C0\uC77C) 2\uCD95 \uC2DC\uC2A4\uD15C. asChild\uB85C \uB80C\uB354\uB9C1 \uC694\uC18C \uBCC0\uACBD \uAC00\uB2A5."
24
+ "Interactive button. semantic(color) x variant(style) 2-axis system. Rendering element changeable via asChild."
21
25
  );
22
26
  var textInputPropsSchema = zod.z.object({
23
- size: zod.z.enum(["sm", "md", "lg", "xl"]).default("md").describe("\uD06C\uAE30"),
24
- error: zod.z.boolean().optional().describe("\uC5D0\uB7EC \uC0C1\uD0DC (aria-invalid \uC790\uB3D9)"),
25
- prefixIcon: zod.z.any().optional().describe("\uC55E\uCABD \uC544\uC774\uCF58 (ReactNode)"),
26
- suffixIcon: zod.z.any().optional().describe("\uB4A4\uCABD \uC544\uC774\uCF58 (ReactNode)"),
27
- label: zod.z.any().optional().describe("\uC785\uB825 \uD544\uB4DC \uC704 \uB77C\uBCA8 (ReactNode)"),
28
- description: zod.z.any().optional().describe("\uC785\uB825 \uD544\uB4DC \uC544\uB798 \uC124\uBA85 \uD14D\uC2A4\uD2B8 (ReactNode, error \uC2DC \uBE68\uAC04\uC0C9)"),
29
- showCount: zod.z.boolean().optional().describe("\uAE00\uC790 \uC218 \uCE74\uC6B4\uD2B8 \uD45C\uC2DC (maxLength \uD544\uC694)"),
30
- maxLength: zod.z.number().optional().describe("\uCD5C\uB300 \uAE00\uC790 \uC218"),
31
- clearable: zod.z.boolean().optional().describe("X \uBC84\uD2BC\uC73C\uB85C \uC785\uB825\uAC12 \uCD08\uAE30\uD654"),
32
- placeholder: zod.z.string().optional().describe("\uD50C\uB808\uC774\uC2A4\uD640\uB354"),
33
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131"),
34
- onValueChange: zod.z.any().optional().describe("\uAC12 \uBCC0\uACBD \uCF5C\uBC31 (value: string) => void"),
35
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
36
- }).describe("\uD14D\uC2A4\uD2B8 \uC785\uB825 \uD544\uB4DC. label, description, prefix/suffix \uC544\uC774\uCF58, clearable, \uAE00\uC790 \uC218 \uCE74\uC6B4\uD2B8 \uC9C0\uC6D0.");
27
+ size: zod.z.enum(["md", "lg", "xl"]).default("md").describe("Size"),
28
+ error: zod.z.boolean().optional().describe("Error state (auto aria-invalid)"),
29
+ prefixIcon: zod.z.any().optional().describe("Prefix icon (ReactNode)"),
30
+ suffixIcon: zod.z.any().optional().describe("Suffix icon (ReactNode)"),
31
+ label: zod.z.any().optional().describe("Label above input field (ReactNode)"),
32
+ description: zod.z.any().optional().describe("Description below input field (ReactNode, red on error)"),
33
+ showCount: zod.z.boolean().optional().describe("Show character count (requires maxLength)"),
34
+ maxLength: zod.z.number().optional().describe("Maximum character count"),
35
+ clearable: zod.z.boolean().optional().describe("Clear input via X button"),
36
+ placeholder: zod.z.string().optional().describe("Placeholder"),
37
+ disabled: zod.z.boolean().optional().describe("Disabled"),
38
+ readOnly: zod.z.boolean().optional().describe("Read-only"),
39
+ value: zod.z.string().optional().describe("Input value (controlled mode)"),
40
+ defaultValue: zod.z.string().optional().describe("Initial value (uncontrolled mode)"),
41
+ type: zod.z.string().optional().describe("Input type (text, password, email, url, etc.)"),
42
+ name: zod.z.string().optional().describe("Form field name"),
43
+ id: zod.z.string().optional().describe("Element ID (for label htmlFor binding)"),
44
+ autoFocus: zod.z.boolean().optional().describe("Auto focus"),
45
+ autoComplete: zod.z.string().optional().describe("Autocomplete hint (on, off, email, etc.)"),
46
+ onValueChange: zod.z.any().optional().describe("Value change callback (value: string) => void"),
47
+ onChange: zod.z.any().optional().describe("Native change event handler"),
48
+ onBlur: zod.z.any().optional().describe("Blur callback"),
49
+ onFocus: zod.z.any().optional().describe("Focus callback"),
50
+ className: zod.z.string().optional().describe("Style override")
51
+ }).describe("Text input field. Supports label, description, prefix/suffix icons, clearable, character counter.");
37
52
  var textAreaPropsSchema = zod.z.object({
38
- error: zod.z.boolean().optional().describe("\uC5D0\uB7EC \uC0C1\uD0DC (aria-invalid \uC790\uB3D9)"),
39
- showCount: zod.z.boolean().optional().describe("\uAE00\uC790 \uC218 \uD45C\uC2DC (maxLength \uD544\uC694)"),
40
- maxLength: zod.z.number().optional().describe("\uCD5C\uB300 \uAE00\uC790 \uC218"),
41
- placeholder: zod.z.string().optional().describe("\uD50C\uB808\uC774\uC2A4\uD640\uB354"),
42
- rows: zod.z.number().optional().describe("\uD45C\uC2DC \uC904 \uC218"),
43
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131"),
44
- onValueChange: zod.z.any().optional().describe("\uAC12 \uBCC0\uACBD \uCF5C\uBC31 (value: string) => void"),
45
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
46
- }).describe("\uC5EC\uB7EC \uC904 \uD14D\uC2A4\uD2B8 \uC785\uB825. \uAE00\uC790 \uC218 \uCE74\uC6B4\uD130 \uB0B4\uC7A5.");
53
+ error: zod.z.boolean().optional().describe("Error state (auto aria-invalid)"),
54
+ showCount: zod.z.boolean().optional().describe("Show character count (requires maxLength)"),
55
+ maxLength: zod.z.number().optional().describe("Maximum character count"),
56
+ placeholder: zod.z.string().optional().describe("Placeholder"),
57
+ rows: zod.z.number().optional().describe("Visible row count"),
58
+ disabled: zod.z.boolean().optional().describe("Disabled"),
59
+ readOnly: zod.z.boolean().optional().describe("Read-only"),
60
+ value: zod.z.string().optional().describe("Input value (controlled mode)"),
61
+ defaultValue: zod.z.string().optional().describe("Initial value (uncontrolled mode)"),
62
+ name: zod.z.string().optional().describe("Form field name"),
63
+ id: zod.z.string().optional().describe("Element ID"),
64
+ autoFocus: zod.z.boolean().optional().describe("Auto focus"),
65
+ onValueChange: zod.z.any().optional().describe("Value change callback (value: string) => void"),
66
+ onChange: zod.z.any().optional().describe("Native change event handler"),
67
+ onBlur: zod.z.any().optional().describe("Blur callback"),
68
+ onFocus: zod.z.any().optional().describe("Focus callback"),
69
+ className: zod.z.string().optional().describe("Style override")
70
+ }).describe("Multi-line text input. Built-in character counter.");
47
71
  var selectPropsSchema = zod.z.object({
48
- value: zod.z.string().optional().describe("\uC120\uD0DD\uB41C \uAC12"),
49
- placeholder: zod.z.string().optional().describe("\uD50C\uB808\uC774\uC2A4\uD640\uB354"),
50
- variant: zod.z.enum(["default", "outline"]).default("default").describe("\uD2B8\uB9AC\uAC70 \uC2A4\uD0C0\uC77C"),
51
- size: zod.z.enum(["sm", "md", "lg", "full"]).default("full").describe("\uB108\uBE44"),
52
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131"),
53
- onValueChange: zod.z.any().optional().describe("\uAC12 \uBCC0\uACBD \uCF5C\uBC31 (value: string) => void"),
54
- displayComponent: zod.z.any().optional().describe("\uD2B8\uB9AC\uAC70\uC5D0 \uCEE4\uC2A4\uD140 \uD45C\uC2DC (ReactNode)"),
55
- children: zod.z.any().describe("SelectItem \uBAA9\uB85D (ReactNode, \uD544\uC218)"),
56
- className: zod.z.string().optional().describe("\uB798\uD37C \uC2A4\uD0C0\uC77C"),
57
- triggerClassName: zod.z.string().optional().describe("\uD2B8\uB9AC\uAC70 \uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
58
- }).describe("\uB4DC\uB86D\uB2E4\uC6B4 \uC120\uD0DD. Radix Select \uAE30\uBC18. SelectItem\uACFC \uD568\uAED8 \uC0AC\uC6A9.");
72
+ value: zod.z.string().optional().describe("Selected value"),
73
+ placeholder: zod.z.string().optional().describe("Placeholder"),
74
+ variant: zod.z.enum(["default", "outline"]).default("default").describe("Trigger style"),
75
+ size: zod.z.enum(["sm", "md", "lg", "full"]).default("full").describe("Width"),
76
+ disabled: zod.z.boolean().optional().describe("Disabled"),
77
+ onValueChange: zod.z.any().optional().describe("Value change callback (value: string) => void"),
78
+ displayComponent: zod.z.any().optional().describe("Custom display in trigger (ReactNode)"),
79
+ children: zod.z.any().describe("SelectItem list (ReactNode, required)"),
80
+ className: zod.z.string().optional().describe("Wrapper style"),
81
+ triggerClassName: zod.z.string().optional().describe("Trigger style override")
82
+ }).describe("Dropdown select. Based on Radix Select. Used with SelectItem.");
59
83
  var selectItemPropsSchema = zod.z.object({
60
- value: zod.z.string().describe("\uD56D\uBAA9 \uAC12"),
61
- children: zod.z.any().describe("\uD56D\uBAA9 \uB0B4\uC6A9 (ReactNode, \uD544\uC218)"),
62
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131"),
63
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
64
- }).describe("Select \uB0B4 \uAC1C\uBCC4 \uC635\uC158.");
84
+ value: zod.z.string().describe("Item value"),
85
+ children: zod.z.any().describe("Item content (ReactNode, required)"),
86
+ disabled: zod.z.boolean().optional().describe("Disabled"),
87
+ className: zod.z.string().optional().describe("Style override")
88
+ }).describe("Individual option within Select.");
65
89
  var checkBoxPropsSchema = zod.z.object({
66
- size: zod.z.enum(["sm", "md"]).default("md").describe("\uD06C\uAE30"),
67
- shape: zod.z.enum(["square", "round"]).default("square").describe("\uD615\uD0DC"),
68
- checked: zod.z.boolean().optional().describe("\uCCB4\uD06C \uC0C1\uD0DC"),
69
- indeterminate: zod.z.boolean().optional().describe('\uBD88\uD655\uC815 \uC0C1\uD0DC (aria-checked="mixed")'),
70
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131"),
71
- readOnly: zod.z.boolean().optional().describe("\uC77D\uAE30 \uC804\uC6A9. \uB124\uC774\uD2F0\uBE0C input readOnly\uC640 \uB3D9\uC77C\uD558\uAC8C \uCCB4\uD06C \uC0C1\uD0DC \uBCC0\uACBD \uBD88\uAC00"),
72
- label: zod.z.any().optional().describe("\uB77C\uBCA8 \uD14D\uC2A4\uD2B8 (ReactNode)"),
73
- onCheckedChange: zod.z.any().optional().describe("\uCCB4\uD06C \uC0C1\uD0DC \uBCC0\uACBD \uCF5C\uBC31 (checked: boolean) => void"),
74
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
75
- }).describe("\uCCB4\uD06C\uBC15\uC2A4. \uB124\uC774\uD2F0\uBE0C input \uAE30\uBC18, square/round \uD615\uD0DC \uC9C0\uC6D0.");
90
+ size: zod.z.enum(["sm", "md"]).default("md").describe("Size"),
91
+ shape: zod.z.enum(["square", "round"]).default("square").describe("Shape"),
92
+ checked: zod.z.boolean().optional().describe("Checked state"),
93
+ indeterminate: zod.z.boolean().optional().describe('Indeterminate state (aria-checked="mixed")'),
94
+ disabled: zod.z.boolean().optional().describe("Disabled"),
95
+ readOnly: zod.z.boolean().optional().describe("Read-only"),
96
+ label: zod.z.any().optional().describe("Label text (ReactNode)"),
97
+ children: zod.z.any().optional().describe("Label alternative content (ReactNode)"),
98
+ name: zod.z.string().optional().describe("Form field name"),
99
+ id: zod.z.string().optional().describe("Element ID"),
100
+ value: zod.z.string().optional().describe("Value for form submission"),
101
+ onCheckedChange: zod.z.any().optional().describe("Checked state change callback (checked: boolean) => void"),
102
+ onChange: zod.z.any().optional().describe("Native change event handler"),
103
+ className: zod.z.string().optional().describe("Style override")
104
+ }).describe("Checkbox. Native input-based, supports square/round shapes.");
76
105
  var radioGroupPropsSchema = zod.z.object({
77
- name: zod.z.string().describe("form name (\uD544\uC218)"),
78
- value: zod.z.string().optional().describe("\uC120\uD0DD\uB41C \uAC12 (\uC81C\uC5B4)"),
79
- defaultValue: zod.z.string().optional().describe("\uCD08\uAE30\uAC12 (\uBE44\uC81C\uC5B4)"),
80
- size: zod.z.enum(["sm", "md"]).default("md").describe("\uD06C\uAE30"),
81
- orientation: zod.z.enum(["horizontal", "vertical"]).default("vertical").describe("\uBC30\uCE58 \uBC29\uD5A5"),
82
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131"),
83
- "aria-label": zod.z.string().optional().describe("\uC811\uADFC\uC131 \uB77C\uBCA8"),
84
- onValueChange: zod.z.any().optional().describe("\uAC12 \uBCC0\uACBD \uCF5C\uBC31 (value: string) => void"),
85
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
86
- }).describe("\uB77C\uB514\uC624 \uADF8\uB8F9. RadioItem\uACFC \uD568\uAED8 \uC0AC\uC6A9.");
106
+ name: zod.z.string().describe("Form name (required)"),
107
+ value: zod.z.string().optional().describe("Selected value (controlled)"),
108
+ defaultValue: zod.z.string().optional().describe("Initial value (uncontrolled)"),
109
+ size: zod.z.enum(["sm", "md"]).default("md").describe("Size"),
110
+ orientation: zod.z.enum(["horizontal", "vertical"]).default("vertical").describe("Layout direction"),
111
+ disabled: zod.z.boolean().optional().describe("Disabled"),
112
+ children: zod.z.any().describe("RadioItem list (ReactNode, required)"),
113
+ "aria-label": zod.z.string().optional().describe("Accessibility label"),
114
+ "aria-labelledby": zod.z.string().optional().describe("Accessibility label reference ID"),
115
+ onValueChange: zod.z.any().optional().describe("Value change callback (value: string) => void"),
116
+ className: zod.z.string().optional().describe("Style override")
117
+ }).describe("Radio group. Used with RadioItem.");
87
118
  var radioItemPropsSchema = zod.z.object({
88
- value: zod.z.string().describe("\uD56D\uBAA9 \uAC12 (\uD544\uC218)"),
89
- size: zod.z.enum(["sm", "md"]).optional().describe("\uD06C\uAE30 (\uADF8\uB8F9\uBCF4\uB2E4 \uC6B0\uC120)"),
90
- label: zod.z.any().optional().describe("\uB77C\uBCA8 \uD14D\uC2A4\uD2B8 (ReactNode)"),
91
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131")
92
- }).describe("RadioGroup \uB0B4 \uAC1C\uBCC4 \uC635\uC158.");
119
+ value: zod.z.string().describe("Item value (required)"),
120
+ size: zod.z.enum(["sm", "md"]).optional().describe("Size (overrides group)"),
121
+ label: zod.z.any().optional().describe("Label text (ReactNode)"),
122
+ children: zod.z.any().optional().describe("Label alternative content (ReactNode)"),
123
+ disabled: zod.z.boolean().optional().describe("Disabled"),
124
+ className: zod.z.string().optional().describe("Style override")
125
+ }).describe("Individual option within RadioGroup.");
93
126
  var switchPropsSchema = zod.z.object({
94
- size: zod.z.enum(["sm", "md"]).default("md").describe("\uD06C\uAE30"),
95
- checked: zod.z.boolean().optional().describe("on/off \uC0C1\uD0DC"),
96
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131"),
97
- readOnly: zod.z.boolean().optional().describe("\uC77D\uAE30 \uC804\uC6A9. \uB124\uC774\uD2F0\uBE0C input readOnly\uC640 \uB3D9\uC77C\uD558\uAC8C on/off \uC0C1\uD0DC \uBCC0\uACBD \uBD88\uAC00"),
98
- onCheckedChange: zod.z.any().optional().describe("\uD1A0\uAE00 \uC0C1\uD0DC \uBCC0\uACBD \uCF5C\uBC31 (checked: boolean) => void"),
99
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
100
- }).describe('\uD1A0\uAE00 \uC2A4\uC704\uCE58. \uB124\uC774\uD2F0\uBE0C checkbox \uAE30\uBC18, role="switch".');
127
+ size: zod.z.enum(["sm", "md"]).default("md").describe("Size"),
128
+ checked: zod.z.boolean().optional().describe("On/off state"),
129
+ disabled: zod.z.boolean().optional().describe("Disabled"),
130
+ readOnly: zod.z.boolean().optional().describe("Read-only"),
131
+ name: zod.z.string().optional().describe("Form field name"),
132
+ id: zod.z.string().optional().describe("Element ID"),
133
+ onCheckedChange: zod.z.any().optional().describe("Toggle state change callback (checked: boolean) => void"),
134
+ onChange: zod.z.any().optional().describe("Native change event handler (ChangeEvent)"),
135
+ className: zod.z.string().optional().describe("Style override")
136
+ }).describe('Toggle switch. Native checkbox-based, role="switch".');
101
137
  var chipPropsSchema = zod.z.object({
102
- variant: zod.z.enum(["default", "filled", "outline", "accent"]).default("default").describe("\uC2A4\uD0C0\uC77C"),
103
- size: zod.z.enum(["sm", "md", "lg"]).default("md").describe("\uD06C\uAE30"),
104
- asChild: zod.z.boolean().optional().describe("true\uBA74 \uC790\uC2DD \uC694\uC18C\uB85C \uB80C\uB354\uB9C1 (Slot \uD328\uD134)"),
105
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131 (aria-disabled \uC790\uB3D9)"),
106
- onClose: zod.z.any().optional().describe("\uB2EB\uAE30 \uBC84\uD2BC \uD074\uB9AD \uCF5C\uBC31 () => void"),
107
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
108
- }).describe("\uCE69/\uD0DC\uADF8/\uBC43\uC9C0. onClose prop\uC73C\uB85C \uB2EB\uAE30 \uBC84\uD2BC \uD45C\uC2DC.");
138
+ variant: zod.z.enum(["default", "filled", "outline", "accent"]).default("default").describe("Style"),
139
+ size: zod.z.enum(["sm", "md", "lg"]).default("md").describe("Size"),
140
+ asChild: zod.z.boolean().optional().describe("If true, renders as child element (Slot pattern)"),
141
+ disabled: zod.z.boolean().optional().describe("Disabled (auto aria-disabled)"),
142
+ children: zod.z.any().optional().describe("Chip content (ReactNode)"),
143
+ onClose: zod.z.any().optional().describe("Close button click callback (e: MouseEvent) => void. Shows X button when provided"),
144
+ onClick: zod.z.any().optional().describe("Click event handler"),
145
+ className: zod.z.string().optional().describe("Style override")
146
+ }).describe("Chip/tag/badge. Close button displayed via onClose prop.");
109
147
  var spinnerPropsSchema = zod.z.object({
110
- size: zod.z.number().default(20).describe("px \uD06C\uAE30"),
111
- "aria-label": zod.z.string().default("Loading").describe("\uC811\uADFC\uC131 \uB77C\uBCA8"),
112
- className: zod.z.string().optional().describe("\uC0C9\uC0C1 \uB4F1 \uC624\uBC84\uB77C\uC774\uB4DC")
113
- }).describe('\uB85C\uB529 \uC778\uB514\uCF00\uC774\uD130. SVG \uAE30\uBC18. role="status" \uB0B4\uC7A5.');
148
+ size: zod.z.number().default(20).describe("Size in px"),
149
+ color: zod.z.string().optional().describe("Color (CSS color value, default currentColor)"),
150
+ "aria-label": zod.z.string().default("Loading").describe("Accessibility label"),
151
+ style: zod.z.any().optional().describe("Inline style (CSSProperties)"),
152
+ className: zod.z.string().optional().describe("Color override etc.")
153
+ }).describe('Loading indicator. SVG-based. Built-in role="status".');
114
154
  var skeletonPropsSchema = zod.z.object({
115
- as: zod.z.enum(["div", "span"]).default("div").describe("\uB80C\uB354\uB9C1 \uD0DC\uADF8"),
116
- circle: zod.z.boolean().default(false).describe("\uC6D0\uD615 \uC2A4\uCF08\uB808\uD1A4 (rounded-full)"),
117
- width: zod.z.union([zod.z.string(), zod.z.number()]).optional().describe("\uB108\uBE44 (\uC608: '100px', '50%', 200)"),
118
- height: zod.z.union([zod.z.string(), zod.z.number()]).optional().describe("\uB192\uC774 (\uC608: '16px', 40)"),
119
- children: zod.z.any().optional().describe("\uB0B4\uBD80 \uCF58\uD150\uCE20 (\uB85C\uB529 \uC644\uB8CC \uC2DC \uD45C\uC2DC, \uC2E4\uC81C \uD06C\uAE30 \uC720\uC9C0\uC6A9)"),
120
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
155
+ as: zod.z.enum(["div", "span"]).default("div").describe("Rendered tag"),
156
+ circle: zod.z.boolean().default(false).describe("Circle skeleton (rounded-full)"),
157
+ width: zod.z.union([zod.z.string(), zod.z.number()]).optional().describe("Width (e.g. '100px', '50%', 200)"),
158
+ height: zod.z.union([zod.z.string(), zod.z.number()]).optional().describe("Height (e.g. '16px', 40)"),
159
+ children: zod.z.any().optional().describe("Inner content (shown when loaded, maintains actual size)"),
160
+ style: zod.z.any().optional().describe("Inline style (CSSProperties)"),
161
+ className: zod.z.string().optional().describe("Style override")
121
162
  }).describe(
122
- "\uC2A4\uCF08\uB808\uD1A4 \uB85C\uB529 \uD50C\uB808\uC774\uC2A4\uD640\uB354. className\uC73C\uB85C \uD06C\uAE30/\uBAA8\uC591 \uC870\uC808. children\uC774 \uC788\uC73C\uBA74 \uD22C\uBA85\uD558\uAC8C \uAC10\uC2F8\uC11C \uC2E4\uC81C \uD06C\uAE30 \uC720\uC9C0."
163
+ "Skeleton loading placeholder. Size/shape via className. With children, wraps transparently to maintain actual size."
123
164
  );
124
165
  var dividerPropsSchema = zod.z.object({
125
- orientation: zod.z.enum(["horizontal", "vertical"]).default("horizontal").describe("\uBC29\uD5A5"),
126
- variant: zod.z.enum(["solid", "dashed", "dotted"]).default("solid").describe("\uC120 \uC2A4\uD0C0\uC77C"),
127
- color: zod.z.string().optional().describe("\uCEE4\uC2A4\uD140 \uC0C9\uC0C1 (CSS \uAC12)"),
128
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
129
- }).describe("\uAD6C\uBD84\uC120. \uC218\uD3C9/\uC218\uC9C1 \uBC29\uD5A5, \uC2E4\uC120/\uC810\uC120/\uD30C\uC120 \uC9C0\uC6D0.");
166
+ orientation: zod.z.enum(["horizontal", "vertical"]).default("horizontal").describe("Direction"),
167
+ variant: zod.z.enum(["solid", "dashed", "dotted"]).default("solid").describe("Line style"),
168
+ color: zod.z.string().optional().describe("Custom color (CSS value)"),
169
+ style: zod.z.any().optional().describe("Inline style (CSSProperties)"),
170
+ className: zod.z.string().optional().describe("Style override")
171
+ }).describe("Divider. Supports horizontal/vertical, solid/dashed/dotted.");
130
172
  var tooltipPropsSchema = zod.z.object({
131
- children: zod.z.any().describe("\uD2B8\uB9AC\uAC70 \uC694\uC18C (ReactNode, \uD544\uC218)"),
132
- content: zod.z.any().describe("\uD234\uD301 \uB0B4\uC6A9 (ReactNode, \uD544\uC218)"),
133
- variant: zod.z.enum(["dark", "light"]).default("dark").describe("\uC2A4\uD0C0\uC77C"),
134
- side: zod.z.enum(["top", "right", "bottom", "left"]).default("top").describe("\uC704\uCE58"),
135
- align: zod.z.enum(["start", "center", "end"]).default("center").describe("\uC815\uB82C"),
136
- delayDuration: zod.z.number().default(200).describe("\uD45C\uC2DC \uC9C0\uC5F0 (ms)"),
137
- disabled: zod.z.boolean().default(false).describe("\uBE44\uD65C\uC131"),
138
- className: zod.z.string().optional().describe("Content \uC2A4\uD0C0\uC77C"),
139
- triggerClassName: zod.z.string().optional().describe("Trigger \uC2A4\uD0C0\uC77C")
140
- }).describe("\uD234\uD301. Radix Tooltip \uAE30\uBC18. Provider \uB0B4\uC7A5.");
173
+ children: zod.z.any().describe("Trigger element (ReactNode, required)"),
174
+ content: zod.z.any().describe("Tooltip content (ReactNode, required)"),
175
+ variant: zod.z.enum(["dark", "light"]).default("dark").describe("Style"),
176
+ side: zod.z.enum(["top", "right", "bottom", "left"]).default("top").describe("Position"),
177
+ align: zod.z.enum(["start", "center", "end"]).default("center").describe("Alignment"),
178
+ delayDuration: zod.z.number().default(200).describe("Show delay (ms)"),
179
+ disabled: zod.z.boolean().default(false).describe("Disabled"),
180
+ className: zod.z.string().optional().describe("Content style"),
181
+ triggerClassName: zod.z.string().optional().describe("Trigger style")
182
+ }).describe("Tooltip. Based on Radix Tooltip. Built-in Provider.");
141
183
  var popoverPropsSchema = zod.z.object({
142
- trigger: zod.z.any().describe("\uD2B8\uB9AC\uAC70 \uC694\uC18C (ReactNode, \uD544\uC218)"),
143
- side: zod.z.enum(["top", "right", "bottom", "left"]).default("bottom").describe("\uC704\uCE58"),
144
- align: zod.z.enum(["start", "center", "end"]).default("center").describe("\uC815\uB82C"),
145
- sideOffset: zod.z.number().default(4).describe("\uC704\uCE58 \uC624\uD504\uC14B (px)"),
146
- alignOffset: zod.z.number().optional().describe("\uC815\uB82C \uC624\uD504\uC14B (px)"),
147
- open: zod.z.boolean().optional().describe("\uC81C\uC5B4 \uBAA8\uB4DC"),
148
- onOpenChange: zod.z.any().optional().describe("\uC5F4\uB9BC/\uB2EB\uD798 \uC0C1\uD0DC \uBCC0\uACBD \uCF5C\uBC31 (open: boolean) => void"),
149
- onClickTrigger: zod.z.any().optional().describe("\uD2B8\uB9AC\uAC70 \uC694\uC18C \uD074\uB9AD \uC2DC \uD638\uCD9C\uB418\uB294 \uCF5C\uBC31. PopoverPrimitive.Trigger\uC758 onClick\uC5D0 \uC804\uB2EC\uB428."),
150
- children: zod.z.any().optional().describe("\uD31D\uC624\uBC84 \uBCF8\uBB38 (ReactNode)"),
151
- className: zod.z.string().optional().describe("Content \uC2A4\uD0C0\uC77C"),
152
- arrowClassName: zod.z.string().optional().describe("Arrow \uC2A4\uD0C0\uC77C")
153
- }).describe("\uD31D\uC624\uBC84. Radix Popover \uAE30\uBC18.");
184
+ trigger: zod.z.any().describe("Trigger element (ReactNode, required)"),
185
+ side: zod.z.enum(["top", "right", "bottom", "left"]).default("bottom").describe("Position"),
186
+ align: zod.z.enum(["start", "center", "end"]).default("center").describe("Alignment"),
187
+ sideOffset: zod.z.number().default(4).describe("Position offset (px)"),
188
+ alignOffset: zod.z.number().optional().describe("Alignment offset (px)"),
189
+ open: zod.z.boolean().optional().describe("Controlled mode"),
190
+ onOpenChange: zod.z.any().optional().describe("Open/close state change callback (open: boolean) => void"),
191
+ onClickTrigger: zod.z.any().optional().describe("Callback on trigger element click. Passed to PopoverPrimitive.Trigger onClick."),
192
+ children: zod.z.any().optional().describe("Popover body (ReactNode)"),
193
+ className: zod.z.string().optional().describe("Content style"),
194
+ arrowClassName: zod.z.string().optional().describe("Arrow style")
195
+ }).describe("Popover. Based on Radix Popover.");
154
196
  var accordionItemData = zod.z.object({
155
- id: zod.z.string().describe("\uACE0\uC720 ID"),
156
- trigger: zod.z.any().describe("\uD2B8\uB9AC\uAC70 \uB0B4\uC6A9 (ReactNode)"),
157
- content: zod.z.any().describe("\uD3BC\uCE68 \uB0B4\uC6A9 (ReactNode)"),
158
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131"),
197
+ id: zod.z.string().describe("Unique ID"),
198
+ trigger: zod.z.any().describe("Trigger content (ReactNode)"),
199
+ content: zod.z.any().describe("Expandable content (ReactNode)"),
200
+ disabled: zod.z.boolean().optional().describe("Disabled"),
159
201
  className: zod.z.string().optional(),
160
202
  triggerClassName: zod.z.string().optional(),
161
203
  contentClassName: zod.z.string().optional()
162
204
  });
163
205
  var accordionPropsSchema = zod.z.object({
164
- items: zod.z.array(accordionItemData).describe("\uC544\uCF54\uB514\uC5B8 \uD56D\uBAA9 \uBC30\uC5F4 (\uD544\uC218)"),
165
- type: zod.z.enum(["single", "multiple"]).default("single").describe("\uB2E8\uC77C/\uB2E4\uC911 \uC5F4\uAE30"),
166
- collapsible: zod.z.boolean().default(true).describe("\uC804\uBD80 \uC811\uAE30 \uAC00\uB2A5"),
167
- value: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).optional().describe("\uC81C\uC5B4 \uBAA8\uB4DC"),
168
- defaultValue: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).optional().describe("\uBE44\uC81C\uC5B4 \uCD08\uAE30\uAC12"),
169
- onValueChange: zod.z.any().optional().describe("\uC5F4\uB9B0 \uD56D\uBAA9 \uBCC0\uACBD \uCF5C\uBC31 (value: string | string[]) => void"),
170
- className: zod.z.string().optional().describe("Root \uC2A4\uD0C0\uC77C")
171
- }).describe("\uC544\uCF54\uB514\uC5B8. items \uBC30\uC5F4 \uBC29\uC2DD\uACFC \uCEF4\uD3EC\uC800\uBE14 \uBC29\uC2DD \uBAA8\uB450 \uC9C0\uC6D0.");
206
+ items: zod.z.array(accordionItemData).describe("Accordion item array (required)"),
207
+ type: zod.z.enum(["single", "multiple"]).default("single").describe("Single/multiple open mode"),
208
+ collapsible: zod.z.boolean().default(true).describe("Allow collapsing all"),
209
+ value: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).optional().describe("Controlled mode"),
210
+ defaultValue: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).optional().describe("Uncontrolled initial value"),
211
+ onValueChange: zod.z.any().optional().describe("Open item change callback (value: string | string[]) => void"),
212
+ className: zod.z.string().optional().describe("Root style")
213
+ }).describe("Accordion. Supports both items array and composable patterns.");
172
214
  var drawerDirection = zod.z.enum(["bottom", "top", "left", "right"]).default("bottom");
173
215
  var drawerPropsSchema = zod.z.object({
174
- direction: drawerDirection.describe("\uBC29\uD5A5"),
175
- children: zod.z.any().optional().describe("Drawer \uD558\uC704 \uCEF4\uD3EC\uB10C\uD2B8 (ReactNode)")
176
- }).describe("\uB4DC\uB85C\uC5B4/\uBC14\uD140\uC2DC\uD2B8. Vaul \uAE30\uBC18. \uD569\uC131 \uCEF4\uD3EC\uB10C\uD2B8 \uD328\uD134.");
216
+ direction: drawerDirection.describe("Direction"),
217
+ open: zod.z.boolean().optional().describe("Open state (controlled mode)"),
218
+ onOpenChange: zod.z.any().optional().describe("Open state change callback (open: boolean) => void"),
219
+ dismissible: zod.z.boolean().optional().describe("Allow close via swipe/outside click (default true)"),
220
+ modal: zod.z.boolean().optional().describe("Modal mode (default true). If false, background is interactive"),
221
+ shouldScaleBackground: zod.z.boolean().optional().describe("Background scale effect (default false)"),
222
+ children: zod.z.any().describe("Drawer sub-components (ReactNode, required)")
223
+ }).describe("Drawer/bottom sheet. Based on Vaul. Compound component pattern.");
177
224
  var drawerContentPropsSchema = zod.z.object({
178
- direction: drawerDirection.optional().describe("\uBC29\uD5A5 (Context \uC6B0\uC120)"),
179
- blur: zod.z.enum(["none", "sm", "md"]).default("none").describe("\uC624\uBC84\uB808\uC774 \uBE14\uB7EC"),
180
- showHandle: zod.z.boolean().default(true).describe("\uD578\uB4E4 \uBC14 \uD45C\uC2DC"),
181
- children: zod.z.any().optional().describe("\uCEE8\uD150\uCE20 \uC601\uC5ED (ReactNode)"),
182
- overlayClassName: zod.z.string().optional().describe("\uC624\uBC84\uB808\uC774 \uC2A4\uD0C0\uC77C"),
183
- className: zod.z.string().optional().describe("\uD328\uB110 \uC2A4\uD0C0\uC77C")
184
- }).describe("Drawer.Content \uC601\uC5ED.");
225
+ direction: drawerDirection.optional().describe("Direction (Context takes priority)"),
226
+ blur: zod.z.enum(["none", "sm", "md"]).default("none").describe("Overlay blur"),
227
+ showHandle: zod.z.boolean().default(true).describe("Show handle bar"),
228
+ children: zod.z.any().optional().describe("Content area (ReactNode)"),
229
+ overlayClassName: zod.z.string().optional().describe("Overlay style"),
230
+ className: zod.z.string().optional().describe("Panel style")
231
+ }).describe("Drawer.Content area.");
232
+ var drawerTriggerPropsSchema = zod.z.object({
233
+ asChild: zod.z.boolean().optional().describe("Render as child element"),
234
+ children: zod.z.any().describe("Trigger element (ReactNode, required)"),
235
+ className: zod.z.string().optional().describe("Style override")
236
+ }).describe("Drawer open trigger.");
237
+ var drawerClosePropsSchema = zod.z.object({
238
+ asChild: zod.z.boolean().optional().describe("Render as child element"),
239
+ children: zod.z.any().describe("Close element (ReactNode, required)"),
240
+ className: zod.z.string().optional().describe("Style override")
241
+ }).describe("Drawer close button.");
242
+ var drawerTitlePropsSchema = zod.z.object({
243
+ children: zod.z.any().describe("Title text (ReactNode, required)"),
244
+ className: zod.z.string().optional().describe("Style override")
245
+ }).describe("Drawer title (required for accessibility).");
246
+ var drawerDescriptionPropsSchema = zod.z.object({
247
+ children: zod.z.any().describe("Description text (ReactNode, required)"),
248
+ className: zod.z.string().optional().describe("Style override")
249
+ }).describe("Drawer description.");
185
250
  var tabItem = zod.z.object({
186
- key: zod.z.string().describe("\uD0ED \uACE0\uC720 \uD0A4"),
187
- label: zod.z.any().describe("\uD0ED \uB77C\uBCA8 (ReactNode)"),
188
- children: zod.z.any().optional().describe("\uD0ED \uD328\uB110 \uB0B4\uC6A9 (ReactNode)"),
189
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131")
251
+ key: zod.z.string().describe("Tab unique key"),
252
+ label: zod.z.any().describe("Tab label (ReactNode)"),
253
+ children: zod.z.any().optional().describe("Tab panel content (ReactNode)"),
254
+ disabled: zod.z.boolean().optional().describe("Disabled")
190
255
  });
191
256
  var tabPropsSchema = zod.z.object({
192
- items: zod.z.array(tabItem).describe("\uD0ED \uD56D\uBAA9 \uBC30\uC5F4 (\uD544\uC218)"),
193
- activeKey: zod.z.string().optional().describe("\uC81C\uC5B4 \uBAA8\uB4DC \uD65C\uC131 \uD0A4"),
194
- defaultActiveKey: zod.z.string().optional().describe("\uBE44\uC81C\uC5B4 \uCD08\uAE30 \uD0A4"),
195
- variant: zod.z.enum(["line", "pill"]).default("line").describe("\uC2A4\uD0C0\uC77C"),
196
- size: zod.z.enum(["sm", "md"]).default("md").describe("\uD06C\uAE30"),
197
- destroyInactive: zod.z.boolean().default(false).describe("\uBE44\uD65C\uC131 \uD328\uB110 \uC5B8\uB9C8\uC6B4\uD2B8"),
198
- onTabChange: zod.z.any().optional().describe("\uD0ED \uBCC0\uACBD \uCF5C\uBC31 (key: string) => void"),
199
- className: zod.z.string().optional().describe("\uB8E8\uD2B8 \uC2A4\uD0C0\uC77C"),
200
- tabListClassName: zod.z.string().optional().describe("\uD0ED \uB9AC\uC2A4\uD2B8 \uC2A4\uD0C0\uC77C"),
201
- tabPanelClassName: zod.z.string().optional().describe("\uD0ED \uD328\uB110 \uC2A4\uD0C0\uC77C")
202
- }).describe("\uD0ED \uB124\uBE44\uAC8C\uC774\uC158. line/pill \uBCC0\uD615.");
257
+ items: zod.z.array(tabItem).describe("Tab item array (required)"),
258
+ activeKey: zod.z.string().optional().describe("Controlled mode active key"),
259
+ defaultActiveKey: zod.z.string().optional().describe("Uncontrolled initial key"),
260
+ variant: zod.z.enum(["line", "pill"]).default("line").describe("Style"),
261
+ size: zod.z.enum(["sm", "md"]).default("md").describe("Size"),
262
+ destroyInactive: zod.z.boolean().default(false).describe("Unmount inactive panels"),
263
+ onTabChange: zod.z.any().optional().describe("Tab change callback (key: string) => void"),
264
+ className: zod.z.string().optional().describe("Root style"),
265
+ tabListClassName: zod.z.string().optional().describe("Tab list style"),
266
+ tabPanelClassName: zod.z.string().optional().describe("Tab panel style")
267
+ }).describe("Tab navigation. line/pill variants.");
203
268
  var carouselPropsSchema = zod.z.object({
204
- opts: zod.z.record(zod.z.any()).optional().describe("Embla \uC635\uC158 (loop, align \uB4F1)"),
205
- plugins: zod.z.array(zod.z.any()).optional().describe("Embla \uD50C\uB7EC\uADF8\uC778"),
206
- onApiChange: zod.z.any().optional().describe("Embla API \uBCC0\uACBD \uCF5C\uBC31 (api: CarouselApi) => void"),
207
- children: zod.z.any().optional().describe("\uCE90\uB7EC\uC140 \uC2AC\uB77C\uC774\uB4DC \uBC0F \uC11C\uBE0C \uCEF4\uD3EC\uB10C\uD2B8 (ReactNode)"),
208
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
269
+ opts: zod.z.record(zod.z.any()).optional().describe("Embla options (loop, align, etc.)"),
270
+ plugins: zod.z.array(zod.z.any()).optional().describe("Embla plugins"),
271
+ onApiChange: zod.z.any().optional().describe("Embla API change callback (api: CarouselApi) => void"),
272
+ children: zod.z.any().optional().describe("Carousel slides and sub-components (ReactNode)"),
273
+ className: zod.z.string().optional().describe("Style override")
209
274
  }).describe(
210
- "\uCE90\uB7EC\uC140. Embla Carousel \uAE30\uBC18. CarouselSlide, CarouselPrev, CarouselNext, CarouselDots \uC11C\uBE0C \uCEF4\uD3EC\uB10C\uD2B8."
275
+ "Carousel. Based on Embla Carousel. Sub-components: CarouselSlide, CarouselPrev, CarouselNext, CarouselDots."
211
276
  );
212
277
  var carouselSlidePropsSchema = zod.z.object({
213
- className: zod.z.string().optional().describe("\uC2AC\uB77C\uC774\uB4DC \uC2A4\uD0C0\uC77C (basis-1/3 \uB4F1\uC73C\uB85C \uBCF5\uC218 \uB178\uCD9C)"),
214
- children: zod.z.any().describe("\uC2AC\uB77C\uC774\uB4DC \uB0B4\uC6A9 (ReactNode, \uD544\uC218)")
215
- }).describe("\uCE90\uB7EC\uC140 \uC2AC\uB77C\uC774\uB4DC. Carousel \uB0B4\uBD80\uC5D0\uC11C \uC0AC\uC6A9.");
278
+ className: zod.z.string().optional().describe("Slide style (use basis-1/3 etc. for multi-slide view)"),
279
+ children: zod.z.any().describe("Slide content (ReactNode, required)")
280
+ }).describe("Carousel slide. Used inside Carousel.");
216
281
  var carouselButtonPropsSchema = zod.z.object({
217
- className: zod.z.string().optional().describe("\uBC84\uD2BC \uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC"),
218
- children: zod.z.any().optional().describe("\uCEE4\uC2A4\uD140 \uC544\uC774\uCF58 (ReactNode, \uAE30\uBCF8: chevron)")
219
- }).describe("CarouselPrev / CarouselNext. \uC774\uC804/\uB2E4\uC74C \uB0B4\uBE44\uAC8C\uC774\uC158 \uBC84\uD2BC.");
282
+ className: zod.z.string().optional().describe("Button style override"),
283
+ children: zod.z.any().optional().describe("Custom icon (ReactNode, default: chevron)")
284
+ }).describe("CarouselPrev / CarouselNext. Previous/next navigation buttons.");
220
285
  var carouselDotsPropsSchema = zod.z.object({
221
- className: zod.z.string().optional().describe("\uB3C4\uD2B8 \uCEE8\uD14C\uC774\uB108 \uC2A4\uD0C0\uC77C")
222
- }).describe("CarouselDots. \uC2AC\uB77C\uC774\uB4DC \uC778\uB514\uCF00\uC774\uD130 \uB3C4\uD2B8.");
286
+ className: zod.z.string().optional().describe("Dot container style")
287
+ }).describe("CarouselDots. Slide indicator dots.");
223
288
  var paginationPropsSchema = zod.z.object({
224
- currentPage: zod.z.number().describe("\uD604\uC7AC \uD398\uC774\uC9C0 (1\uBD80\uD130, \uD544\uC218)"),
225
- totalPages: zod.z.number().describe("\uC804\uCCB4 \uD398\uC774\uC9C0 \uC218 (\uD544\uC218)"),
226
- siblingCount: zod.z.number().default(1).describe("\uD604\uC7AC \uD398\uC774\uC9C0 \uC591\uC606 \uD45C\uC2DC \uAC1C\uC218"),
227
- showEdges: zod.z.boolean().optional().describe("\uCCAB/\uB05D \uD398\uC774\uC9C0 \uD56D\uC0C1 \uD45C\uC2DC"),
228
- size: zod.z.enum(["sm", "md"]).default("md").describe("\uD06C\uAE30"),
229
- onPageChange: zod.z.any().describe("\uD398\uC774\uC9C0 \uBCC0\uACBD \uCF5C\uBC31 (page: number) => void, \uD544\uC218"),
230
- className: zod.z.string().optional().describe("<nav> \uC2A4\uD0C0\uC77C")
231
- }).describe("\uD398\uC774\uC9C0\uB124\uC774\uC158. \uC774\uC804/\uB2E4\uC74C + \uBC88\uD638 \uBC84\uD2BC.");
289
+ currentPage: zod.z.number().describe("Current page (1-based, required)"),
290
+ totalPages: zod.z.number().describe("Total page count (required)"),
291
+ siblingCount: zod.z.number().default(1).describe("Number of pages shown on each side of current"),
292
+ showEdges: zod.z.boolean().optional().describe("Always show first/last page"),
293
+ size: zod.z.enum(["sm", "md"]).default("md").describe("Size"),
294
+ onPageChange: zod.z.any().describe("Page change callback (page: number) => void, required"),
295
+ className: zod.z.string().optional().describe("<nav> style")
296
+ }).describe("Pagination. Previous/next + page number buttons.");
232
297
  var avatarPropsSchema = zod.z.object({
233
- src: zod.z.string().optional().describe("\uC774\uBBF8\uC9C0 URL"),
234
- alt: zod.z.string().optional().describe("\uB300\uCCB4 \uD14D\uC2A4\uD2B8"),
235
- fallback: zod.z.any().optional().describe("\uC774\uBBF8\uC9C0 \uB85C\uB4DC \uC2E4\uD328 \uC2DC \uD45C\uC2DC (ReactNode)"),
236
- size: zod.z.enum(["xs", "sm", "md", "lg", "xl"]).default("md").describe("\uD06C\uAE30"),
237
- shape: zod.z.enum(["circle", "square"]).default("circle").describe("\uD615\uD0DC"),
238
- children: zod.z.any().optional().describe("\uCEE4\uC2A4\uD140 \uC774\uBBF8\uC9C0 \uC694\uC18C (\uC608: Next.js Image)"),
239
- onImageError: zod.z.any().optional().describe("\uC774\uBBF8\uC9C0 \uB85C\uB4DC \uC2E4\uD328 \uCF5C\uBC31 () => void"),
240
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
241
- }).describe("\uC544\uBC14\uD0C0. \uC774\uBBF8\uC9C0, \uD3F4\uBC31 \uD14D\uC2A4\uD2B8, children \uC9C0\uC6D0.");
298
+ src: zod.z.string().optional().describe("Image URL"),
299
+ alt: zod.z.string().optional().describe("Alt text"),
300
+ fallback: zod.z.any().optional().describe("Displayed on image load failure (ReactNode)"),
301
+ size: zod.z.enum(["xs", "sm", "md", "lg", "xl"]).default("md").describe("Size"),
302
+ shape: zod.z.enum(["circle", "square"]).default("circle").describe("Shape"),
303
+ children: zod.z.any().optional().describe("Custom image element (e.g. Next.js Image)"),
304
+ onImageError: zod.z.any().optional().describe("Image load error callback () => void"),
305
+ className: zod.z.string().optional().describe("Style override")
306
+ }).describe("Avatar. Supports image, fallback text, and children.");
242
307
  var counterPropsSchema = zod.z.object({
243
- endValue: zod.z.number().describe("\uBAA9\uD45C \uAC12 (\uD544\uC218)"),
244
- startValue: zod.z.number().default(0).describe("\uC2DC\uC791 \uAC12"),
245
- duration: zod.z.number().default(1500).describe("\uC560\uB2C8\uBA54\uC774\uC158 \uC2DC\uAC04 (ms)"),
246
- delay: zod.z.number().default(0).describe("\uC2DC\uC791 \uC9C0\uC5F0 (ms)"),
247
- separator: zod.z.boolean().default(true).describe("\uCC9C \uB2E8\uC704 \uAD6C\uBD84"),
248
- digits: zod.z.number().default(0).describe("\uC18C\uC218 \uC790\uB9BF\uC218"),
249
- triggerOnView: zod.z.boolean().default(false).describe("\uBDF0\uD3EC\uD2B8 \uC9C4\uC785 \uC2DC \uC2DC\uC791"),
250
- onEnd: zod.z.any().optional().describe("\uCE74\uC6B4\uD2B8 \uC644\uB8CC \uCF5C\uBC31 () => void"),
251
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
252
- }).describe("\uC22B\uC790 \uCE74\uC6B4\uD2B8 \uC560\uB2C8\uBA54\uC774\uC158.");
308
+ endValue: zod.z.number().describe("Target value (required)"),
309
+ startValue: zod.z.number().default(0).describe("Start value"),
310
+ duration: zod.z.number().default(1500).describe("Animation duration (ms)"),
311
+ delay: zod.z.number().default(0).describe("Start delay (ms)"),
312
+ separator: zod.z.boolean().default(true).describe("Thousands separator"),
313
+ digits: zod.z.number().default(0).describe("Decimal places"),
314
+ triggerOnView: zod.z.boolean().default(false).describe("Start on viewport entry"),
315
+ onEnd: zod.z.any().optional().describe("Count complete callback () => void"),
316
+ style: zod.z.any().optional().describe("Inline style (CSSProperties)"),
317
+ className: zod.z.string().optional().describe("Style override")
318
+ }).describe("Number count animation.");
253
319
  var countdownPropsSchema = zod.z.object({
254
- endTimestamp: zod.z.number().describe("\uC885\uB8CC \uC2DC\uAC01 (Unix ms, \uD544\uC218)"),
255
- separator: zod.z.any().default(":").describe("\uAD6C\uBD84\uC790 (ReactNode)"),
256
- showDays: zod.z.boolean().default(true).describe("\uC77C \uB2E8\uC704 \uD45C\uC2DC"),
320
+ endTimestamp: zod.z.number().describe("End time (Unix ms, required)"),
321
+ separator: zod.z.any().default(":").describe("Separator (ReactNode)"),
322
+ showDays: zod.z.boolean().default(true).describe("Show days unit"),
257
323
  labels: zod.z.object({
258
324
  days: zod.z.string().optional(),
259
325
  hours: zod.z.string().optional(),
260
326
  minutes: zod.z.string().optional(),
261
327
  seconds: zod.z.string().optional()
262
- }).optional().describe("\uB2E8\uC704 \uB77C\uBCA8"),
263
- render: zod.z.any().optional().describe("\uCEE4\uC2A4\uD140 \uB80C\uB354 \uD568\uC218"),
264
- onEnd: zod.z.any().optional().describe("\uCE74\uC6B4\uD2B8\uB2E4\uC6B4 \uC885\uB8CC \uCF5C\uBC31 () => void"),
265
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
266
- }).describe("\uCE74\uC6B4\uD2B8\uB2E4\uC6B4 \uD0C0\uC774\uBA38.");
328
+ }).optional().describe("Unit labels"),
329
+ render: zod.z.any().optional().describe("Custom render function"),
330
+ onEnd: zod.z.any().optional().describe("Countdown end callback () => void"),
331
+ className: zod.z.string().optional().describe("Style override")
332
+ }).describe("Countdown timer.");
267
333
  var marqueePropsSchema = zod.z.object({
268
- direction: zod.z.enum(["left", "right", "up", "down"]).default("left").describe("\uBC29\uD5A5"),
269
- speed: zod.z.number().default(40).describe("\uC560\uB2C8\uBA54\uC774\uC158 \uC18D\uB3C4 (\uCD08)"),
270
- pauseOnHover: zod.z.boolean().default(false).describe("\uD638\uBC84 \uC2DC \uC77C\uC2DC\uC815\uC9C0"),
271
- gap: zod.z.number().default(16).describe("\uC544\uC774\uD15C \uAC04\uACA9 (px)"),
272
- children: zod.z.any().describe("\uBC18\uBCF5 \uD45C\uC2DC\uD560 \uCF58\uD150\uCE20 (ReactNode, \uD544\uC218)"),
273
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
274
- }).describe("\uB9C8\uD034 (\uD750\uB974\uB294 \uD14D\uC2A4\uD2B8/\uC694\uC18C).");
334
+ direction: zod.z.enum(["left", "right", "up", "down"]).default("left").describe("Direction"),
335
+ speed: zod.z.number().default(40).describe("Animation speed (seconds)"),
336
+ pauseOnHover: zod.z.boolean().default(false).describe("Pause on hover"),
337
+ gap: zod.z.number().default(16).describe("Item gap (px)"),
338
+ children: zod.z.any().describe("Content to repeat (ReactNode, required)"),
339
+ style: zod.z.any().optional().describe("Inline style (CSSProperties)"),
340
+ className: zod.z.string().optional().describe("Style override")
341
+ }).describe("Marquee (scrolling text/elements).");
275
342
  var virtualListPropsSchema = zod.z.object({
276
- items: zod.z.array(zod.z.any()).describe("\uB370\uC774\uD130 \uBC30\uC5F4 (\uD544\uC218)"),
277
- estimateSize: zod.z.union([zod.z.number(), zod.z.any()]).describe("\uC608\uC0C1 \uC544\uC774\uD15C \uB192\uC774 (number \uB610\uB294 \uD568\uC218, \uD544\uC218)"),
278
- renderItem: zod.z.any().describe("\uC544\uC774\uD15C \uB80C\uB354\uB7EC (\uD544\uC218)"),
279
- overscan: zod.z.number().default(5).describe("\uC624\uBC84\uC2A4\uCE94 \uC218"),
280
- gap: zod.z.number().default(0).describe("\uC544\uC774\uD15C \uAC04\uACA9 (px)"),
281
- className: zod.z.string().optional().describe("\uC2A4\uD06C\uB864 \uCEE8\uD14C\uC774\uB108 \uC2A4\uD0C0\uC77C"),
282
- endReachedThreshold: zod.z.number().default(200).describe("\uB05D \uAC10\uC9C0 \uC784\uACC4\uAC12 (px)"),
283
- onEndReached: zod.z.any().optional().describe("\uB05D \uB3C4\uB2EC \uCF5C\uBC31 () => void")
284
- }).describe("\uAC00\uC0C1 \uC2A4\uD06C\uB864 \uB9AC\uC2A4\uD2B8. @tanstack/react-virtual \uAE30\uBC18.");
343
+ items: zod.z.array(zod.z.any()).describe("Data array (required)"),
344
+ estimateSize: zod.z.union([zod.z.number(), zod.z.any()]).describe("Estimated item height (number or (index) => number, required)"),
345
+ renderItem: zod.z.any().describe("Item renderer (item, index, virtualItem) => ReactNode (required)"),
346
+ overscan: zod.z.number().default(5).describe("Overscan count"),
347
+ gap: zod.z.number().default(0).describe("Item gap (px)"),
348
+ className: zod.z.string().optional().describe("Scroll container style"),
349
+ style: zod.z.any().optional().describe("Inline style (CSSProperties)"),
350
+ endReachedThreshold: zod.z.number().default(200).describe("End detection threshold (px)"),
351
+ onEndReached: zod.z.any().optional().describe("End reached callback () => void")
352
+ }).describe("Virtual scroll list. Based on @tanstack/react-virtual.");
285
353
  var virtualGridPropsSchema = zod.z.object({
286
- items: zod.z.array(zod.z.any()).describe("\uB370\uC774\uD130 \uBC30\uC5F4 (\uD544\uC218)"),
287
- estimateSize: zod.z.union([zod.z.number(), zod.z.any()]).describe("\uC608\uC0C1 \uC544\uC774\uD15C \uB192\uC774 (\uD544\uC218)"),
288
- columns: zod.z.number().describe("\uC5F4 \uC218 (\uD544\uC218)"),
289
- renderItem: zod.z.any().describe("\uC544\uC774\uD15C \uB80C\uB354\uB7EC (\uD544\uC218)"),
290
- overscan: zod.z.number().default(3).describe("\uC624\uBC84\uC2A4\uCE94 \uC218"),
291
- gap: zod.z.number().default(0).describe("\uC544\uC774\uD15C \uAC04\uACA9 (px)"),
292
- endReachedThreshold: zod.z.number().default(200).describe("\uB05D \uAC10\uC9C0 \uC784\uACC4\uAC12 (px)"),
293
- onEndReached: zod.z.any().optional().describe("\uB05D \uB3C4\uB2EC \uCF5C\uBC31 () => void"),
294
- className: zod.z.string().optional().describe("\uC2A4\uD06C\uB864 \uCEE8\uD14C\uC774\uB108 \uC2A4\uD0C0\uC77C")
295
- }).describe("\uAC00\uC0C1 \uC2A4\uD06C\uB864 \uADF8\uB9AC\uB4DC. @tanstack/react-virtual \uAE30\uBC18.");
354
+ items: zod.z.array(zod.z.any()).describe("Data array (required)"),
355
+ columns: zod.z.number().describe("Column count (required)"),
356
+ estimateSize: zod.z.union([zod.z.number(), zod.z.any()]).describe("Estimated item height (required)"),
357
+ renderItem: zod.z.any().describe("Item renderer (item, index) => ReactNode (required)"),
358
+ overscan: zod.z.number().default(3).describe("Overscan count"),
359
+ gap: zod.z.number().default(0).describe("Item gap (px)"),
360
+ className: zod.z.string().optional().describe("Scroll container style"),
361
+ style: zod.z.any().optional().describe("Inline style (CSSProperties)"),
362
+ endReachedThreshold: zod.z.number().default(200).describe("End detection threshold (px)"),
363
+ onEndReached: zod.z.any().optional().describe("End reached callback () => void")
364
+ }).describe("Virtual scroll grid. Based on @tanstack/react-virtual.");
296
365
  var infiniteScrollPropsSchema = zod.z.object({
297
- list: zod.z.array(zod.z.any()).nullable().describe("\uD604\uC7AC \uB370\uC774\uD130 \uBC30\uC5F4 (\uD544\uC218)"),
298
- totalCount: zod.z.number().optional().describe("\uC804\uCCB4 \uAC1C\uC218 (hasMore\uC640 \uBC30\uD0C0\uC801 \uC0AC\uC6A9)"),
299
- hasMore: zod.z.boolean().optional().describe("\uB354 \uC788\uB294\uC9C0 (totalCount\uC640 \uBC30\uD0C0\uC801 \uC0AC\uC6A9)"),
300
- tag: zod.z.string().default("div").describe("children \uB798\uD37C \uD0DC\uADF8"),
301
- rootMargin: zod.z.number().default(100).describe("\uAC10\uC9C0 \uB9C8\uC9C4 (px)"),
302
- loading: zod.z.boolean().optional().describe("\uB85C\uB529 \uC0C1\uD0DC"),
303
- loadingElement: zod.z.any().optional().describe("\uCEE4\uC2A4\uD140 \uB85C\uB529 \uC694\uC18C"),
304
- handleLoadMore: zod.z.any().describe("\uCD94\uAC00 \uB85C\uB529 \uCF5C\uBC31 () => void, \uD544\uC218"),
305
- scrollTarget: zod.z.any().optional().describe("\uC2A4\uD06C\uB864 \uB300\uC0C1 \uC694\uC18C (HTMLElement | Document | MutableRefObject)"),
306
- children: zod.z.any().describe("\uB9AC\uC2A4\uD2B8 \uC544\uC774\uD15C \uB80C\uB354\uB9C1 (ReactNode, \uD544\uC218)"),
307
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
308
- }).describe("\uBB34\uD55C \uC2A4\uD06C\uB864. IntersectionObserver \uAE30\uBC18.");
366
+ list: zod.z.array(zod.z.any()).nullable().describe("Current data array (required)"),
367
+ totalCount: zod.z.number().optional().describe("Total count (mutually exclusive with hasMore)"),
368
+ hasMore: zod.z.boolean().optional().describe("Has more items (mutually exclusive with totalCount)"),
369
+ tag: zod.z.string().default("div").describe("Children wrapper tag"),
370
+ rootMargin: zod.z.number().default(100).describe("Detection margin (px)"),
371
+ loading: zod.z.boolean().optional().describe("Loading state"),
372
+ loadingElement: zod.z.any().optional().describe("Custom loading element"),
373
+ handleLoadMore: zod.z.any().describe("Load more callback () => void, required"),
374
+ scrollTarget: zod.z.any().optional().describe("Scroll target element (HTMLElement | Document | MutableRefObject)"),
375
+ children: zod.z.any().describe("List item rendering (ReactNode, required)"),
376
+ className: zod.z.string().optional().describe("Style override")
377
+ }).describe("Infinite scroll. Based on IntersectionObserver.");
309
378
  var ellipsisPropsSchema = zod.z.object({
310
- content: zod.z.any().default("").describe("\uBCF8\uBB38 (ReactNode)"),
311
- lineClamp: zod.z.number().default(2).describe("\uC904 \uC218 \uC81C\uD55C"),
312
- triggerMore: zod.z.any().default("more").describe("\uB354\uBCF4\uAE30 \uD14D\uC2A4\uD2B8 (ReactNode)"),
313
- triggerLess: zod.z.any().default("less").describe("\uC811\uAE30 \uD14D\uC2A4\uD2B8 (ReactNode)"),
314
- defaultShortened: zod.z.boolean().default(true).describe("\uCD08\uAE30 \uC811\uD798 \uC0C1\uD0DC"),
315
- observingEnvs: zod.z.array(zod.z.boolean()).optional().describe("\uC678\uBD80 \uC870\uAC74 \uBCC0\uACBD \uC2DC \uB9AC\uC0AC\uC774\uC988 \uC7AC\uCE21\uC815"),
316
- onShowMoreLessClick: zod.z.any().optional().describe("\uB354\uBCF4\uAE30/\uC811\uAE30 \uD074\uB9AD \uCF5C\uBC31 () => void"),
317
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
318
- }).describe("\uD14D\uC2A4\uD2B8 \uB9D0\uC904\uC784. \uB354\uBCF4\uAE30/\uC811\uAE30 \uD1A0\uAE00 \uB0B4\uC7A5.");
379
+ content: zod.z.any().default("").describe("Body text (ReactNode)"),
380
+ lineClamp: zod.z.number().default(2).describe("Line clamp limit"),
381
+ triggerMore: zod.z.any().default("more").describe("Show more text (ReactNode)"),
382
+ triggerLess: zod.z.any().default("less").describe("Show less text (ReactNode)"),
383
+ defaultShortened: zod.z.boolean().default(true).describe("Initial collapsed state"),
384
+ observingEnvs: zod.z.array(zod.z.boolean()).optional().describe("Re-measure on external condition change"),
385
+ onShowMoreLessClick: zod.z.any().optional().describe("Show more/less click callback () => void"),
386
+ className: zod.z.string().optional().describe("Style override")
387
+ }).describe("Text ellipsis. Built-in show more/less toggle.");
319
388
  var numberInputPropsSchema = zod.z.object({
320
- value: zod.z.union([zod.z.number(), zod.z.string()]).optional().describe("\uD604\uC7AC \uAC12"),
321
- size: zod.z.enum(["sm", "md", "lg", "xl"]).default("md").describe("\uD06C\uAE30"),
322
- error: zod.z.boolean().optional().describe("\uC5D0\uB7EC \uC0C1\uD0DC"),
323
- min: zod.z.number().optional().describe("\uCD5C\uC18C\uAC12"),
324
- max: zod.z.number().optional().describe("\uCD5C\uB300\uAC12"),
325
- step: zod.z.number().default(1).describe("\uC99D\uAC10 \uB2E8\uC704"),
326
- digit: zod.z.number().default(0).describe("\uC18C\uC218 \uC790\uB9BF\uC218"),
327
- hideButtons: zod.z.boolean().default(false).describe("\uAE30\uBCF8 \uC2A4\uD540 \uBC84\uD2BC \uC228\uAE40. numberInputBind\uB85C \uC678\uBD80 \uBC84\uD2BC\uC5D0 \uC774\uBCA4\uD2B8 \uBD80\uCC29 \uC2DC \uC0AC\uC6A9"),
328
- disabled: zod.z.boolean().optional().describe("\uBE44\uD65C\uC131"),
329
- readOnly: zod.z.boolean().optional().describe("\uC77D\uAE30 \uC804\uC6A9. \uC785\uB825\xB7\uC2A4\uD540 \uBC84\uD2BC\uC73C\uB85C \uAC12 \uBCC0\uACBD \uBD88\uAC00(\uC2A4\uD540 \uBC84\uD2BC\uC740 \uC228\uAE40)"),
330
- placeholder: zod.z.string().optional().describe("\uD50C\uB808\uC774\uC2A4\uD640\uB354"),
331
- onValueChange: zod.z.any().optional().describe("\uAC12 \uBCC0\uACBD \uCF5C\uBC31 (value: number | undefined) => void"),
332
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
389
+ value: zod.z.union([zod.z.number(), zod.z.string()]).optional().describe("Current value"),
390
+ size: zod.z.enum(["sm", "md", "lg", "xl"]).default("md").describe("Size"),
391
+ error: zod.z.boolean().optional().describe("Error state"),
392
+ min: zod.z.number().optional().describe("Minimum value"),
393
+ max: zod.z.number().optional().describe("Maximum value"),
394
+ step: zod.z.number().default(1).describe("Step increment"),
395
+ digit: zod.z.number().default(0).describe("Decimal places"),
396
+ hideButtons: zod.z.boolean().default(false).describe("Hide default spin buttons. Use with numberInputBind for external button event binding"),
397
+ disabled: zod.z.boolean().optional().describe("Disabled"),
398
+ readOnly: zod.z.boolean().optional().describe("Read-only (includes hiding spin buttons)"),
399
+ placeholder: zod.z.string().optional().describe("Placeholder"),
400
+ name: zod.z.string().optional().describe("Form field name"),
401
+ id: zod.z.string().optional().describe("Element ID"),
402
+ autoFocus: zod.z.boolean().optional().describe("Auto focus"),
403
+ onValueChange: zod.z.any().optional().describe("Value change callback (value: number | undefined) => void"),
404
+ onBlur: zod.z.any().optional().describe("Blur callback"),
405
+ onFocus: zod.z.any().optional().describe("Focus callback"),
406
+ className: zod.z.string().optional().describe("Style override")
333
407
  }).describe(
334
- "\uC22B\uC790 \uC785\uB825. \uAFB9 \uB204\uB974\uBA74 \uAC00\uC18D \uC99D\uAC10. ref\uB85C increment/decrement \uBA54\uC11C\uB4DC \uB178\uCD9C. numberInputBind(ref, direction) \uD568\uC218\uB85C \uC678\uBD80 \uBC84\uD2BC\uC5D0 \uB3D9\uC77C\uD55C \uAC00\uC18D \uC774\uBCA4\uD2B8 \uBC14\uC778\uB529 \uAC00\uB2A5."
408
+ "Number input. Accelerated increment on long press. Exposes increment/decrement methods via ref. numberInputBind(ref, direction) binds same acceleration to external buttons."
335
409
  );
336
410
  var dataListPropsSchema = zod.z.object({
337
- list: zod.z.array(zod.z.any()).nullable().describe("\uB80C\uB354\uB9C1\uD560 \uB370\uC774\uD130 \uBC30\uC5F4. null\uC774\uBA74 \uB85C\uB529 \uC0C1\uD0DC (\uD544\uC218)"),
338
- noDataMessage: zod.z.any().optional().describe("\uBE48 \uBC30\uC5F4\uC77C \uB54C \uD45C\uC2DC\uD560 \uBA54\uC2DC\uC9C0 (string | ReactElement)"),
339
- errorFallback: zod.z.any().optional().describe("\uC5D0\uB7EC \uBC1C\uC0DD \uC2DC \uD45C\uC2DC\uD560 fallback (ReactNode)"),
340
- loadingElement: zod.z.any().optional().describe("\uB85C\uB529 \uC911 \uD45C\uC2DC\uD560 \uCEE4\uC2A4\uD140 \uC694\uC18C (\uAE30\uBCF8: Spinner)"),
341
- skeletonElement: zod.z.any().optional().describe("\uB85C\uB529 \uC911 \uD45C\uC2DC\uD560 \uC2A4\uCF08\uB808\uD1A4 \uC694\uC18C (ReactElement)"),
342
- skeletonCount: zod.z.number().default(3).describe("\uC2A4\uCF08\uB808\uD1A4 \uBC18\uBCF5 \uAC1C\uC218"),
343
- loading: zod.z.boolean().default(false).describe("\uAC15\uC81C \uB85C\uB529 \uC0C1\uD0DC"),
344
- children: zod.z.any().describe("\uAC01 \uC544\uC774\uD15C \uB80C\uB354 \uD568\uC218: ({ item, index }) => ReactNode (\uD544\uC218)"),
345
- className: zod.z.string().optional().describe("\uB8E8\uD2B8 \uC694\uC18C \uC2A4\uD0C0\uC77C")
411
+ list: zod.z.array(zod.z.any()).nullable().describe("Data array to render. null = loading state (required)"),
412
+ noDataMessage: zod.z.any().optional().describe("Message for empty array (string | ReactElement)"),
413
+ errorFallback: zod.z.any().optional().describe("Fallback on error (ReactNode)"),
414
+ loadingElement: zod.z.any().optional().describe("Custom loading element (default: Spinner)"),
415
+ skeletonElement: zod.z.any().optional().describe("Skeleton element during loading (ReactElement)"),
416
+ skeletonCount: zod.z.number().default(3).describe("Skeleton repeat count"),
417
+ loading: zod.z.boolean().default(false).describe("Force loading state"),
418
+ children: zod.z.any().describe("Item render function: ({ item, index }) => ReactNode (required)"),
419
+ className: zod.z.string().optional().describe("Root element style")
346
420
  }).describe(
347
- "\uB370\uC774\uD130 \uB9AC\uC2A4\uD2B8. list \uC0C1\uD0DC\uC5D0 \uB530\uB77C \uB85C\uB529/\uC2A4\uCF08\uB808\uD1A4/\uBE48 \uC0C1\uD0DC/\uB370\uC774\uD130\uB97C \uC790\uB3D9 \uCC98\uB9AC. ErrorBoundary \uB0B4\uC7A5."
421
+ "Data list. Automatically handles loading/skeleton/empty/data states based on list. Built-in ErrorBoundary."
348
422
  );
349
423
  var animationOptionsSchema = zod.z.object({
350
- name: zod.z.string().optional().describe("\uC560\uB2C8\uBA54\uC774\uC158 \uC774\uB984"),
351
- mobile: zod.z.string().optional().describe("\uBAA8\uBC14\uC77C\uC6A9 \uC560\uB2C8\uBA54\uC774\uC158 \uC774\uB984"),
352
- delay: zod.z.number().optional().describe("\uC9C0\uC5F0 (ms)"),
353
- duration: zod.z.number().optional().describe("\uC9C0\uC18D \uC2DC\uAC04 (ms)"),
354
- timingFunc: zod.z.string().optional().describe("\uD0C0\uC774\uBC0D \uD568\uC218"),
355
- leaveTimingFunc: zod.z.string().optional().describe("\uD1F4\uC7A5 \uD0C0\uC774\uBC0D \uD568\uC218")
356
- }).describe("\uBAA8\uB2EC \uC560\uB2C8\uBA54\uC774\uC158 \uC635\uC158");
424
+ name: zod.z.string().optional().describe("Animation name"),
425
+ mobile: zod.z.string().optional().describe("Mobile animation name"),
426
+ delay: zod.z.number().optional().describe("Delay (ms)"),
427
+ duration: zod.z.number().optional().describe("Duration (ms)"),
428
+ timingFunc: zod.z.string().optional().describe("Timing function"),
429
+ leaveTimingFunc: zod.z.string().optional().describe("Exit timing function")
430
+ }).describe("Modal animation options");
357
431
  var modalTemplatePropsSchema = zod.z.object({
358
- title: zod.z.any().optional().describe("\uD5E4\uB354 \uC81C\uBAA9 (ReactNode)"),
359
- desc: zod.z.any().optional().describe("\uD5E4\uB354 \uC124\uBA85 (ReactNode)"),
432
+ title: zod.z.any().optional().describe("Header title (ReactNode)"),
433
+ desc: zod.z.any().optional().describe("Header description (ReactNode)"),
360
434
  layout: zod.z.enum([
361
435
  "default",
362
436
  "bottom-sheet",
@@ -365,95 +439,142 @@ var modalTemplatePropsSchema = zod.z.object({
365
439
  "full-page",
366
440
  "full-page-reverse",
367
441
  "draggable"
368
- ]).default("default").describe("\uB808\uC774\uC544\uC6C3"),
369
- showDim: zod.z.boolean().default(true).describe("\uB524 \uBC30\uACBD \uD45C\uC2DC"),
370
- dimClose: zod.z.boolean().default(true).describe("\uB524 \uD074\uB9AD \uC2DC \uB2EB\uAE30"),
371
- hideHeader: zod.z.boolean().default(false).describe("\uD5E4\uB354 \uC228\uAE40"),
372
- hideFooter: zod.z.boolean().default(true).describe("\uD478\uD130 \uC228\uAE40"),
373
- footer: zod.z.any().optional().describe("\uCEE4\uC2A4\uD140 \uD478\uD130 (ReactElement)"),
374
- animation: animationOptionsSchema.optional().describe("\uBAA8\uB2EC \uC560\uB2C8\uBA54\uC774\uC158 (ModalTemplatePropsType)"),
375
- enableDrag: zod.z.boolean().default(true).describe("\uB4DC\uB798\uADF8 \uD65C\uC131\uD654 (\uBC14\uD140\uC2DC\uD2B8\xB7\uB4DC\uB798\uADF8 \uAC00\uB2A5 \uB808\uC774\uC544\uC6C3)"),
376
- dragPersistKey: zod.z.string().optional().describe("\uB4DC\uB798\uADF8 \uC704\uCE58 \uC800\uC7A5 \uD0A4"),
377
- children: zod.z.any().describe("\uBAA8\uB2EC \uBCF8\uBB38 (ReactNode, \uD544\uC218)"),
378
- className: zod.z.string().optional().describe("\uB8E8\uD2B8 \uB798\uD37C \uC2A4\uD0C0\uC77C"),
379
- innerClassName: zod.z.string().optional().describe("\uBAA8\uB2EC \uBCF8\uCCB4 \uC2A4\uD0C0\uC77C"),
380
- bodyClassName: zod.z.string().optional().describe("\uBC14\uB514 \uC601\uC5ED \uC2A4\uD0C0\uC77C"),
381
- footerClassName: zod.z.string().optional().describe("\uD478\uD130 \uC601\uC5ED \uC2A4\uD0C0\uC77C"),
382
- dimClassName: zod.z.string().optional().describe("\uB524 \uBC30\uACBD \uC2A4\uD0C0\uC77C"),
383
- headerClassName: zod.z.string().optional().describe("\uD5E4\uB354 \uC601\uC5ED \uC2A4\uD0C0\uC77C")
442
+ ]).default("default").describe("Layout"),
443
+ showDim: zod.z.boolean().default(true).describe("Show dim overlay"),
444
+ dimClose: zod.z.boolean().default(true).describe("Close on dim click"),
445
+ hideHeader: zod.z.boolean().default(false).describe("Hide header"),
446
+ hideFooter: zod.z.boolean().default(true).describe("Hide footer"),
447
+ footer: zod.z.any().optional().describe("Custom footer (ReactElement)"),
448
+ animation: animationOptionsSchema.optional().describe("Modal animation"),
449
+ enableDrag: zod.z.boolean().default(true).describe("Enable drag (bottom-sheet/draggable layouts)"),
450
+ dragPersistKey: zod.z.string().optional().describe("Drag position persistence key"),
451
+ close: zod.z.any().describe("Modal close function (isAnimation?: boolean) => void (auto-injected)"),
452
+ children: zod.z.any().describe("Modal body (ReactNode, required)"),
453
+ className: zod.z.string().optional().describe("Root wrapper style"),
454
+ innerClassName: zod.z.string().optional().describe("Modal body style"),
455
+ bodyClassName: zod.z.string().optional().describe("Body area style"),
456
+ footerClassName: zod.z.string().optional().describe("Footer area style"),
457
+ dimClassName: zod.z.string().optional().describe("Dim overlay style"),
458
+ headerClassName: zod.z.string().optional().describe("Header area style")
384
459
  }).describe(
385
- "\uBAA8\uB2EC \uD15C\uD50C\uB9BF. \uBAA8\uB4E0 \uBAA8\uB2EC \uCEF4\uD3EC\uB10C\uD2B8\uB294 \uBC18\uB4DC\uC2DC ModalTemplate\uC73C\uB85C \uAC10\uC2F8\uC57C \uD55C\uB2E4."
460
+ "Modal template. All modal components must be wrapped with ModalTemplate."
386
461
  );
387
462
  var modalCallSchema = zod.z.object({
388
- component: zod.z.any().describe("\uBAA8\uB2EC \uCEF4\uD3EC\uB10C\uD2B8 (\uD544\uC218)"),
389
- props: zod.z.record(zod.z.any()).optional().describe("\uCEF4\uD3EC\uB10C\uD2B8\uC5D0 \uC804\uB2EC\uD560 props")
463
+ component: zod.z.any().describe("Modal component (required). Automatically receives close/resolve as props"),
464
+ props: zod.z.record(zod.z.any()).optional().describe("Props to pass to component"),
465
+ id: zod.z.string().optional().describe("Modal ID (used for duplicate check)"),
466
+ layout: zod.z.enum([
467
+ "default",
468
+ "bottom-sheet",
469
+ "slide-left",
470
+ "slide-right",
471
+ "full-page",
472
+ "full-page-reverse",
473
+ "draggable"
474
+ ]).optional().describe("Layout"),
475
+ animation: animationOptionsSchema.optional().describe("Modal animation"),
476
+ scrollEnable: zod.z.boolean().optional().describe("Allow background scroll"),
477
+ isToggle: zod.z.boolean().optional().describe("Toggle mode (close on re-call of same modal)"),
478
+ isAlone: zod.z.boolean().optional().describe("Alone mode (close all existing modals before opening)"),
479
+ duplicateCheck: zod.z.boolean().optional().describe("Prevent duplicate opening of same component"),
480
+ disableEscapeKeyPress: zod.z.boolean().optional().describe("Disable close via ESC key"),
481
+ componentName: zod.z.string().optional().describe("Modal identifier name (used for duplicate check, modal search)"),
482
+ onOpen: zod.z.any().optional().describe("Callback when modal opens"),
483
+ onClose: zod.z.any().optional().describe("Callback when modal closes")
390
484
  }).describe(
391
- "modal() \uD568\uC218 \uD638\uCD9C \uD615\uD0DC. component\uB294 close/resolve\uB97C \uC790\uB3D9\uC73C\uB85C props\uB85C \uBC1B\uB294\uB2E4."
485
+ "modal() function call options. component automatically receives close/resolve as props."
392
486
  );
393
487
  var errorBoundaryPropsSchema = zod.z.object({
394
- children: zod.z.any().describe("\uAC10\uC2F8\uC9C8 \uC790\uC2DD \uC694\uC18C (ReactNode, \uD544\uC218)"),
395
- fallback: zod.z.any().optional().describe("\uC5D0\uB7EC \uBC1C\uC0DD \uC2DC \uB300\uCCB4 UI (ReactNode)"),
396
- onError: zod.z.any().optional().describe("\uC5D0\uB7EC \uBC1C\uC0DD \uCF5C\uBC31 (error: Error, errorInfo: ErrorInfo) => void")
397
- }).describe("\uC5D0\uB7EC \uACBD\uACC4. \uD558\uC704 \uCEF4\uD3EC\uB10C\uD2B8 \uB80C\uB354\uB9C1 \uC5D0\uB7EC\uB97C \uC7A1\uC544 fallback UI \uD45C\uC2DC.");
488
+ children: zod.z.any().describe("Child elements to wrap (ReactNode, required)"),
489
+ fallback: zod.z.any().optional().describe("Fallback UI on error (ReactNode)"),
490
+ onError: zod.z.any().optional().describe("Error callback (error: Error, errorInfo: ErrorInfo) => void")
491
+ }).describe("Error boundary. Catches child component render errors and displays fallback UI.");
398
492
  var clientOnlyPropsSchema = zod.z.object({
399
- children: zod.z.any().describe("\uD074\uB77C\uC774\uC5B8\uD2B8\uC5D0\uC11C\uB9CC \uB80C\uB354\uB9C1\uD560 \uC694\uC18C (ReactNode, \uD544\uC218)"),
400
- fallback: zod.z.any().optional().describe("SSR \uC911 \uD45C\uC2DC\uD560 \uB300\uCCB4 UI (ReactNode, \uAE30\uBCF8: null)")
401
- }).describe("\uD074\uB77C\uC774\uC5B8\uD2B8 \uC804\uC6A9 \uB80C\uB354\uB9C1. SSR \uD658\uACBD\uC5D0\uC11C hydration mismatch \uBC29\uC9C0.");
493
+ children: zod.z.any().describe("Element to render only on client (ReactNode, required)"),
494
+ fallback: zod.z.any().optional().describe("Fallback UI during SSR (ReactNode, default: null)")
495
+ }).describe("Client-only rendering. Prevents hydration mismatch in SSR environments.");
402
496
  var themeProviderPropsSchema = zod.z.object({
403
- children: zod.z.any().describe("\uC571 \uB8E8\uD2B8 \uC694\uC18C (ReactNode, \uD544\uC218)"),
404
- defaultTheme: zod.z.string().optional().describe('\uAE30\uBCF8 \uD14C\uB9C8 (\uC608: "dark", "light")'),
405
- storageKey: zod.z.string().optional().describe('localStorage \uC800\uC7A5 \uD0A4 (\uAE30\uBCF8: "theme")'),
406
- themes: zod.z.array(zod.z.string()).optional().describe('\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uD14C\uB9C8 \uBAA9\uB85D (\uAE30\uBCF8: ["light", "dark"])'),
407
- attribute: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).optional().describe('\uD14C\uB9C8 \uC801\uC6A9 HTML \uC18D\uC131 (\uAE30\uBCF8: "data-theme")'),
408
- enableSystem: zod.z.boolean().optional().describe("\uC2DC\uC2A4\uD15C \uD14C\uB9C8 \uAC10\uC9C0 \uD65C\uC131\uD654"),
409
- disableTransitionOnChange: zod.z.boolean().optional().describe("\uD14C\uB9C8 \uC804\uD658 \uC2DC \uD2B8\uB79C\uC9C0\uC158 \uBE44\uD65C\uC131\uD654"),
410
- forcedTheme: zod.z.string().optional().describe("\uAC15\uC81C \uD14C\uB9C8 (\uC0AC\uC6A9\uC790 \uBCC0\uACBD \uBD88\uAC00)"),
411
- enableColorScheme: zod.z.boolean().optional().describe("color-scheme CSS \uC18D\uC131 \uC790\uB3D9 \uC124\uC815"),
497
+ children: zod.z.any().describe("App root element (ReactNode, required)"),
498
+ defaultTheme: zod.z.string().optional().describe('Default theme (e.g. "dark", "light")'),
499
+ storageKey: zod.z.string().optional().describe('localStorage storage key (default: "theme")'),
500
+ themes: zod.z.array(zod.z.string()).optional().describe('Available theme list (default: ["light", "dark"])'),
501
+ attribute: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).optional().describe('Theme HTML attribute (default: "data-theme")'),
502
+ enableSystem: zod.z.boolean().optional().describe("Enable system theme detection"),
503
+ disableTransitionOnChange: zod.z.boolean().optional().describe("Disable transitions on theme change"),
504
+ forcedTheme: zod.z.string().optional().describe("Forced theme (user cannot change)"),
505
+ enableColorScheme: zod.z.boolean().optional().describe("Auto-set color-scheme CSS property"),
412
506
  nonce: zod.z.string().optional().describe("CSP nonce")
413
507
  }).describe(
414
- "\uD14C\uB9C8 \uC81C\uACF5\uC790. next-themes \uAE30\uBC18. useTheme() \uD6C5\uC73C\uB85C \uD14C\uB9C8 \uC0C1\uD0DC \uC811\uADFC."
508
+ "Theme provider. Based on next-themes. Access theme state via useTheme() hook."
415
509
  );
416
510
  var tablePropsSchema = zod.z.object({
417
- list: zod.z.array(zod.z.any()).nullable().describe("\uB370\uC774\uD130 \uBC30\uC5F4. null/undefined\uC774\uBA74 \uB85C\uB529 \uC0C1\uD0DC (\uD544\uC218)"),
418
- children: zod.z.any().describe("\uD589 \uB80C\uB354 \uD568\uC218 ({ item, index }) => ReactNode (\uD544\uC218)"),
419
- hideThead: zod.z.boolean().optional().describe("\uD14C\uC774\uBE14 \uD5E4\uB354 \uC228\uAE40"),
420
- loading: zod.z.boolean().optional().describe("\uB85C\uB529 \uC0C1\uD0DC \uAC15\uC81C"),
421
- loadingType: zod.z.enum(["loading", "skeleton"]).default("skeleton").describe("\uB85C\uB529 \uD45C\uC2DC \uBC29\uC2DD"),
422
- loadingElement: zod.z.any().optional().describe("\uCEE4\uC2A4\uD140 \uB85C\uB529 \uC694\uC18C (ReactElement)"),
423
- skeletonCount: zod.z.number().default(10).describe("\uC2A4\uCF08\uB808\uD1A4 \uD589 \uC218"),
424
- noDataMsg: zod.z.any().optional().describe("\uB370\uC774\uD130 \uC5C6\uC744 \uB54C \uBA54\uC2DC\uC9C0 (ReactElement | string)"),
425
- notification: zod.z.any().optional().describe("\uD14C\uC774\uBE14 \uC0C1\uB2E8 \uC54C\uB9BC \uC601\uC5ED (ReactNode)"),
426
- sortUpElement: zod.z.any().optional().describe("\uC624\uB984\uCC28\uC21C \uC815\uB82C \uC544\uC774\uCF58 (ReactElement)"),
427
- sortDownElement: zod.z.any().optional().describe("\uB0B4\uB9BC\uCC28\uC21C \uC815\uB82C \uC544\uC774\uCF58 (ReactElement)"),
428
- className: zod.z.string().optional().describe("\uD14C\uC774\uBE14 \uB798\uD37C \uC2A4\uD0C0\uC77C"),
429
- theadClassName: zod.z.string().optional().describe("\uD5E4\uB354 \uD589 \uC2A4\uD0C0\uC77C")
511
+ list: zod.z.array(zod.z.any()).nullable().describe("Data array. null/undefined = loading state (required)"),
512
+ children: zod.z.any().describe("Row render function ({ item, index }) => ReactNode (required)"),
513
+ hideThead: zod.z.boolean().optional().describe("Hide table header"),
514
+ loading: zod.z.boolean().optional().describe("Force loading state"),
515
+ loadingType: zod.z.enum(["loading", "skeleton"]).default("skeleton").describe("Loading display type"),
516
+ loadingElement: zod.z.any().optional().describe("Custom loading element (ReactElement)"),
517
+ skeletonCount: zod.z.number().default(10).describe("Skeleton row count"),
518
+ noDataMsg: zod.z.any().optional().describe("No data message (ReactElement | string)"),
519
+ notification: zod.z.any().optional().describe("Table top notification area (ReactNode)"),
520
+ sortUpElement: zod.z.any().optional().describe("Ascending sort icon (ReactElement)"),
521
+ sortDownElement: zod.z.any().optional().describe("Descending sort icon (ReactElement)"),
522
+ className: zod.z.string().optional().describe("Table wrapper style"),
523
+ theadClassName: zod.z.string().optional().describe("Header row style")
430
524
  }).describe(
431
- "\uD14C\uC774\uBE14. TdColumn\uC73C\uB85C \uCEEC\uB7FC \uC815\uC758, TableRow\uB85C \uD589 \uB798\uD551. \uC815\uB82C/\uC2A4\uCF08\uB808\uD1A4 \uB85C\uB529 \uB0B4\uC7A5."
525
+ "Table. Column definitions via TdColumn, row wrapping via TableRow. Built-in sorting/skeleton loading."
432
526
  );
433
527
  var tableRowPropsSchema = zod.z.object({
434
- variant: zod.z.enum(["default", "accent"]).default("default").describe("\uD589 \uC2A4\uD0C0\uC77C"),
435
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC"),
436
- children: zod.z.any().describe("TdColumn \uBAA9\uB85D (ReactNode, \uD544\uC218)"),
437
- onClick: zod.z.any().optional().describe("\uD589 \uD074\uB9AD \uCF5C\uBC31 (e: MouseEvent) => void")
438
- }).describe("\uD14C\uC774\uBE14 \uD589. Table \uB0B4\uBD80\uC5D0\uC11C \uC0AC\uC6A9.");
528
+ variant: zod.z.enum(["default", "accent"]).default("default").describe("Row style"),
529
+ className: zod.z.string().optional().describe("Style override"),
530
+ children: zod.z.any().describe("TdColumn list (ReactNode, required)"),
531
+ onClick: zod.z.any().optional().describe("Row click callback (e: MouseEvent) => void")
532
+ }).describe("Table row. Used inside Table.");
439
533
  var tdColumnPropsSchema = zod.z.object({
440
- label: zod.z.any().optional().describe("\uD5E4\uB354 \uB77C\uBCA8 (ReactElement | string)"),
441
- fieldId: zod.z.string().nullable().describe("\uCEEC\uB7FC \uC2DD\uBCC4\uC790 (\uC815\uB82C \uD0A4, \uD544\uC218)"),
442
- size: zod.z.union([zod.z.number(), zod.z.string()]).optional().describe("\uCEEC\uB7FC \uB108\uBE44 (number \u2192 px, string \u2192 CSS\uAC12)"),
443
- align: zod.z.enum(["left", "center", "right"]).default("left").describe("\uD14D\uC2A4\uD2B8 \uC815\uB82C"),
444
- textOverflow: zod.z.enum(["auto", "truncate", "wrap", "break-all"]).default("truncate").describe("\uD14D\uC2A4\uD2B8 \uB118\uCE68 \uCC98\uB9AC"),
445
- highlightKey: zod.z.string().nullable().optional().describe("\uD638\uBC84 \uD558\uC774\uB77C\uC774\uD2B8 \uADF8\uB8F9 \uD0A4"),
446
- colSpan: zod.z.number().optional().describe("\uC5F4 \uBCD1\uD569"),
447
- rowSpan: zod.z.number().optional().describe("\uD589 \uBCD1\uD569"),
448
- thColSpan: zod.z.number().optional().describe("\uD5E4\uB354 colSpan (<th>)"),
449
- thRowSpan: zod.z.number().optional().describe("\uD5E4\uB354 rowSpan (<th>)"),
450
- enableSorting: zod.z.boolean().optional().describe("\uC815\uB82C \uD65C\uC131\uD654"),
451
- order: zod.z.enum(["desc", "asc", ""]).optional().describe("\uD604\uC7AC \uC815\uB82C \uBC29\uD5A5"),
452
- sortValue: zod.z.union([zod.z.string(), zod.z.number()]).optional().describe("\uC815\uB82C \uAE30\uC900 \uAC12"),
453
- handleClickSort: zod.z.any().optional().describe("\uC815\uB82C \uD074\uB9AD \uCF5C\uBC31 ({ index, fieldId, order }) => void"),
454
- children: zod.z.any().describe("\uC140 \uB0B4\uC6A9 (ReactNode, \uD544\uC218)"),
455
- className: zod.z.string().optional().describe("\uC2A4\uD0C0\uC77C \uC624\uBC84\uB77C\uC774\uB4DC")
456
- }).describe("\uD14C\uC774\uBE14 \uC140/\uCEEC\uB7FC \uC815\uC758. TableRow \uB0B4\uBD80\uC5D0\uC11C \uC0AC\uC6A9.");
534
+ label: zod.z.any().optional().describe("Header label (ReactElement | string)"),
535
+ fieldId: zod.z.string().nullable().describe("Column identifier (sort key, required)"),
536
+ size: zod.z.union([zod.z.number(), zod.z.string()]).optional().describe("Column width (number \u2192 px, string \u2192 CSS value)"),
537
+ align: zod.z.enum(["left", "center", "right"]).default("left").describe("Text alignment"),
538
+ textOverflow: zod.z.enum(["auto", "truncate", "wrap", "break-all"]).default("truncate").describe("Text overflow handling"),
539
+ highlightKey: zod.z.string().nullable().optional().describe("Hover highlight group key"),
540
+ colSpan: zod.z.number().optional().describe("Column span"),
541
+ rowSpan: zod.z.number().optional().describe("Row span"),
542
+ thColSpan: zod.z.number().optional().describe("Header colSpan (<th>)"),
543
+ thRowSpan: zod.z.number().optional().describe("Header rowSpan (<th>)"),
544
+ enableSorting: zod.z.boolean().optional().describe("Enable sorting"),
545
+ order: zod.z.enum(["desc", "asc", ""]).optional().describe("Current sort direction"),
546
+ sortValue: zod.z.union([zod.z.string(), zod.z.number()]).optional().describe("Sort criterion value"),
547
+ handleClickSort: zod.z.any().optional().describe("Sort click callback ({ index, fieldId, order }) => void"),
548
+ children: zod.z.any().describe("Cell content (ReactNode, required)"),
549
+ className: zod.z.string().optional().describe("Style override")
550
+ }).describe("Table cell/column definition. Used inside TableRow.");
551
+ var toastOptionsSchema = zod.z.object({
552
+ description: zod.z.any().optional().describe("Toast subtitle (ReactNode)"),
553
+ duration: zod.z.number().optional().describe("Auto-dismiss duration (ms). Default 4000"),
554
+ icon: zod.z.any().optional().describe("Custom icon (ReactNode)"),
555
+ action: zod.z.any().optional().describe("Action button. { label: ReactNode, onClick: () => void }"),
556
+ cancel: zod.z.any().optional().describe("Cancel button. { label: ReactNode, onClick: () => void }"),
557
+ closeButton: zod.z.boolean().optional().describe("Show close (X) button"),
558
+ dismissible: zod.z.boolean().optional().describe("Allow dismiss via swipe/click"),
559
+ richColors: zod.z.boolean().optional().describe("Apply strong colors for success/error/warning/info"),
560
+ invert: zod.z.boolean().optional().describe("Invert colors (dark\u2194light)"),
561
+ position: zod.z.enum([
562
+ "top-left",
563
+ "top-center",
564
+ "top-right",
565
+ "bottom-left",
566
+ "bottom-center",
567
+ "bottom-right"
568
+ ]).optional().describe("Individual position for this toast"),
569
+ onDismiss: zod.z.any().optional().describe("Dismiss callback (toast: ToastT) => void"),
570
+ onAutoClose: zod.z.any().optional().describe("Auto-close callback (toast: ToastT) => void"),
571
+ className: zod.z.string().optional().describe("Toast custom class"),
572
+ style: zod.z.any().optional().describe("Toast inline style (CSSProperties)"),
573
+ unstyled: zod.z.boolean().optional().describe("Remove default styles (for custom styling)"),
574
+ id: zod.z.union([zod.z.string(), zod.z.number()]).optional().describe("Toast ID (for deduplication or updates)")
575
+ }).describe(
576
+ "toast() call options. Used as toast(message, options). Fully customizable via toast.custom(jsx)."
577
+ );
457
578
  var toasterPropsSchema = zod.z.object({
458
579
  position: zod.z.enum([
459
580
  "top-left",
@@ -462,10 +583,19 @@ var toasterPropsSchema = zod.z.object({
462
583
  "bottom-left",
463
584
  "bottom-center",
464
585
  "bottom-right"
465
- ]).default("top-center").describe("\uD1A0\uC2A4\uD2B8 \uC704\uCE58"),
466
- unstyled: zod.z.boolean().default(false).describe("\uAE30\uBCF8 \uC2A4\uD0C0\uC77C \uC81C\uAC70 (\uCEE4\uC2A4\uD140 \uC2A4\uD0C0\uC77C\uB9C1 \uC2DC)")
586
+ ]).default("top-center").describe("Default toast position"),
587
+ unstyled: zod.z.boolean().default(false).describe("Remove default styles (for custom styling)"),
588
+ theme: zod.z.enum(["light", "dark", "system"]).optional().describe("Theme setting"),
589
+ richColors: zod.z.boolean().optional().describe("Apply strong colors for success/error/warning/info"),
590
+ expand: zod.z.boolean().optional().describe("Always show toasts in expanded state"),
591
+ duration: zod.z.number().optional().describe("Global auto-dismiss duration (ms). Default 4000"),
592
+ visibleToasts: zod.z.number().optional().describe("Maximum visible toasts at once"),
593
+ closeButton: zod.z.boolean().optional().describe("Show close button on all toasts"),
594
+ gap: zod.z.number().optional().describe("Gap between toasts (px)"),
595
+ offset: zod.z.any().optional().describe("Offset from screen edge. string | number | { top, right, bottom, left }"),
596
+ dir: zod.z.enum(["ltr", "rtl", "auto"]).optional().describe("Text direction")
467
597
  }).describe(
468
- "Toaster \uC124\uC815. \uC571 \uB8E8\uD2B8\uC5D0 \uD55C \uBC88 \uBC30\uCE58. toast() \uD568\uC218\uB85C \uC54C\uB9BC \uD45C\uC2DC. sonner \uAE30\uBC18."
598
+ "Toaster config. Place once at app root. Display notifications via toast(). Based on sonner."
469
599
  );
470
600
 
471
601
  exports.accordionPropsSchema = accordionPropsSchema;
@@ -482,8 +612,12 @@ exports.countdownPropsSchema = countdownPropsSchema;
482
612
  exports.counterPropsSchema = counterPropsSchema;
483
613
  exports.dataListPropsSchema = dataListPropsSchema;
484
614
  exports.dividerPropsSchema = dividerPropsSchema;
615
+ exports.drawerClosePropsSchema = drawerClosePropsSchema;
485
616
  exports.drawerContentPropsSchema = drawerContentPropsSchema;
617
+ exports.drawerDescriptionPropsSchema = drawerDescriptionPropsSchema;
486
618
  exports.drawerPropsSchema = drawerPropsSchema;
619
+ exports.drawerTitlePropsSchema = drawerTitlePropsSchema;
620
+ exports.drawerTriggerPropsSchema = drawerTriggerPropsSchema;
487
621
  exports.ellipsisPropsSchema = ellipsisPropsSchema;
488
622
  exports.errorBoundaryPropsSchema = errorBoundaryPropsSchema;
489
623
  exports.infiniteScrollPropsSchema = infiniteScrollPropsSchema;
@@ -507,6 +641,7 @@ exports.tdColumnPropsSchema = tdColumnPropsSchema;
507
641
  exports.textAreaPropsSchema = textAreaPropsSchema;
508
642
  exports.textInputPropsSchema = textInputPropsSchema;
509
643
  exports.themeProviderPropsSchema = themeProviderPropsSchema;
644
+ exports.toastOptionsSchema = toastOptionsSchema;
510
645
  exports.toasterPropsSchema = toasterPropsSchema;
511
646
  exports.tooltipPropsSchema = tooltipPropsSchema;
512
647
  exports.virtualGridPropsSchema = virtualGridPropsSchema;