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