@vuer-ai/vuer-uikit 0.0.117 → 0.0.119

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 (394) hide show
  1. package/dist/SyncScroll/SyncScroll.cjs +10 -10
  2. package/dist/SyncScroll/SyncScroll.mjs +3 -3
  3. package/dist/SyncScroll/index.cjs +10 -10
  4. package/dist/SyncScroll/index.mjs +3 -3
  5. package/dist/auth/components/index.cjs +79 -79
  6. package/dist/auth/components/index.mjs +78 -78
  7. package/dist/auth/components/user-avatar/index.cjs +79 -79
  8. package/dist/auth/components/user-avatar/index.mjs +78 -78
  9. package/dist/auth/handler/get-session.d.cts +3 -1
  10. package/dist/auth/handler/get-session.d.ts +3 -1
  11. package/dist/auth/handler/get-sessions.d.cts +3 -1
  12. package/dist/auth/handler/get-sessions.d.ts +3 -1
  13. package/dist/auth/hooks/use-vuer-sessions.cjs +3 -3
  14. package/dist/auth/hooks/use-vuer-sessions.mjs +2 -2
  15. package/dist/auth/index.cjs +91 -91
  16. package/dist/auth/index.mjs +83 -83
  17. package/dist/auth/types.d.cts +3 -1
  18. package/dist/auth/types.d.ts +3 -1
  19. package/dist/auth/vuer-user-provider.cjs +3 -3
  20. package/dist/auth/vuer-user-provider.mjs +2 -2
  21. package/dist/{chunk-UEOHXPXT.mjs → chunk-24SOZV7S.mjs} +3 -3
  22. package/dist/{chunk-LNKZATCP.cjs → chunk-2CD4D2BR.cjs} +3 -3
  23. package/dist/{chunk-VXFUYV76.mjs → chunk-2DXJJLJL.mjs} +2 -1
  24. package/dist/{chunk-GD2LGCAN.mjs → chunk-2GXIGEKC.mjs} +2 -2
  25. package/dist/{chunk-6NSQLHKC.mjs → chunk-332A4MHC.mjs} +1 -1
  26. package/dist/{chunk-JH5NAW2V.mjs → chunk-3DIFS7CO.mjs} +1 -1
  27. package/dist/{chunk-ZDSN4IFT.mjs → chunk-3NIMV5PH.mjs} +1 -1
  28. package/dist/{chunk-UASPJ57U.cjs → chunk-3ZEQVODC.cjs} +2 -2
  29. package/dist/{chunk-YQ5KKJQ3.cjs → chunk-42WQWP6X.cjs} +8 -8
  30. package/dist/{chunk-X2A7TKER.cjs → chunk-42ZXL3KZ.cjs} +10 -10
  31. package/dist/{chunk-FRAD2Z2G.mjs → chunk-4BQPIY5Z.mjs} +1 -1
  32. package/dist/{chunk-ABLQ4QRY.mjs → chunk-4DSJ62TT.mjs} +1 -1
  33. package/dist/{chunk-AAFU2FII.mjs → chunk-4ODJAEOM.mjs} +1 -1
  34. package/dist/{chunk-7DFI7CUK.cjs → chunk-4OUQ6NSX.cjs} +2 -2
  35. package/dist/{chunk-ROY7233C.cjs → chunk-4PMXRQXC.cjs} +6 -6
  36. package/dist/{chunk-2XKTKHA7.mjs → chunk-4TYIH6V3.mjs} +260 -94
  37. package/dist/{chunk-4PKPCOAF.cjs → chunk-5AKVDZMA.cjs} +12 -12
  38. package/dist/{chunk-VQP3QBC6.cjs → chunk-5OZS5UJX.cjs} +7 -7
  39. package/dist/{chunk-KOMVGDDW.cjs → chunk-66NKH2SV.cjs} +6 -6
  40. package/dist/{chunk-AUENXQXS.mjs → chunk-6C53NKMF.mjs} +1 -1
  41. package/dist/{chunk-GPUZJ6OU.cjs → chunk-6D7FGGSX.cjs} +24 -24
  42. package/dist/{chunk-MFPN6MWK.cjs → chunk-6WH6PWTJ.cjs} +9 -9
  43. package/dist/chunk-6YMDD5CU.mjs +22 -0
  44. package/dist/{chunk-Q2HC5ZL4.cjs → chunk-7AAMQGY2.cjs} +7 -7
  45. package/dist/{chunk-WQCVK4PG.mjs → chunk-7ACZU3BT.mjs} +1 -1
  46. package/dist/{chunk-4GVFCQGI.cjs → chunk-7AEOJFD4.cjs} +2 -2
  47. package/dist/{chunk-YTV7747H.mjs → chunk-7AZ3PLUC.mjs} +1 -1
  48. package/dist/{chunk-YXFHJKNW.cjs → chunk-7H7U2X45.cjs} +8 -8
  49. package/dist/{chunk-7NOBQH7O.mjs → chunk-A6EASR27.mjs} +1 -1
  50. package/dist/{chunk-BCA45QEW.mjs → chunk-AE5YDMFT.mjs} +3 -3
  51. package/dist/{chunk-SA5WKLYB.mjs → chunk-AHD46BFN.mjs} +1 -1
  52. package/dist/{chunk-JABKC5VJ.mjs → chunk-ARAMXRUE.mjs} +3 -3
  53. package/dist/{chunk-6IXKC64S.cjs → chunk-ASZIBFA6.cjs} +40 -16
  54. package/dist/{chunk-VMJHHONS.mjs → chunk-B7PLWNPX.mjs} +7 -7
  55. package/dist/{chunk-2SWBXWLK.mjs → chunk-BQA24G2A.mjs} +1 -1
  56. package/dist/{chunk-HA6M4XKT.cjs → chunk-BUAWPPXA.cjs} +11 -11
  57. package/dist/{chunk-DWWM2TV3.mjs → chunk-BXZSWY4N.mjs} +1 -1
  58. package/dist/{chunk-M45UXJWX.cjs → chunk-CH3BSVL4.cjs} +2 -2
  59. package/dist/{chunk-JY5TZBRK.mjs → chunk-CIOLL5LX.mjs} +1 -1
  60. package/dist/{chunk-2MSGENAQ.cjs → chunk-CKGEV2JL.cjs} +2 -2
  61. package/dist/{chunk-GBERXSLI.cjs → chunk-CR6JOOO3.cjs} +2 -2
  62. package/dist/{chunk-OHIB3TEN.cjs → chunk-CRX2ZCM2.cjs} +3 -5
  63. package/dist/{chunk-Y3V6IUAR.mjs → chunk-CXPF274N.mjs} +1 -1
  64. package/dist/{chunk-PJJSHHL6.mjs → chunk-D562KO2I.mjs} +2 -2
  65. package/dist/{chunk-SLO45OO5.cjs → chunk-DAA2GQAS.cjs} +27 -27
  66. package/dist/{chunk-ZGS3VGGN.cjs → chunk-DAVMLI3P.cjs} +4 -4
  67. package/dist/{chunk-IZUSQ4GI.mjs → chunk-DDIB73SZ.mjs} +4 -4
  68. package/dist/{chunk-SWJHOFZH.mjs → chunk-DDU3SPCC.mjs} +2 -2
  69. package/dist/{chunk-YO6X755G.cjs → chunk-DM43KZU7.cjs} +2 -2
  70. package/dist/{chunk-LY6QSDSC.cjs → chunk-DYLDZJQC.cjs} +4 -4
  71. package/dist/{chunk-BFFOS7Z3.cjs → chunk-EBFPZBUQ.cjs} +8 -10
  72. package/dist/{chunk-V3VUFIG3.cjs → chunk-EEYL7PDI.cjs} +3 -3
  73. package/dist/{chunk-JRBTIFM6.mjs → chunk-EGIIZWP3.mjs} +1 -1
  74. package/dist/{chunk-HAVTMZR3.cjs → chunk-EK3BTKZP.cjs} +10 -10
  75. package/dist/{chunk-MGFG7EXC.mjs → chunk-EVBYVJTW.mjs} +32 -8
  76. package/dist/{chunk-A5VRTIX4.cjs → chunk-EXXV3BXT.cjs} +7 -7
  77. package/dist/{chunk-OWGKZAOO.mjs → chunk-EXY6WRH4.mjs} +1 -1
  78. package/dist/{chunk-TYZHIBYI.cjs → chunk-EY6PKK4X.cjs} +2 -2
  79. package/dist/{chunk-OQASTSIX.cjs → chunk-F2LEYFWW.cjs} +5 -5
  80. package/dist/{chunk-WB43VEZA.cjs → chunk-F3HOBNGR.cjs} +4 -4
  81. package/dist/{chunk-CO6EASQO.mjs → chunk-FMKD5JBL.mjs} +1 -1
  82. package/dist/{chunk-NIEFMP5V.cjs → chunk-FZAGJSW2.cjs} +2 -2
  83. package/dist/{chunk-SMIACO56.mjs → chunk-G5VBLDAM.mjs} +1 -1
  84. package/dist/{chunk-L3YEIRJS.mjs → chunk-GQYUSBSO.mjs} +1 -1
  85. package/dist/{chunk-VJN3GGLZ.cjs → chunk-GTBXRWCK.cjs} +3 -3
  86. package/dist/{chunk-PTBMSYQQ.mjs → chunk-H6JGIEAU.mjs} +1 -1
  87. package/dist/{chunk-Q5PJKBX7.cjs → chunk-HB65PF7F.cjs} +2 -2
  88. package/dist/{chunk-KJH46JR3.mjs → chunk-IAFCABPY.mjs} +1 -1
  89. package/dist/{chunk-L6LCOLOV.cjs → chunk-IPMQ63BJ.cjs} +9 -9
  90. package/dist/{chunk-4JAEMFDN.mjs → chunk-IPQU5CJD.mjs} +1 -1
  91. package/dist/{chunk-L2YLNWCQ.cjs → chunk-IU65XB2K.cjs} +2 -2
  92. package/dist/{chunk-ZRMDDK6J.mjs → chunk-JFPIUDGT.mjs} +1 -1
  93. package/dist/{chunk-TBYGQV5D.cjs → chunk-JNV3UBBP.cjs} +3 -3
  94. package/dist/{chunk-B55SNJJM.cjs → chunk-JOOURIX7.cjs} +4 -4
  95. package/dist/{chunk-6AWED2ZK.cjs → chunk-JQYMF2FW.cjs} +4 -4
  96. package/dist/{chunk-4FLE5S5Z.mjs → chunk-JW456O5K.mjs} +1 -1
  97. package/dist/{chunk-RQH7ZAWF.cjs → chunk-JYYAGDLZ.cjs} +2 -2
  98. package/dist/{chunk-VEE2QBS5.cjs → chunk-K2BQNNEX.cjs} +8 -8
  99. package/dist/{chunk-N6DSPSMM.mjs → chunk-K2ZYSKRU.mjs} +1 -1
  100. package/dist/{chunk-33ZPFZLH.cjs → chunk-KIZ7WH7H.cjs} +46 -46
  101. package/dist/{chunk-KT772L2I.cjs → chunk-KQW3YARN.cjs} +9 -9
  102. package/dist/{chunk-MHJM7YMG.mjs → chunk-KY2PYKDZ.mjs} +1 -1
  103. package/dist/{chunk-YI25WVCY.cjs → chunk-L2XJ5Q7T.cjs} +23 -23
  104. package/dist/{chunk-LI5W744D.cjs → chunk-LGFWHV23.cjs} +2 -2
  105. package/dist/{chunk-EO4GM3KH.mjs → chunk-LMYA5IOK.mjs} +12 -8
  106. package/dist/{chunk-SU57ZAZJ.cjs → chunk-LVIZRMYN.cjs} +2 -2
  107. package/dist/{chunk-H3HQ27FG.cjs → chunk-LYGYXV7S.cjs} +16 -16
  108. package/dist/{chunk-M6JLGVJ7.mjs → chunk-MFYDZKQF.mjs} +1 -1
  109. package/dist/{chunk-B53A4WNW.mjs → chunk-MJOD2WOC.mjs} +1 -1
  110. package/dist/{chunk-O7FGA5N2.mjs → chunk-MK2CWAFC.mjs} +5 -5
  111. package/dist/{chunk-HS4MWXGK.cjs → chunk-MNCBTS63.cjs} +5 -5
  112. package/dist/{chunk-AW6Q4IWT.cjs → chunk-MXGPFCLN.cjs} +2 -2
  113. package/dist/{chunk-BLU6XYCT.mjs → chunk-MYZHDWBF.mjs} +10 -10
  114. package/dist/{chunk-LUVD54GO.cjs → chunk-N4Y5CBOI.cjs} +4 -4
  115. package/dist/{chunk-L5JZRGNH.cjs → chunk-ND3WJ63Z.cjs} +2 -2
  116. package/dist/{chunk-2SFB7HHW.mjs → chunk-NJWKR5WR.mjs} +1 -1
  117. package/dist/{chunk-7NUXYKXU.cjs → chunk-NKGUQZTD.cjs} +2 -2
  118. package/dist/chunk-O66LWOQY.cjs +44 -0
  119. package/dist/{chunk-P3QGZWFW.mjs → chunk-OJOWMXXY.mjs} +3 -3
  120. package/dist/{chunk-AZBJB6KC.mjs → chunk-OLYHHP67.mjs} +1 -1
  121. package/dist/{chunk-7XXTMBF5.mjs → chunk-P3YSHGT5.mjs} +1 -1
  122. package/dist/{chunk-S6PSU47F.mjs → chunk-PR3BCKLJ.mjs} +2 -2
  123. package/dist/{chunk-NZOZ3KKM.cjs → chunk-PV6CEMTT.cjs} +4 -4
  124. package/dist/{chunk-VQPJ7TLB.mjs → chunk-Q37KC3CL.mjs} +1 -1
  125. package/dist/{chunk-HNTVTCNX.cjs → chunk-Q7WCKEXG.cjs} +2 -2
  126. package/dist/{chunk-6D66V6ON.cjs → chunk-QBAZ6TKZ.cjs} +2 -2
  127. package/dist/{chunk-BCBWIMPS.mjs → chunk-QO2AM6MF.mjs} +1 -1
  128. package/dist/{chunk-5MNZYCN2.cjs → chunk-QWBMDS3S.cjs} +5 -5
  129. package/dist/{chunk-5PDZWPUI.cjs → chunk-R4HT3SYR.cjs} +2 -2
  130. package/dist/{chunk-3TZL7ET3.cjs → chunk-R5UREEMP.cjs} +5 -5
  131. package/dist/{chunk-ZEBAIL6F.mjs → chunk-REZAPK6Z.mjs} +1 -1
  132. package/dist/{chunk-NRQJX772.mjs → chunk-RGOZPSTI.mjs} +1 -1
  133. package/dist/{chunk-25RDJXX7.mjs → chunk-RLTLA7VS.mjs} +1 -1
  134. package/dist/{chunk-LBGZKACW.cjs → chunk-RTYZO2AC.cjs} +7 -7
  135. package/dist/{chunk-TUYG6BYZ.cjs → chunk-RW4T7UBU.cjs} +3 -3
  136. package/dist/{chunk-2J75MYQA.cjs → chunk-S37MJNNP.cjs} +2 -2
  137. package/dist/{chunk-UULSGVNF.cjs → chunk-S7CCCMMU.cjs} +7 -7
  138. package/dist/{chunk-5VUM46YD.cjs → chunk-SAXISARG.cjs} +2 -2
  139. package/dist/{chunk-TZBOF3XO.mjs → chunk-SCUMWMIN.mjs} +1 -1
  140. package/dist/{chunk-ZXIKMZPH.cjs → chunk-SL5Q54AH.cjs} +7 -2
  141. package/dist/{chunk-VADHV4S3.cjs → chunk-SLXM4F24.cjs} +9 -9
  142. package/dist/{chunk-XMQULAAU.mjs → chunk-SMXN2KOV.mjs} +1 -1
  143. package/dist/{chunk-PNYJJGBP.mjs → chunk-SRZ56OJH.mjs} +3 -3
  144. package/dist/{chunk-PDOFOJ4P.mjs → chunk-T4U3BG2V.mjs} +1 -1
  145. package/dist/{chunk-HMN4IKTG.mjs → chunk-T66ETI7E.mjs} +3 -5
  146. package/dist/{chunk-YKHK6C4Q.mjs → chunk-TQKX345P.mjs} +1 -1
  147. package/dist/{chunk-2X6CAFVD.mjs → chunk-TWQONYWC.mjs} +3 -5
  148. package/dist/{chunk-3LO3AM25.mjs → chunk-U22YVR7M.mjs} +1 -1
  149. package/dist/{chunk-EKPJUR3U.cjs → chunk-U5W4ZALG.cjs} +6 -6
  150. package/dist/{chunk-WGWNYPXW.mjs → chunk-UIJEAY6H.mjs} +1 -1
  151. package/dist/{chunk-XURKXOZK.cjs → chunk-UK3UBVT4.cjs} +12 -12
  152. package/dist/{chunk-O5S6UXNN.cjs → chunk-UMGNAR3W.cjs} +17 -13
  153. package/dist/{chunk-KTDRY3OW.mjs → chunk-UQQBUPGF.mjs} +1 -1
  154. package/dist/{chunk-SYT2AQ2Z.cjs → chunk-UUV46MDU.cjs} +311 -145
  155. package/dist/{chunk-4LQDOYQJ.cjs → chunk-V75PKBIV.cjs} +9 -9
  156. package/dist/{chunk-2YAC2EMY.cjs → chunk-VSIOXWSI.cjs} +2 -1
  157. package/dist/{chunk-NHG2ROYB.mjs → chunk-VTW2DF63.mjs} +1 -1
  158. package/dist/{chunk-MDUGPQEK.mjs → chunk-VWVYCQWF.mjs} +1 -1
  159. package/dist/{chunk-G5JZGNKY.cjs → chunk-W3IHFG4B.cjs} +8 -8
  160. package/dist/{chunk-GE2OIKIH.mjs → chunk-WDS3VL7E.mjs} +4 -4
  161. package/dist/{chunk-S5XJOGB4.cjs → chunk-WDSOII5A.cjs} +2 -2
  162. package/dist/{chunk-Y6WGGVT2.mjs → chunk-WHV6Z7YX.mjs} +1 -1
  163. package/dist/{chunk-ECOYNCWG.mjs → chunk-WKK5UX2W.mjs} +2 -2
  164. package/dist/{chunk-SPNDWTSX.cjs → chunk-X6WOCNBX.cjs} +2 -2
  165. package/dist/{chunk-BBWT5YO2.mjs → chunk-XQ3MWA3D.mjs} +3 -3
  166. package/dist/{chunk-QHAGQCVF.cjs → chunk-XS5IUI62.cjs} +3 -3
  167. package/dist/{chunk-AGHIJQAR.mjs → chunk-XTLGNJIO.mjs} +1 -1
  168. package/dist/{chunk-H2AJ2CLT.mjs → chunk-Y2XVZEXM.mjs} +1 -1
  169. package/dist/{chunk-ACETEVZD.mjs → chunk-ZA7WOIIB.mjs} +1 -1
  170. package/dist/{chunk-KS5A3G7B.mjs → chunk-ZCSJGDX7.mjs} +1 -1
  171. package/dist/chunk-ZF435JZL.cjs +21 -0
  172. package/dist/{chunk-Z4ZGX3NM.mjs → chunk-ZJSL6HSL.mjs} +1 -1
  173. package/dist/{chunk-IR334P7F.mjs → chunk-ZSAPBZ36.mjs} +1 -1
  174. package/dist/{chunk-L4CIN7FR.mjs → chunk-ZTGJIGBC.mjs} +7 -2
  175. package/dist/dial/DialPanel.cjs +82 -81
  176. package/dist/dial/DialPanel.mjs +81 -80
  177. package/dist/dial/DialProvider.cjs +3 -3
  178. package/dist/dial/DialProvider.d.cts +1 -1
  179. package/dist/dial/DialProvider.d.ts +1 -1
  180. package/dist/dial/DialProvider.example.cjs +4 -4
  181. package/dist/dial/DialProvider.example.mjs +1 -1
  182. package/dist/dial/DialProvider.mjs +1 -1
  183. package/dist/dial/IconRenderer.cjs +10 -0
  184. package/dist/dial/IconRenderer.d.cts +10 -0
  185. package/dist/dial/IconRenderer.d.ts +10 -0
  186. package/dist/dial/IconRenderer.mjs +1 -0
  187. package/dist/dial/index.cjs +104 -99
  188. package/dist/dial/index.d.cts +1 -0
  189. package/dist/dial/index.d.ts +1 -0
  190. package/dist/dial/index.mjs +81 -80
  191. package/dist/dial/wrapped-inputs/ControlledInputs.cjs +86 -85
  192. package/dist/dial/wrapped-inputs/ControlledInputs.d.cts +1 -0
  193. package/dist/dial/wrapped-inputs/ControlledInputs.d.ts +1 -0
  194. package/dist/dial/wrapped-inputs/ControlledInputs.mjs +81 -80
  195. package/dist/dial/wrapped-inputs/DialInputs.cjs +95 -94
  196. package/dist/dial/wrapped-inputs/DialInputs.d.cts +3 -0
  197. package/dist/dial/wrapped-inputs/DialInputs.d.ts +3 -0
  198. package/dist/dial/wrapped-inputs/DialInputs.mjs +81 -80
  199. package/dist/dial/wrapped-inputs/DialPresetsInput.cjs +79 -78
  200. package/dist/dial/wrapped-inputs/DialPresetsInput.d.cts +1 -0
  201. package/dist/dial/wrapped-inputs/DialPresetsInput.d.ts +1 -0
  202. package/dist/dial/wrapped-inputs/DialPresetsInput.mjs +78 -77
  203. package/dist/dial/wrapped-inputs/DialVectorInput.cjs +82 -81
  204. package/dist/dial/wrapped-inputs/DialVectorInput.d.cts +3 -1
  205. package/dist/dial/wrapped-inputs/DialVectorInput.d.ts +3 -1
  206. package/dist/dial/wrapped-inputs/DialVectorInput.mjs +81 -80
  207. package/dist/dial/wrapped-inputs/index.cjs +102 -101
  208. package/dist/dial/wrapped-inputs/index.mjs +81 -80
  209. package/dist/highlight-cursor/cursor-provider.cjs +3 -3
  210. package/dist/highlight-cursor/cursor-provider.mjs +2 -2
  211. package/dist/highlight-cursor/enhanced-components.cjs +13 -13
  212. package/dist/highlight-cursor/enhanced-components.mjs +8 -8
  213. package/dist/highlight-cursor/index.cjs +18 -18
  214. package/dist/highlight-cursor/index.mjs +9 -9
  215. package/dist/hooks/cn.cjs +2 -2
  216. package/dist/hooks/cn.mjs +1 -1
  217. package/dist/hooks/index.cjs +7 -7
  218. package/dist/hooks/index.mjs +2 -2
  219. package/dist/index.cjs +403 -398
  220. package/dist/index.css +12 -12
  221. package/dist/index.d.cts +1 -0
  222. package/dist/index.d.ts +1 -0
  223. package/dist/index.mjs +81 -80
  224. package/dist/ui/DialBadge.cjs +7 -7
  225. package/dist/ui/DialBadge.mjs +3 -3
  226. package/dist/ui/UIKitBadge.cjs +7 -7
  227. package/dist/ui/UIKitBadge.mjs +3 -3
  228. package/dist/ui/avatar.cjs +7 -7
  229. package/dist/ui/avatar.mjs +3 -3
  230. package/dist/ui/badge.cjs +5 -5
  231. package/dist/ui/badge.mjs +3 -3
  232. package/dist/ui/button.cjs +5 -5
  233. package/dist/ui/button.mjs +3 -3
  234. package/dist/ui/card.cjs +10 -10
  235. package/dist/ui/card.mjs +3 -3
  236. package/dist/ui/checkbox.cjs +4 -4
  237. package/dist/ui/checkbox.mjs +3 -3
  238. package/dist/ui/collapsible.cjs +6 -6
  239. package/dist/ui/collapsible.mjs +3 -3
  240. package/dist/ui/drawer.cjs +13 -13
  241. package/dist/ui/drawer.mjs +3 -3
  242. package/dist/ui/dropdown.cjs +18 -18
  243. package/dist/ui/dropdown.mjs +3 -3
  244. package/dist/ui/index.cjs +347 -347
  245. package/dist/ui/index.mjs +75 -75
  246. package/dist/ui/inputs/color-input.cjs +5 -5
  247. package/dist/ui/inputs/color-input.mjs +4 -4
  248. package/dist/ui/inputs/index.cjs +55 -55
  249. package/dist/ui/inputs/index.mjs +22 -22
  250. package/dist/ui/inputs/input-numbers.cjs +5 -5
  251. package/dist/ui/inputs/input-numbers.d.cts +3 -1
  252. package/dist/ui/inputs/input-numbers.d.ts +3 -1
  253. package/dist/ui/inputs/input-numbers.mjs +4 -4
  254. package/dist/ui/inputs/input.cjs +6 -6
  255. package/dist/ui/inputs/input.mjs +3 -3
  256. package/dist/ui/inputs/number-inputs/CmInput.cjs +6 -6
  257. package/dist/ui/inputs/number-inputs/CmInput.mjs +5 -5
  258. package/dist/ui/inputs/number-inputs/DegInput.cjs +6 -6
  259. package/dist/ui/inputs/number-inputs/DegInput.mjs +5 -5
  260. package/dist/ui/inputs/number-inputs/EulerDegInput.cjs +8 -8
  261. package/dist/ui/inputs/number-inputs/EulerDegInput.mjs +7 -7
  262. package/dist/ui/inputs/number-inputs/EulerInput.cjs +7 -7
  263. package/dist/ui/inputs/number-inputs/EulerInput.mjs +6 -6
  264. package/dist/ui/inputs/number-inputs/EulerRadInput.cjs +7 -7
  265. package/dist/ui/inputs/number-inputs/EulerRadInput.mjs +6 -6
  266. package/dist/ui/inputs/number-inputs/InchInput.cjs +6 -6
  267. package/dist/ui/inputs/number-inputs/InchInput.mjs +5 -5
  268. package/dist/ui/inputs/number-inputs/IntInput.cjs +6 -6
  269. package/dist/ui/inputs/number-inputs/IntInput.mjs +5 -5
  270. package/dist/ui/inputs/number-inputs/KVectorInput.cjs +7 -7
  271. package/dist/ui/inputs/number-inputs/KVectorInput.mjs +6 -6
  272. package/dist/ui/inputs/number-inputs/QuaternionInput.cjs +7 -7
  273. package/dist/ui/inputs/number-inputs/QuaternionInput.mjs +6 -6
  274. package/dist/ui/inputs/number-inputs/RadInput.cjs +6 -6
  275. package/dist/ui/inputs/number-inputs/RadInput.mjs +5 -5
  276. package/dist/ui/inputs/number-inputs/TimeInput.cjs +6 -6
  277. package/dist/ui/inputs/number-inputs/TimeInput.mjs +5 -5
  278. package/dist/ui/inputs/number-inputs/Vec3Input.cjs +7 -7
  279. package/dist/ui/inputs/number-inputs/Vec3Input.mjs +6 -6
  280. package/dist/ui/inputs/number-inputs/VectorInput.cjs +6 -6
  281. package/dist/ui/inputs/number-inputs/VectorInput.mjs +5 -5
  282. package/dist/ui/inputs/number-inputs/index.cjs +42 -42
  283. package/dist/ui/inputs/number-inputs/index.mjs +17 -17
  284. package/dist/ui/inputs/presets-input.cjs +7 -7
  285. package/dist/ui/inputs/presets-input.mjs +6 -6
  286. package/dist/ui/inputs/presets-rad-input.cjs +8 -8
  287. package/dist/ui/inputs/presets-rad-input.mjs +7 -7
  288. package/dist/ui/inputs/text-input.cjs +5 -5
  289. package/dist/ui/inputs/text-input.mjs +4 -4
  290. package/dist/ui/label.cjs +4 -4
  291. package/dist/ui/label.mjs +3 -3
  292. package/dist/ui/layout.cjs +4 -4
  293. package/dist/ui/layout.mjs +3 -3
  294. package/dist/ui/layouts/dock-layout/DockLayoutView.cjs +5 -5
  295. package/dist/ui/layouts/dock-layout/DockLayoutView.mjs +4 -4
  296. package/dist/ui/layouts/dock-layout/LayoutSlots.cjs +9 -9
  297. package/dist/ui/layouts/dock-layout/LayoutSlots.mjs +3 -3
  298. package/dist/ui/layouts/dock-layout/index.cjs +11 -11
  299. package/dist/ui/layouts/dock-layout/index.mjs +4 -4
  300. package/dist/ui/layouts/index.cjs +15 -15
  301. package/dist/ui/layouts/index.mjs +7 -7
  302. package/dist/ui/layouts/liquid-layout/LayoutSlots.cjs +9 -9
  303. package/dist/ui/layouts/liquid-layout/LayoutSlots.mjs +3 -3
  304. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.cjs +5 -5
  305. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.mjs +4 -4
  306. package/dist/ui/layouts/liquid-layout/index.cjs +5 -5
  307. package/dist/ui/layouts/liquid-layout/index.mjs +4 -4
  308. package/dist/ui/modal.cjs +13 -13
  309. package/dist/ui/modal.mjs +3 -3
  310. package/dist/ui/navigation.cjs +5 -5
  311. package/dist/ui/navigation.mjs +4 -4
  312. package/dist/ui/pagination.cjs +11 -11
  313. package/dist/ui/pagination.mjs +4 -4
  314. package/dist/ui/popover.cjs +7 -7
  315. package/dist/ui/popover.mjs +3 -3
  316. package/dist/ui/progress.cjs +4 -4
  317. package/dist/ui/progress.mjs +3 -3
  318. package/dist/ui/radio-group.cjs +5 -5
  319. package/dist/ui/radio-group.mjs +3 -3
  320. package/dist/ui/resizable.cjs +6 -6
  321. package/dist/ui/resizable.mjs +3 -3
  322. package/dist/ui/select.cjs +14 -14
  323. package/dist/ui/select.mjs +3 -3
  324. package/dist/ui/separator.cjs +4 -4
  325. package/dist/ui/separator.mjs +3 -3
  326. package/dist/ui/sheet.cjs +11 -11
  327. package/dist/ui/sheet.mjs +3 -3
  328. package/dist/ui/sidebar.cjs +33 -33
  329. package/dist/ui/sidebar.mjs +9 -9
  330. package/dist/ui/simple-tree-view.cjs +4 -4
  331. package/dist/ui/simple-tree-view.mjs +3 -3
  332. package/dist/ui/skeleton.cjs +4 -4
  333. package/dist/ui/skeleton.mjs +3 -3
  334. package/dist/ui/slider.cjs +4 -4
  335. package/dist/ui/slider.mjs +3 -3
  336. package/dist/ui/switch.cjs +4 -4
  337. package/dist/ui/switch.mjs +3 -3
  338. package/dist/ui/table.cjs +11 -11
  339. package/dist/ui/table.mjs +3 -3
  340. package/dist/ui/tabs.cjs +7 -7
  341. package/dist/ui/tabs.mjs +3 -3
  342. package/dist/ui/textarea.cjs +4 -4
  343. package/dist/ui/textarea.mjs +3 -3
  344. package/dist/ui/theme/ThemeToggles.cjs +8 -8
  345. package/dist/ui/theme/ThemeToggles.mjs +5 -5
  346. package/dist/ui/theme/index.cjs +8 -8
  347. package/dist/ui/theme/index.mjs +5 -5
  348. package/dist/ui/toggle-buttons.cjs +8 -8
  349. package/dist/ui/toggle-buttons.mjs +3 -3
  350. package/dist/ui/toggle-group.cjs +6 -6
  351. package/dist/ui/toggle-group.mjs +3 -3
  352. package/dist/ui/toggle.cjs +5 -5
  353. package/dist/ui/toggle.mjs +3 -3
  354. package/dist/ui/toolbar.cjs +6 -6
  355. package/dist/ui/toolbar.mjs +3 -3
  356. package/dist/ui/tooltip.cjs +7 -7
  357. package/dist/ui/tooltip.mjs +3 -3
  358. package/dist/ui/tree-view/TreeSearchBar.cjs +6 -6
  359. package/dist/ui/tree-view/TreeSearchBar.mjs +5 -5
  360. package/dist/ui/tree-view/TreeView.cjs +5 -5
  361. package/dist/ui/tree-view/TreeView.mjs +3 -3
  362. package/dist/ui/tree-view/index.cjs +17 -17
  363. package/dist/ui/tree-view/index.mjs +7 -7
  364. package/dist/ui/tree-view-legacy.cjs +10 -10
  365. package/dist/ui/tree-view-legacy.mjs +6 -6
  366. package/dist/ui/waterfall/CursorOverlay.cjs +4 -4
  367. package/dist/ui/waterfall/CursorOverlay.mjs +3 -3
  368. package/dist/ui/waterfall/TimelineEvent.cjs +4 -4
  369. package/dist/ui/waterfall/TimelineEvent.mjs +3 -3
  370. package/dist/ui/waterfall/TimelineProcessBar.cjs +4 -4
  371. package/dist/ui/waterfall/TimelineProcessBar.mjs +3 -3
  372. package/dist/ui/waterfall/Wedges.cjs +5 -5
  373. package/dist/ui/waterfall/Wedges.mjs +3 -3
  374. package/dist/ui/waterfall/index.cjs +14 -14
  375. package/dist/ui/waterfall/index.mjs +13 -13
  376. package/package.json +1 -1
  377. package/src/auth/types.ts +1 -1
  378. package/src/auth/vuer-user-provider.tsx +1 -0
  379. package/src/dial/DialPanel.tsx +32 -17
  380. package/src/dial/DialProvider.tsx +17 -4
  381. package/src/dial/IconRenderer.tsx +32 -0
  382. package/src/dial/index.ts +1 -0
  383. package/src/dial/wrapped-inputs/ControlledInputs.tsx +19 -9
  384. package/src/dial/wrapped-inputs/DialInputs.tsx +59 -17
  385. package/src/dial/wrapped-inputs/DialPresetsInput.tsx +10 -4
  386. package/src/dial/wrapped-inputs/DialVectorInput.tsx +150 -23
  387. package/src/hooks/cn.ts +2 -4
  388. package/src/ui/badge.tsx +1 -1
  389. package/src/ui/card.tsx +1 -1
  390. package/src/ui/inputs/input-numbers.tsx +42 -7
  391. package/src/ui/layouts/liquid-layout/LayoutSlots.tsx +2 -4
  392. package/dist/chunk-MTZQ4C2U.cjs +0 -21
  393. package/dist/{chunk-2ZK7JUAH.mjs → chunk-5OHAV55L.mjs} +1 -1
  394. package/dist/{chunk-GRQJN4D4.cjs → chunk-OOHCJIRV.cjs} +1 -1
