@hua-labs/ui 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (571) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +91 -43
  3. package/dist/{ComponentLayout-BhM4VSoq.d.mts → ComponentLayout-Clf6C2jV.d.mts} +37 -3
  4. package/dist/DashboardSidebar-ZulecqKs.d.mts +54 -0
  5. package/dist/DashboardToolbar-BRZayZNz.d.mts +122 -0
  6. package/dist/EmptyState-SQ3Z6Vf2.d.mts +64 -0
  7. package/dist/{Modal-CrXmb3Ll.d.mts → Modal-DKKtBtbh.d.mts} +12 -6
  8. package/dist/{Section-BWzyshgX.d.mts → Section-DKdIG1sg.d.mts} +11 -12
  9. package/dist/SectionHeader-DHwQ_xh8.d.mts +1653 -0
  10. package/dist/{Switch-Dzm5TLR3.d.mts → Switch-D0l7SJrz.d.mts} +31 -15
  11. package/dist/Tooltip-Cv7nYhPW.d.mts +304 -0
  12. package/dist/advanced/Logo.d.ts +8 -4
  13. package/dist/advanced/Logo.d.ts.map +1 -1
  14. package/dist/advanced/dashboard.d.ts +28 -6
  15. package/dist/advanced/dashboard.d.ts.map +1 -1
  16. package/dist/advanced-dashboard.d.mts +9 -2278
  17. package/dist/advanced-dashboard.mjs +1 -33
  18. package/dist/advanced-dashboard.mjs.map +1 -1
  19. package/dist/advanced-emotion.d.mts +13 -5
  20. package/dist/advanced-emotion.mjs +1 -1
  21. package/dist/advanced-motion.d.mts +136 -56
  22. package/dist/advanced-motion.mjs +1 -1
  23. package/dist/advanced.d.mts +69 -36
  24. package/dist/advanced.mjs +14 -3
  25. package/dist/advanced.mjs.map +1 -1
  26. package/dist/chunk-32OZGTPV.mjs +41 -0
  27. package/dist/chunk-32OZGTPV.mjs.map +1 -0
  28. package/dist/chunk-6WBFZ2KV.mjs +3 -0
  29. package/dist/chunk-6WBFZ2KV.mjs.map +1 -0
  30. package/dist/chunk-7CGJQSJO.mjs +3 -0
  31. package/dist/chunk-7CGJQSJO.mjs.map +1 -0
  32. package/dist/chunk-7T3IUG3G.mjs +3 -0
  33. package/dist/chunk-7T3IUG3G.mjs.map +1 -0
  34. package/dist/chunk-AJOGTUWS.mjs +3 -0
  35. package/dist/chunk-AJOGTUWS.mjs.map +1 -0
  36. package/dist/chunk-AQTSQYH2.mjs +3 -0
  37. package/dist/chunk-AQTSQYH2.mjs.map +1 -0
  38. package/dist/chunk-B2MRZJQA.mjs +3 -0
  39. package/dist/chunk-B2MRZJQA.mjs.map +1 -0
  40. package/dist/chunk-BOX4TONF.mjs +3 -0
  41. package/dist/chunk-BOX4TONF.mjs.map +1 -0
  42. package/dist/chunk-C2DOXNBK.mjs +3 -0
  43. package/dist/chunk-C2DOXNBK.mjs.map +1 -0
  44. package/dist/chunk-CQBMR7VU.mjs +3 -0
  45. package/dist/chunk-CQBMR7VU.mjs.map +1 -0
  46. package/dist/chunk-CYAAAEPJ.mjs +3 -0
  47. package/dist/chunk-CYAAAEPJ.mjs.map +1 -0
  48. package/dist/chunk-D7MTTTQY.mjs +8 -0
  49. package/dist/chunk-D7MTTTQY.mjs.map +1 -0
  50. package/dist/chunk-DABVKUJN.mjs +3 -0
  51. package/dist/chunk-DABVKUJN.mjs.map +1 -0
  52. package/dist/chunk-EK6BLFVQ.mjs +3 -0
  53. package/dist/chunk-EK6BLFVQ.mjs.map +1 -0
  54. package/dist/chunk-FVUAVGP5.mjs +3 -0
  55. package/dist/chunk-FVUAVGP5.mjs.map +1 -0
  56. package/dist/chunk-GAIUZVNC.mjs +3 -0
  57. package/dist/chunk-GAIUZVNC.mjs.map +1 -0
  58. package/dist/chunk-HLBIIF4I.mjs +3 -0
  59. package/dist/chunk-HLBIIF4I.mjs.map +1 -0
  60. package/dist/chunk-I6NCGF6E.mjs +3 -0
  61. package/dist/chunk-I6NCGF6E.mjs.map +1 -0
  62. package/dist/chunk-J46VEBVF.mjs +3 -0
  63. package/dist/chunk-J46VEBVF.mjs.map +1 -0
  64. package/dist/chunk-JNW3CLCA.mjs +3 -0
  65. package/dist/chunk-JNW3CLCA.mjs.map +1 -0
  66. package/dist/chunk-JY3QVUGW.mjs +3 -0
  67. package/dist/chunk-JY3QVUGW.mjs.map +1 -0
  68. package/dist/chunk-KHBZOGUU.mjs +3 -0
  69. package/dist/chunk-KHBZOGUU.mjs.map +1 -0
  70. package/dist/chunk-KPNNAQLI.mjs +3 -0
  71. package/dist/chunk-KPNNAQLI.mjs.map +1 -0
  72. package/dist/chunk-L2LGSILS.mjs +13 -0
  73. package/dist/chunk-L2LGSILS.mjs.map +1 -0
  74. package/dist/chunk-LPHUWTQ2.mjs +3 -0
  75. package/dist/chunk-LPHUWTQ2.mjs.map +1 -0
  76. package/dist/chunk-M4JE7TQL.mjs +3 -0
  77. package/dist/chunk-M4JE7TQL.mjs.map +1 -0
  78. package/dist/chunk-MEDKGNLV.mjs +3 -0
  79. package/dist/chunk-MEDKGNLV.mjs.map +1 -0
  80. package/dist/chunk-MR46CSMC.mjs +3 -0
  81. package/dist/chunk-MR46CSMC.mjs.map +1 -0
  82. package/dist/chunk-NSDWT2JM.mjs +3 -0
  83. package/dist/chunk-NSDWT2JM.mjs.map +1 -0
  84. package/dist/chunk-OBMOTQEU.mjs +3 -0
  85. package/dist/chunk-OBMOTQEU.mjs.map +1 -0
  86. package/dist/chunk-RICRFXFP.mjs +3 -0
  87. package/dist/chunk-RICRFXFP.mjs.map +1 -0
  88. package/dist/chunk-SOK7VBSM.mjs +13 -0
  89. package/dist/chunk-SOK7VBSM.mjs.map +1 -0
  90. package/dist/chunk-SPZ7SZH4.mjs +3 -0
  91. package/dist/chunk-SPZ7SZH4.mjs.map +1 -0
  92. package/dist/chunk-TB3DARQO.mjs +3 -0
  93. package/dist/chunk-TB3DARQO.mjs.map +1 -0
  94. package/dist/chunk-TND4HPKW.mjs +51 -0
  95. package/dist/chunk-TND4HPKW.mjs.map +1 -0
  96. package/dist/chunk-TSAXVD2H.mjs +35 -0
  97. package/dist/chunk-TSAXVD2H.mjs.map +1 -0
  98. package/dist/chunk-UR3TIWBS.mjs +3 -0
  99. package/dist/chunk-UR3TIWBS.mjs.map +1 -0
  100. package/dist/chunk-XU2XBAEW.mjs +3 -0
  101. package/dist/chunk-XU2XBAEW.mjs.map +1 -0
  102. package/dist/chunk-XXHDNZTG.mjs +3 -0
  103. package/dist/chunk-XXHDNZTG.mjs.map +1 -0
  104. package/dist/chunk-YW5DA7Q6.mjs +3 -0
  105. package/dist/chunk-YW5DA7Q6.mjs.map +1 -0
  106. package/dist/chunk-ZTHUGQZL.mjs +3 -0
  107. package/dist/chunk-ZTHUGQZL.mjs.map +1 -0
  108. package/dist/chunk-ZVCGC6EV.mjs +3 -0
  109. package/dist/chunk-ZVCGC6EV.mjs.map +1 -0
  110. package/dist/chunk-ZZ67E3M5.mjs +3 -0
  111. package/dist/chunk-ZZ67E3M5.mjs.map +1 -0
  112. package/dist/{common-YLvZxA_K.d.mts → common-Bej8Okcg.d.mts} +1 -1
  113. package/dist/components/Accordion.d.ts +14 -7
  114. package/dist/components/Accordion.d.ts.map +1 -1
  115. package/dist/components/Action.d.ts.map +1 -1
  116. package/dist/components/ActionToolbar.d.ts +10 -6
  117. package/dist/components/ActionToolbar.d.ts.map +1 -1
  118. package/dist/components/Alert.d.ts +16 -2
  119. package/dist/components/Alert.d.ts.map +1 -1
  120. package/dist/components/Autocomplete.d.ts +6 -4
  121. package/dist/components/Autocomplete.d.ts.map +1 -1
  122. package/dist/components/Avatar.d.ts +20 -7
  123. package/dist/components/Avatar.d.ts.map +1 -1
  124. package/dist/components/Badge.d.ts +27 -9
  125. package/dist/components/Badge.d.ts.map +1 -1
  126. package/dist/components/Bookmark.d.ts +4 -2
  127. package/dist/components/Bookmark.d.ts.map +1 -1
  128. package/dist/components/BottomSheet.d.ts +13 -9
  129. package/dist/components/BottomSheet.d.ts.map +1 -1
  130. package/dist/components/Box.d.ts +9 -0
  131. package/dist/components/Box.d.ts.map +1 -0
  132. package/dist/components/Breadcrumb.d.ts +9 -4
  133. package/dist/components/Breadcrumb.d.ts.map +1 -1
  134. package/dist/components/Button.d.ts +3 -29
  135. package/dist/components/Button.d.ts.map +1 -1
  136. package/dist/components/Button.variants.d.ts +54 -10
  137. package/dist/components/Button.variants.d.ts.map +1 -1
  138. package/dist/components/Card.d.ts +49 -14
  139. package/dist/components/Card.d.ts.map +1 -1
  140. package/dist/components/ChatMessage.d.ts +3 -2
  141. package/dist/components/ChatMessage.d.ts.map +1 -1
  142. package/dist/components/Checkbox.d.ts +5 -2
  143. package/dist/components/Checkbox.d.ts.map +1 -1
  144. package/dist/components/CodeBlock.d.ts +8 -5
  145. package/dist/components/CodeBlock.d.ts.map +1 -1
  146. package/dist/components/ColorPicker.d.ts +4 -2
  147. package/dist/components/ColorPicker.d.ts.map +1 -1
  148. package/dist/components/Command.d.ts +28 -14
  149. package/dist/components/Command.d.ts.map +1 -1
  150. package/dist/components/ComponentLayout.d.ts +5 -2
  151. package/dist/components/ComponentLayout.d.ts.map +1 -1
  152. package/dist/components/ConfirmModal.d.ts +4 -0
  153. package/dist/components/ConfirmModal.d.ts.map +1 -1
  154. package/dist/components/Container.d.ts +18 -5
  155. package/dist/components/Container.d.ts.map +1 -1
  156. package/dist/components/ContextMenu.d.ts +36 -36
  157. package/dist/components/ContextMenu.d.ts.map +1 -1
  158. package/dist/components/DatePicker.d.ts +12 -5
  159. package/dist/components/DatePicker.d.ts.map +1 -1
  160. package/dist/components/Divider.d.ts +2 -1
  161. package/dist/components/Divider.d.ts.map +1 -1
  162. package/dist/components/Drawer.d.ts +17 -12
  163. package/dist/components/Drawer.d.ts.map +1 -1
  164. package/dist/components/Dropdown.d.ts +25 -7
  165. package/dist/components/Dropdown.d.ts.map +1 -1
  166. package/dist/components/EmotionAnalysis.d.ts +3 -1
  167. package/dist/components/EmotionAnalysis.d.ts.map +1 -1
  168. package/dist/components/EmotionButton.d.ts +3 -1
  169. package/dist/components/EmotionButton.d.ts.map +1 -1
  170. package/dist/components/EmotionMeter.d.ts +3 -1
  171. package/dist/components/EmotionMeter.d.ts.map +1 -1
  172. package/dist/components/EmotionSelector.d.ts +3 -1
  173. package/dist/components/EmotionSelector.d.ts.map +1 -1
  174. package/dist/components/FeatureCard.d.ts +9 -3
  175. package/dist/components/FeatureCard.d.ts.map +1 -1
  176. package/dist/components/Form.d.ts +20 -54
  177. package/dist/components/Form.d.ts.map +1 -1
  178. package/dist/components/FormControl.d.ts +3 -2
  179. package/dist/components/FormControl.d.ts.map +1 -1
  180. package/dist/components/Grid.d.ts +11 -4
  181. package/dist/components/Grid.d.ts.map +1 -1
  182. package/dist/components/HeroSection.d.ts +4 -2
  183. package/dist/components/HeroSection.d.ts.map +1 -1
  184. package/dist/components/Icon/Icon.d.ts +12 -8
  185. package/dist/components/Icon/Icon.d.ts.map +1 -1
  186. package/dist/components/IconsaxGallery/index.d.ts +8 -5
  187. package/dist/components/IconsaxGallery/index.d.ts.map +1 -1
  188. package/dist/components/InfoCard.d.ts +5 -2
  189. package/dist/components/InfoCard.d.ts.map +1 -1
  190. package/dist/components/Input.d.ts +29 -4
  191. package/dist/components/Input.d.ts.map +1 -1
  192. package/dist/components/Label.d.ts +15 -10
  193. package/dist/components/Label.d.ts.map +1 -1
  194. package/dist/components/LanguageToggle.d.ts +5 -3
  195. package/dist/components/LanguageToggle.d.ts.map +1 -1
  196. package/dist/components/Link.d.ts +17 -6
  197. package/dist/components/Link.d.ts.map +1 -1
  198. package/dist/components/LoadingSpinner.d.ts +7 -3
  199. package/dist/components/LoadingSpinner.d.ts.map +1 -1
  200. package/dist/components/Menu.d.ts +59 -60
  201. package/dist/components/Menu.d.ts.map +1 -1
  202. package/dist/components/Modal.d.ts +12 -6
  203. package/dist/components/Modal.d.ts.map +1 -1
  204. package/dist/components/Navigation.d.ts +26 -11
  205. package/dist/components/Navigation.d.ts.map +1 -1
  206. package/dist/components/NumberInput.d.ts +5 -2
  207. package/dist/components/NumberInput.d.ts.map +1 -1
  208. package/dist/components/PageNavigation.d.ts +6 -3
  209. package/dist/components/PageNavigation.d.ts.map +1 -1
  210. package/dist/components/PageTransition.d.ts +2 -2
  211. package/dist/components/PageTransition.d.ts.map +1 -1
  212. package/dist/components/Pagination.d.ts +5 -2
  213. package/dist/components/Pagination.d.ts.map +1 -1
  214. package/dist/components/Panel.d.ts +1 -7
  215. package/dist/components/Panel.d.ts.map +1 -1
  216. package/dist/components/Popover.d.ts +25 -9
  217. package/dist/components/Popover.d.ts.map +1 -1
  218. package/dist/components/Pressable.d.ts +14 -0
  219. package/dist/components/Pressable.d.ts.map +1 -0
  220. package/dist/components/Progress.d.ts +36 -13
  221. package/dist/components/Progress.d.ts.map +1 -1
  222. package/dist/components/Prose.d.ts +51 -0
  223. package/dist/components/Prose.d.ts.map +1 -0
  224. package/dist/components/Radio.d.ts +29 -33
  225. package/dist/components/Radio.d.ts.map +1 -1
  226. package/dist/components/ScrollArea.d.ts +8 -9
  227. package/dist/components/ScrollArea.d.ts.map +1 -1
  228. package/dist/components/ScrollIndicator.d.ts +9 -8
  229. package/dist/components/ScrollIndicator.d.ts.map +1 -1
  230. package/dist/components/ScrollProgress.d.ts +3 -2
  231. package/dist/components/ScrollProgress.d.ts.map +1 -1
  232. package/dist/components/ScrollToTop.d.ts +5 -5
  233. package/dist/components/ScrollToTop.d.ts.map +1 -1
  234. package/dist/components/Section.d.ts +12 -9
  235. package/dist/components/Section.d.ts.map +1 -1
  236. package/dist/components/SectionHeader.d.ts +3 -2
  237. package/dist/components/SectionHeader.d.ts.map +1 -1
  238. package/dist/components/Select.d.ts +18 -5
  239. package/dist/components/Select.d.ts.map +1 -1
  240. package/dist/components/Skeleton.d.ts +43 -15
  241. package/dist/components/Skeleton.d.ts.map +1 -1
  242. package/dist/components/Slider.d.ts +7 -5
  243. package/dist/components/Slider.d.ts.map +1 -1
  244. package/dist/components/Stack.d.ts +22 -6
  245. package/dist/components/Stack.d.ts.map +1 -1
  246. package/dist/components/StatsPanel.d.ts +4 -2
  247. package/dist/components/StatsPanel.d.ts.map +1 -1
  248. package/dist/components/Switch.d.ts +9 -4
  249. package/dist/components/Switch.d.ts.map +1 -1
  250. package/dist/components/Table.d.ts +43 -18
  251. package/dist/components/Table.d.ts.map +1 -1
  252. package/dist/components/Tabs.d.ts +50 -77
  253. package/dist/components/Tabs.d.ts.map +1 -1
  254. package/dist/components/Text.d.ts +11 -0
  255. package/dist/components/Text.d.ts.map +1 -0
  256. package/dist/components/Textarea.d.ts +24 -6
  257. package/dist/components/Textarea.d.ts.map +1 -1
  258. package/dist/components/ThemeToggle.d.ts +18 -27
  259. package/dist/components/ThemeToggle.d.ts.map +1 -1
  260. package/dist/components/Timeline.d.ts +4 -2
  261. package/dist/components/Timeline.d.ts.map +1 -1
  262. package/dist/components/Toast.d.ts +1 -1
  263. package/dist/components/Toast.d.ts.map +1 -1
  264. package/dist/components/Toggle.d.ts +11 -2
  265. package/dist/components/Toggle.d.ts.map +1 -1
  266. package/dist/components/Tooltip.d.ts +5 -2
  267. package/dist/components/Tooltip.d.ts.map +1 -1
  268. package/dist/components/Upload.d.ts +5 -3
  269. package/dist/components/Upload.d.ts.map +1 -1
  270. package/dist/components/advanced/AdvancedPageTransition.d.ts +7 -5
  271. package/dist/components/advanced/AdvancedPageTransition.d.ts.map +1 -1
  272. package/dist/components/advanced/AnimatedGradient.d.ts +6 -2
  273. package/dist/components/advanced/AnimatedGradient.d.ts.map +1 -1
  274. package/dist/components/advanced/Carousel.d.ts +3 -1
  275. package/dist/components/advanced/Carousel.d.ts.map +1 -1
  276. package/dist/components/advanced/DotNav.d.ts +12 -5
  277. package/dist/components/advanced/DotNav.d.ts.map +1 -1
  278. package/dist/components/advanced/GlowCard.d.ts +4 -1
  279. package/dist/components/advanced/GlowCard.d.ts.map +1 -1
  280. package/dist/components/advanced/HorizontalScroll.d.ts +4 -1
  281. package/dist/components/advanced/HorizontalScroll.d.ts.map +1 -1
  282. package/dist/components/advanced/ImageReveal.d.ts +23 -1
  283. package/dist/components/advanced/ImageReveal.d.ts.map +1 -1
  284. package/dist/components/advanced/Marquee.d.ts +4 -2
  285. package/dist/components/advanced/Marquee.d.ts.map +1 -1
  286. package/dist/components/advanced/Parallax.d.ts +4 -2
  287. package/dist/components/advanced/Parallax.d.ts.map +1 -1
  288. package/dist/components/advanced/SpotlightCard.d.ts +13 -12
  289. package/dist/components/advanced/SpotlightCard.d.ts.map +1 -1
  290. package/dist/components/advanced/TextReveal.d.ts +5 -1
  291. package/dist/components/advanced/TextReveal.d.ts.map +1 -1
  292. package/dist/components/advanced/TiltCard.d.ts +6 -2
  293. package/dist/components/advanced/TiltCard.d.ts.map +1 -1
  294. package/dist/components/advanced/VideoBackground.d.ts +4 -1
  295. package/dist/components/advanced/VideoBackground.d.ts.map +1 -1
  296. package/dist/components/advanced/blog-editor/BlogEditor.d.ts +4 -2
  297. package/dist/components/advanced/blog-editor/BlogEditor.d.ts.map +1 -1
  298. package/dist/components/advanced/blog-editor/BlogEditorActions.d.ts +4 -2
  299. package/dist/components/advanced/blog-editor/BlogEditorActions.d.ts.map +1 -1
  300. package/dist/components/advanced/blog-editor/BlogEditorContent.d.ts +4 -2
  301. package/dist/components/advanced/blog-editor/BlogEditorContent.d.ts.map +1 -1
  302. package/dist/components/advanced/blog-editor/BlogEditorHeader.d.ts +4 -2
  303. package/dist/components/advanced/blog-editor/BlogEditorHeader.d.ts.map +1 -1
  304. package/dist/components/advanced/blog-editor/BlogEditorLanguageTabs.d.ts +4 -2
  305. package/dist/components/advanced/blog-editor/BlogEditorLanguageTabs.d.ts.map +1 -1
  306. package/dist/components/advanced/blog-editor/BlogEditorMetadata.d.ts +5 -3
  307. package/dist/components/advanced/blog-editor/BlogEditorMetadata.d.ts.map +1 -1
  308. package/dist/components/advanced/blog-editor/BlogEditorPreview.d.ts +5 -3
  309. package/dist/components/advanced/blog-editor/BlogEditorPreview.d.ts.map +1 -1
  310. package/dist/components/advanced/blog-editor/BlogEditorToolbar.d.ts +4 -2
  311. package/dist/components/advanced/blog-editor/BlogEditorToolbar.d.ts.map +1 -1
  312. package/dist/components/advanced/blog-editor/BlogEditorTranslate.d.ts +4 -2
  313. package/dist/components/advanced/blog-editor/BlogEditorTranslate.d.ts.map +1 -1
  314. package/dist/components/advanced/blog-editor/types.d.ts +5 -2
  315. package/dist/components/advanced/blog-editor/types.d.ts.map +1 -1
  316. package/dist/components/advanced/emotion/EmotionAnalysis.d.ts +3 -1
  317. package/dist/components/advanced/emotion/EmotionAnalysis.d.ts.map +1 -1
  318. package/dist/components/advanced/emotion/EmotionButton.d.ts +3 -1
  319. package/dist/components/advanced/emotion/EmotionButton.d.ts.map +1 -1
  320. package/dist/components/advanced/emotion/EmotionMeter.d.ts +4 -2
  321. package/dist/components/advanced/emotion/EmotionMeter.d.ts.map +1 -1
  322. package/dist/components/advanced/emotion/EmotionSelector.d.ts +3 -1
  323. package/dist/components/advanced/emotion/EmotionSelector.d.ts.map +1 -1
  324. package/dist/components/dashboard/ActivityFeed.d.ts +5 -2
  325. package/dist/components/dashboard/ActivityFeed.d.ts.map +1 -1
  326. package/dist/components/dashboard/BarChart.d.ts +3 -2
  327. package/dist/components/dashboard/BarChart.d.ts.map +1 -1
  328. package/dist/components/dashboard/DashboardGrid.d.ts +13 -3
  329. package/dist/components/dashboard/DashboardGrid.d.ts.map +1 -1
  330. package/dist/components/dashboard/DashboardSidebar.d.ts +15 -82
  331. package/dist/components/dashboard/DashboardSidebar.d.ts.map +1 -1
  332. package/dist/components/dashboard/DashboardToolbar.d.ts +3 -2
  333. package/dist/components/dashboard/DashboardToolbar.d.ts.map +1 -1
  334. package/dist/components/dashboard/EmptyState.d.ts +3 -2
  335. package/dist/components/dashboard/EmptyState.d.ts.map +1 -1
  336. package/dist/components/dashboard/MembershipBadge.d.ts +3 -2
  337. package/dist/components/dashboard/MembershipBadge.d.ts.map +1 -1
  338. package/dist/components/dashboard/MerchantList.d.ts +3 -2
  339. package/dist/components/dashboard/MerchantList.d.ts.map +1 -1
  340. package/dist/components/dashboard/MetricCard.d.ts +3 -2
  341. package/dist/components/dashboard/MetricCard.d.ts.map +1 -1
  342. package/dist/components/dashboard/MiniBarChart.d.ts +3 -2
  343. package/dist/components/dashboard/MiniBarChart.d.ts.map +1 -1
  344. package/dist/components/dashboard/NotificationCard.d.ts +5 -2
  345. package/dist/components/dashboard/NotificationCard.d.ts.map +1 -1
  346. package/dist/components/dashboard/ProfileCard.d.ts +5 -2
  347. package/dist/components/dashboard/ProfileCard.d.ts.map +1 -1
  348. package/dist/components/dashboard/ProgressCard.d.ts +6 -3
  349. package/dist/components/dashboard/ProgressCard.d.ts.map +1 -1
  350. package/dist/components/dashboard/QuickActionCard.d.ts +22 -27
  351. package/dist/components/dashboard/QuickActionCard.d.ts.map +1 -1
  352. package/dist/components/dashboard/RoutingBreakdownCard.d.ts +3 -2
  353. package/dist/components/dashboard/RoutingBreakdownCard.d.ts.map +1 -1
  354. package/dist/components/dashboard/SettlementTimeline.d.ts +3 -2
  355. package/dist/components/dashboard/SettlementTimeline.d.ts.map +1 -1
  356. package/dist/components/dashboard/StatCard.d.ts +7 -4
  357. package/dist/components/dashboard/StatCard.d.ts.map +1 -1
  358. package/dist/components/dashboard/SummaryCard.d.ts +6 -3
  359. package/dist/components/dashboard/SummaryCard.d.ts.map +1 -1
  360. package/dist/components/dashboard/TransactionDetailDrawer.d.ts +2 -2
  361. package/dist/components/dashboard/TransactionDetailDrawer.d.ts.map +1 -1
  362. package/dist/components/dashboard/TransactionsTable.d.ts +3 -2
  363. package/dist/components/dashboard/TransactionsTable.d.ts.map +1 -1
  364. package/dist/components/dashboard/TrendChart.d.ts +3 -2
  365. package/dist/components/dashboard/TrendChart.d.ts.map +1 -1
  366. package/dist/components/dashboard/YearlyHeatmap.d.ts +4 -2
  367. package/dist/components/dashboard/YearlyHeatmap.d.ts.map +1 -1
  368. package/dist/components/dashboard/kanban/KanbanAddCard.d.ts.map +1 -1
  369. package/dist/components/dashboard/kanban/KanbanAddColumn.d.ts.map +1 -1
  370. package/dist/components/dashboard/kanban/KanbanBoard.d.ts.map +1 -1
  371. package/dist/components/dashboard/kanban/KanbanCard.d.ts.map +1 -1
  372. package/dist/components/dashboard/kanban/KanbanColumn.d.ts.map +1 -1
  373. package/dist/components/dashboard/kanban/KanbanColumnHeader.d.ts.map +1 -1
  374. package/dist/components/dashboard/kanban/KanbanDropIndicator.d.ts.map +1 -1
  375. package/dist/components/dashboard/kanban/index.d.ts +1 -1
  376. package/dist/components/dashboard/kanban/types.d.ts +24 -12
  377. package/dist/components/dashboard/kanban/types.d.ts.map +1 -1
  378. package/dist/components/scrollbar/scrollbar.d.ts +2 -1
  379. package/dist/components/scrollbar/scrollbar.d.ts.map +1 -1
  380. package/dist/context/MotionConfigContext.d.ts +41 -0
  381. package/dist/context/MotionConfigContext.d.ts.map +1 -0
  382. package/dist/data.d.mts +55 -23
  383. package/dist/data.d.ts +45 -3
  384. package/dist/data.d.ts.map +1 -1
  385. package/dist/data.mjs +2 -2
  386. package/dist/data.mjs.map +1 -1
  387. package/dist/feedback.d.mts +6 -293
  388. package/dist/feedback.d.ts +7 -5
  389. package/dist/feedback.d.ts.map +1 -1
  390. package/dist/feedback.mjs +1 -1
  391. package/dist/form.d.mts +99 -114
  392. package/dist/form.mjs +8 -3
  393. package/dist/form.mjs.map +1 -1
  394. package/dist/hooks/index.d.ts +6 -0
  395. package/dist/hooks/index.d.ts.map +1 -1
  396. package/dist/hooks/useAnimatedEntrance.d.ts +24 -0
  397. package/dist/hooks/useAnimatedEntrance.d.ts.map +1 -0
  398. package/dist/hooks/useBreakpoint.d.ts +22 -0
  399. package/dist/hooks/useBreakpoint.d.ts.map +1 -0
  400. package/dist/hooks/useDotEnv.d.ts +12 -0
  401. package/dist/hooks/useDotEnv.d.ts.map +1 -0
  402. package/dist/hooks/useDotMap.d.ts +38 -0
  403. package/dist/hooks/useDotMap.d.ts.map +1 -0
  404. package/dist/iconsax-extended.mjs +2 -2
  405. package/dist/iconsax-extended.mjs.map +1 -1
  406. package/dist/iconsax.mjs +2 -2
  407. package/dist/iconsax.mjs.map +1 -1
  408. package/dist/index.d.mts +358 -127
  409. package/dist/index.d.ts +74 -64
  410. package/dist/index.d.ts.map +1 -1
  411. package/dist/index.mjs +15 -15
  412. package/dist/index.mjs.map +1 -1
  413. package/dist/interactive/kanban.d.ts +12 -0
  414. package/dist/interactive/kanban.d.ts.map +1 -0
  415. package/dist/interactive-kanban.d.mts +378 -0
  416. package/dist/interactive-kanban.mjs +3 -0
  417. package/dist/interactive-kanban.mjs.map +1 -0
  418. package/dist/interactive.d.mts +193 -197
  419. package/dist/interactive.d.ts +7 -5
  420. package/dist/interactive.d.ts.map +1 -1
  421. package/dist/interactive.mjs +1 -1
  422. package/dist/interactive.mjs.map +1 -1
  423. package/dist/landing/LandingAbout.d.ts +2 -2
  424. package/dist/landing/LandingAbout.d.ts.map +1 -1
  425. package/dist/landing/LandingCTA.d.ts +2 -2
  426. package/dist/landing/LandingCTA.d.ts.map +1 -1
  427. package/dist/landing/LandingContact.d.ts +2 -2
  428. package/dist/landing/LandingContact.d.ts.map +1 -1
  429. package/dist/landing/LandingExperience.d.ts +1 -1
  430. package/dist/landing/LandingExperience.d.ts.map +1 -1
  431. package/dist/landing/LandingFeatures.d.ts +1 -1
  432. package/dist/landing/LandingFeatures.d.ts.map +1 -1
  433. package/dist/landing/LandingHero.d.ts +2 -2
  434. package/dist/landing/LandingHero.d.ts.map +1 -1
  435. package/dist/landing/LandingLogoCloud.d.ts +2 -2
  436. package/dist/landing/LandingLogoCloud.d.ts.map +1 -1
  437. package/dist/landing/LandingMetrics.d.ts +1 -1
  438. package/dist/landing/LandingMetrics.d.ts.map +1 -1
  439. package/dist/landing/LandingProjects.d.ts +1 -1
  440. package/dist/landing/LandingProjects.d.ts.map +1 -1
  441. package/dist/landing/LandingShowcase.d.ts +2 -2
  442. package/dist/landing/LandingShowcase.d.ts.map +1 -1
  443. package/dist/landing/LandingSkills.d.ts +1 -1
  444. package/dist/landing/LandingSkills.d.ts.map +1 -1
  445. package/dist/landing/LandingStats.d.ts +1 -1
  446. package/dist/landing/LandingStats.d.ts.map +1 -1
  447. package/dist/landing/LandingTestimonials.d.ts +1 -1
  448. package/dist/landing/LandingTestimonials.d.ts.map +1 -1
  449. package/dist/landing/types.d.ts +42 -30
  450. package/dist/landing/types.d.ts.map +1 -1
  451. package/dist/landing.d.mts +47 -37
  452. package/dist/landing.mjs +4 -20
  453. package/dist/landing.mjs.map +1 -1
  454. package/dist/lib/Slot.d.ts.map +1 -1
  455. package/dist/lib/icon-providers.d.ts +17 -3
  456. package/dist/lib/icon-providers.d.ts.map +1 -1
  457. package/dist/lib/styles/animation.d.ts +35 -0
  458. package/dist/lib/styles/animation.d.ts.map +1 -0
  459. package/dist/lib/styles/disabled.d.ts +15 -0
  460. package/dist/lib/styles/disabled.d.ts.map +1 -0
  461. package/dist/lib/styles/focus.d.ts +34 -0
  462. package/dist/lib/styles/focus.d.ts.map +1 -0
  463. package/dist/lib/styles/glass.d.ts +18 -0
  464. package/dist/lib/styles/glass.d.ts.map +1 -0
  465. package/dist/lib/styles/hover.d.ts +9 -0
  466. package/dist/lib/styles/hover.d.ts.map +1 -0
  467. package/dist/lib/styles/index.d.ts +6 -0
  468. package/dist/lib/styles/index.d.ts.map +1 -1
  469. package/dist/lib/styles/transition.d.ts +42 -0
  470. package/dist/lib/styles/transition.d.ts.map +1 -0
  471. package/dist/lib/types/common.d.ts +3 -3
  472. package/dist/lib/types/common.d.ts.map +1 -1
  473. package/dist/native/Box.d.ts +11 -0
  474. package/dist/native/Box.d.ts.map +1 -0
  475. package/dist/native/Pressable.d.ts +10 -0
  476. package/dist/native/Pressable.d.ts.map +1 -0
  477. package/dist/native/Text.d.ts +11 -0
  478. package/dist/native/Text.d.ts.map +1 -0
  479. package/dist/native/index.d.ts +9 -0
  480. package/dist/native/index.d.ts.map +1 -0
  481. package/dist/native/useDotMap.d.ts +51 -0
  482. package/dist/native/useDotMap.d.ts.map +1 -0
  483. package/dist/native.mjs +2 -0
  484. package/dist/native.mjs.map +1 -0
  485. package/dist/navigation.d.mts +48 -21
  486. package/dist/navigation.d.ts +10 -8
  487. package/dist/navigation.d.ts.map +1 -1
  488. package/dist/navigation.mjs +1 -1
  489. package/dist/navigation.mjs.map +1 -1
  490. package/dist/overlay.d.mts +84 -37
  491. package/dist/overlay.mjs +2 -2
  492. package/dist/overlay.mjs.map +1 -1
  493. package/dist/sdui/SDUIRenderer.d.ts.map +1 -1
  494. package/dist/sdui/core.d.ts +50 -0
  495. package/dist/sdui/core.d.ts.map +1 -0
  496. package/dist/sdui/index.d.ts +3 -1
  497. package/dist/sdui/index.d.ts.map +1 -1
  498. package/dist/sdui/registry.d.ts.map +1 -1
  499. package/dist/sdui/types.d.ts +38 -0
  500. package/dist/sdui/types.d.ts.map +1 -1
  501. package/dist/sdui.d.mts +89 -1
  502. package/dist/sdui.mjs +2 -2
  503. package/dist/sdui.mjs.map +1 -1
  504. package/package.json +39 -15
  505. package/src/styles/component-vars.css +503 -69
  506. package/src/styles/landing.css +12 -12
  507. package/src/styles/prose.css +284 -0
  508. package/src/styles/recommended-theme.css +123 -141
  509. package/src/styles/utilities.css +3 -3
  510. package/dist/chunk-5DPW7SVD.mjs +0 -4
  511. package/dist/chunk-5DPW7SVD.mjs.map +0 -1
  512. package/dist/chunk-5L5HIPKA.mjs +0 -3
  513. package/dist/chunk-5L5HIPKA.mjs.map +0 -1
  514. package/dist/chunk-CNW22G24.mjs +0 -13
  515. package/dist/chunk-CNW22G24.mjs.map +0 -1
  516. package/dist/chunk-CW66UBQG.mjs +0 -3
  517. package/dist/chunk-CW66UBQG.mjs.map +0 -1
  518. package/dist/chunk-EPY3432E.mjs +0 -3
  519. package/dist/chunk-EPY3432E.mjs.map +0 -1
  520. package/dist/chunk-F2M4YDDQ.mjs +0 -3
  521. package/dist/chunk-F2M4YDDQ.mjs.map +0 -1
  522. package/dist/chunk-FHMFDCX2.mjs +0 -3
  523. package/dist/chunk-FHMFDCX2.mjs.map +0 -1
  524. package/dist/chunk-HBIUCLFL.mjs +0 -3
  525. package/dist/chunk-HBIUCLFL.mjs.map +0 -1
  526. package/dist/chunk-HEBXAFRY.mjs +0 -3
  527. package/dist/chunk-HEBXAFRY.mjs.map +0 -1
  528. package/dist/chunk-IG47LMOD.mjs +0 -3
  529. package/dist/chunk-IG47LMOD.mjs.map +0 -1
  530. package/dist/chunk-J47ZEXEL.mjs +0 -3
  531. package/dist/chunk-J47ZEXEL.mjs.map +0 -1
  532. package/dist/chunk-K2FOFIST.mjs +0 -3
  533. package/dist/chunk-K2FOFIST.mjs.map +0 -1
  534. package/dist/chunk-LL6QPRD7.mjs +0 -3
  535. package/dist/chunk-LL6QPRD7.mjs.map +0 -1
  536. package/dist/chunk-NMJLOK6M.mjs +0 -3
  537. package/dist/chunk-NMJLOK6M.mjs.map +0 -1
  538. package/dist/chunk-O24K56OS.mjs +0 -3
  539. package/dist/chunk-O24K56OS.mjs.map +0 -1
  540. package/dist/chunk-OIWG3IJ7.mjs +0 -3
  541. package/dist/chunk-OIWG3IJ7.mjs.map +0 -1
  542. package/dist/chunk-OLLU7ZFH.mjs +0 -3
  543. package/dist/chunk-OLLU7ZFH.mjs.map +0 -1
  544. package/dist/chunk-Q76JW7X5.mjs +0 -73
  545. package/dist/chunk-Q76JW7X5.mjs.map +0 -1
  546. package/dist/chunk-QRM66RQG.mjs +0 -3
  547. package/dist/chunk-QRM66RQG.mjs.map +0 -1
  548. package/dist/chunk-QRRP7TGF.mjs +0 -13
  549. package/dist/chunk-QRRP7TGF.mjs.map +0 -1
  550. package/dist/chunk-SD6XGDAC.mjs +0 -3
  551. package/dist/chunk-SD6XGDAC.mjs.map +0 -1
  552. package/dist/chunk-SDFVGFXT.mjs +0 -3
  553. package/dist/chunk-SDFVGFXT.mjs.map +0 -1
  554. package/dist/chunk-SMLDNOV3.mjs +0 -8
  555. package/dist/chunk-SMLDNOV3.mjs.map +0 -1
  556. package/dist/chunk-TAP6MYDW.mjs +0 -3
  557. package/dist/chunk-TAP6MYDW.mjs.map +0 -1
  558. package/dist/chunk-TBZ645BI.mjs +0 -3
  559. package/dist/chunk-TBZ645BI.mjs.map +0 -1
  560. package/dist/chunk-V2DNYJR6.mjs +0 -3
  561. package/dist/chunk-V2DNYJR6.mjs.map +0 -1
  562. package/dist/chunk-VBABZXL7.mjs +0 -3
  563. package/dist/chunk-VBABZXL7.mjs.map +0 -1
  564. package/dist/chunk-WYBSHTGY.mjs +0 -3
  565. package/dist/chunk-WYBSHTGY.mjs.map +0 -1
  566. package/dist/chunk-ZQUMJQYV.mjs +0 -3
  567. package/dist/chunk-ZQUMJQYV.mjs.map +0 -1
  568. package/dist/chunk-ZY23NOT4.mjs +0 -3
  569. package/dist/chunk-ZY23NOT4.mjs.map +0 -1
  570. package/dist/components/EmptyState.d.ts +0 -62
  571. package/dist/components/EmptyState.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- export { M as Modal, a as ModalProps } from './Modal-CrXmb3Ll.mjs';
