@vuer-ai/vuer-uikit 0.0.96 → 0.0.98

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 (341) hide show
  1. package/README.md +106 -7
  2. package/cli/dial-cli.js +49 -7
  3. package/dist/SyncScroll/SyncScroll.cjs +10 -10
  4. package/dist/SyncScroll/SyncScroll.mjs +3 -3
  5. package/dist/SyncScroll/index.cjs +10 -10
  6. package/dist/SyncScroll/index.mjs +3 -3
  7. package/dist/chunk-3HEZVWRW.mjs +62 -0
  8. package/dist/chunk-4KWGGESI.cjs +494 -0
  9. package/dist/{chunk-CCMKL2OA.cjs → chunk-7GWDO25E.cjs} +2 -2
  10. package/dist/chunk-A5LCX2UQ.cjs +208 -0
  11. package/dist/chunk-BEJIZ56L.mjs +300 -0
  12. package/dist/chunk-C7VGRU3O.mjs +283 -0
  13. package/dist/{chunk-LONOMMFA.cjs → chunk-LJMNHTTG.cjs} +21 -21
  14. package/dist/chunk-O66RESRR.cjs +285 -0
  15. package/dist/{chunk-RINTUFYQ.cjs → chunk-RMK6W774.cjs} +24 -19
  16. package/dist/{chunk-BFQ2WL5U.mjs → chunk-TTYSYGVE.mjs} +2 -2
  17. package/dist/chunk-VA3PEYFM.mjs +489 -0
  18. package/dist/chunk-VBBJSIY7.cjs +308 -0
  19. package/dist/{chunk-AIINOWEH.mjs → chunk-W4JCKCW7.mjs} +5 -5
  20. package/dist/chunk-WWGF6TBZ.mjs +206 -0
  21. package/dist/chunk-ZGN4UEJR.cjs +679 -0
  22. package/dist/chunk-ZQLRMOUW.mjs +661 -0
  23. package/dist/dial/DialPanel.cjs +24 -24
  24. package/dist/dial/DialPanel.mjs +23 -23
  25. package/dist/dial/DialProvider.cjs +3 -3
  26. package/dist/dial/DialProvider.d.cts +1 -0
  27. package/dist/dial/DialProvider.d.ts +1 -0
  28. package/dist/dial/DialProvider.example.cjs +72 -0
  29. package/dist/dial/DialProvider.example.d.cts +7 -0
  30. package/dist/dial/DialProvider.example.d.ts +7 -0
  31. package/dist/dial/DialProvider.example.mjs +68 -0
  32. package/dist/dial/DialProvider.mjs +1 -1
  33. package/dist/dial/index.cjs +42 -42
  34. package/dist/dial/index.mjs +23 -23
  35. package/dist/dial/wrapped-inputs/ControlledInputs.cjs +27 -27
  36. package/dist/dial/wrapped-inputs/ControlledInputs.mjs +23 -23
  37. package/dist/dial/wrapped-inputs/DialInputs.cjs +34 -34
  38. package/dist/dial/wrapped-inputs/DialInputs.mjs +23 -23
  39. package/dist/dial/wrapped-inputs/DialVectorInput.cjs +24 -24
  40. package/dist/dial/wrapped-inputs/DialVectorInput.mjs +23 -23
  41. package/dist/dial/wrapped-inputs/index.cjs +39 -39
  42. package/dist/dial/wrapped-inputs/index.mjs +23 -23
  43. package/dist/highlight-cursor/cursor-provider.cjs +3 -3
  44. package/dist/highlight-cursor/cursor-provider.mjs +2 -2
  45. package/dist/highlight-cursor/enhanced-components.cjs +10 -10
  46. package/dist/highlight-cursor/enhanced-components.mjs +5 -5
  47. package/dist/highlight-cursor/index.cjs +16 -16
  48. package/dist/highlight-cursor/index.mjs +6 -6
  49. package/dist/hooks/index.cjs +5 -5
  50. package/dist/hooks/index.mjs +1 -1
  51. package/dist/index.cjs +190 -190
  52. package/dist/index.mjs +23 -23
  53. package/dist/ui/UIKitBadge.cjs +6 -6
  54. package/dist/ui/UIKitBadge.mjs +2 -2
  55. package/dist/ui/avatar.cjs +1 -1
  56. package/dist/ui/avatar.mjs +1 -1
  57. package/dist/ui/badge.cjs +1 -1
  58. package/dist/ui/badge.d.cts +1 -1
  59. package/dist/ui/badge.d.ts +1 -1
  60. package/dist/ui/badge.mjs +1 -1
  61. package/dist/ui/button.cjs +1 -1
  62. package/dist/ui/button.mjs +1 -1
  63. package/dist/ui/card.cjs +1 -1
  64. package/dist/ui/card.mjs +1 -1
  65. package/dist/ui/checkbox.cjs +1 -1
  66. package/dist/ui/checkbox.mjs +1 -1
  67. package/dist/ui/collapsible.cjs +1 -1
  68. package/dist/ui/collapsible.mjs +1 -1
  69. package/dist/ui/drawer.cjs +1 -1
  70. package/dist/ui/drawer.mjs +1 -1
  71. package/dist/ui/dropdown.cjs +1 -1
  72. package/dist/ui/dropdown.mjs +1 -1
  73. package/dist/ui/index.cjs +107 -107
  74. package/dist/ui/index.mjs +17 -17
  75. package/dist/ui/inputs/color-input.cjs +1 -1
  76. package/dist/ui/inputs/color-input.mjs +1 -1
  77. package/dist/ui/inputs/index.cjs +11 -11
  78. package/dist/ui/inputs/index.mjs +3 -3
  79. package/dist/ui/inputs/input-numbers.cjs +1 -1
  80. package/dist/ui/inputs/input-numbers.mjs +1 -1
  81. package/dist/ui/inputs/input.cjs +1 -1
  82. package/dist/ui/inputs/input.d.cts +1 -1
  83. package/dist/ui/inputs/input.d.ts +1 -1
  84. package/dist/ui/inputs/input.mjs +1 -1
  85. package/dist/ui/inputs/number-inputs/CmInput.cjs +1 -1
  86. package/dist/ui/inputs/number-inputs/CmInput.mjs +1 -1
  87. package/dist/ui/inputs/number-inputs/DegInput.cjs +1 -1
  88. package/dist/ui/inputs/number-inputs/DegInput.mjs +1 -1
  89. package/dist/ui/inputs/number-inputs/EulerDegInput.cjs +1 -1
  90. package/dist/ui/inputs/number-inputs/EulerDegInput.mjs +1 -1
  91. package/dist/ui/inputs/number-inputs/EulerInput.cjs +1 -1
  92. package/dist/ui/inputs/number-inputs/EulerInput.mjs +1 -1
  93. package/dist/ui/inputs/number-inputs/EulerRadInput.cjs +1 -1
  94. package/dist/ui/inputs/number-inputs/EulerRadInput.mjs +1 -1
  95. package/dist/ui/inputs/number-inputs/InchInput.cjs +1 -1
  96. package/dist/ui/inputs/number-inputs/InchInput.mjs +1 -1
  97. package/dist/ui/inputs/number-inputs/IntInput.cjs +1 -1
  98. package/dist/ui/inputs/number-inputs/IntInput.mjs +1 -1
  99. package/dist/ui/inputs/number-inputs/KVectorInput.cjs +1 -1
  100. package/dist/ui/inputs/number-inputs/KVectorInput.mjs +1 -1
  101. package/dist/ui/inputs/number-inputs/QuaternionInput.cjs +1 -1
  102. package/dist/ui/inputs/number-inputs/QuaternionInput.mjs +1 -1
  103. package/dist/ui/inputs/number-inputs/RadInput.cjs +1 -1
  104. package/dist/ui/inputs/number-inputs/RadInput.mjs +1 -1
  105. package/dist/ui/inputs/number-inputs/TimeInput.cjs +1 -1
  106. package/dist/ui/inputs/number-inputs/TimeInput.mjs +1 -1
  107. package/dist/ui/inputs/number-inputs/Vec3Input.cjs +1 -1
  108. package/dist/ui/inputs/number-inputs/Vec3Input.mjs +1 -1
  109. package/dist/ui/inputs/number-inputs/VectorInput.cjs +1 -1
  110. package/dist/ui/inputs/number-inputs/VectorInput.mjs +1 -1
  111. package/dist/ui/inputs/number-inputs/index.cjs +11 -11
  112. package/dist/ui/inputs/number-inputs/index.mjs +3 -3
  113. package/dist/ui/inputs/presets-input.cjs +1 -1
  114. package/dist/ui/inputs/presets-input.mjs +1 -1
  115. package/dist/ui/label.cjs +1 -1
  116. package/dist/ui/label.mjs +1 -1
  117. package/dist/ui/layout.cjs +1 -1
  118. package/dist/ui/layout.mjs +1 -1
  119. package/dist/ui/layouts/dock-layout/DockLayoutView.cjs +1 -1
  120. package/dist/ui/layouts/dock-layout/DockLayoutView.mjs +1 -1
  121. package/dist/ui/layouts/dock-layout/LayoutSlots.cjs +1 -1
  122. package/dist/ui/layouts/dock-layout/LayoutSlots.mjs +1 -1
  123. package/dist/ui/layouts/dock-layout/index.cjs +1 -1
  124. package/dist/ui/layouts/dock-layout/index.mjs +1 -1
  125. package/dist/ui/layouts/index.cjs +2 -2
  126. package/dist/ui/layouts/index.mjs +2 -2
  127. package/dist/ui/layouts/liquid-layout/LayoutSlots.cjs +1 -1
  128. package/dist/ui/layouts/liquid-layout/LayoutSlots.mjs +1 -1
  129. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.cjs +1 -1
  130. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.mjs +1 -1
  131. package/dist/ui/layouts/liquid-layout/index.cjs +1 -1
  132. package/dist/ui/layouts/liquid-layout/index.mjs +1 -1
  133. package/dist/ui/modal.cjs +1 -1
  134. package/dist/ui/modal.mjs +1 -1
  135. package/dist/ui/navigation.cjs +1 -1
  136. package/dist/ui/navigation.mjs +1 -1
  137. package/dist/ui/pagination.cjs +1 -1
  138. package/dist/ui/pagination.mjs +1 -1
  139. package/dist/ui/panel.cjs +1 -1
  140. package/dist/ui/panel.mjs +1 -1
  141. package/dist/ui/popover.cjs +1 -1
  142. package/dist/ui/popover.mjs +1 -1
  143. package/dist/ui/radio-group.cjs +1 -1
  144. package/dist/ui/radio-group.mjs +1 -1
  145. package/dist/ui/resizable.cjs +1 -1
  146. package/dist/ui/resizable.mjs +1 -1
  147. package/dist/ui/select.cjs +1 -1
  148. package/dist/ui/select.d.cts +1 -1
  149. package/dist/ui/select.d.ts +1 -1
  150. package/dist/ui/select.mjs +1 -1
  151. package/dist/ui/separator.cjs +1 -1
  152. package/dist/ui/separator.mjs +1 -1
  153. package/dist/ui/sheet.cjs +1 -1
  154. package/dist/ui/sheet.mjs +1 -1
  155. package/dist/ui/sidebar.cjs +26 -26
  156. package/dist/ui/sidebar.mjs +2 -2
  157. package/dist/ui/simple-tree-view.cjs +1 -1
  158. package/dist/ui/simple-tree-view.mjs +1 -1
  159. package/dist/ui/skeleton.cjs +1 -1
  160. package/dist/ui/skeleton.mjs +1 -1
  161. package/dist/ui/slider.cjs +1 -1
  162. package/dist/ui/slider.mjs +1 -1
  163. package/dist/ui/switch.cjs +1 -1
  164. package/dist/ui/switch.mjs +1 -1
  165. package/dist/ui/table.cjs +1 -1
  166. package/dist/ui/table.mjs +1 -1
  167. package/dist/ui/tabs.cjs +1 -1
  168. package/dist/ui/tabs.mjs +1 -1
  169. package/dist/ui/textarea.cjs +1 -1
  170. package/dist/ui/textarea.d.cts +1 -1
  171. package/dist/ui/textarea.d.ts +1 -1
  172. package/dist/ui/textarea.mjs +1 -1
  173. package/dist/ui/theme/ThemeToggles.cjs +1 -1
  174. package/dist/ui/theme/ThemeToggles.mjs +1 -1
  175. package/dist/ui/theme/index.cjs +1 -1
  176. package/dist/ui/theme/index.mjs +1 -1
  177. package/dist/ui/toggle-buttons.cjs +1 -1
  178. package/dist/ui/toggle-buttons.mjs +1 -1
  179. package/dist/ui/toggle-group.cjs +1 -1
  180. package/dist/ui/toggle-group.mjs +1 -1
  181. package/dist/ui/toggle.cjs +1 -1
  182. package/dist/ui/toggle.mjs +1 -1
  183. package/dist/ui/toolbar.cjs +1 -1
  184. package/dist/ui/toolbar.mjs +1 -1
  185. package/dist/ui/tooltip.cjs +1 -1
  186. package/dist/ui/tooltip.mjs +1 -1
  187. package/dist/ui/tree-view/TreeSearchBar.cjs +1 -1
  188. package/dist/ui/tree-view/TreeSearchBar.mjs +1 -1
  189. package/dist/ui/tree-view/TreeView.cjs +1 -1
  190. package/dist/ui/tree-view/TreeView.mjs +1 -1
  191. package/dist/ui/tree-view/index.cjs +6 -6
  192. package/dist/ui/tree-view/index.mjs +2 -2
  193. package/dist/ui/tree-view-legacy.cjs +9 -9
  194. package/dist/ui/tree-view-legacy.mjs +5 -5
  195. package/dist/ui/waterfall/CursorOverlay.cjs +1 -1
  196. package/dist/ui/waterfall/CursorOverlay.mjs +1 -1
  197. package/dist/ui/waterfall/TimelineEvent.cjs +1 -1
  198. package/dist/ui/waterfall/TimelineEvent.mjs +1 -1
  199. package/dist/ui/waterfall/TimelineProcessBar.cjs +1 -1
  200. package/dist/ui/waterfall/TimelineProcessBar.mjs +1 -1
  201. package/dist/ui/waterfall/Wedges.cjs +1 -1
  202. package/dist/ui/waterfall/Wedges.mjs +1 -1
  203. package/dist/ui/waterfall/index.cjs +8 -8
  204. package/dist/ui/waterfall/index.mjs +7 -7
  205. package/package.json +28 -2
  206. package/src/SyncScroll/README.md +283 -0
  207. package/src/SyncScroll/SyncScroll.tsx +361 -0
  208. package/src/SyncScroll/index.ts +22 -0
  209. package/src/SyncScroll/useSyncScroll.tsx +226 -0
  210. package/src/cli/dial-cli.ts +1133 -0
  211. package/src/dial/DialPanel.tsx +208 -0
  212. package/src/dial/DialProvider.example.tsx +80 -0
  213. package/src/dial/DialProvider.tsx +138 -0
  214. package/src/dial/index.ts +26 -0
  215. package/src/dial/wrapped-inputs/ControlledInputs.tsx +176 -0
  216. package/src/dial/wrapped-inputs/DialInputs.tsx +401 -0
  217. package/src/dial/wrapped-inputs/DialVectorInput.tsx +125 -0
  218. package/src/dial/wrapped-inputs/index.ts +25 -0
  219. package/src/highlight-cursor/cursor-context.tsx +23 -0
  220. package/src/highlight-cursor/cursor-provider.tsx +264 -0
  221. package/src/highlight-cursor/enhanced-components.tsx +16 -0
  222. package/src/highlight-cursor/index.ts +21 -0
  223. package/src/highlight-cursor/tabs-cursor-context.tsx +121 -0
  224. package/src/highlight-cursor/types.ts +40 -0
  225. package/src/highlight-cursor/with-cursor.tsx +144 -0
  226. package/src/hooks/clientOnly.tsx +54 -0
  227. package/src/hooks/cn.ts +33 -0
  228. package/src/hooks/index.ts +9 -0
  229. package/src/hooks/useDocument.tsx +18 -0
  230. package/src/hooks/useDragSelect.ts +116 -0
  231. package/src/hooks/useIsMobile.ts +35 -0
  232. package/src/hooks/useLocalStorage.ts +122 -0
  233. package/src/hooks/useLocation.tsx +95 -0
  234. package/src/hooks/useQueryParams.tsx +31 -0
  235. package/src/hooks/useWindow.tsx +18 -0
  236. package/src/index.css +5 -0
  237. package/src/index.ts +5 -0
  238. package/src/styles/.editorconfig +0 -0
  239. package/src/styles/theme.css +152 -0
  240. package/src/styles/toast.css +67 -0
  241. package/src/styles/variables.css +229 -0
  242. package/src/ui/UIKitBadge.tsx +171 -0
  243. package/src/ui/avatar.tsx +221 -0
  244. package/src/ui/badge.tsx +74 -0
  245. package/src/ui/button.tsx +143 -0
  246. package/src/ui/card.tsx +146 -0
  247. package/src/ui/checkbox.tsx +78 -0
  248. package/src/ui/collapsible.tsx +43 -0
  249. package/src/ui/drag-selectable/DragSelectProvider.tsx +178 -0
  250. package/src/ui/drag-selectable/createSelectable.tsx +43 -0
  251. package/src/ui/drag-selectable/index.ts +2 -0
  252. package/src/ui/drawer.tsx +137 -0
  253. package/src/ui/dropdown.tsx +707 -0
  254. package/src/ui/icons/MouseCursorIcons.tsx +39 -0
  255. package/src/ui/icons/cursor.tsx +38 -0
  256. package/src/ui/icons/index.ts +2 -0
  257. package/src/ui/index.ts +45 -0
  258. package/src/ui/inputs/color-input.tsx +61 -0
  259. package/src/ui/inputs/index.tsx +5 -0
  260. package/src/ui/inputs/input-numbers.tsx +394 -0
  261. package/src/ui/inputs/input.tsx +155 -0
  262. package/src/ui/inputs/number-inputs/CmInput.tsx +26 -0
  263. package/src/ui/inputs/number-inputs/DegInput.tsx +26 -0
  264. package/src/ui/inputs/number-inputs/EulerDegInput.tsx +14 -0
  265. package/src/ui/inputs/number-inputs/EulerInput.tsx +30 -0
  266. package/src/ui/inputs/number-inputs/EulerRadInput.tsx +14 -0
  267. package/src/ui/inputs/number-inputs/InchInput.tsx +26 -0
  268. package/src/ui/inputs/number-inputs/IntInput.tsx +46 -0
  269. package/src/ui/inputs/number-inputs/KVectorInput.tsx +20 -0
  270. package/src/ui/inputs/number-inputs/QuaternionInput.tsx +27 -0
  271. package/src/ui/inputs/number-inputs/RadInput.tsx +26 -0
  272. package/src/ui/inputs/number-inputs/TimeInput.tsx +26 -0
  273. package/src/ui/inputs/number-inputs/Vec3Input.tsx +26 -0
  274. package/src/ui/inputs/number-inputs/VectorInput.tsx +38 -0
  275. package/src/ui/inputs/number-inputs/index.ts +38 -0
  276. package/src/ui/inputs/presets-input.tsx +59 -0
  277. package/src/ui/label.tsx +35 -0
  278. package/src/ui/layout.tsx +43 -0
  279. package/src/ui/layouts/dock-layout/DockLayoutView.tsx +128 -0
  280. package/src/ui/layouts/dock-layout/LayoutSlots.tsx +85 -0
  281. package/src/ui/layouts/dock-layout/index.tsx +2 -0
  282. package/src/ui/layouts/index.ts +2 -0
  283. package/src/ui/layouts/liquid-layout/LayoutSlots.tsx +82 -0
  284. package/src/ui/layouts/liquid-layout/LiquidLayoutView.tsx +76 -0
  285. package/src/ui/layouts/liquid-layout/index.ts +1 -0
  286. package/src/ui/modal.tsx +211 -0
  287. package/src/ui/navigation.tsx +86 -0
  288. package/src/ui/pagination.tsx +129 -0
  289. package/src/ui/panel.tsx +146 -0
  290. package/src/ui/popover.tsx +112 -0
  291. package/src/ui/radio-group.tsx +63 -0
  292. package/src/ui/resizable.tsx +52 -0
  293. package/src/ui/select.tsx +365 -0
  294. package/src/ui/separator.tsx +26 -0
  295. package/src/ui/sheet.tsx +257 -0
  296. package/src/ui/sidebar.tsx +695 -0
  297. package/src/ui/simple-tree-view.tsx +604 -0
  298. package/src/ui/skeleton.tsx +15 -0
  299. package/src/ui/slider.tsx +204 -0
  300. package/src/ui/switch.tsx +45 -0
  301. package/src/ui/table.tsx +99 -0
  302. package/src/ui/tabs.tsx +192 -0
  303. package/src/ui/textarea.tsx +55 -0
  304. package/src/ui/theme/ThemeProvider.tsx +319 -0
  305. package/src/ui/theme/ThemeToggles.tsx +84 -0
  306. package/src/ui/theme/index.ts +21 -0
  307. package/src/ui/theme/themeScript.tsx +179 -0
  308. package/src/ui/theme/types.ts +61 -0
  309. package/src/ui/toast.tsx +30 -0
  310. package/src/ui/toggle-buttons.tsx +290 -0
  311. package/src/ui/toggle-group.tsx +236 -0
  312. package/src/ui/toggle.tsx +94 -0
  313. package/src/ui/toolbar.tsx +54 -0
  314. package/src/ui/tooltip.tsx +171 -0
  315. package/src/ui/tree-view/TreeSearchBar.tsx +88 -0
  316. package/src/ui/tree-view/TreeView.tsx +232 -0
  317. package/src/ui/tree-view/hooks.tsx +289 -0
  318. package/src/ui/tree-view/index.ts +4 -0
  319. package/src/ui/tree-view/types.ts +23 -0
  320. package/src/ui/tree-view-legacy.tsx +644 -0
  321. package/src/ui/version-badge.tsx +0 -0
  322. package/src/ui/waterfall/CursorOverlay.tsx +96 -0
  323. package/src/ui/waterfall/NavigationControls.tsx +42 -0
  324. package/src/ui/waterfall/Tick.tsx +51 -0
  325. package/src/ui/waterfall/TimeRuleEventDot.tsx +19 -0
  326. package/src/ui/waterfall/TimelineEvent.tsx +60 -0
  327. package/src/ui/waterfall/TimelineProcessBar.tsx +207 -0
  328. package/src/ui/waterfall/Wedges.tsx +67 -0
  329. package/src/ui/waterfall/WheelZoomContext.tsx +128 -0
  330. package/src/ui/waterfall/hooks/useTimelineState.tsx +134 -0
  331. package/src/ui/waterfall/hooks/useViewport.tsx +293 -0
  332. package/src/ui/waterfall/index.tsx +326 -0
  333. package/src/ui/waterfall/types.ts +20 -0
  334. package/src/ui/waterfall/utils.ts +91 -0
  335. package/dist/chunk-W2YAQV5N.mjs +0 -57
  336. package/dist/{chunk-QLCEHV4Q.mjs → chunk-2OZK5DY5.mjs} +2 -2
  337. package/dist/{chunk-Z35DNFRZ.cjs → chunk-7IS37C3P.cjs} +2 -2
  338. package/dist/{chunk-4AOAH77D.mjs → chunk-A2PCEL5S.mjs} +2 -2
  339. package/dist/{chunk-K4VD5PPY.mjs → chunk-BIUDC66P.mjs} +1 -1
  340. package/dist/{chunk-RKJR6RZU.cjs → chunk-OYNLQTHW.cjs} +1 -1
  341. package/dist/{chunk-VE3XLQLO.cjs → chunk-QUFZWF4E.cjs} +2 -2