@@ -69,7 +69,7 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
69
69
 
70
70
  // Render a single schema item as an input component
71
71
  const renderSchemaInput = (schema: DialSchema) => {
72
- const { name, dtype, min, max, step, options, tags } = schema;
72
+ const { name, dtype, icon, min, max, step, options, tags } = schema;
73
73
  // Use schema's label position if specified, otherwise fall back to panel's labelLayout prop
74
74
  const effectiveLabelPosition = (tags?.labelPosition as LabelPositionT) || labelLayout;
75
75
  const label = schema.label || name.charAt(0).toUpperCase() + name.slice(1);
@@ -82,8 +82,11 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
82
82
  key={name}
83
83
  name={name}
84
84
  label={label}
85
- step={step}
85
+ min={min}
86
+ max={max}
87
+ step={step || 0.001}
86
88
  labelPosition={effectiveLabelPosition}
89
+ icon={icon}
87
90
  />
88
91
  );
89
92
 
@@ -93,8 +96,9 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
93
96
  key={name}
94
97
  name={name}
95
98
  label={label}
96
- step={step}
99
+ step={step || 0.001}
97
100
  labelPosition={effectiveLabelPosition}
101
+ icon={icon}
98
102
  />
99
103
  );
100
104
 
@@ -104,8 +108,9 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
104
108
  key={name}