1
+ export { M as Modal, a as ModalProps } from './Modal-DKKtBtbh.mjs';
2
2
  import React from 'react';
3
3
 
4
4
  /**
@@ -24,6 +24,8 @@ import React from 'react';
24
24
  * @property {string} [requiredInputValue] - 필수 입력 값 (확인 버튼 활성화 조건) / Required input value (confirm button activation condition)
25
25
  * @property {boolean} [showCancel=true] - 취소 버튼 표시 여부 / Show cancel button
26
26
  * @property {"sm" | "md" | "lg" | "xl" | "2xl"} [size="md"] - 모달 크기 / Modal size
27
+ * @property {string} [dot] - dot 유틸리티 스트링 (인라인 스타일로 변환) / dot utility string
28
+ * @property {React.CSSProperties} [style] - 추가 인라인 스타일 / Additional inline styles
27
29
  */
28
30
  interface ConfirmModalProps {
29
31
  isOpen: boolean;
@@ -46,6 +48,8 @@ interface ConfirmModalProps {
46
48
  requiredInputValue?: string;
47
49
  showCancel?: boolean;
48
50
  size?: "sm" | "md" | "lg" | "xl" | "2xl";
51
+ dot?: string;
52
+ style?: React.CSSProperties;
49
53
  }
50
54
  /**
51
55
  * ConfirmModal 컴포넌트 / ConfirmModal component
@@ -101,9 +105,13 @@ declare const ConfirmModal: React.ForwardRefExoticComponent<ConfirmModalProps &
101
105
  * @property {"start" | "center" | "end"} [align="center"] - Popover 정렬 / Popover alignment
102
106
  * @property {number} [offset=8] - 트리거와 Popover 사이 간격 (px) / Spacing between trigger and popover (px)
103
107
  * @property {boolean} [disabled=false] - Popover 비활성화 여부 / Disable popover
104
- * @extends {React.HTMLAttributes<HTMLDivElement>}
108
+ * @property {string} [contentDot] - dot utility string for popover panel / 팝오버 패널 dot 유틸리티
109
+ * @property {React.CSSProperties} [contentStyle] - inline style for popover panel / 팝오버 패널 인라인 스타일
110
+ * @property {boolean} [fullWidth] - 트리거를 full-width로 렌더링 / Render trigger as full-width
111
+ * @property {string} [dot] - dot utility string for wrapper / 래퍼 dot 유틸리티
112
+ * @property {React.CSSProperties} [style] - inline style for wrapper / 래퍼 인라인 스타일
105
113
  */
106
- interface PopoverProps extends React.HTMLAttributes<HTMLDivElement> {
114
+ interface PopoverProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
107
115
  children: React.ReactNode;
108
116
  trigger: React.ReactNode;
109
117
  open?: boolean;
@@ -112,10 +120,14 @@ interface PopoverProps extends React.HTMLAttributes<HTMLDivElement> {
112
120
  align?: "start" | "center" | "end";
113
121
  offset?: number;
114
122
  disabled?: boolean;
115
- /** Popover 콘텐츠 영역 추가 클래스 / Additional class for popover content area */
116
- contentClassName?: string;
117
- /** 트리거를 full-width로 렌더링 (DatePicker 등) / Render trigger as full-width */
123
+ /** dot utility string for popover content panel */
124
+ contentDot?: string;
125
+ /** inline style overrides for popover content panel */
126
+ contentStyle?: React.CSSProperties;
127
+ /** Render trigger as full-width (DatePicker etc.) */
118
128
  fullWidth?: boolean;
129
+ dot?: string;
130
+ style?: React.CSSProperties;
119
131
  }
120
132
  /**
121
133
  * Popover 컴포넌트 / Popover component
@@ -130,7 +142,7 @@ interface PopoverProps extends React.HTMLAttributes<HTMLDivElement> {
130
142
  * @example
131
143
  * // 기본 사용 / Basic usage
132
144
  * <Popover trigger={<Button>열기</Button>}>
133
- * <div className="p-4">Popover 내용</div>
145
+ * <div style={{ padding: 16 }}>Popover 내용</div>
134
146
  * </Popover>
135
147
  *
136
148
  * @example
@@ -142,7 +154,7 @@ interface PopoverProps extends React.HTMLAttributes<HTMLDivElement> {
142
154
  * trigger={<Button>제어 모드</Button>}
143
155
  * position="top"
144
156
  * >
145
- * <div className="p-4">내용</div>
157
+ * <div style={{ padding: 16 }}>내용</div>
146
158
  * </Popover>
147
159
  *
148
160
  * @param {PopoverProps} props - Popover 컴포넌트의 props / Popover component props
@@ -150,10 +162,18 @@ interface PopoverProps extends React.HTMLAttributes<HTMLDivElement> {
150
162
  * @returns {JSX.Element} Popover 컴포넌트 / Popover component
151
163
  */
152
164
  declare const Popover: React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLDivElement>>;
153
- declare const PopoverTrigger: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
154
- declare const PopoverContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
165
+ interface PopoverTriggerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
166
+ dot?: string;
167
+ style?: React.CSSProperties;
168
+ }
169
+ declare const PopoverTrigger: React.ForwardRefExoticComponent<PopoverTriggerProps & React.RefAttributes<HTMLDivElement>>;
170
+ interface PopoverContentProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
171
+ dot?: string;
172
+ style?: React.CSSProperties;
173
+ }
174
+ declare const PopoverContent: React.ForwardRefExoticComponent<PopoverContentProps & React.RefAttributes<HTMLDivElement>>;
155
175
 
