@hua-labs/ui 2.1.1 → 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 (618) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +91 -43
  3. package/dist/{ComponentLayout-DrZpz0yv.d.mts → ComponentLayout-Clf6C2jV.d.mts} +38 -4
  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 +144 -61
  22. package/dist/advanced-motion.mjs +1 -1
  23. package/dist/advanced.d.mts +70 -37
  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-A5YOVVM5.mjs +3 -0
  35. package/dist/chunk-A5YOVVM5.mjs.map +1 -0
  36. package/dist/chunk-AJOGTUWS.mjs +3 -0
  37. package/dist/chunk-AJOGTUWS.mjs.map +1 -0
  38. package/dist/chunk-AQTSQYH2.mjs +3 -0
  39. package/dist/chunk-AQTSQYH2.mjs.map +1 -0
  40. package/dist/chunk-B2MRZJQA.mjs +3 -0
  41. package/dist/chunk-B2MRZJQA.mjs.map +1 -0
  42. package/dist/chunk-BOX4TONF.mjs +3 -0
  43. package/dist/chunk-BOX4TONF.mjs.map +1 -0
  44. package/dist/chunk-C2DOXNBK.mjs +3 -0
  45. package/dist/chunk-C2DOXNBK.mjs.map +1 -0
  46. package/dist/chunk-CQBMR7VU.mjs +3 -0
  47. package/dist/chunk-CQBMR7VU.mjs.map +1 -0
  48. package/dist/chunk-CYAAAEPJ.mjs +3 -0
  49. package/dist/chunk-CYAAAEPJ.mjs.map +1 -0
  50. package/dist/chunk-D7MTTTQY.mjs +8 -0
  51. package/dist/chunk-D7MTTTQY.mjs.map +1 -0
  52. package/dist/chunk-DABVKUJN.mjs +3 -0
  53. package/dist/chunk-DABVKUJN.mjs.map +1 -0
  54. package/dist/chunk-EAZEI74V.mjs +3 -0
  55. package/dist/chunk-EAZEI74V.mjs.map +1 -0
  56. package/dist/chunk-EK6BLFVQ.mjs +3 -0
  57. package/dist/chunk-EK6BLFVQ.mjs.map +1 -0
  58. package/dist/chunk-FVUAVGP5.mjs +3 -0
  59. package/dist/chunk-FVUAVGP5.mjs.map +1 -0
  60. package/dist/chunk-GAIUZVNC.mjs +3 -0
  61. package/dist/chunk-GAIUZVNC.mjs.map +1 -0
  62. package/dist/chunk-HLBIIF4I.mjs +3 -0
  63. package/dist/chunk-HLBIIF4I.mjs.map +1 -0
  64. package/dist/chunk-I6NCGF6E.mjs +3 -0
  65. package/dist/chunk-I6NCGF6E.mjs.map +1 -0
  66. package/dist/chunk-J46VEBVF.mjs +3 -0
  67. package/dist/chunk-J46VEBVF.mjs.map +1 -0
  68. package/dist/chunk-JNW3CLCA.mjs +3 -0
  69. package/dist/chunk-JNW3CLCA.mjs.map +1 -0
  70. package/dist/chunk-JY3QVUGW.mjs +3 -0
  71. package/dist/chunk-JY3QVUGW.mjs.map +1 -0
  72. package/dist/chunk-KHBZOGUU.mjs +3 -0
  73. package/dist/chunk-KHBZOGUU.mjs.map +1 -0
  74. package/dist/chunk-KPNNAQLI.mjs +3 -0
  75. package/dist/chunk-KPNNAQLI.mjs.map +1 -0
  76. package/dist/chunk-L2LGSILS.mjs +13 -0
  77. package/dist/chunk-L2LGSILS.mjs.map +1 -0
  78. package/dist/chunk-LPHUWTQ2.mjs +3 -0
  79. package/dist/chunk-LPHUWTQ2.mjs.map +1 -0
  80. package/dist/chunk-M4JE7TQL.mjs +3 -0
  81. package/dist/chunk-M4JE7TQL.mjs.map +1 -0
  82. package/dist/chunk-MEDKGNLV.mjs +3 -0
  83. package/dist/chunk-MEDKGNLV.mjs.map +1 -0
  84. package/dist/chunk-MR46CSMC.mjs +3 -0
  85. package/dist/chunk-MR46CSMC.mjs.map +1 -0
  86. package/dist/chunk-NSDWT2JM.mjs +3 -0
  87. package/dist/chunk-NSDWT2JM.mjs.map +1 -0
  88. package/dist/chunk-OBMOTQEU.mjs +3 -0
  89. package/dist/chunk-OBMOTQEU.mjs.map +1 -0
  90. package/dist/chunk-QEMPERUK.mjs +3 -0
  91. package/dist/chunk-QEMPERUK.mjs.map +1 -0
  92. package/dist/chunk-RICRFXFP.mjs +3 -0
  93. package/dist/chunk-RICRFXFP.mjs.map +1 -0
  94. package/dist/chunk-SOK7VBSM.mjs +13 -0
  95. package/dist/chunk-SOK7VBSM.mjs.map +1 -0
  96. package/dist/chunk-SPZ7SZH4.mjs +3 -0
  97. package/dist/chunk-SPZ7SZH4.mjs.map +1 -0
  98. package/dist/chunk-TB3DARQO.mjs +3 -0
  99. package/dist/chunk-TB3DARQO.mjs.map +1 -0
  100. package/dist/chunk-TND4HPKW.mjs +51 -0
  101. package/dist/chunk-TND4HPKW.mjs.map +1 -0
  102. package/dist/chunk-TSAXVD2H.mjs +35 -0
  103. package/dist/chunk-TSAXVD2H.mjs.map +1 -0
  104. package/dist/chunk-UR3TIWBS.mjs +3 -0
  105. package/dist/chunk-UR3TIWBS.mjs.map +1 -0
  106. package/dist/chunk-XU2XBAEW.mjs +3 -0
  107. package/dist/chunk-XU2XBAEW.mjs.map +1 -0
  108. package/dist/chunk-XXHDNZTG.mjs +3 -0
  109. package/dist/chunk-XXHDNZTG.mjs.map +1 -0
  110. package/dist/chunk-YW5DA7Q6.mjs +3 -0
  111. package/dist/chunk-YW5DA7Q6.mjs.map +1 -0
  112. package/dist/chunk-ZTHUGQZL.mjs +3 -0
  113. package/dist/chunk-ZTHUGQZL.mjs.map +1 -0
  114. package/dist/chunk-ZVCGC6EV.mjs +3 -0
  115. package/dist/chunk-ZVCGC6EV.mjs.map +1 -0
  116. package/dist/chunk-ZZ67E3M5.mjs +3 -0
  117. package/dist/chunk-ZZ67E3M5.mjs.map +1 -0
  118. package/dist/{common-YLvZxA_K.d.mts → common-Bej8Okcg.d.mts} +1 -1
  119. package/dist/components/Accordion.d.ts +14 -7
  120. package/dist/components/Accordion.d.ts.map +1 -1
  121. package/dist/components/Action.d.ts.map +1 -1
  122. package/dist/components/ActionToolbar.d.ts +10 -6
  123. package/dist/components/ActionToolbar.d.ts.map +1 -1
  124. package/dist/components/Alert.d.ts +16 -2
  125. package/dist/components/Alert.d.ts.map +1 -1
  126. package/dist/components/Autocomplete.d.ts +6 -4
  127. package/dist/components/Autocomplete.d.ts.map +1 -1
  128. package/dist/components/Avatar.d.ts +20 -7
  129. package/dist/components/Avatar.d.ts.map +1 -1
  130. package/dist/components/Badge.d.ts +27 -9
  131. package/dist/components/Badge.d.ts.map +1 -1
  132. package/dist/components/Bookmark.d.ts +4 -2
  133. package/dist/components/Bookmark.d.ts.map +1 -1
  134. package/dist/components/BottomSheet.d.ts +13 -9
  135. package/dist/components/BottomSheet.d.ts.map +1 -1
  136. package/dist/components/Box.d.ts +9 -0
  137. package/dist/components/Box.d.ts.map +1 -0
  138. package/dist/components/Breadcrumb.d.ts +9 -4
  139. package/dist/components/Breadcrumb.d.ts.map +1 -1
  140. package/dist/components/Button.d.ts +3 -29
  141. package/dist/components/Button.d.ts.map +1 -1
  142. package/dist/components/Button.variants.d.ts +54 -10
  143. package/dist/components/Button.variants.d.ts.map +1 -1
  144. package/dist/components/Card.d.ts +49 -14
  145. package/dist/components/Card.d.ts.map +1 -1
  146. package/dist/components/ChatMessage.d.ts +3 -2
  147. package/dist/components/ChatMessage.d.ts.map +1 -1
  148. package/dist/components/Checkbox.d.ts +5 -2
  149. package/dist/components/Checkbox.d.ts.map +1 -1
  150. package/dist/components/CodeBlock.d.ts +8 -5
  151. package/dist/components/CodeBlock.d.ts.map +1 -1
  152. package/dist/components/ColorPicker.d.ts +4 -2
  153. package/dist/components/ColorPicker.d.ts.map +1 -1
  154. package/dist/components/Command.d.ts +28 -14
  155. package/dist/components/Command.d.ts.map +1 -1
  156. package/dist/components/ComponentLayout.d.ts +5 -2
  157. package/dist/components/ComponentLayout.d.ts.map +1 -1
  158. package/dist/components/ConfirmModal.d.ts +4 -0
  159. package/dist/components/ConfirmModal.d.ts.map +1 -1
  160. package/dist/components/Container.d.ts +18 -5
  161. package/dist/components/Container.d.ts.map +1 -1
  162. package/dist/components/ContextMenu.d.ts +36 -36
  163. package/dist/components/ContextMenu.d.ts.map +1 -1
  164. package/dist/components/DatePicker.d.ts +12 -5
  165. package/dist/components/DatePicker.d.ts.map +1 -1
  166. package/dist/components/Divider.d.ts +2 -1
  167. package/dist/components/Divider.d.ts.map +1 -1
  168. package/dist/components/Drawer.d.ts +17 -12
  169. package/dist/components/Drawer.d.ts.map +1 -1
  170. package/dist/components/Dropdown.d.ts +25 -57
  171. package/dist/components/Dropdown.d.ts.map +1 -1
  172. package/dist/components/EmotionAnalysis.d.ts +3 -1
  173. package/dist/components/EmotionAnalysis.d.ts.map +1 -1
  174. package/dist/components/EmotionButton.d.ts +3 -1
  175. package/dist/components/EmotionButton.d.ts.map +1 -1
  176. package/dist/components/EmotionMeter.d.ts +3 -1
  177. package/dist/components/EmotionMeter.d.ts.map +1 -1
  178. package/dist/components/EmotionSelector.d.ts +3 -1
  179. package/dist/components/EmotionSelector.d.ts.map +1 -1
  180. package/dist/components/FeatureCard.d.ts +9 -3
  181. package/dist/components/FeatureCard.d.ts.map +1 -1
  182. package/dist/components/Form.d.ts +20 -54
  183. package/dist/components/Form.d.ts.map +1 -1
  184. package/dist/components/FormControl.d.ts +3 -2
  185. package/dist/components/FormControl.d.ts.map +1 -1
  186. package/dist/components/Grid.d.ts +11 -4
  187. package/dist/components/Grid.d.ts.map +1 -1
  188. package/dist/components/HeroSection.d.ts +4 -2
  189. package/dist/components/HeroSection.d.ts.map +1 -1
  190. package/dist/components/Icon/Icon.d.ts +12 -8
  191. package/dist/components/Icon/Icon.d.ts.map +1 -1
  192. package/dist/components/IconsaxGallery/index.d.ts +8 -5
  193. package/dist/components/IconsaxGallery/index.d.ts.map +1 -1
  194. package/dist/components/InfoCard.d.ts +5 -2
  195. package/dist/components/InfoCard.d.ts.map +1 -1
  196. package/dist/components/Input.d.ts +29 -4
  197. package/dist/components/Input.d.ts.map +1 -1
  198. package/dist/components/Label.d.ts +15 -10
  199. package/dist/components/Label.d.ts.map +1 -1
  200. package/dist/components/LanguageToggle.d.ts +5 -3
  201. package/dist/components/LanguageToggle.d.ts.map +1 -1
  202. package/dist/components/Link.d.ts +17 -6
  203. package/dist/components/Link.d.ts.map +1 -1
  204. package/dist/components/LoadingSpinner.d.ts +7 -3
  205. package/dist/components/LoadingSpinner.d.ts.map +1 -1
  206. package/dist/components/Menu.d.ts +59 -60
  207. package/dist/components/Menu.d.ts.map +1 -1
  208. package/dist/components/Modal.d.ts +12 -6
  209. package/dist/components/Modal.d.ts.map +1 -1
  210. package/dist/components/Navigation.d.ts +26 -11
  211. package/dist/components/Navigation.d.ts.map +1 -1
  212. package/dist/components/NumberInput.d.ts +5 -2
  213. package/dist/components/NumberInput.d.ts.map +1 -1
  214. package/dist/components/PageNavigation.d.ts +6 -3
  215. package/dist/components/PageNavigation.d.ts.map +1 -1
  216. package/dist/components/PageTransition.d.ts +2 -2
  217. package/dist/components/PageTransition.d.ts.map +1 -1
  218. package/dist/components/Pagination.d.ts +5 -2
  219. package/dist/components/Pagination.d.ts.map +1 -1
  220. package/dist/components/Panel.d.ts +1 -7
  221. package/dist/components/Panel.d.ts.map +1 -1
  222. package/dist/components/Popover.d.ts +25 -9
  223. package/dist/components/Popover.d.ts.map +1 -1
  224. package/dist/components/Pressable.d.ts +14 -0
  225. package/dist/components/Pressable.d.ts.map +1 -0
  226. package/dist/components/Progress.d.ts +36 -13
  227. package/dist/components/Progress.d.ts.map +1 -1
  228. package/dist/components/Prose.d.ts +51 -0
  229. package/dist/components/Prose.d.ts.map +1 -0
  230. package/dist/components/Radio.d.ts +29 -33
  231. package/dist/components/Radio.d.ts.map +1 -1
  232. package/dist/components/ScrollArea.d.ts +8 -9
  233. package/dist/components/ScrollArea.d.ts.map +1 -1
  234. package/dist/components/ScrollIndicator.d.ts +9 -8
  235. package/dist/components/ScrollIndicator.d.ts.map +1 -1
  236. package/dist/components/ScrollProgress.d.ts +3 -2
  237. package/dist/components/ScrollProgress.d.ts.map +1 -1
  238. package/dist/components/ScrollToTop.d.ts +5 -5
  239. package/dist/components/ScrollToTop.d.ts.map +1 -1
  240. package/dist/components/Section.d.ts +12 -9
  241. package/dist/components/Section.d.ts.map +1 -1
  242. package/dist/components/SectionHeader.d.ts +3 -2
  243. package/dist/components/SectionHeader.d.ts.map +1 -1
  244. package/dist/components/Select.d.ts +18 -5
  245. package/dist/components/Select.d.ts.map +1 -1
  246. package/dist/components/Skeleton.d.ts +43 -15
  247. package/dist/components/Skeleton.d.ts.map +1 -1
  248. package/dist/components/Slider.d.ts +7 -5
  249. package/dist/components/Slider.d.ts.map +1 -1
  250. package/dist/components/Stack.d.ts +22 -6
  251. package/dist/components/Stack.d.ts.map +1 -1
  252. package/dist/components/StatsPanel.d.ts +4 -2
  253. package/dist/components/StatsPanel.d.ts.map +1 -1
  254. package/dist/components/Switch.d.ts +9 -4
  255. package/dist/components/Switch.d.ts.map +1 -1
  256. package/dist/components/Table.d.ts +43 -18
  257. package/dist/components/Table.d.ts.map +1 -1
  258. package/dist/components/Tabs.d.ts +50 -77
  259. package/dist/components/Tabs.d.ts.map +1 -1
  260. package/dist/components/Text.d.ts +11 -0
  261. package/dist/components/Text.d.ts.map +1 -0
  262. package/dist/components/Textarea.d.ts +24 -6
  263. package/dist/components/Textarea.d.ts.map +1 -1
  264. package/dist/components/ThemeToggle.d.ts +18 -27
  265. package/dist/components/ThemeToggle.d.ts.map +1 -1
  266. package/dist/components/Timeline.d.ts +4 -2
  267. package/dist/components/Timeline.d.ts.map +1 -1
  268. package/dist/components/Toast.d.ts +1 -1
  269. package/dist/components/Toast.d.ts.map +1 -1
  270. package/dist/components/Toggle.d.ts +11 -2
  271. package/dist/components/Toggle.d.ts.map +1 -1
  272. package/dist/components/Tooltip.d.ts +5 -2
  273. package/dist/components/Tooltip.d.ts.map +1 -1
  274. package/dist/components/Upload.d.ts +5 -3
  275. package/dist/components/Upload.d.ts.map +1 -1
  276. package/dist/components/advanced/AdvancedPageTransition.d.ts +7 -5
  277. package/dist/components/advanced/AdvancedPageTransition.d.ts.map +1 -1
  278. package/dist/components/advanced/AnimatedGradient.d.ts +6 -2
  279. package/dist/components/advanced/AnimatedGradient.d.ts.map +1 -1
  280. package/dist/components/advanced/Carousel.d.ts +3 -1
  281. package/dist/components/advanced/Carousel.d.ts.map +1 -1
  282. package/dist/components/advanced/DotNav.d.ts +12 -5
  283. package/dist/components/advanced/DotNav.d.ts.map +1 -1
  284. package/dist/components/advanced/GlowCard.d.ts +4 -1
  285. package/dist/components/advanced/GlowCard.d.ts.map +1 -1
  286. package/dist/components/advanced/HorizontalScroll.d.ts +4 -1
  287. package/dist/components/advanced/HorizontalScroll.d.ts.map +1 -1
  288. package/dist/components/advanced/ImageReveal.d.ts +23 -1
  289. package/dist/components/advanced/ImageReveal.d.ts.map +1 -1
  290. package/dist/components/advanced/Marquee.d.ts +4 -2
  291. package/dist/components/advanced/Marquee.d.ts.map +1 -1
  292. package/dist/components/advanced/Parallax.d.ts +12 -7
  293. package/dist/components/advanced/Parallax.d.ts.map +1 -1
  294. package/dist/components/advanced/SpotlightCard.d.ts +13 -12
  295. package/dist/components/advanced/SpotlightCard.d.ts.map +1 -1
  296. package/dist/components/advanced/TextReveal.d.ts +5 -1
  297. package/dist/components/advanced/TextReveal.d.ts.map +1 -1
  298. package/dist/components/advanced/TiltCard.d.ts +6 -2
  299. package/dist/components/advanced/TiltCard.d.ts.map +1 -1
  300. package/dist/components/advanced/VideoBackground.d.ts +4 -1
  301. package/dist/components/advanced/VideoBackground.d.ts.map +1 -1
  302. package/dist/components/advanced/blog-editor/BlogEditor.d.ts +4 -2
  303. package/dist/components/advanced/blog-editor/BlogEditor.d.ts.map +1 -1
  304. package/dist/components/advanced/blog-editor/BlogEditorActions.d.ts +4 -2
  305. package/dist/components/advanced/blog-editor/BlogEditorActions.d.ts.map +1 -1
  306. package/dist/components/advanced/blog-editor/BlogEditorContent.d.ts +4 -2
  307. package/dist/components/advanced/blog-editor/BlogEditorContent.d.ts.map +1 -1
  308. package/dist/components/advanced/blog-editor/BlogEditorHeader.d.ts +4 -2
  309. package/dist/components/advanced/blog-editor/BlogEditorHeader.d.ts.map +1 -1
  310. package/dist/components/advanced/blog-editor/BlogEditorLanguageTabs.d.ts +4 -2
  311. package/dist/components/advanced/blog-editor/BlogEditorLanguageTabs.d.ts.map +1 -1
  312. package/dist/components/advanced/blog-editor/BlogEditorMetadata.d.ts +5 -3
  313. package/dist/components/advanced/blog-editor/BlogEditorMetadata.d.ts.map +1 -1
  314. package/dist/components/advanced/blog-editor/BlogEditorPreview.d.ts +5 -3
  315. package/dist/components/advanced/blog-editor/BlogEditorPreview.d.ts.map +1 -1
  316. package/dist/components/advanced/blog-editor/BlogEditorToolbar.d.ts +4 -2
  317. package/dist/components/advanced/blog-editor/BlogEditorToolbar.d.ts.map +1 -1
  318. package/dist/components/advanced/blog-editor/BlogEditorTranslate.d.ts +4 -2
  319. package/dist/components/advanced/blog-editor/BlogEditorTranslate.d.ts.map +1 -1
  320. package/dist/components/advanced/blog-editor/types.d.ts +5 -2
  321. package/dist/components/advanced/blog-editor/types.d.ts.map +1 -1
  322. package/dist/components/advanced/emotion/EmotionAnalysis.d.ts +3 -1
  323. package/dist/components/advanced/emotion/EmotionAnalysis.d.ts.map +1 -1
  324. package/dist/components/advanced/emotion/EmotionButton.d.ts +3 -1
  325. package/dist/components/advanced/emotion/EmotionButton.d.ts.map +1 -1
  326. package/dist/components/advanced/emotion/EmotionMeter.d.ts +4 -2
  327. package/dist/components/advanced/emotion/EmotionMeter.d.ts.map +1 -1
  328. package/dist/components/advanced/emotion/EmotionSelector.d.ts +3 -1
  329. package/dist/components/advanced/emotion/EmotionSelector.d.ts.map +1 -1
  330. package/dist/components/dashboard/ActivityFeed.d.ts +5 -2
  331. package/dist/components/dashboard/ActivityFeed.d.ts.map +1 -1
  332. package/dist/components/dashboard/BarChart.d.ts +3 -2
  333. package/dist/components/dashboard/BarChart.d.ts.map +1 -1
  334. package/dist/components/dashboard/DashboardGrid.d.ts +13 -3
  335. package/dist/components/dashboard/DashboardGrid.d.ts.map +1 -1
  336. package/dist/components/dashboard/DashboardSidebar.d.ts +15 -82
  337. package/dist/components/dashboard/DashboardSidebar.d.ts.map +1 -1
  338. package/dist/components/dashboard/DashboardToolbar.d.ts +3 -2
  339. package/dist/components/dashboard/DashboardToolbar.d.ts.map +1 -1
  340. package/dist/components/dashboard/EmptyState.d.ts +3 -2
  341. package/dist/components/dashboard/EmptyState.d.ts.map +1 -1
  342. package/dist/components/dashboard/MembershipBadge.d.ts +3 -2
  343. package/dist/components/dashboard/MembershipBadge.d.ts.map +1 -1
  344. package/dist/components/dashboard/MerchantList.d.ts +3 -2
  345. package/dist/components/dashboard/MerchantList.d.ts.map +1 -1
  346. package/dist/components/dashboard/MetricCard.d.ts +3 -2
  347. package/dist/components/dashboard/MetricCard.d.ts.map +1 -1
  348. package/dist/components/dashboard/MiniBarChart.d.ts +3 -2
  349. package/dist/components/dashboard/MiniBarChart.d.ts.map +1 -1
  350. package/dist/components/dashboard/NotificationCard.d.ts +5 -2
  351. package/dist/components/dashboard/NotificationCard.d.ts.map +1 -1
  352. package/dist/components/dashboard/ProfileCard.d.ts +5 -2
  353. package/dist/components/dashboard/ProfileCard.d.ts.map +1 -1
  354. package/dist/components/dashboard/ProgressCard.d.ts +6 -3
  355. package/dist/components/dashboard/ProgressCard.d.ts.map +1 -1
  356. package/dist/components/dashboard/QuickActionCard.d.ts +22 -27
  357. package/dist/components/dashboard/QuickActionCard.d.ts.map +1 -1
  358. package/dist/components/dashboard/RoutingBreakdownCard.d.ts +3 -2
  359. package/dist/components/dashboard/RoutingBreakdownCard.d.ts.map +1 -1
  360. package/dist/components/dashboard/SettlementTimeline.d.ts +3 -2
  361. package/dist/components/dashboard/SettlementTimeline.d.ts.map +1 -1
  362. package/dist/components/dashboard/StatCard.d.ts +7 -4
  363. package/dist/components/dashboard/StatCard.d.ts.map +1 -1
  364. package/dist/components/dashboard/SummaryCard.d.ts +6 -3
  365. package/dist/components/dashboard/SummaryCard.d.ts.map +1 -1
  366. package/dist/components/dashboard/TransactionDetailDrawer.d.ts +2 -2
  367. package/dist/components/dashboard/TransactionDetailDrawer.d.ts.map +1 -1
  368. package/dist/components/dashboard/TransactionsTable.d.ts +3 -2
  369. package/dist/components/dashboard/TransactionsTable.d.ts.map +1 -1
  370. package/dist/components/dashboard/TrendChart.d.ts +3 -2
  371. package/dist/components/dashboard/TrendChart.d.ts.map +1 -1
  372. package/dist/components/dashboard/YearlyHeatmap.d.ts +4 -2
  373. package/dist/components/dashboard/YearlyHeatmap.d.ts.map +1 -1
  374. package/dist/components/dashboard/kanban/KanbanAddCard.d.ts.map +1 -1
  375. package/dist/components/dashboard/kanban/KanbanAddColumn.d.ts.map +1 -1
  376. package/dist/components/dashboard/kanban/KanbanBoard.d.ts.map +1 -1
  377. package/dist/components/dashboard/kanban/KanbanCard.d.ts.map +1 -1
  378. package/dist/components/dashboard/kanban/KanbanColumn.d.ts.map +1 -1
  379. package/dist/components/dashboard/kanban/KanbanColumnHeader.d.ts.map +1 -1
  380. package/dist/components/dashboard/kanban/KanbanDropIndicator.d.ts.map +1 -1
  381. package/dist/components/dashboard/kanban/index.d.ts +1 -1
  382. package/dist/components/dashboard/kanban/types.d.ts +24 -12
  383. package/dist/components/dashboard/kanban/types.d.ts.map +1 -1
  384. package/dist/components/scrollbar/scrollbar.d.ts +2 -1
  385. package/dist/components/scrollbar/scrollbar.d.ts.map +1 -1
  386. package/dist/context/MotionConfigContext.d.ts +41 -0
  387. package/dist/context/MotionConfigContext.d.ts.map +1 -0
  388. package/dist/data.d.mts +55 -23
  389. package/dist/data.d.ts +45 -3
  390. package/dist/data.d.ts.map +1 -1
  391. package/dist/data.mjs +2 -2
  392. package/dist/data.mjs.map +1 -1
  393. package/dist/feedback.d.mts +6 -293
  394. package/dist/feedback.d.ts +7 -5
  395. package/dist/feedback.d.ts.map +1 -1
  396. package/dist/feedback.mjs +1 -1
  397. package/dist/form.d.mts +99 -114
  398. package/dist/form.mjs +9 -4
  399. package/dist/form.mjs.map +1 -1
  400. package/dist/hooks/index.d.ts +6 -0
  401. package/dist/hooks/index.d.ts.map +1 -1
  402. package/dist/hooks/useAnimatedEntrance.d.ts +24 -0
  403. package/dist/hooks/useAnimatedEntrance.d.ts.map +1 -0
  404. package/dist/hooks/useBreakpoint.d.ts +22 -0
  405. package/dist/hooks/useBreakpoint.d.ts.map +1 -0
  406. package/dist/hooks/useDotEnv.d.ts +12 -0
  407. package/dist/hooks/useDotEnv.d.ts.map +1 -0
  408. package/dist/hooks/useDotMap.d.ts +38 -0
  409. package/dist/hooks/useDotMap.d.ts.map +1 -0
  410. package/dist/{icons-DmhQEH_E.d.mts → icons-DcOBy9Hf.d.mts} +4 -0
  411. package/dist/iconsax-extended.mjs +2 -2
  412. package/dist/iconsax-extended.mjs.map +1 -1
  413. package/dist/iconsax.mjs +2 -2
  414. package/dist/iconsax.mjs.map +1 -1
  415. package/dist/index.d.mts +360 -210
  416. package/dist/index.d.ts +74 -64
  417. package/dist/index.d.ts.map +1 -1
  418. package/dist/index.mjs +15 -15
  419. package/dist/index.mjs.map +1 -1
  420. package/dist/interactive/kanban.d.ts +12 -0
  421. package/dist/interactive/kanban.d.ts.map +1 -0
  422. package/dist/interactive-kanban.d.mts +378 -0
  423. package/dist/interactive-kanban.mjs +3 -0
  424. package/dist/interactive-kanban.mjs.map +1 -0
  425. package/dist/interactive.d.mts +193 -197
  426. package/dist/interactive.d.ts +7 -5
  427. package/dist/interactive.d.ts.map +1 -1
  428. package/dist/interactive.mjs +1 -1
  429. package/dist/interactive.mjs.map +1 -1
  430. package/dist/landing/LandingAbout.d.ts +2 -2
  431. package/dist/landing/LandingAbout.d.ts.map +1 -1
  432. package/dist/landing/LandingCTA.d.ts +2 -2
  433. package/dist/landing/LandingCTA.d.ts.map +1 -1
  434. package/dist/landing/LandingContact.d.ts +2 -2
  435. package/dist/landing/LandingContact.d.ts.map +1 -1
  436. package/dist/landing/LandingExperience.d.ts +1 -1
  437. package/dist/landing/LandingExperience.d.ts.map +1 -1
  438. package/dist/landing/LandingFeatures.d.ts +1 -1
  439. package/dist/landing/LandingFeatures.d.ts.map +1 -1
  440. package/dist/landing/LandingHero.d.ts +2 -2
  441. package/dist/landing/LandingHero.d.ts.map +1 -1
  442. package/dist/landing/LandingLogoCloud.d.ts +2 -2
  443. package/dist/landing/LandingLogoCloud.d.ts.map +1 -1
  444. package/dist/landing/LandingMetrics.d.ts +1 -1
  445. package/dist/landing/LandingMetrics.d.ts.map +1 -1
  446. package/dist/landing/LandingProjects.d.ts +1 -1
  447. package/dist/landing/LandingProjects.d.ts.map +1 -1
  448. package/dist/landing/LandingShowcase.d.ts +2 -2
  449. package/dist/landing/LandingShowcase.d.ts.map +1 -1
  450. package/dist/landing/LandingSkills.d.ts +1 -1
  451. package/dist/landing/LandingSkills.d.ts.map +1 -1
  452. package/dist/landing/LandingStats.d.ts +1 -1
  453. package/dist/landing/LandingStats.d.ts.map +1 -1
  454. package/dist/landing/LandingTestimonials.d.ts +1 -1
  455. package/dist/landing/LandingTestimonials.d.ts.map +1 -1
  456. package/dist/landing/types.d.ts +42 -30
  457. package/dist/landing/types.d.ts.map +1 -1
  458. package/dist/landing.d.mts +47 -37
  459. package/dist/landing.mjs +4 -20
  460. package/dist/landing.mjs.map +1 -1
  461. package/dist/lib/Slot.d.ts.map +1 -1
  462. package/dist/lib/icon-providers.d.ts +25 -27
  463. package/dist/lib/icon-providers.d.ts.map +1 -1
  464. package/dist/lib/icons.d.ts +4 -0
  465. package/dist/lib/icons.d.ts.map +1 -1
  466. package/dist/lib/styles/animation.d.ts +35 -0
  467. package/dist/lib/styles/animation.d.ts.map +1 -0
  468. package/dist/lib/styles/disabled.d.ts +15 -0
  469. package/dist/lib/styles/disabled.d.ts.map +1 -0
  470. package/dist/lib/styles/focus.d.ts +34 -0
  471. package/dist/lib/styles/focus.d.ts.map +1 -0
  472. package/dist/lib/styles/glass.d.ts +18 -0
  473. package/dist/lib/styles/glass.d.ts.map +1 -0
  474. package/dist/lib/styles/hover.d.ts +9 -0
  475. package/dist/lib/styles/hover.d.ts.map +1 -0
  476. package/dist/lib/styles/index.d.ts +6 -0
  477. package/dist/lib/styles/index.d.ts.map +1 -1
  478. package/dist/lib/styles/transition.d.ts +42 -0
  479. package/dist/lib/styles/transition.d.ts.map +1 -0
  480. package/dist/lib/types/common.d.ts +3 -3
  481. package/dist/lib/types/common.d.ts.map +1 -1
  482. package/dist/lib/utils.d.ts.map +1 -1
  483. package/dist/native/Box.d.ts +11 -0
  484. package/dist/native/Box.d.ts.map +1 -0
  485. package/dist/native/Pressable.d.ts +10 -0
  486. package/dist/native/Pressable.d.ts.map +1 -0
  487. package/dist/native/Text.d.ts +11 -0
  488. package/dist/native/Text.d.ts.map +1 -0
  489. package/dist/native/index.d.ts +9 -0
  490. package/dist/native/index.d.ts.map +1 -0
  491. package/dist/native/useDotMap.d.ts +51 -0
  492. package/dist/native/useDotMap.d.ts.map +1 -0
  493. package/dist/native.mjs +2 -0
  494. package/dist/native.mjs.map +1 -0
  495. package/dist/navigation.d.mts +49 -22
  496. package/dist/navigation.d.ts +10 -8
  497. package/dist/navigation.d.ts.map +1 -1
  498. package/dist/navigation.mjs +1 -1
  499. package/dist/navigation.mjs.map +1 -1
  500. package/dist/overlay.d.mts +84 -87
  501. package/dist/overlay.mjs +2 -2
  502. package/dist/overlay.mjs.map +1 -1
  503. package/dist/sdui/SDUIRenderer.d.ts.map +1 -1
  504. package/dist/sdui/core.d.ts +50 -0
  505. package/dist/sdui/core.d.ts.map +1 -0
  506. package/dist/sdui/index.d.ts +3 -1
  507. package/dist/sdui/index.d.ts.map +1 -1
  508. package/dist/sdui/registry.d.ts.map +1 -1
  509. package/dist/sdui/types.d.ts +38 -0
  510. package/dist/sdui/types.d.ts.map +1 -1
  511. package/dist/sdui.d.mts +89 -1
  512. package/dist/sdui.mjs +2 -2
  513. package/dist/sdui.mjs.map +1 -1
  514. package/dist/theme.d.mts +85 -0
  515. package/dist/theme.d.ts +14 -0
  516. package/dist/theme.d.ts.map +1 -0
  517. package/dist/theme.mjs +3 -0
  518. package/dist/theme.mjs.map +1 -0
  519. package/package.json +50 -22
  520. package/src/styles/component-vars.css +503 -69
  521. package/src/styles/landing.css +12 -12
  522. package/src/styles/prose.css +284 -0
  523. package/src/styles/recommended-theme.css +123 -141
  524. package/src/styles/utilities.css +3 -3
  525. package/dist/advanced-dashboard.js +0 -39
  526. package/dist/advanced-dashboard.js.map +0 -1
  527. package/dist/advanced-emotion.js +0 -2
  528. package/dist/advanced-emotion.js.map +0 -1
  529. package/dist/advanced-motion.js +0 -82
  530. package/dist/advanced-motion.js.map +0 -1
  531. package/dist/advanced.js +0 -112
  532. package/dist/advanced.js.map +0 -1
  533. package/dist/chunk-3CCF7U3P.mjs +0 -3
  534. package/dist/chunk-3CCF7U3P.mjs.map +0 -1
  535. package/dist/chunk-3GAUTZXQ.mjs +0 -3
  536. package/dist/chunk-3GAUTZXQ.mjs.map +0 -1
  537. package/dist/chunk-42RGFEL2.mjs +0 -3
  538. package/dist/chunk-42RGFEL2.mjs.map +0 -1
  539. package/dist/chunk-4NJE7D6X.mjs +0 -3
  540. package/dist/chunk-4NJE7D6X.mjs.map +0 -1
  541. package/dist/chunk-6HVJFEDA.mjs +0 -3
  542. package/dist/chunk-6HVJFEDA.mjs.map +0 -1
  543. package/dist/chunk-7OYT3QSY.mjs +0 -3
  544. package/dist/chunk-7OYT3QSY.mjs.map +0 -1
  545. package/dist/chunk-ANYZ56VB.mjs +0 -3
  546. package/dist/chunk-ANYZ56VB.mjs.map +0 -1
  547. package/dist/chunk-AOSXB5JJ.mjs +0 -4
  548. package/dist/chunk-AOSXB5JJ.mjs.map +0 -1
  549. package/dist/chunk-B544MRF7.mjs +0 -3
  550. package/dist/chunk-B544MRF7.mjs.map +0 -1
  551. package/dist/chunk-CVWWS25A.mjs +0 -3
  552. package/dist/chunk-CVWWS25A.mjs.map +0 -1
  553. package/dist/chunk-DYNBM24D.mjs +0 -3
  554. package/dist/chunk-DYNBM24D.mjs.map +0 -1
  555. package/dist/chunk-FX57OSYG.mjs +0 -3
  556. package/dist/chunk-FX57OSYG.mjs.map +0 -1
  557. package/dist/chunk-IJSYSNM5.mjs +0 -3
  558. package/dist/chunk-IJSYSNM5.mjs.map +0 -1
  559. package/dist/chunk-KJZGOL2Z.mjs +0 -3
  560. package/dist/chunk-KJZGOL2Z.mjs.map +0 -1
  561. package/dist/chunk-KYRIUUQP.mjs +0 -3
  562. package/dist/chunk-KYRIUUQP.mjs.map +0 -1
  563. package/dist/chunk-LSA7DU3N.mjs +0 -73
  564. package/dist/chunk-LSA7DU3N.mjs.map +0 -1
  565. package/dist/chunk-MDLCJASB.mjs +0 -3
  566. package/dist/chunk-MDLCJASB.mjs.map +0 -1
  567. package/dist/chunk-N56BUOCD.mjs +0 -3
  568. package/dist/chunk-N56BUOCD.mjs.map +0 -1
  569. package/dist/chunk-OFYITQXI.mjs +0 -13
  570. package/dist/chunk-OFYITQXI.mjs.map +0 -1
  571. package/dist/chunk-OZNST3EZ.mjs +0 -3
  572. package/dist/chunk-OZNST3EZ.mjs.map +0 -1
  573. package/dist/chunk-RS6RKW5U.mjs +0 -13
  574. package/dist/chunk-RS6RKW5U.mjs.map +0 -1
  575. package/dist/chunk-TXBZZJNR.mjs +0 -3
  576. package/dist/chunk-TXBZZJNR.mjs.map +0 -1
  577. package/dist/chunk-TZ4YSHMC.mjs +0 -3
  578. package/dist/chunk-TZ4YSHMC.mjs.map +0 -1
  579. package/dist/chunk-U6CTBZ2U.mjs +0 -3
  580. package/dist/chunk-U6CTBZ2U.mjs.map +0 -1
  581. package/dist/chunk-WP7VFE77.mjs +0 -3
  582. package/dist/chunk-WP7VFE77.mjs.map +0 -1
  583. package/dist/chunk-XCZMLKPK.mjs +0 -3
  584. package/dist/chunk-XCZMLKPK.mjs.map +0 -1
  585. package/dist/chunk-XGHT7WMO.mjs +0 -3
  586. package/dist/chunk-XGHT7WMO.mjs.map +0 -1
  587. package/dist/chunk-XL4KTJ4L.mjs +0 -3
  588. package/dist/chunk-XL4KTJ4L.mjs.map +0 -1
  589. package/dist/chunk-Z74YUUVT.mjs +0 -3
  590. package/dist/chunk-Z74YUUVT.mjs.map +0 -1
  591. package/dist/chunk-ZXZIHU7J.mjs +0 -8
  592. package/dist/chunk-ZXZIHU7J.mjs.map +0 -1
  593. package/dist/components/EmptyState.d.ts +0 -62
  594. package/dist/components/EmptyState.d.ts.map +0 -1
  595. package/dist/data.js +0 -3
  596. package/dist/data.js.map +0 -1
  597. package/dist/feedback.js +0 -12
  598. package/dist/feedback.js.map +0 -1
  599. package/dist/form.js +0 -8
  600. package/dist/form.js.map +0 -1
  601. package/dist/iconsax-extended.js +0 -3
  602. package/dist/iconsax-extended.js.map +0 -1
  603. package/dist/iconsax.js +0 -3
  604. package/dist/iconsax.js.map +0 -1
  605. package/dist/index.js +0 -51
  606. package/dist/index.js.map +0 -1
  607. package/dist/interactive.js +0 -2
  608. package/dist/interactive.js.map +0 -1
  609. package/dist/landing.js +0 -100
  610. package/dist/landing.js.map +0 -1
  611. package/dist/lib/phosphor-icons.d.ts +0 -6
  612. package/dist/lib/phosphor-icons.d.ts.map +0 -1
  613. package/dist/navigation.js +0 -12
  614. package/dist/navigation.js.map +0 -1
  615. package/dist/overlay.js +0 -3
  616. package/dist/overlay.js.map +0 -1
  617. package/dist/sdui.js +0 -9
  618. package/dist/sdui.js.map +0 -1