105
109
  name={name}
106
110
  label={label}
107
- step={step}
111
+ step={step || 0.001}
108
112
  labelPosition={effectiveLabelPosition}
113
+ icon={icon}
109
114
  />
110
115
  );
111
116
 
@@ -113,7 +118,7 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
113
118
  case "vector-6":
114
119
  case "number-group":
115
120
  // For generic vector or number-group, use VectorN input
116
- return <DialVectorInput key={name} name={name} label={label} />;
121
+ return <DialVectorInput key={name} name={name} label={label} icon={icon} />;
117
122
 
118
123
  case "boolean":
119
124
  return (
@@ -122,6 +127,7 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
122
127
  name={name}
123
128
  label={label}
124
129
  labelPosition={effectiveLabelPosition}
130
+ icon={icon}
125
131
  />
126
132
  );
127
133
 
@@ -134,8 +140,9 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
134
140
  label={label}
135
141
  min={min}
136
142
  max={max}
137
- step={step}
143
+ step={step || 0.001}
138
144
  labelPosition={effectiveLabelPosition}
145
+ icon={icon}
139
146
  />
140
147
  );
141
148
 
@@ -145,9 +152,12 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
145
152
  <DialIntInput
146
153
  key={name}
147
154
  name={name}
155
+ min={min}
156
+ max={max}
148
157
  label={label}