156
- interface DropdownProps extends React.HTMLAttributes<HTMLDivElement> {
176
+ interface DropdownProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
157
177
  trigger: React.ReactNode;
158
178
  children: React.ReactNode;
159
179
  open?: boolean;
@@ -163,21 +183,39 @@ interface DropdownProps extends React.HTMLAttributes<HTMLDivElement> {
163
183
  offset?: number;
164
184
  disabled?: boolean;
165
185
  showArrow?: boolean;
186
+ rounded?: "none" | "sm" | "md" | "lg" | "xl" | "full";
187
+ shadow?: "none" | "sm" | "md" | "lg" | "xl" | "2xl";
188
+ dot?: string;
189
+ style?: React.CSSProperties;
166
190
  }
167
191
  declare const Dropdown: React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<HTMLDivElement>>;
168
- interface DropdownItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
192
+ interface DropdownItemProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className"> {
169
193
  icon?: React.ReactNode;
170
194
  variant?: "default" | "destructive" | "disabled";
195
+ dot?: string;
196
+ style?: React.CSSProperties;
171
197
  }
172
198
  declare const DropdownItem: React.ForwardRefExoticComponent<DropdownItemProps & React.RefAttributes<HTMLButtonElement>>;
173
- interface DropdownSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
199
+ interface DropdownSeparatorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
200
+ dot?: string;
201
+ style?: React.CSSProperties;
174
202
  }