@@ -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"}
@@ -19,6 +19,42 @@ export interface SDUINode {
19
19
  when?: SDUICondition;
20
20
  /** 이벤트 핸들러 */
21
21
  on?: SDUIEventHandlers;
22
+ /** Cross-platform styling via dot engine */
23
+ dot?: string;
24
+ /** Array iteration: render children per item */
25
+ each?: SDUIEachBinding;
26
+ /** Accessibility constraints */
27
+ constraints?: SDUIConstraints;
28
+ }
29
+ /**
30
+ * 배열 반복 바인딩
31
+ */
32
+ export interface SDUIEachBinding {
33
+ /** Data path to array (예: "emotions", "report.entries") */
34
+ of: string;
35
+ /** Item variable name (default: "item") */
36
+ as?: string;
37
+ /** Index variable name (default: "index") */
38
+ indexAs?: string;
39
+ /** Item key path for stable React keys (예: "id", "name"). Falls back to index. */
40
+ key?: string;
41
+ }
42
+ /**
43
+ * 접근성 제약 조건
44
+ */
45
+ export interface SDUIConstraints {
46
+ /** Semantic role */
47
+ role?: 'button' | 'link' | 'heading' | 'img' | 'list' | 'listitem' | 'region' | 'navigation' | 'main' | 'alert' | 'status' | 'dialog' | 'tab' | 'tabpanel' | 'tablist' | 'none';
48
+ /** Accessible label */
49
+ label?: string;
50
+ /** Heading level (1-6) */
51
+ level?: number;
52
+ /** Hidden from a11y tree */
53
+ hidden?: boolean;
54
+ /** Minimum tap target size in px (web: min-width/min-height, native: hitSlop) */
55
+ minTapTarget?: number;
56
+ /** Max lines before truncation (web: line-clamp, native: numberOfLines) */
57
+ truncate?: number;
22
58
  }