149
158
  step={step || 1}
150
159
  labelPosition={effectiveLabelPosition}
160
+ icon={icon}
151
161
  />
152
162
  );
153
163
 
@@ -158,8 +168,9 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
158
168
  key={name}
159
169
  name={name}
160
170
  label={label}
161
- step={step}
171
+ step={step || 0.001}
162
172
  labelPosition={effectiveLabelPosition}
173
+ icon={icon}
163
174
  />
164
175
  );
165
176
 
@@ -173,8 +184,9 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
173
184
  label={label}
174
185
  min={min}
175
186
  max={max}
176
- step={step}
187
+ step={step || 0.001}
177
188
  labelPosition={effectiveLabelPosition}
189
+ icon={icon}
178
190
  />
179
191
  );
180
192
  }
@@ -188,6 +200,7 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
188
200
  label={label}
189
201
  options={options}
190
202
  labelPosition={effectiveLabelPosition}
203
+ icon={icon}
191
204
  />
192
205
  );
193
206
  }
@@ -202,11 +215,12 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
202
215
  max={max}
203
216
  step={step}
204
217
  labelPosition={effectiveLabelPosition}
218
+ icon={icon}
205
219
  />
206
220
  );
207
221
 
208
222
  case "color":
209
- return <DialColorInput key={name} name={name} label={label} />;
223
+ return <DialColorInput key={name} name={name} label={label} icon={icon} />;
210
224
 