175
203
  declare const DropdownSeparator: React.ForwardRefExoticComponent<DropdownSeparatorProps & React.RefAttributes<HTMLDivElement>>;
176
- interface DropdownLabelProps extends React.HTMLAttributes<HTMLDivElement> {
204
+ interface DropdownLabelProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
205
+ dot?: string;
206
+ style?: React.CSSProperties;
177
207
  }
178
208
  declare const DropdownLabel: React.ForwardRefExoticComponent<DropdownLabelProps & React.RefAttributes<HTMLDivElement>>;
179
- declare const DropdownMenu: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
180
- declare const DropdownGroup: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
209
+ interface DropdownMenuProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
210
+ dot?: string;
211
+ style?: React.CSSProperties;
212
+ }
213
+ declare const DropdownMenu: React.ForwardRefExoticComponent<DropdownMenuProps & React.RefAttributes<HTMLDivElement>>;
214
+ interface DropdownGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
215
+ dot?: string;
216
+ style?: React.CSSProperties;
217
+ }
218
+ declare const DropdownGroup: React.ForwardRefExoticComponent<DropdownGroupProps & React.RefAttributes<HTMLDivElement>>;
181
219
 
182
220
  /**
183
221
  * Drawer 컴포넌트의 props / Drawer component props
@@ -185,11 +223,11 @@ declare const DropdownGroup: React.ForwardRefExoticComponent<React.HTMLAttribute
185
223
  * @property {boolean} open - Drawer 열림/닫힘 상태 / Drawer open/close state
186
224
  * @property {(open: boolean) => void} onOpenChange - 상태 변경 콜백 / State change callback
187
225
  * @property {React.ReactNode} children - Drawer 내용 / Drawer content
188
- * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
226
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
189
227
  * @property {"left" | "right" | "top" | "bottom"} [side="right"] - Drawer 표시 위치 / Drawer display position
190
228
  * @property {"sm" | "md" | "lg" | "xl" | "full"} [size="md"] - Drawer 크기 / Drawer size
191
229
  * @property {boolean} [showBackdrop=true] - 배경 오버레이 표시 여부 / Show backdrop overlay
192
- * @property {string} [backdropClassName] - 배경 오버레이 추가 CSS 클래스 / Backdrop overlay additional CSS class
230
+ * @property {string} [backdropDot] - 배경 오버레이 추가 dot 스트링 / Backdrop overlay additional dot string
193
231
  * @property {boolean} [closeOnBackdropClick=true] - 배경 클릭 시 닫기 여부 / Close on backdrop click
194
232
  * @property {boolean} [closeOnEscape=true] - ESC 키로 닫기 여부 / Close on ESC key
195
233
  */