package/README.md CHANGED
@@ -64,15 +64,18 @@ export default function MyApp() {
64
64
 
65
65
  ## CLI Tools
66
66
 
67
- ### dial-cli
67
+ ### dial-cli - Dial Schema Generator
68
68
 
69
- The vuer-uikit package includes a CLI tool for generating dial metadata from React components with `@dial` annotations.
69
+ The vuer-uikit package includes `dial-cli`, a powerful CLI tool for generating dial metadata from TypeScript/React components with `@dial` annotations.
70
70
 
71
71
  #### Usage
72
72
 
73
- After installing `@vuer-ai/vuer-uikit`, you can use the `dial-cli` command:
73
+ After installing `@vuer-ai/vuer-uikit`, the `dial-cli` command is available via npx:
74
74
 
75
75
  ```bash
76
+ # Show version and git hash
77
+ npx dial-cli --version
78
+
76
79
  # Generate metadata for a single component
77
80
  npx dial-cli MyComponent.tsx
78
81
 
@@ -81,6 +84,18 @@ npx dial-cli -o ./metadata MyComponent.tsx
81
84
 
82
85
  # Process multiple files
83
86
  npx dial-cli Component1.tsx Component2.tsx Component3.tsx
87
+
88
+ # Get detailed help
89
+ npx dial-cli --help
90
+ ```
91
+
92
+ #### Running from Source (Development)
93
+
94
+ You can also run the TypeScript source directly without compilation:
95
+
96
+ ```bash
97
+ # Run directly using tsx
98
+ npx tsx node_modules/@vuer-ai/vuer-uikit/src/cli/dial-cli.ts --version
84
99
  ```
85
100
 
86
101
  #### @dial Annotations
@@ -88,25 +103,109 @@ npx dial-cli Component1.tsx Component2.tsx Component3.tsx
88
103
  The CLI parses JSDoc comments with `@dial` annotations to generate UI metadata:
89
104
 
90
105
  ```tsx
91
- interface Props {
106
+ interface BoxProps {
92
107
  /**
93
- * Position of the object
94
- * @dial-dtype vector
108
+ * Position in 3D space
109
+ * @dial transform
110
+ * @dial-dtype vector3
95
111
  * @dial-mins -10,-10,-10
96
112
  * @dial-maxs 10,10,10
97
113
  * @dial-steps 0.1,0.1,0.1
114
+ * @dial-icon Move3d
98
115
  */
99
116
  position: [number, number, number];
100
117
 
101
118
  /**
102
119
  * Visibility toggle
120
+ * @dial visibility
103
121
  * @dial-dtype boolean
122
+ * @dial-icon Eye
104
123
  */
105
124
  visible: boolean;
125
+
126
+ /**
127
+ * Rotation in degrees
128
+ * @dial transform
129
+ * @dial-dtype euler
130
+ * @dial-min 0
131
+ * @dial-max 360
132
+ * @dial-step 1
133
+ */
134
+ rotation: [number, number, number];
106
135
  }
107
136
  ```
108
137
 
109
- The CLI will generate JSON metadata files that can be used to automatically create UI controls for your components.
138
+ #### Available Annotations
139
+
140
+ **Grouping & Organization:**
141
+ - `@dial <group>` - Group related properties (transform, visibility, geometry, segments)
142
+ - `@dial-ignore` - Exclude property from schema generation
143
+
144
+ **Property Configuration:**
145
+ - `@dial-dtype <type>` - Data type (vector3, euler, boolean, int, string, etc.)
146
+ - `@dial-min <number>` - Minimum value for numeric inputs
147
+ - `@dial-max <number>` - Maximum value for numeric inputs
148
+ - `@dial-step <number>` - Step increment for numeric inputs
149
+ - `@dial-default <value>` - Default value (overrides component default)
150
+ - `@dial-options [...]` - Array of preset values
151
+ - `@dial-icon <name>` - Lucide icon name for the control
152
+
153
+ **Layout & Display:**
154
+ - `@dial-col-<n>` - Display in column layout with n columns
155
+ - `@dial-row-<n>` - Display in row layout with n items per row
156
+ - `@dial-label-<pos>` - Label position (left, right, top, bottom, inline)
157
+ - `@dial-no-wrap` - Prevent line wrapping
158
+
159
+ **Vector Types:**
160
+ - `@dial-mins <n,n,n>` - Comma-separated min values for vector elements
161
+ - `@dial-maxs <n,n,n>` - Comma-separated max values for vector elements
162
+ - `@dial-steps <n,n,n>` - Comma-separated step values for vector elements
163
+ - `@dial-dtypes <t,t,t>` - Comma-separated data types for vector elements
164
+ - `@dial-placeholders <x,y,z>` - Placeholder text for vector inputs
165
+ - `@dial-tooltips <tip1,tip2,tip3>` - Tooltips for vector elements
166
+
167
+ #### Output Files
168
+
169
+ The CLI generates three JSON files for each component:
170
+
171
+ - `*-raw.json` - Raw output from react-docgen-typescript
172
+ - `*-combined.json` - Enhanced metadata with dial schemas and type definitions
173
+ - `*-schemas.json` - Clean dial schemas ready for UI generation
174
+
175
+ #### CLI Options
176
+
177
+ ```
178
+ Options:
179
+ -o, --output <dir> Output directory (default: ./metadata)
180
+ -i, --ignore <prop> Properties to exclude (supports patterns)
181
+ -v, --version Show version and git hash
182
+ -h, --help Display help
183
+ --verbose Detailed output
184
+ --quiet Suppress output except errors
185
+ ```
186
+
187
+ #### Example Build Script
188
+
189
+ Create a script to automate metadata generation:
190
+
191
+ ```bash
192
+ #!/bin/bash
193
+ # generate-dial-metadata.sh
194
+
195
+ echo "Generating dial metadata..."
196
+
197
+ # Show version info
198
+ npx dial-cli --version
199
+
200
+ # Generate metadata for all components
201
+ npx dial-cli \
202
+ --output ./metadata \
203
+ src/components/*.tsx
204
+
205
+ echo "Metadata generation complete!"
206
+ ```
207
+
208
+ For more examples and documentation, visit [uikit.vuer.ai/dial](https://uikit.vuer.ai/dial)
110
209
 
111
210
  ## Customizing your theme
112
211
 
package/cli/dial-cli.js CHANGED
@@ -2,10 +2,44 @@
2
2
 
3
3
  // src/cli/dial-cli.ts
4
4
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
5
- import { basename, join, resolve } from "path";
5
+ import { basename, dirname, join, resolve } from "path";
6
6
  import { parseArgs } from "util";
7
+ import { fileURLToPath } from "url";
8
+ import { execSync } from "child_process";
7
9
  import * as docgen from "react-docgen-typescript";
8
10
  import * as ts from "typescript";
11
+ function getVersionInfo() {
12
+ try {
13
+ const __filename2 = fileURLToPath(import.meta.url);
14
+ const __dirname2 = dirname(__filename2);
15
+ const possiblePaths = [
16
+ resolve(__dirname2, "../package.json"),
17
+ // Built version: cli/dial-cli.js -> package.json
18
+ resolve(__dirname2, "../../package.json")
19
+ // Source version: src/cli/dial-cli.ts -> package.json
20
+ ];
21
+ let packageJson = null;
22
+ for (const path of possiblePaths) {
23
+ try {
24
+ if (existsSync(path)) {
25
+ packageJson = JSON.parse(readFileSync(path, "utf-8"));
26
+ break;
27
+ }
28
+ } catch {
29
+ }
30
+ }
31
+ const version = packageJson?.version || "unknown";
32
+ let gitHash;
33
+ try {
34
+ gitHash = execSync("git rev-parse --short HEAD", { encoding: "utf-8", cwd: dirname(__dirname2) }).trim();
35
+ } catch {
36
+ gitHash = void 0;
37
+ }
38
+ return { version, gitHash };
39
+ } catch (error) {
40
+ return { version: "unknown" };
41
+ }
42
+ }
9
43
  function parseTypeAlias(sourceFile, typeName) {
10
44
  let typeDefinition = null;
11
45
  function visit(node) {
@@ -530,7 +564,10 @@ async function processFile(filePath, outputDir, options, flags = {}) {
530
564
  });
531
565
  }
532
566
  }
533
- var HELP_TEXT = `
567
+ function getHelpText() {
568
+ const { version, gitHash } = getVersionInfo();
569
+ const versionString = gitHash ? `v${version} (${gitHash})` : `v${version}`;
570
+ return `
534
571
  dial-cli - Generate dial metadata from TypeScript/React components
535
572
 
536
573
  SYNOPSIS
@@ -658,11 +695,12 @@ SEE ALSO
658
695
  GitHub: https://github.com/vuer-ai/vuer-uikit
659
696
 
660
697
  VERSION
661
- dial-cli v1.0.0 (part of @vuer-ai/vuer-uikit)
698
+ dial-cli ${versionString} (part of @vuer-ai/vuer-uikit)
662
699
 
663
700
  AUTHORS
664
701
  Vuer AI Team <team@vuer.ai>
665
702
  `;
703
+ }
666
704
  async function main() {
667
705
  const { values, positionals } = parseArgs({
668
706
  args: process.argv.slice(2),
@@ -696,15 +734,17 @@ async function main() {
696
734
  allowPositionals: true
697
735
  });
698
736
  if (values.version) {
699
- console.log("dial-cli v1.0.0 (part of @vuer-ai/vuer-uikit)");
737
+ const { version, gitHash } = getVersionInfo();
738
+ const versionString = gitHash ? `v${version} (${gitHash})` : `v${version}`;
739
+ console.log(`dial-cli ${versionString} (part of @vuer-ai/vuer-uikit)`);
700
740
  process.exit(0);
701
741
  }
702
742
  if (values.help || positionals.length === 0) {
703
- console.log(HELP_TEXT);
743
+ console.log(getHelpText());
704
744
  process.exit(0);
705
745
  }
706
746
  if (positionals.length === 1 && (positionals[0] === "man" || positionals[0] === "help")) {
707
- console.log(HELP_TEXT);
747
+ console.log(getHelpText());
708
748
  process.exit(0);
709
749
  }
710
750
  const outputDir = resolve(process.cwd(), values.output);
@@ -746,7 +786,9 @@ async function main() {
746
786
  ignoreList
747
787
  };
748
788
  if (!flags.quiet) {
749
- console.log(`\u{1F680} Dial Documentation Generator`);
789
+ const { version, gitHash } = getVersionInfo();
790
+ const versionString = gitHash ? `v${version} (${gitHash})` : `v${version}`;
791
+ console.log(`\u{1F680} Dial Documentation Generator ${versionString}`);
750
792
  console.log(`\u{1F4C2} Output directory: ${outputDir}`);
751
793
  if (flags.verbose && ignoreList.length > 0) {
752
794
  console.log(`\u{1F6AB} Ignoring properties: ${ignoreList.join(", ")}`);
@@ -1,45 +1,45 @@
1
1
  'use strict';
2
2
 
3
- var chunkG5JZGNKY_cjs = require('../chunk-G5JZGNKY.cjs');
3
+ var chunkVBBJSIY7_cjs = require('../chunk-VBBJSIY7.cjs');
4
+ require('../chunk-G4FJGNY5.cjs');
4
5
  require('../chunk-QN4N4I3Z.cjs');
5
6
  require('../chunk-LYZJNEOR.cjs');
6
7
  require('../chunk-YZIR6LIY.cjs');
7
8
  require('../chunk-RPTRTGC2.cjs');
8
- require('../chunk-OHIB3TEN.cjs');
9
9
  require('../chunk-LBWMTA5T.cjs');
10
10
  require('../chunk-Q7E73DVJ.cjs');
11
11
  require('../chunk-JR4TVE43.cjs');
12
12
  require('../chunk-VXZURKMQ.cjs');
13
13
  require('../chunk-6BOWMGFG.cjs');
14
- require('../chunk-G4FJGNY5.cjs');
14
+ require('../chunk-OHIB3TEN.cjs');
15
15
 
16
16
 
17
17
 
18
18
  Object.defineProperty(exports, "SyncDrag", {
19
19
  enumerable: true,
20
- get: function () { return chunkG5JZGNKY_cjs.SyncDrag; }
20
+ get: function () { return chunkVBBJSIY7_cjs.SyncDrag; }
21
21
  });
22
22
  Object.defineProperty(exports, "SyncDragSlave", {
23
23
  enumerable: true,
24
- get: function () { return chunkG5JZGNKY_cjs.SyncDragSlave; }
24
+ get: function () { return chunkVBBJSIY7_cjs.SyncDragSlave; }
25
25
  });
26
26
  Object.defineProperty(exports, "SyncDragSlaveX", {
27
27
  enumerable: true,
28
- get: function () { return chunkG5JZGNKY_cjs.SyncDragSlaveX; }
28
+ get: function () { return chunkVBBJSIY7_cjs.SyncDragSlaveX; }
29
29
  });
30
30
  Object.defineProperty(exports, "SyncDragX", {
31
31
  enumerable: true,
32
- get: function () { return chunkG5JZGNKY_cjs.SyncDragX; }
32
+ get: function () { return chunkVBBJSIY7_cjs.SyncDragX; }
33
33
  });
34
34
  Object.defineProperty(exports, "SyncDragY", {
35
35
  enumerable: true,
36
- get: function () { return chunkG5JZGNKY_cjs.SyncDragY; }
36
+ get: function () { return chunkVBBJSIY7_cjs.SyncDragY; }
37
37
  });
38
38
  Object.defineProperty(exports, "SyncScroll", {
39
39
  enumerable: true,
40
- get: function () { return chunkG5JZGNKY_cjs.SyncScroll; }
40
+ get: function () { return chunkVBBJSIY7_cjs.SyncScroll; }
41
41
  });
42
42
  Object.defineProperty(exports, "SyncScrollSlave", {
43
43
  enumerable: true,
44
- get: function () { return chunkG5JZGNKY_cjs.SyncScrollSlave; }
44
+ get: function () { return chunkVBBJSIY7_cjs.SyncScrollSlave; }
45
45
  });
@@ -1,12 +1,12 @@
1
- export { SyncDrag, SyncDragSlave, SyncDragSlaveX, SyncDragX, SyncDragY, SyncScroll, SyncScrollSlave } from '../chunk-PDOFOJ4P.mjs';
1
+ export { SyncDrag, SyncDragSlave, SyncDragSlaveX, SyncDragX, SyncDragY, SyncScroll, SyncScrollSlave } from '../chunk-BEJIZ56L.mjs';
2
+ import '../chunk-SAGQV2YZ.mjs';
2
3
  import '../chunk-F7ZHPSLA.mjs';
3
4
  import '../chunk-OEIF3JCH.mjs';
4
5
  import '../chunk-VA4LUFKD.mjs';
5
6
  import '../chunk-4F2GSF2T.mjs';
6
- import '../chunk-HMN4IKTG.mjs';
7
7
  import '../chunk-IDUVYPN7.mjs';
8
8
  import '../chunk-3QT5VABC.mjs';
9
9
  import '../chunk-XHJDRQD7.mjs';
10
10
  import '../chunk-LQOPO4KU.mjs';
11
11
  import '../chunk-IZARTVYN.mjs';
12
- import '../chunk-SAGQV2YZ.mjs';
12
+ import '../chunk-HMN4IKTG.mjs';
@@ -1,48 +1,48 @@
1
1
  'use strict';
2
2
 
3
3
  require('../chunk-JMCH2AFN.cjs');
4
- var chunkG5JZGNKY_cjs = require('../chunk-G5JZGNKY.cjs');
4
+ var chunkVBBJSIY7_cjs = require('../chunk-VBBJSIY7.cjs');
5
+ var chunkG4FJGNY5_cjs = require('../chunk-G4FJGNY5.cjs');
5
6
  require('../chunk-QN4N4I3Z.cjs');
6
7
  require('../chunk-LYZJNEOR.cjs');
7
8
  require('../chunk-YZIR6LIY.cjs');
8
9
  require('../chunk-RPTRTGC2.cjs');
9
- require('../chunk-OHIB3TEN.cjs');
10
10
  require('../chunk-LBWMTA5T.cjs');
11
11
  require('../chunk-Q7E73DVJ.cjs');
12
12
  require('../chunk-JR4TVE43.cjs');
13
13
  require('../chunk-VXZURKMQ.cjs');
14
14
  require('../chunk-6BOWMGFG.cjs');
15
- var chunkG4FJGNY5_cjs = require('../chunk-G4FJGNY5.cjs');
15
+ require('../chunk-OHIB3TEN.cjs');
16
16
 
17
17
 
18
18
 
19
19
  Object.defineProperty(exports, "SyncDrag", {
20
20
  enumerable: true,
21
- get: function () { return chunkG5JZGNKY_cjs.SyncDrag; }
21
+ get: function () { return chunkVBBJSIY7_cjs.SyncDrag; }
22
22
  });
23
23
  Object.defineProperty(exports, "SyncDragSlave", {
24
24
  enumerable: true,
25
- get: function () { return chunkG5JZGNKY_cjs.SyncDragSlave; }
25
+ get: function () { return chunkVBBJSIY7_cjs.SyncDragSlave; }
26
26
  });
27
27
  Object.defineProperty(exports, "SyncDragSlaveX", {
28
28
  enumerable: true,
29
- get: function () { return chunkG5JZGNKY_cjs.SyncDragSlaveX; }
29
+ get: function () { return chunkVBBJSIY7_cjs.SyncDragSlaveX; }
30
30
  });
31
31
  Object.defineProperty(exports, "SyncDragX", {
32
32
  enumerable: true,
33
- get: function () { return chunkG5JZGNKY_cjs.SyncDragX; }
33
+ get: function () { return chunkVBBJSIY7_cjs.SyncDragX; }
34
34
  });
35
35
  Object.defineProperty(exports, "SyncDragY", {
36
36
  enumerable: true,
37
- get: function () { return chunkG5JZGNKY_cjs.SyncDragY; }
37
+ get: function () { return chunkVBBJSIY7_cjs.SyncDragY; }
38
38
  });
39
39
  Object.defineProperty(exports, "SyncScroll", {
40
40
  enumerable: true,
41
- get: function () { return chunkG5JZGNKY_cjs.SyncScroll; }
41
+ get: function () { return chunkVBBJSIY7_cjs.SyncScroll; }
42
42
  });
43
43
  Object.defineProperty(exports, "SyncScrollSlave", {
44
44
  enumerable: true,
45
- get: function () { return chunkG5JZGNKY_cjs.SyncScrollSlave; }
45
+ get: function () { return chunkVBBJSIY7_cjs.SyncScrollSlave; }
46
46
  });
47
47
  Object.defineProperty(exports, "SyncScrollProvider", {
48
48
  enumerable: true,
@@ -1,13 +1,13 @@
1
1
  import '../chunk-BNDRHLLZ.mjs';
2
- export { SyncDrag, SyncDragSlave, SyncDragSlaveX, SyncDragX, SyncDragY, SyncScroll, SyncScrollSlave } from '../chunk-PDOFOJ4P.mjs';
2
+ export { SyncDrag, SyncDragSlave, SyncDragSlaveX, SyncDragX, SyncDragY, SyncScroll, SyncScrollSlave } from '../chunk-BEJIZ56L.mjs';
3
+ export { SyncScrollProvider, useScrollSlave, useSyncDrag, useSyncScroll } from '../chunk-SAGQV2YZ.mjs';
3
4
  import '../chunk-F7ZHPSLA.mjs';
4
5
  import '../chunk-OEIF3JCH.mjs';
5
6
  import '../chunk-VA4LUFKD.mjs';
6
7
  import '../chunk-4F2GSF2T.mjs';
7
- import '../chunk-HMN4IKTG.mjs';
8
8
  import '../chunk-IDUVYPN7.mjs';
9
9
  import '../chunk-3QT5VABC.mjs';
10
10
  import '../chunk-XHJDRQD7.mjs';
11
11
  import '../chunk-LQOPO4KU.mjs';
12
12
  import '../chunk-IZARTVYN.mjs';
13
- export { SyncScrollProvider, useScrollSlave, useSyncDrag, useSyncScroll } from '../chunk-SAGQV2YZ.mjs';
13
+ import '../chunk-HMN4IKTG.mjs';
@@ -0,0 +1,62 @@
1
+ import { createContext, useContext, useState, useCallback, useMemo } from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ // src/dial/DialProvider.tsx
5
+ var DialSchemaContext = createContext(void 0);
6
+ var useDialSchema = () => {
7
+ const context = useContext(DialSchemaContext);
8
+ if (!context) {
9
+ throw new Error("useDialSchema must be used within a DialSchemaProvider");
10
+ }
11
+ return context;
12
+ };
13
+ var DialProvider = ({
14
+ children,
15
+ schemas,
16
+ initialValues = {},
17
+ values: controlledValues,
18
+ onValueChange
19
+ }) => {
20
+ const isControlled = controlledValues !== void 0;
21
+ const [internalValues, setInternalValues] = useState(() => {
22
+ const defaultValues = {};
23
+ schemas.forEach((schema) => {
24
+ defaultValues[schema.name] = initialValues[schema.name] ?? schema.value;
25
+ });
26
+ return defaultValues;
27
+ });
28
+ const values = isControlled ? controlledValues : internalValues;
29
+ const getValue = useCallback(
30
+ (name) => {
31
+ return values[name];
32
+ },
33
+ [values]
34
+ );
35
+ const setValue = useCallback(
36
+ (name, value) => {
37
+ if (isControlled) {
38
+ onValueChange?.(name, value);
39
+ } else {
40
+ setInternalValues((prev) => ({
41
+ ...prev,
42
+ [name]: value
43
+ }));
44
+ onValueChange?.(name, value);
45
+ }
46
+ },
47
+ [isControlled, onValueChange]
48
+ );
49
+ const contextValue = useMemo(
50
+ () => ({
51
+ values,
52
+ schemas,
53
+ getValue,
54
+ setValue,
55
+ onValueChange
56
+ }),
57
+ [values, schemas, getValue, setValue, onValueChange]
58
+ );
59
+ return /* @__PURE__ */ jsx(DialSchemaContext.Provider, { value: contextValue, children });
60
+ };
61
+
62
+ export { DialProvider, useDialSchema };