211
225
  case "string":
212
226
  case "text":
@@ -219,6 +233,7 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
219
233
  label={label}
220
234
  options={options}
221
235
  labelPosition={effectiveLabelPosition}
236
+ icon={icon}
222
237
  />
223
238
  );
224
239
  }
@@ -230,6 +245,7 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
230
245
  label={label}
231
246
  placeholder={`Enter ${label.toLowerCase()}`}
232
247
  labelPosition={effectiveLabelPosition}
248
+ icon={icon}
233
249
  />
234
250
  );
235
251
 
@@ -245,27 +261,26 @@ export const DialPanel: React.FC<DialSchemaRendererProps> = ({
245
261
  // Use group configuration
246
262
  const groupConfig = groupConfigMap[name];
247
263
  const hasNoWrap = groupConfig?.noWrap;
248
- const wrapClass = hasNoWrap ? "" : "flex-wrap";
264
+
265
+ // Determine grid columns - default to 3 columns
266
+ // If noWrap is true, use single row flex layout for backward compatibility
267
+ const layoutClass = hasNoWrap ? "grid grid-cols-2 gap-2" : "flex flex-row gap-2";
249
268
 
250
269
  return (
251
270
  <div key={name} className="dial-group">
252
271
  <div className="text-text-primary mb-2 font-medium">{name}</div>
253
- <div className={`dial-row flex flex-row ${wrapClass} gap-4`}>
254
- {schemaList.map(renderSchemaInput)}
255
- </div>
272
+ <div className={`dial-row ${layoutClass}`}>{schemaList.map(renderSchemaInput)}</div>
256
273
  </div>
257
274
  );
258
275
  })}