@@ -200,16 +238,18 @@ interface DrawerProps {
200
238
  onClose?: () => void;
201
239
  /** Drawer 내용 / Drawer content */
202
240
  children: React.ReactNode;
203
- /** 추가 CSS 클래스 / Additional CSS class */
204
- className?: string;
241
+ /** dot 유틸리티 스트링 (인라인 스타일로 변환) / dot utility string (converted to inline style) */
242
+ dot?: string;
243
+ /** 인라인 스타일 / Inline style */
244
+ style?: React.CSSProperties;
205
245
  /** Drawer 표시 위치 / Drawer display position */
206
246
  side?: "left" | "right" | "top" | "bottom";
207
247
  /** Drawer 크기 / Drawer size */
208
248
  size?: "sm" | "md" | "lg" | "xl" | "full";
209
249
  /** 배경 오버레이 표시 여부 / Show backdrop overlay */
210
250
  showBackdrop?: boolean;
211
- /** 배경 오버레이 추가 CSS 클래스 / Backdrop overlay additional CSS class */
212
- backdropClassName?: string;
251
+ /** 배경 오버레이 추가 dot 스트링 / Backdrop overlay additional dot string */
252
+ backdropDot?: string;
213
253
  /** 배경 클릭 시 닫기 여부 / Close on backdrop click */
214
254
  closeOnBackdropClick?: boolean;
215
255
  /** ESC 키로 닫기 여부 / Close on ESC key */
@@ -259,13 +299,14 @@ declare const Drawer: React.ForwardRefExoticComponent<DrawerProps & React.RefAtt
259
299
  * DrawerHeader 컴포넌트의 props / DrawerHeader component props
260
300
  * @typedef {Object} DrawerHeaderProps
261
301
  * @property {React.ReactNode} children - 헤더 내용 / Header content
262
- * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
302
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
263
303
  * @property {boolean} [showCloseButton=true] - 닫기 버튼 표시 여부 / Show close button
264
304
  * @property {() => void} [onClose] - 닫기 버튼 클릭 콜백 / Close button click callback
265
305
  */
266
306
  interface DrawerHeaderProps {
267
307
  children: React.ReactNode;
268
- className?: string;
308
+ /** 인라인 스타일 / Inline style */
309
+ style?: React.CSSProperties;
269
310
  showCloseButton?: boolean;
270
311
  onClose?: () => void;
271
312
  }
@@ -284,11 +325,12 @@ declare const DrawerHeader: React.ForwardRefExoticComponent<DrawerHeaderProps &
284
325
  * DrawerContent 컴포넌트의 props / DrawerContent component props
285
326
  * @typedef {Object} DrawerContentProps
286
327
  * @property {React.ReactNode} children - 콘텐츠 / Content
287
- * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
328
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
288
329
  */
289
330
  interface DrawerContentProps {
290
331
  children: React.ReactNode;
291
- className?: string;
332
+ /** 인라인 스타일 / Inline style */
333
+ style?: React.CSSProperties;
292
334
  }
293
335
  /**
294
336
  * DrawerContent 컴포넌트 / DrawerContent component
@@ -305,11 +347,12 @@ declare const DrawerContent: React.ForwardRefExoticComponent<DrawerContentProps
305
347
  * DrawerFooter 컴포넌트의 props / DrawerFooter component props
306
348
  * @typedef {Object} DrawerFooterProps
307
349
  * @property {React.ReactNode} children - 푸터 내용 / Footer content
308
- * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
350
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
309
351
  */
310
352
  interface DrawerFooterProps {
311
353
  children: React.ReactNode;
312
- className?: string;
354
+ /** 인라인 스타일 / Inline style */
355
+ style?: React.CSSProperties;
313
356
  }
314
357
  /**
315
358
  * DrawerFooter 컴포넌트 / DrawerFooter component
@@ -329,7 +372,7 @@ declare const DrawerFooter: React.ForwardRefExoticComponent<DrawerFooterProps &
329
372
  * @property {boolean} open - BottomSheet 열림/닫힘 상태 / BottomSheet open/close state
330
373
  * @property {(open: boolean) => void} onOpenChange - 상태 변경 콜백 / State change callback
331
374
  * @property {React.ReactNode} children - BottomSheet 내용 / BottomSheet content
332
- * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
375
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
333
376
  * @property {"sm" | "md" | "lg" | "xl" | "full"} [height="md"] - BottomSheet 높이 / BottomSheet height
334
377
  * @property {boolean} [showBackdrop=true] - 배경 오버레이 표시 여부 / Show backdrop overlay
335
378
  * @property {string} [backdropClassName] - 배경 오버레이 추가 CSS 클래스 / Backdrop overlay additional CSS class
@@ -346,14 +389,16 @@ interface BottomSheetProps {
346
389
  onClose?: () => void;
347
390
  /** BottomSheet 내용 / BottomSheet content */
348
391
  children: React.ReactNode;
349
- /** 추가 CSS 클래스 / Additional CSS class */
350
- className?: string;
392
+ /** dot 유틸리티 스트링 (인라인 스타일로 변환) / dot utility string (converted to inline style) */
393
+ dot?: string;
394
+ /** 인라인 스타일 / Inline style */
395
+ style?: React.CSSProperties;
351
396
  /** BottomSheet 높이 / BottomSheet height */
352
397
  height?: "sm" | "md" | "lg" | "xl" | "full";
353
398
  /** 배경 오버레이 표시 여부 / Show backdrop overlay */
354
399
  showBackdrop?: boolean;
355
- /** 배경 오버레이 추가 CSS 클래스 / Backdrop overlay additional CSS class */
356
- backdropClassName?: string;
400
+ /** 배경 오버레이 추가 dot 스트링 / Backdrop overlay additional dot string */
401
+ backdropDot?: string;
357
402
  /** 배경 클릭 시 닫기 여부 / Close on backdrop click */
358
403
  closeOnBackdropClick?: boolean;
359
404
  /** ESC 키로 닫기 여부 / Close on ESC key */
@@ -411,13 +456,14 @@ declare const BottomSheet: React.ForwardRefExoticComponent<BottomSheetProps & Re
411
456
  * BottomSheetHeader 컴포넌트의 props / BottomSheetHeader component props
412
457
  * @typedef {Object} BottomSheetHeaderProps
413
458
  * @property {React.ReactNode} children - 헤더 내용 / Header content
414
- * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
459
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
415
460
  * @property {boolean} [showCloseButton=true] - 닫기 버튼 표시 여부 / Show close button
416
461
  * @property {() => void} [onClose] - 닫기 버튼 클릭 콜백 / Close button click callback
417
462
  */
418
463
  interface BottomSheetHeaderProps {
419
464
  children: React.ReactNode;
420
- className?: string;
465
+ /** 인라인 스타일 / Inline style */
466
+ style?: React.CSSProperties;
421
467
  showCloseButton?: boolean;
422
468
  onClose?: () => void;
423
469
  }
@@ -436,11 +482,12 @@ declare const BottomSheetHeader: React.ForwardRefExoticComponent<BottomSheetHead
436
482
  * BottomSheetContent 컴포넌트의 props / BottomSheetContent component props
437
483
  * @typedef {Object} BottomSheetContentProps
438
484
  * @property {React.ReactNode} children - 콘텐츠 / Content
439
- * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
485
+ * @property {React.CSSProperties} [style] - 인라인 스타일 / Inline style
440
486
  */
441
487
  interface BottomSheetContentProps {
442
488
  children: React.ReactNode;
443
- className?: string;
489
+ /** 인라인 스타일 / Inline style */
490
+ style?: React.CSSProperties;
444
491
  }
445
492
  /**
446
493
  * BottomSheetContent 컴포넌트 / BottomSheetContent component
package/dist/overlay.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import {a}from'./chunk-HBIUCLFL.mjs';export{a as Modal}from'./chunk-HBIUCLFL.mjs';export{g as Drawer,i as DrawerContent,j as DrawerFooter,h as DrawerHeader,a as Dropdown,f as DropdownGroup,b as DropdownItem,d as DropdownLabel,e as DropdownMenu,c as DropdownSeparator}from'./chunk-OIWG3IJ7.mjs';export{a as Popover,c as PopoverContent,b as PopoverTrigger}from'./chunk-ZY23NOT4.mjs';import {d}from'./chunk-O24K56OS.mjs';import'./chunk-SD6XGDAC.mjs';import {l}from'./chunk-ZQUMJQYV.mjs';import {a as a$1}from'./chunk-QEMPERUK.mjs';import'./chunk-EAZEI74V.mjs';import o from'react';import {jsx,jsxs}from'react/jsx-runtime';var W=o.forwardRef(({isOpen:s,onClose:r,onConfirm:c,title:d$1,message:a$2,warning:m,confirmText:T="\uD655\uC778",cancelText:D="\uCDE8\uC18C",confirmButtonText:x,type:E="danger",loading:w=false,disabled:g=false,showInput:y=false,inputValue:C="",onInputChange:p,inputPlaceholder:l,inputLabel:v,requiredInputValue:k,showCancel:b=true,size:N="md"},h)=>{let f={danger:{icon:jsx("svg",{className:"h-6 w-6 text-destructive",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})}),bgColor:"bg-destructive/10",buttonColor:"bg-destructive hover:bg-destructive/90 focus:ring-destructive",textColor:"text-destructive"},warning:{icon:jsx("svg",{className:"h-6 w-6 text-yellow-600 dark:text-yellow-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})}),bgColor:"bg-yellow-100 dark:bg-yellow-900/20",buttonColor:"bg-yellow-600 hover:bg-yellow-700 focus:ring-yellow-500",textColor:"text-yellow-600 dark:text-yellow-400"},info:{icon:jsx("svg",{className:"h-6 w-6 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),bgColor:"bg-primary/10",buttonColor:"bg-primary hover:bg-primary/80 focus:ring-ring",textColor:"text-primary"},success:{icon:jsx("svg",{className:"h-6 w-6 text-green-600 dark:text-green-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),bgColor:"bg-green-100 dark:bg-green-900/20",buttonColor:"bg-green-600 hover:bg-green-700 focus:ring-green-500",textColor:"text-green-600 dark:text-green-400"},error:{icon:jsx("svg",{className:"h-6 w-6 text-destructive",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})}),bgColor:"bg-destructive/10",buttonColor:"bg-destructive hover:bg-destructive/90 focus:ring-destructive",textColor:"text-destructive"}}[E],M=g||w||!(!y||!k||C===k);return jsx(a,{isOpen:s,onClose:r,closable:false,size:N,children:jsxs("div",{className:"text-center",children:[jsx("div",{className:a$1("mx-auto flex items-center justify-center h-16 w-16 rounded-full mb-6",f.bgColor),children:f.icon}),jsxs("h3",{className:"text-xl font-semibold text-foreground mb-4",children:[" ",d$1]}),jsxs("div",{className:"mb-6",children:[" ",jsx("p",{className:"text-sm text-muted-foreground",children:a$2}),m&&jsx("p",{className:a$1("text-sm mt-3 font-medium",f.textColor),children:m})]}),y&&jsxs("div",{className:"mb-6",children:[" ",jsxs("label",{htmlFor:"confirmInput",className:"block text-sm font-medium text-foreground mb-3 text-left",children:[" ",v]}),jsx("input",{type:"text",id:"confirmInput",value:C,onChange:S=>p==null?void 0:p(S.target.value),placeholder:l,className:"w-full px-4 py-3 border border-input rounded-lg focus:outline-none focus:ring-1 focus:ring-destructive focus:border-transparent bg-background text-foreground transition-colors"})]}),jsxs("div",{className:a$1("flex gap-3","justify-center"),children:[b&&jsx(d,{variant:"outline",onClick:r,disabled:w,className:"px-6 py-3",children:D}),jsx(d,{variant:"default",onClick:c,disabled:M,className:a$1("px-6 py-3",f.buttonColor),children:w?jsxs("div",{className:"flex items-center",children:[jsxs("svg",{className:"animate-spin -ml-1 mr-2 h-4 w-4 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"\uCC98\uB9AC \uC911..."]}):x||T})]})]})})});W.displayName="ConfirmModal";var V=o.forwardRef(({isOpen:s,onClose:r,children:c,className:d,height:a="md",showBackdrop:m=true,backdropClassName:T,closeOnBackdropClick:D=true,closeOnEscape:x=true,showDragHandle:E=true,closable:w=true,snapPoints:g=[25,50,75,100],defaultSnap:y=50,...C},p)=>{let l=s!=null?s:false,v=()=>{r==null||r();},[k,b]=o.useState(false),[N,h]=o.useState(false),[H,f]=o.useState(y),[B,M]=o.useState(false),[S,K]=o.useState(0),[Y,j]=o.useState(0),O={sm:"h-64",md:"h-96",lg:"h-[32rem]",xl:"h-[40rem]",full:"h-full"};o.useEffect(()=>{if(l){b(true),h(true);let t=setTimeout(()=>h(false),50);return ()=>clearTimeout(t)}else {h(true);let t=setTimeout(()=>{b(false),h(false);},300);return ()=>clearTimeout(t)}},[l]),o.useEffect(()=>{if(!x)return;let t=L=>{L.key==="Escape"&&l&&v();};return l&&(document.addEventListener("keydown",t),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",t),document.body.style.overflow="";}},[l,x]);let _=t=>{M(true),K(t.touches[0].clientY),j(t.touches[0].clientY);},$=t=>{B&&j(t.touches[0].clientY);},G=()=>{if(!B)return;M(false);let t=Y-S,L=100;if(t>L)v();else if(t<-L){let q=g.indexOf(H),J=Math.min(q+1,g.length-1);f(g[J]);}};return k?jsxs("div",{className:"fixed inset-0 z-50",children:[m&&jsx("div",{className:a$1("absolute inset-0 bg-black/85 backdrop-blur-md transition-opacity duration-300",N?l?"opacity-100":"opacity-0":"",T),onClick:D?v:void 0}),jsxs("div",{ref:p,className:a$1("absolute bottom-0 left-0 right-0 bg-background/95 backdrop-blur-xl border-t border-border/50 shadow-2xl rounded-t-lg transition-transform duration-300 ease-out pb-safe",a!=="full"?O[a]:"",N?l?"translate-y-0":"translate-y-full":"",d),style:{height:a==="full"?`${H}%`:void 0,maxHeight:a!=="full"?void 0:"100%",transform:B?`translateY(${Y-S}px)`:void 0},onTouchStart:_,onTouchMove:$,onTouchEnd:G,...C,children:[E&&jsx("div",{className:"flex justify-center pt-3 pb-2",children:jsx("div",{className:"w-12 h-1.5 bg-muted-foreground/30 rounded-full"})}),c]})]}):null});V.displayName="BottomSheet";var A=o.forwardRef(({children:s,className:r,showCloseButton:c=true,onClose:d,...a},m)=>jsxs("div",{ref:m,className:a$1("flex items-center justify-between px-6 py-4",r),...a,children:[jsx("div",{className:"flex-1",children:s}),c&&jsx("button",{onClick:d,className:"p-2 rounded-lg hover:bg-muted transition-colors",children:jsx(l,{name:"close",size:20})})]}));A.displayName="BottomSheetHeader";var F=o.forwardRef(({children:s,className:r,...c},d)=>jsx("div",{ref:d,className:a$1("flex-1 px-6 pb-6 overflow-y-auto",r),...c,children:s}));F.displayName="BottomSheetContent";
3
- export{V as BottomSheet,F as BottomSheetContent,A as BottomSheetHeader,W as ConfirmModal};//# sourceMappingURL=overlay.mjs.map
2
+ export{a as BottomSheet,c as BottomSheetContent,b as BottomSheetHeader}from'./chunk-CQBMR7VU.mjs';import {a}from'./chunk-C2DOXNBK.mjs';export{a as Modal}from'./chunk-C2DOXNBK.mjs';export{a as Dropdown,f as DropdownGroup,b as DropdownItem,d as DropdownLabel,e as DropdownMenu,c as DropdownSeparator}from'./chunk-CYAAAEPJ.mjs';export{a as Drawer,c as DrawerContent,d as DrawerFooter,b as DrawerHeader}from'./chunk-SPZ7SZH4.mjs';export{a as Popover,c as PopoverContent,b as PopoverTrigger}from'./chunk-ZZ67E3M5.mjs';import {a as a$1}from'./chunk-JY3QVUGW.mjs';import'./chunk-RICRFXFP.mjs';import'./chunk-LPHUWTQ2.mjs';import'./chunk-7T3IUG3G.mjs';import'./chunk-7CGJQSJO.mjs';import'./chunk-NSDWT2JM.mjs';import {e,d}from'./chunk-OBMOTQEU.mjs';import'./chunk-EAZEI74V.mjs';import eo,{useMemo,useState}from'react';import {jsx,jsxs}from'react/jsx-runtime';var no={textAlign:"center"},io={marginLeft:"auto",marginRight:"auto",display:"flex",alignItems:"center",justifyContent:"center",height:"64px",width:"64px",borderRadius:"9999px",...e("mb-6")},lo={fontSize:"1.25rem",fontWeight:600,color:"var(--color-foreground)",margin:0,...e("mb-4")},co={...e("mb-6")},ao={fontSize:"0.875rem",color:"var(--color-muted-foreground)",margin:0},so={fontSize:"0.875rem",fontWeight:500,margin:0,...e("mt-3")},uo={...e("mb-6")},po={display:"block",fontSize:"0.875rem",fontWeight:500,color:"var(--color-foreground)",...e("mb-3"),textAlign:"left"},go={width:"100%",...e("px-4 py-3"),border:"1px solid var(--color-input)",borderRadius:"8px",outline:"none",backgroundColor:"var(--color-background)",color:"var(--color-foreground)",transition:"border-color 200ms, box-shadow 200ms",boxSizing:"border-box"},Co={borderColor:"transparent",boxShadow:"0 0 0 1px var(--color-destructive)"},fo={display:"flex",...e("gap-3"),justifyContent:"center"},So={display:"flex",alignItems:"center"},vo={animation:"spin 1s linear infinite",marginLeft:"-4px",...e("mr-2 w-4 h-4"),color:"white"},k={danger:{iconBg:{backgroundColor:"color-mix(in srgb, var(--color-destructive) 10%, transparent)"},iconColor:{color:"var(--color-destructive)"},warningColor:{color:"var(--color-destructive)"},buttonStyle:{backgroundColor:"var(--color-destructive)",color:"var(--color-destructive-foreground)"}},warning:{iconBg:{backgroundColor:"color-mix(in srgb, #ca8a04 10%, transparent)"},iconColor:{color:"#ca8a04"},warningColor:{color:"#ca8a04"},buttonStyle:{backgroundColor:"#ca8a04",color:"#ffffff"}},info:{iconBg:{backgroundColor:"color-mix(in srgb, var(--color-primary) 10%, transparent)"},iconColor:{color:"var(--color-primary)"},warningColor:{color:"var(--color-primary)"},buttonStyle:{backgroundColor:"var(--color-primary)",color:"var(--color-primary-foreground)"}},success:{iconBg:{backgroundColor:"color-mix(in srgb, #16a34a 10%, transparent)"},iconColor:{color:"#16a34a"},warningColor:{color:"#16a34a"},buttonStyle:{backgroundColor:"#16a34a",color:"#ffffff"}},error:{iconBg:{backgroundColor:"color-mix(in srgb, var(--color-destructive) 10%, transparent)"},iconColor:{color:"var(--color-destructive)"},warningColor:{color:"var(--color-destructive)"},buttonStyle:{backgroundColor:"var(--color-destructive)",color:"var(--color-destructive-foreground)"}}},p={height:"24px",width:"24px"};function B({iconColor:r}){return jsx("svg",{style:d(p,r),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})})}function mo({iconColor:r}){return jsx("svg",{style:d(p,r),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})}function bo({iconColor:r}){return jsx("svg",{style:d(p,r),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}function yo({iconColor:r}){return jsx("svg",{style:d(p,r),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}function ho({id:r,value:i,placeholder:c,onChange:a}){let[d$1,s]=useState(false),g=useMemo(()=>d(go,d$1?Co:void 0),[d$1]);return jsx("input",{type:"text",id:r,value:i,onChange:C=>a(C.target.value),placeholder:c,style:g,onFocus:()=>s(true),onBlur:()=>s(false)})}function xo({onClick:r,disabled:i,buttonStyle:c,children:a}){return jsx(a$1,{variant:"default",onClick:r,disabled:i,style:c,children:a})}var L=eo.forwardRef(({isOpen:r,onClose:i,onConfirm:c,title:a$2,message:d$1,warning:s,confirmText:g="\uD655\uC778",cancelText:C="\uCDE8\uC18C",confirmButtonText:T,type:b="danger",loading:f=false,disabled:I=false,showInput:y=false,inputValue:h="",onInputChange:S,inputPlaceholder:E,inputLabel:M,requiredInputValue:x,showCancel:_=true,size:N="md",dot:w,style:P},wo)=>{var R;let t=(R=k[b])!=null?R:k.danger,W=I||f||!(!y||!x||h===x),A=useMemo(()=>d(no,e(w),P),[w,P]),D=useMemo(()=>d(io,t.iconBg),[t.iconBg]),z=useMemo(()=>d(so,t.warningColor),[t.warningColor]),O=(()=>{switch(b){case "warning":return jsx(B,{iconColor:t.iconColor});case "info":return jsx(mo,{iconColor:t.iconColor});case "success":return jsx(bo,{iconColor:t.iconColor});case "error":return jsx(yo,{iconColor:t.iconColor});default:return jsx(B,{iconColor:t.iconColor})}})();return jsx(a,{isOpen:r,onClose:i,closable:false,size:N,children:jsxs("div",{style:A,children:[jsx("div",{style:D,children:O}),jsx("h3",{style:lo,children:a$2}),jsxs("div",{style:co,children:[jsx("p",{style:ao,children:d$1}),s&&jsx("p",{style:z,children:s})]}),y&&jsxs("div",{style:uo,children:[jsx("label",{htmlFor:"confirmInput",style:po,children:M}),jsx(ho,{id:"confirmInput",value:h,placeholder:E,onChange:S!=null?S:(()=>{})})]}),jsxs("div",{style:fo,children:[_&&jsx(a$1,{variant:"outline",onClick:i,disabled:f,style:e("px-6 py-3"),children:C}),jsx(xo,{onClick:c,disabled:W,buttonStyle:d(e("px-6 py-3"),t.buttonStyle),children:f?jsxs("div",{style:So,children:[jsxs("svg",{style:vo,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[jsx("circle",{style:{opacity:.25},cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),jsx("path",{style:{opacity:.75},fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"\uCC98\uB9AC \uC911..."]}):T||g})]})]})})});L.displayName="ConfirmModal";
3
+ export{L as ConfirmModal};//# sourceMappingURL=overlay.mjs.map
4
4
  //# sourceMappingURL=overlay.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ConfirmModal.tsx","../src/components/BottomSheet.tsx"],"names":["ConfirmModal","React","isOpen","onClose","onConfirm","title","message","warning","confirmText","cancelText","confirmButtonText","type","loading","disabled","showInput","inputValue","onInputChange","inputPlaceholder","inputLabel","requiredInputValue","showCancel","size","_ref","config","jsx","isDisabled","Modal","jsxs","merge","e","Button","BottomSheet","children","className","height","showBackdrop","backdropClassName","closeOnBackdropClick","closeOnEscape","showDragHandle","closable","snapPoints","defaultSnap","props","ref","_isOpen","handleClose","isVisible","setIsVisible","isAnimating","setIsAnimating","currentHeight","setCurrentHeight","isDragging","setIsDragging","startY","setStartY","currentY","setCurrentY","heightClasses","timer","handleEscapeKey","handleTouchStart","handleTouchMove","handleTouchEnd","deltaY","threshold","currentIndex","nextIndex","BottomSheetHeader","showCloseButton","Icon","BottomSheetContent"],"mappings":"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","file":"overlay.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\nimport { Modal } from \"./Modal\"\nimport { Button } from \"./Button\"\n\n/**\n * ConfirmModal 컴포넌트의 props / ConfirmModal component props\n * @typedef {Object} ConfirmModalProps\n * @property {boolean} isOpen - 모달 열림/닫힘 상태 / Modal open/close state\n * @property {() => void} onClose - 닫기 콜백 / Close callback\n * @property {() => void} onConfirm - 확인 콜백 / Confirm callback\n * @property {string} title - 모달 제목 / Modal title\n * @property {string} message - 모달 메시지 / Modal message\n * @property {string} [warning] - 경고 메시지 / Warning message\n * @property {string} [confirmText=\"확인\"] - 확인 버튼 텍스트 / Confirm button text\n * @property {string} [cancelText=\"취소\"] - 취소 버튼 텍스트 / Cancel button text\n * @property {string} [confirmButtonText] - 확인 버튼 커스텀 텍스트 / Custom confirm button text\n * @property {\"danger\" | \"warning\" | \"info\" | \"success\" | \"error\"} [type=\"danger\"] - 모달 타입 / Modal type\n * @property {boolean} [loading=false] - 로딩 상태 / Loading state\n * @property {boolean} [disabled=false] - 비활성화 여부 / Disabled state\n * @property {boolean} [showInput=false] - 입력 필드 표시 여부 / Show input field\n * @property {string} [inputValue=\"\"] - 입력 필드 값 / Input field value\n * @property {(value: string) => void} [onInputChange] - 입력 값 변경 콜백 / Input value change callback\n * @property {string} [inputPlaceholder] - 입력 필드 플레이스홀더 / Input field placeholder\n * @property {string} [inputLabel] - 입력 필드 라벨 / Input field label\n * @property {string} [requiredInputValue] - 필수 입력 값 (확인 버튼 활성화 조건) / Required input value (confirm button activation condition)\n * @property {boolean} [showCancel=true] - 취소 버튼 표시 여부 / Show cancel button\n * @property {\"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"} [size=\"md\"] - 모달 크기 / Modal size\n */\nexport interface ConfirmModalProps {\n isOpen: boolean\n onClose: () => void\n onConfirm: () => void\n title: string\n message: string\n warning?: string\n confirmText?: string\n cancelText?: string\n confirmButtonText?: string\n type?: \"danger\" | \"warning\" | \"info\" | \"success\" | \"error\"\n loading?: boolean\n disabled?: boolean\n showInput?: boolean\n inputValue?: string\n onInputChange?: (value: string) => void\n inputPlaceholder?: string\n inputLabel?: string\n requiredInputValue?: string\n showCancel?: boolean\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"\n}\n\n/**\n * ConfirmModal 컴포넌트 / ConfirmModal component\n * \n * 확인/취소가 필요한 모달 컴포넌트입니다.\n * 다양한 타입(danger, warning, info, success, error)을 지원하며,\n * 입력 필드와 필수 입력 값 검증을 지원합니다.\n * \n * Modal component that requires confirmation/cancellation.\n * Supports various types (danger, warning, info, success, error),\n * and supports input fields and required input value validation.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <ConfirmModal\n * isOpen={isOpen}\n * onClose={() => setIsOpen(false)}\n * onConfirm={handleConfirm}\n * title=\"삭제 확인\"\n * message=\"정말 삭제하시겠습니까?\"\n * />\n * \n * @example\n * // 입력 필드와 함께 / With input field\n * <ConfirmModal\n * isOpen={isOpen}\n * onClose={() => setIsOpen(false)}\n * onConfirm={handleDelete}\n * title=\"삭제 확인\"\n * message=\"삭제하려면 'DELETE'를 입력하세요\"\n * showInput\n * inputLabel=\"확인 입력\"\n * requiredInputValue=\"DELETE\"\n * inputValue={inputValue}\n * onInputChange={setInputValue}\n * />\n * \n * @param {ConfirmModalProps} props - ConfirmModal 컴포넌트의 props / ConfirmModal component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} ConfirmModal 컴포넌트 / ConfirmModal component\n */\nconst ConfirmModal = React.forwardRef<HTMLDivElement, ConfirmModalProps>(\n ({\n isOpen,\n onClose,\n onConfirm,\n title,\n message,\n warning,\n confirmText = \"확인\",\n cancelText = \"취소\",\n confirmButtonText,\n type = \"danger\",\n loading = false,\n disabled = false,\n showInput = false,\n inputValue = \"\",\n onInputChange,\n inputPlaceholder,\n inputLabel,\n requiredInputValue,\n showCancel = true,\n size = \"md\"\n }, _ref) => {\n // 타입별 아이콘과 색상\n const typeConfig = {\n danger: {\n icon: (\n <svg className=\"h-6 w-6 text-destructive\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z\" />\n </svg>\n ),\n bgColor: \"bg-destructive/10\",\n buttonColor: \"bg-destructive hover:bg-destructive/90 focus:ring-destructive\",\n textColor: \"text-destructive\"\n },\n warning: {\n icon: (\n <svg className=\"h-6 w-6 text-yellow-600 dark:text-yellow-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z\" />\n </svg>\n ),\n bgColor: \"bg-yellow-100 dark:bg-yellow-900/20\",\n buttonColor: \"bg-yellow-600 hover:bg-yellow-700 focus:ring-yellow-500\",\n textColor: \"text-yellow-600 dark:text-yellow-400\"\n },\n info: {\n icon: (\n <svg className=\"h-6 w-6 text-primary\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n ),\n bgColor: \"bg-primary/10\",\n buttonColor: \"bg-primary hover:bg-primary/80 focus:ring-ring\",\n textColor: \"text-primary\"\n },\n success: {\n icon: (\n <svg className=\"h-6 w-6 text-green-600 dark:text-green-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" />\n </svg>\n ),\n bgColor: \"bg-green-100 dark:bg-green-900/20\",\n buttonColor: \"bg-green-600 hover:bg-green-700 focus:ring-green-500\",\n textColor: \"text-green-600 dark:text-green-400\"\n },\n error: {\n icon: (\n <svg className=\"h-6 w-6 text-destructive\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n ),\n bgColor: \"bg-destructive/10\",\n buttonColor: \"bg-destructive hover:bg-destructive/90 focus:ring-destructive\",\n textColor: \"text-destructive\"\n }\n }\n\n const config = typeConfig[type]\n const isInputValid = !showInput || !requiredInputValue || inputValue === requiredInputValue\n const isDisabled = disabled || loading || !isInputValid\n\n return (\n <Modal \n isOpen={isOpen} \n onClose={onClose} \n closable={false}\n size={size}\n >\n <div className=\"text-center\">\n {/* 아이콘 */}\n <div className={merge(\n \"mx-auto flex items-center justify-center h-16 w-16 rounded-full mb-6\", // 64px 아이콘, 24px 여백\n config.bgColor\n )}>\n {config.icon}\n </div>\n\n {/* 제목 */}\n <h3 className=\"text-xl font-semibold text-foreground mb-4\"> {/* 16px 여백 */}\n {title}\n </h3>\n\n {/* 메시지 */}\n <div className=\"mb-6\"> {/* 24px 여백 */}\n <p className=\"text-sm text-muted-foreground\">\n {message}\n </p>\n \n {/* 경고 메시지 */}\n {warning && (\n <p className={merge(\n \"text-sm mt-3 font-medium\", // 12px 여백\n config.textColor\n )}>\n {warning}\n </p>\n )}\n </div>\n\n {/* 입력 필드 */}\n {showInput && (\n <div className=\"mb-6\"> {/* 24px 여백 */}\n <label htmlFor=\"confirmInput\" className=\"block text-sm font-medium text-foreground mb-3 text-left\"> {/* 12px 여백 */}\n {inputLabel}\n </label>\n <input\n type=\"text\"\n id=\"confirmInput\"\n value={inputValue}\n onChange={(e) => onInputChange?.(e.target.value)}\n placeholder={inputPlaceholder}\n className=\"w-full px-4 py-3 border border-input rounded-lg focus:outline-none focus:ring-1 focus:ring-destructive focus:border-transparent bg-background text-foreground transition-colors\" // 16px, 12px 패딩\n />\n </div>\n )}\n\n {/* 버튼 */}\n <div className={merge(\n \"flex gap-3\", // 12px 간격\n showCancel ? \"justify-center\" : \"justify-center\"\n )}>\n {showCancel && (\n <Button\n variant=\"outline\"\n onClick={onClose}\n disabled={loading}\n className=\"px-6 py-3\" // 24px, 12px 패딩\n >\n {cancelText}\n </Button>\n )}\n <Button\n variant=\"default\"\n onClick={onConfirm}\n disabled={isDisabled}\n className={merge(\n \"px-6 py-3\", // 24px, 12px 패딩\n config.buttonColor\n )}\n >\n {loading ? (\n <div className=\"flex items-center\">\n <svg className=\"animate-spin -ml-1 mr-2 h-4 w-4 text-white\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\"></circle>\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n 처리 중...\n </div>\n ) : (\n confirmButtonText || confirmText\n )}\n </Button>\n </div>\n </div>\n </Modal>\n )\n }\n)\nConfirmModal.displayName = \"ConfirmModal\"\n\nexport { ConfirmModal } ","\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\nimport { Icon } from \"./Icon\"\n\n/**\n * BottomSheet 컴포넌트의 props / BottomSheet component props\n * @typedef {Object} BottomSheetProps\n * @property {boolean} open - BottomSheet 열림/닫힘 상태 / BottomSheet open/close state\n * @property {(open: boolean) => void} onOpenChange - 상태 변경 콜백 / State change callback\n * @property {React.ReactNode} children - BottomSheet 내용 / BottomSheet content\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n * @property {\"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\"} [height=\"md\"] - BottomSheet 높이 / BottomSheet height\n * @property {boolean} [showBackdrop=true] - 배경 오버레이 표시 여부 / Show backdrop overlay\n * @property {string} [backdropClassName] - 배경 오버레이 추가 CSS 클래스 / Backdrop overlay additional CSS class\n * @property {boolean} [closeOnBackdropClick=true] - 배경 클릭 시 닫기 여부 / Close on backdrop click\n * @property {boolean} [closeOnEscape=true] - ESC 키로 닫기 여부 / Close on ESC key\n * @property {boolean} [showDragHandle=true] - 드래그 핸들 표시 여부 / Show drag handle\n * @property {number[]} [snapPoints=[25, 50, 75, 100]] - 스냅 포인트 (퍼센트) / Snap points (percentage)\n * @property {number} [defaultSnap=50] - 기본 스냅 포인트 (퍼센트) / Default snap point (percentage)\n */\ninterface BottomSheetProps {\n /** BottomSheet 열림/닫힘 상태 / BottomSheet open/close state */\n isOpen?: boolean\n /** BottomSheet 닫기 콜백 / BottomSheet close callback */\n onClose?: () => void\n /** BottomSheet 내용 / BottomSheet content */\n children: React.ReactNode\n /** 추가 CSS 클래스 / Additional CSS class */\n className?: string\n /** BottomSheet 높이 / BottomSheet height */\n height?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\"\n /** 배경 오버레이 표시 여부 / Show backdrop overlay */\n showBackdrop?: boolean\n /** 배경 오버레이 추가 CSS 클래스 / Backdrop overlay additional CSS class */\n backdropClassName?: string\n /** 배경 클릭 시 닫기 여부 / Close on backdrop click */\n closeOnBackdropClick?: boolean\n /** ESC 키로 닫기 여부 / Close on ESC key */\n closeOnEscape?: boolean\n /** 드래그 핸들 표시 여부 / Show drag handle */\n showDragHandle?: boolean\n /** 닫기 버튼 표시 여부 / Show close button */\n closable?: boolean\n /** 스냅 포인트 (퍼센트) / Snap points (percentage) */\n snapPoints?: number[]\n /** 기본 스냅 포인트 (퍼센트) / Default snap point (percentage) */\n defaultSnap?: number\n}\n\n/**\n * BottomSheet 컴포넌트 / BottomSheet component\n * \n * 화면 하단에서 올라오는 시트 컴포넌트입니다.\n * 모바일 친화적인 UI를 제공하며, 드래그로 높이를 조절할 수 있습니다.\n * 스냅 포인트를 지원하여 특정 높이에서 멈출 수 있습니다.\n * \n * Sheet component that slides up from the bottom of the screen.\n * Provides mobile-friendly UI and allows height adjustment by dragging.\n * Supports snap points to stop at specific heights.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * const [open, setOpen] = useState(false)\n * \n * <BottomSheet open={open} onOpenChange={setOpen}>\n * <BottomSheetHeader>제목</BottomSheetHeader>\n * <BottomSheetContent>내용</BottomSheetContent>\n * </BottomSheet>\n * \n * @example\n * // 커스텀 스냅 포인트 / Custom snap points\n * <BottomSheet \n * open={open} \n * onOpenChange={setOpen}\n * snapPoints={[30, 60, 90]}\n * defaultSnap={30}\n * >\n * <BottomSheetContent>내용</BottomSheetContent>\n * </BottomSheet>\n * \n * @param {BottomSheetProps} props - BottomSheet 컴포넌트의 props / BottomSheet component props\n * @param {React.Ref<HTMLDivElement>} ref - BottomSheet 컨테이너 ref / BottomSheet container ref\n * @returns {JSX.Element} BottomSheet 컴포넌트 / BottomSheet component\n * \n * @todo 접근성 개선: role=\"dialog\", aria-modal=\"true\" 추가 필요 / Accessibility: Add role=\"dialog\", aria-modal=\"true\"\n * @todo 접근성 개선: aria-labelledby, aria-describedby 연결 필요 / Accessibility: Connect aria-labelledby, aria-describedby\n */\nconst BottomSheet = React.forwardRef<HTMLDivElement, BottomSheetProps>(\n ({\n isOpen,\n onClose,\n children,\n className,\n height = \"md\",\n showBackdrop = true,\n backdropClassName,\n closeOnBackdropClick = true,\n closeOnEscape = true,\n showDragHandle = true,\n closable = true,\n snapPoints = [25, 50, 75, 100],\n defaultSnap = 50,\n ...props\n }, ref) => {\n const _isOpen = isOpen ?? false\n const handleClose = () => {\n onClose?.()\n }\n\n const [isVisible, setIsVisible] = React.useState(false)\n const [isAnimating, setIsAnimating] = React.useState(false)\n const [currentHeight, setCurrentHeight] = React.useState(defaultSnap)\n const [isDragging, setIsDragging] = React.useState(false)\n const [startY, setStartY] = React.useState(0)\n const [currentY, setCurrentY] = React.useState(0)\n\n const heightClasses = {\n sm: \"h-64\",\n md: \"h-96\",\n lg: \"h-[32rem]\",\n xl: \"h-[40rem]\",\n full: \"h-full\"\n }\n\n React.useEffect(() => {\n if (_isOpen) {\n setIsVisible(true)\n setIsAnimating(true)\n const timer = setTimeout(() => setIsAnimating(false), 50)\n return () => clearTimeout(timer)\n } else {\n setIsAnimating(true)\n const timer = setTimeout(() => {\n setIsVisible(false)\n setIsAnimating(false)\n }, 300)\n return () => clearTimeout(timer)\n }\n }, [_isOpen])\n\n React.useEffect(() => {\n if (!closeOnEscape) return\n\n const handleEscapeKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" && _isOpen) {\n handleClose()\n }\n }\n\n if (_isOpen) {\n document.addEventListener(\"keydown\", handleEscapeKey)\n document.body.style.overflow = \"hidden\"\n }\n\n return () => {\n document.removeEventListener(\"keydown\", handleEscapeKey)\n document.body.style.overflow = \"\"\n }\n }, [_isOpen, closeOnEscape])\n\n const handleTouchStart = (e: React.TouchEvent) => {\n setIsDragging(true)\n setStartY(e.touches[0].clientY)\n setCurrentY(e.touches[0].clientY)\n }\n\n const handleTouchMove = (e: React.TouchEvent) => {\n if (!isDragging) return\n setCurrentY(e.touches[0].clientY)\n }\n\n const handleTouchEnd = () => {\n if (!isDragging) return\n setIsDragging(false)\n\n const deltaY = currentY - startY\n const threshold = 100\n\n if (deltaY > threshold) {\n // 아래로 드래그 - 닫기\n handleClose()\n } else if (deltaY < -threshold) {\n // 위로 드래그 - 다음 스냅 포인트\n const currentIndex = snapPoints.indexOf(currentHeight)\n const nextIndex = Math.min(currentIndex + 1, snapPoints.length - 1)\n setCurrentHeight(snapPoints[nextIndex])\n }\n }\n\n if (!isVisible) return null\n\n return (\n <div className=\"fixed inset-0 z-50\">\n {/* Backdrop */}\n {showBackdrop && (\n <div\n className={merge(\n \"absolute inset-0 bg-black/85 backdrop-blur-md transition-opacity duration-300\",\n isAnimating ? (_isOpen ? \"opacity-100\" : \"opacity-0\") : \"\",\n backdropClassName\n )}\n onClick={closeOnBackdropClick ? handleClose : undefined}\n />\n )}\n\n {/* Bottom Sheet */}\n <div\n ref={ref}\n className={merge(\n \"absolute bottom-0 left-0 right-0 bg-background/95 backdrop-blur-xl border-t border-border/50 shadow-2xl rounded-t-lg transition-transform duration-300 ease-out pb-safe\",\n height !== \"full\" ? heightClasses[height] : \"\",\n isAnimating ? (_isOpen ? \"translate-y-0\" : \"translate-y-full\") : \"\",\n className\n )}\n style={{\n // height prop이 \"full\"일 때만 퍼센트 높이 사용 (스냅 포인트)\n // 그 외에는 heightClasses의 고정 높이 사용\n height: height === \"full\" ? `${currentHeight}%` : undefined,\n maxHeight: height !== \"full\" ? undefined : \"100%\",\n transform: isDragging ? `translateY(${currentY - startY}px)` : undefined\n }}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n {...props}\n >\n {/* Drag Handle */}\n {showDragHandle && (\n <div className=\"flex justify-center pt-3 pb-2\">\n <div className=\"w-12 h-1.5 bg-muted-foreground/30 rounded-full\" />\n </div>\n )}\n\n {children}\n </div>\n </div>\n )\n }\n)\nBottomSheet.displayName = \"BottomSheet\"\n\n/**\n * BottomSheetHeader 컴포넌트의 props / BottomSheetHeader component props\n * @typedef {Object} BottomSheetHeaderProps\n * @property {React.ReactNode} children - 헤더 내용 / Header content\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n * @property {boolean} [showCloseButton=true] - 닫기 버튼 표시 여부 / Show close button\n * @property {() => void} [onClose] - 닫기 버튼 클릭 콜백 / Close button click callback\n */\ninterface BottomSheetHeaderProps {\n children: React.ReactNode\n className?: string\n showCloseButton?: boolean\n onClose?: () => void\n}\n\n/**\n * BottomSheetHeader 컴포넌트 / BottomSheetHeader component\n * BottomSheet의 헤더 영역을 표시합니다.\n * Displays the header area of a BottomSheet.\n * \n * @component\n * @param {BottomSheetHeaderProps} props - BottomSheetHeader 컴포넌트의 props / BottomSheetHeader component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} BottomSheetHeader 컴포넌트 / BottomSheetHeader component\n */\nconst BottomSheetHeader = React.forwardRef<HTMLDivElement, BottomSheetHeaderProps>(\n ({ children, className, showCloseButton = true, onClose, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={merge(\"flex items-center justify-between px-6 py-4\", className)}\n {...props}\n >\n <div className=\"flex-1\">{children}</div>\n {showCloseButton && (\n <button\n onClick={onClose}\n className=\"p-2 rounded-lg hover:bg-muted transition-colors\"\n >\n <Icon name=\"close\" size={20} />\n </button>\n )}\n </div>\n )\n }\n)\nBottomSheetHeader.displayName = \"BottomSheetHeader\"\n\n/**\n * BottomSheetContent 컴포넌트의 props / BottomSheetContent component props\n * @typedef {Object} BottomSheetContentProps\n * @property {React.ReactNode} children - 콘텐츠 / Content\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n */\ninterface BottomSheetContentProps {\n children: React.ReactNode\n className?: string\n}\n\n/**\n * BottomSheetContent 컴포넌트 / BottomSheetContent component\n * BottomSheet의 메인 콘텐츠 영역을 표시합니다.\n * Displays the main content area of a BottomSheet.\n * \n * @component\n * @param {BottomSheetContentProps} props - BottomSheetContent 컴포넌트의 props / BottomSheetContent component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} BottomSheetContent 컴포넌트 / BottomSheetContent component\n */\nconst BottomSheetContent = React.forwardRef<HTMLDivElement, BottomSheetContentProps>(\n ({ children, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={merge(\"flex-1 px-6 pb-6 overflow-y-auto\", className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\nBottomSheetContent.displayName = \"BottomSheetContent\"\n\nexport { BottomSheet, BottomSheetHeader, BottomSheetContent } "]}
1
+ {"version":3,"sources":["../src/components/ConfirmModal.tsx"],"names":["CONTENT_CENTER","ICON_WRAP_BASE","resolveDot","TITLE_STYLE","MESSAGE_WRAP","MESSAGE_STYLE","WARNING_BASE","INPUT_WRAP","INPUT_LABEL_STYLE","INPUT_BASE_STYLE","INPUT_FOCUS_STYLE","BUTTON_ROW","LOADING_WRAP","SPINNER_STYLE","TYPE_CONFIG","ICON_SVG_SIZE","WarningIcon","iconColor","jsx","mergeStyles","InfoIcon","CheckIcon","CrossIcon","ConfirmInput","id","value","placeholder","onChange","isFocused","setIsFocused","useState","inputStyle","useMemo","e","ConfirmButton","onClick","disabled","buttonStyle","children","Button","ConfirmModal","React","isOpen","onClose","onConfirm","title","message","warning","confirmText","cancelText","confirmButtonText","type","loading","showInput","inputValue","onInputChange","inputPlaceholder","inputLabel","requiredInputValue","showCancel","size","dotProp","style","_ref","_a","config","isDisabled","containerStyle","iconWrapStyle","warningStyle","icon","Modal","jsxs"],"mappings":"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","file":"overlay.mjs","sourcesContent":["\"use client\";\n\nimport React, { useState, useMemo } from \"react\";\nimport { mergeStyles, resolveDot } from \"../hooks/useDotMap\";\nimport { Modal } from \"./Modal\";\nimport { Button } from \"./Button\";\n\n/**\n * ConfirmModal 컴포넌트의 props / ConfirmModal component props\n * @typedef {Object} ConfirmModalProps\n * @property {boolean} isOpen - 모달 열림/닫힘 상태 / Modal open/close state\n * @property {() => void} onClose - 닫기 콜백 / Close callback\n * @property {() => void} onConfirm - 확인 콜백 / Confirm callback\n * @property {string} title - 모달 제목 / Modal title\n * @property {string} message - 모달 메시지 / Modal message\n * @property {string} [warning] - 경고 메시지 / Warning message\n * @property {string} [confirmText=\"확인\"] - 확인 버튼 텍스트 / Confirm button text\n * @property {string} [cancelText=\"취소\"] - 취소 버튼 텍스트 / Cancel button text\n * @property {string} [confirmButtonText] - 확인 버튼 커스텀 텍스트 / Custom confirm button text\n * @property {\"danger\" | \"warning\" | \"info\" | \"success\" | \"error\"} [type=\"danger\"] - 모달 타입 / Modal type\n * @property {boolean} [loading=false] - 로딩 상태 / Loading state\n * @property {boolean} [disabled=false] - 비활성화 여부 / Disabled state\n * @property {boolean} [showInput=false] - 입력 필드 표시 여부 / Show input field\n * @property {string} [inputValue=\"\"] - 입력 필드 값 / Input field value\n * @property {(value: string) => void} [onInputChange] - 입력 값 변경 콜백 / Input value change callback\n * @property {string} [inputPlaceholder] - 입력 필드 플레이스홀더 / Input field placeholder\n * @property {string} [inputLabel] - 입력 필드 라벨 / Input field label\n * @property {string} [requiredInputValue] - 필수 입력 값 (확인 버튼 활성화 조건) / Required input value (confirm button activation condition)\n * @property {boolean} [showCancel=true] - 취소 버튼 표시 여부 / Show cancel button\n * @property {\"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"} [size=\"md\"] - 모달 크기 / Modal size\n * @property {string} [dot] - dot 유틸리티 스트링 (인라인 스타일로 변환) / dot utility string\n * @property {React.CSSProperties} [style] - 추가 인라인 스타일 / Additional inline styles\n */\nexport interface ConfirmModalProps {\n isOpen: boolean;\n onClose: () => void;\n onConfirm: () => void;\n title: string;\n message: string;\n warning?: string;\n confirmText?: string;\n cancelText?: string;\n confirmButtonText?: string;\n type?: \"danger\" | \"warning\" | \"info\" | \"success\" | \"error\";\n loading?: boolean;\n disabled?: boolean;\n showInput?: boolean;\n inputValue?: string;\n onInputChange?: (value: string) => void;\n inputPlaceholder?: string;\n inputLabel?: string;\n requiredInputValue?: string;\n showCancel?: boolean;\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n dot?: string;\n style?: React.CSSProperties;\n}\n\n// ──────────────────────────────────────────────\n// Static style constants\n// ──────────────────────────────────────────────\n\nconst CONTENT_CENTER: React.CSSProperties = {\n textAlign: \"center\",\n};\n\nconst ICON_WRAP_BASE: React.CSSProperties = {\n marginLeft: \"auto\",\n marginRight: \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"64px\",\n width: \"64px\",\n borderRadius: \"9999px\",\n ...resolveDot(\"mb-6\"),\n};\n\nconst TITLE_STYLE: React.CSSProperties = {\n fontSize: \"1.25rem\",\n fontWeight: 600,\n color: \"var(--color-foreground)\",\n margin: 0,\n ...resolveDot(\"mb-4\"),\n};\n\nconst MESSAGE_WRAP: React.CSSProperties = {\n ...resolveDot(\"mb-6\"),\n};\n\nconst MESSAGE_STYLE: React.CSSProperties = {\n fontSize: \"0.875rem\",\n color: \"var(--color-muted-foreground)\",\n margin: 0,\n};\n\nconst WARNING_BASE: React.CSSProperties = {\n fontSize: \"0.875rem\",\n fontWeight: 500,\n margin: 0,\n ...resolveDot(\"mt-3\"),\n};\n\nconst INPUT_WRAP: React.CSSProperties = {\n ...resolveDot(\"mb-6\"),\n};\n\nconst INPUT_LABEL_STYLE: React.CSSProperties = {\n display: \"block\",\n fontSize: \"0.875rem\",\n fontWeight: 500,\n color: \"var(--color-foreground)\",\n ...resolveDot(\"mb-3\"),\n textAlign: \"left\",\n};\n\nconst INPUT_BASE_STYLE: React.CSSProperties = {\n width: \"100%\",\n ...resolveDot(\"px-4 py-3\"),\n border: \"1px solid var(--color-input)\",\n borderRadius: \"8px\",\n outline: \"none\",\n backgroundColor: \"var(--color-background)\",\n color: \"var(--color-foreground)\",\n transition: \"border-color 200ms, box-shadow 200ms\",\n boxSizing: \"border-box\",\n};\n\nconst INPUT_FOCUS_STYLE: React.CSSProperties = {\n borderColor: \"transparent\",\n boxShadow: \"0 0 0 1px var(--color-destructive)\",\n};\n\nconst BUTTON_ROW: React.CSSProperties = {\n display: \"flex\",\n ...resolveDot(\"gap-3\"),\n justifyContent: \"center\",\n};\n\nconst LOADING_WRAP: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n};\n\nconst SPINNER_STYLE: React.CSSProperties = {\n animation: \"spin 1s linear infinite\",\n marginLeft: \"-4px\",\n ...resolveDot(\"mr-2 w-4 h-4\"),\n color: \"white\",\n};\n\n// ──────────────────────────────────────────────\n// Variant-specific color tokens\n// ──────────────────────────────────────────────\n\ntype TypeConfig = {\n iconBg: React.CSSProperties;\n iconColor: React.CSSProperties;\n warningColor: React.CSSProperties;\n buttonStyle: React.CSSProperties;\n};\n\nconst TYPE_CONFIG: Record<string, TypeConfig> = {\n danger: {\n iconBg: {\n backgroundColor:\n \"color-mix(in srgb, var(--color-destructive) 10%, transparent)\",\n },\n iconColor: { color: \"var(--color-destructive)\" },\n warningColor: { color: \"var(--color-destructive)\" },\n buttonStyle: {\n backgroundColor: \"var(--color-destructive)\",\n color: \"var(--color-destructive-foreground)\",\n },\n },\n warning: {\n iconBg: { backgroundColor: \"color-mix(in srgb, #ca8a04 10%, transparent)\" },\n iconColor: { color: \"#ca8a04\" },\n warningColor: { color: \"#ca8a04\" },\n buttonStyle: { backgroundColor: \"#ca8a04\", color: \"#ffffff\" },\n },\n info: {\n iconBg: {\n backgroundColor:\n \"color-mix(in srgb, var(--color-primary) 10%, transparent)\",\n },\n iconColor: { color: \"var(--color-primary)\" },\n warningColor: { color: \"var(--color-primary)\" },\n buttonStyle: {\n backgroundColor: \"var(--color-primary)\",\n color: \"var(--color-primary-foreground)\",\n },\n },\n success: {\n iconBg: { backgroundColor: \"color-mix(in srgb, #16a34a 10%, transparent)\" },\n iconColor: { color: \"#16a34a\" },\n warningColor: { color: \"#16a34a\" },\n buttonStyle: { backgroundColor: \"#16a34a\", color: \"#ffffff\" },\n },\n error: {\n iconBg: {\n backgroundColor:\n \"color-mix(in srgb, var(--color-destructive) 10%, transparent)\",\n },\n iconColor: { color: \"var(--color-destructive)\" },\n warningColor: { color: \"var(--color-destructive)\" },\n buttonStyle: {\n backgroundColor: \"var(--color-destructive)\",\n color: \"var(--color-destructive-foreground)\",\n },\n },\n};\n\n// ──────────────────────────────────────────────\n// SVG icons as inline-styled elements\n// ──────────────────────────────────────────────\n\nconst ICON_SVG_SIZE: React.CSSProperties = { height: \"24px\", width: \"24px\" };\n\nfunction WarningIcon({ iconColor }: { iconColor: React.CSSProperties }) {\n return (\n <svg\n style={mergeStyles(ICON_SVG_SIZE, iconColor)}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z\"\n />\n </svg>\n );\n}\n\nfunction InfoIcon({ iconColor }: { iconColor: React.CSSProperties }) {\n return (\n <svg\n style={mergeStyles(ICON_SVG_SIZE, iconColor)}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n );\n}\n\nfunction CheckIcon({ iconColor }: { iconColor: React.CSSProperties }) {\n return (\n <svg\n style={mergeStyles(ICON_SVG_SIZE, iconColor)}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M5 13l4 4L19 7\"\n />\n </svg>\n );\n}\n\nfunction CrossIcon({ iconColor }: { iconColor: React.CSSProperties }) {\n return (\n <svg\n style={mergeStyles(ICON_SVG_SIZE, iconColor)}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n );\n}\n\n// ──────────────────────────────────────────────\n// Input field with focus state\n// ──────────────────────────────────────────────\n\nfunction ConfirmInput({\n id,\n value,\n placeholder,\n onChange,\n}: {\n id: string;\n value: string;\n placeholder?: string;\n onChange: (value: string) => void;\n}) {\n const [isFocused, setIsFocused] = useState(false);\n\n const inputStyle = useMemo(\n () =>\n mergeStyles(INPUT_BASE_STYLE, isFocused ? INPUT_FOCUS_STYLE : undefined),\n [isFocused],\n );\n\n return (\n <input\n type=\"text\"\n id={id}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={placeholder}\n style={inputStyle}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n />\n );\n}\n\n// ──────────────────────────────────────────────\n// ConfirmButton — variant-colored confirm button\n// ──────────────────────────────────────────────\n\nfunction ConfirmButton({\n onClick,\n disabled,\n buttonStyle,\n children,\n}: {\n onClick: () => void;\n disabled: boolean;\n buttonStyle: React.CSSProperties;\n children: React.ReactNode;\n}) {\n return (\n <Button\n variant=\"default\"\n onClick={onClick}\n disabled={disabled}\n style={buttonStyle}\n >\n {children}\n </Button>\n );\n}\n\n// ──────────────────────────────────────────────\n// Main component\n// ──────────────────────────────────────────────\n\n/**\n * ConfirmModal 컴포넌트 / ConfirmModal component\n *\n * 확인/취소가 필요한 모달 컴포넌트입니다.\n * 다양한 타입(danger, warning, info, success, error)을 지원하며,\n * 입력 필드와 필수 입력 값 검증을 지원합니다.\n *\n * Modal component that requires confirmation/cancellation.\n * Supports various types (danger, warning, info, success, error),\n * and supports input fields and required input value validation.\n *\n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <ConfirmModal\n * isOpen={isOpen}\n * onClose={() => setIsOpen(false)}\n * onConfirm={handleConfirm}\n * title=\"삭제 확인\"\n * message=\"정말 삭제하시겠습니까?\"\n * />\n *\n * @example\n * // 입력 필드와 함께 / With input field\n * <ConfirmModal\n * isOpen={isOpen}\n * onClose={() => setIsOpen(false)}\n * onConfirm={handleDelete}\n * title=\"삭제 확인\"\n * message=\"삭제하려면 'DELETE'를 입력하세요\"\n * showInput\n * inputLabel=\"확인 입력\"\n * requiredInputValue=\"DELETE\"\n * inputValue={inputValue}\n * onInputChange={setInputValue}\n * />\n *\n * @param {ConfirmModalProps} props - ConfirmModal 컴포넌트의 props / ConfirmModal component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} ConfirmModal 컴포넌트 / ConfirmModal component\n */\nconst ConfirmModal = React.forwardRef<HTMLDivElement, ConfirmModalProps>(\n (\n {\n isOpen,\n onClose,\n onConfirm,\n title,\n message,\n warning,\n confirmText = \"확인\",\n cancelText = \"취소\",\n confirmButtonText,\n type = \"danger\",\n loading = false,\n disabled = false,\n showInput = false,\n inputValue = \"\",\n onInputChange,\n inputPlaceholder,\n inputLabel,\n requiredInputValue,\n showCancel = true,\n size = \"md\",\n dot: dotProp,\n style,\n },\n _ref,\n ) => {\n const config = TYPE_CONFIG[type] ?? TYPE_CONFIG.danger;\n const isInputValid =\n !showInput || !requiredInputValue || inputValue === requiredInputValue;\n const isDisabled = disabled || loading || !isInputValid;\n\n const containerStyle = useMemo(\n () => mergeStyles(CONTENT_CENTER, resolveDot(dotProp), style),\n [dotProp, style],\n );\n\n const iconWrapStyle = useMemo(\n () => mergeStyles(ICON_WRAP_BASE, config.iconBg),\n [config.iconBg],\n );\n\n const warningStyle = useMemo(\n () => mergeStyles(WARNING_BASE, config.warningColor),\n [config.warningColor],\n );\n\n // Render the type-appropriate icon\n const icon = (() => {\n switch (type) {\n case \"warning\":\n return <WarningIcon iconColor={config.iconColor} />;\n case \"info\":\n return <InfoIcon iconColor={config.iconColor} />;\n case \"success\":\n return <CheckIcon iconColor={config.iconColor} />;\n case \"error\":\n return <CrossIcon iconColor={config.iconColor} />;\n case \"danger\":\n default:\n return <WarningIcon iconColor={config.iconColor} />;\n }\n })();\n\n return (\n <Modal isOpen={isOpen} onClose={onClose} closable={false} size={size}>\n <div style={containerStyle}>\n {/* Icon */}\n <div style={iconWrapStyle}>{icon}</div>\n\n {/* Title */}\n <h3 style={TITLE_STYLE}>{title}</h3>\n\n {/* Message */}\n <div style={MESSAGE_WRAP}>\n <p style={MESSAGE_STYLE}>{message}</p>\n\n {/* Warning message */}\n {warning && <p style={warningStyle}>{warning}</p>}\n </div>\n\n {/* Input field */}\n {showInput && (\n <div style={INPUT_WRAP}>\n <label htmlFor=\"confirmInput\" style={INPUT_LABEL_STYLE}>\n {inputLabel}\n </label>\n <ConfirmInput\n id=\"confirmInput\"\n value={inputValue}\n placeholder={inputPlaceholder}\n onChange={onInputChange ?? (() => {})}\n />\n </div>\n )}\n\n {/* Buttons */}\n <div style={BUTTON_ROW}>\n {showCancel && (\n <Button\n variant=\"outline\"\n onClick={onClose}\n disabled={loading}\n style={resolveDot(\"px-6 py-3\")}\n >\n {cancelText}\n </Button>\n )}\n <ConfirmButton\n onClick={onConfirm}\n disabled={isDisabled}\n buttonStyle={mergeStyles(\n resolveDot(\"px-6 py-3\"),\n config.buttonStyle,\n )}\n >\n {loading ? (\n <div style={LOADING_WRAP}>\n <svg\n style={SPINNER_STYLE}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n style={{ opacity: 0.25 }}\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n style={{ opacity: 0.75 }}\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n 처리 중...\n </div>\n ) : (\n confirmButtonText || confirmText\n )}\n </ConfirmButton>\n </div>\n </div>\n </Modal>\n );\n },\n);\nConfirmModal.displayName = \"ConfirmModal\";\n\nexport { ConfirmModal };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SDUIRenderer.d.ts","sourceRoot":"","sources":["../../src/sdui/SDUIRenderer.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAGV,iBAAiB,EACjB,WAAW,EAIZ,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,wBAAgB,OAAO,IAAI,WAAW,CAMrC;AA0LD;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,UAAU,EACV,IAAI,EAAE,WAAgB,EACtB,QAAQ,EACR,UAAU,GACX,EAAE,iBAAiB,2CA6EnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,2CActD"}
1
+ {"version":3,"file":"SDUIRenderer.d.ts","sourceRoot":"","sources":["../../src/sdui/SDUIRenderer.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAGV,iBAAiB,EACjB,WAAW,EAIZ,MAAM,SAAS,CAAC;AAejB;;GAEG;AACH,wBAAgB,OAAO,IAAI,WAAW,CAMrC;AAqMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,UAAU,EACV,IAAI,EAAE,WAAgB,EACtB,QAAQ,EACR,UAAU,GACX,EAAE,iBAAiB,2CA+EnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,2CA2BtD"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * SDUI Core — platform-agnostic logic
3
+ *
4
+ * SDUIRenderer에서 추출한 순수 함수 + v2 유틸리티
5
+ */
6
+ import type { SDUICondition, SDUIEachBinding } from "./types";
7
+ /**
8
+ * 데이터 경로로 값 가져오기
9
+ * 예: "user.profile.name" → data.user.profile.name
10
+ */
11
+ export declare function getByPath(obj: Record<string, unknown>, path: string): unknown;
12
+ /**
13
+ * 데이터 경로로 값 설정하기 (immutable)
14
+ */
15
+ export declare function setByPath(obj: Record<string, unknown>, path: string, value: unknown): Record<string, unknown>;
16
+ /**
17
+ * 조건 평가
18
+ */
19
+ export declare function evaluateCondition(condition: SDUICondition, data: Record<string, unknown>): boolean;
20
+ /**
21
+ * Props에서 데이터 바인딩 처리
22
+ * {{ path }} 형식을 실제 데이터로 치환
23
+ */
24
+ export declare function resolveProps(props: Record<string, unknown>, data: Record<string, unknown>): Record<string, unknown>;
25
+ /**
26
+ * 텍스트 내 {{ path }} 바인딩을 데이터로 치환
27
+ */
28
+ export declare function resolveTextBindings(text: string, data: Record<string, unknown>): string;
29
+ /**
30
+ * dot 문자열 내 {{ path }} 바인딩 resolve
31
+ * 예: "bg-{{ emotion.color }}" + {emotion: {color: "cyan-500"}} → "bg-cyan-500"
32
+ */
33
+ export declare function resolveDotString(dot: string, data: Record<string, unknown>): string;
34
+ /**
35
+ * each 반복 결과 항목
36
+ */
37
+ export interface EachIterationItem {
38
+ /** Scoped data (부모 data + item/index 주입) */
39
+ scopedData: Record<string, unknown>;
40
+ /** Stable React key (each.key path → item value, fallback: index) */
41
+ key: string;
42
+ }
43
+ /**
44
+ * each 바인딩을 처리하여 scoped data + key 배열 반환
45
+ *
46
+ * 각 항목은 부모 data를 복사 + item/index 변수 주입
47
+ * each.key가 있으면 item에서 해당 경로의 값을 React key로 사용
48
+ */
49
+ export declare function iterateEach(each: SDUIEachBinding, data: Record<string, unknown>): EachIterationItem[];
50
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/sdui/core.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE9D;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAO7E;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAuBT;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2BzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAER;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,iBAAiB,EAAE,CA2BrB"}
@@ -22,7 +22,9 @@
22
22
  * />
23
23
  * ```
24
24
  */
25
- export type { SDUINode, SDUIPageSchema, SDUICondition, SDUIAction, SDUIEventHandlers, SDUIContext, SDUIRendererProps, SDUIComponentRegistry, } from "./types";
25
+ export type { SDUINode, SDUIPageSchema, SDUICondition, SDUIAction, SDUIEventHandlers, SDUIContext, SDUIRendererProps, SDUIComponentRegistry, SDUIEachBinding, SDUIConstraints, } from "./types";
26
+ export { getByPath, setByPath, evaluateCondition, resolveProps, resolveTextBindings, resolveDotString, iterateEach, } from "./core";
27
+ export type { EachIterationItem } from "./core";
26
28
  export { defaultRegistry, extendRegistry, hasComponent } from "./registry";
27
29
  export { SDUIRenderer, SDUIFromJSON, useSDUI } from "./SDUIRenderer";
28
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,YAAY,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG3E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,YAAY,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,eAAe,GAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,GACZ,MAAM,QAAQ,CAAC;AAChB,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG3E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/sdui/registry.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA6gBrD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,qBAuD7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,qBAAqB,GACtC,qBAAqB,CAKvB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/sdui/registry.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA8wCrD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,qBAmF7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,qBAAqB,GACtC,qBAAqB,CAKvB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,qBAAqB,EAC/B,IAAI,EAAE,MAAM,GACX,OAAO,CAET"}