23
59
  /**
24
60
  * 조건부 렌더링
@@ -52,6 +88,8 @@ export interface SDUIAction {
52
88
  * 페이지 스키마 (전체 페이지 정의)
53
89
  */
54
90
  export interface SDUIPageSchema {
91
+ /** 스키마 버전 (미지정 = v1 호환) */
92
+ schemaVersion?: number;
55
93
  /** 페이지 ID */
56
94
  id: string;
57
95
  /** 페이지 제목 */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sdui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa;IACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC/B,sBAAsB;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,cAAc;IACd,EAAE,CAAC,EAAE,iBAAiB,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC9E,WAAW;IACX,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC9E,cAAc;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,YAAY;IACZ,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,kBAAkB;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,aAAa;IACb,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,eAAe;IACf,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe;IACf,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC;IAClC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,gBAAgB;IAChB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sdui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa;IACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC/B,sBAAsB;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,cAAc;IACd,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,gCAAgC;IAChC,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,GAC3D,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAChE,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/C,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC9E,WAAW;IACX,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC9E,cAAc;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,YAAY;IACZ,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,kBAAkB;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,aAAa;IACb,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,eAAe;IACf,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe;IACf,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC;IAClC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,gBAAgB;IAChB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC"}
package/dist/sdui.d.mts CHANGED
@@ -21,6 +21,42 @@ interface SDUINode {
21
21
  when?: SDUICondition;
22
22
  /** 이벤트 핸들러 */
23
23
  on?: SDUIEventHandlers;
24
+ /** Cross-platform styling via dot engine */
25
+ dot?: string;
26
+ /** Array iteration: render children per item */
27
+ each?: SDUIEachBinding;
28
+ /** Accessibility constraints */
29
+ constraints?: SDUIConstraints;
30
+ }
31
+ /**
32
+ * 배열 반복 바인딩
33
+ */
34
+ interface SDUIEachBinding {
35
+ /** Data path to array (예: "emotions", "report.entries") */
36
+ of: string;
37
+ /** Item variable name (default: "item") */
38
+ as?: string;
39
+ /** Index variable name (default: "index") */
40
+ indexAs?: string;
41
+ /** Item key path for stable React keys (예: "id", "name"). Falls back to index. */
42
+ key?: string;
43
+ }
44
+ /**
45
+ * 접근성 제약 조건
46
+ */
47
+ interface SDUIConstraints {
48
+ /** Semantic role */
49
+ role?: 'button' | 'link' | 'heading' | 'img' | 'list' | 'listitem' | 'region' | 'navigation' | 'main' | 'alert' | 'status' | 'dialog' | 'tab' | 'tabpanel' | 'tablist' | 'none';
50
+ /** Accessible label */
51
+ label?: string;
52
+ /** Heading level (1-6) */
53
+ level?: number;
54
+ /** Hidden from a11y tree */
55
+ hidden?: boolean;
56
+ /** Minimum tap target size in px (web: min-width/min-height, native: hitSlop) */
57
+ minTapTarget?: number;
58
+ /** Max lines before truncation (web: line-clamp, native: numberOfLines) */
59
+ truncate?: number;
24
60
  }
25
61
  /**
26
62
  * 조건부 렌더링
@@ -54,6 +90,8 @@ interface SDUIAction {
54
90
  * 페이지 스키마 (전체 페이지 정의)
55
91
  */
56
92
  interface SDUIPageSchema {
93
+ /** 스키마 버전 (미지정 = v1 호환) */
94
+ schemaVersion?: number;
57
95
  /** 페이지 ID */
58
96
  id: string;
59
97
  /** 페이지 제목 */
@@ -102,6 +140,56 @@ interface SDUIRendererProps {
102
140
  onNavigate?: (path: string) => void;
103
141
  }
104
142
 
143
+ /**
144
+ * SDUI Core — platform-agnostic logic
145
+ *
146
+ * SDUIRenderer에서 추출한 순수 함수 + v2 유틸리티
147
+ */
148
+
149
+ /**
150
+ * 데이터 경로로 값 가져오기
151
+ * 예: "user.profile.name" → data.user.profile.name
152
+ */
153
+ declare function getByPath(obj: Record<string, unknown>, path: string): unknown;
154
+ /**
155
+ * 데이터 경로로 값 설정하기 (immutable)
156
+ */
157
+ declare function setByPath(obj: Record<string, unknown>, path: string, value: unknown): Record<string, unknown>;
158
+ /**
159
+ * 조건 평가
160
+ */
161
+ declare function evaluateCondition(condition: SDUICondition, data: Record<string, unknown>): boolean;
162
+ /**
163
+ * Props에서 데이터 바인딩 처리
164
+ * {{ path }} 형식을 실제 데이터로 치환
165
+ */
166
+ declare function resolveProps(props: Record<string, unknown>, data: Record<string, unknown>): Record<string, unknown>;
167
+ /**
168
+ * 텍스트 내 {{ path }} 바인딩을 데이터로 치환
169
+ */
170
+ declare function resolveTextBindings(text: string, data: Record<string, unknown>): string;
171
+ /**
172
+ * dot 문자열 내 {{ path }} 바인딩 resolve
173
+ * 예: "bg-{{ emotion.color }}" + {emotion: {color: "cyan-500"}} → "bg-cyan-500"
174
+ */
175
+ declare function resolveDotString(dot: string, data: Record<string, unknown>): string;
176
+ /**
177
+ * each 반복 결과 항목
178
+ */
179
+ interface EachIterationItem {
180
+ /** Scoped data (부모 data + item/index 주입) */
181
+ scopedData: Record<string, unknown>;
182
+ /** Stable React key (each.key path → item value, fallback: index) */
183
+ key: string;
184
+ }
185
+ /**
186
+ * each 바인딩을 처리하여 scoped data + key 배열 반환
187
+ *
188
+ * 각 항목은 부모 data를 복사 + item/index 변수 주입
189
+ * each.key가 있으면 item에서 해당 경로의 값을 React key로 사용
190
+ */
191
+ declare function iterateEach(each: SDUIEachBinding, data: Record<string, unknown>): EachIterationItem[];
192
+
105
193
  /**
106
194
  * 기본 컴포넌트 레지스트리
107
195
  */
@@ -130,4 +218,4 @@ declare function SDUIFromJSON({ json, ...props }: Omit<SDUIRendererProps, "schem
130
218
  json: string;
131
219
  }): react_jsx_runtime.JSX.Element;
132
220
 
133
- export { type SDUIAction, type SDUIComponentRegistry, type SDUICondition, type SDUIContext, type SDUIEventHandlers, SDUIFromJSON, type SDUINode, type SDUIPageSchema, SDUIRenderer, type SDUIRendererProps, defaultRegistry, extendRegistry, hasComponent, useSDUI };
221
+ export { type EachIterationItem, type SDUIAction, type SDUIComponentRegistry, type SDUICondition, type SDUIConstraints, type SDUIContext, type SDUIEachBinding, type SDUIEventHandlers, SDUIFromJSON, type SDUINode, type SDUIPageSchema, SDUIRenderer, type SDUIRendererProps, defaultRegistry, evaluateCondition, extendRegistry, getByPath, hasComponent, iterateEach, resolveDotString, resolveProps, resolveTextBindings, setByPath, useSDUI };
package/dist/sdui.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import {a as a$9,b as b$5,c as c$3,d as d$3,f as f$2,g,h,e as e$1}from'./chunk-N56BUOCD.mjs';import {a as a$3}from'./chunk-42RGFEL2.mjs';import {a as a$7}from'./chunk-CVWWS25A.mjs';import {a,b}from'./chunk-AOSXB5JJ.mjs';import {c as c$2,b as b$2,a as a$5}from'./chunk-IJSYSNM5.mjs';import {a as a$4}from'./chunk-ZXZIHU7J.mjs';import {f,e,d,c,b as b$1,a as a$2}from'./chunk-6HVJFEDA.mjs';import {a as a$6}from'./chunk-3CCF7U3P.mjs';import {b as b$3,a as a$8}from'./chunk-TZ4YSHMC.mjs';import {c as c$1,d as d$2,b as b$4}from'./chunk-OZNST3EZ.mjs';import {d as d$1}from'./chunk-XCZMLKPK.mjs';import {l}from'./chunk-7OYT3QSY.mjs';import {a as a$1}from'./chunk-TXBZZJNR.mjs';import {f as f$1}from'./chunk-U6CTBZ2U.mjs';import {createContext,useState,useContext,useMemo,useCallback}from'react';import {jsx,jsxs}from'react/jsx-runtime';var fe=({children:e,justify:t,align:r,className:n="",style:o,backgroundColor:s,padding:a,margin:c,borderRadius:i,border:u,...m})=>{let d={...o,...s&&{backgroundColor:s},...a!==void 0&&{padding:typeof a=="number"?`${a}px`:a},...c!==void 0&&{margin:typeof c=="number"?`${c}px`:c},...i!==void 0&&{borderRadius:typeof i=="number"?`${i}px`:i},...u&&{border:u}};return jsx("div",{className:f$1((t||r)&&"flex",t&&oe[t],r&&ae[r],n),style:Object.keys(d).length>0?d:void 0,...m,children:e})},ye=({size:e=16,className:t=""})=>jsx("div",{className:t,style:{width:e,height:e,flexShrink:0}}),oe={start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between"},ae={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"},Se=({children:e,direction:t="row",gap:r=0,justify:n="start",align:o="stretch",className:s="",style:a,backgroundColor:c,padding:i,...u})=>{let m={gap:`${r*4}px`,...a,...c&&{backgroundColor:c},...i!==void 0&&{padding:typeof i=="number"?`${i}px`:i}};return jsx("div",{className:`flex ${t==="column"?"flex-col":"flex-row"} ${oe[n]} ${ae[o]} ${s}`,style:m,...u,children:e})},be=({children:e,cols:t=1,gap:r=4,className:n="",style:o,backgroundColor:s,padding:a,...c})=>{let i={gridTemplateColumns:`repeat(${t}, 1fr)`,gap:`${r*4}px`,...o,...s&&{backgroundColor:s},...a!==void 0&&{padding:typeof a=="number"?`${a}px`:a}};return jsx("div",{className:`grid ${n}`,style:i,...c,children:e})},y={left:"text-left",center:"text-center",right:"text-right"};function S(e){let t={};return e.fontSize&&(t.fontSize=e.fontSize),e.lineHeight&&(t.lineHeight=e.lineHeight),e.fontWeight&&(t.fontWeight=e.fontWeight),e.letterSpacing&&(t.letterSpacing=e.letterSpacing),t}var he=({children:e,variant:t="body",align:r="center",className:n="",style:o,fontSize:s,lineHeight:a,fontWeight:c,letterSpacing:i,...u})=>{let m={body:"text-foreground",muted:"text-muted-foreground text-sm",lead:"text-xl text-muted-foreground"},d=S({fontSize:s,lineHeight:a,fontWeight:c,letterSpacing:i}),g=Object.keys(d).length>0?{...o,...d}:o;return jsx("p",{className:`${m[t]} ${y[r]} ${n}`,style:g,...u,children:e})},xe=({children:e,align:t="center",className:r="",style:n,fontSize:o,lineHeight:s,fontWeight:a,letterSpacing:c,...i})=>{let u=S({fontSize:o,lineHeight:s,fontWeight:a,letterSpacing:c}),m=Object.keys(u).length>0?{...n,...u}:n;return jsx("h1",{className:`text-4xl md:text-5xl font-bold ${y[t]} ${r}`,style:m,...i,children:e})},Re=({children:e,align:t="center",className:r="",style:n,fontSize:o,lineHeight:s,fontWeight:a,letterSpacing:c,...i})=>{let u=S({fontSize:o,lineHeight:s,fontWeight:a,letterSpacing:c}),m=Object.keys(u).length>0?{...n,...u}:n;return jsx("h2",{className:`text-3xl md:text-4xl font-bold ${y[t]} ${r}`,style:m,...i,children:e})},ve=({children:e,align:t="center",className:r="",style:n,fontSize:o,lineHeight:s,fontWeight:a,letterSpacing:c,...i})=>{let u=S({fontSize:o,lineHeight:s,fontWeight:a,letterSpacing:c}),m=Object.keys(u).length>0?{...n,...u}:n;return jsx("h3",{className:`text-2xl md:text-3xl font-semibold ${y[t]} ${r}`,style:m,...i,children:e})},Ie=({children:e,align:t="center",className:r="",style:n,fontSize:o,lineHeight:s,fontWeight:a,letterSpacing:c,...i})=>{let u=S({fontSize:o,lineHeight:s,fontWeight:a,letterSpacing:c}),m=Object.keys(u).length>0?{...n,...u}:n;return jsx("h4",{className:`text-xl md:text-2xl font-semibold ${y[t]} ${r}`,style:m,...i,children:e})},ke=({children:e,href:t="#",className:r="",...n})=>{let o=t.startsWith("http://")||t.startsWith("https://");return jsx("a",{href:t,className:`text-primary hover:underline ${r}`,...o?{target:"_blank",rel:"noopener noreferrer"}:{},...n,children:e})},Ce=({className:e="",alt:t="",...r})=>jsx("img",{className:`max-w-full h-auto ${e}`,alt:t,...r}),De=({name:e="star",size:t=24,className:r=""})=>jsx(l,{name:e,size:t,className:r}),Ue=({children:e,className:t="",...r})=>jsx("section",{className:`py-10 ${t}`,...r,children:e}),we=({className:e="",...t})=>jsx("hr",{className:`border-border ${e}`,...t}),Te=({children:e,sticky:t=true,transparent:r=false,blur:n=true,overlay:o=false,className:s="",...a})=>jsx("header",{className:f$1("w-full px-4 py-3 z-50",o?"absolute top-0 left-0 right-0":t&&"sticky top-0",r?"bg-transparent":"bg-background/80",n&&!r&&"backdrop-blur-md",!r&&"border-b border-border",s),...a,children:jsx("div",{className:"max-w-7xl mx-auto",children:e})}),Pe=({defaultChecked:e=false,onChange:t,...r})=>{let[n,o]=useState(e);return jsx(b$3,{...r,checked:n,onChange:s=>{o(s.target.checked),t==null||t(s);}})},He=({defaultChecked:e=false,onChange:t,...r})=>{let[n,o]=useState(e);return jsx(d$2,{...r,checked:n,onChange:s=>{o(s.target.checked),t==null||t(s);}})},Ne=({defaultValue:e="",onChange:t,...r})=>{let[n,o]=useState(e);return jsx(b$4,{...r,value:n,onChange:s=>{o(s.target.value),t==null||t(s);}})},$e=({defaultValue:e="",onChange:t,resize:r="vertical",...n})=>{let[o,s]=useState(e);return jsx(a$8,{...n,resize:r,value:o,onChange:a=>{s(a.target.value),t==null||t(a);}})},Fe=({items:e=[],type:t="single",collapsible:r=true,defaultValue:n,className:o=""})=>jsx(a$9,{type:t,collapsible:r,defaultValue:n,className:o,children:e.map((s,a)=>{let c=s.value||`item-${a}`;return jsxs(b$5,{value:c,children:[jsx(c$3,{children:s.title}),jsx(d$3,{children:s.content})]},c)})}),Me=({tabs:e=[],defaultValue:t,variant:r="default",className:n=""})=>{var s;let o=((s=e[0])==null?void 0:s.value)||"tab-0";return jsxs(f$2,{defaultValue:t||o,variant:r,className:n,children:[jsx(g,{children:e.map((a,c)=>{let i=a.value||`tab-${c}`;return jsx(h,{value:i,children:a.label},i)})}),e.map((a,c)=>{let i=a.value||`tab-${c}`;return jsx(e$1,{value:i,children:a.content},i)})]})},R={Box:fe,Spacer:ye,Flex:Se,Grid:be,Section:Ue,Container:a$7,Divider:we,Text:he,H1:xe,H2:Re,H3:ve,H4:Ie,Link:ke,Image:Ce,Icon:De,Button:d$1,Badge:a$6,Avatar:a$5,AvatarImage:b$2,AvatarFallback:c$2,Input:Ne,Textarea:$e,Label:c$1,Checkbox:Pe,Switch:He,Skeleton:a$4,Progress:a$3,Card:a$2,CardHeader:b$1,CardTitle:c,CardDescription:d,CardContent:e,CardFooter:f,Alert:a$1,Header:Te,HeroSection:b,ScrollProgress:a,Accordion:Fe,Tabs:Me};function Le(e){return {...R,...e}}function Ae(e,t){return t in e}var le=createContext(null);function ue(){let e=useContext(le);if(!e)throw new Error("useSDUI must be used within SDUIRenderer");return e}function v(e,t){return t.split(".").reduce((r,n)=>{if(r&&typeof r=="object"&&n in r)return r[n]},e)}function Ve(e,t,r){let n=t.split("."),o={...e},s=o;for(let a=0;a<n.length-1;a++){let c=n[a];s[c]={...s[c]||{}},s=s[c];}return s[n[n.length-1]]=r,o}function ze(e,t){let r=v(t,e.path);switch(e.operator){case "eq":return r===e.value;case "neq":return r!==e.value;case "gt":return typeof r=="number"&&r>e.value;case "lt":return typeof r=="number"&&r<e.value;case "gte":return typeof r=="number"&&r>=e.value;case "lte":return typeof r=="number"&&r<=e.value;case "exists":return r!=null;case "notExists":return r==null;default:return true}}function C(e,t){let r={};for(let[n,o]of Object.entries(e))if(typeof o=="string"){let s=o.match(/^\{\{\s*(.+?)\s*\}\}$/);s?r[n]=v(t,s[1]):r[n]=o.replace(/\{\{\s*(.+?)\s*\}\}/g,(a,c)=>{let i=v(t,c);return i!==void 0?String(i):""});}else Array.isArray(o)?r[n]=o.map(s=>typeof s=="object"&&s!==null?C(s,t):s):typeof o=="object"&&o!==null?r[n]=C(o,t):r[n]=o;return r}function me({node:e,registry:t}){let{data:r,handleAction:n}=ue();if(e.when&&!ze(e.when,r))return null;let o=t[e.type];if(!o)return console.warn(`[SDUI] Unknown component type: ${e.type}`),jsxs("div",{className:"p-4 border border-destructive/50 bg-destructive/10 rounded text-sm text-destructive",children:["Unknown component: ",e.type]});let s=e.props?C(e.props,r):{},a={};e.on&&(e.on.click&&(a.onClick=()=>n(e.on.click)),e.on.submit&&(a.onSubmit=m=>{m.preventDefault(),n(e.on.submit);}));let c=null;return e.children&&(typeof e.children=="string"?c=e.children.replace(/\{\{\s*(.+?)\s*\}\}/g,(m,d)=>{let g=v(r,d);return g!==void 0?String(g):""}):Array.isArray(e.children)&&(c=e.children.map((m,d)=>jsx(me,{node:m,registry:t},m.key||`child-${d}`)))),["Divider","Input","Textarea","Checkbox","Switch","Progress","Skeleton","Image","ScrollProgress"].includes(e.type)||c===null?jsx(o,{...s,...a}):jsx(o,{...s,...a,children:c})}function de({schema:e,components:t,data:r={},onAction:n,onNavigate:o}){let s="root"in e,a=s?e.root:e,c=s?e.data:{},[i,u]=useState({...c,...r}),m=useMemo(()=>({...R,...t}),[t]),d=useCallback((p,b)=>{u(h=>Ve(h,p,b));},[]),g=useCallback(p=>{o?o(p):typeof window!="undefined"&&(window.location.href=p);},[o]),D=useCallback(p=>{var b,h,U;switch(p.type){case "navigate":g((b=p.payload)==null?void 0:b.path);break;case "setState":(h=p.payload)!=null&&h.path&&((U=p.payload)==null?void 0:U.value)!==void 0&&d(p.payload.path,p.payload.value);break;case "api":n==null||n(p);break;case "custom":n==null||n(p);break;default:n==null||n(p);}},[g,d,n]),ge=useMemo(()=>({data:i,setData:d,handleAction:D,navigate:g}),[i,d,D,g]);return jsx(le.Provider,{value:ge,children:jsx(me,{node:a,registry:m})})}function We({json:e,...t}){try{let r=JSON.parse(e);return jsx(de,{schema:r,...t})}catch(r){return jsxs("div",{className:"p-4 border border-destructive bg-destructive/10 rounded",children:[jsx("p",{className:"font-semibold text-destructive",children:"SDUI Parse Error"}),jsx("pre",{className:"text-sm mt-2 text-destructive/80",children:r.message})]})}}
3
- export{We as SDUIFromJSON,de as SDUIRenderer,R as defaultRegistry,Le as extendRegistry,Ae as hasComponent,ue as useSDUI};//# sourceMappingURL=sdui.mjs.map
2
+ import {a as a$i}from'./chunk-CQBMR7VU.mjs';import {a as a$8,b as b$4,c as c$3,d as d$2,f as f$2,g as g$1,h as h$1,e as e$2}from'./chunk-BOX4TONF.mjs';import {f as f$1,a as a$6,b as b$2,d as d$3,e as e$3,c as c$4,l}from'./chunk-GAIUZVNC.mjs';import {a}from'./chunk-AJOGTUWS.mjs';import {a as a$e}from'./chunk-C2DOXNBK.mjs';import {a as a$5}from'./chunk-B2MRZJQA.mjs';import'./chunk-A5YOVVM5.mjs';import {b,c,d as d$5,a as a$d}from'./chunk-32OZGTPV.mjs';import {a as a$b}from'./chunk-JNW3CLCA.mjs';import {b as b$6}from'./chunk-KPNNAQLI.mjs';import {c as c$1,b as b$1,a as a$2}from'./chunk-XXHDNZTG.mjs';import {b as b$5,a as a$c}from'./chunk-MR46CSMC.mjs';import {a as a$h}from'./chunk-SPZ7SZH4.mjs';import {a as a$1}from'./chunk-D7MTTTQY.mjs';import {a as a$a}from'./chunk-EK6BLFVQ.mjs';import {k as k$1,j,i,h,g,f}from'./chunk-UR3TIWBS.mjs';import {a as a$3}from'./chunk-M4JE7TQL.mjs';import {b as b$3,a as a$7}from'./chunk-AQTSQYH2.mjs';import {a as a$g}from'./chunk-ZZ67E3M5.mjs';import {d,e as e$1,c as c$2}from'./chunk-I6NCGF6E.mjs';import {a as a$4}from'./chunk-JY3QVUGW.mjs';import'./chunk-RICRFXFP.mjs';import'./chunk-LPHUWTQ2.mjs';import'./chunk-7T3IUG3G.mjs';import'./chunk-7CGJQSJO.mjs';import {e as e$4,d as d$4,i as i$1}from'./chunk-ZTHUGQZL.mjs';import {a as a$9}from'./chunk-ZVCGC6EV.mjs';import {a as a$f}from'./chunk-DABVKUJN.mjs';import {m as m$1}from'./chunk-NSDWT2JM.mjs';import {d as d$1,e}from'./chunk-OBMOTQEU.mjs';import'./chunk-EAZEI74V.mjs';import {createContext,useState,useContext,useMemo,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';function k(t,e){return e.split(".").reduce((r,n)=>{if(r&&typeof r=="object"&&n in r)return r[n]},t)}function L(t,e,r){let n=e.split("."),o={...t},i=o;for(let a=0;a<n.length-1;a++){let s=n[a];i[s]={...i[s]||{}},i=i[s];}return i[n[n.length-1]]=r,o}function F(t,e){let r=k(e,t.path);switch(t.operator){case "eq":return r===t.value;case "neq":return r!==t.value;case "gt":return typeof r=="number"&&r>t.value;case "lt":return typeof r=="number"&&r<t.value;case "gte":return typeof r=="number"&&r>=t.value;case "lte":return typeof r=="number"&&r<=t.value;case "exists":return r!=null;case "notExists":return r==null;default:return true}}function v(t,e){let r={};for(let[n,o]of Object.entries(t))if(typeof o=="string"){let i=o.match(/^\{\{\s*(.+?)\s*\}\}$/);i?r[n]=k(e,i[1]):r[n]=C(o,e);}else Array.isArray(o)?r[n]=o.map(i=>typeof i=="object"&&i!==null?v(i,e):i):typeof o=="object"&&o!==null?r[n]=v(o,e):r[n]=o;return r}function C(t,e){return t.replace(/\{\{\s*(.+?)\s*\}\}/g,(r,n)=>{let o=k(e,n);return o!==void 0?String(o):""})}function M(t,e){return C(t,e)}function N(t,e){let r=k(e,t.of);if(!Array.isArray(r))return [];let n=t.as||"item",o=t.indexAs||"index";return r.map((i,a)=>{let s={...e,[n]:i,[o]:a},d=String(a);if(t.key&&i&&typeof i=="object"){let c=k(i,t.key);c!=null&&(d=String(c));}return {scopedData:s,key:d}})}function m(...t){return t.filter(Boolean).join(" ")}var Ot={start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between"},zt={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"},x={left:"text-left",center:"text-center",right:"text-right"};function E(t,e){let r={...t,...e.backgroundColor&&{backgroundColor:e.backgroundColor},...e.padding!==void 0&&{padding:typeof e.padding=="number"?`${e.padding}px`:e.padding},...e.margin!==void 0&&{margin:typeof e.margin=="number"?`${e.margin}px`:e.margin},...e.borderRadius!==void 0&&{borderRadius:typeof e.borderRadius=="number"?`${e.borderRadius}px`:e.borderRadius},...e.border&&{border:e.border}};return Object.keys(r).length>0?r:void 0}function D(t,e){let r={};return e.fontSize&&(r.fontSize=e.fontSize),e.lineHeight&&(r.lineHeight=e.lineHeight),e.fontWeight&&(r.fontWeight=e.fontWeight),e.letterSpacing&&(r.letterSpacing=e.letterSpacing),Object.keys(r).length===0?t:t?{...t,...r}:r}var Jt=({children:t,justify:e,align:r,style:n,backgroundColor:o,padding:i,margin:a,borderRadius:s,border:d,dot:c,...f})=>jsx(a$6,{dot:m((e||r)&&"flex",e&&Ot[e],r&&zt[r],c),style:E(n,{backgroundColor:o,padding:i,margin:a,borderRadius:s,border:d}),...f,children:t}),Kt=({size:t=16,dot:e})=>jsx(a$6,{dot:m("shrink-0",e),style:{width:t,height:t}}),_t=({children:t,direction:e="row",gap:r=0,justify:n="start",align:o="stretch",style:i,backgroundColor:a,padding:s,dot:d,...c})=>jsx(a$6,{dot:m("flex",e==="column"&&"flex-col",r>0&&`gap-${r}`,Ot[n],zt[o],d),style:E(i,{backgroundColor:a,padding:s}),...c,children:t}),Gt=({children:t,cols:e=1,gap:r=4,style:n,backgroundColor:o,padding:i,dot:a,...s})=>jsx(a$6,{dot:m("grid",`grid-cols-${e}`,r>0&&`gap-${r}`,a),style:E(n,{backgroundColor:o,padding:i}),...s,children:t}),Qt=({children:t,dot:e,...r})=>jsx(a$6,{as:"section",dot:m("py-10",e),...r,children:t}),Xt=({dot:t,style:e$1,...r})=>jsx("hr",{style:d$1(e(m("border-border",t)),e$1),...r}),Yt={body:"text-foreground",muted:"text-muted-foreground text-sm",lead:"text-xl text-muted-foreground"},Zt=({children:t,variant:e="body",align:r="center",style:n,fontSize:o,lineHeight:i,fontWeight:a,letterSpacing:s,dot:d,...c})=>jsx(b$2,{as:"p",dot:m(Yt[e],x[r],d),style:D(n,{fontSize:o,lineHeight:i,fontWeight:a,letterSpacing:s}),...c,children:t}),te=({children:t,align:e="center",style:r,fontSize:n,lineHeight:o,fontWeight:i,letterSpacing:a,dot:s,...d})=>jsx(b$2,{as:"h1",dot:m("text-4xl font-bold",x[e],s),style:D(r,{fontSize:n,lineHeight:o,fontWeight:i,letterSpacing:a}),...d,children:t}),ee=({children:t,align:e="center",style:r,fontSize:n,lineHeight:o,fontWeight:i,letterSpacing:a,dot:s,...d})=>jsx(b$2,{as:"h2",dot:m("text-3xl font-bold",x[e],s),style:D(r,{fontSize:n,lineHeight:o,fontWeight:i,letterSpacing:a}),...d,children:t}),re=({children:t,align:e="center",style:r,fontSize:n,lineHeight:o,fontWeight:i,letterSpacing:a,dot:s,...d})=>jsx(b$2,{as:"h3",dot:m("text-2xl font-semibold",x[e],s),style:D(r,{fontSize:n,lineHeight:o,fontWeight:i,letterSpacing:a}),...d,children:t}),ne=({children:t,align:e="center",style:r,fontSize:n,lineHeight:o,fontWeight:i,letterSpacing:a,dot:s,...d})=>jsx(b$2,{as:"h4",dot:m("text-xl font-semibold",x[e],s),style:D(r,{fontSize:n,lineHeight:o,fontWeight:i,letterSpacing:a}),...d,children:t}),oe=({children:t,href:e$1="#",dot:r,style:n,...o})=>{let i=e$1.startsWith("http://")||e$1.startsWith("https://");return jsx("a",{href:e$1,style:d$1(e(m("text-primary",r)),n),...i?{target:"_blank",rel:"noopener noreferrer"}:{},...o,children:t})},ie=({alt:t="",dot:e$1,style:r,...n})=>jsx("img",{alt:t,style:d$1({maxWidth:"100%",height:"auto"},e(e$1),r),...n}),ae=({name:t="star",size:e=24})=>jsx(m$1,{name:t,size:e}),se=({children:t,sticky:e=true,transparent:r=false,blur:n=true,overlay:o=false,dot:i,style:a,...s})=>jsx(a$6,{as:"header",dot:m("w-full px-4 py-3 z-50",o?"absolute top-0 left-0 right-0":e?"sticky top-0":void 0,r?"bg-transparent":"bg-background/80",n&&!r&&"backdrop-blur-md",!r&&"border-b border-border",i),style:a,...s,children:jsx(a$6,{dot:"max-w-7xl mx-auto",children:t})}),le=({defaultChecked:t=false,onChange:e,...r})=>{let[n,o]=useState(t);return jsx(b$3,{...r,checked:n,onChange:i=>{o(i.target.checked),e==null||e(i);}})},de=({defaultChecked:t=false,onChange:e,...r})=>{let[n,o]=useState(t);return jsx(e$1,{...r,checked:n,onChange:i=>{o(i.target.checked),e==null||e(i);}})},ce=({defaultValue:t="",onChange:e,...r})=>{let[n,o]=useState(t);return jsx(c$2,{...r,value:n,onChange:i=>{o(i.target.value),e==null||e(i);}})},ue=({defaultValue:t="",onChange:e,resize:r="vertical",...n})=>{let[o,i]=useState(t);return jsx(a$7,{...n,resize:r,value:o,onChange:a=>{i(a.target.value),e==null||e(a);}})},ge=({items:t=[],type:e="single",collapsible:r=true,defaultValue:n})=>jsx(a$8,{type:e,collapsible:r,defaultValue:n,children:t.map((o,i)=>{let a=o.value||`item-${i}`;return jsxs(b$4,{value:a,children:[jsx(c$3,{children:o.title}),jsx(d$2,{children:o.content})]},a)})}),me=({tabs:t=[],defaultValue:e,variant:r="default"})=>{var o;let n=((o=t[0])==null?void 0:o.value)||"tab-0";return jsxs(f$2,{defaultValue:e||n,variant:r,children:[jsx(g$1,{children:t.map((i,a)=>{let s=i.value||`tab-${a}`;return jsx(h$1,{value:s,children:i.label},s)})}),t.map((i,a)=>{let s=i.value||`tab-${a}`;return jsx(e$2,{value:s,children:i.content},s)})]})},pe=({children:t,direction:e="vertical",spacing:r="md",align:n="start",justify:o="start",wrap:i=false,dot:a,...s})=>jsx(d$3,{direction:e,spacing:r,align:n,justify:o,wrap:i,dot:a,...s,children:t}),fe=({children:t,style:e="default",effect:r="none",padding:n="md",rounded:o="lg",dot:i,...a})=>jsx(e$3,{style:e,effect:r,padding:n,rounded:o,dot:i,...a,children:t}),ye=({title:t="Section",description:e,dot:r,...n})=>jsx(b$5,{title:t,description:e,dot:r,...n}),be=({children:t,title:e="Component",description:r="",dot:n,...o})=>jsx(b$6,{title:e,description:r,dot:n,...o,children:t}),Se=({children:t,dot:e,disabled:r,...n})=>jsx(c$4,{dot:e,disabled:r,...n,children:t}),Re=({items:t,showHomeIcon:e,variant:r="default",dot:n,children:o,...i})=>jsx(a$9,{items:t,showHomeIcon:e,variant:r,dot:n,...i,children:o}),he=({totalPages:t=10,variant:e="default",size:r="md",shape:n="square",dot:o,...i})=>{let[a,s]=useState(1);return jsx(e$4,{currentPage:a,totalPages:t,onPageChange:s,variant:e,size:r,shape:n,dot:o,...i})},ke=({children:t,defaultValue:e,variant:r="pills",scale:n="medium",dot:o,...i})=>jsx(d$4,{defaultValue:e,variant:r,scale:n,dot:o,...i,children:t}),ve=({prevPage:t,nextPage:e,showOnMobile:r=true,dot:n,...o})=>jsx(i$1,{prevPage:t,nextPage:e,showOnMobile:r,dot:n,...o}),Ce=({items:t=[],position:e="right",dot:r,...n})=>jsx(a$a,{items:t,position:e,dot:r,...n}),xe=({title:t="Feature",description:e="",icon:r,variant:n="default",size:o="md",hover:i="scale",gradient:a="blue",dot:s,...d})=>jsx(a$b,{title:t,description:e,icon:r,variant:n,size:o,hover:i,gradient:a,dot:s,...d}),De=({children:t,title:e="Info",icon:r="info",tone:n="blue",dot:o,...i})=>jsx(d$5,{title:e,icon:r,tone:n,dot:o,...i,children:t}),Ie=({title:t,items:e=[],columns:r=4,loading:n=false,dot:o,...i})=>jsx(a$c,{title:t,items:e,columns:r,loading:n,dot:o,...i}),Pe=({size:t="md",variant:e="button",showLabel:r=false,currentLanguage:n="ko",dot:o,...i})=>{let[a,s]=useState(n);return jsx(a$d,{size:t,variant:e,showLabel:r,currentLanguage:a,onLanguageChange:s,dot:o,...i})},we=({size:t="md",variant:e="button",showLabel:r=false,dot:n,...o})=>jsx(l,{size:t,variant:e,showLabel:r,dot:n,...o}),Te=({children:t,title:e$1,description:r,size:n="md",triggerLabel:o="Open Modal",dot:i,...a})=>{let[s,d]=useState(false),{style:c,...f}=a;return jsxs("div",{...f,style:{display:"contents",...c},children:[jsx("button",{onClick:()=>d(true),style:d$1(e("inline-flex items-center justify-center px-4 py-2 rounded-md bg-primary text-primary-foreground text-sm font-medium cursor-pointer border-none"),{}),children:o}),jsx(a$e,{isOpen:s,onClose:()=>d(false),title:e$1,description:r,size:n,dot:i,children:t})]})},Ue=({children:t,content:e="Tooltip",position:r="top",variant:n="default",delay:o=300,dot:i,...a})=>jsx(a$f,{content:e,position:r,variant:n,delay:o,dot:i,...a,children:t}),He=({children:t,triggerLabel:e$1="Open",position:r="bottom",align:n="center",dot:o,...i})=>jsx(a$g,{trigger:jsx("button",{style:d$1(e("inline-flex items-center justify-center px-3 py-2 rounded-md border border-border bg-background text-sm cursor-pointer"),{}),children:e$1}),position:r,align:n,dot:o,...i,children:t}),Le=({children:t,side:e$1="right",size:r="md",triggerLabel:n="Open Drawer",dot:o,...i})=>{let[a,s]=useState(false),{style:d,...c}=i;return jsxs("div",{...c,style:{display:"contents",...d},children:[jsx("button",{onClick:()=>s(true),style:d$1(e("inline-flex items-center justify-center px-4 py-2 rounded-md bg-primary text-primary-foreground text-sm font-medium cursor-pointer border-none"),{}),children:n}),jsx(a$h,{isOpen:a,onClose:()=>s(false),side:e$1,size:r,dot:o,children:t})]})},Fe=({children:t,height:e$1="md",triggerLabel:r="Open Sheet",showDragHandle:n=true,dot:o,...i})=>{let[a,s]=useState(false),{style:d,...c}=i;return jsxs("div",{...c,style:{display:"contents",...d},children:[jsx("button",{onClick:()=>s(true),style:d$1(e("inline-flex items-center justify-center px-4 py-2 rounded-md bg-primary text-primary-foreground text-sm font-medium cursor-pointer border-none"),{}),children:r}),jsx(a$i,{isOpen:a,onClose:()=>s(false),height:e$1,showDragHandle:n,dot:o,children:t})]})},U={Box:Jt,Spacer:Kt,Flex:_t,Grid:Gt,Section:Qt,Container:a$5,Divider:Xt,Text:Zt,H1:te,H2:ee,H3:re,H4:ne,Link:oe,Image:ie,Icon:ae,Button:a$4,Badge:a$3,Avatar:a$2,AvatarImage:b$1,AvatarFallback:c$1,Input:ce,Textarea:ue,Label:d,Checkbox:le,Switch:de,Skeleton:a$1,Progress:f$1,Card:f,CardHeader:g,CardTitle:h,CardDescription:i,CardContent:j,CardFooter:k$1,Alert:a,Header:se,HeroSection:c,ScrollProgress:b,Accordion:ge,Tabs:me,Stack:pe,Panel:fe,SectionHeader:ye,ComponentLayout:be,Pressable:Se,Breadcrumb:Re,Pagination:he,Navigation:ke,PageNavigation:ve,DotNav:Ce,FeatureCard:xe,InfoCard:De,StatsPanel:Ie,LanguageToggle:Pe,ThemeToggle:we,Modal:Te,Tooltip:Ue,Popover:He,Drawer:Le,BottomSheet:Fe};function Me(t){return {...U,...t}}function Ne(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var O=createContext(null);function H(){let t=useContext(O);if(!t)throw new Error("useSDUI must be used within SDUIRenderer");return t}function Oe({data:t,children:e}){let r=H(),n=useMemo(()=>({...r,data:t}),[r,t]);return jsx(O.Provider,{value:n,children:e})}function ze(t){let e={},r={};return t.role&&(e.role=t.role),t.label&&(e["aria-label"]=t.label),t.level!==void 0&&(e["aria-level"]=t.level),t.hidden!==void 0&&(e["aria-hidden"]=t.hidden),t.minTapTarget!==void 0&&(r.minWidth=t.minTapTarget,r.minHeight=t.minTapTarget),t.truncate!==void 0&&(r.overflow="hidden",r.display="-webkit-box",r.WebkitLineClamp=t.truncate,r.WebkitBoxOrient="vertical"),{attrs:e,style:r}}function Vt({node:t,registry:e}){let{data:r,handleAction:n}=H();if(t.when&&!F(t.when,r))return null;if(t.each){let o=N(t.each,r);return o.length===0?null:jsx(Fragment,{children:o.map(({scopedData:i,key:a})=>jsx(Oe,{data:i,children:jsx(jt,{node:t,registry:e})},a))})}return jsx(jt,{node:t,registry:e})}function jt({node:t,registry:e$1}){let{data:r,handleAction:n}=H(),o=e$1[t.type];if(!o)return console.warn(`[SDUI] Unknown component type: ${t.type}`),jsxs("div",{style:{...e("p-4"),border:"1px solid #ef4444",...e("rounded"),fontSize:14,color:"#ef4444",backgroundColor:"rgba(239,68,68,0.1)"},children:["Unknown component: ",t.type]});let i=t.props?v(t.props,r):{};if(t.dot&&(i.dot=M(t.dot,r)),t.constraints){let{attrs:f,style:y}=ze(t.constraints);Object.assign(i,f),Object.keys(y).length>0&&(i.style={...i.style||{},...y});}let a={};t.on&&(t.on.click&&(a.onClick=()=>n(t.on.click)),t.on.submit&&(a.onSubmit=f=>{f.preventDefault(),n(t.on.submit);}));let s=null;return t.children&&(typeof t.children=="string"?s=C(t.children,r):Array.isArray(t.children)&&(s=t.children.map((f,y)=>jsx(Vt,{node:f,registry:e$1},f.key||`child-${y}`)))),["Divider","Input","Textarea","Checkbox","Switch","Progress","Skeleton","Image","ScrollProgress","PageNavigation","DotNav","StatsPanel","LanguageToggle","ThemeToggle","SectionHeader","Pagination"].includes(t.type)||s===null?jsx(o,{...i,...a}):jsx(o,{...i,...a,children:s})}function Wt({schema:t,components:e,data:r={},onAction:n,onNavigate:o}){let i="root"in t,a=i?t.root:t,s=i?t.data:{},[d,c]=useState({...s,...r}),f=useMemo(()=>({...U,...e}),[e]),y=useCallback((u,w)=>{c(T=>L(T,u,w));},[]),P=useCallback(u=>{o?o(u):typeof window!="undefined"&&(window.location.href=u);},[o]),z=useCallback(u=>{var w,T,j;switch(u.type){case "navigate":P((w=u.payload)==null?void 0:w.path);break;case "setState":(T=u.payload)!=null&&T.path&&((j=u.payload)==null?void 0:j.value)!==void 0&&y(u.payload.path,u.payload.value);break;case "api":n==null||n(u);break;case "custom":n==null||n(u);break;default:n==null||n(u);}},[P,y,n]),qt=useMemo(()=>({data:d,setData:y,handleAction:z,navigate:P}),[d,y,z,P]);return jsx(O.Provider,{value:qt,children:jsx(Vt,{node:a,registry:f})})}function je({json:t,...e$1}){try{let r=JSON.parse(t);return jsx(Wt,{schema:r,...e$1})}catch(r){return jsxs("div",{style:{...e("p-4"),border:"1px solid #ef4444",...e("rounded"),backgroundColor:"rgba(239,68,68,0.1)"},children:[jsx("p",{style:{fontWeight:600,color:"#ef4444"},children:"SDUI Parse Error"}),jsx("pre",{style:{fontSize:14,...e("mt-2"),color:"rgba(239,68,68,0.8)"},children:r.message})]})}}
3
+ export{je as SDUIFromJSON,Wt as SDUIRenderer,U as defaultRegistry,F as evaluateCondition,Me as extendRegistry,k as getByPath,Ne as hasComponent,N as iterateEach,M as resolveDotString,v as resolveProps,C as resolveTextBindings,L as setByPath,H as useSDUI};//# sourceMappingURL=sdui.mjs.map
4
4
  //# sourceMappingURL=sdui.mjs.map