259
276
 
260
- {/* Render ungrouped schemas - always wrap */}
277
+ {/* Render ungrouped schemas - use grid with 3 columns */}
261
278
  {ungrouped.length > 0 && (
262
279
  <div className="dial-group">
263
280
  {/*<h3 className="text-sm font-semibold text-text-primary mb-2">*/}
264
281
  {/* General*/}
265
282
  {/*</h3>*/}
266
- <div className="dial-row flex flex-row flex-wrap gap-4">
267
- {ungrouped.map(renderSchemaInput)}
268
- </div>
283
+ <div className="dial-row grid grid-cols-3 gap-2">{ungrouped.map(renderSchemaInput)}</div>
269
284
  </div>
270
285
  )}
271
286
  </div>
@@ -8,7 +8,15 @@ function isEmptyObject(obj: unknown): boolean {
8
8
  export type LabelPositionT = "left" | "top" | "inline" | undefined;
9
9
 
10
10
  // Define specific value types for dial values
11
- export type DialValue = string | number | boolean | number[] | string[] | null | undefined;
11
+ export type DialValue =
12
+ | string
13
+ | number
14
+ | boolean
15
+ | number[]
16
+ | string[]
17
+ | (boolean | number | string)[]
18
+ | null
19
+ | undefined;
12
20
 
13
21
  // Types for the dial schema
14
22
  export interface DialSchema {
@@ -141,9 +149,14 @@ export const DialProvider = ({
141
149
  return formatNumber(value);
142
150
  }
143
151
 
144
- // Format number arrays (vectors, etc.)
145
- if (Array.isArray(value) && value.every((v) => typeof v === "number")) {
146
- return value.map((v) => formatNumber(v as number));
152
+ // Format arrays - format individual number elements while preserving non-numbers
153
+ if (Array.isArray(value)) {
154
+ return value.map((v) => {
155
+ if (typeof v === "number") {
156
+ return formatNumber(v);
157
+ }
158
+ return v; // Keep non-number values as-is
159
+ });
147
160
  }
148
161
 
149
162
  // Return non-numeric values as-is
@@ -0,0 +1,32 @@
1
+ import * as LucideIcons from "lucide-react";
2
+ import React from "react";
3
+
4
+ interface IconRendererProps {
5
+ iconName?: string;
6
+ size?: number;
7
+ className?: string;
8
+ }
9
+
10
+ export const IconRenderer: React.FC<IconRendererProps> = ({
11
+ iconName,
12
+ size = 16,
13
+ className = "",
14
+ }) => {
15
+ if (!iconName) {
16
+ return null;
17
+ }
18
+
19
+ const pascalCaseName = iconName
20
+ .split("-")
21
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
22
+ .join("");
23
+
24
+ const IconComponent = (LucideIcons as any)[pascalCaseName];
25
+
26
+ if (!IconComponent) {
27
+ console.warn(`Icon "${iconName}" not found in Lucide React`);
28
+ return null;
29
+ }
30
+
31
+ return <IconComponent size={size} className={className} />;
32
+ };
package/src/dial/index.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  export { DialProvider, useDialSchema } from './DialProvider';
3
3
  export type { DialSchema, DialSchemaGroup, DialGroupConfig, DialValue, LabelPositionT } from './DialProvider';
4
4
  export { DialPanel } from './DialPanel';
5
+ export { IconRenderer } from './IconRenderer';
5
6
 
6
7
  // All wrapped input components
7
8
  export {
@@ -15,20 +15,25 @@ import {
15
15
  Switch,
16
16
  } from "../../index"; // Base input component that connects to the dial store
17
17
  import { LabelPositionT, useDialSchema } from "../DialProvider";
18
+ import { IconRenderer } from "../IconRenderer";
18
19
 
19
20
  // Helper component for wrapping inputs with labels
20
21
  const DialInputWrapper: React.FC<{
21
22
  label?: string;
22
23
  labelPosition?: LabelPositionT;
24
+ icon?: string;
23
25
  children: ReactNode;
24
- }> = ({ label, labelPosition = "top", children }) => {
26
+ }> = ({ label, labelPosition = "top", icon, children }) => {
25
27
  if (!label) {
26
28
  return <>{children}</>;
27
29
  }
28
30
 
29
31
  return (
30
- <FormLayout orientation={`label-${labelPosition}` as LayoutType}>
31
- <Label size="sm">{label}</Label>
32
+ <FormLayout orientation={`label-${labelPosition}` as LayoutType} className="overflow-x-hidden">
33
+ <Label size="sm" className="flex items-center gap-1">
34
+ <IconRenderer iconName={icon} size={14} className="text-text-secondary" />
35
+ {label}
36
+ </Label>
32
37
  {children as ReactElement}
33
38
  </FormLayout>
34
39
  );
@@ -44,6 +49,7 @@ export interface DialNumInputProps extends PropsWithChildren {
44
49
  label?: string;
45
50
  labelPosition?: LabelPositionT;
46
51
  size?: "sm" | "md" | "lg";
52
+ icon?: string;
47
53
  }
48
54
 
49
55
  // Base input component that connects to the dial store using InputNumbers for drag support
@@ -55,6 +61,7 @@ export const DialNumberInput: React.FC<DialNumInputProps> = ({
55
61
  label,
56
62
  labelPosition = "top",
57
63
  size = "sm",
64
+ icon,
58
65
  ...props
59
66
  }) => {
60
67
  const { getValue, setValue } = useDialSchema();
@@ -84,7 +91,7 @@ export const DialNumberInput: React.FC<DialNumInputProps> = ({
84
91
  return <InputNumbers {...inputNumbersProps} />;
85
92
  } else {
86
93
  return (
87
- <DialInputWrapper label={label} labelPosition={labelPosition} {...props}>
94
+ <DialInputWrapper label={label} labelPosition={labelPosition} icon={icon} {...props}>
88
95
  <InputNumbers {...inputNumbersProps} />
89
96
  </DialInputWrapper>
90
97
  );
@@ -95,6 +102,7 @@ export const DialBooleanInput: React.FC<DialNumInputProps> = ({
95
102
  name,
96
103
  label,
97
104
  labelPosition,
105
+ icon,
98
106
  ...props
99
107
  }) => {
100
108
  const { getValue, setValue } = useDialSchema();
@@ -112,14 +120,14 @@ export const DialBooleanInput: React.FC<DialNumInputProps> = ({
112
120
  }
113
121
 
114
122
  return (
115
- <DialInputWrapper label={label} labelPosition={labelPosition} {...props}>
123
+ <DialInputWrapper label={label} labelPosition={labelPosition} icon={icon} {...props}>
116
124
  <Switch {...switchProps} />
117
125
  </DialInputWrapper>
118
126
  );
119
127
  };
120
128
 
121
129
  // Dial-wrapped ColorInput
122
- export const DialColorInput: React.FC<DialNumInputProps> = ({ name, label, ...props }) => {
130
+ export const DialColorInput: React.FC<DialNumInputProps> = ({ name, label, icon, ...props }) => {
123
131
  const { getValue, setValue } = useDialSchema();
124
132
  const value = (getValue(name) ?? "") as string;
125
133
 
@@ -131,7 +139,7 @@ export const DialColorInput: React.FC<DialNumInputProps> = ({ name, label, ...pr
131
139
  const inputComp = <ColorInput value={value} onChange={handleChange} prefix={label} />;
132
140
 
133
141
  return (
134
- <DialInputWrapper label={label} {...props}>
142
+ <DialInputWrapper label={label} icon={icon} {...props}>
135
143
  {inputComp}
136
144
  </DialInputWrapper>
137
145
  );
@@ -142,6 +150,7 @@ export const DialSelectInput: React.FC<DialNumInputProps> = ({
142
150
  options = [],
143
151
  label,
144
152
  size = "sm",
153
+ icon,
145
154
  ...props
146
155
  }) => {
147
156
  const { getValue, setValue } = useDialSchema();
@@ -172,7 +181,7 @@ export const DialSelectInput: React.FC<DialNumInputProps> = ({
172
181
  );
173
182
 
174
183
  return (
175
- <DialInputWrapper label={label} {...props}>
184
+ <DialInputWrapper label={label} icon={icon} {...props}>
176
185
  {selectComponent}
177
186
  </DialInputWrapper>
178
187
  );
@@ -184,6 +193,7 @@ export const DialSliderInput: React.FC<DialNumInputProps> = ({
184
193
  max = 100,
185
194
  step = 1,
186
195
  label,
196
+ icon,
187
197
  ...props
188
198
  }) => {
189
199
  const { getValue, setValue } = useDialSchema();
@@ -201,7 +211,7 @@ export const DialSliderInput: React.FC<DialNumInputProps> = ({
201
211
  };
202
212
 
203
213
  return (
204
- <DialInputWrapper label={label} {...props}>
214
+ <DialInputWrapper label={label} icon={icon} {...props}>
205
215
  <Slider {...sliderProps} />
206
216
  <span className="text-text-secondary w-12 text-right text-sm">{value}</span>
207
217
  </DialInputWrapper>
@@ -19,6 +19,7 @@ import {
19
19
  VectorInput,
20
20
  } from "../../index";
21
21
  import { LabelPositionT, useDialSchema } from "../DialProvider";
22
+ import { IconRenderer } from "../IconRenderer";
22
23
 
23
24
  // Base props for all dial-wrapped inputs
24
25
  interface DialWrapperProps {
@@ -26,13 +27,17 @@ interface DialWrapperProps {
26
27
  label?: string;
27
28
  size?: "sm" | "md" | "lg";
28
29
  step?: number;
30
+ min?: number;
31
+ max?: number;
29
32
  labelPosition?: LabelPositionT;
33
+ icon?: string;
30
34
  }
31
35
 
32
36
  // Helper component for wrapping inputs with labels
33
37
  const DialInputWrapper: React.FC<PropsWithChildren<DialWrapperProps>> = ({
34
38
  label,
35
39
  labelPosition = "top",
40
+ icon,
36
41
  children,
37
42
  }) => {
38
43
  if (!label) {
@@ -40,8 +45,11 @@ const DialInputWrapper: React.FC<PropsWithChildren<DialWrapperProps>> = ({
40
45
  }
41
46
 
42
47
  return (
43
- <FormLayout orientation={`label-${labelPosition}` as LayoutType}>
44
- <Label size="sm">{label}</Label>
48
+ <FormLayout orientation={`label-${labelPosition}` as LayoutType} className="overflow-x-hidden">
49
+ <Label size="sm" className="flex items-center gap-1">
50
+ <IconRenderer iconName={icon} size={14} className="text-text-secondary" />
51
+ {label}
52
+ </Label>
45
53
  <>{children}</>
46
54
  </FormLayout>
47
55
  );
@@ -53,11 +61,17 @@ export const DialVec3Input: React.FC<DialWrapperProps> = ({
53
61
  label,
54
62
  size = "sm",
55
63
  step,
64
+ min,
65
+ max,
56
66
  labelPosition,
67
+ icon,
57
68
  }) => {
58
69
  const { getValue, setValue } = useDialSchema();
59
70
  const value = (getValue(name) ?? [0, 0, 0]) as [number, number, number];
60
71
 
72
+ const minArray = min !== undefined ? [min, min, min] : undefined;
73
+ const maxArray = max !== undefined ? [max, max, max] : undefined;
74
+
61
75
  if (labelPosition === "inline") {
62
76
  return (
63
77
  <Vec3Input
@@ -65,17 +79,21 @@ export const DialVec3Input: React.FC<DialWrapperProps> = ({
65
79
  onValuesChange={(val) => setValue(name, val)}
66
80
  size={size}
67
81
  step={step}
82
+ min={minArray}
83
+ max={maxArray}
68
84
  prefix={label ? [label, "", ""] : undefined}
69
85
  />
70
86
  );
71
87
  } else {
72
88
  return (
73
- <DialInputWrapper name={name} label={label}>
89
+ <DialInputWrapper name={name} label={label} icon={icon}>
74
90
  <Vec3Input
75
91
  value={value}
76
92
  onValuesChange={(val) => setValue(name, val)}
77
93
  size={size}
78
94
  step={step}
95
+ min={minArray}
96
+ max={maxArray}
79
97
  />
80
98
  </DialInputWrapper>
81
99
  );
@@ -89,6 +107,7 @@ export const DialEulerInput: React.FC<DialWrapperProps> = ({
89
107
  size = "sm",
90
108
  step,
91
109
  labelPosition,
110
+ icon,
92
111
  }) => {
93
112
  const { getValue, setValue } = useDialSchema();
94
113
  const value = (getValue(name) ?? [0, 0, 0]) as [number, number, number];
@@ -105,7 +124,7 @@ export const DialEulerInput: React.FC<DialWrapperProps> = ({
105
124
  );
106
125
  } else {
107
126
  return (
108
- <DialInputWrapper name={name} label={label}>
127
+ <DialInputWrapper name={name} label={label} icon={icon}>
109
128
  <EulerInput
110
129
  value={value}
111
130
  onValuesChange={(val) => setValue(name, val)}
@@ -124,6 +143,7 @@ export const DialEulerDegInput: React.FC<DialWrapperProps> = ({
124
143
  size = "sm",
125
144
  step,
126
145
  labelPosition,
146
+ icon,
127
147
  }) => {
128
148
  const { getValue, setValue } = useDialSchema();
129
149
  const value = (getValue(name) ?? [0, 0, 0]) as [number, number, number];
@@ -140,7 +160,7 @@ export const DialEulerDegInput: React.FC<DialWrapperProps> = ({
140
160
  );
141
161
  } else {
142
162
  return (
143
- <DialInputWrapper name={name} label={label}>
163
+ <DialInputWrapper name={name} label={label} icon={icon}>
144
164
  <EulerDegInput
145
165
  value={value}
146
166
  onValuesChange={(val) => setValue(name, val)}
@@ -159,6 +179,7 @@ export const DialQuaternionInput: React.FC<DialWrapperProps> = ({
159
179
  size = "sm",
160
180
  step,
161
181
  labelPosition,
182
+ icon,
162
183
  }) => {
163
184
  const { getValue, setValue } = useDialSchema();
164
185
  const value = (getValue(name) ?? [1, 0, 0, 0]) as [number, number, number, number];
@@ -175,7 +196,7 @@ export const DialQuaternionInput: React.FC<DialWrapperProps> = ({
175
196
  );
176
197
  } else {
177
198
  return (
178
- <DialInputWrapper name={name} label={label}>
199
+ <DialInputWrapper name={name} label={label} icon={icon}>
179
200
  <QuaternionInput
180
201
  value={value}
181
202
  onValuesChange={(val) => setValue(name, val)}
@@ -195,6 +216,7 @@ export const DialVectorInput: React.FC<DialWrapperProps & { dimensions?: number
195
216
  step,
196
217
  dimensions = 3,
197
218
  labelPosition,
219
+ icon,
198
220
  }) => {
199
221
  const { getValue, setValue } = useDialSchema();
200
222
  const value = (getValue(name) ?? new Array(dimensions).fill(0)) as number[];
@@ -211,7 +233,7 @@ export const DialVectorInput: React.FC<DialWrapperProps & { dimensions?: number
211
233
  );
212
234
  } else {
213
235
  return (
214
- <DialInputWrapper name={name} label={label}>
236
+ <DialInputWrapper name={name} label={label} icon={icon}>
215
237
  <VectorInput
216
238
  value={value}
217
239
  onValuesChange={(val) => setValue(name, val)}
@@ -229,7 +251,10 @@ export const DialIntInput: React.FC<DialWrapperProps> = ({
229
251
  label,
230
252
  size = "sm",
231
253
  step = 1,
254
+ min,
255
+ max,
232
256
  labelPosition,
257
+ icon,
233
258
  }) => {
234
259
  const { getValue, setValue } = useDialSchema();
235
260
  const value = (getValue(name) ?? 0) as number;
@@ -242,12 +267,21 @@ export const DialIntInput: React.FC<DialWrapperProps> = ({
242
267
  onChange={(val) => setValue(name, val)}
243
268
  size={size}
244
269
  step={step}
270
+ min={min}
271
+ max={max}
245
272
  />
246
273
  );
247
274
  } else {
248
275
  return (
249
- <DialInputWrapper name={name} label={label}>
250
- <IntInput value={value} onChange={(val) => setValue(name, val)} size={size} step={step} />
276
+ <DialInputWrapper name={name} label={label} icon={icon}>
277
+ <IntInput
278
+ value={value}
279
+ onChange={(val) => setValue(name, val)}
280
+ size={size}
281
+ step={step}
282
+ min={min}
283
+ max={max}
284
+ />
251
285
  </DialInputWrapper>
252
286
  );
253
287
  }
@@ -260,6 +294,7 @@ export const DialDegInput: React.FC<DialWrapperProps> = ({
260
294
  size = "sm",
261
295
  step,
262
296
  labelPosition,
297
+ icon,
263
298
  }) => {
264
299
  const { getValue, setValue } = useDialSchema();
265
300
  const value = (getValue(name) ?? 0) as number;
@@ -276,7 +311,7 @@ export const DialDegInput: React.FC<DialWrapperProps> = ({
276
311
  );
277
312
  } else {
278
313
  return (
279
- <DialInputWrapper name={name} label={label}>
314
+ <DialInputWrapper name={name} label={label} icon={icon}>
280
315
  <DegInput value={value} onChange={(val) => setValue(name, val)} size={size} step={step} />
281
316
  </DialInputWrapper>
282
317
  );
@@ -290,6 +325,7 @@ export const DialRadInput: React.FC<DialWrapperProps> = ({
290
325
  size = "sm",
291
326
  step,
292
327
  labelPosition,
328
+ icon,
293
329
  }) => {
294
330
  const { getValue, setValue } = useDialSchema();
295
331
  const value = (getValue(name) ?? 0) as number;
@@ -306,7 +342,7 @@ export const DialRadInput: React.FC<DialWrapperProps> = ({
306
342
  );
307
343
  } else {
308
344
  return (
309
- <DialInputWrapper name={name} label={label}>
345
+ <DialInputWrapper name={name} label={label} icon={icon}>
310
346
  <RadInput value={value} onChange={(val) => setValue(name, val)} size={size} step={step} />
311
347
  </DialInputWrapper>
312
348
  );
@@ -320,6 +356,7 @@ export const DialCmInput: React.FC<DialWrapperProps> = ({
320
356
  size = "sm",
321
357
  step,
322
358
  labelPosition,
359
+ icon,
323
360
  }) => {
324
361
  const { getValue, setValue } = useDialSchema();
325
362
  const value = (getValue(name) ?? 0) as number;
@@ -336,7 +373,7 @@ export const DialCmInput: React.FC<DialWrapperProps> = ({
336
373
  );
337
374
  } else {
338
375
  return (
339
- <DialInputWrapper name={name} label={label}>
376
+ <DialInputWrapper name={name} label={label} icon={icon}>
340
377
  <CmInput value={value} onChange={(val) => setValue(name, val)} size={size} step={step} />
341
378
  </DialInputWrapper>
342
379
  );
@@ -350,6 +387,7 @@ export const DialInchInput: React.FC<DialWrapperProps> = ({
350
387
  size = "sm",
351
388
  step,
352
389
  labelPosition,
390
+ icon,
353
391
  }) => {
354
392
  const { getValue, setValue } = useDialSchema();
355
393
  const value = (getValue(name) ?? 0) as number;
@@ -366,7 +404,7 @@ export const DialInchInput: React.FC<DialWrapperProps> = ({
366
404
  );
367
405
  } else {
368
406
  return (
369
- <DialInputWrapper name={name} label={label}>
407
+ <DialInputWrapper name={name} label={label} icon={icon}>
370
408
  <InchInput value={value} onChange={(val) => setValue(name, val)} size={size} step={step} />
371
409
  </DialInputWrapper>
372
410
  );
@@ -380,6 +418,7 @@ export const DialTimeInput: React.FC<DialWrapperProps> = ({
380
418
  size = "sm",
381
419
  step,
382
420
  labelPosition,
421
+ icon,
383
422
  }) => {
384
423
  const { getValue, setValue } = useDialSchema();
385
424
  const value = (getValue(name) ?? 0) as number;
@@ -396,7 +435,7 @@ export const DialTimeInput: React.FC<DialWrapperProps> = ({
396
435
  );
397
436
  } else {
398
437
  return (
399
- <DialInputWrapper name={name} label={label}>
438
+ <DialInputWrapper name={name} label={label} icon={icon}>
400
439
  <TimeInput value={value} onChange={(val) => setValue(name, val)} size={size} step={step} />
401
440
  </DialInputWrapper>
402
441
  );
@@ -410,6 +449,7 @@ export const DialTextInput: React.FC<DialWrapperProps & { placeholder?: string }
410
449
  size = "sm",
411
450
  labelPosition,
412
451
  placeholder,
452
+ icon,
413
453
  }) => {
414
454
  const { getValue, setValue } = useDialSchema();
415
455
  const value = (getValue(name) ?? "") as string;
@@ -426,7 +466,7 @@ export const DialTextInput: React.FC<DialWrapperProps & { placeholder?: string }
426
466
  );
427
467
  } else {
428
468
  return (
429
- <DialInputWrapper name={name} label={label}>
469
+ <DialInputWrapper name={name} label={label} icon={icon}>
430
470
  <TextInput
431
471
  value={value}
432
472
  onChange={(val) => setValue(name, val)}
@@ -445,6 +485,7 @@ export const DialEulerRadInput: React.FC<DialWrapperProps> = ({
445
485
  size = "sm",
446
486
  step,
447
487
  labelPosition,
488
+ icon,
448
489
  }) => {
449
490
  const { getValue, setValue } = useDialSchema();
450
491
  const value = (getValue(name) ?? [0, 0, 0]) as [number, number, number];
@@ -462,7 +503,7 @@ export const DialEulerRadInput: React.FC<DialWrapperProps> = ({
462
503
  );
463
504
  } else {
464
505
  return (
465
- <DialInputWrapper name={name} label={label}>
506
+ <DialInputWrapper name={name} label={label} icon={icon}>
466
507
  <EulerRadInput
467
508
  value={value}
468
509
  onValuesChange={(val) => setValue(name, val)}
@@ -482,6 +523,7 @@ export const DialNumberRadInput: React.FC<DialWrapperProps> = ({
482
523
  size = "sm",
483
524
  step,
484
525
  labelPosition,
526
+ icon,
485
527
  }) => {
486
528
  const { getValue, setValue } = useDialSchema();
487
529
  const value = (getValue(name) ?? 0) as number;
@@ -507,7 +549,7 @@ export const DialNumberRadInput: React.FC<DialWrapperProps> = ({
507
549
  );
508
550
  } else {
509
551
  return (
510
- <DialInputWrapper name={name} label={label}>
552
+ <DialInputWrapper name={name} label={label} icon={icon}>
511
553
  <DegInput value={degValue} onChange={handleChange} size={size} step={step} />
512
554
  </DialInputWrapper>
513
555
  );